summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--Makefile9
-rw-r--r--asm/battle_811DA74.s34
-rw-r--r--asm/battle_ai.s10
-rw-r--r--asm/battle_anim.s4729
-rw-r--r--asm/battle_anim_807B69C.s960
-rw-r--r--asm/battle_anim_80A7E7C.s2589
-rw-r--r--asm/battle_anim_80CA710.s1676
-rw-r--r--asm/battle_anim_813F0F4.s5740
-rw-r--r--asm/battle_message.s84
-rw-r--r--asm/battle_party_menu.s1263
-rw-r--r--asm/battle_records.s28
-rw-r--r--asm/berry_blender.s12
-rw-r--r--asm/berry_tag_screen.s1115
-rw-r--r--asm/bike.s6
-rw-r--r--asm/braille_puzzles.s606
-rw-r--r--asm/cable_club.s85
-rw-r--r--asm/calculate_base_damage.s1165
-rw-r--r--asm/choose_party.s60
-rw-r--r--asm/contest.s284
-rw-r--r--asm/contest_ai.s52
-rw-r--r--asm/contest_link_80C2020.s102
-rw-r--r--asm/contest_link_80C857C.s40
-rw-r--r--asm/contest_painting.s1293
-rw-r--r--asm/credits.s2713
-rw-r--r--asm/daycare.s66
-rw-r--r--asm/decoration.s57
-rw-r--r--asm/easy_chat.s2
-rw-r--r--asm/egg_hatch.s4
-rw-r--r--asm/evolution_graphics.s (renamed from asm/rom_8148B8C.s)1538
-rw-r--r--asm/evolution_scene.s12
-rw-r--r--asm/field_control_avatar.s (renamed from asm/rom_8065394.s)296
-rw-r--r--asm/field_effect.s (renamed from asm/rom_80859BC.s)4125
-rw-r--r--asm/field_effect_helpers.s2
-rw-r--r--asm/field_ground_effect.s588
-rw-r--r--asm/field_map_obj.s6
-rw-r--r--asm/field_player_avatar.s4636
-rw-r--r--asm/field_region_map.s274
-rw-r--r--asm/field_tasks.s (renamed from asm/rom_806936C.s)428
-rw-r--r--asm/fieldmap.s1998
-rw-r--r--asm/fldeff_80C5CD4.s6
-rw-r--r--asm/fldeff_cut.s797
-rw-r--r--asm/fldeff_strength.s152
-rw-r--r--asm/fldeff_teleport.s93
-rw-r--r--asm/hall_of_fame.s3402
-rw-r--r--asm/intro_credits_graphics.s1166
-rw-r--r--asm/item_menu.s52
-rw-r--r--asm/item_use.s985
-rw-r--r--asm/load_save.s444
-rw-r--r--asm/macros/battle_anim.inc24
-rw-r--r--asm/mail.s892
-rw-r--r--asm/mail_data.s574
-rw-r--r--asm/map_name_popup.s248
-rw-r--r--asm/matuda_debug_menu.s2877
-rw-r--r--asm/mauville_old_man.s2
-rw-r--r--asm/metatile_behavior.s2345
-rw-r--r--asm/money.s480
-rw-r--r--asm/mystery_event_menu.s581
-rw-r--r--asm/mystery_event_script.s189
-rw-r--r--asm/name_string_util.s76
-rw-r--r--asm/naming_screen.s2
-rw-r--r--asm/party_menu.s6689
-rw-r--r--asm/player_pc.s1185
-rw-r--r--asm/pokeball.s2787
-rw-r--r--asm/pokeblock.s2675
-rw-r--r--asm/pokeblock_feed.s (renamed from asm/rom_81473B8.s)599
-rw-r--r--asm/pokedex.s24
-rw-r--r--asm/pokemon_3.s2826
-rw-r--r--asm/pokemon_icon.s788
-rw-r--r--asm/pokemon_item_effect.s1970
-rw-r--r--asm/pokemon_menu.s3438
-rw-r--r--asm/pokemon_storage_system.s15417
-rw-r--r--asm/pokemon_summary_screen.s8776
-rw-r--r--asm/pokenav.s40
-rw-r--r--asm/record_mixing.s4
-rw-r--r--asm/region_map.s6
-rw-r--r--asm/reset_rtc_screen.s6
-rw-r--r--asm/rom3.s46
-rw-r--r--asm/rom5.s973
-rw-r--r--asm/rom6.s9397
-rw-r--r--asm/rom_800D42C.s1052
-rw-r--r--asm/rom_803D1FC.s5839
-rw-r--r--asm/rom_804373C.s3063
-rw-r--r--asm/rom_806D7F8.s6917
-rw-r--r--asm/rom_8077ABC.s (renamed from asm/rom_8074BAC.s)4836
-rw-r--r--asm/rom_8080874.s76
-rw-r--r--asm/rom_8094928.s28744
-rw-r--r--asm/rom_810CBB4.s6732
-rw-r--r--asm/rom_81258BC.s316
-rw-r--r--asm/rom_813BA94.s20259
-rw-r--r--asm/roulette.s4
-rw-r--r--asm/save_failed_screen.s779
-rw-r--r--asm/script_menu.s1237
-rw-r--r--asm/script_movement.s596
-rw-r--r--asm/script_pokemon_util_80C4BF0.s36
-rw-r--r--asm/script_pokemon_util_80F99CC.s20
-rw-r--r--asm/secret_base.s4
-rw-r--r--asm/shop.s2
-rw-r--r--asm/slot_machine.s30
-rw-r--r--asm/smokescreen.s226
-rw-r--r--asm/trade.s48
-rw-r--r--asm/trainer_card.s2755
-rw-r--r--asm/tv.s756
-rw-r--r--asm/unknown_debug_menu.s133
-rw-r--r--asm/unknown_task.s645
-rw-r--r--asm/util.s (renamed from asm/rom_8040EB4.s)44
-rw-r--r--asm/weather.s888
-rw-r--r--common_syms/main.txt2
-rw-r--r--constants/misc_constants.inc2
-rw-r--r--data/bard_music.s240
-rw-r--r--data/battle_811DA74.s64
-rw-r--r--data/battle_ai.s117
-rw-r--r--data/battle_ai_scripts.s12
-rw-r--r--data/battle_anim.s1101
-rw-r--r--data/battle_anim_807B69C.s23
-rw-r--r--data/battle_anim_80A7E7C.s24
-rw-r--r--data/battle_anim_80CA710.s4566
-rw-r--r--data/battle_anim_813F0F4.s152
-rw-r--r--data/battle_anim_scripts.s5824
-rw-r--r--data/battle_message.s12
-rw-r--r--data/battle_party_menu.s34
-rw-r--r--data/battle_setup.s77
-rw-r--r--data/battle_transition.s361
-rw-r--r--data/berry.s14
-rw-r--r--data/berry_blender.s447
-rw-r--r--data/berry_tag_screen.s12
-rw-r--r--data/bike.s57
-rw-r--r--data/cable_car.s101
-rw-r--r--data/cable_club.s20
-rw-r--r--data/choose_party.s56
-rw-r--r--data/contest.s345
-rw-r--r--data/contest_ai.s143
-rw-r--r--data/contest_effect.s21
-rw-r--r--data/contest_link_80C2020.s73
-rw-r--r--data/contest_painting.s102
-rw-r--r--data/credits.s98
-rw-r--r--data/cute_sketch.s (renamed from data/cute_sketch.inc)5
-rw-r--r--data/data2.s29322
-rw-r--r--data/data_8393054.s110
-rw-r--r--data/decoration.s264
-rw-r--r--data/diploma.s17
-rw-r--r--data/easy_chat.s371
-rw-r--r--data/event_scripts.s7
-rw-r--r--data/evolution_graphics.s42
-rw-r--r--data/evolution_scene.s14
-rw-r--r--data/field_door.s416
-rw-r--r--data/field_effect.s399
-rw-r--r--data/field_effect_helpers.s34
-rw-r--r--data/field_ground_effect.s72
-rw-r--r--data/field_map_obj.s2107
-rw-r--r--data/field_map_obj_helpers.s93
-rw-r--r--data/field_player_avatar.s184
-rw-r--r--data/field_tasks.s31
-rw-r--r--data/fldeff_80C5CD4.s323
-rw-r--r--data/fldeff_cut.s31
-rw-r--r--data/graphics.s130
-rw-r--r--data/graphics/field_objects/base_oam.inc16
-rw-r--r--data/graphics/field_objects/field_effect_object_graphics.inc272
-rw-r--r--data/hall_of_fame.s221
-rw-r--r--data/heal_location.s29
-rw-r--r--data/intro.s514
-rw-r--r--data/intro_credits_graphics.s332
-rw-r--r--data/item.s10
-rw-r--r--data/item_menu.s288
-rw-r--r--data/item_use.s31
-rw-r--r--data/landmark.s (renamed from data/landmarks.inc)5
-rw-r--r--data/mail.s177
-rw-r--r--data/map_events.s410
-rw-r--r--data/maps.s10
-rw-r--r--data/matsuda_debug_menu.s182
-rw-r--r--data/mauville_old_man.s76
-rw-r--r--data/menu_cursor.s302
-rw-r--r--data/menu_helpers.s102
-rw-r--r--data/metatile_behavior.s246
-rw-r--r--data/mon_markings.s198
-rw-r--r--data/money.s31
-rw-r--r--data/mori_debug_menu.s68
-rw-r--r--data/mystery_event_msg.s35
-rw-r--r--data/naming_screen.s346
-rw-r--r--data/option_menu.s12
-rw-r--r--data/party_menu.s744
-rw-r--r--data/player_pc.s74
-rw-r--r--data/pokeball.s137
-rw-r--r--data/pokeblock.s92
-rw-r--r--data/pokeblock_feed.s225
-rw-r--r--data/pokedex.s503
-rw-r--r--data/pokedex_area_screen.s66
-rw-r--r--data/pokedex_cry_screen.s76
-rw-r--r--data/pokemon_icon.s92
-rw-r--r--data/pokemon_menu.s67
-rw-r--r--data/pokemon_storage_system.s731
-rw-r--r--data/pokemon_summary_screen.s391
-rw-r--r--data/pokenav.s1166
-rw-r--r--data/record_mixing.s68
-rw-r--r--data/region_map.s187
-rw-r--r--data/reset_rtc_screen.s63
-rw-r--r--data/rom4.s66
-rw-r--r--data/rom_8077ABC.s37
-rw-r--r--data/rom_8080874.s17
-rw-r--r--data/rom_810CBB4.s135
-rw-r--r--data/rom_81258BC.s997
-rw-r--r--data/rotating_gate.s270
-rw-r--r--data/roulette.s817
-rw-r--r--data/save.s29
-rw-r--r--data/save_failed_screen.s16
-rw-r--r--data/script_menu.s29
-rw-r--r--data/scripts/cable_club.inc34
-rw-r--r--data/secret_base.s23
-rw-r--r--data/shop.s61
-rw-r--r--data/slot_machine.s1530
-rw-r--r--data/sound_check_menu.s99
-rw-r--r--data/specials.inc38
-rw-r--r--data/starter_choose.s167
-rw-r--r--data/strings.s2041
-rw-r--r--data/strings2.s554
-rw-r--r--data/task.s7
-rw-r--r--data/text/battle_strings.inc84
-rw-r--r--data/text/cable_club.inc10
-rw-r--r--data/text/credits.inc51
-rw-r--r--data/text/easy_chat/group_name_strings.inc44
-rw-r--r--data/text/gabby_and_ty.s18
-rw-r--r--data/text/pokemon_news.s29
-rw-r--r--data/text/tv.inc201
-rw-r--r--data/text_window.s31
-rw-r--r--data/tileset_anim.s637
-rw-r--r--data/tilesets.s8
-rw-r--r--data/tilesets/graphics.inc228
-rw-r--r--data/tilesets/headers.inc116
-rw-r--r--data/title_screen.s183
-rw-r--r--data/trade.s774
-rw-r--r--data/trader.s17
-rw-r--r--data/trainer_card.s61
-rw-r--r--data/trainer_see.s83
-rw-r--r--data/truck_scene.s41
-rw-r--r--data/tv.s205
-rw-r--r--data/unknown_debug_menu.s32
-rw-r--r--data/wallclock.s86
-rw-r--r--data/weather.s437
-rw-r--r--data/wild_encounter.s18
-rw-r--r--graphics/contest/contest_words.binbin0 -> 512 bytes
-rw-r--r--graphics/credits/ampersand.pngbin0 -> 111 bytes
-rw-r--r--graphics/credits/palette_1.pal35
-rw-r--r--graphics/interface/berry_tag.binbin0 -> 2048 bytes
-rw-r--r--graphics/interface/berry_tag_title.binbin0 -> 2048 bytes
-rw-r--r--graphics/interface/pokeblock_feeding_bg_map.binbin0 -> 2048 bytes
-rw-r--r--graphics/interface/pokemon_info.binbin0 -> 2048 bytes
-rw-r--r--[-rwxr-xr-x]graphics/interface/status_screen.binbin2048 -> 2048 bytes
-rw-r--r--graphics/interface/status_screen_battle_moves.binbin0 -> 2048 bytes
-rw-r--r--graphics/interface/status_screen_contest_moves.binbin0 -> 2048 bytes
-rw-r--r--graphics/interface/status_screen_pokemon_skills.binbin0 -> 2048 bytes
-rw-r--r--graphics/interface/wordgroup_layout.binbin0 -> 1280 bytes
-rw-r--r--graphics/misc/wallclock_edit.binbin0 -> 1280 bytes
-rw-r--r--graphics/misc/wallclock_view.binbin0 -> 1280 bytes
-rw-r--r--graphics/pokedex/pokedex_detail_layout.binbin0 -> 1280 bytes
-rw-r--r--graphics/pokedex/pokedex_list_menu.binbin0 -> 768 bytes
-rw-r--r--graphics/pokedex/pokedex_listing_menu.binbin0 -> 768 bytes
-rw-r--r--graphics/pokedex/pokedex_navbar.binbin0 -> 192 bytes
-rw-r--r--graphics/pokedex/pokedex_navbar_3.binbin0 -> 192 bytes
-rw-r--r--graphics/pokenav/83DFECC.pal19
-rw-r--r--graphics/pokenav/83DFEEC.pngbin0 -> 99 bytes
-rw-r--r--graphics/pokenav/83DFF8C.binbin0 -> 1280 bytes
-rw-r--r--graphics/pokenav/83E003C.pal19
-rw-r--r--graphics/pokenav/83E005C.pngbin0 -> 79 bytes
-rw-r--r--graphics/pokenav/83E007C.binbin0 -> 1360 bytes
-rw-r--r--graphics/pokenav/83E0124_pal.binbin0 -> 32 bytes
-rw-r--r--graphics/pokenav/83E0144_pal.binbin0 -> 32 bytes
-rw-r--r--graphics/pokenav/83E0164.binbin0 -> 72 bytes
-rw-r--r--graphics/pokenav/83E01AC.bin1
-rw-r--r--graphics/pokenav/83E01F4.bin1
-rw-r--r--graphics/pokenav/83E0254.pal19
-rw-r--r--graphics/pokenav/83E0274.pal19
-rw-r--r--graphics/pokenav/83E02B4.pal19
-rw-r--r--graphics/pokenav/83E02D4.binbin0 -> 64 bytes
-rw-r--r--graphics/pokenav/83E0314.pal19
-rw-r--r--graphics/pokenav/83E03A8.pal19
-rw-r--r--graphics/pokenav/83E03C8.binbin0 -> 68 bytes
-rw-r--r--graphics/pokenav/83E3780.pngbin0 -> 88 bytes
-rw-r--r--graphics/pokenav/83E3BC0.binbin0 -> 32 bytes
-rw-r--r--graphics/pokenav/83E42D8.pal19
-rw-r--r--graphics/pokenav/83E4678.pal19
-rw-r--r--graphics/pokenav/bottom_toolbar.binbin0 -> 512 bytes
-rw-r--r--graphics/pokenav/condition_screen.bin1
-rw-r--r--graphics/slot_machine/83EDDB0.pal19
-rw-r--r--graphics/slot_machine/83EDDD0.pal19
-rw-r--r--graphics/slot_machine/83EDDF0.pal19
-rw-r--r--graphics/slot_machine/83EDE24_pal.binbin0 -> 32 bytes
-rw-r--r--graphics/slot_machine/slots_layout.binbin0 -> 1280 bytes
-rw-r--r--graphics/unknown/83EC98C.pal19
-rw-r--r--graphics/unknown/83EC9AC.pal19
-rwxr-xr-xgraphics/unknown/unknown_D15D64.binbin0 -> 4096 bytes
-rwxr-xr-xgraphics/unknown/unknown_D17424.binbin0 -> 4096 bytes
-rwxr-xr-xgraphics/unknown/unknown_D176CC.binbin0 -> 2048 bytes
-rwxr-xr-xgraphics/unknown/unknown_D177D8.binbin0 -> 8192 bytes
-rwxr-xr-xgraphics/unknown/unknown_D17C3C.binbin0 -> 2048 bytes
-rwxr-xr-xgraphics/unknown/unknown_E6BC04.binbin0 -> 1280 bytes
-rwxr-xr-x[-rw-r--r--]graphics/unknown/unknown_E70968.bin (renamed from sound/programmable_wave_samples/845541C.aif)bin3170 -> 4096 bytes
-rwxr-xr-xgraphics/unknown/unknown_E70C38.bin1
-rwxr-xr-xgraphics/unknown/unknown_E70F0C.bin1
-rw-r--r--graphics/unknown/unknown_E77004.binbin0 -> 2048 bytes
-rwxr-xr-xgraphics/unknown/unknown_E8096C.pngbin0 -> 1034 bytes
-rwxr-xr-xgraphics/unknown/unknown_E81098.bin189
-rw-r--r--graphics/unknown/unknown_E86258.binbin0 -> 1280 bytes
-rw-r--r--graphics/unknown/unknown_E8CAC0.binbin0 -> 1280 bytes
-rw-r--r--graphics/unknown/unknown_E8CFC0.binbin0 -> 1280 bytes
-rw-r--r--graphics/unknown/unknown_E8D4C0.binbin0 -> 1280 bytes
-rw-r--r--graphics/unknown/unknown_E8D9C0.binbin0 -> 1280 bytes
-rw-r--r--graphics/unknown/unknown_E94510.binbin0 -> 64 bytes
-rw-r--r--graphics/unknown/unknown_E94550.binbin0 -> 128 bytes
-rw-r--r--graphics/unknown/unknown_E94AD0.binbin0 -> 2304 bytes
-rwxr-xr-xgraphics/unknown/unknown_E953D0.binbin0 -> 1152 bytes
-rw-r--r--graphics/unknown/unknown_E95AB8.binbin0 -> 1280 bytes
-rwxr-xr-xgraphics/unknown/unknown_E966B8.pal19
-rwxr-xr-xgraphics/unknown/unknown_E96738.binbin0 -> 1280 bytes
-rwxr-xr-xgraphics/unknown/unknown_E96D2C.binbin0 -> 1280 bytes
-rw-r--r--graphics/unknown/unknown_E96EC8.binbin0 -> 2048 bytes
-rwxr-xr-xgraphics/unknown/unknown_E997E8.pal19
-rwxr-xr-xgraphics/unknown/unknown_E99FB0.binbin0 -> 1536 bytes
-rw-r--r--graphics/unknown/unknown_E9A300.binbin0 -> 2048 bytes
-rw-r--r--graphics/unknown/unknown_E9AB00.bin1
-rwxr-xr-xgraphics/unknown/unknown_E9AB40.pal19
-rwxr-xr-xgraphics/unknown/unknown_E9AB60.binbin0 -> 640 bytes
-rw-r--r--graphics/unknown/unknown_E9ABB4.bin1
-rw-r--r--graphics/unknown/unknown_E9AC2C.bin1
-rwxr-xr-xgraphics/unknown/unknown_E9C6DC.binbin0 -> 1280 bytes
-rwxr-xr-xgraphics/unknown/unknown_E9F7E4.binbin0 -> 1024 bytes
-rwxr-xr-xgraphics/unknown/unknown_E9F988.pal19
-rwxr-xr-xgraphics/unknown/unknown_E9F9E8.pal19
-rwxr-xr-xgraphics/unknown/unknown_E9FBA0.binbin0 -> 1280 bytes
-rwxr-xr-xgraphics/unknown/unknown_E9FC64.binbin0 -> 1280 bytes
-rw-r--r--graphics/unknown/unknown_E9FD1C.bin2
-rw-r--r--graphics/unknown/unknown_E9FD64.bin1
-rw-r--r--graphics/unknown/unknown_E9FE54.bin1
-rwxr-xr-xgraphics/unknown/unknown_E9FEB4.binbin0 -> 1280 bytes
-rwxr-xr-xgraphics/unknown/unknown_E9FF58.binbin0 -> 1600 bytes
-rw-r--r--include/asm.h36
-rw-r--r--include/asm.inc.h494
-rw-r--r--include/asm_fieldmap.h23
-rw-r--r--include/battle.h51
-rw-r--r--include/battle_setup.h84
-rw-r--r--include/berry.h85
-rw-r--r--include/berry_tag_screen.h6
-rw-r--r--include/blend_palette.h6
-rw-r--r--include/coins.h12
-rw-r--r--include/config.h25
-rw-r--r--include/decompress.h17
-rw-r--r--include/event_data.h28
-rw-r--r--include/field_camera.h18
-rw-r--r--include/field_effect.h29
-rw-r--r--include/field_map_obj.h11
-rw-r--r--include/field_message_box.h3
-rw-r--r--include/field_player_avatar.h112
-rw-r--r--include/flag.h11
-rw-r--r--include/flags.h55
-rw-r--r--include/gba/m4a_internal.h5
-rw-r--r--include/gba/macro.h2
-rw-r--r--include/gba/syscall.h2
-rw-r--r--include/gba/types.h21
-rw-r--r--include/global.berry.h57
-rw-r--r--include/global.fieldmap.h (renamed from include/fieldmap.h)84
-rw-r--r--include/global.h169
-rw-r--r--include/heal_location.h18
-rw-r--r--include/hold_effects.h72
-rw-r--r--include/intro.h7
-rw-r--r--include/item.h35
-rw-r--r--include/items.h315
-rw-r--r--include/landmark.h6
-rw-r--r--include/libgncmultiboot.h16
-rw-r--r--include/link.h20
-rw-r--r--include/load_save.h17
-rw-r--r--include/lottery_corner.h12
-rw-r--r--include/m4a.h18
-rw-r--r--include/mail.h8
-rw-r--r--include/main.h48
-rw-r--r--include/main_menu.h6
-rw-r--r--include/map_obj_lock.h16
-rw-r--r--include/menu.h22
-rw-r--r--include/menu_cursor.h24
-rw-r--r--include/metatile_behavior.h136
-rw-r--r--include/metatile_behaviors.h173
-rw-r--r--include/money.h17
-rw-r--r--include/mori_debug_menu.h17
-rw-r--r--include/mystery_event_menu.h6
-rw-r--r--include/new_game.h16
-rw-r--r--include/option_menu.h6
-rw-r--r--include/palette.h4
-rw-r--r--include/play_time.h9
-rw-r--r--include/pokedex.h158
-rw-r--r--include/pokemon.h117
-rw-r--r--include/pokemon_size_record.h14
-rw-r--r--include/record_mixing.h34
-rw-r--r--include/rom4.h228
-rw-r--r--include/rtc.h24
-rw-r--r--include/safari_zone.h21
-rw-r--r--include/save.h60
-rw-r--r--include/save_failed_screen.h6
-rw-r--r--include/save_menu_util.h16
-rw-r--r--include/script.h2
-rw-r--r--include/siirtc.h8
-rw-r--r--include/species.h1
-rw-r--r--include/sprite.h31
-rw-r--r--include/start_menu.h11
-rw-r--r--include/starter_choose.h13
-rw-r--r--include/string_util.h2
-rw-r--r--include/task.h6
-rw-r--r--include/text.h12
-rw-r--r--include/text_window.h18
-rw-r--r--include/tileset_anim.h30
-rw-r--r--include/title_screen.h13
-rw-r--r--include/trainer_card.h52
-rw-r--r--include/trainer_see.h34
-rw-r--r--include/truck_scene.h13
-rw-r--r--include/var.h11
-rw-r--r--include/vars.h20
-rw-r--r--include/wallclock.h14
-rw-r--r--include/weather.h43
-rw-r--r--include/wild_encounter.h14
-rw-r--r--ld_script.txt236
-rw-r--r--shared_syms.txt11
-rw-r--r--sound/direct_sound_data.inc1788
-rw-r--r--sound/direct_sound_samples/845AE14.aifbin1281 -> 1269 bytes
-rw-r--r--sound/direct_sound_samples/845B2B4.aifbin1876 -> 1864 bytes
-rw-r--r--sound/direct_sound_samples/845B9A8.aifbin2290 -> 2278 bytes
-rw-r--r--sound/direct_sound_samples/845C238.aifbin2263 -> 2251 bytes
-rw-r--r--sound/direct_sound_samples/845CAB0.aifbin4256 -> 4256 bytes
-rw-r--r--sound/direct_sound_samples/845DAF0.aifbin1139 -> 1127 bytes
-rw-r--r--sound/direct_sound_samples/845ED34.aifbin4086 -> 4086 bytes
-rw-r--r--sound/direct_sound_samples/845FCC8.aifbin2326 -> 2314 bytes
-rw-r--r--sound/direct_sound_samples/8460E60.aifbin3979 -> 3979 bytes
-rw-r--r--sound/direct_sound_samples/8461D8C.aifbin1402 -> 1390 bytes
-rw-r--r--sound/direct_sound_samples/84622A4.aifbin1578 -> 1566 bytes
-rw-r--r--sound/direct_sound_samples/8488F44.aifbin6593 -> 6581 bytes
-rw-r--r--sound/direct_sound_samples/848A8A4.aifbin5414 -> 5402 bytes
-rw-r--r--sound/direct_sound_samples/8492D10.aifbin4210 -> 4198 bytes
-rw-r--r--sound/direct_sound_samples/8639898.aifbin1729 -> 1717 bytes
-rw-r--r--sound/direct_sound_samples/863A3DC.aifbin2479 -> 2467 bytes
-rw-r--r--sound/direct_sound_samples/863AD2C.aifbin2770 -> 2758 bytes
-rw-r--r--sound/direct_sound_samples/863BABC.aifbin3305 -> 3293 bytes
-rw-r--r--sound/direct_sound_samples/863C744.aifbin1666 -> 1654 bytes
-rw-r--r--sound/direct_sound_samples/863D0EC.aifbin3651 -> 3639 bytes
-rw-r--r--sound/direct_sound_samples/863DED0.aifbin2513 -> 2501 bytes
-rw-r--r--sound/direct_sound_samples/863EBDC.aifbin2067 -> 2055 bytes
-rw-r--r--sound/direct_sound_samples/863F390.aifbin3515 -> 3503 bytes
-rw-r--r--sound/direct_sound_samples/8640330.aifbin3743 -> 3731 bytes
-rw-r--r--sound/direct_sound_samples/8641170.aifbin2483 -> 2471 bytes
-rw-r--r--sound/direct_sound_samples/8641E18.aifbin1683 -> 1671 bytes
-rw-r--r--sound/direct_sound_samples/864244C.aifbin3275 -> 3263 bytes
-rw-r--r--sound/direct_sound_samples/8643650.aifbin2915 -> 2903 bytes
-rw-r--r--sound/direct_sound_samples/8644154.aifbin1637 -> 1625 bytes
-rw-r--r--sound/direct_sound_samples/8644950.aifbin2499 -> 2487 bytes
-rw-r--r--sound/direct_sound_samples/86452B4.aifbin4075 -> 4063 bytes
-rw-r--r--sound/direct_sound_samples/8646878.aifbin2867 -> 2855 bytes
-rw-r--r--sound/direct_sound_samples/864734C.aifbin4006 -> 3994 bytes
-rw-r--r--sound/direct_sound_samples/8648808.aifbin3755 -> 3743 bytes
-rw-r--r--sound/direct_sound_samples/8649654.aifbin3943 -> 3931 bytes
-rw-r--r--sound/direct_sound_samples/864B030.aifbin3059 -> 3047 bytes
-rw-r--r--sound/direct_sound_samples/864BBC4.aifbin2615 -> 2603 bytes
-rw-r--r--sound/direct_sound_samples/864CBDC.aifbin2879 -> 2867 bytes
-rw-r--r--sound/direct_sound_samples/864D6BC.aifbin1692 -> 1680 bytes
-rw-r--r--sound/direct_sound_samples/864E410.aifbin2459 -> 2447 bytes
-rw-r--r--sound/direct_sound_samples/864ED4C.aifbin2075 -> 2063 bytes
-rw-r--r--sound/direct_sound_samples/864FA6C.aifbin3539 -> 3527 bytes
-rw-r--r--sound/direct_sound_samples/86507E0.aifbin1245 -> 1233 bytes
-rw-r--r--sound/direct_sound_samples/8651148.aifbin2087 -> 2075 bytes
-rw-r--r--sound/direct_sound_samples/8651910.aifbin3165 -> 3153 bytes
-rw-r--r--sound/direct_sound_samples/8652884.aifbin2075 -> 2063 bytes
-rw-r--r--sound/direct_sound_samples/8653040.aifbin3267 -> 3255 bytes
-rw-r--r--sound/direct_sound_samples/8654170.aifbin2831 -> 2819 bytes
-rw-r--r--sound/direct_sound_samples/cry_abra.aifbin0 -> 11680 bytes
-rw-r--r--sound/direct_sound_samples/cry_absol.aifbin0 -> 5276 bytes
-rw-r--r--sound/direct_sound_samples/cry_aerodactyl.aifbin0 -> 12162 bytes
-rw-r--r--sound/direct_sound_samples/cry_aggron.aifbin0 -> 12797 bytes
-rw-r--r--sound/direct_sound_samples/cry_aipom.aifbin0 -> 7078 bytes
-rw-r--r--sound/direct_sound_samples/cry_alakazam.aifbin0 -> 15761 bytes
-rw-r--r--sound/direct_sound_samples/cry_altaria.aifbin0 -> 5585 bytes
-rw-r--r--sound/direct_sound_samples/cry_ampharos.aifbin0 -> 8262 bytes
-rw-r--r--sound/direct_sound_samples/cry_anorith.aifbin0 -> 5882 bytes
-rw-r--r--sound/direct_sound_samples/cry_arbok.aifbin0 -> 9669 bytes
-rw-r--r--sound/direct_sound_samples/cry_arcanine.aifbin0 -> 8623 bytes
-rw-r--r--sound/direct_sound_samples/cry_ariados.aifbin0 -> 6190 bytes
-rw-r--r--sound/direct_sound_samples/cry_armaldo.aifbin0 -> 11400 bytes
-rw-r--r--sound/direct_sound_samples/cry_aron.aifbin0 -> 4621 bytes
-rw-r--r--sound/direct_sound_samples/cry_articuno.aifbin0 -> 11813 bytes
-rw-r--r--sound/direct_sound_samples/cry_azumarill.aifbin0 -> 8472 bytes
-rw-r--r--sound/direct_sound_samples/cry_azurill.aifbin0 -> 5233 bytes
-rw-r--r--sound/direct_sound_samples/cry_bagon.aifbin0 -> 3954 bytes
-rw-r--r--sound/direct_sound_samples/cry_baltoy.aifbin0 -> 6284 bytes
-rw-r--r--sound/direct_sound_samples/cry_banette.aifbin0 -> 6354 bytes
-rw-r--r--sound/direct_sound_samples/cry_barboach.aifbin0 -> 4652 bytes
-rw-r--r--sound/direct_sound_samples/cry_bayleef.aifbin0 -> 4435 bytes
-rw-r--r--sound/direct_sound_samples/cry_beautifly.aifbin0 -> 4149 bytes
-rw-r--r--sound/direct_sound_samples/cry_beedrill.aifbin0 -> 9676 bytes
-rw-r--r--sound/direct_sound_samples/cry_beldum.aifbin0 -> 4848 bytes
-rw-r--r--sound/direct_sound_samples/cry_bellossom.aifbin0 -> 7063 bytes
-rw-r--r--sound/direct_sound_samples/cry_bellsprout.aifbin0 -> 3813 bytes
-rw-r--r--sound/direct_sound_samples/cry_blastoise.aifbin0 -> 9642 bytes
-rw-r--r--sound/direct_sound_samples/cry_blaziken.aifbin0 -> 15710 bytes
-rw-r--r--sound/direct_sound_samples/cry_blissey.aifbin0 -> 8299 bytes
-rw-r--r--sound/direct_sound_samples/cry_breloom.aifbin0 -> 6397 bytes
-rw-r--r--sound/direct_sound_samples/cry_bulbasaur.aifbin0 -> 8286 bytes
-rw-r--r--sound/direct_sound_samples/cry_butterfree.aifbin0 -> 5046 bytes
-rw-r--r--sound/direct_sound_samples/cry_cacnea.aifbin0 -> 4508 bytes
-rw-r--r--sound/direct_sound_samples/cry_cacturne.aifbin0 -> 11330 bytes
-rw-r--r--sound/direct_sound_samples/cry_camerupt.aifbin0 -> 11547 bytes
-rw-r--r--sound/direct_sound_samples/cry_carvanha.aifbin0 -> 5068 bytes
-rw-r--r--sound/direct_sound_samples/cry_cascoon.aifbin0 -> 8146 bytes
-rw-r--r--sound/direct_sound_samples/cry_castform.aifbin0 -> 6322 bytes
-rw-r--r--sound/direct_sound_samples/cry_caterpie.aifbin0 -> 4212 bytes
-rw-r--r--sound/direct_sound_samples/cry_celebi.aifbin0 -> 7250 bytes
-rw-r--r--sound/direct_sound_samples/cry_chansey.aifbin0 -> 7411 bytes
-rw-r--r--sound/direct_sound_samples/cry_charizard.aifbin0 -> 9642 bytes
-rw-r--r--sound/direct_sound_samples/cry_charmander.aifbin0 -> 7236 bytes
-rw-r--r--sound/direct_sound_samples/cry_charmeleon.aifbin0 -> 7269 bytes
-rw-r--r--sound/direct_sound_samples/cry_chikorita.aifbin0 -> 2675 bytes
-rw-r--r--sound/direct_sound_samples/cry_chimecho.aifbin0 -> 5060 bytes
-rw-r--r--sound/direct_sound_samples/cry_chinchou.aifbin0 -> 6366 bytes
-rw-r--r--sound/direct_sound_samples/cry_clamperl.aifbin0 -> 9162 bytes
-rw-r--r--sound/direct_sound_samples/cry_claydol.aifbin0 -> 9689 bytes
-rw-r--r--sound/direct_sound_samples/cry_clefable.aifbin0 -> 5314 bytes
-rw-r--r--sound/direct_sound_samples/cry_clefairy.aifbin0 -> 4254 bytes
-rw-r--r--sound/direct_sound_samples/cry_cleffa.aifbin0 -> 3012 bytes
-rw-r--r--sound/direct_sound_samples/cry_cloyster.aifbin0 -> 10374 bytes
-rw-r--r--sound/direct_sound_samples/cry_combusken.aifbin0 -> 14380 bytes
-rw-r--r--sound/direct_sound_samples/cry_corphish.aifbin0 -> 6031 bytes
-rw-r--r--sound/direct_sound_samples/cry_corsola.aifbin0 -> 6460 bytes
-rw-r--r--sound/direct_sound_samples/cry_cradily.aifbin0 -> 14562 bytes
-rw-r--r--sound/direct_sound_samples/cry_crawdaunt.aifbin0 -> 12337 bytes
-rw-r--r--sound/direct_sound_samples/cry_crobat.aifbin0 -> 11582 bytes
-rw-r--r--sound/direct_sound_samples/cry_croconaw.aifbin0 -> 10116 bytes
-rw-r--r--sound/direct_sound_samples/cry_cubone.aifbin0 -> 7579 bytes
-rw-r--r--sound/direct_sound_samples/cry_cyndaquil.aifbin0 -> 3548 bytes
-rw-r--r--sound/direct_sound_samples/cry_delcatty.aifbin0 -> 10538 bytes
-rw-r--r--sound/direct_sound_samples/cry_delibird.aifbin0 -> 8114 bytes
-rw-r--r--sound/direct_sound_samples/cry_deoxys.aifbin0 -> 10409 bytes
-rw-r--r--sound/direct_sound_samples/cry_dewgong.aifbin0 -> 10566 bytes
-rw-r--r--sound/direct_sound_samples/cry_diglett.aifbin0 -> 9718 bytes
-rw-r--r--sound/direct_sound_samples/cry_ditto.aifbin0 -> 5586 bytes
-rw-r--r--sound/direct_sound_samples/cry_dodrio.aifbin0 -> 9733 bytes
-rw-r--r--sound/direct_sound_samples/cry_doduo.aifbin0 -> 9636 bytes
-rw-r--r--sound/direct_sound_samples/cry_donphan.aifbin0 -> 8574 bytes
-rw-r--r--sound/direct_sound_samples/cry_dragonair.aifbin0 -> 8339 bytes
-rw-r--r--sound/direct_sound_samples/cry_dragonite.aifbin0 -> 9522 bytes
-rw-r--r--sound/direct_sound_samples/cry_dratini.aifbin0 -> 5832 bytes
-rw-r--r--sound/direct_sound_samples/cry_drowzee.aifbin0 -> 14514 bytes
-rw-r--r--sound/direct_sound_samples/cry_dugtrio.aifbin0 -> 9707 bytes
-rw-r--r--sound/direct_sound_samples/cry_dunsparce.aifbin0 -> 7946 bytes
-rw-r--r--sound/direct_sound_samples/cry_dusclops.aifbin0 -> 6878 bytes
-rw-r--r--sound/direct_sound_samples/cry_duskull.aifbin0 -> 5330 bytes
-rw-r--r--sound/direct_sound_samples/cry_dustox.aifbin0 -> 6358 bytes
-rw-r--r--sound/direct_sound_samples/cry_eevee.aifbin0 -> 7124 bytes
-rw-r--r--sound/direct_sound_samples/cry_ekans.aifbin0 -> 9646 bytes
-rw-r--r--sound/direct_sound_samples/cry_electabuzz.aifbin0 -> 15401 bytes
-rw-r--r--sound/direct_sound_samples/cry_electrike.aifbin0 -> 6206 bytes
-rw-r--r--sound/direct_sound_samples/cry_electrode.aifbin0 -> 12584 bytes
-rw-r--r--sound/direct_sound_samples/cry_elekid.aifbin0 -> 5305 bytes
-rw-r--r--sound/direct_sound_samples/cry_entei.aifbin0 -> 10218 bytes
-rw-r--r--sound/direct_sound_samples/cry_espeon.aifbin0 -> 9849 bytes
-rw-r--r--sound/direct_sound_samples/cry_exeggcute.aifbin0 -> 9436 bytes
-rw-r--r--sound/direct_sound_samples/cry_exeggutor.aifbin0 -> 15900 bytes
-rw-r--r--sound/direct_sound_samples/cry_exploud.aifbin0 -> 14107 bytes
-rw-r--r--sound/direct_sound_samples/cry_farfetchd.aifbin0 -> 3786 bytes
-rw-r--r--sound/direct_sound_samples/cry_fearow.aifbin0 -> 8623 bytes
-rw-r--r--sound/direct_sound_samples/cry_feebas.aifbin0 -> 3952 bytes
-rw-r--r--sound/direct_sound_samples/cry_feraligatr.aifbin0 -> 12732 bytes
-rw-r--r--sound/direct_sound_samples/cry_flaaffy.aifbin0 -> 6874 bytes
-rw-r--r--sound/direct_sound_samples/cry_flareon.aifbin0 -> 7768 bytes
-rw-r--r--sound/direct_sound_samples/cry_flygon.aifbin0 -> 12994 bytes
-rw-r--r--sound/direct_sound_samples/cry_forretress.aifbin0 -> 10011 bytes
-rw-r--r--sound/direct_sound_samples/cry_furret.aifbin0 -> 3188 bytes
-rw-r--r--sound/direct_sound_samples/cry_gardevoir.aifbin0 -> 12175 bytes
-rw-r--r--sound/direct_sound_samples/cry_gastly.aifbin0 -> 11641 bytes
-rw-r--r--sound/direct_sound_samples/cry_gengar.aifbin0 -> 7392 bytes
-rw-r--r--sound/direct_sound_samples/cry_geodude.aifbin0 -> 11837 bytes
-rw-r--r--sound/direct_sound_samples/cry_girafarig.aifbin0 -> 7367 bytes
-rw-r--r--sound/direct_sound_samples/cry_glalie.aifbin0 -> 10440 bytes
-rw-r--r--sound/direct_sound_samples/cry_gligar.aifbin0 -> 6088 bytes
-rw-r--r--sound/direct_sound_samples/cry_gloom.aifbin0 -> 6267 bytes
-rw-r--r--sound/direct_sound_samples/cry_golbat.aifbin0 -> 9695 bytes
-rw-r--r--sound/direct_sound_samples/cry_goldeen.aifbin0 -> 4957 bytes
-rw-r--r--sound/direct_sound_samples/cry_golduck.aifbin0 -> 5666 bytes
-rw-r--r--sound/direct_sound_samples/cry_golem.aifbin0 -> 7100 bytes
-rw-r--r--sound/direct_sound_samples/cry_gorebyss.aifbin0 -> 11196 bytes
-rw-r--r--sound/direct_sound_samples/cry_granbull.aifbin0 -> 11802 bytes
-rw-r--r--sound/direct_sound_samples/cry_graveler.aifbin0 -> 13921 bytes
-rw-r--r--sound/direct_sound_samples/cry_grimer.aifbin0 -> 5295 bytes
-rw-r--r--sound/direct_sound_samples/cry_groudon.aifbin0 -> 18459 bytes
-rw-r--r--sound/direct_sound_samples/cry_grovyle.aifbin0 -> 10218 bytes
-rw-r--r--sound/direct_sound_samples/cry_growlithe.aifbin0 -> 6716 bytes
-rw-r--r--sound/direct_sound_samples/cry_grumpig.aifbin0 -> 6338 bytes
-rw-r--r--sound/direct_sound_samples/cry_gulpin.aifbin0 -> 4048 bytes
-rw-r--r--sound/direct_sound_samples/cry_gyarados.aifbin0 -> 10099 bytes
-rw-r--r--sound/direct_sound_samples/cry_hariyama.aifbin0 -> 8368 bytes
-rw-r--r--sound/direct_sound_samples/cry_haunter.aifbin0 -> 11734 bytes
-rw-r--r--sound/direct_sound_samples/cry_heracross.aifbin0 -> 9164 bytes
-rw-r--r--sound/direct_sound_samples/cry_hitmonchan.aifbin0 -> 8927 bytes
-rw-r--r--sound/direct_sound_samples/cry_hitmonlee.aifbin0 -> 9339 bytes
-rw-r--r--sound/direct_sound_samples/cry_hitmontop.aifbin0 -> 6956 bytes
-rw-r--r--sound/direct_sound_samples/cry_ho_oh.aifbin0 -> 11280 bytes
-rw-r--r--sound/direct_sound_samples/cry_hoothoot.aifbin0 -> 5478 bytes
-rw-r--r--sound/direct_sound_samples/cry_hoppip.aifbin0 -> 4247 bytes
-rw-r--r--sound/direct_sound_samples/cry_horsea.aifbin0 -> 4774 bytes
-rw-r--r--sound/direct_sound_samples/cry_houndoom.aifbin0 -> 9840 bytes
-rw-r--r--sound/direct_sound_samples/cry_houndour.aifbin0 -> 6353 bytes
-rw-r--r--sound/direct_sound_samples/cry_huntail.aifbin0 -> 7965 bytes
-rw-r--r--sound/direct_sound_samples/cry_hypno.aifbin0 -> 14470 bytes
-rw-r--r--sound/direct_sound_samples/cry_igglybuff.aifbin0 -> 3538 bytes
-rw-r--r--sound/direct_sound_samples/cry_illumise.aifbin0 -> 8556 bytes
-rw-r--r--sound/direct_sound_samples/cry_ivysaur.aifbin0 -> 8290 bytes
-rw-r--r--sound/direct_sound_samples/cry_jigglypuff.aifbin0 -> 2741 bytes
-rw-r--r--sound/direct_sound_samples/cry_jirachi.aifbin0 -> 6779 bytes
-rw-r--r--sound/direct_sound_samples/cry_jolteon.aifbin0 -> 7924 bytes
-rw-r--r--sound/direct_sound_samples/cry_jumpluff.aifbin0 -> 8126 bytes
-rw-r--r--sound/direct_sound_samples/cry_jynx.aifbin0 -> 23627 bytes
-rw-r--r--sound/direct_sound_samples/cry_kabuto.aifbin0 -> 6190 bytes
-rw-r--r--sound/direct_sound_samples/cry_kabutops.aifbin0 -> 6887 bytes
-rw-r--r--sound/direct_sound_samples/cry_kadabra.aifbin0 -> 13428 bytes
-rw-r--r--sound/direct_sound_samples/cry_kakuna.aifbin0 -> 9124 bytes
-rw-r--r--sound/direct_sound_samples/cry_kangaskhan.aifbin0 -> 9354 bytes
-rw-r--r--sound/direct_sound_samples/cry_kecleon.aifbin0 -> 4223 bytes
-rw-r--r--sound/direct_sound_samples/cry_kingdra.aifbin0 -> 6943 bytes
-rw-r--r--sound/direct_sound_samples/cry_kingler.aifbin0 -> 12153 bytes
-rw-r--r--sound/direct_sound_samples/cry_kirlia.aifbin0 -> 6120 bytes
-rw-r--r--sound/direct_sound_samples/cry_koffing.aifbin0 -> 10174 bytes
-rw-r--r--sound/direct_sound_samples/cry_krabby.aifbin0 -> 12133 bytes
-rw-r--r--sound/direct_sound_samples/cry_kyogre.aifbin0 -> 17803 bytes
-rw-r--r--sound/direct_sound_samples/cry_lairon.aifbin0 -> 10412 bytes
-rw-r--r--sound/direct_sound_samples/cry_lanturn.aifbin0 -> 5303 bytes
-rw-r--r--sound/direct_sound_samples/cry_lapras.aifbin0 -> 7428 bytes
-rw-r--r--sound/direct_sound_samples/cry_larvitar.aifbin0 -> 6370 bytes
-rw-r--r--sound/direct_sound_samples/cry_latias.aifbin0 -> 6118 bytes
-rw-r--r--sound/direct_sound_samples/cry_latios.aifbin0 -> 10978 bytes
-rw-r--r--sound/direct_sound_samples/cry_ledian.aifbin0 -> 4235 bytes
-rw-r--r--sound/direct_sound_samples/cry_ledyba.aifbin0 -> 3527 bytes
-rw-r--r--sound/direct_sound_samples/cry_lickitung.aifbin0 -> 7591 bytes
-rw-r--r--sound/direct_sound_samples/cry_lileep.aifbin0 -> 4859 bytes
-rw-r--r--sound/direct_sound_samples/cry_linoone.aifbin0 -> 15268 bytes
-rw-r--r--sound/direct_sound_samples/cry_lombre.aifbin0 -> 7303 bytes
-rw-r--r--sound/direct_sound_samples/cry_lotad.aifbin0 -> 2252 bytes
-rw-r--r--sound/direct_sound_samples/cry_loudred.aifbin0 -> 6602 bytes
-rw-r--r--sound/direct_sound_samples/cry_ludicolo.aifbin0 -> 8418 bytes
-rw-r--r--sound/direct_sound_samples/cry_lugia.aifbin0 -> 18920 bytes
-rw-r--r--sound/direct_sound_samples/cry_lunatone.aifbin0 -> 11977 bytes
-rw-r--r--sound/direct_sound_samples/cry_luvdisc.aifbin0 -> 2477 bytes
-rw-r--r--sound/direct_sound_samples/cry_machamp.aifbin0 -> 8276 bytes
-rw-r--r--sound/direct_sound_samples/cry_machoke.aifbin0 -> 6802 bytes
-rw-r--r--sound/direct_sound_samples/cry_machop.aifbin0 -> 6716 bytes
-rw-r--r--sound/direct_sound_samples/cry_magby.aifbin0 -> 7238 bytes
-rw-r--r--sound/direct_sound_samples/cry_magcargo.aifbin0 -> 10506 bytes
-rw-r--r--sound/direct_sound_samples/cry_magikarp.aifbin0 -> 9513 bytes
-rw-r--r--sound/direct_sound_samples/cry_magmar.aifbin0 -> 7758 bytes
-rw-r--r--sound/direct_sound_samples/cry_magnemite.aifbin0 -> 9631 bytes
-rw-r--r--sound/direct_sound_samples/cry_magneton.aifbin0 -> 11935 bytes
-rw-r--r--sound/direct_sound_samples/cry_makuhita.aifbin0 -> 3724 bytes
-rw-r--r--sound/direct_sound_samples/cry_manectric.aifbin0 -> 10512 bytes
-rw-r--r--sound/direct_sound_samples/cry_mankey.aifbin0 -> 8199 bytes
-rw-r--r--sound/direct_sound_samples/cry_mantine.aifbin0 -> 7905 bytes
-rw-r--r--sound/direct_sound_samples/cry_mareep.aifbin0 -> 3715 bytes
-rw-r--r--sound/direct_sound_samples/cry_marill.aifbin0 -> 6559 bytes
-rw-r--r--sound/direct_sound_samples/cry_marowak.aifbin0 -> 7236 bytes
-rw-r--r--sound/direct_sound_samples/cry_marshtomp.aifbin0 -> 8518 bytes
-rw-r--r--sound/direct_sound_samples/cry_masquerain.aifbin0 -> 9851 bytes
-rw-r--r--sound/direct_sound_samples/cry_mawile.aifbin0 -> 5776 bytes
-rw-r--r--sound/direct_sound_samples/cry_medicham.aifbin0 -> 8266 bytes
-rw-r--r--sound/direct_sound_samples/cry_meditite.aifbin0 -> 4098 bytes
-rw-r--r--sound/direct_sound_samples/cry_meganium.aifbin0 -> 8121 bytes
-rw-r--r--sound/direct_sound_samples/cry_meowth.aifbin0 -> 4816 bytes
-rw-r--r--sound/direct_sound_samples/cry_metagross.aifbin0 -> 19665 bytes
-rw-r--r--sound/direct_sound_samples/cry_metang.aifbin0 -> 9418 bytes
-rw-r--r--sound/direct_sound_samples/cry_metapod.aifbin0 -> 11643 bytes
-rw-r--r--sound/direct_sound_samples/cry_mew.aifbin0 -> 15166 bytes
-rw-r--r--sound/direct_sound_samples/cry_mewtwo.aifbin0 -> 15164 bytes
-rw-r--r--sound/direct_sound_samples/cry_mightyena.aifbin0 -> 9768 bytes
-rw-r--r--sound/direct_sound_samples/cry_milotic.aifbin0 -> 19562 bytes
-rw-r--r--sound/direct_sound_samples/cry_miltank.aifbin0 -> 7444 bytes
-rw-r--r--sound/direct_sound_samples/cry_minun.aifbin0 -> 8025 bytes
-rw-r--r--sound/direct_sound_samples/cry_misdreavus.aifbin0 -> 5837 bytes
-rw-r--r--sound/direct_sound_samples/cry_moltres.aifbin0 -> 11817 bytes
-rw-r--r--sound/direct_sound_samples/cry_mr_mime.aifbin0 -> 9467 bytes
-rw-r--r--sound/direct_sound_samples/cry_mudkip.aifbin0 -> 3796 bytes
-rw-r--r--sound/direct_sound_samples/cry_muk.aifbin0 -> 7394 bytes
-rw-r--r--sound/direct_sound_samples/cry_murkrow.aifbin0 -> 8390 bytes
-rw-r--r--sound/direct_sound_samples/cry_natu.aifbin0 -> 5314 bytes
-rw-r--r--sound/direct_sound_samples/cry_nidoking.aifbin0 -> 12196 bytes
-rw-r--r--sound/direct_sound_samples/cry_nidoqueen.aifbin0 -> 8444 bytes
-rw-r--r--sound/direct_sound_samples/cry_nidoran_f.aifbin0 -> 4878 bytes
-rw-r--r--sound/direct_sound_samples/cry_nidoran_m.aifbin0 -> 5236 bytes
-rw-r--r--sound/direct_sound_samples/cry_nidorina.aifbin0 -> 6414 bytes
-rw-r--r--sound/direct_sound_samples/cry_nidorino.aifbin0 -> 6063 bytes
-rw-r--r--sound/direct_sound_samples/cry_nincada.aifbin0 -> 3264 bytes
-rw-r--r--sound/direct_sound_samples/cry_ninetales.aifbin0 -> 12195 bytes
-rw-r--r--sound/direct_sound_samples/cry_ninjask.aifbin0 -> 6104 bytes
-rw-r--r--sound/direct_sound_samples/cry_noctowl.aifbin0 -> 10584 bytes
-rw-r--r--sound/direct_sound_samples/cry_none.aifbin0 -> 8286 bytes
-rw-r--r--sound/direct_sound_samples/cry_nosepass.aifbin0 -> 6716 bytes
-rw-r--r--sound/direct_sound_samples/cry_numel.aifbin0 -> 4685 bytes
-rw-r--r--sound/direct_sound_samples/cry_nuzleaf.aifbin0 -> 5733 bytes
-rw-r--r--sound/direct_sound_samples/cry_octillery.aifbin0 -> 13105 bytes
-rw-r--r--sound/direct_sound_samples/cry_oddish.aifbin0 -> 7318 bytes
-rw-r--r--sound/direct_sound_samples/cry_omanyte.aifbin0 -> 6693 bytes
-rw-r--r--sound/direct_sound_samples/cry_omastar.aifbin0 -> 6687 bytes
-rw-r--r--sound/direct_sound_samples/cry_onix.aifbin0 -> 12360 bytes
-rw-r--r--sound/direct_sound_samples/cry_paras.aifbin0 -> 13944 bytes
-rw-r--r--sound/direct_sound_samples/cry_parasect.aifbin0 -> 15161 bytes
-rw-r--r--sound/direct_sound_samples/cry_pelipper.aifbin0 -> 5915 bytes
-rw-r--r--sound/direct_sound_samples/cry_persian.aifbin0 -> 9432 bytes
-rw-r--r--sound/direct_sound_samples/cry_phanpy.aifbin0 -> 5684 bytes
-rw-r--r--sound/direct_sound_samples/cry_pichu.aifbin0 -> 3704 bytes
-rw-r--r--sound/direct_sound_samples/cry_pidgeot.aifbin0 -> 8611 bytes
-rw-r--r--sound/direct_sound_samples/cry_pidgeotto.aifbin0 -> 7532 bytes
-rw-r--r--sound/direct_sound_samples/cry_pidgey.aifbin0 -> 2005 bytes
-rw-r--r--sound/direct_sound_samples/cry_pikachu.aifbin0 -> 8336 bytes
-rw-r--r--sound/direct_sound_samples/cry_piloswine.aifbin0 -> 6501 bytes
-rw-r--r--sound/direct_sound_samples/cry_pineco.aifbin0 -> 6710 bytes
-rw-r--r--sound/direct_sound_samples/cry_pinsir.aifbin0 -> 6206 bytes
-rw-r--r--sound/direct_sound_samples/cry_plusle.aifbin0 -> 4525 bytes
-rw-r--r--sound/direct_sound_samples/cry_politoed.aifbin0 -> 9134 bytes
-rw-r--r--sound/direct_sound_samples/cry_poliwag.aifbin0 -> 5583 bytes
-rw-r--r--sound/direct_sound_samples/cry_poliwhirl.aifbin0 -> 3374 bytes
-rw-r--r--sound/direct_sound_samples/cry_poliwrath.aifbin0 -> 5602 bytes
-rw-r--r--sound/direct_sound_samples/cry_ponyta.aifbin0 -> 7544 bytes
-rw-r--r--sound/direct_sound_samples/cry_poochyena.aifbin0 -> 4677 bytes
-rw-r--r--sound/direct_sound_samples/cry_porygon.aifbin0 -> 10022 bytes
-rw-r--r--sound/direct_sound_samples/cry_porygon2.aifbin0 -> 7874 bytes
-rw-r--r--sound/direct_sound_samples/cry_primeape.aifbin0 -> 8106 bytes
-rw-r--r--sound/direct_sound_samples/cry_psyduck.aifbin0 -> 6599 bytes
-rw-r--r--sound/direct_sound_samples/cry_pupitar.aifbin0 -> 4255 bytes
-rw-r--r--sound/direct_sound_samples/cry_quagsire.aifbin0 -> 6704 bytes
-rw-r--r--sound/direct_sound_samples/cry_quilava.aifbin0 -> 5982 bytes
-rw-r--r--sound/direct_sound_samples/cry_qwilfish.aifbin0 -> 5829 bytes
-rw-r--r--sound/direct_sound_samples/cry_raichu.aifbin0 -> 11862 bytes
-rw-r--r--sound/direct_sound_samples/cry_raikou.aifbin0 -> 8724 bytes
-rw-r--r--sound/direct_sound_samples/cry_ralts.aifbin0 -> 5086 bytes
-rw-r--r--sound/direct_sound_samples/cry_rapidash.aifbin0 -> 9312 bytes
-rw-r--r--sound/direct_sound_samples/cry_raticate.aifbin0 -> 4791 bytes
-rw-r--r--sound/direct_sound_samples/cry_rattata.aifbin0 -> 3976 bytes
-rw-r--r--sound/direct_sound_samples/cry_rayquaza.aifbin0 -> 14552 bytes
-rw-r--r--sound/direct_sound_samples/cry_regice.aifbin0 -> 15957 bytes
-rw-r--r--sound/direct_sound_samples/cry_regirock.aifbin0 -> 15882 bytes
-rw-r--r--sound/direct_sound_samples/cry_registeel.aifbin0 -> 11496 bytes
-rw-r--r--sound/direct_sound_samples/cry_relicanth.aifbin0 -> 10092 bytes
-rw-r--r--sound/direct_sound_samples/cry_remoraid.aifbin0 -> 5310 bytes
-rw-r--r--sound/direct_sound_samples/cry_rhydon.aifbin0 -> 10207 bytes
-rw-r--r--sound/direct_sound_samples/cry_rhyhorn.aifbin0 -> 9707 bytes
-rw-r--r--sound/direct_sound_samples/cry_roselia.aifbin0 -> 5402 bytes
-rw-r--r--sound/direct_sound_samples/cry_sableye.aifbin0 -> 5847 bytes
-rw-r--r--sound/direct_sound_samples/cry_salamence.aifbin0 -> 12534 bytes
-rw-r--r--sound/direct_sound_samples/cry_sandshrew.aifbin0 -> 4699 bytes
-rw-r--r--sound/direct_sound_samples/cry_sandslash.aifbin0 -> 6804 bytes
-rw-r--r--sound/direct_sound_samples/cry_sceptile.aifbin0 -> 13032 bytes
-rw-r--r--sound/direct_sound_samples/cry_scizor.aifbin0 -> 11482 bytes
-rw-r--r--sound/direct_sound_samples/cry_scyther.aifbin0 -> 6697 bytes
-rw-r--r--sound/direct_sound_samples/cry_seadra.aifbin0 -> 4248 bytes
-rw-r--r--sound/direct_sound_samples/cry_seaking.aifbin0 -> 9674 bytes
-rw-r--r--sound/direct_sound_samples/cry_sealeo.aifbin0 -> 5949 bytes
-rw-r--r--sound/direct_sound_samples/cry_seedot.aifbin0 -> 4127 bytes
-rw-r--r--sound/direct_sound_samples/cry_seel.aifbin0 -> 8975 bytes
-rw-r--r--sound/direct_sound_samples/cry_sentret.aifbin0 -> 2129 bytes
-rw-r--r--sound/direct_sound_samples/cry_seviper.aifbin0 -> 5840 bytes
-rw-r--r--sound/direct_sound_samples/cry_sharpedo.aifbin0 -> 11509 bytes
-rw-r--r--sound/direct_sound_samples/cry_shedinja.aifbin0 -> 3897 bytes
-rw-r--r--sound/direct_sound_samples/cry_shelgon.aifbin0 -> 10012 bytes
-rw-r--r--sound/direct_sound_samples/cry_shellder.aifbin0 -> 7738 bytes
-rw-r--r--sound/direct_sound_samples/cry_shiftry.aifbin0 -> 9881 bytes
-rw-r--r--sound/direct_sound_samples/cry_shroomish.aifbin0 -> 4457 bytes
-rw-r--r--sound/direct_sound_samples/cry_shuckle.aifbin0 -> 5131 bytes
-rw-r--r--sound/direct_sound_samples/cry_shuppet.aifbin0 -> 4164 bytes
-rw-r--r--sound/direct_sound_samples/cry_silcoon.aifbin0 -> 8095 bytes
-rw-r--r--sound/direct_sound_samples/cry_skarmory.aifbin0 -> 12002 bytes
-rw-r--r--sound/direct_sound_samples/cry_skiploom.aifbin0 -> 6537 bytes
-rw-r--r--sound/direct_sound_samples/cry_skitty.aifbin0 -> 3581 bytes
-rw-r--r--sound/direct_sound_samples/cry_slaking.aifbin0 -> 4990 bytes
-rw-r--r--sound/direct_sound_samples/cry_slakoth.aifbin0 -> 4292 bytes
-rw-r--r--sound/direct_sound_samples/cry_slowbro.aifbin0 -> 6740 bytes
-rw-r--r--sound/direct_sound_samples/cry_slowking.aifbin0 -> 11928 bytes
-rw-r--r--sound/direct_sound_samples/cry_slowpoke.aifbin0 -> 3744 bytes
-rw-r--r--sound/direct_sound_samples/cry_slugma.aifbin0 -> 8556 bytes
-rw-r--r--sound/direct_sound_samples/cry_smeargle.aifbin0 -> 5134 bytes
-rw-r--r--sound/direct_sound_samples/cry_smoochum.aifbin0 -> 5880 bytes
-rw-r--r--sound/direct_sound_samples/cry_sneasel.aifbin0 -> 4606 bytes
-rw-r--r--sound/direct_sound_samples/cry_snorlax.aifbin0 -> 2668 bytes
-rw-r--r--sound/direct_sound_samples/cry_snorunt.aifbin0 -> 8521 bytes
-rw-r--r--sound/direct_sound_samples/cry_snubbull.aifbin0 -> 7241 bytes
-rw-r--r--sound/direct_sound_samples/cry_solrock.aifbin0 -> 8100 bytes
-rw-r--r--sound/direct_sound_samples/cry_spearow.aifbin0 -> 8826 bytes
-rw-r--r--sound/direct_sound_samples/cry_spheal.aifbin0 -> 2901 bytes
-rw-r--r--sound/direct_sound_samples/cry_spinarak.aifbin0 -> 6716 bytes
-rw-r--r--sound/direct_sound_samples/cry_spinda.aifbin0 -> 6236 bytes
-rw-r--r--sound/direct_sound_samples/cry_spoink.aifbin0 -> 3669 bytes
-rw-r--r--sound/direct_sound_samples/cry_squirtle.aifbin0 -> 7242 bytes
-rw-r--r--sound/direct_sound_samples/cry_stantler.aifbin0 -> 11228 bytes
-rw-r--r--sound/direct_sound_samples/cry_starmie.aifbin0 -> 10423 bytes
-rw-r--r--sound/direct_sound_samples/cry_staryu.aifbin0 -> 9954 bytes
-rw-r--r--sound/direct_sound_samples/cry_steelix.aifbin0 -> 19009 bytes
-rw-r--r--sound/direct_sound_samples/cry_sudowoodo.aifbin0 -> 8105 bytes
-rw-r--r--sound/direct_sound_samples/cry_suicune.aifbin0 -> 9146 bytes
-rw-r--r--sound/direct_sound_samples/cry_sunflora.aifbin0 -> 7948 bytes
-rw-r--r--sound/direct_sound_samples/cry_sunkern.aifbin0 -> 4077 bytes
-rw-r--r--sound/direct_sound_samples/cry_surskit.aifbin0 -> 5279 bytes
-rw-r--r--sound/direct_sound_samples/cry_swablu.aifbin0 -> 2844 bytes
-rw-r--r--sound/direct_sound_samples/cry_swalot.aifbin0 -> 8696 bytes
-rw-r--r--sound/direct_sound_samples/cry_swampert.aifbin0 -> 11240 bytes
-rw-r--r--sound/direct_sound_samples/cry_swellow.aifbin0 -> 4544 bytes
-rw-r--r--sound/direct_sound_samples/cry_swinub.aifbin0 -> 6349 bytes
-rw-r--r--sound/direct_sound_samples/cry_taillow.aifbin0 -> 3045 bytes
-rw-r--r--sound/direct_sound_samples/cry_tangela.aifbin0 -> 7571 bytes
-rw-r--r--sound/direct_sound_samples/cry_tauros.aifbin0 -> 9170 bytes
-rw-r--r--sound/direct_sound_samples/cry_teddiursa.aifbin0 -> 8286 bytes
-rw-r--r--sound/direct_sound_samples/cry_tentacool.aifbin0 -> 7981 bytes
-rw-r--r--sound/direct_sound_samples/cry_tentacruel.aifbin0 -> 11478 bytes
-rw-r--r--sound/direct_sound_samples/cry_togepi.aifbin0 -> 5481 bytes
-rw-r--r--sound/direct_sound_samples/cry_togetic.aifbin0 -> 3546 bytes
-rw-r--r--sound/direct_sound_samples/cry_torchic.aifbin0 -> 4861 bytes
-rw-r--r--sound/direct_sound_samples/cry_torkoal.aifbin0 -> 4682 bytes
-rw-r--r--sound/direct_sound_samples/cry_totodile.aifbin0 -> 9172 bytes
-rw-r--r--sound/direct_sound_samples/cry_trapinch.aifbin0 -> 5100 bytes
-rw-r--r--sound/direct_sound_samples/cry_treecko.aifbin0 -> 5856 bytes
-rw-r--r--sound/direct_sound_samples/cry_tropius.aifbin0 -> 16338 bytes
-rw-r--r--sound/direct_sound_samples/cry_typhlosion.aifbin0 -> 18964 bytes
-rw-r--r--sound/direct_sound_samples/cry_tyranitar.aifbin0 -> 11676 bytes
-rw-r--r--sound/direct_sound_samples/cry_tyrogue.aifbin0 -> 8092 bytes
-rw-r--r--sound/direct_sound_samples/cry_umbreon.aifbin0 -> 7766 bytes
-rw-r--r--sound/direct_sound_samples/cry_unown.aifbin0 -> 6596 bytes
-rw-r--r--sound/direct_sound_samples/cry_unused_265.aifbin0 -> 4697 bytes
-rw-r--r--sound/direct_sound_samples/cry_unused_268.aifbin0 -> 8849 bytes
-rw-r--r--sound/direct_sound_samples/cry_ursaring.aifbin0 -> 14882 bytes
-rw-r--r--sound/direct_sound_samples/cry_vaporeon.aifbin0 -> 11038 bytes
-rw-r--r--sound/direct_sound_samples/cry_venomoth.aifbin0 -> 8022 bytes
-rw-r--r--sound/direct_sound_samples/cry_venonat.aifbin0 -> 7766 bytes
-rw-r--r--sound/direct_sound_samples/cry_venusaur.aifbin0 -> 9669 bytes
-rw-r--r--sound/direct_sound_samples/cry_vibrava.aifbin0 -> 7023 bytes
-rw-r--r--sound/direct_sound_samples/cry_victreebel.aifbin0 -> 9650 bytes
-rw-r--r--sound/direct_sound_samples/cry_vigoroth.aifbin0 -> 7189 bytes
-rw-r--r--sound/direct_sound_samples/cry_vileplume.aifbin0 -> 12780 bytes
-rw-r--r--sound/direct_sound_samples/cry_volbeat.aifbin0 -> 5792 bytes
-rw-r--r--sound/direct_sound_samples/cry_voltorb.aifbin0 -> 12366 bytes
-rw-r--r--sound/direct_sound_samples/cry_vulpix.aifbin0 -> 11891 bytes
-rw-r--r--sound/direct_sound_samples/cry_wailmer.aifbin0 -> 14154 bytes
-rw-r--r--sound/direct_sound_samples/cry_wailord.aifbin0 -> 20949 bytes
-rw-r--r--sound/direct_sound_samples/cry_walrein.aifbin0 -> 18087 bytes
-rw-r--r--sound/direct_sound_samples/cry_wartortle.aifbin0 -> 8634 bytes
-rw-r--r--sound/direct_sound_samples/cry_weedle.aifbin0 -> 8144 bytes
-rw-r--r--sound/direct_sound_samples/cry_weepinbell.aifbin0 -> 7330 bytes
-rw-r--r--sound/direct_sound_samples/cry_weezing.aifbin0 -> 10826 bytes
-rw-r--r--sound/direct_sound_samples/cry_whiscash.aifbin0 -> 8499 bytes
-rw-r--r--sound/direct_sound_samples/cry_whismur.aifbin0 -> 4112 bytes
-rw-r--r--sound/direct_sound_samples/cry_wigglytuff.aifbin0 -> 3432 bytes
-rw-r--r--sound/direct_sound_samples/cry_wingull.aifbin0 -> 6152 bytes
-rw-r--r--sound/direct_sound_samples/cry_wobbuffet.aifbin0 -> 10296 bytes
-rw-r--r--sound/direct_sound_samples/cry_wooper.aifbin0 -> 3731 bytes
-rw-r--r--sound/direct_sound_samples/cry_wurmple.aifbin0 -> 4433 bytes
-rw-r--r--sound/direct_sound_samples/cry_wynaut.aifbin0 -> 6953 bytes
-rw-r--r--sound/direct_sound_samples/cry_xatu.aifbin0 -> 7413 bytes
-rw-r--r--sound/direct_sound_samples/cry_yanma.aifbin0 -> 8526 bytes
-rw-r--r--sound/direct_sound_samples/cry_zangoose.aifbin0 -> 4814 bytes
-rw-r--r--sound/direct_sound_samples/cry_zapdos.aifbin0 -> 7745 bytes
-rw-r--r--sound/direct_sound_samples/cry_zigzagoon.aifbin0 -> 5807 bytes
-rw-r--r--sound/direct_sound_samples/cry_zubat.aifbin0 -> 9709 bytes
-rw-r--r--sound/programmable_wave_samples/84553BC.aifbin3170 -> 0 bytes
-rw-r--r--sound/programmable_wave_samples/84553BC.pcm1
-rw-r--r--sound/programmable_wave_samples/84553CC.aifbin3170 -> 0 bytes
-rw-r--r--sound/programmable_wave_samples/84553CC.pcm1
-rw-r--r--sound/programmable_wave_samples/84553DC.aifbin3170 -> 0 bytes
-rw-r--r--sound/programmable_wave_samples/84553DC.pcm1
-rw-r--r--sound/programmable_wave_samples/84553EC.aifbin3170 -> 0 bytes
-rw-r--r--sound/programmable_wave_samples/84553EC.pcm1
-rw-r--r--sound/programmable_wave_samples/84553FC.aifbin3170 -> 0 bytes
-rw-r--r--sound/programmable_wave_samples/84553FC.pcm1
-rw-r--r--sound/programmable_wave_samples/845540C.aifbin3170 -> 0 bytes
-rw-r--r--sound/programmable_wave_samples/845540C.pcm1
-rw-r--r--sound/programmable_wave_samples/845541C.pcmbin0 -> 16 bytes
-rw-r--r--sound/programmable_wave_samples/845542C.aifbin3170 -> 0 bytes
-rw-r--r--sound/programmable_wave_samples/845542C.pcm1
-rw-r--r--sound/programmable_wave_samples/845543C.aifbin3170 -> 0 bytes
-rw-r--r--sound/programmable_wave_samples/845543C.pcmbin0 -> 16 bytes
-rw-r--r--sound/programmable_wave_samples/845544C.aifbin3170 -> 0 bytes
-rw-r--r--sound/programmable_wave_samples/845544C.pcm1
-rw-r--r--sound/voice_groups.inc1552
-rw-r--r--src/bard_music.c84
-rw-r--r--src/battle_ai.c1924
-rw-r--r--src/battle_anim_80A7E7C.c777
-rw-r--r--src/battle_setup.c259
-rw-r--r--src/berry.c65
-rw-r--r--src/berry_tag_screen.c878
-rw-r--r--src/blend_palette.c1
-rw-r--r--src/calculate_base_damage.c1487
-rw-r--r--src/clear_save_data_menu.c7
-rw-r--r--src/clock.c92
-rw-r--r--src/coins.c4
-rw-r--r--src/contest_painting.c1353
-rw-r--r--src/coord_event_weather.c117
-rw-r--r--src/credits.c916
-rw-r--r--src/daycare.c33
-rw-r--r--src/decompress.c67
-rw-r--r--src/decoration.c26
-rw-r--r--src/dewford_trend.c15
-rw-r--r--src/diploma.c7
-rw-r--r--src/event_data.c163
-rw-r--r--src/field_camera.c20
-rw-r--r--src/field_door.c9
-rw-r--r--src/field_effect.c14
-rw-r--r--src/field_ground_effect.c256
-rw-r--r--src/field_map_obj_helpers.c (renamed from src/map_obj_80643A4.c)42
-rw-r--r--src/field_message_box.c2
-rw-r--r--src/field_player_avatar.c1602
-rw-r--r--src/field_poison.c7
-rw-r--r--src/fieldmap.c809
-rw-r--r--src/flag.c44
-rw-r--r--src/fldeff_emotion.c82
-rw-r--r--src/fldeff_strength.c74
-rw-r--r--src/heal_location.c9
-rw-r--r--src/intro.c2384
-rw-r--r--src/item.c8
-rw-r--r--src/item_use.c414
-rw-r--r--src/landmark.c3
-rw-r--r--src/link.c49
-rw-r--r--src/load_save.c164
-rw-r--r--src/lottery_corner.c92
-rw-r--r--src/mail.c669
-rw-r--r--src/main.c35
-rw-r--r--src/main_menu.c437
-rw-r--r--src/map_obj_lock.c29
-rw-r--r--src/matsuda_debug_menu.c1132
-rw-r--r--src/menu.c75
-rw-r--r--src/menu_cursor.c8
-rw-r--r--src/metatile_behavior.c1065
-rw-r--r--src/money.c240
-rw-r--r--src/mori_debug_menu.c75
-rw-r--r--src/mystery_event_menu.c346
-rw-r--r--src/mystery_event_script.c97
-rw-r--r--src/new_game.c58
-rw-r--r--src/option_menu.c3
-rw-r--r--src/palette.c24
-rw-r--r--src/party_menu.c317
-rw-r--r--src/play_time.c2
-rw-r--r--src/player_pc.c818
-rw-r--r--src/pokedex.c168
-rw-r--r--src/pokemon_1.c14
-rw-r--r--src/pokemon_2.c97
-rw-r--r--src/pokemon_3.c478
-rw-r--r--src/pokemon_size_record.c92
-rw-r--r--src/pokemon_summary_screen.c175
-rw-r--r--src/record_mixing.c40
-rw-r--r--src/rom4.c372
-rw-r--r--src/rom_800D42C.c89
-rw-r--r--src/rtc.c24
-rw-r--r--src/safari_zone.c20
-rw-r--r--src/save.c73
-rw-r--r--src/save_failed_screen.c301
-rw-r--r--src/save_menu_util.c19
-rw-r--r--src/scrcmd.c233
-rw-r--r--src/script.c8
-rw-r--r--src/script_menu.c431
-rw-r--r--src/sound.c43
-rw-r--r--src/sprite.c39
-rw-r--r--src/start_menu.c170
-rw-r--r--src/starter_choose.c36
-rw-r--r--src/task.c111
-rw-r--r--src/text.c76
-rw-r--r--src/text_window.c21
-rw-r--r--src/tileset_anim.c1
-rw-r--r--src/title_screen.c33
-rw-r--r--src/trainer_card.c2027
-rw-r--r--src/trainer_see.c156
-rw-r--r--src/truck_scene.c15
-rw-r--r--src/tv.c293
-rw-r--r--src/var.c37
-rw-r--r--src/wallclock.c27
-rw-r--r--src/weather.c307
-rw-r--r--src/wild_encounter.c42
-rw-r--r--sym_common.txt6
-rw-r--r--sym_ewram.txt52
-rw-r--r--tools/aif2pcm/main.c859
971 files changed, 141709 insertions, 157559 deletions
diff --git a/.gitignore b/.gitignore
index 79b9641a0..550f7677c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -34,3 +34,4 @@ types_*.taghl
*.s.old2
*.dump
*.sa*
+Thumbs.db
diff --git a/Makefile b/Makefile
index 3ca1f7a34..3671dbdbf 100644
--- a/Makefile
+++ b/Makefile
@@ -4,7 +4,7 @@ AS := $(DEVKITARM)/bin/arm-none-eabi-as
ASFLAGS := -mcpu=arm7tdmi
CC1 := tools/agbcc/bin/agbcc
-override CFLAGS += -mthumb-interwork -Wimplicit -O2 -fhex-asm
+override CFLAGS += -mthumb-interwork -Wimplicit -Wparentheses -Wunused -Werror -O2 -fhex-asm
CPP := $(DEVKITARM)/bin/arm-none-eabi-cpp
CPPFLAGS := -I tools/agbcc/include -iquote include -nostdinc -undef
@@ -104,7 +104,7 @@ compare_sapphire_rev2: sapphire_rev2
@$(SHA1) sapphire_rev2.sha1
clean: tidy
- rm -f sound/programmable_wave_samples/*.bin sound/direct_sound_samples/*.bin sound/**/*.pcm
+ rm -f sound/direct_sound_samples/*.bin
rm -f $(SONG_OBJS)
find . \( -iname '*.1bpp' -o -iname '*.4bpp' -o -iname '*.8bpp' -o -iname '*.gbapal' -o -iname '*.lz' -o -iname '*.rl' \) -exec rm {} +
@@ -126,7 +126,6 @@ include generated.mk
include misc.mk
%.s: ;
-%.bin: ;
%.png: ;
%.pal: ;
%.aif: ;
@@ -137,8 +136,8 @@ include misc.mk
%.gbapal: %.pal ; $(GFX) $< $@
%.lz: % ; $(GFX) $< $@
%.rl: % ; $(GFX) $< $@
-%.pcm: %.aif ; $(AIF) $< $@
-%.bin: %.aif ; $(AIF) $< $@
+sound/direct_sound_samples/cry_%.bin: sound/direct_sound_samples/cry_%.aif ; $(AIF) $< $@ --compress
+%.bin: %.aif ; $(AIF) $< $@
sound/songs/%.s: sound/songs/%.mid
cd $(@D) && ../../$(MID) $(<F)
diff --git a/asm/battle_811DA74.s b/asm/battle_811DA74.s
index dc3cd456f..13a7f974e 100644
--- a/asm/battle_811DA74.s
+++ b/asm/battle_811DA74.s
@@ -182,15 +182,15 @@ _0811DBBC: .4byte 0x02017810
sub_811DBC0: @ 811DBC0
push {r4-r6,lr}
movs r6, 0
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _0811DBE4
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _0811DC18
- ldr r0, _0811DC04 @ =gUnknown_020239F8
+ ldr r0, _0811DC04 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x40
ands r0, r1
@@ -214,7 +214,7 @@ _0811DBE4:
bne _0811DC50
b _0811DC4E
.align 2, 0
-_0811DC04: .4byte gUnknown_020239F8
+_0811DC04: .4byte gBattleTypeFlags
_0811DC08: .4byte gSprites
_0811DC0C: .4byte gUnknown_03004340
_0811DC10: .4byte gUnknown_02024A60
@@ -330,11 +330,11 @@ sub_811DCA0: @ 811DCA0
lsls r1, 2
adds r1, r4
strb r2, [r1, 0x9]
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _0811DD56
- ldr r0, _0811DDC4 @ =gUnknown_020239F8
+ ldr r0, _0811DDC4 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x40
ands r0, r1
@@ -426,7 +426,7 @@ _0811DDB4:
.align 2, 0
_0811DDBC: .4byte gUnknown_02024A60
_0811DDC0: .4byte 0x02017810
-_0811DDC4: .4byte gUnknown_020239F8
+_0811DDC4: .4byte gBattleTypeFlags
_0811DDC8: .4byte gUnknown_0300434C
_0811DDCC: .4byte gSprites
_0811DDD0: .4byte gUnknown_03004340
@@ -1021,7 +1021,7 @@ sub_811E29C: @ 811E29C
ands r0, r1
cmp r0, 0
bne _0811E302
- ldr r0, _0811E2D0 @ =gUnknown_020239F8
+ ldr r0, _0811E2D0 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x2
ands r0, r1
@@ -1038,7 +1038,7 @@ sub_811E29C: @ 811E29C
b _0811E302
.align 2, 0
_0811E2CC: .4byte gPaletteFade
-_0811E2D0: .4byte gUnknown_020239F8
+_0811E2D0: .4byte gBattleTypeFlags
_0811E2D4: .4byte gUnknown_03004330
_0811E2D8: .4byte gUnknown_02024A60
_0811E2DC: .4byte sub_811E258
@@ -1078,7 +1078,7 @@ dp01_tbl3_exec_completed: @ 811E314
adds r0, r1
ldr r1, _0811E35C @ =sub_811DA94
str r1, [r0]
- ldr r0, _0811E360 @ =gUnknown_020239F8
+ ldr r0, _0811E360 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x2
ands r0, r1
@@ -1102,7 +1102,7 @@ dp01_tbl3_exec_completed: @ 811E314
_0811E354: .4byte gUnknown_03004330
_0811E358: .4byte gUnknown_02024A60
_0811E35C: .4byte sub_811DA94
-_0811E360: .4byte gUnknown_020239F8
+_0811E360: .4byte gBattleTypeFlags
_0811E364: .4byte gUnknown_02023A60
_0811E368:
ldr r2, _0811E384 @ =gUnknown_02024A64
@@ -3628,7 +3628,7 @@ sub_811F864: @ 811F864
lsrs r0, 16
mov r8, r0
ldr r0, _0811F9B4 @ =sub_80312F0
- bl object_new_hidden_with_callback
+ bl CreateInvisibleSpriteWithCallback
ldr r1, _0811F9B8 @ =gUnknown_0300434C
mov r9, r1
add r9, r6
@@ -3900,7 +3900,7 @@ sub_811FAE4: @ 811FAE4
push {r4-r6,lr}
mov r6, r8
push {r6}
- ldr r0, _0811FB14 @ =gUnknown_020239F8
+ ldr r0, _0811FB14 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x40
ands r0, r1
@@ -3921,7 +3921,7 @@ _0811FB0A:
bl sub_803FC34
b _0811FB34
.align 2, 0
-_0811FB14: .4byte gUnknown_020239F8
+_0811FB14: .4byte gBattleTypeFlags
_0811FB18: .4byte gUnknown_02024A60
_0811FB1C: .4byte 0x0000fff0
_0811FB20: .4byte gLinkPlayers
@@ -5467,11 +5467,11 @@ _08120748:
mov r9, r0
ldrh r0, [r1, 0x8]
strb r0, [r7]
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _08120768
- ldr r0, _0812078C @ =gUnknown_020239F8
+ ldr r0, _0812078C @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x40
ands r0, r1
@@ -5494,7 +5494,7 @@ _08120768:
b _081207EC
.align 2, 0
_08120788: .4byte gUnknown_02024A60
-_0812078C: .4byte gUnknown_020239F8
+_0812078C: .4byte gBattleTypeFlags
_08120790: .4byte gUnknown_02023A60
_08120794: .4byte gUnknown_02024A6A
_08120798:
diff --git a/asm/battle_ai.s b/asm/battle_ai.s
index 78e928ac7..829768e17 100644
--- a/asm/battle_ai.s
+++ b/asm/battle_ai.s
@@ -5,7 +5,7 @@
.syntax unified
.text
-
+
thumb_func_start BattleAICmd_if_status_in_party
BattleAICmd_if_status_in_party: @ 8108964
push {r4-r7,lr}
@@ -212,7 +212,7 @@ _08108AE8: .4byte gAIScriptPtr
thumb_func_start BattleAICmd_unk_36
BattleAICmd_unk_36: @ 8108AEC
push {lr}
- ldr r2, _08108B3C @ =word_2024DB8
+ ldr r2, _08108B3C @ =gBattleWeather
ldrh r1, [r2]
movs r0, 0x7
ands r0, r1
@@ -255,7 +255,7 @@ _08108B2E:
pop {r0}
bx r0
.align 2, 0
-_08108B3C: .4byte word_2024DB8
+_08108B3C: .4byte gBattleWeather
_08108B40: .4byte 0x02016800
_08108B44: .4byte gAIScriptPtr
thumb_func_end BattleAICmd_unk_36
@@ -1649,7 +1649,7 @@ _08109598: .4byte gUnknown_02024CA8
thumb_func_start BattleAICmd_unk_4C
BattleAICmd_unk_4C: @ 810959C
ldr r2, _081095B4 @ =0x02016800
- ldr r0, _081095B8 @ =gUnknown_020239F8
+ ldr r0, _081095B8 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x1
ands r0, r1
@@ -1661,7 +1661,7 @@ BattleAICmd_unk_4C: @ 810959C
bx lr
.align 2, 0
_081095B4: .4byte 0x02016800
-_081095B8: .4byte gUnknown_020239F8
+_081095B8: .4byte gBattleTypeFlags
_081095BC: .4byte gAIScriptPtr
thumb_func_end BattleAICmd_unk_4C
diff --git a/asm/battle_anim.s b/asm/battle_anim.s
new file mode 100644
index 000000000..a64d0414a
--- /dev/null
+++ b/asm/battle_anim.s
@@ -0,0 +1,4729 @@
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_8075624
+sub_8075624: @ 8075624
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ ldr r0, _080756B8 @ =gUnknown_0202F7B0
+ movs r1, 0
+ strb r1, [r0]
+ ldr r0, _080756BC @ =gUnknown_0202F7B1
+ strb r1, [r0]
+ ldr r0, _080756C0 @ =gUnknown_0202F7B2
+ strb r1, [r0]
+ ldr r0, _080756C4 @ =gUnknown_0202F7B3
+ strb r1, [r0]
+ ldr r0, _080756C8 @ =gUnknown_0202F7B4
+ movs r1, 0
+ str r1, [r0]
+ ldr r0, _080756CC @ =gUnknown_0202F7B8
+ str r1, [r0]
+ ldr r0, _080756D0 @ =gUnknown_0202F7BC
+ movs r2, 0
+ strh r1, [r0]
+ ldr r0, _080756D4 @ =gUnknown_0202F7BE
+ strb r2, [r0]
+ ldr r4, _080756D8 @ =gUnknown_0202F7C2
+ ldr r5, _080756DC @ =gUnknown_0202F7C4
+ ldr r6, _080756E0 @ =gUnknown_0202F7C5
+ ldr r7, _080756E4 @ =gUnknown_0202F7C6
+ ldr r0, _080756E8 @ =gUnknown_0202F7C8
+ mov r12, r0
+ ldr r1, _080756EC @ =gUnknown_0202F7C9
+ mov r8, r1
+ ldr r0, _080756F0 @ =gUnknown_0202F7D2
+ mov r9, r0
+ ldr r1, _080756F4 @ =0x0000ffff
+ adds r3, r1, 0
+ ldr r1, _080756F8 @ =gUnknown_03004B10
+ movs r2, 0x7
+_0807566E:
+ ldrh r0, [r1]
+ orrs r0, r3
+ strh r0, [r1]
+ adds r1, 0x2
+ subs r2, 0x1
+ cmp r2, 0
+ bge _0807566E
+ ldr r1, _080756FC @ =gBattleAnimArgs
+ movs r2, 0
+ adds r0, r1, 0
+ adds r0, 0xE
+_08075684:
+ strh r2, [r0]
+ subs r0, 0x2
+ cmp r0, r1
+ bge _08075684
+ movs r1, 0
+ movs r0, 0xFF
+ strb r0, [r4]
+ movs r0, 0x1
+ negs r0, r0
+ strb r0, [r4, 0x1]
+ strb r1, [r5]
+ strb r1, [r6]
+ movs r0, 0
+ strh r1, [r7]
+ mov r1, r12
+ strb r0, [r1]
+ mov r1, r8
+ strb r0, [r1]
+ mov r1, r9
+ strb r0, [r1]
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080756B8: .4byte gUnknown_0202F7B0
+_080756BC: .4byte gUnknown_0202F7B1
+_080756C0: .4byte gUnknown_0202F7B2
+_080756C4: .4byte gUnknown_0202F7B3
+_080756C8: .4byte gUnknown_0202F7B4
+_080756CC: .4byte gUnknown_0202F7B8
+_080756D0: .4byte gUnknown_0202F7BC
+_080756D4: .4byte gUnknown_0202F7BE
+_080756D8: .4byte gUnknown_0202F7C2
+_080756DC: .4byte gUnknown_0202F7C4
+_080756E0: .4byte gUnknown_0202F7C5
+_080756E4: .4byte gUnknown_0202F7C6
+_080756E8: .4byte gUnknown_0202F7C8
+_080756EC: .4byte gUnknown_0202F7C9
+_080756F0: .4byte gUnknown_0202F7D2
+_080756F4: .4byte 0x0000ffff
+_080756F8: .4byte gUnknown_03004B10
+_080756FC: .4byte gBattleAnimArgs
+ thumb_func_end sub_8075624
+
+ thumb_func_start move_anim_start_t1
+move_anim_start_t1: @ 8075700
+ push {lr}
+ adds r1, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ ldr r2, _08075724 @ =gUnknown_0202F7C8
+ ldr r0, _08075728 @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ strb r0, [r2]
+ ldr r2, _0807572C @ =gUnknown_0202F7C9
+ ldr r0, _08075730 @ =gUnknown_02024C08
+ ldrb r0, [r0]
+ strb r0, [r2]
+ ldr r0, _08075734 @ =gBattleAnims_Moves
+ movs r2, 0x1
+ bl move_something
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08075724: .4byte gUnknown_0202F7C8
+_08075728: .4byte gUnknown_02024C07
+_0807572C: .4byte gUnknown_0202F7C9
+_08075730: .4byte gUnknown_02024C08
+_08075734: .4byte gBattleAnims_Moves
+ thumb_func_end move_anim_start_t1
+
+ thumb_func_start move_something
+move_something: @ 8075738
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ str r0, [sp]
+ lsls r1, 16
+ lsrs r1, 16
+ mov r8, r1
+ lsls r2, 24
+ lsrs r2, 24
+ mov r9, r2
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080757D8
+ bl sub_8079E24
+ movs r0, 0
+ bl sub_8043EB4
+ movs r4, 0
+ mov r0, r8
+ lsls r0, 2
+ mov r10, r0
+ ldr r6, _0807578C @ =gUnknown_02024A6A
+ movs r7, 0x64
+ ldr r5, _08075790 @ =gUnknown_0202F7CA
+_08075774:
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _08075798
+ ldrh r0, [r6]
+ muls r0, r7
+ ldr r1, _08075794 @ =gEnemyParty
+ b _0807579E
+ .align 2, 0
+_0807578C: .4byte gUnknown_02024A6A
+_08075790: .4byte gUnknown_0202F7CA
+_08075794: .4byte gEnemyParty
+_08075798:
+ ldrh r0, [r6]
+ muls r0, r7
+ ldr r1, _080757C0 @ =gPlayerParty
+_0807579E:
+ adds r0, r1
+ movs r1, 0xB
+ bl GetMonData
+ strh r0, [r5]
+ adds r6, 0x2
+ adds r5, 0x2
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _08075774
+ ldr r3, _080757C4 @ =gUnknown_0202F7C6
+ ldr r5, _080757C8 @ =gUnknown_0202F7C2
+ ldr r1, _080757CC @ =gUnknown_0202F7B1
+ mov r12, r1
+ ldr r7, _080757D0 @ =gUnknown_0202F7AC
+ ldr r6, _080757D4 @ =sub_80759D0
+ b _080757FC
+ .align 2, 0
+_080757C0: .4byte gPlayerParty
+_080757C4: .4byte gUnknown_0202F7C6
+_080757C8: .4byte gUnknown_0202F7C2
+_080757CC: .4byte gUnknown_0202F7B1
+_080757D0: .4byte gUnknown_0202F7AC
+_080757D4: .4byte sub_80759D0
+_080757D8:
+ ldr r3, _08075808 @ =gUnknown_0202F7C6
+ ldr r5, _0807580C @ =gUnknown_0202F7C2
+ mov r0, r8
+ lsls r0, 2
+ mov r10, r0
+ ldr r1, _08075810 @ =gUnknown_0202F7B1
+ mov r12, r1
+ ldr r7, _08075814 @ =gUnknown_0202F7AC
+ ldr r6, _08075818 @ =sub_80759D0
+ ldr r2, _0807581C @ =0x02019348
+ ldr r1, _08075820 @ =gUnknown_0202F7CA
+ movs r4, 0x3
+_080757F0:
+ ldrh r0, [r2]
+ strh r0, [r1]
+ adds r1, 0x2
+ subs r4, 0x1
+ cmp r4, 0
+ bge _080757F0
+_080757FC:
+ mov r0, r9
+ cmp r0, 0
+ bne _08075824
+ strh r0, [r3]
+ b _08075828
+ .align 2, 0
+_08075808: .4byte gUnknown_0202F7C6
+_0807580C: .4byte gUnknown_0202F7C2
+_08075810: .4byte gUnknown_0202F7B1
+_08075814: .4byte gUnknown_0202F7AC
+_08075818: .4byte sub_80759D0
+_0807581C: .4byte 0x02019348
+_08075820: .4byte gUnknown_0202F7CA
+_08075824:
+ mov r1, r8
+ strh r1, [r3]
+_08075828:
+ ldr r1, _0807587C @ =gBattleAnimArgs
+ movs r2, 0
+ adds r0, r1, 0
+ adds r0, 0xE
+_08075830:
+ strh r2, [r0]
+ subs r0, 0x2
+ cmp r0, r1
+ bge _08075830
+ movs r0, 0xFF
+ strb r0, [r5]
+ movs r0, 0x1
+ negs r0, r0
+ strb r0, [r5, 0x1]
+ ldr r0, [sp]
+ add r0, r10
+ ldr r0, [r0]
+ ldr r1, _08075880 @ =gUnknown_0202F7A4
+ str r0, [r1]
+ movs r0, 0x1
+ mov r1, r12
+ strb r0, [r1]
+ movs r0, 0
+ ldr r1, _08075884 @ =gUnknown_0202F7B0
+ strb r0, [r1]
+ str r6, [r7]
+ ldr r0, _08075888 @ =0x0000ffff
+ adds r2, r0, 0
+ ldr r1, _0807588C @ =gUnknown_03004B10
+ movs r4, 0x7
+_08075862:
+ ldrh r0, [r1]
+ orrs r0, r2
+ strh r0, [r1]
+ adds r1, 0x2
+ subs r4, 0x1
+ cmp r4, 0
+ bge _08075862
+ mov r1, r9
+ cmp r1, 0
+ beq _080758AE
+ movs r4, 0
+ ldr r2, _08075890 @ =gUnknown_081C7160
+ b _08075896
+ .align 2, 0
+_0807587C: .4byte gBattleAnimArgs
+_08075880: .4byte gUnknown_0202F7A4
+_08075884: .4byte gUnknown_0202F7B0
+_08075888: .4byte 0x0000ffff
+_0807588C: .4byte gUnknown_03004B10
+_08075890: .4byte gUnknown_081C7160
+_08075894:
+ adds r4, 0x1
+_08075896:
+ lsls r0, r4, 1
+ adds r0, r2
+ ldrh r0, [r0]
+ ldr r1, _080758D0 @ =0x0000ffff
+ cmp r0, r1
+ beq _080758AE
+ cmp r8, r0
+ bne _08075894
+ ldr r0, _080758D4 @ =gMPlay_BGM
+ movs r2, 0x80
+ bl m4aMPlayVolumeControl
+_080758AE:
+ ldr r0, _080758D8 @ =gUnknown_030042C4
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _080758DC @ =gUnknown_03004240
+ strh r1, [r0]
+ ldr r0, _080758E0 @ =gUnknown_03004200
+ strh r1, [r0]
+ ldr r0, _080758E4 @ =gUnknown_03004244
+ strh r1, [r0]
+ 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
+_080758D0: .4byte 0x0000ffff
+_080758D4: .4byte gMPlay_BGM
+_080758D8: .4byte gUnknown_030042C4
+_080758DC: .4byte gUnknown_03004240
+_080758E0: .4byte gUnknown_03004200
+_080758E4: .4byte gUnknown_03004244
+ thumb_func_end move_something
+
+ thumb_func_start move_anim_8072740
+move_anim_8072740: @ 80758E8
+ push {r4,lr}
+ adds r4, r0, 0
+ bl FreeSpriteOamMatrix
+ adds r0, r4, 0
+ bl DestroySprite
+ ldr r1, _08075904 @ =gUnknown_0202F7B2
+ ldrb r0, [r1]
+ subs r0, 0x1
+ strb r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08075904: .4byte gUnknown_0202F7B2
+ thumb_func_end move_anim_8072740
+
+ thumb_func_start move_anim_task_del
+move_anim_task_del: @ 8075908
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ bl DestroyTask
+ ldr r1, _08075920 @ =gUnknown_0202F7B2
+ ldrb r0, [r1]
+ subs r0, 0x1
+ strb r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08075920: .4byte gUnknown_0202F7B2
+ thumb_func_end move_anim_task_del
+
+ thumb_func_start move_anim_related_task_del
+move_anim_related_task_del: @ 8075924
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ bl DestroyTask
+ ldr r1, _0807593C @ =gUnknown_0202F7B3
+ ldrb r0, [r1]
+ subs r0, 0x1
+ strb r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807593C: .4byte gUnknown_0202F7B3
+ thumb_func_end move_anim_related_task_del
+
+ thumb_func_start sub_8075940
+sub_8075940: @ 8075940
+ push {r4,lr}
+ lsls r0, 16
+ lsrs r3, r0, 16
+ movs r2, 0
+ ldr r4, _08075958 @ =0x0000ffff
+ ldr r1, _0807595C @ =gUnknown_03004B10
+_0807594C:
+ ldrh r0, [r1]
+ cmp r0, r4
+ bne _08075960
+ strh r3, [r1]
+ b _08075968
+ .align 2, 0
+_08075958: .4byte 0x0000ffff
+_0807595C: .4byte gUnknown_03004B10
+_08075960:
+ adds r1, 0x2
+ adds r2, 0x1
+ cmp r2, 0x7
+ ble _0807594C
+_08075968:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8075940
+
+ thumb_func_start sub_8075970
+sub_8075970: @ 8075970
+ push {r4,lr}
+ lsls r0, 16
+ lsrs r3, r0, 16
+ movs r2, 0
+ ldr r0, _0807598C @ =0x0000ffff
+ adds r4, r0, 0
+ ldr r1, _08075990 @ =gUnknown_03004B10
+_0807597E:
+ ldrh r0, [r1]
+ cmp r0, r3
+ bne _08075994
+ orrs r0, r4
+ strh r0, [r1]
+ b _0807599C
+ .align 2, 0
+_0807598C: .4byte 0x0000ffff
+_08075990: .4byte gUnknown_03004B10
+_08075994:
+ adds r1, 0x2
+ adds r2, 0x1
+ cmp r2, 0x7
+ ble _0807597E
+_0807599C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8075970
+
+ thumb_func_start move_anim_waiter
+move_anim_waiter: @ 80759A4
+ push {lr}
+ ldr r2, _080759BC @ =gUnknown_0202F7B0
+ ldrb r1, [r2]
+ movs r0, 0
+ ldrsb r0, [r2, r0]
+ cmp r0, 0
+ bgt _080759C8
+ ldr r0, _080759C0 @ =gUnknown_0202F7AC
+ ldr r1, _080759C4 @ =sub_80759D0
+ str r1, [r0]
+ movs r0, 0
+ b _080759CA
+ .align 2, 0
+_080759BC: .4byte gUnknown_0202F7B0
+_080759C0: .4byte gUnknown_0202F7AC
+_080759C4: .4byte sub_80759D0
+_080759C8:
+ subs r0, r1, 0x1
+_080759CA:
+ strb r0, [r2]
+ pop {r0}
+ bx r0
+ thumb_func_end move_anim_waiter
+
+ thumb_func_start sub_80759D0
+sub_80759D0: @ 80759D0
+ push {r4,lr}
+ ldr r4, _08075A00 @ =gUnknown_0837F4B8
+_080759D4:
+ ldr r0, _08075A04 @ =gUnknown_0202F7A4
+ ldr r0, [r0]
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r4
+ ldr r0, [r0]
+ bl _call_via_r0
+ ldr r0, _08075A08 @ =gUnknown_0202F7B0
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0
+ bne _080759F8
+ ldr r0, _08075A0C @ =gUnknown_0202F7B1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080759D4
+_080759F8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08075A00: .4byte gUnknown_0837F4B8
+_08075A04: .4byte gUnknown_0202F7A4
+_08075A08: .4byte gUnknown_0202F7B0
+_08075A0C: .4byte gUnknown_0202F7B1
+ thumb_func_end sub_80759D0
+
+ thumb_func_start ma00_load_graphics
+ma00_load_graphics: @ 8075A10
+ push {r4-r6,lr}
+ ldr r6, _08075A5C @ =gUnknown_0202F7A4
+ ldr r0, [r6]
+ adds r1, r0, 0x1
+ str r1, [r6]
+ ldrb r4, [r0, 0x1]
+ ldrb r0, [r1, 0x1]
+ lsls r0, 8
+ orrs r4, r0
+ lsls r5, r4, 3
+ ldr r0, _08075A60 @ =gBattleAnimPicTable - (10000 * 8)
+ adds r0, r5, r0
+ bl LoadCompressedObjectPic
+ ldr r0, _08075A64 @ =gBattleAnimPaletteTable - (10000 * 8)
+ adds r5, r0
+ adds r0, r5, 0
+ bl LoadCompressedObjectPalette
+ ldr r0, [r6]
+ adds r0, 0x2
+ str r0, [r6]
+ ldr r0, _08075A68 @ =0xffffd8f0
+ adds r4, r0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r4, 0
+ bl sub_8075940
+ ldr r1, _08075A6C @ =gUnknown_0202F7B0
+ movs r0, 0x1
+ strb r0, [r1]
+ ldr r1, _08075A70 @ =gUnknown_0202F7AC
+ ldr r0, _08075A74 @ =move_anim_waiter
+ str r0, [r1]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08075A5C: .4byte gUnknown_0202F7A4
+_08075A60: .4byte gBattleAnimPicTable - (10000 * 8)
+_08075A64: .4byte gBattleAnimPaletteTable - (10000 * 8)
+_08075A68: .4byte 0xffffd8f0
+_08075A6C: .4byte gUnknown_0202F7B0
+_08075A70: .4byte gUnknown_0202F7AC
+_08075A74: .4byte move_anim_waiter
+ thumb_func_end ma00_load_graphics
+
+ thumb_func_start ma01_080728D0
+ma01_080728D0: @ 8075A78
+ push {r4-r6,lr}
+ ldr r6, _08075AB8 @ =gUnknown_0202F7A4
+ ldr r0, [r6]
+ adds r1, r0, 0x1
+ str r1, [r6]
+ ldrb r4, [r0, 0x1]
+ ldrb r0, [r1, 0x1]
+ lsls r0, 8
+ orrs r4, r0
+ ldr r1, _08075ABC @ =gBattleAnimPicTable
+ ldr r0, _08075AC0 @ =0xffffd8f0
+ adds r4, r0
+ lsls r0, r4, 3
+ adds r0, r1
+ ldrh r5, [r0, 0x6]
+ adds r0, r5, 0
+ bl FreeSpriteTilesByTag
+ adds r0, r5, 0
+ bl FreeSpritePaletteByTag
+ ldr r0, [r6]
+ adds r0, 0x2
+ str r0, [r6]
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r4, 0
+ bl sub_8075970
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08075AB8: .4byte gUnknown_0202F7A4
+_08075ABC: .4byte gBattleAnimPicTable
+_08075AC0: .4byte 0xffffd8f0
+ thumb_func_end ma01_080728D0
+
+ thumb_func_start ma02_instanciate_template
+ma02_instanciate_template: @ 8075AC4
+ push {r4-r7,lr}
+ ldr r5, _08075B2C @ =gUnknown_0202F7A4
+ ldr r1, [r5]
+ adds r3, r1, 0x1
+ str r3, [r5]
+ ldrb r2, [r1, 0x1]
+ ldrb r0, [r3, 0x1]
+ lsls r0, 8
+ adds r2, r0
+ ldrb r0, [r3, 0x2]
+ lsls r0, 16
+ adds r2, r0
+ ldrb r0, [r3, 0x3]
+ lsls r0, 24
+ adds r7, r2, r0
+ adds r0, r1, 0x5
+ str r0, [r5]
+ ldrb r4, [r1, 0x5]
+ adds r0, r1, 0x6
+ str r0, [r5]
+ ldrb r0, [r1, 0x6]
+ adds r1, 0x7
+ str r1, [r5]
+ cmp r0, 0
+ beq _08075B14
+ adds r6, r5, 0
+ ldr r5, _08075B30 @ =gBattleAnimArgs
+ adds r3, r0, 0
+_08075AFC:
+ ldr r2, [r6]
+ ldrb r1, [r2]
+ ldrb r0, [r2, 0x1]
+ lsls r0, 8
+ orrs r1, r0
+ strh r1, [r5]
+ adds r2, 0x2
+ str r2, [r6]
+ adds r5, 0x2
+ subs r3, 0x1
+ cmp r3, 0
+ bne _08075AFC
+_08075B14:
+ movs r0, 0x80
+ ands r0, r4
+ cmp r0, 0
+ beq _08075B44
+ movs r0, 0x80
+ eors r4, r0
+ cmp r4, 0x3F
+ bls _08075B34
+ adds r0, r4, 0
+ subs r0, 0x40
+ b _08075B36
+ .align 2, 0
+_08075B2C: .4byte gUnknown_0202F7A4
+_08075B30: .4byte gBattleAnimArgs
+_08075B34:
+ negs r0, r4
+_08075B36:
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _08075B40 @ =gUnknown_0202F7C9
+ b _08075B56
+ .align 2, 0
+_08075B40: .4byte gUnknown_0202F7C9
+_08075B44:
+ cmp r4, 0x3F
+ bls _08075B4E
+ adds r0, r4, 0
+ subs r0, 0x40
+ b _08075B50
+_08075B4E:
+ negs r0, r4
+_08075B50:
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _08075BAC @ =gUnknown_0202F7C8
+_08075B56:
+ ldrb r0, [r0]
+ bl sub_8079E90
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r4, 24
+ asrs r1, 24
+ adds r0, r1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ lsls r0, r6, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ bgt _08075B74
+ movs r6, 0x3
+_08075B74:
+ ldr r5, _08075BB0 @ =gUnknown_0202F7C9
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8077ABC
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8077ABC
+ adds r2, r0, 0
+ lsls r2, 24
+ lsrs r2, 24
+ lsls r3, r6, 24
+ lsrs r3, 24
+ adds r0, r7, 0
+ adds r1, r4, 0
+ bl CreateSpriteAndAnimate
+ ldr r1, _08075BB4 @ =gUnknown_0202F7B2
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08075BAC: .4byte gUnknown_0202F7C8
+_08075BB0: .4byte gUnknown_0202F7C9
+_08075BB4: .4byte gUnknown_0202F7B2
+ thumb_func_end ma02_instanciate_template
+
+ thumb_func_start sub_8075BB8
+sub_8075BB8: @ 8075BB8
+ push {r4-r7,lr}
+ ldr r4, _08075C28 @ =gUnknown_0202F7A4
+ ldr r1, [r4]
+ adds r3, r1, 0x1
+ str r3, [r4]
+ ldrb r2, [r1, 0x1]
+ ldrb r0, [r3, 0x1]
+ lsls r0, 8
+ adds r2, r0
+ ldrb r0, [r3, 0x2]
+ lsls r0, 16
+ adds r2, r0
+ ldrb r0, [r3, 0x3]
+ lsls r0, 24
+ adds r6, r2, r0
+ adds r0, r1, 0x5
+ str r0, [r4]
+ ldrb r7, [r1, 0x5]
+ adds r0, r1, 0x6
+ str r0, [r4]
+ ldrb r0, [r1, 0x6]
+ adds r1, 0x7
+ str r1, [r4]
+ cmp r0, 0
+ beq _08075C08
+ adds r5, r4, 0
+ ldr r4, _08075C2C @ =gBattleAnimArgs
+ adds r3, r0, 0
+_08075BF0:
+ ldr r2, [r5]
+ ldrb r1, [r2]
+ ldrb r0, [r2, 0x1]
+ lsls r0, 8
+ orrs r1, r0
+ strh r1, [r4]
+ adds r2, 0x2
+ str r2, [r5]
+ adds r4, 0x2
+ subs r3, 0x1
+ cmp r3, 0
+ bne _08075BF0
+_08075C08:
+ adds r0, r6, 0
+ adds r1, r7, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ bl _call_via_r6
+ ldr r1, _08075C30 @ =gUnknown_0202F7B2
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08075C28: .4byte gUnknown_0202F7A4
+_08075C2C: .4byte gBattleAnimArgs
+_08075C30: .4byte gUnknown_0202F7B2
+ thumb_func_end sub_8075BB8
+
+ thumb_func_start ma04_wait_countdown
+ma04_wait_countdown: @ 8075C34
+ push {r4,lr}
+ ldr r1, _08075C64 @ =gUnknown_0202F7A4
+ ldr r0, [r1]
+ adds r2, r0, 0x1
+ str r2, [r1]
+ ldr r3, _08075C68 @ =gUnknown_0202F7B0
+ ldrb r0, [r0, 0x1]
+ strb r0, [r3]
+ lsls r0, 24
+ cmp r0, 0
+ bne _08075C52
+ movs r4, 0x1
+ negs r4, r4
+ adds r0, r4, 0
+ strb r0, [r3]
+_08075C52:
+ adds r0, r2, 0x1
+ str r0, [r1]
+ ldr r1, _08075C6C @ =gUnknown_0202F7AC
+ ldr r0, _08075C70 @ =move_anim_waiter
+ str r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08075C64: .4byte gUnknown_0202F7A4
+_08075C68: .4byte gUnknown_0202F7B0
+_08075C6C: .4byte gUnknown_0202F7AC
+_08075C70: .4byte move_anim_waiter
+ thumb_func_end ma04_wait_countdown
+
+ thumb_func_start sub_8075C74
+sub_8075C74: @ 8075C74
+ push {lr}
+ ldr r0, _08075C8C @ =gUnknown_0202F7B2
+ ldrb r2, [r0]
+ cmp r2, 0
+ bne _08075C98
+ ldr r0, _08075C90 @ =gUnknown_0202F7A4
+ ldr r1, [r0]
+ adds r1, 0x1
+ str r1, [r0]
+ ldr r0, _08075C94 @ =gUnknown_0202F7B0
+ strb r2, [r0]
+ b _08075C9E
+ .align 2, 0
+_08075C8C: .4byte gUnknown_0202F7B2
+_08075C90: .4byte gUnknown_0202F7A4
+_08075C94: .4byte gUnknown_0202F7B0
+_08075C98:
+ ldr r1, _08075CA4 @ =gUnknown_0202F7B0
+ movs r0, 0x1
+ strb r0, [r1]
+_08075C9E:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08075CA4: .4byte gUnknown_0202F7B0
+ thumb_func_end sub_8075C74
+
+ thumb_func_start nullsub_53
+nullsub_53: @ 8075CA8
+ bx lr
+ thumb_func_end nullsub_53
+
+ thumb_func_start nullsub_88
+nullsub_88: @ 8075CAC
+ bx lr
+ thumb_func_end nullsub_88
+
+ thumb_func_start sub_8075CB0
+sub_8075CB0: @ 8075CB0
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ movs r0, 0
+ mov r8, r0
+ ldr r0, _08075CE0 @ =gUnknown_0202F7B2
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08075CD8
+ ldr r0, _08075CE4 @ =gUnknown_0202F7B3
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08075CD8
+ ldr r1, _08075CE8 @ =gUnknown_0202F7C2
+ ldrb r0, [r1]
+ cmp r0, 0xFF
+ bne _08075CD8
+ ldrb r0, [r1, 0x1]
+ cmp r0, 0xFF
+ beq _08075CF0
+_08075CD8:
+ ldr r1, _08075CEC @ =gUnknown_03004AF0
+ movs r0, 0
+ strh r0, [r1]
+ b _08075D0A
+ .align 2, 0
+_08075CE0: .4byte gUnknown_0202F7B2
+_08075CE4: .4byte gUnknown_0202F7B3
+_08075CE8: .4byte gUnknown_0202F7C2
+_08075CEC: .4byte gUnknown_03004AF0
+_08075CF0:
+ bl IsSEPlaying
+ lsls r0, 24
+ cmp r0, 0
+ beq _08075D28
+ ldr r1, _08075D14 @ =gUnknown_03004AF0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x5A
+ bhi _08075D1C
+_08075D0A:
+ ldr r1, _08075D18 @ =gUnknown_0202F7B0
+ movs r0, 0x1
+ strb r0, [r1]
+ b _08075D8E
+ .align 2, 0
+_08075D14: .4byte gUnknown_03004AF0
+_08075D18: .4byte gUnknown_0202F7B0
+_08075D1C:
+ ldr r0, _08075D98 @ =gMPlay_SE1
+ bl m4aMPlayStop
+ ldr r0, _08075D9C @ =gMPlay_SE2
+ bl m4aMPlayStop
+_08075D28:
+ ldr r1, _08075DA0 @ =gUnknown_03004AF0
+ movs r0, 0
+ strh r0, [r1]
+ movs r5, 0
+ ldr r7, _08075DA4 @ =0x0000ffff
+ ldr r6, _08075DA8 @ =gBattleAnimPicTable
+ ldr r4, _08075DAC @ =gUnknown_03004B10
+_08075D36:
+ ldrh r0, [r4]
+ cmp r0, r7
+ beq _08075D5A
+ lsls r0, 3
+ adds r0, r6
+ ldrh r0, [r0, 0x6]
+ bl FreeSpriteTilesByTag
+ ldrh r0, [r4]
+ lsls r0, 3
+ adds r0, r6
+ ldrh r0, [r0, 0x6]
+ bl FreeSpritePaletteByTag
+ ldrh r1, [r4]
+ adds r0, r7, 0
+ orrs r0, r1
+ strh r0, [r4]
+_08075D5A:
+ adds r4, 0x2
+ adds r5, 0x1
+ cmp r5, 0x7
+ ble _08075D36
+ mov r1, r8
+ cmp r1, 0
+ bne _08075D8E
+ ldr r0, _08075DB0 @ =gMPlay_BGM
+ ldr r1, _08075DA4 @ =0x0000ffff
+ movs r2, 0x80
+ lsls r2, 1
+ bl m4aMPlayVolumeControl
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _08075D88
+ bl sub_8079E24
+ movs r0, 0x1
+ bl sub_8043EB4
+_08075D88:
+ ldr r0, _08075DB4 @ =gUnknown_0202F7B1
+ mov r1, r8
+ strb r1, [r0]
+_08075D8E:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08075D98: .4byte gMPlay_SE1
+_08075D9C: .4byte gMPlay_SE2
+_08075DA0: .4byte gUnknown_03004AF0
+_08075DA4: .4byte 0x0000ffff
+_08075DA8: .4byte gBattleAnimPicTable
+_08075DAC: .4byte gUnknown_03004B10
+_08075DB0: .4byte gMPlay_BGM
+_08075DB4: .4byte gUnknown_0202F7B1
+ thumb_func_end sub_8075CB0
+
+ thumb_func_start ma09_play_sound
+ma09_play_sound: @ 8075DB8
+ push {r4,lr}
+ ldr r4, _08075DDC @ =gUnknown_0202F7A4
+ ldr r0, [r4]
+ adds r1, r0, 0x1
+ str r1, [r4]
+ ldrb r0, [r0, 0x1]
+ ldrb r1, [r1, 0x1]
+ lsls r1, 8
+ orrs r0, r1
+ bl PlaySE
+ ldr r0, [r4]
+ adds r0, 0x2
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08075DDC: .4byte gUnknown_0202F7A4
+ thumb_func_end ma09_play_sound
+
+ thumb_func_start sub_8075DE0
+sub_8075DE0: @ 8075DE0
+ push {r4-r7,lr}
+ ldr r0, _08075DF4 @ =gUnknown_0202F7A4
+ ldr r2, [r0]
+ adds r1, r2, 0x1
+ str r1, [r0]
+ ldrb r6, [r2, 0x1]
+ cmp r6, 0
+ bne _08075DF8
+ movs r6, 0x2
+ b _08075E02
+ .align 2, 0
+_08075DF4: .4byte gUnknown_0202F7A4
+_08075DF8:
+ cmp r6, 0x1
+ bne _08075DFE
+ movs r6, 0x3
+_08075DFE:
+ cmp r6, 0
+ beq _08075E06
+_08075E02:
+ cmp r6, 0x2
+ bne _08075E10
+_08075E06:
+ ldr r0, _08075E0C @ =gUnknown_0202F7C8
+ b _08075E12
+ .align 2, 0
+_08075E0C: .4byte gUnknown_0202F7C8
+_08075E10:
+ ldr r0, _08075E44 @ =gUnknown_0202F7C9
+_08075E12:
+ ldrb r5, [r0]
+ adds r0, r5, 0
+ bl b_side_obj__get_some_boolean
+ lsls r0, 24
+ cmp r0, 0
+ beq _08075ECE
+ adds r0, r5, 0
+ bl battle_get_per_side_status
+ lsls r0, 24
+ movs r1, 0xFF
+ lsls r1, 24
+ adds r0, r1
+ lsrs r0, 24
+ cmp r0, 0x1
+ bls _08075E3E
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _08075E48
+_08075E3E:
+ movs r7, 0
+ b _08075E4A
+ .align 2, 0
+_08075E44: .4byte gUnknown_0202F7C9
+_08075E48:
+ movs r7, 0x1
+_08075E4A:
+ adds r0, r5, 0
+ adds r1, r7, 0
+ bl sub_8076034
+ ldr r0, _08075E98 @ =gUnknown_02024BE0
+ adds r0, r5, r0
+ ldrb r4, [r0]
+ ldr r0, _08075E9C @ =task_pA_ma0A_obj_to_bg_pal
+ movs r1, 0xA
+ bl CreateTask
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r1, _08075EA0 @ =gTasks
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ adds r2, r0, r1
+ strh r4, [r2, 0x8]
+ ldr r1, _08075EA4 @ =gSprites
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ adds r0, r1
+ ldrh r1, [r0, 0x24]
+ ldrh r4, [r0, 0x20]
+ adds r1, r4
+ strh r1, [r2, 0xA]
+ ldrh r1, [r0, 0x26]
+ ldrh r0, [r0, 0x22]
+ adds r1, r0
+ strh r1, [r2, 0xC]
+ cmp r7, 0
+ bne _08075EB0
+ ldr r0, _08075EA8 @ =gUnknown_030042C0
+ ldrh r0, [r0]
+ strh r0, [r2, 0xE]
+ ldr r0, _08075EAC @ =gUnknown_030041B4
+ b _08075EB8
+ .align 2, 0
+_08075E98: .4byte gUnknown_02024BE0
+_08075E9C: .4byte task_pA_ma0A_obj_to_bg_pal
+_08075EA0: .4byte gTasks
+_08075EA4: .4byte gSprites
+_08075EA8: .4byte gUnknown_030042C0
+_08075EAC: .4byte gUnknown_030041B4
+_08075EB0:
+ ldr r0, _08075F04 @ =gUnknown_03004288
+ ldrh r0, [r0]
+ strh r0, [r2, 0xE]
+ ldr r0, _08075F08 @ =gUnknown_03004280
+_08075EB8:
+ ldrh r0, [r0]
+ strh r0, [r2, 0x10]
+ ldr r0, _08075F0C @ =gTasks
+ lsls r1, r3, 2
+ adds r1, r3
+ lsls r1, 3
+ adds r1, r0
+ strh r7, [r1, 0x12]
+ strh r5, [r1, 0x14]
+ ldr r0, _08075F10 @ =gUnknown_0202F7C2
+ strb r3, [r0]
+_08075ECE:
+ movs r0, 0x2
+ eors r5, r0
+ cmp r6, 0x1
+ bls _08075F9A
+ adds r0, r5, 0
+ bl b_side_obj__get_some_boolean
+ lsls r0, 24
+ cmp r0, 0
+ beq _08075F9A
+ adds r0, r5, 0
+ bl battle_get_per_side_status
+ lsls r0, 24
+ movs r1, 0xFF
+ lsls r1, 24
+ adds r0, r1
+ lsrs r0, 24
+ cmp r0, 0x1
+ bls _08075F00
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _08075F14
+_08075F00:
+ movs r7, 0
+ b _08075F16
+ .align 2, 0
+_08075F04: .4byte gUnknown_03004288
+_08075F08: .4byte gUnknown_03004280
+_08075F0C: .4byte gTasks
+_08075F10: .4byte gUnknown_0202F7C2
+_08075F14:
+ movs r7, 0x1
+_08075F16:
+ adds r0, r5, 0
+ adds r1, r7, 0
+ bl sub_8076034
+ ldr r0, _08075F64 @ =gUnknown_02024BE0
+ adds r0, r5, r0
+ ldrb r4, [r0]
+ ldr r0, _08075F68 @ =task_pA_ma0A_obj_to_bg_pal
+ movs r1, 0xA
+ bl CreateTask
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r1, _08075F6C @ =gTasks
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ adds r2, r0, r1
+ strh r4, [r2, 0x8]
+ ldr r1, _08075F70 @ =gSprites
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ adds r0, r1
+ ldrh r1, [r0, 0x24]
+ ldrh r4, [r0, 0x20]
+ adds r1, r4
+ strh r1, [r2, 0xA]
+ ldrh r1, [r0, 0x26]
+ ldrh r0, [r0, 0x22]
+ adds r1, r0
+ strh r1, [r2, 0xC]
+ cmp r7, 0
+ bne _08075F7C
+ ldr r0, _08075F74 @ =gUnknown_030042C0
+ ldrh r0, [r0]
+ strh r0, [r2, 0xE]
+ ldr r0, _08075F78 @ =gUnknown_030041B4
+ b _08075F84
+ .align 2, 0
+_08075F64: .4byte gUnknown_02024BE0
+_08075F68: .4byte task_pA_ma0A_obj_to_bg_pal
+_08075F6C: .4byte gTasks
+_08075F70: .4byte gSprites
+_08075F74: .4byte gUnknown_030042C0
+_08075F78: .4byte gUnknown_030041B4
+_08075F7C:
+ ldr r0, _08075FA8 @ =gUnknown_03004288
+ ldrh r0, [r0]
+ strh r0, [r2, 0xE]
+ ldr r0, _08075FAC @ =gUnknown_03004280
+_08075F84:
+ ldrh r0, [r0]
+ strh r0, [r2, 0x10]
+ ldr r0, _08075FB0 @ =gTasks
+ lsls r1, r3, 2
+ adds r1, r3
+ lsls r1, 3
+ adds r1, r0
+ strh r7, [r1, 0x12]
+ strh r5, [r1, 0x14]
+ ldr r0, _08075FB4 @ =gUnknown_0202F7C2
+ strb r3, [r0, 0x1]
+_08075F9A:
+ ldr r1, _08075FB8 @ =gUnknown_0202F7A4
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08075FA8: .4byte gUnknown_03004288
+_08075FAC: .4byte gUnknown_03004280
+_08075FB0: .4byte gTasks
+_08075FB4: .4byte gUnknown_0202F7C2
+_08075FB8: .4byte gUnknown_0202F7A4
+ thumb_func_end sub_8075DE0
+
+ thumb_func_start b_side_obj__get_some_boolean
+b_side_obj__get_some_boolean: @ 8075FBC
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r5, r4, 0
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _08075FDC
+ ldr r0, _08075FD8 @ =gUnknown_0202F7C8
+ ldrb r0, [r0]
+ cmp r4, r0
+ beq _0807601C
+ b _0807602C
+ .align 2, 0
+_08075FD8: .4byte gUnknown_0202F7C8
+_08075FDC:
+ adds r0, r4, 0
+ bl sub_8078874
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807602C
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _0807601C
+ lsls r0, r5, 2
+ ldr r1, _08076020 @ =0x02017800
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0807601C
+ ldr r2, _08076024 @ =gSprites
+ ldr r0, _08076028 @ =gUnknown_02024BE0
+ adds r0, r5, r0
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ adds r0, 0x3E
+ ldrb r0, [r0]
+ lsls r0, 29
+ cmp r0, 0
+ blt _0807602C
+_0807601C:
+ movs r0, 0x1
+ b _0807602E
+ .align 2, 0
+_08076020: .4byte 0x02017800
+_08076024: .4byte gSprites
+_08076028: .4byte gUnknown_02024BE0
+_0807602C:
+ movs r0, 0
+_0807602E:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end b_side_obj__get_some_boolean
+
+ thumb_func_start sub_8076034
+sub_8076034: @ 8076034
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x28
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ lsls r1, 24
+ cmp r1, 0
+ beq _0807604E
+ b _08076220
+_0807604E:
+ add r4, sp, 0x10
+ adds r0, r4, 0
+ bl sub_8078914
+ ldr r2, [sp, 0x10]
+ movs r3, 0x80
+ lsls r3, 6
+ add r6, sp, 0x1C
+ add r0, sp, 0x20
+ mov r10, r0
+ mov r1, r9
+ lsls r1, 5
+ str r1, [sp, 0x24]
+ movs r5, 0
+ ldr r1, _08076194 @ =0x040000d4
+ movs r4, 0x80
+ lsls r4, 5
+ mov r12, r6
+ ldr r7, _08076198 @ =0x85000400
+ movs r0, 0x85
+ lsls r0, 24
+ mov r8, r0
+_0807607A:
+ str r5, [sp, 0x1C]
+ mov r0, r12
+ str r0, [r1]
+ str r2, [r1, 0x4]
+ str r7, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ adds r2, r4
+ subs r3, r4
+ cmp r3, r4
+ bhi _0807607A
+ str r5, [sp, 0x1C]
+ str r6, [r1]
+ str r2, [r1, 0x4]
+ lsrs r0, r3, 2
+ mov r2, r8
+ orrs r0, r2
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ add r0, sp, 0xC
+ movs r1, 0
+ strb r1, [r0]
+ strb r1, [r0]
+ ldr r1, [sp, 0x14]
+ movs r0, 0xFF
+ mov r3, r10
+ strh r0, [r3]
+ ldr r0, _08076194 @ =0x040000d4
+ str r3, [r0]
+ str r1, [r0, 0x4]
+ ldr r1, _0807619C @ =0x81000800
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ ldr r2, _080761A0 @ =REG_BG1CNT
+ ldrb r1, [r2]
+ movs r0, 0x4
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x2
+ orrs r0, r1
+ strb r0, [r2]
+ ldrb r1, [r2, 0x1]
+ movs r0, 0x3F
+ ands r0, r1
+ movs r1, 0x40
+ orrs r0, r1
+ strb r0, [r2, 0x1]
+ ldrb r1, [r2, 0x1]
+ movs r0, 0x21
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2, 0x1]
+ ldr r0, _080761A4 @ =gUnknown_02024BE0
+ add r0, r9
+ ldrb r4, [r0]
+ ldr r5, _080761A8 @ =gUnknown_030042C0
+ ldr r0, _080761AC @ =gSprites
+ lsls r1, r4, 4
+ adds r1, r4
+ lsls r1, 2
+ adds r1, r0
+ ldrh r0, [r1, 0x24]
+ ldrh r1, [r1, 0x20]
+ adds r0, r1
+ negs r0, r0
+ adds r0, 0x20
+ strh r0, [r5]
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807611C
+ ldr r0, _080761B0 @ =0x02019348
+ ldrh r0, [r0]
+ bl sub_80AEB1C
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807611C
+ ldrh r0, [r5]
+ subs r0, 0x1
+ strh r0, [r5]
+_0807611C:
+ ldr r3, _080761B4 @ =gUnknown_030041B4
+ ldr r2, _080761AC @ =gSprites
+ lsls r1, r4, 4
+ adds r1, r4
+ lsls r1, 2
+ adds r1, r2
+ ldrh r0, [r1, 0x26]
+ ldrh r1, [r1, 0x22]
+ adds r0, r1
+ negs r0, r0
+ adds r0, 0x20
+ strh r0, [r3]
+ ldr r0, _080761A4 @ =gUnknown_02024BE0
+ add r0, r9
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ ldr r1, _080761B8 @ =REG_BG1HOFS
+ ldr r0, _080761A8 @ =gUnknown_030042C0
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldrh r0, [r3]
+ strh r0, [r1]
+ ldr r4, _080761BC @ =gPlttBufferUnfaded + 0x200
+ ldr r0, [sp, 0x24]
+ adds r4, r0, r4
+ mov r2, sp
+ ldrb r1, [r2, 0x18]
+ lsls r1, 4
+ adds r0, r4, 0
+ movs r2, 0x20
+ bl LoadPalette
+ mov r3, sp
+ ldrb r0, [r3, 0x18]
+ lsls r0, 5
+ movs r1, 0xA0
+ lsls r1, 19
+ adds r0, r1
+ ldr r1, _08076194 @ =0x040000d4
+ str r4, [r1]
+ str r0, [r1, 0x4]
+ ldr r0, _080761C0 @ =0x84000008
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080761C4
+ movs r2, 0
+ b _080761CE
+ .align 2, 0
+_08076194: .4byte 0x040000d4
+_08076198: .4byte 0x85000400
+_0807619C: .4byte 0x81000800
+_080761A0: .4byte REG_BG1CNT
+_080761A4: .4byte gUnknown_02024BE0
+_080761A8: .4byte gUnknown_030042C0
+_080761AC: .4byte gSprites
+_080761B0: .4byte 0x02019348
+_080761B4: .4byte gUnknown_030041B4
+_080761B8: .4byte REG_BG1HOFS
+_080761BC: .4byte gPlttBufferUnfaded + 0x200
+_080761C0: .4byte 0x84000008
+_080761C4:
+ mov r0, r9
+ bl battle_get_per_side_status
+ lsls r0, 24
+ lsrs r2, r0, 24
+_080761CE:
+ mov r0, sp
+ ldrb r3, [r0, 0x18]
+ ldr r0, [sp, 0x10]
+ lsls r0, 16
+ lsrs r0, 16
+ str r0, [sp]
+ ldr r4, [sp, 0x14]
+ movs r1, 0xFA
+ lsls r1, 24
+ adds r0, r4, r1
+ cmp r0, 0
+ bge _080761EA
+ ldr r1, _08076218 @ =0xfa0007ff
+ adds r0, r4, r1
+_080761EA:
+ asrs r0, 11
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x4]
+ ldr r0, _0807621C @ =REG_BG1CNT
+ ldr r0, [r0]
+ lsls r0, 28
+ lsrs r0, 30
+ str r0, [sp, 0x8]
+ movs r0, 0
+ movs r1, 0
+ bl sub_80E4EF8
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _08076210
+ b _08076338
+_08076210:
+ bl sub_8076380
+ b _08076338
+ .align 2, 0
+_08076218: .4byte 0xfa0007ff
+_0807621C: .4byte REG_BG1CNT
+_08076220:
+ ldr r3, _08076348 @ =0x06006000
+ movs r5, 0x80
+ lsls r5, 6
+ add r6, sp, 0x1C
+ ldr r2, _0807634C @ =gSprites
+ mov r10, r2
+ mov r0, r9
+ lsls r0, 5
+ str r0, [sp, 0x24]
+ movs r4, 0
+ ldr r1, _08076350 @ =0x040000d4
+ movs r2, 0x80
+ lsls r2, 5
+ mov r12, r6
+ ldr r7, _08076354 @ =0x85000400
+ movs r0, 0x85
+ lsls r0, 24
+ mov r8, r0
+_08076244:
+ str r4, [sp, 0x1C]
+ mov r0, r12
+ str r0, [r1]
+ str r3, [r1, 0x4]
+ str r7, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ adds r3, r2
+ subs r5, r2
+ cmp r5, r2
+ bhi _08076244
+ str r4, [sp, 0x1C]
+ str r6, [r1]
+ str r3, [r1, 0x4]
+ lsrs r0, r5, 2
+ mov r2, r8
+ orrs r0, r2
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ add r0, sp, 0xC
+ movs r1, 0
+ strb r1, [r0]
+ strb r1, [r0]
+ ldr r1, _08076358 @ =0x0600f000
+ movs r0, 0
+ str r0, [sp, 0x1C]
+ ldr r5, _08076350 @ =0x040000d4
+ str r6, [r5]
+ str r1, [r5, 0x4]
+ ldr r0, _0807635C @ =0x85000200
+ str r0, [r5, 0x8]
+ ldr r0, [r5, 0x8]
+ ldr r6, _08076360 @ =REG_BG2CNT
+ ldrb r1, [r6]
+ movs r0, 0x4
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x2
+ orrs r0, r1
+ strb r0, [r6]
+ ldrb r1, [r6, 0x1]
+ movs r0, 0x3F
+ ands r0, r1
+ movs r1, 0x40
+ orrs r0, r1
+ strb r0, [r6, 0x1]
+ ldrb r1, [r6, 0x1]
+ movs r0, 0x21
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r6, 0x1]
+ ldr r2, _08076364 @ =gUnknown_02024BE0
+ add r2, r9
+ ldrb r4, [r2]
+ lsls r1, r4, 4
+ adds r1, r4
+ lsls r1, 2
+ add r1, r10
+ ldrh r0, [r1, 0x24]
+ ldrh r3, [r1, 0x20]
+ adds r0, r3
+ negs r0, r0
+ adds r0, 0x20
+ ldr r3, _08076368 @ =gUnknown_03004288
+ strh r0, [r3]
+ ldrh r0, [r1, 0x26]
+ ldrh r1, [r1, 0x22]
+ adds r0, r1
+ negs r0, r0
+ adds r0, 0x20
+ ldr r1, _0807636C @ =gUnknown_03004280
+ strh r0, [r1]
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ add r0, r10
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ ldr r1, _08076370 @ =REG_BG2HOFS
+ ldrh r0, [r3]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r2, _0807636C @ =gUnknown_03004280
+ ldrh r0, [r2]
+ strh r0, [r1]
+ ldr r3, [sp, 0x24]
+ ldr r0, _08076374 @ =gPlttBufferUnfaded + 0x200
+ adds r4, r3, r0
+ adds r0, r4, 0
+ movs r1, 0x90
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r0, _08076378 @ =0x05000120
+ str r4, [r5]
+ str r0, [r5, 0x4]
+ ldr r0, _0807637C @ =0x84000008
+ str r0, [r5, 0x8]
+ ldr r0, [r5, 0x8]
+ mov r0, r9
+ bl battle_get_per_side_status
+ adds r2, r0, 0
+ lsls r2, 24
+ lsrs r2, 24
+ movs r0, 0xC0
+ lsls r0, 7
+ str r0, [sp]
+ movs r0, 0x1E
+ str r0, [sp, 0x4]
+ ldr r0, [r6]
+ lsls r0, 28
+ lsrs r0, 30
+ str r0, [sp, 0x8]
+ movs r0, 0
+ movs r1, 0
+ movs r3, 0x9
+ bl sub_80E4EF8
+_08076338:
+ add sp, 0x28
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08076348: .4byte 0x06006000
+_0807634C: .4byte gSprites
+_08076350: .4byte 0x040000d4
+_08076354: .4byte 0x85000400
+_08076358: .4byte 0x0600f000
+_0807635C: .4byte 0x85000200
+_08076360: .4byte REG_BG2CNT
+_08076364: .4byte gUnknown_02024BE0
+_08076368: .4byte gUnknown_03004288
+_0807636C: .4byte gUnknown_03004280
+_08076370: .4byte REG_BG2HOFS
+_08076374: .4byte gPlttBufferUnfaded + 0x200
+_08076378: .4byte 0x05000120
+_0807637C: .4byte 0x84000008
+ thumb_func_end sub_8076034
+
+ thumb_func_start sub_8076380
+sub_8076380: @ 8076380
+ push {r4-r7,lr}
+ sub sp, 0xC
+ ldr r0, _080763F8 @ =0x02019348
+ ldrh r0, [r0]
+ bl sub_80AEB1C
+ lsls r0, 24
+ cmp r0, 0
+ beq _080763EE
+ mov r0, sp
+ bl sub_8078914
+ ldr r6, [sp, 0x4]
+ movs r5, 0
+ movs r0, 0x7
+ mov r12, r0
+ movs r7, 0
+_080763A2:
+ movs r4, 0
+ adds r3, r7, r6
+ mov r1, r12
+ lsls r0, r1, 1
+ adds r2, r0, r6
+_080763AC:
+ ldrh r1, [r3]
+ ldrh r0, [r2]
+ strh r0, [r3]
+ strh r1, [r2]
+ adds r3, 0x2
+ subs r2, 0x2
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _080763AC
+ movs r0, 0x20
+ add r12, r0
+ adds r7, 0x40
+ adds r5, 0x1
+ cmp r5, 0x7
+ ble _080763A2
+ movs r5, 0
+ movs r1, 0x80
+ lsls r1, 3
+ adds r3, r1, 0
+_080763D2:
+ adds r2, r5, 0x1
+ lsls r0, r5, 6
+ adds r1, r0, r6
+ movs r4, 0x7
+_080763DA:
+ ldrh r0, [r1]
+ eors r0, r3
+ strh r0, [r1]
+ adds r1, 0x2
+ subs r4, 0x1
+ cmp r4, 0
+ bge _080763DA
+ adds r5, r2, 0
+ cmp r5, 0x7
+ ble _080763D2
+_080763EE:
+ add sp, 0xC
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080763F8: .4byte 0x02019348
+ thumb_func_end sub_8076380
+
+ thumb_func_start sub_80763FC
+sub_80763FC: @ 80763FC
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ mov r12, r1
+ adds r7, r2, 0
+ lsls r0, 16
+ lsrs r6, r0, 16
+ lsls r3, 24
+ movs r0, 0x40
+ mov r9, r0
+ cmp r3, 0
+ bne _0807641A
+ movs r1, 0x20
+ mov r9, r1
+_0807641A:
+ lsls r0, r6, 28
+ lsrs r6, r0, 16
+ movs r0, 0
+ cmp r0, r9
+ bcs _08076452
+ ldr r1, _08076460 @ =0x00000fff
+ mov r8, r1
+_08076428:
+ movs r3, 0
+ adds r5, r0, 0x1
+ lsls r4, r0, 5
+_0807642E:
+ adds r1, r4, r3
+ lsls r1, 1
+ add r1, r12
+ ldrh r2, [r1]
+ mov r0, r8
+ ands r0, r2
+ orrs r0, r6
+ adds r0, r7
+ strh r0, [r1]
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x1F
+ bls _0807642E
+ lsls r0, r5, 24
+ lsrs r0, 24
+ cmp r0, r9
+ bcc _08076428
+_08076452:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08076460: .4byte 0x00000fff
+ thumb_func_end sub_80763FC
+
+ thumb_func_start sub_8076464
+sub_8076464: @ 8076464
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x14
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ add r5, sp, 0x4
+ adds r0, r5, 0
+ bl sub_8078914
+ cmp r4, 0
+ beq _0807648C
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080764F0
+_0807648C:
+ ldr r2, [sp, 0x4]
+ movs r3, 0x80
+ lsls r3, 6
+ add r5, sp, 0x10
+ ldr r0, _080764E0 @ =gUnknown_030042C0
+ mov r9, r0
+ ldr r0, _080764E4 @ =gUnknown_030041B4
+ mov r10, r0
+ movs r6, 0
+ ldr r1, _080764E8 @ =0x040000d4
+ movs r4, 0x80
+ lsls r4, 5
+ mov r12, r5
+ ldr r7, _080764EC @ =0x85000400
+ movs r0, 0x85
+ lsls r0, 24
+ mov r8, r0
+_080764AE:
+ str r6, [sp, 0x10]
+ mov r0, r12
+ str r0, [r1]
+ str r2, [r1, 0x4]
+ str r7, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ adds r2, r4
+ subs r3, r4
+ cmp r3, r4
+ bhi _080764AE
+ str r6, [sp, 0x10]
+ str r5, [r1]
+ str r2, [r1, 0x4]
+ lsrs r0, r3, 2
+ mov r2, r8
+ orrs r0, r2
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ mov r0, sp
+ movs r1, 0
+ strb r1, [r0]
+ strb r1, [r0]
+ ldr r1, [sp, 0x8]
+ b _08076540
+ .align 2, 0
+_080764E0: .4byte gUnknown_030042C0
+_080764E4: .4byte gUnknown_030041B4
+_080764E8: .4byte 0x040000d4
+_080764EC: .4byte 0x85000400
+_080764F0:
+ ldr r2, _08076568 @ =0x06006000
+ movs r3, 0x80
+ lsls r3, 6
+ add r5, sp, 0x10
+ ldr r0, _0807656C @ =gUnknown_03004288
+ mov r9, r0
+ ldr r0, _08076570 @ =gUnknown_03004280
+ mov r10, r0
+ movs r6, 0
+ ldr r1, _08076574 @ =0x040000d4
+ movs r4, 0x80
+ lsls r4, 5
+ mov r12, r5
+ ldr r7, _08076578 @ =0x85000400
+ movs r0, 0x85
+ lsls r0, 24
+ mov r8, r0
+_08076512:
+ str r6, [sp, 0x10]
+ mov r0, r12
+ str r0, [r1]
+ str r2, [r1, 0x4]
+ str r7, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ adds r2, r4
+ subs r3, r4
+ cmp r3, r4
+ bhi _08076512
+ str r6, [sp, 0x10]
+ str r5, [r1]
+ str r2, [r1, 0x4]
+ lsrs r0, r3, 2
+ mov r2, r8
+ orrs r0, r2
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ mov r0, sp
+ movs r1, 0
+ strb r1, [r0]
+ strb r1, [r0]
+ ldr r1, _0807657C @ =0x0600f000
+_08076540:
+ movs r2, 0
+ str r2, [sp, 0x10]
+ ldr r0, _08076574 @ =0x040000d4
+ str r5, [r0]
+ str r1, [r0, 0x4]
+ ldr r1, _08076580 @ =0x85000200
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ mov r0, r9
+ strh r2, [r0]
+ mov r0, r10
+ strh r2, [r0]
+ add sp, 0x14
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08076568: .4byte 0x06006000
+_0807656C: .4byte gUnknown_03004288
+_08076570: .4byte gUnknown_03004280
+_08076574: .4byte 0x040000d4
+_08076578: .4byte 0x85000400
+_0807657C: .4byte 0x0600f000
+_08076580: .4byte 0x85000200
+ thumb_func_end sub_8076464
+
+ thumb_func_start task_pA_ma0A_obj_to_bg_pal
+task_pA_ma0A_obj_to_bg_pal: @ 8076584
+ push {r4-r6,lr}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080765FC @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r5, r1, r2
+ ldrb r4, [r5, 0x8]
+ ldrb r6, [r5, 0x14]
+ mov r0, sp
+ bl sub_8078914
+ ldr r0, _08076600 @ =gSprites
+ lsls r1, r4, 4
+ adds r1, r4
+ lsls r1, 2
+ adds r1, r0
+ ldrh r2, [r1, 0x24]
+ ldrh r0, [r1, 0x20]
+ adds r2, r0
+ ldrh r0, [r5, 0xA]
+ subs r0, r2
+ lsls r0, 16
+ lsrs r3, r0, 16
+ ldrh r2, [r1, 0x26]
+ ldrh r1, [r1, 0x22]
+ adds r2, r1
+ ldrh r0, [r5, 0xC]
+ subs r0, r2
+ lsls r0, 16
+ lsrs r2, r0, 16
+ movs r1, 0x12
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _08076614
+ ldr r1, _08076604 @ =gUnknown_030042C0
+ lsls r0, r3, 16
+ asrs r0, 16
+ ldrh r3, [r5, 0xE]
+ adds r0, r3
+ strh r0, [r1]
+ ldr r1, _08076608 @ =gUnknown_030041B4
+ lsls r0, r2, 16
+ asrs r0, 16
+ ldrh r5, [r5, 0x10]
+ adds r0, r5
+ strh r0, [r1]
+ lsls r2, r6, 5
+ ldr r1, _0807660C @ =gPlttBufferFaded + 0x200
+ adds r2, r1
+ mov r0, sp
+ ldrb r0, [r0, 0x8]
+ lsls r0, 5
+ ldr r3, _08076610 @ =0xfffffe00
+ adds r1, r3
+ adds r0, r1
+ b _08076634
+ .align 2, 0
+_080765FC: .4byte gTasks
+_08076600: .4byte gSprites
+_08076604: .4byte gUnknown_030042C0
+_08076608: .4byte gUnknown_030041B4
+_0807660C: .4byte gPlttBufferFaded + 0x200
+_08076610: .4byte 0xfffffe00
+_08076614:
+ ldr r1, _08076648 @ =gUnknown_03004288
+ lsls r0, r3, 16
+ asrs r0, 16
+ ldrh r3, [r5, 0xE]
+ adds r0, r3
+ strh r0, [r1]
+ ldr r1, _0807664C @ =gUnknown_03004280
+ lsls r0, r2, 16
+ asrs r0, 16
+ ldrh r5, [r5, 0x10]
+ adds r0, r5
+ strh r0, [r1]
+ lsls r2, r6, 5
+ ldr r0, _08076650 @ =gPlttBufferFaded + 0x200
+ adds r2, r0
+ subs r0, 0xE0
+_08076634:
+ ldr r1, _08076654 @ =0x040000d4
+ str r2, [r1]
+ str r0, [r1, 0x4]
+ ldr r0, _08076658 @ =0x84000008
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08076648: .4byte gUnknown_03004288
+_0807664C: .4byte gUnknown_03004280
+_08076650: .4byte gPlttBufferFaded + 0x200
+_08076654: .4byte 0x040000d4
+_08076658: .4byte 0x84000008
+ thumb_func_end task_pA_ma0A_obj_to_bg_pal
+
+ thumb_func_start ma0B_0807324C
+ma0B_0807324C: @ 807665C
+ push {r4,r5,lr}
+ ldr r0, _08076670 @ =gUnknown_0202F7A4
+ ldr r2, [r0]
+ adds r1, r2, 0x1
+ str r1, [r0]
+ ldrb r4, [r2, 0x1]
+ cmp r4, 0
+ bne _08076674
+ movs r4, 0x2
+ b _0807667E
+ .align 2, 0
+_08076670: .4byte gUnknown_0202F7A4
+_08076674:
+ cmp r4, 0x1
+ bne _0807667A
+ movs r4, 0x3
+_0807667A:
+ cmp r4, 0
+ beq _08076682
+_0807667E:
+ cmp r4, 0x2
+ bne _0807668C
+_08076682:
+ ldr r0, _08076688 @ =gUnknown_0202F7C8
+ b _0807668E
+ .align 2, 0
+_08076688: .4byte gUnknown_0202F7C8
+_0807668C:
+ ldr r0, _080766E4 @ =gUnknown_0202F7C9
+_0807668E:
+ ldrb r5, [r0]
+ ldr r3, _080766E8 @ =gUnknown_0202F7C2
+ ldrb r0, [r3]
+ cmp r0, 0xFF
+ beq _080766B4
+ ldr r2, _080766EC @ =gSprites
+ ldr r0, _080766F0 @ =gUnknown_02024BE0
+ adds r0, r5, r0
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ adds r0, 0x3E
+ ldrb r2, [r0]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r0]
+_080766B4:
+ cmp r4, 0x1
+ bls _080766F4
+ ldrb r0, [r3, 0x1]
+ cmp r0, 0xFF
+ beq _080766F4
+ ldr r3, _080766EC @ =gSprites
+ ldr r2, _080766F0 @ =gUnknown_02024BE0
+ movs r1, 0x2
+ adds r0, r5, 0
+ eors r0, r1
+ adds r0, r2
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ adds r0, 0x3E
+ ldrb r2, [r0]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r0]
+ b _080766F6
+ .align 2, 0
+_080766E4: .4byte gUnknown_0202F7C9
+_080766E8: .4byte gUnknown_0202F7C2
+_080766EC: .4byte gSprites
+_080766F0: .4byte gUnknown_02024BE0
+_080766F4:
+ movs r4, 0
+_080766F6:
+ ldr r0, _08076720 @ =sub_807672C
+ movs r1, 0x5
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08076724 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ strh r4, [r1, 0x8]
+ strh r5, [r1, 0xC]
+ ldr r1, _08076728 @ =gUnknown_0202F7A4
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08076720: .4byte sub_807672C
+_08076724: .4byte gTasks
+_08076728: .4byte gUnknown_0202F7A4
+ thumb_func_end ma0B_0807324C
+
+ thumb_func_start sub_807672C
+sub_807672C: @ 807672C
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _0807676C @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r1, r0, r1
+ ldrh r0, [r1, 0xA]
+ adds r0, 0x1
+ strh r0, [r1, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ beq _080767B6
+ ldrb r0, [r1, 0xC]
+ bl battle_get_per_side_status
+ lsls r0, 24
+ movs r1, 0xFF
+ lsls r1, 24
+ adds r0, r1
+ lsrs r0, 24
+ cmp r0, 0x1
+ bls _08076768
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _08076770
+_08076768:
+ movs r4, 0
+ b _08076772
+ .align 2, 0
+_0807676C: .4byte gTasks
+_08076770:
+ movs r4, 0x1
+_08076772:
+ ldr r6, _080767BC @ =gUnknown_0202F7C2
+ ldrb r0, [r6]
+ cmp r0, 0xFF
+ beq _0807678A
+ adds r0, r4, 0
+ bl sub_8076464
+ ldrb r0, [r6]
+ bl DestroyTask
+ movs r0, 0xFF
+ strb r0, [r6]
+_0807678A:
+ ldr r0, _080767C0 @ =gTasks
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ movs r2, 0x8
+ ldrsh r0, [r1, r2]
+ cmp r0, 0x1
+ ble _080767B0
+ movs r0, 0x1
+ eors r4, r0
+ adds r0, r4, 0
+ bl sub_8076464
+ ldrb r0, [r6, 0x1]
+ bl DestroyTask
+ movs r0, 0xFF
+ strb r0, [r6, 0x1]
+_080767B0:
+ adds r0, r5, 0
+ bl DestroyTask
+_080767B6:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080767BC: .4byte gUnknown_0202F7C2
+_080767C0: .4byte gTasks
+ thumb_func_end sub_807672C
+
+ thumb_func_start sub_80767C4
+sub_80767C4: @ 80767C4
+ push {r4,r5,lr}
+ ldr r0, _080767D8 @ =gUnknown_0202F7A4
+ ldr r2, [r0]
+ adds r1, r2, 0x1
+ str r1, [r0]
+ ldrb r5, [r2, 0x1]
+ cmp r5, 0
+ bne _080767DC
+ movs r5, 0x2
+ b _080767E6
+ .align 2, 0
+_080767D8: .4byte gUnknown_0202F7A4
+_080767DC:
+ cmp r5, 0x1
+ bne _080767E2
+ movs r5, 0x3
+_080767E2:
+ cmp r5, 0
+ beq _080767EA
+_080767E6:
+ cmp r5, 0x2
+ bne _080767F4
+_080767EA:
+ ldr r0, _080767F0 @ =gUnknown_0202F7C8
+ b _080767F6
+ .align 2, 0
+_080767F0: .4byte gUnknown_0202F7C8
+_080767F4:
+ ldr r0, _08076828 @ =gUnknown_0202F7C9
+_080767F6:
+ ldrb r4, [r0]
+ adds r0, r4, 0
+ bl b_side_obj__get_some_boolean
+ lsls r0, 24
+ cmp r0, 0
+ beq _08076850
+ adds r0, r4, 0
+ bl battle_get_per_side_status
+ lsls r0, 24
+ movs r1, 0xFF
+ lsls r1, 24
+ adds r0, r1
+ lsrs r0, 24
+ cmp r0, 0x1
+ bls _08076822
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807682C
+_08076822:
+ movs r1, 0
+ b _0807682E
+ .align 2, 0
+_08076828: .4byte gUnknown_0202F7C9
+_0807682C:
+ movs r1, 0x1
+_0807682E:
+ adds r0, r4, 0
+ bl sub_8076034
+ ldr r2, _08076888 @ =gSprites
+ ldr r0, _0807688C @ =gUnknown_02024BE0
+ adds r0, r4, r0
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ adds r0, 0x3E
+ ldrb r2, [r0]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r0]
+_08076850:
+ movs r0, 0x2
+ eors r4, r0
+ cmp r5, 0x1
+ bls _080768B4
+ adds r0, r4, 0
+ bl b_side_obj__get_some_boolean
+ lsls r0, 24
+ cmp r0, 0
+ beq _080768B4
+ adds r0, r4, 0
+ bl battle_get_per_side_status
+ lsls r0, 24
+ movs r1, 0xFF
+ lsls r1, 24
+ adds r0, r1
+ lsrs r0, 24
+ cmp r0, 0x1
+ bls _08076882
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _08076890
+_08076882:
+ movs r1, 0
+ b _08076892
+ .align 2, 0
+_08076888: .4byte gSprites
+_0807688C: .4byte gUnknown_02024BE0
+_08076890:
+ movs r1, 0x1
+_08076892:
+ adds r0, r4, 0
+ bl sub_8076034
+ ldr r2, _080768C4 @ =gSprites
+ ldr r0, _080768C8 @ =gUnknown_02024BE0
+ adds r0, r4, r0
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ adds r0, 0x3E
+ ldrb r2, [r0]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r0]
+_080768B4:
+ ldr r1, _080768CC @ =gUnknown_0202F7A4
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080768C4: .4byte gSprites
+_080768C8: .4byte gUnknown_02024BE0
+_080768CC: .4byte gUnknown_0202F7A4
+ thumb_func_end sub_80767C4
+
+ thumb_func_start ma23_8073484
+ma23_8073484: @ 80768D0
+ push {r4-r6,lr}
+ ldr r0, _080768E4 @ =gUnknown_0202F7A4
+ ldr r2, [r0]
+ adds r1, r2, 0x1
+ str r1, [r0]
+ ldrb r5, [r2, 0x1]
+ cmp r5, 0
+ bne _080768E8
+ movs r5, 0x2
+ b _080768F2
+ .align 2, 0
+_080768E4: .4byte gUnknown_0202F7A4
+_080768E8:
+ cmp r5, 0x1
+ bne _080768EE
+ movs r5, 0x3
+_080768EE:
+ cmp r5, 0
+ beq _080768F6
+_080768F2:
+ cmp r5, 0x2
+ bne _08076900
+_080768F6:
+ ldr r0, _080768FC @ =gUnknown_0202F7C8
+ b _08076902
+ .align 2, 0
+_080768FC: .4byte gUnknown_0202F7C8
+_08076900:
+ ldr r0, _08076960 @ =gUnknown_0202F7C9
+_08076902:
+ ldrb r6, [r0]
+ adds r0, r6, 0
+ bl b_side_obj__get_some_boolean
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807692C
+ ldr r2, _08076964 @ =gSprites
+ ldr r0, _08076968 @ =gUnknown_02024BE0
+ adds r0, r6, r0
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ adds r0, 0x3E
+ ldrb r2, [r0]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r0]
+_0807692C:
+ cmp r5, 0x1
+ bls _0807696C
+ movs r0, 0x2
+ adds r4, r6, 0
+ eors r4, r0
+ adds r0, r4, 0
+ bl b_side_obj__get_some_boolean
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807696C
+ ldr r2, _08076964 @ =gSprites
+ ldr r0, _08076968 @ =gUnknown_02024BE0
+ adds r0, r4, r0
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ adds r0, 0x3E
+ ldrb r2, [r0]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r0]
+ b _0807696E
+ .align 2, 0
+_08076960: .4byte gUnknown_0202F7C9
+_08076964: .4byte gSprites
+_08076968: .4byte gUnknown_02024BE0
+_0807696C:
+ movs r5, 0
+_0807696E:
+ ldr r0, _08076998 @ =sub_80769A4
+ movs r1, 0x5
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0807699C @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ strh r5, [r1, 0x8]
+ strh r6, [r1, 0xC]
+ ldr r1, _080769A0 @ =gUnknown_0202F7A4
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08076998: .4byte sub_80769A4
+_0807699C: .4byte gTasks
+_080769A0: .4byte gUnknown_0202F7A4
+ thumb_func_end ma23_8073484
+
+ thumb_func_start sub_80769A4
+sub_80769A4: @ 80769A4
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r1, _080769E8 @ =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r1, r0, r1
+ ldrh r0, [r1, 0xA]
+ adds r0, 0x1
+ strh r0, [r1, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ beq _08076A32
+ ldrb r4, [r1, 0xC]
+ adds r0, r4, 0
+ bl battle_get_per_side_status
+ lsls r0, 24
+ movs r1, 0xFF
+ lsls r1, 24
+ adds r0, r1
+ lsrs r0, 24
+ cmp r0, 0x1
+ bls _080769E2
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080769EC
+_080769E2:
+ movs r5, 0
+ b _080769EE
+ .align 2, 0
+_080769E8: .4byte gTasks
+_080769EC:
+ movs r5, 0x1
+_080769EE:
+ adds r0, r4, 0
+ bl b_side_obj__get_some_boolean
+ lsls r0, 24
+ cmp r0, 0
+ beq _08076A00
+ adds r0, r5, 0
+ bl sub_8076464
+_08076A00:
+ ldr r0, _08076A38 @ =gTasks
+ lsls r1, r6, 2
+ adds r1, r6
+ lsls r1, 3
+ adds r1, r0
+ movs r2, 0x8
+ ldrsh r0, [r1, r2]
+ cmp r0, 0x1
+ ble _08076A2C
+ movs r0, 0x2
+ eors r4, r0
+ adds r0, r4, 0
+ bl b_side_obj__get_some_boolean
+ lsls r0, 24
+ cmp r0, 0
+ beq _08076A2C
+ movs r0, 0x1
+ eors r5, r0
+ adds r0, r5, 0
+ bl sub_8076464
+_08076A2C:
+ adds r0, r6, 0
+ bl DestroyTask
+_08076A32:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08076A38: .4byte gTasks
+ thumb_func_end sub_80769A4
+
+ thumb_func_start sub_8076A3C
+sub_8076A3C: @ 8076A3C
+ push {r4,lr}
+ ldr r2, _08076A6C @ =gUnknown_0202F7A4
+ ldr r0, [r2]
+ adds r1, r0, 0x1
+ str r1, [r2]
+ ldrb r3, [r0, 0x1]
+ adds r0, r1, 0x1
+ str r0, [r2]
+ ldrb r1, [r1, 0x1]
+ lsls r1, 8
+ adds r0, 0x1
+ str r0, [r2]
+ ldr r2, _08076A70 @ =REG_BLDCNT
+ movs r4, 0xFD
+ lsls r4, 6
+ adds r0, r4, 0
+ strh r0, [r2]
+ ldr r0, _08076A74 @ =REG_BLDALPHA
+ orrs r3, r1
+ strh r3, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08076A6C: .4byte gUnknown_0202F7A4
+_08076A70: .4byte REG_BLDCNT
+_08076A74: .4byte REG_BLDALPHA
+ thumb_func_end sub_8076A3C
+
+ thumb_func_start sub_8076A78
+sub_8076A78: @ 8076A78
+ ldr r2, _08076A98 @ =gUnknown_0202F7A4
+ ldr r0, [r2]
+ adds r1, r0, 0x1
+ str r1, [r2]
+ ldrb r3, [r0, 0x1]
+ adds r0, r1, 0x1
+ str r0, [r2]
+ ldrb r1, [r1, 0x1]
+ lsls r1, 8
+ adds r0, 0x1
+ str r0, [r2]
+ ldr r0, _08076A9C @ =REG_BLDCNT
+ orrs r3, r1
+ strh r3, [r0]
+ bx lr
+ .align 2, 0
+_08076A98: .4byte gUnknown_0202F7A4
+_08076A9C: .4byte REG_BLDCNT
+ thumb_func_end sub_8076A78
+
+ thumb_func_start sub_8076AA0
+sub_8076AA0: @ 8076AA0
+ ldr r1, _08076AB4 @ =gUnknown_0202F7A4
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ ldr r0, _08076AB8 @ =REG_BLDCNT
+ movs r1, 0
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ bx lr
+ .align 2, 0
+_08076AB4: .4byte gUnknown_0202F7A4
+_08076AB8: .4byte REG_BLDCNT
+ thumb_func_end sub_8076AA0
+
+ thumb_func_start ma0E_call
+ma0E_call: @ 8076ABC
+ push {r4,lr}
+ ldr r4, _08076AE8 @ =gUnknown_0202F7A4
+ ldr r1, [r4]
+ adds r3, r1, 0x1
+ str r3, [r4]
+ ldr r2, _08076AEC @ =gUnknown_0202F7A8
+ adds r0, r1, 0x5
+ str r0, [r2]
+ ldrb r1, [r1, 0x1]
+ ldrb r0, [r3, 0x1]
+ lsls r0, 8
+ adds r1, r0
+ ldrb r0, [r3, 0x2]
+ lsls r0, 16
+ adds r1, r0
+ ldrb r0, [r3, 0x3]
+ lsls r0, 24
+ adds r1, r0
+ str r1, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08076AE8: .4byte gUnknown_0202F7A4
+_08076AEC: .4byte gUnknown_0202F7A8
+ thumb_func_end ma0E_call
+
+ thumb_func_start sub_8076AF0
+sub_8076AF0: @ 8076AF0
+ ldr r0, _08076AFC @ =gUnknown_0202F7A4
+ ldr r1, _08076B00 @ =gUnknown_0202F7A8
+ ldr r1, [r1]
+ str r1, [r0]
+ bx lr
+ .align 2, 0
+_08076AFC: .4byte gUnknown_0202F7A4
+_08076B00: .4byte gUnknown_0202F7A8
+ thumb_func_end sub_8076AF0
+
+ thumb_func_start ma10_080736AC
+ma10_080736AC: @ 8076B04
+ push {r4,r5,lr}
+ ldr r5, _08076B30 @ =gUnknown_0202F7A4
+ ldr r1, [r5]
+ adds r0, r1, 0x1
+ str r0, [r5]
+ ldrb r2, [r1, 0x1]
+ adds r3, r0, 0x1
+ str r3, [r5]
+ ldrb r4, [r0, 0x1]
+ ldrb r0, [r3, 0x1]
+ lsls r0, 8
+ orrs r4, r0
+ adds r1, 0x4
+ str r1, [r5]
+ ldr r0, _08076B34 @ =gBattleAnimArgs
+ lsls r2, 1
+ adds r2, r0
+ strh r4, [r2]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08076B30: .4byte gUnknown_0202F7A4
+_08076B34: .4byte gBattleAnimArgs
+ thumb_func_end ma10_080736AC
+
+ thumb_func_start ma11_if_else
+ma11_if_else: @ 8076B38
+ push {lr}
+ ldr r3, _08076B70 @ =gUnknown_0202F7A4
+ ldr r2, [r3]
+ adds r0, r2, 0x1
+ str r0, [r3]
+ ldr r0, _08076B74 @ =gUnknown_0202F7C4
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08076B52
+ adds r0, r2, 0x5
+ str r0, [r3]
+_08076B52:
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ ldrb r0, [r2, 0x1]
+ lsls r0, 8
+ adds r1, r0
+ ldrb r0, [r2, 0x2]
+ lsls r0, 16
+ adds r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 24
+ adds r1, r0
+ str r1, [r3]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08076B70: .4byte gUnknown_0202F7A4
+_08076B74: .4byte gUnknown_0202F7C4
+ thumb_func_end ma11_if_else
+
+ thumb_func_start ma12_cond_if
+ma12_cond_if: @ 8076B78
+ push {r4,r5,lr}
+ ldr r5, _08076BA8 @ =gUnknown_0202F7A4
+ ldr r4, [r5]
+ adds r2, r4, 0x1
+ str r2, [r5]
+ ldrb r1, [r4, 0x1]
+ adds r3, r2, 0x1
+ str r3, [r5]
+ ldr r0, _08076BAC @ =gUnknown_0202F7C4
+ ldrb r0, [r0]
+ cmp r1, r0
+ bne _08076BB0
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r3, 0x1]
+ lsls r0, 8
+ adds r1, r0
+ ldrb r0, [r3, 0x2]
+ lsls r0, 16
+ adds r1, r0
+ ldrb r0, [r3, 0x3]
+ lsls r0, 24
+ adds r1, r0
+ str r1, [r5]
+ b _08076BB4
+ .align 2, 0
+_08076BA8: .4byte gUnknown_0202F7A4
+_08076BAC: .4byte gUnknown_0202F7C4
+_08076BB0:
+ adds r0, r4, 0x6
+ str r0, [r5]
+_08076BB4:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end ma12_cond_if
+
+ thumb_func_start sub_8076BBC
+sub_8076BBC: @ 8076BBC
+ ldr r3, _08076BDC @ =gUnknown_0202F7A4
+ ldr r0, [r3]
+ adds r2, r0, 0x1
+ str r2, [r3]
+ ldrb r1, [r0, 0x1]
+ ldrb r0, [r2, 0x1]
+ lsls r0, 8
+ adds r1, r0
+ ldrb r0, [r2, 0x2]
+ lsls r0, 16
+ adds r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 24
+ adds r1, r0
+ str r1, [r3]
+ bx lr
+ .align 2, 0
+_08076BDC: .4byte gUnknown_0202F7A4
+ thumb_func_end sub_8076BBC
+
+ thumb_func_start sub_8076BE0
+sub_8076BE0: @ 8076BE0
+ push {lr}
+ ldr r0, _08076BF8 @ =gMain
+ ldr r1, _08076BFC @ =0x0000043d
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _08076C00
+ movs r0, 0
+ b _08076C02
+ .align 2, 0
+_08076BF8: .4byte gMain
+_08076BFC: .4byte 0x0000043d
+_08076C00:
+ movs r0, 0x1
+_08076C02:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8076BE0
+
+ thumb_func_start ma14_load_background
+ma14_load_background: @ 8076C08
+ push {r4,lr}
+ ldr r1, _08076C3C @ =gUnknown_0202F7A4
+ ldr r2, [r1]
+ adds r0, r2, 0x1
+ str r0, [r1]
+ ldrb r4, [r2, 0x1]
+ adds r0, 0x1
+ str r0, [r1]
+ ldr r0, _08076C40 @ =task_p5_load_battle_screen_elements
+ movs r1, 0x5
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08076C44 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ strh r4, [r1, 0x8]
+ ldr r1, _08076C48 @ =gUnknown_0202F7C5
+ movs r0, 0x1
+ strb r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08076C3C: .4byte gUnknown_0202F7A4
+_08076C40: .4byte task_p5_load_battle_screen_elements
+_08076C44: .4byte gTasks
+_08076C48: .4byte gUnknown_0202F7C5
+ thumb_func_end ma14_load_background
+
+ thumb_func_start sub_8076C4C
+sub_8076C4C: @ 8076C4C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r2, _08076C8C @ =gUnknown_0202F7A4
+ ldr r1, [r2]
+ adds r0, r1, 0x1
+ str r0, [r2]
+ ldrb r3, [r1, 0x1]
+ mov r8, r3
+ ldrb r7, [r0, 0x1]
+ ldrb r6, [r0, 0x2]
+ adds r1, 0x4
+ str r1, [r2]
+ ldr r0, _08076C90 @ =task_p5_load_battle_screen_elements
+ movs r1, 0x5
+ bl CreateTask
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r5, r4, 0
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _08076C98
+ ldr r1, _08076C94 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ strh r6, [r0, 0x8]
+ b _08076CCA
+ .align 2, 0
+_08076C8C: .4byte gUnknown_0202F7A4
+_08076C90: .4byte task_p5_load_battle_screen_elements
+_08076C94: .4byte gTasks
+_08076C98:
+ ldr r0, _08076CB4 @ =gUnknown_0202F7C9
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _08076CBC
+ ldr r1, _08076CB8 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ strh r7, [r0, 0x8]
+ b _08076CCA
+ .align 2, 0
+_08076CB4: .4byte gUnknown_0202F7C9
+_08076CB8: .4byte gTasks
+_08076CBC:
+ ldr r1, _08076CDC @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ mov r1, r8
+ strh r1, [r0, 0x8]
+_08076CCA:
+ ldr r1, _08076CE0 @ =gUnknown_0202F7C5
+ movs r0, 0x1
+ strb r0, [r1]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08076CDC: .4byte gTasks
+_08076CE0: .4byte gUnknown_0202F7C5
+ thumb_func_end sub_8076C4C
+
+ thumb_func_start task_p5_load_battle_screen_elements
+task_p5_load_battle_screen_elements: @ 8076CE4
+ push {r4-r7,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _08076D18 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r4, r0, r1
+ ldrh r6, [r4, 0x1C]
+ movs r0, 0x1C
+ ldrsh r3, [r4, r0]
+ adds r7, r1, 0
+ cmp r3, 0
+ bne _08076D1C
+ str r3, [sp]
+ movs r0, 0xE8
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginHardwarePaletteFade
+ ldrh r0, [r4, 0x1C]
+ adds r0, 0x1
+ strh r0, [r4, 0x1C]
+ b _08076DAC
+ .align 2, 0
+_08076D18: .4byte gTasks
+_08076D1C:
+ ldr r2, _08076D38 @ =gPaletteFade
+ ldrb r1, [r2, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08076DAC
+ cmp r3, 0x1
+ bne _08076D40
+ adds r0, r6, 0x1
+ strh r0, [r4, 0x1C]
+ ldr r1, _08076D3C @ =gUnknown_0202F7C5
+ movs r0, 0x2
+ strb r0, [r1]
+ b _08076D84
+ .align 2, 0
+_08076D38: .4byte gPaletteFade
+_08076D3C: .4byte gUnknown_0202F7C5
+_08076D40:
+ cmp r3, 0x2
+ bne _08076D84
+ ldrh r0, [r4, 0x8]
+ lsls r2, r0, 16
+ asrs r1, r2, 16
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ bne _08076D58
+ bl dp01t_11_3_message_for_player_only
+ b _08076D5E
+_08076D58:
+ lsrs r0, r2, 16
+ bl sub_8076DB8
+_08076D5E:
+ movs r0, 0x1
+ str r0, [sp]
+ movs r0, 0xE8
+ movs r1, 0
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginHardwarePaletteFade
+ ldr r1, _08076D80 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldrh r1, [r0, 0x1C]
+ adds r1, 0x1
+ strh r1, [r0, 0x1C]
+ b _08076DAC
+ .align 2, 0
+_08076D80: .4byte gTasks
+_08076D84:
+ ldrb r1, [r2, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ bne _08076DAC
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r7
+ movs r1, 0x1C
+ ldrsh r0, [r0, r1]
+ cmp r0, 0x3
+ bne _08076DAC
+ adds r0, r5, 0
+ bl DestroyTask
+ ldr r0, _08076DB4 @ =gUnknown_0202F7C5
+ strb r4, [r0]
+_08076DAC:
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08076DB4: .4byte gUnknown_0202F7C5
+ thumb_func_end task_p5_load_battle_screen_elements
+
+ thumb_func_start sub_8076DB8
+sub_8076DB8: @ 8076DB8
+ push {r4-r7,lr}
+ lsls r0, 16
+ lsrs r6, r0, 16
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _08076E70
+ ldr r7, _08076E54 @ =gBattleAnimBackgroundTable
+ lsls r0, r6, 1
+ adds r0, r6
+ lsls r4, r0, 2
+ adds r0, r7, 0
+ adds r0, 0x8
+ adds r0, r4, r0
+ ldr r5, [r0]
+ bl sub_8076BE0
+ lsls r0, 24
+ ldr r1, _08076E58 @ =0x02018000
+ cmp r0, 0
+ beq _08076DE8
+ ldr r0, _08076E5C @ =0xffffc800
+ adds r1, r0
+_08076DE8:
+ adds r0, r5, 0
+ bl sub_800D238
+ bl sub_80789BC
+ lsls r0, 24
+ lsrs r5, r0, 24
+ bl sub_8076BE0
+ lsls r0, 24
+ ldr r1, _08076E58 @ =0x02018000
+ cmp r0, 0
+ beq _08076E06
+ ldr r0, _08076E5C @ =0xffffc800
+ adds r1, r0
+_08076E06:
+ movs r2, 0x80
+ lsls r2, 1
+ adds r0, r5, 0
+ movs r3, 0
+ bl sub_80763FC
+ bl sub_8076BE0
+ lsls r0, 24
+ ldr r2, _08076E58 @ =0x02018000
+ cmp r0, 0
+ beq _08076E22
+ ldr r0, _08076E5C @ =0xffffc800
+ adds r2, r0
+_08076E22:
+ ldr r1, _08076E60 @ =0x0600d000
+ ldr r0, _08076E64 @ =0x040000d4
+ str r2, [r0]
+ str r1, [r0, 0x4]
+ ldr r1, _08076E68 @ =0x84000200
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ adds r0, r4, r7
+ ldr r0, [r0]
+ ldr r1, _08076E6C @ =0x06002000
+ bl LZDecompressVram
+ adds r0, r7, 0x4
+ adds r0, r4, r0
+ ldr r4, [r0]
+ bl sub_80789BC
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 20
+ adds r0, r4, 0
+ movs r2, 0x20
+ bl LoadCompressedPalette
+ b _08076E9E
+ .align 2, 0
+_08076E54: .4byte gBattleAnimBackgroundTable
+_08076E58: .4byte 0x02018000
+_08076E5C: .4byte 0xffffc800
+_08076E60: .4byte 0x0600d000
+_08076E64: .4byte 0x040000d4
+_08076E68: .4byte 0x84000200
+_08076E6C: .4byte 0x06002000
+_08076E70:
+ ldr r5, _08076EA4 @ =gBattleAnimBackgroundTable
+ lsls r4, r6, 1
+ adds r4, r6
+ lsls r4, 2
+ adds r0, r5, 0
+ adds r0, 0x8
+ adds r0, r4, r0
+ ldr r0, [r0]
+ ldr r1, _08076EA8 @ =0x0600d000
+ bl LZDecompressVram
+ adds r0, r4, r5
+ ldr r0, [r0]
+ ldr r1, _08076EAC @ =0x06008000
+ bl LZDecompressVram
+ adds r5, 0x4
+ adds r4, r5
+ ldr r0, [r4]
+ movs r1, 0x20
+ movs r2, 0x20
+ bl LoadCompressedPalette
+_08076E9E:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08076EA4: .4byte gBattleAnimBackgroundTable
+_08076EA8: .4byte 0x0600d000
+_08076EAC: .4byte 0x06008000
+ thumb_func_end sub_8076DB8
+
+ thumb_func_start dp01t_11_3_message_for_player_only
+dp01t_11_3_message_for_player_only: @ 8076EB0
+ push {lr}
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _08076EC2
+ bl sub_80AB2AC
+ b _08076EC6
+_08076EC2:
+ bl sub_800D7B8
+_08076EC6:
+ pop {r0}
+ bx r0
+ thumb_func_end dp01t_11_3_message_for_player_only
+
+ thumb_func_start ma15_load_battle_screen_elements
+ma15_load_battle_screen_elements: @ 8076ECC
+ push {lr}
+ ldr r1, _08076EFC @ =gUnknown_0202F7A4
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ ldr r0, _08076F00 @ =task_p5_load_battle_screen_elements
+ movs r1, 0x5
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08076F04 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r0, _08076F08 @ =0x0000ffff
+ strh r0, [r1, 0x8]
+ ldr r1, _08076F0C @ =gUnknown_0202F7C5
+ movs r0, 0x1
+ strb r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08076EFC: .4byte gUnknown_0202F7A4
+_08076F00: .4byte task_p5_load_battle_screen_elements
+_08076F04: .4byte gTasks
+_08076F08: .4byte 0x0000ffff
+_08076F0C: .4byte gUnknown_0202F7C5
+ thumb_func_end ma15_load_battle_screen_elements
+
+ thumb_func_start ma16_wait_for_battle_screen_elements_s2
+ma16_wait_for_battle_screen_elements_s2: @ 8076F10
+ push {lr}
+ ldr r0, _08076F28 @ =gUnknown_0202F7C5
+ ldrb r0, [r0]
+ cmp r0, 0x2
+ bne _08076F34
+ ldr r1, _08076F2C @ =gUnknown_0202F7A4
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ ldr r1, _08076F30 @ =gUnknown_0202F7B0
+ movs r0, 0
+ b _08076F38
+ .align 2, 0
+_08076F28: .4byte gUnknown_0202F7C5
+_08076F2C: .4byte gUnknown_0202F7A4
+_08076F30: .4byte gUnknown_0202F7B0
+_08076F34:
+ ldr r1, _08076F40 @ =gUnknown_0202F7B0
+ movs r0, 0x1
+_08076F38:
+ strb r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08076F40: .4byte gUnknown_0202F7B0
+ thumb_func_end ma16_wait_for_battle_screen_elements_s2
+
+ thumb_func_start sub_8076F44
+sub_8076F44: @ 8076F44
+ push {lr}
+ ldr r0, _08076F5C @ =gUnknown_0202F7C5
+ ldrb r2, [r0]
+ cmp r2, 0
+ bne _08076F68
+ ldr r0, _08076F60 @ =gUnknown_0202F7A4
+ ldr r1, [r0]
+ adds r1, 0x1
+ str r1, [r0]
+ ldr r0, _08076F64 @ =gUnknown_0202F7B0
+ strb r2, [r0]
+ b _08076F6E
+ .align 2, 0
+_08076F5C: .4byte gUnknown_0202F7C5
+_08076F60: .4byte gUnknown_0202F7A4
+_08076F64: .4byte gUnknown_0202F7B0
+_08076F68:
+ ldr r1, _08076F74 @ =gUnknown_0202F7B0
+ movs r0, 0x1
+ strb r0, [r1]
+_08076F6E:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08076F74: .4byte gUnknown_0202F7B0
+ thumb_func_end sub_8076F44
+
+ thumb_func_start ma18_load_background_probably
+ma18_load_background_probably: @ 8076F78
+ push {r4,lr}
+ ldr r4, _08076F94 @ =gUnknown_0202F7A4
+ ldr r1, [r4]
+ adds r0, r1, 0x1
+ str r0, [r4]
+ ldrb r0, [r1, 0x1]
+ bl sub_8076DB8
+ ldr r0, [r4]
+ adds r0, 0x1
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08076F94: .4byte gUnknown_0202F7A4
+ thumb_func_end ma18_load_background_probably
+
+ thumb_func_start sub_8076F98
+sub_8076F98: @ 8076F98
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _08076FDC
+ ldr r0, _08076FD4 @ =gUnknown_0202F7C8
+ ldrb r2, [r0]
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ ldr r1, _08076FD8 @ =0x02017810
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _08076FDC
+ adds r0, r2, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ movs r4, 0xC0
+ cmp r0, 0
+ beq _0807706E
+ movs r4, 0x3F
+ b _0807706E
+ .align 2, 0
+_08076FD4: .4byte gUnknown_0202F7C8
+_08076FD8: .4byte 0x02017810
+_08076FDC:
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _08077004
+ ldr r0, _08076FFC @ =gUnknown_0202F7C8
+ ldr r1, _08077000 @ =gUnknown_0202F7C9
+ ldrb r0, [r0]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bne _08077068
+ cmp r0, 0x2
+ bne _08077068
+ cmp r4, 0x3F
+ beq _0807707A
+ b _08077068
+ .align 2, 0
+_08076FFC: .4byte gUnknown_0202F7C8
+_08077000: .4byte gUnknown_0202F7C9
+_08077004:
+ ldr r0, _0807702C @ =gUnknown_0202F7C8
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _08077042
+ ldr r0, _08077030 @ =gUnknown_0202F7C9
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _0807706E
+ lsls r0, r4, 24
+ asrs r1, r0, 24
+ cmp r1, 0x3F
+ bne _08077034
+ movs r4, 0xC0
+ b _0807706E
+ .align 2, 0
+_0807702C: .4byte gUnknown_0202F7C8
+_08077030: .4byte gUnknown_0202F7C9
+_08077034:
+ movs r0, 0x40
+ negs r0, r0
+ cmp r1, r0
+ beq _0807706E
+ negs r0, r1
+ lsls r0, 24
+ b _0807706C
+_08077042:
+ ldr r0, _08077064 @ =gUnknown_0202F7C9
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08077068
+ lsls r0, r4, 24
+ asrs r0, 24
+ movs r1, 0x40
+ negs r1, r1
+ cmp r0, r1
+ bne _0807706E
+ movs r4, 0x3F
+ b _0807706E
+ .align 2, 0
+_08077064: .4byte gUnknown_0202F7C9
+_08077068:
+ lsls r0, r4, 24
+ negs r0, r0
+_0807706C:
+ lsrs r4, r0, 24
+_0807706E:
+ lsls r0, r4, 24
+ asrs r0, 24
+ cmp r0, 0x3F
+ ble _0807707A
+ movs r4, 0x3F
+ b _08077088
+_0807707A:
+ lsls r0, r4, 24
+ asrs r0, 24
+ movs r1, 0x40
+ negs r1, r1
+ cmp r0, r1
+ bge _08077088
+ movs r4, 0xC0
+_08077088:
+ lsls r0, r4, 24
+ asrs r0, 24
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8076F98
+
+ thumb_func_start sub_8077094
+sub_8077094: @ 8077094
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080770D8
+ ldr r0, _080770D0 @ =gUnknown_0202F7C8
+ ldrb r2, [r0]
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ ldr r1, _080770D4 @ =0x02017810
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080770D8
+ adds r0, r2, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ movs r4, 0xC0
+ cmp r0, 0
+ beq _080770F6
+ movs r4, 0x3F
+ b _080770F6
+ .align 2, 0
+_080770D0: .4byte gUnknown_0202F7C8
+_080770D4: .4byte 0x02017810
+_080770D8:
+ ldr r0, _08077100 @ =gUnknown_0202F7C8
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080770F0
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080770F6
+_080770F0:
+ lsls r0, r4, 24
+ negs r0, r0
+ lsrs r4, r0, 24
+_080770F6:
+ lsls r0, r4, 24
+ asrs r0, 24
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08077100: .4byte gUnknown_0202F7C8
+ thumb_func_end sub_8077094
+
+ thumb_func_start sub_8077104
+sub_8077104: @ 8077104
+ push {lr}
+ lsls r0, 16
+ lsrs r1, r0, 16
+ asrs r2, r0, 16
+ cmp r2, 0x3F
+ ble _08077114
+ movs r1, 0x3F
+ b _0807711E
+_08077114:
+ movs r0, 0x40
+ negs r0, r0
+ cmp r2, r0
+ bge _0807711E
+ ldr r1, _08077128 @ =0x0000ffc0
+_0807711E:
+ lsls r0, r1, 16
+ asrs r0, 16
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08077128: .4byte 0x0000ffc0
+ thumb_func_end sub_8077104
+
+ thumb_func_start sub_807712C
+sub_807712C: @ 807712C
+ push {lr}
+ lsls r2, 16
+ lsrs r2, 16
+ adds r3, r2, 0
+ lsls r0, 16
+ asrs r0, 16
+ lsls r1, 16
+ asrs r1, 16
+ cmp r0, r1
+ bge _0807714A
+ lsls r0, r2, 16
+ asrs r0, 16
+ cmp r0, 0
+ bge _0807715A
+ b _08077158
+_0807714A:
+ cmp r0, r1
+ ble _08077160
+ lsls r0, r3, 16
+ asrs r0, 16
+ cmp r0, 0
+ bge _08077158
+ negs r0, r0
+_08077158:
+ negs r0, r0
+_0807715A:
+ lsls r0, 16
+ lsrs r0, 16
+ b _08077162
+_08077160:
+ movs r0, 0
+_08077162:
+ lsls r0, 16
+ asrs r0, 16
+ pop {r1}
+ bx r1
+ thumb_func_end sub_807712C
+
+ thumb_func_start ma19_08073BC8
+ma19_08073BC8: @ 807716C
+ push {r4,r5,lr}
+ ldr r5, _080771A0 @ =gUnknown_0202F7A4
+ ldr r0, [r5]
+ adds r1, r0, 0x1
+ str r1, [r5]
+ ldrb r4, [r0, 0x1]
+ ldrb r0, [r1, 0x1]
+ lsls r0, 8
+ orrs r4, r0
+ movs r0, 0x2
+ ldrsb r0, [r1, r0]
+ bl sub_8076F98
+ adds r1, r0, 0
+ lsls r1, 24
+ asrs r1, 24
+ adds r0, r4, 0
+ bl PlaySE12WithPanning
+ ldr r0, [r5]
+ adds r0, 0x3
+ str r0, [r5]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080771A0: .4byte gUnknown_0202F7A4
+ thumb_func_end ma19_08073BC8
+
+ thumb_func_start ma1A_8073C00
+ma1A_8073C00: @ 80771A4
+ push {r4,lr}
+ ldr r4, _080771CC @ =gUnknown_0202F7A4
+ ldr r1, [r4]
+ adds r0, r1, 0x1
+ str r0, [r4]
+ movs r0, 0x1
+ ldrsb r0, [r1, r0]
+ bl sub_8076F98
+ lsls r0, 24
+ asrs r0, 24
+ bl SE12PanpotControl
+ ldr r0, [r4]
+ adds r0, 0x1
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080771CC: .4byte gUnknown_0202F7A4
+ thumb_func_end ma1A_8073C00
+
+ thumb_func_start ma1B_8073C2C
+ma1B_8073C2C: @ 80771D0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r0, _08077280 @ =gUnknown_0202F7A4
+ mov r10, r0
+ ldr r0, [r0]
+ adds r1, r0, 0x1
+ mov r2, r10
+ str r1, [r2]
+ ldrb r0, [r0, 0x1]
+ mov r9, r0
+ ldrb r0, [r1, 0x1]
+ lsls r0, 8
+ mov r2, r9
+ orrs r2, r0
+ mov r9, r2
+ ldrb r4, [r1, 0x3]
+ ldrb r6, [r1, 0x4]
+ ldrb r7, [r1, 0x5]
+ movs r0, 0x2
+ ldrsb r0, [r1, r0]
+ bl sub_8076F98
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r4, 24
+ asrs r4, 24
+ adds r0, r4, 0
+ bl sub_8076F98
+ mov r8, r0
+ lsls r5, 24
+ asrs r5, 24
+ mov r0, r8
+ lsls r0, 24
+ asrs r0, 24
+ mov r8, r0
+ lsls r6, 24
+ asrs r6, 24
+ adds r0, r5, 0
+ mov r1, r8
+ adds r2, r6, 0
+ bl sub_807712C
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _08077284 @ =c3_08073CEC
+ movs r1, 0x1
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08077288 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ strh r5, [r1, 0x8]
+ mov r2, r8
+ strh r2, [r1, 0xA]
+ lsls r4, 24
+ asrs r4, 24
+ strh r4, [r1, 0xC]
+ strh r7, [r1, 0xE]
+ strh r5, [r1, 0x10]
+ mov r0, r9
+ adds r1, r5, 0
+ bl PlaySE12WithPanning
+ ldr r1, _0807728C @ =gUnknown_0202F7B3
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ mov r1, r10
+ ldr r0, [r1]
+ adds r0, 0x6
+ str r0, [r1]
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08077280: .4byte gUnknown_0202F7A4
+_08077284: .4byte c3_08073CEC
+_08077288: .4byte gTasks
+_0807728C: .4byte gUnknown_0202F7B3
+ thumb_func_end ma1B_8073C2C
+
+ thumb_func_start c3_08073CEC
+c3_08073CEC: @ 8077290
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r7, 0
+ ldr r1, _080772D4 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r2, r0, r1
+ ldrh r0, [r2, 0x18]
+ adds r1, r0, 0x1
+ strh r1, [r2, 0x18]
+ lsls r0, 16
+ asrs r0, 16
+ movs r3, 0xE
+ ldrsh r1, [r2, r3]
+ cmp r0, r1
+ blt _08077314
+ strh r7, [r2, 0x18]
+ ldrh r6, [r2, 0x8]
+ ldrh r3, [r2, 0xA]
+ movs r4, 0x10
+ ldrsh r0, [r2, r4]
+ movs r4, 0xC
+ ldrsh r1, [r2, r4]
+ adds r0, r1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ strh r4, [r2, 0x10]
+ cmp r1, 0
+ bne _080772D8
+ lsls r2, r3, 16
+ b _080772FC
+ .align 2, 0
+_080772D4: .4byte gTasks
+_080772D8:
+ lsls r1, r6, 16
+ lsls r0, r3, 16
+ asrs r3, r0, 16
+ adds r2, r0, 0
+ cmp r1, r2
+ bge _080772EE
+ lsls r0, r4, 16
+ asrs r0, 16
+ cmp r0, r3
+ blt _080772F8
+ b _080772FC
+_080772EE:
+ lsls r0, r4, 16
+ asrs r0, 16
+ cmp r0, r3
+ bgt _080772F8
+ movs r7, 0x1
+_080772F8:
+ cmp r7, 0
+ beq _0807730C
+_080772FC:
+ lsrs r4, r2, 16
+ adds r0, r5, 0
+ bl DestroyTask
+ ldr r1, _0807731C @ =gUnknown_0202F7B3
+ ldrb r0, [r1]
+ subs r0, 0x1
+ strb r0, [r1]
+_0807730C:
+ lsls r0, r4, 24
+ asrs r0, 24
+ bl SE12PanpotControl
+_08077314:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807731C: .4byte gUnknown_0202F7B3
+ thumb_func_end c3_08073CEC
+
+ thumb_func_start sub_8077320
+sub_8077320: @ 8077320
+ push {r4-r6,lr}
+ mov r6, r10
+ mov r5, r9
+ mov r4, r8
+ push {r4-r6}
+ ldr r0, _080773A4 @ =gUnknown_0202F7A4
+ mov r9, r0
+ ldr r0, [r0]
+ adds r1, r0, 0x1
+ mov r2, r9
+ str r1, [r2]
+ ldrb r0, [r0, 0x1]
+ mov r8, r0
+ ldrb r0, [r1, 0x1]
+ lsls r0, 8
+ mov r2, r8
+ orrs r2, r0
+ mov r8, r2
+ ldrb r4, [r1, 0x2]
+ ldrb r5, [r1, 0x3]
+ ldrb r6, [r1, 0x4]
+ ldrb r1, [r1, 0x5]
+ mov r10, r1
+ ldr r0, _080773A8 @ =c3_08073CEC
+ movs r1, 0x1
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080773AC @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ lsls r4, 24
+ asrs r4, 24
+ strh r4, [r1, 0x8]
+ lsls r5, 24
+ asrs r5, 24
+ strh r5, [r1, 0xA]
+ lsls r6, 24
+ asrs r6, 24
+ strh r6, [r1, 0xC]
+ mov r0, r10
+ strh r0, [r1, 0xE]
+ strh r4, [r1, 0x10]
+ mov r0, r8
+ adds r1, r4, 0
+ bl PlaySE12WithPanning
+ ldr r1, _080773B0 @ =gUnknown_0202F7B3
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ mov r1, r9
+ ldr r0, [r1]
+ adds r0, 0x6
+ str r0, [r1]
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080773A4: .4byte gUnknown_0202F7A4
+_080773A8: .4byte c3_08073CEC
+_080773AC: .4byte gTasks
+_080773B0: .4byte gUnknown_0202F7B3
+ thumb_func_end sub_8077320
+
+ thumb_func_start sub_80773B4
+sub_80773B4: @ 80773B4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r0, _08077464 @ =gUnknown_0202F7A4
+ mov r10, r0
+ ldr r0, [r0]
+ adds r1, r0, 0x1
+ mov r2, r10
+ str r1, [r2]
+ ldrb r0, [r0, 0x1]
+ mov r9, r0
+ ldrb r0, [r1, 0x1]
+ lsls r0, 8
+ mov r2, r9
+ orrs r2, r0
+ mov r9, r2
+ ldrb r4, [r1, 0x3]
+ ldrb r0, [r1, 0x4]
+ mov r8, r0
+ ldrb r7, [r1, 0x5]
+ movs r0, 0x2
+ ldrsb r0, [r1, r0]
+ bl sub_8077094
+ adds r6, r0, 0
+ lsls r6, 24
+ lsrs r6, 24
+ lsls r4, 24
+ asrs r4, 24
+ adds r0, r4, 0
+ bl sub_8077094
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ mov r1, r8
+ lsls r1, 24
+ asrs r1, 24
+ mov r8, r1
+ mov r0, r8
+ bl sub_8077094
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _08077468 @ =c3_08073CEC
+ movs r1, 0x1
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0807746C @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ lsls r6, 24
+ asrs r6, 24
+ strh r6, [r1, 0x8]
+ lsls r5, 24
+ asrs r5, 24
+ strh r5, [r1, 0xA]
+ lsls r4, 24
+ asrs r4, 24
+ strh r4, [r1, 0xC]
+ strh r7, [r1, 0xE]
+ strh r6, [r1, 0x10]
+ mov r0, r9
+ adds r1, r6, 0
+ bl PlaySE12WithPanning
+ ldr r1, _08077470 @ =gUnknown_0202F7B3
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ mov r2, r10
+ ldr r0, [r2]
+ adds r0, 0x6
+ str r0, [r2]
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08077464: .4byte gUnknown_0202F7A4
+_08077468: .4byte c3_08073CEC
+_0807746C: .4byte gTasks
+_08077470: .4byte gUnknown_0202F7B3
+ thumb_func_end sub_80773B4
+
+ thumb_func_start ma1C_8073ED0
+ma1C_8073ED0: @ 8077474
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ ldr r6, _080774EC @ =gUnknown_0202F7A4
+ ldr r0, [r6]
+ adds r1, r0, 0x1
+ str r1, [r6]
+ ldrb r5, [r0, 0x1]
+ ldrb r0, [r1, 0x1]
+ lsls r0, 8
+ orrs r5, r0
+ ldrb r0, [r1, 0x3]
+ mov r8, r0
+ ldrb r2, [r1, 0x4]
+ mov r9, r2
+ movs r0, 0x2
+ ldrsb r0, [r1, r0]
+ bl sub_8076F98
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _080774F0 @ =sub_80774FC
+ movs r1, 0x1
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080774F4 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ strh r5, [r1, 0x8]
+ lsls r4, 24
+ asrs r4, 24
+ strh r4, [r1, 0xA]
+ mov r2, r8
+ strh r2, [r1, 0xC]
+ mov r2, r9
+ strh r2, [r1, 0xE]
+ mov r2, r8
+ strh r2, [r1, 0x18]
+ ldr r1, [r1]
+ bl _call_via_r1
+ ldr r1, _080774F8 @ =gUnknown_0202F7B3
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ ldr r0, [r6]
+ adds r0, 0x5
+ str r0, [r6]
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080774EC: .4byte gUnknown_0202F7A4
+_080774F0: .4byte sub_80774FC
+_080774F4: .4byte gTasks
+_080774F8: .4byte gUnknown_0202F7B3
+ thumb_func_end ma1C_8073ED0
+
+ thumb_func_start sub_80774FC
+sub_80774FC: @ 80774FC
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _08077550 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r2, r0, r1
+ ldrh r0, [r2, 0x18]
+ adds r1, r0, 0x1
+ strh r1, [r2, 0x18]
+ lsls r0, 16
+ asrs r0, 16
+ movs r3, 0xC
+ ldrsh r1, [r2, r3]
+ cmp r0, r1
+ blt _0807754A
+ movs r0, 0
+ strh r0, [r2, 0x18]
+ ldrh r0, [r2, 0x8]
+ ldrb r1, [r2, 0xA]
+ ldrh r4, [r2, 0xE]
+ subs r4, 0x1
+ strh r4, [r2, 0xE]
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r1, 24
+ asrs r1, 24
+ bl PlaySE12WithPanning
+ cmp r4, 0
+ bne _0807754A
+ adds r0, r5, 0
+ bl DestroyTask
+ ldr r1, _08077554 @ =gUnknown_0202F7B3
+ ldrb r0, [r1]
+ subs r0, 0x1
+ strb r0, [r1]
+_0807754A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08077550: .4byte gTasks
+_08077554: .4byte gUnknown_0202F7B3
+ thumb_func_end sub_80774FC
+
+ thumb_func_start ma1D_08073FB4
+ma1D_08073FB4: @ 8077558
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ ldr r6, _080775BC @ =gUnknown_0202F7A4
+ ldr r0, [r6]
+ adds r1, r0, 0x1
+ str r1, [r6]
+ ldrb r5, [r0, 0x1]
+ ldrb r0, [r1, 0x1]
+ lsls r0, 8
+ orrs r5, r0
+ ldrb r0, [r1, 0x3]
+ mov r8, r0
+ movs r0, 0x2
+ ldrsb r0, [r1, r0]
+ bl sub_8076F98
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _080775C0 @ =sub_80775CC
+ movs r1, 0x1
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080775C4 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ strh r5, [r1, 0x8]
+ lsls r4, 24
+ asrs r4, 24
+ strh r4, [r1, 0xA]
+ mov r0, r8
+ strh r0, [r1, 0xC]
+ ldr r1, _080775C8 @ =gUnknown_0202F7B3
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ ldr r0, [r6]
+ adds r0, 0x4
+ str r0, [r6]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080775BC: .4byte gUnknown_0202F7A4
+_080775C0: .4byte sub_80775CC
+_080775C4: .4byte gTasks
+_080775C8: .4byte gUnknown_0202F7B3
+ thumb_func_end ma1D_08073FB4
+
+ thumb_func_start sub_80775CC
+sub_80775CC: @ 80775CC
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, _08077608 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r2, r0, r1
+ ldrh r0, [r2, 0xC]
+ subs r1, r0, 0x1
+ strh r1, [r2, 0xC]
+ lsls r0, 16
+ cmp r0, 0
+ bgt _08077600
+ ldrh r0, [r2, 0x8]
+ movs r1, 0xA
+ ldrsb r1, [r2, r1]
+ bl PlaySE12WithPanning
+ adds r0, r4, 0
+ bl DestroyTask
+ ldr r1, _0807760C @ =gUnknown_0202F7B3
+ ldrb r0, [r1]
+ subs r0, 0x1
+ strb r0, [r1]
+_08077600:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08077608: .4byte gTasks
+_0807760C: .4byte gUnknown_0202F7B3
+ thumb_func_end sub_80775CC
+
+ thumb_func_start sub_8077610
+sub_8077610: @ 8077610
+ push {r4-r6,lr}
+ ldr r4, _08077678 @ =gUnknown_0202F7A4
+ ldr r1, [r4]
+ adds r3, r1, 0x1
+ str r3, [r4]
+ ldrb r2, [r1, 0x1]
+ ldrb r0, [r3, 0x1]
+ lsls r0, 8
+ adds r2, r0
+ ldrb r0, [r3, 0x2]
+ lsls r0, 16
+ adds r2, r0
+ ldrb r0, [r3, 0x3]
+ lsls r0, 24
+ adds r6, r2, r0
+ adds r0, r1, 0x5
+ str r0, [r4]
+ ldrb r0, [r1, 0x5]
+ adds r1, 0x6
+ str r1, [r4]
+ cmp r0, 0
+ beq _0807765A
+ adds r5, r4, 0
+ ldr r4, _0807767C @ =gBattleAnimArgs
+ adds r3, r0, 0
+_08077642:
+ ldr r2, [r5]
+ ldrb r1, [r2]
+ ldrb r0, [r2, 0x1]
+ lsls r0, 8
+ orrs r1, r0
+ strh r1, [r4]
+ adds r2, 0x2
+ str r2, [r5]
+ adds r4, 0x2
+ subs r3, 0x1
+ cmp r3, 0
+ bne _08077642
+_0807765A:
+ adds r0, r6, 0
+ movs r1, 0x1
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ bl _call_via_r6
+ ldr r1, _08077680 @ =gUnknown_0202F7B3
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08077678: .4byte gUnknown_0202F7A4
+_0807767C: .4byte gBattleAnimArgs
+_08077680: .4byte gUnknown_0202F7B3
+ thumb_func_end sub_8077610
+
+ thumb_func_start ma20_wait_for_something
+ma20_wait_for_something: @ 8077684
+ push {r4,r5,lr}
+ ldr r0, _080776BC @ =gUnknown_0202F7B3
+ ldrb r5, [r0]
+ cmp r5, 0
+ bne _080776CC
+ bl IsSEPlaying
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0
+ beq _080776E4
+ ldr r4, _080776C0 @ =gUnknown_03004AF0
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x5A
+ bls _080776D2
+ ldr r0, _080776C4 @ =gMPlay_SE1
+ bl m4aMPlayStop
+ ldr r0, _080776C8 @ =gMPlay_SE2
+ bl m4aMPlayStop
+ strh r5, [r4]
+ b _080776F6
+ .align 2, 0
+_080776BC: .4byte gUnknown_0202F7B3
+_080776C0: .4byte gUnknown_03004AF0
+_080776C4: .4byte gMPlay_SE1
+_080776C8: .4byte gMPlay_SE2
+_080776CC:
+ ldr r1, _080776DC @ =gUnknown_03004AF0
+ movs r0, 0
+ strh r0, [r1]
+_080776D2:
+ ldr r1, _080776E0 @ =gUnknown_0202F7B0
+ movs r0, 0x1
+ strb r0, [r1]
+ b _080776F6
+ .align 2, 0
+_080776DC: .4byte gUnknown_03004AF0
+_080776E0: .4byte gUnknown_0202F7B0
+_080776E4:
+ ldr r0, _080776FC @ =gUnknown_03004AF0
+ movs r2, 0
+ strh r1, [r0]
+ ldr r1, _08077700 @ =gUnknown_0202F7A4
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ ldr r0, _08077704 @ =gUnknown_0202F7B0
+ strb r2, [r0]
+_080776F6:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080776FC: .4byte gUnknown_03004AF0
+_08077700: .4byte gUnknown_0202F7A4
+_08077704: .4byte gUnknown_0202F7B0
+ thumb_func_end ma20_wait_for_something
+
+ thumb_func_start ma21_08074164
+ma21_08074164: @ 8077708
+ push {r4-r6,lr}
+ ldr r5, _08077748 @ =gUnknown_0202F7A4
+ ldr r4, [r5]
+ adds r3, r4, 0x1
+ str r3, [r5]
+ ldrb r2, [r4, 0x1]
+ ldrb r1, [r3, 0x1]
+ ldrb r0, [r3, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldr r0, _0807774C @ =gBattleAnimArgs
+ lsls r2, 1
+ adds r2, r0
+ lsls r1, 16
+ asrs r1, 16
+ movs r6, 0
+ ldrsh r0, [r2, r6]
+ cmp r1, r0
+ bne _08077750
+ ldrb r1, [r3, 0x3]
+ ldrb r0, [r3, 0x4]
+ lsls r0, 8
+ adds r1, r0
+ ldrb r0, [r3, 0x5]
+ lsls r0, 16
+ adds r1, r0
+ ldrb r0, [r3, 0x6]
+ lsls r0, 24
+ adds r1, r0
+ str r1, [r5]
+ b _08077756
+ .align 2, 0
+_08077748: .4byte gUnknown_0202F7A4
+_0807774C: .4byte gBattleAnimArgs
+_08077750:
+ adds r0, r4, 0
+ adds r0, 0x8
+ str r0, [r5]
+_08077756:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end ma21_08074164
+
+ thumb_func_start sub_807775C
+sub_807775C: @ 807775C
+ push {r4,lr}
+ ldr r4, _0807778C @ =gUnknown_0202F7A4
+ ldr r0, [r4]
+ adds r0, 0x1
+ str r0, [r4]
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _08077790
+ ldr r2, [r4]
+ ldrb r1, [r2]
+ ldrb r0, [r2, 0x1]
+ lsls r0, 8
+ adds r1, r0
+ ldrb r0, [r2, 0x2]
+ lsls r0, 16
+ adds r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 24
+ adds r1, r0
+ str r1, [r4]
+ b _08077796
+ .align 2, 0
+_0807778C: .4byte gUnknown_0202F7A4
+_08077790:
+ ldr r0, [r4]
+ adds r0, 0x4
+ str r0, [r4]
+_08077796:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_807775C
+
+ thumb_func_start sub_807779C
+sub_807779C: @ 807779C
+ push {r4,lr}
+ ldr r0, _080777B0 @ =gUnknown_0202F7A4
+ ldr r1, [r0]
+ ldrb r2, [r1, 0x1]
+ adds r1, 0x2
+ str r1, [r0]
+ cmp r2, 0
+ beq _080777B8
+ ldr r0, _080777B4 @ =gUnknown_0202F7C9
+ b _080777BA
+ .align 2, 0
+_080777B0: .4byte gUnknown_0202F7A4
+_080777B4: .4byte gUnknown_0202F7C9
+_080777B8:
+ ldr r0, _080777FC @ =gUnknown_0202F7C8
+_080777BA:
+ ldrb r0, [r0]
+ bl battle_get_per_side_status
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080777F4
+ cmp r4, 0
+ beq _080777D6
+ cmp r4, 0x3
+ bne _080777F4
+_080777D6:
+ ldr r3, _08077800 @ =REG_BG1CNT
+ ldrb r2, [r3]
+ movs r1, 0x4
+ negs r1, r1
+ adds r0, r1, 0
+ ands r0, r2
+ movs r2, 0x1
+ orrs r0, r2
+ strb r0, [r3]
+ ldr r2, _08077804 @ =REG_BG2CNT
+ ldrb r0, [r2]
+ ands r1, r0
+ movs r0, 0x2
+ orrs r1, r0
+ strb r1, [r2]
+_080777F4:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080777FC: .4byte gUnknown_0202F7C8
+_08077800: .4byte REG_BG1CNT
+_08077804: .4byte REG_BG2CNT
+ thumb_func_end sub_807779C
+
+ thumb_func_start sub_8077808
+sub_8077808: @ 8077808
+ push {lr}
+ ldr r0, _08077840 @ =gUnknown_0202F7A4
+ ldr r1, [r0]
+ adds r1, 0x1
+ str r1, [r0]
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _0807783A
+ ldr r3, _08077844 @ =REG_BG1CNT
+ ldrb r2, [r3]
+ movs r1, 0x4
+ negs r1, r1
+ adds r0, r1, 0
+ ands r0, r2
+ movs r2, 0x1
+ orrs r0, r2
+ strb r0, [r3]
+ ldr r2, _08077848 @ =REG_BG2CNT
+ ldrb r0, [r2]
+ ands r1, r0
+ movs r0, 0x2
+ orrs r1, r0
+ strb r1, [r2]
+_0807783A:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08077840: .4byte gUnknown_0202F7A4
+_08077844: .4byte REG_BG1CNT
+_08077848: .4byte REG_BG2CNT
+ thumb_func_end sub_8077808
+
+ thumb_func_start sub_807784C
+sub_807784C: @ 807784C
+ push {r4-r7,lr}
+ ldr r1, _0807787C @ =gUnknown_0202F7A4
+ ldr r0, [r1]
+ ldrb r6, [r0, 0x1]
+ adds r0, 0x2
+ str r0, [r1]
+ ldr r7, _08077880 @ =gUnknown_0202F7C8
+ ldrb r0, [r7]
+ bl battle_side_get_owner
+ adds r4, r0, 0
+ ldr r5, _08077884 @ =gUnknown_0202F7C9
+ ldrb r0, [r5]
+ bl battle_side_get_owner
+ lsls r4, 24
+ lsls r0, 24
+ cmp r4, r0
+ beq _080778C2
+ cmp r6, 0
+ beq _08077888
+ ldrb r0, [r5]
+ b _0807788A
+ .align 2, 0
+_0807787C: .4byte gUnknown_0202F7A4
+_08077880: .4byte gUnknown_0202F7C8
+_08077884: .4byte gUnknown_0202F7C9
+_08077888:
+ ldrb r0, [r7]
+_0807788A:
+ bl battle_get_per_side_status
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080778C2
+ cmp r4, 0
+ beq _080778A4
+ cmp r4, 0x3
+ bne _080778C2
+_080778A4:
+ ldr r3, _080778C8 @ =REG_BG1CNT
+ ldrb r2, [r3]
+ movs r1, 0x4
+ negs r1, r1
+ adds r0, r1, 0
+ ands r0, r2
+ movs r2, 0x1
+ orrs r0, r2
+ strb r0, [r3]
+ ldr r2, _080778CC @ =REG_BG2CNT
+ ldrb r0, [r2]
+ ands r1, r0
+ movs r0, 0x2
+ orrs r1, r0
+ strb r1, [r2]
+_080778C2:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080778C8: .4byte REG_BG1CNT
+_080778CC: .4byte REG_BG2CNT
+ thumb_func_end sub_807784C
+
+ thumb_func_start ma2B_make_side_invisible
+ma2B_make_side_invisible: @ 80778D0
+ push {r4,lr}
+ ldr r4, _08077904 @ =gUnknown_0202F7A4
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x1]
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0xFF
+ beq _080778F8
+ ldr r1, _08077908 @ =gSprites
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r1
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+_080778F8:
+ ldr r0, [r4]
+ adds r0, 0x2
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08077904: .4byte gUnknown_0202F7A4
+_08077908: .4byte gSprites
+ thumb_func_end ma2B_make_side_invisible
+
+ thumb_func_start ma2C_make_side_visible
+ma2C_make_side_visible: @ 807790C
+ push {r4,lr}
+ ldr r4, _08077944 @ =gUnknown_0202F7A4
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x1]
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0xFF
+ beq _08077936
+ ldr r1, _08077948 @ =gSprites
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r1
+ adds r0, 0x3E
+ ldrb r2, [r0]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r0]
+_08077936:
+ ldr r0, [r4]
+ adds r0, 0x2
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08077944: .4byte gUnknown_0202F7A4
+_08077948: .4byte gSprites
+ thumb_func_end ma2C_make_side_visible
+
+ thumb_func_start sub_807794C
+sub_807794C: @ 807794C
+ push {r4-r7,lr}
+ ldr r1, _08077998 @ =gUnknown_0202F7A4
+ ldr r0, [r1]
+ ldrb r7, [r0, 0x1]
+ adds r0, 0x2
+ str r0, [r1]
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080779F6
+ bl IsDoubleBattle
+ lsls r0, 24
+ cmp r0, 0
+ beq _080779F6
+ ldr r6, _0807799C @ =gUnknown_0202F7C8
+ ldrb r0, [r6]
+ bl battle_side_get_owner
+ adds r4, r0, 0
+ ldr r5, _080779A0 @ =gUnknown_0202F7C9
+ ldrb r0, [r5]
+ bl battle_side_get_owner
+ lsls r4, 24
+ lsls r0, 24
+ cmp r4, r0
+ bne _080779F6
+ cmp r7, 0
+ bne _080779A4
+ ldrb r0, [r6]
+ bl battle_get_per_side_status_permutated
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r0, 0
+ b _080779B0
+ .align 2, 0
+_08077998: .4byte gUnknown_0202F7A4
+_0807799C: .4byte gUnknown_0202F7C8
+_080779A0: .4byte gUnknown_0202F7C9
+_080779A4:
+ ldrb r0, [r5]
+ bl battle_get_per_side_status_permutated
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r0, 0x1
+_080779B0:
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0xFF
+ beq _080779F6
+ ldr r1, _080779EC @ =gSprites
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r2, r0, r1
+ adds r3, r2, 0
+ adds r3, 0x3E
+ ldrb r1, [r3]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r3]
+ cmp r4, 0x2
+ bne _080779E0
+ ldrb r0, [r2, 0x5]
+ movs r1, 0xC
+ orrs r0, r1
+ strb r0, [r2, 0x5]
+_080779E0:
+ cmp r4, 0x1
+ bne _080779F0
+ movs r0, 0
+ bl sub_8076464
+ b _080779F6
+ .align 2, 0
+_080779EC: .4byte gSprites
+_080779F0:
+ movs r0, 0x1
+ bl sub_8076464
+_080779F6:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_807794C
+
+ thumb_func_start sub_80779FC
+sub_80779FC: @ 80779FC
+ push {r4-r7,lr}
+ ldr r1, _08077A48 @ =gUnknown_0202F7A4
+ ldr r0, [r1]
+ ldrb r7, [r0, 0x1]
+ adds r0, 0x2
+ str r0, [r1]
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _08077A88
+ bl IsDoubleBattle
+ lsls r0, 24
+ cmp r0, 0
+ beq _08077A88
+ ldr r6, _08077A4C @ =gUnknown_0202F7C8
+ ldrb r0, [r6]
+ bl battle_side_get_owner
+ adds r4, r0, 0
+ ldr r5, _08077A50 @ =gUnknown_0202F7C9
+ ldrb r0, [r5]
+ bl battle_side_get_owner
+ lsls r4, 24
+ lsls r0, 24
+ cmp r4, r0
+ bne _08077A88
+ cmp r7, 0
+ bne _08077A54
+ ldrb r0, [r6]
+ bl battle_get_per_side_status_permutated
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r0, 0
+ b _08077A60
+ .align 2, 0
+_08077A48: .4byte gUnknown_0202F7A4
+_08077A4C: .4byte gUnknown_0202F7C8
+_08077A50: .4byte gUnknown_0202F7C9
+_08077A54:
+ ldrb r0, [r5]
+ bl battle_get_per_side_status_permutated
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r0, 0x1
+_08077A60:
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0xFF
+ beq _08077A88
+ cmp r4, 0x2
+ bne _08077A88
+ ldr r1, _08077A90 @ =gSprites
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r1
+ ldrb r2, [r0, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r2
+ movs r2, 0x8
+ orrs r1, r2
+ strb r1, [r0, 0x5]
+_08077A88:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08077A90: .4byte gSprites
+ thumb_func_end sub_80779FC
+
+ thumb_func_start ma2F_stop_music
+ma2F_stop_music: @ 8077A94
+ push {lr}
+ ldr r0, _08077AB0 @ =gMPlay_SE1
+ bl m4aMPlayStop
+ ldr r0, _08077AB4 @ =gMPlay_SE2
+ bl m4aMPlayStop
+ ldr r1, _08077AB8 @ =gUnknown_0202F7A4
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08077AB0: .4byte gMPlay_SE1
+_08077AB4: .4byte gMPlay_SE2
+_08077AB8: .4byte gUnknown_0202F7A4
+ thumb_func_end ma2F_stop_music
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/battle_anim_807B69C.s b/asm/battle_anim_807B69C.s
new file mode 100644
index 000000000..cef472d03
--- /dev/null
+++ b/asm/battle_anim_807B69C.s
@@ -0,0 +1,960 @@
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start unref_sub_807B69C
+unref_sub_807B69C: @ 807B69C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r0, _0807B740 @ =gUnknown_02024BE0
+ adds r0, r4, r0
+ ldrb r6, [r0]
+ ldr r0, _0807B744 @ =sub_807B7E0
+ movs r1, 0xA
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r0, _0807B748 @ =gBattleAnimPicTable + (136 * 8)
+ bl LoadCompressedObjectPic
+ ldr r0, _0807B74C @ =gBattleAnimPaletteTable + (136 * 8)
+ bl LoadCompressedObjectPalette
+ ldr r1, _0807B750 @ =gTasks
+ mov r2, r8
+ lsls r0, r2, 2
+ add r0, r8
+ lsls r0, 3
+ adds r1, r0, r1
+ strh r4, [r1, 0x8]
+ cmp r5, 0
+ beq _0807B75C
+ movs r0, 0x1F
+ strh r0, [r1, 0xA]
+ movs r5, 0
+ lsls r0, r6, 4
+ ldr r7, _0807B754 @ =gSprites
+ adds r0, r6
+ lsls r0, 2
+ adds r6, r0, r7
+_0807B6F0:
+ movs r0, 0x20
+ ldrsh r1, [r6, r0]
+ ldrh r2, [r6, 0x22]
+ adds r2, 0x20
+ lsls r2, 16
+ asrs r2, 16
+ ldr r0, _0807B758 @ =gSpriteTemplate_83931F8
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ adds r3, r0, r7
+ lsls r0, r5, 1
+ adds r0, r5
+ lsls r1, r0, 4
+ adds r0, r1
+ strh r0, [r3, 0x2E]
+ movs r0, 0xFF
+ lsls r0, 8
+ strh r0, [r3, 0x30]
+ adds r2, r3, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ cmp r5, 0x4
+ bls _0807B734
+ movs r0, 0x15
+ strh r0, [r3, 0x3A]
+_0807B734:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x9
+ bls _0807B6F0
+ b _0807B7BC
+ .align 2, 0
+_0807B740: .4byte gUnknown_02024BE0
+_0807B744: .4byte sub_807B7E0
+_0807B748: .4byte gBattleAnimPicTable + (136 * 8)
+_0807B74C: .4byte gBattleAnimPaletteTable + (136 * 8)
+_0807B750: .4byte gTasks
+_0807B754: .4byte gSprites
+_0807B758: .4byte gSpriteTemplate_83931F8
+_0807B75C:
+ movs r0, 0xF8
+ lsls r0, 7
+ strh r0, [r1, 0xA]
+ movs r5, 0
+ lsls r0, r6, 4
+ ldr r7, _0807B7D8 @ =gSprites
+ adds r0, r6
+ lsls r0, 2
+ adds r6, r0, r7
+_0807B76E:
+ movs r2, 0x20
+ ldrsh r1, [r6, r2]
+ ldrh r2, [r6, 0x22]
+ subs r2, 0x20
+ lsls r2, 16
+ asrs r2, 16
+ ldr r0, _0807B7DC @ =gSpriteTemplate_83931F8
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ adds r3, r0, r7
+ lsls r0, r5, 1
+ adds r0, r5
+ lsls r1, r0, 4
+ adds r0, r1
+ strh r0, [r3, 0x2E]
+ movs r0, 0x80
+ lsls r0, 1
+ strh r0, [r3, 0x30]
+ adds r2, r3, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ cmp r5, 0x4
+ bls _0807B7B2
+ movs r0, 0x15
+ strh r0, [r3, 0x3A]
+_0807B7B2:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x9
+ bls _0807B76E
+_0807B7BC:
+ ldr r0, _0807B7D8 @ =gSprites
+ lsls r1, r4, 4
+ adds r1, r4
+ lsls r1, 2
+ adds r1, r0
+ movs r0, 0x1
+ strh r0, [r1, 0x3C]
+ mov r0, r8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0807B7D8: .4byte gSprites
+_0807B7DC: .4byte gSpriteTemplate_83931F8
+ thumb_func_end unref_sub_807B69C
+
+ thumb_func_start sub_807B7E0
+sub_807B7E0: @ 807B7E0
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _0807B838 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r4, r0, r1
+ ldrh r1, [r4, 0xC]
+ movs r2, 0xC
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x2
+ bne _0807B866
+ movs r0, 0
+ strh r0, [r4, 0xC]
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ lsls r0, 20
+ movs r2, 0x80
+ lsls r2, 17
+ adds r0, r2
+ lsrs r0, 16
+ ldrb r2, [r4, 0x10]
+ ldrh r3, [r4, 0xA]
+ movs r1, 0x10
+ bl BlendPalette
+ ldrh r2, [r4, 0x12]
+ movs r1, 0x12
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _0807B83C
+ ldrh r0, [r4, 0x10]
+ adds r0, 0x1
+ strh r0, [r4, 0x10]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x8
+ ble _0807B86A
+ movs r0, 0x1
+ eors r0, r2
+ strh r0, [r4, 0x12]
+ b _0807B86A
+ .align 2, 0
+_0807B838: .4byte gTasks
+_0807B83C:
+ ldrh r1, [r4, 0x10]
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x10]
+ lsls r0, 16
+ cmp r0, 0
+ bge _0807B86A
+ strh r1, [r4, 0x10]
+ movs r0, 0x1
+ eors r0, r2
+ strh r0, [r4, 0x12]
+ ldrh r0, [r4, 0xE]
+ adds r0, 0x1
+ strh r0, [r4, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ bne _0807B86A
+ adds r0, r5, 0
+ bl DestroyTask
+ b _0807B86A
+_0807B866:
+ adds r0, r1, 0x1
+ strh r0, [r4, 0xC]
+_0807B86A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_807B7E0
+
+ thumb_func_start sub_807B870
+sub_807B870: @ 807B870
+ push {lr}
+ adds r2, r0, 0
+ ldrh r1, [r2, 0x3A]
+ movs r3, 0x3A
+ ldrsh r0, [r2, r3]
+ cmp r0, 0
+ bne _0807B89C
+ adds r3, r2, 0
+ adds r3, 0x3E
+ ldrb r0, [r3]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r0
+ strb r1, [r3]
+ ldr r1, _0807B898 @ =sub_807B8A4
+ str r1, [r2, 0x1C]
+ adds r0, r2, 0
+ bl _call_via_r1
+ b _0807B8A0
+ .align 2, 0
+_0807B898: .4byte sub_807B8A4
+_0807B89C:
+ subs r0, r1, 0x1
+ strh r0, [r2, 0x3A]
+_0807B8A0:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_807B870
+
+ thumb_func_start sub_807B8A4
+sub_807B8A4: @ 807B8A4
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ movs r1, 0x20
+ bl Cos
+ strh r0, [r4, 0x24]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ movs r1, 0x8
+ bl Sin
+ strh r0, [r4, 0x26]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x7F
+ bgt _0807B8D0
+ adds r1, r4, 0
+ adds r1, 0x43
+ movs r0, 0x1D
+ b _0807B8D6
+_0807B8D0:
+ adds r1, r4, 0
+ adds r1, 0x43
+ movs r0, 0x1F
+_0807B8D6:
+ strb r0, [r1]
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x8
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r4, 0x30]
+ ldrh r1, [r4, 0x38]
+ adds r0, r1
+ strh r0, [r4, 0x38]
+ lsls r0, 16
+ asrs r0, 24
+ ldrh r1, [r4, 0x26]
+ adds r0, r1
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x1
+ strh r0, [r4, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x34
+ bne _0807B918
+ movs r1, 0x3C
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _0807B912
+ adds r0, r4, 0
+ bl DestroySpriteAndFreeResources
+ b _0807B918
+_0807B912:
+ adds r0, r4, 0
+ bl DestroySprite
+_0807B918:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_807B8A4
+
+ thumb_func_start sub_807B920
+sub_807B920: @ 807B920
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r4, _0807B9B0 @ =gUnknown_0202F7C9
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 8
+ ldr r1, _0807B9B4 @ =0xffe00000
+ adds r0, r1
+ lsrs r5, r0, 16
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 8
+ ldr r2, _0807B9B8 @ =0xffdc0000
+ adds r0, r2
+ lsrs r4, r0, 16
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807B95E
+ lsls r0, r5, 16
+ ldr r1, _0807B9BC @ =0xfffa0000
+ adds r0, r1
+ lsrs r5, r0, 16
+_0807B95E:
+ ldr r1, _0807B9C0 @ =REG_BLDCNT
+ movs r2, 0xFD
+ lsls r2, 6
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r2, 0x80
+ lsls r2, 5
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, _0807B9C4 @ =gSpriteTemplate_83931E0
+ lsls r1, r5, 16
+ asrs r1, 16
+ lsls r2, r4, 16
+ asrs r2, 16
+ movs r3, 0x4
+ bl CreateSprite
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ ldr r1, _0807B9C8 @ =gSprites
+ adds r0, r1
+ ldr r1, _0807B9CC @ =gSubspriteTables_83931D8
+ bl SetSubspriteTables
+ ldr r1, _0807B9D0 @ =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r0, r1
+ strh r4, [r0, 0x26]
+ ldr r1, _0807B9D4 @ =sub_807B9D8
+ str r1, [r0]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807B9B0: .4byte gUnknown_0202F7C9
+_0807B9B4: .4byte 0xffe00000
+_0807B9B8: .4byte 0xffdc0000
+_0807B9BC: .4byte 0xfffa0000
+_0807B9C0: .4byte REG_BLDCNT
+_0807B9C4: .4byte gSpriteTemplate_83931E0
+_0807B9C8: .4byte gSprites
+_0807B9CC: .4byte gSubspriteTables_83931D8
+_0807B9D0: .4byte gTasks
+_0807B9D4: .4byte sub_807B9D8
+ thumb_func_end sub_807B920
+
+ thumb_func_start sub_807B9D8
+sub_807B9D8: @ 807B9D8
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0807BA04 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldrh r0, [r1, 0xA]
+ adds r0, 0x1
+ adds r2, r0, 0
+ strh r0, [r1, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xA
+ bne _0807BA0C
+ ldr r0, _0807BA08 @ =sub_807BA24
+ str r0, [r1]
+ movs r0, 0
+ strh r0, [r1, 0xA]
+ b _0807BA1C
+ .align 2, 0
+_0807BA04: .4byte gTasks
+_0807BA08: .4byte sub_807BA24
+_0807BA0C:
+ lsls r0, r2, 24
+ lsrs r0, 24
+ ldr r2, _0807BA20 @ =REG_BLDALPHA
+ movs r1, 0x10
+ subs r1, r0
+ lsls r1, 8
+ orrs r1, r0
+ strh r1, [r2]
+_0807BA1C:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807BA20: .4byte REG_BLDALPHA
+ thumb_func_end sub_807B9D8
+
+ thumb_func_start sub_807BA24
+sub_807BA24: @ 807BA24
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _0807BABC @ =0x0000271a
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r1, _0807BAC0 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r5, r0, r1
+ ldrh r0, [r5, 0xA]
+ adds r1, r0, 0x1
+ strh r1, [r5, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xD
+ ble _0807BAB4
+ ldrh r0, [r5, 0xC]
+ adds r0, 0x1
+ movs r6, 0
+ strh r0, [r5, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ bne _0807BAB4
+ ldr r3, _0807BAC4 @ =gPlttBufferFaded
+ lsls r2, 4
+ mov r12, r2
+ ldr r1, _0807BAC8 @ =0x0000010d
+ add r1, r12
+ lsls r1, 1
+ adds r1, r3
+ ldrh r4, [r1]
+ movs r2, 0x87
+ lsls r2, 1
+ add r2, r12
+ lsls r2, 1
+ adds r2, r3
+ ldrh r0, [r2]
+ strh r0, [r1]
+ ldr r0, _0807BACC @ =0x0000010f
+ add r0, r12
+ lsls r0, 1
+ adds r0, r3
+ ldrh r1, [r0]
+ strh r1, [r2]
+ strh r4, [r0]
+ strh r6, [r5, 0xC]
+ ldrh r0, [r5, 0xE]
+ adds r0, 0x1
+ strh r0, [r5, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ bne _0807BAB4
+ strh r6, [r5, 0xE]
+ strh r6, [r5, 0xA]
+ ldrh r0, [r5, 0x10]
+ adds r0, 0x1
+ strh r0, [r5, 0x10]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ bne _0807BAB4
+ movs r0, 0x9
+ strh r0, [r5, 0xA]
+ ldr r0, _0807BAD0 @ =sub_807BAD4
+ str r0, [r5]
+_0807BAB4:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807BABC: .4byte 0x0000271a
+_0807BAC0: .4byte gTasks
+_0807BAC4: .4byte gPlttBufferFaded
+_0807BAC8: .4byte 0x0000010d
+_0807BACC: .4byte 0x0000010f
+_0807BAD0: .4byte sub_807BAD4
+ thumb_func_end sub_807BA24
+
+ thumb_func_start sub_807BAD4
+sub_807BAD4: @ 807BAD4
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0807BB04 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r2, r1, r2
+ ldrh r0, [r2, 0xA]
+ subs r0, 0x1
+ adds r3, r0, 0
+ strh r0, [r2, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ bne _0807BB0C
+ ldr r0, _0807BB08 @ =sub_807BB24
+ str r0, [r2]
+ movs r0, 0
+ strh r0, [r2, 0xA]
+ b _0807BB1C
+ .align 2, 0
+_0807BB04: .4byte gTasks
+_0807BB08: .4byte sub_807BB24
+_0807BB0C:
+ lsls r0, r3, 24
+ lsrs r0, 24
+ ldr r2, _0807BB20 @ =REG_BLDALPHA
+ movs r1, 0x10
+ subs r1, r0
+ lsls r1, 8
+ orrs r1, r0
+ strh r1, [r2]
+_0807BB1C:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807BB20: .4byte REG_BLDALPHA
+ thumb_func_end sub_807BAD4
+
+ thumb_func_start sub_807BB24
+sub_807BB24: @ 807BB24
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r2, r0, 0
+ ldr r1, _0807BB64 @ =gTasks
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r1, r0, r1
+ ldrh r0, [r1, 0xA]
+ adds r0, 0x1
+ movs r3, 0
+ strh r0, [r1, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x25
+ bne _0807BB6C
+ ldrh r0, [r1, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 4
+ adds r4, r0
+ lsls r4, 2
+ ldr r0, _0807BB68 @ =gSprites
+ adds r4, r0
+ adds r0, r4, 0
+ bl FreeSpriteOamMatrix
+ adds r0, r4, 0
+ bl DestroySprite
+ b _0807BB7E
+ .align 2, 0
+_0807BB64: .4byte gTasks
+_0807BB68: .4byte gSprites
+_0807BB6C:
+ cmp r0, 0x27
+ bne _0807BB7E
+ ldr r0, _0807BB84 @ =REG_BLDCNT
+ strh r3, [r0]
+ adds r0, 0x2
+ strh r3, [r0]
+ adds r0, r2, 0
+ bl move_anim_task_del
+_0807BB7E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807BB84: .4byte REG_BLDCNT
+ thumb_func_end sub_807BB24
+
+ thumb_func_start sub_807BB88
+sub_807BB88: @ 807BB88
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r3, 0
+ ldr r0, _0807BBA8 @ =0x02017840
+ ldrh r0, [r0]
+ subs r0, 0xF
+ cmp r0, 0x2B
+ bls _0807BB9C
+ b _0807BD20
+_0807BB9C:
+ lsls r0, 2
+ ldr r1, _0807BBAC @ =_0807BBB0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0807BBA8: .4byte 0x02017840
+_0807BBAC: .4byte _0807BBB0
+ .align 2, 0
+_0807BBB0:
+ .4byte _0807BC60
+ .4byte _0807BC66
+ .4byte _0807BC6C
+ .4byte _0807BC72
+ .4byte _0807BC78
+ .4byte _0807BC7E
+ .4byte _0807BC84
+ .4byte _0807BC8A
+ .4byte _0807BC90
+ .4byte _0807BC96
+ .4byte _0807BC9C
+ .4byte _0807BCA2
+ .4byte _0807BCA8
+ .4byte _0807BCAE
+ .4byte _0807BD20
+ .4byte _0807BD20
+ .4byte _0807BD20
+ .4byte _0807BD20
+ .4byte _0807BD20
+ .4byte _0807BD20
+ .4byte _0807BD20
+ .4byte _0807BD20
+ .4byte _0807BD20
+ .4byte _0807BD20
+ .4byte _0807BCB4
+ .4byte _0807BCB8
+ .4byte _0807BCBC
+ .4byte _0807BCC0
+ .4byte _0807BCC4
+ .4byte _0807BCC8
+ .4byte _0807BCCC
+ .4byte _0807BCD0
+ .4byte _0807BCD8
+ .4byte _0807BCE0
+ .4byte _0807BCE8
+ .4byte _0807BCF0
+ .4byte _0807BCF8
+ .4byte _0807BD00
+ .4byte _0807BD20
+ .4byte _0807BD20
+ .4byte _0807BD08
+ .4byte _0807BD0C
+ .4byte _0807BD10
+ .4byte _0807BD18
+_0807BC60:
+ movs r5, 0
+ movs r2, 0
+ b _0807BD28
+_0807BC66:
+ movs r5, 0
+ movs r2, 0x1
+ b _0807BD28
+_0807BC6C:
+ movs r5, 0
+ movs r2, 0x3
+ b _0807BD28
+_0807BC72:
+ movs r5, 0
+ movs r2, 0x5
+ b _0807BD28
+_0807BC78:
+ movs r5, 0
+ movs r2, 0x6
+ b _0807BD28
+_0807BC7E:
+ movs r5, 0
+ movs r2, 0x2
+ b _0807BD28
+_0807BC84:
+ movs r5, 0
+ movs r2, 0x4
+ b _0807BD28
+_0807BC8A:
+ movs r5, 0x1
+ movs r2, 0
+ b _0807BD28
+_0807BC90:
+ movs r5, 0x1
+ movs r2, 0x1
+ b _0807BD28
+_0807BC96:
+ movs r5, 0x1
+ movs r2, 0x3
+ b _0807BD28
+_0807BC9C:
+ movs r5, 0x1
+ movs r2, 0x5
+ b _0807BD28
+_0807BCA2:
+ movs r5, 0x1
+ movs r2, 0x6
+ b _0807BD28
+_0807BCA8:
+ movs r5, 0x1
+ movs r2, 0x2
+ b _0807BD28
+_0807BCAE:
+ movs r5, 0x1
+ movs r2, 0x4
+ b _0807BD28
+_0807BCB4:
+ movs r5, 0
+ b _0807BCD2
+_0807BCB8:
+ movs r5, 0
+ b _0807BCDA
+_0807BCBC:
+ movs r5, 0
+ b _0807BCE2
+_0807BCC0:
+ movs r5, 0
+ b _0807BCEA
+_0807BCC4:
+ movs r5, 0
+ b _0807BCF2
+_0807BCC8:
+ movs r5, 0
+ b _0807BCFA
+_0807BCCC:
+ movs r5, 0
+ b _0807BD02
+_0807BCD0:
+ movs r5, 0x1
+_0807BCD2:
+ movs r2, 0
+ movs r3, 0x1
+ b _0807BD28
+_0807BCD8:
+ movs r5, 0x1
+_0807BCDA:
+ movs r2, 0x1
+ movs r3, 0x1
+ b _0807BD28
+_0807BCE0:
+ movs r5, 0x1
+_0807BCE2:
+ movs r2, 0x3
+ movs r3, 0x1
+ b _0807BD28
+_0807BCE8:
+ movs r5, 0x1
+_0807BCEA:
+ movs r2, 0x5
+ movs r3, 0x1
+ b _0807BD28
+_0807BCF0:
+ movs r5, 0x1
+_0807BCF2:
+ movs r2, 0x6
+ movs r3, 0x1
+ b _0807BD28
+_0807BCF8:
+ movs r5, 0x1
+_0807BCFA:
+ movs r2, 0x2
+ movs r3, 0x1
+ b _0807BD28
+_0807BD00:
+ movs r5, 0x1
+_0807BD02:
+ movs r2, 0x4
+ movs r3, 0x1
+ b _0807BD28
+_0807BD08:
+ movs r5, 0
+ b _0807BD12
+_0807BD0C:
+ movs r5, 0
+ b _0807BD1A
+_0807BD10:
+ movs r5, 0x1
+_0807BD12:
+ movs r2, 0xFF
+ movs r3, 0
+ b _0807BD28
+_0807BD18:
+ movs r5, 0x1
+_0807BD1A:
+ movs r2, 0xFF
+ movs r3, 0x1
+ b _0807BD28
+_0807BD20:
+ adds r0, r4, 0
+ bl move_anim_task_del
+ b _0807BD4A
+_0807BD28:
+ ldr r0, _0807BD50 @ =gBattleAnimArgs
+ movs r1, 0
+ strh r5, [r0]
+ strh r2, [r0, 0x2]
+ strh r1, [r0, 0x4]
+ strh r1, [r0, 0x6]
+ strh r3, [r0, 0x8]
+ ldr r1, _0807BD54 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0807BD58 @ =sub_80E32E0
+ str r1, [r0]
+ adds r0, r4, 0
+ bl _call_via_r1
+_0807BD4A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807BD50: .4byte gBattleAnimArgs
+_0807BD54: .4byte gTasks
+_0807BD58: .4byte sub_80E32E0
+ thumb_func_end sub_807BB88
+
+ thumb_func_start move_anim_start_t2
+move_anim_start_t2: @ 807BD5C
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r0, _0807BD98 @ =gUnknown_0202F7C8
+ strb r4, [r0]
+ ldr r0, _0807BD9C @ =gUnknown_0202F7C9
+ strb r4, [r0]
+ ldr r0, _0807BDA0 @ =gBattleAnims_StatusConditions
+ movs r2, 0
+ bl move_something
+ ldr r0, _0807BDA4 @ =sub_807BDAC
+ movs r1, 0xA
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0807BDA8 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ strh r4, [r1, 0x8]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807BD98: .4byte gUnknown_0202F7C8
+_0807BD9C: .4byte gUnknown_0202F7C9
+_0807BDA0: .4byte gBattleAnims_StatusConditions
+_0807BDA4: .4byte sub_807BDAC
+_0807BDA8: .4byte gTasks
+ thumb_func_end move_anim_start_t2
+
+ thumb_func_start sub_807BDAC
+sub_807BDAC: @ 807BDAC
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0807BDF0 @ =gUnknown_0202F7AC
+ ldr r0, [r0]
+ bl _call_via_r0
+ ldr r0, _0807BDF4 @ =gUnknown_0202F7B1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0807BDEA
+ ldr r1, _0807BDF8 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r0, r1]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, _0807BDFC @ =0x02017810
+ adds r1, r0
+ ldrb r2, [r1]
+ movs r0, 0x11
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1]
+ adds r0, r4, 0
+ bl DestroyTask
+_0807BDEA:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807BDF0: .4byte gUnknown_0202F7AC
+_0807BDF4: .4byte gUnknown_0202F7B1
+_0807BDF8: .4byte gTasks
+_0807BDFC: .4byte 0x02017810
+ thumb_func_end sub_807BDAC
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/battle_anim_80A7E7C.s b/asm/battle_anim_80A7E7C.s
deleted file mode 100644
index 362acec8b..000000000
--- a/asm/battle_anim_80A7E7C.s
+++ /dev/null
@@ -1,2589 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_80A7E7C
-sub_80A7E7C: @ 80A7E7C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r4, _080A7E9C @ =gUnknown_03004B00
- ldrb r0, [r4]
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0xFF
- bne _080A7EA0
- adds r0, r5, 0
- bl move_anim_task_del
- b _080A7EDC
- .align 2, 0
-_080A7E9C: .4byte gUnknown_03004B00
-_080A7EA0:
- ldr r1, _080A7EE4 @ =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- ldrh r1, [r4, 0x2]
- strh r1, [r0, 0x24]
- ldrh r1, [r4, 0x4]
- strh r1, [r0, 0x26]
- ldr r1, _080A7EE8 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- strh r2, [r0, 0x8]
- ldrh r1, [r4, 0x6]
- strh r1, [r0, 0xA]
- ldrh r1, [r4, 0x8]
- strh r1, [r0, 0xC]
- ldrh r1, [r4, 0x8]
- strh r1, [r0, 0xE]
- ldrh r1, [r4, 0x2]
- strh r1, [r0, 0x10]
- ldrh r1, [r4, 0x4]
- strh r1, [r0, 0x12]
- ldr r1, _080A7EEC @ =sub_80A7EF0
- str r1, [r0]
- adds r0, r5, 0
- bl _call_via_r1
-_080A7EDC:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A7EE4: .4byte gSprites
-_080A7EE8: .4byte gTasks
-_080A7EEC: .4byte sub_80A7EF0
- thumb_func_end sub_80A7E7C
-
- thumb_func_start sub_80A7EF0
-sub_80A7EF0: @ 80A7EF0
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _080A7F2C @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r3, r0, r1
- ldrh r0, [r3, 0xE]
- movs r2, 0xE
- ldrsh r5, [r3, r2]
- adds r7, r1, 0
- cmp r5, 0
- bne _080A7F96
- ldr r2, _080A7F30 @ =gSprites
- movs r6, 0x8
- ldrsh r1, [r3, r6]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r0, r2
- movs r6, 0x24
- ldrsh r0, [r1, r6]
- adds r6, r2, 0
- cmp r0, 0
- bne _080A7F34
- ldrh r0, [r3, 0x10]
- strh r0, [r1, 0x24]
- b _080A7F36
- .align 2, 0
-_080A7F2C: .4byte gTasks
-_080A7F30: .4byte gSprites
-_080A7F34:
- strh r5, [r1, 0x24]
-_080A7F36:
- lsls r2, r4, 2
- adds r0, r2, r4
- lsls r0, 3
- adds r3, r0, r7
- movs r0, 0x8
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r0, r6
- movs r5, 0x26
- ldrsh r0, [r1, r5]
- cmp r0, 0
- bne _080A7F56
- ldrh r0, [r3, 0x12]
- b _080A7F58
-_080A7F56:
- movs r0, 0
-_080A7F58:
- strh r0, [r1, 0x26]
- adds r0, r2, r4
- lsls r0, 3
- adds r2, r0, r7
- ldrh r0, [r2, 0xC]
- strh r0, [r2, 0xE]
- ldrh r0, [r2, 0xA]
- subs r0, 0x1
- strh r0, [r2, 0xA]
- lsls r0, 16
- asrs r3, r0, 16
- cmp r3, 0
- bne _080A7F9A
- movs r0, 0x8
- ldrsh r1, [r2, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- strh r3, [r0, 0x24]
- movs r5, 0x8
- ldrsh r1, [r2, r5]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- strh r3, [r0, 0x26]
- adds r0, r4, 0
- bl move_anim_task_del
- b _080A7F9A
-_080A7F96:
- subs r0, 0x1
- strh r0, [r3, 0xE]
-_080A7F9A:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80A7EF0
-
- thumb_func_start sub_80A7FA0
-sub_80A7FA0: @ 80A7FA0
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r6, 0
- ldr r2, _080A7FC8 @ =gUnknown_03004B00
- ldrh r0, [r2]
- movs r3, 0
- ldrsh r1, [r2, r3]
- cmp r1, 0x3
- bgt _080A7FCC
- lsls r0, 24
- lsrs r0, 24
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0xFF
- bne _080A8022
- b _080A8026
- .align 2, 0
-_080A7FC8: .4byte gUnknown_03004B00
-_080A7FCC:
- cmp r1, 0x8
- beq _080A8018
- movs r1, 0
- ldrsh r0, [r2, r1]
- cmp r0, 0x5
- beq _080A7FEC
- cmp r0, 0x5
- bgt _080A7FE2
- cmp r0, 0x4
- beq _080A7FE8
- b _080A7FF4
-_080A7FE2:
- cmp r0, 0x6
- beq _080A7FF0
- b _080A7FF4
-_080A7FE8:
- movs r0, 0
- b _080A7FF6
-_080A7FEC:
- movs r0, 0x2
- b _080A7FF6
-_080A7FF0:
- movs r0, 0x1
- b _080A7FF6
-_080A7FF4:
- movs r0, 0x3
-_080A7FF6:
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl b_side_obj__get_some_boolean
- lsls r0, 24
- cmp r0, 0
- bne _080A800C
- movs r6, 0x1
-_080A800C:
- ldr r0, _080A8014 @ =gUnknown_02024BE0
- adds r0, r4, r0
- b _080A8020
- .align 2, 0
-_080A8014: .4byte gUnknown_02024BE0
-_080A8018:
- ldr r1, _080A8030 @ =gUnknown_02024BE0
- ldr r0, _080A8034 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- adds r0, r1
-_080A8020:
- ldrb r3, [r0]
-_080A8022:
- cmp r6, 0
- beq _080A8038
-_080A8026:
- adds r0, r5, 0
- bl move_anim_task_del
- b _080A8076
- .align 2, 0
-_080A8030: .4byte gUnknown_02024BE0
-_080A8034: .4byte gUnknown_0202F7C8
-_080A8038:
- ldr r1, _080A807C @ =gSprites
- lsls r0, r3, 4
- adds r0, r3
- lsls r0, 2
- adds r0, r1
- ldr r2, _080A8080 @ =gUnknown_03004B00
- ldrh r1, [r2, 0x2]
- strh r1, [r0, 0x24]
- ldrh r1, [r2, 0x4]
- strh r1, [r0, 0x26]
- ldr r1, _080A8084 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- strh r3, [r0, 0x8]
- ldrh r1, [r2, 0x6]
- strh r1, [r0, 0xA]
- ldrh r1, [r2, 0x8]
- strh r1, [r0, 0xC]
- ldrh r1, [r2, 0x8]
- strh r1, [r0, 0xE]
- ldrh r1, [r2, 0x2]
- strh r1, [r0, 0x10]
- ldrh r1, [r2, 0x4]
- strh r1, [r0, 0x12]
- ldr r1, _080A8088 @ =sub_80A808C
- str r1, [r0]
- adds r0, r5, 0
- bl _call_via_r1
-_080A8076:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A807C: .4byte gSprites
-_080A8080: .4byte gUnknown_03004B00
-_080A8084: .4byte gTasks
-_080A8088: .4byte sub_80A808C
- thumb_func_end sub_80A7FA0
-
- thumb_func_start sub_80A808C
-sub_80A808C: @ 80A808C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _080A80D0 @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r3, r0, r1
- ldrh r2, [r3, 0xE]
- movs r4, 0xE
- ldrsh r0, [r3, r4]
- mov r12, r1
- cmp r0, 0
- bne _080A8144
- ldr r2, _080A80D4 @ =gSprites
- movs r7, 0x8
- ldrsh r1, [r3, r7]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r4, r0, r2
- movs r0, 0x24
- ldrsh r1, [r4, r0]
- ldrh r5, [r3, 0x10]
- movs r7, 0x10
- ldrsh r0, [r3, r7]
- adds r7, r2, 0
- cmp r1, r0
- bne _080A80D8
- negs r0, r5
- strh r0, [r4, 0x24]
- b _080A80DA
- .align 2, 0
-_080A80D0: .4byte gTasks
-_080A80D4: .4byte gSprites
-_080A80D8:
- strh r5, [r4, 0x24]
-_080A80DA:
- lsls r3, r6, 2
- adds r1, r3, r6
- lsls r1, 3
- add r1, r12
- movs r0, 0x8
- ldrsh r2, [r1, r0]
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r4, r0, r7
- movs r0, 0x26
- ldrsh r2, [r4, r0]
- mov r8, r2
- ldrh r5, [r1, 0x12]
- movs r2, 0x12
- ldrsh r0, [r1, r2]
- cmp r8, r0
- bne _080A8104
- negs r0, r5
- strh r0, [r4, 0x26]
- b _080A8106
-_080A8104:
- strh r5, [r4, 0x26]
-_080A8106:
- adds r0, r3, r6
- lsls r0, 3
- mov r4, r12
- adds r3, r0, r4
- ldrh r0, [r3, 0xC]
- strh r0, [r3, 0xE]
- ldrh r0, [r3, 0xA]
- subs r0, 0x1
- strh r0, [r3, 0xA]
- lsls r0, 16
- asrs r2, r0, 16
- cmp r2, 0
- bne _080A8148
- movs r0, 0x8
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- strh r2, [r0, 0x24]
- movs r4, 0x8
- ldrsh r1, [r3, r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- strh r2, [r0, 0x26]
- adds r0, r6, 0
- bl move_anim_task_del
- b _080A8148
-_080A8144:
- subs r0, r2, 0x1
- strh r0, [r3, 0xE]
-_080A8148:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80A808C
-
- thumb_func_start sub_80A8154
-sub_80A8154: @ 80A8154
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r4, _080A8174 @ =gUnknown_03004B00
- ldrb r0, [r4]
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0xFF
- bne _080A8178
- adds r0, r5, 0
- bl move_anim_task_del
- b _080A81C6
- .align 2, 0
-_080A8174: .4byte gUnknown_03004B00
-_080A8178:
- ldr r0, _080A81CC @ =gSprites
- lsls r1, r3, 4
- adds r1, r3
- lsls r1, 2
- adds r1, r0
- ldrh r0, [r4, 0x2]
- ldrh r2, [r1, 0x24]
- adds r0, r2
- movs r2, 0
- strh r0, [r1, 0x24]
- ldrh r0, [r4, 0x4]
- ldrh r6, [r1, 0x26]
- adds r0, r6
- strh r0, [r1, 0x26]
- ldr r0, _080A81D0 @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- strh r3, [r1, 0x8]
- strh r2, [r1, 0xA]
- ldrh r0, [r4, 0x6]
- strh r0, [r1, 0xC]
- strh r2, [r1, 0xE]
- ldrh r0, [r4, 0x8]
- strh r0, [r1, 0x10]
- movs r2, 0x2
- ldrsh r0, [r4, r2]
- lsls r0, 1
- strh r0, [r1, 0x12]
- movs r6, 0x4
- ldrsh r0, [r4, r6]
- lsls r0, 1
- strh r0, [r1, 0x14]
- ldr r2, _080A81D4 @ =sub_80A81D8
- str r2, [r1]
- adds r0, r5, 0
- bl _call_via_r2
-_080A81C6:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A81CC: .4byte gSprites
-_080A81D0: .4byte gTasks
-_080A81D4: .4byte sub_80A81D8
- thumb_func_end sub_80A8154
-
- thumb_func_start sub_80A81D8
-sub_80A81D8: @ 80A81D8
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _080A8230 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- ldrh r2, [r4, 0xE]
- movs r3, 0xE
- ldrsh r0, [r4, r3]
- adds r6, r1, 0
- cmp r0, 0
- beq _080A81F6
- b _080A8308
-_080A81F6:
- ldrh r1, [r4, 0xA]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080A8238
- ldr r2, _080A8234 @ =gSprites
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r4, 0x12]
- ldrh r3, [r0, 0x24]
- adds r1, r3
- strh r1, [r0, 0x24]
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r4, 0x14]
- ldrh r3, [r0, 0x26]
- adds r1, r3
- strh r1, [r0, 0x26]
- adds r3, r2, 0
- b _080A8262
- .align 2, 0
-_080A8230: .4byte gTasks
-_080A8234: .4byte gSprites
-_080A8238:
- ldr r3, _080A82C4 @ =gSprites
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r1, [r0, 0x24]
- ldrh r2, [r4, 0x12]
- subs r1, r2
- strh r1, [r0, 0x24]
- movs r2, 0x8
- ldrsh r1, [r4, r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r1, [r0, 0x26]
- ldrh r2, [r4, 0x14]
- subs r1, r2
- strh r1, [r0, 0x26]
-_080A8262:
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r6
- ldrh r0, [r4, 0x10]
- strh r0, [r4, 0xE]
- ldrh r0, [r4, 0xA]
- adds r2, r0, 0x1
- strh r2, [r4, 0xA]
- lsls r0, r2, 16
- asrs r0, 16
- movs r6, 0xC
- ldrsh r1, [r4, r6]
- cmp r0, r1
- blt _080A830C
- movs r0, 0x1
- ands r2, r0
- cmp r2, 0
- beq _080A82C8
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- movs r2, 0x12
- ldrsh r0, [r4, r2]
- lsrs r2, r0, 31
- adds r0, r2
- asrs r0, 1
- ldrh r6, [r1, 0x24]
- adds r0, r6
- strh r0, [r1, 0x24]
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- movs r2, 0x14
- ldrsh r0, [r4, r2]
- lsrs r2, r0, 31
- adds r0, r2
- asrs r0, 1
- ldrh r3, [r1, 0x26]
- adds r0, r3
- strh r0, [r1, 0x26]
- b _080A8300
- .align 2, 0
-_080A82C4: .4byte gSprites
-_080A82C8:
- movs r6, 0x8
- ldrsh r0, [r4, r6]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r3
- movs r0, 0x12
- ldrsh r1, [r4, r0]
- lsrs r0, r1, 31
- adds r1, r0
- asrs r1, 1
- ldrh r0, [r2, 0x24]
- subs r0, r1
- strh r0, [r2, 0x24]
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r3
- movs r3, 0x14
- ldrsh r1, [r4, r3]
- lsrs r0, r1, 31
- adds r1, r0
- asrs r1, 1
- ldrh r0, [r2, 0x26]
- subs r0, r1
- strh r0, [r2, 0x26]
-_080A8300:
- adds r0, r5, 0
- bl move_anim_task_del
- b _080A830C
-_080A8308:
- subs r0, r2, 0x1
- strh r0, [r4, 0xE]
-_080A830C:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80A81D8
-
- thumb_func_start sub_80A8314
-sub_80A8314: @ 80A8314
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r5, _080A8364 @ =gUnknown_03004B00
- ldrb r0, [r5]
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080A8368 @ =gSprites
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrh r2, [r5, 0x2]
- strh r2, [r1, 0x24]
- ldr r2, _080A836C @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r2
- strh r0, [r1, 0x8]
- ldrh r0, [r5, 0x2]
- strh r0, [r1, 0xA]
- ldrh r0, [r5, 0x4]
- strh r0, [r1, 0xC]
- ldrh r0, [r5, 0x6]
- strh r0, [r1, 0xE]
- ldrh r0, [r5, 0x8]
- strh r0, [r1, 0x10]
- ldr r2, _080A8370 @ =sub_80A8374
- str r2, [r1]
- adds r0, r4, 0
- bl _call_via_r2
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A8364: .4byte gUnknown_03004B00
-_080A8368: .4byte gSprites
-_080A836C: .4byte gTasks
-_080A8370: .4byte sub_80A8374
- thumb_func_end sub_80A8314
-
- thumb_func_start sub_80A8374
-sub_80A8374: @ 80A8374
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r2, _080A8400 @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r3, r0, r2
- ldrb r5, [r3, 0x8]
- ldrh r4, [r3, 0xA]
- ldrh r1, [r3, 0x18]
- adds r0, r1, 0x1
- strh r0, [r3, 0x18]
- movs r7, 0xC
- ldrsh r0, [r3, r7]
- lsls r1, 16
- asrs r1, 16
- mov r12, r2
- ldr r7, _080A8404 @ =gSprites
- cmp r0, r1
- bne _080A83C6
- movs r0, 0
- strh r0, [r3, 0x18]
- lsls r0, r5, 4
- adds r0, r5
- lsls r0, 2
- adds r1, r0, r7
- ldrh r3, [r1, 0x24]
- movs r0, 0x24
- ldrsh r2, [r1, r0]
- lsls r0, r4, 16
- asrs r0, 16
- cmp r2, r0
- bne _080A83BE
- negs r0, r2
- lsls r0, 16
- lsrs r4, r0, 16
-_080A83BE:
- lsls r0, r4, 16
- asrs r0, 16
- adds r0, r3
- strh r0, [r1, 0x24]
-_080A83C6:
- lsls r2, r6, 2
- adds r2, r6
- lsls r2, 3
- add r2, r12
- strh r4, [r2, 0xA]
- ldrh r1, [r2, 0xE]
- ldrh r0, [r2, 0x1A]
- adds r1, r0
- strh r1, [r2, 0x1A]
- lsls r0, r5, 4
- adds r0, r5
- lsls r0, 2
- adds r0, r7
- lsls r1, 16
- asrs r1, 24
- strh r1, [r0, 0x26]
- ldrh r0, [r2, 0x10]
- subs r0, 0x1
- strh r0, [r2, 0x10]
- lsls r0, 16
- cmp r0, 0
- bne _080A83F8
- adds r0, r6, 0
- bl move_anim_task_del
-_080A83F8:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A8400: .4byte gTasks
-_080A8404: .4byte gSprites
- thumb_func_end sub_80A8374
-
- thumb_func_start sub_80A8408
-sub_80A8408: @ 80A8408
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r6, 0x1
- ldr r4, _080A847C @ =gUnknown_03004B00
- ldrb r0, [r4]
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r7, r0, 24
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x5
- ble _080A842C
- movs r0, 0x5
- strh r0, [r4, 0x8]
-_080A842C:
- movs r1, 0
- movs r2, 0x8
- ldrsh r0, [r4, r2]
- adds r3, r4, 0
- ldr r2, _080A8480 @ =gTasks
- mov r12, r2
- lsls r4, r5, 2
- ldr r2, _080A8484 @ =sub_80A8488
- mov r8, r2
- cmp r1, r0
- bge _080A8452
- adds r2, r0, 0
-_080A8444:
- lsls r0, r6, 25
- lsrs r6, r0, 24
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, r2
- blt _080A8444
-_080A8452:
- adds r0, r4, r5
- lsls r0, 3
- add r0, r12
- strh r7, [r0, 0x8]
- ldrh r1, [r3, 0x2]
- strh r1, [r0, 0xA]
- ldrh r1, [r3, 0x4]
- strh r1, [r0, 0xC]
- ldrh r1, [r3, 0x6]
- strh r1, [r0, 0xE]
- strh r6, [r0, 0x10]
- mov r1, r8
- str r1, [r0]
- adds r0, r5, 0
- bl _call_via_r8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A847C: .4byte gUnknown_03004B00
-_080A8480: .4byte gTasks
-_080A8484: .4byte sub_80A8488
- thumb_func_end sub_80A8408
-
- thumb_func_start sub_80A8488
-sub_80A8488: @ 80A8488
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r6, r0, 0
- ldr r1, _080A84F8 @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r5, r0, r1
- ldrb r4, [r5, 0x8]
- movs r1, 0x12
- ldrsh r0, [r5, r1]
- movs r2, 0xA
- ldrsh r1, [r5, r2]
- bl Sin
- ldr r2, _080A84FC @ =gSprites
- lsls r1, r4, 4
- adds r1, r4
- lsls r1, 2
- adds r4, r1, r2
- strh r0, [r4, 0x24]
- movs r1, 0x12
- ldrsh r0, [r5, r1]
- movs r2, 0xC
- ldrsh r1, [r5, r2]
- bl Cos
- negs r0, r0
- strh r0, [r4, 0x26]
- ldrh r1, [r5, 0xC]
- adds r0, r1
- strh r0, [r4, 0x26]
- ldrh r0, [r5, 0x10]
- ldrh r1, [r5, 0x12]
- adds r0, r1
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r5, 0x12]
- cmp r0, 0
- bne _080A84E0
- ldrh r0, [r5, 0xE]
- subs r0, 0x1
- strh r0, [r5, 0xE]
-_080A84E0:
- movs r2, 0xE
- ldrsh r0, [r5, r2]
- cmp r0, 0
- bne _080A84F2
- strh r0, [r4, 0x24]
- strh r0, [r4, 0x26]
- adds r0, r6, 0
- bl move_anim_task_del
-_080A84F2:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A84F8: .4byte gTasks
-_080A84FC: .4byte gSprites
- thumb_func_end sub_80A8488
-
- thumb_func_start sub_80A8500
-sub_80A8500: @ 80A8500
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080A8528 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080A851C
- ldr r1, _080A852C @ =gUnknown_03004B00
- ldrh r0, [r1, 0x2]
- negs r0, r0
- strh r0, [r1, 0x2]
-_080A851C:
- adds r0, r4, 0
- bl sub_80A8408
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A8528: .4byte gUnknown_0202F7C8
-_080A852C: .4byte gUnknown_03004B00
- thumb_func_end sub_80A8500
-
- thumb_func_start sub_80A8530
-sub_80A8530: @ 80A8530
- push {r4,lr}
- adds r4, r0, 0
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _080A8558 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080A8560
- ldr r1, _080A855C @ =gUnknown_03004B00
- ldrh r0, [r1, 0x2]
- negs r0, r0
- b _080A8564
- .align 2, 0
-_080A8558: .4byte gUnknown_0202F7C8
-_080A855C: .4byte gUnknown_03004B00
-_080A8560:
- ldr r1, _080A8590 @ =gUnknown_03004B00
- ldrh r0, [r1, 0x2]
-_080A8564:
- strh r0, [r4, 0x30]
- ldrh r2, [r1]
- movs r0, 0
- strh r2, [r4, 0x2E]
- strh r0, [r4, 0x32]
- ldr r1, _080A8594 @ =gUnknown_02024BE0
- ldr r0, _080A8598 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- strh r0, [r4, 0x34]
- strh r2, [r4, 0x36]
- ldr r1, _080A859C @ =sub_80A85A4
- adds r0, r4, 0
- bl oamt_set_x3A_32
- ldr r0, _080A85A0 @ =sub_8078458
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A8590: .4byte gUnknown_03004B00
-_080A8594: .4byte gUnknown_02024BE0
-_080A8598: .4byte gUnknown_0202F7C8
-_080A859C: .4byte sub_80A85A4
-_080A85A0: .4byte sub_8078458
- thumb_func_end sub_80A8530
-
- thumb_func_start sub_80A85A4
-sub_80A85A4: @ 80A85A4
- push {lr}
- ldrh r1, [r0, 0x36]
- strh r1, [r0, 0x2E]
- ldrh r1, [r0, 0x30]
- negs r1, r1
- strh r1, [r0, 0x30]
- ldr r1, _080A85C0 @ =sub_8078458
- str r1, [r0, 0x1C]
- ldr r1, _080A85C4 @ =move_anim_8072740
- bl oamt_set_x3A_32
- pop {r0}
- bx r0
- .align 2, 0
-_080A85C0: .4byte sub_8078458
-_080A85C4: .4byte move_anim_8072740
- thumb_func_end sub_80A85A4
-
- thumb_func_start sub_80A85C8
-sub_80A85C8: @ 80A85C8
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r5, _080A8608 @ =gUnknown_03004B00
- ldrb r0, [r5, 0x4]
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r0, 24
- ldrh r2, [r5]
- movs r1, 0
- strh r2, [r4, 0x2E]
- strh r1, [r4, 0x30]
- ldrh r1, [r5, 0x2]
- strh r1, [r4, 0x32]
- strh r0, [r4, 0x34]
- strh r2, [r4, 0x36]
- ldr r1, _080A860C @ =sub_80A8614
- adds r0, r4, 0
- bl oamt_set_x3A_32
- ldr r0, _080A8610 @ =sub_8078458
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A8608: .4byte gUnknown_03004B00
-_080A860C: .4byte sub_80A8614
-_080A8610: .4byte sub_8078458
- thumb_func_end sub_80A85C8
-
- thumb_func_start sub_80A8614
-sub_80A8614: @ 80A8614
- push {lr}
- ldrh r1, [r0, 0x36]
- strh r1, [r0, 0x2E]
- ldrh r1, [r0, 0x32]
- negs r1, r1
- strh r1, [r0, 0x32]
- ldr r1, _080A8630 @ =sub_8078458
- str r1, [r0, 0x1C]
- ldr r1, _080A8634 @ =move_anim_8072740
- bl oamt_set_x3A_32
- pop {r0}
- bx r0
- .align 2, 0
-_080A8630: .4byte sub_8078458
-_080A8634: .4byte move_anim_8072740
- thumb_func_end sub_80A8614
-
- thumb_func_start sub_80A8638
-sub_80A8638: @ 80A8638
- push {r4-r7,lr}
- sub sp, 0x4
- adds r6, r0, 0
- ldr r0, _080A8650 @ =gUnknown_03004B00
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080A865C
- ldr r1, _080A8654 @ =gUnknown_02024BE0
- ldr r0, _080A8658 @ =gUnknown_0202F7C8
- b _080A8660
- .align 2, 0
-_080A8650: .4byte gUnknown_03004B00
-_080A8654: .4byte gUnknown_02024BE0
-_080A8658: .4byte gUnknown_0202F7C8
-_080A865C:
- ldr r1, _080A86C0 @ =gUnknown_02024BE0
- ldr r0, _080A86C4 @ =gUnknown_0202F7C9
-_080A8660:
- ldrb r0, [r0]
- adds r0, r1
- ldrb r7, [r0]
- ldr r5, _080A86C8 @ =gUnknown_03004B00
- ldrh r0, [r5, 0x4]
- movs r3, 0
- strh r0, [r6, 0x2E]
- ldr r0, _080A86CC @ =gSprites
- lsls r4, r7, 4
- adds r4, r7
- lsls r4, 2
- adds r4, r0
- ldrh r0, [r4, 0x24]
- ldrh r1, [r4, 0x20]
- adds r0, r1
- strh r0, [r6, 0x30]
- ldrh r0, [r4, 0x20]
- strh r0, [r6, 0x32]
- ldrh r0, [r4, 0x26]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r6, 0x34]
- ldrh r0, [r4, 0x22]
- strh r0, [r6, 0x36]
- adds r0, r6, 0
- str r3, [sp]
- bl sub_8078A5C
- ldr r3, [sp]
- strh r3, [r6, 0x34]
- strh r3, [r6, 0x36]
- ldrh r0, [r4, 0x24]
- strh r0, [r6, 0x38]
- ldrh r0, [r4, 0x26]
- strh r0, [r6, 0x3A]
- adds r2, r6, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- movs r1, 0x2
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- bne _080A86D0
- strh r3, [r6, 0x32]
- b _080A86D6
- .align 2, 0
-_080A86C0: .4byte gUnknown_02024BE0
-_080A86C4: .4byte gUnknown_0202F7C9
-_080A86C8: .4byte gUnknown_03004B00
-_080A86CC: .4byte gSprites
-_080A86D0:
- cmp r0, 0x2
- bne _080A86D6
- strh r3, [r6, 0x30]
-_080A86D6:
- ldr r0, _080A86EC @ =gUnknown_03004B00
- ldrh r1, [r0, 0x2]
- lsls r0, r7, 8
- orrs r0, r1
- strh r0, [r6, 0x3C]
- ldr r0, _080A86F0 @ =sub_80A86F4
- str r0, [r6, 0x1C]
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A86EC: .4byte gUnknown_03004B00
-_080A86F0: .4byte sub_80A86F4
- thumb_func_end sub_80A8638
-
- thumb_func_start sub_80A86F4
-sub_80A86F4: @ 80A86F4
- push {r4-r6,lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x3C]
- lsls r1, r0, 24
- lsrs r4, r1, 24
- adds r5, r4, 0
- lsls r0, 16
- asrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- ldr r0, _080A8730 @ =gSprites
- adds r3, r1, r0
- ldrh r0, [r2, 0x2E]
- movs r6, 0x2E
- ldrsh r1, [r2, r6]
- cmp r1, 0
- bne _080A8734
- cmp r4, 0x1
- bhi _080A871E
- strh r1, [r3, 0x24]
-_080A871E:
- cmp r5, 0x2
- beq _080A8726
- cmp r5, 0
- bne _080A8728
-_080A8726:
- strh r1, [r3, 0x26]
-_080A8728:
- adds r0, r2, 0
- bl move_anim_8072740
- b _080A875E
- .align 2, 0
-_080A8730: .4byte gSprites
-_080A8734:
- subs r0, 0x1
- strh r0, [r2, 0x2E]
- ldrh r1, [r2, 0x30]
- ldrh r0, [r2, 0x34]
- adds r1, r0
- strh r1, [r2, 0x34]
- ldrh r0, [r2, 0x32]
- ldrh r4, [r2, 0x36]
- adds r0, r4
- strh r0, [r2, 0x36]
- lsls r1, 16
- asrs r1, 24
- ldrh r6, [r2, 0x38]
- adds r1, r6
- strh r1, [r3, 0x24]
- ldrh r0, [r2, 0x36]
- lsls r0, 16
- asrs r0, 24
- ldrh r2, [r2, 0x3A]
- adds r0, r2
- strh r0, [r3, 0x26]
-_080A875E:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80A86F4
-
- thumb_func_start sub_80A8764
-sub_80A8764: @ 80A8764
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r0, _080A8778 @ =gUnknown_03004B00
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080A8780
- ldr r0, _080A877C @ =gUnknown_0202F7C8
- b _080A8782
- .align 2, 0
-_080A8778: .4byte gUnknown_03004B00
-_080A877C: .4byte gUnknown_0202F7C8
-_080A8780:
- ldr r0, _080A8800 @ =gUnknown_0202F7C9
-_080A8782:
- ldrb r2, [r0]
- ldr r0, _080A8804 @ =gUnknown_02024BE0
- adds r0, r2, r0
- ldrb r6, [r0]
- adds r0, r2, 0
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080A87AC
- ldr r1, _080A8808 @ =gUnknown_03004B00
- ldrh r0, [r1, 0x2]
- negs r0, r0
- strh r0, [r1, 0x2]
- movs r2, 0x6
- ldrsh r0, [r1, r2]
- cmp r0, 0x1
- bne _080A87AC
- ldrh r0, [r1, 0x4]
- negs r0, r0
- strh r0, [r1, 0x4]
-_080A87AC:
- ldr r2, _080A8808 @ =gUnknown_03004B00
- ldrh r0, [r2, 0x8]
- movs r4, 0
- strh r0, [r5, 0x2E]
- ldr r0, _080A880C @ =gSprites
- lsls r1, r6, 4
- adds r1, r6
- lsls r1, 2
- adds r1, r0
- ldrh r0, [r1, 0x20]
- strh r0, [r5, 0x30]
- ldrh r0, [r2, 0x2]
- ldrh r3, [r1, 0x20]
- adds r0, r3
- strh r0, [r5, 0x32]
- ldrh r0, [r1, 0x22]
- strh r0, [r5, 0x34]
- ldrh r0, [r2, 0x4]
- ldrh r1, [r1, 0x22]
- adds r0, r1
- strh r0, [r5, 0x36]
- adds r0, r5, 0
- bl sub_8078A5C
- strh r4, [r5, 0x34]
- strh r4, [r5, 0x36]
- strh r6, [r5, 0x38]
- adds r2, r5, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _080A8810 @ =move_anim_8072740
- adds r0, r5, 0
- bl oamt_set_x3A_32
- ldr r0, _080A8814 @ =sub_80784A8
- str r0, [r5, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A8800: .4byte gUnknown_0202F7C9
-_080A8804: .4byte gUnknown_02024BE0
-_080A8808: .4byte gUnknown_03004B00
-_080A880C: .4byte gSprites
-_080A8810: .4byte move_anim_8072740
-_080A8814: .4byte sub_80784A8
- thumb_func_end sub_80A8764
-
- thumb_func_start sub_80A8818
-sub_80A8818: @ 80A8818
- push {r4-r7,lr}
- adds r6, r0, 0
- adds r2, r6, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _080A8838 @ =gUnknown_03004B00
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080A8840
- ldr r0, _080A883C @ =gUnknown_0202F7C8
- b _080A8842
- .align 2, 0
-_080A8838: .4byte gUnknown_03004B00
-_080A883C: .4byte gUnknown_0202F7C8
-_080A8840:
- ldr r0, _080A88C0 @ =gUnknown_0202F7C9
-_080A8842:
- ldrb r1, [r0]
- ldr r0, _080A88C4 @ =gUnknown_02024BE0
- adds r0, r1, r0
- ldrb r7, [r0]
- adds r0, r1, 0
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080A886C
- ldr r1, _080A88C8 @ =gUnknown_03004B00
- ldrh r0, [r1, 0x2]
- negs r0, r0
- strh r0, [r1, 0x2]
- movs r2, 0x6
- ldrsh r0, [r1, r2]
- cmp r0, 0x1
- bne _080A886C
- ldrh r0, [r1, 0x4]
- negs r0, r0
- strh r0, [r1, 0x4]
-_080A886C:
- ldr r5, _080A88C8 @ =gUnknown_03004B00
- ldrh r0, [r5, 0x8]
- strh r0, [r6, 0x2E]
- ldr r0, _080A88CC @ =gSprites
- lsls r4, r7, 4
- adds r4, r7
- lsls r4, 2
- adds r4, r0
- ldrh r0, [r4, 0x24]
- ldrh r1, [r4, 0x20]
- adds r0, r1
- strh r0, [r6, 0x30]
- ldrh r1, [r5, 0x2]
- adds r0, r1
- strh r0, [r6, 0x32]
- ldrh r0, [r4, 0x26]
- ldrh r2, [r4, 0x22]
- adds r0, r2
- strh r0, [r6, 0x34]
- ldrh r1, [r5, 0x4]
- adds r0, r1
- strh r0, [r6, 0x36]
- adds r0, r6, 0
- bl sub_8078A5C
- ldrh r0, [r4, 0x24]
- lsls r0, 8
- strh r0, [r6, 0x34]
- ldrh r0, [r4, 0x26]
- lsls r0, 8
- strh r0, [r6, 0x36]
- strh r7, [r6, 0x38]
- ldrh r0, [r5, 0xA]
- strh r0, [r6, 0x3A]
- lsls r0, 16
- cmp r0, 0
- bne _080A88D4
- ldr r1, _080A88D0 @ =move_anim_8072740
- adds r0, r6, 0
- bl oamt_set_x3A_32
- b _080A88DC
- .align 2, 0
-_080A88C0: .4byte gUnknown_0202F7C9
-_080A88C4: .4byte gUnknown_02024BE0
-_080A88C8: .4byte gUnknown_03004B00
-_080A88CC: .4byte gSprites
-_080A88D0: .4byte move_anim_8072740
-_080A88D4:
- ldr r1, _080A88E8 @ =sub_80A88F0
- adds r0, r6, 0
- bl oamt_set_x3A_32
-_080A88DC:
- ldr r0, _080A88EC @ =sub_80784A8
- str r0, [r6, 0x1C]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A88E8: .4byte sub_80A88F0
-_080A88EC: .4byte sub_80784A8
- thumb_func_end sub_80A8818
-
- thumb_func_start sub_80A88F0
-sub_80A88F0: @ 80A88F0
- push {r4,lr}
- ldr r4, _080A891C @ =gSprites
- movs r1, 0x38
- ldrsh r2, [r0, r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- movs r3, 0
- strh r3, [r1, 0x24]
- movs r1, 0x38
- ldrsh r2, [r0, r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- strh r3, [r1, 0x26]
- bl move_anim_8072740
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A891C: .4byte gSprites
- thumb_func_end sub_80A88F0
-
- thumb_func_start sub_80A8920
-sub_80A8920: @ 80A8920
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r5, _080A89A4 @ =gUnknown_03004B00
- movs r0, 0x6
- ldrsh r1, [r5, r0]
- movs r0, 0x80
- lsls r0, 8
- bl __divsi3
- lsls r0, 16
- lsrs r7, r0, 16
- ldr r0, _080A89A8 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080A8952
- ldrh r0, [r5, 0x2]
- negs r0, r0
- strh r0, [r5, 0x2]
- ldrh r0, [r5, 0xA]
- negs r0, r0
- strh r0, [r5, 0xA]
-_080A8952:
- ldrb r0, [r5]
- bl obj_id_for_side_relative_to_move
- ldr r1, _080A89AC @ =gTasks
- lsls r4, r6, 2
- adds r4, r6
- lsls r4, 3
- adds r4, r1
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x8]
- movs r1, 0x2
- ldrsh r0, [r5, r1]
- lsls r0, 8
- movs r2, 0x6
- ldrsh r1, [r5, r2]
- bl __divsi3
- strh r0, [r4, 0xA]
- ldrh r0, [r5, 0x4]
- strh r0, [r4, 0xC]
- ldrh r0, [r5, 0x6]
- strh r0, [r4, 0xE]
- ldrh r0, [r5, 0x8]
- strh r0, [r4, 0x10]
- movs r1, 0xA
- ldrsh r0, [r5, r1]
- lsls r0, 8
- movs r2, 0xC
- ldrsh r1, [r5, r2]
- bl __divsi3
- strh r0, [r4, 0x12]
- ldrh r0, [r5, 0xC]
- strh r0, [r4, 0x14]
- strh r7, [r4, 0x16]
- ldr r0, _080A89B0 @ =sub_80A89B4
- str r0, [r4]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A89A4: .4byte gUnknown_03004B00
-_080A89A8: .4byte gUnknown_0202F7C8
-_080A89AC: .4byte gTasks
-_080A89B0: .4byte sub_80A89B4
- thumb_func_end sub_80A8920
-
- thumb_func_start sub_80A89B4
-sub_80A89B4: @ 80A89B4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080A8A0C @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r5, r1, r2
- ldrb r1, [r5, 0x8]
- ldrh r0, [r5, 0xA]
- ldrh r2, [r5, 0x1E]
- adds r0, r2
- strh r0, [r5, 0x1E]
- ldr r2, _080A8A10 @ =gSprites
- lsls r4, r1, 4
- adds r4, r1
- lsls r4, 2
- adds r4, r2
- lsls r0, 16
- asrs r0, 24
- strh r0, [r4, 0x24]
- ldrh r0, [r5, 0x1C]
- lsrs r0, 8
- movs r2, 0xC
- ldrsh r1, [r5, r2]
- bl Sin
- strh r0, [r4, 0x26]
- ldrh r0, [r5, 0x16]
- ldrh r1, [r5, 0x1C]
- adds r0, r1
- strh r0, [r5, 0x1C]
- ldrh r0, [r5, 0xE]
- subs r0, 0x1
- strh r0, [r5, 0xE]
- lsls r0, 16
- cmp r0, 0
- bne _080A8A04
- ldr r0, _080A8A14 @ =sub_80A8A18
- str r0, [r5]
-_080A8A04:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A8A0C: .4byte gTasks
-_080A8A10: .4byte gSprites
-_080A8A14: .4byte sub_80A8A18
- thumb_func_end sub_80A89B4
-
- thumb_func_start sub_80A8A18
-sub_80A8A18: @ 80A8A18
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0, 0
- ldr r1, _080A8A3C @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- ldrh r1, [r4, 0x10]
- movs r2, 0x10
- ldrsh r0, [r4, r2]
- cmp r0, 0
- ble _080A8A40
- subs r0, r1, 0x1
- strh r0, [r4, 0x10]
- b _080A8A74
- .align 2, 0
-_080A8A3C: .4byte gTasks
-_080A8A40:
- ldrb r0, [r4, 0x8]
- ldrh r2, [r4, 0x12]
- ldrh r1, [r4, 0x20]
- adds r2, r1
- strh r2, [r4, 0x20]
- ldr r3, _080A8A7C @ =gSprites
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- lsls r2, 16
- asrs r2, 24
- ldrh r0, [r4, 0x1E]
- lsls r0, 16
- asrs r0, 24
- adds r2, r0
- strh r2, [r1, 0x24]
- ldrh r0, [r4, 0x14]
- subs r0, 0x1
- strh r0, [r4, 0x14]
- lsls r0, 16
- cmp r0, 0
- bne _080A8A74
- adds r0, r5, 0
- bl move_anim_task_del
-_080A8A74:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A8A7C: .4byte gSprites
- thumb_func_end sub_80A8A18
-
- thumb_func_start sub_80A8A80
-sub_80A8A80: @ 80A8A80
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _080A8AA4 @ =gUnknown_03004B00
- movs r2, 0
- ldrsh r0, [r1, r2]
- cmp r0, 0x2
- beq _080A8AAE
- cmp r0, 0x2
- bgt _080A8AA8
- cmp r0, 0
- blt _080A8AE0
- ldrb r0, [r1]
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r2, r0, 24
- b _080A8AE8
- .align 2, 0
-_080A8AA4: .4byte gUnknown_03004B00
-_080A8AA8:
- cmp r0, 0x3
- beq _080A8AB8
- b _080A8AE0
-_080A8AAE:
- ldr r5, _080A8AB4 @ =gUnknown_0202F7C8
- b _080A8ABA
- .align 2, 0
-_080A8AB4: .4byte gUnknown_0202F7C8
-_080A8AB8:
- ldr r5, _080A8AD8 @ =gUnknown_0202F7C9
-_080A8ABA:
- ldrb r0, [r5]
- movs r4, 0x2
- eors r0, r4
- bl b_side_obj__get_some_boolean
- lsls r0, 24
- cmp r0, 0
- beq _080A8AE0
- ldr r1, _080A8ADC @ =gUnknown_02024BE0
- ldrb r0, [r5]
- eors r0, r4
- adds r0, r1
- ldrb r2, [r0]
- b _080A8AE8
- .align 2, 0
-_080A8AD8: .4byte gUnknown_0202F7C9
-_080A8ADC: .4byte gUnknown_02024BE0
-_080A8AE0:
- adds r0, r6, 0
- bl move_anim_task_del
- b _080A8B28
-_080A8AE8:
- ldr r1, _080A8B08 @ =gTasks
- lsls r4, r6, 2
- adds r0, r4, r6
- lsls r0, 3
- adds r5, r0, r1
- strh r2, [r5, 0x8]
- ldr r0, _080A8B0C @ =gUnknown_0202F7C9
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080A8B14
- ldr r0, _080A8B10 @ =gUnknown_03004B00
- ldrh r0, [r0, 0x2]
- b _080A8B1A
- .align 2, 0
-_080A8B08: .4byte gTasks
-_080A8B0C: .4byte gUnknown_0202F7C9
-_080A8B10: .4byte gUnknown_03004B00
-_080A8B14:
- ldr r0, _080A8B30 @ =gUnknown_03004B00
- ldrh r0, [r0, 0x2]
- negs r0, r0
-_080A8B1A:
- strh r0, [r5, 0xA]
- ldr r0, _080A8B34 @ =gTasks
- adds r1, r4, r6
- lsls r1, 3
- adds r1, r0
- ldr r0, _080A8B38 @ =sub_80A8B3C
- str r0, [r1]
-_080A8B28:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A8B30: .4byte gUnknown_03004B00
-_080A8B34: .4byte gTasks
-_080A8B38: .4byte sub_80A8B3C
- thumb_func_end sub_80A8A80
-
- thumb_func_start sub_80A8B3C
-sub_80A8B3C: @ 80A8B3C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080A8B80 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldrb r2, [r1, 0x8]
- ldr r3, _080A8B84 @ =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r3
- ldrh r1, [r1, 0xA]
- ldrh r2, [r0, 0x24]
- adds r1, r2
- strh r1, [r0, 0x24]
- movs r2, 0x24
- ldrsh r1, [r0, r2]
- movs r2, 0x20
- ldrsh r0, [r0, r2]
- adds r1, r0
- adds r1, 0x20
- movs r0, 0x98
- lsls r0, 1
- cmp r1, r0
- bls _080A8B7A
- adds r0, r4, 0
- bl move_anim_task_del
-_080A8B7A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A8B80: .4byte gTasks
-_080A8B84: .4byte gSprites
- thumb_func_end sub_80A8B3C
-
- thumb_func_start sub_80A8B88
-sub_80A8B88: @ 80A8B88
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r6, _080A8BD8 @ =gUnknown_0202F7C8
- ldrb r0, [r6]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080A8BA4
- ldr r1, _080A8BDC @ =gUnknown_03004B00
- ldrh r0, [r1, 0x2]
- negs r0, r0
- strh r0, [r1, 0x2]
-_080A8BA4:
- ldr r4, _080A8BDC @ =gUnknown_03004B00
- ldrb r0, [r4, 0x8]
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080A8BE0 @ =gTasks
- lsls r3, r5, 2
- adds r1, r3, r5
- lsls r1, 3
- adds r2, r1, r2
- ldrh r1, [r4]
- strh r1, [r2, 0x8]
- ldrh r1, [r4, 0x2]
- strh r1, [r2, 0xA]
- ldrh r1, [r4, 0x4]
- strh r1, [r2, 0xC]
- ldrh r1, [r4, 0x6]
- strh r1, [r2, 0xE]
- strh r0, [r2, 0x10]
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080A8BE4
- ldrb r0, [r6]
- b _080A8BE8
- .align 2, 0
-_080A8BD8: .4byte gUnknown_0202F7C8
-_080A8BDC: .4byte gUnknown_03004B00
-_080A8BE0: .4byte gTasks
-_080A8BE4:
- ldr r0, _080A8C00 @ =gUnknown_0202F7C9
- ldrb r0, [r0]
-_080A8BE8:
- strh r0, [r2, 0x12]
- ldr r1, _080A8C04 @ =gTasks
- adds r0, r3, r5
- lsls r0, 3
- adds r0, r1
- movs r1, 0x1
- strh r1, [r0, 0x20]
- ldr r1, _080A8C08 @ =sub_80A8C0C
- str r1, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A8C00: .4byte gUnknown_0202F7C9
-_080A8C04: .4byte gTasks
-_080A8C08: .4byte sub_80A8C0C
- thumb_func_end sub_80A8B88
-
- thumb_func_start sub_80A8C0C
-sub_80A8C0C: @ 80A8C0C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _080A8C5C @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r4, r0, r1
- ldrb r7, [r4, 0x10]
- ldrh r0, [r4, 0xC]
- ldrh r1, [r4, 0x1C]
- adds r0, r1
- lsls r1, r0, 16
- strh r0, [r4, 0x1C]
- lsrs r1, 24
- mov r8, r1
- mov r0, r8
- movs r2, 0xA
- ldrsh r1, [r4, r2]
- bl Sin
- lsls r0, 16
- lsrs r5, r0, 16
- mov r9, r5
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080A8C64
- ldr r0, _080A8C60 @ =gSprites
- lsls r2, r7, 4
- adds r1, r2, r7
- lsls r1, 2
- adds r1, r0
- strh r5, [r1, 0x24]
- mov r9, r0
- adds r4, r2, 0
- b _080A8CAA
- .align 2, 0
-_080A8C5C: .4byte gTasks
-_080A8C60: .4byte gSprites
-_080A8C64:
- ldrb r0, [r4, 0x12]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _080A8C8C
- ldr r1, _080A8C88 @ =gSprites
- lsls r2, r7, 4
- adds r0, r2, r7
- lsls r0, 2
- adds r3, r0, r1
- lsls r0, r5, 16
- asrs r0, 16
- mov r9, r1
- adds r4, r2, 0
- cmp r0, 0
- bge _080A8CA8
- b _080A8CA6
- .align 2, 0
-_080A8C88: .4byte gSprites
-_080A8C8C:
- ldr r1, _080A8D2C @ =gSprites
- lsls r2, r7, 4
- adds r0, r2, r7
- lsls r0, 2
- adds r3, r0, r1
- mov r4, r9
- lsls r0, r4, 16
- asrs r0, 16
- mov r9, r1
- adds r4, r2, 0
- cmp r0, 0
- bge _080A8CA6
- negs r0, r0
-_080A8CA6:
- negs r0, r0
-_080A8CA8:
- strh r0, [r3, 0x26]
-_080A8CAA:
- mov r5, r8
- cmp r5, 0x7F
- bls _080A8CCC
- ldr r1, _080A8D30 @ =gTasks
- lsls r2, r6, 2
- adds r0, r2, r6
- lsls r0, 3
- adds r3, r0, r1
- movs r5, 0x1E
- ldrsh r0, [r3, r5]
- adds r5, r1, 0
- cmp r0, 0
- bne _080A8CCC
- movs r1, 0x20
- ldrsh r0, [r3, r1]
- cmp r0, 0x1
- beq _080A8CEE
-_080A8CCC:
- mov r2, r8
- cmp r2, 0x7E
- bhi _080A8D20
- ldr r1, _080A8D30 @ =gTasks
- lsls r2, r6, 2
- adds r0, r2, r6
- lsls r0, 3
- adds r3, r0, r1
- movs r5, 0x1E
- ldrsh r0, [r3, r5]
- adds r5, r1, 0
- cmp r0, 0x1
- bne _080A8D20
- movs r1, 0x20
- ldrsh r0, [r3, r1]
- cmp r0, 0
- bne _080A8D20
-_080A8CEE:
- adds r1, r2, r6
- lsls r1, 3
- adds r1, r5
- ldrh r0, [r1, 0x1E]
- movs r2, 0x1
- eors r0, r2
- strh r0, [r1, 0x1E]
- ldrh r0, [r1, 0x20]
- eors r0, r2
- strh r0, [r1, 0x20]
- ldrh r0, [r1, 0xE]
- subs r0, 0x1
- strh r0, [r1, 0xE]
- lsls r0, 16
- asrs r3, r0, 16
- cmp r3, 0
- bne _080A8D20
- adds r0, r4, r7
- lsls r0, 2
- add r0, r9
- strh r3, [r0, 0x24]
- strh r3, [r0, 0x26]
- adds r0, r6, 0
- bl move_anim_task_del
-_080A8D20:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A8D2C: .4byte gSprites
-_080A8D30: .4byte gTasks
- thumb_func_end sub_80A8C0C
-
- thumb_func_start sub_80A8D34
-sub_80A8D34: @ 80A8D34
- push {r4-r6,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r6, _080A8D80 @ =gUnknown_03004B00
- ldrb r0, [r6, 0x6]
- bl obj_id_for_side_relative_to_move
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldrb r1, [r6, 0x8]
- adds r0, r5, 0
- bl sub_8078E70
- ldr r1, _080A8D84 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldrh r1, [r6]
- strh r1, [r0, 0x8]
- ldrh r1, [r6, 0x2]
- strh r1, [r0, 0xA]
- ldrh r1, [r6, 0x4]
- strh r1, [r0, 0xC]
- ldrh r1, [r6, 0x4]
- strh r1, [r0, 0xE]
- strh r5, [r0, 0x10]
- movs r1, 0x80
- lsls r1, 1
- strh r1, [r0, 0x1C]
- strh r1, [r0, 0x1E]
- ldr r1, _080A8D88 @ =sub_80A8D8C
- str r1, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A8D80: .4byte gUnknown_03004B00
-_080A8D84: .4byte gTasks
-_080A8D88: .4byte sub_80A8D8C
- thumb_func_end sub_80A8D34
-
- thumb_func_start sub_80A8D8C
-sub_80A8D8C: @ 80A8D8C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0, 0
- ldr r1, _080A8DEC @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- ldrh r0, [r4, 0x8]
- ldrh r1, [r4, 0x1C]
- adds r0, r1
- strh r0, [r4, 0x1C]
- ldrh r0, [r4, 0xA]
- ldrh r3, [r4, 0x1E]
- adds r0, r3
- strh r0, [r4, 0x1E]
- ldrb r0, [r4, 0x10]
- adds r6, r0, 0
- movs r0, 0x1C
- ldrsh r1, [r4, r0]
- movs r3, 0x1E
- ldrsh r2, [r4, r3]
- adds r0, r6, 0
- movs r3, 0
- bl obj_id_set_rotscale
- ldrh r0, [r4, 0xC]
- subs r0, 0x1
- strh r0, [r4, 0xC]
- lsls r0, 16
- asrs r1, r0, 16
- cmp r1, 0
- bne _080A8DFC
- ldrh r2, [r4, 0xE]
- movs r3, 0xE
- ldrsh r0, [r4, r3]
- cmp r0, 0
- ble _080A8DF0
- ldrh r0, [r4, 0x8]
- negs r0, r0
- strh r0, [r4, 0x8]
- ldrh r0, [r4, 0xA]
- negs r0, r0
- strh r0, [r4, 0xA]
- strh r2, [r4, 0xC]
- strh r1, [r4, 0xE]
- b _080A8DFC
- .align 2, 0
-_080A8DEC: .4byte gTasks
-_080A8DF0:
- adds r0, r6, 0
- bl sub_8078F40
- adds r0, r5, 0
- bl move_anim_task_del
-_080A8DFC:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80A8D8C
-
- thumb_func_start sub_80A8E04
-sub_80A8E04: @ 80A8E04
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r4, _080A8E40 @ =gUnknown_03004B00
- ldrb r0, [r4, 0x4]
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- movs r1, 0
- bl sub_8078E70
- ldr r1, _080A8E44 @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r2, r0, r1
- movs r1, 0
- strh r1, [r2, 0xA]
- ldrh r0, [r4]
- strh r0, [r2, 0xC]
- movs r3, 0x6
- ldrsh r0, [r4, r3]
- cmp r0, 0x1
- beq _080A8E48
- strh r1, [r2, 0xE]
- b _080A8E54
- .align 2, 0
-_080A8E40: .4byte gUnknown_03004B00
-_080A8E44: .4byte gTasks
-_080A8E48:
- ldrh r0, [r4]
- ldrh r1, [r4, 0x2]
- adds r3, r0, 0
- muls r3, r1
- adds r0, r3, 0
- strh r0, [r2, 0xE]
-_080A8E54:
- ldr r1, _080A8E80 @ =gTasks
- lsls r4, r7, 2
- adds r0, r4, r7
- lsls r0, 3
- adds r5, r0, r1
- ldr r6, _080A8E84 @ =gUnknown_03004B00
- ldrh r0, [r6, 0x2]
- strh r0, [r5, 0x10]
- mov r0, r8
- strh r0, [r5, 0x12]
- ldrh r0, [r6, 0x6]
- strh r0, [r5, 0x14]
- bl sub_8076BE0
- lsls r0, 24
- mov r8, r4
- cmp r0, 0
- beq _080A8E88
- movs r0, 0x1
- strh r0, [r5, 0x16]
- b _080A8EAC
- .align 2, 0
-_080A8E80: .4byte gTasks
-_080A8E84: .4byte gUnknown_03004B00
-_080A8E88:
- movs r1, 0x4
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _080A8E98
- ldr r0, _080A8E94 @ =gUnknown_0202F7C8
- b _080A8E9A
- .align 2, 0
-_080A8E94: .4byte gUnknown_0202F7C8
-_080A8E98:
- ldr r0, _080A8EF0 @ =gUnknown_0202F7C9
-_080A8E9A:
- ldrb r0, [r0]
- bl battle_side_get_owner
- movs r1, 0
- lsls r0, 24
- cmp r0, 0
- bne _080A8EAA
- movs r1, 0x1
-_080A8EAA:
- strh r1, [r5, 0x16]
-_080A8EAC:
- ldr r0, _080A8EF4 @ =gTasks
- mov r2, r8
- adds r1, r2, r7
- lsls r1, 3
- adds r4, r1, r0
- movs r3, 0x16
- ldrsh r0, [r4, r3]
- cmp r0, 0
- beq _080A8ED8
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _080A8ED8
- movs r1, 0xE
- ldrsh r0, [r4, r1]
- negs r0, r0
- strh r0, [r4, 0xE]
- movs r2, 0x10
- ldrsh r0, [r4, r2]
- negs r0, r0
- strh r0, [r4, 0x10]
-_080A8ED8:
- ldr r0, _080A8EF4 @ =gTasks
- mov r3, r8
- adds r1, r3, r7
- lsls r1, 3
- adds r1, r0
- ldr r0, _080A8EF8 @ =sub_80A8FD8
- str r0, [r1]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A8EF0: .4byte gUnknown_0202F7C9
-_080A8EF4: .4byte gTasks
-_080A8EF8: .4byte sub_80A8FD8
- thumb_func_end sub_80A8E04
-
- thumb_func_start sub_80A8EFC
-sub_80A8EFC: @ 80A8EFC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r4, _080A8F38 @ =gUnknown_03004B00
- ldrb r0, [r4, 0x4]
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- movs r1, 0
- bl sub_8078E70
- ldr r1, _080A8F3C @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0xA]
- ldrh r1, [r4]
- strh r1, [r0, 0xC]
- movs r1, 0x4
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080A8F44
- ldr r0, _080A8F40 @ =gUnknown_0202F7C8
- b _080A8F46
- .align 2, 0
-_080A8F38: .4byte gUnknown_03004B00
-_080A8F3C: .4byte gTasks
-_080A8F40: .4byte gUnknown_0202F7C8
-_080A8F44:
- ldr r0, _080A8F74 @ =gUnknown_0202F7C9
-_080A8F46:
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080A8F58
- ldrh r0, [r4, 0x2]
- negs r0, r0
- strh r0, [r4, 0x2]
-_080A8F58:
- ldr r0, _080A8F78 @ =gUnknown_03004B00
- movs r2, 0x6
- ldrsh r1, [r0, r2]
- adds r6, r0, 0
- cmp r1, 0x1
- beq _080A8F80
- ldr r2, _080A8F7C @ =gTasks
- lsls r3, r5, 2
- adds r0, r3, r5
- lsls r0, 3
- adds r0, r2
- movs r1, 0
- strh r1, [r0, 0xE]
- b _080A8F9A
- .align 2, 0
-_080A8F74: .4byte gUnknown_0202F7C9
-_080A8F78: .4byte gUnknown_03004B00
-_080A8F7C: .4byte gTasks
-_080A8F80:
- ldr r3, _080A8FD0 @ =gTasks
- lsls r4, r5, 2
- adds r0, r4, r5
- lsls r0, 3
- adds r0, r3
- ldrh r2, [r6]
- ldrh r1, [r6, 0x2]
- adds r7, r2, 0
- muls r7, r1
- adds r1, r7, 0
- strh r1, [r0, 0xE]
- adds r2, r3, 0
- adds r3, r4, 0
-_080A8F9A:
- adds r1, r3, r5
- lsls r1, 3
- adds r1, r2
- ldrh r0, [r6, 0x2]
- strh r0, [r1, 0x10]
- mov r0, r8
- strh r0, [r1, 0x12]
- ldrh r0, [r6, 0x6]
- strh r0, [r1, 0x14]
- movs r0, 0x1
- strh r0, [r1, 0x16]
- movs r2, 0xE
- ldrsh r0, [r1, r2]
- negs r0, r0
- strh r0, [r1, 0xE]
- movs r7, 0x10
- ldrsh r0, [r1, r7]
- negs r0, r0
- strh r0, [r1, 0x10]
- ldr r0, _080A8FD4 @ =sub_80A8FD8
- str r0, [r1]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A8FD0: .4byte gTasks
-_080A8FD4: .4byte sub_80A8FD8
- thumb_func_end sub_80A8EFC
-
- thumb_func_start sub_80A8FD8
-sub_80A8FD8: @ 80A8FD8
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _080A9030 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- ldrh r0, [r4, 0x10]
- ldrh r1, [r4, 0xE]
- adds r0, r1
- strh r0, [r4, 0xE]
- ldrb r0, [r4, 0x12]
- movs r2, 0x80
- lsls r2, 1
- ldrh r3, [r4, 0xE]
- adds r1, r2, 0
- bl obj_id_set_rotscale
- movs r2, 0x16
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _080A900C
- ldrb r0, [r4, 0x12]
- bl sub_8078F9C
-_080A900C:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- movs r2, 0xC
- ldrsh r1, [r4, r2]
- cmp r0, r1
- blt _080A9052
- movs r1, 0x14
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _080A9034
- cmp r0, 0x1
- ble _080A903A
- cmp r0, 0x2
- beq _080A9042
- b _080A903A
- .align 2, 0
-_080A9030: .4byte gTasks
-_080A9034:
- ldrb r0, [r4, 0x12]
- bl sub_8078F40
-_080A903A:
- adds r0, r5, 0
- bl move_anim_task_del
- b _080A9052
-_080A9042:
- movs r0, 0
- strh r0, [r4, 0xA]
- movs r2, 0x10
- ldrsh r0, [r4, r2]
- negs r0, r0
- strh r0, [r4, 0x10]
- movs r0, 0x1
- strh r0, [r4, 0x14]
-_080A9052:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80A8FD8
-
- thumb_func_start sub_80A9058
-sub_80A9058: @ 80A9058
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r0, _080A9084 @ =gUnknown_03004B00
- movs r2, 0
- ldrsh r1, [r0, r2]
- mov r8, r0
- cmp r1, 0
- bne _080A9090
- ldr r4, _080A9088 @ =gTasks
- lsls r5, r7, 2
- adds r0, r5, r7
- lsls r0, 3
- adds r6, r0, r4
- ldr r0, _080A908C @ =gUnknown_0202F7BC
- ldrh r0, [r0]
- movs r1, 0xC
- bl __udivsi3
- b _080A90A4
- .align 2, 0
-_080A9084: .4byte gUnknown_03004B00
-_080A9088: .4byte gTasks
-_080A908C: .4byte gUnknown_0202F7BC
-_080A9090:
- ldr r4, _080A912C @ =gTasks
- lsls r5, r7, 2
- adds r0, r5, r7
- lsls r0, 3
- adds r6, r0, r4
- ldr r0, _080A9130 @ =gUnknown_0202F7B8
- ldr r0, [r0]
- movs r1, 0xC
- bl __divsi3
-_080A90A4:
- strh r0, [r6, 0x26]
- lsls r0, 16
- adds r1, r4, 0
- cmp r0, 0
- bgt _080A90B2
- movs r0, 0x1
- strh r0, [r6, 0x26]
-_080A90B2:
- movs r2, 0x26
- ldrsh r0, [r6, r2]
- cmp r0, 0x10
- ble _080A90BE
- movs r0, 0x10
- strh r0, [r6, 0x26]
-_080A90BE:
- adds r4, r5, r7
- lsls r4, 3
- adds r4, r1
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsrs r0, r1, 31
- adds r1, r0
- asrs r1, 1
- movs r5, 0
- strh r1, [r4, 0x24]
- ldrh r2, [r4, 0x26]
- movs r0, 0x1
- ands r0, r2
- adds r1, r0
- strh r1, [r4, 0x22]
- strh r5, [r4, 0x20]
- mov r1, r8
- ldrh r0, [r1, 0x6]
- strh r0, [r4, 0x1C]
- ldrh r0, [r1, 0x8]
- strh r0, [r4, 0x1E]
- movs r0, 0x1
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x16]
- ldr r2, _080A9134 @ =gSprites
- movs r0, 0x16
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r0, [r0, 0x24]
- strh r0, [r4, 0x18]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r0, [r0, 0x26]
- strh r0, [r4, 0x1A]
- strh r5, [r4, 0x8]
- mov r1, r8
- ldrh r0, [r1, 0x2]
- strh r0, [r4, 0xA]
- ldrh r0, [r1, 0x4]
- strh r0, [r4, 0xC]
- ldr r0, _080A9138 @ =sub_80A913C
- str r0, [r4]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A912C: .4byte gTasks
-_080A9130: .4byte gUnknown_0202F7B8
-_080A9134: .4byte gSprites
-_080A9138: .4byte sub_80A913C
- thumb_func_end sub_80A9058
-
- thumb_func_start sub_80A913C
-sub_80A913C: @ 80A913C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _080A9190 @ =gTasks
- adds r3, r0, r1
- ldrh r0, [r3, 0x8]
- adds r0, 0x1
- strh r0, [r3, 0x8]
- lsls r0, 16
- asrs r0, 16
- movs r2, 0xA
- ldrsh r1, [r3, r2]
- cmp r0, r1
- ble _080A921A
- movs r0, 0
- strh r0, [r3, 0x8]
- ldrh r0, [r3, 0x20]
- adds r1, r0, 0x1
- movs r0, 0x1
- ands r1, r0
- strh r1, [r3, 0x20]
- movs r2, 0x1C
- ldrsh r0, [r3, r2]
- cmp r0, 0
- beq _080A91AE
- cmp r1, 0
- beq _080A9198
- ldr r2, _080A9194 @ =gSprites
- movs r0, 0x16
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r3, 0x22]
- ldrh r2, [r3, 0x18]
- adds r1, r2
- b _080A91AC
- .align 2, 0
-_080A9190: .4byte gTasks
-_080A9194: .4byte gSprites
-_080A9198:
- ldr r2, _080A91D4 @ =gSprites
- movs r0, 0x16
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r3, 0x18]
- ldrh r2, [r3, 0x24]
- subs r1, r2
-_080A91AC:
- strh r1, [r0, 0x24]
-_080A91AE:
- movs r1, 0x1E
- ldrsh r0, [r3, r1]
- cmp r0, 0
- beq _080A91E8
- movs r2, 0x20
- ldrsh r4, [r3, r2]
- cmp r4, 0
- beq _080A91D8
- ldr r2, _080A91D4 @ =gSprites
- movs r0, 0x16
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r3, 0x26]
- strh r1, [r0, 0x26]
- b _080A91E8
- .align 2, 0
-_080A91D4: .4byte gSprites
-_080A91D8:
- ldr r2, _080A9220 @ =gSprites
- movs r0, 0x16
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- strh r4, [r0, 0x26]
-_080A91E8:
- ldrh r0, [r3, 0xC]
- subs r0, 0x1
- strh r0, [r3, 0xC]
- lsls r0, 16
- asrs r4, r0, 16
- cmp r4, 0
- bne _080A921A
- ldr r2, _080A9220 @ =gSprites
- movs r0, 0x16
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- strh r4, [r0, 0x24]
- movs r0, 0x16
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- strh r4, [r0, 0x26]
- adds r0, r5, 0
- bl move_anim_task_del
-_080A921A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A9220: .4byte gSprites
- thumb_func_end sub_80A913C
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/battle_anim_80CA710.s b/asm/battle_anim_80CA710.s
index d784aa4b7..ae6709650 100644
--- a/asm/battle_anim_80CA710.s
+++ b/asm/battle_anim_80CA710.s
@@ -10,7 +10,7 @@
sub_80CA710: @ 80CA710
push {r4,r5,lr}
adds r4, r0, 0
- ldr r5, _080CA744 @ =gUnknown_03004B00
+ ldr r5, _080CA744 @ =gBattleAnimArgs
ldrh r0, [r5]
ldrh r1, [r4, 0x20]
adds r0, r1
@@ -33,13 +33,13 @@ sub_80CA710: @ 80CA710
negs r0, r0
b _080CA74E
.align 2, 0
-_080CA744: .4byte gUnknown_03004B00
+_080CA744: .4byte gBattleAnimArgs
_080CA748: .4byte gUnknown_0202F7C8
_080CA74C:
ldrh r0, [r5, 0x8]
_080CA74E:
strh r0, [r4, 0x34]
- ldr r0, _080CA760 @ =gUnknown_03004B00
+ ldr r0, _080CA760 @ =gBattleAnimArgs
ldrh r0, [r0, 0xA]
strh r0, [r4, 0x36]
ldr r0, _080CA764 @ =sub_80CA768
@@ -48,7 +48,7 @@ _080CA74E:
pop {r0}
bx r0
.align 2, 0
-_080CA760: .4byte gUnknown_03004B00
+_080CA760: .4byte gBattleAnimArgs
_080CA764: .4byte sub_80CA768
thumb_func_end sub_80CA710
@@ -98,7 +98,7 @@ sub_80CA7B0: @ 80CA7B0
adds r4, r0, 0
movs r1, 0x1
bl sub_80787B0
- ldr r0, _080CA7F0 @ =gUnknown_03004B00
+ ldr r0, _080CA7F0 @ =gBattleAnimArgs
ldrh r0, [r0, 0x4]
strh r0, [r4, 0x2E]
ldr r5, _080CA7F4 @ =gUnknown_0202F7C8
@@ -123,7 +123,7 @@ sub_80CA7B0: @ 80CA7B0
pop {r0}
bx r0
.align 2, 0
-_080CA7F0: .4byte gUnknown_03004B00
+_080CA7F0: .4byte gBattleAnimArgs
_080CA7F4: .4byte gUnknown_0202F7C8
_080CA7F8: .4byte sub_8078B34
_080CA7FC: .4byte move_anim_8074EE0
@@ -135,7 +135,7 @@ sub_80CA800: @ 80CA800
adds r4, r0, 0
movs r1, 0x1
bl sub_80787B0
- ldr r5, _080CA848 @ =gUnknown_03004B00
+ ldr r5, _080CA848 @ =gBattleAnimArgs
ldrb r1, [r5, 0x6]
adds r0, r4, 0
bl StartSpriteAnim
@@ -163,7 +163,7 @@ sub_80CA800: @ 80CA800
pop {r0}
bx r0
.align 2, 0
-_080CA848: .4byte gUnknown_03004B00
+_080CA848: .4byte gBattleAnimArgs
_080CA84C: .4byte gUnknown_0202F7C9
_080CA850: .4byte sub_8078B34
_080CA854: .4byte move_anim_8072740
@@ -175,7 +175,7 @@ sub_80CA858: @ 80CA858
adds r4, r0, 0
movs r1, 0x1
bl sub_80787B0
- ldr r6, _080CA8A8 @ =gUnknown_03004B00
+ ldr r6, _080CA8A8 @ =gBattleAnimArgs
ldrh r0, [r6, 0x4]
strh r0, [r4, 0x2E]
ldrh r0, [r4, 0x20]
@@ -207,7 +207,7 @@ sub_80CA858: @ 80CA858
pop {r0}
bx r0
.align 2, 0
-_080CA8A8: .4byte gUnknown_03004B00
+_080CA8A8: .4byte gBattleAnimArgs
_080CA8AC: .4byte gUnknown_0202F7C9
_080CA8B0: .4byte sub_80CA8B4
thumb_func_end sub_80CA858
@@ -297,7 +297,7 @@ sub_80CA928: @ 80CA928
strh r0, [r5, 0xA]
movs r0, 0x6
strh r0, [r5, 0x8]
- ldr r1, _080CA99C @ =gUnknown_03004B00
+ ldr r1, _080CA99C @ =gBattleAnimArgs
movs r0, 0xF
strh r0, [r1]
strh r2, [r1, 0x2]
@@ -329,7 +329,7 @@ _080CA990:
bx r0
.align 2, 0
_080CA998: .4byte gTasks
-_080CA99C: .4byte gUnknown_03004B00
+_080CA99C: .4byte gBattleAnimArgs
_080CA9A0: .4byte gSpriteTemplate_83D631C
_080CA9A4: .4byte gUnknown_0202F7C9
thumb_func_end sub_80CA928
@@ -340,7 +340,7 @@ sub_80CA9A8: @ 80CA9A8
adds r4, r0, 0
movs r1, 0x1
bl sub_8078764
- ldr r6, _080CA9EC @ =gUnknown_03004B00
+ ldr r6, _080CA9EC @ =gBattleAnimArgs
ldrh r0, [r6, 0x6]
strh r0, [r4, 0x2E]
ldr r5, _080CA9F0 @ =gUnknown_0202F7C8
@@ -366,7 +366,7 @@ sub_80CA9A8: @ 80CA9A8
pop {r0}
bx r0
.align 2, 0
-_080CA9EC: .4byte gUnknown_03004B00
+_080CA9EC: .4byte gBattleAnimArgs
_080CA9F0: .4byte gUnknown_0202F7C8
_080CA9F4: .4byte sub_80CA9F8
thumb_func_end sub_80CA9A8
@@ -528,12 +528,12 @@ sub_80CAB18: @ 80CAB18
lsls r0, 24
cmp r0, 0
beq _080CAB38
- ldr r1, _080CAB7C @ =gUnknown_03004B00
+ ldr r1, _080CAB7C @ =gBattleAnimArgs
ldrh r0, [r1, 0x4]
negs r0, r0
strh r0, [r1, 0x4]
_080CAB38:
- ldr r4, _080CAB7C @ =gUnknown_03004B00
+ ldr r4, _080CAB7C @ =gBattleAnimArgs
ldrh r0, [r4, 0x8]
strh r0, [r6, 0x2E]
ldr r5, _080CAB80 @ =gUnknown_0202F7C9
@@ -564,7 +564,7 @@ _080CAB38:
bx r0
.align 2, 0
_080CAB78: .4byte gUnknown_0202F7C8
-_080CAB7C: .4byte gUnknown_03004B00
+_080CAB7C: .4byte gBattleAnimArgs
_080CAB80: .4byte gUnknown_0202F7C9
_080CAB84: .4byte sub_80CAB88
thumb_func_end sub_80CAB18
@@ -634,7 +634,7 @@ sub_80CABF8: @ 80CABF8
adds r4, r0, 0
movs r1, 0x1
bl sub_8078764
- ldr r5, _080CAC3C @ =gUnknown_03004B00
+ ldr r5, _080CAC3C @ =gBattleAnimArgs
ldrb r1, [r5, 0x8]
adds r0, r4, 0
bl StartSpriteAnim
@@ -662,7 +662,7 @@ _080CAC22:
pop {r0}
bx r0
.align 2, 0
-_080CAC3C: .4byte gUnknown_03004B00
+_080CAC3C: .4byte gBattleAnimArgs
_080CAC40: .4byte sub_80CAC44
thumb_func_end sub_80CABF8
@@ -761,7 +761,7 @@ sub_80CACEC: @ 80CACEC
lsls r0, 24
cmp r0, 0
bne _080CAD06
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
bne _080CAD0E
@@ -812,7 +812,7 @@ sub_80CAD54: @ 80CAD54
adds r4, r0, 0
movs r1, 0
bl sub_80787B0
- ldr r5, _080CAD9C @ =gUnknown_03004B00
+ ldr r5, _080CAD9C @ =gBattleAnimArgs
ldrh r0, [r5, 0x6]
strh r0, [r4, 0x2E]
ldrh r0, [r4, 0x20]
@@ -841,7 +841,7 @@ sub_80CAD54: @ 80CAD54
pop {r0}
bx r0
.align 2, 0
-_080CAD9C: .4byte gUnknown_03004B00
+_080CAD9C: .4byte gBattleAnimArgs
_080CADA0: .4byte gUnknown_0202F7C8
_080CADA4: .4byte sub_80CADA8
thumb_func_end sub_80CAD54
@@ -914,7 +914,7 @@ sub_80CAE20: @ 80CAE20
adds r4, r0, 0
movs r1, 0x1
bl sub_80787B0
- ldr r5, _080CAE68 @ =gUnknown_03004B00
+ ldr r5, _080CAE68 @ =gBattleAnimArgs
ldrh r0, [r5, 0x6]
strh r0, [r4, 0x2E]
ldrh r0, [r4, 0x20]
@@ -943,7 +943,7 @@ sub_80CAE20: @ 80CAE20
pop {r0}
bx r0
.align 2, 0
-_080CAE68: .4byte gUnknown_03004B00
+_080CAE68: .4byte gBattleAnimArgs
_080CAE6C: .4byte gUnknown_0202F7C8
_080CAE70: .4byte sub_80CAE74
thumb_func_end sub_80CAE20
@@ -1020,7 +1020,7 @@ sub_80CAED8: @ 80CAED8
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x22]
- ldr r1, _080CAF18 @ =gUnknown_03004B00
+ ldr r1, _080CAF18 @ =gBattleAnimArgs
ldrh r0, [r1]
strh r0, [r4, 0x2E]
ldrh r0, [r1, 0x2]
@@ -1034,7 +1034,7 @@ sub_80CAED8: @ 80CAED8
bx r0
.align 2, 0
_080CAF14: .4byte gUnknown_0202F7C8
-_080CAF18: .4byte gUnknown_03004B00
+_080CAF18: .4byte gBattleAnimArgs
_080CAF1C: .4byte sub_80CAF20
thumb_func_end sub_80CAED8
@@ -1148,12 +1148,12 @@ sub_80CAFD0: @ 80CAFD0
lsls r0, 24
cmp r0, 0
beq _080CAFF0
- ldr r1, _080CB028 @ =gUnknown_03004B00
+ ldr r1, _080CB028 @ =gBattleAnimArgs
ldrh r0, [r1, 0x4]
negs r0, r0
strh r0, [r1, 0x4]
_080CAFF0:
- ldr r6, _080CB028 @ =gUnknown_03004B00
+ ldr r6, _080CB028 @ =gBattleAnimArgs
ldrh r0, [r6, 0x8]
strh r0, [r5, 0x2E]
movs r1, 0xC
@@ -1179,7 +1179,7 @@ _080CAFF0:
b _080CB050
.align 2, 0
_080CB024: .4byte gUnknown_0202F7C8
-_080CB028: .4byte gUnknown_03004B00
+_080CB028: .4byte gBattleAnimArgs
_080CB02C: .4byte gUnknown_0202F7C9
_080CB030:
ldr r0, _080CB07C @ =gUnknown_0202F7C9
@@ -1199,7 +1199,7 @@ _080CB030:
adds r0, r1
_080CB050:
strh r0, [r5, 0x36]
- ldr r0, _080CB080 @ =gUnknown_03004B00
+ ldr r0, _080CB080 @ =gBattleAnimArgs
ldrh r0, [r0, 0xA]
strh r0, [r5, 0x38]
adds r0, r5, 0
@@ -1219,7 +1219,7 @@ _080CB050:
b _080CB08A
.align 2, 0
_080CB07C: .4byte gUnknown_0202F7C9
-_080CB080: .4byte gUnknown_03004B00
+_080CB080: .4byte gBattleAnimArgs
_080CB084: .4byte gUnknown_0202F7C8
_080CB088:
movs r0, 0
@@ -1333,7 +1333,7 @@ sub_80CB144: @ 80CB144
lsls r0, 24
cmp r0, 0
bne _080CB170
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -1350,7 +1350,7 @@ _080CB170:
ldrh r0, [r4, 0x22]
adds r0, 0x20
strh r0, [r4, 0x22]
- ldr r1, _080CB19C @ =gUnknown_03004B00
+ ldr r1, _080CB19C @ =gBattleAnimArgs
ldrh r0, [r1]
strh r0, [r4, 0x2E]
ldrh r0, [r1, 0x2]
@@ -1368,7 +1368,7 @@ _080CB170:
bx r0
.align 2, 0
_080CB198: .4byte gUnknown_0202F7C9
-_080CB19C: .4byte gUnknown_03004B00
+_080CB19C: .4byte gBattleAnimArgs
_080CB1A0: .4byte sub_80CB1A4
thumb_func_end sub_80CB144
@@ -1480,7 +1480,7 @@ sub_80CB25C: @ 80CB25C
movs r1, 0x80
orrs r0, r1
strb r0, [r2]
- ldr r4, _080CB290 @ =gUnknown_03004B00
+ ldr r4, _080CB290 @ =gBattleAnimArgs
ldrb r1, [r4, 0x4]
adds r0, r5, 0
bl StartSpriteAffineAnim
@@ -1494,7 +1494,7 @@ sub_80CB25C: @ 80CB25C
pop {r0}
bx r0
.align 2, 0
-_080CB290: .4byte gUnknown_03004B00
+_080CB290: .4byte gBattleAnimArgs
_080CB294: .4byte sub_80CB298
thumb_func_end sub_80CB25C
@@ -1502,7 +1502,7 @@ _080CB294: .4byte sub_80CB298
sub_80CB298: @ 80CB298
push {r4,lr}
adds r4, r0, 0
- ldr r0, _080CB2C8 @ =gUnknown_03004B00
+ ldr r0, _080CB2C8 @ =gBattleAnimArgs
ldrh r1, [r0, 0xE]
ldr r0, _080CB2CC @ =0x0000ffff
cmp r1, r0
@@ -1525,7 +1525,7 @@ _080CB2C2:
pop {r0}
bx r0
.align 2, 0
-_080CB2C8: .4byte gUnknown_03004B00
+_080CB2C8: .4byte gBattleAnimArgs
_080CB2CC: .4byte 0x0000ffff
_080CB2D0: .4byte sub_80CB2D4
thumb_func_end sub_80CB298
@@ -1623,7 +1623,7 @@ _080CB370:
adds r0, r4
lsls r0, 3
adds r0, r1
- ldr r2, _080CB3A0 @ =gUnknown_03004B00
+ ldr r2, _080CB3A0 @ =gBattleAnimArgs
ldrh r1, [r2]
strh r1, [r0, 0x8]
ldrh r1, [r2, 0x2]
@@ -1639,7 +1639,7 @@ _080CB396:
bx r0
.align 2, 0
_080CB39C: .4byte gTasks
-_080CB3A0: .4byte gUnknown_03004B00
+_080CB3A0: .4byte gBattleAnimArgs
_080CB3A4: .4byte sub_80CB3A8
thumb_func_end sub_80CB340
@@ -1718,7 +1718,7 @@ sub_80CB438: @ 80CB438
push {r4-r6,lr}
lsls r0, 24
lsrs r3, r0, 24
- ldr r0, _080CB484 @ =gUnknown_03004B00
+ ldr r0, _080CB484 @ =gBattleAnimArgs
ldrh r1, [r0, 0xE]
ldr r0, _080CB488 @ =0x0000ffff
cmp r1, r0
@@ -1752,7 +1752,7 @@ sub_80CB438: @ 80CB438
strh r0, [r6, 0x8]
b _080CB4C2
.align 2, 0
-_080CB484: .4byte gUnknown_03004B00
+_080CB484: .4byte gBattleAnimArgs
_080CB488: .4byte 0x0000ffff
_080CB48C: .4byte gTasks
_080CB490: .4byte gSprites
@@ -1806,7 +1806,7 @@ _080CB4DE:
lsls r0, 24
cmp r0, 0
bne _080CB4F6
- ldr r1, _080CB534 @ =gUnknown_03004B00
+ ldr r1, _080CB534 @ =gBattleAnimArgs
movs r2, 0
ldrsh r0, [r1, r2]
negs r0, r0
@@ -1816,7 +1816,7 @@ _080CB4F6:
movs r1, 0
bl sub_8077ABC
lsls r0, 24
- ldr r4, _080CB534 @ =gUnknown_03004B00
+ ldr r4, _080CB534 @ =gBattleAnimArgs
lsrs r0, 24
ldrh r1, [r4]
adds r0, r1
@@ -1841,7 +1841,7 @@ _080CB4F6:
b _080CB58A
.align 2, 0
_080CB530: .4byte gUnknown_0202F7C9
-_080CB534: .4byte gUnknown_03004B00
+_080CB534: .4byte gBattleAnimArgs
_080CB538:
adds r2, r5, 0
adds r2, 0x3E
@@ -1911,7 +1911,7 @@ sub_80CB59C: @ 80CB59C
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x22]
- ldr r4, _080CB618 @ =gUnknown_03004B00
+ ldr r4, _080CB618 @ =gBattleAnimArgs
ldrh r0, [r4]
strh r0, [r5, 0x24]
ldrh r0, [r4, 0x2]
@@ -1951,7 +1951,7 @@ _080CB608:
bx r0
.align 2, 0
_080CB614: .4byte gUnknown_0202F7C8
-_080CB618: .4byte gUnknown_03004B00
+_080CB618: .4byte gBattleAnimArgs
_080CB61C: .4byte sub_80CB710
thumb_func_end sub_80CB59C
@@ -2001,7 +2001,7 @@ sub_80CB620: @ 80CB620
lsrs r3, r4, 16
mov r10, r3
asrs r4, 16
- ldr r6, _080CB704 @ =gUnknown_03004B00
+ ldr r6, _080CB704 @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r6, r1]
muls r0, r4
@@ -2062,7 +2062,7 @@ sub_80CB620: @ 80CB620
.align 2, 0
_080CB6FC: .4byte gUnknown_0202F7C8
_080CB700: .4byte gUnknown_0202F7C9
-_080CB704: .4byte gUnknown_03004B00
+_080CB704: .4byte gBattleAnimArgs
_080CB708: .4byte sub_80CB710
_080CB70C: .4byte gUnknown_03000728
thumb_func_end sub_80CB620
@@ -2128,7 +2128,7 @@ sub_80CB768: @ 80CB768
movs r1, 0x2
bl sub_8077ABC
lsls r0, 24
- ldr r4, _080CB7E8 @ =gUnknown_03004B00
+ ldr r4, _080CB7E8 @ =gBattleAnimArgs
lsrs r0, 24
ldrh r2, [r4]
adds r0, r2
@@ -2179,7 +2179,7 @@ _080CB7DE:
bx r0
.align 2, 0
_080CB7E4: .4byte gUnknown_0202F7C8
-_080CB7E8: .4byte gUnknown_03004B00
+_080CB7E8: .4byte gBattleAnimArgs
thumb_func_end sub_80CB768
thumb_func_start sub_80CB7EC
@@ -2556,7 +2556,7 @@ sub_80CBAA4: @ 80CBAA4
adds r0, r4, 0
movs r1, 0
bl sub_8078764
- ldr r0, _080CBAE4 @ =gUnknown_03004B00
+ ldr r0, _080CBAE4 @ =gBattleAnimArgs
ldrh r0, [r0, 0x4]
strh r0, [r4, 0x30]
_080CBABE:
@@ -2580,7 +2580,7 @@ _080CBADE:
pop {r0}
bx r0
.align 2, 0
-_080CBAE4: .4byte gUnknown_03004B00
+_080CBAE4: .4byte gBattleAnimArgs
thumb_func_end sub_80CBAA4
thumb_func_start sub_80CBAE8
@@ -2725,7 +2725,7 @@ sub_80CBBF0: @ 80CBBF0
lsls r0, 24
cmp r0, 0
bne _080CBC18
- ldr r0, _080CBC14 @ =gUnknown_03004B00
+ ldr r0, _080CBC14 @ =gBattleAnimArgs
ldrh r1, [r0, 0x2]
strh r1, [r4, 0x30]
movs r1, 0x78
@@ -2733,9 +2733,9 @@ sub_80CBBF0: @ 80CBBF0
adds r5, r0, 0
b _080CBC3A
.align 2, 0
-_080CBC14: .4byte gUnknown_03004B00
+_080CBC14: .4byte gBattleAnimArgs
_080CBC18:
- ldr r0, _080CBC74 @ =gUnknown_03004B00
+ ldr r0, _080CBC74 @ =gBattleAnimArgs
movs r1, 0x2
ldrsh r3, [r0, r1]
adds r1, r3, 0
@@ -2782,7 +2782,7 @@ _080CBC3A:
movs r0, 0x1F
b _080CBC82
.align 2, 0
-_080CBC74: .4byte gUnknown_03004B00
+_080CBC74: .4byte gBattleAnimArgs
_080CBC78: .4byte sub_80CBC8C
_080CBC7C:
adds r1, r4, 0
@@ -3827,7 +3827,7 @@ _080CC470: .4byte gTasks
sub_80CC474: @ 80CC474
push {r4-r7,lr}
adds r4, r0, 0
- ldr r0, _080CC488 @ =gUnknown_03004B00
+ ldr r0, _080CC488 @ =gBattleAnimArgs
movs r1, 0xC
ldrsh r0, [r0, r1]
cmp r0, 0
@@ -3835,7 +3835,7 @@ sub_80CC474: @ 80CC474
ldr r0, _080CC48C @ =gUnknown_0202F7C8
b _080CC492
.align 2, 0
-_080CC488: .4byte gUnknown_03004B00
+_080CC488: .4byte gBattleAnimArgs
_080CC48C: .4byte gUnknown_0202F7C8
_080CC490:
ldr r0, _080CC4B0 @ =gUnknown_0202F7C9
@@ -3848,19 +3848,19 @@ _080CC492:
beq _080CC4BC
movs r0, 0
strh r0, [r4, 0x36]
- ldr r1, _080CC4B4 @ =gUnknown_03004B00
+ ldr r1, _080CC4B4 @ =gBattleAnimArgs
ldrh r0, [r1, 0x6]
strh r0, [r4, 0x32]
ldr r0, _080CC4B8 @ =0x0000fff0
b _080CC4CC
.align 2, 0
_080CC4B0: .4byte gUnknown_0202F7C9
-_080CC4B4: .4byte gUnknown_03004B00
+_080CC4B4: .4byte gBattleAnimArgs
_080CC4B8: .4byte 0x0000fff0
_080CC4BC:
movs r0, 0x1
strh r0, [r4, 0x36]
- ldr r1, _080CC4F0 @ =gUnknown_03004B00
+ ldr r1, _080CC4F0 @ =gBattleAnimArgs
ldrh r0, [r1, 0x6]
negs r0, r0
strh r0, [r4, 0x32]
@@ -3886,7 +3886,7 @@ _080CC4CC:
beq _080CC4FE
b _080CC56C
.align 2, 0
-_080CC4F0: .4byte gUnknown_03004B00
+_080CC4F0: .4byte gBattleAnimArgs
_080CC4F4:
cmp r0, 0x2
beq _080CC508
@@ -4111,7 +4111,7 @@ _080CC650:
bne _080CC6AA
strh r7, [r5, 0x1E]
_080CC6AA:
- ldr r0, _080CC6C8 @ =gUnknown_03004B00
+ ldr r0, _080CC6C8 @ =gBattleAnimArgs
movs r2, 0xE
ldrsh r1, [r0, r2]
movs r0, 0x1
@@ -4126,7 +4126,7 @@ _080CC6BE:
bx r0
.align 2, 0
_080CC6C4: .4byte gUnknown_083D6984
-_080CC6C8: .4byte gUnknown_03004B00
+_080CC6C8: .4byte gBattleAnimArgs
thumb_func_end sub_80CC5F8
thumb_func_start sub_80CC6CC
@@ -4134,7 +4134,7 @@ sub_80CC6CC: @ 80CC6CC
push {r4-r7,lr}
sub sp, 0x4
adds r6, r0, 0
- ldr r1, _080CC6E4 @ =gUnknown_03004B00
+ ldr r1, _080CC6E4 @ =gBattleAnimArgs
movs r2, 0x8
ldrsh r0, [r1, r2]
cmp r0, 0
@@ -4143,7 +4143,7 @@ sub_80CC6CC: @ 80CC6CC
bl move_anim_8072740
b _080CC7C2
.align 2, 0
-_080CC6E4: .4byte gUnknown_03004B00
+_080CC6E4: .4byte gBattleAnimArgs
_080CC6E8:
movs r3, 0
ldrsh r0, [r1, r3]
@@ -4166,7 +4166,7 @@ _080CC6FA:
bl sub_8077ABC
lsls r0, 24
lsrs r2, r0, 24
- ldr r0, _080CC738 @ =gUnknown_03004B00
+ ldr r0, _080CC738 @ =gBattleAnimArgs
ldrh r1, [r0, 0x8]
strh r1, [r6, 0x2E]
movs r3, 0x2
@@ -4185,7 +4185,7 @@ _080CC6FA:
b _080CC74C
.align 2, 0
_080CC734: .4byte gUnknown_0202F7C9
-_080CC738: .4byte gUnknown_03004B00
+_080CC738: .4byte gBattleAnimArgs
_080CC73C:
strh r5, [r6, 0x20]
strh r2, [r6, 0x22]
@@ -4323,7 +4323,7 @@ sub_80CC82C: @ 80CC82C
lsls r0, 24
cmp r0, 0
beq _080CC854
- ldr r2, _080CC850 @ =gUnknown_03004B00
+ ldr r2, _080CC850 @ =gBattleAnimArgs
ldrh r0, [r4, 0x20]
ldrh r1, [r2]
subs r0, r1
@@ -4332,9 +4332,9 @@ sub_80CC82C: @ 80CC82C
b _080CC860
.align 2, 0
_080CC84C: .4byte gUnknown_0202F7C8
-_080CC850: .4byte gUnknown_03004B00
+_080CC850: .4byte gBattleAnimArgs
_080CC854:
- ldr r0, _080CC878 @ =gUnknown_03004B00
+ ldr r0, _080CC878 @ =gBattleAnimArgs
ldrh r1, [r0]
ldrh r2, [r4, 0x20]
adds r1, r2
@@ -4353,7 +4353,7 @@ _080CC860:
pop {r0}
bx r0
.align 2, 0
-_080CC878: .4byte gUnknown_03004B00
+_080CC878: .4byte gBattleAnimArgs
_080CC87C: .4byte sub_8078600
_080CC880: .4byte move_anim_8072740
thumb_func_end sub_80CC82C
@@ -4374,7 +4374,7 @@ sub_80CC884: @ 80CC884
_080CC89E:
ldr r0, _080CC8C0 @ =sub_80CC810
str r0, [r5, 0x1C]
- ldr r4, _080CC8C4 @ =gUnknown_03004B00
+ ldr r4, _080CC8C4 @ =gBattleAnimArgs
movs r0, 0
ldrsh r1, [r4, r0]
adds r0, r5, 0
@@ -4389,14 +4389,14 @@ _080CC89E:
.align 2, 0
_080CC8BC: .4byte gUnknown_0202F7C8
_080CC8C0: .4byte sub_80CC810
-_080CC8C4: .4byte gUnknown_03004B00
+_080CC8C4: .4byte gBattleAnimArgs
thumb_func_end sub_80CC884
thumb_func_start sub_80CC8C8
sub_80CC8C8: @ 80CC8C8
push {r4,lr}
adds r4, r0, 0
- ldr r1, _080CC908 @ =gUnknown_03004B00
+ ldr r1, _080CC908 @ =gBattleAnimArgs
ldrh r0, [r1]
ldrh r2, [r4, 0x20]
adds r0, r2
@@ -4425,7 +4425,7 @@ sub_80CC8C8: @ 80CC8C8
pop {r0}
bx r0
.align 2, 0
-_080CC908: .4byte gUnknown_03004B00
+_080CC908: .4byte gBattleAnimArgs
_080CC90C: .4byte move_anim_8074EE0
_080CC910: .4byte sub_8078504
thumb_func_end sub_80CC8C8
@@ -4458,7 +4458,7 @@ sub_80CC914: @ 80CC914
_080CC948:
ldr r0, _080CC968 @ =sub_80CCB00
str r0, [r5, 0x1C]
- ldr r0, _080CC96C @ =gUnknown_03004B00
+ ldr r0, _080CC96C @ =gBattleAnimArgs
movs r2, 0x4
ldrsh r1, [r0, r2]
adds r3, r0, 0
@@ -4472,7 +4472,7 @@ _080CC948:
.align 2, 0
_080CC964: .4byte gUnknown_0202F7C9
_080CC968: .4byte sub_80CCB00
-_080CC96C: .4byte gUnknown_03004B00
+_080CC96C: .4byte gBattleAnimArgs
_080CC970:
ldrh r0, [r5, 0x20]
ldrh r1, [r3]
@@ -4522,7 +4522,7 @@ sub_80CC9BC: @ 80CC9BC
mov r7, r8
push {r7}
adds r6, r0, 0
- ldr r0, _080CC9D8 @ =gUnknown_03004B00
+ ldr r0, _080CC9D8 @ =gBattleAnimArgs
movs r1, 0x6
ldrsh r0, [r0, r1]
cmp r0, 0x1
@@ -4533,7 +4533,7 @@ sub_80CC9BC: @ 80CC9BC
beq _080CC9FC
b _080CCA58
.align 2, 0
-_080CC9D8: .4byte gUnknown_03004B00
+_080CC9D8: .4byte gBattleAnimArgs
_080CC9DC:
ldr r5, _080CC9F8 @ =gUnknown_0202F7C9
ldrb r0, [r5]
@@ -4619,7 +4619,7 @@ _080CCA72:
_080CCA8A:
ldr r0, _080CCAA8 @ =sub_80CCB00
str r0, [r6, 0x1C]
- ldr r0, _080CCAAC @ =gUnknown_03004B00
+ ldr r0, _080CCAAC @ =gBattleAnimArgs
movs r2, 0x4
ldrsh r1, [r0, r2]
adds r3, r0, 0
@@ -4633,7 +4633,7 @@ _080CCA8A:
.align 2, 0
_080CCAA4: .4byte gUnknown_0202F7C9
_080CCAA8: .4byte sub_80CCB00
-_080CCAAC: .4byte gUnknown_03004B00
+_080CCAAC: .4byte gBattleAnimArgs
_080CCAB0:
ldrh r0, [r6, 0x20]
ldrh r1, [r3]
@@ -4858,7 +4858,7 @@ _080CCC4C: .4byte gSprites
sub_80CCC50: @ 80CCC50
push {r4,r5,lr}
adds r5, r0, 0
- ldr r4, _080CCC70 @ =gUnknown_03004B00
+ ldr r4, _080CCC70 @ =gBattleAnimArgs
ldrh r0, [r4, 0x4]
strh r0, [r5, 0x2E]
ldr r0, _080CCC74 @ =gUnknown_0202F7C8
@@ -4872,7 +4872,7 @@ sub_80CCC50: @ 80CCC50
subs r0, r1
b _080CCC7E
.align 2, 0
-_080CCC70: .4byte gUnknown_03004B00
+_080CCC70: .4byte gBattleAnimArgs
_080CCC74: .4byte gUnknown_0202F7C8
_080CCC78:
ldrh r0, [r4]
@@ -4880,7 +4880,7 @@ _080CCC78:
adds r0, r1
_080CCC7E:
strh r0, [r5, 0x20]
- ldr r4, _080CCCAC @ =gUnknown_03004B00
+ ldr r4, _080CCCAC @ =gBattleAnimArgs
ldrb r1, [r4, 0xA]
adds r0, r5, 0
bl StartSpriteAnim
@@ -4901,7 +4901,7 @@ _080CCC7E:
pop {r0}
bx r0
.align 2, 0
-_080CCCAC: .4byte gUnknown_03004B00
+_080CCCAC: .4byte gBattleAnimArgs
_080CCCB0: .4byte sub_80CCCB4
thumb_func_end sub_80CCC50
@@ -4972,7 +4972,7 @@ sub_80CCD24: @ 80CCD24
lsls r0, 24
cmp r0, 0
beq _080CCD3A
- ldr r1, _080CCD98 @ =gUnknown_03004B00
+ ldr r1, _080CCD98 @ =gBattleAnimArgs
ldrh r0, [r1, 0x2]
adds r0, 0x8
strh r0, [r1, 0x2]
@@ -4982,7 +4982,7 @@ _080CCD3A:
movs r1, 0
bl sub_8077EE4
lsls r0, 24
- ldr r4, _080CCD98 @ =gUnknown_03004B00
+ ldr r4, _080CCD98 @ =gBattleAnimArgs
lsrs r0, 24
ldrh r1, [r4]
adds r0, r1
@@ -5021,7 +5021,7 @@ _080CCD78:
strb r1, [r5, 0x5]
b _080CCDB8
.align 2, 0
-_080CCD98: .4byte gUnknown_03004B00
+_080CCD98: .4byte gBattleAnimArgs
_080CCD9C: .4byte gUnknown_0202F7C8
_080CCDA0:
ldrb r0, [r6]
@@ -5036,7 +5036,7 @@ _080CCDA0:
orrs r0, r1
strb r0, [r5, 0x5]
_080CCDB8:
- ldr r0, _080CCDF8 @ =gUnknown_03004B00
+ ldr r0, _080CCDF8 @ =gBattleAnimArgs
ldrh r0, [r0, 0x4]
strh r0, [r5, 0x2E]
ldr r0, _080CCDFC @ =0x00002828
@@ -5067,7 +5067,7 @@ _080CCDB8:
pop {r0}
bx r0
.align 2, 0
-_080CCDF8: .4byte gUnknown_03004B00
+_080CCDF8: .4byte gBattleAnimArgs
_080CCDFC: .4byte 0x00002828
_080CCE00: .4byte REG_BLDCNT
_080CCE04: .4byte REG_BLDALPHA
@@ -5507,7 +5507,7 @@ _080CD138:
sub_80CD140: @ 80CD140
push {r4,r5,lr}
adds r4, r0, 0
- ldr r5, _080CD184 @ =gUnknown_03004B00
+ ldr r5, _080CD184 @ =gBattleAnimArgs
movs r1, 0x4
ldrsh r0, [r5, r1]
cmp r0, 0
@@ -5538,7 +5538,7 @@ _080CD154:
pop {r0}
bx r0
.align 2, 0
-_080CD184: .4byte gUnknown_03004B00
+_080CD184: .4byte gBattleAnimArgs
_080CD188: .4byte move_anim_8072740
_080CD18C: .4byte sub_8078394
thumb_func_end sub_80CD140
@@ -5547,7 +5547,7 @@ _080CD18C: .4byte sub_8078394
sub_80CD190: @ 80CD190
push {r4-r6,lr}
adds r5, r0, 0
- ldr r0, _080CD1A4 @ =gUnknown_03004B00
+ ldr r0, _080CD1A4 @ =gBattleAnimArgs
movs r1, 0x4
ldrsh r0, [r0, r1]
cmp r0, 0
@@ -5555,13 +5555,13 @@ sub_80CD190: @ 80CD190
ldr r0, _080CD1A8 @ =gUnknown_0202F7C8
b _080CD1AE
.align 2, 0
-_080CD1A4: .4byte gUnknown_03004B00
+_080CD1A4: .4byte gBattleAnimArgs
_080CD1A8: .4byte gUnknown_0202F7C8
_080CD1AC:
ldr r0, _080CD1F0 @ =gUnknown_0202F7C9
_080CD1AE:
ldrb r6, [r0]
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _080CD1F8
@@ -5572,7 +5572,7 @@ _080CD1AE:
lsls r0, 24
cmp r0, 0
beq _080CD1F8
- ldr r4, _080CD1F4 @ =gUnknown_03004B00
+ ldr r4, _080CD1F4 @ =gBattleAnimArgs
ldrb r1, [r4, 0xC]
adds r2, r5, 0
adds r2, 0x20
@@ -5591,9 +5591,9 @@ _080CD1AE:
b _080CD248
.align 2, 0
_080CD1F0: .4byte gUnknown_0202F7C9
-_080CD1F4: .4byte gUnknown_03004B00
+_080CD1F4: .4byte gBattleAnimArgs
_080CD1F8:
- ldr r4, _080CD218 @ =gUnknown_03004B00
+ ldr r4, _080CD218 @ =gBattleAnimArgs
movs r2, 0xC
ldrsh r0, [r4, r2]
cmp r0, 0
@@ -5608,7 +5608,7 @@ _080CD1F8:
movs r1, 0x1
b _080CD22E
.align 2, 0
-_080CD218: .4byte gUnknown_03004B00
+_080CD218: .4byte gBattleAnimArgs
_080CD21C:
adds r0, r6, 0
movs r1, 0x2
@@ -5625,13 +5625,13 @@ _080CD22E:
ldrh r4, [r4, 0x2]
adds r0, r4
strh r0, [r5, 0x22]
- ldr r0, _080CD268 @ =gUnknown_03004B00
+ ldr r0, _080CD268 @ =gBattleAnimArgs
movs r2, 0
ldrsh r1, [r0, r2]
adds r0, r5, 0
bl sub_807867C
_080CD248:
- ldr r1, _080CD268 @ =gUnknown_03004B00
+ ldr r1, _080CD268 @ =gBattleAnimArgs
ldrh r0, [r1, 0xA]
strh r0, [r5, 0x2E]
ldrh r0, [r1, 0x6]
@@ -5647,7 +5647,7 @@ _080CD248:
pop {r0}
bx r0
.align 2, 0
-_080CD268: .4byte gUnknown_03004B00
+_080CD268: .4byte gBattleAnimArgs
_080CD26C: .4byte move_anim_8072740
_080CD270: .4byte sub_8078394
thumb_func_end sub_80CD190
@@ -5663,7 +5663,7 @@ sub_80CD274: @ 80CD274
lsls r0, 24
cmp r0, 0
bne _080CD2A8
- ldr r0, _080CD2A4 @ =gUnknown_03004B00
+ ldr r0, _080CD2A4 @ =gBattleAnimArgs
ldrh r1, [r0]
ldrh r2, [r4, 0x20]
adds r1, r2
@@ -5675,9 +5675,9 @@ sub_80CD274: @ 80CD274
b _080CD2C2
.align 2, 0
_080CD2A0: .4byte gUnknown_0202F7C8
-_080CD2A4: .4byte gUnknown_03004B00
+_080CD2A4: .4byte gBattleAnimArgs
_080CD2A8:
- ldr r2, _080CD2CC @ =gUnknown_03004B00
+ ldr r2, _080CD2CC @ =gBattleAnimArgs
ldrh r0, [r4, 0x20]
ldrh r1, [r2]
subs r0, r1
@@ -5696,7 +5696,7 @@ _080CD2C2:
pop {r0}
bx r0
.align 2, 0
-_080CD2CC: .4byte gUnknown_03004B00
+_080CD2CC: .4byte gBattleAnimArgs
_080CD2D0: .4byte sub_80CD2D4
thumb_func_end sub_80CD274
@@ -5755,7 +5755,7 @@ sub_80CD328: @ 80CD328
lsls r0, 24
cmp r0, 0
bne _080CD360
- ldr r1, _080CD35C @ =gUnknown_03004B00
+ ldr r1, _080CD35C @ =gBattleAnimArgs
ldrh r0, [r1]
ldrh r2, [r4, 0x20]
adds r0, r2
@@ -5769,9 +5769,9 @@ sub_80CD328: @ 80CD328
b _080CD37E
.align 2, 0
_080CD358: .4byte gUnknown_0202F7C8
-_080CD35C: .4byte gUnknown_03004B00
+_080CD35C: .4byte gBattleAnimArgs
_080CD360:
- ldr r2, _080CD388 @ =gUnknown_03004B00
+ ldr r2, _080CD388 @ =gBattleAnimArgs
ldrh r0, [r4, 0x20]
ldrh r1, [r2]
subs r0, r1
@@ -5792,7 +5792,7 @@ _080CD37E:
pop {r0}
bx r0
.align 2, 0
-_080CD388: .4byte gUnknown_03004B00
+_080CD388: .4byte gBattleAnimArgs
_080CD38C: .4byte 0x0000ffff
_080CD390: .4byte sub_80CD394
thumb_func_end sub_80CD328
@@ -6165,7 +6165,7 @@ _080CD650: .4byte sub_80CD654
sub_80CD654: @ 80CD654
push {lr}
adds r2, r0, 0
- ldr r0, _080CD670 @ =gUnknown_03004B00
+ ldr r0, _080CD670 @ =gBattleAnimArgs
ldrh r1, [r0, 0xE]
ldr r0, _080CD674 @ =0x0000ffff
cmp r1, r0
@@ -6179,7 +6179,7 @@ _080CD66C:
pop {r0}
bx r0
.align 2, 0
-_080CD670: .4byte gUnknown_03004B00
+_080CD670: .4byte gBattleAnimArgs
_080CD674: .4byte 0x0000ffff
_080CD678: .4byte sub_80CD67C
thumb_func_end sub_80CD654
@@ -6231,7 +6231,7 @@ _080CD6C4:
sub_80CD6CC: @ 80CD6CC
push {r4,lr}
adds r3, r0, 0
- ldr r0, _080CD6EC @ =gUnknown_03004B00
+ ldr r0, _080CD6EC @ =gBattleAnimArgs
ldrh r0, [r0]
strh r0, [r3, 0x6]
lsls r0, 16
@@ -6246,7 +6246,7 @@ sub_80CD6CC: @ 80CD6CC
strh r0, [r3, 0x22]
b _080CD742
.align 2, 0
-_080CD6EC: .4byte gUnknown_03004B00
+_080CD6EC: .4byte gBattleAnimArgs
_080CD6F0:
cmp r0, 0x2
bne _080CD70C
@@ -6329,7 +6329,7 @@ sub_80CD774: @ 80CD774
strb r0, [r2]
movs r0, 0
strh r0, [r3, 0x2E]
- ldr r0, _080CD79C @ =gUnknown_03004B00
+ ldr r0, _080CD79C @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0x1
@@ -6340,7 +6340,7 @@ sub_80CD774: @ 80CD774
beq _080CD7A6
b _080CD7C0
.align 2, 0
-_080CD79C: .4byte gUnknown_03004B00
+_080CD79C: .4byte gBattleAnimArgs
_080CD7A0:
cmp r0, 0x2
beq _080CD7B8
@@ -6785,7 +6785,7 @@ sub_80CDAC8: @ 80CDAC8
lsrs r2, r0, 24
strh r2, [r5, 0xA]
strh r4, [r5, 0xC]
- ldr r0, _080CDB18 @ =gUnknown_03004B00
+ ldr r0, _080CDB18 @ =gBattleAnimArgs
movs r3, 0
ldrsh r1, [r0, r3]
cmp r1, 0
@@ -6799,7 +6799,7 @@ sub_80CDAC8: @ 80CDAC8
_080CDB0C: .4byte gTasks
_080CDB10: .4byte gUnknown_02024BE0
_080CDB14: .4byte gUnknown_0202F7C8
-_080CDB18: .4byte gUnknown_03004B00
+_080CDB18: .4byte gBattleAnimArgs
_080CDB1C:
strh r1, [r5, 0xC]
movs r0, 0x8
@@ -7129,7 +7129,7 @@ _080CDD6C:
sub_80CDD74: @ 80CDD74
push {r4-r6,lr}
adds r5, r0, 0
- ldr r6, _080CDD88 @ =gUnknown_03004B00
+ ldr r6, _080CDD88 @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r6, r1]
cmp r0, 0
@@ -7137,7 +7137,7 @@ sub_80CDD74: @ 80CDD74
ldr r4, _080CDD8C @ =gUnknown_0202F7C8
b _080CDD92
.align 2, 0
-_080CDD88: .4byte gUnknown_03004B00
+_080CDD88: .4byte gBattleAnimArgs
_080CDD8C: .4byte gUnknown_0202F7C8
_080CDD90:
ldr r4, _080CDDD0 @ =gUnknown_0202F7C9
@@ -7219,7 +7219,7 @@ sub_80CDE24: @ 80CDE24
bl sub_8077ABC
lsls r0, 24
lsrs r0, 24
- ldr r1, _080CDE6C @ =gUnknown_03004B00
+ ldr r1, _080CDE6C @ =gBattleAnimArgs
ldr r2, _080CDE70 @ =0x0000ffd0
adds r0, r2
ldrh r1, [r1]
@@ -7244,7 +7244,7 @@ sub_80CDE24: @ 80CDE24
bx r0
.align 2, 0
_080CDE68: .4byte gUnknown_0202F7C9
-_080CDE6C: .4byte gUnknown_03004B00
+_080CDE6C: .4byte gBattleAnimArgs
_080CDE70: .4byte 0x0000ffd0
_080CDE74: .4byte sub_80CDEC0
thumb_func_end sub_80CDE24
@@ -7338,7 +7338,7 @@ _080CDF08:
sub_80CDF0C: @ 80CDF0C
push {r4-r6,lr}
adds r5, r0, 0
- ldr r6, _080CDF20 @ =gUnknown_03004B00
+ ldr r6, _080CDF20 @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r6, r1]
cmp r0, 0
@@ -7346,7 +7346,7 @@ sub_80CDF0C: @ 80CDF0C
ldr r4, _080CDF24 @ =gUnknown_0202F7C8
b _080CDF2A
.align 2, 0
-_080CDF20: .4byte gUnknown_03004B00
+_080CDF20: .4byte gBattleAnimArgs
_080CDF24: .4byte gUnknown_0202F7C8
_080CDF28:
ldr r4, _080CDF64 @ =gUnknown_0202F7C9
@@ -7369,7 +7369,7 @@ _080CDF2A:
strh r0, [r5, 0x22]
movs r0, 0
strh r0, [r5, 0x2E]
- ldr r0, _080CDF68 @ =gUnknown_03004B00
+ ldr r0, _080CDF68 @ =gBattleAnimArgs
ldrh r0, [r0, 0x6]
strh r0, [r5, 0x30]
ldr r0, _080CDF6C @ =sub_80CDF70
@@ -7379,7 +7379,7 @@ _080CDF2A:
bx r0
.align 2, 0
_080CDF64: .4byte gUnknown_0202F7C9
-_080CDF68: .4byte gUnknown_03004B00
+_080CDF68: .4byte gBattleAnimArgs
_080CDF6C: .4byte sub_80CDF70
thumb_func_end sub_80CDF0C
@@ -7556,7 +7556,7 @@ sub_80CE09C: @ 80CE09C
movs r1, 0
bl sub_8077ABC
lsls r0, 24
- ldr r5, _080CE100 @ =gUnknown_03004B00
+ ldr r5, _080CE100 @ =gBattleAnimArgs
lsrs r0, 24
ldrh r1, [r5]
adds r0, r1
@@ -7581,7 +7581,7 @@ _080CE0E0:
adds r0, 0x1
strh r0, [r6, 0x2E]
_080CE0E6:
- ldr r0, _080CE100 @ =gUnknown_03004B00
+ ldr r0, _080CE100 @ =gBattleAnimArgs
ldrh r1, [r0, 0xE]
ldr r0, _080CE104 @ =0x0000ffff
cmp r1, r0
@@ -7594,7 +7594,7 @@ _080CE0F6:
bx r0
.align 2, 0
_080CE0FC: .4byte gUnknown_0202F7C8
-_080CE100: .4byte gUnknown_03004B00
+_080CE100: .4byte gBattleAnimArgs
_080CE104: .4byte 0x0000ffff
thumb_func_end sub_80CE09C
@@ -7612,13 +7612,13 @@ sub_80CE108: @ 80CE108
ldrsh r0, [r4, r1]
cmp r0, 0x1
bne _080CE134
- ldr r1, _080CE12C @ =gUnknown_03004B00
+ ldr r1, _080CE12C @ =gBattleAnimArgs
ldr r0, _080CE130 @ =0x0000ffff
strh r0, [r1, 0xE]
b _080CE16C
.align 2, 0
_080CE128: .4byte gTasks
-_080CE12C: .4byte gUnknown_03004B00
+_080CE12C: .4byte gBattleAnimArgs
_080CE130: .4byte 0x0000ffff
_080CE134:
cmp r0, 0x2
@@ -7673,7 +7673,7 @@ sub_80CE17C: @ 80CE17C
movs r1, 0x40
orrs r0, r1
strb r0, [r2]
- ldr r0, _080CE1A4 @ =gUnknown_03004B00
+ ldr r0, _080CE1A4 @ =gBattleAnimArgs
ldrh r0, [r0, 0x4]
strh r0, [r4, 0x2E]
ldr r0, _080CE1A8 @ =sub_80CE1AC
@@ -7682,7 +7682,7 @@ sub_80CE17C: @ 80CE17C
pop {r0}
bx r0
.align 2, 0
-_080CE1A4: .4byte gUnknown_03004B00
+_080CE1A4: .4byte gBattleAnimArgs
_080CE1A8: .4byte sub_80CE1AC
thumb_func_end sub_80CE17C
@@ -7789,7 +7789,7 @@ unref_sub_80CE260: @ 80CE260
ldrb r0, [r0]
cmp r4, r0
bcs _080CE2BC
- ldr r6, _080CE2CC @ =gUnknown_03004B00
+ ldr r6, _080CE2CC @ =gBattleAnimArgs
ldr r5, _080CE2D0 @ =gUnknown_03004340
_080CE274:
movs r1, 0
@@ -7834,7 +7834,7 @@ _080CE2BC:
bx r0
.align 2, 0
_080CE2C8: .4byte gUnknown_02024A68
-_080CE2CC: .4byte gUnknown_03004B00
+_080CE2CC: .4byte gBattleAnimArgs
_080CE2D0: .4byte gUnknown_03004340
thumb_func_end unref_sub_80CE260
@@ -7881,7 +7881,7 @@ sub_80CE30C: @ 80CE30C
movs r0, 0x28
b _080CE32A
_080CE322:
- ldr r0, _080CE34C @ =gUnknown_03004B00
+ ldr r0, _080CE34C @ =gBattleAnimArgs
ldrh r1, [r0]
strh r1, [r4, 0x20]
ldrh r0, [r0, 0x2]
@@ -7903,7 +7903,7 @@ _080CE32A:
pop {r0}
bx r0
.align 2, 0
-_080CE34C: .4byte gUnknown_03004B00
+_080CE34C: .4byte gBattleAnimArgs
_080CE350: .4byte sub_80CE354
thumb_func_end sub_80CE30C
@@ -7931,7 +7931,7 @@ sub_80CE36C: @ 80CE36C
movs r1, 0x2
bl sub_8077ABC
lsls r0, 24
- ldr r2, _080CE3A8 @ =gUnknown_03004B00
+ ldr r2, _080CE3A8 @ =gBattleAnimArgs
lsrs r0, 24
ldrh r1, [r2]
adds r0, r1
@@ -7952,7 +7952,7 @@ sub_80CE36C: @ 80CE36C
bx r0
.align 2, 0
_080CE3A4: .4byte gUnknown_0202F7C8
-_080CE3A8: .4byte gUnknown_03004B00
+_080CE3A8: .4byte gBattleAnimArgs
_080CE3AC: .4byte sub_80CE3B0
thumb_func_end sub_80CE36C
@@ -8320,7 +8320,7 @@ _080CE66C: .4byte gPaletteFade
sub_80CE670: @ 80CE670
push {r4-r6,lr}
adds r5, r0, 0
- ldr r6, _080CE6F4 @ =gUnknown_03004B00
+ ldr r6, _080CE6F4 @ =gBattleAnimArgs
movs r1, 0x4
ldrsh r0, [r6, r1]
cmp r0, 0x1
@@ -8383,7 +8383,7 @@ _080CE68E:
ldr r0, _080CE6FC @ =0xffffec00
b _080CE726
.align 2, 0
-_080CE6F4: .4byte gUnknown_03004B00
+_080CE6F4: .4byte gBattleAnimArgs
_080CE6F8: .4byte gUnknown_0202F7C9
_080CE6FC: .4byte 0xffffec00
_080CE700:
@@ -8923,7 +8923,7 @@ sub_80CEB0C: @ 80CEB0C
sub sp, 0x4
adds r5, r0, 0
bl sub_8078650
- ldr r4, _080CEB64 @ =gUnknown_03004B00
+ ldr r4, _080CEB64 @ =gBattleAnimArgs
ldrb r1, [r4]
adds r0, r5, 0
bl StartSpriteAnim
@@ -8961,7 +8961,7 @@ _080CEB48:
movs r3, 0x28
b _080CEB86
.align 2, 0
-_080CEB64: .4byte gUnknown_03004B00
+_080CEB64: .4byte gBattleAnimArgs
_080CEB68: .4byte gUnknown_083D712C
_080CEB6C:
ldr r4, _080CEBBC @ =gUnknown_0202F7C9
@@ -9172,7 +9172,7 @@ sub_80CECE8: @ 80CECE8
lsrs r0, 24
cmp r0, 0x1
bne _080CED06
- ldr r1, _080CED70 @ =gUnknown_03004B00
+ ldr r1, _080CED70 @ =gBattleAnimArgs
movs r2, 0x2
ldrsh r0, [r1, r2]
negs r0, r0
@@ -9182,7 +9182,7 @@ _080CED06:
movs r1, 0x2
bl sub_8077ABC
lsls r0, 24
- ldr r4, _080CED70 @ =gUnknown_03004B00
+ ldr r4, _080CED70 @ =gBattleAnimArgs
lsrs r0, 24
ldrh r1, [r4, 0x2]
adds r0, r1
@@ -9226,7 +9226,7 @@ _080CED06:
bx r0
.align 2, 0
_080CED6C: .4byte gUnknown_0202F7C8
-_080CED70: .4byte gUnknown_03004B00
+_080CED70: .4byte gBattleAnimArgs
_080CED74: .4byte sub_80CED78
thumb_func_end sub_80CECE8
@@ -9297,7 +9297,7 @@ _080CEDEA:
sub_80CEDF0: @ 80CEDF0
push {r4-r6,lr}
adds r5, r0, 0
- ldr r0, _080CEE10 @ =gUnknown_03004B00
+ ldr r0, _080CEE10 @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0x1
@@ -9312,7 +9312,7 @@ sub_80CEDF0: @ 80CEDF0
movs r6, 0x10
b _080CEE16
.align 2, 0
-_080CEE10: .4byte gUnknown_03004B00
+_080CEE10: .4byte gBattleAnimArgs
_080CEE14:
ldr r6, _080CEE50 @ =0x0000fff0
_080CEE16:
@@ -9356,7 +9356,7 @@ sub_80CEE60: @ 80CEE60
ldrh r0, [r4, 0x22]
adds r0, 0x8
strh r0, [r4, 0x22]
- ldr r5, _080CEED8 @ =gUnknown_03004B00
+ ldr r5, _080CEED8 @ =gBattleAnimArgs
ldrb r1, [r5, 0x2]
adds r0, r4, 0
bl StartSpriteAnim
@@ -9409,7 +9409,7 @@ _080CEEAC:
pop {r0}
bx r0
.align 2, 0
-_080CEED8: .4byte gUnknown_03004B00
+_080CEED8: .4byte gBattleAnimArgs
_080CEEDC: .4byte gUnknown_083D712C
_080CEEE0: .4byte 0x0000ffe0
_080CEEE4: .4byte sub_80CEEE8
@@ -9514,7 +9514,7 @@ _080CEF90:
sub_80CEF9C: @ 80CEF9C
push {r4,r5,lr}
adds r5, r0, 0
- ldr r0, _080CEFB0 @ =gUnknown_03004B00
+ ldr r0, _080CEFB0 @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
@@ -9522,7 +9522,7 @@ sub_80CEF9C: @ 80CEF9C
ldr r0, _080CEFB4 @ =gUnknown_0202F7C8
b _080CEFBA
.align 2, 0
-_080CEFB0: .4byte gUnknown_03004B00
+_080CEFB0: .4byte gBattleAnimArgs
_080CEFB4: .4byte gUnknown_0202F7C8
_080CEFB8:
ldr r0, _080CEFF8 @ =gUnknown_0202F7C9
@@ -9538,7 +9538,7 @@ _080CEFBA:
negs r1, r0
orrs r1, r0
lsrs r1, 31
- ldr r0, _080CEFFC @ =gUnknown_03004B00
+ ldr r0, _080CEFFC @ =gBattleAnimArgs
ldrh r0, [r0, 0x2]
strh r0, [r5, 0x2E]
adds r0, r1, 0x2
@@ -9555,7 +9555,7 @@ _080CEFBA:
bx r0
.align 2, 0
_080CEFF8: .4byte gUnknown_0202F7C9
-_080CEFFC: .4byte gUnknown_03004B00
+_080CEFFC: .4byte gBattleAnimArgs
_080CF000: .4byte sub_80CF008
_080CF004: .4byte sub_8078600
thumb_func_end sub_80CEF9C
@@ -9593,7 +9593,7 @@ _080CF03C: .4byte sub_8078600
sub_80CF040: @ 80CF040
push {r4,lr}
adds r4, r0, 0
- ldr r0, _080CF054 @ =gUnknown_03004B00
+ ldr r0, _080CF054 @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
@@ -9601,7 +9601,7 @@ sub_80CF040: @ 80CF040
ldr r0, _080CF058 @ =gUnknown_0202F7C8
b _080CF05E
.align 2, 0
-_080CF054: .4byte gUnknown_03004B00
+_080CF054: .4byte gBattleAnimArgs
_080CF058: .4byte gUnknown_0202F7C8
_080CF05C:
ldr r0, _080CF07C @ =gUnknown_0202F7C9
@@ -9657,7 +9657,7 @@ _080CF0B8: .4byte sub_80785E4
sub_80CF0BC: @ 80CF0BC
push {r4-r6,lr}
adds r4, r0, 0
- ldr r0, _080CF0D0 @ =gUnknown_03004B00
+ ldr r0, _080CF0D0 @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
@@ -9665,7 +9665,7 @@ sub_80CF0BC: @ 80CF0BC
ldr r0, _080CF0D4 @ =gUnknown_0202F7C8
b _080CF0DA
.align 2, 0
-_080CF0D0: .4byte gUnknown_03004B00
+_080CF0D0: .4byte gBattleAnimArgs
_080CF0D4: .4byte gUnknown_0202F7C8
_080CF0D8:
ldr r0, _080CF12C @ =gUnknown_0202F7C9
@@ -9803,7 +9803,7 @@ _080CF1C4: .4byte gSineTable
sub_80CF1C8: @ 80CF1C8
push {r4,r5,lr}
adds r5, r0, 0
- ldr r0, _080CF1DC @ =gUnknown_03004B00
+ ldr r0, _080CF1DC @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
@@ -9811,7 +9811,7 @@ sub_80CF1C8: @ 80CF1C8
ldr r0, _080CF1E0 @ =gUnknown_0202F7C8
b _080CF1E6
.align 2, 0
-_080CF1DC: .4byte gUnknown_03004B00
+_080CF1DC: .4byte gBattleAnimArgs
_080CF1E0: .4byte gUnknown_0202F7C8
_080CF1E4:
ldr r0, _080CF208 @ =gUnknown_0202F7C9
@@ -9903,7 +9903,7 @@ sub_80CF280: @ 80CF280
push {r4,r5,lr}
adds r4, r0, 0
bl sub_8078650
- ldr r5, _080CF2C4 @ =gUnknown_03004B00
+ ldr r5, _080CF2C4 @ =gBattleAnimArgs
movs r0, 0
ldrsh r1, [r5, r0]
adds r0, r4, 0
@@ -9931,7 +9931,7 @@ sub_80CF280: @ 80CF280
pop {r0}
bx r0
.align 2, 0
-_080CF2C4: .4byte gUnknown_03004B00
+_080CF2C4: .4byte gBattleAnimArgs
_080CF2C8: .4byte move_anim_8074EE0
_080CF2CC: .4byte sub_8078278
thumb_func_end sub_80CF280
@@ -9940,7 +9940,7 @@ _080CF2CC: .4byte sub_8078278
sub_80CF2D0: @ 80CF2D0
push {r4,lr}
adds r4, r0, 0
- ldr r0, _080CF2E4 @ =gUnknown_03004B00
+ ldr r0, _080CF2E4 @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
@@ -9948,7 +9948,7 @@ sub_80CF2D0: @ 80CF2D0
ldr r0, _080CF2E8 @ =gUnknown_0202F7C8
b _080CF2EE
.align 2, 0
-_080CF2E4: .4byte gUnknown_03004B00
+_080CF2E4: .4byte gBattleAnimArgs
_080CF2E8: .4byte gUnknown_0202F7C8
_080CF2EC:
ldr r0, _080CF308 @ =gUnknown_0202F7C9
@@ -10098,7 +10098,7 @@ sub_80CF3C4: @ 80CF3C4
lsls r0, 24
cmp r0, 0
beq _080CF41C
- ldr r0, _080CF418 @ =gUnknown_03004B00
+ ldr r0, _080CF418 @ =gBattleAnimArgs
ldrh r1, [r5, 0x20]
ldrh r2, [r0]
subs r1, r2
@@ -10109,9 +10109,9 @@ sub_80CF3C4: @ 80CF3C4
_080CF40C: .4byte gUnknown_0202F7C8
_080CF410: .4byte gUnknown_02024BE0
_080CF414: .4byte gUnknown_0202F7C9
-_080CF418: .4byte gUnknown_03004B00
+_080CF418: .4byte gBattleAnimArgs
_080CF41C:
- ldr r1, _080CF450 @ =gUnknown_03004B00
+ ldr r1, _080CF450 @ =gBattleAnimArgs
ldrh r0, [r1]
ldrh r2, [r5, 0x20]
adds r0, r2
@@ -10138,7 +10138,7 @@ _080CF426:
pop {r0}
bx r0
.align 2, 0
-_080CF450: .4byte gUnknown_03004B00
+_080CF450: .4byte gBattleAnimArgs
_080CF454: .4byte sub_80CF374
thumb_func_end sub_80CF3C4
@@ -10148,7 +10148,7 @@ sub_80CF458: @ 80CF458
adds r4, r0, 0
movs r1, 0x1
bl sub_80787B0
- ldr r1, _080CF484 @ =gUnknown_03004B00
+ ldr r1, _080CF484 @ =gBattleAnimArgs
ldrh r0, [r1, 0x4]
strh r0, [r4, 0x2E]
ldrh r0, [r1, 0x6]
@@ -10164,7 +10164,7 @@ sub_80CF458: @ 80CF458
pop {r0}
bx r0
.align 2, 0
-_080CF484: .4byte gUnknown_03004B00
+_080CF484: .4byte gBattleAnimArgs
_080CF488: .4byte sub_80782D8
_080CF48C: .4byte sub_80CF490
thumb_func_end sub_80CF458
@@ -10373,7 +10373,7 @@ sub_80CF610: @ 80CF610
push {r4,r5,lr}
adds r4, r0, 0
bl sub_8078650
- ldr r5, _080CF658 @ =gUnknown_03004B00
+ ldr r5, _080CF658 @ =gBattleAnimArgs
movs r0, 0
ldrsh r1, [r5, r0]
adds r0, r4, 0
@@ -10403,7 +10403,7 @@ sub_80CF610: @ 80CF610
strb r1, [r2]
b _080CF674
.align 2, 0
-_080CF658: .4byte gUnknown_03004B00
+_080CF658: .4byte gBattleAnimArgs
_080CF65C: .4byte gUnknown_0202F7C8
_080CF660:
movs r1, 0x4
@@ -10481,13 +10481,13 @@ sub_80CF6DC: @ 80CF6DC
lsls r0, 24
cmp r0, 0
beq _080CF700
- ldr r1, _080CF6FC @ =gUnknown_03004B00
+ ldr r1, _080CF6FC @ =gBattleAnimArgs
ldrh r0, [r1, 0x4]
negs r0, r0
strh r0, [r1, 0x4]
b _080CF722
.align 2, 0
-_080CF6FC: .4byte gUnknown_03004B00
+_080CF6FC: .4byte gBattleAnimArgs
_080CF700:
ldr r0, _080CF7C8 @ =gUnknown_0202F7C8
ldrb r0, [r0]
@@ -10495,7 +10495,7 @@ _080CF700:
lsls r0, 24
cmp r0, 0
beq _080CF722
- ldr r1, _080CF7CC @ =gUnknown_03004B00
+ ldr r1, _080CF7CC @ =gBattleAnimArgs
ldrh r0, [r1, 0x4]
negs r0, r0
strh r0, [r1, 0x4]
@@ -10514,7 +10514,7 @@ _080CF722:
movs r1, 0x2
bl sub_8077ABC
lsls r0, 24
- ldr r6, _080CF7CC @ =gUnknown_03004B00
+ ldr r6, _080CF7CC @ =gBattleAnimArgs
lsrs r0, 24
ldrh r1, [r6, 0x4]
adds r0, r1
@@ -10584,7 +10584,7 @@ _080CF794:
bx r0
.align 2, 0
_080CF7C8: .4byte gUnknown_0202F7C8
-_080CF7CC: .4byte gUnknown_03004B00
+_080CF7CC: .4byte gBattleAnimArgs
_080CF7D0: .4byte gUnknown_0202F7C9
_080CF7D4: .4byte 0xffffa000
_080CF7D8: .4byte sub_8078B34
@@ -11043,7 +11043,7 @@ sub_80CFB04: @ 80CFB04
adds r0, r1
movs r1, 0x2
strh r1, [r0, 0x10]
- ldr r3, _080CFB64 @ =gUnknown_03004B00
+ ldr r3, _080CFB64 @ =gBattleAnimArgs
ldrh r0, [r3]
negs r0, r0
strh r0, [r3]
@@ -11060,7 +11060,7 @@ sub_80CFB04: @ 80CFB04
b _080CFBCA
.align 2, 0
_080CFB60: .4byte gTasks
-_080CFB64: .4byte gUnknown_03004B00
+_080CFB64: .4byte gBattleAnimArgs
_080CFB68:
movs r0, 0x1
orrs r0, r1
@@ -11084,7 +11084,7 @@ _080CFB70:
lsls r0, 3
adds r0, r1
strh r3, [r0, 0x10]
- ldr r2, _080CFBC0 @ =gUnknown_03004B00
+ ldr r2, _080CFBC0 @ =gBattleAnimArgs
ldrh r0, [r2]
negs r0, r0
strh r0, [r2]
@@ -11104,7 +11104,7 @@ _080CFB70:
_080CFBB4: .4byte gUnknown_02024A72
_080CFBB8: .4byte gUnknown_0202F7C9
_080CFBBC: .4byte gTasks
-_080CFBC0: .4byte gUnknown_03004B00
+_080CFBC0: .4byte gBattleAnimArgs
_080CFBC4:
movs r0, 0x1
orrs r0, r1
@@ -11131,7 +11131,7 @@ _080CFBCA:
lsrs r0, 24
strh r0, [r4, 0x1C]
mov r9, r0
- ldr r0, _080CFC2C @ =gUnknown_020239F8
+ ldr r0, _080CFC2C @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x1
ands r0, r1
@@ -11154,7 +11154,7 @@ _080CFBCA:
.align 2, 0
_080CFC24: .4byte gUnknown_0202F7C8
_080CFC28: .4byte gTasks
-_080CFC2C: .4byte gUnknown_020239F8
+_080CFC2C: .4byte gBattleTypeFlags
_080CFC30: .4byte gUnknown_0202F7C9
_080CFC34:
mov r5, sp
@@ -11180,7 +11180,7 @@ _080CFC56:
lsls r1, 3
adds r1, r0
mov r2, sp
- ldr r3, _080CFC98 @ =gUnknown_03004B00
+ ldr r3, _080CFC98 @ =gBattleAnimArgs
ldrh r0, [r3]
ldrh r2, [r2]
adds r0, r2
@@ -11205,7 +11205,7 @@ _080CFC56:
.align 2, 0
_080CFC90: .4byte gUnknown_0202F7C9
_080CFC94: .4byte gTasks
-_080CFC98: .4byte gUnknown_03004B00
+_080CFC98: .4byte gBattleAnimArgs
_080CFC9C:
subs r0, r1, r2
_080CFC9E:
@@ -11213,7 +11213,7 @@ _080CFC9E:
lsrs r0, 16
lsls r4, r0, 16
asrs r4, 16
- ldr r5, _080CFD14 @ =gUnknown_03004B00
+ ldr r5, _080CFD14 @ =gBattleAnimArgs
ldrh r1, [r5, 0x4]
movs r0, 0x2
negs r0, r0
@@ -11263,7 +11263,7 @@ _080CFC9E:
strh r1, [r6, 0x18]
b _080CFD3C
.align 2, 0
-_080CFD14: .4byte gUnknown_03004B00
+_080CFD14: .4byte gBattleAnimArgs
_080CFD18: .4byte gTasks
_080CFD1C:
subs r4, r1
@@ -11286,7 +11286,7 @@ _080CFD3C:
adds r0, r3, r7
lsls r0, 3
adds r5, r0, r1
- ldr r4, _080CFD80 @ =gUnknown_03004B00
+ ldr r4, _080CFD80 @ =gBattleAnimArgs
ldrh r0, [r4, 0x6]
strh r0, [r5, 0xE]
ldrh r1, [r4, 0x8]
@@ -11314,7 +11314,7 @@ _080CFD3C:
b _080CFDC4
.align 2, 0
_080CFD7C: .4byte gTasks
-_080CFD80: .4byte gUnknown_03004B00
+_080CFD80: .4byte gBattleAnimArgs
_080CFD84: .4byte gUnknown_0202F7C9
_080CFD88: .4byte 0x0000ffc0
_080CFD8C:
@@ -11476,7 +11476,7 @@ sub_80CFE9C: @ 80CFE9C
movs r1, 0x3
bl sub_8077ABC
lsls r0, 24
- ldr r4, _080CFF40 @ =gUnknown_03004B00
+ ldr r4, _080CFF40 @ =gBattleAnimArgs
lsrs r0, 24
ldrh r1, [r4, 0x6]
adds r0, r1
@@ -11537,7 +11537,7 @@ _080CFEE0:
bx r0
.align 2, 0
_080CFF3C: .4byte gUnknown_0202F7C9
-_080CFF40: .4byte gUnknown_03004B00
+_080CFF40: .4byte gBattleAnimArgs
_080CFF44: .4byte gUnknown_0202F7C8
_080CFF48: .4byte sub_8078C00
_080CFF4C: .4byte move_anim_8072740
@@ -11791,7 +11791,7 @@ sub_80D0118: @ 80D0118
adds r0, 0x10
strh r0, [r4, 0x22]
_080D0136:
- ldr r1, _080D016C @ =gUnknown_03004B00
+ ldr r1, _080D016C @ =gBattleAnimArgs
ldrh r0, [r1, 0x8]
strh r0, [r4, 0x2E]
ldrh r0, [r1, 0x4]
@@ -11815,7 +11815,7 @@ _080D0136:
bx r0
.align 2, 0
_080D0168: .4byte gUnknown_0202F7C8
-_080D016C: .4byte gUnknown_03004B00
+_080D016C: .4byte gBattleAnimArgs
_080D0170: .4byte sub_8078114
_080D0174: .4byte move_anim_8072740
thumb_func_end sub_80D0118
@@ -11831,7 +11831,7 @@ sub_80D0178: @ 80D0178
movs r0, 0x10
mov r8, r0
ldr r6, _080D01F8 @ =0x0000fff0
- ldr r0, _080D01FC @ =gUnknown_03004B00
+ ldr r0, _080D01FC @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
@@ -11884,7 +11884,7 @@ _080D01A4:
.align 2, 0
_080D01F4: .4byte 0x0000ffe0
_080D01F8: .4byte 0x0000fff0
-_080D01FC: .4byte gUnknown_03004B00
+_080D01FC: .4byte gBattleAnimArgs
_080D0200: .4byte gUnknown_0202F7C9
_080D0204: .4byte sub_8078B34
_080D0208: .4byte sub_80D020C
@@ -11920,7 +11920,7 @@ sub_80D0228: @ 80D0228
movs r2, 0x10
mov r9, r2
ldr r6, _080D02C0 @ =0x0000fff0
- ldr r7, _080D02C4 @ =gUnknown_03004B00
+ ldr r7, _080D02C4 @ =gBattleAnimArgs
ldrh r1, [r7]
movs r2, 0
ldrsh r0, [r7, r2]
@@ -11983,7 +11983,7 @@ _080D025C:
.align 2, 0
_080D02BC: .4byte 0x0000ffe0
_080D02C0: .4byte 0x0000fff0
-_080D02C4: .4byte gUnknown_03004B00
+_080D02C4: .4byte gBattleAnimArgs
_080D02C8: .4byte gUnknown_0202F7C9
_080D02CC: .4byte sub_80D02D0
thumb_func_end sub_80D0228
@@ -12580,7 +12580,7 @@ sub_80D074C: @ 80D074C
lsls r0, 3
ldr r1, _080D0770 @ =gTasks
adds r4, r0, r1
- ldr r5, _080D0774 @ =gUnknown_03004B00
+ ldr r5, _080D0774 @ =gBattleAnimArgs
movs r1, 0x2
ldrsh r0, [r5, r1]
cmp r0, 0
@@ -12590,7 +12590,7 @@ sub_80D074C: @ 80D074C
b _080D079E
.align 2, 0
_080D0770: .4byte gTasks
-_080D0774: .4byte gUnknown_03004B00
+_080D0774: .4byte gBattleAnimArgs
_080D0778:
ldrb r0, [r5]
bl obj_id_for_side_relative_to_move
@@ -12887,7 +12887,7 @@ _080D09BC: .4byte sub_8078394
sub_80D09C0: @ 80D09C0
push {r4-r6,lr}
adds r6, r0, 0
- ldr r0, _080D09D4 @ =gUnknown_03004B00
+ ldr r0, _080D09D4 @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
@@ -12895,7 +12895,7 @@ sub_80D09C0: @ 80D09C0
ldr r0, _080D09D8 @ =gUnknown_0202F7C8
b _080D09DE
.align 2, 0
-_080D09D4: .4byte gUnknown_03004B00
+_080D09D4: .4byte gBattleAnimArgs
_080D09D8: .4byte gUnknown_0202F7C8
_080D09DC:
ldr r0, _080D0A3C @ =gUnknown_0202F7C9
@@ -12907,7 +12907,7 @@ _080D09DE:
lsrs r0, 24
cmp r0, 0x1
bne _080D09F8
- ldr r1, _080D0A40 @ =gUnknown_03004B00
+ ldr r1, _080D0A40 @ =gBattleAnimArgs
movs r2, 0x2
ldrsh r0, [r1, r2]
negs r0, r0
@@ -12917,7 +12917,7 @@ _080D09F8:
movs r1, 0x2
bl sub_8077ABC
lsls r0, 24
- ldr r4, _080D0A40 @ =gUnknown_03004B00
+ ldr r4, _080D0A40 @ =gBattleAnimArgs
lsrs r0, 24
ldrh r1, [r4, 0x2]
adds r0, r1
@@ -12947,7 +12947,7 @@ _080D0A2A:
bx r0
.align 2, 0
_080D0A3C: .4byte gUnknown_0202F7C9
-_080D0A40: .4byte gUnknown_03004B00
+_080D0A40: .4byte gBattleAnimArgs
_080D0A44: .4byte move_anim_8074EE0
_080D0A48: .4byte sub_80785E4
thumb_func_end sub_80D09C0
@@ -13702,7 +13702,7 @@ sub_80D0FD8: @ 80D0FD8
mov r1, sp
adds r1, 0x2
strh r5, [r1]
- ldr r0, _080D0FFC @ =gUnknown_03004B00
+ ldr r0, _080D0FFC @ =gBattleAnimArgs
movs r3, 0x4
ldrsh r2, [r0, r3]
adds r7, r1, 0
@@ -13712,7 +13712,7 @@ sub_80D0FD8: @ 80D0FD8
ldr r0, _080D1000 @ =gUnknown_0202F7C8
b _080D1006
.align 2, 0
-_080D0FFC: .4byte gUnknown_03004B00
+_080D0FFC: .4byte gBattleAnimArgs
_080D1000: .4byte gUnknown_0202F7C8
_080D1004:
ldr r0, _080D1040 @ =gUnknown_0202F7C9
@@ -13722,7 +13722,7 @@ _080D1006:
movs r0, 0x1
adds r4, r0, 0
eors r4, r1
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _080D107E
@@ -13757,7 +13757,7 @@ _080D1048:
lsls r0, 24
cmp r0, 0
beq _080D1074
- ldr r2, _080D1070 @ =gUnknown_03004B00
+ ldr r2, _080D1070 @ =gBattleAnimArgs
mov r0, sp
ldrh r1, [r0]
subs r1, r4
@@ -13767,9 +13767,9 @@ _080D1048:
strh r0, [r2]
b _080D107E
.align 2, 0
-_080D1070: .4byte gUnknown_03004B00
+_080D1070: .4byte gBattleAnimArgs
_080D1074:
- ldr r1, _080D1090 @ =gUnknown_03004B00
+ ldr r1, _080D1090 @ =gBattleAnimArgs
mov r0, sp
ldrh r0, [r0]
subs r0, r4
@@ -13784,7 +13784,7 @@ _080D107E:
pop {r0}
bx r0
.align 2, 0
-_080D1090: .4byte gUnknown_03004B00
+_080D1090: .4byte gBattleAnimArgs
_080D1094: .4byte sub_80793C4
thumb_func_end sub_80D0FD8
@@ -13821,7 +13821,7 @@ sub_80D10B8: @ 80D10B8
mov r1, sp
adds r1, 0x2
strh r6, [r1]
- ldr r0, _080D10E4 @ =gUnknown_03004B00
+ ldr r0, _080D10E4 @ =gBattleAnimArgs
movs r2, 0xA
ldrsh r0, [r0, r2]
cmp r0, 0
@@ -13831,7 +13831,7 @@ sub_80D10B8: @ 80D10B8
ldr r0, _080D10EC @ =gUnknown_0202F7C9
b _080D10F6
.align 2, 0
-_080D10E4: .4byte gUnknown_03004B00
+_080D10E4: .4byte gBattleAnimArgs
_080D10E8: .4byte gUnknown_0202F7C8
_080D10EC: .4byte gUnknown_0202F7C9
_080D10F0:
@@ -13841,7 +13841,7 @@ _080D10F0:
_080D10F6:
ldrb r0, [r0]
mov r8, r0
- ldr r0, _080D1118 @ =gUnknown_03004B00
+ ldr r0, _080D1118 @ =gBattleAnimArgs
movs r3, 0xC
ldrsh r0, [r0, r3]
cmp r0, 0
@@ -13854,7 +13854,7 @@ _080D10F6:
.align 2, 0
_080D1110: .4byte gUnknown_0202F7C9
_080D1114: .4byte gUnknown_0202F7C8
-_080D1118: .4byte gUnknown_03004B00
+_080D1118: .4byte gBattleAnimArgs
_080D111C:
movs r2, 0x2
mov r10, r2
@@ -13870,7 +13870,7 @@ _080D1124:
mov r1, r10
bl sub_8077ABC
lsls r0, 24
- ldr r1, _080D1164 @ =gUnknown_03004B00
+ ldr r1, _080D1164 @ =gBattleAnimArgs
lsrs r0, 24
ldrh r1, [r1]
adds r0, r1
@@ -13890,7 +13890,7 @@ _080D1124:
adds r0, r4, r0
b _080D120A
.align 2, 0
-_080D1164: .4byte gUnknown_03004B00
+_080D1164: .4byte gBattleAnimArgs
_080D1168: .4byte gSprites
_080D116C: .4byte gUnknown_02024BE0
_080D1170:
@@ -13907,7 +13907,7 @@ _080D1180:
bl sub_8077ABC
lsls r0, 24
lsrs r0, 24
- ldr r1, _080D11EC @ =gUnknown_03004B00
+ ldr r1, _080D11EC @ =gBattleAnimArgs
ldrh r1, [r1]
subs r0, r1
lsls r0, 16
@@ -13955,7 +13955,7 @@ _080D1180:
adds r0, 0x1
b _080D121A
.align 2, 0
-_080D11EC: .4byte gUnknown_03004B00
+_080D11EC: .4byte gBattleAnimArgs
_080D11F0: .4byte gMain
_080D11F4: .4byte 0x0000043d
_080D11F8: .4byte gSprites
@@ -13985,7 +13985,7 @@ _080D121A:
ldr r1, [sp, 0x4]
bl sub_8077ABC
lsls r0, 24
- ldr r4, _080D1270 @ =gUnknown_03004B00
+ ldr r4, _080D1270 @ =gBattleAnimArgs
lsrs r0, 24
ldrh r1, [r4, 0x2]
adds r0, r1
@@ -14016,7 +14016,7 @@ _080D121A:
.align 2, 0
_080D1268: .4byte gSprites
_080D126C: .4byte gUnknown_02024BE0
-_080D1270: .4byte gUnknown_03004B00
+_080D1270: .4byte gBattleAnimArgs
_080D1274: .4byte gMain
_080D1278: .4byte 0x0000043d
_080D127C:
@@ -14042,7 +14042,7 @@ _080D129C:
beq _080D12C0
mov r3, sp
mov r2, sp
- ldr r1, _080D12BC @ =gUnknown_03004B00
+ ldr r1, _080D12BC @ =gBattleAnimArgs
ldrh r0, [r1, 0x6]
ldrh r2, [r2]
adds r0, r2
@@ -14050,11 +14050,11 @@ _080D129C:
adds r2, r1, 0
b _080D12CE
.align 2, 0
-_080D12BC: .4byte gUnknown_03004B00
+_080D12BC: .4byte gBattleAnimArgs
_080D12C0:
mov r3, sp
mov r0, sp
- ldr r2, _080D1310 @ =gUnknown_03004B00
+ ldr r2, _080D1310 @ =gBattleAnimArgs
ldrh r0, [r0]
ldrh r1, [r2, 0x6]
subs r0, r1
@@ -14092,7 +14092,7 @@ _080D12CE:
pop {r0}
bx r0
.align 2, 0
-_080D1310: .4byte gUnknown_03004B00
+_080D1310: .4byte gBattleAnimArgs
_080D1314: .4byte sub_80D1098
thumb_func_end sub_80D10B8
@@ -14110,7 +14110,7 @@ sub_80D1318: @ 80D1318
ldr r1, _080D135C @ =0x01010000
adds r0, r1
lsrs r0, 16
- ldr r1, _080D1360 @ =gUnknown_03004B00
+ ldr r1, _080D1360 @ =gBattleAnimArgs
ldrb r2, [r1, 0xA]
ldrh r3, [r1, 0x8]
movs r1, 0xF
@@ -14129,7 +14129,7 @@ _080D133E:
.align 2, 0
_080D1358: .4byte 0x000027db
_080D135C: .4byte 0x01010000
-_080D1360: .4byte gUnknown_03004B00
+_080D1360: .4byte gBattleAnimArgs
_080D1364: .4byte sub_80793C4
thumb_func_end sub_80D1318
@@ -14152,7 +14152,7 @@ _080D1384:
lsls r0, 2
strh r0, [r4, 0x2E]
strh r1, [r4, 0x30]
- ldr r0, _080D13A4 @ =gUnknown_03004B00
+ ldr r0, _080D13A4 @ =gBattleAnimArgs
ldrh r0, [r0, 0x4]
strh r0, [r4, 0x3C]
ldr r0, _080D13A8 @ =sub_80D13AC
@@ -14163,7 +14163,7 @@ _080D1384:
.align 2, 0
_080D139C: .4byte gUnknown_0202F7C8
_080D13A0: .4byte 0x0000ff60
-_080D13A4: .4byte gUnknown_03004B00
+_080D13A4: .4byte gBattleAnimArgs
_080D13A8: .4byte sub_80D13AC
thumb_func_end sub_80D1368
@@ -14391,7 +14391,7 @@ _080D1548: .4byte sub_80D154C
sub_80D154C: @ 80D154C
push {lr}
adds r3, r0, 0
- ldr r0, _080D1574 @ =gUnknown_03004B00
+ ldr r0, _080D1574 @ =gBattleAnimArgs
ldrh r1, [r0, 0xE]
ldr r0, _080D1578 @ =0x0000ffff
cmp r1, r0
@@ -14409,7 +14409,7 @@ sub_80D154C: @ 80D154C
ldr r0, _080D157C @ =sub_80D158C
b _080D1582
.align 2, 0
-_080D1574: .4byte gUnknown_03004B00
+_080D1574: .4byte gBattleAnimArgs
_080D1578: .4byte 0x0000ffff
_080D157C: .4byte sub_80D158C
_080D1580:
@@ -15299,12 +15299,12 @@ sub_80D1C08: @ 80D1C08
lsls r0, 24
cmp r0, 0
beq _080D1C28
- ldr r1, _080D1C74 @ =gUnknown_03004B00
+ ldr r1, _080D1C74 @ =gBattleAnimArgs
ldrh r0, [r1, 0x4]
negs r0, r0
strh r0, [r1, 0x4]
_080D1C28:
- ldr r4, _080D1C74 @ =gUnknown_03004B00
+ ldr r4, _080D1C74 @ =gBattleAnimArgs
ldrh r0, [r4, 0x8]
strh r0, [r5, 0x2E]
ldrb r0, [r6]
@@ -15337,7 +15337,7 @@ _080D1C28:
bx r0
.align 2, 0
_080D1C70: .4byte gUnknown_0202F7C8
-_080D1C74: .4byte gUnknown_03004B00
+_080D1C74: .4byte gBattleAnimArgs
_080D1C78: .4byte sub_8078B34
_080D1C7C: .4byte move_anim_8072740
thumb_func_end sub_80D1C08
@@ -15776,7 +15776,7 @@ sub_80D1FDC: @ 80D1FDC
ldrsh r0, [r4, r1]
cmp r0, 0
bne _080D2000
- ldr r1, _080D1FFC @ =gUnknown_03004B00
+ ldr r1, _080D1FFC @ =gBattleAnimArgs
ldrh r0, [r1]
strh r0, [r4, 0x30]
ldrh r0, [r1, 0x2]
@@ -15785,7 +15785,7 @@ sub_80D1FDC: @ 80D1FDC
strh r0, [r4, 0x2E]
b _080D205C
.align 2, 0
-_080D1FFC: .4byte gUnknown_03004B00
+_080D1FFC: .4byte gBattleAnimArgs
_080D2000:
ldrh r0, [r4, 0x30]
ldrh r2, [r4, 0x36]
@@ -15841,7 +15841,7 @@ _080D205C:
thumb_func_start sub_80D2064
sub_80D2064: @ 80D2064
push {lr}
- ldr r2, _080D2088 @ =gUnknown_03004B00
+ ldr r2, _080D2088 @ =gBattleAnimArgs
ldrh r1, [r2]
strh r1, [r0, 0x20]
movs r1, 0xA0
@@ -15857,7 +15857,7 @@ sub_80D2064: @ 80D2064
pop {r0}
bx r0
.align 2, 0
-_080D2088: .4byte gUnknown_03004B00
+_080D2088: .4byte gBattleAnimArgs
_080D208C: .4byte sub_80782D8
_080D2090: .4byte sub_80D2094
thumb_func_end sub_80D2064
@@ -16640,7 +16640,7 @@ sub_80D26A4: @ 80D26A4
movs r1, 0x80
orrs r0, r1
strb r0, [r2]
- ldr r1, _080D26FC @ =gUnknown_03004B00
+ ldr r1, _080D26FC @ =gBattleAnimArgs
ldrh r0, [r1]
strh r0, [r4, 0x2E]
ldrh r0, [r1, 0x2]
@@ -16659,7 +16659,7 @@ sub_80D26A4: @ 80D26A4
bx r0
.align 2, 0
_080D26F8: .4byte gUnknown_0202F7C8
-_080D26FC: .4byte gUnknown_03004B00
+_080D26FC: .4byte gBattleAnimArgs
_080D2700: .4byte sub_80D2704
thumb_func_end sub_80D26A4
@@ -16759,7 +16759,7 @@ _080D2790:
movs r0, 0x1
strh r0, [r4, 0x38]
_080D27C0:
- ldr r0, _080D27D8 @ =gUnknown_03004B00
+ ldr r0, _080D27D8 @ =gBattleAnimArgs
ldrh r1, [r0, 0xE]
ldr r0, _080D27DC @ =0x0000ffff
cmp r1, r0
@@ -16771,7 +16771,7 @@ _080D27D0:
pop {r0}
bx r0
.align 2, 0
-_080D27D8: .4byte gUnknown_03004B00
+_080D27D8: .4byte gBattleAnimArgs
_080D27DC: .4byte 0x0000ffff
thumb_func_end sub_80D2704
@@ -16792,7 +16792,7 @@ sub_80D27E0: @ 80D27E0
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x22]
- ldr r4, _080D282C @ =gUnknown_03004B00
+ ldr r4, _080D282C @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r4, r1]
movs r1, 0xA
@@ -16810,7 +16810,7 @@ sub_80D27E0: @ 80D27E0
bx r0
.align 2, 0
_080D2828: .4byte gUnknown_0202F7C8
-_080D282C: .4byte gUnknown_03004B00
+_080D282C: .4byte gBattleAnimArgs
_080D2830: .4byte sub_80D2834
thumb_func_end sub_80D27E0
@@ -16900,7 +16900,7 @@ sub_80D28AC: @ 80D28AC
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x22]
- ldr r4, _080D28FC @ =gUnknown_03004B00
+ ldr r4, _080D28FC @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r4, r1]
movs r1, 0xA
@@ -16920,7 +16920,7 @@ sub_80D28AC: @ 80D28AC
bx r0
.align 2, 0
_080D28F8: .4byte gUnknown_0202F7C8
-_080D28FC: .4byte gUnknown_03004B00
+_080D28FC: .4byte gBattleAnimArgs
_080D2900: .4byte sub_80D287C
thumb_func_end sub_80D28AC
@@ -16964,7 +16964,7 @@ sub_80D2938: @ 80D2938
ldrsh r0, [r4, r1]
cmp r0, 0
bne _080D2956
- ldr r0, _080D29C8 @ =gUnknown_03004B00
+ ldr r0, _080D29C8 @ =gBattleAnimArgs
ldrh r1, [r0]
ldrh r2, [r4, 0x20]
adds r1, r2
@@ -17032,7 +17032,7 @@ _080D29C2:
pop {r0}
bx r0
.align 2, 0
-_080D29C8: .4byte gUnknown_03004B00
+_080D29C8: .4byte gBattleAnimArgs
thumb_func_end sub_80D2938
thumb_func_start sub_80D29CC
@@ -17101,7 +17101,7 @@ sub_80D2A38: @ 80D2A38
ldrsh r0, [r4, r1]
cmp r0, 0
bne _080D2A5C
- ldr r1, _080D2A58 @ =gUnknown_03004B00
+ ldr r1, _080D2A58 @ =gBattleAnimArgs
ldrh r0, [r1]
strh r0, [r4, 0x30]
ldrh r0, [r1, 0x2]
@@ -17110,7 +17110,7 @@ sub_80D2A38: @ 80D2A38
strh r0, [r4, 0x2E]
b _080D2AB0
.align 2, 0
-_080D2A58: .4byte gUnknown_03004B00
+_080D2A58: .4byte gBattleAnimArgs
_080D2A5C:
ldrh r0, [r4, 0x30]
ldrh r2, [r4, 0x36]
@@ -17167,7 +17167,7 @@ sub_80D2ABC: @ 80D2ABC
ldrsh r0, [r4, r1]
cmp r0, 0
bne _080D2AF6
- ldr r1, _080D2BB8 @ =gUnknown_03004B00
+ ldr r1, _080D2BB8 @ =gBattleAnimArgs
ldrh r0, [r1]
ldrh r2, [r4, 0x20]
adds r0, r2
@@ -17290,7 +17290,7 @@ _080D2B80:
strb r0, [r3]
b _080D2BD2
.align 2, 0
-_080D2BB8: .4byte gUnknown_03004B00
+_080D2BB8: .4byte gBattleAnimArgs
_080D2BBC: .4byte gUnknown_0202F7C9
_080D2BC0: .4byte 0x0000ffff
_080D2BC4:
@@ -17322,7 +17322,7 @@ sub_80D2BE8: @ 80D2BE8
ldrsh r0, [r4, r1]
cmp r0, 0
bne _080D2C1C
- ldr r1, _080D2C18 @ =gUnknown_03004B00
+ ldr r1, _080D2C18 @ =gBattleAnimArgs
ldrh r0, [r1]
ldrh r2, [r4, 0x20]
adds r0, r2
@@ -17339,7 +17339,7 @@ sub_80D2BE8: @ 80D2BE8
strh r0, [r4, 0x2E]
b _080D2C30
.align 2, 0
-_080D2C18: .4byte gUnknown_03004B00
+_080D2C18: .4byte gBattleAnimArgs
_080D2C1C:
adds r0, r4, 0
adds r0, 0x3F
@@ -17360,7 +17360,7 @@ _080D2C30:
sub_80D2C38: @ 80D2C38
push {r4,r5,lr}
adds r5, r0, 0
- ldr r1, _080D2C50 @ =gUnknown_03004B00
+ ldr r1, _080D2C50 @ =gBattleAnimArgs
movs r2, 0x4
ldrsh r0, [r1, r2]
cmp r0, 0
@@ -17369,7 +17369,7 @@ sub_80D2C38: @ 80D2C38
bl move_anim_8072740
b _080D2CB8
.align 2, 0
-_080D2C50: .4byte gUnknown_03004B00
+_080D2C50: .4byte gBattleAnimArgs
_080D2C54:
movs r2, 0
ldrsh r0, [r1, r2]
@@ -17394,7 +17394,7 @@ _080D2C66:
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x22]
- ldr r0, _080D2C98 @ =gUnknown_03004B00
+ ldr r0, _080D2C98 @ =gBattleAnimArgs
movs r2, 0x2
ldrsh r1, [r0, r2]
adds r2, r0, 0
@@ -17405,7 +17405,7 @@ _080D2C66:
b _080D2CA0
.align 2, 0
_080D2C94: .4byte gUnknown_0202F7C9
-_080D2C98: .4byte gUnknown_03004B00
+_080D2C98: .4byte gBattleAnimArgs
_080D2C9C:
ldrh r0, [r5, 0x20]
subs r0, 0x20
@@ -17465,7 +17465,7 @@ sub_80D2CF8: @ 80D2CF8
adds r5, r0, 0
lsls r5, 24
lsrs r5, 24
- ldr r0, _080D2D2C @ =gUnknown_03004B00
+ ldr r0, _080D2D2C @ =gBattleAnimArgs
ldrb r0, [r0]
bl obj_id_for_side_relative_to_move
adds r1, r0, 0
@@ -17485,7 +17485,7 @@ sub_80D2CF8: @ 80D2CF8
pop {r0}
bx r0
.align 2, 0
-_080D2D2C: .4byte gUnknown_03004B00
+_080D2D2C: .4byte gBattleAnimArgs
_080D2D30: .4byte gTasks
_080D2D34: .4byte gUnknown_083D7CA8
_080D2D38: .4byte sub_80D2D3C
@@ -17519,7 +17519,7 @@ _080D2D64: .4byte gTasks
sub_80D2D68: @ 80D2D68
push {r4-r7,lr}
adds r5, r0, 0
- ldr r0, _080D2D7C @ =gUnknown_03004B00
+ ldr r0, _080D2D7C @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
@@ -17527,7 +17527,7 @@ sub_80D2D68: @ 80D2D68
ldr r0, _080D2D80 @ =gUnknown_0202F7C8
b _080D2D86
.align 2, 0
-_080D2D7C: .4byte gUnknown_03004B00
+_080D2D7C: .4byte gBattleAnimArgs
_080D2D80: .4byte gUnknown_0202F7C8
_080D2D84:
ldr r0, _080D2E1C @ =gUnknown_0202F7C9
@@ -17539,7 +17539,7 @@ _080D2D86:
lsrs r0, 24
cmp r0, 0x1
bne _080D2DA0
- ldr r1, _080D2E20 @ =gUnknown_03004B00
+ ldr r1, _080D2E20 @ =gBattleAnimArgs
movs r2, 0x2
ldrsh r0, [r1, r2]
negs r0, r0
@@ -17549,7 +17549,7 @@ _080D2DA0:
movs r1, 0x2
bl sub_8077ABC
lsls r0, 24
- ldr r7, _080D2E20 @ =gUnknown_03004B00
+ ldr r7, _080D2E20 @ =gBattleAnimArgs
lsrs r0, 24
ldrh r3, [r7, 0x2]
adds r0, r3
@@ -17608,7 +17608,7 @@ _080D2DF0:
bx r0
.align 2, 0
_080D2E1C: .4byte gUnknown_0202F7C9
-_080D2E20: .4byte gUnknown_03004B00
+_080D2E20: .4byte gBattleAnimArgs
_080D2E24: .4byte 0x000003ff
_080D2E28: .4byte 0xfffffc00
_080D2E2C: .4byte sub_80D2E30
@@ -17654,7 +17654,7 @@ sub_80D2E68: @ 80D2E68
ldrsh r0, [r4, r1]
cmp r0, 0
bne _080D2E8A
- ldr r0, _080D2EC4 @ =gUnknown_03004B00
+ ldr r0, _080D2EC4 @ =gBattleAnimArgs
ldrh r1, [r0]
movs r0, 0x78
subs r0, r1
@@ -17695,7 +17695,7 @@ _080D2EBC:
pop {r0}
bx r0
.align 2, 0
-_080D2EC4: .4byte gUnknown_03004B00
+_080D2EC4: .4byte gBattleAnimArgs
thumb_func_end sub_80D2E68
thumb_func_start sub_80D2EC8
@@ -17708,7 +17708,7 @@ sub_80D2EC8: @ 80D2EC8
bne _080D2EF6
movs r5, 0x78
strh r5, [r6, 0x20]
- ldr r4, _080D2F78 @ =gUnknown_03004B00
+ ldr r4, _080D2F78 @ =gBattleAnimArgs
movs r2, 0
ldrsh r0, [r4, r2]
lsrs r1, r0, 31
@@ -17785,7 +17785,7 @@ _080D2F72:
pop {r0}
bx r0
.align 2, 0
-_080D2F78: .4byte gUnknown_03004B00
+_080D2F78: .4byte gBattleAnimArgs
_080D2F7C: .4byte sub_80D2F80
thumb_func_end sub_80D2EC8
@@ -17876,7 +17876,7 @@ _080D300E:
sub_80D3014: @ 80D3014
push {r4,r5,lr}
adds r5, r0, 0
- ldr r0, _080D3058 @ =gUnknown_020239F8
+ ldr r0, _080D3058 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x1
ands r0, r1
@@ -17905,7 +17905,7 @@ sub_80D3014: @ 80D3014
bl StartSpriteAffineAnim
b _080D3080
.align 2, 0
-_080D3058: .4byte gUnknown_020239F8
+_080D3058: .4byte gBattleTypeFlags
_080D305C: .4byte gUnknown_0202F7C8
_080D3060:
ldr r4, _080D30A0 @ =gUnknown_0202F7C8
@@ -17949,7 +17949,7 @@ sub_80D30AC: @ 80D30AC
push {lr}
lsls r0, 24
lsrs r0, 24
- ldr r3, _080D30C8 @ =gUnknown_03004B00
+ ldr r3, _080D30C8 @ =gBattleAnimArgs
ldr r1, _080D30CC @ =gUnknown_0202F7B4
ldr r1, [r1]
ldrb r2, [r1, 0x10]
@@ -17960,7 +17960,7 @@ sub_80D30AC: @ 80D30AC
pop {r0}
bx r0
.align 2, 0
-_080D30C8: .4byte gUnknown_03004B00
+_080D30C8: .4byte gBattleAnimArgs
_080D30CC: .4byte gUnknown_0202F7B4
thumb_func_end sub_80D30AC
@@ -17969,7 +17969,7 @@ update_fury_cutter_counter_copy: @ 80D30D0
push {lr}
lsls r0, 24
lsrs r0, 24
- ldr r2, _080D30E8 @ =gUnknown_03004B00
+ ldr r2, _080D30E8 @ =gBattleAnimArgs
ldr r1, _080D30EC @ =gUnknown_0202F7B4
ldr r1, [r1]
ldrb r1, [r1, 0x10]
@@ -17978,7 +17978,7 @@ update_fury_cutter_counter_copy: @ 80D30D0
pop {r0}
bx r0
.align 2, 0
-_080D30E8: .4byte gUnknown_03004B00
+_080D30E8: .4byte gBattleAnimArgs
_080D30EC: .4byte gUnknown_0202F7B4
thumb_func_end update_fury_cutter_counter_copy
@@ -17997,7 +17997,7 @@ sub_80D30F0: @ 80D30F0
ldrsh r0, [r5, r1]
cmp r0, 0
bne _080D3118
- ldr r1, _080D317C @ =gUnknown_03004B00
+ ldr r1, _080D317C @ =gBattleAnimArgs
ldrh r0, [r1]
strh r0, [r5, 0xA]
ldrh r0, [r1, 0x2]
@@ -18050,7 +18050,7 @@ _080D3172:
bx r0
.align 2, 0
_080D3178: .4byte gTasks
-_080D317C: .4byte gUnknown_03004B00
+_080D317C: .4byte gBattleAnimArgs
_080D3180: .4byte gSpriteTemplate_83D9130
thumb_func_end sub_80D30F0
@@ -18110,19 +18110,19 @@ sub_80D31C8: @ 80D31C8
bl sub_8077ABC
lsls r0, 24
lsrs r0, 24
- ldr r4, _080D31F4 @ =gUnknown_03004B00
+ ldr r4, _080D31F4 @ =gBattleAnimArgs
ldrh r1, [r4]
subs r0, r1
b _080D320A
.align 2, 0
_080D31F0: .4byte gUnknown_0202F7C8
-_080D31F4: .4byte gUnknown_03004B00
+_080D31F4: .4byte gBattleAnimArgs
_080D31F8:
ldrb r0, [r5]
movs r1, 0x2
bl sub_8077ABC
lsls r0, 24
- ldr r4, _080D32D0 @ =gUnknown_03004B00
+ ldr r4, _080D32D0 @ =gBattleAnimArgs
lsrs r0, 24
ldrh r1, [r4]
adds r0, r1
@@ -18148,12 +18148,12 @@ _080D320A:
lsls r0, 24
cmp r0, 0
beq _080D3240
- ldr r1, _080D32D0 @ =gUnknown_03004B00
+ ldr r1, _080D32D0 @ =gBattleAnimArgs
ldrh r0, [r1, 0x4]
negs r0, r0
strh r0, [r1, 0x4]
_080D3240:
- ldr r5, _080D32D0 @ =gUnknown_03004B00
+ ldr r5, _080D32D0 @ =gBattleAnimArgs
ldrh r0, [r5, 0xC]
strh r0, [r6, 0x2E]
ldrh r0, [r6, 0x20]
@@ -18176,7 +18176,7 @@ _080D3240:
adds r0, r6, 0
bl obj_translate_based_on_private_1_2_3_4
ldr r0, _080D32DC @ =SpriteCallbackDummy
- bl object_new_hidden_with_callback
+ bl CreateInvisibleSpriteWithCallback
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
@@ -18219,7 +18219,7 @@ _080D3240:
pop {r0}
bx r0
.align 2, 0
-_080D32D0: .4byte gUnknown_03004B00
+_080D32D0: .4byte gBattleAnimArgs
_080D32D4: .4byte gUnknown_0202F7C8
_080D32D8: .4byte gUnknown_0202F7C9
_080D32DC: .4byte SpriteCallbackDummy
@@ -18345,7 +18345,7 @@ sub_80D33B4: @ 80D33B4
lsls r0, 24
cmp r0, 0
beq _080D33E4
- ldr r1, _080D33E0 @ =gUnknown_03004B00
+ ldr r1, _080D33E0 @ =gBattleAnimArgs
ldrh r0, [r1, 0x4]
negs r0, r0
lsls r0, 16
@@ -18354,9 +18354,9 @@ sub_80D33B4: @ 80D33B4
b _080D33EA
.align 2, 0
_080D33DC: .4byte gUnknown_0202F7C8
-_080D33E0: .4byte gUnknown_03004B00
+_080D33E0: .4byte gBattleAnimArgs
_080D33E4:
- ldr r0, _080D3440 @ =gUnknown_03004B00
+ ldr r0, _080D3440 @ =gBattleAnimArgs
ldrh r6, [r0, 0x4]
adds r7, r0, 0
_080D33EA:
@@ -18399,7 +18399,7 @@ _080D33EA:
pop {r0}
bx r0
.align 2, 0
-_080D3440: .4byte gUnknown_03004B00
+_080D3440: .4byte gBattleAnimArgs
_080D3444: .4byte gUnknown_0202F7C9
_080D3448: .4byte sub_80D344C
thumb_func_end sub_80D33B4
@@ -18408,7 +18408,7 @@ _080D3448: .4byte sub_80D344C
sub_80D344C: @ 80D344C
push {r4,lr}
adds r4, r0, 0
- ldr r0, _080D3488 @ =gUnknown_03004B00
+ ldr r0, _080D3488 @ =gBattleAnimArgs
ldrh r1, [r0, 0xE]
ldr r0, _080D348C @ =0x0000ffff
cmp r1, r0
@@ -18435,7 +18435,7 @@ _080D3480:
pop {r0}
bx r0
.align 2, 0
-_080D3488: .4byte gUnknown_03004B00
+_080D3488: .4byte gBattleAnimArgs
_080D348C: .4byte 0x0000ffff
thumb_func_end sub_80D344C
@@ -18449,7 +18449,7 @@ sub_80D3490: @ 80D3490
adds r4, r0
lsls r4, 3
adds r4, r1
- ldr r0, _080D34C8 @ =gUnknown_03004B00
+ ldr r0, _080D34C8 @ =gBattleAnimArgs
ldrh r0, [r0]
strh r0, [r4, 0x8]
ldr r0, _080D34CC @ =0x0000279c
@@ -18467,7 +18467,7 @@ sub_80D3490: @ 80D3490
bx r0
.align 2, 0
_080D34C4: .4byte gTasks
-_080D34C8: .4byte gUnknown_03004B00
+_080D34C8: .4byte gBattleAnimArgs
_080D34CC: .4byte 0x0000279c
_080D34D0: .4byte sub_80D34D4
thumb_func_end sub_80D3490
@@ -18574,7 +18574,7 @@ sub_80D3554: @ 80D3554
lsls r0, 8
bl __divsi3
strh r0, [r5, 0x38]
- ldr r0, _080D35C0 @ =gUnknown_03004B00
+ ldr r0, _080D35C0 @ =gBattleAnimArgs
ldrh r2, [r0, 0x6]
strh r2, [r5, 0x3C]
ldrh r1, [r0, 0xE]
@@ -18591,7 +18591,7 @@ sub_80D3554: @ 80D3554
b _080D35C8
.align 2, 0
_080D35BC: .4byte gUnknown_0202F7C9
-_080D35C0: .4byte gUnknown_03004B00
+_080D35C0: .4byte gBattleAnimArgs
_080D35C4:
lsls r0, r1, 8
strh r0, [r5, 0x3A]
@@ -18661,7 +18661,7 @@ sub_80D3630: @ 80D3630
adds r1, r0
lsls r1, 3
adds r1, r2
- ldr r3, _080D3654 @ =gUnknown_03004B00
+ ldr r3, _080D3654 @ =gBattleAnimArgs
ldrh r0, [r3]
movs r2, 0
strh r0, [r1, 0x8]
@@ -18671,7 +18671,7 @@ sub_80D3630: @ 80D3630
bx lr
.align 2, 0
_080D3650: .4byte gTasks
-_080D3654: .4byte gUnknown_03004B00
+_080D3654: .4byte gBattleAnimArgs
_080D3658: .4byte sub_80D365C
thumb_func_end sub_80D3630
@@ -18680,7 +18680,7 @@ sub_80D365C: @ 80D365C
push {lr}
lsls r0, 24
lsrs r3, r0, 24
- ldr r2, _080D3690 @ =gUnknown_03004B00
+ ldr r2, _080D3690 @ =gBattleAnimArgs
ldrh r0, [r2, 0xE]
adds r0, 0x3
movs r1, 0xFF
@@ -18703,7 +18703,7 @@ _080D368A:
pop {r0}
bx r0
.align 2, 0
-_080D3690: .4byte gUnknown_03004B00
+_080D3690: .4byte gBattleAnimArgs
_080D3694: .4byte gTasks
thumb_func_end sub_80D365C
@@ -18798,7 +18798,7 @@ sub_80D3728: @ 80D3728
lsls r0, 24
cmp r4, r0
bne _080D3772
- ldr r4, _080D37F0 @ =gUnknown_03004B00
+ ldr r4, _080D37F0 @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r4, r1]
negs r0, r0
@@ -18820,7 +18820,7 @@ _080D376A:
negs r0, r0
strh r0, [r4]
_080D3772:
- ldr r5, _080D37F0 @ =gUnknown_03004B00
+ ldr r5, _080D37F0 @ =gBattleAnimArgs
movs r1, 0xA
ldrsh r0, [r5, r1]
movs r1, 0xFF
@@ -18879,7 +18879,7 @@ _080D37AA:
.align 2, 0
_080D37E8: .4byte gUnknown_0202F7C8
_080D37EC: .4byte gUnknown_0202F7C9
-_080D37F0: .4byte gUnknown_03004B00
+_080D37F0: .4byte gBattleAnimArgs
_080D37F4: .4byte sub_8078B34
_080D37F8: .4byte move_anim_8072740
thumb_func_end sub_80D3728
@@ -18890,7 +18890,7 @@ sub_80D37FC: @ 80D37FC
adds r4, r0, 0
movs r1, 0x1
bl sub_8078764
- ldr r0, _080D382C @ =gUnknown_03004B00
+ ldr r0, _080D382C @ =gBattleAnimArgs
ldrh r1, [r0, 0x8]
strh r1, [r4, 0x2E]
ldrh r0, [r0, 0x4]
@@ -18909,7 +18909,7 @@ sub_80D37FC: @ 80D37FC
pop {r0}
bx r0
.align 2, 0
-_080D382C: .4byte gUnknown_03004B00
+_080D382C: .4byte gBattleAnimArgs
_080D3830: .4byte sub_8078B34
_080D3834: .4byte move_anim_8072740
thumb_func_end sub_80D37FC
@@ -18918,7 +18918,7 @@ _080D3834: .4byte move_anim_8072740
sub_80D3838: @ 80D3838
push {r4,lr}
adds r4, r0, 0
- ldr r0, _080D3850 @ =gUnknown_03004B00
+ ldr r0, _080D3850 @ =gBattleAnimArgs
movs r1, 0x6
ldrsh r0, [r0, r1]
cmp r0, 0
@@ -18928,13 +18928,13 @@ sub_80D3838: @ 80D3838
bl sub_8078764
b _080D385C
.align 2, 0
-_080D3850: .4byte gUnknown_03004B00
+_080D3850: .4byte gBattleAnimArgs
_080D3854:
adds r0, r4, 0
movs r1, 0x1
bl sub_80787B0
_080D385C:
- ldr r0, _080D386C @ =gUnknown_03004B00
+ ldr r0, _080D386C @ =gBattleAnimArgs
ldrh r0, [r0, 0x4]
strh r0, [r4, 0x3C]
ldr r0, _080D3870 @ =sub_80D3874
@@ -18943,7 +18943,7 @@ _080D385C:
pop {r0}
bx r0
.align 2, 0
-_080D386C: .4byte gUnknown_03004B00
+_080D386C: .4byte gBattleAnimArgs
_080D3870: .4byte sub_80D3874
thumb_func_end sub_80D3838
@@ -19119,7 +19119,7 @@ _080D39CE:
ldr r0, _080D39F4 @ =gBattleAnimBackgroundImage_Surf
ldr r1, [sp]
bl LZDecompressVram
- ldr r0, _080D39F8 @ =gUnknown_03004B00
+ ldr r0, _080D39F8 @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
@@ -19134,7 +19134,7 @@ _080D39CE:
.align 2, 0
_080D39F0: .4byte gUnknown_08E70F0C
_080D39F4: .4byte gBattleAnimBackgroundImage_Surf
-_080D39F8: .4byte gUnknown_03004B00
+_080D39F8: .4byte gBattleAnimArgs
_080D39FC: .4byte gBattleAnimBackgroundPalette_Surf
_080D3A00:
ldr r0, _080D3A78 @ =gBattleAnimBackgroundImageMuddyWater_Pal
@@ -20761,7 +20761,7 @@ _080D467A:
ldrsh r0, [r4, r2]
cmp r0, 0
bne _080D46F4
- ldr r5, _080D4708 @ =gUnknown_03004B00
+ ldr r5, _080D4708 @ =gBattleAnimArgs
movs r1, 0x1
mov r8, r1
mov r2, r8
@@ -20824,7 +20824,7 @@ _080D46F4:
strh r0, [r4, 0x8]
b _080D4722
.align 2, 0
-_080D4708: .4byte gUnknown_03004B00
+_080D4708: .4byte gBattleAnimArgs
_080D470C: .4byte sub_80E1864
_080D4710: .4byte gUnknown_0202F7B2
_080D4714:
@@ -21456,7 +21456,7 @@ _080D4BEC: .4byte sub_80D4988
thumb_func_start sub_80D4BF0
sub_80D4BF0: @ 80D4BF0
- ldr r2, _080D4C10 @ =gUnknown_03004B00
+ ldr r2, _080D4C10 @ =gBattleAnimArgs
ldrh r1, [r2]
strh r1, [r0, 0x20]
ldrh r1, [r2, 0x2]
@@ -21473,7 +21473,7 @@ sub_80D4BF0: @ 80D4BF0
str r1, [r0, 0x1C]
bx lr
.align 2, 0
-_080D4C10: .4byte gUnknown_03004B00
+_080D4C10: .4byte gBattleAnimArgs
_080D4C14: .4byte sub_80D4C18
thumb_func_end sub_80D4BF0
@@ -21569,7 +21569,7 @@ sub_80D4CA4: @ 80D4CA4
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x32]
- ldr r1, _080D4CE4 @ =gUnknown_03004B00
+ ldr r1, _080D4CE4 @ =gBattleAnimArgs
ldrh r0, [r1, 0x4]
strh r0, [r4, 0x34]
ldrh r0, [r1, 0x6]
@@ -21581,7 +21581,7 @@ sub_80D4CA4: @ 80D4CA4
bx r0
.align 2, 0
_080D4CE0: .4byte gUnknown_0202F7C9
-_080D4CE4: .4byte gUnknown_03004B00
+_080D4CE4: .4byte gBattleAnimArgs
_080D4CE8: .4byte sub_80D4CEC
thumb_func_end sub_80D4CA4
@@ -21833,7 +21833,7 @@ _080D4EBA:
sub_80D4ED8: @ 80D4ED8
push {r4,lr}
adds r4, r0, 0
- ldr r0, _080D4F0C @ =gUnknown_03004B00
+ ldr r0, _080D4F0C @ =gBattleAnimArgs
ldrh r0, [r0]
strh r0, [r4, 0x2E]
movs r0, 0x3C
@@ -21856,7 +21856,7 @@ sub_80D4ED8: @ 80D4ED8
pop {r0}
bx r0
.align 2, 0
-_080D4F0C: .4byte gUnknown_03004B00
+_080D4F0C: .4byte gBattleAnimArgs
_080D4F10: .4byte move_anim_8072740
_080D4F14: .4byte sub_8078174
thumb_func_end sub_80D4ED8
@@ -21865,7 +21865,7 @@ _080D4F14: .4byte sub_8078174
sub_80D4F18: @ 80D4F18
push {r4,r5,lr}
adds r4, r0, 0
- ldr r5, _080D4F50 @ =gUnknown_03004B00
+ ldr r5, _080D4F50 @ =gBattleAnimArgs
movs r0, 0
ldrsh r1, [r5, r0]
adds r0, r4, 0
@@ -21889,7 +21889,7 @@ sub_80D4F18: @ 80D4F18
pop {r0}
bx r0
.align 2, 0
-_080D4F50: .4byte gUnknown_03004B00
+_080D4F50: .4byte gBattleAnimArgs
_080D4F54: .4byte sub_8078394
_080D4F58: .4byte move_anim_8072740
thumb_func_end sub_80D4F18
@@ -21905,7 +21905,7 @@ sub_80D4F5C: @ 80D4F5C
lsls r0, 24
cmp r0, 0
beq _080D4F98
- ldr r2, _080D4F94 @ =gUnknown_03004B00
+ ldr r2, _080D4F94 @ =gBattleAnimArgs
ldrh r0, [r4, 0x20]
ldrh r1, [r2]
subs r0, r1
@@ -21921,9 +21921,9 @@ sub_80D4F5C: @ 80D4F5C
b _080D4FAE
.align 2, 0
_080D4F90: .4byte gUnknown_0202F7C8
-_080D4F94: .4byte gUnknown_03004B00
+_080D4F94: .4byte gBattleAnimArgs
_080D4F98:
- ldr r1, _080D4FC4 @ =gUnknown_03004B00
+ ldr r1, _080D4FC4 @ =gBattleAnimArgs
ldrh r0, [r1]
ldrh r2, [r4, 0x20]
adds r0, r2
@@ -21947,7 +21947,7 @@ _080D4FAE:
pop {r0}
bx r0
.align 2, 0
-_080D4FC4: .4byte gUnknown_03004B00
+_080D4FC4: .4byte gBattleAnimArgs
_080D4FC8: .4byte sub_80D5038
thumb_func_end sub_80D4F5C
@@ -21961,7 +21961,7 @@ sub_80D4FCC: @ 80D4FCC
lsls r0, 24
cmp r0, 0
beq _080D5000
- ldr r2, _080D4FFC @ =gUnknown_03004B00
+ ldr r2, _080D4FFC @ =gBattleAnimArgs
ldrh r0, [r4, 0x20]
ldrh r1, [r2]
subs r0, r1
@@ -21976,9 +21976,9 @@ sub_80D4FCC: @ 80D4FCC
b _080D5018
.align 2, 0
_080D4FF8: .4byte gUnknown_0202F7C8
-_080D4FFC: .4byte gUnknown_03004B00
+_080D4FFC: .4byte gBattleAnimArgs
_080D5000:
- ldr r1, _080D5030 @ =gUnknown_03004B00
+ ldr r1, _080D5030 @ =gBattleAnimArgs
ldrh r0, [r1]
ldrh r2, [r4, 0x20]
adds r0, r2
@@ -22003,7 +22003,7 @@ _080D5018:
pop {r0}
bx r0
.align 2, 0
-_080D5030: .4byte gUnknown_03004B00
+_080D5030: .4byte gBattleAnimArgs
_080D5034: .4byte sub_80D5038
thumb_func_end sub_80D4FCC
@@ -22053,7 +22053,7 @@ sub_80D5074: @ 80D5074
lsls r0, 24
cmp r0, 0
beq _080D50A0
- ldr r0, _080D509C @ =gUnknown_03004B00
+ ldr r0, _080D509C @ =gBattleAnimArgs
ldrh r1, [r4, 0x20]
ldrh r2, [r0]
subs r1, r2
@@ -22061,9 +22061,9 @@ sub_80D5074: @ 80D5074
b _080D50B2
.align 2, 0
_080D5098: .4byte gUnknown_0202F7C8
-_080D509C: .4byte gUnknown_03004B00
+_080D509C: .4byte gBattleAnimArgs
_080D50A0:
- ldr r0, _080D50E0 @ =gUnknown_03004B00
+ ldr r0, _080D50E0 @ =gBattleAnimArgs
ldrh r1, [r0]
ldrh r2, [r4, 0x20]
adds r1, r2
@@ -22096,7 +22096,7 @@ _080D50B2:
pop {r0}
bx r0
.align 2, 0
-_080D50E0: .4byte gUnknown_03004B00
+_080D50E0: .4byte gBattleAnimArgs
_080D50E4: .4byte sub_80D50E8
thumb_func_end sub_80D5074
@@ -22232,7 +22232,7 @@ sub_80D51A8: @ 80D51A8
cmp r1, r0
bne _080D51EE
_080D51E6:
- ldr r1, _080D5208 @ =gUnknown_03004B00
+ ldr r1, _080D5208 @ =gBattleAnimArgs
ldrh r0, [r1, 0x4]
negs r0, r0
strh r0, [r1, 0x4]
@@ -22247,13 +22247,13 @@ _080D51EE:
.align 2, 0
_080D5200: .4byte gUnknown_0202F7C8
_080D5204: .4byte gUnknown_0202F7C9
-_080D5208: .4byte gUnknown_03004B00
+_080D5208: .4byte gBattleAnimArgs
_080D520C: .4byte sub_8079534
thumb_func_end sub_80D51A8
thumb_func_start sub_80D5210
sub_80D5210: @ 80D5210
- ldr r2, _080D5224 @ =gUnknown_03004B00
+ ldr r2, _080D5224 @ =gBattleAnimArgs
ldrh r1, [r2]
negs r1, r1
strh r1, [r2]
@@ -22264,7 +22264,7 @@ sub_80D5210: @ 80D5210
str r1, [r0, 0x1C]
bx lr
.align 2, 0
-_080D5224: .4byte gUnknown_03004B00
+_080D5224: .4byte gBattleAnimArgs
_080D5228: .4byte sub_8079534
thumb_func_end sub_80D5210
@@ -22274,7 +22274,7 @@ sub_80D522C: @ 80D522C
adds r4, r0, 0
movs r1, 0x1
bl sub_80787B0
- ldr r0, _080D524C @ =gUnknown_03004B00
+ ldr r0, _080D524C @ =gBattleAnimArgs
ldrh r0, [r0, 0x4]
movs r1, 0
strh r0, [r4, 0x3C]
@@ -22285,7 +22285,7 @@ sub_80D522C: @ 80D522C
pop {r0}
bx r0
.align 2, 0
-_080D524C: .4byte gUnknown_03004B00
+_080D524C: .4byte gBattleAnimArgs
_080D5250: .4byte sub_80D5254
thumb_func_end sub_80D522C
@@ -22440,7 +22440,7 @@ sub_80D5348: @ 80D5348
sub_80D5374: @ 80D5374
push {r4,lr}
adds r4, r0, 0
- ldr r1, _080D53A8 @ =gUnknown_03004B00
+ ldr r1, _080D53A8 @ =gBattleAnimArgs
ldrh r0, [r1]
ldrh r2, [r4, 0x20]
adds r0, r2
@@ -22464,7 +22464,7 @@ sub_80D5374: @ 80D5374
pop {r0}
bx r0
.align 2, 0
-_080D53A8: .4byte gUnknown_03004B00
+_080D53A8: .4byte gBattleAnimArgs
_080D53AC: .4byte move_anim_8072740
_080D53B0: .4byte sub_8078364
thumb_func_end sub_80D5374
@@ -22475,7 +22475,7 @@ sub_80D53B4: @ 80D53B4
adds r4, r0, 0
movs r1, 0x1
bl sub_80787B0
- ldr r1, _080D53E8 @ =gUnknown_03004B00
+ ldr r1, _080D53E8 @ =gBattleAnimArgs
ldrh r0, [r1, 0x4]
strh r0, [r4, 0x30]
ldrh r0, [r1, 0x6]
@@ -22495,7 +22495,7 @@ sub_80D53B4: @ 80D53B4
pop {r0}
bx r0
.align 2, 0
-_080D53E8: .4byte gUnknown_03004B00
+_080D53E8: .4byte gBattleAnimArgs
_080D53EC: .4byte sub_80782D8
_080D53F0: .4byte sub_80D53F4
thumb_func_end sub_80D53B4
@@ -23313,7 +23313,7 @@ _080D5A1C:
thumb_func_start sub_80D5A20
sub_80D5A20: @ 80D5A20
push {r4,r5,lr}
- ldr r3, _080D5A64 @ =gUnknown_03004B00
+ ldr r3, _080D5A64 @ =gBattleAnimArgs
ldrh r1, [r3]
movs r2, 0
strh r1, [r0, 0x20]
@@ -23346,7 +23346,7 @@ sub_80D5A20: @ 80D5A20
pop {r0}
bx r0
.align 2, 0
-_080D5A64: .4byte gUnknown_03004B00
+_080D5A64: .4byte gBattleAnimArgs
_080D5A68: .4byte 0x000003ff
_080D5A6C: .4byte 0xfffffc00
_080D5A70: .4byte sub_80D5A74
@@ -23460,7 +23460,7 @@ _080D5B28:
adds r0, r5, 0
movs r1, 0
bl sub_80787B0
- ldr r4, _080D5B50 @ =gUnknown_03004B00
+ ldr r4, _080D5B50 @ =gBattleAnimArgs
ldrb r1, [r4, 0x4]
adds r0, r5, 0
bl StartSpriteAnim
@@ -23475,7 +23475,7 @@ _080D5B28:
movs r0, 0x4
b _080D5B5A
.align 2, 0
-_080D5B50: .4byte gUnknown_03004B00
+_080D5B50: .4byte gBattleAnimArgs
_080D5B54: .4byte gUnknown_0202F7C8
_080D5B58:
ldr r0, _080D5B78 @ =0x0000fffc
@@ -23668,7 +23668,7 @@ sub_80D5CC0: @ 80D5CC0
ldrsh r0, [r4, r2]
cmp r0, 0
bne _080D5CD8
- ldr r0, _080D5D4C @ =gUnknown_03004B00
+ ldr r0, _080D5D4C @ =gBattleAnimArgs
ldrh r0, [r0]
strh r0, [r4, 0x30]
adds r0, r1, 0x1
@@ -23729,7 +23729,7 @@ _080D5CD8:
strb r0, [r4, 0x5]
b _080D5DA0
.align 2, 0
-_080D5D4C: .4byte gUnknown_03004B00
+_080D5D4C: .4byte gBattleAnimArgs
_080D5D50: .4byte gMain
_080D5D54: .4byte 0x0000043d
_080D5D58: .4byte gUnknown_0202F7C9
@@ -24173,7 +24173,7 @@ sub_80D6080: @ 80D6080
mov r0, sp
ldrb r0, [r0, 0x8]
lsls r0, 4
- ldr r1, _080D60B0 @ =gUnknown_03004B00
+ ldr r1, _080D60B0 @ =gBattleAnimArgs
ldrb r2, [r1]
ldrh r3, [r1, 0x2]
movs r1, 0x10
@@ -24185,7 +24185,7 @@ sub_80D6080: @ 80D6080
pop {r0}
bx r0
.align 2, 0
-_080D60B0: .4byte gUnknown_03004B00
+_080D60B0: .4byte gBattleAnimArgs
thumb_func_end sub_80D6080
thumb_func_start sub_80D60B4
@@ -24205,7 +24205,7 @@ sub_80D60B4: @ 80D60B4
movs r3, 0x8
ldrsh r0, [r2, r3]
mov r9, r1
- ldr r4, _080D6110 @ =gUnknown_03004B00
+ ldr r4, _080D6110 @ =gBattleAnimArgs
mov r8, r4
cmp r0, 0
bne _080D60EA
@@ -24236,7 +24236,7 @@ _080D60EA:
b _080D6126
.align 2, 0
_080D610C: .4byte gTasks
-_080D6110: .4byte gUnknown_03004B00
+_080D6110: .4byte gBattleAnimArgs
_080D6114: .4byte gUnknown_02024BE0
_080D6118: .4byte gUnknown_0202F7C9
_080D611C: .4byte gUnknown_083D9794
@@ -24337,7 +24337,7 @@ sub_80D61C8: @ 80D61C8
lsls r0, 24
cmp r0, 0
beq _080D61F0
- ldr r0, _080D61EC @ =gUnknown_03004B00
+ ldr r0, _080D61EC @ =gBattleAnimArgs
ldrh r1, [r4, 0x20]
ldrh r2, [r0]
subs r1, r2
@@ -24345,9 +24345,9 @@ sub_80D61C8: @ 80D61C8
b _080D61FC
.align 2, 0
_080D61E8: .4byte gUnknown_0202F7C8
-_080D61EC: .4byte gUnknown_03004B00
+_080D61EC: .4byte gBattleAnimArgs
_080D61F0:
- ldr r1, _080D6210 @ =gUnknown_03004B00
+ ldr r1, _080D6210 @ =gBattleAnimArgs
ldrh r0, [r1]
ldrh r2, [r4, 0x20]
adds r0, r2
@@ -24364,7 +24364,7 @@ _080D61FC:
pop {r0}
bx r0
.align 2, 0
-_080D6210: .4byte gUnknown_03004B00
+_080D6210: .4byte gBattleAnimArgs
_080D6214: .4byte sub_80D6218
thumb_func_end sub_80D61C8
@@ -24395,7 +24395,7 @@ sub_80D6234: @ 80D6234
lsls r0, 24
cmp r0, 0
beq _080D625C
- ldr r0, _080D6258 @ =gUnknown_03004B00
+ ldr r0, _080D6258 @ =gBattleAnimArgs
ldrh r1, [r4, 0x20]
ldrh r0, [r0]
subs r1, r0
@@ -24403,9 +24403,9 @@ sub_80D6234: @ 80D6234
b _080D6266
.align 2, 0
_080D6254: .4byte gUnknown_0202F7C8
-_080D6258: .4byte gUnknown_03004B00
+_080D6258: .4byte gBattleAnimArgs
_080D625C:
- ldr r0, _080D6270 @ =gUnknown_03004B00
+ ldr r0, _080D6270 @ =gBattleAnimArgs
ldrh r0, [r0]
ldrh r1, [r4, 0x20]
adds r0, r1
@@ -24417,7 +24417,7 @@ _080D6266:
pop {r0}
bx r0
.align 2, 0
-_080D6270: .4byte gUnknown_03004B00
+_080D6270: .4byte gBattleAnimArgs
_080D6274: .4byte sub_80D6278
thumb_func_end sub_80D6234
@@ -24461,7 +24461,7 @@ sub_80D6294: @ 80D6294
lsls r0, 24
cmp r0, 0
beq _080D62E4
- ldr r2, _080D62E0 @ =gUnknown_03004B00
+ ldr r2, _080D62E0 @ =gBattleAnimArgs
ldrh r0, [r5, 0x20]
ldrh r1, [r2]
subs r0, r1
@@ -24474,9 +24474,9 @@ sub_80D6294: @ 80D6294
.align 2, 0
_080D62D8: .4byte gUnknown_0202F7C9
_080D62DC: .4byte gUnknown_0202F7C8
-_080D62E0: .4byte gUnknown_03004B00
+_080D62E0: .4byte gBattleAnimArgs
_080D62E4:
- ldr r0, _080D631C @ =gUnknown_03004B00
+ ldr r0, _080D631C @ =gBattleAnimArgs
ldrh r1, [r0]
ldrh r2, [r5, 0x20]
adds r1, r2
@@ -24504,7 +24504,7 @@ _080D62F8:
pop {r0}
bx r0
.align 2, 0
-_080D631C: .4byte gUnknown_03004B00
+_080D631C: .4byte gBattleAnimArgs
_080D6320: .4byte move_anim_8074EE0
_080D6324: .4byte sub_8078114
thumb_func_end sub_80D6294
@@ -24513,7 +24513,7 @@ _080D6324: .4byte sub_8078114
sub_80D6328: @ 80D6328
push {r4-r7,lr}
adds r5, r0, 0
- ldr r0, _080D6340 @ =gUnknown_03004B00
+ ldr r0, _080D6340 @ =gBattleAnimArgs
movs r1, 0x8
ldrsh r0, [r0, r1]
cmp r0, 0x1
@@ -24524,7 +24524,7 @@ sub_80D6328: @ 80D6328
beq _080D634E
b _080D63A0
.align 2, 0
-_080D6340: .4byte gUnknown_03004B00
+_080D6340: .4byte gBattleAnimArgs
_080D6344:
cmp r0, 0x2
beq _080D6358
@@ -24575,7 +24575,7 @@ _080D63A0:
_080D63A2:
ldrb r4, [r0]
_080D63A4:
- ldr r0, _080D63C8 @ =gUnknown_03004B00
+ ldr r0, _080D63C8 @ =gBattleAnimArgs
movs r2, 0xA
ldrsh r0, [r0, r2]
cmp r0, 0
@@ -24591,7 +24591,7 @@ _080D63A4:
b _080D63DE
.align 2, 0
_080D63C4: .4byte gUnknown_0202F7C9
-_080D63C8: .4byte gUnknown_03004B00
+_080D63C8: .4byte gBattleAnimArgs
_080D63CC:
adds r0, r4, 0
movs r1, 0x2
@@ -24607,7 +24607,7 @@ _080D63DE:
lsrs r0, 24
strh r0, [r5, 0x22]
ldr r7, _080D647C @ =gSineTable
- ldr r6, _080D6480 @ =gUnknown_03004B00
+ ldr r6, _080D6480 @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r6, r1]
lsls r0, 1
@@ -24682,7 +24682,7 @@ _080D6442:
bx r0
.align 2, 0
_080D647C: .4byte gSineTable
-_080D6480: .4byte gUnknown_03004B00
+_080D6480: .4byte gBattleAnimArgs
_080D6484: .4byte gOamMatrices
_080D6488: .4byte sub_80DA48C
thumb_func_end sub_80D6328
@@ -24693,7 +24693,7 @@ sub_80D648C: @ 80D648C
adds r4, r0, 0
movs r1, 0x1
bl sub_80787B0
- ldr r5, _080D6500 @ =gUnknown_03004B00
+ ldr r5, _080D6500 @ =gBattleAnimArgs
ldrh r0, [r5, 0x6]
strh r0, [r4, 0x2E]
ldrh r0, [r4, 0x20]
@@ -24743,7 +24743,7 @@ sub_80D648C: @ 80D648C
pop {r0}
bx r0
.align 2, 0
-_080D6500: .4byte gUnknown_03004B00
+_080D6500: .4byte gBattleAnimArgs
_080D6504: .4byte gUnknown_0202F7C9
_080D6508: .4byte 0x000003ff
_080D650C: .4byte 0xfffffc00
@@ -24873,7 +24873,7 @@ sub_80D65DC: @ 80D65DC
cmp r0, 0
bne _080D6606
_080D65FE:
- ldr r1, _080D6650 @ =gUnknown_03004B00
+ ldr r1, _080D6650 @ =gBattleAnimArgs
ldrh r0, [r1, 0x2]
negs r0, r0
strh r0, [r1, 0x2]
@@ -24883,7 +24883,7 @@ _080D6606:
movs r1, 0x2
bl sub_8077ABC
lsls r0, 24
- ldr r4, _080D6650 @ =gUnknown_03004B00
+ ldr r4, _080D6650 @ =gBattleAnimArgs
lsrs r0, 24
ldrh r1, [r4, 0x2]
adds r0, r1
@@ -24910,7 +24910,7 @@ _080D6606:
_080D6644: .4byte gMain
_080D6648: .4byte 0x0000043d
_080D664C: .4byte gUnknown_0202F7C9
-_080D6650: .4byte gUnknown_03004B00
+_080D6650: .4byte gBattleAnimArgs
_080D6654: .4byte sub_80D658C
thumb_func_end sub_80D65DC
@@ -24918,7 +24918,7 @@ _080D6654: .4byte sub_80D658C
sub_80D6658: @ 80D6658
push {r4-r6,lr}
adds r5, r0, 0
- ldr r1, _080D6674 @ =gUnknown_03004B00
+ ldr r1, _080D6674 @ =gBattleAnimArgs
ldrh r0, [r1, 0x6]
strh r0, [r5, 0x2E]
movs r2, 0xE
@@ -24931,7 +24931,7 @@ sub_80D6658: @ 80D6658
ldr r0, _080D6678 @ =gUnknown_0202F7C9
b _080D667E
.align 2, 0
-_080D6674: .4byte gUnknown_03004B00
+_080D6674: .4byte gBattleAnimArgs
_080D6678: .4byte gUnknown_0202F7C9
_080D667C:
ldr r0, _080D670C @ =gUnknown_0202F7C8
@@ -24951,7 +24951,7 @@ _080D667E:
cmp r0, 0
bne _080D66A4
_080D669C:
- ldr r1, _080D6718 @ =gUnknown_03004B00
+ ldr r1, _080D6718 @ =gBattleAnimArgs
ldrh r0, [r1]
negs r0, r0
strh r0, [r1]
@@ -24960,7 +24960,7 @@ _080D66A4:
movs r1, 0x2
bl sub_8077ABC
lsls r0, 24
- ldr r4, _080D6718 @ =gUnknown_03004B00
+ ldr r4, _080D6718 @ =gBattleAnimArgs
lsrs r0, 24
ldrh r1, [r4]
adds r0, r1
@@ -25008,7 +25008,7 @@ _080D66A4:
_080D670C: .4byte gUnknown_0202F7C8
_080D6710: .4byte gMain
_080D6714: .4byte 0x0000043d
-_080D6718: .4byte gUnknown_03004B00
+_080D6718: .4byte gBattleAnimArgs
_080D671C: .4byte 0x00007fff
_080D6720: .4byte 0x000003ff
_080D6724: .4byte 0xfffffc00
@@ -25081,7 +25081,7 @@ sub_80D679C: @ 80D679C
ldrh r2, [r4, 0x4]
lsls r1, r2, 22
lsrs r1, 22
- ldr r3, _080D67D8 @ =gUnknown_03004B00
+ ldr r3, _080D67D8 @ =gBattleAnimArgs
movs r5, 0x6
ldrsh r0, [r3, r5]
lsls r0, 2
@@ -25104,7 +25104,7 @@ sub_80D679C: @ 80D679C
movs r0, 0x10
b _080D67F2
.align 2, 0
-_080D67D8: .4byte gUnknown_03004B00
+_080D67D8: .4byte gBattleAnimArgs
_080D67DC: .4byte 0x000003ff
_080D67E0: .4byte 0xfffffc00
_080D67E4:
@@ -25119,7 +25119,7 @@ _080D67F2:
orrs r1, r0
strb r1, [r4, 0x3]
_080D67F6:
- ldr r0, _080D6810 @ =gUnknown_03004B00
+ ldr r0, _080D6810 @ =gBattleAnimArgs
ldrh r0, [r0, 0x4]
strh r0, [r4, 0x2E]
ldr r0, _080D6814 @ =sub_80782D8
@@ -25131,7 +25131,7 @@ _080D67F6:
pop {r0}
bx r0
.align 2, 0
-_080D6810: .4byte gUnknown_03004B00
+_080D6810: .4byte gBattleAnimArgs
_080D6814: .4byte sub_80782D8
_080D6818: .4byte move_anim_8072740
thumb_func_end sub_80D679C
@@ -25152,7 +25152,7 @@ sub_80D681C: @ 80D681C
lsls r4, 3
adds r4, r1
lsls r0, 24
- ldr r5, _080D686C @ =gUnknown_03004B00
+ ldr r5, _080D686C @ =gBattleAnimArgs
lsrs r0, 24
ldrh r1, [r5]
adds r0, r1
@@ -25175,7 +25175,7 @@ sub_80D681C: @ 80D681C
.align 2, 0
_080D6864: .4byte gUnknown_0202F7C9
_080D6868: .4byte gTasks
-_080D686C: .4byte gUnknown_03004B00
+_080D686C: .4byte gBattleAnimArgs
_080D6870: .4byte sub_80D6874
thumb_func_end sub_80D681C
@@ -25439,7 +25439,7 @@ _080D6A66:
sub_80D6A6C: @ 80D6A6C
push {r4-r7,lr}
adds r4, r0, 0
- ldr r0, _080D6AD4 @ =gUnknown_03004B00
+ ldr r0, _080D6AD4 @ =gBattleAnimArgs
ldrh r1, [r0]
ldrh r2, [r4, 0x20]
adds r1, r2
@@ -25489,7 +25489,7 @@ sub_80D6A6C: @ 80D6A6C
pop {r0}
bx r0
.align 2, 0
-_080D6AD4: .4byte gUnknown_03004B00
+_080D6AD4: .4byte gBattleAnimArgs
_080D6AD8: .4byte gBattleAnimSpriteTemplate_83D9950
_080D6ADC: .4byte gSprites
_080D6AE0: .4byte 0x000003ff
@@ -25551,7 +25551,7 @@ sub_80D6B3C: @ 80D6B3C
lsls r1, 3
ldr r0, _080D6B5C @ =gTasks
adds r5, r1, r0
- ldr r0, _080D6B60 @ =gUnknown_03004B00
+ ldr r0, _080D6B60 @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
@@ -25560,7 +25560,7 @@ sub_80D6B3C: @ 80D6B3C
b _080D6B6A
.align 2, 0
_080D6B5C: .4byte gTasks
-_080D6B60: .4byte gUnknown_03004B00
+_080D6B60: .4byte gBattleAnimArgs
_080D6B64: .4byte gUnknown_0202F7C8
_080D6B68:
ldr r4, _080D6BAC @ =gUnknown_0202F7C9
@@ -25577,7 +25577,7 @@ _080D6B6A:
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x26]
- ldr r2, _080D6BB0 @ =gUnknown_03004B00
+ ldr r2, _080D6BB0 @ =gBattleAnimArgs
ldrh r0, [r2, 0x2]
movs r1, 0
strh r0, [r5, 0x14]
@@ -25597,7 +25597,7 @@ _080D6B6A:
bx r0
.align 2, 0
_080D6BAC: .4byte gUnknown_0202F7C9
-_080D6BB0: .4byte gUnknown_03004B00
+_080D6BB0: .4byte gBattleAnimArgs
_080D6BB4: .4byte sub_80D6BB8
thumb_func_end sub_80D6B3C
@@ -25785,7 +25785,7 @@ _080D6D14: .4byte sub_80D6CCC
sub_80D6D18: @ 80D6D18
push {r4,r5,lr}
adds r5, r0, 0
- ldr r0, _080D6D2C @ =gUnknown_03004B00
+ ldr r0, _080D6D2C @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
@@ -25793,7 +25793,7 @@ sub_80D6D18: @ 80D6D18
ldr r4, _080D6D30 @ =gUnknown_0202F7C8
b _080D6D36
.align 2, 0
-_080D6D2C: .4byte gUnknown_03004B00
+_080D6D2C: .4byte gBattleAnimArgs
_080D6D30: .4byte gUnknown_0202F7C8
_080D6D34:
ldr r4, _080D6D64 @ =gUnknown_0202F7C9
@@ -25828,7 +25828,7 @@ _080D6D6C: .4byte sub_80785E4
sub_80D6D70: @ 80D6D70
push {r4,r5,lr}
adds r5, r0, 0
- ldr r0, _080D6D84 @ =gUnknown_03004B00
+ ldr r0, _080D6D84 @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
@@ -25836,7 +25836,7 @@ sub_80D6D70: @ 80D6D70
ldr r4, _080D6D88 @ =gUnknown_0202F7C8
b _080D6D8E
.align 2, 0
-_080D6D84: .4byte gUnknown_03004B00
+_080D6D84: .4byte gBattleAnimArgs
_080D6D88: .4byte gUnknown_0202F7C8
_080D6D8C:
ldr r4, _080D6DC8 @ =gUnknown_0202F7C9
@@ -25853,7 +25853,7 @@ _080D6D8E:
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x22]
- ldr r1, _080D6DCC @ =gUnknown_03004B00
+ ldr r1, _080D6DCC @ =gBattleAnimArgs
ldrh r0, [r1, 0x2]
strh r0, [r5, 0x24]
ldrh r0, [r1, 0x4]
@@ -25868,7 +25868,7 @@ _080D6D8E:
bx r0
.align 2, 0
_080D6DC8: .4byte gUnknown_0202F7C9
-_080D6DCC: .4byte gUnknown_03004B00
+_080D6DCC: .4byte gBattleAnimArgs
_080D6DD0: .4byte move_anim_8072740
_080D6DD4: .4byte sub_8078600
thumb_func_end sub_80D6D70
@@ -26206,7 +26206,7 @@ _080D703C:
_080D7052:
movs r6, 0
strh r1, [r5, 0xA]
- ldr r0, _080D7080 @ =gUnknown_03004B00
+ ldr r0, _080D7080 @ =gBattleAnimArgs
movs r1, 0
ldrsh r2, [r0, r1]
adds r3, r0, 0
@@ -26226,7 +26226,7 @@ _080D7052:
b _080D70F0
.align 2, 0
_080D707C: .4byte gUnknown_0202F7C8
-_080D7080: .4byte gUnknown_03004B00
+_080D7080: .4byte gBattleAnimArgs
_080D7084: .4byte 0x0000fff0
_080D7088:
ldrb r0, [r4]
@@ -27146,7 +27146,7 @@ sub_80D7704: @ 80D7704
bl sub_8077ABC
lsls r0, 24
lsrs r6, r0, 24
- ldr r1, _080D781C @ =gUnknown_03004B00
+ ldr r1, _080D781C @ =gBattleAnimArgs
ldrh r0, [r1, 0x8]
strh r0, [r5, 0x2E]
ldrh r0, [r1]
@@ -27223,7 +27223,7 @@ _080D77DE:
movs r2, 0x98
lsls r2, 1
mov r12, r2
- ldr r1, _080D781C @ =gUnknown_03004B00
+ ldr r1, _080D781C @ =gBattleAnimArgs
mov r10, r1
cmp r0, r12
bhi _080D784A
@@ -27237,7 +27237,7 @@ _080D780C: .4byte 0x000003ff
_080D7810: .4byte 0xfffffc00
_080D7814: .4byte gUnknown_0202F7C9
_080D7818: .4byte gUnknown_0202F7C8
-_080D781C: .4byte gUnknown_03004B00
+_080D781C: .4byte gBattleAnimArgs
_080D7820:
lsls r1, r3, 16
asrs r1, 16
@@ -27351,7 +27351,7 @@ _080D78E6:
sub_80D78EC: @ 80D78EC
push {r4,lr}
adds r4, r0, 0
- ldr r0, _080D7920 @ =gUnknown_03004B00
+ ldr r0, _080D7920 @ =gBattleAnimArgs
ldrh r0, [r0]
strh r0, [r4, 0x2E]
movs r0, 0x3C
@@ -27374,7 +27374,7 @@ sub_80D78EC: @ 80D78EC
pop {r0}
bx r0
.align 2, 0
-_080D7920: .4byte gUnknown_03004B00
+_080D7920: .4byte gBattleAnimArgs
_080D7924: .4byte move_anim_8072740
_080D7928: .4byte sub_8078174
thumb_func_end sub_80D78EC
@@ -27398,7 +27398,7 @@ sub_80D792C: @ 80D792C
lsls r0, 24
cmp r0, 0
beq _080D796C
- ldr r0, _080D7968 @ =gUnknown_03004B00
+ ldr r0, _080D7968 @ =gBattleAnimArgs
ldrh r1, [r4, 0x32]
ldrh r0, [r0, 0x4]
subs r1, r0
@@ -27407,9 +27407,9 @@ sub_80D792C: @ 80D792C
.align 2, 0
_080D7960: .4byte gUnknown_0202F7C9
_080D7964: .4byte gUnknown_0202F7C8
-_080D7968: .4byte gUnknown_03004B00
+_080D7968: .4byte gBattleAnimArgs
_080D796C:
- ldr r0, _080D79A4 @ =gUnknown_03004B00
+ ldr r0, _080D79A4 @ =gBattleAnimArgs
ldrh r0, [r0, 0x4]
ldrh r1, [r4, 0x32]
adds r0, r1
@@ -27420,7 +27420,7 @@ _080D7976:
movs r1, 0x3
bl sub_8077ABC
lsls r0, 24
- ldr r1, _080D79A4 @ =gUnknown_03004B00
+ ldr r1, _080D79A4 @ =gBattleAnimArgs
lsrs r0, 24
ldrh r2, [r1, 0x6]
adds r0, r2
@@ -27436,7 +27436,7 @@ _080D7976:
pop {r0}
bx r0
.align 2, 0
-_080D79A4: .4byte gUnknown_03004B00
+_080D79A4: .4byte gBattleAnimArgs
_080D79A8: .4byte gUnknown_0202F7C9
_080D79AC: .4byte move_anim_8072740
_080D79B0: .4byte sub_8078B34
@@ -27446,7 +27446,7 @@ _080D79B0: .4byte sub_8078B34
sub_80D79B4: @ 80D79B4
push {r4,r5,lr}
adds r4, r0, 0
- ldr r5, _080D79CC @ =gUnknown_03004B00
+ ldr r5, _080D79CC @ =gBattleAnimArgs
movs r1, 0x4
ldrsh r0, [r5, r1]
cmp r0, 0
@@ -27456,7 +27456,7 @@ sub_80D79B4: @ 80D79B4
bl sub_8078764
b _080D7A06
.align 2, 0
-_080D79CC: .4byte gUnknown_03004B00
+_080D79CC: .4byte gBattleAnimArgs
_080D79D0:
ldr r0, _080D7A18 @ =gUnknown_0202F7C9
ldrb r0, [r0]
@@ -27540,7 +27540,7 @@ sub_80D7A64: @ 80D7A64
adds r5, r0, 0
movs r1, 0x1
bl sub_80787B0
- ldr r6, _080D7AAC @ =gUnknown_03004B00
+ ldr r6, _080D7AAC @ =gBattleAnimArgs
ldrh r0, [r6, 0x8]
strh r0, [r5, 0x2E]
ldrh r0, [r5, 0x20]
@@ -27568,7 +27568,7 @@ sub_80D7A64: @ 80D7A64
strh r0, [r5, 0x36]
b _080D7AC6
.align 2, 0
-_080D7AAC: .4byte gUnknown_03004B00
+_080D7AAC: .4byte gBattleAnimArgs
_080D7AB0: .4byte gUnknown_0202F7C9
_080D7AB4:
ldr r0, _080D7AE0 @ =gUnknown_0202F7C9
@@ -27586,7 +27586,7 @@ _080D7AC6:
lsls r0, 24
cmp r0, 0
beq _080D7AEC
- ldr r0, _080D7AE8 @ =gUnknown_03004B00
+ ldr r0, _080D7AE8 @ =gBattleAnimArgs
ldrh r1, [r5, 0x32]
ldrh r0, [r0, 0x4]
subs r1, r0
@@ -27595,9 +27595,9 @@ _080D7AC6:
.align 2, 0
_080D7AE0: .4byte gUnknown_0202F7C9
_080D7AE4: .4byte gUnknown_0202F7C8
-_080D7AE8: .4byte gUnknown_03004B00
+_080D7AE8: .4byte gBattleAnimArgs
_080D7AEC:
- ldr r0, _080D7B94 @ =gUnknown_03004B00
+ ldr r0, _080D7B94 @ =gBattleAnimArgs
ldrh r0, [r0, 0x4]
ldrh r2, [r5, 0x32]
adds r0, r2
@@ -27684,7 +27684,7 @@ _080D7B76:
pop {r0}
bx r0
.align 2, 0
-_080D7B94: .4byte gUnknown_03004B00
+_080D7B94: .4byte gBattleAnimArgs
_080D7B98: .4byte sub_8078D8C
_080D7B9C: .4byte sub_80D7BA0
thumb_func_end sub_80D7A64
@@ -27855,7 +27855,7 @@ sub_80D7CD4: @ 80D7CD4
adds r5, r0, 0
movs r1, 0x1
bl sub_80787B0
- ldr r1, _080D7D18 @ =gUnknown_03004B00
+ ldr r1, _080D7D18 @ =gBattleAnimArgs
ldrh r0, [r1, 0x8]
strh r0, [r5, 0x2E]
ldrh r0, [r5, 0x20]
@@ -27881,7 +27881,7 @@ sub_80D7CD4: @ 80D7CD4
strh r0, [r5, 0x36]
b _080D7D32
.align 2, 0
-_080D7D18: .4byte gUnknown_03004B00
+_080D7D18: .4byte gBattleAnimArgs
_080D7D1C: .4byte gUnknown_0202F7C9
_080D7D20:
ldr r0, _080D7D50 @ =gUnknown_0202F7C9
@@ -27899,7 +27899,7 @@ _080D7D32:
lsls r0, 24
cmp r0, 0
beq _080D7D5C
- ldr r0, _080D7D58 @ =gUnknown_03004B00
+ ldr r0, _080D7D58 @ =gBattleAnimArgs
ldrh r1, [r5, 0x32]
ldrh r2, [r0, 0x4]
subs r1, r2
@@ -27909,9 +27909,9 @@ _080D7D32:
.align 2, 0
_080D7D50: .4byte gUnknown_0202F7C9
_080D7D54: .4byte gUnknown_0202F7C8
-_080D7D58: .4byte gUnknown_03004B00
+_080D7D58: .4byte gBattleAnimArgs
_080D7D5C:
- ldr r1, _080D7E10 @ =gUnknown_03004B00
+ ldr r1, _080D7E10 @ =gBattleAnimArgs
ldrh r0, [r1, 0x4]
ldrh r2, [r5, 0x32]
adds r0, r2
@@ -27981,7 +27981,7 @@ _080D7DCE:
strh r0, [r5, 0x22]
strh r1, [r5, 0x26]
strh r1, [r5, 0x24]
- ldr r1, _080D7E10 @ =gUnknown_03004B00
+ ldr r1, _080D7E10 @ =gBattleAnimArgs
ldr r6, _080D7E14 @ =sub_80D7E18
mov r3, sp
adds r2, r7, 0
@@ -28004,7 +28004,7 @@ _080D7DEE:
pop {r0}
bx r0
.align 2, 0
-_080D7E10: .4byte gUnknown_03004B00
+_080D7E10: .4byte gBattleAnimArgs
_080D7E14: .4byte sub_80D7E18
thumb_func_end sub_80D7CD4
@@ -28076,7 +28076,7 @@ sub_80D7E88: @ 80D7E88
ldrsh r0, [r4, r1]
cmp r0, 0
bne _080D7EF4
- ldr r5, _080D7EA8 @ =gUnknown_03004B00
+ ldr r5, _080D7EA8 @ =gBattleAnimArgs
movs r1, 0x4
ldrsh r0, [r5, r1]
cmp r0, 0
@@ -28086,7 +28086,7 @@ sub_80D7E88: @ 80D7E88
bl sub_8078764
b _080D7EE2
.align 2, 0
-_080D7EA8: .4byte gUnknown_03004B00
+_080D7EA8: .4byte gBattleAnimArgs
_080D7EAC:
ldr r0, _080D7EEC @ =gUnknown_0202F7C9
ldrb r0, [r0]
@@ -28142,7 +28142,7 @@ _080D7F08:
sub_80D7F10: @ 80D7F10
push {r4-r6,lr}
adds r5, r0, 0
- ldr r6, _080D7F30 @ =gUnknown_03004B00
+ ldr r6, _080D7F30 @ =gBattleAnimArgs
movs r1, 0x8
ldrsh r0, [r6, r1]
cmp r0, 0
@@ -28156,7 +28156,7 @@ sub_80D7F10: @ 80D7F10
bl sub_80787B0
b _080D7F72
.align 2, 0
-_080D7F30: .4byte gUnknown_03004B00
+_080D7F30: .4byte gBattleAnimArgs
_080D7F34:
ldr r4, _080D7F5C @ =gUnknown_0202F7C8
ldrb r0, [r4]
@@ -28183,7 +28183,7 @@ _080D7F60:
adds r0, r1
_080D7F66:
strh r0, [r5, 0x20]
- ldr r0, _080D7F78 @ =gUnknown_03004B00
+ ldr r0, _080D7F78 @ =gBattleAnimArgs
ldrh r0, [r0, 0x2]
ldrh r1, [r5, 0x22]
adds r0, r1
@@ -28192,7 +28192,7 @@ _080D7F72:
ldr r0, _080D7F7C @ =gUnknown_0202F7C8
b _080D7FD0
.align 2, 0
-_080D7F78: .4byte gUnknown_03004B00
+_080D7F78: .4byte gBattleAnimArgs
_080D7F7C: .4byte gUnknown_0202F7C8
_080D7F80:
movs r1, 0xA
@@ -28229,7 +28229,7 @@ _080D7FBC:
adds r0, r1
_080D7FC2:
strh r0, [r5, 0x20]
- ldr r0, _080D7FEC @ =gUnknown_03004B00
+ ldr r0, _080D7FEC @ =gBattleAnimArgs
ldrh r0, [r0, 0x2]
ldrh r1, [r5, 0x22]
adds r0, r1
@@ -28239,12 +28239,12 @@ _080D7FCE:
_080D7FD0:
ldrb r0, [r0]
strh r0, [r5, 0x3C]
- ldr r0, _080D7FEC @ =gUnknown_03004B00
+ ldr r0, _080D7FEC @ =gBattleAnimArgs
movs r1, 0xA
ldrsh r0, [r0, r1]
cmp r0, 0
beq _080D7FE8
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
bne _080D7FF4
@@ -28252,7 +28252,7 @@ _080D7FE8:
movs r0, 0x20
b _080D7FF6
.align 2, 0
-_080D7FEC: .4byte gUnknown_03004B00
+_080D7FEC: .4byte gBattleAnimArgs
_080D7FF0: .4byte gUnknown_0202F7C9
_080D7FF4:
movs r0, 0x40
@@ -28268,7 +28268,7 @@ _080D7FF6:
adds r0, 0x8
strh r0, [r5, 0x22]
_080D800C:
- ldr r1, _080D8040 @ =gUnknown_03004B00
+ ldr r1, _080D8040 @ =gBattleAnimArgs
ldrh r0, [r1, 0x6]
strh r0, [r5, 0x2E]
ldrh r0, [r5, 0x20]
@@ -28292,7 +28292,7 @@ _080D800C:
bx r0
.align 2, 0
_080D803C: .4byte gUnknown_0202F7C9
-_080D8040: .4byte gUnknown_03004B00
+_080D8040: .4byte gBattleAnimArgs
_080D8044: .4byte sub_80D8048
thumb_func_end sub_80D7F10
@@ -29126,7 +29126,7 @@ sub_80D8700: @ 80D8700
mov r7, r8
push {r7}
adds r5, r0, 0
- ldr r6, _080D87E8 @ =gUnknown_03004B00
+ ldr r6, _080D87E8 @ =gBattleAnimArgs
ldrh r0, [r6]
strh r0, [r5, 0x2E]
ldr r0, _080D87EC @ =gUnknown_0202F7C8
@@ -29209,7 +29209,7 @@ _080D8794:
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x22]
- ldr r6, _080D87E8 @ =gUnknown_03004B00
+ ldr r6, _080D87E8 @ =gBattleAnimArgs
movs r1, 0xE
ldrsh r0, [r6, r1]
cmp r0, 0
@@ -29235,7 +29235,7 @@ _080D8794:
movs r1, 0x3
b _080D8824
.align 2, 0
-_080D87E8: .4byte gUnknown_03004B00
+_080D87E8: .4byte gBattleAnimArgs
_080D87EC: .4byte gUnknown_0202F7C8
_080D87F0: .4byte gUnknown_0202F7C9
_080D87F4: .4byte gUnknown_02024A72
@@ -30086,7 +30086,7 @@ _080D8E6A:
adds r0, r5, 0
movs r1, 0x1
bl sub_80787B0
- ldr r6, _080D8ED0 @ =gUnknown_03004B00
+ ldr r6, _080D8ED0 @ =gBattleAnimArgs
ldrh r0, [r6, 0x8]
strh r0, [r5, 0x2E]
ldr r0, _080D8ED4 @ =gUnknown_0202F7C8
@@ -30127,7 +30127,7 @@ _080D8E92:
bx r0
.align 2, 0
_080D8ECC: .4byte gUnknown_0202F7B4
-_080D8ED0: .4byte gUnknown_03004B00
+_080D8ED0: .4byte gBattleAnimArgs
_080D8ED4: .4byte gUnknown_0202F7C8
_080D8ED8: .4byte gUnknown_0202F7C9
_080D8EDC: .4byte sub_80D8EE0
@@ -30256,7 +30256,7 @@ sub_80D8FC0: @ 80D8FC0
push {lr}
lsls r0, 24
lsrs r0, 24
- ldr r1, _080D8FE8 @ =gUnknown_03004B00
+ ldr r1, _080D8FE8 @ =gBattleAnimArgs
ldrb r3, [r1]
lsls r3, 1
adds r3, r1
@@ -30273,7 +30273,7 @@ sub_80D8FC0: @ 80D8FC0
pop {r0}
bx r0
.align 2, 0
-_080D8FE8: .4byte gUnknown_03004B00
+_080D8FE8: .4byte gBattleAnimArgs
_080D8FEC: .4byte gUnknown_0202F7B4
thumb_func_end sub_80D8FC0
@@ -30281,7 +30281,7 @@ _080D8FEC: .4byte gUnknown_0202F7B4
unc_080B08A0: @ 80D8FF0
push {r4,r5,lr}
adds r4, r0, 0
- ldr r5, _080D9020 @ =gUnknown_03004B00
+ ldr r5, _080D9020 @ =gBattleAnimArgs
movs r0, 0
ldrsh r1, [r5, r0]
adds r0, r4, 0
@@ -30301,7 +30301,7 @@ unc_080B08A0: @ 80D8FF0
pop {r0}
bx r0
.align 2, 0
-_080D9020: .4byte gUnknown_03004B00
+_080D9020: .4byte gBattleAnimArgs
_080D9024: .4byte sub_80782D8
_080D9028: .4byte move_anim_8072740
thumb_func_end unc_080B08A0
@@ -30310,7 +30310,7 @@ _080D9028: .4byte move_anim_8072740
sub_80D902C: @ 80D902C
push {r4,r5,lr}
adds r5, r0, 0
- ldr r4, _080D9070 @ =gUnknown_03004B00
+ ldr r4, _080D9070 @ =gBattleAnimArgs
movs r1, 0xE
ldrsh r0, [r4, r1]
cmp r0, 0x1
@@ -30328,7 +30328,7 @@ sub_80D902C: @ 80D902C
negs r0, r0
strh r0, [r4, 0x6]
_080D9054:
- ldr r4, _080D9070 @ =gUnknown_03004B00
+ ldr r4, _080D9070 @ =gBattleAnimArgs
ldrb r1, [r4, 0xC]
adds r0, r5, 0
bl StartSpriteAnim
@@ -30340,7 +30340,7 @@ _080D9054:
pop {r0}
bx r0
.align 2, 0
-_080D9070: .4byte gUnknown_03004B00
+_080D9070: .4byte gBattleAnimArgs
_080D9074: .4byte gUnknown_0202F7C8
thumb_func_end sub_80D902C
@@ -30352,7 +30352,7 @@ sub_80D9078: @ 80D9078
lsls r0, 24
cmp r0, 0
beq _080D9094
- ldr r0, _080D90A0 @ =gUnknown_03004B00
+ ldr r0, _080D90A0 @ =gBattleAnimArgs
ldrh r1, [r0, 0x2]
negs r1, r1
strh r1, [r0, 0x2]
@@ -30366,14 +30366,14 @@ _080D9094:
pop {r0}
bx r0
.align 2, 0
-_080D90A0: .4byte gUnknown_03004B00
+_080D90A0: .4byte gBattleAnimArgs
thumb_func_end sub_80D9078
thumb_func_start sub_80D90A4
sub_80D90A4: @ 80D90A4
push {r4,r5,lr}
adds r5, r0, 0
- ldr r4, _080D90C4 @ =gUnknown_03004B00
+ ldr r4, _080D90C4 @ =gBattleAnimArgs
ldrb r1, [r4, 0x8]
bl StartSpriteAnim
movs r1, 0x6
@@ -30385,13 +30385,13 @@ sub_80D90A4: @ 80D90A4
bl sub_80787B0
b _080D90D0
.align 2, 0
-_080D90C4: .4byte gUnknown_03004B00
+_080D90C4: .4byte gBattleAnimArgs
_080D90C8:
adds r0, r5, 0
movs r1, 0x1
bl sub_8078764
_080D90D0:
- ldr r0, _080D90E8 @ =gUnknown_03004B00
+ ldr r0, _080D90E8 @ =gBattleAnimArgs
ldrh r0, [r0, 0x4]
strh r0, [r5, 0x2E]
ldr r0, _080D90EC @ =sub_80782D8
@@ -30403,7 +30403,7 @@ _080D90D0:
pop {r0}
bx r0
.align 2, 0
-_080D90E8: .4byte gUnknown_03004B00
+_080D90E8: .4byte gBattleAnimArgs
_080D90EC: .4byte sub_80782D8
_080D90F0: .4byte move_anim_8072740
thumb_func_end sub_80D90A4
@@ -30415,7 +30415,7 @@ sub_80D90F4: @ 80D90F4
mov r6, r8
push {r6,r7}
adds r5, r0, 0
- ldr r0, _080D9110 @ =gUnknown_03004B00
+ ldr r0, _080D9110 @ =gBattleAnimArgs
movs r2, 0
ldrsh r1, [r0, r2]
mov r9, r0
@@ -30424,7 +30424,7 @@ sub_80D90F4: @ 80D90F4
ldr r0, _080D9114 @ =gUnknown_0202F7C8
b _080D911A
.align 2, 0
-_080D9110: .4byte gUnknown_03004B00
+_080D9110: .4byte gBattleAnimArgs
_080D9114: .4byte gUnknown_0202F7C8
_080D9118:
ldr r0, _080D9260 @ =gUnknown_0202F7C9
@@ -30646,7 +30646,7 @@ sub_80D92D0: @ 80D92D0
bl sub_8078764
movs r0, 0x1E
strh r0, [r4, 0x2E]
- ldr r0, _080D92F0 @ =gUnknown_03004B00
+ ldr r0, _080D92F0 @ =gBattleAnimArgs
movs r1, 0x4
ldrsh r0, [r0, r1]
cmp r0, 0
@@ -30656,7 +30656,7 @@ sub_80D92D0: @ 80D92D0
strh r0, [r4, 0x32]
b _080D9306
.align 2, 0
-_080D92F0: .4byte gUnknown_03004B00
+_080D92F0: .4byte gBattleAnimArgs
_080D92F4:
ldrh r0, [r4, 0x20]
adds r0, 0x14
@@ -30744,7 +30744,7 @@ sub_80D9378: @ 80D9378
lsrs r0, 24
cmp r0, 0x1
bhi _080D93A4
- ldr r1, _080D93FC @ =gUnknown_03004B00
+ ldr r1, _080D93FC @ =gBattleAnimArgs
movs r2, 0
ldrsh r0, [r1, r2]
negs r0, r0
@@ -30759,12 +30759,12 @@ _080D93A4:
lsls r0, 24
cmp r0, 0
beq _080D93C2
- ldr r1, _080D93FC @ =gUnknown_03004B00
+ ldr r1, _080D93FC @ =gBattleAnimArgs
ldrh r0, [r1, 0x4]
negs r0, r0
strh r0, [r1, 0x4]
_080D93C2:
- ldr r4, _080D93FC @ =gUnknown_03004B00
+ ldr r4, _080D93FC @ =gBattleAnimArgs
ldrh r0, [r4, 0x6]
movs r5, 0
strh r0, [r6, 0x2E]
@@ -30791,7 +30791,7 @@ _080D93C2:
.align 2, 0
_080D93F4: .4byte gUnknown_0202F7C8
_080D93F8: .4byte gUnknown_0202F7C9
-_080D93FC: .4byte gUnknown_03004B00
+_080D93FC: .4byte gBattleAnimArgs
_080D9400: .4byte sub_80D9404
thumb_func_end sub_80D9378
@@ -30832,7 +30832,7 @@ sub_80D943C: @ 80D943C
adds r4, r0, 0
movs r1, 0x1
bl sub_8078764
- ldr r5, _080D9468 @ =gUnknown_03004B00
+ ldr r5, _080D9468 @ =gBattleAnimArgs
ldrb r1, [r5, 0x4]
adds r0, r4, 0
bl StartSpriteAnim
@@ -30847,7 +30847,7 @@ sub_80D943C: @ 80D943C
pop {r0}
bx r0
.align 2, 0
-_080D9468: .4byte gUnknown_03004B00
+_080D9468: .4byte gBattleAnimArgs
_080D946C: .4byte sub_80782D8
_080D9470: .4byte sub_80D9474
thumb_func_end sub_80D943C
@@ -30885,7 +30885,7 @@ sub_80D94A8: @ 80D94A8
adds r4, r0, 0
movs r1, 0x1
bl sub_8078764
- ldr r0, _080D94C4 @ =gUnknown_03004B00
+ ldr r0, _080D94C4 @ =gBattleAnimArgs
ldrh r0, [r0, 0x4]
strh r0, [r4, 0x2E]
ldr r0, _080D94C8 @ =sub_80D94CC
@@ -30894,7 +30894,7 @@ sub_80D94A8: @ 80D94A8
pop {r0}
bx r0
.align 2, 0
-_080D94C4: .4byte gUnknown_03004B00
+_080D94C4: .4byte gBattleAnimArgs
_080D94C8: .4byte sub_80D94CC
thumb_func_end sub_80D94A8
@@ -30968,7 +30968,7 @@ sub_80D9540: @ 80D9540
adds r0, r4, 0
movs r1, 0x1
bl sub_8078764
- ldr r1, _080D9568 @ =gUnknown_03004B00
+ ldr r1, _080D9568 @ =gBattleAnimArgs
ldrh r0, [r1, 0x4]
strh r0, [r4, 0x30]
ldrh r0, [r1, 0x6]
@@ -30978,7 +30978,7 @@ sub_80D9540: @ 80D9540
strh r0, [r4, 0x2E]
b _080D95C8
.align 2, 0
-_080D9568: .4byte gUnknown_03004B00
+_080D9568: .4byte gBattleAnimArgs
_080D956C:
ldrh r0, [r4, 0x30]
ldrh r2, [r4, 0x36]
@@ -31035,7 +31035,7 @@ _080D95C8:
sub_80D95D0: @ 80D95D0
push {r4,r5,lr}
adds r5, r0, 0
- ldr r0, _080D95E4 @ =gUnknown_03004B00
+ ldr r0, _080D95E4 @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
@@ -31043,7 +31043,7 @@ sub_80D95D0: @ 80D95D0
ldr r4, _080D95E8 @ =gUnknown_0202F7C8
b _080D95EE
.align 2, 0
-_080D95E4: .4byte gUnknown_03004B00
+_080D95E4: .4byte gBattleAnimArgs
_080D95E8: .4byte gUnknown_0202F7C8
_080D95EC:
ldr r4, _080D9634 @ =gUnknown_0202F7C9
@@ -31060,7 +31060,7 @@ _080D95EE:
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x22]
- ldr r1, _080D9638 @ =gUnknown_03004B00
+ ldr r1, _080D9638 @ =gBattleAnimArgs
ldrh r0, [r1, 0x2]
ldrh r2, [r5, 0x20]
adds r0, r2
@@ -31083,7 +31083,7 @@ _080D95EE:
bx r0
.align 2, 0
_080D9634: .4byte gUnknown_0202F7C9
-_080D9638: .4byte gUnknown_03004B00
+_080D9638: .4byte gBattleAnimArgs
_080D963C: .4byte sub_80D9640
thumb_func_end sub_80D95D0
@@ -31160,7 +31160,7 @@ _080D96B4: .4byte 0x0000fffe
sub_80D96B8: @ 80D96B8
push {r4-r6,lr}
adds r5, r0, 0
- ldr r6, _080D96DC @ =gUnknown_03004B00
+ ldr r6, _080D96DC @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r6, r1]
cmp r0, 0
@@ -31175,7 +31175,7 @@ sub_80D96B8: @ 80D96B8
adds r0, r2
b _080D96F6
.align 2, 0
-_080D96DC: .4byte gUnknown_03004B00
+_080D96DC: .4byte gBattleAnimArgs
_080D96E0: .4byte gUnknown_0202F7C8
_080D96E4:
ldr r4, _080D9740 @ =gUnknown_0202F7C9
@@ -31199,7 +31199,7 @@ _080D96F6:
ldrh r2, [r5, 0x4]
lsls r1, r2, 22
lsrs r1, 22
- ldr r3, _080D9744 @ =gUnknown_03004B00
+ ldr r3, _080D9744 @ =gBattleAnimArgs
movs r4, 0x2
ldrsh r0, [r3, r4]
lsls r0, 4
@@ -31225,7 +31225,7 @@ _080D96F6:
b _080D978A
.align 2, 0
_080D9740: .4byte gUnknown_0202F7C9
-_080D9744: .4byte gUnknown_03004B00
+_080D9744: .4byte gBattleAnimArgs
_080D9748: .4byte 0x000003ff
_080D974C: .4byte 0xfffffc00
_080D9750:
@@ -31304,7 +31304,7 @@ _080D97C8:
sub_80D97CC: @ 80D97CC
push {r4,r5,lr}
adds r5, r0, 0
- ldr r0, _080D9818 @ =gUnknown_03004B00
+ ldr r0, _080D9818 @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
@@ -31337,7 +31337,7 @@ sub_80D97CC: @ 80D97CC
ldr r0, _080D9824 @ =gUnknown_0202F7C9
b _080D9844
.align 2, 0
-_080D9818: .4byte gUnknown_03004B00
+_080D9818: .4byte gBattleAnimArgs
_080D981C: .4byte gUnknown_02024C07
_080D9820: .4byte gUnknown_0202F7C8
_080D9824: .4byte gUnknown_0202F7C9
@@ -31432,7 +31432,7 @@ _080D98D4: .4byte sub_8078BB8
sub_80D98D8: @ 80D98D8
push {r4,r5,lr}
adds r5, r0, 0
- ldr r4, _080D9924 @ =gUnknown_03004B00
+ ldr r4, _080D9924 @ =gBattleAnimArgs
ldrh r0, [r4]
strh r0, [r5, 0x20]
movs r2, 0x78
@@ -31467,7 +31467,7 @@ sub_80D98D8: @ 80D98D8
pop {r0}
bx r0
.align 2, 0
-_080D9924: .4byte gUnknown_03004B00
+_080D9924: .4byte gBattleAnimArgs
_080D9928: .4byte 0x000003ff
_080D992C: .4byte 0xfffffc00
_080D9930: .4byte sub_80D9934
@@ -31609,7 +31609,7 @@ _080D9A34:
sub_80D9A38: @ 80D9A38
push {r4,r5,lr}
adds r5, r0, 0
- ldr r0, _080D9A6C @ =gUnknown_03004B00
+ ldr r0, _080D9A6C @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
@@ -31632,7 +31632,7 @@ sub_80D9A38: @ 80D9A38
ldr r0, _080D9A78 @ =gUnknown_0202F7C8
b _080D9A82
.align 2, 0
-_080D9A6C: .4byte gUnknown_03004B00
+_080D9A6C: .4byte gBattleAnimArgs
_080D9A70: .4byte gUnknown_02024C07
_080D9A74: .4byte gUnknown_0202F7C9
_080D9A78: .4byte gUnknown_0202F7C8
@@ -31756,7 +31756,7 @@ sub_80D9B48: @ 80D9B48
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x22]
- ldr r1, _080D9BC8 @ =gUnknown_03004B00
+ ldr r1, _080D9BC8 @ =gBattleAnimArgs
ldrh r0, [r1, 0x6]
strh r0, [r5, 0x30]
ldrh r0, [r1]
@@ -31803,7 +31803,7 @@ _080D9BA6:
bx r0
.align 2, 0
_080D9BC4: .4byte gUnknown_0202F7C9
-_080D9BC8: .4byte gUnknown_03004B00
+_080D9BC8: .4byte gBattleAnimArgs
_080D9BCC: .4byte gUnknown_0202F7C4
_080D9BD0: .4byte sub_80D9B24
thumb_func_end sub_80D9B48
@@ -31812,7 +31812,7 @@ _080D9BD0: .4byte sub_80D9B24
sub_80D9BD4: @ 80D9BD4
push {r4,lr}
adds r4, r0, 0
- ldr r0, _080D9BEC @ =gUnknown_03004B00
+ ldr r0, _080D9BEC @ =gBattleAnimArgs
movs r1, 0x4
ldrsh r0, [r0, r1]
cmp r0, 0
@@ -31822,7 +31822,7 @@ sub_80D9BD4: @ 80D9BD4
bl sub_80787B0
b _080D9BF8
.align 2, 0
-_080D9BEC: .4byte gUnknown_03004B00
+_080D9BEC: .4byte gBattleAnimArgs
_080D9BF0:
adds r0, r4, 0
movs r1, 0
@@ -31916,13 +31916,13 @@ sub_80D9C80: @ 80D9C80
bne _080D9CD2
movs r0, 0
bl sub_80789D4
- ldr r0, _080D9CB4 @ =gUnknown_03004B00
+ ldr r0, _080D9CB4 @ =gBattleAnimArgs
ldrh r0, [r0]
strh r0, [r4, 0x18]
b _080D9CCA
.align 2, 0
_080D9CB0: .4byte gTasks
-_080D9CB4: .4byte gUnknown_03004B00
+_080D9CB4: .4byte gBattleAnimArgs
_080D9CB8:
ldrh r0, [r4, 0x18]
subs r0, 0x1
@@ -31993,7 +31993,7 @@ _080D9D24:
strh r1, [r4, 0x1A]
ands r0, r2
strh r0, [r4, 0x1C]
- ldr r0, _080D9D6C @ =gUnknown_03004B00
+ ldr r0, _080D9D6C @ =gBattleAnimArgs
movs r2, 0xE
ldrsh r1, [r0, r2]
movs r0, 0x1
@@ -32013,14 +32013,14 @@ _080D9D5C:
.align 2, 0
_080D9D64: .4byte gUnknown_030041B0
_080D9D68: .4byte gUnknown_030041B8
-_080D9D6C: .4byte gUnknown_03004B00
+_080D9D6C: .4byte gBattleAnimArgs
thumb_func_end sub_80D9C80
thumb_func_start sub_80D9D70
sub_80D9D70: @ 80D9D70
push {r4,r5,lr}
adds r5, r0, 0
- ldr r4, _080D9DC4 @ =gUnknown_03004B00
+ ldr r4, _080D9DC4 @ =gBattleAnimArgs
movs r1, 0x6
ldrsh r0, [r4, r1]
cmp r0, 0
@@ -32057,7 +32057,7 @@ _080D9D86:
pop {r0}
bx r0
.align 2, 0
-_080D9DC4: .4byte gUnknown_03004B00
+_080D9DC4: .4byte gBattleAnimArgs
_080D9DC8: .4byte gUnknown_0202F7C9
_080D9DCC: .4byte 0x0000ffe2
_080D9DD0: .4byte sub_80D9DD4
@@ -32084,7 +32084,7 @@ sub_80D9DF0: @ 80D9DF0
push {r4-r6,lr}
sub sp, 0x4
adds r4, r0, 0
- ldr r5, _080D9E64 @ =gUnknown_03004B00
+ ldr r5, _080D9E64 @ =gBattleAnimArgs
movs r1, 0x6
ldrsh r0, [r5, r1]
cmp r0, 0
@@ -32136,7 +32136,7 @@ _080D9E36:
pop {r0}
bx r0
.align 2, 0
-_080D9E64: .4byte gUnknown_03004B00
+_080D9E64: .4byte gBattleAnimArgs
_080D9E68: .4byte gUnknown_0202F7C9
_080D9E6C: .4byte gUnknown_0202F7C8
_080D9E70: .4byte 0x0000ffe2
@@ -32163,7 +32163,7 @@ _080D9E8C:
sub_80D9E94: @ 80D9E94
push {r4,r5,lr}
adds r4, r0, 0
- ldr r5, _080D9EE0 @ =gUnknown_03004B00
+ ldr r5, _080D9EE0 @ =gBattleAnimArgs
ldrh r0, [r5, 0x4]
strh r0, [r4, 0x2E]
ldrh r0, [r4, 0x20]
@@ -32196,7 +32196,7 @@ sub_80D9E94: @ 80D9E94
pop {r0}
bx r0
.align 2, 0
-_080D9EE0: .4byte gUnknown_03004B00
+_080D9EE0: .4byte gBattleAnimArgs
_080D9EE4: .4byte sub_80D9EE8
thumb_func_end sub_80D9E94
@@ -32243,12 +32243,12 @@ sub_80D9F14: @ 80D9F14
lsls r0, 24
cmp r0, 0
beq _080D9F40
- ldr r1, _080D9F7C @ =gUnknown_03004B00
+ ldr r1, _080D9F7C @ =gBattleAnimArgs
ldrh r0, [r1]
negs r0, r0
strh r0, [r1]
_080D9F40:
- ldr r0, _080D9F7C @ =gUnknown_03004B00
+ ldr r0, _080D9F7C @ =gBattleAnimArgs
ldrh r2, [r0]
ldrh r1, [r4, 0x20]
adds r2, r1
@@ -32275,7 +32275,7 @@ _080D9F40:
.align 2, 0
_080D9F74: .4byte gUnknown_0202F7C9
_080D9F78: .4byte gUnknown_0202F7C8
-_080D9F7C: .4byte gUnknown_03004B00
+_080D9F7C: .4byte gBattleAnimArgs
_080D9F80: .4byte sub_8078B34
_080D9F84: .4byte move_anim_8072740
thumb_func_end sub_80D9F14
@@ -32284,7 +32284,7 @@ _080D9F84: .4byte move_anim_8072740
sub_80D9F88: @ 80D9F88
push {r4,r5,lr}
adds r4, r0, 0
- ldr r5, _080D9FA0 @ =gUnknown_03004B00
+ ldr r5, _080D9FA0 @ =gBattleAnimArgs
movs r1, 0x4
ldrsh r0, [r5, r1]
cmp r0, 0
@@ -32294,7 +32294,7 @@ sub_80D9F88: @ 80D9F88
bl sub_8078764
b _080D9FDA
.align 2, 0
-_080D9FA0: .4byte gUnknown_03004B00
+_080D9FA0: .4byte gBattleAnimArgs
_080D9FA4:
ldr r0, _080D9FE4 @ =gUnknown_0202F7C9
ldrb r0, [r0]
@@ -32436,7 +32436,7 @@ sub_80DA09C: @ 80DA09C
adds r4, r0
lsls r4, 3
adds r4, r1
- ldr r1, _080DA0D0 @ =gUnknown_03004B00
+ ldr r1, _080DA0D0 @ =gBattleAnimArgs
ldrh r0, [r1, 0x2]
strh r0, [r4, 0x8]
ldrh r0, [r1]
@@ -32453,7 +32453,7 @@ sub_80DA09C: @ 80DA09C
bx r0
.align 2, 0
_080DA0CC: .4byte gTasks
-_080DA0D0: .4byte gUnknown_03004B00
+_080DA0D0: .4byte gBattleAnimArgs
_080DA0D4: .4byte 0x00002719
_080DA0D8: .4byte sub_80DA0DC
thumb_func_end sub_80DA09C
@@ -32544,12 +32544,12 @@ sub_80DA16C: @ 80DA16C
lsls r0, 24
cmp r0, 0
beq _080DA18C
- ldr r1, _080DA1DC @ =gUnknown_03004B00
+ ldr r1, _080DA1DC @ =gBattleAnimArgs
ldrh r0, [r1, 0x4]
negs r0, r0
strh r0, [r1, 0x4]
_080DA18C:
- ldr r4, _080DA1DC @ =gUnknown_03004B00
+ ldr r4, _080DA1DC @ =gBattleAnimArgs
ldrh r0, [r4, 0x8]
strh r0, [r6, 0x2E]
ldrh r0, [r6, 0x20]
@@ -32585,7 +32585,7 @@ _080DA18C:
bx r0
.align 2, 0
_080DA1D8: .4byte gUnknown_0202F7C8
-_080DA1DC: .4byte gUnknown_03004B00
+_080DA1DC: .4byte gBattleAnimArgs
_080DA1E0: .4byte gUnknown_0202F7C9
_080DA1E4: .4byte sub_80785E4
_080DA1E8: .4byte sub_80DA1EC
@@ -32617,7 +32617,7 @@ sub_80DA208: @ 80DA208
lsls r0, 24
cmp r0, 0
beq _080DA234
- ldr r1, _080DA2A8 @ =gUnknown_03004B00
+ ldr r1, _080DA2A8 @ =gBattleAnimArgs
ldrh r0, [r1]
negs r0, r0
strh r0, [r1]
@@ -32635,7 +32635,7 @@ _080DA234:
lsls r0, 24
cmp r0, 0
beq _080DA24C
- ldr r0, _080DA2A8 @ =gUnknown_03004B00
+ ldr r0, _080DA2A8 @ =gBattleAnimArgs
ldrh r1, [r0, 0x2]
negs r1, r1
strh r1, [r0, 0x2]
@@ -32653,7 +32653,7 @@ _080DA24C:
movs r1, 0x3
bl sub_8077ABC
lsls r0, 24
- ldr r2, _080DA2A8 @ =gUnknown_03004B00
+ ldr r2, _080DA2A8 @ =gBattleAnimArgs
ldrh r1, [r2]
ldrh r3, [r5, 0x20]
adds r1, r3
@@ -32684,7 +32684,7 @@ _080DA24C:
b _080DA2C2
.align 2, 0
_080DA2A4: .4byte gUnknown_0202F7C8
-_080DA2A8: .4byte gUnknown_03004B00
+_080DA2A8: .4byte gBattleAnimArgs
_080DA2AC: .4byte gUnknown_0202F7C9
_080DA2B0:
ldr r0, _080DA2F0 @ =gUnknown_0202F7C9
@@ -32696,7 +32696,7 @@ _080DA2B0:
movs r1, 0x1
bl sub_807A3FC
_080DA2C2:
- ldr r4, _080DA2F4 @ =gUnknown_03004B00
+ ldr r4, _080DA2F4 @ =gBattleAnimArgs
ldrh r0, [r4, 0x4]
ldrh r1, [r5, 0x32]
adds r0, r1
@@ -32718,7 +32718,7 @@ _080DA2C2:
bx r0
.align 2, 0
_080DA2F0: .4byte gUnknown_0202F7C9
-_080DA2F4: .4byte gUnknown_03004B00
+_080DA2F4: .4byte gBattleAnimArgs
_080DA2F8: .4byte sub_8078B34
_080DA2FC: .4byte move_anim_8072740
thumb_func_end sub_80DA208
@@ -32729,7 +32729,7 @@ sub_80DA300: @ 80DA300
adds r4, r0, 0
movs r1, 0x1
bl sub_80787B0
- ldr r1, _080DA33C @ =gUnknown_03004B00
+ ldr r1, _080DA33C @ =gBattleAnimArgs
ldrh r0, [r1, 0x4]
strh r0, [r4, 0x2E]
ldrh r0, [r1, 0x6]
@@ -32754,7 +32754,7 @@ sub_80DA300: @ 80DA300
pop {r0}
bx r0
.align 2, 0
-_080DA33C: .4byte gUnknown_03004B00
+_080DA33C: .4byte gBattleAnimArgs
_080DA340: .4byte sub_80DA348
_080DA344: .4byte gSprites
thumb_func_end sub_80DA300
@@ -32825,7 +32825,7 @@ _080DA3BC:
strh r0, [r5, 0x20]
strh r0, [r5, 0x22]
_080DA3C2:
- ldr r0, _080DA404 @ =gUnknown_03004B00
+ ldr r0, _080DA404 @ =gBattleAnimArgs
ldrh r0, [r0]
strh r0, [r5, 0x2E]
ldrh r0, [r5, 0x20]
@@ -32854,7 +32854,7 @@ _080DA3C2:
bx r0
.align 2, 0
_080DA400: .4byte 0x0000ffe0
-_080DA404: .4byte gUnknown_03004B00
+_080DA404: .4byte gBattleAnimArgs
_080DA408: .4byte gUnknown_0202F7C9
_080DA40C: .4byte sub_80DA410
thumb_func_end sub_80DA38C
@@ -32973,7 +32973,7 @@ sub_80DA4D8: @ 80DA4D8
adds r7, r0, 0
adds r5, r7, 0
adds r5, 0x2E
- ldr r0, _080DA4F8 @ =gUnknown_03004B00
+ ldr r0, _080DA4F8 @ =gBattleAnimArgs
ldrh r1, [r0, 0xE]
movs r0, 0x80
lsls r0, 1
@@ -32983,7 +32983,7 @@ sub_80DA4D8: @ 80DA4D8
ldr r0, _080DA4FC @ =gUnknown_0202F7C8
b _080DA502
.align 2, 0
-_080DA4F8: .4byte gUnknown_03004B00
+_080DA4F8: .4byte gBattleAnimArgs
_080DA4FC: .4byte gUnknown_0202F7C8
_080DA500:
ldr r0, _080DA5B0 @ =gUnknown_0202F7C9
@@ -32994,7 +32994,7 @@ _080DA502:
lsls r0, 24
cmp r0, 0
bne _080DA518
- ldr r1, _080DA5B4 @ =gUnknown_03004B00
+ ldr r1, _080DA5B4 @ =gBattleAnimArgs
ldrh r0, [r1]
negs r0, r0
strh r0, [r1]
@@ -33003,7 +33003,7 @@ _080DA518:
movs r1, 0
bl sub_8077ABC
lsls r0, 24
- ldr r4, _080DA5B4 @ =gUnknown_03004B00
+ ldr r4, _080DA5B4 @ =gBattleAnimArgs
lsrs r0, 24
ldrh r1, [r4]
adds r0, r1
@@ -33074,7 +33074,7 @@ _080DA518:
b _080DA5D8
.align 2, 0
_080DA5B0: .4byte gUnknown_0202F7C9
-_080DA5B4: .4byte gUnknown_03004B00
+_080DA5B4: .4byte gBattleAnimArgs
_080DA5B8: .4byte gMain
_080DA5BC: .4byte 0x0000043d
_080DA5C0:
@@ -34121,7 +34121,7 @@ _080DAD80: .4byte sub_807941C
sub_80DAD84: @ 80DAD84
push {r4-r7,lr}
adds r4, r0, 0
- ldr r5, _080DADCC @ =gUnknown_03004B00
+ ldr r5, _080DADCC @ =gBattleAnimArgs
ldrh r0, [r5]
strh r0, [r4, 0x30]
ldrh r0, [r5, 0x2]
@@ -34154,7 +34154,7 @@ sub_80DAD84: @ 80DAD84
adds r0, r5
b _080DADEE
.align 2, 0
-_080DADCC: .4byte gUnknown_03004B00
+_080DADCC: .4byte gBattleAnimArgs
_080DADD0: .4byte gMain
_080DADD4: .4byte 0x0000043d
_080DADD8: .4byte gUnknown_02024A72
@@ -34168,7 +34168,7 @@ _080DADE0:
adds r0, 0x28
_080DADEE:
strh r0, [r4, 0x3C]
- ldr r0, _080DAE1C @ =gUnknown_03004B00
+ ldr r0, _080DAE1C @ =gBattleAnimArgs
movs r1, 0x8
ldrsh r0, [r0, r1]
cmp r0, 0
@@ -34190,7 +34190,7 @@ _080DADEE:
strb r1, [r4, 0x5]
b _080DAE58
.align 2, 0
-_080DAE1C: .4byte gUnknown_03004B00
+_080DAE1C: .4byte gBattleAnimArgs
_080DAE20: .4byte gUnknown_0202F7C9
_080DAE24:
ldr r0, _080DAE40 @ =gUnknown_0202F7C9
@@ -34442,7 +34442,7 @@ _080DAFFC: .4byte sub_80DA6F0
sub_80DB000: @ 80DB000
push {r4,r5,lr}
adds r5, r0, 0
- ldr r0, _080DB018 @ =gUnknown_03004B00
+ ldr r0, _080DB018 @ =gBattleAnimArgs
movs r1, 0x4
ldrsh r0, [r0, r1]
cmp r0, 0
@@ -34452,13 +34452,13 @@ sub_80DB000: @ 80DB000
bl sub_80787B0
b _080DB024
.align 2, 0
-_080DB018: .4byte gUnknown_03004B00
+_080DB018: .4byte gBattleAnimArgs
_080DB01C:
adds r0, r5, 0
movs r1, 0
bl sub_8078764
_080DB024:
- ldr r4, _080DB08C @ =gUnknown_03004B00
+ ldr r4, _080DB08C @ =gBattleAnimArgs
movs r2, 0x4
ldrsh r0, [r4, r2]
cmp r0, 0
@@ -34485,7 +34485,7 @@ _080DB052:
adds r0, 0x8
strh r0, [r5, 0x20]
_080DB058:
- ldr r4, _080DB08C @ =gUnknown_03004B00
+ ldr r4, _080DB08C @ =gBattleAnimArgs
ldrb r1, [r4, 0x8]
adds r0, r5, 0
bl SeekSpriteAnim
@@ -34511,7 +34511,7 @@ _080DB058:
pop {r0}
bx r0
.align 2, 0
-_080DB08C: .4byte gUnknown_03004B00
+_080DB08C: .4byte gBattleAnimArgs
_080DB090: .4byte gUnknown_0202F7C8
_080DB094: .4byte gUnknown_0202F7C9
_080DB098: .4byte 0x00000ccc
@@ -34586,7 +34586,7 @@ sub_80DB0E8: @ 80DB0E8
negs r5, r5
adds r1, r5, 0
bl Sin
- ldr r4, _080DB188 @ =gUnknown_03004B00
+ ldr r4, _080DB188 @ =gBattleAnimArgs
strh r0, [r4]
movs r1, 0x8
ldrsh r0, [r7, r1]
@@ -34635,7 +34635,7 @@ _080DB176:
.align 2, 0
_080DB180: .4byte gTasks
_080DB184: .4byte gUnknown_0202F7B2
-_080DB188: .4byte gUnknown_03004B00
+_080DB188: .4byte gBattleAnimArgs
_080DB18C: .4byte gBattleAnimSpriteTemplate_83DB538
_080DB190: .4byte gUnknown_0202F7C9
thumb_func_end sub_80DB0E8
@@ -34778,7 +34778,7 @@ sub_80DB288: @ 80DB288
adds r4, r0, 0
movs r1, 0x1
bl sub_80787B0
- ldr r1, _080DB2C4 @ =gUnknown_03004B00
+ ldr r1, _080DB2C4 @ =gBattleAnimArgs
ldrh r0, [r1, 0x4]
strh r0, [r4, 0x2E]
ldrh r0, [r1, 0x6]
@@ -34803,7 +34803,7 @@ sub_80DB288: @ 80DB288
pop {r0}
bx r0
.align 2, 0
-_080DB2C4: .4byte gUnknown_03004B00
+_080DB2C4: .4byte gBattleAnimArgs
_080DB2C8: .4byte sub_80DB2D0
_080DB2CC: .4byte gSprites
thumb_func_end sub_80DB288
@@ -34914,7 +34914,7 @@ sub_80DB374: @ 80DB374
beq _080DB3E0
b _080DB44C
_080DB388:
- ldr r0, _080DB398 @ =gUnknown_03004B00
+ ldr r0, _080DB398 @ =gBattleAnimArgs
movs r2, 0
ldrsh r0, [r0, r2]
cmp r0, 0
@@ -34922,7 +34922,7 @@ _080DB388:
ldr r4, _080DB39C @ =gUnknown_0202F7C8
b _080DB3A2
.align 2, 0
-_080DB398: .4byte gUnknown_03004B00
+_080DB398: .4byte gBattleAnimArgs
_080DB39C: .4byte gUnknown_0202F7C8
_080DB3A0:
ldr r4, _080DB3DC @ =gUnknown_0202F7C9
@@ -35061,7 +35061,7 @@ _080DB49C:
subs r0, r1
_080DB4A4:
strh r0, [r5, 0x30]
- ldr r2, _080DB4CC @ =gUnknown_03004B00
+ ldr r2, _080DB4CC @ =gBattleAnimArgs
ldrh r0, [r2]
strh r0, [r5, 0x32]
lsls r0, 16
@@ -35082,7 +35082,7 @@ _080DB4C0:
ldr r4, _080DB4D0 @ =gUnknown_0202F7C8
b _080DB4D6
.align 2, 0
-_080DB4CC: .4byte gUnknown_03004B00
+_080DB4CC: .4byte gBattleAnimArgs
_080DB4D0: .4byte gUnknown_0202F7C8
_080DB4D4:
ldr r4, _080DB500 @ =gUnknown_0202F7C9
@@ -35369,7 +35369,7 @@ unref_sub_80DB6E4: @ 80DB6E4
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
- ldr r0, _080DB714 @ =gUnknown_03004B00
+ ldr r0, _080DB714 @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
@@ -35389,7 +35389,7 @@ unref_sub_80DB6E4: @ 80DB6E4
orrs r0, r2
b _080DB73A
.align 2, 0
-_080DB714: .4byte gUnknown_03004B00
+_080DB714: .4byte gBattleAnimArgs
_080DB718: .4byte gSprites
_080DB71C:
movs r0, 0
@@ -35489,7 +35489,7 @@ _080DB7DA:
lsls r0, 24
cmp r0, 0
bne _080DB810
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _080DB810
@@ -35517,7 +35517,7 @@ _080DB810:
lsls r0, 24
cmp r0, 0
beq _080DB826
- ldr r1, _080DB884 @ =gUnknown_03004B00
+ ldr r1, _080DB884 @ =gBattleAnimArgs
ldrh r0, [r1]
negs r0, r0
strh r0, [r1]
@@ -35526,7 +35526,7 @@ _080DB826:
movs r1, 0
bl sub_8077ABC
lsls r0, 24
- ldr r4, _080DB884 @ =gUnknown_03004B00
+ ldr r4, _080DB884 @ =gBattleAnimArgs
lsrs r0, 24
ldrh r1, [r4]
adds r0, r1
@@ -35548,7 +35548,7 @@ _080DB84A:
adds r0, 0x9
strh r0, [r6, 0x22]
_080DB85C:
- ldr r0, _080DB884 @ =gUnknown_03004B00
+ ldr r0, _080DB884 @ =gBattleAnimArgs
ldrh r0, [r0, 0x4]
bl IndexOfSpritePaletteTag
lsls r0, 24
@@ -35566,7 +35566,7 @@ _080DB85C:
bx r0
.align 2, 0
_080DB880: .4byte gUnknown_0202F7C8
-_080DB884: .4byte gUnknown_03004B00
+_080DB884: .4byte gBattleAnimArgs
_080DB888: .4byte sub_80DB88C
thumb_func_end sub_80DB74C
@@ -35808,7 +35808,7 @@ sub_80DBA4C: @ 80DBA4C
ldrsh r0, [r4, r1]
cmp r0, 0
bne _080DBAD8
- ldr r5, _080DBA98 @ =gUnknown_03004B00
+ ldr r5, _080DBA98 @ =gBattleAnimArgs
movs r1, 0x6
ldrsh r0, [r5, r1]
movs r6, 0
@@ -35820,7 +35820,7 @@ _080DBA66:
lsls r0, 24
cmp r0, 0
bne _080DBAAE
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _080DBAAE
@@ -35839,7 +35839,7 @@ _080DBA66:
strh r0, [r4, 0x22]
b _080DBAD0
.align 2, 0
-_080DBA98: .4byte gUnknown_03004B00
+_080DBA98: .4byte gBattleAnimArgs
_080DBA9C: .4byte gUnknown_0202F7C8
_080DBAA0:
ldrh r0, [r5]
@@ -35850,7 +35850,7 @@ _080DBAA0:
strh r0, [r4, 0x22]
b _080DBAD0
_080DBAAE:
- ldr r0, _080DBAC4 @ =gUnknown_03004B00
+ ldr r0, _080DBAC4 @ =gBattleAnimArgs
movs r1, 0x4
ldrsh r0, [r0, r1]
cmp r0, 0
@@ -35860,7 +35860,7 @@ _080DBAAE:
bl sub_80787B0
b _080DBAD0
.align 2, 0
-_080DBAC4: .4byte gUnknown_03004B00
+_080DBAC4: .4byte gBattleAnimArgs
_080DBAC8:
adds r0, r4, 0
adds r1, r6, 0
@@ -36609,7 +36609,7 @@ _080DC05C:
sub_80DC068: @ 80DC068
push {r4-r6,lr}
adds r5, r0, 0
- ldr r6, _080DC0A4 @ =gUnknown_03004B00
+ ldr r6, _080DC0A4 @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r6, r1]
cmp r0, 0
@@ -36636,7 +36636,7 @@ _080DC094:
pop {r0}
bx r0
.align 2, 0
-_080DC0A4: .4byte gUnknown_03004B00
+_080DC0A4: .4byte gBattleAnimArgs
_080DC0A8: .4byte gUnknown_0202F7C8
_080DC0AC: .4byte sub_80DC020
thumb_func_end sub_80DC068
@@ -36655,7 +36655,7 @@ sub_80DC0B0: @ 80DC0B0
lsls r0, 24
cmp r0, 0
beq _080DC154
- ldr r0, _080DC110 @ =gUnknown_03004B00
+ ldr r0, _080DC110 @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0x1
@@ -36686,7 +36686,7 @@ sub_80DC0B0: @ 80DC0B0
b _080DC1DE
.align 2, 0
_080DC10C: .4byte gTasks
-_080DC110: .4byte gUnknown_03004B00
+_080DC110: .4byte gBattleAnimArgs
_080DC114: .4byte 0x0000fff6
_080DC118: .4byte gUnknown_0202F7C9
_080DC11C: .4byte gUnknown_0202F7C8
@@ -36714,7 +36714,7 @@ _080DC120:
_080DC14C: .4byte gUnknown_0202F7C8
_080DC150: .4byte gUnknown_0202F7C9
_080DC154:
- ldr r0, _080DC198 @ =gUnknown_03004B00
+ ldr r0, _080DC198 @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0x1
@@ -36744,7 +36744,7 @@ _080DC154:
adds r0, 0x8
b _080DC1DE
.align 2, 0
-_080DC198: .4byte gUnknown_03004B00
+_080DC198: .4byte gBattleAnimArgs
_080DC19C: .4byte 0x0000fff6
_080DC1A0: .4byte gUnknown_0202F7C9
_080DC1A4: .4byte gUnknown_0202F7C8
@@ -36917,7 +36917,7 @@ sub_80DC2D4: @ 80DC2D4
adds r0, r1, 0
subs r0, 0x20
strh r0, [r4, 0x24]
- ldr r0, _080DC314 @ =gUnknown_03004B00
+ ldr r0, _080DC314 @ =gBattleAnimArgs
movs r2, 0
ldrsh r0, [r0, r2]
cmp r0, 0x1
@@ -36930,7 +36930,7 @@ sub_80DC2D4: @ 80DC2D4
.align 2, 0
_080DC30C: .4byte gTasks
_080DC310: .4byte gUnknown_0202F7C9
-_080DC314: .4byte gUnknown_03004B00
+_080DC314: .4byte gBattleAnimArgs
_080DC318:
cmp r0, 0x2
beq _080DC336
@@ -37213,7 +37213,7 @@ sub_80DC4F4: @ 80DC4F4
.align 2, 0
_080DC528: .4byte gTasks
_080DC52C:
- ldr r1, _080DC550 @ =gUnknown_03004B00
+ ldr r1, _080DC550 @ =gBattleAnimArgs
ldrb r0, [r1]
bl duplicate_obj_of_side_rel2move_in_transparent_mode
lsls r0, 16
@@ -37228,7 +37228,7 @@ _080DC52C:
bl move_anim_task_del
b _080DC5D6
.align 2, 0
-_080DC550: .4byte gUnknown_03004B00
+_080DC550: .4byte gBattleAnimArgs
_080DC554:
ldr r2, _080DC5E4 @ =gSprites
lsls r4, r0, 4
@@ -37280,7 +37280,7 @@ _080DC554:
lsrs r3, 30
adds r0, r4, 0
bl CalcCenterToCornerVec
- ldr r1, _080DC5EC @ =gUnknown_03004B00
+ ldr r1, _080DC5EC @ =gBattleAnimArgs
ldrb r0, [r1]
bl obj_id_for_side_relative_to_move
lsls r0, 24
@@ -37303,7 +37303,7 @@ _080DC5D6:
.align 2, 0
_080DC5E4: .4byte gSprites
_080DC5E8: .4byte SpriteCallbackDummy
-_080DC5EC: .4byte gUnknown_03004B00
+_080DC5EC: .4byte gBattleAnimArgs
_080DC5F0: .4byte sub_80DC5F4
thumb_func_end sub_80DC4F4
@@ -37601,7 +37601,7 @@ sub_80DC824: @ 80DC824
adds r0, r6, 0
movs r1, 0x2
bl StartSpriteAffineAnim
- ldr r0, _080DC84C @ =gUnknown_03004B00
+ ldr r0, _080DC84C @ =gBattleAnimArgs
ldrh r1, [r0, 0x4]
negs r1, r1
strh r1, [r0, 0x4]
@@ -37610,7 +37610,7 @@ sub_80DC824: @ 80DC824
strh r1, [r0]
b _080DC880
.align 2, 0
-_080DC84C: .4byte gUnknown_03004B00
+_080DC84C: .4byte gBattleAnimArgs
_080DC850:
ldr r0, _080DC8E4 @ =gUnknown_0202F7C9
ldrb r0, [r0]
@@ -37621,7 +37621,7 @@ _080DC850:
adds r0, r6, 0
movs r1, 0x1
bl StartSpriteAffineAnim
- ldr r1, _080DC8E8 @ =gUnknown_03004B00
+ ldr r1, _080DC8E8 @ =gBattleAnimArgs
ldrh r0, [r1, 0x2]
negs r0, r0
strh r0, [r1, 0x2]
@@ -37640,7 +37640,7 @@ _080DC880:
movs r1, 0x2
bl sub_8077EE4
lsls r0, 24
- ldr r4, _080DC8E8 @ =gUnknown_03004B00
+ ldr r4, _080DC8E8 @ =gBattleAnimArgs
lsrs r0, 24
ldrh r1, [r4]
adds r0, r1
@@ -37681,7 +37681,7 @@ _080DC880:
bx r0
.align 2, 0
_080DC8E4: .4byte gUnknown_0202F7C9
-_080DC8E8: .4byte gUnknown_03004B00
+_080DC8E8: .4byte gBattleAnimArgs
_080DC8EC: .4byte sub_8078B34
_080DC8F0: .4byte move_anim_8072740
thumb_func_end sub_80DC824
@@ -37694,7 +37694,7 @@ sub_80DC8F4: @ 80DC8F4
lsls r0, 24
cmp r0, 0
beq _080DC918
- ldr r1, _080DC914 @ =gUnknown_03004B00
+ ldr r1, _080DC914 @ =gBattleAnimArgs
ldrh r0, [r1]
negs r0, r0
strh r0, [r1]
@@ -37703,7 +37703,7 @@ sub_80DC8F4: @ 80DC8F4
bl StartSpriteAffineAnim
b _080DC934
.align 2, 0
-_080DC914: .4byte gUnknown_03004B00
+_080DC914: .4byte gBattleAnimArgs
_080DC918:
ldr r0, _080DC990 @ =gUnknown_0202F7C9
ldrb r0, [r0]
@@ -37711,7 +37711,7 @@ _080DC918:
lsls r0, 24
cmp r0, 0
bne _080DC934
- ldr r0, _080DC994 @ =gUnknown_03004B00
+ ldr r0, _080DC994 @ =gBattleAnimArgs
ldrh r1, [r0, 0x2]
negs r1, r1
strh r1, [r0, 0x2]
@@ -37724,7 +37724,7 @@ _080DC934:
movs r1, 0x2
bl sub_8077EE4
lsls r0, 24
- ldr r4, _080DC994 @ =gUnknown_03004B00
+ ldr r4, _080DC994 @ =gBattleAnimArgs
lsrs r0, 24
ldrh r1, [r4]
adds r0, r1
@@ -37761,7 +37761,7 @@ _080DC934:
bx r0
.align 2, 0
_080DC990: .4byte gUnknown_0202F7C9
-_080DC994: .4byte gUnknown_03004B00
+_080DC994: .4byte gBattleAnimArgs
_080DC998: .4byte sub_8078B34
_080DC99C: .4byte move_anim_8072740
thumb_func_end sub_80DC8F4
@@ -37774,7 +37774,7 @@ sub_80DC9A0: @ 80DC9A0
lsls r0, 24
cmp r0, 0
beq _080DC9BC
- ldr r0, _080DC9FC @ =gUnknown_03004B00
+ ldr r0, _080DC9FC @ =gBattleAnimArgs
movs r2, 0x4
ldrsh r1, [r0, r2]
lsrs r2, r1, 31
@@ -37785,7 +37785,7 @@ _080DC9BC:
adds r0, r5, 0
movs r1, 0x1
bl sub_80787B0
- ldr r1, _080DC9FC @ =gUnknown_03004B00
+ ldr r1, _080DC9FC @ =gBattleAnimArgs
ldrh r0, [r1, 0x4]
strh r0, [r5, 0x2E]
ldrh r0, [r5, 0x20]
@@ -37811,7 +37811,7 @@ _080DC9BC:
strh r0, [r5, 0x36]
b _080DCA16
.align 2, 0
-_080DC9FC: .4byte gUnknown_03004B00
+_080DC9FC: .4byte gBattleAnimArgs
_080DCA00: .4byte gUnknown_0202F7C9
_080DCA04:
ldr r0, _080DCA2C @ =gUnknown_0202F7C9
@@ -37825,7 +37825,7 @@ _080DCA04:
_080DCA16:
adds r0, r5, 0
bl sub_8078BD4
- ldr r0, _080DCA30 @ =gUnknown_03004B00
+ ldr r0, _080DCA30 @ =gBattleAnimArgs
ldrh r0, [r0, 0x6]
strh r0, [r5, 0x38]
ldr r0, _080DCA34 @ =sub_80DCA38
@@ -37835,7 +37835,7 @@ _080DCA16:
bx r0
.align 2, 0
_080DCA2C: .4byte gUnknown_0202F7C9
-_080DCA30: .4byte gUnknown_03004B00
+_080DCA30: .4byte gBattleAnimArgs
_080DCA34: .4byte sub_80DCA38
thumb_func_end sub_80DC9A0
@@ -37888,7 +37888,7 @@ sub_80DCA70: @ 80DCA70
lsls r0, 24
cmp r0, 0
beq _080DCAAC
- ldr r0, _080DCAA8 @ =gUnknown_03004B00
+ ldr r0, _080DCAA8 @ =gBattleAnimArgs
ldrh r1, [r4, 0x20]
ldrh r2, [r0]
subs r1, r2
@@ -37897,9 +37897,9 @@ sub_80DCA70: @ 80DCA70
.align 2, 0
_080DCAA0: .4byte gUnknown_0202F7C9
_080DCAA4: .4byte gUnknown_0202F7C8
-_080DCAA8: .4byte gUnknown_03004B00
+_080DCAA8: .4byte gBattleAnimArgs
_080DCAAC:
- ldr r1, _080DCAE0 @ =gUnknown_03004B00
+ ldr r1, _080DCAE0 @ =gBattleAnimArgs
ldrh r0, [r1]
ldrh r2, [r4, 0x20]
adds r0, r2
@@ -37926,7 +37926,7 @@ _080DCAD4:
pop {r0}
bx r0
.align 2, 0
-_080DCAE0: .4byte gUnknown_03004B00
+_080DCAE0: .4byte gBattleAnimArgs
_080DCAE4: .4byte gUnknown_0202F7C9
_080DCAE8: .4byte sub_80DCAEC
thumb_func_end sub_80DCA70
@@ -38067,13 +38067,13 @@ sub_80DCBCC: @ 80DCBCC
lsls r0, 24
cmp r0, 0
beq _080DCBEC
- ldr r1, _080DCBE8 @ =gUnknown_03004B00
+ ldr r1, _080DCBE8 @ =gBattleAnimArgs
ldrh r0, [r1, 0x4]
negs r0, r0
strh r0, [r1, 0x4]
b _080DCC0E
.align 2, 0
-_080DCBE8: .4byte gUnknown_03004B00
+_080DCBE8: .4byte gBattleAnimArgs
_080DCBEC:
ldr r0, _080DCCE8 @ =gUnknown_0202F7C8
ldrb r0, [r0]
@@ -38081,7 +38081,7 @@ _080DCBEC:
lsls r0, 24
cmp r0, 0
beq _080DCC0E
- ldr r1, _080DCCEC @ =gUnknown_03004B00
+ ldr r1, _080DCCEC @ =gBattleAnimArgs
ldrh r0, [r1, 0x4]
negs r0, r0
strh r0, [r1, 0x4]
@@ -38119,7 +38119,7 @@ _080DCC0E:
cmp r0, 0x1
bne _080DCC5E
_080DCC4C:
- ldr r0, _080DCCEC @ =gUnknown_03004B00
+ ldr r0, _080DCCEC @ =gBattleAnimArgs
movs r2, 0x4
ldrsh r1, [r0, r2]
negs r1, r1
@@ -38138,7 +38138,7 @@ _080DCC5E:
bl sub_8077ABC
adds r4, r0, 0
lsls r4, 24
- ldr r6, _080DCCEC @ =gUnknown_03004B00
+ ldr r6, _080DCCEC @ =gBattleAnimArgs
lsrs r4, 24
ldrh r0, [r6, 0x4]
adds r4, r0
@@ -38193,7 +38193,7 @@ _080DCC5E:
bx r0
.align 2, 0
_080DCCE8: .4byte gUnknown_0202F7C8
-_080DCCEC: .4byte gUnknown_03004B00
+_080DCCEC: .4byte gBattleAnimArgs
_080DCCF0: .4byte gUnknown_0202F7C9
_080DCCF4: .4byte sub_8078B34
_080DCCF8: .4byte move_anim_8072740
@@ -38211,12 +38211,12 @@ sub_80DCCFC: @ 80DCCFC
lsls r0, 24
cmp r0, 0
beq _080DCD1C
- ldr r1, _080DCD6C @ =gUnknown_03004B00
+ ldr r1, _080DCD6C @ =gBattleAnimArgs
ldrh r0, [r1, 0x4]
negs r0, r0
strh r0, [r1, 0x4]
_080DCD1C:
- ldr r4, _080DCD6C @ =gUnknown_03004B00
+ ldr r4, _080DCD6C @ =gBattleAnimArgs
ldrh r0, [r4, 0x8]
strh r0, [r6, 0x2E]
ldr r5, _080DCD70 @ =gUnknown_0202F7C9
@@ -38253,7 +38253,7 @@ _080DCD1C:
bx r0
.align 2, 0
_080DCD68: .4byte gUnknown_0202F7C8
-_080DCD6C: .4byte gUnknown_03004B00
+_080DCD6C: .4byte gBattleAnimArgs
_080DCD70: .4byte gUnknown_0202F7C9
_080DCD74: .4byte sub_80DCD78
thumb_func_end sub_80DCCFC
@@ -38365,7 +38365,7 @@ _080DCE34:
sub_80DCE40: @ 80DCE40
push {r4,r5,lr}
adds r5, r0, 0
- ldr r0, _080DCE54 @ =gUnknown_03004B00
+ ldr r0, _080DCE54 @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
@@ -38373,7 +38373,7 @@ sub_80DCE40: @ 80DCE40
ldr r4, _080DCE58 @ =gUnknown_0202F7C8
b _080DCE5E
.align 2, 0
-_080DCE54: .4byte gUnknown_03004B00
+_080DCE54: .4byte gBattleAnimArgs
_080DCE58: .4byte gUnknown_0202F7C8
_080DCE5C:
ldr r4, _080DCE90 @ =gUnknown_0202F7C9
@@ -38409,7 +38409,7 @@ _080DCE98: .4byte sub_80785E4
sub_80DCE9C: @ 80DCE9C
push {r4-r6,lr}
adds r5, r0, 0
- ldr r6, _080DCF08 @ =gUnknown_03004B00
+ ldr r6, _080DCF08 @ =gBattleAnimArgs
movs r1, 0x6
ldrsh r0, [r6, r1]
cmp r0, 0
@@ -38457,7 +38457,7 @@ _080DCEBC:
pop {r0}
bx r0
.align 2, 0
-_080DCF08: .4byte gUnknown_03004B00
+_080DCF08: .4byte gBattleAnimArgs
_080DCF0C: .4byte gUnknown_0202F7C9
_080DCF10: .4byte 0x0000ffba
_080DCF14: .4byte sub_80DCF1C
@@ -38501,7 +38501,7 @@ _080DCF5C: .4byte sub_8078278
sub_80DCF60: @ 80DCF60
push {r4,r5,lr}
adds r5, r0, 0
- ldr r4, _080DCF88 @ =gUnknown_03004B00
+ ldr r4, _080DCF88 @ =gBattleAnimArgs
ldrb r1, [r4, 0xA]
bl StartSpriteAnim
adds r0, r5, 0
@@ -38517,7 +38517,7 @@ sub_80DCF60: @ 80DCF60
subs r0, r1
b _080DCF96
.align 2, 0
-_080DCF88: .4byte gUnknown_03004B00
+_080DCF88: .4byte gBattleAnimArgs
_080DCF8C: .4byte gUnknown_0202F7C8
_080DCF90:
ldrh r0, [r4]
@@ -38525,7 +38525,7 @@ _080DCF90:
adds r0, r1
_080DCF96:
strh r0, [r5, 0x20]
- ldr r3, _080DCFD8 @ =gUnknown_03004B00
+ ldr r3, _080DCFD8 @ =gBattleAnimArgs
ldrh r2, [r3, 0x2]
ldrh r0, [r5, 0x22]
adds r2, r0
@@ -38555,7 +38555,7 @@ _080DCF96:
pop {r0}
bx r0
.align 2, 0
-_080DCFD8: .4byte gUnknown_03004B00
+_080DCFD8: .4byte gBattleAnimArgs
_080DCFDC: .4byte sub_8078394
_080DCFE0: .4byte move_anim_8074EE0
thumb_func_end sub_80DCF60
@@ -38564,7 +38564,7 @@ _080DCFE0: .4byte move_anim_8074EE0
sub_80DCFE4: @ 80DCFE4
push {r4,lr}
adds r4, r0, 0
- ldr r0, _080DCFFC @ =gUnknown_03004B00
+ ldr r0, _080DCFFC @ =gBattleAnimArgs
movs r1, 0xC
ldrsh r0, [r0, r1]
cmp r0, 0
@@ -38574,13 +38574,13 @@ sub_80DCFE4: @ 80DCFE4
bl sub_80787B0
b _080DD008
.align 2, 0
-_080DCFFC: .4byte gUnknown_03004B00
+_080DCFFC: .4byte gBattleAnimArgs
_080DD000:
adds r0, r4, 0
movs r1, 0
bl sub_8078764
_080DD008:
- ldr r1, _080DD024 @ =gUnknown_03004B00
+ ldr r1, _080DD024 @ =gBattleAnimArgs
ldrh r0, [r1, 0x6]
strh r0, [r4, 0x2E]
ldrh r0, [r1, 0x4]
@@ -38595,7 +38595,7 @@ _080DD008:
pop {r0}
bx r0
.align 2, 0
-_080DD024: .4byte gUnknown_03004B00
+_080DD024: .4byte gBattleAnimArgs
_080DD028: .4byte sub_80DD02C
thumb_func_end sub_80DCFE4
@@ -38721,7 +38721,7 @@ _080DD0C4:
movs r3, 0
bl sub_80763FC
_080DD120:
- ldr r0, _080DD180 @ =gUnknown_03004B00
+ ldr r0, _080DD180 @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
@@ -38758,7 +38758,7 @@ _080DD170: .4byte 0x85000400
_080DD174: .4byte gBattleAnimBackgroundTilemap_SandstormBrew
_080DD178: .4byte gBattleAnimBackgroundImage_SandstormBrew
_080DD17C: .4byte gBattleAnimSpritePalette_261
-_080DD180: .4byte gUnknown_03004B00
+_080DD180: .4byte gBattleAnimArgs
_080DD184: .4byte gUnknown_0202F7C8
_080DD188: .4byte gTasks
_080DD18C: .4byte sub_80DD190
@@ -39039,7 +39039,7 @@ sub_80DD3AC: @ 80DD3AC
ldrsh r0, [r5, r1]
cmp r0, 0
bne _080DD428
- ldr r4, _080DD3F0 @ =gUnknown_03004B00
+ ldr r4, _080DD3F0 @ =gBattleAnimArgs
movs r2, 0x6
ldrsh r0, [r4, r2]
cmp r0, 0
@@ -39066,13 +39066,13 @@ sub_80DD3AC: @ 80DD3AC
strb r0, [r5, 0x3]
b _080DD3FC
.align 2, 0
-_080DD3F0: .4byte gUnknown_03004B00
+_080DD3F0: .4byte gBattleAnimArgs
_080DD3F4: .4byte gUnknown_0202F7C8
_080DD3F8:
ldr r0, _080DD41C @ =0x0000ffc0
strh r0, [r5, 0x20]
_080DD3FC:
- ldr r4, _080DD420 @ =gUnknown_03004B00
+ ldr r4, _080DD420 @ =gBattleAnimArgs
ldrh r0, [r4]
strh r0, [r5, 0x22]
ldr r1, _080DD424 @ =gUnknown_083DAD10
@@ -39088,7 +39088,7 @@ _080DD3FC:
b _080DD484
.align 2, 0
_080DD41C: .4byte 0x0000ffc0
-_080DD420: .4byte gUnknown_03004B00
+_080DD420: .4byte gBattleAnimArgs
_080DD424: .4byte gUnknown_083DAD10
_080DD428:
ldrh r1, [r5, 0x30]
@@ -39151,7 +39151,7 @@ _080DD48C: .4byte move_anim_8072740
sub_80DD490: @ 80DD490
push {r4,r5,lr}
adds r4, r0, 0
- ldr r5, _080DD4C8 @ =gUnknown_03004B00
+ ldr r5, _080DD4C8 @ =gBattleAnimArgs
ldrb r1, [r5, 0x8]
bl StartSpriteAnim
adds r0, r4, 0
@@ -39174,7 +39174,7 @@ sub_80DD490: @ 80DD490
pop {r0}
bx r0
.align 2, 0
-_080DD4C8: .4byte gUnknown_03004B00
+_080DD4C8: .4byte gBattleAnimArgs
_080DD4CC: .4byte sub_8078B34
_080DD4D0: .4byte move_anim_8072740
thumb_func_end sub_80DD490
@@ -39709,7 +39709,7 @@ _080DD8E4: .4byte gUnknown_0202F7B4
sub_80DD8E8: @ 80DD8E8
push {r4,r5,lr}
adds r4, r0, 0
- ldr r5, _080DD920 @ =gUnknown_03004B00
+ ldr r5, _080DD920 @ =gBattleAnimArgs
ldrb r1, [r5, 0x8]
bl StartSpriteAnim
ldrh r0, [r5]
@@ -39735,7 +39735,7 @@ sub_80DD8E8: @ 80DD8E8
pop {r0}
bx r0
.align 2, 0
-_080DD920: .4byte gUnknown_03004B00
+_080DD920: .4byte gBattleAnimArgs
_080DD924: .4byte sub_80DD928
thumb_func_end sub_80DD8E8
@@ -39823,7 +39823,7 @@ sub_80DD9A4: @ 80DD9A4
bl sub_8077ABC
lsls r0, 24
lsrs r0, 24
- ldr r2, _080DD9F4 @ =gUnknown_03004B00
+ ldr r2, _080DD9F4 @ =gBattleAnimArgs
ldrh r3, [r2]
ldrh r5, [r4, 0x20]
adds r1, r3, r5
@@ -39845,7 +39845,7 @@ sub_80DD9A4: @ 80DD9A4
bx r0
.align 2, 0
_080DD9F0: .4byte gUnknown_0202F7C9
-_080DD9F4: .4byte gUnknown_03004B00
+_080DD9F4: .4byte gBattleAnimArgs
_080DD9F8: .4byte sub_80DD9FC
thumb_func_end sub_80DD9A4
@@ -39900,7 +39900,7 @@ sub_80DDA4C: @ 80DDA4C
ldr r0, [r2]
cmp r0, 0x20
bgt _080DDA60
- ldr r1, _080DDA88 @ =gUnknown_03004B00
+ ldr r1, _080DDA88 @ =gBattleAnimArgs
movs r0, 0
strh r0, [r1, 0xE]
_080DDA60:
@@ -39909,13 +39909,13 @@ _080DDA60:
subs r0, 0x21
cmp r0, 0x20
bhi _080DDA70
- ldr r1, _080DDA88 @ =gUnknown_03004B00
+ ldr r1, _080DDA88 @ =gBattleAnimArgs
movs r0, 0x1
strh r0, [r1, 0xE]
_080DDA70:
cmp r2, 0x41
ble _080DDA7A
- ldr r1, _080DDA88 @ =gUnknown_03004B00
+ ldr r1, _080DDA88 @ =gBattleAnimArgs
movs r0, 0x2
strh r0, [r1, 0xE]
_080DDA7A:
@@ -39925,7 +39925,7 @@ _080DDA7A:
bx r0
.align 2, 0
_080DDA84: .4byte gUnknown_0202F7B8
-_080DDA88: .4byte gUnknown_03004B00
+_080DDA88: .4byte gBattleAnimArgs
thumb_func_end sub_80DDA4C
thumb_func_start sub_80DDA8C
@@ -40015,7 +40015,7 @@ _080DDB1C:
ldrh r4, [r4, 0xC]
adds r0, r4
strh r0, [r6]
- ldr r0, _080DDB64 @ =gUnknown_03004B00
+ ldr r0, _080DDB64 @ =gBattleAnimArgs
movs r2, 0xE
ldrsh r1, [r0, r2]
ldr r0, _080DDB68 @ =0x00000fff
@@ -40034,7 +40034,7 @@ _080DDB54:
.align 2, 0
_080DDB5C: .4byte gTasks
_080DDB60: .4byte gUnknown_030041B8
-_080DDB64: .4byte gUnknown_03004B00
+_080DDB64: .4byte gBattleAnimArgs
_080DDB68: .4byte 0x00000fff
thumb_func_end sub_80DDAF0
@@ -40044,7 +40044,7 @@ sub_80DDB6C: @ 80DDB6C
adds r4, r0, 0
movs r1, 0x1
bl sub_80787B0
- ldr r0, _080DDBC8 @ =gUnknown_03004B00
+ ldr r0, _080DDBC8 @ =gBattleAnimArgs
ldrh r0, [r0, 0x4]
strh r0, [r4, 0x2E]
ldrh r0, [r4, 0x20]
@@ -40082,7 +40082,7 @@ sub_80DDB6C: @ 80DDB6C
pop {r0}
bx r0
.align 2, 0
-_080DDBC8: .4byte gUnknown_03004B00
+_080DDBC8: .4byte gBattleAnimArgs
_080DDBCC: .4byte gUnknown_0202F7C9
_080DDBD0: .4byte sub_80DDBD8
_080DDBD4: .4byte REG_BLDCNT
@@ -40420,7 +40420,7 @@ sub_80DDDF0: @ 80DDDF0
movs r2, 0
movs r1, 0x80
strh r1, [r0, 0x8]
- ldr r1, _080DDE74 @ =gUnknown_03004B00
+ ldr r1, _080DDE74 @ =gBattleAnimArgs
ldrh r1, [r1]
strh r1, [r0, 0xA]
strh r2, [r0, 0xC]
@@ -40435,7 +40435,7 @@ sub_80DDDF0: @ 80DDDF0
_080DDE68: .4byte REG_BLDCNT
_080DDE6C: .4byte gSprites
_080DDE70: .4byte gTasks
-_080DDE74: .4byte gUnknown_03004B00
+_080DDE74: .4byte gBattleAnimArgs
_080DDE78: .4byte sub_80DDE7C
thumb_func_end sub_80DDDF0
@@ -40570,7 +40570,7 @@ sub_80DDF40: @ 80DDF40
strh r0, [r4, 0x22]
mov r1, r9
strh r1, [r4, 0x2E]
- ldr r2, _080DDFE0 @ =gUnknown_03004B00
+ ldr r2, _080DDFE0 @ =gBattleAnimArgs
ldrh r1, [r2]
strh r1, [r4, 0x30]
ldrh r1, [r2, 0x2]
@@ -40619,7 +40619,7 @@ sub_80DDF40: @ 80DDF40
bx r0
.align 2, 0
_080DDFDC: .4byte gUnknown_0202F7C8
-_080DDFE0: .4byte gUnknown_03004B00
+_080DDFE0: .4byte gBattleAnimArgs
_080DDFE4: .4byte sub_80DDFE8
thumb_func_end sub_80DDF40
@@ -41643,7 +41643,7 @@ sub_80DE7B8: @ 80DE7B8
mov r5, r8
push {r5-r7}
adds r7, r0, 0
- ldr r0, _080DE7F4 @ =gUnknown_03004B00
+ ldr r0, _080DE7F4 @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
@@ -41666,7 +41666,7 @@ sub_80DE7B8: @ 80DE7B8
ldr r4, _080DE7FC @ =gUnknown_0202F7C9
b _080DE824
.align 2, 0
-_080DE7F4: .4byte gUnknown_03004B00
+_080DE7F4: .4byte gBattleAnimArgs
_080DE7F8: .4byte gUnknown_0202F7C8
_080DE7FC: .4byte gUnknown_0202F7C9
_080DE800:
@@ -41715,7 +41715,7 @@ _080DE824:
mov r1, r10
subs r0, r1, r6
lsls r0, 4
- ldr r5, _080DE8D0 @ =gUnknown_03004B00
+ ldr r5, _080DE8D0 @ =gBattleAnimArgs
movs r2, 0x2
ldrsh r1, [r5, r2]
bl __divsi3
@@ -41767,7 +41767,7 @@ _080DE824:
.align 2, 0
_080DE8C8: .4byte gUnknown_0202F7C9
_080DE8CC: .4byte gUnknown_0202F7C8
-_080DE8D0: .4byte gUnknown_03004B00
+_080DE8D0: .4byte gBattleAnimArgs
_080DE8D4: .4byte sub_80DE8D8
thumb_func_end sub_80DE7B8
@@ -41841,7 +41841,7 @@ sub_80DE918: @ 80DE918
strh r0, [r1, 0x18]
movs r0, 0x10
strh r0, [r1, 0x1A]
- ldr r2, _080DEA70 @ =gUnknown_03004B00
+ ldr r2, _080DEA70 @ =gBattleAnimArgs
ldrh r0, [r2]
strh r0, [r1, 0x1C]
ldr r4, _080DEA74 @ =gUnknown_0202F7C8
@@ -41922,7 +41922,7 @@ _080DE98A:
mov r2, r10
subs r0, r2, r6
lsls r0, 4
- ldr r3, _080DEA70 @ =gUnknown_03004B00
+ ldr r3, _080DEA70 @ =gBattleAnimArgs
movs r2, 0x2
ldrsh r1, [r3, r2]
bl __divsi3
@@ -41932,12 +41932,12 @@ _080DE98A:
asrs r0, 16
subs r0, r7
lsls r0, 4
- ldr r2, _080DEA70 @ =gUnknown_03004B00
+ ldr r2, _080DEA70 @ =gBattleAnimArgs
movs r3, 0x2
ldrsh r1, [r2, r3]
bl __divsi3
strh r0, [r4, 0x34]
- ldr r1, _080DEA70 @ =gUnknown_03004B00
+ ldr r1, _080DEA70 @ =gBattleAnimArgs
ldrh r0, [r1, 0x2]
strh r0, [r4, 0x36]
mov r2, r10
@@ -41974,7 +41974,7 @@ _080DEA56:
.align 2, 0
_080DEA68: .4byte gTasks
_080DEA6C: .4byte REG_BLDCNT
-_080DEA70: .4byte gUnknown_03004B00
+_080DEA70: .4byte gBattleAnimArgs
_080DEA74: .4byte gUnknown_0202F7C8
_080DEA78: .4byte gSpriteTemplate_83DAF08
_080DEA7C: .4byte gSprites
@@ -42013,7 +42013,7 @@ _080DEA88:
strh r0, [r4, 0x30]
subs r0, r3, r7
lsls r0, 4
- ldr r3, _080DEB2C @ =gUnknown_03004B00
+ ldr r3, _080DEB2C @ =gBattleAnimArgs
movs r2, 0x2
ldrsh r1, [r3, r2]
bl __divsi3
@@ -42022,12 +42022,12 @@ _080DEA88:
ldr r1, [sp, 0xC]
subs r0, r3, r1
lsls r0, 4
- ldr r2, _080DEB2C @ =gUnknown_03004B00
+ ldr r2, _080DEB2C @ =gBattleAnimArgs
movs r3, 0x2
ldrsh r1, [r2, r3]
bl __divsi3
strh r0, [r4, 0x34]
- ldr r1, _080DEB2C @ =gUnknown_03004B00
+ ldr r1, _080DEB2C @ =gBattleAnimArgs
ldrh r0, [r1, 0x2]
strh r0, [r4, 0x36]
mov r2, r10
@@ -42059,7 +42059,7 @@ _080DEB0C:
.align 2, 0
_080DEB24: .4byte gSpriteTemplate_83DAF08
_080DEB28: .4byte gSprites
-_080DEB2C: .4byte gUnknown_03004B00
+_080DEB2C: .4byte gBattleAnimArgs
_080DEB30: .4byte sub_80DE8D8
_080DEB34: .4byte sub_80DEB38
thumb_func_end sub_80DE918
@@ -43298,7 +43298,7 @@ sub_80DF49C: @ 80DF49C
strh r1, [r0, 0x2E]
movs r1, 0xA
strh r1, [r0, 0x30]
- ldr r2, _080DF4E8 @ =gUnknown_03004B00
+ ldr r2, _080DF4E8 @ =gBattleAnimArgs
ldrh r1, [r2]
strh r1, [r0, 0x32]
ldrh r1, [r2, 0x2]
@@ -43319,7 +43319,7 @@ sub_80DF49C: @ 80DF49C
.align 2, 0
_080DF4E0: .4byte gUnknown_02024BE0
_080DF4E4: .4byte gUnknown_0202F7C8
-_080DF4E8: .4byte gUnknown_03004B00
+_080DF4E8: .4byte gBattleAnimArgs
_080DF4EC: .4byte sub_80DF4F4
_080DF4F0: .4byte gSprites
thumb_func_end sub_80DF49C
@@ -43433,7 +43433,7 @@ sub_80DF5A0: @ 80DF5A0
lsls r0, 24
cmp r0, 0
beq _080DF5F0
- ldr r2, _080DF5EC @ =gUnknown_03004B00
+ ldr r2, _080DF5EC @ =gBattleAnimArgs
ldrh r0, [r5, 0x20]
ldrh r1, [r2]
subs r0, r1
@@ -43448,9 +43448,9 @@ sub_80DF5A0: @ 80DF5A0
b _080DF5FA
.align 2, 0
_080DF5E8: .4byte gUnknown_0202F7C8
-_080DF5EC: .4byte gUnknown_03004B00
+_080DF5EC: .4byte gBattleAnimArgs
_080DF5F0:
- ldr r1, _080DF630 @ =gUnknown_03004B00
+ ldr r1, _080DF630 @ =gBattleAnimArgs
ldrh r0, [r1]
ldrh r2, [r5, 0x20]
adds r0, r2
@@ -43483,7 +43483,7 @@ _080DF5FA:
pop {r0}
bx r0
.align 2, 0
-_080DF630: .4byte gUnknown_03004B00
+_080DF630: .4byte gBattleAnimArgs
_080DF634: .4byte move_anim_8074EE0
_080DF638: .4byte sub_8078504
thumb_func_end sub_80DF5A0
@@ -43512,7 +43512,7 @@ sub_80DF63C: @ 80DF63C
lsls r0, 24
cmp r0, 0
beq _080DF6A0
- ldr r2, _080DF69C @ =gUnknown_03004B00
+ ldr r2, _080DF69C @ =gBattleAnimArgs
ldrh r0, [r5, 0x20]
ldrh r1, [r2, 0x2]
subs r0, r1
@@ -43532,9 +43532,9 @@ sub_80DF63C: @ 80DF63C
.align 2, 0
_080DF694: .4byte gUnknown_0202F7C9
_080DF698: .4byte gUnknown_0202F7C8
-_080DF69C: .4byte gUnknown_03004B00
+_080DF69C: .4byte gBattleAnimArgs
_080DF6A0:
- ldr r1, _080DF6E4 @ =gUnknown_03004B00
+ ldr r1, _080DF6E4 @ =gBattleAnimArgs
ldrh r0, [r1]
ldrh r2, [r5, 0x20]
adds r0, r2
@@ -43555,7 +43555,7 @@ _080DF6A0:
movs r1, 0x1
bl StartSpriteAnim
_080DF6CA:
- ldr r0, _080DF6E4 @ =gUnknown_03004B00
+ ldr r0, _080DF6E4 @ =gBattleAnimArgs
ldrh r0, [r0, 0x8]
strh r0, [r5, 0x2E]
ldr r0, _080DF6E8 @ =sub_8078B34
@@ -43567,7 +43567,7 @@ _080DF6CA:
pop {r0}
bx r0
.align 2, 0
-_080DF6E4: .4byte gUnknown_03004B00
+_080DF6E4: .4byte gBattleAnimArgs
_080DF6E8: .4byte sub_8078B34
_080DF6EC: .4byte move_anim_8074EE0
thumb_func_end sub_80DF63C
@@ -43576,7 +43576,7 @@ _080DF6EC: .4byte move_anim_8074EE0
sub_80DF6F0: @ 80DF6F0
push {r4,r5,lr}
adds r5, r0, 0
- ldr r0, _080DF704 @ =gUnknown_03004B00
+ ldr r0, _080DF704 @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
@@ -43584,7 +43584,7 @@ sub_80DF6F0: @ 80DF6F0
ldr r4, _080DF708 @ =gUnknown_0202F7C8
b _080DF70E
.align 2, 0
-_080DF704: .4byte gUnknown_03004B00
+_080DF704: .4byte gBattleAnimArgs
_080DF708: .4byte gUnknown_0202F7C8
_080DF70C:
ldr r4, _080DF750 @ =gUnknown_0202F7C9
@@ -43601,7 +43601,7 @@ _080DF70E:
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x22]
- ldr r4, _080DF754 @ =gUnknown_03004B00
+ ldr r4, _080DF754 @ =gBattleAnimArgs
movs r0, 0x2
ldrsh r1, [r4, r0]
adds r0, r5, 0
@@ -43620,7 +43620,7 @@ _080DF70E:
bx r0
.align 2, 0
_080DF750: .4byte gUnknown_0202F7C9
-_080DF754: .4byte gUnknown_03004B00
+_080DF754: .4byte gBattleAnimArgs
_080DF758: .4byte sub_8078600
_080DF75C: .4byte move_anim_8074EE0
thumb_func_end sub_80DF6F0
@@ -43669,7 +43669,7 @@ sub_80DF78C: @ 80DF78C
strh r5, [r6, 0x36]
movs r0, 0x1
strh r0, [r6, 0x38]
- ldr r0, _080DF7E4 @ =gUnknown_03004B00
+ ldr r0, _080DF7E4 @ =gBattleAnimArgs
ldrh r0, [r0]
strh r0, [r6, 0x3A]
ldr r4, _080DF7E8 @ =gUnknown_02024C07
@@ -43689,7 +43689,7 @@ sub_80DF78C: @ 80DF78C
b _080DF7EE
.align 2, 0
_080DF7E0: .4byte gUnknown_0202F7C8
-_080DF7E4: .4byte gUnknown_03004B00
+_080DF7E4: .4byte gBattleAnimArgs
_080DF7E8: .4byte gUnknown_02024C07
_080DF7EC:
lsrs r0, r1, 17
@@ -44120,7 +44120,7 @@ sub_80DFB28: @ 80DFB28
mov r6, r8
push {r6}
adds r4, r0, 0
- ldr r5, _080DFBC8 @ =gUnknown_03004B00
+ ldr r5, _080DFBC8 @ =gBattleAnimArgs
movs r0, 0x4
ldrsh r1, [r5, r0]
lsls r0, r1, 1
@@ -44193,7 +44193,7 @@ _080DFBB0:
pop {r0}
bx r0
.align 2, 0
-_080DFBC8: .4byte gUnknown_03004B00
+_080DFBC8: .4byte gBattleAnimArgs
_080DFBCC: .4byte gUnknown_0202F7C8
_080DFBD0: .4byte sub_80DFBD8
_080DFBD4: .4byte gUnknown_03000730
@@ -44248,7 +44248,7 @@ sub_80DFC24: @ 80DFC24
adds r1, r4
lsls r1, 3
adds r1, r0
- ldr r0, _080DFC5C @ =gUnknown_03004B00
+ ldr r0, _080DFC5C @ =gBattleAnimArgs
ldrh r0, [r0]
strh r0, [r1, 0x8]
ldr r0, _080DFC60 @ =gUnknown_0202F7C8
@@ -44267,7 +44267,7 @@ sub_80DFC24: @ 80DFC24
b _080DFC74
.align 2, 0
_080DFC58: .4byte gTasks
-_080DFC5C: .4byte gUnknown_03004B00
+_080DFC5C: .4byte gBattleAnimArgs
_080DFC60: .4byte gUnknown_0202F7C8
_080DFC64: .4byte REG_BLDALPHA
_080DFC68: .4byte REG_BLDCNT
@@ -44372,7 +44372,7 @@ sub_80DFD24: @ 80DFD24
adds r1, r0
lsls r1, 3
adds r1, r2
- ldr r0, _080DFD4C @ =gUnknown_03004B00
+ ldr r0, _080DFD4C @ =gBattleAnimArgs
ldrh r0, [r0]
strh r0, [r1, 0x8]
movs r2, 0x80
@@ -44385,7 +44385,7 @@ sub_80DFD24: @ 80DFD24
bx lr
.align 2, 0
_080DFD48: .4byte gTasks
-_080DFD4C: .4byte gUnknown_03004B00
+_080DFD4C: .4byte gBattleAnimArgs
_080DFD50: .4byte sub_80DFD58
_080DFD54: .4byte REG_BLDALPHA
thumb_func_end sub_80DFD24
@@ -44619,7 +44619,7 @@ _080DFF14:
sub_80DFF1C: @ 80DFF1C
push {r4,r5,lr}
adds r4, r0, 0
- ldr r5, _080DFF50 @ =gUnknown_03004B00
+ ldr r5, _080DFF50 @ =gBattleAnimArgs
ldrh r0, [r5]
ldrh r1, [r4, 0x20]
adds r0, r1
@@ -44643,7 +44643,7 @@ sub_80DFF1C: @ 80DFF1C
pop {r0}
bx r0
.align 2, 0
-_080DFF50: .4byte gUnknown_03004B00
+_080DFF50: .4byte gBattleAnimArgs
_080DFF54: .4byte sub_80DFF58
thumb_func_end sub_80DFF1C
@@ -44718,7 +44718,7 @@ _080DFFCA:
sub_80DFFD0: @ 80DFFD0
push {r4-r7,lr}
adds r4, r0, 0
- ldr r0, _080DFFE4 @ =gUnknown_03004B00
+ ldr r0, _080DFFE4 @ =gBattleAnimArgs
movs r2, 0
ldrsh r1, [r0, r2]
adds r3, r0, 0
@@ -44727,7 +44727,7 @@ sub_80DFFD0: @ 80DFFD0
ldr r0, _080DFFE8 @ =gUnknown_0202F7C8
b _080DFFEE
.align 2, 0
-_080DFFE4: .4byte gUnknown_03004B00
+_080DFFE4: .4byte gBattleAnimArgs
_080DFFE8: .4byte gUnknown_0202F7C8
_080DFFEC:
ldr r0, _080E001C @ =gUnknown_0202F7C9
@@ -46016,7 +46016,7 @@ _080E0A0C: .4byte gUnknown_0202F7C8
sub_80E0A10: @ 80E0A10
push {r4,lr}
adds r4, r0, 0
- ldr r1, _080E0A40 @ =gUnknown_03004B00
+ ldr r1, _080E0A40 @ =gBattleAnimArgs
ldrh r0, [r1]
ldrh r2, [r4, 0x20]
adds r0, r2
@@ -46037,7 +46037,7 @@ sub_80E0A10: @ 80E0A10
pop {r0}
bx r0
.align 2, 0
-_080E0A40: .4byte gUnknown_03004B00
+_080E0A40: .4byte gBattleAnimArgs
_080E0A44: .4byte sub_8078600
_080E0A48: .4byte move_anim_8072740
thumb_func_end sub_80E0A10
@@ -46104,7 +46104,7 @@ sub_80E0A4C: @ 80E0A4C
orrs r1, r0
strb r1, [r5]
_080E0AC4:
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _080E0B40
@@ -46274,7 +46274,7 @@ _080E0BCC:
lsrs r0, 4
adds r0, 0x10
adds r1, r0, 0
- ldr r2, _080E0C84 @ =gUnknown_03004B00
+ ldr r2, _080E0C84 @ =gBattleAnimArgs
movs r3, 0x2
ldrsh r0, [r2, r3]
cmp r0, 0
@@ -46295,7 +46295,7 @@ _080E0C74: .4byte gUnknown_08D1D54C
_080E0C78: .4byte gUnknown_030042C0
_080E0C7C: .4byte gSprites
_080E0C80: .4byte gUnknown_030041B4
-_080E0C84: .4byte gUnknown_03004B00
+_080E0C84: .4byte gBattleAnimArgs
_080E0C88:
lsls r0, r1, 4
ldrh r3, [r2, 0x4]
@@ -46310,7 +46310,7 @@ _080E0C94:
lsls r0, 3
adds r0, r1
strh r5, [r0, 0x8]
- ldr r2, _080E0CC8 @ =gUnknown_03004B00
+ ldr r2, _080E0CC8 @ =gBattleAnimArgs
ldrh r1, [r2]
strh r1, [r0, 0xA]
ldrh r1, [r2, 0x2]
@@ -46329,7 +46329,7 @@ _080E0C94:
bx r0
.align 2, 0
_080E0CC4: .4byte gTasks
-_080E0CC8: .4byte gUnknown_03004B00
+_080E0CC8: .4byte gBattleAnimArgs
_080E0CCC: .4byte sub_80E0CD0
thumb_func_end sub_80E0A4C
@@ -46498,7 +46498,7 @@ sub_80E0E24: @ 80E0E24
lsls r0, 24
lsrs r5, r0, 24
movs r4, 0
- ldr r0, _080E0E44 @ =gUnknown_03004B00
+ ldr r0, _080E0E44 @ =gBattleAnimArgs
movs r2, 0
ldrsh r1, [r0, r2]
adds r2, r0, 0
@@ -46510,7 +46510,7 @@ sub_80E0E24: @ 80E0E24
ldr r0, [r0]
mov pc, r0
.align 2, 0
-_080E0E44: .4byte gUnknown_03004B00
+_080E0E44: .4byte gBattleAnimArgs
_080E0E48: .4byte _080E0E4C
.align 2, 0
_080E0E4C:
@@ -46575,7 +46575,7 @@ _080E0EB6:
ldrb r0, [r0, 0x5]
lsrs r0, 4
adds r0, 0x10
- ldr r1, _080E0EE4 @ =gUnknown_03004B00
+ ldr r1, _080E0EE4 @ =gBattleAnimArgs
ldrb r1, [r1, 0x2]
bl sub_8079108
_080E0ED2:
@@ -46586,7 +46586,7 @@ _080E0ED2:
bx r0
.align 2, 0
_080E0EE0: .4byte gSprites
-_080E0EE4: .4byte gUnknown_03004B00
+_080E0EE4: .4byte gBattleAnimArgs
thumb_func_end sub_80E0E24
thumb_func_start sub_80E0EE8
@@ -46598,14 +46598,14 @@ sub_80E0EE8: @ 80E0EE8
ldrb r0, [r2]
cmp r0, 0x1
bhi _080E0EFC
- ldr r1, _080E0F18 @ =gUnknown_03004B00
+ ldr r1, _080E0F18 @ =gBattleAnimArgs
movs r0, 0
strh r0, [r1, 0xE]
_080E0EFC:
ldrb r0, [r2]
cmp r0, 0x2
bne _080E0F08
- ldr r1, _080E0F18 @ =gUnknown_03004B00
+ ldr r1, _080E0F18 @ =gBattleAnimArgs
movs r0, 0x1
strh r0, [r1, 0xE]
_080E0F08:
@@ -46615,7 +46615,7 @@ _080E0F08:
bx r0
.align 2, 0
_080E0F14: .4byte gUnknown_0202F7C4
-_080E0F18: .4byte gUnknown_03004B00
+_080E0F18: .4byte gBattleAnimArgs
thumb_func_end sub_80E0EE8
thumb_func_start sub_80E0F1C
@@ -46743,12 +46743,12 @@ sub_80E1004: @ 80E1004
lsls r0, 24
cmp r0, 0
beq _080E1024
- ldr r1, _080E1068 @ =gUnknown_03004B00
+ ldr r1, _080E1068 @ =gBattleAnimArgs
ldrh r0, [r1, 0x4]
negs r0, r0
strh r0, [r1, 0x4]
_080E1024:
- ldr r4, _080E1068 @ =gUnknown_03004B00
+ ldr r4, _080E1068 @ =gBattleAnimArgs
ldrh r0, [r4, 0x8]
strh r0, [r6, 0x2E]
ldr r5, _080E106C @ =gUnknown_0202F7C9
@@ -46778,7 +46778,7 @@ _080E1024:
bx r0
.align 2, 0
_080E1064: .4byte gUnknown_0202F7C8
-_080E1068: .4byte gUnknown_03004B00
+_080E1068: .4byte gBattleAnimArgs
_080E106C: .4byte gUnknown_0202F7C9
_080E1070: .4byte sub_8078B34
_080E1074: .4byte move_anim_8072740
@@ -46827,7 +46827,7 @@ _080E10C0:
lsls r0, 16
lsrs r4, r0, 16
_080E10D0:
- ldr r0, _080E10FC @ =gUnknown_03004B00
+ ldr r0, _080E10FC @ =gBattleAnimArgs
ldrh r0, [r0, 0x4]
strh r0, [r6, 0x2E]
mov r1, r8
@@ -46847,7 +46847,7 @@ _080E10D0:
bx r0
.align 2, 0
_080E10F8: .4byte gUnknown_0202F7C9
-_080E10FC: .4byte gUnknown_03004B00
+_080E10FC: .4byte gBattleAnimArgs
_080E1100: .4byte sub_8078B34
_080E1104: .4byte move_anim_8074EE0
thumb_func_end sub_80E1078
@@ -46867,7 +46867,7 @@ sub_80E1108: @ 80E1108
ands r0, r2
orrs r0, r1
strh r0, [r5, 0x4]
- ldr r6, _080E1170 @ =gUnknown_03004B00
+ ldr r6, _080E1170 @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r6, r1]
cmp r0, 0
@@ -46904,7 +46904,7 @@ _080E1162:
.align 2, 0
_080E1168: .4byte 0x000003ff
_080E116C: .4byte 0xfffffc00
-_080E1170: .4byte gUnknown_03004B00
+_080E1170: .4byte gBattleAnimArgs
_080E1174: .4byte gUnknown_0202F7C8
_080E1178: .4byte sub_80E1198
_080E117C:
@@ -47029,7 +47029,7 @@ sub_80E1244: @ 80E1244
lsls r0, 3
ldr r1, _080E1264 @ =gTasks
adds r1, r0, r1
- ldr r0, _080E1268 @ =gUnknown_03004B00
+ ldr r0, _080E1268 @ =gBattleAnimArgs
movs r3, 0
ldrsh r0, [r0, r3]
cmp r0, 0
@@ -47038,7 +47038,7 @@ sub_80E1244: @ 80E1244
b _080E1272
.align 2, 0
_080E1264: .4byte gTasks
-_080E1268: .4byte gUnknown_03004B00
+_080E1268: .4byte gBattleAnimArgs
_080E126C: .4byte sub_80E1284
_080E1270:
ldr r0, _080E1280 @ =sub_80E143C
@@ -47334,7 +47334,7 @@ sub_80E149C: @ 80E149C
lsls r0, 3
ldr r1, _080E14BC @ =gTasks
adds r1, r0, r1
- ldr r0, _080E14C0 @ =gUnknown_03004B00
+ ldr r0, _080E14C0 @ =gBattleAnimArgs
movs r3, 0
ldrsh r0, [r0, r3]
cmp r0, 0
@@ -47343,7 +47343,7 @@ sub_80E149C: @ 80E149C
b _080E14CA
.align 2, 0
_080E14BC: .4byte gTasks
-_080E14C0: .4byte gUnknown_03004B00
+_080E14C0: .4byte gBattleAnimArgs
_080E14C4: .4byte sub_80E14DC
_080E14C8:
ldr r0, _080E14D8 @ =sub_80E1560
@@ -47662,7 +47662,7 @@ _080E1724: .4byte 0xa2600001
sub_80E1728: @ 80E1728
push {r4-r7,lr}
adds r5, r0, 0
- ldr r0, _080E173C @ =gUnknown_03004B00
+ ldr r0, _080E173C @ =gBattleAnimArgs
movs r2, 0
ldrsh r1, [r0, r2]
adds r7, r0, 0
@@ -47671,7 +47671,7 @@ sub_80E1728: @ 80E1728
ldr r0, _080E1740 @ =gUnknown_0202F7C8
b _080E1746
.align 2, 0
-_080E173C: .4byte gUnknown_03004B00
+_080E173C: .4byte gBattleAnimArgs
_080E1740: .4byte gUnknown_0202F7C8
_080E1744:
ldr r0, _080E17A8 @ =gUnknown_0202F7C9
@@ -47747,7 +47747,7 @@ _080E17C4:
sub_80E17CC: @ 80E17CC
push {r4-r6,lr}
adds r6, r0, 0
- ldr r0, _080E17E0 @ =gUnknown_03004B00
+ ldr r0, _080E17E0 @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
@@ -47755,7 +47755,7 @@ sub_80E17CC: @ 80E17CC
ldr r0, _080E17E4 @ =gUnknown_0202F7C8
b _080E17EA
.align 2, 0
-_080E17E0: .4byte gUnknown_03004B00
+_080E17E0: .4byte gBattleAnimArgs
_080E17E4: .4byte gUnknown_0202F7C8
_080E17E8:
ldr r0, _080E1848 @ =gUnknown_0202F7C9
@@ -47768,7 +47768,7 @@ _080E17EA:
lsrs r0, 24
ldr r2, _080E184C @ =0x0000fff0
adds r0, r2
- ldr r4, _080E1850 @ =gUnknown_03004B00
+ ldr r4, _080E1850 @ =gBattleAnimArgs
movs r3, 0x2
ldrsh r1, [r4, r3]
lsls r1, 5
@@ -47807,7 +47807,7 @@ _080E17EA:
.align 2, 0
_080E1848: .4byte gUnknown_0202F7C9
_080E184C: .4byte 0x0000fff0
-_080E1850: .4byte gUnknown_03004B00
+_080E1850: .4byte gBattleAnimArgs
_080E1854: .4byte 0x000003ff
_080E1858: .4byte 0xfffffc00
_080E185C: .4byte move_anim_8072740
@@ -47824,7 +47824,7 @@ sub_80E1864: @ 80E1864
lsls r0, 3
ldr r1, _080E1888 @ =gTasks
adds r4, r0, r1
- ldr r0, _080E188C @ =gUnknown_03004B00
+ ldr r0, _080E188C @ =gBattleAnimArgs
ldrh r2, [r0, 0x2]
movs r3, 0x2
ldrsh r1, [r0, r3]
@@ -47835,7 +47835,7 @@ sub_80E1864: @ 80E1864
b _080E189C
.align 2, 0
_080E1888: .4byte gTasks
-_080E188C: .4byte gUnknown_03004B00
+_080E188C: .4byte gBattleAnimArgs
_080E1890:
ldr r0, _080E18BC @ =gUnknown_0202F7BC
ldrh r0, [r0]
@@ -48252,7 +48252,7 @@ sub_80E1B88: @ 80E1B88
push {lr}
lsls r0, 24
lsrs r1, r0, 24
- ldr r3, _080E1BA8 @ =gUnknown_03004B00
+ ldr r3, _080E1BA8 @ =gBattleAnimArgs
movs r2, 0
ldr r0, _080E1BAC @ =gUnknown_0202F7BC
ldrh r0, [r0]
@@ -48266,7 +48266,7 @@ _080E1B9C:
pop {r0}
bx r0
.align 2, 0
-_080E1BA8: .4byte gUnknown_03004B00
+_080E1BA8: .4byte gBattleAnimArgs
_080E1BAC: .4byte gUnknown_0202F7BC
thumb_func_end sub_80E1B88
@@ -48275,7 +48275,7 @@ sub_80E1BB0: @ 80E1BB0
push {r4-r7,lr}
lsls r0, 24
lsrs r7, r0, 24
- ldr r2, _080E1BC8 @ =gUnknown_03004B00
+ ldr r2, _080E1BC8 @ =gBattleAnimArgs
ldrh r1, [r2]
movs r0, 0x1
ands r0, r1
@@ -48285,7 +48285,7 @@ sub_80E1BB0: @ 80E1BB0
ldr r0, _080E1BCC @ =gUnknown_0202F7C9
b _080E1BD2
.align 2, 0
-_080E1BC8: .4byte gUnknown_03004B00
+_080E1BC8: .4byte gBattleAnimArgs
_080E1BCC: .4byte gUnknown_0202F7C9
_080E1BD0:
ldr r0, _080E1C40 @ =gUnknown_0202F7C8
@@ -48361,7 +48361,7 @@ sub_80E1C58: @ 80E1C58
lsls r0, 3
ldr r1, _080E1C88 @ =gTasks
adds r2, r0, r1
- ldr r0, _080E1C8C @ =gUnknown_03004B00
+ ldr r0, _080E1C8C @ =gBattleAnimArgs
movs r4, 0xE
ldrsh r1, [r0, r4]
movs r4, 0xE
@@ -48378,7 +48378,7 @@ sub_80E1C58: @ 80E1C58
b _080E1CA4
.align 2, 0
_080E1C88: .4byte gTasks
-_080E1C8C: .4byte gUnknown_03004B00
+_080E1C8C: .4byte gBattleAnimArgs
_080E1C90: .4byte gUnknown_030041B0
_080E1C94: .4byte gUnknown_030041B8
_080E1C98:
@@ -48401,7 +48401,7 @@ _080E1CB0: .4byte gUnknown_030041B8
sub_80E1CB4: @ 80E1CB4
push {r4,r5,lr}
adds r4, r0, 0
- ldr r5, _080E1CEC @ =gUnknown_03004B00
+ ldr r5, _080E1CEC @ =gBattleAnimArgs
ldrh r0, [r5]
ldrh r1, [r4, 0x20]
adds r0, r1
@@ -48426,7 +48426,7 @@ sub_80E1CB4: @ 80E1CB4
strh r0, [r4, 0x36]
b _080E1D02
.align 2, 0
-_080E1CEC: .4byte gUnknown_03004B00
+_080E1CEC: .4byte gBattleAnimArgs
_080E1CF0: .4byte gUnknown_0202F7C8
_080E1CF4:
ldrh r0, [r5, 0x6]
@@ -48436,7 +48436,7 @@ _080E1CF4:
movs r1, 0x1
bl StartSpriteAnim
_080E1D02:
- ldr r0, _080E1D18 @ =gUnknown_03004B00
+ ldr r0, _080E1D18 @ =gBattleAnimArgs
ldrh r0, [r0, 0x8]
strh r0, [r4, 0x34]
ldr r1, _080E1D1C @ =sub_80E1D20
@@ -48447,7 +48447,7 @@ _080E1D02:
pop {r0}
bx r0
.align 2, 0
-_080E1D18: .4byte gUnknown_03004B00
+_080E1D18: .4byte gBattleAnimArgs
_080E1D1C: .4byte sub_80E1D20
thumb_func_end sub_80E1CB4
@@ -48510,7 +48510,7 @@ sub_80E1D84: @ 80E1D84
push {r4,r5,lr}
sub sp, 0x4
adds r5, r0, 0
- ldr r4, _080E1DBC @ =gUnknown_03004B00
+ ldr r4, _080E1DBC @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r4, r1]
bl sub_80E1DC4
@@ -48534,7 +48534,7 @@ sub_80E1D84: @ 80E1D84
pop {r0}
bx r0
.align 2, 0
-_080E1DBC: .4byte gUnknown_03004B00
+_080E1DBC: .4byte gBattleAnimArgs
_080E1DC0: .4byte sub_80E1E0C
thumb_func_end sub_80E1D84
@@ -48600,7 +48600,7 @@ _080E1E28: .4byte gPaletteFade
sub_80E1E2C: @ 80E1E2C
push {r4,r5,lr}
adds r5, r0, 0
- ldr r4, _080E1E78 @ =gUnknown_03004B00
+ ldr r4, _080E1E78 @ =gBattleAnimArgs
ldrh r0, [r4, 0x2]
strh r0, [r5, 0x2E]
strh r0, [r5, 0x30]
@@ -48634,7 +48634,7 @@ sub_80E1E2C: @ 80E1E2C
pop {r0}
bx r0
.align 2, 0
-_080E1E78: .4byte gUnknown_03004B00
+_080E1E78: .4byte gBattleAnimArgs
_080E1E7C: .4byte sub_80E1E80
thumb_func_end sub_80E1E2C
@@ -48741,7 +48741,7 @@ _080E1F38: .4byte gPaletteFade
sub_80E1F3C: @ 80E1F3C
push {r4,lr}
adds r4, r0, 0
- ldr r1, _080E1F80 @ =gUnknown_03004B00
+ ldr r1, _080E1F80 @ =gBattleAnimArgs
ldrh r0, [r1]
ldrh r2, [r4, 0x20]
adds r0, r2
@@ -48772,7 +48772,7 @@ sub_80E1F3C: @ 80E1F3C
pop {r0}
bx r0
.align 2, 0
-_080E1F80: .4byte gUnknown_03004B00
+_080E1F80: .4byte gBattleAnimArgs
_080E1F84: .4byte move_anim_8074EE0
_080E1F88: .4byte sub_8078174
thumb_func_end sub_80E1F3C
@@ -48787,7 +48787,7 @@ sub_80E1F8C: @ 80E1F8C
adds r4, r0
lsls r4, 3
adds r4, r1
- ldr r3, _080E1FD4 @ =gUnknown_03004B00
+ ldr r3, _080E1FD4 @ =gBattleAnimArgs
ldrh r1, [r3]
movs r5, 0
strh r1, [r4, 0x8]
@@ -48813,7 +48813,7 @@ sub_80E1F8C: @ 80E1F8C
bx r0
.align 2, 0
_080E1FD0: .4byte gTasks
-_080E1FD4: .4byte gUnknown_03004B00
+_080E1FD4: .4byte gBattleAnimArgs
_080E1FD8: .4byte sub_80E202C
thumb_func_end sub_80E1F8C
@@ -48927,7 +48927,7 @@ sub_80E2094: @ 80E2094
adds r4, r0
lsls r4, 3
adds r4, r1
- ldr r3, _080E20DC @ =gUnknown_03004B00
+ ldr r3, _080E20DC @ =gBattleAnimArgs
ldrh r1, [r3]
movs r5, 0
strh r1, [r4, 0x8]
@@ -48953,7 +48953,7 @@ sub_80E2094: @ 80E2094
bx r0
.align 2, 0
_080E20D8: .4byte gTasks
-_080E20DC: .4byte gUnknown_03004B00
+_080E20DC: .4byte gBattleAnimArgs
_080E20E0: .4byte sub_80E2140
thumb_func_end sub_80E2094
@@ -49073,7 +49073,7 @@ sub_80E21A8: @ 80E21A8
adds r4, r0
lsls r4, 3
adds r4, r1
- ldr r5, _080E220C @ =gUnknown_03004B00
+ ldr r5, _080E220C @ =gBattleAnimArgs
ldrh r0, [r5, 0x2]
strh r0, [r4, 0x8]
ldrh r0, [r5, 0x2]
@@ -49112,7 +49112,7 @@ sub_80E21A8: @ 80E21A8
bx r0
.align 2, 0
_080E2208: .4byte gTasks
-_080E220C: .4byte gUnknown_03004B00
+_080E220C: .4byte gBattleAnimArgs
_080E2210: .4byte sub_80E2214
thumb_func_end sub_80E21A8
@@ -49269,7 +49269,7 @@ sub_80E2324: @ 80E2324
ldrb r6, [r0]
ldr r0, _080E23A0 @ =gUnknown_0202F7C9
ldrb r7, [r0]
- ldr r4, _080E23A4 @ =gUnknown_03004B00
+ ldr r4, _080E23A4 @ =gBattleAnimArgs
ldrh r1, [r4]
movs r5, 0x80
lsls r5, 1
@@ -49319,7 +49319,7 @@ _080E2382:
.align 2, 0
_080E239C: .4byte gUnknown_0202F7C8
_080E23A0: .4byte gUnknown_0202F7C9
-_080E23A4: .4byte gUnknown_03004B00
+_080E23A4: .4byte gBattleAnimArgs
thumb_func_end sub_80E2324
thumb_func_start unref_sub_80E23A8
@@ -49342,7 +49342,7 @@ unref_sub_80E23A8: @ 80E23A8
ldrsh r0, [r4, r1]
cmp r0, 0
bne _080E23EA
- ldr r1, _080E24A0 @ =gUnknown_03004B00
+ ldr r1, _080E24A0 @ =gBattleAnimArgs
ldrh r0, [r1]
strh r0, [r4, 0xC]
ldrh r0, [r1, 0x2]
@@ -49450,7 +49450,7 @@ _080E248E:
bx r0
.align 2, 0
_080E249C: .4byte gTasks
-_080E24A0: .4byte gUnknown_03004B00
+_080E24A0: .4byte gBattleAnimArgs
_080E24A4: .4byte gUnknown_0202F7C8
_080E24A8: .4byte gUnknown_0202F7C9
_080E24AC: .4byte 0x0000ffff
@@ -49468,7 +49468,7 @@ sub_80E24B8: @ 80E24B8
movs r1, 0x4
orrs r0, r1
strb r0, [r2]
- ldr r1, _080E24EC @ =gUnknown_03004B00
+ ldr r1, _080E24EC @ =gBattleAnimArgs
ldrh r0, [r1]
negs r0, r0
strh r0, [r4, 0x2E]
@@ -49487,7 +49487,7 @@ sub_80E24B8: @ 80E24B8
beq _080E24F6
b _080E2518
.align 2, 0
-_080E24EC: .4byte gUnknown_03004B00
+_080E24EC: .4byte gBattleAnimArgs
_080E24F0:
cmp r0, 0x2
beq _080E2508
@@ -49523,7 +49523,7 @@ _080E2520:
orrs r1, r0
ldr r0, [r1]
strh r0, [r4, 0x36]
- ldr r0, _080E2554 @ =gUnknown_03004B00
+ ldr r0, _080E2554 @ =gBattleAnimArgs
ldrh r0, [r0, 0x6]
strh r0, [r4, 0x38]
subs r0, 0x2
@@ -49540,7 +49540,7 @@ _080E2544:
bx r0
.align 2, 0
_080E2550: .4byte gSpriteCoordOffsetY
-_080E2554: .4byte gUnknown_03004B00
+_080E2554: .4byte gBattleAnimArgs
_080E2558: .4byte sub_80E255C
thumb_func_end sub_80E24B8
@@ -49670,7 +49670,7 @@ sub_80E260C: @ 80E260C
ldrb r1, [r0]
ands r2, r1
strb r2, [r0]
- ldr r0, _080E2690 @ =gUnknown_03004B00
+ ldr r0, _080E2690 @ =gBattleAnimArgs
movs r1, 0x8
ldrsh r0, [r0, r1]
cmp r0, 0x2
@@ -49702,7 +49702,7 @@ _080E2680: .4byte gSprites
_080E2684: .4byte gUnknown_02024BE0
_080E2688: .4byte gUnknown_0202F7C8
_080E268C: .4byte gUnknown_0202F7C9
-_080E2690: .4byte gUnknown_03004B00
+_080E2690: .4byte gBattleAnimArgs
_080E2694:
cmp r0, 0
bne _080E269C
@@ -49738,7 +49738,7 @@ sub_80E26BC: @ 80E26BC
adds r2, r0
lsls r2, 3
adds r2, r1
- ldr r3, _080E2700 @ =gUnknown_03004B00
+ ldr r3, _080E2700 @ =gBattleAnimArgs
ldrh r1, [r3]
strh r1, [r2, 0x8]
ldrh r1, [r3, 0x2]
@@ -49763,7 +49763,7 @@ sub_80E26BC: @ 80E26BC
bx r0
.align 2, 0
_080E26FC: .4byte gTasks
-_080E2700: .4byte gUnknown_03004B00
+_080E2700: .4byte gBattleAnimArgs
_080E2704: .4byte gUnknown_030041B0
_080E2708: .4byte gUnknown_030041B8
_080E270C: .4byte sub_80E2710
@@ -49852,7 +49852,7 @@ _080E279A:
sub_80E27A0: @ 80E27A0
push {r4,r5,lr}
adds r5, r0, 0
- ldr r4, _080E27C0 @ =gUnknown_03004B00
+ ldr r4, _080E27C0 @ =gBattleAnimArgs
ldrb r1, [r4, 0x6]
bl StartSpriteAffineAnim
movs r1, 0x4
@@ -49864,7 +49864,7 @@ sub_80E27A0: @ 80E27A0
bl sub_80787B0
b _080E27CC
.align 2, 0
-_080E27C0: .4byte gUnknown_03004B00
+_080E27C0: .4byte gBattleAnimArgs
_080E27C4:
adds r0, r5, 0
movs r1, 0x1
@@ -49887,7 +49887,7 @@ _080E27E4: .4byte move_anim_8072740
sub_80E27E8: @ 80E27E8
push {r4,r5,lr}
adds r5, r0, 0
- ldr r4, _080E2808 @ =gUnknown_03004B00
+ ldr r4, _080E2808 @ =gBattleAnimArgs
ldrb r1, [r4, 0x6]
bl StartSpriteAffineAnim
movs r1, 0x4
@@ -49899,13 +49899,13 @@ sub_80E27E8: @ 80E27E8
bl sub_80787B0
b _080E2814
.align 2, 0
-_080E2808: .4byte gUnknown_03004B00
+_080E2808: .4byte gBattleAnimArgs
_080E280C:
adds r0, r5, 0
movs r1, 0x1
bl sub_8078764
_080E2814:
- ldr r0, _080E282C @ =gUnknown_03004B00
+ ldr r0, _080E282C @ =gBattleAnimArgs
ldrh r0, [r0, 0x8]
strh r0, [r5, 0x2E]
ldr r0, _080E2830 @ =sub_80785E4
@@ -49917,7 +49917,7 @@ _080E2814:
pop {r0}
bx r0
.align 2, 0
-_080E282C: .4byte gUnknown_03004B00
+_080E282C: .4byte gBattleAnimArgs
_080E2830: .4byte sub_80785E4
_080E2834: .4byte sub_80DA48C
thumb_func_end sub_80E27E8
@@ -49936,7 +49936,7 @@ sub_80E2838: @ 80E2838
lsls r0, 24
cmp r0, 0
bne _080E285C
- ldr r1, _080E286C @ =gUnknown_03004B00
+ ldr r1, _080E286C @ =gBattleAnimArgs
ldrh r0, [r1, 0x2]
negs r0, r0
strh r0, [r1, 0x2]
@@ -49948,14 +49948,14 @@ _080E285C:
bx r0
.align 2, 0
_080E2868: .4byte gUnknown_0202F7C8
-_080E286C: .4byte gUnknown_03004B00
+_080E286C: .4byte gBattleAnimArgs
thumb_func_end sub_80E2838
thumb_func_start sub_80E2870
sub_80E2870: @ 80E2870
push {r4,r5,lr}
adds r4, r0, 0
- ldr r5, _080E28A8 @ =gUnknown_03004B00
+ ldr r5, _080E28A8 @ =gBattleAnimArgs
movs r0, 0x2
ldrsh r1, [r5, r0]
movs r0, 0x1
@@ -49979,7 +49979,7 @@ _080E288C:
bl sub_80787B0
b _080E28B4
.align 2, 0
-_080E28A8: .4byte gUnknown_03004B00
+_080E28A8: .4byte gBattleAnimArgs
_080E28AC:
adds r0, r4, 0
movs r1, 0
@@ -50024,7 +50024,7 @@ _080E2904: .4byte sub_80785E4
sub_80E2908: @ 80E2908
push {r4,r5,lr}
adds r4, r0, 0
- ldr r5, _080E2968 @ =gUnknown_03004B00
+ ldr r5, _080E2968 @ =gBattleAnimArgs
ldrb r0, [r5]
bl obj_id_for_side_relative_to_move
lsls r0, 24
@@ -50067,7 +50067,7 @@ sub_80E2908: @ 80E2908
pop {r0}
bx r0
.align 2, 0
-_080E2968: .4byte gUnknown_03004B00
+_080E2968: .4byte gBattleAnimArgs
_080E296C: .4byte gSprites
_080E2970: .4byte move_anim_8074EE0
_080E2974: .4byte sub_80785E4
@@ -50077,7 +50077,7 @@ _080E2974: .4byte sub_80785E4
sub_80E2978: @ 80E2978
push {r4,lr}
adds r4, r0, 0
- ldr r0, _080E2990 @ =gUnknown_03004B00
+ ldr r0, _080E2990 @ =gBattleAnimArgs
movs r1, 0x4
ldrsh r0, [r0, r1]
cmp r0, 0
@@ -50087,13 +50087,13 @@ sub_80E2978: @ 80E2978
bl sub_80787B0
b _080E299C
.align 2, 0
-_080E2990: .4byte gUnknown_03004B00
+_080E2990: .4byte gBattleAnimArgs
_080E2994:
adds r0, r4, 0
movs r1, 0x1
bl sub_8078764
_080E299C:
- ldr r0, _080E29B4 @ =gUnknown_03004B00
+ ldr r0, _080E29B4 @ =gBattleAnimArgs
ldrh r0, [r0, 0x6]
strh r0, [r4, 0x2E]
ldr r1, _080E29B8 @ =move_anim_8072740
@@ -50105,7 +50105,7 @@ _080E299C:
pop {r0}
bx r0
.align 2, 0
-_080E29B4: .4byte gUnknown_03004B00
+_080E29B4: .4byte gBattleAnimArgs
_080E29B8: .4byte move_anim_8072740
_080E29BC: .4byte sub_80782D8
thumb_func_end sub_80E2978
@@ -50114,7 +50114,7 @@ _080E29BC: .4byte sub_80782D8
sub_80E29C0: @ 80E29C0
push {r4,r5,lr}
adds r5, r0, 0
- ldr r4, _080E29E0 @ =gUnknown_03004B00
+ ldr r4, _080E29E0 @ =gBattleAnimArgs
ldrb r1, [r4, 0x6]
bl StartSpriteAffineAnim
movs r1, 0x4
@@ -50126,7 +50126,7 @@ sub_80E29C0: @ 80E29C0
bl sub_80787B0
b _080E29EC
.align 2, 0
-_080E29E0: .4byte gUnknown_03004B00
+_080E29E0: .4byte gBattleAnimArgs
_080E29E4:
adds r0, r5, 0
movs r1, 0x1
@@ -50180,7 +50180,7 @@ sub_80E2A38: @ 80E2A38
adds r5, r0, 0
lsls r5, 24
lsrs r5, 24
- ldr r4, _080E2A78 @ =gUnknown_03004B00
+ ldr r4, _080E2A78 @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r4, r1]
bl sub_80E1DC4
@@ -50205,7 +50205,7 @@ sub_80E2A38: @ 80E2A38
pop {r0}
bx r0
.align 2, 0
-_080E2A78: .4byte gUnknown_03004B00
+_080E2A78: .4byte gBattleAnimArgs
thumb_func_end sub_80E2A38
thumb_func_start sub_80E2A7C
@@ -50220,7 +50220,7 @@ sub_80E2A7C: @ 80E2A7C
movs r0, 0x1
bl sub_80E1DC4
adds r5, r0, 0
- ldr r0, _080E2AA8 @ =gUnknown_03004B00
+ ldr r0, _080E2AA8 @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0x7
@@ -50231,7 +50231,7 @@ sub_80E2A7C: @ 80E2A7C
ldr r0, [r0]
mov pc, r0
.align 2, 0
-_080E2AA8: .4byte gUnknown_03004B00
+_080E2AA8: .4byte gBattleAnimArgs
_080E2AAC: .4byte _080E2AB0
.align 2, 0
_080E2AB0:
@@ -50340,12 +50340,12 @@ sub_80E2B74: @ 80E2B74
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
- ldr r0, _080E2B98 @ =gUnknown_03004B00
+ ldr r0, _080E2B98 @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
bl sub_80E1DC4
adds r2, r0, 0
- ldr r0, _080E2B9C @ =gUnknown_0300428C
+ ldr r0, _080E2B9C @ =gBattleTerrain
ldrb r0, [r0]
cmp r0, 0x9
bhi _080E2C4A
@@ -50355,8 +50355,8 @@ sub_80E2B74: @ 80E2B74
ldr r0, [r0]
mov pc, r0
.align 2, 0
-_080E2B98: .4byte gUnknown_03004B00
-_080E2B9C: .4byte gUnknown_0300428C
+_080E2B98: .4byte gBattleAnimArgs
+_080E2B9C: .4byte gBattleTerrain
_080E2BA0: .4byte _080E2BA4
.align 2, 0
_080E2BA4:
@@ -50371,63 +50371,63 @@ _080E2BA4:
.4byte _080E2C44
.4byte _080E2C44
_080E2BCC:
- ldr r1, _080E2BD4 @ =gUnknown_03004B00
+ ldr r1, _080E2BD4 @ =gBattleAnimArgs
ldr r0, _080E2BD8 @ =0x00000b0c
b _080E2C48
.align 2, 0
-_080E2BD4: .4byte gUnknown_03004B00
+_080E2BD4: .4byte gBattleAnimArgs
_080E2BD8: .4byte 0x00000b0c
_080E2BDC:
- ldr r1, _080E2BE4 @ =gUnknown_03004B00
+ ldr r1, _080E2BE4 @ =gBattleAnimArgs
movs r0, 0x9E
lsls r0, 4
b _080E2C48
.align 2, 0
-_080E2BE4: .4byte gUnknown_03004B00
+_080E2BE4: .4byte gBattleAnimArgs
_080E2BE8:
- ldr r1, _080E2BF0 @ =gUnknown_03004B00
+ ldr r1, _080E2BF0 @ =gBattleAnimArgs
ldr r0, _080E2BF4 @ =0x00002f1e
b _080E2C48
.align 2, 0
-_080E2BF0: .4byte gUnknown_03004B00
+_080E2BF0: .4byte gBattleAnimArgs
_080E2BF4: .4byte 0x00002f1e
_080E2BF8:
- ldr r1, _080E2C00 @ =gUnknown_03004B00
+ ldr r1, _080E2C00 @ =gBattleAnimArgs
movs r0, 0x90
lsls r0, 7
b _080E2C48
.align 2, 0
-_080E2C00: .4byte gUnknown_03004B00
+_080E2C00: .4byte gBattleAnimArgs
_080E2C04:
- ldr r1, _080E2C0C @ =gUnknown_03004B00
+ ldr r1, _080E2C0C @ =gBattleAnimArgs
ldr r0, _080E2C10 @ =0x00007ecb
b _080E2C48
.align 2, 0
-_080E2C0C: .4byte gUnknown_03004B00
+_080E2C0C: .4byte gBattleAnimArgs
_080E2C10: .4byte 0x00007ecb
_080E2C14:
- ldr r1, _080E2C1C @ =gUnknown_03004B00
+ ldr r1, _080E2C1C @ =gBattleAnimArgs
ldr r0, _080E2C20 @ =0x00007ecb
b _080E2C48
.align 2, 0
-_080E2C1C: .4byte gUnknown_03004B00
+_080E2C1C: .4byte gBattleAnimArgs
_080E2C20: .4byte 0x00007ecb
_080E2C24:
- ldr r1, _080E2C2C @ =gUnknown_03004B00
+ ldr r1, _080E2C2C @ =gBattleAnimArgs
ldr r0, _080E2C30 @ =0x00002a16
b _080E2C48
.align 2, 0
-_080E2C2C: .4byte gUnknown_03004B00
+_080E2C2C: .4byte gBattleAnimArgs
_080E2C30: .4byte 0x00002a16
_080E2C34:
- ldr r1, _080E2C3C @ =gUnknown_03004B00
+ ldr r1, _080E2C3C @ =gBattleAnimArgs
ldr r0, _080E2C40 @ =0x00000d2e
b _080E2C48
.align 2, 0
-_080E2C3C: .4byte gUnknown_03004B00
+_080E2C3C: .4byte gBattleAnimArgs
_080E2C40: .4byte 0x00000d2e
_080E2C44:
- ldr r1, _080E2C58 @ =gUnknown_03004B00
+ ldr r1, _080E2C58 @ =gBattleAnimArgs
ldr r0, _080E2C5C @ =0x00007fff
_080E2C48:
strh r0, [r1, 0x8]
@@ -50439,7 +50439,7 @@ _080E2C4A:
pop {r0}
bx r0
.align 2, 0
-_080E2C58: .4byte gUnknown_03004B00
+_080E2C58: .4byte gBattleAnimArgs
_080E2C5C: .4byte 0x00007fff
thumb_func_end sub_80E2B74
@@ -50449,7 +50449,7 @@ sub_80E2C60: @ 80E2C60
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
- ldr r0, _080E2C88 @ =gUnknown_03004B00
+ ldr r0, _080E2C88 @ =gBattleAnimArgs
ldrh r0, [r0]
bl IndexOfSpritePaletteTag
lsls r0, 24
@@ -50463,7 +50463,7 @@ sub_80E2C60: @ 80E2C60
pop {r0}
bx r0
.align 2, 0
-_080E2C88: .4byte gUnknown_03004B00
+_080E2C88: .4byte gBattleAnimArgs
thumb_func_end sub_80E2C60
thumb_func_start sub_80E2C8C
@@ -50479,7 +50479,7 @@ sub_80E2C8C: @ 80E2C8C
strh r1, [r2, 0x8]
lsrs r1, 16
strh r1, [r2, 0xA]
- ldr r3, _080E2CC8 @ =gUnknown_03004B00
+ ldr r3, _080E2CC8 @ =gBattleAnimArgs
ldrh r1, [r3, 0x2]
strh r1, [r2, 0xC]
ldrh r1, [r3, 0x4]
@@ -50497,7 +50497,7 @@ sub_80E2C8C: @ 80E2C8C
bx r0
.align 2, 0
_080E2CC4: .4byte gTasks
-_080E2CC8: .4byte gUnknown_03004B00
+_080E2CC8: .4byte gBattleAnimArgs
_080E2CCC: .4byte sub_80E2CD0
thumb_func_end sub_80E2C8C
@@ -50601,7 +50601,7 @@ sub_80E2D78: @ 80E2D78
adds r5, r0, 0
lsls r5, 24
lsrs r5, 24
- ldr r4, _080E2DAC @ =gUnknown_03004B00
+ ldr r4, _080E2DAC @ =gBattleAnimArgs
ldrb r0, [r4]
ldrb r1, [r4, 0x2]
ldrb r2, [r4, 0x4]
@@ -50621,7 +50621,7 @@ sub_80E2D78: @ 80E2D78
pop {r0}
bx r0
.align 2, 0
-_080E2DAC: .4byte gUnknown_03004B00
+_080E2DAC: .4byte gBattleAnimArgs
_080E2DB0: .4byte gTasks
_080E2DB4: .4byte sub_80E2DB8
thumb_func_end sub_80E2D78
@@ -50655,7 +50655,7 @@ sub_80E2DD8: @ 80E2DD8
lsls r1, 3
ldr r0, _080E2E04 @ =gTasks
adds r1, r0
- ldr r2, _080E2E08 @ =gUnknown_03004B00
+ ldr r2, _080E2E08 @ =gBattleAnimArgs
ldrh r0, [r2]
movs r3, 0
strh r0, [r1, 0x8]
@@ -50672,7 +50672,7 @@ sub_80E2DD8: @ 80E2DD8
bx lr
.align 2, 0
_080E2E04: .4byte gTasks
-_080E2E08: .4byte gUnknown_03004B00
+_080E2E08: .4byte gBattleAnimArgs
_080E2E0C: .4byte sub_80E2E10
thumb_func_end sub_80E2DD8
@@ -50892,7 +50892,7 @@ sub_80E2F2C: @ 80E2F2C
orrs r1, r0
strb r1, [r4]
_080E2FAC:
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _080E3028
@@ -51274,7 +51274,7 @@ sub_80E32E0: @ 80E32E0
mov r7, r12
adds r7, 0x8
adds r5, r1, 0
- ldr r6, _080E3334 @ =gUnknown_03004B00
+ ldr r6, _080E3334 @ =gBattleAnimArgs
_080E3302:
lsls r0, r2, 1
adds r1, r0, r4
@@ -51300,7 +51300,7 @@ _080E3302:
.align 2, 0
_080E332C: .4byte gTasks
_080E3330: .4byte sub_80E3338
-_080E3334: .4byte gUnknown_03004B00
+_080E3334: .4byte gBattleAnimArgs
thumb_func_end sub_80E32E0
thumb_func_start sub_80E3338
@@ -51432,7 +51432,7 @@ _080E33C0:
orrs r1, r0
strb r1, [r4]
_080E3432:
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _080E34A4
@@ -52197,7 +52197,7 @@ _080E3A26:
cmp r2, 0x3
bls _080E3A18
movs r2, 0x5
- ldr r0, _080E3A54 @ =gUnknown_03004B00
+ ldr r0, _080E3A54 @ =gBattleAnimArgs
adds r1, r0, 0
adds r1, 0x8
_080E3A34:
@@ -52215,7 +52215,7 @@ _080E3A34:
bx r0
.align 2, 0
_080E3A50: .4byte gUnknown_0202F7C8
-_080E3A54: .4byte gUnknown_03004B00
+_080E3A54: .4byte gBattleAnimArgs
thumb_func_end sub_80E3A08
thumb_func_start sub_80E3A58
@@ -52230,7 +52230,7 @@ sub_80E3A58: @ 80E3A58
bl CreateTask
lsls r0, 24
lsrs r5, r0, 24
- ldr r4, _080E3AC4 @ =gUnknown_03004B00
+ ldr r4, _080E3AC4 @ =gBattleAnimArgs
movs r1, 0x4
ldrsh r0, [r4, r1]
cmp r0, 0
@@ -52253,7 +52253,7 @@ _080E3A94:
adds r1, r5
lsls r1, 3
adds r1, r0
- ldr r2, _080E3AC4 @ =gUnknown_03004B00
+ ldr r2, _080E3AC4 @ =gBattleAnimArgs
ldrh r0, [r2]
strh r0, [r1, 0xA]
ldrh r0, [r2, 0x2]
@@ -52270,7 +52270,7 @@ _080E3A94:
bx r0
.align 2, 0
_080E3AC0: .4byte sub_80E3AD0
-_080E3AC4: .4byte gUnknown_03004B00
+_080E3AC4: .4byte gBattleAnimArgs
_080E3AC8: .4byte gUnknown_0202F7C8
_080E3ACC: .4byte gTasks
thumb_func_end sub_80E3A58
@@ -52312,7 +52312,7 @@ sub_80E3AD0: @ 80E3AD0
strh r3, [r1, 0x1C]
ands r2, r0
strh r2, [r1, 0x1E]
- ldr r0, _080E3B48 @ =gUnknown_03004B00
+ ldr r0, _080E3B48 @ =gBattleAnimArgs
movs r3, 0xE
ldrsh r2, [r0, r3]
movs r7, 0xE
@@ -52334,7 +52334,7 @@ _080E3B36:
_080E3B3C: .4byte gTasks
_080E3B40: .4byte gUnknown_030041B0
_080E3B44: .4byte gUnknown_030041B8
-_080E3B48: .4byte gUnknown_03004B00
+_080E3B48: .4byte gBattleAnimArgs
thumb_func_end sub_80E3AD0
thumb_func_start sub_80E3B4C
@@ -52346,7 +52346,7 @@ sub_80E3B4C: @ 80E3B4C
ldr r0, _080E3B70 @ =gUnknown_0202F7C8
ldrb r0, [r0]
bl battle_side_get_owner
- ldr r1, _080E3B74 @ =gUnknown_03004B00
+ ldr r1, _080E3B74 @ =gBattleAnimArgs
lsls r0, 24
lsrs r0, 24
strh r0, [r1, 0xE]
@@ -52357,7 +52357,7 @@ sub_80E3B4C: @ 80E3B4C
bx r0
.align 2, 0
_080E3B70: .4byte gUnknown_0202F7C8
-_080E3B74: .4byte gUnknown_03004B00
+_080E3B74: .4byte gBattleAnimArgs
thumb_func_end sub_80E3B4C
thumb_func_start sub_80E3B78
@@ -52369,7 +52369,7 @@ sub_80E3B78: @ 80E3B78
ldr r0, _080E3B9C @ =gUnknown_0202F7C9
ldrb r0, [r0]
bl battle_side_get_owner
- ldr r1, _080E3BA0 @ =gUnknown_03004B00
+ ldr r1, _080E3BA0 @ =gBattleAnimArgs
lsls r0, 24
lsrs r0, 24
strh r0, [r1, 0xE]
@@ -52380,7 +52380,7 @@ sub_80E3B78: @ 80E3B78
bx r0
.align 2, 0
_080E3B9C: .4byte gUnknown_0202F7C9
-_080E3BA0: .4byte gUnknown_03004B00
+_080E3BA0: .4byte gBattleAnimArgs
thumb_func_end sub_80E3B78
thumb_func_start sub_80E3BA4
@@ -52388,7 +52388,7 @@ sub_80E3BA4: @ 80E3BA4
push {r4,r5,lr}
lsls r0, 24
lsrs r3, r0, 24
- ldr r5, _080E3BD0 @ =gUnknown_03004B00
+ ldr r5, _080E3BD0 @ =gBattleAnimArgs
movs r4, 0
ldr r0, _080E3BD4 @ =gUnknown_0202F7C8
ldrb r2, [r0]
@@ -52407,7 +52407,7 @@ _080E3BC0:
pop {r0}
bx r0
.align 2, 0
-_080E3BD0: .4byte gUnknown_03004B00
+_080E3BD0: .4byte gBattleAnimArgs
_080E3BD4: .4byte gUnknown_0202F7C8
_080E3BD8: .4byte gUnknown_0202F7C9
thumb_func_end sub_80E3BA4
@@ -52437,7 +52437,7 @@ _080E3BE6:
adds r2, r0
lsls r2, 2
adds r2, r6
- ldr r1, _080E3C48 @ =gUnknown_03004B00
+ ldr r1, _080E3C48 @ =gBattleAnimArgs
adds r2, 0x3E
movs r0, 0x1
ldrb r3, [r1]
@@ -52465,7 +52465,7 @@ _080E3C24:
_080E3C3C: .4byte gSprites
_080E3C40: .4byte gUnknown_0202F7C8
_080E3C44: .4byte gUnknown_02024BE0
-_080E3C48: .4byte gUnknown_03004B00
+_080E3C48: .4byte gBattleAnimArgs
thumb_func_end sub_80E3BDC
thumb_func_start sub_80E3C4C
@@ -52935,16 +52935,16 @@ sub_80E4008: @ 80E4008
push {lr}
lsls r0, 24
lsrs r0, 24
- ldr r2, _080E4020 @ =gUnknown_03004B00
- ldr r1, _080E4024 @ =gUnknown_0300428C
+ ldr r2, _080E4020 @ =gBattleAnimArgs
+ ldr r1, _080E4024 @ =gBattleTerrain
ldrb r1, [r1]
strh r1, [r2]
bl move_anim_task_del
pop {r0}
bx r0
.align 2, 0
-_080E4020: .4byte gUnknown_03004B00
-_080E4024: .4byte gUnknown_0300428C
+_080E4020: .4byte gBattleAnimArgs
+_080E4024: .4byte gBattleTerrain
thumb_func_end sub_80E4008
thumb_func_start sub_80E4028
@@ -52954,7 +52954,7 @@ sub_80E4028: @ 80E4028
lsls r0, 24
lsrs r6, r0, 24
movs r4, 0
- ldr r0, _080E4068 @ =gUnknown_03004B00
+ ldr r0, _080E4068 @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
@@ -52982,7 +52982,7 @@ _080E405A:
beq _080E405A
b _080E4084
.align 2, 0
-_080E4068: .4byte gUnknown_03004B00
+_080E4068: .4byte gBattleAnimArgs
_080E406C:
cmp r0, 0x1
bne _080E4078
@@ -52999,7 +52999,7 @@ _080E407E:
adds r4, r0, 0
adds r4, 0x10
_080E4084:
- ldr r0, _080E40A0 @ =gUnknown_03004B00
+ ldr r0, _080E40A0 @ =gBattleAnimArgs
movs r1, 0x2
ldrsh r0, [r0, r1]
lsls r5, r0, 5
@@ -53011,7 +53011,7 @@ _080E4084:
b _080E40AA
.align 2, 0
_080E409C: .4byte gUnknown_0202F7C9
-_080E40A0: .4byte gUnknown_03004B00
+_080E40A0: .4byte gBattleAnimArgs
_080E40A4: .4byte 0x02014800
_080E40A8:
ldr r0, _080E40C8 @ =0x02018000
@@ -53041,7 +53041,7 @@ sub_80E40D0: @ 80E40D0
lsls r0, 24
lsrs r6, r0, 24
movs r4, 0
- ldr r0, _080E4110 @ =gUnknown_03004B00
+ ldr r0, _080E4110 @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
@@ -53069,7 +53069,7 @@ _080E4102:
beq _080E4102
b _080E412C
.align 2, 0
-_080E4110: .4byte gUnknown_03004B00
+_080E4110: .4byte gBattleAnimArgs
_080E4114:
cmp r0, 0x1
bne _080E4120
@@ -53089,7 +53089,7 @@ _080E412C:
lsls r1, r4, 5
ldr r0, _080E414C @ =gPlttBufferUnfaded
adds r5, r1, r0
- ldr r0, _080E4150 @ =gUnknown_03004B00
+ ldr r0, _080E4150 @ =gBattleAnimArgs
movs r1, 0x2
ldrsh r0, [r0, r1]
lsls r4, r0, 5
@@ -53102,7 +53102,7 @@ _080E412C:
.align 2, 0
_080E4148: .4byte gUnknown_0202F7C9
_080E414C: .4byte gPlttBufferUnfaded
-_080E4150: .4byte gUnknown_03004B00
+_080E4150: .4byte gBattleAnimArgs
_080E4154: .4byte 0x02014800
_080E4158:
ldr r0, _080E4174 @ =0x02018000
@@ -53128,7 +53128,7 @@ sub_80E4178: @ 80E4178
lsls r0, 24
lsrs r5, r0, 24
movs r4, 0
- ldr r0, _080E41B8 @ =gUnknown_03004B00
+ ldr r0, _080E41B8 @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
@@ -53156,7 +53156,7 @@ _080E41AA:
beq _080E41AA
b _080E41D4
.align 2, 0
-_080E41B8: .4byte gUnknown_03004B00
+_080E41B8: .4byte gBattleAnimArgs
_080E41BC:
cmp r0, 0x1
bne _080E41C8
@@ -53202,14 +53202,14 @@ sub_80E4200: @ 80E4200
lsrs r1, r0, 24
cmp r1, 0
beq _080E4220
- ldr r1, _080E421C @ =gUnknown_03004B00
+ ldr r1, _080E421C @ =gBattleAnimArgs
movs r0, 0x1
strh r0, [r1, 0xE]
b _080E4224
.align 2, 0
-_080E421C: .4byte gUnknown_03004B00
+_080E421C: .4byte gBattleAnimArgs
_080E4220:
- ldr r0, _080E4230 @ =gUnknown_03004B00
+ ldr r0, _080E4230 @ =gBattleAnimArgs
strh r1, [r0, 0xE]
_080E4224:
adds r0, r4, 0
@@ -53218,7 +53218,7 @@ _080E4224:
pop {r0}
bx r0
.align 2, 0
-_080E4230: .4byte gUnknown_03004B00
+_080E4230: .4byte gBattleAnimArgs
thumb_func_end sub_80E4200
thumb_func_start sub_80E4234
@@ -53260,15 +53260,15 @@ sub_80E4264: @ 80E4264
lsls r0, 24
cmp r4, r0
bne _080E4298
- ldr r1, _080E4294 @ =gUnknown_03004B00
+ ldr r1, _080E4294 @ =gBattleAnimArgs
movs r0, 0x1
b _080E429C
.align 2, 0
_080E428C: .4byte gUnknown_0202F7C8
_080E4290: .4byte gUnknown_0202F7C9
-_080E4294: .4byte gUnknown_03004B00
+_080E4294: .4byte gBattleAnimArgs
_080E4298:
- ldr r1, _080E42AC @ =gUnknown_03004B00
+ ldr r1, _080E42AC @ =gBattleAnimArgs
movs r0, 0
_080E429C:
strh r0, [r1, 0xE]
@@ -53278,7 +53278,7 @@ _080E429C:
pop {r0}
bx r0
.align 2, 0
-_080E42AC: .4byte gUnknown_03004B00
+_080E42AC: .4byte gBattleAnimArgs
thumb_func_end sub_80E4264
thumb_func_start sub_80E42B0
@@ -53378,7 +53378,7 @@ sub_80E4368: @ 80E4368
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
- ldr r0, _080E43B0 @ =gUnknown_03004B00
+ ldr r0, _080E43B0 @ =gBattleAnimArgs
movs r2, 0xE
ldrsh r1, [r0, r2]
movs r0, 0x80
@@ -53411,7 +53411,7 @@ _080E43A8:
pop {r0}
bx r0
.align 2, 0
-_080E43B0: .4byte gUnknown_03004B00
+_080E43B0: .4byte gBattleAnimArgs
_080E43B4: .4byte gUnknown_0202F7C8
_080E43B8: .4byte 0x02017800
_080E43BC: .4byte gTasks
@@ -53422,7 +53422,7 @@ sub_80E43C0: @ 80E43C0
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
- ldr r0, _080E43D8 @ =gUnknown_020239F8
+ ldr r0, _080E43D8 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x2
ands r0, r1
@@ -53431,7 +53431,7 @@ sub_80E43C0: @ 80E43C0
ldr r0, _080E43DC @ =sub_80E4C34
b _080E4408
.align 2, 0
-_080E43D8: .4byte gUnknown_020239F8
+_080E43D8: .4byte gBattleTypeFlags
_080E43DC: .4byte sub_80E4C34
_080E43E0:
movs r0, 0x80
@@ -53560,7 +53560,7 @@ _080E44D0:
.4byte _080E4588
.4byte _080E46B8
_080E44E4:
- ldr r0, _080E44FC @ =gUnknown_020239F8
+ ldr r0, _080E44FC @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x2
ands r0, r1
@@ -53573,7 +53573,7 @@ _080E44E4:
movs r1, 0x10
b _080E450A
.align 2, 0
-_080E44FC: .4byte gUnknown_020239F8
+_080E44FC: .4byte gBattleTypeFlags
_080E4500:
lsls r0, r4, 2
adds r0, r4
@@ -53929,7 +53929,7 @@ _080E47B0:
adds r2, r0, r1
movs r3, 0x10
strh r3, [r2, 0x10]
- ldr r0, _080E47D0 @ =gUnknown_020239F8
+ ldr r0, _080E47D0 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x2
ands r0, r1
@@ -53939,7 +53939,7 @@ _080E47B0:
b _080E47D8
.align 2, 0
_080E47CC: .4byte gTasks
-_080E47D0: .4byte gUnknown_020239F8
+_080E47D0: .4byte gBattleTypeFlags
_080E47D4:
movs r0, 0x1
strh r0, [r2, 0xC]
@@ -54246,7 +54246,7 @@ _080E4A14:
lsls r0, 3
adds r3, r0, r1
strh r2, [r3, 0x10]
- ldr r0, _080E4A5C @ =gUnknown_020239F8
+ ldr r0, _080E4A5C @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x2
ands r0, r1
@@ -54260,7 +54260,7 @@ _080E4A4C: .4byte 0x00001842
_080E4A50: .4byte REG_BLDALPHA
_080E4A54: .4byte 0x00000808
_080E4A58: .4byte gTasks
-_080E4A5C: .4byte gUnknown_020239F8
+_080E4A5C: .4byte gBattleTypeFlags
_080E4A60:
movs r0, 0x1
_080E4A62:
diff --git a/asm/battle_anim_813F0F4.s b/asm/battle_anim_813F0F4.s
new file mode 100644
index 000000000..bbdce5e93
--- /dev/null
+++ b/asm/battle_anim_813F0F4.s
@@ -0,0 +1,5740 @@
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start unref_sub_813F0F4
+unref_sub_813F0F4: @ 813F0F4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x1C
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x10]
+ ldr r0, _0813F2AC @ =gUnknown_0202F7C8
+ ldrb r3, [r0]
+ ldr r0, _0813F2B0 @ =gUnknown_030042C4
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _0813F2B4 @ =gUnknown_03004240
+ strh r1, [r0]
+ ldr r1, _0813F2B8 @ =REG_WININ
+ ldr r2, _0813F2BC @ =0x00003f3f
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r4, _0813F2C0 @ =0x00003f3d
+ adds r0, r4, 0
+ strh r0, [r1]
+ movs r2, 0x80
+ lsls r2, 19
+ ldrh r0, [r2]
+ movs r4, 0x80
+ lsls r4, 8
+ adds r1, r4, 0
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r1, _0813F2C4 @ =REG_BLDCNT
+ ldr r2, _0813F2C8 @ =0x00003f42
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r4, 0x80
+ lsls r4, 5
+ adds r0, r4, 0
+ strh r0, [r1]
+ ldr r2, _0813F2CC @ =REG_BG1CNT
+ ldrb r1, [r2]
+ movs r0, 0x4
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ ldrb r1, [r2, 0x1]
+ movs r0, 0x3F
+ ands r0, r1
+ strb r0, [r2, 0x1]
+ ldrb r0, [r2, 0x1]
+ movs r1, 0x20
+ orrs r0, r1
+ strb r0, [r2, 0x1]
+ ldrb r1, [r2]
+ movs r0, 0xD
+ negs r0, r0
+ mov r9, r0
+ ands r0, r1
+ movs r1, 0x4
+ mov r8, r1
+ mov r4, r8
+ orrs r0, r4
+ strb r0, [r2]
+ ldr r0, _0813F2D0 @ =gUnknown_03004340
+ adds r3, r0
+ ldrb r0, [r3]
+ ldr r1, _0813F2D4 @ =gSprites
+ mov r10, r1
+ lsls r4, r0, 4
+ adds r4, r0
+ lsls r4, 2
+ add r4, r10
+ ldrb r7, [r4, 0x6]
+ ldrh r6, [r4, 0x38]
+ lsls r6, 24
+ lsrs r6, 24
+ ldr r0, _0813F2D8 @ =SpriteCallbackDummy
+ bl CreateInvisibleSpriteWithCallback
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x14]
+ ldr r0, _0813F2D8 @ =SpriteCallbackDummy
+ bl CreateInvisibleSpriteWithCallback
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x18]
+ ldrb r1, [r4, 0x5]
+ mov r0, r9
+ ands r0, r1
+ mov r2, r8
+ orrs r0, r2
+ strb r0, [r4, 0x5]
+ lsls r5, r7, 4
+ adds r5, r7
+ lsls r5, 2
+ add r5, r10
+ ldrb r1, [r5, 0x5]
+ mov r0, r9
+ ands r0, r1
+ orrs r0, r2
+ strb r0, [r5, 0x5]
+ lsls r1, r6, 4
+ adds r1, r6
+ lsls r1, 2
+ add r1, r10
+ ldrb r2, [r1, 0x5]
+ mov r0, r9
+ ands r0, r2
+ mov r2, r8
+ orrs r0, r2
+ strb r0, [r1, 0x5]
+ ldr r0, [sp, 0x14]
+ lsls r6, r0, 4
+ adds r6, r0
+ lsls r6, 2
+ mov r1, r10
+ adds r7, r6, r1
+ adds r0, r7, 0
+ adds r1, r4, 0
+ movs r2, 0x44
+ bl memcpy
+ ldr r2, [sp, 0x18]
+ lsls r4, r2, 4
+ adds r4, r2
+ lsls r4, 2
+ adds r0, r4, 0
+ add r0, r10
+ mov r8, r0
+ adds r1, r5, 0
+ movs r2, 0x44
+ bl memcpy
+ ldrb r1, [r7, 0x1]
+ mov r0, r9
+ ands r0, r1
+ movs r1, 0x8
+ orrs r0, r1
+ strb r0, [r7, 0x1]
+ mov r2, r8
+ ldrb r0, [r2, 0x1]
+ mov r2, r9
+ ands r2, r0
+ orrs r2, r1
+ mov r0, r8
+ strb r2, [r0, 0x1]
+ movs r1, 0x1C
+ add r10, r1
+ add r6, r10
+ ldr r2, _0813F2D8 @ =SpriteCallbackDummy
+ str r2, [r6]
+ add r4, r10
+ str r2, [r4]
+ mov r0, sp
+ bl sub_8078914
+ ldr r1, [sp, 0x4]
+ movs r0, 0
+ str r0, [sp, 0xC]
+ ldr r2, _0813F2DC @ =0x040000d4
+ add r0, sp, 0xC
+ str r0, [r2]
+ str r1, [r2, 0x4]
+ ldr r0, _0813F2E0 @ =0x85000400
+ str r0, [r2, 0x8]
+ ldr r0, [r2, 0x8]
+ ldr r0, _0813F2E4 @ =gUnknown_08D2EE48
+ bl LZDecompressVram
+ ldr r0, _0813F2E8 @ =gUnknown_08D2EDFC
+ ldr r1, [sp]
+ bl LZDecompressVram
+ ldr r0, _0813F2EC @ =gUnknown_08D2E150
+ mov r1, sp
+ ldrb r1, [r1, 0x8]
+ lsls r1, 4
+ movs r2, 0x20
+ bl LoadCompressedPalette
+ ldr r1, _0813F2F0 @ =gUnknown_030042C0
+ ldrh r0, [r7, 0x20]
+ negs r0, r0
+ adds r0, 0x20
+ strh r0, [r1]
+ ldr r1, _0813F2F4 @ =gUnknown_030041B4
+ ldrh r0, [r7, 0x22]
+ negs r0, r0
+ subs r0, 0x20
+ strh r0, [r1]
+ ldr r1, _0813F2F8 @ =gTasks
+ ldr r4, [sp, 0x10]
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0xA0
+ lsls r1, 2
+ strh r1, [r0, 0xA]
+ mov r1, sp
+ ldrh r1, [r1, 0x14]
+ strh r1, [r0, 0x8]
+ mov r2, sp
+ ldrh r2, [r2, 0x18]
+ strh r2, [r0, 0xC]
+ ldr r1, _0813F2FC @ =sub_813F300
+ str r1, [r0]
+ add sp, 0x1C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813F2AC: .4byte gUnknown_0202F7C8
+_0813F2B0: .4byte gUnknown_030042C4
+_0813F2B4: .4byte gUnknown_03004240
+_0813F2B8: .4byte REG_WININ
+_0813F2BC: .4byte 0x00003f3f
+_0813F2C0: .4byte 0x00003f3d
+_0813F2C4: .4byte REG_BLDCNT
+_0813F2C8: .4byte 0x00003f42
+_0813F2CC: .4byte REG_BG1CNT
+_0813F2D0: .4byte gUnknown_03004340
+_0813F2D4: .4byte gSprites
+_0813F2D8: .4byte SpriteCallbackDummy
+_0813F2DC: .4byte 0x040000d4
+_0813F2E0: .4byte 0x85000400
+_0813F2E4: .4byte gUnknown_08D2EE48
+_0813F2E8: .4byte gUnknown_08D2EDFC
+_0813F2EC: .4byte gUnknown_08D2E150
+_0813F2F0: .4byte gUnknown_030042C0
+_0813F2F4: .4byte gUnknown_030041B4
+_0813F2F8: .4byte gTasks
+_0813F2FC: .4byte sub_813F300
+ thumb_func_end unref_sub_813F0F4
+
+ thumb_func_start sub_813F300
+sub_813F300: @ 813F300
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r0, _0813F34C @ =gUnknown_0202F7C8
+ ldrb r0, [r0]
+ mov r9, r0
+ ldr r1, _0813F350 @ =gTasks
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r4, r0, r1
+ ldrh r1, [r4, 0xA]
+ ldrh r0, [r4, 0x22]
+ adds r1, r0
+ movs r3, 0
+ strh r1, [r4, 0x22]
+ ldr r2, _0813F354 @ =gUnknown_030041B4
+ lsls r0, r1, 16
+ lsrs r0, 24
+ ldrh r5, [r2]
+ adds r0, r5
+ strh r0, [r2]
+ movs r0, 0xFF
+ ands r1, r0
+ strh r1, [r4, 0x22]
+ movs r1, 0x26
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ beq _0813F394
+ cmp r0, 0x1
+ bgt _0813F358
+ cmp r0, 0
+ beq _0813F35E
+ b _0813F4B2
+ .align 2, 0
+_0813F34C: .4byte gUnknown_0202F7C8
+_0813F350: .4byte gTasks
+_0813F354: .4byte gUnknown_030041B4
+_0813F358:
+ cmp r0, 0x2
+ beq _0813F3AC
+ b _0813F4B2
+_0813F35E:
+ ldrh r0, [r4, 0x1E]
+ adds r1, r0, 0x1
+ strh r1, [r4, 0x1E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ bgt _0813F36E
+ b _0813F4B2
+_0813F36E:
+ strh r3, [r4, 0x1E]
+ ldrh r1, [r4, 0x20]
+ adds r1, 0x1
+ strh r1, [r4, 0x20]
+ ldr r2, _0813F390 @ =REG_BLDALPHA
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r1, r0
+ strh r1, [r2]
+ movs r2, 0x20
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x8
+ beq _0813F38C
+ b _0813F4B2
+_0813F38C:
+ b _0813F3A4
+ .align 2, 0
+_0813F390: .4byte REG_BLDALPHA
+_0813F394:
+ ldrh r0, [r4, 0x1C]
+ adds r0, 0x1
+ strh r0, [r4, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1E
+ beq _0813F3A4
+ b _0813F4B2
+_0813F3A4:
+ ldrh r0, [r4, 0x26]
+ adds r0, 0x1
+ strh r0, [r4, 0x26]
+ b _0813F4B2
+_0813F3AC:
+ ldrh r0, [r4, 0x1E]
+ adds r1, r0, 0x1
+ strh r1, [r4, 0x1E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _0813F4B2
+ strh r3, [r4, 0x1E]
+ ldrh r1, [r4, 0x20]
+ subs r1, 0x1
+ strh r1, [r4, 0x20]
+ ldr r6, _0813F4C0 @ =REG_BLDALPHA
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r1, r0
+ strh r1, [r6]
+ movs r3, 0x20
+ ldrsh r5, [r4, r3]
+ cmp r5, 0
+ bne _0813F4B2
+ movs r0, 0
+ bl sub_8076464
+ ldr r0, _0813F4C4 @ =gUnknown_030042C4
+ strh r5, [r0]
+ ldr r0, _0813F4C8 @ =gUnknown_03004240
+ strh r5, [r0]
+ ldr r0, _0813F4CC @ =REG_WININ
+ ldr r2, _0813F4D0 @ =0x00003f3f
+ adds r1, r2, 0
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _0813F406
+ ldr r2, _0813F4D4 @ =REG_BG1CNT
+ ldrb r1, [r2]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+_0813F406:
+ movs r2, 0x80
+ lsls r2, 19
+ ldrh r0, [r2]
+ movs r3, 0x80
+ lsls r3, 8
+ adds r1, r3, 0
+ eors r0, r1
+ strh r0, [r2]
+ ldr r0, _0813F4D8 @ =REG_BLDCNT
+ strh r5, [r0]
+ strh r5, [r6]
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0813F4DC @ =gSprites
+ mov r8, r1
+ add r0, r8
+ bl DestroySprite
+ movs r2, 0xC
+ ldrsh r1, [r4, r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ add r0, r8
+ bl DestroySprite
+ mov r0, sp
+ bl sub_8078914
+ ldr r2, [sp, 0x4]
+ str r5, [sp, 0xC]
+ ldr r1, _0813F4E0 @ =0x040000d4
+ add r0, sp, 0xC
+ str r0, [r1]
+ str r2, [r1, 0x4]
+ ldr r0, _0813F4E4 @ =0x85000200
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ ldr r2, _0813F4D4 @ =REG_BG1CNT
+ ldrb r1, [r2, 0x1]
+ movs r0, 0x21
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2, 0x1]
+ ldr r0, _0813F4E8 @ =gUnknown_03004340
+ add r0, r9
+ ldrb r0, [r0]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ add r1, r8
+ ldrb r6, [r1, 0x6]
+ ldrh r4, [r1, 0x38]
+ lsls r4, 24
+ lsrs r4, 24
+ ldrb r3, [r1, 0x5]
+ movs r2, 0xD
+ negs r2, r2
+ adds r0, r2, 0
+ ands r0, r3
+ movs r5, 0x4
+ orrs r0, r5
+ strb r0, [r1, 0x5]
+ lsls r1, r6, 4
+ adds r1, r6
+ lsls r1, 2
+ add r1, r8
+ ldrb r3, [r1, 0x5]
+ adds r0, r2, 0
+ ands r0, r3
+ orrs r0, r5
+ strb r0, [r1, 0x5]
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ add r0, r8
+ ldrb r1, [r0, 0x5]
+ ands r2, r1
+ orrs r2, r5
+ strb r2, [r0, 0x5]
+ adds r0, r7, 0
+ bl move_anim_task_del
+_0813F4B2:
+ add sp, 0x10
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813F4C0: .4byte REG_BLDALPHA
+_0813F4C4: .4byte gUnknown_030042C4
+_0813F4C8: .4byte gUnknown_03004240
+_0813F4CC: .4byte REG_WININ
+_0813F4D0: .4byte 0x00003f3f
+_0813F4D4: .4byte REG_BG1CNT
+_0813F4D8: .4byte REG_BLDCNT
+_0813F4DC: .4byte gSprites
+_0813F4E0: .4byte 0x040000d4
+_0813F4E4: .4byte 0x85000200
+_0813F4E8: .4byte gUnknown_03004340
+ thumb_func_end sub_813F300
+
+ thumb_func_start sub_813F4EC
+sub_813F4EC: @ 813F4EC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp]
+ ldr r1, _0813F5D0 @ =gUnknown_03004340
+ ldr r0, _0813F5D4 @ =gUnknown_0202F7C8
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r0, [r0]
+ ldr r7, _0813F5D8 @ =gSprites
+ lsls r6, r0, 4
+ adds r6, r0
+ lsls r6, 2
+ adds r6, r7
+ ldrb r0, [r6, 0x6]
+ str r0, [sp, 0x4]
+ ldrh r4, [r6, 0x38]
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _0813F5DC @ =0x0000d709
+ bl AllocSpritePalette
+ mov r8, r0
+ mov r1, r8
+ lsls r1, 24
+ lsrs r1, 24
+ mov r8, r1
+ ldr r0, _0813F5E0 @ =0x0000d70a
+ bl AllocSpritePalette
+ mov r9, r0
+ mov r2, r9
+ lsls r2, 24
+ lsrs r2, 24
+ mov r9, r2
+ ldrb r0, [r6, 0x5]
+ lsrs r0, 4
+ lsls r0, 4
+ movs r1, 0x80
+ lsls r1, 1
+ adds r3, r1, 0
+ orrs r0, r3
+ lsls r5, r4, 4
+ adds r5, r4
+ lsls r5, 2
+ adds r5, r7
+ ldrb r4, [r5, 0x5]
+ lsrs r4, 4
+ lsls r4, 4
+ orrs r4, r3
+ lsls r0, 1
+ ldr r2, _0813F5E4 @ =gPlttBufferUnfaded
+ mov r10, r2
+ add r0, r10
+ mov r1, r8
+ lsls r1, 4
+ mov r8, r1
+ adds r1, r3, r1
+ movs r2, 0x20
+ str r3, [sp, 0x8]
+ bl LoadPalette
+ lsls r4, 1
+ add r4, r10
+ mov r2, r9
+ lsls r2, 4
+ mov r9, r2
+ ldr r3, [sp, 0x8]
+ add r3, r9
+ adds r0, r4, 0
+ adds r1, r3, 0
+ movs r2, 0x20
+ bl LoadPalette
+ ldrb r1, [r6, 0x5]
+ movs r2, 0xF
+ adds r0, r2, 0
+ ands r0, r1
+ mov r3, r8
+ orrs r0, r3
+ strb r0, [r6, 0x5]
+ ldr r0, [sp, 0x4]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r7
+ ldrb r3, [r1, 0x5]
+ adds r0, r2, 0
+ ands r0, r3
+ mov r3, r8
+ orrs r0, r3
+ strb r0, [r1, 0x5]
+ ldrb r0, [r5, 0x5]
+ ands r2, r0
+ mov r0, r9
+ orrs r2, r0
+ strb r2, [r5, 0x5]
+ ldr r0, [sp]
+ bl move_anim_task_del
+ add sp, 0xC
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813F5D0: .4byte gUnknown_03004340
+_0813F5D4: .4byte gUnknown_0202F7C8
+_0813F5D8: .4byte gSprites
+_0813F5DC: .4byte 0x0000d709
+_0813F5E0: .4byte 0x0000d70a
+_0813F5E4: .4byte gPlttBufferUnfaded
+ thumb_func_end sub_813F4EC
+
+ thumb_func_start sub_813F5E8
+sub_813F5E8: @ 813F5E8
+ push {r4-r6,lr}
+ mov r6, r10
+ mov r5, r9
+ mov r4, r8
+ push {r4-r6}
+ mov r8, r0
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r1, _0813F684 @ =gUnknown_03004340
+ ldr r0, _0813F688 @ =gUnknown_0202F7C8
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r0, [r0]
+ ldr r1, _0813F68C @ =gSprites
+ mov r9, r1
+ lsls r5, r0, 4
+ adds r5, r0
+ lsls r5, 2
+ add r5, r9
+ ldrb r0, [r5, 0x6]
+ mov r10, r0
+ ldrh r6, [r5, 0x38]
+ lsls r6, 24
+ lsrs r6, 24
+ ldr r0, _0813F690 @ =0x0000d709
+ bl FreeSpritePaletteByTag
+ ldr r0, _0813F694 @ =0x0000d70a
+ bl FreeSpritePaletteByTag
+ ldr r0, _0813F698 @ =0x0000d6ff
+ bl IndexOfSpritePaletteTag
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _0813F69C @ =0x0000d704
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsls r4, 4
+ ldrb r2, [r5, 0x5]
+ movs r3, 0xF
+ adds r1, r3, 0
+ ands r1, r2
+ orrs r1, r4
+ strb r1, [r5, 0x5]
+ mov r1, r10
+ lsls r2, r1, 4
+ add r2, r10
+ lsls r2, 2
+ add r2, r9
+ ldrb r5, [r2, 0x5]
+ adds r1, r3, 0
+ ands r1, r5
+ orrs r1, r4
+ strb r1, [r2, 0x5]
+ lsls r1, r6, 4
+ adds r1, r6
+ lsls r1, 2
+ add r1, r9
+ lsrs r0, 20
+ ldrb r2, [r1, 0x5]
+ ands r3, r2
+ orrs r3, r0
+ strb r3, [r1, 0x5]
+ mov r0, r8
+ bl move_anim_task_del
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813F684: .4byte gUnknown_03004340
+_0813F688: .4byte gUnknown_0202F7C8
+_0813F68C: .4byte gSprites
+_0813F690: .4byte 0x0000d709
+_0813F694: .4byte 0x0000d70a
+_0813F698: .4byte 0x0000d6ff
+_0813F69C: .4byte 0x0000d704
+ thumb_func_end sub_813F5E8
+
+ thumb_func_start sub_813F6A0
+sub_813F6A0: @ 813F6A0
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0813F6C0 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r2, _0813F6C4 @ =gBattleAnimArgs
+ ldrh r0, [r2]
+ strh r0, [r1, 0x1C]
+ ldrh r0, [r2, 0x2]
+ strh r0, [r1, 0x1E]
+ ldr r0, _0813F6C8 @ =sub_813F6CC
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_0813F6C0: .4byte gTasks
+_0813F6C4: .4byte gBattleAnimArgs
+_0813F6C8: .4byte sub_813F6CC
+ thumb_func_end sub_813F6A0
+
+ thumb_func_start sub_813F6CC
+sub_813F6CC: @ 813F6CC
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _0813F718 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r4, r0, r1
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ movs r6, 0
+ adds r1, r0, 0x1
+ strh r1, [r4, 0x8]
+ lsls r0, 16
+ asrs r0, 16
+ movs r2, 0x1E
+ ldrsh r1, [r4, r2]
+ cmp r0, r1
+ blt _0813F78C
+ strh r6, [r4, 0x8]
+ ldr r0, _0813F71C @ =0x0000d709
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r2, r0, 24
+ movs r3, 0x1C
+ ldrsh r0, [r4, r3]
+ movs r1, 0x2
+ cmp r0, 0
+ bne _0813F70A
+ movs r1, 0x6
+_0813F70A:
+ movs r3, 0xA
+ ldrsh r0, [r4, r3]
+ cmp r0, 0
+ beq _0813F720
+ cmp r0, 0x1
+ beq _0813F75C
+ b _0813F78C
+ .align 2, 0
+_0813F718: .4byte gTasks
+_0813F71C: .4byte 0x0000d709
+_0813F720:
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x2
+ strh r0, [r4, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x10
+ ble _0813F732
+ movs r0, 0x10
+ strh r0, [r4, 0xC]
+_0813F732:
+ lsls r0, r2, 4
+ movs r2, 0x80
+ lsls r2, 1
+ adds r0, r2
+ orrs r0, r1
+ ldrb r2, [r4, 0xC]
+ ldr r3, _0813F758 @ =0x00007f74
+ movs r1, 0x1
+ bl BlendPalette
+ movs r3, 0xC
+ ldrsh r0, [r4, r3]
+ cmp r0, 0x10
+ bne _0813F78C
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ b _0813F78C
+ .align 2, 0
+_0813F758: .4byte 0x00007f74
+_0813F75C:
+ ldrh r0, [r4, 0xC]
+ subs r0, 0x2
+ strh r0, [r4, 0xC]
+ lsls r0, 16
+ cmp r0, 0
+ bge _0813F76A
+ strh r6, [r4, 0xC]
+_0813F76A:
+ lsls r0, r2, 4
+ movs r2, 0x80
+ lsls r2, 1
+ adds r0, r2
+ orrs r0, r1
+ ldrb r2, [r4, 0xC]
+ ldr r3, _0813F794 @ =0x00007f74
+ movs r1, 0x1
+ bl BlendPalette
+ movs r3, 0xC
+ ldrsh r0, [r4, r3]
+ cmp r0, 0
+ bne _0813F78C
+ adds r0, r5, 0
+ bl move_anim_task_del
+_0813F78C:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813F794: .4byte 0x00007f74
+ thumb_func_end sub_813F6CC
+
+ thumb_func_start sub_813F798
+sub_813F798: @ 813F798
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r1, _0813F7C4 @ =gUnknown_02024BE0
+ ldr r0, _0813F7C8 @ =gUnknown_0202F7C8
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r5, [r0]
+ ldr r1, _0813F7CC @ =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ beq _0813F7E6
+ cmp r0, 0x1
+ bgt _0813F7D0
+ cmp r0, 0
+ beq _0813F7D6
+ b _0813F838
+ .align 2, 0
+_0813F7C4: .4byte gUnknown_02024BE0
+_0813F7C8: .4byte gUnknown_0202F7C8
+_0813F7CC: .4byte gTasks
+_0813F7D0:
+ cmp r0, 0x2
+ beq _0813F818
+ b _0813F838
+_0813F7D6:
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_8078E70
+ movs r0, 0x80
+ lsls r0, 1
+ strh r0, [r4, 0x1C]
+ b _0813F80A
+_0813F7E6:
+ ldrh r0, [r4, 0x1C]
+ adds r0, 0x30
+ strh r0, [r4, 0x1C]
+ movs r0, 0x1C
+ ldrsh r2, [r4, r0]
+ adds r0, r5, 0
+ adds r1, r2, 0
+ movs r3, 0
+ bl obj_id_set_rotscale
+ adds r0, r5, 0
+ bl sub_8079A64
+ movs r0, 0x1C
+ ldrsh r1, [r4, r0]
+ ldr r0, _0813F814 @ =0x000002cf
+ cmp r1, r0
+ ble _0813F838
+_0813F80A:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _0813F838
+ .align 2, 0
+_0813F814: .4byte 0x000002cf
+_0813F818:
+ adds r0, r5, 0
+ bl sub_8078F40
+ ldr r1, _0813F840 @ =gSprites
+ lsls r0, r5, 4
+ adds r0, r5
+ lsls r0, 2
+ adds r0, r1
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ adds r0, r6, 0
+ bl move_anim_task_del
+_0813F838:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813F840: .4byte gSprites
+ thumb_func_end sub_813F798
+
+ thumb_func_start sub_813F844
+sub_813F844: @ 813F844
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _0813F87C @ =gUnknown_02024BE0
+ ldr r4, _0813F880 @ =gUnknown_0202F7C8
+ ldrb r0, [r4]
+ adds r1, r0, r1
+ ldrb r1, [r1]
+ mov r9, r1
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _0813F88C
+ ldr r1, _0813F884 @ =gUnknown_02024A6A
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0813F888 @ =gPlayerParty
+ b _0813F89C
+ .align 2, 0
+_0813F87C: .4byte gUnknown_02024BE0
+_0813F880: .4byte gUnknown_0202F7C8
+_0813F884: .4byte gUnknown_02024A6A
+_0813F888: .4byte gPlayerParty
+_0813F88C:
+ ldr r1, _0813F8CC @ =gUnknown_02024A6A
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0813F8D0 @ =gEnemyParty
+_0813F89C:
+ adds r0, r1
+ movs r1, 0x26
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ bl ball_number_to_ball_processing_index
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r2, _0813F8D4 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r6, r0, r2
+ movs r0, 0x8
+ ldrsh r7, [r6, r0]
+ cmp r7, 0
+ beq _0813F8D8
+ cmp r7, 0x1
+ beq _0813F958
+ b _0813F982
+ .align 2, 0
+_0813F8CC: .4byte gUnknown_02024A6A
+_0813F8D0: .4byte gEnemyParty
+_0813F8D4: .4byte gTasks
+_0813F8D8:
+ ldr r5, _0813F950 @ =gUnknown_0202F7C8
+ ldrb r0, [r5]
+ movs r1, 0
+ bl sub_8077ABC
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldrb r0, [r5]
+ movs r1, 0x1
+ bl sub_8077ABC
+ adds r1, r0, 0
+ lsls r1, 24
+ ldr r2, _0813F954 @ =gSprites
+ mov r3, r9
+ lsls r0, r3, 4
+ add r0, r9
+ lsls r0, 2
+ adds r0, r2
+ ldrb r2, [r0, 0x5]
+ lsls r2, 28
+ lsrs r2, 30
+ adds r0, 0x43
+ ldrb r3, [r0]
+ movs r0, 0x80
+ lsls r0, 22
+ adds r1, r0
+ lsrs r1, 24
+ mov r0, r8
+ str r0, [sp]
+ adds r0, r4, 0
+ bl sub_814086C
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r6, 0x1C]
+ str r7, [sp]
+ str r7, [sp, 0x4]
+ str r7, [sp, 0x8]
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_80791A8
+ adds r2, r0, 0
+ ldrb r1, [r5]
+ movs r0, 0
+ mov r3, r8
+ bl sub_8141314
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r6, 0x1E]
+ ldrh r0, [r6, 0x8]
+ adds r0, 0x1
+ strh r0, [r6, 0x8]
+ b _0813F982
+ .align 2, 0
+_0813F950: .4byte gUnknown_0202F7C8
+_0813F954: .4byte gSprites
+_0813F958:
+ movs r1, 0x1C
+ ldrsh r0, [r6, r1]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldrb r0, [r1, 0x4]
+ cmp r0, 0
+ bne _0813F982
+ movs r3, 0x1E
+ ldrsh r0, [r6, r3]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldrb r0, [r1, 0x4]
+ cmp r0, 0
+ bne _0813F982
+ adds r0, r5, 0
+ bl move_anim_task_del
+_0813F982:
+ add sp, 0xC
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_813F844
+
+ thumb_func_start sub_813F990
+sub_813F990: @ 813F990
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _0813F9B4 @ =gUnknown_02024C04
+ ldrh r0, [r0]
+ bl ball_number_to_ball_processing_index
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80478DC
+ adds r0, r4, 0
+ bl move_anim_task_del
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813F9B4: .4byte gUnknown_02024C04
+ thumb_func_end sub_813F990
+
+ thumb_func_start sub_813F9B8
+sub_813F9B8: @ 813F9B8
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _0813F9DC @ =gUnknown_02024C04
+ ldrh r0, [r0]
+ bl ball_number_to_ball_processing_index
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_804794C
+ adds r0, r4, 0
+ bl move_anim_task_del
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813F9DC: .4byte gUnknown_02024C04
+ thumb_func_end sub_813F9B8
+
+ thumb_func_start sub_813F9E0
+sub_813F9E0: @ 813F9E0
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _0813F9F4 @ =0x02017840
+ ldrb r0, [r0, 0x8]
+ cmp r0, 0x5
+ bne _0813FA00
+ ldr r1, _0813F9F8 @ =gBattleAnimArgs
+ ldr r0, _0813F9FC @ =0x0000ffff
+ b _0813FA04
+ .align 2, 0
+_0813F9F4: .4byte 0x02017840
+_0813F9F8: .4byte gBattleAnimArgs
+_0813F9FC: .4byte 0x0000ffff
+_0813FA00:
+ ldr r1, _0813FA10 @ =gBattleAnimArgs
+ movs r0, 0
+_0813FA04:
+ strh r0, [r1, 0xE]
+ adds r0, r2, 0
+ bl move_anim_task_del
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813FA10: .4byte gBattleAnimArgs
+ thumb_func_end sub_813F9E0
+
+ thumb_func_start ball_number_to_ball_processing_index
+ball_number_to_ball_processing_index: @ 813FA14
+ push {lr}
+ lsls r0, 16
+ lsrs r0, 16
+ subs r0, 0x1
+ cmp r0, 0xB
+ bhi _0813FA8C
+ lsls r0, 2
+ ldr r1, _0813FA2C @ =_0813FA30
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0813FA2C: .4byte _0813FA30
+ .align 2, 0
+_0813FA30:
+ .4byte _0813FA60
+ .4byte _0813FA64
+ .4byte _0813FA68
+ .4byte _0813FA8C
+ .4byte _0813FA6C
+ .4byte _0813FA70
+ .4byte _0813FA74
+ .4byte _0813FA78
+ .4byte _0813FA7C
+ .4byte _0813FA80
+ .4byte _0813FA84
+ .4byte _0813FA88
+_0813FA60:
+ movs r0, 0x4
+ b _0813FA8E
+_0813FA64:
+ movs r0, 0x3
+ b _0813FA8E
+_0813FA68:
+ movs r0, 0x1
+ b _0813FA8E
+_0813FA6C:
+ movs r0, 0x2
+ b _0813FA8E
+_0813FA70:
+ movs r0, 0x5
+ b _0813FA8E
+_0813FA74:
+ movs r0, 0x6
+ b _0813FA8E
+_0813FA78:
+ movs r0, 0x7
+ b _0813FA8E
+_0813FA7C:
+ movs r0, 0x8
+ b _0813FA8E
+_0813FA80:
+ movs r0, 0x9
+ b _0813FA8E
+_0813FA84:
+ movs r0, 0xA
+ b _0813FA8E
+_0813FA88:
+ movs r0, 0xB
+ b _0813FA8E
+_0813FA8C:
+ movs r0, 0
+_0813FA8E:
+ pop {r1}
+ bx r1
+ thumb_func_end ball_number_to_ball_processing_index
+
+ thumb_func_start sub_813FA94
+sub_813FA94: @ 813FA94
+ push {r4-r6,lr}
+ mov r6, r10
+ mov r5, r9
+ mov r4, r8
+ push {r4-r6}
+ mov r10, r0
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ ldr r0, _0813FB58 @ =gUnknown_02024C04
+ ldrh r0, [r0]
+ bl ball_number_to_ball_processing_index
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ ldr r1, _0813FB5C @ =gSpriteTemplate_820AAB4
+ adds r0, r1
+ movs r1, 0x20
+ movs r2, 0x50
+ movs r3, 0x1D
+ bl CreateSprite
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r1, _0813FB60 @ =gSprites
+ mov r9, r1
+ lsls r4, r5, 4
+ adds r4, r5
+ lsls r4, 2
+ adds r6, r4, r1
+ movs r0, 0x22
+ strh r0, [r6, 0x2E]
+ ldr r2, _0813FB64 @ =gUnknown_0202F7C9
+ mov r8, r2
+ ldrb r0, [r2]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r6, 0x30]
+ mov r1, r8
+ ldrb r0, [r1]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ subs r0, 0x10
+ strh r0, [r6, 0x32]
+ mov r0, r9
+ adds r0, 0x1C
+ adds r4, r0
+ ldr r0, _0813FB68 @ =sub_813FD90
+ str r0, [r4]
+ ldr r3, _0813FB6C @ =0x02017840
+ ldr r1, _0813FB70 @ =gUnknown_02024BE0
+ mov r2, r8
+ ldrb r0, [r2]
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ add r0, r9
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ lsls r1, 29
+ lsrs r1, 31
+ lsls r1, 1
+ ldrb r2, [r3, 0x9]
+ movs r0, 0x3
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3, 0x9]
+ ldr r1, _0813FB74 @ =gTasks
+ mov r2, r10
+ lsls r0, r2, 2
+ add r0, r10
+ lsls r0, 3
+ adds r0, r1
+ strh r5, [r0, 0x8]
+ ldr r1, _0813FB78 @ =sub_813FB7C
+ str r1, [r0]
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813FB58: .4byte gUnknown_02024C04
+_0813FB5C: .4byte gSpriteTemplate_820AAB4
+_0813FB60: .4byte gSprites
+_0813FB64: .4byte gUnknown_0202F7C9
+_0813FB68: .4byte sub_813FD90
+_0813FB6C: .4byte 0x02017840
+_0813FB70: .4byte gUnknown_02024BE0
+_0813FB74: .4byte gTasks
+_0813FB78: .4byte sub_813FB7C
+ thumb_func_end sub_813FA94
+
+ thumb_func_start sub_813FB7C
+sub_813FB7C: @ 813FB7C
+ push {lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r1, _0813FBAC @ =gTasks
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ adds r0, r1
+ ldrb r1, [r0, 0x8]
+ ldr r2, _0813FBB0 @ =gSprites
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x2E]
+ ldr r0, _0813FBB4 @ =0x0000ffff
+ cmp r1, r0
+ bne _0813FBA6
+ adds r0, r3, 0
+ bl move_anim_task_del
+_0813FBA6:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813FBAC: .4byte gTasks
+_0813FBB0: .4byte gSprites
+_0813FBB4: .4byte 0x0000ffff
+ thumb_func_end sub_813FB7C
+
+ thumb_func_start sub_813FBB8
+sub_813FBB8: @ 813FBB8
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r0, _0813FBD8 @ =gBattleTypeFlags
+ ldrh r1, [r0]
+ movs r0, 0x80
+ lsls r0, 2
+ ands r0, r1
+ cmp r0, 0
+ beq _0813FBDC
+ movs r6, 0x20
+ movs r5, 0xB
+ b _0813FBE0
+ .align 2, 0
+_0813FBD8: .4byte gBattleTypeFlags
+_0813FBDC:
+ movs r6, 0x17
+ movs r5, 0x5
+_0813FBE0:
+ ldr r0, _0813FC9C @ =gUnknown_02024C04
+ ldrh r0, [r0]
+ bl ball_number_to_ball_processing_index
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x1
+ bl battle_get_side_with_given_state
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8079E90
+ adds r3, r0, 0
+ adds r3, 0x1
+ lsls r3, 24
+ lsrs r3, 24
+ lsls r0, r4, 1
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, _0813FCA0 @ =gSpriteTemplate_820AAB4
+ adds r0, r1
+ adds r1, r6, 0
+ adds r1, 0x20
+ movs r2, 0x50
+ orrs r5, r2
+ adds r2, r5, 0
+ bl CreateSprite
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r0, _0813FCA4 @ =gSprites
+ mov r9, r0
+ lsls r4, r5, 4
+ adds r4, r5
+ lsls r4, 2
+ adds r6, r4, r0
+ movs r0, 0x22
+ strh r0, [r6, 0x2E]
+ ldr r1, _0813FCA8 @ =gUnknown_0202F7C9
+ mov r8, r1
+ ldrb r0, [r1]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r6, 0x30]
+ mov r1, r8
+ ldrb r0, [r1]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ subs r0, 0x10
+ strh r0, [r6, 0x32]
+ mov r0, r9
+ adds r0, 0x1C
+ adds r4, r0
+ ldr r0, _0813FCAC @ =SpriteCallbackDummy
+ str r0, [r4]
+ movs r0, 0
+ bl battle_get_side_with_given_state
+ ldr r1, _0813FCB0 @ =gUnknown_02024BE0
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ add r0, r9
+ movs r1, 0x1
+ bl StartSpriteAnim
+ ldr r1, _0813FCB4 @ =gTasks
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r1
+ strh r5, [r0, 0x8]
+ ldr r1, _0813FCB8 @ =sub_813FCBC
+ str r1, [r0]
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813FC9C: .4byte gUnknown_02024C04
+_0813FCA0: .4byte gSpriteTemplate_820AAB4
+_0813FCA4: .4byte gSprites
+_0813FCA8: .4byte gUnknown_0202F7C9
+_0813FCAC: .4byte SpriteCallbackDummy
+_0813FCB0: .4byte gUnknown_02024BE0
+_0813FCB4: .4byte gTasks
+_0813FCB8: .4byte sub_813FCBC
+ thumb_func_end sub_813FBB8
+
+ thumb_func_start sub_813FCBC
+sub_813FCBC: @ 813FCBC
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r6, _0813FD1C @ =gSprites
+ movs r0, 0
+ bl battle_get_side_with_given_state
+ ldr r1, _0813FD20 @ =gUnknown_02024BE0
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ adds r0, 0x2B
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _0813FD16
+ movs r0, 0x3D
+ movs r1, 0
+ bl PlaySE12WithPanning
+ ldr r0, _0813FD24 @ =gTasks
+ lsls r4, r5, 2
+ adds r4, r5
+ lsls r4, 3
+ adds r4, r0
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r6, 0
+ adds r1, 0x1C
+ adds r0, r1
+ ldr r1, _0813FD28 @ =sub_813FD90
+ str r1, [r0]
+ ldr r0, _0813FD2C @ =sub_813FD34
+ movs r1, 0xA
+ bl CreateTask
+ ldr r0, _0813FD30 @ =sub_813FB7C
+ str r0, [r4]
+_0813FD16:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813FD1C: .4byte gSprites
+_0813FD20: .4byte gUnknown_02024BE0
+_0813FD24: .4byte gTasks
+_0813FD28: .4byte sub_813FD90
+_0813FD2C: .4byte sub_813FD34
+_0813FD30: .4byte sub_813FB7C
+ thumb_func_end sub_813FCBC
+
+ thumb_func_start sub_813FD34
+sub_813FD34: @ 813FD34
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r6, _0813FD88 @ =gSprites
+ movs r0, 0
+ bl battle_get_side_with_given_state
+ ldr r4, _0813FD8C @ =gUnknown_02024BE0
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, r4
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ adds r0, 0x3F
+ ldrb r0, [r0]
+ lsls r0, 27
+ cmp r0, 0
+ bge _0813FD80
+ movs r0, 0
+ bl battle_get_side_with_given_state
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, r4
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ movs r1, 0
+ bl StartSpriteAnim
+ adds r0, r5, 0
+ bl DestroyTask
+_0813FD80:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813FD88: .4byte gSprites
+_0813FD8C: .4byte gUnknown_02024BE0
+ thumb_func_end sub_813FD34
+
+ thumb_func_start sub_813FD90
+sub_813FD90: @ 813FD90
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r1, [r4, 0x30]
+ ldrh r2, [r4, 0x32]
+ ldrh r0, [r4, 0x20]
+ strh r0, [r4, 0x30]
+ strh r1, [r4, 0x32]
+ ldrh r0, [r4, 0x22]
+ strh r0, [r4, 0x34]
+ strh r2, [r4, 0x36]
+ ldr r0, _0813FDB8 @ =0x0000ffd8
+ strh r0, [r4, 0x38]
+ adds r0, r4, 0
+ bl sub_80786EC
+ ldr r0, _0813FDBC @ =sub_813FDC0
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813FDB8: .4byte 0x0000ffd8
+_0813FDBC: .4byte sub_813FDC0
+ thumb_func_end sub_813FD90
+
+ thumb_func_start sub_813FDC0
+sub_813FDC0: @ 813FDC0
+ push {r4,r5,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ bl sub_8078718
+ lsls r0, 24
+ cmp r0, 0
+ beq _0813FE5A
+ ldr r0, _0813FDE0 @ =0x02017840
+ ldrb r0, [r0, 0x8]
+ cmp r0, 0x5
+ bne _0813FDE8
+ ldr r0, _0813FDE4 @ =sub_81407B8
+ str r0, [r4, 0x1C]
+ b _0813FE5A
+ .align 2, 0
+_0813FDE0: .4byte 0x02017840
+_0813FDE4: .4byte sub_81407B8
+_0813FDE8:
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAnim
+ ldrh r0, [r4, 0x24]
+ ldrh r1, [r4, 0x20]
+ adds r0, r1
+ movs r1, 0
+ strh r0, [r4, 0x20]
+ ldrh r0, [r4, 0x26]
+ ldrh r2, [r4, 0x22]
+ adds r0, r2
+ strh r0, [r4, 0x22]
+ strh r1, [r4, 0x24]
+ strh r1, [r4, 0x26]
+ adds r1, r4, 0
+ adds r1, 0x2E
+ movs r2, 0
+ adds r0, r4, 0
+ adds r0, 0x3C
+_0813FE10:
+ strh r2, [r0]
+ subs r0, 0x2
+ cmp r0, r1
+ bge _0813FE10
+ movs r0, 0
+ strh r0, [r4, 0x38]
+ ldr r0, _0813FE64 @ =sub_813FE70
+ str r0, [r4, 0x1C]
+ ldr r0, _0813FE68 @ =gUnknown_02024C04
+ ldrh r0, [r0]
+ bl ball_number_to_ball_processing_index
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0xB
+ bgt _0813FE5A
+ cmp r5, 0
+ blt _0813FE5A
+ ldrh r0, [r4, 0x20]
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r4, 0x22]
+ subs r1, 0x5
+ lsls r1, 24
+ lsrs r1, 24
+ str r5, [sp]
+ movs r2, 0x1
+ movs r3, 0x1C
+ bl sub_814086C
+ ldr r0, _0813FE6C @ =gUnknown_0202F7C9
+ ldrb r1, [r0]
+ movs r0, 0
+ movs r2, 0xE
+ adds r3, r5, 0
+ bl sub_8141314
+_0813FE5A:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813FE64: .4byte sub_813FE70
+_0813FE68: .4byte gUnknown_02024C04
+_0813FE6C: .4byte gUnknown_0202F7C9
+ thumb_func_end sub_813FDC0
+
+ thumb_func_start sub_813FE70
+sub_813FE70: @ 813FE70
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x1
+ strh r0, [r4, 0x38]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xA
+ bne _0813FEAC
+ ldr r0, _0813FEB4 @ =TaskDummy
+ movs r1, 0x32
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x38]
+ ldr r0, _0813FEB8 @ =sub_813FEC8
+ str r0, [r4, 0x1C]
+ ldr r2, _0813FEBC @ =gSprites
+ ldr r1, _0813FEC0 @ =gUnknown_02024BE0
+ ldr r0, _0813FEC4 @ =gUnknown_0202F7C9
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0
+ strh r1, [r0, 0x30]
+_0813FEAC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813FEB4: .4byte TaskDummy
+_0813FEB8: .4byte sub_813FEC8
+_0813FEBC: .4byte gSprites
+_0813FEC0: .4byte gUnknown_02024BE0
+_0813FEC4: .4byte gUnknown_0202F7C9
+ thumb_func_end sub_813FE70
+
+ thumb_func_start sub_813FEC8
+sub_813FEC8: @ 813FEC8
+ push {r4-r7,lr}
+ adds r7, r0, 0
+ ldr r1, _0813FF0C @ =gUnknown_02024BE0
+ ldr r0, _0813FF10 @ =gUnknown_0202F7C9
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r4, [r0]
+ ldrh r0, [r7, 0x38]
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r1, _0813FF14 @ =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r5, r0, r1
+ ldrh r0, [r5, 0xA]
+ adds r0, 0x1
+ strh r0, [r5, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xB
+ bne _0813FEFA
+ movs r0, 0x3C
+ bl PlaySE
+_0813FEFA:
+ movs r1, 0x8
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ beq _0813FF70
+ cmp r0, 0x1
+ bgt _0813FF18
+ cmp r0, 0
+ beq _0813FF1E
+ b _0813FFDC
+ .align 2, 0
+_0813FF0C: .4byte gUnknown_02024BE0
+_0813FF10: .4byte gUnknown_0202F7C9
+_0813FF14: .4byte gTasks
+_0813FF18:
+ cmp r0, 0x2
+ beq _0813FFB4
+ b _0813FFDC
+_0813FF1E:
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_8078E70
+ movs r0, 0x80
+ lsls r0, 1
+ strh r0, [r5, 0x1C]
+ ldr r1, _0813FF60 @ =gUnknown_03005F0C
+ movs r0, 0x1C
+ str r0, [r1]
+ ldr r2, _0813FF64 @ =gUnknown_03005F14
+ ldr r1, _0813FF68 @ =gSprites
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ adds r0, r1
+ ldrh r1, [r0, 0x26]
+ ldrh r0, [r0, 0x22]
+ adds r1, r0
+ ldrh r0, [r7, 0x26]
+ ldrh r7, [r7, 0x22]
+ adds r0, r7
+ subs r1, r0
+ strh r1, [r2]
+ ldr r4, _0813FF6C @ =gUnknown_03005F10
+ ldrh r0, [r2]
+ lsls r0, 8
+ movs r1, 0x1C
+ bl __udivsi3
+ strh r0, [r4]
+ strh r0, [r5, 0xC]
+ b _0813FFCE
+ .align 2, 0
+_0813FF60: .4byte gUnknown_03005F0C
+_0813FF64: .4byte gUnknown_03005F14
+_0813FF68: .4byte gSprites
+_0813FF6C: .4byte gUnknown_03005F10
+_0813FF70:
+ ldrh r0, [r5, 0x1C]
+ adds r0, 0x20
+ strh r0, [r5, 0x1C]
+ movs r0, 0x1C
+ ldrsh r2, [r5, r0]
+ adds r0, r4, 0
+ adds r1, r2, 0
+ movs r3, 0
+ bl obj_id_set_rotscale
+ ldrh r0, [r5, 0xC]
+ ldrh r1, [r5, 0xE]
+ adds r0, r1
+ strh r0, [r5, 0xE]
+ ldr r0, _0813FFAC @ =gSprites
+ lsls r1, r4, 4
+ adds r1, r4
+ lsls r1, 2
+ adds r1, r0
+ movs r2, 0xE
+ ldrsh r0, [r5, r2]
+ negs r0, r0
+ asrs r0, 8
+ strh r0, [r1, 0x26]
+ movs r0, 0x1C
+ ldrsh r1, [r5, r0]
+ ldr r0, _0813FFB0 @ =0x0000047f
+ cmp r1, r0
+ ble _08140004
+ b _0813FFCE
+ .align 2, 0
+_0813FFAC: .4byte gSprites
+_0813FFB0: .4byte 0x0000047f
+_0813FFB4:
+ adds r0, r4, 0
+ bl sub_8078F40
+ ldr r1, _0813FFD8 @ =gSprites
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ adds r0, r1
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+_0813FFCE:
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ strh r0, [r5, 0x8]
+ b _08140004
+ .align 2, 0
+_0813FFD8: .4byte gSprites
+_0813FFDC:
+ ldr r0, _0814000C @ =gTasks
+ lsls r1, r6, 2
+ adds r1, r6
+ lsls r1, 3
+ adds r1, r0
+ movs r2, 0xA
+ ldrsh r0, [r1, r2]
+ cmp r0, 0xA
+ ble _08140004
+ adds r0, r6, 0
+ bl DestroyTask
+ adds r0, r7, 0
+ movs r1, 0x2
+ bl StartSpriteAnim
+ movs r0, 0
+ strh r0, [r7, 0x38]
+ ldr r0, _08140010 @ =sub_8140014
+ str r0, [r7, 0x1C]
+_08140004:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0814000C: .4byte gTasks
+_08140010: .4byte sub_8140014
+ thumb_func_end sub_813FEC8
+
+ thumb_func_start sub_8140014
+sub_8140014: @ 8140014
+ push {r4,lr}
+ adds r4, r0, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _0814004E
+ movs r1, 0
+ strh r1, [r4, 0x34]
+ movs r0, 0x20
+ strh r0, [r4, 0x36]
+ strh r1, [r4, 0x38]
+ movs r0, 0
+ movs r1, 0x20
+ bl Cos
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ movs r0, 0x36
+ ldrsh r1, [r4, r0]
+ movs r0, 0
+ bl Cos
+ negs r0, r0
+ strh r0, [r4, 0x26]
+ ldr r0, _08140054 @ =sub_8140058
+ str r0, [r4, 0x1C]
+_0814004E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08140054: .4byte sub_8140058
+ thumb_func_end sub_8140014
+
+ thumb_func_start sub_8140058
+sub_8140058: @ 8140058
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r5, 0
+ ldrh r0, [r4, 0x34]
+ movs r1, 0xFF
+ ands r1, r0
+ cmp r1, 0
+ beq _0814006E
+ cmp r1, 0x1
+ beq _081400E2
+ b _0814010E
+_0814006E:
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ movs r2, 0x36
+ ldrsh r1, [r4, r2]
+ bl Cos
+ negs r0, r0
+ strh r0, [r4, 0x26]
+ ldrh r1, [r4, 0x38]
+ adds r1, 0x4
+ ldrh r2, [r4, 0x34]
+ lsls r0, r2, 16
+ asrs r0, 24
+ adds r1, r0
+ strh r1, [r4, 0x38]
+ lsls r1, 16
+ asrs r1, 16
+ cmp r1, 0x3F
+ ble _0814010E
+ ldrh r0, [r4, 0x36]
+ subs r0, 0xA
+ strh r0, [r4, 0x36]
+ ldr r1, _081400B8 @ =0x00000101
+ adds r0, r2, r1
+ strh r0, [r4, 0x34]
+ lsls r0, 16
+ asrs r0, 24
+ cmp r0, 0x4
+ bne _081400AA
+ movs r5, 0x1
+_081400AA:
+ cmp r0, 0x2
+ beq _081400CA
+ cmp r0, 0x2
+ bgt _081400BC
+ cmp r0, 0x1
+ beq _081400C2
+ b _081400DA
+ .align 2, 0
+_081400B8: .4byte 0x00000101
+_081400BC:
+ cmp r0, 0x3
+ beq _081400D2
+ b _081400DA
+_081400C2:
+ movs r0, 0x38
+ bl PlaySE
+ b _0814010E
+_081400CA:
+ movs r0, 0x39
+ bl PlaySE
+ b _0814010E
+_081400D2:
+ movs r0, 0x3A
+ bl PlaySE
+ b _0814010E
+_081400DA:
+ movs r0, 0x3B
+ bl PlaySE
+ b _0814010E
+_081400E2:
+ movs r2, 0x38
+ ldrsh r0, [r4, r2]
+ movs r2, 0x36
+ ldrsh r1, [r4, r2]
+ bl Cos
+ negs r0, r0
+ strh r0, [r4, 0x26]
+ ldrh r1, [r4, 0x38]
+ subs r1, 0x4
+ ldrh r2, [r4, 0x34]
+ lsls r0, r2, 16
+ asrs r0, 24
+ subs r1, r0
+ strh r1, [r4, 0x38]
+ lsls r1, 16
+ cmp r1, 0
+ bgt _0814010E
+ strh r5, [r4, 0x38]
+ ldr r0, _08140138 @ =0xffffff00
+ ands r0, r2
+ strh r0, [r4, 0x34]
+_0814010E:
+ cmp r5, 0
+ beq _0814014E
+ movs r5, 0
+ strh r5, [r4, 0x34]
+ movs r0, 0x40
+ movs r1, 0x20
+ bl Cos
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ strh r5, [r4, 0x26]
+ ldr r0, _0814013C @ =0x02017840
+ ldrb r0, [r0, 0x8]
+ cmp r0, 0
+ bne _08140144
+ strh r5, [r4, 0x38]
+ ldr r0, _08140140 @ =sub_8140410
+ str r0, [r4, 0x1C]
+ b _0814014E
+ .align 2, 0
+_08140138: .4byte 0xffffff00
+_0814013C: .4byte 0x02017840
+_08140140: .4byte sub_8140410
+_08140144:
+ ldr r0, _08140154 @ =sub_8140158
+ str r0, [r4, 0x1C]
+ movs r0, 0x1
+ strh r0, [r4, 0x36]
+ strh r5, [r4, 0x38]
+_0814014E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08140154: .4byte sub_8140158
+ thumb_func_end sub_8140058
+
+ thumb_func_start sub_8140158
+sub_8140158: @ 8140158
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x34]
+ adds r0, 0x1
+ movs r5, 0
+ strh r0, [r4, 0x34]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1F
+ bne _08140190
+ strh r5, [r4, 0x34]
+ adds r2, r4, 0
+ adds r2, 0x2C
+ ldrb r0, [r2]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2]
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+ ldr r0, _08140198 @ =0x02017840
+ strh r5, [r0, 0xC]
+ ldr r0, _0814019C @ =sub_81401A0
+ str r0, [r4, 0x1C]
+ movs r0, 0x17
+ bl PlaySE
+_08140190:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08140198: .4byte 0x02017840
+_0814019C: .4byte sub_81401A0
+ thumb_func_end sub_8140158
+
+ thumb_func_start sub_81401A0
+sub_81401A0: @ 81401A0
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x34]
+ movs r1, 0xFF
+ ands r1, r0
+ cmp r1, 0x6
+ bls _081401B0
+ b _081403C4
+_081401B0:
+ lsls r0, r1, 2
+ ldr r1, _081401BC @ =_081401C0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_081401BC: .4byte _081401C0
+ .align 2, 0
+_081401C0:
+ .4byte _081401DC
+ .4byte _08140226
+ .4byte _0814026C
+ .4byte _081402C0
+ .4byte _08140310
+ .4byte _08140368
+ .4byte _081403C4
+_081401DC:
+ ldr r0, _081401F8 @ =0x02017840
+ ldrh r2, [r0, 0xC]
+ movs r3, 0xC
+ ldrsh r1, [r0, r3]
+ adds r5, r0, 0
+ cmp r1, 0xFF
+ ble _081401FC
+ ldrh r0, [r4, 0x36]
+ ldrh r1, [r4, 0x24]
+ adds r0, r1
+ strh r0, [r4, 0x24]
+ movs r0, 0xFF
+ ands r0, r2
+ b _08140200
+ .align 2, 0
+_081401F8: .4byte 0x02017840
+_081401FC:
+ adds r0, r2, 0
+ adds r0, 0xB0
+_08140200:
+ strh r0, [r5, 0xC]
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x1
+ movs r3, 0
+ strh r0, [r4, 0x38]
+ adds r2, r4, 0
+ adds r2, 0x2C
+ ldrb r1, [r2]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r2]
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x7
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0xE
+ bhi _08140224
+ b _0814040A
+_08140224:
+ b _081402B4
+_08140226:
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x1
+ strh r0, [r4, 0x38]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ bne _081402CC
+ movs r0, 0
+ strh r0, [r4, 0x38]
+ ldrh r0, [r4, 0x36]
+ negs r0, r0
+ strh r0, [r4, 0x36]
+ ldrh r0, [r4, 0x34]
+ adds r0, 0x1
+ strh r0, [r4, 0x34]
+ adds r2, r4, 0
+ adds r2, 0x2C
+ ldrb r1, [r2]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r2]
+ movs r3, 0x36
+ ldrsh r0, [r4, r3]
+ cmp r0, 0
+ bge _08140262
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl ChangeSpriteAffineAnim
+ b _0814040A
+_08140262:
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl ChangeSpriteAffineAnim
+ b _0814040A
+_0814026C:
+ ldr r0, _08140288 @ =0x02017840
+ ldrh r2, [r0, 0xC]
+ movs r3, 0xC
+ ldrsh r1, [r0, r3]
+ adds r5, r0, 0
+ cmp r1, 0xFF
+ ble _0814028C
+ ldrh r0, [r4, 0x36]
+ ldrh r1, [r4, 0x24]
+ adds r0, r1
+ strh r0, [r4, 0x24]
+ movs r0, 0xFF
+ ands r0, r2
+ b _08140290
+ .align 2, 0
+_08140288: .4byte 0x02017840
+_0814028C:
+ adds r0, r2, 0
+ adds r0, 0xB0
+_08140290:
+ strh r0, [r5, 0xC]
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x1
+ movs r3, 0
+ strh r0, [r4, 0x38]
+ adds r2, r4, 0
+ adds r2, 0x2C
+ ldrb r1, [r2]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r2]
+ ldrh r0, [r4, 0x38]
+ adds r0, 0xC
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x18
+ bhi _081402B4
+ b _0814040A
+_081402B4:
+ strh r3, [r5, 0xC]
+ ldrh r0, [r4, 0x34]
+ adds r0, 0x1
+ strh r0, [r4, 0x34]
+ strh r3, [r4, 0x38]
+ b _0814040A
+_081402C0:
+ ldrh r0, [r4, 0x38]
+ adds r1, r0, 0x1
+ strh r1, [r4, 0x38]
+ lsls r0, 16
+ cmp r0, 0
+ bge _081402DA
+_081402CC:
+ adds r0, r4, 0
+ adds r0, 0x2C
+ ldrb r1, [r0]
+ movs r2, 0x80
+ orrs r1, r2
+ strb r1, [r0]
+ b _0814040A
+_081402DA:
+ movs r0, 0
+ strh r0, [r4, 0x38]
+ ldrh r0, [r4, 0x36]
+ negs r0, r0
+ strh r0, [r4, 0x36]
+ ldrh r0, [r4, 0x34]
+ adds r0, 0x1
+ strh r0, [r4, 0x34]
+ adds r2, r4, 0
+ adds r2, 0x2C
+ ldrb r1, [r2]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r2]
+ movs r3, 0x36
+ ldrsh r0, [r4, r3]
+ cmp r0, 0
+ bge _08140308
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl ChangeSpriteAffineAnim
+ b _08140310
+_08140308:
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl ChangeSpriteAffineAnim
+_08140310:
+ ldr r0, _0814032C @ =0x02017840
+ ldrh r2, [r0, 0xC]
+ movs r3, 0xC
+ ldrsh r1, [r0, r3]
+ adds r5, r0, 0
+ cmp r1, 0xFF
+ ble _08140330
+ ldrh r0, [r4, 0x36]
+ ldrh r1, [r4, 0x24]
+ adds r0, r1
+ strh r0, [r4, 0x24]
+ movs r0, 0xFF
+ ands r0, r2
+ b _08140334
+ .align 2, 0
+_0814032C: .4byte 0x02017840
+_08140330:
+ adds r0, r2, 0
+ adds r0, 0xB0
+_08140334:
+ strh r0, [r5, 0xC]
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x1
+ movs r3, 0
+ strh r0, [r4, 0x38]
+ adds r2, r4, 0
+ adds r2, 0x2C
+ ldrb r1, [r2]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r2]
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x4
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x8
+ bls _0814040A
+ strh r3, [r5, 0xC]
+ ldrh r0, [r4, 0x34]
+ adds r0, 0x1
+ strh r0, [r4, 0x34]
+ strh r3, [r4, 0x38]
+ ldrh r0, [r4, 0x36]
+ negs r0, r0
+ strh r0, [r4, 0x36]
+ b _0814040A
+_08140368:
+ movs r3, 0x80
+ lsls r3, 1
+ adds r0, r3, 0
+ ldrh r1, [r4, 0x34]
+ adds r0, r1
+ strh r0, [r4, 0x34]
+ lsls r0, 16
+ asrs r1, r0, 24
+ ldr r0, _08140394 @ =0x02017840
+ ldrb r0, [r0, 0x8]
+ cmp r1, r0
+ bne _0814039C
+ adds r2, r4, 0
+ adds r2, 0x2C
+ ldrb r0, [r2]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, _08140398 @ =sub_8140410
+ str r0, [r4, 0x1C]
+ b _0814040A
+ .align 2, 0
+_08140394: .4byte 0x02017840
+_08140398: .4byte sub_8140410
+_0814039C:
+ cmp r0, 0x4
+ bne _081403B0
+ cmp r1, 0x3
+ bne _081403B0
+ ldr r0, _081403AC @ =sub_8140434
+ str r0, [r4, 0x1C]
+ b _081403B6
+ .align 2, 0
+_081403AC: .4byte sub_8140434
+_081403B0:
+ ldrh r0, [r4, 0x34]
+ adds r0, 0x1
+ strh r0, [r4, 0x34]
+_081403B6:
+ adds r2, r4, 0
+ adds r2, 0x2C
+ ldrb r0, [r2]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2]
+ b _0814040A
+_081403C4:
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x1
+ strh r0, [r4, 0x38]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1F
+ bne _0814040A
+ movs r0, 0
+ strh r0, [r4, 0x38]
+ ldrh r1, [r4, 0x34]
+ ldr r0, _081403F8 @ =0xffffff00
+ ands r0, r1
+ strh r0, [r4, 0x34]
+ adds r0, r4, 0
+ movs r1, 0x3
+ bl StartSpriteAffineAnim
+ movs r3, 0x36
+ ldrsh r0, [r4, r3]
+ cmp r0, 0
+ bge _081403FC
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl StartSpriteAffineAnim
+ b _08140404
+ .align 2, 0
+_081403F8: .4byte 0xffffff00
+_081403FC:
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+_08140404:
+ movs r0, 0x17
+ bl PlaySE
+_0814040A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81401A0
+
+ thumb_func_start sub_8140410
+sub_8140410: @ 8140410
+ push {lr}
+ adds r1, r0, 0
+ ldrh r0, [r1, 0x38]
+ adds r0, 0x1
+ strh r0, [r1, 0x38]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1F
+ bne _0814042A
+ movs r0, 0
+ strh r0, [r1, 0x38]
+ ldr r0, _08140430 @ =sub_81405F4
+ str r0, [r1, 0x1C]
+_0814042A:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08140430: .4byte sub_81405F4
+ thumb_func_end sub_8140410
+
+ thumb_func_start sub_8140434
+sub_8140434: @ 8140434
+ adds r3, r0, 0
+ adds r3, 0x2C
+ ldrb r1, [r3]
+ movs r2, 0x40
+ orrs r1, r2
+ strb r1, [r3]
+ ldr r1, _08140450 @ =sub_8140454
+ str r1, [r0, 0x1C]
+ movs r1, 0
+ strh r1, [r0, 0x34]
+ strh r1, [r0, 0x36]
+ strh r1, [r0, 0x38]
+ bx lr
+ .align 2, 0
+_08140450: .4byte sub_8140454
+ thumb_func_end sub_8140434
+
+ thumb_func_start sub_8140454
+sub_8140454: @ 8140454
+ push {r4-r7,lr}
+ adds r6, r0, 0
+ ldr r7, _08140484 @ =gUnknown_0202F7C9
+ ldrh r0, [r6, 0x36]
+ adds r0, 0x1
+ strh r0, [r6, 0x36]
+ lsls r0, 16
+ asrs r1, r0, 16
+ cmp r1, 0x28
+ beq _081404CC
+ cmp r1, 0x5F
+ bne _08140490
+ ldr r0, _08140488 @ =gUnknown_02024E6D
+ movs r1, 0
+ strb r1, [r0]
+ movs r0, 0x1
+ bl sub_8043EB4
+ bl m4aMPlayAllStop
+ ldr r0, _0814048C @ =0x00000173
+ bl PlaySE
+ b _081404CC
+ .align 2, 0
+_08140484: .4byte gUnknown_0202F7C9
+_08140488: .4byte gUnknown_02024E6D
+_0814048C: .4byte 0x00000173
+_08140490:
+ ldr r0, _081404D4 @ =0x0000013b
+ cmp r1, r0
+ bne _081404CC
+ ldr r5, _081404D8 @ =gSprites
+ ldr r4, _081404DC @ =gUnknown_02024BE0
+ ldrb r0, [r7]
+ adds r0, r4
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldrb r0, [r0, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ bl FreeOamMatrix
+ ldrb r0, [r7]
+ adds r0, r4
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ bl DestroySprite
+ movs r0, 0
+ strh r0, [r6, 0x2E]
+ ldr r0, _081404E0 @ =sub_81404E4
+ str r0, [r6, 0x1C]
+_081404CC:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081404D4: .4byte 0x0000013b
+_081404D8: .4byte gSprites
+_081404DC: .4byte gUnknown_02024BE0
+_081404E0: .4byte sub_81404E4
+ thumb_func_end sub_8140454
+
+ thumb_func_start sub_81404E4
+sub_81404E4: @ 81404E4
+ push {r4,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ beq _08140550
+ cmp r0, 0x1
+ bgt _081404FC
+ cmp r0, 0
+ beq _08140502
+ b _08140594
+_081404FC:
+ cmp r0, 0x2
+ beq _08140580
+ b _08140594
+_08140502:
+ strh r0, [r4, 0x30]
+ strh r0, [r4, 0x32]
+ ldrb r1, [r4, 0x1]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r4, 0x1]
+ ldr r1, _08140548 @ =REG_BLDCNT
+ movs r2, 0xFD
+ lsls r2, 6
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r0, 0x10
+ strh r0, [r1]
+ ldr r0, [r4, 0x14]
+ ldrh r0, [r0, 0x2]
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x10
+ movs r1, 0x1
+ lsls r1, r0
+ ldr r0, _0814054C @ =0x00007fff
+ str r0, [sp]
+ adds r0, r1, 0
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ b _0814058C
+ .align 2, 0
+_08140548: .4byte REG_BLDCNT
+_0814054C: .4byte 0x00007fff
+_08140550:
+ ldrh r0, [r4, 0x30]
+ adds r1, r0, 0x1
+ strh r1, [r4, 0x30]
+ lsls r0, 16
+ cmp r0, 0
+ ble _081405B2
+ movs r0, 0
+ strh r0, [r4, 0x30]
+ ldrh r1, [r4, 0x32]
+ adds r1, 0x1
+ strh r1, [r4, 0x32]
+ ldr r3, _0814057C @ =REG_BLDALPHA
+ lsls r2, r1, 8
+ movs r0, 0x10
+ subs r0, r1
+ orrs r2, r0
+ strh r2, [r3]
+ movs r1, 0x32
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x10
+ bne _081405B2
+ b _0814058C
+ .align 2, 0
+_0814057C: .4byte REG_BLDALPHA
+_08140580:
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+_0814058C:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ b _081405B2
+_08140594:
+ ldr r0, _081405BC @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0
+ bne _081405B2
+ ldr r0, _081405C0 @ =REG_BLDCNT
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ strh r1, [r4, 0x2E]
+ ldr r0, _081405C4 @ =sub_81405C8
+ str r0, [r4, 0x1C]
+_081405B2:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081405BC: .4byte gPaletteFade
+_081405C0: .4byte REG_BLDCNT
+_081405C4: .4byte sub_81405C8
+ thumb_func_end sub_81404E4
+
+ thumb_func_start sub_81405C8
+sub_81405C8: @ 81405C8
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r1, [r4, 0x2E]
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bne _081405E0
+ ldr r0, _081405DC @ =0x0000ffff
+ strh r0, [r4, 0x2E]
+ b _081405EC
+ .align 2, 0
+_081405DC: .4byte 0x0000ffff
+_081405E0:
+ adds r0, r4, 0
+ bl FreeSpriteOamMatrix
+ adds r0, r4, 0
+ bl DestroySprite
+_081405EC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81405C8
+
+ thumb_func_start sub_81405F4
+sub_81405F4: @ 81405F4
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl StartSpriteAnim
+ adds r0, r4, 0
+ movs r1, 0
+ bl StartSpriteAffineAnim
+ ldr r0, _081406A8 @ =sub_81406BC
+ str r0, [r4, 0x1C]
+ ldr r0, _081406AC @ =gUnknown_02024C04
+ ldrh r0, [r0]
+ bl ball_number_to_ball_processing_index
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0xB
+ bgt _08140646
+ cmp r5, 0
+ blt _08140646
+ ldrh r0, [r4, 0x20]
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r4, 0x22]
+ subs r1, 0x5
+ lsls r1, 24
+ lsrs r1, 24
+ str r5, [sp]
+ movs r2, 0x1
+ movs r3, 0x1C
+ bl sub_814086C
+ ldr r0, _081406B0 @ =gUnknown_0202F7C9
+ ldrb r1, [r0]
+ movs r0, 0x1
+ movs r2, 0xE
+ adds r3, r5, 0
+ bl sub_8141314
+_08140646:
+ ldr r6, _081406B4 @ =gSprites
+ ldr r5, _081406B8 @ =gUnknown_02024BE0
+ ldr r4, _081406B0 @ =gUnknown_0202F7C9
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ adds r0, 0x3E
+ ldrb r2, [r0]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r0]
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ bl AnimateSprite
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ movs r1, 0x80
+ lsls r1, 5
+ strh r1, [r0, 0x30]
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081406A8: .4byte sub_81406BC
+_081406AC: .4byte gUnknown_02024C04
+_081406B0: .4byte gUnknown_0202F7C9
+_081406B4: .4byte gSprites
+_081406B8: .4byte gUnknown_02024BE0
+ thumb_func_end sub_81405F4
+
+ thumb_func_start sub_81406BC
+sub_81406BC: @ 81406BC
+ push {r4-r7,lr}
+ adds r7, r0, 0
+ movs r5, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _081406DA
+ adds r2, r7, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+_081406DA:
+ ldr r4, _08140708 @ =gSprites
+ ldr r3, _0814070C @ =gUnknown_02024BE0
+ ldr r2, _08140710 @ =gUnknown_0202F7C9
+ ldrb r0, [r2]
+ adds r0, r3
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r0, r4
+ adds r0, r1, 0
+ adds r0, 0x3F
+ ldrb r0, [r0]
+ lsls r0, 26
+ cmp r0, 0
+ bge _08140714
+ adds r0, r1, 0
+ movs r1, 0
+ bl StartSpriteAffineAnim
+ movs r5, 0x1
+ b _08140734
+ .align 2, 0
+_08140708: .4byte gSprites
+_0814070C: .4byte gUnknown_02024BE0
+_08140710: .4byte gUnknown_0202F7C9
+_08140714:
+ ldr r6, _0814079C @ =0xfffffee0
+ adds r0, r6, 0
+ ldrh r6, [r1, 0x30]
+ adds r0, r6
+ strh r0, [r1, 0x30]
+ ldrb r0, [r2]
+ adds r0, r3
+ ldrb r0, [r0]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ ldrh r0, [r1, 0x30]
+ lsls r0, 16
+ asrs r0, 24
+ strh r0, [r1, 0x26]
+_08140734:
+ adds r0, r7, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _08140796
+ cmp r5, 0
+ beq _08140796
+ ldr r4, _081407A0 @ =gSprites
+ ldr r3, _081407A4 @ =gUnknown_02024BE0
+ ldr r2, _081407A8 @ =gUnknown_0202F7C9
+ ldrb r0, [r2]
+ adds r0, r3
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r6, 0
+ movs r5, 0
+ strh r5, [r0, 0x26]
+ ldrb r0, [r2]
+ adds r0, r3
+ ldrb r0, [r0]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r4
+ ldr r0, _081407AC @ =0x02017840
+ ldrb r1, [r0, 0x9]
+ lsls r1, 30
+ adds r2, 0x3E
+ lsrs r1, 31
+ lsls r1, 2
+ ldrb r3, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2]
+ strh r5, [r7, 0x2E]
+ ldr r0, _081407B0 @ =sub_81405C8
+ str r0, [r7, 0x1C]
+ ldr r0, _081407B4 @ =gUnknown_02024E6D
+ strb r6, [r0]
+ movs r0, 0x1
+ bl sub_8043EB4
+_08140796:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0814079C: .4byte 0xfffffee0
+_081407A0: .4byte gSprites
+_081407A4: .4byte gUnknown_02024BE0
+_081407A8: .4byte gUnknown_0202F7C9
+_081407AC: .4byte 0x02017840
+_081407B0: .4byte sub_81405C8
+_081407B4: .4byte gUnknown_02024E6D
+ thumb_func_end sub_81406BC
+
+ thumb_func_start sub_81407B8
+sub_81407B8: @ 81407B8
+ push {r4,lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x24]
+ ldrh r1, [r2, 0x20]
+ adds r0, r1
+ movs r1, 0
+ strh r0, [r2, 0x20]
+ ldrh r0, [r2, 0x26]
+ ldrh r3, [r2, 0x22]
+ adds r0, r3
+ strh r0, [r2, 0x22]
+ strh r1, [r2, 0x26]
+ strh r1, [r2, 0x24]
+ ldr r4, _081407F0 @ =sub_81407F4
+ movs r3, 0
+ movs r1, 0x5
+ adds r0, r2, 0
+ adds r0, 0x38
+_081407DC:
+ strh r3, [r0]
+ subs r0, 0x2
+ subs r1, 0x1
+ cmp r1, 0
+ bge _081407DC
+ str r4, [r2, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081407F0: .4byte sub_81407F4
+ thumb_func_end sub_81407B8
+
+ thumb_func_start sub_81407F4
+sub_81407F4: @ 81407F4
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0x80
+ lsls r0, 4
+ adds r2, r0, 0
+ ldrh r1, [r4, 0x2E]
+ adds r2, r1
+ movs r0, 0xD0
+ lsls r0, 3
+ adds r3, r0, 0
+ ldrh r1, [r4, 0x30]
+ adds r3, r1
+ lsls r1, r3, 16
+ asrs r1, 24
+ ldrh r0, [r4, 0x24]
+ subs r0, r1
+ strh r0, [r4, 0x24]
+ lsls r0, r2, 16
+ asrs r0, 24
+ ldrh r1, [r4, 0x26]
+ adds r0, r1
+ strh r0, [r4, 0x26]
+ movs r0, 0xFF
+ ands r2, r0
+ strh r2, [r4, 0x2E]
+ ands r3, r0
+ strh r3, [r4, 0x30]
+ movs r2, 0x22
+ ldrsh r0, [r4, r2]
+ movs r2, 0x26
+ ldrsh r1, [r4, r2]
+ adds r0, r1
+ cmp r0, 0xA0
+ bgt _0814084A
+ movs r1, 0x20
+ ldrsh r0, [r4, r1]
+ movs r2, 0x24
+ ldrsh r1, [r4, r2]
+ adds r0, r1
+ movs r1, 0x8
+ negs r1, r1
+ cmp r0, r1
+ bge _0814085E
+_0814084A:
+ movs r0, 0
+ strh r0, [r4, 0x2E]
+ ldr r0, _08140864 @ =sub_81405C8
+ str r0, [r4, 0x1C]
+ ldr r1, _08140868 @ =gUnknown_02024E6D
+ movs r0, 0
+ strb r0, [r1]
+ movs r0, 0x1
+ bl sub_8043EB4
+_0814085E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08140864: .4byte sub_81405C8
+_08140868: .4byte gUnknown_02024E6D
+ thumb_func_end sub_81407F4
+
+ thumb_func_start sub_814086C
+sub_814086C: @ 814086C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r4, [sp, 0x20]
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ lsls r1, 24
+ lsrs r1, 24
+ mov r9, r1
+ lsls r2, 24
+ lsrs r2, 24
+ mov r8, r2
+ lsls r3, 24
+ lsrs r7, r3, 24
+ lsls r4, 24
+ lsrs r4, 24
+ adds r5, r4, 0
+ ldr r0, _08140910 @ =gUnknown_0840B258
+ lsls r6, r5, 3
+ adds r4, r6, r0
+ ldrh r0, [r4, 0x6]
+ bl GetSpriteTileStartByTag
+ lsls r0, 16
+ ldr r1, _08140914 @ =0xffff0000
+ cmp r0, r1
+ bne _081408B6
+ adds r0, r4, 0
+ bl LoadCompressedObjectPic
+ ldr r0, _08140918 @ =gUnknown_0840B2B8
+ adds r0, r6, r0
+ bl LoadCompressedObjectPalette
+_081408B6:
+ ldr r1, _0814091C @ =gUnknown_0840B384
+ lsls r0, r5, 2
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x5
+ bl CreateTask
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, _08140920 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ mov r1, r10
+ strh r1, [r0, 0xA]
+ mov r1, r9
+ strh r1, [r0, 0xC]
+ mov r1, r8
+ strh r1, [r0, 0xE]
+ strh r7, [r0, 0x10]
+ strh r5, [r0, 0x26]
+ movs r0, 0xF
+ bl PlaySE
+ ldr r0, _08140924 @ =gMain
+ ldr r1, _08140928 @ =0x0000043d
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _08140900
+ ldr r1, _0814092C @ =0x02017840
+ ldrb r0, [r1, 0xA]
+ adds r0, 0x1
+ strb r0, [r1, 0xA]
+_08140900:
+ adds r0, r4, 0
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08140910: .4byte gUnknown_0840B258
+_08140914: .4byte 0xffff0000
+_08140918: .4byte gUnknown_0840B2B8
+_0814091C: .4byte gUnknown_0840B384
+_08140920: .4byte gTasks
+_08140924: .4byte gMain
+_08140928: .4byte 0x0000043d
+_0814092C: .4byte 0x02017840
+ thumb_func_end sub_814086C
+
+ thumb_func_start sub_8140930
+sub_8140930: @ 8140930
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ ldr r1, _081409D0 @ =gTasks
+ lsls r0, 2
+ add r0, r9
+ lsls r0, 3
+ adds r7, r0, r1
+ ldrh r0, [r7, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ movs r1, 0x8
+ ldrsh r0, [r7, r1]
+ cmp r0, 0xF
+ bgt _081409E4
+ ldrb r1, [r7, 0xA]
+ ldrb r2, [r7, 0xC]
+ ldrb r6, [r7, 0xE]
+ ldrb r3, [r7, 0x10]
+ mov r4, r8
+ lsls r0, r4, 1
+ add r0, r8
+ lsls r0, 3
+ ldr r4, _081409D4 @ =gSpriteTemplate_840B3B4
+ adds r0, r4
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 4
+ adds r4, r0
+ lsls r4, 2
+ ldr r5, _081409D8 @ =gSprites
+ adds r2, r4, r5
+ ldr r0, _081409DC @ =gUnknown_0840B378
+ add r0, r8
+ ldrb r1, [r0]
+ adds r0, r2, 0
+ str r2, [sp]
+ bl StartSpriteAnim
+ adds r5, 0x1C
+ adds r4, r5
+ ldr r0, _081409E0 @ =sub_8140A08
+ str r0, [r4]
+ movs r0, 0x3
+ ands r6, r0
+ lsls r6, 2
+ ldr r2, [sp]
+ ldrb r1, [r2, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ orrs r0, r6
+ strb r0, [r2, 0x5]
+ ldrb r0, [r7, 0x8]
+ cmp r0, 0x7
+ bls _081409B6
+ subs r0, 0x8
+ lsls r0, 24
+ lsrs r0, 24
+_081409B6:
+ lsls r0, 5
+ strh r0, [r2, 0x2E]
+ movs r1, 0x8
+ ldrsh r0, [r7, r1]
+ cmp r0, 0xF
+ bne _081409E4
+ movs r0, 0x1
+ strh r0, [r2, 0x3C]
+ mov r0, r9
+ bl DestroyTask
+ b _081409F6
+ .align 2, 0
+_081409D0: .4byte gTasks
+_081409D4: .4byte gSpriteTemplate_840B3B4
+_081409D8: .4byte gSprites
+_081409DC: .4byte gUnknown_0840B378
+_081409E0: .4byte sub_8140A08
+_081409E4:
+ ldr r0, _08140A04 @ =gTasks
+ mov r2, r9
+ lsls r1, r2, 2
+ add r1, r9
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+_081409F6:
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08140A04: .4byte gTasks
+ thumb_func_end sub_8140930
+
+ thumb_func_start sub_8140A08
+sub_8140A08: @ 8140A08
+ push {lr}
+ adds r1, r0, 0
+ ldrh r2, [r1, 0x30]
+ movs r3, 0x30
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ bne _08140A20
+ ldr r0, _08140A1C @ =sub_8140A28
+ str r0, [r1, 0x1C]
+ b _08140A24
+ .align 2, 0
+_08140A1C: .4byte sub_8140A28
+_08140A20:
+ subs r0, r2, 0x1
+ strh r0, [r1, 0x30]
+_08140A24:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8140A08
+
+ thumb_func_start sub_8140A28
+sub_8140A28: @ 8140A28
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ movs r2, 0x30
+ ldrsh r1, [r4, r2]
+ bl Sin
+ strh r0, [r4, 0x24]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ movs r2, 0x30
+ ldrsh r1, [r4, r2]
+ bl Cos
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x2
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x32
+ bne _08140A5C
+ adds r0, r4, 0
+ bl sub_8141294
+_08140A5C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8140A28
+
+ thumb_func_start sub_8140A64
+sub_8140A64: @ 8140A64
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r1, _08140B24 @ =gTasks
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r1
+ ldrh r1, [r0, 0x26]
+ lsls r1, 24
+ lsrs r1, 24
+ ldrb r2, [r0, 0xA]
+ str r2, [sp]
+ ldrb r3, [r0, 0xC]
+ str r3, [sp, 0x4]
+ ldrb r2, [r0, 0xE]
+ str r2, [sp, 0x8]
+ ldrb r0, [r0, 0x10]
+ str r0, [sp, 0xC]
+ movs r6, 0
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ mov r10, r0
+ ldr r3, _08140B28 @ =gSprites
+ mov r8, r3
+ ldr r0, _08140B2C @ =gUnknown_0840B378
+ adds r1, r0
+ mov r9, r1
+_08140AA8:
+ ldr r0, _08140B30 @ =gSpriteTemplate_840B3B4
+ add r0, r10
+ ldr r1, [sp]
+ ldr r2, [sp, 0x4]
+ ldr r3, [sp, 0xC]
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r5, r1, 2
+ mov r0, r8
+ adds r4, r5, r0
+ mov r2, r9
+ ldrb r1, [r2]
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ ldr r3, _08140B34 @ =gSprites + 0x1C
+ adds r1, r5, r3
+ ldr r0, _08140B38 @ =sub_8140ECC
+ str r0, [r1]
+ movs r0, 0x3
+ ldr r2, [sp, 0x8]
+ ands r2, r0
+ lsls r2, 2
+ ldrb r0, [r4, 0x5]
+ movs r3, 0xD
+ negs r3, r3
+ adds r1, r3, 0
+ ands r0, r1
+ orrs r0, r2
+ strb r0, [r4, 0x5]
+ lsls r0, r6, 5
+ strh r0, [r4, 0x2E]
+ movs r0, 0xA
+ strh r0, [r4, 0x36]
+ movs r0, 0x2
+ strh r0, [r4, 0x38]
+ movs r2, 0x1
+ strh r2, [r4, 0x3A]
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0x7
+ bls _08140AA8
+ ldr r0, _08140B28 @ =gSprites
+ adds r0, r5, r0
+ strh r2, [r0, 0x3C]
+ adds r0, r7, 0
+ bl DestroyTask
+ add sp, 0x10
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08140B24: .4byte gTasks
+_08140B28: .4byte gSprites
+_08140B2C: .4byte gUnknown_0840B378
+_08140B30: .4byte gSpriteTemplate_840B3B4
+_08140B34: .4byte gSprites + 0x1C
+_08140B38: .4byte sub_8140ECC
+ thumb_func_end sub_8140A64
+
+ thumb_func_start sub_8140B3C
+sub_8140B3C: @ 8140B3C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r1, _08140BFC @ =gTasks
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r1
+ ldrh r1, [r0, 0x26]
+ lsls r1, 24
+ lsrs r1, 24
+ ldrb r2, [r0, 0xA]
+ str r2, [sp]
+ ldrb r3, [r0, 0xC]
+ str r3, [sp, 0x4]
+ ldrb r2, [r0, 0xE]
+ str r2, [sp, 0x8]
+ ldrb r0, [r0, 0x10]
+ str r0, [sp, 0xC]
+ movs r6, 0
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ mov r10, r0
+ ldr r3, _08140C00 @ =gSprites
+ mov r8, r3
+ ldr r0, _08140C04 @ =gUnknown_0840B378
+ adds r1, r0
+ mov r9, r1
+_08140B80:
+ ldr r0, _08140C08 @ =gSpriteTemplate_840B3B4
+ add r0, r10
+ ldr r1, [sp]
+ ldr r2, [sp, 0x4]
+ ldr r3, [sp, 0xC]
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r5, r1, 2
+ mov r0, r8
+ adds r4, r5, r0
+ mov r2, r9
+ ldrb r1, [r2]
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ ldr r3, _08140C0C @ =gSprites + 0x1C
+ adds r1, r5, r3
+ ldr r0, _08140C10 @ =sub_8140ECC
+ str r0, [r1]
+ movs r0, 0x3
+ ldr r2, [sp, 0x8]
+ ands r2, r0
+ lsls r2, 2
+ ldrb r0, [r4, 0x5]
+ movs r3, 0xD
+ negs r3, r3
+ adds r1, r3, 0
+ ands r0, r1
+ orrs r0, r2
+ strb r0, [r4, 0x5]
+ lsls r0, r6, 5
+ strh r0, [r4, 0x2E]
+ movs r0, 0xA
+ strh r0, [r4, 0x36]
+ movs r1, 0x1
+ strh r1, [r4, 0x38]
+ movs r0, 0x2
+ strh r0, [r4, 0x3A]
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0x7
+ bls _08140B80
+ ldr r0, _08140C00 @ =gSprites
+ adds r0, r5, r0
+ strh r1, [r0, 0x3C]
+ adds r0, r7, 0
+ bl DestroyTask
+ add sp, 0x10
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08140BFC: .4byte gTasks
+_08140C00: .4byte gSprites
+_08140C04: .4byte gUnknown_0840B378
+_08140C08: .4byte gSpriteTemplate_840B3B4
+_08140C0C: .4byte gSprites + 0x1C
+_08140C10: .4byte sub_8140ECC
+ thumb_func_end sub_8140B3C
+
+ thumb_func_start sub_8140C14
+sub_8140C14: @ 8140C14
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r1, _08140CD0 @ =gTasks
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r1
+ ldrh r1, [r0, 0x26]
+ lsls r1, 24
+ lsrs r1, 24
+ ldrb r2, [r0, 0xA]
+ str r2, [sp]
+ ldrb r3, [r0, 0xC]
+ str r3, [sp, 0x4]
+ ldrb r2, [r0, 0xE]
+ str r2, [sp, 0x8]
+ ldrb r0, [r0, 0x10]
+ str r0, [sp, 0xC]
+ movs r6, 0
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ mov r10, r0
+ ldr r3, _08140CD4 @ =gSprites
+ mov r8, r3
+ ldr r0, _08140CD8 @ =gUnknown_0840B378
+ adds r1, r0
+ mov r9, r1
+_08140C58:
+ ldr r0, _08140CDC @ =gSpriteTemplate_840B3B4
+ add r0, r10
+ ldr r1, [sp]
+ ldr r2, [sp, 0x4]
+ ldr r3, [sp, 0xC]
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r5, r1, 2
+ mov r0, r8
+ adds r4, r5, r0
+ mov r2, r9
+ ldrb r1, [r2]
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ ldr r3, _08140CE0 @ =gSprites + 0x1C
+ adds r1, r5, r3
+ ldr r0, _08140CE4 @ =sub_8140ECC
+ str r0, [r1]
+ movs r0, 0x3
+ ldr r2, [sp, 0x8]
+ ands r2, r0
+ lsls r2, 2
+ ldrb r0, [r4, 0x5]
+ movs r3, 0xD
+ negs r3, r3
+ adds r1, r3, 0
+ ands r0, r1
+ orrs r0, r2
+ strb r0, [r4, 0x5]
+ lsls r0, r6, 5
+ strh r0, [r4, 0x2E]
+ movs r0, 0x4
+ strh r0, [r4, 0x36]
+ movs r2, 0x1
+ strh r2, [r4, 0x38]
+ strh r2, [r4, 0x3A]
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0x7
+ bls _08140C58
+ ldr r0, _08140CD4 @ =gSprites
+ adds r0, r5, r0
+ strh r2, [r0, 0x3C]
+ adds r0, r7, 0
+ bl DestroyTask
+ add sp, 0x10
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08140CD0: .4byte gTasks
+_08140CD4: .4byte gSprites
+_08140CD8: .4byte gUnknown_0840B378
+_08140CDC: .4byte gSpriteTemplate_840B3B4
+_08140CE0: .4byte gSprites + 0x1C
+_08140CE4: .4byte sub_8140ECC
+ thumb_func_end sub_8140C14
+
+ thumb_func_start sub_8140CE8
+sub_8140CE8: @ 8140CE8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r1, _08140DAC @ =gTasks
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r1
+ ldrh r1, [r0, 0x26]
+ lsls r1, 24
+ lsrs r1, 24
+ ldrb r2, [r0, 0xA]
+ str r2, [sp]
+ ldrb r3, [r0, 0xC]
+ str r3, [sp, 0x4]
+ ldrb r2, [r0, 0xE]
+ str r2, [sp, 0x8]
+ ldrb r0, [r0, 0x10]
+ str r0, [sp, 0xC]
+ movs r6, 0
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ mov r10, r0
+ ldr r3, _08140DB0 @ =gSprites
+ mov r8, r3
+ ldr r0, _08140DB4 @ =gUnknown_0840B378
+ adds r1, r0
+ mov r9, r1
+_08140D2C:
+ ldr r0, _08140DB8 @ =gSpriteTemplate_840B3B4
+ add r0, r10
+ ldr r1, [sp]
+ ldr r2, [sp, 0x4]
+ ldr r3, [sp, 0xC]
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r5, r1, 2
+ mov r0, r8
+ adds r4, r5, r0
+ mov r2, r9
+ ldrb r1, [r2]
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ ldr r3, _08140DBC @ =gSprites + 0x1C
+ adds r1, r5, r3
+ ldr r0, _08140DC0 @ =sub_8140ECC
+ str r0, [r1]
+ movs r0, 0x3
+ ldr r2, [sp, 0x8]
+ ands r2, r0
+ lsls r2, 2
+ ldrb r0, [r4, 0x5]
+ movs r3, 0xD
+ negs r3, r3
+ adds r1, r3, 0
+ ands r0, r1
+ orrs r0, r2
+ strb r0, [r4, 0x5]
+ lsls r0, r6, 1
+ adds r0, r6
+ lsls r0, 3
+ adds r0, r6
+ strh r0, [r4, 0x2E]
+ movs r0, 0x5
+ strh r0, [r4, 0x36]
+ movs r2, 0x1
+ strh r2, [r4, 0x38]
+ strh r2, [r4, 0x3A]
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0x9
+ bls _08140D2C
+ ldr r0, _08140DB0 @ =gSprites
+ adds r0, r5, r0
+ strh r2, [r0, 0x3C]
+ adds r0, r7, 0
+ bl DestroyTask
+ add sp, 0x10
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08140DAC: .4byte gTasks
+_08140DB0: .4byte gSprites
+_08140DB4: .4byte gUnknown_0840B378
+_08140DB8: .4byte gSpriteTemplate_840B3B4
+_08140DBC: .4byte gSprites + 0x1C
+_08140DC0: .4byte sub_8140ECC
+ thumb_func_end sub_8140CE8
+
+ thumb_func_start sub_8140DC4
+sub_8140DC4: @ 8140DC4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x14
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r1, _08140DF0 @ =gTasks
+ lsls r2, r7, 2
+ adds r0, r2, r7
+ lsls r0, 3
+ adds r3, r0, r1
+ ldrh r1, [r3, 0x16]
+ movs r4, 0x16
+ ldrsh r0, [r3, r4]
+ cmp r0, 0
+ beq _08140DF4
+ subs r0, r1, 0x1
+ strh r0, [r3, 0x16]
+ b _08140EA4
+ .align 2, 0
+_08140DF0: .4byte gTasks
+_08140DF4:
+ ldrh r0, [r3, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r3, 0xA]
+ str r1, [sp]
+ ldrb r4, [r3, 0xC]
+ str r4, [sp, 0x4]
+ ldrb r1, [r3, 0xE]
+ str r1, [sp, 0x8]
+ ldrb r3, [r3, 0x10]
+ str r3, [sp, 0xC]
+ movs r6, 0
+ str r2, [sp, 0x10]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 3
+ mov r10, r1
+ ldr r3, _08140EB4 @ =gSprites
+ mov r8, r3
+ ldr r1, _08140EB8 @ =gUnknown_0840B378
+ adds r0, r1
+ mov r9, r0
+_08140E20:
+ ldr r0, _08140EBC @ =gSpriteTemplate_840B3B4
+ add r0, r10
+ ldr r1, [sp]
+ ldr r2, [sp, 0x4]
+ ldr r3, [sp, 0xC]
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r5, r1, 2
+ mov r0, r8
+ adds r4, r5, r0
+ mov r3, r9
+ ldrb r1, [r3]
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ ldr r0, _08140EC0 @ =gSprites + 0x1C
+ adds r1, r5, r0
+ ldr r0, _08140EC4 @ =sub_8140ECC
+ str r0, [r1]
+ movs r0, 0x3
+ ldr r2, [sp, 0x8]
+ ands r2, r0
+ lsls r2, 2
+ ldrb r0, [r4, 0x5]
+ movs r3, 0xD
+ negs r3, r3
+ adds r1, r3, 0
+ ands r0, r1
+ orrs r0, r2
+ strb r0, [r4, 0x5]
+ lsls r0, r6, 5
+ strh r0, [r4, 0x2E]
+ movs r2, 0x8
+ strh r2, [r4, 0x36]
+ movs r0, 0x2
+ strh r0, [r4, 0x38]
+ strh r0, [r4, 0x3A]
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0x7
+ bls _08140E20
+ ldr r0, _08140EC8 @ =gTasks
+ ldr r4, [sp, 0x10]
+ adds r1, r4, r7
+ lsls r1, 3
+ adds r1, r0
+ strh r2, [r1, 0x16]
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ bne _08140EA4
+ ldr r0, _08140EB4 @ =gSprites
+ adds r0, r5, r0
+ movs r1, 0x1
+ strh r1, [r0, 0x3C]
+ adds r0, r7, 0
+ bl DestroyTask
+_08140EA4:
+ add sp, 0x14
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08140EB4: .4byte gSprites
+_08140EB8: .4byte gUnknown_0840B378
+_08140EBC: .4byte gSpriteTemplate_840B3B4
+_08140EC0: .4byte gSprites + 0x1C
+_08140EC4: .4byte sub_8140ECC
+_08140EC8: .4byte gTasks
+ thumb_func_end sub_8140DC4
+
+ thumb_func_start sub_8140ECC
+sub_8140ECC: @ 8140ECC
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ movs r2, 0x30
+ ldrsh r1, [r4, r2]
+ bl Sin
+ strh r0, [r4, 0x24]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ movs r2, 0x32
+ ldrsh r1, [r4, r2]
+ bl Cos
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x36]
+ ldrh r1, [r4, 0x2E]
+ adds r0, r1
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r4, 0x38]
+ ldrh r2, [r4, 0x30]
+ adds r0, r2
+ strh r0, [r4, 0x30]
+ ldrh r0, [r4, 0x3A]
+ ldrh r1, [r4, 0x32]
+ adds r0, r1
+ strh r0, [r4, 0x32]
+ ldrh r0, [r4, 0x34]
+ adds r0, 0x1
+ strh r0, [r4, 0x34]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x33
+ bne _08140F1C
+ adds r0, r4, 0
+ bl sub_8141294
+_08140F1C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8140ECC
+
+ thumb_func_start sub_8140F24
+sub_8140F24: @ 8140F24
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r1, _08140FE0 @ =gTasks
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r1
+ ldrh r1, [r0, 0x26]
+ lsls r1, 24
+ lsrs r1, 24
+ ldrb r2, [r0, 0xA]
+ str r2, [sp]
+ ldrb r3, [r0, 0xC]
+ str r3, [sp, 0x4]
+ ldrb r2, [r0, 0xE]
+ str r2, [sp, 0x8]
+ ldrb r0, [r0, 0x10]
+ str r0, [sp, 0xC]
+ movs r6, 0
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ mov r10, r0
+ ldr r3, _08140FE4 @ =gSprites
+ mov r8, r3
+ ldr r0, _08140FE8 @ =gUnknown_0840B378
+ adds r1, r0
+ mov r9, r1
+_08140F68:
+ ldr r0, _08140FEC @ =gSpriteTemplate_840B3B4
+ add r0, r10
+ ldr r1, [sp]
+ ldr r2, [sp, 0x4]
+ ldr r3, [sp, 0xC]
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r5, r1, 2
+ mov r0, r8
+ adds r4, r5, r0
+ mov r2, r9
+ ldrb r1, [r2]
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ ldr r3, _08140FF0 @ =gSprites + 0x1C
+ adds r1, r5, r3
+ ldr r0, _08140FF4 @ =sub_8140FF8
+ str r0, [r1]
+ movs r0, 0x3
+ ldr r2, [sp, 0x8]
+ ands r2, r0
+ lsls r2, 2
+ ldrb r0, [r4, 0x5]
+ movs r3, 0xD
+ negs r3, r3
+ adds r1, r3, 0
+ ands r0, r1
+ orrs r0, r2
+ strb r0, [r4, 0x5]
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 2
+ adds r0, r6
+ strh r0, [r4, 0x2E]
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0xB
+ bls _08140F68
+ ldr r0, _08140FE4 @ =gSprites
+ adds r0, r5, r0
+ movs r1, 0x1
+ strh r1, [r0, 0x3C]
+ adds r0, r7, 0
+ bl DestroyTask
+ add sp, 0x10
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08140FE0: .4byte gTasks
+_08140FE4: .4byte gSprites
+_08140FE8: .4byte gUnknown_0840B378
+_08140FEC: .4byte gSpriteTemplate_840B3B4
+_08140FF0: .4byte gSprites + 0x1C
+_08140FF4: .4byte sub_8140FF8
+ thumb_func_end sub_8140F24
+
+ thumb_func_start sub_8140FF8
+sub_8140FF8: @ 8140FF8
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r5, r1]
+ movs r2, 0x30
+ ldrsh r1, [r5, r2]
+ bl Sin
+ strh r0, [r5, 0x24]
+ movs r0, 0x2E
+ ldrsh r4, [r5, r0]
+ movs r2, 0x32
+ ldrsh r1, [r5, r2]
+ adds r0, r4, 0
+ bl Sin
+ adds r1, r0, 0
+ lsls r1, 16
+ asrs r1, 16
+ adds r0, r4, 0
+ bl Cos
+ strh r0, [r5, 0x26]
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x6
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r5, 0x2E]
+ ldrh r0, [r5, 0x30]
+ adds r0, 0x1
+ strh r0, [r5, 0x30]
+ ldrh r0, [r5, 0x32]
+ adds r0, 0x1
+ strh r0, [r5, 0x32]
+ ldrh r0, [r5, 0x34]
+ adds r0, 0x1
+ strh r0, [r5, 0x34]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x33
+ bne _08141050
+ adds r0, r5, 0
+ bl sub_8141294
+_08141050:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8140FF8
+
+ thumb_func_start sub_8141058
+sub_8141058: @ 8141058
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x18
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp]
+ ldr r1, _08141104 @ =gTasks
+ lsls r0, 2
+ ldr r2, [sp]
+ adds r0, r2
+ lsls r0, 3
+ adds r0, r1
+ ldrh r1, [r0, 0x26]
+ lsls r1, 24
+ lsrs r1, 24
+ ldrb r3, [r0, 0xA]
+ str r3, [sp, 0x4]
+ ldrb r2, [r0, 0xC]
+ str r2, [sp, 0x8]
+ ldrb r3, [r0, 0xE]
+ str r3, [sp, 0xC]
+ ldrb r0, [r0, 0x10]
+ str r0, [sp, 0x10]
+ movs r0, 0
+ mov r8, r0
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ str r0, [sp, 0x14]
+ ldr r0, _08141108 @ =gUnknown_0840B378
+ adds r1, r0
+ mov r10, r1
+_0814109E:
+ movs r7, 0
+ movs r1, 0x1
+ add r1, r8
+ mov r9, r1
+_081410A6:
+ ldr r0, _0814110C @ =gSpriteTemplate_840B3B4
+ ldr r2, [sp, 0x14]
+ adds r0, r2, r0
+ ldr r1, [sp, 0x4]
+ ldr r2, [sp, 0x8]
+ ldr r3, [sp, 0x10]
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r4, r6, 4
+ adds r4, r6
+ lsls r4, 2
+ ldr r3, _08141110 @ =gSprites
+ adds r5, r4, r3
+ mov r0, r10
+ ldrb r1, [r0]
+ adds r0, r5, 0
+ bl StartSpriteAnim
+ ldr r1, _08141114 @ =gSprites + 0x1C
+ adds r4, r1
+ ldr r0, _08141118 @ =sub_8140ECC
+ str r0, [r4]
+ movs r0, 0x3
+ ldr r1, [sp, 0xC]
+ ands r1, r0
+ lsls r1, 2
+ ldrb r0, [r5, 0x5]
+ movs r3, 0xD
+ negs r3, r3
+ adds r2, r3, 0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r5, 0x5]
+ lsls r0, r7, 5
+ strh r0, [r5, 0x2E]
+ movs r0, 0x8
+ strh r0, [r5, 0x36]
+ mov r0, r8
+ cmp r0, 0
+ bne _0814111C
+ movs r0, 0x2
+ strh r0, [r5, 0x38]
+ movs r0, 0x1
+ b _08141122
+ .align 2, 0
+_08141104: .4byte gTasks
+_08141108: .4byte gUnknown_0840B378
+_0814110C: .4byte gSpriteTemplate_840B3B4
+_08141110: .4byte gSprites
+_08141114: .4byte gSprites + 0x1C
+_08141118: .4byte sub_8140ECC
+_0814111C:
+ movs r0, 0x1
+ strh r0, [r5, 0x38]
+ movs r0, 0x2
+_08141122:
+ strh r0, [r5, 0x3A]
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ cmp r7, 0x7
+ bls _081410A6
+ mov r1, r9
+ lsls r0, r1, 24
+ lsrs r0, 24
+ mov r8, r0
+ cmp r0, 0x1
+ bls _0814109E
+ ldr r0, _08141160 @ =gSprites
+ lsls r1, r6, 4
+ adds r1, r6
+ lsls r1, 2
+ adds r1, r0
+ movs r0, 0x1
+ strh r0, [r1, 0x3C]
+ ldr r0, [sp]
+ bl DestroyTask
+ add sp, 0x18
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08141160: .4byte gSprites
+ thumb_func_end sub_8141058
+
+ thumb_func_start sub_8141164
+sub_8141164: @ 8141164
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r1, _08141218 @ =gTasks
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r1
+ ldrh r1, [r0, 0x26]
+ lsls r1, 24
+ lsrs r1, 24
+ ldrb r2, [r0, 0xA]
+ str r2, [sp]
+ ldrb r3, [r0, 0xC]
+ str r3, [sp, 0x4]
+ ldrb r2, [r0, 0xE]
+ str r2, [sp, 0x8]
+ ldrb r0, [r0, 0x10]
+ str r0, [sp, 0xC]
+ movs r6, 0
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ mov r10, r0
+ ldr r3, _0814121C @ =gSprites
+ mov r8, r3
+ ldr r0, _08141220 @ =gUnknown_0840B378
+ adds r1, r0
+ mov r9, r1
+_081411A8:
+ ldr r0, _08141224 @ =gSpriteTemplate_840B3B4
+ add r0, r10
+ ldr r1, [sp]
+ ldr r2, [sp, 0x4]
+ ldr r3, [sp, 0xC]
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r5, r1, 2
+ mov r0, r8
+ adds r4, r5, r0
+ mov r2, r9
+ ldrb r1, [r2]
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ ldr r3, _08141228 @ =gSprites + 0x1C
+ adds r1, r5, r3
+ ldr r0, _0814122C @ =sub_8141230
+ str r0, [r1]
+ movs r0, 0x3
+ ldr r2, [sp, 0x8]
+ ands r2, r0
+ lsls r2, 2
+ ldrb r0, [r4, 0x5]
+ movs r3, 0xD
+ negs r3, r3
+ adds r1, r3, 0
+ ands r0, r1
+ orrs r0, r2
+ strb r0, [r4, 0x5]
+ lsls r0, r6, 5
+ strh r0, [r4, 0x2E]
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0x7
+ bls _081411A8
+ ldr r0, _0814121C @ =gSprites
+ adds r0, r5, r0
+ movs r1, 0x1
+ strh r1, [r0, 0x3C]
+ adds r0, r7, 0
+ bl DestroyTask
+ add sp, 0x10
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08141218: .4byte gTasks
+_0814121C: .4byte gSprites
+_08141220: .4byte gUnknown_0840B378
+_08141224: .4byte gSpriteTemplate_840B3B4
+_08141228: .4byte gSprites + 0x1C
+_0814122C: .4byte sub_8141230
+ thumb_func_end sub_8141164
+
+ thumb_func_start sub_8141230
+sub_8141230: @ 8141230
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r5, r1]
+ movs r2, 0x30
+ ldrsh r1, [r5, r2]
+ bl Sin
+ strh r0, [r5, 0x24]
+ movs r0, 0x2E
+ ldrsh r4, [r5, r0]
+ ldrh r1, [r5, 0x2E]
+ movs r0, 0x3F
+ ands r0, r1
+ movs r2, 0x32
+ ldrsh r1, [r5, r2]
+ bl Sin
+ adds r1, r0, 0
+ lsls r1, 16
+ asrs r1, 16
+ adds r0, r4, 0
+ bl Cos
+ strh r0, [r5, 0x26]
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0xA
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r5, 0x2E]
+ ldrh r0, [r5, 0x30]
+ adds r0, 0x1
+ strh r0, [r5, 0x30]
+ ldrh r0, [r5, 0x32]
+ adds r0, 0x1
+ strh r0, [r5, 0x32]
+ ldrh r0, [r5, 0x34]
+ adds r0, 0x1
+ strh r0, [r5, 0x34]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x33
+ bne _0814128C
+ adds r0, r5, 0
+ bl sub_8141294
+_0814128C:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8141230
+
+ thumb_func_start sub_8141294
+sub_8141294: @ 8141294
+ push {r4-r7,lr}
+ adds r5, r0, 0
+ ldr r0, _081412B8 @ =gMain
+ ldr r1, _081412BC @ =0x0000043d
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ bne _081412C0
+ movs r1, 0x3C
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ bne _081412F2
+ adds r0, r5, 0
+ bl DestroySpriteAndFreeResources
+ b _0814130E
+ .align 2, 0
+_081412B8: .4byte gMain
+_081412BC: .4byte 0x0000043d
+_081412C0:
+ movs r1, 0x3C
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ bne _08141308
+ ldr r1, _081412FC @ =0x02017840
+ ldrb r0, [r1, 0xA]
+ subs r0, 0x1
+ strb r0, [r1, 0xA]
+ lsls r0, 24
+ cmp r0, 0
+ bne _081412F2
+ movs r7, 0
+ ldr r6, _08141300 @ =gUnknown_0840B258
+ ldr r4, _08141304 @ =gUnknown_0840B2B8
+_081412DC:
+ ldrh r0, [r6, 0x6]
+ bl FreeSpriteTilesByTag
+ ldrh r0, [r4, 0x4]
+ bl FreeSpritePaletteByTag
+ adds r6, 0x8
+ adds r4, 0x8
+ adds r7, 0x1
+ cmp r7, 0xB
+ ble _081412DC
+_081412F2:
+ adds r0, r5, 0
+ bl DestroySprite
+ b _0814130E
+ .align 2, 0
+_081412FC: .4byte 0x02017840
+_08141300: .4byte gUnknown_0840B258
+_08141304: .4byte gUnknown_0840B2B8
+_08141308:
+ adds r0, r5, 0
+ bl DestroySprite
+_0814130E:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8141294
+
+ thumb_func_start sub_8141314
+sub_8141314: @ 8141314
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x4
+ adds r4, r0, 0
+ mov r9, r2
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r1, 24
+ lsrs r6, r1, 24
+ lsls r3, 24
+ lsrs r7, r3, 24
+ ldr r0, _08141378 @ =sub_81413DC
+ movs r1, 0x5
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r1, _0814137C @ =gTasks
+ lsls r0, 2
+ add r0, r8
+ lsls r0, 3
+ adds r5, r0, r1
+ strh r7, [r5, 0x26]
+ strh r6, [r5, 0xE]
+ mov r0, r9
+ strh r0, [r5, 0x1C]
+ mov r1, r9
+ lsrs r0, r1, 16
+ strh r0, [r5, 0x1E]
+ cmp r4, 0
+ bne _08141384
+ lsls r0, r6, 20
+ movs r2, 0x80
+ lsls r2, 17
+ adds r0, r2
+ lsrs r0, 16
+ ldr r2, _08141380 @ =gUnknown_0840B4D4
+ lsls r1, r7, 1
+ adds r1, r2
+ ldrh r3, [r1]
+ movs r1, 0x10
+ movs r2, 0
+ bl BlendPalette
+ movs r0, 0x1
+ strh r0, [r5, 0xA]
+ b _081413AA
+ .align 2, 0
+_08141378: .4byte sub_81413DC
+_0814137C: .4byte gTasks
+_08141380: .4byte gUnknown_0840B4D4
+_08141384:
+ lsls r0, r6, 20
+ movs r1, 0x80
+ lsls r1, 17
+ adds r0, r1
+ lsrs r0, 16
+ ldr r2, _081413CC @ =gUnknown_0840B4D4
+ lsls r1, r7, 1
+ adds r1, r2
+ ldrh r3, [r1]
+ movs r1, 0x10
+ movs r2, 0x10
+ bl BlendPalette
+ movs r0, 0x10
+ strh r0, [r5, 0x8]
+ ldr r0, _081413D0 @ =0x0000ffff
+ strh r0, [r5, 0xA]
+ ldr r0, _081413D4 @ =sub_814146C
+ str r0, [r5]
+_081413AA:
+ ldr r0, _081413D8 @ =0x00007fff
+ str r0, [sp]
+ mov r0, r9
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ mov r0, r8
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_081413CC: .4byte gUnknown_0840B4D4
+_081413D0: .4byte 0x0000ffff
+_081413D4: .4byte sub_814146C
+_081413D8: .4byte 0x00007fff
+ thumb_func_end sub_8141314
+
+ thumb_func_start sub_81413DC
+sub_81413DC: @ 81413DC
+ push {r4,r5,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ adds r5, r0, 0
+ ldr r1, _0814142C @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r4, r0, r1
+ ldrh r0, [r4, 0x26]
+ lsls r0, 24
+ lsrs r1, r0, 24
+ movs r2, 0xC
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x10
+ bgt _08141434
+ movs r2, 0xE
+ ldrsh r0, [r4, r2]
+ lsls r0, 20
+ movs r2, 0x80
+ lsls r2, 17
+ adds r0, r2
+ lsrs r0, 16
+ ldrb r2, [r4, 0x8]
+ ldr r3, _08141430 @ =gUnknown_0840B4D4
+ lsls r1, 1
+ adds r1, r3
+ ldrh r3, [r1]
+ movs r1, 0x10
+ bl BlendPalette
+ ldrh r0, [r4, 0xA]
+ ldrh r1, [r4, 0x8]
+ adds r0, r1
+ strh r0, [r4, 0x8]
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ b _0814145C
+ .align 2, 0
+_0814142C: .4byte gTasks
+_08141430: .4byte gUnknown_0840B4D4
+_08141434:
+ ldr r0, _08141464 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0814145C
+ ldrh r0, [r4, 0x1C]
+ ldrh r1, [r4, 0x1E]
+ lsls r1, 16
+ orrs r0, r1
+ ldr r1, _08141468 @ =0x00007fff
+ str r1, [sp]
+ movs r1, 0
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ adds r0, r5, 0
+ bl DestroyTask
+_0814145C:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08141464: .4byte gPaletteFade
+_08141468: .4byte 0x00007fff
+ thumb_func_end sub_81413DC
+
+ thumb_func_start sub_814146C
+sub_814146C: @ 814146C
+ push {r4,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _081414AC @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _081414A4
+ ldr r0, _081414B0 @ =gTasks
+ lsls r4, r2, 2
+ adds r4, r2
+ lsls r4, 3
+ adds r4, r0
+ ldrh r0, [r4, 0x1C]
+ ldrh r1, [r4, 0x1E]
+ lsls r1, 16
+ orrs r0, r1
+ ldr r1, _081414B4 @ =0x00007fff
+ str r1, [sp]
+ movs r1, 0
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldr r0, _081414B8 @ =sub_81414BC
+ str r0, [r4]
+_081414A4:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081414AC: .4byte gPaletteFade
+_081414B0: .4byte gTasks
+_081414B4: .4byte 0x00007fff
+_081414B8: .4byte sub_81414BC
+ thumb_func_end sub_814146C
+
+ thumb_func_start sub_81414BC
+sub_81414BC: @ 81414BC
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r1, _08141508 @ =gTasks
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r4, r0, r1
+ ldrh r0, [r4, 0x26]
+ lsls r0, 24
+ lsrs r1, r0, 24
+ movs r3, 0xC
+ ldrsh r0, [r4, r3]
+ cmp r0, 0x10
+ bgt _08141510
+ movs r2, 0xE
+ ldrsh r0, [r4, r2]
+ lsls r0, 20
+ movs r3, 0x80
+ lsls r3, 17
+ adds r0, r3
+ lsrs r0, 16
+ ldrb r2, [r4, 0x8]
+ ldr r3, _0814150C @ =gUnknown_0840B4D4
+ lsls r1, 1
+ adds r1, r3
+ ldrh r3, [r1]
+ movs r1, 0x10
+ bl BlendPalette
+ ldrh r0, [r4, 0xA]
+ ldrh r1, [r4, 0x8]
+ adds r0, r1
+ strh r0, [r4, 0x8]
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ b _08141516
+ .align 2, 0
+_08141508: .4byte gTasks
+_0814150C: .4byte gUnknown_0840B4D4
+_08141510:
+ adds r0, r2, 0
+ bl DestroyTask
+_08141516:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81414BC
+
+ thumb_func_start sub_814151C
+sub_814151C: @ 814151C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ movs r0, 0
+ mov r8, r0
+ ldr r0, _08141550 @ =gUnknown_02024BE0
+ ldr r3, _08141554 @ =gUnknown_0202F7C8
+ ldrb r2, [r3]
+ adds r0, r2, r0
+ ldrb r6, [r0]
+ ldr r1, _08141558 @ =gTasks
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r5, r0, r1
+ movs r1, 0x1C
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ beq _081415F4
+ cmp r0, 0x1
+ bgt _0814155C
+ cmp r0, 0
+ beq _08141562
+ b _081416B6
+ .align 2, 0
+_08141550: .4byte gUnknown_02024BE0
+_08141554: .4byte gUnknown_0202F7C8
+_08141558: .4byte gTasks
+_0814155C:
+ cmp r0, 0x2
+ beq _08141606
+ b _081416B6
+_08141562:
+ ldr r0, _0814159C @ =gBattleAnimArgs
+ ldrh r0, [r0]
+ strh r0, [r5, 0x1E]
+ movs r2, 0xA0
+ lsls r2, 3
+ adds r0, r2, 0
+ ldrh r4, [r5, 0x8]
+ adds r0, r4
+ strh r0, [r5, 0x8]
+ ldrb r0, [r3]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _081415A4
+ ldr r2, _081415A0 @ =gSprites
+ lsls r3, r6, 4
+ adds r1, r3, r6
+ lsls r1, 2
+ adds r1, r2
+ ldrh r0, [r5, 0x8]
+ lsls r0, 16
+ asrs r0, 24
+ ldrh r4, [r1, 0x24]
+ adds r0, r4
+ strh r0, [r1, 0x24]
+ adds r4, r3, 0
+ b _081415BC
+ .align 2, 0
+_0814159C: .4byte gBattleAnimArgs
+_081415A0: .4byte gSprites
+_081415A4:
+ ldr r3, _081415EC @ =gSprites
+ lsls r4, r6, 4
+ adds r2, r4, r6
+ lsls r2, 2
+ adds r2, r3
+ ldrh r1, [r5, 0x8]
+ lsls r1, 16
+ asrs r1, 24
+ ldrh r0, [r2, 0x24]
+ subs r0, r1
+ strh r0, [r2, 0x24]
+ adds r2, r3, 0
+_081415BC:
+ ldr r1, _081415F0 @ =gTasks
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r3, r0, r1
+ ldrb r0, [r3, 0x8]
+ strh r0, [r3, 0x8]
+ adds r0, r4, r6
+ lsls r0, 2
+ adds r0, r2
+ movs r2, 0x20
+ ldrsh r1, [r0, r2]
+ movs r4, 0x24
+ ldrsh r0, [r0, r4]
+ adds r1, r0
+ adds r1, 0x20
+ movs r0, 0x98
+ lsls r0, 1
+ cmp r1, r0
+ bls _081416B6
+ ldrh r0, [r3, 0x1C]
+ adds r0, 0x1
+ strh r0, [r3, 0x1C]
+ b _081416B6
+ .align 2, 0
+_081415EC: .4byte gSprites
+_081415F0: .4byte gTasks
+_081415F4:
+ ldrb r1, [r5, 0x1E]
+ adds r0, r2, 0
+ adds r2, r6, 0
+ bl refresh_graphics_maybe
+ ldrh r0, [r5, 0x1C]
+ adds r0, 0x1
+ strh r0, [r5, 0x1C]
+ b _081416B6
+_08141606:
+ movs r1, 0xA0
+ lsls r1, 3
+ adds r0, r1, 0
+ ldrh r2, [r5, 0x8]
+ adds r0, r2
+ strh r0, [r5, 0x8]
+ ldrb r0, [r3]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _0814163C
+ ldr r0, _08141638 @ =gSprites
+ lsls r3, r6, 4
+ adds r2, r3, r6
+ lsls r2, 2
+ adds r2, r0
+ ldrh r1, [r5, 0x8]
+ lsls r1, 16
+ asrs r1, 24
+ ldrh r0, [r2, 0x24]
+ subs r0, r1
+ strh r0, [r2, 0x24]
+ adds r4, r3, 0
+ b _08141654
+ .align 2, 0
+_08141638: .4byte gSprites
+_0814163C:
+ ldr r0, _08141688 @ =gSprites
+ lsls r2, r6, 4
+ adds r1, r2, r6
+ lsls r1, 2
+ adds r1, r0
+ ldrh r0, [r5, 0x8]
+ lsls r0, 16
+ asrs r0, 24
+ ldrh r3, [r1, 0x24]
+ adds r0, r3
+ strh r0, [r1, 0x24]
+ adds r4, r2, 0
+_08141654:
+ ldr r1, _0814168C @ =gTasks
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r1
+ ldrb r1, [r0, 0x8]
+ strh r1, [r0, 0x8]
+ ldr r0, _08141690 @ =gUnknown_0202F7C8
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0
+ beq _08141694
+ ldr r0, _08141688 @ =gSprites
+ adds r1, r4, r6
+ lsls r1, 2
+ adds r1, r0
+ movs r4, 0x24
+ ldrsh r0, [r1, r4]
+ cmp r0, 0
+ bgt _081416AA
+ movs r0, 0
+ strh r0, [r1, 0x24]
+ b _081416B0
+ .align 2, 0
+_08141688: .4byte gSprites
+_0814168C: .4byte gTasks
+_08141690: .4byte gUnknown_0202F7C8
+_08141694:
+ ldr r0, _081416C0 @ =gSprites
+ adds r1, r4, r6
+ lsls r1, 2
+ adds r1, r0
+ movs r3, 0x24
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ blt _081416AA
+ strh r2, [r1, 0x24]
+ movs r4, 0x1
+ mov r8, r4
+_081416AA:
+ mov r0, r8
+ cmp r0, 0
+ beq _081416B6
+_081416B0:
+ adds r0, r7, 0
+ bl move_anim_task_del
+_081416B6:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081416C0: .4byte gSprites
+ thumb_func_end sub_814151C
+
+ thumb_func_start sub_81416C4
+sub_81416C4: @ 81416C4
+ push {r4,r5,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _081416E8 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r4, r0, r1
+ movs r1, 0x26
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ beq _08141744
+ cmp r0, 0x1
+ bgt _081416EC
+ cmp r0, 0
+ beq _081416F2
+ b _081417B8
+ .align 2, 0
+_081416E8: .4byte gTasks
+_081416EC:
+ cmp r0, 0x2
+ beq _0814177C
+ b _081417B8
+_081416F2:
+ ldr r0, _08141708 @ =gUnknown_0202F7C8
+ ldrb r0, [r0]
+ bl battle_get_per_side_status_permutated
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08141714
+ ldr r1, _0814170C @ =REG_BLDCNT
+ ldr r2, _08141710 @ =0x00003f42
+ b _08141718
+ .align 2, 0
+_08141708: .4byte gUnknown_0202F7C8
+_0814170C: .4byte REG_BLDCNT
+_08141710: .4byte 0x00003f42
+_08141714:
+ ldr r1, _08141734 @ =REG_BLDCNT
+ ldr r2, _08141738 @ =0x00003f44
+_08141718:
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r1, _0814173C @ =REG_BLDALPHA
+ movs r0, 0x10
+ strh r0, [r1]
+ ldr r1, _08141740 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldrh r1, [r0, 0x26]
+ adds r1, 0x1
+ strh r1, [r0, 0x26]
+ b _081417B8
+ .align 2, 0
+_08141734: .4byte REG_BLDCNT
+_08141738: .4byte 0x00003f44
+_0814173C: .4byte REG_BLDALPHA
+_08141740: .4byte gTasks
+_08141744:
+ ldrh r0, [r4, 0xA]
+ adds r1, r0, 0x1
+ strh r1, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _081417B8
+ movs r0, 0
+ strh r0, [r4, 0xA]
+ ldrh r1, [r4, 0x8]
+ adds r1, 0x1
+ strh r1, [r4, 0x8]
+ ldr r3, _08141778 @ =REG_BLDALPHA
+ lsls r2, r1, 8
+ movs r0, 0x10
+ subs r0, r1
+ orrs r2, r0
+ strh r2, [r3]
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x10
+ bne _081417B8
+ ldrh r0, [r4, 0x26]
+ adds r0, 0x1
+ strh r0, [r4, 0x26]
+ b _081417B8
+ .align 2, 0
+_08141778: .4byte REG_BLDALPHA
+_0814177C:
+ ldr r1, _081417C0 @ =gUnknown_02024BE0
+ ldr r3, _081417C4 @ =gUnknown_0202F7C8
+ ldrb r0, [r3]
+ adds r0, r1
+ ldrb r1, [r0]
+ ldr r2, _081417C8 @ =gSprites
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r0, [r0, 0x4]
+ lsls r0, 22
+ lsrs r0, 17
+ ldr r1, _081417CC @ =0x06010000
+ adds r0, r1
+ movs r1, 0
+ str r1, [sp]
+ ldr r1, _081417D0 @ =0x040000d4
+ mov r2, sp
+ str r2, [r1]
+ str r0, [r1, 0x4]
+ ldr r0, _081417D4 @ =0x85000200
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ ldrb r0, [r3]
+ bl sub_80324E0
+ adds r0, r5, 0
+ bl move_anim_task_del
+_081417B8:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081417C0: .4byte gUnknown_02024BE0
+_081417C4: .4byte gUnknown_0202F7C8
+_081417C8: .4byte gSprites
+_081417CC: .4byte 0x06010000
+_081417D0: .4byte 0x040000d4
+_081417D4: .4byte 0x85000200
+ thumb_func_end sub_81416C4
+
+ thumb_func_start sub_81417D8
+sub_81417D8: @ 81417D8
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, _081417FC @ =gBattleAnimArgs
+ ldr r1, _08141800 @ =gUnknown_0202F7C8
+ ldrb r1, [r1]
+ lsls r1, 2
+ ldr r2, _08141804 @ =0x02017800
+ adds r1, r2
+ ldr r1, [r1]
+ lsls r1, 29
+ lsrs r1, 31
+ strh r1, [r3, 0xE]
+ bl move_anim_task_del
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081417FC: .4byte gBattleAnimArgs
+_08141800: .4byte gUnknown_0202F7C8
+_08141804: .4byte 0x02017800
+ thumb_func_end sub_81417D8
+
+ thumb_func_start sub_8141808
+sub_8141808: @ 8141808
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08141820 @ =gUnknown_0202F7C9
+ ldr r1, _08141824 @ =gUnknown_02024C0A
+ ldrb r1, [r1]
+ strb r1, [r2]
+ bl move_anim_task_del
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08141820: .4byte gUnknown_0202F7C9
+_08141824: .4byte gUnknown_02024C0A
+ thumb_func_end sub_8141808
+
+ thumb_func_start sub_8141828
+sub_8141828: @ 8141828
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r4, r1, 0
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r0, 0
+ mov r8, r0
+ lsls r0, r6, 1
+ adds r0, r6
+ lsls r0, 2
+ ldr r1, _081418E0 @ =0x02017810
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r2, 0x80
+ orrs r1, r2
+ strb r1, [r0]
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl GetMonData
+ adds r5, r0, 0
+ adds r0, r4, 0
+ movs r1, 0
+ bl GetMonData
+ adds r4, r0, 0
+ adds r0, r6, 0
+ bl b_side_obj__get_some_boolean
+ lsls r0, 24
+ cmp r0, 0
+ beq _081418FC
+ lsrs r0, r5, 16
+ ldr r7, _081418E4 @ =0x0000ffff
+ ands r5, r7
+ eors r0, r5
+ lsrs r1, r4, 16
+ eors r0, r1
+ ands r4, r7
+ eors r0, r4
+ cmp r0, 0x7
+ bhi _08141882
+ movs r0, 0x1
+ mov r8, r0
+_08141882:
+ mov r0, r8
+ cmp r0, 0
+ beq _081418FC
+ ldr r0, _081418E8 @ =0x000027f9
+ bl GetSpriteTileStartByTag
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, r7
+ bne _081418A2
+ ldr r0, _081418EC @ =gBattleAnimPicTable + (233 * 8)
+ bl LoadCompressedObjectPic
+ ldr r0, _081418F0 @ =gBattleAnimPaletteTable + (233 * 8)
+ bl LoadCompressedObjectPalette
+_081418A2:
+ ldr r5, _081418F4 @ =sub_814191C
+ adds r0, r5, 0
+ movs r1, 0xA
+ bl CreateTask
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ movs r1, 0xA
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, _081418F8 @ =gTasks
+ lsls r2, r4, 2
+ adds r2, r4
+ lsls r2, 3
+ adds r2, r3
+ movs r4, 0
+ strh r6, [r2, 0x8]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r3
+ strh r6, [r1, 0x8]
+ strh r4, [r2, 0xA]
+ movs r0, 0x1
+ strh r0, [r1, 0xA]
+ b _0814190E
+ .align 2, 0
+_081418E0: .4byte 0x02017810
+_081418E4: .4byte 0x0000ffff
+_081418E8: .4byte 0x000027f9
+_081418EC: .4byte gBattleAnimPicTable + (233 * 8)
+_081418F0: .4byte gBattleAnimPaletteTable + (233 * 8)
+_081418F4: .4byte sub_814191C
+_081418F8: .4byte gTasks
+_081418FC:
+ lsls r0, r6, 1
+ adds r0, r6
+ lsls r0, 2
+ ldr r1, _08141918 @ =0x02017810
+ adds r0, r1
+ ldrb r1, [r0, 0x1]
+ movs r2, 0x1
+ orrs r1, r2
+ strb r1, [r0, 0x1]
+_0814190E:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08141918: .4byte 0x02017810
+ thumb_func_end sub_8141828
+
+ thumb_func_start sub_814191C
+sub_814191C: @ 814191C
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r1, _08141944 @ =gTasks
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r4, r0, r1
+ ldrh r1, [r4, 0x22]
+ movs r2, 0x22
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x3B
+ bgt _08141948
+ adds r0, r1, 0x1
+ strh r0, [r4, 0x22]
+ b _08141AB8
+ .align 2, 0
+_08141944: .4byte gTasks
+_08141948:
+ ldr r0, _08141998 @ =0x02017840
+ ldrb r0, [r0, 0xA]
+ cmp r0, 0
+ beq _08141952
+ b _08141AB8
+_08141952:
+ ldrh r0, [r4, 0x1C]
+ adds r1, r0, 0x1
+ strh r1, [r4, 0x1C]
+ lsls r0, 16
+ movs r1, 0xC0
+ lsls r1, 10
+ ands r1, r0
+ cmp r1, 0
+ beq _08141966
+ b _08141AB8
+_08141966:
+ ldrb r0, [r4, 0x8]
+ mov r8, r0
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r5, r0, 24
+ mov r0, r8
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r2, r0, 24
+ movs r1, 0x1E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _081419A0
+ ldr r0, _0814199C @ =gBattleAnimSpriteTemplate_84024E8
+ adds r1, r5, 0
+ movs r3, 0x5
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r5, r0, 24
+ b _08141A02
+ .align 2, 0
+_08141998: .4byte 0x02017840
+_0814199C: .4byte gBattleAnimSpriteTemplate_84024E8
+_081419A0:
+ cmp r0, 0
+ blt _081419D4
+ cmp r0, 0x3
+ bgt _081419D4
+ ldr r0, _081419CC @ =gSpriteTemplate_8402500
+ adds r1, r5, 0
+ movs r3, 0x5
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _081419D0 @ =gSprites
+ lsls r2, r5, 4
+ adds r2, r5
+ lsls r2, 2
+ adds r2, r0
+ ldrh r3, [r2, 0x4]
+ lsls r1, r3, 22
+ lsrs r1, 22
+ adds r1, 0x4
+ b _081419F4
+ .align 2, 0
+_081419CC: .4byte gSpriteTemplate_8402500
+_081419D0: .4byte gSprites
+_081419D4:
+ ldr r0, _08141A2C @ =gSpriteTemplate_8402500
+ adds r1, r5, 0
+ movs r3, 0x5
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _08141A30 @ =gSprites
+ lsls r2, r5, 4
+ adds r2, r5
+ lsls r2, 2
+ adds r2, r0
+ ldrh r3, [r2, 0x4]
+ lsls r1, r3, 22
+ lsrs r1, 22
+ adds r1, 0x5
+_081419F4:
+ ldr r4, _08141A34 @ =0x000003ff
+ adds r0, r4, 0
+ ands r1, r0
+ ldr r0, _08141A38 @ =0xfffffc00
+ ands r0, r3
+ orrs r0, r1
+ strh r0, [r2, 0x4]
+_08141A02:
+ ldr r2, _08141A3C @ =gTasks
+ lsls r1, r7, 2
+ adds r0, r1, r7
+ lsls r0, 3
+ adds r6, r0, r2
+ movs r2, 0xA
+ ldrsh r0, [r6, r2]
+ mov r9, r1
+ cmp r0, 0
+ bne _08141A44
+ ldr r1, _08141A30 @ =gSprites
+ lsls r2, r5, 4
+ adds r0, r2, r5
+ lsls r0, 2
+ adds r1, 0x1C
+ adds r0, r1
+ ldr r1, _08141A40 @ =sub_8141B20
+ str r1, [r0]
+ adds r4, r2, 0
+ b _08141A8C
+ .align 2, 0
+_08141A2C: .4byte gSpriteTemplate_8402500
+_08141A30: .4byte gSprites
+_08141A34: .4byte 0x000003ff
+_08141A38: .4byte 0xfffffc00
+_08141A3C: .4byte gTasks
+_08141A40: .4byte sub_8141B20
+_08141A44:
+ ldr r3, _08141AC4 @ =gSprites
+ lsls r4, r5, 4
+ adds r1, r4, r5
+ lsls r1, 2
+ adds r0, r3, 0
+ adds r0, 0x1C
+ adds r0, r1, r0
+ ldr r2, _08141AC8 @ =sub_8141B74
+ str r2, [r0]
+ adds r1, r3
+ ldr r0, _08141ACC @ =0x0000ffe0
+ strh r0, [r1, 0x24]
+ movs r0, 0x20
+ strh r0, [r1, 0x26]
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ movs r2, 0x4
+ orrs r0, r2
+ strb r0, [r1]
+ movs r1, 0x1E
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ bne _08141A8C
+ mov r0, r8
+ bl battle_side_get_owner
+ lsls r0, 24
+ movs r1, 0x3F
+ cmp r0, 0
+ bne _08141A82
+ movs r1, 0xC0
+_08141A82:
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0x66
+ bl PlaySE12WithPanning
+_08141A8C:
+ ldr r1, _08141AC4 @ =gSprites
+ adds r0, r4, r5
+ lsls r0, 2
+ adds r0, r1
+ strh r7, [r0, 0x2E]
+ ldr r1, _08141AD0 @ =gTasks
+ mov r2, r9
+ adds r0, r2, r7
+ lsls r0, 3
+ adds r2, r0, r1
+ ldrh r1, [r2, 0x1E]
+ adds r1, 0x1
+ strh r1, [r2, 0x1E]
+ ldrh r0, [r2, 0x20]
+ adds r0, 0x1
+ strh r0, [r2, 0x20]
+ lsls r1, 16
+ asrs r1, 16
+ cmp r1, 0x5
+ bne _08141AB8
+ ldr r0, _08141AD4 @ =sub_8141AD8
+ str r0, [r2]
+_08141AB8:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08141AC4: .4byte gSprites
+_08141AC8: .4byte sub_8141B74
+_08141ACC: .4byte 0x0000ffe0
+_08141AD0: .4byte gTasks
+_08141AD4: .4byte sub_8141AD8
+ thumb_func_end sub_814191C
+
+ thumb_func_start sub_8141AD8
+sub_8141AD8: @ 8141AD8
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r3, r0, 0
+ ldr r1, _08141B18 @ =gTasks
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ adds r1, r0, r1
+ movs r2, 0x20
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ bne _08141B14
+ movs r2, 0xA
+ ldrsh r0, [r1, r2]
+ cmp r0, 0x1
+ bne _08141B0E
+ ldrb r1, [r1, 0x8]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08141B1C @ =0x02017810
+ adds r0, r1
+ ldrb r1, [r0, 0x1]
+ movs r2, 0x1
+ orrs r1, r2
+ strb r1, [r0, 0x1]
+_08141B0E:
+ adds r0, r3, 0
+ bl DestroyTask
+_08141B14:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08141B18: .4byte gTasks
+_08141B1C: .4byte 0x02017810
+ thumb_func_end sub_8141AD8
+
+ thumb_func_start sub_8141B20
+sub_8141B20: @ 8141B20
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ movs r1, 0x18
+ bl Sin
+ strh r0, [r4, 0x24]
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ movs r1, 0x18
+ bl Cos
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x30]
+ adds r0, 0xC
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xFF
+ ble _08141B6A
+ ldr r2, _08141B70 @ =gTasks
+ movs r0, 0x2E
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldrh r1, [r0, 0x20]
+ subs r1, 0x1
+ strh r1, [r0, 0x20]
+ adds r0, r4, 0
+ bl FreeSpriteOamMatrix
+ adds r0, r4, 0
+ bl DestroySprite
+_08141B6A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08141B70: .4byte gTasks
+ thumb_func_end sub_8141B20
+
+ thumb_func_start sub_8141B74
+sub_8141B74: @ 8141B74
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r1, [r4, 0x30]
+ movs r2, 0x30
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x3
+ bgt _08141B88
+ adds r0, r1, 0x1
+ strh r0, [r4, 0x30]
+ b _08141BCA
+_08141B88:
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ ldrh r1, [r4, 0x24]
+ adds r1, 0x5
+ strh r1, [r4, 0x24]
+ ldrh r0, [r4, 0x26]
+ subs r0, 0x5
+ strh r0, [r4, 0x26]
+ lsls r1, 16
+ asrs r1, 16
+ cmp r1, 0x20
+ ble _08141BCA
+ ldr r2, _08141BD0 @ =gTasks
+ movs r0, 0x2E
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldrh r1, [r0, 0x20]
+ subs r1, 0x1
+ strh r1, [r0, 0x20]
+ adds r0, r4, 0
+ bl FreeSpriteOamMatrix
+ adds r0, r4, 0
+ bl DestroySprite
+_08141BCA:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08141BD0: .4byte gTasks
+ thumb_func_end sub_8141B74
+
+ thumb_func_start sub_8141BD4
+sub_8141BD4: @ 8141BD4
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _08141BFC @ =gBattleAnimPicTable + (269 * 8)
+ bl LoadCompressedObjectPic
+ ldr r0, _08141C00 @ =gBattleAnimPaletteTable + (269 * 8)
+ bl LoadCompressedObjectPalette
+ ldr r0, _08141C04 @ =0x0000281d
+ bl IndexOfSpritePaletteTag
+ adds r0, r4, 0
+ bl move_anim_task_del
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08141BFC: .4byte gBattleAnimPicTable + (269 * 8)
+_08141C00: .4byte gBattleAnimPaletteTable + (269 * 8)
+_08141C04: .4byte 0x0000281d
+ thumb_func_end sub_8141BD4
+
+ thumb_func_start sub_8141C08
+sub_8141C08: @ 8141C08
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r5, _08141C2C @ =0x0000281d
+ adds r0, r5, 0
+ bl FreeSpriteTilesByTag
+ adds r0, r5, 0
+ bl FreeSpritePaletteByTag
+ adds r0, r4, 0
+ bl move_anim_task_del
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08141C2C: .4byte 0x0000281d
+ thumb_func_end sub_8141C08
+
+ thumb_func_start sub_8141C30
+sub_8141C30: @ 8141C30
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0
+ bl sub_80787B0
+ movs r0, 0x1E
+ strh r0, [r4, 0x2E]
+ movs r0, 0x1
+ bl battle_get_side_with_given_state
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ ldr r5, _08141CA4 @ =gBattleAnimArgs
+ lsrs r0, 24
+ ldrh r1, [r5, 0x4]
+ adds r0, r1
+ strh r0, [r4, 0x32]
+ movs r0, 0x1
+ bl battle_get_side_with_given_state
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r5, [r5, 0x6]
+ adds r0, r5
+ strh r0, [r4, 0x36]
+ ldr r0, _08141CA8 @ =0x0000ffe0
+ strh r0, [r4, 0x38]
+ adds r0, r4, 0
+ bl sub_80786EC
+ ldr r1, _08141CAC @ =gUnknown_02024BE0
+ ldr r0, _08141CB0 @ =gUnknown_0202F7C8
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08141CB4 @ =gSprites
+ adds r0, r1
+ movs r1, 0x1
+ bl StartSpriteAnim
+ ldr r0, _08141CB8 @ =sub_8141CBC
+ str r0, [r4, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08141CA4: .4byte gBattleAnimArgs
+_08141CA8: .4byte 0x0000ffe0
+_08141CAC: .4byte gUnknown_02024BE0
+_08141CB0: .4byte gUnknown_0202F7C8
+_08141CB4: .4byte gSprites
+_08141CB8: .4byte sub_8141CBC
+ thumb_func_end sub_8141C30
+
+ thumb_func_start sub_8141CBC
+sub_8141CBC: @ 8141CBC
+ push {lr}
+ adds r3, r0, 0
+ ldr r2, _08141CE4 @ =gSprites
+ ldr r1, _08141CE8 @ =gUnknown_02024BE0
+ ldr r0, _08141CEC @ =gUnknown_0202F7C8
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ adds r0, 0x2B
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _08141CE0
+ ldr r0, _08141CF0 @ =sub_8141CF4
+ str r0, [r3, 0x1C]
+_08141CE0:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08141CE4: .4byte gSprites
+_08141CE8: .4byte gUnknown_02024BE0
+_08141CEC: .4byte gUnknown_0202F7C8
+_08141CF0: .4byte sub_8141CF4
+ thumb_func_end sub_8141CBC
+
+ thumb_func_start sub_8141CF4
+sub_8141CF4: @ 8141CF4
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8078718
+ lsls r0, 24
+ cmp r0, 0
+ beq _08141D16
+ movs r0, 0
+ strh r0, [r4, 0x2E]
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, _08141D1C @ =sub_8141D20
+ str r0, [r4, 0x1C]
+_08141D16:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08141D1C: .4byte sub_8141D20
+ thumb_func_end sub_8141CF4
+
+ thumb_func_start sub_8141D20
+sub_8141D20: @ 8141D20
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r5, _08141D70 @ =gSprites
+ ldr r3, _08141D74 @ =gUnknown_02024BE0
+ ldr r2, _08141D78 @ =gUnknown_0202F7C8
+ ldrb r0, [r2]
+ adds r0, r3
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ adds r0, 0x3F
+ ldrb r0, [r0]
+ lsls r0, 27
+ cmp r0, 0
+ bge _08141D68
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ cmp r0, 0
+ ble _08141D68
+ ldrb r0, [r2]
+ adds r0, r3
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r1, 0
+ bl StartSpriteAnim
+ adds r0, r4, 0
+ bl move_anim_8072740
+_08141D68:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08141D70: .4byte gSprites
+_08141D74: .4byte gUnknown_02024BE0
+_08141D78: .4byte gUnknown_0202F7C8
+ thumb_func_end sub_8141D20
+
+ thumb_func_start sub_8141D7C
+sub_8141D7C: @ 8141D7C
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0
+ bl battle_get_side_with_given_state
+ ldr r1, _08141DA4 @ =gUnknown_0202F7C8
+ strb r0, [r1]
+ movs r0, 0x1
+ bl battle_get_side_with_given_state
+ ldr r1, _08141DA8 @ =gUnknown_0202F7C9
+ strb r0, [r1]
+ adds r0, r4, 0
+ bl move_anim_task_del
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08141DA4: .4byte gUnknown_0202F7C8
+_08141DA8: .4byte gUnknown_0202F7C9
+ thumb_func_end sub_8141D7C
+
+ thumb_func_start sub_8141DAC
+sub_8141DAC: @ 8141DAC
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _08141DC0 @ =0x02017840
+ ldrh r1, [r0]
+ cmp r1, 0x53
+ bne _08141DC8
+ ldr r1, _08141DC4 @ =gBattleAnimArgs
+ movs r0, 0x1
+ b _08141E00
+ .align 2, 0
+_08141DC0: .4byte 0x02017840
+_08141DC4: .4byte gBattleAnimArgs
+_08141DC8:
+ cmp r1, 0xFA
+ bne _08141DD8
+ ldr r1, _08141DD4 @ =gBattleAnimArgs
+ movs r0, 0x2
+ b _08141E00
+ .align 2, 0
+_08141DD4: .4byte gBattleAnimArgs
+_08141DD8:
+ cmp r1, 0x80
+ bne _08141DE8
+ ldr r1, _08141DE4 @ =gBattleAnimArgs
+ movs r0, 0x3
+ b _08141E00
+ .align 2, 0
+_08141DE4: .4byte gBattleAnimArgs
+_08141DE8:
+ movs r0, 0xA4
+ lsls r0, 1
+ cmp r1, r0
+ bne _08141DFC
+ ldr r1, _08141DF8 @ =gBattleAnimArgs
+ movs r0, 0x4
+ b _08141E00
+ .align 2, 0
+_08141DF8: .4byte gBattleAnimArgs
+_08141DFC:
+ ldr r1, _08141E0C @ =gBattleAnimArgs
+ movs r0, 0
+_08141E00:
+ strh r0, [r1]
+ adds r0, r2, 0
+ bl move_anim_task_del
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08141E0C: .4byte gBattleAnimArgs
+ thumb_func_end sub_8141DAC
+
+ thumb_func_start sub_8141E10
+sub_8141E10: @ 8141E10
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08141E2C @ =gUnknown_0202F7C8
+ ldr r1, _08141E30 @ =0x02017840
+ ldrh r1, [r1]
+ strb r1, [r2]
+ ldr r2, _08141E34 @ =gUnknown_0202F7C9
+ lsrs r1, 8
+ strb r1, [r2]
+ bl move_anim_task_del
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08141E2C: .4byte gUnknown_0202F7C8
+_08141E30: .4byte 0x02017840
+_08141E34: .4byte gUnknown_0202F7C9
+ thumb_func_end sub_8141E10
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/battle_message.s b/asm/battle_message.s
index 8f903970f..c4e4a7dd0 100644
--- a/asm/battle_message.s
+++ b/asm/battle_message.s
@@ -136,7 +136,7 @@ _08120BB0:
.4byte _08120DE8
.4byte _08120E50
_08120BC8:
- ldr r0, _08120BEC @ =gUnknown_020239F8
+ ldr r0, _08120BEC @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x8
ands r0, r1
@@ -156,7 +156,7 @@ _08120BE8:
ldr r6, _08120BF4 @ =gUnknown_084005DB
b _08120F70
.align 2, 0
-_08120BEC: .4byte gUnknown_020239F8
+_08120BEC: .4byte gBattleTypeFlags
_08120BF0: .4byte gUnknown_084005C7
_08120BF4: .4byte gUnknown_084005DB
_08120BF8:
@@ -203,7 +203,7 @@ _08120C40:
lsls r0, 24
cmp r0, 0
bne _08120C7C
- ldr r0, _08120C68 @ =gUnknown_020239F8
+ ldr r0, _08120C68 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x1
ands r0, r1
@@ -219,7 +219,7 @@ _08120C64:
ldr r6, _08120C70 @ =gUnknown_084006F1
b _08120F70
.align 2, 0
-_08120C68: .4byte gUnknown_020239F8
+_08120C68: .4byte gBattleTypeFlags
_08120C6C: .4byte gUnknown_084006A4
_08120C70: .4byte gUnknown_084006F1
_08120C74:
@@ -228,7 +228,7 @@ _08120C74:
.align 2, 0
_08120C78: .4byte gUnknown_0840069C
_08120C7C:
- ldr r0, _08120C94 @ =gUnknown_020239F8
+ ldr r0, _08120C94 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x1
ands r0, r1
@@ -241,7 +241,7 @@ _08120C7C:
ldr r6, _08120C98 @ =gUnknown_0840065C
b _08120F70
.align 2, 0
-_08120C94: .4byte gUnknown_020239F8
+_08120C94: .4byte gBattleTypeFlags
_08120C98: .4byte gUnknown_0840065C
_08120C9C:
movs r0, 0x2
@@ -290,7 +290,7 @@ _08120CF0: .4byte gUnknown_08400709
_08120CF4:
cmp r2, 0x1
beq _08120D04
- ldr r0, _08120D08 @ =gUnknown_020239F8
+ ldr r0, _08120D08 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x1
ands r0, r1
@@ -300,7 +300,7 @@ _08120D04:
ldr r6, _08120D0C @ =gUnknown_08400727
b _08120F70
.align 2, 0
-_08120D08: .4byte gUnknown_020239F8
+_08120D08: .4byte gBattleTypeFlags
_08120D0C: .4byte gUnknown_08400727
_08120D10:
ldr r6, _08120D1C @ =gUnknown_08400749
@@ -320,7 +320,7 @@ _08120D24:
lsls r0, 4
cmp r1, r0
bne _08120D54
- ldr r0, _08120D48 @ =gUnknown_020239F8
+ ldr r0, _08120D48 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x40
ands r0, r1
@@ -333,7 +333,7 @@ _08120D40:
b _08120F70
.align 2, 0
_08120D44: .4byte gTrainerBattleOpponent
-_08120D48: .4byte gUnknown_020239F8
+_08120D48: .4byte gBattleTypeFlags
_08120D4C: .4byte gUnknown_08400771
_08120D50: .4byte gUnknown_08400781
_08120D54:
@@ -354,7 +354,7 @@ _08120D5C:
ldrb r3, [r0]
cmp r3, 0
beq _08120D82
- ldr r0, _08120D90 @ =gUnknown_020239F8
+ ldr r0, _08120D90 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x1
ands r0, r1
@@ -366,7 +366,7 @@ _08120D82:
.align 2, 0
_08120D88: .4byte 0x00016003
_08120D8C: .4byte 0x000160c1
-_08120D90: .4byte gUnknown_020239F8
+_08120D90: .4byte gBattleTypeFlags
_08120D94: .4byte gUnknown_084006B3
_08120D98:
cmp r3, 0x1
@@ -387,7 +387,7 @@ _08120DAC:
_08120DB0: .4byte gUnknown_084006D5
_08120DB4: .4byte gUnknown_084006C6
_08120DB8:
- ldr r0, _08120DD4 @ =gUnknown_020239F8
+ ldr r0, _08120DD4 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x2
ands r0, r1
@@ -403,7 +403,7 @@ _08120DD0:
ldr r6, _08120DDC @ =gUnknown_0840068C
b _08120F70
.align 2, 0
-_08120DD4: .4byte gUnknown_020239F8
+_08120DD4: .4byte gBattleTypeFlags
_08120DD8: .4byte gUnknown_0840067C
_08120DDC: .4byte gUnknown_0840068C
_08120DE0:
@@ -491,7 +491,7 @@ _08120E7C:
_08120E90: .4byte gUnknown_030041C0
_08120E94: .4byte gUnknown_083FFEFC
_08120E98:
- ldr r0, _08120EAC @ =gUnknown_020239F8
+ ldr r0, _08120EAC @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x40
ands r0, r1
@@ -501,7 +501,7 @@ _08120E98:
ldr r6, _08120EB4 @ =gUnknown_083FFFF7
b _08120F70
.align 2, 0
-_08120EAC: .4byte gUnknown_020239F8
+_08120EAC: .4byte gBattleTypeFlags
_08120EB0: .4byte gUnknown_083FFFEA
_08120EB4: .4byte gUnknown_083FFFF7
_08120EB8:
@@ -518,7 +518,7 @@ _08120EB8:
eors r0, r1
strb r0, [r5]
_08120ED2:
- ldr r0, _08120EF0 @ =gUnknown_020239F8
+ ldr r0, _08120EF0 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x40
ands r0, r1
@@ -534,7 +534,7 @@ _08120ED2:
beq _08120EFE
b _08120F70
.align 2, 0
-_08120EF0: .4byte gUnknown_020239F8
+_08120EF0: .4byte gBattleTypeFlags
_08120EF4: .4byte gUnknown_030041C0
_08120EF8:
cmp r0, 0x3
@@ -975,7 +975,7 @@ _081212A8:
adds r2, r4, 0
cmp r0, 0
beq _0812131C
- ldr r0, _081212D0 @ =gUnknown_020239F8
+ ldr r0, _081212D0 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x8
ands r0, r1
@@ -986,7 +986,7 @@ _081212A8:
b _081212E6
.align 2, 0
_081212CC: .4byte gUnknown_02024C07
-_081212D0: .4byte gUnknown_020239F8
+_081212D0: .4byte gBattleTypeFlags
_081212D4: .4byte gUnknown_08400791
_081212D8: .4byte gUnknown_08400797
_081212DC:
@@ -1089,7 +1089,7 @@ _081213A8:
lsls r0, 24
cmp r0, 0
beq _0812140C
- ldr r0, _081213F8 @ =gUnknown_020239F8
+ ldr r0, _081213F8 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x8
ands r0, r1
@@ -1124,7 +1124,7 @@ _081213E8:
b _08121908
.align 2, 0
_081213F4: .4byte gUnknown_02024C07
-_081213F8: .4byte gUnknown_020239F8
+_081213F8: .4byte gBattleTypeFlags
_081213FC: .4byte gUnknown_08400791
_08121400: .4byte gUnknown_08400797
_08121404: .4byte gUnknown_02024A6A
@@ -1145,7 +1145,7 @@ _0812141C:
lsls r0, 24
cmp r0, 0
beq _08121480
- ldr r0, _0812146C @ =gUnknown_020239F8
+ ldr r0, _0812146C @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x8
ands r0, r1
@@ -1180,7 +1180,7 @@ _0812145C:
b _08121908
.align 2, 0
_08121468: .4byte gUnknown_02024C08
-_0812146C: .4byte gUnknown_020239F8
+_0812146C: .4byte gBattleTypeFlags
_08121470: .4byte gUnknown_08400791
_08121474: .4byte gUnknown_08400797
_08121478: .4byte gUnknown_02024A6A
@@ -1201,7 +1201,7 @@ _08121490:
lsls r0, 24
cmp r0, 0
beq _081214F4
- ldr r0, _081214E0 @ =gUnknown_020239F8
+ ldr r0, _081214E0 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x8
ands r0, r1
@@ -1236,7 +1236,7 @@ _081214D0:
b _08121908
.align 2, 0
_081214DC: .4byte gUnknown_02024C0A
-_081214E0: .4byte gUnknown_020239F8
+_081214E0: .4byte gBattleTypeFlags
_081214E4: .4byte gUnknown_08400791
_081214E8: .4byte gUnknown_08400797
_081214EC: .4byte gUnknown_02024A6A
@@ -1257,7 +1257,7 @@ _08121504:
lsls r0, 24
cmp r0, 0
beq _08121568
- ldr r0, _08121554 @ =gUnknown_020239F8
+ ldr r0, _08121554 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x8
ands r0, r1
@@ -1292,7 +1292,7 @@ _08121544:
b _08121908
.align 2, 0
_08121550: .4byte gUnknown_02024A60
-_08121554: .4byte gUnknown_020239F8
+_08121554: .4byte gBattleTypeFlags
_08121558: .4byte gUnknown_08400791
_0812155C: .4byte gUnknown_08400797
_08121560: .4byte gUnknown_02024A6A
@@ -1316,7 +1316,7 @@ _08121578:
adds r2, r4, 0
cmp r0, 0
beq _081215E8
- ldr r0, _081215D4 @ =gUnknown_020239F8
+ ldr r0, _081215D4 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x8
ands r0, r1
@@ -1353,7 +1353,7 @@ _081215BC:
.align 2, 0
_081215CC: .4byte 0x02000000
_081215D0: .4byte 0x00016003
-_081215D4: .4byte gUnknown_020239F8
+_081215D4: .4byte gBattleTypeFlags
_081215D8: .4byte gUnknown_08400791
_081215DC: .4byte gUnknown_08400797
_081215E0: .4byte gUnknown_02024A6A
@@ -1419,7 +1419,7 @@ _08121652:
.align 2, 0
_0812165C: .4byte gMoveNames
_08121660:
- ldr r0, _081216AC @ =gUnknown_020239F8
+ ldr r0, _081216AC @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x2
ands r0, r1
@@ -1456,7 +1456,7 @@ _08121660:
mov r4, sp
b _081219E6
.align 2, 0
-_081216AC: .4byte gUnknown_020239F8
+_081216AC: .4byte gBattleTypeFlags
_081216B0: .4byte gUnknown_02024C04
_081216B4: .4byte gLinkPlayers
_081216B8: .4byte 0x02000000
@@ -1543,7 +1543,7 @@ _0812174C:
.align 2, 0
_08121764: .4byte gTrainerBattleOpponent
_08121768:
- ldr r0, _08121784 @ =gUnknown_020239F8
+ ldr r0, _08121784 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x80
lsls r0, 1
@@ -1556,7 +1556,7 @@ _08121768:
movs r1, 0xD
b _081217AE
.align 2, 0
-_08121784: .4byte gUnknown_020239F8
+_08121784: .4byte gBattleTypeFlags
_08121788:
movs r0, 0x80
lsls r0, 4
@@ -1606,7 +1606,7 @@ _081217C0:
_081217E4: .4byte gTrainerBattleOpponent
_081217E8: .4byte 0x02017002
_081217EC:
- ldr r0, _08121804 @ =gUnknown_020239F8
+ ldr r0, _08121804 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x80
lsls r0, 1
@@ -1618,7 +1618,7 @@ _081217EC:
mov r4, sp
b _081219E6
.align 2, 0
-_08121804: .4byte gUnknown_020239F8
+_08121804: .4byte gBattleTypeFlags
_08121808:
movs r0, 0x80
lsls r0, 4
@@ -1723,7 +1723,7 @@ _081218C0:
lsls r0, 24
cmp r0, 0
beq _08121934
- ldr r0, _08121920 @ =gUnknown_020239F8
+ ldr r0, _08121920 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x8
ands r0, r1
@@ -1765,7 +1765,7 @@ _0812190E:
.align 2, 0
_08121918: .4byte 0x02000000
_0812191C: .4byte 0x00016003
-_08121920: .4byte gUnknown_020239F8
+_08121920: .4byte gBattleTypeFlags
_08121924: .4byte gUnknown_08400791
_08121928: .4byte gUnknown_08400797
_0812192C: .4byte gEnemyParty
@@ -2076,7 +2076,7 @@ _08121B64:
.align 2, 0
_08121B84: .4byte gPlayerParty
_08121B88:
- ldr r0, _08121BA0 @ =gUnknown_020239F8
+ ldr r0, _08121BA0 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x8
ands r0, r1
@@ -2087,7 +2087,7 @@ _08121B88:
bl StringAppend
b _08121BB0
.align 2, 0
-_08121BA0: .4byte gUnknown_020239F8
+_08121BA0: .4byte gBattleTypeFlags
_08121BA4: .4byte gUnknown_08400797
_08121BA8:
ldr r1, _08121BD4 @ =gUnknown_08400791
@@ -2196,7 +2196,7 @@ _08121C78:
ldrb r0, [r0, 0x2]
lsls r0, 8
orrs r2, r0
- ldr r0, _08121CC4 @ =gUnknown_020239F8
+ ldr r0, _08121CC4 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x2
ands r0, r1
@@ -2228,7 +2228,7 @@ _08121C78:
ldr r1, _08121CDC @ =gUnknown_08400A85
b _08121CE2
.align 2, 0
-_08121CC4: .4byte gUnknown_020239F8
+_08121CC4: .4byte gBattleTypeFlags
_08121CC8: .4byte gLinkPlayers
_08121CCC: .4byte 0x02000000
_08121CD0: .4byte 0x000160cb
diff --git a/asm/battle_party_menu.s b/asm/battle_party_menu.s
new file mode 100644
index 000000000..471c5ccc0
--- /dev/null
+++ b/asm/battle_party_menu.s
@@ -0,0 +1,1263 @@
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start SetUpBattlePartyMenu
+SetUpBattlePartyMenu: @ 8094E58
+ push {r4,r5,lr}
+ ldr r1, _08094E78 @ =0x0201b000
+ movs r2, 0x99
+ lsls r2, 2
+ adds r0, r1, r2
+ movs r3, 0
+ ldrsh r0, [r0, r3]
+ adds r4, r1, 0
+ cmp r0, 0xA
+ bls _08094E6E
+ b _08095048
+_08094E6E:
+ lsls r0, 2
+ ldr r1, _08094E7C @ =_08094E80
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08094E78: .4byte 0x0201b000
+_08094E7C: .4byte _08094E80
+ .align 2, 0
+_08094E80:
+ .4byte _08094EAC
+ .4byte _08094F28
+ .4byte _08094F3C
+ .4byte _08094F4A
+ .4byte _08094F6C
+ .4byte _08094F80
+ .4byte _08094F94
+ .4byte _08094FA8
+ .4byte _08094FBC
+ .4byte _08094FD0
+ .4byte _08095000
+_08094EAC:
+ bl IsLinkDoubleBattle
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08094EDC
+ ldr r1, _08094ED4 @ =0x0201b000
+ ldr r0, _08094ED8 @ =0x00000266
+ adds r4, r1, r0
+ ldrh r2, [r4]
+ movs r3, 0
+ ldrsh r0, [r4, r3]
+ cmp r0, 0x6
+ bne _08094EEC
+ movs r0, 0
+ strh r0, [r4]
+ movs r3, 0x99
+ lsls r3, 2
+ adds r1, r3
+ b _08094FEC
+ .align 2, 0
+_08094ED4: .4byte 0x0201b000
+_08094ED8: .4byte 0x00000266
+_08094EDC:
+ ldr r1, _08094F10 @ =0x0201b000
+ ldr r0, _08094F14 @ =0x00000266
+ adds r4, r1, r0
+ ldrh r2, [r4]
+ movs r3, 0
+ ldrsh r0, [r4, r3]
+ cmp r0, 0x5
+ bgt _08094F1C
+_08094EEC:
+ movs r3, 0x98
+ lsls r3, 2
+ adds r0, r1, r3
+ ldrb r0, [r0]
+ lsls r1, r2, 24
+ lsrs r1, 24
+ movs r2, 0
+ ldrsh r3, [r4, r2]
+ movs r2, 0x64
+ muls r2, r3
+ ldr r3, _08094F18 @ =gPlayerParty
+ adds r2, r3
+ bl TryCreatePartyMenuMonIcon
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+ b _08095048
+ .align 2, 0
+_08094F10: .4byte 0x0201b000
+_08094F14: .4byte 0x00000266
+_08094F18: .4byte gPlayerParty
+_08094F1C:
+ movs r0, 0
+ strh r0, [r4]
+ movs r3, 0x99
+ lsls r3, 2
+ adds r1, r3
+ b _08094FEC
+_08094F28:
+ bl LoadHeldItemIconGraphics
+ ldr r1, _08094F38 @ =0x0201b000
+ movs r0, 0x99
+ lsls r0, 2
+ adds r1, r0
+ b _08094FEC
+ .align 2, 0
+_08094F38: .4byte 0x0201b000
+_08094F3C:
+ movs r1, 0x98
+ lsls r1, 2
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ bl CreateHeldItemIcons_806DC34
+ b _08094FE6
+_08094F4A:
+ movs r3, 0x98
+ lsls r3, 2
+ adds r0, r4, r3
+ ldrb r0, [r0]
+ ldr r1, _08094F68 @ =0x00000266
+ adds r5, r4, r1
+ ldrb r1, [r5]
+ bl sub_806BD58
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _08094FE2
+ b _08094FF8
+ .align 2, 0
+_08094F68: .4byte 0x00000266
+_08094F6C:
+ bl PartyMenuPrintMonsLevelOrStatus
+ ldr r1, _08094F7C @ =0x0201b000
+ movs r3, 0x99
+ lsls r3, 2
+ adds r1, r3
+ b _08094FEC
+ .align 2, 0
+_08094F7C: .4byte 0x0201b000
+_08094F80:
+ bl PrintPartyMenuMonNicknames
+ ldr r1, _08094F90 @ =0x0201b000
+ movs r0, 0x99
+ lsls r0, 2
+ adds r1, r0
+ b _08094FEC
+ .align 2, 0
+_08094F90: .4byte 0x0201b000
+_08094F94:
+ bl PartyMenuTryPrintMonsHP
+ ldr r1, _08094FA4 @ =0x0201b000
+ movs r2, 0x99
+ lsls r2, 2
+ adds r1, r2
+ b _08094FEC
+ .align 2, 0
+_08094FA4: .4byte 0x0201b000
+_08094FA8:
+ bl nullsub_13
+ ldr r1, _08094FB8 @ =0x0201b000
+ movs r3, 0x99
+ lsls r3, 2
+ adds r1, r3
+ b _08094FEC
+ .align 2, 0
+_08094FB8: .4byte 0x0201b000
+_08094FBC:
+ bl PartyMenuDrawHPBars
+ ldr r1, _08094FCC @ =0x0201b000
+ movs r0, 0x99
+ lsls r0, 2
+ adds r1, r0
+ b _08094FEC
+ .align 2, 0
+_08094FCC: .4byte 0x0201b000
+_08094FD0:
+ ldr r1, _08094FF4 @ =0x00000266
+ adds r5, r4, r1
+ ldrb r0, [r5]
+ bl sub_806B58C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08094FF8
+_08094FE2:
+ movs r0, 0
+ strh r0, [r5]
+_08094FE6:
+ movs r2, 0x99
+ lsls r2, 2
+ adds r1, r4, r2
+_08094FEC:
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _08095048
+ .align 2, 0
+_08094FF4: .4byte 0x00000266
+_08094FF8:
+ ldrh r0, [r5]
+ adds r0, 0x1
+ strh r0, [r5]
+ b _08095048
+_08095000:
+ ldr r0, _08095024 @ =gUnknown_02038473
+ ldrb r4, [r0]
+ cmp r4, 0x3
+ bne _0809503C
+ ldr r0, _08095028 @ =gScriptItemId
+ ldrh r0, [r0]
+ bl GetItemEffectType
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xA
+ bne _08095034
+ ldr r0, _0809502C @ =0x0201b000
+ ldr r3, _08095030 @ =0x00000259
+ adds r0, r3
+ movs r1, 0xFF
+ strb r1, [r0]
+ b _0809503C
+ .align 2, 0
+_08095024: .4byte gUnknown_02038473
+_08095028: .4byte gScriptItemId
+_0809502C: .4byte 0x0201b000
+_08095030: .4byte 0x00000259
+_08095034:
+ ldr r0, _08095040 @ =0x0201b000
+ ldr r1, _08095044 @ =0x00000259
+ adds r0, r1
+ strb r4, [r0]
+_0809503C:
+ movs r0, 0x1
+ b _0809504A
+ .align 2, 0
+_08095040: .4byte 0x0201b000
+_08095044: .4byte 0x00000259
+_08095048:
+ movs r0, 0
+_0809504A:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end SetUpBattlePartyMenu
+
+ thumb_func_start sub_8095050
+sub_8095050: @ 8095050
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0809508C @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x2D
+ bl GetMonData
+ adds r5, r0, 0
+ cmp r5, 0
+ bne _080950C8
+ ldr r0, _08095090 @ =gUnknown_02038473
+ ldrb r4, [r0]
+ cmp r4, 0x1
+ bne _0809509C
+ ldr r3, _08095094 @ =gTasks
+ ldr r2, _08095098 @ =0x0201b000
+ movs r0, 0x98
+ lsls r0, 2
+ adds r2, r0
+ ldrb r1, [r2]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r3
+ b _080950DE
+ .align 2, 0
+_0809508C: .4byte gPlayerParty
+_08095090: .4byte gUnknown_02038473
+_08095094: .4byte gTasks
+_08095098: .4byte 0x0201b000
+_0809509C:
+ ldr r3, _080950C0 @ =gTasks
+ ldr r2, _080950C4 @ =0x0201b000
+ movs r0, 0x98
+ lsls r0, 2
+ adds r2, r0
+ ldrb r1, [r2]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r3
+ strh r5, [r0, 0x10]
+ ldrb r1, [r2]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r3
+ strh r5, [r0, 0x12]
+ b _080950EC
+ .align 2, 0
+_080950C0: .4byte gTasks
+_080950C4: .4byte 0x0201b000
+_080950C8:
+ ldr r3, _08095108 @ =gTasks
+ ldr r2, _0809510C @ =0x0201b000
+ movs r0, 0x98
+ lsls r0, 2
+ adds r2, r0
+ ldrb r1, [r2]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r3
+ movs r4, 0x2
+_080950DE:
+ strh r4, [r0, 0x10]
+ ldrb r1, [r2]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r3
+ strh r4, [r0, 0x12]
+_080950EC:
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r0, r3
+ ldrb r0, [r0, 0x10]
+ ldr r1, _08095110 @ =gUnknown_083B5FF4
+ ldr r2, _08095114 @ =gUnknown_083B5FCC
+ movs r3, 0
+ bl sub_806E750
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08095108: .4byte gTasks
+_0809510C: .4byte 0x0201b000
+_08095110: .4byte gUnknown_083B5FF4
+_08095114: .4byte gUnknown_083B5FCC
+ thumb_func_end sub_8095050
+
+ thumb_func_start SetUpBattlePokemonMenu
+SetUpBattlePokemonMenu: @ 8095118
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _08095150 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _0809512C
+ b _08095268
+_0809512C:
+ ldr r0, _08095154 @ =gUnknown_02038473
+ ldrb r0, [r0]
+ cmp r0, 0x3
+ bne _08095164
+ ldr r5, _08095158 @ =gScriptItemId
+ ldrh r0, [r5]
+ bl GetItemEffectType
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xA
+ bne _08095164
+ ldr r0, _0809515C @ =gUnknown_03004AE4
+ ldrh r1, [r5]
+ ldr r2, _08095160 @ =sub_80952E4
+ ldr r3, [r0]
+ b _080951AA
+ .align 2, 0
+_08095150: .4byte gPaletteFade
+_08095154: .4byte gUnknown_02038473
+_08095158: .4byte gScriptItemId
+_0809515C: .4byte gUnknown_03004AE4
+_08095160: .4byte sub_80952E4
+_08095164:
+ adds r0, r4, 0
+ bl sub_806BD80
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ beq _08095178
+ cmp r0, 0x2
+ beq _08095214
+ b _08095268
+_08095178:
+ ldr r0, _080951B4 @ =gUnknown_02038473
+ ldrb r0, [r0]
+ cmp r0, 0x3
+ bne _080951C8
+ adds r0, r4, 0
+ bl sub_806CA38
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x64
+ muls r0, r1
+ ldr r1, _080951B8 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0
+ bne _0809521C
+ bl sub_806D5A4
+ ldr r3, _080951BC @ =gUnknown_03004AE4
+ ldr r0, _080951C0 @ =gScriptItemId
+ ldrh r1, [r0]
+ ldr r2, _080951C4 @ =sub_80952E4
+ ldr r3, [r3]
+_080951AA:
+ adds r0, r4, 0
+ bl _call_via_r3
+ b _08095268
+ .align 2, 0
+_080951B4: .4byte gUnknown_02038473
+_080951B8: .4byte gPlayerParty
+_080951BC: .4byte gUnknown_03004AE4
+_080951C0: .4byte gScriptItemId
+_080951C4: .4byte sub_80952E4
+_080951C8:
+ movs r0, 0x5
+ bl PlaySE
+ adds r0, r4, 0
+ bl sub_806CA38
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x64
+ muls r0, r1
+ ldr r1, _08095204 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _08095208 @ =gStringVar1
+ bl GetMonNickname
+ adds r0, r4, 0
+ bl sub_806CA38
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl sub_8095050
+ ldr r1, _0809520C @ =sub_8095408
+ ldr r2, _08095210 @ =SetUpBattlePokemonMenu
+ adds r0, r4, 0
+ bl SetTaskFuncWithFollowupFunc
+ b _08095268
+ .align 2, 0
+_08095204: .4byte gPlayerParty
+_08095208: .4byte gStringVar1
+_0809520C: .4byte sub_8095408
+_08095210: .4byte SetUpBattlePokemonMenu
+_08095214:
+ ldr r5, _08095224 @ =gUnknown_02038473
+ ldrb r0, [r5]
+ cmp r0, 0x1
+ bne _08095228
+_0809521C:
+ movs r0, 0x20
+ bl PlaySE
+ b _08095268
+ .align 2, 0
+_08095224: .4byte gUnknown_02038473
+_08095228:
+ movs r0, 0x5
+ bl PlaySE
+ ldrb r0, [r5]
+ cmp r0, 0x3
+ bne _08095254
+ ldr r1, _08095248 @ =gUnknown_0202E8F4
+ movs r0, 0
+ strb r0, [r1]
+ ldr r1, _0809524C @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _08095250 @ =sub_80952E4
+ b _08095266
+ .align 2, 0
+_08095248: .4byte gUnknown_0202E8F4
+_0809524C: .4byte gTasks
+_08095250: .4byte sub_80952E4
+_08095254:
+ ldr r1, _08095270 @ =gUnknown_0202E8F4
+ movs r0, 0
+ strb r0, [r1]
+ ldr r1, _08095274 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _08095278 @ =sub_809527C
+_08095266:
+ str r1, [r0]
+_08095268:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08095270: .4byte gUnknown_0202E8F4
+_08095274: .4byte gTasks
+_08095278: .4byte sub_809527C
+ thumb_func_end SetUpBattlePokemonMenu
+
+ thumb_func_start sub_809527C
+sub_809527C: @ 809527C
+ 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, _080952AC @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080952B0 @ =sub_80952B4
+ str r1, [r0]
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080952AC: .4byte gTasks
+_080952B0: .4byte sub_80952B4
+ thumb_func_end sub_809527C
+
+ thumb_func_start sub_80952B4
+sub_80952B4: @ 80952B4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080952DC @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080952D6
+ bl sub_8094D60
+ adds r0, r4, 0
+ bl DestroyTask
+ ldr r0, _080952E0 @ =sub_802E414
+ bl SetMainCallback2
+_080952D6:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080952DC: .4byte gPaletteFade
+_080952E0: .4byte sub_802E414
+ thumb_func_end sub_80952B4
+
+ thumb_func_start sub_80952E4
+sub_80952E4: @ 80952E4
+ push {r4,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080952FC @ =gUnknown_0202E8F4
+ ldrb r1, [r0]
+ cmp r1, 0
+ beq _08095300
+ adds r0, r4, 0
+ bl sub_809527C
+ b _0809531E
+ .align 2, 0
+_080952FC: .4byte gUnknown_0202E8F4
+_08095300:
+ movs r0, 0x1
+ negs r0, r0
+ str r1, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r1, _08095328 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0809532C @ =sub_8095330
+ str r1, [r0]
+_0809531E:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08095328: .4byte gTasks
+_0809532C: .4byte sub_8095330
+ thumb_func_end sub_80952E4
+
+ thumb_func_start sub_8095330
+sub_8095330: @ 8095330
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _08095358 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08095350
+ bl sub_8094D60
+ adds r0, r4, 0
+ bl DestroyTask
+ bl sub_80A6DCC
+_08095350:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08095358: .4byte gPaletteFade
+ thumb_func_end sub_8095330
+
+ thumb_func_start sub_809535C
+sub_809535C: @ 809535C
+ push {lr}
+ ldr r2, _08095380 @ =gPaletteFade
+ ldrb r0, [r2, 0x8]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2, 0x8]
+ ldr r2, _08095384 @ =SetUpBattlePokemonMenu
+ movs r0, 0x1
+ movs r1, 0xFF
+ movs r3, 0x5
+ bl sub_806AF4C
+ ldr r0, _08095388 @ =sub_809538C
+ bl SetMainCallback2
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08095380: .4byte gPaletteFade
+_08095384: .4byte SetUpBattlePokemonMenu
+_08095388: .4byte sub_809538C
+ thumb_func_end sub_809535C
+
+ thumb_func_start sub_809538C
+sub_809538C: @ 809538C
+ push {r4,r5,lr}
+ ldr r4, _080953D8 @ =0x0201b260
+ ldr r5, _080953DC @ =gUnknown_020384F0
+_08095392:
+ bl sub_806B124
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080953F4
+ ldrb r0, [r4]
+ ldrb r1, [r5]
+ bl sub_806C994
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_806BF74
+ ldrb r1, [r5]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _080953E0 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _080953E4 @ =gStringVar1
+ bl GetMonNickname
+ ldrb r0, [r4]
+ ldrb r1, [r5]
+ bl sub_8095050
+ ldrb r0, [r4]
+ ldr r1, _080953E8 @ =sub_8095408
+ ldr r2, _080953EC @ =SetUpBattlePokemonMenu
+ bl SetTaskFuncWithFollowupFunc
+ ldr r0, _080953F0 @ =sub_806AEDC
+ bl SetMainCallback2
+ b _08095400
+ .align 2, 0
+_080953D8: .4byte 0x0201b260
+_080953DC: .4byte gUnknown_020384F0
+_080953E0: .4byte gPlayerParty
+_080953E4: .4byte gStringVar1
+_080953E8: .4byte sub_8095408
+_080953EC: .4byte SetUpBattlePokemonMenu
+_080953F0: .4byte sub_806AEDC
+_080953F4:
+ bl sub_80F9344
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08095392
+_08095400:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_809538C
+
+ thumb_func_start sub_8095408
+sub_8095408: @ 8095408
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ adds r4, r7, 0
+ ldr r0, _0809543C @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r3, 0x80
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _080954B8
+ ldr r2, _08095440 @ =gMain
+ ldrh r1, [r2, 0x30]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _08095444
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ negs r0, r0
+ bl MoveMenuCursor
+ b _080954B8
+ .align 2, 0
+_0809543C: .4byte gPaletteFade
+_08095440: .4byte gMain
+_08095444:
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0809545A
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ bl MoveMenuCursor
+ b _080954B8
+_0809545A:
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080954A4
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, _08095498 @ =gTasks
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r1
+ ldrb r4, [r0, 0x10]
+ ldr r5, _0809549C @ =gUnknown_083B5FF4
+ ldr r6, _080954A0 @ =gUnknown_083B5FCC
+ bl GetMenuCursorPos
+ adds r3, r0, 0
+ lsls r3, 24
+ lsrs r3, 24
+ adds r0, r4, 0
+ adds r1, r5, 0
+ adds r2, r6, 0
+ bl sub_806E81C
+ adds r1, r0, 0
+ adds r0, r7, 0
+ bl _call_via_r1
+ b _080954B8
+ .align 2, 0
+_08095498: .4byte gTasks
+_0809549C: .4byte gUnknown_083B5FF4
+_080954A0: .4byte gUnknown_083B5FCC
+_080954A4:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080954B8
+ movs r0, 0x5
+ bl PlaySE
+ adds r0, r4, 0
+ bl BattlePokemonMenu_Cancel
+_080954B8:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8095408
+
+ thumb_func_start sub_80954C0
+sub_80954C0: @ 80954C0
+ push {lr}
+ lsls r0, 24
+ lsrs r1, r0, 24
+ ldr r0, _080954D8 @ =gUnknown_0202E8F6
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080954D4
+ adds r0, r1, 0
+ bl BattlePokemonMenu_Cancel
+_080954D4:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080954D8: .4byte gUnknown_0202E8F6
+ thumb_func_end sub_80954C0
+
+ thumb_func_start BattleShowPokemonSummaryScreen
+BattleShowPokemonSummaryScreen: @ 80954DC
+ push {r4,r5,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r0, r4, 0
+ bl sub_806CA38
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _0809552C @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08095522
+ adds r0, r4, 0
+ bl DestroyTask
+ ldr r0, _08095530 @ =0x0201b000
+ ldr r1, _08095534 @ =0x00000262
+ adds r0, r1
+ movs r1, 0x1
+ strb r1, [r0]
+ ldr r0, _08095538 @ =gPlayerParty
+ ldr r1, _0809553C @ =gPlayerPartyCount
+ ldrb r2, [r1]
+ subs r2, 0x1
+ lsls r2, 24
+ lsrs r2, 24
+ ldr r3, _08095540 @ =sub_809535C
+ movs r1, 0x4
+ str r1, [sp]
+ adds r1, r5, 0
+ bl ShowPokemonSummaryScreen
+_08095522:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809552C: .4byte gPaletteFade
+_08095530: .4byte 0x0201b000
+_08095534: .4byte 0x00000262
+_08095538: .4byte gPlayerParty
+_0809553C: .4byte gPlayerPartyCount
+_08095540: .4byte sub_809535C
+ thumb_func_end BattleShowPokemonSummaryScreen
+
+ thumb_func_start BattlePokemonMenu_Summary
+BattlePokemonMenu_Summary: @ 8095544
+ push {r4,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r4, 0
+ bl sub_806CA38
+ ldr r1, _0809557C @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _08095580 @ =BattleShowPokemonSummaryScreen
+ str r1, [r0]
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809557C: .4byte gTasks
+_08095580: .4byte BattleShowPokemonSummaryScreen
+ thumb_func_end BattlePokemonMenu_Summary
+
+ thumb_func_start BattlePokemonMenu_Shift
+BattlePokemonMenu_Shift: @ 8095584
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r1, _080955F8 @ =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r0, r1
+ ldrb r0, [r0, 0x10]
+ ldr r1, _080955FC @ =gUnknown_083B5FF4
+ bl sub_806E7D0
+ adds r0, r6, 0
+ bl sub_806CA38
+ lsls r0, 24
+ lsrs r5, r0, 24
+ bl IsLinkDoubleBattle
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08095610
+ cmp r5, 0x1
+ beq _080955C6
+ cmp r5, 0x4
+ beq _080955C6
+ cmp r5, 0x5
+ bne _08095610
+_080955C6:
+ bl sub_806D5A4
+ ldr r4, _08095600 @ =gStringVar1
+ bl sub_8040D08
+ adds r1, r0, 0
+ adds r0, r4, 0
+ bl StringCopy
+ ldr r4, _08095604 @ =gStringVar4
+ ldr r1, _08095608 @ =gOtherText_CantSwitchPokeWithYours
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_806E834
+ ldr r1, _080955F8 @ =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0809560C @ =sub_80954C0
+ b _0809589A
+ .align 2, 0
+_080955F8: .4byte gTasks
+_080955FC: .4byte gUnknown_083B5FF4
+_08095600: .4byte gStringVar1
+_08095604: .4byte gStringVar4
+_08095608: .4byte gOtherText_CantSwitchPokeWithYours
+_0809560C: .4byte sub_80954C0
+_08095610:
+ movs r0, 0x64
+ adds r1, r5, 0
+ muls r1, r0
+ ldr r0, _08095654 @ =gPlayerParty
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl GetMonData
+ cmp r0, 0
+ bne _0809566C
+ bl sub_806D5A4
+ ldr r1, _08095658 @ =gStringVar1
+ adds r0, r4, 0
+ bl GetMonNickname
+ ldr r4, _0809565C @ =gStringVar4
+ ldr r1, _08095660 @ =gOtherText_NoEnergyLeft
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_806E834
+ ldr r1, _08095664 @ =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _08095668 @ =sub_80954C0
+ b _0809589A
+ .align 2, 0
+_08095654: .4byte gPlayerParty
+_08095658: .4byte gStringVar1
+_0809565C: .4byte gStringVar4
+_08095660: .4byte gOtherText_NoEnergyLeft
+_08095664: .4byte gTasks
+_08095668: .4byte sub_80954C0
+_0809566C:
+ movs r4, 0
+ ldr r0, _08095678 @ =gUnknown_02024A68
+ lsls r1, r6, 2
+ mov r8, r1
+ b _080956A8
+ .align 2, 0
+_08095678: .4byte gUnknown_02024A68
+_0809567C:
+ adds r0, r4, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080956A0
+ adds r0, r5, 0
+ bl sub_8094C20
+ lsls r0, 24
+ ldr r2, _080956EC @ =gUnknown_02024A6A
+ lsls r1, r4, 1
+ adds r1, r2
+ lsrs r0, 24
+ ldrh r1, [r1]
+ cmp r0, r1
+ bne _080956A0
+ b _08095808
+_080956A0:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080956F0 @ =gUnknown_02024A68
+_080956A8:
+ ldrb r0, [r0]
+ cmp r4, r0
+ bcc _0809567C
+ movs r2, 0x64
+ mov r9, r2
+ mov r0, r9
+ muls r0, r5
+ ldr r1, _080956F4 @ =gPlayerParty
+ mov r10, r1
+ adds r7, r0, r1
+ adds r0, r7, 0
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0
+ beq _08095708
+ bl sub_806D5A4
+ ldr r4, _080956F8 @ =gStringVar4
+ ldr r1, _080956FC @ =gOtherText_EGGCantBattle
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_806E834
+ ldr r1, _08095700 @ =gTasks
+ mov r2, r8
+ adds r0, r2, r6
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _08095704 @ =sub_80954C0
+ b _0809589A
+ .align 2, 0
+_080956EC: .4byte gUnknown_02024A6A
+_080956F0: .4byte gUnknown_02024A68
+_080956F4: .4byte gPlayerParty
+_080956F8: .4byte gStringVar4
+_080956FC: .4byte gOtherText_EGGCantBattle
+_08095700: .4byte gTasks
+_08095704: .4byte sub_80954C0
+_08095708:
+ adds r0, r5, 0
+ bl sub_8094C20
+ ldr r1, _0809574C @ =0x02000000
+ ldr r2, _08095750 @ =0x0001609d
+ adds r1, r2
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r1]
+ cmp r0, r1
+ bne _08095768
+ bl sub_806D5A4
+ ldr r1, _08095754 @ =gStringVar1
+ adds r0, r7, 0
+ bl GetMonNickname
+ ldr r4, _08095758 @ =gStringVar4
+ ldr r1, _0809575C @ =gOtherText_AlreadySelected
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_806E834
+ ldr r1, _08095760 @ =gTasks
+ mov r2, r8
+ adds r0, r2, r6
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _08095764 @ =sub_80954C0
+ b _0809589A
+ .align 2, 0
+_0809574C: .4byte 0x02000000
+_08095750: .4byte 0x0001609d
+_08095754: .4byte gStringVar1
+_08095758: .4byte gStringVar4
+_0809575C: .4byte gOtherText_AlreadySelected
+_08095760: .4byte gTasks
+_08095764: .4byte sub_80954C0
+_08095768:
+ ldr r0, _08095790 @ =gUnknown_02038473
+ ldrb r0, [r0]
+ cmp r0, 0x4
+ bne _080957A0
+ bl sub_806D5A4
+ bl sub_8040B8C
+ ldr r0, _08095794 @ =gStringVar4
+ movs r1, 0
+ bl sub_806E834
+ ldr r1, _08095798 @ =gTasks
+ mov r2, r8
+ adds r0, r2, r6
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0809579C @ =sub_80954C0
+ b _0809589A
+ .align 2, 0
+_08095790: .4byte gUnknown_02038473
+_08095794: .4byte gStringVar4
+_08095798: .4byte gTasks
+_0809579C: .4byte sub_80954C0
+_080957A0:
+ cmp r0, 0x2
+ bne _08095854
+ ldr r0, _080957EC @ =gUnknown_02024E6C
+ ldrb r4, [r0]
+ bl sub_806D5A4
+ ldr r0, _080957F0 @ =gUnknown_02024A6A
+ lsls r4, 1
+ adds r4, r0
+ ldrb r0, [r4]
+ bl pokemon_order_func
+ lsls r0, 24
+ lsrs r0, 24
+ mov r1, r9
+ muls r1, r0
+ adds r0, r1, 0
+ add r0, r10
+ ldr r1, _080957F4 @ =gStringVar1
+ bl GetMonNickname
+ ldr r4, _080957F8 @ =gStringVar4
+ ldr r1, _080957FC @ =gOtherText_CantBeSwitched
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_806E834
+ ldr r1, _08095800 @ =gTasks
+ mov r2, r8
+ adds r0, r2, r6
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _08095804 @ =sub_80954C0
+ b _0809589A
+ .align 2, 0
+_080957EC: .4byte gUnknown_02024E6C
+_080957F0: .4byte gUnknown_02024A6A
+_080957F4: .4byte gStringVar1
+_080957F8: .4byte gStringVar4
+_080957FC: .4byte gOtherText_CantBeSwitched
+_08095800: .4byte gTasks
+_08095804: .4byte sub_80954C0
+_08095808:
+ bl sub_806D5A4
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0809583C @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _08095840 @ =gStringVar1
+ bl GetMonNickname
+ ldr r4, _08095844 @ =gStringVar4
+ ldr r1, _08095848 @ =gOtherText_AlreadyBattle
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_806E834
+ ldr r1, _0809584C @ =gTasks
+ mov r2, r8
+ adds r0, r2, r6
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _08095850 @ =sub_80954C0
+ b _0809589A
+ .align 2, 0
+_0809583C: .4byte gPlayerParty
+_08095840: .4byte gStringVar1
+_08095844: .4byte gStringVar4
+_08095848: .4byte gOtherText_AlreadyBattle
+_0809584C: .4byte gTasks
+_08095850: .4byte sub_80954C0
+_08095854:
+ adds r0, r5, 0
+ bl sub_8094C20
+ ldr r1, _080958AC @ =gUnknown_0202E8F5
+ strb r0, [r1]
+ ldr r1, _080958B0 @ =gUnknown_0202E8F4
+ movs r0, 0x1
+ strb r0, [r1]
+ ldr r1, _080958B4 @ =gUnknown_02024A6A
+ ldr r0, _080958B8 @ =gUnknown_02024E6C
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r0, r1
+ ldrb r0, [r0]
+ bl pokemon_order_func
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_8094C98
+ mov r0, r9
+ muls r0, r4
+ add r0, r10
+ adds r1, r7, 0
+ bl sub_806E6F0
+ ldr r1, _080958BC @ =gTasks
+ mov r2, r8
+ adds r0, r2, r6
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080958C0 @ =sub_809527C
+_0809589A:
+ 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
+_080958AC: .4byte gUnknown_0202E8F5
+_080958B0: .4byte gUnknown_0202E8F4
+_080958B4: .4byte gUnknown_02024A6A
+_080958B8: .4byte gUnknown_02024E6C
+_080958BC: .4byte gTasks
+_080958C0: .4byte sub_809527C
+ thumb_func_end BattlePokemonMenu_Shift
+
+ thumb_func_start BattlePokemonMenu_Cancel
+BattlePokemonMenu_Cancel: @ 80958C4
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ bl sub_8072DEC
+ ldr r0, _080958FC @ =gTasks
+ lsls r4, r5, 2
+ adds r4, r5
+ lsls r4, 3
+ adds r4, r0
+ ldrb r0, [r4, 0x10]
+ ldr r1, _08095900 @ =gUnknown_083B5FF4
+ bl sub_806E7D0
+ ldrh r0, [r4, 0x12]
+ strh r0, [r4, 0x10]
+ movs r0, 0
+ movs r1, 0
+ bl sub_806D538
+ adds r0, r5, 0
+ bl SwitchTaskToFollowupFunc
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080958FC: .4byte gTasks
+_08095900: .4byte gUnknown_083B5FF4
+ thumb_func_end BattlePokemonMenu_Cancel
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/battle_records.s b/asm/battle_records.s
index 4960803ca..60d7b9b2b 100644
--- a/asm/battle_records.s
+++ b/asm/battle_records.s
@@ -47,13 +47,13 @@ _0810FFAE:
bge _0810FFAE
movs r0, 0x17
movs r1, 0
- bl sav12_xor_set
+ bl SetGameStat
movs r0, 0x18
movs r1, 0
- bl sav12_xor_set
+ bl SetGameStat
movs r0, 0x19
movs r1, 0
- bl sav12_xor_set
+ bl SetGameStat
pop {r4,r5}
pop {r0}
bx r0
@@ -264,12 +264,12 @@ _0811013A:
movs r4, 0x19
_0811013C:
adds r0, r4, 0
- bl sub_8053108
+ bl GetGameStat
ldr r1, _08110154 @ =0x0000270e
cmp r0, r1
bhi _0811014E
adds r0, r4, 0
- bl sav12_xor_increment
+ bl IncrementGameStat
_0811014E:
pop {r4}
pop {r0}
@@ -367,7 +367,7 @@ sub_81101FC: @ 81101FC
lsls r1, r0, 3
subs r1, r0
lsls r1, 3
- ldr r0, _08110220 @ =gUnknown_0202FFD4
+ ldr r0, _08110220 @ =gTrainerCards + 0x14
adds r1, r0
ldrh r0, [r1]
adds r0, 0x1
@@ -382,7 +382,7 @@ _0811021A:
pop {r0}
bx r0
.align 2, 0
-_08110220: .4byte gUnknown_0202FFD4
+_08110220: .4byte gTrainerCards + 0x14
_08110224: .4byte 0x0000270f
thumb_func_end sub_81101FC
@@ -392,7 +392,7 @@ sub_8110228: @ 8110228
lsls r1, r0, 3
subs r1, r0
lsls r1, 3
- ldr r0, _0811024C @ =gUnknown_0202FFD6
+ ldr r0, _0811024C @ =gTrainerCards + 0x16
adds r1, r0
ldrh r0, [r1]
adds r0, 0x1
@@ -407,7 +407,7 @@ _08110246:
pop {r0}
bx r0
.align 2, 0
-_0811024C: .4byte gUnknown_0202FFD6
+_0811024C: .4byte gTrainerCards + 0x16
_08110250: .4byte 0x0000270f
thumb_func_end sub_8110228
@@ -452,7 +452,7 @@ sub_8110290: @ 8110290
lsls r2, r4, 3
subs r2, r4
lsls r2, 3
- ldr r3, _081102D8 @ =gUnknown_0202FFF0
+ ldr r3, _081102D8 @ =gTrainerCards + 0x30
adds r1, r2, r3
subs r3, 0x30
adds r2, r3
@@ -477,7 +477,7 @@ sub_8110290: @ 8110290
bx r0
.align 2, 0
_081102D4: .4byte gSaveBlock1 + 0x30B8
-_081102D8: .4byte gUnknown_0202FFF0
+_081102D8: .4byte gTrainerCards + 0x30
_081102DC: .4byte gUnknown_02024D26
_081102E0: .4byte gLinkPlayers
_081102E4: .4byte gLinkPlayerMapObjects
@@ -488,7 +488,7 @@ PrintLinkBattleWinsLossesDraws: @ 81102E8
push {r4,lr}
ldr r4, _08110338 @ =gStringVar1
movs r0, 0x17
- bl sub_8053108
+ bl GetGameStat
adds r1, r0, 0
adds r0, r4, 0
movs r2, 0x1
@@ -496,7 +496,7 @@ PrintLinkBattleWinsLossesDraws: @ 81102E8
bl ConvertIntToDecimalStringN_DigitWidth6
ldr r4, _0811033C @ =gStringVar2
movs r0, 0x18
- bl sub_8053108
+ bl GetGameStat
adds r1, r0, 0
adds r0, r4, 0
movs r2, 0x1
@@ -504,7 +504,7 @@ PrintLinkBattleWinsLossesDraws: @ 81102E8
bl ConvertIntToDecimalStringN_DigitWidth6
ldr r4, _08110340 @ =gStringVar3
movs r0, 0x19
- bl sub_8053108
+ bl GetGameStat
adds r1, r0, 0
adds r0, r4, 0
movs r2, 0x1
diff --git a/asm/berry_blender.s b/asm/berry_blender.s
index affe536ca..666882c04 100644
--- a/asm/berry_blender.s
+++ b/asm/berry_blender.s
@@ -4998,13 +4998,13 @@ _08050AEA:
cmp r0, 0
bne _08050B00
movs r0, 0x22
- bl sav12_xor_increment
+ bl IncrementGameStat
b _08050C82
.align 2, 0
_08050AFC: .4byte gUnknown_03004834
_08050B00:
movs r0, 0x21
- bl sav12_xor_increment
+ bl IncrementGameStat
b _08050C82
_08050B08:
ldr r0, _08050B2C @ =gUnknown_03004854
@@ -5295,13 +5295,13 @@ _08050D44:
ldr r0, [r1]
adds r0, 0x1
str r0, [r1]
- ldr r1, _08050D6C @ =gUnknown_3001BB4
+ ldr r1, _08050D6C @ =gSoftResetDisabled
movs r0, 0x1
strb r0, [r1]
b _08050E28
.align 2, 0
_08050D68: .4byte gUnknown_03004854
-_08050D6C: .4byte gUnknown_3001BB4
+_08050D6C: .4byte gSoftResetDisabled
_08050D70:
bl sub_8125E2C
ldr r0, _08050D7C @ =gUnknown_03004854
@@ -5389,13 +5389,13 @@ _08050E06:
str r0, [r1]
cmp r0, 0x5
ble _08050E28
- ldr r1, _08050E24 @ =gUnknown_3001BB4
+ ldr r1, _08050E24 @ =gSoftResetDisabled
movs r0, 0
strb r0, [r1]
movs r0, 0x1
b _08050E2A
.align 2, 0
-_08050E24: .4byte gUnknown_3001BB4
+_08050E24: .4byte gSoftResetDisabled
_08050E28:
movs r0, 0
_08050E2A:
diff --git a/asm/berry_tag_screen.s b/asm/berry_tag_screen.s
deleted file mode 100644
index 7f26885e6..000000000
--- a/asm/berry_tag_screen.s
+++ /dev/null
@@ -1,1115 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_8146014
-sub_8146014: @ 8146014
- push {lr}
- bl AnimateSprites
- bl BuildOamBuffer
- bl RunTasks
- bl UpdatePaletteFade
- pop {r0}
- bx r0
- thumb_func_end sub_8146014
-
- thumb_func_start sub_814602C
-sub_814602C: @ 814602C
- push {lr}
- ldr r2, _0814604C @ =REG_BG0VOFS
- ldr r0, _08146050 @ =gUnknown_030041B4
- ldrh r1, [r0]
- strh r1, [r2]
- ldr r0, _08146054 @ =REG_BG1VOFS
- strh r1, [r0]
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- pop {r0}
- bx r0
- .align 2, 0
-_0814604C: .4byte REG_BG0VOFS
-_08146050: .4byte gUnknown_030041B4
-_08146054: .4byte REG_BG1VOFS
- thumb_func_end sub_814602C
-
- thumb_func_start sub_8146058
-sub_8146058: @ 8146058
- push {r4,lr}
- sub sp, 0x4
- ldr r0, _08146074 @ =gMain
- ldr r1, _08146078 @ =0x0000043c
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0xC
- bls _0814606A
- b _08146250
-_0814606A:
- lsls r0, 2
- ldr r1, _0814607C @ =_08146080
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08146074: .4byte gMain
-_08146078: .4byte 0x0000043c
-_0814607C: .4byte _08146080
- .align 2, 0
-_08146080:
- .4byte _081460B4
- .4byte _081460CC
- .4byte _081460F0
- .4byte _081460F6
- .4byte _08146110
- .4byte _0814611C
- .4byte _0814613C
- .4byte _0814615C
- .4byte _08146170
- .4byte _08146190
- .4byte _081461B4
- .4byte _08146204
- .4byte _08146224
-_081460B4:
- bl sub_80F9438
- bl sub_80F9368
- bl sub_8146288
- ldr r1, _081460C8 @ =REG_BLDCNT
- movs r0, 0
- strh r0, [r1]
- b _0814620C
- .align 2, 0
-_081460C8: .4byte REG_BLDCNT
-_081460CC:
- bl ResetPaletteFade
- ldr r2, _081460E4 @ =gPaletteFade
- ldrb r0, [r2, 0x8]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2, 0x8]
- ldr r1, _081460E8 @ =gMain
- ldr r0, _081460EC @ =0x0000043c
- adds r1, r0
- b _08146212
- .align 2, 0
-_081460E4: .4byte gPaletteFade
-_081460E8: .4byte gMain
-_081460EC: .4byte 0x0000043c
-_081460F0:
- bl ResetSpriteData
- b _0814620C
-_081460F6:
- ldr r0, _08146104 @ =gWindowConfig_81E6E18
- bl SetUpWindowConfig
- ldr r1, _08146108 @ =gMain
- ldr r0, _0814610C @ =0x0000043c
- adds r1, r0
- b _08146212
- .align 2, 0
-_08146104: .4byte gWindowConfig_81E6E18
-_08146108: .4byte gMain
-_0814610C: .4byte 0x0000043c
-_08146110:
- ldr r0, _08146118 @ =gWindowConfig_81E6E18
- bl MultistepInitMenuWindowBegin
- b _0814620C
- .align 2, 0
-_08146118: .4byte gWindowConfig_81E6E18
-_0814611C:
- bl MultistepInitMenuWindowContinue
- cmp r0, 0
- bne _08146126
- b _08146250
-_08146126:
- ldr r0, _08146134 @ =0x02000000
- ldr r1, _08146138 @ =0x0001ffff
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
- b _0814620C
- .align 2, 0
-_08146134: .4byte 0x02000000
-_08146138: .4byte 0x0001ffff
-_0814613C:
- bl sub_81462B8
- lsls r0, 24
- cmp r0, 0
- bne _08146148
- b _08146250
-_08146148:
- ldr r0, _08146154 @ =0x02000000
- ldr r1, _08146158 @ =0x0001ffff
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
- b _0814620C
- .align 2, 0
-_08146154: .4byte 0x02000000
-_08146158: .4byte 0x0001ffff
-_0814615C:
- bl sub_81464E4
- ldr r1, _08146168 @ =gMain
- ldr r0, _0814616C @ =0x0000043c
- adds r1, r0
- b _08146212
- .align 2, 0
-_08146168: .4byte gMain
-_0814616C: .4byte 0x0000043c
-_08146170:
- ldr r0, _08146188 @ =gScriptItemId
- ldrb r0, [r0]
- adds r0, 0x7B
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x38
- movs r2, 0x40
- bl sub_80A7D8C
- ldr r1, _0814618C @ =gUnknown_0203932C
- strb r0, [r1]
- b _0814620C
- .align 2, 0
-_08146188: .4byte gScriptItemId
-_0814618C: .4byte gUnknown_0203932C
-_08146190:
- ldr r0, _081461A8 @ =gScriptItemId
- ldrb r0, [r0]
- adds r0, 0x7B
- lsls r0, 24
- lsrs r0, 24
- bl sub_8146600
- ldr r1, _081461AC @ =gMain
- ldr r0, _081461B0 @ =0x0000043c
- adds r1, r0
- b _08146212
- .align 2, 0
-_081461A8: .4byte gScriptItemId
-_081461AC: .4byte gMain
-_081461B0: .4byte 0x0000043c
-_081461B4:
- ldr r3, _081461EC @ =0x04000208
- ldrh r2, [r3]
- movs r0, 0
- strh r0, [r3]
- ldr r4, _081461F0 @ =0x04000200
- ldrh r0, [r4]
- movs r1, 0x1
- orrs r0, r1
- strh r0, [r4]
- strh r2, [r3]
- ldr r2, _081461F4 @ =REG_DISPSTAT
- ldrh r0, [r2]
- movs r1, 0x8
- orrs r0, r1
- strh r0, [r2]
- ldr r0, _081461F8 @ =sub_814602C
- bl SetVBlankCallback
- movs r1, 0x80
- lsls r1, 19
- movs r2, 0xFA
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- ldr r1, _081461FC @ =gMain
- ldr r0, _08146200 @ =0x0000043c
- adds r1, r0
- b _08146212
- .align 2, 0
-_081461EC: .4byte 0x04000208
-_081461F0: .4byte 0x04000200
-_081461F4: .4byte REG_DISPSTAT
-_081461F8: .4byte sub_814602C
-_081461FC: .4byte gMain
-_08146200: .4byte 0x0000043c
-_08146204:
- bl sub_8055870
- cmp r0, 0x1
- beq _08146250
-_0814620C:
- ldr r1, _0814621C @ =gMain
- ldr r2, _08146220 @ =0x0000043c
- adds r1, r2
-_08146212:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _08146250
- .align 2, 0
-_0814621C: .4byte gMain
-_08146220: .4byte 0x0000043c
-_08146224:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r2, _08146248 @ =gPaletteFade
- ldrb r1, [r2, 0x8]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2, 0x8]
- ldr r0, _0814624C @ =sub_8146014
- bl SetMainCallback2
- movs r0, 0x1
- b _08146252
- .align 2, 0
-_08146248: .4byte gPaletteFade
-_0814624C: .4byte sub_8146014
-_08146250:
- movs r0, 0
-_08146252:
- add sp, 0x4
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8146058
-
- thumb_func_start sub_814625C
-sub_814625C: @ 814625C
- push {lr}
-_0814625E:
- bl sub_8146058
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08146278
- ldr r0, _08146274 @ =sub_8146480
- movs r1, 0
- bl CreateTask
- b _08146284
- .align 2, 0
-_08146274: .4byte sub_8146480
-_08146278:
- bl sub_80F9344
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0814625E
-_08146284:
- pop {r0}
- bx r0
- thumb_func_end sub_814625C
-
- thumb_func_start sub_8146288
-sub_8146288: @ 8146288
- ldr r1, _081462A8 @ =REG_BG1CNT
- ldr r2, _081462AC @ =0x00000502
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- adds r2, 0xFE
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r2, _081462B0 @ =0x00000703
- adds r0, r2, 0
- strh r0, [r1]
- ldr r1, _081462B4 @ =gUnknown_030041B4
- movs r0, 0
- strh r0, [r1]
- bx lr
- .align 2, 0
-_081462A8: .4byte REG_BG1CNT
-_081462AC: .4byte 0x00000502
-_081462B0: .4byte 0x00000703
-_081462B4: .4byte gUnknown_030041B4
- thumb_func_end sub_8146288
-
- thumb_func_start sub_81462B8
-sub_81462B8: @ 81462B8
- push {r4-r7,lr}
- ldr r1, _081462D4 @ =0x02000000
- ldr r2, _081462D8 @ =0x0001ffff
- adds r0, r1, r2
- ldrb r0, [r0]
- mov r12, r1
- cmp r0, 0x6
- bls _081462CA
- b _08146404
-_081462CA:
- lsls r0, 2
- ldr r1, _081462DC @ =_081462E0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_081462D4: .4byte 0x02000000
-_081462D8: .4byte 0x0001ffff
-_081462DC: .4byte _081462E0
- .align 2, 0
-_081462E0:
- .4byte _081462FC
- .4byte _0814630C
- .4byte _0814632C
- .4byte _08146340
- .4byte _081463A4
- .4byte _081463C4
- .4byte _081463E4
-_081462FC:
- ldr r0, _08146308 @ =gBerryCheck_Gfx
- movs r1, 0xC0
- lsls r1, 19
- bl LZDecompressVram
- b _081463CA
- .align 2, 0
-_08146308: .4byte gBerryCheck_Gfx
-_0814630C:
- ldr r0, _0814631C @ =gUnknown_08E788E4
- ldr r1, _08146320 @ =0x06002800
- bl LZDecompressVram
- ldr r1, _08146324 @ =0x02000000
- ldr r2, _08146328 @ =0x0001ffff
- adds r1, r2
- b _081463D0
- .align 2, 0
-_0814631C: .4byte gUnknown_08E788E4
-_08146320: .4byte 0x06002800
-_08146324: .4byte 0x02000000
-_08146328: .4byte 0x0001ffff
-_0814632C:
- ldr r0, _08146338 @ =gUnknown_08E78A84
- ldr r1, _0814633C @ =0x06003000
- bl LZDecompressVram
- b _081463CA
- .align 2, 0
-_08146338: .4byte gUnknown_08E78A84
-_0814633C: .4byte 0x06003000
-_08146340:
- movs r1, 0
- ldr r7, _0814635C @ =gBGTilemapBuffers + 0x1000
- adds r2, r7, 0
- ldr r6, _08146360 @ =0x00004042
- ldr r5, _08146364 @ =gSaveBlock2
- ldr r4, _08146368 @ =0x00005042
- ldr r3, _0814636C @ =0x000003ff
-_0814634E:
- ldrb r0, [r5, 0x8]
- cmp r0, 0
- bne _08146370
- lsls r0, r1, 1
- adds r0, r2
- strh r6, [r0]
- b _08146376
- .align 2, 0
-_0814635C: .4byte gBGTilemapBuffers + 0x1000
-_08146360: .4byte 0x00004042
-_08146364: .4byte gSaveBlock2
-_08146368: .4byte 0x00005042
-_0814636C: .4byte 0x000003ff
-_08146370:
- lsls r0, r1, 1
- adds r0, r2
- strh r4, [r0]
-_08146376:
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, r3
- bls _0814634E
- ldr r1, _08146394 @ =0x06003800
- ldr r0, _08146398 @ =0x040000d4
- str r7, [r0]
- str r1, [r0, 0x4]
- ldr r1, _0814639C @ =0x80000400
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- ldr r1, _081463A0 @ =0x0001ffff
- add r1, r12
- b _081463D0
- .align 2, 0
-_08146394: .4byte 0x06003800
-_08146398: .4byte 0x040000d4
-_0814639C: .4byte 0x80000400
-_081463A0: .4byte 0x0001ffff
-_081463A4:
- ldr r0, _081463B8 @ =gBerryCheck_Pal
- movs r1, 0
- movs r2, 0xC0
- bl LoadCompressedPalette
- ldr r1, _081463BC @ =0x02000000
- ldr r2, _081463C0 @ =0x0001ffff
- adds r1, r2
- b _081463D0
- .align 2, 0
-_081463B8: .4byte gBerryCheck_Pal
-_081463BC: .4byte 0x02000000
-_081463C0: .4byte 0x0001ffff
-_081463C4:
- ldr r0, _081463D8 @ =gUnknown_083C1F74
- bl LoadCompressedObjectPic
-_081463CA:
- ldr r1, _081463DC @ =0x02000000
- ldr r0, _081463E0 @ =0x0001ffff
- adds r1, r0
-_081463D0:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _08146404
- .align 2, 0
-_081463D8: .4byte gUnknown_083C1F74
-_081463DC: .4byte 0x02000000
-_081463E0: .4byte 0x0001ffff
-_081463E4:
- ldr r0, _081463F8 @ =gUnknown_083C1F7C
- bl LoadCompressedObjectPalette
- ldr r0, _081463FC @ =0x02000000
- ldr r1, _08146400 @ =0x0001ffff
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
- movs r0, 0x1
- b _08146406
- .align 2, 0
-_081463F8: .4byte gUnknown_083C1F7C
-_081463FC: .4byte 0x02000000
-_08146400: .4byte 0x0001ffff
-_08146404:
- movs r0, 0
-_08146406:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_81462B8
-
- thumb_func_start sub_814640C
-sub_814640C: @ 814640C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08146438 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08146432
- ldr r0, _0814643C @ =sub_80A5B40
- bl SetMainCallback2
- bl sub_80A7DD4
- bl gpu_pal_allocator_reset__manage_upper_four
- adds r0, r4, 0
- bl DestroyTask
-_08146432:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08146438: .4byte gPaletteFade
-_0814643C: .4byte sub_80A5B40
- thumb_func_end sub_814640C
-
- thumb_func_start sub_8146440
-sub_8146440: @ 8146440
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _08146478 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0814647C @ =sub_814640C
- str r1, [r0]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08146478: .4byte gTasks
-_0814647C: .4byte sub_814640C
- thumb_func_end sub_8146440
-
- thumb_func_start sub_8146480
-sub_8146480: @ 8146480
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r7, r4, 0
- ldr r0, _081464DC @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _081464D6
- ldr r5, _081464E0 @ =gMain
- ldrh r1, [r5, 0x30]
- movs r6, 0xF0
- adds r0, r6, 0
- ands r0, r1
- cmp r0, 0x40
- bne _081464AC
- movs r1, 0x1
- negs r1, r1
- adds r0, r4, 0
- bl sub_81466E8
-_081464AC:
- ldrh r1, [r5, 0x30]
- adds r0, r6, 0
- ands r0, r1
- cmp r0, 0x80
- bne _081464BE
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_81466E8
-_081464BE:
- ldrh r1, [r5, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _081464D0
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _081464D6
-_081464D0:
- adds r0, r7, 0
- bl sub_8146440
-_081464D6:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081464DC: .4byte gPaletteFade
-_081464E0: .4byte gMain
- thumb_func_end sub_8146480
-
- thumb_func_start sub_81464E4
-sub_81464E4: @ 81464E4
- push {r4-r7,lr}
- ldr r4, _0814659C @ =gScriptItemId
- ldrb r0, [r4]
- adds r0, 0x7C
- lsls r0, 24
- lsrs r0, 24
- bl GetBerryInfo
- adds r5, r0, 0
- ldr r7, _081465A0 @ =gStringVar1
- ldrh r1, [r4]
- subs r1, 0x84
- adds r0, r7, 0
- movs r2, 0x2
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- adds r0, r7, 0
- movs r1, 0xC
- movs r2, 0x4
- bl MenuPrint
- adds r0, r5, 0
- movs r1, 0xE
- movs r2, 0x4
- bl MenuPrint
- ldr r0, [r5, 0xC]
- movs r1, 0x4
- movs r2, 0xE
- bl MenuPrint
- ldr r0, [r5, 0x10]
- movs r1, 0x4
- movs r2, 0x10
- bl MenuPrint
- ldrh r1, [r5, 0x8]
- lsls r0, r1, 5
- subs r0, r1
- lsls r0, 2
- adds r0, r1
- lsls r0, 3
- movs r1, 0xFE
- bl __divsi3
- adds r4, r0, 0
- movs r1, 0xA
- bl __umodsi3
- cmp r0, 0x4
- bls _0814654E
- adds r4, 0xA
-_0814654E:
- adds r0, r4, 0
- movs r1, 0x64
- bl __umodsi3
- movs r1, 0xA
- bl __udivsi3
- adds r6, r0, 0
- adds r0, r4, 0
- movs r1, 0x64
- bl __udivsi3
- adds r4, r0, 0
- ldr r0, _081465A4 @ =gOtherText_Size
- movs r1, 0xB
- movs r2, 0x7
- bl MenuPrint
- ldrh r0, [r5, 0x8]
- cmp r0, 0
- beq _081465B0
- adds r0, r7, 0
- adds r1, r4, 0
- movs r2, 0
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- ldr r0, _081465A8 @ =gStringVar2
- adds r1, r6, 0
- movs r2, 0
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- ldr r0, _081465AC @ =gContestStatsText_Unknown1
- movs r1, 0x10
- movs r2, 0x7
- bl MenuPrint
- b _081465BA
- .align 2, 0
-_0814659C: .4byte gScriptItemId
-_081465A0: .4byte gStringVar1
-_081465A4: .4byte gOtherText_Size
-_081465A8: .4byte gStringVar2
-_081465AC: .4byte gContestStatsText_Unknown1
-_081465B0:
- ldr r0, _081465E0 @ =gOtherText_ThreeQuestions2
- movs r1, 0x10
- movs r2, 0x7
- bl MenuPrint
-_081465BA:
- ldr r0, _081465E4 @ =gOtherText_Firm
- movs r1, 0xB
- movs r2, 0x9
- bl MenuPrint
- ldrb r0, [r5, 0x7]
- cmp r0, 0
- beq _081465EC
- ldr r0, _081465E8 @ =gUnknown_0841192C
- ldrb r1, [r5, 0x7]
- subs r1, 0x1
- lsls r1, 2
- adds r1, r0
- ldr r0, [r1]
- movs r1, 0x10
- movs r2, 0x9
- bl MenuPrint
- b _081465F6
- .align 2, 0
-_081465E0: .4byte gOtherText_ThreeQuestions2
-_081465E4: .4byte gOtherText_Firm
-_081465E8: .4byte gUnknown_0841192C
-_081465EC:
- ldr r0, _081465FC @ =gOtherText_ThreeQuestions2
- movs r1, 0x10
- movs r2, 0x9
- bl MenuPrint
-_081465F6:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081465FC: .4byte gOtherText_ThreeQuestions2
- thumb_func_end sub_81464E4
-
- thumb_func_start sub_8146600
-sub_8146600: @ 8146600
- push {r4,r5,lr}
- lsls r0, 24
- movs r1, 0x80
- lsls r1, 17
- adds r0, r1
- lsrs r0, 24
- bl GetBerryInfo
- adds r4, r0, 0
- movs r2, 0
- ldr r5, _08146698 @ =gUnknown_0203932E
- ldr r0, _0814669C @ =0x0000ffff
- adds r3, r0, 0
-_0814661A:
- lsls r0, r2, 1
- adds r0, r5
- ldrh r1, [r0]
- orrs r1, r3
- strh r1, [r0]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x4
- bls _0814661A
- ldrb r0, [r4, 0x15]
- cmp r0, 0
- beq _08146642
- movs r0, 0x30
- bl sub_80A7E5C
- ldr r1, _08146698 @ =gUnknown_0203932E
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r1]
-_08146642:
- ldrb r0, [r4, 0x16]
- cmp r0, 0
- beq _08146656
- movs r0, 0x58
- bl sub_80A7E5C
- ldr r1, _08146698 @ =gUnknown_0203932E
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r1, 0x2]
-_08146656:
- ldrb r0, [r4, 0x17]
- cmp r0, 0
- beq _0814666A
- movs r0, 0x80
- bl sub_80A7E5C
- ldr r1, _08146698 @ =gUnknown_0203932E
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r1, 0x4]
-_0814666A:
- ldrb r0, [r4, 0x18]
- cmp r0, 0
- beq _0814667E
- movs r0, 0xA8
- bl sub_80A7E5C
- ldr r1, _08146698 @ =gUnknown_0203932E
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r1, 0x6]
-_0814667E:
- ldrb r0, [r4, 0x19]
- cmp r0, 0
- beq _08146692
- movs r0, 0xD0
- bl sub_80A7E5C
- ldr r1, _08146698 @ =gUnknown_0203932E
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r1, 0x8]
-_08146692:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08146698: .4byte gUnknown_0203932E
-_0814669C: .4byte 0x0000ffff
- thumb_func_end sub_8146600
-
- thumb_func_start sub_81466A0
-sub_81466A0: @ 81466A0
- push {r4-r7,lr}
- movs r5, 0
- movs r7, 0x1
- negs r7, r7
- ldr r6, _081466DC @ =gUnknown_0203932E
-_081466AA:
- lsls r0, r5, 1
- adds r4, r0, r6
- movs r1, 0
- ldrsh r0, [r4, r1]
- cmp r0, r7
- beq _081466CA
- adds r1, r0, 0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _081466E0 @ =gSprites
- adds r0, r1
- bl DestroySprite
- ldr r0, _081466E4 @ =0x0000ffff
- strh r0, [r4]
-_081466CA:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x4
- bls _081466AA
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081466DC: .4byte gUnknown_0203932E
-_081466E0: .4byte gSprites
-_081466E4: .4byte 0x0000ffff
- thumb_func_end sub_81466A0
-
- thumb_func_start sub_81466E8
-sub_81466E8: @ 81466E8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r1, 24
- lsrs r2, r1, 24
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- ldr r1, _08146748 @ =gTasks + 0x8
- adds r6, r0, r1
- ldr r4, _0814674C @ =gUnknown_03005D10
- movs r0, 0xC
- adds r0, r4
- mov r8, r0
- ldrb r1, [r0, 0x1]
- ldrb r0, [r4, 0xC]
- adds r1, r0
- cmp r1, 0
- bne _08146718
- lsls r0, r2, 24
- cmp r0, 0
- blt _0814678C
-_08146718:
- adds r0, r1, 0x1
- lsls r5, r2, 24
- mov r1, r8
- ldrb r1, [r1, 0x2]
- cmp r0, r1
- bne _08146728
- cmp r5, 0
- bgt _0814678C
-_08146728:
- movs r0, 0x5
- bl PlaySE
- mov r2, r8
- ldrb r3, [r2, 0x1]
- ldrb r4, [r4, 0xC]
- mov r12, r4
- adds r0, r3, r4
- asrs r2, r5, 24
- adds r1, r0, r2
- cmp r1, 0
- bge _08146750
- negs r0, r0
- strh r0, [r6, 0x2]
- b _08146766
- .align 2, 0
-_08146748: .4byte gTasks + 0x8
-_0814674C: .4byte gUnknown_03005D10
-_08146750:
- mov r4, r8
- ldrb r0, [r4, 0x2]
- cmp r1, r0
- blt _08146764
- subs r0, r3
- mov r1, r12
- subs r0, r1
- subs r0, 0x1
- strh r0, [r6, 0x2]
- b _08146766
-_08146764:
- strh r2, [r6, 0x2]
-_08146766:
- ldr r0, _08146780 @ =gTasks
- lsls r1, r7, 2
- adds r1, r7
- lsls r1, 3
- adds r1, r0
- ldr r0, _08146784 @ =sub_8146798
- str r0, [r1]
- cmp r5, 0
- bge _08146788
- movs r2, 0x10
- negs r2, r2
- adds r0, r2, 0
- b _0814678A
- .align 2, 0
-_08146780: .4byte gTasks
-_08146784: .4byte sub_8146798
-_08146788:
- movs r0, 0x10
-_0814678A:
- strh r0, [r6]
-_0814678C:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_81466E8
-
- thumb_func_start sub_8146798
-sub_8146798: @ 8146798
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _08146800 @ =gTasks + 0x8
- adds r0, r1
- ldr r2, _08146804 @ =gUnknown_030041B4
- ldrh r1, [r0]
- ldrh r5, [r2]
- adds r3, r1, r5
- movs r1, 0xFF
- ands r3, r1
- strh r3, [r2]
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- ble _081467C2
- cmp r3, 0x90
- beq _081467CA
-_081467C2:
- cmp r0, 0
- bge _081467E0
- cmp r3, 0x70
- bne _081467E0
-_081467CA:
- ldr r0, _08146808 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- movs r0, 0xA
- ldrsb r0, [r1, r0]
- bl sub_8146810
- bl sub_81468BC
-_081467E0:
- ldr r0, _08146804 @ =gUnknown_030041B4
- ldrh r2, [r0]
- cmp r2, 0
- bne _081467FA
- ldr r0, _08146808 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- strh r2, [r1, 0x8]
- strh r2, [r1, 0xA]
- ldr r0, _0814680C @ =sub_8146480
- str r0, [r1]
-_081467FA:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08146800: .4byte gTasks + 0x8
-_08146804: .4byte gUnknown_030041B4
-_08146808: .4byte gTasks
-_0814680C: .4byte sub_8146480
- thumb_func_end sub_8146798
-
- thumb_func_start sub_8146810
-sub_8146810: @ 8146810
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- adds r4, r3, 0
- lsls r0, r3, 24
- asrs r1, r0, 24
- cmp r1, 0
- ble _08146848
- ldr r0, _08146840 @ =gUnknown_03005D10
- adds r4, r0, 0
- adds r4, 0xC
- ldrb r2, [r0, 0xC]
- adds r1, r2, r1
- adds r6, r0, 0
- cmp r1, 0x7
- ble _08146844
- adds r0, r3, 0
- adds r0, 0xF9
- adds r0, r2, r0
- ldrb r1, [r4, 0x1]
- adds r0, r1
- strb r0, [r4, 0x1]
- movs r0, 0x7
- b _0814686E
- .align 2, 0
-_08146840: .4byte gUnknown_03005D10
-_08146844:
- adds r0, r2, r3
- b _0814686E
-_08146848:
- ldr r0, _08146868 @ =gUnknown_03005D10
- adds r5, r0, 0
- adds r5, 0xC
- ldrb r2, [r0, 0xC]
- adds r1, r2, r1
- adds r6, r0, 0
- cmp r1, 0
- bge _0814686C
- adds r0, r2, r3
- ldrb r1, [r5, 0x1]
- adds r0, r1
- movs r1, 0
- strb r0, [r5, 0x1]
- strb r1, [r6, 0xC]
- b _08146870
- .align 2, 0
-_08146868: .4byte gUnknown_03005D10
-_0814686C:
- adds r0, r2, r4
-_0814686E:
- strb r0, [r6, 0xC]
-_08146870:
- ldr r2, _081468AC @ =gScriptItemId
- movs r0, 0x3
- lsls r0, 2
- adds r0, r6
- ldrb r1, [r0, 0x1]
- ldrb r0, [r0]
- adds r1, r0
- ldr r0, _081468B0 @ =gUnknown_03005D24
- ldr r0, [r0]
- lsls r1, 2
- adds r1, r0
- ldrh r0, [r1]
- strh r0, [r2]
- ldr r0, _081468B4 @ =gUnknown_0203932C
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _081468B8 @ =gSprites
- adds r0, r1
- bl DestroySprite
- bl sub_81466A0
- bl sub_80A7DD4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_081468AC: .4byte gScriptItemId
-_081468B0: .4byte gUnknown_03005D24
-_081468B4: .4byte gUnknown_0203932C
-_081468B8: .4byte gSprites
- thumb_func_end sub_8146810
-
- thumb_func_start sub_81468BC
-sub_81468BC: @ 81468BC
- push {r4,lr}
- movs r0, 0
- movs r1, 0x4
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- bl sub_81464E4
- ldr r4, _081468F8 @ =gScriptItemId
- ldrb r0, [r4]
- adds r0, 0x7B
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x38
- movs r2, 0x40
- bl sub_80A7D8C
- ldr r1, _081468FC @ =gUnknown_0203932C
- strb r0, [r1]
- ldrb r0, [r4]
- adds r0, 0x7B
- lsls r0, 24
- lsrs r0, 24
- bl sub_8146600
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081468F8: .4byte gScriptItemId
-_081468FC: .4byte gUnknown_0203932C
- thumb_func_end sub_81468BC
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/bike.s b/asm/bike.s
index d73fa55dc..a7e3401ac 100644
--- a/asm/bike.s
+++ b/asm/bike.s
@@ -1947,8 +1947,8 @@ _080E5EEE:
bx r1
thumb_func_end sub_80E5EC0
- thumb_func_start sub_80E5EF4
-sub_80E5EF4: @ 80E5EF4
+ thumb_func_start IsBikingDisallowedByPlayer
+IsBikingDisallowedByPlayer: @ 80E5EF4
push {r4,lr}
sub sp, 0x4
ldr r0, _080E5F30 @ =gPlayerAvatar
@@ -1985,7 +1985,7 @@ _080E5F36:
pop {r4}
pop {r1}
bx r1
- thumb_func_end sub_80E5EF4
+ thumb_func_end IsBikingDisallowedByPlayer
thumb_func_start player_should_look_direction_be_enforced_upon_movement
player_should_look_direction_be_enforced_upon_movement: @ 80E5F40
diff --git a/asm/braille_puzzles.s b/asm/braille_puzzles.s
new file mode 100644
index 000000000..f8f2683a6
--- /dev/null
+++ b/asm/braille_puzzles.s
@@ -0,0 +1,606 @@
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start ShouldDoBrailleDigEffect
+ShouldDoBrailleDigEffect: @ 81473B8
+ push {lr}
+ ldr r0, _081473E8 @ =0x0000084f
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ bne _08147400
+ ldr r2, _081473EC @ =gSaveBlock1
+ ldrh r1, [r2, 0x4]
+ ldr r0, _081473F0 @ =0x00004718
+ cmp r1, r0
+ bne _08147400
+ ldr r1, [r2]
+ ldr r0, _081473F4 @ =0x0003000a
+ cmp r1, r0
+ beq _081473E4
+ ldr r0, _081473F8 @ =0x00030009
+ cmp r1, r0
+ beq _081473E4
+ ldr r0, _081473FC @ =0x0003000b
+ cmp r1, r0
+ bne _08147400
+_081473E4:
+ movs r0, 0x1
+ b _08147402
+ .align 2, 0
+_081473E8: .4byte 0x0000084f
+_081473EC: .4byte gSaveBlock1
+_081473F0: .4byte 0x00004718
+_081473F4: .4byte 0x0003000a
+_081473F8: .4byte 0x00030009
+_081473FC: .4byte 0x0003000b
+_08147400:
+ movs r0, 0
+_08147402:
+ pop {r1}
+ bx r1
+ thumb_func_end ShouldDoBrailleDigEffect
+
+ thumb_func_start DoBrailleDigEffect
+DoBrailleDigEffect: @ 8147408
+ push {lr}
+ ldr r2, _08147460 @ =0x0000022a
+ movs r0, 0x10
+ movs r1, 0x8
+ bl MapGridSetMetatileIdAt
+ ldr r2, _08147464 @ =0x0000022b
+ movs r0, 0x11
+ movs r1, 0x8
+ bl MapGridSetMetatileIdAt
+ movs r2, 0x8B
+ lsls r2, 2
+ movs r0, 0x12
+ movs r1, 0x8
+ bl MapGridSetMetatileIdAt
+ ldr r2, _08147468 @ =0x00000e32
+ movs r0, 0x10
+ movs r1, 0x9
+ bl MapGridSetMetatileIdAt
+ ldr r2, _0814746C @ =0x00000233
+ movs r0, 0x11
+ movs r1, 0x9
+ bl MapGridSetMetatileIdAt
+ ldr r2, _08147470 @ =0x00000e34
+ movs r0, 0x12
+ movs r1, 0x9
+ bl MapGridSetMetatileIdAt
+ bl DrawWholeMapView
+ movs r0, 0x14
+ bl PlaySE
+ ldr r0, _08147474 @ =0x0000084f
+ bl FlagSet
+ bl ScriptContext2_Disable
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08147460: .4byte 0x0000022a
+_08147464: .4byte 0x0000022b
+_08147468: .4byte 0x00000e32
+_0814746C: .4byte 0x00000233
+_08147470: .4byte 0x00000e34
+_08147474: .4byte 0x0000084f
+ thumb_func_end DoBrailleDigEffect
+
+ thumb_func_start CheckRelicanthWailord
+CheckRelicanthWailord: @ 8147478
+ push {r4,lr}
+ ldr r4, _081474B4 @ =gPlayerParty
+ adds r0, r4, 0
+ movs r1, 0x41
+ movs r2, 0
+ bl GetMonData
+ ldr r1, _081474B8 @ =0x0000017d
+ cmp r0, r1
+ bne _081474C0
+ bl CalculatePlayerPartyCount
+ ldr r0, _081474BC @ =gPlayerPartyCount
+ ldrb r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ adds r1, r4, 0
+ subs r1, 0x64
+ adds r0, r1
+ movs r1, 0x41
+ movs r2, 0
+ bl GetMonData
+ movs r1, 0x9D
+ lsls r1, 1
+ cmp r0, r1
+ bne _081474C0
+ movs r0, 0x1
+ b _081474C2
+ .align 2, 0
+_081474B4: .4byte gPlayerParty
+_081474B8: .4byte 0x0000017d
+_081474BC: .4byte gPlayerPartyCount
+_081474C0:
+ movs r0, 0
+_081474C2:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end CheckRelicanthWailord
+
+ thumb_func_start ShouldDoBrailleStrengthEffect
+ShouldDoBrailleStrengthEffect: @ 81474C8
+ push {lr}
+ movs r0, 0x85
+ lsls r0, 4
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ bne _0814750C
+ ldr r2, _081474FC @ =gSaveBlock1
+ ldrh r1, [r2, 0x4]
+ movs r0, 0xC3
+ lsls r0, 3
+ cmp r1, r0
+ bne _0814750C
+ ldr r1, [r2]
+ ldr r0, _08147500 @ =0x0017000a
+ cmp r1, r0
+ beq _081474F8
+ ldr r0, _08147504 @ =0x00170009
+ cmp r1, r0
+ beq _081474F8
+ ldr r0, _08147508 @ =0x0017000b
+ cmp r1, r0
+ bne _0814750C
+_081474F8:
+ movs r0, 0x1
+ b _0814750E
+ .align 2, 0
+_081474FC: .4byte gSaveBlock1
+_08147500: .4byte 0x0017000a
+_08147504: .4byte 0x00170009
+_08147508: .4byte 0x0017000b
+_0814750C:
+ movs r0, 0
+_0814750E:
+ pop {r1}
+ bx r1
+ thumb_func_end ShouldDoBrailleStrengthEffect
+
+ thumb_func_start DoBrailleStrengthEffect
+DoBrailleStrengthEffect: @ 8147514
+ push {lr}
+ movs r0, 0x28
+ bl FieldEffectActiveListRemove
+ ldr r2, _08147574 @ =0x0000022a
+ movs r0, 0xE
+ movs r1, 0x1A
+ bl MapGridSetMetatileIdAt
+ ldr r2, _08147578 @ =0x0000022b
+ movs r0, 0xF
+ movs r1, 0x1A
+ bl MapGridSetMetatileIdAt
+ movs r2, 0x8B
+ lsls r2, 2
+ movs r0, 0x10
+ movs r1, 0x1A
+ bl MapGridSetMetatileIdAt
+ ldr r2, _0814757C @ =0x00000e32
+ movs r0, 0xE
+ movs r1, 0x1B
+ bl MapGridSetMetatileIdAt
+ ldr r2, _08147580 @ =0x00000233
+ movs r0, 0xF
+ movs r1, 0x1B
+ bl MapGridSetMetatileIdAt
+ ldr r2, _08147584 @ =0x00000e34
+ movs r0, 0x10
+ movs r1, 0x1B
+ bl MapGridSetMetatileIdAt
+ bl DrawWholeMapView
+ movs r0, 0x14
+ bl PlaySE
+ movs r0, 0x85
+ lsls r0, 4
+ bl FlagSet
+ bl ScriptContext2_Disable
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08147574: .4byte 0x0000022a
+_08147578: .4byte 0x0000022b
+_0814757C: .4byte 0x00000e32
+_08147580: .4byte 0x00000233
+_08147584: .4byte 0x00000e34
+ thumb_func_end DoBrailleStrengthEffect
+
+ thumb_func_start ShouldDoBrailleFlyEffect
+ShouldDoBrailleFlyEffect: @ 8147588
+ push {lr}
+ ldr r0, _081475AC @ =0x00000852
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ bne _081475BC
+ ldr r2, _081475B0 @ =gSaveBlock1
+ ldrh r1, [r2, 0x4]
+ ldr r0, _081475B4 @ =0x00004418
+ cmp r1, r0
+ bne _081475BC
+ ldr r1, [r2]
+ ldr r0, _081475B8 @ =0x00190008
+ cmp r1, r0
+ bne _081475BC
+ movs r0, 0x1
+ b _081475BE
+ .align 2, 0
+_081475AC: .4byte 0x00000852
+_081475B0: .4byte gSaveBlock1
+_081475B4: .4byte 0x00004418
+_081475B8: .4byte 0x00190008
+_081475BC:
+ movs r0, 0
+_081475BE:
+ pop {r1}
+ bx r1
+ thumb_func_end ShouldDoBrailleFlyEffect
+
+ thumb_func_start DoBrailleFlyEffect
+DoBrailleFlyEffect: @ 81475C4
+ push {lr}
+ ldr r0, _081475D8 @ =gUnknown_0202FF84
+ ldr r1, _081475DC @ =gUnknown_03005CE0
+ ldrb r1, [r1]
+ str r1, [r0]
+ movs r0, 0x3C
+ bl FieldEffectStart
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081475D8: .4byte gUnknown_0202FF84
+_081475DC: .4byte gUnknown_03005CE0
+ thumb_func_end DoBrailleFlyEffect
+
+ thumb_func_start FldEff_UseFlyAncientTomb
+FldEff_UseFlyAncientTomb: @ 81475E0
+ push {lr}
+ bl oei_task_add
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08147604 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r2, _08147608 @ =UseFlyAncientTomb_Callback
+ lsrs r0, r2, 16
+ strh r0, [r1, 0x18]
+ strh r2, [r1, 0x1A]
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08147604: .4byte gTasks
+_08147608: .4byte UseFlyAncientTomb_Callback
+ thumb_func_end FldEff_UseFlyAncientTomb
+
+ thumb_func_start UseFlyAncientTomb_Callback
+UseFlyAncientTomb_Callback: @ 814760C
+ push {lr}
+ movs r0, 0x3C
+ bl FieldEffectActiveListRemove
+ bl UseFlyAncientTomb_Finish
+ pop {r0}
+ bx r0
+ thumb_func_end UseFlyAncientTomb_Callback
+
+ thumb_func_start UseFlyAncientTomb_Finish
+UseFlyAncientTomb_Finish: @ 814761C
+ push {lr}
+ ldr r2, _08147674 @ =0x0000022a
+ movs r0, 0xE
+ movs r1, 0x1A
+ bl MapGridSetMetatileIdAt
+ ldr r2, _08147678 @ =0x0000022b
+ movs r0, 0xF
+ movs r1, 0x1A
+ bl MapGridSetMetatileIdAt
+ movs r2, 0x8B
+ lsls r2, 2
+ movs r0, 0x10
+ movs r1, 0x1A
+ bl MapGridSetMetatileIdAt
+ ldr r2, _0814767C @ =0x00000e32
+ movs r0, 0xE
+ movs r1, 0x1B
+ bl MapGridSetMetatileIdAt
+ ldr r2, _08147680 @ =0x00000233
+ movs r0, 0xF
+ movs r1, 0x1B
+ bl MapGridSetMetatileIdAt
+ ldr r2, _08147684 @ =0x00000e34
+ movs r0, 0x10
+ movs r1, 0x1B
+ bl MapGridSetMetatileIdAt
+ bl DrawWholeMapView
+ movs r0, 0x14
+ bl PlaySE
+ ldr r0, _08147688 @ =0x00000852
+ bl FlagSet
+ bl ScriptContext2_Disable
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08147674: .4byte 0x0000022a
+_08147678: .4byte 0x0000022b
+_0814767C: .4byte 0x00000e32
+_08147680: .4byte 0x00000233
+_08147684: .4byte 0x00000e34
+_08147688: .4byte 0x00000852
+ thumb_func_end UseFlyAncientTomb_Finish
+
+ thumb_func_start DoBrailleWait
+DoBrailleWait: @ 814768C
+ push {lr}
+ ldr r0, _081476A8 @ =0x00000851
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ bne _081476A2
+ ldr r0, _081476AC @ =Task_BrailleWait
+ movs r1, 0x50
+ bl CreateTask
+_081476A2:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081476A8: .4byte 0x00000851
+_081476AC: .4byte Task_BrailleWait
+ thumb_func_end DoBrailleWait
+
+ thumb_func_start Task_BrailleWait
+Task_BrailleWait: @ 81476B0
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _081476D4 @ =gTasks + 0x8
+ adds r4, r0, r1
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x4
+ bhi _0814776A
+ lsls r0, 2
+ ldr r1, _081476D8 @ =_081476DC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_081476D4: .4byte gTasks + 0x8
+_081476D8: .4byte _081476DC
+ .align 2, 0
+_081476DC:
+ .4byte _081476F0
+ .4byte _081476FE
+ .4byte _08147730
+ .4byte _08147748
+ .4byte _0814775A
+_081476F0:
+ movs r1, 0xE1
+ lsls r1, 5
+ adds r0, r1, 0
+ strh r0, [r4, 0x2]
+ movs r0, 0x1
+ strh r0, [r4]
+ b _0814776A
+_081476FE:
+ bl BrailleWait_CheckButtonPress
+ cmp r0, 0
+ beq _08147716
+ bl MenuZeroFillScreen
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x2
+ strh r0, [r4]
+ b _0814776A
+_08147716:
+ ldrh r0, [r4, 0x2]
+ subs r0, 0x1
+ strh r0, [r4, 0x2]
+ lsls r0, 16
+ cmp r0, 0
+ bne _0814776A
+ bl MenuZeroFillScreen
+ movs r0, 0x3
+ strh r0, [r4]
+ movs r0, 0x1E
+ strh r0, [r4, 0x2]
+ b _0814776A
+_08147730:
+ bl BrailleWait_CheckButtonPress
+ cmp r0, 0
+ beq _08147748
+ bl sub_8064E2C
+ adds r0, r5, 0
+ bl DestroyTask
+ bl ScriptContext2_Disable
+ b _0814776A
+_08147748:
+ ldrh r0, [r4, 0x2]
+ subs r0, 0x1
+ strh r0, [r4, 0x2]
+ lsls r0, 16
+ cmp r0, 0
+ bne _0814776A
+ movs r0, 0x4
+ strh r0, [r4]
+ b _0814776A
+_0814775A:
+ bl sub_8064E2C
+ ldr r0, _08147770 @ =gUnknown_0815EF19
+ bl ScriptContext1_SetupScript
+ adds r0, r5, 0
+ bl DestroyTask
+_0814776A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08147770: .4byte gUnknown_0815EF19
+ thumb_func_end Task_BrailleWait
+
+ thumb_func_start BrailleWait_CheckButtonPress
+BrailleWait_CheckButtonPress: @ 8147774
+ push {lr}
+ movs r1, 0xFF
+ ldr r0, _081477A4 @ =gSaveBlock2
+ ldrb r2, [r0, 0x13]
+ cmp r2, 0x1
+ bne _08147788
+ movs r3, 0xC0
+ lsls r3, 2
+ adds r0, r3, 0
+ orrs r1, r0
+_08147788:
+ cmp r2, 0x2
+ bne _08147794
+ movs r2, 0x80
+ lsls r2, 2
+ adds r0, r2, 0
+ orrs r1, r0
+_08147794:
+ ldr r0, _081477A8 @ =gMain
+ ldrh r0, [r0, 0x2E]
+ ands r1, r0
+ cmp r1, 0
+ bne _081477AC
+ movs r0, 0
+ b _081477AE
+ .align 2, 0
+_081477A4: .4byte gSaveBlock2
+_081477A8: .4byte gMain
+_081477AC:
+ movs r0, 0x1
+_081477AE:
+ pop {r1}
+ bx r1
+ thumb_func_end BrailleWait_CheckButtonPress
+
+ thumb_func_start DoSealedChamberShakingEffect1
+DoSealedChamberShakingEffect1: @ 81477B4
+ push {lr}
+ ldr r0, _081477E8 @ =SealedChamberShakingEffect
+ movs r1, 0x9
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _081477EC @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ movs r0, 0
+ strh r0, [r1, 0xA]
+ strh r0, [r1, 0xC]
+ movs r0, 0x2
+ strh r0, [r1, 0x10]
+ movs r0, 0x5
+ strh r0, [r1, 0x12]
+ movs r0, 0x32
+ strh r0, [r1, 0x14]
+ movs r0, 0
+ bl SetCameraPanningCallback
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081477E8: .4byte SealedChamberShakingEffect
+_081477EC: .4byte gTasks
+ thumb_func_end DoSealedChamberShakingEffect1
+
+ thumb_func_start DoSealedChamberShakingEffect2
+DoSealedChamberShakingEffect2: @ 81477F0
+ push {lr}
+ ldr r0, _08147824 @ =SealedChamberShakingEffect
+ movs r1, 0x9
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08147828 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ movs r0, 0
+ strh r0, [r1, 0xA]
+ strh r0, [r1, 0xC]
+ movs r0, 0x3
+ strh r0, [r1, 0x10]
+ movs r0, 0x5
+ strh r0, [r1, 0x12]
+ movs r0, 0x2
+ strh r0, [r1, 0x14]
+ movs r0, 0
+ bl SetCameraPanningCallback
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08147824: .4byte SealedChamberShakingEffect
+_08147828: .4byte gTasks
+ thumb_func_end DoSealedChamberShakingEffect2
+
+ thumb_func_start SealedChamberShakingEffect
+SealedChamberShakingEffect: @ 814782C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _0814788C @ =gTasks
+ adds r4, r0, r1
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ movs r2, 0x12
+ ldrsh r1, [r4, r2]
+ bl __modsi3
+ cmp r0, 0
+ bne _08147884
+ strh r0, [r4, 0xA]
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ ldrh r0, [r4, 0x10]
+ negs r0, r0
+ strh r0, [r4, 0x10]
+ movs r0, 0x10
+ ldrsh r1, [r4, r0]
+ movs r0, 0
+ bl SetCameraPanning
+ movs r2, 0xC
+ ldrsh r1, [r4, r2]
+ movs r2, 0x14
+ ldrsh r0, [r4, r2]
+ cmp r1, r0
+ bne _08147884
+ adds r0, r5, 0
+ bl DestroyTask
+ bl EnableBothScriptContexts
+ bl InstallCameraPanAheadCallback
+_08147884:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0814788C: .4byte gTasks
+ thumb_func_end SealedChamberShakingEffect
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/cable_club.s b/asm/cable_club.s
index c1275ee1d..4c9dca6af 100644
--- a/asm/cable_club.s
+++ b/asm/cable_club.s
@@ -810,10 +810,10 @@ sub_8083314: @ 8083314
cmp r4, r0
bne _080833B6
movs r4, 0
- ldr r6, _0808333C @ =gUnknown_0202FFC0
+ ldr r6, _0808333C @ =gTrainerCards
b _0808335A
.align 2, 0
-_0808333C: .4byte gUnknown_0202FFC0
+_0808333C: .4byte gTrainerCards
_08083340:
lsls r1, r4, 8
ldr r0, _08083394 @ =gBlockRecvBuffer
@@ -1031,7 +1031,7 @@ sub_80834E4: @ 80834E4
ldr r2, _08083504 @ =0x00001133
adds r0, r2, 0
strh r0, [r1]
- ldr r1, _08083508 @ =gUnknown_020239F8
+ ldr r1, _08083508 @ =gBattleTypeFlags
movs r0, 0
strh r0, [r1]
movs r0, 0x2
@@ -1042,7 +1042,7 @@ sub_80834E4: @ 80834E4
.align 2, 0
_08083500: .4byte gLinkType
_08083504: .4byte 0x00001133
-_08083508: .4byte gUnknown_020239F8
+_08083508: .4byte gBattleTypeFlags
thumb_func_end sub_80834E4
thumb_func_start sub_808350C
@@ -1055,7 +1055,7 @@ sub_808350C: @ 808350C
ldr r3, _08083534 @ =0x00003311
adds r0, r3, 0
strh r0, [r1]
- ldr r0, _08083538 @ =gUnknown_020239F8
+ ldr r0, _08083538 @ =gBattleTypeFlags
strh r2, [r0]
movs r0, 0x2
movs r1, 0x4
@@ -1066,7 +1066,7 @@ sub_808350C: @ 808350C
_0808352C: .4byte gScriptResult
_08083530: .4byte gLinkType
_08083534: .4byte 0x00003311
-_08083538: .4byte gUnknown_020239F8
+_08083538: .4byte gBattleTypeFlags
thumb_func_end sub_808350C
thumb_func_start sub_808353C
@@ -1185,7 +1185,7 @@ sub_8083614: @ 8083614
ldr r2, _08083634 @ =0x00004411
adds r0, r2, 0
strh r0, [r1]
- ldr r1, _08083638 @ =gUnknown_020239F8
+ ldr r1, _08083638 @ =gBattleTypeFlags
movs r0, 0
strh r0, [r1]
movs r0, 0x2
@@ -1196,7 +1196,7 @@ sub_8083614: @ 8083614
.align 2, 0
_08083630: .4byte gLinkType
_08083634: .4byte 0x00004411
-_08083638: .4byte gUnknown_020239F8
+_08083638: .4byte gBattleTypeFlags
thumb_func_end sub_8083614
thumb_func_start sub_808363C
@@ -1206,7 +1206,7 @@ sub_808363C: @ 808363C
ldr r2, _0808365C @ =0x00006601
adds r0, r2, 0
strh r0, [r1]
- ldr r1, _08083660 @ =gUnknown_020239F8
+ ldr r1, _08083660 @ =gBattleTypeFlags
movs r0, 0
strh r0, [r1]
movs r0, 0x4
@@ -1217,7 +1217,7 @@ sub_808363C: @ 808363C
.align 2, 0
_08083658: .4byte gLinkType
_0808365C: .4byte 0x00006601
-_08083660: .4byte gUnknown_020239F8
+_08083660: .4byte gBattleTypeFlags
thumb_func_end sub_808363C
thumb_func_start sub_8083664
@@ -1562,20 +1562,20 @@ _08083908:
beq _08083924
b _0808392E
_0808390E:
- ldr r1, _08083914 @ =gUnknown_020239F8
+ ldr r1, _08083914 @ =gBattleTypeFlags
movs r0, 0xA
b _0808392C
.align 2, 0
-_08083914: .4byte gUnknown_020239F8
+_08083914: .4byte gBattleTypeFlags
_08083918:
- ldr r1, _08083920 @ =gUnknown_020239F8
+ ldr r1, _08083920 @ =gBattleTypeFlags
movs r0, 0xB
b _0808392C
.align 2, 0
-_08083920: .4byte gUnknown_020239F8
+_08083920: .4byte gBattleTypeFlags
_08083924:
bl ReducePlayerPartyToThree
- ldr r1, _08083948 @ =gUnknown_020239F8
+ ldr r1, _08083948 @ =gBattleTypeFlags
movs r0, 0x4B
_0808392C:
strh r0, [r1]
@@ -1592,7 +1592,7 @@ _08083940:
pop {r0}
bx r0
.align 2, 0
-_08083948: .4byte gUnknown_020239F8
+_08083948: .4byte gBattleTypeFlags
_0808394C: .4byte sub_800E7C4
_08083950: .4byte gMain
_08083954: .4byte sub_8083958
@@ -1602,8 +1602,8 @@ _08083954: .4byte sub_8083958
sub_8083958: @ 8083958
push {lr}
bl call_map_music_set_to_zero
- bl copy_player_party_from_sav1
- bl copy_bags_and_unk_data_to_save_blocks
+ bl LoadPlayerParty
+ bl SavePlayerBag
bl sub_810FEFC
ldr r0, _08083990 @ =gSpecialVar_0x8004
ldrh r0, [r0]
@@ -1643,8 +1643,8 @@ sub_80839A4: @ 80839A4
cmp r1, 0x5
bne _080839C0
_080839B8:
- bl copy_player_party_from_sav1
- bl copy_bags_and_unk_data_to_save_blocks
+ bl LoadPlayerParty
+ bl SavePlayerBag
_080839C0:
movs r0, 0x7F
bl copy_saved_warp2_bank_and_enter_x_to_warp1
@@ -2066,49 +2066,4 @@ _08083CE8: .4byte gTasks
_08083CEC: .4byte sub_8083CA4
thumb_func_end unref_sub_8083CC8
- thumb_func_start unref_sub_8083CF0
-unref_sub_8083CF0: @ 8083CF0
- push {r4-r7,lr}
- ldr r0, _08083D38 @ =0x04000128
- ldr r4, [r0]
- lsls r4, 26
- lsrs r4, 30
- ldr r0, _08083D3C @ =gUnknown_03004DA0
- movs r1, 0xFF
- strb r1, [r0]
- ldr r1, _08083D40 @ =gUnknown_0839B24A
- bl StringAppend
- movs r5, 0
- ldr r0, _08083D44 @ =word_3002910
- movs r6, 0x1
- eors r4, r6
- lsls r4, 1
- adds r7, r4, r0
- movs r4, 0
-_08083D14:
- ldrh r0, [r7]
- asrs r0, r5
- ands r0, r6
- cmp r0, 0
- beq _08083D28
- ldr r1, _08083D48 @ =gUnknown_0839B22C
- adds r1, r4, r1
- ldr r0, _08083D3C @ =gUnknown_03004DA0
- bl StringAppend
-_08083D28:
- adds r4, 0x3
- adds r5, 0x1
- cmp r5, 0x9
- ble _08083D14
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08083D38: .4byte 0x04000128
-_08083D3C: .4byte gUnknown_03004DA0
-_08083D40: .4byte gUnknown_0839B24A
-_08083D44: .4byte word_3002910
-_08083D48: .4byte gUnknown_0839B22C
- thumb_func_end unref_sub_8083CF0
-
.align 2, 0 @ Don't pad with nop.
diff --git a/asm/calculate_base_damage.s b/asm/calculate_base_damage.s
deleted file mode 100644
index 54f53f1a2..000000000
--- a/asm/calculate_base_damage.s
+++ /dev/null
@@ -1,1165 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start CalculateBaseDamage
-CalculateBaseDamage: @ 803BA2C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x2C
- adds r7, r0, 0
- str r1, [sp, 0x4]
- str r2, [sp, 0x8]
- ldr r0, [sp, 0x4C]
- ldr r1, [sp, 0x50]
- ldr r2, [sp, 0x54]
- ldr r4, [sp, 0x58]
- lsls r3, 16
- lsrs r3, 16
- str r3, [sp, 0xC]
- lsls r0, 16
- lsrs r3, r0, 16
- lsls r1, 24
- lsrs r6, r1, 24
- lsls r2, 24
- lsrs r2, 24
- str r2, [sp, 0x10]
- lsls r4, 24
- lsrs r4, 24
- movs r5, 0
- cmp r3, 0
- bne _0803BA80
- ldr r2, _0803BA78 @ =gBattleMovePower
- ldr r1, _0803BA7C @ =gBattleMoves
- ldr r3, [sp, 0x8]
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x1]
- strh r0, [r2]
- b _0803BA84
- .align 2, 0
-_0803BA78: .4byte gBattleMovePower
-_0803BA7C: .4byte gBattleMoves
-_0803BA80:
- ldr r0, _0803BA9C @ =gBattleMovePower
- strh r3, [r0]
-_0803BA84:
- cmp r6, 0
- bne _0803BAA4
- ldr r1, _0803BAA0 @ =gBattleMoves
- ldr r6, [sp, 0x8]
- lsls r0, r6, 1
- adds r0, r6
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x2]
- mov r9, r0
- b _0803BAAE
- .align 2, 0
-_0803BA9C: .4byte gBattleMovePower
-_0803BAA0: .4byte gBattleMoves
-_0803BAA4:
- movs r0, 0x3F
- mov r9, r0
- mov r1, r9
- ands r1, r6
- mov r9, r1
-_0803BAAE:
- ldrh r6, [r7, 0x2]
- ldr r2, [sp, 0x4]
- ldrh r2, [r2, 0x4]
- str r2, [sp, 0x14]
- ldrh r3, [r7, 0x8]
- mov r8, r3
- ldr r0, [sp, 0x4]
- ldrh r0, [r0, 0xA]
- str r0, [sp, 0x18]
- ldrh r0, [r7, 0x2E]
- cmp r0, 0xAF
- bne _0803BAE0
- ldr r1, _0803BADC @ =gEnigmaBerries
- ldr r2, [sp, 0x10]
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r3, [r0, 0x7]
- mov r10, r3
- ldrb r0, [r0, 0x1A]
- b _0803BAF6
- .align 2, 0
-_0803BADC: .4byte gEnigmaBerries
-_0803BAE0:
- ldrh r0, [r7, 0x2E]
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- ldrh r0, [r7, 0x2E]
- bl ItemId_GetHoldEffectParam
- lsls r0, 24
- lsrs r0, 24
-_0803BAF6:
- str r0, [sp, 0x20]
- ldr r1, [sp, 0x4]
- ldrh r0, [r1, 0x2E]
- cmp r0, 0xAF
- bne _0803BB26
- ldr r1, _0803BB10 @ =gEnigmaBerries
- lsls r0, r4, 3
- subs r0, r4
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x7]
- str r0, [sp, 0x1C]
- b _0803BB3C
- .align 2, 0
-_0803BB10: .4byte gEnigmaBerries
-_0803BB14:
- ldr r0, [sp, 0x20]
- adds r0, 0x64
- muls r0, r6
- movs r1, 0x64
- bl __divsi3
- lsls r0, 16
- lsrs r6, r0, 16
- b _0803BCDC
-_0803BB26:
- ldr r2, [sp, 0x4]
- ldrh r0, [r2, 0x2E]
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x1C]
- ldr r3, [sp, 0x4]
- ldrh r0, [r3, 0x2E]
- bl ItemId_GetHoldEffectParam
-_0803BB3C:
- adds r0, r7, 0
- adds r0, 0x20
- ldrb r1, [r0]
- str r0, [sp, 0x24]
- cmp r1, 0x25
- beq _0803BB4C
- cmp r1, 0x4A
- bne _0803BB50
-_0803BB4C:
- lsls r0, r6, 17
- lsrs r6, r0, 16
-_0803BB50:
- ldr r0, _0803BCB8 @ =gUnknown_020239F8
- ldrh r1, [r0]
- ldr r0, _0803BCBC @ =0x00000902
- ands r0, r1
- cmp r0, 0
- beq _0803BB5E
- b _0803BC78
-_0803BB5E:
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _0803BB98
- ldr r0, _0803BCC0 @ =gTrainerBattleOpponent
- ldrh r1, [r0]
- movs r0, 0x80
- lsls r0, 3
- cmp r1, r0
- beq _0803BB98
- ldr r0, _0803BCC4 @ =0x00000807
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _0803BB98
- ldr r0, [sp, 0x10]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _0803BB98
- movs r0, 0x6E
- muls r0, r6
- movs r1, 0x64
- bl __divsi3
- lsls r0, 16
- lsrs r6, r0, 16
-_0803BB98:
- ldr r0, _0803BCB8 @ =gUnknown_020239F8
- ldrh r1, [r0]
- ldr r0, _0803BCBC @ =0x00000902
- ands r0, r1
- cmp r0, 0
- bne _0803BC78
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _0803BBE2
- ldr r0, _0803BCC0 @ =gTrainerBattleOpponent
- ldrh r1, [r0]
- movs r0, 0x80
- lsls r0, 3
- cmp r1, r0
- beq _0803BBE2
- ldr r0, _0803BCC8 @ =0x0000080b
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _0803BBE2
- adds r0, r4, 0
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _0803BBE2
- movs r0, 0x6E
- ldr r1, [sp, 0x14]
- muls r0, r1
- movs r1, 0x64
- bl __divsi3
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0x14]
-_0803BBE2:
- ldr r0, _0803BCB8 @ =gUnknown_020239F8
- ldrh r1, [r0]
- ldr r0, _0803BCBC @ =0x00000902
- ands r0, r1
- cmp r0, 0
- bne _0803BC78
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _0803BC2E
- ldr r0, _0803BCC0 @ =gTrainerBattleOpponent
- ldrh r1, [r0]
- movs r0, 0x80
- lsls r0, 3
- cmp r1, r0
- beq _0803BC2E
- ldr r0, _0803BCCC @ =0x0000080d
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _0803BC2E
- ldr r0, [sp, 0x10]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _0803BC2E
- movs r0, 0x6E
- mov r2, r8
- muls r2, r0
- adds r0, r2, 0
- movs r1, 0x64
- bl __divsi3
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
-_0803BC2E:
- ldr r0, _0803BCB8 @ =gUnknown_020239F8
- ldrh r1, [r0]
- ldr r0, _0803BCBC @ =0x00000902
- ands r0, r1
- cmp r0, 0
- bne _0803BC78
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _0803BC78
- ldr r0, _0803BCC0 @ =gTrainerBattleOpponent
- ldrh r1, [r0]
- movs r0, 0x80
- lsls r0, 3
- cmp r1, r0
- beq _0803BC78
- ldr r0, _0803BCCC @ =0x0000080d
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _0803BC78
- adds r0, r4, 0
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _0803BC78
- movs r0, 0x6E
- ldr r3, [sp, 0x18]
- muls r0, r3
- movs r1, 0x64
- bl __divsi3
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0x18]
-_0803BC78:
- movs r2, 0
- ldr r4, _0803BCD0 @ =gHoldEffectToType
- ldr r0, [sp, 0x4]
- adds r0, 0x20
- str r0, [sp, 0x28]
- adds r3, r4, 0
-_0803BC84:
- lsls r1, r2, 1
- ldrb r0, [r3]
- cmp r10, r0
- bne _0803BCD4
- adds r0, r4, 0x1
- adds r0, r1, r0
- ldrb r0, [r0]
- cmp r9, r0
- bne _0803BCD4
- mov r1, r9
- cmp r1, 0x8
- bhi _0803BC9E
- b _0803BB14
-_0803BC9E:
- ldr r0, [sp, 0x20]
- adds r0, 0x64
- mov r2, r8
- muls r2, r0
- adds r0, r2, 0
- movs r1, 0x64
- bl __divsi3
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- b _0803BCDC
- .align 2, 0
-_0803BCB8: .4byte gUnknown_020239F8
-_0803BCBC: .4byte 0x00000902
-_0803BCC0: .4byte gTrainerBattleOpponent
-_0803BCC4: .4byte 0x00000807
-_0803BCC8: .4byte 0x0000080b
-_0803BCCC: .4byte 0x0000080d
-_0803BCD0: .4byte gHoldEffectToType
-_0803BCD4:
- adds r3, 0x2
- adds r2, 0x1
- cmp r2, 0x10
- bls _0803BC84
-_0803BCDC:
- mov r3, r10
- cmp r3, 0x1D
- bne _0803BCF0
- movs r0, 0x96
- muls r0, r6
- movs r1, 0x64
- bl __divsi3
- lsls r0, 16
- lsrs r6, r0, 16
-_0803BCF0:
- mov r0, r10
- cmp r0, 0x22
- bne _0803BD28
- ldr r0, _0803BFDC @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x80
- lsls r0, 1
- ands r0, r1
- cmp r0, 0
- bne _0803BD28
- ldr r1, _0803BFE0 @ =0xfffffe69
- adds r0, r1, 0
- ldrh r2, [r7]
- adds r0, r2
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bhi _0803BD28
- movs r0, 0x96
- mov r3, r8
- muls r3, r0
- adds r0, r3, 0
- movs r1, 0x64
- bl __divsi3
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
-_0803BD28:
- ldr r0, [sp, 0x1C]
- cmp r0, 0x22
- bne _0803BD60
- ldr r0, _0803BFDC @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x80
- lsls r0, 1
- ands r0, r1
- cmp r0, 0
- bne _0803BD60
- ldr r1, _0803BFE0 @ =0xfffffe69
- adds r0, r1, 0
- ldr r2, [sp, 0x4]
- ldrh r2, [r2]
- adds r0, r2
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bhi _0803BD60
- movs r0, 0x96
- ldr r3, [sp, 0x18]
- muls r0, r3
- movs r1, 0x64
- bl __divsi3
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0x18]
-_0803BD60:
- mov r0, r10
- cmp r0, 0x23
- bne _0803BD76
- ldrh r1, [r7]
- ldr r0, _0803BFE4 @ =0x00000175
- cmp r1, r0
- bne _0803BD76
- mov r1, r8
- lsls r0, r1, 17
- lsrs r0, 16
- mov r8, r0
-_0803BD76:
- ldr r2, [sp, 0x1C]
- cmp r2, 0x24
- bne _0803BD8E
- ldr r3, [sp, 0x4]
- ldrh r1, [r3]
- ldr r0, _0803BFE4 @ =0x00000175
- cmp r1, r0
- bne _0803BD8E
- ldr r1, [sp, 0x18]
- lsls r0, r1, 17
- lsrs r0, 16
- str r0, [sp, 0x18]
-_0803BD8E:
- mov r2, r10
- cmp r2, 0x2D
- bne _0803BDA2
- ldrh r0, [r7]
- cmp r0, 0x19
- bne _0803BDA2
- mov r3, r8
- lsls r0, r3, 17
- lsrs r0, 16
- mov r8, r0
-_0803BDA2:
- ldr r0, [sp, 0x1C]
- cmp r0, 0x40
- bne _0803BDB8
- ldr r1, [sp, 0x4]
- ldrh r0, [r1]
- cmp r0, 0x84
- bne _0803BDB8
- ldr r2, [sp, 0x14]
- lsls r0, r2, 17
- lsrs r0, 16
- str r0, [sp, 0x14]
-_0803BDB8:
- mov r3, r10
- cmp r3, 0x41
- bne _0803BDCE
- ldrh r0, [r7]
- subs r0, 0x68
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bhi _0803BDCE
- lsls r0, r6, 17
- lsrs r6, r0, 16
-_0803BDCE:
- ldr r1, [sp, 0x28]
- ldrb r0, [r1]
- cmp r0, 0x2F
- bne _0803BDE6
- mov r2, r9
- cmp r2, 0xA
- beq _0803BDE0
- cmp r2, 0xF
- bne _0803BDE6
-_0803BDE0:
- mov r3, r8
- lsrs r3, 1
- mov r8, r3
-_0803BDE6:
- ldr r0, [sp, 0x24]
- ldrb r4, [r0]
- cmp r4, 0x37
- bne _0803BDFC
- movs r0, 0x96
- muls r0, r6
- movs r1, 0x64
- bl __divsi3
- lsls r0, 16
- lsrs r6, r0, 16
-_0803BDFC:
- cmp r4, 0x39
- bne _0803BE2A
- movs r0, 0
- str r0, [sp]
- movs r0, 0xE
- movs r1, 0
- movs r2, 0x3A
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- cmp r0, 0
- beq _0803BE2A
- movs r0, 0x96
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- movs r1, 0x64
- bl __divsi3
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
-_0803BE2A:
- ldr r2, [sp, 0x24]
- ldrb r0, [r2]
- cmp r0, 0x3A
- bne _0803BE5C
- movs r0, 0
- str r0, [sp]
- movs r0, 0xE
- movs r1, 0
- movs r2, 0x39
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- cmp r0, 0
- beq _0803BE5C
- movs r0, 0x96
- mov r3, r8
- muls r3, r0
- adds r0, r3, 0
- movs r1, 0x64
- bl __divsi3
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
-_0803BE5C:
- ldr r1, [sp, 0x24]
- ldrb r0, [r1]
- cmp r0, 0x3E
- bne _0803BE78
- ldr r0, [r7, 0x4C]
- cmp r0, 0
- beq _0803BE78
- movs r0, 0x96
- muls r0, r6
- movs r1, 0x64
- bl __divsi3
- lsls r0, 16
- lsrs r6, r0, 16
-_0803BE78:
- ldr r2, [sp, 0x28]
- ldrb r0, [r2]
- cmp r0, 0x3F
- bne _0803BE9A
- ldr r3, [sp, 0x4]
- ldr r0, [r3, 0x4C]
- cmp r0, 0
- beq _0803BE9A
- movs r0, 0x96
- ldr r1, [sp, 0x14]
- muls r0, r1
- movs r1, 0x64
- bl __divsi3
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0x14]
-_0803BE9A:
- mov r2, r9
- cmp r2, 0xD
- bne _0803BEBE
- movs r0, 0
- str r0, [sp]
- movs r0, 0xE
- movs r1, 0
- movs r2, 0
- movs r3, 0xFD
- bl sub_8018324
- lsls r0, 24
- cmp r0, 0
- beq _0803BEBE
- ldr r1, _0803BFE8 @ =gBattleMovePower
- ldrh r0, [r1]
- lsrs r0, 1
- strh r0, [r1]
-_0803BEBE:
- mov r3, r9
- cmp r3, 0xA
- bne _0803BEE2
- movs r0, 0
- str r0, [sp]
- movs r0, 0xE
- movs r1, 0
- movs r2, 0
- movs r3, 0xFE
- bl sub_8018324
- lsls r0, 24
- cmp r0, 0
- beq _0803BEE2
- ldr r1, _0803BFE8 @ =gBattleMovePower
- ldrh r0, [r1]
- lsrs r0, 1
- strh r0, [r1]
-_0803BEE2:
- mov r0, r9
- cmp r0, 0xC
- bne _0803BF12
- ldr r1, [sp, 0x24]
- ldrb r0, [r1]
- cmp r0, 0x41
- bne _0803BF12
- ldrh r0, [r7, 0x2C]
- movs r1, 0x3
- bl __udivsi3
- ldrh r1, [r7, 0x28]
- lsls r0, 16
- lsrs r0, 16
- cmp r1, r0
- bhi _0803BF12
- ldr r4, _0803BFE8 @ =gBattleMovePower
- ldrh r1, [r4]
- movs r0, 0x96
- muls r0, r1
- movs r1, 0x64
- bl __divsi3
- strh r0, [r4]
-_0803BF12:
- mov r2, r9
- cmp r2, 0xA
- bne _0803BF42
- ldr r3, [sp, 0x24]
- ldrb r0, [r3]
- cmp r0, 0x42
- bne _0803BF42
- ldrh r0, [r7, 0x2C]
- movs r1, 0x3
- bl __udivsi3
- ldrh r1, [r7, 0x28]
- lsls r0, 16
- lsrs r0, 16
- cmp r1, r0
- bhi _0803BF42
- ldr r4, _0803BFE8 @ =gBattleMovePower
- ldrh r1, [r4]
- movs r0, 0x96
- muls r0, r1
- movs r1, 0x64
- bl __divsi3
- strh r0, [r4]
-_0803BF42:
- mov r0, r9
- cmp r0, 0xB
- bne _0803BF72
- ldr r1, [sp, 0x24]
- ldrb r0, [r1]
- cmp r0, 0x43
- bne _0803BF72
- ldrh r0, [r7, 0x2C]
- movs r1, 0x3
- bl __udivsi3
- ldrh r1, [r7, 0x28]
- lsls r0, 16
- lsrs r0, 16
- cmp r1, r0
- bhi _0803BF72
- ldr r4, _0803BFE8 @ =gBattleMovePower
- ldrh r1, [r4]
- movs r0, 0x96
- muls r0, r1
- movs r1, 0x64
- bl __divsi3
- strh r0, [r4]
-_0803BF72:
- mov r2, r9
- cmp r2, 0x6
- bne _0803BFA2
- ldr r3, [sp, 0x24]
- ldrb r0, [r3]
- cmp r0, 0x44
- bne _0803BFA2
- ldrh r0, [r7, 0x2C]
- movs r1, 0x3
- bl __udivsi3
- ldrh r1, [r7, 0x28]
- lsls r0, 16
- lsrs r0, 16
- cmp r1, r0
- bhi _0803BFA2
- ldr r4, _0803BFE8 @ =gBattleMovePower
- ldrh r1, [r4]
- movs r0, 0x96
- muls r0, r1
- movs r1, 0x64
- bl __divsi3
- strh r0, [r4]
-_0803BFA2:
- ldr r2, _0803BFEC @ =gBattleMoves
- ldr r0, _0803BFF0 @ =gUnknown_02024BE6
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0x7
- bne _0803BFBC
- ldr r0, [sp, 0x14]
- lsrs r0, 1
- str r0, [sp, 0x14]
-_0803BFBC:
- mov r1, r9
- cmp r1, 0x8
- bls _0803BFC4
- b _0803C122
-_0803BFC4:
- ldr r0, _0803BFF4 @ =gCritMultiplier
- ldrb r1, [r0]
- adds r4, r0, 0
- cmp r1, 0x2
- bne _0803C000
- movs r0, 0x19
- ldrsb r0, [r7, r0]
- cmp r0, 0x6
- ble _0803BFFC
- ldr r2, _0803BFF8 @ =gStatStageRatios
- b _0803C006
- .align 2, 0
-_0803BFDC: .4byte gUnknown_020239F8
-_0803BFE0: .4byte 0xfffffe69
-_0803BFE4: .4byte 0x00000175
-_0803BFE8: .4byte gBattleMovePower
-_0803BFEC: .4byte gBattleMoves
-_0803BFF0: .4byte gUnknown_02024BE6
-_0803BFF4: .4byte gCritMultiplier
-_0803BFF8: .4byte gStatStageRatios
-_0803BFFC:
- adds r5, r6, 0
- b _0803C01E
-_0803C000:
- ldr r2, _0803C050 @ =gStatStageRatios
- movs r0, 0x19
- ldrsb r0, [r7, r0]
-_0803C006:
- lsls r0, 1
- adds r1, r0, r2
- ldrb r1, [r1]
- adds r5, r6, 0
- muls r5, r1
- adds r2, 0x1
- adds r0, r2
- ldrb r1, [r0]
- adds r0, r5, 0
- bl __divsi3
- adds r5, r0, 0
-_0803C01E:
- ldr r0, _0803C054 @ =gBattleMovePower
- ldrh r0, [r0]
- muls r5, r0
- adds r0, r7, 0
- adds r0, 0x2A
- ldrb r0, [r0]
- lsls r0, 1
- movs r1, 0x5
- bl __divsi3
- adds r0, 0x2
- muls r5, r0
- ldrb r0, [r4]
- cmp r0, 0x2
- bne _0803C05C
- ldr r2, [sp, 0x4]
- movs r0, 0x1A
- ldrsb r0, [r2, r0]
- cmp r0, 0x5
- bgt _0803C058
- ldr r2, _0803C050 @ =gStatStageRatios
- ldr r3, [sp, 0x4]
- movs r0, 0x1A
- ldrsb r0, [r3, r0]
- b _0803C064
- .align 2, 0
-_0803C050: .4byte gStatStageRatios
-_0803C054: .4byte gBattleMovePower
-_0803C058:
- ldr r3, [sp, 0x14]
- b _0803C07E
-_0803C05C:
- ldr r2, _0803C0DC @ =gStatStageRatios
- ldr r1, [sp, 0x4]
- movs r0, 0x1A
- ldrsb r0, [r1, r0]
-_0803C064:
- lsls r0, 1
- adds r1, r0, r2
- ldrb r1, [r1]
- ldr r6, [sp, 0x14]
- adds r3, r6, 0
- muls r3, r1
- adds r2, 0x1
- adds r0, r2
- ldrb r1, [r0]
- adds r0, r3, 0
- bl __divsi3
- adds r3, r0, 0
-_0803C07E:
- adds r0, r5, 0
- adds r1, r3, 0
- bl __divsi3
- adds r5, r0, 0
- movs r1, 0x32
- bl __divsi3
- adds r5, r0, 0
- ldr r0, [r7, 0x4C]
- movs r1, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0803C0A8
- ldr r1, [sp, 0x24]
- ldrb r0, [r1]
- cmp r0, 0x3E
- beq _0803C0A8
- lsrs r0, r5, 31
- adds r0, r5, r0
- asrs r5, r0, 1
-_0803C0A8:
- movs r0, 0x1
- ldr r2, [sp, 0xC]
- ands r0, r2
- cmp r0, 0
- beq _0803C0EA
- ldrb r1, [r4]
- cmp r1, 0x1
- bne _0803C0EA
- ldr r0, _0803C0E0 @ =gUnknown_020239F8
- ldrh r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _0803C0E4
- movs r0, 0x2
- bl sub_803C348
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _0803C0E4
- adds r0, r5, 0
- movs r1, 0x3
- bl __divsi3
- lsls r5, r0, 1
- b _0803C0EA
- .align 2, 0
-_0803C0DC: .4byte gStatStageRatios
-_0803C0E0: .4byte gUnknown_020239F8
-_0803C0E4:
- lsrs r0, r5, 31
- adds r0, r5, r0
- asrs r5, r0, 1
-_0803C0EA:
- ldr r0, _0803C148 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0803C11C
- ldr r0, _0803C14C @ =gBattleMoves
- ldr r3, [sp, 0x8]
- lsls r1, r3, 1
- adds r1, r3
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x6]
- cmp r0, 0x8
- bne _0803C11C
- movs r0, 0x2
- bl sub_803C348
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _0803C11C
- lsrs r0, r5, 31
- adds r0, r5, r0
- asrs r5, r0, 1
-_0803C11C:
- cmp r5, 0
- bne _0803C122
- movs r5, 0x1
-_0803C122:
- mov r6, r9
- cmp r6, 0x9
- bne _0803C12A
- movs r5, 0
-_0803C12A:
- mov r0, r9
- cmp r0, 0x9
- bhi _0803C132
- b _0803C330
-_0803C132:
- ldr r0, _0803C150 @ =gCritMultiplier
- ldrb r1, [r0]
- adds r4, r0, 0
- cmp r1, 0x2
- bne _0803C15C
- movs r0, 0x1C
- ldrsb r0, [r7, r0]
- cmp r0, 0x6
- ble _0803C158
- ldr r2, _0803C154 @ =gStatStageRatios
- b _0803C162
- .align 2, 0
-_0803C148: .4byte gUnknown_020239F8
-_0803C14C: .4byte gBattleMoves
-_0803C150: .4byte gCritMultiplier
-_0803C154: .4byte gStatStageRatios
-_0803C158:
- mov r5, r8
- b _0803C17A
-_0803C15C:
- ldr r2, _0803C1A8 @ =gStatStageRatios
- movs r0, 0x1C
- ldrsb r0, [r7, r0]
-_0803C162:
- lsls r0, 1
- adds r1, r0, r2
- ldrb r1, [r1]
- mov r5, r8
- muls r5, r1
- adds r2, 0x1
- adds r0, r2
- ldrb r1, [r0]
- adds r0, r5, 0
- bl __divsi3
- adds r5, r0, 0
-_0803C17A:
- ldr r0, _0803C1AC @ =gBattleMovePower
- ldrh r0, [r0]
- muls r5, r0
- adds r0, r7, 0
- adds r0, 0x2A
- ldrb r0, [r0]
- lsls r0, 1
- movs r1, 0x5
- bl __divsi3
- adds r0, 0x2
- muls r5, r0
- ldrb r0, [r4]
- cmp r0, 0x2
- bne _0803C1B4
- ldr r1, [sp, 0x4]
- movs r0, 0x1D
- ldrsb r0, [r1, r0]
- cmp r0, 0x5
- bgt _0803C1B0
- ldr r2, _0803C1A8 @ =gStatStageRatios
- b _0803C1BC
- .align 2, 0
-_0803C1A8: .4byte gStatStageRatios
-_0803C1AC: .4byte gBattleMovePower
-_0803C1B0:
- ldr r3, [sp, 0x18]
- b _0803C1D6
-_0803C1B4:
- ldr r2, _0803C21C @ =gStatStageRatios
- ldr r1, [sp, 0x4]
- movs r0, 0x1D
- ldrsb r0, [r1, r0]
-_0803C1BC:
- lsls r0, 1
- adds r1, r0, r2
- ldrb r1, [r1]
- ldr r6, [sp, 0x18]
- adds r3, r6, 0
- muls r3, r1
- adds r2, 0x1
- adds r0, r2
- ldrb r1, [r0]
- adds r0, r3, 0
- bl __divsi3
- adds r3, r0, 0
-_0803C1D6:
- adds r0, r5, 0
- adds r1, r3, 0
- bl __divsi3
- adds r5, r0, 0
- movs r1, 0x32
- bl __divsi3
- adds r5, r0, 0
- movs r0, 0x2
- ldr r1, [sp, 0xC]
- ands r0, r1
- cmp r0, 0
- beq _0803C22A
- ldrb r1, [r4]
- cmp r1, 0x1
- bne _0803C22A
- ldr r0, _0803C220 @ =gUnknown_020239F8
- ldrh r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _0803C224
- movs r0, 0x2
- bl sub_803C348
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _0803C224
- adds r0, r5, 0
- movs r1, 0x3
- bl __divsi3
- lsls r5, r0, 1
- b _0803C22A
- .align 2, 0
-_0803C21C: .4byte gStatStageRatios
-_0803C220: .4byte gUnknown_020239F8
-_0803C224:
- lsrs r0, r5, 31
- adds r0, r5, r0
- asrs r5, r0, 1
-_0803C22A:
- ldr r0, _0803C2A4 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0803C25C
- ldr r0, _0803C2A8 @ =gBattleMoves
- ldr r2, [sp, 0x8]
- lsls r1, r2, 1
- adds r1, r2
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x6]
- cmp r0, 0x8
- bne _0803C25C
- movs r0, 0x2
- bl sub_803C348
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _0803C25C
- lsrs r0, r5, 31
- adds r0, r5, r0
- asrs r5, r0, 1
-_0803C25C:
- movs r0, 0
- str r0, [sp]
- movs r0, 0xE
- movs r1, 0
- movs r2, 0xD
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _0803C30C
- str r0, [sp]
- movs r0, 0xE
- movs r1, 0
- movs r2, 0x4D
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- cmp r0, 0
- bne _0803C30C
- ldr r2, _0803C2AC @ =word_2024DB8
- ldrh r1, [r2]
- movs r0, 0x1
- ands r0, r1
- adds r4, r2, 0
- cmp r0, 0
- beq _0803C2C4
- mov r3, r9
- cmp r3, 0xA
- beq _0803C2B0
- cmp r3, 0xB
- beq _0803C2B8
- b _0803C2C4
- .align 2, 0
-_0803C2A4: .4byte gUnknown_020239F8
-_0803C2A8: .4byte gBattleMoves
-_0803C2AC: .4byte word_2024DB8
-_0803C2B0:
- lsrs r0, r5, 31
- adds r0, r5, r0
- asrs r5, r0, 1
- b _0803C2C4
-_0803C2B8:
- lsls r0, r5, 4
- subs r0, r5
- movs r1, 0xA
- bl __divsi3
- adds r5, r0, 0
-_0803C2C4:
- ldrh r1, [r4]
- movs r0, 0x9F
- ands r0, r1
- cmp r0, 0
- beq _0803C2DC
- ldr r0, _0803C2F4 @ =gUnknown_02024BE6
- ldrh r0, [r0]
- cmp r0, 0x4C
- bne _0803C2DC
- lsrs r0, r5, 31
- adds r0, r5, r0
- asrs r5, r0, 1
-_0803C2DC:
- ldrh r1, [r4]
- movs r0, 0x60
- ands r0, r1
- cmp r0, 0
- beq _0803C30C
- mov r6, r9
- cmp r6, 0xA
- beq _0803C2F8
- cmp r6, 0xB
- beq _0803C306
- b _0803C30C
- .align 2, 0
-_0803C2F4: .4byte gUnknown_02024BE6
-_0803C2F8:
- lsls r0, r5, 4
- subs r0, r5
- movs r1, 0xA
- bl __divsi3
- adds r5, r0, 0
- b _0803C30C
-_0803C306:
- lsrs r0, r5, 31
- adds r0, r5, r0
- asrs r5, r0, 1
-_0803C30C:
- ldr r1, _0803C344 @ =0x02017100
- ldr r2, [sp, 0x10]
- lsls r0, r2, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0803C330
- mov r3, r9
- cmp r3, 0xA
- bne _0803C330
- lsls r0, r5, 4
- subs r0, r5
- movs r1, 0xA
- bl __divsi3
- adds r5, r0, 0
-_0803C330:
- adds r0, r5, 0x2
- add sp, 0x2C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0803C344: .4byte 0x02017100
- thumb_func_end CalculateBaseDamage
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/choose_party.s b/asm/choose_party.s
index 21988162b..c895e71e0 100644
--- a/asm/choose_party.s
+++ b/asm/choose_party.s
@@ -113,7 +113,7 @@ _08121EC0:
muls r2, r3
ldr r3, _08121EF0 @ =gPlayerParty
adds r2, r3
- bl sub_806D90C
+ bl TryCreatePartyMenuMonIcon
b _08122020
.align 2, 0
_08121EE8: .4byte 0x00000266
@@ -127,7 +127,7 @@ _08121EF4:
adds r1, r4, r0
b _08121FE8
_08121F00:
- bl sub_806DA98
+ bl LoadHeldItemIconGraphics
ldr r1, _08121F10 @ =0x0201b000
movs r2, 0x99
lsls r2, 2
@@ -140,7 +140,7 @@ _08121F14:
lsls r1, 2
adds r0, r4, r1
ldrb r0, [r0]
- bl sub_806DC34
+ bl CreateHeldItemIcons_806DC34
movs r2, 0x99
lsls r2, 2
adds r1, r4, r2
@@ -167,7 +167,7 @@ _08121F28:
.align 2, 0
_08121F50: .4byte 0x00000266
_08121F54:
- bl sub_806E334
+ bl PartyMenuPrintMonsLevelOrStatus
ldr r1, _08121F64 @ =0x0201b000
movs r2, 0x99
lsls r2, 2
@@ -176,7 +176,7 @@ _08121F54:
.align 2, 0
_08121F64: .4byte 0x0201b000
_08121F68:
- bl sub_806E0C4
+ bl PrintPartyMenuMonNicknames
b _08121FE0
_08121F6E:
movs r5, 0
@@ -1035,7 +1035,7 @@ sub_81225D4: @ 81225D4
ldr r3, _08122658 @ =sub_81225A4
str r5, [sp]
adds r1, r4, 0
- bl sub_809D8BC
+ bl ShowPokemonSummaryScreen
_08122632:
add sp, 0x4
pop {r4,r5}
@@ -1348,7 +1348,7 @@ _08122890:
adds r1, r4, r2
b _081228CA
_081228A4:
- bl sub_806DA98
+ bl LoadHeldItemIconGraphics
b _081228C2
_081228AA:
movs r1, 0x98
@@ -1407,7 +1407,7 @@ _081228F0:
adds r1, r5, 0
movs r2, 0x3
adds r3, r4, 0
- bl sub_806D880
+ bl CreatePartyMenuMonIcon
_08122912:
ldr r0, _0812294C @ =gUnknown_02023A00
lsls r1, r5, 5
@@ -1421,7 +1421,7 @@ _08122912:
adds r0, r6, 0
adds r1, r4, 0
movs r2, 0x3
- bl sub_806D99C
+ bl CreateMonIcon_806D99C
adds r0, r6, 0
adds r1, r4, 0
bl sub_806D50C
@@ -1464,7 +1464,7 @@ _08122958:
lsrs r2, 16
adds r0, r6, 0
adds r1, r5, 0
- bl sub_806DCD4
+ bl CreateHeldItemIcon_806DCD4
_08122984:
ldr r0, _081229B4 @ =gUnknown_02023A00
lsls r1, r5, 5
@@ -1477,7 +1477,7 @@ _08122984:
lsrs r1, 24
ldrh r2, [r2, 0x2]
adds r0, r6, 0
- bl sub_806DCD4
+ bl CreateHeldItemIcon_806DCD4
_0812299E:
adds r0, r5, 0x1
lsls r0, 24
@@ -1510,9 +1510,9 @@ _081229C0:
adds r0, r5, 0
movs r1, 0x3
adds r2, r4, 0
- bl sub_806E4A4
+ bl PartyMenuPrintHP
adds r0, r4, 0
- bl sub_80A1CD8
+ bl GetMonStatusAndPokerus
lsls r0, 24
lsrs r0, 24
cmp r0, 0
@@ -1524,7 +1524,7 @@ _081229C0:
lsrs r2, 24
adds r0, r5, 0
movs r1, 0x3
- bl sub_806E104
+ bl PartyMenuPutStatusTilemap
b _08122A12
.align 2, 0
_08122A00: .4byte gPlayerParty
@@ -1534,7 +1534,7 @@ _08122A04:
adds r2, r6
adds r0, r5, 0
movs r1, 0x3
- bl sub_806E294
+ bl PartyMenuPrintLevel
_08122A12:
adds r4, r5, 0
muls r4, r7
@@ -1542,15 +1542,15 @@ _08122A12:
adds r0, r5, 0
movs r1, 0x3
adds r2, r4, 0
- bl sub_806E3C0
+ bl PartyMenuPutNicknameTilemap
adds r0, r5, 0
movs r1, 0x3
adds r2, r4, 0
- bl sub_806E050
+ bl PrintPartyMenuMonNickname
adds r0, r5, 0
movs r1, 0x3
adds r2, r4, 0
- bl sub_806E630
+ bl PartyMenuDrawHPBar
_08122A36:
adds r0, r5, 0x1
lsls r0, 24
@@ -1690,7 +1690,7 @@ _08122B2E:
ldrh r3, [r6, 0x12]
adds r0, r5, 0
movs r1, 0x3
- bl sub_806E420
+ bl PartyMenuDoPrintHP
ldrh r0, [r6, 0x10]
cmp r0, 0
bne _08122B64
@@ -1715,7 +1715,7 @@ _08122B76:
lsls r2, 24
lsrs r2, 24
movs r1, 0x3
- bl sub_806E104
+ bl PartyMenuPutStatusTilemap
b _08122B96
.align 2, 0
_08122B88: .4byte gUnknown_02023A14
@@ -1723,7 +1723,7 @@ _08122B8C:
ldrb r2, [r6, 0xF]
adds r0, r5, 0
movs r1, 0x3
- bl sub_806E1F4
+ bl PartyMenuDoPrintLevel
_08122B96:
mov r2, r10
adds r6, r7, r2
@@ -1736,14 +1736,14 @@ _08122B96:
str r5, [sp]
movs r2, 0x3
adds r3, r4, 0
- bl sub_806E35C
+ bl PartyMenuDoPutNicknameTilemap
mov r0, r9
adds r1, r5, 0
bl StringCopy
mov r0, r9
bl StringGetEnd10
mov r0, r9
- bl sub_814A568
+ bl SanitizeNameString
adds r0, r4, 0
movs r1, 0x3
mov r2, r9
@@ -1752,7 +1752,7 @@ _08122B96:
ldrh r3, [r6, 0x12]
adds r0, r4, 0
movs r1, 0x3
- bl sub_806E574
+ bl PartyMenuDoDrawHPBar
_08122BDA:
mov r0, r8
adds r0, 0x1
@@ -1873,7 +1873,7 @@ _08122CA8:
muls r2, r3
ldr r3, _08122CD8 @ =gPlayerParty
adds r2, r3
- bl sub_806D90C
+ bl TryCreatePartyMenuMonIcon
b _08122D84
.align 2, 0
_08122CD0: .4byte 0x00000266
@@ -1887,14 +1887,14 @@ _08122CDC:
adds r1, r4, r0
b _08122D50
_08122CE8:
- bl sub_806DA98
+ bl LoadHeldItemIconGraphics
b _08122D48
_08122CEE:
movs r1, 0x98
lsls r1, 2
adds r0, r4, r1
ldrb r0, [r0]
- bl sub_806DC34
+ bl CreateHeldItemIcons_806DC34
movs r2, 0x99
lsls r2, 2
adds r1, r4, r2
@@ -1921,10 +1921,10 @@ _08122D02:
.align 2, 0
_08122D28: .4byte 0x00000266
_08122D2C:
- bl sub_806E334
+ bl PartyMenuPrintMonsLevelOrStatus
b _08122D48
_08122D32:
- bl sub_806E0C4
+ bl PrintPartyMenuMonNicknames
ldr r1, _08122D40 @ =0x0201b000
movs r0, 0x99
lsls r0, 2
@@ -2335,7 +2335,7 @@ sub_8123034: @ 8123034
ldr r3, _081230B8 @ =sub_8123004
str r5, [sp]
adds r1, r4, 0
- bl sub_809D8BC
+ bl ShowPokemonSummaryScreen
_08123092:
add sp, 0x4
pop {r4,r5}
diff --git a/asm/contest.s b/asm/contest.s
index 59fd22aef..c98f5db0d 100644
--- a/asm/contest.s
+++ b/asm/contest.s
@@ -13,12 +13,12 @@ nullsub_89: @ 80AB1AC
thumb_func_start sub_80AB1B0
sub_80AB1B0: @ 80AB1B0
- ldr r1, _080AB1B8 @ =gUnknown_0203869A
+ ldr r1, _080AB1B8 @ =gIsLinkContest
movs r0, 0
strb r0, [r1]
bx lr
.align 2, 0
-_080AB1B8: .4byte gUnknown_0203869A
+_080AB1B8: .4byte gIsLinkContest
thumb_func_end sub_80AB1B0
thumb_func_start sub_80AB1BC
@@ -302,7 +302,7 @@ _080AB3DE:
movs r1, 0
movs r2, 0x10
bl memset
- ldr r0, _080AB474 @ =gUnknown_0203869A
+ ldr r0, _080AB474 @ =gIsLinkContest
ldrb r1, [r0]
movs r0, 0x1
ands r0, r1
@@ -338,7 +338,7 @@ _080AB448:
_080AB468: .4byte 0x02019204
_080AB46C: .4byte 0x02019260
_080AB470: .4byte 0x020192d0
-_080AB474: .4byte gUnknown_0203869A
+_080AB474: .4byte gIsLinkContest
_080AB478: .4byte gUnknown_02038696
thumb_func_end sub_80AB398
@@ -526,7 +526,7 @@ sub_80AB604: @ 80AB604
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
- ldr r0, _080AB648 @ =gUnknown_0203869A
+ ldr r0, _080AB648 @ =gIsLinkContest
ldrb r1, [r0]
movs r0, 0x1
ands r0, r1
@@ -555,7 +555,7 @@ sub_80AB604: @ 80AB604
str r1, [r0]
b _080AB66A
.align 2, 0
-_080AB648: .4byte gUnknown_0203869A
+_080AB648: .4byte gIsLinkContest
_080AB64C: .4byte gPaletteFade
_080AB650: .4byte sub_80AB678
_080AB654: .4byte gTasks
@@ -811,7 +811,7 @@ _080AB844:
mov r1, sp
adds r2, r6, 0
bl CpuSet
- ldr r0, _080AB8B8 @ =gUnknown_02038695
+ ldr r0, _080AB8B8 @ =gContestPlayerMonIndex
mov r9, r0
ldrb r0, [r0]
adds r0, 0x5
@@ -850,7 +850,7 @@ _080AB844:
_080AB8AC: .4byte gUnknown_08D17144
_080AB8B0: .4byte gPlttBufferUnfaded + 0x100
_080AB8B4: .4byte REG_BG0CNT
-_080AB8B8: .4byte gUnknown_02038695
+_080AB8B8: .4byte gContestPlayerMonIndex
_080AB8BC: .4byte 0xffffff00
_080AB8C0: .4byte 0x02018004
_080AB8C4: .4byte 0x040000d4
@@ -876,7 +876,7 @@ _080AB8CC:
strb r3, [r1, 0x2]
movs r2, 0x2
strb r2, [r1, 0x3]
- ldr r0, _080AB92C @ =gUnknown_020239F8
+ ldr r0, _080AB92C @ =gBattleTypeFlags
strh r4, [r0]
ldr r4, _080AB930 @ =gUnknown_02024C07
strb r2, [r4]
@@ -892,7 +892,7 @@ _080AB8CC:
.align 2, 0
_080AB924: .4byte 0x02019204
_080AB928: .4byte gUnknown_02024A72
-_080AB92C: .4byte gUnknown_020239F8
+_080AB92C: .4byte gBattleTypeFlags
_080AB930: .4byte gUnknown_02024C07
_080AB934: .4byte gUnknown_02024C08
_080AB938: .4byte gUnknown_02024BE0
@@ -1191,7 +1191,7 @@ sub_80ABB70: @ 80ABB70
ldr r1, _080ABBC4 @ =0x84000100
str r1, [r0, 0x8]
ldr r0, [r0, 0x8]
- ldr r0, _080ABBC8 @ =gUnknown_02038695
+ ldr r0, _080ABBC8 @ =gContestPlayerMonIndex
ldrb r0, [r0]
bl sub_80AF59C
lsls r0, 24
@@ -1208,7 +1208,7 @@ _080ABBB8: .4byte gPlttBufferUnfaded
_080ABBBC: .4byte 0x02018204
_080ABBC0: .4byte 0x040000d4
_080ABBC4: .4byte 0x84000100
-_080ABBC8: .4byte gUnknown_02038695
+_080ABBC8: .4byte gContestPlayerMonIndex
_080ABBCC: .4byte gUnknown_020238CC
_080ABBD0: .4byte gUnknown_083CAF84
_080ABBD4:
@@ -1301,7 +1301,7 @@ sub_80ABC70: @ 80ABC70
_080ABC88:
movs r0, 0x5
bl PlaySE
- ldr r0, _080ABCB4 @ =gUnknown_02038695
+ ldr r0, _080ABCB4 @ =gContestPlayerMonIndex
ldrb r0, [r0]
bl sub_80AF59C
lsls r0, 24
@@ -1318,7 +1318,7 @@ _080ABC88:
b _080ABCCC
.align 2, 0
_080ABCB0: .4byte gMain
-_080ABCB4: .4byte gUnknown_02038695
+_080ABCB4: .4byte gContestPlayerMonIndex
_080ABCB8: .4byte gTasks
_080ABCBC: .4byte sub_80ABCDC
_080ABCC0:
@@ -1367,7 +1367,7 @@ sub_80ABCDC: @ 80ABCDC
movs r1, 0
bl FillWindowRect_DefaultPalette
movs r6, 0
- ldr r0, _080ABD90 @ =gUnknown_02038695
+ ldr r0, _080ABD90 @ =gContestPlayerMonIndex
mov r8, r0
ldr r7, _080ABD94 @ =0x02019260
mov r9, r5
@@ -1425,7 +1425,7 @@ _080ABD80: .4byte gUnknown_030042A0
_080ABD84: .4byte gUnknown_03004280
_080ABD88: .4byte gUnknown_03004210
_080ABD8C: .4byte gUnknown_083CA340
-_080ABD90: .4byte gUnknown_02038695
+_080ABD90: .4byte gContestPlayerMonIndex
_080ABD94: .4byte 0x02019260
_080ABD98: .4byte gUnknown_0203858E
_080ABD9C: .4byte gUnknownText_UnknownFormatting2
@@ -1504,10 +1504,10 @@ _080ABE20:
movs r0, 0
ldrsb r0, [r4, r0]
bl sub_80AC0AC
- ldr r2, _080ABE90 @ =gUnknown_02038570
+ ldr r2, _080ABE90 @ =gContestMons
ldrb r1, [r4]
lsls r1, 1
- ldr r0, _080ABE94 @ =gUnknown_02038695
+ ldr r0, _080ABE94 @ =gContestPlayerMonIndex
ldrb r0, [r0]
lsls r0, 6
adds r1, r0
@@ -1539,8 +1539,8 @@ _080ABE80: .4byte gUnknown_083CA340 + 0x1
_080ABE84: .4byte 0x0000ffff
_080ABE88: .4byte 0x00002d9f
_080ABE8C: .4byte 0x02019204
-_080ABE90: .4byte gUnknown_02038570
-_080ABE94: .4byte gUnknown_02038695
+_080ABE90: .4byte gContestMons
+_080ABE94: .4byte gContestPlayerMonIndex
_080ABE98: .4byte gTasks
_080ABE9C: .4byte sub_80ABEA0
thumb_func_end sub_80ABCDC
@@ -1553,8 +1553,8 @@ sub_80ABEA0: @ 80ABEA0
lsrs r7, r0, 24
movs r6, 0
ldr r3, _080ABEF4 @ =gMain
- ldr r1, _080ABEF8 @ =gUnknown_02038570
- ldr r0, _080ABEFC @ =gUnknown_02038695
+ ldr r1, _080ABEF8 @ =gContestMons
+ ldr r0, _080ABEFC @ =gContestPlayerMonIndex
ldrb r0, [r0]
lsls r0, 6
adds r1, 0x1E
@@ -1590,8 +1590,8 @@ _080ABEC6:
b _080AC098
.align 2, 0
_080ABEF4: .4byte gMain
-_080ABEF8: .4byte gUnknown_02038570
-_080ABEFC: .4byte gUnknown_02038695
+_080ABEF8: .4byte gContestMons
+_080ABEFC: .4byte gContestPlayerMonIndex
_080ABF00: .4byte gTasks
_080ABF04: .4byte sub_80AC0C8
_080ABF08:
@@ -1629,7 +1629,7 @@ _080ABF26:
str r1, [sp, 0x4]
movs r1, 0
bl FillWindowRect_DefaultPalette
- ldr r0, _080ABF6C @ =gUnknown_02038695
+ ldr r0, _080ABF6C @ =gContestPlayerMonIndex
ldrb r0, [r0]
bl sub_80AF59C
lsls r0, 24
@@ -1642,7 +1642,7 @@ _080ABF26:
.align 2, 0
_080ABF64: .4byte gUnknown_03004210
_080ABF68: .4byte gUnknown_083CA340
-_080ABF6C: .4byte gUnknown_02038695
+_080ABF6C: .4byte gContestPlayerMonIndex
_080ABF70: .4byte gUnknown_020238CC
_080ABF74: .4byte gUnknown_083CAF84
_080ABF78:
@@ -1713,10 +1713,10 @@ _080AC006:
ldrsb r0, [r4, r0]
bl sub_80AC0AC
bl sub_80AED58
- ldr r2, _080AC040 @ =gUnknown_02038570
+ ldr r2, _080AC040 @ =gContestMons
ldrb r1, [r4]
lsls r1, 1
- ldr r0, _080AC044 @ =gUnknown_02038695
+ ldr r0, _080AC044 @ =gContestPlayerMonIndex
ldrb r0, [r0]
lsls r0, 6
adds r1, r0
@@ -1731,8 +1731,8 @@ _080AC006:
b _080AC098
.align 2, 0
_080AC03C: .4byte 0x02019204
-_080AC040: .4byte gUnknown_02038570
-_080AC044: .4byte gUnknown_02038695
+_080AC040: .4byte gContestMons
+_080AC044: .4byte gContestPlayerMonIndex
_080AC048:
ldr r4, _080AC060 @ =0x02019204
movs r0, 0
@@ -1755,10 +1755,10 @@ _080AC068:
ldrsb r0, [r4, r0]
bl sub_80AC0AC
bl sub_80AED58
- ldr r2, _080AC0A4 @ =gUnknown_02038570
+ ldr r2, _080AC0A4 @ =gContestMons
ldrb r1, [r4]
lsls r1, 1
- ldr r0, _080AC0A8 @ =gUnknown_02038695
+ ldr r0, _080AC0A8 @ =gContestPlayerMonIndex
ldrb r0, [r0]
lsls r0, 6
adds r1, r0
@@ -1777,8 +1777,8 @@ _080AC098:
bx r0
.align 2, 0
_080AC0A0: .4byte 0x02019204
-_080AC0A4: .4byte gUnknown_02038570
-_080AC0A8: .4byte gUnknown_02038695
+_080AC0A4: .4byte gContestMons
+_080AC0A8: .4byte gContestPlayerMonIndex
thumb_func_end sub_80ABEA0
thumb_func_start sub_80AC0AC
@@ -1806,13 +1806,13 @@ sub_80AC0C8: @ 80AC0C8
push {r4,r5,lr}
lsls r0, 24
lsrs r5, r0, 24
- ldr r0, _080AC120 @ =gUnknown_0203869A
+ ldr r0, _080AC120 @ =gIsLinkContest
ldrb r1, [r0]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _080AC13C
- ldr r4, _080AC124 @ =gUnknown_02038695
+ ldr r4, _080AC124 @ =gContestPlayerMonIndex
ldrb r0, [r4]
bl sub_80AF15C
ldrb r2, [r4]
@@ -1843,8 +1843,8 @@ sub_80AC0C8: @ 80AC0C8
bl sub_80AFFE0
b _080AC14E
.align 2, 0
-_080AC120: .4byte gUnknown_0203869A
-_080AC124: .4byte gUnknown_02038695
+_080AC120: .4byte gIsLinkContest
+_080AC124: .4byte gContestPlayerMonIndex
_080AC128: .4byte 0x02019260
_080AC12C: .4byte sub_80C8A38
_080AC130: .4byte sub_80AC15C
@@ -2173,7 +2173,7 @@ _080AC42C:
ldr r4, _080AC484 @ =0x02019204
strb r6, [r4, 0x11]
ldrb r7, [r4, 0x11]
- ldr r0, _080AC488 @ =gUnknown_0203869A
+ ldr r0, _080AC488 @ =gIsLinkContest
ldrb r1, [r0]
movs r5, 0x1
adds r0, r5, 0
@@ -2210,7 +2210,7 @@ _080AC458:
bl _080AD8CA
.align 2, 0
_080AC484: .4byte 0x02019204
-_080AC488: .4byte gUnknown_0203869A
+_080AC488: .4byte gIsLinkContest
_080AC48C: .4byte sub_80C8C80
_080AC490: .4byte sub_80AD8DC
_080AC494: .4byte gTasks
@@ -2311,7 +2311,7 @@ _080AC542:
adds r7, r4, r5
ldrb r0, [r7, 0x11]
bl sub_80B28F0
- ldr r3, _080AC5D0 @ =gUnknown_02038570
+ ldr r3, _080AC5D0 @ =gContestMons
ldrb r2, [r7, 0x11]
lsls r2, 6
adds r0, r2, r3
@@ -2360,7 +2360,7 @@ _080AC542:
_080AC5C4: .4byte 0x02019348
_080AC5C8: .4byte gUnknown_02024E84
_080AC5CC: .4byte 0xfffffebc
-_080AC5D0: .4byte gUnknown_02038570
+_080AC5D0: .4byte gContestMons
_080AC5D4: .4byte gSprites
_080AC5D8: .4byte sub_80AD8FC
_080AC5DC: .4byte gTasks
@@ -2428,7 +2428,7 @@ _080AC664:
bl sub_80AF138
ldr r0, _080AC690 @ =gStringVar1
lsls r1, r7, 6
- ldr r2, _080AC694 @ =gUnknown_02038572
+ ldr r2, _080AC694 @ =gContestMons + 0x2
adds r1, r2
bl StringCopy
ldrh r1, [r5, 0x6]
@@ -2446,7 +2446,7 @@ _080AC664:
b _080AC6B0
.align 2, 0
_080AC690: .4byte gStringVar1
-_080AC694: .4byte gUnknown_02038572
+_080AC694: .4byte gContestMons + 0x2
_080AC698: .4byte gStringVar2
_080AC69C: .4byte gMoveNames
_080AC6A0:
@@ -3369,7 +3369,7 @@ _080ACE0A:
bl sub_80AF138
ldr r0, _080ACE4C @ =gStringVar1
lsls r1, r7, 6
- ldr r2, _080ACE50 @ =gUnknown_02038572
+ ldr r2, _080ACE50 @ =gContestMons + 0x2
adds r1, r2
bl StringCopy
ldr r4, _080ACE54 @ =gStringVar4
@@ -3396,7 +3396,7 @@ _080ACE36:
.align 2, 0
_080ACE48: .4byte 0x02019260
_080ACE4C: .4byte gStringVar1
-_080ACE50: .4byte gUnknown_02038572
+_080ACE50: .4byte gContestMons + 0x2
_080ACE54: .4byte gStringVar4
_080ACE58: .4byte gUnknown_083CC103
_080ACE5C: .4byte gMenuWindow
@@ -3511,7 +3511,7 @@ _080ACF48:
bl sub_80AF138
ldr r0, _080ACF90 @ =gStringVar1
lsls r1, r7, 6
- ldr r2, _080ACF94 @ =gUnknown_02038572
+ ldr r2, _080ACF94 @ =gContestMons + 0x2
adds r1, r2
bl StringCopy
ldr r4, _080ACF98 @ =gStringVar4
@@ -3541,7 +3541,7 @@ _080ACF88:
bl _080AD8CA
.align 2, 0
_080ACF90: .4byte gStringVar1
-_080ACF94: .4byte gUnknown_02038572
+_080ACF94: .4byte gContestMons + 0x2
_080ACF98: .4byte gStringVar4
_080ACF9C: .4byte gUnknown_083CBD52
_080ACFA0: .4byte gMenuWindow
@@ -3655,7 +3655,7 @@ _080AD070:
bl sub_80AF138
ldr r0, _080AD0D0 @ =gStringVar1
lsls r1, r7, 6
- ldr r2, _080AD0D4 @ =gUnknown_02038572
+ ldr r2, _080AD0D4 @ =gContestMons + 0x2
adds r1, r2
bl StringCopy
ldr r4, _080AD0D8 @ =gStringVar4
@@ -3685,7 +3685,7 @@ _080AD070:
.align 2, 0
_080AD0CC: .4byte 0x02019260
_080AD0D0: .4byte gStringVar1
-_080AD0D4: .4byte gUnknown_02038572
+_080AD0D4: .4byte gContestMons + 0x2
_080AD0D8: .4byte gStringVar4
_080AD0DC: .4byte gUnknown_083CC075
_080AD0E0: .4byte gMenuWindow
@@ -3859,7 +3859,7 @@ _080AD23A:
bl sub_80AF138
ldr r0, _080AD280 @ =gStringVar1
lsls r1, r7, 6
- ldr r2, _080AD284 @ =gUnknown_02038572
+ ldr r2, _080AD284 @ =gContestMons + 0x2
adds r1, r2
bl StringCopy
ldr r3, _080AD288 @ =0x02019204
@@ -3887,7 +3887,7 @@ _080AD274: .4byte gUnknown_083CC2D8
_080AD278: .4byte gContestMoves
_080AD27C: .4byte 0x02019260
_080AD280: .4byte gStringVar1
-_080AD284: .4byte gUnknown_02038572
+_080AD284: .4byte gContestMons + 0x2
_080AD288: .4byte 0x02019204
_080AD28C: .4byte gTasks
_080AD290:
@@ -4242,7 +4242,7 @@ _080AD53C:
lsls r1, 20
lsrs r1, 29
lsls r1, 6
- ldr r5, _080AD5B0 @ =gUnknown_02038572
+ ldr r5, _080AD5B0 @ =gContestMons + 0x2
adds r1, r5
bl StringCopy
ldr r0, _080AD5B4 @ =gStringVar1
@@ -4285,7 +4285,7 @@ _080AD53C:
.align 2, 0
_080AD5A8: .4byte gStringVar3
_080AD5AC: .4byte 0x02019328
-_080AD5B0: .4byte gUnknown_02038572
+_080AD5B0: .4byte gContestMons + 0x2
_080AD5B4: .4byte gStringVar1
_080AD5B8: .4byte gStringVar2
_080AD5BC: .4byte gMoveNames
@@ -4365,7 +4365,7 @@ _080AD664:
bl sub_80B09B0
ldr r0, _080AD6B8 @ =gStringVar1
lsls r1, r7, 6
- ldr r2, _080AD6BC @ =gUnknown_02038572
+ ldr r2, _080AD6BC @ =gContestMons + 0x2
adds r1, r2
bl StringCopy
ldr r0, _080AD6C0 @ =gStringVar2
@@ -4399,7 +4399,7 @@ _080AD664:
.align 2, 0
_080AD6B4: .4byte 0x02019260
_080AD6B8: .4byte gStringVar1
-_080AD6BC: .4byte gUnknown_02038572
+_080AD6BC: .4byte gContestMons + 0x2
_080AD6C0: .4byte gStringVar2
_080AD6C4: .4byte gMoveNames
_080AD6C8: .4byte gStringVar4
@@ -4548,7 +4548,7 @@ _080AD7E8:
bl sub_80AF138
ldr r0, _080AD828 @ =gStringVar1
lsls r1, r7, 6
- ldr r2, _080AD82C @ =gUnknown_02038572
+ ldr r2, _080AD82C @ =gContestMons + 0x2
adds r1, r2
bl StringCopy
ldr r4, _080AD830 @ =gStringVar4
@@ -4574,7 +4574,7 @@ _080AD7E8:
b _080AD8CA
.align 2, 0
_080AD828: .4byte gStringVar1
-_080AD82C: .4byte gUnknown_02038572
+_080AD82C: .4byte gContestMons + 0x2
_080AD830: .4byte gStringVar4
_080AD834: .4byte gUnknown_083CB00D
_080AD838: .4byte gMenuWindow
@@ -4763,7 +4763,7 @@ _080AD988:
beq _080ADA08
b _080ADA10
_080AD98E:
- ldr r0, _080AD9D8 @ =gUnknown_0203869A
+ ldr r0, _080AD9D8 @ =gIsLinkContest
ldrb r1, [r0]
movs r6, 0x1
adds r0, r6, 0
@@ -4795,7 +4795,7 @@ _080AD9B8:
strh r6, [r5, 0x8]
b _080ADA10
.align 2, 0
-_080AD9D8: .4byte gUnknown_0203869A
+_080AD9D8: .4byte gIsLinkContest
_080AD9DC: .4byte 0x02019204
_080AD9E0: .4byte sub_80C8C80
_080AD9E4: .4byte sub_80AD8DC
@@ -5031,7 +5031,7 @@ sub_80ADB88: @ 80ADB88
adds r5, r0, 0
lsls r5, 24
lsrs r5, 24
- ldr r6, _080ADBEC @ =gUnknown_02038695
+ ldr r6, _080ADBEC @ =gContestPlayerMonIndex
ldrb r1, [r6]
lsls r0, r1, 3
subs r0, r1
@@ -5043,7 +5043,7 @@ sub_80ADB88: @ 80ADB88
ldr r0, _080ADBF4 @ =gStringVar1
ldrb r1, [r6]
lsls r1, 6
- ldr r2, _080ADBF8 @ =gUnknown_02038572
+ ldr r2, _080ADBF8 @ =gContestMons + 0x2
adds r1, r2
bl StringCopy
ldr r6, _080ADBFC @ =gStringVar4
@@ -5073,10 +5073,10 @@ sub_80ADB88: @ 80ADB88
pop {r0}
bx r0
.align 2, 0
-_080ADBEC: .4byte gUnknown_02038695
+_080ADBEC: .4byte gContestPlayerMonIndex
_080ADBF0: .4byte 0x02019260
_080ADBF4: .4byte gStringVar1
-_080ADBF8: .4byte gUnknown_02038572
+_080ADBF8: .4byte gContestMons + 0x2
_080ADBFC: .4byte gStringVar4
_080ADC00: .4byte gUnknown_083CB2F0
_080ADC04: .4byte gMenuWindow
@@ -5324,7 +5324,7 @@ _080ADDBC:
movs r5, 0
bl sub_80AF668
bl sub_80AF138
- ldr r0, _080ADE34 @ =gUnknown_02038695
+ ldr r0, _080ADE34 @ =gContestPlayerMonIndex
ldrb r1, [r0]
lsls r0, r1, 3
subs r0, r1
@@ -5366,7 +5366,7 @@ _080ADE24: .4byte gUnknown_030042A0
_080ADE28: .4byte gUnknown_03004280
_080ADE2C: .4byte 0x02019260
_080ADE30: .4byte gUnknown_02038680
-_080ADE34: .4byte gUnknown_02038695
+_080ADE34: .4byte gContestPlayerMonIndex
_080ADE38: .4byte gUnknown_03005D28
_080ADE3C: .4byte gRngValue
_080ADE40: .4byte gStringVar4
@@ -5473,7 +5473,7 @@ sub_80ADEEC: @ 80ADEEC
ble _080ADF40
movs r0, 0
strh r0, [r4, 0x8]
- ldr r0, _080ADF24 @ =gUnknown_0203869A
+ ldr r0, _080ADF24 @ =gIsLinkContest
ldrb r0, [r0]
movs r1, 0x1
ands r1, r0
@@ -5483,7 +5483,7 @@ sub_80ADEEC: @ 80ADEEC
b _080ADF3E
.align 2, 0
_080ADF20: .4byte gTasks
-_080ADF24: .4byte gUnknown_0203869A
+_080ADF24: .4byte gIsLinkContest
_080ADF28: .4byte sub_80ADF4C
_080ADF2C:
movs r0, 0x1
@@ -5642,27 +5642,27 @@ _080AE04C:
thumb_func_start sub_80AE054
sub_80AE054: @ 80AE054
push {lr}
- ldr r0, _080AE06C @ =gUnknown_0203869A
+ ldr r0, _080AE06C @ =gIsLinkContest
ldrb r1, [r0]
movs r0, 0x1
ands r0, r1
cmp r0, 0
bne _080AE068
- ldr r1, _080AE070 @ =gUnknown_02038695
+ ldr r1, _080AE070 @ =gContestPlayerMonIndex
movs r0, 0x3
strb r0, [r1]
_080AE068:
pop {r0}
bx r0
.align 2, 0
-_080AE06C: .4byte gUnknown_0203869A
-_080AE070: .4byte gUnknown_02038695
+_080AE06C: .4byte gIsLinkContest
+_080AE070: .4byte gContestPlayerMonIndex
thumb_func_end sub_80AE054
thumb_func_start sub_80AE074
sub_80AE074: @ 80AE074
push {lr}
- ldr r0, _080AE088 @ =gUnknown_02038695
+ ldr r0, _080AE088 @ =gContestPlayerMonIndex
ldr r1, _080AE08C @ =gUnknown_0203869B
ldrb r0, [r0]
ldrb r1, [r1]
@@ -5671,7 +5671,7 @@ sub_80AE074: @ 80AE074
movs r0, 0
b _080AE092
.align 2, 0
-_080AE088: .4byte gUnknown_02038695
+_080AE088: .4byte gContestPlayerMonIndex
_080AE08C: .4byte gUnknown_0203869B
_080AE090:
movs r0, 0x1
@@ -5694,7 +5694,7 @@ sub_80AE098: @ 80AE098
bl StringCopy
mov r0, sp
bl StripExtCtrlCodes
- ldr r0, _080AE0F4 @ =gUnknown_0203869A
+ ldr r0, _080AE0F4 @ =gIsLinkContest
ldrb r1, [r0]
movs r0, 0x1
ands r0, r1
@@ -5708,7 +5708,7 @@ sub_80AE098: @ 80AE098
mov r0, sp
strb r2, [r0, 0x7]
_080AE0CE:
- ldr r5, _080AE0F8 @ =gUnknown_02038695
+ ldr r5, _080AE0F8 @ =gContestPlayerMonIndex
ldrb r0, [r5]
lsls r0, 6
ldr r4, _080AE0FC @ =gUnknown_0203857D
@@ -5726,8 +5726,8 @@ _080AE0CE:
b _080AE108
.align 2, 0
_080AE0F0: .4byte gSaveBlock2
-_080AE0F4: .4byte gUnknown_0203869A
-_080AE0F8: .4byte gUnknown_02038695
+_080AE0F4: .4byte gIsLinkContest
+_080AE0F8: .4byte gContestPlayerMonIndex
_080AE0FC: .4byte gUnknown_0203857D
_080AE100:
ldrb r0, [r5]
@@ -5736,8 +5736,8 @@ _080AE100:
movs r1, 0xD9
_080AE108:
strb r1, [r0, 0x8]
- ldr r5, _080AE17C @ =gUnknown_02038570
- ldr r4, _080AE180 @ =gUnknown_02038695
+ ldr r5, _080AE17C @ =gContestMons
+ ldr r4, _080AE180 @ =gContestPlayerMonIndex
ldrb r0, [r4]
lsls r0, 6
adds r1, r5, 0
@@ -5768,7 +5768,7 @@ _080AE108:
bl GetMonData
mov r0, sp
bl StringGetEnd10
- ldr r0, _080AE188 @ =gUnknown_0203869A
+ ldr r0, _080AE188 @ =gIsLinkContest
ldrb r1, [r0]
movs r0, 0x1
ands r0, r1
@@ -5788,10 +5788,10 @@ _080AE108:
strb r0, [r1, 0xA]
b _080AE19A
.align 2, 0
-_080AE17C: .4byte gUnknown_02038570
-_080AE180: .4byte gUnknown_02038695
+_080AE17C: .4byte gContestMons
+_080AE180: .4byte gContestPlayerMonIndex
_080AE184: .4byte gPlayerParty
-_080AE188: .4byte gUnknown_0203869A
+_080AE188: .4byte gIsLinkContest
_080AE18C:
mov r0, sp
ldrb r2, [r0, 0x5]
@@ -5801,10 +5801,10 @@ _080AE18C:
mov r0, sp
strb r2, [r0, 0xA]
_080AE19A:
- ldr r5, _080AE2C4 @ =gUnknown_02038695
+ ldr r5, _080AE2C4 @ =gContestPlayerMonIndex
ldrb r0, [r5]
lsls r0, 6
- ldr r1, _080AE2C8 @ =gUnknown_02038572
+ ldr r1, _080AE2C8 @ =gContestMons + 0x2
mov r8, r1
add r0, r8
mov r1, sp
@@ -5936,8 +5936,8 @@ _080AE19A:
adds r3, 0x14
b _080AE31E
.align 2, 0
-_080AE2C4: .4byte gUnknown_02038695
-_080AE2C8: .4byte gUnknown_02038572
+_080AE2C4: .4byte gContestPlayerMonIndex
+_080AE2C8: .4byte gContestMons + 0x2
_080AE2CC: .4byte gPlayerParty
_080AE2D0:
cmp r2, 0xFF
@@ -6010,8 +6010,8 @@ _080AE342:
ble _080AE34C
movs r7, 0xFF
_080AE34C:
- ldr r2, _080AE390 @ =gUnknown_02038570
- ldr r1, _080AE394 @ =gUnknown_02038695
+ ldr r2, _080AE390 @ =gContestMons
+ ldr r1, _080AE394 @ =gContestPlayerMonIndex
ldrb r0, [r1]
lsls r0, 6
adds r0, r2
@@ -6044,8 +6044,8 @@ _080AE34C:
pop {r0}
bx r0
.align 2, 0
-_080AE390: .4byte gUnknown_02038570
-_080AE394: .4byte gUnknown_02038695
+_080AE390: .4byte gContestMons
+_080AE394: .4byte gContestPlayerMonIndex
thumb_func_end sub_80AE098
thumb_func_start sub_80AE398
@@ -6125,7 +6125,7 @@ _080AE412:
bl __modsi3
lsls r0, 16
lsrs r0, 16
- ldr r1, _080AE474 @ =gUnknown_02038570
+ ldr r1, _080AE474 @ =gContestMons
lsls r2, r5, 6
adds r2, r1
mov r1, sp
@@ -6164,7 +6164,7 @@ _080AE454:
bx r0
.align 2, 0
_080AE470: .4byte gUnknown_083C9408
-_080AE474: .4byte gUnknown_02038570
+_080AE474: .4byte gContestMons
_080AE478: .4byte gUnknown_02038694
thumb_func_end sub_80AE398
@@ -6374,7 +6374,7 @@ sub_80AE5D4: @ 80AE5D4
movs r0, 0xBA
strb r0, [r3]
adds r3, 0x1
- ldr r0, _080AE668 @ =gUnknown_0203869A
+ ldr r0, _080AE668 @ =gIsLinkContest
ldrb r1, [r0]
movs r0, 0x1
ands r0, r1
@@ -6422,7 +6422,7 @@ sub_80AE5D4: @ 80AE5D4
.align 2, 0
_080AE660: .4byte gUnknown_020238CC
_080AE664: .4byte gEmptyString_81E72B0
-_080AE668: .4byte gUnknown_0203869A
+_080AE668: .4byte gIsLinkContest
_080AE66C: .4byte gLinkPlayers
_080AE670: .4byte gUnknown_03004210
_080AE674: .4byte gUnknown_02038696
@@ -6499,7 +6499,7 @@ sub_80AE6E4: @ 80AE6E4
strb r0, [r3, 0x2]
adds r3, 0x3
lsls r1, r4, 6
- ldr r0, _080AE760 @ =gUnknown_02038572
+ ldr r0, _080AE760 @ =gContestMons + 0x2
adds r1, r0
adds r0, r3, 0
bl sub_80AE598
@@ -6541,7 +6541,7 @@ sub_80AE6E4: @ 80AE6E4
bx r0
.align 2, 0
_080AE75C: .4byte gUnknown_020238CC
-_080AE760: .4byte gUnknown_02038572
+_080AE760: .4byte gContestMons + 0x2
_080AE764: .4byte gUnknown_03004210
_080AE768: .4byte gUnknown_02038696
_080AE76C: .4byte gUnknown_083CA308
@@ -6571,7 +6571,7 @@ _080AE78C:
.4byte _080AE7E0
.4byte _080AE7FC
_080AE7A0:
- ldr r0, _080AE7B4 @ =gUnknown_02038570
+ ldr r0, _080AE7B4 @ =gContestMons
lsls r2, 6
adds r1, r2, r0
adds r3, r1, 0
@@ -6582,9 +6582,9 @@ _080AE7A0:
adds r1, 0x27
b _080AE80E
.align 2, 0
-_080AE7B4: .4byte gUnknown_02038570
+_080AE7B4: .4byte gContestMons
_080AE7B8:
- ldr r0, _080AE7CC @ =gUnknown_02038570
+ ldr r0, _080AE7CC @ =gContestMons
lsls r2, 6
adds r1, r2, r0
adds r3, r1, 0
@@ -6595,18 +6595,18 @@ _080AE7B8:
adds r1, 0x28
b _080AE80E
.align 2, 0
-_080AE7CC: .4byte gUnknown_02038570
+_080AE7CC: .4byte gContestMons
_080AE7D0:
- ldr r1, _080AE7DC @ =gUnknown_02038570
+ ldr r1, _080AE7DC @ =gContestMons
lsls r2, 6
adds r3, r2, r1
adds r0, r3, 0
adds r0, 0x28
b _080AE7EA
.align 2, 0
-_080AE7DC: .4byte gUnknown_02038570
+_080AE7DC: .4byte gContestMons
_080AE7E0:
- ldr r1, _080AE7F8 @ =gUnknown_02038570
+ ldr r1, _080AE7F8 @ =gContestMons
lsls r2, 6
adds r3, r2, r1
adds r0, r3, 0
@@ -6620,9 +6620,9 @@ _080AE7EA:
adds r0, r1, 0
b _080AE810
.align 2, 0
-_080AE7F8: .4byte gUnknown_02038570
+_080AE7F8: .4byte gContestMons
_080AE7FC:
- ldr r0, _080AE828 @ =gUnknown_02038570
+ ldr r0, _080AE828 @ =gContestMons
lsls r2, 6
adds r1, r2, r0
adds r3, r1, 0
@@ -6647,7 +6647,7 @@ _080AE810:
pop {r1}
bx r1
.align 2, 0
-_080AE828: .4byte gUnknown_02038570
+_080AE828: .4byte gContestMons
thumb_func_end sub_80AE770
thumb_func_start sub_80AE82C
@@ -6767,9 +6767,9 @@ unref_sub_80AE908: @ 80AE908
mov r4, r8
push {r4-r6}
sub sp, 0x8
- ldr r0, _080AE9D4 @ =gUnknown_02038570
+ ldr r0, _080AE9D4 @ =gContestMons
mov r9, r0
- ldr r1, _080AE9D8 @ =gUnknown_02038695
+ ldr r1, _080AE9D8 @ =gContestPlayerMonIndex
mov r8, r1
ldrb r0, [r1]
lsls r0, 6
@@ -6859,8 +6859,8 @@ unref_sub_80AE908: @ 80AE908
pop {r1}
bx r1
.align 2, 0
-_080AE9D4: .4byte gUnknown_02038570
-_080AE9D8: .4byte gUnknown_02038695
+_080AE9D4: .4byte gContestMons
+_080AE9D8: .4byte gContestPlayerMonIndex
_080AE9DC: .4byte gMonFrontPicTable
_080AE9E0: .4byte gMonFrontPicCoords
_080AE9E4: .4byte gUnknown_081FAF4C
@@ -6900,7 +6900,7 @@ sub_80AE9FC: @ 80AE9FC
str r4, [sp]
str r5, [sp, 0x4]
str r6, [sp, 0x8]
- bl sub_800D334
+ bl HandleLoadSpecialPokePic
adds r0, r5, 0
mov r1, r8
adds r2, r6, 0
@@ -7856,7 +7856,7 @@ sub_80AF15C: @ 80AF15C
movs r0, 0
b _080AF1AA
_080AF174:
- ldr r0, _080AF190 @ =gUnknown_02038695
+ ldr r0, _080AF190 @ =gContestPlayerMonIndex
ldrb r0, [r0]
cmp r4, r0
beq _080AF198
@@ -7864,15 +7864,15 @@ _080AF174:
bl sub_81288F4
bl sub_8128944
lsls r0, 24
- ldr r2, _080AF194 @ =gUnknown_02038570
+ ldr r2, _080AF194 @ =gContestMons
lsrs r0, 23
lsls r1, r4, 6
b _080AF1A2
.align 2, 0
-_080AF190: .4byte gUnknown_02038695
-_080AF194: .4byte gUnknown_02038570
+_080AF190: .4byte gContestPlayerMonIndex
+_080AF194: .4byte gContestMons
_080AF198:
- ldr r2, _080AF1B0 @ =gUnknown_02038570
+ ldr r2, _080AF1B0 @ =gContestMons
ldr r0, _080AF1B4 @ =0x02019204
ldrb r0, [r0]
lsls r0, 1
@@ -7887,7 +7887,7 @@ _080AF1AA:
pop {r1}
bx r1
.align 2, 0
-_080AF1B0: .4byte gUnknown_02038570
+_080AF1B0: .4byte gContestMons
_080AF1B4: .4byte 0x02019204
thumb_func_end sub_80AF15C
@@ -8464,7 +8464,7 @@ unref_sub_80AF5D0: @ 80AF5D0
lsrs r0, 24
lsls r1, 24
lsrs r3, r1, 24
- ldr r1, _080AF5E8 @ =gUnknown_02038695
+ ldr r1, _080AF5E8 @ =gContestPlayerMonIndex
ldrb r1, [r1]
cmp r0, r1
beq _080AF600
@@ -8472,7 +8472,7 @@ _080AF5E2:
movs r0, 0x1
b _080AF626
.align 2, 0
-_080AF5E8: .4byte gUnknown_02038695
+_080AF5E8: .4byte gContestPlayerMonIndex
_080AF5EC:
ldrb r0, [r4, 0x6]
movs r1, 0x1
@@ -11237,7 +11237,7 @@ sub_80B09E4: @ 80B09E4
movs r1, 0x3
movs r2, 0xC0
lsls r2, 19
- bl sub_8040F80
+ bl CopySpriteTiles
ldrb r0, [r7]
lsls r3, r0, 2
adds r3, r0
@@ -11253,7 +11253,7 @@ sub_80B09E4: @ 80B09E4
movs r1, 0x3
movs r2, 0xC0
lsls r2, 19
- bl sub_8040F80
+ bl CopySpriteTiles
ldrh r0, [r4, 0x4]
lsls r0, 22
lsrs r0, 17
@@ -12550,7 +12550,7 @@ sub_80B146C: @ 80B146C
lsrs r5, r1, 24
ldr r0, _080B14C8 @ =gStringVar1
lsls r1, r4, 6
- ldr r2, _080B14CC @ =gUnknown_02038572
+ ldr r2, _080B14CC @ =gContestMons + 0x2
adds r1, r2
bl StringCopy
ldr r0, _080B14D0 @ =gStringVar2
@@ -12586,7 +12586,7 @@ sub_80B146C: @ 80B146C
b _080B1538
.align 2, 0
_080B14C8: .4byte gStringVar1
-_080B14CC: .4byte gUnknown_02038572
+_080B14CC: .4byte gContestMons + 0x2
_080B14D0: .4byte gStringVar2
_080B14D4: .4byte 0x02019260
_080B14D8: .4byte gMoveNames
@@ -14595,7 +14595,7 @@ _080B2470: .4byte 0x02019218
_080B2474: .4byte gUnknown_02038696
_080B2478: .4byte gTasks
_080B247C:
- ldr r0, _080B24C0 @ =gUnknown_0203869A
+ ldr r0, _080B24C0 @ =gIsLinkContest
ldrb r0, [r0]
ands r1, r0
cmp r1, 0
@@ -14625,7 +14625,7 @@ _080B249E:
strh r0, [r5, 0x8]
b _080B24FC
.align 2, 0
-_080B24C0: .4byte gUnknown_0203869A
+_080B24C0: .4byte gIsLinkContest
_080B24C4: .4byte 0x02019204
_080B24C8: .4byte sub_80C8C80
_080B24CC: .4byte sub_80AD8DC
@@ -15022,7 +15022,7 @@ sub_80B2790: @ 80B2790
bl sub_80B2760
lsls r0, 16
lsrs r5, r0, 16
- ldr r1, _080B27F4 @ =gUnknown_02038570
+ ldr r1, _080B27F4 @ =gContestMons
lsls r0, r6, 6
adds r0, r1
ldrh r0, [r0]
@@ -15056,7 +15056,7 @@ _080B27D0:
b _080B28BE
.align 2, 0
_080B27F0: .4byte 0x02019260
-_080B27F4: .4byte gUnknown_02038570
+_080B27F4: .4byte gContestMons
_080B27F8: .4byte gUnknown_02024E84
_080B27FC:
cmp r5, 0x82
@@ -15106,7 +15106,7 @@ _080B2848:
ldr r4, _080B2878 @ =0x02019260
adds r0, r4
ldrb r5, [r0, 0x1B]
- ldr r6, _080B287C @ =gUnknown_02038570
+ ldr r6, _080B287C @ =gContestMons
lsls r5, 6
adds r0, r5, r6
ldrh r0, [r0]
@@ -15124,7 +15124,7 @@ _080B2848:
b _080B28BE
.align 2, 0
_080B2878: .4byte 0x02019260
-_080B287C: .4byte gUnknown_02038570
+_080B287C: .4byte gContestMons
_080B2880:
ldr r1, _080B2888 @ =gUnknown_0202F7BE
movs r0, 0xFF
@@ -15196,7 +15196,7 @@ sub_80B28F0: @ 80B28F0
lsrs r4, 24
ldr r6, _080B2924 @ =0x02019348
strb r4, [r6, 0x5]
- ldr r5, _080B2928 @ =gUnknown_02038570
+ ldr r5, _080B2928 @ =gContestMons
lsls r4, 6
adds r0, r4, r5
ldrh r0, [r0]
@@ -15216,14 +15216,14 @@ sub_80B28F0: @ 80B28F0
bx r0
.align 2, 0
_080B2924: .4byte 0x02019348
-_080B2928: .4byte gUnknown_02038570
+_080B2928: .4byte gContestMons
thumb_func_end sub_80B28F0
thumb_func_start sub_80B292C
sub_80B292C: @ 80B292C
push {lr}
ldr r0, _080B2958 @ =SpriteCallbackDummy
- bl object_new_hidden_with_callback
+ bl CreateInvisibleSpriteWithCallback
ldr r1, _080B295C @ =gUnknown_02024BE0
strb r0, [r1, 0x3]
ldr r0, _080B2960 @ =gUnknown_02024C08
@@ -15391,7 +15391,7 @@ _080B2AB6:
mov r0, r9
cmp r0, 0xFF
bne _080B2AD0
- ldr r0, _080B2ACC @ =gUnknown_02038695
+ ldr r0, _080B2ACC @ =gContestPlayerMonIndex
ldrb r0, [r0]
cmp r6, r0
beq _080B2AD0
@@ -15399,7 +15399,7 @@ _080B2AB6:
b _080B2C38
.align 2, 0
_080B2AC8: .4byte gUnknown_02038690
-_080B2ACC: .4byte gUnknown_02038695
+_080B2ACC: .4byte gContestPlayerMonIndex
_080B2AD0:
ldr r0, _080B2AE4 @ =gScriptContestCategory
ldrh r0, [r0]
@@ -15450,7 +15450,7 @@ _080B2B16:
ldr r0, _080B2B9C @ =0x00002dfc
adds r1, r2, r0
adds r1, r4, r1
- ldr r5, _080B2BA0 @ =gUnknown_02038570
+ ldr r5, _080B2BA0 @ =gContestMons
lsls r6, 6
adds r0, r5, 0
adds r0, 0x38
@@ -15501,7 +15501,7 @@ _080B2B16:
.align 2, 0
_080B2B98: .4byte gSaveBlock1
_080B2B9C: .4byte 0x00002dfc
-_080B2BA0: .4byte gUnknown_02038570
+_080B2BA0: .4byte gContestMons
_080B2BA4: .4byte 0x00002e04
_080B2BA8: .4byte 0x00002e07
_080B2BAC: .4byte 0x00002e12
@@ -15516,7 +15516,7 @@ _080B2BB8:
_080B2BC0: .4byte 0x00002e06
_080B2BC4:
ldr r5, _080B2C14 @ =0x02015de0
- ldr r2, _080B2C18 @ =gUnknown_02038570
+ ldr r2, _080B2C18 @ =gContestMons
lsls r4, r6, 6
adds r0, r2, 0
adds r0, 0x38
@@ -15537,7 +15537,7 @@ _080B2BC4:
adds r1, r4, r1
str r2, [sp]
bl StringCopy
- ldr r0, _080B2C1C @ =gUnknown_0203869A
+ ldr r0, _080B2C1C @ =gIsLinkContest
ldrb r1, [r0]
movs r0, 0x1
ands r0, r1
@@ -15555,8 +15555,8 @@ _080B2BC4:
b _080B2C32
.align 2, 0
_080B2C14: .4byte 0x02015de0
-_080B2C18: .4byte gUnknown_02038570
-_080B2C1C: .4byte gUnknown_0203869A
+_080B2C18: .4byte gContestMons
+_080B2C1C: .4byte gIsLinkContest
_080B2C20: .4byte gLinkPlayers + 0x8
_080B2C24:
adds r0, r5, 0
diff --git a/asm/contest_ai.s b/asm/contest_ai.s
index 1e5497570..a947110ec 100644
--- a/asm/contest_ai.s
+++ b/asm/contest_ai.s
@@ -34,7 +34,7 @@ _08128910:
adds r0, r2, 0
adds r0, 0x40
strb r1, [r0]
- ldr r1, _08128940 @ =gUnknown_02038570
+ ldr r1, _08128940 @ =gContestMons
ldrb r0, [r3]
lsls r0, 6
adds r1, 0x18
@@ -46,7 +46,7 @@ _08128910:
bx r0
.align 2, 0
_0812893C: .4byte 0x020192e4
-_08128940: .4byte gUnknown_02038570
+_08128940: .4byte gContestMons
thumb_func_end sub_81288F4
thumb_func_start sub_8128944
@@ -1403,7 +1403,7 @@ _081292E0:
thumb_func_start contest_ai_get_move_excitement
contest_ai_get_move_excitement: @ 81292E4
push {r4,lr}
- ldr r2, _08129318 @ =gUnknown_02038570
+ ldr r2, _08129318 @ =gContestMons
ldr r4, _0812931C @ =0x020192e4
ldrb r1, [r4, 0x4]
lsls r1, 1
@@ -1427,7 +1427,7 @@ contest_ai_get_move_excitement: @ 81292E4
pop {r0}
bx r0
.align 2, 0
-_08129318: .4byte gUnknown_02038570
+_08129318: .4byte gContestMons
_0812931C: .4byte 0x020192e4
_08129320: .4byte gAIScriptPtr
thumb_func_end contest_ai_get_move_excitement
@@ -1582,7 +1582,7 @@ _0812942C:
thumb_func_start contest_ai_get_move_effect
contest_ai_get_move_effect: @ 8129434
- ldr r2, _08129460 @ =gUnknown_02038570
+ ldr r2, _08129460 @ =gContestMons
ldr r3, _08129464 @ =0x020192e4
ldrb r1, [r3, 0x4]
lsls r1, 1
@@ -1605,7 +1605,7 @@ contest_ai_get_move_effect: @ 8129434
str r0, [r1]
bx lr
.align 2, 0
-_08129460: .4byte gUnknown_02038570
+_08129460: .4byte gContestMons
_08129464: .4byte 0x020192e4
_08129468: .4byte gContestMoves
_0812946C: .4byte gAIScriptPtr
@@ -1683,7 +1683,7 @@ _081294EC:
thumb_func_start contest_ai_get_move_effect_type
contest_ai_get_move_effect_type: @ 81294F0
- ldr r2, _08129524 @ =gUnknown_02038570
+ ldr r2, _08129524 @ =gContestMons
ldr r3, _08129528 @ =0x020192e4
ldrb r1, [r3, 0x4]
lsls r1, 1
@@ -1710,7 +1710,7 @@ contest_ai_get_move_effect_type: @ 81294F0
str r0, [r1]
bx lr
.align 2, 0
-_08129524: .4byte gUnknown_02038570
+_08129524: .4byte gContestMons
_08129528: .4byte 0x020192e4
_0812952C: .4byte gContestEffects
_08129530: .4byte gContestMoves
@@ -1790,7 +1790,7 @@ _081295B4:
thumb_func_start contest_ai_check_move_has_highest_appeal
contest_ai_check_move_has_highest_appeal: @ 81295B8
push {r4-r7,lr}
- ldr r2, _08129610 @ =gUnknown_02038570
+ ldr r2, _08129610 @ =gContestMons
ldr r3, _08129614 @ =0x020192e4
ldrb r0, [r3, 0x4]
lsls r0, 1
@@ -1837,7 +1837,7 @@ _08129608:
movs r0, 0x1
b _08129626
.align 2, 0
-_08129610: .4byte gUnknown_02038570
+_08129610: .4byte gContestMons
_08129614: .4byte 0x020192e4
_08129618: .4byte gContestEffects
_0812961C: .4byte gContestMoves
@@ -1896,7 +1896,7 @@ _08129678: .4byte gAIScriptPtr
thumb_func_start sub_812967C
sub_812967C: @ 812967C
push {r4-r7,lr}
- ldr r2, _081296D4 @ =gUnknown_02038570
+ ldr r2, _081296D4 @ =gContestMons
ldr r3, _081296D8 @ =0x020192e4
ldrb r0, [r3, 0x4]
lsls r0, 1
@@ -1943,7 +1943,7 @@ _081296CC:
movs r0, 0x1
b _081296EA
.align 2, 0
-_081296D4: .4byte gUnknown_02038570
+_081296D4: .4byte gContestMons
_081296D8: .4byte 0x020192e4
_081296DC: .4byte gContestEffects
_081296E0: .4byte gContestMoves
@@ -2002,7 +2002,7 @@ _0812973C: .4byte gAIScriptPtr
thumb_func_start sub_8129740
sub_8129740: @ 8129740
push {r4,lr}
- ldr r2, _08129784 @ =gUnknown_02038570
+ ldr r2, _08129784 @ =gContestMons
ldr r4, _08129788 @ =0x020192e4
ldrb r1, [r4, 0x4]
lsls r1, 1
@@ -2035,7 +2035,7 @@ sub_8129740: @ 8129740
pop {r0}
bx r0
.align 2, 0
-_08129784: .4byte gUnknown_02038570
+_08129784: .4byte gContestMons
_08129788: .4byte 0x020192e4
_0812978C: .4byte gContestEffects
_08129790: .4byte gContestMoves
@@ -2185,7 +2185,7 @@ _08129894:
thumb_func_start sub_8129898
sub_8129898: @ 8129898
push {r4,lr}
- ldr r2, _081298DC @ =gUnknown_02038570
+ ldr r2, _081298DC @ =gContestMons
ldr r4, _081298E0 @ =0x020192e4
ldrb r1, [r4, 0x4]
lsls r1, 1
@@ -2218,7 +2218,7 @@ sub_8129898: @ 8129898
pop {r0}
bx r0
.align 2, 0
-_081298DC: .4byte gUnknown_02038570
+_081298DC: .4byte gContestMons
_081298E0: .4byte 0x020192e4
_081298E4: .4byte gContestEffects
_081298E8: .4byte gContestMoves
@@ -2368,7 +2368,7 @@ _081299EC:
thumb_func_start contest_ai_get_move_used_count
contest_ai_get_move_used_count: @ 81299F0
push {r4,lr}
- ldr r3, _08129A20 @ =gUnknown_02038570
+ ldr r3, _08129A20 @ =gContestMons
ldr r4, _08129A24 @ =0x020192e4
ldrb r0, [r4, 0x4]
lsls r0, 1
@@ -2392,7 +2392,7 @@ contest_ai_get_move_used_count: @ 81299F0
movs r0, 0
b _08129A30
.align 2, 0
-_08129A20: .4byte gUnknown_02038570
+_08129A20: .4byte gContestMons
_08129A24: .4byte 0x020192e4
_08129A28:
ldrb r0, [r0, 0xB]
@@ -2558,7 +2558,7 @@ contest_ai_check_combo_starter: @ 8129B44
mov r7, r8
push {r7}
movs r5, 0
- ldr r3, _08129BAC @ =gUnknown_02038570
+ ldr r3, _08129BAC @ =gContestMons
ldr r2, _08129BB0 @ =0x020192e4
ldrb r1, [r2, 0x4]
lsls r1, 1
@@ -2610,7 +2610,7 @@ _08129B96:
pop {r0}
bx r0
.align 2, 0
-_08129BAC: .4byte gUnknown_02038570
+_08129BAC: .4byte gContestMons
_08129BB0: .4byte 0x020192e4
_08129BB4: .4byte gAIScriptPtr
thumb_func_end contest_ai_check_combo_starter
@@ -2697,7 +2697,7 @@ contest_ai_check_combo_finisher: @ 8129C40
mov r7, r8
push {r7}
movs r5, 0
- ldr r3, _08129CA8 @ =gUnknown_02038570
+ ldr r3, _08129CA8 @ =gContestMons
ldr r2, _08129CAC @ =0x020192e4
ldrb r1, [r2, 0x4]
lsls r1, 1
@@ -2748,7 +2748,7 @@ _08129C90:
pop {r0}
bx r0
.align 2, 0
-_08129CA8: .4byte gUnknown_02038570
+_08129CA8: .4byte gContestMons
_08129CAC: .4byte 0x020192e4
_08129CB0: .4byte gAIScriptPtr
thumb_func_end contest_ai_check_combo_finisher
@@ -2833,7 +2833,7 @@ _08129D38: .4byte gAIScriptPtr
contest_ai_check_would_finish_combo: @ 8129D3C
push {r4,r5,lr}
movs r5, 0
- ldr r3, _08129D8C @ =gUnknown_02038570
+ ldr r3, _08129D8C @ =gContestMons
ldr r4, _08129D90 @ =0x020192e4
ldrb r0, [r4, 0x4]
lsls r0, 1
@@ -2872,7 +2872,7 @@ _08129D7A:
pop {r0}
bx r0
.align 2, 0
-_08129D8C: .4byte gUnknown_02038570
+_08129D8C: .4byte gContestMons
_08129D90: .4byte 0x020192e4
_08129D94: .4byte gAIScriptPtr
thumb_func_end contest_ai_check_would_finish_combo
@@ -5166,7 +5166,7 @@ sub_812ADD8: @ 812ADD8
lsls r0, 8
orrs r4, r0
movs r3, 0
- ldr r0, _0812AE0C @ =gUnknown_02038570
+ ldr r0, _0812AE0C @ =gContestMons
mov r12, r0
ldr r5, _0812AE10 @ =0x020192e4
adds r0, r5, 0
@@ -5183,7 +5183,7 @@ sub_812ADD8: @ 812ADD8
b _0812AE2E
.align 2, 0
_0812AE08: .4byte gAIScriptPtr
-_0812AE0C: .4byte gUnknown_02038570
+_0812AE0C: .4byte gContestMons
_0812AE10: .4byte 0x020192e4
_0812AE14:
adds r3, 0x1
diff --git a/asm/contest_link_80C2020.s b/asm/contest_link_80C2020.s
index d4b9a7c0f..672eb4c1a 100644
--- a/asm/contest_link_80C2020.s
+++ b/asm/contest_link_80C2020.s
@@ -277,7 +277,7 @@ sub_80C226C: @ 80C226C
sub sp, 0x4
lsls r0, 24
lsrs r5, r0, 24
- ldr r0, _080C2288 @ =gUnknown_02038695
+ ldr r0, _080C2288 @ =gContestPlayerMonIndex
ldrb r0, [r0]
cmp r5, r0
bne _080C2294
@@ -287,7 +287,7 @@ sub_80C226C: @ 80C226C
adds r2, r0, 0
b _080C2296
.align 2, 0
-_080C2288: .4byte gUnknown_02038695
+_080C2288: .4byte gContestPlayerMonIndex
_080C228C: .4byte gUnknown_020238CC
_080C2290: .4byte gUnknown_083D17DC
_080C2294:
@@ -301,7 +301,7 @@ _080C2296:
strb r0, [r2, 0x2]
adds r2, 0x3
lsls r6, r5, 6
- ldr r7, _080C22EC @ =gUnknown_02038572
+ ldr r7, _080C22EC @ =gContestMons + 0x2
adds r1, r6, r7
adds r0, r2, 0
bl StringCopy
@@ -316,7 +316,7 @@ _080C2296:
adds r0, r2, 0
bl StringCopy
adds r2, r0, 0
- ldr r0, _080C22F4 @ =gUnknown_0203869A
+ ldr r0, _080C22F4 @ =gIsLinkContest
ldrb r1, [r0]
movs r0, 0x1
ands r0, r1
@@ -332,9 +332,9 @@ _080C2296:
b _080C230A
.align 2, 0
_080C22E8: .4byte gUnknown_020238CC
-_080C22EC: .4byte gUnknown_02038572
+_080C22EC: .4byte gContestMons + 0x2
_080C22F0: .4byte gUnknown_083D17E0
-_080C22F4: .4byte gUnknown_0203869A
+_080C22F4: .4byte gIsLinkContest
_080C22F8: .4byte gLinkPlayers + 0x8
_080C22FC:
adds r1, r7, 0
@@ -564,7 +564,7 @@ sub_80C24F4: @ 80C24F4
ands r0, r1
cmp r0, 0
bne _080C254E
- ldr r0, _080C2530 @ =gUnknown_0203869A
+ ldr r0, _080C2530 @ =gIsLinkContest
ldrb r1, [r0]
movs r0, 0x1
ands r0, r1
@@ -582,7 +582,7 @@ sub_80C24F4: @ 80C24F4
b _080C254E
.align 2, 0
_080C252C: .4byte gPaletteFade
-_080C2530: .4byte gUnknown_0203869A
+_080C2530: .4byte gIsLinkContest
_080C2534: .4byte gOtherText_LinkStandby
_080C2538: .4byte gTasks
_080C253C: .4byte sub_80C255C
@@ -1169,7 +1169,7 @@ _080C299C:
movs r4, 0
ldr r2, _080C29F4 @ =gUnknown_02038690
ldrb r0, [r2]
- ldr r1, _080C29F8 @ =gUnknown_0203869A
+ ldr r1, _080C29F8 @ =gIsLinkContest
ldr r3, _080C29FC @ =gStringVar1
cmp r0, 0
beq _080C29D4
@@ -1198,7 +1198,7 @@ _080C29D4:
b _080C2A10
.align 2, 0
_080C29F4: .4byte gUnknown_02038690
-_080C29F8: .4byte gUnknown_0203869A
+_080C29F8: .4byte gIsLinkContest
_080C29FC: .4byte gStringVar1
_080C2A00: .4byte gLinkPlayers + 0x8
_080C2A04:
@@ -1209,7 +1209,7 @@ _080C2A04:
bl StringCopy
_080C2A10:
ldr r0, _080C2A58 @ =gStringVar2
- ldr r1, _080C2A5C @ =gUnknown_02038572
+ ldr r1, _080C2A5C @ =gContestMons + 0x2
adds r1, r4, r1
bl StringCopy
ldr r1, _080C2A60 @ =gContestText_PokeWon
@@ -1241,7 +1241,7 @@ _080C2A4A:
.align 2, 0
_080C2A54: .4byte gUnknown_0203857D
_080C2A58: .4byte gStringVar2
-_080C2A5C: .4byte gUnknown_02038572
+_080C2A5C: .4byte gContestMons + 0x2
_080C2A60: .4byte gContestText_PokeWon
_080C2A64: .4byte 0x02018000
_080C2A68: .4byte 0x0000ffff
@@ -1315,7 +1315,7 @@ _080C2ADC:
ldrb r0, [r3]
lsls r4, r7, 2
mov r10, r4
- ldr r2, _080C2BD4 @ =gUnknown_02038570
+ ldr r2, _080C2BD4 @ =gContestMons
ldr r5, _080C2BD8 @ =gMonFrontPicTable
mov r12, r5
ldr r4, _080C2BDC @ =gMonFrontPicCoords
@@ -1357,7 +1357,7 @@ _080C2B14:
str r6, [sp, 0x4]
str r4, [sp, 0x8]
ldr r3, _080C2BE4 @ =0x02000000
- bl sub_800D334
+ bl HandleLoadSpecialPokePic
adds r0, r6, 0
ldr r1, [sp, 0xC]
adds r2, r4, 0
@@ -1418,7 +1418,7 @@ _080C2BC4: .4byte gUnknown_030042C4
_080C2BC8: .4byte gUnknown_03004240
_080C2BCC: .4byte 0x00005050
_080C2BD0: .4byte gUnknown_02038690
-_080C2BD4: .4byte gUnknown_02038570
+_080C2BD4: .4byte gContestMons
_080C2BD8: .4byte gMonFrontPicTable
_080C2BDC: .4byte gMonFrontPicCoords
_080C2BE0: .4byte gUnknown_081FAF4C
@@ -1586,14 +1586,14 @@ sub_80C2D1C: @ 80C2D1C
ands r0, r1
cmp r0, 0
beq _080C2D66
- ldr r0, _080C2D70 @ =gUnknown_0203869A
+ ldr r0, _080C2D70 @ =gIsLinkContest
ldrb r1, [r0]
adds r0, r2, 0
ands r0, r1
lsls r6, r7, 2
cmp r0, 0
bne _080C2D5A
- ldr r5, _080C2D74 @ =gUnknown_02038570
+ ldr r5, _080C2D74 @ =gContestMons
movs r4, 0x3
_080C2D42:
ldrh r0, [r5]
@@ -1619,8 +1619,8 @@ _080C2D66:
bx r0
.align 2, 0
_080C2D6C: .4byte gMain
-_080C2D70: .4byte gUnknown_0203869A
-_080C2D74: .4byte gUnknown_02038570
+_080C2D70: .4byte gIsLinkContest
+_080C2D74: .4byte gContestMons
_080C2D78: .4byte gTasks
_080C2D7C: .4byte sub_80C2D80
thumb_func_end sub_80C2D1C
@@ -1630,7 +1630,7 @@ sub_80C2D80: @ 80C2D80
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
- ldr r0, _080C2DAC @ =gUnknown_0203869A
+ ldr r0, _080C2DAC @ =gIsLinkContest
ldrb r1, [r0]
movs r0, 0x1
ands r0, r1
@@ -1648,7 +1648,7 @@ sub_80C2D80: @ 80C2D80
str r1, [r0]
b _080C2DCA
.align 2, 0
-_080C2DAC: .4byte gUnknown_0203869A
+_080C2DAC: .4byte gIsLinkContest
_080C2DB0: .4byte gOtherText_LinkStandby
_080C2DB4: .4byte gTasks
_080C2DB8: .4byte sub_80C2DD8
@@ -1678,7 +1678,7 @@ sub_80C2DD8: @ 80C2DD8
ldrb r1, [r0]
cmp r1, 0
bne _080C2DFC
- ldr r0, _080C2E08 @ =gUnknown_0203869A
+ ldr r0, _080C2E08 @ =gIsLinkContest
strb r1, [r0]
bl sub_80C3764
ldr r1, _080C2E0C @ =gTasks
@@ -1694,7 +1694,7 @@ _080C2DFC:
bx r0
.align 2, 0
_080C2E04: .4byte gReceivedRemoteLinkPlayers
-_080C2E08: .4byte gUnknown_0203869A
+_080C2E08: .4byte gIsLinkContest
_080C2E0C: .4byte gTasks
_080C2E10: .4byte sub_80C2E14
thumb_func_end sub_80C2DD8
@@ -1707,7 +1707,7 @@ sub_80C2E14: @ 80C2E14
lsls r5, 24
lsrs r5, 24
ldr r1, _080C2E80 @ =gUnknown_02038690
- ldr r0, _080C2E84 @ =gUnknown_02038695
+ ldr r0, _080C2E84 @ =gContestPlayerMonIndex
ldrb r0, [r0]
adds r0, r1
ldrb r0, [r0]
@@ -1750,7 +1750,7 @@ sub_80C2E14: @ 80C2E14
bx r0
.align 2, 0
_080C2E80: .4byte gUnknown_02038690
-_080C2E84: .4byte gUnknown_02038695
+_080C2E84: .4byte gContestPlayerMonIndex
_080C2E88: .4byte gScriptContestRank
_080C2E8C: .4byte 0x02000000
_080C2E90: .4byte 0x00015ddf
@@ -1973,7 +1973,7 @@ sub_80C3024: @ 80C3024
cmp r3, 0
beq _080C30B0
adds r1, r6, 0
- bl sub_809D4F4
+ bl GetMonIconPtr
lsls r1, r5, 9
adds r0, r1
adds r0, 0x80
@@ -2031,7 +2031,7 @@ _080C30A8: .4byte 0x84000060
_080C30AC: .4byte 0x0600c000
_080C30B0:
adds r1, r6, 0
- bl sub_809D4F4
+ bl GetMonIconPtr
lsls r1, r5, 9
adds r0, r1
adds r0, 0x80
@@ -2058,7 +2058,7 @@ sub_80C30D4: @ 80C30D4
lsls r1, 24
lsrs r6, r1, 24
movs r5, 0
- ldr r4, _080C3108 @ =gUnknown_02038570
+ ldr r4, _080C3108 @ =gContestMons
_080C30E4:
ldrh r0, [r4]
lsls r1, r5, 24
@@ -2077,7 +2077,7 @@ _080C30E4:
pop {r0}
bx r0
.align 2, 0
-_080C3108: .4byte gUnknown_02038570
+_080C3108: .4byte gContestMons
thumb_func_end sub_80C30D4
thumb_func_start sub_80C310C
@@ -2088,7 +2088,7 @@ sub_80C310C: @ 80C310C
movs r5, 0xA0
lsls r5, 16
_080C3116:
- ldr r1, _080C3150 @ =gUnknown_02038570
+ ldr r1, _080C3150 @ =gContestMons
lsls r0, r4, 6
adds r0, r1
ldrh r0, [r0]
@@ -2115,7 +2115,7 @@ _080C3116:
bx r0
.align 2, 0
_080C314C: .4byte gMonIconPaletteIndices
-_080C3150: .4byte gUnknown_02038570
+_080C3150: .4byte gContestMons
_080C3154: .4byte gMonIconPalettes
thumb_func_end sub_80C310C
@@ -2954,7 +2954,7 @@ sub_80C37E4: @ 80C37E4
sub sp, 0x10
movs r5, 0x1
movs r4, 0
- ldr r0, _080C3808 @ =gUnknown_0203869A
+ ldr r0, _080C3808 @ =gIsLinkContest
ldrb r0, [r0]
adds r1, r5, 0
ands r1, r0
@@ -2968,7 +2968,7 @@ sub_80C37E4: @ 80C37E4
str r2, [sp, 0x4]
b _080C386A
.align 2, 0
-_080C3808: .4byte gUnknown_0203869A
+_080C3808: .4byte gIsLinkContest
_080C380C: .4byte 0x0600e000
_080C3810: .4byte gUnknown_08E964B8
_080C3814:
@@ -3813,7 +3813,7 @@ sub_80C3E60: @ 80C3E60
adds r1, r2
strh r4, [r1, 0x8]
strh r5, [r1, 0xA]
- ldr r0, _080C3EA0 @ =gUnknown_02038570
+ ldr r0, _080C3EA0 @ =gContestMons
lsls r4, 6
adds r4, r0
ldrh r0, [r4]
@@ -3824,7 +3824,7 @@ sub_80C3E60: @ 80C3E60
.align 2, 0
_080C3E98: .4byte sub_80C3EA4
_080C3E9C: .4byte gTasks
-_080C3EA0: .4byte gUnknown_02038570
+_080C3EA0: .4byte gContestMons
thumb_func_end sub_80C3E60
thumb_func_start sub_80C3EA4
@@ -3852,7 +3852,7 @@ sub_80C3EA4: @ 80C3EA4
strh r0, [r4, 0x1C]
ldrh r0, [r4, 0xC]
ldrb r2, [r4, 0x1E]
- ldr r1, _080C3EFC @ =gUnknown_02038570
+ ldr r1, _080C3EFC @ =gContestMons
lsls r3, r5, 6
adds r1, 0x38
adds r3, r1
@@ -3872,7 +3872,7 @@ _080C3EEE:
bx r0
.align 2, 0
_080C3EF8: .4byte gTasks
-_080C3EFC: .4byte gUnknown_02038570
+_080C3EFC: .4byte gContestMons
thumb_func_end sub_80C3EA4
thumb_func_start sub_80C3F00
@@ -4638,7 +4638,7 @@ sub_80C44C0: @ 80C44C0
push {r4-r7,lr}
sub sp, 0x4
ldr r1, _080C44E8 @ =gUnknown_02038690
- ldr r0, _080C44EC @ =gUnknown_02038695
+ ldr r0, _080C44EC @ =gContestPlayerMonIndex
ldrb r0, [r0]
adds r0, r1
ldrb r0, [r0]
@@ -4659,7 +4659,7 @@ _080C44DE:
mov pc, r0
.align 2, 0
_080C44E8: .4byte gUnknown_02038690
-_080C44EC: .4byte gUnknown_02038695
+_080C44EC: .4byte gContestPlayerMonIndex
_080C44F0: .4byte gScriptContestCategory
_080C44F4: .4byte _080C44F8
.align 2, 0
@@ -4867,11 +4867,11 @@ sub_80C4698: @ 80C4698
lsls r1, 24
lsrs r4, r1, 24
lsls r1, r4, 6
- ldr r0, _080C46E0 @ =gUnknown_02038572
+ ldr r0, _080C46E0 @ =gContestMons + 0x2
adds r1, r0
adds r0, r5, 0
bl StringCopy
- ldr r0, _080C46E4 @ =gUnknown_0203869A
+ ldr r0, _080C46E4 @ =gIsLinkContest
ldrb r1, [r0]
movs r0, 0x1
ands r0, r1
@@ -4897,15 +4897,15 @@ _080C46DA:
pop {r0}
bx r0
.align 2, 0
-_080C46E0: .4byte gUnknown_02038572
-_080C46E4: .4byte gUnknown_0203869A
+_080C46E0: .4byte gContestMons + 0x2
+_080C46E4: .4byte gIsLinkContest
_080C46E8: .4byte gLinkPlayers
thumb_func_end sub_80C4698
thumb_func_start sub_80C46EC
sub_80C46EC: @ 80C46EC
push {lr}
- ldr r0, _080C4710 @ =gUnknown_0203869A
+ ldr r0, _080C4710 @ =gIsLinkContest
ldrb r1, [r0]
movs r0, 0x1
ands r0, r1
@@ -4922,7 +4922,7 @@ sub_80C46EC: @ 80C46EC
bl sub_80C4674
b _080C4730
.align 2, 0
-_080C4710: .4byte gUnknown_0203869A
+_080C4710: .4byte gIsLinkContest
_080C4714: .4byte gStringVar1
_080C4718: .4byte gSpecialVar_0x8006
_080C471C: .4byte gLinkPlayers + 0x8
@@ -5047,7 +5047,7 @@ sub_80C47F0: @ 80C47F0
movs r2, 0
ldr r3, _080C4830 @ =gUnknown_02038690
ldrb r0, [r3]
- ldr r1, _080C4834 @ =gUnknown_0203869A
+ ldr r1, _080C4834 @ =gIsLinkContest
ldr r4, _080C4838 @ =gStringVar3
cmp r0, 0
beq _080C4812
@@ -5077,7 +5077,7 @@ _080C4812:
b _080C484C
.align 2, 0
_080C4830: .4byte gUnknown_02038690
-_080C4834: .4byte gUnknown_0203869A
+_080C4834: .4byte gIsLinkContest
_080C4838: .4byte gStringVar3
_080C483C: .4byte gLinkPlayers + 0x8
_080C4840:
@@ -5182,7 +5182,7 @@ _080C48F0: .4byte sub_80C489C
thumb_func_start sub_80C48F4
sub_80C48F4: @ 80C48F4
ldr r2, _080C4908 @ =gSpecialVar_0x8004
- ldr r1, _080C490C @ =gUnknown_02038570
+ ldr r1, _080C490C @ =gContestMons
ldr r0, _080C4910 @ =gSpecialVar_0x8006
ldrh r0, [r0]
lsls r0, 6
@@ -5192,7 +5192,7 @@ sub_80C48F4: @ 80C48F4
bx lr
.align 2, 0
_080C4908: .4byte gSpecialVar_0x8004
-_080C490C: .4byte gUnknown_02038570
+_080C490C: .4byte gContestMons
_080C4910: .4byte gSpecialVar_0x8006
thumb_func_end sub_80C48F4
@@ -5244,13 +5244,13 @@ _080C4968: .4byte sub_80C4914
thumb_func_start sub_80C496C
sub_80C496C: @ 80C496C
ldr r0, _080C4978 @ =gSpecialVar_0x8004
- ldr r1, _080C497C @ =gUnknown_02038695
+ ldr r1, _080C497C @ =gContestPlayerMonIndex
ldrb r1, [r1]
strh r1, [r0]
bx lr
.align 2, 0
_080C4978: .4byte gSpecialVar_0x8004
-_080C497C: .4byte gUnknown_02038695
+_080C497C: .4byte gContestPlayerMonIndex
thumb_func_end sub_80C496C
thumb_func_start sub_80C4980
diff --git a/asm/contest_link_80C857C.s b/asm/contest_link_80C857C.s
index b44220769..12dc3bdb5 100644
--- a/asm/contest_link_80C857C.s
+++ b/asm/contest_link_80C857C.s
@@ -145,14 +145,14 @@ sub_80C8660: @ 80C8660
cmp r0, 0
beq _080C868E
bl GetMultiplayerId
- ldr r1, _080C8698 @ =gUnknown_02038695
+ ldr r1, _080C8698 @ =gContestPlayerMonIndex
strb r0, [r1]
bl GetLinkPlayerCount
lsls r0, 24
lsrs r0, 24
cmp r0, 0x4
bne _080C868E
- ldr r1, _080C869C @ =gUnknown_0203869A
+ ldr r1, _080C869C @ =gIsLinkContest
movs r0, 0x1
strb r0, [r1]
adds r0, r4, 0
@@ -163,8 +163,8 @@ _080C868E:
bx r0
.align 2, 0
_080C8694: .4byte gReceivedRemoteLinkPlayers
-_080C8698: .4byte gUnknown_02038695
-_080C869C: .4byte gUnknown_0203869A
+_080C8698: .4byte gContestPlayerMonIndex
+_080C869C: .4byte gIsLinkContest
thumb_func_end sub_80C8660
thumb_func_start sub_80C86A0
@@ -290,10 +290,10 @@ _080C876C:
b _080C8896
_080C8782:
ldr r0, _080C879C @ =gBlockSendBuffer
- ldr r1, _080C87A0 @ =gUnknown_02038695
+ ldr r1, _080C87A0 @ =gContestPlayerMonIndex
ldrb r1, [r1]
lsls r1, 6
- ldr r2, _080C87A4 @ =gUnknown_02038570
+ ldr r2, _080C87A4 @ =gContestMons
adds r1, r2
movs r2, 0x40
bl memcpy
@@ -302,14 +302,14 @@ _080C8782:
b _080C87BA
.align 2, 0
_080C879C: .4byte gBlockSendBuffer
-_080C87A0: .4byte gUnknown_02038695
-_080C87A4: .4byte gUnknown_02038570
+_080C87A0: .4byte gContestPlayerMonIndex
+_080C87A4: .4byte gContestMons
_080C87A8:
ldr r0, _080C87C4 @ =gBlockSendBuffer
- ldr r1, _080C87C8 @ =gUnknown_02038695
+ ldr r1, _080C87C8 @ =gContestPlayerMonIndex
ldrb r1, [r1]
lsls r1, 6
- ldr r2, _080C87CC @ =gUnknown_02038570
+ ldr r2, _080C87CC @ =gContestMons
adds r1, r2
movs r2, 0x40
bl memcpy
@@ -320,8 +320,8 @@ _080C87BA:
b _080C8896
.align 2, 0
_080C87C4: .4byte gBlockSendBuffer
-_080C87C8: .4byte gUnknown_02038695
-_080C87CC: .4byte gUnknown_02038570
+_080C87C8: .4byte gContestPlayerMonIndex
+_080C87CC: .4byte gContestMons
_080C87D0:
bl sub_80C85D8
lsls r0, 24
@@ -329,7 +329,7 @@ _080C87D0:
beq _080C8896
movs r7, 0
str r5, [sp]
- ldr r0, _080C8818 @ =gUnknown_02038570
+ ldr r0, _080C8818 @ =gContestMons
ldr r6, _080C881C @ =gLinkPlayers
movs r5, 0
mov r10, r0
@@ -342,7 +342,7 @@ _080C87EA:
mov r0, r10
movs r2, 0x40
bl memcpy
- ldr r0, _080C8824 @ =gUnknown_02038572
+ ldr r0, _080C8824 @ =gContestMons + 0x2
adds r4, r5, r0
ldrh r0, [r6, 0x1A]
cmp r0, 0x1
@@ -356,10 +356,10 @@ _080C87EA:
bl ConvertInternationalString
b _080C883E
.align 2, 0
-_080C8818: .4byte gUnknown_02038570
+_080C8818: .4byte gContestMons
_080C881C: .4byte gLinkPlayers
_080C8820: .4byte gBlockRecvBuffer
-_080C8824: .4byte gUnknown_02038572
+_080C8824: .4byte gContestMons + 0x2
_080C8828:
ldrb r0, [r4, 0xA]
cmp r0, 0xFC
@@ -612,12 +612,12 @@ _080C8A08:
lsls r0, 24
cmp r0, 0
beq _080C8A30
- ldr r0, _080C8A1C @ =gUnknown_02038695
+ ldr r0, _080C8A1C @ =gContestPlayerMonIndex
movs r1, 0x1
bl sub_80C857C
b _080C8A2A
.align 2, 0
-_080C8A1C: .4byte gUnknown_02038695
+_080C8A1C: .4byte gContestPlayerMonIndex
_080C8A20:
bl sub_80C85D8
lsls r0, 24
@@ -661,7 +661,7 @@ _080C8A64:
lsls r0, 24
cmp r0, 0
beq _080C8AC2
- ldr r0, _080C8A8C @ =gUnknown_02038695
+ ldr r0, _080C8A8C @ =gContestPlayerMonIndex
ldrb r1, [r0]
lsls r0, r1, 3
subs r0, r1
@@ -675,7 +675,7 @@ _080C8A64:
strh r0, [r4, 0x8]
b _080C8AC2
.align 2, 0
-_080C8A8C: .4byte gUnknown_02038695
+_080C8A8C: .4byte gContestPlayerMonIndex
_080C8A90: .4byte 0x02019266
_080C8A94:
bl sub_80C85D8
diff --git a/asm/contest_painting.s b/asm/contest_painting.s
deleted file mode 100644
index 91ee2d547..000000000
--- a/asm/contest_painting.s
+++ /dev/null
@@ -1,1293 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_8106630
-sub_8106630: @ 8106630
- push {r4-r7,lr}
- ldr r2, _0810665C @ =0x02015de0
- subs r4, r2, 0x2
- subs r5, r2, 0x1
- ldr r3, _08106660 @ =gSaveBlock1
- subs r0, 0x1
- lsls r1, r0, 5
- adds r1, r3
- ldr r3, _08106664 @ =0x00002dfc
- adds r1, r3
- ldm r1!, {r3,r6,r7}
- stm r2!, {r3,r6,r7}
- ldm r1!, {r3,r6,r7}
- stm r2!, {r3,r6,r7}
- ldm r1!, {r6,r7}
- stm r2!, {r6,r7}
- strb r0, [r4]
- movs r0, 0
- strb r0, [r5]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0810665C: .4byte 0x02015de0
-_08106660: .4byte gSaveBlock1
-_08106664: .4byte 0x00002dfc
- thumb_func_end sub_8106630
-
- thumb_func_start CB2_ContestPainting
-CB2_ContestPainting: @ 8106668
- push {lr}
- bl ShowContestPainting
- pop {r0}
- bx r0
- thumb_func_end CB2_ContestPainting
-
- thumb_func_start ShowContestPainting
-ShowContestPainting: @ 8106674
- push {r4-r7,lr}
- sub sp, 0x4
- ldr r1, _08106694 @ =gMain
- ldr r2, _08106698 @ =0x0000043c
- adds r0, r1, r2
- ldrb r0, [r0]
- adds r4, r1, 0
- cmp r0, 0x4
- bls _08106688
- b _081067E0
-_08106688:
- lsls r0, 2
- ldr r1, _0810669C @ =_081066A0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08106694: .4byte gMain
-_08106698: .4byte 0x0000043c
-_0810669C: .4byte _081066A0
- .align 2, 0
-_081066A0:
- .4byte _081066B4
- .4byte _081066D8
- .4byte _08106734
- .4byte _0810675C
- .4byte _0810678C
-_081066B4:
- bl remove_some_task
- movs r0, 0
- bl SetVBlankCallback
- ldr r1, _081066D0 @ =gUnknown_03005E8C
- ldr r0, _081066D4 @ =0x02015de0
- str r0, [r1]
- movs r0, 0x1
- bl ContestPaintingInitVars
- bl ContestPaintingInitBG
- b _0810676E
- .align 2, 0
-_081066D0: .4byte gUnknown_03005E8C
-_081066D4: .4byte 0x02015de0
-_081066D8:
- bl ResetPaletteFade
- movs r2, 0xC0
- lsls r2, 19
- movs r3, 0xC0
- lsls r3, 9
- movs r5, 0
- ldr r1, _08106724 @ =0x040000d4
- movs r4, 0x80
- lsls r4, 5
- ldr r6, _08106728 @ =0x85000400
- movs r7, 0x85
- lsls r7, 24
-_081066F2:
- str r5, [sp]
- mov r0, sp
- str r0, [r1]
- str r2, [r1, 0x4]
- str r6, [r1, 0x8]
- ldr r0, [r1, 0x8]
- adds r2, r4
- subs r3, r4
- cmp r3, r4
- bhi _081066F2
- str r5, [sp]
- mov r0, sp
- str r0, [r1]
- str r2, [r1, 0x4]
- lsrs r0, r3, 2
- orrs r0, r7
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- bl ResetSpriteData
- ldr r1, _0810672C @ =gMain
- ldr r2, _08106730 @ =0x0000043c
- adds r1, r2
- b _08106774
- .align 2, 0
-_08106724: .4byte 0x040000d4
-_08106728: .4byte 0x85000400
-_0810672C: .4byte gMain
-_08106730: .4byte 0x0000043c
-_08106734:
- ldrh r0, [r4, 0x20]
- bl SeedRng
- bl InitKeys
- ldr r0, _08106750 @ =0x02000000
- ldr r1, _08106754 @ =0x00015ddf
- adds r0, r1
- ldrb r0, [r0]
- bl ContestPaintingInitWindow
- ldr r2, _08106758 @ =0x0000043c
- adds r1, r4, r2
- b _08106774
- .align 2, 0
-_08106750: .4byte 0x02000000
-_08106754: .4byte 0x00015ddf
-_08106758: .4byte 0x0000043c
-_0810675C:
- ldr r1, _0810677C @ =0x02000000
- ldr r2, _08106780 @ =0x00015dde
- adds r0, r1, r2
- ldrb r0, [r0]
- adds r2, 0x1
- adds r1, r2
- ldrb r1, [r1]
- bl sub_8107090
-_0810676E:
- ldr r1, _08106784 @ =gMain
- ldr r0, _08106788 @ =0x0000043c
- adds r1, r0
-_08106774:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _081067E0
- .align 2, 0
-_0810677C: .4byte 0x02000000
-_08106780: .4byte 0x00015dde
-_08106784: .4byte gMain
-_08106788: .4byte 0x0000043c
-_0810678C:
- ldr r1, _081067E8 @ =0x02000000
- ldr r2, _081067EC @ =0x00015dde
- adds r0, r1, r2
- ldrb r0, [r0]
- adds r2, 0x1
- adds r1, r2
- ldrb r1, [r1]
- bl ContestPaintingPrintCaption
- ldr r0, _081067F0 @ =gUnknown_083F6140
- movs r1, 0
- movs r2, 0x2
- bl LoadPalette
- movs r1, 0xA0
- lsls r1, 19
- movs r4, 0
- str r4, [sp]
- ldr r0, _081067F4 @ =0x040000d4
- mov r2, sp
- str r2, [r0]
- str r1, [r0, 0x4]
- ldr r1, _081067F8 @ =0x85000100
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- movs r0, 0x2
- bl BeginFastPaletteFade
- ldr r0, _081067FC @ =VBlankCB_ContestPainting
- bl SetVBlankCallback
- ldr r0, _08106800 @ =gUnknown_03000750
- strb r4, [r0]
- movs r1, 0x80
- lsls r1, 19
- movs r2, 0x9A
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _08106804 @ =CB2_HoldContestPainting
- bl SetMainCallback2
-_081067E0:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081067E8: .4byte 0x02000000
-_081067EC: .4byte 0x00015dde
-_081067F0: .4byte gUnknown_083F6140
-_081067F4: .4byte 0x040000d4
-_081067F8: .4byte 0x85000100
-_081067FC: .4byte VBlankCB_ContestPainting
-_08106800: .4byte gUnknown_03000750
-_08106804: .4byte CB2_HoldContestPainting
- thumb_func_end ShowContestPainting
-
- thumb_func_start CB2_HoldContestPainting
-CB2_HoldContestPainting: @ 8106808
- push {lr}
- bl HoldContestPainting
- bl UpdatePaletteFade
- pop {r0}
- bx r0
- thumb_func_end CB2_HoldContestPainting
-
- thumb_func_start CB2_QuitContestPainting
-CB2_QuitContestPainting: @ 8106818
- push {lr}
- ldr r0, _08106828 @ =gMain
- ldr r0, [r0, 0x8]
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_08106828: .4byte gMain
- thumb_func_end CB2_QuitContestPainting
-
- thumb_func_start HoldContestPainting
-HoldContestPainting: @ 810682C
- push {lr}
- sub sp, 0x4
- ldr r3, _08106844 @ =gUnknown_03000750
- ldrb r1, [r3]
- cmp r1, 0x1
- beq _08106880
- cmp r1, 0x1
- bgt _08106848
- cmp r1, 0
- beq _0810684E
- b _081068E6
- .align 2, 0
-_08106844: .4byte gUnknown_03000750
-_08106848:
- cmp r1, 0x2
- beq _081068C0
- b _081068E6
-_0810684E:
- ldr r0, _08106874 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0810685E
- movs r0, 0x1
- strb r0, [r3]
-_0810685E:
- ldr r0, _08106878 @ =gUnknown_03000756
- ldrb r0, [r0]
- cmp r0, 0
- beq _081068E6
- ldr r1, _0810687C @ =gUnknown_03000754
- ldrh r0, [r1]
- cmp r0, 0
- beq _081068E6
- subs r0, 0x1
- b _081068E4
- .align 2, 0
-_08106874: .4byte gPaletteFade
-_08106878: .4byte gUnknown_03000756
-_0810687C: .4byte gUnknown_03000754
-_08106880:
- ldr r0, _081068B4 @ =gMain
- ldrh r2, [r0, 0x2E]
- ands r1, r2
- cmp r1, 0
- bne _08106892
- movs r0, 0x2
- ands r0, r2
- cmp r0, 0
- beq _081068A4
-_08106892:
- movs r0, 0x2
- strb r0, [r3]
- subs r0, 0x3
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
-_081068A4:
- ldr r0, _081068B8 @ =gUnknown_03000756
- ldrb r0, [r0]
- cmp r0, 0
- beq _081068E6
- ldr r1, _081068BC @ =gUnknown_03000754
- movs r0, 0
- b _081068E4
- .align 2, 0
-_081068B4: .4byte gMain
-_081068B8: .4byte gUnknown_03000756
-_081068BC: .4byte gUnknown_03000754
-_081068C0:
- ldr r0, _081068EC @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _081068D2
- ldr r0, _081068F0 @ =CB2_QuitContestPainting
- bl SetMainCallback2
-_081068D2:
- ldr r0, _081068F4 @ =gUnknown_03000756
- ldrb r0, [r0]
- cmp r0, 0
- beq _081068E6
- ldr r1, _081068F8 @ =gUnknown_03000754
- ldrh r0, [r1]
- cmp r0, 0x1D
- bhi _081068E6
- adds r0, 0x1
-_081068E4:
- strh r0, [r1]
-_081068E6:
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_081068EC: .4byte gPaletteFade
-_081068F0: .4byte CB2_QuitContestPainting
-_081068F4: .4byte gUnknown_03000756
-_081068F8: .4byte gUnknown_03000754
- thumb_func_end HoldContestPainting
-
- thumb_func_start ContestPaintingInitWindow
-ContestPaintingInitWindow: @ 81068FC
- push {r4,lr}
- ldr r4, _08106914 @ =gWindowConfig_81E7160
- adds r0, r4, 0
- bl InitMenuWindow
- adds r0, r4, 0
- bl SetUpWindowConfig
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08106914: .4byte gWindowConfig_81E7160
- thumb_func_end ContestPaintingInitWindow
-
- thumb_func_start ContestPaintingPrintCaption
-ContestPaintingPrintCaption: @ 8106918
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- lsls r1, 24
- lsrs r1, 24
- cmp r1, 0x1
- beq _081069BE
- ldr r2, _08106974 @ =gUnknown_03005E40
- ldr r6, _08106978 @ =gUnknown_03005E8C
- ldr r0, [r6]
- ldrb r0, [r0, 0xA]
- cmp r3, 0x7
- bhi _08106988
- ldr r1, _0810697C @ =gUnknown_083F60AC
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- adds r0, r2, 0
- bl StringCopy
- adds r2, r0, 0
- ldr r1, _08106980 @ =gContestText_ContestWinner
- bl StringCopy
- adds r2, r0, 0
- ldr r1, [r6]
- adds r1, 0x16
- bl StringCopy
- adds r2, r0, 0
- movs r0, 0xFC
- strb r0, [r2]
- movs r0, 0x16
- strb r0, [r2, 0x1]
- adds r2, 0x2
- ldr r1, _08106984 @ =gOtherText_Unknown1
- adds r0, r2, 0
- bl StringCopy
- adds r2, r0, 0
- ldr r1, [r6]
- adds r1, 0xB
- bl StringCopy10
- movs r1, 0x6
- b _081069AE
- .align 2, 0
-_08106974: .4byte gUnknown_03005E40
-_08106978: .4byte gUnknown_03005E8C
-_0810697C: .4byte gUnknown_083F60AC
-_08106980: .4byte gContestText_ContestWinner
-_08106984: .4byte gOtherText_Unknown1
-_08106988:
- ldr r4, _081069C4 @ =gUnknown_083F60C0
- lsls r5, r0, 3
- adds r0, r5, r4
- ldr r1, [r0]
- adds r0, r2, 0
- bl StringCopy
- adds r2, r0, 0
- ldr r1, [r6]
- adds r1, 0xB
- bl StringCopy10
- adds r2, r0, 0
- adds r4, 0x4
- adds r5, r4
- ldr r1, [r5]
- bl StringCopy
- movs r1, 0x3
-_081069AE:
- movs r2, 0xE
- ldr r0, _081069C8 @ =gUnknown_03005E40
- lsls r1, 3
- adds r1, 0x1
- lsls r2, 3
- movs r3, 0x1
- bl MenuPrint_PixelCoords
-_081069BE:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_081069C4: .4byte gUnknown_083F60C0
-_081069C8: .4byte gUnknown_03005E40
- thumb_func_end ContestPaintingPrintCaption
-
- thumb_func_start ContestPaintingInitBG
-ContestPaintingInitBG: @ 81069CC
- movs r0, 0x80
- lsls r0, 19
- movs r3, 0
- strh r3, [r0]
- ldr r2, _081069FC @ =0x04000200
- ldrh r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strh r0, [r2]
- ldr r1, _08106A00 @ =REG_BG0CNT
- ldr r2, _08106A04 @ =0x00000c42
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r2, _08106A08 @ =0x00000a45
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _08106A0C @ =REG_BLDCNT
- strh r3, [r0]
- adds r0, 0x2
- strh r3, [r0]
- adds r0, 0x2
- strh r3, [r0]
- bx lr
- .align 2, 0
-_081069FC: .4byte 0x04000200
-_08106A00: .4byte REG_BG0CNT
-_08106A04: .4byte 0x00000c42
-_08106A08: .4byte 0x00000a45
-_08106A0C: .4byte REG_BLDCNT
- thumb_func_end ContestPaintingInitBG
-
- thumb_func_start ContestPaintingInitVars
-ContestPaintingInitVars: @ 8106A10
- push {lr}
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- bne _08106A34
- ldr r0, _08106A28 @ =gUnknown_03000756
- strb r1, [r0]
- ldr r0, _08106A2C @ =gUnknown_03000752
- strh r1, [r0]
- ldr r0, _08106A30 @ =gUnknown_03000754
- strh r1, [r0]
- b _08106A46
- .align 2, 0
-_08106A28: .4byte gUnknown_03000756
-_08106A2C: .4byte gUnknown_03000752
-_08106A30: .4byte gUnknown_03000754
-_08106A34:
- ldr r1, _08106A4C @ =gUnknown_03000756
- movs r0, 0x1
- strb r0, [r1]
- ldr r1, _08106A50 @ =gUnknown_03000752
- movs r0, 0xF
- strh r0, [r1]
- ldr r1, _08106A54 @ =gUnknown_03000754
- movs r0, 0x1E
- strh r0, [r1]
-_08106A46:
- pop {r0}
- bx r0
- .align 2, 0
-_08106A4C: .4byte gUnknown_03000756
-_08106A50: .4byte gUnknown_03000752
-_08106A54: .4byte gUnknown_03000754
- thumb_func_end ContestPaintingInitVars
-
- thumb_func_start ContestPaintingMosaic
-ContestPaintingMosaic: @ 8106A58
- push {lr}
- ldr r0, _08106A68 @ =gUnknown_03000756
- ldrb r1, [r0]
- cmp r1, 0
- bne _08106A70
- ldr r0, _08106A6C @ =REG_MOSAIC
- strh r1, [r0]
- b _08106A92
- .align 2, 0
-_08106A68: .4byte gUnknown_03000756
-_08106A6C: .4byte REG_MOSAIC
-_08106A70:
- ldr r1, _08106A98 @ =REG_BG1CNT
- ldr r2, _08106A9C @ =0x00000a45
- adds r0, r2, 0
- strh r0, [r1]
- ldr r2, _08106AA0 @ =gUnknown_03000752
- ldr r0, _08106AA4 @ =gUnknown_03000754
- ldrh r1, [r0]
- lsrs r1, 1
- strh r1, [r2]
- ldr r3, _08106AA8 @ =REG_MOSAIC
- lsls r0, r1, 12
- lsls r2, r1, 8
- orrs r0, r2
- lsls r2, r1, 4
- orrs r0, r2
- orrs r0, r1
- strh r0, [r3]
-_08106A92:
- pop {r0}
- bx r0
- .align 2, 0
-_08106A98: .4byte REG_BG1CNT
-_08106A9C: .4byte 0x00000a45
-_08106AA0: .4byte gUnknown_03000752
-_08106AA4: .4byte gUnknown_03000754
-_08106AA8: .4byte REG_MOSAIC
- thumb_func_end ContestPaintingMosaic
-
- thumb_func_start VBlankCB_ContestPainting
-VBlankCB_ContestPainting: @ 8106AAC
- push {lr}
- bl ContestPaintingMosaic
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- pop {r0}
- bx r0
- thumb_func_end VBlankCB_ContestPainting
-
- thumb_func_start sub_8106AC4
-sub_8106AC4: @ 8106AC4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0xC
- adds r4, r1, 0
- lsls r0, 16
- lsrs r6, r0, 16
- lsls r4, 24
- lsrs r4, 24
- ldr r7, _08106B28 @ =gUnknown_03005E8C
- ldr r0, [r7]
- ldr r1, [r0, 0x4]
- ldr r2, [r0]
- adds r0, r6, 0
- bl species_and_otid_get_pal
- ldr r1, _08106B2C @ =gUnknown_03005E90
- mov r8, r1
- ldr r1, [r1]
- bl LZDecompressVram
- cmp r4, 0
- bne _08106B40
- lsls r0, r6, 3
- ldr r1, _08106B30 @ =gMonFrontPicTable
- adds r0, r1
- ldr r1, _08106B34 @ =gMonFrontPicCoords
- lsls r2, r6, 2
- adds r2, r1
- ldrb r1, [r2]
- ldrb r2, [r2, 0x1]
- movs r3, 0x80
- lsls r3, 18
- ldr r4, _08106B38 @ =gUnknown_081FAF4C
- ldr r5, [r4, 0x4]
- str r5, [sp]
- str r6, [sp, 0x4]
- ldr r4, [r7]
- ldr r4, [r4]
- str r4, [sp, 0x8]
- bl sub_800D334
- mov r2, r8
- ldr r1, [r2]
- ldr r0, _08106B3C @ =gUnknown_03005E10
- ldr r2, [r0]
- adds r0, r5, 0
- bl sub_8106B90
- b _08106B74
- .align 2, 0
-_08106B28: .4byte gUnknown_03005E8C
-_08106B2C: .4byte gUnknown_03005E90
-_08106B30: .4byte gMonFrontPicTable
-_08106B34: .4byte gMonFrontPicCoords
-_08106B38: .4byte gUnknown_081FAF4C
-_08106B3C: .4byte gUnknown_03005E10
-_08106B40:
- lsls r0, r6, 3
- ldr r1, _08106B80 @ =gMonBackPicTable
- adds r0, r1
- ldr r1, _08106B84 @ =gMonBackPicCoords
- lsls r2, r6, 2
- adds r2, r1
- ldrb r1, [r2]
- ldrb r2, [r2, 0x1]
- movs r3, 0x80
- lsls r3, 18
- ldr r4, _08106B88 @ =gUnknown_081FAF4C
- ldr r5, [r4]
- str r5, [sp]
- str r6, [sp, 0x4]
- ldr r4, [r7]
- ldr r4, [r4]
- str r4, [sp, 0x8]
- bl sub_800D334
- mov r0, r8
- ldr r1, [r0]
- ldr r0, _08106B8C @ =gUnknown_03005E10
- ldr r2, [r0]
- adds r0, r5, 0
- bl sub_8106B90
-_08106B74:
- add sp, 0xC
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08106B80: .4byte gMonBackPicTable
-_08106B84: .4byte gMonBackPicCoords
-_08106B88: .4byte gUnknown_081FAF4C
-_08106B8C: .4byte gUnknown_03005E10
- thumb_func_end sub_8106AC4
-
- thumb_func_start sub_8106B90
-sub_8106B90: @ 8106B90
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- mov r10, r0
- mov r9, r1
- str r2, [sp]
- movs r0, 0
-_08106BA4:
- movs r3, 0
- adds r1, r0, 0x1
- str r1, [sp, 0x4]
- lsls r0, 3
- str r0, [sp, 0x8]
-_08106BAE:
- movs r1, 0
- adds r2, r3, 0x1
- mov r8, r2
- ldr r7, [sp, 0x8]
- adds r0, r7, r3
- lsls r0, 5
- mov r12, r0
- lsls r4, r3, 3
-_08106BBE:
- movs r3, 0
- lsls r0, r1, 2
- adds r6, r1, 0x1
- mov r2, r12
- adds r5, r2, r0
- ldr r7, [sp, 0x8]
- adds r0, r7, r1
- lsls r0, 7
- ldr r1, [sp]
- adds r2, r0, r1
-_08106BD2:
- lsrs r0, r3, 1
- adds r0, r5, r0
- add r0, r10
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r3
- cmp r0, 0
- beq _08106BE6
- lsrs r1, 4
- b _08106BEA
-_08106BE6:
- movs r0, 0xF
- ands r1, r0
-_08106BEA:
- cmp r1, 0
- bne _08106BFC
- adds r0, r4, r3
- lsls r0, 1
- adds r0, r2
- movs r7, 0x80
- lsls r7, 8
- adds r1, r7, 0
- b _08106C08
-_08106BFC:
- adds r0, r4, r3
- lsls r0, 1
- adds r0, r2
- lsls r1, 1
- add r1, r9
- ldrh r1, [r1]
-_08106C08:
- strh r1, [r0]
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x7
- bls _08106BD2
- lsls r0, r6, 16
- lsrs r1, r0, 16
- cmp r1, 0x7
- bls _08106BBE
- mov r1, r8
- lsls r0, r1, 16
- lsrs r3, r0, 16
- cmp r3, 0x7
- bls _08106BAE
- ldr r2, [sp, 0x4]
- lsls r0, r2, 16
- lsrs r0, 16
- cmp r0, 0x7
- bls _08106BA4
- add sp, 0xC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8106B90
-
- thumb_func_start sub_8106C40
-sub_8106C40: @ 8106C40
- push {r4-r7,lr}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _08106C7C @ =gPictureFramePalettes
- movs r2, 0x80
- lsls r2, 1
- movs r1, 0
- bl LoadPalette
- cmp r4, 0x1
- beq _08106C5E
- b _08106DB4
-_08106C5E:
- ldr r0, _08106C80 @ =gUnknown_03005E8C
- ldr r0, [r0]
- ldrb r0, [r0, 0xA]
- movs r1, 0x3
- bl __udivsi3
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bhi _08106D1C
- lsls r0, 2
- ldr r1, _08106C84 @ =_08106C88
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08106C7C: .4byte gPictureFramePalettes
-_08106C80: .4byte gUnknown_03005E8C
-_08106C84: .4byte _08106C88
- .align 2, 0
-_08106C88:
- .4byte _08106C9C
- .4byte _08106CB4
- .4byte _08106CCC
- .4byte _08106CE4
- .4byte _08106D08
-_08106C9C:
- ldr r0, _08106CAC @ =gPictureFrameTiles_0
- movs r1, 0xC0
- lsls r1, 19
- bl RLUnCompVram
- ldr r0, _08106CB0 @ =gPictureFrameTilemap_0
- b _08106CF0
- .align 2, 0
-_08106CAC: .4byte gPictureFrameTiles_0
-_08106CB0: .4byte gPictureFrameTilemap_0
-_08106CB4:
- ldr r0, _08106CC4 @ =gPictureFrameTiles_1
- movs r1, 0xC0
- lsls r1, 19
- bl RLUnCompVram
- ldr r0, _08106CC8 @ =gPictureFrameTilemap_1
- b _08106CF0
- .align 2, 0
-_08106CC4: .4byte gPictureFrameTiles_1
-_08106CC8: .4byte gPictureFrameTilemap_1
-_08106CCC:
- ldr r0, _08106CDC @ =gPictureFrameTiles_2
- movs r1, 0xC0
- lsls r1, 19
- bl RLUnCompVram
- ldr r0, _08106CE0 @ =gPictureFrameTilemap_2
- b _08106CF0
- .align 2, 0
-_08106CDC: .4byte gPictureFrameTiles_2
-_08106CE0: .4byte gPictureFrameTilemap_2
-_08106CE4:
- ldr r0, _08106CFC @ =gPictureFrameTiles_3
- movs r1, 0xC0
- lsls r1, 19
- bl RLUnCompVram
- ldr r0, _08106D00 @ =gPictureFrameTilemap_3
-_08106CF0:
- ldr r1, _08106D04 @ =gUnknown_03005E10
- ldr r1, [r1]
- bl RLUnCompWram
- b _08106D1C
- .align 2, 0
-_08106CFC: .4byte gPictureFrameTiles_3
-_08106D00: .4byte gPictureFrameTilemap_3
-_08106D04: .4byte gUnknown_03005E10
-_08106D08:
- ldr r0, _08106D98 @ =gPictureFrameTiles_4
- movs r1, 0xC0
- lsls r1, 19
- bl RLUnCompVram
- ldr r0, _08106D9C @ =gPictureFrameTilemap_4
- ldr r1, _08106DA0 @ =gUnknown_03005E10
- ldr r1, [r1]
- bl RLUnCompWram
-_08106D1C:
- movs r1, 0
- ldr r5, _08106DA4 @ =0x06006000
- ldr r0, _08106DA8 @ =0x00001015
- adds r4, r0, 0
-_08106D24:
- movs r3, 0
- lsls r2, r1, 5
-_08106D28:
- adds r0, r2, r3
- lsls r0, 1
- adds r0, r5
- strh r4, [r0]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x1F
- bls _08106D28
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x13
- bls _08106D24
- movs r1, 0
- ldr r0, _08106DAC @ =0x0600608c
- mov r12, r0
- ldr r7, _08106DA0 @ =gUnknown_03005E10
-_08106D4C:
- movs r3, 0
- adds r6, r1, 0x1
- lsls r5, r1, 5
- lsls r4, r1, 6
-_08106D54:
- adds r2, r5, r3
- lsls r2, 1
- add r2, r12
- ldr r0, [r7]
- adds r0, r4, r0
- lsls r1, r3, 1
- adds r0, r1
- adds r0, 0x8C
- ldrh r0, [r0]
- strh r0, [r2]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x11
- bls _08106D54
- lsls r0, r6, 24
- lsrs r1, r0, 24
- cmp r1, 0x9
- bls _08106D4C
- movs r3, 0
- ldr r4, _08106DB0 @ =0x0600608e
- ldr r2, _08106DA0 @ =gUnknown_03005E10
-_08106D80:
- lsls r1, r3, 1
- adds r1, r4
- ldr r0, [r2]
- adds r0, 0x8E
- ldrh r0, [r0]
- strh r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0xF
- bls _08106D80
- b _08106E86
- .align 2, 0
-_08106D98: .4byte gPictureFrameTiles_4
-_08106D9C: .4byte gPictureFrameTilemap_4
-_08106DA0: .4byte gUnknown_03005E10
-_08106DA4: .4byte 0x06006000
-_08106DA8: .4byte 0x00001015
-_08106DAC: .4byte 0x0600608c
-_08106DB0: .4byte 0x0600608e
-_08106DB4:
- cmp r5, 0x7
- bhi _08106DD0
- ldr r0, _08106DC8 @ =gPictureFrameTiles_5
- movs r1, 0xC0
- lsls r1, 19
- bl RLUnCompVram
- ldr r0, _08106DCC @ =gPictureFrameTilemap_5
- b _08106E60
- .align 2, 0
-_08106DC8: .4byte gPictureFrameTiles_5
-_08106DCC: .4byte gPictureFrameTilemap_5
-_08106DD0:
- ldr r0, _08106DF0 @ =gUnknown_03005E8C
- ldr r0, [r0]
- ldrb r0, [r0, 0xA]
- movs r1, 0x3
- bl __udivsi3
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bhi _08106E86
- lsls r0, 2
- ldr r1, _08106DF4 @ =_08106DF8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08106DF0: .4byte gUnknown_03005E8C
-_08106DF4: .4byte _08106DF8
- .align 2, 0
-_08106DF8:
- .4byte _08106E0C
- .4byte _08106E24
- .4byte _08106E3C
- .4byte _08106E54
- .4byte _08106E74
-_08106E0C:
- ldr r0, _08106E1C @ =gPictureFrameTiles_0
- movs r1, 0xC0
- lsls r1, 19
- bl RLUnCompVram
- ldr r0, _08106E20 @ =gPictureFrameTilemap_0
- b _08106E60
- .align 2, 0
-_08106E1C: .4byte gPictureFrameTiles_0
-_08106E20: .4byte gPictureFrameTilemap_0
-_08106E24:
- ldr r0, _08106E34 @ =gPictureFrameTiles_1
- movs r1, 0xC0
- lsls r1, 19
- bl RLUnCompVram
- ldr r0, _08106E38 @ =gPictureFrameTilemap_1
- b _08106E60
- .align 2, 0
-_08106E34: .4byte gPictureFrameTiles_1
-_08106E38: .4byte gPictureFrameTilemap_1
-_08106E3C:
- ldr r0, _08106E4C @ =gPictureFrameTiles_2
- movs r1, 0xC0
- lsls r1, 19
- bl RLUnCompVram
- ldr r0, _08106E50 @ =gPictureFrameTilemap_2
- b _08106E60
- .align 2, 0
-_08106E4C: .4byte gPictureFrameTiles_2
-_08106E50: .4byte gPictureFrameTilemap_2
-_08106E54:
- ldr r0, _08106E68 @ =gPictureFrameTiles_3
- movs r1, 0xC0
- lsls r1, 19
- bl RLUnCompVram
- ldr r0, _08106E6C @ =gPictureFrameTilemap_3
-_08106E60:
- ldr r1, _08106E70 @ =0x06006000
- bl RLUnCompVram
- b _08106E86
- .align 2, 0
-_08106E68: .4byte gPictureFrameTiles_3
-_08106E6C: .4byte gPictureFrameTilemap_3
-_08106E70: .4byte 0x06006000
-_08106E74:
- ldr r0, _08106E8C @ =gPictureFrameTiles_4
- movs r1, 0xC0
- lsls r1, 19
- bl RLUnCompVram
- ldr r0, _08106E90 @ =gPictureFrameTilemap_4
- ldr r1, _08106E94 @ =0x06006000
- bl RLUnCompVram
-_08106E86:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08106E8C: .4byte gPictureFrameTiles_4
-_08106E90: .4byte gPictureFrameTilemap_4
-_08106E94: .4byte 0x06006000
- thumb_func_end sub_8106C40
-
- thumb_func_start sub_8106E98
-sub_8106E98: @ 8106E98
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r4, _08106ED0 @ =gMain
- ldr r1, _08106ED4 @ =gOamData_83F6138
- ldr r2, [r1, 0x4]
- ldr r1, [r1]
- str r1, [r4, 0x3C]
- str r2, [r4, 0x40]
- adds r3, r4, 0
- adds r3, 0x40
- ldrh r2, [r3]
- ldr r1, _08106ED8 @ =0xfffffc00
- ands r1, r2
- strh r1, [r3]
- ldrh r1, [r4, 0x3E]
- ldr r0, _08106EDC @ =0xfffffe00
- ands r0, r1
- movs r1, 0x58
- orrs r0, r1
- strh r0, [r4, 0x3E]
- adds r1, r4, 0
- adds r1, 0x3C
- movs r0, 0x18
- strb r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08106ED0: .4byte gMain
-_08106ED4: .4byte gOamData_83F6138
-_08106ED8: .4byte 0xfffffc00
-_08106EDC: .4byte 0xfffffe00
- thumb_func_end sub_8106E98
-
- thumb_func_start sub_8106EE0
-sub_8106EE0: @ 8106EE0
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x7
- bhi _08106EF8
- ldr r0, _08106EF4 @ =gUnknown_03005E8C
- ldr r0, [r0]
- ldrb r0, [r0, 0xA]
- b _08106F08
- .align 2, 0
-_08106EF4: .4byte gUnknown_03005E8C
-_08106EF8:
- ldr r0, _08106F18 @ =gUnknown_03005E8C
- ldr r0, [r0]
- ldrb r0, [r0, 0xA]
- movs r1, 0x3
- bl __udivsi3
- lsls r0, 24
- lsrs r0, 24
-_08106F08:
- cmp r0, 0x4
- bhi _08106F46
- lsls r0, 2
- ldr r1, _08106F1C @ =_08106F20
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08106F18: .4byte gUnknown_03005E8C
-_08106F1C: .4byte _08106F20
- .align 2, 0
-_08106F20:
- .4byte _08106F34
- .4byte _08106F38
- .4byte _08106F3C
- .4byte _08106F40
- .4byte _08106F44
-_08106F34:
- movs r0, 0x9
- b _08106F46
-_08106F38:
- movs r0, 0xD
- b _08106F46
-_08106F3C:
- movs r0, 0x2
- b _08106F46
-_08106F40:
- movs r0, 0x24
- b _08106F46
-_08106F44:
- movs r0, 0x6
-_08106F46:
- pop {r1}
- bx r1
- thumb_func_end sub_8106EE0
-
- thumb_func_start sub_8106F4C
-sub_8106F4C: @ 8106F4C
- ldr r0, _08106F5C @ =gUnknown_03005E90
- ldr r1, _08106F60 @ =0x02017e00
- str r1, [r0]
- ldr r0, _08106F64 @ =gUnknown_03005E10
- ldr r2, _08106F68 @ =0xffffe000
- adds r1, r2
- str r1, [r0]
- bx lr
- .align 2, 0
-_08106F5C: .4byte gUnknown_03005E90
-_08106F60: .4byte 0x02017e00
-_08106F64: .4byte gUnknown_03005E10
-_08106F68: .4byte 0xffffe000
- thumb_func_end sub_8106F4C
-
- thumb_func_start sub_8106F6C
-sub_8106F6C: @ 8106F6C
- push {r4,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r1, _08106FAC @ =gUnknown_03005E20
- ldr r0, _08106FB0 @ =gUnknown_03005E10
- ldr r0, [r0]
- str r0, [r1, 0x4]
- ldr r0, _08106FB4 @ =gUnknown_03005E90
- ldr r0, [r0]
- str r0, [r1, 0x8]
- movs r2, 0
- strb r2, [r1, 0x18]
- ldr r0, _08106FB8 @ =gUnknown_03005E8C
- ldr r0, [r0]
- ldrb r0, [r0]
- strb r0, [r1, 0x1F]
- strb r2, [r1, 0x19]
- strb r2, [r1, 0x1A]
- movs r0, 0x40
- strb r0, [r1, 0x1B]
- strb r0, [r1, 0x1C]
- strb r0, [r1, 0x1D]
- strb r0, [r1, 0x1E]
- subs r0, r3, 0x2
- adds r4, r1, 0
- cmp r0, 0x22
- bhi _08107050
- lsls r0, 2
- ldr r1, _08106FBC @ =_08106FC0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08106FAC: .4byte gUnknown_03005E20
-_08106FB0: .4byte gUnknown_03005E10
-_08106FB4: .4byte gUnknown_03005E90
-_08106FB8: .4byte gUnknown_03005E8C
-_08106FBC: .4byte _08106FC0
- .align 2, 0
-_08106FC0:
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _0810704C
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _0810704C
-_0810704C:
- movs r0, 0x3
- b _08107052
-_08107050:
- movs r0, 0x1
-_08107052:
- strh r0, [r4, 0x14]
- movs r0, 0x2
- strh r0, [r4, 0x16]
- strb r3, [r4]
- ldr r0, _08107088 @ =0x06010000
- str r0, [r4, 0x10]
- adds r0, r4, 0
- bl sub_80FC7A0
- adds r0, r4, 0
- bl sub_80FDA18
- adds r0, r4, 0
- bl sub_80FD8CC
- ldr r0, _0810708C @ =gUnknown_03005E90
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 1
- movs r2, 0x80
- lsls r2, 2
- bl LoadPalette
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08107088: .4byte 0x06010000
-_0810708C: .4byte gUnknown_03005E90
- thumb_func_end sub_8106F6C
-
- thumb_func_start sub_8107090
-sub_8107090: @ 8107090
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- bl sub_8106F4C
- ldr r0, _081070D0 @ =gUnknown_03005E8C
- ldr r0, [r0]
- ldrh r0, [r0, 0x8]
- movs r1, 0
- bl sub_8106AC4
- adds r0, r4, 0
- bl sub_8106EE0
- lsls r0, 24
- lsrs r0, 24
- bl sub_8106F6C
- adds r0, r4, 0
- bl sub_8106E98
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8106C40
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_081070D0: .4byte gUnknown_03005E8C
- thumb_func_end sub_8107090
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/credits.s b/asm/credits.s
new file mode 100644
index 000000000..4c6f9d5d8
--- /dev/null
+++ b/asm/credits.s
@@ -0,0 +1,2713 @@
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_8144514
+sub_8144514: @ 8144514
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r6, _08144548 @ =0x0201c000
+ ldr r3, _0814454C @ =gTasks
+ lsls r0, 2
+ add r0, r8
+ lsls r0, 3
+ adds r2, r0, r3
+ movs r1, 0x8
+ ldrsh r0, [r2, r1]
+ cmp r0, 0x1
+ beq _08144550
+ cmp r0, 0x1
+ bgt _0814453C
+ b _08144658
+_0814453C:
+ cmp r0, 0x2
+ beq _08144584
+ cmp r0, 0x3
+ bne _08144546
+ b _08144644
+_08144546:
+ b _08144658
+ .align 2, 0
+_08144548: .4byte 0x0201c000
+_0814454C: .4byte gTasks
+_08144550:
+ adds r0, r6, 0
+ adds r0, 0x8A
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _0814456E
+ movs r4, 0xA
+ ldrsh r0, [r2, r4]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r3
+ movs r4, 0x24
+ ldrsh r0, [r1, r4]
+ cmp r0, 0
+ beq _08144658
+_0814456E:
+ movs r0, 0xA
+ ldrsh r1, [r2, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r3
+ movs r1, 0
+ strh r1, [r0, 0x24]
+ ldrh r0, [r2, 0x8]
+ adds r0, 0x1
+ b _08144656
+_08144584:
+ adds r0, r6, 0
+ adds r0, 0x88
+ ldrh r1, [r0]
+ mov r9, r0
+ cmp r1, 0x44
+ beq _08144658
+ movs r4, 0xA
+ ldrsh r1, [r2, r4]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r3
+ ldr r1, [r0]
+ ldr r0, _081445EC @ =sub_8143B68
+ cmp r1, r0
+ bne _08144658
+ adds r7, r6, 0
+ adds r7, 0x8C
+ ldrh r0, [r7]
+ lsls r0, 1
+ adds r0, r6
+ ldrh r0, [r0]
+ ldr r4, _081445F0 @ =gUnknown_0840CA00
+ adds r5, r6, 0
+ adds r5, 0x8A
+ ldrh r3, [r5]
+ lsls r2, r3, 1
+ adds r1, r2, r4
+ ldrb r1, [r1]
+ adds r4, 0x1
+ adds r2, r4
+ ldrb r2, [r2]
+ bl sub_81456B4
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldrh r1, [r7]
+ adds r0, r6, 0
+ adds r0, 0x8E
+ ldrh r0, [r0]
+ subs r0, 0x1
+ cmp r1, r0
+ bge _081445F8
+ adds r0, r1, 0x1
+ strh r0, [r7]
+ ldr r1, _081445F4 @ =gSprites
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r1
+ movs r1, 0x32
+ b _0814460A
+ .align 2, 0
+_081445EC: .4byte sub_8143B68
+_081445F0: .4byte gUnknown_0840CA00
+_081445F4: .4byte gSprites
+_081445F8:
+ movs r0, 0
+ strh r0, [r7]
+ ldr r1, _08144620 @ =gSprites
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r1
+ movs r1, 0x80
+ lsls r1, 2
+_0814460A:
+ strh r1, [r0, 0x34]
+ mov r1, r9
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ ldrh r0, [r5]
+ cmp r0, 0x2
+ bne _08144624
+ movs r0, 0
+ b _08144626
+ .align 2, 0
+_08144620: .4byte gSprites
+_08144624:
+ adds r0, 0x1
+_08144626:
+ strh r0, [r5]
+ ldr r0, _08144640 @ =gTasks
+ mov r2, r8
+ lsls r1, r2, 2
+ add r1, r8
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0x32
+ strh r0, [r1, 0xE]
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ b _08144658
+ .align 2, 0
+_08144640: .4byte gTasks
+_08144644:
+ ldrh r1, [r2, 0xE]
+ movs r3, 0xE
+ ldrsh r0, [r2, r3]
+ cmp r0, 0
+ beq _08144654
+ subs r0, r1, 0x1
+ strh r0, [r2, 0xE]
+ b _08144658
+_08144654:
+ movs r0, 0x1
+_08144656:
+ strh r0, [r2, 0x8]
+_08144658:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8144514
+
+ thumb_func_start sub_8144664
+sub_8144664: @ 8144664
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _0814468C @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ movs r2, 0x8
+ ldrsh r0, [r0, r2]
+ adds r6, r1, 0
+ cmp r0, 0x32
+ bls _08144680
+ b _0814492C
+_08144680:
+ lsls r0, 2
+ ldr r1, _08144690 @ =_08144694
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0814468C: .4byte gTasks
+_08144690: .4byte _08144694
+ .align 2, 0
+_08144694:
+ .4byte _08144760
+ .4byte _08144784
+ .4byte _081447D8
+ .4byte _081447F0
+ .4byte _0814482C
+ .4byte _08144850
+ .4byte _0814489C
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _081448A8
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _081448C8
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _081448EC
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _08144920
+_08144760:
+ lsls r4, r5, 2
+ adds r4, r5
+ lsls r4, 3
+ adds r4, r6
+ ldrh r0, [r4, 0x12]
+ lsls r0, 16
+ asrs r0, 17
+ movs r1, 0x7F
+ ands r0, r1
+ movs r1, 0xC
+ bl Sin
+ ldr r1, _08144780 @ =gUnknown_0203935A
+ strh r0, [r1]
+ b _081447A8
+ .align 2, 0
+_08144780: .4byte gUnknown_0203935A
+_08144784:
+ ldr r7, _081447B0 @ =gUnknown_0203935A
+ movs r3, 0
+ ldrsh r4, [r7, r3]
+ cmp r4, 0
+ beq _081447B4
+ lsls r4, r5, 2
+ adds r4, r5
+ lsls r4, 3
+ adds r4, r6
+ ldrh r0, [r4, 0x12]
+ lsls r0, 16
+ asrs r0, 17
+ movs r1, 0x7F
+ ands r0, r1
+ movs r1, 0xC
+ bl Sin
+ strh r0, [r7]
+_081447A8:
+ ldrh r0, [r4, 0x12]
+ adds r0, 0x1
+ strh r0, [r4, 0x12]
+ b _0814492C
+ .align 2, 0
+_081447B0: .4byte gUnknown_0203935A
+_081447B4:
+ ldr r3, _081447D4 @ =gSprites
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r6
+ movs r0, 0xC
+ ldrsh r2, [r1, r0]
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r3
+ movs r2, 0x2
+ strh r2, [r0, 0x2E]
+ strh r4, [r1, 0x12]
+ b _08144848
+ .align 2, 0
+_081447D4: .4byte gSprites
+_081447D8:
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r1, r0, r6
+ ldrh r2, [r1, 0x12]
+ movs r3, 0x12
+ ldrsh r0, [r1, r3]
+ cmp r0, 0x3F
+ bgt _08144848
+ adds r0, r2, 0x1
+ strh r0, [r1, 0x12]
+ b _08144866
+_081447F0:
+ ldr r3, _08144828 @ =gSprites
+ lsls r2, r5, 2
+ adds r2, r5
+ lsls r2, 3
+ adds r2, r6
+ movs r0, 0xC
+ ldrsh r1, [r2, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ movs r1, 0x3
+ strh r1, [r0, 0x2E]
+ movs r0, 0xE
+ ldrsh r1, [r2, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ movs r1, 0x1
+ strh r1, [r0, 0x2E]
+ movs r0, 0x78
+ strh r0, [r2, 0x10]
+ ldrh r0, [r2, 0x8]
+ adds r0, 0x1
+ strh r0, [r2, 0x8]
+ b _0814492C
+ .align 2, 0
+_08144828: .4byte gSprites
+_0814482C:
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r1, r0, r6
+ ldrh r2, [r1, 0x10]
+ movs r3, 0x10
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ beq _08144844
+ subs r0, r2, 0x1
+ strh r0, [r1, 0x10]
+ b _0814492C
+_08144844:
+ movs r0, 0x40
+ strh r0, [r1, 0x12]
+_08144848:
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ b _0814492C
+_08144850:
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r4, r0, r6
+ ldrh r1, [r4, 0x12]
+ movs r2, 0x12
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ ble _0814487C
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x12]
+_08144866:
+ movs r1, 0x7F
+ ands r0, r1
+ movs r1, 0x14
+ bl Sin
+ ldr r1, _08144878 @ =gUnknown_0203935A
+ strh r0, [r1]
+ b _0814492C
+ .align 2, 0
+_08144878: .4byte gUnknown_0203935A
+_0814487C:
+ ldr r2, _08144898 @ =gSprites
+ movs r3, 0xC
+ ldrsh r1, [r4, r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0x1
+ strh r1, [r0, 0x2E]
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _0814492C
+ .align 2, 0
+_08144898: .4byte gSprites
+_0814489C:
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r6
+ movs r1, 0x32
+ b _0814492A
+_081448A8:
+ ldr r3, _081448C4 @ =gSprites
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r6
+ movs r0, 0xE
+ ldrsh r2, [r1, r0]
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r3
+ movs r2, 0x2
+ b _081448E0
+ .align 2, 0
+_081448C4: .4byte gSprites
+_081448C8:
+ ldr r3, _081448E8 @ =gSprites
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r6
+ movs r0, 0xC
+ ldrsh r2, [r1, r0]
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r3
+ movs r2, 0x4
+_081448E0:
+ strh r2, [r0, 0x2E]
+ movs r0, 0x32
+ strh r0, [r1, 0x8]
+ b _0814492C
+ .align 2, 0
+_081448E8: .4byte gSprites
+_081448EC:
+ ldr r3, _0814491C @ =gSprites
+ lsls r2, r5, 2
+ adds r2, r5
+ lsls r2, 3
+ adds r2, r6
+ movs r0, 0xC
+ ldrsh r1, [r2, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ movs r1, 0x5
+ strh r1, [r0, 0x2E]
+ movs r0, 0xE
+ ldrsh r1, [r2, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ movs r1, 0x3
+ strh r1, [r0, 0x2E]
+ movs r0, 0x32
+ strh r0, [r2, 0x8]
+ b _0814492C
+ .align 2, 0
+_0814491C: .4byte gSprites
+_08144920:
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r6
+ movs r1, 0
+_0814492A:
+ strh r1, [r0, 0x8]
+_0814492C:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8144664
+
+ thumb_func_start sub_8144934
+sub_8144934: @ 8144934
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r1, _08144958 @ =gTasks
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r0, r1
+ movs r3, 0x8
+ ldrsh r0, [r0, r3]
+ adds r4, r1, 0
+ cmp r0, 0x4
+ bhi _08144974
+ lsls r0, 2
+ ldr r1, _0814495C @ =_08144960
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08144958: .4byte gTasks
+_0814495C: .4byte _08144960
+ .align 2, 0
+_08144960:
+ .4byte _08144974
+ .4byte _081449B8
+ .4byte _081449C4
+ .4byte _08144A0C
+ .4byte _08144A5C
+_08144974:
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r2, r0, r4
+ movs r1, 0xA
+ ldrsh r0, [r2, r1]
+ ldr r5, _081449C0 @ =0x00007fff
+ cmp r0, r5
+ beq _081449B8
+ movs r3, 0xC
+ ldrsh r1, [r2, r3]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r3, r0, r4
+ movs r0, 0x26
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r4
+ movs r1, 0xC
+ ldrsh r0, [r0, r1]
+ cmp r0, 0x2
+ bne _081449B8
+ movs r1, 0xA
+ ldrsh r0, [r3, r1]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r4
+ movs r0, 0x14
+ strh r0, [r1, 0x8]
+ strh r5, [r2, 0xA]
+_081449B8:
+ movs r0, 0
+ bl sub_8149020
+ b _08144A62
+ .align 2, 0
+_081449C0: .4byte 0x00007fff
+_081449C4:
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r2, r0, r4
+ movs r3, 0xA
+ ldrsh r0, [r2, r3]
+ ldr r5, _08144A08 @ =0x00007fff
+ cmp r0, r5
+ beq _08144A54
+ movs r0, 0xC
+ ldrsh r1, [r2, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r4
+ movs r3, 0xA
+ ldrsh r1, [r0, r3]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r3, r0, r4
+ ldrh r1, [r3, 0x12]
+ movs r0, 0x80
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0xA0
+ lsls r1, 2
+ cmp r0, r1
+ bne _08144A54
+ movs r0, 0x1
+ strh r0, [r3, 0x8]
+ strh r5, [r2, 0xA]
+ b _08144A54
+ .align 2, 0
+_08144A08: .4byte 0x00007fff
+_08144A0C:
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r2, r0, r4
+ ldrh r3, [r2, 0xA]
+ movs r0, 0xA
+ ldrsh r1, [r2, r0]
+ ldr r5, _08144A48 @ =0x00007fff
+ cmp r1, r5
+ beq _08144A54
+ ldr r0, _08144A4C @ =0x000001f3
+ cmp r1, r0
+ bne _08144A50
+ movs r3, 0xC
+ ldrsh r1, [r2, r3]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r4
+ movs r3, 0xA
+ ldrsh r1, [r0, r3]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r4
+ movs r1, 0xA
+ strh r1, [r0, 0x8]
+ strh r5, [r2, 0xA]
+ b _08144A54
+ .align 2, 0
+_08144A48: .4byte 0x00007fff
+_08144A4C: .4byte 0x000001f3
+_08144A50:
+ adds r0, r3, 0x1
+ strh r0, [r2, 0xA]
+_08144A54:
+ movs r0, 0x1
+ bl sub_8149020
+ b _08144A62
+_08144A5C:
+ movs r0, 0x2
+ bl sub_8149020
+_08144A62:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8144934
+
+ thumb_func_start sub_8144A68
+sub_8144A68: @ 8144A68
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ lsls r1, 24
+ lsrs r7, r1, 24
+ cmp r0, 0x4
+ bls _08144A7E
+ b _08144DFC
+_08144A7E:
+ lsls r0, 2
+ ldr r1, _08144A88 @ =_08144A8C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08144A88: .4byte _08144A8C
+ .align 2, 0
+_08144A8C:
+ .4byte _08144AA0
+ .4byte _08144B48
+ .4byte _08144BF4
+ .4byte _08144CA0
+ .4byte _08144D50
+_08144AA0:
+ ldr r5, _08144B40 @ =gSprites
+ ldr r0, _08144B44 @ =gTasks
+ lsls r4, r7, 2
+ adds r4, r7
+ lsls r4, 3
+ adds r4, r0
+ movs r1, 0x12
+ ldrsh r0, [r4, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ adds r1, 0x3E
+ ldrb r3, [r1]
+ movs r2, 0x5
+ negs r2, r2
+ adds r0, r2, 0
+ ands r0, r3
+ strb r0, [r1]
+ movs r0, 0x14
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ ands r2, r1
+ strb r2, [r0]
+ movs r0, 0x12
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r3, 0
+ movs r2, 0x88
+ lsls r2, 1
+ strh r2, [r0, 0x20]
+ movs r0, 0x14
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ strh r2, [r0, 0x20]
+ movs r0, 0x12
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r2, 0x2E
+ strh r2, [r0, 0x22]
+ movs r0, 0x14
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ strh r2, [r0, 0x22]
+ movs r0, 0x12
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ strh r3, [r0, 0x2E]
+ movs r0, 0x14
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ strh r3, [r0, 0x2E]
+ movs r1, 0x80
+ lsls r1, 6
+ movs r0, 0
+ movs r2, 0x20
+ b _08144DF0
+ .align 2, 0
+_08144B40: .4byte gSprites
+_08144B44: .4byte gTasks
+_08144B48:
+ ldr r5, _08144BEC @ =gSprites
+ ldr r0, _08144BF0 @ =gTasks
+ lsls r4, r7, 2
+ adds r4, r7
+ lsls r4, 3
+ adds r4, r0
+ movs r1, 0x12
+ ldrsh r0, [r4, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ adds r1, 0x3E
+ ldrb r3, [r1]
+ movs r2, 0x5
+ negs r2, r2
+ adds r0, r2, 0
+ ands r0, r3
+ strb r0, [r1]
+ movs r0, 0x14
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ ands r2, r1
+ strb r2, [r0]
+ movs r0, 0x12
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r3, 0
+ movs r1, 0x78
+ strh r1, [r0, 0x20]
+ movs r0, 0x14
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r1, 0x88
+ lsls r1, 1
+ strh r1, [r0, 0x20]
+ movs r0, 0x12
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r2, 0x2E
+ strh r2, [r0, 0x22]
+ movs r0, 0x14
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ strh r2, [r0, 0x22]
+ movs r0, 0x12
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ strh r3, [r0, 0x2E]
+ movs r0, 0x14
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ strh r3, [r0, 0x2E]
+ movs r1, 0x80
+ lsls r1, 6
+ movs r0, 0
+ movs r2, 0x20
+ b _08144DF0
+ .align 2, 0
+_08144BEC: .4byte gSprites
+_08144BF0: .4byte gTasks
+_08144BF4:
+ ldr r5, _08144C98 @ =gSprites
+ ldr r0, _08144C9C @ =gTasks
+ lsls r4, r7, 2
+ adds r4, r7
+ lsls r4, 3
+ adds r4, r0
+ movs r1, 0x12
+ ldrsh r0, [r4, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ adds r1, 0x3E
+ ldrb r3, [r1]
+ movs r2, 0x5
+ negs r2, r2
+ adds r0, r2, 0
+ ands r0, r3
+ strb r0, [r1]
+ movs r0, 0x14
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ ands r2, r1
+ strb r2, [r0]
+ movs r0, 0x12
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r3, 0
+ movs r1, 0x78
+ strh r1, [r0, 0x20]
+ movs r0, 0x14
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r1, 0x88
+ lsls r1, 1
+ strh r1, [r0, 0x20]
+ movs r0, 0x12
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r2, 0x2E
+ strh r2, [r0, 0x22]
+ movs r0, 0x14
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ strh r2, [r0, 0x22]
+ movs r0, 0x12
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ strh r3, [r0, 0x2E]
+ movs r0, 0x14
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ strh r3, [r0, 0x2E]
+ movs r1, 0x80
+ lsls r1, 6
+ movs r2, 0x80
+ lsls r2, 2
+ movs r0, 0x1
+ b _08144DF0
+ .align 2, 0
+_08144C98: .4byte gSprites
+_08144C9C: .4byte gTasks
+_08144CA0:
+ ldr r5, _08144D44 @ =gSprites
+ ldr r0, _08144D48 @ =gTasks
+ lsls r4, r7, 2
+ adds r4, r7
+ lsls r4, 3
+ adds r4, r0
+ movs r1, 0x12
+ ldrsh r0, [r4, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ adds r1, 0x3E
+ ldrb r3, [r1]
+ movs r2, 0x5
+ negs r2, r2
+ adds r0, r2, 0
+ ands r0, r3
+ strb r0, [r1]
+ movs r0, 0x14
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ ands r2, r1
+ strb r2, [r0]
+ movs r0, 0x12
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r3, 0
+ movs r1, 0x78
+ strh r1, [r0, 0x20]
+ movs r0, 0x14
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldr r1, _08144D4C @ =0x0000ffe0
+ strh r1, [r0, 0x20]
+ movs r0, 0x12
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r2, 0x2E
+ strh r2, [r0, 0x22]
+ movs r0, 0x14
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ strh r2, [r0, 0x22]
+ movs r0, 0x12
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ strh r3, [r0, 0x2E]
+ movs r0, 0x14
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ strh r3, [r0, 0x2E]
+ movs r1, 0x80
+ lsls r1, 6
+ movs r2, 0x80
+ lsls r2, 2
+ movs r0, 0x1
+ b _08144DF0
+ .align 2, 0
+_08144D44: .4byte gSprites
+_08144D48: .4byte gTasks
+_08144D4C: .4byte 0x0000ffe0
+_08144D50:
+ ldr r5, _08144EBC @ =gSprites
+ ldr r0, _08144EC0 @ =gTasks
+ lsls r4, r7, 2
+ adds r4, r7
+ lsls r4, 3
+ adds r4, r0
+ movs r1, 0x12
+ ldrsh r0, [r4, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ adds r1, 0x3E
+ ldrb r3, [r1]
+ movs r2, 0x5
+ negs r2, r2
+ adds r0, r2, 0
+ ands r0, r3
+ strb r0, [r1]
+ movs r0, 0x14
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ ands r2, r1
+ strb r2, [r0]
+ movs r0, 0x12
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r3, 0
+ movs r1, 0x58
+ strh r1, [r0, 0x20]
+ movs r0, 0x14
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r1, 0x98
+ strh r1, [r0, 0x20]
+ movs r0, 0x12
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r2, 0x2E
+ strh r2, [r0, 0x22]
+ movs r0, 0x14
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ strh r2, [r0, 0x22]
+ movs r0, 0x12
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ strh r3, [r0, 0x2E]
+ movs r0, 0x14
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ strh r3, [r0, 0x2E]
+ movs r1, 0x80
+ lsls r1, 6
+ movs r2, 0x80
+ lsls r2, 2
+ movs r0, 0x2
+_08144DF0:
+ movs r3, 0x8
+ bl sub_8148EC0
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x8]
+_08144DFC:
+ ldr r0, _08144EC4 @ =sub_8144934
+ movs r1, 0
+ bl CreateTask
+ ldr r6, _08144EC0 @ =gTasks
+ lsls r1, r7, 2
+ adds r1, r7
+ lsls r1, 3
+ adds r5, r1, r6
+ lsls r0, 24
+ lsrs r0, 24
+ movs r4, 0
+ strh r0, [r5, 0xC]
+ movs r0, 0xC
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r6
+ mov r1, r8
+ strh r1, [r0, 0x8]
+ movs r0, 0xC
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r6
+ strh r4, [r0, 0xA]
+ movs r0, 0xC
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r6
+ strh r7, [r0, 0xC]
+ ldr r0, _08144EC8 @ =sub_8144664
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0xA]
+ movs r0, 0xA
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r6
+ strh r4, [r0, 0x8]
+ movs r0, 0xA
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r6
+ strh r7, [r0, 0xA]
+ movs r0, 0xA
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r6
+ ldrh r1, [r5, 0x12]
+ strh r1, [r0, 0xC]
+ movs r0, 0xA
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r6
+ ldrh r1, [r5, 0x14]
+ strh r1, [r0, 0xE]
+ movs r0, 0xA
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r6
+ strh r4, [r0, 0x10]
+ mov r1, r8
+ cmp r1, 0x2
+ bne _08144EB0
+ movs r1, 0xA
+ ldrsh r0, [r5, r1]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r6
+ movs r0, 0x45
+ strh r0, [r1, 0x12]
+_08144EB0:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08144EBC: .4byte gSprites
+_08144EC0: .4byte gTasks
+_08144EC4: .4byte sub_8144934
+_08144EC8: .4byte sub_8144664
+ thumb_func_end sub_8144A68
+
+ thumb_func_start sub_8144ECC
+sub_8144ECC: @ 8144ECC
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r1, 24
+ lsrs r5, r1, 24
+ ldr r0, _08144F28 @ =gMain
+ ldr r1, _08144F2C @ =0x0000043c
+ adds r6, r0, r1
+ ldrb r0, [r6]
+ cmp r0, 0x1
+ beq _08144F38
+ cmp r0, 0x1
+ ble _08144EF0
+ cmp r0, 0x2
+ beq _08144F5C
+ cmp r0, 0x3
+ bne _08144EF0
+ b _0814508C
+_08144EF0:
+ movs r0, 0x80
+ lsls r0, 19
+ movs r1, 0
+ strh r1, [r0]
+ ldr r2, _08144F30 @ =REG_BG3HOFS
+ movs r0, 0x8
+ strh r0, [r2]
+ ldr r0, _08144F34 @ =REG_BG3VOFS
+ strh r1, [r0]
+ subs r0, 0x6
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ subs r0, 0x6
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x3A
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ bl ResetSpriteData
+ bl FreeAllSpritePalettes
+ movs r0, 0x1
+ strb r0, [r6]
+ b _081450A2
+ .align 2, 0
+_08144F28: .4byte gMain
+_08144F2C: .4byte 0x0000043c
+_08144F30: .4byte REG_BG3HOFS
+_08144F34: .4byte REG_BG3VOFS
+_08144F38:
+ ldr r1, _08144F54 @ =gUnknown_02039358
+ movs r0, 0x22
+ strh r0, [r1]
+ ldr r1, _08144F58 @ =gUnknown_0203935A
+ movs r0, 0
+ strh r0, [r1]
+ adds r0, r4, 0
+ bl sub_8148CB0
+ ldrb r0, [r6]
+ adds r0, 0x1
+ strb r0, [r6]
+ b _081450A2
+ .align 2, 0
+_08144F54: .4byte gUnknown_02039358
+_08144F58: .4byte gUnknown_0203935A
+_08144F5C:
+ ldr r0, _08144FBC @ =gSaveBlock2
+ ldrb r0, [r0, 0x8]
+ cmp r0, 0
+ bne _08144FE0
+ ldr r0, _08144FC0 @ =gIntro2BrendanSpriteSheet
+ bl LoadCompressedObjectPic
+ ldr r0, _08144FC4 @ =gUnknown_08416E34
+ bl LoadCompressedObjectPic
+ ldr r0, _08144FC8 @ =gIntro2BicycleSpriteSheet
+ bl LoadCompressedObjectPic
+ ldr r0, _08144FCC @ =gIntro2SpritePalettes
+ bl LoadSpritePalettes
+ movs r0, 0x78
+ movs r1, 0x2E
+ bl intro_create_brendan_sprite
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _08144FD0 @ =gTasks
+ lsls r4, r5, 2
+ adds r4, r5
+ lsls r4, 3
+ adds r4, r0
+ strh r2, [r4, 0x12]
+ ldr r6, _08144FD4 @ =gSprites
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r5, r6, 0
+ adds r5, 0x1C
+ adds r2, r0, r5
+ ldr r1, _08144FD8 @ =sub_8145378
+ str r1, [r2]
+ adds r6, 0x8
+ adds r0, r6
+ ldr r1, _08144FDC @ =gUnknown_0840CA54
+ str r1, [r0]
+ movs r0, 0x88
+ lsls r0, 1
+ movs r1, 0x2E
+ bl intro_create_may_sprite
+ b _08145034
+ .align 2, 0
+_08144FBC: .4byte gSaveBlock2
+_08144FC0: .4byte gIntro2BrendanSpriteSheet
+_08144FC4: .4byte gUnknown_08416E34
+_08144FC8: .4byte gIntro2BicycleSpriteSheet
+_08144FCC: .4byte gIntro2SpritePalettes
+_08144FD0: .4byte gTasks
+_08144FD4: .4byte gSprites
+_08144FD8: .4byte sub_8145378
+_08144FDC: .4byte gUnknown_0840CA54
+_08144FE0:
+ ldr r0, _0814505C @ =gIntro2MaySpriteSheet
+ bl LoadCompressedObjectPic
+ ldr r0, _08145060 @ =gUnknown_08416E24
+ bl LoadCompressedObjectPic
+ ldr r0, _08145064 @ =gIntro2BicycleSpriteSheet
+ bl LoadCompressedObjectPic
+ ldr r0, _08145068 @ =gIntro2SpritePalettes
+ bl LoadSpritePalettes
+ movs r0, 0x78
+ movs r1, 0x2E
+ bl intro_create_may_sprite
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _0814506C @ =gTasks
+ lsls r4, r5, 2
+ adds r4, r5
+ lsls r4, 3
+ adds r4, r0
+ strh r2, [r4, 0x12]
+ ldr r6, _08145070 @ =gSprites
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r5, r6, 0
+ adds r5, 0x1C
+ adds r2, r0, r5
+ ldr r1, _08145074 @ =sub_8145378
+ str r1, [r2]
+ adds r6, 0x8
+ adds r0, r6
+ ldr r1, _08145078 @ =gUnknown_0840CA54
+ str r1, [r0]
+ movs r0, 0x88
+ lsls r0, 1
+ movs r1, 0x2E
+ bl intro_create_brendan_sprite
+_08145034:
+ lsls r0, 24
+ lsrs r2, r0, 24
+ strh r2, [r4, 0x14]
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r5, r0, r5
+ ldr r1, _0814507C @ =sub_8145420
+ str r1, [r5]
+ adds r0, r6
+ ldr r1, _08145080 @ =gUnknown_0840CA94
+ str r1, [r0]
+ ldr r1, _08145084 @ =gMain
+ ldr r0, _08145088 @ =0x0000043c
+ adds r1, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _081450A2
+ .align 2, 0
+_0814505C: .4byte gIntro2MaySpriteSheet
+_08145060: .4byte gUnknown_08416E24
+_08145064: .4byte gIntro2BicycleSpriteSheet
+_08145068: .4byte gIntro2SpritePalettes
+_0814506C: .4byte gTasks
+_08145070: .4byte gSprites
+_08145074: .4byte sub_8145378
+_08145078: .4byte gUnknown_0840CA54
+_0814507C: .4byte sub_8145420
+_08145080: .4byte gUnknown_0840CA94
+_08145084: .4byte gMain
+_08145088: .4byte 0x0000043c
+_0814508C:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_8144A68
+ adds r0, r4, 0
+ bl sub_8148E90
+ movs r0, 0
+ strb r0, [r6]
+ movs r0, 0x1
+ b _081450A4
+_081450A2:
+ movs r0, 0
+_081450A4:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8144ECC
+
+ thumb_func_start sub_81450AC
+sub_81450AC: @ 81450AC
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08145120 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1, r2
+ ldrh r1, [r4, 0x8]
+ movs r2, 0x8
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _081450D2
+ lsls r0, r1, 24
+ lsrs r0, 24
+ bl DestroyTask
+ movs r0, 0
+ strh r0, [r4, 0x8]
+_081450D2:
+ ldrh r1, [r4, 0xA]
+ movs r2, 0xA
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _081450E8
+ lsls r0, r1, 24
+ lsrs r0, 24
+ bl DestroyTask
+ movs r0, 0
+ strh r0, [r4, 0xA]
+_081450E8:
+ ldrh r1, [r4, 0xC]
+ movs r2, 0xC
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _081450FE
+ lsls r0, r1, 24
+ lsrs r0, 24
+ bl DestroyTask
+ movs r0, 0
+ strh r0, [r4, 0xC]
+_081450FE:
+ ldrh r1, [r4, 0xE]
+ movs r2, 0xE
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _08145114
+ lsls r0, r1, 24
+ lsrs r0, 24
+ bl DestroyTask
+ movs r0, 0
+ strh r0, [r4, 0xE]
+_08145114:
+ ldr r1, _08145124 @ =gUnknown_0203935C
+ movs r0, 0x1
+ strh r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08145120: .4byte gTasks
+_08145124: .4byte gUnknown_0203935C
+ thumb_func_end sub_81450AC
+
+ thumb_func_start sub_8145128
+sub_8145128: @ 8145128
+ push {r4-r7,lr}
+ adds r3, r0, 0
+ adds r4, r2, 0
+ lsls r3, 16
+ lsrs r3, 16
+ lsls r1, 16
+ lsrs r7, r1, 16
+ lsls r4, 16
+ lsrs r5, r4, 16
+ ldr r0, _081451EC @ =gCreditsCopyrightEnd_Gfx
+ movs r6, 0xC0
+ lsls r6, 19
+ adds r3, r6
+ adds r1, r3, 0
+ bl LZ77UnCompVram
+ ldr r0, _081451F0 @ =gIntroCopyright_Pal
+ adds r1, r5, 0
+ movs r2, 0x20
+ bl LoadPalette
+ lsrs r4, 20
+ lsls r4, 28
+ lsrs r4, 16
+ movs r2, 0
+ adds r1, r4, 0x1
+ ldr r3, _081451F4 @ =0x000003ff
+_0814515E:
+ lsls r0, r2, 1
+ adds r0, r7
+ adds r0, r6
+ strh r1, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, r3
+ bls _0814515E
+ movs r2, 0
+ adds r0, r4, 0x2
+ adds r6, r4, 0
+ adds r6, 0x17
+ movs r1, 0x2B
+ adds r1, r4
+ mov r12, r1
+ adds r4, 0x42
+ ldr r5, _081451F8 @ =0x060001c8
+ adds r3, r0, 0
+_08145184:
+ lsls r0, r2, 1
+ adds r0, r7
+ adds r0, r5
+ adds r1, r2, r3
+ strh r1, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x14
+ bls _08145184
+ movs r2, 0
+ ldr r5, _081451FC @ =0x06000248
+ adds r3, r6, 0
+_0814519E:
+ lsls r0, r2, 1
+ adds r0, r7
+ adds r0, r5
+ adds r1, r2, r3
+ strh r1, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x13
+ bls _0814519E
+ movs r2, 0
+ ldr r5, _08145200 @ =0x060002c8
+ mov r3, r12
+_081451B8:
+ lsls r0, r2, 1
+ adds r0, r7
+ adds r0, r5
+ adds r1, r2, r3
+ strh r1, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x16
+ bls _081451B8
+ movs r2, 0
+ ldr r3, _08145204 @ =0x06000348
+_081451D0:
+ lsls r0, r2, 1
+ adds r0, r7
+ adds r0, r3
+ adds r1, r2, r4
+ strh r1, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0xB
+ bls _081451D0
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081451EC: .4byte gCreditsCopyrightEnd_Gfx
+_081451F0: .4byte gIntroCopyright_Pal
+_081451F4: .4byte 0x000003ff
+_081451F8: .4byte 0x060001c8
+_081451FC: .4byte 0x06000248
+_08145200: .4byte 0x060002c8
+_08145204: .4byte 0x06000348
+ thumb_func_end sub_8145128
+
+ thumb_func_start sub_8145208
+sub_8145208: @ 8145208
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ adds r3, r2, 0
+ movs r0, 0x3F
+ ands r0, r2
+ adds r1, r0, 0
+ adds r1, 0x50
+ cmp r2, 0xFF
+ bne _08145220
+ movs r0, 0x1
+ b _08145246
+_08145220:
+ movs r0, 0x80
+ ands r0, r2
+ cmp r0, 0
+ beq _08145230
+ movs r2, 0x80
+ lsls r2, 4
+ adds r0, r2, 0
+ orrs r1, r0
+_08145230:
+ movs r0, 0x40
+ ands r3, r0
+ cmp r3, 0
+ beq _08145244
+ movs r2, 0x80
+ lsls r2, 3
+ adds r0, r2, 0
+ orrs r1, r0
+ lsls r0, r1, 16
+ lsrs r1, r0, 16
+_08145244:
+ adds r0, r1, 0
+_08145246:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8145208
+
+ thumb_func_start sub_814524C
+sub_814524C: @ 814524C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xC
+ str r0, [sp]
+ ldr r0, [sp, 0x2C]
+ lsls r1, 24
+ lsrs r1, 24
+ mov r10, r1
+ lsls r2, 24
+ lsrs r2, 24
+ str r2, [sp, 0x4]
+ lsls r3, 16
+ lsrs r3, 16
+ str r3, [sp, 0x8]
+ lsls r0, 16
+ lsrs r0, 20
+ lsls r0, 28
+ lsrs r0, 16
+ mov r9, r0
+ movs r5, 0
+_0814527A:
+ movs r4, 0
+ lsls r7, r5, 1
+ ldr r1, [sp, 0x4]
+ adds r0, r1, r5
+ adds r2, r5, 0x1
+ mov r8, r2
+ lsls r0, 6
+ ldr r1, [sp, 0x8]
+ adds r6, r0, r1
+_0814528C:
+ adds r0, r7, r5
+ adds r0, r4
+ ldr r2, [sp]
+ adds r0, r2, r0
+ ldrb r0, [r0]
+ bl sub_8145208
+ mov r2, r10
+ adds r1, r2, r4
+ lsls r1, 1
+ adds r1, r6
+ movs r2, 0xC0
+ lsls r2, 19
+ adds r1, r2
+ add r0, r9
+ strh r0, [r1]
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x2
+ bls _0814528C
+ mov r1, r8
+ lsls r0, r1, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x4
+ bls _0814527A
+ add sp, 0xC
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_814524C
+
+ thumb_func_start sub_81452D0
+sub_81452D0: @ 81452D0
+ push {r4-r7,lr}
+ sub sp, 0x4
+ lsls r0, 16
+ lsrs r5, r0, 16
+ lsls r1, 16
+ lsrs r6, r1, 16
+ lsrs r1, 20
+ lsls r1, 28
+ lsrs r1, 16
+ movs r2, 0
+ ldr r7, _08145360 @ =gUnknown_0840B83C
+ movs r4, 0xC0
+ lsls r4, 19
+ adds r1, 0x1
+ ldr r3, _08145364 @ =0x000003ff
+_081452EE:
+ lsls r0, r2, 1
+ adds r0, r5
+ adds r0, r4
+ strh r1, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, r3
+ bls _081452EE
+ str r6, [sp]
+ adds r0, r7, 0
+ movs r1, 0x3
+ movs r2, 0x7
+ adds r3, r5, 0
+ bl sub_814524C
+ ldr r0, _08145368 @ =gUnknown_0840B84B
+ str r6, [sp]
+ movs r1, 0x7
+ movs r2, 0x7
+ adds r3, r5, 0
+ bl sub_814524C
+ ldr r4, _0814536C @ =gUnknown_0840B85A
+ str r6, [sp]
+ adds r0, r4, 0
+ movs r1, 0xB
+ movs r2, 0x7
+ adds r3, r5, 0
+ bl sub_814524C
+ str r6, [sp]
+ adds r0, r4, 0
+ movs r1, 0x10
+ movs r2, 0x7
+ adds r3, r5, 0
+ bl sub_814524C
+ ldr r0, _08145370 @ =gUnknown_0840B869
+ str r6, [sp]
+ movs r1, 0x14
+ movs r2, 0x7
+ adds r3, r5, 0
+ bl sub_814524C
+ ldr r0, _08145374 @ =gUnknown_0840B878
+ str r6, [sp]
+ movs r1, 0x18
+ movs r2, 0x7
+ adds r3, r5, 0
+ bl sub_814524C
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08145360: .4byte gUnknown_0840B83C
+_08145364: .4byte 0x000003ff
+_08145368: .4byte gUnknown_0840B84B
+_0814536C: .4byte gUnknown_0840B85A
+_08145370: .4byte gUnknown_0840B869
+_08145374: .4byte gUnknown_0840B878
+ thumb_func_end sub_81452D0
+
+ thumb_func_start sub_8145378
+sub_8145378: @ 8145378
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _08145390 @ =gUnknown_0203935C
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ beq _08145394
+ adds r0, r4, 0
+ bl DestroySprite
+ b _08145418
+ .align 2, 0
+_08145390: .4byte gUnknown_0203935C
+_08145394:
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x5
+ bhi _08145418
+ lsls r0, 2
+ ldr r1, _081453A8 @ =_081453AC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_081453A8: .4byte _081453AC
+ .align 2, 0
+_081453AC:
+ .4byte _081453C4
+ .4byte _081453CE
+ .4byte _081453D4
+ .4byte _081453DE
+ .4byte _081453E8
+ .4byte _081453FE
+_081453C4:
+ adds r0, r4, 0
+ movs r1, 0
+ bl StartSpriteAnimIfDifferent
+ b _08145418
+_081453CE:
+ adds r0, r4, 0
+ movs r1, 0x1
+ b _08145402
+_081453D4:
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl StartSpriteAnimIfDifferent
+ b _08145418
+_081453DE:
+ adds r0, r4, 0
+ movs r1, 0x3
+ bl StartSpriteAnimIfDifferent
+ b _08145418
+_081453E8:
+ adds r0, r4, 0
+ movs r1, 0
+ bl StartSpriteAnimIfDifferent
+ ldrh r1, [r4, 0x20]
+ movs r2, 0x20
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x78
+ ble _08145418
+ subs r0, r1, 0x1
+ b _08145416
+_081453FE:
+ adds r0, r4, 0
+ movs r1, 0
+_08145402:
+ bl StartSpriteAnimIfDifferent
+ ldrh r2, [r4, 0x20]
+ movs r0, 0x20
+ ldrsh r1, [r4, r0]
+ movs r0, 0x20
+ negs r0, r0
+ cmp r1, r0
+ ble _08145418
+ subs r0, r2, 0x1
+_08145416:
+ strh r0, [r4, 0x20]
+_08145418:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8145378
+
+ thumb_func_start sub_8145420
+sub_8145420: @ 8145420
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _08145438 @ =gUnknown_0203935C
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ beq _0814543C
+ adds r0, r4, 0
+ bl DestroySprite
+ b _081454D8
+ .align 2, 0
+_08145438: .4byte gUnknown_0203935C
+_0814543C:
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ beq _08145464
+ cmp r0, 0x1
+ bgt _0814544E
+ cmp r0, 0
+ beq _08145458
+ b _081454D8
+_0814544E:
+ cmp r0, 0x2
+ beq _081454A0
+ cmp r0, 0x3
+ beq _081454BE
+ b _081454D8
+_08145458:
+ strh r0, [r4, 0x26]
+ adds r0, r4, 0
+ movs r1, 0
+ bl StartSpriteAnimIfDifferent
+ b _081454D8
+_08145464:
+ movs r1, 0x20
+ ldrsh r0, [r4, r1]
+ cmp r0, 0xC8
+ ble _08145476
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAnimIfDifferent
+ b _0814547E
+_08145476:
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl StartSpriteAnimIfDifferent
+_0814547E:
+ ldrh r2, [r4, 0x20]
+ movs r0, 0x20
+ ldrsh r1, [r4, r0]
+ movs r0, 0x20
+ negs r0, r0
+ cmp r1, r0
+ ble _08145490
+ subs r0, r2, 0x2
+ strh r0, [r4, 0x20]
+_08145490:
+ ldr r0, _0814549C @ =gUnknown_0203935A
+ ldrh r0, [r0]
+ negs r0, r0
+ strh r0, [r4, 0x26]
+ b _081454D8
+ .align 2, 0
+_0814549C: .4byte gUnknown_0203935A
+_081454A0:
+ ldrh r0, [r4, 0x3C]
+ adds r0, 0x1
+ strh r0, [r4, 0x3C]
+ adds r0, r4, 0
+ movs r1, 0
+ bl StartSpriteAnimIfDifferent
+ ldrh r1, [r4, 0x3C]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ bne _081454D8
+ ldrh r0, [r4, 0x20]
+ adds r0, 0x1
+ b _081454D6
+_081454BE:
+ adds r0, r4, 0
+ movs r1, 0
+ bl StartSpriteAnimIfDifferent
+ ldrh r2, [r4, 0x20]
+ movs r0, 0x20
+ ldrsh r1, [r4, r0]
+ movs r0, 0x20
+ negs r0, r0
+ cmp r1, r0
+ ble _081454D8
+ subs r0, r2, 0x1
+_081454D6:
+ strh r0, [r4, 0x20]
+_081454D8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8145420
+
+ thumb_func_start sub_81454E0
+sub_81454E0: @ 81454E0
+ push {r4,r5,lr}
+ sub sp, 0x4
+ adds r5, r0, 0
+ ldr r0, _081454F8 @ =gUnknown_0203935C
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ beq _081454FC
+ adds r0, r5, 0
+ bl DestroySprite
+ b _081456A6
+ .align 2, 0
+_081454F8: .4byte gUnknown_0203935C
+_081454FC:
+ ldrh r0, [r5, 0x3C]
+ adds r0, 0x1
+ strh r0, [r5, 0x3C]
+ movs r2, 0x2E
+ ldrsh r0, [r5, r2]
+ cmp r0, 0xA
+ bhi _08145544
+ lsls r0, 2
+ ldr r1, _08145514 @ =_08145518
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08145514: .4byte _08145518
+ .align 2, 0
+_08145518:
+ .4byte _08145544
+ .4byte _0814559E
+ .4byte _08145620
+ .4byte _08145660
+ .4byte _08145544
+ .4byte _08145544
+ .4byte _08145544
+ .4byte _08145544
+ .4byte _08145544
+ .4byte _08145544
+ .4byte _08145696
+_08145544:
+ ldrb r1, [r5, 0x1]
+ movs r0, 0x4
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r5, 0x1]
+ movs r0, 0x30
+ ldrsh r1, [r5, r0]
+ movs r0, 0x1F
+ ands r1, r0
+ lsls r1, 1
+ ldrb r2, [r5, 0x3]
+ movs r0, 0x3F
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r5, 0x3]
+ movs r0, 0x10
+ strh r0, [r5, 0x32]
+ ldrh r4, [r5, 0x30]
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x80
+ lsls r0, 9
+ movs r1, 0x10
+ bl __divsi3
+ adds r1, r0, 0
+ str r1, [sp]
+ adds r0, r4, 0
+ movs r2, 0
+ movs r3, 0
+ bl SetOamMatrix
+ adds r2, r5, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ movs r0, 0x1
+ strh r0, [r5, 0x2E]
+ b _081456A6
+_0814559E:
+ ldrh r1, [r5, 0x32]
+ movs r2, 0x32
+ ldrsh r0, [r5, r2]
+ cmp r0, 0xFF
+ bgt _081455D4
+ adds r0, r1, 0
+ adds r0, 0x8
+ strh r0, [r5, 0x32]
+ ldrh r4, [r5, 0x30]
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x32
+ ldrsh r1, [r5, r0]
+ movs r0, 0x80
+ lsls r0, 9
+ bl __divsi3
+ adds r1, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ str r1, [sp]
+ adds r0, r4, 0
+ movs r2, 0
+ movs r3, 0
+ bl SetOamMatrix
+ b _081455DA
+_081455D4:
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+_081455DA:
+ movs r2, 0x30
+ ldrsh r1, [r5, r2]
+ cmp r1, 0x2
+ beq _081456A6
+ cmp r1, 0x2
+ bgt _081455EC
+ cmp r1, 0x1
+ beq _081455F2
+ b _081456A6
+_081455EC:
+ cmp r1, 0x3
+ beq _0814560A
+ b _081456A6
+_081455F2:
+ ldrh r1, [r5, 0x3C]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ bne _08145602
+ ldrh r0, [r5, 0x22]
+ adds r0, 0x1
+ strh r0, [r5, 0x22]
+_08145602:
+ ldrh r0, [r5, 0x20]
+ subs r0, 0x2
+ strh r0, [r5, 0x20]
+ b _081456A6
+_0814560A:
+ ldrh r0, [r5, 0x3C]
+ ands r1, r0
+ cmp r1, 0
+ bne _08145618
+ ldrh r0, [r5, 0x22]
+ adds r0, 0x1
+ strh r0, [r5, 0x22]
+_08145618:
+ ldrh r0, [r5, 0x20]
+ adds r0, 0x2
+ strh r0, [r5, 0x20]
+ b _081456A6
+_08145620:
+ ldrh r1, [r5, 0x34]
+ movs r2, 0x34
+ ldrsh r0, [r5, r2]
+ cmp r0, 0
+ beq _08145630
+ subs r0, r1, 0x1
+ strh r0, [r5, 0x34]
+ b _081456A6
+_08145630:
+ ldr r1, _0814565C @ =REG_BLDCNT
+ movs r2, 0xF4
+ lsls r2, 4
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r0, 0x10
+ strh r0, [r1]
+ ldrb r1, [r5, 0x1]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r5, 0x1]
+ movs r0, 0x10
+ strh r0, [r5, 0x34]
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+ b _081456A6
+ .align 2, 0
+_0814565C: .4byte REG_BLDCNT
+_08145660:
+ ldrh r1, [r5, 0x34]
+ movs r2, 0x34
+ ldrsh r0, [r5, r2]
+ cmp r0, 0
+ beq _08145684
+ subs r1, 0x1
+ strh r1, [r5, 0x34]
+ ldr r3, _08145680 @ =REG_BLDALPHA
+ movs r0, 0x34
+ ldrsh r2, [r5, r0]
+ movs r0, 0x10
+ subs r0, r2
+ lsls r0, 8
+ adds r1, r0
+ strh r1, [r3]
+ b _081456A6
+ .align 2, 0
+_08145680: .4byte REG_BLDALPHA
+_08145684:
+ adds r2, r5, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ movs r0, 0xA
+ strh r0, [r5, 0x2E]
+ b _081456A6
+_08145696:
+ ldr r0, _081456B0 @ =REG_BLDCNT
+ movs r1, 0
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, r5, 0
+ bl DestroySprite
+_081456A6:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081456B0: .4byte REG_BLDCNT
+ thumb_func_end sub_81454E0
+
+ thumb_func_start sub_81456B4
+sub_81456B4: @ 81456B4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x14
+ lsls r0, 16
+ lsrs r6, r0, 16
+ lsls r1, 16
+ lsrs r1, 16
+ mov r10, r1
+ lsls r2, 16
+ lsrs r2, 16
+ str r2, [sp, 0x10]
+ lsls r3, 16
+ lsrs r3, 16
+ mov r9, r3
+ adds r0, r6, 0
+ bl NationalPokedexNumToSpecies
+ adds r6, r0, 0
+ cmp r6, 0xC9
+ beq _081456F8
+ movs r0, 0x9A
+ lsls r0, 1
+ cmp r6, r0
+ beq _081456EE
+ movs r7, 0
+ b _081456FC
+_081456EE:
+ ldr r0, _081456F4 @ =gSaveBlock2
+ ldr r7, [r0, 0x20]
+ b _081456FC
+ .align 2, 0
+_081456F4: .4byte gSaveBlock2
+_081456F8:
+ ldr r0, _081457E8 @ =gSaveBlock2
+ ldr r7, [r0, 0x1C]
+_081456FC:
+ lsls r0, r6, 3
+ ldr r1, _081457EC @ =gMonFrontPicTable
+ adds r0, r1
+ ldr r1, _081457F0 @ =gMonFrontPicCoords
+ lsls r2, r6, 2
+ adds r2, r1
+ ldrb r1, [r2]
+ ldrb r2, [r2, 0x1]
+ movs r3, 0x80
+ lsls r3, 18
+ ldr r4, _081457F4 @ =gUnknown_0840B5A0
+ mov r8, r4
+ mov r5, r9
+ lsls r4, r5, 2
+ add r4, r8
+ ldr r4, [r4]
+ str r4, [sp]
+ str r6, [sp, 0x4]
+ str r7, [sp, 0x8]
+ movs r4, 0x1
+ str r4, [sp, 0xC]
+ bl LoadSpecialPokePic
+ ldr r2, _081457F8 @ =0x0000ffff
+ adds r0, r6, 0
+ movs r1, 0
+ bl species_and_otid_get_pal
+ lsls r5, 4
+ mov r8, r5
+ movs r1, 0x80
+ lsls r1, 1
+ add r1, r8
+ lsls r1, 16
+ lsrs r1, 16
+ movs r2, 0x20
+ bl LoadCompressedPalette
+ mov r7, r9
+ lsls r6, r7, 24
+ lsrs r6, 24
+ mov r0, r9
+ adds r1, r6, 0
+ bl sub_8143648
+ ldr r0, _081457FC @ =gUnknown_02024E8C
+ mov r2, r10
+ lsls r1, r2, 16
+ asrs r1, 16
+ ldr r3, [sp, 0x10]
+ lsls r2, r3, 16
+ asrs r2, 16
+ movs r3, 0
+ bl CreateSprite
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r5, _08145800 @ =gSprites
+ lsls r2, r4, 4
+ adds r2, r4
+ lsls r2, 2
+ adds r3, r2, r5
+ ldrb r1, [r3, 0x5]
+ movs r0, 0xF
+ ands r0, r1
+ mov r7, r8
+ orrs r0, r7
+ movs r1, 0xD
+ negs r1, r1
+ ands r0, r1
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r3, 0x5]
+ mov r0, r9
+ adds r0, 0x1
+ strh r0, [r3, 0x30]
+ movs r0, 0x3E
+ adds r0, r3
+ mov r8, r0
+ ldrb r0, [r0]
+ orrs r0, r1
+ mov r1, r8
+ strb r0, [r1]
+ adds r0, r5, 0
+ adds r0, 0x1C
+ adds r2, r0
+ ldr r0, _08145804 @ =sub_81454E0
+ str r0, [r2]
+ ldr r0, _08145808 @ =gSpriteTemplate_840CAEC
+ movs r2, 0x20
+ ldrsh r1, [r3, r2]
+ movs r7, 0x22
+ ldrsh r2, [r3, r7]
+ movs r3, 0x1
+ bl CreateSprite
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ strh r4, [r0, 0x2E]
+ adds r1, r6, 0
+ bl StartSpriteAnimIfDifferent
+ adds r0, r4, 0
+ add sp, 0x14
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_081457E8: .4byte gSaveBlock2
+_081457EC: .4byte gMonFrontPicTable
+_081457F0: .4byte gMonFrontPicCoords
+_081457F4: .4byte gUnknown_0840B5A0
+_081457F8: .4byte 0x0000ffff
+_081457FC: .4byte gUnknown_02024E8C
+_08145800: .4byte gSprites
+_08145804: .4byte sub_81454E0
+_08145808: .4byte gSpriteTemplate_840CAEC
+ thumb_func_end sub_81456B4
+
+ thumb_func_start sub_814580C
+sub_814580C: @ 814580C
+ push {r4,lr}
+ adds r3, r0, 0
+ ldr r4, _08145838 @ =gSprites
+ movs r1, 0x2E
+ ldrsh r0, [r3, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ movs r2, 0x2E
+ ldrsh r0, [r1, r2]
+ cmp r0, 0xA
+ beq _08145830
+ ldr r0, _0814583C @ =gUnknown_0203935C
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ cmp r0, 0
+ beq _08145840
+_08145830:
+ adds r0, r3, 0
+ bl DestroySprite
+ b _081458D4
+ .align 2, 0
+_08145838: .4byte gSprites
+_0814583C: .4byte gUnknown_0203935C
+_08145840:
+ adds r0, r1, 0
+ adds r0, 0x3E
+ ldrb r0, [r0]
+ movs r1, 0x3E
+ adds r1, r3
+ mov r12, r1
+ movs r1, 0x4
+ ands r1, r0
+ mov r0, r12
+ ldrb r2, [r0]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ mov r1, r12
+ strb r0, [r1]
+ movs r2, 0x2E
+ ldrsh r1, [r3, r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrb r1, [r0, 0x1]
+ movs r0, 0xC
+ ands r0, r1
+ ldrb r2, [r3, 0x1]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r3, 0x1]
+ movs r0, 0x2E
+ ldrsh r2, [r3, r0]
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r4
+ ldrb r0, [r0, 0x1]
+ lsls r0, 30
+ lsrs r0, 30
+ movs r2, 0x4
+ negs r2, r2
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r3, 0x1]
+ movs r2, 0x2E
+ ldrsh r1, [r3, r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrb r0, [r0, 0x3]
+ movs r1, 0x3E
+ ands r1, r0
+ ldrb r2, [r3, 0x3]
+ movs r0, 0x3F
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3, 0x3]
+ movs r0, 0x2E
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrh r0, [r0, 0x20]
+ strh r0, [r3, 0x20]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrh r0, [r0, 0x22]
+ strh r0, [r3, 0x22]
+_081458D4:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_814580C
+
+ thumb_func_start sub_81458DC
+sub_81458DC: @ 81458DC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ ldr r7, _0814597C @ =0x0201c000
+ ldr r0, _08145980 @ =0x00004023
+ bl VarGet
+ lsls r0, 16
+ lsrs r0, 16
+ bl GetStarterPokemon
+ lsls r0, 16
+ lsrs r0, 16
+ bl SpeciesToNationalPokedexNum
+ lsls r0, 16
+ lsrs r0, 16
+ mov r10, r0
+ movs r4, 0x1
+ movs r5, 0
+ ldr r0, _08145984 @ =0x00000181
+ mov r8, r0
+_0814590E:
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_8090D90
+ lsls r0, 24
+ adds r6, r7, 0
+ adds r6, 0x90
+ cmp r0, 0
+ beq _0814592C
+ lsls r0, r5, 1
+ adds r0, r6, r0
+ strh r4, [r0]
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+_0814592C:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, r8
+ bls _0814590E
+ adds r4, r5, 0
+ ldr r0, _08145984 @ =0x00000181
+ lsls r1, r4, 16
+ mov r9, r1
+ movs r2, 0x8E
+ adds r2, r7
+ mov r8, r2
+ adds r1, r7, 0
+ adds r1, 0x86
+ str r1, [sp]
+ cmp r4, r0
+ bhi _08145964
+ adds r1, r6, 0
+ movs r3, 0
+ adds r2, r0, 0
+_08145954:
+ lsls r0, r4, 1
+ adds r0, r1, r0
+ strh r3, [r0]
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, r2
+ bls _08145954
+_08145964:
+ movs r2, 0xE5
+ lsls r2, 2
+ adds r0, r7, r2
+ strh r5, [r0]
+ mov r1, r9
+ lsrs r0, r1, 16
+ cmp r0, 0x43
+ bhi _08145988
+ mov r2, r8
+ strh r5, [r2]
+ b _0814598E
+ .align 2, 0
+_0814597C: .4byte 0x0201c000
+_08145980: .4byte 0x00004023
+_08145984: .4byte 0x00000181
+_08145988:
+ movs r0, 0x44
+ mov r1, r8
+ strh r0, [r1]
+_0814598E:
+ movs r5, 0
+ movs r2, 0xE5
+ lsls r2, 2
+ adds r4, r7, r2
+ mov r9, r5
+ b _0814599E
+_0814599A:
+ cmp r5, 0x43
+ bhi _081459EE
+_0814599E:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ ldrh r1, [r4]
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r2, r0, 16
+ lsls r1, r5, 1
+ adds r1, r7, r1
+ lsls r0, r2, 1
+ adds r3, r6, r0
+ ldrh r0, [r3]
+ strh r0, [r1]
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ mov r0, r9
+ strh r0, [r3]
+ ldrh r0, [r4]
+ subs r0, 0x1
+ strh r0, [r4]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r2, r0
+ beq _081459E8
+ ldrh r0, [r4]
+ lsls r0, 1
+ adds r0, r6, r0
+ ldrh r0, [r0]
+ strh r0, [r3]
+ ldrh r0, [r4]
+ lsls r0, 1
+ adds r0, r6, r0
+ mov r1, r9
+ strh r1, [r0]
+_081459E8:
+ ldrh r0, [r4]
+ cmp r0, 0
+ bne _0814599A
+_081459EE:
+ mov r2, r8
+ ldrh r0, [r2]
+ cmp r0, 0x43
+ bhi _08145A26
+ adds r5, r0, 0
+ movs r2, 0
+ cmp r5, 0x43
+ bhi _08145A5C
+ mov r3, r8
+_08145A00:
+ lsls r1, r5, 1
+ adds r1, r7, r1
+ lsls r0, r2, 1
+ adds r0, r7, r0
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ ldrh r0, [r3]
+ cmp r2, r0
+ bne _08145A1A
+ movs r2, 0
+_08145A1A:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x43
+ bls _08145A00
+ b _08145A5C
+_08145A26:
+ movs r4, 0
+ ldrh r0, [r7]
+ cmp r0, r10
+ beq _08145A42
+_08145A2E:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ lsls r0, r4, 1
+ adds r0, r7, r0
+ ldrh r0, [r0]
+ cmp r0, r10
+ beq _08145A42
+ cmp r4, 0x43
+ bls _08145A2E
+_08145A42:
+ mov r1, r8
+ ldrh r0, [r1]
+ subs r0, 0x1
+ cmp r4, r0
+ bge _08145A5C
+ lsls r0, r4, 1
+ adds r0, r7, r0
+ ldr r2, [sp]
+ ldrh r1, [r2]
+ strh r1, [r0]
+ mov r0, r10
+ strh r0, [r2]
+ b _08145A62
+_08145A5C:
+ mov r2, r10
+ ldr r1, [sp]
+ strh r2, [r1]
+_08145A62:
+ movs r0, 0x44
+ mov r1, r8
+ strh r0, [r1]
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81458DC
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/daycare.s b/asm/daycare.s
index 68cae0daf..d78757d8f 100644
--- a/asm/daycare.s
+++ b/asm/daycare.s
@@ -6,70 +6,6 @@
.text
- thumb_func_start pokemon_get_nick
-pokemon_get_nick: @ 80412B0
- push {r4,lr}
- sub sp, 0x14
- adds r4, r1, 0
- movs r1, 0x2
- mov r2, sp
- bl GetMonData
- adds r0, r4, 0
- mov r1, sp
- bl StringCopy10
- add sp, 0x14
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end pokemon_get_nick
-
- thumb_func_start pokemon_get_nick_
-pokemon_get_nick_: @ 80412D0
- push {r4,lr}
- sub sp, 0x14
- adds r4, r1, 0
- movs r1, 0x2
- mov r2, sp
- bl GetBoxMonData
- adds r0, r4, 0
- mov r1, sp
- bl StringCopy10
- add sp, 0x14
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end pokemon_get_nick_
-
- thumb_func_start daycare_count_pokemon
-daycare_count_pokemon: @ 80412F0
- push {r4-r6,lr}
- adds r6, r0, 0
- movs r5, 0
- movs r4, 0
-_080412F8:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 4
- adds r0, r6, r0
- movs r1, 0xB
- bl GetBoxMonData
- cmp r0, 0
- beq _08041310
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
-_08041310:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x1
- bls _080412F8
- adds r0, r5, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end daycare_count_pokemon
-
thumb_func_start sub_8041324
sub_8041324: @ 8041324
push {r4-r7,lr}
@@ -194,7 +130,7 @@ sub_80413C8: @ 80413C8
bl StringCopy
adds r0, r6, 0
movs r1, 0xFC
- bl sub_814A518
+ bl PadNameString
adds r6, 0x8
adds r0, r7, 0
adds r1, r6, 0
diff --git a/asm/decoration.s b/asm/decoration.s
index c507b599d..221c749c5 100644
--- a/asm/decoration.s
+++ b/asm/decoration.s
@@ -764,60 +764,7 @@ sub_80FE7D4: @ 80FE7D4
_080FE7E8: .4byte gUnknown_083EC5E4
thumb_func_end sub_80FE7D4
- thumb_func_start sub_80FE7EC
-sub_80FE7EC: @ 80FE7EC
- push {r4,lr}
- sub sp, 0x8
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_8072DEC
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- adds r0, r4, 0
- bl sub_80FEC94
- ldr r0, _080FE858 @ =gUnknown_020388F6
- ldrb r0, [r0]
- bl sub_80FECB8
- movs r0, 0xF
- movs r1, 0xC
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuDrawTextWindow
- ldr r4, _080FE85C @ =gUnknown_020388F2
- ldr r0, _080FE860 @ =gUnknown_020388F4
- ldrb r0, [r0]
- ldrb r1, [r4]
- adds r0, r1
- lsls r0, 24
- lsrs r0, 24
- bl sub_80FECE0
- ldr r0, _080FE864 @ =gUnknown_020388F3
- ldrb r3, [r0]
- adds r3, 0x1
- lsls r3, 24
- lsrs r3, 24
- ldrb r0, [r4]
- str r0, [sp]
- movs r0, 0xD
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x2
- bl InitMenu
- add sp, 0x8
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080FE858: .4byte gUnknown_020388F6
-_080FE85C: .4byte gUnknown_020388F2
-_080FE860: .4byte gUnknown_020388F4
-_080FE864: .4byte gUnknown_020388F3
- thumb_func_end sub_80FE7EC
+ .section .text_80FE868
thumb_func_start sub_80FE868
sub_80FE868: @ 80FE868
@@ -6003,7 +5950,7 @@ _0810104C:
lsls r0, 24
lsrs r4, r0, 24
adds r0, r4, 0
- bl sub_8057238
+ bl MetatileBehavior_IsSecretBasePC
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
diff --git a/asm/easy_chat.s b/asm/easy_chat.s
index e98a76c8c..a0e80e057 100644
--- a/asm/easy_chat.s
+++ b/asm/easy_chat.s
@@ -11563,7 +11563,7 @@ _080EB9C4: .4byte 0x0000ffff
thumb_func_start sub_80EB9C8
sub_80EB9C8: @ 80EB9C8
push {lr}
- bl IsNationalPokedex
+ bl IsNationalPokedexEnabled
lsls r0, 24
lsrs r0, 24
pop {r1}
diff --git a/asm/egg_hatch.s b/asm/egg_hatch.s
index b8dae1bba..95737cae6 100644
--- a/asm/egg_hatch.s
+++ b/asm/egg_hatch.s
@@ -304,7 +304,7 @@ _08042B08:
adds r1, r6, 0
bl StringCopy
adds r0, r4, 0
- bl sub_814A568
+ bl SanitizeNameString
movs r0, 0x1
b _08042B42
.align 2, 0
@@ -409,7 +409,7 @@ _08042BB4:
str r5, [sp, 0x4]
mov r4, r8
str r4, [sp, 0x8]
- bl sub_800D334
+ bl HandleLoadSpecialPokePic
adds r0, r7, 0
bl sub_8040990
bl LoadCompressedObjectPalette
diff --git a/asm/rom_8148B8C.s b/asm/evolution_graphics.s
index 6ed24195f..1130e085e 100644
--- a/asm/rom_8148B8C.s
+++ b/asm/evolution_graphics.s
@@ -6,1163 +6,6 @@
.text
- thumb_func_start load_intro_part2_graphics
-load_intro_part2_graphics: @ 8148B8C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08148BE8 @ =gUnknown_0841225C
- ldr r1, _08148BEC @ =0x06004000
- bl LZ77UnCompVram
- ldr r0, _08148BF0 @ =gUnknown_084126DC
- ldr r1, _08148BF4 @ =0x06007800
- bl LZ77UnCompVram
- ldr r0, _08148BF8 @ =gUnknown_084121FC
- movs r1, 0xF0
- movs r2, 0x20
- bl LoadPalette
- cmp r4, 0
- beq _08148BB4
- cmp r4, 0x1
- beq _08148C14
-_08148BB4:
- ldr r0, _08148BFC @ =gUnknown_084128D8
- movs r1, 0xC0
- lsls r1, 19
- bl LZ77UnCompVram
- ldr r0, _08148C00 @ =gUnknown_08412EB4
- ldr r1, _08148C04 @ =0x06003000
- bl LZ77UnCompVram
- ldr r0, _08148C08 @ =gUnknown_08412818
- movs r1, 0
- movs r2, 0x60
- bl LoadPalette
- ldr r0, _08148C0C @ =gUnknown_08416B54
- bl LoadCompressedObjectPic
- ldr r0, _08148C10 @ =gUnknown_08413184
- movs r1, 0x80
- lsls r1, 1
- movs r2, 0x20
- bl LoadPalette
- bl sub_8149248
- b _08148C46
- .align 2, 0
-_08148BE8: .4byte gUnknown_0841225C
-_08148BEC: .4byte 0x06004000
-_08148BF0: .4byte gUnknown_084126DC
-_08148BF4: .4byte 0x06007800
-_08148BF8: .4byte gUnknown_084121FC
-_08148BFC: .4byte gUnknown_084128D8
-_08148C00: .4byte gUnknown_08412EB4
-_08148C04: .4byte 0x06003000
-_08148C08: .4byte gUnknown_08412818
-_08148C0C: .4byte gUnknown_08416B54
-_08148C10: .4byte gUnknown_08413184
-_08148C14:
- ldr r0, _08148C58 @ =gUnknown_08413340
- movs r1, 0xC0
- lsls r1, 19
- bl LZ77UnCompVram
- ldr r0, _08148C5C @ =gUnknown_084139C8
- ldr r1, _08148C60 @ =0x06003000
- bl LZ77UnCompVram
- ldr r0, _08148C64 @ =gUnknown_08413300
- movs r1, 0
- movs r2, 0x20
- bl LoadPalette
- ldr r0, _08148C68 @ =gUnknown_08416BDC
- bl LoadCompressedObjectPic
- ldr r0, _08148C6C @ =gUnknown_08413CCC
- movs r1, 0x80
- lsls r1, 1
- movs r2, 0x20
- bl LoadPalette
- bl sub_8149264
-_08148C46:
- ldr r1, _08148C70 @ =gUnknown_0203935C
- movs r0, 0
- strh r0, [r1]
- ldr r1, _08148C74 @ =gReservedSpritePaletteCount
- movs r0, 0x8
- strb r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08148C58: .4byte gUnknown_08413340
-_08148C5C: .4byte gUnknown_084139C8
-_08148C60: .4byte 0x06003000
-_08148C64: .4byte gUnknown_08413300
-_08148C68: .4byte gUnknown_08416BDC
-_08148C6C: .4byte gUnknown_08413CCC
-_08148C70: .4byte gUnknown_0203935C
-_08148C74: .4byte gReservedSpritePaletteCount
- thumb_func_end load_intro_part2_graphics
-
- thumb_func_start sub_8148C78
-sub_8148C78: @ 8148C78
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _08148CA4 @ =REG_BG3CNT
- ldr r2, _08148CA8 @ =0x00000603
- adds r0, r2, 0
- strh r0, [r1]
- subs r1, 0x2
- adds r2, 0xFF
- adds r0, r2, 0
- strh r0, [r1]
- subs r1, 0x2
- ldr r2, _08148CAC @ =0x00000f05
- adds r0, r2, 0
- strh r0, [r1]
- subs r1, 0xA
- movs r2, 0xF2
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08148CA4: .4byte REG_BG3CNT
-_08148CA8: .4byte 0x00000603
-_08148CAC: .4byte 0x00000f05
- thumb_func_end sub_8148C78
-
- thumb_func_start sub_8148CB0
-sub_8148CB0: @ 8148CB0
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08148CD4 @ =gUnknown_0841225C
- ldr r1, _08148CD8 @ =0x06004000
- bl LZ77UnCompVram
- ldr r0, _08148CDC @ =gUnknown_084126DC
- ldr r1, _08148CE0 @ =0x06007800
- bl LZ77UnCompVram
- cmp r4, 0x4
- bhi _08148CFC
- lsls r0, r4, 2
- ldr r1, _08148CE4 @ =_08148CE8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08148CD4: .4byte gUnknown_0841225C
-_08148CD8: .4byte 0x06004000
-_08148CDC: .4byte gUnknown_084126DC
-_08148CE0: .4byte 0x06007800
-_08148CE4: .4byte _08148CE8
- .align 2, 0
-_08148CE8:
- .4byte _08148CFC
- .4byte _08148D58
- .4byte _08148DC4
- .4byte _08148DC4
- .4byte _08148E1C
-_08148CFC:
- ldr r0, _08148D34 @ =gUnknown_084121FC
- movs r1, 0xF0
- movs r2, 0x20
- bl LoadPalette
- ldr r0, _08148D38 @ =gUnknown_084128D8
- movs r1, 0xC0
- lsls r1, 19
- bl LZ77UnCompVram
- ldr r0, _08148D3C @ =gUnknown_08412EB4
- ldr r1, _08148D40 @ =0x06003000
- bl LZ77UnCompVram
- ldr r0, _08148D44 @ =gUnknown_08412818
- movs r1, 0
- movs r2, 0x60
- bl LoadPalette
- ldr r0, _08148D48 @ =gUnknown_08416B54
- bl LoadCompressedObjectPic
- ldr r0, _08148D4C @ =gUnknown_084131C4
- ldr r1, _08148D50 @ =0x06010000
- bl LZ77UnCompVram
- ldr r0, _08148D54 @ =gUnknown_08413184
- b _08148D8E
- .align 2, 0
-_08148D34: .4byte gUnknown_084121FC
-_08148D38: .4byte gUnknown_084128D8
-_08148D3C: .4byte gUnknown_08412EB4
-_08148D40: .4byte 0x06003000
-_08148D44: .4byte gUnknown_08412818
-_08148D48: .4byte gUnknown_08416B54
-_08148D4C: .4byte gUnknown_084131C4
-_08148D50: .4byte 0x06010000
-_08148D54: .4byte gUnknown_08413184
-_08148D58:
- ldr r0, _08148DA0 @ =gUnknown_0841221C
- movs r1, 0xF0
- movs r2, 0x20
- bl LoadPalette
- ldr r0, _08148DA4 @ =gUnknown_084128D8
- movs r1, 0xC0
- lsls r1, 19
- bl LZ77UnCompVram
- ldr r0, _08148DA8 @ =gUnknown_08412EB4
- ldr r1, _08148DAC @ =0x06003000
- bl LZ77UnCompVram
- ldr r0, _08148DB0 @ =gUnknown_08412878
- movs r1, 0
- movs r2, 0x60
- bl LoadPalette
- ldr r0, _08148DB4 @ =gUnknown_08416B54
- bl LoadCompressedObjectPic
- ldr r0, _08148DB8 @ =gUnknown_084131C4
- ldr r1, _08148DBC @ =0x06010000
- bl LZ77UnCompVram
- ldr r0, _08148DC0 @ =gUnknown_084131A4
-_08148D8E:
- movs r1, 0x80
- lsls r1, 1
- movs r2, 0x20
- bl LoadPalette
- bl sub_8149248
- b _08148E58
- .align 2, 0
-_08148DA0: .4byte gUnknown_0841221C
-_08148DA4: .4byte gUnknown_084128D8
-_08148DA8: .4byte gUnknown_08412EB4
-_08148DAC: .4byte 0x06003000
-_08148DB0: .4byte gUnknown_08412878
-_08148DB4: .4byte gUnknown_08416B54
-_08148DB8: .4byte gUnknown_084131C4
-_08148DBC: .4byte 0x06010000
-_08148DC0: .4byte gUnknown_084131A4
-_08148DC4:
- ldr r0, _08148E04 @ =gUnknown_0841221C
- movs r1, 0xF0
- movs r2, 0x20
- bl LoadPalette
- ldr r0, _08148E08 @ =gUnknown_08413340
- movs r1, 0xC0
- lsls r1, 19
- bl LZ77UnCompVram
- ldr r0, _08148E0C @ =gUnknown_084139C8
- ldr r1, _08148E10 @ =0x06003000
- bl LZ77UnCompVram
- ldr r4, _08148E14 @ =gUnknown_08413320
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0x20
- bl LoadPalette
- ldr r0, _08148E18 @ =gUnknown_08416BDC
- bl LoadCompressedObjectPic
- movs r1, 0x80
- lsls r1, 1
- adds r0, r4, 0
- movs r2, 0x20
- bl LoadPalette
- bl sub_8149264
- b _08148E58
- .align 2, 0
-_08148E04: .4byte gUnknown_0841221C
-_08148E08: .4byte gUnknown_08413340
-_08148E0C: .4byte gUnknown_084139C8
-_08148E10: .4byte 0x06003000
-_08148E14: .4byte gUnknown_08413320
-_08148E18: .4byte gUnknown_08416BDC
-_08148E1C:
- ldr r0, _08148E6C @ =gUnknown_0841223C
- movs r1, 0xF0
- movs r2, 0x20
- bl LoadPalette
- ldr r0, _08148E70 @ =gUnknown_08413E78
- movs r1, 0xC0
- lsls r1, 19
- bl LZ77UnCompVram
- ldr r0, _08148E74 @ =gUnknown_08414084
- ldr r1, _08148E78 @ =0x06003000
- bl LZ77UnCompVram
- ldr r0, _08148E7C @ =gUnknown_08413E38
- movs r1, 0
- movs r2, 0x40
- bl LoadPalette
- ldr r0, _08148E80 @ =gUnknown_08416C70
- bl LoadCompressedObjectPic
- ldr r0, _08148E84 @ =gUnknown_08414064
- movs r1, 0x80
- lsls r1, 1
- movs r2, 0x20
- bl LoadPalette
- bl sub_8149280
-_08148E58:
- ldr r1, _08148E88 @ =gReservedSpritePaletteCount
- movs r0, 0x8
- strb r0, [r1]
- ldr r1, _08148E8C @ =gUnknown_0203935C
- movs r0, 0
- strh r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08148E6C: .4byte gUnknown_0841223C
-_08148E70: .4byte gUnknown_08413E78
-_08148E74: .4byte gUnknown_08414084
-_08148E78: .4byte 0x06003000
-_08148E7C: .4byte gUnknown_08413E38
-_08148E80: .4byte gUnknown_08416C70
-_08148E84: .4byte gUnknown_08414064
-_08148E88: .4byte gReservedSpritePaletteCount
-_08148E8C: .4byte gUnknown_0203935C
- thumb_func_end sub_8148CB0
-
- thumb_func_start sub_8148E90
-sub_8148E90: @ 8148E90
- ldr r1, _08148EB4 @ =REG_BG3CNT
- ldr r2, _08148EB8 @ =0x00000603
- adds r0, r2, 0
- strh r0, [r1]
- subs r1, 0x2
- adds r2, 0xFF
- adds r0, r2, 0
- strh r0, [r1]
- subs r1, 0x2
- ldr r2, _08148EBC @ =0x00000f05
- adds r0, r2, 0
- strh r0, [r1]
- subs r1, 0xA
- movs r2, 0xFA
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- bx lr
- .align 2, 0
-_08148EB4: .4byte REG_BG3CNT
-_08148EB8: .4byte 0x00000603
-_08148EBC: .4byte 0x00000f05
- thumb_func_end sub_8148E90
-
- thumb_func_start sub_8148EC0
-sub_8148EC0: @ 8148EC0
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0x4
- adds r5, r0, 0
- adds r6, r1, 0
- mov r8, r2
- lsls r5, 24
- lsrs r5, 24
- lsls r6, 16
- lsrs r6, 16
- mov r0, r8
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- lsls r3, 16
- lsrs r3, 16
- ldr r1, _08148F34 @ =sub_8148F3C
- mov r9, r1
- mov r0, r9
- movs r1, 0
- str r3, [sp]
- bl CreateTask
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r1, _08148F38 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r2, 0
- strh r5, [r0, 0x8]
- strh r6, [r0, 0xA]
- strh r2, [r0, 0xC]
- strh r2, [r0, 0xE]
- mov r1, r8
- strh r1, [r0, 0x10]
- strh r2, [r0, 0x12]
- strh r2, [r0, 0x14]
- ldr r3, [sp]
- strh r3, [r0, 0x16]
- movs r1, 0x8
- strh r1, [r0, 0x18]
- strh r2, [r0, 0x1A]
- adds r0, r4, 0
- bl _call_via_r9
- adds r0, r4, 0
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08148F34: .4byte sub_8148F3C
-_08148F38: .4byte gTasks
- thumb_func_end sub_8148EC0
-
- thumb_func_start sub_8148F3C
-sub_8148F3C: @ 8148F3C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _08148FB4 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r3, r0, r1
- ldrh r0, [r3, 0xA]
- lsls r4, r0, 16
- adds r6, r1, 0
- cmp r4, 0
- beq _08148F7C
- movs r1, 0xC
- ldrsh r0, [r3, r1]
- lsls r0, 16
- ldrh r1, [r3, 0xE]
- adds r2, r0, r1
- lsrs r0, r4, 12
- subs r2, r0
- asrs r1, r2, 16
- strh r1, [r3, 0xC]
- strh r2, [r3, 0xE]
- ldr r0, _08148FB8 @ =REG_BG1HOFS
- strh r1, [r0]
- ldr r2, _08148FBC @ =REG_BG1VOFS
- ldr r1, _08148FC0 @ =gUnknown_02039358
- ldr r0, _08148FC4 @ =gUnknown_0203935A
- ldrh r0, [r0]
- ldrh r1, [r1]
- adds r0, r1
- strh r0, [r2]
-_08148F7C:
- ldrh r0, [r3, 0x10]
- lsls r4, r0, 16
- cmp r4, 0
- beq _08148FD8
- movs r1, 0x12
- ldrsh r0, [r3, r1]
- lsls r0, 16
- ldrh r1, [r3, 0x14]
- adds r2, r0, r1
- lsrs r0, r4, 12
- subs r2, r0
- asrs r1, r2, 16
- strh r1, [r3, 0x12]
- strh r2, [r3, 0x14]
- ldr r0, _08148FC8 @ =REG_BG2HOFS
- strh r1, [r0]
- movs r1, 0x8
- ldrsh r0, [r3, r1]
- cmp r0, 0
- beq _08148FD0
- ldr r2, _08148FCC @ =REG_BG2VOFS
- ldr r1, _08148FC0 @ =gUnknown_02039358
- ldr r0, _08148FC4 @ =gUnknown_0203935A
- ldrh r0, [r0]
- ldrh r1, [r1]
- adds r0, r1
- strh r0, [r2]
- b _08148FD8
- .align 2, 0
-_08148FB4: .4byte gTasks
-_08148FB8: .4byte REG_BG1HOFS
-_08148FBC: .4byte REG_BG1VOFS
-_08148FC0: .4byte gUnknown_02039358
-_08148FC4: .4byte gUnknown_0203935A
-_08148FC8: .4byte REG_BG2HOFS
-_08148FCC: .4byte REG_BG2VOFS
-_08148FD0:
- ldr r0, _08149010 @ =REG_BG2VOFS
- ldr r1, _08149014 @ =gUnknown_02039358
- ldrh r1, [r1]
- strh r1, [r0]
-_08148FD8:
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r3, r0, r6
- ldrh r0, [r3, 0x16]
- lsls r4, r0, 16
- cmp r4, 0
- beq _08149008
- movs r1, 0x18
- ldrsh r0, [r3, r1]
- lsls r0, 16
- ldrh r1, [r3, 0x1A]
- adds r2, r0, r1
- lsrs r0, r4, 12
- subs r2, r0
- asrs r1, r2, 16
- strh r1, [r3, 0x18]
- strh r2, [r3, 0x1A]
- ldr r0, _08149018 @ =REG_BG3HOFS
- strh r1, [r0]
- ldr r1, _0814901C @ =REG_BG3VOFS
- ldr r0, _08149014 @ =gUnknown_02039358
- ldrh r0, [r0]
- strh r0, [r1]
-_08149008:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08149010: .4byte REG_BG2VOFS
-_08149014: .4byte gUnknown_02039358
-_08149018: .4byte REG_BG3HOFS
-_0814901C: .4byte REG_BG3VOFS
- thumb_func_end sub_8148F3C
-
- thumb_func_start sub_8149020
-sub_8149020: @ 8149020
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08149100
- cmp r0, 0x1
- ble _08149034
- cmp r0, 0x2
- beq _08149098
-_08149034:
- ldr r0, _08149060 @ =gMain
- ldr r2, [r0, 0x20]
- movs r0, 0x3
- ands r0, r2
- cmp r0, 0
- bne _08149100
- ldr r0, _08149064 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08149100
- movs r0, 0x4
- ands r2, r0
- cmp r2, 0
- beq _0814906C
- ldr r2, _08149068 @ =gPlttBufferUnfaded
- ldrh r1, [r2, 0x12]
- mov r0, sp
- strh r1, [r0]
- ldrh r1, [r2, 0x14]
- b _08149076
- .align 2, 0
-_08149060: .4byte gMain
-_08149064: .4byte gPaletteFade
-_08149068: .4byte gPlttBufferUnfaded
-_0814906C:
- ldr r2, _08149094 @ =gPlttBufferUnfaded
- ldrh r1, [r2, 0x14]
- mov r0, sp
- strh r1, [r0]
- ldrh r1, [r2, 0x12]
-_08149076:
- adds r0, 0x2
- strh r1, [r0]
- adds r4, r0, 0
- mov r0, sp
- movs r1, 0x9
- movs r2, 0x2
- bl LoadPalette
- adds r0, r4, 0
- movs r1, 0xA
- movs r2, 0x2
- bl LoadPalette
- b _08149100
- .align 2, 0
-_08149094: .4byte gPlttBufferUnfaded
-_08149098:
- ldr r0, _081490C8 @ =gMain
- ldr r2, [r0, 0x20]
- movs r0, 0x3
- ands r0, r2
- cmp r0, 0
- bne _08149100
- ldr r0, _081490CC @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08149100
- movs r0, 0x4
- ands r2, r0
- cmp r2, 0
- beq _081490D8
- mov r1, sp
- ldr r2, _081490D0 @ =0x00003d27
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r2, _081490D4 @ =0x00000295
- b _081490E6
- .align 2, 0
-_081490C8: .4byte gMain
-_081490CC: .4byte gPaletteFade
-_081490D0: .4byte 0x00003d27
-_081490D4: .4byte 0x00000295
-_081490D8:
- mov r1, sp
- movs r2, 0xC7
- lsls r2, 2
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r2, _08149108 @ =0x00003d27
-_081490E6:
- adds r0, r2, 0
- strh r0, [r1]
- adds r4, r1, 0
- mov r0, sp
- movs r1, 0xC
- movs r2, 0x2
- bl LoadPalette
- adds r0, r4, 0
- movs r1, 0xD
- movs r2, 0x2
- bl LoadPalette
-_08149100:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08149108: .4byte 0x00003d27
- thumb_func_end sub_8149020
-
- thumb_func_start sub_814910C
-sub_814910C: @ 814910C
- push {lr}
- adds r2, r0, 0
- ldr r0, _08149124 @ =gUnknown_0203935C
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- beq _08149128
- adds r0, r2, 0
- bl DestroySprite
- b _0814916C
- .align 2, 0
-_08149124: .4byte gUnknown_0203935C
-_08149128:
- movs r1, 0x20
- ldrsh r0, [r2, r1]
- lsls r0, 16
- ldrh r1, [r2, 0x32]
- orrs r0, r1
- ldrh r1, [r2, 0x30]
- adds r0, r1
- asrs r1, r0, 16
- strh r1, [r2, 0x20]
- strh r0, [r2, 0x32]
- cmp r1, 0xFF
- ble _08149144
- ldr r0, _08149158 @ =0x0000ffe0
- strh r0, [r2, 0x20]
-_08149144:
- movs r1, 0x2E
- ldrsh r0, [r2, r1]
- cmp r0, 0
- beq _08149164
- ldr r1, _0814915C @ =gUnknown_02039358
- ldr r0, _08149160 @ =gUnknown_0203935A
- ldrh r0, [r0]
- ldrh r1, [r1]
- adds r0, r1
- b _08149168
- .align 2, 0
-_08149158: .4byte 0x0000ffe0
-_0814915C: .4byte gUnknown_02039358
-_08149160: .4byte gUnknown_0203935A
-_08149164:
- ldr r0, _08149170 @ =gUnknown_02039358
- ldrh r0, [r0]
-_08149168:
- negs r0, r0
- strh r0, [r2, 0x26]
-_0814916C:
- pop {r0}
- bx r0
- .align 2, 0
-_08149170: .4byte gUnknown_02039358
- thumb_func_end sub_814910C
-
- thumb_func_start sub_8149174
-sub_8149174: @ 8149174
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- str r1, [sp, 0x4]
- str r2, [sp, 0x8]
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
- lsls r3, 24
- lsrs r3, 24
- mov r8, r3
- movs r7, 0
- cmp r7, r8
- bcs _0814922A
- ldr r0, _0814923C @ =gSprites
- mov r10, r0
- movs r2, 0x3F
- mov r9, r2
-_0814919E:
- lsls r6, r7, 3
- ldr r0, [sp, 0x4]
- adds r6, r0
- ldrb r1, [r6, 0x1]
- ldrb r2, [r6, 0x2]
- ldrb r3, [r6, 0x3]
- ldr r0, _08149240 @ =gSpriteTemplate_8416B3C
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r5, r0, 4
- adds r5, r0
- lsls r5, 2
- mov r2, r10
- adds r4, r5, r2
- ldrb r2, [r6]
- lsls r1, r2, 26
- lsrs r1, 30
- lsrs r2, 6
- adds r0, r4, 0
- movs r3, 0
- bl CalcCenterToCornerVec
- ldrb r3, [r4, 0x5]
- movs r0, 0xC
- orrs r3, r0
- strb r3, [r4, 0x5]
- ldrb r1, [r6]
- lsls r1, 26
- lsrs r1, 30
- lsls r1, 6
- ldrb r2, [r4, 0x1]
- mov r0, r9
- ands r0, r2
- orrs r0, r1
- strb r0, [r4, 0x1]
- ldrb r1, [r6]
- lsrs r1, 6
- lsls r1, 6
- ldrb r2, [r4, 0x3]
- mov r0, r9
- ands r0, r2
- orrs r0, r1
- strb r0, [r4, 0x3]
- movs r0, 0xF
- ands r3, r0
- strb r3, [r4, 0x5]
- ldr r0, _08149244 @ =gSprites + 0x8
- adds r5, r0
- ldr r2, [sp, 0x8]
- str r2, [r5]
- ldrb r1, [r6]
- lsls r1, 28
- lsrs r1, 28
- adds r0, r4, 0
- bl StartSpriteAnim
- movs r1, 0
- mov r0, sp
- ldrh r0, [r0]
- strh r0, [r4, 0x2E]
- ldrh r0, [r6, 0x4]
- strh r0, [r4, 0x30]
- strh r1, [r4, 0x32]
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, r8
- bcc _0814919E
-_0814922A:
- add sp, 0xC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0814923C: .4byte gSprites
-_08149240: .4byte gSpriteTemplate_8416B3C
-_08149244: .4byte gSprites + 0x8
- thumb_func_end sub_8149174
-
- thumb_func_start sub_8149248
-sub_8149248: @ 8149248
- push {lr}
- ldr r1, _0814925C @ =gUnknown_08416B94
- ldr r2, _08149260 @ =gSpriteAnimTable_8416B84
- movs r0, 0
- movs r3, 0x9
- bl sub_8149174
- pop {r0}
- bx r0
- .align 2, 0
-_0814925C: .4byte gUnknown_08416B94
-_08149260: .4byte gSpriteAnimTable_8416B84
- thumb_func_end sub_8149248
-
- thumb_func_start sub_8149264
-sub_8149264: @ 8149264
- push {lr}
- ldr r1, _08149278 @ =gUnknown_08416C10
- ldr r2, _0814927C @ =gSpriteAnimTable_8416C04
- movs r0, 0x1
- movs r3, 0xC
- bl sub_8149174
- pop {r0}
- bx r0
- .align 2, 0
-_08149278: .4byte gUnknown_08416C10
-_0814927C: .4byte gSpriteAnimTable_8416C04
- thumb_func_end sub_8149264
-
- thumb_func_start sub_8149280
-sub_8149280: @ 8149280
- push {lr}
- ldr r1, _08149294 @ =gUnknown_08416C8C
- ldr r2, _08149298 @ =gSpriteAnimTable_8416C88
- movs r0, 0x1
- movs r3, 0x6
- bl sub_8149174
- pop {r0}
- bx r0
- .align 2, 0
-_08149294: .4byte gUnknown_08416C8C
-_08149298: .4byte gSpriteAnimTable_8416C88
- thumb_func_end sub_8149280
-
- thumb_func_start nullsub_82
-nullsub_82: @ 814929C
- bx lr
- thumb_func_end nullsub_82
-
- thumb_func_start sub_81492A0
-sub_81492A0: @ 81492A0
- push {r4,lr}
- ldr r4, _0814930C @ =gSprites
- movs r1, 0x2E
- ldrsh r2, [r0, r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- adds r1, 0x3E
- ldrb r1, [r1]
- movs r2, 0x3E
- adds r2, r0
- mov r12, r2
- movs r2, 0x4
- ands r2, r1
- mov r1, r12
- ldrb r3, [r1]
- movs r1, 0x5
- negs r1, r1
- ands r1, r3
- orrs r1, r2
- mov r2, r12
- strb r1, [r2]
- movs r1, 0x2E
- ldrsh r2, [r0, r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- ldrh r1, [r1, 0x20]
- strh r1, [r0, 0x20]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- ldrh r1, [r1, 0x22]
- adds r1, 0x8
- strh r1, [r0, 0x22]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- ldrh r1, [r1, 0x24]
- strh r1, [r0, 0x24]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- ldrh r1, [r1, 0x26]
- strh r1, [r0, 0x26]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0814930C: .4byte gSprites
- thumb_func_end sub_81492A0
-
- thumb_func_start sub_8149310
-sub_8149310: @ 8149310
- push {r4-r6,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- ldr r0, _0814935C @ =gSpriteTemplate_8416CDC
- lsls r5, 16
- asrs r5, 16
- lsls r4, 16
- asrs r4, 16
- adds r1, r5, 0
- adds r2, r4, 0
- movs r3, 0
- bl CreateSprite
- adds r6, r0, 0
- lsls r6, 24
- lsrs r6, 24
- ldr r0, _08149360 @ =gSpriteTemplate_8416D2C
- adds r4, 0x8
- lsls r4, 16
- asrs r4, 16
- adds r1, r5, 0
- adds r2, r4, 0
- movs r3, 0x1
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08149364 @ =gSprites
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- strh r6, [r1, 0x2E]
- adds r0, r6, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0814935C: .4byte gSpriteTemplate_8416CDC
-_08149360: .4byte gSpriteTemplate_8416D2C
-_08149364: .4byte gSprites
- thumb_func_end sub_8149310
-
- thumb_func_start sub_8149368
-sub_8149368: @ 8149368
- push {r4-r6,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- ldr r0, _081493B4 @ =gSpriteTemplate_8416CF4
- lsls r5, 16
- asrs r5, 16
- lsls r4, 16
- asrs r4, 16
- adds r1, r5, 0
- adds r2, r4, 0
- movs r3, 0
- bl CreateSprite
- adds r6, r0, 0
- lsls r6, 24
- lsrs r6, 24
- ldr r0, _081493B8 @ =gSpriteTemplate_8416D44
- adds r4, 0x8
- lsls r4, 16
- asrs r4, 16
- adds r1, r5, 0
- adds r2, r4, 0
- movs r3, 0x1
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _081493BC @ =gSprites
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- strh r6, [r1, 0x2E]
- adds r0, r6, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_081493B4: .4byte gSpriteTemplate_8416CF4
-_081493B8: .4byte gSpriteTemplate_8416D44
-_081493BC: .4byte gSprites
- thumb_func_end sub_8149368
-
- thumb_func_start nullsub_83
-nullsub_83: @ 81493C0
- bx lr
- thumb_func_end nullsub_83
-
- thumb_func_start sub_81493C4
-sub_81493C4: @ 81493C4
- push {r4,lr}
- ldr r4, _08149420 @ =gSprites
- movs r1, 0x2E
- ldrsh r2, [r0, r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- adds r1, 0x3E
- ldrb r1, [r1]
- movs r2, 0x3E
- adds r2, r0
- mov r12, r2
- movs r2, 0x4
- ands r2, r1
- mov r1, r12
- ldrb r3, [r1]
- movs r1, 0x5
- negs r1, r1
- ands r1, r3
- orrs r1, r2
- mov r2, r12
- strb r1, [r2]
- movs r1, 0x2E
- ldrsh r2, [r0, r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- ldrh r1, [r1, 0x22]
- strh r1, [r0, 0x22]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- ldrh r1, [r1, 0x24]
- strh r1, [r0, 0x24]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- ldrh r1, [r1, 0x26]
- strh r1, [r0, 0x26]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08149420: .4byte gSprites
- thumb_func_end sub_81493C4
-
- thumb_func_start sub_8149424
-sub_8149424: @ 8149424
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- adds r2, r0, 0
- adds r5, r1, 0
- ldr r0, _08149490 @ =gSpriteTemplate_8416D7C
- mov r8, r0
- lsls r2, 16
- asrs r4, r2, 16
- ldr r0, _08149494 @ =0xffe00000
- adds r2, r0
- asrs r2, 16
- lsls r5, 16
- asrs r5, 16
- mov r0, r8
- adds r1, r2, 0
- adds r2, r5, 0
- movs r3, 0x2
- bl CreateSprite
- adds r6, r0, 0
- lsls r6, 24
- lsrs r6, 24
- adds r4, 0x20
- lsls r4, 16
- asrs r4, 16
- mov r0, r8
- adds r1, r4, 0
- adds r2, r5, 0
- movs r3, 0x2
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _08149498 @ =gSprites
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- adds r0, r4, r5
- strh r6, [r0, 0x2E]
- movs r1, 0x1
- bl StartSpriteAnim
- adds r5, 0x1C
- adds r4, r5
- ldr r0, _0814949C @ =sub_81493C4
- str r0, [r4]
- adds r0, r6, 0
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08149490: .4byte gSpriteTemplate_8416D7C
-_08149494: .4byte 0xffe00000
-_08149498: .4byte gSprites
-_0814949C: .4byte sub_81493C4
- thumb_func_end sub_8149424
-
- thumb_func_start sapphire_sub_81494A0
-sapphire_sub_81494A0: @ 81494A0
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- adds r2, r0, 0
- adds r5, r1, 0
- ldr r0, _0814950C @ =gSpriteTemplate_8416D94
- mov r8, r0
- lsls r2, 16
- asrs r4, r2, 16
- ldr r0, _08149510 @ =0xffe00000
- adds r2, r0
- asrs r2, 16
- lsls r5, 16
- asrs r5, 16
- mov r0, r8
- adds r1, r2, 0
- adds r2, r5, 0
- movs r3, 0x2
- bl CreateSprite
- adds r6, r0, 0
- lsls r6, 24
- lsrs r6, 24
- adds r4, 0x20
- lsls r4, 16
- asrs r4, 16
- mov r0, r8
- adds r1, r4, 0
- adds r2, r5, 0
- movs r3, 0x2
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _08149514 @ =gSprites
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- adds r0, r4, r5
- strh r6, [r0, 0x2E]
- movs r1, 0x1
- bl StartSpriteAnim
- adds r5, 0x1C
- adds r4, r5
- ldr r0, _08149518 @ =sub_81493C4
- str r0, [r4]
- adds r0, r6, 0
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0814950C: .4byte gSpriteTemplate_8416D94
-_08149510: .4byte 0xffe00000
-_08149514: .4byte gSprites
-_08149518: .4byte sub_81493C4
- thumb_func_end sapphire_sub_81494A0
-
thumb_func_start nullsub_84
nullsub_84: @ 814951C
bx lr
@@ -2983,385 +1826,4 @@ _0814A2B0: .4byte gSprites
_0814A2B4: .4byte gTasks
thumb_func_end sub_814A208
- thumb_func_start sub_814A2B8
-sub_814A2B8: @ 814A2B8
- ldr r2, _0814A2CC @ =gUnknown_08417068
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- lsls r1, 1
- adds r1, r0
- movs r2, 0
- ldrsh r0, [r1, r2]
- bx lr
- .align 2, 0
-_0814A2CC: .4byte gUnknown_08417068
- thumb_func_end sub_814A2B8
-
- thumb_func_start sub_814A2D0
-sub_814A2D0: @ 814A2D0
- lsls r0, 16
- lsls r1, 16
- lsrs r1, 16
- ldr r2, _0814A2E8 @ =gBardMusicTable
- lsrs r0, 14
- adds r0, r2
- ldr r0, [r0]
- lsls r2, r1, 1
- adds r2, r1
- lsls r2, 4
- adds r0, r2
- bx lr
- .align 2, 0
-_0814A2E8: .4byte gBardMusicTable
- thumb_func_end sub_814A2D0
-
- thumb_func_start sub_814A2EC
-sub_814A2EC: @ 814A2EC
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r6, r0, 0
- lsls r2, 16
- lsrs r2, 16
- mov r9, r2
- ldr r4, _0814A370 @ =gUnknown_084170F4
- adds r2, r1, 0
- adds r3, r6, 0
- adds r3, 0x18
- movs r7, 0x5
-_0814A306:
- ldrb r0, [r2]
- strh r0, [r3]
- ldrb r0, [r2]
- cmp r0, 0xFF
- beq _0814A328
- movs r1, 0x1
- ldrsb r1, [r2, r1]
- lsls r0, 2
- adds r0, r4
- ldr r0, [r0]
- adds r1, r0
- strh r1, [r3, 0x2]
- ldrh r0, [r2, 0x4]
- strh r0, [r3, 0x6]
- ldrh r0, [r6, 0x4]
- adds r0, r1
- strh r0, [r6, 0x4]
-_0814A328:
- adds r2, 0x8
- adds r3, 0x8
- subs r7, 0x1
- cmp r7, 0
- bge _0814A306
- movs r7, 0x6
- movs r5, 0
- movs r0, 0x1E
- mov r8, r0
- adds r4, r6, 0
-_0814A33C:
- mov r0, r8
- add r0, r9
- adds r1, r5, 0
- bl sub_814A2B8
- adds r1, r0, 0
- strh r1, [r4, 0x1C]
- adds r4, 0x8
- adds r5, 0x1
- cmp r5, r7
- blt _0814A33C
- ldrb r1, [r6]
- adds r1, 0x1
- movs r2, 0
- strb r1, [r6]
- strb r2, [r6, 0x1]
- strb r2, [r6, 0x2]
- strb r2, [r6, 0x3]
- strh r2, [r6, 0xA]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0814A370: .4byte gUnknown_084170F4
- thumb_func_end sub_814A2EC
-
- thumb_func_start SetUpFieldMove_Teleport
-SetUpFieldMove_Teleport: @ 814A374
- push {lr}
- ldr r0, _0814A38C @ =gMapHeader
- ldrb r0, [r0, 0x17]
- bl is_light_level_1_2_3_or_6
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0814A390
- movs r0, 0
- b _0814A39E
- .align 2, 0
-_0814A38C: .4byte gMapHeader
-_0814A390:
- ldr r1, _0814A3A4 @ =gUnknown_0300485C
- ldr r0, _0814A3A8 @ =sub_808AB90
- str r0, [r1]
- ldr r1, _0814A3AC @ =gUnknown_03005CE4
- ldr r0, _0814A3B0 @ =hm_teleport_run_dp02scr
- str r0, [r1]
- movs r0, 0x1
-_0814A39E:
- pop {r1}
- bx r1
- .align 2, 0
-_0814A3A4: .4byte gUnknown_0300485C
-_0814A3A8: .4byte sub_808AB90
-_0814A3AC: .4byte gUnknown_03005CE4
-_0814A3B0: .4byte hm_teleport_run_dp02scr
- thumb_func_end SetUpFieldMove_Teleport
-
- thumb_func_start hm_teleport_run_dp02scr
-hm_teleport_run_dp02scr: @ 814A3B4
- push {lr}
- bl new_game
- movs r0, 0x3F
- bl FieldEffectStart
- ldr r0, _0814A3CC @ =gUnknown_0202FF84
- ldr r1, _0814A3D0 @ =gUnknown_03005CE0
- ldrb r1, [r1]
- str r1, [r0]
- pop {r0}
- bx r0
- .align 2, 0
-_0814A3CC: .4byte gUnknown_0202FF84
-_0814A3D0: .4byte gUnknown_03005CE0
- thumb_func_end hm_teleport_run_dp02scr
-
- thumb_func_start FldEff_UseTeleport
-FldEff_UseTeleport: @ 814A3D4
- push {lr}
- bl oei_task_add
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0814A3FC @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r2, _0814A400 @ =sub_814A404
- lsrs r0, r2, 16
- strh r0, [r1, 0x18]
- strh r2, [r1, 0x1A]
- movs r0, 0x1
- bl SetPlayerAvatarTransitionFlags
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_0814A3FC: .4byte gTasks
-_0814A400: .4byte sub_814A404
- thumb_func_end FldEff_UseTeleport
-
- thumb_func_start sub_814A404
-sub_814A404: @ 814A404
- push {lr}
- movs r0, 0x3F
- bl FieldEffectActiveListRemove
- bl sub_8087BA8
- pop {r0}
- bx r0
- thumb_func_end sub_814A404
-
- thumb_func_start unref_sub_814A414
-unref_sub_814A414: @ 814A414
- push {lr}
- sub sp, 0x8
- bl MenuZeroFillScreen
- movs r0, 0
- movs r1, 0
- movs r2, 0x10
- movs r3, 0x12
- bl MenuDrawTextWindow
- ldr r3, _0814A458 @ =gUnknown_0842C29C
- movs r0, 0x2
- movs r1, 0x1
- movs r2, 0x8
- bl PrintMenuItems
- movs r0, 0
- str r0, [sp]
- movs r0, 0xF
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x1
- movs r3, 0x8
- bl InitMenu
- ldr r1, _0814A45C @ =gCallback_03004AE8
- ldr r0, _0814A460 @ =sub_814A464
- str r0, [r1]
- movs r0, 0
- add sp, 0x8
- pop {r1}
- bx r1
- .align 2, 0
-_0814A458: .4byte gUnknown_0842C29C
-_0814A45C: .4byte gCallback_03004AE8
-_0814A460: .4byte sub_814A464
- thumb_func_end unref_sub_814A414
-
- thumb_func_start sub_814A464
-sub_814A464: @ 814A464
- push {lr}
- bl ProcessMenuInput
- lsls r0, 24
- lsrs r0, 24
- adds r2, r0, 0
- lsls r0, r2, 24
- asrs r1, r0, 24
- movs r0, 0x2
- negs r0, r0
- cmp r1, r0
- bne _0814A480
- movs r0, 0
- b _0814A4B2
-_0814A480:
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _0814A4AC
- ldr r0, _0814A4A0 @ =gUnknown_02024D1E
- strb r2, [r0]
- ldr r2, _0814A4A4 @ =gCallback_03004AE8
- ldr r0, _0814A4A8 @ =gUnknown_0842C29C
- lsls r1, 3
- adds r0, 0x4
- adds r1, r0
- ldr r0, [r1]
- str r0, [r2]
- movs r0, 0
- b _0814A4B2
- .align 2, 0
-_0814A4A0: .4byte gUnknown_02024D1E
-_0814A4A4: .4byte gCallback_03004AE8
-_0814A4A8: .4byte gUnknown_0842C29C
-_0814A4AC:
- bl sub_8071C20
- movs r0, 0x1
-_0814A4B2:
- pop {r1}
- bx r1
- thumb_func_end sub_814A464
-
- thumb_func_start sub_814A4B8
-sub_814A4B8: @ 814A4B8
- push {r4,lr}
- ldr r2, _0814A4FC @ =gSaveBlock2
- ldr r1, _0814A500 @ =0x00000556
- adds r0, r2, r1
- movs r1, 0x3
- strb r1, [r0]
- ldr r3, _0814A504 @ =0x00000557
- adds r0, r2, r3
- strb r1, [r0]
- ldr r3, _0814A508 @ =gUnknown_02024D1E
- ldrb r0, [r3]
- adds r0, 0x1
- ldr r4, _0814A50C @ =0x0000055c
- adds r1, r2, r4
- strh r0, [r1]
- ldrb r0, [r3]
- adds r0, 0x1
- ldr r3, _0814A510 @ =0x0000055e
- adds r1, r2, r3
- strh r0, [r1]
- subs r4, 0x4
- adds r0, r2, r4
- movs r1, 0x1
- strh r1, [r0]
- ldr r0, _0814A514 @ =0x0000055a
- adds r2, r0
- strh r1, [r2]
- bl sub_8071C20
- movs r0, 0x1
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0814A4FC: .4byte gSaveBlock2
-_0814A500: .4byte 0x00000556
-_0814A504: .4byte 0x00000557
-_0814A508: .4byte gUnknown_02024D1E
-_0814A50C: .4byte 0x0000055c
-_0814A510: .4byte 0x0000055e
-_0814A514: .4byte 0x0000055a
- thumb_func_end sub_814A4B8
-
- thumb_func_start sub_814A518
-sub_814A518: @ 814A518
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r1, 24
- lsrs r5, r1, 24
- bl StripExtCtrlCodes
- adds r0, r4, 0
- bl StringLength
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r5, 0xFC
- bne _0814A556
- cmp r1, 0x5
- bhi _0814A55A
- movs r3, 0xFC
- movs r2, 0x7
-_0814A53A:
- adds r0, r4, r1
- strb r3, [r0]
- strb r2, [r0, 0x1]
- adds r0, r1, 0x2
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x5
- bls _0814A53A
- b _0814A55A
-_0814A54C:
- adds r0, r4, r1
- strb r5, [r0]
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
-_0814A556:
- cmp r1, 0x5
- bls _0814A54C
-_0814A55A:
- adds r1, r4, r1
- movs r0, 0xFF
- strb r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_814A518
-
- thumb_func_start sub_814A568
-sub_814A568: @ 814A568
- push {r4,lr}
- adds r4, r0, 0
- bl StringLength
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x5
- bhi _0814A582
- adds r0, r4, 0
- movs r1, 0x1
- bl ConvertInternationalString
- b _0814A588
-_0814A582:
- adds r0, r4, 0
- bl StripExtCtrlCodes
-_0814A588:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_814A568
-
.align 2, 0 @ Don't pad with nop.
diff --git a/asm/evolution_scene.s b/asm/evolution_scene.s
index 9d009f567..6ecd355c3 100644
--- a/asm/evolution_scene.s
+++ b/asm/evolution_scene.s
@@ -201,7 +201,7 @@ EvolutionScene: @ 8111984
ldr r0, _08111C3C @ =gUnknown_03004210
adds r1, r4, 0
bl InitWindowFromConfig
- ldr r1, _08111C40 @ =gUnknown_0300428C
+ ldr r1, _08111C40 @ =gBattleTerrain
movs r0, 0x9
strb r0, [r1]
bl sub_800D6D4
@@ -435,7 +435,7 @@ _08111C30: .4byte gUnknown_03004280
_08111C34: .4byte gUnknown_030041B0
_08111C38: .4byte gUnknown_030041B8
_08111C3C: .4byte gUnknown_03004210
-_08111C40: .4byte gUnknown_0300428C
+_08111C40: .4byte gBattleTerrain
_08111C44: .4byte gReservedSpritePaletteCount
_08111C48: .4byte gStringVar1
_08111C4C: .4byte gStringVar2
@@ -540,7 +540,7 @@ CB2_EvolutionSceneLoadGraphics: @ 8111C90
ldr r0, _08111E4C @ =gUnknown_03004210
adds r1, r4, 0
bl InitWindowFromConfig
- ldr r1, _08111E50 @ =gUnknown_0300428C
+ ldr r1, _08111E50 @ =gBattleTerrain
movs r0, 0x9
strb r0, [r1]
bl sub_800D6D4
@@ -647,7 +647,7 @@ _08111E40: .4byte gUnknown_03004280
_08111E44: .4byte gUnknown_030041B0
_08111E48: .4byte gUnknown_030041B8
_08111E4C: .4byte gUnknown_03004210
-_08111E50: .4byte gUnknown_0300428C
+_08111E50: .4byte gBattleTerrain
_08111E54: .4byte gReservedSpritePaletteCount
_08111E58: .4byte gMonFrontPicTable
_08111E5C: .4byte gMonFrontPicCoords
@@ -1747,7 +1747,7 @@ _081127BE:
movs r1, 0x3
bl sub_8090D90
movs r0, 0xE
- bl sav12_xor_increment
+ bl IncrementGameStat
b _08112FD0
.align 2, 0
_08112834: .4byte gPaletteFade
@@ -3055,7 +3055,7 @@ _08113316:
movs r1, 0x3
bl sub_8090D90
movs r0, 0xE
- bl sav12_xor_increment
+ bl IncrementGameStat
b _08113B3A
.align 2, 0
_08113390: .4byte gPaletteFade
diff --git a/asm/rom_8065394.s b/asm/field_control_avatar.s
index fd88d6ece..e2fd1b54f 100644
--- a/asm/rom_8065394.s
+++ b/asm/field_control_avatar.s
@@ -50,7 +50,7 @@ process_overworld_input: @ 8067F18
bl cur_mapdata_block_role_at_player_pos
lsls r0, 24
lsrs r0, 24
- bl sub_8056FFC
+ bl MetatileBehavior_IsMoveTile
lsls r0, 24
lsrs r7, r0, 24
cmp r6, 0x2
@@ -222,7 +222,7 @@ _08068076:
cmp r0, 0
beq _08068098
movs r0, 0x5
- bl sav12_xor_increment
+ bl IncrementGameStat
mov r0, sp
adds r1, r4, 0
adds r2, r6, 0
@@ -829,7 +829,7 @@ _08068524:
_08068538: .4byte gUnknown_081A0009
_0806853C:
adds r0, r5, 0
- bl is_tile_x8B
+ bl MetatileBehavior_IsClosedSootpolisGymDoor
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -851,7 +851,7 @@ _08068554:
_08068568: .4byte gUnknown_081A4363
_0806856C:
adds r0, r5, 0
- bl is_tile_x87
+ bl MetatileBehavior_IsPokeblockFeeder
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -862,7 +862,7 @@ _0806856C:
_08068580: .4byte gUnknown_081C346A
_08068584:
adds r0, r5, 0
- bl is_tile_x8C
+ bl MetatileBehavior_IsTrickHousePuzzleDoor
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -873,7 +873,7 @@ _08068584:
_08068598: .4byte gUnknown_081616E1
_0806859C:
adds r0, r5, 0
- bl is_tile_x85
+ bl MetatileBehavior_IsRegionMap
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -895,7 +895,7 @@ _080685B4:
_080685C8: .4byte Event_RunningShoesManual
_080685CC:
adds r0, r5, 0
- bl sub_8057930
+ bl MetatileBehavior_IsPictureBookShelf
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -906,7 +906,7 @@ _080685CC:
_080685E0: .4byte PictureBookShelfScript
_080685E4:
adds r0, r5, 0
- bl sub_8057944
+ bl MetatileBehavior_IsBookShelf
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -917,7 +917,7 @@ _080685E4:
_080685F8: .4byte BookshelfScript
_080685FC:
adds r0, r5, 0
- bl sub_8057958
+ bl MetatileBehavior_IsPokeCenterBookShelf
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -928,7 +928,7 @@ _080685FC:
_08068610: .4byte PokemonCenterBookshelfScript
_08068614:
adds r0, r5, 0
- bl sub_805796C
+ bl MetatileBehavior_IsVase
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -939,7 +939,7 @@ _08068614:
_08068628: .4byte VaseScript
_0806862C:
adds r0, r5, 0
- bl sub_8057980
+ bl MetatileBehavior_IsTrashCan
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -950,7 +950,7 @@ _0806862C:
_08068640: .4byte TrashCanScript
_08068644:
adds r0, r5, 0
- bl sub_8057994
+ bl MetatileBehavior_IsShopShelf
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -961,7 +961,7 @@ _08068644:
_08068658: .4byte ShopShelfScript
_0806865C:
adds r0, r5, 0
- bl sub_80579A8
+ bl MetatileBehavior_IsBlueprint
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -983,7 +983,7 @@ _08068674:
cmp r4, r0
bne _080686EC
adds r0, r5, 0
- bl sub_8057238
+ bl MetatileBehavior_IsSecretBasePC
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -1234,7 +1234,7 @@ sub_8068870: @ 8068870
push {lr}
lsls r0, 24
lsrs r0, 24
- bl sub_8057818
+ bl MetatileBehavior_IsCrackedFloorHole
lsls r0, 24
cmp r0, 0
bne _08068884
@@ -1271,7 +1271,7 @@ _080688B4:
cmp r0, 0
beq _080688CC
movs r0, 0xD
- bl sav12_xor_increment
+ bl IncrementGameStat
ldr r0, _080688C8 @ =Event_EggHatch
b _080688E8
.align 2, 0
@@ -1543,7 +1543,7 @@ sub_8068A64: @ 8068A64
_08068ABC: .4byte gMapHeader
_08068AC0:
adds r0, r4, 0
- bl sub_8057798
+ bl MetatileBehavior_IsLavaridgeB1FWarp
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -1553,7 +1553,7 @@ _08068AC0:
b _08068B2A
_08068AD6:
adds r0, r4, 0
- bl is_role_x68
+ bl MetatileBehavior_IsLavaridge1FWarp
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -1573,7 +1573,7 @@ _08068AEC:
b _08068B2A
_08068B02:
adds r0, r4, 0
- bl sub_8057804
+ bl MetatileBehavior_IsMtPyreHole
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -1602,7 +1602,7 @@ sub_8068B30: @ 8068B30
lsls r0, 24
lsrs r4, r0, 24
adds r0, r4, 0
- bl is_tile_x69_2_warp_door
+ bl MetatileBehavior_IsWarpDoor
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -1620,19 +1620,19 @@ sub_8068B30: @ 8068B30
cmp r0, 0x1
beq _08068BAA
adds r0, r4, 0
- bl sub_8056F08
+ bl MetatileBehavior_IsNonAnimDoor
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
beq _08068BAA
adds r0, r4, 0
- bl sub_8057798
+ bl MetatileBehavior_IsLavaridgeB1FWarp
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
beq _08068BAA
adds r0, r4, 0
- bl is_role_x68
+ bl MetatileBehavior_IsLavaridge1FWarp
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -1644,7 +1644,7 @@ sub_8068B30: @ 8068B30
cmp r0, 0x1
beq _08068BAA
adds r0, r4, 0
- bl sub_8057804
+ bl MetatileBehavior_IsMtPyreHole
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -1820,7 +1820,7 @@ map_warp_consider_2_to_inside: @ 8068CA8
_08068CDC: .4byte gMapHeader
_08068CE0:
adds r0, r4, 0
- bl is_tile_x69_2_warp_door
+ bl MetatileBehavior_IsWarpDoor
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -1914,7 +1914,7 @@ trigger_activate: @ 8068D7C
cmp r1, 0
bne _08068D92
ldrb r0, [r4, 0x6]
- bl sub_8069408
+ bl DoCoordEventWeather
b _08068DB2
_08068D92:
ldrh r0, [r4, 0x6]
@@ -2270,248 +2270,4 @@ sub_8068FEC: @ 8068FEC
_0806902C: .4byte gMapHeader
thumb_func_end sub_8068FEC
- thumb_func_start sub_8069030
-sub_8069030: @ 8069030
- push {r4,lr}
- ldr r4, _08069064 @ =gSaveBlock1 + 0x1220
- movs r2, 0x90
- lsls r2, 1
- adds r0, r4, 0
- movs r1, 0
- bl memset
- movs r0, 0x90
- lsls r0, 1
- adds r4, r0
- movs r2, 0x80
- lsls r2, 2
- adds r0, r4, 0
- movs r1, 0
- bl memset
- ldr r0, _08069068 @ =gUnknown_0202E8E2
- movs r1, 0
- movs r2, 0x10
- bl memset
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08069064: .4byte gSaveBlock1 + 0x1220
-_08069068: .4byte gUnknown_0202E8E2
- thumb_func_end sub_8069030
-
- thumb_func_start sub_806906C
-sub_806906C: @ 806906C
- push {lr}
- ldr r0, _080690A0 @ =gSaveBlock1 + 0x1220
- movs r1, 0
- str r1, [r0]
- movs r1, 0x90
- lsls r1, 1
- adds r0, r1
- movs r1, 0
- movs r2, 0x20
- bl memset
- ldr r0, _080690A4 @ =0x0000084d
- bl FlagReset
- ldr r0, _080690A8 @ =0x0000084e
- bl FlagReset
- ldr r0, _080690AC @ =0x00000829
- bl FlagReset
- ldr r0, _080690B0 @ =0x00000861
- bl FlagReset
- pop {r0}
- bx r0
- .align 2, 0
-_080690A0: .4byte gSaveBlock1 + 0x1220
-_080690A4: .4byte 0x0000084d
-_080690A8: .4byte 0x0000084e
-_080690AC: .4byte 0x00000829
-_080690B0: .4byte 0x00000861
- thumb_func_end sub_806906C
-
- thumb_func_start sub_80690B4
-sub_80690B4: @ 80690B4
- push {lr}
- ldr r0, _080690C4 @ =gSaveBlock1 + 0x1338
- movs r1, 0
- movs r2, 0x8
- bl memset
- pop {r0}
- bx r0
- .align 2, 0
-_080690C4: .4byte gSaveBlock1 + 0x1338
- thumb_func_end sub_80690B4
-
- thumb_func_start sub_80690C8
-sub_80690C8: @ 80690C8
- push {lr}
- ldr r0, _080690E4 @ =0x00004046
- bl GetVarPointer
- ldr r2, _080690E8 @ =gSaveBlock2
- movs r1, 0
- strb r1, [r2, 0x1A]
- strh r1, [r0]
- ldr r0, _080690EC @ =0x00000836
- bl FlagReset
- pop {r0}
- bx r0
- .align 2, 0
-_080690E4: .4byte 0x00004046
-_080690E8: .4byte gSaveBlock2
-_080690EC: .4byte 0x00000836
- thumb_func_end sub_80690C8
-
- thumb_func_start sub_80690F0
-sub_80690F0: @ 80690F0
- push {r4,r5,lr}
- ldr r0, _0806911C @ =0x00004046
- bl GetVarPointer
- ldr r4, _08069120 @ =gSaveBlock2
- movs r5, 0
- movs r1, 0xDA
- strb r1, [r4, 0x1A]
- ldr r2, _08069124 @ =0x00000302
- adds r1, r2, 0
- strh r1, [r0]
- ldr r0, _08069128 @ =0x00000836
- bl FlagSet
- movs r0, 0x1
- strb r0, [r4, 0x19]
- strb r5, [r4, 0x18]
- bl sub_808C0A0
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0806911C: .4byte 0x00004046
-_08069120: .4byte gSaveBlock2
-_08069124: .4byte 0x00000302
-_08069128: .4byte 0x00000836
- thumb_func_end sub_80690F0
-
- thumb_func_start IsNationalPokedex
-IsNationalPokedex: @ 806912C
- push {lr}
- ldr r0, _08069154 @ =gSaveBlock2
- ldrb r0, [r0, 0x1A]
- cmp r0, 0xDA
- bne _08069164
- ldr r0, _08069158 @ =0x00004046
- bl VarGet
- lsls r0, 16
- ldr r1, _0806915C @ =0x03020000
- cmp r0, r1
- bne _08069164
- ldr r0, _08069160 @ =0x00000836
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _08069164
- movs r0, 0x1
- b _08069166
- .align 2, 0
-_08069154: .4byte gSaveBlock2
-_08069158: .4byte 0x00004046
-_0806915C: .4byte 0x03020000
-_08069160: .4byte 0x00000836
-_08069164:
- movs r0, 0
-_08069166:
- pop {r1}
- bx r1
- thumb_func_end IsNationalPokedex
-
- thumb_func_start unref_sub_806916C
-unref_sub_806916C: @ 806916C
- push {lr}
- ldr r0, _08069178 @ =0x0000084c
- bl FlagReset
- pop {r0}
- bx r0
- .align 2, 0
-_08069178: .4byte 0x0000084c
- thumb_func_end unref_sub_806916C
-
- thumb_func_start unref_sub_806917C
-unref_sub_806917C: @ 806917C
- push {lr}
- ldr r0, _08069188 @ =0x0000084c
- bl FlagSet
- pop {r0}
- bx r0
- .align 2, 0
-_08069188: .4byte 0x0000084c
- thumb_func_end unref_sub_806917C
-
- thumb_func_start IsMysteryGiftAvailable
-IsMysteryGiftAvailable: @ 806918C
- push {lr}
- ldr r0, _0806919C @ =0x0000084c
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_0806919C: .4byte 0x0000084c
- thumb_func_end IsMysteryGiftAvailable
-
- thumb_func_start sub_80691A0
-sub_80691A0: @ 80691A0
- push {lr}
- ldr r0, _080691B4 @ =0x0000402c
- movs r1, 0
- bl VarSet
- ldr r0, _080691B8 @ =0x00000862
- bl FlagReset
- pop {r0}
- bx r0
- .align 2, 0
-_080691B4: .4byte 0x0000402c
-_080691B8: .4byte 0x00000862
- thumb_func_end sub_80691A0
-
- thumb_func_start sub_80691BC
-sub_80691BC: @ 80691BC
- push {lr}
- ldr r0, _080691D4 @ =0x0000402c
- movs r1, 0x92
- lsls r1, 4
- bl VarSet
- ldr r0, _080691D8 @ =0x00000862
- bl FlagSet
- pop {r0}
- bx r0
- .align 2, 0
-_080691D4: .4byte 0x0000402c
-_080691D8: .4byte 0x00000862
- thumb_func_end sub_80691BC
-
- thumb_func_start sub_80691DC
-sub_80691DC: @ 80691DC
- push {lr}
- ldr r0, _08069200 @ =0x00000862
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _08069208
- ldr r0, _08069204 @ =0x0000402c
- bl VarGet
- lsls r0, 16
- movs r1, 0x92
- lsls r1, 20
- cmp r0, r1
- bne _08069208
- movs r0, 0x1
- b _0806920A
- .align 2, 0
-_08069200: .4byte 0x00000862
-_08069204: .4byte 0x0000402c
-_08069208:
- movs r0, 0
-_0806920A:
- pop {r1}
- bx r1
- thumb_func_end sub_80691DC
-
.align 2, 0 @ Don't pad with nop.
diff --git a/asm/rom_80859BC.s b/asm/field_effect.s
index 3a67bbf81..4bcba42ce 100644
--- a/asm/rom_80859BC.s
+++ b/asm/field_effect.s
@@ -267,7 +267,7 @@ CreateMonSprite_FieldMove: @ 8085B88
str r3, [sp]
str r5, [sp, 0x4]
str r4, [sp, 0x8]
- bl sub_800D334
+ bl HandleLoadSpecialPokePic
adds r0, r5, 0
mov r1, r10
adds r2, r4, 0
@@ -1590,7 +1590,7 @@ mapldr_080842E8: @ 80865DC
movs r1, 0
bl CreateTask
bl ScriptContext2_Enable
- bl player_bitmagic
+ bl FreezeMapObjects
ldr r1, _08086600 @ =gUnknown_0300485C
movs r0, 0
str r0, [r1]
@@ -1693,7 +1693,7 @@ mapldr_08084390: @ 8086684
bl FieldObjectTurn
_080866C6:
bl ScriptContext2_Enable
- bl player_bitmagic
+ bl FreezeMapObjects
ldr r1, _080866E8 @ =gUnknown_0300485C
movs r0, 0
str r0, [r1]
@@ -1740,7 +1740,7 @@ _0808671E:
cmp r0, 0
bne _08086738
bl ScriptContext2_Disable
- bl sub_806451C
+ bl UnfreezeMapObjects
adds r0, r5, 0
bl DestroyTask
_08086738:
@@ -1756,9 +1756,9 @@ _08086744: .4byte gPaletteFade
sub_8086748: @ 8086748
push {lr}
bl sub_8053E90
- bl pal_fill_for_maplights
+ bl pal_fill_for_map_transition
bl ScriptContext2_Enable
- bl player_bitmagic
+ bl FreezeMapObjects
ldr r0, _0808676C @ =sub_8086774
movs r1, 0
bl CreateTask
@@ -2115,7 +2115,7 @@ sub_80869F8: @ 80869F8
strb r0, [r1, 0x6]
bl ScriptContext2_Disable
bl CameraObjectReset1
- bl sub_806451C
+ bl UnfreezeMapObjects
bl InstallCameraPanAheadCallback
ldr r0, _08086A28 @ =sub_8086774
bl FindTaskIdByFunc
@@ -2196,7 +2196,7 @@ _08086A9C: .4byte gUnknown_0839F2E8
sub_8086AA0: @ 8086AA0
push {r4,lr}
adds r4, r0, 0
- bl player_bitmagic
+ bl FreezeMapObjects
bl CameraObjectReset2
ldrb r0, [r4, 0xA]
bl sub_80B4824
@@ -2408,7 +2408,7 @@ _08086C2C: .4byte gSprites
sub_8086C30: @ 8086C30
push {lr}
bl sub_8053FF8
- bl sub_8080918
+ bl fade_8080918
pop {r0}
bx r0
thumb_func_end sub_8086C30
@@ -2454,7 +2454,7 @@ _08086C90: .4byte sub_8086A68
sub_8086C94: @ 8086C94
push {lr}
bl sub_8053E90
- bl pal_fill_for_maplights
+ bl pal_fill_for_map_transition
bl ScriptContext2_Enable
ldr r0, _08086CB4 @ =sub_8086CBC
movs r1, 0
@@ -3193,7 +3193,7 @@ sub_808722C: @ 808722C
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
- bl player_bitmagic
+ bl FreezeMapObjects
bl CameraObjectReset2
movs r0, 0
bl SetCameraPanningCallback
@@ -3422,7 +3422,7 @@ sub_80873D8: @ 80873D8
push {r4,lr}
adds r4, r0, 0
bl sub_8053FF8
- bl sub_8080918
+ bl fade_8080918
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
@@ -3473,7 +3473,7 @@ _08087444: .4byte sub_80871D0
mapldr_080851BC: @ 8087448
push {lr}
bl sub_8053E90
- bl pal_fill_for_maplights
+ bl pal_fill_for_map_transition
bl ScriptContext2_Enable
ldr r0, _08087468 @ =gUnknown_0300485C
movs r1, 0
@@ -3539,7 +3539,7 @@ sub_80874CC: @ 80874CC
adds r5, r0, 0
adds r4, r1, 0
bl CameraObjectReset2
- bl player_bitmagic
+ bl FreezeMapObjects
ldr r1, _080874F8 @ =gPlayerAvatar
movs r0, 0x1
strb r0, [r1, 0x6]
@@ -3654,7 +3654,7 @@ sub_808759C: @ 808759C
movs r0, 0
strb r0, [r1, 0x6]
bl ScriptContext2_Disable
- bl sub_806451C
+ bl UnfreezeMapObjects
ldr r0, _080875D0 @ =sub_8087470
bl FindTaskIdByFunc
lsls r0, 24
@@ -3801,7 +3801,7 @@ sub_80876C8: @ 80876C8
push {r4,r5,lr}
adds r5, r0, 0
adds r4, r1, 0
- bl player_bitmagic
+ bl FreezeMapObjects
bl CameraObjectReset2
ldr r1, _080876F4 @ =gPlayerAvatar
movs r0, 0x1
@@ -3925,7 +3925,7 @@ sub_80877AC: @ 80877AC
cmp r0, 0
bne _080877CA
bl sub_8053FF8
- bl sub_8080918
+ bl fade_8080918
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
@@ -4044,7 +4044,7 @@ _080878A4:
sub_80878A8: @ 80878A8
push {lr}
bl ScriptContext2_Enable
- bl player_bitmagic
+ bl FreezeMapObjects
ldr r0, _080878C0 @ =sub_80878C4
movs r1, 0x50
bl CreateTask
@@ -4117,7 +4117,7 @@ sub_8087914: @ 8087914
cmp r0, 0
bne _08087940
bl sub_8053FF8
- bl sub_8080918
+ bl fade_8080918
_08087940:
ldr r0, _080879BC @ =gPlayerAvatar
ldrb r1, [r0, 0x5]
@@ -4227,9 +4227,9 @@ _08087A20:
mapldr_080859D4: @ 8087A28
push {lr}
bl sub_8053E90
- bl pal_fill_for_maplights
+ bl pal_fill_for_map_transition
bl ScriptContext2_Enable
- bl player_bitmagic
+ bl FreezeMapObjects
ldr r1, _08087A64 @ =gUnknown_0300485C
movs r0, 0
str r0, [r1]
@@ -4357,7 +4357,7 @@ _08087B12:
ands r0, r1
strb r0, [r6, 0x1]
bl ScriptContext2_Disable
- bl sub_806451C
+ bl UnfreezeMapObjects
ldr r0, _08087B58 @ =sub_8087A74
bl FindTaskIdByFunc
lsls r0, 24
@@ -4453,7 +4453,7 @@ sub_8087BEC: @ 8087BEC
push {r4,lr}
adds r4, r0, 0
bl ScriptContext2_Enable
- bl player_bitmagic
+ bl FreezeMapObjects
bl CameraObjectReset2
bl player_get_direction_lower_nybble
lsls r0, 24
@@ -4633,7 +4633,7 @@ _08087D48:
adds r0, 0x1
strh r0, [r4, 0x8]
bl sub_8053FF8
- bl sub_8080918
+ bl fade_8080918
_08087D5E:
add sp, 0x8
pop {r4,r5}
@@ -4687,9 +4687,9 @@ _08087DC8: .4byte sub_8087BBC
mapldr_08085D88: @ 8087DCC
push {lr}
bl sub_8053E90
- bl pal_fill_for_maplights
+ bl pal_fill_for_map_transition
bl ScriptContext2_Enable
- bl player_bitmagic
+ bl FreezeMapObjects
ldr r1, _08087E0C @ =gUnknown_0300485C
movs r0, 0
str r0, [r1]
@@ -4991,7 +4991,7 @@ sub_8087FDC: @ 8087FDC
bne _08088050
bl ScriptContext2_Disable
bl CameraObjectReset1
- bl sub_806451C
+ bl UnfreezeMapObjects
ldr r0, _08088064 @ =sub_8087E1C
bl FindTaskIdByFunc
lsls r0, 24
@@ -6207,7 +6207,7 @@ sub_8088984: @ 8088984
push {r6}
adds r4, r0, 0
bl ScriptContext2_Enable
- bl player_bitmagic
+ bl FreezeMapObjects
ldr r5, _080889DC @ =gPlayerAvatar
movs r0, 0x1
strb r0, [r5, 0x6]
@@ -6410,7 +6410,7 @@ sub_8088AF4: @ 8088AF4
ldrb r0, [r4, 0x1A]
movs r1, 0x1
bl sub_8127ED0
- bl sub_806451C
+ bl UnfreezeMapObjects
bl ScriptContext2_Disable
movs r0, 0x9
bl FieldEffectActiveListRemove
@@ -6908,7 +6908,7 @@ sub_8088F10: @ 8088F10
lsls r0, 24
cmp r0, 0
beq _08088F2A
- bl sub_8080918
+ bl fade_8080918
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
@@ -7735,4069 +7735,4 @@ _08089570: .4byte gMapObjects
_08089574: .4byte sub_8089270
thumb_func_end fishE
- thumb_func_start remove_some_task
-remove_some_task: @ 8089578
- push {r4,lr}
- ldr r4, _080895A8 @ =gUnknown_03004DC0
- movs r0, 0
- strb r0, [r4, 0x15]
- ldr r1, _080895AC @ =0x040000b0
- ldrh r2, [r1, 0xA]
- ldr r0, _080895B0 @ =0x0000c5ff
- ands r0, r2
- strh r0, [r1, 0xA]
- ldrh r2, [r1, 0xA]
- ldr r0, _080895B4 @ =0x00007fff
- ands r0, r2
- strh r0, [r1, 0xA]
- ldrh r0, [r1, 0xA]
- ldrb r0, [r4, 0x18]
- cmp r0, 0xFF
- beq _080895A2
- bl DestroyTask
- movs r0, 0xFF
- strb r0, [r4, 0x18]
-_080895A2:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080895A8: .4byte gUnknown_03004DC0
-_080895AC: .4byte 0x040000b0
-_080895B0: .4byte 0x0000c5ff
-_080895B4: .4byte 0x00007fff
- thumb_func_end remove_some_task
-
- thumb_func_start dp12_8087EA4
-dp12_8087EA4: @ 80895B8
- push {r4,lr}
- sub sp, 0x4
- mov r0, sp
- movs r4, 0
- strh r4, [r0]
- ldr r1, _080895EC @ =gUnknown_03004DE0
- ldr r2, _080895F0 @ =0x01000780
- bl CpuSet
- ldr r0, _080895F4 @ =gUnknown_03004DC0
- movs r1, 0
- str r1, [r0]
- str r1, [r0, 0x4]
- str r1, [r0, 0x8]
- str r1, [r0, 0xC]
- strb r4, [r0, 0x14]
- strb r4, [r0, 0x15]
- strb r4, [r0, 0x16]
- strb r4, [r0, 0x17]
- movs r1, 0xFF
- strb r1, [r0, 0x18]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080895EC: .4byte gUnknown_03004DE0
-_080895F0: .4byte 0x01000780
-_080895F4: .4byte gUnknown_03004DC0
- thumb_func_end dp12_8087EA4
-
- thumb_func_start sub_80895F8
-sub_80895F8: @ 80895F8
- push {lr}
- sub sp, 0xC
- str r0, [sp]
- str r1, [sp, 0x4]
- str r2, [sp, 0x8]
- ldr r0, _0808961C @ =0xa2600001
- cmp r1, r0
- bne _0808962C
- ldr r0, _08089620 @ =gUnknown_03004DC0
- ldr r1, _08089624 @ =gUnknown_03004DE2
- str r1, [r0]
- movs r2, 0xF0
- lsls r2, 3
- adds r1, r2
- str r1, [r0, 0x4]
- ldr r1, _08089628 @ =sub_80896F4
- b _0808963C
- .align 2, 0
-_0808961C: .4byte 0xa2600001
-_08089620: .4byte gUnknown_03004DC0
-_08089624: .4byte gUnknown_03004DE2
-_08089628: .4byte sub_80896F4
-_0808962C:
- ldr r0, _0808965C @ =gUnknown_03004DC0
- ldr r1, _08089660 @ =gUnknown_03004DE4
- str r1, [r0]
- movs r2, 0xF0
- lsls r2, 3
- adds r1, r2
- str r1, [r0, 0x4]
- ldr r1, _08089664 @ =sub_8089714
-_0808963C:
- str r1, [r0, 0x10]
- adds r1, r0, 0
- ldr r0, [sp, 0x4]
- str r0, [r1, 0xC]
- ldr r0, [sp]
- str r0, [r1, 0x8]
- mov r0, sp
- ldrb r0, [r0, 0x8]
- strb r0, [r1, 0x15]
- mov r0, sp
- ldrb r0, [r0, 0x9]
- strb r0, [r1, 0x16]
- strb r0, [r1, 0x17]
- add sp, 0xC
- pop {r0}
- bx r0
- .align 2, 0
-_0808965C: .4byte gUnknown_03004DC0
-_08089660: .4byte gUnknown_03004DE4
-_08089664: .4byte sub_8089714
- thumb_func_end sub_80895F8
-
- thumb_func_start sub_8089668
-sub_8089668: @ 8089668
- push {r4,lr}
- ldr r4, _08089698 @ =gUnknown_03004DC0
- ldrb r0, [r4, 0x15]
- cmp r0, 0
- beq _080896E2
- cmp r0, 0x3
- bne _080896AC
- movs r0, 0
- strb r0, [r4, 0x15]
- ldr r1, _0808969C @ =0x040000b0
- ldrh r2, [r1, 0xA]
- ldr r0, _080896A0 @ =0x0000c5ff
- ands r0, r2
- strh r0, [r1, 0xA]
- ldrh r2, [r1, 0xA]
- ldr r0, _080896A4 @ =0x00007fff
- ands r0, r2
- strh r0, [r1, 0xA]
- ldrh r0, [r1, 0xA]
- ldr r1, _080896A8 @ =gUnknown_0202FFA4
- movs r0, 0x1
- strb r0, [r1]
- b _080896E2
- .align 2, 0
-_08089698: .4byte gUnknown_03004DC0
-_0808969C: .4byte 0x040000b0
-_080896A0: .4byte 0x0000c5ff
-_080896A4: .4byte 0x00007fff
-_080896A8: .4byte gUnknown_0202FFA4
-_080896AC:
- ldr r1, _080896E8 @ =0x040000b0
- ldrh r2, [r1, 0xA]
- ldr r0, _080896EC @ =0x0000c5ff
- ands r0, r2
- strh r0, [r1, 0xA]
- ldrh r2, [r1, 0xA]
- ldr r0, _080896F0 @ =0x00007fff
- ands r0, r2
- strh r0, [r1, 0xA]
- ldrh r0, [r1, 0xA]
- ldrb r0, [r4, 0x14]
- lsls r0, 2
- adds r0, r4
- ldr r0, [r0]
- str r0, [r1]
- ldr r0, [r4, 0x8]
- str r0, [r1, 0x4]
- ldr r0, [r4, 0xC]
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- ldr r0, [r4, 0x10]
- bl _call_via_r0
- ldrb r0, [r4, 0x14]
- movs r1, 0x1
- eors r0, r1
- strb r0, [r4, 0x14]
-_080896E2:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080896E8: .4byte 0x040000b0
-_080896EC: .4byte 0x0000c5ff
-_080896F0: .4byte 0x00007fff
- thumb_func_end sub_8089668
-
- thumb_func_start sub_80896F4
-sub_80896F4: @ 80896F4
- ldr r0, _0808970C @ =gUnknown_03004DC0
- ldr r2, [r0, 0x8]
- ldrb r1, [r0, 0x14]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 7
- ldr r1, _08089710 @ =gUnknown_03004DE0
- adds r0, r1
- ldrh r0, [r0]
- strh r0, [r2]
- bx lr
- .align 2, 0
-_0808970C: .4byte gUnknown_03004DC0
-_08089710: .4byte gUnknown_03004DE0
- thumb_func_end sub_80896F4
-
- thumb_func_start sub_8089714
-sub_8089714: @ 8089714
- ldr r0, _0808972C @ =gUnknown_03004DC0
- ldr r2, [r0, 0x8]
- ldrb r1, [r0, 0x14]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 7
- ldr r1, _08089730 @ =gUnknown_03004DE0
- adds r0, r1
- ldr r0, [r0]
- str r0, [r2]
- bx lr
- .align 2, 0
-_0808972C: .4byte gUnknown_03004DC0
-_08089730: .4byte gUnknown_03004DE0
- thumb_func_end sub_8089714
-
- thumb_func_start task00_for_dp12
-task00_for_dp12: @ 8089734
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r0, 24
- mov r12, r0
- movs r6, 0
- ldr r0, _0808975C @ =gUnknown_0202FFA4
- ldrb r0, [r0]
- cmp r0, 0
- beq _08089764
- mov r0, r12
- bl DestroyTask
- ldr r1, _08089760 @ =gUnknown_03004DC0
- movs r0, 0xFF
- strb r0, [r1, 0x18]
- b _080898E4
- .align 2, 0
-_0808975C: .4byte gUnknown_0202FFA4
-_08089760: .4byte gUnknown_03004DC0
-_08089764:
- ldr r1, _08089790 @ =gTasks
- mov r0, r12
- lsls r2, r0, 2
- adds r0, r2, r0
- lsls r0, 3
- adds r3, r0, r1
- movs r4, 0x16
- ldrsh r0, [r3, r4]
- mov r10, r1
- mov r9, r2
- cmp r0, 0
- beq _08089810
- movs r1, 0x14
- ldrsh r0, [r3, r1]
- cmp r0, 0xE
- bhi _08089810
- lsls r0, 2
- ldr r1, _08089794 @ =_08089798
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08089790: .4byte gTasks
-_08089794: .4byte _08089798
- .align 2, 0
-_08089798:
- .4byte _080897D4
- .4byte _08089810
- .4byte _080897DC
- .4byte _08089810
- .4byte _080897E4
- .4byte _08089810
- .4byte _080897EC
- .4byte _08089810
- .4byte _080897F4
- .4byte _08089810
- .4byte _080897FC
- .4byte _08089810
- .4byte _08089804
- .4byte _08089810
- .4byte _0808980C
-_080897D4:
- ldr r0, _080897D8 @ =gUnknown_030042A4
- b _0808980E
- .align 2, 0
-_080897D8: .4byte gUnknown_030042A4
-_080897DC:
- ldr r0, _080897E0 @ =gUnknown_030042A0
- b _0808980E
- .align 2, 0
-_080897E0: .4byte gUnknown_030042A0
-_080897E4:
- ldr r0, _080897E8 @ =gUnknown_030042C0
- b _0808980E
- .align 2, 0
-_080897E8: .4byte gUnknown_030042C0
-_080897EC:
- ldr r0, _080897F0 @ =gUnknown_030041B4
- b _0808980E
- .align 2, 0
-_080897F0: .4byte gUnknown_030041B4
-_080897F4:
- ldr r0, _080897F8 @ =gUnknown_03004288
- b _0808980E
- .align 2, 0
-_080897F8: .4byte gUnknown_03004288
-_080897FC:
- ldr r0, _08089800 @ =gUnknown_03004280
- b _0808980E
- .align 2, 0
-_08089800: .4byte gUnknown_03004280
-_08089804:
- ldr r0, _08089808 @ =gUnknown_030041B0
- b _0808980E
- .align 2, 0
-_08089808: .4byte gUnknown_030041B0
-_0808980C:
- ldr r0, _08089870 @ =gUnknown_030041B8
-_0808980E:
- ldrh r6, [r0]
-_08089810:
- mov r0, r9
- add r0, r12
- lsls r0, 3
- mov r2, r10
- adds r1, r0, r2
- ldrh r2, [r1, 0x10]
- movs r3, 0x10
- ldrsh r0, [r1, r3]
- cmp r0, 0
- beq _0808987C
- subs r0, r2, 0x1
- strh r0, [r1, 0x10]
- movs r4, 0xE
- ldrsh r0, [r1, r4]
- movs r3, 0xA0
- lsls r3, 1
- adds r2, r0, r3
- movs r4, 0x8
- ldrsh r3, [r1, r4]
- movs r4, 0xA
- ldrsh r0, [r1, r4]
- cmp r3, r0
- bge _080898E4
- ldr r5, _08089874 @ =gUnknown_03004DE0
- ldr r0, _08089878 @ =gUnknown_03004DC0
- mov r8, r0
- adds r7, r1, 0
- lsls r0, r2, 1
- adds r4, r0, r5
-_0808984A:
- lsls r2, r3, 1
- mov r0, r8
- ldrb r1, [r0, 0x14]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 7
- adds r2, r0
- adds r2, r5
- ldrh r0, [r4]
- adds r0, r6
- strh r0, [r2]
- adds r4, 0x2
- adds r3, 0x1
- movs r1, 0xA
- ldrsh r0, [r7, r1]
- cmp r3, r0
- blt _0808984A
- b _080898E4
- .align 2, 0
-_08089870: .4byte gUnknown_030041B8
-_08089874: .4byte gUnknown_03004DE0
-_08089878: .4byte gUnknown_03004DC0
-_0808987C:
- ldrh r0, [r1, 0x12]
- strh r0, [r1, 0x10]
- movs r2, 0xE
- ldrsh r0, [r1, r2]
- movs r3, 0xA0
- lsls r3, 1
- adds r2, r0, r3
- movs r4, 0x8
- ldrsh r3, [r1, r4]
- movs r4, 0xA
- ldrsh r0, [r1, r4]
- cmp r3, r0
- bge _080898C4
- ldr r5, _080898F4 @ =gUnknown_03004DE0
- adds r7, r1, 0
- lsls r0, r2, 1
- adds r4, r0, r5
- ldr r0, _080898F8 @ =gUnknown_03004DC0
- mov r8, r0
-_080898A2:
- lsls r2, r3, 1
- mov r0, r8
- ldrb r1, [r0, 0x14]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 7
- adds r2, r0
- adds r2, r5
- ldrh r0, [r4]
- adds r0, r6
- strh r0, [r2]
- adds r4, 0x2
- adds r3, 0x1
- movs r1, 0xA
- ldrsh r0, [r7, r1]
- cmp r3, r0
- blt _080898A2
-_080898C4:
- mov r0, r9
- add r0, r12
- lsls r0, 3
- mov r3, r10
- adds r2, r0, r3
- ldrh r0, [r2, 0xE]
- adds r0, 0x1
- strh r0, [r2, 0xE]
- lsls r0, 16
- asrs r0, 16
- movs r4, 0xC
- ldrsh r1, [r2, r4]
- cmp r0, r1
- bne _080898E4
- movs r0, 0
- strh r0, [r2, 0xE]
-_080898E4:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080898F4: .4byte gUnknown_03004DE0
-_080898F8: .4byte gUnknown_03004DC0
- thumb_func_end task00_for_dp12
-
- thumb_func_start sub_80898FC
-sub_80898FC: @ 80898FC
- push {r4-r7,lr}
- adds r6, r0, 0
- lsls r1, 24
- lsrs r5, r1, 24
- lsls r2, 24
- lsrs r4, r2, 24
- movs r1, 0
- movs r2, 0
- ldr r0, _08089940 @ =gSineTable
- mov r12, r0
-_08089910:
- lsls r0, r1, 1
- adds r3, r0, r6
- lsls r0, r2, 1
- add r0, r12
- movs r7, 0
- ldrsh r0, [r0, r7]
- muls r0, r4
- cmp r0, 0
- bge _08089924
- adds r0, 0xFF
-_08089924:
- asrs r0, 8
- strh r0, [r3]
- adds r0, r2, r5
- lsls r0, 24
- lsrs r2, r0, 24
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0xFF
- bls _08089910
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08089940: .4byte gSineTable
- thumb_func_end sub_80898FC
-
- thumb_func_start sub_8089944
-sub_8089944: @ 8089944
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x20
- adds r5, r0, 0
- str r1, [sp, 0x10]
- ldr r0, [sp, 0x40]
- mov r8, r0
- ldr r1, [sp, 0x44]
- mov r9, r1
- ldr r0, [sp, 0x48]
- mov r10, r0
- lsls r5, 24
- lsrs r5, 24
- ldr r1, [sp, 0x10]
- lsls r1, 24
- str r1, [sp, 0x14]
- lsrs r0, r1, 24
- str r0, [sp, 0xC]
- lsls r1, r2, 24
- lsrs r1, 24
- str r1, [sp, 0x18]
- lsls r2, r3, 24
- lsrs r2, 24
- str r2, [sp, 0x1C]
- mov r1, r8
- lsls r1, 24
- lsrs r1, 24
- mov r8, r1
- mov r3, r9
- lsls r3, 24
- lsrs r3, 24
- mov r9, r3
- mov r0, r10
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- bl dp12_8087EA4
- ldr r0, _08089A50 @ =REG_BG0HOFS
- add r0, r9
- str r0, [sp]
- ldr r0, _08089A54 @ =0xa2600001
- str r0, [sp, 0x4]
- mov r1, sp
- movs r0, 0x1
- strb r0, [r1, 0x8]
- mov r0, sp
- movs r1, 0
- strb r1, [r0, 0x9]
- ldr r0, [sp]
- ldr r1, [sp, 0x4]
- ldr r2, [sp, 0x8]
- bl sub_80895F8
- ldr r0, _08089A58 @ =task00_for_dp12
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r0, _08089A5C @ =gTasks
- lsls r4, r7, 2
- adds r4, r7
- lsls r4, 3
- adds r4, r0
- strh r5, [r4, 0x8]
- mov r3, sp
- ldrh r3, [r3, 0xC]
- strh r3, [r4, 0xA]
- movs r0, 0x80
- lsls r0, 1
- ldr r1, [sp, 0x18]
- bl __divsi3
- strh r0, [r4, 0xC]
- movs r0, 0
- strh r0, [r4, 0xE]
- mov r1, r8
- strh r1, [r4, 0x10]
- strh r1, [r4, 0x12]
- mov r3, r9
- strh r3, [r4, 0x14]
- mov r0, r10
- strh r0, [r4, 0x16]
- ldr r0, _08089A60 @ =gUnknown_03004DC0
- strb r7, [r0, 0x18]
- ldr r0, _08089A64 @ =gUnknown_0202FFA4
- movs r1, 0
- strb r1, [r0]
- ldr r4, _08089A68 @ =gUnknown_03005060
- ldr r3, [sp, 0xC]
- subs r6, r3, r5
- lsls r3, r6, 24
- lsrs r3, 24
- adds r0, r4, 0
- ldr r1, [sp, 0x18]
- ldr r2, [sp, 0x1C]
- bl sub_80898FC
- ldr r0, [sp, 0xC]
- cmp r5, r0
- bge _08089A3E
- ldr r1, _08089A6C @ =0xfffffd80
- adds r2, r4, r1
- lsls r1, r5, 1
- movs r3, 0xF0
- lsls r3, 3
- adds r0, r1, r3
- adds r3, r0, r2
- adds r1, r2
- adds r2, r4, 0
- adds r5, r6, 0
-_08089A2A:
- ldrh r0, [r2]
- strh r0, [r1]
- ldrh r0, [r2]
- strh r0, [r3]
- adds r2, 0x2
- adds r3, 0x2
- adds r1, 0x2
- subs r5, 0x1
- cmp r5, 0
- bne _08089A2A
-_08089A3E:
- adds r0, r7, 0
- add sp, 0x20
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08089A50: .4byte REG_BG0HOFS
-_08089A54: .4byte 0xa2600001
-_08089A58: .4byte task00_for_dp12
-_08089A5C: .4byte gTasks
-_08089A60: .4byte gUnknown_03004DC0
-_08089A64: .4byte gUnknown_0202FFA4
-_08089A68: .4byte gUnknown_03005060
-_08089A6C: .4byte 0xfffffd80
- thumb_func_end sub_8089944
-
- thumb_func_start sub_8089A70
-sub_8089A70: @ 8089A70
- push {lr}
- ldr r0, _08089A88 @ =gPaletteFade
- ldrb r1, [r0, 0x8]
- movs r2, 0x80
- orrs r1, r2
- strb r1, [r0, 0x8]
- movs r0, 0
- movs r1, 0
- bl OpenPartyMenu
- pop {r0}
- bx r0
- .align 2, 0
-_08089A88: .4byte gPaletteFade
- thumb_func_end sub_8089A70
-
- thumb_func_start sub_8089A8C
-sub_8089A8C: @ 8089A8C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r5, _08089AD0 @ =gUnknown_0202FFA9
- movs r0, 0
- strb r0, [r5]
- ldr r0, _08089AD4 @ =gUnknown_03005CE0
- ldrb r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08089AD8 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- beq _08089AE0
- ldr r4, _08089ADC @ =gUnknown_0202FFAA
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0
- bl AppendToList
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x1
- bl AppendToList
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x3
- bl AppendToList
- b _08089BC8
- .align 2, 0
-_08089AD0: .4byte gUnknown_0202FFA9
-_08089AD4: .4byte gUnknown_03005CE0
-_08089AD8: .4byte gPlayerParty
-_08089ADC: .4byte gUnknown_0202FFAA
-_08089AE0:
- movs r6, 0
- ldr r0, _08089B24 @ =gUnknown_0839F554
- ldrh r0, [r0]
- mov r8, r0
-_08089AE8:
- movs r4, 0
- adds r7, r6, 0x1
- mov r0, r8
- cmp r0, 0xFF
- beq _08089B48
- ldr r5, _08089B24 @ =gUnknown_0839F554
-_08089AF4:
- ldr r0, _08089B28 @ =gUnknown_03005CE0
- ldrb r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08089B2C @ =gPlayerParty
- adds r0, r1
- adds r1, r6, 0
- adds r1, 0xD
- bl GetMonData
- lsls r1, r4, 1
- adds r1, r5
- ldrh r1, [r1]
- cmp r0, r1
- bne _08089B38
- adds r2, r4, 0
- adds r2, 0xA
- lsls r2, 24
- lsrs r2, 24
- ldr r0, _08089B30 @ =gUnknown_0202FFAA
- ldr r1, _08089B34 @ =gUnknown_0202FFA9
- bl AppendToList
- b _08089B48
- .align 2, 0
-_08089B24: .4byte gUnknown_0839F554
-_08089B28: .4byte gUnknown_03005CE0
-_08089B2C: .4byte gPlayerParty
-_08089B30: .4byte gUnknown_0202FFAA
-_08089B34: .4byte gUnknown_0202FFA9
-_08089B38:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- lsls r0, r4, 1
- adds r0, r5
- ldrh r0, [r0]
- cmp r0, 0xFF
- bne _08089AF4
-_08089B48:
- lsls r0, r7, 16
- lsrs r6, r0, 16
- cmp r6, 0x3
- bls _08089AE8
- ldr r4, _08089BA4 @ =gUnknown_0202FFAA
- ldr r5, _08089BA8 @ =gUnknown_0202FFA9
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0
- bl AppendToList
- ldr r6, _08089BAC @ =gPlayerParty + 1 * 0x64
- adds r0, r6, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _08089B76
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x1
- bl AppendToList
-_08089B76:
- ldr r0, _08089BB0 @ =gUnknown_03005CE0
- ldrb r1, [r0]
- movs r0, 0x64
- muls r0, r1
- adds r1, r6, 0
- subs r1, 0x64
- adds r0, r1
- movs r1, 0xC
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- bl itemid_is_mail
- lsls r0, 24
- cmp r0, 0
- beq _08089BB4
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x7
- bl AppendToList
- b _08089BBE
- .align 2, 0
-_08089BA4: .4byte gUnknown_0202FFAA
-_08089BA8: .4byte gUnknown_0202FFA9
-_08089BAC: .4byte gPlayerParty + 1 * 0x64
-_08089BB0: .4byte gUnknown_03005CE0
-_08089BB4:
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x2
- bl AppendToList
-_08089BBE:
- ldr r0, _08089BD4 @ =gUnknown_0202FFAA
- ldr r1, _08089BD8 @ =gUnknown_0202FFA9
- movs r2, 0x3
- bl AppendToList
-_08089BC8:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08089BD4: .4byte gUnknown_0202FFAA
-_08089BD8: .4byte gUnknown_0202FFA9
- thumb_func_end sub_8089A8C
-
- thumb_func_start sub_8089BDC
-sub_8089BDC: @ 8089BDC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- adds r5, r0, 0
- adds r6, r1, 0
- adds r4, r2, 0
- mov r8, r3
- ldr r7, [sp, 0x20]
- ldr r1, [sp, 0x24]
- lsls r5, 24
- lsrs r5, 24
- lsls r6, 24
- lsrs r6, 24
- lsls r4, 24
- lsrs r4, 24
- mov r0, r8
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r1, 24
- lsrs r1, 24
- movs r0, 0x5
- bl sub_806D538
- adds r4, r5, r4
- lsls r4, 24
- lsrs r4, 24
- mov r0, r8
- lsls r3, r0, 1
- adds r3, r6, r3
- adds r3, 0x1
- lsls r3, 24
- lsrs r3, 24
- adds r0, r5, 0
- adds r1, r6, 0
- adds r2, r4, 0
- bl MenuDrawTextWindow
- adds r5, 0x1
- lsls r5, 24
- lsrs r5, 24
- adds r6, 0x1
- lsls r6, 24
- lsrs r6, 24
- str r7, [sp]
- adds r0, r5, 0
- adds r1, r6, 0
- mov r2, r8
- ldr r3, [sp, 0x1C]
- bl PrintMenuItemsReordered
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8089BDC
-
- thumb_func_start sub_8089C50
-sub_8089C50: @ 8089C50
- push {r4,r5,lr}
- sub sp, 0xC
- ldr r4, [sp, 0x18]
- ldr r5, [sp, 0x1C]
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r2, 24
- lsls r3, 24
- lsrs r3, 24
- str r4, [sp]
- str r5, [sp, 0x4]
- movs r4, 0x1
- str r4, [sp, 0x8]
- bl sub_8089BDC
- add sp, 0xC
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8089C50
-
- thumb_func_start sub_8089C7C
-sub_8089C7C: @ 8089C7C
- push {r4-r6,lr}
- sub sp, 0xC
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r6, _08089CC8 @ =gUnknown_0202FFA9
- ldrb r0, [r6]
- lsls r0, 1
- movs r4, 0x12
- subs r4, r0
- lsls r4, 24
- lsrs r4, 24
- ldrb r3, [r6]
- ldr r0, _08089CCC @ =gPokemonMenuActions
- str r0, [sp]
- ldr r0, _08089CD0 @ =gUnknown_0202FFAA
- str r0, [sp, 0x4]
- movs r0, 0x3
- str r0, [sp, 0x8]
- movs r0, 0x13
- adds r1, r4, 0
- movs r2, 0xA
- bl sub_8089BDC
- movs r2, 0x1
- orrs r2, r4
- ldrb r3, [r6]
- str r5, [sp]
- movs r0, 0x9
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x14
- bl InitMenu
- add sp, 0xC
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08089CC8: .4byte gUnknown_0202FFA9
-_08089CCC: .4byte gPokemonMenuActions
-_08089CD0: .4byte gUnknown_0202FFAA
- thumb_func_end sub_8089C7C
-
- thumb_func_start sub_8089CD4
-sub_8089CD4: @ 8089CD4
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08089D00 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- bne _08089D84
- adds r0, r4, 0
- bl sub_806BD80
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- beq _08089D04
- cmp r0, 0x2
- beq _08089D60
- b _08089D84
- .align 2, 0
-_08089D00: .4byte gPaletteFade
-_08089D04:
- movs r0, 0x5
- bl PlaySE
- adds r0, r4, 0
- bl sub_806CA38
- ldr r1, _08089D48 @ =gUnknown_03005CE0
- strb r0, [r1]
- ldrb r1, [r1]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08089D4C @ =gPlayerParty
- adds r0, r1
- ldr r1, _08089D50 @ =gStringVar1
- bl GetMonNickname
- bl sub_8089A8C
- ldr r0, _08089D54 @ =gUnknown_0202FFA8
- strb r5, [r0]
- movs r0, 0
- bl sub_8089C7C
- ldr r1, _08089D58 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _08089D5C @ =sub_8089D94
- str r1, [r0]
- adds r0, r4, 0
- bl sub_808B5B4
- b _08089D84
- .align 2, 0
-_08089D48: .4byte gUnknown_03005CE0
-_08089D4C: .4byte gPlayerParty
-_08089D50: .4byte gStringVar1
-_08089D54: .4byte gUnknown_0202FFA8
-_08089D58: .4byte gTasks
-_08089D5C: .4byte sub_8089D94
-_08089D60:
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- negs r0, r0
- str r5, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _08089D8C @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _08089D90 @ =sub_8089E4C
- str r1, [r0]
-_08089D84:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08089D8C: .4byte gTasks
-_08089D90: .4byte sub_8089E4C
- thumb_func_end sub_8089CD4
-
- thumb_func_start sub_8089D94
-sub_8089D94: @ 8089D94
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r5, r4, 0
- ldr r0, _08089DC8 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08089E44
- ldr r2, _08089DCC @ =gMain
- ldrh r0, [r2, 0x30]
- movs r1, 0xF0
- ands r1, r0
- cmp r1, 0x40
- bne _08089DD4
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- negs r0, r0
- bl MoveMenuCursor
- ldr r1, _08089DD0 @ =gUnknown_0202FFA8
- strb r0, [r1]
- b _08089E1A
- .align 2, 0
-_08089DC8: .4byte gPaletteFade
-_08089DCC: .4byte gMain
-_08089DD0: .4byte gUnknown_0202FFA8
-_08089DD4:
- cmp r1, 0x80
- bne _08089DF0
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- bl MoveMenuCursor
- ldr r1, _08089DEC @ =gUnknown_0202FFA8
- strb r0, [r1]
- b _08089E1A
- .align 2, 0
-_08089DEC: .4byte gUnknown_0202FFA8
-_08089DF0:
- ldrh r1, [r2, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08089E30
- movs r0, 0x5
- bl PlaySE
- ldr r1, _08089E24 @ =gPokemonMenuActions
- ldr r2, _08089E28 @ =gUnknown_0202FFAA
- ldr r0, _08089E2C @ =gUnknown_0202FFA8
- ldrb r0, [r0]
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 3
- adds r1, 0x4
- adds r0, r1
- ldr r1, [r0]
- adds r0, r4, 0
- bl _call_via_r1
-_08089E1A:
- adds r0, r4, 0
- bl sub_808B5B4
- b _08089E44
- .align 2, 0
-_08089E24: .4byte gPokemonMenuActions
-_08089E28: .4byte gUnknown_0202FFAA
-_08089E2C: .4byte gUnknown_0202FFA8
-_08089E30:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08089E44
- adds r0, r5, 0
- bl PokemonMenu_Cancel
- adds r0, r5, 0
- bl sub_808B5B4
-_08089E44:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8089D94
-
- thumb_func_start sub_8089E4C
-sub_8089E4C: @ 8089E4C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08089E78 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- bne _08089E72
- ldr r0, _08089E7C @ =gUnknown_03005CE0
- strb r1, [r0]
- ldr r0, _08089E80 @ =sub_805469C
- bl SetMainCallback2
- adds r0, r4, 0
- bl DestroyTask
-_08089E72:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08089E78: .4byte gPaletteFade
-_08089E7C: .4byte gUnknown_03005CE0
-_08089E80: .4byte sub_805469C
- thumb_func_end sub_8089E4C
-
- thumb_func_start sub_8089E84
-sub_8089E84: @ 8089E84
- push {lr}
- ldr r0, _08089EAC @ =gUnknown_03005CE0
- ldrb r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08089EB0 @ =gPlayerParty
- adds r0, r1
- ldr r1, _08089EB4 @ =gStringVar1
- bl GetMonNickname
- bl sub_8089A8C
- ldr r1, _08089EB8 @ =gUnknown_0202FFA8
- movs r0, 0
- strb r0, [r1]
- movs r0, 0
- bl sub_8089C7C
- pop {r0}
- bx r0
- .align 2, 0
-_08089EAC: .4byte gUnknown_03005CE0
-_08089EB0: .4byte gPlayerParty
-_08089EB4: .4byte gStringVar1
-_08089EB8: .4byte gUnknown_0202FFA8
- thumb_func_end sub_8089E84
-
- thumb_func_start sub_8089EBC
-sub_8089EBC: @ 8089EBC
- push {r4,r5,lr}
- ldr r4, _08089EC4 @ =0x0201b260
- ldr r5, _08089EC8 @ =gUnknown_020384F0
- b _08089ED8
- .align 2, 0
-_08089EC4: .4byte 0x0201b260
-_08089EC8: .4byte gUnknown_020384F0
-_08089ECC:
- bl sub_80F9344
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08089F04
-_08089ED8:
- bl sub_806B124
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08089ECC
- ldrb r0, [r4]
- ldrb r1, [r5]
- bl sub_806C994
- ldrb r0, [r4]
- movs r1, 0
- bl sub_806BF74
- ldr r1, _08089F0C @ =gUnknown_03005CE0
- ldrb r0, [r5]
- strb r0, [r1]
- bl sub_8089E84
- ldr r0, _08089F10 @ =sub_806AEDC
- bl SetMainCallback2
-_08089F04:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08089F0C: .4byte gUnknown_03005CE0
-_08089F10: .4byte sub_806AEDC
- thumb_func_end sub_8089EBC
-
- thumb_func_start sub_8089F14
-sub_8089F14: @ 8089F14
- push {lr}
- ldr r2, _08089F38 @ =gPaletteFade
- ldrb r0, [r2, 0x8]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2, 0x8]
- ldr r2, _08089F3C @ =sub_8089D94
- movs r0, 0
- movs r1, 0xFF
- movs r3, 0x5
- bl sub_806AF4C
- ldr r0, _08089F40 @ =sub_8089EBC
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_08089F38: .4byte gPaletteFade
-_08089F3C: .4byte sub_8089D94
-_08089F40: .4byte sub_8089EBC
- thumb_func_end sub_8089F14
-
- thumb_func_start sub_8089F44
-sub_8089F44: @ 8089F44
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r0, _08089FAC @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- bne _08089FA2
- ldr r2, _08089FB0 @ =gSprites
- ldr r1, _08089FB4 @ =gTasks
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r0, r1
- ldrh r1, [r0, 0xE]
- lsls r1, 16
- asrs r1, 24
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r4, [r0, 0x2E]
- lsls r4, 24
- lsrs r4, 24
- adds r0, r3, 0
- bl DestroyTask
- ldr r0, _08089FB8 @ =0x0201b000
- ldr r1, _08089FBC @ =0x00000262
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
- ldr r0, _08089FC0 @ =gPlayerParty
- ldr r1, _08089FC4 @ =gPlayerPartyCount
- ldrb r2, [r1]
- subs r2, 0x1
- lsls r2, 24
- lsrs r2, 24
- ldr r3, _08089FC8 @ =sub_8089F14
- str r5, [sp]
- adds r1, r4, 0
- bl sub_809D8BC
-_08089FA2:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08089FAC: .4byte gPaletteFade
-_08089FB0: .4byte gSprites
-_08089FB4: .4byte gTasks
-_08089FB8: .4byte 0x0201b000
-_08089FBC: .4byte 0x00000262
-_08089FC0: .4byte gPlayerParty
-_08089FC4: .4byte gPlayerPartyCount
-_08089FC8: .4byte sub_8089F14
- thumb_func_end sub_8089F44
-
- thumb_func_start PokemonMenu_Summary
-PokemonMenu_Summary: @ 8089FCC
- 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, _08089FFC @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0808A000 @ =sub_8089F44
- str r1, [r0]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08089FFC: .4byte gTasks
-_0808A000: .4byte sub_8089F44
- thumb_func_end PokemonMenu_Summary
-
- thumb_func_start sub_808A004
-sub_808A004: @ 808A004
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0808A024 @ =sub_806CA60
- ldr r2, _0808A028 @ =sub_8089CD4
- bl SetTaskFuncWithFollowupFunc
- movs r0, 0x13
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- pop {r0}
- bx r0
- .align 2, 0
-_0808A024: .4byte sub_806CA60
-_0808A028: .4byte sub_8089CD4
- thumb_func_end sub_808A004
-
- thumb_func_start PokemonMenu_Switch
-PokemonMenu_Switch: @ 808A02C
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_8072DEC
- ldr r0, _0808A054 @ =0x02001000
- ldr r1, _0808A058 @ =sub_806CD5C
- str r1, [r0, 0xC]
- ldr r1, _0808A05C @ =0x0001a272
- adds r0, r1
- movs r1, 0x1
- strh r1, [r0]
- adds r0, r4, 0
- bl sub_808A004
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808A054: .4byte 0x02001000
-_0808A058: .4byte sub_806CD5C
-_0808A05C: .4byte 0x0001a272
- thumb_func_end PokemonMenu_Switch
-
- thumb_func_start sub_808A060
-sub_808A060: @ 808A060
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _0808A0D0 @ =gMain
- ldrh r0, [r0, 0x2E]
- cmp r0, 0x40
- bne _0808A086
- ldr r4, _0808A0D4 @ =gUnknown_0202FFA8
- ldrb r0, [r4]
- cmp r0, 0
- beq _0808A086
- movs r0, 0x1
- negs r0, r0
- bl MoveMenuCursor
- strb r0, [r4]
- movs r0, 0x5
- bl PlaySE
-_0808A086:
- ldr r0, _0808A0D0 @ =gMain
- ldrh r0, [r0, 0x2E]
- cmp r0, 0x80
- bne _0808A0A4
- ldr r4, _0808A0D4 @ =gUnknown_0202FFA8
- ldrb r0, [r4]
- cmp r0, 0x2
- beq _0808A0A4
- movs r0, 0x1
- bl MoveMenuCursor
- strb r0, [r4]
- movs r0, 0x5
- bl PlaySE
-_0808A0A4:
- ldr r0, _0808A0D0 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0808A0E0
- movs r0, 0x5
- bl PlaySE
- ldr r1, _0808A0D8 @ =gUnknown_0839F578
- ldr r2, _0808A0DC @ =gPokemonMenuActions
- ldr r0, _0808A0D4 @ =gUnknown_0202FFA8
- ldrb r3, [r0]
- movs r0, 0
- bl sub_806E81C
- adds r1, r0, 0
- adds r0, r5, 0
- bl _call_via_r1
- b _0808A0F6
- .align 2, 0
-_0808A0D0: .4byte gMain
-_0808A0D4: .4byte gUnknown_0202FFA8
-_0808A0D8: .4byte gUnknown_0839F578
-_0808A0DC: .4byte gPokemonMenuActions
-_0808A0E0:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0808A0F6
- ldr r1, _0808A0FC @ =gUnknown_0839F578
- movs r0, 0
- bl sub_806E7D0
- adds r0, r5, 0
- bl PokemonMenu_CancelSubmenu
-_0808A0F6:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0808A0FC: .4byte gUnknown_0839F578
- thumb_func_end sub_808A060
-
- thumb_func_start sub_808A100
-sub_808A100: @ 808A100
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r1, _0808A130 @ =gUnknown_0839F578
- ldr r2, _0808A134 @ =gPokemonMenuActions
- movs r0, 0
- movs r3, 0
- bl sub_806E750
- movs r0, 0xD
- movs r1, 0x2
- bl sub_806D538
- ldr r1, _0808A138 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0808A13C @ =sub_808A060
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808A130: .4byte gUnknown_0839F578
-_0808A134: .4byte gPokemonMenuActions
-_0808A138: .4byte gTasks
-_0808A13C: .4byte sub_808A060
- thumb_func_end sub_808A100
-
- thumb_func_start PokemonMenu_Item
-PokemonMenu_Item: @ 808A140
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_8072DEC
- ldr r1, _0808A174 @ =gUnknown_0202FFA8
- movs r0, 0
- strb r0, [r1]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- ldr r1, _0808A178 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0808A17C @ =sub_808A100
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808A174: .4byte gUnknown_0202FFA8
-_0808A178: .4byte gTasks
-_0808A17C: .4byte sub_808A100
- thumb_func_end PokemonMenu_Item
-
- thumb_func_start sub_808A180
-sub_808A180: @ 808A180
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _0808A1D0 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0808A1CA
- adds r0, r5, 0
- bl sub_806CA38
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r0, r1
- ldr r1, _0808A1D4 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x40
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- bl DestroyTask
- lsls r1, r4, 3
- adds r1, r4
- lsls r1, 2
- ldr r0, _0808A1D8 @ =gSaveBlock1 + 0x2B4C
- adds r1, r0
- ldr r2, _0808A1DC @ =sub_808A520
- movs r0, 0x4
- movs r3, 0x3
- bl sub_80E62A0
-_0808A1CA:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0808A1D0: .4byte gPaletteFade
-_0808A1D4: .4byte gPlayerParty
-_0808A1D8: .4byte gSaveBlock1 + 0x2B4C
-_0808A1DC: .4byte sub_808A520
- thumb_func_end sub_808A180
-
- thumb_func_start sub_808A1E0
-sub_808A1E0: @ 808A1E0
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0808A21C @ =gUnknown_0202E8F6
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _0808A216
- adds r0, r4, 0
- bl sub_806CA38
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl sub_806DF60
- movs r0, 0
- movs r1, 0
- bl sub_806D538
- ldr r1, _0808A220 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0808A224 @ =sub_8089CD4
- str r1, [r0]
-_0808A216:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808A21C: .4byte gUnknown_0202E8F6
-_0808A220: .4byte gTasks
-_0808A224: .4byte sub_8089CD4
- thumb_func_end sub_808A1E0
-
- thumb_func_start sub_808A228
-sub_808A228: @ 808A228
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0808A268 @ =gScriptItemId
- ldrh r0, [r0]
- bl itemid_is_mail
- lsls r0, 24
- cmp r0, 0
- beq _0808A278
- ldr r0, _0808A26C @ =gUnknown_0202E8F4
- ldrb r0, [r0]
- cmp r0, 0
- beq _0808A278
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _0808A270 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0808A274 @ =sub_808A180
- str r1, [r0]
- b _0808A29A
- .align 2, 0
-_0808A268: .4byte gScriptItemId
-_0808A26C: .4byte gUnknown_0202E8F4
-_0808A270: .4byte gTasks
-_0808A274: .4byte sub_808A180
-_0808A278:
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- movs r0, 0
- movs r1, 0
- bl sub_806D538
- ldr r0, _0808A2A4 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _0808A2A8 @ =sub_8089CD4
- str r0, [r1]
-_0808A29A:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808A2A4: .4byte gTasks
-_0808A2A8: .4byte sub_8089CD4
- thumb_func_end sub_808A228
-
- thumb_func_start sub_808A2AC
-sub_808A2AC: @ 808A2AC
- push {lr}
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r0, _0808A2D0 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0808A2CA
- ldr r0, _0808A2D4 @ =gScriptItemId
- ldrh r1, [r0]
- ldr r2, _0808A2D8 @ =sub_808A228
- adds r0, r3, 0
- bl sub_806E964
-_0808A2CA:
- pop {r0}
- bx r0
- .align 2, 0
-_0808A2D0: .4byte gPaletteFade
-_0808A2D4: .4byte gScriptItemId
-_0808A2D8: .4byte sub_808A228
- thumb_func_end sub_808A2AC
-
- thumb_func_start sub_808A2DC
-sub_808A2DC: @ 808A2DC
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- adds r0, r5, 0
- bl sub_806CA38
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r0, r1
- ldr r1, _0808A324 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x40
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- bl DestroyTask
- lsls r1, r4, 3
- adds r1, r4
- lsls r1, 2
- ldr r0, _0808A328 @ =gSaveBlock1 + 0x2B4C
- adds r1, r0
- ldr r2, _0808A32C @ =sub_808A520
- movs r0, 0x4
- movs r3, 0x3
- bl sub_80E62A0
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0808A324: .4byte gPlayerParty
-_0808A328: .4byte gSaveBlock1 + 0x2B4C
-_0808A32C: .4byte sub_808A520
- thumb_func_end sub_808A2DC
-
- thumb_func_start sub_808A330
-sub_808A330: @ 808A330
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0808A344 @ =gScriptItemId
- ldrh r1, [r1]
- ldr r2, _0808A348 @ =sub_808A2DC
- bl sub_806E964
- pop {r0}
- bx r0
- .align 2, 0
-_0808A344: .4byte gScriptItemId
-_0808A348: .4byte sub_808A2DC
- thumb_func_end sub_808A330
-
- thumb_func_start sub_808A34C
-sub_808A34C: @ 808A34C
- push {lr}
- bl RunTasks
- pop {r0}
- bx r0
- thumb_func_end sub_808A34C
-
- thumb_func_start sub_808A358
-sub_808A358: @ 808A358
- push {r4,lr}
- ldr r4, _0808A360 @ =0x0201b260
- b _0808A370
- .align 2, 0
-_0808A360: .4byte 0x0201b260
-_0808A364:
- bl sub_80F9344
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0808A394
-_0808A370:
- bl sub_806B124
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0808A364
- ldrb r0, [r4]
- ldr r1, _0808A39C @ =gUnknown_03005CE0
- ldrb r1, [r1]
- bl sub_806C994
- ldrb r0, [r4]
- movs r1, 0
- bl sub_806BF74
- ldr r0, _0808A3A0 @ =sub_806AEDC
- bl SetMainCallback2
-_0808A394:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808A39C: .4byte gUnknown_03005CE0
-_0808A3A0: .4byte sub_806AEDC
- thumb_func_end sub_808A358
-
- thumb_func_start sub_808A3A4
-sub_808A3A4: @ 808A3A4
- push {r4,r5,lr}
- ldr r4, _0808A3D8 @ =0x0201b260
- adds r5, r4, 0x2
-_0808A3AA:
- bl sub_806B124
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0808A3E4
- ldrb r0, [r4]
- ldr r1, _0808A3DC @ =gUnknown_03005CE0
- ldrb r1, [r1]
- bl sub_806C994
- ldrb r0, [r4]
- movs r1, 0
- bl sub_806BF74
- movs r0, 0x3
- strb r0, [r5]
- bl sub_8089E84
- ldr r0, _0808A3E0 @ =sub_806AEDC
- bl SetMainCallback2
- b _0808A3F0
- .align 2, 0
-_0808A3D8: .4byte 0x0201b260
-_0808A3DC: .4byte gUnknown_03005CE0
-_0808A3E0: .4byte sub_806AEDC
-_0808A3E4:
- bl sub_80F9344
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0808A3AA
-_0808A3F0:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_808A3A4
-
- thumb_func_start sub_808A3F8
-sub_808A3F8: @ 808A3F8
- push {r4,lr}
- ldr r0, _0808A460 @ =gScriptItemId
- ldrh r0, [r0]
- bl itemid_is_mail
- lsls r0, 24
- cmp r0, 0
- beq _0808A47E
- ldr r0, _0808A464 @ =sub_808A330
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r2, _0808A468 @ =gPaletteFade
- ldrb r0, [r2, 0x8]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2, 0x8]
- adds r0, r4, 0
- movs r1, 0
- bl sub_806BD58
- ldr r0, _0808A46C @ =gUnknown_03005CE0
- ldrb r1, [r0]
- adds r0, r4, 0
- bl sub_806C994
- adds r0, r4, 0
- movs r1, 0
- bl sub_806BF74
- adds r0, r4, 0
- bl sub_806CA38
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r0, r1
- ldr r1, _0808A470 @ =gPlayerParty
- adds r0, r1
- movs r1, 0xC
- bl GetMonData
- lsls r0, 24
- cmp r0, 0
- bne _0808A478
- ldr r0, _0808A474 @ =sub_808A34C
- bl SetMainCallback2
- b _0808A4C6
- .align 2, 0
-_0808A460: .4byte gScriptItemId
-_0808A464: .4byte sub_808A330
-_0808A468: .4byte gPaletteFade
-_0808A46C: .4byte gUnknown_03005CE0
-_0808A470: .4byte gPlayerParty
-_0808A474: .4byte sub_808A34C
-_0808A478:
- adds r0, r4, 0
- bl DestroyTask
-_0808A47E:
- ldr r2, _0808A4A4 @ =gPaletteFade
- ldrb r0, [r2, 0x8]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2, 0x8]
- ldr r0, _0808A4A8 @ =gScriptItemId
- ldrh r0, [r0]
- cmp r0, 0
- beq _0808A4B4
- ldr r2, _0808A4AC @ =sub_808A2AC
- movs r0, 0
- movs r1, 0xFF
- movs r3, 0xFF
- bl sub_806AF4C
- ldr r0, _0808A4B0 @ =sub_808A358
- bl SetMainCallback2
- b _0808A4C6
- .align 2, 0
-_0808A4A4: .4byte gPaletteFade
-_0808A4A8: .4byte gScriptItemId
-_0808A4AC: .4byte sub_808A2AC
-_0808A4B0: .4byte sub_808A358
-_0808A4B4:
- ldr r2, _0808A4CC @ =sub_8089D94
- movs r0, 0
- movs r1, 0xFF
- movs r3, 0x5
- bl sub_806AF4C
- ldr r0, _0808A4D0 @ =sub_808A3A4
- bl SetMainCallback2
-_0808A4C6:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808A4CC: .4byte sub_8089D94
-_0808A4D0: .4byte sub_808A3A4
- thumb_func_end sub_808A3F8
-
- thumb_func_start sub_808A4D4
-sub_808A4D4: @ 808A4D4
- push {r4,lr}
- ldr r4, _0808A4DC @ =0x0201b260
- b _0808A4EC
- .align 2, 0
-_0808A4DC: .4byte 0x0201b260
-_0808A4E0:
- bl sub_80F9344
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0808A510
-_0808A4EC:
- bl sub_806B124
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0808A4E0
- ldrb r0, [r4]
- ldr r1, _0808A518 @ =gUnknown_03005CE0
- ldrb r1, [r1]
- bl sub_806C994
- ldrb r0, [r4]
- movs r1, 0
- bl sub_806BF74
- ldr r0, _0808A51C @ =sub_806AEDC
- bl SetMainCallback2
-_0808A510:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808A518: .4byte gUnknown_03005CE0
-_0808A51C: .4byte sub_806AEDC
- thumb_func_end sub_808A4D4
-
- thumb_func_start sub_808A520
-sub_808A520: @ 808A520
- push {r4-r7,lr}
- ldr r2, _0808A584 @ =gPaletteFade
- ldrb r0, [r2, 0x8]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2, 0x8]
- ldr r0, _0808A588 @ =gScriptResult
- ldrh r0, [r0]
- cmp r0, 0
- bne _0808A59C
- ldr r7, _0808A58C @ =gUnknown_0202E8F8
- ldrh r0, [r7]
- cmp r0, 0
- beq _0808A542
- movs r1, 0x1
- bl RemoveBagItem
-_0808A542:
- ldr r6, _0808A590 @ =gUnknown_03005CE0
- ldrb r0, [r6]
- movs r5, 0x64
- muls r0, r5
- ldr r4, _0808A594 @ =gPlayerParty
- adds r0, r4
- movs r1, 0xC
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x1
- bl AddBagItem
- ldrb r0, [r6]
- muls r0, r5
- adds r0, r4
- bl sub_80A2DF8
- ldrb r0, [r6]
- muls r0, r5
- adds r0, r4
- movs r1, 0xC
- adds r2, r7, 0
- bl SetMonData
- ldr r2, _0808A598 @ =sub_8089CD4
- movs r0, 0
- movs r1, 0xFF
- movs r3, 0
- bl sub_806AF4C
- b _0808A5A8
- .align 2, 0
-_0808A584: .4byte gPaletteFade
-_0808A588: .4byte gScriptResult
-_0808A58C: .4byte gUnknown_0202E8F8
-_0808A590: .4byte gUnknown_03005CE0
-_0808A594: .4byte gPlayerParty
-_0808A598: .4byte sub_8089CD4
-_0808A59C:
- ldr r2, _0808A5B4 @ =sub_808A5BC
- movs r0, 0
- movs r1, 0xFF
- movs r3, 0xFF
- bl sub_806AF4C
-_0808A5A8:
- ldr r0, _0808A5B8 @ =sub_808A4D4
- bl SetMainCallback2
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0808A5B4: .4byte sub_808A5BC
-_0808A5B8: .4byte sub_808A4D4
- thumb_func_end sub_808A520
-
- thumb_func_start sub_808A5BC
-sub_808A5BC: @ 808A5BC
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0808A5F0 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0808A5EA
- ldr r0, _0808A5F4 @ =gUnknown_03005CE0
- ldrb r0, [r0]
- ldr r1, _0808A5F8 @ =gScriptItemId
- ldrh r1, [r1]
- movs r2, 0
- bl sub_806EBF0
- ldr r1, _0808A5FC @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0808A600 @ =sub_808A1E0
- str r1, [r0]
-_0808A5EA:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808A5F0: .4byte gPaletteFade
-_0808A5F4: .4byte gUnknown_03005CE0
-_0808A5F8: .4byte gScriptItemId
-_0808A5FC: .4byte gTasks
-_0808A600: .4byte sub_808A1E0
- thumb_func_end sub_808A5BC
-
- thumb_func_start sub_808A604
-sub_808A604: @ 808A604
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0808A628 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0808A622
- ldr r0, _0808A62C @ =sub_80A61D0
- bl SetMainCallback2
- adds r0, r4, 0
- bl DestroyTask
-_0808A622:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808A628: .4byte gPaletteFade
-_0808A62C: .4byte sub_80A61D0
- thumb_func_end sub_808A604
-
- thumb_func_start PokemonMenu_GiveItem
-PokemonMenu_GiveItem: @ 808A630
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- bl sub_806CA38
- ldr r1, _0808A66C @ =gUnknown_0202E8F5
- strb r0, [r1]
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _0808A670 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0808A674 @ =sub_808A604
- str r1, [r0]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808A66C: .4byte gUnknown_0202E8F5
-_0808A670: .4byte gTasks
-_0808A674: .4byte sub_808A604
- thumb_func_end PokemonMenu_GiveItem
-
- thumb_func_start sub_808A678
-sub_808A678: @ 808A678
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl sub_808A8D4
- pop {r0}
- bx r0
- thumb_func_end sub_808A678
-
- thumb_func_start PokemonMenu_TakeItem
-PokemonMenu_TakeItem: @ 808A688
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_8072DEC
- movs r0, 0x13
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- bl sub_806D5A4
- ldr r1, _0808A6B4 @ =sub_808A678
- adds r0, r4, 0
- bl sub_806ECE8
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808A6B4: .4byte sub_808A678
- thumb_func_end PokemonMenu_TakeItem
-
- thumb_func_start PokemonMenu_TakeMail
-PokemonMenu_TakeMail: @ 808A6B8
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_8072DEC
- movs r0, 0x13
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- bl sub_806D5A4
- ldr r1, _0808A6E4 @ =sub_808A678
- adds r0, r4, 0
- bl sub_806EE08
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808A6E4: .4byte sub_808A678
- thumb_func_end PokemonMenu_TakeMail
-
- thumb_func_start PokemonMenu_Mail
-PokemonMenu_Mail: @ 808A6E8
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_8072DEC
- ldr r1, _0808A728 @ =gUnknown_0202FFA8
- movs r0, 0
- strb r0, [r1]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- ldr r1, _0808A72C @ =gUnknown_0839F584
- ldr r2, _0808A730 @ =gPokemonMenuActions
- movs r0, 0
- movs r3, 0
- bl sub_806E750
- ldr r1, _0808A734 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0808A738 @ =sub_808A73C
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808A728: .4byte gUnknown_0202FFA8
-_0808A72C: .4byte gUnknown_0839F584
-_0808A730: .4byte gPokemonMenuActions
-_0808A734: .4byte gTasks
-_0808A738: .4byte sub_808A73C
- thumb_func_end PokemonMenu_Mail
-
- thumb_func_start sub_808A73C
-sub_808A73C: @ 808A73C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _0808A764 @ =gMain
- ldrh r0, [r0, 0x30]
- cmp r0, 0x40
- bne _0808A77A
- movs r0, 0x5
- bl PlaySE
- ldr r4, _0808A768 @ =gUnknown_0202FFA8
- ldrb r0, [r4]
- cmp r0, 0
- bne _0808A770
- ldr r0, _0808A76C @ =gUnknown_0839F584
- ldrb r0, [r0]
- subs r0, 0x1
- lsls r0, 24
- asrs r0, 24
- b _0808A774
- .align 2, 0
-_0808A764: .4byte gMain
-_0808A768: .4byte gUnknown_0202FFA8
-_0808A76C: .4byte gUnknown_0839F584
-_0808A770:
- movs r0, 0x1
- negs r0, r0
-_0808A774:
- bl MoveMenuCursor
- strb r0, [r4]
-_0808A77A:
- ldr r0, _0808A7A0 @ =gMain
- ldrh r0, [r0, 0x30]
- cmp r0, 0x80
- bne _0808A7B4
- movs r0, 0x5
- bl PlaySE
- ldr r4, _0808A7A4 @ =gUnknown_0202FFA8
- ldrb r0, [r4]
- ldr r1, _0808A7A8 @ =gUnknown_0839F584
- ldrb r2, [r1]
- subs r1, r2, 0x1
- cmp r0, r1
- bne _0808A7AC
- movs r0, 0x1
- subs r0, r2
- lsls r0, 24
- asrs r0, 24
- b _0808A7AE
- .align 2, 0
-_0808A7A0: .4byte gMain
-_0808A7A4: .4byte gUnknown_0202FFA8
-_0808A7A8: .4byte gUnknown_0839F584
-_0808A7AC:
- movs r0, 0x1
-_0808A7AE:
- bl MoveMenuCursor
- strb r0, [r4]
-_0808A7B4:
- ldr r0, _0808A7E0 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0808A7F0
- movs r0, 0x5
- bl PlaySE
- ldr r1, _0808A7E4 @ =gUnknown_0839F584
- ldr r2, _0808A7E8 @ =gPokemonMenuActions
- ldr r0, _0808A7EC @ =gUnknown_0202FFA8
- ldrb r3, [r0]
- movs r0, 0
- bl sub_806E81C
- adds r1, r0, 0
- adds r0, r5, 0
- bl _call_via_r1
- b _0808A806
- .align 2, 0
-_0808A7E0: .4byte gMain
-_0808A7E4: .4byte gUnknown_0839F584
-_0808A7E8: .4byte gPokemonMenuActions
-_0808A7EC: .4byte gUnknown_0202FFA8
-_0808A7F0:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0808A806
- ldr r1, _0808A80C @ =gUnknown_0839F584
- movs r0, 0
- bl sub_806E7D0
- adds r0, r5, 0
- bl PokemonMenu_Cancel
-_0808A806:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0808A80C: .4byte gUnknown_0839F584
- thumb_func_end sub_808A73C
-
- thumb_func_start PokemonMenu_ReadMail
-PokemonMenu_ReadMail: @ 808A810
- 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, _0808A840 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0808A844 @ =sub_808A848
- str r1, [r0]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808A840: .4byte gTasks
-_0808A844: .4byte sub_808A848
- thumb_func_end PokemonMenu_ReadMail
-
- thumb_func_start sub_808A848
-sub_808A848: @ 808A848
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _0808A898 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0808A890
- adds r0, r5, 0
- bl sub_806CA38
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r0, r1
- ldr r1, _0808A89C @ =gPlayerParty
- adds r0, r1
- movs r1, 0x40
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- bl DestroyTask
- lsls r0, r4, 3
- adds r0, r4
- lsls r0, 2
- ldr r1, _0808A8A0 @ =gSaveBlock1 + 0x2B4C
- adds r0, r1
- ldr r1, _0808A8A4 @ =sub_808A8A8
- movs r2, 0x1
- bl sub_80F890C
-_0808A890:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0808A898: .4byte gPaletteFade
-_0808A89C: .4byte gPlayerParty
-_0808A8A0: .4byte gSaveBlock1 + 0x2B4C
-_0808A8A4: .4byte sub_808A8A8
- thumb_func_end sub_808A848
-
- thumb_func_start sub_808A8A8
-sub_808A8A8: @ 808A8A8
- push {lr}
- ldr r1, _0808A8C4 @ =gUnknown_020384F0
- ldr r0, _0808A8C8 @ =gUnknown_03005CE0
- ldrb r0, [r0]
- strb r0, [r1]
- ldr r0, _0808A8CC @ =0x0201b000
- ldr r1, _0808A8D0 @ =0x00000262
- adds r0, r1
- movs r1, 0x4
- strb r1, [r0]
- bl sub_8089F14
- pop {r0}
- bx r0
- .align 2, 0
-_0808A8C4: .4byte gUnknown_020384F0
-_0808A8C8: .4byte gUnknown_03005CE0
-_0808A8CC: .4byte 0x0201b000
-_0808A8D0: .4byte 0x00000262
- thumb_func_end sub_808A8A8
-
- thumb_func_start sub_808A8D4
-sub_808A8D4: @ 808A8D4
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r1, _0808A90C @ =gUnknown_0202FFA8
- movs r0, 0
- strb r0, [r1]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- movs r0, 0
- movs r1, 0
- bl sub_806D538
- ldr r1, _0808A910 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0808A914 @ =sub_8089CD4
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808A90C: .4byte gUnknown_0202FFA8
-_0808A910: .4byte gTasks
-_0808A914: .4byte sub_8089CD4
- thumb_func_end sub_808A8D4
-
- thumb_func_start PokemonMenu_Cancel
-PokemonMenu_Cancel: @ 808A918
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_8072DEC
- movs r0, 0x5
- bl PlaySE
- adds r0, r4, 0
- bl sub_808A8D4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end PokemonMenu_Cancel
-
- thumb_func_start PokemonMenu_CancelSubmenu
-PokemonMenu_CancelSubmenu: @ 808A938
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_8072DEC
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x13
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- bl sub_806D5A4
- ldr r0, _0808A978 @ =gUnknown_0202FFA8
- ldrb r0, [r0]
- bl sub_8089C7C
- ldr r1, _0808A97C @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0808A980 @ =sub_8089D94
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808A978: .4byte gUnknown_0202FFA8
-_0808A97C: .4byte gTasks
-_0808A980: .4byte sub_8089D94
- thumb_func_end PokemonMenu_CancelSubmenu
-
- thumb_func_start PokemonMenu_FieldMove
-PokemonMenu_FieldMove: @ 808A984
- push {r4-r7,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r6, r0, 3
- ldr r7, _0808A9D0 @ =gTasks + 0x8
- adds r4, r6, r7
- bl sub_8072DEC
- ldr r1, _0808A9D4 @ =gUnknown_0202FFAA
- ldr r0, _0808A9D8 @ =gUnknown_0202FFA8
- ldrb r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- subs r0, 0xA
- strh r0, [r4, 0x16]
- bl sub_80F9344
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0808A9DC
- movs r0, 0x13
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- ldrh r0, [r4, 0x16]
- subs r0, 0xB
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bhi _0808AABA
- movs r0, 0x9
- b _0808AAB2
- .align 2, 0
-_0808A9D0: .4byte gTasks + 0x8
-_0808A9D4: .4byte gUnknown_0202FFAA
-_0808A9D8: .4byte gUnknown_0202FFA8
-_0808A9DC:
- ldrh r1, [r4, 0x16]
- movs r2, 0x16
- ldrsh r0, [r4, r2]
- cmp r0, 0x7
- bgt _0808AA2C
- ldr r2, _0808AA20 @ =0x00000807
- adds r0, r1, r2
- lsls r0, 16
- lsrs r0, 16
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0808AA2C
- movs r0, 0x13
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- bl sub_806D5A4
- ldr r0, _0808AA24 @ =gOtherText_CantBeUsedBadge
- movs r1, 0x1
- bl sub_806E834
- adds r0, r7, 0
- subs r0, 0x8
- adds r0, r6, r0
- ldr r1, _0808AA28 @ =sub_808AAF0
- str r1, [r0]
- b _0808AADA
- .align 2, 0
-_0808AA20: .4byte 0x00000807
-_0808AA24: .4byte gOtherText_CantBeUsedBadge
-_0808AA28: .4byte sub_808AAF0
-_0808AA2C:
- ldr r1, _0808AA78 @ =gFieldMoveFuncs
- movs r2, 0x16
- ldrsh r0, [r4, r2]
- lsls r0, 3
- adds r0, r1
- ldr r0, [r0]
- bl _call_via_r0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0808AA90
- ldr r1, _0808AA7C @ =gUnknown_0202FFA8
- movs r0, 0
- strb r0, [r1]
- ldrh r0, [r4, 0x16]
- subs r0, 0xB
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bls _0808AA88
- ldr r1, _0808AA80 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _0808AA84 @ =sub_808AB34
- str r1, [r0]
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- b _0808AADA
- .align 2, 0
-_0808AA78: .4byte gFieldMoveFuncs
-_0808AA7C: .4byte gUnknown_0202FFA8
-_0808AA80: .4byte gTasks
-_0808AA84: .4byte sub_808AB34
-_0808AA88:
- adds r0, r5, 0
- bl sub_8133D28
- b _0808AADA
-_0808AA90:
- movs r0, 0x13
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- movs r1, 0x16
- ldrsh r0, [r4, r1]
- cmp r0, 0x4
- bne _0808AABA
- movs r0, 0x8
- bl TestPlayerAvatarFlags
- lsls r0, 24
- cmp r0, 0
- beq _0808AABA
- movs r0, 0x8
-_0808AAB2:
- movs r1, 0
- bl sub_806D538
- b _0808AACC
-_0808AABA:
- ldr r0, _0808AAE4 @ =gFieldMoveFuncs
- movs r2, 0x16
- ldrsh r1, [r4, r2]
- lsls r1, 3
- adds r1, r0
- ldrb r0, [r1, 0x4]
- movs r1, 0
- bl sub_806D538
-_0808AACC:
- ldr r0, _0808AAE8 @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldr r0, _0808AAEC @ =sub_808ABF4
- str r0, [r1]
-_0808AADA:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0808AAE4: .4byte gFieldMoveFuncs
-_0808AAE8: .4byte gTasks
-_0808AAEC: .4byte sub_808ABF4
- thumb_func_end PokemonMenu_FieldMove
-
- thumb_func_start sub_808AAF0
-sub_808AAF0: @ 808AAF0
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0808AB2C @ =gUnknown_0202E8F6
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _0808AB24
- ldr r0, _0808AB30 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0808AB12
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0808AB24
-_0808AB12:
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- adds r0, r4, 0
- bl PokemonMenu_Cancel
-_0808AB24:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808AB2C: .4byte gUnknown_0202E8F6
-_0808AB30: .4byte gMain
- thumb_func_end sub_808AAF0
-
- thumb_func_start sub_808AB34
-sub_808AB34: @ 808AB34
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0808AB6C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0808AB84
- ldr r0, _0808AB70 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- movs r2, 0x1E
- ldrsh r0, [r1, r2]
- cmp r0, 0x5
- bne _0808AB62
- bl sub_8147588
- lsls r0, 24
- cmp r0, 0
- beq _0808AB78
-_0808AB62:
- ldr r0, _0808AB74 @ =c2_exit_to_overworld_2_switch
- bl SetMainCallback2
- b _0808AB7E
- .align 2, 0
-_0808AB6C: .4byte gPaletteFade
-_0808AB70: .4byte gTasks
-_0808AB74: .4byte c2_exit_to_overworld_2_switch
-_0808AB78:
- ldr r0, _0808AB8C @ =sub_80FC074
- bl SetMainCallback2
-_0808AB7E:
- adds r0, r4, 0
- bl DestroyTask
-_0808AB84:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808AB8C: .4byte sub_80FC074
- thumb_func_end sub_808AB34
-
- thumb_func_start sub_808AB90
-sub_808AB90: @ 808AB90
- push {lr}
- bl pal_fill_black
- ldr r0, _0808ABA4 @ =sub_808ABA8
- movs r1, 0x8
- bl CreateTask
- pop {r0}
- bx r0
- .align 2, 0
-_0808ABA4: .4byte sub_808ABA8
- thumb_func_end sub_808AB90
-
- thumb_func_start sub_808ABA8
-sub_808ABA8: @ 808ABA8
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_807D770
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0808ABDE
- ldr r0, _0808ABE4 @ =gUnknown_03005CE0
- ldrb r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0808ABE8 @ =gPlayerParty
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- ldr r1, _0808ABEC @ =gUnknown_0202FF84
- str r0, [r1]
- ldr r0, _0808ABF0 @ =gUnknown_03005CE4
- ldr r0, [r0]
- bl _call_via_r0
- adds r0, r4, 0
- bl DestroyTask
-_0808ABDE:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808ABE4: .4byte gUnknown_03005CE0
-_0808ABE8: .4byte gPlayerParty
-_0808ABEC: .4byte gUnknown_0202FF84
-_0808ABF0: .4byte gUnknown_03005CE4
- thumb_func_end sub_808ABA8
-
- thumb_func_start sub_808ABF4
-sub_808ABF4: @ 808ABF4
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0808AC28 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0808AC0E
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0808AC20
-_0808AC0E:
- movs r0, 0x1
- movs r1, 0x11
- movs r2, 0x1C
- movs r3, 0x12
- bl MenuZeroFillWindowRect
- adds r0, r4, 0
- bl PokemonMenu_Cancel
-_0808AC20:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808AC28: .4byte gMain
- thumb_func_end sub_808ABF4
-
- thumb_func_start sub_808AC2C
-sub_808AC2C: @ 808AC2C
- push {lr}
- ldr r0, _0808AC40 @ =gUnknown_0202FF84
- ldr r1, _0808AC44 @ =gUnknown_03005CE0
- ldrb r1, [r1]
- str r1, [r0]
- movs r0, 0x9
- bl FieldEffectStart
- pop {r0}
- bx r0
- .align 2, 0
-_0808AC40: .4byte gUnknown_0202FF84
-_0808AC44: .4byte gUnknown_03005CE0
- thumb_func_end sub_808AC2C
-
- thumb_func_start SetUpFieldMove_Surf
-SetUpFieldMove_Surf: @ 808AC48
- push {lr}
- bl PartyHasMonWithSurf
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0808AC84
- bl IsPlayerFacingSurfableFishableWater
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0808AC84
- ldr r1, _0808AC74 @ =gUnknown_0300485C
- ldr r0, _0808AC78 @ =sub_808AB90
- str r0, [r1]
- ldr r1, _0808AC7C @ =gUnknown_03005CE4
- ldr r0, _0808AC80 @ =sub_808AC2C
- str r0, [r1]
- movs r0, 0x1
- b _0808AC86
- .align 2, 0
-_0808AC74: .4byte gUnknown_0300485C
-_0808AC78: .4byte sub_808AB90
-_0808AC7C: .4byte gUnknown_03005CE4
-_0808AC80: .4byte sub_808AC2C
-_0808AC84:
- movs r0, 0
-_0808AC86:
- pop {r1}
- bx r1
- thumb_func_end SetUpFieldMove_Surf
-
- thumb_func_start sub_808AC8C
-sub_808AC8C: @ 808AC8C
- push {lr}
- ldr r0, _0808ACA0 @ =gUnknown_0202FF84
- ldr r1, _0808ACA4 @ =gUnknown_03005CE0
- ldrb r1, [r1]
- str r1, [r0]
- movs r0, 0x1F
- bl FieldEffectStart
- pop {r0}
- bx r0
- .align 2, 0
-_0808ACA0: .4byte gUnknown_0202FF84
-_0808ACA4: .4byte gUnknown_03005CE0
- thumb_func_end sub_808AC8C
-
- thumb_func_start SetUpFieldMove_Fly
-SetUpFieldMove_Fly: @ 808ACA8
- push {lr}
- bl sub_8147588
- lsls r0, 24
- cmp r0, 0
- beq _0808ACD0
- ldr r1, _0808ACC0 @ =gUnknown_0300485C
- ldr r0, _0808ACC4 @ =sub_808AB90
- str r0, [r1]
- ldr r1, _0808ACC8 @ =gUnknown_03005CE4
- ldr r0, _0808ACCC @ =sub_81475C4
- b _0808ACF2
- .align 2, 0
-_0808ACC0: .4byte gUnknown_0300485C
-_0808ACC4: .4byte sub_808AB90
-_0808ACC8: .4byte gUnknown_03005CE4
-_0808ACCC: .4byte sub_81475C4
-_0808ACD0:
- ldr r0, _0808ACE4 @ =gMapHeader
- ldrb r0, [r0, 0x17]
- bl is_light_level_1_2_3_or_6
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0808ACE8
- movs r0, 0
- b _0808ACF6
- .align 2, 0
-_0808ACE4: .4byte gMapHeader
-_0808ACE8:
- ldr r1, _0808ACFC @ =gUnknown_0300485C
- ldr r0, _0808AD00 @ =sub_808AB90
- str r0, [r1]
- ldr r1, _0808AD04 @ =gUnknown_03005CE4
- ldr r0, _0808AD08 @ =sub_808AC8C
-_0808ACF2:
- str r0, [r1]
- movs r0, 0x1
-_0808ACF6:
- pop {r1}
- bx r1
- .align 2, 0
-_0808ACFC: .4byte gUnknown_0300485C
-_0808AD00: .4byte sub_808AB90
-_0808AD04: .4byte gUnknown_03005CE4
-_0808AD08: .4byte sub_808AC8C
- thumb_func_end SetUpFieldMove_Fly
-
- thumb_func_start sub_808AD0C
-sub_808AD0C: @ 808AD0C
- push {r4,lr}
- ldr r4, _0808AD14 @ =0x0201b260
- b _0808AD24
- .align 2, 0
-_0808AD14: .4byte 0x0201b260
-_0808AD18:
- bl sub_80F9344
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0808AD48
-_0808AD24:
- bl sub_806B124
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0808AD18
- ldrb r0, [r4]
- ldr r1, _0808AD50 @ =gUnknown_03005CE0
- ldrb r1, [r1]
- bl sub_806C994
- ldrb r0, [r4]
- movs r1, 0
- bl sub_806BF74
- ldr r0, _0808AD54 @ =sub_806AEDC
- bl SetMainCallback2
-_0808AD48:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808AD50: .4byte gUnknown_03005CE0
-_0808AD54: .4byte sub_806AEDC
- thumb_func_end sub_808AD0C
-
- thumb_func_start sub_808AD58
-sub_808AD58: @ 808AD58
- push {lr}
- ldr r2, _0808AD7C @ =gPaletteFade
- ldrb r0, [r2, 0x8]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2, 0x8]
- ldr r2, _0808AD80 @ =sub_8089CD4
- movs r0, 0
- movs r1, 0xFF
- movs r3, 0
- bl sub_806AF4C
- ldr r0, _0808AD84 @ =sub_808AD0C
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_0808AD7C: .4byte gPaletteFade
-_0808AD80: .4byte sub_8089CD4
-_0808AD84: .4byte sub_808AD0C
- thumb_func_end sub_808AD58
-
- thumb_func_start unref_sub_808AD88
-unref_sub_808AD88: @ 808AD88
- push {lr}
- ldr r0, _0808ADA4 @ =gUnknown_03005CE0
- ldrb r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0808ADA8 @ =gPlayerParty
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- pop {r1}
- bx r1
- .align 2, 0
-_0808ADA4: .4byte gUnknown_03005CE0
-_0808ADA8: .4byte gPlayerParty
- thumb_func_end unref_sub_808AD88
-
- thumb_func_start sub_808ADAC
-sub_808ADAC: @ 808ADAC
- push {lr}
- ldr r0, _0808ADC0 @ =gUnknown_0202FF84
- ldr r1, _0808ADC4 @ =gUnknown_03005CE0
- ldrb r1, [r1]
- str r1, [r0]
- movs r0, 0x2C
- bl FieldEffectStart
- pop {r0}
- bx r0
- .align 2, 0
-_0808ADC0: .4byte gUnknown_0202FF84
-_0808ADC4: .4byte gUnknown_03005CE0
- thumb_func_end sub_808ADAC
-
- thumb_func_start SetUpFieldMove_Dive
-SetUpFieldMove_Dive: @ 808ADC8
- push {lr}
- bl sub_8068F18
- ldr r1, _0808ADE0 @ =gUnknown_0202FF84
- lsls r0, 24
- lsrs r0, 24
- str r0, [r1, 0x4]
- cmp r0, 0
- bne _0808ADE4
- movs r0, 0
- b _0808ADF2
- .align 2, 0
-_0808ADE0: .4byte gUnknown_0202FF84
-_0808ADE4:
- ldr r1, _0808ADF8 @ =gUnknown_0300485C
- ldr r0, _0808ADFC @ =sub_808AB90
- str r0, [r1]
- ldr r1, _0808AE00 @ =gUnknown_03005CE4
- ldr r0, _0808AE04 @ =sub_808ADAC
- str r0, [r1]
- movs r0, 0x1
-_0808ADF2:
- pop {r1}
- bx r1
- .align 2, 0
-_0808ADF8: .4byte gUnknown_0300485C
-_0808ADFC: .4byte sub_808AB90
-_0808AE00: .4byte gUnknown_03005CE4
-_0808AE04: .4byte sub_808ADAC
- thumb_func_end SetUpFieldMove_Dive
-
- thumb_func_start sub_808AE08
-sub_808AE08: @ 808AE08
- push {lr}
- ldr r0, _0808AE1C @ =gUnknown_0202FF84
- ldr r1, _0808AE20 @ =gUnknown_03005CE0
- ldrb r1, [r1]
- str r1, [r0]
- movs r0, 0x2B
- bl FieldEffectStart
- pop {r0}
- bx r0
- .align 2, 0
-_0808AE1C: .4byte gUnknown_0202FF84
-_0808AE20: .4byte gUnknown_03005CE0
- thumb_func_end sub_808AE08
-
- thumb_func_start SetUpFieldMove_Waterfall
-SetUpFieldMove_Waterfall: @ 808AE24
- push {r4,lr}
- sub sp, 0x4
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl GetXYCoordsOneStepInFrontOfPlayer
- 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_IsWaterfall
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0808AE80
- bl IsPlayerSurfingNorth
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0808AE80
- ldr r1, _0808AE70 @ =gUnknown_0300485C
- ldr r0, _0808AE74 @ =sub_808AB90
- str r0, [r1]
- ldr r1, _0808AE78 @ =gUnknown_03005CE4
- ldr r0, _0808AE7C @ =sub_808AE08
- str r0, [r1]
- movs r0, 0x1
- b _0808AE82
- .align 2, 0
-_0808AE70: .4byte gUnknown_0300485C
-_0808AE74: .4byte sub_808AB90
-_0808AE78: .4byte gUnknown_03005CE4
-_0808AE7C: .4byte sub_808AE08
-_0808AE80:
- movs r0, 0
-_0808AE82:
- add sp, 0x4
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end SetUpFieldMove_Waterfall
-
- thumb_func_start sub_808AE8C
-sub_808AE8C: @ 808AE8C
- push {r4-r6,lr}
- ldr r0, _0808AED8 @ =gScriptItemId
- ldrb r0, [r0]
- subs r0, 0x21
- lsls r0, 24
- lsrs r6, r0, 24
- movs r5, 0
-_0808AE9A:
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _0808AEDC @ =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _0808AF10
- adds r0, r5, 0
- bl sub_806D668
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _0808AECE
- adds r0, r4, 0
- adds r1, r6, 0
- bl CanMonLearnTMHM
- cmp r0, 0
- bne _0808AEE0
-_0808AECE:
- adds r0, r5, 0
- movs r1, 0x9A
- bl sub_806BC3C
- b _0808AF10
- .align 2, 0
-_0808AED8: .4byte gScriptItemId
-_0808AEDC: .4byte gPlayerParty
-_0808AEE0:
- ldr r0, _0808AF04 @ =gScriptItemId
- ldrh r0, [r0]
- bl ItemIdToBattleMoveId
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- adds r0, r4, 0
- bl pokemon_has_move
- lsls r0, 24
- cmp r0, 0
- beq _0808AF08
- adds r0, r5, 0
- movs r1, 0xA8
- bl sub_806BC3C
- b _0808AF10
- .align 2, 0
-_0808AF04: .4byte gScriptItemId
-_0808AF08:
- adds r0, r5, 0
- movs r1, 0x8C
- bl sub_806BC3C
-_0808AF10:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x5
- bls _0808AE9A
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_808AE8C
-
- thumb_func_start sub_808AF20
-sub_808AF20: @ 808AF20
- push {r4,r5,lr}
- movs r5, 0
-_0808AF24:
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _0808AF78 @ =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _0808AF66
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _0808AF58
- ldr r0, _0808AF7C @ =gScriptItemId
- ldrh r2, [r0]
- adds r0, r4, 0
- movs r1, 0x3
- bl GetEvolutionTargetSpecies
- lsls r0, 16
- cmp r0, 0
- bne _0808AF66
-_0808AF58:
- adds r0, r5, 0
- bl sub_806D668
- adds r0, r5, 0
- movs r1, 0
- bl sub_806BC3C
-_0808AF66:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x5
- bls _0808AF24
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0808AF78: .4byte gPlayerParty
-_0808AF7C: .4byte gScriptItemId
- thumb_func_end sub_808AF20
-
- thumb_func_start sub_808AF80
-sub_808AF80: @ 808AF80
- push {r4,r5,lr}
- ldr r5, _0808AFB0 @ =0x0201b260
-_0808AF84:
- bl sub_806B124
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0808B00C
- ldr r0, _0808AFB4 @ =gUnknown_02038561
- ldrb r0, [r0]
- cmp r0, 0
- bne _0808AFC6
- ldr r0, _0808AFB8 @ =gScriptItemId
- ldrh r0, [r0]
- bl CheckIfItemIsTMHMOrEvolutionStone
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0808AFBC
- cmp r0, 0x2
- beq _0808AFC2
- b _0808AFC6
- .align 2, 0
-_0808AFB0: .4byte 0x0201b260
-_0808AFB4: .4byte gUnknown_02038561
-_0808AFB8: .4byte gScriptItemId
-_0808AFBC:
- bl sub_808AE8C
- b _0808AFC6
-_0808AFC2:
- bl sub_808AF20
-_0808AFC6:
- ldr r4, _0808B000 @ =gUnknown_03005CE0
- ldrb r0, [r4]
- cmp r0, 0x5
- bhi _0808AFE2
- adds r1, r0, 0
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0808B004 @ =gPlayerParty
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- bne _0808AFE6
-_0808AFE2:
- movs r0, 0
- strb r0, [r4]
-_0808AFE6:
- ldrb r0, [r5]
- ldr r1, _0808B000 @ =gUnknown_03005CE0
- ldrb r1, [r1]
- bl sub_806C994
- ldrb r0, [r5]
- movs r1, 0
- bl sub_806BF74
- ldr r0, _0808B008 @ =sub_806AEDC
- bl SetMainCallback2
- b _0808B018
- .align 2, 0
-_0808B000: .4byte gUnknown_03005CE0
-_0808B004: .4byte gPlayerParty
-_0808B008: .4byte sub_806AEDC
-_0808B00C:
- bl sub_80F9344
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0808AF84
-_0808B018:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_808AF80
-
- thumb_func_start sub_808B020
-sub_808B020: @ 808B020
- push {lr}
- ldr r2, _0808B040 @ =gPaletteFade
- ldrb r0, [r2, 0x8]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2, 0x8]
- ldr r0, _0808B044 @ =gUnknown_02038561
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _0808B0A0
- cmp r0, 0x1
- bgt _0808B048
- cmp r0, 0
- beq _0808B052
- b _0808B0AC
- .align 2, 0
-_0808B040: .4byte gPaletteFade
-_0808B044: .4byte gUnknown_02038561
-_0808B048:
- cmp r0, 0x3
- beq _0808B0A0
- cmp r0, 0x4
- beq _0808B08C
- b _0808B0AC
-_0808B052:
- ldr r0, _0808B070 @ =gScriptItemId
- ldrh r0, [r0]
- bl CheckIfItemIsTMHMOrEvolutionStone
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0808B078
- ldr r2, _0808B074 @ =sub_808B0C0
- movs r0, 0
- movs r1, 0
- movs r3, 0x14
- bl sub_806AF4C
- b _0808B0AC
- .align 2, 0
-_0808B070: .4byte gScriptItemId
-_0808B074: .4byte sub_808B0C0
-_0808B078:
- ldr r2, _0808B088 @ =sub_808B0C0
- movs r0, 0
- movs r1, 0
- movs r3, 0x3
- bl sub_806AF4C
- b _0808B0AC
- .align 2, 0
-_0808B088: .4byte sub_808B0C0
-_0808B08C:
- ldr r2, _0808B09C @ =sub_808B1EC
- movs r0, 0
- movs r1, 0
- movs r3, 0xFF
- bl sub_806AF4C
- b _0808B0AC
- .align 2, 0
-_0808B09C: .4byte sub_808B1EC
-_0808B0A0:
- ldr r2, _0808B0B8 @ =sub_808B0C0
- movs r0, 0
- movs r1, 0
- movs r3, 0x4
- bl sub_806AF4C
-_0808B0AC:
- ldr r0, _0808B0BC @ =sub_808AF80
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_0808B0B8: .4byte sub_808B0C0
-_0808B0BC: .4byte sub_808AF80
- thumb_func_end sub_808B020
-
- thumb_func_start sub_808B0C0
-sub_808B0C0: @ 808B0C0
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0808B0EC @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- bne _0808B1CE
- adds r0, r4, 0
- bl sub_806BD80
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- beq _0808B0F0
- cmp r0, 0x2
- beq _0808B184
- b _0808B1CE
- .align 2, 0
-_0808B0EC: .4byte gPaletteFade
-_0808B0F0:
- adds r0, r4, 0
- bl sub_806CA38
- ldr r1, _0808B118 @ =gUnknown_03005CE0
- strb r0, [r1]
- ldrb r1, [r1]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0808B11C @ =gPlayerParty
- adds r0, r1
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- beq _0808B120
- movs r0, 0x20
- bl PlaySE
- b _0808B1CE
- .align 2, 0
-_0808B118: .4byte gUnknown_03005CE0
-_0808B11C: .4byte gPlayerParty
-_0808B120:
- bl sub_806D5A4
- ldr r5, _0808B16C @ =gUnknown_02038561
- ldrb r0, [r5]
- cmp r0, 0
- bne _0808B13C
- ldr r3, _0808B170 @ =gUnknown_03004AE4
- ldr r0, _0808B174 @ =gScriptItemId
- ldrh r1, [r0]
- ldr r2, _0808B178 @ =sub_808B224
- ldr r3, [r3]
- adds r0, r4, 0
- bl _call_via_r3
-_0808B13C:
- ldrb r0, [r5]
- cmp r0, 0x1
- bne _0808B154
- movs r0, 0x5
- bl PlaySE
- ldr r0, _0808B174 @ =gScriptItemId
- ldrh r1, [r0]
- ldr r2, _0808B17C @ =sub_808B2EC
- adds r0, r4, 0
- bl sub_806E964
-_0808B154:
- ldrb r0, [r5]
- cmp r0, 0x3
- bne _0808B1CE
- movs r0, 0x5
- bl PlaySE
- ldr r1, _0808B180 @ =sub_808B2B4
- adds r0, r4, 0
- bl sub_806EC44
- b _0808B1CE
- .align 2, 0
-_0808B16C: .4byte gUnknown_02038561
-_0808B170: .4byte gUnknown_03004AE4
-_0808B174: .4byte gScriptItemId
-_0808B178: .4byte sub_808B224
-_0808B17C: .4byte sub_808B2EC
-_0808B180: .4byte sub_808B2B4
-_0808B184:
- adds r0, r4, 0
- bl sub_806CA38
- ldr r1, _0808B1D8 @ =gUnknown_03005CE0
- strb r0, [r1]
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- negs r0, r0
- str r5, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r2, _0808B1DC @ =gUnknown_02038561
- ldrb r0, [r2]
- cmp r0, 0x1
- bhi _0808B1BA
- ldr r0, _0808B1E0 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _0808B1E4 @ =sub_808B25C
- str r0, [r1]
-_0808B1BA:
- ldrb r0, [r2]
- cmp r0, 0x3
- bne _0808B1CE
- ldr r0, _0808B1E0 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _0808B1E8 @ =sub_808B2B4
- str r0, [r1]
-_0808B1CE:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0808B1D8: .4byte gUnknown_03005CE0
-_0808B1DC: .4byte gUnknown_02038561
-_0808B1E0: .4byte gTasks
-_0808B1E4: .4byte sub_808B25C
-_0808B1E8: .4byte sub_808B2B4
- thumb_func_end sub_808B0C0
-
- thumb_func_start sub_808B1EC
-sub_808B1EC: @ 808B1EC
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0808B214 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0808B20E
- ldr r3, _0808B218 @ =gUnknown_03004AE4
- ldr r0, _0808B21C @ =gScriptItemId
- ldrh r1, [r0]
- ldr r2, _0808B220 @ =sub_808B224
- ldr r3, [r3]
- adds r0, r4, 0
- bl _call_via_r3
-_0808B20E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808B214: .4byte gPaletteFade
-_0808B218: .4byte gUnknown_03004AE4
-_0808B21C: .4byte gScriptItemId
-_0808B220: .4byte sub_808B224
- thumb_func_end sub_808B1EC
-
- thumb_func_start sub_808B224
-sub_808B224: @ 808B224
- 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, _0808B254 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0808B258 @ =sub_808B25C
- str r1, [r0]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808B254: .4byte gTasks
-_0808B258: .4byte sub_808B25C
- thumb_func_end sub_808B224
-
- thumb_func_start sub_808B25C
-sub_808B25C: @ 808B25C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0808B280 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0808B27A
- ldr r0, _0808B284 @ =sub_80A5B40
- bl SetMainCallback2
- adds r0, r4, 0
- bl DestroyTask
-_0808B27A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808B280: .4byte gPaletteFade
-_0808B284: .4byte sub_80A5B40
- thumb_func_end sub_808B25C
-
- thumb_func_start sub_808B288
-sub_808B288: @ 808B288
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0808B2AC @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0808B2A6
- ldr r0, _0808B2B0 @ =sub_813B6F8
- bl SetMainCallback2
- adds r0, r4, 0
- bl DestroyTask
-_0808B2A6:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808B2AC: .4byte gPaletteFade
-_0808B2B0: .4byte sub_813B6F8
- thumb_func_end sub_808B288
-
- thumb_func_start sub_808B2B4
-sub_808B2B4: @ 808B2B4
- 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, _0808B2E4 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0808B2E8 @ =sub_808B288
- str r1, [r0]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808B2E4: .4byte gTasks
-_0808B2E8: .4byte sub_808B288
- thumb_func_end sub_808B2B4
-
- thumb_func_start sub_808B2EC
-sub_808B2EC: @ 808B2EC
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0808B31C @ =gUnknown_0202E8F4
- ldrb r0, [r0]
- cmp r0, 0x2
- bne _0808B328
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _0808B320 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0808B324 @ =sub_808B338
- str r1, [r0]
- b _0808B32E
- .align 2, 0
-_0808B31C: .4byte gUnknown_0202E8F4
-_0808B320: .4byte gTasks
-_0808B324: .4byte sub_808B338
-_0808B328:
- adds r0, r4, 0
- bl sub_808B224
-_0808B32E:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_808B2EC
-
- thumb_func_start sub_808B338
-sub_808B338: @ 808B338
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _0808B38C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0808B384
- adds r0, r5, 0
- bl sub_806CA38
- ldr r1, _0808B390 @ =gUnknown_03005CE0
- strb r0, [r1]
- ldrb r1, [r1]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0808B394 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x40
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- bl DestroyTask
- lsls r1, r4, 3
- adds r1, r4
- lsls r1, 2
- ldr r0, _0808B398 @ =gSaveBlock1 + 0x2B4C
- adds r1, r0
- ldr r2, _0808B39C @ =sub_808B3EC
- movs r0, 0x4
- movs r3, 0x3
- bl sub_80E62A0
-_0808B384:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0808B38C: .4byte gPaletteFade
-_0808B390: .4byte gUnknown_03005CE0
-_0808B394: .4byte gPlayerParty
-_0808B398: .4byte gSaveBlock1 + 0x2B4C
-_0808B39C: .4byte sub_808B3EC
- thumb_func_end sub_808B338
-
- thumb_func_start sub_808B3A0
-sub_808B3A0: @ 808B3A0
- push {r4,lr}
- ldr r4, _0808B3A8 @ =0x0201b260
- b _0808B3B8
- .align 2, 0
-_0808B3A8: .4byte 0x0201b260
-_0808B3AC:
- bl sub_80F9344
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0808B3DC
-_0808B3B8:
- bl sub_806B124
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0808B3AC
- ldrb r0, [r4]
- ldr r1, _0808B3E4 @ =gUnknown_03005CE0
- ldrb r1, [r1]
- bl sub_806C994
- ldrb r0, [r4]
- movs r1, 0
- bl sub_806BF74
- ldr r0, _0808B3E8 @ =sub_806AEDC
- bl SetMainCallback2
-_0808B3DC:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808B3E4: .4byte gUnknown_03005CE0
-_0808B3E8: .4byte sub_806AEDC
- thumb_func_end sub_808B3A0
-
- thumb_func_start sub_808B3EC
-sub_808B3EC: @ 808B3EC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r0, _0808B464 @ =gPaletteFade
- mov r8, r0
- ldrb r0, [r0, 0x8]
- movs r1, 0x80
- orrs r0, r1
- mov r1, r8
- strb r0, [r1, 0x8]
- ldr r0, _0808B468 @ =gScriptResult
- ldrh r0, [r0]
- cmp r0, 0
- bne _0808B480
- ldr r7, _0808B46C @ =gUnknown_0202E8F8
- ldrh r0, [r7]
- cmp r0, 0
- beq _0808B416
- movs r1, 0x1
- bl RemoveBagItem
-_0808B416:
- ldr r6, _0808B470 @ =gUnknown_03005CE0
- ldrb r0, [r6]
- movs r5, 0x64
- muls r0, r5
- ldr r4, _0808B474 @ =gPlayerParty
- adds r0, r4
- movs r1, 0xC
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x1
- bl AddBagItem
- ldrb r0, [r6]
- muls r0, r5
- adds r0, r4
- bl sub_80A2DF8
- ldrb r0, [r6]
- muls r0, r5
- adds r0, r4
- movs r1, 0xC
- adds r2, r7, 0
- bl SetMonData
- ldr r0, _0808B478 @ =sub_808B25C
- movs r1, 0x5
- bl CreateTask
- mov r0, r8
- ldrb r1, [r0, 0x8]
- movs r0, 0x7F
- ands r0, r1
- mov r1, r8
- strb r0, [r1, 0x8]
- ldr r0, _0808B47C @ =sub_806AEDC
- b _0808B48E
- .align 2, 0
-_0808B464: .4byte gPaletteFade
-_0808B468: .4byte gScriptResult
-_0808B46C: .4byte gUnknown_0202E8F8
-_0808B470: .4byte gUnknown_03005CE0
-_0808B474: .4byte gPlayerParty
-_0808B478: .4byte sub_808B25C
-_0808B47C: .4byte sub_806AEDC
-_0808B480:
- ldr r2, _0808B49C @ =sub_808B4A4
- movs r0, 0
- movs r1, 0
- movs r3, 0xFF
- bl sub_806AF4C
- ldr r0, _0808B4A0 @ =sub_808B3A0
-_0808B48E:
- bl SetMainCallback2
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0808B49C: .4byte sub_808B4A4
-_0808B4A0: .4byte sub_808B3A0
- thumb_func_end sub_808B3EC
-
- thumb_func_start sub_808B4A4
-sub_808B4A4: @ 808B4A4
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0808B4D8 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0808B4D2
- ldr r0, _0808B4DC @ =gUnknown_03005CE0
- ldrb r0, [r0]
- ldr r1, _0808B4E0 @ =gScriptItemId
- ldrh r1, [r1]
- movs r2, 0x1
- bl sub_806EBF0
- ldr r1, _0808B4E4 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0808B4E8 @ =sub_808B4EC
- str r1, [r0]
-_0808B4D2:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808B4D8: .4byte gPaletteFade
-_0808B4DC: .4byte gUnknown_03005CE0
-_0808B4E0: .4byte gScriptItemId
-_0808B4E4: .4byte gTasks
-_0808B4E8: .4byte sub_808B4EC
- thumb_func_end sub_808B4A4
-
- thumb_func_start sub_808B4EC
-sub_808B4EC: @ 808B4EC
- push {lr}
- lsls r0, 24
- lsrs r1, r0, 24
- ldr r0, _0808B504 @ =gUnknown_0202E8F6
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _0808B500
- adds r0, r1, 0
- bl sub_808B224
-_0808B500:
- pop {r0}
- bx r0
- .align 2, 0
-_0808B504: .4byte gUnknown_0202E8F6
- thumb_func_end sub_808B4EC
-
- thumb_func_start sub_808B508
-sub_808B508: @ 808B508
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl sub_808B224
- pop {r0}
- bx r0
- thumb_func_end sub_808B508
-
- thumb_func_start sub_808B518
-sub_808B518: @ 808B518
- push {r4,lr}
- ldr r4, _0808B520 @ =0x0201b260
- b _0808B530
- .align 2, 0
-_0808B520: .4byte 0x0201b260
-_0808B524:
- bl sub_80F9344
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0808B554
-_0808B530:
- bl sub_806B124
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0808B524
- ldrb r0, [r4]
- ldr r1, _0808B55C @ =gUnknown_020384F0
- ldrb r1, [r1]
- bl sub_806C994
- ldrb r0, [r4]
- movs r1, 0
- bl sub_806BF74
- ldr r0, _0808B560 @ =sub_806AEDC
- bl SetMainCallback2
-_0808B554:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808B55C: .4byte gUnknown_020384F0
-_0808B560: .4byte sub_806AEDC
- thumb_func_end sub_808B518
-
- thumb_func_start sub_808B564
-sub_808B564: @ 808B564
- push {lr}
- ldr r2, _0808B58C @ =gPaletteFade
- ldrb r0, [r2, 0x8]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2, 0x8]
- bl sub_809FA30
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- beq _0808B594
- ldr r2, _0808B590 @ =sub_806F490
- movs r0, 0
- movs r1, 0
- movs r3, 0xFF
- bl sub_806AF4C
- b _0808B5A0
- .align 2, 0
-_0808B58C: .4byte gPaletteFade
-_0808B590: .4byte sub_806F490
-_0808B594:
- ldr r2, _0808B5AC @ =sub_806F588
- movs r0, 0
- movs r1, 0
- movs r3, 0xFF
- bl sub_806AF4C
-_0808B5A0:
- ldr r0, _0808B5B0 @ =sub_808B518
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_0808B5AC: .4byte sub_806F588
-_0808B5B0: .4byte sub_808B518
- thumb_func_end sub_808B564
-
- thumb_func_start sub_808B5B4
-sub_808B5B4: @ 808B5B4
- push {lr}
- ldr r3, _0808B5D8 @ =gUnknown_03005CF0
- ldr r2, _0808B5DC @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r2, [r1]
- str r2, [r3]
- ldr r2, _0808B5E0 @ =sub_808B5E4
- str r2, [r1]
- lsls r0, 24
- lsrs r0, 24
- bl _call_via_r2
- pop {r0}
- bx r0
- .align 2, 0
-_0808B5D8: .4byte gUnknown_03005CF0
-_0808B5DC: .4byte gTasks
-_0808B5E0: .4byte sub_808B5E4
- thumb_func_end sub_808B5B4
-
- thumb_func_start sub_808B5E4
-sub_808B5E4: @ 808B5E4
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_8055870
- cmp r0, 0x1
- beq _0808B602
- ldr r1, _0808B608 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0808B60C @ =gUnknown_03005CF0
- ldr r1, [r1]
- str r1, [r0]
-_0808B602:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808B608: .4byte gTasks
-_0808B60C: .4byte gUnknown_03005CF0
- thumb_func_end sub_808B5E4
-
.align 2, 0 @ Don't pad with nop.
diff --git a/asm/field_effect_helpers.s b/asm/field_effect_helpers.s
index 68a1b02c9..9df9dfd8d 100644
--- a/asm/field_effect_helpers.s
+++ b/asm/field_effect_helpers.s
@@ -715,7 +715,7 @@ _08126D3E:
cmp r0, r1
bne _08126DBC
ldrb r0, [r4, 0x1E]
- bl sub_8056E14
+ bl MetatileBehavior_IsPokeGrass
lsls r0, 24
cmp r0, 0
bne _08126DBC
diff --git a/asm/field_ground_effect.s b/asm/field_ground_effect.s
index c853d8c50..47c4b4c60 100644
--- a/asm/field_ground_effect.s
+++ b/asm/field_ground_effect.s
@@ -6,594 +6,6 @@
.text
- thumb_func_start GetAllGroundEffectFlags_OnSpawn
-GetAllGroundEffectFlags_OnSpawn: @ 80635F0
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl FieldObjectUpdateMetatileBehaviors
- adds r0, r4, 0
- adds r1, r5, 0
- bl GetGroundEffectFlags_Reflection
- adds r0, r4, 0
- adds r1, r5, 0
- bl GetGroundEffectFlags_TallGrassOnSpawn
- adds r0, r4, 0
- adds r1, r5, 0
- bl GetGroundEffectFlags_LongGrassOnSpawn
- adds r0, r4, 0
- adds r1, r5, 0
- bl GetGroundEffectFlags_SandHeap
- adds r0, r4, 0
- adds r1, r5, 0
- bl GetGroundEffectFlags_ShallowFlowingWater
- adds r0, r4, 0
- adds r1, r5, 0
- bl GetGroundEffectFlags_ShortGrass
- adds r0, r4, 0
- adds r1, r5, 0
- bl GetGroundEffectFlags_HotSprings
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end GetAllGroundEffectFlags_OnSpawn
-
- thumb_func_start GetAllGroundEffectFlags_OnBeginStep
-GetAllGroundEffectFlags_OnBeginStep: @ 8063638
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl FieldObjectUpdateMetatileBehaviors
- adds r0, r4, 0
- adds r1, r5, 0
- bl GetGroundEffectFlags_Reflection
- adds r0, r4, 0
- adds r1, r5, 0
- bl GetGroundEffectFlags_TallGrassOnBeginStep
- adds r0, r4, 0
- adds r1, r5, 0
- bl GetGroundEffectFlags_LongGrassOnBeginStep
- adds r0, r4, 0
- adds r1, r5, 0
- bl GetGroundEffectFlags_Tracks
- adds r0, r4, 0
- adds r1, r5, 0
- bl GetGroundEffectFlags_SandHeap
- adds r0, r4, 0
- adds r1, r5, 0
- bl GetGroundEffectFlags_ShallowFlowingWater
- adds r0, r4, 0
- adds r1, r5, 0
- bl GetGroundEffectFlags_Puddle
- adds r0, r4, 0
- adds r1, r5, 0
- bl GetGroundEffectFlags_ShortGrass
- adds r0, r4, 0
- adds r1, r5, 0
- bl GetGroundEffectFlags_HotSprings
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end GetAllGroundEffectFlags_OnBeginStep
-
- thumb_func_start GetAllGroundEffectFlags_OnFinishStep
-GetAllGroundEffectFlags_OnFinishStep: @ 8063690
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl FieldObjectUpdateMetatileBehaviors
- adds r0, r4, 0
- adds r1, r5, 0
- bl GetGroundEffectFlags_ShallowFlowingWater
- adds r0, r4, 0
- adds r1, r5, 0
- bl GetGroundEffectFlags_SandHeap
- adds r0, r4, 0
- adds r1, r5, 0
- bl GetGroundEffectFlags_Puddle
- adds r0, r4, 0
- adds r1, r5, 0
- bl GetGroundEffectFlags_Ripple
- adds r0, r4, 0
- adds r1, r5, 0
- bl GetGroundEffectFlags_ShortGrass
- adds r0, r4, 0
- adds r1, r5, 0
- bl GetGroundEffectFlags_HotSprings
- adds r0, r4, 0
- adds r1, r5, 0
- bl GetGroundEffectFlags_Seaweed
- adds r0, r4, 0
- adds r1, r5, 0
- bl GetGroundEffectFlags_JumpLanding
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end GetAllGroundEffectFlags_OnFinishStep
-
- thumb_func_start FieldObjectUpdateMetatileBehaviors
-FieldObjectUpdateMetatileBehaviors: @ 80636E0
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x14
- ldrsh r0, [r4, r1]
- movs r2, 0x16
- ldrsh r1, [r4, r2]
- bl MapGridGetMetatileBehaviorAt
- strb r0, [r4, 0x1F]
- movs r1, 0x10
- ldrsh r0, [r4, r1]
- movs r2, 0x12
- ldrsh r1, [r4, r2]
- bl MapGridGetMetatileBehaviorAt
- strb r0, [r4, 0x1E]
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end FieldObjectUpdateMetatileBehaviors
-
- thumb_func_start GetGroundEffectFlags_Reflection
-GetGroundEffectFlags_Reflection: @ 8063708
- push {r4,r5,lr}
- sub sp, 0x8
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r0, _0806374C @ =gUnknown_08376008
- ldr r1, [r0, 0x4]
- ldr r0, [r0]
- str r0, [sp]
- str r1, [sp, 0x4]
- adds r0, r4, 0
- bl FieldObjectCheckForReflectiveSurface
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- beq _08063750
- ldrb r1, [r4, 0x2]
- lsls r0, r1, 30
- cmp r0, 0
- blt _0806375A
- movs r0, 0x3
- negs r0, r0
- ands r0, r1
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r4, 0x2]
- subs r0, r2, 0x1
- lsls r0, 2
- add r0, sp
- ldr r1, [r5]
- ldr r0, [r0]
- orrs r1, r0
- str r1, [r5]
- b _0806375A
- .align 2, 0
-_0806374C: .4byte gUnknown_08376008
-_08063750:
- ldrb r1, [r4, 0x2]
- movs r0, 0x3
- negs r0, r0
- ands r0, r1
- strb r0, [r4, 0x2]
-_0806375A:
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end GetGroundEffectFlags_Reflection
-
- thumb_func_start GetGroundEffectFlags_TallGrassOnSpawn
-GetGroundEffectFlags_TallGrassOnSpawn: @ 8063764
- push {r4,lr}
- adds r4, r1, 0
- ldrb r0, [r0, 0x1E]
- bl MetatileBehavior_IsTallGrass
- lsls r0, 24
- cmp r0, 0
- beq _0806377C
- ldr r0, [r4]
- movs r1, 0x1
- orrs r0, r1
- str r0, [r4]
-_0806377C:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end GetGroundEffectFlags_TallGrassOnSpawn
-
- thumb_func_start GetGroundEffectFlags_TallGrassOnBeginStep
-GetGroundEffectFlags_TallGrassOnBeginStep: @ 8063784
- push {r4,lr}
- adds r4, r1, 0
- ldrb r0, [r0, 0x1E]
- bl MetatileBehavior_IsTallGrass
- lsls r0, 24
- cmp r0, 0
- beq _0806379C
- ldr r0, [r4]
- movs r1, 0x2
- orrs r0, r1
- str r0, [r4]
-_0806379C:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end GetGroundEffectFlags_TallGrassOnBeginStep
-
- thumb_func_start GetGroundEffectFlags_LongGrassOnSpawn
-GetGroundEffectFlags_LongGrassOnSpawn: @ 80637A4
- push {r4,lr}
- adds r4, r1, 0
- ldrb r0, [r0, 0x1E]
- bl MetatileBehavior_IsLongGrass
- lsls r0, 24
- cmp r0, 0
- beq _080637BC
- ldr r0, [r4]
- movs r1, 0x4
- orrs r0, r1
- str r0, [r4]
-_080637BC:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end GetGroundEffectFlags_LongGrassOnSpawn
-
- thumb_func_start GetGroundEffectFlags_LongGrassOnBeginStep
-GetGroundEffectFlags_LongGrassOnBeginStep: @ 80637C4
- push {r4,lr}
- adds r4, r1, 0
- ldrb r0, [r0, 0x1E]
- bl MetatileBehavior_IsLongGrass
- lsls r0, 24
- cmp r0, 0
- beq _080637DC
- ldr r0, [r4]
- movs r1, 0x8
- orrs r0, r1
- str r0, [r4]
-_080637DC:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end GetGroundEffectFlags_LongGrassOnBeginStep
-
- thumb_func_start GetGroundEffectFlags_Tracks
-GetGroundEffectFlags_Tracks: @ 80637E4
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- ldrb r0, [r4, 0x1F]
- bl MetatileBehavior_IsDeepSand
- lsls r0, 24
- cmp r0, 0
- beq _080637FE
- ldr r0, [r5]
- movs r1, 0x80
- lsls r1, 1
- b _0806381A
-_080637FE:
- ldrb r0, [r4, 0x1F]
- bl MetatileBehavior_IsSandOrDeepSand
- lsls r0, 24
- cmp r0, 0
- bne _08063816
- ldrb r0, [r4, 0x1F]
- bl MetatileBehavior_IsUnusedFootprintMetatile
- lsls r0, 24
- cmp r0, 0
- beq _0806381E
-_08063816:
- ldr r0, [r5]
- movs r1, 0x80
-_0806381A:
- orrs r0, r1
- str r0, [r5]
-_0806381E:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end GetGroundEffectFlags_Tracks
-
- thumb_func_start GetGroundEffectFlags_SandHeap
-GetGroundEffectFlags_SandHeap: @ 8063824
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- ldrb r0, [r4, 0x1E]
- bl MetatileBehavior_IsDeepSand
- lsls r0, 24
- cmp r0, 0
- beq _08063862
- ldrb r0, [r4, 0x1F]
- bl MetatileBehavior_IsDeepSand
- lsls r0, 24
- cmp r0, 0
- beq _08063862
- ldrb r1, [r4, 0x2]
- lsls r0, r1, 27
- cmp r0, 0
- blt _0806386C
- movs r0, 0x11
- negs r0, r0
- ands r0, r1
- movs r1, 0x10
- orrs r0, r1
- strb r0, [r4, 0x2]
- ldr r0, [r5]
- movs r1, 0x80
- lsls r1, 4
- orrs r0, r1
- str r0, [r5]
- b _0806386C
-_08063862:
- ldrb r1, [r4, 0x2]
- movs r0, 0x11
- negs r0, r0
- ands r0, r1
- strb r0, [r4, 0x2]
-_0806386C:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end GetGroundEffectFlags_SandHeap
-
- thumb_func_start GetGroundEffectFlags_ShallowFlowingWater
-GetGroundEffectFlags_ShallowFlowingWater: @ 8063874
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- ldrb r0, [r4, 0x1E]
- bl MetatileBehavior_IsShallowFlowingWater
- lsls r0, 24
- cmp r0, 0
- beq _08063892
- ldrb r0, [r4, 0x1F]
- bl MetatileBehavior_IsShallowFlowingWater
- lsls r0, 24
- cmp r0, 0
- bne _080638AA
-_08063892:
- ldrb r0, [r4, 0x1E]
- bl MetatileBehavior_IsPacifidlogLog
- lsls r0, 24
- cmp r0, 0
- beq _080638C8
- ldrb r0, [r4, 0x1F]
- bl MetatileBehavior_IsPacifidlogLog
- lsls r0, 24
- cmp r0, 0
- beq _080638C8
-_080638AA:
- ldrb r1, [r4, 0x2]
- lsls r0, r1, 28
- cmp r0, 0
- blt _080638D2
- movs r0, 0x9
- negs r0, r0
- ands r0, r1
- movs r1, 0x8
- orrs r0, r1
- strb r0, [r4, 0x2]
- ldr r0, [r5]
- movs r1, 0x40
- orrs r0, r1
- str r0, [r5]
- b _080638D2
-_080638C8:
- ldrb r1, [r4, 0x2]
- movs r0, 0x9
- negs r0, r0
- ands r0, r1
- strb r0, [r4, 0x2]
-_080638D2:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end GetGroundEffectFlags_ShallowFlowingWater
-
- thumb_func_start GetGroundEffectFlags_Puddle
-GetGroundEffectFlags_Puddle: @ 80638D8
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- ldrb r0, [r4, 0x1E]
- bl MetatileBehavior_IsPuddle
- lsls r0, 24
- cmp r0, 0
- beq _08063900
- ldrb r0, [r4, 0x1F]
- bl MetatileBehavior_IsPuddle
- lsls r0, 24
- cmp r0, 0
- beq _08063900
- ldr r0, [r5]
- movs r1, 0x80
- lsls r1, 3
- orrs r0, r1
- str r0, [r5]
-_08063900:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end GetGroundEffectFlags_Puddle
-
- thumb_func_start GetGroundEffectFlags_Ripple
-GetGroundEffectFlags_Ripple: @ 8063908
- push {r4,lr}
- adds r4, r1, 0
- ldrb r0, [r0, 0x1E]
- bl MetatileBehavior_HasRipples
- lsls r0, 24
- cmp r0, 0
- beq _08063922
- ldr r0, [r4]
- movs r1, 0x80
- lsls r1, 2
- orrs r0, r1
- str r0, [r4]
-_08063922:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end GetGroundEffectFlags_Ripple
-
- thumb_func_start GetGroundEffectFlags_ShortGrass
-GetGroundEffectFlags_ShortGrass: @ 8063928
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- ldrb r0, [r4, 0x1E]
- bl MetatileBehavior_IsShortGrass
- lsls r0, 24
- cmp r0, 0
- beq _08063966
- ldrb r0, [r4, 0x1F]
- bl MetatileBehavior_IsShortGrass
- lsls r0, 24
- cmp r0, 0
- beq _08063966
- ldrb r1, [r4, 0x2]
- lsls r0, r1, 29
- cmp r0, 0
- blt _08063970
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r4, 0x2]
- ldr r0, [r5]
- movs r1, 0x80
- lsls r1, 10
- orrs r0, r1
- str r0, [r5]
- b _08063970
-_08063966:
- ldrb r1, [r4, 0x2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r4, 0x2]
-_08063970:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end GetGroundEffectFlags_ShortGrass
-
- thumb_func_start GetGroundEffectFlags_HotSprings
-GetGroundEffectFlags_HotSprings: @ 8063978
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- ldrb r0, [r4, 0x1E]
- bl MetatileBehavior_IsHotSprings
- lsls r0, 24
- cmp r0, 0
- beq _080639B6
- ldrb r0, [r4, 0x1F]
- bl MetatileBehavior_IsHotSprings
- lsls r0, 24
- cmp r0, 0
- beq _080639B6
- ldrb r1, [r4, 0x2]
- lsls r0, r1, 26
- cmp r0, 0
- blt _080639C0
- movs r0, 0x21
- negs r0, r0
- ands r0, r1
- movs r1, 0x20
- orrs r0, r1
- strb r0, [r4, 0x2]
- ldr r0, [r5]
- movs r1, 0x80
- lsls r1, 11
- orrs r0, r1
- str r0, [r5]
- b _080639C0
-_080639B6:
- ldrb r1, [r4, 0x2]
- movs r0, 0x21
- negs r0, r0
- ands r0, r1
- strb r0, [r4, 0x2]
-_080639C0:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end GetGroundEffectFlags_HotSprings
-
- thumb_func_start GetGroundEffectFlags_Seaweed
-GetGroundEffectFlags_Seaweed: @ 80639C8
- push {r4,lr}
- adds r4, r1, 0
- ldrb r0, [r0, 0x1E]
- bl MetatileBehavior_IsSeaweed
- lsls r0, 24
- cmp r0, 0
- beq _080639E2
- ldr r0, [r4]
- movs r1, 0x80
- lsls r1, 12
- orrs r0, r1
- str r0, [r4]
-_080639E2:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end GetGroundEffectFlags_Seaweed
-
- thumb_func_start GetGroundEffectFlags_JumpLanding
-GetGroundEffectFlags_JumpLanding: @ 80639E8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r7, r0, 0
- adds r6, r1, 0
- ldr r0, [r7]
- ldr r1, _08063A24 @ =0x02000020
- ands r0, r1
- cmp r0, 0x20
- bne _08063A3A @ Is player landing after jumping?
- movs r5, 0
- ldr r0, _08063A28 @ =gJumpLanding_MetatileFunctionPointers
- mov r8, r0
-_08063A02:
- lsls r4, r5, 2
- mov r0, r8
- adds r1, r4, r0
- ldrb r0, [r7, 0x1E] @ Load metatile behavior
- ldr r1, [r1]
- bl _call_via_r1
- lsls r0, 24
- cmp r0, 0
- beq _08063A30
- ldr r0, _08063A2C @ =gJumpLanding_Bitmasks
- adds r0, r4, r0
- ldr r1, [r6]
- ldr r0, [r0]
- orrs r1, r0
- str r1, [r6]
- b _08063A3A
- .align 2, 0
-_08063A24: .4byte 0x02000020
-_08063A28: .4byte gJumpLanding_MetatileFunctionPointers
-_08063A2C: .4byte gJumpLanding_Bitmasks
-_08063A30:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x5
- bls _08063A02
-_08063A3A:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end GetGroundEffectFlags_JumpLanding
-
thumb_func_start FieldObjectCheckForReflectiveSurface
FieldObjectCheckForReflectiveSurface: @ 8063A44
push {r4-r7,lr}
diff --git a/asm/field_map_obj.s b/asm/field_map_obj.s
index b884252be..348e1d0f3 100644
--- a/asm/field_map_obj.s
+++ b/asm/field_map_obj.s
@@ -10911,7 +10911,7 @@ _0805F950:
adds r2, r0, 0
lsls r2, 24
lsrs r2, 24
- ldr r3, _0805F984 @ =sub_8056E14
+ ldr r3, _0805F984 @ =MetatileBehavior_IsPokeGrass
ldr r4, [r4]
adds r0, r6, 0
adds r1, r7, 0
@@ -10924,7 +10924,7 @@ _0805F978:
bx r1
.align 2, 0
_0805F980: .4byte gUnknown_08375594
-_0805F984: .4byte sub_8056E14
+_0805F984: .4byte MetatileBehavior_IsPokeGrass
thumb_func_end mss_08062EA4
thumb_func_start FieldObjectCB_TreeDisguise
@@ -12654,7 +12654,7 @@ FieldObjectSetSpecialAnim: @ 8060550
cmp r6, 0
bne _08060590
adds r0, r4, 0
- bl npc_sync_anim_pause_bits
+ bl UnfreezeMapObject
strb r5, [r4, 0x1C]
ldrb r0, [r4]
movs r1, 0x40
diff --git a/asm/field_player_avatar.s b/asm/field_player_avatar.s
deleted file mode 100644
index 3d4f8a008..000000000
--- a/asm/field_player_avatar.s
+++ /dev/null
@@ -1,4636 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_80587B4
-sub_80587B4: @ 80587B4
- push {lr}
- adds r1, r0, 0
- movs r0, 0x2E
- ldrsh r2, [r1, r0]
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- ldr r2, _080587D0 @ =gMapObjects
- adds r0, r2
- ldr r2, _080587D4 @ =sub_80587D8
- bl meta_step
- pop {r0}
- bx r0
- .align 2, 0
-_080587D0: .4byte gMapObjects
-_080587D4: .4byte sub_80587D8
- thumb_func_end sub_80587B4
-
- thumb_func_start sub_80587D8
-sub_80587D8: @ 80587D8
- movs r0, 0
- bx lr
- thumb_func_end sub_80587D8
-
- thumb_func_start player_step
-player_step: @ 80587DC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r1, 16
- lsrs r7, r1, 16
- lsls r2, 16
- lsrs r6, r2, 16
- ldr r4, _0805884C @ =gPlayerAvatar
- ldrb r1, [r4, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _08058850 @ =gMapObjects
- adds r5, r0, r1
- adds r0, r5, 0
- bl sub_8059D60
- ldrb r0, [r4, 0x6]
- cmp r0, 0
- bne _08058842
- adds r0, r7, 0
- adds r1, r6, 0
- bl sub_80E5B38
- adds r0, r5, 0
- mov r1, r8
- bl sub_8058854
- lsls r0, 24
- cmp r0, 0
- bne _08058842
- adds r0, r5, 0
- bl npc_clear_strange_bits
- bl DoPlayerAvatarTransition
- bl TryDoMetatileBehaviorForcedMovment
- lsls r0, 24
- cmp r0, 0
- bne _08058842
- mov r0, r8
- adds r1, r7, 0
- adds r2, r6, 0
- bl MovePlayerAvatarUsingKeypadInput
- bl PlayerAllowForcedMovementIfMovingSameDirection
-_08058842:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0805884C: .4byte gPlayerAvatar
-_08058850: .4byte gMapObjects
- thumb_func_end player_step
-
- thumb_func_start sub_8058854
-sub_8058854: @ 8058854
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r1, 24
- lsrs r5, r1, 24
- bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
- lsls r0, 24
- cmp r0, 0
- beq _0805889E
- adds r0, r4, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
- lsls r0, 24
- cmp r0, 0
- bne _0805889E
- adds r0, r4, 0
- bl FieldObjectGetSpecialAnim
- lsls r0, 24
- movs r1, 0xE7
- lsls r1, 24
- adds r0, r1
- lsrs r0, 24
- cmp r0, 0x3
- bhi _0805889A
- cmp r5, 0
- beq _0805889A
- ldrb r0, [r4, 0x18]
- lsrs r0, 4
- cmp r0, r5
- beq _0805889A
- adds r0, r4, 0
- bl FieldObjectClearAnim
- b _0805889E
-_0805889A:
- movs r0, 0x1
- b _080588A0
-_0805889E:
- movs r0, 0
-_080588A0:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8058854
-
- thumb_func_start npc_clear_strange_bits
-npc_clear_strange_bits: @ 80588A8
- ldrb r2, [r0, 0x1]
- movs r1, 0x11
- negs r1, r1
- ands r1, r2
- movs r2, 0x5
- negs r2, r2
- ands r1, r2
- adds r2, 0x2
- ands r1, r2
- strb r1, [r0, 0x1]
- ldr r2, _080588C8 @ =gPlayerAvatar
- ldrb r1, [r2]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2]
- bx lr
- .align 2, 0
-_080588C8: .4byte gPlayerAvatar
- thumb_func_end npc_clear_strange_bits
-
- thumb_func_start MovePlayerAvatarUsingKeypadInput
-MovePlayerAvatarUsingKeypadInput: @ 80588CC
- push {r4,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- lsls r1, 16
- lsrs r4, r1, 16
- lsls r2, 16
- lsrs r2, 16
- ldr r0, _080588F0 @ =gPlayerAvatar
- ldrb r1, [r0]
- movs r0, 0x6
- ands r0, r1
- cmp r0, 0
- beq _080588F4
- adds r0, r3, 0
- adds r1, r4, 0
- bl MovePlayerOnBike
- b _080588FC
- .align 2, 0
-_080588F0: .4byte gPlayerAvatar
-_080588F4:
- adds r0, r3, 0
- adds r1, r2, 0
- bl MovePlayerNotOnBike
-_080588FC:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end MovePlayerAvatarUsingKeypadInput
-
- thumb_func_start PlayerAllowForcedMovementIfMovingSameDirection
-PlayerAllowForcedMovementIfMovingSameDirection: @ 8058904
- push {lr}
- ldr r2, _0805891C @ =gPlayerAvatar
- ldrb r0, [r2, 0x2]
- cmp r0, 0x2
- bne _08058916
- ldrb r1, [r2]
- movs r0, 0xDF
- ands r0, r1
- strb r0, [r2]
-_08058916:
- pop {r0}
- bx r0
- .align 2, 0
-_0805891C: .4byte gPlayerAvatar
- thumb_func_end PlayerAllowForcedMovementIfMovingSameDirection
-
- thumb_func_start TryDoMetatileBehaviorForcedMovment
-TryDoMetatileBehaviorForcedMovment: @ 8058920
- push {r4,lr}
- ldr r4, _08058940 @ =gUnknown_0830FBA0
- bl GetForcedMovementByMetatileBehavior
- lsls r0, 24
- lsrs r0, 22
- adds r0, r4
- ldr r0, [r0]
- bl _call_via_r0
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08058940: .4byte gUnknown_0830FBA0
- thumb_func_end TryDoMetatileBehaviorForcedMovment
-
- thumb_func_start GetForcedMovementByMetatileBehavior
-GetForcedMovementByMetatileBehavior: @ 8058944
- push {r4-r6,lr}
- ldr r3, _08058980 @ =gPlayerAvatar
- ldrb r1, [r3]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- bne _08058996
- ldr r2, _08058984 @ =gMapObjects
- ldrb r1, [r3, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r5, [r0, 0x1E]
- movs r4, 0
- ldr r6, _08058988 @ =gUnknown_0830FB58
-_08058964:
- lsls r0, r4, 2
- adds r0, r6
- ldr r1, [r0]
- adds r0, r5, 0
- bl _call_via_r1
- lsls r0, 24
- cmp r0, 0
- beq _0805898C
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r0, 24
- b _08058998
- .align 2, 0
-_08058980: .4byte gPlayerAvatar
-_08058984: .4byte gMapObjects
-_08058988: .4byte gUnknown_0830FB58
-_0805898C:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x11
- bls _08058964
-_08058996:
- movs r0, 0
-_08058998:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end GetForcedMovementByMetatileBehavior
-
- thumb_func_start ForcedMovement_None
-ForcedMovement_None: @ 80589A0
- push {r4,lr}
- ldr r4, _080589E4 @ =gPlayerAvatar
- ldrb r1, [r4]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _080589DA
- ldrb r1, [r4, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080589E8 @ =gMapObjects
- adds r0, r1
- ldrb r2, [r0, 0x1]
- movs r1, 0x3
- negs r1, r1
- ands r1, r2
- movs r2, 0x8
- orrs r1, r2
- strb r1, [r0, 0x1]
- ldrb r1, [r0, 0x18]
- lsls r1, 28
- lsrs r1, 28
- bl FieldObjectSetDirection
- ldrb r1, [r4]
- movs r0, 0xBF
- ands r0, r1
- strb r0, [r4]
-_080589DA:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080589E4: .4byte gPlayerAvatar
-_080589E8: .4byte gMapObjects
- thumb_func_end ForcedMovement_None
-
- thumb_func_start DoForcedMovement
-DoForcedMovement: @ 80589EC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- mov r9, r1
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r6, _08058A2C @ =gPlayerAvatar
- adds r0, r5, 0
- bl CheckForPlayerAvatarCollision
- lsls r0, 24
- lsrs r4, r0, 24
- adds r7, r4, 0
- ldrb r0, [r6]
- movs r1, 0x40
- mov r10, r1
- movs r1, 0
- mov r8, r1
- mov r1, r10
- orrs r0, r1
- strb r0, [r6]
- cmp r4, 0
- beq _08058A48
- bl ForcedMovement_None
- cmp r4, 0x4
- bhi _08058A30
- movs r0, 0
- b _08058A54
- .align 2, 0
-_08058A2C: .4byte gPlayerAvatar
-_08058A30:
- cmp r7, 0x6
- bne _08058A3A
- adds r0, r5, 0
- bl PlayerJumpLedge
-_08058A3A:
- ldrb r0, [r6]
- mov r1, r10
- orrs r0, r1
- strb r0, [r6]
- movs r0, 0x2
- strb r0, [r6, 0x2]
- b _08058A52
-_08058A48:
- movs r0, 0x2
- strb r0, [r6, 0x2]
- adds r0, r5, 0
- bl _call_via_r9
-_08058A52:
- movs r0, 0x1
-_08058A54:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end DoForcedMovement
-
- thumb_func_start DoForcedMovementInCurrentDirection
-DoForcedMovementInCurrentDirection: @ 8058A64
- push {lr}
- adds r1, r0, 0
- ldr r0, _08058A90 @ =gPlayerAvatar
- ldrb r2, [r0, 0x5]
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- ldr r2, _08058A94 @ =gMapObjects
- adds r0, r2
- ldrb r2, [r0, 0x1]
- movs r3, 0x4
- orrs r2, r3
- strb r2, [r0, 0x1]
- ldrb r0, [r0, 0x18]
- lsrs r0, 4
- bl DoForcedMovement
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_08058A90: .4byte gPlayerAvatar
-_08058A94: .4byte gMapObjects
- thumb_func_end DoForcedMovementInCurrentDirection
-
- thumb_func_start ForcedMovement_Slip
-ForcedMovement_Slip: @ 8058A98
- push {lr}
- ldr r0, _08058AA8 @ =sub_80593C4
- bl DoForcedMovementInCurrentDirection
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_08058AA8: .4byte sub_80593C4
- thumb_func_end ForcedMovement_Slip
-
- thumb_func_start sub_8058AAC
-sub_8058AAC: @ 8058AAC
- push {lr}
- ldr r1, _08058AC0 @ =PlayerGoSpeed0
- movs r0, 0x1
- bl DoForcedMovement
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_08058AC0: .4byte PlayerGoSpeed0
- thumb_func_end sub_8058AAC
-
- thumb_func_start sub_8058AC4
-sub_8058AC4: @ 8058AC4
- push {lr}
- ldr r1, _08058AD8 @ =PlayerGoSpeed0
- movs r0, 0x2
- bl DoForcedMovement
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_08058AD8: .4byte PlayerGoSpeed0
- thumb_func_end sub_8058AC4
-
- thumb_func_start sub_8058ADC
-sub_8058ADC: @ 8058ADC
- push {lr}
- ldr r1, _08058AF0 @ =PlayerGoSpeed0
- movs r0, 0x3
- bl DoForcedMovement
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_08058AF0: .4byte PlayerGoSpeed0
- thumb_func_end sub_8058ADC
-
- thumb_func_start sub_8058AF4
-sub_8058AF4: @ 8058AF4
- push {lr}
- ldr r1, _08058B08 @ =PlayerGoSpeed0
- movs r0, 0x4
- bl DoForcedMovement
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_08058B08: .4byte PlayerGoSpeed0
- thumb_func_end sub_8058AF4
-
- thumb_func_start sub_8058B0C
-sub_8058B0C: @ 8058B0C
- push {lr}
- ldr r1, _08058B20 @ =npc_use_some_d2s
- movs r0, 0x1
- bl DoForcedMovement
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_08058B20: .4byte npc_use_some_d2s
- thumb_func_end sub_8058B0C
-
- thumb_func_start sub_8058B24
-sub_8058B24: @ 8058B24
- push {lr}
- ldr r1, _08058B38 @ =npc_use_some_d2s
- movs r0, 0x2
- bl DoForcedMovement
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_08058B38: .4byte npc_use_some_d2s
- thumb_func_end sub_8058B24
-
- thumb_func_start sub_8058B3C
-sub_8058B3C: @ 8058B3C
- push {lr}
- ldr r1, _08058B50 @ =npc_use_some_d2s
- movs r0, 0x3
- bl DoForcedMovement
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_08058B50: .4byte npc_use_some_d2s
- thumb_func_end sub_8058B3C
-
- thumb_func_start sub_8058B54
-sub_8058B54: @ 8058B54
- push {lr}
- ldr r1, _08058B68 @ =npc_use_some_d2s
- movs r0, 0x4
- bl DoForcedMovement
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_08058B68: .4byte npc_use_some_d2s
- thumb_func_end sub_8058B54
-
- thumb_func_start ForcedMovement_Slide
-ForcedMovement_Slide: @ 8058B6C
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08058B9C @ =gPlayerAvatar
- ldrb r3, [r2, 0x5]
- lsls r2, r3, 3
- adds r2, r3
- lsls r2, 2
- ldr r3, _08058BA0 @ =gMapObjects
- adds r2, r3
- ldrb r3, [r2, 0x1]
- movs r4, 0x4
- orrs r3, r4
- movs r4, 0x2
- orrs r3, r4
- strb r3, [r2, 0x1]
- bl DoForcedMovement
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08058B9C: .4byte gPlayerAvatar
-_08058BA0: .4byte gMapObjects
- thumb_func_end ForcedMovement_Slide
-
- thumb_func_start ForcedMovement_SlideSouth
-ForcedMovement_SlideSouth: @ 8058BA4
- push {lr}
- ldr r1, _08058BB8 @ =sub_80593C4
- movs r0, 0x1
- bl ForcedMovement_Slide
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_08058BB8: .4byte sub_80593C4
- thumb_func_end ForcedMovement_SlideSouth
-
- thumb_func_start ForcedMovement_SlideNorth
-ForcedMovement_SlideNorth: @ 8058BBC
- push {lr}
- ldr r1, _08058BD0 @ =sub_80593C4
- movs r0, 0x2
- bl ForcedMovement_Slide
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_08058BD0: .4byte sub_80593C4
- thumb_func_end ForcedMovement_SlideNorth
-
- thumb_func_start ForcedMovement_SlideWest
-ForcedMovement_SlideWest: @ 8058BD4
- push {lr}
- ldr r1, _08058BE8 @ =sub_80593C4
- movs r0, 0x3
- bl ForcedMovement_Slide
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_08058BE8: .4byte sub_80593C4
- thumb_func_end ForcedMovement_SlideWest
-
- thumb_func_start ForcedMovement_SlideEast
-ForcedMovement_SlideEast: @ 8058BEC
- push {lr}
- ldr r1, _08058C00 @ =sub_80593C4
- movs r0, 0x4
- bl ForcedMovement_Slide
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_08058C00: .4byte sub_80593C4
- thumb_func_end ForcedMovement_SlideEast
-
- thumb_func_start sub_8058C04
-sub_8058C04: @ 8058C04
- push {lr}
- bl sub_8059F94
- movs r0, 0x1
- pop {r1}
- bx r1
- thumb_func_end sub_8058C04
-
- thumb_func_start sub_8058C10
-sub_8058C10: @ 8058C10
- push {lr}
- bl sub_805A06C
- movs r0, 0x1
- pop {r1}
- bx r1
- thumb_func_end sub_8058C10
-
- thumb_func_start ForcedMovement_MuddySlope
-ForcedMovement_MuddySlope: @ 8058C1C
- push {r4,lr}
- ldr r0, _08058C60 @ =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _08058C64 @ =gMapObjects
- adds r4, r0, r1
- ldrb r1, [r4, 0x18]
- movs r0, 0xF0
- ands r0, r1
- cmp r0, 0x20
- bne _08058C42
- bl sub_80E6034
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- bgt _08058C6C
-_08058C42:
- movs r0, 0
- bl sub_80E6010
- ldrb r0, [r4, 0x1]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r4, 0x1]
- ldr r1, _08058C68 @ =sub_80593C4
- movs r0, 0x1
- bl DoForcedMovement
- lsls r0, 24
- lsrs r0, 24
- b _08058C6E
- .align 2, 0
-_08058C60: .4byte gPlayerAvatar
-_08058C64: .4byte gMapObjects
-_08058C68: .4byte sub_80593C4
-_08058C6C:
- movs r0, 0
-_08058C6E:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end ForcedMovement_MuddySlope
-
- thumb_func_start MovePlayerNotOnBike
-MovePlayerNotOnBike: @ 8058C74
- push {r4-r6,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 16
- lsrs r5, 16
- ldr r6, _08058CA0 @ =gUnknown_0830FBEC
- adds r0, r4, 0
- bl CheckMovementInputNotOnBike
- lsls r0, 24
- lsrs r0, 22
- adds r0, r6
- ldr r2, [r0]
- adds r0, r4, 0
- adds r1, r5, 0
- bl _call_via_r2
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08058CA0: .4byte gUnknown_0830FBEC
- thumb_func_end MovePlayerNotOnBike
-
- thumb_func_start CheckMovementInputNotOnBike
-CheckMovementInputNotOnBike: @ 8058CA4
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _08058CBC
- ldr r0, _08058CB8 @ =gPlayerAvatar
- strb r4, [r0, 0x2]
- movs r0, 0
- b _08058CDE
- .align 2, 0
-_08058CB8: .4byte gPlayerAvatar
-_08058CBC:
- bl player_get_direction_upper_nybble
- lsls r0, 24
- lsrs r0, 24
- cmp r4, r0
- beq _08058CD8
- ldr r1, _08058CD4 @ =gPlayerAvatar
- ldrb r0, [r1, 0x2]
- cmp r0, 0x2
- beq _08058CD8
- movs r0, 0x1
- b _08058CDC
- .align 2, 0
-_08058CD4: .4byte gPlayerAvatar
-_08058CD8:
- ldr r1, _08058CE4 @ =gPlayerAvatar
- movs r0, 0x2
-_08058CDC:
- strb r0, [r1, 0x2]
-_08058CDE:
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08058CE4: .4byte gPlayerAvatar
- thumb_func_end CheckMovementInputNotOnBike
-
- thumb_func_start PlayerNotOnBikeNotMoving
-PlayerNotOnBikeNotMoving: @ 8058CE8
- push {lr}
- bl player_get_direction_lower_nybble
- lsls r0, 24
- lsrs r0, 24
- bl PlayerFaceDirection
- pop {r0}
- bx r0
- thumb_func_end PlayerNotOnBikeNotMoving
-
- thumb_func_start PlayerNotOnBikeTurningInPlace
-PlayerNotOnBikeTurningInPlace: @ 8058CFC
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl PlayerTurnInPlace
- pop {r0}
- bx r0
- thumb_func_end PlayerNotOnBikeTurningInPlace
-
- thumb_func_start sub_8058D0C
-sub_8058D0C: @ 8058D0C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r1, 16
- lsrs r4, r1, 16
- adds r0, r5, 0
- bl CheckForPlayerAvatarCollision
- lsls r0, 24
- lsrs r0, 24
- adds r1, r0, 0
- cmp r0, 0
- beq _08058D44
- cmp r0, 0x6
- bne _08058D32
- adds r0, r5, 0
- bl PlayerJumpLedge
- b _08058DAE
-_08058D32:
- subs r0, r1, 0x5
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bls _08058DAE
- adds r0, r5, 0
- bl PlayerNotOnBikeCollide
- b _08058DAE
-_08058D44:
- ldr r6, _08058D58 @ =gPlayerAvatar
- ldrb r1, [r6]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _08058D5C
- adds r0, r5, 0
- bl sub_80593C4
- b _08058DAE
- .align 2, 0
-_08058D58: .4byte gPlayerAvatar
-_08058D5C:
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- bne _08058DA8
- movs r0, 0x2
- ands r4, r0
- cmp r4, 0
- beq _08058DA8
- movs r0, 0x86
- lsls r0, 4
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _08058DA8
- ldr r2, _08058DA4 @ =gMapObjects
- ldrb r1, [r6, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x1E]
- bl sub_80E5DEC
- lsls r0, 24
- cmp r0, 0
- bne _08058DA8
- adds r0, r5, 0
- bl sub_805940C
- ldrb r1, [r6]
- movs r0, 0x80
- orrs r0, r1
- strb r0, [r6]
- b _08058DAE
- .align 2, 0
-_08058DA4: .4byte gMapObjects
-_08058DA8:
- adds r0, r5, 0
- bl PlayerGoSpeed0
-_08058DAE:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8058D0C
-
- thumb_func_start CheckForPlayerAvatarCollision
-CheckForPlayerAvatarCollision: @ 8058DB4
- push {r4-r6,lr}
- sub sp, 0x8
- adds r6, r0, 0
- lsls r6, 24
- lsrs r6, 24
- ldr r0, _08058E18 @ =gPlayerAvatar
- ldrb r0, [r0, 0x5]
- lsls r4, r0, 3
- adds r4, r0
- lsls r4, 2
- ldr r0, _08058E1C @ =gMapObjects
- adds r4, r0
- ldrh r1, [r4, 0x10]
- add r0, sp, 0x4
- strh r1, [r0]
- ldrh r0, [r4, 0x12]
- mov r5, sp
- adds r5, 0x6
- strh r0, [r5]
- adds r0, r6, 0
- add r1, sp, 0x4
- adds r2, r5, 0
- bl MoveCoords
- add r0, sp, 0x4
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r5, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r0, 24
- add r1, sp, 0x4
- movs r3, 0
- ldrsh r1, [r1, r3]
- movs r3, 0
- ldrsh r2, [r5, r3]
- str r0, [sp]
- adds r0, r4, 0
- adds r3, r6, 0
- bl CheckForFieldObjectCollision
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x8
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08058E18: .4byte gPlayerAvatar
-_08058E1C: .4byte gMapObjects
- thumb_func_end CheckForPlayerAvatarCollision
-
- thumb_func_start CheckForFieldObjectCollision
-CheckForFieldObjectCollision: @ 8058E20
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- ldr r4, [sp, 0x24]
- lsls r1, 16
- lsls r2, 16
- lsls r3, 24
- lsrs r6, r3, 24
- lsls r4, 24
- lsrs r4, 24
- mov r10, r4
- lsrs r7, r1, 16
- asrs r5, r1, 16
- lsrs r1, r2, 16
- mov r9, r1
- asrs r4, r2, 16
- adds r1, r5, 0
- adds r2, r4, 0
- adds r3, r6, 0
- bl npc_block_way
- lsls r0, 24
- lsrs r0, 24
- mov r1, sp
- strb r0, [r1]
- cmp r0, 0x3
- bne _08058E70
- adds r0, r5, 0
- adds r1, r4, 0
- adds r2, r6, 0
- bl sub_8058EF0
- lsls r0, 24
- cmp r0, 0
- beq _08058E70
- movs r0, 0x5
- b _08058EDE
-_08058E70:
- lsls r5, r7, 16
- asrs r0, r5, 16
- mov r8, r0
- mov r1, r9
- lsls r4, r1, 16
- asrs r7, r4, 16
- adds r1, r7, 0
- adds r2, r6, 0
- bl ShouldJumpLedge
- lsls r0, 24
- cmp r0, 0
- beq _08058E94
- movs r0, 0x2B
- bl sav12_xor_increment
- movs r0, 0x6
- b _08058EDE
-_08058E94:
- mov r0, sp
- ldrb r0, [r0]
- cmp r0, 0x4
- bne _08058EB0
- mov r0, r8
- adds r1, r7, 0
- adds r2, r6, 0
- bl sub_8058F6C
- lsls r0, 24
- cmp r0, 0
- beq _08058EB0
- movs r0, 0x7
- b _08058EDE
-_08058EB0:
- mov r0, sp
- ldrb r0, [r0]
- cmp r0, 0
- bne _08058EDA
- asrs r5, 16
- asrs r4, 16
- adds r0, r6, 0
- adds r1, r5, 0
- adds r2, r4, 0
- bl CheckForRotatingGatePuzzleCollision
- cmp r0, 0
- beq _08058ECE
- movs r0, 0x8
- b _08058EDE
-_08058ECE:
- adds r0, r5, 0
- adds r1, r4, 0
- mov r2, r10
- mov r3, sp
- bl check_acro_bike_metatile
-_08058EDA:
- mov r0, sp
- ldrb r0, [r0]
-_08058EDE:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end CheckForFieldObjectCollision
-
- thumb_func_start sub_8058EF0
-sub_8058EF0: @ 8058EF0
- push {r4-r6,lr}
- lsls r0, 16
- lsrs r3, r0, 16
- lsls r1, 16
- lsrs r4, r1, 16
- lsls r2, 24
- lsrs r6, r2, 24
- ldr r0, _08058F3C @ =gPlayerAvatar
- ldrb r1, [r0]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _08058F40
- lsls r5, r3, 16
- asrs r0, r5, 16
- lsls r4, 16
- asrs r1, r4, 16
- bl MapGridGetZCoordAt
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bne _08058F40
- lsrs r0, r5, 16
- lsrs r1, r4, 16
- movs r2, 0x3
- bl GetFieldObjectIdByXYZ
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x10
- bne _08058F40
- adds r0, r6, 0
- bl sub_805A20C
- movs r0, 0x1
- b _08058F42
- .align 2, 0
-_08058F3C: .4byte gPlayerAvatar
-_08058F40:
- movs r0, 0
-_08058F42:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_8058EF0
-
- thumb_func_start ShouldJumpLedge
-ShouldJumpLedge: @ 8058F48
- push {lr}
- lsls r2, 24
- lsrs r2, 24
- lsls r0, 16
- asrs r0, 16
- lsls r1, 16
- asrs r1, 16
- bl GetLedgeJumpDirection
- lsls r0, 24
- cmp r0, 0
- bne _08058F64
- movs r0, 0
- b _08058F66
-_08058F64:
- movs r0, 0x1
-_08058F66:
- pop {r1}
- bx r1
- thumb_func_end ShouldJumpLedge
-
- thumb_func_start sub_8058F6C
-sub_8058F6C: @ 8058F6C
- push {r4-r7,lr}
- sub sp, 0x4
- mov r3, sp
- strh r0, [r3]
- mov r5, sp
- adds r5, 0x2
- strh r1, [r5]
- lsls r2, 24
- lsrs r7, r2, 24
- ldr r0, _08059004 @ =0x00000829
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _0805900C
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r5, r2]
- bl GetFieldObjectIdByXY
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x10
- beq _0805900C
- ldr r0, _08059008 @ =gMapObjects
- lsls r1, r6, 3
- adds r1, r6
- lsls r1, 2
- adds r4, r1, r0
- ldrb r0, [r4, 0x5]
- cmp r0, 0x57
- bne _0805900C
- ldrh r1, [r4, 0x10]
- mov r0, sp
- strh r1, [r0]
- ldrh r0, [r4, 0x12]
- strh r0, [r5]
- adds r0, r7, 0
- mov r1, sp
- adds r2, r5, 0
- bl MoveCoords
- mov r0, sp
- movs r2, 0
- ldrsh r1, [r0, r2]
- movs r0, 0
- ldrsh r2, [r5, r0]
- adds r0, r4, 0
- adds r3, r7, 0
- bl npc_block_way
- lsls r0, 24
- cmp r0, 0
- bne _0805900C
- 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 sub_8056F08
- lsls r0, 24
- cmp r0, 0
- bne _0805900C
- adds r0, r6, 0
- adds r1, r7, 0
- bl task_add_bump_boulder
- movs r0, 0x1
- b _0805900E
- .align 2, 0
-_08059004: .4byte 0x00000829
-_08059008: .4byte gMapObjects
-_0805900C:
- movs r0, 0
-_0805900E:
- add sp, 0x4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8058F6C
-
- thumb_func_start check_acro_bike_metatile
-check_acro_bike_metatile: @ 8059018
- push {r4-r7,lr}
- adds r6, r3, 0
- lsls r2, 24
- lsrs r5, r2, 24
- movs r4, 0
- ldr r7, _08059040 @ =gUnknown_0830FBF8
-_08059024:
- lsls r0, r4, 2
- adds r0, r7
- ldr r1, [r0]
- adds r0, r5, 0
- bl _call_via_r1
- lsls r0, 24
- cmp r0, 0
- beq _08059048
- ldr r0, _08059044 @ =gUnknown_0830FC0C
- adds r0, r4, r0
- ldrb r0, [r0]
- strb r0, [r6]
- b _08059052
- .align 2, 0
-_08059040: .4byte gUnknown_0830FBF8
-_08059044: .4byte gUnknown_0830FC0C
-_08059048:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x4
- bls _08059024
-_08059052:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end check_acro_bike_metatile
-
- thumb_func_start SetPlayerAvatarTransitionFlags
-SetPlayerAvatarTransitionFlags: @ 8059058
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- ldr r2, _08059070 @ =gPlayerAvatar
- ldrb r1, [r2, 0x1]
- orrs r0, r1
- strb r0, [r2, 0x1]
- bl DoPlayerAvatarTransition
- pop {r0}
- bx r0
- .align 2, 0
-_08059070: .4byte gPlayerAvatar
- thumb_func_end SetPlayerAvatarTransitionFlags
-
- thumb_func_start DoPlayerAvatarTransition
-DoPlayerAvatarTransition: @ 8059074
- push {r4,r5,lr}
- ldr r0, _080590BC @ =gPlayerAvatar
- ldrb r4, [r0, 0x1]
- cmp r4, 0
- beq _080590B4
- movs r5, 0
-_08059080:
- movs r0, 0x1
- ands r0, r4
- cmp r0, 0
- beq _080590A2
- ldr r0, _080590C0 @ =gUnknown_0830FC14
- lsls r2, r5, 2
- adds r2, r0
- ldr r0, _080590BC @ =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080590C4 @ =gMapObjects
- adds r0, r1
- ldr r1, [r2]
- bl _call_via_r1
-_080590A2:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- lsrs r4, 1
- cmp r5, 0x7
- bls _08059080
- ldr r1, _080590BC @ =gPlayerAvatar
- movs r0, 0
- strb r0, [r1, 0x1]
-_080590B4:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080590BC: .4byte gPlayerAvatar
-_080590C0: .4byte gUnknown_0830FC14
-_080590C4: .4byte gMapObjects
- thumb_func_end DoPlayerAvatarTransition
-
- thumb_func_start nullsub_49
-nullsub_49: @ 80590C8
- bx lr
- thumb_func_end nullsub_49
-
- thumb_func_start PlayerAvatarTransition_Normal
-PlayerAvatarTransition_Normal: @ 80590CC
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0
- bl GetPlayerAvatarGraphicsIdByStateId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl sub_805B980
- ldrb r1, [r4, 0x18]
- lsrs r1, 4
- adds r0, r4, 0
- bl FieldObjectTurn
- movs r0, 0x1
- bl SetPlayerAvatarStateMask
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end PlayerAvatarTransition_Normal
-
- thumb_func_start PlayerAvatarTransition_MachBike
-PlayerAvatarTransition_MachBike: @ 80590F8
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x1
- bl GetPlayerAvatarGraphicsIdByStateId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl sub_805B980
- ldrb r1, [r4, 0x18]
- lsrs r1, 4
- adds r0, r4, 0
- bl FieldObjectTurn
- movs r0, 0x2
- bl SetPlayerAvatarStateMask
- movs r0, 0
- movs r1, 0
- bl sub_80E5FCC
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end PlayerAvatarTransition_MachBike
-
- thumb_func_start PlayerAvatarTransition_AcroBike
-PlayerAvatarTransition_AcroBike: @ 805912C
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x2
- bl GetPlayerAvatarGraphicsIdByStateId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl sub_805B980
- ldrb r1, [r4, 0x18]
- lsrs r1, 4
- adds r0, r4, 0
- bl FieldObjectTurn
- movs r0, 0x4
- bl SetPlayerAvatarStateMask
- movs r0, 0
- movs r1, 0
- bl sub_80E5FCC
- bl sub_80E6084
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end PlayerAvatarTransition_AcroBike
-
- thumb_func_start PlayerAvatarTransition_Surfing
-PlayerAvatarTransition_Surfing: @ 8059164
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x3
- bl GetPlayerAvatarGraphicsIdByStateId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl sub_805B980
- ldrb r1, [r4, 0x18]
- lsrs r1, 4
- adds r0, r4, 0
- bl FieldObjectTurn
- movs r0, 0x8
- bl SetPlayerAvatarStateMask
- ldr r1, _080591B8 @ =gUnknown_0202FF84
- movs r2, 0x10
- ldrsh r0, [r4, r2]
- str r0, [r1]
- movs r2, 0x12
- ldrsh r0, [r4, r2]
- str r0, [r1, 0x4]
- ldr r0, _080591BC @ =gPlayerAvatar
- ldrb r0, [r0, 0x5]
- str r0, [r1, 0x8]
- movs r0, 0x8
- bl FieldEffectStart
- lsls r0, 24
- lsrs r0, 24
- strb r0, [r4, 0x1A]
- movs r1, 0x1
- bl sub_8127ED0
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080591B8: .4byte gUnknown_0202FF84
-_080591BC: .4byte gPlayerAvatar
- thumb_func_end PlayerAvatarTransition_Surfing
-
- thumb_func_start PlayerAvatarTransition_Underwater
-PlayerAvatarTransition_Underwater: @ 80591C0
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x4
- bl GetPlayerAvatarGraphicsIdByStateId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl sub_805B980
- ldrb r1, [r4, 0x18]
- lsrs r1, 4
- adds r0, r4, 0
- bl FieldObjectTurn
- movs r0, 0x10
- bl SetPlayerAvatarStateMask
- ldrb r0, [r4, 0x4]
- bl sub_8128124
- strb r0, [r4, 0x1A]
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end PlayerAvatarTransition_Underwater
-
- thumb_func_start sub_80591F4
-sub_80591F4: @ 80591F4
- ldr r2, _08059200 @ =gPlayerAvatar
- ldrb r1, [r2]
- movs r0, 0x20
- orrs r0, r1
- strb r0, [r2]
- bx lr
- .align 2, 0
-_08059200: .4byte gPlayerAvatar
- thumb_func_end sub_80591F4
-
- thumb_func_start sub_8059204
-sub_8059204: @ 8059204
- push {r4,lr}
- ldr r4, _08059230 @ =gPlayerAvatar
- movs r0, 0
- strb r0, [r4, 0x3]
- bl PlayerIsAnimActive
- lsls r0, 24
- cmp r0, 0
- beq _08059242
- bl PlayerCheckIfAnimFinishedOrInactive
- lsls r0, 24
- cmp r0, 0
- bne _08059234
- bl player_is_anim_in_certain_ranges
- lsls r0, 24
- cmp r0, 0
- bne _08059242
- movs r0, 0x1
- b _08059240
- .align 2, 0
-_08059230: .4byte gPlayerAvatar
-_08059234:
- bl sub_80592A4
- lsls r0, 24
- cmp r0, 0
- bne _08059242
- movs r0, 0x2
-_08059240:
- strb r0, [r4, 0x3]
-_08059242:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8059204
-
- thumb_func_start player_is_anim_in_certain_ranges
-player_is_anim_in_certain_ranges: @ 8059248
- push {lr}
- ldr r2, _08059294 @ =gMapObjects
- ldr r0, _08059298 @ =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0, 0x1C]
- cmp r1, 0x3
- bls _0805928E
- adds r0, r1, 0
- subs r0, 0x10
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bls _0805928E
- adds r0, r1, 0
- subs r0, 0x19
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xF
- bls _0805928E
- adds r0, r1, 0
- subs r0, 0x62
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xB
- bls _0805928E
- adds r0, r1, 0
- subs r0, 0x7A
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bhi _0805929C
-_0805928E:
- movs r0, 0x1
- b _0805929E
- .align 2, 0
-_08059294: .4byte gMapObjects
-_08059298: .4byte gPlayerAvatar
-_0805929C:
- movs r0, 0
-_0805929E:
- pop {r1}
- bx r1
- thumb_func_end player_is_anim_in_certain_ranges
-
- thumb_func_start sub_80592A4
-sub_80592A4: @ 80592A4
- push {lr}
- bl player_is_anim_in_certain_ranges
- lsls r0, 24
- cmp r0, 0
- beq _080592C0
- ldr r0, _080592BC @ =gPlayerAvatar
- ldrb r0, [r0, 0x2]
- cmp r0, 0x1
- beq _080592C0
- movs r0, 0x1
- b _080592C2
- .align 2, 0
-_080592BC: .4byte gPlayerAvatar
-_080592C0:
- movs r0, 0
-_080592C2:
- pop {r1}
- bx r1
- thumb_func_end sub_80592A4
-
- thumb_func_start PlayerIsAnimActive
-PlayerIsAnimActive: @ 80592C8
- push {lr}
- ldr r0, _080592E4 @ =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080592E8 @ =gMapObjects
- adds r0, r1
- bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_080592E4: .4byte gPlayerAvatar
-_080592E8: .4byte gMapObjects
- thumb_func_end PlayerIsAnimActive
-
- thumb_func_start PlayerCheckIfAnimFinishedOrInactive
-PlayerCheckIfAnimFinishedOrInactive: @ 80592EC
- push {lr}
- ldr r0, _08059308 @ =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _0805930C @ =gMapObjects
- adds r0, r1
- bl FieldObjectCheckIfSpecialAnimFinishedOrInactive
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_08059308: .4byte gPlayerAvatar
-_0805930C: .4byte gMapObjects
- thumb_func_end PlayerCheckIfAnimFinishedOrInactive
-
- thumb_func_start player_set_x22
-player_set_x22: @ 8059310
- ldr r3, _08059324 @ =gMapObjects
- ldr r1, _08059328 @ =gPlayerAvatar
- ldrb r2, [r1, 0x5]
- lsls r1, r2, 3
- adds r1, r2
- lsls r1, 2
- adds r1, r3
- adds r1, 0x22
- strb r0, [r1]
- bx lr
- .align 2, 0
-_08059324: .4byte gMapObjects
-_08059328: .4byte gPlayerAvatar
- thumb_func_end player_set_x22
-
- thumb_func_start player_get_x22
-player_get_x22: @ 805932C
- ldr r2, _08059340 @ =gMapObjects
- ldr r0, _08059344 @ =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x22
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_08059340: .4byte gMapObjects
-_08059344: .4byte gPlayerAvatar
- thumb_func_end player_get_x22
-
- thumb_func_start sub_8059348
-sub_8059348: @ 8059348
- push {lr}
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r0, _08059368 @ =gPlayerAvatar
- ldrb r2, [r0, 0x5]
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- ldr r2, _0805936C @ =gMapObjects
- adds r0, r2
- bl FieldObjectForceSetSpecialAnim
- pop {r0}
- bx r0
- .align 2, 0
-_08059368: .4byte gPlayerAvatar
-_0805936C: .4byte gMapObjects
- thumb_func_end sub_8059348
-
- thumb_func_start player_npc_set_state_and_x22_etc
-player_npc_set_state_and_x22_etc: @ 8059370
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r1, 24
- lsrs r4, r1, 24
- bl PlayerIsAnimActive
- lsls r0, 24
- cmp r0, 0
- bne _0805939E
- adds r0, r4, 0
- bl player_set_x22
- ldr r0, _080593A4 @ =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080593A8 @ =gMapObjects
- adds r0, r1
- adds r1, r5, 0
- bl FieldObjectSetSpecialAnim
-_0805939E:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080593A4: .4byte gPlayerAvatar
-_080593A8: .4byte gMapObjects
- thumb_func_end player_npc_set_state_and_x22_etc
-
- thumb_func_start PlayerGoSpeed0
-PlayerGoSpeed0: @ 80593AC
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl GetGoSpeed0AnimId
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x2
- bl player_npc_set_state_and_x22_etc
- pop {r0}
- bx r0
- thumb_func_end PlayerGoSpeed0
-
- thumb_func_start sub_80593C4
-sub_80593C4: @ 80593C4
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl sub_8060744
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x2
- bl player_npc_set_state_and_x22_etc
- pop {r0}
- bx r0
- thumb_func_end sub_80593C4
-
- thumb_func_start npc_use_some_d2s
-npc_use_some_d2s: @ 80593DC
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl d2s_08064034
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x2
- bl player_npc_set_state_and_x22_etc
- pop {r0}
- bx r0
- thumb_func_end npc_use_some_d2s
-
- thumb_func_start sub_80593F4
-sub_80593F4: @ 80593F4
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl sub_806079C
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x2
- bl player_npc_set_state_and_x22_etc
- pop {r0}
- bx r0
- thumb_func_end sub_80593F4
-
- thumb_func_start sub_805940C
-sub_805940C: @ 805940C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl sub_80607F4
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x2
- bl player_npc_set_state_and_x22_etc
- pop {r0}
- bx r0
- thumb_func_end sub_805940C
-
- thumb_func_start PlayerOnBikeCollide
-PlayerOnBikeCollide: @ 8059424
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- bl PlayCollisionSoundIfNotFacingWarp
- adds r0, r4, 0
- bl GetStepInPlaceDelay16AnimId
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x2
- bl player_npc_set_state_and_x22_etc
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end PlayerOnBikeCollide
-
- thumb_func_start PlayerNotOnBikeCollide
-PlayerNotOnBikeCollide: @ 8059448
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- bl PlayCollisionSoundIfNotFacingWarp
- adds r0, r4, 0
- bl GetStepInPlaceDelay32AnimId
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x2
- bl player_npc_set_state_and_x22_etc
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end PlayerNotOnBikeCollide
-
- thumb_func_start PlayerFaceDirection
-PlayerFaceDirection: @ 805946C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl GetFaceDirectionAnimId
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x1
- bl player_npc_set_state_and_x22_etc
- pop {r0}
- bx r0
- thumb_func_end PlayerFaceDirection
-
- thumb_func_start PlayerTurnInPlace
-PlayerTurnInPlace: @ 8059484
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl GetStepInPlaceDelay8AnimId
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x1
- bl player_npc_set_state_and_x22_etc
- pop {r0}
- bx r0
- thumb_func_end PlayerTurnInPlace
-
- thumb_func_start PlayerJumpLedge
-PlayerJumpLedge: @ 805949C
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0xA
- bl PlaySE
- adds r0, r4, 0
- bl GetJumpLedgeAnimId
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x8
- bl player_npc_set_state_and_x22_etc
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end PlayerJumpLedge
-
- thumb_func_start sub_80594C0
-sub_80594C0: @ 80594C0
- push {r4,lr}
- ldr r4, _080594FC @ =gPlayerAvatar
- ldrb r0, [r4, 0x3]
- cmp r0, 0x2
- beq _080594CE
- cmp r0, 0
- bne _080594F6
-_080594CE:
- bl player_should_look_direction_be_enforced_upon_movement
- lsls r0, 24
- cmp r0, 0
- beq _080594F6
- ldr r2, _08059500 @ =gMapObjects
- ldrb r1, [r4, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x18]
- lsls r0, 28
- lsrs r0, 28
- bl GetFaceDirectionAnimId
- lsls r0, 24
- lsrs r0, 24
- bl sub_8059348
-_080594F6:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080594FC: .4byte gPlayerAvatar
-_08059500: .4byte gMapObjects
- thumb_func_end sub_80594C0
-
- thumb_func_start sub_8059504
-sub_8059504: @ 8059504
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl sub_80609D8
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x1
- bl player_npc_set_state_and_x22_etc
- pop {r0}
- bx r0
- thumb_func_end sub_8059504
-
- thumb_func_start sub_805951C
-sub_805951C: @ 805951C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl sub_8060A04
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x1
- bl player_npc_set_state_and_x22_etc
- pop {r0}
- bx r0
- thumb_func_end sub_805951C
-
- thumb_func_start sub_8059534
-sub_8059534: @ 8059534
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl sub_8060A30
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x1
- bl player_npc_set_state_and_x22_etc
- pop {r0}
- bx r0
- thumb_func_end sub_8059534
-
- thumb_func_start sub_805954C
-sub_805954C: @ 805954C
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x22
- bl PlaySE
- adds r0, r4, 0
- bl sub_8060A5C
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x1
- bl player_npc_set_state_and_x22_etc
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_805954C
-
- thumb_func_start sub_8059570
-sub_8059570: @ 8059570
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x22
- bl PlaySE
- adds r0, r4, 0
- bl sub_8060A88
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x2
- bl player_npc_set_state_and_x22_etc
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8059570
-
- thumb_func_start sub_8059594
-sub_8059594: @ 8059594
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x22
- bl PlaySE
- adds r0, r4, 0
- bl sub_8060AB4
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x8
- bl player_npc_set_state_and_x22_etc
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8059594
-
- thumb_func_start sub_80595B8
-sub_80595B8: @ 80595B8
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x22
- bl PlaySE
- adds r0, r4, 0
- bl sub_8060878
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x1
- bl player_npc_set_state_and_x22_etc
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80595B8
-
- thumb_func_start sub_80595DC
-sub_80595DC: @ 80595DC
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x7
- bl PlaySE
- adds r0, r4, 0
- bl sub_8060AE0
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x2
- bl player_npc_set_state_and_x22_etc
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80595DC
-
- thumb_func_start sub_8059600
-sub_8059600: @ 8059600
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl sub_8060B0C
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x2
- bl player_npc_set_state_and_x22_etc
- pop {r0}
- bx r0
- thumb_func_end sub_8059600
-
- thumb_func_start sub_8059618
-sub_8059618: @ 8059618
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl sub_8060B38
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x2
- bl player_npc_set_state_and_x22_etc
- pop {r0}
- bx r0
- thumb_func_end sub_8059618
-
- thumb_func_start sub_8059630
-sub_8059630: @ 8059630
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl sub_8060B64
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x2
- bl player_npc_set_state_and_x22_etc
- pop {r0}
- bx r0
- thumb_func_end sub_8059630
-
- thumb_func_start PlayCollisionSoundIfNotFacingWarp
-PlayCollisionSoundIfNotFacingWarp: @ 8059648
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r2, _080596B8 @ =gMapObjects
- ldr r0, _080596BC @ =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x1E]
- ldr r2, _080596C0 @ =gUnknown_0830FC34
- subs r1, r4, 0x1
- lsls r1, 2
- adds r1, r2
- ldr r1, [r1]
- bl _call_via_r1
- lsls r0, 24
- cmp r0, 0
- bne _080596B0
- cmp r4, 0x2
- bne _080596AA
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl PlayerGetDestCoords
- movs r0, 0x2
- mov r1, sp
- adds r2, r4, 0
- bl MoveCoords
- 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 is_tile_x69_2_warp_door
- lsls r0, 24
- cmp r0, 0
- bne _080596B0
-_080596AA:
- movs r0, 0x7
- bl PlaySE
-_080596B0:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080596B8: .4byte gMapObjects
-_080596BC: .4byte gPlayerAvatar
-_080596C0: .4byte gUnknown_0830FC34
- thumb_func_end PlayCollisionSoundIfNotFacingWarp
-
- thumb_func_start GetXYCoordsOneStepInFrontOfPlayer
-GetXYCoordsOneStepInFrontOfPlayer: @ 80596C4
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r3, _08059700 @ =gMapObjects
- ldr r2, _08059704 @ =gPlayerAvatar
- ldrb r1, [r2, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r0, [r0, 0x10]
- strh r0, [r4]
- ldrb r1, [r2, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r0, [r0, 0x12]
- strh r0, [r5]
- bl player_get_direction_lower_nybble
- lsls r0, 24
- lsrs r0, 24
- adds r1, r4, 0
- adds r2, r5, 0
- bl MoveCoords
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08059700: .4byte gMapObjects
-_08059704: .4byte gPlayerAvatar
- thumb_func_end GetXYCoordsOneStepInFrontOfPlayer
-
- thumb_func_start PlayerGetDestCoords
-PlayerGetDestCoords: @ 8059708
- push {r4,r5,lr}
- ldr r5, _08059730 @ =gMapObjects
- ldr r4, _08059734 @ =gPlayerAvatar
- ldrb r3, [r4, 0x5]
- lsls r2, r3, 3
- adds r2, r3
- lsls r2, 2
- adds r2, r5
- ldrh r2, [r2, 0x10]
- strh r2, [r0]
- ldrb r2, [r4, 0x5]
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- adds r0, r5
- ldrh r0, [r0, 0x12]
- strh r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08059730: .4byte gMapObjects
-_08059734: .4byte gPlayerAvatar
- thumb_func_end PlayerGetDestCoords
-
- thumb_func_start player_get_direction_lower_nybble
-player_get_direction_lower_nybble: @ 8059738
- ldr r2, _08059750 @ =gMapObjects
- ldr r0, _08059754 @ =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x18]
- lsls r0, 28
- lsrs r0, 28
- bx lr
- .align 2, 0
-_08059750: .4byte gMapObjects
-_08059754: .4byte gPlayerAvatar
- thumb_func_end player_get_direction_lower_nybble
-
- thumb_func_start player_get_direction_upper_nybble
-player_get_direction_upper_nybble: @ 8059758
- ldr r2, _0805976C @ =gMapObjects
- ldr r0, _08059770 @ =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x18]
- lsrs r0, 4
- bx lr
- .align 2, 0
-_0805976C: .4byte gMapObjects
-_08059770: .4byte gPlayerAvatar
- thumb_func_end player_get_direction_upper_nybble
-
- thumb_func_start PlayerGetZCoord
-PlayerGetZCoord: @ 8059774
- ldr r2, _08059788 @ =gMapObjects
- ldr r0, _0805978C @ =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0xB]
- lsrs r0, 4
- bx lr
- .align 2, 0
-_08059788: .4byte gMapObjects
-_0805978C: .4byte gPlayerAvatar
- thumb_func_end PlayerGetZCoord
-
- thumb_func_start unref_sub_8059790
-unref_sub_8059790: @ 8059790
- push {lr}
- adds r3, r0, 0
- adds r2, r1, 0
- ldr r0, _080597B8 @ =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080597BC @ =gMapObjects
- adds r0, r1
- lsls r3, 16
- asrs r3, 16
- lsls r2, 16
- asrs r2, 16
- adds r1, r3, 0
- bl sub_805C058
- pop {r0}
- bx r0
- .align 2, 0
-_080597B8: .4byte gPlayerAvatar
-_080597BC: .4byte gMapObjects
- thumb_func_end unref_sub_8059790
-
- thumb_func_start TestPlayerAvatarFlags
-TestPlayerAvatarFlags: @ 80597C0
- ldr r1, _080597CC @ =gPlayerAvatar
- ldrb r1, [r1]
- ands r1, r0
- adds r0, r1, 0
- bx lr
- .align 2, 0
-_080597CC: .4byte gPlayerAvatar
- thumb_func_end TestPlayerAvatarFlags
-
- thumb_func_start sub_80597D0
-sub_80597D0: @ 80597D0
- ldr r0, _080597D8 @ =gPlayerAvatar
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_080597D8: .4byte gPlayerAvatar
- thumb_func_end sub_80597D0
-
- thumb_func_start GetPlayerAvatarObjectId
-GetPlayerAvatarObjectId: @ 80597DC
- ldr r0, _080597E4 @ =gPlayerAvatar
- ldrb r0, [r0, 0x4]
- bx lr
- .align 2, 0
-_080597E4: .4byte gPlayerAvatar
- thumb_func_end GetPlayerAvatarObjectId
-
- thumb_func_start sub_80597E8
-sub_80597E8: @ 80597E8
- push {lr}
- bl ForcedMovement_None
- pop {r0}
- bx r0
- thumb_func_end sub_80597E8
-
- thumb_func_start sub_80597F4
-sub_80597F4: @ 80597F4
- push {r4,lr}
- ldr r0, _08059834 @ =gPlayerAvatar
- ldrb r0, [r0, 0x5]
- lsls r4, r0, 3
- adds r4, r0
- lsls r4, 2
- ldr r0, _08059838 @ =gMapObjects
- adds r4, r0
- adds r0, r4, 0
- bl npc_clear_strange_bits
- ldrb r1, [r4, 0x18]
- lsls r1, 28
- lsrs r1, 28
- adds r0, r4, 0
- bl FieldObjectSetDirection
- movs r0, 0x6
- bl TestPlayerAvatarFlags
- lsls r0, 24
- cmp r0, 0
- beq _0805982C
- bl sub_80E6084
- movs r0, 0
- bl sub_80E6010
-_0805982C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08059834: .4byte gPlayerAvatar
-_08059838: .4byte gMapObjects
- thumb_func_end sub_80597F4
-
- thumb_func_start sub_805983C
-sub_805983C: @ 805983C
- lsls r0, 24
- lsls r1, 24
- lsrs r1, 24
- ldr r2, _08059850 @ =gUnknown_0830FC44
- lsrs r0, 23
- adds r1, r0
- adds r1, r2
- ldrb r0, [r1]
- bx lr
- .align 2, 0
-_08059850: .4byte gUnknown_0830FC44
- thumb_func_end sub_805983C
-
- thumb_func_start GetPlayerAvatarGraphicsIdByStateIdAndGender
-GetPlayerAvatarGraphicsIdByStateIdAndGender: @ 8059854
- lsls r0, 24
- lsls r1, 24
- lsrs r1, 24
- ldr r2, _08059868 @ =gUnknown_0830FC54
- lsrs r0, 23
- adds r1, r0
- adds r1, r2
- ldrb r0, [r1]
- bx lr
- .align 2, 0
-_08059868: .4byte gUnknown_0830FC54
- thumb_func_end GetPlayerAvatarGraphicsIdByStateIdAndGender
-
- thumb_func_start GetPlayerAvatarGraphicsIdByStateId
-GetPlayerAvatarGraphicsIdByStateId: @ 805986C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _08059884 @ =gPlayerAvatar
- ldrb r1, [r1, 0x7]
- bl GetPlayerAvatarGraphicsIdByStateIdAndGender
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_08059884: .4byte gPlayerAvatar
- thumb_func_end GetPlayerAvatarGraphicsIdByStateId
-
- thumb_func_start unref_sub_8059888
-unref_sub_8059888: @ 8059888
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- adds r1, r0, 0
- cmp r0, 0x70
- beq _080598AA
- cmp r0, 0x70
- bgt _080598A2
- cmp r0, 0x6D
- bgt _080598AE
- cmp r0, 0x69
- blt _080598AE
- b _080598AA
-_080598A2:
- cmp r1, 0x8A
- beq _080598AA
- cmp r1, 0xC0
- bne _080598AE
-_080598AA:
- movs r0, 0x1
- b _080598B0
-_080598AE:
- movs r0, 0
-_080598B0:
- pop {r1}
- bx r1
- thumb_func_end unref_sub_8059888
-
- thumb_func_start GetPlayerAvatarGenderByGraphicsId
-GetPlayerAvatarGenderByGraphicsId: @ 80598B4
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- adds r1, r0, 0
- cmp r0, 0x70
- beq _080598D6
- cmp r0, 0x70
- bgt _080598CE
- cmp r0, 0x5D
- bgt _080598DA
- cmp r0, 0x59
- blt _080598DA
- b _080598D6
-_080598CE:
- cmp r1, 0x8A
- beq _080598D6
- cmp r1, 0xC0
- bne _080598DA
-_080598D6:
- movs r0, 0x1
- b _080598DC
-_080598DA:
- movs r0, 0
-_080598DC:
- pop {r1}
- bx r1
- thumb_func_end GetPlayerAvatarGenderByGraphicsId
-
- thumb_func_start PartyHasMonWithSurf
-PartyHasMonWithSurf: @ 80598E0
- push {r4,r5,lr}
- movs r0, 0x8
- bl TestPlayerAvatarFlags
- lsls r0, 24
- cmp r0, 0
- bne _08059924
- movs r5, 0
- b _0805990A
-_080598F2:
- adds r0, r4, 0
- movs r1, 0x39
- bl pokemon_has_move
- lsls r0, 24
- cmp r0, 0
- beq _08059904
- movs r0, 0x1
- b _08059926
-_08059904:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
-_0805990A:
- cmp r5, 0x5
- bhi _08059924
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _0805992C @ =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- bne _080598F2
-_08059924:
- movs r0, 0
-_08059926:
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0805992C: .4byte gPlayerParty
- thumb_func_end PartyHasMonWithSurf
-
- thumb_func_start IsPlayerSurfingNorth
-IsPlayerSurfingNorth: @ 8059930
- push {lr}
- bl player_get_direction_upper_nybble
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _0805994E
- movs r0, 0x8
- bl TestPlayerAvatarFlags
- lsls r0, 24
- cmp r0, 0
- beq _0805994E
- movs r0, 0x1
- b _08059950
-_0805994E:
- movs r0, 0
-_08059950:
- pop {r1}
- bx r1
- thumb_func_end IsPlayerSurfingNorth
-
- thumb_func_start IsPlayerFacingSurfableFishableWater
-IsPlayerFacingSurfableFishableWater: @ 8059954
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r0, _080599CC @ =gPlayerAvatar
- ldrb r0, [r0, 0x5]
- lsls r4, r0, 3
- adds r4, r0
- lsls r4, 2
- ldr r0, _080599D0 @ =gMapObjects
- adds r4, r0
- ldrh r1, [r4, 0x10]
- mov r0, sp
- strh r1, [r0]
- ldrh r0, [r4, 0x12]
- mov r5, sp
- adds r5, 0x2
- strh r0, [r5]
- ldrb r0, [r4, 0x18]
- lsls r0, 28
- lsrs r0, 28
- mov r1, sp
- adds r2, r5, 0
- bl MoveCoords
- mov r0, sp
- movs r2, 0
- ldrsh r1, [r0, r2]
- movs r0, 0
- ldrsh r2, [r5, r0]
- ldrb r3, [r4, 0x18]
- lsls r3, 28
- lsrs r3, 28
- adds r0, r4, 0
- bl npc_block_way
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bne _080599D4
- bl PlayerGetZCoord
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bne _080599D4
- 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_IsSurfableFishableWater
- lsls r0, 24
- cmp r0, 0
- beq _080599D4
- movs r0, 0x1
- b _080599D6
- .align 2, 0
-_080599CC: .4byte gPlayerAvatar
-_080599D0: .4byte gMapObjects
-_080599D4:
- movs r0, 0
-_080599D6:
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end IsPlayerFacingSurfableFishableWater
-
- thumb_func_start ClearPlayerAvatarInfo
-ClearPlayerAvatarInfo: @ 80599E0
- push {lr}
- ldr r0, _080599F0 @ =gPlayerAvatar
- movs r1, 0
- movs r2, 0x24
- bl memset
- pop {r0}
- bx r0
- .align 2, 0
-_080599F0: .4byte gPlayerAvatar
- thumb_func_end ClearPlayerAvatarInfo
-
- thumb_func_start SetPlayerAvatarStateMask
-SetPlayerAvatarStateMask: @ 80599F4
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _08059A08 @ =gPlayerAvatar
- ldrb r2, [r3]
- movs r1, 0xE0
- ands r1, r2
- orrs r0, r1
- strb r0, [r3]
- bx lr
- .align 2, 0
-_08059A08: .4byte gPlayerAvatar
- thumb_func_end SetPlayerAvatarStateMask
-
- thumb_func_start GetPlayerAvatarStateTransitionByGraphicsId
-GetPlayerAvatarStateTransitionByGraphicsId: @ 8059A0C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r1, 24
- lsrs r1, 24
- movs r2, 0
- ldr r3, _08059A34 @ =gUnknown_0830FC64
- lsls r0, r1, 2
- adds r0, r1
- lsls r4, r0, 1
- adds r6, r3, 0x1
-_08059A22:
- lsls r0, r2, 1
- adds r1, r0, r4
- adds r0, r1, r3
- ldrb r0, [r0]
- cmp r0, r5
- bne _08059A38
- adds r0, r1, r6
- ldrb r0, [r0]
- b _08059A44
- .align 2, 0
-_08059A34: .4byte gUnknown_0830FC64
-_08059A38:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x4
- bls _08059A22
- movs r0, 0x1
-_08059A44:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end GetPlayerAvatarStateTransitionByGraphicsId
-
- thumb_func_start GetPlayerAvatarGraphicsIdByCurrentState
-GetPlayerAvatarGraphicsIdByCurrentState: @ 8059A4C
- push {r4-r6,lr}
- ldr r0, _08059A74 @ =gPlayerAvatar
- ldrb r5, [r0]
- movs r2, 0
- ldr r3, _08059A78 @ =gUnknown_0830FC64
- ldrb r1, [r0, 0x7]
- lsls r0, r1, 2
- adds r0, r1
- lsls r4, r0, 1
- adds r6, r3, 0x1
-_08059A60:
- lsls r0, r2, 1
- adds r1, r0, r4
- adds r0, r1, r6
- ldrb r0, [r0]
- ands r0, r5
- cmp r0, 0
- beq _08059A7C
- adds r0, r1, r3
- ldrb r0, [r0]
- b _08059A88
- .align 2, 0
-_08059A74: .4byte gPlayerAvatar
-_08059A78: .4byte gUnknown_0830FC64
-_08059A7C:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x4
- bls _08059A60
- movs r0, 0
-_08059A88:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end GetPlayerAvatarGraphicsIdByCurrentState
-
- thumb_func_start SetPlayerAvatarExtraStateTransition
-SetPlayerAvatarExtraStateTransition: @ 8059A90
- push {r4,r5,lr}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r4, 24
- lsrs r4, 24
- ldr r5, _08059ABC @ =gPlayerAvatar
- ldrb r1, [r5, 0x7]
- bl GetPlayerAvatarStateTransitionByGraphicsId
- lsls r0, 24
- lsrs r0, 24
- orrs r0, r4
- ldrb r1, [r5, 0x1]
- orrs r0, r1
- strb r0, [r5, 0x1]
- bl DoPlayerAvatarTransition
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08059ABC: .4byte gPlayerAvatar
- thumb_func_end SetPlayerAvatarExtraStateTransition
-
- thumb_func_start InitPlayerAvatar
-InitPlayerAvatar: @ 8059AC0
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0x18
- adds r4, r0, 0
- adds r5, r1, 0
- mov r9, r2
- mov r8, r3
- lsls r4, 16
- lsrs r4, 16
- lsls r5, 16
- lsrs r5, 16
- mov r0, r9
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- mov r1, r8
- lsls r1, 24
- lsrs r1, 24
- mov r8, r1
- mov r1, sp
- movs r0, 0xFF
- strb r0, [r1]
- movs r0, 0
- mov r1, r8
- bl GetPlayerAvatarGraphicsIdByStateIdAndGender
- mov r1, sp
- movs r3, 0
- strb r0, [r1, 0x1]
- mov r0, sp
- lsls r4, 16
- asrs r4, 16
- subs r4, 0x7
- movs r6, 0
- strh r4, [r0, 0x4]
- lsls r5, 16
- asrs r5, 16
- subs r5, 0x7
- strh r5, [r0, 0x6]
- strb r6, [r0, 0x8]
- movs r0, 0xB
- strb r0, [r1, 0x9]
- mov r2, sp
- ldrb r1, [r2, 0xA]
- subs r0, 0x1B
- ands r0, r1
- strb r0, [r2, 0xA]
- mov r0, sp
- strb r6, [r0, 0xA]
- strh r3, [r0, 0xC]
- strh r3, [r0, 0xE]
- str r3, [sp, 0x10]
- strh r3, [r0, 0x14]
- bl SpawnSpecialFieldObject
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- lsls r4, r5, 3
- adds r4, r5
- lsls r4, 2
- ldr r0, _08059B80 @ =gMapObjects
- adds r4, r0
- ldrb r0, [r4, 0x2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r4, 0x2]
- bl sub_8126B54
- strb r0, [r4, 0x1B]
- adds r0, r4, 0
- mov r1, r9
- bl FieldObjectTurn
- bl ClearPlayerAvatarInfo
- ldr r0, _08059B84 @ =gPlayerAvatar
- strb r6, [r0, 0x2]
- strb r6, [r0, 0x3]
- strb r5, [r0, 0x5]
- ldrb r1, [r4, 0x4]
- strb r1, [r0, 0x4]
- mov r1, r8
- strb r1, [r0, 0x7]
- movs r0, 0x21
- bl SetPlayerAvatarStateMask
- add sp, 0x18
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08059B80: .4byte gMapObjects
-_08059B84: .4byte gPlayerAvatar
- thumb_func_end InitPlayerAvatar
-
- thumb_func_start sub_8059B88
-sub_8059B88: @ 8059B88
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r6, _08059BE8 @ =gMapObjects
- ldr r5, _08059BEC @ =gPlayerAvatar
- ldrb r0, [r5, 0x5]
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- movs r0, 0x1
- ands r4, r0
- lsls r3, r4, 5
- ldrb r2, [r1, 0x1]
- movs r0, 0x21
- negs r0, r0
- ands r0, r2
- orrs r0, r3
- strb r0, [r1, 0x1]
- movs r0, 0x8
- bl TestPlayerAvatarFlags
- lsls r0, 24
- cmp r0, 0
- beq _08059BE0
- ldr r2, _08059BF0 @ =gSprites
- ldrb r1, [r5, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- ldrb r0, [r0, 0x1A]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- adds r1, 0x3E
- lsls r3, r4, 2
- ldrb r2, [r1]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r3
- strb r0, [r1]
-_08059BE0:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08059BE8: .4byte gMapObjects
-_08059BEC: .4byte gPlayerAvatar
-_08059BF0: .4byte gSprites
- thumb_func_end sub_8059B88
-
- thumb_func_start sub_8059BF4
-sub_8059BF4: @ 8059BF4
- push {r4,r5,lr}
- ldr r5, _08059C30 @ =gPlayerAvatar
- ldrb r0, [r5, 0x5]
- lsls r4, r0, 3
- adds r4, r0
- lsls r4, 2
- ldr r0, _08059C34 @ =gMapObjects
- adds r4, r0
- movs r0, 0x5
- bl GetPlayerAvatarGraphicsIdByStateId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl sub_805B980
- ldrb r1, [r5, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _08059C38 @ =gSprites
- adds r0, r1
- movs r1, 0
- bl StartSpriteAnim
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08059C30: .4byte gPlayerAvatar
-_08059C34: .4byte gMapObjects
-_08059C38: .4byte gSprites
- thumb_func_end sub_8059BF4
-
- thumb_func_start sub_8059C3C
-sub_8059C3C: @ 8059C3C
- push {r4-r6,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r6, _08059C88 @ =gPlayerAvatar
- ldrb r0, [r6, 0x5]
- lsls r4, r0, 3
- adds r4, r0
- lsls r4, 2
- ldr r0, _08059C8C @ =gMapObjects
- adds r4, r0
- movs r0, 0x6
- bl GetPlayerAvatarGraphicsIdByStateId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl sub_805B980
- ldrb r0, [r6, 0x4]
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- ldr r0, _08059C90 @ =gSprites
- adds r4, r0
- adds r0, r5, 0
- bl sub_805FDE8
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl StartSpriteAnim
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08059C88: .4byte gPlayerAvatar
-_08059C8C: .4byte gMapObjects
-_08059C90: .4byte gSprites
- thumb_func_end sub_8059C3C
-
- thumb_func_start sub_8059C94
-sub_8059C94: @ 8059C94
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r6, _08059CFC @ =gPlayerAvatar
- ldrb r0, [r6, 0x5]
- lsls r4, r0, 3
- adds r4, r0
- lsls r4, 2
- ldr r0, _08059D00 @ =gMapObjects
- adds r4, r0
- movs r0, 0x2
- bl GetPlayerAvatarGraphicsIdByStateId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl sub_805B980
- ldrb r0, [r6, 0x4]
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- ldr r0, _08059D04 @ =gSprites
- mov r8, r0
- add r4, r8
- adds r0, r5, 0
- bl sub_805FD98
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl StartSpriteAnim
- ldrb r1, [r6, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r8
- movs r1, 0x1
- bl SeekSpriteAnim
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08059CFC: .4byte gPlayerAvatar
-_08059D00: .4byte gMapObjects
-_08059D04: .4byte gSprites
- thumb_func_end sub_8059C94
-
- thumb_func_start sub_8059D08
-sub_8059D08: @ 8059D08
- push {r4-r6,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r6, _08059D54 @ =gPlayerAvatar
- ldrb r0, [r6, 0x5]
- lsls r4, r0, 3
- adds r4, r0
- lsls r4, 2
- ldr r0, _08059D58 @ =gMapObjects
- adds r4, r0
- movs r0, 0x7
- bl GetPlayerAvatarGraphicsIdByStateId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl sub_805B980
- ldrb r0, [r6, 0x4]
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- ldr r0, _08059D5C @ =gSprites
- adds r4, r0
- adds r0, r5, 0
- bl FieldObjectDirectionToImageAnimId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl StartSpriteAnim
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08059D54: .4byte gPlayerAvatar
-_08059D58: .4byte gMapObjects
-_08059D5C: .4byte gSprites
- thumb_func_end sub_8059D08
-
- thumb_func_start sub_8059D60
-sub_8059D60: @ 8059D60
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- adds r5, r0, 0
- ldrb r0, [r5, 0x1E]
- mov r8, r0
- movs r1, 0
- mov r0, sp
- strh r1, [r0]
- movs r6, 0x1
- ldr r1, _08059DC4 @ =gUnknown_0830FC78
- mov r9, r1
- mov r4, sp
- mov r7, sp
- adds r7, 0x2
-_08059D82:
- movs r1, 0
- ldrsh r0, [r4, r1]
- lsls r0, 2
- add r0, r9
- ldr r1, [r0]
- mov r0, r8
- bl _call_via_r1
- lsls r0, 24
- cmp r0, 0
- beq _08059DC8
- ldrb r0, [r5, 0x18]
- lsrs r0, 4
- cmp r6, r0
- bne _08059DC8
- ldrh r0, [r5, 0x10]
- strh r0, [r4]
- ldrh r0, [r5, 0x12]
- strh r0, [r7]
- adds r0, r6, 0
- mov r1, sp
- adds r2, r7, 0
- bl MoveCoords
- ldrb r0, [r5, 0x1B]
- movs r1, 0
- ldrsh r2, [r4, r1]
- movs r1, 0
- ldrsh r3, [r7, r1]
- adds r1, r6, 0
- bl sub_8126BC4
- b _08059DE2
- .align 2, 0
-_08059DC4: .4byte gUnknown_0830FC78
-_08059DC8:
- ldrh r1, [r4]
- adds r1, 0x1
- strh r1, [r4]
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 16
- asrs r1, 16
- cmp r1, 0x3
- ble _08059D82
- ldrb r0, [r5, 0x1B]
- bl objid_set_invisible
-_08059DE2:
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8059D60
-
- thumb_func_start task_add_bump_boulder
-task_add_bump_boulder: @ 8059DF0
- push {r4-r6,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- ldr r6, _08059E24 @ =sub_8059E2C
- adds r0, r6, 0
- movs r1, 0xFF
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08059E28 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r4, [r1, 0xA]
- strh r5, [r1, 0xC]
- bl _call_via_r6
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08059E24: .4byte sub_8059E2C
-_08059E28: .4byte gTasks
- thumb_func_end task_add_bump_boulder
-
- thumb_func_start sub_8059E2C
-sub_8059E2C: @ 8059E2C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r6, _08059E74 @ =gUnknown_0830FC88
- ldr r2, _08059E78 @ =gTasks
- ldr r5, _08059E7C @ =gMapObjects
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
-_08059E40:
- movs r0, 0x8
- ldrsh r3, [r4, r0]
- lsls r3, 2
- adds r3, r6
- ldr r0, _08059E80 @ =gPlayerAvatar
- ldrb r0, [r0, 0x5]
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- lsls r2, r0, 3
- adds r2, r0
- lsls r2, 2
- adds r2, r5
- ldr r3, [r3]
- adds r0, r4, 0
- bl _call_via_r3
- lsls r0, 24
- cmp r0, 0
- bne _08059E40
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08059E74: .4byte gUnknown_0830FC88
-_08059E78: .4byte gTasks
-_08059E7C: .4byte gMapObjects
-_08059E80: .4byte gPlayerAvatar
- thumb_func_end sub_8059E2C
-
- thumb_func_start sub_8059E84
-sub_8059E84: @ 8059E84
- push {r4,lr}
- adds r4, r0, 0
- bl ScriptContext2_Enable
- ldr r1, _08059EA0 @ =gPlayerAvatar
- movs r0, 0x1
- strb r0, [r1, 0x6]
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08059EA0: .4byte gPlayerAvatar
- thumb_func_end sub_8059E84
-
- thumb_func_start sub_8059EA4
-sub_8059EA4: @ 8059EA4
- push {r4-r6,lr}
- adds r6, r0, 0
- adds r5, r1, 0
- adds r4, r2, 0
- adds r0, r5, 0
- bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
- lsls r0, 24
- cmp r0, 0
- bne _08059F2E
- adds r0, r4, 0
- bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
- lsls r0, 24
- cmp r0, 0
- bne _08059F2E
- adds r0, r5, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
- adds r0, r4, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
- ldrb r0, [r6, 0xC]
- bl GetStepInPlaceDelay16AnimId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl FieldObjectSetSpecialAnim
- ldrb r0, [r6, 0xC]
- bl GetSimpleGoAnimId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl FieldObjectSetSpecialAnim
- ldr r2, _08059F38 @ =gUnknown_0202FF84
- movs r1, 0x10
- ldrsh r0, [r4, r1]
- str r0, [r2]
- movs r1, 0x12
- ldrsh r0, [r4, r1]
- str r0, [r2, 0x4]
- ldrb r0, [r4, 0xB]
- lsrs r0, 4
- str r0, [r2, 0x8]
- ldr r3, _08059F3C @ =gSprites
- ldrb r1, [r4, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrb r0, [r0, 0x5]
- lsls r0, 28
- lsrs r0, 30
- str r0, [r2, 0xC]
- movs r0, 0xA
- bl FieldEffectStart
- movs r0, 0xD6
- bl PlaySE
- ldrh r0, [r6, 0x8]
- adds r0, 0x1
- strh r0, [r6, 0x8]
-_08059F2E:
- movs r0, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08059F38: .4byte gUnknown_0202FF84
-_08059F3C: .4byte gSprites
- thumb_func_end sub_8059EA4
-
- thumb_func_start sub_8059F40
-sub_8059F40: @ 8059F40
- push {r4,r5,lr}
- adds r4, r1, 0
- adds r5, r2, 0
- adds r0, r4, 0
- bl FieldObjectCheckIfSpecialAnimFinishedOrInactive
- lsls r0, 24
- cmp r0, 0
- beq _08059F82
- adds r0, r5, 0
- bl FieldObjectCheckIfSpecialAnimFinishedOrInactive
- lsls r0, 24
- cmp r0, 0
- beq _08059F82
- adds r0, r4, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
- adds r0, r5, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
- ldr r1, _08059F8C @ =gPlayerAvatar
- movs r0, 0
- strb r0, [r1, 0x6]
- bl ScriptContext2_Disable
- ldr r0, _08059F90 @ =sub_8059E2C
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
-_08059F82:
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_08059F8C: .4byte gPlayerAvatar
-_08059F90: .4byte sub_8059E2C
- thumb_func_end sub_8059F40
-
- thumb_func_start sub_8059F94
-sub_8059F94: @ 8059F94
- push {r4,lr}
- ldr r4, _08059FB0 @ =sub_8059FB4
- adds r0, r4, 0
- movs r1, 0xFF
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- bl _call_via_r4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08059FB0: .4byte sub_8059FB4
- thumb_func_end sub_8059F94
-
- thumb_func_start sub_8059FB4
-sub_8059FB4: @ 8059FB4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _08059FF0 @ =gUnknown_0830FC94
- ldr r2, _08059FF4 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
-_08059FC6:
- movs r0, 0x8
- ldrsh r2, [r4, r0]
- lsls r2, 2
- adds r2, r5
- ldr r0, _08059FF8 @ =gPlayerAvatar
- ldrb r0, [r0, 0x5]
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- ldr r0, _08059FFC @ =gMapObjects
- adds r1, r0
- ldr r2, [r2]
- adds r0, r4, 0
- bl _call_via_r2
- lsls r0, 24
- cmp r0, 0
- bne _08059FC6
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08059FF0: .4byte gUnknown_0830FC94
-_08059FF4: .4byte gTasks
-_08059FF8: .4byte gPlayerAvatar
-_08059FFC: .4byte gMapObjects
- thumb_func_end sub_8059FB4
-
- thumb_func_start sub_805A000
-sub_805A000: @ 805A000
- push {r4-r6,lr}
- adds r6, r0, 0
- adds r4, r1, 0
- ldr r5, _0805A064 @ =gPlayerAvatar
- movs r0, 0x1
- strb r0, [r5, 0x6]
- adds r0, r4, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
- lsls r0, 24
- cmp r0, 0
- beq _0805A05C
- movs r0, 0xA
- bl PlaySE
- ldrb r0, [r4, 0x18]
- lsls r0, 28
- lsrs r0, 28
- bl sub_806084C
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl FieldObjectSetSpecialAnim
- ldrh r0, [r6, 0xA]
- adds r0, 0x1
- strh r0, [r6, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _0805A05C
- movs r0, 0
- strb r0, [r5, 0x6]
- ldrb r0, [r5, 0x1]
- movs r1, 0x20
- orrs r0, r1
- strb r0, [r5, 0x1]
- ldr r0, _0805A068 @ =sub_8059FB4
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
-_0805A05C:
- movs r0, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0805A064: .4byte gPlayerAvatar
-_0805A068: .4byte sub_8059FB4
- thumb_func_end sub_805A000
-
- thumb_func_start sub_805A06C
-sub_805A06C: @ 805A06C
- push {r4,lr}
- ldr r4, _0805A088 @ =sub_805A08C
- adds r0, r4, 0
- movs r1, 0xFF
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- bl _call_via_r4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0805A088: .4byte sub_805A08C
- thumb_func_end sub_805A06C
-
- thumb_func_start sub_805A08C
-sub_805A08C: @ 805A08C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _0805A0C8 @ =gUnknown_0830FC98
- ldr r2, _0805A0CC @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
-_0805A09E:
- movs r0, 0x8
- ldrsh r2, [r4, r0]
- lsls r2, 2
- adds r2, r5
- ldr r0, _0805A0D0 @ =gPlayerAvatar
- ldrb r0, [r0, 0x5]
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- ldr r0, _0805A0D4 @ =gMapObjects
- adds r1, r0
- ldr r2, [r2]
- adds r0, r4, 0
- bl _call_via_r2
- lsls r0, 24
- cmp r0, 0
- bne _0805A09E
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0805A0C8: .4byte gUnknown_0830FC98
-_0805A0CC: .4byte gTasks
-_0805A0D0: .4byte gPlayerAvatar
-_0805A0D4: .4byte gMapObjects
- thumb_func_end sub_805A08C
-
- thumb_func_start sub_805A0D8
-sub_805A0D8: @ 805A0D8
- push {lr}
- ldrh r2, [r0, 0x8]
- adds r2, 0x1
- strh r2, [r0, 0x8]
- ldrb r1, [r1, 0x18]
- lsrs r1, 4
- strh r1, [r0, 0xA]
- ldr r1, _0805A0FC @ =gPlayerAvatar
- movs r0, 0x1
- strb r0, [r1, 0x6]
- bl ScriptContext2_Enable
- movs r0, 0x2D
- bl PlaySE
- movs r0, 0x1
- pop {r1}
- bx r1
- .align 2, 0
-_0805A0FC: .4byte gPlayerAvatar
- thumb_func_end sub_805A0D8
-
- thumb_func_start sub_805A100
-sub_805A100: @ 805A100
- push {r4-r6,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r1, _0805A174 @ =gUnknown_0830FCA8
- mov r0, sp
- movs r2, 0x4
- bl memcpy
- adds r0, r5, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
- lsls r0, 24
- cmp r0, 0
- beq _0805A168
- ldrb r0, [r5, 0x18]
- lsrs r0, 4
- subs r0, 0x1
- add r0, sp
- ldrb r6, [r0]
- adds r0, r6, 0
- bl GetFaceDirectionAnimId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl FieldObjectSetSpecialAnim
- ldrb r0, [r4, 0xA]
- cmp r6, r0
- bne _0805A146
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
-_0805A146:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- cmp r0, 0x3
- ble _0805A168
- ldrb r0, [r4, 0xA]
- bl GetOppositeDirection
- lsls r0, 24
- lsrs r0, 24
- cmp r6, r0
- bne _0805A168
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_0805A168:
- movs r0, 0
- add sp, 0x4
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0805A174: .4byte gUnknown_0830FCA8
- thumb_func_end sub_805A100
-
- thumb_func_start sub_805A178
-sub_805A178: @ 805A178
- push {r4,r5,lr}
- sub sp, 0x8
- adds r5, r0, 0
- adds r4, r1, 0
- ldr r1, _0805A1B4 @ =gUnknown_0830FCAC
- mov r0, sp
- movs r2, 0x5
- bl memcpy
- adds r0, r4, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
- lsls r0, 24
- cmp r0, 0
- beq _0805A1A8
- movs r1, 0xC
- ldrsh r0, [r5, r1]
- add r0, sp
- ldrb r1, [r0]
- adds r0, r4, 0
- bl FieldObjectSetSpecialAnim
- movs r0, 0x1
- strh r0, [r5, 0x8]
-_0805A1A8:
- movs r0, 0
- add sp, 0x8
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0805A1B4: .4byte gUnknown_0830FCAC
- thumb_func_end sub_805A178
-
- thumb_func_start sub_805A1B8
-sub_805A1B8: @ 805A1B8
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r0, r5, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
- lsls r0, 24
- cmp r0, 0
- beq _0805A1FC
- ldrb r0, [r4, 0xA]
- bl GetOppositeDirection
- lsls r0, 24
- lsrs r0, 24
- bl GetSimpleGoAnimId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl FieldObjectSetSpecialAnim
- bl ScriptContext2_Disable
- ldr r1, _0805A204 @ =gPlayerAvatar
- movs r0, 0
- strb r0, [r1, 0x6]
- ldr r0, _0805A208 @ =sub_805A08C
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
-_0805A1FC:
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0805A204: .4byte gPlayerAvatar
-_0805A208: .4byte sub_805A08C
- thumb_func_end sub_805A1B8
-
- thumb_func_start sub_805A20C
-sub_805A20C: @ 805A20C
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl ScriptContext2_Enable
- bl sav1_reset_battle_music_maybe
- bl sub_8053F84
- ldr r2, _0805A258 @ =gPlayerAvatar
- ldrb r1, [r2]
- movs r0, 0xF7
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- movs r0, 0x1
- strb r0, [r2, 0x6]
- ldr r5, _0805A25C @ =taskFF_0805D1D4
- adds r0, r5, 0
- movs r1, 0xFF
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0805A260 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r4, [r1, 0x8]
- bl _call_via_r5
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0805A258: .4byte gPlayerAvatar
-_0805A25C: .4byte taskFF_0805D1D4
-_0805A260: .4byte gTasks
- thumb_func_end sub_805A20C
-
- thumb_func_start taskFF_0805D1D4
-taskFF_0805D1D4: @ 805A264
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, _0805A2C0 @ =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _0805A2C4 @ =gMapObjects
- adds r5, r0, r1
- adds r0, r5, 0
- bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
- lsls r0, 24
- cmp r0, 0
- beq _0805A290
- adds r0, r5, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
- lsls r0, 24
- cmp r0, 0
- beq _0805A2B8
-_0805A290:
- ldrb r0, [r5, 0x1A]
- movs r1, 0x2
- bl sub_8127ED0
- ldr r0, _0805A2C8 @ =gTasks
- lsls r4, r6, 2
- adds r4, r6
- lsls r4, 3
- adds r4, r0
- ldrb r0, [r4, 0x8]
- bl sub_80608D0
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl FieldObjectSetSpecialAnim
- ldr r0, _0805A2CC @ =sub_805A2D0
- str r0, [r4]
-_0805A2B8:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0805A2C0: .4byte gPlayerAvatar
-_0805A2C4: .4byte gMapObjects
-_0805A2C8: .4byte gTasks
-_0805A2CC: .4byte sub_805A2D0
- thumb_func_end taskFF_0805D1D4
-
- thumb_func_start sub_805A2D0
-sub_805A2D0: @ 805A2D0
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r6, _0805A33C @ =gPlayerAvatar
- ldrb r1, [r6, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _0805A340 @ =gMapObjects
- adds r4, r0, r1
- adds r0, r4, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
- lsls r0, 24
- cmp r0, 0
- beq _0805A336
- movs r0, 0
- bl GetPlayerAvatarGraphicsIdByStateId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl sub_805B980
- ldrb r0, [r4, 0x18]
- lsls r0, 28
- lsrs r0, 28
- bl GetFaceDirectionAnimId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl FieldObjectSetSpecialAnim
- movs r0, 0
- strb r0, [r6, 0x6]
- bl ScriptContext2_Disable
- ldrb r1, [r4, 0x1A]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0805A344 @ =gSprites
- adds r0, r1
- bl DestroySprite
- adds r0, r5, 0
- bl DestroyTask
-_0805A336:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0805A33C: .4byte gPlayerAvatar
-_0805A340: .4byte gMapObjects
-_0805A344: .4byte gSprites
- thumb_func_end sub_805A2D0
-
- thumb_func_start StartFishing
-StartFishing: @ 805A348
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r5, _0805A374 @ =sub_805A37C
- adds r0, r5, 0
- movs r1, 0xFF
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0805A378 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r4, [r1, 0x26]
- bl _call_via_r5
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0805A374: .4byte sub_805A37C
-_0805A378: .4byte gTasks
- thumb_func_end StartFishing
-
- thumb_func_start sub_805A37C
-sub_805A37C: @ 805A37C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _0805A3AC @ =gUnknown_0830FCB4
- ldr r2, _0805A3B0 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
-_0805A38E:
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- lsls r0, 2
- adds r0, r5
- ldr r1, [r0]
- adds r0, r4, 0
- bl _call_via_r1
- lsls r0, 24
- cmp r0, 0
- bne _0805A38E
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0805A3AC: .4byte gUnknown_0830FCB4
-_0805A3B0: .4byte gTasks
- thumb_func_end sub_805A37C
-
- thumb_func_start sub_805A3B4
-sub_805A3B4: @ 805A3B4
- push {r4,lr}
- adds r4, r0, 0
- bl ScriptContext2_Enable
- ldr r1, _0805A3D0 @ =gPlayerAvatar
- movs r0, 0x1
- strb r0, [r1, 0x6]
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0805A3D0: .4byte gPlayerAvatar
- thumb_func_end sub_805A3B4
-
- thumb_func_start fish1
-fish1: @ 805A3D4
- push {r4-r6,lr}
- sub sp, 0x10
- adds r5, r0, 0
- ldr r1, _0805A45C @ =gUnknown_0830FCF4
- mov r0, sp
- movs r2, 0x6
- bl memcpy
- add r4, sp, 0x8
- ldr r1, _0805A460 @ =gUnknown_0830FCFA
- adds r0, r4, 0
- movs r2, 0x6
- bl memcpy
- movs r0, 0
- strh r0, [r5, 0x20]
- bl Random
- movs r2, 0x26
- ldrsh r1, [r5, r2]
- lsls r1, 1
- mov r2, sp
- adds r6, r2, r1
- lsls r0, 16
- lsrs r0, 16
- adds r4, r1
- movs r2, 0
- ldrsh r1, [r4, r2]
- bl __modsi3
- ldrh r1, [r6]
- adds r1, r0
- strh r1, [r5, 0x22]
- ldr r3, _0805A464 @ =gMapObjects
- ldr r2, _0805A468 @ =gPlayerAvatar
- ldrb r1, [r2, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrb r0, [r0, 0x5]
- strh r0, [r5, 0x24]
- ldrb r0, [r2, 0x5]
- lsls r4, r0, 3
- adds r4, r0
- lsls r4, 2
- adds r4, r3
- adds r0, r4, 0
- bl FieldObjectClearAnimIfSpecialAnimActive
- ldrb r0, [r4, 0x1]
- movs r1, 0x8
- orrs r0, r1
- strb r0, [r4, 0x1]
- ldrb r0, [r4, 0x18]
- lsls r0, 28
- lsrs r0, 28
- bl sub_8059C3C
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- movs r0, 0
- add sp, 0x10
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0805A45C: .4byte gUnknown_0830FCF4
-_0805A460: .4byte gUnknown_0830FCFA
-_0805A464: .4byte gMapObjects
-_0805A468: .4byte gPlayerAvatar
- thumb_func_end fish1
-
- thumb_func_start fish2
-fish2: @ 805A46C
- push {r4,lr}
- adds r4, r0, 0
- bl sub_805A954
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3B
- ble _0805A488
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_0805A488:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end fish2
-
- thumb_func_start fish3
-fish3: @ 805A490
- push {r4,lr}
- adds r4, r0, 0
- bl MenuDisplayMessageBox
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- movs r1, 0
- strh r0, [r4, 0x8]
- strh r1, [r4, 0xA]
- strh r1, [r4, 0xC]
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xA
- bl __umodsi3
- adds r1, r0, 0
- adds r0, r1, 0x1
- strh r0, [r4, 0xE]
- movs r2, 0x20
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _0805A4C4
- adds r0, r1, 0x4
- strh r0, [r4, 0xE]
-_0805A4C4:
- movs r1, 0xE
- ldrsh r0, [r4, r1]
- cmp r0, 0x9
- ble _0805A4D0
- movs r0, 0xA
- strh r0, [r4, 0xE]
-_0805A4D0:
- movs r0, 0x1
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end fish3
-
- thumb_func_start fish4
-fish4: @ 805A4D8
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- ldr r1, _0805A514 @ =gUnknown_0830FD00
- mov r0, sp
- movs r2, 0x2
- bl memcpy
- bl sub_805A954
- ldrh r0, [r4, 0xA]
- adds r2, r0, 0x1
- strh r2, [r4, 0xA]
- ldr r0, _0805A518 @ =gMain
- ldrh r0, [r0, 0x2E]
- movs r1, 0x1
- ands r1, r0
- cmp r1, 0
- beq _0805A51C
- movs r0, 0xB
- strh r0, [r4, 0x8]
- movs r1, 0x20
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _0805A50E
- movs r0, 0xC
- strh r0, [r4, 0x8]
-_0805A50E:
- movs r0, 0x1
- b _0805A564
- .align 2, 0
-_0805A514: .4byte gUnknown_0830FD00
-_0805A518: .4byte gMain
-_0805A51C:
- lsls r0, r2, 16
- asrs r0, 16
- cmp r0, 0x13
- ble _0805A562
- strh r1, [r4, 0xA]
- ldrh r2, [r4, 0xC]
- movs r3, 0xC
- ldrsh r1, [r4, r3]
- movs r3, 0xE
- ldrsh r0, [r4, r3]
- cmp r1, r0
- blt _0805A54E
- ldrh r0, [r4, 0x8]
- adds r1, r0, 0x1
- strh r1, [r4, 0x8]
- ldrh r2, [r4, 0x20]
- movs r3, 0x20
- ldrsh r0, [r4, r3]
- cmp r0, 0
- beq _0805A548
- adds r0, r1, 0x1
- strh r0, [r4, 0x8]
-_0805A548:
- adds r0, r2, 0x1
- strh r0, [r4, 0x20]
- b _0805A562
-_0805A54E:
- adds r1, r2, 0x4
- lsls r1, 24
- lsrs r1, 24
- mov r0, sp
- movs r2, 0xF
- bl MenuPrint
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
-_0805A562:
- movs r0, 0
-_0805A564:
- add sp, 0x4
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end fish4
-
- thumb_func_start party_menu_update_status_condition_object
-party_menu_update_status_condition_object: @ 805A56C
- push {r4,lr}
- adds r4, r0, 0
- bl sub_805A954
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- bl GetFishingWildMonListHeader
- lsls r0, 24
- cmp r0, 0
- beq _0805A590
- bl Random
- movs r1, 0x1
- ands r1, r0
- cmp r1, 0
- beq _0805A596
-_0805A590:
- movs r0, 0xB
- strh r0, [r4, 0x8]
- b _0805A5BC
-_0805A596:
- ldr r0, _0805A5C4 @ =gPlayerAvatar
- ldrb r0, [r0, 0x4]
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- ldr r0, _0805A5C8 @ =gSprites
- adds r4, r0
- bl player_get_direction_lower_nybble
- lsls r0, 24
- lsrs r0, 24
- bl sub_805FE08
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl StartSpriteAnim
-_0805A5BC:
- movs r0, 0x1
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0805A5C4: .4byte gPlayerAvatar
-_0805A5C8: .4byte gSprites
- thumb_func_end party_menu_update_status_condition_object
-
- thumb_func_start sub_805A5CC
-sub_805A5CC: @ 805A5CC
- push {r4,lr}
- adds r4, r0, 0
- bl sub_805A954
- ldr r0, _0805A5F0 @ =gOtherText_OhABite
- movs r1, 0x4
- movs r2, 0x11
- bl MenuPrint
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- movs r1, 0
- strh r0, [r4, 0x8]
- strh r1, [r4, 0xA]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0805A5F0: .4byte gOtherText_OhABite
- thumb_func_end sub_805A5CC
-
- thumb_func_start fish7
-fish7: @ 805A5F4
- push {r4,lr}
- sub sp, 0x8
- adds r4, r0, 0
- ldr r1, _0805A628 @ =gUnknown_0830FD02
- mov r0, sp
- movs r2, 0x6
- bl memcpy
- bl sub_805A954
- ldrh r1, [r4, 0xA]
- adds r1, 0x1
- strh r1, [r4, 0xA]
- movs r2, 0x26
- ldrsh r0, [r4, r2]
- lsls r0, 1
- add r0, sp
- lsls r1, 16
- asrs r1, 16
- movs r2, 0
- ldrsh r0, [r0, r2]
- cmp r1, r0
- blt _0805A62C
- movs r0, 0xC
- b _0805A63C
- .align 2, 0
-_0805A628: .4byte gUnknown_0830FD02
-_0805A62C:
- ldr r0, _0805A648 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0805A63E
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
-_0805A63C:
- strh r0, [r4, 0x8]
-_0805A63E:
- movs r0, 0
- add sp, 0x8
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0805A648: .4byte gMain
- thumb_func_end fish7
-
- thumb_func_start fish8
-fish8: @ 805A64C
- push {r4,lr}
- sub sp, 0xC
- adds r4, r0, 0
- ldr r1, _0805A6B0 @ =gUnknown_0830FD08
- mov r0, sp
- movs r2, 0xC
- bl memcpy
- bl sub_805A954
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- movs r0, 0x20
- ldrsh r1, [r4, r0]
- movs r2, 0x22
- ldrsh r0, [r4, r2]
- cmp r1, r0
- blt _0805A6A2
- cmp r1, 0x1
- bgt _0805A6A6
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- bl __umodsi3
- movs r3, 0x20
- ldrsh r2, [r4, r3]
- lsls r2, 1
- movs r3, 0x26
- ldrsh r1, [r4, r3]
- lsls r1, 2
- adds r2, r1
- mov r3, sp
- adds r1, r3, r2
- movs r2, 0
- ldrsh r1, [r1, r2]
- lsls r0, 16
- asrs r0, 16
- cmp r1, r0
- ble _0805A6A6
-_0805A6A2:
- movs r0, 0x3
- strh r0, [r4, 0x8]
-_0805A6A6:
- movs r0, 0
- add sp, 0xC
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0805A6B0: .4byte gUnknown_0830FD08
- thumb_func_end fish8
-
- thumb_func_start sub_805A6B4
-sub_805A6B4: @ 805A6B4
- push {r4,lr}
- adds r4, r0, 0
- bl sub_805A954
- ldr r0, _0805A6D8 @ =gOtherText_PokeOnHook
- bl sub_8072044
- bl MenuDisplayMessageBox
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- movs r1, 0
- strh r0, [r4, 0x8]
- strh r1, [r4, 0xA]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0805A6D8: .4byte gOtherText_PokeOnHook
- thumb_func_end sub_805A6B4
-
- thumb_func_start sub_805A6DC
-sub_805A6DC: @ 805A6DC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r5, r0, 0
- movs r1, 0xA
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _0805A780
- bl sub_805A954
- movs r0, 0xA
- ldrsh r6, [r5, r0]
- cmp r6, 0
- bne _0805A780
- bl MenuUpdateWindowText
- lsls r0, 24
- cmp r0, 0
- beq _0805A778
- ldr r7, _0805A76C @ =gPlayerAvatar
- ldrb r0, [r7, 0x5]
- lsls r4, r0, 3
- adds r4, r0
- lsls r4, 2
- ldr r1, _0805A770 @ =gMapObjects
- mov r8, r1
- add r4, r8
- ldrh r1, [r5, 0x24]
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl sub_805B980
- ldrb r1, [r4, 0x18]
- lsrs r1, 4
- adds r0, r4, 0
- bl FieldObjectTurn
- ldrb r1, [r7]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _0805A746
- ldrb r0, [r7, 0x5]
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- add r1, r8
- ldrb r0, [r1, 0x1A]
- movs r1, 0
- movs r2, 0
- bl sub_8127F28
-_0805A746:
- ldr r2, _0805A774 @ =gSprites
- ldrb r1, [r7, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- strh r6, [r0, 0x24]
- ldrb r1, [r7, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- strh r6, [r0, 0x26]
- bl MenuZeroFillScreen
- ldrh r0, [r5, 0xA]
- adds r0, 0x1
- strh r0, [r5, 0xA]
- b _0805A7A8
- .align 2, 0
-_0805A76C: .4byte gPlayerAvatar
-_0805A770: .4byte gMapObjects
-_0805A774: .4byte gSprites
-_0805A778:
- movs r1, 0xA
- ldrsh r0, [r5, r1]
- cmp r0, 0
- beq _0805A7A8
-_0805A780:
- ldr r1, _0805A7B4 @ =gPlayerAvatar
- movs r0, 0
- strb r0, [r1, 0x6]
- bl ScriptContext2_Disable
- ldrh r0, [r5, 0x26]
- lsls r0, 24
- lsrs r0, 24
- bl FishingWildEncounter
- movs r0, 0x1
- bl sub_80BE97C
- ldr r0, _0805A7B8 @ =sub_805A37C
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
-_0805A7A8:
- movs r0, 0
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0805A7B4: .4byte gPlayerAvatar
-_0805A7B8: .4byte sub_805A37C
- thumb_func_end sub_805A6DC
-
- thumb_func_start sub_805A7BC
-sub_805A7BC: @ 805A7BC
- push {r4,r5,lr}
- adds r5, r0, 0
- bl sub_805A954
- ldr r0, _0805A7FC @ =gPlayerAvatar
- ldrb r0, [r0, 0x4]
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- ldr r0, _0805A800 @ =gSprites
- adds r4, r0
- bl player_get_direction_lower_nybble
- lsls r0, 24
- lsrs r0, 24
- bl sub_805FDF8
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl StartSpriteAnim
- ldr r0, _0805A804 @ =gOtherText_NotEvenANibble
- bl sub_8072044
- movs r0, 0xD
- strh r0, [r5, 0x8]
- movs r0, 0x1
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0805A7FC: .4byte gPlayerAvatar
-_0805A800: .4byte gSprites
-_0805A804: .4byte gOtherText_NotEvenANibble
- thumb_func_end sub_805A7BC
-
- thumb_func_start sub_805A808
-sub_805A808: @ 805A808
- push {r4,r5,lr}
- adds r5, r0, 0
- bl sub_805A954
- ldr r0, _0805A84C @ =gPlayerAvatar
- ldrb r0, [r0, 0x4]
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- ldr r0, _0805A850 @ =gSprites
- adds r4, r0
- bl player_get_direction_lower_nybble
- lsls r0, 24
- lsrs r0, 24
- bl sub_805FDF8
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl StartSpriteAnim
- ldr r0, _0805A854 @ =gOtherText_ItGotAway
- bl sub_8072044
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- movs r0, 0x1
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0805A84C: .4byte gPlayerAvatar
-_0805A850: .4byte gSprites
-_0805A854: .4byte gOtherText_ItGotAway
- thumb_func_end sub_805A808
-
- thumb_func_start fishD
-fishD: @ 805A858
- push {r4,lr}
- adds r4, r0, 0
- bl sub_805A954
- bl MenuDisplayMessageBox
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end fishD
-
- thumb_func_start sub_805A874
-sub_805A874: @ 805A874
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r6, r0, 0
- bl sub_805A954
- ldr r7, _0805A908 @ =gSprites
- ldr r5, _0805A90C @ =gPlayerAvatar
- ldrb r0, [r5, 0x4]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r7
- adds r1, 0x3F
- ldrb r0, [r1]
- lsls r0, 27
- cmp r0, 0
- bge _0805A8FA
- ldrb r0, [r5, 0x5]
- lsls r4, r0, 3
- adds r4, r0
- lsls r4, 2
- ldr r0, _0805A910 @ =gMapObjects
- mov r8, r0
- add r4, r8
- ldrh r1, [r6, 0x24]
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl sub_805B980
- ldrb r1, [r4, 0x18]
- lsrs r1, 4
- adds r0, r4, 0
- bl FieldObjectTurn
- ldrb r1, [r5]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _0805A8DA
- ldrb r0, [r5, 0x5]
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- add r1, r8
- ldrb r0, [r1, 0x1A]
- movs r1, 0
- movs r2, 0
- bl sub_8127F28
-_0805A8DA:
- ldrb r1, [r5, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- movs r2, 0
- strh r2, [r0, 0x24]
- ldrb r1, [r5, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- strh r2, [r0, 0x26]
- ldrh r0, [r6, 0x8]
- adds r0, 0x1
- strh r0, [r6, 0x8]
-_0805A8FA:
- movs r0, 0
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0805A908: .4byte gSprites
-_0805A90C: .4byte gPlayerAvatar
-_0805A910: .4byte gMapObjects
- thumb_func_end sub_805A874
-
- thumb_func_start fishF
-fishF: @ 805A914
- push {lr}
- bl MenuUpdateWindowText
- lsls r0, 24
- cmp r0, 0
- beq _0805A946
- ldr r1, _0805A94C @ =gPlayerAvatar
- movs r0, 0
- strb r0, [r1, 0x6]
- bl ScriptContext2_Disable
- bl sub_806451C
- bl MenuZeroFillScreen
- movs r0, 0
- bl sub_80BE97C
- ldr r0, _0805A950 @ =sub_805A37C
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
-_0805A946:
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_0805A94C: .4byte gPlayerAvatar
-_0805A950: .4byte sub_805A37C
- thumb_func_end fishF
-
- thumb_func_start sub_805A954
-sub_805A954: @ 805A954
- push {r4-r7,lr}
- ldr r0, _0805AA40 @ =gPlayerAvatar
- ldrb r1, [r0, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0805AA44 @ =gSprites
- adds r4, r0, r1
- adds r0, r4, 0
- bl AnimateSprite
- movs r0, 0
- strh r0, [r4, 0x24]
- strh r0, [r4, 0x26]
- adds r0, r4, 0
- adds r0, 0x2B
- ldrb r5, [r0]
- movs r0, 0x2A
- adds r0, r4
- mov r12, r0
- ldrb r0, [r0]
- ldr r1, [r4, 0x8]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- lsls r6, r5, 2
- adds r0, r6, r0
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r7, 0x1
- negs r7, r7
- cmp r0, r7
- beq _0805A9C6
- adds r3, r4, 0
- adds r3, 0x2C
- ldrb r2, [r3]
- lsls r1, r2, 26
- lsrs r1, 26
- adds r1, 0x1
- movs r0, 0x3F
- ands r1, r0
- movs r0, 0x40
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- mov r1, r12
- ldrb r0, [r1]
- ldr r1, [r4, 0x8]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- adds r0, r6, r0
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, r7
- bne _0805A9CC
-_0805A9C6:
- subs r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
-_0805A9CC:
- adds r0, r4, 0
- adds r0, 0x2A
- ldrb r0, [r0]
- ldr r1, [r4, 0x8]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- lsls r0, r5, 2
- adds r0, r1
- ldrb r5, [r0]
- subs r0, r5, 0x1
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bhi _0805A9FE
- movs r0, 0x8
- strh r0, [r4, 0x24]
- bl player_get_direction_lower_nybble
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bne _0805A9FE
- ldr r0, _0805AA48 @ =0x0000fff8
- strh r0, [r4, 0x24]
-_0805A9FE:
- cmp r5, 0x5
- bne _0805AA06
- ldr r0, _0805AA48 @ =0x0000fff8
- strh r0, [r4, 0x26]
-_0805AA06:
- adds r0, r5, 0
- subs r0, 0xA
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bhi _0805AA16
- movs r0, 0x8
- strh r0, [r4, 0x26]
-_0805AA16:
- ldr r3, _0805AA40 @ =gPlayerAvatar
- ldrb r1, [r3]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _0805AA3A
- ldr r2, _0805AA4C @ =gMapObjects
- ldrb r1, [r3, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x1A]
- movs r1, 0x26
- ldrsh r2, [r4, r1]
- movs r1, 0x1
- bl sub_8127F28
-_0805AA3A:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0805AA40: .4byte gPlayerAvatar
-_0805AA44: .4byte gSprites
-_0805AA48: .4byte 0x0000fff8
-_0805AA4C: .4byte gMapObjects
- thumb_func_end sub_805A954
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/field_region_map.s b/asm/field_region_map.s
new file mode 100644
index 000000000..37c97c3ec
--- /dev/null
+++ b/asm/field_region_map.s
@@ -0,0 +1,274 @@
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start FieldInitRegionMap
+FieldInitRegionMap: @ 813EEB4
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0
+ bl SetVBlankCallback
+ ldr r2, _0813EED8 @ =0x02000000
+ ldr r0, _0813EEDC @ =0x00000888
+ adds r1, r2, r0
+ movs r0, 0
+ strh r0, [r1]
+ str r4, [r2]
+ ldr r0, _0813EEE0 @ =CB2_FieldInitRegionMap
+ bl SetMainCallback2
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813EED8: .4byte 0x02000000
+_0813EEDC: .4byte 0x00000888
+_0813EEE0: .4byte CB2_FieldInitRegionMap
+ thumb_func_end FieldInitRegionMap
+
+ thumb_func_start CB2_FieldInitRegionMap
+CB2_FieldInitRegionMap: @ 813EEE4
+ push {r4,lr}
+ sub sp, 0x4
+ movs r0, 0x80
+ lsls r0, 19
+ movs r1, 0
+ strh r1, [r0]
+ adds r0, 0x10
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ bl ResetSpriteData
+ bl FreeAllSpritePalettes
+ ldr r0, _0813EF98 @ =0x02000008
+ movs r1, 0
+ bl sub_80FA8EC
+ movs r0, 0
+ movs r1, 0
+ bl sub_80FBCF0
+ movs r0, 0x1
+ movs r1, 0x1
+ bl sub_80FBB3C
+ ldr r4, _0813EF9C @ =gWindowConfig_81E709C
+ adds r0, r4, 0
+ bl SetUpWindowConfig
+ adds r0, r4, 0
+ bl InitMenuWindow
+ bl MenuZeroFillScreen
+ ldr r1, _0813EFA0 @ =REG_BG0CNT
+ movs r2, 0xF8
+ lsls r2, 5
+ adds r0, r2, 0
+ strh r0, [r1]
+ movs r0, 0x15
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x3
+ bl MenuDrawTextWindow
+ ldr r0, _0813EFA4 @ =gOtherText_Hoenn
+ movs r1, 0x16
+ movs r2, 0x1
+ movs r3, 0x38
+ bl sub_8072BD8
+ movs r0, 0x10
+ movs r1, 0x10
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuDrawTextWindow
+ bl sub_813F0C8
+ ldr r0, _0813EFA8 @ =CB2_FieldRegionMap
+ bl SetMainCallback2
+ ldr r0, _0813EFAC @ =VBlankCB_FieldRegionMap
+ bl SetVBlankCallback
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813EF98: .4byte 0x02000008
+_0813EF9C: .4byte gWindowConfig_81E709C
+_0813EFA0: .4byte REG_BG0CNT
+_0813EFA4: .4byte gOtherText_Hoenn
+_0813EFA8: .4byte CB2_FieldRegionMap
+_0813EFAC: .4byte VBlankCB_FieldRegionMap
+ thumb_func_end CB2_FieldInitRegionMap
+
+ thumb_func_start VBlankCB_FieldRegionMap
+VBlankCB_FieldRegionMap: @ 813EFB0
+ push {lr}
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl TransferPlttBuffer
+ pop {r0}
+ bx r0
+ thumb_func_end VBlankCB_FieldRegionMap
+
+ thumb_func_start CB2_FieldRegionMap
+CB2_FieldRegionMap: @ 813EFC4
+ push {lr}
+ bl sub_813EFDC
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl UpdatePaletteFade
+ pop {r0}
+ bx r0
+ thumb_func_end CB2_FieldRegionMap
+
+ thumb_func_start sub_813EFDC
+sub_813EFDC: @ 813EFDC
+ push {lr}
+ sub sp, 0x4
+ ldr r1, _0813EFF8 @ =0x02000000
+ ldr r2, _0813EFFC @ =0x00000888
+ adds r0, r1, r2
+ ldrh r0, [r0]
+ adds r2, r1, 0
+ cmp r0, 0x4
+ bhi _0813F0B8
+ lsls r0, 2
+ ldr r1, _0813F000 @ =_0813F004
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0813EFF8: .4byte 0x02000000
+_0813EFFC: .4byte 0x00000888
+_0813F000: .4byte _0813F004
+ .align 2, 0
+_0813F004:
+ .4byte _0813F018
+ .4byte _0813F030
+ .4byte _0813F04C
+ .4byte _0813F078
+ .4byte _0813F0A0
+_0813F018:
+ movs r1, 0x80
+ lsls r1, 19
+ ldr r3, _0813F028 @ =0x00001541
+ adds r0, r3, 0
+ strh r0, [r1]
+ ldr r0, _0813F02C @ =0x00000888
+ adds r1, r2, r0
+ b _0813F08E
+ .align 2, 0
+_0813F028: .4byte 0x00001541
+_0813F02C: .4byte 0x00000888
+_0813F030:
+ ldr r0, _0813F044 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0813F0B8
+ ldr r3, _0813F048 @ =0x00000888
+ adds r1, r2, r3
+ b _0813F08E
+ .align 2, 0
+_0813F044: .4byte gPaletteFade
+_0813F048: .4byte 0x00000888
+_0813F04C:
+ bl sub_80FAB60
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3
+ bne _0813F05E
+ bl sub_813F0C8
+ b _0813F0B8
+_0813F05E:
+ cmp r0, 0x3
+ blt _0813F0B8
+ cmp r0, 0x5
+ bgt _0813F0B8
+ ldr r1, _0813F070 @ =0x02000000
+ ldr r0, _0813F074 @ =0x00000888
+ adds r1, r0
+ b _0813F08E
+ .align 2, 0
+_0813F070: .4byte 0x02000000
+_0813F074: .4byte 0x00000888
+_0813F078:
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r1, _0813F098 @ =0x02000000
+ ldr r2, _0813F09C @ =0x00000888
+ adds r1, r2
+_0813F08E:
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _0813F0B8
+ .align 2, 0
+_0813F098: .4byte 0x02000000
+_0813F09C: .4byte 0x00000888
+_0813F0A0:
+ ldr r0, _0813F0C0 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0813F0B8
+ bl sub_80FAB10
+ ldr r0, _0813F0C4 @ =0x02000000
+ ldr r0, [r0]
+ bl SetMainCallback2
+_0813F0B8:
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813F0C0: .4byte gPaletteFade
+_0813F0C4: .4byte 0x02000000
+ thumb_func_end sub_813EFDC
+
+ thumb_func_start sub_813F0C8
+sub_813F0C8: @ 813F0C8
+ push {lr}
+ movs r0, 0x11
+ movs r1, 0x11
+ movs r2, 0x1C
+ movs r3, 0x12
+ bl MenuFillWindowRectWithBlankTile
+ ldr r1, _0813F0F0 @ =0x02000000
+ ldrb r0, [r1, 0x1E]
+ cmp r0, 0
+ beq _0813F0EA
+ adds r0, r1, 0
+ adds r0, 0x8
+ movs r1, 0x11
+ movs r2, 0x11
+ bl MenuPrint
+_0813F0EA:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813F0F0: .4byte 0x02000000
+ thumb_func_end sub_813F0C8
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/rom_806936C.s b/asm/field_tasks.s
index 47a91f0a4..c879ebf63 100644
--- a/asm/rom_806936C.s
+++ b/asm/field_tasks.s
@@ -6,157 +6,8 @@
.text
- thumb_func_start sub_806936C
-sub_806936C: @ 806936C
- push {lr}
- movs r0, 0x1
- bl sub_808070C
- pop {r0}
- bx r0
- thumb_func_end sub_806936C
-
- thumb_func_start sub_8069378
-sub_8069378: @ 8069378
- push {lr}
- movs r0, 0x2
- bl sub_808070C
- pop {r0}
- bx r0
- thumb_func_end sub_8069378
-
- thumb_func_start sub_8069384
-sub_8069384: @ 8069384
- push {lr}
- movs r0, 0x3
- bl sub_808070C
- pop {r0}
- bx r0
- thumb_func_end sub_8069384
-
- thumb_func_start sub_8069390
-sub_8069390: @ 8069390
- push {lr}
- movs r0, 0x4
- bl sub_808070C
- pop {r0}
- bx r0
- thumb_func_end sub_8069390
-
- thumb_func_start sub_806939C
-sub_806939C: @ 806939C
- push {lr}
- movs r0, 0x5
- bl sub_808070C
- pop {r0}
- bx r0
- thumb_func_end sub_806939C
-
- thumb_func_start sub_80693A8
-sub_80693A8: @ 80693A8
- push {lr}
- movs r0, 0x6
- bl sub_808070C
- pop {r0}
- bx r0
- thumb_func_end sub_80693A8
-
- thumb_func_start sub_80693B4
-sub_80693B4: @ 80693B4
- push {lr}
- movs r0, 0x9
- bl sub_808070C
- pop {r0}
- bx r0
- thumb_func_end sub_80693B4
-
- thumb_func_start sub_80693C0
-sub_80693C0: @ 80693C0
- push {lr}
- movs r0, 0x7
- bl sub_808070C
- pop {r0}
- bx r0
- thumb_func_end sub_80693C0
-
- thumb_func_start sub_80693CC
-sub_80693CC: @ 80693CC
- push {lr}
- movs r0, 0x8
- bl sub_808070C
- pop {r0}
- bx r0
- thumb_func_end sub_80693CC
-
- thumb_func_start sub_80693D8
-sub_80693D8: @ 80693D8
- push {lr}
- movs r0, 0xB
- bl sub_808070C
- pop {r0}
- bx r0
- thumb_func_end sub_80693D8
-
- thumb_func_start sub_80693E4
-sub_80693E4: @ 80693E4
- push {lr}
- movs r0, 0xC
- bl sub_808070C
- pop {r0}
- bx r0
- thumb_func_end sub_80693E4
-
- thumb_func_start sub_80693F0
-sub_80693F0: @ 80693F0
- push {lr}
- movs r0, 0x14
- bl sub_808070C
- pop {r0}
- bx r0
- thumb_func_end sub_80693F0
-
- thumb_func_start sub_80693FC
-sub_80693FC: @ 80693FC
- push {lr}
- movs r0, 0x15
- bl sub_808070C
- pop {r0}
- bx r0
- thumb_func_end sub_80693FC
-
- thumb_func_start sub_8069408
-sub_8069408: @ 8069408
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- movs r2, 0
- ldr r3, _08069428 @ =gUnknown_083762FC
-_08069412:
- lsls r1, r2, 3
- adds r0, r1, r3
- ldrb r0, [r0]
- cmp r0, r4
- bne _0806942C
- adds r0, r3, 0x4
- adds r0, r1, r0
- ldr r0, [r0]
- bl _call_via_r0
- b _08069436
- .align 2, 0
-_08069428: .4byte gUnknown_083762FC
-_0806942C:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0xC
- bls _08069412
-_08069436:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8069408
-
- thumb_func_start task_per_step_callback_manager
-task_per_step_callback_manager: @ 806943C
+ thumb_func_start Task_RunPerStepCallback
+Task_RunPerStepCallback: @ 806943C
push {lr}
lsls r0, 24
lsrs r0, 24
@@ -177,10 +28,10 @@ task_per_step_callback_manager: @ 806943C
.align 2, 0
_08069460: .4byte gTasks
_08069464: .4byte gUnknown_08376364
- thumb_func_end task_per_step_callback_manager
+ thumb_func_end Task_RunPerStepCallback
- thumb_func_start sub_8069468
-sub_8069468: @ 8069468
+ thumb_func_start RunTimeBasedEvents
+RunTimeBasedEvents: @ 8069468
push {r4,lr}
adds r4, r0, 0
movs r1, 0
@@ -222,10 +73,10 @@ _080694AC:
bx r0
.align 2, 0
_080694B4: .4byte gMain
- thumb_func_end sub_8069468
+ thumb_func_end RunTimeBasedEvents
- thumb_func_start sub_80694B8
-sub_80694B8: @ 80694B8
+ thumb_func_start Task_RunTimeBasedEvents
+Task_RunTimeBasedEvents: @ 80694B8
push {r4,lr}
lsls r0, 24
lsrs r0, 24
@@ -239,7 +90,7 @@ sub_80694B8: @ 80694B8
cmp r0, 0
bne _080694E0
adds r0, r4, 0
- bl sub_8069468
+ bl RunTimeBasedEvents
adds r0, r4, 0x2
adds r1, r4, 0x4
bl sub_80540D0
@@ -249,12 +100,12 @@ _080694E0:
bx r0
.align 2, 0
_080694E8: .4byte gTasks + 0x8
- thumb_func_end sub_80694B8
+ thumb_func_end Task_RunTimeBasedEvents
- thumb_func_start overworld_ensure_per_step_coros_running
-overworld_ensure_per_step_coros_running: @ 80694EC
+ thumb_func_start SetUpFieldTasks
+SetUpFieldTasks: @ 80694EC
push {r4,r5,lr}
- ldr r5, _08069548 @ =task_per_step_callback_manager
+ ldr r5, _08069548 @ =Task_RunPerStepCallback
adds r0, r5, 0
bl FuncIsActiveTask
lsls r0, 24
@@ -273,7 +124,7 @@ overworld_ensure_per_step_coros_running: @ 80694EC
adds r1, r2
strh r4, [r1, 0x8]
_08069516:
- ldr r4, _08069550 @ =sub_806A1E8
+ ldr r4, _08069550 @ =Task_MuddySlope
adds r0, r4, 0
bl FuncIsActiveTask
lsls r0, 24
@@ -283,7 +134,7 @@ _08069516:
movs r1, 0x50
bl CreateTask
_0806952C:
- ldr r4, _08069554 @ =sub_80694B8
+ ldr r4, _08069554 @ =Task_RunTimeBasedEvents
adds r0, r4, 0
bl FuncIsActiveTask
lsls r0, 24
@@ -297,18 +148,18 @@ _08069542:
pop {r0}
bx r0
.align 2, 0
-_08069548: .4byte task_per_step_callback_manager
+_08069548: .4byte Task_RunPerStepCallback
_0806954C: .4byte gTasks
-_08069550: .4byte sub_806A1E8
-_08069554: .4byte sub_80694B8
- thumb_func_end overworld_ensure_per_step_coros_running
+_08069550: .4byte Task_MuddySlope
+_08069554: .4byte Task_RunTimeBasedEvents
+ thumb_func_end SetUpFieldTasks
- thumb_func_start activate_per_step_callback
-activate_per_step_callback: @ 8069558
+ thumb_func_start ActivatePerStepCallback
+ActivatePerStepCallback: @ 8069558
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
- ldr r0, _08069590 @ =task_per_step_callback_manager
+ ldr r0, _08069590 @ =Task_RunPerStepCallback
bl FindTaskIdByFunc
lsls r0, 24
lsrs r1, r0, 24
@@ -333,7 +184,7 @@ _0806957C:
strh r0, [r1]
b _0806959A
.align 2, 0
-_08069590: .4byte task_per_step_callback_manager
+_08069590: .4byte Task_RunPerStepCallback
_08069594: .4byte gTasks + 0x8
_08069598:
strh r4, [r1]
@@ -341,16 +192,16 @@ _0806959A:
pop {r4}
pop {r0}
bx r0
- thumb_func_end activate_per_step_callback
+ thumb_func_end ActivatePerStepCallback
- thumb_func_start wild_encounter_reset_coro_args
-wild_encounter_reset_coro_args: @ 80695A0
+ thumb_func_start ResetFieldTasksArgs
+ResetFieldTasksArgs: @ 80695A0
push {lr}
- ldr r0, _080695D0 @ =task_per_step_callback_manager
+ ldr r0, _080695D0 @ =Task_RunPerStepCallback
bl FindTaskIdByFunc
lsls r0, 24
lsrs r1, r0, 24
- ldr r0, _080695D4 @ =sub_80694B8
+ ldr r0, _080695D4 @ =Task_RunTimeBasedEvents
bl FindTaskIdByFunc
lsls r0, 24
lsrs r1, r0, 24
@@ -368,15 +219,15 @@ _080695CA:
pop {r0}
bx r0
.align 2, 0
-_080695D0: .4byte task_per_step_callback_manager
-_080695D4: .4byte sub_80694B8
+_080695D0: .4byte Task_RunPerStepCallback
+_080695D4: .4byte Task_RunTimeBasedEvents
_080695D8: .4byte gTasks + 0x8
- thumb_func_end wild_encounter_reset_coro_args
+ thumb_func_end ResetFieldTasksArgs
- thumb_func_start nullsub_51
-nullsub_51: @ 80695DC
+ thumb_func_start DummyPerStepCallback
+DummyPerStepCallback: @ 80695DC
bx lr
- thumb_func_end nullsub_51
+ thumb_func_end DummyPerStepCallback
thumb_func_start sub_80695E0
sub_80695E0: @ 80695E0
@@ -721,8 +572,8 @@ _08069854:
bx r1
thumb_func_end sub_80697C8
- thumb_func_start sub_8069864
-sub_8069864: @ 8069864
+ thumb_func_start PerStepCallback_8069864
+PerStepCallback_8069864: @ 8069864
push {r4-r7,lr}
sub sp, 0x4
lsls r0, 24
@@ -905,7 +756,7 @@ _080699CE:
pop {r4-r7}
pop {r0}
bx r0
- thumb_func_end sub_8069864
+ thumb_func_end PerStepCallback_8069864
thumb_func_start sub_80699D8
sub_80699D8: @ 80699D8
@@ -1011,8 +862,8 @@ _08069A96:
_08069A9C: .4byte 0x00000256
thumb_func_end sub_8069A3C
- thumb_func_start sub_8069AA0
-sub_8069AA0: @ 8069AA0
+ thumb_func_start PerStepCallback_8069AA0
+PerStepCallback_8069AA0: @ 8069AA0
push {r4-r7,lr}
mov r7, r10
mov r6, r9
@@ -1268,7 +1119,7 @@ _08069CA6:
pop {r4-r7}
pop {r0}
bx r0
- thumb_func_end sub_8069AA0
+ thumb_func_end PerStepCallback_8069AA0
thumb_func_start sub_8069CB8
sub_8069CB8: @ 8069CB8
@@ -1428,8 +1279,8 @@ _08069DCC: .4byte gMapHeader
_08069DD0: .4byte 0x0000020e
thumb_func_end sub_8069D78
- thumb_func_start sub_8069DD4
-sub_8069DD4: @ 8069DD4
+ thumb_func_start PerStepCallback_8069DD4
+PerStepCallback_8069DD4: @ 8069DD4
push {r4-r7,lr}
sub sp, 0x4
lsls r0, 24
@@ -1510,7 +1361,7 @@ _08069E4A:
lsls r4, 24
lsrs r4, 24
adds r0, r4, 0
- bl sub_8057540
+ bl MetatileBehavior_IsThinIce
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -1526,7 +1377,7 @@ _08069E4A:
_08069E8C: .4byte 0x00004022
_08069E90:
adds r0, r4, 0
- bl sub_8057554
+ bl MetatileBehavior_IsCrackedIce
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -1628,10 +1479,10 @@ _08069F56:
bx r0
.align 2, 0
_08069F60: .4byte 0x00000206
- thumb_func_end sub_8069DD4
+ thumb_func_end PerStepCallback_8069DD4
- thumb_func_start sub_8069F64
-sub_8069F64: @ 8069F64
+ thumb_func_start PerStepCallback_8069F64
+PerStepCallback_8069F64: @ 8069F64
push {r4,r5,lr}
sub sp, 0x4
lsls r0, 24
@@ -1733,7 +1584,7 @@ _0806A02A:
_0806A034: .4byte 0x00000206
_0806A038: .4byte 0x00004048
_0806A03C: .4byte 0x0000270e
- thumb_func_end sub_8069F64
+ thumb_func_end PerStepCallback_8069F64
thumb_func_start sub_806A040
sub_806A040: @ 806A040
@@ -1765,8 +1616,8 @@ _0806A074: .4byte 0x0000022f
_0806A078: .4byte 0x00000237
thumb_func_end sub_806A040
- thumb_func_start sub_806A07C
-sub_806A07C: @ 806A07C
+ thumb_func_start PerStepCallback_806A07C
+PerStepCallback_806A07C: @ 806A07C
push {r4-r7,lr}
sub sp, 0x4
lsls r0, 24
@@ -1825,7 +1676,7 @@ _0806A0EE:
lsls r0, r6, 24
lsrs r6, r0, 24
adds r0, r6, 0
- bl sub_8057818
+ bl MetatileBehavior_IsCrackedFloorHole
lsls r0, 24
cmp r0, 0
beq _0806A106
@@ -1853,7 +1704,7 @@ _0806A122:
ldrh r0, [r4]
strh r0, [r5, 0x6]
adds r0, r6, 0
- bl sub_805782C
+ bl MetatileBehavior_IsCrackedFloor
lsls r0, 24
cmp r0, 0
beq _0806A182
@@ -1898,7 +1749,7 @@ _0806A182:
pop {r4-r7}
pop {r0}
bx r0
- thumb_func_end sub_806A07C
+ thumb_func_end PerStepCallback_806A07C
thumb_func_start sub_806A18C
sub_806A18C: @ 806A18C
@@ -1950,8 +1801,8 @@ _0806A1BC:
_0806A1E4: .4byte gUnknown_08376418
thumb_func_end sub_806A18C
- thumb_func_start sub_806A1E8
-sub_806A1E8: @ 806A1E8
+ thumb_func_start Task_MuddySlope
+Task_MuddySlope: @ 806A1E8
push {r4-r7,lr}
mov r7, r8
push {r7}
@@ -2116,173 +1967,6 @@ _0806A312:
pop {r4-r7}
pop {r0}
bx r0
- thumb_func_end sub_806A1E8
-
- thumb_func_start sub_806A328
-sub_806A328: @ 806A328
- push {lr}
- ldr r0, _0806A350 @ =0x00000835
- bl FlagSet
- bl RtcCalcLocalTime
- ldr r2, _0806A354 @ =gSaveBlock2
- adds r2, 0xA0
- ldr r3, _0806A358 @ =gLocalTime
- ldr r0, [r3]
- ldr r1, [r3, 0x4]
- str r0, [r2]
- str r1, [r2, 0x4]
- ldr r0, _0806A35C @ =0x00004040
- ldrh r1, [r3]
- bl VarSet
- pop {r0}
- bx r0
- .align 2, 0
-_0806A350: .4byte 0x00000835
-_0806A354: .4byte gSaveBlock2
-_0806A358: .4byte gLocalTime
-_0806A35C: .4byte 0x00004040
- thumb_func_end sub_806A328
-
- thumb_func_start DoTimeBasedEvents
-DoTimeBasedEvents: @ 806A360
- push {r4,lr}
- ldr r0, _0806A388 @ =0x00000835
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _0806A380
- bl RtcCalcLocalTime
- ldr r4, _0806A38C @ =gLocalTime
- adds r0, r4, 0
- bl sub_806A390
- adds r0, r4, 0
- bl sub_806A3F4
-_0806A380:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0806A388: .4byte 0x00000835
-_0806A38C: .4byte gLocalTime
- thumb_func_end DoTimeBasedEvents
-
- thumb_func_start sub_806A390
-sub_806A390: @ 806A390
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r0, _0806A3F0 @ =0x00004040
- bl GetVarPointer
- adds r6, r0, 0
- ldrh r0, [r6]
- movs r2, 0
- ldrsh r1, [r5, r2]
- cmp r0, r1
- beq _0806A3EA
- cmp r0, r1
- bgt _0806A3EA
- ldrh r4, [r5]
- subs r4, r0
- lsls r4, 16
- lsrs r4, 16
- bl sub_80690B4
- adds r0, r4, 0
- bl sub_80FA220
- adds r0, r4, 0
- bl sub_80BE8C4
- adds r0, r4, 0
- bl sub_8080834
- adds r0, r4, 0
- bl UpdatePartyPokerusTime
- adds r0, r4, 0
- bl sub_810D2F4
- adds r0, r4, 0
- bl UpdateBirchState
- adds r0, r4, 0
- bl sub_810F618
- adds r0, r4, 0
- bl sub_8145AA4
- ldrh r0, [r5]
- strh r0, [r6]
-_0806A3EA:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806A3F0: .4byte 0x00004040
- thumb_func_end sub_806A390
-
- thumb_func_start sub_806A3F4
-sub_806A3F4: @ 806A3F4
- push {r4-r6,lr}
- sub sp, 0x8
- adds r5, r0, 0
- mov r4, sp
- ldr r6, _0806A448 @ =gSaveBlock2 + 0xA0
- mov r0, sp
- adds r1, r6, 0
- adds r2, r5, 0
- bl CalcTimeDifference
- mov r0, sp
- movs r2, 0
- ldrsh r1, [r0, r2]
- lsls r0, r1, 1
- adds r0, r1
- lsls r1, r0, 4
- subs r1, r0
- lsls r1, 5
- movs r2, 0x2
- ldrsb r2, [r4, r2]
- lsls r0, r2, 4
- subs r0, r2
- lsls r0, 2
- adds r1, r0
- movs r0, 0x3
- ldrsb r0, [r4, r0]
- adds r0, r1, r0
- cmp r0, 0
- beq _0806A43E
- cmp r0, 0
- blt _0806A43E
- bl BerryTreeTimeUpdate
- ldr r0, [r5]
- ldr r1, [r5, 0x4]
- str r0, [r6]
- str r1, [r6, 0x4]
-_0806A43E:
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806A448: .4byte gSaveBlock2 + 0xA0
- thumb_func_end sub_806A3F4
-
- thumb_func_start sub_806A44C
-sub_806A44C: @ 806A44C
- push {lr}
- bl sub_806A328
- ldr r0, _0806A45C @ =c2_exit_to_overworld_1_continue_scripts_restart_music
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_0806A45C: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
- thumb_func_end sub_806A44C
-
- thumb_func_start sub_806A460
-sub_806A460: @ 806A460
- push {lr}
- ldr r0, _0806A474 @ =Cb2_StartWallClock
- bl SetMainCallback2
- ldr r1, _0806A478 @ =gMain
- ldr r0, _0806A47C @ =sub_806A44C
- str r0, [r1, 0x8]
- pop {r0}
- bx r0
- .align 2, 0
-_0806A474: .4byte Cb2_StartWallClock
-_0806A478: .4byte gMain
-_0806A47C: .4byte sub_806A44C
- thumb_func_end sub_806A460
+ thumb_func_end Task_MuddySlope
.align 2, 0 @ Don't pad with nop.
diff --git a/asm/fieldmap.s b/asm/fieldmap.s
deleted file mode 100644
index 5d914c422..000000000
--- a/asm/fieldmap.s
+++ /dev/null
@@ -1,1998 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start mapconnection_get_mapheader
-mapconnection_get_mapheader: @ 8055F90
- push {lr}
- ldrb r2, [r0, 0x8]
- ldrb r1, [r0, 0x9]
- adds r0, r2, 0
- bl get_mapheader_by_bank_and_number
- pop {r1}
- bx r1
- thumb_func_end mapconnection_get_mapheader
-
- thumb_func_start not_trainer_hill_battle_pyramid
-not_trainer_hill_battle_pyramid: @ 8055FA0
- push {r4,lr}
- ldr r4, _08055FBC @ =gMapHeader
- adds r0, r4, 0
- bl mapheader_copy_mapdata_with_padding
- ldr r0, [r4, 0x4]
- bl sub_80BB970
- bl mapheader_run_script_with_tag_x1
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08055FBC: .4byte gMapHeader
- thumb_func_end not_trainer_hill_battle_pyramid
-
- thumb_func_start sub_8055FC0
-sub_8055FC0: @ 8055FC0
- push {r4,lr}
- ldr r4, _08055FF0 @ =gMapHeader
- adds r0, r4, 0
- bl mapheader_copy_mapdata_with_padding
- movs r0, 0
- bl sub_80BBCCC
- ldr r0, [r4, 0x4]
- bl sub_80BB970
- bl sub_8056670
- bl mapheader_run_script_with_tag_x1
- ldr r1, _08055FF4 @ =gUnknown_03004870
- ldr r0, [r1]
- ldr r1, [r1, 0x4]
- bl UpdateTVScreensOnMap
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08055FF0: .4byte gMapHeader
-_08055FF4: .4byte gUnknown_03004870
- thumb_func_end sub_8055FC0
-
- thumb_func_start mapheader_copy_mapdata_with_padding
-mapheader_copy_mapdata_with_padding: @ 8055FF8
- push {r4-r6,lr}
- sub sp, 0x4
- adds r6, r0, 0
- ldr r5, [r6]
- ldr r0, _08056044 @ =0x03ff03ff
- str r0, [sp]
- ldr r4, _08056048 @ =gUnknown_02029828
- ldr r2, _0805604C @ =0x01001400
- mov r0, sp
- adds r1, r4, 0
- bl CpuFastSet
- ldr r2, _08056050 @ =gUnknown_03004870
- str r4, [r2, 0x8]
- ldr r1, [r5]
- adds r1, 0xF
- str r1, [r2]
- ldr r0, [r5, 0x4]
- adds r0, 0xE
- str r0, [r2, 0x4]
- muls r1, r0
- movs r0, 0xA0
- lsls r0, 6
- cmp r1, r0
- bgt _0805603A
- ldr r0, [r5, 0xC]
- ldrh r1, [r5]
- ldrh r2, [r5, 0x4]
- bl map_copy_with_padding
- adds r0, r6, 0
- bl sub_80560AC
-_0805603A:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08056044: .4byte 0x03ff03ff
-_08056048: .4byte gUnknown_02029828
-_0805604C: .4byte 0x01001400
-_08056050: .4byte gUnknown_03004870
- thumb_func_end mapheader_copy_mapdata_with_padding
-
- thumb_func_start map_copy_with_padding
-map_copy_with_padding: @ 8056054
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r7, r0, 0
- lsls r1, 16
- lsrs r1, 16
- mov r8, r1
- lsls r2, 16
- lsrs r2, 16
- ldr r0, _080560A8 @ =gUnknown_03004870
- ldr r4, [r0, 0x8]
- ldr r1, [r0]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 1
- adds r0, 0xE
- adds r4, r0
- cmp r2, 0
- beq _0805609C
- mov r0, r8
- lsls r6, r0, 1
- adds r5, r2, 0
- movs r0, 0x1E
- adds r0, r6
- mov r9, r0
-_08056088:
- adds r0, r7, 0
- adds r1, r4, 0
- mov r2, r8
- bl CpuSet
- add r4, r9
- adds r7, r6
- subs r5, 0x1
- cmp r5, 0
- bne _08056088
-_0805609C:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080560A8: .4byte gUnknown_03004870
- thumb_func_end map_copy_with_padding
-
- thumb_func_start sub_80560AC
-sub_80560AC: @ 80560AC
- push {r4-r7,lr}
- adds r6, r0, 0
- ldr r0, [r6, 0xC]
- ldr r1, [r0]
- ldr r5, [r0, 0x4]
- ldr r2, _080560E0 @ =gUnknown_0202E850
- ldr r0, _080560E4 @ =gUnknown_08308E28
- ldr r0, [r0]
- str r0, [r2]
- cmp r1, 0
- ble _0805612C
- adds r4, r2, 0
- adds r7, r1, 0
-_080560C6:
- adds r0, r5, 0
- bl mapconnection_get_mapheader
- adds r1, r0, 0
- ldr r2, [r5, 0x4]
- ldrb r0, [r5]
- cmp r0, 0x2
- beq _080560FE
- cmp r0, 0x2
- bgt _080560E8
- cmp r0, 0x1
- beq _080560F2
- b _08056124
- .align 2, 0
-_080560E0: .4byte gUnknown_0202E850
-_080560E4: .4byte gUnknown_08308E28
-_080560E8:
- cmp r0, 0x3
- beq _0805610A
- cmp r0, 0x4
- beq _08056116
- b _08056124
-_080560F2:
- adds r0, r6, 0
- bl sub_8056198
- ldrb r0, [r4]
- movs r1, 0x1
- b _08056120
-_080560FE:
- adds r0, r6, 0
- bl sub_8056200
- ldrb r0, [r4]
- movs r1, 0x2
- b _08056120
-_0805610A:
- adds r0, r6, 0
- bl sub_8056260
- ldrb r0, [r4]
- movs r1, 0x4
- b _08056120
-_08056116:
- adds r0, r6, 0
- bl sub_80562C0
- ldrb r0, [r4]
- movs r1, 0x8
-_08056120:
- orrs r0, r1
- strb r0, [r4]
-_08056124:
- subs r7, 0x1
- adds r5, 0xC
- cmp r7, 0
- bne _080560C6
-_0805612C:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80560AC
-
- thumb_func_start sub_8056134
-sub_8056134: @ 8056134
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r5, [sp, 0x18]
- ldr r4, [r2]
- ldr r7, [r4]
- adds r2, r7, 0
- muls r2, r5
- adds r2, r3
- lsls r2, 1
- ldr r3, [r4, 0xC]
- adds r6, r3, r2
- ldr r3, _08056190 @ =gUnknown_03004870
- ldr r2, [r3]
- muls r1, r2
- adds r1, r0
- lsls r1, 1
- ldr r0, [r3, 0x8]
- adds r5, r0, r1
- ldr r0, [sp, 0x20]
- cmp r0, 0
- ble _08056186
- adds r4, r0, 0
- ldr r3, _08056194 @ =0x001fffff
- mov r8, r3
-_08056166:
- adds r0, r6, 0
- adds r1, r5, 0
- ldr r2, [sp, 0x1C]
- mov r3, r8
- ands r2, r3
- bl CpuSet
- ldr r0, _08056190 @ =gUnknown_03004870
- ldr r0, [r0]
- lsls r0, 1
- adds r5, r0
- lsls r0, r7, 1
- adds r6, r0
- subs r4, 0x1
- cmp r4, 0
- bne _08056166
-_08056186:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08056190: .4byte gUnknown_03004870
-_08056194: .4byte 0x001fffff
- thumb_func_end sub_8056134
-
- thumb_func_start sub_8056198
-sub_8056198: @ 8056198
- push {r4-r7,lr}
- sub sp, 0xC
- adds r3, r0, 0
- adds r5, r1, 0
- cmp r5, 0
- beq _080561F2
- ldr r0, [r5]
- ldr r4, [r0]
- adds r2, 0x7
- ldr r0, [r3]
- ldr r0, [r0, 0x4]
- adds r7, r0, 0x7
- cmp r2, 0
- bge _080561CC
- negs r6, r2
- adds r2, r4
- ldr r0, _080561C8 @ =gUnknown_03004870
- ldr r3, [r0]
- cmp r2, r3
- bge _080561C2
- adds r3, r2, 0
-_080561C2:
- movs r2, 0
- b _080561DC
- .align 2, 0
-_080561C8: .4byte gUnknown_03004870
-_080561CC:
- movs r6, 0
- adds r0, r2, r4
- ldr r1, _080561FC @ =gUnknown_03004870
- ldr r1, [r1]
- subs r3, r1, r2
- cmp r0, r1
- bge _080561DC
- adds r3, r4, 0
-_080561DC:
- movs r0, 0
- str r0, [sp]
- str r3, [sp, 0x4]
- movs r0, 0x7
- str r0, [sp, 0x8]
- adds r0, r2, 0
- adds r1, r7, 0
- adds r2, r5, 0
- adds r3, r6, 0
- bl sub_8056134
-_080561F2:
- add sp, 0xC
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080561FC: .4byte gUnknown_03004870
- thumb_func_end sub_8056198
-
- thumb_func_start sub_8056200
-sub_8056200: @ 8056200
- push {r4-r7,lr}
- sub sp, 0xC
- adds r5, r1, 0
- cmp r5, 0
- beq _08056254
- ldr r0, [r5]
- ldr r4, [r0]
- ldr r0, [r0, 0x4]
- adds r2, 0x7
- subs r7, r0, 0x7
- cmp r2, 0
- bge _08056230
- negs r6, r2
- adds r2, r4
- ldr r0, _0805622C @ =gUnknown_03004870
- ldr r3, [r0]
- cmp r2, r3
- bge _08056226
- adds r3, r2, 0
-_08056226:
- movs r2, 0
- b _08056240
- .align 2, 0
-_0805622C: .4byte gUnknown_03004870
-_08056230:
- movs r6, 0
- adds r0, r2, r4
- ldr r1, _0805625C @ =gUnknown_03004870
- ldr r1, [r1]
- subs r3, r1, r2
- cmp r0, r1
- bge _08056240
- adds r3, r4, 0
-_08056240:
- str r7, [sp]
- str r3, [sp, 0x4]
- movs r0, 0x7
- str r0, [sp, 0x8]
- adds r0, r2, 0
- movs r1, 0
- adds r2, r5, 0
- adds r3, r6, 0
- bl sub_8056134
-_08056254:
- add sp, 0xC
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0805625C: .4byte gUnknown_03004870
- thumb_func_end sub_8056200
-
- thumb_func_start sub_8056260
-sub_8056260: @ 8056260
- push {r4-r7,lr}
- sub sp, 0xC
- adds r5, r1, 0
- cmp r5, 0
- beq _080562B4
- ldr r0, [r5]
- ldr r1, [r0]
- ldr r4, [r0, 0x4]
- adds r2, 0x7
- subs r7, r1, 0x7
- cmp r2, 0
- bge _08056290
- negs r6, r2
- adds r1, r2, r4
- ldr r0, _0805628C @ =gUnknown_03004870
- ldr r3, [r0, 0x4]
- cmp r1, r3
- bge _08056286
- adds r3, r1, 0
-_08056286:
- movs r2, 0
- b _080562A0
- .align 2, 0
-_0805628C: .4byte gUnknown_03004870
-_08056290:
- movs r6, 0
- adds r0, r2, r4
- ldr r1, _080562BC @ =gUnknown_03004870
- ldr r1, [r1, 0x4]
- subs r3, r1, r2
- cmp r0, r1
- bge _080562A0
- adds r3, r4, 0
-_080562A0:
- str r6, [sp]
- movs r0, 0x7
- str r0, [sp, 0x4]
- str r3, [sp, 0x8]
- movs r0, 0
- adds r1, r2, 0
- adds r2, r5, 0
- adds r3, r7, 0
- bl sub_8056134
-_080562B4:
- add sp, 0xC
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080562BC: .4byte gUnknown_03004870
- thumb_func_end sub_8056260
-
- thumb_func_start sub_80562C0
-sub_80562C0: @ 80562C0
- push {r4-r7,lr}
- sub sp, 0xC
- adds r3, r0, 0
- adds r5, r1, 0
- cmp r5, 0
- beq _08056318
- ldr r0, [r5]
- ldr r4, [r0, 0x4]
- ldr r0, [r3]
- ldr r0, [r0]
- adds r7, r0, 0x7
- adds r2, 0x7
- cmp r2, 0
- bge _080562F4
- negs r6, r2
- adds r1, r2, r4
- ldr r0, _080562F0 @ =gUnknown_03004870
- ldr r3, [r0, 0x4]
- cmp r1, r3
- bge _080562EA
- adds r3, r1, 0
-_080562EA:
- movs r2, 0
- b _08056304
- .align 2, 0
-_080562F0: .4byte gUnknown_03004870
-_080562F4:
- movs r6, 0
- adds r0, r2, r4
- ldr r1, _08056320 @ =gUnknown_03004870
- ldr r1, [r1, 0x4]
- subs r3, r1, r2
- cmp r0, r1
- bge _08056304
- adds r3, r4, 0
-_08056304:
- str r6, [sp]
- movs r0, 0x8
- str r0, [sp, 0x4]
- str r3, [sp, 0x8]
- adds r0, r7, 0
- adds r1, r2, 0
- adds r2, r5, 0
- movs r3, 0
- bl sub_8056134
-_08056318:
- add sp, 0xC
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08056320: .4byte gUnknown_03004870
- thumb_func_end sub_80562C0
-
- thumb_func_start MapGridGetZCoordAt
-MapGridGetZCoordAt: @ 8056324
- push {r4,lr}
- adds r2, r0, 0
- adds r4, r1, 0
- cmp r2, 0
- blt _08056354
- ldr r1, _08056350 @ =gUnknown_03004870
- ldr r3, [r1]
- cmp r2, r3
- bge _08056354
- cmp r4, 0
- blt _08056354
- ldr r0, [r1, 0x4]
- cmp r4, r0
- bge _08056354
- adds r0, r3, 0
- muls r0, r4
- adds r0, r2, r0
- ldr r1, [r1, 0x8]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- b _08056376
- .align 2, 0
-_08056350: .4byte gUnknown_03004870
-_08056354:
- ldr r0, _08056380 @ =gMapHeader
- ldr r3, [r0]
- adds r1, r2, 0x1
- movs r2, 0x1
- ands r1, r2
- adds r0, r4, 0x1
- ands r0, r2
- lsls r0, 1
- adds r1, r0
- ldr r0, [r3, 0x8]
- lsls r1, 1
- adds r1, r0
- ldrh r1, [r1]
- movs r2, 0xC0
- lsls r2, 4
- adds r0, r2, 0
- orrs r1, r0
-_08056376:
- ldr r0, _08056384 @ =0x000003ff
- cmp r1, r0
- beq _08056388
- lsrs r0, r1, 12
- b _0805638A
- .align 2, 0
-_08056380: .4byte gMapHeader
-_08056384: .4byte 0x000003ff
-_08056388:
- movs r0, 0
-_0805638A:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end MapGridGetZCoordAt
-
- thumb_func_start MapGridIsImpassableAt
-MapGridIsImpassableAt: @ 8056390
- push {r4,lr}
- adds r2, r0, 0
- adds r4, r1, 0
- cmp r2, 0
- blt _080563C0
- ldr r1, _080563BC @ =gUnknown_03004870
- ldr r3, [r1]
- cmp r2, r3
- bge _080563C0
- cmp r4, 0
- blt _080563C0
- ldr r0, [r1, 0x4]
- cmp r4, r0
- bge _080563C0
- adds r0, r3, 0
- muls r0, r4
- adds r0, r2, r0
- ldr r1, [r1, 0x8]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- b _080563E2
- .align 2, 0
-_080563BC: .4byte gUnknown_03004870
-_080563C0:
- ldr r0, _080563F4 @ =gMapHeader
- ldr r3, [r0]
- adds r1, r2, 0x1
- movs r2, 0x1
- ands r1, r2
- adds r0, r4, 0x1
- ands r0, r2
- lsls r0, 1
- adds r1, r0
- ldr r0, [r3, 0x8]
- lsls r1, 1
- adds r1, r0
- ldrh r1, [r1]
- movs r2, 0xC0
- lsls r2, 4
- adds r0, r2, 0
- orrs r1, r0
-_080563E2:
- ldr r0, _080563F8 @ =0x000003ff
- cmp r1, r0
- beq _080563FC
- movs r0, 0xC0
- lsls r0, 4
- ands r1, r0
- lsrs r0, r1, 10
- b _080563FE
- .align 2, 0
-_080563F4: .4byte gMapHeader
-_080563F8: .4byte 0x000003ff
-_080563FC:
- movs r0, 0x1
-_080563FE:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end MapGridIsImpassableAt
-
- thumb_func_start MapGridGetMetatileIdAt
-MapGridGetMetatileIdAt: @ 8056404
- push {r4-r6,lr}
- adds r5, r0, 0
- adds r6, r1, 0
- cmp r5, 0
- blt _08056434
- ldr r1, _08056430 @ =gUnknown_03004870
- ldr r2, [r1]
- cmp r5, r2
- bge _08056434
- cmp r6, 0
- blt _08056434
- ldr r0, [r1, 0x4]
- cmp r6, r0
- bge _08056434
- adds r0, r2, 0
- muls r0, r6
- adds r0, r5, r0
- ldr r1, [r1, 0x8]
- lsls r0, 1
- adds r0, r1
- ldrh r4, [r0]
- b _08056458
- .align 2, 0
-_08056430: .4byte gUnknown_03004870
-_08056434:
- ldr r0, _08056464 @ =gMapHeader
- ldr r3, [r0]
- adds r1, r5, 0x1
- movs r2, 0x1
- ands r1, r2
- adds r0, r6, 0x1
- ands r0, r2
- lsls r0, 1
- adds r1, r0
- ldr r0, [r3, 0x8]
- lsls r1, 1
- adds r1, r0
- ldrh r1, [r1]
- movs r2, 0xC0
- lsls r2, 4
- adds r0, r2, 0
- adds r4, r0, 0
- orrs r4, r1
-_08056458:
- ldr r0, _08056468 @ =0x000003ff
- cmp r4, r0
- beq _0805646C
- ands r4, r0
- adds r0, r4, 0
- b _08056490
- .align 2, 0
-_08056464: .4byte gMapHeader
-_08056468: .4byte 0x000003ff
-_0805646C:
- ldr r0, _08056498 @ =gMapHeader
- ldr r3, [r0]
- adds r1, r5, 0x1
- movs r2, 0x1
- ands r1, r2
- adds r0, r6, 0x1
- ands r0, r2
- lsls r0, 1
- adds r1, r0
- ldr r0, [r3, 0x8]
- lsls r1, 1
- adds r1, r0
- ldrh r0, [r1]
- movs r2, 0xC0
- lsls r2, 4
- adds r1, r2, 0
- orrs r0, r1
- ands r0, r4
-_08056490:
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08056498: .4byte gMapHeader
- thumb_func_end MapGridGetMetatileIdAt
-
- thumb_func_start MapGridGetMetatileBehaviorAt
-MapGridGetMetatileBehaviorAt: @ 805649C
- push {lr}
- bl MapGridGetMetatileIdAt
- lsls r0, 16
- lsrs r0, 16
- bl GetBehaviorByMetatileId
- adds r1, r0, 0
- movs r0, 0xFF
- ands r0, r1
- pop {r1}
- bx r1
- thumb_func_end MapGridGetMetatileBehaviorAt
-
- thumb_func_start MapGridGetMetatileLayerTypeAt
-MapGridGetMetatileLayerTypeAt: @ 80564B4
- push {lr}
- bl MapGridGetMetatileIdAt
- lsls r0, 16
- lsrs r0, 16
- bl GetBehaviorByMetatileId
- adds r1, r0, 0
- movs r0, 0xF0
- lsls r0, 8
- ands r0, r1
- lsrs r0, 12
- pop {r1}
- bx r1
- thumb_func_end MapGridGetMetatileLayerTypeAt
-
- thumb_func_start MapGridSetMetatileIdAt
-MapGridSetMetatileIdAt: @ 80564D0
- push {r4,r5,lr}
- adds r3, r0, 0
- lsls r2, 16
- lsrs r5, r2, 16
- cmp r3, 0
- blt _08056508
- ldr r2, _08056510 @ =gUnknown_03004870
- ldr r4, [r2]
- cmp r3, r4
- bge _08056508
- cmp r1, 0
- blt _08056508
- ldr r0, [r2, 0x4]
- cmp r1, r0
- bge _08056508
- muls r1, r4
- adds r1, r3, r1
- ldr r0, [r2, 0x8]
- lsls r1, 1
- adds r1, r0
- ldrh r0, [r1]
- movs r2, 0xF0
- lsls r2, 8
- ands r2, r0
- ldr r0, _08056514 @ =0x00000fff
- ands r0, r5
- orrs r2, r0
- strh r2, [r1]
-_08056508:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08056510: .4byte gUnknown_03004870
-_08056514: .4byte 0x00000fff
- thumb_func_end MapGridSetMetatileIdAt
-
- thumb_func_start MapGridSetMetatileEntryAt
-MapGridSetMetatileEntryAt: @ 8056518
- push {r4,r5,lr}
- adds r3, r0, 0
- lsls r2, 16
- lsrs r5, r2, 16
- cmp r3, 0
- blt _08056544
- ldr r2, _0805654C @ =gUnknown_03004870
- ldr r4, [r2]
- cmp r3, r4
- bge _08056544
- cmp r1, 0
- blt _08056544
- ldr r0, [r2, 0x4]
- cmp r1, r0
- bge _08056544
- adds r0, r4, 0
- muls r0, r1
- adds r0, r3, r0
- ldr r1, [r2, 0x8]
- lsls r0, 1
- adds r0, r1
- strh r5, [r0]
-_08056544:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0805654C: .4byte gUnknown_03004870
- thumb_func_end MapGridSetMetatileEntryAt
-
- thumb_func_start GetBehaviorByMetatileId
-GetBehaviorByMetatileId: @ 8056550
- push {lr}
- lsls r0, 16
- lsrs r2, r0, 16
- adds r3, r2, 0
- ldr r0, _0805656C @ =0x000001ff
- cmp r2, r0
- bhi _08056574
- ldr r0, _08056570 @ =gMapHeader
- ldr r0, [r0]
- ldr r0, [r0, 0x10]
- ldr r1, [r0, 0x10]
- lsls r0, r2, 1
- b _08056592
- .align 2, 0
-_0805656C: .4byte 0x000001ff
-_08056570: .4byte gMapHeader
-_08056574:
- ldr r0, _08056580 @ =0x000003ff
- cmp r2, r0
- bls _08056584
- movs r0, 0xFF
- b _08056596
- .align 2, 0
-_08056580: .4byte 0x000003ff
-_08056584:
- ldr r0, _0805659C @ =gMapHeader
- ldr r0, [r0]
- ldr r0, [r0, 0x14]
- ldr r1, [r0, 0x10]
- lsls r0, r3, 1
- adds r0, r1
- ldr r1, _080565A0 @ =0xfffffc00
-_08056592:
- adds r0, r1
- ldrh r0, [r0]
-_08056596:
- pop {r1}
- bx r1
- .align 2, 0
-_0805659C: .4byte gMapHeader
-_080565A0: .4byte 0xfffffc00
- thumb_func_end GetBehaviorByMetatileId
-
- thumb_func_start save_serialize_map
-save_serialize_map: @ 80565A4
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r5, _0805660C @ =gSaveBlock1 + 0x34
- ldr r0, _08056610 @ =gUnknown_03004870
- ldr r0, [r0]
- mov r8, r0
- adds r0, r5, 0
- subs r0, 0x34
- movs r1, 0
- ldrsh r6, [r0, r1]
- movs r2, 0x2
- ldrsh r0, [r0, r2]
- adds r1, r0, 0
- adds r1, 0xE
- cmp r0, r1
- bge _080565FE
- mov r12, r1
- ldr r1, _08056614 @ =gUnknown_02029828
- mov r9, r1
- lsls r7, r6, 1
-_080565D0:
- adds r1, r6, 0
- adds r3, r1, 0
- adds r3, 0xF
- adds r4, r0, 0x1
- cmp r1, r3
- bge _080565F8
- mov r2, r8
- muls r2, r0
- adds r0, r2, 0
- lsls r0, 1
- add r0, r9
- adds r2, r7, r0
- subs r1, r3, r1
-_080565EA:
- ldrh r0, [r2]
- strh r0, [r5]
- adds r5, 0x2
- adds r2, 0x2
- subs r1, 0x1
- cmp r1, 0
- bne _080565EA
-_080565F8:
- adds r0, r4, 0
- cmp r0, r12
- blt _080565D0
-_080565FE:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0805660C: .4byte gSaveBlock1 + 0x34
-_08056610: .4byte gUnknown_03004870
-_08056614: .4byte gUnknown_02029828
- thumb_func_end save_serialize_map
-
- thumb_func_start sub_8056618
-sub_8056618: @ 8056618
- push {r4,lr}
- movs r2, 0
- movs r1, 0
- ldr r4, _0805663C @ =gSaveBlock1 + 0x34
- ldr r3, _08056640 @ =0x000001ff
-_08056622:
- lsls r0, r1, 1
- adds r0, r4
- ldrh r0, [r0]
- orrs r2, r0
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, r3
- bls _08056622
- cmp r2, 0
- beq _08056644
- movs r0, 0
- b _08056646
- .align 2, 0
-_0805663C: .4byte gSaveBlock1 + 0x34
-_08056640: .4byte 0x000001ff
-_08056644:
- movs r0, 0x1
-_08056646:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8056618
-
- thumb_func_start sav2_mapdata_clear
-sav2_mapdata_clear: @ 805664C
- push {lr}
- sub sp, 0x4
- mov r1, sp
- movs r0, 0
- strh r0, [r1]
- ldr r1, _08056668 @ =gSaveBlock1 + 0x34
- ldr r2, _0805666C @ =0x01000100
- mov r0, sp
- bl CpuSet
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_08056668: .4byte gSaveBlock1 + 0x34
-_0805666C: .4byte 0x01000100
- thumb_func_end sav2_mapdata_clear
-
- thumb_func_start sub_8056670
-sub_8056670: @ 8056670
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r5, _080566E4 @ =gSaveBlock1 + 0x34
- bl sub_8056618
- cmp r0, 0
- bne _080566D6
- ldr r0, _080566E8 @ =gUnknown_03004870
- ldr r0, [r0]
- mov r8, r0
- adds r0, r5, 0
- subs r0, 0x34
- movs r1, 0
- ldrsh r6, [r0, r1]
- movs r2, 0x2
- ldrsh r0, [r0, r2]
- adds r1, r0, 0
- adds r1, 0xE
- cmp r0, r1
- bge _080566D2
- mov r12, r1
- ldr r1, _080566EC @ =gUnknown_02029828
- mov r9, r1
- lsls r7, r6, 1
-_080566A4:
- adds r1, r6, 0
- adds r3, r1, 0
- adds r3, 0xF
- adds r4, r0, 0x1
- cmp r1, r3
- bge _080566CC
- mov r2, r8
- muls r2, r0
- adds r0, r2, 0
- lsls r0, 1
- add r0, r9
- adds r2, r7, r0
- subs r1, r3, r1
-_080566BE:
- ldrh r0, [r5]
- strh r0, [r2]
- adds r5, 0x2
- adds r2, 0x2
- subs r1, 0x1
- cmp r1, 0
- bne _080566BE
-_080566CC:
- adds r0, r4, 0
- cmp r0, r12
- blt _080566A4
-_080566D2:
- bl sav2_mapdata_clear
-_080566D6:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080566E4: .4byte gSaveBlock1 + 0x34
-_080566E8: .4byte gUnknown_03004870
-_080566EC: .4byte gUnknown_02029828
- thumb_func_end sub_8056670
-
- thumb_func_start sub_80566F0
-sub_80566F0: @ 80566F0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- lsls r0, 24
- lsrs r1, r0, 24
- adds r2, r1, 0
- ldr r0, _08056734 @ =gSaveBlock1 + 0x34
- mov r10, r0
- ldr r0, _08056738 @ =gUnknown_03004870
- ldr r0, [r0]
- str r0, [sp]
- movs r3, 0
- mov r9, r3
- mov r8, r3
- mov r0, r10
- subs r0, 0x34
- movs r6, 0
- ldrsh r4, [r0, r6]
- str r4, [sp, 0x4]
- movs r3, 0x2
- ldrsh r5, [r0, r3]
- movs r7, 0xF
- movs r4, 0xE
- mov r12, r4
- cmp r1, 0x2
- beq _08056746
- cmp r1, 0x2
- bgt _0805673C
- cmp r1, 0x1
- beq _0805674E
- b _08056766
- .align 2, 0
-_08056734: .4byte gSaveBlock1 + 0x34
-_08056738: .4byte gUnknown_03004870
-_0805673C:
- cmp r2, 0x3
- beq _08056758
- cmp r2, 0x4
- beq _08056760
- b _08056766
-_08056746:
- adds r5, 0x1
- movs r6, 0xD
- mov r12, r6
- b _08056766
-_0805674E:
- movs r0, 0x1
- mov r8, r0
- movs r1, 0xD
- mov r12, r1
- b _08056766
-_08056758:
- ldr r3, [sp, 0x4]
- adds r3, 0x1
- str r3, [sp, 0x4]
- b _08056764
-_08056760:
- movs r4, 0x1
- mov r9, r4
-_08056764:
- movs r7, 0xE
-_08056766:
- movs r1, 0
- cmp r1, r12
- bge _080567A8
-_0805676C:
- adds r4, r1, 0x1
- cmp r7, 0
- beq _080567A2
- adds r0, r1, r5
- ldr r6, [sp]
- adds r2, r6, 0
- muls r2, r0
- add r1, r8
- lsls r0, r1, 4
- subs r0, r1
- add r0, r9
- ldr r1, [sp, 0x4]
- adds r2, r1, r2
- adds r3, r7, 0
- lsls r2, 1
- ldr r6, _080567BC @ =gUnknown_02029828
- adds r2, r6
- lsls r0, 1
- mov r6, r10
- adds r1, r0, r6
-_08056794:
- ldrh r0, [r1]
- strh r0, [r2]
- adds r1, 0x2
- adds r2, 0x2
- subs r3, 0x1
- cmp r3, 0
- bne _08056794
-_080567A2:
- adds r1, r4, 0
- cmp r1, r12
- blt _0805676C
-_080567A8:
- bl sav2_mapdata_clear
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080567BC: .4byte gUnknown_02029828
- thumb_func_end sub_80566F0
-
- thumb_func_start GetMapBorderIdAt
-GetMapBorderIdAt: @ 80567C0
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- cmp r4, 0
- blt _080567FC
- ldr r1, _080567F4 @ =gUnknown_03004870
- ldr r2, [r1]
- cmp r4, r2
- bge _080567FC
- cmp r5, 0
- blt _080567FC
- ldr r0, [r1, 0x4]
- cmp r5, r0
- bge _080567FC
- adds r0, r2, 0
- muls r0, r5
- adds r0, r4, r0
- ldr r1, [r1, 0x8]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- ldr r0, _080567F8 @ =0x000003ff
- cmp r1, r0
- beq _08056894
- b _08056824
- .align 2, 0
-_080567F4: .4byte gUnknown_03004870
-_080567F8: .4byte 0x000003ff
-_080567FC:
- ldr r0, _08056840 @ =gMapHeader
- ldr r3, [r0]
- adds r1, r4, 0x1
- movs r2, 0x1
- ands r1, r2
- adds r0, r5, 0x1
- ands r0, r2
- lsls r0, 1
- adds r1, r0
- ldr r0, [r3, 0x8]
- lsls r1, 1
- adds r1, r0
- ldrh r1, [r1]
- movs r2, 0xC0
- lsls r2, 4
- adds r0, r2, 0
- orrs r0, r1
- ldr r1, _08056844 @ =0x000003ff
- cmp r0, r1
- beq _08056894
-_08056824:
- ldr r1, _08056848 @ =gUnknown_03004870
- ldr r0, [r1]
- subs r0, 0x8
- cmp r4, r0
- blt _08056850
- ldr r0, _0805684C @ =gUnknown_0202E850
- ldrb r1, [r0]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _08056894
- movs r0, 0x4
- b _080568A6
- .align 2, 0
-_08056840: .4byte gMapHeader
-_08056844: .4byte 0x000003ff
-_08056848: .4byte gUnknown_03004870
-_0805684C: .4byte gUnknown_0202E850
-_08056850:
- cmp r4, 0x6
- bgt _08056868
- ldr r0, _08056864 @ =gUnknown_0202E850
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _08056894
- movs r0, 0x3
- b _080568A6
- .align 2, 0
-_08056864: .4byte gUnknown_0202E850
-_08056868:
- ldr r0, [r1, 0x4]
- subs r0, 0x7
- cmp r5, r0
- blt _08056884
- ldr r0, _08056880 @ =gUnknown_0202E850
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08056894
- movs r0, 0x1
- b _080568A6
- .align 2, 0
-_08056880: .4byte gUnknown_0202E850
-_08056884:
- cmp r5, 0x6
- bgt _080568A4
- ldr r0, _0805689C @ =gUnknown_0202E850
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _080568A0
-_08056894:
- movs r0, 0x1
- negs r0, r0
- b _080568A6
- .align 2, 0
-_0805689C: .4byte gUnknown_0202E850
-_080568A0:
- movs r0, 0x2
- b _080568A6
-_080568A4:
- movs r0, 0
-_080568A6:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end GetMapBorderIdAt
-
- thumb_func_start GetPostCameraMoveMapBorderId
-GetPostCameraMoveMapBorderId: @ 80568AC
- push {r4,lr}
- adds r3, r1, 0
- ldr r1, _080568D0 @ =gSaveBlock1
- movs r4, 0
- ldrsh r2, [r1, r4]
- adds r0, 0x7
- adds r2, r0
- movs r0, 0x2
- ldrsh r1, [r1, r0]
- adds r3, 0x7
- adds r1, r3
- adds r0, r2, 0
- bl GetMapBorderIdAt
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080568D0: .4byte gSaveBlock1
- thumb_func_end GetPostCameraMoveMapBorderId
-
- thumb_func_start CanCameraMoveInDirection
-CanCameraMoveInDirection: @ 80568D4
- push {r4,r5,lr}
- ldr r4, _08056908 @ =gSaveBlock1
- movs r1, 0
- ldrsh r3, [r4, r1]
- ldr r2, _0805690C @ =gUnknown_0821664C
- lsls r0, 3
- adds r1, r0, r2
- ldr r1, [r1]
- adds r1, 0x7
- adds r3, r1
- movs r5, 0x2
- ldrsh r1, [r4, r5]
- adds r2, 0x4
- adds r0, r2
- ldr r0, [r0]
- adds r0, 0x7
- adds r1, r0
- adds r0, r3, 0
- bl GetMapBorderIdAt
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- beq _08056910
- movs r0, 0x1
- b _08056912
- .align 2, 0
-_08056908: .4byte gSaveBlock1
-_0805690C: .4byte gUnknown_0821664C
-_08056910:
- movs r0, 0
-_08056912:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end CanCameraMoveInDirection
-
- thumb_func_start sub_8056918
-sub_8056918: @ 8056918
- push {r4-r7,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- adds r6, r2, 0
- adds r7, r3, 0
- bl mapconnection_get_mapheader
- adds r3, r0, 0
- cmp r4, 0x2
- beq _08056978
- cmp r4, 0x2
- bgt _08056936
- cmp r4, 0x1
- beq _08056964
- b _08056988
-_08056936:
- cmp r4, 0x3
- beq _08056950
- cmp r4, 0x4
- bne _08056988
- ldr r1, _0805694C @ =gSaveBlock1
- negs r0, r6
- strh r0, [r1]
- ldr r2, [r5, 0x4]
- ldrh r0, [r1, 0x2]
- subs r0, r2
- b _08056986
- .align 2, 0
-_0805694C: .4byte gSaveBlock1
-_08056950:
- ldr r1, _08056960 @ =gSaveBlock1
- ldr r0, [r3]
- ldr r0, [r0]
- strh r0, [r1]
- ldr r2, [r5, 0x4]
- ldrh r0, [r1, 0x2]
- subs r0, r2
- b _08056986
- .align 2, 0
-_08056960: .4byte gSaveBlock1
-_08056964:
- ldr r1, _08056974 @ =gSaveBlock1
- ldr r2, [r5, 0x4]
- ldrh r0, [r1]
- subs r0, r2
- strh r0, [r1]
- negs r0, r7
- b _08056986
- .align 2, 0
-_08056974: .4byte gSaveBlock1
-_08056978:
- ldr r1, _08056990 @ =gSaveBlock1
- ldr r2, [r5, 0x4]
- ldrh r0, [r1]
- subs r0, r2
- strh r0, [r1]
- ldr r0, [r3]
- ldr r0, [r0, 0x4]
-_08056986:
- strh r0, [r1, 0x2]
-_08056988:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08056990: .4byte gSaveBlock1
- thumb_func_end sub_8056918
-
- thumb_func_start CameraMove
-CameraMove: @ 8056994
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- mov r10, r0
- str r1, [sp]
- ldr r1, _080569D4 @ =gUnknown_0202E844
- ldrb r0, [r1]
- movs r1, 0x2
- negs r1, r1
- ands r1, r0
- ldr r2, _080569D4 @ =gUnknown_0202E844
- strb r1, [r2]
- mov r0, r10
- ldr r1, [sp]
- bl GetPostCameraMoveMapBorderId
- adds r7, r0, 0
- adds r0, r7, 0x1
- cmp r0, 0x1
- bhi _080569DC
- ldr r0, _080569D8 @ =gSaveBlock1
- ldrh r1, [r0]
- add r1, r10
- strh r1, [r0]
- ldrh r1, [r0, 0x2]
- ldr r2, [sp]
- adds r1, r2
- strh r1, [r0, 0x2]
- b _08056A42
- .align 2, 0
-_080569D4: .4byte gUnknown_0202E844
-_080569D8: .4byte gSaveBlock1
-_080569DC:
- bl save_serialize_map
- ldr r5, _08056A5C @ =gSaveBlock1
- movs r0, 0
- ldrsh r6, [r5, r0]
- movs r2, 0x2
- ldrsh r1, [r5, r2]
- mov r8, r1
- lsls r0, r7, 24
- lsrs r0, 24
- mov r9, r0
- adds r1, r6, 0
- mov r2, r8
- bl sub_8056A64
- adds r4, r0, 0
- adds r1, r7, 0
- mov r2, r10
- ldr r3, [sp]
- bl sub_8056918
- ldrb r0, [r4, 0x8]
- ldrb r1, [r4, 0x9]
- bl sub_80538F0
- ldr r1, _08056A60 @ =gUnknown_0202E844
- ldrb r0, [r1]
- movs r1, 0x1
- orrs r0, r1
- ldr r2, _08056A60 @ =gUnknown_0202E844
- strb r0, [r2]
- movs r1, 0
- ldrsh r0, [r5, r1]
- subs r6, r0
- str r6, [r2, 0x4]
- movs r2, 0x2
- ldrsh r0, [r5, r2]
- mov r1, r8
- subs r1, r0
- ldr r2, _08056A60 @ =gUnknown_0202E844
- str r1, [r2, 0x8]
- ldrh r0, [r5]
- add r0, r10
- strh r0, [r5]
- ldrh r0, [r5, 0x2]
- ldr r1, [sp]
- adds r0, r1
- strh r0, [r5, 0x2]
- mov r0, r9
- bl sub_80566F0
-_08056A42:
- ldr r0, _08056A60 @ =gUnknown_0202E844
- ldrb r0, [r0]
- lsls r0, 31
- lsrs r0, 31
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08056A5C: .4byte gSaveBlock1
-_08056A60: .4byte gUnknown_0202E844
- thumb_func_end CameraMove
-
- thumb_func_start sub_8056A64
-sub_8056A64: @ 8056A64
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- mov r9, r1
- mov r8, r2
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, _08056AA0 @ =gMapHeader
- ldr r0, [r0, 0xC]
- ldr r7, [r0]
- ldr r4, [r0, 0x4]
- movs r5, 0
- cmp r5, r7
- bge _08056AAC
-_08056A82:
- ldrb r0, [r4]
- cmp r0, r6
- bne _08056AA4
- adds r0, r6, 0
- mov r1, r9
- mov r2, r8
- adds r3, r4, 0
- bl sub_8056ABC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08056AA4
- adds r0, r4, 0
- b _08056AAE
- .align 2, 0
-_08056AA0: .4byte gMapHeader
-_08056AA4:
- adds r5, 0x1
- adds r4, 0xC
- cmp r5, r7
- blt _08056A82
-_08056AAC:
- movs r0, 0
-_08056AAE:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8056A64
-
- thumb_func_start sub_8056ABC
-sub_8056ABC: @ 8056ABC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r7, r1, 0
- mov r8, r2
- adds r5, r3, 0
- lsls r0, 24
- lsrs r4, r0, 24
- adds r6, r4, 0
- adds r0, r5, 0
- bl mapconnection_get_mapheader
- adds r2, r0, 0
- cmp r4, 0x1
- blt _08056B14
- cmp r4, 0x2
- bgt _08056AF4
- ldr r0, _08056AF0 @ =gMapHeader
- ldr r0, [r0]
- ldr r1, [r0]
- ldr r0, [r2]
- ldr r2, [r0]
- ldr r3, [r5, 0x4]
- adds r0, r7, 0
- b _08056B06
- .align 2, 0
-_08056AF0: .4byte gMapHeader
-_08056AF4:
- cmp r6, 0x4
- bgt _08056B14
- ldr r0, _08056B10 @ =gMapHeader
- ldr r0, [r0]
- ldr r1, [r0, 0x4]
- ldr r0, [r2]
- ldr r2, [r0, 0x4]
- ldr r3, [r5, 0x4]
- mov r0, r8
-_08056B06:
- bl sub_8056B20
- lsls r0, 24
- lsrs r0, 24
- b _08056B16
- .align 2, 0
-_08056B10: .4byte gMapHeader
-_08056B14:
- movs r0, 0
-_08056B16:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8056ABC
-
- thumb_func_start sub_8056B20
-sub_8056B20: @ 8056B20
- push {r4,lr}
- adds r4, r0, 0
- adds r0, r2, 0
- adds r2, r3, 0
- cmp r3, 0
- bge _08056B2E
- movs r3, 0
-_08056B2E:
- adds r2, r0, r2
- cmp r2, r1
- bge _08056B36
- adds r1, r2, 0
-_08056B36:
- cmp r3, r4
- bgt _08056B42
- cmp r4, r1
- bgt _08056B42
- movs r0, 0x1
- b _08056B44
-_08056B42:
- movs r0, 0
-_08056B44:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8056B20
-
- thumb_func_start sub_8056B4C
-sub_8056B4C: @ 8056B4C
- push {lr}
- cmp r0, 0
- blt _08056B5A
- cmp r0, r1
- bge _08056B5A
- movs r0, 0x1
- b _08056B5C
-_08056B5A:
- movs r0, 0
-_08056B5C:
- pop {r1}
- bx r1
- thumb_func_end sub_8056B4C
-
- thumb_func_start sub_8056B60
-sub_8056B60: @ 8056B60
- push {r4-r6,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r6, r2, 0
- bl mapconnection_get_mapheader
- adds r1, r0, 0
- ldrb r0, [r4]
- cmp r0, 0x1
- blt _08056B98
- cmp r0, 0x2
- bgt _08056B86
- ldr r0, [r4, 0x4]
- subs r0, r5, r0
- ldr r1, [r1]
- ldr r1, [r1]
- bl sub_8056B4C
- b _08056B9A
-_08056B86:
- cmp r0, 0x4
- bgt _08056B98
- ldr r0, [r4, 0x4]
- subs r0, r6, r0
- ldr r1, [r1]
- ldr r1, [r1, 0x4]
- bl sub_8056B4C
- b _08056B9A
-_08056B98:
- movs r0, 0
-_08056B9A:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_8056B60
-
- thumb_func_start sub_8056BA0
-sub_8056BA0: @ 8056BA0
- 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
- lsls r1, 16
- lsrs r1, 16
- ldr r2, _08056BC0 @ =gMapHeader
- ldr r0, [r2, 0xC]
- cmp r0, 0
- bne _08056BC8
- b _08056C3E
- .align 2, 0
-_08056BC0: .4byte gMapHeader
-_08056BC4:
- adds r0, r4, 0
- b _08056C40
-_08056BC8:
- ldr r7, [r0]
- ldr r4, [r0, 0x4]
- movs r6, 0
- cmp r6, r7
- bge _08056C3E
- lsls r0, r1, 16
- asrs r5, r0, 16
- mov r9, r2
- mov r1, r8
- lsls r0, r1, 16
- asrs r0, 16
- mov r10, r0
-_08056BE0:
- ldrb r1, [r4]
- adds r3, r1, 0
- subs r0, r1, 0x5
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bls _08056C36
- cmp r1, 0x2
- bne _08056BF6
- cmp r5, 0x6
- bgt _08056C36
-_08056BF6:
- cmp r1, 0x1
- bne _08056C06
- mov r2, r9
- ldr r0, [r2]
- ldr r0, [r0, 0x4]
- adds r0, 0x7
- cmp r5, r0
- blt _08056C36
-_08056C06:
- mov r0, r8
- lsls r2, r0, 16
- cmp r1, 0x3
- bne _08056C14
- mov r1, r10
- cmp r1, 0x6
- bgt _08056C36
-_08056C14:
- cmp r3, 0x4
- bne _08056C26
- asrs r1, r2, 16
- mov r3, r9
- ldr r0, [r3]
- ldr r0, [r0]
- adds r0, 0x7
- cmp r1, r0
- blt _08056C36
-_08056C26:
- asrs r1, r2, 16
- subs r1, 0x7
- adds r0, r4, 0
- subs r2, r5, 0x7
- bl sub_8056B60
- cmp r0, 0x1
- beq _08056BC4
-_08056C36:
- adds r6, 0x1
- adds r4, 0xC
- cmp r6, r7
- blt _08056BE0
-_08056C3E:
- movs r0, 0
-_08056C40:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8056BA0
-
- thumb_func_start sub_8056C50
-sub_8056C50: @ 8056C50
- lsls r0, 16
- lsrs r0, 16
- lsls r1, 16
- lsrs r1, 16
- ldr r2, _08056C64 @ =gSaveBlock1
- subs r0, 0x7
- strh r0, [r2]
- subs r1, 0x7
- strh r1, [r2, 0x2]
- bx lr
- .align 2, 0
-_08056C64: .4byte gSaveBlock1
- thumb_func_end sub_8056C50
-
- thumb_func_start sav1_camera_get_focus_coords
-sav1_camera_get_focus_coords: @ 8056C68
- ldr r3, _08056C78 @ =gSaveBlock1
- ldrh r2, [r3]
- adds r2, 0x7
- strh r2, [r0]
- ldrh r0, [r3, 0x2]
- adds r0, 0x7
- strh r0, [r1]
- bx lr
- .align 2, 0
-_08056C78: .4byte gSaveBlock1
- thumb_func_end sav1_camera_get_focus_coords
-
- thumb_func_start unref_sub_8056C7C
-unref_sub_8056C7C: @ 8056C7C
- ldr r2, _08056C84 @ =gSaveBlock1
- strh r0, [r2]
- strh r1, [r2, 0x2]
- bx lr
- .align 2, 0
-_08056C84: .4byte gSaveBlock1
- thumb_func_end unref_sub_8056C7C
-
- thumb_func_start GetCameraCoords
-GetCameraCoords: @ 8056C88
- ldr r3, _08056C94 @ =gSaveBlock1
- ldrh r2, [r3]
- strh r2, [r0]
- ldrh r0, [r3, 0x2]
- strh r0, [r1]
- bx lr
- .align 2, 0
-_08056C94: .4byte gSaveBlock1
- thumb_func_end GetCameraCoords
-
- thumb_func_start sub_8056C98
-sub_8056C98: @ 8056C98
- push {lr}
- adds r2, r0, 0
- cmp r2, 0
- beq _08056CB8
- ldrb r0, [r2]
- cmp r0, 0
- bne _08056CB2
- ldr r0, [r2, 0x4]
- movs r2, 0x80
- lsls r2, 5
- bl CpuFastSet
- b _08056CB8
-_08056CB2:
- ldr r0, [r2, 0x4]
- bl LZ77UnCompVram
-_08056CB8:
- pop {r0}
- bx r0
- thumb_func_end sub_8056C98
-
- thumb_func_start sub_8056CBC
-sub_8056CBC: @ 8056CBC
- push {r4-r6,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- adds r6, r2, 0
- cmp r4, 0
- beq _08056D1E
- ldrb r1, [r4, 0x1]
- cmp r1, 0
- bne _08056CEE
- mov r0, sp
- strh r1, [r0]
- lsls r1, r5, 16
- lsrs r1, 16
- movs r2, 0x2
- bl LoadPalette
- ldr r0, [r4, 0x8]
- adds r0, 0x2
- adds r1, r5, 0x1
- lsls r1, 16
- lsrs r1, 16
- subs r2, r6, 0x2
- lsls r2, 16
- b _08056CFC
-_08056CEE:
- cmp r1, 0x1
- bne _08056D04
- ldr r0, [r4, 0x8]
- adds r0, 0xC0
- lsls r1, r5, 16
- lsrs r1, 16
- lsls r2, r6, 16
-_08056CFC:
- lsrs r2, 16
- bl LoadPalette
- b _08056D1E
-_08056D04:
- ldr r0, [r4, 0x8]
- movs r4, 0x80
- lsls r4, 18
- adds r1, r4, 0
- bl LZ77UnCompVram
- lsls r1, r5, 16
- lsrs r1, 16
- lsls r2, r6, 16
- lsrs r2, 16
- adds r0, r4, 0
- bl LoadPalette
-_08056D1E:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8056CBC
-
- thumb_func_start sub_8056D28
-sub_8056D28: @ 8056D28
- push {lr}
- movs r1, 0xC0
- lsls r1, 19
- ldr r0, [r0, 0x10]
- bl sub_8056C98
- pop {r0}
- bx r0
- thumb_func_end sub_8056D28
-
- thumb_func_start sub_8056D38
-sub_8056D38: @ 8056D38
- push {lr}
- ldr r1, _08056D48 @ =0x06004000
- ldr r0, [r0, 0x14]
- bl sub_8056C98
- pop {r0}
- bx r0
- .align 2, 0
-_08056D48: .4byte 0x06004000
- thumb_func_end sub_8056D38
-
- thumb_func_start apply_map_tileset1_palette
-apply_map_tileset1_palette: @ 8056D4C
- push {lr}
- ldr r0, [r0, 0x10]
- movs r1, 0
- movs r2, 0xC0
- bl sub_8056CBC
- pop {r0}
- bx r0
- thumb_func_end apply_map_tileset1_palette
-
- thumb_func_start apply_map_tileset2_palette
-apply_map_tileset2_palette: @ 8056D5C
- push {lr}
- ldr r0, [r0, 0x14]
- movs r1, 0x60
- movs r2, 0xC0
- bl sub_8056CBC
- pop {r0}
- bx r0
- thumb_func_end apply_map_tileset2_palette
-
- thumb_func_start copy_map_tileset1_tileset2_to_vram
-copy_map_tileset1_tileset2_to_vram: @ 8056D6C
- push {r4,lr}
- adds r4, r0, 0
- cmp r4, 0
- beq _08056D7E
- bl sub_8056D28
- adds r0, r4, 0
- bl sub_8056D38
-_08056D7E:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end copy_map_tileset1_tileset2_to_vram
-
- thumb_func_start apply_map_tileset1_tileset2_palette
-apply_map_tileset1_tileset2_palette: @ 8056D84
- push {r4,lr}
- adds r4, r0, 0
- cmp r4, 0
- beq _08056D96
- bl apply_map_tileset1_palette
- adds r0, r4, 0
- bl apply_map_tileset2_palette
-_08056D96:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end apply_map_tileset1_tileset2_palette
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/fldeff_80C5CD4.s b/asm/fldeff_80C5CD4.s
index cab7524b2..4214f8f9e 100644
--- a/asm/fldeff_80C5CD4.s
+++ b/asm/fldeff_80C5CD4.s
@@ -808,7 +808,7 @@ SetUpFieldMove_SecretPower: @ 80C62C4
lsls r0, 24
lsrs r4, r0, 24
adds r0, r4, 0
- bl sub_80571EC
+ bl MetatileBehavior_IsSecretBaseCave
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -829,7 +829,7 @@ _080C6328: .4byte gUnknown_03005CE4
_080C632C: .4byte sub_80C639C
_080C6330:
adds r0, r4, 0
- bl sub_805720C
+ bl MetatileBehavior_IsSecretBaseTree
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -848,7 +848,7 @@ _080C6358: .4byte gUnknown_03005CE4
_080C635C: .4byte sub_80C64A8
_080C6360:
adds r0, r4, 0
- bl is_tile_x98
+ bl MetatileBehavior_IsSecretBaseShrub
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
diff --git a/asm/fldeff_cut.s b/asm/fldeff_cut.s
new file mode 100644
index 000000000..a56ad32fa
--- /dev/null
+++ b/asm/fldeff_cut.s
@@ -0,0 +1,797 @@
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start SetUpFieldMove_Cut
+SetUpFieldMove_Cut: @ 80A2504
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ movs r0, 0x52
+ bl npc_before_player_of_type
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080A2534
+ ldr r1, _080A2524 @ =gUnknown_0300485C
+ ldr r0, _080A2528 @ =sub_808AB90
+ str r0, [r1]
+ ldr r1, _080A252C @ =gUnknown_03005CE4
+ ldr r0, _080A2530 @ =sub_80A2634
+ b _080A25A8
+ .align 2, 0
+_080A2524: .4byte gUnknown_0300485C
+_080A2528: .4byte sub_808AB90
+_080A252C: .4byte gUnknown_03005CE4
+_080A2530: .4byte sub_80A2634
+_080A2534:
+ ldr r4, _080A25B0 @ =gUnknown_0203923C
+ adds r1, r4, 0x2
+ adds r0, r4, 0
+ bl PlayerGetDestCoords
+ movs r7, 0
+ mov r8, r4
+_080A2542:
+ ldr r1, _080A25B4 @ =0x0000ffff
+ adds r0, r7, r1
+ mov r2, r8
+ ldrh r2, [r2, 0x2]
+ adds r0, r2
+ movs r6, 0
+ lsls r0, 16
+ asrs r5, r0, 16
+_080A2552:
+ ldr r1, _080A25B4 @ =0x0000ffff
+ adds r0, r6, r1
+ mov r2, r8
+ ldrh r2, [r2]
+ adds r0, r2
+ lsls r0, 16
+ asrs r4, r0, 16
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl MapGridGetZCoordAt
+ lsls r0, 24
+ lsrs r0, 24
+ mov r2, r8
+ movs r1, 0x4
+ ldrsb r1, [r2, r1]
+ cmp r0, r1
+ bne _080A25C8
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl MapGridGetMetatileBehaviorAt
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r0, r4, 0
+ bl MetatileBehavior_IsPokeGrass
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080A259E
+ adds r0, r4, 0
+ bl MetatileBehavior_IsAsh
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080A25C8
+_080A259E:
+ ldr r1, _080A25B8 @ =gUnknown_0300485C
+ ldr r0, _080A25BC @ =sub_808AB90
+ str r0, [r1]
+ ldr r1, _080A25C0 @ =gUnknown_03005CE4
+ ldr r0, _080A25C4 @ =sub_80A25E8
+_080A25A8:
+ str r0, [r1]
+ movs r0, 0x1
+ b _080A25DE
+ .align 2, 0
+_080A25B0: .4byte gUnknown_0203923C
+_080A25B4: .4byte 0x0000ffff
+_080A25B8: .4byte gUnknown_0300485C
+_080A25BC: .4byte sub_808AB90
+_080A25C0: .4byte gUnknown_03005CE4
+_080A25C4: .4byte sub_80A25E8
+_080A25C8:
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0x2
+ bls _080A2552
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ cmp r7, 0x2
+ bls _080A2542
+ movs r0, 0
+_080A25DE:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end SetUpFieldMove_Cut
+
+ thumb_func_start sub_80A25E8
+sub_80A25E8: @ 80A25E8
+ push {lr}
+ movs r0, 0x1
+ bl FieldEffectStart
+ ldr r0, _080A25FC @ =gUnknown_0202FF84
+ ldr r1, _080A2600 @ =gUnknown_03005CE0
+ ldrb r1, [r1]
+ str r1, [r0]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A25FC: .4byte gUnknown_0202FF84
+_080A2600: .4byte gUnknown_03005CE0
+ thumb_func_end sub_80A25E8
+
+ thumb_func_start FldEff_UseCutOnGrass
+FldEff_UseCutOnGrass: @ 80A2604
+ push {lr}
+ bl oei_task_add
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080A262C @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r2, _080A2630 @ =sub_80A2684
+ lsrs r0, r2, 16
+ strh r0, [r1, 0x18]
+ strh r2, [r1, 0x1A]
+ movs r0, 0x12
+ bl IncrementGameStat
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080A262C: .4byte gTasks
+_080A2630: .4byte sub_80A2684
+ thumb_func_end FldEff_UseCutOnGrass
+
+ thumb_func_start sub_80A2634
+sub_80A2634: @ 80A2634
+ push {lr}
+ ldr r1, _080A2648 @ =gUnknown_0202FF84
+ ldr r0, _080A264C @ =gUnknown_03005CE0
+ ldrb r0, [r0]
+ str r0, [r1]
+ ldr r0, _080A2650 @ =UseCutScript
+ bl ScriptContext1_SetupScript
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A2648: .4byte gUnknown_0202FF84
+_080A264C: .4byte gUnknown_03005CE0
+_080A2650: .4byte UseCutScript
+ thumb_func_end sub_80A2634
+
+ thumb_func_start FldEff_UseCutOnTree
+FldEff_UseCutOnTree: @ 80A2654
+ push {lr}
+ bl oei_task_add
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080A267C @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r2, _080A2680 @ =sub_80A2B00
+ lsrs r0, r2, 16
+ strh r0, [r1, 0x18]
+ strh r2, [r1, 0x1A]
+ movs r0, 0x12
+ bl IncrementGameStat
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080A267C: .4byte gTasks
+_080A2680: .4byte sub_80A2B00
+ thumb_func_end FldEff_UseCutOnTree
+
+ thumb_func_start sub_80A2684
+sub_80A2684: @ 80A2684
+ push {lr}
+ movs r0, 0x1
+ bl FieldEffectActiveListRemove
+ movs r0, 0x3A
+ bl FieldEffectStart
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A2684
+
+ thumb_func_start FldEff_CutGrass
+FldEff_CutGrass: @ 80A2698
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ movs r7, 0
+ movs r0, 0x80
+ bl PlaySE
+ ldr r4, _080A2790 @ =gUnknown_0203923C
+ adds r1, r4, 0x2
+ adds r0, r4, 0
+ bl PlayerGetDestCoords
+ mov r8, r4
+_080A26B2:
+ ldr r1, _080A2794 @ =0x0000ffff
+ adds r0, r7, r1
+ mov r2, r8
+ ldrh r2, [r2, 0x2]
+ adds r0, r2
+ movs r6, 0
+ lsls r0, 16
+ asrs r5, r0, 16
+_080A26C2:
+ ldr r1, _080A2794 @ =0x0000ffff
+ adds r0, r6, r1
+ mov r2, r8
+ ldrh r2, [r2]
+ adds r0, r2
+ lsls r0, 16
+ asrs r4, r0, 16
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl MapGridGetZCoordAt
+ lsls r0, 24
+ lsrs r0, 24
+ mov r2, r8
+ movs r1, 0x4
+ ldrsb r1, [r2, r1]
+ cmp r0, r1
+ bne _080A270E
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl MapGridGetMetatileBehaviorAt
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80578F8
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080A270E
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80A27A8
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_805BCC0
+_080A270E:
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0x2
+ bls _080A26C2
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ cmp r7, 0x2
+ bls _080A26B2
+ ldr r1, _080A2790 @ =gUnknown_0203923C
+ ldrh r0, [r1]
+ subs r0, 0x1
+ lsls r0, 16
+ asrs r0, 16
+ ldrh r1, [r1, 0x2]
+ subs r1, 0x2
+ lsls r1, 16
+ asrs r1, 16
+ bl sub_80A28F4
+ bl DrawWholeMapView
+ movs r7, 0
+ ldr r4, _080A2798 @ =gSprites
+_080A2740:
+ ldr r0, _080A279C @ =gPlayerAvatar
+ ldrb r1, [r0, 0x4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrh r1, [r0, 0x2]
+ lsls r1, 23
+ lsrs r1, 7
+ movs r2, 0x80
+ lsls r2, 12
+ adds r1, r2
+ asrs r1, 16
+ ldrb r2, [r0]
+ adds r2, 0x14
+ ldr r0, _080A27A0 @ =gSpriteTemplate_CutGrass
+ movs r3, 0
+ bl CreateSprite
+ ldr r1, _080A27A4 @ =0x0201fff0
+ adds r1, r7, r1
+ strb r0, [r1]
+ ldrb r1, [r1]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ lsls r1, r7, 5
+ strh r1, [r0, 0x32]
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ cmp r7, 0x7
+ bls _080A2740
+ movs r0, 0
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080A2790: .4byte gUnknown_0203923C
+_080A2794: .4byte 0x0000ffff
+_080A2798: .4byte gSprites
+_080A279C: .4byte gPlayerAvatar
+_080A27A0: .4byte gSpriteTemplate_CutGrass
+_080A27A4: .4byte 0x0201fff0
+ thumb_func_end FldEff_CutGrass
+
+ thumb_func_start sub_80A27A8
+sub_80A27A8: @ 80A27A8
+ push {r4-r7,lr}
+ lsls r0, 16
+ lsls r1, 16
+ lsrs r6, r0, 16
+ asrs r4, r0, 16
+ lsrs r7, r1, 16
+ asrs r5, r1, 16
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl MapGridGetMetatileIdAt
+ adds r1, r0, 0
+ ldr r0, _080A27E0 @ =0x00000207
+ cmp r1, r0
+ bgt _080A27F4
+ subs r0, 0x1
+ cmp r1, r0
+ bge _080A286C
+ cmp r1, 0x25
+ beq _080A288E
+ cmp r1, 0x25
+ bgt _080A27E4
+ cmp r1, 0xD
+ beq _080A2834
+ cmp r1, 0x15
+ beq _080A2834
+ b _080A2898
+ .align 2, 0
+_080A27E0: .4byte 0x00000207
+_080A27E4:
+ movs r0, 0xE3
+ lsls r0, 1
+ cmp r1, r0
+ beq _080A2844
+ adds r0, 0x1
+ cmp r1, r0
+ beq _080A284A
+ b _080A2898
+_080A27F4:
+ ldr r0, _080A280C @ =0x00000212
+ cmp r1, r0
+ beq _080A287C
+ cmp r1, r0
+ bgt _080A2810
+ subs r0, 0xA
+ cmp r1, r0
+ beq _080A2834
+ adds r0, 0x2
+ cmp r1, r0
+ beq _080A287C
+ b _080A2898
+ .align 2, 0
+_080A280C: .4byte 0x00000212
+_080A2810:
+ ldr r0, _080A2824 @ =0x00000282
+ cmp r1, r0
+ beq _080A285C
+ cmp r1, r0
+ bgt _080A2828
+ subs r0, 0x1
+ cmp r1, r0
+ beq _080A2854
+ b _080A2898
+ .align 2, 0
+_080A2824: .4byte 0x00000282
+_080A2828:
+ ldr r0, _080A2830 @ =0x00000283
+ cmp r1, r0
+ beq _080A2864
+ b _080A2898
+ .align 2, 0
+_080A2830: .4byte 0x00000283
+_080A2834:
+ lsls r0, r6, 16
+ asrs r0, 16
+ lsls r1, r7, 16
+ asrs r1, 16
+ movs r2, 0x1
+ bl MapGridSetMetatileIdAt
+ b _080A2898
+_080A2844:
+ movs r2, 0xE7
+ lsls r2, 1
+ b _080A286E
+_080A284A:
+ ldr r2, _080A2850 @ =0x000001cf
+ b _080A286E
+ .align 2, 0
+_080A2850: .4byte 0x000001cf
+_080A2854:
+ ldr r2, _080A2858 @ =0x00000279
+ b _080A286E
+ .align 2, 0
+_080A2858: .4byte 0x00000279
+_080A285C:
+ ldr r2, _080A2860 @ =0x0000027a
+ b _080A286E
+ .align 2, 0
+_080A2860: .4byte 0x0000027a
+_080A2864:
+ ldr r2, _080A2868 @ =0x0000027b
+ b _080A286E
+ .align 2, 0
+_080A2868: .4byte 0x0000027b
+_080A286C:
+ ldr r2, _080A2878 @ =0x00000271
+_080A286E:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl MapGridSetMetatileIdAt
+ b _080A2898
+ .align 2, 0
+_080A2878: .4byte 0x00000271
+_080A287C:
+ lsls r0, r6, 16
+ asrs r0, 16
+ lsls r1, r7, 16
+ asrs r1, 16
+ movs r2, 0x86
+ lsls r2, 2
+ bl MapGridSetMetatileIdAt
+ b _080A2898
+_080A288E:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0xE
+ bl MapGridSetMetatileIdAt
+_080A2898:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A27A8
+
+ thumb_func_start sub_80A28A0
+sub_80A28A0: @ 80A28A0
+ push {lr}
+ lsls r0, 16
+ asrs r0, 16
+ lsls r1, 16
+ asrs r1, 16
+ bl MapGridGetMetatileIdAt
+ lsls r0, 16
+ lsrs r1, r0, 16
+ adds r2, r1, 0
+ cmp r1, 0x1
+ bne _080A28BC
+ movs r0, 0x1
+ b _080A28EE
+_080A28BC:
+ ldr r0, _080A28C8 @ =0x00000279
+ cmp r1, r0
+ bne _080A28CC
+ movs r0, 0x2
+ b _080A28EE
+ .align 2, 0
+_080A28C8: .4byte 0x00000279
+_080A28CC:
+ ldr r0, _080A28D8 @ =0x0000027a
+ cmp r1, r0
+ bne _080A28DC
+ movs r0, 0x3
+ b _080A28EE
+ .align 2, 0
+_080A28D8: .4byte 0x0000027a
+_080A28DC:
+ ldr r0, _080A28E8 @ =0x0000027b
+ cmp r2, r0
+ beq _080A28EC
+ movs r0, 0
+ b _080A28EE
+ .align 2, 0
+_080A28E8: .4byte 0x0000027b
+_080A28EC:
+ movs r0, 0x4
+_080A28EE:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80A28A0
+
+ thumb_func_start sub_80A28F4
+sub_80A28F4: @ 80A28F4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 16
+ lsrs r0, 16
+ mov r10, r0
+ lsls r1, 16
+ movs r2, 0xC0
+ lsls r2, 10
+ adds r0, r1, r2
+ lsrs r0, 16
+ mov r9, r0
+ movs r4, 0
+ asrs r7, r1, 16
+_080A2914:
+ mov r1, r10
+ lsls r0, r1, 16
+ asrs r0, 16
+ lsls r4, 16
+ asrs r1, r4, 16
+ adds r0, r1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ asrs r5, r0, 16
+ adds r0, r5, 0
+ adds r1, r7, 0
+ bl MapGridGetMetatileIdAt
+ mov r8, r4
+ cmp r0, 0x15
+ bne _080A2996
+ adds r4, r7, 0x1
+ lsls r1, r4, 16
+ asrs r1, 16
+ adds r0, r5, 0
+ bl sub_80A28A0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ beq _080A296A
+ cmp r0, 0x2
+ bgt _080A2952
+ cmp r0, 0x1
+ beq _080A295C
+ b _080A2996
+_080A2952:
+ cmp r0, 0x3
+ beq _080A297C
+ cmp r0, 0x4
+ beq _080A298C
+ b _080A2996
+_080A295C:
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r2, 0x82
+ lsls r2, 2
+ bl MapGridSetMetatileIdAt
+ b _080A2996
+_080A296A:
+ adds r0, r5, 0
+ adds r1, r4, 0
+ ldr r2, _080A2978 @ =0x00000281
+ bl MapGridSetMetatileIdAt
+ b _080A2996
+ .align 2, 0
+_080A2978: .4byte 0x00000281
+_080A297C:
+ adds r0, r5, 0
+ adds r1, r4, 0
+ ldr r2, _080A2988 @ =0x00000282
+ bl MapGridSetMetatileIdAt
+ b _080A2996
+ .align 2, 0
+_080A2988: .4byte 0x00000282
+_080A298C:
+ adds r0, r5, 0
+ adds r1, r4, 0
+ ldr r2, _080A2A30 @ =0x00000283
+ bl MapGridSetMetatileIdAt
+_080A2996:
+ lsls r0, r6, 16
+ asrs r5, r0, 16
+ mov r2, r9
+ lsls r0, r2, 16
+ asrs r4, r0, 16
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl MapGridGetMetatileIdAt
+ cmp r0, 0x1
+ bne _080A2A10
+ adds r4, 0x1
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl MapGridGetMetatileIdAt
+ movs r1, 0x82
+ lsls r1, 2
+ cmp r0, r1
+ bne _080A29C8
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r2, 0x1
+ bl MapGridSetMetatileIdAt
+_080A29C8:
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl MapGridGetMetatileIdAt
+ ldr r1, _080A2A34 @ =0x00000281
+ cmp r0, r1
+ bne _080A29E0
+ adds r0, r5, 0
+ adds r1, r4, 0
+ ldr r2, _080A2A38 @ =0x00000279
+ bl MapGridSetMetatileIdAt
+_080A29E0:
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl MapGridGetMetatileIdAt
+ ldr r1, _080A2A3C @ =0x00000282
+ cmp r0, r1
+ bne _080A29F8
+ adds r0, r5, 0
+ adds r1, r4, 0
+ ldr r2, _080A2A40 @ =0x0000027a
+ bl MapGridSetMetatileIdAt
+_080A29F8:
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl MapGridGetMetatileIdAt
+ ldr r1, _080A2A30 @ =0x00000283
+ cmp r0, r1
+ bne _080A2A10
+ adds r0, r5, 0
+ adds r1, r4, 0
+ ldr r2, _080A2A44 @ =0x0000027b
+ bl MapGridSetMetatileIdAt
+_080A2A10:
+ movs r0, 0x80
+ lsls r0, 9
+ add r0, r8
+ lsrs r4, r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ bgt _080A2A20
+ b _080A2914
+_080A2A20:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A2A30: .4byte 0x00000283
+_080A2A34: .4byte 0x00000281
+_080A2A38: .4byte 0x00000279
+_080A2A3C: .4byte 0x00000282
+_080A2A40: .4byte 0x0000027a
+_080A2A44: .4byte 0x0000027b
+ thumb_func_end sub_80A28F4
+
+ thumb_func_start sub_80A2A48
+sub_80A2A48: @ 80A2A48
+ movs r2, 0
+ movs r1, 0x8
+ strh r1, [r0, 0x2E]
+ strh r2, [r0, 0x30]
+ strh r2, [r0, 0x34]
+ ldr r1, _080A2A58 @ =objc_8097BBC
+ str r1, [r0, 0x1C]
+ bx lr
+ .align 2, 0
+_080A2A58: .4byte objc_8097BBC
+ thumb_func_end sub_80A2A48
+
+ thumb_func_start objc_8097BBC
+objc_8097BBC: @ 80A2A5C
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x32
+ ldrsh r0, [r4, r1]
+ movs r2, 0x2E
+ ldrsh r1, [r4, r2]
+ bl Sin
+ strh r0, [r4, 0x24]
+ movs r1, 0x32
+ ldrsh r0, [r4, r1]
+ movs r2, 0x2E
+ ldrsh r1, [r4, r2]
+ bl Cos
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x8
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x32]
+ ldrh r1, [r4, 0x2E]
+ adds r1, 0x1
+ ldrh r2, [r4, 0x34]
+ lsls r0, r2, 16
+ asrs r0, 18
+ adds r1, r0
+ strh r1, [r4, 0x2E]
+ adds r2, 0x1
+ strh r2, [r4, 0x34]
+ ldrh r1, [r4, 0x30]
+ movs r2, 0x30
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x1C
+ beq _080A2AA8
+ adds r0, r1, 0x1
+ strh r0, [r4, 0x30]
+ b _080A2AAC
+_080A2AA8:
+ ldr r0, _080A2AB4 @ =sub_80A2AB8
+ str r0, [r4, 0x1C]
+_080A2AAC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A2AB4: .4byte sub_80A2AB8
+ thumb_func_end objc_8097BBC
+
+ thumb_func_start sub_80A2AB8
+sub_80A2AB8: @ 80A2AB8
+ push {r4-r6,lr}
+ movs r4, 0x1
+_080A2ABC:
+ ldr r6, _080A2AF8 @ =0x0201fff0
+ adds r0, r4, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r5, _080A2AFC @ =gSprites
+ adds r0, r5
+ bl DestroySprite
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x7
+ bls _080A2ABC
+ ldrb r1, [r6]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r1, 0x3A
+ bl FieldEffectStop
+ bl sub_8064E2C
+ bl ScriptContext2_Disable
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A2AF8: .4byte 0x0201fff0
+_080A2AFC: .4byte gSprites
+ thumb_func_end sub_80A2AB8
+
+ thumb_func_start sub_80A2B00
+sub_80A2B00: @ 80A2B00
+ push {lr}
+ movs r0, 0x80
+ bl PlaySE
+ movs r0, 0x2
+ bl FieldEffectActiveListRemove
+ bl EnableBothScriptContexts
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A2B00
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/fldeff_strength.s b/asm/fldeff_strength.s
deleted file mode 100644
index e595a5fc9..000000000
--- a/asm/fldeff_strength.s
+++ /dev/null
@@ -1,152 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start SetUpFieldMove_Strength
-SetUpFieldMove_Strength: @ 811A99C
- push {lr}
- bl sub_81474C8
- lsls r0, 24
- cmp r0, 0
- beq _0811A9D4
- ldr r1, _0811A9BC @ =gScriptResult
- ldr r0, _0811A9C0 @ =gUnknown_03005CE0
- ldrb r0, [r0]
- strh r0, [r1]
- ldr r1, _0811A9C4 @ =gUnknown_0300485C
- ldr r0, _0811A9C8 @ =sub_808AB90
- str r0, [r1]
- ldr r1, _0811A9CC @ =gUnknown_03005CE4
- ldr r0, _0811A9D0 @ =sub_811AA38
- b _0811A9F8
- .align 2, 0
-_0811A9BC: .4byte gScriptResult
-_0811A9C0: .4byte gUnknown_03005CE0
-_0811A9C4: .4byte gUnknown_0300485C
-_0811A9C8: .4byte sub_808AB90
-_0811A9CC: .4byte gUnknown_03005CE4
-_0811A9D0: .4byte sub_811AA38
-_0811A9D4:
- movs r0, 0x57
- bl npc_before_player_of_type
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0811A9E6
- movs r0, 0
- b _0811A9FC
-_0811A9E6:
- ldr r1, _0811AA00 @ =gScriptResult
- ldr r0, _0811AA04 @ =gUnknown_03005CE0
- ldrb r0, [r0]
- strh r0, [r1]
- ldr r1, _0811AA08 @ =gUnknown_0300485C
- ldr r0, _0811AA0C @ =sub_808AB90
- str r0, [r1]
- ldr r1, _0811AA10 @ =gUnknown_03005CE4
- ldr r0, _0811AA14 @ =sub_811AA18
-_0811A9F8:
- str r0, [r1]
- movs r0, 0x1
-_0811A9FC:
- pop {r1}
- bx r1
- .align 2, 0
-_0811AA00: .4byte gScriptResult
-_0811AA04: .4byte gUnknown_03005CE0
-_0811AA08: .4byte gUnknown_0300485C
-_0811AA0C: .4byte sub_808AB90
-_0811AA10: .4byte gUnknown_03005CE4
-_0811AA14: .4byte sub_811AA18
- thumb_func_end SetUpFieldMove_Strength
-
- thumb_func_start sub_811AA18
-sub_811AA18: @ 811AA18
- push {lr}
- ldr r1, _0811AA2C @ =gUnknown_0202FF84
- ldr r0, _0811AA30 @ =gUnknown_03005CE0
- ldrb r0, [r0]
- str r0, [r1]
- ldr r0, _0811AA34 @ =UseStrengthScript
- bl ScriptContext1_SetupScript
- pop {r0}
- bx r0
- .align 2, 0
-_0811AA2C: .4byte gUnknown_0202FF84
-_0811AA30: .4byte gUnknown_03005CE0
-_0811AA34: .4byte UseStrengthScript
- thumb_func_end sub_811AA18
-
- thumb_func_start sub_811AA38
-sub_811AA38: @ 811AA38
- push {lr}
- ldr r0, _0811AA4C @ =gUnknown_0202FF84
- ldr r1, _0811AA50 @ =gUnknown_03005CE0
- ldrb r1, [r1]
- str r1, [r0]
- movs r0, 0x28
- bl FieldEffectStart
- pop {r0}
- bx r0
- .align 2, 0
-_0811AA4C: .4byte gUnknown_0202FF84
-_0811AA50: .4byte gUnknown_03005CE0
- thumb_func_end sub_811AA38
-
- thumb_func_start FldEff_UseStrength
-FldEff_UseStrength: @ 811AA54
- push {lr}
- bl oei_task_add
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0811AA88 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r2, _0811AA8C @ =sub_811AA9C
- lsrs r0, r2, 16
- strh r0, [r1, 0x18]
- strh r2, [r1, 0x1A]
- ldr r0, _0811AA90 @ =gUnknown_0202FF84
- ldr r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0811AA94 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811AA98 @ =gStringVar1
- bl GetMonNickname
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_0811AA88: .4byte gTasks
-_0811AA8C: .4byte sub_811AA9C
-_0811AA90: .4byte gUnknown_0202FF84
-_0811AA94: .4byte gPlayerParty
-_0811AA98: .4byte gStringVar1
- thumb_func_end FldEff_UseStrength
-
- thumb_func_start sub_811AA9C
-sub_811AA9C: @ 811AA9C
- push {lr}
- bl sub_81474C8
- lsls r0, 24
- cmp r0, 0
- beq _0811AAAE
- bl sub_8147514
- b _0811AAB8
-_0811AAAE:
- movs r0, 0x28
- bl FieldEffectActiveListRemove
- bl EnableBothScriptContexts
-_0811AAB8:
- pop {r0}
- bx r0
- thumb_func_end sub_811AA9C
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/fldeff_teleport.s b/asm/fldeff_teleport.s
new file mode 100644
index 000000000..335aed789
--- /dev/null
+++ b/asm/fldeff_teleport.s
@@ -0,0 +1,93 @@
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start SetUpFieldMove_Teleport
+SetUpFieldMove_Teleport: @ 814A374
+ push {lr}
+ ldr r0, _0814A38C @ =gMapHeader
+ ldrb r0, [r0, 0x17]
+ bl is_light_level_1_2_3_or_6
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _0814A390
+ movs r0, 0
+ b _0814A39E
+ .align 2, 0
+_0814A38C: .4byte gMapHeader
+_0814A390:
+ ldr r1, _0814A3A4 @ =gUnknown_0300485C
+ ldr r0, _0814A3A8 @ =sub_808AB90
+ str r0, [r1]
+ ldr r1, _0814A3AC @ =gUnknown_03005CE4
+ ldr r0, _0814A3B0 @ =hm_teleport_run_dp02scr
+ str r0, [r1]
+ movs r0, 0x1
+_0814A39E:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0814A3A4: .4byte gUnknown_0300485C
+_0814A3A8: .4byte sub_808AB90
+_0814A3AC: .4byte gUnknown_03005CE4
+_0814A3B0: .4byte hm_teleport_run_dp02scr
+ thumb_func_end SetUpFieldMove_Teleport
+
+ thumb_func_start hm_teleport_run_dp02scr
+hm_teleport_run_dp02scr: @ 814A3B4
+ push {lr}
+ bl new_game
+ movs r0, 0x3F
+ bl FieldEffectStart
+ ldr r0, _0814A3CC @ =gUnknown_0202FF84
+ ldr r1, _0814A3D0 @ =gUnknown_03005CE0
+ ldrb r1, [r1]
+ str r1, [r0]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0814A3CC: .4byte gUnknown_0202FF84
+_0814A3D0: .4byte gUnknown_03005CE0
+ thumb_func_end hm_teleport_run_dp02scr
+
+ thumb_func_start FldEff_UseTeleport
+FldEff_UseTeleport: @ 814A3D4
+ push {lr}
+ bl oei_task_add
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0814A3FC @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r2, _0814A400 @ =sub_814A404
+ lsrs r0, r2, 16
+ strh r0, [r1, 0x18]
+ strh r2, [r1, 0x1A]
+ movs r0, 0x1
+ bl SetPlayerAvatarTransitionFlags
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0814A3FC: .4byte gTasks
+_0814A400: .4byte sub_814A404
+ thumb_func_end FldEff_UseTeleport
+
+ thumb_func_start sub_814A404
+sub_814A404: @ 814A404
+ push {lr}
+ movs r0, 0x3F
+ bl FieldEffectActiveListRemove
+ bl sub_8087BA8
+ pop {r0}
+ bx r0
+ thumb_func_end sub_814A404
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/hall_of_fame.s b/asm/hall_of_fame.s
new file mode 100644
index 000000000..c1e93c8b3
--- /dev/null
+++ b/asm/hall_of_fame.s
@@ -0,0 +1,3402 @@
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_8141E38
+sub_8141E38: @ 8141E38
+ push {lr}
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl TransferPlttBuffer
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8141E38
+
+ thumb_func_start sub_8141E4C
+sub_8141E4C: @ 8141E4C
+ push {lr}
+ bl RunTasks
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl UpdatePaletteFade
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8141E4C
+
+ thumb_func_start sub_8141E64
+sub_8141E64: @ 8141E64
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r0, _08141E80 @ =gMain
+ ldr r1, _08141E84 @ =0x0000043c
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x4
+ bhi _08141EA0
+ lsls r0, 2
+ ldr r1, _08141E88 @ =_08141E8C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08141E80: .4byte gMain
+_08141E84: .4byte 0x0000043c
+_08141E88: .4byte _08141E8C
+ .align 2, 0
+_08141E8C:
+ .4byte _08141EA0
+ .4byte _08141EC0
+ .4byte _08141EC6
+ .4byte _08141F1C
+ .4byte _08141F58
+_08141EA0:
+ movs r0, 0
+ bl SetVBlankCallback
+ bl sub_81433E0
+ ldr r0, _08141EB8 @ =gMain
+ ldr r2, _08141EBC @ =0x0000043c
+ adds r0, r2
+ movs r1, 0x1
+ strb r1, [r0]
+ b _08141F84
+ .align 2, 0
+_08141EB8: .4byte gMain
+_08141EBC: .4byte 0x0000043c
+_08141EC0:
+ bl sub_8143570
+ b _08141F38
+_08141EC6:
+ 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, _08141F04 @ =sub_8141E38
+ bl SetVBlankCallback
+ ldr r3, _08141F08 @ =0x04000208
+ ldrh r2, [r3]
+ strh r4, [r3]
+ ldr r4, _08141F0C @ =0x04000200
+ ldrh r0, [r4]
+ movs r1, 0x1
+ orrs r0, r1
+ strh r0, [r4]
+ strh r2, [r3]
+ ldr r2, _08141F10 @ =REG_DISPSTAT
+ ldrh r0, [r2]
+ movs r1, 0x8
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r1, _08141F14 @ =gMain
+ ldr r2, _08141F18 @ =0x0000043c
+ adds r1, r2
+ b _08141F3E
+ .align 2, 0
+_08141F04: .4byte sub_8141E38
+_08141F08: .4byte 0x04000208
+_08141F0C: .4byte 0x04000200
+_08141F10: .4byte REG_DISPSTAT
+_08141F14: .4byte gMain
+_08141F18: .4byte 0x0000043c
+_08141F1C:
+ ldr r1, _08141F48 @ =REG_BLDCNT
+ ldr r2, _08141F4C @ =0x00003f42
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r2, 0xE2
+ lsls r2, 3
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r0, 0
+ strh r0, [r1]
+ bl sub_81435B8
+_08141F38:
+ ldr r1, _08141F50 @ =gMain
+ ldr r0, _08141F54 @ =0x0000043c
+ adds r1, r0
+_08141F3E:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _08141F84
+ .align 2, 0
+_08141F48: .4byte REG_BLDCNT
+_08141F4C: .4byte 0x00003f42
+_08141F50: .4byte gMain
+_08141F54: .4byte 0x0000043c
+_08141F58:
+ bl UpdatePaletteFade
+ ldr r0, _08141F7C @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08141F84
+ ldr r0, _08141F80 @ =sub_8141E4C
+ bl SetMainCallback2
+ movs r0, 0xDA
+ lsls r0, 1
+ bl PlayBGM
+ movs r0, 0
+ b _08141F86
+ .align 2, 0
+_08141F7C: .4byte gPaletteFade
+_08141F80: .4byte sub_8141E4C
+_08141F84:
+ movs r0, 0x1
+_08141F86:
+ add sp, 0x4
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8141E64
+
+ thumb_func_start sub_8141F90
+sub_8141F90: @ 8141F90
+ push {r4,lr}
+ bl sub_8141E64
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ bne _08141FB6
+ ldr r0, _08141FBC @ =sub_8141FF8
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08141FC0 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ strh r4, [r1, 0x8]
+_08141FB6:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08141FBC: .4byte sub_8141FF8
+_08141FC0: .4byte gTasks
+ thumb_func_end sub_8141F90
+
+ thumb_func_start sub_8141FC4
+sub_8141FC4: @ 8141FC4
+ push {lr}
+ bl sub_8141E64
+ lsls r0, 24
+ cmp r0, 0
+ bne _08141FEA
+ ldr r0, _08141FF0 @ =sub_8141FF8
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08141FF4 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ movs r0, 0x1
+ strh r0, [r1, 0x8]
+_08141FEA:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08141FF0: .4byte sub_8141FF8
+_08141FF4: .4byte gTasks
+ thumb_func_end sub_8141FC4
+
+ thumb_func_start sub_8141FF8
+sub_8141FF8: @ 8141FF8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r0, _081420C8 @ =0x0201c000
+ mov r9, r0
+ ldr r1, _081420CC @ =gTasks
+ mov r2, r8
+ lsls r0, r2, 2
+ add r0, r8
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0, 0xC]
+ movs r7, 0
+ ldr r4, _081420D0 @ =0xfffffe00
+ mov r10, r4
+_08142024:
+ movs r0, 0x64
+ adds r1, r7, 0
+ muls r1, r0
+ ldr r0, _081420D4 @ =gPlayerParty
+ adds r6, r1, r0
+ adds r0, r6, 0
+ movs r1, 0xB
+ bl GetMonData
+ adds r3, r0, 0
+ cmp r3, 0
+ beq _081420DC
+ adds r0, r6, 0
+ movs r1, 0x41
+ bl GetMonData
+ lsls r4, r7, 2
+ adds r4, r7
+ lsls r4, 2
+ mov r1, r9
+ adds r5, r1, r4
+ ldr r2, _081420D8 @ =0x000001ff
+ adds r1, r2, 0
+ ands r0, r1
+ ldrh r1, [r5, 0x8]
+ mov r2, r10
+ ands r1, r2
+ orrs r1, r0
+ strh r1, [r5, 0x8]
+ adds r0, r6, 0
+ movs r1, 0x1
+ bl GetMonData
+ str r0, [r5]
+ adds r0, r6, 0
+ movs r1, 0
+ bl GetMonData
+ mov r1, r9
+ adds r1, 0x4
+ adds r1, r4
+ str r0, [r1]
+ adds r0, r6, 0
+ movs r1, 0x38
+ bl GetMonData
+ lsls r0, 1
+ ldrb r2, [r5, 0x9]
+ movs r1, 0x1
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r5, 0x9]
+ adds r0, r6, 0
+ movs r1, 0x2
+ mov r2, sp
+ bl GetMonData
+ movs r2, 0
+ mov r6, r8
+ lsls r5, r6, 2
+ mov r3, r9
+ adds r3, 0xA
+_081420A0:
+ adds r1, r2, r4
+ adds r1, r3, r1
+ mov r6, sp
+ adds r0, r6, r2
+ ldrb r0, [r0]
+ strb r0, [r1]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x9
+ bls _081420A0
+ ldr r0, _081420CC @ =gTasks
+ mov r2, r8
+ adds r1, r5, r2
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0xC]
+ adds r0, 0x1
+ strh r0, [r1, 0xC]
+ b _08142108
+ .align 2, 0
+_081420C8: .4byte 0x0201c000
+_081420CC: .4byte gTasks
+_081420D0: .4byte 0xfffffe00
+_081420D4: .4byte gPlayerParty
+_081420D8: .4byte 0x000001ff
+_081420DC:
+ lsls r1, r7, 2
+ adds r1, r7
+ lsls r1, 2
+ mov r4, r9
+ adds r2, r4, r1
+ ldrh r0, [r2, 0x8]
+ mov r6, r10
+ ands r0, r6
+ strh r0, [r2, 0x8]
+ str r3, [r2]
+ mov r0, r9
+ adds r0, 0x4
+ adds r0, r1
+ str r3, [r0]
+ ldrb r1, [r2, 0x9]
+ movs r0, 0x1
+ ands r0, r1
+ strb r0, [r2, 0x9]
+ movs r0, 0xFF
+ strb r0, [r2, 0xA]
+ mov r0, r8
+ lsls r5, r0, 2
+_08142108:
+ adds r0, r7, 0x1
+ lsls r0, 16
+ lsrs r7, r0, 16
+ cmp r7, 0x5
+ bls _08142024
+ ldr r0, _08142158 @ =gUnknown_0203931C
+ movs r3, 0
+ str r3, [r0]
+ ldr r4, _0814215C @ =gTasks
+ mov r2, r8
+ adds r1, r5, r2
+ lsls r1, 3
+ adds r2, r1, r4
+ strh r3, [r2, 0xA]
+ movs r0, 0xFF
+ strh r0, [r2, 0x10]
+ movs r7, 0
+ adds r3, r4, 0
+ adds r3, 0x8
+ movs r2, 0xFF
+_08142130:
+ adds r0, r7, 0x5
+ lsls r0, 1
+ adds r0, r1
+ adds r0, r3
+ strh r2, [r0]
+ adds r0, r7, 0x1
+ lsls r0, 16
+ lsrs r7, r0, 16
+ cmp r7, 0x5
+ bls _08142130
+ mov r6, r8
+ adds r0, r5, r6
+ lsls r0, 3
+ adds r1, r0, r4
+ movs r2, 0x8
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ beq _08142164
+ ldr r0, _08142160 @ =sub_81422E8
+ b _08142166
+ .align 2, 0
+_08142158: .4byte gUnknown_0203931C
+_0814215C: .4byte gTasks
+_08142160: .4byte sub_81422E8
+_08142164:
+ ldr r0, _08142178 @ =sub_814217C
+_08142166:
+ str r0, [r1]
+ add sp, 0xC
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08142178: .4byte sub_814217C
+ thumb_func_end sub_8141FF8
+
+ thumb_func_start sub_814217C
+sub_814217C: @ 814217C
+ 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, _081421C4 @ =0x0201c000
+ mov r9, r0
+ movs r7, 0x80
+ lsls r7, 6
+ add r7, r9
+ ldr r0, _081421C8 @ =gUnknown_02039324
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _081421D4
+ movs r4, 0
+ mov r0, r8
+ lsls r0, 2
+ mov r10, r0
+ ldr r5, _081421CC @ =0xfffe4000
+ add r5, r9
+ movs r3, 0xF0
+ lsls r3, 9
+ movs r2, 0
+ ldr r1, _081421D0 @ =0x00001fff
+_081421B2:
+ adds r0, r4, r3
+ adds r0, r5
+ strb r2, [r0]
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, r1
+ bls _081421B2
+ b _081421E0
+ .align 2, 0
+_081421C4: .4byte 0x0201c000
+_081421C8: .4byte gUnknown_02039324
+_081421CC: .4byte 0xfffe4000
+_081421D0: .4byte 0x00001fff
+_081421D4:
+ movs r0, 0x3
+ bl sub_8125EC8
+ mov r0, r8
+ lsls r0, 2
+ mov r10, r0
+_081421E0:
+ movs r4, 0
+ ldrh r1, [r7, 0x8]
+ ldr r2, _081421E8 @ =0x000001ff
+ b _081421FA
+ .align 2, 0
+_081421E8: .4byte 0x000001ff
+_081421EC:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ adds r7, 0x78
+ cmp r4, 0x31
+ bhi _08142206
+ ldrh r1, [r7, 0x8]
+_081421FA:
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _081421EC
+ cmp r4, 0x31
+ bls _08142228
+_08142206:
+ ldr r5, _08142264 @ =0x0201e000
+ adds r6, r5, 0
+ adds r5, 0x78
+ movs r4, 0
+ subs r7, 0x78
+_08142210:
+ adds r0, r6, 0
+ adds r1, r5, 0
+ movs r2, 0x78
+ bl memcpy
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ adds r6, 0x78
+ adds r5, 0x78
+ cmp r4, 0x30
+ bls _08142210
+_08142228:
+ adds r0, r7, 0
+ mov r1, r9
+ movs r2, 0x78
+ bl memcpy
+ movs r0, 0x2
+ movs r1, 0xE
+ movs r2, 0x1B
+ movs r3, 0x13
+ bl MenuDrawTextWindow
+ ldr r0, _08142268 @ =gMenuText_HOFSaving
+ movs r1, 0x3
+ movs r2, 0xF
+ bl MenuPrint
+ ldr r1, _0814226C @ =gTasks
+ mov r0, r10
+ add r0, r8
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _08142270 @ =sub_8142274
+ 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
+_08142264: .4byte 0x0201e000
+_08142268: .4byte gMenuText_HOFSaving
+_0814226C: .4byte gTasks
+_08142270: .4byte sub_8142274
+ thumb_func_end sub_814217C
+
+ thumb_func_start sub_8142274
+sub_8142274: @ 8142274
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r1, _081422A8 @ =gUnknown_03005EBC
+ ldr r0, _081422AC @ =sub_8141FC4
+ str r0, [r1]
+ movs r0, 0x3
+ bl sub_8125D44
+ movs r0, 0x37
+ bl PlaySE
+ ldr r1, _081422B0 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _081422B4 @ =sub_81422B8
+ str r1, [r0]
+ movs r1, 0x20
+ strh r1, [r0, 0xE]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081422A8: .4byte gUnknown_03005EBC
+_081422AC: .4byte sub_8141FC4
+_081422B0: .4byte gTasks
+_081422B4: .4byte sub_81422B8
+ thumb_func_end sub_8142274
+
+ thumb_func_start sub_81422B8
+sub_81422B8: @ 81422B8
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _081422D8 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldrh r2, [r1, 0xE]
+ movs r3, 0xE
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ beq _081422DC
+ subs r0, r2, 0x1
+ strh r0, [r1, 0xE]
+ b _081422E0
+ .align 2, 0
+_081422D8: .4byte gTasks
+_081422DC:
+ ldr r0, _081422E4 @ =sub_81422E8
+ str r0, [r1]
+_081422E0:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081422E4: .4byte sub_81422E8
+ thumb_func_end sub_81422B8
+
+ thumb_func_start sub_81422E8
+sub_81422E8: @ 81422E8
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r5, _08142314 @ =gWindowConfig_81E7198
+ adds r0, r5, 0
+ bl SetUpWindowConfig
+ adds r0, r5, 0
+ bl InitMenuWindow
+ ldr r1, _08142318 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0814231C @ =sub_8142320
+ str r1, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08142314: .4byte gWindowConfig_81E7198
+_08142318: .4byte gTasks
+_0814231C: .4byte sub_8142320
+ thumb_func_end sub_81422E8
+
+ thumb_func_start sub_8142320
+sub_8142320: @ 8142320
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r2, _08142350 @ =0x0201c000
+ ldr r0, _08142354 @ =gTasks
+ lsls r1, r7, 2
+ adds r1, r7
+ lsls r1, 3
+ adds r1, r0
+ ldrh r6, [r1, 0xA]
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 2
+ adds r4, r0, r2
+ movs r2, 0xC
+ ldrsh r0, [r1, r2]
+ cmp r0, 0x3
+ ble _0814235C
+ ldr r1, _08142358 @ =gUnknown_0840B534
+ b _0814235E
+ .align 2, 0
+_08142350: .4byte 0x0201c000
+_08142354: .4byte gTasks
+_08142358: .4byte gUnknown_0840B534
+_0814235C:
+ ldr r1, _081423F0 @ =gUnknown_0840B564
+_0814235E:
+ lsls r2, r6, 3
+ adds r0, r2, r1
+ ldrh r5, [r0]
+ adds r0, r1, 0x2
+ adds r0, r2, r0
+ ldrh r3, [r0]
+ adds r0, r1, 0x4
+ adds r0, r2, r0
+ ldrh r0, [r0]
+ mov r9, r0
+ adds r1, 0x6
+ adds r2, r1
+ ldrh r2, [r2]
+ mov r8, r2
+ ldrh r0, [r4, 0x8]
+ lsls r0, 23
+ lsrs r0, 23
+ lsls r1, r5, 16
+ asrs r1, 16
+ lsls r2, r3, 16
+ asrs r2, 16
+ ldr r3, [r4]
+ str r3, [sp]
+ ldr r3, [r4, 0x4]
+ str r3, [sp, 0x4]
+ adds r3, r6, 0
+ bl sub_81436BC
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, _081423F4 @ =gSprites
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r2, r1, r3
+ movs r4, 0
+ mov r5, r9
+ strh r5, [r2, 0x30]
+ mov r5, r8
+ strh r5, [r2, 0x32]
+ strh r4, [r2, 0x2E]
+ adds r3, 0x1C
+ adds r1, r3
+ ldr r2, _081423F8 @ =sub_81435DC
+ str r2, [r1]
+ ldr r5, _081423FC @ =gTasks
+ adds r1, r6, 0x5
+ lsls r1, 1
+ lsls r4, r7, 2
+ adds r4, r7
+ lsls r4, 3
+ adds r1, r4
+ adds r2, r5, 0
+ adds r2, 0x8
+ adds r1, r2
+ strh r0, [r1]
+ movs r0, 0
+ movs r1, 0xE
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ adds r4, r5
+ ldr r0, _08142400 @ =sub_8142404
+ str r0, [r4]
+ add sp, 0x8
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081423F0: .4byte gUnknown_0840B564
+_081423F4: .4byte gSprites
+_081423F8: .4byte sub_81435DC
+_081423FC: .4byte gTasks
+_08142400: .4byte sub_8142404
+ thumb_func_end sub_8142320
+
+ thumb_func_start sub_8142404
+sub_8142404: @ 8142404
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r4, _08142470 @ =0x0201c000
+ ldr r3, _08142474 @ =gTasks
+ lsls r2, r0, 2
+ adds r2, r0
+ lsls r2, 3
+ adds r5, r2, r3
+ ldrh r1, [r5, 0xA]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r6, r0, r4
+ ldr r4, _08142478 @ =gSprites
+ adds r1, 0x5
+ lsls r1, 1
+ adds r1, r2
+ adds r3, 0x8
+ adds r1, r3
+ movs r0, 0
+ ldrsh r1, [r1, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r1, 0x2E
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ beq _0814246A
+ ldrh r2, [r6, 0x8]
+ ldr r0, _0814247C @ =0x000001ff
+ ands r0, r2
+ movs r1, 0xCE
+ lsls r1, 1
+ cmp r0, r1
+ beq _08142458
+ lsls r0, r2, 23
+ lsrs r0, 23
+ movs r1, 0
+ bl PlayCry1
+_08142458:
+ adds r0, r6, 0
+ movs r1, 0
+ movs r2, 0xE
+ bl sub_8143088
+ movs r0, 0x78
+ strh r0, [r5, 0xE]
+ ldr r0, _08142480 @ =sub_8142484
+ str r0, [r5]
+_0814246A:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08142470: .4byte 0x0201c000
+_08142474: .4byte gTasks
+_08142478: .4byte gSprites
+_0814247C: .4byte 0x000001ff
+_08142480: .4byte sub_8142484
+ thumb_func_end sub_8142404
+
+ thumb_func_start sub_8142484
+sub_8142484: @ 8142484
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r2, _081424BC @ =0x0201c000
+ ldr r1, _081424C0 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r6, r0, 3
+ adds r4, r6, r1
+ ldrh r3, [r4, 0xA]
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 2
+ adds r0, r2
+ mov r9, r0
+ ldrh r2, [r4, 0xE]
+ movs r7, 0xE
+ ldrsh r0, [r4, r7]
+ mov r12, r1
+ cmp r0, 0
+ beq _081424C4
+ subs r0, r2, 0x1
+ strh r0, [r4, 0xE]
+ b _0814255C
+ .align 2, 0
+_081424BC: .4byte 0x0201c000
+_081424C0: .4byte gTasks
+_081424C4:
+ ldr r2, _0814253C @ =gUnknown_0203931C
+ ldr r0, _08142540 @ =gSprites
+ mov r8, r0
+ adds r0, r3, 0x5
+ lsls r0, 1
+ adds r0, r6
+ mov r1, r12
+ adds r1, 0x8
+ adds r6, r0, r1
+ movs r7, 0
+ ldrsh r1, [r6, r7]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ add r0, r8
+ ldrb r0, [r0, 0x5]
+ lsrs r0, 4
+ movs r1, 0x80
+ lsls r1, 9
+ lsls r1, r0
+ ldr r3, [r2]
+ orrs r3, r1
+ str r3, [r2]
+ ldrh r2, [r4, 0xA]
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x4
+ bgt _08142550
+ mov r7, r9
+ ldrh r1, [r7, 0x1C]
+ ldr r0, _08142544 @ =0x000001ff
+ ands r0, r1
+ cmp r0, 0
+ beq _08142550
+ adds r0, r2, 0x1
+ strh r0, [r4, 0xA]
+ ldr r0, _08142548 @ =0x0000735f
+ str r0, [sp]
+ adds r0, r3, 0
+ movs r1, 0
+ movs r2, 0xC
+ movs r3, 0xC
+ bl BeginNormalPaletteFade
+ movs r0, 0
+ ldrsh r1, [r6, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ add r0, r8
+ ldrb r2, [r0, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r2
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0, 0x5]
+ ldr r0, _0814254C @ =sub_8142320
+ str r0, [r4]
+ b _0814255C
+ .align 2, 0
+_0814253C: .4byte gUnknown_0203931C
+_08142540: .4byte gSprites
+_08142544: .4byte 0x000001ff
+_08142548: .4byte 0x0000735f
+_0814254C: .4byte sub_8142320
+_08142550:
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ add r0, r12
+ ldr r1, _0814256C @ =sub_8142570
+ str r1, [r0]
+_0814255C:
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0814256C: .4byte sub_8142570
+ thumb_func_end sub_8142484
+
+ thumb_func_start sub_8142570
+sub_8142570: @ 8142570
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _08142604 @ =0xffff0000
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ movs r3, 0
+ lsls r1, r4, 2
+ adds r0, r1, r4
+ lsls r5, r0, 3
+ ldr r0, _08142608 @ =gTasks + 0x8
+ mov r12, r0
+ mov r8, r1
+ ldr r6, _0814260C @ =gSprites
+ movs r7, 0xD
+ negs r7, r7
+_0814259E:
+ adds r0, r3, 0x5
+ lsls r0, 1
+ adds r0, r5
+ mov r2, r12
+ adds r1, r0, r2
+ movs r2, 0
+ ldrsh r0, [r1, r2]
+ cmp r0, 0xFF
+ beq _081425C0
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r6
+ ldrb r2, [r1, 0x5]
+ adds r0, r7, 0
+ ands r0, r2
+ strb r0, [r1, 0x5]
+_081425C0:
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x5
+ bls _0814259E
+ movs r0, 0
+ movs r1, 0xE
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ movs r0, 0
+ movs r1, 0xF
+ bl sub_8143068
+ movs r0, 0x69
+ bl PlaySE
+ ldr r1, _08142610 @ =gTasks
+ mov r2, r8
+ adds r0, r2, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0xC8
+ lsls r1, 1
+ strh r1, [r0, 0xE]
+ ldr r1, _08142614 @ =sub_8142618
+ str r1, [r0]
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08142604: .4byte 0xffff0000
+_08142608: .4byte gTasks + 0x8
+_0814260C: .4byte gSprites
+_08142610: .4byte gTasks
+_08142614: .4byte sub_8142618
+ thumb_func_end sub_8142570
+
+ thumb_func_start sub_8142618
+sub_8142618: @ 8142618
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r7, _08142658 @ =gTasks
+ lsls r4, r6, 2
+ adds r0, r4, r6
+ lsls r5, r0, 3
+ adds r1, r5, r7
+ ldrh r2, [r1, 0xE]
+ movs r3, 0xE
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ beq _0814265C
+ subs r2, 0x1
+ strh r2, [r1, 0xE]
+ movs r0, 0x3
+ ands r0, r2
+ cmp r0, 0
+ bne _081426D2
+ lsls r0, r2, 16
+ asrs r0, 16
+ cmp r0, 0x6E
+ ble _081426D2
+ bl sub_81438C4
+ b _081426D2
+ .align 2, 0
+_08142658: .4byte gTasks
+_0814265C:
+ movs r3, 0
+ mov r9, r4
+ ldr r0, _081426E4 @ =gUnknown_0203931C
+ mov r10, r0
+ adds r4, r5, 0
+ adds r7, 0x8
+ mov r8, r7
+ ldr r7, _081426E8 @ =gSprites
+ movs r1, 0xD
+ negs r1, r1
+ mov r12, r1
+ movs r5, 0x4
+_08142674:
+ adds r0, r3, 0x5
+ lsls r0, 1
+ adds r0, r4
+ mov r2, r8
+ adds r1, r0, r2
+ movs r2, 0
+ ldrsh r0, [r1, r2]
+ cmp r0, 0xFF
+ beq _08142698
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r7
+ ldrb r2, [r1, 0x5]
+ mov r0, r12
+ ands r0, r2
+ orrs r0, r5
+ strb r0, [r1, 0x5]
+_08142698:
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x5
+ bls _08142674
+ mov r3, r10
+ ldr r0, [r3]
+ ldr r1, _081426EC @ =0x0000735f
+ str r1, [sp]
+ movs r1, 0
+ movs r2, 0xC
+ movs r3, 0xC
+ bl BeginNormalPaletteFade
+ movs r0, 0
+ movs r1, 0xE
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ ldr r1, _081426F0 @ =gTasks
+ mov r2, r9
+ adds r0, r2, r6
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x7
+ strh r1, [r0, 0xE]
+ ldr r1, _081426F4 @ =sub_81426F8
+ str r1, [r0]
+_081426D2:
+ 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
+_081426E4: .4byte gUnknown_0203931C
+_081426E8: .4byte gSprites
+_081426EC: .4byte 0x0000735f
+_081426F0: .4byte gTasks
+_081426F4: .4byte sub_81426F8
+ thumb_func_end sub_8142618
+
+ thumb_func_start sub_81426F8
+sub_81426F8: @ 81426F8
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08142718 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r2, r1, r2
+ ldrh r1, [r2, 0xE]
+ movs r3, 0xE
+ ldrsh r0, [r2, r3]
+ cmp r0, 0xF
+ ble _08142720
+ ldr r0, _0814271C @ =sub_8142738
+ str r0, [r2]
+ b _0814272E
+ .align 2, 0
+_08142718: .4byte gTasks
+_0814271C: .4byte sub_8142738
+_08142720:
+ adds r0, r1, 0x1
+ strh r0, [r2, 0xE]
+ ldr r1, _08142734 @ =REG_BLDALPHA
+ movs r3, 0xE
+ ldrsh r0, [r2, r3]
+ lsls r0, 8
+ strh r0, [r1]
+_0814272E:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08142734: .4byte REG_BLDALPHA
+ thumb_func_end sub_81426F8
+
+ thumb_func_start sub_8142738
+sub_8142738: @ 8142738
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ movs r1, 0x80
+ lsls r1, 19
+ movs r2, 0xCA
+ lsls r2, 5
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r4, _08142784 @ =gWindowConfig_81E71B4
+ adds r0, r4, 0
+ bl SetUpWindowConfig
+ adds r0, r4, 0
+ bl InitMenuWindow
+ ldr r0, _08142788 @ =gSaveBlock2
+ ldrb r0, [r0, 0x8]
+ movs r1, 0x78
+ movs r2, 0x48
+ movs r3, 0x6
+ bl sub_81437A4
+ ldr r2, _0814278C @ =gTasks
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r2
+ strh r0, [r1, 0x10]
+ movs r0, 0x78
+ strh r0, [r1, 0xE]
+ ldr r0, _08142790 @ =sub_8142794
+ str r0, [r1]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08142784: .4byte gWindowConfig_81E71B4
+_08142788: .4byte gSaveBlock2
+_0814278C: .4byte gTasks
+_08142790: .4byte sub_8142794
+ thumb_func_end sub_8142738
+
+ thumb_func_start sub_8142794
+sub_8142794: @ 8142794
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _081427B4 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1, r2
+ ldrh r1, [r4, 0xE]
+ movs r2, 0xE
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _081427B8
+ subs r0, r1, 0x1
+ strh r0, [r4, 0xE]
+ b _0814280A
+ .align 2, 0
+_081427B4: .4byte gTasks
+_081427B8:
+ ldr r2, _081427D8 @ =gSprites
+ movs r3, 0x10
+ ldrsh r1, [r4, r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r0, r2
+ ldrh r2, [r1, 0x20]
+ movs r3, 0x20
+ ldrsh r0, [r1, r3]
+ cmp r0, 0xA0
+ beq _081427DC
+ adds r0, r2, 0x1
+ strh r0, [r1, 0x20]
+ b _0814280A
+ .align 2, 0
+_081427D8: .4byte gSprites
+_081427DC:
+ movs r0, 0x1
+ movs r1, 0x2
+ movs r2, 0xF
+ movs r3, 0x9
+ bl MenuDrawTextWindow
+ movs r0, 0x1
+ movs r1, 0x2
+ bl sub_8143300
+ movs r0, 0x2
+ movs r1, 0xE
+ movs r2, 0x1B
+ movs r3, 0x13
+ bl MenuDrawTextWindow
+ ldr r0, _08142810 @ =gMenuText_HOFCongratulations
+ movs r1, 0x4
+ movs r2, 0xF
+ bl MenuPrint
+ ldr r0, _08142814 @ =sub_8142818
+ str r0, [r4]
+_0814280A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08142810: .4byte gMenuText_HOFCongratulations
+_08142814: .4byte sub_8142818
+ thumb_func_end sub_8142794
+
+ thumb_func_start sub_8142818
+sub_8142818: @ 8142818
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _08142844 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0814283E
+ movs r0, 0x4
+ bl FadeOutBGM
+ ldr r0, _08142848 @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _0814284C @ =sub_8142850
+ str r0, [r1]
+_0814283E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08142844: .4byte gMain
+_08142848: .4byte gTasks
+_0814284C: .4byte sub_8142850
+ thumb_func_end sub_8142818
+
+ thumb_func_start sub_8142850
+sub_8142850: @ 8142850
+ push {r4,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _08142890 @ =gPlttBufferFaded
+ ldr r1, _08142894 @ =gPlttBufferUnfaded
+ movs r2, 0x80
+ lsls r2, 2
+ bl CpuSet
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r1, 0x8
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r1, _08142898 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0814289C @ =sub_81428A0
+ str r1, [r0]
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08142890: .4byte gPlttBufferFaded
+_08142894: .4byte gPlttBufferUnfaded
+_08142898: .4byte gTasks
+_0814289C: .4byte sub_81428A0
+ thumb_func_end sub_8142850
+
+ thumb_func_start sub_81428A0
+sub_81428A0: @ 81428A0
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _081428C4 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _081428BE
+ adds r0, r2, 0
+ bl DestroyTask
+ ldr r0, _081428C8 @ =sub_81439D0
+ bl SetMainCallback2
+_081428BE:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081428C4: .4byte gPaletteFade
+_081428C8: .4byte sub_81439D0
+ thumb_func_end sub_81428A0
+
+ thumb_func_start sub_81428CC
+sub_81428CC: @ 81428CC
+ push {r4,r5,lr}
+ ldr r0, _081428E4 @ =gMain
+ ldr r1, _081428E8 @ =0x0000043c
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x5
+ bhi _08142908
+ lsls r0, 2
+ ldr r1, _081428EC @ =_081428F0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_081428E4: .4byte gMain
+_081428E8: .4byte 0x0000043c
+_081428EC: .4byte _081428F0
+ .align 2, 0
+_081428F0:
+ .4byte _08142908
+ .4byte _08142928
+ .4byte _0814293C
+ .4byte _08142980
+ .4byte _081429C0
+ .4byte _081429EC
+_08142908:
+ movs r0, 0
+ bl SetVBlankCallback
+ bl sub_81433E0
+ ldr r0, _08142920 @ =gMain
+ ldr r2, _08142924 @ =0x0000043c
+ adds r0, r2
+ movs r1, 0x1
+ strb r1, [r0]
+ b _08142A12
+ .align 2, 0
+_08142920: .4byte gMain
+_08142924: .4byte 0x0000043c
+_08142928:
+ bl sub_8143570
+ ldr r1, _08142934 @ =gMain
+ ldr r3, _08142938 @ =0x0000043c
+ adds r1, r3
+ b _081429DC
+ .align 2, 0
+_08142934: .4byte gMain
+_08142938: .4byte 0x0000043c
+_0814293C:
+ ldr r0, _08142968 @ =sub_8141E38
+ bl SetVBlankCallback
+ ldr r3, _0814296C @ =0x04000208
+ ldrh r2, [r3]
+ movs r0, 0
+ strh r0, [r3]
+ ldr r4, _08142970 @ =0x04000200
+ ldrh r0, [r4]
+ movs r1, 0x1
+ orrs r0, r1
+ strh r0, [r4]
+ strh r2, [r3]
+ ldr r2, _08142974 @ =REG_DISPSTAT
+ ldrh r0, [r2]
+ movs r1, 0x8
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r1, _08142978 @ =gMain
+ ldr r4, _0814297C @ =0x0000043c
+ adds r1, r4
+ b _081429DC
+ .align 2, 0
+_08142968: .4byte sub_8141E38
+_0814296C: .4byte 0x04000208
+_08142970: .4byte 0x04000200
+_08142974: .4byte REG_DISPSTAT
+_08142978: .4byte gMain
+_0814297C: .4byte 0x0000043c
+_08142980:
+ ldr r0, _081429AC @ =REG_BLDCNT
+ movs r1, 0
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ bl sub_81435B8
+ ldr r0, _081429B0 @ =0x0201c000
+ adds r2, r0, 0
+ ldr r1, _081429B4 @ =gUnknown_0840B57C
+ ldm r1!, {r3-r5}
+ stm r2!, {r3-r5}
+ ldm r1!, {r3,r5}
+ stm r2!, {r3,r5}
+ bl sub_80C5CD4
+ ldr r1, _081429B8 @ =gMain
+ ldr r4, _081429BC @ =0x0000043c
+ adds r1, r4
+ b _081429DC
+ .align 2, 0
+_081429AC: .4byte REG_BLDCNT
+_081429B0: .4byte 0x0201c000
+_081429B4: .4byte gUnknown_0840B57C
+_081429B8: .4byte gMain
+_081429BC: .4byte 0x0000043c
+_081429C0:
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl UpdatePaletteFade
+ bl sub_80C5DCC
+ lsls r0, 24
+ cmp r0, 0
+ beq _08142A12
+ ldr r1, _081429E4 @ =gMain
+ ldr r5, _081429E8 @ =0x0000043c
+ adds r1, r5
+_081429DC:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _08142A12
+ .align 2, 0
+_081429E4: .4byte gMain
+_081429E8: .4byte 0x0000043c
+_081429EC:
+ ldr r1, _08142A18 @ =REG_BLDCNT
+ ldr r2, _08142A1C @ =0x00003f42
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r3, 0xE2
+ lsls r3, 3
+ adds r0, r3, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r0, 0
+ strh r0, [r1]
+ ldr r0, _08142A20 @ =sub_8142A28
+ movs r1, 0
+ bl CreateTask
+ ldr r0, _08142A24 @ =sub_8141E4C
+ bl SetMainCallback2
+_08142A12:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08142A18: .4byte REG_BLDCNT
+_08142A1C: .4byte 0x00003f42
+_08142A20: .4byte sub_8142A28
+_08142A24: .4byte sub_8141E4C
+ thumb_func_end sub_81428CC
+
+ thumb_func_start sub_8142A28
+sub_8142A28: @ 8142A28
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r0, 0x3
+ bl sub_8125EC8
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _08142A54
+ ldr r0, _08142A4C @ =gTasks
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _08142A50 @ =sub_8142FEC
+ str r0, [r1]
+ b _08142AEA
+ .align 2, 0
+_08142A4C: .4byte gTasks
+_08142A50: .4byte sub_8142FEC
+_08142A54:
+ ldr r2, _08142A8C @ =0x0201e000
+ movs r3, 0
+ ldrh r1, [r2, 0x8]
+ ldr r4, _08142A90 @ =0x000001ff
+ adds r0, r4, 0
+ ands r0, r1
+ ldr r7, _08142A94 @ =gTasks
+ lsls r6, r5, 2
+ cmp r0, 0
+ beq _08142A7E
+_08142A68:
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ adds r2, 0x78
+ cmp r3, 0x31
+ bhi _08142A98
+ ldrh r1, [r2, 0x8]
+ adds r0, r4, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _08142A68
+_08142A7E:
+ cmp r3, 0x31
+ bhi _08142A98
+ adds r0, r6, r5
+ lsls r0, 3
+ adds r0, r7
+ subs r1, r3, 0x1
+ b _08142AA0
+ .align 2, 0
+_08142A8C: .4byte 0x0201e000
+_08142A90: .4byte 0x000001ff
+_08142A94: .4byte gTasks
+_08142A98:
+ adds r0, r6, r5
+ lsls r0, 3
+ adds r0, r7
+ movs r1, 0x31
+_08142AA0:
+ strh r1, [r0, 0x8]
+ movs r0, 0xA
+ bl GetGameStat
+ ldr r2, _08142AF0 @ =gTasks
+ adds r1, r6, r5
+ lsls r1, 3
+ adds r1, r2
+ strh r0, [r1, 0xA]
+ movs r3, 0
+ ldr r7, _08142AF4 @ =0x0600381a
+ ldr r4, _08142AF8 @ =0x0600385a
+_08142AB8:
+ lsls r1, r3, 1
+ adds r2, r1, r7
+ adds r0, r3, 0x3
+ strh r0, [r2]
+ adds r1, r4
+ adds r0, 0x11
+ strh r0, [r1]
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x10
+ bls _08142AB8
+ ldr r4, _08142AFC @ =gWindowConfig_81E7198
+ adds r0, r4, 0
+ bl SetUpWindowConfig
+ adds r0, r4, 0
+ bl InitMenuWindow
+ ldr r1, _08142AF0 @ =gTasks
+ adds r0, r6, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _08142B00 @ =sub_8142B04
+ str r1, [r0]
+_08142AEA:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08142AF0: .4byte gTasks
+_08142AF4: .4byte 0x0600381a
+_08142AF8: .4byte 0x0600385a
+_08142AFC: .4byte gWindowConfig_81E7198
+_08142B00: .4byte sub_8142B04
+ thumb_func_end sub_8142A28
+
+ thumb_func_start sub_8142B04
+sub_8142B04: @ 8142B04
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r3, _08142BB8 @ =0x0201e000
+ movs r5, 0
+ ldr r1, _08142BBC @ =gTasks
+ lsls r0, 2
+ add r0, r8
+ lsls r0, 3
+ adds r0, r1
+ movs r2, 0x8
+ ldrsh r0, [r0, r2]
+ adds r6, r1, 0
+ ldr r2, _08142BC0 @ =gUnknown_0203931C
+ cmp r5, r0
+ bge _08142B3E
+ adds r1, r0, 0
+_08142B32:
+ adds r3, 0x78
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, r1
+ blt _08142B32
+_08142B3E:
+ adds r4, r3, 0
+ movs r0, 0
+ str r0, [r2]
+ mov r5, r8
+ lsls r2, r5, 2
+ adds r1, r2, r5
+ lsls r1, 3
+ adds r1, r6
+ strh r0, [r1, 0xC]
+ strh r0, [r1, 0x10]
+ movs r5, 0
+ str r2, [sp, 0xC]
+ ldr r6, _08142BC4 @ =0x000001ff
+ adds r2, r1, 0
+_08142B5A:
+ ldrh r1, [r4, 0x8]
+ adds r0, r6, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _08142B6A
+ ldrh r0, [r2, 0x10]
+ adds r0, 0x1
+ strh r0, [r2, 0x10]
+_08142B6A:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ adds r4, 0x14
+ cmp r5, 0x5
+ bls _08142B5A
+ adds r4, r3, 0
+ movs r5, 0
+ ldr r1, _08142BBC @ =gTasks
+ ldr r0, [sp, 0xC]
+ add r0, r8
+ lsls r7, r0, 3
+ adds r6, r7, r1
+ str r6, [sp, 0x8]
+ adds r1, 0x8
+ mov r9, r1
+ ldr r0, _08142BC8 @ =gUnknown_0840B564
+ mov r10, r0
+_08142B8E:
+ ldrh r1, [r4, 0x8]
+ ldr r2, _08142BC4 @ =0x000001ff
+ adds r0, r2, 0
+ ands r0, r1
+ adds r6, r1, 0
+ cmp r0, 0
+ beq _08142C30
+ ldr r1, [sp, 0x8]
+ movs r2, 0x10
+ ldrsh r0, [r1, r2]
+ cmp r0, 0x3
+ ble _08142BD4
+ lsls r1, r5, 3
+ ldr r0, _08142BCC @ =gUnknown_0840B534
+ adds r0, 0x4
+ adds r0, r1, r0
+ ldrh r3, [r0]
+ ldr r0, _08142BD0 @ =gUnknown_0840B53A
+ adds r1, r0
+ b _08142BE2
+ .align 2, 0
+_08142BB8: .4byte 0x0201e000
+_08142BBC: .4byte gTasks
+_08142BC0: .4byte gUnknown_0203931C
+_08142BC4: .4byte 0x000001ff
+_08142BC8: .4byte gUnknown_0840B564
+_08142BCC: .4byte gUnknown_0840B534
+_08142BD0: .4byte gUnknown_0840B53A
+_08142BD4:
+ lsls r1, r5, 3
+ mov r0, r10
+ adds r0, 0x4
+ adds r0, r1, r0
+ ldrh r3, [r0]
+ ldr r2, _08142C28 @ =gUnknown_0840B56A
+ adds r1, r2
+_08142BE2:
+ ldrh r2, [r1]
+ lsls r0, r6, 23
+ lsrs r0, 23
+ lsls r1, r3, 16
+ asrs r1, 16
+ lsls r2, 16
+ asrs r2, 16
+ ldr r3, [r4]
+ str r3, [sp]
+ ldr r3, [r4, 0x4]
+ str r3, [sp, 0x4]
+ adds r3, r5, 0
+ bl sub_81436BC
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r2, _08142C2C @ =gSprites
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldrb r3, [r1, 0x5]
+ movs r6, 0xD
+ negs r6, r6
+ adds r2, r6, 0
+ ands r3, r2
+ movs r2, 0x4
+ orrs r3, r2
+ strb r3, [r1, 0x5]
+ adds r1, r5, 0x5
+ lsls r1, 1
+ adds r1, r7
+ add r1, r9
+ strh r0, [r1]
+ b _08142C3C
+ .align 2, 0
+_08142C28: .4byte gUnknown_0840B56A
+_08142C2C: .4byte gSprites
+_08142C30:
+ adds r0, r5, 0x5
+ lsls r0, 1
+ adds r0, r7
+ add r0, r9
+ movs r1, 0xFF
+ strh r1, [r0]
+_08142C3C:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ adds r4, 0x14
+ cmp r5, 0x5
+ bls _08142B8E
+ ldr r0, _08142CB0 @ =0xffff0000
+ ldr r2, _08142CB4 @ =0x0000735f
+ movs r1, 0xC
+ bl BlendPalettes
+ ldr r3, _08142CB8 @ =gStringVar1
+ ldr r1, _08142CBC @ =gMenuText_HOFNumber
+ adds r0, r3, 0
+ bl StringCopy
+ adds r3, r0, 0
+ movs r5, 0xFC
+ strb r5, [r3]
+ movs r0, 0x14
+ strb r0, [r3, 0x1]
+ movs r0, 0x6
+ strb r0, [r3, 0x2]
+ adds r3, 0x3
+ ldr r0, _08142CC0 @ =gTasks
+ ldr r4, [sp, 0xC]
+ add r4, r8
+ lsls r4, 3
+ adds r4, r0
+ movs r0, 0xA
+ ldrsh r1, [r4, r0]
+ adds r0, r3, 0
+ bl ConvertIntToDecimalString
+ adds r3, r0, 0
+ strb r5, [r3]
+ movs r0, 0x13
+ strb r0, [r3, 0x1]
+ movs r0, 0xF0
+ strb r0, [r3, 0x2]
+ movs r0, 0xFF
+ strb r0, [r3, 0x3]
+ ldr r0, _08142CB8 @ =gStringVar1
+ movs r1, 0
+ movs r2, 0
+ bl MenuPrint
+ ldr r0, _08142CC4 @ =sub_8142CC8
+ str r0, [r4]
+ add sp, 0x10
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08142CB0: .4byte 0xffff0000
+_08142CB4: .4byte 0x0000735f
+_08142CB8: .4byte gStringVar1
+_08142CBC: .4byte gMenuText_HOFNumber
+_08142CC0: .4byte gTasks
+_08142CC4: .4byte sub_8142CC8
+ thumb_func_end sub_8142B04
+
+ thumb_func_start sub_8142CC8
+sub_8142CC8: @ 8142CC8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _08142DD0 @ =0x0201e000
+ mov r8, r0
+ movs r3, 0
+ ldr r1, _08142DD4 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r2, 0x8
+ ldrsh r0, [r0, r2]
+ cmp r3, r0
+ bge _08142CFE
+ adds r1, r0, 0
+_08142CF0:
+ movs r0, 0x78
+ add r8, r0
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, r1
+ blt _08142CF0
+_08142CFE:
+ movs r3, 0
+ lsls r6, r4, 2
+ adds r0, r6, r4
+ lsls r5, r0, 3
+ ldr r1, _08142DD8 @ =gTasks + 0x8
+ mov r10, r1
+ ldr r2, _08142DDC @ =gSprites
+ mov r12, r2
+ movs r0, 0xD
+ negs r0, r0
+ mov r9, r0
+ movs r7, 0x4
+_08142D16:
+ adds r0, r3, 0x5
+ lsls r0, 1
+ adds r0, r5
+ add r0, r10
+ ldrh r1, [r0]
+ cmp r1, 0xFF
+ beq _08142D36
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ add r0, r12
+ ldrb r2, [r0, 0x5]
+ mov r1, r9
+ ands r1, r2
+ orrs r1, r7
+ strb r1, [r0, 0x5]
+_08142D36:
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x5
+ bls _08142D16
+ adds r1, r6, r4
+ lsls r1, 3
+ ldr r2, _08142DD4 @ =gTasks
+ adds r5, r1, r2
+ movs r2, 0xC
+ ldrsh r0, [r5, r2]
+ adds r0, 0x5
+ lsls r0, 1
+ adds r0, r1
+ ldr r1, _08142DD4 @ =gTasks
+ adds r1, 0x8
+ adds r0, r1
+ ldrh r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08142DDC @ =gSprites
+ adds r0, r1
+ ldrb r2, [r0, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r0, 0x5]
+ lsrs r1, 4
+ movs r0, 0x80
+ lsls r0, 9
+ lsls r0, r1
+ ldr r1, _08142DE0 @ =0xffff0000
+ eors r0, r1
+ ldr r2, _08142DE4 @ =gUnknown_0203931C
+ str r0, [r2]
+ ldr r2, _08142DE8 @ =0x0000735f
+ movs r1, 0xC
+ bl BlendPalettesUnfaded
+ movs r0, 0xC
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ mov r1, r8
+ adds r4, r1, r0
+ ldrh r1, [r4, 0x8]
+ ldr r0, _08142DEC @ =0x000001ff
+ ands r0, r1
+ movs r1, 0xCE
+ lsls r1, 1
+ cmp r0, r1
+ beq _08142DB2
+ bl StopCryAndClearCrySongs
+ ldrh r0, [r4, 0x8]
+ lsls r0, 23
+ lsrs r0, 23
+ movs r1, 0
+ bl PlayCry1
+_08142DB2:
+ adds r0, r4, 0
+ movs r1, 0
+ movs r2, 0xE
+ bl sub_8143088
+ ldr r0, _08142DF0 @ =sub_8142DF4
+ str r0, [r5]
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08142DD0: .4byte 0x0201e000
+_08142DD4: .4byte gTasks
+_08142DD8: .4byte gTasks + 0x8
+_08142DDC: .4byte gSprites
+_08142DE0: .4byte 0xffff0000
+_08142DE4: .4byte gUnknown_0203931C
+_08142DE8: .4byte 0x0000735f
+_08142DEC: .4byte 0x000001ff
+_08142DF0: .4byte sub_8142DF4
+ thumb_func_end sub_8142CC8
+
+ thumb_func_start sub_8142DF4
+sub_8142DF4: @ 8142DF4
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r1, _08142E88 @ =gMain
+ ldrh r2, [r1, 0x2E]
+ movs r0, 0x1
+ ands r0, r2
+ adds r3, r1, 0
+ cmp r0, 0
+ beq _08142EC4
+ ldr r7, _08142E8C @ =gTasks
+ lsls r0, r6, 2
+ adds r1, r0, r6
+ lsls r3, r1, 3
+ adds r4, r3, r7
+ ldrh r2, [r4, 0x8]
+ movs r5, 0x8
+ ldrsh r1, [r4, r5]
+ mov r8, r0
+ cmp r1, 0
+ beq _08142E98
+ subs r0, r2, 0x1
+ strh r0, [r4, 0x8]
+ movs r5, 0
+ adds r7, 0x8
+ mov r9, r7
+ adds r7, r3, 0
+_08142E30:
+ adds r0, r5, 0x5
+ lsls r0, 1
+ adds r0, r7
+ add r0, r9
+ ldrb r1, [r0]
+ cmp r1, 0xFF
+ beq _08142E5E
+ ldr r0, _08142E90 @ =gSprites
+ lsls r4, r1, 4
+ adds r4, r1
+ lsls r4, 2
+ adds r4, r0
+ ldrb r0, [r4, 0x5]
+ lsrs r0, 4
+ bl GetSpritePaletteTagByPaletteNum
+ lsls r0, 16
+ lsrs r0, 16
+ bl FreeSpritePaletteByTag
+ adds r0, r4, 0
+ bl DestroySprite
+_08142E5E:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x5
+ bls _08142E30
+ ldr r0, _08142E8C @ =gTasks
+ mov r2, r8
+ adds r1, r2, r6
+ lsls r1, 3
+ adds r1, r0
+ ldrh r2, [r1, 0xA]
+ movs r3, 0xA
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ beq _08142E80
+ subs r0, r2, 0x1
+ strh r0, [r1, 0xA]
+_08142E80:
+ ldr r0, _08142E94 @ =sub_8142B04
+ str r0, [r1]
+ b _08142F64
+ .align 2, 0
+_08142E88: .4byte gMain
+_08142E8C: .4byte gTasks
+_08142E90: .4byte gSprites
+_08142E94: .4byte sub_8142B04
+_08142E98:
+ bl IsCryPlayingOrClearCrySongs
+ lsls r0, 24
+ cmp r0, 0
+ beq _08142EB2
+ bl StopCryAndClearCrySongs
+ ldr r0, _08142EB8 @ =gMPlay_BGM
+ ldr r1, _08142EBC @ =0x0000ffff
+ movs r2, 0x80
+ lsls r2, 1
+ bl m4aMPlayVolumeControl
+_08142EB2:
+ ldr r0, _08142EC0 @ =sub_8142F78
+ str r0, [r4]
+ b _08142F64
+ .align 2, 0
+_08142EB8: .4byte gMPlay_BGM
+_08142EBC: .4byte 0x0000ffff
+_08142EC0: .4byte sub_8142F78
+_08142EC4:
+ movs r0, 0x2
+ ands r0, r2
+ cmp r0, 0
+ beq _08142F08
+ bl IsCryPlayingOrClearCrySongs
+ lsls r0, 24
+ cmp r0, 0
+ beq _08142EE6
+ bl StopCryAndClearCrySongs
+ ldr r0, _08142EF8 @ =gMPlay_BGM
+ ldr r1, _08142EFC @ =0x0000ffff
+ movs r2, 0x80
+ lsls r2, 1
+ bl m4aMPlayVolumeControl
+_08142EE6:
+ ldr r0, _08142F00 @ =gTasks
+ lsls r1, r6, 2
+ adds r1, r6
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _08142F04 @ =sub_8142F78
+ str r0, [r1]
+ b _08142F64
+ .align 2, 0
+_08142EF8: .4byte gMPlay_BGM
+_08142EFC: .4byte 0x0000ffff
+_08142F00: .4byte gTasks
+_08142F04: .4byte sub_8142F78
+_08142F08:
+ movs r0, 0x40
+ ands r0, r2
+ cmp r0, 0
+ beq _08142F38
+ ldr r0, _08142F30 @ =gTasks
+ lsls r1, r6, 2
+ adds r1, r6
+ lsls r1, 3
+ adds r1, r0
+ ldrh r2, [r1, 0xC]
+ movs r4, 0xC
+ ldrsh r0, [r1, r4]
+ cmp r0, 0
+ beq _08142F38
+ subs r0, r2, 0x1
+ strh r0, [r1, 0xC]
+ ldr r0, _08142F34 @ =sub_8142CC8
+ str r0, [r1]
+ b _08142F64
+ .align 2, 0
+_08142F30: .4byte gTasks
+_08142F34: .4byte sub_8142CC8
+_08142F38:
+ ldrh r1, [r3, 0x2E]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _08142F64
+ ldr r1, _08142F70 @ =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r2, r0, r1
+ movs r5, 0xC
+ ldrsh r1, [r2, r5]
+ movs r3, 0x10
+ ldrsh r0, [r2, r3]
+ subs r0, 0x1
+ cmp r1, r0
+ bge _08142F64
+ ldrh r0, [r2, 0xC]
+ adds r0, 0x1
+ strh r0, [r2, 0xC]
+ ldr r0, _08142F74 @ =sub_8142CC8
+ str r0, [r2]
+_08142F64:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08142F70: .4byte gTasks
+_08142F74: .4byte sub_8142CC8
+ thumb_func_end sub_8142DF4
+
+ thumb_func_start sub_8142F78
+sub_8142F78: @ 8142F78
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _08142FB4 @ =gPlttBufferFaded
+ ldr r1, _08142FB8 @ =gPlttBufferUnfaded
+ movs r2, 0x80
+ lsls r2, 2
+ bl CpuSet
+ ldr r0, _08142FBC @ =0x0201c000
+ adds r2, r0, 0
+ ldr r1, _08142FC0 @ =gUnknown_0840B57C
+ ldm r1!, {r3,r5,r6}
+ stm r2!, {r3,r5,r6}
+ ldm r1!, {r3,r5}
+ stm r2!, {r3,r5}
+ bl sub_80C5E38
+ ldr r1, _08142FC4 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _08142FC8 @ =sub_8142FCC
+ str r1, [r0]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08142FB4: .4byte gPlttBufferFaded
+_08142FB8: .4byte gPlttBufferUnfaded
+_08142FBC: .4byte 0x0201c000
+_08142FC0: .4byte gUnknown_0840B57C
+_08142FC4: .4byte gTasks
+_08142FC8: .4byte sub_8142FCC
+ thumb_func_end sub_8142F78
+
+ thumb_func_start sub_8142FCC
+sub_8142FCC: @ 8142FCC
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_80C5F98
+ lsls r0, 24
+ cmp r0, 0
+ beq _08142FE6
+ adds r0, r4, 0
+ bl DestroyTask
+ bl ReturnFromHallOfFamePC
+_08142FE6:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8142FCC
+
+ thumb_func_start sub_8142FEC
+sub_8142FEC: @ 8142FEC
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x2
+ movs r1, 0xE
+ movs r2, 0x1B
+ movs r3, 0x13
+ bl MenuDrawTextWindow
+ ldr r0, _08143020 @ =gMenuText_HOFCorrupt
+ movs r1, 0x3
+ movs r2, 0xF
+ bl MenuPrintMessage
+ ldr r1, _08143024 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _08143028 @ =sub_814302C
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08143020: .4byte gMenuText_HOFCorrupt
+_08143024: .4byte gTasks
+_08143028: .4byte sub_814302C
+ thumb_func_end sub_8142FEC
+
+ thumb_func_start sub_814302C
+sub_814302C: @ 814302C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl MenuUpdateWindowText
+ lsls r0, 24
+ cmp r0, 0
+ beq _08143056
+ ldr r0, _0814305C @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08143056
+ ldr r0, _08143060 @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _08143064 @ =sub_8142F78
+ str r0, [r1]
+_08143056:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0814305C: .4byte gMain
+_08143060: .4byte gTasks
+_08143064: .4byte sub_8142F78
+ thumb_func_end sub_814302C
+
+ thumb_func_start sub_8143068
+sub_8143068: @ 8143068
+ push {lr}
+ lsls r2, r1, 24
+ ldr r0, _08143084 @ =gMenuText_WelcomeToHOFAndDexRating
+ movs r1, 0x80
+ lsls r1, 17
+ adds r2, r1
+ lsrs r2, 24
+ movs r1, 0
+ movs r3, 0xF0
+ bl sub_8072BD8
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08143084: .4byte gMenuText_WelcomeToHOFAndDexRating
+ thumb_func_end sub_8143068
+
+ thumb_func_start sub_8143088
+sub_8143088: @ 8143088
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x14
+ mov r9, r0
+ lsls r1, 24
+ lsrs r1, 24
+ mov r8, r1
+ lsls r2, 24
+ lsrs r2, 24
+ mov r10, r2
+ ldr r7, _08143188 @ =gStringVar1
+ movs r0, 0xFC
+ strb r0, [r7]
+ movs r0, 0x13
+ strb r0, [r7, 0x1]
+ movs r0, 0x28
+ strb r0, [r7, 0x2]
+ movs r0, 0xFF
+ strb r0, [r7, 0x3]
+ mov r0, r9
+ ldrh r2, [r0, 0x8]
+ ldr r0, _0814318C @ =0x000001ff
+ ands r0, r2
+ movs r1, 0xCE
+ lsls r1, 1
+ cmp r0, r1
+ beq _081430EA
+ lsls r0, r2, 23
+ lsrs r0, 23
+ bl SpeciesToPokedexNum
+ lsls r0, 16
+ lsrs r6, r0, 16
+ ldr r0, _08143190 @ =0x0000ffff
+ cmp r6, r0
+ beq _081430EA
+ ldr r1, _08143194 @ =gOtherText_Number2
+ adds r0, r7, 0
+ bl StringCopy
+ adds r7, r0, 0
+ adds r1, r6, 0
+ movs r2, 0x2
+ movs r3, 0x3
+ bl ConvertIntToDecimalStringN
+_081430EA:
+ ldr r5, _08143188 @ =gStringVar1
+ mov r1, r8
+ adds r1, 0x4
+ lsls r1, 24
+ lsrs r1, 24
+ mov r4, r10
+ adds r4, 0x1
+ lsls r2, r4, 24
+ lsrs r2, 24
+ adds r0, r5, 0
+ bl MenuPrint
+ adds r7, r5, 0
+ movs r3, 0
+ mov r1, r9
+ ldrb r0, [r1, 0xA]
+ str r4, [sp]
+ mov r2, r8
+ adds r2, 0x9
+ str r2, [sp, 0xC]
+ mov r6, r10
+ adds r6, 0x3
+ str r6, [sp, 0x8]
+ cmp r0, 0xFF
+ beq _0814313A
+ mov r2, r9
+ adds r2, 0xA
+_08143120:
+ adds r1, r7, r3
+ adds r0, r2, r3
+ ldrb r0, [r0]
+ strb r0, [r1]
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x9
+ bhi _0814313A
+ adds r0, r2, r3
+ ldrb r0, [r0]
+ cmp r0, 0xFF
+ bne _08143120
+_0814313A:
+ adds r7, r3
+ movs r2, 0xFF
+ strb r2, [r7]
+ mov r1, r9
+ ldrh r0, [r1, 0x8]
+ ldr r1, _0814318C @ =0x000001ff
+ ands r1, r0
+ movs r0, 0xCE
+ lsls r0, 1
+ cmp r1, r0
+ bne _08143198
+ movs r0, 0xFC
+ strb r0, [r7]
+ movs r0, 0x13
+ strb r0, [r7, 0x1]
+ movs r0, 0xA0
+ strb r0, [r7, 0x2]
+ strb r2, [r7, 0x3]
+ ldr r0, _08143188 @ =gStringVar1
+ ldr r2, [sp, 0xC]
+ lsls r1, r2, 24
+ lsrs r1, 24
+ ldr r3, [sp]
+ lsls r2, r3, 24
+ lsrs r2, 24
+ bl MenuPrint
+ ldr r6, [sp, 0x8]
+ lsls r1, r6, 24
+ lsrs r1, 24
+ mov r3, r10
+ adds r3, 0x4
+ lsls r3, 24
+ lsrs r3, 24
+ movs r0, 0
+ movs r2, 0x1D
+ bl MenuZeroFillWindowRect
+ b _081432E4
+ .align 2, 0
+_08143188: .4byte gStringVar1
+_0814318C: .4byte 0x000001ff
+_08143190: .4byte 0x0000ffff
+_08143194: .4byte gOtherText_Number2
+_08143198:
+ movs r0, 0xFC
+ strb r0, [r7]
+ movs r0, 0x13
+ strb r0, [r7, 0x1]
+ movs r0, 0x3E
+ strb r0, [r7, 0x2]
+ adds r7, 0x3
+ movs r0, 0xBA
+ strb r0, [r7]
+ adds r7, 0x1
+ movs r3, 0
+ ldr r2, _08143238 @ =gSpeciesNames
+ mov r1, r9
+ ldrh r0, [r1, 0x8]
+ lsls r0, 23
+ lsrs r0, 23
+ movs r1, 0xB
+ muls r0, r1
+ adds r0, r2
+ ldrb r0, [r0]
+ mov r6, r8
+ adds r6, 0x7
+ str r6, [sp, 0x4]
+ mov r1, r8
+ adds r1, 0xD
+ str r1, [sp, 0x10]
+ cmp r0, 0xFF
+ beq _08143204
+ adds r5, r2, 0
+ movs r4, 0xB
+_081431D4:
+ adds r1, r7, r3
+ mov r6, r9
+ ldrh r0, [r6, 0x8]
+ lsls r0, 23
+ lsrs r0, 23
+ muls r0, r4
+ adds r0, r3, r0
+ adds r0, r5
+ ldrb r0, [r0]
+ strb r0, [r1]
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x9
+ bhi _08143204
+ ldrh r0, [r6, 0x8]
+ lsls r0, 23
+ lsrs r0, 23
+ muls r0, r4
+ adds r0, r3, r0
+ adds r0, r2
+ ldrb r0, [r0]
+ cmp r0, 0xFF
+ bne _081431D4
+_08143204:
+ adds r7, r3
+ movs r0, 0
+ strb r0, [r7]
+ adds r7, 0x1
+ mov r1, r9
+ ldrh r0, [r1, 0x8]
+ ldr r1, _0814323C @ =0x000001ff
+ ands r1, r0
+ cmp r1, 0x20
+ beq _0814324A
+ cmp r1, 0x1D
+ beq _0814324A
+ lsls r0, 23
+ lsrs r0, 23
+ mov r2, r9
+ ldr r1, [r2, 0x4]
+ bl GetGenderFromSpeciesAndPersonality
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ beq _08143240
+ cmp r0, 0xFE
+ beq _08143244
+ b _0814324A
+ .align 2, 0
+_08143238: .4byte gSpeciesNames
+_0814323C: .4byte 0x000001ff
+_08143240:
+ movs r0, 0xB5
+ b _08143246
+_08143244:
+ movs r0, 0xB6
+_08143246:
+ strb r0, [r7]
+ adds r7, 0x1
+_0814324A:
+ movs r4, 0xFC
+ strb r4, [r7]
+ movs r3, 0x13
+ mov r8, r3
+ strb r3, [r7, 0x1]
+ movs r0, 0xA0
+ strb r0, [r7, 0x2]
+ movs r6, 0xFF
+ mov r10, r6
+ strb r6, [r7, 0x3]
+ ldr r5, _081432F4 @ =gStringVar1
+ ldr r0, [sp, 0xC]
+ lsls r1, r0, 24
+ lsrs r1, 24
+ ldr r3, [sp]
+ lsls r2, r3, 24
+ lsrs r2, 24
+ adds r0, r5, 0
+ bl MenuPrint
+ mov r6, r9
+ ldrb r0, [r6, 0x9]
+ lsrs r6, r0, 1
+ ldr r1, _081432F8 @ =gOtherText_Level3
+ adds r0, r5, 0
+ bl StringCopy
+ adds r7, r0, 0
+ strb r4, [r7]
+ movs r0, 0x14
+ strb r0, [r7, 0x1]
+ movs r0, 0x6
+ strb r0, [r7, 0x2]
+ adds r7, 0x3
+ adds r0, r7, 0
+ adds r1, r6, 0
+ movs r2, 0
+ movs r3, 0x3
+ bl ConvertIntToDecimalStringN
+ adds r7, r0, 0
+ strb r4, [r7]
+ mov r0, r8
+ strb r0, [r7, 0x1]
+ movs r0, 0x30
+ strb r0, [r7, 0x2]
+ mov r1, r10
+ strb r1, [r7, 0x3]
+ ldr r2, [sp, 0x4]
+ lsls r1, r2, 24
+ lsrs r1, 24
+ ldr r3, [sp, 0x8]
+ lsls r4, r3, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ adds r2, r4, 0
+ bl MenuPrint
+ mov r0, r9
+ ldrh r6, [r0]
+ ldr r1, _081432FC @ =gOtherText_IDNumber
+ adds r0, r5, 0
+ bl StringCopy
+ adds r7, r0, 0
+ adds r1, r6, 0
+ movs r2, 0x2
+ movs r3, 0x5
+ bl ConvertIntToDecimalStringN
+ ldr r2, [sp, 0x10]
+ lsls r1, r2, 24
+ lsrs r1, 24
+ adds r0, r5, 0
+ adds r2, r4, 0
+ bl MenuPrint
+_081432E4:
+ add sp, 0x14
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081432F4: .4byte gStringVar1
+_081432F8: .4byte gOtherText_Level3
+_081432FC: .4byte gOtherText_IDNumber
+ thumb_func_end sub_8143088
+
+ thumb_func_start sub_8143300
+sub_8143300: @ 8143300
+ push {r4-r6,lr}
+ mov r6, r10
+ mov r5, r9
+ mov r4, r8
+ push {r4-r6}
+ adds r5, r0, 0
+ adds r4, r1, 0
+ lsls r5, 24
+ lsls r4, 24
+ ldr r0, _081433CC @ =gOtherText_Name
+ lsrs r1, r5, 24
+ mov r8, r1
+ movs r2, 0x80
+ lsls r2, 17
+ adds r5, r2
+ lsrs r5, 24
+ lsrs r6, r4, 24
+ adds r4, r2
+ lsrs r4, 24
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl MenuPrint
+ ldr r0, _081433D0 @ =gSaveBlock2
+ mov r10, r0
+ movs r1, 0xE
+ add r8, r1
+ mov r2, r8
+ lsls r2, 24
+ lsrs r2, 24
+ mov r8, r2
+ mov r1, r8
+ adds r2, r4, 0
+ bl MenuPrint_RightAligned
+ ldr r0, _081433D4 @ =gOtherText_IDNumber2
+ adds r4, r6, 0x3
+ lsls r4, 24
+ lsrs r4, 24
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl MenuPrint
+ mov r0, r10
+ ldrb r1, [r0, 0xA]
+ ldrb r0, [r0, 0xB]
+ lsls r0, 8
+ orrs r1, r0
+ ldr r2, _081433D8 @ =gStringVar1
+ mov r9, r2
+ mov r0, r9
+ movs r2, 0x2
+ movs r3, 0x5
+ bl ConvertIntToDecimalStringN
+ mov r0, r9
+ mov r1, r8
+ adds r2, r4, 0
+ bl MenuPrint_RightAligned
+ ldr r0, _081433DC @ =gMainMenuString_Time
+ adds r6, 0x5
+ lsls r6, 24
+ lsrs r6, 24
+ adds r1, r5, 0
+ adds r2, r6, 0
+ bl MenuPrint
+ mov r0, r10
+ ldrh r1, [r0, 0xE]
+ mov r0, r9
+ bl ConvertIntToDecimalString
+ adds r2, r0, 0
+ movs r1, 0
+ strb r1, [r2]
+ movs r0, 0xF0
+ strb r0, [r2, 0x1]
+ strb r1, [r2, 0x2]
+ adds r2, 0x3
+ mov r0, r10
+ ldrb r1, [r0, 0x10]
+ adds r0, r2, 0
+ movs r2, 0x2
+ movs r3, 0x2
+ bl ConvertIntToDecimalStringN
+ adds r2, r0, 0
+ movs r0, 0xFF
+ strb r0, [r2]
+ mov r0, r9
+ mov r1, r8
+ adds r2, r6, 0
+ bl MenuPrint_RightAligned
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081433CC: .4byte gOtherText_Name
+_081433D0: .4byte gSaveBlock2
+_081433D4: .4byte gOtherText_IDNumber2
+_081433D8: .4byte gStringVar1
+_081433DC: .4byte gMainMenuString_Time
+ thumb_func_end sub_8143300
+
+ thumb_func_start sub_81433E0
+sub_81433E0: @ 81433E0
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x8
+ movs r0, 0x80
+ lsls r0, 19
+ movs r1, 0
+ strh r1, [r0]
+ adds r0, 0x8
+ strh r1, [r0]
+ adds r0, 0x8
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ subs r0, 0x8
+ strh r1, [r0]
+ adds r0, 0xA
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ subs r0, 0xA
+ strh r1, [r0]
+ adds r0, 0xC
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ subs r0, 0xC
+ strh r1, [r0]
+ adds r0, 0xE
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ movs r3, 0xC0
+ lsls r3, 19
+ movs r4, 0xC0
+ lsls r4, 9
+ add r0, sp, 0x4
+ mov r8, r0
+ ldr r1, _0814354C @ =gHallOfFame_Gfx
+ mov r9, r1
+ mov r2, sp
+ movs r6, 0
+ ldr r1, _08143550 @ =0x040000d4
+ movs r5, 0x80
+ lsls r5, 5
+ ldr r7, _08143554 @ =0x81000800
+ movs r0, 0x81
+ lsls r0, 24
+ mov r12, r0
+_08143444:
+ strh r6, [r2]
+ mov r0, sp
+ str r0, [r1]
+ str r3, [r1, 0x4]
+ str r7, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ adds r3, r5
+ subs r4, r5
+ cmp r4, r5
+ bhi _08143444
+ strh r6, [r2]
+ mov r2, sp
+ str r2, [r1]
+ str r3, [r1, 0x4]
+ lsrs r0, r4, 1
+ mov r2, r12
+ orrs r0, r2
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ movs r0, 0xE0
+ lsls r0, 19
+ movs r3, 0x80
+ lsls r3, 3
+ movs r4, 0
+ str r4, [sp, 0x4]
+ ldr r2, _08143550 @ =0x040000d4
+ mov r1, r8
+ str r1, [r2]
+ str r0, [r2, 0x4]
+ lsrs r0, r3, 2
+ movs r1, 0x85
+ lsls r1, 24
+ orrs r0, r1
+ str r0, [r2, 0x8]
+ ldr r0, [r2, 0x8]
+ movs r1, 0xA0
+ lsls r1, 19
+ mov r0, sp
+ strh r4, [r0]
+ str r0, [r2]
+ str r1, [r2, 0x4]
+ lsrs r3, 1
+ movs r0, 0x81
+ lsls r0, 24
+ orrs r3, r0
+ str r3, [r2, 0x8]
+ ldr r0, [r2, 0x8]
+ movs r1, 0xC0
+ lsls r1, 19
+ mov r0, r9
+ bl LZ77UnCompVram
+ movs r1, 0
+ ldr r3, _08143558 @ =0x06003800
+ movs r2, 0x1
+_081434B2:
+ lsls r0, r1, 1
+ adds r0, r3
+ strh r2, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0x3F
+ bls _081434B2
+ movs r1, 0
+ ldr r5, _0814355C @ =0x02000000
+ ldr r3, _08143560 @ =0x06003b80
+ movs r2, 0x1
+_081434CA:
+ lsls r0, r1, 1
+ adds r0, r3
+ strh r2, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0xBF
+ bls _081434CA
+ movs r1, 0
+ ldr r4, _08143564 @ =0x06003000
+ movs r3, 0x2
+ ldr r2, _08143568 @ =0x000003ff
+_081434E2:
+ lsls r0, r1, 1
+ adds r0, r4
+ strh r3, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, r2
+ bls _081434E2
+ adds r2, r5, 0
+ movs r3, 0x80
+ lsls r3, 7
+ mov r4, sp
+ movs r6, 0
+ ldr r1, _08143550 @ =0x040000d4
+ movs r5, 0x80
+ lsls r5, 5
+ ldr r7, _08143554 @ =0x81000800
+ movs r0, 0x81
+ lsls r0, 24
+ mov r12, r0
+_0814350A:
+ strh r6, [r4]
+ mov r0, sp
+ str r0, [r1]
+ str r2, [r1, 0x4]
+ str r7, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ adds r2, r5
+ subs r3, r5
+ cmp r3, r5
+ bhi _0814350A
+ strh r6, [r4]
+ mov r0, sp
+ str r0, [r1]
+ str r2, [r1, 0x4]
+ lsrs r0, r3, 1
+ mov r2, r12
+ orrs r0, r2
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ bl ResetPaletteFade
+ ldr r0, _0814356C @ =gHallOfFame_Pal
+ movs r1, 0
+ movs r2, 0x20
+ bl LoadPalette
+ add sp, 0x8
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0814354C: .4byte gHallOfFame_Gfx
+_08143550: .4byte 0x040000d4
+_08143554: .4byte 0x81000800
+_08143558: .4byte 0x06003800
+_0814355C: .4byte 0x02000000
+_08143560: .4byte 0x06003b80
+_08143564: .4byte 0x06003000
+_08143568: .4byte 0x000003ff
+_0814356C: .4byte gHallOfFame_Pal
+ thumb_func_end sub_81433E0
+
+ thumb_func_start sub_8143570
+sub_8143570: @ 8143570
+ push {r4,lr}
+ bl remove_some_task
+ bl ResetTasks
+ bl ResetSpriteData
+ bl FreeAllSpritePalettes
+ ldr r1, _081435A8 @ =gReservedSpritePaletteCount
+ movs r0, 0x8
+ strb r0, [r1]
+ ldr r0, _081435AC @ =gUnknown_0840B514
+ bl LoadCompressedObjectPic
+ ldr r0, _081435B0 @ =gUnknown_0840B524
+ bl LoadCompressedObjectPalette
+ ldr r4, _081435B4 @ =gWindowConfig_81E71B4
+ adds r0, r4, 0
+ bl SetUpWindowConfig
+ adds r0, r4, 0
+ bl InitMenuWindow
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081435A8: .4byte gReservedSpritePaletteCount
+_081435AC: .4byte gUnknown_0840B514
+_081435B0: .4byte gUnknown_0840B524
+_081435B4: .4byte gWindowConfig_81E71B4
+ thumb_func_end sub_8143570
+
+ thumb_func_start sub_81435B8
+sub_81435B8: @ 81435B8
+ ldr r1, _081435D8 @ =REG_BG1CNT
+ movs r2, 0xE0
+ lsls r2, 3
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x4
+ subs r2, 0xFD
+ adds r0, r2, 0
+ strh r0, [r1]
+ subs r1, 0xE
+ movs r2, 0xDA
+ lsls r2, 5
+ adds r0, r2, 0
+ strh r0, [r1]
+ bx lr
+ .align 2, 0
+_081435D8: .4byte REG_BG1CNT
+ thumb_func_end sub_81435B8
+
+ thumb_func_start sub_81435DC
+sub_81435DC: @ 81435DC
+ push {r4,lr}
+ adds r2, r0, 0
+ ldr r1, [r2, 0x20]
+ ldr r0, [r2, 0x30]
+ cmp r1, r0
+ beq _08143632
+ ldrh r3, [r2, 0x20]
+ movs r1, 0x20
+ ldrsh r0, [r2, r1]
+ movs r4, 0x30
+ ldrsh r1, [r2, r4]
+ cmp r0, r1
+ bge _081435FC
+ adds r0, r3, 0
+ adds r0, 0xF
+ strh r0, [r2, 0x20]
+_081435FC:
+ ldrh r3, [r2, 0x20]
+ movs r4, 0x20
+ ldrsh r0, [r2, r4]
+ cmp r0, r1
+ ble _0814360C
+ adds r0, r3, 0
+ subs r0, 0xF
+ strh r0, [r2, 0x20]
+_0814360C:
+ ldrh r3, [r2, 0x22]
+ movs r1, 0x22
+ ldrsh r0, [r2, r1]
+ movs r4, 0x32
+ ldrsh r1, [r2, r4]
+ cmp r0, r1
+ bge _08143620
+ adds r0, r3, 0
+ adds r0, 0xA
+ strh r0, [r2, 0x22]
+_08143620:
+ ldrh r3, [r2, 0x22]
+ movs r4, 0x22
+ ldrsh r0, [r2, r4]
+ cmp r0, r1
+ ble _0814363A
+ adds r0, r3, 0
+ subs r0, 0xA
+ strh r0, [r2, 0x22]
+ b _0814363A
+_08143632:
+ movs r0, 0x1
+ strh r0, [r2, 0x2E]
+ ldr r0, _08143640 @ =nullsub_81
+ str r0, [r2, 0x1C]
+_0814363A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08143640: .4byte nullsub_81
+ thumb_func_end sub_81435DC
+
+ thumb_func_start nullsub_81
+nullsub_81: @ 8143644
+ bx lr
+ thumb_func_end nullsub_81
+
+ thumb_func_start sub_8143648
+sub_8143648: @ 8143648
+ push {r4-r7,lr}
+ lsls r1, 24
+ ldr r4, _08143670 @ =gUnknown_02024E8C
+ adds r3, r4, 0
+ ldr r2, _08143674 @ =gUnknown_0840B6B8
+ ldm r2!, {r5-r7}
+ stm r3!, {r5-r7}
+ ldm r2!, {r5-r7}
+ stm r3!, {r5-r7}
+ strh r0, [r4, 0x2]
+ ldr r0, _08143678 @ =gUnknown_0840B69C
+ lsrs r1, 22
+ adds r1, r0
+ ldr r0, [r1]
+ str r0, [r4, 0xC]
+ ldr r0, _0814367C @ =gSpriteAnimTable_81E7C64
+ str r0, [r4, 0x8]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08143670: .4byte gUnknown_02024E8C
+_08143674: .4byte gUnknown_0840B6B8
+_08143678: .4byte gUnknown_0840B69C
+_0814367C: .4byte gSpriteAnimTable_81E7C64
+ thumb_func_end sub_8143648
+
+ thumb_func_start sub_8143680
+sub_8143680: @ 8143680
+ push {r4-r7,lr}
+ lsls r1, 24
+ ldr r4, _081436AC @ =gUnknown_02024E8C
+ adds r3, r4, 0
+ ldr r2, _081436B0 @ =gUnknown_0840B6B8
+ ldm r2!, {r5-r7}
+ stm r3!, {r5-r7}
+ ldm r2!, {r5-r7}
+ stm r3!, {r5-r7}
+ strh r0, [r4, 0x2]
+ ldr r0, _081436B4 @ =gUnknown_0840B69C
+ lsrs r1, 22
+ adds r1, r0
+ ldr r0, [r1]
+ str r0, [r4, 0xC]
+ ldr r0, _081436B8 @ =gUnknown_081EC2A4
+ ldr r0, [r0]
+ str r0, [r4, 0x8]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081436AC: .4byte gUnknown_02024E8C
+_081436B0: .4byte gUnknown_0840B6B8
+_081436B4: .4byte gUnknown_0840B69C
+_081436B8: .4byte gUnknown_081EC2A4
+ thumb_func_end sub_8143680
+
+ thumb_func_start sub_81436BC
+sub_81436BC: @ 81436BC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ adds r6, r0, 0
+ mov r9, r1
+ mov r10, r2
+ mov r8, r3
+ ldr r7, [sp, 0x34]
+ lsls r6, 16
+ lsrs r6, 16
+ mov r0, r9
+ lsls r0, 16
+ lsrs r0, 16
+ mov r9, r0
+ mov r1, r10
+ lsls r1, 16
+ lsrs r1, 16
+ mov r10, r1
+ mov r2, r8
+ lsls r2, 16
+ lsrs r2, 16
+ mov r8, r2
+ lsls r0, r6, 3
+ ldr r1, _08143790 @ =gMonFrontPicTable
+ adds r0, r1
+ ldr r1, _08143794 @ =gMonFrontPicCoords
+ lsls r2, r6, 2
+ adds r2, r1
+ ldrb r1, [r2]
+ ldrb r2, [r2, 0x1]
+ movs r3, 0x80
+ lsls r3, 18
+ ldr r4, _08143798 @ =gUnknown_0840B5A0
+ mov r12, r4
+ mov r5, r8
+ lsls r4, r5, 2
+ add r4, r12
+ ldr r4, [r4]
+ str r4, [sp]
+ str r6, [sp, 0x4]
+ str r7, [sp, 0x8]
+ movs r4, 0x1
+ str r4, [sp, 0xC]
+ bl LoadSpecialPokePic
+ adds r0, r6, 0
+ ldr r1, [sp, 0x30]
+ adds r2, r7, 0
+ bl species_and_otid_get_pal
+ lsls r4, r5, 4
+ movs r2, 0x80
+ lsls r2, 1
+ adds r1, r4, r2
+ lsls r1, 16
+ lsrs r1, 16
+ movs r2, 0x20
+ bl LoadCompressedPalette
+ lsls r1, r5, 24
+ lsrs r1, 24
+ mov r0, r8
+ bl sub_8143648
+ ldr r0, _0814379C @ =gUnknown_02024E8C
+ mov r5, r9
+ lsls r5, 16
+ asrs r5, 16
+ mov r9, r5
+ mov r1, r10
+ lsls r1, 16
+ asrs r1, 16
+ mov r10, r1
+ movs r3, 0xA
+ mov r2, r8
+ subs r3, r2
+ lsls r3, 24
+ lsrs r3, 24
+ mov r1, r9
+ mov r2, r10
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _081437A0 @ =gSprites
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r1
+ ldrb r3, [r2, 0x5]
+ movs r1, 0xF
+ ands r1, r3
+ orrs r1, r4
+ strb r1, [r2, 0x5]
+ add sp, 0x10
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08143790: .4byte gMonFrontPicTable
+_08143794: .4byte gMonFrontPicCoords
+_08143798: .4byte gUnknown_0840B5A0
+_0814379C: .4byte gUnknown_02024E8C
+_081437A0: .4byte gSprites
+ thumb_func_end sub_81436BC
+
+ thumb_func_start sub_81437A4
+sub_81437A4: @ 81437A4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ mov r9, r1
+ mov r10, r2
+ adds r6, r3, 0
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r1, 16
+ lsrs r1, 16
+ mov r9, r1
+ lsls r2, 16
+ lsrs r2, 16
+ mov r10, r2
+ lsls r6, 16
+ lsrs r6, 16
+ lsls r7, r0, 3
+ ldr r1, _08143854 @ =gTrainerFrontPicTable
+ mov r8, r1
+ add r8, r7
+ ldr r1, _08143858 @ =gTrainerFrontPicCoords
+ lsls r2, r0, 2
+ adds r2, r1
+ ldrb r1, [r2]
+ ldrb r2, [r2, 0x1]
+ movs r3, 0x80
+ lsls r3, 18
+ ldr r5, _0814385C @ =gUnknown_0840B5A0
+ lsls r4, r6, 2
+ adds r4, r5
+ ldr r4, [r4]
+ str r4, [sp]
+ str r0, [sp, 0x4]
+ mov r0, r8
+ bl DecompressPicFromTable_2
+ ldr r0, _08143860 @ =gTrainerFrontPicPaletteTable
+ adds r0, r7, r0
+ ldr r0, [r0]
+ lsls r4, r6, 4
+ movs r2, 0x80
+ lsls r2, 1
+ adds r1, r4, r2
+ lsls r1, 16
+ lsrs r1, 16
+ movs r2, 0x20
+ bl LoadCompressedPalette
+ lsls r1, r6, 24
+ lsrs r1, 24
+ adds r0, r6, 0
+ bl sub_8143680
+ ldr r0, _08143864 @ =gUnknown_02024E8C
+ mov r1, r9
+ lsls r1, 16
+ asrs r1, 16
+ mov r9, r1
+ mov r2, r10
+ lsls r2, 16
+ asrs r2, 16
+ mov r10, r2
+ movs r3, 0x1
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _08143868 @ =gSprites
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r1
+ ldrb r3, [r2, 0x5]
+ movs r1, 0xF
+ ands r1, r3
+ orrs r1, r4
+ strb r1, [r2, 0x5]
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08143854: .4byte gTrainerFrontPicTable
+_08143858: .4byte gTrainerFrontPicCoords
+_0814385C: .4byte gUnknown_0840B5A0
+_08143860: .4byte gTrainerFrontPicPaletteTable
+_08143864: .4byte gUnknown_02024E8C
+_08143868: .4byte gSprites
+ thumb_func_end sub_81437A4
+
+ thumb_func_start sub_814386C
+sub_814386C: @ 814386C
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldrh r1, [r5, 0x26]
+ movs r2, 0x26
+ ldrsh r0, [r5, r2]
+ cmp r0, 0x78
+ ble _08143882
+ adds r0, r5, 0
+ bl DestroySprite
+ b _081438BA
+_08143882:
+ adds r0, r1, 0x1
+ ldrh r1, [r5, 0x30]
+ adds r0, r1
+ strh r0, [r5, 0x26]
+ ldrh r4, [r5, 0x2E]
+ lsls r4, 24
+ lsrs r4, 24
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x3
+ ands r0, r1
+ adds r0, 0x8
+ ldr r1, _081438C0 @ =gSineTable
+ lsls r4, 1
+ adds r4, r1
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ muls r0, r1
+ cmp r0, 0
+ bge _081438B0
+ adds r0, 0xFF
+_081438B0:
+ asrs r0, 8
+ strh r0, [r5, 0x24]
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x4
+ strh r0, [r5, 0x2E]
+_081438BA:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081438C0: .4byte gSineTable
+ thumb_func_end sub_814386C
+
+ thumb_func_start sub_81438C4
+sub_81438C4: @ 81438C4
+ push {r4,lr}
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xF0
+ bl __umodsi3
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ bl Random
+ adds r2, r0, 0
+ lsls r2, 16
+ lsrs r2, 16
+ movs r0, 0x7
+ ands r2, r0
+ negs r2, r2
+ ldr r0, _08143934 @ =gSpriteTemplate_840B7A4
+ lsls r4, 16
+ asrs r4, 16
+ lsls r2, 16
+ asrs r2, 16
+ adds r1, r4, 0
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, _08143938 @ =gSprites
+ adds r4, r1, r0
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x11
+ bl __umodsi3
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ bl Random
+ movs r1, 0x3
+ ands r1, r0
+ cmp r1, 0
+ beq _0814393C
+ movs r0, 0
+ b _0814393E
+ .align 2, 0
+_08143934: .4byte gSpriteTemplate_840B7A4
+_08143938: .4byte gSprites
+_0814393C:
+ movs r0, 0x1
+_0814393E:
+ strh r0, [r4, 0x30]
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81438C4
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/intro_credits_graphics.s b/asm/intro_credits_graphics.s
new file mode 100644
index 000000000..8d73f6cf6
--- /dev/null
+++ b/asm/intro_credits_graphics.s
@@ -0,0 +1,1166 @@
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start load_intro_part2_graphics
+load_intro_part2_graphics: @ 8148B8C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _08148BE8 @ =gUnknown_0841225C
+ ldr r1, _08148BEC @ =0x06004000
+ bl LZ77UnCompVram
+ ldr r0, _08148BF0 @ =gUnknown_084126DC
+ ldr r1, _08148BF4 @ =0x06007800
+ bl LZ77UnCompVram
+ ldr r0, _08148BF8 @ =gUnknown_084121FC
+ movs r1, 0xF0
+ movs r2, 0x20
+ bl LoadPalette
+ cmp r4, 0
+ beq _08148BB4
+ cmp r4, 0x1
+ beq _08148C14
+_08148BB4:
+ ldr r0, _08148BFC @ =gUnknown_084128D8
+ movs r1, 0xC0
+ lsls r1, 19
+ bl LZ77UnCompVram
+ ldr r0, _08148C00 @ =gUnknown_08412EB4
+ ldr r1, _08148C04 @ =0x06003000
+ bl LZ77UnCompVram
+ ldr r0, _08148C08 @ =gUnknown_08412818
+ movs r1, 0
+ movs r2, 0x60
+ bl LoadPalette
+ ldr r0, _08148C0C @ =gUnknown_08416B54
+ bl LoadCompressedObjectPic
+ ldr r0, _08148C10 @ =gUnknown_08413184
+ movs r1, 0x80
+ lsls r1, 1
+ movs r2, 0x20
+ bl LoadPalette
+ bl sub_8149248
+ b _08148C46
+ .align 2, 0
+_08148BE8: .4byte gUnknown_0841225C
+_08148BEC: .4byte 0x06004000
+_08148BF0: .4byte gUnknown_084126DC
+_08148BF4: .4byte 0x06007800
+_08148BF8: .4byte gUnknown_084121FC
+_08148BFC: .4byte gUnknown_084128D8
+_08148C00: .4byte gUnknown_08412EB4
+_08148C04: .4byte 0x06003000
+_08148C08: .4byte gUnknown_08412818
+_08148C0C: .4byte gUnknown_08416B54
+_08148C10: .4byte gUnknown_08413184
+_08148C14:
+ ldr r0, _08148C58 @ =gUnknown_08413340
+ movs r1, 0xC0
+ lsls r1, 19
+ bl LZ77UnCompVram
+ ldr r0, _08148C5C @ =gUnknown_084139C8
+ ldr r1, _08148C60 @ =0x06003000
+ bl LZ77UnCompVram
+ ldr r0, _08148C64 @ =gUnknown_08413300
+ movs r1, 0
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r0, _08148C68 @ =gUnknown_08416BDC
+ bl LoadCompressedObjectPic
+ ldr r0, _08148C6C @ =gUnknown_08413CCC
+ movs r1, 0x80
+ lsls r1, 1
+ movs r2, 0x20
+ bl LoadPalette
+ bl sub_8149264
+_08148C46:
+ ldr r1, _08148C70 @ =gUnknown_0203935C
+ movs r0, 0
+ strh r0, [r1]
+ ldr r1, _08148C74 @ =gReservedSpritePaletteCount
+ movs r0, 0x8
+ strb r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08148C58: .4byte gUnknown_08413340
+_08148C5C: .4byte gUnknown_084139C8
+_08148C60: .4byte 0x06003000
+_08148C64: .4byte gUnknown_08413300
+_08148C68: .4byte gUnknown_08416BDC
+_08148C6C: .4byte gUnknown_08413CCC
+_08148C70: .4byte gUnknown_0203935C
+_08148C74: .4byte gReservedSpritePaletteCount
+ thumb_func_end load_intro_part2_graphics
+
+ thumb_func_start sub_8148C78
+sub_8148C78: @ 8148C78
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _08148CA4 @ =REG_BG3CNT
+ ldr r2, _08148CA8 @ =0x00000603
+ adds r0, r2, 0
+ strh r0, [r1]
+ subs r1, 0x2
+ adds r2, 0xFF
+ adds r0, r2, 0
+ strh r0, [r1]
+ subs r1, 0x2
+ ldr r2, _08148CAC @ =0x00000f05
+ adds r0, r2, 0
+ strh r0, [r1]
+ subs r1, 0xA
+ movs r2, 0xF2
+ lsls r2, 5
+ adds r0, r2, 0
+ strh r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08148CA4: .4byte REG_BG3CNT
+_08148CA8: .4byte 0x00000603
+_08148CAC: .4byte 0x00000f05
+ thumb_func_end sub_8148C78
+
+ thumb_func_start sub_8148CB0
+sub_8148CB0: @ 8148CB0
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _08148CD4 @ =gUnknown_0841225C
+ ldr r1, _08148CD8 @ =0x06004000
+ bl LZ77UnCompVram
+ ldr r0, _08148CDC @ =gUnknown_084126DC
+ ldr r1, _08148CE0 @ =0x06007800
+ bl LZ77UnCompVram
+ cmp r4, 0x4
+ bhi _08148CFC
+ lsls r0, r4, 2
+ ldr r1, _08148CE4 @ =_08148CE8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08148CD4: .4byte gUnknown_0841225C
+_08148CD8: .4byte 0x06004000
+_08148CDC: .4byte gUnknown_084126DC
+_08148CE0: .4byte 0x06007800
+_08148CE4: .4byte _08148CE8
+ .align 2, 0
+_08148CE8:
+ .4byte _08148CFC
+ .4byte _08148D58
+ .4byte _08148DC4
+ .4byte _08148DC4
+ .4byte _08148E1C
+_08148CFC:
+ ldr r0, _08148D34 @ =gUnknown_084121FC
+ movs r1, 0xF0
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r0, _08148D38 @ =gUnknown_084128D8
+ movs r1, 0xC0
+ lsls r1, 19
+ bl LZ77UnCompVram
+ ldr r0, _08148D3C @ =gUnknown_08412EB4
+ ldr r1, _08148D40 @ =0x06003000
+ bl LZ77UnCompVram
+ ldr r0, _08148D44 @ =gUnknown_08412818
+ movs r1, 0
+ movs r2, 0x60
+ bl LoadPalette
+ ldr r0, _08148D48 @ =gUnknown_08416B54
+ bl LoadCompressedObjectPic
+ ldr r0, _08148D4C @ =gUnknown_084131C4
+ ldr r1, _08148D50 @ =0x06010000
+ bl LZ77UnCompVram
+ ldr r0, _08148D54 @ =gUnknown_08413184
+ b _08148D8E
+ .align 2, 0
+_08148D34: .4byte gUnknown_084121FC
+_08148D38: .4byte gUnknown_084128D8
+_08148D3C: .4byte gUnknown_08412EB4
+_08148D40: .4byte 0x06003000
+_08148D44: .4byte gUnknown_08412818
+_08148D48: .4byte gUnknown_08416B54
+_08148D4C: .4byte gUnknown_084131C4
+_08148D50: .4byte 0x06010000
+_08148D54: .4byte gUnknown_08413184
+_08148D58:
+ ldr r0, _08148DA0 @ =gUnknown_0841221C
+ movs r1, 0xF0
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r0, _08148DA4 @ =gUnknown_084128D8
+ movs r1, 0xC0
+ lsls r1, 19
+ bl LZ77UnCompVram
+ ldr r0, _08148DA8 @ =gUnknown_08412EB4
+ ldr r1, _08148DAC @ =0x06003000
+ bl LZ77UnCompVram
+ ldr r0, _08148DB0 @ =gUnknown_08412878
+ movs r1, 0
+ movs r2, 0x60
+ bl LoadPalette
+ ldr r0, _08148DB4 @ =gUnknown_08416B54
+ bl LoadCompressedObjectPic
+ ldr r0, _08148DB8 @ =gUnknown_084131C4
+ ldr r1, _08148DBC @ =0x06010000
+ bl LZ77UnCompVram
+ ldr r0, _08148DC0 @ =gUnknown_084131A4
+_08148D8E:
+ movs r1, 0x80
+ lsls r1, 1
+ movs r2, 0x20
+ bl LoadPalette
+ bl sub_8149248
+ b _08148E58
+ .align 2, 0
+_08148DA0: .4byte gUnknown_0841221C
+_08148DA4: .4byte gUnknown_084128D8
+_08148DA8: .4byte gUnknown_08412EB4
+_08148DAC: .4byte 0x06003000
+_08148DB0: .4byte gUnknown_08412878
+_08148DB4: .4byte gUnknown_08416B54
+_08148DB8: .4byte gUnknown_084131C4
+_08148DBC: .4byte 0x06010000
+_08148DC0: .4byte gUnknown_084131A4
+_08148DC4:
+ ldr r0, _08148E04 @ =gUnknown_0841221C
+ movs r1, 0xF0
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r0, _08148E08 @ =gUnknown_08413340
+ movs r1, 0xC0
+ lsls r1, 19
+ bl LZ77UnCompVram
+ ldr r0, _08148E0C @ =gUnknown_084139C8
+ ldr r1, _08148E10 @ =0x06003000
+ bl LZ77UnCompVram
+ ldr r4, _08148E14 @ =gUnknown_08413320
+ adds r0, r4, 0
+ movs r1, 0
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r0, _08148E18 @ =gUnknown_08416BDC
+ bl LoadCompressedObjectPic
+ movs r1, 0x80
+ lsls r1, 1
+ adds r0, r4, 0
+ movs r2, 0x20
+ bl LoadPalette
+ bl sub_8149264
+ b _08148E58
+ .align 2, 0
+_08148E04: .4byte gUnknown_0841221C
+_08148E08: .4byte gUnknown_08413340
+_08148E0C: .4byte gUnknown_084139C8
+_08148E10: .4byte 0x06003000
+_08148E14: .4byte gUnknown_08413320
+_08148E18: .4byte gUnknown_08416BDC
+_08148E1C:
+ ldr r0, _08148E6C @ =gUnknown_0841223C
+ movs r1, 0xF0
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r0, _08148E70 @ =gUnknown_08413E78
+ movs r1, 0xC0
+ lsls r1, 19
+ bl LZ77UnCompVram
+ ldr r0, _08148E74 @ =gUnknown_08414084
+ ldr r1, _08148E78 @ =0x06003000
+ bl LZ77UnCompVram
+ ldr r0, _08148E7C @ =gUnknown_08413E38
+ movs r1, 0
+ movs r2, 0x40
+ bl LoadPalette
+ ldr r0, _08148E80 @ =gUnknown_08416C70
+ bl LoadCompressedObjectPic
+ ldr r0, _08148E84 @ =gUnknown_08414064
+ movs r1, 0x80
+ lsls r1, 1
+ movs r2, 0x20
+ bl LoadPalette
+ bl sub_8149280
+_08148E58:
+ ldr r1, _08148E88 @ =gReservedSpritePaletteCount
+ movs r0, 0x8
+ strb r0, [r1]
+ ldr r1, _08148E8C @ =gUnknown_0203935C
+ movs r0, 0
+ strh r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08148E6C: .4byte gUnknown_0841223C
+_08148E70: .4byte gUnknown_08413E78
+_08148E74: .4byte gUnknown_08414084
+_08148E78: .4byte 0x06003000
+_08148E7C: .4byte gUnknown_08413E38
+_08148E80: .4byte gUnknown_08416C70
+_08148E84: .4byte gUnknown_08414064
+_08148E88: .4byte gReservedSpritePaletteCount
+_08148E8C: .4byte gUnknown_0203935C
+ thumb_func_end sub_8148CB0
+
+ thumb_func_start sub_8148E90
+sub_8148E90: @ 8148E90
+ ldr r1, _08148EB4 @ =REG_BG3CNT
+ ldr r2, _08148EB8 @ =0x00000603
+ adds r0, r2, 0
+ strh r0, [r1]
+ subs r1, 0x2
+ adds r2, 0xFF
+ adds r0, r2, 0
+ strh r0, [r1]
+ subs r1, 0x2
+ ldr r2, _08148EBC @ =0x00000f05
+ adds r0, r2, 0
+ strh r0, [r1]
+ subs r1, 0xA
+ movs r2, 0xFA
+ lsls r2, 5
+ adds r0, r2, 0
+ strh r0, [r1]
+ bx lr
+ .align 2, 0
+_08148EB4: .4byte REG_BG3CNT
+_08148EB8: .4byte 0x00000603
+_08148EBC: .4byte 0x00000f05
+ thumb_func_end sub_8148E90
+
+ thumb_func_start sub_8148EC0
+sub_8148EC0: @ 8148EC0
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ sub sp, 0x4
+ adds r5, r0, 0
+ adds r6, r1, 0
+ mov r8, r2
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r6, 16
+ lsrs r6, 16
+ mov r0, r8
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ lsls r3, 16
+ lsrs r3, 16
+ ldr r1, _08148F34 @ =sub_8148F3C
+ mov r9, r1
+ mov r0, r9
+ movs r1, 0
+ str r3, [sp]
+ bl CreateTask
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r1, _08148F38 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r2, 0
+ strh r5, [r0, 0x8]
+ strh r6, [r0, 0xA]
+ strh r2, [r0, 0xC]
+ strh r2, [r0, 0xE]
+ mov r1, r8
+ strh r1, [r0, 0x10]
+ strh r2, [r0, 0x12]
+ strh r2, [r0, 0x14]
+ ldr r3, [sp]
+ strh r3, [r0, 0x16]
+ movs r1, 0x8
+ strh r1, [r0, 0x18]
+ strh r2, [r0, 0x1A]
+ adds r0, r4, 0
+ bl _call_via_r9
+ adds r0, r4, 0
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08148F34: .4byte sub_8148F3C
+_08148F38: .4byte gTasks
+ thumb_func_end sub_8148EC0
+
+ thumb_func_start sub_8148F3C
+sub_8148F3C: @ 8148F3C
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _08148FB4 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r3, r0, r1
+ ldrh r0, [r3, 0xA]
+ lsls r4, r0, 16
+ adds r6, r1, 0
+ cmp r4, 0
+ beq _08148F7C
+ movs r1, 0xC
+ ldrsh r0, [r3, r1]
+ lsls r0, 16
+ ldrh r1, [r3, 0xE]
+ adds r2, r0, r1
+ lsrs r0, r4, 12
+ subs r2, r0
+ asrs r1, r2, 16
+ strh r1, [r3, 0xC]
+ strh r2, [r3, 0xE]
+ ldr r0, _08148FB8 @ =REG_BG1HOFS
+ strh r1, [r0]
+ ldr r2, _08148FBC @ =REG_BG1VOFS
+ ldr r1, _08148FC0 @ =gUnknown_02039358
+ ldr r0, _08148FC4 @ =gUnknown_0203935A
+ ldrh r0, [r0]
+ ldrh r1, [r1]
+ adds r0, r1
+ strh r0, [r2]
+_08148F7C:
+ ldrh r0, [r3, 0x10]
+ lsls r4, r0, 16
+ cmp r4, 0
+ beq _08148FD8
+ movs r1, 0x12
+ ldrsh r0, [r3, r1]
+ lsls r0, 16
+ ldrh r1, [r3, 0x14]
+ adds r2, r0, r1
+ lsrs r0, r4, 12
+ subs r2, r0
+ asrs r1, r2, 16
+ strh r1, [r3, 0x12]
+ strh r2, [r3, 0x14]
+ ldr r0, _08148FC8 @ =REG_BG2HOFS
+ strh r1, [r0]
+ movs r1, 0x8
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ beq _08148FD0
+ ldr r2, _08148FCC @ =REG_BG2VOFS
+ ldr r1, _08148FC0 @ =gUnknown_02039358
+ ldr r0, _08148FC4 @ =gUnknown_0203935A
+ ldrh r0, [r0]
+ ldrh r1, [r1]
+ adds r0, r1
+ strh r0, [r2]
+ b _08148FD8
+ .align 2, 0
+_08148FB4: .4byte gTasks
+_08148FB8: .4byte REG_BG1HOFS
+_08148FBC: .4byte REG_BG1VOFS
+_08148FC0: .4byte gUnknown_02039358
+_08148FC4: .4byte gUnknown_0203935A
+_08148FC8: .4byte REG_BG2HOFS
+_08148FCC: .4byte REG_BG2VOFS
+_08148FD0:
+ ldr r0, _08149010 @ =REG_BG2VOFS
+ ldr r1, _08149014 @ =gUnknown_02039358
+ ldrh r1, [r1]
+ strh r1, [r0]
+_08148FD8:
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r3, r0, r6
+ ldrh r0, [r3, 0x16]
+ lsls r4, r0, 16
+ cmp r4, 0
+ beq _08149008
+ movs r1, 0x18
+ ldrsh r0, [r3, r1]
+ lsls r0, 16
+ ldrh r1, [r3, 0x1A]
+ adds r2, r0, r1
+ lsrs r0, r4, 12
+ subs r2, r0
+ asrs r1, r2, 16
+ strh r1, [r3, 0x18]
+ strh r2, [r3, 0x1A]
+ ldr r0, _08149018 @ =REG_BG3HOFS
+ strh r1, [r0]
+ ldr r1, _0814901C @ =REG_BG3VOFS
+ ldr r0, _08149014 @ =gUnknown_02039358
+ ldrh r0, [r0]
+ strh r0, [r1]
+_08149008:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08149010: .4byte REG_BG2VOFS
+_08149014: .4byte gUnknown_02039358
+_08149018: .4byte REG_BG3HOFS
+_0814901C: .4byte REG_BG3VOFS
+ thumb_func_end sub_8148F3C
+
+ thumb_func_start sub_8149020
+sub_8149020: @ 8149020
+ push {r4,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _08149100
+ cmp r0, 0x1
+ ble _08149034
+ cmp r0, 0x2
+ beq _08149098
+_08149034:
+ ldr r0, _08149060 @ =gMain
+ ldr r2, [r0, 0x20]
+ movs r0, 0x3
+ ands r0, r2
+ cmp r0, 0
+ bne _08149100
+ ldr r0, _08149064 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08149100
+ movs r0, 0x4
+ ands r2, r0
+ cmp r2, 0
+ beq _0814906C
+ ldr r2, _08149068 @ =gPlttBufferUnfaded
+ ldrh r1, [r2, 0x12]
+ mov r0, sp
+ strh r1, [r0]
+ ldrh r1, [r2, 0x14]
+ b _08149076
+ .align 2, 0
+_08149060: .4byte gMain
+_08149064: .4byte gPaletteFade
+_08149068: .4byte gPlttBufferUnfaded
+_0814906C:
+ ldr r2, _08149094 @ =gPlttBufferUnfaded
+ ldrh r1, [r2, 0x14]
+ mov r0, sp
+ strh r1, [r0]
+ ldrh r1, [r2, 0x12]
+_08149076:
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r4, r0, 0
+ mov r0, sp
+ movs r1, 0x9
+ movs r2, 0x2
+ bl LoadPalette
+ adds r0, r4, 0
+ movs r1, 0xA
+ movs r2, 0x2
+ bl LoadPalette
+ b _08149100
+ .align 2, 0
+_08149094: .4byte gPlttBufferUnfaded
+_08149098:
+ ldr r0, _081490C8 @ =gMain
+ ldr r2, [r0, 0x20]
+ movs r0, 0x3
+ ands r0, r2
+ cmp r0, 0
+ bne _08149100
+ ldr r0, _081490CC @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08149100
+ movs r0, 0x4
+ ands r2, r0
+ cmp r2, 0
+ beq _081490D8
+ mov r1, sp
+ ldr r2, _081490D0 @ =0x00003d27
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r2, _081490D4 @ =0x00000295
+ b _081490E6
+ .align 2, 0
+_081490C8: .4byte gMain
+_081490CC: .4byte gPaletteFade
+_081490D0: .4byte 0x00003d27
+_081490D4: .4byte 0x00000295
+_081490D8:
+ mov r1, sp
+ movs r2, 0xC7
+ lsls r2, 2
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r2, _08149108 @ =0x00003d27
+_081490E6:
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r4, r1, 0
+ mov r0, sp
+ movs r1, 0xC
+ movs r2, 0x2
+ bl LoadPalette
+ adds r0, r4, 0
+ movs r1, 0xD
+ movs r2, 0x2
+ bl LoadPalette
+_08149100:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08149108: .4byte 0x00003d27
+ thumb_func_end sub_8149020
+
+ thumb_func_start sub_814910C
+sub_814910C: @ 814910C
+ push {lr}
+ adds r2, r0, 0
+ ldr r0, _08149124 @ =gUnknown_0203935C
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ beq _08149128
+ adds r0, r2, 0
+ bl DestroySprite
+ b _0814916C
+ .align 2, 0
+_08149124: .4byte gUnknown_0203935C
+_08149128:
+ movs r1, 0x20
+ ldrsh r0, [r2, r1]
+ lsls r0, 16
+ ldrh r1, [r2, 0x32]
+ orrs r0, r1
+ ldrh r1, [r2, 0x30]
+ adds r0, r1
+ asrs r1, r0, 16
+ strh r1, [r2, 0x20]
+ strh r0, [r2, 0x32]
+ cmp r1, 0xFF
+ ble _08149144
+ ldr r0, _08149158 @ =0x0000ffe0
+ strh r0, [r2, 0x20]
+_08149144:
+ movs r1, 0x2E
+ ldrsh r0, [r2, r1]
+ cmp r0, 0
+ beq _08149164
+ ldr r1, _0814915C @ =gUnknown_02039358
+ ldr r0, _08149160 @ =gUnknown_0203935A
+ ldrh r0, [r0]
+ ldrh r1, [r1]
+ adds r0, r1
+ b _08149168
+ .align 2, 0
+_08149158: .4byte 0x0000ffe0
+_0814915C: .4byte gUnknown_02039358
+_08149160: .4byte gUnknown_0203935A
+_08149164:
+ ldr r0, _08149170 @ =gUnknown_02039358
+ ldrh r0, [r0]
+_08149168:
+ negs r0, r0
+ strh r0, [r2, 0x26]
+_0814916C:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08149170: .4byte gUnknown_02039358
+ thumb_func_end sub_814910C
+
+ thumb_func_start sub_8149174
+sub_8149174: @ 8149174
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xC
+ str r1, [sp, 0x4]
+ str r2, [sp, 0x8]
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp]
+ lsls r3, 24
+ lsrs r3, 24
+ mov r8, r3
+ movs r7, 0
+ cmp r7, r8
+ bcs _0814922A
+ ldr r0, _0814923C @ =gSprites
+ mov r10, r0
+ movs r2, 0x3F
+ mov r9, r2
+_0814919E:
+ lsls r6, r7, 3
+ ldr r0, [sp, 0x4]
+ adds r6, r0
+ ldrb r1, [r6, 0x1]
+ ldrb r2, [r6, 0x2]
+ ldrb r3, [r6, 0x3]
+ ldr r0, _08149240 @ =gSpriteTemplate_8416B3C
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r5, r0, 4
+ adds r5, r0
+ lsls r5, 2
+ mov r2, r10
+ adds r4, r5, r2
+ ldrb r2, [r6]
+ lsls r1, r2, 26
+ lsrs r1, 30
+ lsrs r2, 6
+ adds r0, r4, 0
+ movs r3, 0
+ bl CalcCenterToCornerVec
+ ldrb r3, [r4, 0x5]
+ movs r0, 0xC
+ orrs r3, r0
+ strb r3, [r4, 0x5]
+ ldrb r1, [r6]
+ lsls r1, 26
+ lsrs r1, 30
+ lsls r1, 6
+ ldrb r2, [r4, 0x1]
+ mov r0, r9
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r4, 0x1]
+ ldrb r1, [r6]
+ lsrs r1, 6
+ lsls r1, 6
+ ldrb r2, [r4, 0x3]
+ mov r0, r9
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r4, 0x3]
+ movs r0, 0xF
+ ands r3, r0
+ strb r3, [r4, 0x5]
+ ldr r0, _08149244 @ =gSprites + 0x8
+ adds r5, r0
+ ldr r2, [sp, 0x8]
+ str r2, [r5]
+ ldrb r1, [r6]
+ lsls r1, 28
+ lsrs r1, 28
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ movs r1, 0
+ mov r0, sp
+ ldrh r0, [r0]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r6, 0x4]
+ strh r0, [r4, 0x30]
+ strh r1, [r4, 0x32]
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ cmp r7, r8
+ bcc _0814919E
+_0814922A:
+ add sp, 0xC
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0814923C: .4byte gSprites
+_08149240: .4byte gSpriteTemplate_8416B3C
+_08149244: .4byte gSprites + 0x8
+ thumb_func_end sub_8149174
+
+ thumb_func_start sub_8149248
+sub_8149248: @ 8149248
+ push {lr}
+ ldr r1, _0814925C @ =gUnknown_08416B94
+ ldr r2, _08149260 @ =gSpriteAnimTable_8416B84
+ movs r0, 0
+ movs r3, 0x9
+ bl sub_8149174
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0814925C: .4byte gUnknown_08416B94
+_08149260: .4byte gSpriteAnimTable_8416B84
+ thumb_func_end sub_8149248
+
+ thumb_func_start sub_8149264
+sub_8149264: @ 8149264
+ push {lr}
+ ldr r1, _08149278 @ =gUnknown_08416C10
+ ldr r2, _0814927C @ =gSpriteAnimTable_8416C04
+ movs r0, 0x1
+ movs r3, 0xC
+ bl sub_8149174
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08149278: .4byte gUnknown_08416C10
+_0814927C: .4byte gSpriteAnimTable_8416C04
+ thumb_func_end sub_8149264
+
+ thumb_func_start sub_8149280
+sub_8149280: @ 8149280
+ push {lr}
+ ldr r1, _08149294 @ =gUnknown_08416C8C
+ ldr r2, _08149298 @ =gSpriteAnimTable_8416C88
+ movs r0, 0x1
+ movs r3, 0x6
+ bl sub_8149174
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08149294: .4byte gUnknown_08416C8C
+_08149298: .4byte gSpriteAnimTable_8416C88
+ thumb_func_end sub_8149280
+
+ thumb_func_start nullsub_82
+nullsub_82: @ 814929C
+ bx lr
+ thumb_func_end nullsub_82
+
+ thumb_func_start sub_81492A0
+sub_81492A0: @ 81492A0
+ push {r4,lr}
+ ldr r4, _0814930C @ =gSprites
+ movs r1, 0x2E
+ ldrsh r2, [r0, r1]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r4
+ adds r1, 0x3E
+ ldrb r1, [r1]
+ movs r2, 0x3E
+ adds r2, r0
+ mov r12, r2
+ movs r2, 0x4
+ ands r2, r1
+ mov r1, r12
+ ldrb r3, [r1]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r3
+ orrs r1, r2
+ mov r2, r12
+ strb r1, [r2]
+ movs r1, 0x2E
+ ldrsh r2, [r0, r1]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r4
+ ldrh r1, [r1, 0x20]
+ strh r1, [r0, 0x20]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r4
+ ldrh r1, [r1, 0x22]
+ adds r1, 0x8
+ strh r1, [r0, 0x22]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r4
+ ldrh r1, [r1, 0x24]
+ strh r1, [r0, 0x24]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r4
+ ldrh r1, [r1, 0x26]
+ strh r1, [r0, 0x26]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0814930C: .4byte gSprites
+ thumb_func_end sub_81492A0
+
+ thumb_func_start intro_create_brendan_sprite
+intro_create_brendan_sprite: @ 8149310
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ adds r4, r1, 0
+ ldr r0, _0814935C @ =gSpriteTemplate_8416CDC
+ lsls r5, 16
+ asrs r5, 16
+ lsls r4, 16
+ asrs r4, 16
+ adds r1, r5, 0
+ adds r2, r4, 0
+ movs r3, 0
+ bl CreateSprite
+ adds r6, r0, 0
+ lsls r6, 24
+ lsrs r6, 24
+ ldr r0, _08149360 @ =gSpriteTemplate_8416D2C
+ adds r4, 0x8
+ lsls r4, 16
+ asrs r4, 16
+ adds r1, r5, 0
+ adds r2, r4, 0
+ movs r3, 0x1
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08149364 @ =gSprites
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ strh r6, [r1, 0x2E]
+ adds r0, r6, 0
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0814935C: .4byte gSpriteTemplate_8416CDC
+_08149360: .4byte gSpriteTemplate_8416D2C
+_08149364: .4byte gSprites
+ thumb_func_end intro_create_brendan_sprite
+
+ thumb_func_start intro_create_may_sprite
+intro_create_may_sprite: @ 8149368
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ adds r4, r1, 0
+ ldr r0, _081493B4 @ =gSpriteTemplate_8416CF4
+ lsls r5, 16
+ asrs r5, 16
+ lsls r4, 16
+ asrs r4, 16
+ adds r1, r5, 0
+ adds r2, r4, 0
+ movs r3, 0
+ bl CreateSprite
+ adds r6, r0, 0
+ lsls r6, 24
+ lsrs r6, 24
+ ldr r0, _081493B8 @ =gSpriteTemplate_8416D44
+ adds r4, 0x8
+ lsls r4, 16
+ asrs r4, 16
+ adds r1, r5, 0
+ adds r2, r4, 0
+ movs r3, 0x1
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _081493BC @ =gSprites
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ strh r6, [r1, 0x2E]
+ adds r0, r6, 0
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_081493B4: .4byte gSpriteTemplate_8416CF4
+_081493B8: .4byte gSpriteTemplate_8416D44
+_081493BC: .4byte gSprites
+ thumb_func_end intro_create_may_sprite
+
+ thumb_func_start nullsub_83
+nullsub_83: @ 81493C0
+ bx lr
+ thumb_func_end nullsub_83
+
+ thumb_func_start sub_81493C4
+sub_81493C4: @ 81493C4
+ push {r4,lr}
+ ldr r4, _08149420 @ =gSprites
+ movs r1, 0x2E
+ ldrsh r2, [r0, r1]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r4
+ adds r1, 0x3E
+ ldrb r1, [r1]
+ movs r2, 0x3E
+ adds r2, r0
+ mov r12, r2
+ movs r2, 0x4
+ ands r2, r1
+ mov r1, r12
+ ldrb r3, [r1]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r3
+ orrs r1, r2
+ mov r2, r12
+ strb r1, [r2]
+ movs r1, 0x2E
+ ldrsh r2, [r0, r1]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r4
+ ldrh r1, [r1, 0x22]
+ strh r1, [r0, 0x22]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r4
+ ldrh r1, [r1, 0x24]
+ strh r1, [r0, 0x24]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r4
+ ldrh r1, [r1, 0x26]
+ strh r1, [r0, 0x26]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08149420: .4byte gSprites
+ thumb_func_end sub_81493C4
+
+ thumb_func_start intro_create_latios_sprite
+intro_create_latios_sprite: @ 8149424
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ adds r2, r0, 0
+ adds r5, r1, 0
+ ldr r0, _08149490 @ =gSpriteTemplate_8416D7C
+ mov r8, r0
+ lsls r2, 16
+ asrs r4, r2, 16
+ ldr r0, _08149494 @ =0xffe00000
+ adds r2, r0
+ asrs r2, 16
+ lsls r5, 16
+ asrs r5, 16
+ mov r0, r8
+ adds r1, r2, 0
+ adds r2, r5, 0
+ movs r3, 0x2
+ bl CreateSprite
+ adds r6, r0, 0
+ lsls r6, 24
+ lsrs r6, 24
+ adds r4, 0x20
+ lsls r4, 16
+ asrs r4, 16
+ mov r0, r8
+ adds r1, r4, 0
+ adds r2, r5, 0
+ movs r3, 0x2
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r5, _08149498 @ =gSprites
+ lsls r4, r0, 4
+ adds r4, r0
+ lsls r4, 2
+ adds r0, r4, r5
+ strh r6, [r0, 0x2E]
+ movs r1, 0x1
+ bl StartSpriteAnim
+ adds r5, 0x1C
+ adds r4, r5
+ ldr r0, _0814949C @ =sub_81493C4
+ str r0, [r4]
+ adds r0, r6, 0
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08149490: .4byte gSpriteTemplate_8416D7C
+_08149494: .4byte 0xffe00000
+_08149498: .4byte gSprites
+_0814949C: .4byte sub_81493C4
+ thumb_func_end intro_create_latios_sprite
+
+ thumb_func_start intro_create_latias_sprite
+intro_create_latias_sprite: @ 81494A0
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ adds r2, r0, 0
+ adds r5, r1, 0
+ ldr r0, _0814950C @ =gSpriteTemplate_8416D94
+ mov r8, r0
+ lsls r2, 16
+ asrs r4, r2, 16
+ ldr r0, _08149510 @ =0xffe00000
+ adds r2, r0
+ asrs r2, 16
+ lsls r5, 16
+ asrs r5, 16
+ mov r0, r8
+ adds r1, r2, 0
+ adds r2, r5, 0
+ movs r3, 0x2
+ bl CreateSprite
+ adds r6, r0, 0
+ lsls r6, 24
+ lsrs r6, 24
+ adds r4, 0x20
+ lsls r4, 16
+ asrs r4, 16
+ mov r0, r8
+ adds r1, r4, 0
+ adds r2, r5, 0
+ movs r3, 0x2
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r5, _08149514 @ =gSprites
+ lsls r4, r0, 4
+ adds r4, r0
+ lsls r4, 2
+ adds r0, r4, r5
+ strh r6, [r0, 0x2E]
+ movs r1, 0x1
+ bl StartSpriteAnim
+ adds r5, 0x1C
+ adds r4, r5
+ ldr r0, _08149518 @ =sub_81493C4
+ str r0, [r4]
+ adds r0, r6, 0
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0814950C: .4byte gSpriteTemplate_8416D94
+_08149510: .4byte 0xffe00000
+_08149514: .4byte gSprites
+_08149518: .4byte sub_81493C4
+ thumb_func_end intro_create_latias_sprite
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/item_menu.s b/asm/item_menu.s
index e2abfe960..4270b4954 100644
--- a/asm/item_menu.s
+++ b/asm/item_menu.s
@@ -5261,7 +5261,7 @@ sub_80A5AAC: @ 80A5AAC
adds r0, r4
lsls r0, 3
adds r0, r1
- ldr r1, _080A5AE0 @ =sub_80A5B00
+ ldr r1, _080A5AE0 @ =HandleItemMenuPaletteFade
str r1, [r0]
add sp, 0x4
pop {r4}
@@ -5269,7 +5269,7 @@ sub_80A5AAC: @ 80A5AAC
bx r0
.align 2, 0
_080A5ADC: .4byte gTasks
-_080A5AE0: .4byte sub_80A5B00
+_080A5AE0: .4byte HandleItemMenuPaletteFade
thumb_func_end sub_80A5AAC
thumb_func_start sub_80A5AE4
@@ -5287,8 +5287,8 @@ sub_80A5AE4: @ 80A5AE4
bx r0
thumb_func_end sub_80A5AE4
- thumb_func_start sub_80A5B00
-sub_80A5B00: @ 80A5B00
+ thumb_func_start HandleItemMenuPaletteFade
+HandleItemMenuPaletteFade: @ 80A5B00
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
@@ -5318,7 +5318,7 @@ _080A5B32:
.align 2, 0
_080A5B38: .4byte gTasks + 0x8
_080A5B3C: .4byte gPaletteFade
- thumb_func_end sub_80A5B00
+ thumb_func_end HandleItemMenuPaletteFade
thumb_func_start sub_80A5B40
sub_80A5B40: @ 80A5B40
@@ -5420,7 +5420,7 @@ sub_80A5BF8: @ 80A5BF8
bl sub_80A73FC
bl sub_80A7590
ldr r1, _080A5C1C @ =gOtherText_NoPokemon
- ldr r2, _080A5C20 @ =sub_80A5C48
+ ldr r2, _080A5C20 @ =CleanUpItemMenuMessage
adds r0, r4, 0
movs r3, 0x1
bl DisplayCannotUseItemMessage
@@ -5429,7 +5429,7 @@ sub_80A5BF8: @ 80A5BF8
bx r0
.align 2, 0
_080A5C1C: .4byte gOtherText_NoPokemon
-_080A5C20: .4byte sub_80A5C48
+_080A5C20: .4byte CleanUpItemMenuMessage
thumb_func_end sub_80A5BF8
thumb_func_start sub_80A5C24
@@ -5450,8 +5450,8 @@ sub_80A5C24: @ 80A5C24
bx r0
thumb_func_end sub_80A5C24
- thumb_func_start sub_80A5C48
-sub_80A5C48: @ 80A5C48
+ thumb_func_start CleanUpItemMenuMessage
+CleanUpItemMenuMessage: @ 80A5C48
push {r4,lr}
sub sp, 0x4
adds r4, r0, 0
@@ -5489,10 +5489,10 @@ sub_80A5C48: @ 80A5C48
_080A5C90: .4byte gBGTilemapBuffers + 0x800
_080A5C94: .4byte gTasks
_080A5C98: .4byte sub_80A5C24
- thumb_func_end sub_80A5C48
+ thumb_func_end CleanUpItemMenuMessage
- thumb_func_start sub_80A5C9C
-sub_80A5C9C: @ 80A5C9C
+ thumb_func_start CleanUpOverworldMessage
+CleanUpOverworldMessage: @ 80A5C9C
push {r4,lr}
adds r4, r0, 0
lsls r4, 24
@@ -5509,10 +5509,10 @@ sub_80A5C9C: @ 80A5C9C
pop {r4}
pop {r0}
bx r0
- thumb_func_end sub_80A5C9C
+ thumb_func_end CleanUpOverworldMessage
- thumb_func_start sub_80A5CC4
-sub_80A5CC4: @ 80A5CC4
+ thumb_func_start ExecuteItemUseFromBlackPalette
+ExecuteItemUseFromBlackPalette: @ 80A5CC4
push {lr}
bl pal_fill_black
ldr r0, _080A5CD8 @ =Task_CallItemUseOnFieldCallback
@@ -5522,7 +5522,7 @@ sub_80A5CC4: @ 80A5CC4
bx r0
.align 2, 0
_080A5CD8: .4byte Task_CallItemUseOnFieldCallback
- thumb_func_end sub_80A5CC4
+ thumb_func_end ExecuteItemUseFromBlackPalette
thumb_func_start Task_CallItemUseOnFieldCallback
Task_CallItemUseOnFieldCallback: @ 80A5CDC
@@ -6064,7 +6064,7 @@ _080A6128:
lsrs r1, r2, 16
strh r1, [r0, 0x18]
strh r2, [r0, 0x1A]
- ldr r1, _080A6160 @ =sub_80A5B00
+ ldr r1, _080A6160 @ =HandleItemMenuPaletteFade
str r1, [r0]
ldr r1, _080A6164 @ =gUnknown_02038561
movs r0, 0x1
@@ -6080,7 +6080,7 @@ _080A6128:
.align 2, 0
_080A6158: .4byte gTasks
_080A615C: .4byte sub_808B020
-_080A6160: .4byte sub_80A5B00
+_080A6160: .4byte HandleItemMenuPaletteFade
_080A6164: .4byte gUnknown_02038561
_080A6168:
adds r0, r6, 0
@@ -6105,7 +6105,7 @@ sub_80A6178: @ 80A6178
adds r0, r4
lsls r0, 3
adds r0, r1
- ldr r2, _080A61A4 @ =sub_814625C
+ ldr r2, _080A61A4 @ =BerryTagScreen_814625C
lsrs r1, r2, 16
strh r1, [r0, 0x18]
strh r2, [r0, 0x1A]
@@ -6114,7 +6114,7 @@ sub_80A6178: @ 80A6178
bx r0
.align 2, 0
_080A61A0: .4byte gTasks
-_080A61A4: .4byte sub_814625C
+_080A61A4: .4byte BerryTagScreen_814625C
thumb_func_end sub_80A6178
thumb_func_start sub_80A61A8
@@ -7553,7 +7553,7 @@ sub_80A6D1C: @ 80A6D1C
cmp r5, 0x1
bne _080A6D80
bl ScriptContext2_Enable
- bl player_bitmagic
+ bl FreezeMapObjects
bl sub_80594C0
bl sub_80597F4
ldr r1, _080A6D78 @ =gScriptItemId
@@ -7968,7 +7968,7 @@ sub_80A7094: @ 80A7094
movs r3, 0
strh r0, [r1, 0x18]
strh r2, [r1, 0x1A]
- ldr r0, _080A70D4 @ =sub_80A5B00
+ ldr r0, _080A70D4 @ =HandleItemMenuPaletteFade
str r0, [r1]
movs r0, 0x1
negs r0, r0
@@ -7983,7 +7983,7 @@ sub_80A7094: @ 80A7094
.align 2, 0
_080A70CC: .4byte gTasks
_080A70D0: .4byte sub_802E424
-_080A70D4: .4byte sub_80A5B00
+_080A70D4: .4byte HandleItemMenuPaletteFade
thumb_func_end sub_80A7094
thumb_func_start sub_80A70D8
@@ -8264,7 +8264,7 @@ _080A72F4:
mov r0, r8
subs r0, 0x8
adds r0, r6, r0
- ldr r1, _080A7354 @ =sub_80A5B00
+ ldr r1, _080A7354 @ =HandleItemMenuPaletteFade
str r1, [r0]
movs r0, 0x1
negs r0, r0
@@ -8279,7 +8279,7 @@ _080A7344: .4byte gBGTilemapBuffers + 0x800
_080A7348: .4byte gSaveBlock1 + 0x560
_080A734C: .4byte 0x0201e000
_080A7350: .4byte sub_802E424
-_080A7354: .4byte sub_80A5B00
+_080A7354: .4byte HandleItemMenuPaletteFade
_080A7358:
ldrh r0, [r7, 0x1E]
adds r0, 0x1
@@ -9682,7 +9682,7 @@ sub_80A7CF8: @ 80A7CF8
lsrs r4, r0, 24
cmp r4, 0x2A
bne _080A7D44
- bl sub_80B4940
+ bl IsEnigmaBerryValid
cmp r0, 0x1
bne _080A7D44
ldr r4, _080A7D34 @ =gSaveBlock1 + 0x317C
diff --git a/asm/item_use.s b/asm/item_use.s
index 65953583e..c4f6fb74a 100644
--- a/asm/item_use.s
+++ b/asm/item_use.s
@@ -6,853 +6,6 @@
.text
- thumb_func_start sub_80C8FAC
-sub_80C8FAC: @ 80C8FAC
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _080C8FD0 @ =gScriptItemId
- ldrh r0, [r1]
- cmp r0, 0xAF
- bne _080C8FD8
- ldr r1, _080C8FD4 @ =gTasks
- lsls r2, r4, 2
- adds r0, r2, r4
- lsls r0, 3
- adds r0, r1
- ldrh r0, [r0, 0x26]
- subs r0, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- b _080C8FE6
- .align 2, 0
-_080C8FD0: .4byte gScriptItemId
-_080C8FD4: .4byte gTasks
-_080C8FD8:
- ldrh r0, [r1]
- bl ItemId_GetType
- subs r0, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- lsls r2, r4, 2
-_080C8FE6:
- ldr r0, _080C9008 @ =gTasks
- adds r1, r2, r4
- lsls r1, 3
- adds r1, r0
- ldr r2, _080C900C @ =gUnknown_083D61E4
- lsls r0, r3, 2
- adds r0, r2
- ldr r2, [r0]
- lsrs r0, r2, 16
- strh r0, [r1, 0x18]
- strh r2, [r1, 0x1A]
- ldr r0, _080C9010 @ =sub_80A5B00
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C9008: .4byte gTasks
-_080C900C: .4byte gUnknown_083D61E4
-_080C9010: .4byte sub_80A5B00
- thumb_func_end sub_80C8FAC
-
- thumb_func_start unknown_ItemMenu_Confirm
-unknown_ItemMenu_Confirm: @ 80C9014
- push {lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- bl sub_80C8FAC
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- add sp, 0x4
- pop {r0}
- bx r0
- thumb_func_end unknown_ItemMenu_Confirm
-
- thumb_func_start sub_80C9038
-sub_80C9038: @ 80C9038
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl sub_80C8FAC
- movs r0, 0x1
- movs r1, 0
- bl fade_screen
- pop {r0}
- bx r0
- thumb_func_end sub_80C9038
-
- thumb_func_start SetUpItemUseOnFieldCallback
-SetUpItemUseOnFieldCallback: @ 80C9050
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _080C9078 @ =gTasks
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r1
- movs r1, 0xC
- ldrsh r0, [r0, r1]
- cmp r0, 0x1
- beq _080C9084
- ldr r1, _080C907C @ =gUnknown_0300485C
- ldr r0, _080C9080 @ =sub_80A5CC4
- str r0, [r1]
- adds r0, r2, 0
- bl unknown_ItemMenu_Confirm
- b _080C908E
- .align 2, 0
-_080C9078: .4byte gTasks
-_080C907C: .4byte gUnknown_0300485C
-_080C9080: .4byte sub_80A5CC4
-_080C9084:
- ldr r0, _080C9094 @ =gUnknown_03005D00
- ldr r1, [r0]
- adds r0, r2, 0
- bl _call_via_r1
-_080C908E:
- pop {r0}
- bx r0
- .align 2, 0
-_080C9094: .4byte gUnknown_03005D00
- thumb_func_end SetUpItemUseOnFieldCallback
-
- thumb_func_start sub_80C9098
-sub_80C9098: @ 80C9098
- push {r4-r6,lr}
- adds r4, r1, 0
- adds r1, r2, 0
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r4, 24
- lsrs r4, 24
- ldr r5, _080C90CC @ =gStringVar4
- adds r0, r5, 0
- bl StringExpandPlaceholders
- cmp r4, 0
- bne _080C90D4
- movs r0, 0
- movs r1, 0xD
- movs r2, 0xD
- movs r3, 0x14
- bl MenuZeroFillWindowRect
- ldr r2, _080C90D0 @ =sub_80A5C48
- adds r0, r6, 0
- adds r1, r5, 0
- movs r3, 0x1
- bl DisplayItemMessageOnField
- b _080C90E0
- .align 2, 0
-_080C90CC: .4byte gStringVar4
-_080C90D0: .4byte sub_80A5C48
-_080C90D4:
- ldr r2, _080C90E8 @ =sub_80A5C9C
- adds r0, r6, 0
- adds r1, r5, 0
- movs r3, 0
- bl DisplayItemMessageOnField
-_080C90E0:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080C90E8: .4byte sub_80A5C9C
- thumb_func_end sub_80C9098
-
- thumb_func_start DisplayDadsAdviceCannotUseItemMessage
-DisplayDadsAdviceCannotUseItemMessage: @ 80C90EC
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- ldr r2, _080C9100 @ =gOtherText_DadsAdvice
- bl sub_80C9098
- pop {r0}
- bx r0
- .align 2, 0
-_080C9100: .4byte gOtherText_DadsAdvice
- thumb_func_end DisplayDadsAdviceCannotUseItemMessage
-
- thumb_func_start sub_80C9104
-sub_80C9104: @ 80C9104
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- ldr r2, _080C9118 @ =gOtherText_CantGetOffBike
- bl sub_80C9098
- pop {r0}
- bx r0
- .align 2, 0
-_080C9118: .4byte gOtherText_CantGetOffBike
- thumb_func_end sub_80C9104
-
- thumb_func_start CheckIfItemIsTMHMOrEvolutionStone
-CheckIfItemIsTMHMOrEvolutionStone: @ 80C911C
- push {r4,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- adds r0, r4, 0
- bl ItemId_GetFieldFunc
- ldr r1, _080C9134 @ =ItemUseOutOfBattle_TMHM
- cmp r0, r1
- bne _080C9138
- movs r0, 0x1
- b _080C914E
- .align 2, 0
-_080C9134: .4byte ItemUseOutOfBattle_TMHM
-_080C9138:
- adds r0, r4, 0
- bl ItemId_GetFieldFunc
- ldr r1, _080C9148 @ =ItemUseOutOfBattle_EvolutionStone
- cmp r0, r1
- beq _080C914C
- movs r0, 0
- b _080C914E
- .align 2, 0
-_080C9148: .4byte ItemUseOutOfBattle_EvolutionStone
-_080C914C:
- movs r0, 0x2
-_080C914E:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end CheckIfItemIsTMHMOrEvolutionStone
-
- thumb_func_start sub_80C9154
-sub_80C9154: @ 80C9154
- push {r4,lr}
- sub sp, 0x24
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080C9188 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080C9180
- mov r1, sp
- ldr r0, _080C918C @ =gScriptItemId
- ldrh r0, [r0]
- strh r0, [r1, 0x20]
- ldr r1, _080C9190 @ =sub_80A5D04
- mov r0, sp
- movs r2, 0
- bl sub_80F890C
- adds r0, r4, 0
- bl DestroyTask
-_080C9180:
- add sp, 0x24
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C9188: .4byte gPaletteFade
-_080C918C: .4byte gScriptItemId
-_080C9190: .4byte sub_80A5D04
- thumb_func_end sub_80C9154
-
- thumb_func_start ItemUseOutOfBattle_Mail
-ItemUseOutOfBattle_Mail: @ 80C9194
- 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, _080C91C4 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _080C91C8 @ =sub_80C9154
- str r1, [r0]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C91C4: .4byte gTasks
-_080C91C8: .4byte sub_80C9154
- thumb_func_end ItemUseOutOfBattle_Mail
-
- thumb_func_start ItemUseOutOfBattle_Bike
-ItemUseOutOfBattle_Bike: @ 80C91CC
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r5, r0, 24
- 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, 24
- lsrs r4, r0, 24
- ldr r0, _080C924C @ =0x0000082b
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080C9238
- adds r0, r4, 0
- bl MetatileBehavior_IsVerticalRail
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080C9238
- adds r0, r4, 0
- bl MetatileBehavior_IsHorizontalRail
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080C9238
- adds r0, r4, 0
- bl MetatileBehavior_IsIsolatedVerticalRail
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080C9238
- adds r0, r4, 0
- bl MetatileBehavior_IsIsolatedHorizontalRail
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080C9254
-_080C9238:
- ldr r0, _080C9250 @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldrb r1, [r1, 0xC]
- adds r0, r5, 0
- bl sub_80C9104
- b _080C928E
- .align 2, 0
-_080C924C: .4byte 0x0000082b
-_080C9250: .4byte gTasks
-_080C9254:
- bl sub_8053C44
- cmp r0, 0x1
- bne _080C927C
- bl sub_80E5EF4
- lsls r0, 24
- cmp r0, 0
- bne _080C927C
- ldr r1, _080C9274 @ =gUnknown_03005D00
- ldr r0, _080C9278 @ =ItemUseOnFieldCB_Bike
- str r0, [r1]
- adds r0, r5, 0
- bl SetUpItemUseOnFieldCallback
- b _080C928E
- .align 2, 0
-_080C9274: .4byte gUnknown_03005D00
-_080C9278: .4byte ItemUseOnFieldCB_Bike
-_080C927C:
- ldr r0, _080C9298 @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldrb r1, [r1, 0xC]
- adds r0, r5, 0
- bl DisplayDadsAdviceCannotUseItemMessage
-_080C928E:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C9298: .4byte gTasks
- thumb_func_end ItemUseOutOfBattle_Bike
-
- thumb_func_start ItemUseOnFieldCB_Bike
-ItemUseOnFieldCB_Bike: @ 80C929C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r4, _080C92E0 @ =gScriptItemId
- ldrh r0, [r4]
- bl ItemId_GetSecondaryId
- lsls r0, 24
- cmp r0, 0
- bne _080C92B6
- movs r0, 0x2
- bl GetOnOffBike
-_080C92B6:
- ldrh r0, [r4]
- bl ItemId_GetSecondaryId
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080C92CA
- movs r0, 0x4
- bl GetOnOffBike
-_080C92CA:
- bl sub_8064E2C
- bl ScriptContext2_Disable
- adds r0, r5, 0
- bl DestroyTask
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C92E0: .4byte gScriptItemId
- thumb_func_end ItemUseOnFieldCB_Bike
-
- thumb_func_start CanFish
-CanFish: @ 80C92E4
- push {r4-r6,lr}
- sub sp, 0x4
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl GetXYCoordsOneStepInFrontOfPlayer
- 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
- lsls r0, r6, 24
- lsrs r5, r0, 24
- adds r0, r5, 0
- bl MetatileBehavior_IsWaterfall
- lsls r0, 24
- cmp r0, 0
- bne _080C936C
- movs r0, 0x10
- bl TestPlayerAvatarFlags
- lsls r0, 24
- cmp r0, 0
- bne _080C936C
- movs r0, 0x8
- bl TestPlayerAvatarFlags
- lsls r0, 24
- cmp r0, 0
- bne _080C933C
- bl IsPlayerFacingSurfableFishableWater
- lsls r0, 24
- cmp r0, 0
- beq _080C936C
-_080C9338:
- movs r0, 0x1
- b _080C936E
-_080C933C:
- adds r0, r5, 0
- bl MetatileBehavior_IsSurfableWaterOrUnderwater
- lsls r0, 24
- cmp r0, 0
- beq _080C935C
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r4, r2]
- bl MapGridIsImpassableAt
- lsls r0, 24
- cmp r0, 0
- beq _080C9338
-_080C935C:
- lsls r0, r6, 24
- lsrs r0, 24
- bl MetatileBehavior_IsBridge
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080C9338
-_080C936C:
- movs r0, 0
-_080C936E:
- add sp, 0x4
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end CanFish
-
- thumb_func_start ItemUseOutOfBattle_Rod
-ItemUseOutOfBattle_Rod: @ 80C9378
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl CanFish
- cmp r0, 0x1
- bne _080C939C
- ldr r1, _080C9394 @ =gUnknown_03005D00
- ldr r0, _080C9398 @ =ItemUseOnFieldCB_Rod
- str r0, [r1]
- adds r0, r4, 0
- bl SetUpItemUseOnFieldCallback
- b _080C93AE
- .align 2, 0
-_080C9394: .4byte gUnknown_03005D00
-_080C9398: .4byte ItemUseOnFieldCB_Rod
-_080C939C:
- ldr r0, _080C93B4 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldrb r1, [r1, 0xC]
- adds r0, r4, 0
- bl DisplayDadsAdviceCannotUseItemMessage
-_080C93AE:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C93B4: .4byte gTasks
- thumb_func_end ItemUseOutOfBattle_Rod
-
- thumb_func_start ItemUseOnFieldCB_Rod
-ItemUseOnFieldCB_Rod: @ 80C93B8
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _080C93DC @ =gScriptItemId
- ldrh r0, [r0]
- bl ItemId_GetSecondaryId
- lsls r0, 24
- lsrs r0, 24
- bl StartFishing
- adds r0, r4, 0
- bl DestroyTask
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C93DC: .4byte gScriptItemId
- thumb_func_end ItemUseOnFieldCB_Rod
-
- thumb_func_start ItemUseOutOfBattle_Itemfinder
-ItemUseOutOfBattle_Itemfinder: @ 80C93E0
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x27
- bl sav12_xor_increment
- ldr r1, _080C9400 @ =gUnknown_03005D00
- ldr r0, _080C9404 @ =ItemUseOnFieldCB_Itemfinder
- str r0, [r1]
- adds r0, r4, 0
- bl SetUpItemUseOnFieldCallback
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C9400: .4byte gUnknown_03005D00
-_080C9404: .4byte ItemUseOnFieldCB_Itemfinder
- thumb_func_end ItemUseOutOfBattle_Itemfinder
-
- thumb_func_start ItemUseOnFieldCB_Itemfinder
-ItemUseOnFieldCB_Itemfinder: @ 80C9408
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080C9430 @ =gMapHeader
- ldr r0, [r0, 0x4]
- adds r1, r4, 0
- bl ItemfinderCheckForHiddenItems
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080C943C
- ldr r0, _080C9434 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _080C9438 @ =sub_80C9458
- str r0, [r1]
- b _080C9448
- .align 2, 0
-_080C9430: .4byte gMapHeader
-_080C9434: .4byte gTasks
-_080C9438: .4byte sub_80C9458
-_080C943C:
- ldr r1, _080C9450 @ =gOtherText_NoResponse
- ldr r2, _080C9454 @ =sub_80C9520
- adds r0, r4, 0
- movs r3, 0
- bl DisplayItemMessageOnField
-_080C9448:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C9450: .4byte gOtherText_NoResponse
-_080C9454: .4byte sub_80C9520
- thumb_func_end ItemUseOnFieldCB_Itemfinder
-
- thumb_func_start sub_80C9458
-sub_80C9458: @ 80C9458
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r6, r5, 2
- adds r0, r6, r5
- lsls r7, r0, 3
- ldr r0, _080C94AC @ =gTasks + 0x8
- mov r8, r0
- adds r4, r7, r0
- movs r1, 0x6
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080C950C
- movs r2, 0x8
- ldrsh r0, [r4, r2]
- cmp r0, 0x4
- bne _080C9500
- movs r1, 0
- ldrsh r0, [r4, r1]
- movs r2, 0x2
- ldrsh r1, [r4, r2]
- bl sub_80C9908
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _080C94B8
- ldr r1, _080C94B0 @ =gUnknown_083D61F0
- subs r0, 0x1
- adds r0, r1
- ldrb r0, [r0]
- bl sub_80C997C
- mov r0, r8
- subs r0, 0x8
- adds r0, r7, r0
- ldr r1, _080C94B4 @ =sub_80C99EC
- str r1, [r0]
- b _080C9516
- .align 2, 0
-_080C94AC: .4byte gTasks + 0x8
-_080C94B0: .4byte gUnknown_083D61F0
-_080C94B4: .4byte sub_80C99EC
-_080C94B8:
- bl player_get_direction_lower_nybble
- lsls r0, 24
- lsrs r2, r0, 24
- movs r1, 0
- adds r3, r6, 0
- ldr r7, _080C94F4 @ =gUnknown_083D61F0
- movs r6, 0x3
-_080C94C8:
- adds r0, r1, r7
- adds r1, 0x1
- ldrb r0, [r0]
- cmp r2, r0
- bne _080C94D8
- adds r0, r1, 0
- ands r0, r6
- strh r0, [r4, 0xA]
-_080C94D8:
- lsls r0, r1, 24
- lsrs r1, r0, 24
- cmp r1, 0x3
- bls _080C94C8
- ldr r1, _080C94F8 @ =gTasks
- adds r0, r3, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _080C94FC @ =sub_80C9A38
- str r1, [r0]
- movs r0, 0
- strh r0, [r4, 0x6]
- strh r0, [r4, 0x4]
- b _080C9516
- .align 2, 0
-_080C94F4: .4byte gUnknown_083D61F0
-_080C94F8: .4byte gTasks
-_080C94FC: .4byte sub_80C9A38
-_080C9500:
- movs r0, 0x48
- bl PlaySE
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_080C950C:
- ldrh r0, [r4, 0x6]
- adds r0, 0x1
- movs r1, 0x1F
- ands r0, r1
- strh r0, [r4, 0x6]
-_080C9516:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80C9458
-
- thumb_func_start sub_80C9520
-sub_80C9520: @ 80C9520
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- bl sub_8064E2C
- bl ScriptContext2_Disable
- adds r0, r4, 0
- bl DestroyTask
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80C9520
-
- thumb_func_start ItemfinderCheckForHiddenItems
-ItemfinderCheckForHiddenItems: @ 80C9548
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- adds r5, r0, 0
- lsls r1, 24
- lsrs r6, r1, 24
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl PlayerGetDestCoords
- ldr r1, _080C9618 @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0xC]
- movs r3, 0
- mov r9, r4
- ldrb r0, [r5, 0x3]
- cmp r3, r0
- bge _080C95FC
- subs r1, 0x5
- mov r8, r1
-_080C9580:
- lsls r3, 16
- asrs r1, r3, 16
- ldr r2, [r5, 0x10]
- lsls r0, r1, 1
- adds r0, r1
- lsls r4, r0, 2
- adds r1, r4, r2
- ldrb r0, [r1, 0x5]
- adds r7, r3, 0
- cmp r0, 0x7
- bne _080C95EC
- movs r2, 0x96
- lsls r2, 2
- adds r0, r2, 0
- ldrh r1, [r1, 0xA]
- adds r0, r1
- lsls r0, 16
- lsrs r0, 16
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- bne _080C95EC
- ldr r1, [r5, 0x10]
- adds r1, r4, r1
- ldrh r2, [r1]
- adds r2, 0x7
- mov r0, sp
- ldrh r0, [r0]
- subs r2, r0
- ldrh r0, [r1, 0x2]
- adds r0, 0x7
- mov r3, r9
- ldrh r1, [r3]
- subs r0, r1
- lsls r0, 16
- lsrs r0, 16
- lsls r2, 16
- asrs r1, r2, 16
- movs r3, 0xE0
- lsls r3, 11
- adds r2, r3
- lsrs r2, 16
- cmp r2, 0xE
- bhi _080C95EC
- lsls r0, 16
- asrs r2, r0, 16
- cmp r2, r8
- blt _080C95EC
- cmp r2, 0x5
- bgt _080C95EC
- adds r0, r6, 0
- bl sub_80C9838
-_080C95EC:
- movs r1, 0x80
- lsls r1, 9
- adds r0, r7, r1
- lsrs r3, r0, 16
- asrs r0, 16
- ldrb r2, [r5, 0x3]
- cmp r0, r2
- blt _080C9580
-_080C95FC:
- adds r0, r6, 0
- bl sub_80C9720
- ldr r0, _080C9618 @ =gTasks
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 3
- adds r1, r0
- movs r3, 0xC
- ldrsh r0, [r1, r3]
- cmp r0, 0x1
- beq _080C961C
- movs r0, 0
- b _080C961E
- .align 2, 0
-_080C9618: .4byte gTasks
-_080C961C:
- movs r0, 0x1
-_080C961E:
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end ItemfinderCheckForHiddenItems
-
thumb_func_start sub_80C962C
sub_80C962C: @ 80C962C
push {r4-r6,lr}
@@ -1259,8 +412,8 @@ _080C98FA:
bx r0
thumb_func_end sub_80C9838
- thumb_func_start sub_80C9908
-sub_80C9908: @ 80C9908
+ thumb_func_start GetPlayerDirectionTowardsHiddenItem
+GetPlayerDirectionTowardsHiddenItem: @ 80C9908
push {r4,r5,lr}
lsls r0, 16
lsls r1, 16
@@ -1331,10 +484,10 @@ _080C9976:
pop {r4,r5}
pop {r1}
bx r1
- thumb_func_end sub_80C9908
+ thumb_func_end GetPlayerDirectionTowardsHiddenItem
- thumb_func_start sub_80C997C
-sub_80C997C: @ 80C997C
+ thumb_func_start SetPlayerDirectionTowardsItem
+SetPlayerDirectionTowardsItem: @ 80C997C
push {r4,r5,lr}
adds r5, r0, 0
lsls r5, 24
@@ -1375,7 +528,7 @@ sub_80C997C: @ 80C997C
adds r0, r1
lsls r0, 2
adds r0, r4
- bl npc_sync_anim_pause_bits
+ bl UnfreezeMapObject
adds r0, r5, 0
bl PlayerTurnInPlace
pop {r4,r5}
@@ -1383,10 +536,10 @@ sub_80C997C: @ 80C997C
bx r0
.align 2, 0
_080C99E8: .4byte gMapObjects
- thumb_func_end sub_80C997C
+ thumb_func_end SetPlayerDirectionTowardsItem
- thumb_func_start sub_80C99EC
-sub_80C99EC: @ 80C99EC
+ thumb_func_start DisplayItemRespondingMessageAndExitItemfinder
+DisplayItemRespondingMessageAndExitItemfinder: @ 80C99EC
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
@@ -1408,7 +561,7 @@ sub_80C99EC: @ 80C99EC
cmp r0, 0x1
bne _080C9A24
ldr r1, _080C9A30 @ =gOtherText_ItemfinderResponding
- ldr r2, _080C9A34 @ =sub_80C9520
+ ldr r2, _080C9A34 @ =ExitItemfinder
adds r0, r4, 0
movs r3, 0
bl DisplayItemMessageOnField
@@ -1419,11 +572,11 @@ _080C9A24:
.align 2, 0
_080C9A2C: .4byte gMapObjects
_080C9A30: .4byte gOtherText_ItemfinderResponding
-_080C9A34: .4byte sub_80C9520
- thumb_func_end sub_80C99EC
+_080C9A34: .4byte ExitItemfinder
+ thumb_func_end DisplayItemRespondingMessageAndExitItemfinder
- thumb_func_start sub_80C9A38
-sub_80C9A38: @ 80C9A38
+ thumb_func_start RotatePlayerAndExitItemfinder
+RotatePlayerAndExitItemfinder: @ 80C9A38
push {r4,r5,lr}
lsls r0, 24
lsrs r0, 24
@@ -1455,12 +608,12 @@ sub_80C9A38: @ 80C9A38
cmp r0, 0
bne _080C9AAE
_080C9A78:
- ldr r1, _080C9ABC @ =gUnknown_083D61F0
+ ldr r1, _080C9ABC @ =gItemFinderDirections
movs r2, 0xA
ldrsh r0, [r4, r2]
adds r0, r1
ldrb r0, [r0]
- bl sub_80C997C
+ bl SetPlayerDirectionTowardsItem
movs r0, 0x1
strh r0, [r4, 0x4]
ldrh r0, [r4, 0xA]
@@ -1475,8 +628,8 @@ _080C9A78:
asrs r0, 16
cmp r0, 0x4
bne _080C9AAE
- ldr r1, _080C9AC0 @ =gOtherText_ItemfinderFoundItem
- ldr r2, _080C9AC4 @ =sub_80C9520
+ ldr r1, _080C9AC0 @ =gOtherText_ItemfinderItemUnderfoot
+ ldr r2, _080C9AC4 @ =ExitItemfinder
adds r0, r5, 0
movs r3, 0
bl DisplayItemMessageOnField
@@ -1487,10 +640,10 @@ _080C9AAE:
.align 2, 0
_080C9AB4: .4byte gTasks + 0x8
_080C9AB8: .4byte gMapObjects
-_080C9ABC: .4byte gUnknown_083D61F0
-_080C9AC0: .4byte gOtherText_ItemfinderFoundItem
-_080C9AC4: .4byte sub_80C9520
- thumb_func_end sub_80C9A38
+_080C9ABC: .4byte gItemFinderDirections
+_080C9AC0: .4byte gOtherText_ItemfinderItemUnderfoot
+_080C9AC4: .4byte ExitItemfinder
+ thumb_func_end RotatePlayerAndExitItemfinder
thumb_func_start ItemUseOutOfBattle_PokeblockCase
ItemUseOutOfBattle_PokeblockCase: @ 80C9AC8
@@ -1527,7 +680,7 @@ _080C9AF4:
movs r0, 0
bl sub_810BA7C
adds r0, r4, 0
- bl unknown_ItemMenu_Confirm
+ bl ItemMenu_ConfirmNormalFade
b _080C9B2A
.align 2, 0
_080C9B14: .4byte gTasks
@@ -1538,7 +691,7 @@ _080C9B18:
movs r0, 0x1
bl sub_810BA7C
adds r0, r5, 0
- bl sub_80C9038
+ bl ItemMenu_ConfirmComplexFade
_080C9B2A:
pop {r4,r5}
pop {r0}
@@ -1580,7 +733,7 @@ ItemUseOutOfBattle_CoinCase: @ 80C9B38
movs r2, 0xD
movs r3, 0x14
bl MenuZeroFillWindowRect
- ldr r2, _080C9B9C @ =sub_80A5C48
+ ldr r2, _080C9B9C @ =CleanUpItemMenuMessage
adds r0, r5, 0
adds r1, r4, 0
movs r3, 0x1
@@ -1591,9 +744,9 @@ _080C9B8C: .4byte gStringVar1
_080C9B90: .4byte gStringVar4
_080C9B94: .4byte gOtherText_Coins3
_080C9B98: .4byte gTasks
-_080C9B9C: .4byte sub_80A5C48
+_080C9B9C: .4byte CleanUpItemMenuMessage
_080C9BA0:
- ldr r2, _080C9BB4 @ =sub_80A5C9C
+ ldr r2, _080C9BB4 @ =CleanUpOverworldMessage
adds r0, r5, 0
adds r1, r4, 0
movs r3, 0
@@ -1603,7 +756,7 @@ _080C9BAC:
pop {r0}
bx r0
.align 2, 0
-_080C9BB4: .4byte sub_80A5C9C
+_080C9BB4: .4byte CleanUpOverworldMessage
thumb_func_end ItemUseOutOfBattle_CoinCase
thumb_func_start sub_80C9BB8
@@ -1618,7 +771,7 @@ sub_80C9BB8: @ 80C9BB8
cmp r0, 0
beq _080C9BD0
adds r0, r2, 0
- bl sub_80A5C48
+ bl CleanUpItemMenuMessage
_080C9BD0:
pop {r0}
bx r0
@@ -1638,7 +791,7 @@ sub_80C9BD8: @ 80C9BD8
cmp r0, 0
beq _080C9BF0
adds r0, r2, 0
- bl sub_80A5C9C
+ bl CleanUpOverworldMessage
_080C9BF0:
pop {r0}
bx r0
@@ -1721,7 +874,7 @@ sub_80C9C7C: @ 80C9C7C
ldr r0, _080C9CCC @ =sub_80C9D00
str r0, [r1]
ldr r1, _080C9CD0 @ =gUnknown_0300485C
- ldr r0, _080C9CD4 @ =sub_80A5CC4
+ ldr r0, _080C9CD4 @ =ExecuteItemUseFromBlackPalette
str r0, [r1]
ldr r1, _080C9CD8 @ =gTasks
lsls r0, r4, 2
@@ -1733,7 +886,7 @@ sub_80C9C7C: @ 80C9C7C
movs r3, 0
strh r1, [r0, 0x18]
strh r2, [r0, 0x1A]
- ldr r1, _080C9CE0 @ =sub_80A5B00
+ ldr r1, _080C9CE0 @ =HandleItemMenuPaletteFade
str r1, [r0]
movs r0, 0x1
negs r0, r0
@@ -1747,10 +900,10 @@ sub_80C9C7C: @ 80C9C7C
_080C9CC8: .4byte gUnknown_03005D00
_080C9CCC: .4byte sub_80C9D00
_080C9CD0: .4byte gUnknown_0300485C
-_080C9CD4: .4byte sub_80A5CC4
+_080C9CD4: .4byte ExecuteItemUseFromBlackPalette
_080C9CD8: .4byte gTasks
_080C9CDC: .4byte c2_exit_to_overworld_2_switch
-_080C9CE0: .4byte sub_80A5B00
+_080C9CE0: .4byte HandleItemMenuPaletteFade
_080C9CE4:
ldr r0, _080C9CFC @ =gScriptItemId
ldrh r0, [r0]
@@ -1795,7 +948,7 @@ ItemUseOutOfBattle_WailmerPail: @ 80C9D30
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
- bl WaterBerryTree
+ bl TryToWaterBerryTree
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -1852,7 +1005,7 @@ sub_80C9D98: @ 80C9D98
ldr r2, _080C9DAC @ =gUnknown_02038561
movs r1, 0
strb r1, [r2]
- bl unknown_ItemMenu_Confirm
+ bl ItemMenu_ConfirmNormalFade
pop {r0}
bx r0
.align 2, 0
@@ -1865,14 +1018,14 @@ ItemUseOutOfBattle_Medicine: @ 80C9DB0
lsls r0, 24
lsrs r0, 24
ldr r2, _080C9DC4 @ =gUnknown_03004AE4
- ldr r1, _080C9DC8 @ =sub_806FE2C
+ ldr r1, _080C9DC8 @ =UseMedicine
str r1, [r2]
bl sub_80C9D98
pop {r0}
bx r0
.align 2, 0
_080C9DC4: .4byte gUnknown_03004AE4
-_080C9DC8: .4byte sub_806FE2C
+_080C9DC8: .4byte UseMedicine
thumb_func_end ItemUseOutOfBattle_Medicine
thumb_func_start ItemUseOutOfBattle_SacredAsh
@@ -1919,7 +1072,7 @@ _080C9E10:
movs r0, 0x4
strb r0, [r1]
adds r0, r6, 0
- bl unknown_ItemMenu_Confirm
+ bl ItemMenu_ConfirmNormalFade
pop {r4-r6}
pop {r0}
bx r0
@@ -1937,14 +1090,14 @@ ItemUseOutOfBattle_PPRecovery: @ 80C9E3C
lsls r0, 24
lsrs r0, 24
ldr r2, _080C9E50 @ =gUnknown_03004AE4
- ldr r1, _080C9E54 @ =dp05_ether
+ ldr r1, _080C9E54 @ =DoPPRecoveryItemEffect
str r1, [r2]
bl sub_80C9D98
pop {r0}
bx r0
.align 2, 0
_080C9E50: .4byte gUnknown_03004AE4
-_080C9E54: .4byte dp05_ether
+_080C9E54: .4byte DoPPRecoveryItemEffect
thumb_func_end ItemUseOutOfBattle_PPRecovery
thumb_func_start ItemUseOutOfBattle_PPUp
@@ -1953,14 +1106,14 @@ ItemUseOutOfBattle_PPUp: @ 80C9E58
lsls r0, 24
lsrs r0, 24
ldr r2, _080C9E6C @ =gUnknown_03004AE4
- ldr r1, _080C9E70 @ =dp05_pp_up
+ ldr r1, _080C9E70 @ =DoPPUpItemEffect
str r1, [r2]
bl sub_80C9D98
pop {r0}
bx r0
.align 2, 0
_080C9E6C: .4byte gUnknown_03004AE4
-_080C9E70: .4byte dp05_pp_up
+_080C9E70: .4byte DoPPUpItemEffect
thumb_func_end ItemUseOutOfBattle_PPUp
thumb_func_start ItemUseOutOfBattle_RareCandy
@@ -1969,14 +1122,14 @@ ItemUseOutOfBattle_RareCandy: @ 80C9E74
lsls r0, 24
lsrs r0, 24
ldr r2, _080C9E88 @ =gUnknown_03004AE4
- ldr r1, _080C9E8C @ =sub_8070680
+ ldr r1, _080C9E8C @ =DoRareCandyItemEffect
str r1, [r2]
bl sub_80C9D98
pop {r0}
bx r0
.align 2, 0
_080C9E88: .4byte gUnknown_03004AE4
-_080C9E8C: .4byte sub_8070680
+_080C9E8C: .4byte DoRareCandyItemEffect
thumb_func_end ItemUseOutOfBattle_RareCandy
thumb_func_start ItemUseOutOfBattle_TMHM
@@ -2132,14 +1285,14 @@ sub_80C9FC0: @ 80C9FC0
lsls r0, 24
lsrs r0, 24
ldr r2, _080C9FD4 @ =gUnknown_03004AE4
- ldr r1, _080C9FD8 @ =sub_806F06C
+ ldr r1, _080C9FD8 @ =TeachMonTMMove
str r1, [r2]
bl sub_80C9D98
pop {r0}
bx r0
.align 2, 0
_080C9FD4: .4byte gUnknown_03004AE4
-_080C9FD8: .4byte sub_806F06C
+_080C9FD8: .4byte TeachMonTMMove
thumb_func_end sub_80C9FC0
thumb_func_start sub_80C9FDC
@@ -2187,7 +1340,7 @@ ItemUseOutOfBattle_Repel: @ 80CA014
bl VarSet
bl sub_80C9FDC
ldr r1, _080CA058 @ =gStringVar4
- ldr r2, _080CA05C @ =sub_80A5C48
+ ldr r2, _080CA05C @ =CleanUpItemMenuMessage
adds r0, r4, 0
movs r3, 0x1
bl DisplayItemMessageOnField
@@ -2196,10 +1349,10 @@ ItemUseOutOfBattle_Repel: @ 80CA014
_080CA050: .4byte 0x00004021
_080CA054: .4byte gScriptItemId
_080CA058: .4byte gStringVar4
-_080CA05C: .4byte sub_80A5C48
+_080CA05C: .4byte CleanUpItemMenuMessage
_080CA060:
ldr r1, _080CA074 @ =gOtherText_RepelLingers
- ldr r2, _080CA078 @ =sub_80A5C48
+ ldr r2, _080CA078 @ =CleanUpItemMenuMessage
adds r0, r4, 0
movs r3, 0x1
bl DisplayItemMessageOnField
@@ -2209,7 +1362,7 @@ _080CA06C:
bx r0
.align 2, 0
_080CA074: .4byte gOtherText_RepelLingers
-_080CA078: .4byte sub_80A5C48
+_080CA078: .4byte CleanUpItemMenuMessage
thumb_func_end ItemUseOutOfBattle_Repel
thumb_func_start sub_80CA07C
@@ -2247,7 +1400,7 @@ sub_80CA098: @ 80CA098
movs r0, 0x75
bl PlaySE
ldr r1, _080CA0D4 @ =gStringVar4
- ldr r2, _080CA0D8 @ =sub_80A5C48
+ ldr r2, _080CA0D8 @ =CleanUpItemMenuMessage
adds r0, r4, 0
movs r3, 0x1
bl DisplayItemMessageOnField
@@ -2258,7 +1411,7 @@ _080CA0C8:
.align 2, 0
_080CA0D0: .4byte gTasks
_080CA0D4: .4byte gStringVar4
-_080CA0D8: .4byte sub_80A5C48
+_080CA0D8: .4byte CleanUpItemMenuMessage
thumb_func_end sub_80CA098
thumb_func_start ItemUseOutOfBattle_BlackWhiteFlute
@@ -2428,14 +1581,14 @@ ItemUseOutOfBattle_EvolutionStone: @ 80CA228
lsls r0, 24
lsrs r0, 24
ldr r2, _080CA23C @ =gUnknown_03004AE4
- ldr r1, _080CA240 @ =sub_8070DBC
+ ldr r1, _080CA240 @ =DoEvolutionStoneItemEffect
str r1, [r2]
bl sub_80C9D98
pop {r0}
bx r0
.align 2, 0
_080CA23C: .4byte gUnknown_03004AE4
-_080CA240: .4byte sub_8070DBC
+_080CA240: .4byte DoEvolutionStoneItemEffect
thumb_func_end ItemUseOutOfBattle_EvolutionStone
thumb_func_start ItemUseInBattle_PokeBall
@@ -2463,7 +1616,7 @@ _080CA26C:
movs r3, 0x14
bl MenuZeroFillWindowRect
ldr r1, _080CA28C @ =gOtherText_BoxIsFull
- ldr r2, _080CA290 @ =sub_80A5C48
+ ldr r2, _080CA290 @ =CleanUpItemMenuMessage
adds r0, r4, 0
movs r3, 0x1
bl DisplayItemMessageOnField
@@ -2473,7 +1626,7 @@ _080CA284:
bx r0
.align 2, 0
_080CA28C: .4byte gOtherText_BoxIsFull
-_080CA290: .4byte sub_80A5C48
+_080CA290: .4byte CleanUpItemMenuMessage
thumb_func_end ItemUseInBattle_PokeBall
thumb_func_start sub_80CA294
@@ -2573,7 +1726,7 @@ ItemUseInBattle_StatIncrease: @ 80CA310
cmp r2, 0
beq _080CA374
ldr r1, _080CA36C @ =gOtherText_WontHaveAnyEffect
- ldr r2, _080CA370 @ =sub_80A5C48
+ ldr r2, _080CA370 @ =CleanUpItemMenuMessage
adds r0, r5, 0
movs r3, 0x1
bl DisplayItemMessageOnField
@@ -2584,7 +1737,7 @@ _080CA360: .4byte gUnknown_02024E6C
_080CA364: .4byte gPlayerParty
_080CA368: .4byte gScriptItemId
_080CA36C: .4byte gOtherText_WontHaveAnyEffect
-_080CA370: .4byte sub_80A5C48
+_080CA370: .4byte CleanUpItemMenuMessage
_080CA374:
ldr r0, _080CA38C @ =gTasks
lsls r1, r5, 2
@@ -2660,14 +1813,14 @@ ItemUseInBattle_Medicine: @ 80CA3F4
lsls r0, 24
lsrs r0, 24
ldr r2, _080CA408 @ =gUnknown_03004AE4
- ldr r1, _080CA40C @ =sub_806FE2C
+ ldr r1, _080CA40C @ =UseMedicine
str r1, [r2]
bl sub_80CA3C0
pop {r0}
bx r0
.align 2, 0
_080CA408: .4byte gUnknown_03004AE4
-_080CA40C: .4byte sub_806FE2C
+_080CA40C: .4byte UseMedicine
thumb_func_end ItemUseInBattle_Medicine
thumb_func_start unref_sub_80CA410
@@ -2692,14 +1845,14 @@ ItemUseInBattle_PPRecovery: @ 80CA42C
lsls r0, 24
lsrs r0, 24
ldr r2, _080CA440 @ =gUnknown_03004AE4
- ldr r1, _080CA444 @ =dp05_ether
+ ldr r1, _080CA444 @ =DoPPRecoveryItemEffect
str r1, [r2]
bl sub_80CA3C0
pop {r0}
bx r0
.align 2, 0
_080CA440: .4byte gUnknown_03004AE4
-_080CA444: .4byte dp05_ether
+_080CA444: .4byte DoPPRecoveryItemEffect
thumb_func_end ItemUseInBattle_PPRecovery
thumb_func_start unref_sub_80CA448
@@ -2745,7 +1898,7 @@ _080CA4A4: .4byte gOtherText_SnapConfusion
_080CA4A8: .4byte sub_80A7094
_080CA4AC:
ldr r1, _080CA4C0 @ =gOtherText_WontHaveAnyEffect
- ldr r2, _080CA4C4 @ =sub_80A5C48
+ ldr r2, _080CA4C4 @ =CleanUpItemMenuMessage
adds r0, r5, 0
movs r3, 0x1
bl DisplayItemMessageOnField
@@ -2755,7 +1908,7 @@ _080CA4B8:
bx r0
.align 2, 0
_080CA4C0: .4byte gOtherText_WontHaveAnyEffect
-_080CA4C4: .4byte sub_80A5C48
+_080CA4C4: .4byte CleanUpItemMenuMessage
thumb_func_end unref_sub_80CA448
thumb_func_start ItemUseInBattle_Escape
@@ -2768,7 +1921,7 @@ ItemUseInBattle_Escape: @ 80CA4C8
movs r2, 0xD
movs r3, 0x14
bl MenuZeroFillWindowRect
- ldr r0, _080CA4F8 @ =gUnknown_020239F8
+ ldr r0, _080CA4F8 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x8
ands r0, r1
@@ -2782,7 +1935,7 @@ ItemUseInBattle_Escape: @ 80CA4C8
bl DisplayItemMessageOnField
b _080CA516
.align 2, 0
-_080CA4F8: .4byte gUnknown_020239F8
+_080CA4F8: .4byte gBattleTypeFlags
_080CA4FC: .4byte gStringVar4
_080CA500: .4byte sub_80A7094
_080CA504:
@@ -2809,7 +1962,7 @@ ItemUseOutOfBattle_EnigmaBerry: @ 80CA520
lsrs r4, r0, 24
ldr r0, _080CA544 @ =gScriptItemId
ldrh r0, [r0]
- bl sub_8070E48
+ bl GetItemEffectType
lsls r0, 24
lsrs r0, 24
subs r0, 0x1
@@ -2938,7 +2091,7 @@ ItemUseInBattle_EnigmaBerry: @ 80CA64C
lsrs r4, r0, 24
ldr r0, _080CA66C @ =gScriptItemId
ldrh r0, [r0]
- bl sub_8070E48
+ bl GetItemEffectType
lsls r0, 24
lsrs r0, 24
cmp r0, 0x15
diff --git a/asm/load_save.s b/asm/load_save.s
deleted file mode 100644
index 09a9ea969..000000000
--- a/asm/load_save.s
+++ /dev/null
@@ -1,444 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start CheckForFlashMemory
-CheckForFlashMemory: @ 80479CC
- push {lr}
- bl IdentifyFlash
- lsls r0, 16
- cmp r0, 0
- bne _080479E8
- ldr r1, _080479E4 @ =gUnknown_3004820
- movs r0, 0x1
- str r0, [r1]
- bl InitFlashTimer
- b _080479EE
- .align 2, 0
-_080479E4: .4byte gUnknown_3004820
-_080479E8:
- ldr r1, _080479F4 @ =gUnknown_3004820
- movs r0, 0
- str r0, [r1]
-_080479EE:
- pop {r0}
- bx r0
- .align 2, 0
-_080479F4: .4byte gUnknown_3004820
- thumb_func_end CheckForFlashMemory
-
- thumb_func_start sub_80479F8
-sub_80479F8: @ 80479F8
- ldr r0, _08047A00 @ =gSaveBlock2
- ldrb r0, [r0, 0x9]
- bx lr
- .align 2, 0
-_08047A00: .4byte gSaveBlock2
- thumb_func_end sub_80479F8
-
- thumb_func_start sub_8047A04
-sub_8047A04: @ 8047A04
- ldr r1, _08047A0C @ =gSaveBlock2
- movs r0, 0
- strb r0, [r1, 0x9]
- bx lr
- .align 2, 0
-_08047A0C: .4byte gSaveBlock2
- thumb_func_end sub_8047A04
-
- thumb_func_start sub_8047A10
-sub_8047A10: @ 8047A10
- ldr r1, _08047A18 @ =gSaveBlock2
- movs r0, 0x1
- strb r0, [r1, 0x9]
- bx lr
- .align 2, 0
-_08047A18: .4byte gSaveBlock2
- thumb_func_end sub_8047A10
-
- thumb_func_start sub_8047A1C
-sub_8047A1C: @ 8047A1C
- push {lr}
- movs r0, 0
- bl gpu_sync_bg_hide
- ldr r1, _08047A30 @ =gSaveBlock2
- movs r0, 0x1
- strb r0, [r1, 0x9]
- pop {r0}
- bx r0
- .align 2, 0
-_08047A30: .4byte gSaveBlock2
- thumb_func_end sub_8047A1C
-
- thumb_func_start sub_8047A34
-sub_8047A34: @ 8047A34
- ldr r1, _08047A3C @ =gSaveBlock2
- movs r0, 0
- strb r0, [r1, 0x9]
- bx lr
- .align 2, 0
-_08047A3C: .4byte gSaveBlock2
- thumb_func_end sub_8047A34
-
- thumb_func_start sub_8047A40
-sub_8047A40: @ 8047A40
- push {r4-r6,lr}
- ldr r2, _08047A78 @ =gSaveBlock1
- ldr r0, _08047A7C @ =gPlayerPartyCount
- ldrb r1, [r0]
- movs r3, 0x8D
- lsls r3, 2
- adds r0, r2, r3
- strb r1, [r0]
- movs r6, 0
- movs r0, 0x8E
- lsls r0, 2
- adds r5, r2, r0
- movs r4, 0
-_08047A5A:
- ldr r1, _08047A80 @ =gPlayerParty
- adds r1, r4, r1
- adds r0, r5, 0
- movs r2, 0x64
- bl memcpy
- adds r5, 0x64
- adds r4, 0x64
- adds r6, 0x1
- cmp r6, 0x5
- ble _08047A5A
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08047A78: .4byte gSaveBlock1
-_08047A7C: .4byte gPlayerPartyCount
-_08047A80: .4byte gPlayerParty
- thumb_func_end sub_8047A40
-
- thumb_func_start copy_player_party_from_sav1
-copy_player_party_from_sav1: @ 8047A84
- push {r4-r6,lr}
- ldr r0, _08047AC0 @ =gPlayerPartyCount
- ldr r1, _08047AC4 @ =gSaveBlock1
- movs r2, 0x8D
- lsls r2, 2
- adds r1, r2
- ldrb r1, [r1]
- strb r1, [r0]
- ldr r4, _08047AC8 @ =gPlayerParty
- movs r5, 0
- movs r0, 0xFA
- lsls r0, 1
- adds r6, r4, r0
-_08047A9E:
- ldr r1, _08047AC4 @ =gSaveBlock1
- adds r1, r5, r1
- movs r2, 0x8E
- lsls r2, 2
- adds r1, r2
- adds r0, r4, 0
- movs r2, 0x64
- bl memcpy
- adds r4, 0x64
- adds r5, 0x64
- cmp r4, r6
- ble _08047A9E
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08047AC0: .4byte gPlayerPartyCount
-_08047AC4: .4byte gSaveBlock1
-_08047AC8: .4byte gPlayerParty
- thumb_func_end copy_player_party_from_sav1
-
- thumb_func_start sub_8047ACC
-sub_8047ACC: @ 8047ACC
- push {r4-r7,lr}
- ldr r0, _08047AFC @ =gSaveBlock1
- ldr r4, _08047B00 @ =gMapObjects
- movs r1, 0x9E
- lsls r1, 4
- adds r3, r0, r1
- movs r2, 0xF
-_08047ADA:
- adds r1, r3, 0
- adds r0, r4, 0
- ldm r0!, {r5-r7}
- stm r1!, {r5-r7}
- ldm r0!, {r5-r7}
- stm r1!, {r5-r7}
- ldm r0!, {r5-r7}
- stm r1!, {r5-r7}
- adds r4, 0x24
- adds r3, 0x24
- subs r2, 0x1
- cmp r2, 0
- bge _08047ADA
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08047AFC: .4byte gSaveBlock1
-_08047B00: .4byte gMapObjects
- thumb_func_end sub_8047ACC
-
- thumb_func_start save_deserialize_npcs
-save_deserialize_npcs: @ 8047B04
- push {r4-r7,lr}
- ldr r0, _08047B34 @ =gSaveBlock1
- movs r1, 0x9E
- lsls r1, 4
- adds r4, r0, r1
- ldr r3, _08047B38 @ =gMapObjects
- movs r2, 0xF
-_08047B12:
- adds r1, r3, 0
- adds r0, r4, 0
- ldm r0!, {r5-r7}
- stm r1!, {r5-r7}
- ldm r0!, {r5-r7}
- stm r1!, {r5-r7}
- ldm r0!, {r5-r7}
- stm r1!, {r5-r7}
- adds r4, 0x24
- adds r3, 0x24
- subs r2, 0x1
- cmp r2, 0
- bge _08047B12
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08047B34: .4byte gSaveBlock1
-_08047B38: .4byte gMapObjects
- thumb_func_end save_deserialize_npcs
-
- thumb_func_start save_serialize_game
-save_serialize_game: @ 8047B3C
- push {lr}
- bl sub_8047A40
- bl sub_8047ACC
- pop {r0}
- bx r0
- thumb_func_end save_serialize_game
-
- thumb_func_start save_deserialize_game
-save_deserialize_game: @ 8047B4C
- push {lr}
- bl copy_player_party_from_sav1
- bl save_deserialize_npcs
- pop {r0}
- bx r0
- thumb_func_end save_deserialize_game
-
- thumb_func_start copy_bags_and_unk_data_from_save_blocks
-copy_bags_and_unk_data_from_save_blocks: @ 8047B5C
- push {r4-r7,lr}
- ldr r0, _08047C0C @ =gSaveBlock1
- movs r1, 0xAC
- lsls r1, 3
- adds r3, r0, r1
- ldr r1, _08047C10 @ =gUnknown_020291F4
- movs r2, 0x13
-_08047B6A:
- ldm r3!, {r0}
- stm r1!, {r0}
- subs r2, 0x1
- cmp r2, 0
- bge _08047B6A
- ldr r1, _08047C10 @ =gUnknown_020291F4
- ldr r0, _08047C0C @ =gSaveBlock1
- movs r2, 0xB6
- lsls r2, 3
- adds r3, r0, r2
- adds r1, 0x50
- movs r2, 0x13
-_08047B82:
- ldm r3!, {r0}
- stm r1!, {r0}
- subs r2, 0x1
- cmp r2, 0
- bge _08047B82
- ldr r1, _08047C10 @ =gUnknown_020291F4
- ldr r0, _08047C0C @ =gSaveBlock1
- movs r5, 0xC0
- lsls r5, 3
- adds r3, r0, r5
- adds r1, 0xA0
- movs r2, 0xF
-_08047B9A:
- ldm r3!, {r0}
- stm r1!, {r0}
- subs r2, 0x1
- cmp r2, 0
- bge _08047B9A
- ldr r1, _08047C10 @ =gUnknown_020291F4
- ldr r0, _08047C0C @ =gSaveBlock1
- movs r6, 0xC8
- lsls r6, 3
- adds r3, r0, r6
- adds r1, 0xE0
- movs r2, 0x3F
-_08047BB2:
- ldm r3!, {r0}
- stm r1!, {r0}
- subs r2, 0x1
- cmp r2, 0
- bge _08047BB2
- ldr r1, _08047C10 @ =gUnknown_020291F4
- ldr r0, _08047C0C @ =gSaveBlock1
- movs r7, 0xE8
- lsls r7, 3
- adds r3, r0, r7
- movs r0, 0xF0
- lsls r0, 1
- adds r1, r0
- movs r2, 0x2D
-_08047BCE:
- ldm r3!, {r0}
- stm r1!, {r0}
- subs r2, 0x1
- cmp r2, 0
- bge _08047BCE
- ldr r0, _08047C10 @ =gUnknown_020291F4
- ldr r4, _08047C0C @ =gSaveBlock1
- movs r1, 0xA6
- lsls r1, 2
- adds r3, r0, r1
- ldr r2, _08047C14 @ =0x00002b4c
- mov r12, r2
- movs r2, 0xF
-_08047BE8:
- adds r1, r3, 0
- mov r5, r12
- adds r0, r4, r5
- ldm r0!, {r5-r7}
- stm r1!, {r5-r7}
- ldm r0!, {r5-r7}
- stm r1!, {r5-r7}
- ldm r0!, {r5-r7}
- stm r1!, {r5-r7}
- adds r4, 0x24
- adds r3, 0x24
- subs r2, 0x1
- cmp r2, 0
- bge _08047BE8
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08047C0C: .4byte gSaveBlock1
-_08047C10: .4byte gUnknown_020291F4
-_08047C14: .4byte 0x00002b4c
- thumb_func_end copy_bags_and_unk_data_from_save_blocks
-
- thumb_func_start copy_bags_and_unk_data_to_save_blocks
-copy_bags_and_unk_data_to_save_blocks: @ 8047C18
- push {r4-r7,lr}
- ldr r0, _08047CCC @ =gSaveBlock1
- ldr r3, _08047CD0 @ =gUnknown_020291F4
- movs r2, 0xAC
- lsls r2, 3
- adds r1, r0, r2
- movs r2, 0x13
-_08047C26:
- ldm r3!, {r0}
- stm r1!, {r0}
- subs r2, 0x1
- cmp r2, 0
- bge _08047C26
- ldr r1, _08047CCC @ =gSaveBlock1
- ldr r0, _08047CD0 @ =gUnknown_020291F4
- adds r3, r0, 0
- adds r3, 0x50
- movs r5, 0xB6
- lsls r5, 3
- adds r1, r5
- movs r2, 0x13
-_08047C40:
- ldm r3!, {r0}
- stm r1!, {r0}
- subs r2, 0x1
- cmp r2, 0
- bge _08047C40
- ldr r1, _08047CCC @ =gSaveBlock1
- ldr r0, _08047CD0 @ =gUnknown_020291F4
- adds r3, r0, 0
- adds r3, 0xA0
- movs r6, 0xC0
- lsls r6, 3
- adds r1, r6
- movs r2, 0xF
-_08047C5A:
- ldm r3!, {r0}
- stm r1!, {r0}
- subs r2, 0x1
- cmp r2, 0
- bge _08047C5A
- ldr r1, _08047CCC @ =gSaveBlock1
- ldr r0, _08047CD0 @ =gUnknown_020291F4
- adds r3, r0, 0
- adds r3, 0xE0
- movs r7, 0xC8
- lsls r7, 3
- adds r1, r7
- movs r2, 0x3F
-_08047C74:
- ldm r3!, {r0}
- stm r1!, {r0}
- subs r2, 0x1
- cmp r2, 0
- bge _08047C74
- ldr r1, _08047CCC @ =gSaveBlock1
- ldr r0, _08047CD0 @ =gUnknown_020291F4
- movs r2, 0xF0
- lsls r2, 1
- adds r3, r0, r2
- movs r5, 0xE8
- lsls r5, 3
- adds r1, r5
- movs r2, 0x2D
-_08047C90:
- ldm r3!, {r0}
- stm r1!, {r0}
- subs r2, 0x1
- cmp r2, 0
- bge _08047C90
- ldr r0, _08047CCC @ =gSaveBlock1
- ldr r4, _08047CD0 @ =gUnknown_020291F4
- ldr r6, _08047CD4 @ =0x00002b4c
- adds r3, r0, r6
- movs r7, 0xA6
- lsls r7, 2
- mov r12, r7
- movs r2, 0xF
-_08047CAA:
- adds r1, r3, 0
- mov r5, r12
- adds r0, r4, r5
- ldm r0!, {r5-r7}
- stm r1!, {r5-r7}
- ldm r0!, {r5-r7}
- stm r1!, {r5-r7}
- ldm r0!, {r5-r7}
- stm r1!, {r5-r7}
- adds r4, 0x24
- adds r3, 0x24
- subs r2, 0x1
- cmp r2, 0
- bge _08047CAA
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08047CCC: .4byte gSaveBlock1
-_08047CD0: .4byte gUnknown_020291F4
-_08047CD4: .4byte 0x00002b4c
- thumb_func_end copy_bags_and_unk_data_to_save_blocks
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/macros/battle_anim.inc b/asm/macros/battle_anim.inc
index fc2777326..4ff845032 100644
--- a/asm/macros/battle_anim.inc
+++ b/asm/macros/battle_anim.inc
@@ -8,24 +8,24 @@
.2byte \id
.endm
- .macro sprite template, priority, argc=0, argv:vararg
+ .macro sprite template, priority, argv:vararg
.byte 0x02
.4byte \template
.byte \priority
- .byte \argc
- .if \argc > 0
+ .byte (.Lsprite_\@_2 - .Lsprite_\@_1) / 2
+.Lsprite_\@_1:
.2byte \argv
- .endif
+.Lsprite_\@_2:
.endm
- .macro createtask addr, priority, argc=0, argv:vararg
+ .macro createtask addr, priority, argv:vararg
.byte 0x03
.4byte \addr
.byte \priority
- .byte \argc
- .if \argc > 0
+ .byte (.Lcreatetask_\@_2 - .Lcreatetask_\@_1) / 2
+.Lcreatetask_\@_1:
.2byte \argv
- .endif
+.Lcreatetask_\@_2:
.endm
.macro pause delay
@@ -167,13 +167,13 @@
.2byte \bldcnt
.endm
- .macro createtask_1F addr, argc=0, argv:vararg
+ .macro createtask_1F addr, argv:vararg
.byte 0x1F
.4byte \addr
- .byte \argc
- .if \argc > 0
+ .byte (.Lcreatetask_1F_\@_2 - .Lcreatetask_1F_\@_1) / 2
+.Lcreatetask_1F_\@_1:
.2byte \argv
- .endif
+.Lcreatetask_1F_\@_2:
.endm
.macro waitsound
diff --git a/asm/mail.s b/asm/mail.s
deleted file mode 100644
index a08571018..000000000
--- a/asm/mail.s
+++ /dev/null
@@ -1,892 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_80F890C
-sub_80F890C: @ 80F890C
- push {r4-r6,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r6, r1, 0
- lsls r2, 24
- lsrs r5, r2, 24
- ldr r2, _080F8958 @ =0x02000000
- adds r1, r2, 0
- adds r1, 0xFF
- movs r0, 0x2
- strb r0, [r1]
- adds r0, 0xFE
- adds r1, r2, r0
- movs r0, 0x1
- strb r0, [r1]
- movs r0, 0x82
- lsls r0, 1
- adds r1, r2, r0
- ldr r0, _080F895C @ =sub_80EB3FC
- str r0, [r1]
- movs r0, 0x84
- lsls r0, 1
- adds r1, r2, r0
- ldr r0, _080F8960 @ =ConvertEasyChatWordsToString
- str r0, [r1]
- ldrh r1, [r4, 0x20]
- adds r0, r1, 0
- subs r0, 0x79
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xB
- bhi _080F8964
- subs r1, 0x79
- adds r0, r2, 0
- adds r0, 0xFA
- strb r1, [r0]
- b _080F896E
- .align 2, 0
-_080F8958: .4byte 0x02000000
-_080F895C: .4byte sub_80EB3FC
-_080F8960: .4byte ConvertEasyChatWordsToString
-_080F8964:
- adds r1, r2, 0
- adds r1, 0xFA
- movs r0, 0
- strb r0, [r1]
- movs r5, 0
-_080F896E:
- ldr r1, _080F8994 @ =0x02000000
- movs r2, 0x80
- lsls r2, 1
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- beq _080F8980
- cmp r0, 0x1
- beq _080F899C
-_080F8980:
- movs r0, 0x86
- lsls r0, 1
- adds r2, r1, r0
- adds r0, r1, 0
- adds r0, 0xFA
- ldrb r0, [r0]
- lsls r0, 3
- ldr r1, _080F8998 @ =gUnknown_083E5730
- b _080F89AC
- .align 2, 0
-_080F8994: .4byte 0x02000000
-_080F8998: .4byte gUnknown_083E5730
-_080F899C:
- movs r0, 0x86
- lsls r0, 1
- adds r2, r1, r0
- adds r0, r1, 0
- adds r0, 0xFA
- ldrb r0, [r0]
- lsls r0, 3
- ldr r1, _080F89DC @ =gUnknown_083E57A4
-_080F89AC:
- adds r0, r1
- str r0, [r2]
- ldrh r0, [r4, 0x1E]
- mov r1, sp
- bl sub_80A2D64
- lsls r0, 16
- ldr r1, _080F89E0 @ =0xffff0000
- adds r0, r1
- movs r1, 0xCD
- lsls r1, 17
- cmp r0, r1
- bhi _080F89F8
- ldr r0, _080F89E4 @ =0x02000000
- adds r1, r0, 0
- adds r1, 0xFA
- ldrb r2, [r1]
- adds r1, r0, 0
- cmp r2, 0x6
- beq _080F89E8
- cmp r2, 0x9
- beq _080F89F0
- b _080F89FA
- .align 2, 0
-_080F89DC: .4byte gUnknown_083E57A4
-_080F89E0: .4byte 0xffff0000
-_080F89E4: .4byte 0x02000000
-_080F89E8:
- adds r2, r1, 0
- adds r2, 0xFB
- movs r0, 0x1
- b _080F8A00
-_080F89F0:
- adds r2, r1, 0
- adds r2, 0xFB
- movs r0, 0x2
- b _080F8A00
-_080F89F8:
- ldr r1, _080F8A20 @ =0x02000000
-_080F89FA:
- adds r2, r1, 0
- adds r2, 0xFB
- movs r0, 0
-_080F8A00:
- strb r0, [r2]
- adds r0, r1, 0
- adds r0, 0xF4
- str r4, [r0]
- subs r0, 0x8
- str r6, [r0]
- adds r0, 0xC
- strb r5, [r0]
- ldr r0, _080F8A24 @ =sub_80F8D50
- bl SetMainCallback2
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080F8A20: .4byte 0x02000000
-_080F8A24: .4byte sub_80F8D50
- thumb_func_end sub_80F890C
-
- thumb_func_start sub_80F8A28
-sub_80F8A28: @ 80F8A28
- push {r4,r5,lr}
- sub sp, 0x8
- ldr r0, _080F8A44 @ =gMain
- ldr r1, _080F8A48 @ =0x0000043c
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x12
- bls _080F8A3A
- b _080F8D3C
-_080F8A3A:
- lsls r0, 2
- ldr r1, _080F8A4C @ =_080F8A50
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080F8A44: .4byte gMain
-_080F8A48: .4byte 0x0000043c
-_080F8A4C: .4byte _080F8A50
- .align 2, 0
-_080F8A50:
- .4byte _080F8A9C
- .4byte _080F8AB0
- .4byte _080F8AC8
- .4byte _080F8ACE
- .4byte _080F8AD4
- .4byte _080F8ADA
- .4byte _080F8B10
- .4byte _080F8B1C
- .4byte _080F8B28
- .4byte _080F8B34
- .4byte _080F8B3A
- .4byte _080F8B54
- .4byte _080F8B78
- .4byte _080F8BA0
- .4byte _080F8C14
- .4byte _080F8C2C
- .4byte _080F8C58
- .4byte _080F8CBC
- .4byte _080F8CC6
-_080F8A9C:
- movs r0, 0
- bl SetVBlankCallback
- bl remove_some_task
- movs r1, 0x80
- lsls r1, 19
- movs r0, 0
- strh r0, [r1]
- b _080F8D30
-_080F8AB0:
- add r1, sp, 0x4
- movs r0, 0
- strh r0, [r1]
- movs r1, 0xE0
- lsls r1, 19
- ldr r2, _080F8AC4 @ =0x01000200
- add r0, sp, 0x4
- bl CpuSet
- b _080F8D30
- .align 2, 0
-_080F8AC4: .4byte 0x01000200
-_080F8AC8:
- bl ResetPaletteFade
- b _080F8D30
-_080F8ACE:
- bl ResetTasks
- b _080F8D30
-_080F8AD4:
- bl ResetSpriteData
- b _080F8D30
-_080F8ADA:
- bl FreeAllSpritePalettes
- ldr r0, _080F8B0C @ =REG_BG0HOFS
- movs r1, 0
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x4
- strh r1, [r0]
- subs r0, 0x2
- strh r1, [r0]
- adds r0, 0x4
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x32
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- b _080F8D30
- .align 2, 0
-_080F8B0C: .4byte REG_BG0HOFS
-_080F8B10:
- ldr r0, _080F8B18 @ =gWindowConfig_81E6DFC
- bl SetUpWindowConfig
- b _080F8D30
- .align 2, 0
-_080F8B18: .4byte gWindowConfig_81E6DFC
-_080F8B1C:
- ldr r0, _080F8B24 @ =gWindowConfig_81E6DFC
- bl MultistepInitMenuWindowBegin
- b _080F8D30
- .align 2, 0
-_080F8B24: .4byte gWindowConfig_81E6DFC
-_080F8B28:
- bl MultistepInitMenuWindowContinue
- cmp r0, 0
- beq _080F8B32
- b _080F8D30
-_080F8B32:
- b _080F8D3C
-_080F8B34:
- bl MenuZeroFillScreen
- b _080F8D30
-_080F8B3A:
- mov r0, sp
- adds r0, 0x6
- movs r1, 0x1
- strh r1, [r0]
- ldr r1, _080F8B4C @ =0x06004800
- ldr r2, _080F8B50 @ =0x01000400
- bl CpuSet
- b _080F8D30
- .align 2, 0
-_080F8B4C: .4byte 0x06004800
-_080F8B50: .4byte 0x01000400
-_080F8B54:
- ldr r2, _080F8B70 @ =gMailGraphicsTable
- ldr r0, _080F8B74 @ =0x02000000
- adds r0, 0xFA
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- movs r1, 0
- movs r2, 0x20
- bl LoadPalette
- b _080F8D30
- .align 2, 0
-_080F8B70: .4byte gMailGraphicsTable
-_080F8B74: .4byte 0x02000000
-_080F8B78:
- ldr r2, _080F8B94 @ =gMailGraphicsTable
- ldr r0, _080F8B98 @ =0x02000000
- adds r0, 0xFA
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r2, 0x8
- adds r0, r2
- ldr r0, [r0]
- ldr r1, _080F8B9C @ =0x06004000
- bl LZ77UnCompVram
- b _080F8D30
- .align 2, 0
-_080F8B94: .4byte gMailGraphicsTable
-_080F8B98: .4byte 0x02000000
-_080F8B9C: .4byte 0x06004000
-_080F8BA0:
- ldr r5, _080F8C00 @ =gMailGraphicsTable
- ldr r4, _080F8C04 @ =0x02000000
- adds r4, 0xFA
- ldrb r1, [r4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r1, r5, 0x4
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0xC0
- lsls r1, 19
- bl LZ77UnCompVram
- ldr r3, _080F8C08 @ =gPlttBufferUnfaded
- ldrb r1, [r4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrh r0, [r0, 0x10]
- movs r2, 0xF1
- lsls r2, 1
- adds r1, r3, r2
- strh r0, [r1]
- ldrb r1, [r4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrh r1, [r0, 0x12]
- adds r2, 0xE
- adds r0, r3, r2
- strh r1, [r0]
- ldr r1, _080F8C0C @ =gUnknown_083E562C
- ldr r2, _080F8C10 @ =gSaveBlock2
- ldrb r0, [r2, 0x8]
- lsls r0, 2
- adds r0, r1
- ldrh r0, [r0]
- strh r0, [r3, 0x14]
- ldrb r0, [r2, 0x8]
- lsls r0, 2
- adds r1, 0x2
- adds r0, r1
- ldrh r0, [r0]
- strh r0, [r3, 0x16]
- b _080F8D30
- .align 2, 0
-_080F8C00: .4byte gMailGraphicsTable
-_080F8C04: .4byte 0x02000000
-_080F8C08: .4byte gPlttBufferUnfaded
-_080F8C0C: .4byte gUnknown_083E562C
-_080F8C10: .4byte gSaveBlock2
-_080F8C14:
- ldr r0, _080F8C28 @ =0x02000000
- adds r0, 0xF8
- ldrb r0, [r0]
- cmp r0, 0
- bne _080F8C20
- b _080F8D30
-_080F8C20:
- bl sub_80F8DA0
- b _080F8D30
- .align 2, 0
-_080F8C28: .4byte 0x02000000
-_080F8C2C:
- ldr r0, _080F8C4C @ =0x02000000
- adds r0, 0xF8
- ldrb r0, [r0]
- cmp r0, 0
- beq _080F8C3A
- bl sub_80F8E80
-_080F8C3A:
- ldr r0, _080F8C50 @ =sub_80F8F18
- bl SetVBlankCallback
- ldr r2, _080F8C54 @ =gPaletteFade
- ldrb r0, [r2, 0x8]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2, 0x8]
- b _080F8D30
- .align 2, 0
-_080F8C4C: .4byte 0x02000000
-_080F8C50: .4byte sub_80F8F18
-_080F8C54: .4byte gPaletteFade
-_080F8C58:
- ldr r5, _080F8C7C @ =0x02000000
- adds r0, r5, 0
- adds r0, 0xF4
- ldr r0, [r0]
- ldrh r0, [r0, 0x1E]
- bl sub_809D4A8
- lsls r0, 16
- lsrs r4, r0, 16
- adds r0, r5, 0
- adds r0, 0xFB
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _080F8C80
- cmp r0, 0x2
- beq _080F8C98
- b _080F8D30
- .align 2, 0
-_080F8C7C: .4byte 0x02000000
-_080F8C80:
- adds r0, r4, 0
- bl sub_809D580
- ldr r1, _080F8C94 @ =SpriteCallbackDummy
- movs r0, 0
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x60
- b _080F8CA8
- .align 2, 0
-_080F8C94: .4byte SpriteCallbackDummy
-_080F8C98:
- adds r0, r4, 0
- bl sub_809D580
- ldr r1, _080F8CB8 @ =SpriteCallbackDummy
- movs r0, 0
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x28
-_080F8CA8:
- movs r3, 0x80
- bl sub_809D3A4
- adds r1, r5, 0
- adds r1, 0xFC
- strb r0, [r1]
- b _080F8D30
- .align 2, 0
-_080F8CB8: .4byte SpriteCallbackDummy
-_080F8CBC:
- bl sub_8055870
- cmp r0, 0x1
- bne _080F8D30
- b _080F8D3C
-_080F8CC6:
- ldr r1, _080F8D14 @ =REG_BG0CNT
- ldr r2, _080F8D18 @ =0x00009f08
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r2, _080F8D1C @ =0x00000801
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r2, _080F8D20 @ =0x00000902
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x44
- movs r0, 0
- strh r0, [r1]
- subs r1, 0x50
- movs r2, 0xBA
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r2, _080F8D24 @ =gPaletteFade
- ldrb r1, [r2, 0x8]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2, 0x8]
- ldr r0, _080F8D28 @ =0x02000000
- adds r0, 0xF0
- ldr r1, _080F8D2C @ =sub_80F8F58
- str r1, [r0]
- movs r0, 0x1
- b _080F8D3E
- .align 2, 0
-_080F8D14: .4byte REG_BG0CNT
-_080F8D18: .4byte 0x00009f08
-_080F8D1C: .4byte 0x00000801
-_080F8D20: .4byte 0x00000902
-_080F8D24: .4byte gPaletteFade
-_080F8D28: .4byte 0x02000000
-_080F8D2C: .4byte sub_80F8F58
-_080F8D30:
- ldr r1, _080F8D48 @ =gMain
- ldr r0, _080F8D4C @ =0x0000043c
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_080F8D3C:
- movs r0, 0
-_080F8D3E:
- add sp, 0x8
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_080F8D48: .4byte gMain
-_080F8D4C: .4byte 0x0000043c
- thumb_func_end sub_80F8A28
-
- thumb_func_start sub_80F8D50
-sub_80F8D50: @ 80F8D50
- push {lr}
-_080F8D52:
- bl sub_80F8A28
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080F8D6C
- ldr r0, _080F8D68 @ =sub_80F8F2C
- bl SetMainCallback2
- b _080F8D78
- .align 2, 0
-_080F8D68: .4byte sub_80F8F2C
-_080F8D6C:
- bl sub_80F9344
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080F8D52
-_080F8D78:
- pop {r0}
- bx r0
- thumb_func_end sub_80F8D50
-
- thumb_func_start sub_80F8D7C
-sub_80F8D7C: @ 80F8D7C
- push {r4,lr}
- adds r4, r0, 0
- bl StringCopy
- adds r0, r4, 0
- bl sub_814A568
- adds r0, r4, 0
- bl StringLength
- lsls r0, 16
- lsrs r0, 16
- adds r4, r0
- adds r0, r4, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80F8D7C
-
- thumb_func_start sub_80F8DA0
-sub_80F8DA0: @ 80F8DA0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r6, 0
- movs r5, 0
- ldr r2, _080F8E3C @ =0x02000000
- movs r0, 0x86
- lsls r0, 1
- adds r1, r2, r0
- ldr r0, [r1]
- ldrb r0, [r0]
- cmp r5, r0
- bcs _080F8E04
- mov r8, r2
- adds r7, r1, 0
-_080F8DBE:
- lsls r0, r5, 3
- subs r0, r5
- lsls r0, 2
- subs r0, r5
- add r0, r8
- mov r1, r8
- adds r1, 0xF4
- lsls r2, r6, 1
- ldr r1, [r1]
- adds r1, r2
- ldr r2, [r7]
- ldr r2, [r2, 0x4]
- lsls r4, r5, 2
- adds r2, r4, r2
- ldr r2, [r2]
- lsls r2, 28
- lsrs r2, 30
- movs r3, 0x1
- bl ConvertEasyChatWordsToString
- ldr r1, [r7]
- ldr r0, [r1, 0x4]
- adds r4, r0
- ldr r0, [r4]
- lsls r0, 28
- lsrs r0, 30
- adds r0, r6, r0
- lsls r0, 24
- lsrs r6, r0, 24
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- ldrb r1, [r1]
- cmp r5, r1
- bcc _080F8DBE
-_080F8E04:
- ldr r2, _080F8E40 @ =0x020000d8
- adds r4, r2, 0
- subs r4, 0xD8
- adds r0, r2, 0
- adds r0, 0x28
- ldrb r0, [r0]
- cmp r0, 0
- bne _080F8E48
- ldr r1, [r2, 0x1C]
- adds r1, 0x12
- adds r0, r2, 0
- bl sub_80F8D7C
- adds r2, r0, 0
- ldr r1, _080F8E44 @ =gOtherText_From
- bl StringCopy
- ldr r0, _080F8E40 @ =0x020000d8
- bl StringLength
- movs r2, 0x86
- lsls r2, 1
- adds r1, r4, r2
- ldr r1, [r1]
- ldrb r1, [r1, 0x2]
- subs r1, r0
- b _080F8E6A
- .align 2, 0
-_080F8E3C: .4byte 0x02000000
-_080F8E40: .4byte 0x020000d8
-_080F8E44: .4byte gOtherText_From
-_080F8E48:
- ldr r1, _080F8E7C @ =gOtherText_From
- adds r0, r2, 0
- bl StringCopy
- adds r2, r0, 0
- adds r0, r4, 0
- adds r0, 0xF4
- ldr r1, [r0]
- adds r1, 0x12
- adds r0, r2, 0
- bl sub_80F8D7C
- movs r1, 0x86
- lsls r1, 1
- adds r0, r4, r1
- ldr r0, [r0]
- ldrb r1, [r0, 0x2]
-_080F8E6A:
- adds r0, r4, 0
- adds r0, 0xF9
- strb r1, [r0]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080F8E7C: .4byte gOtherText_From
- thumb_func_end sub_80F8DA0
-
- thumb_func_start sub_80F8E80
-sub_80F8E80: @ 80F8E80
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r6, 0
- movs r4, 0
- ldr r1, _080F8F10 @ =0x02000000
- movs r0, 0x86
- lsls r0, 1
- adds r2, r1, r0
- ldr r0, [r2]
- ldrb r0, [r0]
- cmp r4, r0
- bcs _080F8EF6
- mov r8, r1
- adds r7, r2, 0
-_080F8E9E:
- lsls r0, r4, 3
- subs r0, r4
- lsls r0, 2
- subs r0, r4
- mov r1, r8
- adds r5, r0, r1
- ldrb r0, [r5]
- cmp r0, 0xFF
- beq _080F8EE8
- cmp r0, 0
- beq _080F8EE8
- ldr r2, [r7]
- ldr r1, [r2, 0x4]
- lsls r0, r4, 2
- adds r0, r1
- ldr r0, [r0]
- lsls r3, r0, 24
- lsrs r3, 28
- lsls r0, 30
- lsrs r0, 30
- adds r0, r6, r0
- lsls r0, 24
- lsrs r6, r0, 24
- ldrb r2, [r2, 0x3]
- lsrs r1, r2, 4
- adds r1, r3
- lsls r2, 28
- lsrs r2, 28
- adds r2, r6, r2
- lsls r2, 24
- lsrs r2, 24
- adds r0, r5, 0
- bl MenuPrint
- adds r0, r6, 0x2
- lsls r0, 24
- lsrs r6, r0, 24
-_080F8EE8:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r0, [r7]
- ldrb r0, [r0]
- cmp r4, r0
- bcc _080F8E9E
-_080F8EF6:
- ldr r0, _080F8F14 @ =0x020000d8
- adds r1, r0, 0
- adds r1, 0x21
- ldrb r1, [r1]
- ldr r2, [r0, 0x34]
- ldrb r2, [r2, 0x1]
- bl MenuPrint
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080F8F10: .4byte 0x02000000
-_080F8F14: .4byte 0x020000d8
- thumb_func_end sub_80F8E80
-
- thumb_func_start sub_80F8F18
-sub_80F8F18: @ 80F8F18
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- pop {r0}
- bx r0
- thumb_func_end sub_80F8F18
-
- thumb_func_start sub_80F8F2C
-sub_80F8F2C: @ 80F8F2C
- push {r4,lr}
- ldr r4, _080F8F54 @ =0x02000000
- adds r0, r4, 0
- adds r0, 0xFB
- ldrb r0, [r0]
- cmp r0, 0
- beq _080F8F42
- bl AnimateSprites
- bl BuildOamBuffer
-_080F8F42:
- adds r0, r4, 0
- adds r0, 0xF0
- ldr r0, [r0]
- bl _call_via_r0
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080F8F54: .4byte 0x02000000
- thumb_func_end sub_80F8F2C
-
- thumb_func_start sub_80F8F58
-sub_80F8F58: @ 80F8F58
- push {lr}
- bl UpdatePaletteFade
- lsls r0, 24
- cmp r0, 0
- bne _080F8F6C
- ldr r0, _080F8F70 @ =0x02000000
- adds r0, 0xF0
- ldr r1, _080F8F74 @ =sub_80F8F78
- str r1, [r0]
-_080F8F6C:
- pop {r0}
- bx r0
- .align 2, 0
-_080F8F70: .4byte 0x02000000
-_080F8F74: .4byte sub_80F8F78
- thumb_func_end sub_80F8F58
-
- thumb_func_start sub_80F8F78
-sub_80F8F78: @ 80F8F78
- push {lr}
- sub sp, 0x4
- ldr r0, _080F8FA8 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- beq _080F8FA0
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, _080F8FAC @ =0x02000000
- adds r0, 0xF0
- ldr r1, _080F8FB0 @ =sub_80F8FB4
- str r1, [r0]
-_080F8FA0:
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_080F8FA8: .4byte gMain
-_080F8FAC: .4byte 0x02000000
-_080F8FB0: .4byte sub_80F8FB4
- thumb_func_end sub_80F8F78
-
- thumb_func_start sub_80F8FB4
-sub_80F8FB4: @ 80F8FB4
- push {r4,lr}
- bl UpdatePaletteFade
- lsls r0, 24
- cmp r0, 0
- bne _080F9012
- ldr r4, _080F9018 @ =0x02000000
- adds r0, r4, 0
- adds r0, 0xEC
- ldr r0, [r0]
- bl SetMainCallback2
- adds r0, r4, 0
- adds r0, 0xFB
- ldrb r0, [r0]
- cmp r0, 0x2
- bgt _080F9002
- cmp r0, 0x1
- blt _080F9002
- adds r0, r4, 0
- adds r0, 0xF4
- ldr r0, [r0]
- ldrh r0, [r0, 0x1E]
- bl sub_809D4A8
- lsls r0, 16
- lsrs r0, 16
- bl sub_809D608
- adds r0, r4, 0
- adds r0, 0xFC
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080F901C @ =gSprites
- adds r0, r1
- bl sub_809D510
-_080F9002:
- ldr r0, _080F9018 @ =0x02000000
- movs r2, 0x88
- lsls r2, 1
- movs r1, 0
- bl memset
- bl ResetPaletteFade
-_080F9012:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080F9018: .4byte 0x02000000
-_080F901C: .4byte gSprites
- thumb_func_end sub_80F8FB4
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/mail_data.s b/asm/mail_data.s
new file mode 100644
index 000000000..4dff0a12b
--- /dev/null
+++ b/asm/mail_data.s
@@ -0,0 +1,574 @@
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_80A2B18
+sub_80A2B18: @ 80A2B18
+ push {r4,r5,lr}
+ movs r4, 0
+ ldr r5, _080A2B3C @ =gSaveBlock1 + 0x2B4C
+_080A2B1E:
+ lsls r0, r4, 3
+ adds r0, r4
+ lsls r0, 2
+ adds r0, r5
+ bl sub_80A2B40
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0xF
+ bls _080A2B1E
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A2B3C: .4byte gSaveBlock1 + 0x2B4C
+ thumb_func_end sub_80A2B18
+
+ thumb_func_start sub_80A2B40
+sub_80A2B40: @ 80A2B40
+ push {r4-r6,lr}
+ adds r3, r0, 0
+ ldr r0, _080A2B90 @ =0x0000ffff
+ adds r4, r0, 0
+ adds r1, r3, 0
+ movs r2, 0x8
+_080A2B4C:
+ ldrh r0, [r1]
+ orrs r0, r4
+ strh r0, [r1]
+ adds r1, 0x2
+ subs r2, 0x1
+ cmp r2, 0
+ bge _080A2B4C
+ movs r2, 0
+ adds r6, r3, 0
+ adds r6, 0x1A
+ adds r4, r3, 0
+ adds r4, 0x12
+ movs r5, 0xFF
+_080A2B66:
+ adds r1, r4, r2
+ ldrb r0, [r1]
+ orrs r0, r5
+ strb r0, [r1]
+ adds r2, 0x1
+ cmp r2, 0x7
+ ble _080A2B66
+ adds r1, r6, 0
+ movs r2, 0
+ adds r0, r1, 0x3
+_080A2B7A:
+ strb r2, [r0]
+ subs r0, 0x1
+ cmp r0, r1
+ bge _080A2B7A
+ movs r1, 0
+ movs r0, 0x1
+ strh r0, [r3, 0x1E]
+ strh r1, [r3, 0x20]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A2B90: .4byte 0x0000ffff
+ thumb_func_end sub_80A2B40
+
+ thumb_func_start sub_80A2B94
+sub_80A2B94: @ 80A2B94
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0xC
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ bl itemid_is_mail
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A2BBC
+ adds r0, r4, 0
+ movs r1, 0x40
+ bl GetMonData
+ cmp r0, 0xFF
+ beq _080A2BBC
+ movs r0, 0x1
+ b _080A2BBE
+_080A2BBC:
+ movs r0, 0
+_080A2BBE:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80A2B94
+
+ thumb_func_start sub_80A2BC4
+sub_80A2BC4: @ 80A2BC4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xC
+ adds r7, r0, 0
+ lsls r1, 16
+ lsrs r0, r1, 16
+ str r0, [sp, 0x8]
+ mov r0, sp
+ movs r2, 0
+ ldrb r3, [r0, 0x8]
+ strb r3, [r0]
+ lsrs r1, 24
+ strb r1, [r0, 0x1]
+ add r3, sp, 0x4
+ strb r2, [r3]
+ mov r10, r3
+ ldr r4, _080A2D00 @ =gSaveBlock1
+ mov r9, r4
+ mov r8, r3
+ adds r2, r3, 0
+_080A2BF2:
+ ldrb r1, [r2]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ add r0, r9
+ ldr r5, _080A2D04 @ =0x00002b6c
+ adds r0, r5
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _080A2C08
+ b _080A2D24
+_080A2C08:
+ movs r3, 0
+ ldr r0, _080A2D08 @ =gSaveBlock2
+ mov r12, r0
+ mov r4, r10
+ ldr r6, _080A2D0C @ =gSaveBlock1 + 0x2B4C
+ ldr r1, _080A2D10 @ =0x0000ffff
+ adds r5, r1, 0
+_080A2C16:
+ lsls r2, r3, 1
+ ldrb r1, [r4]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r2, r0
+ adds r2, r6
+ ldrh r0, [r2]
+ orrs r0, r5
+ strh r0, [r2]
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x8
+ bls _080A2C16
+ movs r3, 0
+ mov r2, r10
+ ldr r4, _080A2D14 @ =gSaveBlock1 + 0x2B5E
+_080A2C3A:
+ ldrb r1, [r2]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3, r0
+ adds r0, r4
+ mov r5, r12
+ adds r1, r3, r5
+ ldrb r1, [r1]
+ strb r1, [r0]
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x6
+ bls _080A2C3A
+ mov r0, r8
+ ldrb r1, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3, r0
+ ldr r1, _080A2D14 @ =gSaveBlock1 + 0x2B5E
+ adds r0, r1
+ movs r1, 0xFF
+ strb r1, [r0]
+ mov r2, r8
+ ldrb r1, [r2]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r3, _080A2D14 @ =gSaveBlock1 + 0x2B5E
+ adds r0, r3
+ movs r1, 0
+ bl PadNameString
+ movs r3, 0
+ mov r2, r10
+ ldr r5, _080A2D18 @ =gSaveBlock1 + 0x2B66
+ ldr r4, _080A2D1C @ =gSaveBlock2 + 0xA
+_080A2C88:
+ ldrb r1, [r2]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3, r0
+ adds r0, r5
+ adds r1, r3, r4
+ ldrb r1, [r1]
+ strb r1, [r0]
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x3
+ bls _080A2C88
+ adds r0, r7, 0
+ movs r1, 0xB
+ bl GetBoxMonData
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r7, 0
+ movs r1, 0
+ bl GetBoxMonData
+ adds r1, r0, 0
+ adds r0, r4, 0
+ bl sub_80A2D44
+ mov r4, r8
+ ldrb r2, [r4]
+ lsls r1, r2, 3
+ adds r1, r2
+ lsls r1, 2
+ add r1, r9
+ ldr r5, _080A2D20 @ =0x00002b6a
+ adds r1, r5
+ strh r0, [r1]
+ ldrb r1, [r4]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ add r0, r9
+ ldr r1, _080A2D04 @ =0x00002b6c
+ adds r0, r1
+ mov r2, sp
+ ldrh r2, [r2, 0x8]
+ strh r2, [r0]
+ adds r0, r7, 0
+ movs r1, 0x40
+ mov r2, r8
+ bl SetMonData
+ adds r0, r7, 0
+ movs r1, 0xC
+ mov r2, sp
+ bl SetMonData
+ ldrb r0, [r4]
+ b _080A2D32
+ .align 2, 0
+_080A2D00: .4byte gSaveBlock1
+_080A2D04: .4byte 0x00002b6c
+_080A2D08: .4byte gSaveBlock2
+_080A2D0C: .4byte gSaveBlock1 + 0x2B4C
+_080A2D10: .4byte 0x0000ffff
+_080A2D14: .4byte gSaveBlock1 + 0x2B5E
+_080A2D18: .4byte gSaveBlock1 + 0x2B66
+_080A2D1C: .4byte gSaveBlock2 + 0xA
+_080A2D20: .4byte 0x00002b6a
+_080A2D24:
+ adds r0, r1, 0x1
+ strb r0, [r3]
+ ldrb r0, [r2]
+ cmp r0, 0x5
+ bhi _080A2D30
+ b _080A2BF2
+_080A2D30:
+ movs r0, 0xFF
+_080A2D32:
+ add sp, 0xC
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80A2BC4
+
+ thumb_func_start sub_80A2D44
+sub_80A2D44: @ 80A2D44
+ push {lr}
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0xC9
+ bne _080A2D5C
+ adds r0, r1, 0
+ bl sub_809D474
+ lsls r0, 16
+ ldr r1, _080A2D60 @ =0x75300000
+ adds r0, r1
+ lsrs r0, 16
+_080A2D5C:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080A2D60: .4byte 0x75300000
+ thumb_func_end sub_80A2D44
+
+ thumb_func_start sub_80A2D64
+sub_80A2D64: @ 80A2D64
+ push {lr}
+ lsls r0, 16
+ lsrs r3, r0, 16
+ ldr r0, _080A2D7C @ =0xffff8ad0
+ adds r2, r3, r0
+ lsls r0, r2, 16
+ lsrs r0, 16
+ cmp r0, 0x1B
+ bhi _080A2D80
+ movs r0, 0xC9
+ strh r2, [r1]
+ b _080A2D82
+ .align 2, 0
+_080A2D7C: .4byte 0xffff8ad0
+_080A2D80:
+ adds r0, r3, 0
+_080A2D82:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80A2D64
+
+ thumb_func_start sub_80A2D88
+sub_80A2D88: @ 80A2D88
+ push {r4-r7,lr}
+ sub sp, 0x8
+ adds r6, r0, 0
+ adds r7, r1, 0
+ ldrh r5, [r7, 0x20]
+ adds r1, r5, 0
+ bl sub_80A2BC4
+ add r4, sp, 0x4
+ strb r0, [r4]
+ ldrb r2, [r4]
+ cmp r2, 0xFF
+ beq _080A2DE8
+ ldr r0, _080A2DE0 @ =gSaveBlock1
+ lsls r1, r2, 3
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r0
+ ldr r0, _080A2DE4 @ =0x00002b4c
+ adds r1, r0
+ adds r0, r7, 0
+ ldm r0!, {r2,r3,r7}
+ stm r1!, {r2,r3,r7}
+ ldm r0!, {r2,r3,r7}
+ stm r1!, {r2,r3,r7}
+ ldm r0!, {r2,r3,r7}
+ stm r1!, {r2,r3,r7}
+ adds r0, r6, 0
+ movs r1, 0x40
+ adds r2, r4, 0
+ bl SetMonData
+ mov r0, sp
+ strb r5, [r0]
+ mov r1, sp
+ lsrs r0, r5, 8
+ strb r0, [r1, 0x1]
+ adds r0, r6, 0
+ movs r1, 0xC
+ mov r2, sp
+ bl SetMonData
+ ldrb r0, [r4]
+ b _080A2DEA
+ .align 2, 0
+_080A2DE0: .4byte gSaveBlock1
+_080A2DE4: .4byte 0x00002b4c
+_080A2DE8:
+ movs r0, 0xFF
+_080A2DEA:
+ add sp, 0x8
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80A2D88
+
+ thumb_func_start unref_sub_80A2DF4
+unref_sub_80A2DF4: @ 80A2DF4
+ movs r0, 0
+ bx lr
+ thumb_func_end unref_sub_80A2DF4
+
+ thumb_func_start sub_80A2DF8
+sub_80A2DF8: @ 80A2DF8
+ push {r4,lr}
+ sub sp, 0x8
+ adds r4, r0, 0
+ bl sub_80A2B94
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A2E46
+ adds r0, r4, 0
+ movs r1, 0x40
+ bl GetMonData
+ add r2, sp, 0x4
+ strb r0, [r2]
+ ldr r3, _080A2E50 @ =gSaveBlock1
+ ldrb r1, [r2]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldr r1, _080A2E54 @ =0x00002b6c
+ adds r0, r1
+ movs r3, 0
+ movs r1, 0
+ strh r1, [r0]
+ movs r0, 0xFF
+ strb r0, [r2]
+ mov r0, sp
+ strb r3, [r0]
+ strb r3, [r0, 0x1]
+ adds r0, r4, 0
+ movs r1, 0x40
+ bl SetMonData
+ adds r0, r4, 0
+ movs r1, 0xC
+ mov r2, sp
+ bl SetMonData
+_080A2E46:
+ add sp, 0x8
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A2E50: .4byte gSaveBlock1
+_080A2E54: .4byte 0x00002b6c
+ thumb_func_end sub_80A2DF8
+
+ thumb_func_start unref_sub_80A2E58
+unref_sub_80A2E58: @ 80A2E58
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080A2E70 @ =gSaveBlock1
+ lsls r1, r0, 3
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldr r0, _080A2E74 @ =0x00002b6c
+ adds r1, r0
+ movs r0, 0
+ strh r0, [r1]
+ bx lr
+ .align 2, 0
+_080A2E70: .4byte gSaveBlock1
+_080A2E74: .4byte 0x00002b6c
+ thumb_func_end unref_sub_80A2E58
+
+ thumb_func_start sub_80A2E78
+sub_80A2E78: @ 80A2E78
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0xC
+ adds r5, r0, 0
+ mov r0, sp
+ movs r1, 0
+ strb r1, [r0]
+ strb r1, [r0, 0x1]
+ add r1, sp, 0x4
+ movs r0, 0xFF
+ strb r0, [r1]
+ movs r7, 0x6
+ mov r9, r1
+ ldr r0, _080A2F04 @ =gSaveBlock1
+ mov r8, r0
+ ldr r2, _080A2F08 @ =0x00002b4c
+ add r2, r8
+_080A2E9E:
+ lsls r0, r7, 3
+ adds r0, r7
+ lsls r4, r0, 2
+ mov r1, r8
+ adds r0, r4, r1
+ ldr r3, _080A2F0C @ =0x00002b6c
+ adds r0, r3
+ ldrh r6, [r0]
+ cmp r6, 0
+ bne _080A2F10
+ adds r4, r2
+ adds r0, r5, 0
+ movs r1, 0x40
+ str r2, [sp, 0x8]
+ bl GetMonData
+ lsls r1, r0, 3
+ adds r1, r0
+ lsls r1, 2
+ ldr r2, [sp, 0x8]
+ adds r1, r2
+ ldm r1!, {r0,r2,r3}
+ stm r4!, {r0,r2,r3}
+ ldm r1!, {r0,r2,r3}
+ stm r4!, {r0,r2,r3}
+ ldm r1!, {r0,r2,r3}
+ stm r4!, {r0,r2,r3}
+ adds r0, r5, 0
+ movs r1, 0x40
+ bl GetMonData
+ lsls r1, r0, 3
+ adds r1, r0
+ lsls r1, 2
+ add r1, r8
+ ldr r0, _080A2F0C @ =0x00002b6c
+ adds r1, r0
+ strh r6, [r1]
+ adds r0, r5, 0
+ movs r1, 0x40
+ mov r2, r9
+ bl SetMonData
+ adds r0, r5, 0
+ movs r1, 0xC
+ mov r2, sp
+ bl SetMonData
+ adds r0, r7, 0
+ b _080A2F1C
+ .align 2, 0
+_080A2F04: .4byte gSaveBlock1
+_080A2F08: .4byte 0x00002b4c
+_080A2F0C: .4byte 0x00002b6c
+_080A2F10:
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ cmp r7, 0xF
+ bls _080A2E9E
+ movs r0, 0xFF
+_080A2F1C:
+ add sp, 0xC
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80A2E78
+
+ thumb_func_start itemid_is_mail
+itemid_is_mail: @ 80A2F2C
+ push {lr}
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x84
+ bgt _080A2F3E
+ cmp r0, 0x79
+ blt _080A2F3E
+ movs r0, 0x1
+ b _080A2F40
+_080A2F3E:
+ movs r0, 0
+_080A2F40:
+ pop {r1}
+ bx r1
+ thumb_func_end itemid_is_mail
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/map_name_popup.s b/asm/map_name_popup.s
new file mode 100644
index 000000000..b488e5f73
--- /dev/null
+++ b/asm/map_name_popup.s
@@ -0,0 +1,248 @@
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start unref_sub_80A2F44
+unref_sub_80A2F44: @ 80A2F44
+ push {lr}
+ bl CloseMenu
+ bl AddMapNamePopUpWindowTask
+ movs r0, 0x1
+ pop {r1}
+ bx r1
+ thumb_func_end unref_sub_80A2F44
+
+ thumb_func_start AddMapNamePopUpWindowTask
+AddMapNamePopUpWindowTask: @ 80A2F54
+ push {r4,r5,lr}
+ movs r0, 0x80
+ lsls r0, 7
+ bl FlagGet
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080A2FE4
+ ldr r4, _080A2FAC @ =sub_80A2FF4
+ adds r0, r4, 0
+ bl FuncIsActiveTask
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0
+ bne _080A2FBC
+ adds r0, r4, 0
+ movs r1, 0x5A
+ bl CreateTask
+ ldr r4, _080A2FB0 @ =gUnknown_02038538
+ strb r0, [r4]
+ ldr r1, _080A2FB4 @ =REG_BG0VOFS
+ movs r0, 0x20
+ strh r0, [r1]
+ bl sub_80A30E0
+ ldr r2, _080A2FB8 @ =gTasks
+ ldrb r1, [r4]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ strh r5, [r0, 0x8]
+ ldrb r1, [r4]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ movs r1, 0x20
+ strh r1, [r0, 0xC]
+ b _080A2FE4
+ .align 2, 0
+_080A2FAC: .4byte sub_80A2FF4
+_080A2FB0: .4byte gUnknown_02038538
+_080A2FB4: .4byte REG_BG0VOFS
+_080A2FB8: .4byte gTasks
+_080A2FBC:
+ ldr r3, _080A2FEC @ =gTasks
+ ldr r2, _080A2FF0 @ =gUnknown_02038538
+ ldrb r0, [r2]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r3
+ movs r4, 0x8
+ ldrsh r0, [r1, r4]
+ cmp r0, 0x2
+ beq _080A2FD6
+ movs r0, 0x2
+ strh r0, [r1, 0x8]
+_080A2FD6:
+ ldrb r0, [r2]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r3
+ movs r0, 0x1
+ strh r0, [r1, 0xE]
+_080A2FE4:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A2FEC: .4byte gTasks
+_080A2FF0: .4byte gUnknown_02038538
+ thumb_func_end AddMapNamePopUpWindowTask
+
+ thumb_func_start sub_80A2FF4
+sub_80A2FF4: @ 80A2FF4
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r3, _080A3018 @ =gTasks
+ adds r4, r1, r3
+ movs r0, 0x8
+ ldrsh r2, [r4, r0]
+ cmp r2, 0x1
+ beq _080A304C
+ cmp r2, 0x1
+ bgt _080A301C
+ cmp r2, 0
+ beq _080A3026
+ b _080A3092
+ .align 2, 0
+_080A3018: .4byte gTasks
+_080A301C:
+ cmp r2, 0x2
+ beq _080A3064
+ cmp r2, 0x4
+ beq _080A308C
+ b _080A3092
+_080A3026:
+ ldrh r0, [r4, 0xC]
+ subs r0, 0x2
+ strh r0, [r4, 0xC]
+ lsls r0, 16
+ cmp r0, 0
+ bgt _080A3092
+ movs r0, 0x1
+ strh r0, [r4, 0x8]
+ ldr r0, _080A3048 @ =gUnknown_02038538
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r3
+ strh r2, [r0, 0xA]
+ b _080A3092
+ .align 2, 0
+_080A3048: .4byte gUnknown_02038538
+_080A304C:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x78
+ ble _080A3092
+ movs r0, 0
+ strh r0, [r4, 0xA]
+ movs r0, 0x2
+ strh r0, [r4, 0x8]
+ b _080A3092
+_080A3064:
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x2
+ movs r5, 0
+ strh r0, [r4, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1F
+ ble _080A3092
+ movs r1, 0xE
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080A3086
+ bl sub_80A30E0
+ strh r5, [r4, 0x8]
+ strh r5, [r4, 0xE]
+ b _080A3092
+_080A3086:
+ movs r0, 0x4
+ strh r0, [r4, 0x8]
+ b _080A3098
+_080A308C:
+ bl HideMapNamePopUpWindow
+ b _080A3098
+_080A3092:
+ ldr r1, _080A30A0 @ =REG_BG0VOFS
+ ldrh r0, [r4, 0xC]
+ strh r0, [r1]
+_080A3098:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A30A0: .4byte REG_BG0VOFS
+ thumb_func_end sub_80A2FF4
+
+ thumb_func_start HideMapNamePopUpWindow
+HideMapNamePopUpWindow: @ 80A30A4
+ push {lr}
+ ldr r0, _080A30D4 @ =sub_80A2FF4
+ bl FuncIsActiveTask
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A30D0
+ bl MenuLoadTextWindowGraphics
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0xD
+ movs r3, 0x3
+ bl MenuZeroFillWindowRect
+ ldr r1, _080A30D8 @ =REG_BG0VOFS
+ movs r0, 0
+ strh r0, [r1]
+ ldr r0, _080A30DC @ =gUnknown_02038538
+ ldrb r0, [r0]
+ bl DestroyTask
+_080A30D0:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A30D4: .4byte sub_80A2FF4
+_080A30D8: .4byte REG_BG0VOFS
+_080A30DC: .4byte gUnknown_02038538
+ thumb_func_end HideMapNamePopUpWindow
+
+ thumb_func_start sub_80A30E0
+sub_80A30E0: @ 80A30E0
+ push {lr}
+ sub sp, 0x14
+ movs r0, 0
+ bl MenuLoadTextWindowGraphics_OverrideFrameType
+ ldr r0, _080A3114 @ =gMapHeader
+ ldrb r1, [r0, 0x14]
+ mov r0, sp
+ movs r2, 0
+ bl sub_80FBFB4
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0xD
+ movs r3, 0x3
+ bl MenuDrawTextWindow
+ mov r0, sp
+ movs r1, 0x1
+ movs r2, 0x1
+ movs r3, 0x60
+ bl sub_8072BD8
+ add sp, 0x14
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A3114: .4byte gMapHeader
+ thumb_func_end sub_80A30E0
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/matuda_debug_menu.s b/asm/matuda_debug_menu.s
deleted file mode 100644
index c2fb1f004..000000000
--- a/asm/matuda_debug_menu.s
+++ /dev/null
@@ -1,2877 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start unref_sub_80A9B28
-unref_sub_80A9B28: @ 80A9B28
- push {lr}
- sub sp, 0x8
- bl MenuZeroFillScreen
- movs r0, 0
- movs r1, 0
- movs r2, 0x11
- movs r3, 0x12
- bl MenuDrawTextWindow
- ldr r3, _080A9B6C @ =gUnknown_083C91F0
- movs r0, 0x1
- movs r1, 0x1
- movs r2, 0x7
- bl PrintMenuItems
- movs r0, 0
- str r0, [sp]
- movs r0, 0x10
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x1
- movs r3, 0x7
- bl InitMenu
- ldr r1, _080A9B70 @ =gCallback_03004AE8
- ldr r0, _080A9B74 @ =sub_80A9B78
- str r0, [r1]
- movs r0, 0
- add sp, 0x8
- pop {r1}
- bx r1
- .align 2, 0
-_080A9B6C: .4byte gUnknown_083C91F0
-_080A9B70: .4byte gCallback_03004AE8
-_080A9B74: .4byte sub_80A9B78
- thumb_func_end unref_sub_80A9B28
-
- thumb_func_start sub_80A9B78
-sub_80A9B78: @ 80A9B78
- push {lr}
- bl ProcessMenuInput
- lsls r0, 24
- asrs r1, r0, 24
- movs r0, 0x2
- negs r0, r0
- cmp r1, r0
- bne _080A9B8E
- movs r0, 0
- b _080A9BB6
-_080A9B8E:
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _080A9BB0
- ldr r2, _080A9BA8 @ =gCallback_03004AE8
- ldr r0, _080A9BAC @ =gUnknown_083C91F0
- lsls r1, 3
- adds r0, 0x4
- adds r1, r0
- ldr r0, [r1]
- str r0, [r2]
- movs r0, 0
- b _080A9BB6
- .align 2, 0
-_080A9BA8: .4byte gCallback_03004AE8
-_080A9BAC: .4byte gUnknown_083C91F0
-_080A9BB0:
- bl sub_8071C20
- movs r0, 0x1
-_080A9BB6:
- pop {r1}
- bx r1
- thumb_func_end sub_80A9B78
-
- thumb_func_start sub_80A9BBC
-sub_80A9BBC: @ 80A9BBC
- push {lr}
- sub sp, 0x4
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, _080A9BE0 @ =sub_80A9BE4
- movs r1, 0xFF
- bl CreateTask
- movs r0, 0x1
- add sp, 0x4
- pop {r1}
- bx r1
- .align 2, 0
-_080A9BE0: .4byte sub_80A9BE4
- thumb_func_end sub_80A9BBC
-
- thumb_func_start sub_80A9BE4
-sub_80A9BE4: @ 80A9BE4
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _080A9C14 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080A9C10
- adds r0, r2, 0
- bl DestroyTask
- ldr r0, _080A9C18 @ =gUnknown_0203869A
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080A9C0C
- bl sub_80AF668
-_080A9C0C:
- bl sub_80C2358
-_080A9C10:
- pop {r0}
- bx r0
- .align 2, 0
-_080A9C14: .4byte gPaletteFade
-_080A9C18: .4byte gUnknown_0203869A
- thumb_func_end sub_80A9BE4
-
- thumb_func_start sub_80A9C1C
-sub_80A9C1C: @ 80A9C1C
- push {lr}
- ldr r1, _080A9C30 @ =gUnknown_0203869A
- movs r0, 0
- strb r0, [r1]
- bl sub_80AA10C
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_080A9C30: .4byte gUnknown_0203869A
- thumb_func_end sub_80A9C1C
-
- thumb_func_start sub_80A9C34
-sub_80A9C34: @ 80A9C34
- push {lr}
- bl sub_80AA10C
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end sub_80A9C34
-
- thumb_func_start sub_80A9C40
-sub_80A9C40: @ 80A9C40
- push {r4,r5,lr}
- ldr r5, _080A9C88 @ =sub_80A9E3C
- adds r0, r5, 0
- movs r1, 0
- bl CreateTask
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r2, _080A9C8C @ =sub_80A9C98
- adds r0, r4, 0
- adds r1, r5, 0
- bl SetTaskFuncWithFollowupFunc
- ldr r0, _080A9C90 @ =sub_80A9E04
- movs r1, 0x1
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080A9C94 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r4, [r1, 0x1C]
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r2
- strh r0, [r1, 0x1C]
- movs r0, 0x1
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_080A9C88: .4byte sub_80A9E3C
-_080A9C8C: .4byte sub_80A9C98
-_080A9C90: .4byte sub_80A9E04
-_080A9C94: .4byte gTasks
- thumb_func_end sub_80A9C40
-
- thumb_func_start sub_80A9C98
-sub_80A9C98: @ 80A9C98
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0
- bl sub_80AE098
- ldr r1, _080A9CB8 @ =sub_80C8734
- ldr r2, _080A9CBC @ =sub_80A9CC0
- adds r0, r4, 0
- bl SetTaskFuncWithFollowupFunc
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A9CB8: .4byte sub_80C8734
-_080A9CBC: .4byte sub_80A9CC0
- thumb_func_end sub_80A9C98
-
- thumb_func_start sub_80A9CC0
-sub_80A9CC0: @ 80A9CC0
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080A9CD4 @ =sub_80C88AC
- ldr r2, _080A9CD8 @ =sub_80A9CDC
- bl SetTaskFuncWithFollowupFunc
- pop {r0}
- bx r0
- .align 2, 0
-_080A9CD4: .4byte sub_80C88AC
-_080A9CD8: .4byte sub_80A9CDC
- thumb_func_end sub_80A9CC0
-
- thumb_func_start sub_80A9CDC
-sub_80A9CDC: @ 80A9CDC
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080A9CF0 @ =sub_80C8E1C
- ldr r2, _080A9CF4 @ =sub_80A9D58
- bl SetTaskFuncWithFollowupFunc
- pop {r0}
- bx r0
- .align 2, 0
-_080A9CF0: .4byte sub_80C8E1C
-_080A9CF4: .4byte sub_80A9D58
- thumb_func_end sub_80A9CDC
-
- thumb_func_start sub_80A9CF8
-sub_80A9CF8: @ 80A9CF8
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080A9D28 @ =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- bne _080A9D20
- ldr r0, _080A9D2C @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldrb r0, [r1, 0x1C]
- bl DestroyTask
- adds r0, r4, 0
- bl DestroyTask
- bl sub_8071C20
-_080A9D20:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A9D28: .4byte gReceivedRemoteLinkPlayers
-_080A9D2C: .4byte gTasks
- thumb_func_end sub_80A9CF8
-
- thumb_func_start sub_80A9D30
-sub_80A9D30: @ 80A9D30
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_800832C
- ldr r1, _080A9D50 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _080A9D54 @ =sub_80A9CF8
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A9D50: .4byte gTasks
-_080A9D54: .4byte sub_80A9CF8
- thumb_func_end sub_80A9D30
-
- thumb_func_start sub_80A9D58
-sub_80A9D58: @ 80A9D58
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- movs r3, 0
- ldr r1, _080A9DA8 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r1, 0x12
- adds r2, r0, r1
-_080A9D6E:
- mov r0, sp
- adds r1, r0, r3
- ldrh r0, [r2]
- strb r0, [r1]
- adds r2, 0x2
- adds r3, 0x1
- cmp r3, 0x3
- ble _080A9D6E
- mov r0, sp
- bl sub_80C4B34
- ldr r1, _080A9DAC @ =gUnknown_0203869B
- strb r0, [r1]
- ldr r0, _080A9DB0 @ =gScriptContestCategory
- ldrb r0, [r0]
- bl sub_80AE82C
- movs r0, 0
- bl sub_80B0F28
- ldr r1, _080A9DB4 @ =sub_80C8EBC
- ldr r2, _080A9DB8 @ =sub_80A9DBC
- adds r0, r4, 0
- bl SetTaskFuncWithFollowupFunc
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A9DA8: .4byte gTasks
-_080A9DAC: .4byte gUnknown_0203869B
-_080A9DB0: .4byte gScriptContestCategory
-_080A9DB4: .4byte sub_80C8EBC
-_080A9DB8: .4byte sub_80A9DBC
- thumb_func_end sub_80A9D58
-
- thumb_func_start sub_80A9DBC
-sub_80A9DBC: @ 80A9DBC
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080A9DD0 @ =sub_80C8F34
- ldr r2, _080A9DD4 @ =sub_80A9DD8
- bl SetTaskFuncWithFollowupFunc
- pop {r0}
- bx r0
- .align 2, 0
-_080A9DD0: .4byte sub_80C8F34
-_080A9DD4: .4byte sub_80A9DD8
- thumb_func_end sub_80A9DBC
-
- thumb_func_start sub_80A9DD8
-sub_80A9DD8: @ 80A9DD8
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r1, _080A9E00 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldrb r0, [r0, 0x1C]
- bl DestroyTask
- adds r0, r4, 0
- bl DestroyTask
- bl sub_8071C20
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A9E00: .4byte gTasks
- thumb_func_end sub_80A9DD8
-
- thumb_func_start sub_80A9E04
-sub_80A9E04: @ 80A9E04
- push {lr}
- lsls r0, 24
- lsrs r1, r0, 24
- ldr r0, _080A9E30 @ =gMain
- ldrh r0, [r0, 0x2E]
- cmp r0, 0x2
- bne _080A9E2A
- ldr r2, _080A9E34 @ =gTasks
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrb r1, [r0, 0x1C]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldr r1, _080A9E38 @ =sub_80A9D30
- str r1, [r0]
-_080A9E2A:
- pop {r0}
- bx r0
- .align 2, 0
-_080A9E30: .4byte gMain
-_080A9E34: .4byte gTasks
-_080A9E38: .4byte sub_80A9D30
- thumb_func_end sub_80A9E04
-
- thumb_func_start sub_80A9E3C
-sub_80A9E3C: @ 80A9E3C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl OpenLink
- movs r1, 0
- ldr r3, _080A9E74 @ =gBlockRecvBuffer
- movs r2, 0xFF
-_080A9E4C:
- lsls r0, r1, 8
- adds r0, r3
- strh r2, [r0]
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x3
- bls _080A9E4C
- ldr r1, _080A9E78 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0x8]
- ldr r1, _080A9E7C @ =sub_80A9E80
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A9E74: .4byte gBlockRecvBuffer
-_080A9E78: .4byte gTasks
-_080A9E7C: .4byte sub_80A9E80
- thumb_func_end sub_80A9E3C
-
- thumb_func_start sub_80A9E80
-sub_80A9E80: @ 80A9E80
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080A9EA0 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
- ldrh r1, [r4, 0x8]
- movs r2, 0x8
- ldrsh r0, [r4, r2]
- cmp r0, 0x9
- bgt _080A9EA4
- adds r0, r1, 0x1
- strh r0, [r4, 0x8]
- b _080A9ECC
- .align 2, 0
-_080A9EA0: .4byte gTasks
-_080A9EA4:
- bl GetLinkPlayerCount_2
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bls _080A9ECC
- movs r0, 0
- strh r0, [r4, 0x8]
- bl IsLinkMaster
- lsls r0, 24
- cmp r0, 0
- beq _080A9EC8
- ldr r0, _080A9EC4 @ =sub_80A9ED8
- b _080A9ECA
- .align 2, 0
-_080A9EC4: .4byte sub_80A9ED8
-_080A9EC8:
- ldr r0, _080A9ED4 @ =sub_80A9F10
-_080A9ECA:
- str r0, [r4]
-_080A9ECC:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A9ED4: .4byte sub_80A9F10
- thumb_func_end sub_80A9E80
-
- thumb_func_start sub_80A9ED8
-sub_80A9ED8: @ 80A9ED8
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080A9F08 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x65
- bne _080A9F02
- bl sub_8007F4C
- movs r0, 0
- strh r0, [r4, 0x8]
- ldr r0, _080A9F0C @ =sub_80A9F10
- str r0, [r4]
-_080A9F02:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A9F08: .4byte gTasks
-_080A9F0C: .4byte sub_80A9F10
- thumb_func_end sub_80A9ED8
-
- thumb_func_start sub_80A9F10
-sub_80A9F10: @ 80A9F10
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080A9F44 @ =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- beq _080A9F3E
- bl GetMultiplayerId
- ldr r1, _080A9F48 @ =gUnknown_02038695
- strb r0, [r1]
- bl GetLinkPlayerCount
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bne _080A9F3E
- ldr r1, _080A9F4C @ =gUnknown_0203869A
- movs r0, 0x1
- strb r0, [r1]
- adds r0, r4, 0
- bl SwitchTaskToFollowupFunc
-_080A9F3E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A9F44: .4byte gReceivedRemoteLinkPlayers
-_080A9F48: .4byte gUnknown_02038695
-_080A9F4C: .4byte gUnknown_0203869A
- thumb_func_end sub_80A9F10
-
- thumb_func_start sub_80A9F50
-sub_80A9F50: @ 80A9F50
- push {r4,lr}
- movs r2, 0x80
- lsls r2, 19
- movs r0, 0x40
- strh r0, [r2]
- ldrh r0, [r2]
- movs r3, 0x88
- lsls r3, 5
- adds r1, r3, 0
- orrs r0, r1
- strh r0, [r2]
- ldr r4, _080A9FB8 @ =gWindowConfig_81E6C3C
- adds r0, r4, 0
- bl SetUpWindowConfig
- ldr r0, _080A9FBC @ =gMenuWindow
- adds r1, r4, 0
- bl InitWindowFromConfig
- ldr r0, _080A9FC0 @ =REG_MOSAIC
- movs r1, 0
- strh r1, [r0]
- adds r0, 0x4
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- subs r0, 0x44
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- ldr r0, _080A9FC4 @ =gUnknown_030042A4
- strh r1, [r0]
- ldr r0, _080A9FC8 @ =gUnknown_030042A0
- strh r1, [r0]
- ldr r0, _080A9FCC @ =gUnknown_030042C0
- strh r1, [r0]
- ldr r0, _080A9FD0 @ =gUnknown_030041B4
- strh r1, [r0]
- ldr r0, _080A9FD4 @ =gUnknown_03004288
- strh r1, [r0]
- ldr r0, _080A9FD8 @ =gUnknown_03004280
- strh r1, [r0]
- ldr r0, _080A9FDC @ =gUnknown_030041B0
- strh r1, [r0]
- ldr r0, _080A9FE0 @ =gUnknown_030041B8
- strh r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A9FB8: .4byte gWindowConfig_81E6C3C
-_080A9FBC: .4byte gMenuWindow
-_080A9FC0: .4byte REG_MOSAIC
-_080A9FC4: .4byte gUnknown_030042A4
-_080A9FC8: .4byte gUnknown_030042A0
-_080A9FCC: .4byte gUnknown_030042C0
-_080A9FD0: .4byte gUnknown_030041B4
-_080A9FD4: .4byte gUnknown_03004288
-_080A9FD8: .4byte gUnknown_03004280
-_080A9FDC: .4byte gUnknown_030041B0
-_080A9FE0: .4byte gUnknown_030041B8
- thumb_func_end sub_80A9F50
-
- thumb_func_start sub_80A9FE4
-sub_80A9FE4: @ 80A9FE4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0xC
- ldr r1, _080AA054 @ =gUnknown_083C9228
- mov r0, sp
- movs r2, 0x5
- bl memcpy
- movs r2, 0xC0
- lsls r2, 19
- movs r3, 0xC0
- lsls r3, 9
- add r5, sp, 0x8
- movs r6, 0
- ldr r1, _080AA058 @ =0x040000d4
- movs r4, 0x80
- lsls r4, 5
- mov r12, r5
- ldr r7, _080AA05C @ =0x85000400
- movs r0, 0x85
- lsls r0, 24
- mov r8, r0
-_080AA012:
- str r6, [sp, 0x8]
- mov r0, r12
- str r0, [r1]
- str r2, [r1, 0x4]
- str r7, [r1, 0x8]
- ldr r0, [r1, 0x8]
- adds r2, r4
- subs r3, r4
- cmp r3, r4
- bhi _080AA012
- str r6, [sp, 0x8]
- str r5, [r1]
- str r2, [r1, 0x4]
- lsrs r0, r3, 2
- mov r2, r8
- orrs r0, r2
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- movs r0, 0xC0
- lsls r0, 19
- mov r1, sp
- bl sub_80034D4
- ldr r0, _080AA060 @ =gWindowConfig_81E6C3C
- bl LoadFontDefaultPalette
- add sp, 0xC
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080AA054: .4byte gUnknown_083C9228
-_080AA058: .4byte 0x040000d4
-_080AA05C: .4byte 0x85000400
-_080AA060: .4byte gWindowConfig_81E6C3C
- thumb_func_end sub_80A9FE4
-
- thumb_func_start sub_80AA064
-sub_80AA064: @ 80AA064
- push {lr}
- bl AnimateSprites
- bl BuildOamBuffer
- bl RunTasks
- bl UpdatePaletteFade
- ldr r0, _080AA088 @ =gMain
- ldrh r0, [r0, 0x2E]
- cmp r0, 0x4
- bne _080AA084
- ldr r0, _080AA08C @ =sub_805469C
- bl SetMainCallback2
-_080AA084:
- pop {r0}
- bx r0
- .align 2, 0
-_080AA088: .4byte gMain
-_080AA08C: .4byte sub_805469C
- thumb_func_end sub_80AA064
-
- thumb_func_start sub_80AA090
-sub_80AA090: @ 80AA090
- push {lr}
- ldr r1, _080AA0E8 @ =REG_BG0HOFS
- ldr r0, _080AA0EC @ =gUnknown_030042A4
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _080AA0F0 @ =gUnknown_030042A0
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _080AA0F4 @ =gUnknown_030042C0
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _080AA0F8 @ =gUnknown_030041B4
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _080AA0FC @ =gUnknown_03004288
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _080AA100 @ =gUnknown_03004280
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _080AA104 @ =gUnknown_030041B0
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _080AA108 @ =gUnknown_030041B8
- ldrh r0, [r0]
- strh r0, [r1]
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- bl sub_8089668
- pop {r0}
- bx r0
- .align 2, 0
-_080AA0E8: .4byte REG_BG0HOFS
-_080AA0EC: .4byte gUnknown_030042A4
-_080AA0F0: .4byte gUnknown_030042A0
-_080AA0F4: .4byte gUnknown_030042C0
-_080AA0F8: .4byte gUnknown_030041B4
-_080AA0FC: .4byte gUnknown_03004288
-_080AA100: .4byte gUnknown_03004280
-_080AA104: .4byte gUnknown_030041B0
-_080AA108: .4byte gUnknown_030041B8
- thumb_func_end sub_80AA090
-
- thumb_func_start sub_80AA10C
-sub_80AA10C: @ 80AA10C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- ldr r4, _080AA238 @ =gPaletteFade
- ldrb r0, [r4, 0x8]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r4, 0x8]
- movs r0, 0
- bl SetVBlankCallback
- bl sub_80A9F50
- bl dp12_8087EA4
- bl ResetPaletteFade
- bl ResetSpriteData
- bl ResetTasks
- bl FreeAllSpritePalettes
- bl sub_80A9FE4
- ldr r0, _080AA23C @ =sub_80AA090
- bl SetVBlankCallback
- ldr r0, _080AA240 @ =sub_80AA064
- bl SetMainCallback2
- ldrb r1, [r4, 0x8]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r4, 0x8]
- ldr r4, _080AA244 @ =gUnknown_02038694
- movs r0, 0
- strb r0, [r4]
- ldr r0, _080AA248 @ =gUnknown_02038570
- ldrb r0, [r0, 0x2]
- cmp r0, 0
- bne _080AA16A
- movs r0, 0
- movs r1, 0
- bl sub_80AE398
-_080AA16A:
- ldrb r0, [r4]
- bl sub_80AE098
- movs r5, 0
- ldr r6, _080AA24C @ =gUnknown_083C9276
- adds r0, r6, 0x1
- mov r8, r0
- ldr r7, _080AA250 @ =gUnknown_083C9364
-_080AA17A:
- lsls r2, r5, 2
- adds r0, r2, r7
- ldr r1, [r0]
- adds r2, r5
- lsls r2, 17
- movs r0, 0xA8
- lsls r0, 14
- adds r2, r0
- lsrs r2, 16
- lsls r4, r5, 1
- adds r0, r4, r6
- ldrb r3, [r0]
- add r4, r8
- ldrb r0, [r4]
- str r0, [sp]
- ldr r0, _080AA254 @ =gMenuWindow
- bl sub_8003460
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x5
- bls _080AA17A
- ldr r1, _080AA258 @ =gScriptContestCategory
- ldr r4, _080AA25C @ =gScriptContestRank
- movs r0, 0
- strh r0, [r4]
- strh r0, [r1]
- movs r5, 0
- movs r0, 0
- bl sub_80AA5BC
- ldrb r0, [r4]
- bl sub_80AA5E8
- ldr r4, _080AA254 @ =gMenuWindow
- ldr r1, _080AA260 @ =gUnknown_083C9337
- movs r0, 0x12
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0xD6
- movs r3, 0x12
- bl sub_8003460
- ldr r1, _080AA264 @ =gUnknown_083C933B
- movs r0, 0xC
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0xDC
- movs r3, 0
- bl sub_8003460
- ldr r0, _080AA268 @ =gUnknown_083C92B4
- bl LoadSpriteSheet
- ldr r0, _080AA26C @ =gUnknown_083C92BC
- bl LoadSpritePalette
- movs r0, 0x3
- bl sub_80AA280
- movs r0, 0x3
- bl sub_80AA658
- movs r0, 0x3
- movs r1, 0
- bl sub_80AA614
- ldr r0, _080AA270 @ =gSpriteTemplate_83C92CC
- ldr r1, _080AA274 @ =gUnknown_083C9296
- ldrb r1, [r1, 0x3]
- ldr r2, _080AA278 @ =gUnknown_083C92A8
- ldrb r2, [r2, 0x1]
- movs r3, 0x5
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080AA27C @ =gSprites
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- movs r0, 0x1
- strh r0, [r1, 0x2E]
- strh r0, [r1, 0x30]
- movs r0, 0x3
- strh r0, [r1, 0x32]
- strh r5, [r1, 0x34]
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080AA238: .4byte gPaletteFade
-_080AA23C: .4byte sub_80AA090
-_080AA240: .4byte sub_80AA064
-_080AA244: .4byte gUnknown_02038694
-_080AA248: .4byte gUnknown_02038570
-_080AA24C: .4byte gUnknown_083C9276
-_080AA250: .4byte gUnknown_083C9364
-_080AA254: .4byte gMenuWindow
-_080AA258: .4byte gScriptContestCategory
-_080AA25C: .4byte gScriptContestRank
-_080AA260: .4byte gUnknown_083C9337
-_080AA264: .4byte gUnknown_083C933B
-_080AA268: .4byte gUnknown_083C92B4
-_080AA26C: .4byte gUnknown_083C92BC
-_080AA270: .4byte gSpriteTemplate_83C92CC
-_080AA274: .4byte gUnknown_083C9296
-_080AA278: .4byte gUnknown_083C92A8
-_080AA27C: .4byte gSprites
- thumb_func_end sub_80AA10C
-
- thumb_func_start sub_80AA280
-sub_80AA280: @ 80AA280
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r0, _080AA2E8 @ =gMenuWindow
- movs r1, 0x1E
- str r1, [sp]
- movs r1, 0x3
- str r1, [sp, 0x4]
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl FillWindowRect_DefaultPalette
- ldr r4, _080AA2EC @ =0x02000000
- ldr r1, _080AA2F0 @ =gUnknown_083C932C
- adds r0, r4, 0
- bl StringCopy
- lsls r1, r7, 6
- ldr r0, _080AA2F4 @ =gUnknown_0203857D
- adds r1, r0
- adds r0, r4, 0
- bl StringAppend
- movs r5, 0
- ldr r6, _080AA2F8 @ =gUnknown_083C926E
- adds r0, r6, 0x1
- mov r8, r0
-_080AA2BE:
- cmp r7, r5
- bne _080AA2FC
- lsls r2, r5, 2
- adds r2, r5
- lsls r2, 17
- movs r0, 0x80
- lsls r0, 10
- adds r2, r0
- lsrs r2, 16
- lsls r1, r5, 1
- adds r0, r1, r6
- ldrb r3, [r0]
- add r1, r8
- ldrb r0, [r1]
- str r0, [sp]
- ldr r0, _080AA2E8 @ =gMenuWindow
- ldr r1, _080AA2EC @ =0x02000000
- bl sub_8003460
- b _080AA322
- .align 2, 0
-_080AA2E8: .4byte gMenuWindow
-_080AA2EC: .4byte 0x02000000
-_080AA2F0: .4byte gUnknown_083C932C
-_080AA2F4: .4byte gUnknown_0203857D
-_080AA2F8: .4byte gUnknown_083C926E
-_080AA2FC:
- lsls r1, r5, 6
- ldr r0, _080AA338 @ =gUnknown_0203857D
- adds r1, r0
- lsls r2, r5, 2
- adds r2, r5
- lsls r2, 17
- movs r0, 0x80
- lsls r0, 10
- adds r2, r0
- lsrs r2, 16
- lsls r4, r5, 1
- adds r0, r4, r6
- ldrb r3, [r0]
- add r4, r8
- ldrb r0, [r4]
- str r0, [sp]
- ldr r0, _080AA33C @ =gMenuWindow
- bl sub_8003460
-_080AA322:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x3
- bls _080AA2BE
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080AA338: .4byte gUnknown_0203857D
-_080AA33C: .4byte gMenuWindow
- thumb_func_end sub_80AA280
-
- thumb_func_start sub_80AA340
-sub_80AA340: @ 80AA340
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- ldr r4, _080AA378 @ =0x02000000
- ldr r1, _080AA37C @ =gUnknown_02038570
- lsrs r0, 18
- adds r0, r1
- adds r0, 0x26
- ldrb r1, [r0]
- adds r0, r4, 0
- movs r2, 0x1
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- ldr r0, _080AA380 @ =gMenuWindow
- ldr r1, _080AA384 @ =gUnknown_083C9282
- ldrb r3, [r1]
- ldrb r1, [r1, 0x1]
- str r1, [sp]
- adds r1, r4, 0
- movs r2, 0x66
- bl sub_8003460
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080AA378: .4byte 0x02000000
-_080AA37C: .4byte gUnknown_02038570
-_080AA380: .4byte gMenuWindow
-_080AA384: .4byte gUnknown_083C9282
- thumb_func_end sub_80AA340
-
- thumb_func_start sub_80AA388
-sub_80AA388: @ 80AA388
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- ldr r4, _080AA3C0 @ =0x02000000
- ldr r1, _080AA3C4 @ =gUnknown_02038570
- lsrs r0, 18
- adds r0, r1
- adds r0, 0x28
- ldrb r1, [r0]
- adds r0, r4, 0
- movs r2, 0x1
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- ldr r0, _080AA3C8 @ =gMenuWindow
- ldr r1, _080AA3CC @ =gUnknown_083C9282
- ldrb r3, [r1, 0x2]
- ldrb r1, [r1, 0x3]
- str r1, [sp]
- adds r1, r4, 0
- movs r2, 0x6C
- bl sub_8003460
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080AA3C0: .4byte 0x02000000
-_080AA3C4: .4byte gUnknown_02038570
-_080AA3C8: .4byte gMenuWindow
-_080AA3CC: .4byte gUnknown_083C9282
- thumb_func_end sub_80AA388
-
- thumb_func_start sub_80AA3D0
-sub_80AA3D0: @ 80AA3D0
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- ldr r4, _080AA408 @ =0x02000000
- ldr r1, _080AA40C @ =gUnknown_02038570
- lsrs r0, 18
- adds r0, r1
- adds r0, 0x27
- ldrb r1, [r0]
- adds r0, r4, 0
- movs r2, 0x1
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- ldr r0, _080AA410 @ =gMenuWindow
- ldr r1, _080AA414 @ =gUnknown_083C9282
- ldrb r3, [r1, 0x4]
- ldrb r1, [r1, 0x5]
- str r1, [sp]
- adds r1, r4, 0
- movs r2, 0x72
- bl sub_8003460
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080AA408: .4byte 0x02000000
-_080AA40C: .4byte gUnknown_02038570
-_080AA410: .4byte gMenuWindow
-_080AA414: .4byte gUnknown_083C9282
- thumb_func_end sub_80AA3D0
-
- thumb_func_start sub_80AA418
-sub_80AA418: @ 80AA418
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- ldr r4, _080AA450 @ =0x02000000
- ldr r1, _080AA454 @ =gUnknown_02038570
- lsrs r0, 18
- adds r0, r1
- adds r0, 0x29
- ldrb r1, [r0]
- adds r0, r4, 0
- movs r2, 0x1
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- ldr r0, _080AA458 @ =gMenuWindow
- ldr r1, _080AA45C @ =gUnknown_083C9282
- ldrb r3, [r1, 0x6]
- ldrb r1, [r1, 0x7]
- str r1, [sp]
- adds r1, r4, 0
- movs r2, 0x78
- bl sub_8003460
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080AA450: .4byte 0x02000000
-_080AA454: .4byte gUnknown_02038570
-_080AA458: .4byte gMenuWindow
-_080AA45C: .4byte gUnknown_083C9282
- thumb_func_end sub_80AA418
-
- thumb_func_start sub_80AA460
-sub_80AA460: @ 80AA460
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- ldr r4, _080AA498 @ =0x02000000
- ldr r1, _080AA49C @ =gUnknown_02038570
- lsrs r0, 18
- adds r0, r1
- adds r0, 0x2A
- ldrb r1, [r0]
- adds r0, r4, 0
- movs r2, 0x1
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- ldr r0, _080AA4A0 @ =gMenuWindow
- ldr r1, _080AA4A4 @ =gUnknown_083C9282
- ldrb r3, [r1, 0x8]
- ldrb r1, [r1, 0x9]
- str r1, [sp]
- adds r1, r4, 0
- movs r2, 0x7E
- bl sub_8003460
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080AA498: .4byte 0x02000000
-_080AA49C: .4byte gUnknown_02038570
-_080AA4A0: .4byte gMenuWindow
-_080AA4A4: .4byte gUnknown_083C9282
- thumb_func_end sub_80AA460
-
- thumb_func_start sub_80AA4A8
-sub_80AA4A8: @ 80AA4A8
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- ldr r4, _080AA4E0 @ =0x02000000
- ldr r1, _080AA4E4 @ =gUnknown_02038570
- lsrs r0, 18
- adds r0, r1
- adds r0, 0x2B
- ldrb r1, [r0]
- adds r0, r4, 0
- movs r2, 0x1
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- ldr r0, _080AA4E8 @ =gMenuWindow
- ldr r1, _080AA4EC @ =gUnknown_083C9282
- ldrb r3, [r1, 0xA]
- ldrb r1, [r1, 0xB]
- str r1, [sp]
- adds r1, r4, 0
- movs r2, 0x84
- bl sub_8003460
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080AA4E0: .4byte 0x02000000
-_080AA4E4: .4byte gUnknown_02038570
-_080AA4E8: .4byte gMenuWindow
-_080AA4EC: .4byte gUnknown_083C9282
- thumb_func_end sub_80AA4A8
-
- thumb_func_start sub_80AA4F0
-sub_80AA4F0: @ 80AA4F0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- adds r4, r0, 0
- adds r6, r1, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r6, 24
- lsrs r6, 24
- ldr r7, _080AA5A8 @ =gMenuWindow
- ldr r0, _080AA5AC @ =gUnknown_083C928E
- lsls r5, r6, 1
- adds r1, r5, r0
- ldrb r1, [r1]
- mov r9, r1
- adds r0, 0x1
- adds r0, r5, r0
- ldrb r0, [r0]
- mov r10, r0
- movs r0, 0x7
- add r0, r9
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- str r0, [sp]
- mov r0, r10
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x4]
- adds r0, r7, 0
- movs r1, 0
- mov r2, r9
- mov r3, r10
- bl FillWindowRect_DefaultPalette
- ldr r0, _080AA5B0 @ =gUnknown_02038570
- lsls r4, 6
- adds r4, r5, r4
- adds r0, 0x1E
- adds r4, r0
- ldrh r1, [r4]
- movs r0, 0xD
- muls r1, r0
- ldr r0, _080AA5B4 @ =gMoveNames
- adds r1, r0
- lsls r2, r6, 3
- subs r2, r6
- lsls r2, 17
- movs r0, 0x8A
- lsls r0, 16
- adds r2, r0
- lsrs r2, 16
- mov r0, r10
- str r0, [sp]
- adds r0, r7, 0
- mov r3, r9
- bl sub_8003460
- ldr r0, _080AA5B8 @ =gStringVar1
- mov r9, r0
- ldrh r1, [r4]
- movs r2, 0x2
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- adds r5, r6
- lsls r5, 17
- movs r0, 0xFA
- lsls r0, 16
- adds r5, r0
- lsrs r5, 16
- mov r0, r10
- str r0, [sp]
- adds r0, r7, 0
- mov r1, r9
- adds r2, r5, 0
- mov r3, r8
- bl sub_8003460
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080AA5A8: .4byte gMenuWindow
-_080AA5AC: .4byte gUnknown_083C928E
-_080AA5B0: .4byte gUnknown_02038570
-_080AA5B4: .4byte gMoveNames
-_080AA5B8: .4byte gStringVar1
- thumb_func_end sub_80AA4F0
-
- thumb_func_start sub_80AA5BC
-sub_80AA5BC: @ 80AA5BC
- push {lr}
- sub sp, 0x4
- lsls r0, 24
- ldr r2, _080AA5E0 @ =gMenuWindow
- ldr r1, _080AA5E4 @ =gUnknown_083C93B4
- lsrs r0, 22
- adds r0, r1
- ldr r1, [r0]
- movs r0, 0x12
- str r0, [sp]
- adds r0, r2, 0
- movs r2, 0xC2
- movs r3, 0x3
- bl sub_8003460
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_080AA5E0: .4byte gMenuWindow
-_080AA5E4: .4byte gUnknown_083C93B4
- thumb_func_end sub_80AA5BC
-
- thumb_func_start sub_80AA5E8
-sub_80AA5E8: @ 80AA5E8
- push {lr}
- sub sp, 0x4
- lsls r0, 24
- ldr r2, _080AA60C @ =gMenuWindow
- ldr r1, _080AA610 @ =gUnknown_083C93F0
- lsrs r0, 22
- adds r0, r1
- ldr r1, [r0]
- movs r0, 0x4
- str r0, [sp]
- adds r0, r2, 0
- movs r2, 0xE8
- movs r3, 0x3
- bl sub_8003460
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_080AA60C: .4byte gMenuWindow
-_080AA610: .4byte gUnknown_083C93F0
- thumb_func_end sub_80AA5E8
-
- thumb_func_start sub_80AA614
-sub_80AA614: @ 80AA614
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- bl sub_80AE770
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- ldr r4, _080AA650 @ =0x02000000
- adds r0, r4, 0
- movs r2, 0x1
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- ldr r0, _080AA654 @ =gMenuWindow
- movs r1, 0xC
- str r1, [sp]
- adds r1, r4, 0
- movs r2, 0xE2
- movs r3, 0x3
- bl sub_8003460
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080AA650: .4byte 0x02000000
-_080AA654: .4byte gMenuWindow
- thumb_func_end sub_80AA614
-
- thumb_func_start sub_80AA658
-sub_80AA658: @ 80AA658
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r5, 0
- bl sub_80AA340
- adds r0, r5, 0
- bl sub_80AA388
- adds r0, r5, 0
- bl sub_80AA3D0
- adds r0, r5, 0
- bl sub_80AA418
- adds r0, r5, 0
- bl sub_80AA460
- adds r0, r5, 0
- bl sub_80AA4A8
- movs r4, 0
-_080AA684:
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_80AA4F0
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x3
- bls _080AA684
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80AA658
-
- thumb_func_start sub_80AA69C
-sub_80AA69C: @ 80AA69C
- push {r4-r6,lr}
- ldr r6, _080AA748 @ =gPlayerParty
- ldr r5, _080AA74C @ =gUnknown_02038695
- ldrb r2, [r5]
- lsls r2, 6
- ldr r4, _080AA750 @ =gUnknown_02038596
- adds r2, r4
- adds r0, r6, 0
- movs r1, 0x16
- bl SetMonData
- ldrb r2, [r5]
- lsls r2, 6
- adds r0, r4, 0x2
- adds r2, r0
- adds r0, r6, 0
- movs r1, 0x18
- bl SetMonData
- ldrb r2, [r5]
- lsls r2, 6
- adds r0, r4, 0x1
- adds r2, r0
- adds r0, r6, 0
- movs r1, 0x17
- bl SetMonData
- ldrb r2, [r5]
- lsls r2, 6
- adds r0, r4, 0x3
- adds r2, r0
- adds r0, r6, 0
- movs r1, 0x21
- bl SetMonData
- ldrb r2, [r5]
- lsls r2, 6
- adds r0, r4, 0x4
- adds r2, r0
- adds r0, r6, 0
- movs r1, 0x2F
- bl SetMonData
- ldrb r2, [r5]
- lsls r2, 6
- adds r0, r4, 0x5
- adds r2, r0
- adds r0, r6, 0
- movs r1, 0x30
- bl SetMonData
- ldrb r2, [r5]
- lsls r2, 6
- subs r4, 0x8
- adds r2, r4
- adds r0, r6, 0
- movs r1, 0xD
- bl SetMonData
- ldrb r2, [r5]
- lsls r2, 6
- adds r2, r4
- adds r2, 0x2
- adds r0, r6, 0
- movs r1, 0xE
- bl SetMonData
- ldrb r2, [r5]
- lsls r2, 6
- adds r2, r4
- adds r2, 0x4
- adds r0, r6, 0
- movs r1, 0xF
- bl SetMonData
- ldrb r2, [r5]
- lsls r2, 6
- adds r2, r4
- adds r2, 0x6
- adds r0, r6, 0
- movs r1, 0x10
- bl SetMonData
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080AA748: .4byte gPlayerParty
-_080AA74C: .4byte gUnknown_02038695
-_080AA750: .4byte gUnknown_02038596
- thumb_func_end sub_80AA69C
-
- thumb_func_start sub_80AA754
-sub_80AA754: @ 80AA754
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080AA774 @ =gMain
- ldrh r1, [r0, 0x30]
- cmp r1, 0x20
- beq _080AA7A2
- cmp r1, 0x20
- bgt _080AA782
- cmp r1, 0x2
- beq _080AA7F8
- cmp r1, 0x2
- bgt _080AA778
- cmp r1, 0x1
- beq _080AA7D8
- b _080AA870
- .align 2, 0
-_080AA774: .4byte gMain
-_080AA778:
- cmp r1, 0x8
- beq _080AA868
- cmp r1, 0x10
- beq _080AA7A2
- b _080AA870
-_080AA782:
- cmp r1, 0x80
- beq _080AA7C2
- cmp r1, 0x80
- bgt _080AA790
- cmp r1, 0x40
- beq _080AA7AC
- b _080AA870
-_080AA790:
- movs r0, 0x80
- lsls r0, 1
- cmp r1, r0
- beq _080AA814
- movs r0, 0x80
- lsls r0, 2
- cmp r1, r0
- beq _080AA834
- b _080AA870
-_080AA7A2:
- ldrh r0, [r4, 0x2E]
- movs r1, 0x1
- eors r0, r1
- strh r0, [r4, 0x2E]
- b _080AA870
-_080AA7AC:
- ldrh r1, [r4, 0x30]
- movs r2, 0x30
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _080AA7BC
- movs r0, 0x8
- strh r0, [r4, 0x30]
- b _080AA870
-_080AA7BC:
- subs r0, r1, 0x1
- strh r0, [r4, 0x30]
- b _080AA870
-_080AA7C2:
- ldrh r1, [r4, 0x30]
- movs r3, 0x30
- ldrsh r0, [r4, r3]
- cmp r0, 0x8
- bne _080AA7D2
- movs r0, 0
- strh r0, [r4, 0x30]
- b _080AA870
-_080AA7D2:
- adds r0, r1, 0x1
- strh r0, [r4, 0x30]
- b _080AA870
-_080AA7D8:
- ldr r2, _080AA7F4 @ =gUnknown_083C92E4
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- lsls r0, 2
- movs r3, 0x30
- ldrsh r1, [r4, r3]
- lsls r1, 3
- adds r0, r1
- adds r0, r2
- ldr r2, [r0]
- adds r0, r4, 0
- movs r1, 0x1
- b _080AA84E
- .align 2, 0
-_080AA7F4: .4byte gUnknown_083C92E4
-_080AA7F8:
- ldr r1, _080AA810 @ =gUnknown_083C92E4
- movs r0, 0x2E
- ldrsh r2, [r4, r0]
- lsls r2, 2
- movs r3, 0x30
- ldrsh r0, [r4, r3]
- lsls r0, 3
- adds r2, r0
- adds r2, r1
- movs r1, 0x1
- negs r1, r1
- b _080AA84A
- .align 2, 0
-_080AA810: .4byte gUnknown_083C92E4
-_080AA814:
- ldr r2, _080AA830 @ =gUnknown_083C92E4
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- lsls r0, 2
- movs r3, 0x30
- ldrsh r1, [r4, r3]
- lsls r1, 3
- adds r0, r1
- adds r0, r2
- ldr r2, [r0]
- adds r0, r4, 0
- movs r1, 0xA
- b _080AA84E
- .align 2, 0
-_080AA830: .4byte gUnknown_083C92E4
-_080AA834:
- ldr r1, _080AA864 @ =gUnknown_083C92E4
- movs r0, 0x2E
- ldrsh r2, [r4, r0]
- lsls r2, 2
- movs r3, 0x30
- ldrsh r0, [r4, r3]
- lsls r0, 3
- adds r2, r0
- adds r2, r1
- movs r1, 0xA
- negs r1, r1
-_080AA84A:
- ldr r2, [r2]
- adds r0, r4, 0
-_080AA84E:
- bl _call_via_r2
- ldrh r0, [r4, 0x32]
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x34]
- lsls r1, 24
- lsrs r1, 24
- bl sub_80AA614
- b _080AA870
- .align 2, 0
-_080AA864: .4byte gUnknown_083C92E4
-_080AA868:
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_80AAD08
-_080AA870:
- ldr r2, _080AA898 @ =gUnknown_083C9296
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- movs r3, 0x30
- ldrsh r0, [r4, r3]
- lsls r0, 1
- adds r1, r0
- adds r1, r2
- ldrb r0, [r1]
- strh r0, [r4, 0x20]
- ldr r1, _080AA89C @ =gUnknown_083C92A8
- movs r2, 0x30
- ldrsh r0, [r4, r2]
- adds r0, r1
- ldrb r0, [r0]
- strh r0, [r4, 0x22]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080AA898: .4byte gUnknown_083C9296
-_080AA89C: .4byte gUnknown_083C92A8
- thumb_func_end sub_80AA754
-
- thumb_func_start sub_80AA8A0
-sub_80AA8A0: @ 80AA8A0
- push {r4,lr}
- adds r4, r0, 0
- lsls r2, 24
- lsrs r0, r2, 24
- lsls r1, 24
- asrs r1, 24
- cmp r1, 0x1
- bne _080AA8C0
- strh r0, [r4, 0x32]
- bl sub_80AA280
- ldrh r0, [r4, 0x32]
- lsls r0, 24
- lsrs r0, 24
- bl sub_80AA658
-_080AA8C0:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80AA8A0
-
- thumb_func_start sub_80AA8C8
-sub_80AA8C8: @ 80AA8C8
- push {lr}
- lsls r1, 24
- asrs r1, 24
- movs r2, 0
- bl sub_80AA8A0
- pop {r0}
- bx r0
- thumb_func_end sub_80AA8C8
-
- thumb_func_start sub_80AA8D8
-sub_80AA8D8: @ 80AA8D8
- push {lr}
- lsls r1, 24
- asrs r1, 24
- movs r2, 0x1
- bl sub_80AA8A0
- pop {r0}
- bx r0
- thumb_func_end sub_80AA8D8
-
- thumb_func_start sub_80AA8E8
-sub_80AA8E8: @ 80AA8E8
- push {lr}
- lsls r1, 24
- asrs r1, 24
- movs r2, 0x2
- bl sub_80AA8A0
- pop {r0}
- bx r0
- thumb_func_end sub_80AA8E8
-
- thumb_func_start sub_80AA8F8
-sub_80AA8F8: @ 80AA8F8
- push {lr}
- lsls r1, 24
- asrs r1, 24
- movs r2, 0x3
- bl sub_80AA8A0
- pop {r0}
- bx r0
- thumb_func_end sub_80AA8F8
-
- thumb_func_start sub_80AA908
-sub_80AA908: @ 80AA908
- push {lr}
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- asrs r2, 24
- adds r2, r1
- lsls r2, 16
- lsrs r0, r2, 16
- asrs r2, 16
- cmp r2, 0xFF
- ble _080AA922
- movs r0, 0xFF
- b _080AA928
-_080AA922:
- cmp r2, 0
- bge _080AA928
- movs r0, 0
-_080AA928:
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- thumb_func_end sub_80AA908
-
- thumb_func_start sub_80AA930
-sub_80AA930: @ 80AA930
- push {r4,r5,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x32]
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _080AA970 @ =gUnknown_02038570
- movs r3, 0x32
- ldrsh r2, [r4, r3]
- lsls r2, 6
- adds r2, r5
- adds r2, 0x26
- ldrb r3, [r2]
- lsls r2, r1, 24
- asrs r2, 24
- adds r1, r3, 0
- bl sub_80AA908
- movs r2, 0x32
- ldrsh r1, [r4, r2]
- lsls r1, 6
- adds r1, r5
- adds r1, 0x26
- strb r0, [r1]
- ldrh r0, [r4, 0x32]
- lsls r0, 24
- lsrs r0, 24
- bl sub_80AA340
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080AA970: .4byte gUnknown_02038570
- thumb_func_end sub_80AA930
-
- thumb_func_start sub_80AA974
-sub_80AA974: @ 80AA974
- push {r4,r5,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x32]
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _080AA9B4 @ =gUnknown_02038570
- movs r3, 0x32
- ldrsh r2, [r4, r3]
- lsls r2, 6
- adds r2, r5
- adds r2, 0x28
- ldrb r3, [r2]
- lsls r2, r1, 24
- asrs r2, 24
- adds r1, r3, 0
- bl sub_80AA908
- movs r2, 0x32
- ldrsh r1, [r4, r2]
- lsls r1, 6
- adds r1, r5
- adds r1, 0x28
- strb r0, [r1]
- ldrh r0, [r4, 0x32]
- lsls r0, 24
- lsrs r0, 24
- bl sub_80AA388
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080AA9B4: .4byte gUnknown_02038570
- thumb_func_end sub_80AA974
-
- thumb_func_start sub_80AA9B8
-sub_80AA9B8: @ 80AA9B8
- push {r4,r5,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x32]
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _080AA9F8 @ =gUnknown_02038570
- movs r3, 0x32
- ldrsh r2, [r4, r3]
- lsls r2, 6
- adds r2, r5
- adds r2, 0x27
- ldrb r3, [r2]
- lsls r2, r1, 24
- asrs r2, 24
- adds r1, r3, 0
- bl sub_80AA908
- movs r2, 0x32
- ldrsh r1, [r4, r2]
- lsls r1, 6
- adds r1, r5
- adds r1, 0x27
- strb r0, [r1]
- ldrh r0, [r4, 0x32]
- lsls r0, 24
- lsrs r0, 24
- bl sub_80AA3D0
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080AA9F8: .4byte gUnknown_02038570
- thumb_func_end sub_80AA9B8
-
- thumb_func_start sub_80AA9FC
-sub_80AA9FC: @ 80AA9FC
- push {r4,r5,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x32]
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _080AAA3C @ =gUnknown_02038570
- movs r3, 0x32
- ldrsh r2, [r4, r3]
- lsls r2, 6
- adds r2, r5
- adds r2, 0x29
- ldrb r3, [r2]
- lsls r2, r1, 24
- asrs r2, 24
- adds r1, r3, 0
- bl sub_80AA908
- movs r2, 0x32
- ldrsh r1, [r4, r2]
- lsls r1, 6
- adds r1, r5
- adds r1, 0x29
- strb r0, [r1]
- ldrh r0, [r4, 0x32]
- lsls r0, 24
- lsrs r0, 24
- bl sub_80AA418
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080AAA3C: .4byte gUnknown_02038570
- thumb_func_end sub_80AA9FC
-
- thumb_func_start sub_80AAA40
-sub_80AAA40: @ 80AAA40
- push {r4,r5,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x32]
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _080AAA80 @ =gUnknown_02038570
- movs r3, 0x32
- ldrsh r2, [r4, r3]
- lsls r2, 6
- adds r2, r5
- adds r2, 0x2A
- ldrb r3, [r2]
- lsls r2, r1, 24
- asrs r2, 24
- adds r1, r3, 0
- bl sub_80AA908
- movs r2, 0x32
- ldrsh r1, [r4, r2]
- lsls r1, 6
- adds r1, r5
- adds r1, 0x2A
- strb r0, [r1]
- ldrh r0, [r4, 0x32]
- lsls r0, 24
- lsrs r0, 24
- bl sub_80AA460
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080AAA80: .4byte gUnknown_02038570
- thumb_func_end sub_80AAA40
-
- thumb_func_start sub_80AAA84
-sub_80AAA84: @ 80AAA84
- push {r4,r5,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x32]
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _080AAAC4 @ =gUnknown_02038570
- movs r3, 0x32
- ldrsh r2, [r4, r3]
- lsls r2, 6
- adds r2, r5
- adds r2, 0x2B
- ldrb r3, [r2]
- lsls r2, r1, 24
- asrs r2, 24
- adds r1, r3, 0
- bl sub_80AA908
- movs r2, 0x32
- ldrsh r1, [r4, r2]
- lsls r1, 6
- adds r1, r5
- adds r1, 0x2B
- strb r0, [r1]
- ldrh r0, [r4, 0x32]
- lsls r0, 24
- lsrs r0, 24
- bl sub_80AA4A8
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080AAAC4: .4byte gUnknown_02038570
- thumb_func_end sub_80AAA84
-
- thumb_func_start sub_80AAAC8
-sub_80AAAC8: @ 80AAAC8
- push {lr}
- lsls r1, 16
- lsrs r1, 16
- lsls r2, 24
- asrs r2, 24
- adds r1, r2
- lsls r1, 16
- lsrs r0, r1, 16
- asrs r1, 16
- movs r2, 0xB1
- lsls r2, 1
- cmp r1, r2
- ble _080AAAE6
- movs r0, 0x1
- b _080AAAEC
-_080AAAE6:
- cmp r1, 0
- bge _080AAAEC
- adds r0, r2, 0
-_080AAAEC:
- pop {r1}
- bx r1
- thumb_func_end sub_80AAAC8
-
- thumb_func_start sub_80AAAF0
-sub_80AAAF0: @ 80AAAF0
- push {r4,r5,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x32]
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _080AAB2C @ =gUnknown_02038570
- movs r3, 0x32
- ldrsh r2, [r4, r3]
- lsls r2, 6
- adds r2, r5
- ldrh r3, [r2, 0x1E]
- lsls r2, r1, 24
- asrs r2, 24
- adds r1, r3, 0
- bl sub_80AAAC8
- movs r2, 0x32
- ldrsh r1, [r4, r2]
- lsls r1, 6
- adds r1, r5
- strh r0, [r1, 0x1E]
- ldrh r0, [r4, 0x32]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- bl sub_80AA4F0
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080AAB2C: .4byte gUnknown_02038570
- thumb_func_end sub_80AAAF0
-
- thumb_func_start sub_80AAB30
-sub_80AAB30: @ 80AAB30
- push {r4,r5,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x32]
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _080AAB6C @ =gUnknown_02038570
- movs r3, 0x32
- ldrsh r2, [r4, r3]
- lsls r2, 6
- adds r2, r5
- ldrh r3, [r2, 0x20]
- lsls r2, r1, 24
- asrs r2, 24
- adds r1, r3, 0
- bl sub_80AAAC8
- movs r2, 0x32
- ldrsh r1, [r4, r2]
- lsls r1, 6
- adds r1, r5
- strh r0, [r1, 0x20]
- ldrh r0, [r4, 0x32]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x1
- bl sub_80AA4F0
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080AAB6C: .4byte gUnknown_02038570
- thumb_func_end sub_80AAB30
-
- thumb_func_start sub_80AAB70
-sub_80AAB70: @ 80AAB70
- push {r4,r5,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x32]
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _080AABAC @ =gUnknown_02038570
- movs r3, 0x32
- ldrsh r2, [r4, r3]
- lsls r2, 6
- adds r2, r5
- ldrh r3, [r2, 0x22]
- lsls r2, r1, 24
- asrs r2, 24
- adds r1, r3, 0
- bl sub_80AAAC8
- movs r2, 0x32
- ldrsh r1, [r4, r2]
- lsls r1, 6
- adds r1, r5
- strh r0, [r1, 0x22]
- ldrh r0, [r4, 0x32]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x2
- bl sub_80AA4F0
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080AABAC: .4byte gUnknown_02038570
- thumb_func_end sub_80AAB70
-
- thumb_func_start sub_80AABB0
-sub_80AABB0: @ 80AABB0
- push {r4,r5,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x32]
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _080AABEC @ =gUnknown_02038570
- movs r3, 0x32
- ldrsh r2, [r4, r3]
- lsls r2, 6
- adds r2, r5
- ldrh r3, [r2, 0x24]
- lsls r2, r1, 24
- asrs r2, 24
- adds r1, r3, 0
- bl sub_80AAAC8
- movs r2, 0x32
- ldrsh r1, [r4, r2]
- lsls r1, 6
- adds r1, r5
- strh r0, [r1, 0x24]
- ldrh r0, [r4, 0x32]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x3
- bl sub_80AA4F0
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080AABEC: .4byte gUnknown_02038570
- thumb_func_end sub_80AABB0
-
- thumb_func_start sub_80AABF0
-sub_80AABF0: @ 80AABF0
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r1, 24
- movs r0, 0xFF
- cmp r1, 0
- ble _080AABFE
- movs r0, 0x1
-_080AABFE:
- lsls r0, 24
- asrs r0, 24
- ldrh r1, [r5, 0x34]
- adds r0, r1
- lsls r0, 24
- lsrs r4, r0, 24
- asrs r0, 24
- cmp r0, 0
- bge _080AAC14
- movs r4, 0
- b _080AAC1A
-_080AAC14:
- cmp r0, 0x4
- ble _080AAC1A
- movs r4, 0x4
-_080AAC1A:
- lsls r4, 24
- lsrs r0, r4, 24
- bl sub_80AA5BC
- asrs r4, 24
- strh r4, [r5, 0x34]
- ldr r0, _080AAC54 @ =gScriptContestCategory
- strh r4, [r0]
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _080AAC58 @ =gScriptContestRank
- ldrb r1, [r0]
- adds r0, r4, 0
- bl sub_80AE398
- ldrh r0, [r5, 0x32]
- lsls r0, 24
- lsrs r0, 24
- bl sub_80AA280
- ldrh r0, [r5, 0x32]
- lsls r0, 24
- lsrs r0, 24
- bl sub_80AA658
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080AAC54: .4byte gScriptContestCategory
-_080AAC58: .4byte gScriptContestRank
- thumb_func_end sub_80AABF0
-
- thumb_func_start sub_80AAC5C
-sub_80AAC5C: @ 80AAC5C
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r1, 24
- cmp r1, 0
- ble _080AAC78
- ldr r1, _080AAC74 @ =gScriptContestRank
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- adds r4, r1, 0
- b _080AAC86
- .align 2, 0
-_080AAC74: .4byte gScriptContestRank
-_080AAC78:
- ldr r0, _080AACBC @ =gScriptContestRank
- ldrh r2, [r0]
- adds r4, r0, 0
- cmp r2, 0
- beq _080AAC86
- subs r0, r2, 0x1
- strh r0, [r4]
-_080AAC86:
- adds r1, r4, 0
- ldrh r0, [r1]
- cmp r0, 0x3
- bls _080AAC92
- movs r0, 0x3
- strh r0, [r1]
-_080AAC92:
- ldrb r0, [r4]
- bl sub_80AA5E8
- ldr r0, _080AACC0 @ =gScriptContestCategory
- ldrb r0, [r0]
- ldrb r1, [r4]
- bl sub_80AE398
- ldrh r0, [r5, 0x32]
- lsls r0, 24
- lsrs r0, 24
- bl sub_80AA280
- ldrh r0, [r5, 0x32]
- lsls r0, 24
- lsrs r0, 24
- bl sub_80AA658
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080AACBC: .4byte gScriptContestRank
-_080AACC0: .4byte gScriptContestCategory
- thumb_func_end sub_80AAC5C
-
- thumb_func_start sub_80AACC4
-sub_80AACC4: @ 80AACC4
- push {lr}
- bl UpdatePaletteFade
- ldr r0, _080AACF8 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080AACF4
- bl sub_80AA69C
- ldr r0, _080AACFC @ =gUnknown_0203869A
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080AACEE
- ldr r0, _080AAD00 @ =0x02000000
- ldrb r0, [r0]
- bl sub_80AE82C
-_080AACEE:
- ldr r0, _080AAD04 @ =sub_80AB47C
- bl SetMainCallback2
-_080AACF4:
- pop {r0}
- bx r0
- .align 2, 0
-_080AACF8: .4byte gPaletteFade
-_080AACFC: .4byte gUnknown_0203869A
-_080AAD00: .4byte 0x02000000
-_080AAD04: .4byte sub_80AB47C
- thumb_func_end sub_80AACC4
-
- thumb_func_start sub_80AAD08
-sub_80AAD08: @ 80AAD08
- push {r4,lr}
- sub sp, 0x4
- lsls r1, 24
- asrs r1, 24
- cmp r1, 0x1
- bne _080AAD32
- ldr r1, _080AAD3C @ =0x02000000
- ldrh r0, [r0, 0x34]
- movs r4, 0
- strb r0, [r1]
- ldr r0, _080AAD40 @ =sub_80AACC4
- bl SetMainCallback2
- movs r0, 0x1
- negs r0, r0
- str r4, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
-_080AAD32:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080AAD3C: .4byte 0x02000000
-_080AAD40: .4byte sub_80AACC4
- thumb_func_end sub_80AAD08
-
- thumb_func_start sub_80AAD44
-sub_80AAD44: @ 80AAD44
- push {r4,r5,lr}
- lsls r1, 24
- asrs r1, 24
- cmp r1, 0x1
- bne _080AAD72
- bl sub_80AA69C
- movs r4, 0
- ldr r5, _080AAD78 @ =gUnknown_02038670
-_080AAD56:
- lsls r0, r4, 24
- lsrs r0, 24
- ldr r1, _080AAD7C @ =gScriptContestCategory
- ldrb r1, [r1]
- bl sub_80AE770
- strh r0, [r5]
- adds r5, 0x2
- adds r4, 0x1
- cmp r4, 0x3
- ble _080AAD56
- ldr r0, _080AAD80 @ =sub_805469C
- bl SetMainCallback2
-_080AAD72:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080AAD78: .4byte gUnknown_02038670
-_080AAD7C: .4byte gScriptContestCategory
-_080AAD80: .4byte sub_805469C
- thumb_func_end sub_80AAD44
-
- thumb_func_start sub_80AAD84
-sub_80AAD84: @ 80AAD84
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x64
- mov r9, r0
- lsls r1, 24
- lsrs r1, 24
- str r1, [sp, 0x48]
- lsls r2, 24
- lsrs r2, 24
- str r2, [sp, 0x4C]
- lsls r3, 24
- lsrs r3, 24
- mov r10, r3
- mov r5, r10
- adds r5, 0x1
- lsls r1, r5, 8
- ldr r0, _080AAEC4 @ =0x06018000
- subs r1, r0, r1
- movs r0, 0
- str r0, [sp, 0x44]
- ldr r4, _080AAEC8 @ =0x040000d4
- add r0, sp, 0x44
- str r0, [r4]
- str r1, [r4, 0x4]
- ldr r0, _080AAECC @ =0x85000040
- str r0, [r4, 0x8]
- ldr r0, [r4, 0x8]
- mov r0, r9
- bl StringLength
- lsls r0, 16
- lsrs r7, r0, 16
- cmp r7, 0x8
- bls _080AADD0
- movs r7, 0x8
-_080AADD0:
- movs r6, 0
- mov r8, r5
- mov r1, r10
- lsls r1, 1
- str r1, [sp, 0x58]
- ldr r2, [sp, 0x48]
- adds r2, 0x20
- str r2, [sp, 0x5C]
- cmp r6, r7
- bge _080AAE1E
- add r5, sp, 0x40
- add r0, sp, 0x20
- mov r10, r0
- ldr r2, _080AAEC4 @ =0x06018000
-_080AADEC:
- mov r1, r9
- adds r0, r1, r6
- ldrb r0, [r0]
- strb r0, [r5]
- movs r0, 0xFF
- strb r0, [r5, 0x1]
- mov r0, sp
- adds r1, r5, 0
- str r2, [sp, 0x60]
- bl sub_80034D4
- mov r1, r8
- lsls r0, r1, 8
- ldr r2, [sp, 0x60]
- subs r0, r2, r0
- mov r1, r10
- str r1, [r4]
- str r0, [r4, 0x4]
- ldr r0, _080AAED0 @ =0x84000008
- str r0, [r4, 0x8]
- ldr r0, [r4, 0x8]
- adds r2, 0x20
- adds r6, 0x1
- cmp r6, r7
- blt _080AADEC
-_080AAE1E:
- movs r1, 0x7C
- ldr r2, [sp, 0x58]
- subs r1, r2
- lsls r1, 24
- lsrs r7, r1, 24
- ldr r0, _080AAED4 @ =gMain
- mov r9, r0
- lsls r3, r7, 3
- add r3, r9
- ldr r0, _080AAED8 @ =gUnknown_083C9400
- ldr r1, [r0]
- ldr r2, [r0, 0x4]
- str r1, [sp, 0x50]
- str r2, [sp, 0x54]
- str r1, [r3, 0x3C]
- str r2, [r3, 0x40]
- mov r2, r8
- lsls r0, r2, 3
- movs r1, 0x80
- lsls r1, 3
- adds r2, r1, 0
- subs r2, r0
- adds r6, r3, 0
- adds r6, 0x40
- ldr r0, _080AAEDC @ =0x000003ff
- mov r8, r0
- mov r1, r8
- ands r2, r1
- ldrh r5, [r6]
- ldr r4, _080AAEE0 @ =0xfffffc00
- adds r0, r4, 0
- ands r0, r5
- orrs r0, r2
- strh r0, [r6]
- ldrh r5, [r3, 0x3E]
- ldr r2, _080AAEE4 @ =0xfffffe00
- adds r0, r2, 0
- ands r0, r5
- ldr r1, [sp, 0x48]
- orrs r0, r1
- strh r0, [r3, 0x3E]
- adds r3, 0x3C
- add r0, sp, 0x4C
- ldrb r0, [r0]
- strb r0, [r3]
- adds r1, r7, 0x1
- lsls r1, 3
- mov r0, r9
- adds r7, r1, r0
- ldr r0, [sp, 0x50]
- ldr r1, [sp, 0x54]
- str r0, [r7, 0x3C]
- str r1, [r7, 0x40]
- ldrh r0, [r6]
- lsls r0, 22
- lsrs r0, 22
- adds r0, 0x4
- adds r5, r7, 0
- adds r5, 0x40
- mov r1, r8
- ands r0, r1
- ldrh r3, [r5]
- ands r4, r3
- orrs r4, r0
- strh r4, [r5]
- ldrh r0, [r7, 0x3E]
- ands r2, r0
- ldr r0, [sp, 0x5C]
- orrs r2, r0
- strh r2, [r7, 0x3E]
- adds r1, r7, 0
- adds r1, 0x3C
- add r2, sp, 0x4C
- ldrb r2, [r2]
- strb r2, [r1]
- add sp, 0x64
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080AAEC4: .4byte 0x06018000
-_080AAEC8: .4byte 0x040000d4
-_080AAECC: .4byte 0x85000040
-_080AAED0: .4byte 0x84000008
-_080AAED4: .4byte gMain
-_080AAED8: .4byte gUnknown_083C9400
-_080AAEDC: .4byte 0x000003ff
-_080AAEE0: .4byte 0xfffffc00
-_080AAEE4: .4byte 0xfffffe00
- thumb_func_end sub_80AAD84
-
- thumb_func_start unref_sub_80AAEE8
-unref_sub_80AAEE8: @ 80AAEE8
- push {r4-r7,lr}
- sub sp, 0xC
- adds r4, r0, 0
- lsls r1, 24
- lsrs r7, r1, 24
- lsls r2, 24
- lsrs r6, r2, 24
- lsls r3, 24
- lsrs r5, r3, 24
- movs r0, 0
- cmp r4, 0
- bge _080AAF08
- mov r1, sp
- movs r0, 0xAE
- strb r0, [r1]
- movs r0, 0x1
-_080AAF08:
- add r0, sp
- adds r1, r4, 0
- cmp r1, 0
- bge _080AAF12
- negs r1, r1
-_080AAF12:
- movs r2, 0
- movs r3, 0x8
- bl ConvertIntToDecimalStringN
- mov r0, sp
- adds r1, r7, 0
- adds r2, r6, 0
- adds r3, r5, 0
- bl sub_80AAD84
- add sp, 0xC
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end unref_sub_80AAEE8
-
- thumb_func_start sub_80AAF30
-sub_80AAF30: @ 80AAF30
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- ldr r1, _080AAFC0 @ =gUnknown_0203856C
- movs r0, 0x1
- strb r0, [r1]
- ldr r1, _080AAFC4 @ =gUnknown_02038695
- movs r0, 0x3
- strb r0, [r1]
- movs r0, 0
- bl sub_80AE098
- movs r4, 0x3
- movs r5, 0x1
- negs r5, r5
- ldr r3, _080AAFC8 @ =gUnknown_02038690
- movs r2, 0x3
-_080AAF56:
- adds r1, r4, r3
- subs r0, r2, r4
- strb r0, [r1]
- subs r4, 0x1
- cmp r4, r5
- bgt _080AAF56
- movs r4, 0
- movs r6, 0
- ldr r7, _080AAFCC @ =gUnknown_02038670
- ldr r5, _080AAFD0 @ =gUnknown_02038570
- mov r9, r5
-_080AAF6C:
- lsls r1, r4, 1
- strh r6, [r7]
- ldr r0, _080AAFD4 @ =gUnknown_02038680
- mov r8, r0
- adds r0, r1, r0
- strh r6, [r0]
- ldr r3, _080AAFD8 @ =gUnknown_02038678
- adds r1, r3
- strh r6, [r1]
- adds r0, r5, 0
- mov r1, r9
- adds r1, 0xC0
- movs r2, 0x40
- str r3, [sp]
- bl memcpy
- adds r7, 0x2
- adds r5, 0x40
- adds r4, 0x1
- ldr r3, [sp]
- cmp r4, 0x2
- ble _080AAF6C
- ldr r0, _080AAFCC @ =gUnknown_02038670
- movs r1, 0x96
- lsls r1, 1
- strh r1, [r0, 0x6]
- movs r0, 0xC8
- lsls r0, 1
- mov r1, r8
- strh r0, [r1, 0x6]
- strh r0, [r3, 0x6]
- movs r0, 0xFE
- bl sub_80B2A7C
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080AAFC0: .4byte gUnknown_0203856C
-_080AAFC4: .4byte gUnknown_02038695
-_080AAFC8: .4byte gUnknown_02038690
-_080AAFCC: .4byte gUnknown_02038670
-_080AAFD0: .4byte gUnknown_02038570
-_080AAFD4: .4byte gUnknown_02038680
-_080AAFD8: .4byte gUnknown_02038678
- thumb_func_end sub_80AAF30
-
- thumb_func_start sub_80AAFDC
-sub_80AAFDC: @ 80AAFDC
- push {lr}
- bl sub_80AAF30
- bl sub_8071C20
- movs r0, 0x1
- pop {r1}
- bx r1
- thumb_func_end sub_80AAFDC
-
- thumb_func_start sub_80AAFEC
-sub_80AAFEC: @ 80AAFEC
- push {r4,lr}
- ldr r1, _080AB01C @ =gUnknown_0203856C
- movs r0, 0
- strb r0, [r1]
- movs r4, 0
- ldr r3, _080AB020 @ =gUnknown_02038678
- ldr r2, _080AB024 @ =gUnknown_02038680
- ldr r1, _080AB028 @ =gUnknown_02038670
- movs r0, 0x3
-_080AAFFE:
- strh r4, [r1]
- strh r4, [r2]
- strh r4, [r3]
- adds r3, 0x2
- adds r2, 0x2
- adds r1, 0x2
- subs r0, 0x1
- cmp r0, 0
- bge _080AAFFE
- bl sub_8071C20
- movs r0, 0x1
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080AB01C: .4byte gUnknown_0203856C
-_080AB020: .4byte gUnknown_02038678
-_080AB024: .4byte gUnknown_02038680
-_080AB028: .4byte gUnknown_02038670
- thumb_func_end sub_80AAFEC
-
- thumb_func_start sub_80AB02C
-sub_80AB02C: @ 80AB02C
- push {r4,r5,lr}
- ldr r1, _080AB078 @ =gUnknown_02038695
- movs r0, 0x3
- strb r0, [r1]
- movs r0, 0
- bl sub_80AE098
- movs r2, 0x3
- movs r5, 0x1
- negs r5, r5
- ldr r4, _080AB07C @ =gUnknown_02038690
- movs r3, 0x3
-_080AB044:
- adds r1, r2, r4
- subs r0, r3, r2
- strb r0, [r1]
- subs r2, 0x1
- cmp r2, r5
- bgt _080AB044
- ldr r1, _080AB080 @ =gScriptContestCategory
- movs r0, 0
- strh r0, [r1]
- adds r4, r1, 0
-_080AB058:
- movs r0, 0xFF
- bl sub_80B2A7C
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x4
- bls _080AB058
- bl sub_8071C20
- movs r0, 0x1
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_080AB078: .4byte gUnknown_02038695
-_080AB07C: .4byte gUnknown_02038690
-_080AB080: .4byte gScriptContestCategory
- thumb_func_end sub_80AB02C
-
- thumb_func_start unref_sub_80AB084
-unref_sub_80AB084: @ 80AB084
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- mov r8, r0
- ldr r0, _080AB160 @ =REG_BG0HOFS
- movs r1, 0
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x22
- strh r1, [r0]
- adds r0, 0x4
- strh r1, [r0]
- subs r0, 0x2
- strh r1, [r0]
- adds r0, 0x4
- strh r1, [r0]
- movs r2, 0x80
- lsls r2, 19
- movs r3, 0xFA
- lsls r3, 5
- adds r0, r3, 0
- strh r0, [r2]
- ldr r3, _080AB164 @ =0x04000208
- ldrh r2, [r3]
- strh r1, [r3]
- ldr r4, _080AB168 @ =0x04000200
- ldrh r0, [r4]
- movs r1, 0x1
- orrs r0, r1
- strh r0, [r4]
- strh r2, [r3]
- ldr r1, _080AB16C @ =REG_DISPSTAT
- movs r0, 0x8
- strh r0, [r1]
- bl ResetTasks
- bl ResetSpriteData
- ldr r0, _080AB170 @ =sub_80AB184
- bl SetMainCallback2
- movs r2, 0xC0
- lsls r2, 19
- movs r3, 0xC0
- lsls r3, 9
- movs r5, 0
- ldr r1, _080AB174 @ =0x040000d4
- movs r4, 0x80
- lsls r4, 5
- ldr r6, _080AB178 @ =0x85000400
- movs r7, 0x85
- lsls r7, 24
-_080AB108:
- str r5, [sp, 0x4]
- add r0, sp, 0x4
- str r0, [r1]
- str r2, [r1, 0x4]
- str r6, [r1, 0x8]
- ldr r0, [r1, 0x8]
- adds r2, r4
- subs r3, r4
- cmp r3, r4
- bhi _080AB108
- str r5, [sp, 0x4]
- add r0, sp, 0x4
- str r0, [r1]
- str r2, [r1, 0x4]
- lsrs r0, r3, 2
- orrs r0, r7
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- ldr r4, _080AB17C @ =gWindowConfig_81E6FD8
- adds r0, r4, 0
- bl SetUpWindowConfig
- ldr r5, _080AB180 @ =gUnknown_03004210
- adds r0, r5, 0
- adds r1, r4, 0
- bl InitWindowFromConfig
- adds r0, r4, 0
- bl LoadFontDefaultPalette
- movs r0, 0x7
- str r0, [sp]
- adds r0, r5, 0
- mov r1, r8
- movs r2, 0x1
- movs r3, 0x9
- bl sub_8003460
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080AB160: .4byte REG_BG0HOFS
-_080AB164: .4byte 0x04000208
-_080AB168: .4byte 0x04000200
-_080AB16C: .4byte REG_DISPSTAT
-_080AB170: .4byte sub_80AB184
-_080AB174: .4byte 0x040000d4
-_080AB178: .4byte 0x85000400
-_080AB17C: .4byte gWindowConfig_81E6FD8
-_080AB180: .4byte gUnknown_03004210
- thumb_func_end unref_sub_80AB084
-
- thumb_func_start sub_80AB184
-sub_80AB184: @ 80AB184
- ldr r0, _080AB1A8 @ =REG_BG0HOFS
- movs r1, 0
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- bx lr
- .align 2, 0
-_080AB1A8: .4byte REG_BG0HOFS
- thumb_func_end sub_80AB184
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/mauville_old_man.s b/asm/mauville_old_man.s
index 7dfaa890e..3af0f2b11 100644
--- a/asm/mauville_old_man.s
+++ b/asm/mauville_old_man.s
@@ -1369,7 +1369,7 @@ sub_80F8438: @ 80F8438
bne _080F8444
movs r0, 0
_080F8444:
- bl sub_8053108
+ bl GetGameStat
pop {r1}
bx r1
thumb_func_end sub_80F8438
diff --git a/asm/metatile_behavior.s b/asm/metatile_behavior.s
deleted file mode 100644
index f81e3c0d4..000000000
--- a/asm/metatile_behavior.s
+++ /dev/null
@@ -1,2345 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_8056D9C
-sub_8056D9C: @ 8056D9C
- movs r0, 0x1
- bx lr
- thumb_func_end sub_8056D9C
-
- thumb_func_start sub_8056DA0
-sub_8056DA0: @ 8056DA0
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _08056DB8 @ =gUnknown_08308E2C
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _08056DBC
- movs r0, 0
- b _08056DBE
- .align 2, 0
-_08056DB8: .4byte gUnknown_08308E2C
-_08056DBC:
- movs r0, 0x1
-_08056DBE:
- pop {r1}
- bx r1
- thumb_func_end sub_8056DA0
-
- thumb_func_start MetatileBehavior_IsJumpEast
-MetatileBehavior_IsJumpEast: @ 8056DC4
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x38
- beq _08056DD2
- movs r0, 0
- b _08056DD4
-_08056DD2:
- movs r0, 0x1
-_08056DD4:
- pop {r1}
- bx r1
- thumb_func_end MetatileBehavior_IsJumpEast
-
- thumb_func_start MetatileBehavior_IsJumpWest
-MetatileBehavior_IsJumpWest: @ 8056DD8
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x39
- beq _08056DE6
- movs r0, 0
- b _08056DE8
-_08056DE6:
- movs r0, 0x1
-_08056DE8:
- pop {r1}
- bx r1
- thumb_func_end MetatileBehavior_IsJumpWest
-
- thumb_func_start MetatileBehavior_IsJumpNorth
-MetatileBehavior_IsJumpNorth: @ 8056DEC
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3A
- beq _08056DFA
- movs r0, 0
- b _08056DFC
-_08056DFA:
- movs r0, 0x1
-_08056DFC:
- pop {r1}
- bx r1
- thumb_func_end MetatileBehavior_IsJumpNorth
-
- thumb_func_start MetatileBehavior_IsJumpSouth
-MetatileBehavior_IsJumpSouth: @ 8056E00
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3B
- beq _08056E0E
- movs r0, 0
- b _08056E10
-_08056E0E:
- movs r0, 0x1
-_08056E10:
- pop {r1}
- bx r1
- thumb_func_end MetatileBehavior_IsJumpSouth
-
- thumb_func_start sub_8056E14
-sub_8056E14: @ 8056E14
- push {lr}
- lsls r0, 24
- movs r1, 0xFE
- lsls r1, 24
- adds r0, r1
- lsrs r0, 24
- cmp r0, 0x1
- bls _08056E28
- movs r0, 0
- b _08056E2A
-_08056E28:
- movs r0, 0x1
-_08056E2A:
- pop {r1}
- bx r1
- thumb_func_end sub_8056E14
-
- thumb_func_start MetatileBehavior_IsSandOrDeepSand
-MetatileBehavior_IsSandOrDeepSand: @ 8056E30
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x21
- beq _08056E3E
- cmp r0, 0x6
- bne _08056E42
-_08056E3E:
- movs r0, 0x1
- b _08056E44
-_08056E42:
- movs r0, 0
-_08056E44:
- pop {r1}
- bx r1
- thumb_func_end MetatileBehavior_IsSandOrDeepSand
-
- thumb_func_start MetatileBehavior_IsDeepSand
-MetatileBehavior_IsDeepSand: @ 8056E48
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x6
- beq _08056E56
- movs r0, 0
- b _08056E58
-_08056E56:
- movs r0, 0x1
-_08056E58:
- pop {r1}
- bx r1
- thumb_func_end MetatileBehavior_IsDeepSand
-
- thumb_func_start MetatileBehavior_IsReflective
-MetatileBehavior_IsReflective: @ 8056E5C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x10
- beq _08056E7A
- cmp r0, 0x16
- beq _08056E7A
- cmp r0, 0x1A
- beq _08056E7A
- cmp r0, 0x20
- beq _08056E7A
- cmp r0, 0x14
- beq _08056E7A
- cmp r0, 0x2B
- bne _08056E7E
-_08056E7A:
- movs r0, 0x1
- b _08056E80
-_08056E7E:
- movs r0, 0
-_08056E80:
- pop {r1}
- bx r1
- thumb_func_end MetatileBehavior_IsReflective
-
- thumb_func_start MetatileBehavior_IsIce
-MetatileBehavior_IsIce: @ 8056E84
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x20
- beq _08056E92
- movs r0, 0
- b _08056E94
-_08056E92:
- movs r0, 0x1
-_08056E94:
- pop {r1}
- bx r1
- thumb_func_end MetatileBehavior_IsIce
-
- thumb_func_start is_tile_x69_2_warp_door
-is_tile_x69_2_warp_door: @ 8056E98
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x69
- beq _08056EA6
- movs r0, 0
- b _08056EA8
-_08056EA6:
- movs r0, 0x1
-_08056EA8:
- pop {r1}
- bx r1
- thumb_func_end is_tile_x69_2_warp_door
-
- thumb_func_start MetatileBehavior_IsDoor
-MetatileBehavior_IsDoor: @ 8056EAC
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x8D
- beq _08056EBA
- cmp r0, 0x69
- bne _08056EBE
-_08056EBA:
- movs r0, 0x1
- b _08056EC0
-_08056EBE:
- movs r0, 0
-_08056EC0:
- pop {r1}
- bx r1
- thumb_func_end MetatileBehavior_IsDoor
-
- thumb_func_start MetatileBehavior_IsEscalator
-MetatileBehavior_IsEscalator: @ 8056EC4
- push {lr}
- lsls r0, 24
- movs r1, 0x96
- lsls r1, 24
- adds r0, r1
- lsrs r0, 24
- cmp r0, 0x1
- bls _08056ED8
- movs r0, 0
- b _08056EDA
-_08056ED8:
- movs r0, 0x1
-_08056EDA:
- pop {r1}
- bx r1
- thumb_func_end MetatileBehavior_IsEscalator
-
- thumb_func_start unref_sub_8056EE0
-unref_sub_8056EE0: @ 8056EE0
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- beq _08056EEE
- movs r0, 0
- b _08056EF0
-_08056EEE:
- movs r0, 0x1
-_08056EF0:
- pop {r1}
- bx r1
- thumb_func_end unref_sub_8056EE0
-
- thumb_func_start MetatileBehavior_IsLadder
-MetatileBehavior_IsLadder: @ 8056EF4
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x61
- beq _08056F02
- movs r0, 0
- b _08056F04
-_08056F02:
- movs r0, 0x1
-_08056F04:
- pop {r1}
- bx r1
- thumb_func_end MetatileBehavior_IsLadder
-
- thumb_func_start sub_8056F08
-sub_8056F08: @ 8056F08
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x60
- beq _08056F1A
- cmp r0, 0x6C
- beq _08056F1A
- cmp r0, 0x6E
- bne _08056F1E
-_08056F1A:
- movs r0, 0x1
- b _08056F20
-_08056F1E:
- movs r0, 0
-_08056F20:
- pop {r1}
- bx r1
- thumb_func_end sub_8056F08
-
- thumb_func_start sub_8056F24
-sub_8056F24: @ 8056F24
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x6E
- beq _08056F32
- movs r0, 0
- b _08056F34
-_08056F32:
- movs r0, 0x1
-_08056F34:
- pop {r1}
- bx r1
- thumb_func_end sub_8056F24
-
- thumb_func_start MetatileBehavior_IsSurfableWaterOrUnderwater
-MetatileBehavior_IsSurfableWaterOrUnderwater: @ 8056F38
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _08056F50 @ =gUnknown_08308E2C
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _08056F54
- movs r0, 0
- b _08056F56
- .align 2, 0
-_08056F50: .4byte gUnknown_08308E2C
-_08056F54:
- movs r0, 0x1
-_08056F56:
- pop {r1}
- bx r1
- thumb_func_end MetatileBehavior_IsSurfableWaterOrUnderwater
-
- thumb_func_start MetatileBehavior_IsEastArrowWarp
-MetatileBehavior_IsEastArrowWarp: @ 8056F5C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x62
- beq _08056F6A
- movs r0, 0
- b _08056F6C
-_08056F6A:
- movs r0, 0x1
-_08056F6C:
- pop {r1}
- bx r1
- thumb_func_end MetatileBehavior_IsEastArrowWarp
-
- thumb_func_start MetatileBehavior_IsWestArrowWarp
-MetatileBehavior_IsWestArrowWarp: @ 8056F70
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x63
- beq _08056F7E
- movs r0, 0
- b _08056F80
-_08056F7E:
- movs r0, 0x1
-_08056F80:
- pop {r1}
- bx r1
- thumb_func_end MetatileBehavior_IsWestArrowWarp
-
- thumb_func_start MetatileBehavior_IsNorthArrowWarp
-MetatileBehavior_IsNorthArrowWarp: @ 8056F84
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x64
- beq _08056F92
- cmp r0, 0x1B
- bne _08056F96
-_08056F92:
- movs r0, 0x1
- b _08056F98
-_08056F96:
- movs r0, 0
-_08056F98:
- pop {r1}
- bx r1
- thumb_func_end MetatileBehavior_IsNorthArrowWarp
-
- thumb_func_start MetatileBehavior_IsSouthArrowWarp
-MetatileBehavior_IsSouthArrowWarp: @ 8056F9C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x65
- beq _08056FAE
- cmp r0, 0x6D
- beq _08056FAE
- cmp r0, 0x1C
- bne _08056FB2
-_08056FAE:
- movs r0, 0x1
- b _08056FB4
-_08056FB2:
- movs r0, 0
-_08056FB4:
- pop {r1}
- bx r1
- thumb_func_end MetatileBehavior_IsSouthArrowWarp
-
- thumb_func_start unref_sub_8056FB8
-unref_sub_8056FB8: @ 8056FB8
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- movs r5, 0
- adds r0, r4, 0
- bl MetatileBehavior_IsEastArrowWarp
- lsls r0, 24
- cmp r0, 0
- bne _08056FF0
- adds r0, r4, 0
- bl MetatileBehavior_IsWestArrowWarp
- lsls r0, 24
- cmp r0, 0
- bne _08056FF0
- adds r0, r4, 0
- bl MetatileBehavior_IsNorthArrowWarp
- lsls r0, 24
- cmp r0, 0
- bne _08056FF0
- adds r0, r4, 0
- bl MetatileBehavior_IsSouthArrowWarp
- lsls r0, 24
- cmp r0, 0
- beq _08056FF2
-_08056FF0:
- movs r5, 0x1
-_08056FF2:
- adds r0, r5, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end unref_sub_8056FB8
-
- thumb_func_start sub_8056FFC
-sub_8056FFC: @ 8056FFC
- push {lr}
- lsls r0, 24
- lsrs r1, r0, 24
- movs r2, 0xC0
- lsls r2, 24
- adds r0, r2
- lsrs r0, 24
- cmp r0, 0x8
- bls _08057032
- adds r0, r1, 0
- subs r0, 0x50
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bls _08057032
- cmp r1, 0xD0
- beq _08057032
- cmp r1, 0xD2
- beq _08057032
- cmp r1, 0x13
- beq _08057032
- cmp r1, 0x20
- beq _08057032
- cmp r1, 0xBB
- beq _08057032
- cmp r1, 0xBC
- bne _08057036
-_08057032:
- movs r0, 0x1
- b _08057038
-_08057036:
- movs r0, 0
-_08057038:
- pop {r1}
- bx r1
- thumb_func_end sub_8056FFC
-
- thumb_func_start MetatileBehavior_IsIce_2
-MetatileBehavior_IsIce_2: @ 805703C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x20
- beq _0805704A
- movs r0, 0
- b _0805704C
-_0805704A:
- movs r0, 0x1
-_0805704C:
- pop {r1}
- bx r1
- thumb_func_end MetatileBehavior_IsIce_2
-
- thumb_func_start MetatileBehavior_IsTrickHouseSlipperyFloor
-MetatileBehavior_IsTrickHouseSlipperyFloor: @ 8057050
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x48
- beq _0805705E
- movs r0, 0
- b _08057060
-_0805705E:
- movs r0, 0x1
-_08057060:
- pop {r1}
- bx r1
- thumb_func_end MetatileBehavior_IsTrickHouseSlipperyFloor
-
- thumb_func_start MetatileBehavior_0x05
-MetatileBehavior_0x05: @ 8057064
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x5
- beq _08057072
- movs r0, 0
- b _08057074
-_08057072:
- movs r0, 0x1
-_08057074:
- pop {r1}
- bx r1
- thumb_func_end MetatileBehavior_0x05
-
- thumb_func_start MetatileBehavior_IsWalkNorth
-MetatileBehavior_IsWalkNorth: @ 8057078
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x42
- beq _08057086
- movs r0, 0
- b _08057088
-_08057086:
- movs r0, 0x1
-_08057088:
- pop {r1}
- bx r1
- thumb_func_end MetatileBehavior_IsWalkNorth
-
- thumb_func_start MetatileBehavior_IsWalkSouth
-MetatileBehavior_IsWalkSouth: @ 805708C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x43
- beq _0805709A
- movs r0, 0
- b _0805709C
-_0805709A:
- movs r0, 0x1
-_0805709C:
- pop {r1}
- bx r1
- thumb_func_end MetatileBehavior_IsWalkSouth
-
- thumb_func_start MetatileBehavior_IsWalkWest
-MetatileBehavior_IsWalkWest: @ 80570A0
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x41
- beq _080570AE
- movs r0, 0
- b _080570B0
-_080570AE:
- movs r0, 0x1
-_080570B0:
- pop {r1}
- bx r1
- thumb_func_end MetatileBehavior_IsWalkWest
-
- thumb_func_start MetatileBehavior_IsWalkEast
-MetatileBehavior_IsWalkEast: @ 80570B4
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _080570C2
- movs r0, 0
- b _080570C4
-_080570C2:
- movs r0, 0x1
-_080570C4:
- pop {r1}
- bx r1
- thumb_func_end MetatileBehavior_IsWalkEast
-
- thumb_func_start MetatileBehavior_IsNorthwardCurrent
-MetatileBehavior_IsNorthwardCurrent: @ 80570C8
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x52
- beq _080570D6
- movs r0, 0
- b _080570D8
-_080570D6:
- movs r0, 0x1
-_080570D8:
- pop {r1}
- bx r1
- thumb_func_end MetatileBehavior_IsNorthwardCurrent
-
- thumb_func_start MetatileBehavior_IsSouthwardCurrent
-MetatileBehavior_IsSouthwardCurrent: @ 80570DC
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x53
- beq _080570EA
- movs r0, 0
- b _080570EC
-_080570EA:
- movs r0, 0x1
-_080570EC:
- pop {r1}
- bx r1
- thumb_func_end MetatileBehavior_IsSouthwardCurrent
-
- thumb_func_start MetatileBehavior_IsWestwardCurrent
-MetatileBehavior_IsWestwardCurrent: @ 80570F0
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x51
- beq _080570FE
- movs r0, 0
- b _08057100
-_080570FE:
- movs r0, 0x1
-_08057100:
- pop {r1}
- bx r1
- thumb_func_end MetatileBehavior_IsWestwardCurrent
-
- thumb_func_start MetatileBehavior_IsEastwardCurrent
-MetatileBehavior_IsEastwardCurrent: @ 8057104
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x50
- beq _08057112
- movs r0, 0
- b _08057114
-_08057112:
- movs r0, 0x1
-_08057114:
- pop {r1}
- bx r1
- thumb_func_end MetatileBehavior_IsEastwardCurrent
-
- thumb_func_start MetatileBehavior_IsSlideNorth
-MetatileBehavior_IsSlideNorth: @ 8057118
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x46
- beq _08057126
- movs r0, 0
- b _08057128
-_08057126:
- movs r0, 0x1
-_08057128:
- pop {r1}
- bx r1
- thumb_func_end MetatileBehavior_IsSlideNorth
-
- thumb_func_start MetatileBehavior_IsSlideSouth
-MetatileBehavior_IsSlideSouth: @ 805712C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x47
- beq _0805713A
- movs r0, 0
- b _0805713C
-_0805713A:
- movs r0, 0x1
-_0805713C:
- pop {r1}
- bx r1
- thumb_func_end MetatileBehavior_IsSlideSouth
-
- thumb_func_start MetatileBehavior_IsSlideWest
-MetatileBehavior_IsSlideWest: @ 8057140
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x45
- beq _0805714E
- movs r0, 0
- b _08057150
-_0805714E:
- movs r0, 0x1
-_08057150:
- pop {r1}
- bx r1
- thumb_func_end MetatileBehavior_IsSlideWest
-
- thumb_func_start MetatileBehavior_IsSlideEast
-MetatileBehavior_IsSlideEast: @ 8057154
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x44
- beq _08057162
- movs r0, 0
- b _08057164
-_08057162:
- movs r0, 0x1
-_08057164:
- pop {r1}
- bx r1
- thumb_func_end MetatileBehavior_IsSlideEast
-
- thumb_func_start MetatileBehavior_IsCounter
-MetatileBehavior_IsCounter: @ 8057168
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x80
- beq _08057176
- movs r0, 0
- b _08057178
-_08057176:
- movs r0, 0x1
-_08057178:
- pop {r1}
- bx r1
- thumb_func_end MetatileBehavior_IsCounter
-
- thumb_func_start MetatileBehavior_IsPlayerFacingTVScreen
-MetatileBehavior_IsPlayerFacingTVScreen: @ 805717C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- cmp r1, 0x2
- bne _0805718E
- cmp r0, 0x86
- beq _08057192
-_0805718E:
- movs r0, 0
- b _08057194
-_08057192:
- movs r0, 0x1
-_08057194:
- pop {r1}
- bx r1
- thumb_func_end MetatileBehavior_IsPlayerFacingTVScreen
-
- thumb_func_start MetatileBehavior_IsPC
-MetatileBehavior_IsPC: @ 8057198
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x83
- beq _080571A6
- movs r0, 0
- b _080571A8
-_080571A6:
- movs r0, 0x1
-_080571A8:
- pop {r1}
- bx r1
- thumb_func_end MetatileBehavior_IsPC
-
- thumb_func_start is_tile_x84
-is_tile_x84: @ 80571AC
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x84
- beq _080571BA
- movs r0, 0
- b _080571BC
-_080571BA:
- movs r0, 0x1
-_080571BC:
- pop {r1}
- bx r1
- thumb_func_end is_tile_x84
-
- thumb_func_start sub_80571C0
-sub_80571C0: @ 80571C0
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x91
- beq _080571E2
- cmp r0, 0x93
- beq _080571E2
- cmp r0, 0x95
- beq _080571E2
- cmp r0, 0x97
- beq _080571E2
- cmp r0, 0x99
- beq _080571E2
- cmp r0, 0x9B
- beq _080571E2
- cmp r0, 0x9D
- bne _080571E6
-_080571E2:
- movs r0, 0x1
- b _080571E8
-_080571E6:
- movs r0, 0
-_080571E8:
- pop {r1}
- bx r1
- thumb_func_end sub_80571C0
-
- thumb_func_start sub_80571EC
-sub_80571EC: @ 80571EC
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x90
- beq _08057202
- cmp r0, 0x92
- beq _08057202
- cmp r0, 0x94
- beq _08057202
- cmp r0, 0x9A
- bne _08057206
-_08057202:
- movs r0, 0x1
- b _08057208
-_08057206:
- movs r0, 0
-_08057208:
- pop {r1}
- bx r1
- thumb_func_end sub_80571EC
-
- thumb_func_start sub_805720C
-sub_805720C: @ 805720C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x96
- beq _0805721A
- cmp r0, 0x9C
- bne _0805721E
-_0805721A:
- movs r0, 0x1
- b _08057220
-_0805721E:
- movs r0, 0
-_08057220:
- pop {r1}
- bx r1
- thumb_func_end sub_805720C
-
- thumb_func_start is_tile_x98
-is_tile_x98: @ 8057224
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x98
- beq _08057232
- movs r0, 0
- b _08057234
-_08057232:
- movs r0, 0x1
-_08057234:
- pop {r1}
- bx r1
- thumb_func_end is_tile_x98
-
- thumb_func_start sub_8057238
-sub_8057238: @ 8057238
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xB0
- beq _08057246
- movs r0, 0
- b _08057248
-_08057246:
- movs r0, 0x1
-_08057248:
- pop {r1}
- bx r1
- thumb_func_end sub_8057238
-
- thumb_func_start sub_805724C
-sub_805724C: @ 805724C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xB1
- beq _0805725A
- movs r0, 0
- b _0805725C
-_0805725A:
- movs r0, 0x1
-_0805725C:
- pop {r1}
- bx r1
- thumb_func_end sub_805724C
-
- thumb_func_start unref_sub_8057260
-unref_sub_8057260: @ 8057260
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xB2
- beq _0805726E
- movs r0, 0
- b _08057270
-_0805726E:
- movs r0, 0x1
-_08057270:
- pop {r1}
- bx r1
- thumb_func_end unref_sub_8057260
-
- thumb_func_start sub_8057274
-sub_8057274: @ 8057274
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xB3
- beq _08057282
- movs r0, 0
- b _08057284
-_08057282:
- movs r0, 0x1
-_08057284:
- pop {r1}
- bx r1
- thumb_func_end sub_8057274
-
- thumb_func_start sub_8057288
-sub_8057288: @ 8057288
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xB9
- beq _08057296
- movs r0, 0
- b _08057298
-_08057296:
- movs r0, 0x1
-_08057298:
- pop {r1}
- bx r1
- thumb_func_end sub_8057288
-
- thumb_func_start sub_805729C
-sub_805729C: @ 805729C
- push {lr}
- lsls r0, 24
- cmp r0, 0
- beq _080572A8
- movs r0, 0
- b _080572AA
-_080572A8:
- movs r0, 0x1
-_080572AA:
- pop {r1}
- bx r1
- thumb_func_end sub_805729C
-
- thumb_func_start sub_80572B0
-sub_80572B0: @ 80572B0
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xB7
- beq _080572BE
- movs r0, 0
- b _080572C0
-_080572BE:
- movs r0, 0x1
-_080572C0:
- pop {r1}
- bx r1
- thumb_func_end sub_80572B0
-
- thumb_func_start unref_sub_80572C4
-unref_sub_80572C4: @ 80572C4
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xB2
- beq _080572D2
- movs r0, 0
- b _080572D4
-_080572D2:
- movs r0, 0x1
-_080572D4:
- pop {r1}
- bx r1
- thumb_func_end unref_sub_80572C4
-
- thumb_func_start sub_80572D8
-sub_80572D8: @ 80572D8
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xB5
- beq _080572E6
- movs r0, 0
- b _080572E8
-_080572E6:
- movs r0, 0x1
-_080572E8:
- pop {r1}
- bx r1
- thumb_func_end sub_80572D8
-
- thumb_func_start sub_80572EC
-sub_80572EC: @ 80572EC
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xC3
- beq _080572FA
- movs r0, 0
- b _080572FC
-_080572FA:
- movs r0, 0x1
-_080572FC:
- pop {r1}
- bx r1
- thumb_func_end sub_80572EC
-
- thumb_func_start sub_8057300
-sub_8057300: @ 8057300
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xC2
- beq _0805730E
- movs r0, 0
- b _08057310
-_0805730E:
- movs r0, 0x1
-_08057310:
- pop {r1}
- bx r1
- thumb_func_end sub_8057300
-
- thumb_func_start sub_8057314
-sub_8057314: @ 8057314
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xB8
- beq _08057322
- movs r0, 0
- b _08057324
-_08057322:
- movs r0, 0x1
-_08057324:
- pop {r1}
- bx r1
- thumb_func_end sub_8057314
-
- thumb_func_start sub_8057328
-sub_8057328: @ 8057328
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xBE
- beq _08057336
- movs r0, 0
- b _08057338
-_08057336:
- movs r0, 0x1
-_08057338:
- pop {r1}
- bx r1
- thumb_func_end sub_8057328
-
- thumb_func_start sub_805733C
-sub_805733C: @ 805733C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xBD
- beq _0805734A
- movs r0, 0
- b _0805734C
-_0805734A:
- movs r0, 0x1
-_0805734C:
- pop {r1}
- bx r1
- thumb_func_end sub_805733C
-
- thumb_func_start sub_8057350
-sub_8057350: @ 8057350
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xBA
- beq _0805735E
- movs r0, 0
- b _08057360
-_0805735E:
- movs r0, 0x1
-_08057360:
- pop {r1}
- bx r1
- thumb_func_end sub_8057350
-
- thumb_func_start sub_8057364
-sub_8057364: @ 8057364
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xBF
- beq _08057372
- movs r0, 0
- b _08057374
-_08057372:
- movs r0, 0x1
-_08057374:
- pop {r1}
- bx r1
- thumb_func_end sub_8057364
-
- thumb_func_start sub_8057378
-sub_8057378: @ 8057378
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xC4
- beq _08057386
- movs r0, 0
- b _08057388
-_08057386:
- movs r0, 0x1
-_08057388:
- pop {r1}
- bx r1
- thumb_func_end sub_8057378
-
- thumb_func_start sub_805738C
-sub_805738C: @ 805738C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xC5
- beq _0805739A
- movs r0, 0
- b _0805739C
-_0805739A:
- movs r0, 0x1
-_0805739C:
- pop {r1}
- bx r1
- thumb_func_end sub_805738C
-
- thumb_func_start MetatileBehavior_HasRipples
-MetatileBehavior_HasRipples: @ 80573A0
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x10
- beq _080573B2
- cmp r0, 0x16
- beq _080573B2
- cmp r0, 0x14
- bne _080573B6
-_080573B2:
- movs r0, 0x1
- b _080573B8
-_080573B6:
- movs r0, 0
-_080573B8:
- pop {r1}
- bx r1
- thumb_func_end MetatileBehavior_HasRipples
-
- thumb_func_start MetatileBehavior_IsPuddle
-MetatileBehavior_IsPuddle: @ 80573BC
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x16
- beq _080573CA
- movs r0, 0
- b _080573CC
-_080573CA:
- movs r0, 0x1
-_080573CC:
- pop {r1}
- bx r1
- thumb_func_end MetatileBehavior_IsPuddle
-
- thumb_func_start MetatileBehavior_IsTallGrass
-MetatileBehavior_IsTallGrass: @ 80573D0
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- beq _080573DE
- movs r0, 0
- b _080573E0
-_080573DE:
- movs r0, 0x1
-_080573E0:
- pop {r1}
- bx r1
- thumb_func_end MetatileBehavior_IsTallGrass
-
- thumb_func_start MetatileBehavior_IsLongGrass
-MetatileBehavior_IsLongGrass: @ 80573E4
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- beq _080573F2
- movs r0, 0
- b _080573F4
-_080573F2:
- movs r0, 0x1
-_080573F4:
- pop {r1}
- bx r1
- thumb_func_end MetatileBehavior_IsLongGrass
-
- thumb_func_start MetatileBehavior_IsBerryTreeSoil
-MetatileBehavior_IsBerryTreeSoil: @ 80573F8
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xA0
- beq _08057406
- movs r0, 0
- b _08057408
-_08057406:
- movs r0, 0x1
-_08057408:
- pop {r1}
- bx r1
- thumb_func_end MetatileBehavior_IsBerryTreeSoil
-
- thumb_func_start MetatileBehavior_IsAsh
-MetatileBehavior_IsAsh: @ 805740C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x24
- beq _0805741A
- movs r0, 0
- b _0805741C
-_0805741A:
- movs r0, 0x1
-_0805741C:
- pop {r1}
- bx r1
- thumb_func_end MetatileBehavior_IsAsh
-
- thumb_func_start MetatileBehavior_IsUnusedFootprintMetatile
-MetatileBehavior_IsUnusedFootprintMetatile: @ 8057420
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x25
- beq _0805742E
- movs r0, 0
- b _08057430
-_0805742E:
- movs r0, 0x1
-_08057430:
- pop {r1}
- bx r1
- thumb_func_end MetatileBehavior_IsUnusedFootprintMetatile
-
- thumb_func_start MetatileBehavior_IsBridge
-MetatileBehavior_IsBridge: @ 8057434
- push {lr}
- lsls r0, 24
- movs r1, 0x90
- lsls r1, 24
- adds r0, r1
- lsrs r0, 24
- cmp r0, 0x3
- bls _08057448
- movs r0, 0
- b _0805744A
-_08057448:
- movs r0, 0x1
-_0805744A:
- pop {r1}
- bx r1
- thumb_func_end MetatileBehavior_IsBridge
-
- thumb_func_start sub_8057450
-sub_8057450: @ 8057450
- push {lr}
- lsls r0, 24
- movs r1, 0x90
- lsls r1, 24
- adds r0, r1
- lsrs r0, 24
- cmp r0, 0x3
- bls _08057462
- movs r0, 0
-_08057462:
- pop {r1}
- bx r1
- thumb_func_end sub_8057450
-
- thumb_func_start MetatileBehavior_IsLandWildEncounter
-MetatileBehavior_IsLandWildEncounter: @ 8057468
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl MetatileBehavior_IsSurfableWaterOrUnderwater
- lsls r0, 24
- cmp r0, 0
- bne _0805748C
- adds r0, r4, 0
- bl sub_8056DA0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0805748C
- movs r0, 0x1
- b _0805748E
-_0805748C:
- movs r0, 0
-_0805748E:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end MetatileBehavior_IsLandWildEncounter
-
- thumb_func_start MetatileBehavior_IsWaterWildEncounter
-MetatileBehavior_IsWaterWildEncounter: @ 8057494
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl MetatileBehavior_IsSurfableWaterOrUnderwater
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080574BA
- adds r0, r4, 0
- bl sub_8056DA0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080574BA
- movs r0, 0x1
- b _080574BC
-_080574BA:
- movs r0, 0
-_080574BC:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end MetatileBehavior_IsWaterWildEncounter
-
- thumb_func_start sub_80574C4
-sub_80574C4: @ 80574C4
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xB
- beq _080574D2
- movs r0, 0
- b _080574D4
-_080574D2:
- movs r0, 0x1
-_080574D4:
- pop {r1}
- bx r1
- thumb_func_end sub_80574C4
-
- thumb_func_start sub_80574D8
-sub_80574D8: @ 80574D8
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xC
- beq _080574E6
- movs r0, 0
- b _080574E8
-_080574E6:
- movs r0, 0x1
-_080574E8:
- pop {r1}
- bx r1
- thumb_func_end sub_80574D8
-
- thumb_func_start sub_80574EC
-sub_80574EC: @ 80574EC
- push {lr}
- lsls r0, 24
- lsrs r1, r0, 24
- movs r2, 0xEF
- lsls r2, 24
- adds r0, r2
- lsrs r0, 24
- cmp r0, 0x1
- bls _08057502
- cmp r1, 0x14
- bne _08057506
-_08057502:
- movs r0, 0x1
- b _08057508
-_08057506:
- movs r0, 0
-_08057508:
- pop {r1}
- bx r1
- thumb_func_end sub_80574EC
-
- thumb_func_start sub_805750C
-sub_805750C: @ 805750C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x19
- beq _0805751A
- cmp r0, 0x2A
- bne _0805751E
-_0805751A:
- movs r0, 0x1
- b _08057520
-_0805751E:
- movs r0, 0
-_08057520:
- pop {r1}
- bx r1
- thumb_func_end sub_805750C
-
- thumb_func_start MetatileBehavior_IsShallowFlowingWater
-MetatileBehavior_IsShallowFlowingWater: @ 8057524
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x17
- beq _08057536
- cmp r0, 0x1B
- beq _08057536
- cmp r0, 0x1C
- bne _0805753A
-_08057536:
- movs r0, 0x1
- b _0805753C
-_0805753A:
- movs r0, 0
-_0805753C:
- pop {r1}
- bx r1
- thumb_func_end MetatileBehavior_IsShallowFlowingWater
-
- thumb_func_start sub_8057540
-sub_8057540: @ 8057540
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x26
- beq _0805754E
- movs r0, 0
- b _08057550
-_0805754E:
- movs r0, 0x1
-_08057550:
- pop {r1}
- bx r1
- thumb_func_end sub_8057540
-
- thumb_func_start sub_8057554
-sub_8057554: @ 8057554
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x27
- beq _08057562
- movs r0, 0
- b _08057564
-_08057562:
- movs r0, 0x1
-_08057564:
- pop {r1}
- bx r1
- thumb_func_end sub_8057554
-
- thumb_func_start sub_8057568
-sub_8057568: @ 8057568
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x15
- beq _0805757A
- cmp r0, 0x11
- beq _0805757A
- cmp r0, 0x12
- bne _0805757E
-_0805757A:
- movs r0, 0x1
- b _08057580
-_0805757E:
- movs r0, 0
-_08057580:
- pop {r1}
- bx r1
- thumb_func_end sub_8057568
-
- thumb_func_start unref_sub_8057584
-unref_sub_8057584: @ 8057584
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x18
- beq _08057592
- cmp r0, 0x1A
- bne _08057596
-_08057592:
- movs r0, 0x1
- b _08057598
-_08057596:
- movs r0, 0
-_08057598:
- pop {r1}
- bx r1
- thumb_func_end unref_sub_8057584
-
- thumb_func_start sub_805759C
-sub_805759C: @ 805759C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl MetatileBehavior_IsSurfableWaterOrUnderwater
- lsls r0, 24
- cmp r0, 0
- beq _080575BE
- adds r0, r4, 0
- bl MetatileBehavior_IsWaterfall
- lsls r0, 24
- cmp r0, 0
- bne _080575BE
- movs r0, 0x1
- b _080575C0
-_080575BE:
- movs r0, 0
-_080575C0:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_805759C
-
- thumb_func_start MetatileBehavior_IsEastBlocked
-MetatileBehavior_IsEastBlocked: @ 80575C8
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x30
- beq _080575E2
- cmp r0, 0x34
- beq _080575E2
- cmp r0, 0x36
- beq _080575E2
- cmp r0, 0xC1
- beq _080575E2
- cmp r0, 0xBE
- bne _080575E6
-_080575E2:
- movs r0, 0x1
- b _080575E8
-_080575E6:
- movs r0, 0
-_080575E8:
- pop {r1}
- bx r1
- thumb_func_end MetatileBehavior_IsEastBlocked
-
- thumb_func_start MetatileBehavior_IsWestBlocked
-MetatileBehavior_IsWestBlocked: @ 80575EC
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x31
- beq _08057606
- cmp r0, 0x35
- beq _08057606
- cmp r0, 0x37
- beq _08057606
- cmp r0, 0xC1
- beq _08057606
- cmp r0, 0xBE
- bne _0805760A
-_08057606:
- movs r0, 0x1
- b _0805760C
-_0805760A:
- movs r0, 0
-_0805760C:
- pop {r1}
- bx r1
- thumb_func_end MetatileBehavior_IsWestBlocked
-
- thumb_func_start MetatileBehavior_IsNorthBlocked
-MetatileBehavior_IsNorthBlocked: @ 8057610
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x32
- beq _08057626
- cmp r0, 0x34
- beq _08057626
- cmp r0, 0x35
- beq _08057626
- cmp r0, 0xC0
- bne _0805762A
-_08057626:
- movs r0, 0x1
- b _0805762C
-_0805762A:
- movs r0, 0
-_0805762C:
- pop {r1}
- bx r1
- thumb_func_end MetatileBehavior_IsNorthBlocked
-
- thumb_func_start MetatileBehavior_IsSouthBlocked
-MetatileBehavior_IsSouthBlocked: @ 8057630
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x33
- beq _08057646
- cmp r0, 0x36
- beq _08057646
- cmp r0, 0x37
- beq _08057646
- cmp r0, 0xC0
- bne _0805764A
-_08057646:
- movs r0, 0x1
- b _0805764C
-_0805764A:
- movs r0, 0
-_0805764C:
- pop {r1}
- bx r1
- thumb_func_end MetatileBehavior_IsSouthBlocked
-
- thumb_func_start MetatileBehavior_IsShortGrass
-MetatileBehavior_IsShortGrass: @ 8057650
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x7
- beq _0805765E
- movs r0, 0
- b _08057660
-_0805765E:
- movs r0, 0x1
-_08057660:
- pop {r1}
- bx r1
- thumb_func_end MetatileBehavior_IsShortGrass
-
- thumb_func_start MetatileBehavior_IsHotSprings
-MetatileBehavior_IsHotSprings: @ 8057664
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x28
- beq _08057672
- movs r0, 0
- b _08057674
-_08057672:
- movs r0, 0x1
-_08057674:
- pop {r1}
- bx r1
- thumb_func_end MetatileBehavior_IsHotSprings
-
- thumb_func_start MetatileBehavior_IsWaterfall
-MetatileBehavior_IsWaterfall: @ 8057678
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x13
- beq _08057686
- movs r0, 0
- b _08057688
-_08057686:
- movs r0, 0x1
-_08057688:
- pop {r1}
- bx r1
- thumb_func_end MetatileBehavior_IsWaterfall
-
- thumb_func_start MetatileBehavior_IsFortreeBridge
-MetatileBehavior_IsFortreeBridge: @ 805768C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x78
- beq _0805769A
- movs r0, 0
- b _0805769C
-_0805769A:
- movs r0, 0x1
-_0805769C:
- pop {r1}
- bx r1
- thumb_func_end MetatileBehavior_IsFortreeBridge
-
- thumb_func_start sub_80576A0
-sub_80576A0: @ 80576A0
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x74
- beq _080576AE
- movs r0, 0
- b _080576B0
-_080576AE:
- movs r0, 0x1
-_080576B0:
- pop {r1}
- bx r1
- thumb_func_end sub_80576A0
-
- thumb_func_start sub_80576B4
-sub_80576B4: @ 80576B4
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x75
- beq _080576C2
- movs r0, 0
- b _080576C4
-_080576C2:
- movs r0, 0x1
-_080576C4:
- pop {r1}
- bx r1
- thumb_func_end sub_80576B4
-
- thumb_func_start sub_80576C8
-sub_80576C8: @ 80576C8
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x76
- beq _080576D6
- movs r0, 0
- b _080576D8
-_080576D6:
- movs r0, 0x1
-_080576D8:
- pop {r1}
- bx r1
- thumb_func_end sub_80576C8
-
- thumb_func_start sub_80576DC
-sub_80576DC: @ 80576DC
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x77
- beq _080576EA
- movs r0, 0
- b _080576EC
-_080576EA:
- movs r0, 0x1
-_080576EC:
- pop {r1}
- bx r1
- thumb_func_end sub_80576DC
-
- thumb_func_start MetatileBehavior_IsPacifidlogLog
-MetatileBehavior_IsPacifidlogLog: @ 80576F0
- push {lr}
- lsls r0, 24
- movs r1, 0x8C
- lsls r1, 24
- adds r0, r1
- lsrs r0, 24
- cmp r0, 0x3
- bls _08057704
- movs r0, 0
- b _08057706
-_08057704:
- movs r0, 0x1
-_08057706:
- pop {r1}
- bx r1
- thumb_func_end MetatileBehavior_IsPacifidlogLog
-
- thumb_func_start is_tile_x8C
-is_tile_x8C: @ 805770C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x8C
- beq _0805771A
- movs r0, 0
- b _0805771C
-_0805771A:
- movs r0, 0x1
-_0805771C:
- pop {r1}
- bx r1
- thumb_func_end is_tile_x8C
-
- thumb_func_start is_tile_x85
-is_tile_x85: @ 8057720
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x85
- beq _0805772E
- movs r0, 0
- b _08057730
-_0805772E:
- movs r0, 0x1
-_08057730:
- pop {r1}
- bx r1
- thumb_func_end is_tile_x85
-
- thumb_func_start is_tile_x8B
-is_tile_x8B: @ 8057734
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x8B
- beq _08057742
- movs r0, 0
- b _08057744
-_08057742:
- movs r0, 0x1
-_08057744:
- pop {r1}
- bx r1
- thumb_func_end is_tile_x8B
-
- thumb_func_start is_tile_x8A
-is_tile_x8A: @ 8057748
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x8A
- beq _08057756
- movs r0, 0
- b _08057758
-_08057756:
- movs r0, 0x1
-_08057758:
- pop {r1}
- bx r1
- thumb_func_end is_tile_x8A
-
- thumb_func_start is_tile_x87
-is_tile_x87: @ 805775C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x87
- beq _0805776A
- movs r0, 0
- b _0805776C
-_0805776A:
- movs r0, 0x1
-_0805776C:
- pop {r1}
- bx r1
- thumb_func_end is_tile_x87
-
- thumb_func_start MetatileBehavior_0xBB
-MetatileBehavior_0xBB: @ 8057770
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xBB
- beq _0805777E
- movs r0, 0
- b _08057780
-_0805777E:
- movs r0, 0x1
-_08057780:
- pop {r1}
- bx r1
- thumb_func_end MetatileBehavior_0xBB
-
- thumb_func_start MetatileBehavior_0xBC
-MetatileBehavior_0xBC: @ 8057784
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xBC
- beq _08057792
- movs r0, 0
- b _08057794
-_08057792:
- movs r0, 0x1
-_08057794:
- pop {r1}
- bx r1
- thumb_func_end MetatileBehavior_0xBC
-
- thumb_func_start sub_8057798
-sub_8057798: @ 8057798
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x29
- beq _080577A6
- movs r0, 0
- b _080577A8
-_080577A6:
- movs r0, 0x1
-_080577A8:
- pop {r1}
- bx r1
- thumb_func_end sub_8057798
-
- thumb_func_start is_role_x68
-is_role_x68: @ 80577AC
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x68
- beq _080577BA
- movs r0, 0
- b _080577BC
-_080577BA:
- movs r0, 0x1
-_080577BC:
- pop {r1}
- bx r1
- thumb_func_end is_role_x68
-
- thumb_func_start MetatileBehavior_IsAquaHideoutWarp
-MetatileBehavior_IsAquaHideoutWarp: @ 80577C0
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x67
- beq _080577CE
- movs r0, 0
- b _080577D0
-_080577CE:
- movs r0, 0x1
-_080577D0:
- pop {r1}
- bx r1
- thumb_func_end MetatileBehavior_IsAquaHideoutWarp
-
- thumb_func_start MetatileBehavior_IsSurfableFishableWater
-MetatileBehavior_IsSurfableFishableWater: @ 80577D4
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x10
- beq _080577F8
- cmp r0, 0x15
- beq _080577F8
- cmp r0, 0x11
- beq _080577F8
- cmp r0, 0x12
- beq _080577F8
- cmp r0, 0x14
- beq _080577F8
- subs r0, 0x50
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bhi _080577FC
-_080577F8:
- movs r0, 0x1
- b _080577FE
-_080577FC:
- movs r0, 0
-_080577FE:
- pop {r1}
- bx r1
- thumb_func_end MetatileBehavior_IsSurfableFishableWater
-
- thumb_func_start sub_8057804
-sub_8057804: @ 8057804
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xF
- beq _08057812
- movs r0, 0
- b _08057814
-_08057812:
- movs r0, 0x1
-_08057814:
- pop {r1}
- bx r1
- thumb_func_end sub_8057804
-
- thumb_func_start sub_8057818
-sub_8057818: @ 8057818
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x66
- beq _08057826
- movs r0, 0
- b _08057828
-_08057826:
- movs r0, 0x1
-_08057828:
- pop {r1}
- bx r1
- thumb_func_end sub_8057818
-
- thumb_func_start sub_805782C
-sub_805782C: @ 805782C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xD2
- beq _0805783A
- movs r0, 0
- b _0805783C
-_0805783A:
- movs r0, 0x1
-_0805783C:
- pop {r1}
- bx r1
- thumb_func_end sub_805782C
-
- thumb_func_start MetatileBehavior_IsMuddySlope
-MetatileBehavior_IsMuddySlope: @ 8057840
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xD0
- beq _0805784E
- movs r0, 0
- b _08057850
-_0805784E:
- movs r0, 0x1
-_08057850:
- pop {r1}
- bx r1
- thumb_func_end MetatileBehavior_IsMuddySlope
-
- thumb_func_start MetatileBehavior_IsBumpySlope
-MetatileBehavior_IsBumpySlope: @ 8057854
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xD1
- beq _08057862
- movs r0, 0
- b _08057864
-_08057862:
- movs r0, 0x1
-_08057864:
- pop {r1}
- bx r1
- thumb_func_end MetatileBehavior_IsBumpySlope
-
- thumb_func_start MetatileBehavior_IsIsolatedVerticalRail
-MetatileBehavior_IsIsolatedVerticalRail: @ 8057868
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xD3
- beq _08057876
- movs r0, 0
- b _08057878
-_08057876:
- movs r0, 0x1
-_08057878:
- pop {r1}
- bx r1
- thumb_func_end MetatileBehavior_IsIsolatedVerticalRail
-
- thumb_func_start MetatileBehavior_IsIsolatedHorizontalRail
-MetatileBehavior_IsIsolatedHorizontalRail: @ 805787C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xD4
- beq _0805788A
- movs r0, 0
- b _0805788C
-_0805788A:
- movs r0, 0x1
-_0805788C:
- pop {r1}
- bx r1
- thumb_func_end MetatileBehavior_IsIsolatedHorizontalRail
-
- thumb_func_start MetatileBehavior_IsVerticalRail
-MetatileBehavior_IsVerticalRail: @ 8057890
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xD5
- beq _0805789E
- movs r0, 0
- b _080578A0
-_0805789E:
- movs r0, 0x1
-_080578A0:
- pop {r1}
- bx r1
- thumb_func_end MetatileBehavior_IsVerticalRail
-
- thumb_func_start MetatileBehavior_IsHorizontalRail
-MetatileBehavior_IsHorizontalRail: @ 80578A4
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xD6
- beq _080578B2
- movs r0, 0
- b _080578B4
-_080578B2:
- movs r0, 0x1
-_080578B4:
- pop {r1}
- bx r1
- thumb_func_end MetatileBehavior_IsHorizontalRail
-
- thumb_func_start MetatileBehavior_IsSeaweed
-MetatileBehavior_IsSeaweed: @ 80578B8
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x22
- beq _080578C6
- cmp r0, 0x2A
- bne _080578CA
-_080578C6:
- movs r0, 0x1
- b _080578CC
-_080578CA:
- movs r0, 0
-_080578CC:
- pop {r1}
- bx r1
- thumb_func_end MetatileBehavior_IsSeaweed
-
- thumb_func_start MetatileBehavior_IsRunningDisallowed
-MetatileBehavior_IsRunningDisallowed: @ 80578D0
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xA
- beq _080578EC
- cmp r0, 0x3
- beq _080578EC
- cmp r0, 0x28
- beq _080578EC
- bl MetatileBehavior_IsPacifidlogLog
- lsls r0, 24
- cmp r0, 0
- beq _080578F0
-_080578EC:
- movs r0, 0x1
- b _080578F2
-_080578F0:
- movs r0, 0
-_080578F2:
- pop {r1}
- bx r1
- thumb_func_end MetatileBehavior_IsRunningDisallowed
-
- thumb_func_start sub_80578F8
-sub_80578F8: @ 80578F8
- push {lr}
- lsls r0, 24
- lsrs r1, r0, 24
- movs r2, 0xFE
- lsls r2, 24
- adds r0, r2
- lsrs r0, 24
- cmp r0, 0x1
- bls _08057912
- cmp r1, 0x24
- beq _08057912
- cmp r1, 0x9
- bne _08057916
-_08057912:
- movs r0, 0x1
- b _08057918
-_08057916:
- movs r0, 0
-_08057918:
- pop {r1}
- bx r1
- thumb_func_end sub_80578F8
-
- thumb_func_start sub_805791C
-sub_805791C: @ 805791C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x8E
- beq _0805792A
- movs r0, 0
- b _0805792C
-_0805792A:
- movs r0, 0x1
-_0805792C:
- pop {r1}
- bx r1
- thumb_func_end sub_805791C
-
- thumb_func_start sub_8057930
-sub_8057930: @ 8057930
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xE0
- beq _0805793E
- movs r0, 0
- b _08057940
-_0805793E:
- movs r0, 0x1
-_08057940:
- pop {r1}
- bx r1
- thumb_func_end sub_8057930
-
- thumb_func_start sub_8057944
-sub_8057944: @ 8057944
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xE1
- beq _08057952
- movs r0, 0
- b _08057954
-_08057952:
- movs r0, 0x1
-_08057954:
- pop {r1}
- bx r1
- thumb_func_end sub_8057944
-
- thumb_func_start sub_8057958
-sub_8057958: @ 8057958
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xE2
- beq _08057966
- movs r0, 0
- b _08057968
-_08057966:
- movs r0, 0x1
-_08057968:
- pop {r1}
- bx r1
- thumb_func_end sub_8057958
-
- thumb_func_start sub_805796C
-sub_805796C: @ 805796C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xE3
- beq _0805797A
- movs r0, 0
- b _0805797C
-_0805797A:
- movs r0, 0x1
-_0805797C:
- pop {r1}
- bx r1
- thumb_func_end sub_805796C
-
- thumb_func_start sub_8057980
-sub_8057980: @ 8057980
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xE4
- beq _0805798E
- movs r0, 0
- b _08057990
-_0805798E:
- movs r0, 0x1
-_08057990:
- pop {r1}
- bx r1
- thumb_func_end sub_8057980
-
- thumb_func_start sub_8057994
-sub_8057994: @ 8057994
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xE5
- beq _080579A2
- movs r0, 0
- b _080579A4
-_080579A2:
- movs r0, 0x1
-_080579A4:
- pop {r1}
- bx r1
- thumb_func_end sub_8057994
-
- thumb_func_start sub_80579A8
-sub_80579A8: @ 80579A8
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xE6
- beq _080579B6
- movs r0, 0
- b _080579B8
-_080579B6:
- movs r0, 0x1
-_080579B8:
- pop {r1}
- bx r1
- thumb_func_end sub_80579A8
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/money.s b/asm/money.s
deleted file mode 100644
index 65d8b87a1..000000000
--- a/asm/money.s
+++ /dev/null
@@ -1,480 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start IsEnoughMoney
-IsEnoughMoney: @ 80B79A8
- push {lr}
- cmp r0, r1
- bcs _080B79B2
- movs r0, 0
- b _080B79B4
-_080B79B2:
- movs r0, 0x1
-_080B79B4:
- pop {r1}
- bx r1
- thumb_func_end IsEnoughMoney
-
- thumb_func_start sub_80B79B8
-sub_80B79B8: @ 80B79B8
- push {lr}
- adds r2, r0, 0
- ldr r0, [r2]
- adds r1, r0, r1
- cmp r0, r1
- bls _080B79CC
- ldr r0, _080B79C8 @ =0x000f423f
- b _080B79D4
- .align 2, 0
-_080B79C8: .4byte 0x000f423f
-_080B79CC:
- str r1, [r2]
- ldr r0, _080B79DC @ =0x000f423f
- cmp r1, r0
- bls _080B79D6
-_080B79D4:
- str r0, [r2]
-_080B79D6:
- pop {r0}
- bx r0
- .align 2, 0
-_080B79DC: .4byte 0x000f423f
- thumb_func_end sub_80B79B8
-
- thumb_func_start sub_80B79E0
-sub_80B79E0: @ 80B79E0
- push {lr}
- adds r2, r0, 0
- ldr r0, [r2]
- cmp r0, r1
- bcs _080B79EE
- movs r0, 0
- b _080B79F0
-_080B79EE:
- subs r0, r1
-_080B79F0:
- str r0, [r2]
- pop {r0}
- bx r0
- thumb_func_end sub_80B79E0
-
- thumb_func_start sub_80B79F8
-sub_80B79F8: @ 80B79F8
- push {r4,lr}
- adds r3, r0, 0
- lsls r2, 24
- lsrs r4, r2, 24
- ldr r0, _080B7A0C @ =0x000f423f
- cmp r1, r0
- bls _080B7A10
- movs r2, 0x7
- b _080B7A46
- .align 2, 0
-_080B7A0C: .4byte 0x000f423f
-_080B7A10:
- ldr r0, _080B7A1C @ =0x0001869f
- cmp r1, r0
- bls _080B7A20
- movs r2, 0x6
- b _080B7A46
- .align 2, 0
-_080B7A1C: .4byte 0x0001869f
-_080B7A20:
- ldr r0, _080B7A2C @ =0x00002710
- cmp r1, r0
- bls _080B7A30
- movs r2, 0x5
- b _080B7A46
- .align 2, 0
-_080B7A2C: .4byte 0x00002710
-_080B7A30:
- ldr r0, _080B7A90 @ =0x000003e7
- movs r2, 0x4
- cmp r1, r0
- bhi _080B7A46
- movs r2, 0x3
- cmp r1, 0x63
- bhi _080B7A46
- movs r2, 0x1
- cmp r1, 0x9
- bls _080B7A46
- movs r2, 0x2
-_080B7A46:
- movs r0, 0xFC
- strb r0, [r3]
- movs r0, 0x14
- strb r0, [r3, 0x1]
- movs r0, 0x6
- strb r0, [r3, 0x2]
- adds r3, 0x3
- movs r0, 0
- subs r2, r4, r2
- cmp r0, r2
- bge _080B7A6C
- movs r4, 0
-_080B7A5E:
- strb r4, [r3]
- adds r3, 0x1
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- cmp r0, r2
- blt _080B7A5E
-_080B7A6C:
- movs r0, 0xB7
- strb r0, [r3]
- adds r3, 0x1
- adds r0, r3, 0
- bl ConvertIntToDecimalString
- adds r3, r0, 0
- movs r0, 0xFC
- strb r0, [r3]
- movs r0, 0x14
- strb r0, [r3, 0x1]
- movs r0, 0
- strb r0, [r3, 0x2]
- movs r0, 0xFF
- strb r0, [r3, 0x3]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B7A90: .4byte 0x000003e7
- thumb_func_end sub_80B79F8
-
- thumb_func_start sub_80B7A94
-sub_80B7A94: @ 80B7A94
- push {r4-r7,lr}
- sub sp, 0x10
- adds r4, r0, 0
- lsls r1, 24
- lsrs r5, r1, 24
- lsls r2, 24
- lsrs r6, r2, 24
- lsls r3, 24
- lsrs r7, r3, 24
- mov r0, sp
- adds r1, r4, 0
- adds r2, r5, 0
- bl sub_80B79F8
- mov r0, sp
- bl sub_8072CA4
- lsls r0, 24
- lsrs r2, r0, 24
- adds r0, r5, 0x1
- lsls r0, 3
- cmp r2, r0
- blt _080B7ACE
- mov r0, sp
- adds r1, r6, 0
- adds r2, r7, 0
- bl MenuPrint
- b _080B7AE4
-_080B7ACE:
- adds r1, r6, 0x1
- adds r1, r5
- lsls r1, 3
- subs r1, r2
- lsls r1, 24
- lsrs r1, 24
- lsls r2, r7, 3
- mov r0, sp
- movs r3, 0x1
- bl MenuPrint_PixelCoords
-_080B7AE4:
- add sp, 0x10
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80B7A94
-
- thumb_func_start sub_80B7AEC
-sub_80B7AEC: @ 80B7AEC
- push {r4-r6,lr}
- sub sp, 0x20
- adds r3, r0, 0
- adds r4, r1, 0
- adds r5, r2, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- mov r6, sp
- movs r0, 0xB7
- strb r0, [r6]
- adds r6, 0x1
- adds r0, r6, 0
- adds r1, r3, 0
- bl ConvertIntToDecimalString
- adds r6, r0, 0
- mov r0, sp
- adds r1, r4, 0
- adds r2, r5, 0
- bl MenuPrint_RightAligned
- movs r0, 0xFC
- strb r0, [r6]
- movs r0, 0x14
- strb r0, [r6, 0x1]
- movs r0, 0
- strb r0, [r6, 0x2]
- movs r0, 0xFF
- strb r0, [r6, 0x3]
- add sp, 0x20
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80B7AEC
-
- thumb_func_start sub_80B7B34
-sub_80B7B34: @ 80B7B34
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- mov r8, r0
- adds r5, r1, 0
- mov r9, r2
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r5, 24
- lsrs r5, 24
- mov r1, r9
- lsls r1, 8
- mov r9, r1
- ldr r4, _080B7BD8 @ =gDecoration10000_Gfx
- adds r0, r1, r4
- lsls r6, r5, 4
- subs r6, r5
- lsls r1, r6, 6
- mov r3, r8
- adds r3, 0x1
- lsls r3, 5
- ldr r2, _080B7BDC @ =0x06008000
- adds r3, r2
- adds r1, r3
- movs r2, 0x20
- str r3, [sp]
- bl CpuFastSet
- adds r4, 0x80
- add r9, r4
- adds r0, r5, 0x1
- lsls r4, r0, 4
- subs r4, r0
- lsls r1, r4, 6
- ldr r3, [sp]
- adds r1, r3
- mov r0, r9
- movs r2, 0x20
- bl CpuFastSet
- movs r3, 0
- lsls r5, 5
- mov r0, r8
- adds r7, r5, r0
- lsls r6, 1
- adds r6, 0x1
- add r6, r8
- ldr r1, _080B7BE0 @ =0xfffff000
- adds r5, r1, 0
- ldr r0, _080B7BE4 @ =0x0600f800
- mov r12, r0
- ldr r1, _080B7BE8 @ =0x0600f840
- mov r9, r1
- lsls r4, 1
- adds r4, 0x1
- add r4, r8
-_080B7BAA:
- adds r1, r7, r3
- lsls r1, 1
- mov r0, r12
- adds r2, r1, r0
- adds r0, r3, r6
- adds r0, r5
- strh r0, [r2]
- add r1, r9
- adds r0, r3, r4
- adds r0, r5
- strh r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x3
- bls _080B7BAA
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080B7BD8: .4byte gDecoration10000_Gfx
-_080B7BDC: .4byte 0x06008000
-_080B7BE0: .4byte 0xfffff000
-_080B7BE4: .4byte 0x0600f800
-_080B7BE8: .4byte 0x0600f840
- thumb_func_end sub_80B7B34
-
- thumb_func_start sub_80B7BEC
-sub_80B7BEC: @ 80B7BEC
- push {r4,lr}
- adds r4, r1, 0
- adds r3, r2, 0
- lsls r4, 24
- lsls r3, 24
- movs r1, 0xC0
- lsls r1, 19
- adds r4, r1
- lsrs r4, 24
- movs r1, 0x80
- lsls r1, 17
- adds r3, r1
- lsrs r3, 24
- movs r1, 0x6
- adds r2, r4, 0
- bl sub_80B7A94
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80B7BEC
-
- thumb_func_start sub_80B7C14
-sub_80B7C14: @ 80B7C14
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- mov r8, r0
- adds r4, r1, 0
- adds r3, r2, 0
- lsls r4, 24
- lsls r3, 24
- lsrs r6, r4, 24
- movs r0, 0xD0
- lsls r0, 20
- adds r4, r0
- lsrs r4, 24
- lsrs r5, r3, 24
- movs r1, 0xC0
- lsls r1, 18
- adds r3, r1
- lsrs r3, 24
- adds r0, r6, 0
- adds r1, r5, 0
- adds r2, r4, 0
- bl MenuDrawTextWindow
- mov r0, r8
- adds r1, r6, 0
- adds r2, r5, 0
- bl sub_80B7BEC
- ldr r0, _080B7C88 @ =gUnknown_083CF584
- bl LoadCompressedObjectPic
- ldr r0, _080B7C8C @ =gUnknown_083CF58C
- bl LoadCompressedObjectPalette
- ldr r0, _080B7C90 @ =gSpriteTemplate_83CF56C
- lsls r6, 19
- movs r1, 0x98
- lsls r1, 13
- adds r6, r1
- asrs r6, 16
- lsls r5, 19
- movs r1, 0xB0
- lsls r1, 12
- adds r5, r1
- asrs r5, 16
- adds r1, r6, 0
- adds r2, r5, 0
- movs r3, 0
- bl CreateSprite
- ldr r1, _080B7C94 @ =gUnknown_02038734
- strb r0, [r1]
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080B7C88: .4byte gUnknown_083CF584
-_080B7C8C: .4byte gUnknown_083CF58C
-_080B7C90: .4byte gSpriteTemplate_83CF56C
-_080B7C94: .4byte gUnknown_02038734
- thumb_func_end sub_80B7C14
-
- thumb_func_start RemoveMoneyLabelObject
-RemoveMoneyLabelObject: @ 80B7C98
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- ldr r0, _080B7CDC @ =gUnknown_02038734
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080B7CE0 @ =gSprites
- adds r0, r1
- bl DestroySpriteAndFreeResources
- ldr r0, _080B7CE4 @ =0x00002722
- bl FreeSpritePaletteByTag
- adds r2, r4, 0
- adds r2, 0xD
- lsls r2, 24
- lsrs r2, 24
- adds r3, r5, 0x3
- lsls r3, 24
- lsrs r3, 24
- adds r0, r4, 0
- adds r1, r5, 0
- bl MenuZeroFillWindowRect
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080B7CDC: .4byte gUnknown_02038734
-_080B7CE0: .4byte gSprites
-_080B7CE4: .4byte 0x00002722
- thumb_func_end RemoveMoneyLabelObject
-
- thumb_func_start sub_80B7CE8
-sub_80B7CE8: @ 80B7CE8
- push {lr}
- ldr r0, _080B7D04 @ =gSaveBlock1
- movs r1, 0x92
- lsls r1, 3
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _080B7D08 @ =gSpecialVar_0x8005
- ldrh r1, [r1]
- bl IsEnoughMoney
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_080B7D04: .4byte gSaveBlock1
-_080B7D08: .4byte gSpecialVar_0x8005
- thumb_func_end sub_80B7CE8
-
- thumb_func_start sub_80B7D0C
-sub_80B7D0C: @ 80B7D0C
- push {lr}
- ldr r0, _080B7D1C @ =gSaveBlock1 + 0x490
- ldr r1, _080B7D20 @ =gSpecialVar_0x8005
- ldrh r1, [r1]
- bl sub_80B79E0
- pop {r0}
- bx r0
- .align 2, 0
-_080B7D1C: .4byte gSaveBlock1 + 0x490
-_080B7D20: .4byte gSpecialVar_0x8005
- thumb_func_end sub_80B7D0C
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/mystery_event_menu.s b/asm/mystery_event_menu.s
deleted file mode 100644
index 6331199de..000000000
--- a/asm/mystery_event_menu.s
+++ /dev/null
@@ -1,581 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_8146900
-sub_8146900: @ 8146900
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- pop {r0}
- bx r0
- thumb_func_end sub_8146900
-
- thumb_func_start sub_8146914
-sub_8146914: @ 8146914
- push {lr}
- movs r2, 0
- ldr r1, _0814692C @ =gLinkPlayers
- ldrh r0, [r1, 0x1A]
- ldrh r1, [r1, 0x36]
- cmp r0, r1
- bne _08146924
- movs r2, 0x1
-_08146924:
- adds r0, r2, 0
- pop {r1}
- bx r1
- .align 2, 0
-_0814692C: .4byte gLinkPlayers
- thumb_func_end sub_8146914
-
- thumb_func_start CB2_InitMysteryEventMenu
-CB2_InitMysteryEventMenu: @ 8146930
- push {r4,lr}
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- bl ResetTasks
- ldr r0, _0814699C @ =sub_8146900
- bl SetVBlankCallback
- ldr r4, _081469A0 @ =gWindowConfig_81E6CE4
- adds r0, r4, 0
- bl SetUpWindowConfig
- adds r0, r4, 0
- bl InitMenuWindow
- bl MenuZeroFillScreen
- movs r1, 0x80
- lsls r1, 19
- movs r2, 0xA0
- lsls r2, 1
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x50
- movs r0, 0
- strh r0, [r1]
- ldr r0, _081469A4 @ =Task_DestroySelf
- movs r1, 0
- bl CreateTask
- bl StopMapMusic
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- movs r0, 0
- movs r1, 0
- movs r2, 0x2
- bl FillPalette
- ldr r0, _081469A8 @ =sub_81469E4
- bl SetMainCallback2
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0814699C: .4byte sub_8146900
-_081469A0: .4byte gWindowConfig_81E6CE4
-_081469A4: .4byte Task_DestroySelf
-_081469A8: .4byte sub_81469E4
- thumb_func_end CB2_InitMysteryEventMenu
-
- thumb_func_start sub_81469AC
-sub_81469AC: @ 81469AC
- push {r4-r6,lr}
- adds r6, r0, 0
- adds r4, r1, 0
- movs r5, 0x1
- cmp r4, 0
- bne _081469C0
- ldr r1, _081469DC @ =gSystemText_EventLoadSuccess
- bl StringCopy
- movs r5, 0
-_081469C0:
- cmp r4, 0x2
- bne _081469C6
- movs r5, 0
-_081469C6:
- cmp r4, 0x1
- bne _081469D2
- ldr r1, _081469E0 @ =gSystemText_LoadingError
- adds r0, r6, 0
- bl StringCopy
-_081469D2:
- adds r0, r5, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_081469DC: .4byte gSystemText_EventLoadSuccess
-_081469E0: .4byte gSystemText_LoadingError
- thumb_func_end sub_81469AC
-
- thumb_func_start sub_81469E4
-sub_81469E4: @ 81469E4
- push {r4-r6,lr}
- sub sp, 0x8
- ldr r1, _08146A04 @ =gMain
- ldr r2, _08146A08 @ =0x0000043c
- adds r0, r1, r2
- ldrb r0, [r0]
- adds r4, r1, 0
- cmp r0, 0x10
- bls _081469F8
- b _08146DA4
-_081469F8:
- lsls r0, 2
- ldr r1, _08146A0C @ =_08146A10
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08146A04: .4byte gMain
-_08146A08: .4byte 0x0000043c
-_08146A0C: .4byte _08146A10
- .align 2, 0
-_08146A10:
- .4byte _08146A54
- .4byte _08146A6E
- .4byte _08146A9C
- .4byte _08146AD4
- .4byte _08146B18
- .4byte _08146B26
- .4byte _08146B90
- .4byte _08146C64
- .4byte _08146C72
- .4byte _08146C94
- .4byte _08146CA0
- .4byte _08146CB4
- .4byte _08146CFC
- .4byte _08146D18
- .4byte _08146D50
- .4byte _08146D6C
- .4byte _08146D94
-_08146A54:
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuDrawTextWindow
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- b _08146D78
-_08146A6E:
- ldr r0, _08146A8C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08146A7C
- b _08146DA4
-_08146A7C:
- ldr r0, _08146A90 @ =gSystemText_LinkStandby
- bl sub_8072044
- ldr r1, _08146A94 @ =gMain
- ldr r2, _08146A98 @ =0x0000043c
- adds r1, r2
- b _08146D82
- .align 2, 0
-_08146A8C: .4byte gPaletteFade
-_08146A90: .4byte gSystemText_LinkStandby
-_08146A94: .4byte gMain
-_08146A98: .4byte 0x0000043c
-_08146A9C:
- bl MenuUpdateWindowText
- lsls r0, 24
- cmp r0, 0
- bne _08146AA8
- b _08146DA4
-_08146AA8:
- ldr r1, _08146AC4 @ =gMain
- ldr r0, _08146AC8 @ =0x0000043c
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- ldr r1, _08146ACC @ =gLinkType
- ldr r2, _08146AD0 @ =0x00005501
- adds r0, r2, 0
- strh r0, [r1]
- bl OpenLink
- b _08146DA4
- .align 2, 0
-_08146AC4: .4byte gMain
-_08146AC8: .4byte 0x0000043c
-_08146ACC: .4byte gLinkType
-_08146AD0: .4byte 0x00005501
-_08146AD4:
- ldr r0, _08146B08 @ =gLinkStatus
- ldr r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- bne _08146AE2
- b _08146C38
-_08146AE2:
- movs r0, 0x1C
- ands r1, r0
- cmp r1, 0x4
- bhi _08146AEC
- b _08146C38
-_08146AEC:
- movs r0, 0x15
- bl PlaySE
- ldr r0, _08146B0C @ =gSystemText_LoadEventPressA
- bl sub_8072044
- ldr r1, _08146B10 @ =gMain
- ldr r0, _08146B14 @ =0x0000043c
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _08146C38
- .align 2, 0
-_08146B08: .4byte gLinkStatus
-_08146B0C: .4byte gSystemText_LoadEventPressA
-_08146B10: .4byte gMain
-_08146B14: .4byte 0x0000043c
-_08146B18:
- bl MenuUpdateWindowText
- lsls r0, 24
- cmp r0, 0
- bne _08146B24
- b _08146DA4
-_08146B24:
- b _08146D7C
-_08146B26:
- bl GetLinkPlayerCount_2
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x2
- bne _08146C10
- ldr r4, _08146B64 @ =gMain
- ldrh r1, [r4, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08146B70
- movs r0, 0x5
- bl PlaySE
- bl sub_8007F4C
- movs r0, 0x6
- movs r1, 0x5
- movs r2, 0x17
- movs r3, 0x8
- bl MenuDrawTextWindow
- ldr r0, _08146B68 @ =gSystemText_LoadingEvent
- movs r1, 0x7
- movs r2, 0x6
- bl MenuPrint
- ldr r2, _08146B6C @ =0x0000043c
- adds r1, r4, r2
- b _08146D82
- .align 2, 0
-_08146B64: .4byte gMain
-_08146B68: .4byte gSystemText_LoadingEvent
-_08146B6C: .4byte 0x0000043c
-_08146B70:
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- bne _08146B7A
- b _08146DA4
-_08146B7A:
- movs r0, 0x5
- bl PlaySE
- bl CloseLink
- ldr r0, _08146B8C @ =0x0000043c
- adds r1, r4, r0
- b _08146C54
- .align 2, 0
-_08146B8C: .4byte 0x0000043c
-_08146B90:
- bl IsLinkConnectionEstablished
- lsls r0, 24
- cmp r0, 0
- beq _08146C38
- ldr r0, _08146BD8 @ =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- bne _08146BA4
- b _08146DA4
-_08146BA4:
- bl GetLinkPlayerDataExchangeStatusTimed
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bne _08146BE8
- bl sub_800832C
- movs r0, 0x6
- movs r1, 0x5
- movs r2, 0x17
- movs r3, 0x8
- bl MenuZeroFillWindowRect
- ldr r4, _08146BDC @ =gStringVar4
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_81469AC
- adds r0, r4, 0
- bl sub_8072044
- ldr r0, _08146BE0 @ =gMain
- ldr r2, _08146BE4 @ =0x0000043c
- adds r0, r2
- b _08146C26
- .align 2, 0
-_08146BD8: .4byte gReceivedRemoteLinkPlayers
-_08146BDC: .4byte gStringVar4
-_08146BE0: .4byte gMain
-_08146BE4: .4byte 0x0000043c
-_08146BE8:
- bl sub_8146914
- lsls r0, 24
- cmp r0, 0
- beq _08146C00
- ldr r0, _08146BFC @ =gSystemText_DontCutLink
- bl sub_8072044
- b _08146D7C
- .align 2, 0
-_08146BFC: .4byte gSystemText_DontCutLink
-_08146C00:
- bl CloseLink
- movs r0, 0x6
- movs r1, 0x5
- movs r2, 0x17
- movs r3, 0x8
- bl MenuZeroFillWindowRect
-_08146C10:
- ldr r4, _08146C2C @ =gStringVar4
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_81469AC
- adds r0, r4, 0
- bl sub_8072044
- ldr r0, _08146C30 @ =gMain
- ldr r1, _08146C34 @ =0x0000043c
- adds r0, r1
-_08146C26:
- movs r1, 0xD
- strb r1, [r0]
- b _08146DA4
- .align 2, 0
-_08146C2C: .4byte gStringVar4
-_08146C30: .4byte gMain
-_08146C34: .4byte 0x0000043c
-_08146C38:
- ldr r4, _08146C5C @ =gMain
- ldrh r1, [r4, 0x2E]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _08146C46
- b _08146DA4
-_08146C46:
- movs r0, 0x5
- bl PlaySE
- bl CloseLink
- ldr r2, _08146C60 @ =0x0000043c
- adds r1, r4, r2
-_08146C54:
- movs r0, 0xF
- strb r0, [r1]
- b _08146DA4
- .align 2, 0
-_08146C5C: .4byte gMain
-_08146C60: .4byte 0x0000043c
-_08146C64:
- bl MenuUpdateWindowText
- lsls r0, 24
- cmp r0, 0
- bne _08146C70
- b _08146DA4
-_08146C70:
- b _08146D7C
-_08146C72:
- bl GetBlockReceivedStatus
- lsls r0, 24
- cmp r0, 0
- bne _08146C7E
- b _08146DA4
-_08146C7E:
- bl ResetBlockReceivedFlags
- ldr r1, _08146C8C @ =gMain
- ldr r2, _08146C90 @ =0x0000043c
- adds r1, r2
- b _08146D82
- .align 2, 0
-_08146C8C: .4byte gMain
-_08146C90: .4byte 0x0000043c
-_08146C94:
- ldr r0, _08146C9C @ =0x0000043c
- adds r1, r4, r0
- b _08146D82
- .align 2, 0
-_08146C9C: .4byte 0x0000043c
-_08146CA0:
- bl sub_800832C
- ldr r1, _08146CAC @ =gMain
- ldr r2, _08146CB0 @ =0x0000043c
- adds r1, r2
- b _08146D82
- .align 2, 0
-_08146CAC: .4byte gMain
-_08146CB0: .4byte 0x0000043c
-_08146CB4:
- ldr r0, _08146CEC @ =gReceivedRemoteLinkPlayers
- ldrb r6, [r0]
- cmp r6, 0
- bne _08146DA4
- ldr r5, _08146CF0 @ =0x02000000
- adds r0, r5, 0
- bl sub_812613C
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- str r6, [sp, 0x4]
- ldr r2, _08146CF4 @ =0x050001f5
- add r0, sp, 0x4
- adds r1, r5, 0
- bl CpuSet
- ldr r0, _08146CF8 @ =gStringVar4
- adds r1, r4, 0
- bl sub_81469AC
- lsls r0, 24
- cmp r0, 0
- bne _08146D7C
- movs r0, 0
- bl sub_8125D44
- b _08146D7C
- .align 2, 0
-_08146CEC: .4byte gReceivedRemoteLinkPlayers
-_08146CF0: .4byte 0x02000000
-_08146CF4: .4byte 0x050001f5
-_08146CF8: .4byte gStringVar4
-_08146CFC:
- ldr r0, _08146D0C @ =gStringVar4
- bl sub_8072044
- ldr r1, _08146D10 @ =gMain
- ldr r2, _08146D14 @ =0x0000043c
- adds r1, r2
- b _08146D82
- .align 2, 0
-_08146D0C: .4byte gStringVar4
-_08146D10: .4byte gMain
-_08146D14: .4byte 0x0000043c
-_08146D18:
- movs r0, 0x6
- movs r1, 0x5
- movs r2, 0x17
- movs r3, 0x8
- bl MenuZeroFillWindowRect
- bl MenuUpdateWindowText
- lsls r0, 24
- cmp r0, 0
- beq _08146DA4
- ldr r1, _08146D44 @ =gMain
- ldr r0, _08146D48 @ =0x0000043c
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- movs r2, 0
- strb r0, [r1]
- ldr r0, _08146D4C @ =gUnknown_02039338
- strb r2, [r0]
- b _08146DA4
- .align 2, 0
-_08146D44: .4byte gMain
-_08146D48: .4byte 0x0000043c
-_08146D4C: .4byte gUnknown_02039338
-_08146D50:
- ldrh r1, [r4, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08146DA4
- movs r0, 0x5
- bl PlaySE
- ldr r2, _08146D68 @ =0x0000043c
- adds r1, r4, r2
- b _08146D82
- .align 2, 0
-_08146D68: .4byte 0x0000043c
-_08146D6C:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
-_08146D78:
- bl BeginNormalPaletteFade
-_08146D7C:
- ldr r1, _08146D8C @ =gMain
- ldr r0, _08146D90 @ =0x0000043c
- adds r1, r0
-_08146D82:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _08146DA4
- .align 2, 0
-_08146D8C: .4byte gMain
-_08146D90: .4byte 0x0000043c
-_08146D94:
- ldr r0, _08146DFC @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08146DA4
- bl DoSoftReset
-_08146DA4:
- ldr r0, _08146E00 @ =gLinkStatus
- ldr r0, [r0]
- movs r1, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08146DE4
- bl IsLinkMaster
- lsls r0, 24
- cmp r0, 0
- bne _08146DE4
- bl CloseLink
- movs r0, 0x6
- movs r1, 0x5
- movs r2, 0x17
- movs r3, 0x8
- bl MenuZeroFillWindowRect
- ldr r4, _08146E04 @ =gStringVar4
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_81469AC
- adds r0, r4, 0
- bl sub_8072044
- ldr r0, _08146E08 @ =gMain
- ldr r1, _08146E0C @ =0x0000043c
- adds r0, r1
- movs r1, 0xD
- strb r1, [r0]
-_08146DE4:
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08146DFC: .4byte gPaletteFade
-_08146E00: .4byte gLinkStatus
-_08146E04: .4byte gStringVar4
-_08146E08: .4byte gMain
-_08146E0C: .4byte 0x0000043c
- thumb_func_end sub_81469E4
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/mystery_event_script.s b/asm/mystery_event_script.s
index 4b8717bac..f0e842626 100644
--- a/asm/mystery_event_script.s
+++ b/asm/mystery_event_script.s
@@ -6,181 +6,6 @@
.text
- thumb_func_start sub_8126098
-sub_8126098: @ 8126098
- push {r4,lr}
- adds r4, r3, 0
- lsls r0, 16
- lsrs r0, 16
- lsls r2, 16
- lsrs r2, 16
- movs r3, 0x2
- ands r0, r3
- cmp r0, 0
- beq _081260C6
- ands r1, r3
- cmp r1, 0
- beq _081260C6
- movs r0, 0x4
- ands r2, r0
- cmp r2, 0
- beq _081260C6
- movs r0, 0x80
- .ifdef SAPPHIRE
- lsls r0, 1 @ unknown difference
- .endif
- ands r0, r4
- cmp r0, 0
- beq _081260C6
- movs r0, 0x1
- b _081260C8
-_081260C6:
- movs r0, 0
-_081260C8:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8126098
-
- thumb_func_start sub_81260D0
-sub_81260D0: @ 81260D0
- push {lr}
- ldr r0, _081260E4 @ =gStringVar4
- ldr r1, _081260E8 @ =gOtherText_DataCannotUseVersion
- bl StringExpandPlaceholders
- movs r0, 0x3
- bl sub_8126160
- pop {r0}
- bx r0
- .align 2, 0
-_081260E4: .4byte gStringVar4
-_081260E8: .4byte gOtherText_DataCannotUseVersion
- thumb_func_end sub_81260D0
-
- thumb_func_start sub_81260EC
-sub_81260EC: @ 81260EC
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r1, _08126114 @ =gScriptFuncs
- ldr r2, _08126118 @ =gScriptFuncs_End
- bl InitScriptContext
- adds r0, r4, 0
- adds r1, r5, 0
- bl SetupBytecodeScript
- str r5, [r4, 0x64]
- movs r0, 0
- str r0, [r4, 0x68]
- str r0, [r4, 0x6C]
- str r0, [r4, 0x70]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08126114: .4byte gScriptFuncs
-_08126118: .4byte gScriptFuncs_End
- thumb_func_end sub_81260EC
-
- thumb_func_start sub_812611C
-sub_812611C: @ 812611C
- push {r4,lr}
- adds r4, r0, 0
- bl RunScript
- lsls r0, 24
- cmp r0, 0
- beq _08126134
- ldr r0, [r4, 0x70]
- cmp r0, 0
- beq _08126134
- movs r0, 0x1
- b _08126136
-_08126134:
- movs r0, 0
-_08126136:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_812611C
-
- thumb_func_start sub_812613C
-sub_812613C: @ 812613C
- push {r4,lr}
- adds r1, r0, 0
- ldr r4, _0812615C @ =gUnknown_02039288
- adds r0, r4, 0
- bl sub_81260EC
-_08126148:
- adds r0, r4, 0
- bl sub_812611C
- cmp r0, 0
- bne _08126148
- ldr r0, [r4, 0x6C]
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0812615C: .4byte gUnknown_02039288
- thumb_func_end sub_812613C
-
- thumb_func_start sub_8126160
-sub_8126160: @ 8126160
- ldr r1, _08126168 @ =gUnknown_02039288
- str r0, [r1, 0x6C]
- bx lr
- .align 2, 0
-_08126168: .4byte gUnknown_02039288
- thumb_func_end sub_8126160
-
- thumb_func_start sub_812616C
-sub_812616C: @ 812616C
- push {r4,lr}
- adds r4, r0, 0
- movs r3, 0
- movs r2, 0
- cmp r3, r1
- bcs _08126184
-_08126178:
- adds r0, r4, r2
- ldrb r0, [r0]
- adds r3, r0
- adds r2, 0x1
- cmp r2, r1
- bcc _08126178
-_08126184:
- adds r0, r3, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_812616C
-
- thumb_func_start sub_812618C
-sub_812618C: @ 812618C
- adds r2, r0, 0
- ldrb r0, [r2]
- ldrb r1, [r2, 0x1]
- lsls r1, 8
- orrs r0, r1
- ldrb r1, [r2, 0x2]
- lsls r1, 16
- orrs r0, r1
- ldrb r1, [r2, 0x3]
- lsls r1, 24
- orrs r0, r1
- bx lr
- thumb_func_end sub_812618C
-
- thumb_func_start sub_81261A4
-sub_81261A4: @ 81261A4
- strb r1, [r0]
- lsrs r2, r1, 8
- strb r2, [r0, 0x1]
- lsrs r2, r1, 16
- strb r2, [r0, 0x2]
- lsrs r1, 24
- strb r1, [r0, 0x3]
- bx lr
- thumb_func_end sub_81261A4
-
thumb_func_start unref_sub_81261B4
unref_sub_81261B4: @ 81261B4
push {r4-r7,lr}
@@ -257,7 +82,7 @@ unref_sub_812620C: @ 812620C
adds r1, r5
subs r1, r4
adds r0, r4, 0
- bl sub_8041174
+ bl CalcCRC16
adds r1, r0, 0
lsls r1, 16
lsrs r1, 16
@@ -544,7 +369,7 @@ sub_8126438: @ 8126438
mov r7, r8
push {r7}
adds r7, r0, 0
- bl sub_80B4940
+ bl IsEnigmaBerryValid
mov r8, r0
adds r0, r7, 0
bl ScriptReadWord
@@ -560,7 +385,7 @@ sub_8126438: @ 8126438
movs r2, 0x7
bl StringCopyN
adds r0, r4, 0
- bl sub_80B48A8
+ bl SetEnigmaBerry
ldr r4, _0812648C @ =gStringVar2
adds r0, r4, 0
adds r1, r5, 0
@@ -597,7 +422,7 @@ _081264B8:
bl StringExpandPlaceholders
movs r0, 0x2
str r0, [r7, 0x6C]
- bl sub_80B4940
+ bl IsEnigmaBerryValid
cmp r0, 0x1
bne _081264E0
ldr r0, _081264DC @ =0x0000402d
@@ -702,7 +527,7 @@ sub_8126524: @ 8126524
sub_812658C: @ 812658C
push {r4,lr}
adds r4, r0, 0
- bl sub_80690F0
+ bl EnableNationalPokedex
ldr r0, _081265A8 @ =gStringVar4
ldr r1, _081265AC @ =gOtherText_DexUpgraded
bl StringExpandPlaceholders
@@ -914,7 +739,7 @@ _08126750: .4byte gOtherText_NewTrainerInHoenn
sub_8126754: @ 8126754
push {r4,lr}
adds r4, r0, 0
- bl sub_80691BC
+ bl EnableResetRTC
ldr r0, _08126770 @ =gStringVar4
ldr r1, _08126774 @ =gSystemText_ClockAdjustmentUsable
bl StringExpandPlaceholders
@@ -987,7 +812,7 @@ sub_81267C0: @ 81267C0
adds r1, r0
subs r1, r4
adds r0, r4, 0
- bl sub_8041174
+ bl CalcCRC16
lsls r0, 16
lsrs r0, 16
cmp r5, r0
diff --git a/asm/name_string_util.s b/asm/name_string_util.s
new file mode 100644
index 000000000..3fcfd89d9
--- /dev/null
+++ b/asm/name_string_util.s
@@ -0,0 +1,76 @@
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start PadNameString
+PadNameString: @ 814A518
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ lsls r1, 24
+ lsrs r5, r1, 24
+ bl StripExtCtrlCodes
+ adds r0, r4, 0
+ bl StringLength
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r5, 0xFC
+ bne _0814A556
+ cmp r1, 0x5
+ bhi _0814A55A
+ movs r3, 0xFC
+ movs r2, 0x7
+_0814A53A:
+ adds r0, r4, r1
+ strb r3, [r0]
+ strb r2, [r0, 0x1]
+ adds r0, r1, 0x2
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x5
+ bls _0814A53A
+ b _0814A55A
+_0814A54C:
+ adds r0, r4, r1
+ strb r5, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+_0814A556:
+ cmp r1, 0x5
+ bls _0814A54C
+_0814A55A:
+ adds r1, r4, r1
+ movs r0, 0xFF
+ strb r0, [r1]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end PadNameString
+
+ thumb_func_start SanitizeNameString
+SanitizeNameString: @ 814A568
+ push {r4,lr}
+ adds r4, r0, 0
+ bl StringLength
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x5
+ bhi _0814A582
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl ConvertInternationalString
+ b _0814A588
+_0814A582:
+ adds r0, r4, 0
+ bl StripExtCtrlCodes
+_0814A588:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end SanitizeNameString
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/naming_screen.s b/asm/naming_screen.s
index 121b44790..76ee536c7 100644
--- a/asm/naming_screen.s
+++ b/asm/naming_screen.s
@@ -2846,7 +2846,7 @@ sub_80B6EFC: @ 80B6EFC
str r2, [sp, 0x4]
movs r2, 0x34
movs r3, 0x18
- bl sub_809D2FC
+ bl CreateMonIcon
lsls r0, 24
lsrs r0, 24
ldr r2, _080B6F40 @ =gSprites
diff --git a/asm/party_menu.s b/asm/party_menu.s
index 8f1d9d5b7..0edec1623 100644
--- a/asm/party_menu.s
+++ b/asm/party_menu.s
@@ -71,7 +71,7 @@ sub_806AF4C: @ 806AF4C
lsrs r3, 24
cmp r1, 0xFF
beq _0806AF64
- ldr r0, _0806AF84 @ =gUnknown_020239F8
+ ldr r0, _0806AF84 @ =gBattleTypeFlags
strh r1, [r0]
_0806AF64:
ldr r0, _0806AF88 @ =0x0201b000
@@ -90,7 +90,7 @@ _0806AF64:
pop {r0}
bx r0
.align 2, 0
-_0806AF84: .4byte gUnknown_020239F8
+_0806AF84: .4byte gBattleTypeFlags
_0806AF88: .4byte 0x0201b000
thumb_func_end sub_806AF4C
@@ -185,7 +185,7 @@ _0806B020:
muls r2, r3
ldr r3, _0806B050 @ =gPlayerParty
adds r2, r3
- bl sub_806D90C
+ bl TryCreatePartyMenuMonIcon
b _0806B114
.align 2, 0
_0806B048: .4byte 0x00000266
@@ -199,14 +199,14 @@ _0806B054:
adds r1, r4, r0
b _0806B0E0
_0806B060:
- bl sub_806DA98
+ bl LoadHeldItemIconGraphics
b _0806B0D8
_0806B066:
movs r1, 0x98
lsls r1, 2
adds r0, r4, r1
ldrb r0, [r0]
- bl sub_806DC34
+ bl CreateHeldItemIcons_806DC34
movs r2, 0x99
lsls r2, 2
adds r1, r4, r2
@@ -233,10 +233,10 @@ _0806B07A:
.align 2, 0
_0806B0A0: .4byte 0x00000266
_0806B0A4:
- bl sub_806E334
+ bl PartyMenuPrintMonsLevelOrStatus
b _0806B0D8
_0806B0AA:
- bl sub_806E0C4
+ bl PrintPartyMenuMonNicknames
ldr r1, _0806B0B8 @ =0x0201b000
movs r0, 0x99
lsls r0, 2
@@ -245,7 +245,7 @@ _0806B0AA:
.align 2, 0
_0806B0B8: .4byte 0x0201b000
_0806B0BC:
- bl sub_806E53C
+ bl PartyMenuTryPrintMonsHP
b _0806B0D8
_0806B0C2:
bl nullsub_13
@@ -257,7 +257,7 @@ _0806B0C2:
.align 2, 0
_0806B0D0: .4byte 0x0201b000
_0806B0D4:
- bl sub_806E6C8
+ bl PartyMenuDrawHPBars
_0806B0D8:
ldr r1, _0806B0E8 @ =0x0201b000
movs r2, 0x99
@@ -774,10 +774,10 @@ _0806B520: .4byte REG_BG3VOFS
_0806B524: .4byte 0x0000ffff
thumb_func_end sub_806B4A8
- thumb_func_start sub_806B528
-sub_806B528: @ 806B528
+ thumb_func_start IsLinkDoubleBattle
+IsLinkDoubleBattle: @ 806B528
push {lr}
- ldr r0, _0806B53C @ =gUnknown_020239F8
+ ldr r0, _0806B53C @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x4B
ands r0, r1
@@ -786,13 +786,13 @@ sub_806B528: @ 806B528
movs r0, 0
b _0806B542
.align 2, 0
-_0806B53C: .4byte gUnknown_020239F8
+_0806B53C: .4byte gBattleTypeFlags
_0806B540:
movs r0, 0x1
_0806B542:
pop {r1}
bx r1
- thumb_func_end sub_806B528
+ thumb_func_end IsLinkDoubleBattle
thumb_func_start sub_806B548
sub_806B548: @ 806B548
@@ -833,7 +833,7 @@ sub_806B58C: @ 806B58C
push {r4,r5,lr}
lsls r0, 24
lsrs r5, r0, 24
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0
@@ -844,7 +844,7 @@ sub_806B58C: @ 806B58C
.align 2, 0
_0806B5A4: .4byte gUnknown_0202E8FA
_0806B5A8:
- bl sub_806B528
+ bl IsLinkDoubleBattle
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -909,7 +909,7 @@ _0806B628:
movs r1, 0
b _0806B8A8
_0806B638:
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
bne _0806B666
@@ -932,7 +932,7 @@ _0806B660:
ldrb r1, [r4, 0x3]
b _0806B8BC
_0806B666:
- bl sub_806B528
+ bl IsLinkDoubleBattle
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -954,7 +954,7 @@ _0806B684:
movs r1, 0x1
b _0806B8A8
_0806B694:
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
bne _0806B6C2
@@ -977,7 +977,7 @@ _0806B6BC:
ldrb r1, [r4, 0x5]
b _0806B8BC
_0806B6C2:
- bl sub_806B528
+ bl IsLinkDoubleBattle
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -1021,7 +1021,7 @@ _0806B714:
ldrb r1, [r4, 0x5]
b _0806B8BC
_0806B71A:
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
bne _0806B74A
@@ -1044,7 +1044,7 @@ _0806B744:
ldrb r1, [r4, 0x7]
b _0806B8BC
_0806B74A:
- bl sub_806B528
+ bl IsLinkDoubleBattle
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -1088,7 +1088,7 @@ _0806B79C:
ldrb r1, [r4, 0x7]
b _0806B8BC
_0806B7A2:
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
bne _0806B7D2
@@ -1112,7 +1112,7 @@ _0806B7CC:
ldrb r1, [r4, 0x9]
b _0806B8BC
_0806B7D2:
- bl sub_806B528
+ bl IsLinkDoubleBattle
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -1159,7 +1159,7 @@ _0806B82C:
ldrb r1, [r4, 0x9]
b _0806B8BC
_0806B832:
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
bne _0806B84C
@@ -1171,7 +1171,7 @@ _0806B832:
.align 2, 0
_0806B848: .4byte gPlayerPartyCount
_0806B84C:
- bl sub_806B528
+ bl IsLinkDoubleBattle
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -1714,7 +1714,7 @@ sub_806BC3C: @ 806BC3C
lsls r5, 24
lsrs r5, 24
ldr r6, _0806BCB0 @ =gUnknown_08376918
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r4, 2
lsls r0, 24
lsrs r0, 24
@@ -1861,7 +1861,7 @@ sub_806BD58: @ 806BD58
lsls r4, 24
lsrs r4, 24
ldr r0, _0806BD7C @ =SpriteCallbackDummy
- bl object_new_hidden_with_callback
+ bl CreateInvisibleSpriteWithCallback
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
@@ -2176,8 +2176,8 @@ sub_806BF74: @ 806BF74
mov r0, r9
adds r1, r5, 0
movs r2, 0
- bl sub_806DA44
- bl sub_806B528
+ bl UpdateMonIconFrame_806DA44
+ bl IsLinkDoubleBattle
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -2328,7 +2328,7 @@ _0806C0CC: .4byte 0x0201b000
_0806C0D0: .4byte 0x00000261
_0806C0D4: .4byte gUnknown_083768B8
_0806C0D8:
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
lsrs r7, r0, 24
cmp r5, 0x5
@@ -2436,7 +2436,7 @@ _0806C1A4:
lsrs r1, 24
mov r0, r9
movs r2, 0x1
- bl sub_806DA44
+ bl UpdateMonIconFrame_806DA44
movs r2, 0x2E
ldrsh r0, [r4, r2]
cmp r5, r0
@@ -3082,7 +3082,7 @@ sub_806C658: @ 806C658
mov r0, r8
adds r1, r6, 0
movs r2, 0
- bl sub_806DA44
+ bl UpdateMonIconFrame_806DA44
cmp r6, 0x5
bhi _0806C6A8
lsls r0, r6, 1
@@ -3321,7 +3321,7 @@ _0806C84A:
lsrs r1, 24
mov r0, r8
movs r2, 0x1
- bl sub_806DA44
+ bl UpdateMonIconFrame_806DA44
movs r3, 0x2E
ldrsh r0, [r4, r3]
cmp r6, r0
@@ -3362,7 +3362,7 @@ sub_806C890: @ 806C890
adds r0, r6, 0
adds r1, r4, 0
movs r2, 0
- bl sub_806DA44
+ bl UpdateMonIconFrame_806DA44
cmp r4, 0x5
bhi _0806C8DC
lsls r0, r4, 1
@@ -3430,7 +3430,7 @@ sub_806C92C: @ 806C92C
ldrh r0, [r1, 0x30]
lsls r0, 24
lsrs r4, r0, 24
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
bne _0806C96A
@@ -3606,7 +3606,7 @@ sub_806CA60: @ 806CA60
movs r1, 0
bl CreateTask
ldr r0, _0806CAE8 @ =SpriteCallbackDummy
- bl object_new_hidden_with_callback
+ bl CreateInvisibleSpriteWithCallback
strb r0, [r5, 0x1]
ldrb r1, [r5, 0x1]
adds r0, r4, 0
@@ -4020,11 +4020,11 @@ _0806CDCC:
ldr r4, _0806CE1C @ =0x02001000
ldrb r0, [r4]
ldrb r1, [r4, 0x5]
- bl sub_806DDA0
+ bl GetMonIconSpriteId_maybe
strb r0, [r4, 0x3]
ldrb r0, [r4]
ldrb r1, [r4, 0x6]
- bl sub_806DDA0
+ bl GetMonIconSpriteId_maybe
strb r0, [r4, 0x4]
ldrb r3, [r4, 0x5]
cmp r3, 0
@@ -4515,12 +4515,12 @@ sub_806D198: @ 806D198
ldrb r0, [r4]
ldrb r1, [r4, 0x5]
ldrb r2, [r4, 0x4]
- bl sub_806DE50
+ bl SetMonIconSpriteId_maybe
ldrb r0, [r4]
ldrb r1, [r4, 0x6]
ldrb r2, [r4, 0x3]
- bl sub_806DE50
- bl battle_type_is_double
+ bl SetMonIconSpriteId_maybe
+ bl IsDoubleBattle
ldr r5, _0806D368 @ =gSprites
ldrb r1, [r4, 0x3]
lsls r3, r1, 4
@@ -4541,7 +4541,7 @@ sub_806D198: @ 806D198
movs r1, 0
mov r8, r1
strh r0, [r3, 0x20]
- bl battle_type_is_double
+ bl IsDoubleBattle
ldrb r1, [r4, 0x3]
lsls r3, r1, 4
adds r3, r1
@@ -4580,9 +4580,9 @@ sub_806D198: @ 806D198
adds r1, r5
mov r9, r1
add r0, r9
- ldr r7, _0806D370 @ =sub_806DA38
+ ldr r7, _0806D370 @ =UpdateMonIconFrame_806DA38
str r7, [r0]
- bl battle_type_is_double
+ bl IsDoubleBattle
ldrb r1, [r4, 0x4]
lsls r3, r1, 4
adds r3, r1
@@ -4599,7 +4599,7 @@ sub_806D198: @ 806D198
adds r2, r6
ldrb r0, [r2]
strh r0, [r3, 0x20]
- bl battle_type_is_double
+ bl IsDoubleBattle
ldrb r1, [r4, 0x4]
lsls r3, r1, 4
adds r3, r1
@@ -4645,14 +4645,14 @@ sub_806D198: @ 806D198
ldrh r1, [r1, 0x2E]
lsls r1, 24
lsrs r1, 24
- bl sub_806DDA0
+ bl GetMonIconSpriteId_maybe
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
add r1, r9
- ldr r0, _0806D374 @ =sub_806DA0C
+ ldr r0, _0806D374 @ =UpdateMonIconFrame_806DA0C
str r0, [r1]
ldrb r0, [r4, 0x5]
movs r6, 0x64
@@ -4667,17 +4667,17 @@ sub_806D198: @ 806D198
adds r1, r0, 0
muls r1, r6
adds r1, r5
- bl sub_806E2C0
+ bl PartyMenuPrintMonLevelOrStatus
ldrb r0, [r4, 0x5]
adds r1, r0, 0
muls r1, r6
adds r1, r5
- bl sub_806E07C
+ bl TryPrintPartyMenuMonNickname
ldrb r0, [r4, 0x5]
adds r1, r0, 0
muls r1, r6
adds r1, r5
- bl sub_806E4E8
+ bl PartyMenuTryPrintHP
ldrb r0, [r4, 0x5]
adds r1, r0, 0
muls r1, r6
@@ -4687,23 +4687,23 @@ sub_806D198: @ 806D198
adds r1, r0, 0
muls r1, r6
adds r1, r5
- bl sub_806E2C0
+ bl PartyMenuPrintMonLevelOrStatus
ldrb r0, [r4, 0x6]
adds r1, r0, 0
muls r1, r6
adds r1, r5
- bl sub_806E07C
+ bl TryPrintPartyMenuMonNickname
ldrb r0, [r4, 0x6]
adds r1, r0, 0
muls r1, r6
adds r1, r5
- bl sub_806E4E8
+ bl PartyMenuTryPrintHP
ldrb r0, [r4, 0x6]
adds r1, r0, 0
muls r1, r6
adds r1, r5
bl nullsub_12
- bl sub_806E6C8
+ bl PartyMenuDrawHPBars
mov r0, r10
bl sub_806CC74
pop {r3-r5}
@@ -4717,8 +4717,8 @@ sub_806D198: @ 806D198
_0806D364: .4byte 0x02001000
_0806D368: .4byte gSprites
_0806D36C: .4byte gUnknown_08376678
-_0806D370: .4byte sub_806DA38
-_0806D374: .4byte sub_806DA0C
+_0806D370: .4byte UpdateMonIconFrame_806DA38
+_0806D374: .4byte UpdateMonIconFrame_806DA0C
_0806D378: .4byte gPlayerParty
thumb_func_end sub_806D198
@@ -4726,7 +4726,7 @@ _0806D378: .4byte gPlayerParty
sub_806D37C: @ 806D37C
push {r4,lr}
adds r4, r0, 0
- bl sub_809D638
+ bl UpdateMonIconFrame
ldrh r2, [r4, 0x24]
movs r0, 0x24
ldrsh r1, [r4, r0]
@@ -4740,11 +4740,11 @@ sub_806D37C: @ 806D37C
movs r1, 0
strh r0, [r4, 0x2E]
strh r1, [r4, 0x32]
- ldr r0, _0806D3A4 @ =sub_806DA38
+ ldr r0, _0806D3A4 @ =UpdateMonIconFrame_806DA38
str r0, [r4, 0x1C]
b _0806D3AE
.align 2, 0
-_0806D3A4: .4byte sub_806DA38
+_0806D3A4: .4byte UpdateMonIconFrame_806DA38
_0806D3A8:
ldrh r0, [r4, 0x2E]
adds r0, r2, r0
@@ -4890,7 +4890,7 @@ sub_806D4AC: @ 806D4AC
lsls r1, 24
lsrs r1, 24
adds r0, r5, 0
- bl sub_806DDA0
+ bl GetMonIconSpriteId_maybe
lsls r0, 24
lsrs r0, 24
ldr r2, _0806D4FC @ =gSprites
@@ -4932,7 +4932,7 @@ sub_806D50C: @ 806D50C
lsrs r0, 24
lsls r1, 24
lsrs r1, 24
- bl sub_806DDA0
+ bl GetMonIconSpriteId_maybe
ldr r2, _0806D534 @ =gSprites
lsls r0, 24
lsrs r0, 24
@@ -5036,7 +5036,7 @@ sub_806D5B8: @ 806D5B8
lsls r5, 24
lsrs r5, 24
ldr r6, _0806D658 @ =gUnknown_08376948
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r4, r5, 2
lsls r0, 24
lsrs r0, 24
@@ -5047,7 +5047,7 @@ sub_806D5B8: @ 806D5B8
adds r1, r6
ldrb r1, [r1]
mov r10, r1
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 1
@@ -5057,7 +5057,7 @@ sub_806D5B8: @ 806D5B8
adds r1, r6
ldrb r1, [r1, 0x1]
mov r9, r1
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 1
@@ -5067,7 +5067,7 @@ sub_806D5B8: @ 806D5B8
adds r1, r6
ldrb r1, [r1, 0x2]
mov r8, r1
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 1
@@ -5118,7 +5118,7 @@ sub_806D668: @ 806D668
lsls r5, 24
lsrs r5, 24
ldr r6, _0806D708 @ =gUnknown_08376978
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r4, r5, 2
lsls r0, 24
lsrs r0, 24
@@ -5129,7 +5129,7 @@ sub_806D668: @ 806D668
adds r1, r6
ldrb r1, [r1]
mov r10, r1
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 1
@@ -5139,7 +5139,7 @@ sub_806D668: @ 806D668
adds r1, r6
ldrb r1, [r1, 0x1]
mov r9, r1
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 1
@@ -5149,7 +5149,7 @@ sub_806D668: @ 806D668
adds r1, r6
ldrb r1, [r1, 0x2]
mov r8, r1
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 1
@@ -5298,4 +5298,6553 @@ _0806D7F0: .4byte 0x06007180
_0806D7F4: .4byte gStatusPal_Icons
thumb_func_end sub_806D718
+ thumb_func_start SetMonIconAnimByHP
+SetMonIconAnimByHP: @ 806D7F8
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r1, 16
+ lsls r2, 16
+ lsrs r5, r1, 16
+ asrs r1, 16
+ lsrs r4, r2, 16
+ asrs r2, 16
+ adds r0, r1, 0
+ adds r1, r2, 0
+ bl GetHPBarLevel
+ lsls r0, 24
+ lsrs r0, 24
+ movs r2, 0
+ cmp r5, r4
+ beq _0806D830
+ movs r2, 0x1
+ cmp r0, 0x3
+ beq _0806D830
+ movs r2, 0x2
+ cmp r0, 0x2
+ beq _0806D830
+ movs r2, 0x4
+ cmp r0, 0x1
+ bne _0806D830
+ movs r2, 0x3
+_0806D830:
+ lsls r0, r6, 4
+ adds r0, r6
+ lsls r0, 2
+ ldr r1, _0806D848 @ =gSprites
+ adds r0, r1
+ adds r1, r2, 0
+ bl sub_809D824
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806D848: .4byte gSprites
+ thumb_func_end SetMonIconAnimByHP
+
+ thumb_func_start SetMonIconAnim
+SetMonIconAnim: @ 806D84C
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ adds r6, r1, 0
+ lsls r5, 24
+ lsrs r5, 24
+ adds r0, r6, 0
+ movs r1, 0x39
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r6, 0
+ movs r1, 0x3A
+ bl GetMonData
+ adds r2, r0, 0
+ lsls r2, 16
+ lsrs r2, 16
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl SetMonIconAnimByHP
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end SetMonIconAnim
+
+ thumb_func_start CreatePartyMenuMonIcon
+CreatePartyMenuMonIcon: @ 806D880
+ push {r4-r6,lr}
+ mov r6, r10
+ mov r5, r9
+ mov r4, r8
+ push {r4-r6}
+ sub sp, 0x8
+ adds r6, r0, 0
+ adds r5, r1, 0
+ mov r8, r3
+ lsls r6, 24
+ lsrs r6, 24
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r2, 24
+ lsrs r2, 24
+ ldr r3, _0806D904 @ =gUnknown_08376678
+ lsls r1, r5, 2
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 3
+ adds r1, r0
+ adds r1, r3
+ ldrb r0, [r1]
+ mov r9, r0
+ ldrb r1, [r1, 0x1]
+ mov r10, r1
+ mov r0, r8
+ movs r1, 0x41
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ mov r0, r8
+ movs r1, 0
+ bl GetMonData
+ ldr r1, _0806D908 @ =sub_809D62C
+ movs r2, 0x5
+ str r2, [sp]
+ str r0, [sp, 0x4]
+ adds r0, r4, 0
+ mov r2, r9
+ mov r3, r10
+ bl CreateMonIcon
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r6, 0
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl SetMonIconSpriteId_maybe
+ adds r0, r4, 0
+ mov r1, r8
+ bl SetMonIconAnim
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806D904: .4byte gUnknown_08376678
+_0806D908: .4byte sub_809D62C
+ thumb_func_end CreatePartyMenuMonIcon
+
+ thumb_func_start TryCreatePartyMenuMonIcon
+TryCreatePartyMenuMonIcon: @ 806D90C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r4, r2, 0
+ lsls r0, 24
+ lsrs r6, r0, 24
+ mov r8, r6
+ lsls r1, 24
+ lsrs r5, r1, 24
+ adds r7, r5, 0
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _0806D95A
+ bl IsLinkDoubleBattle
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806D946
+ adds r0, r6, 0
+ adds r1, r5, 0
+ movs r2, 0x2
+ adds r3, r4, 0
+ bl CreatePartyMenuMonIcon
+ b _0806D95A
+_0806D946:
+ bl IsDoubleBattle
+ adds r2, r0, 0
+ lsls r2, 24
+ lsrs r2, 24
+ mov r0, r8
+ adds r1, r7, 0
+ adds r3, r4, 0
+ bl CreatePartyMenuMonIcon
+_0806D95A:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end TryCreatePartyMenuMonIcon
+
+ thumb_func_start unref_sub_806D964
+unref_sub_806D964: @ 806D964
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r4, 0
+ b _0806D986
+_0806D96E:
+ movs r0, 0x64
+ adds r2, r4, 0
+ muls r2, r0
+ ldr r0, _0806D994 @ =gPlayerParty
+ adds r2, r0
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl TryCreatePartyMenuMonIcon
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+_0806D986:
+ ldr r0, _0806D998 @ =gPlayerPartyCount
+ ldrb r0, [r0]
+ cmp r4, r0
+ bcc _0806D96E
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806D994: .4byte gPlayerParty
+_0806D998: .4byte gPlayerPartyCount
+ thumb_func_end unref_sub_806D964
+
+ thumb_func_start CreateMonIcon_806D99C
+CreateMonIcon_806D99C: @ 806D99C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x8
+ adds r6, r0, 0
+ adds r5, r1, 0
+ mov r8, r3
+ lsls r6, 24
+ lsrs r6, 24
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r2, 24
+ lsrs r2, 24
+ ldr r3, _0806DA04 @ =gUnknown_08376678
+ lsls r1, r5, 2
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 3
+ adds r1, r0
+ adds r1, r3
+ ldrb r2, [r1]
+ ldrb r3, [r1, 0x1]
+ mov r1, r8
+ ldrh r0, [r1]
+ ldr r1, _0806DA08 @ =sub_809D62C
+ movs r4, 0x5
+ str r4, [sp]
+ mov r7, r8
+ ldr r4, [r7, 0x18]
+ str r4, [sp, 0x4]
+ bl CreateMonIcon
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r6, 0
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl SetMonIconSpriteId_maybe
+ ldrh r1, [r7, 0x10]
+ ldrh r2, [r7, 0x12]
+ adds r0, r4, 0
+ bl SetMonIconAnimByHP
+ add sp, 0x8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806DA04: .4byte gUnknown_08376678
+_0806DA08: .4byte sub_809D62C
+ thumb_func_end CreateMonIcon_806D99C
+
+ thumb_func_start UpdateMonIconFrame_806DA0C
+UpdateMonIconFrame_806DA0C: @ 806DA0C
+ push {r4,lr}
+ adds r4, r0, 0
+ bl UpdateMonIconFrame
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ beq _0806DA32
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0806DA30
+ ldr r0, _0806DA2C @ =0x0000fffd
+ strh r0, [r4, 0x26]
+ b _0806DA32
+ .align 2, 0
+_0806DA2C: .4byte 0x0000fffd
+_0806DA30:
+ strh r1, [r4, 0x26]
+_0806DA32:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end UpdateMonIconFrame_806DA0C
+
+ thumb_func_start UpdateMonIconFrame_806DA38
+UpdateMonIconFrame_806DA38: @ 806DA38
+ push {lr}
+ bl UpdateMonIconFrame
+ pop {r0}
+ bx r0
+ thumb_func_end UpdateMonIconFrame_806DA38
+
+ thumb_func_start UpdateMonIconFrame_806DA44
+UpdateMonIconFrame_806DA44: @ 806DA44
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r2, 24
+ lsrs r4, r2, 24
+ cmp r1, 0x5
+ bhi _0806DA8E
+ bl GetMonIconSpriteId_maybe
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, _0806DA7C @ =gSprites
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r2, r1, 2
+ adds r1, r2, r3
+ movs r0, 0
+ strh r0, [r1, 0x26]
+ strh r0, [r1, 0x2E]
+ cmp r4, 0
+ bne _0806DA84
+ adds r0, r3, 0
+ adds r0, 0x1C
+ adds r0, r2, r0
+ ldr r1, _0806DA80 @ =UpdateMonIconFrame_806DA38
+ b _0806DA8C
+ .align 2, 0
+_0806DA7C: .4byte gSprites
+_0806DA80: .4byte UpdateMonIconFrame_806DA38
+_0806DA84:
+ adds r0, r3, 0
+ adds r0, 0x1C
+ adds r0, r2, r0
+ ldr r1, _0806DA94 @ =UpdateMonIconFrame_806DA0C
+_0806DA8C:
+ str r1, [r0]
+_0806DA8E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806DA94: .4byte UpdateMonIconFrame_806DA0C
+ thumb_func_end UpdateMonIconFrame_806DA44
+
+ thumb_func_start LoadHeldItemIconGraphics
+LoadHeldItemIconGraphics: @ 806DA98
+ push {lr}
+ ldr r0, _0806DAAC @ =gUnknown_083765DC
+ bl LoadSpriteSheet
+ ldr r0, _0806DAB0 @ =gUnknown_083765E4
+ bl LoadSpritePalette
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806DAAC: .4byte gUnknown_083765DC
+_0806DAB0: .4byte gUnknown_083765E4
+ thumb_func_end LoadHeldItemIconGraphics
+
+ thumb_func_start SpriteCB_HeldItemIcon
+SpriteCB_HeldItemIcon: @ 806DAB4
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r1, [r4, 0x3C]
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r2, _0806DAE4 @ =gSprites
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, r0, r2
+ adds r0, r2, 0
+ adds r0, 0x3E
+ ldrb r0, [r0]
+ lsls r0, 29
+ cmp r0, 0
+ bge _0806DAE8
+ adds r0, r4, 0
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ b _0806DB06
+ .align 2, 0
+_0806DAE4: .4byte gSprites
+_0806DAE8:
+ adds r3, r4, 0
+ adds r3, 0x3E
+ ldrb r1, [r3]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r3]
+ ldrh r0, [r2, 0x24]
+ ldrh r1, [r2, 0x20]
+ adds r0, r1
+ strh r0, [r4, 0x20]
+ ldrh r0, [r2, 0x26]
+ ldrh r2, [r2, 0x22]
+ adds r0, r2
+ strh r0, [r4, 0x22]
+_0806DB06:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end SpriteCB_HeldItemIcon
+
+ thumb_func_start CreateHeldItemIcon
+CreateHeldItemIcon: @ 806DB0C
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ adds r6, r0, 0
+ mov r9, r1
+ lsls r6, 24
+ lsrs r6, 24
+ mov r0, r9
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ ldr r0, _0806DB84 @ =gSprites
+ mov r8, r0
+ lsls r0, r6, 4
+ adds r0, r6
+ lsls r0, 2
+ add r0, r8
+ adds r0, 0x43
+ ldrb r3, [r0]
+ ldr r0, _0806DB88 @ =gSpriteTemplate_837660C
+ subs r3, 0x1
+ lsls r3, 24
+ lsrs r3, 24
+ movs r1, 0xFA
+ movs r2, 0xAA
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 4
+ adds r4, r0
+ lsls r4, 2
+ mov r0, r8
+ adds r5, r4, r0
+ movs r0, 0x4
+ strh r0, [r5, 0x24]
+ movs r0, 0xA
+ strh r0, [r5, 0x26]
+ movs r0, 0x1C
+ add r8, r0
+ add r4, r8
+ ldr r0, _0806DB8C @ =SpriteCB_HeldItemIcon
+ str r0, [r4]
+ strh r6, [r5, 0x3C]
+ adds r0, r5, 0
+ mov r1, r9
+ bl StartSpriteAnim
+ ldr r1, [r4]
+ adds r0, r5, 0
+ bl _call_via_r1
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806DB84: .4byte gSprites
+_0806DB88: .4byte gSpriteTemplate_837660C
+_0806DB8C: .4byte SpriteCB_HeldItemIcon
+ thumb_func_end CreateHeldItemIcon
+
+ thumb_func_start CreateHeldItemIcons
+CreateHeldItemIcons: @ 806DB90
+ push {r4-r7,lr}
+ adds r6, r0, 0
+ adds r7, r1, 0
+ lsls r2, 24
+ lsrs r2, 24
+ cmp r2, 0
+ beq _0806DBA4
+ cmp r2, 0x1
+ beq _0806DBEC
+ b _0806DC28
+_0806DBA4:
+ movs r5, 0
+ ldrb r0, [r6]
+ cmp r5, r0
+ bcs _0806DC28
+_0806DBAC:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0806DBE8 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0xC
+ bl GetMonData
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0
+ beq _0806DBD8
+ adds r0, r7, r5
+ ldrb r4, [r0]
+ adds r0, r1, 0
+ bl itemid_is_mail
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl CreateHeldItemIcon
+_0806DBD8:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldrb r0, [r6]
+ cmp r5, r0
+ bcc _0806DBAC
+ b _0806DC28
+ .align 2, 0
+_0806DBE8: .4byte gPlayerParty
+_0806DBEC:
+ movs r5, 0
+ b _0806DC22
+_0806DBF0:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0806DC30 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0xC
+ bl GetMonData
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0
+ beq _0806DC1C
+ adds r0, r5, r7
+ ldrb r4, [r0, 0x6]
+ adds r0, r1, 0
+ bl itemid_is_mail
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl CreateHeldItemIcon
+_0806DC1C:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+_0806DC22:
+ ldrb r0, [r6, 0x1]
+ cmp r5, r0
+ bcc _0806DBF0
+_0806DC28:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806DC30: .4byte gEnemyParty
+ thumb_func_end CreateHeldItemIcons
+
+ thumb_func_start CreateHeldItemIcons_806DC34
+CreateHeldItemIcons_806DC34: @ 806DC34
+ 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
+ movs r7, 0
+ ldr r0, _0806DCC8 @ =gSprites
+ mov r9, r0
+ movs r1, 0x1C
+ add r1, r9
+ mov r10, r1
+_0806DC50:
+ movs r0, 0x64
+ muls r0, r7
+ ldr r1, _0806DCCC @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _0806DCB0
+ mov r0, r8
+ adds r1, r7, 0
+ bl GetMonIconSpriteId_maybe
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r0, _0806DCD0 @ =gSpriteTemplate_837660C
+ movs r1, 0xFA
+ movs r2, 0xAA
+ movs r3, 0x4
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 4
+ adds r4, r0
+ lsls r4, 2
+ mov r1, r9
+ adds r6, r4, r1
+ movs r1, 0x4
+ strh r1, [r6, 0x24]
+ movs r1, 0xA
+ strh r1, [r6, 0x26]
+ strh r5, [r6, 0x3C]
+ lsls r1, r5, 4
+ adds r1, r5
+ lsls r1, 2
+ add r1, r9
+ strh r0, [r1, 0x3C]
+ mov r0, r8
+ adds r1, r7, 0
+ bl SetHeldItemIconVisibility
+ add r4, r10
+ ldr r1, [r4]
+ adds r0, r6, 0
+ bl _call_via_r1
+_0806DCB0:
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ cmp r7, 0x5
+ bls _0806DC50
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806DCC8: .4byte gSprites
+_0806DCCC: .4byte gPlayerParty
+_0806DCD0: .4byte gSpriteTemplate_837660C
+ thumb_func_end CreateHeldItemIcons_806DC34
+
+ thumb_func_start CreateHeldItemIcon_806DCD4
+CreateHeldItemIcon_806DCD4: @ 806DCD4
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r2, 16
+ lsrs r7, r2, 16
+ bl GetMonIconSpriteId_maybe
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _0806DD2C @ =gSpriteTemplate_837660C
+ movs r1, 0xFA
+ movs r2, 0xAA
+ movs r3, 0x4
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r1, _0806DD30 @ =gSprites
+ lsls r0, r6, 4
+ adds r0, r6
+ lsls r0, 2
+ adds r5, r0, r1
+ movs r0, 0x4
+ strh r0, [r5, 0x24]
+ movs r0, 0xA
+ strh r0, [r5, 0x26]
+ strh r4, [r5, 0x3C]
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ adds r0, r1
+ strh r6, [r0, 0x3C]
+ cmp r7, 0
+ bne _0806DD34
+ adds r0, r5, 0
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ b _0806DD5C
+ .align 2, 0
+_0806DD2C: .4byte gSpriteTemplate_837660C
+_0806DD30: .4byte gSprites
+_0806DD34:
+ adds r0, r7, 0
+ bl itemid_is_mail
+ lsls r0, 24
+ cmp r0, 0
+ beq _0806DD46
+ adds r0, r5, 0
+ movs r1, 0x1
+ b _0806DD4A
+_0806DD46:
+ adds r0, r5, 0
+ movs r1, 0
+_0806DD4A:
+ bl StartSpriteAnim
+ adds r2, r5, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+_0806DD5C:
+ ldr r2, _0806DD78 @ =gSprites
+ lsls r0, r6, 4
+ adds r0, r6
+ lsls r0, 2
+ adds r1, r2, 0
+ adds r1, 0x1C
+ adds r1, r0, r1
+ adds r0, r2
+ ldr r1, [r1]
+ bl _call_via_r1
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806DD78: .4byte gSprites
+ thumb_func_end CreateHeldItemIcon_806DCD4
+
+ thumb_func_start SpriteCB_HeldItemIcon_806DD7C
+SpriteCB_HeldItemIcon_806DD7C: @ 806DD7C
+ ldrh r2, [r0, 0x3C]
+ lsls r2, 24
+ lsrs r2, 24
+ ldr r3, _0806DD9C @ =gSprites
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r3
+ ldrh r2, [r1, 0x24]
+ ldrh r3, [r1, 0x20]
+ adds r2, r3
+ strh r2, [r0, 0x20]
+ ldrh r1, [r1, 0x22]
+ strh r1, [r0, 0x22]
+ bx lr
+ .align 2, 0
+_0806DD9C: .4byte gSprites
+ thumb_func_end SpriteCB_HeldItemIcon_806DD7C
+
+ thumb_func_start GetMonIconSpriteId_maybe
+GetMonIconSpriteId_maybe: @ 806DDA0
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r1, 24
+ lsrs r0, r1, 24
+ cmp r0, 0x5
+ bhi _0806DE38
+ lsls r0, 2
+ ldr r1, _0806DDB8 @ =_0806DDBC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0806DDB8: .4byte _0806DDBC
+ .align 2, 0
+_0806DDBC:
+ .4byte _0806DE38
+ .4byte _0806DDD4
+ .4byte _0806DDE8
+ .4byte _0806DDFC
+ .4byte _0806DE10
+ .4byte _0806DE24
+_0806DDD4:
+ ldr r0, _0806DDE4 @ =gTasks
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 3
+ adds r1, r0
+ ldrb r0, [r1, 0x8]
+ b _0806DE46
+ .align 2, 0
+_0806DDE4: .4byte gTasks
+_0806DDE8:
+ ldr r0, _0806DDF8 @ =gTasks
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0xA]
+ b _0806DE44
+ .align 2, 0
+_0806DDF8: .4byte gTasks
+_0806DDFC:
+ ldr r0, _0806DE0C @ =gTasks
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 3
+ adds r1, r0
+ ldrb r0, [r1, 0xA]
+ b _0806DE46
+ .align 2, 0
+_0806DE0C: .4byte gTasks
+_0806DE10:
+ ldr r0, _0806DE20 @ =gTasks
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0xC]
+ b _0806DE44
+ .align 2, 0
+_0806DE20: .4byte gTasks
+_0806DE24:
+ ldr r0, _0806DE34 @ =gTasks
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 3
+ adds r1, r0
+ ldrb r0, [r1, 0xC]
+ b _0806DE46
+ .align 2, 0
+_0806DE34: .4byte gTasks
+_0806DE38:
+ ldr r0, _0806DE4C @ =gTasks
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x8]
+_0806DE44:
+ lsrs r0, 8
+_0806DE46:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0806DE4C: .4byte gTasks
+ thumb_func_end GetMonIconSpriteId_maybe
+
+ thumb_func_start SetMonIconSpriteId_maybe
+SetMonIconSpriteId_maybe: @ 806DE50
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ lsls r1, 24
+ lsrs r0, r1, 24
+ lsls r2, 24
+ lsrs r4, r2, 24
+ cmp r0, 0x5
+ bhi _0806DF24
+ lsls r0, 2
+ ldr r1, _0806DE6C @ =_0806DE70
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0806DE6C: .4byte _0806DE70
+ .align 2, 0
+_0806DE70:
+ .4byte _0806DE88
+ .4byte _0806DEA0
+ .4byte _0806DEC0
+ .4byte _0806DED8
+ .4byte _0806DEF8
+ .4byte _0806DF10
+_0806DE88:
+ ldr r1, _0806DE9C @ =gTasks
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ adds r0, r1
+ ldrb r1, [r0, 0x8]
+ lsls r2, r4, 8
+ orrs r1, r2
+ strh r1, [r0, 0x8]
+ b _0806DF24
+ .align 2, 0
+_0806DE9C: .4byte gTasks
+_0806DEA0:
+ ldr r0, _0806DEB8 @ =gTasks
+ lsls r1, r3, 2
+ adds r1, r3
+ lsls r1, 3
+ adds r1, r0
+ ldrh r2, [r1, 0x8]
+ ldr r0, _0806DEBC @ =0xffffff00
+ ands r0, r2
+ orrs r0, r4
+ strh r0, [r1, 0x8]
+ b _0806DF24
+ .align 2, 0
+_0806DEB8: .4byte gTasks
+_0806DEBC: .4byte 0xffffff00
+_0806DEC0:
+ ldr r1, _0806DED4 @ =gTasks
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ adds r0, r1
+ ldrb r1, [r0, 0xA]
+ lsls r2, r4, 8
+ orrs r1, r2
+ strh r1, [r0, 0xA]
+ b _0806DF24
+ .align 2, 0
+_0806DED4: .4byte gTasks
+_0806DED8:
+ ldr r0, _0806DEF0 @ =gTasks
+ lsls r1, r3, 2
+ adds r1, r3
+ lsls r1, 3
+ adds r1, r0
+ ldrh r2, [r1, 0xA]
+ ldr r0, _0806DEF4 @ =0xffffff00
+ ands r0, r2
+ orrs r0, r4
+ strh r0, [r1, 0xA]
+ b _0806DF24
+ .align 2, 0
+_0806DEF0: .4byte gTasks
+_0806DEF4: .4byte 0xffffff00
+_0806DEF8:
+ ldr r1, _0806DF0C @ =gTasks
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ adds r0, r1
+ ldrb r1, [r0, 0xC]
+ lsls r2, r4, 8
+ orrs r1, r2
+ strh r1, [r0, 0xC]
+ b _0806DF24
+ .align 2, 0
+_0806DF0C: .4byte gTasks
+_0806DF10:
+ ldr r0, _0806DF2C @ =gTasks
+ lsls r1, r3, 2
+ adds r1, r3
+ lsls r1, 3
+ adds r1, r0
+ ldrh r2, [r1, 0xC]
+ ldr r0, _0806DF30 @ =0xffffff00
+ ands r0, r2
+ orrs r0, r4
+ strh r0, [r1, 0xC]
+_0806DF24:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806DF2C: .4byte gTasks
+_0806DF30: .4byte 0xffffff00
+ thumb_func_end SetMonIconSpriteId_maybe
+
+ thumb_func_start GetHeldItemIconSpriteIdByMon_maybe
+GetHeldItemIconSpriteIdByMon_maybe: @ 806DF34
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ bl GetMonIconSpriteId_maybe
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0806DF5C @ =gSprites
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldrh r0, [r1, 0x3C]
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0806DF5C: .4byte gSprites
+ thumb_func_end GetHeldItemIconSpriteIdByMon_maybe
+
+ thumb_func_start SetHeldItemIconVisibility
+SetHeldItemIconVisibility: @ 806DF60
+ push {r4-r6,lr}
+ adds r4, r1, 0
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, 24
+ lsrs r4, 24
+ adds r1, r4, 0
+ bl GetHeldItemIconSpriteIdByMon_maybe
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r6, r5, 0
+ movs r0, 0x64
+ adds r1, r4, 0
+ muls r1, r0
+ ldr r0, _0806DFA4 @ =gPlayerParty
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0xC
+ bl GetMonData
+ cmp r0, 0
+ bne _0806DFAC
+ ldr r1, _0806DFA8 @ =gSprites
+ lsls r0, r5, 4
+ adds r0, r5
+ lsls r0, 2
+ adds r0, r1
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ b _0806DFF6
+ .align 2, 0
+_0806DFA4: .4byte gPlayerParty
+_0806DFA8: .4byte gSprites
+_0806DFAC:
+ adds r0, r4, 0
+ movs r1, 0xC
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ bl itemid_is_mail
+ lsls r0, 24
+ cmp r0, 0
+ beq _0806DFD8
+ lsls r4, r5, 4
+ adds r4, r5
+ lsls r4, 2
+ ldr r0, _0806DFD4 @ =gSprites
+ adds r4, r0
+ adds r0, r4, 0
+ movs r1, 0x1
+ b _0806DFE6
+ .align 2, 0
+_0806DFD4: .4byte gSprites
+_0806DFD8:
+ lsls r4, r6, 4
+ adds r4, r6
+ lsls r4, 2
+ ldr r0, _0806DFFC @ =gSprites
+ adds r4, r0
+ adds r0, r4, 0
+ movs r1, 0
+_0806DFE6:
+ bl StartSpriteAnim
+ adds r4, 0x3E
+ ldrb r1, [r4]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r4]
+_0806DFF6:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806DFFC: .4byte gSprites
+ thumb_func_end SetHeldItemIconVisibility
+
+ thumb_func_start box_print
+box_print: @ 806E000
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ adds r6, r2, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0
+ str r0, [sp]
+ ldr r5, _0806E040 @ =gTileBuffer
+ ldr r2, _0806E044 @ =0x01000100
+ mov r0, sp
+ adds r1, r5, 0
+ bl CpuFastSet
+ ldr r0, _0806E048 @ =gWindowConfig_81E6CAC
+ adds r1, r5, 0
+ adds r2, r6, 0
+ bl sub_8004E3C
+ lsls r4, 10
+ ldr r0, _0806E04C @ =0x06014000
+ adds r4, r0
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r2, 0x80
+ bl CpuFastSet
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806E040: .4byte gTileBuffer
+_0806E044: .4byte 0x01000100
+_0806E048: .4byte gWindowConfig_81E6CAC
+_0806E04C: .4byte 0x06014000
+ thumb_func_end box_print
+
+ thumb_func_start PrintPartyMenuMonNickname
+PrintPartyMenuMonNickname: @ 806E050
+ push {r4,r5,lr}
+ sub sp, 0xC
+ adds r4, r0, 0
+ adds r5, r1, 0
+ adds r0, r2, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, 24
+ lsrs r5, 24
+ mov r1, sp
+ bl GetMonNickname
+ adds r0, r4, 0
+ adds r1, r5, 0
+ mov r2, sp
+ bl box_print
+ add sp, 0xC
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end PrintPartyMenuMonNickname
+
+ thumb_func_start TryPrintPartyMenuMonNickname
+TryPrintPartyMenuMonNickname: @ 806E07C
+ push {r4-r6,lr}
+ adds r4, r1, 0
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r6, r5, 0
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _0806E0BC
+ bl IsLinkDoubleBattle
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806E0AA
+ adds r0, r5, 0
+ movs r1, 0x2
+ adds r2, r4, 0
+ bl PrintPartyMenuMonNickname
+ b _0806E0BC
+_0806E0AA:
+ bl IsDoubleBattle
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r6, 0
+ adds r2, r4, 0
+ bl PrintPartyMenuMonNickname
+_0806E0BC:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end TryPrintPartyMenuMonNickname
+
+ thumb_func_start PrintPartyMenuMonNicknames
+PrintPartyMenuMonNicknames: @ 806E0C4
+ push {r4-r6,lr}
+ movs r4, 0
+ movs r6, 0x64
+ ldr r5, _0806E0E8 @ =gPlayerParty
+_0806E0CC:
+ adds r1, r4, 0
+ muls r1, r6
+ adds r1, r5
+ adds r0, r4, 0
+ bl TryPrintPartyMenuMonNickname
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x5
+ bls _0806E0CC
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806E0E8: .4byte gPlayerParty
+ thumb_func_end PrintPartyMenuMonNicknames
+
+ thumb_func_start GetMonNickname
+GetMonNickname: @ 806E0EC
+ push {r4,lr}
+ adds r4, r1, 0
+ movs r1, 0x2
+ adds r2, r4, 0
+ bl GetMonData
+ adds r0, r4, 0
+ bl StringGetEnd10
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end GetMonNickname
+
+ thumb_func_start PartyMenuPutStatusTilemap
+PartyMenuPutStatusTilemap: @ 806E104
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r4, _0806E15C @ =gUnknown_08376738
+ lsrs r0, 22
+ lsls r3, r1, 1
+ adds r3, r1
+ lsls r3, 3
+ adds r0, r3
+ adds r0, r4
+ ldrb r1, [r0]
+ subs r1, 0x1
+ lsls r1, 24
+ lsrs r1, 24
+ ldrb r0, [r0, 0x1]
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 19
+ adds r1, r0
+ lsls r1, 1
+ ldr r0, _0806E160 @ =0x0600f000
+ adds r4, r1, r0
+ lsls r2, 26
+ lsrs r2, 24
+ movs r3, 0
+ movs r0, 0xC6
+ lsls r0, 1
+ adds r2, r0
+ ldr r0, _0806E164 @ =0xffffb000
+ adds r5, r0, 0
+_0806E142:
+ lsls r0, r3, 1
+ adds r0, r4
+ adds r1, r2, r3
+ orrs r1, r5
+ strh r1, [r0]
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x3
+ bls _0806E142
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806E15C: .4byte gUnknown_08376738
+_0806E160: .4byte 0x0600f000
+_0806E164: .4byte 0xffffb000
+ thumb_func_end PartyMenuPutStatusTilemap
+
+ thumb_func_start PartyMenuClearLevelStatusTilemap
+PartyMenuClearLevelStatusTilemap: @ 806E168
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl IsLinkDoubleBattle
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806E17E
+ movs r3, 0x2
+ b _0806E186
+_0806E17E:
+ bl IsDoubleBattle
+ lsls r0, 24
+ lsrs r3, r0, 24
+_0806E186:
+ ldr r1, _0806E1C8 @ =gUnknown_08376738
+ lsls r2, r4, 2
+ lsls r0, r3, 1
+ adds r0, r3
+ lsls r0, 3
+ adds r2, r0
+ adds r2, r1
+ ldrb r1, [r2]
+ subs r1, 0x1
+ lsls r1, 24
+ lsrs r1, 24
+ ldrb r0, [r2, 0x1]
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 19
+ adds r1, r0
+ lsls r1, 1
+ ldr r0, _0806E1CC @ =0x0600f000
+ adds r1, r0
+ movs r3, 0
+ movs r2, 0
+_0806E1B0:
+ lsls r0, r3, 1
+ adds r0, r1
+ strh r2, [r0]
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x3
+ bls _0806E1B0
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806E1C8: .4byte gUnknown_08376738
+_0806E1CC: .4byte 0x0600f000
+ thumb_func_end PartyMenuClearLevelStatusTilemap
+
+ thumb_func_start PartyMenuWriteTilemap
+PartyMenuWriteTilemap: @ 806E1D0
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r2, 24
+ lsrs r2, 19
+ adds r1, r2
+ lsls r1, 1
+ ldr r2, _0806E1F0 @ =0x0600f000
+ adds r1, r2
+ movs r2, 0x86
+ lsls r2, 1
+ adds r0, r2
+ strh r0, [r1]
+ bx lr
+ .align 2, 0
+_0806E1F0: .4byte 0x0600f000
+ thumb_func_end PartyMenuWriteTilemap
+
+ thumb_func_start PartyMenuDoPrintLevel
+PartyMenuDoPrintLevel: @ 806E1F4
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ adds r5, r2, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r3, _0806E278 @ =gUnknown_08376738
+ lsls r2, r4, 2
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ adds r2, r0
+ adds r2, r3
+ ldrb r1, [r2]
+ ldrb r2, [r2, 0x1]
+ subs r1, 0x1
+ lsls r1, 24
+ lsrs r1, 24
+ adds r2, 0x1
+ lsls r2, 24
+ lsrs r2, 24
+ movs r0, 0x40
+ bl PartyMenuWriteTilemap
+ ldr r6, _0806E27C @ =gStringVar1
+ movs r0, 0xFC
+ strb r0, [r6]
+ movs r0, 0x12
+ strb r0, [r6, 0x1]
+ movs r0, 0x8
+ strb r0, [r6, 0x2]
+ adds r0, r6, 0x3
+ adds r1, r5, 0
+ bl ConvertIntToDecimalString
+ movs r0, 0
+ str r0, [sp]
+ ldr r5, _0806E280 @ =gUnknown_02039460
+ ldr r2, _0806E284 @ =0x01000020
+ mov r0, sp
+ adds r1, r5, 0
+ bl CpuFastSet
+ ldr r0, _0806E288 @ =gWindowConfig_81E6CAC
+ ldr r2, _0806E28C @ =0xffffff00
+ adds r1, r5, r2
+ adds r2, r6, 0
+ bl sub_8004E3C
+ lsls r4, 10
+ ldr r0, _0806E290 @ =0x06014200
+ adds r4, r0
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r2, 0x20
+ bl CpuFastSet
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806E278: .4byte gUnknown_08376738
+_0806E27C: .4byte gStringVar1
+_0806E280: .4byte gUnknown_02039460
+_0806E284: .4byte 0x01000020
+_0806E288: .4byte gWindowConfig_81E6CAC
+_0806E28C: .4byte 0xffffff00
+_0806E290: .4byte 0x06014200
+ thumb_func_end PartyMenuDoPrintLevel
+
+ thumb_func_start PartyMenuPrintLevel
+PartyMenuPrintLevel: @ 806E294
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ adds r0, r2, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, 24
+ lsrs r5, 24
+ movs r1, 0x38
+ bl GetMonData
+ adds r2, r0, 0
+ lsls r2, 24
+ lsrs r2, 24
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl PartyMenuDoPrintLevel
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end PartyMenuPrintLevel
+
+ thumb_func_start PartyMenuPrintMonLevelOrStatus
+PartyMenuPrintMonLevelOrStatus: @ 806E2C0
+ push {r4-r7,lr}
+ adds r5, r1, 0
+ lsls r0, 24
+ lsrs r7, r0, 24
+ adds r0, r5, 0
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _0806E32E
+ adds r0, r5, 0
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0
+ bne _0806E32E
+ adds r0, r5, 0
+ bl GetMonStatusAndPokerus
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl IsLinkDoubleBattle
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806E2FA
+ movs r6, 0x2
+ b _0806E302
+_0806E2FA:
+ bl IsDoubleBattle
+ lsls r0, 24
+ lsrs r6, r0, 24
+_0806E302:
+ cmp r4, 0
+ beq _0806E31A
+ cmp r4, 0x6
+ beq _0806E31A
+ subs r2, r4, 0x1
+ lsls r2, 24
+ lsrs r2, 24
+ adds r0, r7, 0
+ adds r1, r6, 0
+ bl PartyMenuPutStatusTilemap
+ b _0806E324
+_0806E31A:
+ adds r0, r7, 0
+ adds r1, r6, 0
+ adds r2, r5, 0
+ bl PartyMenuPrintLevel
+_0806E324:
+ adds r0, r7, 0
+ adds r1, r6, 0
+ adds r2, r5, 0
+ bl PartyMenuPutNicknameTilemap
+_0806E32E:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end PartyMenuPrintMonLevelOrStatus
+
+ thumb_func_start PartyMenuPrintMonsLevelOrStatus
+PartyMenuPrintMonsLevelOrStatus: @ 806E334
+ push {r4-r6,lr}
+ movs r4, 0
+ movs r6, 0x64
+ ldr r5, _0806E358 @ =gPlayerParty
+_0806E33C:
+ adds r1, r4, 0
+ muls r1, r6
+ adds r1, r5
+ adds r0, r4, 0
+ bl PartyMenuPrintMonLevelOrStatus
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x5
+ bls _0806E33C
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806E358: .4byte gPlayerParty
+ thumb_func_end PartyMenuPrintMonsLevelOrStatus
+
+ thumb_func_start PartyMenuDoPutNicknameTilemap
+PartyMenuDoPutNicknameTilemap: @ 806E35C
+ push {r4-r7,lr}
+ ldr r4, [sp, 0x14]
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r1, 24
+ lsrs r7, r1, 24
+ lsls r2, 24
+ lsrs r5, r2, 24
+ lsls r3, 24
+ lsrs r6, r3, 24
+ adds r1, r4, 0
+ bl sub_8040D8C
+ cmp r0, 0
+ bne _0806E3BA
+ ldr r2, _0806E3A4 @ =gUnknown_08376738
+ lsls r1, r6, 2
+ lsls r0, r5, 1
+ adds r0, r5
+ lsls r0, 3
+ adds r1, r0
+ adds r1, r2
+ ldrb r0, [r1]
+ adds r0, 0x3
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldrb r0, [r1, 0x1]
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r7, 0
+ beq _0806E3A8
+ cmp r7, 0xFE
+ beq _0806E3B2
+ b _0806E3BA
+ .align 2, 0
+_0806E3A4: .4byte gUnknown_08376738
+_0806E3A8:
+ movs r0, 0x42
+ adds r1, r3, 0
+ bl PartyMenuWriteTilemap
+ b _0806E3BA
+_0806E3B2:
+ movs r0, 0x44
+ adds r1, r3, 0
+ bl PartyMenuWriteTilemap
+_0806E3BA:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end PartyMenuDoPutNicknameTilemap
+
+ thumb_func_start PartyMenuPutNicknameTilemap
+PartyMenuPutNicknameTilemap: @ 806E3C0
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ sub sp, 0x4
+ mov r8, r0
+ adds r6, r1, 0
+ adds r5, r2, 0
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ lsls r6, 24
+ lsrs r6, 24
+ ldr r0, _0806E41C @ =gStringVar1
+ mov r9, r0
+ adds r0, r5, 0
+ mov r1, r9
+ bl GetMonNickname
+ adds r0, r5, 0
+ movs r1, 0x41
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r5, 0
+ bl GetMonGender
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ mov r0, r9
+ str r0, [sp]
+ adds r0, r4, 0
+ adds r2, r6, 0
+ mov r3, r8
+ bl PartyMenuDoPutNicknameTilemap
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806E41C: .4byte gStringVar1
+ thumb_func_end PartyMenuPutNicknameTilemap
+
+ thumb_func_start PartyMenuDoPrintHP
+PartyMenuDoPrintHP: @ 806E420
+ push {r4,r5,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ adds r1, r2, 0
+ adds r5, r3, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r1, 16
+ lsrs r1, 16
+ lsls r5, 16
+ lsrs r5, 16
+ ldr r2, _0806E48C @ =gStringVar1
+ adds r0, r2, 0
+ movs r2, 0xF
+ movs r3, 0x1
+ bl sub_8072C14
+ adds r2, r0, 0
+ movs r0, 0xBA
+ strb r0, [r2]
+ adds r2, 0x1
+ adds r0, r2, 0
+ adds r1, r5, 0
+ movs r2, 0x23
+ movs r3, 0x1
+ bl sub_8072C14
+ movs r0, 0
+ str r0, [sp]
+ ldr r5, _0806E490 @ =gUnknown_02039460
+ ldr r2, _0806E494 @ =0x01000040
+ mov r0, sp
+ adds r1, r5, 0
+ bl CpuFastSet
+ ldr r0, _0806E498 @ =gWindowConfig_81E6CAC
+ ldr r2, _0806E49C @ =0xffffff00
+ adds r1, r5, r2
+ ldr r2, _0806E48C @ =gStringVar1
+ bl sub_8004E3C
+ lsls r4, 10
+ ldr r0, _0806E4A0 @ =0x06014300
+ adds r4, r0
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r2, 0x40
+ bl CpuFastSet
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806E48C: .4byte gStringVar1
+_0806E490: .4byte gUnknown_02039460
+_0806E494: .4byte 0x01000040
+_0806E498: .4byte gWindowConfig_81E6CAC
+_0806E49C: .4byte 0xffffff00
+_0806E4A0: .4byte 0x06014300
+ thumb_func_end PartyMenuDoPrintHP
+
+ thumb_func_start PartyMenuPrintHP
+PartyMenuPrintHP: @ 806E4A4
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ adds r5, r0, 0
+ adds r6, r1, 0
+ mov r8, r2
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r6, 24
+ lsrs r6, 24
+ mov r0, r8
+ movs r1, 0x39
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ mov r0, r8
+ movs r1, 0x3A
+ bl GetMonData
+ adds r3, r0, 0
+ lsls r3, 16
+ lsrs r3, 16
+ adds r0, r5, 0
+ adds r1, r6, 0
+ adds r2, r4, 0
+ bl PartyMenuDoPrintHP
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end PartyMenuPrintHP
+
+ thumb_func_start PartyMenuTryPrintHP
+PartyMenuTryPrintHP: @ 806E4E8
+ push {r4-r6,lr}
+ adds r4, r1, 0
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r6, r5, 0
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _0806E534
+ adds r0, r4, 0
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0
+ bne _0806E534
+ bl IsLinkDoubleBattle
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806E522
+ adds r0, r5, 0
+ movs r1, 0x2
+ adds r2, r4, 0
+ bl PartyMenuPrintHP
+ b _0806E534
+_0806E522:
+ bl IsDoubleBattle
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r6, 0
+ adds r2, r4, 0
+ bl PartyMenuPrintHP
+_0806E534:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end PartyMenuTryPrintHP
+
+ thumb_func_start PartyMenuTryPrintMonsHP
+PartyMenuTryPrintMonsHP: @ 806E53C
+ push {r4-r6,lr}
+ movs r4, 0
+ movs r6, 0x64
+ ldr r5, _0806E560 @ =gPlayerParty
+_0806E544:
+ adds r1, r4, 0
+ muls r1, r6
+ adds r1, r5
+ adds r0, r4, 0
+ bl PartyMenuTryPrintHP
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x5
+ bls _0806E544
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806E560: .4byte gPlayerParty
+ thumb_func_end PartyMenuTryPrintMonsHP
+
+ thumb_func_start unref_sub_806E564
+unref_sub_806E564: @ 806E564
+ bx lr
+ thumb_func_end unref_sub_806E564
+
+ thumb_func_start unref_sub_806E568
+unref_sub_806E568: @ 806E568
+ bx lr
+ thumb_func_end unref_sub_806E568
+
+ thumb_func_start nullsub_12
+nullsub_12: @ 806E56C
+ bx lr
+ thumb_func_end nullsub_12
+
+ thumb_func_start nullsub_13
+nullsub_13: @ 806E570
+ bx lr
+ thumb_func_end nullsub_13
+
+ thumb_func_start PartyMenuDoDrawHPBar
+PartyMenuDoDrawHPBar: @ 806E574
+ push {r4-r6,lr}
+ sub sp, 0x18
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r1, 24
+ lsrs r5, r1, 24
+ lsls r2, 16
+ lsrs r2, 16
+ lsls r3, 16
+ lsrs r3, 16
+ ldr r0, _0806E624 @ =0xffff8000
+ str r0, [sp, 0x14]
+ str r3, [sp]
+ str r2, [sp, 0x4]
+ movs r0, 0
+ str r0, [sp, 0x8]
+ lsls r2, 16
+ asrs r2, 16
+ lsls r3, 16
+ asrs r3, 16
+ adds r0, r2, 0
+ adds r1, r3, 0
+ bl GetHPBarLevel
+ lsls r0, 24
+ lsrs r3, r0, 24
+ adds r4, r3, 0
+ cmp r3, 0x2
+ bls _0806E5BE
+ mov r2, sp
+ ldrb r1, [r2, 0xC]
+ movs r0, 0x20
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2, 0xC]
+_0806E5BE:
+ cmp r3, 0x2
+ bne _0806E5D2
+ mov r2, sp
+ ldrb r1, [r2, 0xC]
+ movs r0, 0x20
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x5
+ orrs r0, r1
+ strb r0, [r2, 0xC]
+_0806E5D2:
+ cmp r4, 0x1
+ bhi _0806E5E6
+ mov r2, sp
+ ldrb r1, [r2, 0xC]
+ movs r0, 0x20
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x6
+ orrs r0, r1
+ strb r0, [r2, 0xC]
+_0806E5E6:
+ movs r0, 0x80
+ lsls r0, 1
+ str r0, [sp, 0x10]
+ ldr r2, _0806E628 @ =gUnknown_08376858
+ lsls r1, r6, 2
+ lsls r0, r5, 1
+ adds r0, r5
+ lsls r0, 3
+ adds r1, r0
+ adds r1, r2
+ ldr r4, [r1]
+ add r1, sp, 0x14
+ mov r0, sp
+ adds r2, r4, 0
+ movs r3, 0
+ bl sub_80460C8
+ subs r4, 0x4
+ ldr r1, _0806E62C @ =0x00003109
+ adds r0, r1, 0
+ strh r0, [r4]
+ adds r1, 0x1
+ adds r0, r1, 0
+ strh r0, [r4, 0x2]
+ adds r1, 0x1
+ adds r0, r1, 0
+ strh r0, [r4, 0x10]
+ add sp, 0x18
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806E624: .4byte 0xffff8000
+_0806E628: .4byte gUnknown_08376858
+_0806E62C: .4byte 0x00003109
+ thumb_func_end PartyMenuDoDrawHPBar
+
+ thumb_func_start PartyMenuDrawHPBar
+PartyMenuDrawHPBar: @ 806E630
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ adds r5, r0, 0
+ adds r6, r1, 0
+ mov r8, r2
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r6, 24
+ lsrs r6, 24
+ mov r0, r8
+ movs r1, 0x39
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ mov r0, r8
+ movs r1, 0x3A
+ bl GetMonData
+ adds r3, r0, 0
+ lsls r3, 16
+ lsrs r3, 16
+ adds r0, r5, 0
+ adds r1, r6, 0
+ adds r2, r4, 0
+ bl PartyMenuDoDrawHPBar
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end PartyMenuDrawHPBar
+
+ thumb_func_start PartyMenuTryDrawHPBar
+PartyMenuTryDrawHPBar: @ 806E674
+ push {r4-r6,lr}
+ adds r4, r1, 0
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r6, r5, 0
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _0806E6C0
+ adds r0, r4, 0
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0
+ bne _0806E6C0
+ bl IsLinkDoubleBattle
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806E6AE
+ adds r0, r5, 0
+ movs r1, 0x2
+ adds r2, r4, 0
+ bl PartyMenuDrawHPBar
+ b _0806E6C0
+_0806E6AE:
+ bl IsDoubleBattle
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r6, 0
+ adds r2, r4, 0
+ bl PartyMenuDrawHPBar
+_0806E6C0:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end PartyMenuTryDrawHPBar
+
+ thumb_func_start PartyMenuDrawHPBars
+PartyMenuDrawHPBars: @ 806E6C8
+ push {r4-r6,lr}
+ movs r4, 0
+ movs r6, 0x64
+ ldr r5, _0806E6EC @ =gPlayerParty
+_0806E6D0:
+ adds r1, r4, 0
+ muls r1, r6
+ adds r1, r5
+ adds r0, r4, 0
+ bl PartyMenuTryDrawHPBar
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x5
+ bls _0806E6D0
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806E6EC: .4byte gPlayerParty
+ thumb_func_end PartyMenuDrawHPBars
+
+ thumb_func_start sub_806E6F0
+sub_806E6F0: @ 806E6F0
+ push {r4,r5,lr}
+ sub sp, 0x64
+ adds r4, r0, 0
+ adds r5, r1, 0
+ mov r0, sp
+ adds r1, r4, 0
+ movs r2, 0x64
+ bl memcpy
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0x64
+ bl memcpy
+ adds r0, r5, 0
+ mov r1, sp
+ movs r2, 0x64
+ bl memcpy
+ add sp, 0x64
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_806E6F0
+
+ thumb_func_start sub_806E720
+sub_806E720: @ 806E720
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 21
+ adds r0, r3
+ ldrb r4, [r0]
+ lsls r4, 25
+ movs r3, 0x80
+ lsls r3, 18
+ adds r4, r3
+ lsrs r4, 24
+ ldrb r0, [r0, 0x1]
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ movs r3, 0x1E
+ subs r3, r0
+ strb r3, [r1]
+ movs r0, 0x14
+ subs r0, r4
+ strb r0, [r2]
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_806E720
+
+ thumb_func_start sub_806E750
+sub_806E750: @ 806E750
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ sub sp, 0xC
+ adds r5, r0, 0
+ adds r4, r1, 0
+ mov r9, r2
+ adds r6, r3, 0
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r6, 24
+ lsrs r6, 24
+ movs r0, 0x9
+ add r0, sp
+ mov r8, r0
+ adds r0, r5, 0
+ add r1, sp, 0x8
+ mov r2, r8
+ adds r3, r4, 0
+ bl sub_806E720
+ add r0, sp, 0x8
+ ldrb r0, [r0]
+ mov r2, r8
+ ldrb r1, [r2]
+ lsls r5, 3
+ adds r5, r4
+ ldrb r2, [r5, 0x1]
+ ldrb r3, [r5]
+ mov r4, r9
+ str r4, [sp]
+ ldr r4, [r5, 0x4]
+ str r4, [sp, 0x4]
+ bl sub_8089C50
+ add r0, sp, 0x8
+ ldrb r1, [r0]
+ adds r1, 0x1
+ lsls r1, 24
+ lsrs r1, 24
+ mov r0, r8
+ ldrb r2, [r0]
+ adds r2, 0x1
+ lsls r2, 24
+ lsrs r2, 24
+ ldrb r3, [r5]
+ str r6, [sp]
+ ldrb r0, [r5, 0x1]
+ subs r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x4]
+ movs r0, 0
+ bl InitMenu
+ add sp, 0xC
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_806E750
+
+ thumb_func_start sub_806E7D0
+sub_806E7D0: @ 806E7D0
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ adds r6, r1, 0
+ lsls r4, 24
+ lsrs r4, 24
+ mov r5, sp
+ adds r5, 0x1
+ adds r0, r4, 0
+ mov r1, sp
+ adds r2, r5, 0
+ adds r3, r6, 0
+ bl sub_806E720
+ mov r0, sp
+ ldrb r0, [r0]
+ ldrb r1, [r5]
+ lsls r4, 3
+ adds r4, r6
+ ldrb r2, [r4, 0x1]
+ adds r2, r0, r2
+ lsls r2, 24
+ lsrs r2, 24
+ ldrb r3, [r4]
+ lsls r3, 1
+ adds r3, r1, r3
+ adds r3, 0x1
+ lsls r3, 24
+ lsrs r3, 24
+ bl MenuZeroFillWindowRect
+ bl sub_8072DEC
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_806E7D0
+
+ thumb_func_start sub_806E81C
+sub_806E81C: @ 806E81C
+ lsls r0, 24
+ lsls r3, 24
+ lsrs r3, 24
+ lsrs r0, 21
+ adds r0, r1
+ ldr r0, [r0, 0x4]
+ adds r0, r3
+ ldrb r0, [r0]
+ lsls r0, 3
+ adds r0, r2
+ ldr r0, [r0, 0x4]
+ bx lr
+ thumb_func_end sub_806E81C
+
+ .section .text_806E884
+
+
+
+ thumb_func_start sub_806E8D0
+sub_806E8D0: @ 806E8D0
+ push {r4,r5,lr}
+ adds r5, r1, 0
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r5, 16
+ lsrs r5, 16
+ ldr r4, _0806E8FC @ =0x0201c000
+ str r2, [r4, 0x10]
+ strb r0, [r4, 0x4]
+ bl sub_806CA38
+ strb r0, [r4, 0x5]
+ strh r5, [r4, 0x6]
+ ldrb r1, [r4, 0x5]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0806E900 @ =gPlayerParty
+ adds r0, r1
+ str r0, [r4]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806E8FC: .4byte 0x0201c000
+_0806E900: .4byte gPlayerParty
+ thumb_func_end sub_806E8D0
+
+ thumb_func_start PartyMenuUpdateMonHeldItem
+PartyMenuUpdateMonHeldItem: @ 806E904
+ push {r4,r5,lr}
+ sub sp, 0x4
+ adds r5, r0, 0
+ lsls r1, 16
+ lsrs r4, r1, 16
+ adds r0, r4, 0
+ bl itemid_is_mail
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806E93C
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_80A2BC4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ bne _0806E930
+ movs r0, 0x1
+ b _0806E958
+_0806E930:
+ ldr r1, _0806E938 @ =gUnknown_0202E8F4
+ movs r0, 0x2
+ b _0806E940
+ .align 2, 0
+_0806E938: .4byte gUnknown_0202E8F4
+_0806E93C:
+ ldr r1, _0806E960 @ =gUnknown_0202E8F4
+ movs r0, 0x1
+_0806E940:
+ strb r0, [r1]
+ mov r0, sp
+ strb r4, [r0]
+ mov r1, sp
+ lsrs r0, r4, 8
+ strb r0, [r1, 0x1]
+ adds r0, r5, 0
+ movs r1, 0xC
+ mov r2, sp
+ bl SetMonData
+ movs r0, 0
+_0806E958:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0806E960: .4byte gUnknown_0202E8F4
+ thumb_func_end PartyMenuUpdateMonHeldItem
+
+ thumb_func_start PartyMenuTryGiveMonHeldItem
+PartyMenuTryGiveMonHeldItem: @ 806E964
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ mov r8, r2
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 16
+ lsrs r5, r1, 16
+ mov r9, r5
+ ldr r2, _0806E9D4 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r6, r1, r2
+ ldr r1, _0806E9D8 @ =TaskDummy
+ str r1, [r6]
+ adds r1, r5, 0
+ mov r2, r8
+ bl sub_806E8D0
+ ldr r4, _0806E9DC @ =0x0201c000
+ ldr r0, [r4]
+ movs r1, 0xC
+ bl GetMonData
+ lsls r0, 16
+ lsrs r2, r0, 16
+ adds r7, r2, 0
+ ldr r1, _0806E9E0 @ =gUnknown_0202E8F4
+ movs r0, 0
+ strb r0, [r1]
+ ldr r0, _0806E9E4 @ =gUnknown_0202E8F8
+ mov r10, r0
+ movs r0, 0
+ mov r1, r10
+ strh r0, [r1]
+ cmp r2, 0
+ beq _0806EA44
+ adds r0, r2, 0
+ bl itemid_is_mail
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806E9F0
+ ldr r0, _0806E9E8 @ =gOtherText_MailMustBeRemoved
+ movs r1, 0x1
+ bl sub_806E834
+ ldr r0, _0806E9EC @ =party_menu_link_mon_held_item_object
+ movs r1, 0x5
+ bl CreateTask
+ b _0806EA78
+ .align 2, 0
+_0806E9D4: .4byte gTasks
+_0806E9D8: .4byte TaskDummy
+_0806E9DC: .4byte 0x0201c000
+_0806E9E0: .4byte gUnknown_0202E8F4
+_0806E9E4: .4byte gUnknown_0202E8F8
+_0806E9E8: .4byte gOtherText_MailMustBeRemoved
+_0806E9EC: .4byte party_menu_link_mon_held_item_object
+_0806E9F0:
+ ldr r0, [r4]
+ ldr r1, _0806EA30 @ =gStringVar1
+ bl GetMonNickname
+ ldr r1, _0806EA34 @ =gStringVar2
+ adds r0, r7, 0
+ bl CopyItemName
+ ldr r4, _0806EA38 @ =gStringVar4
+ ldr r1, _0806EA3C @ =gOtherText_AlreadyHolding
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_806E834
+ ldr r0, _0806EA40 @ =Task_ConfirmGiveHeldItem
+ movs r1, 0x5
+ bl CreateTask
+ adds r0, r5, 0
+ bl itemid_is_mail
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806EA78
+ mov r0, r10
+ strh r7, [r0]
+ b _0806EA78
+ .align 2, 0
+_0806EA30: .4byte gStringVar1
+_0806EA34: .4byte gStringVar2
+_0806EA38: .4byte gStringVar4
+_0806EA3C: .4byte gOtherText_AlreadyHolding
+_0806EA40: .4byte Task_ConfirmGiveHeldItem
+_0806EA44:
+ ldr r0, [r4]
+ adds r1, r5, 0
+ bl PartyMenuUpdateMonHeldItem
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl RemoveBagItem
+ adds r0, r5, 0
+ bl itemid_is_mail
+ lsls r0, 24
+ cmp r0, 0
+ beq _0806EA66
+ mov r1, r8
+ str r1, [r6]
+ b _0806EA78
+_0806EA66:
+ ldrb r0, [r4, 0x5]
+ mov r1, r9
+ movs r2, 0x1
+ bl DisplayGiveHeldItemMessage
+ ldr r0, _0806EA88 @ =party_menu_link_mon_held_item_object
+ movs r1, 0x5
+ bl CreateTask
+_0806EA78:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806EA88: .4byte party_menu_link_mon_held_item_object
+ thumb_func_end PartyMenuTryGiveMonHeldItem
+
+ thumb_func_start party_menu_link_mon_held_item_object
+party_menu_link_mon_held_item_object: @ 806EA8C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _0806EAC0 @ =gUnknown_0202E8F6
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0806EABA
+ ldr r4, _0806EAC4 @ =0x0201c000
+ ldrb r0, [r4, 0x4]
+ ldrb r1, [r4, 0x5]
+ bl SetHeldItemIconVisibility
+ ldr r2, _0806EAC8 @ =gTasks
+ ldrb r1, [r4, 0x4]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldr r1, [r4, 0x10]
+ str r1, [r0]
+ adds r0, r5, 0
+ bl DestroyTask
+_0806EABA:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806EAC0: .4byte gUnknown_0202E8F6
+_0806EAC4: .4byte 0x0201c000
+_0806EAC8: .4byte gTasks
+ thumb_func_end party_menu_link_mon_held_item_object
+
+ thumb_func_start PartyMenuTryGiveMonHeldItem_806EACC
+PartyMenuTryGiveMonHeldItem_806EACC: @ 806EACC
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ bl ProcessMenuInputNoWrap_
+ lsls r0, 24
+ asrs r1, r0, 24
+ cmp r1, 0
+ bne _0806EB74
+ movs r0, 0x17
+ movs r1, 0x8
+ movs r2, 0x1D
+ movs r3, 0xD
+ bl MenuZeroFillWindowRect
+ ldr r4, _0806EB30 @ =0x0201c000
+ ldr r0, [r4]
+ movs r1, 0xC
+ bl GetMonData
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldrh r0, [r4, 0x6]
+ movs r1, 0x1
+ bl RemoveBagItem
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl AddBagItem
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806EB5C
+ ldr r0, [r4]
+ ldrh r1, [r4, 0x6]
+ bl PartyMenuUpdateMonHeldItem
+ ldrh r0, [r4, 0x6]
+ bl itemid_is_mail
+ lsls r0, 24
+ cmp r0, 0
+ beq _0806EB34
+ ldrb r0, [r4, 0x5]
+ adds r1, r5, 0
+ movs r2, 0x1
+ bl DisplayTakeHeldItemMessage
+ b _0806EB9A
+ .align 2, 0
+_0806EB30: .4byte 0x0201c000
+_0806EB34:
+ ldrh r0, [r4, 0x6]
+ ldr r1, _0806EB50 @ =gStringVar1
+ bl CopyItemName
+ ldr r4, _0806EB54 @ =gStringVar4
+ ldr r1, _0806EB58 @ =gOtherText_TakenAndReplaced
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_806E834
+ b _0806EB9A
+ .align 2, 0
+_0806EB50: .4byte gStringVar1
+_0806EB54: .4byte gStringVar4
+_0806EB58: .4byte gOtherText_TakenAndReplaced
+_0806EB5C:
+ ldr r0, _0806EB70 @ =gOtherText_BagFullCannotRemoveItem
+ movs r1, 0
+ bl sub_806E834
+ ldrh r0, [r4, 0x6]
+ movs r1, 0x1
+ bl AddBagItem
+ b _0806EB9A
+ .align 2, 0
+_0806EB70: .4byte gOtherText_BagFullCannotRemoveItem
+_0806EB74:
+ cmp r1, 0x1
+ beq _0806EB80
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ bne _0806EBA8
+_0806EB80:
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ bne _0806EB8E
+ movs r0, 0x5
+ bl PlaySE
+_0806EB8E:
+ movs r0, 0x17
+ movs r1, 0x8
+ movs r2, 0x1D
+ movs r3, 0xD
+ bl MenuZeroFillWindowRect
+_0806EB9A:
+ ldr r0, _0806EBB0 @ =gTasks
+ lsls r1, r6, 2
+ adds r1, r6
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _0806EBB4 @ =party_menu_link_mon_held_item_object
+ str r0, [r1]
+_0806EBA8:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806EBB0: .4byte gTasks
+_0806EBB4: .4byte party_menu_link_mon_held_item_object
+ thumb_func_end PartyMenuTryGiveMonHeldItem_806EACC
+
+ thumb_func_start Task_ConfirmGiveHeldItem
+Task_ConfirmGiveHeldItem: @ 806EBB8
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0806EBE4 @ =gUnknown_0202E8F6
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0806EBDE
+ movs r0, 0x17
+ movs r1, 0x8
+ movs r2, 0x1
+ bl DisplayYesNoMenu
+ ldr r0, _0806EBE8 @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _0806EBEC @ =PartyMenuTryGiveMonHeldItem_806EACC
+ str r0, [r1]
+_0806EBDE:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806EBE4: .4byte gUnknown_0202E8F6
+_0806EBE8: .4byte gTasks
+_0806EBEC: .4byte PartyMenuTryGiveMonHeldItem_806EACC
+ thumb_func_end Task_ConfirmGiveHeldItem
+
+ thumb_func_start DisplayGiveHeldItemMessage
+DisplayGiveHeldItemMessage: @ 806EBF0
+ push {r4,r5,lr}
+ adds r4, r1, 0
+ adds r5, r2, 0
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, 16
+ lsrs r4, 16
+ lsls r5, 24
+ lsrs r5, 24
+ movs r1, 0x64
+ muls r0, r1
+ ldr r1, _0806EC30 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0806EC34 @ =gStringVar1
+ bl GetMonNickname
+ ldr r1, _0806EC38 @ =gStringVar2
+ adds r0, r4, 0
+ bl CopyItemName
+ ldr r4, _0806EC3C @ =gStringVar4
+ ldr r1, _0806EC40 @ =gOtherText_WasGivenToHold
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_806E834
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806EC30: .4byte gPlayerParty
+_0806EC34: .4byte gStringVar1
+_0806EC38: .4byte gStringVar2
+_0806EC3C: .4byte gStringVar4
+_0806EC40: .4byte gOtherText_WasGivenToHold
+ thumb_func_end DisplayGiveHeldItemMessage
+
+ thumb_func_start PartyMenuTryGiveMonMail
+PartyMenuTryGiveMonMail: @ 806EC44
+ push {r4,r5,lr}
+ adds r2, r1, 0
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, _0806ECA0 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r3
+ ldr r3, _0806ECA4 @ =TaskDummy
+ str r3, [r1]
+ movs r1, 0
+ bl sub_806E8D0
+ ldr r5, _0806ECA8 @ =0x0201c000
+ ldr r0, [r5]
+ movs r1, 0xC
+ bl GetMonData
+ lsls r0, 16
+ ldr r2, _0806ECAC @ =gUnknown_0202E8F4
+ movs r1, 0
+ strb r1, [r2]
+ movs r1, 0xF8
+ lsls r1, 6
+ adds r2, r5, r1
+ ldrb r1, [r2]
+ adds r1, 0x6
+ ldrb r2, [r2, 0x2]
+ adds r1, r2
+ lsls r2, r1, 3
+ adds r2, r1
+ lsls r2, 2
+ ldr r1, _0806ECB0 @ =gSaveBlock1 + 0x2B4C
+ adds r4, r2, r1
+ cmp r0, 0
+ beq _0806ECBC
+ ldr r0, _0806ECB4 @ =gOtherText_PokeHoldingItemCantMail
+ movs r1, 0x1
+ bl sub_806E834
+ ldr r0, _0806ECB8 @ =party_menu_link_mon_held_item_object
+ movs r1, 0x5
+ bl CreateTask
+ b _0806ECDA
+ .align 2, 0
+_0806ECA0: .4byte gTasks
+_0806ECA4: .4byte TaskDummy
+_0806ECA8: .4byte 0x0201c000
+_0806ECAC: .4byte gUnknown_0202E8F4
+_0806ECB0: .4byte gSaveBlock1 + 0x2B4C
+_0806ECB4: .4byte gOtherText_PokeHoldingItemCantMail
+_0806ECB8: .4byte party_menu_link_mon_held_item_object
+_0806ECBC:
+ ldr r0, [r5]
+ adds r1, r4, 0
+ bl sub_80A2D88
+ adds r0, r4, 0
+ bl sub_80A2B40
+ ldr r0, _0806ECE0 @ =gOtherText_MailTransferredMailbox
+ movs r1, 0x1
+ bl sub_806E834
+ ldr r0, _0806ECE4 @ =party_menu_link_mon_held_item_object
+ movs r1, 0x5
+ bl CreateTask
+_0806ECDA:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806ECE0: .4byte gOtherText_MailTransferredMailbox
+_0806ECE4: .4byte party_menu_link_mon_held_item_object
+ thumb_func_end PartyMenuTryGiveMonMail
+
+ thumb_func_start PartyMenuTryGiveMonHeldItem_806ECE8
+PartyMenuTryGiveMonHeldItem_806ECE8: @ 806ECE8
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r2, r1, 0
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, _0806ED38 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r3
+ ldr r3, _0806ED3C @ =TaskDummy
+ str r3, [r1]
+ movs r1, 0
+ bl sub_806E8D0
+ ldr r5, _0806ED40 @ =0x0201c000
+ ldr r0, [r5]
+ movs r1, 0xC
+ bl GetMonData
+ lsls r0, 16
+ lsrs r4, r0, 16
+ adds r6, r4, 0
+ cmp r4, 0
+ bne _0806ED50
+ ldr r4, _0806ED44 @ =gStringVar4
+ ldr r1, _0806ED48 @ =gOtherText_NotHoldingAnything
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_806E834
+ ldr r0, _0806ED4C @ =party_menu_link_mon_held_item_object
+ movs r1, 0x5
+ bl CreateTask
+ b _0806EDA2
+ .align 2, 0
+_0806ED38: .4byte gTasks
+_0806ED3C: .4byte TaskDummy
+_0806ED40: .4byte 0x0201c000
+_0806ED44: .4byte gStringVar4
+_0806ED48: .4byte gOtherText_NotHoldingAnything
+_0806ED4C: .4byte party_menu_link_mon_held_item_object
+_0806ED50:
+ mov r0, sp
+ movs r1, 0
+ strb r1, [r0]
+ strb r1, [r0, 0x1]
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl AddBagItem
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806ED92
+ adds r0, r4, 0
+ bl itemid_is_mail
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806ED7C
+ ldr r0, [r5]
+ bl sub_80A2DF8
+_0806ED7C:
+ ldrb r0, [r5, 0x5]
+ adds r1, r6, 0
+ movs r2, 0
+ bl DisplayTakeHeldItemMessage
+ ldr r0, [r5]
+ movs r1, 0xC
+ mov r2, sp
+ bl SetMonData
+ b _0806ED9A
+_0806ED92:
+ ldr r0, _0806EDAC @ =gOtherText_BagFullCannotRemoveItem
+ movs r1, 0
+ bl sub_806E834
+_0806ED9A:
+ ldr r0, _0806EDB0 @ =party_menu_link_mon_held_item_object
+ movs r1, 0x5
+ bl CreateTask
+_0806EDA2:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806EDAC: .4byte gOtherText_BagFullCannotRemoveItem
+_0806EDB0: .4byte party_menu_link_mon_held_item_object
+ thumb_func_end PartyMenuTryGiveMonHeldItem_806ECE8
+
+ thumb_func_start DisplayTakeHeldItemMessage
+DisplayTakeHeldItemMessage: @ 806EDB4
+ push {r4,r5,lr}
+ adds r4, r1, 0
+ adds r5, r2, 0
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, 16
+ lsrs r4, 16
+ lsls r5, 24
+ lsrs r5, 24
+ movs r1, 0x64
+ muls r0, r1
+ ldr r1, _0806EDF4 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0806EDF8 @ =gStringVar1
+ bl GetMonNickname
+ ldr r1, _0806EDFC @ =gStringVar2
+ adds r0, r4, 0
+ bl CopyItemName
+ ldr r4, _0806EE00 @ =gStringVar4
+ ldr r1, _0806EE04 @ =gOtherText_ReceivedTheThingFrom
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_806E834
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806EDF4: .4byte gPlayerParty
+_0806EDF8: .4byte gStringVar1
+_0806EDFC: .4byte gStringVar2
+_0806EE00: .4byte gStringVar4
+_0806EE04: .4byte gOtherText_ReceivedTheThingFrom
+ thumb_func_end DisplayTakeHeldItemMessage
+
+ thumb_func_start DoTakeMail
+DoTakeMail: @ 806EE08
+ push {r4,lr}
+ adds r2, r1, 0
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, _0806EE48 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r3
+ ldr r3, _0806EE4C @ =TaskDummy
+ str r3, [r1]
+ movs r1, 0
+ bl sub_806E8D0
+ ldr r4, _0806EE50 @ =0x0201c000
+ ldr r0, [r4]
+ movs r1, 0xC
+ bl GetMonData
+ strh r0, [r4, 0x6]
+ ldr r0, _0806EE54 @ =gOtherText_SendRemovedMailPrompt
+ movs r1, 0x1
+ bl sub_806E834
+ ldr r0, _0806EE58 @ =Task_ConfirmTakeHeldMail
+ movs r1, 0x5
+ bl CreateTask
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806EE48: .4byte gTasks
+_0806EE4C: .4byte TaskDummy
+_0806EE50: .4byte 0x0201c000
+_0806EE54: .4byte gOtherText_SendRemovedMailPrompt
+_0806EE58: .4byte Task_ConfirmTakeHeldMail
+ thumb_func_end DoTakeMail
+
+ thumb_func_start Task_LoseMailMessage
+Task_LoseMailMessage: @ 806EE5C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl ProcessMenuInputNoWrap_
+ lsls r0, 24
+ asrs r1, r0, 24
+ cmp r1, 0
+ bne _0806EEB0
+ ldr r5, _0806EE90 @ =0x0201c000
+ ldrh r0, [r5, 0x6]
+ movs r1, 0x1
+ bl AddBagItem
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806EE98
+ ldr r0, [r5]
+ bl sub_80A2DF8
+ ldr r0, _0806EE94 @ =gOtherText_MailTaken
+ movs r1, 0
+ bl sub_806E834
+ b _0806EEA0
+ .align 2, 0
+_0806EE90: .4byte 0x0201c000
+_0806EE94: .4byte gOtherText_MailTaken
+_0806EE98:
+ ldr r0, _0806EEAC @ =gOtherText_BagFullCannotRemoveItem
+ movs r1, 0
+ bl sub_806E834
+_0806EEA0:
+ movs r0, 0x17
+ movs r1, 0x8
+ movs r2, 0x1D
+ movs r3, 0xD
+ b _0806EEDE
+ .align 2, 0
+_0806EEAC: .4byte gOtherText_BagFullCannotRemoveItem
+_0806EEB0:
+ cmp r1, 0x1
+ beq _0806EEBC
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ bne _0806EEF0
+_0806EEBC:
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ bne _0806EECA
+ movs r0, 0x5
+ bl PlaySE
+_0806EECA:
+ movs r0, 0x17
+ movs r1, 0x8
+ movs r2, 0x1D
+ movs r3, 0xD
+ bl MenuZeroFillWindowRect
+ movs r0, 0
+ movs r1, 0xE
+ movs r2, 0x1D
+ movs r3, 0x13
+_0806EEDE:
+ bl MenuZeroFillWindowRect
+ ldr r0, _0806EEF8 @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _0806EEFC @ =party_menu_link_mon_held_item_object
+ str r0, [r1]
+_0806EEF0:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806EEF8: .4byte gTasks
+_0806EEFC: .4byte party_menu_link_mon_held_item_object
+ thumb_func_end Task_LoseMailMessage
+
+ thumb_func_start Task_ConfirmLoseMailMessage
+Task_ConfirmLoseMailMessage: @ 806EF00
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0806EF2C @ =gUnknown_0202E8F6
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0806EF26
+ movs r0, 0x17
+ movs r1, 0x8
+ movs r2, 0x1
+ bl DisplayYesNoMenu
+ ldr r0, _0806EF30 @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _0806EF34 @ =Task_LoseMailMessage
+ str r0, [r1]
+_0806EF26:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806EF2C: .4byte gUnknown_0202E8F6
+_0806EF30: .4byte gTasks
+_0806EF34: .4byte Task_LoseMailMessage
+ thumb_func_end Task_ConfirmLoseMailMessage
+
+ thumb_func_start Task_TakeHeldMail
+Task_TakeHeldMail: @ 806EF38
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl ProcessMenuInputNoWrap_
+ lsls r0, 24
+ asrs r1, r0, 24
+ cmp r1, 0
+ bne _0806EF9C
+ movs r0, 0x17
+ movs r1, 0x8
+ movs r2, 0x1D
+ movs r3, 0xD
+ bl MenuZeroFillWindowRect
+ ldr r0, _0806EF70 @ =0x0201c000
+ ldr r0, [r0]
+ bl sub_80A2E78
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ beq _0806EF78
+ ldr r0, _0806EF74 @ =gOtherText_MailWasSent
+ movs r1, 0
+ bl sub_806E834
+ b _0806EF80
+ .align 2, 0
+_0806EF70: .4byte 0x0201c000
+_0806EF74: .4byte gOtherText_MailWasSent
+_0806EF78:
+ ldr r0, _0806EF90 @ =gOtherText_MailboxIsFull
+ movs r1, 0
+ bl sub_806E834
+_0806EF80:
+ ldr r0, _0806EF94 @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _0806EF98 @ =party_menu_link_mon_held_item_object
+ str r0, [r1]
+ b _0806EFD8
+ .align 2, 0
+_0806EF90: .4byte gOtherText_MailboxIsFull
+_0806EF94: .4byte gTasks
+_0806EF98: .4byte party_menu_link_mon_held_item_object
+_0806EF9C:
+ cmp r1, 0x1
+ beq _0806EFA8
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ bne _0806EFD8
+_0806EFA8:
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ bne _0806EFB6
+ movs r0, 0x5
+ bl PlaySE
+_0806EFB6:
+ movs r0, 0x17
+ movs r1, 0x8
+ movs r2, 0x1D
+ movs r3, 0xD
+ bl MenuZeroFillWindowRect
+ ldr r0, _0806EFE0 @ =gOtherText_MailRemovedMessageLost
+ movs r1, 0x1
+ bl sub_806E834
+ ldr r1, _0806EFE4 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0806EFE8 @ =Task_ConfirmLoseMailMessage
+ str r1, [r0]
+_0806EFD8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806EFE0: .4byte gOtherText_MailRemovedMessageLost
+_0806EFE4: .4byte gTasks
+_0806EFE8: .4byte Task_ConfirmLoseMailMessage
+ thumb_func_end Task_TakeHeldMail
+
+ thumb_func_start Task_ConfirmTakeHeldMail
+Task_ConfirmTakeHeldMail: @ 806EFEC
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0806F018 @ =gUnknown_0202E8F6
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0806F012
+ movs r0, 0x17
+ movs r1, 0x8
+ movs r2, 0x1
+ bl DisplayYesNoMenu
+ ldr r0, _0806F01C @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _0806F020 @ =Task_TakeHeldMail
+ str r0, [r1]
+_0806F012:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806F018: .4byte gUnknown_0202E8F6
+_0806F01C: .4byte gTasks
+_0806F020: .4byte Task_TakeHeldMail
+ thumb_func_end Task_ConfirmTakeHeldMail
+
+ thumb_func_start ItemIdToBattleMoveId
+ItemIdToBattleMoveId: @ 806F024
+ lsls r0, 16
+ ldr r1, _0806F034 @ =0xfedf0000
+ adds r0, r1
+ ldr r1, _0806F038 @ =gUnknown_08376504
+ lsrs r0, 15
+ adds r0, r1
+ ldrh r0, [r0]
+ bx lr
+ .align 2, 0
+_0806F034: .4byte 0xfedf0000
+_0806F038: .4byte gUnknown_08376504
+ thumb_func_end ItemIdToBattleMoveId
+
+ thumb_func_start pokemon_has_move
+pokemon_has_move: @ 806F03C
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ lsls r1, 16
+ lsrs r5, r1, 16
+ movs r4, 0
+_0806F046:
+ adds r1, r4, 0
+ adds r1, 0xD
+ adds r0, r6, 0
+ bl GetMonData
+ cmp r0, r5
+ bne _0806F058
+ movs r0, 0x1
+ b _0806F064
+_0806F058:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x3
+ bls _0806F046
+ movs r0, 0
+_0806F064:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end pokemon_has_move
+
+ thumb_func_start TeachMonTMMove
+TeachMonTMMove: @ 806F06C
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ adds r6, r2, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, 16
+ lsrs r5, 16
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, _0806F0A8 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0806F0AC @ =TaskDummy
+ str r1, [r0]
+ adds r0, r4, 0
+ adds r1, r5, 0
+ adds r2, r6, 0
+ bl sub_806E8D0
+ ldr r0, _0806F0B0 @ =Task_TeamMonTMMove
+ movs r1, 0x5
+ bl CreateTask
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806F0A8: .4byte gTasks
+_0806F0AC: .4byte TaskDummy
+_0806F0B0: .4byte Task_TeamMonTMMove
+ thumb_func_end TeachMonTMMove
+
+ thumb_func_start Task_TeamMonTMMove
+Task_TeamMonTMMove: @ 806F0B4
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ adds r7, r6, 0
+ ldr r5, _0806F114 @ =0x0201c000
+ ldr r0, [r5]
+ ldr r1, _0806F118 @ =gStringVar1
+ bl GetMonNickname
+ ldrh r0, [r5, 0x6]
+ bl ItemIdToBattleMoveId
+ movs r4, 0
+ strh r0, [r5, 0x8]
+ ldr r0, _0806F11C @ =gStringVar2
+ ldrh r2, [r5, 0x8]
+ movs r1, 0xD
+ muls r1, r2
+ ldr r2, _0806F120 @ =gMoveNames
+ adds r1, r2
+ bl StringCopy
+ ldr r1, _0806F124 @ =0xfffff282
+ adds r0, r5, r1
+ strh r4, [r0]
+ ldr r0, [r5]
+ ldrh r1, [r5, 0x8]
+ bl pokemon_has_move
+ lsls r0, 24
+ cmp r0, 0
+ beq _0806F138
+ ldr r4, _0806F128 @ =gStringVar4
+ ldr r1, _0806F12C @ =gOtherText_AlreadyKnows
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_806E834
+ ldr r1, _0806F130 @ =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0806F134 @ =party_menu_link_mon_held_item_object
+ b _0806F1B6
+ .align 2, 0
+_0806F114: .4byte 0x0201c000
+_0806F118: .4byte gStringVar1
+_0806F11C: .4byte gStringVar2
+_0806F120: .4byte gMoveNames
+_0806F124: .4byte 0xfffff282
+_0806F128: .4byte gStringVar4
+_0806F12C: .4byte gOtherText_AlreadyKnows
+_0806F130: .4byte gTasks
+_0806F134: .4byte party_menu_link_mon_held_item_object
+_0806F138:
+ ldr r0, [r5]
+ ldrb r1, [r5, 0x6]
+ subs r1, 0x21
+ lsls r1, 24
+ lsrs r1, 24
+ bl CanMonLearnTMHM
+ cmp r0, 0
+ bne _0806F17C
+ ldr r4, _0806F16C @ =gStringVar4
+ ldr r1, _0806F170 @ =gOtherText_NotCompatible
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_806E834
+ ldr r1, _0806F174 @ =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0806F178 @ =party_menu_link_mon_held_item_object
+ b _0806F1B6
+ .align 2, 0
+_0806F16C: .4byte gStringVar4
+_0806F170: .4byte gOtherText_NotCompatible
+_0806F174: .4byte gTasks
+_0806F178: .4byte party_menu_link_mon_held_item_object
+_0806F17C:
+ ldr r0, [r5]
+ ldrh r1, [r5, 0x8]
+ bl GiveMoveToMon
+ lsls r0, 16
+ ldr r1, _0806F194 @ =0xffff0000
+ cmp r0, r1
+ beq _0806F198
+ adds r0, r6, 0
+ bl Task_TeamMonTMMove2
+ b _0806F1B8
+ .align 2, 0
+_0806F194: .4byte 0xffff0000
+_0806F198:
+ ldr r4, _0806F1C0 @ =gStringVar4
+ ldr r1, _0806F1C4 @ =gOtherText_WantsToLearn
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_806E834
+ ldr r1, _0806F1C8 @ =gTasks
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0806F1CC @ =sub_806F358
+_0806F1B6:
+ str r1, [r0]
+_0806F1B8:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806F1C0: .4byte gStringVar4
+_0806F1C4: .4byte gOtherText_WantsToLearn
+_0806F1C8: .4byte gTasks
+_0806F1CC: .4byte sub_806F358
+ thumb_func_end Task_TeamMonTMMove
+
+ thumb_func_start Task_TeamMonTMMove2
+Task_TeamMonTMMove2: @ 806F1D0
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r0, _0806F234 @ =gStringVar2
+ ldr r5, _0806F238 @ =0x0201c000
+ ldrh r2, [r5, 0x8]
+ movs r1, 0xD
+ muls r1, r2
+ ldr r2, _0806F23C @ =gMoveNames
+ adds r1, r2
+ bl StringCopy
+ ldr r4, _0806F240 @ =gStringVar4
+ ldr r1, _0806F244 @ =gOtherText_LearnedMove
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_806E834
+ ldr r0, [r5]
+ movs r1, 0x4
+ bl AdjustFriendship
+ ldr r1, _0806F248 @ =0xfffff282
+ adds r0, r5, r1
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _0806F220
+ ldrh r1, [r5, 0x6]
+ movs r0, 0xA9
+ lsls r0, 1
+ cmp r1, r0
+ bhi _0806F220
+ adds r0, r1, 0
+ movs r1, 0x1
+ bl RemoveBagItem
+_0806F220:
+ ldr r0, _0806F24C @ =gTasks
+ lsls r1, r6, 2
+ adds r1, r6
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _0806F250 @ =Task_TeamMonTMMove3
+ str r0, [r1]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806F234: .4byte gStringVar2
+_0806F238: .4byte 0x0201c000
+_0806F23C: .4byte gMoveNames
+_0806F240: .4byte gStringVar4
+_0806F244: .4byte gOtherText_LearnedMove
+_0806F248: .4byte 0xfffff282
+_0806F24C: .4byte gTasks
+_0806F250: .4byte Task_TeamMonTMMove3
+ thumb_func_end Task_TeamMonTMMove2
+
+ thumb_func_start Task_TeamMonTMMove3
+Task_TeamMonTMMove3: @ 806F254
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0806F27C @ =gUnknown_0202E8F6
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0806F276
+ ldr r0, _0806F280 @ =0x0000016f
+ bl PlayFanfare
+ ldr r1, _0806F284 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0806F288 @ =Task_TeamMonTMMove4
+ str r1, [r0]
+_0806F276:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806F27C: .4byte gUnknown_0202E8F6
+_0806F280: .4byte 0x0000016f
+_0806F284: .4byte gTasks
+_0806F288: .4byte Task_TeamMonTMMove4
+ thumb_func_end Task_TeamMonTMMove3
+
+ thumb_func_start Task_TeamMonTMMove4
+Task_TeamMonTMMove4: @ 806F28C
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r6, r5, 0
+ bl IsFanfareTaskInactive
+ lsls r0, 24
+ cmp r0, 0
+ beq _0806F2F2
+ ldr r0, _0806F2D0 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _0806F2B2
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0806F2F2
+_0806F2B2:
+ ldr r4, _0806F2D4 @ =0x0201c000
+ ldrb r0, [r4, 0x4]
+ ldrb r1, [r4, 0x5]
+ bl SetHeldItemIconVisibility
+ ldr r1, _0806F2D8 @ =0xfffff282
+ adds r0, r4, r1
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0x1
+ bne _0806F2DC
+ adds r0, r5, 0
+ bl sub_8070C54
+ b _0806F2F2
+ .align 2, 0
+_0806F2D0: .4byte gMain
+_0806F2D4: .4byte 0x0201c000
+_0806F2D8: .4byte 0xfffff282
+_0806F2DC:
+ ldr r2, _0806F2F8 @ =gTasks
+ ldrb r1, [r4, 0x4]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldr r1, [r4, 0x10]
+ str r1, [r0]
+ adds r0, r6, 0
+ bl DestroyTask
+_0806F2F2:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806F2F8: .4byte gTasks
+ thumb_func_end Task_TeamMonTMMove4
+
+ thumb_func_start sub_806F2FC
+sub_806F2FC: @ 806F2FC
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r6, r5, 0
+ ldr r0, _0806F32C @ =gUnknown_0202E8F6
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0806F34E
+ ldr r4, _0806F330 @ =0x0201c000
+ ldrb r0, [r4, 0x4]
+ ldrb r1, [r4, 0x5]
+ bl SetHeldItemIconVisibility
+ ldr r1, _0806F334 @ =0xfffff282
+ adds r0, r4, r1
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0x1
+ bne _0806F338
+ adds r0, r5, 0
+ bl sub_8070C54
+ b _0806F34E
+ .align 2, 0
+_0806F32C: .4byte gUnknown_0202E8F6
+_0806F330: .4byte 0x0201c000
+_0806F334: .4byte 0xfffff282
+_0806F338:
+ ldr r2, _0806F354 @ =gTasks
+ ldrb r1, [r4, 0x4]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldr r1, [r4, 0x10]
+ str r1, [r0]
+ adds r0, r6, 0
+ bl DestroyTask
+_0806F34E:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806F354: .4byte gTasks
+ thumb_func_end sub_806F2FC
+
+ thumb_func_start sub_806F358
+sub_806F358: @ 806F358
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0806F384 @ =gUnknown_0202E8F6
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0806F37E
+ movs r0, 0x17
+ movs r1, 0x8
+ movs r2, 0x1
+ bl DisplayYesNoMenu
+ ldr r0, _0806F388 @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _0806F38C @ =sub_806F390
+ str r0, [r1]
+_0806F37E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806F384: .4byte gUnknown_0202E8F6
+_0806F388: .4byte gTasks
+_0806F38C: .4byte sub_806F390
+ thumb_func_end sub_806F358
+
+ thumb_func_start sub_806F390
+sub_806F390: @ 806F390
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r5, r4, 0
+ bl ProcessMenuInputNoWrap_
+ lsls r0, 24
+ asrs r1, r0, 24
+ cmp r1, 0
+ bne _0806F3D4
+ movs r0, 0x17
+ movs r1, 0x8
+ movs r2, 0x1D
+ movs r3, 0xD
+ bl MenuZeroFillWindowRect
+ ldr r0, _0806F3C8 @ =gOtherText_WhichMoveToForget2
+ movs r1, 0x1
+ bl sub_806E834
+ ldr r1, _0806F3CC @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0806F3D0 @ =sub_806F44C
+ str r1, [r0]
+ b _0806F3F4
+ .align 2, 0
+_0806F3C8: .4byte gOtherText_WhichMoveToForget2
+_0806F3CC: .4byte gTasks
+_0806F3D0: .4byte sub_806F44C
+_0806F3D4:
+ cmp r1, 0x1
+ beq _0806F3E0
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ bne _0806F3F4
+_0806F3E0:
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ bne _0806F3EE
+ movs r0, 0x5
+ bl PlaySE
+_0806F3EE:
+ adds r0, r5, 0
+ bl StopTryingToTeachMove_806F614
+_0806F3F4:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_806F390
+
+ thumb_func_start sub_806F3FC
+sub_806F3FC: @ 806F3FC
+ push {r4,r5,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _0806F438 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0806F430
+ ldr r0, _0806F43C @ =gPlayerParty
+ ldr r4, _0806F440 @ =0x0201c000
+ ldrb r1, [r4, 0x5]
+ ldr r2, _0806F444 @ =gPlayerPartyCount
+ ldrb r2, [r2]
+ subs r2, 0x1
+ lsls r2, 24
+ lsrs r2, 24
+ ldr r3, _0806F448 @ =sub_808B564
+ ldrh r4, [r4, 0x8]
+ str r4, [sp]
+ bl sub_809D9F0
+ adds r0, r5, 0
+ bl DestroyTask
+_0806F430:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806F438: .4byte gPaletteFade
+_0806F43C: .4byte gPlayerParty
+_0806F440: .4byte 0x0201c000
+_0806F444: .4byte gPlayerPartyCount
+_0806F448: .4byte sub_808B564
+ thumb_func_end sub_806F3FC
+
+ thumb_func_start sub_806F44C
+sub_806F44C: @ 806F44C
+ push {r4,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0806F484 @ =gUnknown_0202E8F6
+ ldrb r1, [r0]
+ cmp r1, 0
+ bne _0806F47A
+ movs r0, 0x1
+ negs r0, r0
+ str r1, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r1, _0806F488 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0806F48C @ =sub_806F3FC
+ str r1, [r0]
+_0806F47A:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806F484: .4byte gUnknown_0202E8F6
+_0806F488: .4byte gTasks
+_0806F48C: .4byte sub_806F3FC
+ thumb_func_end sub_806F44C
+
+ thumb_func_start TaughtMove
+TaughtMove: @ 806F490
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r0, _0806F50C @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0806F506
+ ldr r1, _0806F510 @ =gTasks
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0806F514 @ =TaskDummy
+ str r1, [r0]
+ ldr r0, _0806F518 @ =gScriptItemId
+ ldrh r1, [r0]
+ ldr r2, _0806F51C @ =sub_808B508
+ adds r0, r3, 0
+ bl sub_806E8D0
+ bl sub_809FA30
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r5, _0806F520 @ =0x0201c000
+ ldr r0, [r5]
+ adds r1, 0xD
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ ldr r0, [r5]
+ ldr r1, _0806F524 @ =gStringVar1
+ bl GetMonNickname
+ ldr r0, _0806F528 @ =gStringVar2
+ movs r1, 0xD
+ muls r1, r4
+ ldr r2, _0806F52C @ =gMoveNames
+ adds r1, r2
+ bl StringCopy
+ ldr r4, _0806F530 @ =gStringVar4
+ ldr r1, _0806F534 @ =gOtherText_ForgetMove123_2
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_806E834
+ ldr r0, _0806F538 @ =TMMoveUpdateMoveSlot
+ movs r1, 0x5
+ bl CreateTask
+_0806F506:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806F50C: .4byte gPaletteFade
+_0806F510: .4byte gTasks
+_0806F514: .4byte TaskDummy
+_0806F518: .4byte gScriptItemId
+_0806F51C: .4byte sub_808B508
+_0806F520: .4byte 0x0201c000
+_0806F524: .4byte gStringVar1
+_0806F528: .4byte gStringVar2
+_0806F52C: .4byte gMoveNames
+_0806F530: .4byte gStringVar4
+_0806F534: .4byte gOtherText_ForgetMove123_2
+_0806F538: .4byte TMMoveUpdateMoveSlot
+ thumb_func_end TaughtMove
+
+ thumb_func_start TMMoveUpdateMoveSlot
+TMMoveUpdateMoveSlot: @ 806F53C
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r0, _0806F580 @ =gUnknown_0202E8F6
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0806F57A
+ ldr r4, _0806F584 @ =0x0201c000
+ ldr r5, [r4]
+ bl sub_809FA30
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r5, 0
+ bl RemoveMonPPBonus
+ ldr r5, [r4]
+ ldrh r4, [r4, 0x8]
+ bl sub_809FA30
+ adds r2, r0, 0
+ lsls r2, 24
+ lsrs r2, 24
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl SetMonMoveSlot
+ adds r0, r6, 0
+ bl Task_TeamMonTMMove2
+_0806F57A:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806F580: .4byte gUnknown_0202E8F6
+_0806F584: .4byte 0x0201c000
+ thumb_func_end TMMoveUpdateMoveSlot
+
+ thumb_func_start StopTryingToTeachMove_806F588
+StopTryingToTeachMove_806F588: @ 806F588
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r0, _0806F5E8 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0806F5E0
+ ldr r1, _0806F5EC @ =gTasks
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0806F5F0 @ =TaskDummy
+ str r1, [r0]
+ ldr r0, _0806F5F4 @ =gScriptItemId
+ ldrh r1, [r0]
+ ldr r2, _0806F5F8 @ =sub_808B508
+ adds r0, r3, 0
+ bl sub_806E8D0
+ ldr r0, _0806F5FC @ =gStringVar2
+ ldr r1, _0806F600 @ =0x0201c000
+ ldrh r2, [r1, 0x8]
+ movs r1, 0xD
+ muls r1, r2
+ ldr r2, _0806F604 @ =gMoveNames
+ adds r1, r2
+ bl StringCopy
+ ldr r4, _0806F608 @ =gStringVar4
+ ldr r1, _0806F60C @ =gOtherText_StopTryingTo
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_806E834
+ ldr r0, _0806F610 @ =StopTryingToTeachMove_806F67C
+ movs r1, 0x5
+ bl CreateTask
+_0806F5E0:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806F5E8: .4byte gPaletteFade
+_0806F5EC: .4byte gTasks
+_0806F5F0: .4byte TaskDummy
+_0806F5F4: .4byte gScriptItemId
+_0806F5F8: .4byte sub_808B508
+_0806F5FC: .4byte gStringVar2
+_0806F600: .4byte 0x0201c000
+_0806F604: .4byte gMoveNames
+_0806F608: .4byte gStringVar4
+_0806F60C: .4byte gOtherText_StopTryingTo
+_0806F610: .4byte StopTryingToTeachMove_806F67C
+ thumb_func_end StopTryingToTeachMove_806F588
+
+ thumb_func_start StopTryingToTeachMove_806F614
+StopTryingToTeachMove_806F614: @ 806F614
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ movs r0, 0x17
+ movs r1, 0x8
+ movs r2, 0x1D
+ movs r3, 0xD
+ bl MenuZeroFillWindowRect
+ ldr r0, _0806F660 @ =gStringVar2
+ ldr r1, _0806F664 @ =0x0201c000
+ ldrh r2, [r1, 0x8]
+ movs r1, 0xD
+ muls r1, r2
+ ldr r2, _0806F668 @ =gMoveNames
+ adds r1, r2
+ bl StringCopy
+ ldr r4, _0806F66C @ =gStringVar4
+ ldr r1, _0806F670 @ =gOtherText_StopTryingTo
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_806E834
+ ldr r1, _0806F674 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0806F678 @ =StopTryingToTeachMove_806F67C
+ str r1, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806F660: .4byte gStringVar2
+_0806F664: .4byte 0x0201c000
+_0806F668: .4byte gMoveNames
+_0806F66C: .4byte gStringVar4
+_0806F670: .4byte gOtherText_StopTryingTo
+_0806F674: .4byte gTasks
+_0806F678: .4byte StopTryingToTeachMove_806F67C
+ thumb_func_end StopTryingToTeachMove_806F614
+
+ thumb_func_start StopTryingToTeachMove_806F67C
+StopTryingToTeachMove_806F67C: @ 806F67C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0806F6A8 @ =gUnknown_0202E8F6
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0806F6A2
+ movs r0, 0x17
+ movs r1, 0x8
+ movs r2, 0x1
+ bl DisplayYesNoMenu
+ ldr r0, _0806F6AC @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _0806F6B0 @ =StopTryingToTeachMove_806F6B4
+ str r0, [r1]
+_0806F6A2:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806F6A8: .4byte gUnknown_0202E8F6
+_0806F6AC: .4byte gTasks
+_0806F6B0: .4byte StopTryingToTeachMove_806F6B4
+ thumb_func_end StopTryingToTeachMove_806F67C
+
+ thumb_func_start StopTryingToTeachMove_806F6B4
+StopTryingToTeachMove_806F6B4: @ 806F6B4
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r6, r5, 0
+ bl ProcessMenuInputNoWrap_
+ lsls r0, 24
+ asrs r1, r0, 24
+ cmp r1, 0
+ bne _0806F730
+ movs r0, 0x17
+ movs r1, 0x8
+ movs r2, 0x1D
+ movs r3, 0xD
+ bl MenuZeroFillWindowRect
+ ldr r4, _0806F710 @ =0x0201c000
+ ldr r0, [r4]
+ ldr r1, _0806F714 @ =gStringVar1
+ bl GetMonNickname
+ ldr r0, _0806F718 @ =gStringVar2
+ ldrh r2, [r4, 0x8]
+ movs r1, 0xD
+ muls r1, r2
+ ldr r2, _0806F71C @ =gMoveNames
+ adds r1, r2
+ bl StringCopy
+ ldr r4, _0806F720 @ =gStringVar4
+ ldr r1, _0806F724 @ =gOtherText_DidNotLearnMove2
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_806E834
+ ldr r1, _0806F728 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0806F72C @ =sub_806F2FC
+ b _0806F78E
+ .align 2, 0
+_0806F710: .4byte 0x0201c000
+_0806F714: .4byte gStringVar1
+_0806F718: .4byte gStringVar2
+_0806F71C: .4byte gMoveNames
+_0806F720: .4byte gStringVar4
+_0806F724: .4byte gOtherText_DidNotLearnMove2
+_0806F728: .4byte gTasks
+_0806F72C: .4byte sub_806F2FC
+_0806F730:
+ cmp r1, 0x1
+ beq _0806F73C
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ bne _0806F790
+_0806F73C:
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ bne _0806F74A
+ movs r0, 0x5
+ bl PlaySE
+_0806F74A:
+ movs r0, 0x17
+ movs r1, 0x8
+ movs r2, 0x1D
+ movs r3, 0xD
+ bl MenuZeroFillWindowRect
+ ldr r4, _0806F798 @ =0x0201c000
+ ldr r0, [r4]
+ ldr r1, _0806F79C @ =gStringVar1
+ bl GetMonNickname
+ ldr r0, _0806F7A0 @ =gStringVar2
+ ldrh r2, [r4, 0x8]
+ movs r1, 0xD
+ muls r1, r2
+ ldr r2, _0806F7A4 @ =gMoveNames
+ adds r1, r2
+ bl StringCopy
+ ldr r4, _0806F7A8 @ =gStringVar4
+ ldr r1, _0806F7AC @ =gOtherText_WantsToLearn
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_806E834
+ ldr r1, _0806F7B0 @ =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0806F7B4 @ =sub_806F358
+_0806F78E:
+ str r1, [r0]
+_0806F790:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806F798: .4byte 0x0201c000
+_0806F79C: .4byte gStringVar1
+_0806F7A0: .4byte gStringVar2
+_0806F7A4: .4byte gMoveNames
+_0806F7A8: .4byte gStringVar4
+_0806F7AC: .4byte gOtherText_WantsToLearn
+_0806F7B0: .4byte gTasks
+_0806F7B4: .4byte sub_806F358
+ thumb_func_end StopTryingToTeachMove_806F6B4
+
+ thumb_func_start IsHMMove
+IsHMMove: @ 806F7B8
+ push {lr}
+ lsls r0, 16
+ lsrs r2, r0, 16
+ movs r1, 0
+ ldr r3, _0806F7D4 @ =gUnknown_08376504
+_0806F7C2:
+ adds r0, r1, 0
+ adds r0, 0x32
+ lsls r0, 1
+ adds r0, r3
+ ldrh r0, [r0]
+ cmp r0, r2
+ bne _0806F7D8
+ movs r0, 0x1
+ b _0806F7E4
+ .align 2, 0
+_0806F7D4: .4byte gUnknown_08376504
+_0806F7D8:
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x7
+ bls _0806F7C2
+ movs r0, 0
+_0806F7E4:
+ pop {r1}
+ bx r1
+ thumb_func_end IsHMMove
+
+ thumb_func_start sub_806F7E8
+sub_806F7E8: @ 806F7E8
+ push {r4-r6,lr}
+ adds r5, r1, 0
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r3, r0, 2
+ adds r3, r0
+ lsls r3, 3
+ ldr r0, _0806F898 @ =gTasks + 0x8
+ adds r3, r0
+ movs r0, 0x14
+ ldrsh r1, [r3, r0]
+ str r1, [r5]
+ movs r4, 0x16
+ ldrsh r0, [r3, r4]
+ str r0, [r5, 0x4]
+ movs r4, 0x18
+ ldrsh r0, [r3, r4]
+ lsls r2, 24
+ asrs r2, 24
+ muls r0, r2
+ str r0, [r5, 0x8]
+ movs r0, 0x80
+ lsls r0, 1
+ str r0, [r5, 0x10]
+ ldr r6, _0806F89C @ =0x0201b000
+ ldr r2, _0806F8A0 @ =0x00000282
+ adds r0, r6, r2
+ movs r4, 0
+ ldrsh r0, [r0, r4]
+ bl GetHPBarLevel
+ lsls r0, 24
+ lsrs r2, r0, 24
+ adds r3, r2, 0
+ cmp r2, 0x2
+ bls _0806F83E
+ ldrb r0, [r5, 0xC]
+ movs r1, 0x20
+ negs r1, r1
+ ands r1, r0
+ movs r0, 0x4
+ orrs r1, r0
+ strb r1, [r5, 0xC]
+_0806F83E:
+ cmp r2, 0x2
+ bne _0806F850
+ ldrb r0, [r5, 0xC]
+ movs r1, 0x20
+ negs r1, r1
+ ands r1, r0
+ movs r0, 0x5
+ orrs r1, r0
+ strb r1, [r5, 0xC]
+_0806F850:
+ cmp r3, 0x1
+ bhi _0806F862
+ ldrb r0, [r5, 0xC]
+ movs r1, 0x20
+ negs r1, r1
+ ands r1, r0
+ movs r0, 0x6
+ orrs r1, r0
+ strb r1, [r5, 0xC]
+_0806F862:
+ ldr r4, _0806F8A4 @ =gUnknown_08376858
+ bl IsDoubleBattle
+ movs r2, 0x80
+ lsls r2, 5
+ adds r1, r6, r2
+ ldrb r2, [r1, 0x5]
+ lsls r2, 2
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 3
+ adds r2, r1
+ adds r2, r4
+ ldr r2, [r2]
+ ldr r4, _0806F8A8 @ =0x0000100c
+ adds r1, r6, r4
+ adds r0, r5, 0
+ movs r3, 0
+ bl sub_80460C8
+ lsls r0, 16
+ asrs r0, 16
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0806F898: .4byte gTasks + 0x8
+_0806F89C: .4byte 0x0201b000
+_0806F8A0: .4byte 0x00000282
+_0806F8A4: .4byte gUnknown_08376858
+_0806F8A8: .4byte 0x0000100c
+ thumb_func_end sub_806F7E8
+
+ thumb_func_start sub_806F8AC
+sub_806F8AC: @ 806F8AC
+ push {r4-r7,lr}
+ sub sp, 0x18
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r4, 0x1
+ negs r4, r4
+ adds r0, r6, 0
+ mov r1, sp
+ adds r2, r4, 0
+ bl sub_806F7E8
+ ldr r1, _0806F8F4 @ =0x0201b000
+ ldr r2, _0806F8F8 @ =0x00000282
+ adds r5, r1, r2
+ strh r0, [r5]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, r4
+ beq _0806F8D4
+ b _0806F9F0
+_0806F8D4:
+ movs r0, 0x80
+ lsls r0, 5
+ adds r1, r0
+ movs r0, 0
+ str r0, [r1, 0xC]
+ ldr r0, [sp, 0x8]
+ negs r3, r0
+ ldr r2, [sp, 0x4]
+ adds r0, r3, r2
+ ldr r1, [sp]
+ cmp r0, r1
+ ble _0806F8FC
+ subs r1, r2
+ add r0, sp, 0x14
+ strh r1, [r0]
+ b _0806F900
+ .align 2, 0
+_0806F8F4: .4byte 0x0201b000
+_0806F8F8: .4byte 0x00000282
+_0806F8FC:
+ add r0, sp, 0x14
+ strh r3, [r0]
+_0806F900:
+ adds r5, r0, 0
+ ldr r1, _0806F940 @ =gUnknown_02024BEC
+ ldrh r0, [r5]
+ negs r0, r0
+ str r0, [r1]
+ ldr r0, _0806F944 @ =0x0201c000
+ ldr r0, [r0]
+ ldr r1, _0806F948 @ =gStringVar1
+ bl GetMonNickname
+ ldr r0, _0806F94C @ =gStringVar2
+ ldrh r1, [r5]
+ movs r2, 0
+ movs r3, 0x3
+ bl ConvertIntToDecimalStringN
+ ldr r2, _0806F950 @ =gTasks
+ lsls r1, r6, 2
+ adds r0, r1, r6
+ lsls r0, 3
+ adds r0, r2
+ movs r2, 0x24
+ ldrsh r0, [r0, r2]
+ adds r7, r1, 0
+ cmp r0, 0
+ bne _0806F95C
+ ldr r0, _0806F954 @ =gStringVar4
+ ldr r1, _0806F958 @ =gOtherText_HPRestoredBy
+ bl StringExpandPlaceholders
+ b _0806F964
+ .align 2, 0
+_0806F940: .4byte gUnknown_02024BEC
+_0806F944: .4byte 0x0201c000
+_0806F948: .4byte gStringVar1
+_0806F94C: .4byte gStringVar2
+_0806F950: .4byte gTasks
+_0806F954: .4byte gStringVar4
+_0806F958: .4byte gOtherText_HPRestoredBy
+_0806F95C:
+ ldr r0, _0806F9D4 @ =gStringVar4
+ ldr r1, _0806F9D8 @ =gOtherText_RegainedHealth
+ bl StringExpandPlaceholders
+_0806F964:
+ ldr r4, _0806F9DC @ =0x0201c000
+ ldrb r0, [r4, 0x4]
+ ldrb r1, [r4, 0x5]
+ bl GetMonIconSpriteId_maybe
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, [r4]
+ bl SetMonIconAnim
+ bl IsDoubleBattle
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldrb r1, [r4, 0x5]
+ lsls r1, 1
+ adds r0, r1
+ ldr r1, _0806F9E0 @ =gUnknown_083769A8
+ adds r0, r1
+ movs r1, 0x7
+ bl task_pc_turn_off
+ ldr r0, _0806F9E4 @ =0xfffff261
+ adds r1, r4, r0
+ movs r0, 0x2
+ strb r0, [r1]
+ ldr r0, _0806F9D4 @ =gStringVar4
+ movs r1, 0x1
+ bl sub_806E834
+ ldr r1, [sp, 0x4]
+ ldrh r0, [r5]
+ adds r0, r1
+ strh r0, [r5]
+ ldr r0, [r4]
+ movs r1, 0x39
+ adds r2, r5, 0
+ bl SetMonData
+ ldrh r0, [r4, 0x6]
+ movs r1, 0x1
+ bl RemoveBagItem
+ bl sub_8032638
+ ldr r1, _0806F9E8 @ =gTasks
+ adds r0, r7, r6
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0806F9EC @ =sub_806FB44
+ str r1, [r0]
+ b _0806FA10
+ .align 2, 0
+_0806F9D4: .4byte gStringVar4
+_0806F9D8: .4byte gOtherText_RegainedHealth
+_0806F9DC: .4byte 0x0201c000
+_0806F9E0: .4byte gUnknown_083769A8
+_0806F9E4: .4byte 0xfffff261
+_0806F9E8: .4byte gTasks
+_0806F9EC: .4byte sub_806FB44
+_0806F9F0:
+ movs r2, 0x80
+ lsls r2, 5
+ adds r0, r1, r2
+ ldrb r4, [r0, 0x5]
+ bl IsDoubleBattle
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ ldrh r2, [r5]
+ ldr r3, [sp]
+ lsls r3, 16
+ lsrs r3, 16
+ adds r0, r4, 0
+ bl PartyMenuDoPrintHP
+_0806FA10:
+ add sp, 0x18
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_806F8AC
+
+ thumb_func_start sub_806FA18
+sub_806FA18: @ 806FA18
+ push {r4-r7,lr}
+ sub sp, 0x14
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r0, r5, 0
+ mov r1, sp
+ movs r2, 0x1
+ bl sub_806F7E8
+ ldr r6, _0806FAC4 @ =0x0201b000
+ ldr r1, _0806FAC8 @ =0x00000282
+ adds r7, r6, r1
+ strh r0, [r7]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ bne _0806FAE4
+ movs r0, 0x1
+ bl PlaySE
+ movs r0, 0x80
+ lsls r0, 5
+ adds r4, r6, r0
+ movs r0, 0
+ str r0, [r4, 0xC]
+ ldr r2, _0806FACC @ =gTasks
+ lsls r3, r5, 2
+ adds r3, r5
+ lsls r3, 3
+ adds r5, r3, r2
+ ldrh r0, [r5, 0x1E]
+ ldrh r1, [r5, 0x20]
+ subs r0, r1
+ strh r0, [r5, 0x1E]
+ ldr r0, [r4]
+ adds r2, r3
+ adds r2, 0x1E
+ movs r1, 0x39
+ bl SetMonData
+ ldrb r0, [r4, 0x4]
+ ldr r1, _0806FAD0 @ =0xfffe6000
+ adds r6, r1
+ ldrb r1, [r6, 0x1]
+ bl GetMonIconSpriteId_maybe
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, [r4]
+ bl SetMonIconAnim
+ ldr r2, _0806FAD4 @ =gSprites
+ ldrb r1, [r6, 0x2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r0, [r0, 0x2E]
+ strb r0, [r4, 0x5]
+ ldrb r1, [r4, 0x5]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0806FAD8 @ =gPlayerParty
+ adds r0, r1
+ str r0, [r4]
+ movs r1, 0x3A
+ bl GetMonData
+ strh r0, [r5, 0x1C]
+ ldr r0, [r4]
+ movs r1, 0x39
+ bl GetMonData
+ strh r0, [r5, 0x1E]
+ ldr r0, _0806FADC @ =0xffff8000
+ str r0, [r4, 0xC]
+ ldr r0, [r4, 0x10]
+ str r0, [r4, 0x14]
+ ldr r0, _0806FAE0 @ =sub_806F8AC
+ str r0, [r5]
+ ldrh r0, [r5, 0x1E]
+ strh r0, [r7]
+ b _0806FB04
+ .align 2, 0
+_0806FAC4: .4byte 0x0201b000
+_0806FAC8: .4byte 0x00000282
+_0806FACC: .4byte gTasks
+_0806FAD0: .4byte 0xfffe6000
+_0806FAD4: .4byte gSprites
+_0806FAD8: .4byte gPlayerParty
+_0806FADC: .4byte 0xffff8000
+_0806FAE0: .4byte sub_806F8AC
+_0806FAE4:
+ movs r1, 0x80
+ lsls r1, 5
+ adds r0, r6, r1
+ ldrb r4, [r0, 0x5]
+ bl IsDoubleBattle
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ ldrh r2, [r7]
+ ldr r3, [sp]
+ lsls r3, 16
+ lsrs r3, 16
+ adds r0, r4, 0
+ bl PartyMenuDoPrintHP
+_0806FB04:
+ add sp, 0x14
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_806FA18
+
+ thumb_func_start sub_806FB0C
+sub_806FB0C: @ 806FB0C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0806FB38 @ =gUnknown_0202E8F6
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0806FB32
+ ldr r3, _0806FB3C @ =gTasks
+ ldr r2, _0806FB40 @ =0x0201c000
+ ldrb r1, [r2, 0x4]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r3
+ ldr r1, [r2, 0x10]
+ str r1, [r0]
+ adds r0, r4, 0
+ bl DestroyTask
+_0806FB32:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806FB38: .4byte gUnknown_0202E8F6
+_0806FB3C: .4byte gTasks
+_0806FB40: .4byte 0x0201c000
+ thumb_func_end sub_806FB0C
+
+ thumb_func_start sub_806FB44
+sub_806FB44: @ 806FB44
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0806FB70 @ =gUnknown_0202E8F6
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0806FB6A
+ ldr r3, _0806FB74 @ =gTasks
+ ldr r2, _0806FB78 @ =0x0201c000
+ ldrb r1, [r2, 0x4]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r3
+ ldr r1, [r2, 0x14]
+ str r1, [r0]
+ adds r0, r4, 0
+ bl DestroyTask
+_0806FB6A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806FB70: .4byte gUnknown_0202E8F6
+_0806FB74: .4byte gTasks
+_0806FB78: .4byte 0x0201c000
+ thumb_func_end sub_806FB44
+
+ thumb_func_start IsHPRecoveryItem
+IsHPRecoveryItem: @ 806FB7C
+ push {lr}
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0xAF
+ bne _0806FB90
+ ldr r0, _0806FB8C @ =gSaveBlock1 + 0x3676
+ b _0806FB9A
+ .align 2, 0
+_0806FB8C: .4byte gSaveBlock1 + 0x3676
+_0806FB90:
+ ldr r1, _0806FBA8 @ =gItemEffectTable
+ subs r0, 0xD
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+_0806FB9A:
+ ldrb r1, [r0, 0x4]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ bne _0806FBAC
+ movs r0, 0
+ b _0806FBAE
+ .align 2, 0
+_0806FBA8: .4byte gItemEffectTable
+_0806FBAC:
+ movs r0, 0x1
+_0806FBAE:
+ pop {r1}
+ bx r1
+ thumb_func_end IsHPRecoveryItem
+
+ thumb_func_start PartyMenuUpdateLevelOrStatus
+PartyMenuUpdateLevelOrStatus: @ 806FBB4
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ lsls r4, r1, 24
+ lsrs r4, 24
+ adds r0, r4, 0
+ bl PartyMenuClearLevelStatusTilemap
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl PartyMenuPrintMonLevelOrStatus
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end PartyMenuUpdateLevelOrStatus
+
+ thumb_func_start GetMedicineItemEffectMessage
+GetMedicineItemEffectMessage: @ 806FBD0
+ push {lr}
+ lsls r0, 16
+ lsrs r0, 16
+ bl GetItemEffectType
+ lsls r0, 24
+ lsrs r0, 24
+ subs r0, 0x3
+ cmp r0, 0x12
+ bls _0806FBE6
+ b _0806FD7C
+_0806FBE6:
+ lsls r0, 2
+ ldr r1, _0806FBF0 @ =_0806FBF4
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0806FBF0: .4byte _0806FBF4
+ .align 2, 0
+_0806FBF4:
+ .4byte _0806FC40
+ .4byte _0806FC54
+ .4byte _0806FC68
+ .4byte _0806FC7C
+ .4byte _0806FC90
+ .4byte _0806FCA4
+ .4byte _0806FCB8
+ .4byte _0806FD7C
+ .4byte _0806FCCC
+ .4byte _0806FCF0
+ .4byte _0806FCE0
+ .4byte _0806FD20
+ .4byte _0806FD30
+ .4byte _0806FD10
+ .4byte _0806FD00
+ .4byte _0806FD7C
+ .4byte _0806FD54
+ .4byte _0806FD54
+ .4byte _0806FD68
+_0806FC40:
+ ldr r0, _0806FC4C @ =gStringVar4
+ ldr r1, _0806FC50 @ =gOtherText_CuredPoisoning
+ bl StringExpandPlaceholders
+ b _0806FD84
+ .align 2, 0
+_0806FC4C: .4byte gStringVar4
+_0806FC50: .4byte gOtherText_CuredPoisoning
+_0806FC54:
+ ldr r0, _0806FC60 @ =gStringVar4
+ ldr r1, _0806FC64 @ =gOtherText_WokeUp
+ bl StringExpandPlaceholders
+ b _0806FD84
+ .align 2, 0
+_0806FC60: .4byte gStringVar4
+_0806FC64: .4byte gOtherText_WokeUp
+_0806FC68:
+ ldr r0, _0806FC74 @ =gStringVar4
+ ldr r1, _0806FC78 @ =gOtherText_BurnHealed
+ bl StringExpandPlaceholders
+ b _0806FD84
+ .align 2, 0
+_0806FC74: .4byte gStringVar4
+_0806FC78: .4byte gOtherText_BurnHealed
+_0806FC7C:
+ ldr r0, _0806FC88 @ =gStringVar4
+ ldr r1, _0806FC8C @ =gOtherText_ThawedOut
+ bl StringExpandPlaceholders
+ b _0806FD84
+ .align 2, 0
+_0806FC88: .4byte gStringVar4
+_0806FC8C: .4byte gOtherText_ThawedOut
+_0806FC90:
+ ldr r0, _0806FC9C @ =gStringVar4
+ ldr r1, _0806FCA0 @ =gOtherText_CuredParalysis
+ bl StringExpandPlaceholders
+ b _0806FD84
+ .align 2, 0
+_0806FC9C: .4byte gStringVar4
+_0806FCA0: .4byte gOtherText_CuredParalysis
+_0806FCA4:
+ ldr r0, _0806FCB0 @ =gStringVar4
+ ldr r1, _0806FCB4 @ =gOtherText_SnapConfusion
+ bl StringExpandPlaceholders
+ b _0806FD84
+ .align 2, 0
+_0806FCB0: .4byte gStringVar4
+_0806FCB4: .4byte gOtherText_SnapConfusion
+_0806FCB8:
+ ldr r0, _0806FCC4 @ =gStringVar4
+ ldr r1, _0806FCC8 @ =gOtherText_GotOverLove
+ bl StringExpandPlaceholders
+ b _0806FD84
+ .align 2, 0
+_0806FCC4: .4byte gStringVar4
+_0806FCC8: .4byte gOtherText_GotOverLove
+_0806FCCC:
+ ldr r0, _0806FCD8 @ =gStringVar4
+ ldr r1, _0806FCDC @ =gOtherText_BecameHealthy
+ bl StringExpandPlaceholders
+ b _0806FD84
+ .align 2, 0
+_0806FCD8: .4byte gStringVar4
+_0806FCDC: .4byte gOtherText_BecameHealthy
+_0806FCE0:
+ ldr r0, _0806FCE8 @ =gStringVar2
+ ldr r1, _0806FCEC @ =gOtherText_Hp2
+ b _0806FD34
+ .align 2, 0
+_0806FCE8: .4byte gStringVar2
+_0806FCEC: .4byte gOtherText_Hp2
+_0806FCF0:
+ ldr r0, _0806FCF8 @ =gStringVar2
+ ldr r1, _0806FCFC @ =gOtherText_Attack
+ b _0806FD34
+ .align 2, 0
+_0806FCF8: .4byte gStringVar2
+_0806FCFC: .4byte gOtherText_Attack
+_0806FD00:
+ ldr r0, _0806FD08 @ =gStringVar2
+ ldr r1, _0806FD0C @ =gOtherText_Defense
+ b _0806FD34
+ .align 2, 0
+_0806FD08: .4byte gStringVar2
+_0806FD0C: .4byte gOtherText_Defense
+_0806FD10:
+ ldr r0, _0806FD18 @ =gStringVar2
+ ldr r1, _0806FD1C @ =gOtherText_Speed
+ b _0806FD34
+ .align 2, 0
+_0806FD18: .4byte gStringVar2
+_0806FD1C: .4byte gOtherText_Speed
+_0806FD20:
+ ldr r0, _0806FD28 @ =gStringVar2
+ ldr r1, _0806FD2C @ =gOtherText_SpAtk2
+ b _0806FD34
+ .align 2, 0
+_0806FD28: .4byte gStringVar2
+_0806FD2C: .4byte gOtherText_SpAtk2
+_0806FD30:
+ ldr r0, _0806FD44 @ =gStringVar2
+ ldr r1, _0806FD48 @ =gOtherText_SpDef2
+_0806FD34:
+ bl StringCopy
+ ldr r0, _0806FD4C @ =gStringVar4
+ ldr r1, _0806FD50 @ =gOtherText_WasRaised
+ bl StringExpandPlaceholders
+ b _0806FD84
+ .align 2, 0
+_0806FD44: .4byte gStringVar2
+_0806FD48: .4byte gOtherText_SpDef2
+_0806FD4C: .4byte gStringVar4
+_0806FD50: .4byte gOtherText_WasRaised
+_0806FD54:
+ ldr r0, _0806FD60 @ =gStringVar4
+ ldr r1, _0806FD64 @ =gOtherText_PPIncreased
+ bl StringExpandPlaceholders
+ b _0806FD84
+ .align 2, 0
+_0806FD60: .4byte gStringVar4
+_0806FD64: .4byte gOtherText_PPIncreased
+_0806FD68:
+ ldr r0, _0806FD74 @ =gStringVar4
+ ldr r1, _0806FD78 @ =gOtherText_PPRestored
+ bl StringExpandPlaceholders
+ b _0806FD84
+ .align 2, 0
+_0806FD74: .4byte gStringVar4
+_0806FD78: .4byte gOtherText_PPRestored
+_0806FD7C:
+ ldr r0, _0806FD88 @ =gStringVar4
+ ldr r1, _0806FD8C @ =gOtherText_WontHaveAnyEffect
+ bl StringExpandPlaceholders
+_0806FD84:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806FD88: .4byte gStringVar4
+_0806FD8C: .4byte gOtherText_WontHaveAnyEffect
+ thumb_func_end GetMedicineItemEffectMessage
+
+ thumb_func_start IsMedicineIneffective
+IsMedicineIneffective: @ 806FD90
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r0, r1, 16
+ lsrs r0, 16
+ bl GetItemEffectType
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xD
+ bne _0806FDBC
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ ldr r1, _0806FDB8 @ =0x0000012f
+ cmp r0, r1
+ bne _0806FDBC
+ movs r0, 0x1
+ b _0806FDBE
+ .align 2, 0
+_0806FDB8: .4byte 0x0000012f
+_0806FDBC:
+ movs r0, 0
+_0806FDBE:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end IsMedicineIneffective
+
+ thumb_func_start ExecuteTableBasedItemEffect__
+ExecuteTableBasedItemEffect__: @ 806FDC4
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ lsls r1, 16
+ lsrs r5, r1, 16
+ lsls r2, 24
+ lsrs r6, r2, 24
+ ldr r0, _0806FDF0 @ =gMain
+ ldr r1, _0806FDF4 @ =0x0000043d
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ bne _0806FDFC
+ movs r0, 0x64
+ muls r0, r3
+ ldr r1, _0806FDF8 @ =gPlayerParty
+ adds r0, r1
+ adds r1, r5, 0
+ adds r2, r3, 0
+ b _0806FE16
+ .align 2, 0
+_0806FDF0: .4byte gMain
+_0806FDF4: .4byte 0x0000043d
+_0806FDF8: .4byte gPlayerParty
+_0806FDFC:
+ movs r0, 0x64
+ adds r4, r3, 0
+ muls r4, r0
+ ldr r0, _0806FE28 @ =gPlayerParty
+ adds r4, r0
+ adds r0, r3, 0
+ bl sub_8094C20
+ adds r2, r0, 0
+ lsls r2, 24
+ lsrs r2, 24
+ adds r0, r4, 0
+ adds r1, r5, 0
+_0806FE16:
+ adds r3, r6, 0
+ bl ExecuteTableBasedItemEffect_
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0806FE28: .4byte gPlayerParty
+ thumb_func_end ExecuteTableBasedItemEffect__
+
+ thumb_func_start UseMedicine
+UseMedicine: @ 806FE2C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ adds r4, r0, 0
+ adds r5, r2, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r1, 16
+ lsrs r6, r1, 16
+ movs r0, 0
+ mov r9, r0
+ ldr r1, _0806FED4 @ =gTasks
+ mov r10, r1
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ add r1, r10
+ ldr r0, _0806FED8 @ =TaskDummy
+ str r0, [r1]
+ movs r1, 0x5
+ bl CreateTask
+ lsls r0, 24
+ lsrs r7, r0, 24
+ adds r0, r4, 0
+ adds r1, r6, 0
+ adds r2, r5, 0
+ bl sub_806E8D0
+ ldr r5, _0806FEDC @ =0x0201c000
+ ldr r0, [r5]
+ adds r1, r6, 0
+ bl IsMedicineIneffective
+ lsls r0, 24
+ cmp r0, 0
+ bne _0806FEE0
+ adds r0, r6, 0
+ bl IsHPRecoveryItem
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ lsls r2, r7, 2
+ mov r8, r2
+ cmp r0, 0x1
+ bne _0806FEC2
+ ldr r0, [r5]
+ movs r1, 0x3A
+ bl GetMonData
+ mov r3, r8
+ adds r1, r3, r7
+ lsls r1, 3
+ mov r2, r10
+ adds r4, r1, r2
+ strh r0, [r4, 0x1C]
+ ldr r0, [r5]
+ movs r1, 0x39
+ bl GetMonData
+ strh r0, [r4, 0x1E]
+ movs r3, 0x1C
+ ldrsh r1, [r4, r3]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r1, r0
+ bne _0806FEC2
+ movs r0, 0
+ mov r9, r0
+ mov r1, r9
+ strh r1, [r4, 0x1C]
+ strh r1, [r4, 0x1E]
+_0806FEC2:
+ ldr r0, _0806FEDC @ =0x0201c000
+ ldrb r0, [r0, 0x5]
+ adds r1, r6, 0
+ movs r2, 0
+ bl ExecuteTableBasedItemEffect__
+ lsls r0, 24
+ lsrs r0, 24
+ b _0806FEE6
+ .align 2, 0
+_0806FED4: .4byte gTasks
+_0806FED8: .4byte TaskDummy
+_0806FEDC: .4byte 0x0201c000
+_0806FEE0:
+ movs r0, 0x1
+ lsls r2, r7, 2
+ mov r8, r2
+_0806FEE6:
+ cmp r0, 0
+ beq _0806FF14
+ ldr r1, _0806FF08 @ =gUnknown_0202E8F4
+ movs r0, 0
+ strb r0, [r1]
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _0806FF0C @ =gOtherText_WontHaveAnyEffect
+ movs r1, 0x1
+ bl sub_806E834
+ ldr r1, _0806FF10 @ =gTasks
+ mov r3, r8
+ adds r0, r3, r7
+ b _08070002
+ .align 2, 0
+_0806FF08: .4byte gUnknown_0202E8F4
+_0806FF0C: .4byte gOtherText_WontHaveAnyEffect
+_0806FF10: .4byte gTasks
+_0806FF14:
+ ldr r1, _0806FF30 @ =gUnknown_0202E8F4
+ movs r0, 0x1
+ strb r0, [r1]
+ adds r0, r6, 0
+ bl IsBlueYellowRedFlute
+ lsls r0, 24
+ cmp r0, 0
+ bne _0806FF34
+ movs r0, 0x1
+ bl PlaySE
+ b _0806FF3A
+ .align 2, 0
+_0806FF30: .4byte gUnknown_0202E8F4
+_0806FF34:
+ movs r0, 0x75
+ bl PlaySE
+_0806FF3A:
+ ldr r4, _0806FF88 @ =0x0201c000
+ ldr r0, [r4]
+ bl GetMonStatusAndPokerus
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x6
+ beq _0806FF4E
+ cmp r0, 0
+ bne _0806FF56
+_0806FF4E:
+ ldr r0, [r4]
+ ldrb r1, [r4, 0x5]
+ bl PartyMenuUpdateLevelOrStatus
+_0806FF56:
+ mov r0, r9
+ cmp r0, 0x1
+ bne _0806FFC8
+ ldr r4, _0806FF88 @ =0x0201c000
+ ldr r0, [r4]
+ movs r1, 0x39
+ bl GetMonData
+ ldr r2, _0806FF8C @ =gTasks
+ mov r3, r8
+ adds r1, r3, r7
+ lsls r1, 3
+ adds r2, r1, r2
+ ldrh r1, [r2, 0x1E]
+ subs r0, r1
+ strh r0, [r2, 0x20]
+ ldr r0, _0806FF90 @ =0xffff8000
+ str r0, [r4, 0xC]
+ movs r1, 0x1E
+ ldrsh r0, [r2, r1]
+ cmp r0, 0
+ bne _0806FF94
+ mov r3, r9
+ strh r3, [r2, 0x24]
+ b _0806FF98
+ .align 2, 0
+_0806FF88: .4byte 0x0201c000
+_0806FF8C: .4byte gTasks
+_0806FF90: .4byte 0xffff8000
+_0806FF94:
+ movs r0, 0
+ strh r0, [r2, 0x24]
+_0806FF98:
+ ldr r2, _0806FFB8 @ =0x0201c000
+ ldr r0, [r2, 0x10]
+ str r0, [r2, 0x14]
+ ldr r1, _0806FFBC @ =gTasks
+ mov r3, r8
+ adds r0, r3, r7
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0806FFC0 @ =sub_806F8AC
+ str r1, [r0]
+ ldrh r0, [r0, 0x1E]
+ ldr r1, _0806FFC4 @ =0xfffff282
+ adds r2, r1
+ strh r0, [r2]
+ b _0807000A
+ .align 2, 0
+_0806FFB8: .4byte 0x0201c000
+_0806FFBC: .4byte gTasks
+_0806FFC0: .4byte sub_806F8AC
+_0806FFC4: .4byte 0xfffff282
+_0806FFC8:
+ ldr r4, _08070018 @ =0x0201c000
+ ldr r0, [r4]
+ ldr r1, _0807001C @ =gStringVar1
+ bl GetMonNickname
+ adds r0, r6, 0
+ bl IsBlueYellowRedFlute
+ lsls r0, 24
+ cmp r0, 0
+ bne _0806FFE6
+ adds r0, r6, 0
+ movs r1, 0x1
+ bl RemoveBagItem
+_0806FFE6:
+ adds r0, r6, 0
+ bl GetMedicineItemEffectMessage
+ ldrb r0, [r4, 0x5]
+ ldr r1, [r4]
+ bl TryPrintPartyMenuMonNickname
+ ldr r0, _08070020 @ =gStringVar4
+ movs r1, 0x1
+ bl sub_806E834
+ ldr r1, _08070024 @ =gTasks
+ mov r2, r8
+ adds r0, r2, r7
+_08070002:
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _08070028 @ =sub_806FB0C
+ str r1, [r0]
+_0807000A:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08070018: .4byte 0x0201c000
+_0807001C: .4byte gStringVar1
+_08070020: .4byte gStringVar4
+_08070024: .4byte gTasks
+_08070028: .4byte sub_806FB0C
+ thumb_func_end UseMedicine
+
+ thumb_func_start IsBlueYellowRedFlute
+IsBlueYellowRedFlute: @ 807002C
+ push {lr}
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x27
+ beq _0807003E
+ cmp r0, 0x29
+ beq _0807003E
+ cmp r0, 0x28
+ bne _08070042
+_0807003E:
+ movs r0, 0x1
+ b _08070044
+_08070042:
+ movs r0, 0
+_08070044:
+ pop {r1}
+ bx r1
+ thumb_func_end IsBlueYellowRedFlute
+
+ thumb_func_start sub_8070048
+sub_8070048: @ 8070048
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, _08070078 @ =0x0201c000
+ str r2, [r3, 0x10]
+ movs r4, 0
+ strb r0, [r3, 0x4]
+ movs r2, 0
+ strh r1, [r3, 0x6]
+ strb r2, [r3, 0x5]
+ ldr r1, _0807007C @ =sub_80701DC
+ str r1, [r3, 0x14]
+ ldr r2, _08070080 @ =0xfffff27e
+ adds r1, r3, r2
+ strh r4, [r1]
+ ldr r1, _08070084 @ =0xfffff280
+ adds r3, r1
+ strh r4, [r3]
+ bl sub_8070088
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08070078: .4byte 0x0201c000
+_0807007C: .4byte sub_80701DC
+_08070080: .4byte 0xfffff27e
+_08070084: .4byte 0xfffff280
+ thumb_func_end sub_8070048
+
+ .section .text_80701DC
+
+ thumb_func_start sub_80701DC
+sub_80701DC: @ 80701DC
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r6, _08070280 @ =0x0201b000
+ ldr r0, _08070284 @ =0x0000027e
+ adds r7, r6, r0
+ movs r1, 0
+ ldrsh r0, [r7, r1]
+ cmp r0, 0x1
+ bne _0807023E
+ movs r0, 0x80
+ lsls r0, 5
+ adds r4, r6, r0
+ ldrh r0, [r4, 0x6]
+ movs r1, 0x1
+ bl AddBagItem
+ ldrb r1, [r4, 0x5]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _08070288 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _0807023A
+ bl IsDoubleBattle
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldrb r1, [r4, 0x5]
+ lsls r1, 1
+ adds r0, r1
+ ldr r1, _0807028C @ =gUnknown_083769A8
+ adds r0, r1
+ movs r1, 0x3
+ bl task_pc_turn_off
+ ldr r0, _08070290 @ =0x00000261
+ adds r1, r6, r0
+ movs r0, 0x2
+ strb r0, [r1]
+_0807023A:
+ movs r0, 0
+ strh r0, [r7]
+_0807023E:
+ ldr r4, _08070294 @ =0x0201c000
+ ldrb r0, [r4, 0x5]
+ adds r0, 0x1
+ strb r0, [r4, 0x5]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x6
+ bne _080702D8
+ ldr r1, _08070298 @ =gUnknown_0202E8F4
+ movs r0, 0
+ strb r0, [r1]
+ ldr r1, _0807029C @ =0xfffff280
+ adds r0, r4, r1
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080702B0
+ ldr r1, _080702A0 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080702A4 @ =TaskDummy
+ str r1, [r0]
+ ldr r0, _080702A8 @ =gOtherText_WontHaveAnyEffect
+ movs r1, 0x1
+ bl sub_806E834
+ ldr r0, _080702AC @ =sub_806FB0C
+ movs r1, 0x8
+ bl CreateTask
+ b _080702C6
+ .align 2, 0
+_08070280: .4byte 0x0201b000
+_08070284: .4byte 0x0000027e
+_08070288: .4byte gPlayerParty
+_0807028C: .4byte gUnknown_083769A8
+_08070290: .4byte 0x00000261
+_08070294: .4byte 0x0201c000
+_08070298: .4byte gUnknown_0202E8F4
+_0807029C: .4byte 0xfffff280
+_080702A0: .4byte gTasks
+_080702A4: .4byte TaskDummy
+_080702A8: .4byte gOtherText_WontHaveAnyEffect
+_080702AC: .4byte sub_806FB0C
+_080702B0:
+ ldrh r0, [r4, 0x6]
+ movs r1, 0x1
+ bl RemoveBagItem
+ ldr r1, _080702D0 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, [r4, 0x10]
+ str r1, [r0]
+_080702C6:
+ ldr r1, _080702D4 @ =gUnknown_03005CE0
+ movs r0, 0
+ strb r0, [r1]
+ b _080702DE
+ .align 2, 0
+_080702D0: .4byte gTasks
+_080702D4: .4byte gUnknown_03005CE0
+_080702D8:
+ adds r0, r5, 0
+ bl sub_8070088
+_080702DE:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80701DC
+
+ thumb_func_start CreateItemUseMoveMenu
+CreateItemUseMoveMenu: @ 80702E4
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x8
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r6, 0
+ movs r0, 0x13
+ movs r1, 0xA
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuDrawTextWindow
+ movs r5, 0
+ movs r0, 0x64
+ adds r7, r4, 0
+ muls r7, r0
+ ldr r0, _0807036C @ =gPlayerParty
+ mov r8, r0
+_0807030C:
+ adds r1, r5, 0
+ adds r1, 0xD
+ mov r2, r8
+ adds r0, r7, r2
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ movs r0, 0xD
+ muls r0, r4
+ ldr r1, _08070370 @ =gMoveNames
+ adds r0, r1
+ lsls r2, r5, 25
+ movs r1, 0xB0
+ lsls r1, 20
+ adds r2, r1
+ lsrs r2, 24
+ movs r1, 0x14
+ bl MenuPrint
+ cmp r4, 0
+ beq _08070340
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+_08070340:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x3
+ bls _0807030C
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x9
+ str r0, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0x14
+ movs r2, 0xB
+ adds r3, r6, 0
+ bl InitMenu
+ add sp, 0x8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807036C: .4byte gPlayerParty
+_08070370: .4byte gMoveNames
+ thumb_func_end CreateItemUseMoveMenu
+
+ thumb_func_start Task_HandleItemUseMoveMenuInput
+Task_HandleItemUseMoveMenuInput: @ 8070374
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ adds r4, r2, 0
+ ldr r0, _08070398 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0807039C
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ negs r0, r0
+ bl MoveMenuCursor
+ b _080703E4
+ .align 2, 0
+_08070398: .4byte gMain
+_0807039C:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _080703B2
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ bl MoveMenuCursor
+ b _080703E4
+_080703B2:
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080703CC
+ ldr r0, _080703C8 @ =gUnknown_08376B54
+ ldr r1, [r0]
+ adds r0, r2, 0
+ bl _call_via_r1
+ b _080703E4
+ .align 2, 0
+_080703C8: .4byte gUnknown_08376B54
+_080703CC:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080703E4
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _080703EC @ =gUnknown_08376B54
+ ldr r1, [r0, 0x4]
+ adds r0, r4, 0
+ bl _call_via_r1
+_080703E4:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080703EC: .4byte gUnknown_08376B54
+ thumb_func_end Task_HandleItemUseMoveMenuInput
+
+ thumb_func_start DoPPRecoveryItemEffect
+DoPPRecoveryItemEffect: @ 80703F0
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ mov r9, r2
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r1, 16
+ lsrs r5, r1, 16
+ cmp r5, 0xAF
+ bne _08070410
+ ldr r0, _0807040C @ =gSaveBlock1 + 0x3676
+ b _0807041C
+ .align 2, 0
+_0807040C: .4byte gSaveBlock1 + 0x3676
+_08070410:
+ ldr r1, _08070464 @ =gItemEffectTable
+ adds r0, r5, 0
+ subs r0, 0xD
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+_0807041C:
+ mov r8, r0
+ ldr r7, _08070468 @ =gTasks
+ lsls r1, r6, 2
+ adds r1, r6
+ lsls r1, 3
+ adds r1, r7
+ ldr r0, _0807046C @ =TaskDummy
+ str r0, [r1]
+ movs r1, 0x5
+ bl CreateTask
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r0, r6, 0
+ adds r1, r5, 0
+ mov r2, r9
+ bl sub_806E8D0
+ mov r0, r8
+ ldrb r1, [r0, 0x4]
+ movs r0, 0x10
+ ands r0, r1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0
+ bne _08070470
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r7
+ strh r1, [r0, 0x1E]
+ adds r0, r4, 0
+ bl DoRecoverPP
+ b _08070498
+ .align 2, 0
+_08070464: .4byte gItemEffectTable
+_08070468: .4byte gTasks
+_0807046C: .4byte TaskDummy
+_08070470:
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0xA
+ movs r1, 0x3
+ bl sub_806D538
+ ldr r0, _080704A4 @ =0x0201c000
+ ldrb r0, [r0, 0x5]
+ bl CreateItemUseMoveMenu
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r7
+ ldr r1, _080704A8 @ =Task_HandleItemUseMoveMenuInput
+ str r1, [r0]
+ ldr r1, _080704AC @ =gMain
+ movs r0, 0
+ strh r0, [r1, 0x2E]
+_08070498:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080704A4: .4byte 0x0201c000
+_080704A8: .4byte Task_HandleItemUseMoveMenuInput
+_080704AC: .4byte gMain
+ thumb_func_end DoPPRecoveryItemEffect
+
+ thumb_func_start ItemUseMoveMenu_HandleMoveSelection
+ItemUseMoveMenu_HandleMoveSelection: @ 80704B0
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_8072DEC
+ movs r0, 0x13
+ movs r1, 0xA
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ bl sub_806D5A4
+ bl GetMenuCursorPos
+ ldr r2, _080704EC @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r2
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r1, 0x1E]
+ adds r0, r4, 0
+ bl DoRecoverPP
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080704EC: .4byte gTasks
+ thumb_func_end ItemUseMoveMenu_HandleMoveSelection
+
+ thumb_func_start ItemUseMoveMenu_HandleCancel
+ItemUseMoveMenu_HandleCancel: @ 80704F0
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_8072DEC
+ movs r0, 0x13
+ movs r1, 0xA
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ ldr r0, _08070528 @ =gMain
+ ldr r1, _0807052C @ =0x0000043d
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0807053C
+ ldr r2, _08070530 @ =gTasks
+ ldr r0, _08070534 @ =0x0201c000
+ ldrb r1, [r0, 0x4]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldr r1, _08070538 @ =SetUpBattlePokemonMenu
+ b _0807054C
+ .align 2, 0
+_08070528: .4byte gMain
+_0807052C: .4byte 0x0000043d
+_08070530: .4byte gTasks
+_08070534: .4byte 0x0201c000
+_08070538: .4byte SetUpBattlePokemonMenu
+_0807053C:
+ ldr r2, _08070564 @ =gTasks
+ ldr r0, _08070568 @ =0x0201c000
+ ldrb r1, [r0, 0x4]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldr r1, _0807056C @ =sub_808B0C0
+_0807054C:
+ str r1, [r0]
+ movs r0, 0x3
+ movs r1, 0
+ bl sub_806D538
+ adds r0, r4, 0
+ bl DestroyTask
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08070564: .4byte gTasks
+_08070568: .4byte 0x0201c000
+_0807056C: .4byte sub_808B0C0
+ thumb_func_end ItemUseMoveMenu_HandleCancel
+
+ thumb_func_start DoRecoverPP
+DoRecoverPP: @ 8070570
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r5, 0
+ ldr r6, _080705A8 @ =0x0201c000
+ ldrb r0, [r6, 0x5]
+ ldrh r1, [r6, 0x6]
+ ldr r3, _080705AC @ =gTasks
+ lsls r2, r4, 2
+ adds r2, r4
+ lsls r2, 3
+ adds r7, r2, r3
+ ldrb r2, [r7, 0x1E]
+ bl ExecuteTableBasedItemEffect__
+ lsls r0, 24
+ cmp r0, 0
+ beq _080705B8
+ ldr r0, _080705B0 @ =gUnknown_0202E8F4
+ strb r5, [r0]
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _080705B4 @ =gOtherText_WontHaveAnyEffect
+ movs r1, 0x1
+ bl sub_806E834
+ b _080705F8
+ .align 2, 0
+_080705A8: .4byte 0x0201c000
+_080705AC: .4byte gTasks
+_080705B0: .4byte gUnknown_0202E8F4
+_080705B4: .4byte gOtherText_WontHaveAnyEffect
+_080705B8:
+ ldr r1, _0807060C @ =gUnknown_0202E8F4
+ movs r0, 0x1
+ strb r0, [r1]
+ movs r0, 0x1
+ bl PlaySE
+ ldrh r0, [r6, 0x6]
+ movs r1, 0x1
+ bl RemoveBagItem
+ ldr r0, [r6]
+ movs r2, 0x1E
+ ldrsh r1, [r7, r2]
+ adds r1, 0xD
+ bl GetMonData
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldr r0, _08070610 @ =gStringVar1
+ movs r1, 0xD
+ muls r1, r5
+ ldr r2, _08070614 @ =gMoveNames
+ adds r1, r2
+ bl StringCopy
+ ldrh r0, [r6, 0x6]
+ bl GetMedicineItemEffectMessage
+ ldr r0, _08070618 @ =gStringVar4
+ movs r1, 0x1
+ bl sub_806E834
+_080705F8:
+ ldr r0, _0807061C @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _08070620 @ =sub_806FB0C
+ str r0, [r1]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807060C: .4byte gUnknown_0202E8F4
+_08070610: .4byte gStringVar1
+_08070614: .4byte gMoveNames
+_08070618: .4byte gStringVar4
+_0807061C: .4byte gTasks
+_08070620: .4byte sub_806FB0C
+ thumb_func_end DoRecoverPP
+
+ thumb_func_start DoPPUpItemEffect
+DoPPUpItemEffect: @ 8070624
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 16
+ lsrs r1, 16
+ ldr r4, _0807066C @ =gTasks
+ lsls r3, r0, 2
+ adds r3, r0
+ lsls r3, 3
+ adds r3, r4
+ ldr r4, _08070670 @ =TaskDummy
+ str r4, [r3]
+ bl sub_806E8D0
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0xB
+ movs r1, 0x3
+ bl sub_806D538
+ ldr r0, _08070674 @ =0x0201c000
+ ldrb r0, [r0, 0x5]
+ bl CreateItemUseMoveMenu
+ ldr r0, _08070678 @ =Task_HandleItemUseMoveMenuInput
+ movs r1, 0x5
+ bl CreateTask
+ ldr r1, _0807067C @ =gMain
+ movs r0, 0
+ strh r0, [r1, 0x2E]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807066C: .4byte gTasks
+_08070670: .4byte TaskDummy
+_08070674: .4byte 0x0201c000
+_08070678: .4byte Task_HandleItemUseMoveMenuInput
+_0807067C: .4byte gMain
+ thumb_func_end DoPPUpItemEffect
+
+ thumb_func_start DoRareCandyItemEffect
+DoRareCandyItemEffect: @ 8070680
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 16
+ lsrs r6, r1, 16
+ ldr r3, _080706E0 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r3
+ ldr r3, _080706E4 @ =TaskDummy
+ str r3, [r1]
+ adds r1, r6, 0
+ bl sub_806E8D0
+ ldr r5, _080706E8 @ =0x0201c000
+ ldr r0, [r5]
+ movs r1, 0x38
+ bl GetMonData
+ cmp r0, 0x64
+ beq _080706F4
+ movs r4, 0
+ ldr r0, _080706EC @ =0xfffff264
+ adds r7, r5, r0
+_080706B2:
+ ldr r0, [r5]
+ ldr r1, _080706F0 @ =gUnknown_08376D1C
+ adds r1, r4, r1
+ ldrb r1, [r1]
+ bl GetMonData
+ lsls r1, r4, 1
+ adds r1, r7, r1
+ strh r0, [r1]
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x5
+ bls _080706B2
+ ldr r0, _080706E8 @ =0x0201c000
+ ldrb r0, [r0, 0x5]
+ adds r1, r6, 0
+ movs r2, 0
+ bl ExecuteTableBasedItemEffect__
+ lsls r0, 24
+ lsrs r0, 24
+ b _080706F6
+ .align 2, 0
+_080706E0: .4byte gTasks
+_080706E4: .4byte TaskDummy
+_080706E8: .4byte 0x0201c000
+_080706EC: .4byte 0xfffff264
+_080706F0: .4byte gUnknown_08376D1C
+_080706F4:
+ movs r0, 0x1
+_080706F6:
+ cmp r0, 0
+ beq _08070724
+ ldr r1, _08070718 @ =gUnknown_0202E8F4
+ movs r0, 0
+ strb r0, [r1]
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _0807071C @ =gOtherText_WontHaveAnyEffect
+ movs r1, 0x1
+ bl sub_806E834
+ ldr r0, _08070720 @ =sub_806FB0C
+ movs r1, 0x5
+ bl CreateTask
+ b _0807077C
+ .align 2, 0
+_08070718: .4byte gUnknown_0202E8F4
+_0807071C: .4byte gOtherText_WontHaveAnyEffect
+_08070720: .4byte sub_806FB0C
+_08070724:
+ ldr r1, _08070784 @ =gUnknown_0202E8F4
+ movs r0, 0x1
+ strb r0, [r1]
+ movs r0, 0
+ bl PlayFanfareByFanfareNum
+ ldr r4, _08070788 @ =0x0201c000
+ ldrb r0, [r4, 0x5]
+ ldr r1, [r4]
+ bl sub_8070A20
+ adds r0, r6, 0
+ movs r1, 0x1
+ bl RemoveBagItem
+ ldr r0, [r4]
+ ldr r1, _0807078C @ =gStringVar1
+ bl GetMonNickname
+ ldr r0, [r4]
+ movs r1, 0x38
+ bl GetMonData
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r0, _08070790 @ =gStringVar2
+ movs r2, 0
+ movs r3, 0x3
+ bl ConvertIntToDecimalStringN
+ ldr r4, _08070794 @ =gStringVar4
+ ldr r1, _08070798 @ =gOtherText_ElevatedTo
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_806E834
+ ldr r0, _0807079C @ =Task_RareCandy1
+ movs r1, 0x5
+ bl CreateTask
+_0807077C:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08070784: .4byte gUnknown_0202E8F4
+_08070788: .4byte 0x0201c000
+_0807078C: .4byte gStringVar1
+_08070790: .4byte gStringVar2
+_08070794: .4byte gStringVar4
+_08070798: .4byte gOtherText_ElevatedTo
+_0807079C: .4byte Task_RareCandy1
+ thumb_func_end DoRareCandyItemEffect
+
+ thumb_func_start Task_RareCandy1
+Task_RareCandy1: @ 80707A0
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r0, 0
+ bl WaitFanfare
+ lsls r0, 24
+ cmp r0, 0
+ beq _080707E8
+ ldr r0, _080707F0 @ =gUnknown_0202E8F6
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080707E8
+ ldr r0, _080707F4 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _080707CE
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080707E8
+_080707CE:
+ movs r0, 0x5
+ bl PlaySE
+ adds r0, r4, 0
+ bl sub_8070848
+ ldr r0, _080707F8 @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _080707FC @ =Task_RareCandy2
+ str r0, [r1]
+_080707E8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080707F0: .4byte gUnknown_0202E8F6
+_080707F4: .4byte gMain
+_080707F8: .4byte gTasks
+_080707FC: .4byte Task_RareCandy2
+ thumb_func_end Task_RareCandy1
+
+ thumb_func_start Task_RareCandy2
+Task_RareCandy2: @ 8070800
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0807083C @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _0807081A
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _08070834
+_0807081A:
+ movs r0, 0x5
+ bl PlaySE
+ adds r0, r4, 0
+ bl sub_8070968
+ ldr r0, _08070840 @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _08070844 @ =Task_RareCandy3
+ str r0, [r1]
+_08070834:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807083C: .4byte gMain
+_08070840: .4byte gTasks
+_08070844: .4byte Task_RareCandy3
+ thumb_func_end Task_RareCandy2
+
+ .section .text_8070968
+
+ thumb_func_start sub_8070968
+sub_8070968: @ 8070968
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ movs r7, 0
+ ldr r0, _08070A10 @ =0x0201c000
+ mov r9, r0
+ ldr r1, _08070A14 @ =0xfffff264
+ add r1, r9
+ mov r10, r1
+ ldr r0, _08070A18 @ =gStringVar1
+ mov r8, r0
+_08070982:
+ mov r1, r9
+ ldr r0, [r1]
+ ldr r1, _08070A1C @ =gUnknown_08376D1C
+ adds r1, r7, r1
+ ldrb r1, [r1]
+ bl GetMonData
+ adds r6, r7, 0x6
+ lsls r6, 1
+ add r6, r10
+ strh r0, [r6]
+ adds r0, r7, 0
+ movs r1, 0x3
+ bl __udivsi3
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 3
+ adds r4, r0
+ adds r4, 0xB
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r7, 0
+ movs r1, 0x3
+ bl __umodsi3
+ adds r5, r0, 0
+ lsls r5, 1
+ adds r5, 0x1
+ lsls r5, 24
+ lsrs r5, 24
+ movs r0, 0xFC
+ mov r1, r8
+ strb r0, [r1]
+ movs r0, 0x14
+ strb r0, [r1, 0x1]
+ movs r0, 0x6
+ strb r0, [r1, 0x2]
+ movs r0, 0
+ ldrsh r1, [r6, r0]
+ mov r0, r8
+ adds r0, 0x3
+ movs r2, 0x1
+ movs r3, 0x3
+ bl ConvertIntToDecimalStringN
+ adds r4, 0x6
+ lsls r4, 3
+ adds r4, 0x6
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, 3
+ mov r0, r8
+ adds r1, r4, 0
+ adds r2, r5, 0
+ movs r3, 0
+ bl MenuPrint_PixelCoords
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ cmp r7, 0x5
+ bls _08070982
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08070A10: .4byte 0x0201c000
+_08070A14: .4byte 0xfffff264
+_08070A18: .4byte gStringVar1
+_08070A1C: .4byte gUnknown_08376D1C
+ thumb_func_end sub_8070968
+
+ thumb_func_start sub_8070A20
+sub_8070A20: @ 8070A20
+ push {r4-r7,lr}
+ adds r6, r1, 0
+ lsls r0, 24
+ lsrs r7, r0, 24
+ adds r0, r6, 0
+ bl GetMonStatusAndPokerus
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ beq _08070A3A
+ cmp r0, 0x6
+ bne _08070A42
+_08070A3A:
+ adds r0, r6, 0
+ adds r1, r7, 0
+ bl PartyMenuUpdateLevelOrStatus
+_08070A42:
+ bl IsDoubleBattle
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ adds r0, r6, 0
+ movs r1, 0x39
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r6, 0
+ movs r1, 0x3A
+ bl GetMonData
+ adds r3, r0, 0
+ lsls r3, 16
+ lsrs r3, 16
+ adds r0, r7, 0
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl PartyMenuDoPrintHP
+ adds r0, r7, 0
+ adds r1, r6, 0
+ bl PartyMenuTryDrawHPBar
+ ldr r4, _08070ABC @ =0x0201c000
+ ldrb r0, [r4, 0x4]
+ adds r1, r7, 0
+ bl GetMonIconSpriteId_maybe
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r6, 0
+ bl SetMonIconAnim
+ bl IsDoubleBattle
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ lsls r1, r7, 1
+ adds r0, r1
+ ldr r1, _08070AC0 @ =gUnknown_083769A8
+ adds r0, r1
+ movs r1, 0x7
+ bl task_pc_turn_off
+ ldr r0, _08070AC4 @ =0xfffff261
+ adds r4, r0
+ movs r0, 0x2
+ strb r0, [r4]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08070ABC: .4byte 0x0201c000
+_08070AC0: .4byte gUnknown_083769A8
+_08070AC4: .4byte 0xfffff261
+ thumb_func_end sub_8070A20
+
+ thumb_func_start Task_RareCandy3
+Task_RareCandy3: @ 8070AC8
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r0, 0
+ bl WaitFanfare
+ lsls r0, 24
+ cmp r0, 0
+ bne _08070ADC
+ b _08070C2C
+_08070ADC:
+ ldr r0, _08070B24 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r5, 0x1
+ adds r0, r5, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _08070AF4
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ bne _08070AF4
+ b _08070C2C
+_08070AF4:
+ movs r0, 0xB
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x7
+ bl MenuZeroFillWindowRect
+ ldr r7, _08070B28 @ =0x0201c000
+ ldr r0, [r7]
+ movs r1, 0x1
+ bl sub_803B7C8
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldr r1, _08070B2C @ =0xfffff282
+ adds r0, r7, r1
+ strh r5, [r0]
+ ldr r0, _08070B30 @ =0x0000fffe
+ cmp r4, r0
+ beq _08070BDC
+ cmp r4, r0
+ bgt _08070B34
+ cmp r4, 0
+ beq _08070B40
+ b _08070BF4
+ .align 2, 0
+_08070B24: .4byte gMain
+_08070B28: .4byte 0x0201c000
+_08070B2C: .4byte 0xfffff282
+_08070B30: .4byte 0x0000fffe
+_08070B34:
+ ldr r0, _08070B3C @ =0x0000ffff
+ cmp r4, r0
+ beq _08070B7C
+ b _08070BF4
+ .align 2, 0
+_08070B3C: .4byte 0x0000ffff
+_08070B40:
+ ldr r0, [r7]
+ movs r1, 0
+ movs r2, 0
+ bl GetEvolutionTargetSpecies
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0
+ beq _08070B74
+ ldr r1, _08070B6C @ =gUnknown_03005E94
+ ldr r0, _08070B70 @ =sub_80A53F8
+ str r0, [r1]
+ ldr r0, [r7]
+ ldrb r3, [r7, 0x5]
+ adds r1, r2, 0
+ movs r2, 0x1
+ bl BeginEvolutionScene
+ adds r0, r6, 0
+ bl DestroyTask
+ b _08070C2C
+ .align 2, 0
+_08070B6C: .4byte gUnknown_03005E94
+_08070B70: .4byte sub_80A53F8
+_08070B74:
+ adds r0, r6, 0
+ bl sub_8070D90
+ b _08070C2C
+_08070B7C:
+ ldr r0, [r7]
+ ldr r1, _08070BBC @ =gStringVar1
+ bl GetMonNickname
+ ldr r0, _08070BC0 @ =gStringVar2
+ ldr r5, _08070BC4 @ =word_2024E82
+ ldrh r2, [r5]
+ movs r1, 0xD
+ muls r1, r2
+ ldr r2, _08070BC8 @ =gMoveNames
+ adds r1, r2
+ bl StringCopy
+ ldr r4, _08070BCC @ =gStringVar4
+ ldr r1, _08070BD0 @ =gOtherText_WantsToLearn
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_806E834
+ ldrh r0, [r5]
+ strh r0, [r7, 0x8]
+ ldr r1, _08070BD4 @ =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _08070BD8 @ =sub_806F358
+ b _08070C2A
+ .align 2, 0
+_08070BBC: .4byte gStringVar1
+_08070BC0: .4byte gStringVar2
+_08070BC4: .4byte word_2024E82
+_08070BC8: .4byte gMoveNames
+_08070BCC: .4byte gStringVar4
+_08070BD0: .4byte gOtherText_WantsToLearn
+_08070BD4: .4byte gTasks
+_08070BD8: .4byte sub_806F358
+_08070BDC:
+ ldr r0, _08070BEC @ =gTasks
+ lsls r1, r6, 2
+ adds r1, r6
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _08070BF0 @ =sub_8070C54
+ str r0, [r1]
+ b _08070C2C
+ .align 2, 0
+_08070BEC: .4byte gTasks
+_08070BF0: .4byte sub_8070C54
+_08070BF4:
+ ldr r0, _08070C34 @ =0x0201c000
+ ldr r0, [r0]
+ ldr r1, _08070C38 @ =gStringVar1
+ bl GetMonNickname
+ ldr r0, _08070C3C @ =gStringVar2
+ movs r1, 0xD
+ muls r1, r4
+ ldr r2, _08070C40 @ =gMoveNames
+ adds r1, r2
+ bl StringCopy
+ ldr r4, _08070C44 @ =gStringVar4
+ ldr r1, _08070C48 @ =gOtherText_LearnedMove
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_806E834
+ ldr r1, _08070C4C @ =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _08070C50 @ =Task_TeamMonTMMove3
+_08070C2A:
+ str r1, [r0]
+_08070C2C:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08070C34: .4byte 0x0201c000
+_08070C38: .4byte gStringVar1
+_08070C3C: .4byte gStringVar2
+_08070C40: .4byte gMoveNames
+_08070C44: .4byte gStringVar4
+_08070C48: .4byte gOtherText_LearnedMove
+_08070C4C: .4byte gTasks
+_08070C50: .4byte Task_TeamMonTMMove3
+ thumb_func_end Task_RareCandy3
+
+ thumb_func_start sub_8070C54
+sub_8070C54: @ 8070C54
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r7, _08070C78 @ =0x0201c000
+ ldr r0, [r7]
+ movs r1, 0
+ bl sub_803B7C8
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldr r0, _08070C7C @ =0x0000fffe
+ cmp r4, r0
+ beq _08070D28
+ cmp r4, r0
+ bgt _08070C80
+ cmp r4, 0
+ beq _08070C8C
+ b _08070D30
+ .align 2, 0
+_08070C78: .4byte 0x0201c000
+_08070C7C: .4byte 0x0000fffe
+_08070C80:
+ ldr r0, _08070C88 @ =0x0000ffff
+ cmp r4, r0
+ beq _08070CC8
+ b _08070D30
+ .align 2, 0
+_08070C88: .4byte 0x0000ffff
+_08070C8C:
+ ldr r0, [r7]
+ movs r1, 0
+ movs r2, 0
+ bl GetEvolutionTargetSpecies
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0
+ beq _08070CC0
+ ldr r1, _08070CB8 @ =gUnknown_03005E94
+ ldr r0, _08070CBC @ =sub_80A53F8
+ str r0, [r1]
+ ldr r0, [r7]
+ ldrb r3, [r7, 0x5]
+ adds r1, r2, 0
+ movs r2, 0x1
+ bl BeginEvolutionScene
+ adds r0, r6, 0
+ bl DestroyTask
+ b _08070D68
+ .align 2, 0
+_08070CB8: .4byte gUnknown_03005E94
+_08070CBC: .4byte sub_80A53F8
+_08070CC0:
+ adds r0, r6, 0
+ bl sub_8070D90
+ b _08070D68
+_08070CC8:
+ ldr r0, [r7]
+ ldr r1, _08070D08 @ =gStringVar1
+ bl GetMonNickname
+ ldr r0, _08070D0C @ =gStringVar2
+ ldr r5, _08070D10 @ =word_2024E82
+ ldrh r2, [r5]
+ movs r1, 0xD
+ muls r1, r2
+ ldr r2, _08070D14 @ =gMoveNames
+ adds r1, r2
+ bl StringCopy
+ ldr r4, _08070D18 @ =gStringVar4
+ ldr r1, _08070D1C @ =gOtherText_WantsToLearn
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_806E834
+ ldrh r0, [r5]
+ strh r0, [r7, 0x8]
+ ldr r1, _08070D20 @ =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _08070D24 @ =sub_806F358
+ b _08070D66
+ .align 2, 0
+_08070D08: .4byte gStringVar1
+_08070D0C: .4byte gStringVar2
+_08070D10: .4byte word_2024E82
+_08070D14: .4byte gMoveNames
+_08070D18: .4byte gStringVar4
+_08070D1C: .4byte gOtherText_WantsToLearn
+_08070D20: .4byte gTasks
+_08070D24: .4byte sub_806F358
+_08070D28:
+ adds r0, r6, 0
+ bl sub_8070C54
+ b _08070D68
+_08070D30:
+ ldr r0, _08070D70 @ =0x0201c000
+ ldr r0, [r0]
+ ldr r1, _08070D74 @ =gStringVar1
+ bl GetMonNickname
+ ldr r0, _08070D78 @ =gStringVar2
+ movs r1, 0xD
+ muls r1, r4
+ ldr r2, _08070D7C @ =gMoveNames
+ adds r1, r2
+ bl StringCopy
+ ldr r4, _08070D80 @ =gStringVar4
+ ldr r1, _08070D84 @ =gOtherText_LearnedMove
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_806E834
+ ldr r1, _08070D88 @ =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _08070D8C @ =Task_TeamMonTMMove3
+_08070D66:
+ str r1, [r0]
+_08070D68:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08070D70: .4byte 0x0201c000
+_08070D74: .4byte gStringVar1
+_08070D78: .4byte gStringVar2
+_08070D7C: .4byte gMoveNames
+_08070D80: .4byte gStringVar4
+_08070D84: .4byte gOtherText_LearnedMove
+_08070D88: .4byte gTasks
+_08070D8C: .4byte Task_TeamMonTMMove3
+ thumb_func_end sub_8070C54
+
+ thumb_func_start sub_8070D90
+sub_8070D90: @ 8070D90
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r4, _08070DB4 @ =gTasks
+ ldr r3, _08070DB8 @ =0x0201c000
+ ldrb r2, [r3, 0x4]
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 3
+ adds r1, r4
+ ldr r2, [r3, 0x10]
+ str r2, [r1]
+ bl DestroyTask
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08070DB4: .4byte gTasks
+_08070DB8: .4byte 0x0201c000
+ thumb_func_end sub_8070D90
+
+ thumb_func_start DoEvolutionStoneItemEffect
+DoEvolutionStoneItemEffect: @ 8070DBC
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ adds r5, r2, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r1, 16
+ lsrs r6, r1, 16
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, _08070E18 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _08070E1C @ =TaskDummy
+ str r1, [r0]
+ adds r0, r4, 0
+ adds r1, r6, 0
+ adds r2, r5, 0
+ bl sub_806E8D0
+ ldr r1, _08070E20 @ =gUnknown_03005E94
+ ldr r0, _08070E24 @ =sub_80A53F8
+ str r0, [r1]
+ ldr r0, _08070E28 @ =0x0201c000
+ ldrb r0, [r0, 0x5]
+ adds r1, r6, 0
+ movs r2, 0
+ bl ExecuteTableBasedItemEffect__
+ lsls r0, 24
+ cmp r0, 0
+ beq _08070E38
+ ldr r1, _08070E2C @ =gUnknown_0202E8F4
+ movs r0, 0
+ strb r0, [r1]
+ ldr r0, _08070E30 @ =gOtherText_WontHaveAnyEffect
+ movs r1, 0x1
+ bl sub_806E834
+ ldr r0, _08070E34 @ =sub_806FB0C
+ movs r1, 0x5
+ bl CreateTask
+ b _08070E40
+ .align 2, 0
+_08070E18: .4byte gTasks
+_08070E1C: .4byte TaskDummy
+_08070E20: .4byte gUnknown_03005E94
+_08070E24: .4byte sub_80A53F8
+_08070E28: .4byte 0x0201c000
+_08070E2C: .4byte gUnknown_0202E8F4
+_08070E30: .4byte gOtherText_WontHaveAnyEffect
+_08070E34: .4byte sub_806FB0C
+_08070E38:
+ adds r0, r6, 0
+ movs r1, 0x1
+ bl RemoveBagItem
+_08070E40:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end DoEvolutionStoneItemEffect
+
+ thumb_func_start GetItemEffectType
+GetItemEffectType: @ 8070E48
+ push {r4,r5,lr}
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0xAF
+ bne _08070E5C
+ ldr r4, _08070E58 @ =gSaveBlock1 + 0x3676
+ b _08070E66
+ .align 2, 0
+_08070E58: .4byte gSaveBlock1 + 0x3676
+_08070E5C:
+ ldr r1, _08070E8C @ =gItemEffectTable
+ subs r0, 0xD
+ lsls r0, 2
+ adds r0, r1
+ ldr r4, [r0]
+_08070E66:
+ ldrb r1, [r4]
+ movs r5, 0x3F
+ adds r0, r5, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _08070E88
+ ldrb r0, [r4, 0x1]
+ cmp r0, 0
+ bne _08070E88
+ ldrb r0, [r4, 0x2]
+ cmp r0, 0
+ bne _08070E88
+ ldrb r3, [r4, 0x3]
+ movs r0, 0x80
+ ands r0, r3
+ cmp r0, 0
+ beq _08070E90
+_08070E88:
+ movs r0, 0
+ b _08070F8A
+ .align 2, 0
+_08070E8C: .4byte gItemEffectTable
+_08070E90:
+ movs r2, 0x40
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _08070E9E
+ movs r0, 0xA
+ b _08070F8A
+_08070E9E:
+ adds r0, r2, 0
+ ands r0, r3
+ cmp r0, 0
+ beq _08070EAA
+ movs r0, 0x1
+ b _08070F8A
+_08070EAA:
+ adds r2, r5, 0
+ ands r2, r3
+ cmp r2, 0
+ bne _08070EB8
+ lsrs r0, r1, 7
+ cmp r0, 0
+ beq _08070EFA
+_08070EB8:
+ cmp r2, 0x20
+ bne _08070EC0
+ movs r0, 0x4
+ b _08070F8A
+_08070EC0:
+ cmp r2, 0x10
+ bne _08070EC8
+ movs r0, 0x3
+ b _08070F8A
+_08070EC8:
+ cmp r2, 0x8
+ bne _08070ED0
+ movs r0, 0x5
+ b _08070F8A
+_08070ED0:
+ cmp r2, 0x4
+ bne _08070ED8
+ movs r0, 0x6
+ b _08070F8A
+_08070ED8:
+ cmp r2, 0x2
+ bne _08070EE0
+ movs r0, 0x7
+ b _08070F8A
+_08070EE0:
+ cmp r2, 0x1
+ bne _08070EE8
+ movs r0, 0x8
+ b _08070F8A
+_08070EE8:
+ lsrs r0, r1, 7
+ cmp r0, 0
+ beq _08070EF6
+ cmp r2, 0
+ bne _08070EF6
+ movs r0, 0x9
+ b _08070F8A
+_08070EF6:
+ movs r0, 0xB
+ b _08070F8A
+_08070EFA:
+ ldrb r1, [r4, 0x4]
+ movs r0, 0x44
+ ands r0, r1
+ adds r2, r1, 0
+ cmp r0, 0
+ beq _08070F0A
+ movs r0, 0x2
+ b _08070F8A
+_08070F0A:
+ movs r5, 0x2
+ adds r0, r5, 0
+ ands r0, r2
+ cmp r0, 0
+ beq _08070F18
+ movs r0, 0xC
+ b _08070F8A
+_08070F18:
+ movs r3, 0x1
+ adds r0, r3, 0
+ ands r0, r2
+ cmp r0, 0
+ beq _08070F26
+ movs r0, 0xD
+ b _08070F8A
+_08070F26:
+ ldrb r1, [r4, 0x5]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _08070F34
+ movs r0, 0xE
+ b _08070F8A
+_08070F34:
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _08070F40
+ movs r0, 0xF
+ b _08070F8A
+_08070F40:
+ adds r0, r5, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _08070F4C
+ movs r0, 0x10
+ b _08070F8A
+_08070F4C:
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _08070F58
+ movs r0, 0x11
+ b _08070F8A
+_08070F58:
+ movs r0, 0x80
+ ands r0, r2
+ cmp r0, 0
+ beq _08070F64
+ movs r0, 0x12
+ b _08070F8A
+_08070F64:
+ movs r0, 0x20
+ ands r0, r2
+ cmp r0, 0
+ beq _08070F70
+ movs r0, 0x13
+ b _08070F8A
+_08070F70:
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _08070F7C
+ movs r0, 0x14
+ b _08070F8A
+_08070F7C:
+ movs r0, 0x18
+ ands r0, r2
+ cmp r0, 0
+ bne _08070F88
+ movs r0, 0x16
+ b _08070F8A
+_08070F88:
+ movs r0, 0x15
+_08070F8A:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end GetItemEffectType
+
+ thumb_func_start unref_sub_8070F90
+unref_sub_8070F90: @ 8070F90
+ push {lr}
+ ldr r0, _08070FAC @ =0x00000801
+ bl FlagSet
+ movs r0, 0x80
+ lsls r0, 4
+ bl FlagSet
+ ldr r0, _08070FB0 @ =0x00000802
+ bl FlagSet
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08070FAC: .4byte 0x00000801
+_08070FB0: .4byte 0x00000802
+ thumb_func_end unref_sub_8070F90
+
.align 2, 0 @ Don't pad with nop.
diff --git a/asm/player_pc.s b/asm/player_pc.s
index da2792564..124891c02 100644
--- a/asm/player_pc.s
+++ b/asm/player_pc.s
@@ -6,1185 +6,6 @@
.text
- thumb_func_start NewGameInitPCItems
-NewGameInitPCItems: @ 8139C18
- push {r4-r6,lr}
- movs r4, 0
- ldr r0, _08139C6C @ =gSaveBlock1 + 0x498
- movs r1, 0x32
- bl ClearItemSlots
- ldr r1, _08139C70 @ =gNewGamePCItems
- ldrh r0, [r1]
- cmp r0, 0
- beq _08139C64
- ldrh r0, [r1, 0x2]
- cmp r0, 0
- beq _08139C64
- adds r5, r1, 0
- adds r6, r5, 0x2
-_08139C36:
- lsls r1, r4, 2
- adds r0, r1, r5
- ldrh r0, [r0]
- adds r1, r6
- ldrh r1, [r1]
- bl AddPCItem
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08139C64
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, r4, 2
- adds r0, r1, r5
- ldrh r0, [r0]
- cmp r0, 0
- beq _08139C64
- adds r0, r1, r6
- ldrh r0, [r0]
- cmp r0, 0
- bne _08139C36
-_08139C64:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08139C6C: .4byte gSaveBlock1 + 0x498
-_08139C70: .4byte gNewGamePCItems
- thumb_func_end NewGameInitPCItems
-
- thumb_func_start BedroomPC
-BedroomPC: @ 8139C74
- push {lr}
- ldr r1, _08139C9C @ =gUnknown_02039314
- ldr r0, _08139CA0 @ =gUnknown_084062B8
- str r0, [r1]
- ldr r1, _08139CA4 @ =gUnknown_030007B4
- movs r0, 0x4
- strb r0, [r1]
- ldr r0, _08139CA8 @ =TaskDummy
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _08139CAC @ =gOtherText_WhatWillYouDo
- ldr r2, _08139CB0 @ =InitPlayerPCMenu
- movs r3, 0
- bl DisplayItemMessageOnField
- pop {r0}
- bx r0
- .align 2, 0
-_08139C9C: .4byte gUnknown_02039314
-_08139CA0: .4byte gUnknown_084062B8
-_08139CA4: .4byte gUnknown_030007B4
-_08139CA8: .4byte TaskDummy
-_08139CAC: .4byte gOtherText_WhatWillYouDo
-_08139CB0: .4byte InitPlayerPCMenu
- thumb_func_end BedroomPC
-
- thumb_func_start PlayerPC
-PlayerPC: @ 8139CB4
- push {lr}
- ldr r1, _08139CDC @ =gUnknown_02039314
- ldr r0, _08139CE0 @ =gUnknown_084062BC
- str r0, [r1]
- ldr r1, _08139CE4 @ =gUnknown_030007B4
- movs r0, 0x3
- strb r0, [r1]
- ldr r0, _08139CE8 @ =TaskDummy
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _08139CEC @ =gOtherText_WhatWillYouDo
- ldr r2, _08139CF0 @ =InitPlayerPCMenu
- movs r3, 0
- bl DisplayItemMessageOnField
- pop {r0}
- bx r0
- .align 2, 0
-_08139CDC: .4byte gUnknown_02039314
-_08139CE0: .4byte gUnknown_084062BC
-_08139CE4: .4byte gUnknown_030007B4
-_08139CE8: .4byte TaskDummy
-_08139CEC: .4byte gOtherText_WhatWillYouDo
-_08139CF0: .4byte InitPlayerPCMenu
- thumb_func_end PlayerPC
-
- thumb_func_start InitPlayerPCMenu
-InitPlayerPCMenu: @ 8139CF4
- push {r4,r5,lr}
- sub sp, 0x8
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r5, _08139D50 @ =gUnknown_030007B4
- ldrb r3, [r5]
- lsls r3, 1
- adds r3, 0x1
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0
- movs r1, 0
- movs r2, 0xA
- bl MenuDrawTextWindow
- ldrb r2, [r5]
- ldr r3, _08139D54 @ =gUnknown_08406298
- ldr r0, _08139D58 @ =gUnknown_02039314
- ldr r0, [r0]
- str r0, [sp]
- movs r0, 0x1
- movs r1, 0x1
- bl PrintMenuItemsReordered
- ldrb r3, [r5]
- movs r0, 0
- str r0, [sp]
- movs r0, 0x9
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x1
- bl InitMenu
- ldr r1, _08139D5C @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _08139D60 @ =PlayerPCProcessMenuInput
- str r1, [r0]
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08139D50: .4byte gUnknown_030007B4
-_08139D54: .4byte gUnknown_08406298
-_08139D58: .4byte gUnknown_02039314
-_08139D5C: .4byte gTasks
-_08139D60: .4byte PlayerPCProcessMenuInput
- thumb_func_end InitPlayerPCMenu
-
- thumb_func_start PlayerPCProcessMenuInput
-PlayerPCProcessMenuInput: @ 8139D64
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- adds r4, r5, 0
- ldr r2, _08139D88 @ =gMain
- ldrh r1, [r2, 0x30]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08139D8C
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- negs r0, r0
- bl MoveMenuCursor
- b _08139E10
- .align 2, 0
-_08139D88: .4byte gMain
-_08139D8C:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08139DA2
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- bl MoveMenuCursor
- b _08139E10
-_08139DA2:
- ldrh r1, [r2, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08139DE0
- bl sub_8072DEC
- movs r0, 0x5
- bl PlaySE
- ldr r4, _08139DD8 @ =gUnknown_08406298
- bl GetMenuCursorPos
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _08139DDC @ =gUnknown_02039314
- 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 _08139E10
- .align 2, 0
-_08139DD8: .4byte gUnknown_08406298
-_08139DDC: .4byte gUnknown_02039314
-_08139DE0:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08139E10
- bl sub_8072DEC
- movs r0, 0x5
- bl PlaySE
- ldr r2, _08139E18 @ =gUnknown_08406298
- ldr r0, _08139E1C @ =gUnknown_030007B4
- ldrb r0, [r0]
- ldr r1, _08139E20 @ =gUnknown_02039314
- ldr r1, [r1]
- adds r0, r1
- subs r0, 0x1
- ldrb r0, [r0]
- lsls r0, 3
- adds r2, 0x4
- adds r0, r2
- ldr r1, [r0]
- adds r0, r4, 0
- bl _call_via_r1
-_08139E10:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08139E18: .4byte gUnknown_08406298
-_08139E1C: .4byte gUnknown_030007B4
-_08139E20: .4byte gUnknown_02039314
- thumb_func_end PlayerPCProcessMenuInput
-
- thumb_func_start ReshowPlayerPC
-ReshowPlayerPC: @ 8139E24
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _08139E38 @ =gOtherText_WhatWillYouDo
- ldr r2, _08139E3C @ =InitPlayerPCMenu
- movs r3, 0
- bl DisplayItemMessageOnField
- pop {r0}
- bx r0
- .align 2, 0
-_08139E38: .4byte gOtherText_WhatWillYouDo
-_08139E3C: .4byte InitPlayerPCMenu
- thumb_func_end ReshowPlayerPC
-
- thumb_func_start PlayerPC_ItemStorage
-PlayerPC_ItemStorage: @ 8139E40
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0
- bl InitItemStorageMenu
- ldr r1, _08139E64 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _08139E68 @ =ItemStorageMenuProcessInput
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08139E64: .4byte gTasks
-_08139E68: .4byte ItemStorageMenuProcessInput
- thumb_func_end PlayerPC_ItemStorage
-
- thumb_func_start PlayerPC_Mailbox
-PlayerPC_Mailbox: @ 8139E6C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0
- movs r1, 0
- movs r2, 0xA
- movs r3, 0x9
- bl MenuZeroFillWindowRect
- bl sub_813AF3C
- ldr r1, _08139E9C @ =0x0201fe00
- movs r2, 0
- strb r0, [r1, 0x3]
- lsls r0, 24
- cmp r0, 0
- bne _08139EA8
- ldr r1, _08139EA0 @ =gOtherText_NoMailHere
- ldr r2, _08139EA4 @ =ReshowPlayerPC
- adds r0, r4, 0
- movs r3, 0
- bl DisplayItemMessageOnField
- b _08139ECA
- .align 2, 0
-_08139E9C: .4byte 0x0201fe00
-_08139EA0: .4byte gOtherText_NoMailHere
-_08139EA4: .4byte ReshowPlayerPC
-_08139EA8:
- strb r2, [r1]
- strb r2, [r1, 0x2]
- bl sub_813AF78
- adds r0, r4, 0
- bl sub_813A240
- adds r0, r4, 0
- bl sub_813B108
- ldr r0, _08139ED0 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _08139ED4 @ =sub_813B174
- str r0, [r1]
-_08139ECA:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08139ED0: .4byte gTasks
-_08139ED4: .4byte sub_813B174
- thumb_func_end PlayerPC_Mailbox
-
- thumb_func_start PlayerPC_Decoration
-PlayerPC_Decoration: @ 8139ED8
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0
- movs r1, 0
- movs r2, 0xA
- movs r3, 0x9
- bl MenuZeroFillWindowRect
- adds r0, r4, 0
- bl DoPlayerPCDecoration
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end PlayerPC_Decoration
-
- thumb_func_start PlayerPC_TurnOff
-PlayerPC_TurnOff: @ 8139EF8
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08139F24 @ =gUnknown_030007B4
- ldrb r0, [r0]
- cmp r0, 0x4
- bne _08139F3C
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- ldr r0, _08139F28 @ =gSaveBlock2
- ldrb r0, [r0, 0x8]
- cmp r0, 0
- bne _08139F30
- ldr r0, _08139F2C @ =gUnknown_08152850
- bl ScriptContext1_SetupScript
- b _08139F4C
- .align 2, 0
-_08139F24: .4byte gUnknown_030007B4
-_08139F28: .4byte gSaveBlock2
-_08139F2C: .4byte gUnknown_08152850
-_08139F30:
- ldr r0, _08139F38 @ =gUnknown_08152C75
- bl ScriptContext1_SetupScript
- b _08139F4C
- .align 2, 0
-_08139F38: .4byte gUnknown_08152C75
-_08139F3C:
- movs r0, 0
- movs r1, 0
- movs r2, 0xA
- movs r3, 0x9
- bl MenuZeroFillWindowRect
- bl EnableBothScriptContexts
-_08139F4C:
- adds r0, r4, 0
- bl DestroyTask
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end PlayerPC_TurnOff
-
- thumb_func_start InitItemStorageMenu
-InitItemStorageMenu: @ 8139F58
- push {r4,lr}
- sub sp, 0x8
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0
- movs r1, 0
- movs r2, 0xA
- movs r3, 0x9
- bl MenuZeroFillWindowRect
- movs r0, 0
- movs r1, 0
- movs r2, 0xB
- movs r3, 0x9
- bl MenuDrawTextWindow
- ldr r3, _08139FAC @ =gUnknown_084062C0
- movs r0, 0x1
- movs r1, 0x1
- movs r2, 0x4
- bl PrintMenuItems
- str r4, [sp]
- movs r0, 0xA
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x1
- movs r3, 0x4
- bl InitMenu
- ldr r0, _08139FB0 @ =gUnknown_08406288
- lsls r4, 2
- adds r4, r0
- ldr r0, [r4]
- bl ItemStorageMenuPrint
- add sp, 0x8
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08139FAC: .4byte gUnknown_084062C0
-_08139FB0: .4byte gUnknown_08406288
- thumb_func_end InitItemStorageMenu
-
- thumb_func_start ItemStorageMenuPrint
-ItemStorageMenuPrint: @ 8139FB4
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x2
- movs r1, 0xF
- movs r2, 0x1B
- movs r3, 0x12
- bl MenuFillWindowRectWithBlankTile
- adds r0, r4, 0
- movs r1, 0x2
- movs r2, 0xF
- bl MenuPrint
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end ItemStorageMenuPrint
-
- thumb_func_start ItemStorageMenuProcessInput
-ItemStorageMenuProcessInput: @ 8139FD4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- adds r4, r5, 0
- ldr r2, _08139FF4 @ =gMain
- ldrh r1, [r2, 0x30]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08139FF8
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- negs r0, r0
- b _0813A008
- .align 2, 0
-_08139FF4: .4byte gMain
-_08139FF8:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0813A024
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
-_0813A008:
- bl MoveMenuCursor
- ldr r4, _0813A020 @ =gUnknown_08406288
- bl GetMenuCursorPos
- lsls r0, 24
- lsrs r0, 22
- adds r0, r4
- ldr r0, [r0]
- bl ItemStorageMenuPrint
- b _0813A06C
- .align 2, 0
-_0813A020: .4byte gUnknown_08406288
-_0813A024:
- ldrh r1, [r2, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0813A050
- movs r0, 0x5
- bl PlaySE
- ldr r4, _0813A04C @ =gUnknown_084062C0
- bl GetMenuCursorPos
- lsls r0, 24
- lsrs r0, 21
- adds r4, 0x4
- adds r0, r4
- ldr r1, [r0]
- adds r0, r5, 0
- bl _call_via_r1
- b _0813A06C
- .align 2, 0
-_0813A04C: .4byte gUnknown_084062C0
-_0813A050:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0813A06C
- bl sub_8072DEC
- movs r0, 0x5
- bl PlaySE
- ldr r0, _0813A074 @ =gUnknown_084062C0
- ldr r1, [r0, 0x1C]
- adds r0, r4, 0
- bl _call_via_r1
-_0813A06C:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0813A074: .4byte gUnknown_084062C0
- thumb_func_end ItemStorageMenuProcessInput
-
- thumb_func_start Task_ItemStorage_Deposit
-Task_ItemStorage_Deposit: @ 813A078
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0813A09C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0813A094
- bl sub_80A6A30
- adds r0, r4, 0
- bl DestroyTask
-_0813A094:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813A09C: .4byte gPaletteFade
- thumb_func_end Task_ItemStorage_Deposit
-
- thumb_func_start ItemStorage_Deposit
-ItemStorage_Deposit: @ 813A0A0
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0813A0C0 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r0, _0813A0C4 @ =Task_ItemStorage_Deposit
- str r0, [r1]
- movs r0, 0x1
- movs r1, 0
- bl fade_screen
- pop {r0}
- bx r0
- .align 2, 0
-_0813A0C0: .4byte gTasks
-_0813A0C4: .4byte Task_ItemStorage_Deposit
- thumb_func_end ItemStorage_Deposit
-
- thumb_func_start sub_813A0C8
-sub_813A0C8: @ 813A0C8
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_807D770
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0813A0E8
- ldr r0, _0813A0F0 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _0813A0F4 @ =ItemStorageMenuProcessInput
- str r0, [r1]
-_0813A0E8:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813A0F0: .4byte gTasks
-_0813A0F4: .4byte ItemStorageMenuProcessInput
- thumb_func_end sub_813A0C8
-
- thumb_func_start sub_813A0F8
-sub_813A0F8: @ 813A0F8
- push {lr}
- bl MenuDisplayMessageBox
- movs r0, 0x1
- bl InitItemStorageMenu
- ldr r0, _0813A114 @ =sub_813A0C8
- movs r1, 0
- bl CreateTask
- bl pal_fill_black
- pop {r0}
- bx r0
- .align 2, 0
-_0813A114: .4byte sub_813A0C8
- thumb_func_end sub_813A0F8
-
- thumb_func_start ItemStorage_Withdraw
-ItemStorage_Withdraw: @ 813A118
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r6, r0, 3
- ldr r7, _0813A174 @ =gTasks + 0x8
- adds r4, r6, r7
- bl sub_8072DEC
- movs r0, 0
- movs r1, 0
- movs r2, 0xB
- movs r3, 0x9
- bl MenuZeroFillWindowRect
- bl CountUsedPCItemSlots
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x4]
- cmp r0, 0
- beq _0813A17C
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- movs r0, 0
- strh r0, [r4, 0xC]
- strh r0, [r4]
- strh r0, [r4, 0x2]
- adds r0, r5, 0
- bl sub_813A240
- adds r0, r5, 0
- movs r1, 0
- bl sub_813AE6C
- adds r0, r7, 0
- subs r0, 0x8
- adds r0, r6, r0
- ldr r1, _0813A178 @ =sub_813A280
- str r1, [r0]
- b _0813A188
- .align 2, 0
-_0813A174: .4byte gTasks + 0x8
-_0813A178: .4byte sub_813A280
-_0813A17C:
- ldr r1, _0813A190 @ =gOtherText_NoItems
- ldr r2, _0813A194 @ =PlayerPC_ItemStorage
- adds r0, r5, 0
- movs r3, 0
- bl DisplayItemMessageOnField
-_0813A188:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0813A190: .4byte gOtherText_NoItems
-_0813A194: .4byte PlayerPC_ItemStorage
- thumb_func_end ItemStorage_Withdraw
-
- thumb_func_start ItemStorage_Toss
-ItemStorage_Toss: @ 813A198
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r6, r0, 3
- ldr r7, _0813A1F8 @ =gTasks + 0x8
- adds r4, r6, r7
- bl sub_8072DEC
- movs r0, 0
- movs r1, 0
- movs r2, 0xB
- movs r3, 0x9
- bl MenuZeroFillWindowRect
- bl CountUsedPCItemSlots
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x4]
- cmp r0, 0
- beq _0813A200
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- movs r0, 0x2
- strh r0, [r4, 0xC]
- movs r0, 0
- strh r0, [r4]
- strh r0, [r4, 0x2]
- adds r0, r5, 0
- bl sub_813A240
- adds r0, r5, 0
- movs r1, 0x2
- bl sub_813AE6C
- adds r0, r7, 0
- subs r0, 0x8
- adds r0, r6, r0
- ldr r1, _0813A1FC @ =sub_813A280
- str r1, [r0]
- b _0813A20C
- .align 2, 0
-_0813A1F8: .4byte gTasks + 0x8
-_0813A1FC: .4byte sub_813A280
-_0813A200:
- ldr r1, _0813A214 @ =gOtherText_NoItems
- ldr r2, _0813A218 @ =PlayerPC_ItemStorage
- adds r0, r5, 0
- movs r3, 0
- bl DisplayItemMessageOnField
-_0813A20C:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0813A214: .4byte gOtherText_NoItems
-_0813A218: .4byte PlayerPC_ItemStorage
- thumb_func_end ItemStorage_Toss
-
- thumb_func_start ItemStorage_Exit
-ItemStorage_Exit: @ 813A21C
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_8072DEC
- movs r0, 0
- movs r1, 0
- movs r2, 0xB
- movs r3, 0x9
- bl MenuZeroFillWindowRect
- adds r0, r4, 0
- bl ReshowPlayerPC
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end ItemStorage_Exit
-
- thumb_func_start sub_813A240
-sub_813A240: @ 813A240
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _0813A260 @ =gTasks + 0x8
- adds r1, r0
- ldrh r2, [r1, 0x4]
- movs r3, 0x4
- ldrsh r0, [r1, r3]
- cmp r0, 0x7
- ble _0813A264
- movs r0, 0x8
- b _0813A266
- .align 2, 0
-_0813A260: .4byte gTasks + 0x8
-_0813A264:
- adds r0, r2, 0x1
-_0813A266:
- strh r0, [r1, 0x8]
- ldr r1, _0813A274 @ =0x0201fe00
- ldrb r0, [r1, 0x3]
- cmp r0, 0x7
- bls _0813A278
- movs r0, 0x8
- b _0813A27A
- .align 2, 0
-_0813A274: .4byte 0x0201fe00
-_0813A278:
- adds r0, 0x1
-_0813A27A:
- strb r0, [r1, 0x1]
- pop {r0}
- bx r0
- thumb_func_end sub_813A240
-
- thumb_func_start sub_813A280
-sub_813A280: @ 813A280
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- adds r6, r5, 0
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _0813A2DC @ =gTasks + 0x8
- adds r4, r0, r1
- ldr r2, _0813A2E0 @ =gMain
- ldrh r1, [r2, 0x30]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0813A306
- movs r1, 0
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _0813A2E4
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- negs r0, r0
- bl MoveMenuCursor
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4]
- ldrh r1, [r4, 0x2]
- adds r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r2, 0x12
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _0813A2CC
- b _0813A460
-_0813A2CC:
- lsls r0, r1, 16
- asrs r1, r0, 16
- movs r2, 0x4
- ldrsh r0, [r4, r2]
- cmp r1, r0
- beq _0813A34C
- b _0813A358
- .align 2, 0
-_0813A2DC: .4byte gTasks + 0x8
-_0813A2E0: .4byte gMain
-_0813A2E4:
- movs r1, 0x2
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0813A2EE
- b _0813A460
-_0813A2EE:
- movs r0, 0x5
- bl PlaySE
- ldrh r0, [r4, 0x2]
- subs r0, 0x1
- strh r0, [r4, 0x2]
- adds r0, r5, 0
- bl sub_813AE0C
- movs r2, 0x12
- ldrsh r0, [r4, r2]
- b _0813A394
-_0813A306:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0813A3A0
- movs r0, 0
- ldrsh r1, [r4, r0]
- movs r2, 0x8
- ldrsh r0, [r4, r2]
- subs r0, 0x1
- cmp r1, r0
- beq _0813A370
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- bl MoveMenuCursor
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4]
- ldrh r1, [r4, 0x2]
- adds r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r2, 0x12
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _0813A340
- b _0813A460
-_0813A340:
- lsls r0, r1, 16
- asrs r1, r0, 16
- movs r2, 0x4
- ldrsh r0, [r4, r2]
- cmp r1, r0
- bne _0813A358
-_0813A34C:
- ldr r0, _0813A354 @ =0x0000ffff
- bl sub_813AD58
- b _0813A460
- .align 2, 0
-_0813A354: .4byte 0x0000ffff
-_0813A358:
- ldr r0, _0813A36C @ =gSaveBlock1
- lsls r1, 2
- adds r1, r0
- movs r0, 0x93
- lsls r0, 3
- adds r1, r0
- ldrh r0, [r1]
- bl sub_813AD58
- b _0813A460
- .align 2, 0
-_0813A36C: .4byte gSaveBlock1
-_0813A370:
- movs r2, 0x2
- ldrsh r0, [r4, r2]
- adds r0, r1
- movs r2, 0x4
- ldrsh r1, [r4, r2]
- cmp r0, r1
- beq _0813A460
- movs r0, 0x5
- bl PlaySE
- ldrh r0, [r4, 0x2]
- adds r0, 0x1
- strh r0, [r4, 0x2]
- adds r0, r5, 0
- bl sub_813AE0C
- movs r1, 0x12
- ldrsh r0, [r4, r1]
-_0813A394:
- cmp r0, 0
- beq _0813A460
- movs r0, 0
- bl MoveMenuCursor
- b _0813A460
-_0813A3A0:
- ldrh r1, [r2, 0x2E]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0813A3F0
- movs r2, 0x12
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _0813A3E8
- movs r1, 0
- ldrsh r0, [r4, r1]
- movs r2, 0x2
- ldrsh r1, [r4, r2]
- adds r0, r1
- movs r2, 0x4
- ldrsh r1, [r4, r2]
- cmp r0, r1
- beq _0813A3DC
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- strh r0, [r4, 0x12]
- ldrh r0, [r4]
- ldrh r1, [r4, 0x2]
- adds r0, r1
- strh r0, [r4, 0x10]
- ldr r0, _0813A3E4 @ =0x0000fff7
- bl sub_813AD58
-_0813A3DC:
- adds r0, r5, 0
- bl sub_813ABE8
- b _0813A460
- .align 2, 0
-_0813A3E4: .4byte 0x0000fff7
-_0813A3E8:
- movs r0, 0x5
- bl PlaySE
- b _0813A420
-_0813A3F0:
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0813A430
- movs r0, 0x5
- bl PlaySE
- movs r2, 0x12
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _0813A420
- movs r1, 0x2
- ldrsh r0, [r4, r1]
- movs r2, 0
- ldrsh r1, [r4, r2]
- adds r0, r1
- movs r2, 0x4
- ldrsh r1, [r4, r2]
- cmp r0, r1
- beq _0813A44A
- adds r0, r5, 0
- bl sub_813A4B4
- b _0813A460
-_0813A420:
- adds r0, r5, 0
- movs r1, 0
- bl sub_813AA30
- adds r0, r5, 0
- bl sub_813AE0C
- b _0813A460
-_0813A430:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0813A460
- movs r0, 0x5
- bl PlaySE
- movs r1, 0x12
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0813A452
- bl sub_8072DEC
-_0813A44A:
- adds r0, r5, 0
- bl sub_813A468
- b _0813A460
-_0813A452:
- adds r0, r6, 0
- movs r1, 0x1
- bl sub_813AA30
- adds r0, r6, 0
- bl sub_813AE0C
-_0813A460:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_813A280
-
- thumb_func_start sub_813A468
-sub_813A468: @ 813A468
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- bl BuyMenuFreeMemory
- movs r0, 0
- bl DestroyVerticalScrollIndicator
- movs r0, 0x1
- bl DestroyVerticalScrollIndicator
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- bl MenuDisplayMessageBox
- ldr r0, _0813A4AC @ =gTasks
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- adds r4, r0
- ldrb r0, [r4, 0x14]
- bl InitItemStorageMenu
- ldr r0, _0813A4B0 @ =ItemStorageMenuProcessInput
- str r0, [r4]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0813A4AC: .4byte gTasks
-_0813A4B0: .4byte ItemStorageMenuProcessInput
- thumb_func_end sub_813A468
-
- thumb_func_start sub_813A4B4
-sub_813A4B4: @ 813A4B4
- push {r4-r6,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- ldr r1, _0813A500 @ =gTasks + 0x8
- adds r4, r0, r1
- ldrb r0, [r4, 0x2]
- ldrb r1, [r4]
- adds r0, r1
- lsls r0, 24
- lsrs r5, r0, 24
- movs r0, 0
- bl sub_80F996C
- movs r0, 0x1
- bl sub_80F996C
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0813A518
- ldr r1, _0813A504 @ =gSaveBlock1
- lsls r0, r5, 2
- adds r0, r1
- ldr r1, _0813A508 @ =0x0000049a
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, 0x1
- bne _0813A50C
- strh r0, [r4, 0x6]
- adds r0, r6, 0
- bl sub_813A6FC
- b _0813A570
- .align 2, 0
-_0813A500: .4byte gTasks + 0x8
-_0813A504: .4byte gSaveBlock1
-_0813A508: .4byte 0x0000049a
-_0813A50C:
- ldr r0, _0813A514 @ =0x0000fffe
- bl sub_813AD58
- b _0813A542
- .align 2, 0
-_0813A514: .4byte 0x0000fffe
-_0813A518:
- ldr r1, _0813A534 @ =gSaveBlock1
- lsls r0, r5, 2
- adds r0, r1
- ldr r1, _0813A538 @ =0x0000049a
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, 0x1
- bne _0813A53C
- strh r0, [r4, 0x6]
- adds r0, r6, 0
- bl sub_813A794
- b _0813A570
- .align 2, 0
-_0813A534: .4byte gSaveBlock1
-_0813A538: .4byte 0x0000049a
-_0813A53C:
- ldr r0, _0813A578 @ =0x0000fffc
- bl sub_813AD58
-_0813A542:
- movs r0, 0x1
- strh r0, [r4, 0x6]
- movs r0, 0x6
- movs r1, 0x8
- movs r2, 0xD
- movs r3, 0xB
- bl MenuDrawTextWindow
- ldrh r0, [r4, 0x6]
- movs r1, 0x3
- str r1, [sp]
- movs r1, 0x1
- movs r2, 0x8
- movs r3, 0x9
- bl sub_80A418C
- ldr r1, _0813A57C @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, _0813A580 @ =sub_813A584
- str r1, [r0]
-_0813A570:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0813A578: .4byte 0x0000fffc
-_0813A57C: .4byte gTasks
-_0813A580: .4byte sub_813A584
- thumb_func_end sub_813A4B4
-
thumb_func_start sub_813A584
sub_813A584: @ 813A584
push {r4-r7,lr}
@@ -2574,7 +1395,7 @@ _0813B036:
mov r0, r8
bl StringCopy
mov r0, r8
- bl sub_814A568
+ bl SanitizeNameString
mov r0, r8
movs r1, 0x15
adds r2, r5, 0
@@ -2862,7 +1683,7 @@ sub_813B294: @ 813B294
adds r0, r4, 0
bl StringCopy
adds r0, r4, 0
- bl sub_814A568
+ bl SanitizeNameString
ldr r4, _0813B2F4 @ =gStringVar4
ldr r1, _0813B2F8 @ =gOtherText_WhatWillYouDoMail
adds r0, r4, 0
@@ -3079,7 +1900,7 @@ sub_813B454: @ 813B454
adds r0, r1
ldr r1, _0813B49C @ =sub_813B4F0
movs r2, 0x1
- bl sub_80F890C
+ bl HandleReadMail
adds r0, r4, 0
bl DestroyTask
_0813B488:
diff --git a/asm/pokeball.s b/asm/pokeball.s
new file mode 100644
index 000000000..57e4a5a21
--- /dev/null
+++ b/asm/pokeball.s
@@ -0,0 +1,2787 @@
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_8046400
+sub_8046400: @ 8046400
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ lsls r4, 16
+ lsrs r4, 16
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r1, _08046450 @ =gUnknown_02024E6D
+ movs r0, 0x1
+ strb r0, [r1]
+ ldr r6, _08046454 @ =gUnknown_02024A60
+ ldrb r1, [r6]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08046458 @ =0x02017810
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r2, 0x8
+ orrs r1, r2
+ strb r1, [r0]
+ ldr r0, _0804645C @ =sub_8046464
+ movs r1, 0x5
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08046460 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ strh r4, [r1, 0xA]
+ strh r5, [r1, 0xC]
+ ldrb r0, [r6]
+ strh r0, [r1, 0xE]
+ movs r0, 0
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08046450: .4byte gUnknown_02024E6D
+_08046454: .4byte gUnknown_02024A60
+_08046458: .4byte 0x02017810
+_0804645C: .4byte sub_8046464
+_08046460: .4byte gTasks
+ thumb_func_end sub_8046400
+
+ thumb_func_start sub_8046464
+sub_8046464: @ 8046464
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ movs r0, 0
+ str r0, [sp]
+ ldr r1, _08046498 @ =gTasks
+ mov r2, r10
+ lsls r0, r2, 2
+ add r0, r10
+ lsls r0, 3
+ adds r1, r0, r1
+ ldrh r2, [r1, 0x8]
+ movs r3, 0x8
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ bne _0804649C
+ adds r0, r2, 0x1
+ strh r0, [r1, 0x8]
+ b _08046616
+ .align 2, 0
+_08046498: .4byte gTasks
+_0804649C:
+ ldrh r0, [r1, 0xC]
+ mov r8, r0
+ ldrb r5, [r1, 0xE]
+ adds r0, r5, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080464C8
+ ldr r1, _080464C0 @ =gUnknown_02024A6A
+ lsls r0, r5, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _080464C4 @ =gEnemyParty
+ b _080464D6
+ .align 2, 0
+_080464C0: .4byte gUnknown_02024A6A
+_080464C4: .4byte gEnemyParty
+_080464C8:
+ ldr r1, _08046544 @ =gUnknown_02024A6A
+ lsls r0, r5, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _08046548 @ =gPlayerParty
+_080464D6:
+ adds r0, r1
+ movs r1, 0x26
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ bl ball_number_to_ball_processing_index
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r4, 0
+ bl sub_80478DC
+ lsls r0, r4, 1
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, _0804654C @ =gSpriteTemplate_820AAB4
+ adds r0, r1
+ movs r1, 0x20
+ movs r2, 0x50
+ movs r3, 0x1D
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r2, _08046550 @ =gSprites
+ mov r9, r2
+ lsls r0, r7, 4
+ adds r0, r7
+ lsls r6, r0, 2
+ adds r4, r6, r2
+ movs r0, 0x80
+ strh r0, [r4, 0x2E]
+ movs r3, 0
+ strh r3, [r4, 0x30]
+ mov r0, r8
+ strh r0, [r4, 0x3C]
+ mov r2, r8
+ cmp r2, 0xFE
+ beq _0804655C
+ cmp r2, 0xFF
+ bne _08046598
+ ldr r0, _08046554 @ =gUnknown_02024C08
+ strb r5, [r0]
+ movs r0, 0x18
+ strh r0, [r4, 0x20]
+ movs r0, 0x44
+ strh r0, [r4, 0x22]
+ mov r0, r9
+ adds r0, 0x1C
+ adds r0, r6, r0
+ ldr r1, _08046558 @ =sub_8047074
+ str r1, [r0]
+ b _080465A6
+ .align 2, 0
+_08046544: .4byte gUnknown_02024A6A
+_08046548: .4byte gPlayerParty
+_0804654C: .4byte gSpriteTemplate_820AAB4
+_08046550: .4byte gSprites
+_08046554: .4byte gUnknown_02024C08
+_08046558: .4byte sub_8047074
+_0804655C:
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x20]
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x18
+ strh r0, [r4, 0x22]
+ ldr r0, _08046590 @ =gUnknown_02024C08
+ strb r5, [r0]
+ movs r3, 0
+ strh r3, [r4, 0x2E]
+ mov r0, r9
+ adds r0, 0x1C
+ adds r0, r6, r0
+ ldr r1, _08046594 @ =sub_8047254
+ str r1, [r0]
+ b _080465A6
+ .align 2, 0
+_08046590: .4byte gUnknown_02024C08
+_08046594: .4byte sub_8047254
+_08046598:
+ movs r0, 0x1
+ bl battle_get_side_with_given_state
+ ldr r1, _080465C4 @ =gUnknown_02024C08
+ strb r0, [r1]
+ movs r0, 0x1
+ str r0, [sp]
+_080465A6:
+ ldr r0, _080465C8 @ =gSprites
+ lsls r1, r7, 4
+ adds r1, r7
+ lsls r1, 2
+ adds r4, r1, r0
+ ldr r5, _080465C4 @ =gUnknown_02024C08
+ ldrb r0, [r5]
+ strh r0, [r4, 0x3A]
+ ldr r2, [sp]
+ cmp r2, 0
+ bne _080465CC
+ mov r0, r10
+ bl DestroyTask
+ b _08046616
+ .align 2, 0
+_080465C4: .4byte gUnknown_02024C08
+_080465C8: .4byte gSprites
+_080465CC:
+ movs r0, 0x22
+ strh r0, [r4, 0x2E]
+ ldrb r0, [r5]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x32]
+ ldrb r0, [r5]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ subs r0, 0x10
+ strh r0, [r4, 0x36]
+ ldr r0, _08046628 @ =0x0000ffd8
+ strh r0, [r4, 0x38]
+ adds r0, r4, 0
+ bl sub_80786EC
+ mov r3, r10
+ strh r3, [r4, 0x6]
+ ldr r1, _0804662C @ =gTasks
+ mov r2, r10
+ lsls r0, r2, 2
+ add r0, r10
+ lsls r0, 3
+ adds r0, r1
+ ldrb r1, [r5]
+ strh r1, [r0, 0x10]
+ ldr r1, _08046630 @ =TaskDummy
+ str r1, [r0]
+ movs r0, 0x3D
+ bl PlaySE
+_08046616:
+ 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
+_08046628: .4byte 0x0000ffd8
+_0804662C: .4byte gTasks
+_08046630: .4byte TaskDummy
+ thumb_func_end sub_8046464
+
+ thumb_func_start objc_0804ABD4
+objc_0804ABD4: @ 8046634
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ adds r7, r0, 0
+ bl sub_8078718
+ lsls r0, 24
+ cmp r0, 0
+ beq _080466D4
+ ldrb r6, [r7, 0x6]
+ ldr r1, _080466E0 @ =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r0, r1
+ ldrb r5, [r0, 0x10]
+ ldrb r0, [r0, 0xC]
+ mov r8, r0
+ adds r0, r7, 0
+ movs r1, 0x1
+ bl StartSpriteAnim
+ adds r2, r7, 0
+ adds r2, 0x2C
+ ldrb r0, [r2]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2]
+ ldrh r0, [r7, 0x24]
+ ldrh r1, [r7, 0x20]
+ adds r0, r1
+ movs r1, 0
+ strh r0, [r7, 0x20]
+ ldrh r0, [r7, 0x26]
+ ldrh r2, [r7, 0x22]
+ adds r0, r2
+ strh r0, [r7, 0x22]
+ strh r1, [r7, 0x24]
+ strh r1, [r7, 0x26]
+ strh r1, [r7, 0x38]
+ adds r0, r5, 0
+ bl sub_8047978
+ lsls r0, 16
+ lsrs r0, 16
+ bl ball_number_to_ball_processing_index
+ adds r4, r0, 0
+ ldrh r0, [r7, 0x20]
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r7, 0x22]
+ subs r1, 0x5
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r4, 24
+ lsrs r4, 24
+ str r4, [sp]
+ movs r2, 0x1
+ movs r3, 0x1C
+ bl sub_814086C
+ movs r0, 0
+ adds r1, r5, 0
+ movs r2, 0xE
+ adds r3, r4, 0
+ bl sub_8141314
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r7, 0x2E]
+ strh r5, [r7, 0x3A]
+ mov r0, r8
+ strh r0, [r7, 0x3C]
+ adds r0, r6, 0
+ bl DestroyTask
+ ldr r0, _080466E4 @ =sub_80466E8
+ str r0, [r7, 0x1C]
+_080466D4:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080466E0: .4byte gTasks
+_080466E4: .4byte sub_80466E8
+ thumb_func_end objc_0804ABD4
+
+ thumb_func_start sub_80466E8
+sub_80466E8: @ 80466E8
+ ldr r1, _080466F0 @ =sub_80466F4
+ str r1, [r0, 0x1C]
+ bx lr
+ .align 2, 0
+_080466F0: .4byte sub_80466F4
+ thumb_func_end sub_80466E8
+
+ thumb_func_start sub_80466F4
+sub_80466F4: @ 80466F4
+ push {r4-r7,lr}
+ adds r6, r0, 0
+ ldrh r0, [r6, 0x38]
+ adds r0, 0x1
+ movs r7, 0
+ strh r0, [r6, 0x38]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xA
+ bne _0804674E
+ strh r7, [r6, 0x38]
+ ldr r0, _08046754 @ =sub_8046760
+ str r0, [r6, 0x1C]
+ ldr r5, _08046758 @ =gUnknown_02024BE0
+ movs r1, 0x3A
+ ldrsh r0, [r6, r1]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r4, _0804675C @ =gSprites
+ adds r0, r4
+ movs r1, 0x2
+ bl StartSpriteAffineAnim
+ movs r1, 0x3A
+ ldrsh r0, [r6, r1]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ bl AnimateSprite
+ movs r1, 0x3A
+ ldrsh r0, [r6, r1]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ strh r7, [r0, 0x30]
+_0804674E:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08046754: .4byte sub_8046760
+_08046758: .4byte gUnknown_02024BE0
+_0804675C: .4byte gSprites
+ thumb_func_end sub_80466F4
+
+ thumb_func_start sub_8046760
+sub_8046760: @ 8046760
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x1
+ strh r0, [r4, 0x38]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xB
+ bne _08046778
+ movs r0, 0x3C
+ bl PlaySE
+_08046778:
+ ldr r6, _080467C4 @ =gSprites
+ ldr r5, _080467C8 @ =gUnknown_02024BE0
+ movs r1, 0x3A
+ ldrsh r0, [r4, r1]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r0, r6
+ adds r0, r1, 0
+ adds r0, 0x3F
+ ldrb r0, [r0]
+ lsls r0, 26
+ cmp r0, 0
+ bge _080467D0
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl StartSpriteAnim
+ movs r2, 0x3A
+ ldrsh r0, [r4, r2]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ movs r0, 0
+ strh r0, [r4, 0x38]
+ ldr r0, _080467CC @ =sub_80467F8
+ str r0, [r4, 0x1C]
+ b _080467F0
+ .align 2, 0
+_080467C4: .4byte gSprites
+_080467C8: .4byte gUnknown_02024BE0
+_080467CC: .4byte sub_80467F8
+_080467D0:
+ ldrh r0, [r1, 0x30]
+ adds r0, 0x60
+ strh r0, [r1, 0x30]
+ movs r1, 0x3A
+ ldrsh r0, [r4, r1]
+ adds r0, r5
+ ldrb r0, [r0]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r6
+ movs r2, 0x30
+ ldrsh r0, [r1, r2]
+ negs r0, r0
+ asrs r0, 8
+ strh r0, [r1, 0x26]
+_080467F0:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8046760
+
+ thumb_func_start sub_80467F8
+sub_80467F8: @ 80467F8
+ push {r4,lr}
+ adds r4, r0, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _08046840
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x1
+ movs r1, 0
+ strh r0, [r4, 0x38]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ bne _08046840
+ strh r1, [r4, 0x34]
+ movs r0, 0x20
+ strh r0, [r4, 0x36]
+ strh r1, [r4, 0x38]
+ movs r0, 0
+ movs r1, 0x20
+ bl Cos
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ movs r0, 0x36
+ ldrsh r1, [r4, r0]
+ movs r0, 0
+ bl Cos
+ negs r0, r0
+ strh r0, [r4, 0x26]
+ ldr r0, _08046848 @ =sub_804684C
+ str r0, [r4, 0x1C]
+_08046840:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08046848: .4byte sub_804684C
+ thumb_func_end sub_80467F8
+
+ thumb_func_start sub_804684C
+sub_804684C: @ 804684C
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r5, 0
+ ldrh r0, [r4, 0x34]
+ movs r1, 0xFF
+ ands r1, r0
+ cmp r1, 0
+ beq _08046862
+ cmp r1, 0x1
+ beq _080468D6
+ b _08046902
+_08046862:
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ movs r2, 0x36
+ ldrsh r1, [r4, r2]
+ bl Cos
+ negs r0, r0
+ strh r0, [r4, 0x26]
+ ldrh r1, [r4, 0x38]
+ adds r1, 0x4
+ ldrh r2, [r4, 0x34]
+ lsls r0, r2, 16
+ asrs r0, 24
+ adds r1, r0
+ strh r1, [r4, 0x38]
+ lsls r1, 16
+ asrs r1, 16
+ cmp r1, 0x3F
+ ble _08046902
+ ldrh r0, [r4, 0x36]
+ subs r0, 0xA
+ strh r0, [r4, 0x36]
+ ldr r1, _080468AC @ =0x00000101
+ adds r0, r2, r1
+ strh r0, [r4, 0x34]
+ lsls r0, 16
+ asrs r0, 24
+ cmp r0, 0x4
+ bne _0804689E
+ movs r5, 0x1
+_0804689E:
+ cmp r0, 0x2
+ beq _080468BE
+ cmp r0, 0x2
+ bgt _080468B0
+ cmp r0, 0x1
+ beq _080468B6
+ b _080468CE
+ .align 2, 0
+_080468AC: .4byte 0x00000101
+_080468B0:
+ cmp r0, 0x3
+ beq _080468C6
+ b _080468CE
+_080468B6:
+ movs r0, 0x38
+ bl PlaySE
+ b _08046902
+_080468BE:
+ movs r0, 0x39
+ bl PlaySE
+ b _08046902
+_080468C6:
+ movs r0, 0x3A
+ bl PlaySE
+ b _08046902
+_080468CE:
+ movs r0, 0x3B
+ bl PlaySE
+ b _08046902
+_080468D6:
+ movs r2, 0x38
+ ldrsh r0, [r4, r2]
+ movs r2, 0x36
+ ldrsh r1, [r4, r2]
+ bl Cos
+ negs r0, r0
+ strh r0, [r4, 0x26]
+ ldrh r1, [r4, 0x38]
+ subs r1, 0x4
+ ldrh r2, [r4, 0x34]
+ lsls r0, r2, 16
+ asrs r0, 24
+ subs r1, r0
+ strh r1, [r4, 0x38]
+ lsls r1, 16
+ cmp r1, 0
+ bgt _08046902
+ strh r5, [r4, 0x38]
+ ldr r0, _08046928 @ =0xffffff00
+ ands r0, r2
+ strh r0, [r4, 0x34]
+_08046902:
+ cmp r5, 0
+ beq _0804693A
+ movs r5, 0
+ strh r5, [r4, 0x34]
+ movs r0, 0x40
+ movs r1, 0x20
+ bl Cos
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ strh r5, [r4, 0x26]
+ movs r2, 0x3C
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bne _08046930
+ ldr r0, _0804692C @ =sub_8046C78
+ str r0, [r4, 0x1C]
+ b _0804693A
+ .align 2, 0
+_08046928: .4byte 0xffffff00
+_0804692C: .4byte sub_8046C78
+_08046930:
+ ldr r0, _08046940 @ =sub_8046944
+ str r0, [r4, 0x1C]
+ movs r0, 0x1
+ strh r0, [r4, 0x36]
+ strh r5, [r4, 0x38]
+_0804693A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08046940: .4byte sub_8046944
+ thumb_func_end sub_804684C
+
+ thumb_func_start sub_8046944
+sub_8046944: @ 8046944
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x34]
+ adds r0, 0x1
+ strh r0, [r4, 0x34]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1F
+ bne _08046978
+ movs r0, 0
+ strh r0, [r4, 0x34]
+ adds r2, r4, 0
+ adds r2, 0x2C
+ ldrb r0, [r2]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2]
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+ ldr r0, _08046980 @ =sub_8046984
+ str r0, [r4, 0x1C]
+ movs r0, 0x17
+ bl PlaySE
+_08046978:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08046980: .4byte sub_8046984
+ thumb_func_end sub_8046944
+
+ thumb_func_start sub_8046984
+sub_8046984: @ 8046984
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x34]
+ movs r1, 0xFF
+ ands r1, r0
+ cmp r1, 0x4
+ bhi _08046A84
+ lsls r0, r1, 2
+ ldr r1, _0804699C @ =_080469A0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0804699C: .4byte _080469A0
+ .align 2, 0
+_080469A0:
+ .4byte _080469B4
+ .4byte _080469E6
+ .4byte _080469B4
+ .4byte _08046A3A
+ .4byte _08046A84
+_080469B4:
+ ldrh r0, [r4, 0x36]
+ ldrh r2, [r4, 0x24]
+ adds r1, r0, r2
+ strh r1, [r4, 0x24]
+ ldrh r1, [r4, 0x38]
+ adds r0, r1
+ strh r0, [r4, 0x38]
+ adds r2, r4, 0
+ adds r2, 0x2C
+ ldrb r1, [r2]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r2]
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x3
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x6
+ bls _08046ACA
+ ldrh r0, [r4, 0x34]
+ adds r0, 0x1
+ strh r0, [r4, 0x34]
+ movs r0, 0
+ strh r0, [r4, 0x38]
+ b _08046ACA
+_080469E6:
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x1
+ strh r0, [r4, 0x38]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ bne _08046A2C
+ movs r0, 0
+ strh r0, [r4, 0x38]
+ ldrh r0, [r4, 0x36]
+ negs r0, r0
+ strh r0, [r4, 0x36]
+ ldrh r0, [r4, 0x34]
+ adds r0, 0x1
+ strh r0, [r4, 0x34]
+ adds r2, r4, 0
+ adds r2, 0x2C
+ ldrb r1, [r2]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r2]
+ movs r2, 0x36
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bge _08046A22
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl ChangeSpriteAffineAnim
+ b _08046ACA
+_08046A22:
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl ChangeSpriteAffineAnim
+ b _08046ACA
+_08046A2C:
+ adds r0, r4, 0
+ adds r0, 0x2C
+ ldrb r1, [r0]
+ movs r2, 0x80
+ orrs r1, r2
+ strb r1, [r0]
+ b _08046ACA
+_08046A3A:
+ movs r1, 0x80
+ lsls r1, 1
+ adds r0, r1, 0
+ ldrh r2, [r4, 0x34]
+ adds r0, r2
+ strh r0, [r4, 0x34]
+ lsls r0, 16
+ asrs r0, 24
+ movs r2, 0x3C
+ ldrsh r1, [r4, r2]
+ cmp r0, r1
+ bne _08046A5C
+ ldr r0, _08046A58 @ =sub_8046C78
+ str r0, [r4, 0x1C]
+ b _08046ACA
+ .align 2, 0
+_08046A58: .4byte sub_8046C78
+_08046A5C:
+ cmp r1, 0x4
+ bne _08046A70
+ cmp r0, 0x3
+ bne _08046A70
+ ldr r0, _08046A6C @ =sub_8046E7C
+ str r0, [r4, 0x1C]
+ b _08046A76
+ .align 2, 0
+_08046A6C: .4byte sub_8046E7C
+_08046A70:
+ ldrh r0, [r4, 0x34]
+ adds r0, 0x1
+ strh r0, [r4, 0x34]
+_08046A76:
+ adds r2, r4, 0
+ adds r2, 0x2C
+ ldrb r0, [r2]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2]
+ b _08046ACA
+_08046A84:
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x1
+ strh r0, [r4, 0x38]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1F
+ bne _08046ACA
+ movs r0, 0
+ strh r0, [r4, 0x38]
+ ldrh r1, [r4, 0x34]
+ ldr r0, _08046AB8 @ =0xffffff00
+ ands r0, r1
+ strh r0, [r4, 0x34]
+ adds r0, r4, 0
+ movs r1, 0x3
+ bl StartSpriteAffineAnim
+ movs r1, 0x36
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bge _08046ABC
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl StartSpriteAffineAnim
+ b _08046AC4
+ .align 2, 0
+_08046AB8: .4byte 0xffffff00
+_08046ABC:
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+_08046AC4:
+ movs r0, 0x17
+ bl PlaySE
+_08046ACA:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8046984
+
+ thumb_func_start sub_8046AD0
+sub_8046AD0: @ 8046AD0
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, _08046AFC @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldrb r6, [r0, 0xC]
+ ldrb r3, [r0, 0xA]
+ ldrh r5, [r0, 0x8]
+ movs r2, 0x26
+ ldrsh r0, [r0, r2]
+ adds r2, r1, 0
+ cmp r0, 0x20
+ bhi _08046B88
+ lsls r0, 2
+ ldr r1, _08046B00 @ =_08046B04
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08046AFC: .4byte gTasks
+_08046B00: .4byte _08046B04
+ .align 2, 0
+_08046B04:
+ .4byte _08046B88
+ .4byte _08046BA6
+ .4byte _08046BB2
+ .4byte _08046BF6
+ .4byte _08046B88
+ .4byte _08046B88
+ .4byte _08046B88
+ .4byte _08046B88
+ .4byte _08046B88
+ .4byte _08046B88
+ .4byte _08046B88
+ .4byte _08046B88
+ .4byte _08046B88
+ .4byte _08046B88
+ .4byte _08046B88
+ .4byte _08046B88
+ .4byte _08046B88
+ .4byte _08046B88
+ .4byte _08046B88
+ .4byte _08046B88
+ .4byte _08046BD0
+ .4byte _08046B88
+ .4byte _08046B88
+ .4byte _08046B88
+ .4byte _08046B88
+ .4byte _08046B88
+ .4byte _08046B88
+ .4byte _08046B88
+ .4byte _08046B88
+ .4byte _08046B88
+ .4byte _08046C08
+ .4byte _08046C20
+ .4byte _08046C48
+_08046B88:
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r1, r0, r2
+ ldrh r2, [r1, 0x18]
+ movs r3, 0x18
+ ldrsh r0, [r1, r3]
+ cmp r0, 0x2
+ bgt _08046BA0
+ adds r0, r2, 0x1
+ strh r0, [r1, 0x18]
+ b _08046C72
+_08046BA0:
+ adds r0, r6, 0x1
+ strh r0, [r1, 0x26]
+ b _08046C72
+_08046BA6:
+ lsls r1, r3, 24
+ asrs r1, 24
+ adds r0, r5, 0
+ bl PlayCry1
+ b _08046BEE
+_08046BB2:
+ bl StopCryAndClearCrySongs
+ ldr r1, _08046BCC @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x3
+ strh r1, [r0, 0x1C]
+ movs r1, 0x14
+ strh r1, [r0, 0x26]
+ b _08046C72
+ .align 2, 0
+_08046BCC: .4byte gTasks
+_08046BD0:
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r1, r0, r2
+ ldrh r2, [r1, 0x1C]
+ movs r6, 0x1C
+ ldrsh r0, [r1, r6]
+ cmp r0, 0
+ bne _08046C5A
+ lsls r1, r3, 24
+ asrs r1, 24
+ adds r0, r5, 0
+ movs r2, 0x1
+ bl PlayCry4
+_08046BEE:
+ adds r0, r4, 0
+ bl DestroyTask
+ b _08046C72
+_08046BF6:
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r2
+ movs r1, 0x6
+ strh r1, [r0, 0x1C]
+ movs r1, 0x1E
+ strh r1, [r0, 0x26]
+ b _08046C72
+_08046C08:
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r1, r0, r2
+ ldrh r2, [r1, 0x1C]
+ movs r3, 0x1C
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ bne _08046C5A
+ ldrh r0, [r1, 0x26]
+ adds r0, 0x1
+ strh r0, [r1, 0x26]
+_08046C20:
+ bl IsCryPlayingOrClearCrySongs
+ lsls r0, 24
+ cmp r0, 0
+ bne _08046C72
+ bl StopCryAndClearCrySongs
+ ldr r0, _08046C44 @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0x3
+ strh r0, [r1, 0x1C]
+ ldrh r0, [r1, 0x26]
+ adds r0, 0x1
+ strh r0, [r1, 0x26]
+ b _08046C72
+ .align 2, 0
+_08046C44: .4byte gTasks
+_08046C48:
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r1, r0, r2
+ ldrh r2, [r1, 0x1C]
+ movs r6, 0x1C
+ ldrsh r0, [r1, r6]
+ cmp r0, 0
+ beq _08046C60
+_08046C5A:
+ subs r0, r2, 0x1
+ strh r0, [r1, 0x1C]
+ b _08046C72
+_08046C60:
+ lsls r1, r3, 24
+ asrs r1, 24
+ adds r0, r5, 0
+ movs r2, 0
+ bl PlayCry4
+ adds r0, r4, 0
+ bl DestroyTask
+_08046C72:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8046AD0
+
+ thumb_func_start sub_8046C78
+sub_8046C78: @ 8046C78
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ adds r6, r0, 0
+ ldrh r0, [r6, 0x3A]
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r0, r6, 0
+ movs r1, 0x1
+ bl StartSpriteAnim
+ adds r0, r5, 0
+ bl sub_8047978
+ lsls r0, 16
+ lsrs r0, 16
+ bl ball_number_to_ball_processing_index
+ adds r4, r0, 0
+ ldrh r0, [r6, 0x20]
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r6, 0x22]
+ subs r1, 0x5
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r4, 24
+ lsrs r4, 24
+ str r4, [sp]
+ movs r2, 0x1
+ movs r3, 0x1C
+ bl sub_814086C
+ ldrh r1, [r6, 0x3A]
+ lsls r1, 24
+ lsrs r1, 24
+ movs r0, 0x1
+ movs r2, 0xE
+ adds r3, r4, 0
+ bl sub_8141314
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r6, 0x2E]
+ ldr r0, _08046D0C @ =sub_8046E9C
+ str r0, [r6, 0x1C]
+ ldr r0, _08046D10 @ =gMain
+ ldr r1, _08046D14 @ =0x0000043d
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ bne _08046CE8
+ b _08046E1C
+_08046CE8:
+ adds r0, r5, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _08046D20
+ ldr r1, _08046D18 @ =gUnknown_02024A6A
+ lsls r0, r5, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, _08046D1C @ =gEnemyParty
+ adds r0, r1, r0
+ movs r3, 0x19
+ mov r8, r3
+ b _08046D34
+ .align 2, 0
+_08046D0C: .4byte sub_8046E9C
+_08046D10: .4byte gMain
+_08046D14: .4byte 0x0000043d
+_08046D18: .4byte gUnknown_02024A6A
+_08046D1C: .4byte gEnemyParty
+_08046D20:
+ ldr r1, _08046D90 @ =gUnknown_02024A6A
+ lsls r0, r5, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, _08046D94 @ =gPlayerParty
+ adds r0, r1, r0
+ movs r1, 0xE7
+ mov r8, r1
+_08046D34:
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r7, r0, 16
+ movs r0, 0
+ bl battle_get_side_with_given_state
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r5, r0
+ beq _08046D5A
+ movs r0, 0x1
+ bl battle_get_side_with_given_state
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r5, r0
+ bne _08046DAE
+_08046D5A:
+ bl IsDoubleBattle
+ lsls r0, 24
+ cmp r0, 0
+ beq _08046DAE
+ ldr r0, _08046D98 @ =0x02017840
+ ldrb r1, [r0, 0x9]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08046DAE
+ ldr r0, _08046D9C @ =gBattleTypeFlags
+ ldrh r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _08046DA4
+ bl IsBGMPlaying
+ lsls r0, 24
+ cmp r0, 0
+ beq _08046DAE
+ ldr r0, _08046DA0 @ =gMPlay_BGM
+ bl m4aMPlayStop
+ b _08046DAE
+ .align 2, 0
+_08046D90: .4byte gUnknown_02024A6A
+_08046D94: .4byte gPlayerParty
+_08046D98: .4byte 0x02017840
+_08046D9C: .4byte gBattleTypeFlags
+_08046DA0: .4byte gMPlay_BGM
+_08046DA4:
+ ldr r0, _08046DC8 @ =gMPlay_BGM
+ ldr r1, _08046DCC @ =0x0000ffff
+ movs r2, 0x80
+ bl m4aMPlayVolumeControl
+_08046DAE:
+ bl IsDoubleBattle
+ lsls r0, 24
+ cmp r0, 0
+ beq _08046DC4
+ ldr r0, _08046DD0 @ =0x02017840
+ ldrb r1, [r0, 0x9]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _08046DD4
+_08046DC4:
+ movs r4, 0
+ b _08046DF6
+ .align 2, 0
+_08046DC8: .4byte gMPlay_BGM
+_08046DCC: .4byte 0x0000ffff
+_08046DD0: .4byte 0x02017840
+_08046DD4:
+ movs r0, 0
+ bl battle_get_side_with_given_state
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r5, r0
+ beq _08046DF0
+ movs r0, 0x1
+ bl battle_get_side_with_given_state
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r5, r0
+ bne _08046DF4
+_08046DF0:
+ movs r4, 0x1
+ b _08046DF6
+_08046DF4:
+ movs r4, 0x2
+_08046DF6:
+ ldr r0, _08046E6C @ =sub_8046AD0
+ movs r1, 0x3
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08046E70 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ movs r2, 0
+ strh r7, [r1, 0x8]
+ mov r3, r8
+ lsls r0, r3, 24
+ asrs r0, 24
+ strh r0, [r1, 0xA]
+ strh r4, [r1, 0xC]
+ strh r2, [r1, 0x26]
+_08046E1C:
+ ldr r5, _08046E74 @ =gUnknown_02024BE0
+ movs r1, 0x3A
+ ldrsh r0, [r6, r1]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r4, _08046E78 @ =gSprites
+ adds r0, r4
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+ movs r3, 0x3A
+ ldrsh r0, [r6, r3]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ bl AnimateSprite
+ movs r1, 0x3A
+ ldrsh r0, [r6, r1]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r1, 0x80
+ lsls r1, 5
+ strh r1, [r0, 0x30]
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08046E6C: .4byte sub_8046AD0
+_08046E70: .4byte gTasks
+_08046E74: .4byte gUnknown_02024BE0
+_08046E78: .4byte gSprites
+ thumb_func_end sub_8046C78
+
+ thumb_func_start sub_8046E7C
+sub_8046E7C: @ 8046E7C
+ adds r3, r0, 0
+ adds r3, 0x2C
+ ldrb r1, [r3]
+ movs r2, 0x40
+ orrs r1, r2
+ strb r1, [r3]
+ ldr r1, _08046E98 @ =sub_8046FBC
+ str r1, [r0, 0x1C]
+ movs r1, 0
+ strh r1, [r0, 0x34]
+ strh r1, [r0, 0x36]
+ strh r1, [r0, 0x38]
+ bx lr
+ .align 2, 0
+_08046E98: .4byte sub_8046FBC
+ thumb_func_end sub_8046E7C
+
+ thumb_func_start sub_8046E9C
+sub_8046E9C: @ 8046E9C
+ push {r4-r7,lr}
+ adds r5, r0, 0
+ movs r7, 0
+ ldrh r0, [r5, 0x3A]
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r6, _08046F00 @ =gSprites
+ ldr r0, _08046F04 @ =gUnknown_02024BE0
+ adds r3, r4, r0
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ adds r0, 0x3E
+ ldrb r2, [r0]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r0]
+ adds r0, r5, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _08046EDE
+ adds r2, r5, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+_08046EDE:
+ ldrb r0, [r3]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r6
+ adds r0, r1, 0
+ adds r0, 0x3F
+ ldrb r0, [r0]
+ lsls r0, 26
+ cmp r0, 0
+ bge _08046F08
+ adds r0, r1, 0
+ movs r1, 0
+ bl StartSpriteAffineAnim
+ movs r7, 0x1
+ b _08046F24
+ .align 2, 0
+_08046F00: .4byte gSprites
+_08046F04: .4byte gUnknown_02024BE0
+_08046F08:
+ ldr r2, _08046FA8 @ =0xfffffee0
+ adds r0, r2, 0
+ ldrh r2, [r1, 0x30]
+ adds r0, r2
+ strh r0, [r1, 0x30]
+ ldrb r0, [r3]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r6
+ ldrh r0, [r1, 0x30]
+ lsls r0, 16
+ asrs r0, 24
+ strh r0, [r1, 0x26]
+_08046F24:
+ adds r0, r5, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _08046FA0
+ cmp r7, 0
+ beq _08046FA0
+ ldr r2, _08046FAC @ =gSprites
+ ldr r0, _08046FB0 @ =gUnknown_02024BE0
+ adds r0, r4, r0
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r2, 0
+ movs r1, 0
+ strh r1, [r0, 0x26]
+ ldr r0, _08046FB4 @ =gUnknown_02024E6D
+ strb r2, [r0]
+ lsls r1, r4, 1
+ adds r1, r4
+ lsls r1, 2
+ ldr r4, _08046FB8 @ =0x02017810
+ adds r1, r4
+ ldrb r2, [r1]
+ movs r0, 0x9
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1]
+ adds r0, r5, 0
+ bl FreeSpriteOamMatrix
+ adds r0, r5, 0
+ bl DestroySprite
+ movs r3, 0
+ movs r5, 0x8
+ adds r2, r4, 0
+ movs r4, 0x3
+_08046F78:
+ ldrb r1, [r2]
+ adds r0, r5, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _08046F84
+ adds r3, 0x1
+_08046F84:
+ adds r2, 0xC
+ subs r4, 0x1
+ cmp r4, 0
+ bge _08046F78
+ cmp r3, 0x4
+ bne _08046FA0
+ movs r4, 0
+_08046F92:
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl sub_804794C
+ adds r4, 0x1
+ cmp r4, 0xB
+ ble _08046F92
+_08046FA0:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08046FA8: .4byte 0xfffffee0
+_08046FAC: .4byte gSprites
+_08046FB0: .4byte gUnknown_02024BE0
+_08046FB4: .4byte gUnknown_02024E6D
+_08046FB8: .4byte 0x02017810
+ thumb_func_end sub_8046E9C
+
+ thumb_func_start sub_8046FBC
+sub_8046FBC: @ 8046FBC
+ push {r4-r7,lr}
+ adds r6, r0, 0
+ ldrh r0, [r6, 0x3A]
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldrh r0, [r6, 0x36]
+ adds r0, 0x1
+ strh r0, [r6, 0x36]
+ lsls r0, 16
+ asrs r1, r0, 16
+ cmp r1, 0x28
+ beq _08047056
+ cmp r1, 0x5F
+ bne _08046FF4
+ ldr r0, _08046FEC @ =gUnknown_02024E6D
+ movs r1, 0
+ strb r1, [r0]
+ bl m4aMPlayAllStop
+ ldr r0, _08046FF0 @ =0x00000173
+ bl PlaySE
+ b _08047056
+ .align 2, 0
+_08046FEC: .4byte gUnknown_02024E6D
+_08046FF0: .4byte 0x00000173
+_08046FF4:
+ ldr r0, _0804705C @ =0x0000013b
+ cmp r1, r0
+ bne _08047056
+ ldr r5, _08047060 @ =gSprites
+ ldr r4, _08047064 @ =gUnknown_02024BE0
+ movs r1, 0x3A
+ ldrsh r0, [r6, r1]
+ adds r0, r4
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldrb r0, [r0, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ bl FreeOamMatrix
+ movs r1, 0x3A
+ ldrsh r0, [r6, r1]
+ adds r0, r4
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ bl DestroySprite
+ adds r0, r6, 0
+ bl DestroySpriteAndFreeResources
+ ldr r0, _08047068 @ =gMain
+ ldr r1, _0804706C @ =0x0000043d
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _08047056
+ lsls r1, r7, 1
+ adds r1, r7
+ lsls r1, 2
+ ldr r0, _08047070 @ =0x02017810
+ adds r1, r0
+ ldrb r2, [r1]
+ movs r0, 0x9
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1]
+_08047056:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804705C: .4byte 0x0000013b
+_08047060: .4byte gSprites
+_08047064: .4byte gUnknown_02024BE0
+_08047068: .4byte gMain
+_0804706C: .4byte 0x0000043d
+_08047070: .4byte 0x02017810
+ thumb_func_end sub_8046FBC
+
+ thumb_func_start sub_8047074
+sub_8047074: @ 8047074
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0x19
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r4, 0x3A]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x32]
+ ldrh r0, [r4, 0x3A]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x18
+ strh r0, [r4, 0x36]
+ ldr r0, _080470BC @ =0x0000ffe2
+ strh r0, [r4, 0x38]
+ ldrh r0, [r4, 0x3A]
+ strh r0, [r4, 0x6]
+ adds r0, r4, 0
+ bl sub_80786EC
+ ldr r0, _080470C0 @ =sub_80470C4
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080470BC: .4byte 0x0000ffe2
+_080470C0: .4byte sub_80470C4
+ thumb_func_end sub_8047074
+
+ thumb_func_start sub_80470C4
+sub_80470C4: @ 80470C4
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r5, r0, 0
+ ldrh r0, [r5, 0x3C]
+ movs r1, 0xFF
+ mov r8, r1
+ lsrs r0, 8
+ subs r0, 0x23
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x2C
+ bhi _080471B8
+ ldrh r1, [r5, 0x6]
+ movs r0, 0xFF
+ lsls r0, 8
+ ands r0, r1
+ cmp r0, 0
+ bne _08047126
+ ldrh r0, [r5, 0x30]
+ movs r1, 0x1
+ adds r6, r1, 0
+ ands r6, r0
+ ldrh r0, [r5, 0x32]
+ adds r7, r1, 0
+ ands r7, r0
+ movs r2, 0x30
+ ldrsh r0, [r5, r2]
+ movs r1, 0x3
+ bl __divsi3
+ movs r1, 0x2
+ negs r1, r1
+ adds r4, r1, 0
+ ands r0, r4
+ orrs r6, r0
+ strh r6, [r5, 0x30]
+ movs r2, 0x32
+ ldrsh r0, [r5, r2]
+ movs r1, 0x3
+ bl __divsi3
+ ands r0, r4
+ orrs r7, r0
+ strh r7, [r5, 0x32]
+ adds r0, r5, 0
+ movs r1, 0x4
+ bl StartSpriteAffineAnim
+_08047126:
+ ldrh r4, [r5, 0x2E]
+ adds r0, r5, 0
+ bl sub_8078B5C
+ movs r1, 0x3A
+ ldrsh r0, [r5, r1]
+ movs r1, 0x3
+ bl __divsi3
+ adds r1, r0, 0
+ ldrh r0, [r5, 0x3C]
+ adds r0, r1
+ strh r0, [r5, 0x3C]
+ lsls r0, 16
+ asrs r0, 24
+ mov r2, r8
+ ands r0, r2
+ movs r2, 0x38
+ ldrsh r1, [r5, r2]
+ bl Sin
+ ldrh r1, [r5, 0x26]
+ adds r0, r1
+ strh r0, [r5, 0x26]
+ movs r2, 0x80
+ lsls r2, 1
+ adds r0, r2, 0
+ ldrh r1, [r5, 0x6]
+ adds r0, r1
+ strh r0, [r5, 0x6]
+ lsls r0, 16
+ lsrs r0, 24
+ movs r1, 0x3
+ bl __umodsi3
+ lsls r0, 16
+ cmp r0, 0
+ beq _08047176
+ strh r4, [r5, 0x2E]
+ b _0804717E
+_08047176:
+ lsls r0, r4, 16
+ asrs r0, 16
+ subs r0, 0x1
+ strh r0, [r5, 0x2E]
+_0804717E:
+ ldrh r0, [r5, 0x3C]
+ lsrs r0, 8
+ cmp r0, 0x4F
+ ble _08047220
+ ldrh r0, [r5, 0x30]
+ movs r1, 0x1
+ adds r6, r1, 0
+ ands r6, r0
+ ldrh r0, [r5, 0x32]
+ adds r7, r1, 0
+ ands r7, r0
+ movs r2, 0x30
+ ldrsh r1, [r5, r2]
+ lsls r0, r1, 1
+ adds r0, r1
+ movs r1, 0x2
+ negs r1, r1
+ adds r2, r1, 0
+ ands r0, r2
+ orrs r0, r6
+ strh r0, [r5, 0x30]
+ movs r0, 0x32
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ ands r0, r2
+ orrs r0, r7
+ strh r0, [r5, 0x32]
+ b _08047220
+_080471B8:
+ adds r0, r5, 0
+ bl sub_8078718
+ lsls r0, 24
+ cmp r0, 0
+ beq _08047220
+ ldrh r0, [r5, 0x24]
+ ldrh r1, [r5, 0x20]
+ adds r0, r1
+ movs r1, 0
+ strh r0, [r5, 0x20]
+ ldrh r0, [r5, 0x26]
+ ldrh r2, [r5, 0x22]
+ adds r0, r2
+ strh r0, [r5, 0x22]
+ strh r1, [r5, 0x26]
+ strh r1, [r5, 0x24]
+ ldrb r0, [r5, 0x6]
+ strh r0, [r5, 0x3A]
+ strh r1, [r5, 0x2E]
+ bl IsDoubleBattle
+ lsls r0, 24
+ cmp r0, 0
+ beq _08047214
+ ldr r0, _0804720C @ =0x02017840
+ ldrb r1, [r0, 0x9]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08047214
+ movs r0, 0x3A
+ ldrsh r4, [r5, r0]
+ movs r0, 0x2
+ bl battle_get_side_with_given_state
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r4, r0
+ bne _08047214
+ ldr r0, _08047210 @ =sub_8047230
+ b _08047216
+ .align 2, 0
+_0804720C: .4byte 0x02017840
+_08047210: .4byte sub_8047230
+_08047214:
+ ldr r0, _0804722C @ =sub_8046C78
+_08047216:
+ str r0, [r5, 0x1C]
+ adds r0, r5, 0
+ movs r1, 0
+ bl StartSpriteAffineAnim
+_08047220:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804722C: .4byte sub_8046C78
+ thumb_func_end sub_80470C4
+
+ thumb_func_start sub_8047230
+sub_8047230: @ 8047230
+ push {lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x2E]
+ adds r1, r0, 0x1
+ strh r1, [r2, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x18
+ ble _0804724A
+ movs r0, 0
+ strh r0, [r2, 0x2E]
+ ldr r0, _08047250 @ =sub_8046C78
+ str r0, [r2, 0x1C]
+_0804724A:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08047250: .4byte sub_8046C78
+ thumb_func_end sub_8047230
+
+ thumb_func_start sub_8047254
+sub_8047254: @ 8047254
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xF
+ ble _080472A4
+ movs r0, 0
+ strh r0, [r5, 0x2E]
+ bl IsDoubleBattle
+ lsls r0, 24
+ cmp r0, 0
+ beq _080472A0
+ ldr r0, _08047298 @ =0x02017840
+ ldrb r1, [r0, 0x9]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080472A0
+ movs r0, 0x3A
+ ldrsh r4, [r5, r0]
+ movs r0, 0x3
+ bl battle_get_side_with_given_state
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r4, r0
+ bne _080472A0
+ ldr r0, _0804729C @ =sub_8047230
+ b _080472A2
+ .align 2, 0
+_08047298: .4byte 0x02017840
+_0804729C: .4byte sub_8047230
+_080472A0:
+ ldr r0, _080472AC @ =sub_8046C78
+_080472A2:
+ str r0, [r5, 0x1C]
+_080472A4:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080472AC: .4byte sub_8046C78
+ thumb_func_end sub_8047254
+
+ thumb_func_start sub_80472B0
+sub_80472B0: @ 80472B0
+ push {r4,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r2, 24
+ lsrs r2, 24
+ lsls r3, 24
+ lsrs r3, 24
+ movs r4, 0
+ str r4, [sp]
+ bl sub_814086C
+ lsls r0, 24
+ lsrs r0, 24
+ add sp, 0x4
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80472B0
+
+ thumb_func_start sub_80472D8
+sub_80472D8: @ 80472D8
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ movs r3, 0
+ bl sub_8141314
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80472D8
+
+ thumb_func_start CreatePokeballSprite
+CreatePokeballSprite: @ 80472F0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ adds r5, r0, 0
+ mov r9, r2
+ mov r10, r3
+ ldr r6, [sp, 0x24]
+ ldr r4, [sp, 0x28]
+ ldr r0, [sp, 0x2C]
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r1, 24
+ lsrs r1, 24
+ str r1, [sp]
+ mov r1, r9
+ lsls r1, 24
+ lsrs r1, 24
+ mov r9, r1
+ mov r2, r10
+ lsls r2, 24
+ lsrs r2, 24
+ mov r10, r2
+ lsls r6, 24
+ lsrs r6, 24
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r0, _080473BC @ =gUnknown_0820A92C
+ bl LoadCompressedObjectPic
+ ldr r0, _080473C0 @ =gUnknown_0820A98C
+ bl LoadCompressedObjectPalette
+ ldr r0, _080473C4 @ =gSpriteTemplate_820AAB4
+ mov r1, r9
+ mov r2, r10
+ adds r3, r4, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, _080473C8 @ =gSprites
+ mov r8, r3
+ lsls r4, r0, 4
+ adds r4, r0
+ lsls r4, 2
+ adds r1, r4, r3
+ strh r5, [r1, 0x2E]
+ lsls r2, r5, 4
+ adds r2, r5
+ lsls r2, 2
+ add r2, r8
+ ldrh r0, [r2, 0x20]
+ strh r0, [r1, 0x38]
+ ldrh r0, [r2, 0x22]
+ strh r0, [r1, 0x3A]
+ mov r0, r9
+ strh r0, [r2, 0x20]
+ mov r3, r10
+ strh r3, [r2, 0x22]
+ strh r7, [r1, 0x30]
+ mov r0, sp
+ ldrh r0, [r0]
+ strh r0, [r1, 0x32]
+ mov r3, sp
+ ldrh r3, [r3, 0x30]
+ strh r3, [r1, 0x34]
+ ldr r3, [sp, 0x30]
+ lsrs r0, r3, 16
+ strh r0, [r1, 0x36]
+ movs r0, 0x3
+ ands r6, r0
+ lsls r6, 2
+ ldrb r3, [r1, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r6
+ strb r0, [r1, 0x5]
+ movs r0, 0x1C
+ add r8, r0
+ add r4, r8
+ ldr r0, _080473CC @ =sub_80473D0
+ str r0, [r4]
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ 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
+_080473BC: .4byte gUnknown_0820A92C
+_080473C0: .4byte gUnknown_0820A98C
+_080473C4: .4byte gSpriteTemplate_820AAB4
+_080473C8: .4byte gSprites
+_080473CC: .4byte sub_80473D0
+ thumb_func_end CreatePokeballSprite
+
+ thumb_func_start sub_80473D0
+sub_80473D0: @ 80473D0
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r6, r0, 0
+ ldrh r1, [r6, 0x30]
+ movs r2, 0x30
+ ldrsh r0, [r6, r2]
+ cmp r0, 0
+ bne _0804747C
+ ldrh r0, [r6, 0x2E]
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldrh r0, [r6, 0x32]
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldrh r4, [r6, 0x34]
+ ldrh r0, [r6, 0x36]
+ lsls r0, 16
+ orrs r4, r0
+ adds r0, r6, 0
+ adds r0, 0x43
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0804740A
+ subs r0, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ b _0804740C
+_0804740A:
+ movs r5, 0
+_0804740C:
+ adds r0, r6, 0
+ movs r1, 0x1
+ bl StartSpriteAnim
+ ldrh r0, [r6, 0x20]
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r6, 0x22]
+ subs r1, 0x5
+ lsls r1, 24
+ lsrs r1, 24
+ ldrb r2, [r6, 0x5]
+ lsls r2, 28
+ lsrs r2, 30
+ adds r3, r5, 0
+ bl sub_80472B0
+ movs r0, 0x1
+ mov r1, r8
+ adds r2, r4, 0
+ bl sub_80472D8
+ lsls r0, 24
+ lsrs r0, 24
+ movs r5, 0
+ strh r0, [r6, 0x30]
+ ldr r0, _08047474 @ =sub_804748C
+ str r0, [r6, 0x1C]
+ ldr r0, _08047478 @ =gSprites
+ lsls r4, r7, 4
+ adds r4, r7
+ lsls r4, 2
+ adds r4, r0
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+ adds r0, r4, 0
+ bl AnimateSprite
+ movs r0, 0x80
+ lsls r0, 5
+ strh r0, [r4, 0x30]
+ strh r5, [r6, 0x3C]
+ b _08047480
+ .align 2, 0
+_08047474: .4byte sub_804748C
+_08047478: .4byte gSprites
+_0804747C:
+ subs r0, r1, 0x1
+ strh r0, [r6, 0x30]
+_08047480:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80473D0
+
+ thumb_func_start sub_804748C
+sub_804748C: @ 804748C
+ push {r4-r7,lr}
+ adds r4, r0, 0
+ movs r0, 0
+ mov r12, r0
+ movs r6, 0
+ ldrh r0, [r4, 0x2E]
+ lsls r0, 24
+ lsrs r3, r0, 24
+ adds r0, r4, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080474B6
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+_080474B6:
+ ldr r0, _08047544 @ =gSprites
+ lsls r1, r3, 4
+ adds r1, r3
+ lsls r1, 2
+ adds r5, r1, r0
+ adds r0, r5, 0
+ adds r0, 0x3F
+ ldrb r0, [r0]
+ lsls r0, 26
+ cmp r0, 0
+ bge _080474D8
+ adds r0, r5, 0
+ movs r1, 0
+ bl StartSpriteAffineAnim
+ movs r1, 0x1
+ mov r12, r1
+_080474D8:
+ movs r2, 0x38
+ ldrsh r0, [r4, r2]
+ movs r7, 0x20
+ ldrsh r1, [r4, r7]
+ subs r0, r1
+ movs r1, 0x3C
+ ldrsh r2, [r4, r1]
+ muls r0, r2
+ cmp r0, 0
+ bge _080474EE
+ adds r0, 0x7F
+_080474EE:
+ asrs r0, 7
+ ldrh r7, [r4, 0x20]
+ adds r0, r7
+ lsls r0, 16
+ lsrs r3, r0, 16
+ movs r1, 0x3A
+ ldrsh r0, [r4, r1]
+ movs r7, 0x22
+ ldrsh r1, [r4, r7]
+ subs r0, r1
+ muls r0, r2
+ cmp r0, 0
+ bge _0804750A
+ adds r0, 0x7F
+_0804750A:
+ asrs r0, 7
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r3, [r5, 0x20]
+ strh r0, [r5, 0x22]
+ ldrh r2, [r4, 0x3C]
+ movs r7, 0x3C
+ ldrsh r0, [r4, r7]
+ cmp r0, 0x7F
+ bgt _0804754C
+ ldr r1, _08047548 @ =gSineTable
+ lsls r0, r2, 24
+ lsrs r0, 23
+ adds r0, r1
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bge _08047530
+ adds r0, 0x7
+_08047530:
+ asrs r0, 3
+ negs r0, r0
+ lsls r0, 16
+ lsrs r0, 16
+ adds r1, r2, 0x4
+ strh r1, [r4, 0x3C]
+ strh r0, [r5, 0x24]
+ strh r0, [r5, 0x26]
+ b _0804755A
+ .align 2, 0
+_08047544: .4byte gSprites
+_08047548: .4byte gSineTable
+_0804754C:
+ ldrh r0, [r4, 0x38]
+ strh r0, [r5, 0x20]
+ ldrh r0, [r4, 0x3A]
+ strh r0, [r5, 0x22]
+ strh r6, [r5, 0x24]
+ strh r6, [r5, 0x26]
+ movs r6, 0x1
+_0804755A:
+ adds r0, r4, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _08047578
+ mov r2, r12
+ cmp r2, 0
+ beq _08047578
+ cmp r6, 0
+ beq _08047578
+ adds r0, r4, 0
+ bl DestroySpriteAndFreeResources
+_08047578:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_804748C
+
+ thumb_func_start sub_8047580
+sub_8047580: @ 8047580
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ mov r10, r0
+ adds r6, r2, 0
+ mov r8, r3
+ ldr r5, [sp, 0x20]
+ ldr r4, [sp, 0x24]
+ ldr r0, [sp, 0x28]
+ mov r9, r0
+ mov r0, r10
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ lsls r1, 24
+ lsrs r7, r1, 24
+ lsls r6, 24
+ lsrs r6, 24
+ mov r1, r8
+ lsls r1, 24
+ lsrs r1, 24
+ mov r8, r1
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r4, 24
+ lsrs r4, 24
+ mov r0, r9
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ ldr r0, _08047624 @ =gUnknown_0820A92C
+ bl LoadCompressedObjectPic
+ ldr r0, _08047628 @ =gUnknown_0820A98C
+ bl LoadCompressedObjectPalette
+ ldr r0, _0804762C @ =gSpriteTemplate_820AAB4
+ adds r1, r6, 0
+ mov r2, r8
+ adds r3, r4, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r6, _08047630 @ =gSprites
+ lsls r3, r0, 4
+ adds r3, r0
+ lsls r3, 2
+ adds r2, r3, r6
+ mov r1, r10
+ strh r1, [r2, 0x2E]
+ mov r4, r9
+ strh r4, [r2, 0x30]
+ strh r7, [r2, 0x32]
+ mov r1, sp
+ ldrh r1, [r1, 0x2C]
+ strh r1, [r2, 0x34]
+ ldr r4, [sp, 0x2C]
+ lsrs r1, r4, 16
+ strh r1, [r2, 0x36]
+ movs r1, 0x3
+ ands r5, r1
+ lsls r5, 2
+ ldrb r4, [r2, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r4
+ orrs r1, r5
+ strb r1, [r2, 0x5]
+ adds r6, 0x1C
+ adds r3, r6
+ ldr r1, _08047634 @ =sub_8047638
+ str r1, [r3]
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08047624: .4byte gUnknown_0820A92C
+_08047628: .4byte gUnknown_0820A98C
+_0804762C: .4byte gSpriteTemplate_820AAB4
+_08047630: .4byte gSprites
+_08047634: .4byte sub_8047638
+ thumb_func_end sub_8047580
+
+ thumb_func_start sub_8047638
+sub_8047638: @ 8047638
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r4, r0, 0
+ ldrh r1, [r4, 0x30]
+ movs r2, 0x30
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bne _080476D0
+ ldrh r0, [r4, 0x2E]
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldrh r0, [r4, 0x32]
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldrh r5, [r4, 0x34]
+ ldrh r0, [r4, 0x36]
+ lsls r0, 16
+ orrs r5, r0
+ adds r0, r4, 0
+ adds r0, 0x43
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08047672
+ subs r0, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ b _08047674
+_08047672:
+ movs r6, 0
+_08047674:
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAnim
+ ldrh r0, [r4, 0x20]
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r4, 0x22]
+ subs r1, 0x5
+ lsls r1, 24
+ lsrs r1, 24
+ ldrb r2, [r4, 0x5]
+ lsls r2, 28
+ lsrs r2, 30
+ adds r3, r6, 0
+ bl sub_80472B0
+ movs r0, 0x1
+ mov r1, r8
+ adds r2, r5, 0
+ bl sub_80472D8
+ lsls r0, 24
+ lsrs r0, 24
+ movs r5, 0
+ strh r0, [r4, 0x30]
+ ldr r0, _080476C8 @ =sub_80476E0
+ str r0, [r4, 0x1C]
+ lsls r4, r7, 4
+ adds r4, r7
+ lsls r4, 2
+ ldr r0, _080476CC @ =gSprites
+ adds r4, r0
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl StartSpriteAffineAnim
+ adds r0, r4, 0
+ bl AnimateSprite
+ strh r5, [r4, 0x30]
+ b _080476D4
+ .align 2, 0
+_080476C8: .4byte sub_80476E0
+_080476CC: .4byte gSprites
+_080476D0:
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x30]
+_080476D4:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8047638
+
+ thumb_func_start sub_80476E0
+sub_80476E0: @ 80476E0
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldrh r0, [r5, 0x38]
+ adds r0, 0x1
+ strh r0, [r5, 0x38]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xB
+ bne _080476F8
+ movs r0, 0x3C
+ bl PlaySE
+_080476F8:
+ ldrh r1, [r5, 0x2E]
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r2, _08047734 @ =gSprites
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r4, r0, r2
+ adds r0, r4, 0
+ adds r0, 0x3F
+ ldrb r0, [r0]
+ lsls r0, 26
+ cmp r0, 0
+ bge _0804773C
+ adds r0, r5, 0
+ movs r1, 0x2
+ bl StartSpriteAnim
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ movs r0, 0
+ strh r0, [r5, 0x38]
+ ldr r0, _08047738 @ =sub_8047754
+ str r0, [r5, 0x1C]
+ b _0804774C
+ .align 2, 0
+_08047734: .4byte gSprites
+_08047738: .4byte sub_8047754
+_0804773C:
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x60
+ strh r0, [r4, 0x30]
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ negs r0, r0
+ asrs r0, 8
+ strh r0, [r4, 0x26]
+_0804774C:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80476E0
+
+ thumb_func_start sub_8047754
+sub_8047754: @ 8047754
+ push {lr}
+ adds r2, r0, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _08047768
+ ldr r0, _0804776C @ =SpriteCallbackDummy
+ str r0, [r2, 0x1C]
+_08047768:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804776C: .4byte SpriteCallbackDummy
+ thumb_func_end sub_8047754
+
+ thumb_func_start obj_delete_and_free_associated_resources_
+obj_delete_and_free_associated_resources_: @ 8047770
+ push {lr}
+ bl DestroySpriteAndFreeResources
+ pop {r0}
+ bx r0
+ thumb_func_end obj_delete_and_free_associated_resources_
+
+ thumb_func_start sub_804777C
+sub_804777C: @ 804777C
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r5, r0, 0
+ ldr r0, _080477FC @ =gUnknown_03004340
+ adds r0, r5, r0
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r6, _08047800 @ =gSprites
+ adds r4, r0, r6
+ movs r1, 0
+ movs r0, 0x5
+ strh r0, [r4, 0x2E]
+ strh r1, [r4, 0x30]
+ movs r0, 0x73
+ strh r0, [r4, 0x24]
+ strh r1, [r4, 0x26]
+ ldr r0, _08047804 @ =sub_8047830
+ str r0, [r4, 0x1C]
+ adds r0, r5, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080477CA
+ ldrh r0, [r4, 0x2E]
+ negs r0, r0
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r4, 0x30]
+ negs r0, r0
+ strh r0, [r4, 0x30]
+ ldrh r0, [r4, 0x24]
+ negs r0, r0
+ strh r0, [r4, 0x24]
+ ldrh r0, [r4, 0x26]
+ negs r0, r0
+ strh r0, [r4, 0x26]
+_080477CA:
+ movs r0, 0x38
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r6, 0
+ adds r1, 0x1C
+ adds r1, r0, r1
+ adds r0, r6
+ ldr r1, [r1]
+ bl _call_via_r1
+ adds r0, r5, 0
+ bl battle_get_per_side_status
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ bne _080477F4
+ ldr r0, _08047808 @ =sub_804780C
+ str r0, [r4, 0x1C]
+_080477F4:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080477FC: .4byte gUnknown_03004340
+_08047800: .4byte gSprites
+_08047804: .4byte sub_8047830
+_08047808: .4byte sub_804780C
+ thumb_func_end sub_804777C
+
+ thumb_func_start sub_804780C
+sub_804780C: @ 804780C
+ push {lr}
+ adds r1, r0, 0
+ ldrh r0, [r1, 0x30]
+ adds r0, 0x1
+ strh r0, [r1, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x14
+ bne _08047826
+ movs r0, 0
+ strh r0, [r1, 0x30]
+ ldr r0, _0804782C @ =sub_8047830
+ str r0, [r1, 0x1C]
+_08047826:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804782C: .4byte sub_8047830
+ thumb_func_end sub_804780C
+
+ thumb_func_start sub_8047830
+sub_8047830: @ 8047830
+ push {lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x24]
+ ldrh r1, [r2, 0x2E]
+ subs r0, r1
+ strh r0, [r2, 0x24]
+ ldrh r0, [r2, 0x26]
+ ldrh r1, [r2, 0x30]
+ subs r0, r1
+ strh r0, [r2, 0x26]
+ ldr r0, [r2, 0x24]
+ cmp r0, 0
+ bne _0804784E
+ ldr r0, _08047854 @ =SpriteCallbackDummy
+ str r0, [r2, 0x1C]
+_0804784E:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08047854: .4byte SpriteCallbackDummy
+ thumb_func_end sub_8047830
+
+ thumb_func_start sub_8047858
+sub_8047858: @ 8047858
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r5, _08047890 @ =oamc_804BEB4
+ adds r0, r5, 0
+ bl CreateInvisibleSpriteWithCallback
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08047894 @ =gSprites
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r3, r1, r2
+ movs r0, 0x1
+ strh r0, [r3, 0x2E]
+ ldr r0, _08047898 @ =gUnknown_03004340
+ adds r4, r0
+ ldrb r0, [r4]
+ strh r0, [r3, 0x30]
+ adds r2, 0x1C
+ adds r1, r2
+ str r5, [r1]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08047890: .4byte oamc_804BEB4
+_08047894: .4byte gSprites
+_08047898: .4byte gUnknown_03004340
+ thumb_func_end sub_8047858
+
+ thumb_func_start oamc_804BEB4
+oamc_804BEB4: @ 804789C
+ push {lr}
+ adds r3, r0, 0
+ ldrh r1, [r3, 0x30]
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r2, _080478D8 @ =gSprites
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r0, r2
+ ldrh r0, [r3, 0x2E]
+ movs r2, 0
+ strh r0, [r1, 0x26]
+ ldrh r0, [r3, 0x2E]
+ negs r0, r0
+ strh r0, [r3, 0x2E]
+ ldrh r0, [r3, 0x32]
+ adds r0, 0x1
+ strh r0, [r3, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x15
+ bne _080478D4
+ strh r2, [r1, 0x24]
+ strh r2, [r1, 0x26]
+ adds r0, r3, 0
+ bl DestroySprite
+_080478D4:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080478D8: .4byte gSprites
+ thumb_func_end oamc_804BEB4
+
+ thumb_func_start sub_80478DC
+sub_80478DC: @ 80478DC
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _08047938 @ =gUnknown_0820A92C
+ lsls r6, r4, 3
+ adds r5, r6, r0
+ ldrh r0, [r5, 0x6]
+ bl GetSpriteTileStartByTag
+ lsls r0, 16
+ ldr r1, _0804793C @ =0xffff0000
+ cmp r0, r1
+ bne _08047904
+ adds r0, r5, 0
+ bl LoadCompressedObjectPic
+ ldr r0, _08047940 @ =gUnknown_0820A98C
+ adds r0, r6, r0
+ bl LoadCompressedObjectPalette
+_08047904:
+ cmp r4, 0x6
+ beq _08047930
+ cmp r4, 0x6
+ blt _08047914
+ cmp r4, 0xB
+ bgt _08047914
+ cmp r4, 0xA
+ bge _08047930
+_08047914:
+ ldr r1, _08047938 @ =gUnknown_0820A92C
+ lsls r0, r4, 3
+ adds r0, r1
+ ldrh r0, [r0, 0x6]
+ bl GetSpriteTileStartByTag
+ adds r1, r0, 0
+ lsls r1, 16
+ ldr r0, _08047944 @ =gUnknown_08D030D0
+ lsrs r1, 11
+ ldr r2, _08047948 @ =0x06010100
+ adds r1, r2
+ bl LZDecompressVram
+_08047930:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08047938: .4byte gUnknown_0820A92C
+_0804793C: .4byte 0xffff0000
+_08047940: .4byte gUnknown_0820A98C
+_08047944: .4byte gUnknown_08D030D0
+_08047948: .4byte 0x06010100
+ thumb_func_end sub_80478DC
+
+ thumb_func_start sub_804794C
+sub_804794C: @ 804794C
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ ldr r0, _08047970 @ =gUnknown_0820A92C
+ lsrs r4, 21
+ adds r0, r4, r0
+ ldrh r0, [r0, 0x6]
+ bl FreeSpriteTilesByTag
+ ldr r0, _08047974 @ =gUnknown_0820A98C
+ adds r4, r0
+ ldrh r0, [r4, 0x4]
+ bl FreeSpritePaletteByTag
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08047970: .4byte gUnknown_0820A92C
+_08047974: .4byte gUnknown_0820A98C
+ thumb_func_end sub_804794C
+
+ thumb_func_start sub_8047978
+sub_8047978: @ 8047978
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r0, r4, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080479A4
+ ldr r1, _0804799C @ =gUnknown_02024A6A
+ lsls r0, r4, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _080479A0 @ =gEnemyParty
+ b _080479B2
+ .align 2, 0
+_0804799C: .4byte gUnknown_02024A6A
+_080479A0: .4byte gEnemyParty
+_080479A4:
+ ldr r1, _080479C4 @ =gUnknown_02024A6A
+ lsls r0, r4, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _080479C8 @ =gPlayerParty
+_080479B2:
+ adds r0, r1
+ movs r1, 0x26
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080479C4: .4byte gUnknown_02024A6A
+_080479C8: .4byte gPlayerParty
+ thumb_func_end sub_8047978
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/pokeblock.s b/asm/pokeblock.s
new file mode 100644
index 000000000..d39a4b3ca
--- /dev/null
+++ b/asm/pokeblock.s
@@ -0,0 +1,2675 @@
+ .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 @ =gUnknown_0300485C
+ 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 gUnknown_0300485C
+_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 sub_8072DEC
+ 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 sub_80F914C
+ 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 sub_80F98DC
+ movs r0, 0x1
+ bl sub_80F98DC
+ 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 sub_80F98DC
+ movs r0, 0x1
+ bl sub_80F98DC
+ bl sub_8072DEC
+ 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 @ =gUnknown_030041C0
+ 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 gUnknown_030041C0
+_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 @ =gUnknown_083F7F70
+ 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 gUnknown_083F7F70
+_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 sub_810C950
+sub_810C950: @ 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 sub_810C950
+
+ thumb_func_start sub_810C994
+sub_810C994: @ 810C994
+ push {r4,lr}
+ movs r4, 0
+_0810C998:
+ adds r0, r4, 0
+ bl sub_810C950
+ 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 sub_810C994
+
+ 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 sub_810C950
+ 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/rom_81473B8.s b/asm/pokeblock_feed.s
index 6c26c034a..7df634399 100644
--- a/asm/rom_81473B8.s
+++ b/asm/pokeblock_feed.s
@@ -6,603 +6,6 @@
.text
- thumb_func_start sub_81473B8
-sub_81473B8: @ 81473B8
- push {lr}
- ldr r0, _081473E8 @ =0x0000084f
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- bne _08147400
- ldr r2, _081473EC @ =gSaveBlock1
- ldrh r1, [r2, 0x4]
- ldr r0, _081473F0 @ =0x00004718
- cmp r1, r0
- bne _08147400
- ldr r1, [r2]
- ldr r0, _081473F4 @ =0x0003000a
- cmp r1, r0
- beq _081473E4
- ldr r0, _081473F8 @ =0x00030009
- cmp r1, r0
- beq _081473E4
- ldr r0, _081473FC @ =0x0003000b
- cmp r1, r0
- bne _08147400
-_081473E4:
- movs r0, 0x1
- b _08147402
- .align 2, 0
-_081473E8: .4byte 0x0000084f
-_081473EC: .4byte gSaveBlock1
-_081473F0: .4byte 0x00004718
-_081473F4: .4byte 0x0003000a
-_081473F8: .4byte 0x00030009
-_081473FC: .4byte 0x0003000b
-_08147400:
- movs r0, 0
-_08147402:
- pop {r1}
- bx r1
- thumb_func_end sub_81473B8
-
- thumb_func_start sub_8147408
-sub_8147408: @ 8147408
- push {lr}
- ldr r2, _08147460 @ =0x0000022a
- movs r0, 0x10
- movs r1, 0x8
- bl MapGridSetMetatileIdAt
- ldr r2, _08147464 @ =0x0000022b
- movs r0, 0x11
- movs r1, 0x8
- bl MapGridSetMetatileIdAt
- movs r2, 0x8B
- lsls r2, 2
- movs r0, 0x12
- movs r1, 0x8
- bl MapGridSetMetatileIdAt
- ldr r2, _08147468 @ =0x00000e32
- movs r0, 0x10
- movs r1, 0x9
- bl MapGridSetMetatileIdAt
- ldr r2, _0814746C @ =0x00000233
- movs r0, 0x11
- movs r1, 0x9
- bl MapGridSetMetatileIdAt
- ldr r2, _08147470 @ =0x00000e34
- movs r0, 0x12
- movs r1, 0x9
- bl MapGridSetMetatileIdAt
- bl DrawWholeMapView
- movs r0, 0x14
- bl PlaySE
- ldr r0, _08147474 @ =0x0000084f
- bl FlagSet
- bl ScriptContext2_Disable
- pop {r0}
- bx r0
- .align 2, 0
-_08147460: .4byte 0x0000022a
-_08147464: .4byte 0x0000022b
-_08147468: .4byte 0x00000e32
-_0814746C: .4byte 0x00000233
-_08147470: .4byte 0x00000e34
-_08147474: .4byte 0x0000084f
- thumb_func_end sub_8147408
-
- thumb_func_start sub_8147478
-sub_8147478: @ 8147478
- push {r4,lr}
- ldr r4, _081474B4 @ =gPlayerParty
- adds r0, r4, 0
- movs r1, 0x41
- movs r2, 0
- bl GetMonData
- ldr r1, _081474B8 @ =0x0000017d
- cmp r0, r1
- bne _081474C0
- bl CalculatePlayerPartyCount
- ldr r0, _081474BC @ =gPlayerPartyCount
- ldrb r1, [r0]
- movs r0, 0x64
- muls r0, r1
- adds r1, r4, 0
- subs r1, 0x64
- adds r0, r1
- movs r1, 0x41
- movs r2, 0
- bl GetMonData
- movs r1, 0x9D
- lsls r1, 1
- cmp r0, r1
- bne _081474C0
- movs r0, 0x1
- b _081474C2
- .align 2, 0
-_081474B4: .4byte gPlayerParty
-_081474B8: .4byte 0x0000017d
-_081474BC: .4byte gPlayerPartyCount
-_081474C0:
- movs r0, 0
-_081474C2:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8147478
-
- thumb_func_start sub_81474C8
-sub_81474C8: @ 81474C8
- push {lr}
- movs r0, 0x85
- lsls r0, 4
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- bne _0814750C
- ldr r2, _081474FC @ =gSaveBlock1
- ldrh r1, [r2, 0x4]
- movs r0, 0xC3
- lsls r0, 3
- cmp r1, r0
- bne _0814750C
- ldr r1, [r2]
- ldr r0, _08147500 @ =0x0017000a
- cmp r1, r0
- beq _081474F8
- ldr r0, _08147504 @ =0x00170009
- cmp r1, r0
- beq _081474F8
- ldr r0, _08147508 @ =0x0017000b
- cmp r1, r0
- bne _0814750C
-_081474F8:
- movs r0, 0x1
- b _0814750E
- .align 2, 0
-_081474FC: .4byte gSaveBlock1
-_08147500: .4byte 0x0017000a
-_08147504: .4byte 0x00170009
-_08147508: .4byte 0x0017000b
-_0814750C:
- movs r0, 0
-_0814750E:
- pop {r1}
- bx r1
- thumb_func_end sub_81474C8
-
- thumb_func_start sub_8147514
-sub_8147514: @ 8147514
- push {lr}
- movs r0, 0x28
- bl FieldEffectActiveListRemove
- ldr r2, _08147574 @ =0x0000022a
- movs r0, 0xE
- movs r1, 0x1A
- bl MapGridSetMetatileIdAt
- ldr r2, _08147578 @ =0x0000022b
- movs r0, 0xF
- movs r1, 0x1A
- bl MapGridSetMetatileIdAt
- movs r2, 0x8B
- lsls r2, 2
- movs r0, 0x10
- movs r1, 0x1A
- bl MapGridSetMetatileIdAt
- ldr r2, _0814757C @ =0x00000e32
- movs r0, 0xE
- movs r1, 0x1B
- bl MapGridSetMetatileIdAt
- ldr r2, _08147580 @ =0x00000233
- movs r0, 0xF
- movs r1, 0x1B
- bl MapGridSetMetatileIdAt
- ldr r2, _08147584 @ =0x00000e34
- movs r0, 0x10
- movs r1, 0x1B
- bl MapGridSetMetatileIdAt
- bl DrawWholeMapView
- movs r0, 0x14
- bl PlaySE
- movs r0, 0x85
- lsls r0, 4
- bl FlagSet
- bl ScriptContext2_Disable
- pop {r0}
- bx r0
- .align 2, 0
-_08147574: .4byte 0x0000022a
-_08147578: .4byte 0x0000022b
-_0814757C: .4byte 0x00000e32
-_08147580: .4byte 0x00000233
-_08147584: .4byte 0x00000e34
- thumb_func_end sub_8147514
-
- thumb_func_start sub_8147588
-sub_8147588: @ 8147588
- push {lr}
- ldr r0, _081475AC @ =0x00000852
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- bne _081475BC
- ldr r2, _081475B0 @ =gSaveBlock1
- ldrh r1, [r2, 0x4]
- ldr r0, _081475B4 @ =0x00004418
- cmp r1, r0
- bne _081475BC
- ldr r1, [r2]
- ldr r0, _081475B8 @ =0x00190008
- cmp r1, r0
- bne _081475BC
- movs r0, 0x1
- b _081475BE
- .align 2, 0
-_081475AC: .4byte 0x00000852
-_081475B0: .4byte gSaveBlock1
-_081475B4: .4byte 0x00004418
-_081475B8: .4byte 0x00190008
-_081475BC:
- movs r0, 0
-_081475BE:
- pop {r1}
- bx r1
- thumb_func_end sub_8147588
-
- thumb_func_start sub_81475C4
-sub_81475C4: @ 81475C4
- push {lr}
- ldr r0, _081475D8 @ =gUnknown_0202FF84
- ldr r1, _081475DC @ =gUnknown_03005CE0
- ldrb r1, [r1]
- str r1, [r0]
- movs r0, 0x3C
- bl FieldEffectStart
- pop {r0}
- bx r0
- .align 2, 0
-_081475D8: .4byte gUnknown_0202FF84
-_081475DC: .4byte gUnknown_03005CE0
- thumb_func_end sub_81475C4
-
- thumb_func_start FldEff_UseFlyAncientTomb
-FldEff_UseFlyAncientTomb: @ 81475E0
- push {lr}
- bl oei_task_add
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08147604 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r2, _08147608 @ =sub_814760C
- lsrs r0, r2, 16
- strh r0, [r1, 0x18]
- strh r2, [r1, 0x1A]
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_08147604: .4byte gTasks
-_08147608: .4byte sub_814760C
- thumb_func_end FldEff_UseFlyAncientTomb
-
- thumb_func_start sub_814760C
-sub_814760C: @ 814760C
- push {lr}
- movs r0, 0x3C
- bl FieldEffectActiveListRemove
- bl sub_814761C
- pop {r0}
- bx r0
- thumb_func_end sub_814760C
-
- thumb_func_start sub_814761C
-sub_814761C: @ 814761C
- push {lr}
- ldr r2, _08147674 @ =0x0000022a
- movs r0, 0xE
- movs r1, 0x1A
- bl MapGridSetMetatileIdAt
- ldr r2, _08147678 @ =0x0000022b
- movs r0, 0xF
- movs r1, 0x1A
- bl MapGridSetMetatileIdAt
- movs r2, 0x8B
- lsls r2, 2
- movs r0, 0x10
- movs r1, 0x1A
- bl MapGridSetMetatileIdAt
- ldr r2, _0814767C @ =0x00000e32
- movs r0, 0xE
- movs r1, 0x1B
- bl MapGridSetMetatileIdAt
- ldr r2, _08147680 @ =0x00000233
- movs r0, 0xF
- movs r1, 0x1B
- bl MapGridSetMetatileIdAt
- ldr r2, _08147684 @ =0x00000e34
- movs r0, 0x10
- movs r1, 0x1B
- bl MapGridSetMetatileIdAt
- bl DrawWholeMapView
- movs r0, 0x14
- bl PlaySE
- ldr r0, _08147688 @ =0x00000852
- bl FlagSet
- bl ScriptContext2_Disable
- pop {r0}
- bx r0
- .align 2, 0
-_08147674: .4byte 0x0000022a
-_08147678: .4byte 0x0000022b
-_0814767C: .4byte 0x00000e32
-_08147680: .4byte 0x00000233
-_08147684: .4byte 0x00000e34
-_08147688: .4byte 0x00000852
- thumb_func_end sub_814761C
-
- thumb_func_start sub_814768C
-sub_814768C: @ 814768C
- push {lr}
- ldr r0, _081476A8 @ =0x00000851
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- bne _081476A2
- ldr r0, _081476AC @ =sub_81476B0
- movs r1, 0x50
- bl CreateTask
-_081476A2:
- pop {r0}
- bx r0
- .align 2, 0
-_081476A8: .4byte 0x00000851
-_081476AC: .4byte sub_81476B0
- thumb_func_end sub_814768C
-
- thumb_func_start sub_81476B0
-sub_81476B0: @ 81476B0
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _081476D4 @ =gTasks + 0x8
- adds r4, r0, r1
- movs r1, 0
- ldrsh r0, [r4, r1]
- cmp r0, 0x4
- bhi _0814776A
- lsls r0, 2
- ldr r1, _081476D8 @ =_081476DC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_081476D4: .4byte gTasks + 0x8
-_081476D8: .4byte _081476DC
- .align 2, 0
-_081476DC:
- .4byte _081476F0
- .4byte _081476FE
- .4byte _08147730
- .4byte _08147748
- .4byte _0814775A
-_081476F0:
- movs r1, 0xE1
- lsls r1, 5
- adds r0, r1, 0
- strh r0, [r4, 0x2]
- movs r0, 0x1
- strh r0, [r4]
- b _0814776A
-_081476FE:
- bl sub_8147774
- cmp r0, 0
- beq _08147716
- bl MenuZeroFillScreen
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x2
- strh r0, [r4]
- b _0814776A
-_08147716:
- ldrh r0, [r4, 0x2]
- subs r0, 0x1
- strh r0, [r4, 0x2]
- lsls r0, 16
- cmp r0, 0
- bne _0814776A
- bl MenuZeroFillScreen
- movs r0, 0x3
- strh r0, [r4]
- movs r0, 0x1E
- strh r0, [r4, 0x2]
- b _0814776A
-_08147730:
- bl sub_8147774
- cmp r0, 0
- beq _08147748
- bl sub_8064E2C
- adds r0, r5, 0
- bl DestroyTask
- bl ScriptContext2_Disable
- b _0814776A
-_08147748:
- ldrh r0, [r4, 0x2]
- subs r0, 0x1
- strh r0, [r4, 0x2]
- lsls r0, 16
- cmp r0, 0
- bne _0814776A
- movs r0, 0x4
- strh r0, [r4]
- b _0814776A
-_0814775A:
- bl sub_8064E2C
- ldr r0, _08147770 @ =gUnknown_0815EF19
- bl ScriptContext1_SetupScript
- adds r0, r5, 0
- bl DestroyTask
-_0814776A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08147770: .4byte gUnknown_0815EF19
- thumb_func_end sub_81476B0
-
- thumb_func_start sub_8147774
-sub_8147774: @ 8147774
- push {lr}
- movs r1, 0xFF
- ldr r0, _081477A4 @ =gSaveBlock2
- ldrb r2, [r0, 0x13]
- cmp r2, 0x1
- bne _08147788
- movs r3, 0xC0
- lsls r3, 2
- adds r0, r3, 0
- orrs r1, r0
-_08147788:
- cmp r2, 0x2
- bne _08147794
- movs r2, 0x80
- lsls r2, 2
- adds r0, r2, 0
- orrs r1, r0
-_08147794:
- ldr r0, _081477A8 @ =gMain
- ldrh r0, [r0, 0x2E]
- ands r1, r0
- cmp r1, 0
- bne _081477AC
- movs r0, 0
- b _081477AE
- .align 2, 0
-_081477A4: .4byte gSaveBlock2
-_081477A8: .4byte gMain
-_081477AC:
- movs r0, 0x1
-_081477AE:
- pop {r1}
- bx r1
- thumb_func_end sub_8147774
-
- thumb_func_start sub_81477B4
-sub_81477B4: @ 81477B4
- push {lr}
- ldr r0, _081477E8 @ =sub_814782C
- movs r1, 0x9
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _081477EC @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r0, 0
- strh r0, [r1, 0xA]
- strh r0, [r1, 0xC]
- movs r0, 0x2
- strh r0, [r1, 0x10]
- movs r0, 0x5
- strh r0, [r1, 0x12]
- movs r0, 0x32
- strh r0, [r1, 0x14]
- movs r0, 0
- bl SetCameraPanningCallback
- pop {r0}
- bx r0
- .align 2, 0
-_081477E8: .4byte sub_814782C
-_081477EC: .4byte gTasks
- thumb_func_end sub_81477B4
-
- thumb_func_start sub_81477F0
-sub_81477F0: @ 81477F0
- push {lr}
- ldr r0, _08147824 @ =sub_814782C
- movs r1, 0x9
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08147828 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r0, 0
- strh r0, [r1, 0xA]
- strh r0, [r1, 0xC]
- movs r0, 0x3
- strh r0, [r1, 0x10]
- movs r0, 0x5
- strh r0, [r1, 0x12]
- movs r0, 0x2
- strh r0, [r1, 0x14]
- movs r0, 0
- bl SetCameraPanningCallback
- pop {r0}
- bx r0
- .align 2, 0
-_08147824: .4byte sub_814782C
-_08147828: .4byte gTasks
- thumb_func_end sub_81477F0
-
- thumb_func_start sub_814782C
-sub_814782C: @ 814782C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _0814788C @ =gTasks
- adds r4, r0, r1
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- movs r2, 0x12
- ldrsh r1, [r4, r2]
- bl __modsi3
- cmp r0, 0
- bne _08147884
- strh r0, [r4, 0xA]
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- ldrh r0, [r4, 0x10]
- negs r0, r0
- strh r0, [r4, 0x10]
- movs r0, 0x10
- ldrsh r1, [r4, r0]
- movs r0, 0
- bl SetCameraPanning
- movs r2, 0xC
- ldrsh r1, [r4, r2]
- movs r2, 0x14
- ldrsh r0, [r4, r2]
- cmp r1, r0
- bne _08147884
- adds r0, r5, 0
- bl DestroyTask
- bl EnableBothScriptContexts
- bl InstallCameraPanAheadCallback
-_08147884:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0814788C: .4byte gTasks
- thumb_func_end sub_814782C
-
thumb_func_start sub_8147890
sub_8147890: @ 8147890
push {lr}
@@ -962,7 +365,7 @@ _08147B70:
str r4, [sp]
str r5, [sp, 0x4]
str r6, [sp, 0x8]
- bl sub_800D334
+ bl HandleLoadSpecialPokePic
b _08147C40
.align 2, 0
_08147BAC: .4byte gMonFrontPicTable
diff --git a/asm/pokedex.s b/asm/pokedex.s
index fe069bcf8..8fd971840 100644
--- a/asm/pokedex.s
+++ b/asm/pokedex.s
@@ -158,7 +158,7 @@ _080908A0:
movs r2, 0
movs r3, 0xD0
bl sub_8072BD8
- bl IsNationalPokedex
+ bl IsNationalPokedexEnabled
cmp r0, 0
bne _080908CC
adds r0, r6, 0
@@ -719,8 +719,8 @@ GetPokemonCategory: @ 8090D3C
_08090D50: .4byte gPokedexEntries
thumb_func_end GetPokemonCategory
- thumb_func_start sub_8090D54
-sub_8090D54: @ 8090D54
+ thumb_func_start GetPokedexHeightWeight
+GetPokedexHeightWeight: @ 8090D54
push {lr}
lsls r0, 16
lsrs r2, r0, 16
@@ -754,7 +754,7 @@ _08090D88:
bx r1
.align 2, 0
_08090D8C: .4byte gPokedexEntries
- thumb_func_end sub_8090D54
+ thumb_func_end GetPokedexHeightWeight
thumb_func_start sub_8090D90
sub_8090D90: @ 8090D90
@@ -2336,7 +2336,7 @@ _08091958:
str r4, [sp, 0x8]
movs r4, 0x1
str r4, [sp, 0xC]
- bl sub_800D378
+ bl LoadSpecialPokePic
b _080919CE
.align 2, 0
_0809198C: .4byte gMonFrontPicTable
@@ -2367,7 +2367,7 @@ _0809199C:
str r4, [sp, 0x8]
movs r4, 0x1
str r4, [sp, 0xC]
- bl sub_800D378
+ bl LoadSpecialPokePic
_080919CE:
ldr r0, _08091A40 @ =gMonPaletteTable
adds r0, r6, r0
@@ -3018,7 +3018,7 @@ _08091EA6:
movs r1, 0x1
movs r2, 0x7E
bl LoadPalette
- bl IsNationalPokedex
+ bl IsNationalPokedexEnabled
cmp r0, 0
bne _08091F10
movs r4, 0
@@ -3377,7 +3377,7 @@ sub_80921B0: @ 80921B0
ldrsh r0, [r0, r1]
cmp r0, 0
beq _080921E4
- bl IsNationalPokedex
+ bl IsNationalPokedexEnabled
ldr r6, _080921DC @ =gUnknown_083B586C
cmp r0, 0
bne _080921F0
@@ -3388,7 +3388,7 @@ _080921D8: .4byte gTasks
_080921DC: .4byte gUnknown_083B586C
_080921E0: .4byte gUnknown_083B58A4
_080921E4:
- bl IsNationalPokedex
+ bl IsNationalPokedexEnabled
ldr r6, _0809221C @ =gUnknown_083B5850
cmp r0, 0
bne _080921F0
@@ -3458,7 +3458,7 @@ _08092230:
bl sub_8092E10
ldr r4, _080922C8 @ =gSaveBlock2
strb r0, [r4, 0x19]
- bl IsNationalPokedex
+ bl IsNationalPokedexEnabled
cmp r0, 0
bne _08092288
movs r0, 0
@@ -4269,7 +4269,7 @@ _08092904:
.align 2, 0
_08092910: .4byte gUnknown_083B57FC
_08092914:
- bl IsNationalPokedex
+ bl IsNationalPokedexEnabled
cmp r0, 0
bne _08092940
ldr r2, _0809293C @ =gUnknown_083B57FC
@@ -4647,7 +4647,7 @@ sub_8092B68: @ 8092B68
movs r2, 0x40
movs r3, 0x1
bl MenuPrint_PixelCoords
- bl IsNationalPokedex
+ bl IsNationalPokedexEnabled
cmp r0, 0
beq _08092C5E
ldrh r0, [r6, 0xE]
diff --git a/asm/pokemon_3.s b/asm/pokemon_3.s
new file mode 100644
index 000000000..d4bb815b3
--- /dev/null
+++ b/asm/pokemon_3.s
@@ -0,0 +1,2826 @@
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start unref_sub_803F938
+unref_sub_803F938: @ 803F938
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ adds r5, r1, 0
+ mov r10, r2
+ lsls r0, 16
+ movs r1, 0x9A
+ lsls r1, 17
+ cmp r0, r1
+ bne _0803FA42
+ ldr r1, _0803FA04 @ =gUnknown_081FAF4C
+ ldr r0, [r1]
+ cmp r10, r0
+ beq _0803FA42
+ ldr r0, [r1, 0x8]
+ cmp r10, r0
+ beq _0803FA42
+ movs r6, 0
+_0803F962:
+ lsls r3, r6, 3
+ adds r3, r6
+ lsls r3, 2
+ ldr r0, _0803FA08 @ =gSpindaSpotGraphics
+ adds r4, r3, r0
+ ldrb r1, [r4]
+ adds r1, 0xF8
+ movs r2, 0xF
+ adds r0, r5, 0
+ ands r0, r2
+ adds r1, r0
+ lsls r1, 24
+ lsrs r1, 24
+ mov r12, r1
+ ldrb r1, [r4, 0x1]
+ adds r1, 0xF8
+ movs r0, 0xF0
+ ands r0, r5
+ lsrs r0, 4
+ adds r1, r0
+ lsls r1, 24
+ lsrs r1, 24
+ movs r2, 0
+ lsrs r5, 8
+ str r5, [sp, 0x4]
+ adds r6, 0x1
+ str r6, [sp]
+ mov r9, r3
+_0803F99A:
+ lsls r0, r2, 1
+ add r0, r9
+ ldr r3, _0803FA0C @ =gSpindaSpotGraphics + 0x2
+ adds r0, r3
+ ldrh r3, [r0]
+ mov r4, r12
+ adds r0, r4, 0
+ adds r0, 0x10
+ adds r7, r1, 0x1
+ adds r2, 0x1
+ mov r8, r2
+ cmp r4, r0
+ bge _0803FA30
+ lsrs r0, r1, 3
+ lsls r6, r0, 8
+ movs r0, 0x7
+ ands r1, r0
+ lsls r5, r1, 2
+_0803F9BE:
+ adds r0, r4, 0
+ cmp r4, 0
+ bge _0803F9C6
+ adds r0, r4, 0x7
+_0803F9C6:
+ asrs r0, 3
+ lsls r2, r0, 5
+ add r2, r10
+ lsls r0, 3
+ subs r0, r4, r0
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ adds r2, r0
+ adds r2, r6
+ adds r2, r5
+ movs r1, 0x1
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0803FA24
+ adds r0, r4, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0803FA10
+ ldrb r1, [r2]
+ movs r0, 0xF0
+ ands r0, r1
+ subs r0, 0x10
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x20
+ bhi _0803FA24
+ adds r0, r1, 0
+ adds r0, 0x40
+ b _0803FA22
+ .align 2, 0
+_0803FA04: .4byte gUnknown_081FAF4C
+_0803FA08: .4byte gSpindaSpotGraphics
+_0803FA0C: .4byte gSpindaSpotGraphics + 0x2
+_0803FA10:
+ ldrb r1, [r2]
+ movs r0, 0xF
+ ands r0, r1
+ subs r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ bhi _0803FA24
+ adds r0, r1, 0x4
+_0803FA22:
+ strb r0, [r2]
+_0803FA24:
+ asrs r3, 1
+ adds r4, 0x1
+ mov r0, r12
+ adds r0, 0x10
+ cmp r4, r0
+ blt _0803F9BE
+_0803FA30:
+ lsls r0, r7, 24
+ lsrs r1, r0, 24
+ mov r2, r8
+ cmp r2, 0xF
+ ble _0803F99A
+ ldr r5, [sp, 0x4]
+ ldr r6, [sp]
+ cmp r6, 0x3
+ ble _0803F962
+_0803FA42:
+ 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 unref_sub_803F938
+
+ thumb_func_start DrawSpindaSpots
+DrawSpindaSpots: @ 803FA54
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ adds r5, r1, 0
+ str r2, [sp]
+ lsls r0, 16
+ lsls r3, 24
+ lsrs r3, 24
+ movs r1, 0x9A
+ lsls r1, 17
+ cmp r0, r1
+ bne _0803FB56
+ cmp r3, 0
+ beq _0803FB56
+ movs r6, 0
+_0803FA78:
+ lsls r3, r6, 3
+ adds r3, r6
+ lsls r3, 2
+ ldr r0, _0803FB1C @ =gSpindaSpotGraphics
+ adds r4, r3, r0
+ ldrb r1, [r4]
+ adds r1, 0xF8
+ movs r2, 0xF
+ adds r0, r5, 0
+ ands r0, r2
+ adds r1, r0
+ lsls r1, 24
+ lsrs r1, 24
+ mov r12, r1
+ ldrb r1, [r4, 0x1]
+ adds r1, 0xF8
+ movs r0, 0xF0
+ ands r0, r5
+ lsrs r0, 4
+ adds r1, r0
+ lsls r1, 24
+ lsrs r1, 24
+ movs r2, 0
+ lsrs r5, 8
+ str r5, [sp, 0x4]
+ adds r6, 0x1
+ mov r10, r6
+ mov r9, r3
+_0803FAB0:
+ lsls r0, r2, 1
+ add r0, r9
+ ldr r3, _0803FB20 @ =gSpindaSpotGraphics + 0x2
+ adds r0, r3
+ ldrh r3, [r0]
+ mov r4, r12
+ adds r0, r4, 0
+ adds r0, 0x10
+ adds r7, r1, 0x1
+ adds r2, 0x1
+ mov r8, r2
+ cmp r4, r0
+ bge _0803FB44
+ lsrs r0, r1, 3
+ lsls r6, r0, 8
+ movs r0, 0x7
+ ands r1, r0
+ lsls r5, r1, 2
+_0803FAD4:
+ adds r0, r4, 0
+ cmp r4, 0
+ bge _0803FADC
+ adds r0, r4, 0x7
+_0803FADC:
+ asrs r0, 3
+ lsls r2, r0, 5
+ ldr r1, [sp]
+ adds r2, r1, r2
+ lsls r0, 3
+ subs r0, r4, r0
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ adds r2, r0
+ adds r2, r6
+ adds r2, r5
+ movs r1, 0x1
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0803FB38
+ adds r0, r4, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0803FB24
+ ldrb r1, [r2]
+ movs r0, 0xF0
+ ands r0, r1
+ subs r0, 0x10
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x20
+ bhi _0803FB38
+ adds r0, r1, 0
+ adds r0, 0x40
+ b _0803FB36
+ .align 2, 0
+_0803FB1C: .4byte gSpindaSpotGraphics
+_0803FB20: .4byte gSpindaSpotGraphics + 0x2
+_0803FB24:
+ ldrb r1, [r2]
+ movs r0, 0xF
+ ands r0, r1
+ subs r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ bhi _0803FB38
+ adds r0, r1, 0x4
+_0803FB36:
+ strb r0, [r2]
+_0803FB38:
+ asrs r3, 1
+ adds r4, 0x1
+ mov r0, r12
+ adds r0, 0x10
+ cmp r4, r0
+ blt _0803FAD4
+_0803FB44:
+ lsls r0, r7, 24
+ lsrs r1, r0, 24
+ mov r2, r8
+ cmp r2, 0xF
+ ble _0803FAB0
+ ldr r5, [sp, 0x4]
+ mov r6, r10
+ cmp r6, 0x3
+ ble _0803FA78
+_0803FB56:
+ 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 DrawSpindaSpots
+
+ .if REVISION >= 1
+ thumb_func_start sub_803FB68
+sub_803FB68: @ 803FB68
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x4
+ adds r5, r0, 0
+ lsls r1, 16
+ lsrs r7, r1, 16
+ lsls r2, 16
+ lsrs r2, 16
+ mov r8, r2
+ ldr r0, =gStringVar1
+ mov r9, r0
+ adds r0, r5, 0
+ movs r1, 0x2
+ mov r2, r9
+ bl GetMonData
+ mov r4, sp
+ adds r0, r5, 0
+ movs r1, 0x3
+ mov r2, sp
+ bl GetMonData
+ strb r0, [r4, 0x0]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ bne _0803FBC4
+ movs r6, 0xB
+ adds r0, r7, 0
+ muls r0, r6
+ ldr r4, =gSpeciesNames
+ adds r0, r4
+ mov r1, r9
+ bl StringCompareWithoutExtCtrlCodes
+ cmp r0, 0
+ bne _0803FBC4
+ mov r2, r8
+ muls r2, r6
+ adds r2, r4
+ adds r0, r5, 0
+ movs r1, 0x2
+ bl SetMonData
+_0803FBC4:
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_803FB68
+ .else
+ thumb_func_start sub_803FB68
+sub_803FB68: @ 803FB68
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r7, r0, 0
+ adds r4, r1, 0
+ lsls r4, 16
+ lsrs r4, 16
+ lsls r2, 16
+ lsrs r2, 16
+ mov r8, r2
+ ldr r5, _0803FBB4 @ =gStringVar1
+ movs r1, 0x2
+ adds r2, r5, 0
+ bl GetMonData
+ movs r6, 0xB
+ adds r0, r4, 0
+ muls r0, r6
+ ldr r4, _0803FBB8 @ =gSpeciesNames
+ adds r0, r4
+ adds r1, r5, 0
+ bl StringCompareWithoutExtCtrlCodes
+ cmp r0, 0
+ bne _0803FBA8
+ mov r2, r8
+ muls r2, r6
+ adds r2, r4
+ adds r0, r7, 0
+ movs r1, 0x2
+ bl SetMonData
+_0803FBA8:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803FBB4: .4byte gStringVar1
+_0803FBB8: .4byte gSpeciesNames
+ thumb_func_end sub_803FB68
+ .endif
+
+ thumb_func_start sub_803FBBC
+sub_803FBBC: @ 803FBBC
+ push {r4,r5,lr}
+ movs r5, 0
+ ldr r4, _0803FBE4 @ =gLinkPlayers
+ bl GetMultiplayerId
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ adds r1, r4
+ ldrh r0, [r1, 0x18]
+ cmp r0, 0x2
+ bgt _0803FBE8
+ cmp r0, 0x1
+ bge _0803FBF0
+ cmp r0, 0
+ beq _0803FBEC
+ b _0803FBF2
+ .align 2, 0
+_0803FBE4: .4byte gLinkPlayers
+_0803FBE8:
+ cmp r0, 0x3
+ bne _0803FBF2
+_0803FBEC:
+ movs r5, 0
+ b _0803FBF2
+_0803FBF0:
+ movs r5, 0x1
+_0803FBF2:
+ adds r0, r5, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_803FBBC
+
+ thumb_func_start sub_803FBFC
+sub_803FBFC: @ 803FBFC
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ movs r3, 0
+ ldr r2, _0803FC20 @ =gLinkPlayers
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldrh r0, [r1, 0x18]
+ cmp r0, 0x2
+ bgt _0803FC24
+ cmp r0, 0x1
+ bge _0803FC2C
+ cmp r0, 0
+ beq _0803FC28
+ b _0803FC2E
+ .align 2, 0
+_0803FC20: .4byte gLinkPlayers
+_0803FC24:
+ cmp r0, 0x3
+ bne _0803FC2E
+_0803FC28:
+ movs r3, 0
+ b _0803FC2E
+_0803FC2C:
+ movs r3, 0x1
+_0803FC2E:
+ adds r0, r3, 0
+ pop {r1}
+ bx r1
+ thumb_func_end sub_803FBFC
+
+ thumb_func_start sub_803FC34
+sub_803FC34: @ 803FC34
+ push {lr}
+ lsls r0, 16
+ lsrs r3, r0, 16
+ movs r2, 0
+ ldr r1, _0803FC40 @ =gLinkPlayers
+ b _0803FC4C
+ .align 2, 0
+_0803FC40: .4byte gLinkPlayers
+_0803FC44:
+ adds r1, 0x1C
+ adds r2, 0x1
+ cmp r2, 0x3
+ bgt _0803FC52
+_0803FC4C:
+ ldrh r0, [r1, 0x18]
+ cmp r0, r3
+ bne _0803FC44
+_0803FC52:
+ adds r0, r2, 0
+ pop {r1}
+ bx r1
+ thumb_func_end sub_803FC34
+
+ thumb_func_start sub_803FC58
+sub_803FC58: @ 803FC58
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r2, _0803FC70 @ =gTrainers
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldrb r1, [r1, 0x2]
+ movs r0, 0x7F
+ ands r0, r1
+ bx lr
+ .align 2, 0
+_0803FC70: .4byte gTrainers
+ thumb_func_end sub_803FC58
+
+ thumb_func_start nature_stat_mod
+nature_stat_mod: @ 803FC74
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r1, 16
+ lsrs r3, r1, 16
+ lsls r2, 24
+ lsrs r5, r2, 24
+ movs r0, 0xFF
+ lsls r0, 24
+ adds r2, r0
+ lsrs r2, 24
+ cmp r2, 0x4
+ bls _0803FC92
+ adds r0, r3, 0
+ b _0803FCCE
+_0803FC92:
+ ldr r0, _0803FCB4 @ =gNatureStatTable
+ lsls r1, r4, 2
+ adds r1, r4
+ subs r1, 0x1
+ adds r1, r5, r1
+ adds r1, r0
+ ldrb r1, [r1]
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _0803FCB8
+ cmp r1, 0x1
+ bne _0803FCCC
+ movs r0, 0x6E
+ b _0803FCBA
+ .align 2, 0
+_0803FCB4: .4byte gNatureStatTable
+_0803FCB8:
+ movs r0, 0x5A
+_0803FCBA:
+ muls r0, r3
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x64
+ bl __udivsi3
+ lsls r0, 16
+ lsrs r0, 16
+ b _0803FCCE
+_0803FCCC:
+ adds r0, r3, 0
+_0803FCCE:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end nature_stat_mod
+
+ thumb_func_start AdjustFriendship
+AdjustFriendship: @ 803FCD4
+ push {r4-r7,lr}
+ sub sp, 0x4
+ adds r7, r0, 0
+ lsls r1, 24
+ lsrs r5, r1, 24
+ movs r1, 0x41
+ movs r2, 0
+ bl GetMonData
+ lsls r0, 16
+ lsrs r6, r0, 16
+ adds r0, r7, 0
+ movs r1, 0xC
+ movs r2, 0
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0xAF
+ bne _0803FD34
+ ldr r0, _0803FD14 @ =gMain
+ ldr r1, _0803FD18 @ =0x0000043d
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0803FD20
+ ldr r0, _0803FD1C @ =gEnigmaBerries
+ ldrb r4, [r0, 0x7]
+ b _0803FD3C
+ .align 2, 0
+_0803FD14: .4byte gMain
+_0803FD18: .4byte 0x0000043d
+_0803FD1C: .4byte gEnigmaBerries
+_0803FD20:
+ ldr r0, _0803FD2C @ =gSaveBlock1
+ ldr r1, _0803FD30 @ =0x00003688
+ adds r0, r1
+ ldrb r4, [r0]
+ b _0803FD3C
+ .align 2, 0
+_0803FD2C: .4byte gSaveBlock1
+_0803FD30: .4byte 0x00003688
+_0803FD34:
+ bl ItemId_GetHoldEffect
+ lsls r0, 24
+ lsrs r4, r0, 24
+_0803FD3C:
+ cmp r6, 0
+ bne _0803FD42
+ b _0803FE56
+_0803FD42:
+ movs r0, 0xCE
+ lsls r0, 1
+ cmp r6, r0
+ bne _0803FD4C
+ b _0803FE56
+_0803FD4C:
+ movs r6, 0
+ adds r0, r7, 0
+ movs r1, 0x20
+ movs r2, 0
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ mov r1, sp
+ strh r0, [r1]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x63
+ ble _0803FD6A
+ movs r6, 0x1
+_0803FD6A:
+ cmp r0, 0xC7
+ ble _0803FD74
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+_0803FD74:
+ cmp r5, 0x5
+ bne _0803FD84
+ bl Random
+ movs r1, 0x1
+ ands r1, r0
+ cmp r1, 0
+ bne _0803FE56
+_0803FD84:
+ cmp r5, 0x3
+ bne _0803FDB4
+ ldr r0, _0803FE60 @ =gBattleTypeFlags
+ ldrh r1, [r0]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _0803FE56
+ ldr r2, _0803FE64 @ =gTrainers
+ ldr r0, _0803FE68 @ =gTrainerBattleOpponent
+ ldrh r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldrb r1, [r0, 0x1]
+ adds r0, r1, 0
+ subs r0, 0x18
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bls _0803FDB4
+ cmp r1, 0x20
+ bne _0803FE56
+_0803FDB4:
+ ldr r1, _0803FE6C @ =gUnknown_082082FE
+ lsls r0, r5, 1
+ adds r0, r5
+ adds r0, r6, r0
+ adds r0, r1
+ ldrb r2, [r0]
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ cmp r1, 0
+ ble _0803FDDA
+ cmp r4, 0x1B
+ bne _0803FDDA
+ movs r0, 0x96
+ muls r0, r1
+ movs r1, 0x64
+ bl __divsi3
+ lsls r0, 24
+ lsrs r2, r0, 24
+_0803FDDA:
+ lsls r2, 24
+ asrs r2, 24
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ adds r0, r2
+ mov r1, sp
+ strh r0, [r1]
+ cmp r2, 0
+ ble _0803FE2C
+ adds r0, r7, 0
+ movs r1, 0x26
+ movs r2, 0
+ bl GetMonData
+ cmp r0, 0xB
+ bne _0803FE08
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ adds r0, 0x1
+ mov r1, sp
+ strh r0, [r1]
+_0803FE08:
+ adds r0, r7, 0
+ movs r1, 0x23
+ movs r2, 0
+ bl GetMonData
+ adds r4, r0, 0
+ bl sav1_map_get_name
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r4, r0
+ bne _0803FE2C
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ adds r0, 0x1
+ mov r1, sp
+ strh r0, [r1]
+_0803FE2C:
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bge _0803FE3C
+ movs r1, 0
+ mov r0, sp
+ strh r1, [r0]
+_0803FE3C:
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0xFF
+ ble _0803FE4C
+ movs r1, 0xFF
+ mov r0, sp
+ strh r1, [r0]
+_0803FE4C:
+ adds r0, r7, 0
+ movs r1, 0x20
+ mov r2, sp
+ bl SetMonData
+_0803FE56:
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803FE60: .4byte gBattleTypeFlags
+_0803FE64: .4byte gTrainers
+_0803FE68: .4byte gTrainerBattleOpponent
+_0803FE6C: .4byte gUnknown_082082FE
+ thumb_func_end AdjustFriendship
+
+ thumb_func_start MonGainEVs
+MonGainEVs: @ 803FE70
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x8
+ mov r8, r0
+ lsls r1, 16
+ lsrs r5, r1, 16
+ movs r4, 0
+ movs r7, 0
+ movs r6, 0
+_0803FE84:
+ adds r1, r6, 0
+ adds r1, 0x1A
+ mov r0, r8
+ movs r2, 0
+ bl GetMonData
+ mov r2, sp
+ adds r1, r2, r6
+ strb r0, [r1]
+ ldrb r0, [r1]
+ adds r0, r7, r0
+ lsls r0, 16
+ lsrs r7, r0, 16
+ adds r6, 0x1
+ cmp r6, 0x5
+ ble _0803FE84
+ movs r6, 0
+ b _08040006
+_0803FEA8:
+ mov r0, r8
+ movs r1, 0
+ bl CheckPartyHasHadPokerus
+ lsls r0, 24
+ movs r2, 0x1
+ cmp r0, 0
+ beq _0803FEBA
+ movs r2, 0x2
+_0803FEBA:
+ cmp r6, 0x5
+ bhi _0803FF5C
+ lsls r0, r6, 2
+ ldr r1, _0803FEC8 @ =_0803FECC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0803FEC8: .4byte _0803FECC
+ .align 2, 0
+_0803FECC:
+ .4byte _0803FEE4
+ .4byte _0803FEF8
+ .4byte _0803FF0C
+ .4byte _0803FF20
+ .4byte _0803FF34
+ .4byte _0803FF48
+_0803FEE4:
+ ldr r0, _0803FEF4 @ =gBaseStats
+ lsls r1, r5, 3
+ subs r1, r5
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1, 0xA]
+ lsls r0, 30
+ b _0803FF56
+ .align 2, 0
+_0803FEF4: .4byte gBaseStats
+_0803FEF8:
+ ldr r0, _0803FF08 @ =gBaseStats
+ lsls r1, r5, 3
+ subs r1, r5
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1, 0xA]
+ b _0803FF54
+ .align 2, 0
+_0803FF08: .4byte gBaseStats
+_0803FF0C:
+ ldr r0, _0803FF1C @ =gBaseStats
+ lsls r1, r5, 3
+ subs r1, r5
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1, 0xA]
+ lsls r0, 26
+ b _0803FF56
+ .align 2, 0
+_0803FF1C: .4byte gBaseStats
+_0803FF20:
+ ldr r0, _0803FF30 @ =gBaseStats
+ lsls r1, r5, 3
+ subs r1, r5
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1, 0xA]
+ lsrs r0, 6
+ b _0803FF58
+ .align 2, 0
+_0803FF30: .4byte gBaseStats
+_0803FF34:
+ ldr r0, _0803FF44 @ =gBaseStats
+ lsls r1, r5, 3
+ subs r1, r5
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1, 0xB]
+ lsls r0, 30
+ b _0803FF56
+ .align 2, 0
+_0803FF44: .4byte gBaseStats
+_0803FF48:
+ ldr r0, _0803FF84 @ =gBaseStats
+ lsls r1, r5, 3
+ subs r1, r5
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1, 0xB]
+_0803FF54:
+ lsls r0, 28
+_0803FF56:
+ lsrs r0, 30
+_0803FF58:
+ adds r4, r0, 0
+ muls r4, r2
+_0803FF5C:
+ mov r0, r8
+ movs r1, 0xC
+ movs r2, 0
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0xAF
+ bne _0803FFA8
+ ldr r0, _0803FF88 @ =gMain
+ ldr r1, _0803FF8C @ =0x0000043d
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0803FF94
+ ldr r0, _0803FF90 @ =gEnigmaBerries
+ ldrb r0, [r0, 0x7]
+ b _0803FFB0
+ .align 2, 0
+_0803FF84: .4byte gBaseStats
+_0803FF88: .4byte gMain
+_0803FF8C: .4byte 0x0000043d
+_0803FF90: .4byte gEnigmaBerries
+_0803FF94:
+ ldr r0, _0803FFA0 @ =gSaveBlock1
+ ldr r2, _0803FFA4 @ =0x00003688
+ adds r0, r2
+ ldrb r0, [r0]
+ b _0803FFB0
+ .align 2, 0
+_0803FFA0: .4byte gSaveBlock1
+_0803FFA4: .4byte 0x00003688
+_0803FFA8:
+ bl ItemId_GetHoldEffect
+ lsls r0, 24
+ lsrs r0, 24
+_0803FFB0:
+ cmp r0, 0x18
+ bne _0803FFB8
+ lsls r0, r4, 17
+ lsrs r4, r0, 16
+_0803FFB8:
+ lsls r0, r4, 16
+ asrs r2, r0, 16
+ adds r1, r7, r2
+ movs r0, 0xFF
+ lsls r0, 1
+ cmp r1, r0
+ ble _0803FFD0
+ adds r0, r2, r0
+ adds r1, r7, r4
+ subs r0, r1
+ lsls r0, 16
+ lsrs r4, r0, 16
+_0803FFD0:
+ mov r0, sp
+ adds r2, r0, r6
+ ldrb r3, [r2]
+ lsls r0, r4, 16
+ asrs r1, r0, 16
+ adds r0, r3, r1
+ cmp r0, 0xFF
+ ble _0803FFEC
+ adds r0, r1, 0
+ adds r0, 0xFF
+ adds r1, r3, r4
+ subs r0, r1
+ lsls r0, 16
+ lsrs r4, r0, 16
+_0803FFEC:
+ adds r0, r3, r4
+ strb r0, [r2]
+ adds r0, r7, r4
+ lsls r0, 16
+ lsrs r7, r0, 16
+ adds r1, r6, 0
+ adds r1, 0x1A
+ mov r0, r8
+ bl SetMonData
+ adds r6, 0x1
+ cmp r6, 0x5
+ bgt _0804000E
+_08040006:
+ ldr r0, _0804001C @ =0x000001fd
+ cmp r7, r0
+ bhi _0804000E
+ b _0803FEA8
+_0804000E:
+ add sp, 0x8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804001C: .4byte 0x000001fd
+ thumb_func_end MonGainEVs
+
+ thumb_func_start GetMonEVCount
+GetMonEVCount: @ 8040020
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ movs r5, 0
+ movs r4, 0
+_08040028:
+ adds r1, r4, 0
+ adds r1, 0x1A
+ adds r0, r6, 0
+ movs r2, 0
+ bl GetMonData
+ adds r0, r5, r0
+ lsls r0, 16
+ lsrs r5, r0, 16
+ adds r4, 0x1
+ cmp r4, 0x5
+ ble _08040028
+ adds r0, r5, 0
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end GetMonEVCount
+
+ thumb_func_start RandomlyGivePartyPokerus
+RandomlyGivePartyPokerus: @ 8040048
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r6, r0, 0
+ bl Random
+ lsls r0, 16
+ lsrs r5, r0, 16
+ movs r0, 0x80
+ lsls r0, 7
+ cmp r5, r0
+ beq _0804006E
+ movs r0, 0x80
+ lsls r0, 8
+ cmp r5, r0
+ beq _0804006E
+ movs r0, 0xC0
+ lsls r0, 8
+ cmp r5, r0
+ bne _08040104
+_0804006E:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x6
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r5, r0, 16
+ movs r0, 0x64
+ muls r0, r5
+ adds r4, r6, r0
+ adds r0, r4, 0
+ movs r1, 0xB
+ movs r2, 0
+ bl GetMonData
+ cmp r0, 0
+ beq _0804006E
+ adds r0, r4, 0
+ movs r1, 0x2D
+ movs r2, 0
+ bl GetMonData
+ cmp r0, 0
+ bne _0804006E
+ ldr r1, _0804010C @ =gBitTable
+ lsls r0, r5, 2
+ adds r0, r1
+ ldrb r1, [r0]
+ adds r0, r6, 0
+ bl CheckPartyHasHadPokerus
+ lsls r0, 24
+ cmp r0, 0
+ bne _08040104
+ mov r4, sp
+_080400B8:
+ bl Random
+ lsls r0, 24
+ lsrs r0, 24
+ strb r0, [r4]
+ cmp r0, 0
+ beq _080400B8
+ movs r0, 0xF0
+ mov r1, sp
+ ldrb r1, [r1]
+ ands r0, r1
+ cmp r0, 0
+ beq _080400DA
+ movs r0, 0x7
+ ands r1, r0
+ mov r0, sp
+ strb r1, [r0]
+_080400DA:
+ mov r0, sp
+ ldrb r0, [r0]
+ lsls r1, r0, 4
+ orrs r0, r1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r1, sp
+ strb r0, [r1]
+ movs r1, 0xF3
+ ands r1, r0
+ mov r0, sp
+ strb r1, [r0]
+ adds r1, 0x1
+ strb r1, [r0]
+ movs r0, 0x64
+ muls r0, r5
+ adds r0, r6, r0
+ movs r1, 0x22
+ mov r2, sp
+ bl SetMonData
+_08040104:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804010C: .4byte gBitTable
+ thumb_func_end RandomlyGivePartyPokerus
+
+ thumb_func_start CheckPartyPokerus
+CheckPartyPokerus: @ 8040110
+ push {r4-r7,lr}
+ sub sp, 0x4
+ adds r7, r0, 0
+ lsls r1, 24
+ lsrs r4, r1, 24
+ movs r3, 0
+ movs r6, 0x1
+ movs r5, 0
+ cmp r4, 0
+ beq _08040158
+_08040124:
+ movs r0, 0x1
+ ands r0, r4
+ cmp r0, 0
+ beq _0804014C
+ movs r0, 0x64
+ muls r0, r3
+ adds r0, r7, r0
+ movs r1, 0x22
+ movs r2, 0
+ str r3, [sp]
+ bl GetMonData
+ movs r1, 0xF
+ ands r1, r0
+ ldr r3, [sp]
+ cmp r1, 0
+ beq _0804014C
+ orrs r5, r6
+ lsls r0, r5, 24
+ lsrs r5, r0, 24
+_0804014C:
+ adds r3, 0x1
+ lsls r6, 1
+ lsrs r4, 1
+ cmp r4, 0
+ bne _08040124
+ b _0804016C
+_08040158:
+ adds r0, r7, 0
+ movs r1, 0x22
+ movs r2, 0
+ bl GetMonData
+ movs r1, 0xF
+ ands r1, r0
+ cmp r1, 0
+ beq _0804016C
+ movs r5, 0x1
+_0804016C:
+ adds r0, r5, 0
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end CheckPartyPokerus
+
+ thumb_func_start CheckPartyHasHadPokerus
+CheckPartyHasHadPokerus: @ 8040178
+ push {r4-r7,lr}
+ sub sp, 0x4
+ adds r7, r0, 0
+ lsls r1, 24
+ lsrs r4, r1, 24
+ movs r3, 0
+ movs r6, 0x1
+ movs r5, 0
+ cmp r4, 0
+ beq _080401BC
+_0804018C:
+ movs r0, 0x1
+ ands r0, r4
+ cmp r0, 0
+ beq _080401B0
+ movs r0, 0x64
+ muls r0, r3
+ adds r0, r7, r0
+ movs r1, 0x22
+ movs r2, 0
+ str r3, [sp]
+ bl GetMonData
+ ldr r3, [sp]
+ cmp r0, 0
+ beq _080401B0
+ orrs r5, r6
+ lsls r0, r5, 24
+ lsrs r5, r0, 24
+_080401B0:
+ adds r3, 0x1
+ lsls r6, 1
+ lsrs r4, 1
+ cmp r4, 0
+ bne _0804018C
+ b _080401CC
+_080401BC:
+ adds r0, r7, 0
+ movs r1, 0x22
+ movs r2, 0
+ bl GetMonData
+ cmp r0, 0
+ beq _080401CC
+ movs r5, 0x1
+_080401CC:
+ adds r0, r5, 0
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end CheckPartyHasHadPokerus
+
+ thumb_func_start UpdatePartyPokerusTime
+UpdatePartyPokerusTime: @ 80401D8
+ push {r4-r7,lr}
+ sub sp, 0x4
+ lsls r0, 16
+ lsrs r7, r0, 16
+ movs r5, 0
+ mov r6, sp
+_080401E4:
+ movs r0, 0x64
+ adds r1, r5, 0
+ muls r1, r0
+ ldr r0, _08040224 @ =gPlayerParty
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0xB
+ movs r2, 0
+ bl GetMonData
+ cmp r0, 0
+ beq _0804023C
+ adds r0, r4, 0
+ movs r1, 0x22
+ movs r2, 0
+ bl GetMonData
+ lsls r0, 24
+ lsrs r0, 24
+ strb r0, [r6]
+ movs r1, 0xF
+ adds r2, r0, 0
+ ands r1, r2
+ cmp r1, 0
+ beq _0804023C
+ cmp r1, r7
+ bcc _0804021E
+ cmp r7, 0x4
+ bls _08040228
+_0804021E:
+ movs r0, 0xF0
+ ands r0, r2
+ b _0804022A
+ .align 2, 0
+_08040224: .4byte gPlayerParty
+_08040228:
+ subs r0, r2, r7
+_0804022A:
+ strb r0, [r6]
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0804024C @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x22
+ mov r2, sp
+ bl SetMonData
+_0804023C:
+ adds r5, 0x1
+ cmp r5, 0x5
+ ble _080401E4
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804024C: .4byte gPlayerParty
+ thumb_func_end UpdatePartyPokerusTime
+
+ thumb_func_start PartySpreadPokerus
+PartySpreadPokerus: @ 8040250
+ push {r4-r7,lr}
+ sub sp, 0x4
+ adds r7, r0, 0
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x3
+ bl __umodsi3
+ lsls r0, 16
+ cmp r0, 0
+ bne _080402F6
+ movs r5, 0
+_0804026C:
+ movs r0, 0x64
+ adds r6, r5, 0
+ muls r6, r0
+ adds r4, r7, r6
+ adds r0, r4, 0
+ movs r1, 0xB
+ movs r2, 0
+ bl GetMonData
+ cmp r0, 0
+ beq _080402F0
+ adds r0, r4, 0
+ movs r1, 0x22
+ movs r2, 0
+ bl GetMonData
+ lsls r0, 24
+ lsrs r1, r0, 24
+ mov r0, sp
+ strb r1, [r0]
+ cmp r1, 0
+ beq _080402F0
+ movs r0, 0xF
+ ands r0, r1
+ cmp r0, 0
+ beq _080402F0
+ cmp r5, 0
+ beq _080402C6
+ adds r0, r6, 0
+ subs r0, 0x64
+ adds r4, r7, r0
+ adds r0, r4, 0
+ movs r1, 0x22
+ movs r2, 0
+ bl GetMonData
+ movs r1, 0xF0
+ ands r1, r0
+ cmp r1, 0
+ bne _080402C6
+ adds r0, r4, 0
+ movs r1, 0x22
+ mov r2, sp
+ bl SetMonData
+_080402C6:
+ cmp r5, 0x5
+ beq _080402F0
+ movs r0, 0x64
+ muls r0, r5
+ adds r0, 0x64
+ adds r4, r7, r0
+ adds r0, r4, 0
+ movs r1, 0x22
+ movs r2, 0
+ bl GetMonData
+ movs r1, 0xF0
+ ands r1, r0
+ cmp r1, 0
+ bne _080402F0
+ adds r0, r4, 0
+ movs r1, 0x22
+ mov r2, sp
+ bl SetMonData
+ adds r5, 0x1
+_080402F0:
+ adds r5, 0x1
+ cmp r5, 0x5
+ ble _0804026C
+_080402F6:
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end PartySpreadPokerus
+
+ thumb_func_start TryIncrementMonLevel
+TryIncrementMonLevel: @ 8040300
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r6, r0, 0
+ movs r1, 0xB
+ movs r2, 0
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r6, 0
+ movs r1, 0x38
+ movs r2, 0
+ bl GetMonData
+ adds r0, 0x1
+ mov r1, sp
+ strb r0, [r1]
+ adds r0, r6, 0
+ movs r1, 0x19
+ movs r2, 0
+ bl GetMonData
+ ldr r5, _08040358 @ =gExperienceTables
+ mov r1, sp
+ ldrb r2, [r1]
+ lsls r2, 2
+ ldr r3, _0804035C @ =gBaseStats
+ lsls r1, r4, 3
+ subs r1, r4
+ lsls r1, 2
+ adds r1, r3
+ ldrb r3, [r1, 0x13]
+ movs r1, 0xCA
+ lsls r1, 1
+ muls r1, r3
+ adds r2, r1
+ adds r2, r5
+ ldr r1, [r2]
+ cmp r0, r1
+ bhi _08040360
+ movs r0, 0
+ b _0804036C
+ .align 2, 0
+_08040358: .4byte gExperienceTables
+_0804035C: .4byte gBaseStats
+_08040360:
+ adds r0, r6, 0
+ movs r1, 0x38
+ mov r2, sp
+ bl SetMonData
+ movs r0, 0x1
+_0804036C:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end TryIncrementMonLevel
+
+ thumb_func_start CanMonLearnTMHM
+CanMonLearnTMHM: @ 8040374
+ push {r4,r5,lr}
+ lsls r1, 24
+ lsrs r4, r1, 24
+ adds r5, r4, 0
+ movs r1, 0x41
+ movs r2, 0
+ bl GetMonData
+ lsls r0, 16
+ lsrs r1, r0, 16
+ adds r3, r1, 0
+ movs r0, 0xCE
+ lsls r0, 1
+ cmp r1, r0
+ bne _08040396
+ movs r0, 0
+ b _080403C2
+_08040396:
+ cmp r4, 0x1F
+ bls _080403B4
+ adds r0, r4, 0
+ subs r0, 0x20
+ movs r2, 0x1
+ lsls r2, r0
+ ldr r0, _080403B0 @ =gTMHMLearnsets
+ lsls r1, 3
+ adds r0, 0x4
+ adds r1, r0
+ ldr r0, [r1]
+ ands r0, r2
+ b _080403C2
+ .align 2, 0
+_080403B0: .4byte gTMHMLearnsets
+_080403B4:
+ movs r1, 0x1
+ lsls r1, r5
+ ldr r2, _080403C8 @ =gTMHMLearnsets
+ lsls r0, r3, 3
+ adds r0, r2
+ ldr r0, [r0]
+ ands r0, r1
+_080403C2:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080403C8: .4byte gTMHMLearnsets
+ thumb_func_end CanMonLearnTMHM
+
+ thumb_func_start sub_80403CC
+sub_80403CC: @ 80403CC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x18
+ adds r6, r0, 0
+ str r1, [sp, 0x8]
+ movs r0, 0
+ mov r10, r0
+ adds r0, r6, 0
+ movs r1, 0xB
+ movs r2, 0
+ bl GetMonData
+ lsls r0, 16
+ lsrs r7, r0, 16
+ adds r0, r6, 0
+ movs r1, 0x38
+ movs r2, 0
+ bl GetMonData
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0xC]
+ movs r5, 0
+ mov r4, sp
+_08040402:
+ adds r1, r5, 0
+ adds r1, 0xD
+ adds r0, r6, 0
+ movs r2, 0
+ bl GetMonData
+ strh r0, [r4]
+ adds r4, 0x2
+ adds r5, 0x1
+ cmp r5, 0x3
+ ble _08040402
+ movs r5, 0
+ ldr r6, _08040510 @ =gLevelUpLearnsets
+ lsls r1, r7, 2
+ adds r2, r1, r6
+ ldr r3, [r2]
+ ldrh r0, [r3]
+ ldr r4, _08040514 @ =0x0000ffff
+ str r1, [sp, 0x14]
+ cmp r0, r4
+ beq _080404FC
+ mov r9, r2
+ str r3, [sp, 0x10]
+_08040430:
+ lsls r2, r5, 1
+ ldr r1, [sp, 0x10]
+ adds r0, r2, r1
+ ldrh r3, [r0]
+ movs r0, 0xFE
+ lsls r0, 8
+ ands r0, r3
+ ldr r4, [sp, 0xC]
+ lsls r1, r4, 9
+ adds r7, r2, 0
+ adds r5, 0x1
+ mov r12, r5
+ cmp r0, r1
+ bgt _080404E6
+ movs r4, 0
+ mov r0, sp
+ ldrh r1, [r0]
+ ldr r0, _08040518 @ =0x000001ff
+ ands r0, r3
+ cmp r1, r0
+ beq _08040480
+ ldr r0, [sp, 0x14]
+ ldr r1, _08040510 @ =gLevelUpLearnsets
+ adds r6, r0, r1
+ ldr r2, _08040518 @ =0x000001ff
+ mov r8, r2
+ mov r3, sp
+ adds r5, r7, 0
+_08040468:
+ adds r3, 0x2
+ adds r4, 0x1
+ cmp r4, 0x3
+ bgt _08040480
+ ldr r0, [r6]
+ adds r0, r5, r0
+ ldrh r1, [r0]
+ ldrh r2, [r3]
+ mov r0, r8
+ ands r0, r1
+ cmp r2, r0
+ bne _08040468
+_08040480:
+ cmp r4, 0x4
+ bne _080404E6
+ movs r4, 0
+ cmp r4, r10
+ bge _080404C4
+ mov r1, r9
+ ldr r0, [r1]
+ adds r0, r7, r0
+ ldrh r1, [r0]
+ ldr r0, [sp, 0x8]
+ ldrh r2, [r0]
+ ldr r0, _08040518 @ =0x000001ff
+ ands r0, r1
+ cmp r2, r0
+ beq _080404C4
+ ldr r1, [sp, 0x14]
+ ldr r2, _08040510 @ =gLevelUpLearnsets
+ adds r6, r1, r2
+ ldr r0, _08040518 @ =0x000001ff
+ mov r8, r0
+ ldr r3, [sp, 0x8]
+ adds r5, r7, 0
+_080404AC:
+ adds r3, 0x2
+ adds r4, 0x1
+ cmp r4, r10
+ bge _080404C4
+ ldr r0, [r6]
+ adds r0, r5, r0
+ ldrh r1, [r0]
+ ldrh r2, [r3]
+ mov r0, r8
+ ands r0, r1
+ cmp r2, r0
+ bne _080404AC
+_080404C4:
+ cmp r4, r10
+ bne _080404E6
+ mov r0, r10
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ lsls r2, r4, 1
+ ldr r1, [sp, 0x8]
+ adds r2, r1
+ mov r4, r9
+ ldr r0, [r4]
+ adds r0, r7, r0
+ ldrh r1, [r0]
+ ldr r0, _08040518 @ =0x000001ff
+ ands r0, r1
+ strh r0, [r2]
+_080404E6:
+ mov r5, r12
+ cmp r5, 0x13
+ bgt _080404FC
+ mov r1, r9
+ ldr r0, [r1]
+ lsls r1, r5, 1
+ adds r1, r0
+ ldrh r0, [r1]
+ ldr r2, _08040514 @ =0x0000ffff
+ cmp r0, r2
+ bne _08040430
+_080404FC:
+ mov r0, r10
+ add sp, 0x18
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08040510: .4byte gLevelUpLearnsets
+_08040514: .4byte 0x0000ffff
+_08040518: .4byte 0x000001ff
+ thumb_func_end sub_80403CC
+
+ thumb_func_start sub_804051C
+sub_804051C: @ 804051C
+ push {r4-r7,lr}
+ adds r6, r1, 0
+ lsls r0, 16
+ movs r5, 0
+ movs r4, 0
+ ldr r1, _08040568 @ =gLevelUpLearnsets
+ lsrs r0, 14
+ adds r0, r1
+ ldr r2, [r0]
+ ldrh r0, [r2]
+ ldr r1, _0804056C @ =0x0000ffff
+ cmp r0, r1
+ beq _08040560
+ ldr r0, _08040570 @ =0x000001ff
+ mov r12, r0
+ adds r7, r1, 0
+ adds r3, r2, 0
+_0804053E:
+ adds r1, r5, 0
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r1, 1
+ adds r1, r6
+ ldrh r2, [r3]
+ mov r0, r12
+ ands r0, r2
+ strh r0, [r1]
+ adds r3, 0x2
+ adds r4, 0x1
+ cmp r4, 0x13
+ bgt _08040560
+ ldrh r0, [r3]
+ cmp r0, r7
+ bne _0804053E
+_08040560:
+ adds r0, r5, 0
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08040568: .4byte gLevelUpLearnsets
+_0804056C: .4byte 0x0000ffff
+_08040570: .4byte 0x000001ff
+ thumb_func_end sub_804051C
+
+ thumb_func_start sub_8040574
+sub_8040574: @ 8040574
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x3C
+ adds r6, r0, 0
+ movs r0, 0
+ mov r10, r0
+ adds r0, r6, 0
+ movs r1, 0x41
+ movs r2, 0
+ bl GetMonData
+ lsls r0, 16
+ lsrs r4, r0, 16
+ adds r0, r6, 0
+ movs r1, 0x38
+ movs r2, 0
+ bl GetMonData
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x30]
+ movs r0, 0xCE
+ lsls r0, 1
+ cmp r4, r0
+ bne _080405B0
+ movs r0, 0
+ b _080406BA
+_080405B0:
+ movs r5, 0
+ lsls r4, 2
+ str r4, [sp, 0x38]
+ mov r4, sp
+_080405B8:
+ adds r1, r5, 0
+ adds r1, 0xD
+ adds r0, r6, 0
+ movs r2, 0
+ bl GetMonData
+ strh r0, [r4]
+ adds r4, 0x2
+ adds r5, 0x1
+ cmp r5, 0x3
+ ble _080405B8
+ movs r5, 0
+ ldr r3, _080406CC @ =gLevelUpLearnsets
+ ldr r2, [sp, 0x38]
+ adds r1, r2, r3
+ ldr r0, [r1]
+ ldrh r0, [r0]
+ ldr r2, _080406D0 @ =0x0000ffff
+ cmp r0, r2
+ beq _080406B8
+ mov r9, r1
+ mov r4, sp
+ adds r4, 0x8
+ str r4, [sp, 0x34]
+_080405E8:
+ mov r1, r9
+ ldr r0, [r1]
+ lsls r2, r5, 1
+ adds r0, r2, r0
+ ldrh r3, [r0]
+ movs r0, 0xFE
+ lsls r0, 8
+ ands r0, r3
+ ldr r4, [sp, 0x30]
+ lsls r1, r4, 9
+ adds r7, r2, 0
+ adds r5, 0x1
+ mov r12, r5
+ cmp r0, r1
+ bgt _080406A2
+ movs r4, 0
+ mov r0, sp
+ ldrh r1, [r0]
+ ldr r0, _080406D4 @ =0x000001ff
+ ands r0, r3
+ cmp r1, r0
+ beq _0804063A
+ ldr r0, [sp, 0x38]
+ ldr r1, _080406CC @ =gLevelUpLearnsets
+ adds r6, r0, r1
+ ldr r2, _080406D4 @ =0x000001ff
+ mov r8, r2
+ mov r3, sp
+ adds r5, r7, 0
+_08040622:
+ adds r3, 0x2
+ adds r4, 0x1
+ cmp r4, 0x3
+ bgt _0804063A
+ ldr r0, [r6]
+ adds r0, r5, r0
+ ldrh r1, [r0]
+ ldrh r2, [r3]
+ mov r0, r8
+ ands r0, r1
+ cmp r2, r0
+ bne _08040622
+_0804063A:
+ cmp r4, 0x4
+ bne _080406A2
+ movs r4, 0
+ cmp r4, r10
+ bge _08040680
+ mov r1, r9
+ ldr r0, [r1]
+ adds r0, r7, r0
+ ldrh r1, [r0]
+ ldr r0, [sp, 0x34]
+ ldrh r2, [r0]
+ ldr r0, _080406D4 @ =0x000001ff
+ ands r0, r1
+ add r1, sp, 0x8
+ cmp r2, r0
+ beq _08040680
+ ldr r2, [sp, 0x38]
+ ldr r0, _080406CC @ =gLevelUpLearnsets
+ adds r6, r2, r0
+ ldr r2, _080406D4 @ =0x000001ff
+ mov r8, r2
+ adds r3, r1, 0
+ adds r5, r7, 0
+_08040668:
+ adds r3, 0x2
+ adds r4, 0x1
+ cmp r4, r10
+ bge _08040680
+ ldr r0, [r6]
+ adds r0, r5, r0
+ ldrh r1, [r0]
+ ldrh r2, [r3]
+ mov r0, r8
+ ands r0, r1
+ cmp r2, r0
+ bne _08040668
+_08040680:
+ cmp r4, r10
+ bne _080406A2
+ mov r0, r10
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ lsls r2, r4, 1
+ ldr r4, [sp, 0x34]
+ adds r2, r4, r2
+ mov r1, r9
+ ldr r0, [r1]
+ adds r0, r7, r0
+ ldrh r1, [r0]
+ ldr r0, _080406D4 @ =0x000001ff
+ ands r0, r1
+ strh r0, [r2]
+_080406A2:
+ mov r5, r12
+ cmp r5, 0x13
+ bgt _080406B8
+ mov r2, r9
+ ldr r0, [r2]
+ lsls r1, r5, 1
+ adds r1, r0
+ ldrh r0, [r1]
+ ldr r4, _080406D0 @ =0x0000ffff
+ cmp r0, r4
+ bne _080405E8
+_080406B8:
+ mov r0, r10
+_080406BA:
+ add sp, 0x3C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080406CC: .4byte gLevelUpLearnsets
+_080406D0: .4byte 0x0000ffff
+_080406D4: .4byte 0x000001ff
+ thumb_func_end sub_8040574
+
+ thumb_func_start SpeciesToPokedexNum
+SpeciesToPokedexNum: @ 80406D8
+ push {r4,lr}
+ lsls r0, 16
+ lsrs r4, r0, 16
+ bl IsNationalPokedexEnabled
+ cmp r0, 0
+ beq _080406F2
+ adds r0, r4, 0
+ bl SpeciesToNationalPokedexNum
+ lsls r0, 16
+ lsrs r0, 16
+ b _0804070A
+_080406F2:
+ adds r0, r4, 0
+ bl SpeciesToHoennPokedexNum
+ adds r4, r0, 0
+ cmp r4, 0xCA
+ bls _08040708
+ ldr r0, _08040704 @ =0x0000ffff
+ b _0804070A
+ .align 2, 0
+_08040704: .4byte 0x0000ffff
+_08040708:
+ adds r0, r4, 0
+_0804070A:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end SpeciesToPokedexNum
+
+ thumb_func_start sub_8040710
+sub_8040710: @ 8040710
+ push {lr}
+ ldr r1, _08040724 @ =gUnknown_02024E84
+ movs r2, 0
+ adds r0, r1, 0x3
+_08040718:
+ strb r2, [r0]
+ subs r0, 0x1
+ cmp r0, r1
+ bge _08040718
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08040724: .4byte gUnknown_02024E84
+ thumb_func_end sub_8040710
+
+ thumb_func_start sub_8040728
+sub_8040728: @ 8040728
+ push {lr}
+ ldr r0, _0804073C @ =gBattleTypeFlags
+ ldrh r1, [r0]
+ movs r0, 0x80
+ lsls r0, 5
+ ands r0, r1
+ cmp r0, 0
+ beq _08040744
+ ldr r0, _08040740 @ =0x000001cf
+ b _080408B2
+ .align 2, 0
+_0804073C: .4byte gBattleTypeFlags
+_08040740: .4byte 0x000001cf
+_08040744:
+ movs r0, 0x80
+ lsls r0, 7
+ ands r0, r1
+ cmp r0, 0
+ beq _08040754
+ movs r0, 0xE7
+ lsls r0, 1
+ b _080408B2
+_08040754:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0804075E
+ b _080408A8
+_0804075E:
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ bne _08040768
+ b _080408B0
+_08040768:
+ ldr r3, _0804078C @ =gTrainers
+ ldr r2, _08040790 @ =gTrainerBattleOpponent
+ ldrh r1, [r2]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r3
+ ldrb r0, [r0, 0x1]
+ subs r0, 0x2
+ cmp r0, 0x31
+ bls _08040780
+ b _080408A8
+_08040780:
+ lsls r0, 2
+ ldr r1, _08040794 @ =_08040798
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0804078C: .4byte gTrainers
+_08040790: .4byte gTrainerBattleOpponent
+_08040794: .4byte _08040798
+ .align 2, 0
+_08040798:
+ .4byte _08040860
+ .4byte _08040866
+ .4byte _08040866
+ .4byte _080408A8
+ .4byte _080408A8
+ .4byte _080408A8
+ .4byte _080408A8
+ .4byte _080408A8
+ .4byte _080408A8
+ .4byte _080408A8
+ .4byte _080408A8
+ .4byte _080408A8
+ .4byte _080408A8
+ .4byte _080408A8
+ .4byte _080408A8
+ .4byte _080408A8
+ .4byte _080408A8
+ .4byte _080408A8
+ .4byte _080408A8
+ .4byte _080408A8
+ .4byte _080408A8
+ .4byte _080408A8
+ .4byte _080408A0
+ .4byte _0804086C
+ .4byte _080408A8
+ .4byte _080408A8
+ .4byte _080408A8
+ .4byte _080408A8
+ .4byte _080408A8
+ .4byte _080408A8
+ .4byte _08040872
+ .4byte _080408A8
+ .4byte _080408A8
+ .4byte _080408A8
+ .4byte _080408A8
+ .4byte _080408A8
+ .4byte _080408A8
+ .4byte _080408A8
+ .4byte _080408A8
+ .4byte _080408A8
+ .4byte _080408A8
+ .4byte _080408A8
+ .4byte _080408A8
+ .4byte _080408A8
+ .4byte _0804087C
+ .4byte _080408A8
+ .4byte _080408A8
+ .4byte _08040860
+ .4byte _08040866
+ .4byte _08040866
+_08040860:
+ movs r0, 0xE9
+ lsls r0, 1
+ b _080408B2
+_08040866:
+ movs r0, 0xE5
+ lsls r0, 1
+ b _080408B2
+_0804086C:
+ movs r0, 0xE6
+ lsls r0, 1
+ b _080408B2
+_08040872:
+ ldr r0, _08040878 @ =0x000001cd
+ b _080408B2
+ .align 2, 0
+_08040878: .4byte 0x000001cd
+_0804087C:
+ ldrh r1, [r2]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ ldr r1, _08040898 @ =gTrainers + 0x4
+ adds r0, r1
+ ldr r1, _0804089C @ =gUnknown_08400E42
+ bl StringCompare
+ cmp r0, 0
+ beq _080408A8
+ movs r0, 0xE8
+ lsls r0, 1
+ b _080408B2
+ .align 2, 0
+_08040898: .4byte gTrainers + 0x4
+_0804089C: .4byte gUnknown_08400E42
+_080408A0:
+ ldr r0, _080408A4 @ =0x000001d1
+ b _080408B2
+ .align 2, 0
+_080408A4: .4byte 0x000001d1
+_080408A8:
+ ldr r0, _080408AC @ =0x000001cb
+ b _080408B2
+ .align 2, 0
+_080408AC: .4byte 0x000001cb
+_080408B0:
+ ldr r0, _080408B8 @ =0x000001c9
+_080408B2:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080408B8: .4byte 0x000001c9
+ thumb_func_end sub_8040728
+
+ thumb_func_start sub_80408BC
+sub_80408BC: @ 80408BC
+ push {lr}
+ bl ResetMapMusic
+ bl m4aMPlayAllStop
+ bl sub_8040728
+ lsls r0, 16
+ lsrs r0, 16
+ bl PlayBGM
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80408BC
+
+ thumb_func_start current_map_music_set__default_for_battle
+current_map_music_set__default_for_battle: @ 80408D8
+ push {r4,lr}
+ lsls r0, 16
+ lsrs r4, r0, 16
+ bl ResetMapMusic
+ bl m4aMPlayAllStop
+ cmp r4, 0
+ beq _080408F2
+ adds r0, r4, 0
+ bl PlayNewMapMusic
+ b _080408FE
+_080408F2:
+ bl sub_8040728
+ lsls r0, 16
+ lsrs r0, 16
+ bl PlayNewMapMusic
+_080408FE:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end current_map_music_set__default_for_battle
+
+ thumb_func_start pokemon_get_pal
+pokemon_get_pal: @ 8040904
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ movs r1, 0x41
+ movs r2, 0
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r5, 0
+ movs r1, 0x1
+ movs r2, 0
+ bl GetMonData
+ adds r6, r0, 0
+ adds r0, r5, 0
+ movs r1, 0
+ movs r2, 0
+ bl GetMonData
+ adds r2, r0, 0
+ adds r0, r4, 0
+ adds r1, r6, 0
+ bl species_and_otid_get_pal
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end pokemon_get_pal
+
+ thumb_func_start species_and_otid_get_pal
+species_and_otid_get_pal: @ 804093C
+ push {r4,r5,lr}
+ adds r3, r2, 0
+ lsls r0, 16
+ lsrs r4, r0, 16
+ adds r5, r4, 0
+ movs r0, 0xCE
+ lsls r0, 1
+ cmp r4, r0
+ bls _08040958
+ ldr r0, _08040954 @ =gMonPaletteTable
+ ldr r0, [r0]
+ b _08040984
+ .align 2, 0
+_08040954: .4byte gMonPaletteTable
+_08040958:
+ lsrs r0, r1, 16
+ ldr r2, _08040974 @ =0x0000ffff
+ ands r1, r2
+ eors r0, r1
+ lsrs r1, r3, 16
+ eors r0, r1
+ ands r3, r2
+ eors r0, r3
+ cmp r0, 0x7
+ bls _0804097C
+ ldr r0, _08040978 @ =gMonPaletteTable
+ lsls r1, r4, 3
+ b _08040980
+ .align 2, 0
+_08040974: .4byte 0x0000ffff
+_08040978: .4byte gMonPaletteTable
+_0804097C:
+ ldr r0, _0804098C @ =gMonShinyPaletteTable
+ lsls r1, r5, 3
+_08040980:
+ adds r1, r0
+ ldr r0, [r1]
+_08040984:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0804098C: .4byte gMonShinyPaletteTable
+ thumb_func_end species_and_otid_get_pal
+
+ thumb_func_start sub_8040990
+sub_8040990: @ 8040990
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ movs r1, 0x41
+ movs r2, 0
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r5, 0
+ movs r1, 0x1
+ movs r2, 0
+ bl GetMonData
+ adds r6, r0, 0
+ adds r0, r5, 0
+ movs r1, 0
+ movs r2, 0
+ bl GetMonData
+ adds r2, r0, 0
+ adds r0, r4, 0
+ adds r1, r6, 0
+ bl sub_80409C8
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8040990
+
+ thumb_func_start sub_80409C8
+sub_80409C8: @ 80409C8
+ push {r4,lr}
+ lsls r0, 16
+ lsrs r4, r0, 16
+ lsrs r0, r1, 16
+ ldr r3, _080409E8 @ =0x0000ffff
+ ands r1, r3
+ eors r0, r1
+ lsrs r1, r2, 16
+ eors r0, r1
+ ands r2, r3
+ eors r0, r2
+ cmp r0, 0x7
+ bls _080409F0
+ lsls r0, r4, 3
+ ldr r1, _080409EC @ =gMonPaletteTable
+ b _080409F4
+ .align 2, 0
+_080409E8: .4byte 0x0000ffff
+_080409EC: .4byte gMonPaletteTable
+_080409F0:
+ lsls r0, r4, 3
+ ldr r1, _080409FC @ =gMonShinyPaletteTable
+_080409F4:
+ adds r0, r1
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080409FC: .4byte gMonShinyPaletteTable
+ thumb_func_end sub_80409C8
+
+ thumb_func_start sub_8040A00
+sub_8040A00: @ 8040A00
+ push {r4,lr}
+ lsls r0, 16
+ lsrs r3, r0, 16
+ ldr r2, _08040A24 @ =gUnknown_0820831A
+ ldrh r0, [r2]
+ ldr r1, _08040A28 @ =0x0000ffff
+ cmp r0, r1
+ beq _08040A32
+ adds r4, r1, 0
+ adds r1, r2, 0
+_08040A14:
+ ldrh r0, [r2]
+ adds r1, 0x2
+ adds r2, 0x2
+ cmp r0, r3
+ bne _08040A2C
+ movs r0, 0x1
+ b _08040A34
+ .align 2, 0
+_08040A24: .4byte gUnknown_0820831A
+_08040A28: .4byte 0x0000ffff
+_08040A2C:
+ ldrh r0, [r1]
+ cmp r0, r4
+ bne _08040A14
+_08040A32:
+ movs r0, 0
+_08040A34:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8040A00
+
+ thumb_func_start sub_8040A3C
+sub_8040A3C: @ 8040A3C
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r2, _08040A50 @ =gBaseStats
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldrb r0, [r1, 0x19]
+ lsrs r0, 7
+ bx lr
+ .align 2, 0
+_08040A50: .4byte gBaseStats
+ thumb_func_end sub_8040A3C
+
+ thumb_func_start sub_8040A54
+sub_8040A54: @ 8040A54
+ push {r4,lr}
+ lsls r4, r1, 24
+ lsrs r4, 24
+ bl GetNature
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08040A78 @ =gUnknown_083F7E28
+ lsls r1, r0, 2
+ adds r1, r0
+ adds r1, r4
+ adds r1, r2
+ movs r0, 0
+ ldrsb r0, [r1, r0]
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08040A78: .4byte gUnknown_083F7E28
+ thumb_func_end sub_8040A54
+
+ thumb_func_start sub_8040A7C
+sub_8040A7C: @ 8040A7C
+ push {r4,lr}
+ lsls r4, r1, 24
+ lsrs r4, 24
+ bl GetNatureFromPersonality
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08040AA0 @ =gUnknown_083F7E28
+ lsls r1, r0, 2
+ adds r1, r0
+ adds r1, r4
+ adds r1, r2
+ movs r0, 0
+ ldrsb r0, [r1, r0]
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08040AA0: .4byte gUnknown_083F7E28
+ thumb_func_end sub_8040A7C
+
+ thumb_func_start sub_8040AA4
+sub_8040AA4: @ 8040AA4
+ push {r4,lr}
+ sub sp, 0x8
+ adds r4, r0, 0
+ movs r1, 0x7
+ mov r2, sp
+ bl GetMonData
+ adds r0, r4, 0
+ movs r1, 0x1
+ movs r2, 0
+ bl GetMonData
+ mov r1, sp
+ bl sub_8040AD0
+ lsls r0, 24
+ lsrs r0, 24
+ add sp, 0x8
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8040AA4
+
+ thumb_func_start sub_8040AD0
+sub_8040AD0: @ 8040AD0
+ push {r4,r5,lr}
+ adds r5, r1, 0
+ ldr r3, _08040B10 @ =gSaveBlock2
+ ldrb r2, [r3, 0xA]
+ ldrb r1, [r3, 0xB]
+ lsls r1, 8
+ orrs r2, r1
+ ldrb r1, [r3, 0xC]
+ lsls r1, 16
+ orrs r2, r1
+ ldrb r1, [r3, 0xD]
+ lsls r1, 24
+ orrs r2, r1
+ cmp r0, r2
+ bne _08040B14
+ movs r4, 0
+ ldrb r0, [r5]
+ cmp r0, 0xFF
+ beq _08040B0C
+ adds r2, r5, 0
+_08040AF8:
+ adds r1, r4, r3
+ ldrb r0, [r2]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bne _08040B14
+ adds r2, 0x1
+ adds r4, 0x1
+ ldrb r0, [r2]
+ cmp r0, 0xFF
+ bne _08040AF8
+_08040B0C:
+ movs r0, 0
+ b _08040B16
+ .align 2, 0
+_08040B10: .4byte gSaveBlock2
+_08040B14:
+ movs r0, 0x1
+_08040B16:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8040AD0
+
+ thumb_func_start sub_8040B1C
+sub_8040B1C: @ 8040B1C
+ push {lr}
+ bl pokemon_restore_pp
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8040B1C
+
+ thumb_func_start pokemon_restore_pp
+pokemon_restore_pp: @ 8040B28
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r5, r0, 0
+ movs r6, 0
+_08040B30:
+ adds r4, r6, 0
+ adds r4, 0xD
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r2, 0
+ bl GetBoxMonData
+ cmp r0, 0
+ beq _08040B7C
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r2, 0
+ bl GetBoxMonData
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r5, 0
+ movs r1, 0x15
+ movs r2, 0
+ bl GetBoxMonData
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r2, r6, 24
+ lsrs r2, 24
+ adds r0, r4, 0
+ bl CalculatePPWithBonus
+ mov r1, sp
+ strb r0, [r1]
+ adds r1, r6, 0
+ adds r1, 0x11
+ adds r0, r5, 0
+ mov r2, sp
+ bl SetBoxMonData
+_08040B7C:
+ adds r6, 0x1
+ cmp r6, 0x3
+ ble _08040B30
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end pokemon_restore_pp
+
+ thumb_func_start sub_8040B8C
+sub_8040B8C: @ 8040B8C
+ push {r4,r5,lr}
+ ldr r1, _08040BCC @ =byte_2024C06
+ ldr r2, _08040BD0 @ =0x02000000
+ ldr r3, _08040BD4 @ =0x000160c0
+ adds r0, r2, r3
+ ldrb r0, [r0]
+ strb r0, [r1]
+ ldr r5, _08040BD8 @ =gUnknown_030041C0
+ movs r0, 0xFD
+ strb r0, [r5]
+ movs r0, 0x4
+ strb r0, [r5, 0x1]
+ ldr r0, _08040BDC @ =0x00016054
+ adds r4, r2, r0
+ ldrb r0, [r4]
+ strb r0, [r5, 0x2]
+ movs r0, 0xFF
+ strb r0, [r5, 0x4]
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _08040BE4
+ ldr r1, _08040BE0 @ =gUnknown_02024A6A
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r1
+ ldrb r0, [r0]
+ bl pokemon_order_func
+ b _08040BEE
+ .align 2, 0
+_08040BCC: .4byte byte_2024C06
+_08040BD0: .4byte 0x02000000
+_08040BD4: .4byte 0x000160c0
+_08040BD8: .4byte gUnknown_030041C0
+_08040BDC: .4byte 0x00016054
+_08040BE0: .4byte gUnknown_02024A6A
+_08040BE4:
+ ldr r0, _08040C24 @ =gUnknown_02024A6A
+ ldrb r1, [r4]
+ lsls r1, 1
+ adds r1, r0
+ ldrh r0, [r1]
+_08040BEE:
+ strb r0, [r5, 0x3]
+ ldr r4, _08040C28 @ =gUnknown_03004290
+ movs r0, 0xFD
+ strb r0, [r4]
+ movs r0, 0x4
+ strb r0, [r4, 0x1]
+ ldr r1, _08040C2C @ =gUnknown_02024E6C
+ ldrb r0, [r1]
+ strb r0, [r4, 0x2]
+ ldr r2, _08040C24 @ =gUnknown_02024A6A
+ ldrb r0, [r1]
+ lsls r0, 1
+ adds r0, r2
+ ldrb r0, [r0]
+ bl pokemon_order_func
+ strb r0, [r4, 0x3]
+ movs r0, 0xFF
+ strb r0, [r4, 0x4]
+ ldr r0, _08040C30 @ =gUnknown_083FFCCA
+ ldr r1, _08040C34 @ =gStringVar4
+ bl sub_8120FFC
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08040C24: .4byte gUnknown_02024A6A
+_08040C28: .4byte gUnknown_03004290
+_08040C2C: .4byte gUnknown_02024E6C
+_08040C30: .4byte gUnknown_083FFCCA
+_08040C34: .4byte gStringVar4
+ thumb_func_end sub_8040B8C
+
+ thumb_func_start sub_8040C38
+sub_8040C38: @ 8040C38
+ push {r4,r5,lr}
+ ldr r0, _08040C90 @ =gBattleTypeFlags
+ ldrh r1, [r0]
+ ldr r0, _08040C94 @ =0x00002008
+ ands r0, r1
+ cmp r0, 0
+ bne _08040CAC
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x64
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldr r4, _08040C98 @ =gEnemyParty
+ adds r0, r4, 0
+ movs r1, 0xB
+ movs r2, 0
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r2, _08040C9C @ =gBaseStats
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r3, r1, 2
+ adds r1, r3, r2
+ ldrh r0, [r1, 0xC]
+ ldrh r1, [r1, 0xE]
+ cmp r0, r1
+ beq _08040C82
+ cmp r5, 0x2C
+ bls _08040CAC
+ cmp r5, 0x5E
+ bhi _08040CA0
+_08040C82:
+ adds r2, 0xC
+ adds r2, r3, r2
+ adds r0, r4, 0
+ movs r1, 0xC
+ bl SetMonData
+ b _08040CAC
+ .align 2, 0
+_08040C90: .4byte gBattleTypeFlags
+_08040C94: .4byte 0x00002008
+_08040C98: .4byte gEnemyParty
+_08040C9C: .4byte gBaseStats
+_08040CA0:
+ adds r2, 0xE
+ adds r2, r3, r2
+ adds r0, r4, 0
+ movs r1, 0xC
+ bl SetMonData
+_08040CAC:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8040C38
+
+ thumb_func_start sub_8040CB4
+sub_8040CB4: @ 8040CB4
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ movs r2, 0
+ bl GetMonData
+ adds r5, r0, 0
+ adds r0, r4, 0
+ movs r1, 0
+ movs r2, 0
+ bl GetMonData
+ adds r1, r0, 0
+ adds r0, r5, 0
+ bl sub_8040CE0
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8040CB4
+
+ thumb_func_start sub_8040CE0
+sub_8040CE0: @ 8040CE0
+ push {r4,lr}
+ movs r4, 0
+ lsrs r2, r0, 16
+ ldr r3, _08040D04 @ =0x0000ffff
+ ands r0, r3
+ eors r2, r0
+ lsrs r0, r1, 16
+ eors r2, r0
+ ands r1, r3
+ eors r2, r1
+ cmp r2, 0x7
+ bhi _08040CFA
+ movs r4, 0x1
+_08040CFA:
+ adds r0, r4, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08040D04: .4byte 0x0000ffff
+ thumb_func_end sub_8040CE0
+
+ thumb_func_start sub_8040D08
+sub_8040D08: @ 8040D08
+ push {r4,lr}
+ bl GetMultiplayerId
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r4, _08040D38 @ =gLinkPlayers
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ adds r1, r4
+ ldrh r1, [r1, 0x18]
+ movs r0, 0x2
+ eors r0, r1
+ bl sub_803FC34
+ adds r1, r0, 0
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r4, 0x8
+ adds r0, r4
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08040D38: .4byte gLinkPlayers
+ thumb_func_end sub_8040D08
+
+ thumb_func_start sub_8040D3C
+sub_8040D3C: @ 8040D3C
+ push {r4,lr}
+ adds r4, r1, 0
+ lsls r0, 16
+ lsrs r1, r0, 16
+ adds r0, r1, 0
+ lsls r2, 24
+ lsrs r2, 24
+ movs r3, 0
+ cmp r1, 0x20
+ beq _08040D54
+ cmp r1, 0x1D
+ bne _08040D7E
+_08040D54:
+ cmp r2, 0x2
+ bne _08040D68
+ movs r0, 0xB
+ muls r1, r0
+ ldr r0, _08040D64 @ =gSpeciesNames
+ adds r1, r0
+ b _08040D70
+ .align 2, 0
+_08040D64: .4byte gSpeciesNames
+_08040D68:
+ ldr r1, _08040D88 @ =gUnknown_08208337
+ cmp r0, 0x20
+ bne _08040D70
+ subs r1, 0xB
+_08040D70:
+ adds r0, r4, 0
+ bl StringCompareWithoutExtCtrlCodes
+ movs r3, 0
+ cmp r0, 0
+ bne _08040D7E
+ movs r3, 0x1
+_08040D7E:
+ adds r0, r3, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08040D88: .4byte gUnknown_08208337
+ thumb_func_end sub_8040D3C
+
+ thumb_func_start sub_8040D8C
+sub_8040D8C: @ 8040D8C
+ push {lr}
+ lsls r0, 16
+ lsrs r3, r0, 16
+ movs r2, 0x2
+ ldrb r0, [r1]
+ cmp r0, 0xFC
+ bne _08040DA2
+ ldrb r0, [r1, 0x1]
+ cmp r0, 0x15
+ bne _08040DA2
+ movs r2, 0x1
+_08040DA2:
+ adds r0, r3, 0
+ bl sub_8040D3C
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8040D8C
+
+ thumb_func_start unref_sub_8040DAC
+unref_sub_8040DAC: @ 8040DAC
+ push {r4-r6,lr}
+ sub sp, 0xC
+ adds r6, r0, 0
+ movs r1, 0xB
+ movs r2, 0
+ bl GetMonData
+ adds r5, r0, 0
+ lsls r5, 16
+ lsrs r5, 16
+ adds r0, r6, 0
+ movs r1, 0x3
+ movs r2, 0
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r6, 0
+ movs r1, 0x2
+ mov r2, sp
+ bl GetMonData
+ adds r0, r5, 0
+ mov r1, sp
+ adds r2, r4, 0
+ bl sub_8040D3C
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end unref_sub_8040DAC
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/pokemon_icon.s b/asm/pokemon_icon.s
new file mode 100644
index 000000000..a63779b28
--- /dev/null
+++ b/asm/pokemon_icon.s
@@ -0,0 +1,788 @@
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start unref_sub_809D26C
+unref_sub_809D26C: @ 809D26C
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ sub sp, 0x18
+ adds r6, r3, 0
+ ldr r3, [sp, 0x2C]
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r3, 24
+ lsrs r3, 24
+ mov r8, sp
+ ldr r4, _0809D2E0 @ =gOamData_83BC5E8
+ str r4, [sp]
+ ldr r5, _0809D2E4 @ =gMonIconTable
+ lsls r4, r0, 2
+ adds r4, r5
+ ldr r4, [r4]
+ str r4, [sp, 0x4]
+ ldr r4, _0809D2E8 @ =gSpriteAnimTable_83BC62C
+ str r4, [sp, 0x8]
+ ldr r4, _0809D2EC @ =gSpriteAffineAnimTable_83BC660
+ str r4, [sp, 0xC]
+ str r1, [sp, 0x10]
+ ldr r1, _0809D2F0 @ =gMonIconPaletteIndices
+ adds r0, r1
+ ldr r4, _0809D2F4 @ =0x0000dac0
+ adds r1, r4, 0
+ ldrb r0, [r0]
+ adds r1, r0
+ mov r0, r8
+ strh r1, [r0, 0x14]
+ lsls r2, 16
+ asrs r2, 16
+ lsls r6, 16
+ asrs r6, 16
+ mov r0, sp
+ adds r1, r2, 0
+ adds r2, r6, 0
+ bl CreateMonIconSprite
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ ldr r1, _0809D2F8 @ =gSprites
+ adds r0, r1
+ bl UpdateMonIconFrame
+ adds r0, r4, 0
+ add sp, 0x18
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0809D2E0: .4byte gOamData_83BC5E8
+_0809D2E4: .4byte gMonIconTable
+_0809D2E8: .4byte gSpriteAnimTable_83BC62C
+_0809D2EC: .4byte gSpriteAffineAnimTable_83BC660
+_0809D2F0: .4byte gMonIconPaletteIndices
+_0809D2F4: .4byte 0x0000dac0
+_0809D2F8: .4byte gSprites
+ thumb_func_end unref_sub_809D26C
+
+ thumb_func_start CreateMonIcon
+CreateMonIcon: @ 809D2FC
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x30
+ adds r4, r0, 0
+ adds r5, r1, 0
+ ldr r0, [sp, 0x48]
+ ldr r1, [sp, 0x4C]
+ lsls r4, 16
+ lsrs r4, 16
+ lsls r2, 16
+ lsrs r7, r2, 16
+ lsls r3, 16
+ lsrs r6, r3, 16
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r0, _0809D38C @ =gOamData_83BC5E8
+ str r0, [sp, 0x18]
+ adds r0, r4, 0
+ bl GetMonIconPtr
+ str r0, [sp, 0x1C]
+ ldr r0, _0809D390 @ =gSpriteAnimTable_83BC62C
+ str r0, [sp, 0x20]
+ ldr r0, _0809D394 @ =gSpriteAffineAnimTable_83BC660
+ str r0, [sp, 0x24]
+ str r5, [sp, 0x28]
+ ldr r0, _0809D398 @ =gMonIconPaletteIndices
+ adds r0, r4, r0
+ ldr r1, _0809D39C @ =0x0000dac0
+ adds r5, r1, 0
+ ldrb r0, [r0]
+ adds r1, r5, r0
+ add r0, sp, 0x2C
+ strh r1, [r0]
+ add r1, sp, 0x18
+ mov r0, sp
+ movs r2, 0x18
+ bl memcpy
+ movs r0, 0xCE
+ lsls r0, 1
+ cmp r4, r0
+ bls _0809D35A
+ mov r0, sp
+ strh r5, [r0, 0x14]
+_0809D35A:
+ lsls r1, r7, 16
+ asrs r1, 16
+ lsls r2, r6, 16
+ asrs r2, 16
+ mov r0, sp
+ mov r3, r8
+ bl CreateMonIconSprite
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ ldr r1, _0809D3A0 @ =gSprites
+ adds r0, r1
+ bl UpdateMonIconFrame
+ adds r0, r4, 0
+ add sp, 0x30
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0809D38C: .4byte gOamData_83BC5E8
+_0809D390: .4byte gSpriteAnimTable_83BC62C
+_0809D394: .4byte gSpriteAffineAnimTable_83BC660
+_0809D398: .4byte gMonIconPaletteIndices
+_0809D39C: .4byte 0x0000dac0
+_0809D3A0: .4byte gSprites
+ thumb_func_end CreateMonIcon
+
+ thumb_func_start sub_809D3A4
+sub_809D3A4: @ 809D3A4
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ sub sp, 0x18
+ adds r6, r3, 0
+ ldr r3, [sp, 0x2C]
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r3, 24
+ lsrs r3, 24
+ mov r8, sp
+ ldr r4, _0809D418 @ =gOamData_83BC5E8
+ str r4, [sp]
+ ldr r5, _0809D41C @ =gMonIconTable
+ lsls r4, r0, 2
+ adds r4, r5
+ ldr r4, [r4]
+ str r4, [sp, 0x4]
+ ldr r4, _0809D420 @ =gSpriteAnimTable_83BC62C
+ str r4, [sp, 0x8]
+ ldr r4, _0809D424 @ =gSpriteAffineAnimTable_83BC660
+ str r4, [sp, 0xC]
+ str r1, [sp, 0x10]
+ ldr r1, _0809D428 @ =gMonIconPaletteIndices
+ adds r0, r1
+ ldr r4, _0809D42C @ =0x0000dac0
+ adds r1, r4, 0
+ ldrb r0, [r0]
+ adds r1, r0
+ mov r0, r8
+ strh r1, [r0, 0x14]
+ lsls r2, 16
+ asrs r2, 16
+ lsls r6, 16
+ asrs r6, 16
+ mov r0, sp
+ adds r1, r2, 0
+ adds r2, r6, 0
+ bl CreateMonIconSprite
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ ldr r1, _0809D430 @ =gSprites
+ adds r0, r1
+ bl UpdateMonIconFrame
+ adds r0, r4, 0
+ add sp, 0x18
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0809D418: .4byte gOamData_83BC5E8
+_0809D41C: .4byte gMonIconTable
+_0809D420: .4byte gSpriteAnimTable_83BC62C
+_0809D424: .4byte gSpriteAffineAnimTable_83BC660
+_0809D428: .4byte gMonIconPaletteIndices
+_0809D42C: .4byte 0x0000dac0
+_0809D430: .4byte gSprites
+ thumb_func_end sub_809D3A4
+
+ thumb_func_start mon_icon_convert_unown_species_id
+mon_icon_convert_unown_species_id: @ 809D434
+ push {lr}
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, SPECIES_UNOWN
+ bne _0809D45E
+ adds r0, r1, 0
+ bl sub_809D474
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0
+ bne _0809D450
+ movs r0, SPECIES_UNOWN
+ b _0809D45A
+_0809D450:
+ movs r1, 0xCE
+ lsls r1, 1
+ adds r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+_0809D45A:
+ adds r1, r0, 0
+ b _0809D46C
+_0809D45E:
+ movs r0, 0xCE
+ lsls r0, 1
+ adds r1, r2, 0
+ cmp r1, r0
+ bls _0809D46C
+ movs r1, 0x82
+ lsls r1, 1
+_0809D46C:
+ adds r0, r1, 0
+ pop {r1}
+ bx r1
+ thumb_func_end mon_icon_convert_unown_species_id
+
+ thumb_func_start sub_809D474
+sub_809D474: @ 809D474
+ push {lr}
+ adds r2, r0, 0
+ movs r0, 0xC0
+ lsls r0, 18
+ ands r0, r2
+ lsrs r0, 18
+ movs r1, 0xC0
+ lsls r1, 10
+ ands r1, r2
+ lsrs r1, 12
+ orrs r0, r1
+ movs r1, 0xC0
+ lsls r1, 2
+ ands r1, r2
+ lsrs r1, 6
+ orrs r0, r1
+ movs r1, 0x3
+ ands r1, r2
+ orrs r0, r1
+ movs r1, 0x1C
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r0, 16
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809D474
+
+ thumb_func_start sub_809D4A8
+sub_809D4A8: @ 809D4A8
+ push {r4,lr}
+ sub sp, 0x4
+ lsls r0, 16
+ lsrs r4, r0, 16
+ adds r0, r4, 0
+ mov r1, sp
+ bl sub_80A2D64
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, SPECIES_UNOWN
+ bne _0809D4DE
+ mov r0, sp
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _0809D4CE
+ mov r1, sp
+ adds r0, SPECIES_UNOWN
+ b _0809D4D6
+_0809D4CE:
+ mov r1, sp
+ movs r2, 0xCE
+ lsls r2, 1
+ adds r0, r2
+_0809D4D6:
+ strh r0, [r1]
+ mov r0, sp
+ ldrh r0, [r0]
+ b _0809D4EA
+_0809D4DE:
+ adds r0, r4, 0
+ movs r1, 0
+ bl mon_icon_convert_unown_species_id
+ lsls r0, 16
+ lsrs r0, 16
+_0809D4EA:
+ add sp, 0x4
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809D4A8
+
+ thumb_func_start GetMonIconPtr
+GetMonIconPtr: @ 809D4F4
+ push {lr}
+ lsls r0, 16
+ lsrs r0, 16
+ bl mon_icon_convert_unown_species_id
+ lsls r0, 16
+ ldr r1, _0809D50C @ =gMonIconTable
+ lsrs r0, 14
+ adds r0, r1
+ ldr r0, [r0]
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0809D50C: .4byte gMonIconTable
+ thumb_func_end GetMonIconPtr
+
+ thumb_func_start sub_809D510
+sub_809D510: @ 809D510
+ push {lr}
+ bl sub_809D7E8
+ pop {r0}
+ bx r0
+ thumb_func_end sub_809D510
+
+ thumb_func_start sub_809D51C
+sub_809D51C: @ 809D51C
+ push {r4,r5,lr}
+ movs r4, 0
+ ldr r5, _0809D53C @ =gMonIconPaletteTable
+_0809D522:
+ lsls r0, r4, 3
+ adds r0, r5
+ bl LoadSpritePalette
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x5
+ bls _0809D522
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809D53C: .4byte gMonIconPaletteTable
+ thumb_func_end sub_809D51C
+
+ thumb_func_start unref_sub_809D540
+unref_sub_809D540: @ 809D540
+ push {r4,lr}
+ lsls r0, 16
+ lsrs r1, r0, 16
+ movs r0, 0xCE
+ lsls r0, 1
+ cmp r1, r0
+ bls _0809D552
+ movs r1, 0x82
+ lsls r1, 1
+_0809D552:
+ ldr r0, _0809D578 @ =gMonIconPaletteIndices
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ ldr r1, _0809D57C @ =gMonIconPaletteTable
+ lsls r0, 3
+ adds r4, r0, r1
+ ldrh r0, [r4, 0x4]
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ bne _0809D572
+ adds r0, r4, 0
+ bl LoadSpritePalette
+_0809D572:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809D578: .4byte gMonIconPaletteIndices
+_0809D57C: .4byte gMonIconPaletteTable
+ thumb_func_end unref_sub_809D540
+
+ thumb_func_start sub_809D580
+sub_809D580: @ 809D580
+ push {r4,lr}
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r1, _0809D5AC @ =gMonIconPaletteIndices
+ adds r0, r1
+ ldrb r0, [r0]
+ ldr r1, _0809D5B0 @ =gMonIconPaletteTable
+ lsls r0, 3
+ adds r4, r0, r1
+ ldrh r0, [r4, 0x4]
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ bne _0809D5A6
+ adds r0, r4, 0
+ bl LoadSpritePalette
+_0809D5A6:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809D5AC: .4byte gMonIconPaletteIndices
+_0809D5B0: .4byte gMonIconPaletteTable
+ thumb_func_end sub_809D580
+
+ thumb_func_start unref_sub_809D5B4
+unref_sub_809D5B4: @ 809D5B4
+ push {r4,r5,lr}
+ movs r4, 0
+ ldr r5, _0809D5D4 @ =gMonIconPaletteTable
+_0809D5BA:
+ lsls r0, r4, 3
+ adds r0, r5
+ ldrh r0, [r0, 0x4]
+ bl FreeSpritePaletteByTag
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x5
+ bls _0809D5BA
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809D5D4: .4byte gMonIconPaletteTable
+ thumb_func_end unref_sub_809D5B4
+
+ thumb_func_start unref_sub_809D5D8
+unref_sub_809D5D8: @ 809D5D8
+ push {lr}
+ lsls r0, 16
+ lsrs r1, r0, 16
+ movs r0, 0xCE
+ lsls r0, 1
+ cmp r1, r0
+ bls _0809D5EA
+ movs r1, 0x82
+ lsls r1, 1
+_0809D5EA:
+ ldr r0, _0809D600 @ =gMonIconPaletteIndices
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ ldr r1, _0809D604 @ =gMonIconPaletteTable
+ lsls r0, 3
+ adds r0, r1
+ ldrh r0, [r0, 0x4]
+ bl FreeSpritePaletteByTag
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809D600: .4byte gMonIconPaletteIndices
+_0809D604: .4byte gMonIconPaletteTable
+ thumb_func_end unref_sub_809D5D8
+
+ thumb_func_start sub_809D608
+sub_809D608: @ 809D608
+ push {lr}
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r1, _0809D624 @ =gMonIconPaletteIndices
+ adds r0, r1
+ ldrb r0, [r0]
+ ldr r1, _0809D628 @ =gMonIconPaletteTable
+ lsls r0, 3
+ adds r0, r1
+ ldrh r0, [r0, 0x4]
+ bl FreeSpritePaletteByTag
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809D624: .4byte gMonIconPaletteIndices
+_0809D628: .4byte gMonIconPaletteTable
+ thumb_func_end sub_809D608
+
+ thumb_func_start sub_809D62C
+sub_809D62C: @ 809D62C
+ push {lr}
+ bl UpdateMonIconFrame
+ pop {r0}
+ bx r0
+ thumb_func_end sub_809D62C
+
+ thumb_func_start UpdateMonIconFrame
+UpdateMonIconFrame: @ 809D638
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ adds r4, r0, 0
+ movs r7, 0
+ adds r6, r4, 0
+ adds r6, 0x2C
+ ldrb r2, [r6]
+ movs r0, 0x3F
+ mov r9, r0
+ ands r0, r2
+ cmp r0, 0
+ bne _0809D6EC
+ movs r1, 0x2A
+ adds r1, r4
+ mov r8, r1
+ ldrb r1, [r1]
+ ldr r0, [r4, 0x8]
+ lsls r1, 2
+ adds r1, r0
+ adds r5, r4, 0
+ adds r5, 0x2B
+ ldrb r0, [r5]
+ ldr r1, [r1]
+ lsls r0, 2
+ adds r0, r1
+ movs r1, 0
+ ldrsh r3, [r0, r1]
+ movs r0, 0x2
+ negs r0, r0
+ cmp r3, r0
+ beq _0809D682
+ adds r0, 0x1
+ cmp r3, r0
+ bne _0809D686
+ b _0809D700
+_0809D682:
+ strb r7, [r5]
+ b _0809D700
+_0809D686:
+ ldr r2, _0809D6E4 @ =gSpriteImageSizes
+ ldrb r1, [r4, 0x3]
+ lsrs r1, 6
+ lsls r1, 1
+ ldrb r0, [r4, 0x1]
+ lsrs r0, 6
+ lsls r0, 3
+ adds r1, r0
+ adds r1, r2
+ ldrh r2, [r1]
+ adds r1, r2, 0
+ muls r1, r3
+ ldr r0, [r4, 0xC]
+ adds r0, r1
+ ldrh r1, [r4, 0x4]
+ lsls r1, 22
+ lsrs r1, 17
+ ldr r3, _0809D6E8 @ =0x06010000
+ adds r1, r3
+ bl RequestSpriteCopy
+ mov r0, r8
+ ldrb r1, [r0]
+ ldr r0, [r4, 0x8]
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r5]
+ ldr r1, [r1]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ lsls r0, 10
+ lsrs r0, 26
+ mov r1, r9
+ ands r1, r0
+ ldrb r2, [r6]
+ movs r0, 0x40
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r6]
+ ldrb r0, [r5]
+ adds r0, 0x1
+ strb r0, [r5]
+ ldrb r7, [r5]
+ b _0809D700
+ .align 2, 0
+_0809D6E4: .4byte gSpriteImageSizes
+_0809D6E8: .4byte 0x06010000
+_0809D6EC:
+ lsls r0, r2, 26
+ lsrs r0, 26
+ subs r0, 0x1
+ movs r1, 0x3F
+ ands r0, r1
+ movs r1, 0x40
+ negs r1, r1
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r6]
+_0809D700:
+ adds r0, r7, 0
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end UpdateMonIconFrame
+
+ thumb_func_start CreateMonIconSprite
+CreateMonIconSprite: @ 809D710
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ sub sp, 0x38
+ mov r9, r0
+ adds r4, r1, 0
+ adds r5, r2, 0
+ mov r8, r3
+ lsls r4, 16
+ lsrs r4, 16
+ lsls r5, 16
+ lsrs r5, 16
+ mov r0, r8
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ movs r0, 0
+ str r0, [sp, 0x30]
+ ldr r2, _0809D7D8 @ =gSpriteImageSizes
+ mov r0, r9
+ ldr r6, [r0]
+ ldrb r1, [r6, 0x3]
+ lsrs r1, 6
+ lsls r1, 1
+ ldrb r0, [r6, 0x1]
+ lsrs r0, 6
+ lsls r0, 3
+ adds r1, r0
+ adds r1, r2
+ ldrh r2, [r1]
+ ldr r1, _0809D7DC @ =0xffff0000
+ add r3, sp, 0x30
+ ldr r0, [r3, 0x4]
+ ands r0, r1
+ orrs r0, r2
+ str r0, [r3, 0x4]
+ add r1, sp, 0x18
+ ldr r0, _0809D7E0 @ =0x0000ffff
+ strh r0, [r1]
+ mov r0, r9
+ ldrh r2, [r0, 0x14]
+ mov r0, sp
+ adds r0, 0x1A
+ strh r2, [r0]
+ str r6, [sp, 0x1C]
+ mov r2, r9
+ ldr r0, [r2, 0x8]
+ str r0, [sp, 0x20]
+ str r3, [sp, 0x24]
+ ldr r0, [r2, 0xC]
+ str r0, [sp, 0x28]
+ ldr r0, [r2, 0x10]
+ str r0, [sp, 0x2C]
+ mov r0, sp
+ movs r2, 0x18
+ bl memcpy
+ lsls r4, 16
+ asrs r4, 16
+ lsls r5, 16
+ asrs r5, 16
+ mov r0, sp
+ adds r1, r4, 0
+ adds r2, r5, 0
+ mov r3, r8
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r6, _0809D7E4 @ =gSprites
+ lsls r3, r0, 4
+ adds r3, r0
+ lsls r3, 2
+ adds r4, r3, r6
+ adds r5, r4, 0
+ adds r5, 0x2C
+ ldrb r1, [r5]
+ movs r2, 0x40
+ orrs r1, r2
+ strb r1, [r5]
+ adds r4, 0x3F
+ ldrb r2, [r4]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r4]
+ adds r6, 0xC
+ adds r3, r6
+ mov r2, r9
+ ldr r1, [r2, 0x4]
+ str r1, [r3]
+ add sp, 0x38
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0809D7D8: .4byte gSpriteImageSizes
+_0809D7DC: .4byte 0xffff0000
+_0809D7E0: .4byte 0x0000ffff
+_0809D7E4: .4byte gSprites
+ thumb_func_end CreateMonIconSprite
+
+ thumb_func_start sub_809D7E8
+sub_809D7E8: @ 809D7E8
+ push {lr}
+ sub sp, 0x8
+ movs r1, 0
+ str r1, [sp]
+ ldr r3, _0809D81C @ =gSpriteImageSizes
+ ldrb r2, [r0, 0x3]
+ lsrs r2, 6
+ lsls r2, 1
+ ldrb r1, [r0, 0x1]
+ lsrs r1, 6
+ lsls r1, 3
+ adds r2, r1
+ adds r2, r3
+ ldrh r3, [r2]
+ ldr r2, _0809D820 @ =0xffff0000
+ ldr r1, [sp, 0x4]
+ ands r1, r2
+ orrs r1, r3
+ str r1, [sp, 0x4]
+ mov r1, sp
+ str r1, [r0, 0xC]
+ bl DestroySprite
+ add sp, 0x8
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809D81C: .4byte gSpriteImageSizes
+_0809D820: .4byte 0xffff0000
+ thumb_func_end sub_809D7E8
+
+ thumb_func_start sub_809D824
+sub_809D824: @ 809D824
+ mov r12, r0
+ adds r0, 0x2A
+ movs r3, 0
+ strb r1, [r0]
+ mov r2, r12
+ adds r2, 0x2C
+ ldrb r1, [r2]
+ movs r0, 0x40
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ mov r0, r12
+ adds r0, 0x2B
+ strb r3, [r0]
+ bx lr
+ thumb_func_end sub_809D824
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/pokemon_item_effect.s b/asm/pokemon_item_effect.s
new file mode 100644
index 000000000..a8a0ce89d
--- /dev/null
+++ b/asm/pokemon_item_effect.s
@@ -0,0 +1,1970 @@
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start ExecuteTableBasedItemEffect_
+ExecuteTableBasedItemEffect_: @ 803E18C
+ push {r4,lr}
+ sub sp, 0x4
+ lsls r1, 16
+ lsrs r1, 16
+ lsls r2, 24
+ lsrs r2, 24
+ lsls r3, 24
+ lsrs r3, 24
+ movs r4, 0
+ str r4, [sp]
+ bl sub_803E1B0
+ lsls r0, 24
+ lsrs r0, 24
+ add sp, 0x4
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end ExecuteTableBasedItemEffect_
+
+ thumb_func_start sub_803E1B0
+sub_803E1B0: @ 803E1B0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x3C
+ mov r8, r0
+ ldr r0, [sp, 0x5C]
+ lsls r1, 16
+ lsrs r1, 16
+ str r1, [sp, 0x8]
+ lsls r2, 24
+ lsrs r2, 24
+ str r2, [sp, 0xC]
+ lsls r3, 24
+ lsrs r3, 24
+ str r3, [sp, 0x10]
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x14]
+ movs r0, 0x1
+ str r0, [sp, 0x1C]
+ movs r1, 0x6
+ str r1, [sp, 0x24]
+ movs r2, 0
+ str r2, [sp, 0x2C]
+ movs r3, 0x4
+ str r3, [sp, 0x34]
+ mov r0, r8
+ movs r1, 0xC
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0xAF
+ bne _0803E240
+ ldr r0, _0803E21C @ =gMain
+ ldr r4, _0803E220 @ =0x0000043d
+ adds r0, r4
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0803E22C
+ ldr r2, _0803E224 @ =gEnigmaBerries
+ ldr r0, _0803E228 @ =gUnknown_02024E6C
+ ldrb r1, [r0]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x7]
+ b _0803E248
+ .align 2, 0
+_0803E21C: .4byte gMain
+_0803E220: .4byte 0x0000043d
+_0803E224: .4byte gEnigmaBerries
+_0803E228: .4byte gUnknown_02024E6C
+_0803E22C:
+ ldr r0, _0803E238 @ =gSaveBlock1
+ ldr r5, _0803E23C @ =0x00003688
+ adds r0, r5
+ ldrb r0, [r0]
+ b _0803E248
+ .align 2, 0
+_0803E238: .4byte gSaveBlock1
+_0803E23C: .4byte 0x00003688
+_0803E240:
+ bl ItemId_GetHoldEffect
+ lsls r0, 24
+ lsrs r0, 24
+_0803E248:
+ str r0, [sp, 0x30]
+ ldr r1, _0803E2A4 @ =gUnknown_02024C0B
+ ldr r0, _0803E2A8 @ =gUnknown_02024E6C
+ ldrb r2, [r0]
+ strb r2, [r1]
+ ldr r0, _0803E2AC @ =gMain
+ ldr r1, _0803E2B0 @ =0x0000043d
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0
+ beq _0803E2E8
+ ldr r0, _0803E2B4 @ =gUnknown_02024A60
+ strb r2, [r0]
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ negs r1, r0
+ orrs r1, r0
+ lsrs r1, 31
+ str r1, [sp, 0x18]
+ ldr r0, _0803E2B8 @ =gUnknown_02024A68
+ ldr r4, [sp, 0x8]
+ subs r4, 0xD
+ ldrb r0, [r0]
+ cmp r1, r0
+ bge _0803E2F4
+ ldr r2, _0803E2BC @ =gUnknown_02024A6A
+ lsls r0, r1, 1
+ adds r0, r2
+ ldrh r3, [r0]
+ ldr r5, [sp, 0xC]
+ lsls r0, r5, 16
+ lsrs r1, r0, 16
+ adds r5, r0, 0
+ cmp r3, r1
+ bne _0803E2C0
+ ldr r0, [sp, 0x18]
+ str r0, [sp, 0x34]
+ b _0803E2F4
+ .align 2, 0
+_0803E2A4: .4byte gUnknown_02024C0B
+_0803E2A8: .4byte gUnknown_02024E6C
+_0803E2AC: .4byte gMain
+_0803E2B0: .4byte 0x0000043d
+_0803E2B4: .4byte gUnknown_02024A60
+_0803E2B8: .4byte gUnknown_02024A68
+_0803E2BC: .4byte gUnknown_02024A6A
+_0803E2C0:
+ ldr r1, [sp, 0x18]
+ adds r1, 0x2
+ str r1, [sp, 0x18]
+ ldr r0, _0803E2E4 @ =gUnknown_02024A68
+ ldrb r0, [r0]
+ cmp r1, r0
+ bge _0803E2F4
+ lsls r0, r1, 1
+ adds r0, r2
+ ldrh r1, [r0]
+ lsrs r0, r5, 16
+ cmp r1, r0
+ bne _0803E2C0
+ ldr r2, [sp, 0x18]
+ lsls r0, r2, 24
+ lsrs r0, 24
+ str r0, [sp, 0x34]
+ b _0803E2F4
+ .align 2, 0
+_0803E2E4: .4byte gUnknown_02024A68
+_0803E2E8:
+ ldr r0, _0803E310 @ =gUnknown_02024A60
+ strb r1, [r0]
+ movs r3, 0x4
+ str r3, [sp, 0x34]
+ ldr r4, [sp, 0x8]
+ subs r4, 0xD
+_0803E2F4:
+ lsls r0, r4, 16
+ lsrs r0, 16
+ cmp r0, 0xA5
+ bhi _0803E36C
+ ldr r1, _0803E314 @ =gItemEffectTable
+ lsls r0, r4, 2
+ adds r0, r1
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _0803E318
+ ldr r4, [sp, 0x8]
+ cmp r4, 0xAF
+ beq _0803E31E
+ b _0803E36C
+ .align 2, 0
+_0803E310: .4byte gUnknown_02024A60
+_0803E314: .4byte gItemEffectTable
+_0803E318:
+ ldr r5, [sp, 0x8]
+ cmp r5, 0xAF
+ bne _0803E372
+_0803E31E:
+ ldr r0, _0803E340 @ =gMain
+ ldr r1, _0803E344 @ =0x0000043d
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0803E350
+ ldr r0, _0803E348 @ =gUnknown_02024A60
+ ldrb r1, [r0]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ ldr r1, _0803E34C @ =gUnknown_02024DF8
+ adds r0, r1
+ b _0803E372
+ .align 2, 0
+_0803E340: .4byte gMain
+_0803E344: .4byte 0x0000043d
+_0803E348: .4byte gUnknown_02024A60
+_0803E34C: .4byte gUnknown_02024DF8
+_0803E350:
+ ldr r2, _0803E358 @ =gSaveBlock1 + 0x3676
+ str r2, [sp, 0x20]
+ b _0803E374
+ .align 2, 0
+_0803E358: .4byte gSaveBlock1 + 0x3676
+_0803E35C:
+ mov r0, r8
+ movs r2, 0
+ ldr r3, [sp, 0xC]
+ bl BeginEvolutionScene
+ movs r0, 0
+ bl _0803F15C
+_0803E36C:
+ movs r0, 0x1
+ bl _0803F15C
+_0803E372:
+ str r0, [sp, 0x20]
+_0803E374:
+ movs r3, 0
+ str r3, [sp, 0x18]
+_0803E378:
+ ldr r4, [sp, 0x18]
+ cmp r4, 0x5
+ bls _0803E382
+ bl _0803F14C
+_0803E382:
+ lsls r0, r4, 2
+ ldr r1, _0803E38C @ =_0803E390
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0803E38C: .4byte _0803E390
+ .align 2, 0
+_0803E390:
+ .4byte _0803E3A8
+ .4byte _0803E474
+ .4byte _0803E508
+ .4byte _0803E59C
+ .4byte _0803E77C
+ .4byte _0803EE1E
+_0803E3A8:
+ ldr r5, [sp, 0x20]
+ ldr r0, [sp, 0x18]
+ adds r2, r5, r0
+ ldrb r1, [r2]
+ movs r0, 0x80
+ ands r0, r1
+ adds r6, r2, 0
+ cmp r0, 0
+ beq _0803E3F0
+ ldr r0, _0803E460 @ =gMain
+ ldr r1, _0803E464 @ =0x0000043d
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0803E3F0
+ ldr r2, [sp, 0x34]
+ cmp r2, 0x4
+ beq _0803E3F0
+ ldr r1, _0803E468 @ =gBattleMons
+ movs r0, 0x58
+ muls r0, r2
+ adds r1, 0x50
+ adds r2, r0, r1
+ ldr r1, [r2]
+ movs r0, 0xF0
+ lsls r0, 12
+ ands r0, r1
+ cmp r0, 0
+ beq _0803E3F0
+ ldr r0, _0803E46C @ =0xfff0ffff
+ ands r1, r0
+ str r1, [r2]
+ movs r3, 0
+ str r3, [sp, 0x1C]
+_0803E3F0:
+ ldrb r1, [r6]
+ movs r0, 0x30
+ ands r0, r1
+ cmp r0, 0
+ beq _0803E41E
+ ldr r1, _0803E468 @ =gBattleMons
+ ldr r0, _0803E470 @ =gUnknown_02024A60
+ ldrb r2, [r0]
+ movs r0, 0x58
+ muls r0, r2
+ adds r1, 0x50
+ adds r2, r0, r1
+ ldr r1, [r2]
+ movs r3, 0x80
+ lsls r3, 13
+ adds r0, r1, 0
+ ands r0, r3
+ cmp r0, 0
+ bne _0803E41E
+ orrs r1, r3
+ str r1, [r2]
+ movs r4, 0
+ str r4, [sp, 0x1C]
+_0803E41E:
+ ldrb r0, [r6]
+ movs r3, 0xF
+ ands r3, r0
+ cmp r3, 0
+ bne _0803E42C
+ bl _0803F14C
+_0803E42C:
+ ldr r6, _0803E468 @ =gBattleMons
+ ldr r5, _0803E470 @ =gUnknown_02024A60
+ ldrb r0, [r5]
+ movs r4, 0x58
+ muls r0, r4
+ adds r1, r0, r6
+ ldrb r2, [r1, 0x19]
+ movs r0, 0x19
+ ldrsb r0, [r1, r0]
+ cmp r0, 0xB
+ ble _0803E446
+ bl _0803F14C
+_0803E446:
+ adds r0, r2, r3
+ strb r0, [r1, 0x19]
+ ldrb r0, [r5]
+ muls r0, r4
+ adds r1, r0, r6
+ movs r0, 0x19
+ ldrsb r0, [r1, r0]
+ cmp r0, 0xC
+ bgt _0803E45A
+ b _0803E74E
+_0803E45A:
+ movs r0, 0xC
+ strb r0, [r1, 0x19]
+ b _0803E74E
+ .align 2, 0
+_0803E460: .4byte gMain
+_0803E464: .4byte 0x0000043d
+_0803E468: .4byte gBattleMons
+_0803E46C: .4byte 0xfff0ffff
+_0803E470: .4byte gUnknown_02024A60
+_0803E474:
+ ldr r0, [sp, 0x20]
+ ldr r1, [sp, 0x18]
+ adds r2, r0, r1
+ ldrb r1, [r2]
+ movs r0, 0xF0
+ ands r0, r1
+ lsls r3, r0, 24
+ adds r6, r2, 0
+ cmp r3, 0
+ beq _0803E4BA
+ ldr r7, _0803E500 @ =gBattleMons
+ ldr r5, _0803E504 @ =gUnknown_02024A60
+ ldrb r0, [r5]
+ movs r4, 0x58
+ muls r0, r4
+ adds r1, r0, r7
+ ldrb r2, [r1, 0x1A]
+ movs r0, 0x1A
+ ldrsb r0, [r1, r0]
+ cmp r0, 0xB
+ bgt _0803E4BA
+ lsrs r0, r3, 28
+ adds r0, r2, r0
+ strb r0, [r1, 0x1A]
+ ldrb r0, [r5]
+ muls r0, r4
+ adds r1, r0, r7
+ movs r0, 0x1A
+ ldrsb r0, [r1, r0]
+ cmp r0, 0xC
+ ble _0803E4B6
+ movs r0, 0xC
+ strb r0, [r1, 0x1A]
+_0803E4B6:
+ movs r2, 0
+ str r2, [sp, 0x1C]
+_0803E4BA:
+ ldrb r0, [r6]
+ movs r3, 0xF
+ ands r3, r0
+ cmp r3, 0
+ bne _0803E4C8
+ bl _0803F14C
+_0803E4C8:
+ ldr r6, _0803E500 @ =gBattleMons
+ ldr r5, _0803E504 @ =gUnknown_02024A60
+ ldrb r0, [r5]
+ movs r4, 0x58
+ muls r0, r4
+ adds r1, r0, r6
+ ldrb r2, [r1, 0x1B]
+ movs r0, 0x1B
+ ldrsb r0, [r1, r0]
+ cmp r0, 0xB
+ ble _0803E4E2
+ bl _0803F14C
+_0803E4E2:
+ adds r0, r2, r3
+ strb r0, [r1, 0x1B]
+ ldrb r0, [r5]
+ muls r0, r4
+ adds r1, r0, r6
+ movs r0, 0x1B
+ ldrsb r0, [r1, r0]
+ cmp r0, 0xC
+ ble _0803E4F8
+ movs r0, 0xC
+ strb r0, [r1, 0x1B]
+_0803E4F8:
+ movs r3, 0
+ str r3, [sp, 0x1C]
+ bl _0803F14C
+ .align 2, 0
+_0803E500: .4byte gBattleMons
+_0803E504: .4byte gUnknown_02024A60
+_0803E508:
+ ldr r4, [sp, 0x20]
+ ldr r5, [sp, 0x18]
+ adds r2, r4, r5
+ ldrb r1, [r2]
+ movs r0, 0xF0
+ ands r0, r1
+ lsls r3, r0, 24
+ adds r6, r2, 0
+ cmp r3, 0
+ beq _0803E54E
+ ldr r7, _0803E594 @ =gBattleMons
+ ldr r5, _0803E598 @ =gUnknown_02024A60
+ ldrb r0, [r5]
+ movs r4, 0x58
+ muls r0, r4
+ adds r1, r0, r7
+ ldrb r2, [r1, 0x1E]
+ movs r0, 0x1E
+ ldrsb r0, [r1, r0]
+ cmp r0, 0xB
+ bgt _0803E54E
+ lsrs r0, r3, 28
+ adds r0, r2, r0
+ strb r0, [r1, 0x1E]
+ ldrb r0, [r5]
+ muls r0, r4
+ adds r1, r0, r7
+ movs r0, 0x1E
+ ldrsb r0, [r1, r0]
+ cmp r0, 0xC
+ ble _0803E54A
+ movs r0, 0xC
+ strb r0, [r1, 0x1E]
+_0803E54A:
+ movs r0, 0
+ str r0, [sp, 0x1C]
+_0803E54E:
+ ldrb r0, [r6]
+ movs r3, 0xF
+ ands r3, r0
+ cmp r3, 0
+ bne _0803E55C
+ bl _0803F14C
+_0803E55C:
+ ldr r6, _0803E594 @ =gBattleMons
+ ldr r5, _0803E598 @ =gUnknown_02024A60
+ ldrb r0, [r5]
+ movs r4, 0x58
+ muls r0, r4
+ adds r1, r0, r6
+ ldrb r2, [r1, 0x1C]
+ movs r0, 0x1C
+ ldrsb r0, [r1, r0]
+ cmp r0, 0xB
+ ble _0803E576
+ bl _0803F14C
+_0803E576:
+ adds r0, r2, r3
+ strb r0, [r1, 0x1C]
+ ldrb r0, [r5]
+ muls r0, r4
+ adds r1, r0, r6
+ movs r0, 0x1C
+ ldrsb r0, [r1, r0]
+ cmp r0, 0xC
+ ble _0803E58C
+ movs r0, 0xC
+ strb r0, [r1, 0x1C]
+_0803E58C:
+ movs r1, 0
+ str r1, [sp, 0x1C]
+ bl _0803F14C
+ .align 2, 0
+_0803E594: .4byte gBattleMons
+_0803E598: .4byte gUnknown_02024A60
+_0803E59C:
+ ldr r3, [sp, 0x20]
+ ldr r4, [sp, 0x18]
+ adds r2, r3, r4
+ ldrb r1, [r2]
+ movs r0, 0x80
+ ands r0, r1
+ adds r6, r2, 0
+ cmp r0, 0
+ beq _0803E5E4
+ ldr r5, _0803E758 @ =gUnknown_02024C80
+ ldr r4, _0803E75C @ =gUnknown_02024A60
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ ldrb r0, [r1, 0x2]
+ cmp r0, 0
+ bne _0803E5E4
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ movs r0, 0x5
+ strb r0, [r1, 0x2]
+ movs r5, 0
+ str r5, [sp, 0x1C]
+_0803E5E4:
+ ldrb r1, [r6]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0803E646
+ mov r0, r8
+ movs r1, 0x38
+ movs r2, 0
+ bl GetMonData
+ cmp r0, 0x64
+ beq _0803E646
+ ldr r5, _0803E760 @ =gExperienceTables
+ mov r0, r8
+ movs r1, 0x38
+ movs r2, 0
+ bl GetMonData
+ adds r4, r0, 0
+ mov r0, r8
+ movs r1, 0xB
+ movs r2, 0
+ bl GetMonData
+ adds r4, 0x1
+ lsls r4, 2
+ ldr r2, _0803E764 @ =gBaseStats
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldrb r1, [r1, 0x13]
+ movs r0, 0xCA
+ lsls r0, 1
+ muls r0, r1
+ adds r4, r0
+ adds r4, r5
+ ldr r0, [r4]
+ str r0, [sp]
+ mov r0, r8
+ movs r1, 0x19
+ mov r2, sp
+ bl SetMonData
+ mov r0, r8
+ bl CalculateMonStats
+ movs r0, 0
+ str r0, [sp, 0x1C]
+_0803E646:
+ ldrb r1, [r6]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _0803E682
+ mov r0, r8
+ ldr r1, [sp, 0xC]
+ movs r2, 0x7
+ ldr r3, [sp, 0x34]
+ bl HealStatusConditions
+ lsls r0, 24
+ cmp r0, 0
+ bne _0803E682
+ ldr r1, [sp, 0x34]
+ cmp r1, 0x4
+ beq _0803E67E
+ ldr r1, _0803E768 @ =gBattleMons
+ movs r0, 0x58
+ ldr r3, [sp, 0x34]
+ adds r2, r3, 0
+ muls r2, r0
+ adds r1, 0x50
+ adds r2, r1
+ ldr r0, [r2]
+ ldr r1, _0803E76C @ =0xf7ffffff
+ ands r0, r1
+ str r0, [r2]
+_0803E67E:
+ movs r4, 0
+ str r4, [sp, 0x1C]
+_0803E682:
+ ldrb r1, [r6]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _0803E6A2
+ ldr r2, _0803E770 @ =0x00000f88
+ mov r0, r8
+ ldr r1, [sp, 0xC]
+ ldr r3, [sp, 0x34]
+ bl HealStatusConditions
+ lsls r0, 24
+ cmp r0, 0
+ bne _0803E6A2
+ movs r5, 0
+ str r5, [sp, 0x1C]
+_0803E6A2:
+ ldrb r1, [r6]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _0803E6C2
+ mov r0, r8
+ ldr r1, [sp, 0xC]
+ movs r2, 0x10
+ ldr r3, [sp, 0x34]
+ bl HealStatusConditions
+ lsls r0, 24
+ cmp r0, 0
+ bne _0803E6C2
+ movs r0, 0
+ str r0, [sp, 0x1C]
+_0803E6C2:
+ ldrb r1, [r6]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _0803E6E2
+ mov r0, r8
+ ldr r1, [sp, 0xC]
+ movs r2, 0x20
+ ldr r3, [sp, 0x34]
+ bl HealStatusConditions
+ lsls r0, 24
+ cmp r0, 0
+ bne _0803E6E2
+ movs r1, 0
+ str r1, [sp, 0x1C]
+_0803E6E2:
+ ldrb r1, [r6]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0803E702
+ mov r0, r8
+ ldr r1, [sp, 0xC]
+ movs r2, 0x40
+ ldr r3, [sp, 0x34]
+ bl HealStatusConditions
+ lsls r0, 24
+ cmp r0, 0
+ bne _0803E702
+ movs r2, 0
+ str r2, [sp, 0x1C]
+_0803E702:
+ ldrb r1, [r6]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _0803E710
+ bl _0803F14C
+_0803E710:
+ ldr r0, _0803E774 @ =gMain
+ ldr r3, _0803E778 @ =0x0000043d
+ adds r0, r3
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ bne _0803E724
+ bl _0803F14C
+_0803E724:
+ ldr r4, [sp, 0x34]
+ cmp r4, 0x4
+ bne _0803E72E
+ bl _0803F14C
+_0803E72E:
+ ldr r1, _0803E768 @ =gBattleMons
+ movs r0, 0x58
+ muls r0, r4
+ adds r1, 0x50
+ adds r2, r0, r1
+ ldr r1, [r2]
+ movs r0, 0x7
+ ands r0, r1
+ cmp r0, 0
+ bne _0803E746
+ bl _0803F14C
+_0803E746:
+ movs r0, 0x8
+ negs r0, r0
+ ands r1, r0
+ str r1, [r2]
+_0803E74E:
+ movs r5, 0
+ str r5, [sp, 0x1C]
+ bl _0803F14C
+ .align 2, 0
+_0803E758: .4byte gUnknown_02024C80
+_0803E75C: .4byte gUnknown_02024A60
+_0803E760: .4byte gExperienceTables
+_0803E764: .4byte gBaseStats
+_0803E768: .4byte gBattleMons
+_0803E76C: .4byte 0xf7ffffff
+_0803E770: .4byte 0x00000f88
+_0803E774: .4byte gMain
+_0803E778: .4byte 0x0000043d
+_0803E77C:
+ ldr r1, [sp, 0x20]
+ ldr r2, [sp, 0x18]
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ mov r10, r0
+ movs r0, 0x20
+ mov r3, r10
+ ands r0, r3
+ cmp r0, 0
+ beq _0803E854
+ movs r0, 0xDF
+ ands r3, r0
+ mov r10, r3
+ mov r0, r8
+ movs r1, 0x15
+ movs r2, 0
+ bl GetMonData
+ ldr r1, _0803E880 @ =gUnknown_08208238
+ ldr r4, [sp, 0x10]
+ adds r1, r4, r1
+ ldrb r1, [r1]
+ ands r0, r1
+ lsls r1, r4, 1
+ lsrs r0, r1
+ str r0, [sp]
+ adds r5, r4, 0
+ adds r5, 0xD
+ mov r0, r8
+ adds r1, r5, 0
+ movs r2, 0
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ mov r0, r8
+ movs r1, 0x15
+ movs r2, 0
+ bl GetMonData
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ ldr r2, [sp, 0x10]
+ bl CalculatePPWithBonus
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x28]
+ ldr r0, [sp]
+ cmp r0, 0x2
+ bhi _0803E854
+ ldr r0, [sp, 0x28]
+ cmp r0, 0x4
+ bls _0803E854
+ mov r0, r8
+ movs r1, 0x15
+ movs r2, 0
+ bl GetMonData
+ ldr r1, _0803E884 @ =gUnknown_08208240
+ ldr r2, [sp, 0x10]
+ adds r1, r2, r1
+ ldrb r1, [r1]
+ adds r0, r1
+ str r0, [sp]
+ mov r0, r8
+ movs r1, 0x15
+ mov r2, sp
+ bl SetMonData
+ mov r0, r8
+ adds r1, r5, 0
+ movs r2, 0
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r1, [sp]
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r2, [sp, 0x10]
+ bl CalculatePPWithBonus
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, [sp, 0x28]
+ subs r0, r3
+ str r0, [sp]
+ ldr r4, [sp, 0x10]
+ adds r4, 0x11
+ mov r0, r8
+ adds r1, r4, 0
+ movs r2, 0
+ bl GetMonData
+ ldr r1, [sp]
+ adds r0, r1
+ str r0, [sp]
+ mov r0, r8
+ adds r1, r4, 0
+ mov r2, sp
+ bl SetMonData
+ movs r4, 0
+ str r4, [sp, 0x1C]
+_0803E854:
+ movs r5, 0
+ str r5, [sp, 0x28]
+ mov r0, r10
+ cmp r0, 0
+ bne _0803E862
+ bl _0803F14C
+_0803E862:
+ movs r0, 0x1
+ mov r1, r10
+ ands r0, r1
+ cmp r0, 0
+ bne _0803E86E
+ b _0803EE0A
+_0803E86E:
+ ldr r2, [sp, 0x28]
+ cmp r2, 0x7
+ bls _0803E876
+ b _0803EE0A
+_0803E876:
+ lsls r0, r2, 2
+ ldr r1, _0803E888 @ =_0803E88C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0803E880: .4byte gUnknown_08208238
+_0803E884: .4byte gUnknown_08208240
+_0803E888: .4byte _0803E88C
+ .align 2, 0
+_0803E88C:
+ .4byte _0803E8AC
+ .4byte _0803E8AC
+ .4byte _0803E934
+ .4byte _0803EB5C
+ .4byte _0803EE0A
+ .4byte _0803EE0A
+ .4byte _0803EE0A
+ .4byte _0803EDF4
+_0803E8AC:
+ mov r0, r8
+ bl GetMonEVCount
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldr r0, _0803E8EC @ =0x000001fd
+ cmp r5, r0
+ bls _0803E8BE
+ b _0803E36C
+_0803E8BE:
+ ldr r0, _0803E8F0 @ =gUnknown_082082F2
+ ldr r3, [sp, 0x28]
+ adds r0, r3, r0
+ ldrb r1, [r0]
+ mov r0, r8
+ movs r2, 0
+ bl GetMonData
+ adds r1, r0, 0
+ str r1, [sp]
+ cmp r1, 0x63
+ bls _0803E8D8
+ b _0803EE0A
+_0803E8D8:
+ ldr r4, [sp, 0x20]
+ ldr r2, [sp, 0x24]
+ adds r0, r4, r2
+ ldrb r0, [r0]
+ adds r1, r0
+ cmp r1, 0x64
+ bls _0803E8F4
+ adds r0, 0x64
+ subs r4, r0, r1
+ b _0803E8F6
+ .align 2, 0
+_0803E8EC: .4byte 0x000001fd
+_0803E8F0: .4byte gUnknown_082082F2
+_0803E8F4:
+ adds r4, r0, 0
+_0803E8F6:
+ adds r1, r5, r4
+ movs r0, 0xFF
+ lsls r0, 1
+ cmp r1, r0
+ bls _0803E904
+ adds r0, r4, r0
+ subs r4, r0, r1
+_0803E904:
+ ldr r0, [sp]
+ adds r0, r4
+ str r0, [sp]
+ ldr r0, _0803E930 @ =gUnknown_082082F2
+ ldr r3, [sp, 0x28]
+ adds r0, r3, r0
+ ldrb r1, [r0]
+ mov r0, r8
+ mov r2, sp
+ bl SetMonData
+ mov r0, r8
+ bl CalculateMonStats
+ ldr r0, [sp, 0x24]
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x24]
+ movs r4, 0
+ str r4, [sp, 0x1C]
+ b _0803EE0A
+ .align 2, 0
+_0803E930: .4byte gUnknown_082082F2
+_0803E934:
+ movs r0, 0x10
+ mov r5, r10
+ ands r0, r5
+ cmp r0, 0
+ beq _0803E9F4
+ mov r0, r8
+ movs r1, 0x39
+ movs r2, 0
+ bl GetMonData
+ cmp r0, 0
+ beq _0803E954
+ ldr r0, [sp, 0x24]
+ adds r0, 0x1
+ lsls r0, 24
+ b _0803EC9E
+_0803E954:
+ ldr r0, _0803E99C @ =gMain
+ ldr r1, _0803E9A0 @ =0x0000043d
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r4, 0x2
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0803EA0A
+ ldr r2, [sp, 0x34]
+ cmp r2, 0x4
+ beq _0803E9B4
+ ldr r2, _0803E9A4 @ =gUnknown_02024C0C
+ ldr r1, _0803E9A8 @ =gBitTable
+ ldr r3, [sp, 0x34]
+ lsls r0, r3, 2
+ adds r0, r1
+ ldr r1, [r0]
+ ldrb r0, [r2]
+ bics r0, r1
+ strb r0, [r2]
+ ldr r1, _0803E9AC @ =gUnknown_02024A6A
+ lsls r0, r3, 1
+ adds r0, r1
+ ldrb r0, [r0]
+ bl pokemon_order_func
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r0, [sp, 0x34]
+ bl CopyPlayerPartyMonToBattleData
+ ldr r0, _0803E9B0 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ b _0803E9CC
+ .align 2, 0
+_0803E99C: .4byte gMain
+_0803E9A0: .4byte 0x0000043d
+_0803E9A4: .4byte gUnknown_02024C0C
+_0803E9A8: .4byte gBitTable
+_0803E9AC: .4byte gUnknown_02024A6A
+_0803E9B0: .4byte gUnknown_02024A60
+_0803E9B4:
+ ldr r3, _0803E9E4 @ =gUnknown_02024C0C
+ ldr r1, _0803E9E8 @ =gBitTable
+ ldr r2, _0803E9EC @ =gUnknown_02024A60
+ ldrb r0, [r2]
+ eors r0, r4
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, [r0]
+ ldrb r0, [r3]
+ bics r0, r1
+ strb r0, [r3]
+ ldrb r0, [r2]
+_0803E9CC:
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _0803EA0A
+ ldr r1, _0803E9F0 @ =gUnknown_030042E0
+ ldrb r0, [r1, 0x4]
+ cmp r0, 0xFE
+ bhi _0803EA0A
+ adds r0, 0x1
+ strb r0, [r1, 0x4]
+ b _0803EA0A
+ .align 2, 0
+_0803E9E4: .4byte gUnknown_02024C0C
+_0803E9E8: .4byte gBitTable
+_0803E9EC: .4byte gUnknown_02024A60
+_0803E9F0: .4byte gUnknown_030042E0
+_0803E9F4:
+ mov r0, r8
+ movs r1, 0x39
+ movs r2, 0
+ bl GetMonData
+ cmp r0, 0
+ bne _0803EA0A
+ ldr r0, [sp, 0x24]
+ adds r0, 0x1
+ lsls r0, 24
+ b _0803EC9E
+_0803EA0A:
+ ldr r1, [sp, 0x24]
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x24]
+ ldr r4, [sp, 0x20]
+ adds r1, r4, r1
+ ldrb r1, [r1]
+ str r1, [sp]
+ adds r0, r1, 0
+ cmp r0, 0xFE
+ beq _0803EA4C
+ cmp r0, 0xFE
+ bhi _0803EA2C
+ cmp r0, 0xFD
+ beq _0803EA62
+ b _0803EA6C
+_0803EA2C:
+ cmp r1, 0xFF
+ bne _0803EA6C
+ mov r0, r8
+ movs r1, 0x3A
+ movs r2, 0
+ bl GetMonData
+ adds r4, r0, 0
+ mov r0, r8
+ movs r1, 0x39
+ movs r2, 0
+ bl GetMonData
+ subs r4, r0
+ str r4, [sp]
+ b _0803EA6C
+_0803EA4C:
+ mov r0, r8
+ movs r1, 0x3A
+ movs r2, 0
+ bl GetMonData
+ lsrs r0, 1
+ str r0, [sp]
+ cmp r0, 0
+ bne _0803EA6C
+ movs r0, 0x1
+ b _0803EA6A
+_0803EA62:
+ ldr r0, _0803EB24 @ =0x02000000
+ ldr r5, _0803EB28 @ =0x000160fa
+ adds r0, r5
+ ldrb r0, [r0]
+_0803EA6A:
+ str r0, [sp]
+_0803EA6C:
+ mov r0, r8
+ movs r1, 0x3A
+ movs r2, 0
+ bl GetMonData
+ adds r4, r0, 0
+ mov r0, r8
+ movs r1, 0x39
+ movs r2, 0
+ bl GetMonData
+ cmp r4, r0
+ beq _0803EB4C
+ ldr r0, [sp, 0x14]
+ cmp r0, 0
+ bne _0803EB40
+ mov r0, r8
+ movs r1, 0x39
+ movs r2, 0
+ bl GetMonData
+ ldr r1, [sp]
+ adds r0, r1
+ str r0, [sp]
+ mov r0, r8
+ movs r1, 0x3A
+ movs r2, 0
+ bl GetMonData
+ ldr r1, [sp]
+ cmp r1, r0
+ bls _0803EAB8
+ mov r0, r8
+ movs r1, 0x3A
+ movs r2, 0
+ bl GetMonData
+ str r0, [sp]
+_0803EAB8:
+ mov r0, r8
+ movs r1, 0x39
+ mov r2, sp
+ bl SetMonData
+ ldr r0, _0803EB2C @ =gMain
+ ldr r1, _0803EB30 @ =0x0000043d
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0803EB48
+ ldr r2, [sp, 0x34]
+ cmp r2, 0x4
+ beq _0803EB48
+ ldr r1, _0803EB34 @ =gBattleMons
+ movs r0, 0x58
+ muls r0, r2
+ adds r0, r1
+ ldr r1, [sp]
+ strh r1, [r0, 0x28]
+ movs r0, 0x10
+ mov r3, r10
+ ands r0, r3
+ cmp r0, 0
+ bne _0803EB48
+ ldr r4, _0803EB38 @ =gUnknown_02024A60
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _0803EB48
+ ldr r1, _0803EB3C @ =gUnknown_030042E0
+ ldrb r0, [r1, 0x3]
+ cmp r0, 0xFE
+ bhi _0803EB08
+ adds r0, 0x1
+ strb r0, [r1, 0x3]
+_0803EB08:
+ ldrb r5, [r4]
+ add r0, sp, 0x34
+ ldrb r0, [r0]
+ strb r0, [r4]
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0
+ bl dp01_build_cmdbuf_x00_a_b_0
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+ strb r5, [r4]
+ b _0803EB48
+ .align 2, 0
+_0803EB24: .4byte 0x02000000
+_0803EB28: .4byte 0x000160fa
+_0803EB2C: .4byte gMain
+_0803EB30: .4byte 0x0000043d
+_0803EB34: .4byte gBattleMons
+_0803EB38: .4byte gUnknown_02024A60
+_0803EB3C: .4byte gUnknown_030042E0
+_0803EB40:
+ ldr r1, _0803EB58 @ =gUnknown_02024BEC
+ ldr r0, [sp]
+ negs r0, r0
+ str r0, [r1]
+_0803EB48:
+ movs r1, 0
+ str r1, [sp, 0x1C]
+_0803EB4C:
+ movs r0, 0xEF
+ mov r2, r10
+ ands r2, r0
+ mov r10, r2
+ b _0803EE0A
+ .align 2, 0
+_0803EB58: .4byte gUnknown_02024BEC
+_0803EB5C:
+ movs r7, 0x2
+ mov r0, r10
+ ands r0, r7
+ cmp r0, 0
+ beq _0803EB68
+ b _0803ECB8
+_0803EB68:
+ movs r5, 0
+ ldr r3, [sp, 0x24]
+ adds r3, 0x1
+ str r3, [sp, 0x38]
+_0803EB70:
+ movs r4, 0x11
+ adds r4, r5
+ mov r9, r4
+ mov r0, r8
+ mov r1, r9
+ movs r2, 0
+ bl GetMonData
+ str r0, [sp]
+ adds r7, r5, 0
+ adds r7, 0xD
+ mov r0, r8
+ adds r1, r7, 0
+ movs r2, 0
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ mov r0, r8
+ movs r1, 0x15
+ movs r2, 0
+ bl GetMonData
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r0, r5, 24
+ lsrs r6, r0, 24
+ adds r0, r4, 0
+ adds r2, r6, 0
+ bl CalculatePPWithBonus
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, [sp]
+ cmp r1, r0
+ beq _0803EC92
+ ldr r2, [sp, 0x20]
+ ldr r3, [sp, 0x24]
+ adds r0, r2, r3
+ ldrb r0, [r0]
+ adds r0, r1, r0
+ str r0, [sp]
+ mov r0, r8
+ adds r1, r7, 0
+ movs r2, 0
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ mov r0, r8
+ movs r1, 0x15
+ movs r2, 0
+ bl GetMonData
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ adds r2, r6, 0
+ bl CalculatePPWithBonus
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, [sp]
+ cmp r1, r0
+ bls _0803EC28
+ mov r0, r8
+ adds r1, r7, 0
+ movs r2, 0
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ mov r0, r8
+ movs r1, 0x15
+ movs r2, 0
+ bl GetMonData
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ adds r2, r6, 0
+ bl CalculatePPWithBonus
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp]
+_0803EC28:
+ mov r0, r8
+ mov r1, r9
+ mov r2, sp
+ bl SetMonData
+ ldr r0, _0803ECA4 @ =gMain
+ ldr r4, _0803ECA8 @ =0x0000043d
+ adds r0, r4
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0803EC8E
+ ldr r0, [sp, 0x34]
+ cmp r0, 0x4
+ beq _0803EC8E
+ ldr r4, _0803ECAC @ =gBattleMons
+ movs r0, 0x58
+ ldr r1, [sp, 0x34]
+ adds r3, r1, 0
+ muls r3, r0
+ adds r0, r4, 0
+ adds r0, 0x50
+ adds r0, r3, r0
+ ldr r1, [r0]
+ movs r0, 0x80
+ lsls r0, 14
+ ands r1, r0
+ cmp r1, 0
+ bne _0803EC8E
+ ldr r1, _0803ECB0 @ =gUnknown_02024CA8
+ ldr r2, [sp, 0x34]
+ lsls r0, r2, 3
+ subs r0, r2
+ lsls r0, 2
+ adds r0, r1
+ ldrb r1, [r0, 0x18]
+ lsrs r1, 4
+ ldr r2, _0803ECB4 @ =gBitTable
+ lsls r0, r5, 2
+ adds r0, r2
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ bne _0803EC8E
+ adds r0, r5, r3
+ adds r1, r4, 0
+ adds r1, 0x24
+ adds r0, r1
+ ldr r1, [sp]
+ strb r1, [r0]
+_0803EC8E:
+ movs r3, 0
+ str r3, [sp, 0x1C]
+_0803EC92:
+ adds r5, 0x1
+ cmp r5, 0x3
+ bgt _0803EC9A
+ b _0803EB70
+_0803EC9A:
+ ldr r4, [sp, 0x38]
+ lsls r0, r4, 24
+_0803EC9E:
+ lsrs r0, 24
+ str r0, [sp, 0x24]
+ b _0803EE0A
+ .align 2, 0
+_0803ECA4: .4byte gMain
+_0803ECA8: .4byte 0x0000043d
+_0803ECAC: .4byte gBattleMons
+_0803ECB0: .4byte gUnknown_02024CA8
+_0803ECB4: .4byte gBitTable
+_0803ECB8:
+ ldr r6, [sp, 0x10]
+ adds r6, 0x11
+ mov r0, r8
+ adds r1, r6, 0
+ movs r2, 0
+ bl GetMonData
+ str r0, [sp]
+ ldr r5, [sp, 0x10]
+ adds r5, 0xD
+ mov r0, r8
+ adds r1, r5, 0
+ movs r2, 0
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ mov r0, r8
+ movs r1, 0x15
+ movs r2, 0
+ bl GetMonData
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ ldr r2, [sp, 0x10]
+ bl CalculatePPWithBonus
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, [sp]
+ cmp r2, r0
+ bne _0803ED00
+ b _0803EE0A
+_0803ED00:
+ ldr r1, [sp, 0x24]
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x24]
+ ldr r0, [sp, 0x20]
+ adds r1, r0, r1
+ ldrb r0, [r1]
+ adds r0, r2, r0
+ str r0, [sp]
+ mov r0, r8
+ adds r1, r5, 0
+ movs r2, 0
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ mov r0, r8
+ movs r1, 0x15
+ movs r2, 0
+ bl GetMonData
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ ldr r2, [sp, 0x10]
+ bl CalculatePPWithBonus
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, [sp]
+ cmp r1, r0
+ bls _0803ED74
+ mov r0, r8
+ adds r1, r5, 0
+ movs r2, 0
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ mov r0, r8
+ movs r1, 0x15
+ movs r2, 0
+ bl GetMonData
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ ldr r2, [sp, 0x10]
+ bl CalculatePPWithBonus
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp]
+_0803ED74:
+ mov r0, r8
+ adds r1, r6, 0
+ mov r2, sp
+ bl SetMonData
+ ldr r0, _0803EDE0 @ =gMain
+ ldr r1, _0803EDE4 @ =0x0000043d
+ adds r0, r1
+ ldrb r1, [r0]
+ adds r0, r7, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0803EDD8
+ ldr r2, [sp, 0x34]
+ cmp r2, 0x4
+ beq _0803EDD8
+ ldr r4, _0803EDE8 @ =gBattleMons
+ movs r0, 0x58
+ adds r3, r2, 0
+ muls r3, r0
+ adds r0, r4, 0
+ adds r0, 0x50
+ adds r0, r3, r0
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 14
+ ands r0, r1
+ cmp r0, 0
+ bne _0803EDD8
+ ldr r1, _0803EDEC @ =gUnknown_02024CA8
+ lsls r0, r2, 3
+ subs r0, r2
+ lsls r0, 2
+ adds r0, r1
+ ldrb r1, [r0, 0x18]
+ lsrs r1, 4
+ ldr r2, _0803EDF0 @ =gBitTable
+ ldr r5, [sp, 0x10]
+ lsls r0, r5, 2
+ adds r0, r2
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ bne _0803EDD8
+ adds r0, r5, r3
+ adds r1, r4, 0
+ adds r1, 0x24
+ adds r0, r1
+ ldr r1, [sp]
+ strb r1, [r0]
+_0803EDD8:
+ movs r0, 0
+ str r0, [sp, 0x1C]
+ b _0803EE0A
+ .align 2, 0
+_0803EDE0: .4byte gMain
+_0803EDE4: .4byte 0x0000043d
+_0803EDE8: .4byte gBattleMons
+_0803EDEC: .4byte gUnknown_02024CA8
+_0803EDF0: .4byte gBitTable
+_0803EDF4:
+ mov r0, r8
+ movs r1, 0x2
+ ldr r2, [sp, 0x8]
+ bl GetEvolutionTargetSpecies
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0
+ beq _0803EE0A
+ bl _0803E35C
+_0803EE0A:
+ ldr r1, [sp, 0x28]
+ adds r1, 0x1
+ str r1, [sp, 0x28]
+ mov r2, r10
+ lsrs r2, 1
+ mov r10, r2
+ cmp r2, 0
+ beq _0803EE1C
+ b _0803E862
+_0803EE1C:
+ b _0803F14C
+_0803EE1E:
+ ldr r3, [sp, 0x20]
+ ldr r4, [sp, 0x18]
+ adds r0, r3, r4
+ ldrb r0, [r0]
+ mov r10, r0
+ movs r5, 0
+ str r5, [sp, 0x28]
+ cmp r0, 0
+ bne _0803EE32
+ b _0803F14C
+_0803EE32:
+ movs r0, 0x1
+ mov r1, r10
+ ands r0, r1
+ cmp r0, 0
+ bne _0803EE3E
+ b _0803F13A
+_0803EE3E:
+ ldr r2, [sp, 0x28]
+ cmp r2, 0x7
+ bls _0803EE46
+ b _0803F13A
+_0803EE46:
+ lsls r0, r2, 2
+ ldr r1, _0803EE50 @ =_0803EE54
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0803EE50: .4byte _0803EE54
+ .align 2, 0
+_0803EE54:
+ .4byte _0803EE74
+ .4byte _0803EE74
+ .4byte _0803EE74
+ .4byte _0803EE74
+ .4byte _0803EEF8
+ .4byte _0803EFCC
+ .4byte _0803F026
+ .4byte _0803F07C
+_0803EE74:
+ mov r0, r8
+ bl GetMonEVCount
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldr r0, _0803EEBC @ =0x000001fd
+ cmp r5, r0
+ bls _0803EE88
+ bl _0803E36C
+_0803EE88:
+ ldr r0, _0803EEC0 @ =gUnknown_082082F2
+ ldr r4, [sp, 0x28]
+ adds r4, 0x2
+ adds r0, r4, r0
+ ldrb r1, [r0]
+ mov r0, r8
+ movs r2, 0
+ bl GetMonData
+ adds r1, r0, 0
+ str r1, [sp]
+ adds r2, r4, 0
+ cmp r1, 0x63
+ bls _0803EEA6
+ b _0803F13A
+_0803EEA6:
+ ldr r3, [sp, 0x20]
+ ldr r4, [sp, 0x24]
+ adds r0, r3, r4
+ ldrb r0, [r0]
+ adds r1, r0
+ cmp r1, 0x64
+ bls _0803EEC4
+ adds r0, 0x64
+ subs r4, r0, r1
+ b _0803EEC6
+ .align 2, 0
+_0803EEBC: .4byte 0x000001fd
+_0803EEC0: .4byte gUnknown_082082F2
+_0803EEC4:
+ adds r4, r0, 0
+_0803EEC6:
+ adds r1, r5, r4
+ movs r0, 0xFF
+ lsls r0, 1
+ cmp r1, r0
+ bls _0803EED4
+ adds r0, r4, r0
+ subs r4, r0, r1
+_0803EED4:
+ ldr r0, [sp]
+ adds r0, r4
+ str r0, [sp]
+ ldr r0, _0803EEF4 @ =gUnknown_082082F2
+ adds r0, r2, r0
+ ldrb r1, [r0]
+ mov r0, r8
+ mov r2, sp
+ bl SetMonData
+ mov r0, r8
+ bl CalculateMonStats
+ movs r5, 0
+ str r5, [sp, 0x1C]
+ b _0803F130
+ .align 2, 0
+_0803EEF4: .4byte gUnknown_082082F2
+_0803EEF8:
+ mov r0, r8
+ movs r1, 0x15
+ movs r2, 0
+ bl GetMonData
+ ldr r1, _0803EFC0 @ =gUnknown_08208238
+ ldr r2, [sp, 0x10]
+ adds r1, r2, r1
+ ldrb r1, [r1]
+ ands r0, r1
+ lsls r1, r2, 1
+ lsrs r0, r1
+ str r0, [sp]
+ cmp r0, 0x2
+ bls _0803EF18
+ b _0803F13A
+_0803EF18:
+ adds r5, r2, 0
+ adds r5, 0xD
+ mov r0, r8
+ adds r1, r5, 0
+ movs r2, 0
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ mov r0, r8
+ movs r1, 0x15
+ movs r2, 0
+ bl GetMonData
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ ldr r2, [sp, 0x10]
+ bl CalculatePPWithBonus
+ lsls r0, 24
+ lsrs r4, r0, 24
+ mov r0, r8
+ movs r1, 0x15
+ movs r2, 0
+ bl GetMonData
+ str r0, [sp]
+ ldr r1, _0803EFC4 @ =gUnknown_0820823C
+ ldr r3, [sp, 0x10]
+ adds r1, r3, r1
+ ldrb r2, [r1]
+ ands r2, r0
+ str r2, [sp]
+ ldr r0, _0803EFC8 @ =gUnknown_08208240
+ adds r0, r3, r0
+ ldrb r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ adds r2, r0
+ str r2, [sp]
+ mov r0, r8
+ movs r1, 0x15
+ mov r2, sp
+ bl SetMonData
+ mov r0, r8
+ adds r1, r5, 0
+ movs r2, 0
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r1, [sp]
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r2, [sp, 0x10]
+ bl CalculatePPWithBonus
+ lsls r0, 24
+ lsrs r0, 24
+ subs r0, r4
+ str r0, [sp]
+ ldr r4, [sp, 0x10]
+ adds r4, 0x11
+ mov r0, r8
+ adds r1, r4, 0
+ movs r2, 0
+ bl GetMonData
+ ldr r1, [sp]
+ adds r0, r1
+ str r0, [sp]
+ mov r0, r8
+ adds r1, r4, 0
+ mov r2, sp
+ bl SetMonData
+ movs r4, 0
+ str r4, [sp, 0x1C]
+ b _0803F13A
+ .align 2, 0
+_0803EFC0: .4byte gUnknown_08208238
+_0803EFC4: .4byte gUnknown_0820823C
+_0803EFC8: .4byte gUnknown_08208240
+_0803EFCC:
+ mov r0, r8
+ movs r1, 0x20
+ movs r2, 0
+ bl GetMonData
+ cmp r0, 0x63
+ bls _0803EFDC
+ b _0803F130
+_0803EFDC:
+ ldr r5, [sp, 0x1C]
+ cmp r5, 0
+ beq _0803EFE4
+ b _0803F130
+_0803EFE4:
+ ldr r0, [sp, 0x2C]
+ cmp r0, 0
+ beq _0803EFEC
+ b _0803F130
+_0803EFEC:
+ ldr r1, [sp, 0x20]
+ ldr r2, [sp, 0x24]
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ str r0, [sp, 0x2C]
+ mov r0, r8
+ movs r1, 0x20
+ movs r2, 0
+ bl GetMonData
+ adds r5, r0, 0
+ str r5, [sp, 0x4]
+ ldr r3, [sp, 0x2C]
+ lsls r4, r3, 24
+ asrs r1, r4, 24
+ cmp r1, 0
+ ble _0803F0D0
+ ldr r0, [sp, 0x30]
+ cmp r0, 0x1B
+ bne _0803F0D0
+ movs r0, 0x96
+ muls r0, r1
+ movs r1, 0x64
+ bl __divsi3
+ adds r0, r5, r0
+ str r0, [sp, 0x4]
+ adds r2, r4, 0
+ b _0803F0DC
+_0803F026:
+ mov r0, r8
+ movs r1, 0x20
+ movs r2, 0
+ bl GetMonData
+ cmp r0, 0x63
+ bls _0803F130
+ mov r0, r8
+ movs r1, 0x20
+ movs r2, 0
+ bl GetMonData
+ cmp r0, 0xC7
+ bhi _0803F130
+ ldr r2, [sp, 0x1C]
+ cmp r2, 0
+ bne _0803F130
+ ldr r3, [sp, 0x2C]
+ cmp r3, 0
+ bne _0803F130
+ ldr r4, [sp, 0x20]
+ ldr r5, [sp, 0x24]
+ adds r0, r4, r5
+ ldrb r0, [r0]
+ str r0, [sp, 0x2C]
+ mov r0, r8
+ movs r1, 0x20
+ movs r2, 0
+ bl GetMonData
+ adds r4, r0, 0
+ str r4, [sp, 0x4]
+ ldr r0, [sp, 0x2C]
+ lsls r5, r0, 24
+ asrs r1, r5, 24
+ cmp r1, 0
+ ble _0803F076
+ ldr r2, [sp, 0x30]
+ cmp r2, 0x1B
+ beq _0803F0BE
+_0803F076:
+ ldr r3, [sp, 0x2C]
+ lsls r2, r3, 24
+ b _0803F0D4
+_0803F07C:
+ mov r0, r8
+ movs r1, 0x20
+ movs r2, 0
+ bl GetMonData
+ cmp r0, 0xC7
+ bls _0803F130
+ ldr r4, [sp, 0x1C]
+ cmp r4, 0
+ bne _0803F130
+ ldr r5, [sp, 0x2C]
+ cmp r5, 0
+ bne _0803F130
+ ldr r1, [sp, 0x20]
+ ldr r2, [sp, 0x24]
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ str r0, [sp, 0x2C]
+ mov r0, r8
+ movs r1, 0x20
+ movs r2, 0
+ bl GetMonData
+ adds r4, r0, 0
+ str r4, [sp, 0x4]
+ ldr r3, [sp, 0x2C]
+ lsls r5, r3, 24
+ asrs r1, r5, 24
+ cmp r1, 0
+ ble _0803F0D0
+ ldr r0, [sp, 0x30]
+ cmp r0, 0x1B
+ bne _0803F0D0
+_0803F0BE:
+ movs r0, 0x96
+ muls r0, r1
+ movs r1, 0x64
+ bl __divsi3
+ adds r0, r4, r0
+ str r0, [sp, 0x4]
+ adds r2, r5, 0
+ b _0803F0DC
+_0803F0D0:
+ ldr r1, [sp, 0x2C]
+ lsls r2, r1, 24
+_0803F0D4:
+ asrs r1, r2, 24
+ ldr r0, [sp, 0x4]
+ adds r0, r1
+ str r0, [sp, 0x4]
+_0803F0DC:
+ cmp r2, 0
+ ble _0803F112
+ mov r0, r8
+ movs r1, 0x26
+ movs r2, 0
+ bl GetMonData
+ cmp r0, 0xB
+ bne _0803F0F4
+ ldr r0, [sp, 0x4]
+ adds r0, 0x1
+ str r0, [sp, 0x4]
+_0803F0F4:
+ mov r0, r8
+ movs r1, 0x23
+ movs r2, 0
+ bl GetMonData
+ adds r4, r0, 0
+ bl sav1_map_get_name
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r4, r0
+ bne _0803F112
+ ldr r0, [sp, 0x4]
+ adds r0, 0x1
+ str r0, [sp, 0x4]
+_0803F112:
+ ldr r0, [sp, 0x4]
+ cmp r0, 0
+ bge _0803F11C
+ movs r0, 0
+ str r0, [sp, 0x4]
+_0803F11C:
+ ldr r0, [sp, 0x4]
+ cmp r0, 0xFF
+ ble _0803F126
+ movs r0, 0xFF
+ str r0, [sp, 0x4]
+_0803F126:
+ add r2, sp, 0x4
+ mov r0, r8
+ movs r1, 0x20
+ bl SetMonData
+_0803F130:
+ ldr r0, [sp, 0x24]
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x24]
+_0803F13A:
+ ldr r2, [sp, 0x28]
+ adds r2, 0x1
+ str r2, [sp, 0x28]
+ mov r3, r10
+ lsrs r3, 1
+ mov r10, r3
+ cmp r3, 0
+ beq _0803F14C
+ b _0803EE32
+_0803F14C:
+ ldr r4, [sp, 0x18]
+ adds r4, 0x1
+ str r4, [sp, 0x18]
+ cmp r4, 0x5
+ bgt _0803F15A
+ bl _0803E378
+_0803F15A:
+ ldr r0, [sp, 0x1C]
+_0803F15C:
+ add sp, 0x3C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_803E1B0
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/pokemon_menu.s b/asm/pokemon_menu.s
new file mode 100644
index 000000000..6a3fbb170
--- /dev/null
+++ b/asm/pokemon_menu.s
@@ -0,0 +1,3438 @@
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_8089A70
+sub_8089A70: @ 8089A70
+ push {lr}
+ ldr r0, _08089A88 @ =gPaletteFade
+ ldrb r1, [r0, 0x8]
+ movs r2, 0x80
+ orrs r1, r2
+ strb r1, [r0, 0x8]
+ movs r0, 0
+ movs r1, 0
+ bl OpenPartyMenu
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08089A88: .4byte gPaletteFade
+ thumb_func_end sub_8089A70
+
+ thumb_func_start sub_8089A8C
+sub_8089A8C: @ 8089A8C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r5, _08089AD0 @ =gUnknown_0202FFA9
+ movs r0, 0
+ strb r0, [r5]
+ ldr r0, _08089AD4 @ =gUnknown_03005CE0
+ ldrb r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _08089AD8 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0
+ beq _08089AE0
+ ldr r4, _08089ADC @ =gUnknown_0202FFAA
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0
+ bl AppendToList
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0x1
+ bl AppendToList
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0x3
+ bl AppendToList
+ b _08089BC8
+ .align 2, 0
+_08089AD0: .4byte gUnknown_0202FFA9
+_08089AD4: .4byte gUnknown_03005CE0
+_08089AD8: .4byte gPlayerParty
+_08089ADC: .4byte gUnknown_0202FFAA
+_08089AE0:
+ movs r6, 0
+ ldr r0, _08089B24 @ =gUnknown_0839F554
+ ldrh r0, [r0]
+ mov r8, r0
+_08089AE8:
+ movs r4, 0
+ adds r7, r6, 0x1
+ mov r0, r8
+ cmp r0, 0xFF
+ beq _08089B48
+ ldr r5, _08089B24 @ =gUnknown_0839F554
+_08089AF4:
+ ldr r0, _08089B28 @ =gUnknown_03005CE0
+ ldrb r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _08089B2C @ =gPlayerParty
+ adds r0, r1
+ adds r1, r6, 0
+ adds r1, 0xD
+ bl GetMonData
+ lsls r1, r4, 1
+ adds r1, r5
+ ldrh r1, [r1]
+ cmp r0, r1
+ bne _08089B38
+ adds r2, r4, 0
+ adds r2, 0xA
+ lsls r2, 24
+ lsrs r2, 24
+ ldr r0, _08089B30 @ =gUnknown_0202FFAA
+ ldr r1, _08089B34 @ =gUnknown_0202FFA9
+ bl AppendToList
+ b _08089B48
+ .align 2, 0
+_08089B24: .4byte gUnknown_0839F554
+_08089B28: .4byte gUnknown_03005CE0
+_08089B2C: .4byte gPlayerParty
+_08089B30: .4byte gUnknown_0202FFAA
+_08089B34: .4byte gUnknown_0202FFA9
+_08089B38:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ lsls r0, r4, 1
+ adds r0, r5
+ ldrh r0, [r0]
+ cmp r0, 0xFF
+ bne _08089AF4
+_08089B48:
+ lsls r0, r7, 16
+ lsrs r6, r0, 16
+ cmp r6, 0x3
+ bls _08089AE8
+ ldr r4, _08089BA4 @ =gUnknown_0202FFAA
+ ldr r5, _08089BA8 @ =gUnknown_0202FFA9
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0
+ bl AppendToList
+ ldr r6, _08089BAC @ =gPlayerParty + 1 * 0x64
+ adds r0, r6, 0
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _08089B76
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0x1
+ bl AppendToList
+_08089B76:
+ ldr r0, _08089BB0 @ =gUnknown_03005CE0
+ ldrb r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ adds r1, r6, 0
+ subs r1, 0x64
+ adds r0, r1
+ movs r1, 0xC
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ bl itemid_is_mail
+ lsls r0, 24
+ cmp r0, 0
+ beq _08089BB4
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0x7
+ bl AppendToList
+ b _08089BBE
+ .align 2, 0
+_08089BA4: .4byte gUnknown_0202FFAA
+_08089BA8: .4byte gUnknown_0202FFA9
+_08089BAC: .4byte gPlayerParty + 1 * 0x64
+_08089BB0: .4byte gUnknown_03005CE0
+_08089BB4:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0x2
+ bl AppendToList
+_08089BBE:
+ ldr r0, _08089BD4 @ =gUnknown_0202FFAA
+ ldr r1, _08089BD8 @ =gUnknown_0202FFA9
+ movs r2, 0x3
+ bl AppendToList
+_08089BC8:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08089BD4: .4byte gUnknown_0202FFAA
+_08089BD8: .4byte gUnknown_0202FFA9
+ thumb_func_end sub_8089A8C
+
+ thumb_func_start sub_8089BDC
+sub_8089BDC: @ 8089BDC
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ adds r5, r0, 0
+ adds r6, r1, 0
+ adds r4, r2, 0
+ mov r8, r3
+ ldr r7, [sp, 0x20]
+ ldr r1, [sp, 0x24]
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r6, 24
+ lsrs r6, 24
+ lsls r4, 24
+ lsrs r4, 24
+ mov r0, r8
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ lsls r1, 24
+ lsrs r1, 24
+ movs r0, 0x5
+ bl sub_806D538
+ adds r4, r5, r4
+ lsls r4, 24
+ lsrs r4, 24
+ mov r0, r8
+ lsls r3, r0, 1
+ adds r3, r6, r3
+ adds r3, 0x1
+ lsls r3, 24
+ lsrs r3, 24
+ adds r0, r5, 0
+ adds r1, r6, 0
+ adds r2, r4, 0
+ bl MenuDrawTextWindow
+ adds r5, 0x1
+ lsls r5, 24
+ lsrs r5, 24
+ adds r6, 0x1
+ lsls r6, 24
+ lsrs r6, 24
+ str r7, [sp]
+ adds r0, r5, 0
+ adds r1, r6, 0
+ mov r2, r8
+ ldr r3, [sp, 0x1C]
+ bl PrintMenuItemsReordered
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8089BDC
+
+ thumb_func_start sub_8089C50
+sub_8089C50: @ 8089C50
+ push {r4,r5,lr}
+ sub sp, 0xC
+ ldr r4, [sp, 0x18]
+ ldr r5, [sp, 0x1C]
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r2, 24
+ lsrs r2, 24
+ lsls r3, 24
+ lsrs r3, 24
+ str r4, [sp]
+ str r5, [sp, 0x4]
+ movs r4, 0x1
+ str r4, [sp, 0x8]
+ bl sub_8089BDC
+ add sp, 0xC
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8089C50
+
+ thumb_func_start sub_8089C7C
+sub_8089C7C: @ 8089C7C
+ push {r4-r6,lr}
+ sub sp, 0xC
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r6, _08089CC8 @ =gUnknown_0202FFA9
+ ldrb r0, [r6]
+ lsls r0, 1
+ movs r4, 0x12
+ subs r4, r0
+ lsls r4, 24
+ lsrs r4, 24
+ ldrb r3, [r6]
+ ldr r0, _08089CCC @ =gPokemonMenuActions
+ str r0, [sp]
+ ldr r0, _08089CD0 @ =gUnknown_0202FFAA
+ str r0, [sp, 0x4]
+ movs r0, 0x3
+ str r0, [sp, 0x8]
+ movs r0, 0x13
+ adds r1, r4, 0
+ movs r2, 0xA
+ bl sub_8089BDC
+ movs r2, 0x1
+ orrs r2, r4
+ ldrb r3, [r6]
+ str r5, [sp]
+ movs r0, 0x9
+ str r0, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0x14
+ bl InitMenu
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08089CC8: .4byte gUnknown_0202FFA9
+_08089CCC: .4byte gPokemonMenuActions
+_08089CD0: .4byte gUnknown_0202FFAA
+ thumb_func_end sub_8089C7C
+
+ thumb_func_start sub_8089CD4
+sub_8089CD4: @ 8089CD4
+ push {r4,r5,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _08089D00 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0
+ bne _08089D84
+ adds r0, r4, 0
+ bl sub_806BD80
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ beq _08089D04
+ cmp r0, 0x2
+ beq _08089D60
+ b _08089D84
+ .align 2, 0
+_08089D00: .4byte gPaletteFade
+_08089D04:
+ movs r0, 0x5
+ bl PlaySE
+ adds r0, r4, 0
+ bl sub_806CA38
+ ldr r1, _08089D48 @ =gUnknown_03005CE0
+ strb r0, [r1]
+ ldrb r1, [r1]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _08089D4C @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _08089D50 @ =gStringVar1
+ bl GetMonNickname
+ bl sub_8089A8C
+ ldr r0, _08089D54 @ =gUnknown_0202FFA8
+ strb r5, [r0]
+ movs r0, 0
+ bl sub_8089C7C
+ ldr r1, _08089D58 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _08089D5C @ =sub_8089D94
+ str r1, [r0]
+ adds r0, r4, 0
+ bl sub_808B5B4
+ b _08089D84
+ .align 2, 0
+_08089D48: .4byte gUnknown_03005CE0
+_08089D4C: .4byte gPlayerParty
+_08089D50: .4byte gStringVar1
+_08089D54: .4byte gUnknown_0202FFA8
+_08089D58: .4byte gTasks
+_08089D5C: .4byte sub_8089D94
+_08089D60:
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ negs r0, r0
+ str r5, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r1, _08089D8C @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _08089D90 @ =sub_8089E4C
+ str r1, [r0]
+_08089D84:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08089D8C: .4byte gTasks
+_08089D90: .4byte sub_8089E4C
+ thumb_func_end sub_8089CD4
+
+ thumb_func_start sub_8089D94
+sub_8089D94: @ 8089D94
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r5, r4, 0
+ ldr r0, _08089DC8 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08089E44
+ ldr r2, _08089DCC @ =gMain
+ ldrh r0, [r2, 0x30]
+ movs r1, 0xF0
+ ands r1, r0
+ cmp r1, 0x40
+ bne _08089DD4
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ negs r0, r0
+ bl MoveMenuCursor
+ ldr r1, _08089DD0 @ =gUnknown_0202FFA8
+ strb r0, [r1]
+ b _08089E1A
+ .align 2, 0
+_08089DC8: .4byte gPaletteFade
+_08089DCC: .4byte gMain
+_08089DD0: .4byte gUnknown_0202FFA8
+_08089DD4:
+ cmp r1, 0x80
+ bne _08089DF0
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ bl MoveMenuCursor
+ ldr r1, _08089DEC @ =gUnknown_0202FFA8
+ strb r0, [r1]
+ b _08089E1A
+ .align 2, 0
+_08089DEC: .4byte gUnknown_0202FFA8
+_08089DF0:
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08089E30
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, _08089E24 @ =gPokemonMenuActions
+ ldr r2, _08089E28 @ =gUnknown_0202FFAA
+ ldr r0, _08089E2C @ =gUnknown_0202FFA8
+ ldrb r0, [r0]
+ adds r0, r2
+ ldrb r0, [r0]
+ lsls r0, 3
+ adds r1, 0x4
+ adds r0, r1
+ ldr r1, [r0]
+ adds r0, r4, 0
+ bl _call_via_r1
+_08089E1A:
+ adds r0, r4, 0
+ bl sub_808B5B4
+ b _08089E44
+ .align 2, 0
+_08089E24: .4byte gPokemonMenuActions
+_08089E28: .4byte gUnknown_0202FFAA
+_08089E2C: .4byte gUnknown_0202FFA8
+_08089E30:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _08089E44
+ adds r0, r5, 0
+ bl PokemonMenu_Cancel
+ adds r0, r5, 0
+ bl sub_808B5B4
+_08089E44:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8089D94
+
+ thumb_func_start sub_8089E4C
+sub_8089E4C: @ 8089E4C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _08089E78 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0
+ bne _08089E72
+ ldr r0, _08089E7C @ =gUnknown_03005CE0
+ strb r1, [r0]
+ ldr r0, _08089E80 @ =sub_805469C
+ bl SetMainCallback2
+ adds r0, r4, 0
+ bl DestroyTask
+_08089E72:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08089E78: .4byte gPaletteFade
+_08089E7C: .4byte gUnknown_03005CE0
+_08089E80: .4byte sub_805469C
+ thumb_func_end sub_8089E4C
+
+ thumb_func_start sub_8089E84
+sub_8089E84: @ 8089E84
+ push {lr}
+ ldr r0, _08089EAC @ =gUnknown_03005CE0
+ ldrb r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _08089EB0 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _08089EB4 @ =gStringVar1
+ bl GetMonNickname
+ bl sub_8089A8C
+ ldr r1, _08089EB8 @ =gUnknown_0202FFA8
+ movs r0, 0
+ strb r0, [r1]
+ movs r0, 0
+ bl sub_8089C7C
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08089EAC: .4byte gUnknown_03005CE0
+_08089EB0: .4byte gPlayerParty
+_08089EB4: .4byte gStringVar1
+_08089EB8: .4byte gUnknown_0202FFA8
+ thumb_func_end sub_8089E84
+
+ thumb_func_start sub_8089EBC
+sub_8089EBC: @ 8089EBC
+ push {r4,r5,lr}
+ ldr r4, _08089EC4 @ =0x0201b260
+ ldr r5, _08089EC8 @ =gUnknown_020384F0
+ b _08089ED8
+ .align 2, 0
+_08089EC4: .4byte 0x0201b260
+_08089EC8: .4byte gUnknown_020384F0
+_08089ECC:
+ bl sub_80F9344
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _08089F04
+_08089ED8:
+ bl sub_806B124
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08089ECC
+ ldrb r0, [r4]
+ ldrb r1, [r5]
+ bl sub_806C994
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_806BF74
+ ldr r1, _08089F0C @ =gUnknown_03005CE0
+ ldrb r0, [r5]
+ strb r0, [r1]
+ bl sub_8089E84
+ ldr r0, _08089F10 @ =sub_806AEDC
+ bl SetMainCallback2
+_08089F04:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08089F0C: .4byte gUnknown_03005CE0
+_08089F10: .4byte sub_806AEDC
+ thumb_func_end sub_8089EBC
+
+ thumb_func_start sub_8089F14
+sub_8089F14: @ 8089F14
+ push {lr}
+ ldr r2, _08089F38 @ =gPaletteFade
+ ldrb r0, [r2, 0x8]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2, 0x8]
+ ldr r2, _08089F3C @ =sub_8089D94
+ movs r0, 0
+ movs r1, 0xFF
+ movs r3, 0x5
+ bl sub_806AF4C
+ ldr r0, _08089F40 @ =sub_8089EBC
+ bl SetMainCallback2
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08089F38: .4byte gPaletteFade
+_08089F3C: .4byte sub_8089D94
+_08089F40: .4byte sub_8089EBC
+ thumb_func_end sub_8089F14
+
+ thumb_func_start sub_8089F44
+sub_8089F44: @ 8089F44
+ push {r4,r5,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r0, _08089FAC @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0
+ bne _08089FA2
+ ldr r2, _08089FB0 @ =gSprites
+ ldr r1, _08089FB4 @ =gTasks
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ adds r0, r1
+ ldrh r1, [r0, 0xE]
+ lsls r1, 16
+ asrs r1, 24
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r4, [r0, 0x2E]
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r3, 0
+ bl DestroyTask
+ ldr r0, _08089FB8 @ =0x0201b000
+ ldr r1, _08089FBC @ =0x00000262
+ adds r0, r1
+ movs r1, 0x1
+ strb r1, [r0]
+ ldr r0, _08089FC0 @ =gPlayerParty
+ ldr r1, _08089FC4 @ =gPlayerPartyCount
+ ldrb r2, [r1]
+ subs r2, 0x1
+ lsls r2, 24
+ lsrs r2, 24
+ ldr r3, _08089FC8 @ =sub_8089F14
+ str r5, [sp]
+ adds r1, r4, 0
+ bl ShowPokemonSummaryScreen
+_08089FA2:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08089FAC: .4byte gPaletteFade
+_08089FB0: .4byte gSprites
+_08089FB4: .4byte gTasks
+_08089FB8: .4byte 0x0201b000
+_08089FBC: .4byte 0x00000262
+_08089FC0: .4byte gPlayerParty
+_08089FC4: .4byte gPlayerPartyCount
+_08089FC8: .4byte sub_8089F14
+ thumb_func_end sub_8089F44
+
+ thumb_func_start PokemonMenu_Summary
+PokemonMenu_Summary: @ 8089FCC
+ 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, _08089FFC @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0808A000 @ =sub_8089F44
+ str r1, [r0]
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08089FFC: .4byte gTasks
+_0808A000: .4byte sub_8089F44
+ thumb_func_end PokemonMenu_Summary
+
+ thumb_func_start sub_808A004
+sub_808A004: @ 808A004
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _0808A024 @ =sub_806CA60
+ ldr r2, _0808A028 @ =sub_8089CD4
+ bl SetTaskFuncWithFollowupFunc
+ movs r0, 0x13
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808A024: .4byte sub_806CA60
+_0808A028: .4byte sub_8089CD4
+ thumb_func_end sub_808A004
+
+ thumb_func_start PokemonMenu_Switch
+PokemonMenu_Switch: @ 808A02C
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_8072DEC
+ ldr r0, _0808A054 @ =0x02001000
+ ldr r1, _0808A058 @ =sub_806CD5C
+ str r1, [r0, 0xC]
+ ldr r1, _0808A05C @ =0x0001a272
+ adds r0, r1
+ movs r1, 0x1
+ strh r1, [r0]
+ adds r0, r4, 0
+ bl sub_808A004
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808A054: .4byte 0x02001000
+_0808A058: .4byte sub_806CD5C
+_0808A05C: .4byte 0x0001a272
+ thumb_func_end PokemonMenu_Switch
+
+ thumb_func_start sub_808A060
+sub_808A060: @ 808A060
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _0808A0D0 @ =gMain
+ ldrh r0, [r0, 0x2E]
+ cmp r0, 0x40
+ bne _0808A086
+ ldr r4, _0808A0D4 @ =gUnknown_0202FFA8
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _0808A086
+ movs r0, 0x1
+ negs r0, r0
+ bl MoveMenuCursor
+ strb r0, [r4]
+ movs r0, 0x5
+ bl PlaySE
+_0808A086:
+ ldr r0, _0808A0D0 @ =gMain
+ ldrh r0, [r0, 0x2E]
+ cmp r0, 0x80
+ bne _0808A0A4
+ ldr r4, _0808A0D4 @ =gUnknown_0202FFA8
+ ldrb r0, [r4]
+ cmp r0, 0x2
+ beq _0808A0A4
+ movs r0, 0x1
+ bl MoveMenuCursor
+ strb r0, [r4]
+ movs r0, 0x5
+ bl PlaySE
+_0808A0A4:
+ ldr r0, _0808A0D0 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0808A0E0
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, _0808A0D8 @ =gUnknown_0839F578
+ ldr r2, _0808A0DC @ =gPokemonMenuActions
+ ldr r0, _0808A0D4 @ =gUnknown_0202FFA8
+ ldrb r3, [r0]
+ movs r0, 0
+ bl sub_806E81C
+ adds r1, r0, 0
+ adds r0, r5, 0
+ bl _call_via_r1
+ b _0808A0F6
+ .align 2, 0
+_0808A0D0: .4byte gMain
+_0808A0D4: .4byte gUnknown_0202FFA8
+_0808A0D8: .4byte gUnknown_0839F578
+_0808A0DC: .4byte gPokemonMenuActions
+_0808A0E0:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0808A0F6
+ ldr r1, _0808A0FC @ =gUnknown_0839F578
+ movs r0, 0
+ bl sub_806E7D0
+ adds r0, r5, 0
+ bl PokemonMenu_CancelSubmenu
+_0808A0F6:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808A0FC: .4byte gUnknown_0839F578
+ thumb_func_end sub_808A060
+
+ thumb_func_start sub_808A100
+sub_808A100: @ 808A100
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r1, _0808A130 @ =gUnknown_0839F578
+ ldr r2, _0808A134 @ =gPokemonMenuActions
+ movs r0, 0
+ movs r3, 0
+ bl sub_806E750
+ movs r0, 0xD
+ movs r1, 0x2
+ bl sub_806D538
+ ldr r1, _0808A138 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0808A13C @ =sub_808A060
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808A130: .4byte gUnknown_0839F578
+_0808A134: .4byte gPokemonMenuActions
+_0808A138: .4byte gTasks
+_0808A13C: .4byte sub_808A060
+ thumb_func_end sub_808A100
+
+ thumb_func_start PokemonMenu_Item
+PokemonMenu_Item: @ 808A140
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_8072DEC
+ ldr r1, _0808A174 @ =gUnknown_0202FFA8
+ movs r0, 0
+ strb r0, [r1]
+ movs r0, 0x13
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ ldr r1, _0808A178 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0808A17C @ =sub_808A100
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808A174: .4byte gUnknown_0202FFA8
+_0808A178: .4byte gTasks
+_0808A17C: .4byte sub_808A100
+ thumb_func_end PokemonMenu_Item
+
+ thumb_func_start sub_808A180
+sub_808A180: @ 808A180
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _0808A1D0 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0808A1CA
+ adds r0, r5, 0
+ bl sub_806CA38
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x64
+ muls r0, r1
+ ldr r1, _0808A1D4 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x40
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ bl DestroyTask
+ lsls r1, r4, 3
+ adds r1, r4
+ lsls r1, 2
+ ldr r0, _0808A1D8 @ =gSaveBlock1 + 0x2B4C
+ adds r1, r0
+ ldr r2, _0808A1DC @ =sub_808A520
+ movs r0, 0x4
+ movs r3, 0x3
+ bl sub_80E62A0
+_0808A1CA:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808A1D0: .4byte gPaletteFade
+_0808A1D4: .4byte gPlayerParty
+_0808A1D8: .4byte gSaveBlock1 + 0x2B4C
+_0808A1DC: .4byte sub_808A520
+ thumb_func_end sub_808A180
+
+ thumb_func_start sub_808A1E0
+sub_808A1E0: @ 808A1E0
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0808A21C @ =gUnknown_0202E8F6
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _0808A216
+ adds r0, r4, 0
+ bl sub_806CA38
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl SetHeldItemIconVisibility
+ movs r0, 0
+ movs r1, 0
+ bl sub_806D538
+ ldr r1, _0808A220 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0808A224 @ =sub_8089CD4
+ str r1, [r0]
+_0808A216:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808A21C: .4byte gUnknown_0202E8F6
+_0808A220: .4byte gTasks
+_0808A224: .4byte sub_8089CD4
+ thumb_func_end sub_808A1E0
+
+ thumb_func_start sub_808A228
+sub_808A228: @ 808A228
+ push {r4,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0808A268 @ =gScriptItemId
+ ldrh r0, [r0]
+ bl itemid_is_mail
+ lsls r0, 24
+ cmp r0, 0
+ beq _0808A278
+ ldr r0, _0808A26C @ =gUnknown_0202E8F4
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0808A278
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r1, _0808A270 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0808A274 @ =sub_808A180
+ str r1, [r0]
+ b _0808A29A
+ .align 2, 0
+_0808A268: .4byte gScriptItemId
+_0808A26C: .4byte gUnknown_0202E8F4
+_0808A270: .4byte gTasks
+_0808A274: .4byte sub_808A180
+_0808A278:
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ movs r0, 0
+ movs r1, 0
+ bl sub_806D538
+ ldr r0, _0808A2A4 @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _0808A2A8 @ =sub_8089CD4
+ str r0, [r1]
+_0808A29A:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808A2A4: .4byte gTasks
+_0808A2A8: .4byte sub_8089CD4
+ thumb_func_end sub_808A228
+
+ thumb_func_start sub_808A2AC
+sub_808A2AC: @ 808A2AC
+ push {lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r0, _0808A2D0 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0808A2CA
+ ldr r0, _0808A2D4 @ =gScriptItemId
+ ldrh r1, [r0]
+ ldr r2, _0808A2D8 @ =sub_808A228
+ adds r0, r3, 0
+ bl PartyMenuTryGiveMonHeldItem
+_0808A2CA:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808A2D0: .4byte gPaletteFade
+_0808A2D4: .4byte gScriptItemId
+_0808A2D8: .4byte sub_808A228
+ thumb_func_end sub_808A2AC
+
+ thumb_func_start sub_808A2DC
+sub_808A2DC: @ 808A2DC
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ adds r0, r5, 0
+ bl sub_806CA38
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x64
+ muls r0, r1
+ ldr r1, _0808A324 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x40
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ bl DestroyTask
+ lsls r1, r4, 3
+ adds r1, r4
+ lsls r1, 2
+ ldr r0, _0808A328 @ =gSaveBlock1 + 0x2B4C
+ adds r1, r0
+ ldr r2, _0808A32C @ =sub_808A520
+ movs r0, 0x4
+ movs r3, 0x3
+ bl sub_80E62A0
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808A324: .4byte gPlayerParty
+_0808A328: .4byte gSaveBlock1 + 0x2B4C
+_0808A32C: .4byte sub_808A520
+ thumb_func_end sub_808A2DC
+
+ thumb_func_start sub_808A330
+sub_808A330: @ 808A330
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _0808A344 @ =gScriptItemId
+ ldrh r1, [r1]
+ ldr r2, _0808A348 @ =sub_808A2DC
+ bl PartyMenuTryGiveMonHeldItem
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808A344: .4byte gScriptItemId
+_0808A348: .4byte sub_808A2DC
+ thumb_func_end sub_808A330
+
+ thumb_func_start sub_808A34C
+sub_808A34C: @ 808A34C
+ push {lr}
+ bl RunTasks
+ pop {r0}
+ bx r0
+ thumb_func_end sub_808A34C
+
+ thumb_func_start sub_808A358
+sub_808A358: @ 808A358
+ push {r4,lr}
+ ldr r4, _0808A360 @ =0x0201b260
+ b _0808A370
+ .align 2, 0
+_0808A360: .4byte 0x0201b260
+_0808A364:
+ bl sub_80F9344
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _0808A394
+_0808A370:
+ bl sub_806B124
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0808A364
+ ldrb r0, [r4]
+ ldr r1, _0808A39C @ =gUnknown_03005CE0
+ ldrb r1, [r1]
+ bl sub_806C994
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_806BF74
+ ldr r0, _0808A3A0 @ =sub_806AEDC
+ bl SetMainCallback2
+_0808A394:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808A39C: .4byte gUnknown_03005CE0
+_0808A3A0: .4byte sub_806AEDC
+ thumb_func_end sub_808A358
+
+ thumb_func_start sub_808A3A4
+sub_808A3A4: @ 808A3A4
+ push {r4,r5,lr}
+ ldr r4, _0808A3D8 @ =0x0201b260
+ adds r5, r4, 0x2
+_0808A3AA:
+ bl sub_806B124
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0808A3E4
+ ldrb r0, [r4]
+ ldr r1, _0808A3DC @ =gUnknown_03005CE0
+ ldrb r1, [r1]
+ bl sub_806C994
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_806BF74
+ movs r0, 0x3
+ strb r0, [r5]
+ bl sub_8089E84
+ ldr r0, _0808A3E0 @ =sub_806AEDC
+ bl SetMainCallback2
+ b _0808A3F0
+ .align 2, 0
+_0808A3D8: .4byte 0x0201b260
+_0808A3DC: .4byte gUnknown_03005CE0
+_0808A3E0: .4byte sub_806AEDC
+_0808A3E4:
+ bl sub_80F9344
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0808A3AA
+_0808A3F0:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_808A3A4
+
+ thumb_func_start sub_808A3F8
+sub_808A3F8: @ 808A3F8
+ push {r4,lr}
+ ldr r0, _0808A460 @ =gScriptItemId
+ ldrh r0, [r0]
+ bl itemid_is_mail
+ lsls r0, 24
+ cmp r0, 0
+ beq _0808A47E
+ ldr r0, _0808A464 @ =sub_808A330
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r2, _0808A468 @ =gPaletteFade
+ ldrb r0, [r2, 0x8]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2, 0x8]
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_806BD58
+ ldr r0, _0808A46C @ =gUnknown_03005CE0
+ ldrb r1, [r0]
+ adds r0, r4, 0
+ bl sub_806C994
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_806BF74
+ adds r0, r4, 0
+ bl sub_806CA38
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x64
+ muls r0, r1
+ ldr r1, _0808A470 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0xC
+ bl GetMonData
+ lsls r0, 24
+ cmp r0, 0
+ bne _0808A478
+ ldr r0, _0808A474 @ =sub_808A34C
+ bl SetMainCallback2
+ b _0808A4C6
+ .align 2, 0
+_0808A460: .4byte gScriptItemId
+_0808A464: .4byte sub_808A330
+_0808A468: .4byte gPaletteFade
+_0808A46C: .4byte gUnknown_03005CE0
+_0808A470: .4byte gPlayerParty
+_0808A474: .4byte sub_808A34C
+_0808A478:
+ adds r0, r4, 0
+ bl DestroyTask
+_0808A47E:
+ ldr r2, _0808A4A4 @ =gPaletteFade
+ ldrb r0, [r2, 0x8]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2, 0x8]
+ ldr r0, _0808A4A8 @ =gScriptItemId
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _0808A4B4
+ ldr r2, _0808A4AC @ =sub_808A2AC
+ movs r0, 0
+ movs r1, 0xFF
+ movs r3, 0xFF
+ bl sub_806AF4C
+ ldr r0, _0808A4B0 @ =sub_808A358
+ bl SetMainCallback2
+ b _0808A4C6
+ .align 2, 0
+_0808A4A4: .4byte gPaletteFade
+_0808A4A8: .4byte gScriptItemId
+_0808A4AC: .4byte sub_808A2AC
+_0808A4B0: .4byte sub_808A358
+_0808A4B4:
+ ldr r2, _0808A4CC @ =sub_8089D94
+ movs r0, 0
+ movs r1, 0xFF
+ movs r3, 0x5
+ bl sub_806AF4C
+ ldr r0, _0808A4D0 @ =sub_808A3A4
+ bl SetMainCallback2
+_0808A4C6:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808A4CC: .4byte sub_8089D94
+_0808A4D0: .4byte sub_808A3A4
+ thumb_func_end sub_808A3F8
+
+ thumb_func_start sub_808A4D4
+sub_808A4D4: @ 808A4D4
+ push {r4,lr}
+ ldr r4, _0808A4DC @ =0x0201b260
+ b _0808A4EC
+ .align 2, 0
+_0808A4DC: .4byte 0x0201b260
+_0808A4E0:
+ bl sub_80F9344
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _0808A510
+_0808A4EC:
+ bl sub_806B124
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0808A4E0
+ ldrb r0, [r4]
+ ldr r1, _0808A518 @ =gUnknown_03005CE0
+ ldrb r1, [r1]
+ bl sub_806C994
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_806BF74
+ ldr r0, _0808A51C @ =sub_806AEDC
+ bl SetMainCallback2
+_0808A510:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808A518: .4byte gUnknown_03005CE0
+_0808A51C: .4byte sub_806AEDC
+ thumb_func_end sub_808A4D4
+
+ thumb_func_start sub_808A520
+sub_808A520: @ 808A520
+ push {r4-r7,lr}
+ ldr r2, _0808A584 @ =gPaletteFade
+ ldrb r0, [r2, 0x8]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2, 0x8]
+ ldr r0, _0808A588 @ =gScriptResult
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _0808A59C
+ ldr r7, _0808A58C @ =gUnknown_0202E8F8
+ ldrh r0, [r7]
+ cmp r0, 0
+ beq _0808A542
+ movs r1, 0x1
+ bl RemoveBagItem
+_0808A542:
+ ldr r6, _0808A590 @ =gUnknown_03005CE0
+ ldrb r0, [r6]
+ movs r5, 0x64
+ muls r0, r5
+ ldr r4, _0808A594 @ =gPlayerParty
+ adds r0, r4
+ movs r1, 0xC
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x1
+ bl AddBagItem
+ ldrb r0, [r6]
+ muls r0, r5
+ adds r0, r4
+ bl sub_80A2DF8
+ ldrb r0, [r6]
+ muls r0, r5
+ adds r0, r4
+ movs r1, 0xC
+ adds r2, r7, 0
+ bl SetMonData
+ ldr r2, _0808A598 @ =sub_8089CD4
+ movs r0, 0
+ movs r1, 0xFF
+ movs r3, 0
+ bl sub_806AF4C
+ b _0808A5A8
+ .align 2, 0
+_0808A584: .4byte gPaletteFade
+_0808A588: .4byte gScriptResult
+_0808A58C: .4byte gUnknown_0202E8F8
+_0808A590: .4byte gUnknown_03005CE0
+_0808A594: .4byte gPlayerParty
+_0808A598: .4byte sub_8089CD4
+_0808A59C:
+ ldr r2, _0808A5B4 @ =sub_808A5BC
+ movs r0, 0
+ movs r1, 0xFF
+ movs r3, 0xFF
+ bl sub_806AF4C
+_0808A5A8:
+ ldr r0, _0808A5B8 @ =sub_808A4D4
+ bl SetMainCallback2
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808A5B4: .4byte sub_808A5BC
+_0808A5B8: .4byte sub_808A4D4
+ thumb_func_end sub_808A520
+
+ thumb_func_start sub_808A5BC
+sub_808A5BC: @ 808A5BC
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0808A5F0 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0808A5EA
+ ldr r0, _0808A5F4 @ =gUnknown_03005CE0
+ ldrb r0, [r0]
+ ldr r1, _0808A5F8 @ =gScriptItemId
+ ldrh r1, [r1]
+ movs r2, 0
+ bl DisplayGiveHeldItemMessage
+ ldr r1, _0808A5FC @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0808A600 @ =sub_808A1E0
+ str r1, [r0]
+_0808A5EA:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808A5F0: .4byte gPaletteFade
+_0808A5F4: .4byte gUnknown_03005CE0
+_0808A5F8: .4byte gScriptItemId
+_0808A5FC: .4byte gTasks
+_0808A600: .4byte sub_808A1E0
+ thumb_func_end sub_808A5BC
+
+ thumb_func_start sub_808A604
+sub_808A604: @ 808A604
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0808A628 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0808A622
+ ldr r0, _0808A62C @ =sub_80A61D0
+ bl SetMainCallback2
+ adds r0, r4, 0
+ bl DestroyTask
+_0808A622:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808A628: .4byte gPaletteFade
+_0808A62C: .4byte sub_80A61D0
+ thumb_func_end sub_808A604
+
+ thumb_func_start PokemonMenu_GiveItem
+PokemonMenu_GiveItem: @ 808A630
+ push {r4,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r4, 0
+ bl sub_806CA38
+ ldr r1, _0808A66C @ =gUnknown_0202E8F5
+ strb r0, [r1]
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r1, _0808A670 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0808A674 @ =sub_808A604
+ str r1, [r0]
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808A66C: .4byte gUnknown_0202E8F5
+_0808A670: .4byte gTasks
+_0808A674: .4byte sub_808A604
+ thumb_func_end PokemonMenu_GiveItem
+
+ thumb_func_start sub_808A678
+sub_808A678: @ 808A678
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_808A8D4
+ pop {r0}
+ bx r0
+ thumb_func_end sub_808A678
+
+ thumb_func_start PokemonMenu_TakeItem
+PokemonMenu_TakeItem: @ 808A688
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_8072DEC
+ movs r0, 0x13
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ bl sub_806D5A4
+ ldr r1, _0808A6B4 @ =sub_808A678
+ adds r0, r4, 0
+ bl PartyMenuTryGiveMonHeldItem_806ECE8
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808A6B4: .4byte sub_808A678
+ thumb_func_end PokemonMenu_TakeItem
+
+ thumb_func_start PokemonMenu_TakeMail
+PokemonMenu_TakeMail: @ 808A6B8
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_8072DEC
+ movs r0, 0x13
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ bl sub_806D5A4
+ ldr r1, _0808A6E4 @ =sub_808A678
+ adds r0, r4, 0
+ bl DoTakeMail
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808A6E4: .4byte sub_808A678
+ thumb_func_end PokemonMenu_TakeMail
+
+ thumb_func_start PokemonMenu_Mail
+PokemonMenu_Mail: @ 808A6E8
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_8072DEC
+ ldr r1, _0808A728 @ =gUnknown_0202FFA8
+ movs r0, 0
+ strb r0, [r1]
+ movs r0, 0x13
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ ldr r1, _0808A72C @ =gUnknown_0839F584
+ ldr r2, _0808A730 @ =gPokemonMenuActions
+ movs r0, 0
+ movs r3, 0
+ bl sub_806E750
+ ldr r1, _0808A734 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0808A738 @ =sub_808A73C
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808A728: .4byte gUnknown_0202FFA8
+_0808A72C: .4byte gUnknown_0839F584
+_0808A730: .4byte gPokemonMenuActions
+_0808A734: .4byte gTasks
+_0808A738: .4byte sub_808A73C
+ thumb_func_end PokemonMenu_Mail
+
+ thumb_func_start sub_808A73C
+sub_808A73C: @ 808A73C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _0808A764 @ =gMain
+ ldrh r0, [r0, 0x30]
+ cmp r0, 0x40
+ bne _0808A77A
+ movs r0, 0x5
+ bl PlaySE
+ ldr r4, _0808A768 @ =gUnknown_0202FFA8
+ ldrb r0, [r4]
+ cmp r0, 0
+ bne _0808A770
+ ldr r0, _0808A76C @ =gUnknown_0839F584
+ ldrb r0, [r0]
+ subs r0, 0x1
+ lsls r0, 24
+ asrs r0, 24
+ b _0808A774
+ .align 2, 0
+_0808A764: .4byte gMain
+_0808A768: .4byte gUnknown_0202FFA8
+_0808A76C: .4byte gUnknown_0839F584
+_0808A770:
+ movs r0, 0x1
+ negs r0, r0
+_0808A774:
+ bl MoveMenuCursor
+ strb r0, [r4]
+_0808A77A:
+ ldr r0, _0808A7A0 @ =gMain
+ ldrh r0, [r0, 0x30]
+ cmp r0, 0x80
+ bne _0808A7B4
+ movs r0, 0x5
+ bl PlaySE
+ ldr r4, _0808A7A4 @ =gUnknown_0202FFA8
+ ldrb r0, [r4]
+ ldr r1, _0808A7A8 @ =gUnknown_0839F584
+ ldrb r2, [r1]
+ subs r1, r2, 0x1
+ cmp r0, r1
+ bne _0808A7AC
+ movs r0, 0x1
+ subs r0, r2
+ lsls r0, 24
+ asrs r0, 24
+ b _0808A7AE
+ .align 2, 0
+_0808A7A0: .4byte gMain
+_0808A7A4: .4byte gUnknown_0202FFA8
+_0808A7A8: .4byte gUnknown_0839F584
+_0808A7AC:
+ movs r0, 0x1
+_0808A7AE:
+ bl MoveMenuCursor
+ strb r0, [r4]
+_0808A7B4:
+ ldr r0, _0808A7E0 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0808A7F0
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, _0808A7E4 @ =gUnknown_0839F584
+ ldr r2, _0808A7E8 @ =gPokemonMenuActions
+ ldr r0, _0808A7EC @ =gUnknown_0202FFA8
+ ldrb r3, [r0]
+ movs r0, 0
+ bl sub_806E81C
+ adds r1, r0, 0
+ adds r0, r5, 0
+ bl _call_via_r1
+ b _0808A806
+ .align 2, 0
+_0808A7E0: .4byte gMain
+_0808A7E4: .4byte gUnknown_0839F584
+_0808A7E8: .4byte gPokemonMenuActions
+_0808A7EC: .4byte gUnknown_0202FFA8
+_0808A7F0:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0808A806
+ ldr r1, _0808A80C @ =gUnknown_0839F584
+ movs r0, 0
+ bl sub_806E7D0
+ adds r0, r5, 0
+ bl PokemonMenu_Cancel
+_0808A806:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808A80C: .4byte gUnknown_0839F584
+ thumb_func_end sub_808A73C
+
+ thumb_func_start PokemonMenu_ReadMail
+PokemonMenu_ReadMail: @ 808A810
+ 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, _0808A840 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0808A844 @ =sub_808A848
+ str r1, [r0]
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808A840: .4byte gTasks
+_0808A844: .4byte sub_808A848
+ thumb_func_end PokemonMenu_ReadMail
+
+ thumb_func_start sub_808A848
+sub_808A848: @ 808A848
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _0808A898 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0808A890
+ adds r0, r5, 0
+ bl sub_806CA38
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x64
+ muls r0, r1
+ ldr r1, _0808A89C @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x40
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ bl DestroyTask
+ lsls r0, r4, 3
+ adds r0, r4
+ lsls r0, 2
+ ldr r1, _0808A8A0 @ =gSaveBlock1 + 0x2B4C
+ adds r0, r1
+ ldr r1, _0808A8A4 @ =sub_808A8A8
+ movs r2, 0x1
+ bl HandleReadMail
+_0808A890:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808A898: .4byte gPaletteFade
+_0808A89C: .4byte gPlayerParty
+_0808A8A0: .4byte gSaveBlock1 + 0x2B4C
+_0808A8A4: .4byte sub_808A8A8
+ thumb_func_end sub_808A848
+
+ thumb_func_start sub_808A8A8
+sub_808A8A8: @ 808A8A8
+ push {lr}
+ ldr r1, _0808A8C4 @ =gUnknown_020384F0
+ ldr r0, _0808A8C8 @ =gUnknown_03005CE0
+ ldrb r0, [r0]
+ strb r0, [r1]
+ ldr r0, _0808A8CC @ =0x0201b000
+ ldr r1, _0808A8D0 @ =0x00000262
+ adds r0, r1
+ movs r1, 0x4
+ strb r1, [r0]
+ bl sub_8089F14
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808A8C4: .4byte gUnknown_020384F0
+_0808A8C8: .4byte gUnknown_03005CE0
+_0808A8CC: .4byte 0x0201b000
+_0808A8D0: .4byte 0x00000262
+ thumb_func_end sub_808A8A8
+
+ thumb_func_start sub_808A8D4
+sub_808A8D4: @ 808A8D4
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r1, _0808A90C @ =gUnknown_0202FFA8
+ movs r0, 0
+ strb r0, [r1]
+ movs r0, 0x13
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ movs r0, 0
+ movs r1, 0
+ bl sub_806D538
+ ldr r1, _0808A910 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0808A914 @ =sub_8089CD4
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808A90C: .4byte gUnknown_0202FFA8
+_0808A910: .4byte gTasks
+_0808A914: .4byte sub_8089CD4
+ thumb_func_end sub_808A8D4
+
+ thumb_func_start PokemonMenu_Cancel
+PokemonMenu_Cancel: @ 808A918
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_8072DEC
+ movs r0, 0x5
+ bl PlaySE
+ adds r0, r4, 0
+ bl sub_808A8D4
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end PokemonMenu_Cancel
+
+ thumb_func_start PokemonMenu_CancelSubmenu
+PokemonMenu_CancelSubmenu: @ 808A938
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_8072DEC
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x13
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ bl sub_806D5A4
+ ldr r0, _0808A978 @ =gUnknown_0202FFA8
+ ldrb r0, [r0]
+ bl sub_8089C7C
+ ldr r1, _0808A97C @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0808A980 @ =sub_8089D94
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808A978: .4byte gUnknown_0202FFA8
+_0808A97C: .4byte gTasks
+_0808A980: .4byte sub_8089D94
+ thumb_func_end PokemonMenu_CancelSubmenu
+
+ thumb_func_start PokemonMenu_FieldMove
+PokemonMenu_FieldMove: @ 808A984
+ push {r4-r7,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r6, r0, 3
+ ldr r7, _0808A9D0 @ =gTasks + 0x8
+ adds r4, r6, r7
+ bl sub_8072DEC
+ ldr r1, _0808A9D4 @ =gUnknown_0202FFAA
+ ldr r0, _0808A9D8 @ =gUnknown_0202FFA8
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r0, [r0]
+ subs r0, 0xA
+ strh r0, [r4, 0x16]
+ bl sub_80F9344
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0808A9DC
+ movs r0, 0x13
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ ldrh r0, [r4, 0x16]
+ subs r0, 0xB
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ bhi _0808AABA
+ movs r0, 0x9
+ b _0808AAB2
+ .align 2, 0
+_0808A9D0: .4byte gTasks + 0x8
+_0808A9D4: .4byte gUnknown_0202FFAA
+_0808A9D8: .4byte gUnknown_0202FFA8
+_0808A9DC:
+ ldrh r1, [r4, 0x16]
+ movs r2, 0x16
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x7
+ bgt _0808AA2C
+ ldr r2, _0808AA20 @ =0x00000807
+ adds r0, r1, r2
+ lsls r0, 16
+ lsrs r0, 16
+ bl FlagGet
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _0808AA2C
+ movs r0, 0x13
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ bl sub_806D5A4
+ ldr r0, _0808AA24 @ =gOtherText_CantBeUsedBadge
+ movs r1, 0x1
+ bl sub_806E834
+ adds r0, r7, 0
+ subs r0, 0x8
+ adds r0, r6, r0
+ ldr r1, _0808AA28 @ =sub_808AAF0
+ str r1, [r0]
+ b _0808AADA
+ .align 2, 0
+_0808AA20: .4byte 0x00000807
+_0808AA24: .4byte gOtherText_CantBeUsedBadge
+_0808AA28: .4byte sub_808AAF0
+_0808AA2C:
+ ldr r1, _0808AA78 @ =gFieldMoveFuncs
+ movs r2, 0x16
+ ldrsh r0, [r4, r2]
+ lsls r0, 3
+ adds r0, r1
+ ldr r0, [r0]
+ bl _call_via_r0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0808AA90
+ ldr r1, _0808AA7C @ =gUnknown_0202FFA8
+ movs r0, 0
+ strb r0, [r1]
+ ldrh r0, [r4, 0x16]
+ subs r0, 0xB
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ bls _0808AA88
+ ldr r1, _0808AA80 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0808AA84 @ =sub_808AB34
+ str r1, [r0]
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ b _0808AADA
+ .align 2, 0
+_0808AA78: .4byte gFieldMoveFuncs
+_0808AA7C: .4byte gUnknown_0202FFA8
+_0808AA80: .4byte gTasks
+_0808AA84: .4byte sub_808AB34
+_0808AA88:
+ adds r0, r5, 0
+ bl sub_8133D28
+ b _0808AADA
+_0808AA90:
+ movs r0, 0x13
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ movs r1, 0x16
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x4
+ bne _0808AABA
+ movs r0, 0x8
+ bl TestPlayerAvatarFlags
+ lsls r0, 24
+ cmp r0, 0
+ beq _0808AABA
+ movs r0, 0x8
+_0808AAB2:
+ movs r1, 0
+ bl sub_806D538
+ b _0808AACC
+_0808AABA:
+ ldr r0, _0808AAE4 @ =gFieldMoveFuncs
+ movs r2, 0x16
+ ldrsh r1, [r4, r2]
+ lsls r1, 3
+ adds r1, r0
+ ldrb r0, [r1, 0x4]
+ movs r1, 0
+ bl sub_806D538
+_0808AACC:
+ ldr r0, _0808AAE8 @ =gTasks
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _0808AAEC @ =sub_808ABF4
+ str r0, [r1]
+_0808AADA:
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808AAE4: .4byte gFieldMoveFuncs
+_0808AAE8: .4byte gTasks
+_0808AAEC: .4byte sub_808ABF4
+ thumb_func_end PokemonMenu_FieldMove
+
+ thumb_func_start sub_808AAF0
+sub_808AAF0: @ 808AAF0
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0808AB2C @ =gUnknown_0202E8F6
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _0808AB24
+ ldr r0, _0808AB30 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _0808AB12
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0808AB24
+_0808AB12:
+ movs r0, 0
+ movs r1, 0xE
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ adds r0, r4, 0
+ bl PokemonMenu_Cancel
+_0808AB24:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808AB2C: .4byte gUnknown_0202E8F6
+_0808AB30: .4byte gMain
+ thumb_func_end sub_808AAF0
+
+ thumb_func_start sub_808AB34
+sub_808AB34: @ 808AB34
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0808AB6C @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0808AB84
+ ldr r0, _0808AB70 @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ movs r2, 0x1E
+ ldrsh r0, [r1, r2]
+ cmp r0, 0x5
+ bne _0808AB62
+ bl ShouldDoBrailleFlyEffect
+ lsls r0, 24
+ cmp r0, 0
+ beq _0808AB78
+_0808AB62:
+ ldr r0, _0808AB74 @ =c2_exit_to_overworld_2_switch
+ bl SetMainCallback2
+ b _0808AB7E
+ .align 2, 0
+_0808AB6C: .4byte gPaletteFade
+_0808AB70: .4byte gTasks
+_0808AB74: .4byte c2_exit_to_overworld_2_switch
+_0808AB78:
+ ldr r0, _0808AB8C @ =sub_80FC074
+ bl SetMainCallback2
+_0808AB7E:
+ adds r0, r4, 0
+ bl DestroyTask
+_0808AB84:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808AB8C: .4byte sub_80FC074
+ thumb_func_end sub_808AB34
+
+ thumb_func_start sub_808AB90
+sub_808AB90: @ 808AB90
+ push {lr}
+ bl pal_fill_black
+ ldr r0, _0808ABA4 @ =sub_808ABA8
+ movs r1, 0x8
+ bl CreateTask
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808ABA4: .4byte sub_808ABA8
+ thumb_func_end sub_808AB90
+
+ thumb_func_start sub_808ABA8
+sub_808ABA8: @ 808ABA8
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_807D770
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0808ABDE
+ ldr r0, _0808ABE4 @ =gUnknown_03005CE0
+ ldrb r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0808ABE8 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0xB
+ bl GetMonData
+ ldr r1, _0808ABEC @ =gUnknown_0202FF84
+ str r0, [r1]
+ ldr r0, _0808ABF0 @ =gUnknown_03005CE4
+ ldr r0, [r0]
+ bl _call_via_r0
+ adds r0, r4, 0
+ bl DestroyTask
+_0808ABDE:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808ABE4: .4byte gUnknown_03005CE0
+_0808ABE8: .4byte gPlayerParty
+_0808ABEC: .4byte gUnknown_0202FF84
+_0808ABF0: .4byte gUnknown_03005CE4
+ thumb_func_end sub_808ABA8
+
+ thumb_func_start sub_808ABF4
+sub_808ABF4: @ 808ABF4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0808AC28 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _0808AC0E
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0808AC20
+_0808AC0E:
+ movs r0, 0x1
+ movs r1, 0x11
+ movs r2, 0x1C
+ movs r3, 0x12
+ bl MenuZeroFillWindowRect
+ adds r0, r4, 0
+ bl PokemonMenu_Cancel
+_0808AC20:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808AC28: .4byte gMain
+ thumb_func_end sub_808ABF4
+
+ thumb_func_start sub_808AC2C
+sub_808AC2C: @ 808AC2C
+ push {lr}
+ ldr r0, _0808AC40 @ =gUnknown_0202FF84
+ ldr r1, _0808AC44 @ =gUnknown_03005CE0
+ ldrb r1, [r1]
+ str r1, [r0]
+ movs r0, 0x9
+ bl FieldEffectStart
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808AC40: .4byte gUnknown_0202FF84
+_0808AC44: .4byte gUnknown_03005CE0
+ thumb_func_end sub_808AC2C
+
+ thumb_func_start SetUpFieldMove_Surf
+SetUpFieldMove_Surf: @ 808AC48
+ push {lr}
+ bl PartyHasMonWithSurf
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0808AC84
+ bl IsPlayerFacingSurfableFishableWater
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0808AC84
+ ldr r1, _0808AC74 @ =gUnknown_0300485C
+ ldr r0, _0808AC78 @ =sub_808AB90
+ str r0, [r1]
+ ldr r1, _0808AC7C @ =gUnknown_03005CE4
+ ldr r0, _0808AC80 @ =sub_808AC2C
+ str r0, [r1]
+ movs r0, 0x1
+ b _0808AC86
+ .align 2, 0
+_0808AC74: .4byte gUnknown_0300485C
+_0808AC78: .4byte sub_808AB90
+_0808AC7C: .4byte gUnknown_03005CE4
+_0808AC80: .4byte sub_808AC2C
+_0808AC84:
+ movs r0, 0
+_0808AC86:
+ pop {r1}
+ bx r1
+ thumb_func_end SetUpFieldMove_Surf
+
+ thumb_func_start sub_808AC8C
+sub_808AC8C: @ 808AC8C
+ push {lr}
+ ldr r0, _0808ACA0 @ =gUnknown_0202FF84
+ ldr r1, _0808ACA4 @ =gUnknown_03005CE0
+ ldrb r1, [r1]
+ str r1, [r0]
+ movs r0, 0x1F
+ bl FieldEffectStart
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808ACA0: .4byte gUnknown_0202FF84
+_0808ACA4: .4byte gUnknown_03005CE0
+ thumb_func_end sub_808AC8C
+
+ thumb_func_start SetUpFieldMove_Fly
+SetUpFieldMove_Fly: @ 808ACA8
+ push {lr}
+ bl ShouldDoBrailleFlyEffect
+ lsls r0, 24
+ cmp r0, 0
+ beq _0808ACD0
+ ldr r1, _0808ACC0 @ =gUnknown_0300485C
+ ldr r0, _0808ACC4 @ =sub_808AB90
+ str r0, [r1]
+ ldr r1, _0808ACC8 @ =gUnknown_03005CE4
+ ldr r0, _0808ACCC @ =DoBrailleFlyEffect
+ b _0808ACF2
+ .align 2, 0
+_0808ACC0: .4byte gUnknown_0300485C
+_0808ACC4: .4byte sub_808AB90
+_0808ACC8: .4byte gUnknown_03005CE4
+_0808ACCC: .4byte DoBrailleFlyEffect
+_0808ACD0:
+ ldr r0, _0808ACE4 @ =gMapHeader
+ ldrb r0, [r0, 0x17]
+ bl is_light_level_1_2_3_or_6
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _0808ACE8
+ movs r0, 0
+ b _0808ACF6
+ .align 2, 0
+_0808ACE4: .4byte gMapHeader
+_0808ACE8:
+ ldr r1, _0808ACFC @ =gUnknown_0300485C
+ ldr r0, _0808AD00 @ =sub_808AB90
+ str r0, [r1]
+ ldr r1, _0808AD04 @ =gUnknown_03005CE4
+ ldr r0, _0808AD08 @ =sub_808AC8C
+_0808ACF2:
+ str r0, [r1]
+ movs r0, 0x1
+_0808ACF6:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0808ACFC: .4byte gUnknown_0300485C
+_0808AD00: .4byte sub_808AB90
+_0808AD04: .4byte gUnknown_03005CE4
+_0808AD08: .4byte sub_808AC8C
+ thumb_func_end SetUpFieldMove_Fly
+
+ thumb_func_start sub_808AD0C
+sub_808AD0C: @ 808AD0C
+ push {r4,lr}
+ ldr r4, _0808AD14 @ =0x0201b260
+ b _0808AD24
+ .align 2, 0
+_0808AD14: .4byte 0x0201b260
+_0808AD18:
+ bl sub_80F9344
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _0808AD48
+_0808AD24:
+ bl sub_806B124
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0808AD18
+ ldrb r0, [r4]
+ ldr r1, _0808AD50 @ =gUnknown_03005CE0
+ ldrb r1, [r1]
+ bl sub_806C994
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_806BF74
+ ldr r0, _0808AD54 @ =sub_806AEDC
+ bl SetMainCallback2
+_0808AD48:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808AD50: .4byte gUnknown_03005CE0
+_0808AD54: .4byte sub_806AEDC
+ thumb_func_end sub_808AD0C
+
+ thumb_func_start sub_808AD58
+sub_808AD58: @ 808AD58
+ push {lr}
+ ldr r2, _0808AD7C @ =gPaletteFade
+ ldrb r0, [r2, 0x8]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2, 0x8]
+ ldr r2, _0808AD80 @ =sub_8089CD4
+ movs r0, 0
+ movs r1, 0xFF
+ movs r3, 0
+ bl sub_806AF4C
+ ldr r0, _0808AD84 @ =sub_808AD0C
+ bl SetMainCallback2
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808AD7C: .4byte gPaletteFade
+_0808AD80: .4byte sub_8089CD4
+_0808AD84: .4byte sub_808AD0C
+ thumb_func_end sub_808AD58
+
+ thumb_func_start unref_sub_808AD88
+unref_sub_808AD88: @ 808AD88
+ push {lr}
+ ldr r0, _0808ADA4 @ =gUnknown_03005CE0
+ ldrb r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0808ADA8 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0808ADA4: .4byte gUnknown_03005CE0
+_0808ADA8: .4byte gPlayerParty
+ thumb_func_end unref_sub_808AD88
+
+ thumb_func_start sub_808ADAC
+sub_808ADAC: @ 808ADAC
+ push {lr}
+ ldr r0, _0808ADC0 @ =gUnknown_0202FF84
+ ldr r1, _0808ADC4 @ =gUnknown_03005CE0
+ ldrb r1, [r1]
+ str r1, [r0]
+ movs r0, 0x2C
+ bl FieldEffectStart
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808ADC0: .4byte gUnknown_0202FF84
+_0808ADC4: .4byte gUnknown_03005CE0
+ thumb_func_end sub_808ADAC
+
+ thumb_func_start SetUpFieldMove_Dive
+SetUpFieldMove_Dive: @ 808ADC8
+ push {lr}
+ bl sub_8068F18
+ ldr r1, _0808ADE0 @ =gUnknown_0202FF84
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [r1, 0x4]
+ cmp r0, 0
+ bne _0808ADE4
+ movs r0, 0
+ b _0808ADF2
+ .align 2, 0
+_0808ADE0: .4byte gUnknown_0202FF84
+_0808ADE4:
+ ldr r1, _0808ADF8 @ =gUnknown_0300485C
+ ldr r0, _0808ADFC @ =sub_808AB90
+ str r0, [r1]
+ ldr r1, _0808AE00 @ =gUnknown_03005CE4
+ ldr r0, _0808AE04 @ =sub_808ADAC
+ str r0, [r1]
+ movs r0, 0x1
+_0808ADF2:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0808ADF8: .4byte gUnknown_0300485C
+_0808ADFC: .4byte sub_808AB90
+_0808AE00: .4byte gUnknown_03005CE4
+_0808AE04: .4byte sub_808ADAC
+ thumb_func_end SetUpFieldMove_Dive
+
+ thumb_func_start sub_808AE08
+sub_808AE08: @ 808AE08
+ push {lr}
+ ldr r0, _0808AE1C @ =gUnknown_0202FF84
+ ldr r1, _0808AE20 @ =gUnknown_03005CE0
+ ldrb r1, [r1]
+ str r1, [r0]
+ movs r0, 0x2B
+ bl FieldEffectStart
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808AE1C: .4byte gUnknown_0202FF84
+_0808AE20: .4byte gUnknown_03005CE0
+ thumb_func_end sub_808AE08
+
+ thumb_func_start SetUpFieldMove_Waterfall
+SetUpFieldMove_Waterfall: @ 808AE24
+ push {r4,lr}
+ sub sp, 0x4
+ mov r4, sp
+ adds r4, 0x2
+ mov r0, sp
+ adds r1, r4, 0
+ bl GetXYCoordsOneStepInFrontOfPlayer
+ 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_IsWaterfall
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0808AE80
+ bl IsPlayerSurfingNorth
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0808AE80
+ ldr r1, _0808AE70 @ =gUnknown_0300485C
+ ldr r0, _0808AE74 @ =sub_808AB90
+ str r0, [r1]
+ ldr r1, _0808AE78 @ =gUnknown_03005CE4
+ ldr r0, _0808AE7C @ =sub_808AE08
+ str r0, [r1]
+ movs r0, 0x1
+ b _0808AE82
+ .align 2, 0
+_0808AE70: .4byte gUnknown_0300485C
+_0808AE74: .4byte sub_808AB90
+_0808AE78: .4byte gUnknown_03005CE4
+_0808AE7C: .4byte sub_808AE08
+_0808AE80:
+ movs r0, 0
+_0808AE82:
+ add sp, 0x4
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end SetUpFieldMove_Waterfall
+
+ thumb_func_start sub_808AE8C
+sub_808AE8C: @ 808AE8C
+ push {r4-r6,lr}
+ ldr r0, _0808AED8 @ =gScriptItemId
+ ldrb r0, [r0]
+ subs r0, 0x21
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r5, 0
+_0808AE9A:
+ movs r0, 0x64
+ adds r1, r5, 0
+ muls r1, r0
+ ldr r0, _0808AEDC @ =gPlayerParty
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _0808AF10
+ adds r0, r5, 0
+ bl sub_806D668
+ adds r0, r4, 0
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0
+ bne _0808AECE
+ adds r0, r4, 0
+ adds r1, r6, 0
+ bl CanMonLearnTMHM
+ cmp r0, 0
+ bne _0808AEE0
+_0808AECE:
+ adds r0, r5, 0
+ movs r1, 0x9A
+ bl sub_806BC3C
+ b _0808AF10
+ .align 2, 0
+_0808AED8: .4byte gScriptItemId
+_0808AEDC: .4byte gPlayerParty
+_0808AEE0:
+ ldr r0, _0808AF04 @ =gScriptItemId
+ ldrh r0, [r0]
+ bl ItemIdToBattleMoveId
+ adds r1, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ adds r0, r4, 0
+ bl pokemon_has_move
+ lsls r0, 24
+ cmp r0, 0
+ beq _0808AF08
+ adds r0, r5, 0
+ movs r1, 0xA8
+ bl sub_806BC3C
+ b _0808AF10
+ .align 2, 0
+_0808AF04: .4byte gScriptItemId
+_0808AF08:
+ adds r0, r5, 0
+ movs r1, 0x8C
+ bl sub_806BC3C
+_0808AF10:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x5
+ bls _0808AE9A
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_808AE8C
+
+ thumb_func_start sub_808AF20
+sub_808AF20: @ 808AF20
+ push {r4,r5,lr}
+ movs r5, 0
+_0808AF24:
+ movs r0, 0x64
+ adds r1, r5, 0
+ muls r1, r0
+ ldr r0, _0808AF78 @ =gPlayerParty
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _0808AF66
+ adds r0, r4, 0
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0
+ bne _0808AF58
+ ldr r0, _0808AF7C @ =gScriptItemId
+ ldrh r2, [r0]
+ adds r0, r4, 0
+ movs r1, 0x3
+ bl GetEvolutionTargetSpecies
+ lsls r0, 16
+ cmp r0, 0
+ bne _0808AF66
+_0808AF58:
+ adds r0, r5, 0
+ bl sub_806D668
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_806BC3C
+_0808AF66:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x5
+ bls _0808AF24
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808AF78: .4byte gPlayerParty
+_0808AF7C: .4byte gScriptItemId
+ thumb_func_end sub_808AF20
+
+ thumb_func_start sub_808AF80
+sub_808AF80: @ 808AF80
+ push {r4,r5,lr}
+ ldr r5, _0808AFB0 @ =0x0201b260
+_0808AF84:
+ bl sub_806B124
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0808B00C
+ ldr r0, _0808AFB4 @ =gUnknown_02038561
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0808AFC6
+ ldr r0, _0808AFB8 @ =gScriptItemId
+ ldrh r0, [r0]
+ bl CheckIfItemIsTMHMOrEvolutionStone
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _0808AFBC
+ cmp r0, 0x2
+ beq _0808AFC2
+ b _0808AFC6
+ .align 2, 0
+_0808AFB0: .4byte 0x0201b260
+_0808AFB4: .4byte gUnknown_02038561
+_0808AFB8: .4byte gScriptItemId
+_0808AFBC:
+ bl sub_808AE8C
+ b _0808AFC6
+_0808AFC2:
+ bl sub_808AF20
+_0808AFC6:
+ ldr r4, _0808B000 @ =gUnknown_03005CE0
+ ldrb r0, [r4]
+ cmp r0, 0x5
+ bhi _0808AFE2
+ adds r1, r0, 0
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0808B004 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ bne _0808AFE6
+_0808AFE2:
+ movs r0, 0
+ strb r0, [r4]
+_0808AFE6:
+ ldrb r0, [r5]
+ ldr r1, _0808B000 @ =gUnknown_03005CE0
+ ldrb r1, [r1]
+ bl sub_806C994
+ ldrb r0, [r5]
+ movs r1, 0
+ bl sub_806BF74
+ ldr r0, _0808B008 @ =sub_806AEDC
+ bl SetMainCallback2
+ b _0808B018
+ .align 2, 0
+_0808B000: .4byte gUnknown_03005CE0
+_0808B004: .4byte gPlayerParty
+_0808B008: .4byte sub_806AEDC
+_0808B00C:
+ bl sub_80F9344
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0808AF84
+_0808B018:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_808AF80
+
+ thumb_func_start sub_808B020
+sub_808B020: @ 808B020
+ push {lr}
+ ldr r2, _0808B040 @ =gPaletteFade
+ ldrb r0, [r2, 0x8]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2, 0x8]
+ ldr r0, _0808B044 @ =gUnknown_02038561
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _0808B0A0
+ cmp r0, 0x1
+ bgt _0808B048
+ cmp r0, 0
+ beq _0808B052
+ b _0808B0AC
+ .align 2, 0
+_0808B040: .4byte gPaletteFade
+_0808B044: .4byte gUnknown_02038561
+_0808B048:
+ cmp r0, 0x3
+ beq _0808B0A0
+ cmp r0, 0x4
+ beq _0808B08C
+ b _0808B0AC
+_0808B052:
+ ldr r0, _0808B070 @ =gScriptItemId
+ ldrh r0, [r0]
+ bl CheckIfItemIsTMHMOrEvolutionStone
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0808B078
+ ldr r2, _0808B074 @ =sub_808B0C0
+ movs r0, 0
+ movs r1, 0
+ movs r3, 0x14
+ bl sub_806AF4C
+ b _0808B0AC
+ .align 2, 0
+_0808B070: .4byte gScriptItemId
+_0808B074: .4byte sub_808B0C0
+_0808B078:
+ ldr r2, _0808B088 @ =sub_808B0C0
+ movs r0, 0
+ movs r1, 0
+ movs r3, 0x3
+ bl sub_806AF4C
+ b _0808B0AC
+ .align 2, 0
+_0808B088: .4byte sub_808B0C0
+_0808B08C:
+ ldr r2, _0808B09C @ =sub_808B1EC
+ movs r0, 0
+ movs r1, 0
+ movs r3, 0xFF
+ bl sub_806AF4C
+ b _0808B0AC
+ .align 2, 0
+_0808B09C: .4byte sub_808B1EC
+_0808B0A0:
+ ldr r2, _0808B0B8 @ =sub_808B0C0
+ movs r0, 0
+ movs r1, 0
+ movs r3, 0x4
+ bl sub_806AF4C
+_0808B0AC:
+ ldr r0, _0808B0BC @ =sub_808AF80
+ bl SetMainCallback2
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808B0B8: .4byte sub_808B0C0
+_0808B0BC: .4byte sub_808AF80
+ thumb_func_end sub_808B020
+
+ thumb_func_start sub_808B0C0
+sub_808B0C0: @ 808B0C0
+ push {r4,r5,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0808B0EC @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0
+ bne _0808B1CE
+ adds r0, r4, 0
+ bl sub_806BD80
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ beq _0808B0F0
+ cmp r0, 0x2
+ beq _0808B184
+ b _0808B1CE
+ .align 2, 0
+_0808B0EC: .4byte gPaletteFade
+_0808B0F0:
+ adds r0, r4, 0
+ bl sub_806CA38
+ ldr r1, _0808B118 @ =gUnknown_03005CE0
+ strb r0, [r1]
+ ldrb r1, [r1]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0808B11C @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0
+ beq _0808B120
+ movs r0, 0x20
+ bl PlaySE
+ b _0808B1CE
+ .align 2, 0
+_0808B118: .4byte gUnknown_03005CE0
+_0808B11C: .4byte gPlayerParty
+_0808B120:
+ bl sub_806D5A4
+ ldr r5, _0808B16C @ =gUnknown_02038561
+ ldrb r0, [r5]
+ cmp r0, 0
+ bne _0808B13C
+ ldr r3, _0808B170 @ =gUnknown_03004AE4
+ ldr r0, _0808B174 @ =gScriptItemId
+ ldrh r1, [r0]
+ ldr r2, _0808B178 @ =sub_808B224
+ ldr r3, [r3]
+ adds r0, r4, 0
+ bl _call_via_r3
+_0808B13C:
+ ldrb r0, [r5]
+ cmp r0, 0x1
+ bne _0808B154
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _0808B174 @ =gScriptItemId
+ ldrh r1, [r0]
+ ldr r2, _0808B17C @ =sub_808B2EC
+ adds r0, r4, 0
+ bl PartyMenuTryGiveMonHeldItem
+_0808B154:
+ ldrb r0, [r5]
+ cmp r0, 0x3
+ bne _0808B1CE
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, _0808B180 @ =sub_808B2B4
+ adds r0, r4, 0
+ bl PartyMenuTryGiveMonMail
+ b _0808B1CE
+ .align 2, 0
+_0808B16C: .4byte gUnknown_02038561
+_0808B170: .4byte gUnknown_03004AE4
+_0808B174: .4byte gScriptItemId
+_0808B178: .4byte sub_808B224
+_0808B17C: .4byte sub_808B2EC
+_0808B180: .4byte sub_808B2B4
+_0808B184:
+ adds r0, r4, 0
+ bl sub_806CA38
+ ldr r1, _0808B1D8 @ =gUnknown_03005CE0
+ strb r0, [r1]
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ negs r0, r0
+ str r5, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r2, _0808B1DC @ =gUnknown_02038561
+ ldrb r0, [r2]
+ cmp r0, 0x1
+ bhi _0808B1BA
+ ldr r0, _0808B1E0 @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _0808B1E4 @ =sub_808B25C
+ str r0, [r1]
+_0808B1BA:
+ ldrb r0, [r2]
+ cmp r0, 0x3
+ bne _0808B1CE
+ ldr r0, _0808B1E0 @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _0808B1E8 @ =sub_808B2B4
+ str r0, [r1]
+_0808B1CE:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808B1D8: .4byte gUnknown_03005CE0
+_0808B1DC: .4byte gUnknown_02038561
+_0808B1E0: .4byte gTasks
+_0808B1E4: .4byte sub_808B25C
+_0808B1E8: .4byte sub_808B2B4
+ thumb_func_end sub_808B0C0
+
+ thumb_func_start sub_808B1EC
+sub_808B1EC: @ 808B1EC
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0808B214 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0808B20E
+ ldr r3, _0808B218 @ =gUnknown_03004AE4
+ ldr r0, _0808B21C @ =gScriptItemId
+ ldrh r1, [r0]
+ ldr r2, _0808B220 @ =sub_808B224
+ ldr r3, [r3]
+ adds r0, r4, 0
+ bl _call_via_r3
+_0808B20E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808B214: .4byte gPaletteFade
+_0808B218: .4byte gUnknown_03004AE4
+_0808B21C: .4byte gScriptItemId
+_0808B220: .4byte sub_808B224
+ thumb_func_end sub_808B1EC
+
+ thumb_func_start sub_808B224
+sub_808B224: @ 808B224
+ 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, _0808B254 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0808B258 @ =sub_808B25C
+ str r1, [r0]
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808B254: .4byte gTasks
+_0808B258: .4byte sub_808B25C
+ thumb_func_end sub_808B224
+
+ thumb_func_start sub_808B25C
+sub_808B25C: @ 808B25C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0808B280 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0808B27A
+ ldr r0, _0808B284 @ =sub_80A5B40
+ bl SetMainCallback2
+ adds r0, r4, 0
+ bl DestroyTask
+_0808B27A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808B280: .4byte gPaletteFade
+_0808B284: .4byte sub_80A5B40
+ thumb_func_end sub_808B25C
+
+ thumb_func_start sub_808B288
+sub_808B288: @ 808B288
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0808B2AC @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0808B2A6
+ ldr r0, _0808B2B0 @ =sub_813B6F8
+ bl SetMainCallback2
+ adds r0, r4, 0
+ bl DestroyTask
+_0808B2A6:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808B2AC: .4byte gPaletteFade
+_0808B2B0: .4byte sub_813B6F8
+ thumb_func_end sub_808B288
+
+ thumb_func_start sub_808B2B4
+sub_808B2B4: @ 808B2B4
+ 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, _0808B2E4 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0808B2E8 @ =sub_808B288
+ str r1, [r0]
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808B2E4: .4byte gTasks
+_0808B2E8: .4byte sub_808B288
+ thumb_func_end sub_808B2B4
+
+ thumb_func_start sub_808B2EC
+sub_808B2EC: @ 808B2EC
+ push {r4,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0808B31C @ =gUnknown_0202E8F4
+ ldrb r0, [r0]
+ cmp r0, 0x2
+ bne _0808B328
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r1, _0808B320 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0808B324 @ =sub_808B338
+ str r1, [r0]
+ b _0808B32E
+ .align 2, 0
+_0808B31C: .4byte gUnknown_0202E8F4
+_0808B320: .4byte gTasks
+_0808B324: .4byte sub_808B338
+_0808B328:
+ adds r0, r4, 0
+ bl sub_808B224
+_0808B32E:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_808B2EC
+
+ thumb_func_start sub_808B338
+sub_808B338: @ 808B338
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _0808B38C @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0808B384
+ adds r0, r5, 0
+ bl sub_806CA38
+ ldr r1, _0808B390 @ =gUnknown_03005CE0
+ strb r0, [r1]
+ ldrb r1, [r1]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0808B394 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x40
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ bl DestroyTask
+ lsls r1, r4, 3
+ adds r1, r4
+ lsls r1, 2
+ ldr r0, _0808B398 @ =gSaveBlock1 + 0x2B4C
+ adds r1, r0
+ ldr r2, _0808B39C @ =sub_808B3EC
+ movs r0, 0x4
+ movs r3, 0x3
+ bl sub_80E62A0
+_0808B384:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808B38C: .4byte gPaletteFade
+_0808B390: .4byte gUnknown_03005CE0
+_0808B394: .4byte gPlayerParty
+_0808B398: .4byte gSaveBlock1 + 0x2B4C
+_0808B39C: .4byte sub_808B3EC
+ thumb_func_end sub_808B338
+
+ thumb_func_start sub_808B3A0
+sub_808B3A0: @ 808B3A0
+ push {r4,lr}
+ ldr r4, _0808B3A8 @ =0x0201b260
+ b _0808B3B8
+ .align 2, 0
+_0808B3A8: .4byte 0x0201b260
+_0808B3AC:
+ bl sub_80F9344
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _0808B3DC
+_0808B3B8:
+ bl sub_806B124
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0808B3AC
+ ldrb r0, [r4]
+ ldr r1, _0808B3E4 @ =gUnknown_03005CE0
+ ldrb r1, [r1]
+ bl sub_806C994
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_806BF74
+ ldr r0, _0808B3E8 @ =sub_806AEDC
+ bl SetMainCallback2
+_0808B3DC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808B3E4: .4byte gUnknown_03005CE0
+_0808B3E8: .4byte sub_806AEDC
+ thumb_func_end sub_808B3A0
+
+ thumb_func_start sub_808B3EC
+sub_808B3EC: @ 808B3EC
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r0, _0808B464 @ =gPaletteFade
+ mov r8, r0
+ ldrb r0, [r0, 0x8]
+ movs r1, 0x80
+ orrs r0, r1
+ mov r1, r8
+ strb r0, [r1, 0x8]
+ ldr r0, _0808B468 @ =gScriptResult
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _0808B480
+ ldr r7, _0808B46C @ =gUnknown_0202E8F8
+ ldrh r0, [r7]
+ cmp r0, 0
+ beq _0808B416
+ movs r1, 0x1
+ bl RemoveBagItem
+_0808B416:
+ ldr r6, _0808B470 @ =gUnknown_03005CE0
+ ldrb r0, [r6]
+ movs r5, 0x64
+ muls r0, r5
+ ldr r4, _0808B474 @ =gPlayerParty
+ adds r0, r4
+ movs r1, 0xC
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x1
+ bl AddBagItem
+ ldrb r0, [r6]
+ muls r0, r5
+ adds r0, r4
+ bl sub_80A2DF8
+ ldrb r0, [r6]
+ muls r0, r5
+ adds r0, r4
+ movs r1, 0xC
+ adds r2, r7, 0
+ bl SetMonData
+ ldr r0, _0808B478 @ =sub_808B25C
+ movs r1, 0x5
+ bl CreateTask
+ mov r0, r8
+ ldrb r1, [r0, 0x8]
+ movs r0, 0x7F
+ ands r0, r1
+ mov r1, r8
+ strb r0, [r1, 0x8]
+ ldr r0, _0808B47C @ =sub_806AEDC
+ b _0808B48E
+ .align 2, 0
+_0808B464: .4byte gPaletteFade
+_0808B468: .4byte gScriptResult
+_0808B46C: .4byte gUnknown_0202E8F8
+_0808B470: .4byte gUnknown_03005CE0
+_0808B474: .4byte gPlayerParty
+_0808B478: .4byte sub_808B25C
+_0808B47C: .4byte sub_806AEDC
+_0808B480:
+ ldr r2, _0808B49C @ =sub_808B4A4
+ movs r0, 0
+ movs r1, 0
+ movs r3, 0xFF
+ bl sub_806AF4C
+ ldr r0, _0808B4A0 @ =sub_808B3A0
+_0808B48E:
+ bl SetMainCallback2
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808B49C: .4byte sub_808B4A4
+_0808B4A0: .4byte sub_808B3A0
+ thumb_func_end sub_808B3EC
+
+ thumb_func_start sub_808B4A4
+sub_808B4A4: @ 808B4A4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0808B4D8 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0808B4D2
+ ldr r0, _0808B4DC @ =gUnknown_03005CE0
+ ldrb r0, [r0]
+ ldr r1, _0808B4E0 @ =gScriptItemId
+ ldrh r1, [r1]
+ movs r2, 0x1
+ bl DisplayGiveHeldItemMessage
+ ldr r1, _0808B4E4 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0808B4E8 @ =sub_808B4EC
+ str r1, [r0]
+_0808B4D2:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808B4D8: .4byte gPaletteFade
+_0808B4DC: .4byte gUnknown_03005CE0
+_0808B4E0: .4byte gScriptItemId
+_0808B4E4: .4byte gTasks
+_0808B4E8: .4byte sub_808B4EC
+ thumb_func_end sub_808B4A4
+
+ thumb_func_start sub_808B4EC
+sub_808B4EC: @ 808B4EC
+ push {lr}
+ lsls r0, 24
+ lsrs r1, r0, 24
+ ldr r0, _0808B504 @ =gUnknown_0202E8F6
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _0808B500
+ adds r0, r1, 0
+ bl sub_808B224
+_0808B500:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808B504: .4byte gUnknown_0202E8F6
+ thumb_func_end sub_808B4EC
+
+ thumb_func_start sub_808B508
+sub_808B508: @ 808B508
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_808B224
+ pop {r0}
+ bx r0
+ thumb_func_end sub_808B508
+
+ thumb_func_start sub_808B518
+sub_808B518: @ 808B518
+ push {r4,lr}
+ ldr r4, _0808B520 @ =0x0201b260
+ b _0808B530
+ .align 2, 0
+_0808B520: .4byte 0x0201b260
+_0808B524:
+ bl sub_80F9344
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _0808B554
+_0808B530:
+ bl sub_806B124
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0808B524
+ ldrb r0, [r4]
+ ldr r1, _0808B55C @ =gUnknown_020384F0
+ ldrb r1, [r1]
+ bl sub_806C994
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_806BF74
+ ldr r0, _0808B560 @ =sub_806AEDC
+ bl SetMainCallback2
+_0808B554:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808B55C: .4byte gUnknown_020384F0
+_0808B560: .4byte sub_806AEDC
+ thumb_func_end sub_808B518
+
+ thumb_func_start sub_808B564
+sub_808B564: @ 808B564
+ push {lr}
+ ldr r2, _0808B58C @ =gPaletteFade
+ ldrb r0, [r2, 0x8]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2, 0x8]
+ bl sub_809FA30
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ beq _0808B594
+ ldr r2, _0808B590 @ =TaughtMove
+ movs r0, 0
+ movs r1, 0
+ movs r3, 0xFF
+ bl sub_806AF4C
+ b _0808B5A0
+ .align 2, 0
+_0808B58C: .4byte gPaletteFade
+_0808B590: .4byte TaughtMove
+_0808B594:
+ ldr r2, _0808B5AC @ =StopTryingToTeachMove_806F588
+ movs r0, 0
+ movs r1, 0
+ movs r3, 0xFF
+ bl sub_806AF4C
+_0808B5A0:
+ ldr r0, _0808B5B0 @ =sub_808B518
+ bl SetMainCallback2
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808B5AC: .4byte StopTryingToTeachMove_806F588
+_0808B5B0: .4byte sub_808B518
+ thumb_func_end sub_808B564
+
+ thumb_func_start sub_808B5B4
+sub_808B5B4: @ 808B5B4
+ push {lr}
+ ldr r3, _0808B5D8 @ =gUnknown_03005CF0
+ ldr r2, _0808B5DC @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r2, [r1]
+ str r2, [r3]
+ ldr r2, _0808B5E0 @ =sub_808B5E4
+ str r2, [r1]
+ lsls r0, 24
+ lsrs r0, 24
+ bl _call_via_r2
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808B5D8: .4byte gUnknown_03005CF0
+_0808B5DC: .4byte gTasks
+_0808B5E0: .4byte sub_808B5E4
+ thumb_func_end sub_808B5B4
+
+ thumb_func_start sub_808B5E4
+sub_808B5E4: @ 808B5E4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_8055870
+ cmp r0, 0x1
+ beq _0808B602
+ ldr r1, _0808B608 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0808B60C @ =gUnknown_03005CF0
+ ldr r1, [r1]
+ str r1, [r0]
+_0808B602:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808B608: .4byte gTasks
+_0808B60C: .4byte gUnknown_03005CF0
+ thumb_func_end sub_808B5E4
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/pokemon_storage_system.s b/asm/pokemon_storage_system.s
new file mode 100644
index 000000000..801c941d1
--- /dev/null
+++ b/asm/pokemon_storage_system.s
@@ -0,0 +1,15417 @@
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_8095904
+sub_8095904: @ 8095904
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x1C
+ str r0, [sp]
+ adds r7, r1, 0
+ adds r4, r2, 0
+ ldr r0, [sp, 0x3C]
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r3, 16
+ lsrs r3, 16
+ str r3, [sp, 0x4]
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x8]
+ ldr r0, [sp]
+ bl StringLength
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ cmp r4, 0
+ bne _08095988
+ movs r5, 0
+ cmp r5, r8
+ bcs _08095A2E
+_0809593E:
+ ldr r1, [sp]
+ adds r0, r1, r5
+ ldrb r2, [r0]
+ ldr r0, _08095980 @ =0x0000fff0
+ ands r0, r2
+ lsls r0, 6
+ movs r1, 0xF
+ ands r2, r1
+ lsls r2, 5
+ adds r0, r2
+ ldr r1, _08095984 @ =gFont3LatinGlyphs
+ adds r4, r0, r1
+ adds r0, r4, 0
+ adds r1, r7, 0
+ movs r2, 0x10
+ bl CpuSet
+ movs r2, 0x80
+ lsls r2, 2
+ adds r0, r4, r2
+ ldr r3, [sp, 0x4]
+ adds r1, r7, r3
+ movs r2, 0x10
+ bl CpuSet
+ adds r7, 0x20
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, r8
+ bcc _0809593E
+ b _08095A2E
+ .align 2, 0
+_08095980: .4byte 0x0000fff0
+_08095984: .4byte gFont3LatinGlyphs
+_08095988:
+ movs r0, 0
+ mov r9, r0
+ ldr r1, [sp, 0x8]
+ lsls r0, r1, 28
+ lsrs r0, 24
+ str r0, [sp, 0xC]
+ mov r2, r8
+ lsls r0, r2, 21
+ movs r1, 0
+ lsrs r0, 1
+ str r0, [sp, 0x10]
+_0809599E:
+ movs r5, 0
+ ldr r3, [sp, 0x4]
+ adds r3, r7, r3
+ str r3, [sp, 0x14]
+ adds r0, r1, 0x1
+ str r0, [sp, 0x18]
+ cmp r5, r8
+ bcs _08095A12
+ movs r2, 0xF
+ mov r12, r2
+ lsls r1, 9
+ ldr r0, _08095A40 @ =gFont3LatinGlyphs
+ adds r1, r0
+ mov r10, r1
+_080959BA:
+ ldr r3, [sp]
+ adds r0, r3, r5
+ ldrb r1, [r0]
+ ldr r0, _08095A44 @ =0x0000fff0
+ ands r0, r1
+ lsls r0, 6
+ mov r2, r12
+ ands r1, r2
+ lsls r1, 5
+ adds r0, r1
+ mov r3, r10
+ adds r4, r0, r3
+ movs r6, 0
+ adds r5, 0x1
+_080959D6:
+ ldrb r0, [r4]
+ movs r3, 0xF0
+ ands r3, r0
+ mov r2, r12
+ ands r2, r0
+ cmp r3, 0
+ bne _080959E6
+ ldr r3, [sp, 0xC]
+_080959E6:
+ cmp r2, 0
+ bne _080959EC
+ ldr r2, [sp, 0x8]
+_080959EC:
+ mov r0, r9
+ adds r1, r0, 0x1
+ lsls r1, 16
+ lsrs r1, 16
+ mov r9, r1
+ ldr r1, [sp, 0x40]
+ adds r0, r1, r0
+ orrs r3, r2
+ strb r3, [r0]
+ adds r4, 0x1
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ cmp r6, 0x1F
+ bls _080959D6
+ lsls r0, r5, 16
+ lsrs r5, r0, 16
+ cmp r5, r8
+ bcc _080959BA
+_08095A12:
+ ldr r0, [sp, 0x40]
+ adds r1, r7, 0
+ ldr r3, [sp, 0x10]
+ lsrs r2, r3, 16
+ bl CpuSet
+ ldr r7, [sp, 0x14]
+ movs r0, 0
+ mov r9, r0
+ ldr r1, [sp, 0x18]
+ lsls r0, r1, 16
+ lsrs r1, r0, 16
+ cmp r1, 0x1
+ bls _0809599E
+_08095A2E:
+ add sp, 0x1C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08095A40: .4byte gFont3LatinGlyphs
+_08095A44: .4byte 0x0000fff0
+ thumb_func_end sub_8095904
+
+ thumb_func_start unref_sub_8095A48
+unref_sub_8095A48: @ 8095A48
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x10
+ adds r4, r0, 0
+ adds r5, r1, 0
+ lsls r2, 24
+ lsrs r2, 24
+ mov r8, r2
+ lsls r3, 24
+ lsrs r7, r3, 24
+ movs r6, 0
+_08095A60:
+ movs r3, 0
+ ldrb r0, [r4]
+ adds r1, r0, 0
+ adds r2, r0, 0
+ cmp r1, 0xFF
+ beq _08095ACE
+_08095A6C:
+ mov r0, sp
+ adds r0, r3
+ adds r0, 0x8
+ strb r2, [r0]
+ adds r4, 0x1
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x3
+ bhi _08095AA8
+ ldrb r0, [r4]
+ adds r1, r0, 0
+ adds r2, r0, 0
+ cmp r1, 0xFF
+ bne _08095A6C
+ cmp r3, 0
+ beq _08095ACE
+ movs r6, 0x1
+ cmp r3, 0x3
+ bhi _08095AA8
+ movs r2, 0
+_08095A96:
+ adds r0, r3, 0
+ adds r1, r0, 0x1
+ lsls r1, 16
+ lsrs r3, r1, 16
+ add r0, sp
+ adds r0, 0x8
+ strb r2, [r0]
+ cmp r3, 0x3
+ bls _08095A96
+_08095AA8:
+ mov r1, sp
+ adds r1, r3
+ adds r1, 0x8
+ movs r0, 0xFF
+ strb r0, [r1]
+ str r7, [sp]
+ ldr r0, [sp, 0x28]
+ str r0, [sp, 0x4]
+ add r0, sp, 0x8
+ adds r1, r5, 0
+ mov r2, r8
+ movs r3, 0x80
+ bl sub_8095904
+ movs r0, 0x80
+ lsls r0, 1
+ adds r5, r0
+ cmp r6, 0
+ beq _08095A60
+_08095ACE:
+ add sp, 0x10
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end unref_sub_8095A48
+
+ thumb_func_start sub_8095ADC
+sub_8095ADC: @ 8095ADC
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ movs r4, 0
+ movs r5, 0
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r6, r0, 5
+_08095AF0:
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 4
+ ldr r1, _08095B20 @ =gPokemonStorage + 0x4
+ adds r0, r1
+ adds r0, r6, r0
+ movs r1, 0xB
+ bl GetBoxMonData
+ cmp r0, 0
+ beq _08095B0C
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+_08095B0C:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x1D
+ bls _08095AF0
+ lsls r0, r5, 24
+ lsrs r0, 24
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08095B20: .4byte gPokemonStorage + 0x4
+ thumb_func_end sub_8095ADC
+
+ thumb_func_start sub_8095B24
+sub_8095B24: @ 8095B24
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ movs r4, 0
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r5, r0, 5
+_08095B36:
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 4
+ ldr r1, _08095B54 @ =gPokemonStorage + 0x4
+ adds r0, r1
+ adds r0, r5, r0
+ movs r1, 0xB
+ bl GetBoxMonData
+ cmp r0, 0
+ bne _08095B58
+ lsls r0, r4, 16
+ asrs r0, 16
+ b _08095B66
+ .align 2, 0
+_08095B54: .4byte gPokemonStorage + 0x4
+_08095B58:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x1D
+ bls _08095B36
+ movs r0, 0x1
+ negs r0, r0
+_08095B66:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8095B24
+
+ thumb_func_start sub_8095B6C
+sub_8095B6C: @ 8095B6C
+ push {r4-r6,lr}
+ movs r5, 0
+ movs r6, 0
+_08095B72:
+ movs r0, 0x64
+ adds r1, r5, 0
+ muls r1, r0
+ ldr r0, _08095BB0 @ =gPlayerParty
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _08095B9A
+ adds r0, r4, 0
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0
+ bne _08095B9A
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+_08095B9A:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x5
+ bls _08095B72
+ lsls r0, r6, 24
+ lsrs r0, 24
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08095BB0: .4byte gPlayerParty
+ thumb_func_end sub_8095B6C
+
+ thumb_func_start CountAlivePartyMonsExceptOne
+CountAlivePartyMonsExceptOne: @ 8095BB4
+ push {r4-r7,lr}
+ lsls r0, 24
+ movs r5, 0
+ movs r6, 0
+ lsrs r7, r0, 24
+_08095BBE:
+ cmp r5, r7
+ beq _08095BF6
+ movs r0, 0x64
+ adds r1, r5, 0
+ muls r1, r0
+ ldr r0, _08095C0C @ =gPlayerParty
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _08095BF6
+ adds r0, r4, 0
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0
+ bne _08095BF6
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl GetMonData
+ cmp r0, 0
+ beq _08095BF6
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+_08095BF6:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x5
+ bls _08095BBE
+ lsls r0, r6, 24
+ lsrs r0, 24
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08095C0C: .4byte gPlayerParty
+ thumb_func_end CountAlivePartyMonsExceptOne
+
+ thumb_func_start sub_8095C10
+sub_8095C10: @ 8095C10
+ push {lr}
+ ldr r0, _08095C24 @ =gSpecialVar_0x8004
+ ldrb r0, [r0]
+ bl CountAlivePartyMonsExceptOne
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08095C24: .4byte gSpecialVar_0x8004
+ thumb_func_end sub_8095C10
+
+ thumb_func_start StorageSystemGetPartySize
+StorageSystemGetPartySize: @ 8095C28
+ push {r4,r5,lr}
+ movs r4, 0
+ movs r5, 0
+_08095C2E:
+ movs r0, 0x64
+ muls r0, r4
+ ldr r1, _08095C5C @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _08095C46
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+_08095C46:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x5
+ bls _08095C2E
+ lsls r0, r5, 24
+ lsrs r0, 24
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08095C5C: .4byte gPlayerParty
+ thumb_func_end StorageSystemGetPartySize
+
+ thumb_func_start unref_sub_8095C60
+unref_sub_8095C60: @ 8095C60
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ lsls r4, r2, 16
+ lsrs r4, 16
+ bl StringCopy
+ adds r1, r0, 0
+ adds r5, r4
+ cmp r1, r5
+ bcs _08095C7E
+ movs r0, 0
+_08095C76:
+ strb r0, [r1]
+ adds r1, 0x1
+ cmp r1, r5
+ bcc _08095C76
+_08095C7E:
+ movs r0, 0xFF
+ strb r0, [r1]
+ adds r0, r1, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end unref_sub_8095C60
+
+ thumb_func_start sub_8095C8C
+sub_8095C8C: @ 8095C8C
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ adds r6, r0, 0
+ adds r7, r3, 0
+ ldr r5, [sp, 0x1C]
+ ldr r4, [sp, 0x20]
+ ldr r0, [sp, 0x24]
+ mov r9, r0
+ ldr r0, [sp, 0x28]
+ ldr r3, [sp, 0x2C]
+ lsls r1, 16
+ lsrs r1, 16
+ lsls r2, 16
+ lsls r5, 16
+ lsrs r5, 16
+ lsls r4, 16
+ lsrs r4, 16
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ lsls r3, 16
+ lsrs r3, 16
+ mov r0, r9
+ lsls r0, 17
+ mov r9, r0
+ lsrs r2, 11
+ adds r2, r1
+ lsls r2, 1
+ adds r6, r2
+ adds r0, r4, 0
+ muls r0, r3
+ adds r0, r5
+ lsls r0, 1
+ adds r7, r0
+ movs r4, 0
+ cmp r4, r8
+ bcs _08095CFC
+ mov r0, r9
+ lsrs r0, 1
+ mov r9, r0
+ lsls r5, r3, 1
+_08095CE2:
+ adds r0, r7, 0
+ adds r1, r6, 0
+ mov r3, r9
+ lsrs r2, r3, 16
+ bl CpuSet
+ adds r6, 0x40
+ adds r7, r5
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, r8
+ bcc _08095CE2
+_08095CFC:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8095C8C
+
+ thumb_func_start unref_sub_8095D08
+unref_sub_8095D08: @ 8095D08
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ adds r4, r0, 0
+ ldr r0, [sp, 0x28]
+ lsls r1, 16
+ lsrs r1, 16
+ lsls r2, 16
+ lsls r0, 16
+ lsrs r0, 16
+ mov r10, r0
+ lsrs r2, 11
+ adds r2, r1
+ lsls r2, 1
+ adds r4, r2
+ lsls r3, 17
+ lsrs r0, r3, 16
+ str r0, [sp, 0x4]
+ movs r0, 0
+ cmp r0, r10
+ bcs _08095DB2
+ movs r6, 0x80
+ lsls r6, 5
+ mov r5, sp
+ ldr r7, _08095D74 @ =0x040000d4
+ lsrs r3, 17
+ mov r9, r3
+ mov r1, r9
+ movs r2, 0x81
+ lsls r2, 24
+ orrs r1, r2
+ mov r9, r1
+_08095D4E:
+ adds r3, r4, 0
+ ldr r2, [sp, 0x4]
+ movs r1, 0x40
+ adds r1, r4
+ mov r8, r1
+ adds r0, 0x1
+ mov r12, r0
+ cmp r2, r6
+ bhi _08095D78
+ movs r0, 0
+ strh r0, [r5]
+ mov r2, sp
+ str r2, [r7]
+ str r4, [r7, 0x4]
+ mov r0, r9
+ str r0, [r7, 0x8]
+ ldr r0, [r7, 0x8]
+ b _08095DA6
+ .align 2, 0
+_08095D74: .4byte 0x040000d4
+_08095D78:
+ movs r4, 0
+ strh r4, [r5]
+ ldr r1, _08095DC4 @ =0x040000d4
+ mov r0, sp
+ str r0, [r1]
+ str r3, [r1, 0x4]
+ ldr r0, _08095DC8 @ =0x81000800
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ adds r3, r6
+ subs r2, r6
+ cmp r2, r6
+ bhi _08095D78
+ strh r4, [r5]
+ mov r0, sp
+ str r0, [r1]
+ str r3, [r1, 0x4]
+ lsrs r0, r2, 1
+ movs r2, 0x81
+ lsls r2, 24
+ orrs r0, r2
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+_08095DA6:
+ mov r4, r8
+ mov r1, r12
+ lsls r0, r1, 16
+ lsrs r0, 16
+ cmp r0, r10
+ bcc _08095D4E
+_08095DB2:
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08095DC4: .4byte 0x040000d4
+_08095DC8: .4byte 0x81000800
+ thumb_func_end unref_sub_8095D08
+
+ thumb_func_start StorageSystemGetNextMonIndex
+StorageSystemGetNextMonIndex: @ 8095DCC
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ mov r8, r0
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r2, 24
+ lsrs r7, r2, 24
+ lsls r3, 24
+ lsrs r0, r3, 24
+ cmp r0, 0
+ beq _08095DE8
+ cmp r0, 0x2
+ bne _08095DEC
+_08095DE8:
+ movs r2, 0x1
+ b _08095DEE
+_08095DEC:
+ ldr r2, _08095E38 @ =0x0000ffff
+_08095DEE:
+ subs r0, 0x2
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bhi _08095E44
+ lsls r0, r1, 24
+ asrs r0, 24
+ lsls r2, 16
+ asrs r1, r2, 16
+ adds r1, r0
+ lsls r0, r1, 16
+ asrs r1, r0, 16
+ adds r6, r2, 0
+ cmp r1, 0
+ blt _08095E90
+ cmp r1, r7
+ bgt _08095E90
+_08095E10:
+ asrs r4, r0, 16
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 4
+ add r0, r8
+ movs r1, 0xB
+ bl GetBoxMonData
+ cmp r0, 0
+ bne _08095E3C
+ asrs r0, r6, 16
+ adds r0, r4, r0
+ lsls r0, 16
+ asrs r2, r0, 16
+ cmp r2, 0
+ blt _08095E90
+ cmp r2, r7
+ ble _08095E10
+ b _08095E90
+ .align 2, 0
+_08095E38: .4byte 0x0000ffff
+_08095E3C:
+ adds r0, r4, 0
+ b _08095E94
+_08095E40:
+ adds r0, r5, 0
+ b _08095E94
+_08095E44:
+ lsls r0, r1, 24
+ asrs r0, 24
+ lsls r2, 16
+ asrs r1, r2, 16
+ adds r1, r0
+ lsls r0, r1, 16
+ asrs r1, r0, 16
+ adds r6, r2, 0
+ cmp r1, 0
+ blt _08095E90
+ cmp r1, r7
+ bgt _08095E90
+_08095E5C:
+ asrs r5, r0, 16
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 4
+ mov r1, r8
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetBoxMonData
+ cmp r0, 0
+ beq _08095E80
+ adds r0, r4, 0
+ movs r1, 0x2D
+ bl GetBoxMonData
+ cmp r0, 0
+ beq _08095E40
+_08095E80:
+ asrs r0, r6, 16
+ adds r0, r5, r0
+ lsls r0, 16
+ asrs r2, r0, 16
+ cmp r2, 0
+ blt _08095E90
+ cmp r2, r7
+ ble _08095E5C
+_08095E90:
+ movs r0, 0x1
+ negs r0, r0
+_08095E94:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end StorageSystemGetNextMonIndex
+
+ thumb_func_start StorageSystemClearMessageWindow
+StorageSystemClearMessageWindow: @ 8095EA0
+ push {lr}
+ movs r0, 0x2
+ movs r1, 0xF
+ movs r2, 0x1B
+ movs r3, 0x12
+ bl MenuFillWindowRectWithBlankTile
+ pop {r0}
+ bx r0
+ thumb_func_end StorageSystemClearMessageWindow
+
+ thumb_func_start Task_PokemonStorageSystem
+Task_PokemonStorageSystem: @ 8095EB4
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _08095ED8 @ =gTasks
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x4
+ bls _08095ECE
+ b _080960F4
+_08095ECE:
+ lsls r0, 2
+ ldr r1, _08095EDC @ =_08095EE0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08095ED8: .4byte gTasks
+_08095EDC: .4byte _08095EE0
+ .align 2, 0
+_08095EE0:
+ .4byte _08095EF4
+ .4byte _08095F1C
+ .4byte _08095F30
+ .4byte _08096042
+ .4byte _080960DC
+_08095EF4:
+ ldrb r0, [r4, 0xA]
+ bl StorageSystemCreatePrimaryMenu
+ bl MenuDisplayMessageBox
+ ldr r1, _08095F18 @ =gUnknown_083B600C
+ movs r2, 0xA
+ ldrsh r0, [r4, r2]
+ lsls r0, 3
+ adds r1, 0x4
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x2
+ movs r2, 0xF
+ bl MenuPrint
+ b _08095F28
+ .align 2, 0
+_08095F18: .4byte gUnknown_083B600C
+_08095F1C:
+ bl sub_807D770
+ lsls r0, 24
+ cmp r0, 0
+ bne _08095F28
+ b _080960F4
+_08095F28:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080960F4
+_08095F30:
+ bl ProcessMenuInput
+ lsls r0, 24
+ asrs r0, 24
+ strh r0, [r4, 0xC]
+ movs r3, 0xC
+ ldrsh r1, [r4, r3]
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _08095FC8
+ cmp r1, r0
+ bgt _08095F52
+ subs r0, 0x1
+ cmp r1, r0
+ beq _08095F58
+ b _08095FE8
+_08095F52:
+ cmp r1, 0x3
+ beq _08095FC8
+ b _08095FE8
+_08095F58:
+ ldrh r3, [r4, 0xA]
+ strh r3, [r4, 0xE]
+ ldr r2, _08095FC0 @ =gMain
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _08095F76
+ subs r0, r3, 0x1
+ strh r0, [r4, 0xE]
+ lsls r0, 16
+ cmp r0, 0
+ bge _08095F76
+ movs r0, 0x3
+ strh r0, [r4, 0xE]
+_08095F76:
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _08095F92
+ ldrh r0, [r4, 0xE]
+ adds r0, 0x1
+ strh r0, [r4, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ ble _08095F92
+ movs r0, 0
+ strh r0, [r4, 0xE]
+_08095F92:
+ lsls r0, r3, 16
+ asrs r0, 16
+ ldrh r2, [r4, 0xE]
+ movs r3, 0xE
+ ldrsh r1, [r4, r3]
+ cmp r0, r1
+ bne _08095FA2
+ b _080960F4
+_08095FA2:
+ strh r2, [r4, 0xA]
+ bl StorageSystemClearMessageWindow
+ ldr r0, _08095FC4 @ =gUnknown_083B600C
+ movs r2, 0xA
+ ldrsh r1, [r4, r2]
+ lsls r1, 3
+ adds r0, 0x4
+ adds r1, r0
+ ldr r0, [r1]
+ movs r1, 0x2
+ movs r2, 0xF
+ bl MenuPrint
+ b _080960F4
+ .align 2, 0
+_08095FC0: .4byte gMain
+_08095FC4: .4byte gUnknown_083B600C
+_08095FC8:
+ bl sub_8072DEC
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0xD
+ movs r3, 0x9
+ bl MenuZeroFillWindowRect
+ bl ScriptContext2_Disable
+ bl EnableBothScriptContexts
+ adds r0, r5, 0
+ bl DestroyTask
+ b _080960F4
+_08095FE8:
+ movs r3, 0xC
+ ldrsh r0, [r4, r3]
+ cmp r0, 0
+ bne _08096008
+ bl StorageSystemGetPartySize
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x6
+ bne _08096008
+ bl StorageSystemClearMessageWindow
+ ldr r0, _08096004 @ =gPCText_PartyFull2
+ b _08096022
+ .align 2, 0
+_08096004: .4byte gPCText_PartyFull2
+_08096008:
+ movs r1, 0xC
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ bne _08096034
+ bl StorageSystemGetPartySize
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08096034
+ bl StorageSystemClearMessageWindow
+ ldr r0, _08096030 @ =gPCText_OnlyOne
+_08096022:
+ movs r1, 0x2
+ movs r2, 0xF
+ bl MenuPrint
+ movs r0, 0x3
+ strh r0, [r4, 0x8]
+ b _080960F4
+ .align 2, 0
+_08096030: .4byte gPCText_OnlyOne
+_08096034:
+ movs r0, 0x1
+ movs r1, 0
+ bl fade_screen
+ movs r0, 0x4
+ strh r0, [r4, 0x8]
+ b _080960F4
+_08096042:
+ ldr r0, _08096088 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r3, 0x3
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _080960B8
+ movs r0, 0x40
+ ands r0, r1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0
+ beq _08096090
+ ldrh r0, [r4, 0xA]
+ subs r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ cmp r0, 0
+ bge _0809606A
+ strh r3, [r4, 0xA]
+_0809606A:
+ movs r0, 0x1
+ negs r0, r0
+ bl MoveMenuCursor
+ bl GetMenuCursorPos
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0xA]
+ bl StorageSystemClearMessageWindow
+ ldr r1, _0809608C @ =gUnknown_083B600C
+ movs r3, 0xA
+ ldrsh r0, [r4, r3]
+ b _080960C2
+ .align 2, 0
+_08096088: .4byte gMain
+_0809608C: .4byte gUnknown_083B600C
+_08096090:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _080960F4
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ ble _080960A8
+ strh r2, [r4, 0xA]
+_080960A8:
+ movs r0, 0x1
+ bl MoveMenuCursor
+ bl GetMenuCursorPos
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0xA]
+_080960B8:
+ bl StorageSystemClearMessageWindow
+ ldr r1, _080960D8 @ =gUnknown_083B600C
+ movs r2, 0xA
+ ldrsh r0, [r4, r2]
+_080960C2:
+ lsls r0, 3
+ adds r1, 0x4
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x2
+ movs r2, 0xF
+ bl MenuPrint
+ movs r0, 0x2
+ strh r0, [r4, 0x8]
+ b _080960F4
+ .align 2, 0
+_080960D8: .4byte gUnknown_083B600C
+_080960DC:
+ ldr r0, _080960FC @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080960F4
+ ldrb r0, [r4, 0xC]
+ bl task_intro_29
+ adds r0, r5, 0
+ bl DestroyTask
+_080960F4:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080960FC: .4byte gPaletteFade
+ thumb_func_end Task_PokemonStorageSystem
+
+ thumb_func_start ShowPokemonStorageSystem
+ShowPokemonStorageSystem: @ 8096100
+ push {lr}
+ ldr r0, _08096128 @ =Task_PokemonStorageSystem
+ movs r1, 0x50
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0809612C @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ movs r0, 0
+ strh r0, [r1, 0x8]
+ strh r0, [r1, 0xA]
+ bl ScriptContext2_Enable
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08096128: .4byte Task_PokemonStorageSystem
+_0809612C: .4byte gTasks
+ thumb_func_end ShowPokemonStorageSystem
+
+ thumb_func_start sub_8096130
+sub_8096130: @ 8096130
+ push {lr}
+ ldr r0, _0809615C @ =Task_PokemonStorageSystem
+ movs r1, 0x50
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08096160 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ movs r0, 0
+ strh r0, [r1, 0x8]
+ ldr r0, _08096164 @ =gUnknown_02038474
+ ldrb r0, [r0]
+ strh r0, [r1, 0xA]
+ bl pal_fill_black
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809615C: .4byte Task_PokemonStorageSystem
+_08096160: .4byte gTasks
+_08096164: .4byte gUnknown_02038474
+ thumb_func_end sub_8096130
+
+ thumb_func_start StorageSystemCreatePrimaryMenu
+StorageSystemCreatePrimaryMenu: @ 8096168
+ push {r4,lr}
+ sub sp, 0x8
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0xD
+ movs r3, 0x9
+ bl MenuDrawTextWindow
+ ldr r3, _080961A4 @ =gUnknown_083B600C
+ movs r0, 0x1
+ movs r1, 0x1
+ movs r2, 0x4
+ bl PrintMenuItems
+ str r4, [sp]
+ movs r0, 0xC
+ str r0, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0x1
+ movs r2, 0x1
+ movs r3, 0x4
+ bl InitMenu
+ add sp, 0x8
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080961A4: .4byte gUnknown_083B600C
+ thumb_func_end StorageSystemCreatePrimaryMenu
+
+ thumb_func_start sub_80961A8
+sub_80961A8: @ 80961A8
+ push {lr}
+ ldr r1, _080961C4 @ =gUnknown_02038474
+ ldr r0, _080961C8 @ =gUnknown_083B6DB4
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x5]
+ strb r0, [r1]
+ ldr r1, _080961CC @ =gUnknown_0300485C
+ ldr r0, _080961D0 @ =sub_8096130
+ str r0, [r1]
+ ldr r0, _080961D4 @ =c2_exit_to_overworld_2_switch
+ bl SetMainCallback2
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080961C4: .4byte gUnknown_02038474
+_080961C8: .4byte gUnknown_083B6DB4
+_080961CC: .4byte gUnknown_0300485C
+_080961D0: .4byte sub_8096130
+_080961D4: .4byte c2_exit_to_overworld_2_switch
+ thumb_func_end sub_80961A8
+
+ thumb_func_start sub_80961D8
+sub_80961D8: @ 80961D8
+ push {r4-r7,lr}
+ ldr r1, _08096258 @ =gPokemonStorage
+ movs r0, 0
+ strb r0, [r1]
+ movs r5, 0
+ adds r7, r1, 0x4
+_080961E4:
+ movs r4, 0
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r6, r0, 5
+_080961F0:
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 4
+ adds r0, r7
+ adds r0, r6, r0
+ bl ZeroBoxMonData
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x1D
+ bls _080961F0
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0xD
+ bls _080961E4
+ movs r5, 0
+_08096214:
+ lsls r0, r5, 3
+ adds r0, r5
+ ldr r6, _0809625C @ =gPokemonStorage + 0x8344
+ adds r0, r6
+ ldr r1, _08096260 @ =gPCText_BOX
+ bl StringCopy
+ adds r4, r5, 0x1
+ adds r1, r4, 0
+ movs r2, 0
+ movs r3, 0x2
+ bl ConvertIntToDecimalStringN
+ lsls r4, 16
+ lsrs r5, r4, 16
+ cmp r5, 0xD
+ bls _08096214
+ movs r5, 0
+ adds r3, r6, 0
+ adds r3, 0x7E
+ movs r2, 0x3
+_0809623E:
+ adds r0, r5, r3
+ adds r1, r5, 0
+ ands r1, r2
+ strb r1, [r0]
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0xD
+ bls _0809623E
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08096258: .4byte gPokemonStorage
+_0809625C: .4byte gPokemonStorage + 0x8344
+_08096260: .4byte gPCText_BOX
+ thumb_func_end sub_80961D8
+
+ thumb_func_start sub_8096264
+sub_8096264: @ 8096264
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ sub sp, 0x20
+ mov r8, r0
+ adds r4, r1, 0
+ adds r6, r2, 0
+ mov r9, r3
+ lsls r4, 16
+ lsrs r4, 16
+ lsls r6, 16
+ lsrs r6, 16
+ mov r0, r9
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ ldr r0, _080962F4 @ =gBoxSelectionPopupPalette
+ str r0, [sp, 0x18]
+ ldr r1, _080962F8 @ =0xffff0000
+ add r5, sp, 0x18
+ ldr r0, [r5, 0x4]
+ ands r0, r1
+ orrs r0, r6
+ str r0, [r5, 0x4]
+ mov r1, sp
+ ldr r0, _080962FC @ =gBoxSelectionPopupCenterTiles
+ str r0, [sp]
+ movs r0, 0x80
+ lsls r0, 4
+ strh r0, [r1, 0x4]
+ strh r4, [r1, 0x6]
+ ldr r0, _08096300 @ =gBoxSelectionPopupSidesTiles
+ str r0, [sp, 0x8]
+ movs r0, 0xC0
+ lsls r0, 1
+ strh r0, [r1, 0xC]
+ adds r0, r4, 0x1
+ strh r0, [r1, 0xE]
+ add r0, sp, 0x10
+ movs r1, 0
+ movs r2, 0x8
+ bl memset
+ adds r0, r5, 0
+ bl LoadSpritePalette
+ mov r0, sp
+ bl LoadSpriteSheets
+ ldr r0, _08096304 @ =gUnknown_02038478
+ mov r1, r8
+ str r1, [r0]
+ movs r0, 0x90
+ lsls r0, 2
+ add r0, r8
+ strh r4, [r0]
+ ldr r0, _08096308 @ =0x00000242
+ add r0, r8
+ strh r6, [r0]
+ ldr r0, _0809630C @ =0x0000023e
+ add r8, r0
+ mov r0, r9
+ mov r1, r8
+ strb r0, [r1]
+ add sp, 0x20
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080962F4: .4byte gBoxSelectionPopupPalette
+_080962F8: .4byte 0xffff0000
+_080962FC: .4byte gBoxSelectionPopupCenterTiles
+_08096300: .4byte gBoxSelectionPopupSidesTiles
+_08096304: .4byte gUnknown_02038478
+_08096308: .4byte 0x00000242
+_0809630C: .4byte 0x0000023e
+ thumb_func_end sub_8096264
+
+ thumb_func_start sub_8096310
+sub_8096310: @ 8096310
+ push {r4,r5,lr}
+ ldr r4, _08096344 @ =gUnknown_02038478
+ ldr r0, [r4]
+ ldr r1, _08096348 @ =0x00000242
+ adds r0, r1
+ ldrh r0, [r0]
+ bl FreeSpritePaletteByTag
+ ldr r0, [r4]
+ movs r5, 0x90
+ lsls r5, 2
+ adds r0, r5
+ ldrh r0, [r0]
+ bl FreeSpriteTilesByTag
+ ldr r0, [r4]
+ adds r0, r5
+ ldrh r0, [r0]
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ bl FreeSpriteTilesByTag
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08096344: .4byte gUnknown_02038478
+_08096348: .4byte 0x00000242
+ thumb_func_end sub_8096310
+
+ thumb_func_start sub_809634C
+sub_809634C: @ 809634C
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80963D0
+ pop {r0}
+ bx r0
+ thumb_func_end sub_809634C
+
+ thumb_func_start sub_809635C
+sub_809635C: @ 809635C
+ push {lr}
+ bl sub_809658C
+ pop {r0}
+ bx r0
+ thumb_func_end sub_809635C
+
+ thumb_func_start sub_8096368
+sub_8096368: @ 8096368
+ push {lr}
+ ldr r0, _08096380 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _08096384
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0xC9
+ b _080963CC
+ .align 2, 0
+_08096380: .4byte gMain
+_08096384:
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080963A4
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _080963A0 @ =gUnknown_02038478
+ ldr r0, [r0]
+ movs r1, 0x8F
+ lsls r1, 2
+ adds r0, r1
+ ldrb r0, [r0]
+ b _080963CC
+ .align 2, 0
+_080963A0: .4byte gUnknown_02038478
+_080963A4:
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _080963B8
+ movs r0, 0x5
+ bl PlaySE
+ bl sub_809662C
+ b _080963CA
+_080963B8:
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080963CA
+ movs r0, 0x5
+ bl PlaySE
+ bl sub_80965F8
+_080963CA:
+ movs r0, 0xC8
+_080963CC:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8096368
+
+ thumb_func_start sub_80963D0
+sub_80963D0: @ 80963D0
+ push {r4-r6,lr}
+ sub sp, 0x3C
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ movs r0, 0
+ movs r1, 0
+ str r0, [sp, 0x34]
+ str r1, [sp, 0x38]
+ movs r1, 0xC0
+ lsls r1, 24
+ ldr r0, [sp, 0x34]
+ orrs r0, r1
+ str r0, [sp, 0x34]
+ ldr r1, _08096564 @ =0xffff0fff
+ add r4, sp, 0x34
+ ldr r0, [r4, 0x4]
+ ands r0, r1
+ movs r1, 0x80
+ lsls r1, 5
+ orrs r0, r1
+ str r0, [r4, 0x4]
+ add r1, sp, 0x1C
+ movs r2, 0
+ strh r2, [r1]
+ mov r0, sp
+ adds r0, 0x1E
+ strh r2, [r0]
+ str r4, [sp, 0x20]
+ ldr r0, _08096568 @ =gDummySpriteAnimTable
+ str r0, [sp, 0x24]
+ str r2, [sp, 0x28]
+ ldr r0, _0809656C @ =gDummySpriteAffineAnimTable
+ str r0, [sp, 0x2C]
+ ldr r0, _08096570 @ =SpriteCallbackDummy
+ str r0, [sp, 0x30]
+ add r0, sp, 0x4
+ movs r2, 0x18
+ bl memcpy
+ ldr r6, _08096574 @ =gUnknown_02038478
+ ldr r0, [r6]
+ movs r1, 0x8F
+ lsls r1, 2
+ adds r0, r1
+ strb r5, [r0]
+ add r2, sp, 0x4
+ ldr r1, [r6]
+ movs r5, 0x90
+ lsls r5, 2
+ adds r0, r1, r5
+ ldrh r0, [r0]
+ strh r0, [r2]
+ ldr r3, _08096578 @ =0x00000242
+ adds r1, r3
+ ldrh r0, [r1]
+ strh r0, [r2, 0x2]
+ adds r0, r2, 0
+ movs r1, 0xA0
+ movs r2, 0x60
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r1, r0, 24
+ ldr r3, [r6]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0809657C @ =gSprites
+ adds r0, r1
+ str r0, [r3]
+ ldrb r2, [r4, 0x1]
+ movs r1, 0x3F
+ adds r0, r1, 0
+ ands r0, r2
+ movs r2, 0x80
+ orrs r0, r2
+ strb r0, [r4, 0x1]
+ ldrb r0, [r4, 0x3]
+ ands r1, r0
+ movs r0, 0x40
+ orrs r1, r0
+ strb r1, [r4, 0x3]
+ add r1, sp, 0x4
+ adds r3, r5
+ ldrh r0, [r3]
+ adds r0, 0x1
+ strh r0, [r1]
+ ldr r0, _08096580 @ =gSpriteAnimTable_83B604C
+ str r0, [sp, 0xC]
+ movs r4, 0
+_08096488:
+ ldr r0, [r6]
+ ldr r1, _08096584 @ =0x0000023e
+ adds r0, r1
+ ldrb r3, [r0]
+ add r0, sp, 0x4
+ movs r1, 0x7C
+ movs r2, 0x50
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r1, r0, 24
+ ldr r2, [r6]
+ lsls r3, r4, 2
+ adds r2, 0x4
+ adds r2, r3
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0809657C @ =gSprites
+ adds r1, r0, r1
+ str r1, [r2]
+ movs r5, 0
+ movs r0, 0x2
+ ands r0, r4
+ cmp r0, 0
+ beq _080964C2
+ movs r0, 0xC4
+ strh r0, [r1, 0x20]
+ movs r5, 0x2
+_080964C2:
+ movs r0, 0x1
+ ands r0, r4
+ cmp r0, 0
+ beq _080964E6
+ ldr r1, [r6]
+ adds r1, 0x4
+ adds r1, r3
+ ldr r2, [r1]
+ movs r0, 0x70
+ strh r0, [r2, 0x22]
+ ldr r2, [r1]
+ ldrb r1, [r2, 0x3]
+ movs r0, 0x3F
+ ands r0, r1
+ strb r0, [r2, 0x3]
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+_080964E6:
+ ldr r0, [r6]
+ adds r0, 0x4
+ adds r0, r3
+ ldr r0, [r0]
+ lsls r1, r5, 24
+ lsrs r1, 24
+ bl StartSpriteAnim
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x3
+ bls _08096488
+ movs r4, 0
+ ldr r5, _08096574 @ =gUnknown_02038478
+_08096504:
+ lsls r0, r4, 3
+ adds r0, r4
+ lsls r0, 19
+ movs r3, 0xF8
+ lsls r3, 15
+ adds r0, r3
+ lsrs r0, 16
+ lsls r2, r4, 24
+ lsrs r2, 24
+ ldr r1, [r5]
+ ldr r3, _08096584 @ =0x0000023e
+ adds r1, r3
+ ldrb r1, [r1]
+ str r1, [sp]
+ movs r1, 0x58
+ movs r3, 0
+ bl sub_809A9A0
+ adds r2, r0, 0
+ ldr r0, [r5]
+ lsls r1, r4, 2
+ adds r0, 0x20
+ adds r0, r1
+ str r2, [r0]
+ cmp r2, 0
+ beq _0809654C
+ movs r1, 0x1
+ cmp r4, 0
+ bne _08096544
+ movs r3, 0x1
+ negs r3, r3
+ adds r1, r3, 0
+_08096544:
+ strh r1, [r2, 0x2E]
+ ldr r1, [r0]
+ ldr r0, _08096588 @ =sub_8096784
+ str r0, [r1, 0x1C]
+_0809654C:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x1
+ bls _08096504
+ bl sub_809665C
+ add sp, 0x3C
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08096564: .4byte 0xffff0fff
+_08096568: .4byte gDummySpriteAnimTable
+_0809656C: .4byte gDummySpriteAffineAnimTable
+_08096570: .4byte SpriteCallbackDummy
+_08096574: .4byte gUnknown_02038478
+_08096578: .4byte 0x00000242
+_0809657C: .4byte gSprites
+_08096580: .4byte gSpriteAnimTable_83B604C
+_08096584: .4byte 0x0000023e
+_08096588: .4byte sub_8096784
+ thumb_func_end sub_80963D0
+
+ thumb_func_start sub_809658C
+sub_809658C: @ 809658C
+ push {r4-r6,lr}
+ ldr r4, _080965F4 @ =gUnknown_02038478
+ ldr r0, [r4]
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _080965A2
+ bl DestroySprite
+ ldr r1, [r4]
+ movs r0, 0
+ str r0, [r1]
+_080965A2:
+ movs r5, 0
+ adds r6, r4, 0
+_080965A6:
+ ldr r0, [r6]
+ lsls r4, r5, 2
+ adds r0, 0x4
+ adds r0, r4
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _080965C2
+ bl DestroySprite
+ ldr r0, [r6]
+ adds r0, 0x4
+ adds r0, r4
+ movs r1, 0
+ str r1, [r0]
+_080965C2:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x3
+ bls _080965A6
+ movs r5, 0
+_080965CE:
+ ldr r0, _080965F4 @ =gUnknown_02038478
+ ldr r0, [r0]
+ lsls r1, r5, 2
+ adds r0, 0x20
+ adds r0, r1
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _080965E2
+ bl DestroySprite
+_080965E2:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x1
+ bls _080965CE
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080965F4: .4byte gUnknown_02038478
+ thumb_func_end sub_809658C
+
+ thumb_func_start sub_80965F8
+sub_80965F8: @ 80965F8
+ push {lr}
+ ldr r2, _08096628 @ =gUnknown_02038478
+ ldr r1, [r2]
+ movs r0, 0x8F
+ lsls r0, 2
+ adds r1, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xD
+ bls _0809661E
+ ldr r0, [r2]
+ movs r1, 0x8F
+ lsls r1, 2
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+_0809661E:
+ bl sub_809665C
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08096628: .4byte gUnknown_02038478
+ thumb_func_end sub_80965F8
+
+ thumb_func_start sub_809662C
+sub_809662C: @ 809662C
+ push {lr}
+ ldr r0, _08096644 @ =gUnknown_02038478
+ ldr r2, [r0]
+ movs r1, 0x8F
+ lsls r1, 2
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08096648
+ subs r1, r0, 0x1
+ b _0809664A
+ .align 2, 0
+_08096644: .4byte gUnknown_02038478
+_08096648:
+ movs r1, 0xD
+_0809664A:
+ movs r3, 0x8F
+ lsls r3, 2
+ adds r0, r2, r3
+ strb r1, [r0]
+ bl sub_809665C
+ pop {r0}
+ bx r0
+ thumb_func_end sub_809662C
+
+ thumb_func_start sub_809665C
+sub_809665C: @ 809665C
+ push {r4-r7,lr}
+ ldr r5, _080966B4 @ =gUnknown_02038478
+ ldr r0, [r5]
+ movs r4, 0x8F
+ lsls r4, 2
+ adds r0, r4
+ ldrb r0, [r0]
+ bl sub_8095ADC
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r2, _080966B8 @ =gStringVar1
+ movs r6, 0xFC
+ strb r6, [r2]
+ movs r0, 0x4
+ strb r0, [r2, 0x1]
+ movs r0, 0xF
+ strb r0, [r2, 0x2]
+ movs r0, 0x1
+ strb r0, [r2, 0x3]
+ movs r0, 0xE
+ strb r0, [r2, 0x4]
+ adds r2, 0x5
+ ldr r0, [r5]
+ adds r0, r4
+ ldrb r0, [r0]
+ lsls r1, r0, 3
+ adds r1, r0
+ ldr r0, _080966BC @ =gPokemonStorage + 0x8344
+ adds r1, r0
+ adds r0, r2, 0
+ bl StringCopy
+ adds r2, r0, 0
+ movs r0, 0xFE
+ strb r0, [r2]
+ strb r6, [r2, 0x1]
+ movs r0, 0x11
+ strb r0, [r2, 0x2]
+ cmp r7, 0x9
+ bhi _080966C0
+ movs r0, 0x28
+ b _080966C2
+ .align 2, 0
+_080966B4: .4byte gUnknown_02038478
+_080966B8: .4byte gStringVar1
+_080966BC: .4byte gPokemonStorage + 0x8344
+_080966C0:
+ movs r0, 0x22
+_080966C2:
+ strb r0, [r2, 0x3]
+ adds r2, 0x4
+ adds r0, r2, 0
+ adds r1, r7, 0
+ bl ConvertIntToDecimalString
+ adds r2, r0, 0
+ movs r0, 0xBA
+ strb r0, [r2]
+ movs r0, 0xA4
+ strb r0, [r2, 0x1]
+ movs r0, 0xA1
+ strb r0, [r2, 0x2]
+ movs r0, 0xFF
+ strb r0, [r2, 0x3]
+ ldr r0, _080966F0 @ =gStringVar1
+ movs r1, 0
+ movs r2, 0x1
+ bl sub_80966F4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080966F0: .4byte gStringVar1
+ thumb_func_end sub_809665C
+
+ thumb_func_start sub_80966F4
+sub_80966F4: @ 80966F4
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ sub sp, 0x4
+ mov r8, r0
+ adds r5, r1, 0
+ adds r4, r2, 0
+ lsls r5, 16
+ lsrs r5, 16
+ lsls r4, 16
+ lsrs r4, 16
+ ldr r0, _08096764 @ =gUnknown_02038478
+ ldr r0, [r0]
+ movs r1, 0x90
+ lsls r1, 2
+ adds r0, r1
+ ldrh r0, [r0]
+ bl GetSpriteTileStartByTag
+ adds r6, r0, 0
+ lsls r6, 16
+ lsrs r6, 11
+ lsls r4, 8
+ ldr r2, _08096768 @ =0x06010000
+ adds r4, r2
+ adds r6, r4
+ lsls r5, 5
+ adds r6, r5
+ ldr r0, _0809676C @ =gUnknown_083B6DB8
+ ldr r5, [r0]
+ mov r1, sp
+ ldr r2, _08096770 @ =0x00001111
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r4, _08096774 @ =0x040000d4
+ str r1, [r4]
+ str r5, [r4, 0x4]
+ ldr r0, _08096778 @ =0x81000200
+ str r0, [r4, 0x8]
+ ldr r0, [r4, 0x8]
+ ldr r0, _0809677C @ =gWindowConfig_81E6D38
+ adds r1, r5, 0
+ mov r2, r8
+ bl sub_8004E3C
+ str r5, [r4]
+ str r6, [r4, 0x4]
+ ldr r0, _08096780 @ =0x80000200
+ str r0, [r4, 0x8]
+ ldr r0, [r4, 0x8]
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08096764: .4byte gUnknown_02038478
+_08096768: .4byte 0x06010000
+_0809676C: .4byte gUnknown_083B6DB8
+_08096770: .4byte 0x00001111
+_08096774: .4byte 0x040000d4
+_08096778: .4byte 0x81000200
+_0809677C: .4byte gWindowConfig_81E6D38
+_08096780: .4byte 0x80000200
+ thumb_func_end sub_80966F4
+
+ thumb_func_start sub_8096784
+sub_8096784: @ 8096784
+ push {lr}
+ adds r1, r0, 0
+ ldrh r0, [r1, 0x30]
+ adds r0, 0x1
+ movs r2, 0
+ strh r0, [r1, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ ble _080967B4
+ strh r2, [r1, 0x30]
+ ldrh r0, [r1, 0x2E]
+ ldrh r3, [r1, 0x24]
+ adds r0, r3
+ strh r0, [r1, 0x24]
+ ldrh r0, [r1, 0x32]
+ adds r0, 0x1
+ strh r0, [r1, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x5
+ ble _080967B4
+ strh r2, [r1, 0x32]
+ strh r2, [r1, 0x24]
+_080967B4:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8096784
+
+ thumb_func_start task_intro_29
+task_intro_29: @ 80967B8
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080967D0 @ =gUnknown_0203847D
+ strb r0, [r1]
+ ldr r1, _080967D4 @ =0x02000000
+ strb r0, [r1, 0x5]
+ ldr r0, _080967D8 @ =sub_8096884
+ bl SetMainCallback2
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080967D0: .4byte gUnknown_0203847D
+_080967D4: .4byte 0x02000000
+_080967D8: .4byte sub_8096884
+ thumb_func_end task_intro_29
+
+ thumb_func_start sub_80967DC
+sub_80967DC: @ 80967DC
+ ldr r0, _08096800 @ =REG_BG0HOFS
+ movs r1, 0
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x4
+ strh r1, [r0]
+ subs r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x4
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ bx lr
+ .align 2, 0
+_08096800: .4byte REG_BG0HOFS
+ thumb_func_end sub_80967DC
+
+ thumb_func_start sub_8096804
+sub_8096804: @ 8096804
+ push {lr}
+ bl ResetPaletteFade
+ bl ResetSpriteData
+ bl FreeSpriteTileRanges
+ bl FreeAllSpritePalettes
+ bl ResetTasks
+ ldr r1, _0809683C @ =gReservedSpriteTileCount
+ movs r2, 0xA0
+ lsls r2, 2
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, _08096840 @ =0x02000020
+ adds r1, r0, 0
+ adds r1, 0x8
+ movs r2, 0x8
+ bl sub_809CFDC
+ ldr r1, _08096844 @ =gKeyRepeatStartDelay
+ movs r0, 0x14
+ strh r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809683C: .4byte gReservedSpriteTileCount
+_08096840: .4byte 0x02000020
+_08096844: .4byte gKeyRepeatStartDelay
+ thumb_func_end sub_8096804
+
+ thumb_func_start sub_8096848
+sub_8096848: @ 8096848
+ push {lr}
+ bl sub_809B0D4
+ ldr r2, _08096868 @ =gUnknown_0203847C
+ movs r1, 0
+ ldr r0, _0809686C @ =0x02000000
+ ldrb r0, [r0, 0x5]
+ cmp r0, 0x1
+ bne _0809685C
+ movs r1, 0x1
+_0809685C:
+ strb r1, [r2]
+ ldr r1, _08096870 @ =gUnknown_0203847E
+ movs r0, 0
+ strb r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08096868: .4byte gUnknown_0203847C
+_0809686C: .4byte 0x02000000
+_08096870: .4byte gUnknown_0203847E
+ thumb_func_end sub_8096848
+
+ thumb_func_start sub_8096874
+sub_8096874: @ 8096874
+ movs r1, 0x80
+ lsls r1, 19
+ movs r2, 0xFA
+ lsls r2, 5
+ adds r0, r2, 0
+ strh r0, [r1]
+ bx lr
+ thumb_func_end sub_8096874
+
+ thumb_func_start sub_8096884
+sub_8096884: @ 8096884
+ push {lr}
+ ldr r0, _080968A0 @ =gMain
+ ldr r1, _080968A4 @ =0x0000043c
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x9
+ bls _08096894
+ b _08096986
+_08096894:
+ lsls r0, 2
+ ldr r1, _080968A8 @ =_080968AC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080968A0: .4byte gMain
+_080968A4: .4byte 0x0000043c
+_080968A8: .4byte _080968AC
+ .align 2, 0
+_080968AC:
+ .4byte _080968D4
+ .4byte _080968E8
+ .4byte _080968F4
+ .4byte _08096904
+ .4byte _0809690E
+ .4byte _08096918
+ .4byte _0809691E
+ .4byte _08096924
+ .4byte _0809692A
+ .4byte _08096964
+_080968D4:
+ movs r0, 0
+ bl SetVBlankCallback
+ movs r1, 0x80
+ lsls r1, 19
+ movs r0, 0
+ strh r0, [r1]
+ bl sub_8096804
+ b _0809697A
+_080968E8:
+ ldr r0, _080968F0 @ =gWindowConfig_81E6D00
+ bl SetUpWindowConfig
+ b _0809697A
+ .align 2, 0
+_080968F0: .4byte gWindowConfig_81E6D00
+_080968F4:
+ ldr r0, _08096900 @ =gWindowConfig_81E6D00
+ bl InitMenuWindow
+ bl MenuZeroFillScreen
+ b _0809697A
+ .align 2, 0
+_08096900: .4byte gWindowConfig_81E6D00
+_08096904:
+ bl sub_80967DC
+ bl sub_8096848
+ b _0809697A
+_0809690E:
+ bl sub_8098B48
+ bl sub_809AA24
+ b _0809697A
+_08096918:
+ bl sub_8097DE0
+ b _0809697A
+_0809691E:
+ bl sub_8097E70
+ b _0809697A
+_08096924:
+ bl sub_8098400
+ b _0809697A
+_0809692A:
+ ldr r0, _08096950 @ =gPokemonStorage
+ ldrb r0, [r0]
+ bl sub_8099BF8
+ ldr r2, _08096954 @ =0x02000000
+ ldr r1, _08096958 @ =0x000012bc
+ adds r0, r2, r1
+ movs r1, 0xA
+ strh r1, [r0]
+ ldr r1, _0809695C @ =0x000012be
+ adds r2, r1
+ ldr r1, _08096960 @ =0x0000dacb
+ strh r1, [r2]
+ bl sub_80F727C
+ bl sub_80F7404
+ b _0809697A
+ .align 2, 0
+_08096950: .4byte gPokemonStorage
+_08096954: .4byte 0x02000000
+_08096958: .4byte 0x000012bc
+_0809695C: .4byte 0x000012be
+_08096960: .4byte 0x0000dacb
+_08096964:
+ bl sub_8096874
+ ldr r0, _0809698C @ =sub_8096BF0
+ bl sub_8096BE0
+ ldr r0, _08096990 @ =sub_8096B38
+ bl SetMainCallback2
+ ldr r0, _08096994 @ =sub_8096AFC
+ bl SetVBlankCallback
+_0809697A:
+ ldr r1, _08096998 @ =gMain
+ ldr r0, _0809699C @ =0x0000043c
+ adds r1, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_08096986:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809698C: .4byte sub_8096BF0
+_08096990: .4byte sub_8096B38
+_08096994: .4byte sub_8096AFC
+_08096998: .4byte gMain
+_0809699C: .4byte 0x0000043c
+ thumb_func_end sub_8096884
+
+ thumb_func_start sub_80969A0
+sub_80969A0: @ 80969A0
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r0, _080969BC @ =gMain
+ ldr r1, _080969C0 @ =0x0000043c
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0xA
+ bls _080969B2
+ b _08096AE4
+_080969B2:
+ lsls r0, 2
+ ldr r1, _080969C4 @ =_080969C8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080969BC: .4byte gMain
+_080969C0: .4byte 0x0000043c
+_080969C4: .4byte _080969C8
+ .align 2, 0
+_080969C8:
+ .4byte _080969F4
+ .4byte _08096A34
+ .4byte _08096A40
+ .4byte _08096A50
+ .4byte _08096A56
+ .4byte _08096A60
+ .4byte _08096A66
+ .4byte _08096A6C
+ .4byte _08096A72
+ .4byte _08096AAC
+ .4byte _08096AC8
+_080969F4:
+ movs r0, 0
+ bl SetVBlankCallback
+ movs r1, 0x80
+ lsls r1, 19
+ movs r0, 0
+ strh r0, [r1]
+ ldr r1, _08096A28 @ =0x02000000
+ ldr r0, _08096A2C @ =gUnknown_0203847D
+ ldrb r0, [r0]
+ strb r0, [r1, 0x5]
+ bl sub_8096804
+ ldr r4, _08096A30 @ =gUnknown_0203847F
+ ldrb r0, [r4]
+ cmp r0, 0x1
+ bne _08096A1A
+ bl sub_809BBC0
+_08096A1A:
+ ldrb r0, [r4]
+ cmp r0, 0
+ bne _08096AD8
+ bl sub_809BD14
+ b _08096AD8
+ .align 2, 0
+_08096A28: .4byte 0x02000000
+_08096A2C: .4byte gUnknown_0203847D
+_08096A30: .4byte gUnknown_0203847F
+_08096A34:
+ ldr r0, _08096A3C @ =gWindowConfig_81E6D00
+ bl SetUpWindowConfig
+ b _08096AD8
+ .align 2, 0
+_08096A3C: .4byte gWindowConfig_81E6D00
+_08096A40:
+ ldr r0, _08096A4C @ =gWindowConfig_81E6D00
+ bl InitMenuWindow
+ bl MenuZeroFillScreen
+ b _08096AD8
+ .align 2, 0
+_08096A4C: .4byte gWindowConfig_81E6D00
+_08096A50:
+ bl sub_80967DC
+ b _08096AD8
+_08096A56:
+ bl sub_8098B48
+ bl sub_809AA98
+ b _08096AD8
+_08096A60:
+ bl sub_8097DE0
+ b _08096AD8
+_08096A66:
+ bl sub_8097E70
+ b _08096AD8
+_08096A6C:
+ bl sub_8098400
+ b _08096AD8
+_08096A72:
+ ldr r0, _08096A98 @ =gPokemonStorage
+ ldrb r0, [r0]
+ bl sub_8099BF8
+ ldr r2, _08096A9C @ =0x02000000
+ ldr r1, _08096AA0 @ =0x000012bc
+ adds r0, r2, r1
+ movs r1, 0xA
+ strh r1, [r0]
+ ldr r1, _08096AA4 @ =0x000012be
+ adds r2, r1
+ ldr r1, _08096AA8 @ =0x0000dacb
+ strh r1, [r2]
+ bl sub_80F727C
+ bl sub_80F7404
+ b _08096AD8
+ .align 2, 0
+_08096A98: .4byte gPokemonStorage
+_08096A9C: .4byte 0x02000000
+_08096AA0: .4byte 0x000012bc
+_08096AA4: .4byte 0x000012be
+_08096AA8: .4byte 0x0000dacb
+_08096AAC:
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldr r0, _08096AC4 @ =sub_8096AFC
+ bl SetVBlankCallback
+ b _08096AD8
+ .align 2, 0
+_08096AC4: .4byte sub_8096AFC
+_08096AC8:
+ bl sub_8096874
+ ldr r0, _08096AEC @ =sub_8096C68
+ bl sub_8096BE0
+ ldr r0, _08096AF0 @ =sub_8096B38
+ bl SetMainCallback2
+_08096AD8:
+ ldr r1, _08096AF4 @ =gMain
+ ldr r0, _08096AF8 @ =0x0000043c
+ adds r1, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_08096AE4:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08096AEC: .4byte sub_8096C68
+_08096AF0: .4byte sub_8096B38
+_08096AF4: .4byte gMain
+_08096AF8: .4byte 0x0000043c
+ thumb_func_end sub_80969A0
+
+ thumb_func_start sub_8096AFC
+sub_8096AFC: @ 8096AFC
+ push {lr}
+ ldr r2, _08096B2C @ =REG_BG2HOFS
+ ldr r1, _08096B30 @ =0x02000000
+ ldr r3, _08096B34 @ =0x000008b4
+ adds r0, r1, r3
+ ldrh r0, [r0]
+ strh r0, [r2]
+ adds r2, 0x4
+ ldrh r0, [r1, 0xA]
+ strh r0, [r2]
+ adds r2, 0x2
+ ldrh r0, [r1, 0x8]
+ strh r0, [r2]
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl sub_809CFF0
+ bl TransferPlttBuffer
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08096B2C: .4byte REG_BG2HOFS
+_08096B30: .4byte 0x02000000
+_08096B34: .4byte 0x000008b4
+ thumb_func_end sub_8096AFC
+
+ thumb_func_start sub_8096B38
+sub_8096B38: @ 8096B38
+ push {lr}
+ ldr r0, _08096B58 @ =0x02000000
+ ldr r0, [r0]
+ bl _call_via_r0
+ bl sub_8097E44
+ bl sub_8098734
+ bl AnimateSprites
+ bl BuildOamBuffer
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08096B58: .4byte 0x02000000
+ thumb_func_end sub_8096B38
+
+ thumb_func_start sub_8096B5C
+sub_8096B5C: @ 8096B5C
+ push {r4,r5,lr}
+ sub sp, 0x8
+ ldr r4, _08096B70 @ =0x02000000
+ ldrb r0, [r4, 0x6]
+ cmp r0, 0
+ beq _08096B74
+ cmp r0, 0x1
+ beq _08096BAC
+ b _08096BCC
+ .align 2, 0
+_08096B70: .4byte 0x02000000
+_08096B74:
+ ldr r1, _08096B98 @ =0x00002690
+ adds r0, r4, r1
+ ldr r0, [r0]
+ ldr r2, _08096B9C @ =0x0000268d
+ adds r1, r4, r2
+ ldrb r1, [r1]
+ ldr r3, _08096BA0 @ =0x0000268c
+ adds r2, r4, r3
+ ldrb r2, [r2]
+ ldr r3, _08096BA4 @ =sub_80969A0
+ ldr r5, _08096BA8 @ =0x0000268e
+ adds r4, r5
+ ldrb r4, [r4]
+ str r4, [sp]
+ bl ShowPokemonSummaryScreen
+ b _08096BCC
+ .align 2, 0
+_08096B98: .4byte 0x00002690
+_08096B9C: .4byte 0x0000268d
+_08096BA0: .4byte 0x0000268c
+_08096BA4: .4byte sub_80969A0
+_08096BA8: .4byte 0x0000268e
+_08096BAC:
+ ldr r0, _08096BD4 @ =gPokemonStorage
+ ldrb r2, [r0]
+ lsls r1, r2, 3
+ adds r1, r2
+ ldr r2, _08096BD8 @ =0x00008344
+ adds r0, r2
+ adds r1, r0
+ movs r0, 0
+ str r0, [sp]
+ ldr r0, _08096BDC @ =sub_80969A0
+ str r0, [sp, 0x4]
+ movs r0, 0x1
+ movs r2, 0
+ movs r3, 0
+ bl DoNamingScreen
+_08096BCC:
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08096BD4: .4byte gPokemonStorage
+_08096BD8: .4byte 0x00008344
+_08096BDC: .4byte sub_80969A0
+ thumb_func_end sub_8096B5C
+
+ thumb_func_start sub_8096BE0
+sub_8096BE0: @ 8096BE0
+ ldr r1, _08096BEC @ =0x02000000
+ str r0, [r1]
+ movs r0, 0
+ strb r0, [r1, 0x4]
+ bx lr
+ .align 2, 0
+_08096BEC: .4byte 0x02000000
+ thumb_func_end sub_8096BE0
+
+ thumb_func_start sub_8096BF0
+sub_8096BF0: @ 8096BF0
+ push {r4,lr}
+ ldr r4, _08096C04 @ =0x02000000
+ ldrb r0, [r4, 0x4]
+ cmp r0, 0x1
+ beq _08096C16
+ cmp r0, 0x1
+ bgt _08096C08
+ cmp r0, 0
+ beq _08096C0E
+ b _08096C5C
+ .align 2, 0
+_08096C04: .4byte 0x02000000
+_08096C08:
+ cmp r0, 0x2
+ beq _08096C4C
+ b _08096C5C
+_08096C0E:
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0x10
+ b _08096C38
+_08096C16:
+ movs r0, 0x2
+ bl PlaySE
+ movs r1, 0
+ movs r0, 0xE
+ strh r0, [r4, 0xC]
+ ldr r0, _08096C48 @ =0x0000dad0
+ strh r0, [r4, 0xE]
+ strh r1, [r4, 0x10]
+ strh r1, [r4, 0x12]
+ adds r0, r4, 0
+ adds r0, 0xC
+ bl sub_80C5CD4
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+_08096C38:
+ movs r2, 0
+ bl BlendPalettes
+ ldrb r0, [r4, 0x4]
+ adds r0, 0x1
+ strb r0, [r4, 0x4]
+ b _08096C5C
+ .align 2, 0
+_08096C48: .4byte 0x0000dad0
+_08096C4C:
+ bl sub_80C5DCC
+ lsls r0, 24
+ cmp r0, 0
+ beq _08096C5C
+ ldr r0, _08096C64 @ =sub_8096C84
+ bl sub_8096BE0
+_08096C5C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08096C64: .4byte sub_8096C84
+ thumb_func_end sub_8096BF0
+
+ thumb_func_start sub_8096C68
+sub_8096C68: @ 8096C68
+ push {lr}
+ bl UpdatePaletteFade
+ lsls r0, 24
+ cmp r0, 0
+ bne _08096C7A
+ ldr r0, _08096C80 @ =sub_8096C84
+ bl sub_8096BE0
+_08096C7A:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08096C80: .4byte sub_8096C84
+ thumb_func_end sub_8096C68
+
+ thumb_func_start sub_8096C84
+sub_8096C84: @ 8096C84
+ push {r4,lr}
+ ldr r0, _08096C9C @ =0x02000000
+ ldrb r0, [r0, 0x4]
+ cmp r0, 0x6
+ bls _08096C90
+ b _08096FBA
+_08096C90:
+ lsls r0, 2
+ ldr r1, _08096CA0 @ =_08096CA4
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08096C9C: .4byte 0x02000000
+_08096CA0: .4byte _08096CA4
+ .align 2, 0
+_08096CA4:
+ .4byte _08096CC0
+ .4byte _08096EE0
+ .4byte _08096F1C
+ .4byte _08096F60
+ .4byte _08096F80
+ .4byte _08096F8A
+ .4byte _08096FA4
+_08096CC0:
+ bl sub_809CA40
+ lsls r0, 24
+ lsrs r0, 24
+ subs r0, 0x1
+ cmp r0, 0xF
+ bls _08096CD0
+ b _08096FBA
+_08096CD0:
+ lsls r0, 2
+ ldr r1, _08096CDC @ =_08096CE0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08096CDC: .4byte _08096CE0
+ .align 2, 0
+_08096CE0:
+ .4byte _08096D20
+ .4byte _08096FBA
+ .4byte _08096FBA
+ .4byte _08096D94
+ .4byte _08096D34
+ .4byte _08096D5C
+ .4byte _08096DAC
+ .4byte _08096DC0
+ .4byte _08096DD4
+ .4byte _08096DFC
+ .4byte _08096E30
+ .4byte _08096EB8
+ .4byte _08096E70
+ .4byte _08096E8C
+ .4byte _08096ECC
+ .4byte _08096DA0
+_08096D20:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, _08096D30 @ =0x02000000
+ movs r0, 0x1
+ strb r0, [r1, 0x4]
+ b _08096FBA
+ .align 2, 0
+_08096D30: .4byte 0x02000000
+_08096D34:
+ ldr r4, _08096D48 @ =0x02000000
+ ldrb r0, [r4, 0x5]
+ cmp r0, 0x2
+ beq _08096D4C
+ movs r0, 0x10
+ bl sub_8098898
+ movs r0, 0x3
+ strb r0, [r4, 0x4]
+ b _08096FBA
+ .align 2, 0
+_08096D48: .4byte 0x02000000
+_08096D4C:
+ bl sub_809B0D4
+ ldr r0, _08096D58 @ =sub_8096FC8
+ bl sub_8096BE0
+ b _08096FBA
+ .align 2, 0
+_08096D58: .4byte sub_8096FC8
+_08096D5C:
+ ldr r4, _08096D88 @ =0x02000000
+ ldrb r0, [r4, 0x5]
+ cmp r0, 0x2
+ beq _08096D66
+ b _08096FBA
+_08096D66:
+ bl sub_809BF20
+ lsls r0, 24
+ cmp r0, 0
+ beq _08096D80
+ ldr r1, _08096D8C @ =0x000011f2
+ adds r0, r4, r1
+ ldrh r0, [r0]
+ bl itemid_is_mail
+ lsls r0, 24
+ cmp r0, 0
+ bne _08096E4C
+_08096D80:
+ ldr r0, _08096D90 @ =sub_8097004
+ bl sub_8096BE0
+ b _08096FBA
+ .align 2, 0
+_08096D88: .4byte 0x02000000
+_08096D8C: .4byte 0x000011f2
+_08096D90: .4byte sub_8097004
+_08096D94:
+ ldr r0, _08096D9C @ =sub_8097BA0
+ bl sub_8096BE0
+ b _08096FBA
+ .align 2, 0
+_08096D9C: .4byte sub_8097BA0
+_08096DA0:
+ ldr r0, _08096DA8 @ =sub_8097CC0
+ bl sub_8096BE0
+ b _08096FBA
+ .align 2, 0
+_08096DA8: .4byte sub_8097CC0
+_08096DAC:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _08096DBC @ =sub_809789C
+ bl sub_8096BE0
+ b _08096FBA
+ .align 2, 0
+_08096DBC: .4byte sub_809789C
+_08096DC0:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _08096DD0 @ =sub_8097078
+ bl sub_8096BE0
+ b _08096FBA
+ .align 2, 0
+_08096DD0: .4byte sub_8097078
+_08096DD4:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r4, _08096DF0 @ =0x02000000
+ ldr r0, _08096DF4 @ =gPokemonStorage
+ ldrb r0, [r0]
+ adds r0, 0x1
+ ldr r2, _08096DF8 @ =0x000008b2
+ adds r1, r4, r2
+ strh r0, [r1]
+ cmp r0, 0xD
+ ble _08096E18
+ movs r0, 0
+ b _08096E16
+ .align 2, 0
+_08096DF0: .4byte 0x02000000
+_08096DF4: .4byte gPokemonStorage
+_08096DF8: .4byte 0x000008b2
+_08096DFC:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r4, _08096E24 @ =0x02000000
+ ldr r0, _08096E28 @ =gPokemonStorage
+ ldrb r0, [r0]
+ subs r0, 0x1
+ ldr r2, _08096E2C @ =0x000008b2
+ adds r1, r4, r2
+ strh r0, [r1]
+ cmp r0, 0
+ bge _08096E18
+ movs r0, 0xD
+_08096E16:
+ strh r0, [r1]
+_08096E18:
+ ldrb r0, [r1]
+ bl sub_8099C70
+ movs r0, 0x2
+ strb r0, [r4, 0x4]
+ b _08096FBA
+ .align 2, 0
+_08096E24: .4byte 0x02000000
+_08096E28: .4byte gPokemonStorage
+_08096E2C: .4byte 0x000008b2
+_08096E30:
+ bl sub_809BE80
+ lsls r0, 24
+ cmp r0, 0
+ bne _08096E96
+ ldr r4, _08096E54 @ =0x02000000
+ ldr r1, _08096E58 @ =0x000011f2
+ adds r0, r4, r1
+ ldrh r0, [r0]
+ bl itemid_is_mail
+ lsls r0, 24
+ cmp r0, 0
+ beq _08096E5C
+_08096E4C:
+ movs r0, 0x5
+ strb r0, [r4, 0x4]
+ b _08096FBA
+ .align 2, 0
+_08096E54: .4byte 0x02000000
+_08096E58: .4byte 0x000011f2
+_08096E5C:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _08096E6C @ =sub_809746C
+ bl sub_8096BE0
+ b _08096FBA
+ .align 2, 0
+_08096E6C: .4byte sub_809746C
+_08096E70:
+ bl sub_809BE80
+ lsls r0, 24
+ cmp r0, 0
+ bne _08096E96
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _08096E88 @ =sub_80972A8
+ bl sub_8096BE0
+ b _08096FBA
+ .align 2, 0
+_08096E88: .4byte sub_80972A8
+_08096E8C:
+ bl sub_809BEBC
+ lsls r0, 24
+ cmp r0, 0
+ bne _08096EA4
+_08096E96:
+ ldr r1, _08096EA0 @ =0x02000000
+ movs r0, 0x4
+ strb r0, [r1, 0x4]
+ b _08096FBA
+ .align 2, 0
+_08096EA0: .4byte 0x02000000
+_08096EA4:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _08096EB4 @ =c3_0808DC50
+ bl sub_8096BE0
+ b _08096FBA
+ .align 2, 0
+_08096EB4: .4byte c3_0808DC50
+_08096EB8:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _08096EC8 @ =sub_8097390
+ bl sub_8096BE0
+ b _08096FBA
+ .align 2, 0
+_08096EC8: .4byte sub_8097390
+_08096ECC:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _08096EDC @ =sub_80972FC
+ bl sub_8096BE0
+ b _08096FBA
+ .align 2, 0
+_08096EDC: .4byte sub_80972FC
+_08096EE0:
+ bl sub_809AC00
+ lsls r0, 24
+ cmp r0, 0
+ bne _08096FBA
+ bl sub_809BF48
+ lsls r0, 24
+ cmp r0, 0
+ beq _08096EFA
+ bl sub_80986E8
+ b _08096EFE
+_08096EFA:
+ bl sub_8098710
+_08096EFE:
+ ldr r4, _08096F14 @ =0x02000000
+ ldr r2, _08096F18 @ =0x000011f6
+ adds r0, r4, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08096F0E
+ bl BoxSetMosaic
+_08096F0E:
+ movs r0, 0
+ strb r0, [r4, 0x4]
+ b _08096FBA
+ .align 2, 0
+_08096F14: .4byte 0x02000000
+_08096F18: .4byte 0x000011f6
+_08096F1C:
+ bl sub_8099D34
+ lsls r0, 24
+ cmp r0, 0
+ bne _08096FBA
+ ldr r1, _08096F50 @ =gPokemonStorage
+ ldr r0, _08096F54 @ =0x02000000
+ ldr r2, _08096F58 @ =0x000008b2
+ adds r0, r2
+ ldrh r0, [r0]
+ strb r0, [r1]
+ ldr r0, _08096F5C @ =gUnknown_0203847C
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08096F70
+ bl sub_809BF20
+ lsls r0, 24
+ cmp r0, 0
+ bne _08096F70
+ bl sub_809B440
+ bl BoxSetMosaic
+ b _08096F70
+ .align 2, 0
+_08096F50: .4byte gPokemonStorage
+_08096F54: .4byte 0x02000000
+_08096F58: .4byte 0x000008b2
+_08096F5C: .4byte gUnknown_0203847C
+_08096F60:
+ ldr r0, _08096F78 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0xF3
+ ands r0, r1
+ cmp r0, 0
+ beq _08096FBA
+ bl sub_8098A5C
+_08096F70:
+ ldr r1, _08096F7C @ =0x02000000
+ movs r0, 0
+ strb r0, [r1, 0x4]
+ b _08096FBA
+ .align 2, 0
+_08096F78: .4byte gMain
+_08096F7C: .4byte 0x02000000
+_08096F80:
+ movs r0, 0x20
+ bl PlaySE
+ movs r0, 0xD
+ b _08096F92
+_08096F8A:
+ movs r0, 0x20
+ bl PlaySE
+ movs r0, 0x16
+_08096F92:
+ bl sub_8098898
+ ldr r1, _08096FA0 @ =0x02000000
+ movs r0, 0x6
+ strb r0, [r1, 0x4]
+ b _08096FBA
+ .align 2, 0
+_08096FA0: .4byte 0x02000000
+_08096FA4:
+ ldr r0, _08096FC0 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0xF3
+ ands r0, r1
+ cmp r0, 0
+ beq _08096FBA
+ bl sub_8098A5C
+ ldr r0, _08096FC4 @ =sub_8096C84
+ bl sub_8096BE0
+_08096FBA:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08096FC0: .4byte gMain
+_08096FC4: .4byte sub_8096C84
+ thumb_func_end sub_8096C84
+
+ thumb_func_start sub_8096FC8
+sub_8096FC8: @ 8096FC8
+ push {r4,lr}
+ ldr r4, _08096FD8 @ =0x02000000
+ ldrb r0, [r4, 0x4]
+ cmp r0, 0
+ beq _08096FDC
+ cmp r0, 0x1
+ beq _08096FE8
+ b _08096FF8
+ .align 2, 0
+_08096FD8: .4byte 0x02000000
+_08096FDC:
+ bl sub_809880C
+ ldrb r0, [r4, 0x4]
+ adds r0, 0x1
+ strb r0, [r4, 0x4]
+ b _08096FF8
+_08096FE8:
+ bl sub_8098830
+ lsls r0, 24
+ cmp r0, 0
+ bne _08096FF8
+ ldr r0, _08097000 @ =sub_8096C84
+ bl sub_8096BE0
+_08096FF8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08097000: .4byte sub_8096C84
+ thumb_func_end sub_8096FC8
+
+ thumb_func_start sub_8097004
+sub_8097004: @ 8097004
+ push {r4,lr}
+ ldr r4, _08097018 @ =0x02000000
+ ldrb r0, [r4, 0x4]
+ cmp r0, 0x1
+ beq _0809702E
+ cmp r0, 0x1
+ bgt _0809701C
+ cmp r0, 0
+ beq _08097022
+ b _0809706A
+ .align 2, 0
+_08097018: .4byte 0x02000000
+_0809701C:
+ cmp r0, 0x2
+ beq _0809704C
+ b _0809706A
+_08097022:
+ movs r0, 0x5
+ bl PlaySE
+ bl add_to_c3_somehow
+ b _08097044
+_0809702E:
+ bl sub_80985CC
+ lsls r0, 24
+ cmp r0, 0
+ bne _0809706A
+ bl sub_809B0F4
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_809B0C0
+_08097044:
+ ldrb r0, [r4, 0x4]
+ adds r0, 0x1
+ strb r0, [r4, 0x4]
+ b _0809706A
+_0809704C:
+ bl sub_809AC00
+ lsls r0, 24
+ cmp r0, 0
+ bne _0809706A
+ ldr r1, _08097070 @ =0x000011f6
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08097064
+ bl BoxSetMosaic
+_08097064:
+ ldr r0, _08097074 @ =sub_8096C84
+ bl sub_8096BE0
+_0809706A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08097070: .4byte 0x000011f6
+_08097074: .4byte sub_8096C84
+ thumb_func_end sub_8097004
+
+ thumb_func_start sub_8097078
+sub_8097078: @ 8097078
+ push {r4,lr}
+ ldr r0, _08097090 @ =0x02000000
+ ldrb r0, [r0, 0x4]
+ cmp r0, 0x5
+ bls _08097084
+ b _0809729A
+_08097084:
+ lsls r0, 2
+ ldr r1, _08097094 @ =_08097098
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08097090: .4byte 0x02000000
+_08097094: .4byte _08097098
+ .align 2, 0
+_08097098:
+ .4byte _080970B0
+ .4byte _080970C8
+ .4byte _08097258
+ .4byte _0809726C
+ .4byte _08097262
+ .4byte _08097284
+_080970B0:
+ movs r0, 0x4
+ bl sub_8098898
+ bl sub_809CE84
+ ldr r1, _080970C4 @ =0x02000000
+ movs r0, 0x1
+ strb r0, [r1, 0x4]
+ b _0809729A
+ .align 2, 0
+_080970C4: .4byte 0x02000000
+_080970C8:
+ bl sub_809CF30
+ adds r0, 0x1
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x9
+ bls _080970D8
+ b _0809729A
+_080970D8:
+ lsls r0, 2
+ ldr r1, _080970E4 @ =_080970E8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080970E4: .4byte _080970E8
+ .align 2, 0
+_080970E8:
+ .4byte _08097110
+ .4byte _08097110
+ .4byte _08097190
+ .4byte _08097178
+ .4byte _08097120
+ .4byte _08097158
+ .4byte _08097140
+ .4byte _08097230
+ .4byte _080971CC
+ .4byte _08097244
+_08097110:
+ bl sub_8098A5C
+ ldr r0, _0809711C @ =sub_8096C84
+ bl sub_8096BE0
+ b _0809729A
+ .align 2, 0
+_0809711C: .4byte sub_8096C84
+_08097120:
+ bl sub_809BE80
+ lsls r0, 24
+ cmp r0, 0
+ bne _080971D6
+ movs r0, 0x5
+ bl PlaySE
+ bl sub_8098A5C
+ ldr r0, _0809713C @ =sub_80972A8
+ bl sub_8096BE0
+ b _0809729A
+ .align 2, 0
+_0809713C: .4byte sub_80972A8
+_08097140:
+ movs r0, 0x5
+ bl PlaySE
+ bl sub_8098A5C
+ ldr r0, _08097154 @ =sub_80972FC
+ bl sub_8096BE0
+ b _0809729A
+ .align 2, 0
+_08097154: .4byte sub_80972FC
+_08097158:
+ bl sub_809BEBC
+ lsls r0, 24
+ cmp r0, 0
+ beq _080971D6
+ movs r0, 0x5
+ bl PlaySE
+ bl sub_8098A5C
+ ldr r0, _08097174 @ =c3_0808DC50
+ bl sub_8096BE0
+ b _0809729A
+ .align 2, 0
+_08097174: .4byte c3_0808DC50
+_08097178:
+ movs r0, 0x5
+ bl PlaySE
+ bl sub_8098A5C
+ ldr r0, _0809718C @ =sub_8097390
+ bl sub_8096BE0
+ b _0809729A
+ .align 2, 0
+_0809718C: .4byte sub_8097390
+_08097190:
+ bl sub_809BE80
+ lsls r0, 24
+ cmp r0, 0
+ bne _080971D6
+ ldr r4, _080971C0 @ =0x02000000
+ ldr r1, _080971C4 @ =0x000011f2
+ adds r0, r4, r1
+ ldrh r0, [r0]
+ bl itemid_is_mail
+ lsls r0, 24
+ cmp r0, 0
+ bne _08097210
+ movs r0, 0x5
+ bl PlaySE
+ bl sub_8098A5C
+ ldr r0, _080971C8 @ =sub_809746C
+ bl sub_8096BE0
+ b _0809729A
+ .align 2, 0
+_080971C0: .4byte 0x02000000
+_080971C4: .4byte 0x000011f2
+_080971C8: .4byte sub_809746C
+_080971CC:
+ bl sub_809BE80
+ lsls r0, 24
+ cmp r0, 0
+ beq _080971E4
+_080971D6:
+ ldr r1, _080971E0 @ =0x02000000
+ movs r0, 0x2
+ strb r0, [r1, 0x4]
+ b _0809729A
+ .align 2, 0
+_080971E0: .4byte 0x02000000
+_080971E4:
+ ldr r4, _080971F8 @ =0x02000000
+ ldr r1, _080971FC @ =0x000011f9
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08097200
+ movs r0, 0x4
+ strb r0, [r4, 0x4]
+ b _0809729A
+ .align 2, 0
+_080971F8: .4byte 0x02000000
+_080971FC: .4byte 0x000011f9
+_08097200:
+ ldr r1, _08097218 @ =0x000011f2
+ adds r0, r4, r1
+ ldrh r0, [r0]
+ bl itemid_is_mail
+ lsls r0, 24
+ cmp r0, 0
+ beq _0809721C
+_08097210:
+ movs r0, 0x3
+ strb r0, [r4, 0x4]
+ b _0809729A
+ .align 2, 0
+_08097218: .4byte 0x000011f2
+_0809721C:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _0809722C @ =sub_8097594
+ bl sub_8096BE0
+ b _0809729A
+ .align 2, 0
+_0809722C: .4byte sub_8097594
+_08097230:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _08097240 @ =sub_8097788
+ bl sub_8096BE0
+ b _0809729A
+ .align 2, 0
+_08097240: .4byte sub_8097788
+_08097244:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _08097254 @ =sub_80977E4
+ bl sub_8096BE0
+ b _0809729A
+ .align 2, 0
+_08097254: .4byte sub_80977E4
+_08097258:
+ movs r0, 0x20
+ bl PlaySE
+ movs r0, 0xD
+ b _08097274
+_08097262:
+ movs r0, 0x20
+ bl PlaySE
+ movs r0, 0x11
+ b _08097274
+_0809726C:
+ movs r0, 0x20
+ bl PlaySE
+ movs r0, 0x16
+_08097274:
+ bl sub_8098898
+ ldr r1, _08097280 @ =0x02000000
+ movs r0, 0x5
+ strb r0, [r1, 0x4]
+ b _0809729A
+ .align 2, 0
+_08097280: .4byte 0x02000000
+_08097284:
+ ldr r0, _080972A0 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0xF3
+ ands r0, r1
+ cmp r0, 0
+ beq _0809729A
+ bl sub_8098A5C
+ ldr r0, _080972A4 @ =sub_8096C84
+ bl sub_8096BE0
+_0809729A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080972A0: .4byte gMain
+_080972A4: .4byte sub_8096C84
+ thumb_func_end sub_8097078
+
+ thumb_func_start sub_80972A8
+sub_80972A8: @ 80972A8
+ push {r4,lr}
+ ldr r4, _080972B8 @ =0x02000000
+ ldrb r0, [r4, 0x4]
+ cmp r0, 0
+ beq _080972BC
+ cmp r0, 0x1
+ beq _080972CA
+ b _080972F2
+ .align 2, 0
+_080972B8: .4byte 0x02000000
+_080972BC:
+ movs r0, 0
+ bl sub_809B100
+ ldrb r0, [r4, 0x4]
+ adds r0, 0x1
+ strb r0, [r4, 0x4]
+ b _080972F2
+_080972CA:
+ bl sub_809B130
+ lsls r0, 24
+ cmp r0, 0
+ bne _080972F2
+ ldr r0, _080972E4 @ =gUnknown_0203847C
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080972EC
+ ldr r0, _080972E8 @ =sub_8097858
+ bl sub_8096BE0
+ b _080972F2
+ .align 2, 0
+_080972E4: .4byte gUnknown_0203847C
+_080972E8: .4byte sub_8097858
+_080972EC:
+ ldr r0, _080972F8 @ =sub_8096C84
+ bl sub_8096BE0
+_080972F2:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080972F8: .4byte sub_8096C84
+ thumb_func_end sub_80972A8
+
+ thumb_func_start sub_80972FC
+sub_80972FC: @ 80972FC
+ push {r4,lr}
+ ldr r4, _0809730C @ =0x02000000
+ ldrb r0, [r4, 0x4]
+ cmp r0, 0
+ beq _08097310
+ cmp r0, 0x1
+ beq _0809731E
+ b _08097346
+ .align 2, 0
+_0809730C: .4byte 0x02000000
+_08097310:
+ movs r0, 0x1
+ bl sub_809B100
+ ldrb r0, [r4, 0x4]
+ adds r0, 0x1
+ strb r0, [r4, 0x4]
+ b _08097346
+_0809731E:
+ bl sub_809B130
+ lsls r0, 24
+ cmp r0, 0
+ bne _08097346
+ ldr r0, _08097338 @ =gUnknown_0203847C
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08097340
+ ldr r0, _0809733C @ =sub_8097858
+ bl sub_8096BE0
+ b _08097346
+ .align 2, 0
+_08097338: .4byte gUnknown_0203847C
+_0809733C: .4byte sub_8097858
+_08097340:
+ ldr r0, _0809734C @ =sub_8096C84
+ bl sub_8096BE0
+_08097346:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809734C: .4byte sub_8096C84
+ thumb_func_end sub_80972FC
+
+ thumb_func_start c3_0808DC50
+c3_0808DC50: @ 8097350
+ push {r4,lr}
+ ldr r4, _08097360 @ =0x02000000
+ ldrb r0, [r4, 0x4]
+ cmp r0, 0
+ beq _08097364
+ cmp r0, 0x1
+ beq _08097372
+ b _08097386
+ .align 2, 0
+_08097360: .4byte 0x02000000
+_08097364:
+ movs r0, 0x2
+ bl sub_809B100
+ ldrb r0, [r4, 0x4]
+ adds r0, 0x1
+ strb r0, [r4, 0x4]
+ b _08097386
+_08097372:
+ bl sub_809B130
+ lsls r0, 24
+ cmp r0, 0
+ bne _08097386
+ bl BoxSetMosaic
+ ldr r0, _0809738C @ =sub_8096C84
+ bl sub_8096BE0
+_08097386:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809738C: .4byte sub_8096C84
+ thumb_func_end c3_0808DC50
+
+ thumb_func_start sub_8097390
+sub_8097390: @ 8097390
+ push {lr}
+ ldr r0, _080973A4 @ =0x02000000
+ ldrb r0, [r0, 0x4]
+ cmp r0, 0x5
+ bhi _08097462
+ lsls r0, 2
+ ldr r1, _080973A8 @ =_080973AC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080973A4: .4byte 0x02000000
+_080973A8: .4byte _080973AC
+ .align 2, 0
+_080973AC:
+ .4byte _080973C4
+ .4byte _080973FC
+ .4byte _0809741C
+ .4byte _0809742C
+ .4byte _0809743E
+ .4byte _0809745C
+_080973C4:
+ bl CalculatePlayerPartyCount
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x6
+ bne _080973E4
+ movs r0, 0xE
+ bl sub_8098898
+ ldr r1, _080973E0 @ =0x02000000
+ movs r0, 0x1
+ strb r0, [r1, 0x4]
+ b _08097462
+ .align 2, 0
+_080973E0: .4byte 0x02000000
+_080973E4:
+ bl sub_809B0E0
+ movs r0, 0
+ bl sub_809B100
+ ldr r1, _080973F8 @ =0x02000000
+ movs r0, 0x2
+ strb r0, [r1, 0x4]
+ b _08097462
+ .align 2, 0
+_080973F8: .4byte 0x02000000
+_080973FC:
+ ldr r0, _08097414 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0xF3
+ ands r0, r1
+ cmp r0, 0
+ beq _08097462
+ bl sub_8098A5C
+ ldr r0, _08097418 @ =sub_8096C84
+ bl sub_8096BE0
+ b _08097462
+ .align 2, 0
+_08097414: .4byte gMain
+_08097418: .4byte sub_8096C84
+_0809741C:
+ bl sub_809B130
+ lsls r0, 24
+ cmp r0, 0
+ bne _08097462
+ bl sub_809880C
+ b _0809744C
+_0809742C:
+ bl sub_8098830
+ lsls r0, 24
+ cmp r0, 0
+ bne _08097462
+ movs r0, 0x1
+ bl sub_809B100
+ b _0809744C
+_0809743E:
+ bl sub_809B130
+ lsls r0, 24
+ cmp r0, 0
+ bne _08097462
+ bl sub_80987DC
+_0809744C:
+ ldr r1, _08097458 @ =0x02000000
+ ldrb r0, [r1, 0x4]
+ adds r0, 0x1
+ strb r0, [r1, 0x4]
+ b _08097462
+ .align 2, 0
+_08097458: .4byte 0x02000000
+_0809745C:
+ ldr r0, _08097468 @ =sub_8097004
+ bl sub_8096BE0
+_08097462:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08097468: .4byte sub_8097004
+ thumb_func_end sub_8097390
+
+ thumb_func_start sub_809746C
+sub_809746C: @ 809746C
+ push {r4,lr}
+ ldr r0, _08097484 @ =0x02000000
+ ldrb r0, [r0, 0x4]
+ cmp r0, 0x4
+ bls _08097478
+ b _08097584
+_08097478:
+ lsls r0, 2
+ ldr r1, _08097488 @ =_0809748C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08097484: .4byte 0x02000000
+_08097488: .4byte _0809748C
+ .align 2, 0
+_0809748C:
+ .4byte _080974A0
+ .4byte _080974D8
+ .4byte _08097534
+ .4byte _08097548
+ .4byte _0809756C
+_080974A0:
+ movs r0, 0x6
+ bl sub_8098898
+ ldr r4, _080974C8 @ =0x02002370
+ ldr r2, _080974CC @ =0x0000daca
+ adds r0, r4, 0
+ movs r1, 0x7
+ movs r3, 0x3
+ bl sub_8096264
+ ldr r0, _080974D0 @ =gUnknown_0203847E
+ ldrb r0, [r0]
+ bl sub_809634C
+ ldr r0, _080974D4 @ =0xffffdc90
+ adds r4, r0
+ ldrb r0, [r4, 0x4]
+ adds r0, 0x1
+ strb r0, [r4, 0x4]
+ b _08097584
+ .align 2, 0
+_080974C8: .4byte 0x02002370
+_080974CC: .4byte 0x0000daca
+_080974D0: .4byte gUnknown_0203847E
+_080974D4: .4byte 0xffffdc90
+_080974D8:
+ bl sub_8096368
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0xC8
+ beq _08097584
+ cmp r4, 0xC9
+ bne _080974F6
+ bl sub_8098A5C
+ bl sub_809635C
+ bl sub_8096310
+ b _0809755E
+_080974F6:
+ adds r0, r4, 0
+ bl sub_809B62C
+ lsls r0, 24
+ cmp r0, 0
+ beq _08097518
+ bl sub_8098A5C
+ bl sub_809635C
+ bl sub_8096310
+ ldr r1, _08097514 @ =0x02000000
+ movs r0, 0x2
+ b _08097522
+ .align 2, 0
+_08097514: .4byte 0x02000000
+_08097518:
+ movs r0, 0x8
+ bl sub_8098898
+ ldr r1, _0809752C @ =0x02000000
+ movs r0, 0x4
+_08097522:
+ strb r0, [r1, 0x4]
+ ldr r0, _08097530 @ =gUnknown_0203847E
+ strb r4, [r0]
+ b _08097584
+ .align 2, 0
+_0809752C: .4byte 0x02000000
+_08097530: .4byte gUnknown_0203847E
+_08097534:
+ bl party_compaction
+ bl sub_8099310
+ ldr r1, _08097544 @ =0x02000000
+ ldrb r0, [r1, 0x4]
+ adds r0, 0x1
+ b _08097582
+ .align 2, 0
+_08097544: .4byte 0x02000000
+_08097548:
+ bl sub_8099374
+ lsls r0, 24
+ cmp r0, 0
+ bne _08097584
+ bl sub_809B6BC
+ bl BoxSetMosaic
+ bl sub_80987DC
+_0809755E:
+ ldr r0, _08097568 @ =sub_8096C84
+ bl sub_8096BE0
+ b _08097584
+ .align 2, 0
+_08097568: .4byte sub_8096C84
+_0809756C:
+ ldr r0, _0809758C @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ beq _08097584
+ movs r0, 0x6
+ bl sub_8098898
+ ldr r1, _08097590 @ =0x02000000
+ movs r0, 0x1
+_08097582:
+ strb r0, [r1, 0x4]
+_08097584:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809758C: .4byte gMain
+_08097590: .4byte 0x02000000
+ thumb_func_end sub_809746C
+
+ thumb_func_start sub_8097594
+sub_8097594: @ 8097594
+ push {r4,lr}
+ ldr r0, _080975AC @ =0x02000000
+ ldrb r0, [r0, 0x4]
+ cmp r0, 0xD
+ bls _080975A0
+ b _0809777A
+_080975A0:
+ lsls r0, 2
+ ldr r1, _080975B0 @ =_080975B4
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080975AC: .4byte 0x02000000
+_080975B0: .4byte _080975B4
+ .align 2, 0
+_080975B4:
+ .4byte _080975EC
+ .4byte _08097600
+ .4byte _0809763A
+ .4byte _0809766E
+ .4byte _0809767A
+ .4byte _08097690
+ .4byte _080976C8
+ .4byte _080976E0
+ .4byte _080976EC
+ .4byte _080976F0
+ .4byte _08097704
+ .4byte _08097720
+ .4byte _08097732
+ .4byte _08097764
+_080975EC:
+ movs r0, 0x9
+ bl sub_8098898
+ movs r0, 0x1
+ bl sub_8098A38
+ ldr r1, _0809761C @ =0x02000000
+ ldrb r0, [r1, 0x4]
+ adds r0, 0x1
+ strb r0, [r1, 0x4]
+_08097600:
+ bl ProcessMenuInputNoWrap
+ lsls r0, 24
+ asrs r1, r0, 24
+ cmp r1, 0
+ beq _0809762C
+ cmp r1, 0
+ bgt _08097620
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _08097626
+ b _0809777A
+ .align 2, 0
+_0809761C: .4byte 0x02000000
+_08097620:
+ cmp r1, 0x1
+ beq _08097626
+ b _0809777A
+_08097626:
+ bl sub_8098A5C
+ b _080976E0
+_0809762C:
+ bl sub_8098A5C
+ bl sub_809B7D4
+ bl sub_809B6DC
+ b _08097744
+_0809763A:
+ bl sub_809B960
+ bl sub_809B734
+ lsls r0, 24
+ cmp r0, 0
+ beq _0809764A
+ b _0809777A
+_0809764A:
+ ldr r4, _08097650 @ =0x02000000
+ b _0809765A
+ .align 2, 0
+_08097650: .4byte 0x02000000
+_08097654:
+ cmp r0, 0
+ bne _0809765A
+ b _08097758
+_0809765A:
+ bl sub_809B960
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x1
+ bne _08097654
+ ldrb r0, [r4, 0x4]
+ adds r0, 0x1
+ strb r0, [r4, 0x4]
+ b _0809777A
+_0809766E:
+ bl sub_809B760
+ bl sub_809801C
+ movs r0, 0xA
+ b _08097740
+_0809767A:
+ ldr r0, _0809768C @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ bne _08097688
+ b _0809777A
+_08097688:
+ movs r0, 0xB
+ b _08097740
+ .align 2, 0
+_0809768C: .4byte gMain
+_08097690:
+ ldr r0, _080976B4 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ beq _0809777A
+ bl sub_8098A5C
+ ldr r0, _080976B8 @ =gUnknown_0203847C
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080976BC
+ bl party_compaction
+ bl sub_8099310
+ b _08097744
+ .align 2, 0
+_080976B4: .4byte gMain
+_080976B8: .4byte gUnknown_0203847C
+_080976BC:
+ ldr r1, _080976C4 @ =0x02000000
+ movs r0, 0x7
+ strb r0, [r1, 0x4]
+ b _0809777A
+ .align 2, 0
+_080976C4: .4byte 0x02000000
+_080976C8:
+ bl sub_8099374
+ lsls r0, 24
+ cmp r0, 0
+ bne _0809777A
+ bl sub_809B440
+ bl BoxSetMosaic
+ bl sub_80987DC
+ b _08097744
+_080976E0:
+ ldr r0, _080976E8 @ =sub_8096C84
+ bl sub_8096BE0
+ b _0809777A
+ .align 2, 0
+_080976E8: .4byte sub_8096C84
+_080976EC:
+ movs r0, 0xA
+ b _08097740
+_080976F0:
+ ldr r0, _08097700 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ beq _0809777A
+ movs r0, 0x15
+ b _08097740
+ .align 2, 0
+_08097700: .4byte gMain
+_08097704:
+ ldr r0, _0809771C @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ beq _0809777A
+ bl sub_8098A5C
+ bl sub_8099958
+ b _08097744
+ .align 2, 0
+_0809771C: .4byte gMain
+_08097720:
+ bl sub_8099990
+ lsls r0, 24
+ cmp r0, 0
+ bne _0809777A
+ bl sub_809B7AC
+ movs r0, 0x13
+ b _08097740
+_08097732:
+ ldr r0, _08097750 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ beq _0809777A
+ movs r0, 0x14
+_08097740:
+ bl sub_8098898
+_08097744:
+ ldr r1, _08097754 @ =0x02000000
+ ldrb r0, [r1, 0x4]
+ adds r0, 0x1
+ strb r0, [r1, 0x4]
+ b _0809777A
+ .align 2, 0
+_08097750: .4byte gMain
+_08097754: .4byte 0x02000000
+_08097758:
+ ldr r1, _08097760 @ =0x02000000
+ movs r0, 0x8
+ strb r0, [r1, 0x4]
+ b _0809777A
+ .align 2, 0
+_08097760: .4byte 0x02000000
+_08097764:
+ ldr r0, _08097780 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ beq _0809777A
+ bl sub_8098A5C
+ ldr r0, _08097784 @ =sub_8096C84
+ bl sub_8096BE0
+_0809777A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08097780: .4byte gMain
+_08097784: .4byte sub_8096C84
+ thumb_func_end sub_8097594
+
+ thumb_func_start sub_8097788
+sub_8097788: @ 8097788
+ push {r4,r5,lr}
+ sub sp, 0x4
+ ldr r5, _0809779C @ =0x02000000
+ ldrb r4, [r5, 0x4]
+ cmp r4, 0
+ beq _080977A0
+ cmp r4, 0x1
+ beq _080977BC
+ b _080977D4
+ .align 2, 0
+_0809779C: .4byte 0x02000000
+_080977A0:
+ bl sub_809BC18
+ movs r0, 0x1
+ negs r0, r0
+ str r4, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldrb r0, [r5, 0x4]
+ adds r0, 0x1
+ strb r0, [r5, 0x4]
+ b _080977D4
+_080977BC:
+ bl UpdatePaletteFade
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0
+ bne _080977D4
+ ldr r0, _080977DC @ =gUnknown_0203847F
+ strb r1, [r0]
+ strb r1, [r5, 0x6]
+ ldr r0, _080977E0 @ =sub_8096B5C
+ bl SetMainCallback2
+_080977D4:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080977DC: .4byte gUnknown_0203847F
+_080977E0: .4byte sub_8096B5C
+ thumb_func_end sub_8097788
+
+ thumb_func_start sub_80977E4
+sub_80977E4: @ 80977E4
+ push {r4,lr}
+ ldr r4, _080977F4 @ =0x02000000
+ ldrb r0, [r4, 0x4]
+ cmp r0, 0
+ beq _080977F8
+ cmp r0, 0x1
+ beq _08097824
+ b _0809784C
+ .align 2, 0
+_080977F4: .4byte 0x02000000
+_080977F8:
+ movs r0, 0xC
+ bl sub_8098898
+ ldr r0, _08097820 @ =0x000011f7
+ adds r2, r4, r0
+ ldrb r1, [r2]
+ movs r3, 0x96
+ lsls r3, 5
+ adds r0, r4, r3
+ strb r1, [r0]
+ ldrb r0, [r2]
+ movs r1, 0xB0
+ movs r2, 0x10
+ bl sub_80F7418
+ ldrb r0, [r4, 0x4]
+ adds r0, 0x1
+ strb r0, [r4, 0x4]
+ b _0809784C
+ .align 2, 0
+_08097820: .4byte 0x000011f7
+_08097824:
+ bl sub_80F7500
+ lsls r0, 24
+ cmp r0, 0
+ bne _0809784C
+ bl sub_80F7470
+ bl sub_8098A5C
+ movs r1, 0x96
+ lsls r1, 5
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ bl sub_809BDD8
+ bl sub_809801C
+ ldr r0, _08097854 @ =sub_8096C84
+ bl sub_8096BE0
+_0809784C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08097854: .4byte sub_8096C84
+ thumb_func_end sub_80977E4
+
+ thumb_func_start sub_8097858
+sub_8097858: @ 8097858
+ push {r4,lr}
+ ldr r4, _08097868 @ =0x02000000
+ ldrb r0, [r4, 0x4]
+ cmp r0, 0
+ beq _0809786C
+ cmp r0, 0x1
+ beq _0809787C
+ b _08097890
+ .align 2, 0
+_08097868: .4byte 0x02000000
+_0809786C:
+ bl party_compaction
+ bl sub_8099310
+ ldrb r0, [r4, 0x4]
+ adds r0, 0x1
+ strb r0, [r4, 0x4]
+ b _08097890
+_0809787C:
+ bl sub_8099374
+ lsls r0, 24
+ cmp r0, 0
+ bne _08097890
+ bl sub_80987DC
+ ldr r0, _08097898 @ =sub_8096C84
+ bl sub_8096BE0
+_08097890:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08097898: .4byte sub_8096C84
+ thumb_func_end sub_8097858
+
+ thumb_func_start sub_809789C
+sub_809789C: @ 809789C
+ push {r4,lr}
+ ldr r4, _080978AC @ =0x02000000
+ ldrb r0, [r4, 0x4]
+ cmp r0, 0
+ beq _080978B0
+ cmp r0, 0x1
+ beq _080978C2
+ b _08097968
+ .align 2, 0
+_080978AC: .4byte 0x02000000
+_080978B0:
+ movs r0, 0x1
+ bl sub_8098898
+ bl sub_809CE84
+ ldrb r0, [r4, 0x4]
+ adds r0, 0x1
+ strb r0, [r4, 0x4]
+ b _08097968
+_080978C2:
+ bl sub_809CF30
+ adds r0, 0x1
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xC
+ bhi _08097968
+ lsls r0, 2
+ ldr r1, _080978DC @ =_080978E0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080978DC: .4byte _080978E0
+ .align 2, 0
+_080978E0:
+ .4byte _08097914
+ .4byte _08097914
+ .4byte _08097968
+ .4byte _08097968
+ .4byte _08097968
+ .4byte _08097968
+ .4byte _08097968
+ .4byte _08097968
+ .4byte _08097968
+ .4byte _08097968
+ .4byte _08097958
+ .4byte _08097940
+ .4byte _0809792C
+_08097914:
+ movs r0, 0x1
+ bl sub_809A860
+ bl sub_8098A5C
+ ldr r0, _08097928 @ =sub_8096C84
+ bl sub_8096BE0
+ b _08097968
+ .align 2, 0
+_08097928: .4byte sub_8096C84
+_0809792C:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _0809793C @ =sub_8097B44
+ bl sub_8096BE0
+ b _08097968
+ .align 2, 0
+_0809793C: .4byte sub_8097B44
+_08097940:
+ movs r0, 0x5
+ bl PlaySE
+ bl sub_8098A5C
+ ldr r0, _08097954 @ =sub_8097974
+ bl sub_8096BE0
+ b _08097968
+ .align 2, 0
+_08097954: .4byte sub_8097974
+_08097958:
+ movs r0, 0x5
+ bl PlaySE
+ bl sub_8098A5C
+ ldr r0, _08097970 @ =sub_8097A64
+ bl sub_8096BE0
+_08097968:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08097970: .4byte sub_8097A64
+ thumb_func_end sub_809789C
+
+ thumb_func_start sub_8097974
+sub_8097974: @ 8097974
+ push {r4,r5,lr}
+ ldr r5, _08097988 @ =0x02000000
+ ldrb r0, [r5, 0x4]
+ cmp r0, 0x1
+ beq _080979A2
+ cmp r0, 0x1
+ bgt _0809798C
+ cmp r0, 0
+ beq _08097996
+ b _08097A5A
+ .align 2, 0
+_08097988: .4byte 0x02000000
+_0809798C:
+ cmp r0, 0x2
+ beq _080979FC
+ cmp r0, 0x3
+ beq _08097A44
+ b _08097A5A
+_08097996:
+ bl sub_8098A80
+ movs r0, 0x2
+ bl sub_8098898
+ b _08097A3C
+_080979A2:
+ bl sub_809CF30
+ ldr r1, _080979CC @ =0x00000d5e
+ adds r4, r5, r1
+ strh r0, [r4]
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ bne _080979D4
+ movs r0, 0x1
+ bl sub_809A860
+ bl sub_8098A5C
+ ldr r0, _080979D0 @ =sub_8096C84
+ bl sub_8096BE0
+ b _08097A5A
+ .align 2, 0
+_080979CC: .4byte 0x00000d5e
+_080979D0: .4byte sub_8096C84
+_080979D4:
+ cmp r0, r1
+ blt _08097A5A
+ cmp r0, 0xF
+ bgt _08097A5A
+ cmp r0, 0xC
+ blt _08097A5A
+ movs r0, 0x5
+ bl PlaySE
+ ldrh r0, [r4]
+ subs r0, 0xC
+ strh r0, [r4]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8098AA8
+ movs r0, 0x3
+ bl sub_8098898
+ b _08097A3C
+_080979FC:
+ bl sub_809CF30
+ movs r1, 0xD6
+ lsls r1, 4
+ adds r4, r5, r1
+ strh r0, [r4]
+ movs r0, 0
+ ldrsh r1, [r4, r0]
+ movs r0, 0x2
+ negs r0, r0
+ cmp r1, r0
+ beq _08097A5A
+ adds r0, 0x1
+ cmp r1, r0
+ bne _08097A24
+ bl sub_8098A5C
+ movs r0, 0
+ strb r0, [r5, 0x4]
+ b _08097A5A
+_08097A24:
+ movs r0, 0x5
+ bl PlaySE
+ bl sub_8098A5C
+ ldrh r0, [r4]
+ subs r0, 0x10
+ strh r0, [r4]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8099DCC
+_08097A3C:
+ ldrb r0, [r5, 0x4]
+ adds r0, 0x1
+ strb r0, [r5, 0x4]
+ b _08097A5A
+_08097A44:
+ bl sub_8099E08
+ lsls r0, 24
+ cmp r0, 0
+ bne _08097A5A
+ movs r0, 0x1
+ bl sub_809A860
+ ldr r0, _08097A60 @ =sub_8096C84
+ bl sub_8096BE0
+_08097A5A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08097A60: .4byte sub_8096C84
+ thumb_func_end sub_8097974
+
+ thumb_func_start sub_8097A64
+sub_8097A64: @ 8097A64
+ push {r4,r5,lr}
+ ldr r5, _08097A78 @ =0x02000000
+ ldrb r0, [r5, 0x4]
+ cmp r0, 0x1
+ beq _08097AB0
+ cmp r0, 0x1
+ bgt _08097A7C
+ cmp r0, 0
+ beq _08097A86
+ b _08097B32
+ .align 2, 0
+_08097A78: .4byte 0x02000000
+_08097A7C:
+ cmp r0, 0x2
+ beq _08097B00
+ cmp r0, 0x3
+ beq _08097B18
+ b _08097B32
+_08097A86:
+ movs r0, 0x5
+ bl sub_8098898
+ ldr r1, _08097AA4 @ =0x00002370
+ adds r0, r5, r1
+ ldr r2, _08097AA8 @ =0x0000daca
+ movs r1, 0x7
+ movs r3, 0x3
+ bl sub_8096264
+ ldr r0, _08097AAC @ =gPokemonStorage
+ ldrb r0, [r0]
+ bl sub_809634C
+ b _08097B0A
+ .align 2, 0
+_08097AA4: .4byte 0x00002370
+_08097AA8: .4byte 0x0000daca
+_08097AAC: .4byte gPokemonStorage
+_08097AB0:
+ bl sub_8096368
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08097AF4 @ =0x000008b2
+ adds r4, r5, r2
+ strh r0, [r4]
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ cmp r0, 0xC8
+ beq _08097B32
+ bl sub_8098A5C
+ bl sub_809635C
+ bl sub_8096310
+ movs r2, 0
+ ldrsh r0, [r4, r2]
+ cmp r0, 0xC9
+ beq _08097AE4
+ adds r1, r0, 0
+ ldr r0, _08097AF8 @ =gPokemonStorage
+ ldrb r0, [r0]
+ cmp r1, r0
+ bne _08097B0A
+_08097AE4:
+ movs r0, 0x1
+ bl sub_809A860
+ ldr r0, _08097AFC @ =sub_8096C84
+ bl sub_8096BE0
+ b _08097B32
+ .align 2, 0
+_08097AF4: .4byte 0x000008b2
+_08097AF8: .4byte gPokemonStorage
+_08097AFC: .4byte sub_8096C84
+_08097B00:
+ ldr r1, _08097B14 @ =0x000008b2
+ adds r0, r5, r1
+ ldrb r0, [r0]
+ bl sub_8099C70
+_08097B0A:
+ ldrb r0, [r5, 0x4]
+ adds r0, 0x1
+ strb r0, [r5, 0x4]
+ b _08097B32
+ .align 2, 0
+_08097B14: .4byte 0x000008b2
+_08097B18:
+ bl sub_8099D34
+ lsls r0, 24
+ cmp r0, 0
+ bne _08097B32
+ ldr r1, _08097B38 @ =gPokemonStorage
+ ldr r2, _08097B3C @ =0x000008b2
+ adds r0, r5, r2
+ ldrh r0, [r0]
+ strb r0, [r1]
+ ldr r0, _08097B40 @ =sub_8096C84
+ bl sub_8096BE0
+_08097B32:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08097B38: .4byte gPokemonStorage
+_08097B3C: .4byte 0x000008b2
+_08097B40: .4byte sub_8096C84
+ thumb_func_end sub_8097A64
+
+ thumb_func_start sub_8097B44
+sub_8097B44: @ 8097B44
+ push {r4,r5,lr}
+ sub sp, 0x4
+ ldr r5, _08097B58 @ =0x02000000
+ ldrb r4, [r5, 0x4]
+ cmp r4, 0
+ beq _08097B5C
+ cmp r4, 0x1
+ beq _08097B78
+ b _08097B8E
+ .align 2, 0
+_08097B58: .4byte 0x02000000
+_08097B5C:
+ bl sub_809BB90
+ movs r0, 0x1
+ negs r0, r0
+ str r4, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldrb r0, [r5, 0x4]
+ adds r0, 0x1
+ strb r0, [r5, 0x4]
+ b _08097B8E
+_08097B78:
+ bl UpdatePaletteFade
+ lsls r0, 24
+ cmp r0, 0
+ bne _08097B8E
+ ldr r0, _08097B98 @ =gUnknown_0203847F
+ strb r4, [r0]
+ strb r4, [r5, 0x6]
+ ldr r0, _08097B9C @ =sub_8096B5C
+ bl SetMainCallback2
+_08097B8E:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08097B98: .4byte gUnknown_0203847F
+_08097B9C: .4byte sub_8096B5C
+ thumb_func_end sub_8097B44
+
+ thumb_func_start sub_8097BA0
+sub_8097BA0: @ 8097BA0
+ push {r4,lr}
+ ldr r0, _08097BB8 @ =0x02000000
+ ldrb r1, [r0, 0x4]
+ adds r4, r0, 0
+ cmp r1, 0x4
+ bls _08097BAE
+ b _08097CB0
+_08097BAE:
+ lsls r0, r1, 2
+ ldr r1, _08097BBC @ =_08097BC0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08097BB8: .4byte 0x02000000
+_08097BBC: .4byte _08097BC0
+ .align 2, 0
+_08097BC0:
+ .4byte _08097BD4
+ .4byte _08097C18
+ .4byte _08097C2C
+ .4byte _08097C74
+ .4byte _08097C98
+_08097BD4:
+ bl sub_809BF20
+ lsls r0, 24
+ cmp r0, 0
+ beq _08097BF8
+ movs r0, 0x20
+ bl PlaySE
+ movs r0, 0xF
+ bl sub_8098898
+ ldr r1, _08097BF4 @ =0x02000000
+ movs r0, 0x1
+ strb r0, [r1, 0x4]
+ b _08097CB0
+ .align 2, 0
+_08097BF4: .4byte 0x02000000
+_08097BF8:
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0
+ bl sub_8098898
+ movs r0, 0
+ bl sub_8098A38
+ ldr r1, _08097C14 @ =0x02000000
+ movs r0, 0x2
+ strb r0, [r1, 0x4]
+ b _08097CB0
+ .align 2, 0
+_08097C14: .4byte 0x02000000
+_08097C18:
+ ldr r0, _08097C28 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0xF3
+ ands r0, r1
+ cmp r0, 0
+ beq _08097CB0
+ b _08097C4A
+ .align 2, 0
+_08097C28: .4byte gMain
+_08097C2C:
+ bl ProcessMenuInputNoWrap
+ lsls r0, 24
+ asrs r1, r0, 24
+ cmp r1, 0
+ beq _08097C5C
+ cmp r1, 0
+ bgt _08097C46
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _08097C4A
+ b _08097CB0
+_08097C46:
+ cmp r1, 0x1
+ bne _08097CB0
+_08097C4A:
+ bl sub_8098A5C
+ ldr r0, _08097C58 @ =sub_8096C84
+ bl sub_8096BE0
+ b _08097CB0
+ .align 2, 0
+_08097C58: .4byte sub_8096C84
+_08097C5C:
+ movs r0, 0x3
+ bl PlaySE
+ bl sub_8098A5C
+ ldr r1, _08097C70 @ =0x02000000
+ ldrb r0, [r1, 0x4]
+ adds r0, 0x1
+ strb r0, [r1, 0x4]
+ b _08097CB0
+ .align 2, 0
+_08097C70: .4byte 0x02000000
+_08097C74:
+ movs r1, 0
+ movs r0, 0xE
+ strh r0, [r4, 0xC]
+ ldr r0, _08097C94 @ =0x0000dad0
+ strh r0, [r4, 0xE]
+ movs r0, 0x14
+ strh r0, [r4, 0x10]
+ strh r1, [r4, 0x12]
+ adds r0, r4, 0
+ adds r0, 0xC
+ bl sub_80C5E38
+ ldrb r0, [r4, 0x4]
+ adds r0, 0x1
+ strb r0, [r4, 0x4]
+ b _08097CB0
+ .align 2, 0
+_08097C94: .4byte 0x0000dad0
+_08097C98:
+ bl sub_80C5F98
+ lsls r0, 24
+ cmp r0, 0
+ beq _08097CB0
+ bl CalculatePlayerPartyCount
+ ldr r1, _08097CB8 @ =gPlayerPartyCount
+ strb r0, [r1]
+ ldr r0, _08097CBC @ =sub_80961A8
+ bl SetMainCallback2
+_08097CB0:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08097CB8: .4byte gPlayerPartyCount
+_08097CBC: .4byte sub_80961A8
+ thumb_func_end sub_8097BA0
+
+ thumb_func_start sub_8097CC0
+sub_8097CC0: @ 8097CC0
+ push {r4,lr}
+ ldr r0, _08097CD8 @ =0x02000000
+ ldrb r1, [r0, 0x4]
+ adds r4, r0, 0
+ cmp r1, 0x4
+ bls _08097CCE
+ b _08097DD0
+_08097CCE:
+ lsls r0, r1, 2
+ ldr r1, _08097CDC @ =_08097CE0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08097CD8: .4byte 0x02000000
+_08097CDC: .4byte _08097CE0
+ .align 2, 0
+_08097CE0:
+ .4byte _08097CF4
+ .4byte _08097D38
+ .4byte _08097D4C
+ .4byte _08097D94
+ .4byte _08097DB8
+_08097CF4:
+ bl sub_809BF20
+ lsls r0, 24
+ cmp r0, 0
+ beq _08097D18
+ movs r0, 0x20
+ bl PlaySE
+ movs r0, 0xF
+ bl sub_8098898
+ ldr r1, _08097D14 @ =0x02000000
+ movs r0, 0x1
+ strb r0, [r1, 0x4]
+ b _08097DD0
+ .align 2, 0
+_08097D14: .4byte 0x02000000
+_08097D18:
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x12
+ bl sub_8098898
+ movs r0, 0
+ bl sub_8098A38
+ ldr r1, _08097D34 @ =0x02000000
+ movs r0, 0x2
+ strb r0, [r1, 0x4]
+ b _08097DD0
+ .align 2, 0
+_08097D34: .4byte 0x02000000
+_08097D38:
+ ldr r0, _08097D48 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0xF3
+ ands r0, r1
+ cmp r0, 0
+ beq _08097DD0
+ b _08097D6C
+ .align 2, 0
+_08097D48: .4byte gMain
+_08097D4C:
+ bl ProcessMenuInputNoWrap
+ lsls r0, 24
+ asrs r1, r0, 24
+ cmp r1, 0
+ beq _08097D6C
+ cmp r1, 0
+ bgt _08097D66
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _08097D7C
+ b _08097DD0
+_08097D66:
+ cmp r1, 0x1
+ beq _08097D7C
+ b _08097DD0
+_08097D6C:
+ bl sub_8098A5C
+ ldr r0, _08097D78 @ =sub_8096C84
+ bl sub_8096BE0
+ b _08097DD0
+ .align 2, 0
+_08097D78: .4byte sub_8096C84
+_08097D7C:
+ movs r0, 0x3
+ bl PlaySE
+ bl sub_8098A5C
+ ldr r1, _08097D90 @ =0x02000000
+ ldrb r0, [r1, 0x4]
+ adds r0, 0x1
+ strb r0, [r1, 0x4]
+ b _08097DD0
+ .align 2, 0
+_08097D90: .4byte 0x02000000
+_08097D94:
+ movs r1, 0
+ movs r0, 0xE
+ strh r0, [r4, 0xC]
+ ldr r0, _08097DB4 @ =0x0000dad0
+ strh r0, [r4, 0xE]
+ movs r0, 0x14
+ strh r0, [r4, 0x10]
+ strh r1, [r4, 0x12]
+ adds r0, r4, 0
+ adds r0, 0xC
+ bl sub_80C5E38
+ ldrb r0, [r4, 0x4]
+ adds r0, 0x1
+ strb r0, [r4, 0x4]
+ b _08097DD0
+ .align 2, 0
+_08097DB4: .4byte 0x0000dad0
+_08097DB8:
+ bl sub_80C5F98
+ lsls r0, 24
+ cmp r0, 0
+ beq _08097DD0
+ bl CalculatePlayerPartyCount
+ ldr r1, _08097DD8 @ =gPlayerPartyCount
+ strb r0, [r1]
+ ldr r0, _08097DDC @ =sub_80961A8
+ bl SetMainCallback2
+_08097DD0:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08097DD8: .4byte gPlayerPartyCount
+_08097DDC: .4byte sub_80961A8
+ thumb_func_end sub_8097CC0
+
+ thumb_func_start sub_8097DE0
+sub_8097DE0: @ 8097DE0
+ push {lr}
+ ldr r1, _08097E1C @ =0x02000000
+ movs r0, 0
+ strb r0, [r1, 0x7]
+ strh r0, [r1, 0x8]
+ strh r0, [r1, 0xA]
+ ldr r1, _08097E20 @ =REG_BG3CNT
+ ldr r2, _08097E24 @ =0x00001e0f
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r1, _08097E28 @ =gPokemonStorageScrollingBGTile
+ ldr r2, _08097E2C @ =0x0600e000
+ ldr r0, _08097E30 @ =0x040000d4
+ str r1, [r0]
+ str r2, [r0, 0x4]
+ ldr r1, _08097E34 @ =0x80000010
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ ldr r0, _08097E38 @ =gPokemonStorageScrollingBGTilemap
+ ldr r1, _08097E3C @ =0x0600f000
+ bl LZ77UnCompVram
+ ldr r0, _08097E40 @ =gPokemonStorageScrollingBGPalette
+ movs r1, 0xD0
+ movs r2, 0x10
+ bl LoadPalette
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08097E1C: .4byte 0x02000000
+_08097E20: .4byte REG_BG3CNT
+_08097E24: .4byte 0x00001e0f
+_08097E28: .4byte gPokemonStorageScrollingBGTile
+_08097E2C: .4byte 0x0600e000
+_08097E30: .4byte 0x040000d4
+_08097E34: .4byte 0x80000010
+_08097E38: .4byte gPokemonStorageScrollingBGTilemap
+_08097E3C: .4byte 0x0600f000
+_08097E40: .4byte gPokemonStorageScrollingBGPalette
+ thumb_func_end sub_8097DE0
+
+ thumb_func_start sub_8097E44
+sub_8097E44: @ 8097E44
+ push {lr}
+ ldr r1, _08097E6C @ =0x02000000
+ ldrb r0, [r1, 0x7]
+ adds r0, 0x1
+ strb r0, [r1, 0x7]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bls _08097E66
+ movs r0, 0
+ strb r0, [r1, 0x7]
+ ldrh r0, [r1, 0x8]
+ subs r0, 0x1
+ strh r0, [r1, 0x8]
+ ldrh r0, [r1, 0xA]
+ adds r0, 0x1
+ strh r0, [r1, 0xA]
+_08097E66:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08097E6C: .4byte 0x02000000
+ thumb_func_end sub_8097E44
+
+ thumb_func_start sub_8097E70
+sub_8097E70: @ 8097E70
+ push {r4,lr}
+ sub sp, 0x10
+ ldr r0, _08097F2C @ =gPSSMenuHeader_Gfx
+ ldr r1, _08097F30 @ =0x06005000
+ bl LZ77UnCompVram
+ ldr r0, _08097F34 @ =gPSSMenuHeader_Tilemap
+ ldr r4, _08097F38 @ =gUnknown_02039760
+ adds r1, r4, 0
+ bl LZ77UnCompWram
+ ldr r0, _08097F3C @ =0x06007800
+ movs r1, 0
+ str r1, [sp]
+ str r1, [sp, 0x4]
+ movs r1, 0xA
+ str r1, [sp, 0x8]
+ movs r1, 0x14
+ str r1, [sp, 0xC]
+ movs r1, 0
+ movs r2, 0
+ adds r3, r4, 0
+ bl sub_809D034
+ ldr r0, _08097F40 @ =gPSSMenu1_Pal
+ movs r1, 0x10
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r0, _08097F44 @ =gPSSMenu2_Pal
+ movs r1, 0
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r0, _08097F48 @ =gUnknown_083B6D74
+ movs r1, 0xB0
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r0, _08097F4C @ =gUnknown_083B6D94
+ movs r1, 0xC0
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r4, _08097F50 @ =gUnknownPalette_81E6692+0x2
+ adds r0, r4, 0
+ movs r1, 0xF1
+ movs r2, 0x2
+ bl LoadPalette
+ adds r0, r4, 0
+ movs r1, 0xF2
+ movs r2, 0x2
+ bl LoadPalette
+ adds r0, r4, 0
+ adds r0, 0x8
+ movs r1, 0xF3
+ movs r2, 0x2
+ bl LoadPalette
+ adds r0, r4, 0
+ adds r0, 0x16
+ movs r1, 0xF4
+ movs r2, 0x4
+ bl LoadPalette
+ adds r0, r4, 0
+ adds r0, 0x12
+ movs r1, 0xF6
+ movs r2, 0x4
+ bl LoadPalette
+ adds r4, 0x2
+ adds r0, r4, 0
+ movs r1, 0xFF
+ movs r2, 0x2
+ bl LoadPalette
+ ldr r0, _08097F54 @ =gWaveformSpritePalette
+ bl LoadSpritePalette
+ bl sub_80980D4
+ bl sub_8097F58
+ bl sub_8097FB8
+ bl sub_809801C
+ add sp, 0x10
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08097F2C: .4byte gPSSMenuHeader_Gfx
+_08097F30: .4byte 0x06005000
+_08097F34: .4byte gPSSMenuHeader_Tilemap
+_08097F38: .4byte gUnknown_02039760
+_08097F3C: .4byte 0x06007800
+_08097F40: .4byte gPSSMenu1_Pal
+_08097F44: .4byte gPSSMenu2_Pal
+_08097F48: .4byte gUnknown_083B6D74
+_08097F4C: .4byte gUnknown_083B6D94
+_08097F50: .4byte gUnknownPalette_81E6692+0x2
+_08097F54: .4byte gWaveformSpritePalette
+ thumb_func_end sub_8097E70
+
+ thumb_func_start sub_8097F58
+sub_8097F58: @ 8097F58
+ push {r4,lr}
+ ldr r1, _08097FA4 @ =0x0000dace
+ movs r0, 0xD
+ movs r2, 0
+ bl sub_80F7940
+ ldr r4, _08097FA8 @ =0x02000000
+ ldr r1, _08097FAC @ =0x000012ac
+ adds r3, r4, r1
+ str r0, [r3]
+ ldrb r2, [r0, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r0, 0x5]
+ ldr r0, [r3]
+ adds r0, 0x43
+ movs r1, 0x1
+ strb r1, [r0]
+ ldr r1, [r3]
+ movs r0, 0x28
+ strh r0, [r1, 0x20]
+ ldr r1, [r3]
+ movs r0, 0x95
+ strh r0, [r1, 0x22]
+ movs r0, 0xD
+ bl GetSpriteTileStartByTag
+ ldr r1, _08097FB0 @ =0x000012b8
+ adds r4, r1
+ lsls r0, 16
+ lsrs r0, 11
+ ldr r1, _08097FB4 @ =0x06010000
+ adds r0, r1
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08097FA4: .4byte 0x0000dace
+_08097FA8: .4byte 0x02000000
+_08097FAC: .4byte 0x000012ac
+_08097FB0: .4byte 0x000012b8
+_08097FB4: .4byte 0x06010000
+ thumb_func_end sub_8097F58
+
+ thumb_func_start sub_8097FB8
+sub_8097FB8: @ 8097FB8
+ push {r4,r5,lr}
+ sub sp, 0x8
+ ldr r0, _0809800C @ =gWaveformSpriteSheet
+ ldr r1, [r0, 0x4]
+ ldr r0, [r0]
+ str r0, [sp]
+ str r1, [sp, 0x4]
+ mov r0, sp
+ bl LoadSpriteSheet
+ movs r4, 0
+ ldr r5, _08098010 @ =0x020012b0
+_08097FD0:
+ lsls r1, r4, 6
+ subs r1, r4
+ adds r1, 0x8
+ lsls r1, 16
+ asrs r1, 16
+ ldr r0, _08098014 @ =gSpriteTemplate_83B6EFC
+ movs r2, 0x9
+ movs r3, 0x2
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r2, r4, 2
+ adds r2, r5
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, _08098018 @ =gSprites
+ adds r1, r0
+ str r1, [r2]
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x1
+ bls _08097FD0
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809800C: .4byte gWaveformSpriteSheet
+_08098010: .4byte 0x020012b0
+_08098014: .4byte gSpriteTemplate_83B6EFC
+_08098018: .4byte gSprites
+ thumb_func_end sub_8097FB8
+
+ thumb_func_start sub_809801C
+sub_809801C: @ 809801C
+ push {lr}
+ ldr r1, _0809803C @ =0x02000000
+ ldr r2, _08098040 @ =0x000011f0
+ adds r0, r1, r2
+ ldrh r0, [r0]
+ subs r2, 0x4
+ adds r1, r2
+ ldr r1, [r1]
+ bl sub_80981F0
+ bl sub_80982B4
+ bl sub_8098350
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809803C: .4byte 0x02000000
+_08098040: .4byte 0x000011f0
+ thumb_func_end sub_809801C
+
+ thumb_func_start BoxSetMosaic
+BoxSetMosaic: @ 8098044
+ push {lr}
+ bl sub_809801C
+ ldr r0, _08098084 @ =0x02000000
+ movs r1, 0x9C
+ lsls r1, 6
+ adds r3, r0, r1
+ ldr r2, [r3]
+ cmp r2, 0
+ beq _08098080
+ ldrb r0, [r2, 0x1]
+ movs r1, 0x10
+ orrs r0, r1
+ strb r0, [r2, 0x1]
+ ldr r1, [r3]
+ movs r0, 0xA
+ strh r0, [r1, 0x2E]
+ ldr r1, [r3]
+ movs r0, 0x1
+ strh r0, [r1, 0x30]
+ ldr r1, [r3]
+ ldr r0, _08098088 @ =sub_8098090
+ str r0, [r1, 0x1C]
+ ldr r2, _0809808C @ =REG_MOSAIC
+ ldr r0, [r3]
+ ldrh r0, [r0, 0x2E]
+ lsls r1, r0, 12
+ lsls r0, 8
+ orrs r1, r0
+ strh r1, [r2]
+_08098080:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08098084: .4byte 0x02000000
+_08098088: .4byte sub_8098090
+_0809808C: .4byte REG_MOSAIC
+ thumb_func_end BoxSetMosaic
+
+ thumb_func_start sub_8098090
+sub_8098090: @ 8098090
+ push {lr}
+ adds r3, r0, 0
+ ldrh r0, [r3, 0x2E]
+ ldrh r1, [r3, 0x30]
+ subs r0, r1
+ strh r0, [r3, 0x2E]
+ lsls r0, 16
+ cmp r0, 0
+ bge _080980A6
+ movs r0, 0
+ strh r0, [r3, 0x2E]
+_080980A6:
+ ldr r2, _080980CC @ =REG_MOSAIC
+ ldrh r0, [r3, 0x2E]
+ lsls r1, r0, 12
+ lsls r0, 8
+ orrs r1, r0
+ strh r1, [r2]
+ movs r1, 0x2E
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ bne _080980C8
+ ldrb r0, [r3, 0x1]
+ movs r1, 0x11
+ negs r1, r1
+ ands r1, r0
+ strb r1, [r3, 0x1]
+ ldr r0, _080980D0 @ =SpriteCallbackDummy
+ str r0, [r3, 0x1C]
+_080980C8:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080980CC: .4byte REG_MOSAIC
+_080980D0: .4byte SpriteCallbackDummy
+ thumb_func_end sub_8098090
+
+ thumb_func_start sub_80980D4
+sub_80980D4: @ 80980D4
+ push {r4,r5,lr}
+ sub sp, 0x28
+ ldr r0, _08098150 @ =gUnknown_083B6DCC
+ ldr r1, [r0, 0x4]
+ ldr r0, [r0]
+ str r0, [sp, 0x18]
+ str r1, [sp, 0x1C]
+ ldr r0, _08098154 @ =gUnknown_083B6DD4
+ ldr r1, [r0, 0x4]
+ ldr r0, [r0]
+ str r0, [sp, 0x20]
+ str r1, [sp, 0x24]
+ mov r1, sp
+ ldr r0, _08098158 @ =gSpriteTemplate_83B6DDC
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ movs r1, 0
+ add r5, sp, 0x18
+ ldr r4, _0809815C @ =0x02002784
+ movs r3, 0
+ ldr r2, _08098160 @ =0x000007ff
+_08098102:
+ adds r0, r1, r4
+ strb r3, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, r2
+ bls _08098102
+ movs r1, 0
+ ldr r3, _08098164 @ =0x02002704
+ movs r2, 0
+_08098116:
+ lsls r0, r1, 1
+ adds r0, r3
+ strh r2, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0xF
+ bls _08098116
+ ldr r0, _08098168 @ =0x02000000
+ movs r1, 0x9C
+ lsls r1, 6
+ adds r0, r1
+ movs r1, 0
+ str r1, [r0]
+ adds r0, r5, 0
+ bl LoadSpriteSheet
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0
+ beq _080981C4
+ add r0, sp, 0x20
+ bl LoadSpritePalette
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0xFF
+ beq _080981C4
+ b _080981B0
+ .align 2, 0
+_08098150: .4byte gUnknown_083B6DCC
+_08098154: .4byte gUnknown_083B6DD4
+_08098158: .4byte gSpriteTemplate_83B6DDC
+_0809815C: .4byte 0x02002784
+_08098160: .4byte 0x000007ff
+_08098164: .4byte 0x02002704
+_08098168: .4byte 0x02000000
+_0809816C:
+ ldr r2, _0809819C @ =0x02000000
+ movs r0, 0x9C
+ lsls r0, 6
+ adds r3, r2, r0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080981A0 @ =gSprites
+ adds r0, r1
+ str r0, [r3]
+ lsls r0, r4, 4
+ movs r1, 0x80
+ lsls r1, 1
+ adds r0, r1
+ ldr r3, _080981A4 @ =0x000026fa
+ adds r1, r2, r3
+ strh r0, [r1]
+ ldr r4, _080981A8 @ =0x000026fc
+ adds r2, r4
+ lsls r0, r5, 5
+ ldr r1, _080981AC @ =0x06010000
+ adds r0, r1
+ str r0, [r2]
+ b _080981C4
+ .align 2, 0
+_0809819C: .4byte 0x02000000
+_080981A0: .4byte gSprites
+_080981A4: .4byte 0x000026fa
+_080981A8: .4byte 0x000026fc
+_080981AC: .4byte 0x06010000
+_080981B0:
+ mov r0, sp
+ movs r1, 0x28
+ movs r2, 0x30
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x40
+ bne _0809816C
+_080981C4:
+ ldr r0, _080981E8 @ =0x02000000
+ movs r2, 0x9C
+ lsls r2, 6
+ adds r0, r2
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _080981DE
+ movs r0, 0x2
+ bl FreeSpriteTilesByTag
+ ldr r0, _080981EC @ =0x0000dac7
+ bl FreeSpritePaletteByTag
+_080981DE:
+ add sp, 0x28
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080981E8: .4byte 0x02000000
+_080981EC: .4byte 0x0000dac7
+ thumb_func_end sub_80980D4
+
+ thumb_func_start sub_80981F0
+sub_80981F0: @ 80981F0
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0xC
+ adds r7, r1, 0
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldr r6, _08098274 @ =0x02000000
+ movs r0, 0x9C
+ lsls r0, 6
+ adds r0, r6
+ mov r8, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _080982A6
+ cmp r4, 0
+ beq _0809829C
+ lsls r0, r4, 3
+ ldr r1, _08098278 @ =gMonFrontPicTable
+ adds r0, r1
+ ldr r2, _0809827C @ =gMonFrontPicCoords
+ lsls r1, r4, 2
+ adds r1, r2
+ ldrb r1, [r1]
+ ldr r2, _08098280 @ =0x00004784
+ adds r3, r6, r2
+ ldr r2, _08098284 @ =0x00002784
+ adds r5, r6, r2
+ str r5, [sp]
+ str r4, [sp, 0x4]
+ str r7, [sp, 0x8]
+ movs r2, 0x1
+ bl HandleLoadSpecialPokePic
+ ldr r1, _08098288 @ =0x000011e8
+ adds r0, r6, r1
+ ldr r0, [r0]
+ ldr r2, _0809828C @ =0x00002704
+ adds r4, r6, r2
+ adds r1, r4, 0
+ bl LZ77UnCompWram
+ ldr r1, _08098290 @ =0x000026fc
+ adds r0, r6, r1
+ ldr r1, [r0]
+ ldr r2, _08098294 @ =0x04000200
+ adds r0, r5, 0
+ bl CpuSet
+ ldr r2, _08098298 @ =0x000026fa
+ adds r0, r6, r2
+ ldrh r1, [r0]
+ adds r0, r4, 0
+ movs r2, 0x20
+ bl LoadPalette
+ mov r0, r8
+ ldr r1, [r0]
+ adds r1, 0x3E
+ ldrb r2, [r1]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1]
+ b _080982A6
+ .align 2, 0
+_08098274: .4byte 0x02000000
+_08098278: .4byte gMonFrontPicTable
+_0809827C: .4byte gMonFrontPicCoords
+_08098280: .4byte 0x00004784
+_08098284: .4byte 0x00002784
+_08098288: .4byte 0x000011e8
+_0809828C: .4byte 0x00002704
+_08098290: .4byte 0x000026fc
+_08098294: .4byte 0x04000200
+_08098298: .4byte 0x000026fa
+_0809829C:
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+_080982A6:
+ add sp, 0xC
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80981F0
+
+ thumb_func_start sub_80982B4
+sub_80982B4: @ 80982B4
+ push {r4,lr}
+ ldr r4, _080982E4 @ =0x02000000
+ ldr r1, _080982E8 @ =0x000011f0
+ adds r0, r4, r1
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _080982F4
+ ldr r2, _080982EC @ =0x000011f7
+ adds r0, r4, r2
+ ldrb r0, [r0]
+ adds r2, 0xC1
+ adds r1, r4, r2
+ ldr r1, [r1]
+ bl sub_80F7A10
+ ldr r1, _080982F0 @ =0x000012ac
+ adds r0, r4, r1
+ ldr r1, [r0]
+ adds r1, 0x3E
+ ldrb r2, [r1]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ b _08098302
+ .align 2, 0
+_080982E4: .4byte 0x02000000
+_080982E8: .4byte 0x000011f0
+_080982EC: .4byte 0x000011f7
+_080982F0: .4byte 0x000012ac
+_080982F4:
+ ldr r2, _08098348 @ =0x000012ac
+ adds r0, r4, r2
+ ldr r1, [r0]
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ movs r2, 0x4
+ orrs r0, r2
+_08098302:
+ strb r0, [r1]
+ movs r0, 0
+ movs r1, 0xB
+ movs r2, 0x9
+ movs r3, 0x11
+ bl MenuZeroFillWindowRect
+ ldr r4, _0809834C @ =0x0200127a
+ adds r0, r4, 0
+ movs r1, 0x1
+ movs r2, 0x10
+ bl MenuPrint
+ adds r0, r4, 0
+ subs r0, 0x6B
+ movs r1, 0x1
+ movs r2, 0xB
+ bl MenuPrint
+ adds r0, r4, 0
+ subs r0, 0x46
+ movs r1, 0
+ movs r2, 0xD
+ bl MenuPrint
+ subs r4, 0x21
+ adds r0, r4, 0
+ movs r1, 0x1
+ movs r2, 0xF
+ bl MenuPrint
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08098348: .4byte 0x000012ac
+_0809834C: .4byte 0x0200127a
+ thumb_func_end sub_80982B4
+
+ thumb_func_start sub_8098350
+sub_8098350: @ 8098350
+ push {r4,r5,lr}
+ sub sp, 0x10
+ ldr r5, _080983A0 @ =0x02000000
+ ldr r1, _080983A4 @ =0x000011f0
+ adds r0, r5, r1
+ ldrh r2, [r0]
+ cmp r2, 0
+ beq _080983B4
+ ldr r0, _080983A8 @ =0x06007800
+ ldr r3, _080983AC @ =gUnknown_02039760
+ movs r1, 0x1
+ str r1, [sp]
+ movs r1, 0
+ str r1, [sp, 0x4]
+ movs r1, 0x8
+ str r1, [sp, 0x8]
+ movs r1, 0x2
+ str r1, [sp, 0xC]
+ movs r1, 0x1
+ movs r2, 0
+ bl sub_809D034
+ movs r4, 0
+ ldr r0, _080983B0 @ =0x000012b0
+ adds r5, r0
+_08098382:
+ lsls r0, r4, 2
+ adds r0, r5
+ ldr r0, [r0]
+ lsls r1, r4, 1
+ adds r1, 0x1
+ lsls r1, 24
+ lsrs r1, 24
+ bl StartSpriteAnimIfDifferent
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x1
+ bls _08098382
+ b _080983EC
+ .align 2, 0
+_080983A0: .4byte 0x02000000
+_080983A4: .4byte 0x000011f0
+_080983A8: .4byte 0x06007800
+_080983AC: .4byte gUnknown_02039760
+_080983B0: .4byte 0x000012b0
+_080983B4:
+ ldr r0, _080983F4 @ =0x06007800
+ ldr r3, _080983F8 @ =gUnknown_02039760
+ movs r1, 0xA
+ str r1, [sp]
+ str r2, [sp, 0x4]
+ movs r1, 0x8
+ str r1, [sp, 0x8]
+ movs r1, 0x2
+ str r1, [sp, 0xC]
+ movs r1, 0x1
+ movs r2, 0
+ bl sub_809D034
+ movs r4, 0
+ ldr r1, _080983FC @ =0x000012b0
+ adds r5, r1
+_080983D4:
+ lsls r0, r4, 2
+ adds r0, r5
+ ldr r0, [r0]
+ lsls r1, r4, 25
+ lsrs r1, 24
+ bl StartSpriteAnim
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x1
+ bls _080983D4
+_080983EC:
+ add sp, 0x10
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080983F4: .4byte 0x06007800
+_080983F8: .4byte gUnknown_02039760
+_080983FC: .4byte 0x000012b0
+ thumb_func_end sub_8098350
+
+ thumb_func_start sub_8098400
+sub_8098400: @ 8098400
+ push {r4,r5,lr}
+ sub sp, 0x14
+ ldr r1, _0809847C @ =REG_BG1CNT
+ ldr r2, _08098480 @ =0x00000f01
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, _08098484 @ =gPSSMenuMisc_Gfx
+ ldr r1, _08098488 @ =0x06006800
+ bl LZ77UnCompVram
+ ldr r0, _0809848C @ =gPSSMenuMisc_Tilemap
+ ldr r5, _08098490 @ =0x020000a8
+ adds r1, r5, 0
+ bl LZ77UnCompWram
+ ldr r0, _08098494 @ =gPSSMenu3_Pal
+ movs r1, 0x20
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r0, _08098498 @ =gPSSMenu4_Pal
+ movs r1, 0x30
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r4, _0809849C @ =0x06007800
+ add r1, sp, 0x10
+ movs r0, 0
+ strh r0, [r1]
+ ldr r0, _080984A0 @ =0x040000d4
+ str r1, [r0]
+ str r4, [r0, 0x4]
+ ldr r1, _080984A4 @ =0x81000400
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ bl sub_8098780
+ ldr r0, _080984A8 @ =gUnknown_0203847C
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080984AC
+ movs r0, 0x1
+ bl sub_8098690
+ movs r0, 0x1
+ bl sub_8099200
+ movs r0, 0
+ str r0, [sp]
+ str r0, [sp, 0x4]
+ movs r0, 0xC
+ str r0, [sp, 0x8]
+ movs r0, 0x16
+ str r0, [sp, 0xC]
+ adds r0, r4, 0
+ movs r1, 0xA
+ movs r2, 0
+ adds r3, r5, 0
+ bl sub_809D034
+ b _080984CC
+ .align 2, 0
+_0809847C: .4byte REG_BG1CNT
+_08098480: .4byte 0x00000f01
+_08098484: .4byte gPSSMenuMisc_Gfx
+_08098488: .4byte 0x06006800
+_0809848C: .4byte gPSSMenuMisc_Tilemap
+_08098490: .4byte 0x020000a8
+_08098494: .4byte gPSSMenu3_Pal
+_08098498: .4byte gPSSMenu4_Pal
+_0809849C: .4byte 0x06007800
+_080984A0: .4byte 0x040000d4
+_080984A4: .4byte 0x81000400
+_080984A8: .4byte gUnknown_0203847C
+_080984AC:
+ str r0, [sp]
+ movs r0, 0x14
+ str r0, [sp, 0x4]
+ movs r0, 0xC
+ str r0, [sp, 0x8]
+ movs r0, 0x2
+ str r0, [sp, 0xC]
+ adds r0, r4, 0
+ movs r1, 0xA
+ movs r2, 0
+ adds r3, r5, 0
+ bl sub_809D034
+ movs r0, 0x1
+ bl sub_8098690
+_080984CC:
+ ldr r0, _080984E0 @ =0x02000000
+ ldr r1, _080984E4 @ =0x000008af
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+ add sp, 0x14
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080984E0: .4byte 0x02000000
+_080984E4: .4byte 0x000008af
+ thumb_func_end sub_8098400
+
+ thumb_func_start sub_80984E8
+sub_80984E8: @ 80984E8
+ push {lr}
+ ldr r1, _08098510 @ =0x02000000
+ ldr r0, _08098514 @ =0x000008a8
+ adds r2, r1, r0
+ movs r3, 0
+ movs r0, 0x14
+ strh r0, [r2]
+ ldr r0, _08098518 @ =0x000008aa
+ adds r2, r1, r0
+ movs r0, 0x2
+ strh r0, [r2]
+ ldr r0, _0809851C @ =0x000008ad
+ adds r1, r0
+ strb r3, [r1]
+ movs r0, 0
+ bl sub_8099200
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08098510: .4byte 0x02000000
+_08098514: .4byte 0x000008a8
+_08098518: .4byte 0x000008aa
+_0809851C: .4byte 0x000008ad
+ thumb_func_end sub_80984E8
+
+ thumb_func_start sub_8098520
+sub_8098520: @ 8098520
+ push {r4,r5,lr}
+ sub sp, 0x10
+ ldr r3, _08098578 @ =0x02000000
+ ldr r0, _0809857C @ =0x000008ad
+ adds r5, r3, r0
+ ldrb r0, [r5]
+ cmp r0, 0x14
+ beq _08098592
+ ldr r0, _08098580 @ =0x000008a8
+ adds r1, r3, r0
+ ldrh r0, [r1]
+ subs r0, 0x1
+ movs r4, 0
+ strh r0, [r1]
+ ldr r0, _08098584 @ =0x000008aa
+ adds r2, r3, r0
+ ldrh r0, [r2]
+ adds r0, 0x1
+ strh r0, [r2]
+ ldr r0, _08098588 @ =0x06007800
+ adds r3, 0xA8
+ str r4, [sp]
+ ldrh r1, [r1]
+ str r1, [sp, 0x4]
+ movs r1, 0xC
+ str r1, [sp, 0x8]
+ ldrh r1, [r2]
+ str r1, [sp, 0xC]
+ movs r1, 0xA
+ movs r2, 0
+ bl sub_809D034
+ movs r0, 0x8
+ bl sub_80994A8
+ ldrb r0, [r5]
+ adds r0, 0x1
+ strb r0, [r5]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x14
+ beq _0809858C
+ movs r0, 0x1
+ b _08098594
+ .align 2, 0
+_08098578: .4byte 0x02000000
+_0809857C: .4byte 0x000008ad
+_08098580: .4byte 0x000008a8
+_08098584: .4byte 0x000008aa
+_08098588: .4byte 0x06007800
+_0809858C:
+ ldr r1, _0809859C @ =gUnknown_0203847C
+ movs r0, 0x1
+ strb r0, [r1]
+_08098592:
+ movs r0, 0
+_08098594:
+ add sp, 0x10
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0809859C: .4byte gUnknown_0203847C
+ thumb_func_end sub_8098520
+
+ thumb_func_start add_to_c3_somehow
+add_to_c3_somehow: @ 80985A0
+ ldr r1, _080985BC @ =0x02000000
+ ldr r0, _080985C0 @ =0x000008a8
+ adds r2, r1, r0
+ movs r3, 0
+ movs r0, 0
+ strh r0, [r2]
+ ldr r0, _080985C4 @ =0x000008aa
+ adds r2, r1, r0
+ movs r0, 0x16
+ strh r0, [r2]
+ ldr r0, _080985C8 @ =0x000008ad
+ adds r1, r0
+ strb r3, [r1]
+ bx lr
+ .align 2, 0
+_080985BC: .4byte 0x02000000
+_080985C0: .4byte 0x000008a8
+_080985C4: .4byte 0x000008aa
+_080985C8: .4byte 0x000008ad
+ thumb_func_end add_to_c3_somehow
+
+ thumb_func_start sub_80985CC
+sub_80985CC: @ 80985CC
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x10
+ ldr r3, _08098640 @ =0x02000000
+ ldr r0, _08098644 @ =0x000008ad
+ adds r6, r3, r0
+ ldrb r0, [r6]
+ cmp r0, 0x14
+ beq _0809867A
+ ldr r2, _08098648 @ =0x000008a8
+ adds r1, r3, r2
+ ldrh r0, [r1]
+ adds r0, 0x1
+ movs r2, 0
+ mov r9, r2
+ strh r0, [r1]
+ ldr r0, _0809864C @ =0x000008aa
+ adds r4, r3, r0
+ ldrh r0, [r4]
+ subs r0, 0x1
+ strh r0, [r4]
+ ldr r5, _08098650 @ =0x06007800
+ adds r3, 0xA8
+ mov r8, r3
+ str r2, [sp]
+ ldrh r0, [r1]
+ str r0, [sp, 0x4]
+ movs r7, 0xC
+ str r7, [sp, 0x8]
+ ldrh r0, [r4]
+ str r0, [sp, 0xC]
+ adds r0, r5, 0
+ movs r1, 0xA
+ bl sub_809D034
+ ldrh r2, [r4]
+ movs r4, 0x1
+ str r4, [sp]
+ adds r0, r5, 0
+ movs r1, 0xA
+ movs r3, 0xC
+ bl sub_809D16C
+ movs r0, 0x8
+ negs r0, r0
+ bl sub_80994A8
+ ldrb r0, [r6]
+ adds r0, 0x1
+ strb r0, [r6]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x14
+ beq _08098654
+ movs r0, 0x1
+ b _0809867C
+ .align 2, 0
+_08098640: .4byte 0x02000000
+_08098644: .4byte 0x000008ad
+_08098648: .4byte 0x000008a8
+_0809864C: .4byte 0x000008aa
+_08098650: .4byte 0x06007800
+_08098654:
+ ldr r0, _0809868C @ =gUnknown_0203847C
+ movs r1, 0
+ strb r1, [r0]
+ bl sub_809954C
+ bl party_compaction
+ str r7, [sp]
+ mov r2, r9
+ str r2, [sp, 0x4]
+ str r4, [sp, 0x8]
+ movs r0, 0x2
+ str r0, [sp, 0xC]
+ adds r0, r5, 0
+ movs r1, 0x15
+ movs r2, 0
+ mov r3, r8
+ bl sub_809D034
+_0809867A:
+ movs r0, 0
+_0809867C:
+ add sp, 0x10
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0809868C: .4byte gUnknown_0203847C
+ thumb_func_end sub_80985CC
+
+ thumb_func_start sub_8098690
+sub_8098690: @ 8098690
+ push {lr}
+ sub sp, 0x10
+ lsls r0, 24
+ cmp r0, 0
+ beq _080986C0
+ ldr r0, _080986B8 @ =0x06007800
+ ldr r3, _080986BC @ =0x020000a8
+ movs r1, 0xC
+ str r1, [sp]
+ movs r1, 0
+ str r1, [sp, 0x4]
+ movs r1, 0x9
+ str r1, [sp, 0x8]
+ movs r1, 0x2
+ str r1, [sp, 0xC]
+ movs r1, 0x15
+ movs r2, 0
+ bl sub_809D034
+ b _080986DA
+ .align 2, 0
+_080986B8: .4byte 0x06007800
+_080986BC: .4byte 0x020000a8
+_080986C0:
+ ldr r0, _080986E0 @ =0x06007800
+ ldr r3, _080986E4 @ =0x020000a8
+ movs r1, 0xC
+ str r1, [sp]
+ movs r2, 0x2
+ str r2, [sp, 0x4]
+ movs r1, 0x9
+ str r1, [sp, 0x8]
+ str r2, [sp, 0xC]
+ movs r1, 0x15
+ movs r2, 0
+ bl sub_809D034
+_080986DA:
+ add sp, 0x10
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080986E0: .4byte 0x06007800
+_080986E4: .4byte 0x020000a8
+ thumb_func_end sub_8098690
+
+ thumb_func_start sub_80986E8
+sub_80986E8: @ 80986E8
+ ldr r1, _08098704 @ =0x02000000
+ ldr r2, _08098708 @ =0x000008af
+ adds r0, r1, r2
+ movs r3, 0x1
+ strb r3, [r0]
+ movs r0, 0x8B
+ lsls r0, 4
+ adds r2, r1, r0
+ movs r0, 0x1E
+ strb r0, [r2]
+ ldr r2, _0809870C @ =0x000008b1
+ adds r1, r2
+ strb r3, [r1]
+ bx lr
+ .align 2, 0
+_08098704: .4byte 0x02000000
+_08098708: .4byte 0x000008af
+_0809870C: .4byte 0x000008b1
+ thumb_func_end sub_80986E8
+
+ thumb_func_start sub_8098710
+sub_8098710: @ 8098710
+ push {lr}
+ ldr r0, _0809872C @ =0x02000000
+ ldr r2, _08098730 @ =0x000008af
+ adds r1, r0, r2
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _08098728
+ movs r0, 0
+ strb r0, [r1]
+ movs r0, 0x1
+ bl sub_8098690
+_08098728:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809872C: .4byte 0x02000000
+_08098730: .4byte 0x000008af
+ thumb_func_end sub_8098710
+
+ thumb_func_start sub_8098734
+sub_8098734: @ 8098734
+ push {lr}
+ ldr r2, _08098774 @ =0x02000000
+ ldr r1, _08098778 @ =0x000008af
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08098770
+ movs r0, 0x8B
+ lsls r0, 4
+ adds r1, r2, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1E
+ bls _08098770
+ movs r0, 0
+ strb r0, [r1]
+ movs r3, 0
+ ldr r0, _0809877C @ =0x000008b1
+ adds r1, r2, r0
+ ldrb r0, [r1]
+ cmp r0, 0
+ bne _08098768
+ movs r3, 0x1
+_08098768:
+ strb r3, [r1]
+ ldrb r0, [r1]
+ bl sub_8098690
+_08098770:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08098774: .4byte 0x02000000
+_08098778: .4byte 0x000008af
+_0809877C: .4byte 0x000008b1
+ thumb_func_end sub_8098734
+
+ thumb_func_start sub_8098780
+sub_8098780: @ 8098780
+ push {r4-r6,lr}
+ sub sp, 0x10
+ movs r4, 0x1
+ ldr r6, _080987D4 @ =0x020000a8
+ movs r5, 0x80
+ lsls r5, 9
+_0809878C:
+ movs r0, 0x64
+ muls r0, r4
+ ldr r1, _080987D8 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _080987A0
+ movs r0, 0x1
+_080987A0:
+ movs r1, 0x10
+ cmp r0, 0
+ beq _080987A8
+ movs r1, 0xC
+_080987A8:
+ lsrs r2, r5, 16
+ str r1, [sp]
+ movs r0, 0x4
+ str r0, [sp, 0x4]
+ str r0, [sp, 0x8]
+ movs r0, 0x3
+ str r0, [sp, 0xC]
+ adds r0, r6, 0
+ movs r1, 0x7
+ adds r3, r6, 0
+ bl sub_809D104
+ movs r0, 0xC0
+ lsls r0, 10
+ adds r5, r0
+ adds r4, 0x1
+ cmp r4, 0x5
+ ble _0809878C
+ add sp, 0x10
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080987D4: .4byte 0x020000a8
+_080987D8: .4byte gPlayerParty
+ thumb_func_end sub_8098780
+
+ thumb_func_start sub_80987DC
+sub_80987DC: @ 80987DC
+ push {lr}
+ sub sp, 0x10
+ bl sub_8098780
+ ldr r0, _08098804 @ =0x06007800
+ ldr r3, _08098808 @ =0x020000a8
+ movs r1, 0
+ str r1, [sp]
+ str r1, [sp, 0x4]
+ movs r1, 0xC
+ str r1, [sp, 0x8]
+ movs r1, 0x16
+ str r1, [sp, 0xC]
+ movs r1, 0xA
+ movs r2, 0
+ bl sub_809D034
+ add sp, 0x10
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08098804: .4byte 0x06007800
+_08098808: .4byte 0x020000a8
+ thumb_func_end sub_80987DC
+
+ thumb_func_start sub_809880C
+sub_809880C: @ 809880C
+ push {lr}
+ ldr r0, _08098828 @ =0x02000000
+ ldr r1, _0809882C @ =0x000008ae
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+ movs r0, 0x6
+ bl PlaySE
+ bl sub_80984E8
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08098828: .4byte 0x02000000
+_0809882C: .4byte 0x000008ae
+ thumb_func_end sub_809880C
+
+ thumb_func_start sub_8098830
+sub_8098830: @ 8098830
+ push {r4,r5,lr}
+ ldr r5, _08098848 @ =0x02000000
+ ldr r0, _0809884C @ =0x000008ae
+ adds r4, r5, r0
+ ldrb r0, [r4]
+ cmp r0, 0x1
+ beq _08098866
+ cmp r0, 0x1
+ bgt _08098850
+ cmp r0, 0
+ beq _08098856
+ b _08098890
+ .align 2, 0
+_08098848: .4byte 0x02000000
+_0809884C: .4byte 0x000008ae
+_08098850:
+ cmp r0, 0x2
+ beq _0809888C
+ b _08098890
+_08098856:
+ bl sub_8098520
+ lsls r0, 24
+ cmp r0, 0
+ bne _08098890
+ bl sub_809B068
+ b _0809887E
+_08098866:
+ bl sub_809AC00
+ lsls r0, 24
+ cmp r0, 0
+ bne _08098890
+ ldr r1, _08098888 @ =0x000011f6
+ adds r0, r5, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0809887E
+ bl BoxSetMosaic
+_0809887E:
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ b _08098890
+ .align 2, 0
+_08098888: .4byte 0x000011f6
+_0809888C:
+ movs r0, 0
+ b _08098892
+_08098890:
+ movs r0, 0x1
+_08098892:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8098830
+
+ thumb_func_start sub_8098898
+sub_8098898: @ 8098898
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r0, 0xA
+ movs r1, 0x10
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuDrawTextWindow
+ ldr r1, _080988C4 @ =gUnknown_083B6DF4
+ lsls r0, r5, 3
+ adds r0, r1
+ ldrb r0, [r0, 0x4]
+ cmp r0, 0x6
+ bls _080988B8
+ b _080989F4
+_080988B8:
+ lsls r0, 2
+ ldr r1, _080988C8 @ =_080988CC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080988C4: .4byte gUnknown_083B6DF4
+_080988C8: .4byte _080988CC
+ .align 2, 0
+_080988CC:
+ .4byte _080989F4
+ .4byte _08098930
+ .4byte _080988E8
+ .4byte _08098974
+ .4byte _08098954
+ .4byte _08098910
+ .4byte _080989B8
+_080988E8:
+ ldr r4, _08098904 @ =0x02002694
+ ldr r1, _08098908 @ =gUnknown_083B6DF4
+ lsls r0, r5, 3
+ adds r0, r1
+ ldr r1, [r0]
+ adds r0, r4, 0
+ bl StringCopy
+ adds r2, r0, 0
+ ldr r0, _0809890C @ =0xffffeb66
+ adds r4, r0
+ adds r0, r2, 0
+ adds r1, r4, 0
+ b _080989FE
+ .align 2, 0
+_08098904: .4byte 0x02002694
+_08098908: .4byte gUnknown_083B6DF4
+_0809890C: .4byte 0xffffeb66
+_08098910:
+ ldr r4, _08098928 @ =0x02002694
+ ldr r1, _0809892C @ =gUnknown_083B6DF4
+ lsls r0, r5, 3
+ adds r0, r1
+ ldr r1, [r0]
+ adds r0, r4, 0
+ bl StringCopy
+ adds r2, r0, 0
+ adds r4, 0x50
+ adds r1, r4, 0
+ b _080989FE
+ .align 2, 0
+_08098928: .4byte 0x02002694
+_0809892C: .4byte gUnknown_083B6DF4
+_08098930:
+ ldr r0, _08098948 @ =0x02002694
+ ldr r2, _0809894C @ =0xffffeb66
+ adds r1, r0, r2
+ bl StringCopy
+ adds r2, r0, 0
+ ldr r1, _08098950 @ =gUnknown_083B6DF4
+ lsls r0, r5, 3
+ adds r0, r1
+ ldr r1, [r0]
+ adds r0, r2, 0
+ b _080989FE
+ .align 2, 0
+_08098948: .4byte 0x02002694
+_0809894C: .4byte 0xffffeb66
+_08098950: .4byte gUnknown_083B6DF4
+_08098954:
+ ldr r0, _0809896C @ =0x02002694
+ adds r1, r0, 0
+ adds r1, 0x50
+ bl StringCopy
+ adds r2, r0, 0
+ ldr r1, _08098970 @ =gUnknown_083B6DF4
+ lsls r0, r5, 3
+ adds r0, r1
+ ldr r1, [r0]
+ adds r0, r2, 0
+ b _080989FE
+ .align 2, 0
+_0809896C: .4byte 0x02002694
+_08098970: .4byte gUnknown_083B6DF4
+_08098974:
+ ldr r1, _080989AC @ =gUnknown_083B6DF4
+ lsls r0, r5, 3
+ adds r0, r1
+ ldr r6, [r0]
+ adds r0, r6, 0
+ bl StringLength
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r4, r6, r4
+ adds r4, 0x1
+ ldr r5, _080989B0 @ =0x02002694
+ adds r0, r5, 0
+ adds r1, r6, 0
+ bl StringCopy
+ adds r2, r0, 0
+ ldr r0, _080989B4 @ =0xffffeb66
+ adds r5, r0
+ adds r0, r2, 0
+ adds r1, r5, 0
+ bl StringCopy
+ adds r2, r0, 0
+ adds r1, r4, 0
+ b _080989FE
+ .align 2, 0
+_080989AC: .4byte gUnknown_083B6DF4
+_080989B0: .4byte 0x02002694
+_080989B4: .4byte 0xffffeb66
+_080989B8:
+ ldr r1, _080989EC @ =gUnknown_083B6DF4
+ lsls r0, r5, 3
+ adds r0, r1
+ ldr r6, [r0]
+ adds r0, r6, 0
+ bl StringLength
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r4, r6, r4
+ subs r4, 0x1
+ ldr r5, _080989F0 @ =0x02002694
+ adds r0, r5, 0
+ adds r1, r6, 0
+ bl StringCopy
+ adds r2, r0, 0
+ subs r0, r2, 0x1
+ adds r5, 0x50
+ adds r1, r5, 0
+ bl StringCopy
+ adds r2, r0, 0
+ adds r1, r4, 0
+ b _080989FE
+ .align 2, 0
+_080989EC: .4byte gUnknown_083B6DF4
+_080989F0: .4byte 0x02002694
+_080989F4:
+ ldr r0, _08098A2C @ =0x02002694
+ ldr r2, _08098A30 @ =gUnknown_083B6DF4
+ lsls r1, r5, 3
+ adds r1, r2
+ ldr r1, [r1]
+_080989FE:
+ bl StringCopy
+ adds r2, r0, 0
+ ldr r0, _08098A34 @ =0x020026a6
+ adds r3, r0, 0
+ subs r3, 0x12
+ cmp r2, r0
+ bcs _08098A18
+ movs r1, 0
+_08098A10:
+ strb r1, [r2]
+ adds r2, 0x1
+ cmp r2, r0
+ bcc _08098A10
+_08098A18:
+ movs r0, 0xFF
+ strb r0, [r2]
+ adds r0, r3, 0
+ movs r1, 0xB
+ movs r2, 0x11
+ bl MenuPrint
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08098A2C: .4byte 0x02002694
+_08098A30: .4byte gUnknown_083B6DF4
+_08098A34: .4byte 0x020026a6
+ thumb_func_end sub_8098898
+
+ thumb_func_start sub_8098A38
+sub_8098A38: @ 8098A38
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x17
+ movs r1, 0xA
+ movs r2, 0
+ bl DisplayYesNoMenu
+ lsls r4, 24
+ asrs r4, 24
+ adds r0, r4, 0
+ bl MoveMenuCursor
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8098A38
+
+ thumb_func_start sub_8098A5C
+sub_8098A5C: @ 8098A5C
+ push {lr}
+ bl sub_8072DEC
+ movs r0, 0xA
+ movs r1, 0x10
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ movs r0, 0x17
+ movs r1, 0xA
+ movs r2, 0x1D
+ movs r3, 0xF
+ bl MenuZeroFillWindowRect
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8098A5C
+
+ thumb_func_start sub_8098A80
+sub_8098A80: @ 8098A80
+ push {lr}
+ bl sub_809CDCC
+ movs r0, 0xC
+ bl sub_809CDEC
+ movs r0, 0xD
+ bl sub_809CDEC
+ movs r0, 0xE
+ bl sub_809CDEC
+ movs r0, 0xF
+ bl sub_809CDEC
+ bl sub_809CE84
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8098A80
+
+ thumb_func_start sub_8098AA8
+sub_8098AA8: @ 8098AA8
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r5, r4, 0
+ bl sub_809CDCC
+ cmp r4, 0x1
+ beq _08098AE6
+ cmp r4, 0x1
+ bgt _08098AC2
+ cmp r4, 0
+ beq _08098ACC
+ b _08098B32
+_08098AC2:
+ cmp r5, 0x2
+ beq _08098B00
+ cmp r5, 0x3
+ beq _08098B1A
+ b _08098B32
+_08098ACC:
+ movs r0, 0x10
+ bl sub_809CDEC
+ movs r0, 0x11
+ bl sub_809CDEC
+ movs r0, 0x12
+ bl sub_809CDEC
+ movs r0, 0x13
+ bl sub_809CDEC
+ b _08098B32
+_08098AE6:
+ movs r0, 0x14
+ bl sub_809CDEC
+ movs r0, 0x15
+ bl sub_809CDEC
+ movs r0, 0x16
+ bl sub_809CDEC
+ movs r0, 0x17
+ bl sub_809CDEC
+ b _08098B32
+_08098B00:
+ movs r0, 0x18
+ bl sub_809CDEC
+ movs r0, 0x19
+ bl sub_809CDEC
+ movs r0, 0x1A
+ bl sub_809CDEC
+ movs r0, 0x1B
+ bl sub_809CDEC
+ b _08098B32
+_08098B1A:
+ movs r0, 0x1C
+ bl sub_809CDEC
+ movs r0, 0x1D
+ bl sub_809CDEC
+ movs r0, 0x1E
+ bl sub_809CDEC
+ movs r0, 0x1F
+ bl sub_809CDEC
+_08098B32:
+ bl sub_809CE84
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8098AA8
+
+ thumb_func_start get_preferred_box
+get_preferred_box: @ 8098B3C
+ ldr r0, _08098B44 @ =gPokemonStorage
+ ldrb r0, [r0]
+ bx lr
+ .align 2, 0
+_08098B44: .4byte gPokemonStorage
+ thumb_func_end get_preferred_box
+
+ thumb_func_start sub_8098B48
+sub_8098B48: @ 8098B48
+ push {r4,r5,lr}
+ bl sub_809D51C
+ movs r2, 0
+ ldr r1, _08098BD8 @ =gUnknown_083B6DB4
+ ldr r0, [r1]
+ ldr r4, _08098BDC @ =0x000010d0
+ adds r3, r0, r4
+ movs r4, 0
+ adds r5, r1, 0
+_08098B5C:
+ lsls r0, r2, 1
+ adds r0, r3, r0
+ strh r4, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x27
+ bls _08098B5C
+ movs r2, 0
+ ldr r0, _08098BD8 @ =gUnknown_083B6DB4
+ ldr r0, [r0]
+ movs r1, 0x89
+ lsls r1, 5
+ adds r3, r0, r1
+ movs r1, 0
+_08098B7A:
+ lsls r0, r2, 1
+ adds r0, r3, r0
+ strh r1, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x27
+ bls _08098B7A
+ movs r2, 0
+ ldr r0, _08098BD8 @ =gUnknown_083B6DB4
+ ldr r0, [r0]
+ ldr r4, _08098BE0 @ =0x00001038
+ adds r3, r0, r4
+ movs r1, 0
+_08098B96:
+ lsls r0, r2, 2
+ adds r0, r3, r0
+ str r1, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x5
+ bls _08098B96
+ movs r2, 0
+ ldr r0, _08098BD8 @ =gUnknown_083B6DB4
+ ldr r0, [r0]
+ ldr r1, _08098BE4 @ =0x00001050
+ adds r3, r0, r1
+ movs r1, 0
+_08098BB2:
+ lsls r0, r2, 2
+ adds r0, r3, r0
+ str r1, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x1D
+ bls _08098BB2
+ ldr r0, [r5]
+ ldr r2, _08098BE8 @ =0x00001034
+ adds r1, r0, r2
+ movs r2, 0
+ str r2, [r1]
+ ldr r4, _08098BEC @ =0x00000d5c
+ adds r0, r4
+ strh r2, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08098BD8: .4byte gUnknown_083B6DB4
+_08098BDC: .4byte 0x000010d0
+_08098BE0: .4byte 0x00001038
+_08098BE4: .4byte 0x00001050
+_08098BE8: .4byte 0x00001034
+_08098BEC: .4byte 0x00000d5c
+ thumb_func_end sub_8098B48
+
+ thumb_func_start sub_8098BF0
+sub_8098BF0: @ 8098BF0
+ push {r4-r6,lr}
+ sub sp, 0x8
+ ldr r0, _08098C38 @ =gUnknown_083B6DB4
+ ldr r5, [r0]
+ ldr r0, _08098C3C @ =0x000025b4
+ adds r4, r5, r0
+ adds r0, r4, 0
+ movs r1, 0
+ bl GetMonData
+ adds r6, r0, 0
+ adds r0, r4, 0
+ movs r1, 0x41
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x1
+ str r1, [sp]
+ movs r1, 0x7
+ str r1, [sp, 0x4]
+ adds r1, r6, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_8099AFC
+ ldr r1, _08098C40 @ =0x00001034
+ adds r5, r1
+ str r0, [r5]
+ ldr r1, _08098C44 @ =sub_80999C4
+ str r1, [r0, 0x1C]
+ add sp, 0x8
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08098C38: .4byte gUnknown_083B6DB4
+_08098C3C: .4byte 0x000025b4
+_08098C40: .4byte 0x00001034
+_08098C44: .4byte sub_80999C4
+ thumb_func_end sub_8098BF0
+
+ thumb_func_start sub_8098C48
+sub_8098C48: @ 8098C48
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 5
+ ldr r1, _08098CCC @ =gPokemonStorage + 0x4
+ adds r6, r0, r1
+ movs r0, 0
+ mov r8, r0
+ movs r7, 0
+_08098C6A:
+ movs r5, 0
+ adds r1, r7, 0x1
+ mov r9, r1
+_08098C70:
+ adds r0, r6, 0
+ movs r1, 0x41
+ bl GetBoxMonData
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0
+ beq _08098CD8
+ adds r0, r6, 0
+ movs r1, 0
+ bl GetBoxMonData
+ adds r1, r0, 0
+ lsls r2, r5, 1
+ adds r2, r5
+ lsls r2, 19
+ movs r3, 0xC8
+ lsls r3, 15
+ adds r2, r3
+ asrs r2, 16
+ lsls r3, r7, 1
+ adds r3, r7
+ lsls r3, 19
+ movs r0, 0xB0
+ lsls r0, 14
+ adds r3, r0
+ movs r0, 0x2
+ str r0, [sp]
+ movs r0, 0x12
+ subs r0, r5
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x4]
+ adds r0, r4, 0
+ asrs r3, 16
+ bl sub_8099AFC
+ ldr r1, _08098CD0 @ =gUnknown_083B6DB4
+ ldr r1, [r1]
+ mov r3, r8
+ lsls r2, r3, 2
+ ldr r3, _08098CD4 @ =0x00001050
+ adds r1, r3
+ adds r1, r2
+ str r0, [r1]
+ b _08098CE8
+ .align 2, 0
+_08098CCC: .4byte gPokemonStorage + 0x4
+_08098CD0: .4byte gUnknown_083B6DB4
+_08098CD4: .4byte 0x00001050
+_08098CD8:
+ ldr r0, _08098D18 @ =gUnknown_083B6DB4
+ ldr r0, [r0]
+ mov r2, r8
+ lsls r1, r2, 2
+ ldr r3, _08098D1C @ =0x00001050
+ adds r0, r3
+ adds r0, r1
+ str r4, [r0]
+_08098CE8:
+ adds r6, 0x50
+ mov r0, r8
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x5
+ bls _08098C70
+ mov r1, r9
+ lsls r0, r1, 16
+ lsrs r7, r0, 16
+ cmp r7, 0x4
+ bls _08098C6A
+ add sp, 0x8
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08098D18: .4byte gUnknown_083B6DB4
+_08098D1C: .4byte 0x00001050
+ thumb_func_end sub_8098C48
+
+ thumb_func_start sub_8098D20
+sub_8098D20: @ 8098D20
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl get_preferred_box
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r2, r1, 4
+ subs r2, r1
+ lsls r2, 5
+ lsls r0, r4, 2
+ mov r9, r0
+ adds r0, r4
+ lsls r0, 4
+ ldr r1, _08098DD4 @ =gPokemonStorage + 0x4
+ adds r0, r1
+ adds r7, r2, r0
+ adds r0, r7, 0
+ movs r1, 0x41
+ bl GetBoxMonData
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ cmp r0, 0
+ beq _08098DC4
+ adds r0, r4, 0
+ movs r1, 0x6
+ bl __umodsi3
+ adds r6, r0, 0
+ lsls r0, r6, 24
+ lsrs r0, 24
+ lsls r5, r0, 1
+ adds r5, r0
+ lsls r5, 19
+ movs r1, 0xC8
+ lsls r1, 15
+ adds r5, r1
+ lsrs r5, 16
+ adds r0, r4, 0
+ movs r1, 0x6
+ bl __udivsi3
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 1
+ adds r4, r0
+ lsls r4, 19
+ movs r2, 0xB0
+ lsls r2, 14
+ adds r4, r2
+ lsrs r4, 16
+ adds r0, r7, 0
+ movs r1, 0
+ bl GetBoxMonData
+ adds r1, r0, 0
+ movs r0, 0x2
+ str r0, [sp]
+ movs r0, 0x12
+ subs r0, r6
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x4]
+ mov r0, r8
+ adds r2, r5, 0
+ adds r3, r4, 0
+ bl sub_8099AFC
+ ldr r1, _08098DD8 @ =gUnknown_083B6DB4
+ ldr r1, [r1]
+ ldr r2, _08098DDC @ =0x00001050
+ adds r1, r2
+ add r1, r9
+ str r0, [r1]
+_08098DC4:
+ add sp, 0x8
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08098DD4: .4byte gPokemonStorage + 0x4
+_08098DD8: .4byte gUnknown_083B6DB4
+_08098DDC: .4byte 0x00001050
+ thumb_func_end sub_8098D20
+
+ thumb_func_start sub_8098DE0
+sub_8098DE0: @ 8098DE0
+ push {r4-r6,lr}
+ lsls r0, 16
+ lsrs r4, r0, 16
+ movs r2, 0
+ ldr r0, _08098E18 @ =gUnknown_083B6DB4
+ ldr r0, [r0]
+ ldr r1, _08098E1C @ =0x00001050
+ adds r3, r0, r1
+ movs r6, 0x1
+ ldr r5, _08098E20 @ =sub_8098E68
+_08098DF4:
+ lsls r0, r2, 2
+ adds r1, r3, r0
+ ldr r0, [r1]
+ cmp r0, 0
+ beq _08098E08
+ strh r4, [r0, 0x32]
+ ldr r0, [r1]
+ strh r6, [r0, 0x36]
+ ldr r0, [r1]
+ str r5, [r0, 0x1C]
+_08098E08:
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x1D
+ bls _08098DF4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08098E18: .4byte gUnknown_083B6DB4
+_08098E1C: .4byte 0x00001050
+_08098E20: .4byte sub_8098E68
+ thumb_func_end sub_8098DE0
+
+ thumb_func_start sub_8098E24
+sub_8098E24: @ 8098E24
+ push {lr}
+ adds r2, r0, 0
+ ldrh r1, [r2, 0x30]
+ movs r3, 0x30
+ ldrsh r0, [r2, r3]
+ cmp r0, 0
+ beq _08098E40
+ subs r0, r1, 0x1
+ strh r0, [r2, 0x30]
+ ldrh r0, [r2, 0x32]
+ ldrh r1, [r2, 0x20]
+ adds r0, r1
+ strh r0, [r2, 0x20]
+ b _08098E56
+_08098E40:
+ ldr r0, _08098E5C @ =gUnknown_083B6DB4
+ ldr r1, [r0]
+ ldr r3, _08098E60 @ =0x00001178
+ adds r1, r3
+ ldrh r0, [r1]
+ subs r0, 0x1
+ strh r0, [r1]
+ ldrh r0, [r2, 0x34]
+ strh r0, [r2, 0x20]
+ ldr r0, _08098E64 @ =SpriteCallbackDummy
+ str r0, [r2, 0x1C]
+_08098E56:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08098E5C: .4byte gUnknown_083B6DB4
+_08098E60: .4byte 0x00001178
+_08098E64: .4byte SpriteCallbackDummy
+ thumb_func_end sub_8098E24
+
+ thumb_func_start sub_8098E68
+sub_8098E68: @ 8098E68
+ push {lr}
+ adds r2, r0, 0
+ ldrh r1, [r2, 0x36]
+ movs r3, 0x36
+ ldrsh r0, [r2, r3]
+ cmp r0, 0
+ beq _08098E7C
+ subs r0, r1, 0x1
+ strh r0, [r2, 0x36]
+ b _08098E98
+_08098E7C:
+ ldrh r0, [r2, 0x32]
+ ldrh r1, [r2, 0x20]
+ adds r0, r1
+ strh r0, [r2, 0x20]
+ ldrh r1, [r2, 0x24]
+ adds r0, r1
+ strh r0, [r2, 0x38]
+ subs r0, 0x45
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0xB6
+ bls _08098E98
+ ldr r0, _08098E9C @ =SpriteCallbackDummy
+ str r0, [r2, 0x1C]
+_08098E98:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08098E9C: .4byte SpriteCallbackDummy
+ thumb_func_end sub_8098E68
+
+ thumb_func_start sub_8098EA0
+sub_8098EA0: @ 8098EA0
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r6, 0
+ ldr r0, _08098ED8 @ =gUnknown_083B6DB4
+ ldr r0, [r0]
+ ldr r1, _08098EDC @ =0x00001050
+ adds r7, r0, r1
+_08098EB0:
+ lsls r0, r5, 2
+ adds r4, r7, r0
+ ldr r0, [r4]
+ cmp r0, 0
+ beq _08098EC2
+ bl sub_8099BE0
+ movs r0, 0
+ str r0, [r4]
+_08098EC2:
+ adds r0, r5, 0x6
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ cmp r6, 0x4
+ bls _08098EB0
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08098ED8: .4byte gUnknown_083B6DB4
+_08098EDC: .4byte 0x00001050
+ thumb_func_end sub_8098EA0
+
+ thumb_func_start sub_8098EE0
+sub_8098EE0: @ 8098EE0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x24
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r1, 16
+ lsrs r1, 16
+ str r1, [sp, 0x8]
+ lsls r2, 16
+ movs r0, 0x2C
+ str r0, [sp, 0x10]
+ lsls r0, r6, 1
+ adds r0, r6
+ lsls r0, 19
+ movs r1, 0xC8
+ lsls r1, 15
+ adds r0, r1
+ lsrs r0, 16
+ mov r10, r0
+ ldr r0, [sp, 0x8]
+ adds r0, 0x1
+ lsrs r3, r2, 16
+ str r3, [sp, 0xC]
+ asrs r2, 16
+ adds r1, r0, 0
+ muls r1, r2
+ mov r4, r10
+ subs r1, r4, r1
+ movs r0, 0x12
+ subs r0, r6
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x18]
+ movs r0, 0
+ str r0, [sp, 0x14]
+ mov r9, r0
+ ldr r0, _08098FF8 @ =gUnknown_083B6DB4
+ ldr r0, [r0]
+ ldr r2, _08098FFC @ =0x0000117d
+ adds r2, r0
+ mov r8, r2
+ ldr r3, _08099000 @ =0x00001050
+ adds r3, r0, r3
+ str r3, [sp, 0x20]
+ lsls r1, 16
+ str r1, [sp, 0x1C]
+_08098F42:
+ mov r4, r8
+ ldrb r0, [r4]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 5
+ lsls r7, r6, 2
+ adds r1, r7, r6
+ lsls r1, 4
+ ldr r2, _08099004 @ =gPokemonStorage + 0x4
+ adds r4, r1, r2
+ adds r0, r4
+ movs r1, 0x41
+ bl GetBoxMonData
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0
+ beq _08098FC8
+ mov r1, r8
+ ldrb r0, [r1]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 5
+ adds r0, r4
+ movs r1, 0
+ bl GetBoxMonData
+ adds r1, r0, 0
+ ldr r2, [sp, 0x10]
+ lsls r3, r2, 16
+ asrs r3, 16
+ movs r0, 0x2
+ str r0, [sp]
+ ldr r4, [sp, 0x18]
+ str r4, [sp, 0x4]
+ adds r0, r5, 0
+ ldr r4, [sp, 0x1C]
+ asrs r2, r4, 16
+ bl sub_8099AFC
+ ldr r2, [sp, 0x20]
+ adds r1, r2, r7
+ str r0, [r1]
+ cmp r0, 0
+ beq _08098FC8
+ mov r3, sp
+ ldrh r3, [r3, 0x8]
+ strh r3, [r0, 0x30]
+ ldr r0, [r1]
+ mov r4, sp
+ ldrh r4, [r4, 0xC]
+ strh r4, [r0, 0x32]
+ ldr r0, [r1]
+ mov r2, r10
+ strh r2, [r0, 0x34]
+ ldr r1, [r1]
+ ldr r0, _08099008 @ =sub_8098E24
+ str r0, [r1, 0x1C]
+ ldr r0, [sp, 0x14]
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x14]
+_08098FC8:
+ adds r0, r6, 0x6
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r0, [sp, 0x10]
+ adds r0, 0x18
+ lsls r0, 16
+ lsrs r0, 16
+ str r0, [sp, 0x10]
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ mov r9, r0
+ cmp r0, 0x4
+ bls _08098F42
+ ldr r0, [sp, 0x14]
+ add sp, 0x24
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08098FF8: .4byte gUnknown_083B6DB4
+_08098FFC: .4byte 0x0000117d
+_08099000: .4byte 0x00001050
+_08099004: .4byte gPokemonStorage + 0x4
+_08099008: .4byte sub_8098E24
+ thumb_func_end sub_8098EE0
+
+ thumb_func_start sub_809900C
+sub_809900C: @ 809900C
+ push {r4-r6,lr}
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r4, _08099058 @ =gUnknown_083B6DB4
+ ldr r5, [r4]
+ ldr r3, _0809905C @ =0x0000117c
+ adds r2, r5, r3
+ movs r3, 0
+ strb r3, [r2]
+ ldr r6, _08099060 @ =0x0000117d
+ adds r2, r5, r6
+ strb r0, [r2]
+ ldr r2, _08099064 @ =0x0000117b
+ adds r0, r5, r2
+ strb r1, [r0]
+ subs r6, 0xB
+ adds r2, r5, r6
+ movs r0, 0x20
+ strh r0, [r2]
+ lsls r1, 24
+ asrs r1, 24
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 1
+ negs r0, r0
+ adds r6, 0x4
+ adds r2, r5, r6
+ strh r0, [r2]
+ ldr r2, _08099068 @ =0x00001178
+ adds r0, r5, r2
+ strh r3, [r0]
+ cmp r1, 0
+ ble _08099070
+ ldr r3, _0809906C @ =0x0000117a
+ adds r1, r5, r3
+ movs r0, 0
+ b _08099076
+ .align 2, 0
+_08099058: .4byte gUnknown_083B6DB4
+_0809905C: .4byte 0x0000117c
+_08099060: .4byte 0x0000117d
+_08099064: .4byte 0x0000117b
+_08099068: .4byte 0x00001178
+_0809906C: .4byte 0x0000117a
+_08099070:
+ ldr r6, _080990A0 @ =0x0000117a
+ adds r1, r5, r6
+ movs r0, 0x5
+_08099076:
+ strb r0, [r1]
+ ldr r2, [r4]
+ ldr r1, _080990A0 @ =0x0000117a
+ adds r0, r2, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ adds r0, 0x64
+ ldr r3, _080990A4 @ =0x00001174
+ adds r1, r2, r3
+ strh r0, [r1]
+ ldr r6, _080990A8 @ =0x00001176
+ adds r2, r6
+ movs r1, 0
+ ldrsh r0, [r2, r1]
+ bl sub_8098DE0
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080990A0: .4byte 0x0000117a
+_080990A4: .4byte 0x00001174
+_080990A8: .4byte 0x00001176
+ thumb_func_end sub_809900C
+
+ thumb_func_start sub_80990AC
+sub_80990AC: @ 80990AC
+ push {r4-r6,lr}
+ ldr r0, _080990D4 @ =gUnknown_083B6DB4
+ ldr r4, [r0]
+ ldr r0, _080990D8 @ =0x00001172
+ adds r3, r4, r0
+ ldrh r0, [r3]
+ cmp r0, 0
+ beq _080990C0
+ subs r0, 0x1
+ strh r0, [r3]
+_080990C0:
+ ldr r1, _080990DC @ =0x0000117c
+ adds r6, r4, r1
+ ldrb r0, [r6]
+ cmp r0, 0x1
+ beq _08099138
+ cmp r0, 0x1
+ bgt _080990E0
+ cmp r0, 0
+ beq _080990E8
+ b _080991F0
+ .align 2, 0
+_080990D4: .4byte gUnknown_083B6DB4
+_080990D8: .4byte 0x00001172
+_080990DC: .4byte 0x0000117c
+_080990E0:
+ cmp r0, 0x2
+ bne _080990E6
+ b _080991E0
+_080990E6:
+ b _080991F0
+_080990E8:
+ ldr r2, _0809912C @ =0x00001174
+ adds r5, r4, r2
+ ldr r3, _08099130 @ =0x00001176
+ adds r0, r4, r3
+ ldrh r0, [r0]
+ ldrh r1, [r5]
+ adds r0, r1
+ strh r0, [r5]
+ subs r0, 0x41
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0xBA
+ bhi _08099104
+ b _080991F8
+_08099104:
+ adds r2, 0x6
+ adds r0, r4, r2
+ ldrb r0, [r0]
+ bl sub_8098EA0
+ ldr r3, _08099134 @ =0x0000117b
+ adds r0, r4, r3
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ ldrh r1, [r5]
+ adds r0, r1
+ strh r0, [r5]
+ ldrb r0, [r6]
+ adds r0, 0x1
+ strb r0, [r6]
+ b _080991F8
+ .align 2, 0
+_0809912C: .4byte 0x00001174
+_08099130: .4byte 0x00001176
+_08099134: .4byte 0x0000117b
+_08099138:
+ ldr r2, _08099194 @ =0x00001174
+ adds r1, r4, r2
+ ldr r5, _08099198 @ =0x00001176
+ adds r2, r4, r5
+ ldrh r0, [r2]
+ ldrh r5, [r1]
+ adds r0, r5
+ strh r0, [r1]
+ ldr r0, _0809919C @ =0x0000117a
+ adds r5, r4, r0
+ ldrb r0, [r5]
+ ldrh r1, [r3]
+ movs r3, 0
+ ldrsh r2, [r2, r3]
+ bl sub_8098EE0
+ ldr r2, _080991A0 @ =0x00001178
+ adds r1, r4, r2
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r3, [r1]
+ adds r0, r3
+ strh r0, [r1]
+ ldr r1, _080991A4 @ =0x0000117b
+ adds r0, r4, r1
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ cmp r1, 0
+ ble _08099178
+ ldrb r0, [r5]
+ cmp r0, 0x5
+ beq _08099182
+_08099178:
+ cmp r1, 0
+ bge _080991B0
+ ldrb r0, [r5]
+ cmp r0, 0
+ bne _080991B0
+_08099182:
+ ldr r0, _080991A8 @ =gUnknown_083B6DB4
+ ldr r1, [r0]
+ ldr r2, _080991AC @ =0x0000117c
+ adds r1, r2
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _080991F8
+ .align 2, 0
+_08099194: .4byte 0x00001174
+_08099198: .4byte 0x00001176
+_0809919C: .4byte 0x0000117a
+_080991A0: .4byte 0x00001178
+_080991A4: .4byte 0x0000117b
+_080991A8: .4byte gUnknown_083B6DB4
+_080991AC: .4byte 0x0000117c
+_080991B0:
+ ldr r0, _080991D0 @ =gUnknown_083B6DB4
+ ldr r1, [r0]
+ ldr r5, _080991D4 @ =0x0000117a
+ adds r3, r1, r5
+ ldr r2, _080991D8 @ =0x0000117b
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ ldrb r5, [r3]
+ adds r0, r5
+ movs r2, 0
+ strb r0, [r3]
+ ldr r0, _080991DC @ =0x0000117c
+ adds r1, r0
+ strb r2, [r1]
+ b _080991F8
+ .align 2, 0
+_080991D0: .4byte gUnknown_083B6DB4
+_080991D4: .4byte 0x0000117a
+_080991D8: .4byte 0x0000117b
+_080991DC: .4byte 0x0000117c
+_080991E0:
+ ldr r1, _080991F4 @ =0x00001178
+ adds r0, r4, r1
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _080991F8
+ ldrh r0, [r3]
+ adds r0, 0x1
+ strh r0, [r3]
+_080991F0:
+ movs r0, 0
+ b _080991FA
+ .align 2, 0
+_080991F4: .4byte 0x00001178
+_080991F8:
+ movs r0, 0x1
+_080991FA:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80990AC
+
+ thumb_func_start sub_8099200
+sub_8099200: @ 8099200
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r4, _080992A0 @ =gPlayerParty
+ adds r0, r4, 0
+ movs r1, 0x41
+ bl GetMonData
+ lsls r0, 16
+ lsrs r5, r0, 16
+ adds r0, r4, 0
+ movs r1, 0
+ bl GetMonData
+ adds r1, r0, 0
+ movs r0, 0x1
+ str r0, [sp]
+ movs r0, 0xB
+ str r0, [sp, 0x4]
+ adds r0, r5, 0
+ movs r2, 0x68
+ movs r3, 0x40
+ bl sub_8099AFC
+ ldr r1, _080992A4 @ =gUnknown_083B6DB4
+ ldr r1, [r1]
+ ldr r2, _080992A8 @ =0x00001038
+ adds r1, r2
+ str r0, [r1]
+ movs r7, 0x1
+ movs r6, 0x1
+_08099246:
+ movs r0, 0x64
+ adds r1, r6, 0
+ muls r1, r0
+ ldr r0, _080992A0 @ =gPlayerParty
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0x41
+ bl GetMonData
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0
+ beq _080992AC
+ adds r0, r4, 0
+ movs r1, 0
+ bl GetMonData
+ adds r1, r0, 0
+ subs r0, r6, 0x1
+ lsls r3, r0, 1
+ adds r3, r0
+ lsls r3, 19
+ movs r0, 0x80
+ lsls r0, 13
+ adds r3, r0
+ asrs r3, 16
+ movs r0, 0x1
+ str r0, [sp]
+ movs r0, 0xB
+ str r0, [sp, 0x4]
+ adds r0, r5, 0
+ movs r2, 0x98
+ bl sub_8099AFC
+ ldr r1, _080992A4 @ =gUnknown_083B6DB4
+ ldr r1, [r1]
+ lsls r2, r6, 2
+ ldr r3, _080992A8 @ =0x00001038
+ adds r1, r3
+ adds r1, r2
+ str r0, [r1]
+ adds r0, r7, 0x1
+ lsls r0, 16
+ lsrs r7, r0, 16
+ b _080992BA
+ .align 2, 0
+_080992A0: .4byte gPlayerParty
+_080992A4: .4byte gUnknown_083B6DB4
+_080992A8: .4byte 0x00001038
+_080992AC:
+ ldr r0, _08099308 @ =gUnknown_083B6DB4
+ ldr r0, [r0]
+ lsls r1, r6, 2
+ ldr r2, _0809930C @ =0x00001038
+ adds r0, r2
+ adds r0, r1
+ str r5, [r0]
+_080992BA:
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ cmp r6, 0x5
+ bls _08099246
+ mov r3, r8
+ cmp r3, 0
+ bne _080992FA
+ movs r6, 0
+ cmp r6, r7
+ bcs _080992FA
+ ldr r0, _08099308 @ =gUnknown_083B6DB4
+ ldr r0, [r0]
+ ldr r1, _0809930C @ =0x00001038
+ adds r3, r0, r1
+ movs r4, 0x4
+_080992DA:
+ lsls r1, r6, 2
+ adds r1, r3, r1
+ ldr r2, [r1]
+ ldrh r0, [r2, 0x22]
+ subs r0, 0xA0
+ strh r0, [r2, 0x22]
+ ldr r1, [r1]
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ orrs r0, r4
+ strb r0, [r1]
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ cmp r6, r7
+ bcc _080992DA
+_080992FA:
+ add sp, 0x8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08099308: .4byte gUnknown_083B6DB4
+_0809930C: .4byte 0x00001038
+ thumb_func_end sub_8099200
+
+ thumb_func_start sub_8099310
+sub_8099310: @ 8099310
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r0, _08099368 @ =gUnknown_083B6DB4
+ ldr r2, [r0]
+ ldr r0, _0809936C @ =0x00001171
+ adds r1, r2, r0
+ movs r0, 0
+ strb r0, [r1]
+ movs r5, 0
+ movs r6, 0
+ mov r8, r2
+ ldr r7, _0809936C @ =0x00001171
+ add r7, r8
+_0809932C:
+ lsls r1, r5, 2
+ ldr r0, _08099370 @ =0x00001038
+ add r0, r8
+ adds r4, r0, r1
+ ldr r0, [r4]
+ cmp r0, 0
+ beq _08099354
+ cmp r5, r6
+ beq _0809934E
+ adds r1, r6, 0
+ bl sub_8099388
+ movs r0, 0
+ str r0, [r4]
+ ldrb r0, [r7]
+ adds r0, 0x1
+ strb r0, [r7]
+_0809934E:
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+_08099354:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x5
+ bls _0809932C
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08099368: .4byte gUnknown_083B6DB4
+_0809936C: .4byte 0x00001171
+_08099370: .4byte 0x00001038
+ thumb_func_end sub_8099310
+
+ thumb_func_start sub_8099374
+sub_8099374: @ 8099374
+ ldr r0, _08099380 @ =gUnknown_083B6DB4
+ ldr r0, [r0]
+ ldr r1, _08099384 @ =0x00001171
+ adds r0, r1
+ ldrb r0, [r0]
+ bx lr
+ .align 2, 0
+_08099380: .4byte gUnknown_083B6DB4
+_08099384: .4byte 0x00001171
+ thumb_func_end sub_8099374
+
+ thumb_func_start sub_8099388
+sub_8099388: @ 8099388
+ push {r4,lr}
+ adds r2, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ strh r1, [r2, 0x30]
+ cmp r1, 0
+ bne _0809939C
+ movs r3, 0x68
+ movs r4, 0x40
+ b _080993AE
+_0809939C:
+ movs r3, 0x98
+ subs r1, 0x1
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 19
+ movs r1, 0x80
+ lsls r1, 13
+ adds r0, r1
+ lsrs r4, r0, 16
+_080993AE:
+ ldrh r0, [r2, 0x20]
+ lsls r0, 3
+ strh r0, [r2, 0x32]
+ ldrh r0, [r2, 0x22]
+ lsls r0, 3
+ strh r0, [r2, 0x34]
+ lsls r1, r3, 3
+ movs r3, 0x32
+ ldrsh r0, [r2, r3]
+ subs r0, r1, r0
+ cmp r0, 0
+ bge _080993C8
+ adds r0, 0x7
+_080993C8:
+ asrs r0, 3
+ strh r0, [r2, 0x36]
+ lsls r0, r4, 16
+ asrs r0, 13
+ movs r3, 0x34
+ ldrsh r1, [r2, r3]
+ subs r0, r1
+ cmp r0, 0
+ bge _080993DC
+ adds r0, 0x7
+_080993DC:
+ asrs r0, 3
+ strh r0, [r2, 0x38]
+ movs r0, 0x8
+ strh r0, [r2, 0x3A]
+ ldr r0, _080993F0 @ =sub_80993F4
+ str r0, [r2, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080993F0: .4byte sub_80993F4
+ thumb_func_end sub_8099388
+
+ thumb_func_start sub_80993F4
+sub_80993F4: @ 80993F4
+ push {r4,lr}
+ adds r3, r0, 0
+ ldrh r2, [r3, 0x3A]
+ movs r1, 0x3A
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ beq _08099424
+ ldrh r0, [r3, 0x36]
+ ldrh r4, [r3, 0x32]
+ adds r0, r4
+ strh r0, [r3, 0x32]
+ ldrh r1, [r3, 0x38]
+ ldrh r4, [r3, 0x34]
+ adds r1, r4
+ strh r1, [r3, 0x34]
+ lsls r0, 16
+ asrs r0, 19
+ strh r0, [r3, 0x20]
+ lsls r1, 16
+ asrs r1, 19
+ strh r1, [r3, 0x22]
+ subs r0, r2, 0x1
+ strh r0, [r3, 0x3A]
+ b _08099468
+_08099424:
+ movs r1, 0x30
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ bne _08099434
+ movs r0, 0x68
+ strh r0, [r3, 0x20]
+ movs r0, 0x40
+ b _08099446
+_08099434:
+ movs r0, 0x98
+ strh r0, [r3, 0x20]
+ movs r4, 0x30
+ ldrsh r1, [r3, r4]
+ subs r1, 0x1
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ adds r0, 0x10
+_08099446:
+ strh r0, [r3, 0x22]
+ ldr r0, _08099470 @ =SpriteCallbackDummy
+ str r0, [r3, 0x1C]
+ ldr r0, _08099474 @ =gUnknown_083B6DB4
+ ldr r2, [r0]
+ movs r0, 0x30
+ ldrsh r1, [r3, r0]
+ lsls r1, 2
+ ldr r4, _08099478 @ =0x00001038
+ adds r0, r2, r4
+ adds r0, r1
+ str r3, [r0]
+ ldr r0, _0809947C @ =0x00001171
+ adds r2, r0
+ ldrb r0, [r2]
+ subs r0, 0x1
+ strb r0, [r2]
+_08099468:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08099470: .4byte SpriteCallbackDummy
+_08099474: .4byte gUnknown_083B6DB4
+_08099478: .4byte 0x00001038
+_0809947C: .4byte 0x00001171
+ thumb_func_end sub_80993F4
+
+ thumb_func_start sub_8099480
+sub_8099480: @ 8099480
+ push {r4,lr}
+ ldr r0, _080994A0 @ =gUnknown_083B6DB4
+ ldr r0, [r0]
+ ldr r1, _080994A4 @ =0x00001034
+ adds r4, r0, r1
+ ldr r0, [r4]
+ cmp r0, 0
+ beq _08099498
+ bl sub_8099BE0
+ movs r0, 0
+ str r0, [r4]
+_08099498:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080994A0: .4byte gUnknown_083B6DB4
+_080994A4: .4byte 0x00001034
+ thumb_func_end sub_8099480
+
+ thumb_func_start sub_80994A8
+sub_80994A8: @ 80994A8
+ push {r4-r6,lr}
+ movs r3, 0
+ ldr r1, _080994FC @ =gUnknown_083B6DB4
+ ldr r1, [r1]
+ ldr r2, _08099500 @ =0x00001038
+ adds r5, r1, r2
+ lsls r0, 16
+ asrs r4, r0, 16
+ movs r6, 0x5
+ negs r6, r6
+_080994BC:
+ lsls r0, r3, 2
+ adds r2, r5, r0
+ ldr r1, [r2]
+ cmp r1, 0
+ beq _0809950E
+ ldrh r0, [r1, 0x22]
+ adds r0, r4, r0
+ strh r0, [r1, 0x22]
+ ldr r2, [r2]
+ ldrh r1, [r2, 0x26]
+ ldrh r0, [r2, 0x22]
+ adds r1, r0
+ adds r0, r2, 0
+ adds r0, 0x29
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ adds r0, r1
+ lsls r0, 16
+ movs r1, 0x80
+ lsls r1, 13
+ adds r0, r1
+ lsrs r0, 16
+ cmp r0, 0xC0
+ bls _08099504
+ adds r0, r2, 0
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ b _0809950E
+ .align 2, 0
+_080994FC: .4byte gUnknown_083B6DB4
+_08099500: .4byte 0x00001038
+_08099504:
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ adds r0, r6, 0
+ ands r0, r1
+ strb r0, [r2]
+_0809950E:
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x5
+ bls _080994BC
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80994A8
+
+ thumb_func_start sub_8099520
+sub_8099520: @ 8099520
+ push {r4,lr}
+ lsls r0, 24
+ ldr r1, _08099544 @ =gUnknown_083B6DB4
+ ldr r1, [r1]
+ lsrs r0, 22
+ ldr r2, _08099548 @ =0x00001038
+ adds r1, r2
+ adds r4, r1, r0
+ ldr r0, [r4]
+ cmp r0, 0
+ beq _0809953E
+ bl sub_8099BE0
+ movs r0, 0
+ str r0, [r4]
+_0809953E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08099544: .4byte gUnknown_083B6DB4
+_08099548: .4byte 0x00001038
+ thumb_func_end sub_8099520
+
+ thumb_func_start sub_809954C
+sub_809954C: @ 809954C
+ push {r4-r6,lr}
+ movs r5, 0
+ ldr r0, _0809957C @ =gUnknown_083B6DB4
+ ldr r0, [r0]
+ ldr r1, _08099580 @ =0x00001038
+ adds r6, r0, r1
+_08099558:
+ lsls r0, r5, 2
+ adds r4, r6, r0
+ ldr r0, [r4]
+ cmp r0, 0
+ beq _0809956A
+ bl sub_8099BE0
+ movs r0, 0
+ str r0, [r4]
+_0809956A:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x5
+ bls _08099558
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809957C: .4byte gUnknown_083B6DB4
+_08099580: .4byte 0x00001038
+ thumb_func_end sub_809954C
+
+ thumb_func_start sub_8099584
+sub_8099584: @ 8099584
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ adds r5, r1, 0
+ cmp r4, 0
+ bne _080995B4
+ ldr r3, _080995AC @ =gUnknown_083B6DB4
+ ldr r0, [r3]
+ ldr r5, _080995B0 @ =0x00001034
+ adds r2, r0, r5
+ lsls r1, 2
+ adds r5, 0x4
+ adds r0, r5
+ adds r0, r1
+ ldr r1, [r0]
+ str r1, [r2]
+ str r4, [r0]
+ b _080995D0
+ .align 2, 0
+_080995AC: .4byte gUnknown_083B6DB4
+_080995B0: .4byte 0x00001034
+_080995B4:
+ cmp r4, 0x1
+ bne _080995F4
+ ldr r3, _080995FC @ =gUnknown_083B6DB4
+ ldr r0, [r3]
+ ldr r1, _08099600 @ =0x00001034
+ adds r2, r0, r1
+ lsls r1, r5, 2
+ ldr r4, _08099604 @ =0x00001050
+ adds r0, r4
+ adds r0, r1
+ ldr r1, [r0]
+ str r1, [r2]
+ movs r1, 0
+ str r1, [r0]
+_080995D0:
+ ldr r2, [r3]
+ ldr r5, _08099600 @ =0x00001034
+ adds r2, r5
+ ldr r1, [r2]
+ ldr r0, _08099608 @ =sub_80999C4
+ str r0, [r1, 0x1C]
+ ldr r3, [r2]
+ ldrb r1, [r3, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r3, 0x5]
+ ldr r0, [r2]
+ adds r0, 0x43
+ movs r1, 0x7
+ strb r1, [r0]
+_080995F4:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080995FC: .4byte gUnknown_083B6DB4
+_08099600: .4byte 0x00001034
+_08099604: .4byte 0x00001050
+_08099608: .4byte sub_80999C4
+ thumb_func_end sub_8099584
+
+ thumb_func_start sub_809960C
+sub_809960C: @ 809960C
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r6, r1, 24
+ cmp r0, 0xE
+ bne _08099654
+ ldr r4, _08099648 @ =gUnknown_083B6DB4
+ ldr r0, [r4]
+ lsls r1, r6, 2
+ ldr r2, _0809964C @ =0x00001038
+ adds r3, r0, r2
+ adds r3, r1
+ ldr r1, _08099650 @ =0x00001034
+ adds r0, r1
+ ldr r2, [r0]
+ str r2, [r3]
+ ldrb r1, [r2, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2, 0x5]
+ ldr r0, [r3]
+ adds r0, 0x43
+ movs r1, 0xB
+ strb r1, [r0]
+ b _0809968A
+ .align 2, 0
+_08099648: .4byte gUnknown_083B6DB4
+_0809964C: .4byte 0x00001038
+_08099650: .4byte 0x00001034
+_08099654:
+ ldr r5, _080996A0 @ =gUnknown_083B6DB4
+ ldr r0, [r5]
+ lsls r1, r6, 2
+ ldr r2, _080996A4 @ =0x00001050
+ adds r3, r0, r2
+ adds r3, r1
+ ldr r1, _080996A8 @ =0x00001034
+ adds r0, r1
+ ldr r2, [r0]
+ str r2, [r3]
+ ldrb r1, [r2, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x8
+ orrs r0, r1
+ strb r0, [r2, 0x5]
+ ldr r4, [r3]
+ adds r0, r6, 0
+ movs r1, 0x6
+ bl __umodsi3
+ movs r1, 0x12
+ subs r1, r0
+ adds r4, 0x43
+ strb r1, [r4]
+ adds r4, r5, 0
+_0809968A:
+ ldr r1, [r4]
+ ldr r2, _080996A8 @ =0x00001034
+ adds r1, r2
+ ldr r2, [r1]
+ ldr r0, _080996AC @ =SpriteCallbackDummy
+ str r0, [r2, 0x1C]
+ movs r0, 0
+ str r0, [r1]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080996A0: .4byte gUnknown_083B6DB4
+_080996A4: .4byte 0x00001050
+_080996A8: .4byte 0x00001034
+_080996AC: .4byte SpriteCallbackDummy
+ thumb_func_end sub_809960C
+
+ thumb_func_start sub_80996B0
+sub_80996B0: @ 80996B0
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r4, r1, 24
+ cmp r0, 0xE
+ bne _080996D8
+ ldr r3, _080996CC @ =gUnknown_083B6DB4
+ ldr r1, [r3]
+ ldr r0, _080996D0 @ =0x000010c8
+ adds r2, r1, r0
+ lsls r0, r4, 2
+ ldr r4, _080996D4 @ =0x00001038
+ b _080996E4
+ .align 2, 0
+_080996CC: .4byte gUnknown_083B6DB4
+_080996D0: .4byte 0x000010c8
+_080996D4: .4byte 0x00001038
+_080996D8:
+ ldr r3, _08099704 @ =gUnknown_083B6DB4
+ ldr r1, [r3]
+ ldr r0, _08099708 @ =0x000010c8
+ adds r2, r1, r0
+ lsls r0, r4, 2
+ ldr r4, _0809970C @ =0x00001050
+_080996E4:
+ adds r0, r4
+ adds r1, r0
+ str r1, [r2]
+ ldr r1, [r3]
+ ldr r2, _08099710 @ =0x00001034
+ adds r0, r1, r2
+ ldr r2, [r0]
+ ldr r0, _08099714 @ =SpriteCallbackDummy
+ str r0, [r2, 0x1C]
+ ldr r4, _08099718 @ =0x00001170
+ adds r1, r4
+ movs r0, 0
+ strb r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08099704: .4byte gUnknown_083B6DB4
+_08099708: .4byte 0x000010c8
+_0809970C: .4byte 0x00001050
+_08099710: .4byte 0x00001034
+_08099714: .4byte SpriteCallbackDummy
+_08099718: .4byte 0x00001170
+ thumb_func_end sub_80996B0
+
+ thumb_func_start sub_809971C
+sub_809971C: @ 809971C
+ push {r4-r7,lr}
+ ldr r0, _08099730 @ =gUnknown_083B6DB4
+ ldr r2, [r0]
+ ldr r0, _08099734 @ =0x00001170
+ adds r7, r2, r0
+ ldrb r0, [r7]
+ cmp r0, 0x10
+ bne _08099738
+ movs r0, 0
+ b _08099800
+ .align 2, 0
+_08099730: .4byte gUnknown_083B6DB4
+_08099734: .4byte 0x00001170
+_08099738:
+ adds r0, 0x1
+ strb r0, [r7]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0809975E
+ ldr r1, _08099808 @ =0x000010c8
+ adds r0, r2, r1
+ ldr r0, [r0]
+ ldr r1, [r0]
+ ldrh r0, [r1, 0x22]
+ subs r0, 0x1
+ strh r0, [r1, 0x22]
+ ldr r4, _0809980C @ =0x00001034
+ adds r0, r2, r4
+ ldr r1, [r0]
+ ldrh r0, [r1, 0x22]
+ adds r0, 0x1
+ strh r0, [r1, 0x22]
+_0809975E:
+ ldr r0, _08099808 @ =0x000010c8
+ adds r5, r2, r0
+ ldr r0, [r5]
+ ldr r1, [r0]
+ ldr r3, _08099810 @ =gSineTable
+ ldrb r0, [r7]
+ lsls r0, 4
+ adds r0, r3
+ movs r4, 0
+ ldrsh r0, [r0, r4]
+ cmp r0, 0
+ bge _08099778
+ adds r0, 0xF
+_08099778:
+ asrs r0, 4
+ strh r0, [r1, 0x24]
+ ldr r0, _0809980C @ =0x00001034
+ adds r6, r2, r0
+ ldr r1, [r6]
+ ldrb r0, [r7]
+ lsls r0, 4
+ adds r0, r3
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ cmp r0, 0
+ bge _08099792
+ adds r0, 0xF
+_08099792:
+ asrs r0, 4
+ negs r0, r0
+ strh r0, [r1, 0x24]
+ ldrb r0, [r7]
+ cmp r0, 0x8
+ bne _080997DE
+ ldr r4, [r6]
+ ldr r0, [r5]
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x5]
+ movs r2, 0xC
+ ands r2, r0
+ ldrb r3, [r4, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ adds r0, r1, 0
+ ands r0, r3
+ orrs r0, r2
+ strb r0, [r4, 0x5]
+ ldr r2, [r6]
+ ldr r0, [r5]
+ ldr r0, [r0]
+ adds r0, 0x43
+ ldrb r0, [r0]
+ adds r2, 0x43
+ strb r0, [r2]
+ ldr r0, [r5]
+ ldr r2, [r0]
+ ldrb r0, [r2, 0x5]
+ ands r1, r0
+ movs r0, 0x4
+ orrs r1, r0
+ strb r1, [r2, 0x5]
+ ldr r0, [r5]
+ ldr r0, [r0]
+ adds r0, 0x43
+ movs r1, 0x7
+ strb r1, [r0]
+_080997DE:
+ ldrb r0, [r7]
+ cmp r0, 0x10
+ bne _080997FE
+ ldr r1, [r6]
+ ldr r0, [r5]
+ ldr r0, [r0]
+ str r0, [r6]
+ ldr r0, [r5]
+ str r1, [r0]
+ ldr r1, [r6]
+ ldr r0, _08099814 @ =sub_80999C4
+ str r0, [r1, 0x1C]
+ ldr r0, [r5]
+ ldr r1, [r0]
+ ldr r0, _08099818 @ =SpriteCallbackDummy
+ str r0, [r1, 0x1C]
+_080997FE:
+ movs r0, 0x1
+_08099800:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08099808: .4byte 0x000010c8
+_0809980C: .4byte 0x00001034
+_08099810: .4byte gSineTable
+_08099814: .4byte sub_80999C4
+_08099818: .4byte SpriteCallbackDummy
+ thumb_func_end sub_809971C
+
+ thumb_func_start sub_809981C
+sub_809981C: @ 809981C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r2, r0, 0
+ lsls r1, 24
+ lsrs r4, r1, 24
+ cmp r0, 0x1
+ beq _08099858
+ cmp r0, 0x1
+ bgt _08099836
+ cmp r0, 0
+ beq _0809983C
+ b _080998C0
+_08099836:
+ cmp r2, 0x2
+ beq _0809987C
+ b _080998C0
+_0809983C:
+ ldr r3, _0809984C @ =gUnknown_083B6DB4
+ ldr r1, [r3]
+ ldr r0, _08099850 @ =0x000010cc
+ adds r2, r1, r0
+ lsls r0, r4, 2
+ ldr r4, _08099854 @ =0x00001038
+ b _08099864
+ .align 2, 0
+_0809984C: .4byte gUnknown_083B6DB4
+_08099850: .4byte 0x000010cc
+_08099854: .4byte 0x00001038
+_08099858:
+ ldr r3, _08099870 @ =gUnknown_083B6DB4
+ ldr r1, [r3]
+ ldr r0, _08099874 @ =0x000010cc
+ adds r2, r1, r0
+ lsls r0, r4, 2
+ ldr r4, _08099878 @ =0x00001050
+_08099864:
+ adds r0, r4
+ adds r1, r0
+ str r1, [r2]
+ adds r0, r3, 0
+ b _0809988A
+ .align 2, 0
+_08099870: .4byte gUnknown_083B6DB4
+_08099874: .4byte 0x000010cc
+_08099878: .4byte 0x00001050
+_0809987C:
+ ldr r0, _080998C8 @ =gUnknown_083B6DB4
+ ldr r1, [r0]
+ ldr r3, _080998CC @ =0x000010cc
+ adds r2, r1, r3
+ ldr r4, _080998D0 @ =0x00001034
+ adds r1, r4
+ str r1, [r2]
+_0809988A:
+ ldr r0, [r0]
+ ldr r1, _080998CC @ =0x000010cc
+ adds r4, r0, r1
+ ldr r0, [r4]
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _080998C0
+ bl InitSpriteAffineAnim
+ ldr r0, [r4]
+ ldr r2, [r0]
+ ldrb r1, [r2, 0x1]
+ movs r0, 0x4
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2, 0x1]
+ ldr r0, [r4]
+ ldr r1, [r0]
+ ldr r0, _080998D4 @ =gUnknown_083B6F5C
+ str r0, [r1, 0x10]
+ ldr r0, [r4]
+ ldr r0, [r0]
+ movs r1, 0
+ bl StartSpriteAffineAnim
+_080998C0:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080998C8: .4byte gUnknown_083B6DB4
+_080998CC: .4byte 0x000010cc
+_080998D0: .4byte 0x00001034
+_080998D4: .4byte gUnknown_083B6F5C
+ thumb_func_end sub_809981C
+
+ thumb_func_start sub_80998D8
+sub_80998D8: @ 80998D8
+ push {lr}
+ ldr r0, _080998FC @ =gUnknown_083B6DB4
+ ldr r0, [r0]
+ ldr r1, _08099900 @ =0x000010cc
+ adds r0, r1
+ ldr r0, [r0]
+ ldr r1, [r0]
+ cmp r1, 0
+ beq _080998F8
+ adds r3, r1, 0
+ adds r3, 0x3E
+ ldrb r2, [r3]
+ movs r0, 0x4
+ ands r0, r2
+ cmp r0, 0
+ beq _08099904
+_080998F8:
+ movs r0, 0
+ b _0809991A
+ .align 2, 0
+_080998FC: .4byte gUnknown_083B6DB4
+_08099900: .4byte 0x000010cc
+_08099904:
+ adds r0, r1, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _08099918
+ movs r0, 0x4
+ orrs r0, r2
+ strb r0, [r3]
+_08099918:
+ movs r0, 0x1
+_0809991A:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80998D8
+
+ thumb_func_start sub_8099920
+sub_8099920: @ 8099920
+ push {r4,lr}
+ ldr r0, _08099950 @ =gUnknown_083B6DB4
+ ldr r0, [r0]
+ ldr r1, _08099954 @ =0x000010cc
+ adds r4, r0, r1
+ ldr r0, [r4]
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _0809994A
+ ldrb r0, [r0, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ bl FreeOamMatrix
+ ldr r0, [r4]
+ ldr r0, [r0]
+ bl sub_8099BE0
+ ldr r1, [r4]
+ movs r0, 0
+ str r0, [r1]
+_0809994A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08099950: .4byte gUnknown_083B6DB4
+_08099954: .4byte 0x000010cc
+ thumb_func_end sub_8099920
+
+ thumb_func_start sub_8099958
+sub_8099958: @ 8099958
+ push {lr}
+ ldr r0, _08099988 @ =gUnknown_083B6DB4
+ ldr r0, [r0]
+ ldr r1, _0809998C @ =0x000010cc
+ adds r3, r0, r1
+ ldr r0, [r3]
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _08099982
+ adds r2, r0, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ ldr r0, [r3]
+ ldr r0, [r0]
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+_08099982:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08099988: .4byte gUnknown_083B6DB4
+_0809998C: .4byte 0x000010cc
+ thumb_func_end sub_8099958
+
+ thumb_func_start sub_8099990
+sub_8099990: @ 8099990
+ push {lr}
+ ldr r0, _080999A4 @ =gUnknown_083B6DB4
+ ldr r0, [r0]
+ ldr r1, _080999A8 @ =0x000010cc
+ adds r2, r0, r1
+ ldr r0, [r2]
+ cmp r0, 0
+ bne _080999AC
+ movs r0, 0
+ b _080999C0
+ .align 2, 0
+_080999A4: .4byte gUnknown_083B6DB4
+_080999A8: .4byte 0x000010cc
+_080999AC:
+ ldr r0, [r0]
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _080999BE
+ movs r0, 0
+ str r0, [r2]
+_080999BE:
+ movs r0, 0x1
+_080999C0:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8099990
+
+ thumb_func_start sub_80999C4
+sub_80999C4: @ 80999C4
+ ldr r1, _080999E4 @ =gUnknown_083B6DB4
+ ldr r1, [r1]
+ movs r2, 0x8E
+ lsls r2, 5
+ adds r1, r2
+ ldr r2, [r1]
+ ldrh r2, [r2, 0x20]
+ strh r2, [r0, 0x20]
+ ldr r2, [r1]
+ ldrh r1, [r2, 0x26]
+ ldrh r2, [r2, 0x22]
+ adds r1, r2
+ adds r1, 0x4
+ strh r1, [r0, 0x22]
+ bx lr
+ .align 2, 0
+_080999E4: .4byte gUnknown_083B6DB4
+ thumb_func_end sub_80999C4
+
+ thumb_func_start sub_80999E8
+sub_80999E8: @ 80999E8
+ push {r4-r6,lr}
+ lsls r0, 16
+ lsrs r3, r0, 16
+ movs r4, 0
+ ldr r1, _08099A58 @ =gUnknown_083B6DB4
+ ldr r0, [r1]
+ movs r2, 0x89
+ lsls r2, 5
+ adds r0, r2
+ ldrh r0, [r0]
+ adds r2, r1, 0
+ cmp r0, r3
+ beq _08099A20
+ adds r6, r2, 0
+ movs r5, 0x89
+ lsls r5, 5
+_08099A08:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x27
+ bhi _08099A20
+ ldr r0, [r6]
+ lsls r1, r4, 1
+ adds r0, r5
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r0, r3
+ bne _08099A08
+_08099A20:
+ cmp r4, 0x28
+ bne _08099A60
+ movs r4, 0
+ ldr r0, [r2]
+ movs r5, 0x89
+ lsls r5, 5
+ adds r0, r5
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _08099A4E
+ adds r6, r2, 0
+_08099A36:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x27
+ bhi _08099A4E
+ ldr r0, [r6]
+ lsls r1, r4, 1
+ adds r0, r5
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _08099A36
+_08099A4E:
+ cmp r4, 0x28
+ bne _08099A60
+ ldr r0, _08099A5C @ =0x0000ffff
+ b _08099A94
+ .align 2, 0
+_08099A58: .4byte gUnknown_083B6DB4
+_08099A5C: .4byte 0x0000ffff
+_08099A60:
+ ldr r1, [r2]
+ lsls r2, r4, 1
+ movs r5, 0x89
+ lsls r5, 5
+ adds r0, r1, r5
+ adds r0, r2
+ strh r3, [r0]
+ ldr r0, _08099A9C @ =0x000010d0
+ adds r1, r0
+ adds r1, r2
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ lsls r4, 20
+ lsrs r4, 16
+ ldr r1, _08099AA0 @ =gMonIconTable
+ lsls r0, r3, 2
+ adds r0, r1
+ ldr r0, [r0]
+ lsls r1, r4, 5
+ ldr r2, _08099AA4 @ =0x06010000
+ adds r1, r2
+ ldr r2, _08099AA8 @ =0x04000080
+ bl CpuSet
+ adds r0, r4, 0
+_08099A94:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08099A9C: .4byte 0x000010d0
+_08099AA0: .4byte gMonIconTable
+_08099AA4: .4byte 0x06010000
+_08099AA8: .4byte 0x04000080
+ thumb_func_end sub_80999E8
+
+ thumb_func_start sub_8099AAC
+sub_8099AAC: @ 8099AAC
+ push {r4-r7,lr}
+ lsls r0, 16
+ lsrs r6, r0, 16
+ movs r3, 0
+ ldr r0, _08099AE4 @ =gUnknown_083B6DB4
+ ldr r0, [r0]
+ movs r1, 0x89
+ lsls r1, 5
+ adds r5, r0, r1
+ subs r1, 0x50
+ adds r4, r0, r1
+ ldr r0, _08099AE8 @ =0x0000ffff
+ adds r7, r0, 0
+_08099AC6:
+ lsls r1, r3, 1
+ adds r2, r5, r1
+ ldrh r0, [r2]
+ cmp r0, r6
+ bne _08099AEC
+ adds r1, r4, r1
+ ldrh r0, [r1]
+ subs r0, 0x1
+ strh r0, [r1]
+ ands r0, r7
+ cmp r0, 0
+ bne _08099AF6
+ strh r0, [r2]
+ b _08099AF6
+ .align 2, 0
+_08099AE4: .4byte gUnknown_083B6DB4
+_08099AE8: .4byte 0x0000ffff
+_08099AEC:
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x27
+ bls _08099AC6
+_08099AF6:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8099AAC
+
+ thumb_func_start sub_8099AFC
+sub_8099AFC: @ 8099AFC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x1C
+ ldr r4, [sp, 0x3C]
+ ldr r5, [sp, 0x40]
+ lsls r0, 16
+ lsrs r6, r0, 16
+ lsls r2, 16
+ lsrs r2, 16
+ str r2, [sp, 0x18]
+ lsls r3, 16
+ lsrs r3, 16
+ mov r8, r3
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, 24
+ lsrs r5, 24
+ mov r9, r5
+ mov r2, sp
+ ldr r0, _08099BAC @ =gSpriteTemplate_83B6F14
+ ldm r0!, {r3,r5,r7}
+ stm r2!, {r3,r5,r7}
+ ldm r0!, {r3,r5,r7}
+ stm r2!, {r3,r5,r7}
+ adds r0, r6, 0
+ bl mon_icon_convert_unown_species_id
+ mov r10, r0
+ mov r6, r10
+ mov r2, sp
+ ldr r1, _08099BB0 @ =gMonIconPaletteIndices
+ adds r1, r6, r1
+ ldr r3, _08099BB4 @ =0x0000dac0
+ adds r0, r3, 0
+ ldrb r1, [r1]
+ adds r0, r1
+ strh r0, [r2, 0x2]
+ adds r0, r6, 0
+ bl sub_80999E8
+ lsls r0, 16
+ lsrs r0, 16
+ adds r5, r0, 0
+ ldr r0, _08099BB8 @ =0x0000ffff
+ cmp r5, r0
+ beq _08099BCE
+ ldr r7, [sp, 0x18]
+ lsls r1, r7, 16
+ asrs r1, 16
+ mov r0, r8
+ lsls r2, r0, 16
+ asrs r2, 16
+ mov r0, sp
+ mov r3, r9
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x40
+ beq _08099BC8
+ ldr r1, _08099BBC @ =gSprites
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r1
+ ldr r2, _08099BC0 @ =0x000003ff
+ ands r2, r5
+ ldrh r3, [r0, 0x4]
+ ldr r1, _08099BC4 @ =0xfffffc00
+ ands r1, r3
+ orrs r1, r2
+ strh r1, [r0, 0x4]
+ movs r1, 0x3
+ ands r4, r1
+ lsls r3, r4, 2
+ ldrb r2, [r0, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r2
+ orrs r1, r3
+ strb r1, [r0, 0x5]
+ mov r1, r10
+ strh r1, [r0, 0x2E]
+ b _08099BD0
+ .align 2, 0
+_08099BAC: .4byte gSpriteTemplate_83B6F14
+_08099BB0: .4byte gMonIconPaletteIndices
+_08099BB4: .4byte 0x0000dac0
+_08099BB8: .4byte 0x0000ffff
+_08099BBC: .4byte gSprites
+_08099BC0: .4byte 0x000003ff
+_08099BC4: .4byte 0xfffffc00
+_08099BC8:
+ adds r0, r6, 0
+ bl sub_8099AAC
+_08099BCE:
+ movs r0, 0
+_08099BD0:
+ add sp, 0x1C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8099AFC
+
+ thumb_func_start sub_8099BE0
+sub_8099BE0: @ 8099BE0
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ bl sub_8099AAC
+ adds r0, r4, 0
+ bl DestroySprite
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8099BE0
+
+ thumb_func_start sub_8099BF8
+sub_8099BF8: @ 8099BF8
+ push {r4,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _08099C50 @ =gUnknown_083B6DB4
+ ldr r0, [r0]
+ ldr r1, _08099C54 @ =0x000008ba
+ adds r2, r0, r1
+ movs r1, 0
+ strb r1, [r2]
+ ldr r2, _08099C58 @ =0x000008b4
+ adds r0, r2
+ strh r1, [r0]
+ str r1, [sp]
+ ldr r1, _08099C5C @ =0x040000d4
+ mov r0, sp
+ str r0, [r1]
+ ldr r0, _08099C60 @ =0x0600d000
+ str r0, [r1, 0x4]
+ ldr r0, _08099C64 @ =0x85000400
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_8099EB0
+ adds r0, r4, 0
+ bl sub_809A23C
+ bl sub_809A6DC
+ adds r0, r4, 0
+ bl sub_8098C48
+ ldr r1, _08099C68 @ =REG_BG2CNT
+ ldr r2, _08099C6C @ =0x00005a0a
+ adds r0, r2, 0
+ strh r0, [r1]
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08099C50: .4byte gUnknown_083B6DB4
+_08099C54: .4byte 0x000008ba
+_08099C58: .4byte 0x000008b4
+_08099C5C: .4byte 0x040000d4
+_08099C60: .4byte 0x0600d000
+_08099C64: .4byte 0x85000400
+_08099C68: .4byte REG_BG2CNT
+_08099C6C: .4byte 0x00005a0a
+ thumb_func_end sub_8099BF8
+
+ thumb_func_start sub_8099C70
+sub_8099C70: @ 8099C70
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r5, r0, 0
+ bl sub_8099D90
+ lsls r0, 24
+ asrs r4, r0, 24
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_8099EB0
+ ldr r0, _08099D10 @ =gUnknown_083B6DB4
+ ldr r2, [r0]
+ lsls r0, r4, 1
+ adds r0, r4
+ lsls r0, 1
+ ldr r3, _08099D14 @ =0x000008b6
+ adds r1, r2, r3
+ strh r0, [r1]
+ ldr r0, _08099D18 @ =0x000008b8
+ adds r1, r2, r0
+ movs r0, 0x20
+ strh r0, [r1]
+ ldr r1, _08099D1C @ =0x000008bb
+ adds r0, r2, r1
+ strb r5, [r0]
+ movs r1, 0
+ cmp r4, 0
+ bgt _08099CAE
+ movs r1, 0x5
+_08099CAE:
+ ldr r3, _08099D20 @ =0x000008bc
+ adds r0, r2, r3
+ strh r1, [r0]
+ ldr r1, _08099D24 @ =0x000008be
+ adds r0, r2, r1
+ strh r4, [r0]
+ movs r1, 0x38
+ cmp r4, 0
+ ble _08099CC6
+ movs r3, 0x84
+ lsls r3, 1
+ adds r1, r3, 0
+_08099CC6:
+ movs r3, 0x8C
+ lsls r3, 4
+ adds r0, r2, r3
+ strh r1, [r0]
+ movs r1, 0
+ cmp r4, 0
+ bgt _08099CD6
+ movs r1, 0x5
+_08099CD6:
+ ldr r3, _08099D28 @ =0x000008c2
+ adds r0, r2, r3
+ strh r1, [r0]
+ ldr r1, _08099D2C @ =0x000008c4
+ adds r0, r2, r1
+ strh r4, [r0]
+ adds r3, 0x4
+ adds r1, r2, r3
+ movs r0, 0
+ strh r0, [r1]
+ ldr r0, _08099D30 @ =0x000008c8
+ adds r1, r2, r0
+ movs r0, 0x2
+ strh r0, [r1]
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_809900C
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_809A3D0
+ adds r0, r4, 0
+ bl sub_809A774
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08099D10: .4byte gUnknown_083B6DB4
+_08099D14: .4byte 0x000008b6
+_08099D18: .4byte 0x000008b8
+_08099D1C: .4byte 0x000008bb
+_08099D20: .4byte 0x000008bc
+_08099D24: .4byte 0x000008be
+_08099D28: .4byte 0x000008c2
+_08099D2C: .4byte 0x000008c4
+_08099D30: .4byte 0x000008c8
+ thumb_func_end sub_8099C70
+
+ thumb_func_start sub_8099D34
+sub_8099D34: @ 8099D34
+ push {r4,lr}
+ bl sub_80990AC
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _08099D78 @ =gUnknown_083B6DB4
+ ldr r1, [r0]
+ ldr r0, _08099D7C @ =0x000008b8
+ adds r3, r1, r0
+ ldrh r0, [r3]
+ cmp r0, 0
+ beq _08099D88
+ ldr r4, _08099D80 @ =0x000008b4
+ adds r2, r1, r4
+ adds r4, 0x2
+ adds r0, r1, r4
+ ldrh r0, [r0]
+ ldrh r1, [r2]
+ adds r0, r1
+ ldr r1, _08099D84 @ =0x000001ff
+ ands r0, r1
+ strh r0, [r2]
+ ldrh r0, [r3]
+ subs r0, 0x1
+ strh r0, [r3]
+ lsls r0, 16
+ cmp r0, 0
+ bne _08099D74
+ bl sub_809A598
+ bl sub_809A810
+_08099D74:
+ movs r0, 0x1
+ b _08099D8A
+ .align 2, 0
+_08099D78: .4byte gUnknown_083B6DB4
+_08099D7C: .4byte 0x000008b8
+_08099D80: .4byte 0x000008b4
+_08099D84: .4byte 0x000001ff
+_08099D88:
+ adds r0, r2, 0
+_08099D8A:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8099D34
+
+ thumb_func_start sub_8099D90
+sub_8099D90: @ 8099D90
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl get_preferred_box
+ lsls r0, 24
+ lsrs r1, r0, 24
+ movs r2, 0
+ cmp r1, r4
+ beq _08099DBA
+_08099DA4:
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0xD
+ bls _08099DB0
+ movs r1, 0
+_08099DB0:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r1, r4
+ bne _08099DA4
+_08099DBA:
+ movs r0, 0x1
+ negs r0, r0
+ cmp r2, 0x6
+ bhi _08099DC4
+ movs r0, 0x1
+_08099DC4:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8099D90
+
+ thumb_func_start sub_8099DCC
+sub_8099DCC: @ 8099DCC
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl get_preferred_box
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _08099DF8 @ =gPokemonStorage
+ ldr r2, _08099DFC @ =0x000083c2
+ adds r1, r2
+ adds r0, r1
+ movs r1, 0
+ strb r4, [r0]
+ ldr r0, _08099E00 @ =gUnknown_083B6DB4
+ ldr r0, [r0]
+ ldr r2, _08099E04 @ =0x00001032
+ adds r0, r2
+ strb r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08099DF8: .4byte gPokemonStorage
+_08099DFC: .4byte 0x000083c2
+_08099E00: .4byte gUnknown_083B6DB4
+_08099E04: .4byte 0x00001032
+ thumb_func_end sub_8099DCC
+
+ thumb_func_start sub_8099E08
+sub_8099E08: @ 8099E08
+ push {r4,r5,lr}
+ sub sp, 0x4
+ ldr r0, _08099E24 @ =gUnknown_083B6DB4
+ ldr r5, [r0]
+ ldr r0, _08099E28 @ =0x00001032
+ adds r4, r5, r0
+ ldrb r0, [r4]
+ cmp r0, 0x1
+ beq _08099E54
+ cmp r0, 0x1
+ bgt _08099E2C
+ cmp r0, 0
+ beq _08099E36
+ b _08099EA6
+ .align 2, 0
+_08099E24: .4byte gUnknown_083B6DB4
+_08099E28: .4byte 0x00001032
+_08099E2C:
+ cmp r0, 0x2
+ beq _08099E90
+ cmp r0, 0x3
+ beq _08099EA2
+ b _08099EA6
+_08099E36:
+ ldr r1, _08099E4C @ =0x00000d08
+ adds r0, r5, r1
+ ldr r0, [r0]
+ ldr r1, _08099E50 @ =0x0000ffff
+ str r1, [sp]
+ movs r1, 0x1
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ b _08099E9A
+ .align 2, 0
+_08099E4C: .4byte 0x00000d08
+_08099E50: .4byte 0x0000ffff
+_08099E54:
+ bl UpdatePaletteFade
+ lsls r0, 24
+ cmp r0, 0
+ bne _08099EA6
+ bl get_preferred_box
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0
+ bl sub_8099EB0
+ bl sub_809A654
+ ldr r1, _08099E88 @ =0x00000d08
+ adds r0, r5, r1
+ ldr r0, [r0]
+ ldr r1, _08099E8C @ =0x0000ffff
+ str r1, [sp]
+ movs r1, 0x1
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ b _08099E9A
+ .align 2, 0
+_08099E88: .4byte 0x00000d08
+_08099E8C: .4byte 0x0000ffff
+_08099E90:
+ bl UpdatePaletteFade
+ lsls r0, 24
+ cmp r0, 0
+ bne _08099EA6
+_08099E9A:
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ b _08099EA6
+_08099EA2:
+ movs r0, 0
+ b _08099EA8
+_08099EA6:
+ movs r0, 0x1
+_08099EA8:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8099E08
+
+ thumb_func_start sub_8099EB0
+sub_8099EB0: @ 8099EB0
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r1, 24
+ lsrs r7, r1, 24
+ cmp r1, 0
+ beq _08099ED8
+ ldr r0, _08099F38 @ =gUnknown_083B6DB4
+ ldr r0, [r0]
+ movs r2, 0
+ ldr r3, _08099F3C @ =0x000008ba
+ adds r1, r0, r3
+ ldrb r0, [r1]
+ cmp r0, 0
+ bne _08099ED0
+ movs r2, 0x1
+_08099ED0:
+ strb r2, [r1]
+ ldr r0, _08099F40 @ =0x0600d000
+ bl sub_809A14C
+_08099ED8:
+ ldr r0, _08099F44 @ =gPokemonStorage
+ ldr r1, _08099F48 @ =0x000083c2
+ adds r0, r1
+ adds r0, r4, r0
+ ldrb r4, [r0]
+ lsls r4, 4
+ ldr r0, _08099F4C @ =gWallpaperTable
+ adds r4, r0
+ ldr r0, [r4, 0xC]
+ ldr r1, _08099F38 @ =gUnknown_083B6DB4
+ ldr r5, [r1]
+ ldr r2, _08099F3C @ =0x000008ba
+ adds r6, r5, r2
+ ldrb r2, [r6]
+ lsls r1, r2, 1
+ adds r1, r2
+ lsls r1, 20
+ movs r3, 0x80
+ lsls r3, 15
+ adds r1, r3
+ lsrs r1, 16
+ movs r2, 0x60
+ bl LoadPalette
+ ldr r0, [r4, 0x8]
+ ldr r1, _08099F50 @ =0x00000d62
+ adds r5, r1
+ adds r1, r5, 0
+ bl LZ77UnCompWram
+ ldr r0, _08099F40 @ =0x0600d000
+ lsls r2, r7, 24
+ asrs r2, 24
+ ldrb r3, [r6]
+ adds r1, r5, 0
+ bl sub_8099F58
+ ldr r0, [r4]
+ ldrb r1, [r6]
+ lsls r1, 13
+ ldr r2, _08099F54 @ =0x06008000
+ adds r1, r2
+ bl LZ77UnCompVram
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08099F38: .4byte gUnknown_083B6DB4
+_08099F3C: .4byte 0x000008ba
+_08099F40: .4byte 0x0600d000
+_08099F44: .4byte gPokemonStorage
+_08099F48: .4byte 0x000083c2
+_08099F4C: .4byte gWallpaperTable
+_08099F50: .4byte 0x00000d62
+_08099F54: .4byte 0x06008000
+ thumb_func_end sub_8099EB0
+
+ thumb_func_start sub_8099F58
+sub_8099F58: @ 8099F58
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x20
+ mov r9, r0
+ adds r5, r1, 0
+ lsls r2, 24
+ lsls r3, 24
+ lsrs r3, 24
+ lsls r0, r3, 8
+ str r0, [sp]
+ lsls r0, r3, 1
+ adds r0, r3
+ adds r0, 0x4
+ lsls r0, 28
+ lsrs r0, 16
+ str r0, [sp, 0x4]
+ ldr r0, _08099FB8 @ =gUnknown_083B6DB4
+ ldr r0, [r0]
+ ldr r1, _08099FBC @ =0x000008b4
+ adds r0, r1
+ ldrh r1, [r0]
+ lsrs r1, 3
+ adds r1, 0xA
+ lsrs r0, r2, 24
+ mov r8, r0
+ asrs r2, 24
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 3
+ adds r1, r0
+ movs r0, 0x3F
+ ands r1, r0
+ str r1, [sp, 0x8]
+ adds r2, r1, 0
+ cmp r2, 0xC
+ bgt _08099FC0
+ movs r6, 0x14
+ movs r3, 0
+ lsls r0, r2, 1
+ adds r0, 0x80
+ mov r1, r9
+ adds r4, r1, r0
+ movs r7, 0
+ b _0809A020
+ .align 2, 0
+_08099FB8: .4byte gUnknown_083B6DB4
+_08099FBC: .4byte 0x000008b4
+_08099FC0:
+ cmp r2, 0x1F
+ bgt _08099FE6
+ movs r0, 0x20
+ subs r0, r2
+ lsls r0, 16
+ movs r1, 0x14
+ lsrs r6, r0, 16
+ asrs r0, 16
+ subs r1, r0
+ lsls r1, 16
+ lsrs r3, r1, 16
+ lsls r0, r2, 1
+ adds r0, 0x80
+ mov r2, r9
+ adds r4, r2, r0
+ movs r7, 0x88
+ lsls r7, 4
+ add r7, r9
+ b _0809A020
+_08099FE6:
+ cmp r2, 0x2C
+ bgt _08099FFE
+ movs r6, 0x14
+ movs r3, 0
+ lsls r0, r2, 1
+ movs r1, 0x84
+ lsls r1, 4
+ adds r0, r1
+ mov r2, r9
+ adds r4, r2, r0
+ movs r7, 0
+ b _0809A020
+_08099FFE:
+ movs r0, 0x40
+ subs r0, r2
+ lsls r0, 16
+ movs r1, 0x14
+ lsrs r6, r0, 16
+ asrs r0, 16
+ subs r1, r0
+ lsls r1, 16
+ lsrs r3, r1, 16
+ lsls r0, r2, 1
+ movs r1, 0x84
+ lsls r1, 4
+ adds r0, r1
+ mov r2, r9
+ adds r4, r2, r0
+ mov r7, r9
+ adds r7, 0x80
+_0809A020:
+ movs r1, 0
+ mov r0, r8
+ lsls r0, 24
+ str r0, [sp, 0x14]
+ lsls r0, r6, 16
+ asrs r0, 16
+ mov r8, r0
+ lsls r3, 16
+ str r3, [sp, 0xC]
+ asrs r2, r3, 16
+ str r2, [sp, 0x10]
+_0809A036:
+ movs r3, 0
+ adds r0, r4, 0
+ adds r0, 0x40
+ str r0, [sp, 0x18]
+ adds r2, r7, 0
+ adds r2, 0x40
+ str r2, [sp, 0x1C]
+ adds r1, 0x1
+ mov r10, r1
+ cmp r3, r8
+ bge _0809A07A
+ ldr r0, _0809A0D4 @ =0x00000fff
+ mov r12, r0
+ movs r6, 0xF0
+ lsls r6, 8
+_0809A054:
+ ldrh r2, [r5]
+ mov r0, r12
+ ands r0, r2
+ ldr r1, [sp]
+ adds r0, r1, r0
+ adds r1, r6, 0
+ ands r1, r2
+ ldr r2, [sp, 0x4]
+ adds r1, r2, r1
+ orrs r1, r0
+ lsls r0, r3, 1
+ adds r0, r4
+ strh r1, [r0]
+ adds r5, 0x2
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, r8
+ blt _0809A054
+_0809A07A:
+ movs r3, 0
+ ldr r0, [sp, 0x10]
+ cmp r3, r0
+ bge _0809A0B4
+ ldr r1, _0809A0D4 @ =0x00000fff
+ mov r12, r1
+ movs r6, 0xF0
+ lsls r6, 8
+ ldr r2, [sp, 0xC]
+ asrs r4, r2, 16
+_0809A08E:
+ ldrh r2, [r5]
+ mov r0, r12
+ ands r0, r2
+ ldr r1, [sp]
+ adds r0, r1, r0
+ adds r1, r6, 0
+ ands r1, r2
+ ldr r2, [sp, 0x4]
+ adds r1, r2, r1
+ orrs r1, r0
+ lsls r0, r3, 1
+ adds r0, r7
+ strh r1, [r0]
+ adds r5, 0x2
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, r4
+ blt _0809A08E
+_0809A0B4:
+ ldr r4, [sp, 0x18]
+ ldr r7, [sp, 0x1C]
+ mov r1, r10
+ lsls r0, r1, 16
+ lsrs r1, r0, 16
+ cmp r1, 0x11
+ bls _0809A036
+ ldr r0, [sp, 0x14]
+ asrs r2, r0, 24
+ cmp r2, 0
+ beq _0809A13A
+ cmp r2, 0
+ ble _0809A0D8
+ ldr r1, [sp, 0x8]
+ adds r1, 0x14
+ b _0809A0DC
+ .align 2, 0
+_0809A0D4: .4byte 0x00000fff
+_0809A0D8:
+ ldr r1, [sp, 0x8]
+ subs r1, 0x4
+_0809A0DC:
+ movs r0, 0x3F
+ ands r1, r0
+ adds r4, r1, 0
+ adds r0, r4, 0
+ cmp r0, 0x1F
+ bgt _0809A0EE
+ lsls r0, 1
+ adds r0, 0x80
+ b _0809A0F6
+_0809A0EE:
+ lsls r0, 1
+ movs r2, 0x84
+ lsls r2, 4
+ adds r0, r2
+_0809A0F6:
+ mov r1, r9
+ adds r2, r1, r0
+ movs r3, 0
+ movs r6, 0
+_0809A0FE:
+ movs r1, 0
+ adds r5, r3, 0x1
+ lsls r3, r4, 16
+_0809A104:
+ strh r6, [r2]
+ adds r2, 0x40
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0x11
+ bls _0809A104
+ asrs r0, r3, 16
+ adds r4, r0, 0x1
+ movs r0, 0x3F
+ ands r4, r0
+ adds r0, r4, 0
+ cmp r0, 0x1F
+ bgt _0809A126
+ lsls r0, 1
+ adds r0, 0x80
+ b _0809A12E
+_0809A126:
+ lsls r0, 1
+ movs r2, 0x84
+ lsls r2, 4
+ adds r0, r2
+_0809A12E:
+ mov r1, r9
+ adds r2, r1, r0
+ lsls r0, r5, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x3
+ bls _0809A0FE
+_0809A13A:
+ add sp, 0x20
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8099F58
+
+ thumb_func_start sub_809A14C
+sub_809A14C: @ 809A14C
+ push {r4-r6,lr}
+ adds r2, r0, 0
+ ldr r0, _0809A174 @ =gUnknown_083B6DB4
+ ldr r0, [r0]
+ ldr r1, _0809A178 @ =0x000008b4
+ adds r0, r1
+ ldrh r0, [r0]
+ lsrs r0, 3
+ adds r3, r0, 0
+ adds r3, 0x1E
+ movs r0, 0x3F
+ ands r3, r0
+ adds r0, r3, 0
+ cmp r0, 0x1F
+ bgt _0809A17C
+ lsls r0, 1
+ movs r6, 0x98
+ lsls r6, 3
+ adds r0, r6
+ b _0809A184
+ .align 2, 0
+_0809A174: .4byte gUnknown_083B6DB4
+_0809A178: .4byte 0x000008b4
+_0809A17C:
+ lsls r0, 1
+ movs r1, 0xC8
+ lsls r1, 4
+ adds r0, r1
+_0809A184:
+ adds r2, r0
+ movs r0, 0
+ movs r5, 0
+ movs r4, 0x3F
+_0809A18C:
+ strh r5, [r2]
+ adds r2, 0x2
+ adds r3, 0x1
+ ands r3, r4
+ adds r1, r3, 0
+ cmp r1, 0
+ bne _0809A19E
+ ldr r6, _0809A1B8 @ =0xfffff7c0
+ adds r2, r6
+_0809A19E:
+ cmp r1, 0x20
+ bne _0809A1A8
+ movs r1, 0xF8
+ lsls r1, 3
+ adds r2, r1
+_0809A1A8:
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x2B
+ bls _0809A18C
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809A1B8: .4byte 0xfffff7c0
+ thumb_func_end sub_809A14C
+
+ thumb_func_start sub_809A1BC
+sub_809A1BC: @ 809A1BC
+ push {r4-r6,lr}
+ sub sp, 0x8
+ adds r3, r0, 0
+ adds r2, r1, 0
+ ldr r0, _0809A228 @ =gUnknown_083B6DB8
+ ldr r5, [r0]
+ mov r1, sp
+ movs r0, 0
+ strh r0, [r1]
+ ldr r4, _0809A22C @ =0x040000d4
+ str r1, [r4]
+ str r5, [r4, 0x4]
+ movs r6, 0x80
+ lsls r6, 1
+ ldr r0, _0809A230 @ =0x81000100
+ str r0, [r4, 0x8]
+ ldr r0, [r4, 0x8]
+ ldr r0, _0809A234 @ =gWindowConfig_81E6D38
+ adds r1, r5, 0
+ str r3, [sp, 0x4]
+ bl sub_8004E3C
+ str r5, [r4]
+ ldr r3, [sp, 0x4]
+ str r3, [r4, 0x4]
+ ldr r1, _0809A238 @ =0x80000040
+ str r1, [r4, 0x8]
+ ldr r0, [r4, 0x8]
+ adds r0, r5, r6
+ str r0, [r4]
+ adds r0, r3, 0
+ adds r0, 0x80
+ str r0, [r4, 0x4]
+ str r1, [r4, 0x8]
+ ldr r0, [r4, 0x8]
+ adds r0, r5, 0
+ adds r0, 0x80
+ str r0, [r4]
+ adds r6, r3, r6
+ str r6, [r4, 0x4]
+ str r1, [r4, 0x8]
+ ldr r0, [r4, 0x8]
+ movs r0, 0xC0
+ lsls r0, 1
+ adds r5, r0
+ str r5, [r4]
+ adds r3, r0
+ str r3, [r4, 0x4]
+ str r1, [r4, 0x8]
+ ldr r0, [r4, 0x8]
+ add sp, 0x8
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809A228: .4byte gUnknown_083B6DB8
+_0809A22C: .4byte 0x040000d4
+_0809A230: .4byte 0x81000100
+_0809A234: .4byte gWindowConfig_81E6D38
+_0809A238: .4byte 0x80000040
+ thumb_func_end sub_809A1BC
+
+ thumb_func_start sub_809A23C
+sub_809A23C: @ 809A23C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x24
+ mov r8, r0
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r0, _0809A384 @ =gUnknown_083B6DB4
+ ldr r5, [r0]
+ ldr r1, _0809A388 @ =0x000008ca
+ adds r7, r5, r1
+ str r7, [sp, 0x18]
+ mov r2, sp
+ adds r2, 0x18
+ str r2, [sp, 0x20]
+ ldr r0, _0809A38C @ =0x00030200
+ str r0, [r2, 0x4]
+ mov r1, sp
+ ldr r3, _0809A390 @ =0x00000ccc
+ adds r0, r5, r3
+ str r0, [sp]
+ ldr r4, _0809A394 @ =0x0000dac8
+ strh r4, [r1, 0x4]
+ str r0, [sp, 0x8]
+ ldr r6, _0809A398 @ =0xffffdac9
+ strh r6, [r1, 0xC]
+ add r0, sp, 0x10
+ movs r1, 0
+ movs r2, 0x8
+ bl memset
+ ldr r0, _0809A39C @ =gPokemonStorage
+ mov r9, r0
+ ldr r0, _0809A3A0 @ =0x000083c2
+ add r0, r9
+ add r0, r8
+ ldrb r1, [r0]
+ ldr r2, _0809A3A4 @ =gUnknown_083BB0A8
+ lsls r1, 2
+ adds r0, r1, r2
+ ldrh r3, [r0]
+ ldr r6, _0809A3A8 @ =0x00000ce8
+ adds r0, r5, r6
+ strh r3, [r0]
+ adds r2, 0x2
+ adds r1, r2
+ ldrh r1, [r1]
+ ldr r2, _0809A3AC @ =0x00000cea
+ adds r0, r5, r2
+ strh r1, [r0]
+ mov r0, sp
+ bl LoadSpritePalettes
+ ldr r3, _0809A3B0 @ =0x00000d08
+ adds r6, r5, r3
+ movs r0, 0xFC
+ lsls r0, 2
+ str r0, [r6]
+ adds r0, r4, 0
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ movs r2, 0x87
+ lsls r2, 1
+ mov r10, r2
+ add r1, r10
+ ldr r3, _0809A3B4 @ =0x00000cec
+ adds r2, r5, r3
+ strh r1, [r2]
+ movs r4, 0x80
+ lsls r4, 9
+ adds r1, r4, 0
+ lsls r1, r0
+ ldr r0, [r6]
+ orrs r0, r1
+ str r0, [r6]
+ ldr r0, _0809A3B8 @ =0x0000dac9
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ add r1, r10
+ ldr r2, _0809A3BC @ =0x00000cee
+ adds r5, r2
+ strh r1, [r5]
+ lsls r4, r0
+ ldr r0, [r6]
+ orrs r0, r4
+ str r0, [r6]
+ mov r3, r8
+ lsls r4, r3, 3
+ add r4, r8
+ ldr r6, _0809A3C0 @ =0x00008344
+ add r9, r6
+ add r4, r9
+ adds r0, r7, 0
+ adds r1, r4, 0
+ bl sub_809A1BC
+ ldr r0, [sp, 0x20]
+ bl LoadSpriteSheet
+ adds r0, r4, 0
+ bl sub_8072CA4
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_809A6D0
+ movs r4, 0
+ lsls r0, 16
+ asrs r6, r0, 16
+_0809A328:
+ lsls r1, r4, 5
+ adds r1, r6, r1
+ lsls r1, 16
+ asrs r1, 16
+ ldr r0, _0809A3C4 @ =gSpriteTemplate_83BB2B8
+ movs r2, 0x1C
+ movs r3, 0x17
+ bl CreateSprite
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r0, _0809A384 @ =gUnknown_083B6DB4
+ ldr r5, [r0]
+ lsls r0, r4, 2
+ movs r3, 0xCF
+ lsls r3, 4
+ adds r2, r5, r3
+ adds r2, r0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0809A3C8 @ =gSprites
+ adds r0, r1
+ str r0, [r2]
+ lsls r1, r4, 24
+ lsrs r1, 24
+ bl StartSpriteAnim
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x1
+ bls _0809A328
+ ldr r6, _0809A3CC @ =0x00000cca
+ adds r1, r5, r6
+ movs r0, 0
+ strb r0, [r1]
+ add sp, 0x24
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809A384: .4byte gUnknown_083B6DB4
+_0809A388: .4byte 0x000008ca
+_0809A38C: .4byte 0x00030200
+_0809A390: .4byte 0x00000ccc
+_0809A394: .4byte 0x0000dac8
+_0809A398: .4byte 0xffffdac9
+_0809A39C: .4byte gPokemonStorage
+_0809A3A0: .4byte 0x000083c2
+_0809A3A4: .4byte gUnknown_083BB0A8
+_0809A3A8: .4byte 0x00000ce8
+_0809A3AC: .4byte 0x00000cea
+_0809A3B0: .4byte 0x00000d08
+_0809A3B4: .4byte 0x00000cec
+_0809A3B8: .4byte 0x0000dac9
+_0809A3BC: .4byte 0x00000cee
+_0809A3C0: .4byte 0x00008344
+_0809A3C4: .4byte gSpriteTemplate_83BB2B8
+_0809A3C8: .4byte gSprites
+_0809A3CC: .4byte 0x00000cca
+ thumb_func_end sub_809A23C
+
+ thumb_func_start sub_809A3D0
+sub_809A3D0: @ 809A3D0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x2C
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x28]
+ lsls r1, 24
+ lsrs r1, 24
+ mov r10, r1
+ ldr r3, _0809A43C @ =gUnknown_083B6DB4
+ ldr r5, [r3]
+ ldr r1, _0809A440 @ =0x000008ca
+ adds r0, r5, r1
+ str r0, [sp, 0x18]
+ add r2, sp, 0x18
+ ldr r4, _0809A444 @ =0x0000ffff
+ mov r9, r4
+ movs r6, 0xC0
+ lsls r6, 10
+ mov r8, r6
+ ldr r0, _0809A448 @ =0x00030200
+ str r0, [r2, 0x4]
+ mov r1, sp
+ ldr r0, _0809A44C @ =gSpriteTemplate_83BB2B8
+ ldm r0!, {r4,r6,r7}
+ stm r1!, {r4,r6,r7}
+ ldm r0!, {r4,r6,r7}
+ stm r1!, {r4,r6,r7}
+ movs r1, 0
+ ldr r7, _0809A450 @ =0x00000cca
+ adds r4, r5, r7
+ ldrb r0, [r4]
+ adds r6, r2, 0
+ cmp r0, 0
+ bne _0809A41E
+ movs r1, 0x1
+_0809A41E:
+ strb r1, [r4]
+ cmp r1, 0
+ bne _0809A458
+ ldr r0, [r6, 0x4]
+ mov r1, r9
+ ands r0, r1
+ mov r4, r8
+ orrs r0, r4
+ str r0, [r6, 0x4]
+ ldr r7, _0809A454 @ =0x00000cec
+ adds r0, r5, r7
+ ldrh r0, [r0]
+ mov r8, r0
+ b _0809A478
+ .align 2, 0
+_0809A43C: .4byte gUnknown_083B6DB4
+_0809A440: .4byte 0x000008ca
+_0809A444: .4byte 0x0000ffff
+_0809A448: .4byte 0x00030200
+_0809A44C: .4byte gSpriteTemplate_83BB2B8
+_0809A450: .4byte 0x00000cca
+_0809A454: .4byte 0x00000cec
+_0809A458:
+ ldr r0, [r6, 0x4]
+ mov r1, r9
+ ands r0, r1
+ movs r1, 0x80
+ lsls r1, 11
+ orrs r0, r1
+ str r0, [r6, 0x4]
+ ldr r4, _0809A570 @ =0x00000cec
+ adds r0, r5, r4
+ ldrh r0, [r0]
+ mov r8, r0
+ mov r1, sp
+ movs r0, 0x4
+ strh r0, [r1]
+ ldr r0, _0809A574 @ =0x0000dac9
+ strh r0, [r1, 0x2]
+_0809A478:
+ ldr r0, [r3]
+ ldr r7, _0809A578 @ =0x000008ca
+ adds r0, r7
+ ldr r1, [sp, 0x28]
+ lsls r5, r1, 3
+ adds r5, r1
+ ldr r4, _0809A57C @ =gPokemonStorage + 0x8344
+ adds r5, r4
+ adds r1, r5, 0
+ bl sub_809A1BC
+ adds r0, r6, 0
+ bl LoadSpriteSheet
+ adds r4, 0x7E
+ ldr r3, [sp, 0x28]
+ adds r4, r3, r4
+ ldrb r0, [r4]
+ lsls r0, 2
+ ldr r1, _0809A580 @ =gUnknown_083BB0A8
+ adds r0, r1
+ mov r1, r8
+ movs r2, 0x4
+ bl LoadPalette
+ adds r0, r5, 0
+ bl sub_8072CA4
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_809A6D0
+ lsls r0, 16
+ mov r4, r10
+ lsls r2, r4, 24
+ asrs r2, 24
+ lsls r1, r2, 1
+ adds r1, r2
+ lsls r1, 6
+ lsrs r6, r0, 16
+ str r6, [sp, 0x20]
+ asrs r0, 16
+ adds r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ str r0, [sp, 0x24]
+ movs r7, 0
+ negs r2, r2
+ mov r9, r2
+ movs r0, 0x1
+ mov r10, r0
+_0809A4DE:
+ lsls r1, r7, 5
+ mov r8, r1
+ ldr r3, [sp, 0x24]
+ lsls r1, r3, 16
+ asrs r1, 16
+ add r1, r8
+ lsls r1, 16
+ asrs r1, 16
+ mov r0, sp
+ movs r2, 0x1C
+ movs r3, 0x17
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _0809A584 @ =gUnknown_083B6DB4
+ ldr r4, [r1]
+ lsls r6, r7, 2
+ ldr r1, _0809A588 @ =0x00000cf8
+ adds r2, r4, r1
+ adds r2, r6
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, _0809A58C @ =gSprites
+ adds r1, r0
+ str r1, [r2]
+ mov r3, r9
+ lsls r5, r3, 1
+ add r5, r9
+ lsls r5, 1
+ strh r5, [r1, 0x2E]
+ ldr r1, [r2]
+ ldr r3, [sp, 0x20]
+ lsls r0, r3, 16
+ asrs r0, 16
+ add r0, r8
+ strh r0, [r1, 0x30]
+ ldr r0, [r2]
+ mov r1, r10
+ strh r1, [r0, 0x32]
+ ldr r0, [r2]
+ ldr r1, _0809A590 @ =sub_809A5E8
+ str r1, [r0, 0x1C]
+ lsls r1, r7, 24
+ lsrs r1, 24
+ bl StartSpriteAnim
+ movs r3, 0xCF
+ lsls r3, 4
+ adds r4, r3
+ adds r4, r6
+ ldr r0, [r4]
+ strh r5, [r0, 0x2E]
+ ldr r0, [r4]
+ mov r6, r10
+ strh r6, [r0, 0x30]
+ ldr r1, [r4]
+ ldr r0, _0809A594 @ =sub_809A61C
+ str r0, [r1, 0x1C]
+ adds r0, r7, 0x1
+ lsls r0, 16
+ lsrs r7, r0, 16
+ cmp r7, 0x1
+ bls _0809A4DE
+ 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
+_0809A570: .4byte 0x00000cec
+_0809A574: .4byte 0x0000dac9
+_0809A578: .4byte 0x000008ca
+_0809A57C: .4byte gPokemonStorage + 0x8344
+_0809A580: .4byte gUnknown_083BB0A8
+_0809A584: .4byte gUnknown_083B6DB4
+_0809A588: .4byte 0x00000cf8
+_0809A58C: .4byte gSprites
+_0809A590: .4byte sub_809A5E8
+_0809A594: .4byte sub_809A61C
+ thumb_func_end sub_809A3D0
+
+ thumb_func_start sub_809A598
+sub_809A598: @ 809A598
+ push {lr}
+ ldr r0, _0809A5B0 @ =gUnknown_083B6DB4
+ ldr r0, [r0]
+ ldr r1, _0809A5B4 @ =0x00000cca
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0809A5B8
+ movs r0, 0x4
+ bl FreeSpriteTilesByTag
+ b _0809A5BE
+ .align 2, 0
+_0809A5B0: .4byte gUnknown_083B6DB4
+_0809A5B4: .4byte 0x00000cca
+_0809A5B8:
+ movs r0, 0x3
+ bl FreeSpriteTilesByTag
+_0809A5BE:
+ ldr r0, _0809A5E0 @ =gUnknown_083B6DB4
+ ldr r0, [r0]
+ movs r3, 0xCF
+ lsls r3, 4
+ adds r2, r0, r3
+ adds r3, 0x8
+ adds r1, r0, r3
+ ldr r1, [r1]
+ str r1, [r2]
+ ldr r2, _0809A5E4 @ =0x00000cf4
+ adds r1, r0, r2
+ adds r3, 0x4
+ adds r0, r3
+ ldr r0, [r0]
+ str r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809A5E0: .4byte gUnknown_083B6DB4
+_0809A5E4: .4byte 0x00000cf4
+ thumb_func_end sub_809A598
+
+ thumb_func_start sub_809A5E8
+sub_809A5E8: @ 809A5E8
+ push {lr}
+ adds r2, r0, 0
+ ldrh r1, [r2, 0x32]
+ movs r3, 0x32
+ ldrsh r0, [r2, r3]
+ cmp r0, 0
+ beq _0809A5FC
+ subs r0, r1, 0x1
+ strh r0, [r2, 0x32]
+ b _0809A614
+_0809A5FC:
+ ldrh r0, [r2, 0x2E]
+ ldrh r1, [r2, 0x20]
+ adds r0, r1
+ strh r0, [r2, 0x20]
+ lsls r0, 16
+ asrs r0, 16
+ movs r3, 0x30
+ ldrsh r1, [r2, r3]
+ cmp r0, r1
+ bne _0809A614
+ ldr r0, _0809A618 @ =SpriteCallbackDummy
+ str r0, [r2, 0x1C]
+_0809A614:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809A618: .4byte SpriteCallbackDummy
+ thumb_func_end sub_809A5E8
+
+ thumb_func_start sub_809A61C
+sub_809A61C: @ 809A61C
+ push {lr}
+ adds r2, r0, 0
+ ldrh r1, [r2, 0x30]
+ movs r3, 0x30
+ ldrsh r0, [r2, r3]
+ cmp r0, 0
+ beq _0809A630
+ subs r0, r1, 0x1
+ strh r0, [r2, 0x30]
+ b _0809A64E
+_0809A630:
+ ldrh r0, [r2, 0x2E]
+ ldrh r1, [r2, 0x20]
+ adds r0, r1
+ strh r0, [r2, 0x20]
+ ldrh r1, [r2, 0x24]
+ adds r0, r1
+ strh r0, [r2, 0x32]
+ subs r0, 0x40
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0xC0
+ bls _0809A64E
+ adds r0, r2, 0
+ bl DestroySprite
+_0809A64E:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_809A61C
+
+ thumb_func_start sub_809A654
+sub_809A654: @ 809A654
+ push {lr}
+ bl get_preferred_box
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _0809A690 @ =gPokemonStorage
+ ldr r2, _0809A694 @ =0x000083c2
+ adds r1, r2
+ adds r0, r1
+ ldrb r1, [r0]
+ ldr r0, _0809A698 @ =gUnknown_083B6DB4
+ ldr r2, [r0]
+ ldr r3, _0809A69C @ =0x00000cca
+ adds r0, r2, r3
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0809A6A8
+ lsls r0, r1, 2
+ ldr r1, _0809A6A0 @ =gUnknown_083BB0A8
+ adds r0, r1
+ adds r3, 0x22
+ adds r1, r2, r3
+ ldrh r1, [r1]
+ lsls r1, 1
+ ldr r2, _0809A6A4 @ =gPlttBufferUnfaded
+ adds r1, r2
+ movs r2, 0x2
+ bl CpuSet
+ b _0809A6C0
+ .align 2, 0
+_0809A690: .4byte gPokemonStorage
+_0809A694: .4byte 0x000083c2
+_0809A698: .4byte gUnknown_083B6DB4
+_0809A69C: .4byte 0x00000cca
+_0809A6A0: .4byte gUnknown_083BB0A8
+_0809A6A4: .4byte gPlttBufferUnfaded
+_0809A6A8:
+ lsls r0, r1, 2
+ ldr r1, _0809A6C4 @ =gUnknown_083BB0A8
+ adds r0, r1
+ ldr r3, _0809A6C8 @ =0x00000cee
+ adds r1, r2, r3
+ ldrh r1, [r1]
+ lsls r1, 1
+ ldr r2, _0809A6CC @ =gPlttBufferUnfaded
+ adds r1, r2
+ movs r2, 0x2
+ bl CpuSet
+_0809A6C0:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809A6C4: .4byte gUnknown_083BB0A8
+_0809A6C8: .4byte 0x00000cee
+_0809A6CC: .4byte gPlttBufferUnfaded
+ thumb_func_end sub_809A654
+
+ thumb_func_start sub_809A6D0
+sub_809A6D0: @ 809A6D0
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 25
+ movs r0, 0xB0
+ subs r0, r1
+ bx lr
+ thumb_func_end sub_809A6D0
+
+ thumb_func_start sub_809A6DC
+sub_809A6DC: @ 809A6DC
+ push {r4,r5,lr}
+ ldr r0, _0809A760 @ =gUnknown_083BB288
+ bl LoadSpriteSheet
+ ldr r0, _0809A764 @ =gUnknown_083BB290
+ bl LoadSpritePalette
+ movs r5, 0
+_0809A6EC:
+ lsls r1, r5, 4
+ adds r1, r5
+ lsls r1, 19
+ movs r0, 0xB8
+ lsls r0, 15
+ adds r1, r0
+ asrs r1, 16
+ ldr r0, _0809A768 @ =gSpriteTemplate_83BB2F0
+ movs r2, 0x1C
+ movs r3, 0x15
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x40
+ beq _0809A73E
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0809A76C @ =gSprites
+ adds r4, r0, r1
+ lsls r1, r5, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ movs r0, 0x1
+ cmp r5, 0
+ bne _0809A72C
+ movs r1, 0x1
+ negs r1, r1
+ adds r0, r1, 0
+_0809A72C:
+ strh r0, [r4, 0x34]
+ ldr r0, _0809A770 @ =gUnknown_083B6DB4
+ ldr r0, [r0]
+ lsls r1, r5, 2
+ movs r2, 0xD0
+ lsls r2, 4
+ adds r0, r2
+ adds r0, r1
+ str r4, [r0]
+_0809A73E:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x1
+ bls _0809A6EC
+ bl sub_809BF2C
+ lsls r0, 24
+ cmp r0, 0
+ beq _0809A758
+ movs r0, 0x1
+ bl sub_809A860
+_0809A758:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809A760: .4byte gUnknown_083BB288
+_0809A764: .4byte gUnknown_083BB290
+_0809A768: .4byte gSpriteTemplate_83BB2F0
+_0809A76C: .4byte gSprites
+_0809A770: .4byte gUnknown_083B6DB4
+ thumb_func_end sub_809A6DC
+
+ thumb_func_start sub_809A774
+sub_809A774: @ 809A774
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r2, 0
+ ldr r7, _0809A7C4 @ =gUnknown_083B6DB4
+ ldr r0, [r7]
+ movs r1, 0xD0
+ lsls r1, 4
+ adds r3, r0, r1
+ movs r5, 0
+ movs r4, 0x2
+_0809A78A:
+ lsls r1, r2, 2
+ adds r1, r3, r1
+ ldr r0, [r1]
+ strh r5, [r0, 0x24]
+ ldr r0, [r1]
+ strh r4, [r0, 0x2E]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x1
+ bls _0809A78A
+ lsls r0, r6, 24
+ cmp r0, 0
+ bge _0809A7CC
+ ldr r1, [r7]
+ movs r2, 0xD0
+ lsls r2, 4
+ adds r3, r1, r2
+ ldr r2, [r3]
+ movs r0, 0x1D
+ strh r0, [r2, 0x30]
+ ldr r0, _0809A7C8 @ =0x00000d04
+ adds r1, r0
+ ldr r2, [r1]
+ movs r0, 0x5
+ strh r0, [r2, 0x30]
+ ldr r0, [r3]
+ movs r2, 0x48
+ b _0809A7E8
+ .align 2, 0
+_0809A7C4: .4byte gUnknown_083B6DB4
+_0809A7C8: .4byte 0x00000d04
+_0809A7CC:
+ ldr r1, [r7]
+ movs r2, 0xD0
+ lsls r2, 4
+ adds r3, r1, r2
+ ldr r2, [r3]
+ movs r0, 0x5
+ strh r0, [r2, 0x30]
+ ldr r0, _0809A80C @ =0x00000d04
+ adds r1, r0
+ ldr r2, [r1]
+ movs r0, 0x1D
+ strh r0, [r2, 0x30]
+ ldr r0, [r3]
+ movs r2, 0xF8
+_0809A7E8:
+ strh r2, [r0, 0x32]
+ ldr r0, [r1]
+ strh r2, [r0, 0x32]
+ ldr r1, [r7]
+ movs r2, 0xD0
+ lsls r2, 4
+ adds r0, r1, r2
+ ldr r2, [r0]
+ movs r0, 0
+ strh r0, [r2, 0x3C]
+ ldr r0, _0809A80C @ =0x00000d04
+ adds r1, r0
+ ldr r1, [r1]
+ movs r0, 0x1
+ strh r0, [r1, 0x3C]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809A80C: .4byte 0x00000d04
+ thumb_func_end sub_809A774
+
+ thumb_func_start sub_809A810
+sub_809A810: @ 809A810
+ push {r4-r6,lr}
+ movs r3, 0
+ ldr r0, _0809A85C @ =gUnknown_083B6DB4
+ ldr r0, [r0]
+ movs r1, 0xD0
+ lsls r1, 4
+ adds r4, r0, r1
+ movs r5, 0
+ movs r6, 0x5
+ negs r6, r6
+_0809A824:
+ lsls r1, r3, 2
+ adds r1, r4, r1
+ ldr r2, [r1]
+ lsls r0, r3, 4
+ adds r0, r3
+ lsls r0, 3
+ adds r0, 0x5C
+ strh r0, [r2, 0x20]
+ ldr r0, [r1]
+ strh r5, [r0, 0x24]
+ ldr r1, [r1]
+ adds r1, 0x3E
+ ldrb r2, [r1]
+ adds r0, r6, 0
+ ands r0, r2
+ strb r0, [r1]
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x1
+ bls _0809A824
+ movs r0, 0x1
+ bl sub_809A860
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809A85C: .4byte gUnknown_083B6DB4
+ thumb_func_end sub_809A810
+
+ thumb_func_start sub_809A860
+sub_809A860: @ 809A860
+ push {r4,r5,lr}
+ lsls r0, 24
+ cmp r0, 0
+ beq _0809A89C
+ movs r2, 0
+ ldr r0, _0809A898 @ =gUnknown_083B6DB4
+ ldr r0, [r0]
+ movs r1, 0xD0
+ lsls r1, 4
+ adds r4, r0, r1
+ movs r3, 0
+ movs r5, 0x1
+_0809A878:
+ lsls r1, r2, 2
+ adds r1, r4, r1
+ ldr r0, [r1]
+ strh r5, [r0, 0x2E]
+ ldr r0, [r1]
+ strh r3, [r0, 0x30]
+ ldr r0, [r1]
+ strh r3, [r0, 0x32]
+ ldr r0, [r1]
+ strh r3, [r0, 0x36]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x1
+ bls _0809A878
+ b _0809A8BC
+ .align 2, 0
+_0809A898: .4byte gUnknown_083B6DB4
+_0809A89C:
+ movs r2, 0
+ ldr r0, _0809A8C4 @ =gUnknown_083B6DB4
+ ldr r0, [r0]
+ movs r3, 0xD0
+ lsls r3, 4
+ adds r1, r0, r3
+ movs r3, 0
+_0809A8AA:
+ lsls r0, r2, 2
+ adds r0, r1, r0
+ ldr r0, [r0]
+ strh r3, [r0, 0x2E]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x1
+ bls _0809A8AA
+_0809A8BC:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809A8C4: .4byte gUnknown_083B6DB4
+ thumb_func_end sub_809A860
+
+ thumb_func_start sub_809A8C8
+sub_809A8C8: @ 809A8C8
+ push {lr}
+ adds r2, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r2, r1]
+ cmp r0, 0x4
+ bhi _0809A994
+ lsls r0, 2
+ ldr r1, _0809A8E0 @ =_0809A8E4
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0809A8E0: .4byte _0809A8E4
+ .align 2, 0
+_0809A8E4:
+ .4byte _0809A8F8
+ .4byte _0809A8FE
+ .4byte _0809A92C
+ .4byte _0809A932
+ .4byte _0809A984
+_0809A8F8:
+ movs r0, 0
+ strh r0, [r2, 0x24]
+ b _0809A994
+_0809A8FE:
+ ldrh r0, [r2, 0x30]
+ adds r0, 0x1
+ movs r1, 0
+ strh r0, [r2, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ ble _0809A994
+ strh r1, [r2, 0x30]
+ ldrh r0, [r2, 0x34]
+ ldrh r3, [r2, 0x24]
+ adds r0, r3
+ strh r0, [r2, 0x24]
+ ldrh r0, [r2, 0x32]
+ adds r0, 0x1
+ strh r0, [r2, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x5
+ ble _0809A994
+ strh r1, [r2, 0x32]
+ strh r1, [r2, 0x24]
+ b _0809A994
+_0809A92C:
+ movs r0, 0x3
+ strh r0, [r2, 0x2E]
+ b _0809A994
+_0809A932:
+ ldr r0, _0809A97C @ =gUnknown_083B6DB4
+ ldr r1, [r0]
+ ldr r0, _0809A980 @ =0x000008b6
+ adds r1, r0
+ ldrh r0, [r2, 0x20]
+ ldrh r1, [r1]
+ subs r0, r1
+ strh r0, [r2, 0x20]
+ subs r0, 0x49
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0xAE
+ bls _0809A958
+ adds r3, r2, 0
+ adds r3, 0x3E
+ ldrb r0, [r3]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r3]
+_0809A958:
+ ldrh r0, [r2, 0x30]
+ subs r0, 0x1
+ strh r0, [r2, 0x30]
+ lsls r0, 16
+ cmp r0, 0
+ bne _0809A994
+ ldrh r0, [r2, 0x32]
+ strh r0, [r2, 0x20]
+ adds r3, r2, 0
+ adds r3, 0x3E
+ ldrb r1, [r3]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r3]
+ movs r0, 0x4
+ strh r0, [r2, 0x2E]
+ b _0809A994
+ .align 2, 0
+_0809A97C: .4byte gUnknown_083B6DB4
+_0809A980: .4byte 0x000008b6
+_0809A984:
+ ldr r0, _0809A998 @ =gUnknown_083B6DB4
+ ldr r0, [r0]
+ ldr r1, _0809A99C @ =0x000008b6
+ adds r0, r1
+ ldrh r1, [r2, 0x20]
+ ldrh r0, [r0]
+ subs r1, r0
+ strh r1, [r2, 0x20]
+_0809A994:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809A998: .4byte gUnknown_083B6DB4
+_0809A99C: .4byte 0x000008b6
+ thumb_func_end sub_809A8C8
+
+ thumb_func_start sub_809A9A0
+sub_809A9A0: @ 809A9A0
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r5, r0, 0
+ adds r6, r1, 0
+ ldr r4, [sp, 0x18]
+ lsls r2, 24
+ lsrs r7, r2, 24
+ lsls r3, 24
+ lsrs r3, 24
+ mov r8, r3
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _0809AA0C @ =gSpriteTemplate_83BB2F0
+ lsls r5, 16
+ asrs r5, 16
+ lsls r6, 16
+ asrs r6, 16
+ adds r1, r5, 0
+ adds r2, r6, 0
+ adds r3, r4, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x40
+ beq _0809AA18
+ movs r1, 0x1
+ ands r1, r7
+ lsls r4, r0, 4
+ adds r4, r0
+ lsls r4, 2
+ ldr r5, _0809AA10 @ =gSprites
+ adds r6, r4, r5
+ adds r0, r6, 0
+ bl StartSpriteAnim
+ movs r0, 0x3
+ mov r1, r8
+ ands r1, r0
+ lsls r1, 2
+ ldrb r2, [r6, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r6, 0x5]
+ adds r5, 0x1C
+ adds r4, r5
+ ldr r0, _0809AA14 @ =SpriteCallbackDummy
+ str r0, [r4]
+ adds r0, r6, 0
+ b _0809AA1A
+ .align 2, 0
+_0809AA0C: .4byte gSpriteTemplate_83BB2F0
+_0809AA10: .4byte gSprites
+_0809AA14: .4byte SpriteCallbackDummy
+_0809AA18:
+ movs r0, 0
+_0809AA1A:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809A9A0
+
+ thumb_func_start sub_809AA24
+sub_809AA24: @ 809AA24
+ push {lr}
+ ldr r0, _0809AA38 @ =gUnknown_083B6DB4
+ ldr r0, [r0]
+ ldrb r1, [r0, 0x5]
+ cmp r1, 0x1
+ beq _0809AA40
+ ldr r1, _0809AA3C @ =gUnknown_020384E4
+ movs r0, 0
+ strb r0, [r1]
+ b _0809AA44
+ .align 2, 0
+_0809AA38: .4byte gUnknown_083B6DB4
+_0809AA3C: .4byte gUnknown_020384E4
+_0809AA40:
+ ldr r0, _0809AA78 @ =gUnknown_020384E4
+ strb r1, [r0]
+_0809AA44:
+ ldr r0, _0809AA7C @ =gUnknown_020384E5
+ movs r1, 0
+ strb r1, [r0]
+ ldr r0, _0809AA80 @ =gUnknown_020384E6
+ strb r1, [r0]
+ ldr r0, _0809AA84 @ =gUnknown_020384E7
+ strb r1, [r0]
+ ldr r0, _0809AA88 @ =gUnknown_020384E8
+ strb r1, [r0]
+ ldr r0, _0809AA8C @ =gUnknown_020384E9
+ strb r1, [r0]
+ bl sub_809B0D4
+ bl sub_809CC04
+ ldr r0, _0809AA90 @ =gUnknown_083B6DB4
+ ldr r0, [r0]
+ ldr r1, _0809AA94 @ =0x000011e2
+ adds r0, r1
+ movs r1, 0x1
+ strb r1, [r0]
+ bl sub_809BF74
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809AA78: .4byte gUnknown_020384E4
+_0809AA7C: .4byte gUnknown_020384E5
+_0809AA80: .4byte gUnknown_020384E6
+_0809AA84: .4byte gUnknown_020384E7
+_0809AA88: .4byte gUnknown_020384E8
+_0809AA8C: .4byte gUnknown_020384E9
+_0809AA90: .4byte gUnknown_083B6DB4
+_0809AA94: .4byte 0x000011e2
+ thumb_func_end sub_809AA24
+
+ thumb_func_start sub_809AA98
+sub_809AA98: @ 809AA98
+ push {lr}
+ bl sub_809CC04
+ bl sub_809C028
+ ldr r0, _0809AAC0 @ =gUnknown_083B6DB4
+ ldr r0, [r0]
+ ldr r1, _0809AAC4 @ =0x000011e2
+ adds r0, r1
+ movs r1, 0x1
+ strb r1, [r0]
+ ldr r0, _0809AAC8 @ =gUnknown_020384E6
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0809AABA
+ bl sub_8098BF0
+_0809AABA:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809AAC0: .4byte gUnknown_083B6DB4
+_0809AAC4: .4byte 0x000011e2
+_0809AAC8: .4byte gUnknown_020384E6
+ thumb_func_end sub_809AA98
+
+ thumb_func_start sub_809AACC
+sub_809AACC: @ 809AACC
+ push {r4-r6,lr}
+ adds r4, r2, 0
+ adds r6, r3, 0
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r5, r1, 24
+ cmp r0, 0x4
+ bhi _0809AB84
+ lsls r0, 2
+ ldr r1, _0809AAE8 @ =_0809AAEC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0809AAE8: .4byte _0809AAEC
+ .align 2, 0
+_0809AAEC:
+ .4byte _0809AB00
+ .4byte _0809AB2E
+ .4byte _0809AB56
+ .4byte _0809AB5E
+ .4byte _0809AB7C
+_0809AB00:
+ adds r0, r5, 0
+ movs r1, 0x6
+ bl __umodsi3
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 3
+ adds r1, 0x64
+ strh r1, [r4]
+ adds r0, r5, 0
+ movs r1, 0x6
+ bl __udivsi3
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 3
+ adds r1, 0x20
+ strh r1, [r6]
+ b _0809AB84
+_0809AB2E:
+ cmp r5, 0
+ bne _0809AB3A
+ movs r0, 0x68
+ strh r0, [r4]
+ movs r0, 0x34
+ b _0809AB82
+_0809AB3A:
+ cmp r5, 0x6
+ bne _0809AB46
+ movs r0, 0x98
+ strh r0, [r4]
+ movs r0, 0x84
+ b _0809AB82
+_0809AB46:
+ movs r0, 0x98
+ strh r0, [r4]
+ subs r1, r5, 0x1
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ adds r0, 0x4
+ b _0809AB82
+_0809AB56:
+ movs r0, 0xA2
+ strh r0, [r4]
+ movs r0, 0xC
+ b _0809AB82
+_0809AB5E:
+ ldr r0, _0809AB78 @ =gUnknown_020384E6
+ ldrb r0, [r0]
+ movs r1, 0xE
+ cmp r0, 0
+ beq _0809AB6A
+ movs r1, 0x8
+_0809AB6A:
+ strh r1, [r6]
+ movs r0, 0x58
+ muls r0, r5
+ adds r0, 0x78
+ strh r0, [r4]
+ b _0809AB84
+ .align 2, 0
+_0809AB78: .4byte gUnknown_020384E6
+_0809AB7C:
+ movs r0, 0xA0
+ strh r0, [r4]
+ movs r0, 0x60
+_0809AB82:
+ strh r0, [r6]
+_0809AB84:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_809AACC
+
+ thumb_func_start sub_809AB8C
+sub_809AB8C: @ 809AB8C
+ push {lr}
+ ldr r0, _0809ABB4 @ =gUnknown_020384E4
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0
+ beq _0809ABC0
+ cmp r0, 0x1
+ bne _0809ABF8
+ ldr r0, _0809ABB8 @ =gUnknown_020384E5
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0809ABBC @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0xB
+ bl GetMonData
+ b _0809ABEA
+ .align 2, 0
+_0809ABB4: .4byte gUnknown_020384E4
+_0809ABB8: .4byte gUnknown_020384E5
+_0809ABBC: .4byte gPlayerParty
+_0809ABC0:
+ bl get_preferred_box
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 5
+ ldr r1, _0809ABF0 @ =gUnknown_020384E5
+ movs r2, 0
+ ldrsb r2, [r1, r2]
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 4
+ ldr r2, _0809ABF4 @ =gPokemonStorage + 0x4
+ adds r1, r2
+ adds r0, r1
+ movs r1, 0xB
+ bl GetBoxMonData
+_0809ABEA:
+ lsls r0, 16
+ lsrs r0, 16
+ b _0809ABFA
+ .align 2, 0
+_0809ABF0: .4byte gUnknown_020384E5
+_0809ABF4: .4byte gPokemonStorage + 0x4
+_0809ABF8:
+ movs r0, 0
+_0809ABFA:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809AB8C
+
+ thumb_func_start sub_809AC00
+sub_809AC00: @ 809AC00
+ push {r4-r6,lr}
+ ldr r0, _0809AC14 @ =gUnknown_083B6DB4
+ ldr r4, [r0]
+ ldr r0, _0809AC18 @ =0x000011dc
+ adds r1, r4, r0
+ ldrh r0, [r1]
+ cmp r0, 0
+ bne _0809AC1C
+ movs r0, 0
+ b _0809AD2C
+ .align 2, 0
+_0809AC14: .4byte gUnknown_083B6DB4
+_0809AC18: .4byte 0x000011dc
+_0809AC1C:
+ subs r0, 0x1
+ strh r0, [r1]
+ lsls r0, 16
+ cmp r0, 0
+ beq _0809AD0C
+ ldr r1, _0809ACF4 @ =0x000011c8
+ adds r3, r4, r1
+ ldr r2, _0809ACF8 @ =0x000011d0
+ adds r1, r4, r2
+ ldr r0, [r3]
+ ldr r1, [r1]
+ adds r0, r1
+ str r0, [r3]
+ ldr r6, _0809ACFC @ =0x000011cc
+ adds r2, r4, r6
+ ldr r0, _0809AD00 @ =0x000011d4
+ adds r1, r4, r0
+ ldr r0, [r2]
+ ldr r1, [r1]
+ adds r0, r1
+ str r0, [r2]
+ movs r1, 0x8E
+ lsls r1, 5
+ adds r5, r4, r1
+ ldr r1, [r5]
+ ldr r0, [r3]
+ asrs r0, 8
+ strh r0, [r1, 0x20]
+ ldr r1, [r5]
+ ldr r0, [r2]
+ asrs r0, 8
+ strh r0, [r1, 0x22]
+ ldr r1, [r5]
+ ldrh r2, [r1, 0x20]
+ movs r3, 0x20
+ ldrsh r0, [r1, r3]
+ movs r3, 0x80
+ lsls r3, 1
+ cmp r0, r3
+ ble _0809AC78
+ ldr r6, _0809AD04 @ =0xffffff00
+ adds r0, r2, r6
+ lsls r0, 16
+ asrs r0, 16
+ adds r0, 0x40
+ strh r0, [r1, 0x20]
+_0809AC78:
+ ldr r1, [r5]
+ ldrh r2, [r1, 0x20]
+ movs r6, 0x20
+ ldrsh r0, [r1, r6]
+ cmp r0, 0x3F
+ bgt _0809AC90
+ movs r0, 0x40
+ subs r0, r2
+ lsls r0, 16
+ asrs r0, 16
+ subs r0, r3, r0
+ strh r0, [r1, 0x20]
+_0809AC90:
+ ldr r1, [r5]
+ ldrh r2, [r1, 0x22]
+ movs r3, 0x22
+ ldrsh r0, [r1, r3]
+ cmp r0, 0xB0
+ ble _0809ACA8
+ adds r0, r2, 0
+ subs r0, 0xB0
+ lsls r0, 16
+ asrs r0, 16
+ subs r0, 0x10
+ strh r0, [r1, 0x22]
+_0809ACA8:
+ ldr r2, [r5]
+ ldrh r3, [r2, 0x22]
+ movs r6, 0x22
+ ldrsh r0, [r2, r6]
+ movs r1, 0x10
+ negs r1, r1
+ cmp r0, r1
+ bge _0809ACC4
+ subs r0, r1, r3
+ movs r1, 0xB0
+ lsls r0, 16
+ asrs r0, 16
+ subs r1, r0
+ strh r1, [r2, 0x22]
+_0809ACC4:
+ ldr r0, _0809AD08 @ =0x000011e3
+ adds r1, r4, r0
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _0809AD2A
+ subs r0, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ cmp r0, 0
+ bne _0809AD2A
+ ldr r2, [r5]
+ adds r2, 0x3F
+ ldrb r3, [r2]
+ lsrs r1, r3, 1
+ movs r0, 0x1
+ eors r1, r0
+ ands r1, r0
+ lsls r1, 1
+ movs r0, 0x3
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2]
+ b _0809AD2A
+ .align 2, 0
+_0809ACF4: .4byte 0x000011c8
+_0809ACF8: .4byte 0x000011d0
+_0809ACFC: .4byte 0x000011cc
+_0809AD00: .4byte 0x000011d4
+_0809AD04: .4byte 0xffffff00
+_0809AD08: .4byte 0x000011e3
+_0809AD0C:
+ movs r1, 0x8E
+ lsls r1, 5
+ adds r2, r4, r1
+ ldr r1, [r2]
+ ldr r3, _0809AD34 @ =0x000011d8
+ adds r0, r4, r3
+ ldrh r0, [r0]
+ strh r0, [r1, 0x20]
+ ldr r1, [r2]
+ ldr r6, _0809AD38 @ =0x000011da
+ adds r0, r4, r6
+ ldrh r0, [r0]
+ strh r0, [r1, 0x22]
+ bl sub_809AFB8
+_0809AD2A:
+ movs r0, 0x1
+_0809AD2C:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0809AD34: .4byte 0x000011d8
+_0809AD38: .4byte 0x000011da
+ thumb_func_end sub_809AC00
+
+ thumb_func_start sub_809AD3C
+sub_809AD3C: @ 809AD3C
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ adds r5, r1, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, 24
+ lsrs r5, 24
+ mov r6, sp
+ adds r6, 0x2
+ adds r0, r4, 0
+ adds r1, r5, 0
+ mov r2, sp
+ adds r3, r6, 0
+ bl sub_809AACC
+ ldr r0, _0809AD88 @ =gUnknown_083B6DB4
+ ldr r1, [r0]
+ movs r2, 0x8F
+ lsls r2, 5
+ adds r0, r1, r2
+ strb r4, [r0]
+ ldr r3, _0809AD8C @ =0x000011e1
+ adds r0, r1, r3
+ strb r5, [r0]
+ mov r0, sp
+ ldrh r2, [r0]
+ subs r3, 0x9
+ adds r0, r1, r3
+ strh r2, [r0]
+ ldrh r0, [r6]
+ ldr r2, _0809AD90 @ =0x000011da
+ adds r1, r2
+ strh r0, [r1]
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809AD88: .4byte gUnknown_083B6DB4
+_0809AD8C: .4byte 0x000011e1
+_0809AD90: .4byte 0x000011da
+ thumb_func_end sub_809AD3C
+
+ thumb_func_start sub_809AD94
+sub_809AD94: @ 809AD94
+ push {r4-r7,lr}
+ ldr r0, _0809ADB0 @ =gUnknown_083B6DB4
+ ldr r2, [r0]
+ ldr r3, _0809ADB4 @ =0x000011de
+ adds r1, r2, r3
+ ldrh r1, [r1]
+ adds r4, r0, 0
+ cmp r1, 0
+ beq _0809ADBC
+ ldr r0, _0809ADB8 @ =0x000011dc
+ adds r1, r2, r0
+ movs r0, 0xC
+ b _0809ADC2
+ .align 2, 0
+_0809ADB0: .4byte gUnknown_083B6DB4
+_0809ADB4: .4byte 0x000011de
+_0809ADB8: .4byte 0x000011dc
+_0809ADBC:
+ ldr r3, _0809AE04 @ =0x000011dc
+ adds r1, r2, r3
+ movs r0, 0x6
+_0809ADC2:
+ strh r0, [r1]
+ ldr r2, [r4]
+ ldr r0, _0809AE08 @ =0x000011e3
+ adds r1, r2, r0
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _0809ADDA
+ ldr r3, _0809AE04 @ =0x000011dc
+ adds r0, r2, r3
+ ldrh r0, [r0]
+ lsrs r0, 1
+ strb r0, [r1]
+_0809ADDA:
+ ldr r1, _0809AE0C @ =0x000011de
+ adds r0, r2, r1
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _0809AE14
+ cmp r1, 0x1
+ beq _0809AE30
+ ldr r3, _0809AE10 @ =0x000011da
+ adds r0, r2, r3
+ movs r3, 0
+ ldrsh r1, [r0, r3]
+ movs r3, 0x8E
+ lsls r3, 5
+ adds r0, r2, r3
+ ldr r0, [r0]
+ movs r2, 0x22
+ ldrsh r0, [r0, r2]
+ b _0809AE46
+ .align 2, 0
+_0809AE04: .4byte 0x000011dc
+_0809AE08: .4byte 0x000011e3
+_0809AE0C: .4byte 0x000011de
+_0809AE10: .4byte 0x000011da
+_0809AE14:
+ ldr r3, _0809AE2C @ =0x000011da
+ adds r0, r2, r3
+ movs r3, 0
+ ldrsh r1, [r0, r3]
+ movs r3, 0x8E
+ lsls r3, 5
+ adds r0, r2, r3
+ ldr r0, [r0]
+ movs r2, 0x22
+ ldrsh r0, [r0, r2]
+ adds r0, 0xC0
+ b _0809AE46
+ .align 2, 0
+_0809AE2C: .4byte 0x000011da
+_0809AE30:
+ ldr r3, _0809AE74 @ =0x000011da
+ adds r0, r2, r3
+ movs r3, 0
+ ldrsh r1, [r0, r3]
+ movs r3, 0x8E
+ lsls r3, 5
+ adds r0, r2, r3
+ ldr r0, [r0]
+ movs r2, 0x22
+ ldrsh r0, [r0, r2]
+ subs r0, 0xC0
+_0809AE46:
+ subs r7, r1, r0
+ ldr r2, [r4]
+ ldr r3, _0809AE78 @ =0x000011df
+ adds r0, r2, r3
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _0809AE80
+ cmp r1, 0x1
+ beq _0809AE9C
+ ldr r1, _0809AE7C @ =0x000011d8
+ adds r0, r2, r1
+ movs r3, 0
+ ldrsh r1, [r0, r3]
+ movs r3, 0x8E
+ lsls r3, 5
+ adds r0, r2, r3
+ ldr r0, [r0]
+ movs r2, 0x20
+ ldrsh r0, [r0, r2]
+ b _0809AEB2
+ .align 2, 0
+_0809AE74: .4byte 0x000011da
+_0809AE78: .4byte 0x000011df
+_0809AE7C: .4byte 0x000011d8
+_0809AE80:
+ ldr r3, _0809AE98 @ =0x000011d8
+ adds r0, r2, r3
+ movs r3, 0
+ ldrsh r1, [r0, r3]
+ movs r3, 0x8E
+ lsls r3, 5
+ adds r0, r2, r3
+ ldr r0, [r0]
+ movs r2, 0x20
+ ldrsh r0, [r0, r2]
+ adds r0, 0xC0
+ b _0809AEB2
+ .align 2, 0
+_0809AE98: .4byte 0x000011d8
+_0809AE9C:
+ ldr r3, _0809AF00 @ =0x000011d8
+ adds r0, r2, r3
+ movs r3, 0
+ ldrsh r1, [r0, r3]
+ movs r3, 0x8E
+ lsls r3, 5
+ adds r0, r2, r3
+ ldr r0, [r0]
+ movs r2, 0x20
+ ldrsh r0, [r0, r2]
+ subs r0, 0xC0
+_0809AEB2:
+ subs r0, r1, r0
+ lsls r7, 8
+ lsls r0, 8
+ ldr r4, [r4]
+ ldr r3, _0809AF04 @ =0x000011d0
+ adds r6, r4, r3
+ ldr r1, _0809AF08 @ =0x000011dc
+ adds r5, r4, r1
+ ldrh r1, [r5]
+ bl __divsi3
+ str r0, [r6]
+ ldr r2, _0809AF0C @ =0x000011d4
+ adds r6, r4, r2
+ ldrh r1, [r5]
+ adds r0, r7, 0
+ bl __divsi3
+ str r0, [r6]
+ ldr r3, _0809AF10 @ =0x000011c8
+ adds r2, r4, r3
+ movs r0, 0x8E
+ lsls r0, 5
+ adds r1, r4, r0
+ ldr r0, [r1]
+ movs r3, 0x20
+ ldrsh r0, [r0, r3]
+ lsls r0, 8
+ str r0, [r2]
+ ldr r0, _0809AF14 @ =0x000011cc
+ adds r4, r0
+ ldr r0, [r1]
+ movs r1, 0x22
+ ldrsh r0, [r0, r1]
+ lsls r0, 8
+ str r0, [r4]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809AF00: .4byte 0x000011d8
+_0809AF04: .4byte 0x000011d0
+_0809AF08: .4byte 0x000011dc
+_0809AF0C: .4byte 0x000011d4
+_0809AF10: .4byte 0x000011c8
+_0809AF14: .4byte 0x000011cc
+ thumb_func_end sub_809AD94
+
+ thumb_func_start sub_809AF18
+sub_809AF18: @ 809AF18
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl sub_809AD3C
+ bl sub_809AD94
+ ldr r0, _0809AFA4 @ =gUnknown_020384E6
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0809AF46
+ ldr r0, _0809AFA8 @ =gUnknown_083B6DB4
+ ldr r0, [r0]
+ movs r1, 0x8E
+ lsls r1, 5
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x1
+ bl StartSpriteAnim
+_0809AF46:
+ cmp r4, 0x1
+ bne _0809AF70
+ ldr r0, _0809AFAC @ =gUnknown_020384E4
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x1
+ beq _0809AF70
+ ldr r0, _0809AFA8 @ =gUnknown_083B6DB4
+ ldr r0, [r0]
+ ldr r2, _0809AFB0 @ =0x000011e2
+ adds r1, r0, r2
+ strb r4, [r1]
+ ldr r1, _0809AFB4 @ =0x000011c4
+ adds r0, r1
+ ldr r1, [r0]
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ movs r2, 0x4
+ orrs r0, r2
+ strb r0, [r1]
+_0809AF70:
+ cmp r4, 0
+ beq _0809AF9E
+ cmp r4, 0
+ blt _0809AF9E
+ cmp r4, 0x3
+ bgt _0809AF9E
+ ldr r0, _0809AFA8 @ =gUnknown_083B6DB4
+ ldr r2, [r0]
+ ldr r0, _0809AFB4 @ =0x000011c4
+ adds r2, r0
+ ldr r1, [r2]
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ movs r3, 0x4
+ orrs r0, r3
+ strb r0, [r1]
+ ldr r2, [r2]
+ ldrb r1, [r2, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ orrs r0, r3
+ strb r0, [r2, 0x5]
+_0809AF9E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809AFA4: .4byte gUnknown_020384E6
+_0809AFA8: .4byte gUnknown_083B6DB4
+_0809AFAC: .4byte gUnknown_020384E4
+_0809AFB0: .4byte 0x000011e2
+_0809AFB4: .4byte 0x000011c4
+ thumb_func_end sub_809AF18
+
+ thumb_func_start sub_809AFB8
+sub_809AFB8: @ 809AFB8
+ push {r4,r5,lr}
+ ldr r5, _0809B000 @ =gUnknown_020384E4
+ ldr r0, _0809B004 @ =gUnknown_083B6DB4
+ ldr r4, [r0]
+ movs r1, 0x8F
+ lsls r1, 5
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ strb r0, [r5]
+ ldr r1, _0809B008 @ =gUnknown_020384E5
+ ldr r2, _0809B00C @ =0x000011e1
+ adds r0, r4, r2
+ ldrb r0, [r0]
+ strb r0, [r1]
+ ldr r0, _0809B010 @ =gUnknown_020384E6
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0809AFEA
+ movs r1, 0x8E
+ lsls r1, 5
+ adds r0, r4, r1
+ ldr r0, [r0]
+ movs r1, 0
+ bl StartSpriteAnim
+_0809AFEA:
+ bl sub_809BF74
+ movs r0, 0
+ ldrsb r0, [r5, r0]
+ cmp r0, 0x1
+ beq _0809B020
+ cmp r0, 0x1
+ bgt _0809B014
+ cmp r0, 0
+ beq _0809B034
+ b _0809B05E
+ .align 2, 0
+_0809B000: .4byte gUnknown_020384E4
+_0809B004: .4byte gUnknown_083B6DB4
+_0809B008: .4byte gUnknown_020384E5
+_0809B00C: .4byte 0x000011e1
+_0809B010: .4byte gUnknown_020384E6
+_0809B014:
+ cmp r0, 0x2
+ bne _0809B05E
+ movs r0, 0x1
+ bl sub_809A860
+ b _0809B05E
+_0809B020:
+ ldr r2, _0809B030 @ =0x000011c4
+ adds r0, r4, r2
+ ldr r0, [r0]
+ adds r0, 0x43
+ movs r1, 0xC
+ strb r1, [r0]
+ b _0809B05E
+ .align 2, 0
+_0809B030: .4byte 0x000011c4
+_0809B034:
+ ldr r0, _0809B064 @ =0x000011c4
+ adds r2, r4, r0
+ ldr r3, [r2]
+ ldrb r1, [r3, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x8
+ orrs r0, r1
+ strb r0, [r3, 0x5]
+ ldr r0, [r2]
+ adds r0, 0x43
+ movs r1, 0x14
+ strb r1, [r0]
+ ldr r1, [r2]
+ adds r1, 0x3E
+ ldrb r2, [r1]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1]
+_0809B05E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809B064: .4byte 0x000011c4
+ thumb_func_end sub_809AFB8
+
+ thumb_func_start sub_809B068
+sub_809B068: @ 809B068
+ push {lr}
+ ldr r0, _0809B078 @ =gUnknown_020384E6
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0809B07C
+ movs r3, 0
+ b _0809B08A
+ .align 2, 0
+_0809B078: .4byte gUnknown_020384E6
+_0809B07C:
+ bl CalculatePlayerPartyCount
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x5
+ bls _0809B08A
+ movs r3, 0x5
+_0809B08A:
+ ldr r0, _0809B0B8 @ =gUnknown_083B6DB4
+ ldr r2, [r0]
+ movs r1, 0x8E
+ lsls r1, 5
+ adds r0, r2, r1
+ ldr r0, [r0]
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0809B0AA
+ ldr r0, _0809B0BC @ =0x000011e3
+ adds r1, r2, r0
+ movs r0, 0x1
+ strb r0, [r1]
+_0809B0AA:
+ movs r0, 0x1
+ adds r1, r3, 0
+ bl sub_809AF18
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809B0B8: .4byte gUnknown_083B6DB4
+_0809B0BC: .4byte 0x000011e3
+ thumb_func_end sub_809B068
+
+ thumb_func_start sub_809B0C0
+sub_809B0C0: @ 809B0C0
+ push {lr}
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ movs r0, 0
+ bl sub_809AF18
+ pop {r0}
+ bx r0
+ thumb_func_end sub_809B0C0
+
+ thumb_func_start sub_809B0D4
+sub_809B0D4: @ 809B0D4
+ ldr r1, _0809B0DC @ =gUnknown_020384EA
+ movs r0, 0
+ strb r0, [r1]
+ bx lr
+ .align 2, 0
+_0809B0DC: .4byte gUnknown_020384EA
+ thumb_func_end sub_809B0D4
+
+ thumb_func_start sub_809B0E0
+sub_809B0E0: @ 809B0E0
+ ldr r0, _0809B0EC @ =gUnknown_020384EA
+ ldr r1, _0809B0F0 @ =gUnknown_020384E5
+ ldrb r1, [r1]
+ strb r1, [r0]
+ bx lr
+ .align 2, 0
+_0809B0EC: .4byte gUnknown_020384EA
+_0809B0F0: .4byte gUnknown_020384E5
+ thumb_func_end sub_809B0E0
+
+ thumb_func_start sub_809B0F4
+sub_809B0F4: @ 809B0F4
+ ldr r0, _0809B0FC @ =gUnknown_020384EA
+ ldrb r0, [r0]
+ bx lr
+ .align 2, 0
+_0809B0FC: .4byte gUnknown_020384EA
+ thumb_func_end sub_809B0F4
+
+ thumb_func_start sub_809B100
+sub_809B100: @ 809B100
+ lsls r0, 24
+ ldr r1, _0809B120 @ =gUnknown_083B6DB4
+ ldr r1, [r1]
+ ldr r2, _0809B124 @ =0x000012a4
+ adds r3, r1, r2
+ ldr r2, _0809B128 @ =gUnknown_083BBBC8
+ lsrs r0, 22
+ adds r0, r2
+ ldr r0, [r0]
+ str r0, [r3]
+ ldr r0, _0809B12C @ =0x000012a8
+ adds r1, r0
+ movs r0, 0
+ strb r0, [r1]
+ bx lr
+ .align 2, 0
+_0809B120: .4byte gUnknown_083B6DB4
+_0809B124: .4byte 0x000012a4
+_0809B128: .4byte gUnknown_083BBBC8
+_0809B12C: .4byte 0x000012a8
+ thumb_func_end sub_809B100
+
+ thumb_func_start sub_809B130
+sub_809B130: @ 809B130
+ push {lr}
+ ldr r0, _0809B148 @ =gUnknown_083B6DB4
+ ldr r0, [r0]
+ ldr r1, _0809B14C @ =0x000012a4
+ adds r0, r1
+ ldr r0, [r0]
+ bl _call_via_r0
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0809B148: .4byte gUnknown_083B6DB4
+_0809B14C: .4byte 0x000012a4
+ thumb_func_end sub_809B130
+
+ thumb_func_start sub_809B150
+sub_809B150: @ 809B150
+ push {r4,r5,lr}
+ ldr r0, _0809B16C @ =gUnknown_083B6DB4
+ ldr r5, [r0]
+ ldr r0, _0809B170 @ =0x000012a8
+ adds r4, r5, r0
+ ldrb r0, [r4]
+ cmp r0, 0x1
+ beq _0809B1A0
+ cmp r0, 0x1
+ bgt _0809B174
+ cmp r0, 0
+ beq _0809B17E
+ b _0809B1CE
+ .align 2, 0
+_0809B16C: .4byte gUnknown_083B6DB4
+_0809B170: .4byte 0x000012a8
+_0809B174:
+ cmp r0, 0x2
+ beq _0809B1BE
+ cmp r0, 0x3
+ beq _0809B186
+ b _0809B1CE
+_0809B17E:
+ ldr r0, _0809B18C @ =gUnknown_020384E6
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0809B190
+_0809B186:
+ movs r0, 0
+ b _0809B1D0
+ .align 2, 0
+_0809B18C: .4byte gUnknown_020384E6
+_0809B190:
+ movs r1, 0x8E
+ lsls r1, 5
+ adds r0, r5, r1
+ ldr r0, [r0]
+ movs r1, 0x2
+ bl StartSpriteAnim
+ b _0809B1C8
+_0809B1A0:
+ bl sub_809B324
+ lsls r0, 24
+ cmp r0, 0
+ bne _0809B1CE
+ movs r1, 0x8E
+ lsls r1, 5
+ adds r0, r5, r1
+ ldr r0, [r0]
+ movs r1, 0x3
+ bl StartSpriteAnim
+ bl sub_809B384
+ b _0809B1C8
+_0809B1BE:
+ bl sub_809B358
+ lsls r0, 24
+ cmp r0, 0
+ bne _0809B1CE
+_0809B1C8:
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+_0809B1CE:
+ movs r0, 0x1
+_0809B1D0:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809B150
+
+ thumb_func_start sub_809B1D8
+sub_809B1D8: @ 809B1D8
+ push {r4,r5,lr}
+ ldr r0, _0809B1F4 @ =gUnknown_083B6DB4
+ ldr r4, [r0]
+ ldr r0, _0809B1F8 @ =0x000012a8
+ adds r5, r4, r0
+ ldrb r0, [r5]
+ cmp r0, 0x1
+ beq _0809B220
+ cmp r0, 0x1
+ bgt _0809B1FC
+ cmp r0, 0
+ beq _0809B202
+ b _0809B244
+ .align 2, 0
+_0809B1F4: .4byte gUnknown_083B6DB4
+_0809B1F8: .4byte 0x000012a8
+_0809B1FC:
+ cmp r0, 0x2
+ beq _0809B240
+ b _0809B244
+_0809B202:
+ bl sub_809B324
+ lsls r0, 24
+ cmp r0, 0
+ bne _0809B244
+ movs r1, 0x8E
+ lsls r1, 5
+ adds r0, r4, r1
+ ldr r0, [r0]
+ movs r1, 0x2
+ bl StartSpriteAnim
+ bl sub_809B3E0
+ b _0809B238
+_0809B220:
+ bl sub_809B358
+ lsls r0, 24
+ cmp r0, 0
+ bne _0809B244
+ movs r1, 0x8E
+ lsls r1, 5
+ adds r0, r4, r1
+ ldr r0, [r0]
+ movs r1, 0
+ bl StartSpriteAnim
+_0809B238:
+ ldrb r0, [r5]
+ adds r0, 0x1
+ strb r0, [r5]
+ b _0809B244
+_0809B240:
+ movs r0, 0
+ b _0809B246
+_0809B244:
+ movs r0, 0x1
+_0809B246:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809B1D8
+
+ thumb_func_start sub_809B24C
+sub_809B24C: @ 809B24C
+ push {r4,r5,lr}
+ ldr r0, _0809B268 @ =gUnknown_083B6DB4
+ ldr r4, [r0]
+ ldr r0, _0809B26C @ =0x000012a8
+ adds r5, r4, r0
+ ldrb r0, [r5]
+ cmp r0, 0x1
+ beq _0809B2E0
+ cmp r0, 0x1
+ bgt _0809B270
+ cmp r0, 0
+ beq _0809B276
+ b _0809B31C
+ .align 2, 0
+_0809B268: .4byte gUnknown_083B6DB4
+_0809B26C: .4byte 0x000012a8
+_0809B270:
+ cmp r0, 0x2
+ beq _0809B318
+ b _0809B31C
+_0809B276:
+ ldr r0, _0809B290 @ =gUnknown_020384E4
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0
+ beq _0809B298
+ cmp r0, 0x1
+ bne _0809B318
+ ldr r2, _0809B294 @ =0x000012a9
+ adds r1, r4, r2
+ movs r0, 0xE
+ b _0809B2A0
+ .align 2, 0
+_0809B290: .4byte gUnknown_020384E4
+_0809B294: .4byte 0x000012a9
+_0809B298:
+ bl get_preferred_box
+ ldr r2, _0809B2D0 @ =0x000012a9
+ adds r1, r4, r2
+_0809B2A0:
+ strb r0, [r1]
+ ldr r0, _0809B2D4 @ =gUnknown_083B6DB4
+ ldr r4, [r0]
+ movs r1, 0x8E
+ lsls r1, 5
+ adds r0, r4, r1
+ ldr r0, [r0]
+ movs r1, 0x2
+ bl StartSpriteAnim
+ ldr r2, _0809B2D0 @ =0x000012a9
+ adds r0, r4, r2
+ ldrb r0, [r0]
+ ldr r1, _0809B2D8 @ =gUnknown_020384E5
+ ldrb r1, [r1]
+ bl sub_80996B0
+ ldr r0, _0809B2DC @ =0x000012a8
+ adds r4, r0
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ b _0809B31C
+ .align 2, 0
+_0809B2D0: .4byte 0x000012a9
+_0809B2D4: .4byte gUnknown_083B6DB4
+_0809B2D8: .4byte gUnknown_020384E5
+_0809B2DC: .4byte 0x000012a8
+_0809B2E0:
+ bl sub_809971C
+ lsls r0, 24
+ cmp r0, 0
+ bne _0809B31C
+ movs r1, 0x8E
+ lsls r1, 5
+ adds r0, r4, r1
+ ldr r0, [r0]
+ movs r1, 0x3
+ bl StartSpriteAnim
+ ldr r2, _0809B310 @ =0x000012a9
+ adds r0, r4, r2
+ ldrb r0, [r0]
+ ldr r1, _0809B314 @ =gUnknown_020384E5
+ ldrb r1, [r1]
+ bl diegohint1
+ ldrb r0, [r5]
+ adds r0, 0x1
+ strb r0, [r5]
+ b _0809B31C
+ .align 2, 0
+_0809B310: .4byte 0x000012a9
+_0809B314: .4byte gUnknown_020384E5
+_0809B318:
+ movs r0, 0
+ b _0809B31E
+_0809B31C:
+ movs r0, 0x1
+_0809B31E:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809B24C
+
+ thumb_func_start sub_809B324
+sub_809B324: @ 809B324
+ push {lr}
+ ldr r0, _0809B348 @ =gUnknown_083B6DB4
+ ldr r0, [r0]
+ movs r1, 0x8E
+ lsls r1, 5
+ adds r0, r1
+ ldr r1, [r0]
+ movs r2, 0x26
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ beq _0809B33E
+ cmp r0, 0x8
+ beq _0809B34C
+_0809B33E:
+ ldrh r0, [r1, 0x26]
+ adds r0, 0x1
+ strh r0, [r1, 0x26]
+ b _0809B350
+ .align 2, 0
+_0809B348: .4byte gUnknown_083B6DB4
+_0809B34C:
+ movs r0, 0
+ b _0809B352
+_0809B350:
+ movs r0, 0x1
+_0809B352:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809B324
+
+ thumb_func_start sub_809B358
+sub_809B358: @ 809B358
+ push {lr}
+ ldr r0, _0809B378 @ =gUnknown_083B6DB4
+ ldr r0, [r0]
+ movs r1, 0x8E
+ lsls r1, 5
+ adds r0, r1
+ ldr r1, [r0]
+ movs r2, 0x26
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ beq _0809B37C
+ ldrh r0, [r1, 0x26]
+ subs r0, 0x1
+ strh r0, [r1, 0x26]
+ movs r0, 0x1
+ b _0809B37E
+ .align 2, 0
+_0809B378: .4byte gUnknown_083B6DB4
+_0809B37C:
+ movs r0, 0
+_0809B37E:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809B358
+
+ thumb_func_start sub_809B384
+sub_809B384: @ 809B384
+ push {r4,lr}
+ ldr r0, _0809B3AC @ =gUnknown_020384E4
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0
+ beq _0809B3B4
+ cmp r0, 0x1
+ bne _0809B3D2
+ ldr r4, _0809B3B0 @ =gUnknown_020384E5
+ ldrb r1, [r4]
+ movs r0, 0xE
+ bl sub_809B44C
+ ldrb r1, [r4]
+ movs r0, 0
+ bl sub_8099584
+ b _0809B3CC
+ .align 2, 0
+_0809B3AC: .4byte gUnknown_020384E4
+_0809B3B0: .4byte gUnknown_020384E5
+_0809B3B4:
+ bl get_preferred_box
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r4, _0809B3D8 @ =gUnknown_020384E5
+ ldrb r1, [r4]
+ bl sub_809B44C
+ ldrb r1, [r4]
+ movs r0, 0x1
+ bl sub_8099584
+_0809B3CC:
+ ldr r1, _0809B3DC @ =gUnknown_020384E6
+ movs r0, 0x1
+ strb r0, [r1]
+_0809B3D2:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809B3D8: .4byte gUnknown_020384E5
+_0809B3DC: .4byte gUnknown_020384E6
+ thumb_func_end sub_809B384
+
+ thumb_func_start sub_809B3E0
+sub_809B3E0: @ 809B3E0
+ push {r4,r5,lr}
+ ldr r0, _0809B408 @ =gUnknown_020384E4
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0
+ beq _0809B410
+ cmp r0, 0x1
+ bne _0809B432
+ ldr r4, _0809B40C @ =gUnknown_020384E5
+ ldrb r1, [r4]
+ movs r0, 0xE
+ bl diegohint2
+ ldrb r1, [r4]
+ movs r0, 0xE
+ bl sub_809960C
+ b _0809B42C
+ .align 2, 0
+_0809B408: .4byte gUnknown_020384E4
+_0809B40C: .4byte gUnknown_020384E5
+_0809B410:
+ bl get_preferred_box
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r5, _0809B438 @ =gUnknown_020384E5
+ ldrb r1, [r5]
+ adds r0, r4, 0
+ bl diegohint2
+ ldrb r1, [r5]
+ adds r0, r4, 0
+ bl sub_809960C
+_0809B42C:
+ ldr r1, _0809B43C @ =gUnknown_020384E6
+ movs r0, 0
+ strb r0, [r1]
+_0809B432:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809B438: .4byte gUnknown_020384E5
+_0809B43C: .4byte gUnknown_020384E6
+ thumb_func_end sub_809B3E0
+
+ thumb_func_start sub_809B440
+sub_809B440: @ 809B440
+ push {lr}
+ bl sub_809BF74
+ pop {r0}
+ bx r0
+ thumb_func_end sub_809B440
+
+ thumb_func_start sub_809B44C
+sub_809B44C: @ 809B44C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r1, 24
+ lsrs r5, r1, 24
+ cmp r4, 0xE
+ bne _0809B488
+ ldr r0, _0809B478 @ =gUnknown_083B6DB4
+ ldr r0, [r0]
+ ldr r1, _0809B47C @ =0x000025b4
+ adds r0, r1
+ ldr r3, _0809B480 @ =gPlayerParty
+ ldr r1, _0809B484 @ =gUnknown_020384E5
+ movs r2, 0
+ ldrsb r2, [r1, r2]
+ movs r1, 0x64
+ muls r1, r2
+ adds r1, r3
+ movs r2, 0x64
+ bl memcpy
+ b _0809B4AA
+ .align 2, 0
+_0809B478: .4byte gUnknown_083B6DB4
+_0809B47C: .4byte 0x000025b4
+_0809B480: .4byte gPlayerParty
+_0809B484: .4byte gUnknown_020384E5
+_0809B488:
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 5
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 4
+ ldr r2, _0809B4C0 @ =gPokemonStorage + 0x4
+ adds r1, r2
+ adds r0, r1
+ ldr r1, _0809B4C4 @ =gUnknown_083B6DB4
+ ldr r1, [r1]
+ ldr r2, _0809B4C8 @ =0x000025b4
+ adds r1, r2
+ bl sub_803B4B4
+_0809B4AA:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_809B548
+ ldr r0, _0809B4CC @ =gUnknown_020384E7
+ strb r4, [r0]
+ ldr r0, _0809B4D0 @ =gUnknown_020384E8
+ strb r5, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809B4C0: .4byte gPokemonStorage + 0x4
+_0809B4C4: .4byte gUnknown_083B6DB4
+_0809B4C8: .4byte 0x000025b4
+_0809B4CC: .4byte gUnknown_020384E7
+_0809B4D0: .4byte gUnknown_020384E8
+ thumb_func_end sub_809B44C
+
+ thumb_func_start diegohint2
+diegohint2: @ 809B4D4
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r1, 24
+ lsrs r5, r1, 24
+ cmp r6, 0xE
+ bne _0809B508
+ ldr r1, _0809B4FC @ =gPlayerParty
+ movs r0, 0x64
+ muls r0, r5
+ adds r0, r1
+ ldr r1, _0809B500 @ =gUnknown_083B6DB4
+ ldr r1, [r1]
+ ldr r2, _0809B504 @ =0x000025b4
+ adds r1, r2
+ movs r2, 0x64
+ bl memcpy
+ b _0809B536
+ .align 2, 0
+_0809B4FC: .4byte gPlayerParty
+_0809B500: .4byte gUnknown_083B6DB4
+_0809B504: .4byte 0x000025b4
+_0809B508:
+ ldr r0, _0809B53C @ =gUnknown_083B6DB4
+ ldr r4, [r0]
+ ldr r0, _0809B540 @ =0x000025b4
+ adds r4, r0
+ adds r0, r4, 0
+ bl pokemon_restore_pp
+ ldr r3, _0809B544 @ =gPokemonStorage
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 4
+ lsls r2, r6, 2
+ adds r2, r6
+ lsls r1, r2, 4
+ subs r1, r2
+ lsls r1, 5
+ adds r0, r1
+ adds r0, r3
+ adds r0, 0x4
+ adds r1, r4, 0
+ movs r2, 0x50
+ bl memcpy
+_0809B536:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809B53C: .4byte gUnknown_083B6DB4
+_0809B540: .4byte 0x000025b4
+_0809B544: .4byte gPokemonStorage
+ thumb_func_end diegohint2
+
+ thumb_func_start sub_809B548
+sub_809B548: @ 809B548
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r2, r1, 24
+ cmp r0, 0xE
+ bne _0809B568
+ movs r0, 0x64
+ muls r0, r2
+ ldr r1, _0809B564 @ =gPlayerParty
+ adds r0, r1
+ bl ZeroMonData
+ b _0809B582
+ .align 2, 0
+_0809B564: .4byte gPlayerParty
+_0809B568:
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 5
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 4
+ ldr r2, _0809B588 @ =gPokemonStorage + 0x4
+ adds r1, r2
+ adds r0, r1
+ bl ZeroBoxMonData
+_0809B582:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809B588: .4byte gPokemonStorage + 0x4
+ thumb_func_end sub_809B548
+
+ thumb_func_start diegohint1
+diegohint1: @ 809B58C
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r1, 24
+ lsrs r6, r1, 24
+ cmp r5, 0xE
+ bne _0809B5C0
+ ldr r0, _0809B5B4 @ =gUnknown_083B6DB4
+ ldr r0, [r0]
+ ldr r1, _0809B5B8 @ =0x00002618
+ adds r0, r1
+ ldr r2, _0809B5BC @ =gPlayerParty
+ movs r1, 0x64
+ muls r1, r6
+ adds r1, r2
+ movs r2, 0x64
+ bl memcpy
+ b _0809B5E2
+ .align 2, 0
+_0809B5B4: .4byte gUnknown_083B6DB4
+_0809B5B8: .4byte 0x00002618
+_0809B5BC: .4byte gPlayerParty
+_0809B5C0:
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 5
+ lsls r1, r6, 2
+ adds r1, r6
+ lsls r1, 4
+ ldr r2, _0809B614 @ =gPokemonStorage + 0x4
+ adds r1, r2
+ adds r0, r1
+ ldr r1, _0809B618 @ =gUnknown_083B6DB4
+ ldr r1, [r1]
+ ldr r2, _0809B61C @ =0x00002618
+ adds r1, r2
+ bl sub_803B4B4
+_0809B5E2:
+ adds r0, r5, 0
+ adds r1, r6, 0
+ bl diegohint2
+ ldr r0, _0809B618 @ =gUnknown_083B6DB4
+ ldr r1, [r0]
+ ldr r0, _0809B620 @ =0x000025b4
+ adds r4, r1, r0
+ ldr r2, _0809B61C @ =0x00002618
+ adds r1, r2
+ adds r0, r4, 0
+ movs r2, 0x64
+ bl memcpy
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_809C04C
+ ldr r0, _0809B624 @ =gUnknown_020384E7
+ strb r5, [r0]
+ ldr r0, _0809B628 @ =gUnknown_020384E8
+ strb r6, [r0]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809B614: .4byte gPokemonStorage + 0x4
+_0809B618: .4byte gUnknown_083B6DB4
+_0809B61C: .4byte 0x00002618
+_0809B620: .4byte 0x000025b4
+_0809B624: .4byte gUnknown_020384E7
+_0809B628: .4byte gUnknown_020384E8
+ thumb_func_end diegohint1
+
+ thumb_func_start sub_809B62C
+sub_809B62C: @ 809B62C
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ adds r0, r6, 0
+ bl sub_8095B24
+ lsls r0, 16
+ lsrs r4, r0, 16
+ asrs r0, 16
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ bne _0809B64A
+ movs r0, 0
+ b _0809B6AC
+_0809B64A:
+ ldr r5, _0809B668 @ =gUnknown_020384E6
+ ldrb r0, [r5]
+ cmp r0, 0
+ beq _0809B66C
+ lsls r4, 24
+ lsrs r1, r4, 24
+ adds r0, r6, 0
+ bl diegohint2
+ bl sub_8099480
+ movs r0, 0
+ strb r0, [r5]
+ b _0809B686
+ .align 2, 0
+_0809B668: .4byte gUnknown_020384E6
+_0809B66C:
+ ldr r5, _0809B6B4 @ =gUnknown_020384E5
+ ldrb r1, [r5]
+ movs r0, 0xE
+ bl sub_809B44C
+ lsls r4, 24
+ lsrs r1, r4, 24
+ adds r0, r6, 0
+ bl diegohint2
+ ldrb r0, [r5]
+ bl sub_8099520
+_0809B686:
+ bl get_preferred_box
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r6, r0
+ bne _0809B698
+ lsrs r0, r4, 24
+ bl sub_8098D20
+_0809B698:
+ ldr r0, _0809B6B8 @ =gUnknown_083B6DB4
+ ldr r0, [r0]
+ movs r1, 0x8E
+ lsls r1, 5
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x1
+ bl StartSpriteAnim
+ movs r0, 0x1
+_0809B6AC:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0809B6B4: .4byte gUnknown_020384E5
+_0809B6B8: .4byte gUnknown_083B6DB4
+ thumb_func_end sub_809B62C
+
+ thumb_func_start sub_809B6BC
+sub_809B6BC: @ 809B6BC
+ push {lr}
+ ldr r0, _0809B6D8 @ =gUnknown_083B6DB4
+ ldr r0, [r0]
+ movs r1, 0x8E
+ lsls r1, 5
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0
+ bl StartSpriteAnim
+ bl sub_809BF74
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809B6D8: .4byte gUnknown_083B6DB4
+ thumb_func_end sub_809B6BC
+
+ thumb_func_start sub_809B6DC
+sub_809B6DC: @ 809B6DC
+ push {lr}
+ ldr r0, _0809B6EC @ =gUnknown_020384E6
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0809B6F0
+ movs r2, 0x2
+ b _0809B700
+ .align 2, 0
+_0809B6EC: .4byte gUnknown_020384E6
+_0809B6F0:
+ ldr r0, _0809B720 @ =gUnknown_020384E4
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ movs r2, 0x1
+ eors r1, r2
+ negs r0, r1
+ orrs r0, r1
+ lsrs r2, r0, 31
+_0809B700:
+ ldr r0, _0809B724 @ =gUnknown_020384E5
+ ldrb r1, [r0]
+ adds r0, r2, 0
+ bl sub_809981C
+ ldr r0, _0809B728 @ =gUnknown_083B6DB4
+ ldr r1, [r0]
+ ldr r2, _0809B72C @ =0x000026e4
+ adds r0, r1, r2
+ ldr r2, _0809B730 @ =0x000011fa
+ adds r1, r2
+ bl StringCopy
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809B720: .4byte gUnknown_020384E4
+_0809B724: .4byte gUnknown_020384E5
+_0809B728: .4byte gUnknown_083B6DB4
+_0809B72C: .4byte 0x000026e4
+_0809B730: .4byte 0x000011fa
+ thumb_func_end sub_809B6DC
+
+ thumb_func_start sub_809B734
+sub_809B734: @ 809B734
+ push {lr}
+ bl sub_80998D8
+ lsls r0, 24
+ cmp r0, 0
+ beq _0809B744
+ movs r0, 0x1
+ b _0809B758
+_0809B744:
+ ldr r0, _0809B75C @ =gUnknown_083B6DB4
+ ldr r0, [r0]
+ movs r1, 0x8E
+ lsls r1, 5
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0
+ bl StartSpriteAnim
+ movs r0, 0
+_0809B758:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0809B75C: .4byte gUnknown_083B6DB4
+ thumb_func_end sub_809B734
+
+ thumb_func_start sub_809B760
+sub_809B760: @ 809B760
+ push {lr}
+ bl sub_8099920
+ ldr r1, _0809B774 @ =gUnknown_020384E6
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _0809B778
+ movs r0, 0
+ strb r0, [r1]
+ b _0809B79E
+ .align 2, 0
+_0809B774: .4byte gUnknown_020384E6
+_0809B778:
+ ldr r0, _0809B788 @ =gUnknown_020384E4
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x1
+ bne _0809B78C
+ movs r2, 0xE
+ b _0809B794
+ .align 2, 0
+_0809B788: .4byte gUnknown_020384E4
+_0809B78C:
+ bl get_preferred_box
+ lsls r0, 24
+ lsrs r2, r0, 24
+_0809B794:
+ ldr r0, _0809B7A8 @ =gUnknown_020384E5
+ ldrb r1, [r0]
+ adds r0, r2, 0
+ bl sub_809B548
+_0809B79E:
+ bl sub_809BF74
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809B7A8: .4byte gUnknown_020384E5
+ thumb_func_end sub_809B760
+
+ thumb_func_start sub_809B7AC
+sub_809B7AC: @ 809B7AC
+ push {lr}
+ ldr r0, _0809B7CC @ =gUnknown_020384E6
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0809B7C8
+ ldr r0, _0809B7D0 @ =gUnknown_083B6DB4
+ ldr r0, [r0]
+ movs r1, 0x8E
+ lsls r1, 5
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x3
+ bl StartSpriteAnim
+_0809B7C8:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809B7CC: .4byte gUnknown_020384E6
+_0809B7D0: .4byte gUnknown_083B6DB4
+ thumb_func_end sub_809B7AC
+
+ thumb_func_start sub_809B7D4
+sub_809B7D4: @ 809B7D4
+ push {r4-r6,lr}
+ ldr r0, _0809B804 @ =gUnknown_020384E6
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0809B81C
+ ldr r0, _0809B808 @ =gUnknown_083B6DB4
+ ldr r4, [r0]
+ ldr r1, _0809B80C @ =0x00002618
+ adds r0, r4, r1
+ ldr r2, _0809B810 @ =0x000025b4
+ adds r1, r4, r2
+ movs r2, 0x64
+ bl memcpy
+ ldr r0, _0809B814 @ =0x00002682
+ adds r1, r4, r0
+ movs r0, 0xFF
+ strb r0, [r1]
+ ldr r1, _0809B818 @ =0x00002683
+ adds r4, r1
+ movs r0, 0x1
+ negs r0, r0
+ strb r0, [r4]
+ b _0809B8A6
+ .align 2, 0
+_0809B804: .4byte gUnknown_020384E6
+_0809B808: .4byte gUnknown_083B6DB4
+_0809B80C: .4byte 0x00002618
+_0809B810: .4byte 0x000025b4
+_0809B814: .4byte 0x00002682
+_0809B818: .4byte 0x00002683
+_0809B81C:
+ ldr r0, _0809B84C @ =gUnknown_020384E4
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x1
+ bne _0809B864
+ ldr r0, _0809B850 @ =gUnknown_083B6DB4
+ ldr r4, [r0]
+ ldr r2, _0809B854 @ =0x00002618
+ adds r0, r4, r2
+ ldr r3, _0809B858 @ =gPlayerParty
+ ldr r1, _0809B85C @ =gUnknown_020384E5
+ movs r2, 0
+ ldrsb r2, [r1, r2]
+ movs r1, 0x64
+ muls r1, r2
+ adds r1, r3
+ movs r2, 0x64
+ bl memcpy
+ ldr r0, _0809B860 @ =0x00002682
+ adds r4, r0
+ movs r0, 0xE
+ b _0809B896
+ .align 2, 0
+_0809B84C: .4byte gUnknown_020384E4
+_0809B850: .4byte gUnknown_083B6DB4
+_0809B854: .4byte 0x00002618
+_0809B858: .4byte gPlayerParty
+_0809B85C: .4byte gUnknown_020384E5
+_0809B860: .4byte 0x00002682
+_0809B864:
+ ldr r5, _0809B8FC @ =gPokemonStorage
+ ldrb r0, [r5]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 5
+ ldr r1, _0809B900 @ =gUnknown_020384E5
+ movs r2, 0
+ ldrsb r2, [r1, r2]
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 4
+ adds r2, r5, 0x4
+ adds r1, r2
+ adds r0, r1
+ ldr r1, _0809B904 @ =gUnknown_083B6DB4
+ ldr r4, [r1]
+ ldr r2, _0809B908 @ =0x00002618
+ adds r1, r4, r2
+ bl sub_803B4B4
+ ldrb r0, [r5]
+ ldr r1, _0809B90C @ =0x00002682
+ adds r4, r1
+_0809B896:
+ strb r0, [r4]
+ ldr r0, _0809B904 @ =gUnknown_083B6DB4
+ ldr r0, [r0]
+ ldr r1, _0809B900 @ =gUnknown_020384E5
+ ldrb r1, [r1]
+ ldr r2, _0809B910 @ =0x00002683
+ adds r0, r2
+ strb r1, [r0]
+_0809B8A6:
+ ldr r0, _0809B904 @ =gUnknown_083B6DB4
+ ldr r6, [r0]
+ ldr r0, _0809B914 @ =0x0000267e
+ adds r4, r6, r0
+ movs r0, 0
+ strb r0, [r4]
+ ldr r1, _0809B918 @ =0x0000267f
+ adds r5, r6, r1
+ strb r0, [r5]
+ ldr r0, _0809B91C @ =0x00002686
+ adds r2, r6, r0
+ movs r0, 0x39
+ strh r0, [r2]
+ ldr r0, _0809B920 @ =0x00002688
+ adds r1, r6, r0
+ ldr r0, _0809B924 @ =0x00000123
+ strh r0, [r1]
+ ldr r0, _0809B928 @ =0x0000268a
+ adds r1, r6, r0
+ ldr r0, _0809B92C @ =0x00000163
+ strh r0, [r1]
+ ldr r1, _0809B908 @ =0x00002618
+ adds r0, r6, r1
+ movs r1, 0x50
+ bl GetMonData
+ lsls r0, 16
+ lsrs r1, r0, 16
+ movs r2, 0x1
+ ands r1, r2
+ strb r1, [r4]
+ lsrs r0, 17
+ movs r1, 0x1
+ ands r0, r1
+ strb r0, [r5]
+ ldrh r0, [r4]
+ cmp r0, 0
+ beq _0809B934
+ ldr r2, _0809B930 @ =0x0000267d
+ adds r1, r6, r2
+ movs r0, 0
+ strb r0, [r1]
+ b _0809B940
+ .align 2, 0
+_0809B8FC: .4byte gPokemonStorage
+_0809B900: .4byte gUnknown_020384E5
+_0809B904: .4byte gUnknown_083B6DB4
+_0809B908: .4byte 0x00002618
+_0809B90C: .4byte 0x00002682
+_0809B910: .4byte 0x00002683
+_0809B914: .4byte 0x0000267e
+_0809B918: .4byte 0x0000267f
+_0809B91C: .4byte 0x00002686
+_0809B920: .4byte 0x00002688
+_0809B924: .4byte 0x00000123
+_0809B928: .4byte 0x0000268a
+_0809B92C: .4byte 0x00000163
+_0809B930: .4byte 0x0000267d
+_0809B934:
+ ldr r2, _0809B954 @ =0x0000267d
+ adds r0, r6, r2
+ strb r1, [r0]
+ subs r2, 0x1
+ adds r0, r6, r2
+ strb r1, [r0]
+_0809B940:
+ ldr r0, _0809B958 @ =gUnknown_083B6DB4
+ ldr r0, [r0]
+ ldr r1, _0809B95C @ =0x00002684
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809B954: .4byte 0x0000267d
+_0809B958: .4byte gUnknown_083B6DB4
+_0809B95C: .4byte 0x00002684
+ thumb_func_end sub_809B7D4
+
+ thumb_func_start sub_809B960
+sub_809B960: @ 809B960
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r0, _0809B988 @ =gUnknown_083B6DB4
+ ldr r2, [r0]
+ ldr r3, _0809B98C @ =0x0000267d
+ adds r1, r2, r3
+ ldrb r1, [r1]
+ mov r12, r0
+ cmp r1, 0
+ beq _0809B994
+ ldr r7, _0809B990 @ =0x0000267c
+ adds r0, r2, r7
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ b _0809BB5C
+ .align 2, 0
+_0809B988: .4byte gUnknown_083B6DB4
+_0809B98C: .4byte 0x0000267d
+_0809B990: .4byte 0x0000267c
+_0809B994:
+ ldr r1, _0809B9A4 @ =0x00002684
+ adds r0, r2, r1
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _0809B9A8
+ cmp r0, 0x1
+ beq _0809BA84
+ b _0809BB58
+ .align 2, 0
+_0809B9A4: .4byte 0x00002684
+_0809B9A8:
+ movs r5, 0
+ movs r6, 0
+_0809B9AC:
+ mov r2, r12
+ ldr r4, [r2]
+ ldr r3, _0809BA28 @ =0x00002682
+ adds r0, r4, r3
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0xE
+ bne _0809B9CC
+ ldr r7, _0809BA2C @ =0x00002683
+ adds r0, r4, r7
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, r5
+ beq _0809BA02
+_0809B9CC:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0809BA30 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0809BA34 @ =0x00002686
+ adds r2, r4, r1
+ movs r1, 0x50
+ bl GetMonData
+ lsls r0, 16
+ lsrs r3, r0, 16
+ movs r0, 0x1
+ ands r0, r3
+ cmp r0, 0
+ beq _0809B9F0
+ ldr r2, _0809BA38 @ =0x0000267e
+ adds r0, r4, r2
+ strb r6, [r0]
+_0809B9F0:
+ movs r0, 0x2
+ ands r3, r0
+ ldr r7, _0809BA3C @ =gUnknown_083B6DB4
+ mov r12, r7
+ cmp r3, 0
+ beq _0809BA02
+ ldr r1, _0809BA40 @ =0x0000267f
+ adds r0, r4, r1
+ strb r6, [r0]
+_0809BA02:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x5
+ bls _0809B9AC
+ mov r3, r12
+ ldr r2, [r3]
+ ldr r7, _0809BA38 @ =0x0000267e
+ adds r0, r2, r7
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _0809BA4C
+ ldr r1, _0809BA44 @ =0x0000267d
+ adds r0, r2, r1
+ movs r1, 0x1
+ strb r1, [r0]
+ ldr r3, _0809BA48 @ =0x0000267c
+ b _0809BB54
+ .align 2, 0
+_0809BA28: .4byte 0x00002682
+_0809BA2C: .4byte 0x00002683
+_0809BA30: .4byte gPlayerParty
+_0809BA34: .4byte 0x00002686
+_0809BA38: .4byte 0x0000267e
+_0809BA3C: .4byte gUnknown_083B6DB4
+_0809BA40: .4byte 0x0000267f
+_0809BA44: .4byte 0x0000267d
+_0809BA48: .4byte 0x0000267c
+_0809BA4C:
+ movs r7, 0x9A
+ lsls r7, 6
+ adds r0, r2, r7
+ movs r1, 0
+ strb r1, [r0]
+ ldr r3, _0809BA68 @ =0x00002681
+ adds r0, r2, r3
+ strb r1, [r0]
+ adds r7, 0x4
+ adds r1, r2, r7
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _0809BB58
+ .align 2, 0
+_0809BA68: .4byte 0x00002681
+_0809BA6C:
+ ldr r1, _0809BA7C @ =0x0000267d
+ adds r0, r2, r1
+ movs r1, 0x1
+ strb r1, [r0]
+ ldr r7, _0809BA80 @ =0x0000267c
+ adds r0, r2, r7
+ strb r3, [r0]
+ b _0809BB3C
+ .align 2, 0
+_0809BA7C: .4byte 0x0000267d
+_0809BA80: .4byte 0x0000267c
+_0809BA84:
+ movs r5, 0
+ mov r9, r12
+ adds r4, r2, 0
+ movs r0, 0x9A
+ lsls r0, 6
+ adds r6, r4, r0
+ ldr r1, _0809BB6C @ =0x0000267f
+ adds r1, r4
+ mov r8, r1
+ ldr r2, _0809BB70 @ =0x0000ffff
+ mov r10, r2
+_0809BA9A:
+ movs r0, 0
+ ldrsb r0, [r6, r0]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 5
+ ldr r3, _0809BB74 @ =0x00002681
+ adds r1, r4, r3
+ movs r2, 0
+ ldrsb r2, [r1, r2]
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 4
+ ldr r2, _0809BB78 @ =gPokemonStorage + 0x4
+ adds r1, r2
+ adds r0, r1
+ movs r1, 0x50
+ ldr r7, _0809BB7C @ =0x00002686
+ adds r2, r4, r7
+ bl GetBoxMonData
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0
+ beq _0809BB00
+ ldr r1, _0809BB80 @ =0x00002682
+ adds r0, r4, r1
+ ldrh r0, [r0]
+ ldrh r2, [r6]
+ mov r1, r10
+ ands r1, r0
+ mov r0, r10
+ ands r0, r2
+ cmp r1, r0
+ beq _0809BB00
+ movs r0, 0x1
+ ands r0, r3
+ cmp r0, 0
+ beq _0809BAF2
+ ldr r2, _0809BB84 @ =0x0000267e
+ adds r1, r4, r2
+ movs r0, 0
+ strb r0, [r1]
+_0809BAF2:
+ movs r0, 0x2
+ ands r3, r0
+ cmp r3, 0
+ beq _0809BB00
+ movs r0, 0
+ mov r3, r8
+ strb r0, [r3]
+_0809BB00:
+ mov r7, r9
+ ldr r2, [r7]
+ ldr r0, _0809BB74 @ =0x00002681
+ adds r1, r2, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ movs r3, 0
+ strb r0, [r1]
+ lsls r0, 24
+ asrs r0, 24
+ ldr r7, _0809BB88 @ =gUnknown_083B6DB4
+ mov r12, r7
+ cmp r0, 0x1D
+ ble _0809BB32
+ strb r3, [r1]
+ movs r0, 0x9A
+ lsls r0, 6
+ adds r1, r2, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0xD
+ bgt _0809BA6C
+_0809BB32:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x4
+ bls _0809BA9A
+_0809BB3C:
+ mov r1, r12
+ ldr r2, [r1]
+ ldr r3, _0809BB84 @ =0x0000267e
+ adds r0, r2, r3
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _0809BB58
+ ldr r7, _0809BB8C @ =0x0000267d
+ adds r0, r2, r7
+ movs r1, 0x1
+ strb r1, [r0]
+ subs r3, 0x2
+_0809BB54:
+ adds r0, r2, r3
+ strb r1, [r0]
+_0809BB58:
+ movs r0, 0x1
+ negs r0, r0
+_0809BB5C:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0809BB6C: .4byte 0x0000267f
+_0809BB70: .4byte 0x0000ffff
+_0809BB74: .4byte 0x00002681
+_0809BB78: .4byte gPokemonStorage + 0x4
+_0809BB7C: .4byte 0x00002686
+_0809BB80: .4byte 0x00002682
+_0809BB84: .4byte 0x0000267e
+_0809BB88: .4byte gUnknown_083B6DB4
+_0809BB8C: .4byte 0x0000267d
+ thumb_func_end sub_809B960
+
+ thumb_func_start sub_809BB90
+sub_809BB90: @ 809BB90
+ push {lr}
+ ldr r0, _0809BBB0 @ =gUnknown_020384E6
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0809BBAA
+ ldr r0, _0809BBB4 @ =gUnknown_02038480
+ ldr r1, _0809BBB8 @ =gUnknown_083B6DB4
+ ldr r1, [r1]
+ ldr r2, _0809BBBC @ =0x000025b4
+ adds r1, r2
+ movs r2, 0x64
+ bl memcpy
+_0809BBAA:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809BBB0: .4byte gUnknown_020384E6
+_0809BBB4: .4byte gUnknown_02038480
+_0809BBB8: .4byte gUnknown_083B6DB4
+_0809BBBC: .4byte 0x000025b4
+ thumb_func_end sub_809BB90
+
+ thumb_func_start sub_809BBC0
+sub_809BBC0: @ 809BBC0
+ push {lr}
+ ldr r0, _0809BBE4 @ =gUnknown_020384E6
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0809BC08
+ ldr r0, _0809BBE8 @ =gUnknown_020384E7
+ ldrb r0, [r0]
+ cmp r0, 0xE
+ bne _0809BBF8
+ ldr r0, _0809BBEC @ =gUnknown_083B6DB4
+ ldr r0, [r0]
+ ldr r1, _0809BBF0 @ =0x000025b4
+ adds r0, r1
+ ldr r1, _0809BBF4 @ =gUnknown_02038480
+ movs r2, 0x64
+ bl memcpy
+ b _0809BC08
+ .align 2, 0
+_0809BBE4: .4byte gUnknown_020384E6
+_0809BBE8: .4byte gUnknown_020384E7
+_0809BBEC: .4byte gUnknown_083B6DB4
+_0809BBF0: .4byte 0x000025b4
+_0809BBF4: .4byte gUnknown_02038480
+_0809BBF8:
+ ldr r0, _0809BC0C @ =gUnknown_083B6DB4
+ ldr r0, [r0]
+ ldr r1, _0809BC10 @ =0x000025b4
+ adds r0, r1
+ ldr r1, _0809BC14 @ =gUnknown_02038480
+ movs r2, 0x50
+ bl memcpy
+_0809BC08:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809BC0C: .4byte gUnknown_083B6DB4
+_0809BC10: .4byte 0x000025b4
+_0809BC14: .4byte gUnknown_02038480
+ thumb_func_end sub_809BBC0
+
+ thumb_func_start sub_809BC18
+sub_809BC18: @ 809BC18
+ push {r4,r5,lr}
+ ldr r0, _0809BC48 @ =gUnknown_020384E6
+ ldrb r5, [r0]
+ cmp r5, 0
+ beq _0809BC64
+ bl sub_809BB90
+ ldr r0, _0809BC4C @ =gUnknown_083B6DB4
+ ldr r2, [r0]
+ ldr r0, _0809BC50 @ =0x00002690
+ adds r1, r2, r0
+ ldr r0, _0809BC54 @ =gUnknown_02038480
+ str r0, [r1]
+ ldr r1, _0809BC58 @ =0x0000268d
+ adds r0, r2, r1
+ movs r1, 0
+ strb r1, [r0]
+ ldr r3, _0809BC5C @ =0x0000268c
+ adds r0, r2, r3
+ strb r1, [r0]
+ ldr r0, _0809BC60 @ =0x0000268e
+ adds r2, r0
+ strb r1, [r2]
+ b _0809BCF2
+ .align 2, 0
+_0809BC48: .4byte gUnknown_020384E6
+_0809BC4C: .4byte gUnknown_083B6DB4
+_0809BC50: .4byte 0x00002690
+_0809BC54: .4byte gUnknown_02038480
+_0809BC58: .4byte 0x0000268d
+_0809BC5C: .4byte 0x0000268c
+_0809BC60: .4byte 0x0000268e
+_0809BC64:
+ ldr r0, _0809BC9C @ =gUnknown_020384E4
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x1
+ bne _0809BCBC
+ ldr r0, _0809BCA0 @ =gUnknown_083B6DB4
+ ldr r4, [r0]
+ ldr r2, _0809BCA4 @ =0x00002690
+ adds r1, r4, r2
+ ldr r0, _0809BCA8 @ =gPlayerParty
+ str r0, [r1]
+ ldr r0, _0809BCAC @ =gUnknown_020384E5
+ ldrb r1, [r0]
+ ldr r3, _0809BCB0 @ =0x0000268d
+ adds r0, r4, r3
+ strb r1, [r0]
+ bl StorageSystemGetPartySize
+ subs r0, 0x1
+ ldr r2, _0809BCB4 @ =0x0000268c
+ adds r1, r4, r2
+ strb r0, [r1]
+ ldr r3, _0809BCB8 @ =0x0000268e
+ adds r4, r3
+ strb r5, [r4]
+ b _0809BCF2
+ .align 2, 0
+_0809BC9C: .4byte gUnknown_020384E4
+_0809BCA0: .4byte gUnknown_083B6DB4
+_0809BCA4: .4byte 0x00002690
+_0809BCA8: .4byte gPlayerParty
+_0809BCAC: .4byte gUnknown_020384E5
+_0809BCB0: .4byte 0x0000268d
+_0809BCB4: .4byte 0x0000268c
+_0809BCB8: .4byte 0x0000268e
+_0809BCBC:
+ ldr r0, _0809BCF8 @ =gUnknown_083B6DB4
+ ldr r3, [r0]
+ ldr r0, _0809BCFC @ =0x00002690
+ adds r4, r3, r0
+ ldr r2, _0809BD00 @ =gPokemonStorage
+ ldrb r0, [r2]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 5
+ adds r2, 0x4
+ adds r0, r2
+ str r0, [r4]
+ ldr r0, _0809BD04 @ =gUnknown_020384E5
+ ldrb r1, [r0]
+ ldr r2, _0809BD08 @ =0x0000268d
+ adds r0, r3, r2
+ strb r1, [r0]
+ ldr r0, _0809BD0C @ =0x0000268c
+ adds r1, r3, r0
+ movs r0, 0x1D
+ strb r0, [r1]
+ ldr r1, _0809BD10 @ =0x0000268e
+ adds r3, r1
+ movs r0, 0x5
+ strb r0, [r3]
+_0809BCF2:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809BCF8: .4byte gUnknown_083B6DB4
+_0809BCFC: .4byte 0x00002690
+_0809BD00: .4byte gPokemonStorage
+_0809BD04: .4byte gUnknown_020384E5
+_0809BD08: .4byte 0x0000268d
+_0809BD0C: .4byte 0x0000268c
+_0809BD10: .4byte 0x0000268e
+ thumb_func_end sub_809BC18
+
+ thumb_func_start sub_809BD14
+sub_809BD14: @ 809BD14
+ push {lr}
+ ldr r0, _0809BD24 @ =gUnknown_020384E6
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0809BD28
+ bl sub_809BBC0
+ b _0809BD30
+ .align 2, 0
+_0809BD24: .4byte gUnknown_020384E6
+_0809BD28:
+ ldr r0, _0809BD34 @ =gUnknown_020384E5
+ ldr r1, _0809BD38 @ =0x02018000
+ ldrb r1, [r1, 0x9]
+ strb r1, [r0]
+_0809BD30:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809BD34: .4byte gUnknown_020384E5
+_0809BD38: .4byte 0x02018000
+ thumb_func_end sub_809BD14
+
+ thumb_func_start party_compaction
+party_compaction: @ 809BD3C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r7, _0809BD88 @ =0x0000ffff
+ movs r6, 0
+ movs r5, 0
+ movs r0, 0x64
+ mov r9, r0
+ ldr r1, _0809BD8C @ =gPlayerParty
+ mov r8, r1
+ subs r0, 0x65
+ mov r10, r0
+_0809BD58:
+ mov r0, r9
+ muls r0, r6
+ mov r1, r8
+ adds r4, r0, r1
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ cmp r0, 0
+ beq _0809BD90
+ cmp r6, r5
+ beq _0809BD80
+ mov r0, r9
+ muls r0, r5
+ add r0, r8
+ adds r1, r4, 0
+ movs r2, 0x64
+ bl memcpy
+_0809BD80:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ b _0809BD9A
+ .align 2, 0
+_0809BD88: .4byte 0x0000ffff
+_0809BD8C: .4byte gPlayerParty
+_0809BD90:
+ lsls r0, r7, 16
+ asrs r0, 16
+ cmp r0, r10
+ bne _0809BD9A
+ adds r7, r6, 0
+_0809BD9A:
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ cmp r6, 0x5
+ bls _0809BD58
+ lsls r7, 16
+ cmp r5, 0x5
+ bhi _0809BDC2
+ movs r6, 0x64
+ ldr r4, _0809BDD4 @ =gPlayerParty
+_0809BDAE:
+ adds r0, r5, 0
+ muls r0, r6
+ adds r0, r4
+ bl ZeroMonData
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x5
+ bls _0809BDAE
+_0809BDC2:
+ asrs r0, r7, 16
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0809BDD4: .4byte gPlayerParty
+ thumb_func_end party_compaction
+
+ thumb_func_start sub_809BDD8
+sub_809BDD8: @ 809BDD8
+ push {r4,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ mov r1, sp
+ strb r0, [r1]
+ ldr r1, _0809BE04 @ =gUnknown_083B6DB4
+ ldr r2, [r1]
+ ldr r3, _0809BE08 @ =0x000011f7
+ adds r1, r2, r3
+ strb r0, [r1]
+ ldr r0, _0809BE0C @ =gUnknown_020384E6
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0809BE14
+ ldr r1, _0809BE10 @ =0x000025b4
+ adds r0, r2, r1
+ movs r1, 0x8
+ mov r2, sp
+ bl SetMonData
+ b _0809BE68
+ .align 2, 0
+_0809BE04: .4byte gUnknown_083B6DB4
+_0809BE08: .4byte 0x000011f7
+_0809BE0C: .4byte gUnknown_020384E6
+_0809BE10: .4byte 0x000025b4
+_0809BE14:
+ ldr r4, _0809BE70 @ =gUnknown_020384E4
+ movs r0, 0
+ ldrsb r0, [r4, r0]
+ cmp r0, 0x1
+ bne _0809BE34
+ ldr r0, _0809BE74 @ =gUnknown_020384E5
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0809BE78 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x8
+ mov r2, sp
+ bl SetMonData
+_0809BE34:
+ movs r0, 0
+ ldrsb r0, [r4, r0]
+ cmp r0, 0
+ bne _0809BE68
+ bl get_preferred_box
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 5
+ ldr r1, _0809BE74 @ =gUnknown_020384E5
+ movs r2, 0
+ ldrsb r2, [r1, r2]
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 4
+ ldr r2, _0809BE7C @ =gPokemonStorage + 0x4
+ adds r1, r2
+ adds r0, r1
+ movs r1, 0x8
+ mov r2, sp
+ bl SetBoxMonData
+_0809BE68:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809BE70: .4byte gUnknown_020384E4
+_0809BE74: .4byte gUnknown_020384E5
+_0809BE78: .4byte gPlayerParty
+_0809BE7C: .4byte gPokemonStorage + 0x4
+ thumb_func_end sub_809BDD8
+
+ thumb_func_start sub_809BE80
+sub_809BE80: @ 809BE80
+ push {lr}
+ ldr r0, _0809BEA8 @ =gUnknown_020384E4
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x1
+ bne _0809BEB4
+ ldr r0, _0809BEAC @ =gUnknown_020384E6
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0809BEB4
+ ldr r0, _0809BEB0 @ =gUnknown_020384E5
+ ldrb r0, [r0]
+ bl CountAlivePartyMonsExceptOne
+ lsls r0, 24
+ cmp r0, 0
+ bne _0809BEB4
+ movs r0, 0x1
+ b _0809BEB6
+ .align 2, 0
+_0809BEA8: .4byte gUnknown_020384E4
+_0809BEAC: .4byte gUnknown_020384E6
+_0809BEB0: .4byte gUnknown_020384E5
+_0809BEB4:
+ movs r0, 0
+_0809BEB6:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809BE80
+
+ thumb_func_start sub_809BEBC
+sub_809BEBC: @ 809BEBC
+ push {lr}
+ ldr r0, _0809BF00 @ =gUnknown_020384E6
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0809BF18
+ ldr r0, _0809BF04 @ =gUnknown_020384E4
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x1
+ bne _0809BEFC
+ ldr r0, _0809BF08 @ =gUnknown_020384E5
+ ldrb r0, [r0]
+ bl CountAlivePartyMonsExceptOne
+ lsls r0, 24
+ cmp r0, 0
+ bne _0809BEFC
+ ldr r0, _0809BF0C @ =gUnknown_083B6DB4
+ ldr r1, [r0]
+ ldr r2, _0809BF10 @ =0x000011f9
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0809BF18
+ ldr r2, _0809BF14 @ =0x000025b4
+ adds r0, r1, r2
+ movs r1, 0x39
+ bl GetMonData
+ cmp r0, 0
+ beq _0809BF18
+_0809BEFC:
+ movs r0, 0x1
+ b _0809BF1A
+ .align 2, 0
+_0809BF00: .4byte gUnknown_020384E6
+_0809BF04: .4byte gUnknown_020384E4
+_0809BF08: .4byte gUnknown_020384E5
+_0809BF0C: .4byte gUnknown_083B6DB4
+_0809BF10: .4byte 0x000011f9
+_0809BF14: .4byte 0x000025b4
+_0809BF18:
+ movs r0, 0
+_0809BF1A:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809BEBC
+
+ thumb_func_start sub_809BF20
+sub_809BF20: @ 809BF20
+ ldr r0, _0809BF28 @ =gUnknown_020384E6
+ ldrb r0, [r0]
+ bx lr
+ .align 2, 0
+_0809BF28: .4byte gUnknown_020384E6
+ thumb_func_end sub_809BF20
+
+ thumb_func_start sub_809BF2C
+sub_809BF2C: @ 809BF2C
+ push {lr}
+ movs r1, 0
+ ldr r0, _0809BF44 @ =gUnknown_020384E4
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x2
+ bne _0809BF3E
+ movs r1, 0x1
+_0809BF3E:
+ adds r0, r1, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0809BF44: .4byte gUnknown_020384E4
+ thumb_func_end sub_809BF2C
+
+ thumb_func_start sub_809BF48
+sub_809BF48: @ 809BF48
+ push {lr}
+ movs r1, 0
+ ldr r0, _0809BF6C @ =gUnknown_020384E4
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x3
+ bne _0809BF66
+ ldr r0, _0809BF70 @ =gUnknown_020384E5
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x1
+ bne _0809BF66
+ movs r1, 0x1
+_0809BF66:
+ adds r0, r1, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0809BF6C: .4byte gUnknown_020384E4
+_0809BF70: .4byte gUnknown_020384E5
+ thumb_func_end sub_809BF48
+
+ thumb_func_start sub_809BF74
+sub_809BF74: @ 809BF74
+ push {r4,lr}
+ ldr r0, _0809BFA8 @ =gUnknown_083B6DB4
+ ldr r1, [r0]
+ movs r2, 0
+ ldr r3, _0809BFAC @ =gUnknown_020384E6
+ ldrb r0, [r3]
+ cmp r0, 0
+ bne _0809BF86
+ movs r2, 0x1
+_0809BF86:
+ ldr r4, _0809BFB0 @ =0x000011f6
+ adds r0, r1, r4
+ strb r2, [r0]
+ ldrb r0, [r3]
+ cmp r0, 0
+ bne _0809C018
+ ldr r0, _0809BFB4 @ =gUnknown_020384E4
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x1
+ beq _0809BFBE
+ cmp r0, 0x1
+ bgt _0809BFB8
+ cmp r0, 0
+ beq _0809BFEE
+ b _0809C018
+ .align 2, 0
+_0809BFA8: .4byte gUnknown_083B6DB4
+_0809BFAC: .4byte gUnknown_020384E6
+_0809BFB0: .4byte 0x000011f6
+_0809BFB4: .4byte gUnknown_020384E4
+_0809BFB8:
+ cmp r0, 0x3
+ bgt _0809C018
+ b _0809BFE4
+_0809BFBE:
+ ldr r1, _0809BFDC @ =gUnknown_020384E5
+ movs r0, 0
+ ldrsb r0, [r1, r0]
+ cmp r0, 0x5
+ bgt _0809BFE4
+ adds r1, r0, 0
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0809BFE0 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0
+ bl sub_809C04C
+ b _0809C018
+ .align 2, 0
+_0809BFDC: .4byte gUnknown_020384E5
+_0809BFE0: .4byte gPlayerParty
+_0809BFE4:
+ movs r0, 0
+ movs r1, 0x2
+ bl sub_809C04C
+ b _0809C018
+_0809BFEE:
+ bl get_preferred_box
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 5
+ ldr r1, _0809C020 @ =gUnknown_020384E5
+ movs r2, 0
+ ldrsb r2, [r1, r2]
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 4
+ ldr r2, _0809C024 @ =gPokemonStorage + 0x4
+ adds r1, r2
+ adds r0, r1
+ movs r1, 0x1
+ bl sub_809C04C
+_0809C018:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809C020: .4byte gUnknown_020384E5
+_0809C024: .4byte gPokemonStorage + 0x4
+ thumb_func_end sub_809BF74
+
+ thumb_func_start sub_809C028
+sub_809C028: @ 809C028
+ push {lr}
+ ldr r0, _0809C03C @ =gUnknown_020384E6
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0809C044
+ ldr r0, _0809C040 @ =gUnknown_02038480
+ movs r1, 0
+ bl sub_809C04C
+ b _0809C048
+ .align 2, 0
+_0809C03C: .4byte gUnknown_020384E6
+_0809C040: .4byte gUnknown_02038480
+_0809C044:
+ bl sub_809BF74
+_0809C048:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_809C028
+
+ thumb_func_start sub_809C04C
+sub_809C04C: @ 809C04C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ adds r7, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ movs r0, 0
+ str r0, [sp]
+ ldr r0, _0809C0FC @ =gUnknown_083B6DB4
+ ldr r6, [r0]
+ ldr r2, _0809C100 @ =0x000011f2
+ adds r2, r6
+ mov r8, r2
+ mov r0, sp
+ ldrh r0, [r0]
+ strh r0, [r2]
+ cmp r1, 0
+ bne _0809C120
+ adds r0, r7, 0
+ movs r1, 0x41
+ bl GetMonData
+ ldr r2, _0809C104 @ =0x000011f0
+ adds r1, r6, r2
+ strh r0, [r1]
+ lsls r0, 16
+ cmp r0, 0
+ bne _0809C08C
+ b _0809C1EC
+_0809C08C:
+ adds r0, r7, 0
+ movs r1, 0x2D
+ bl GetMonData
+ ldr r2, _0809C108 @ =0x000011f9
+ adds r1, r6, r2
+ strb r0, [r1]
+ ldr r0, _0809C10C @ =0x000011fa
+ adds r4, r6, r0
+ adds r0, r7, 0
+ movs r1, 0x2
+ adds r2, r4, 0
+ bl GetMonData
+ adds r0, r4, 0
+ bl StringGetEnd10
+ adds r0, r7, 0
+ movs r1, 0x38
+ bl GetMonData
+ ldr r2, _0809C110 @ =0x000011f8
+ adds r1, r6, r2
+ strb r0, [r1]
+ adds r0, r7, 0
+ movs r1, 0x8
+ bl GetMonData
+ ldr r2, _0809C114 @ =0x000011f7
+ adds r1, r6, r2
+ strb r0, [r1]
+ adds r0, r7, 0
+ movs r1, 0
+ bl GetMonData
+ ldr r2, _0809C118 @ =0x000011ec
+ adds r1, r6, r2
+ str r0, [r1]
+ adds r0, r7, 0
+ bl pokemon_get_pal
+ ldr r2, _0809C11C @ =0x000011e8
+ adds r1, r6, r2
+ str r0, [r1]
+ adds r0, r7, 0
+ bl GetMonGender
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp]
+ adds r0, r7, 0
+ movs r1, 0xC
+ bl GetMonData
+ b _0809C1B2
+ .align 2, 0
+_0809C0FC: .4byte gUnknown_083B6DB4
+_0809C100: .4byte 0x000011f2
+_0809C104: .4byte 0x000011f0
+_0809C108: .4byte 0x000011f9
+_0809C10C: .4byte 0x000011fa
+_0809C110: .4byte 0x000011f8
+_0809C114: .4byte 0x000011f7
+_0809C118: .4byte 0x000011ec
+_0809C11C: .4byte 0x000011e8
+_0809C120:
+ cmp r1, 0x1
+ bne _0809C1D4
+ adds r0, r7, 0
+ movs r1, 0x41
+ bl GetBoxMonData
+ ldr r2, _0809C1B8 @ =0x000011f0
+ adds r5, r6, r2
+ strh r0, [r5]
+ lsls r0, 16
+ cmp r0, 0
+ beq _0809C1EC
+ adds r0, r7, 0
+ movs r1, 0x1
+ bl GetBoxMonData
+ mov r9, r0
+ adds r0, r7, 0
+ movs r1, 0x2D
+ bl GetBoxMonData
+ ldr r2, _0809C1BC @ =0x000011f9
+ adds r1, r6, r2
+ strb r0, [r1]
+ ldr r0, _0809C1C0 @ =0x000011fa
+ adds r4, r6, r0
+ adds r0, r7, 0
+ movs r1, 0x2
+ adds r2, r4, 0
+ bl GetBoxMonData
+ adds r0, r4, 0
+ bl StringGetEnd10
+ adds r0, r7, 0
+ bl GetLevelFromBoxMonExp
+ ldr r2, _0809C1C4 @ =0x000011f8
+ adds r1, r6, r2
+ strb r0, [r1]
+ adds r0, r7, 0
+ movs r1, 0x8
+ bl GetBoxMonData
+ ldr r2, _0809C1C8 @ =0x000011f7
+ adds r1, r6, r2
+ strb r0, [r1]
+ adds r0, r7, 0
+ movs r1, 0
+ bl GetBoxMonData
+ adds r2, r0, 0
+ ldr r0, _0809C1CC @ =0x000011ec
+ adds r4, r6, r0
+ str r2, [r4]
+ ldrh r0, [r5]
+ mov r1, r9
+ bl species_and_otid_get_pal
+ ldr r2, _0809C1D0 @ =0x000011e8
+ adds r1, r6, r2
+ str r0, [r1]
+ ldrh r0, [r5]
+ ldr r1, [r4]
+ bl GetGenderFromSpeciesAndPersonality
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp]
+ adds r0, r7, 0
+ movs r1, 0xC
+ bl GetBoxMonData
+_0809C1B2:
+ mov r1, r8
+ strh r0, [r1]
+ b _0809C1DE
+ .align 2, 0
+_0809C1B8: .4byte 0x000011f0
+_0809C1BC: .4byte 0x000011f9
+_0809C1C0: .4byte 0x000011fa
+_0809C1C4: .4byte 0x000011f8
+_0809C1C8: .4byte 0x000011f7
+_0809C1CC: .4byte 0x000011ec
+_0809C1D0: .4byte 0x000011e8
+_0809C1D4:
+ ldr r2, _0809C220 @ =0x000011f0
+ adds r0, r6, r2
+ mov r1, sp
+ ldrh r1, [r1]
+ strh r1, [r0]
+_0809C1DE:
+ ldr r0, _0809C224 @ =gUnknown_083B6DB4
+ ldr r4, [r0]
+ ldr r2, _0809C220 @ =0x000011f0
+ adds r0, r4, r2
+ ldrh r1, [r0]
+ cmp r1, 0
+ bne _0809C23C
+_0809C1EC:
+ ldr r0, _0809C224 @ =gUnknown_083B6DB4
+ ldr r1, [r0]
+ ldr r0, _0809C228 @ =0x000011fa
+ adds r2, r1, r0
+ movs r0, 0xFF
+ strb r0, [r2]
+ ldr r0, _0809C22C @ =0x0000120f
+ adds r2, r1, r0
+ movs r0, 0x1
+ negs r0, r0
+ strb r0, [r2]
+ ldr r0, _0809C230 @ =0x00001234
+ adds r2, r1, r0
+ movs r0, 0x1
+ negs r0, r0
+ strb r0, [r2]
+ ldr r0, _0809C234 @ =0x00001259
+ adds r2, r1, r0
+ movs r0, 0x1
+ negs r0, r0
+ strb r0, [r2]
+ ldr r2, _0809C238 @ =0x0000127a
+ adds r1, r2
+ strb r0, [r1]
+ b _0809C43E
+ .align 2, 0
+_0809C220: .4byte 0x000011f0
+_0809C224: .4byte gUnknown_083B6DB4
+_0809C228: .4byte 0x000011fa
+_0809C22C: .4byte 0x0000120f
+_0809C230: .4byte 0x00001234
+_0809C234: .4byte 0x00001259
+_0809C238: .4byte 0x0000127a
+_0809C23C:
+ ldr r2, _0809C28C @ =0x000011f9
+ adds r0, r4, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0809C2A4
+ ldr r0, _0809C290 @ =0x0000120f
+ adds r7, r4, r0
+ movs r0, 0xFC
+ strb r0, [r7]
+ movs r0, 0x4
+ strb r0, [r7, 0x1]
+ movs r0, 0xF
+ strb r0, [r7, 0x2]
+ movs r0, 0
+ strb r0, [r7, 0x3]
+ movs r0, 0x1
+ strb r0, [r7, 0x4]
+ ldr r1, _0809C294 @ =0x00001214
+ adds r7, r4, r1
+ adds r2, 0x1
+ adds r1, r4, r2
+ adds r0, r7, 0
+ bl StringCopy
+ ldr r0, _0809C298 @ =0x00001234
+ adds r1, r4, r0
+ movs r0, 0xFF
+ strb r0, [r1]
+ ldr r2, _0809C29C @ =0x00001259
+ adds r1, r4, r2
+ movs r0, 0x1
+ negs r0, r0
+ strb r0, [r1]
+ ldr r0, _0809C2A0 @ =0x0000127a
+ adds r1, r4, r0
+ movs r0, 0x1
+ negs r0, r0
+ strb r0, [r1]
+ b _0809C43E
+ .align 2, 0
+_0809C28C: .4byte 0x000011f9
+_0809C290: .4byte 0x0000120f
+_0809C294: .4byte 0x00001214
+_0809C298: .4byte 0x00001234
+_0809C29C: .4byte 0x00001259
+_0809C2A0: .4byte 0x0000127a
+_0809C2A4:
+ cmp r1, 0x20
+ beq _0809C2AC
+ cmp r1, 0x1D
+ bne _0809C2B0
+_0809C2AC:
+ movs r1, 0xFF
+ str r1, [sp]
+_0809C2B0:
+ ldr r0, _0809C388 @ =gUnknown_083B6DB4
+ ldr r4, [r0]
+ ldr r2, _0809C38C @ =0x0000120f
+ adds r7, r4, r2
+ movs r0, 0xFC
+ mov r9, r0
+ strb r0, [r7]
+ movs r1, 0x4
+ mov r8, r1
+ strb r1, [r7, 0x1]
+ movs r2, 0xF
+ strb r2, [r7, 0x2]
+ movs r0, 0
+ strb r0, [r7, 0x3]
+ movs r6, 0x1
+ strb r6, [r7, 0x4]
+ ldr r1, _0809C390 @ =0x00001214
+ adds r7, r4, r1
+ ldr r2, _0809C394 @ =0x000011fa
+ adds r1, r4, r2
+ adds r0, r7, 0
+ bl StringCopy
+ ldr r0, _0809C398 @ =0x00001234
+ adds r7, r4, r0
+ mov r1, r9
+ strb r1, [r7]
+ mov r2, r8
+ strb r2, [r7, 0x1]
+ movs r0, 0xF
+ strb r0, [r7, 0x2]
+ movs r1, 0
+ strb r1, [r7, 0x3]
+ strb r6, [r7, 0x4]
+ mov r2, r9
+ strb r2, [r7, 0x5]
+ movs r0, 0x13
+ mov r10, r0
+ strb r0, [r7, 0x6]
+ movs r1, 0x7
+ strb r1, [r7, 0x7]
+ movs r0, 0xBA
+ strb r0, [r7, 0x8]
+ ldr r2, _0809C39C @ =0x0000123d
+ adds r7, r4, r2
+ ldr r1, _0809C3A0 @ =0x000011f0
+ adds r0, r4, r1
+ ldrh r1, [r0]
+ movs r0, 0xB
+ muls r1, r0
+ ldr r0, _0809C3A4 @ =gSpeciesNames
+ adds r1, r0
+ adds r0, r7, 0
+ bl StringCopy
+ adds r7, r0, 0
+ mov r2, r9
+ strb r2, [r7]
+ mov r0, r10
+ strb r0, [r7, 0x1]
+ movs r0, 0x50
+ strb r0, [r7, 0x2]
+ movs r0, 0xFF
+ strb r0, [r7, 0x3]
+ ldr r1, _0809C3A8 @ =0x00001259
+ adds r7, r4, r1
+ strb r2, [r7]
+ mov r2, r8
+ strb r2, [r7, 0x1]
+ movs r0, 0xF
+ strb r0, [r7, 0x2]
+ movs r1, 0
+ strb r1, [r7, 0x3]
+ strb r6, [r7, 0x4]
+ mov r2, r9
+ strb r2, [r7, 0x5]
+ mov r0, r10
+ strb r0, [r7, 0x6]
+ movs r6, 0x8
+ strb r6, [r7, 0x7]
+ ldr r1, _0809C3AC @ =0x00001261
+ adds r7, r4, r1
+ movs r0, 0x34
+ strb r0, [r7]
+ ldr r2, _0809C3B0 @ =0x00001262
+ adds r7, r4, r2
+ ldr r0, _0809C3B4 @ =0x000011f8
+ adds r4, r0
+ ldrb r1, [r4]
+ adds r0, r7, 0
+ movs r2, 0x22
+ movs r3, 0x1
+ bl sub_8072C14
+ adds r7, r0, 0
+ mov r1, r9
+ strb r1, [r7]
+ movs r0, 0x11
+ strb r0, [r7, 0x1]
+ strb r6, [r7, 0x2]
+ adds r7, 0x3
+ ldr r2, [sp]
+ cmp r2, 0
+ beq _0809C3B8
+ cmp r2, 0xFE
+ beq _0809C3D0
+ b _0809C3EA
+ .align 2, 0
+_0809C388: .4byte gUnknown_083B6DB4
+_0809C38C: .4byte 0x0000120f
+_0809C390: .4byte 0x00001214
+_0809C394: .4byte 0x000011fa
+_0809C398: .4byte 0x00001234
+_0809C39C: .4byte 0x0000123d
+_0809C3A0: .4byte 0x000011f0
+_0809C3A4: .4byte gSpeciesNames
+_0809C3A8: .4byte 0x00001259
+_0809C3AC: .4byte 0x00001261
+_0809C3B0: .4byte 0x00001262
+_0809C3B4: .4byte 0x000011f8
+_0809C3B8:
+ mov r0, r9
+ strb r0, [r7]
+ mov r1, r8
+ strb r1, [r7, 0x1]
+ strb r1, [r7, 0x2]
+ mov r2, sp
+ ldrb r2, [r2]
+ strb r2, [r7, 0x3]
+ movs r0, 0x5
+ strb r0, [r7, 0x4]
+ movs r0, 0xB5
+ b _0809C3E6
+_0809C3D0:
+ mov r0, r9
+ strb r0, [r7]
+ mov r1, r8
+ strb r1, [r7, 0x1]
+ movs r0, 0x6
+ strb r0, [r7, 0x2]
+ movs r2, 0
+ strb r2, [r7, 0x3]
+ movs r0, 0x7
+ strb r0, [r7, 0x4]
+ movs r0, 0xB6
+_0809C3E6:
+ strb r0, [r7, 0x5]
+ adds r7, 0x6
+_0809C3EA:
+ movs r5, 0xFF
+ strb r5, [r7]
+ ldr r0, _0809C450 @ =gUnknown_083B6DB4
+ ldr r2, [r0]
+ ldr r1, _0809C454 @ =0x0000127a
+ adds r7, r2, r1
+ ldr r0, _0809C458 @ =0x000011f2
+ adds r3, r2, r0
+ ldrh r0, [r3]
+ cmp r0, 0
+ beq _0809C43C
+ movs r4, 0xFC
+ strb r4, [r7]
+ movs r1, 0x4
+ strb r1, [r7, 0x1]
+ movs r0, 0xF
+ strb r0, [r7, 0x2]
+ movs r0, 0
+ strb r0, [r7, 0x3]
+ movs r0, 0x1
+ strb r0, [r7, 0x4]
+ ldr r0, _0809C45C @ =0x0000127f
+ adds r7, r2, r0
+ strb r4, [r7]
+ movs r0, 0x6
+ strb r0, [r7, 0x1]
+ strb r1, [r7, 0x2]
+ ldr r1, _0809C460 @ =0x00001282
+ adds r7, r2, r1
+ ldrh r0, [r3]
+ bl ItemId_GetItem
+ adds r1, r0, 0
+ adds r0, r7, 0
+ bl StringCopy
+ adds r7, r0, 0
+ strb r4, [r7]
+ movs r0, 0x7
+ strb r0, [r7, 0x1]
+ adds r7, 0x2
+_0809C43C:
+ strb r5, [r7]
+_0809C43E:
+ 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
+_0809C450: .4byte gUnknown_083B6DB4
+_0809C454: .4byte 0x0000127a
+_0809C458: .4byte 0x000011f2
+_0809C45C: .4byte 0x0000127f
+_0809C460: .4byte 0x00001282
+ thumb_func_end sub_809C04C
+
+ thumb_func_start sub_809C464
+sub_809C464: @ 809C464
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ ldr r0, _0809C4D8 @ =gUnknown_020384E4
+ ldrb r0, [r0]
+ mov r8, r0
+ ldr r2, _0809C4DC @ =gUnknown_020384E5
+ ldrb r4, [r2]
+ ldr r0, _0809C4E0 @ =gUnknown_083B6DB4
+ ldr r1, [r0]
+ ldr r0, _0809C4E4 @ =0x000011de
+ adds r7, r1, r0
+ movs r0, 0
+ strb r0, [r7]
+ ldr r3, _0809C4E8 @ =0x000011df
+ adds r5, r1, r3
+ strb r0, [r5]
+ adds r3, 0x4
+ adds r6, r1, r3
+ strb r0, [r6]
+ ldr r0, _0809C4EC @ =gMain
+ mov r12, r0
+ ldrh r1, [r0, 0x30]
+ movs r0, 0x40
+ ands r0, r1
+ adds r3, r2, 0
+ cmp r0, 0
+ beq _0809C4A0
+ b _0809C62A
+_0809C4A0:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _0809C4F0
+ movs r1, 0x1
+ mov r9, r1
+ lsls r0, r4, 24
+ movs r3, 0xC0
+ lsls r3, 19
+ adds r0, r3
+ lsrs r4, r0, 24
+ asrs r0, 24
+ cmp r0, 0x1D
+ bgt _0809C4BE
+ b _0809C648
+_0809C4BE:
+ movs r1, 0x3
+ mov r8, r1
+ subs r0, 0x1E
+ lsls r0, 24
+ asrs r0, 24
+ bl __divsi3
+ lsls r0, 24
+ lsrs r4, r0, 24
+ mov r3, r9
+ strb r3, [r7]
+ strb r3, [r6]
+ b _0809C648
+ .align 2, 0
+_0809C4D8: .4byte gUnknown_020384E4
+_0809C4DC: .4byte gUnknown_020384E5
+_0809C4E0: .4byte gUnknown_083B6DB4
+_0809C4E4: .4byte 0x000011de
+_0809C4E8: .4byte 0x000011df
+_0809C4EC: .4byte gMain
+_0809C4F0:
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _0809C524
+ movs r0, 0x1
+ mov r9, r0
+ movs r0, 0
+ ldrsb r0, [r3, r0]
+ movs r1, 0x6
+ bl __modsi3
+ lsls r0, 24
+ cmp r0, 0
+ beq _0809C514
+ lsls r0, r4, 24
+ movs r1, 0xFF
+ lsls r1, 24
+ b _0809C63C
+_0809C514:
+ movs r0, 0xFF
+ strb r0, [r5]
+ lsls r0, r4, 24
+ movs r3, 0xA0
+ lsls r3, 19
+ adds r0, r3
+ lsrs r4, r0, 24
+ b _0809C648
+_0809C524:
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _0809C554
+ movs r0, 0x1
+ mov r9, r0
+ movs r0, 0
+ ldrsb r0, [r3, r0]
+ adds r0, 0x1
+ movs r1, 0x6
+ bl __modsi3
+ cmp r0, 0
+ beq _0809C548
+ lsls r0, r4, 24
+ movs r1, 0x80
+ lsls r1, 17
+ b _0809C63C
+_0809C548:
+ mov r3, r9
+ strb r3, [r5]
+ lsls r0, r4, 24
+ movs r1, 0xFB
+ lsls r1, 24
+ b _0809C63C
+_0809C554:
+ mov r3, r12
+ ldrh r1, [r3, 0x2E]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _0809C56A
+ movs r0, 0x1
+ mov r9, r0
+ movs r1, 0x2
+ mov r8, r1
+ b _0809C646
+_0809C56A:
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0809C5D4
+ bl sub_809CAB0
+ lsls r0, 24
+ cmp r0, 0
+ beq _0809C5D4
+ ldr r0, _0809C588 @ =gUnknown_020384E9
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0809C58C
+ movs r0, 0x8
+ b _0809C658
+ .align 2, 0
+_0809C588: .4byte gUnknown_020384E9
+_0809C58C:
+ movs r0, 0
+ bl sub_809CE4C
+ subs r0, 0x1
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x4
+ bhi _0809C5D4
+ lsls r0, 2
+ ldr r1, _0809C5A8 @ =_0809C5AC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0809C5A8: .4byte _0809C5AC
+ .align 2, 0
+_0809C5AC:
+ .4byte _0809C5C0
+ .4byte _0809C5C4
+ .4byte _0809C5C8
+ .4byte _0809C5CC
+ .4byte _0809C5D0
+_0809C5C0:
+ movs r0, 0xB
+ b _0809C658
+_0809C5C4:
+ movs r0, 0xC
+ b _0809C658
+_0809C5C8:
+ movs r0, 0xD
+ b _0809C658
+_0809C5CC:
+ movs r0, 0xE
+ b _0809C658
+_0809C5D0:
+ movs r0, 0xF
+ b _0809C658
+_0809C5D4:
+ ldr r2, _0809C5E4 @ =gMain
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0809C5E8
+ movs r0, 0x10
+ b _0809C658
+ .align 2, 0
+_0809C5E4: .4byte gMain
+_0809C5E8:
+ ldr r0, _0809C600 @ =gSaveBlock2
+ ldrb r0, [r0, 0x13]
+ cmp r0, 0x1
+ bne _0809C612
+ ldrh r1, [r2, 0x2C]
+ movs r0, 0x80
+ lsls r0, 2
+ ands r0, r1
+ cmp r0, 0
+ beq _0809C604
+ movs r0, 0xA
+ b _0809C658
+ .align 2, 0
+_0809C600: .4byte gSaveBlock2
+_0809C604:
+ movs r0, 0x80
+ lsls r0, 1
+ ands r0, r1
+ cmp r0, 0
+ beq _0809C612
+ movs r0, 0x9
+ b _0809C658
+_0809C612:
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _0809C624
+ bl sub_809CD88
+ movs r0, 0
+ b _0809C658
+_0809C624:
+ movs r3, 0
+ mov r9, r3
+ b _0809C656
+_0809C62A:
+ movs r0, 0x1
+ mov r9, r0
+ movs r0, 0
+ ldrsb r0, [r2, r0]
+ cmp r0, 0x5
+ ble _0809C642
+ lsls r0, r4, 24
+ movs r1, 0xFA
+ lsls r1, 24
+_0809C63C:
+ adds r0, r1
+ lsrs r4, r0, 24
+ b _0809C648
+_0809C642:
+ movs r3, 0x2
+ mov r8, r3
+_0809C646:
+ movs r4, 0
+_0809C648:
+ mov r0, r9
+ cmp r0, 0
+ beq _0809C656
+ mov r0, r8
+ adds r1, r4, 0
+ bl sub_809AF18
+_0809C656:
+ mov r0, r9
+_0809C658:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809C464
+
+ thumb_func_start sub_809C664
+sub_809C664: @ 809C664
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r0, _0809C6D8 @ =gUnknown_020384E4
+ ldrb r0, [r0]
+ mov r10, r0
+ ldr r7, _0809C6DC @ =gUnknown_020384E5
+ ldrb r4, [r7]
+ ldr r2, _0809C6E0 @ =gUnknown_083B6DB4
+ ldr r5, [r2]
+ ldr r1, _0809C6E4 @ =0x000011df
+ adds r0, r5, r1
+ movs r1, 0
+ strb r1, [r0]
+ ldr r3, _0809C6E8 @ =0x000011de
+ adds r0, r5, r3
+ strb r1, [r0]
+ adds r3, 0x5
+ adds r0, r5, r3
+ strb r1, [r0]
+ mov r9, r1
+ mov r8, r1
+ ldr r1, _0809C6EC @ =gMain
+ ldrh r3, [r1, 0x30]
+ movs r0, 0x40
+ ands r0, r3
+ adds r6, r7, 0
+ mov r12, r2
+ adds r2, r1, 0
+ cmp r0, 0
+ beq _0809C6A8
+ b _0809C81C
+_0809C6A8:
+ movs r0, 0x80
+ ands r0, r3
+ cmp r0, 0
+ beq _0809C6F0
+ lsls r0, r4, 24
+ movs r1, 0x80
+ lsls r1, 17
+ adds r0, r1
+ lsrs r4, r0, 24
+ asrs r0, 24
+ cmp r0, 0x6
+ ble _0809C6C2
+ movs r4, 0
+_0809C6C2:
+ lsls r0, r4, 24
+ asrs r0, 24
+ movs r1, 0
+ ldrsb r1, [r6, r1]
+ cmp r0, r1
+ bne _0809C6D0
+ b _0809C83C
+_0809C6D0:
+ movs r2, 0x1
+ mov r8, r2
+ b _0809C842
+ .align 2, 0
+_0809C6D8: .4byte gUnknown_020384E4
+_0809C6DC: .4byte gUnknown_020384E5
+_0809C6E0: .4byte gUnknown_083B6DB4
+_0809C6E4: .4byte 0x000011df
+_0809C6E8: .4byte 0x000011de
+_0809C6EC: .4byte gMain
+_0809C6F0:
+ movs r0, 0x20
+ ands r0, r3
+ cmp r0, 0
+ beq _0809C714
+ ldrb r1, [r6]
+ movs r0, 0
+ ldrsb r0, [r6, r0]
+ cmp r0, 0
+ beq _0809C714
+ movs r3, 0x1
+ mov r8, r3
+ ldr r2, _0809C710 @ =0x000011e2
+ adds r0, r5, r2
+ strb r1, [r0]
+ movs r4, 0
+ b _0809C83C
+ .align 2, 0
+_0809C710: .4byte 0x000011e2
+_0809C714:
+ ldrh r1, [r2, 0x30]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _0809C748
+ movs r0, 0
+ ldrsb r0, [r6, r0]
+ cmp r0, 0
+ bne _0809C73C
+ movs r3, 0x1
+ mov r8, r3
+ mov r1, r12
+ ldr r0, [r1]
+ ldr r2, _0809C738 @ =0x000011e2
+ adds r0, r2
+ ldrb r4, [r0]
+ b _0809C83C
+ .align 2, 0
+_0809C738: .4byte 0x000011e2
+_0809C73C:
+ movs r3, 0x6
+ mov r8, r3
+ movs r0, 0
+ mov r10, r0
+ movs r4, 0
+ b _0809C83C
+_0809C748:
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0809C7D0
+ movs r0, 0
+ ldrsb r0, [r6, r0]
+ cmp r0, 0x6
+ bne _0809C76E
+ mov r1, r12
+ ldr r0, [r1]
+ ldrb r0, [r0, 0x5]
+ cmp r0, 0x1
+ bne _0809C768
+ movs r0, 0x4
+ b _0809C84C
+_0809C768:
+ movs r2, 0x1
+ mov r9, r2
+ b _0809C7D0
+_0809C76E:
+ bl sub_809CAB0
+ lsls r0, 24
+ cmp r0, 0
+ beq _0809C7D0
+ ldr r0, _0809C784 @ =gUnknown_020384E9
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0809C788
+ movs r0, 0x8
+ b _0809C84C
+ .align 2, 0
+_0809C784: .4byte gUnknown_020384E9
+_0809C788:
+ movs r0, 0
+ bl sub_809CE4C
+ subs r0, 0x1
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x4
+ bhi _0809C7D0
+ lsls r0, 2
+ ldr r1, _0809C7A4 @ =_0809C7A8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0809C7A4: .4byte _0809C7A8
+ .align 2, 0
+_0809C7A8:
+ .4byte _0809C7BC
+ .4byte _0809C7C0
+ .4byte _0809C7C4
+ .4byte _0809C7C8
+ .4byte _0809C7CC
+_0809C7BC:
+ movs r0, 0xB
+ b _0809C84C
+_0809C7C0:
+ movs r0, 0xC
+ b _0809C84C
+_0809C7C4:
+ movs r0, 0xD
+ b _0809C84C
+_0809C7C8:
+ movs r0, 0xE
+ b _0809C84C
+_0809C7CC:
+ movs r0, 0xF
+ b _0809C84C
+_0809C7D0:
+ ldr r2, _0809C7EC @ =gMain
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0809C7F8
+ ldr r0, _0809C7F0 @ =gUnknown_083B6DB4
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x5]
+ cmp r0, 0x1
+ bne _0809C7F4
+ movs r0, 0x10
+ b _0809C84C
+ .align 2, 0
+_0809C7EC: .4byte gMain
+_0809C7F0: .4byte gUnknown_083B6DB4
+_0809C7F4:
+ movs r3, 0x1
+ mov r9, r3
+_0809C7F8:
+ mov r0, r9
+ cmp r0, 0
+ beq _0809C80A
+ movs r1, 0x6
+ mov r8, r1
+ movs r2, 0
+ mov r10, r2
+ movs r4, 0
+ b _0809C83C
+_0809C80A:
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _0809C83C
+ bl sub_809CD88
+ movs r0, 0
+ b _0809C84C
+_0809C81C:
+ lsls r0, r4, 24
+ movs r3, 0xFF
+ lsls r3, 24
+ adds r0, r3
+ lsrs r4, r0, 24
+ cmp r0, 0
+ bge _0809C82C
+ movs r4, 0x6
+_0809C82C:
+ lsls r0, r4, 24
+ asrs r0, 24
+ movs r1, 0
+ ldrsb r1, [r7, r1]
+ cmp r0, r1
+ beq _0809C83C
+ movs r0, 0x1
+ mov r8, r0
+_0809C83C:
+ mov r1, r8
+ cmp r1, 0
+ beq _0809C84A
+_0809C842:
+ mov r0, r10
+ adds r1, r4, 0
+ bl sub_809AF18
+_0809C84A:
+ mov r0, r8
+_0809C84C:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809C664
+
+ thumb_func_start sub_809C85C
+sub_809C85C: @ 809C85C
+ push {r4-r6,lr}
+ ldr r0, _0809C894 @ =gUnknown_083B6DB4
+ ldr r2, [r0]
+ ldr r1, _0809C898 @ =0x000011df
+ adds r0, r2, r1
+ movs r1, 0
+ strb r1, [r0]
+ ldr r3, _0809C89C @ =0x000011de
+ adds r0, r2, r3
+ strb r1, [r0]
+ ldr r0, _0809C8A0 @ =0x000011e3
+ adds r2, r0
+ strb r1, [r2]
+ ldr r1, _0809C8A4 @ =gMain
+ ldrh r3, [r1, 0x30]
+ movs r0, 0x40
+ ands r0, r3
+ cmp r0, 0
+ bne _0809C91A
+ movs r0, 0x80
+ ands r0, r3
+ cmp r0, 0
+ beq _0809C8A8
+ movs r4, 0x1
+ movs r0, 0
+ movs r5, 0x2
+ b _0809C922
+ .align 2, 0
+_0809C894: .4byte gUnknown_083B6DB4
+_0809C898: .4byte 0x000011df
+_0809C89C: .4byte 0x000011de
+_0809C8A0: .4byte 0x000011e3
+_0809C8A4: .4byte gMain
+_0809C8A8:
+ ldrh r2, [r1, 0x2C]
+ movs r0, 0x20
+ ands r0, r2
+ cmp r0, 0
+ bne _0809C8CC
+ movs r0, 0x10
+ ands r0, r2
+ cmp r0, 0
+ bne _0809C8DE
+ ldr r0, _0809C8D0 @ =gSaveBlock2
+ ldrb r0, [r0, 0x13]
+ cmp r0, 0x1
+ bne _0809C8E2
+ movs r0, 0x80
+ lsls r0, 2
+ ands r0, r2
+ cmp r0, 0
+ beq _0809C8D4
+_0809C8CC:
+ movs r0, 0xA
+ b _0809C93E
+ .align 2, 0
+_0809C8D0: .4byte gSaveBlock2
+_0809C8D4:
+ movs r0, 0x80
+ lsls r0, 1
+ ands r0, r2
+ cmp r0, 0
+ beq _0809C8E2
+_0809C8DE:
+ movs r0, 0x9
+ b _0809C93E
+_0809C8E2:
+ ldrh r1, [r1, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0809C8FA
+ movs r0, 0
+ bl sub_809A860
+ bl sub_809CA8C
+ movs r0, 0x7
+ b _0809C93E
+_0809C8FA:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0809C906
+ movs r0, 0x10
+ b _0809C93E
+_0809C906:
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _0809C916
+ bl sub_809CD88
+ movs r0, 0
+ b _0809C93E
+_0809C916:
+ movs r4, 0
+ b _0809C93C
+_0809C91A:
+ movs r4, 0x1
+ movs r0, 0x3
+ movs r5, 0
+ strb r4, [r2]
+_0809C922:
+ cmp r4, 0
+ beq _0809C93C
+ lsls r6, r0, 24
+ cmp r0, 0x2
+ beq _0809C932
+ movs r0, 0
+ bl sub_809A860
+_0809C932:
+ lsrs r0, r6, 24
+ lsls r1, r5, 24
+ lsrs r1, 24
+ bl sub_809AF18
+_0809C93C:
+ adds r0, r4, 0
+_0809C93E:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809C85C
+
+ thumb_func_start sub_809C944
+sub_809C944: @ 809C944
+ push {r4-r7,lr}
+ ldr r0, _0809C988 @ =gUnknown_020384E4
+ ldrb r0, [r0]
+ mov r12, r0
+ ldr r7, _0809C98C @ =gUnknown_020384E5
+ ldrb r3, [r7]
+ ldr r0, _0809C990 @ =gUnknown_083B6DB4
+ ldr r1, [r0]
+ ldr r0, _0809C994 @ =0x000011df
+ adds r5, r1, r0
+ movs r0, 0
+ strb r0, [r5]
+ ldr r2, _0809C998 @ =0x000011de
+ adds r4, r1, r2
+ strb r0, [r4]
+ adds r2, 0x5
+ adds r1, r2
+ strb r0, [r1]
+ ldr r6, _0809C99C @ =gMain
+ ldrh r2, [r6, 0x30]
+ movs r0, 0x40
+ ands r0, r2
+ cmp r0, 0
+ bne _0809CA14
+ movs r0, 0x88
+ ands r0, r2
+ cmp r0, 0
+ beq _0809C9A0
+ movs r6, 0x1
+ movs r0, 0x2
+ mov r12, r0
+ movs r3, 0
+ b _0809CA2A
+ .align 2, 0
+_0809C988: .4byte gUnknown_020384E4
+_0809C98C: .4byte gUnknown_020384E5
+_0809C990: .4byte gUnknown_083B6DB4
+_0809C994: .4byte 0x000011df
+_0809C998: .4byte 0x000011de
+_0809C99C: .4byte gMain
+_0809C9A0:
+ movs r0, 0x20
+ ands r0, r2
+ cmp r0, 0
+ beq _0809C9C0
+ movs r6, 0x1
+ lsls r0, r3, 24
+ movs r1, 0xFF
+ lsls r1, 24
+ adds r0, r1
+ lsrs r3, r0, 24
+ cmp r0, 0
+ bge _0809CA2C
+ movs r0, 0xFF
+ strb r0, [r5]
+ movs r3, 0x1
+ b _0809CA2C
+_0809C9C0:
+ movs r0, 0x10
+ ands r0, r2
+ cmp r0, 0
+ beq _0809C9E0
+ movs r6, 0x1
+ lsls r0, r3, 24
+ movs r2, 0x80
+ lsls r2, 17
+ adds r0, r2
+ lsrs r3, r0, 24
+ asrs r0, 24
+ cmp r0, 0x1
+ ble _0809CA2C
+ strb r6, [r5]
+ movs r3, 0
+ b _0809CA2C
+_0809C9E0:
+ ldrh r1, [r6, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0809C9F4
+ movs r0, 0x4
+ cmp r3, 0
+ bne _0809CA3A
+ movs r0, 0x5
+ b _0809CA3A
+_0809C9F4:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0809CA00
+ movs r0, 0x10
+ b _0809CA3A
+_0809CA00:
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _0809CA10
+ bl sub_809CD88
+ movs r0, 0
+ b _0809CA3A
+_0809CA10:
+ movs r6, 0
+ b _0809CA38
+_0809CA14:
+ movs r6, 0x1
+ movs r0, 0
+ mov r12, r0
+ movs r0, 0xFF
+ strb r0, [r4]
+ movs r0, 0
+ ldrsb r0, [r7, r0]
+ movs r3, 0x1D
+ cmp r0, 0
+ bne _0809CA2A
+ movs r3, 0x18
+_0809CA2A:
+ strb r6, [r1]
+_0809CA2C:
+ cmp r6, 0
+ beq _0809CA38
+ mov r0, r12
+ adds r1, r3, 0
+ bl sub_809AF18
+_0809CA38:
+ adds r0, r6, 0
+_0809CA3A:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809C944
+
+ thumb_func_start sub_809CA40
+sub_809CA40: @ 809CA40
+ push {r4,r5,lr}
+ movs r3, 0
+ ldr r0, _0809CA6C @ =gUnknown_083BBBD4
+ ldr r1, [r0]
+ adds r4, r0, 0
+ cmp r1, 0
+ beq _0809CA84
+ ldr r5, _0809CA70 @ =gUnknown_020384E4
+_0809CA50:
+ lsls r0, r3, 3
+ adds r2, r0, r4
+ movs r1, 0x4
+ ldrsb r1, [r2, r1]
+ movs r0, 0
+ ldrsb r0, [r5, r0]
+ cmp r1, r0
+ bne _0809CA74
+ ldr r0, [r2]
+ bl _call_via_r0
+ lsls r0, 24
+ lsrs r0, 24
+ b _0809CA86
+ .align 2, 0
+_0809CA6C: .4byte gUnknown_083BBBD4
+_0809CA70: .4byte gUnknown_020384E4
+_0809CA74:
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ lsls r0, r3, 3
+ adds r0, r4
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _0809CA50
+_0809CA84:
+ movs r0, 0
+_0809CA86:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809CA40
+
+ thumb_func_start sub_809CA8C
+sub_809CA8C: @ 809CA8C
+ push {lr}
+ bl sub_809CDCC
+ movs r0, 0x9
+ bl sub_809CDEC
+ movs r0, 0xA
+ bl sub_809CDEC
+ movs r0, 0xB
+ bl sub_809CDEC
+ movs r0, 0
+ bl sub_809CDEC
+ pop {r0}
+ bx r0
+ thumb_func_end sub_809CA8C
+
+ thumb_func_start sub_809CAB0
+sub_809CAB0: @ 809CAB0
+ push {lr}
+ bl sub_809CDCC
+ bl sub_809AB8C
+ lsls r0, 16
+ lsrs r1, r0, 16
+ ldr r0, _0809CAD4 @ =gUnknown_083B6DB4
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x5]
+ cmp r0, 0x1
+ beq _0809CADE
+ cmp r0, 0x1
+ bgt _0809CAD8
+ cmp r0, 0
+ beq _0809CAEA
+ b _0809CB24
+ .align 2, 0
+_0809CAD4: .4byte gUnknown_083B6DB4
+_0809CAD8:
+ cmp r0, 0x2
+ beq _0809CAF6
+ b _0809CB24
+_0809CADE:
+ cmp r1, 0
+ beq _0809CB24
+ movs r0, 0x1
+ bl sub_809CDEC
+ b _0809CB28
+_0809CAEA:
+ cmp r1, 0
+ beq _0809CB24
+ movs r0, 0x2
+ bl sub_809CDEC
+ b _0809CB28
+_0809CAF6:
+ ldr r0, _0809CB0C @ =gUnknown_020384E6
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0809CB18
+ cmp r1, 0
+ beq _0809CB10
+ movs r0, 0x4
+ bl sub_809CDEC
+ b _0809CB28
+ .align 2, 0
+_0809CB0C: .4byte gUnknown_020384E6
+_0809CB10:
+ movs r0, 0x5
+ bl sub_809CDEC
+ b _0809CB28
+_0809CB18:
+ cmp r1, 0
+ beq _0809CB24
+ movs r0, 0x3
+ bl sub_809CDEC
+ b _0809CB28
+_0809CB24:
+ movs r0, 0
+ b _0809CB6E
+_0809CB28:
+ movs r0, 0x6
+ bl sub_809CDEC
+ ldr r0, _0809CB4C @ =gUnknown_083B6DB4
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x5]
+ cmp r0, 0x2
+ bne _0809CB5A
+ ldr r0, _0809CB50 @ =gUnknown_020384E4
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0
+ bne _0809CB54
+ movs r0, 0x2
+ bl sub_809CDEC
+ b _0809CB5A
+ .align 2, 0
+_0809CB4C: .4byte gUnknown_083B6DB4
+_0809CB50: .4byte gUnknown_020384E4
+_0809CB54:
+ movs r0, 0x1
+ bl sub_809CDEC
+_0809CB5A:
+ movs r0, 0x8
+ bl sub_809CDEC
+ movs r0, 0x7
+ bl sub_809CDEC
+ movs r0, 0
+ bl sub_809CDEC
+ movs r0, 0x1
+_0809CB6E:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809CAB0
+
+ thumb_func_start sub_809CB74
+sub_809CB74: @ 809CB74
+ ldr r1, _0809CB90 @ =gUnknown_083B6DB4
+ ldr r1, [r1]
+ movs r2, 0x8E
+ lsls r2, 5
+ adds r1, r2
+ ldr r2, [r1]
+ ldrh r2, [r2, 0x20]
+ strh r2, [r0, 0x20]
+ ldr r1, [r1]
+ ldrh r1, [r1, 0x22]
+ adds r1, 0x14
+ strh r1, [r0, 0x22]
+ bx lr
+ .align 2, 0
+_0809CB90: .4byte gUnknown_083B6DB4
+ thumb_func_end sub_809CB74
+
+ thumb_func_start unref_sub_809CB94
+unref_sub_809CB94: @ 809CB94
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _0809CBBC @ =gUnknown_020384E4
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x1
+ bne _0809CBC8
+ ldr r2, _0809CBC0 @ =gPlayerParty
+ ldr r0, _0809CBC4 @ =gUnknown_020384E5
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ movs r0, 0x64
+ muls r1, r0
+ adds r1, r2
+ adds r0, r4, 0
+ movs r2, 0x50
+ bl memcpy
+ b _0809CBF6
+ .align 2, 0
+_0809CBBC: .4byte gUnknown_020384E4
+_0809CBC0: .4byte gPlayerParty
+_0809CBC4: .4byte gUnknown_020384E5
+_0809CBC8:
+ bl get_preferred_box
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, _0809CBFC @ =gPokemonStorage
+ ldr r1, _0809CC00 @ =gUnknown_020384E5
+ movs r2, 0
+ ldrsb r2, [r1, r2]
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 4
+ lsls r2, r0, 2
+ adds r2, r0
+ lsls r0, r2, 4
+ subs r0, r2
+ lsls r0, 5
+ adds r1, r0
+ adds r1, r3
+ adds r1, 0x4
+ adds r0, r4, 0
+ movs r2, 0x50
+ bl memcpy
+_0809CBF6:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809CBFC: .4byte gPokemonStorage
+_0809CC00: .4byte gUnknown_020384E5
+ thumb_func_end unref_sub_809CB94
+
+ thumb_func_start sub_809CC04
+sub_809CC04: @ 809CC04
+ push {r4-r7,lr}
+ sub sp, 0x34
+ mov r1, sp
+ ldr r0, _0809CCB0 @ =gHandCursorSpriteSheets
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldm r0!, {r2,r3,r5}
+ stm r1!, {r2,r3,r5}
+ add r4, sp, 0x18
+ adds r1, r4, 0
+ ldr r0, _0809CCB4 @ =gHandCursorSpritePalettes
+ ldm r0!, {r2,r3,r5}
+ stm r1!, {r2,r3,r5}
+ ldm r0!, {r2,r3,r5}
+ stm r1!, {r2,r3,r5}
+ mov r0, sp
+ bl LoadSpriteSheets
+ adds r0, r4, 0
+ bl LoadSpritePalettes
+ ldr r0, _0809CCB8 @ =0x0000dac6
+ bl IndexOfSpritePaletteTag
+ ldr r1, _0809CCBC @ =gUnknown_083B6DB4
+ ldr r6, [r1]
+ ldr r4, _0809CCC0 @ =0x000011e4
+ adds r7, r6, r4
+ strb r0, [r7]
+ ldr r0, _0809CCC4 @ =0x0000dad1
+ bl IndexOfSpritePaletteTag
+ ldr r5, _0809CCC8 @ =0x000011e5
+ adds r1, r6, r5
+ strb r0, [r1]
+ ldr r0, _0809CCCC @ =gUnknown_020384E4
+ ldrb r0, [r0]
+ ldr r1, _0809CCD0 @ =gUnknown_020384E5
+ ldrb r1, [r1]
+ add r4, sp, 0x30
+ mov r5, sp
+ adds r5, 0x32
+ adds r2, r4, 0
+ adds r3, r5, 0
+ bl sub_809AACC
+ ldr r0, _0809CCD4 @ =gSpriteTemplate_83BBC70
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ movs r3, 0
+ ldrsh r2, [r5, r3]
+ movs r3, 0x6
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x40
+ beq _0809CCE4
+ movs r5, 0x8E
+ lsls r5, 5
+ adds r4, r6, r5
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ ldr r0, _0809CCD8 @ =gSprites
+ adds r1, r0
+ str r1, [r4]
+ ldr r0, _0809CCDC @ =gUnknown_020384E9
+ ldrb r0, [r0]
+ adds r0, r7, r0
+ ldrb r2, [r0]
+ lsls r2, 4
+ ldrb r3, [r1, 0x5]
+ movs r0, 0xF
+ ands r0, r3
+ orrs r0, r2
+ strb r0, [r1, 0x5]
+ ldr r0, _0809CCE0 @ =gUnknown_020384E6
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0809CCEE
+ ldr r0, [r4]
+ movs r1, 0x3
+ bl StartSpriteAnim
+ b _0809CCEE
+ .align 2, 0
+_0809CCB0: .4byte gHandCursorSpriteSheets
+_0809CCB4: .4byte gHandCursorSpritePalettes
+_0809CCB8: .4byte 0x0000dac6
+_0809CCBC: .4byte gUnknown_083B6DB4
+_0809CCC0: .4byte 0x000011e4
+_0809CCC4: .4byte 0x0000dad1
+_0809CCC8: .4byte 0x000011e5
+_0809CCCC: .4byte gUnknown_020384E4
+_0809CCD0: .4byte gUnknown_020384E5
+_0809CCD4: .4byte gSpriteTemplate_83BBC70
+_0809CCD8: .4byte gSprites
+_0809CCDC: .4byte gUnknown_020384E9
+_0809CCE0: .4byte gUnknown_020384E6
+_0809CCE4:
+ movs r0, 0x8E
+ lsls r0, 5
+ adds r1, r6, r0
+ movs r0, 0
+ str r0, [r1]
+_0809CCEE:
+ ldr r0, _0809CD00 @ =gUnknown_020384E4
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x1
+ bne _0809CD04
+ movs r3, 0xC
+ movs r5, 0x1
+ b _0809CD08
+ .align 2, 0
+_0809CD00: .4byte gUnknown_020384E4
+_0809CD04:
+ movs r3, 0x14
+ movs r5, 0x2
+_0809CD08:
+ ldr r0, _0809CD58 @ =gSpriteTemplate_83BBC88
+ movs r1, 0
+ movs r2, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x40
+ beq _0809CD6C
+ ldr r0, _0809CD5C @ =gUnknown_083B6DB4
+ ldr r0, [r0]
+ ldr r1, _0809CD60 @ =0x000011c4
+ adds r4, r0, r1
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ ldr r0, _0809CD64 @ =gSprites
+ adds r1, r0
+ str r1, [r4]
+ lsls r3, r5, 2
+ ldrb r2, [r1, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r3
+ strb r0, [r1, 0x5]
+ ldr r0, _0809CD68 @ =gUnknown_020384E4
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0
+ beq _0809CD78
+ ldr r0, [r4]
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ b _0809CD78
+ .align 2, 0
+_0809CD58: .4byte gSpriteTemplate_83BBC88
+_0809CD5C: .4byte gUnknown_083B6DB4
+_0809CD60: .4byte 0x000011c4
+_0809CD64: .4byte gSprites
+_0809CD68: .4byte gUnknown_020384E4
+_0809CD6C:
+ ldr r0, _0809CD80 @ =gUnknown_083B6DB4
+ ldr r0, [r0]
+ ldr r2, _0809CD84 @ =0x000011c4
+ adds r0, r2
+ movs r1, 0
+ str r1, [r0]
+_0809CD78:
+ add sp, 0x34
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809CD80: .4byte gUnknown_083B6DB4
+_0809CD84: .4byte 0x000011c4
+ thumb_func_end sub_809CC04
+
+ thumb_func_start sub_809CD88
+sub_809CD88: @ 809CD88
+ push {lr}
+ ldr r2, _0809CDC0 @ =gUnknown_020384E9
+ movs r1, 0
+ ldrb r0, [r2]
+ cmp r0, 0
+ bne _0809CD96
+ movs r1, 0x1
+_0809CD96:
+ strb r1, [r2]
+ ldr r0, _0809CDC4 @ =gUnknown_083B6DB4
+ ldr r0, [r0]
+ movs r3, 0x8E
+ lsls r3, 5
+ adds r1, r0, r3
+ ldr r3, [r1]
+ ldr r1, _0809CDC8 @ =0x000011e4
+ adds r0, r1
+ ldrb r2, [r2]
+ adds r0, r2
+ ldrb r1, [r0]
+ lsls r1, 4
+ ldrb r2, [r3, 0x5]
+ movs r0, 0xF
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3, 0x5]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809CDC0: .4byte gUnknown_020384E9
+_0809CDC4: .4byte gUnknown_083B6DB4
+_0809CDC8: .4byte 0x000011e4
+ thumb_func_end sub_809CD88
+
+ thumb_func_start sub_809CDCC
+sub_809CDCC: @ 809CDCC
+ ldr r0, _0809CDE0 @ =gUnknown_083B6DB4
+ ldr r0, [r0]
+ ldr r2, _0809CDE4 @ =0x000011b8
+ adds r1, r0, r2
+ movs r2, 0
+ strb r2, [r1]
+ ldr r1, _0809CDE8 @ =0x000011b9
+ adds r0, r1
+ strb r2, [r0]
+ bx lr
+ .align 2, 0
+_0809CDE0: .4byte gUnknown_083B6DB4
+_0809CDE4: .4byte 0x000011b8
+_0809CDE8: .4byte 0x000011b9
+ thumb_func_end sub_809CDCC
+
+ thumb_func_start sub_809CDEC
+sub_809CDEC: @ 809CDEC
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r0, _0809CE3C @ =gUnknown_083B6DB4
+ ldr r5, [r0]
+ ldr r0, _0809CE40 @ =0x000011b8
+ adds r4, r5, r0
+ ldrb r0, [r4]
+ cmp r0, 0x6
+ bhi _0809CE36
+ adds r1, r0, 0
+ lsls r1, 3
+ movs r2, 0x8C
+ lsls r2, 5
+ adds r1, r2
+ adds r1, r5, r1
+ ldr r2, _0809CE44 @ =gUnknown_083BBCA0
+ lsls r0, r3, 2
+ adds r0, r2
+ ldr r0, [r0]
+ str r0, [r1]
+ str r3, [r1, 0x4]
+ bl sub_8072CA4
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r0, 0x7
+ lsrs r1, 3
+ ldr r2, _0809CE48 @ =0x000011b9
+ adds r0, r5, r2
+ ldrb r2, [r0]
+ cmp r1, r2
+ bls _0809CE30
+ strb r1, [r0]
+_0809CE30:
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+_0809CE36:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809CE3C: .4byte gUnknown_083B6DB4
+_0809CE40: .4byte 0x000011b8
+_0809CE44: .4byte gUnknown_083BBCA0
+_0809CE48: .4byte 0x000011b9
+ thumb_func_end sub_809CDEC
+
+ thumb_func_start sub_809CE4C
+sub_809CE4C: @ 809CE4C
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _0809CE70 @ =gUnknown_083B6DB4
+ ldr r1, [r0]
+ ldr r3, _0809CE74 @ =0x000011b8
+ adds r0, r1, r3
+ ldrb r0, [r0]
+ cmp r2, r0
+ bcs _0809CE7C
+ lsls r0, r2, 3
+ ldr r2, _0809CE78 @ =0x00001184
+ adds r1, r2
+ adds r1, r0
+ movs r0, 0
+ ldrsb r0, [r1, r0]
+ b _0809CE80
+ .align 2, 0
+_0809CE70: .4byte gUnknown_083B6DB4
+_0809CE74: .4byte 0x000011b8
+_0809CE78: .4byte 0x00001184
+_0809CE7C:
+ movs r0, 0x1
+ negs r0, r0
+_0809CE80:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809CE4C
+
+ thumb_func_start sub_809CE84
+sub_809CE84: @ 809CE84
+ push {r4-r6,lr}
+ mov r6, r10
+ mov r5, r9
+ mov r4, r8
+ push {r4-r6}
+ sub sp, 0x8
+ ldr r0, _0809CF20 @ =gUnknown_083B6DB4
+ ldr r4, [r0]
+ ldr r0, _0809CF24 @ =0x000011b8
+ adds r0, r4
+ mov r8, r0
+ ldrb r0, [r0]
+ lsls r0, 1
+ movs r1, 0xE
+ subs r1, r0
+ ldr r3, _0809CF28 @ =0x000011bc
+ adds r6, r4, r3
+ movs r0, 0
+ mov r10, r0
+ strh r1, [r6]
+ ldr r1, _0809CF2C @ =0x000011b9
+ adds r1, r4
+ mov r9, r1
+ ldrb r1, [r1]
+ movs r0, 0x1C
+ subs r0, r1
+ subs r3, 0x2
+ adds r5, r4, r3
+ strh r0, [r5]
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r6]
+ movs r2, 0x1D
+ movs r3, 0xF
+ bl MenuDrawTextWindow
+ ldrb r0, [r5]
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r6]
+ adds r1, 0x1
+ lsls r1, 24
+ lsrs r1, 24
+ mov r3, r8
+ ldrb r2, [r3]
+ movs r3, 0x8C
+ lsls r3, 5
+ adds r4, r3
+ adds r3, r4, 0
+ bl PrintMenuItems
+ ldrb r1, [r5]
+ adds r1, 0x1
+ lsls r1, 24
+ lsrs r1, 24
+ ldrb r2, [r6]
+ adds r2, 0x1
+ lsls r2, 24
+ lsrs r2, 24
+ mov r4, r8
+ ldrb r3, [r4]
+ mov r0, r10
+ str r0, [sp]
+ mov r4, r9
+ ldrb r0, [r4]
+ str r0, [sp, 0x4]
+ movs r0, 0
+ bl InitMenu
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809CF20: .4byte gUnknown_083B6DB4
+_0809CF24: .4byte 0x000011b8
+_0809CF28: .4byte 0x000011bc
+_0809CF2C: .4byte 0x000011b9
+ thumb_func_end sub_809CE84
+
+ thumb_func_start sub_809CF30
+sub_809CF30: @ 809CF30
+ push {r4,r5,lr}
+ movs r5, 0x2
+ negs r5, r5
+ ldr r4, _0809CF6C @ =gMain
+ ldrh r1, [r4, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _0809CF86
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0809CF52
+ movs r0, 0x5
+ bl PlaySE
+ adds r5, 0x1
+_0809CF52:
+ ldrh r1, [r4, 0x2E]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0809CF70
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ negs r0, r0
+ bl MoveMenuCursor
+ b _0809CF8E
+ .align 2, 0
+_0809CF6C: .4byte gMain
+_0809CF70:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _0809CF8E
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ bl MoveMenuCursor
+ b _0809CF8E
+_0809CF86:
+ bl GetMenuCursorPos
+ lsls r0, 24
+ lsrs r5, r0, 24
+_0809CF8E:
+ movs r0, 0x2
+ negs r0, r0
+ cmp r5, r0
+ beq _0809CFB2
+ bl sub_8072DEC
+ ldr r0, _0809CFD0 @ =gUnknown_083B6DB4
+ ldr r1, [r0]
+ ldr r2, _0809CFD4 @ =0x000011ba
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ adds r2, 0x2
+ adds r1, r2
+ ldrb r1, [r1]
+ movs r2, 0x1D
+ movs r3, 0xF
+ bl MenuZeroFillWindowRect
+_0809CFB2:
+ cmp r5, 0
+ blt _0809CFC4
+ ldr r0, _0809CFD0 @ =gUnknown_083B6DB4
+ ldr r0, [r0]
+ lsls r1, r5, 3
+ ldr r2, _0809CFD8 @ =0x00001184
+ adds r0, r2
+ adds r0, r1
+ ldr r5, [r0]
+_0809CFC4:
+ lsls r0, r5, 16
+ asrs r0, 16
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0809CFD0: .4byte gUnknown_083B6DB4
+_0809CFD4: .4byte 0x000011ba
+_0809CFD8: .4byte 0x00001184
+ thumb_func_end sub_809CF30
+
+ thumb_func_start sub_809CFDC
+sub_809CFDC: @ 809CFDC
+ ldr r3, _0809CFEC @ =gUnknown_020384EC
+ str r0, [r3]
+ str r1, [r0]
+ movs r1, 0
+ strb r2, [r0, 0x5]
+ strb r1, [r0, 0x4]
+ bx lr
+ .align 2, 0
+_0809CFEC: .4byte gUnknown_020384EC
+ thumb_func_end sub_809CFDC
+
+ thumb_func_start sub_809CFF0
+sub_809CFF0: @ 809CFF0
+ push {r4,r5,lr}
+ ldr r2, _0809D030 @ =gUnknown_020384EC
+ ldr r1, [r2]
+ ldrb r0, [r1, 0x4]
+ cmp r0, 0
+ beq _0809D02A
+ movs r4, 0
+ ldrb r1, [r1, 0x4]
+ cmp r4, r1
+ bcs _0809D022
+ adds r5, r2, 0
+_0809D006:
+ ldr r0, [r5]
+ lsls r1, r4, 4
+ ldr r0, [r0]
+ adds r0, r1
+ ldr r1, [r0, 0xC]
+ bl _call_via_r1
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldr r0, [r5]
+ ldrb r0, [r0, 0x4]
+ cmp r4, r0
+ bcc _0809D006
+_0809D022:
+ ldr r0, _0809D030 @ =gUnknown_020384EC
+ ldr r1, [r0]
+ movs r0, 0
+ strb r0, [r1, 0x4]
+_0809D02A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809D030: .4byte gUnknown_020384EC
+ thumb_func_end sub_809CFF0
+
+ thumb_func_start sub_809D034
+sub_809D034: @ 809D034
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ mov r8, r0
+ mov r9, r3
+ ldr r0, [sp, 0x20]
+ ldr r3, [sp, 0x24]
+ ldr r4, [sp, 0x28]
+ ldr r5, [sp, 0x2C]
+ lsls r1, 16
+ lsrs r1, 16
+ mov r10, r1
+ lsls r2, 16
+ lsrs r6, r2, 16
+ lsls r0, 16
+ lsrs r0, 16
+ mov r12, r0
+ lsls r3, 16
+ lsrs r3, 16
+ lsls r4, 16
+ lsrs r4, 16
+ lsls r5, 16
+ lsrs r5, 16
+ ldr r0, _0809D0A4 @ =gUnknown_020384EC
+ ldr r2, [r0]
+ ldrb r0, [r2, 0x4]
+ adds r1, r0, 0
+ ldrb r7, [r2, 0x5]
+ cmp r1, r7
+ bcs _0809D0AC
+ adds r0, 0x1
+ strb r0, [r2, 0x4]
+ lsls r0, r1, 4
+ ldr r2, [r2]
+ adds r2, r0
+ lsls r0, r4, 1
+ strh r0, [r2, 0x8]
+ lsls r0, r6, 6
+ add r0, r8
+ mov r4, r10
+ lsls r1, r4, 1
+ adds r0, r1
+ str r0, [r2, 0x4]
+ lsls r0, r3, 6
+ add r0, r9
+ mov r7, r12
+ lsls r1, r7, 1
+ adds r0, r1
+ str r0, [r2]
+ strh r5, [r2, 0xA]
+ ldr r0, _0809D0A8 @ =sub_809D0BC
+ str r0, [r2, 0xC]
+ movs r0, 0x1
+ b _0809D0AE
+ .align 2, 0
+_0809D0A4: .4byte gUnknown_020384EC
+_0809D0A8: .4byte sub_809D0BC
+_0809D0AC:
+ movs r0, 0
+_0809D0AE:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809D034
+
+ thumb_func_start sub_809D0BC
+sub_809D0BC: @ 809D0BC
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ ldr r6, [r0]
+ ldr r5, [r0, 0x4]
+ ldrh r7, [r0, 0xA]
+ ldrh r2, [r0, 0x8]
+ movs r4, 0
+ cmp r4, r7
+ bcs _0809D0F2
+ lsrs r2, 1
+ mov r8, r2
+ ldr r0, _0809D100 @ =0x001fffff
+ mov r9, r0
+_0809D0DA:
+ adds r0, r6, 0
+ adds r1, r5, 0
+ mov r2, r8
+ mov r3, r9
+ ands r2, r3
+ bl CpuSet
+ adds r5, 0x40
+ adds r6, 0x40
+ adds r4, 0x1
+ cmp r4, r7
+ bcc _0809D0DA
+_0809D0F2:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809D100: .4byte 0x001fffff
+ thumb_func_end sub_809D0BC
+
+ thumb_func_start sub_809D104
+sub_809D104: @ 809D104
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r5, [sp, 0x18]
+ ldr r4, [sp, 0x1C]
+ ldr r6, [sp, 0x20]
+ mov r8, r6
+ ldr r6, [sp, 0x24]
+ lsls r1, 16
+ lsls r2, 16
+ lsrs r2, 16
+ lsls r5, 16
+ lsls r4, 16
+ mov r7, r8
+ lsls r7, 16
+ lsls r6, 16
+ lsrs r6, 16
+ lsrs r4, 10
+ adds r3, r4
+ lsrs r5, 15
+ adds r5, r3, r5
+ lsls r3, r2, 6
+ adds r3, r0, r3
+ lsrs r1, 15
+ adds r4, r3, r1
+ adds r2, r6
+ lsls r2, 6
+ adds r6, r0, r2
+ lsrs r2, r7, 15
+ cmp r4, r6
+ bcs _0809D15C
+ lsrs r7, r2, 1
+ ldr r0, _0809D168 @ =0x001fffff
+ mov r8, r0
+_0809D148:
+ adds r0, r5, 0
+ adds r1, r4, 0
+ mov r2, r8
+ ands r2, r7
+ bl CpuSet
+ adds r4, 0x40
+ adds r5, 0x40
+ cmp r4, r6
+ bcc _0809D148
+_0809D15C:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809D168: .4byte 0x001fffff
+ thumb_func_end sub_809D104
+
+ thumb_func_start sub_809D16C
+sub_809D16C: @ 809D16C
+ push {r4-r7,lr}
+ mov r12, r0
+ ldr r0, [sp, 0x14]
+ lsls r1, 16
+ lsrs r6, r1, 16
+ lsls r2, 16
+ lsrs r4, r2, 16
+ lsls r3, 16
+ lsrs r3, 16
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldr r0, _0809D1B4 @ =gUnknown_020384EC
+ ldr r1, [r0]
+ ldrb r0, [r1, 0x4]
+ adds r2, r0, 0
+ ldrb r7, [r1, 0x5]
+ cmp r2, r7
+ bcs _0809D1BC
+ adds r0, 0x1
+ strb r0, [r1, 0x4]
+ lsls r0, r2, 4
+ ldr r1, [r1]
+ adds r1, r0
+ lsls r0, r3, 1
+ strh r0, [r1, 0x8]
+ lsls r0, r4, 5
+ adds r0, r6
+ lsls r0, 1
+ add r0, r12
+ str r0, [r1, 0x4]
+ strh r5, [r1, 0xA]
+ ldr r0, _0809D1B8 @ =sub_809D1C4
+ str r0, [r1, 0xC]
+ movs r0, 0x1
+ b _0809D1BE
+ .align 2, 0
+_0809D1B4: .4byte gUnknown_020384EC
+_0809D1B8: .4byte sub_809D1C4
+_0809D1BC:
+ movs r0, 0
+_0809D1BE:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809D16C
+
+ thumb_func_start sub_809D1C4
+sub_809D1C4: @ 809D1C4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ adds r6, r0, 0
+ movs r0, 0
+ ldrh r1, [r6, 0xA]
+ cmp r0, r1
+ bcs _0809D252
+ movs r7, 0x80
+ lsls r7, 5
+ mov r5, sp
+ ldr r2, _0809D210 @ =0x040000d4
+ mov r8, r2
+ movs r1, 0x81
+ lsls r1, 24
+ mov r10, r1
+_0809D1EA:
+ ldr r2, [r6, 0x4]
+ ldrh r3, [r6, 0x8]
+ mov r12, r2
+ adds r0, 0x1
+ mov r9, r0
+ cmp r3, r7
+ bhi _0809D214
+ movs r0, 0
+ strh r0, [r5]
+ mov r2, sp
+ mov r0, r8
+ str r2, [r0]
+ mov r1, r12
+ str r1, [r0, 0x4]
+ lsrs r0, r3, 1
+ mov r2, r10
+ orrs r0, r2
+ mov r1, r8
+ b _0809D23C
+ .align 2, 0
+_0809D210: .4byte 0x040000d4
+_0809D214:
+ movs r4, 0
+ strh r4, [r5]
+ ldr r1, _0809D264 @ =0x040000d4
+ mov r0, sp
+ str r0, [r1]
+ str r2, [r1, 0x4]
+ ldr r0, _0809D268 @ =0x81000800
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ adds r2, r7
+ subs r3, r7
+ cmp r3, r7
+ bhi _0809D214
+ strh r4, [r5]
+ mov r0, sp
+ str r0, [r1]
+ str r2, [r1, 0x4]
+ lsrs r0, r3, 1
+ mov r2, r10
+ orrs r0, r2
+_0809D23C:
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ mov r0, r12
+ adds r0, 0x40
+ str r0, [r6, 0x4]
+ mov r1, r9
+ lsls r0, r1, 16
+ lsrs r0, 16
+ ldrh r2, [r6, 0xA]
+ cmp r0, r2
+ bcc _0809D1EA
+_0809D252:
+ 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
+_0809D264: .4byte 0x040000d4
+_0809D268: .4byte 0x81000800
+ thumb_func_end sub_809D1C4
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/pokemon_summary_screen.s b/asm/pokemon_summary_screen.s
new file mode 100644
index 000000000..25144558d
--- /dev/null
+++ b/asm/pokemon_summary_screen.s
@@ -0,0 +1,8776 @@
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_809D844
+sub_809D844: @ 809D844
+ push {lr}
+ bl RunTasks
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl UpdatePaletteFade
+ pop {r0}
+ bx r0
+ thumb_func_end sub_809D844
+
+ thumb_func_start sub_809D85C
+sub_809D85C: @ 809D85C
+ push {lr}
+ ldr r1, _0809D8A0 @ =REG_BG1HOFS
+ ldr r0, _0809D8A4 @ =gUnknown_030042C0
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, _0809D8A8 @ =gUnknown_030041B4
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, _0809D8AC @ =gUnknown_03004288
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, _0809D8B0 @ =gUnknown_03004280
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, _0809D8B4 @ =gUnknown_030041B0
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, _0809D8B8 @ =gUnknown_030041B8
+ ldrh r0, [r0]
+ strh r0, [r1]
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl TransferPlttBuffer
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809D8A0: .4byte REG_BG1HOFS
+_0809D8A4: .4byte gUnknown_030042C0
+_0809D8A8: .4byte gUnknown_030041B4
+_0809D8AC: .4byte gUnknown_03004288
+_0809D8B0: .4byte gUnknown_03004280
+_0809D8B4: .4byte gUnknown_030041B0
+_0809D8B8: .4byte gUnknown_030041B8
+ thumb_func_end sub_809D85C
+
+ thumb_func_start ShowPokemonSummaryScreen
+ShowPokemonSummaryScreen: @ 809D8BC
+ push {r4-r7,lr}
+ ldr r4, [sp, 0x14]
+ lsls r4, 24
+ lsrs r7, r4, 24
+ ldr r6, _0809D904 @ =gPaletteFade
+ ldrb r4, [r6, 0x8]
+ movs r5, 0x80
+ orrs r4, r5
+ strb r4, [r6, 0x8]
+ ldr r5, _0809D908 @ =0x02018000
+ str r0, [r5]
+ movs r4, 0
+ strb r7, [r5, 0x8]
+ strb r1, [r5, 0x9]
+ strb r2, [r5, 0xA]
+ str r3, [r5, 0x4]
+ adds r0, r5, 0
+ adds r0, 0x74
+ strb r4, [r0]
+ adds r1, r5, 0
+ adds r1, 0x79
+ movs r0, 0x4
+ strb r0, [r1]
+ adds r0, r5, 0
+ adds r0, 0x7C
+ movs r1, 0
+ strh r4, [r0]
+ adds r0, 0x4
+ strb r1, [r0]
+ subs r0, 0x5
+ strb r1, [r0]
+ cmp r7, 0x4
+ bls _0809D90C
+ movs r0, 0x1
+ strb r0, [r5, 0xE]
+ b _0809D90E
+ .align 2, 0
+_0809D904: .4byte gPaletteFade
+_0809D908: .4byte 0x02018000
+_0809D90C:
+ strb r1, [r5, 0xE]
+_0809D90E:
+ cmp r7, 0x6
+ bhi _0809D9D6
+ lsls r0, r7, 2
+ ldr r1, _0809D91C @ =_0809D920
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0809D91C: .4byte _0809D920
+ .align 2, 0
+_0809D920:
+ .4byte _0809D93C
+ .4byte _0809D9BC
+ .4byte _0809D992
+ .4byte _0809D9D6
+ .4byte _0809D966
+ .4byte _0809D93C
+ .4byte _0809D9BC
+_0809D93C:
+ adds r0, r5, 0
+ adds r0, 0x75
+ movs r1, 0
+ strb r1, [r0]
+ adds r2, r5, 0
+ adds r2, 0x76
+ movs r0, 0x3
+ strb r0, [r2]
+ adds r0, r5, 0
+ adds r0, 0x77
+ strb r1, [r0]
+ adds r0, 0x1
+ strb r1, [r0]
+ adds r1, r5, 0
+ adds r1, 0x7E
+ movs r0, 0x1
+ strb r0, [r1]
+ adds r1, 0x1
+ movs r0, 0x7
+ strb r0, [r1]
+ b _0809D9D6
+_0809D966:
+ adds r0, r5, 0
+ adds r0, 0x75
+ movs r1, 0
+ strb r1, [r0]
+ adds r2, r5, 0
+ adds r2, 0x76
+ movs r0, 0x3
+ strb r0, [r2]
+ adds r0, r5, 0
+ adds r0, 0x77
+ strb r1, [r0]
+ adds r0, 0x1
+ strb r1, [r0]
+ adds r0, 0x6
+ movs r1, 0x1
+ strb r1, [r0]
+ adds r2, 0x9
+ movs r0, 0x7
+ strb r0, [r2]
+ adds r0, r5, 0
+ adds r0, 0x7B
+ b _0809D9D4
+_0809D992:
+ adds r1, r5, 0
+ adds r1, 0x75
+ movs r3, 0
+ movs r0, 0x2
+ strb r0, [r1]
+ adds r0, r5, 0
+ adds r0, 0x76
+ movs r2, 0x3
+ strb r2, [r0]
+ adds r0, 0x1
+ movs r1, 0x1
+ strb r1, [r0]
+ adds r0, 0x1
+ strb r1, [r0]
+ adds r0, 0x6
+ strb r2, [r0]
+ adds r0, 0x1
+ strb r3, [r0]
+ subs r0, 0x6
+ strb r3, [r0]
+ b _0809D9D6
+_0809D9BC:
+ adds r1, r5, 0
+ adds r1, 0x75
+ movs r0, 0x2
+ strb r0, [r1]
+ adds r1, 0x1
+ movs r0, 0x3
+ strb r0, [r1]
+ adds r0, r5, 0
+ adds r0, 0x77
+ movs r1, 0x1
+ strb r1, [r0]
+ adds r0, 0x1
+_0809D9D4:
+ strb r1, [r0]
+_0809D9D6:
+ adds r0, r5, 0
+ adds r0, 0x75
+ ldrb r0, [r0]
+ strb r0, [r5, 0xB]
+ ldr r0, _0809D9EC @ =sub_809DE44
+ bl SetMainCallback2
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809D9EC: .4byte sub_809DE44
+ thumb_func_end ShowPokemonSummaryScreen
+
+ thumb_func_start sub_809D9F0
+sub_809D9F0: @ 809D9F0
+ push {r4,r5,lr}
+ sub sp, 0x4
+ ldr r5, [sp, 0x10]
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r2, 24
+ lsrs r2, 24
+ lsls r5, 16
+ lsrs r5, 16
+ movs r4, 0x2
+ str r4, [sp]
+ bl ShowPokemonSummaryScreen
+ ldr r0, _0809DA18 @ =0x02018000
+ adds r0, 0x7C
+ strh r5, [r0]
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809DA18: .4byte 0x02018000
+ thumb_func_end sub_809D9F0
+
+ thumb_func_start sub_809DA1C
+sub_809DA1C: @ 809DA1C
+ push {lr}
+ ldr r0, _0809DA30 @ =0x02018000
+ ldrb r0, [r0, 0x8]
+ cmp r0, 0x6
+ bhi _0809DA78
+ lsls r0, 2
+ ldr r1, _0809DA34 @ =_0809DA38
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0809DA30: .4byte 0x02018000
+_0809DA34: .4byte _0809DA38
+ .align 2, 0
+_0809DA38:
+ .4byte _0809DA54
+ .4byte _0809DA6C
+ .4byte _0809DA64
+ .4byte _0809DA64
+ .4byte _0809DA5C
+ .4byte _0809DA54
+ .4byte _0809DA6C
+_0809DA54:
+ ldr r0, _0809DA58 @ =SummaryScreenHandleKeyInput
+ b _0809DA6E
+ .align 2, 0
+_0809DA58: .4byte SummaryScreenHandleKeyInput
+_0809DA5C:
+ ldr r0, _0809DA60 @ =SummaryScreenHandleKeyInput
+ b _0809DA6E
+ .align 2, 0
+_0809DA60: .4byte SummaryScreenHandleKeyInput
+_0809DA64:
+ ldr r0, _0809DA68 @ =sub_809EB40
+ b _0809DA6E
+ .align 2, 0
+_0809DA68: .4byte sub_809EB40
+_0809DA6C:
+ ldr r0, _0809DA7C @ =sub_809E3FC
+_0809DA6E:
+ movs r1, 0
+ bl CreateTask
+ ldr r1, _0809DA80 @ =0x02018000
+ strb r0, [r1, 0xF]
+_0809DA78:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809DA7C: .4byte sub_809E3FC
+_0809DA80: .4byte 0x02018000
+ thumb_func_end sub_809DA1C
+
+ thumb_func_start sub_809DA84
+sub_809DA84: @ 809DA84
+ push {r4-r7,lr}
+ sub sp, 0x8
+ ldr r1, _0809DAA4 @ =gMain
+ ldr r2, _0809DAA8 @ =0x0000043c
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ mov r12, r1
+ cmp r0, 0x16
+ bls _0809DA98
+ b _0809DE00
+_0809DA98:
+ lsls r0, 2
+ ldr r1, _0809DAAC @ =_0809DAB0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0809DAA4: .4byte gMain
+_0809DAA8: .4byte 0x0000043c
+_0809DAAC: .4byte _0809DAB0
+ .align 2, 0
+_0809DAB0:
+ .4byte _0809DB0C
+ .4byte _0809DB18
+ .4byte _0809DB2C
+ .4byte _0809DB32
+ .4byte _0809DB80
+ .4byte _0809DB94
+ .4byte _0809DBA0
+ .4byte _0809DBBC
+ .4byte _0809DBC8
+ .4byte _0809DBDC
+ .4byte _0809DC2C
+ .4byte _0809DC48
+ .4byte _0809DC5C
+ .4byte _0809DC90
+ .4byte _0809DCB0
+ .4byte _0809DCC4
+ .4byte _0809DCF8
+ .4byte _0809DD02
+ .4byte _0809DD30
+ .4byte _0809DD3C
+ .4byte _0809DD68
+ .4byte _0809DD98
+ .4byte _0809DDE0
+_0809DB0C:
+ movs r0, 0
+ bl SetVBlankCallback
+ bl ResetSpriteData
+ b _0809DDE8
+_0809DB18:
+ bl remove_some_task
+ ldr r1, _0809DB24 @ =gMain
+ ldr r2, _0809DB28 @ =0x0000043c
+ adds r1, r2
+ b _0809DDEE
+ .align 2, 0
+_0809DB24: .4byte gMain
+_0809DB28: .4byte 0x0000043c
+_0809DB2C:
+ bl FreeAllSpritePalettes
+ b _0809DDE8
+_0809DB32:
+ movs r2, 0xC0
+ lsls r2, 19
+ movs r3, 0x80
+ lsls r3, 9
+ movs r5, 0
+ ldr r1, _0809DB74 @ =0x040000d4
+ movs r4, 0x80
+ lsls r4, 5
+ ldr r6, _0809DB78 @ =0x85000400
+ movs r7, 0x85
+ lsls r7, 24
+_0809DB48:
+ str r5, [sp, 0x4]
+ add r0, sp, 0x4
+ str r0, [r1]
+ str r2, [r1, 0x4]
+ str r6, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ adds r2, r4
+ subs r3, r4
+ cmp r3, r4
+ bhi _0809DB48
+ str r5, [sp, 0x4]
+ add r0, sp, 0x4
+ str r0, [r1]
+ str r2, [r1, 0x4]
+ lsrs r0, r3, 2
+ orrs r0, r7
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ ldr r1, _0809DB7C @ =0x0000043c
+ add r1, r12
+ b _0809DDEE
+ .align 2, 0
+_0809DB74: .4byte 0x040000d4
+_0809DB78: .4byte 0x85000400
+_0809DB7C: .4byte 0x0000043c
+_0809DB80:
+ bl sub_809DE64
+ ldr r1, _0809DB8C @ =gMain
+ ldr r2, _0809DB90 @ =0x0000043c
+ adds r1, r2
+ b _0809DDEE
+ .align 2, 0
+_0809DB8C: .4byte gMain
+_0809DB90: .4byte 0x0000043c
+_0809DB94:
+ ldr r0, _0809DB9C @ =gWindowConfig_81E6E6C
+ bl SetUpWindowConfig
+ b _0809DDE8
+ .align 2, 0
+_0809DB9C: .4byte gWindowConfig_81E6E6C
+_0809DBA0:
+ ldr r0, _0809DBB0 @ =gWindowConfig_81E6E6C
+ bl MultistepInitMenuWindowBegin
+ ldr r1, _0809DBB4 @ =gMain
+ ldr r2, _0809DBB8 @ =0x0000043c
+ adds r1, r2
+ b _0809DDEE
+ .align 2, 0
+_0809DBB0: .4byte gWindowConfig_81E6E6C
+_0809DBB4: .4byte gMain
+_0809DBB8: .4byte 0x0000043c
+_0809DBBC:
+ bl MultistepInitMenuWindowContinue
+ cmp r0, 0
+ bne _0809DBC6
+ b _0809DE38
+_0809DBC6:
+ b _0809DDE8
+_0809DBC8:
+ bl sub_809DA1C
+ ldr r1, _0809DBD4 @ =gMain
+ ldr r2, _0809DBD8 @ =0x0000043c
+ adds r1, r2
+ b _0809DDEE
+ .align 2, 0
+_0809DBD4: .4byte gMain
+_0809DBD8: .4byte 0x0000043c
+_0809DBDC:
+ ldr r1, _0809DC08 @ =gSummaryScreenTextTiles
+ ldr r2, _0809DC0C @ =0x0600d000
+ ldr r0, _0809DC10 @ =0x040000d4
+ str r1, [r0]
+ str r2, [r0, 0x4]
+ ldr r1, _0809DC14 @ =0x800000a0
+ str r1, [r0, 0x8]
+ ldr r1, [r0, 0x8]
+ ldr r1, _0809DC18 @ =gSummaryScreenButtonTiles
+ ldr r2, _0809DC1C @ =0x0600d140
+ str r1, [r0]
+ str r2, [r0, 0x4]
+ ldr r1, _0809DC20 @ =0x80000080
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ ldr r0, _0809DC24 @ =0x02018000
+ adds r0, 0x74
+ movs r1, 0
+ strb r1, [r0]
+ ldr r1, _0809DC28 @ =0x0000043c
+ add r1, r12
+ b _0809DDEE
+ .align 2, 0
+_0809DC08: .4byte gSummaryScreenTextTiles
+_0809DC0C: .4byte 0x0600d000
+_0809DC10: .4byte 0x040000d4
+_0809DC14: .4byte 0x800000a0
+_0809DC18: .4byte gSummaryScreenButtonTiles
+_0809DC1C: .4byte 0x0600d140
+_0809DC20: .4byte 0x80000080
+_0809DC24: .4byte 0x02018000
+_0809DC28: .4byte 0x0000043c
+_0809DC2C:
+ bl sub_809DF00
+ lsls r0, 24
+ cmp r0, 0
+ bne _0809DC38
+ b _0809DE38
+_0809DC38:
+ ldr r0, _0809DC44 @ =0x02018000
+ adds r0, 0x74
+ movs r1, 0
+ strb r1, [r0]
+ b _0809DDE8
+ .align 2, 0
+_0809DC44: .4byte 0x02018000
+_0809DC48:
+ bl sub_80A18C4
+ ldr r1, _0809DC54 @ =gMain
+ ldr r2, _0809DC58 @ =0x0000043c
+ adds r1, r2
+ b _0809DDEE
+ .align 2, 0
+_0809DC54: .4byte gMain
+_0809DC58: .4byte 0x0000043c
+_0809DC5C:
+ ldr r4, _0809DC78 @ =0x02018010
+ adds r0, r4, 0
+ bl sub_809F678
+ adds r0, r4, 0
+ bl GetMonStatusAndPokerus
+ lsls r0, 24
+ cmp r0, 0
+ bne _0809DC7C
+ movs r0, 0
+ bl sub_80A12D0
+ b _0809DC82
+ .align 2, 0
+_0809DC78: .4byte 0x02018010
+_0809DC7C:
+ movs r0, 0xA
+ bl sub_80A12D0
+_0809DC82:
+ ldr r0, _0809DC8C @ =0x02018010
+ bl sub_80A0EA4
+ b _0809DDE8
+ .align 2, 0
+_0809DC8C: .4byte 0x02018010
+_0809DC90:
+ bl sub_80A1950
+ ldr r0, _0809DCA4 @ =0x02018010
+ bl sub_80A1D84
+ ldr r1, _0809DCA8 @ =gMain
+ ldr r2, _0809DCAC @ =0x0000043c
+ adds r1, r2
+ b _0809DDEE
+ .align 2, 0
+_0809DCA4: .4byte 0x02018010
+_0809DCA8: .4byte gMain
+_0809DCAC: .4byte 0x0000043c
+_0809DCB0:
+ ldr r4, _0809DCC0 @ =0x02018010
+ adds r0, r4, 0
+ bl sub_80A1DE8
+ adds r4, 0x64
+ movs r0, 0
+ strb r0, [r4]
+ b _0809DDE8
+ .align 2, 0
+_0809DCC0: .4byte 0x02018010
+_0809DCC4:
+ ldr r4, _0809DCEC @ =0x02018010
+ adds r5, r4, 0
+ adds r5, 0x64
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_809F6B4
+ subs r4, 0x10
+ strb r0, [r4, 0xC]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ bne _0809DCE0
+ b _0809DE38
+_0809DCE0:
+ movs r0, 0
+ strb r0, [r5]
+ ldr r1, _0809DCF0 @ =gMain
+ ldr r2, _0809DCF4 @ =0x0000043c
+ adds r1, r2
+ b _0809DDEE
+ .align 2, 0
+_0809DCEC: .4byte 0x02018010
+_0809DCF0: .4byte gMain
+_0809DCF4: .4byte 0x0000043c
+_0809DCF8:
+ bl sub_809E044
+ bl sub_80A0EE8
+ b _0809DDE8
+_0809DD02:
+ ldr r1, _0809DD20 @ =0x02018000
+ ldrb r0, [r1, 0xB]
+ cmp r0, 0x1
+ bhi _0809DD18
+ ldr r0, _0809DD24 @ =gUnknown_083C1580
+ ldrb r1, [r1, 0xB]
+ lsls r1, 2
+ adds r1, r0
+ ldr r0, [r1]
+ bl _call_via_r0
+_0809DD18:
+ ldr r1, _0809DD28 @ =gMain
+ ldr r2, _0809DD2C @ =0x0000043c
+ adds r1, r2
+ b _0809DDEE
+ .align 2, 0
+_0809DD20: .4byte 0x02018000
+_0809DD24: .4byte gUnknown_083C1580
+_0809DD28: .4byte gMain
+_0809DD2C: .4byte 0x0000043c
+_0809DD30:
+ ldr r0, _0809DD38 @ =0x02018010
+ bl sub_809FAC8
+ b _0809DDE8
+ .align 2, 0
+_0809DD38: .4byte 0x02018010
+_0809DD3C:
+ ldr r2, _0809DD58 @ =gUnknown_083C1598
+ ldr r0, _0809DD5C @ =0x02018000
+ ldrb r1, [r0, 0xB]
+ lsls r1, 2
+ adds r1, r2
+ adds r0, 0x10
+ ldr r1, [r1]
+ bl _call_via_r1
+ ldr r1, _0809DD60 @ =gMain
+ ldr r2, _0809DD64 @ =0x0000043c
+ adds r1, r2
+ b _0809DDEE
+ .align 2, 0
+_0809DD58: .4byte gUnknown_083C1598
+_0809DD5C: .4byte 0x02018000
+_0809DD60: .4byte gMain
+_0809DD64: .4byte 0x0000043c
+_0809DD68:
+ ldr r0, _0809DD84 @ =0x02018010
+ movs r1, 0x2D
+ bl GetMonData
+ adds r1, r0, 0
+ cmp r1, 0
+ beq _0809DD8C
+ ldr r1, _0809DD88 @ =gUnknown_030041B0
+ movs r2, 0x80
+ lsls r2, 1
+ adds r0, r2, 0
+ strh r0, [r1]
+ b _0809DDE8
+ .align 2, 0
+_0809DD84: .4byte 0x02018010
+_0809DD88: .4byte gUnknown_030041B0
+_0809DD8C:
+ ldr r0, _0809DD94 @ =gUnknown_030041B0
+ strh r1, [r0]
+ b _0809DDE8
+ .align 2, 0
+_0809DD94: .4byte gUnknown_030041B0
+_0809DD98:
+ bl sub_809EBC4
+ ldr r0, _0809DDB8 @ =0x02018000
+ adds r0, 0x79
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0809DDBC
+ movs r0, 0
+ movs r1, 0
+ bl sub_80A1488
+ movs r0, 0
+ movs r1, 0
+ bl sub_80A1654
+ b _0809DDCC
+ .align 2, 0
+_0809DDB8: .4byte 0x02018000
+_0809DDBC:
+ movs r0, 0xA
+ movs r1, 0
+ bl sub_80A1488
+ movs r0, 0xA
+ movs r1, 0
+ bl sub_80A1654
+_0809DDCC:
+ bl sub_80A0DD0
+ ldr r1, _0809DDD8 @ =gMain
+ ldr r2, _0809DDDC @ =0x0000043c
+ adds r1, r2
+ b _0809DDEE
+ .align 2, 0
+_0809DDD8: .4byte gMain
+_0809DDDC: .4byte 0x0000043c
+_0809DDE0:
+ bl sub_8055870
+ cmp r0, 0x1
+ beq _0809DE38
+_0809DDE8:
+ ldr r1, _0809DDF8 @ =gMain
+ ldr r0, _0809DDFC @ =0x0000043c
+ adds r1, r0
+_0809DDEE:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _0809DE38
+ .align 2, 0
+_0809DDF8: .4byte gMain
+_0809DDFC: .4byte 0x0000043c
+_0809DE00:
+ ldr r0, _0809DE2C @ =sub_809D85C
+ bl SetVBlankCallback
+ movs r0, 0x1
+ str r0, [sp]
+ movs r0, 0xFF
+ movs r1, 0
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginHardwarePaletteFade
+ ldr r0, _0809DE30 @ =sub_809D844
+ bl SetMainCallback2
+ ldr r2, _0809DE34 @ =gPaletteFade
+ ldrb r1, [r2, 0x8]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r2, 0x8]
+ movs r0, 0x1
+ b _0809DE3A
+ .align 2, 0
+_0809DE2C: .4byte sub_809D85C
+_0809DE30: .4byte sub_809D844
+_0809DE34: .4byte gPaletteFade
+_0809DE38:
+ movs r0, 0
+_0809DE3A:
+ add sp, 0x8
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809DA84
+
+ thumb_func_start sub_809DE44
+sub_809DE44: @ 809DE44
+ push {lr}
+_0809DE46:
+ bl sub_809DA84
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _0809DE5E
+ bl sub_80F9344
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0809DE46
+_0809DE5E:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_809DE44
+
+ thumb_func_start sub_809DE64
+sub_809DE64: @ 809DE64
+ ldr r1, _0809DED0 @ =REG_BG0CNT
+ ldr r2, _0809DED4 @ =0x00001e08
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r2, _0809DED8 @ =0x00004801
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r2, _0809DEDC @ =0x00004a02
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r2, _0809DEE0 @ =0x00005c03
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r1, _0809DEE4 @ =gUnknown_030042C0
+ movs r0, 0
+ strh r0, [r1]
+ ldr r1, _0809DEE8 @ =gUnknown_030041B4
+ strh r0, [r1]
+ ldr r1, _0809DEEC @ =gUnknown_03004288
+ strh r0, [r1]
+ ldr r1, _0809DEF0 @ =gUnknown_03004280
+ strh r0, [r1]
+ ldr r1, _0809DEF4 @ =gUnknown_030041B0
+ strh r0, [r1]
+ ldr r1, _0809DEF8 @ =gUnknown_030041B8
+ strh r0, [r1]
+ ldr r1, _0809DEFC @ =REG_BG0HOFS
+ strh r0, [r1]
+ adds r1, 0x2
+ strh r0, [r1]
+ adds r1, 0x2
+ strh r0, [r1]
+ adds r1, 0x2
+ strh r0, [r1]
+ adds r1, 0x2
+ strh r0, [r1]
+ adds r1, 0x2
+ strh r0, [r1]
+ adds r1, 0x2
+ strh r0, [r1]
+ adds r1, 0x2
+ strh r0, [r1]
+ adds r1, 0x32
+ strh r0, [r1]
+ subs r1, 0x50
+ movs r2, 0xFA
+ lsls r2, 5
+ adds r0, r2, 0
+ strh r0, [r1]
+ bx lr
+ .align 2, 0
+_0809DED0: .4byte REG_BG0CNT
+_0809DED4: .4byte 0x00001e08
+_0809DED8: .4byte 0x00004801
+_0809DEDC: .4byte 0x00004a02
+_0809DEE0: .4byte 0x00005c03
+_0809DEE4: .4byte gUnknown_030042C0
+_0809DEE8: .4byte gUnknown_030041B4
+_0809DEEC: .4byte gUnknown_03004288
+_0809DEF0: .4byte gUnknown_03004280
+_0809DEF4: .4byte gUnknown_030041B0
+_0809DEF8: .4byte gUnknown_030041B8
+_0809DEFC: .4byte REG_BG0HOFS
+ thumb_func_end sub_809DE64
+
+ thumb_func_start sub_809DF00
+sub_809DF00: @ 809DF00
+ push {lr}
+ ldr r0, _0809DF18 @ =0x02018000
+ adds r0, 0x74
+ ldrb r0, [r0]
+ cmp r0, 0xC
+ bls _0809DF0E
+ b _0809E030
+_0809DF0E:
+ lsls r0, 2
+ ldr r1, _0809DF1C @ =_0809DF20
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0809DF18: .4byte 0x02018000
+_0809DF1C: .4byte _0809DF20
+ .align 2, 0
+_0809DF20:
+ .4byte _0809DF54
+ .4byte _0809DF64
+ .4byte _0809DF74
+ .4byte _0809DF88
+ .4byte _0809DF9C
+ .4byte _0809DFAC
+ .4byte _0809DFC4
+ .4byte _0809DFD4
+ .4byte _0809DFE0
+ .4byte _0809DFEC
+ .4byte _0809DFF8
+ .4byte _0809E004
+ .4byte _0809E010
+_0809DF54:
+ ldr r0, _0809DF60 @ =gStatusScreen_Gfx
+ movs r1, 0xC0
+ lsls r1, 19
+ bl LZDecompressVram
+ b _0809E030
+ .align 2, 0
+_0809DF60: .4byte gStatusScreen_Gfx
+_0809DF64:
+ ldr r0, _0809DF6C @ =gUnknown_08E73508
+ ldr r1, _0809DF70 @ =0x0600e000
+ b _0809DFB0
+ .align 2, 0
+_0809DF6C: .4byte gUnknown_08E73508
+_0809DF70: .4byte 0x0600e000
+_0809DF74:
+ ldr r0, _0809DF80 @ =gUnknown_08E74E88
+ ldr r1, _0809DF84 @ =0x0600e800
+ bl LZDecompressVram
+ b _0809E030
+ .align 2, 0
+_0809DF80: .4byte gUnknown_08E74E88
+_0809DF84: .4byte 0x0600e800
+_0809DF88:
+ ldr r0, _0809DF94 @ =gStatusScreen_Tilemap
+ ldr r1, _0809DF98 @ =0x06004800
+ bl LZDecompressVram
+ b _0809E030
+ .align 2, 0
+_0809DF94: .4byte gStatusScreen_Tilemap
+_0809DF98: .4byte 0x06004800
+_0809DF9C:
+ ldr r0, _0809DFA4 @ =gUnknown_08E73E88
+ ldr r1, _0809DFA8 @ =0x06005800
+ b _0809DFB0
+ .align 2, 0
+_0809DFA4: .4byte gUnknown_08E73E88
+_0809DFA8: .4byte 0x06005800
+_0809DFAC:
+ ldr r0, _0809DFBC @ =gUnknown_08E74688
+ ldr r1, _0809DFC0 @ =0x06006800
+_0809DFB0:
+ movs r2, 0x80
+ lsls r2, 3
+ bl CpuSet
+ b _0809E030
+ .align 2, 0
+_0809DFBC: .4byte gUnknown_08E74688
+_0809DFC0: .4byte 0x06006800
+_0809DFC4:
+ ldr r0, _0809DFD0 @ =gStatusScreen_Pal
+ movs r1, 0
+ movs r2, 0xA0
+ bl LoadCompressedPalette
+ b _0809E030
+ .align 2, 0
+_0809DFD0: .4byte gStatusScreen_Pal
+_0809DFD4:
+ ldr r0, _0809DFDC @ =gUnknown_083C11B8
+ bl LoadCompressedObjectPic
+ b _0809E030
+ .align 2, 0
+_0809DFDC: .4byte gUnknown_083C11B8
+_0809DFE0:
+ ldr r0, _0809DFE8 @ =gUnknown_083C1270
+ bl LoadCompressedObjectPic
+ b _0809E030
+ .align 2, 0
+_0809DFE8: .4byte gUnknown_083C1270
+_0809DFEC:
+ ldr r0, _0809DFF4 @ =gUnknown_083C12F4
+ bl LoadCompressedObjectPic
+ b _0809E030
+ .align 2, 0
+_0809DFF4: .4byte gUnknown_083C12F4
+_0809DFF8:
+ ldr r0, _0809E000 @ =gUnknown_083C12FC
+ bl LoadCompressedObjectPalette
+ b _0809E030
+ .align 2, 0
+_0809E000: .4byte gUnknown_083C12FC
+_0809E004:
+ ldr r0, _0809E00C @ =gUnknown_083C1278
+ bl LoadCompressedObjectPalette
+ b _0809E030
+ .align 2, 0
+_0809E00C: .4byte gUnknown_083C1278
+_0809E010:
+ ldr r0, _0809E028 @ =gMoveTypes_Pal
+ movs r1, 0xE8
+ lsls r1, 1
+ movs r2, 0x60
+ bl LoadCompressedPalette
+ ldr r0, _0809E02C @ =0x02018000
+ adds r0, 0x74
+ movs r1, 0
+ strb r1, [r0]
+ movs r0, 0x1
+ b _0809E03C
+ .align 2, 0
+_0809E028: .4byte gMoveTypes_Pal
+_0809E02C: .4byte 0x02018000
+_0809E030:
+ ldr r1, _0809E040 @ =0x02018000
+ adds r1, 0x74
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ movs r0, 0
+_0809E03C:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0809E040: .4byte 0x02018000
+ thumb_func_end sub_809DF00
+
+ thumb_func_start sub_809E044
+sub_809E044: @ 809E044
+ push {r4,r5,lr}
+ ldr r4, _0809E0F4 @ =gUnknownPalette_81E6692+0x1C
+ adds r0, r4, 0
+ movs r1, 0x81
+ movs r2, 0x2
+ bl LoadPalette
+ adds r5, r4, 0x2
+ adds r0, r5, 0
+ movs r1, 0x88
+ movs r2, 0x2
+ bl LoadPalette
+ adds r0, r4, 0
+ movs r1, 0x8F
+ movs r2, 0x2
+ bl LoadPalette
+ adds r0, r5, 0
+ movs r1, 0x89
+ movs r2, 0x2
+ bl LoadPalette
+ subs r5, 0x12
+ adds r0, r5, 0
+ movs r1, 0xD1
+ movs r2, 0x4
+ bl LoadPalette
+ adds r0, r4, 0
+ subs r0, 0x8
+ movs r1, 0xD3
+ movs r2, 0x4
+ bl LoadPalette
+ adds r0, r4, 0
+ movs r1, 0xD5
+ movs r2, 0x4
+ bl LoadPalette
+ adds r0, r5, 0
+ movs r1, 0xD7
+ movs r2, 0x4
+ bl LoadPalette
+ adds r0, r4, 0
+ subs r0, 0x14
+ movs r1, 0xD9
+ movs r2, 0x4
+ bl LoadPalette
+ adds r0, r4, 0
+ subs r0, 0xC
+ movs r1, 0xDB
+ movs r2, 0x4
+ bl LoadPalette
+ adds r0, r4, 0
+ subs r0, 0x18
+ movs r1, 0xDD
+ movs r2, 0x2
+ bl LoadPalette
+ subs r5, 0x6
+ adds r0, r5, 0
+ movs r1, 0xDE
+ movs r2, 0x2
+ bl LoadPalette
+ subs r4, 0x1A
+ adds r0, r4, 0
+ movs r1, 0xDF
+ movs r2, 0x2
+ bl LoadPalette
+ ldr r0, _0809E0F8 @ =gFontDefaultPalette
+ movs r1, 0xF0
+ movs r2, 0x20
+ bl LoadPalette
+ adds r0, r5, 0
+ movs r1, 0xF9
+ movs r2, 0x2
+ bl LoadPalette
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809E0F4: .4byte gUnknownPalette_81E6692+0x1C
+_0809E0F8: .4byte gFontDefaultPalette
+ thumb_func_end sub_809E044
+
+ thumb_func_start SummaryScreenExit
+SummaryScreenExit: @ 809E0FC
+ push {r4,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r1, _0809E134 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0809E138 @ =sub_809E13C
+ str r1, [r0]
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809E134: .4byte gTasks
+_0809E138: .4byte sub_809E13C
+ thumb_func_end SummaryScreenExit
+
+ thumb_func_start sub_809E13C
+sub_809E13C: @ 809E13C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ bl sub_8055870
+ cmp r0, 0x1
+ beq _0809E182
+ ldr r0, _0809E188 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0809E182
+ ldr r1, _0809E18C @ =gUnknown_020384F0
+ ldr r4, _0809E190 @ =0x02018000
+ ldrb r0, [r4, 0x9]
+ strb r0, [r1]
+ bl ResetSpriteData
+ bl FreeAllSpritePalettes
+ bl StopCryAndClearCrySongs
+ ldr r0, _0809E194 @ =gMPlay_BGM
+ ldr r1, _0809E198 @ =0x0000ffff
+ movs r2, 0x80
+ lsls r2, 1
+ bl m4aMPlayVolumeControl
+ ldr r0, [r4, 0x4]
+ bl SetMainCallback2
+ adds r0, r5, 0
+ bl DestroyTask
+_0809E182:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809E188: .4byte gPaletteFade
+_0809E18C: .4byte gUnknown_020384F0
+_0809E190: .4byte 0x02018000
+_0809E194: .4byte gMPlay_BGM
+_0809E198: .4byte 0x0000ffff
+ thumb_func_end sub_809E13C
+
+ thumb_func_start SummaryScreenHandleKeyInput
+SummaryScreenHandleKeyInput: @ 809E19C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0809E1C8 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r2, 0x80
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _0809E25A
+ ldr r5, _0809E1CC @ =gMain
+ ldrh r1, [r5, 0x2E]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0809E1D0
+ movs r1, 0x1
+ negs r1, r1
+ adds r0, r4, 0
+ bl SummaryScreenHandleUpDownInput
+ b _0809E25A
+ .align 2, 0
+_0809E1C8: .4byte gPaletteFade
+_0809E1CC: .4byte gMain
+_0809E1D0:
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0809E1E2
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl SummaryScreenHandleUpDownInput
+ b _0809E25A
+_0809E1E2:
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ bne _0809E1F6
+ bl sub_80F9284
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0809E202
+_0809E1F6:
+ movs r1, 0x1
+ negs r1, r1
+ adds r0, r4, 0
+ bl SummaryScreenHandleLeftRightInput
+ b _0809E25A
+_0809E202:
+ ldrh r1, [r5, 0x2E]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ bne _0809E218
+ bl sub_80F9284
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ bne _0809E222
+_0809E218:
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl SummaryScreenHandleLeftRightInput
+ b _0809E25A
+_0809E222:
+ ldrh r1, [r5, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0809E24C
+ ldr r5, _0809E248 @ =0x02018000
+ ldrb r0, [r5, 0xB]
+ cmp r0, 0x1
+ bls _0809E23A
+ adds r0, r4, 0
+ bl SummaryScreenHandleAButton
+_0809E23A:
+ ldrb r0, [r5, 0xB]
+ cmp r0, 0
+ bne _0809E25A
+ adds r0, r4, 0
+ bl SummaryScreenExit
+ b _0809E25A
+ .align 2, 0
+_0809E248: .4byte 0x02018000
+_0809E24C:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0809E25A
+ adds r0, r4, 0
+ bl SummaryScreenExit
+_0809E25A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end SummaryScreenHandleKeyInput
+
+ thumb_func_start sub_809E260
+sub_809E260: @ 809E260
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0809E29C @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r2, 0x80
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0809E276
+ b _0809E3EE
+_0809E276:
+ ldr r5, _0809E2A0 @ =gMain
+ ldrh r1, [r5, 0x2E]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0809E2AC
+ ldr r1, _0809E2A4 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x4
+ strh r1, [r0, 0x8]
+ subs r1, 0x5
+ ldr r2, _0809E2A8 @ =0x02018079
+ adds r0, r4, 0
+ bl sub_809E8F0
+ b _0809E3EE
+ .align 2, 0
+_0809E29C: .4byte gPaletteFade
+_0809E2A0: .4byte gMain
+_0809E2A4: .4byte gTasks
+_0809E2A8: .4byte 0x02018079
+_0809E2AC:
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0809E2D8
+ ldr r1, _0809E2D0 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x4
+ strh r1, [r0, 0x8]
+ ldr r2, _0809E2D4 @ =0x02018079
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_809E8F0
+ b _0809E3EE
+ .align 2, 0
+_0809E2D0: .4byte gTasks
+_0809E2D4: .4byte 0x02018079
+_0809E2D8:
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ bne _0809E2EC
+ bl sub_80F9284
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0809E324
+_0809E2EC:
+ ldr r1, _0809E320 @ =0x02018000
+ ldrb r0, [r1, 0xB]
+ cmp r0, 0x3
+ bne _0809E314
+ adds r0, r1, 0
+ adds r0, 0x79
+ ldrb r0, [r0]
+ cmp r0, 0x4
+ bne _0809E308
+ adds r0, r1, 0
+ adds r0, 0x7C
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _0809E314
+_0809E308:
+ movs r0, 0
+ movs r1, 0xE
+ movs r2, 0x9
+ movs r3, 0x12
+ bl MenuZeroFillWindowRect
+_0809E314:
+ movs r1, 0x1
+ negs r1, r1
+ adds r0, r4, 0
+ bl SummaryScreenHandleLeftRightInput
+ b _0809E3EE
+ .align 2, 0
+_0809E320: .4byte 0x02018000
+_0809E324:
+ ldrh r1, [r5, 0x2E]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ bne _0809E33A
+ bl sub_80F9284
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ bne _0809E37C
+_0809E33A:
+ ldr r1, _0809E378 @ =0x02018000
+ adds r2, r1, 0
+ adds r2, 0x76
+ ldrb r0, [r1, 0xB]
+ ldrb r2, [r2]
+ cmp r0, r2
+ beq _0809E3EE
+ cmp r0, 0x2
+ bne _0809E36C
+ adds r0, r1, 0
+ adds r0, 0x79
+ ldrb r0, [r0]
+ cmp r0, 0x4
+ bne _0809E360
+ adds r0, r1, 0
+ adds r0, 0x7C
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _0809E36C
+_0809E360:
+ movs r0, 0
+ movs r1, 0xE
+ movs r2, 0x9
+ movs r3, 0x12
+ bl MenuZeroFillWindowRect
+_0809E36C:
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl SummaryScreenHandleLeftRightInput
+ b _0809E3EE
+ .align 2, 0
+_0809E378: .4byte 0x02018000
+_0809E37C:
+ ldrh r1, [r5, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0809E3D4
+ adds r0, r4, 0
+ bl sub_809F7D0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _0809E3A0
+ ldr r0, _0809E3BC @ =0x02018000
+ adds r5, r0, 0
+ adds r5, 0x79
+ ldrb r0, [r5]
+ cmp r0, 0x4
+ bne _0809E3C4
+_0809E3A0:
+ ldr r0, _0809E3BC @ =0x02018000
+ adds r1, r0, 0
+ adds r1, 0x79
+ ldrb r1, [r1]
+ adds r0, 0x7A
+ strb r1, [r0]
+ ldr r1, _0809E3C0 @ =gSpecialVar_0x8005
+ ldrb r0, [r0]
+ strh r0, [r1]
+ adds r0, r4, 0
+ bl SummaryScreenExit
+ b _0809E3EE
+ .align 2, 0
+_0809E3BC: .4byte 0x02018000
+_0809E3C0: .4byte gSpecialVar_0x8005
+_0809E3C4:
+ movs r0, 0x20
+ bl PlaySE
+ ldrb r1, [r5]
+ adds r0, r4, 0
+ bl sub_809F9D0
+ b _0809E3EE
+_0809E3D4:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0809E3EE
+ ldr r0, _0809E3F4 @ =0x02018000
+ adds r0, 0x7A
+ movs r1, 0x4
+ strb r1, [r0]
+ ldr r0, _0809E3F8 @ =gSpecialVar_0x8005
+ strh r1, [r0]
+ adds r0, r4, 0
+ bl SummaryScreenExit
+_0809E3EE:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809E3F4: .4byte 0x02018000
+_0809E3F8: .4byte gSpecialVar_0x8005
+ thumb_func_end sub_809E260
+
+ thumb_func_start sub_809E3FC
+sub_809E3FC: @ 809E3FC
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r7, r5, 0
+ ldr r0, _0809E438 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r2, 0x80
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _0809E502
+ ldr r0, _0809E43C @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0809E448
+ ldr r1, _0809E440 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x4
+ strh r1, [r0, 0x8]
+ subs r1, 0x5
+ ldr r2, _0809E444 @ =0x02018079
+ adds r0, r5, 0
+ bl sub_809E8F0
+ b _0809E502
+ .align 2, 0
+_0809E438: .4byte gPaletteFade
+_0809E43C: .4byte gMain
+_0809E440: .4byte gTasks
+_0809E444: .4byte 0x02018079
+_0809E448:
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0809E474
+ ldr r1, _0809E46C @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x4
+ strh r1, [r0, 0x8]
+ ldr r2, _0809E470 @ =0x02018079
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_809E8F0
+ b _0809E502
+ .align 2, 0
+_0809E46C: .4byte gTasks
+_0809E470: .4byte 0x02018079
+_0809E474:
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0809E4EE
+ ldr r4, _0809E4A8 @ =0x02018000
+ adds r6, r4, 0
+ adds r6, 0x79
+ ldrb r0, [r6]
+ cmp r0, 0x4
+ beq _0809E4E0
+ adds r0, r4, 0
+ adds r0, 0x7B
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0809E4E0
+ adds r0, r4, 0
+ adds r0, 0x10
+ bl sub_809E508
+ lsls r0, 24
+ cmp r0, 0
+ bne _0809E4AC
+ movs r0, 0x20
+ bl PlaySE
+ b _0809E502
+ .align 2, 0
+_0809E4A8: .4byte 0x02018000
+_0809E4AC:
+ movs r0, 0x5
+ bl PlaySE
+ ldrb r1, [r6]
+ adds r0, r4, 0
+ adds r0, 0x7A
+ strb r1, [r0]
+ movs r0, 0x1
+ bl sub_80A1B40
+ movs r0, 0x13
+ bl sub_80A1A30
+ ldr r1, _0809E4D8 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0809E4DC @ =sub_809E534
+ str r1, [r0]
+ b _0809E502
+ .align 2, 0
+_0809E4D8: .4byte gTasks
+_0809E4DC: .4byte sub_809E534
+_0809E4E0:
+ movs r0, 0x5
+ bl PlaySE
+ adds r0, r7, 0
+ bl sub_809EAC8
+ b _0809E502
+_0809E4EE:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0809E502
+ movs r0, 0x5
+ bl PlaySE
+ adds r0, r7, 0
+ bl sub_809EAC8
+_0809E502:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_809E3FC
+
+ thumb_func_start sub_809E508
+sub_809E508: @ 809E508
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r4, 0x1
+_0809E50E:
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_809F760
+ lsls r0, 16
+ cmp r0, 0
+ beq _0809E520
+ movs r0, 0x1
+ b _0809E52C
+_0809E520:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x3
+ bls _0809E50E
+ movs r0, 0
+_0809E52C:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809E508
+
+ thumb_func_start sub_809E534
+sub_809E534: @ 809E534
+ push {lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ adds r2, r3, 0
+ ldr r0, _0809E564 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0809E570
+ ldr r1, _0809E568 @ =gTasks
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x3
+ strh r1, [r0, 0x8]
+ subs r1, 0x4
+ ldr r2, _0809E56C @ =0x0201807a
+ adds r0, r3, 0
+ bl sub_809E8F0
+ b _0809E5C0
+ .align 2, 0
+_0809E564: .4byte gMain
+_0809E568: .4byte gTasks
+_0809E56C: .4byte 0x0201807a
+_0809E570:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _0809E59C
+ ldr r1, _0809E594 @ =gTasks
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x3
+ strh r1, [r0, 0x8]
+ ldr r2, _0809E598 @ =0x0201807a
+ adds r0, r3, 0
+ movs r1, 0x1
+ bl sub_809E8F0
+ b _0809E5C0
+ .align 2, 0
+_0809E594: .4byte gTasks
+_0809E598: .4byte 0x0201807a
+_0809E59C:
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0809E5AE
+ adds r0, r3, 0
+ movs r1, 0x1
+ bl sub_809E83C
+ b _0809E5C0
+_0809E5AE:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0809E5C0
+ movs r1, 0x1
+ negs r1, r1
+ adds r0, r2, 0
+ bl sub_809E83C
+_0809E5C0:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_809E534
+
+ thumb_func_start sub_809E5C4
+sub_809E5C4: @ 809E5C4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x20
+ ldr r1, _0809E6D0 @ =0x02018000
+ ldr r5, [r1]
+ ldrb r2, [r1, 0x9]
+ movs r0, 0x64
+ muls r0, r2
+ adds r5, r0
+ adds r0, r1, 0
+ adds r0, 0x79
+ ldrb r0, [r0]
+ mov r8, r0
+ adds r1, 0x7A
+ ldrb r6, [r1]
+ adds r0, 0xD
+ str r0, [sp, 0x8]
+ adds r0, r5, 0
+ ldr r1, [sp, 0x8]
+ bl GetMonData
+ mov r1, sp
+ adds r1, 0x2
+ str r1, [sp, 0x14]
+ strh r0, [r1]
+ adds r2, r6, 0
+ adds r2, 0xD
+ str r2, [sp, 0xC]
+ adds r0, r5, 0
+ adds r1, r2, 0
+ bl GetMonData
+ mov r1, sp
+ strh r0, [r1]
+ mov r3, r8
+ adds r3, 0x11
+ str r3, [sp, 0x10]
+ adds r0, r5, 0
+ adds r1, r3, 0
+ bl GetMonData
+ mov r7, sp
+ adds r7, 0x5
+ str r7, [sp, 0x18]
+ strb r0, [r7]
+ adds r0, r6, 0
+ adds r0, 0x11
+ str r0, [sp, 0x1C]
+ adds r0, r5, 0
+ ldr r1, [sp, 0x1C]
+ bl GetMonData
+ add r1, sp, 0x4
+ mov r10, r1
+ strb r0, [r1]
+ adds r0, r5, 0
+ movs r1, 0x15
+ bl GetMonData
+ mov r4, sp
+ adds r4, 0x6
+ strb r0, [r4]
+ ldr r1, _0809E6D4 @ =gUnknown_08208238
+ mov r2, r8
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ mov r9, r0
+ ldrb r0, [r4]
+ adds r2, r0, 0
+ mov r3, r9
+ ands r2, r3
+ mov r7, r8
+ lsls r7, 1
+ mov r8, r7
+ asrs r2, r7
+ lsls r2, 24
+ lsrs r2, 24
+ adds r1, r6, r1
+ ldrb r3, [r1]
+ adds r1, r0, 0
+ ands r1, r3
+ lsls r6, 1
+ asrs r1, r6
+ lsls r1, 24
+ lsrs r1, 24
+ mov r7, r9
+ bics r0, r7
+ strb r0, [r4]
+ ldrb r0, [r4]
+ bics r0, r3
+ strb r0, [r4]
+ lsls r2, r6
+ mov r0, r8
+ lsls r1, r0
+ adds r2, r1
+ ldrb r0, [r4]
+ orrs r0, r2
+ strb r0, [r4]
+ adds r0, r5, 0
+ ldr r1, [sp, 0x8]
+ mov r2, sp
+ bl SetMonData
+ adds r0, r5, 0
+ ldr r1, [sp, 0xC]
+ ldr r2, [sp, 0x14]
+ bl SetMonData
+ adds r0, r5, 0
+ ldr r1, [sp, 0x10]
+ mov r2, r10
+ bl SetMonData
+ adds r0, r5, 0
+ ldr r1, [sp, 0x1C]
+ ldr r2, [sp, 0x18]
+ bl SetMonData
+ adds r0, r5, 0
+ movs r1, 0x15
+ adds r2, r4, 0
+ bl SetMonData
+ add sp, 0x20
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809E6D0: .4byte 0x02018000
+_0809E6D4: .4byte gUnknown_08208238
+ thumb_func_end sub_809E5C4
+
+ thumb_func_start sub_809E6D8
+sub_809E6D8: @ 809E6D8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x20
+ ldr r2, _0809E7E8 @ =0x02018000
+ ldr r5, [r2]
+ ldrb r1, [r2, 0x9]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 4
+ adds r5, r0
+ adds r0, r2, 0
+ adds r0, 0x79
+ ldrb r0, [r0]
+ mov r8, r0
+ adds r2, 0x7A
+ ldrb r6, [r2]
+ adds r0, 0xD
+ str r0, [sp, 0x8]
+ adds r0, r5, 0
+ ldr r1, [sp, 0x8]
+ bl GetBoxMonData
+ mov r1, sp
+ adds r1, 0x2
+ str r1, [sp, 0x14]
+ strh r0, [r1]
+ adds r2, r6, 0
+ adds r2, 0xD
+ str r2, [sp, 0xC]
+ adds r0, r5, 0
+ adds r1, r2, 0
+ bl GetBoxMonData
+ mov r1, sp
+ strh r0, [r1]
+ mov r3, r8
+ adds r3, 0x11
+ str r3, [sp, 0x10]
+ adds r0, r5, 0
+ adds r1, r3, 0
+ bl GetBoxMonData
+ mov r7, sp
+ adds r7, 0x5
+ str r7, [sp, 0x18]
+ strb r0, [r7]
+ adds r0, r6, 0
+ adds r0, 0x11
+ str r0, [sp, 0x1C]
+ adds r0, r5, 0
+ ldr r1, [sp, 0x1C]
+ bl GetBoxMonData
+ add r1, sp, 0x4
+ mov r10, r1
+ strb r0, [r1]
+ adds r0, r5, 0
+ movs r1, 0x15
+ bl GetBoxMonData
+ mov r4, sp
+ adds r4, 0x6
+ strb r0, [r4]
+ ldr r1, _0809E7EC @ =gUnknown_08208238
+ mov r2, r8
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ mov r9, r0
+ ldrb r0, [r4]
+ adds r2, r0, 0
+ mov r3, r9
+ ands r2, r3
+ mov r7, r8
+ lsls r7, 1
+ mov r8, r7
+ asrs r2, r7
+ lsls r2, 24
+ lsrs r2, 24
+ adds r1, r6, r1
+ ldrb r3, [r1]
+ adds r1, r0, 0
+ ands r1, r3
+ lsls r6, 1
+ asrs r1, r6
+ lsls r1, 24
+ lsrs r1, 24
+ mov r7, r9
+ bics r0, r7
+ strb r0, [r4]
+ ldrb r0, [r4]
+ bics r0, r3
+ strb r0, [r4]
+ lsls r2, r6
+ mov r0, r8
+ lsls r1, r0
+ adds r2, r1
+ ldrb r0, [r4]
+ orrs r0, r2
+ strb r0, [r4]
+ adds r0, r5, 0
+ ldr r1, [sp, 0x8]
+ mov r2, sp
+ bl SetBoxMonData
+ adds r0, r5, 0
+ ldr r1, [sp, 0xC]
+ ldr r2, [sp, 0x14]
+ bl SetBoxMonData
+ adds r0, r5, 0
+ ldr r1, [sp, 0x10]
+ mov r2, r10
+ bl SetBoxMonData
+ adds r0, r5, 0
+ ldr r1, [sp, 0x1C]
+ ldr r2, [sp, 0x18]
+ bl SetBoxMonData
+ adds r0, r5, 0
+ movs r1, 0x15
+ adds r2, r4, 0
+ bl SetBoxMonData
+ add sp, 0x20
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809E7E8: .4byte 0x02018000
+_0809E7EC: .4byte gUnknown_08208238
+ thumb_func_end sub_809E6D8
+
+ thumb_func_start sub_809E7F0
+sub_809E7F0: @ 809E7F0
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_809F5F8
+ lsls r0, 24
+ cmp r0, 0
+ beq _0809E828
+ ldr r1, _0809E830 @ =0x02018000
+ adds r2, r1, 0
+ adds r2, 0x74
+ movs r0, 0
+ strb r0, [r2]
+ adds r0, r1, 0
+ adds r0, 0x10
+ adds r1, 0x79
+ bl sub_80A0428
+ ldr r1, _0809E834 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0809E838 @ =sub_809E3FC
+ str r1, [r0]
+ adds r0, r4, 0
+ bl sub_80A2078
+_0809E828:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809E830: .4byte 0x02018000
+_0809E834: .4byte gTasks
+_0809E838: .4byte sub_809E3FC
+ thumb_func_end sub_809E7F0
+
+ thumb_func_start sub_809E83C
+sub_809E83C: @ 809E83C
+ push {r4,r5,lr}
+ adds r4, r1, 0
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x13
+ bl sub_80A1B1C
+ movs r0, 0
+ bl sub_80A1B40
+ cmp r4, 0x1
+ bne _0809E8C0
+ ldr r1, _0809E87C @ =0x02018000
+ adds r0, r1, 0
+ adds r0, 0x79
+ adds r2, r1, 0
+ adds r2, 0x7A
+ ldrb r0, [r0]
+ ldrb r2, [r2]
+ cmp r0, r2
+ beq _0809E8CA
+ ldrb r0, [r1, 0xE]
+ cmp r0, 0
+ bne _0809E880
+ bl sub_809E5C4
+ b _0809E884
+ .align 2, 0
+_0809E87C: .4byte 0x02018000
+_0809E880:
+ bl sub_809E6D8
+_0809E884:
+ ldr r4, _0809E8B4 @ =0x02018000
+ adds r0, r4, 0
+ adds r0, 0x7A
+ ldrb r0, [r0]
+ adds r1, r4, 0
+ adds r1, 0x79
+ strb r0, [r1]
+ adds r0, r4, 0
+ adds r0, 0x10
+ bl sub_809F678
+ adds r1, r4, 0
+ adds r1, 0x74
+ movs r0, 0x1
+ strb r0, [r1]
+ ldr r1, _0809E8B8 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0809E8BC @ =sub_809E7F0
+ str r1, [r0]
+ b _0809E8DE
+ .align 2, 0
+_0809E8B4: .4byte 0x02018000
+_0809E8B8: .4byte gTasks
+_0809E8BC: .4byte sub_809E7F0
+_0809E8C0:
+ ldr r0, _0809E8E4 @ =0x02018010
+ adds r1, r0, 0
+ adds r1, 0x69
+ bl sub_80A0428
+_0809E8CA:
+ ldr r0, _0809E8E8 @ =gTasks
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _0809E8EC @ =sub_809E3FC
+ str r0, [r1]
+ adds r0, r5, 0
+ bl sub_80A2078
+_0809E8DE:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809E8E4: .4byte 0x02018010
+_0809E8E8: .4byte gTasks
+_0809E8EC: .4byte sub_809E3FC
+ thumb_func_end sub_809E83C
+
+ thumb_func_start sub_809E8F0
+sub_809E8F0: @ 809E8F0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ adds r4, r1, 0
+ mov r9, r2
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x1
+ str r0, [sp]
+ movs r0, 0x5
+ bl PlaySE
+ mov r1, r9
+ ldrb r6, [r1]
+ ldr r1, _0809E944 @ =gTasks
+ mov r2, r8
+ lsls r0, r2, 2
+ add r0, r8
+ lsls r0, 3
+ adds r0, r1
+ ldrb r0, [r0, 0x8]
+ movs r2, 0
+ lsls r4, 24
+ asrs r4, 24
+ mov r10, r4
+ lsls r7, r0, 24
+_0809E930:
+ lsls r0, r6, 24
+ asrs r0, 24
+ add r0, r10
+ lsls r0, 24
+ lsrs r6, r0, 24
+ asrs r1, r0, 24
+ cmp r0, r7
+ ble _0809E948
+ movs r6, 0
+ b _0809E94E
+ .align 2, 0
+_0809E944: .4byte gTasks
+_0809E948:
+ cmp r1, 0
+ bge _0809E94E
+ lsrs r6, r7, 24
+_0809E94E:
+ lsls r4, r6, 24
+ lsrs r1, r4, 24
+ ldr r0, _0809EA10 @ =0x02018010
+ str r2, [sp, 0x4]
+ bl sub_809F760
+ lsls r0, 16
+ adds r5, r4, 0
+ ldr r2, [sp, 0x4]
+ cmp r0, 0
+ bne _0809E97A
+ asrs r0, r5, 24
+ cmp r0, 0x4
+ beq _0809E97A
+ lsls r0, r2, 24
+ movs r3, 0x80
+ lsls r3, 17
+ adds r0, r3
+ lsrs r2, r0, 24
+ asrs r0, 24
+ cmp r0, 0x3
+ ble _0809E930
+_0809E97A:
+ mov r1, r9
+ ldrb r0, [r1]
+ cmp r0, 0x4
+ bne _0809E996
+ asrs r0, r5, 24
+ cmp r0, 0x4
+ beq _0809E996
+ ldr r0, _0809EA14 @ =0x02018000
+ adds r0, 0x7C
+ ldrh r0, [r0]
+ mov r2, r8
+ lsls r7, r2, 2
+ cmp r0, 0
+ beq _0809E9AC
+_0809E996:
+ ldr r2, _0809EA18 @ =gTasks
+ mov r3, r8
+ lsls r1, r3, 2
+ adds r0, r1, r3
+ lsls r0, 3
+ adds r0, r2
+ movs r2, 0x22
+ ldrsh r0, [r0, r2]
+ adds r7, r1, 0
+ cmp r0, 0x1
+ bne _0809E9D0
+_0809E9AC:
+ lsrs r4, r5, 24
+ movs r0, 0x2
+ adds r1, r4, 0
+ bl sub_80A1488
+ movs r0, 0x2
+ adds r1, r4, 0
+ bl sub_80A1654
+ ldr r1, _0809EA18 @ =gTasks
+ mov r3, r8
+ adds r0, r7, r3
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0, 0x22]
+ movs r0, 0
+ str r0, [sp]
+_0809E9D0:
+ mov r1, r9
+ ldrb r0, [r1]
+ cmp r0, 0x4
+ beq _0809E9FE
+ asrs r0, r5, 24
+ cmp r0, 0x4
+ bne _0809E9FE
+ ldr r0, _0809EA14 @ =0x02018000
+ adds r0, 0x7C
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _0809E9FE
+ movs r4, 0x2
+ negs r4, r4
+ lsrs r5, 24
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80A1488
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80A1654
+_0809E9FE:
+ mov r2, r9
+ strb r6, [r2]
+ ldr r0, _0809EA1C @ =0x02018079
+ cmp r9, r0
+ bne _0809EA20
+ movs r0, 0
+ bl sub_80A1C30
+ b _0809EA26
+ .align 2, 0
+_0809EA10: .4byte 0x02018010
+_0809EA14: .4byte 0x02018000
+_0809EA18: .4byte gTasks
+_0809EA1C: .4byte 0x02018079
+_0809EA20:
+ movs r0, 0x1
+ bl sub_80A1C30
+_0809EA26:
+ ldr r3, [sp]
+ cmp r3, 0
+ beq _0809EA34
+ ldr r0, _0809EA4C @ =0x02018010
+ mov r1, r9
+ bl sub_80A0428
+_0809EA34:
+ mov r0, r8
+ bl sub_80A2078
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809EA4C: .4byte 0x02018010
+ thumb_func_end sub_809E8F0
+
+ thumb_func_start SummaryScreenHandleAButton
+SummaryScreenHandleAButton: @ 809EA50
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r0, 0x5
+ bl PlaySE
+ ldr r4, _0809EABC @ =0x02018000
+ adds r1, r4, 0
+ adds r1, 0x79
+ movs r0, 0
+ strb r0, [r1]
+ movs r0, 0x2
+ movs r1, 0
+ bl sub_80A1488
+ movs r0, 0x2
+ movs r1, 0
+ bl sub_80A1654
+ adds r0, r4, 0
+ adds r0, 0x7B
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0809EA8C
+ adds r1, r4, 0
+ adds r1, 0x7F
+ movs r0, 0x5
+ strb r0, [r1]
+ bl sub_80A0DD0
+_0809EA8C:
+ movs r0, 0
+ bl sub_80A16CC
+ adds r0, r4, 0
+ adds r0, 0x10
+ bl sub_80A029C
+ movs r0, 0x9
+ bl sub_80A1A30
+ ldr r1, _0809EAC0 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0809EAC4 @ =sub_809E3FC
+ str r1, [r0]
+ adds r0, r5, 0
+ bl sub_80A2078
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809EABC: .4byte 0x02018000
+_0809EAC0: .4byte gTasks
+_0809EAC4: .4byte sub_809E3FC
+ thumb_func_end SummaryScreenHandleAButton
+
+ thumb_func_start sub_809EAC8
+sub_809EAC8: @ 809EAC8
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r6, _0809EB34 @ =0x02018000
+ adds r0, r6, 0
+ adds r0, 0x79
+ ldrb r0, [r0]
+ cmp r0, 0x4
+ beq _0809EAEE
+ movs r4, 0x2
+ negs r4, r4
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_80A1488
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_80A1654
+_0809EAEE:
+ movs r0, 0x9
+ bl sub_80A1B1C
+ movs r0, 0x1
+ bl sub_80A16CC
+ movs r0, 0xF
+ movs r1, 0xC
+ movs r2, 0x1C
+ movs r3, 0xD
+ bl MenuZeroFillWindowRect
+ movs r0, 0xB
+ movs r1, 0xF
+ movs r2, 0x1C
+ movs r3, 0x12
+ bl MenuZeroFillWindowRect
+ adds r1, r6, 0
+ adds r1, 0x7F
+ movs r0, 0x6
+ strb r0, [r1]
+ bl sub_80A0DD0
+ ldr r1, _0809EB38 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0809EB3C @ =SummaryScreenHandleKeyInput
+ str r1, [r0]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809EB34: .4byte 0x02018000
+_0809EB38: .4byte gTasks
+_0809EB3C: .4byte SummaryScreenHandleKeyInput
+ thumb_func_end sub_809EAC8
+
+ thumb_func_start sub_809EB40
+sub_809EB40: @ 809EB40
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _0809EB6C @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _0809EB74
+ cmp r0, 0x5
+ bne _0809EBA4
+ movs r0, 0x9
+ bl sub_80A1A30
+ movs r0, 0
+ strh r0, [r4, 0x8]
+ ldr r0, _0809EB70 @ =sub_809E260
+ str r0, [r4]
+ b _0809EBB4
+ .align 2, 0
+_0809EB6C: .4byte gTasks
+_0809EB70: .4byte sub_809E260
+_0809EB74:
+ ldr r4, _0809EBBC @ =0x02018000
+ adds r6, r4, 0
+ adds r6, 0x79
+ strb r0, [r6]
+ adds r0, r4, 0
+ adds r0, 0x7C
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _0809EB96
+ movs r0, 0xA
+ movs r1, 0
+ bl sub_80A1488
+ ldrb r1, [r6]
+ movs r0, 0xA
+ bl sub_80A1654
+_0809EB96:
+ movs r0, 0
+ bl sub_80A16CC
+ adds r0, r4, 0
+ adds r0, 0x10
+ bl sub_80A029C
+_0809EBA4:
+ ldr r0, _0809EBC0 @ =gTasks
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+_0809EBB4:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809EBBC: .4byte 0x02018000
+_0809EBC0: .4byte gTasks
+ thumb_func_end sub_809EB40
+
+ thumb_func_start sub_809EBC4
+sub_809EBC4: @ 809EBC4
+ push {r4,lr}
+ ldr r4, _0809EC28 @ =0x02018000
+ ldrb r0, [r4, 0xB]
+ cmp r0, 0
+ beq _0809EC22
+ bl sub_80A0EE8
+ ldr r0, _0809EC2C @ =gUnknown_030042C0
+ movs r2, 0x80
+ lsls r2, 1
+ adds r1, r2, 0
+ strh r1, [r0]
+ ldrb r0, [r4, 0xB]
+ cmp r0, 0x1
+ bne _0809EBF4
+ ldr r2, _0809EC30 @ =REG_BG1CNT
+ ldrh r1, [r2]
+ ldr r0, _0809EC34 @ =0x0000e0ff
+ ands r0, r1
+ movs r3, 0x80
+ lsls r3, 4
+ adds r1, r3, 0
+ adds r0, r1
+ strh r0, [r2]
+_0809EBF4:
+ ldrb r3, [r4, 0xB]
+ cmp r3, 0x2
+ bne _0809EC0C
+ ldr r2, _0809EC30 @ =REG_BG1CNT
+ ldrh r1, [r2]
+ ldr r0, _0809EC34 @ =0x0000e0ff
+ ands r0, r1
+ movs r4, 0xA0
+ lsls r4, 4
+ adds r1, r4, 0
+ adds r0, r1
+ strh r0, [r2]
+_0809EC0C:
+ cmp r3, 0x3
+ bne _0809EC22
+ ldr r2, _0809EC30 @ =REG_BG1CNT
+ ldrh r1, [r2]
+ ldr r0, _0809EC34 @ =0x0000e0ff
+ ands r0, r1
+ movs r3, 0xC0
+ lsls r3, 4
+ adds r1, r3, 0
+ adds r0, r1
+ strh r0, [r2]
+_0809EC22:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809EC28: .4byte 0x02018000
+_0809EC2C: .4byte gUnknown_030042C0
+_0809EC30: .4byte REG_BG1CNT
+_0809EC34: .4byte 0x0000e0ff
+ thumb_func_end sub_809EBC4
+
+ thumb_func_start sub_809EC38
+sub_809EC38: @ 809EC38
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, _0809EC5C @ =gTasks + 0x8
+ adds r6, r0, r1
+ movs r1, 0
+ ldrsh r0, [r6, r1]
+ cmp r0, 0x5
+ bls _0809EC52
+ b _0809EE64
+_0809EC52:
+ lsls r0, 2
+ ldr r1, _0809EC60 @ =_0809EC64
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0809EC5C: .4byte gTasks + 0x8
+_0809EC60: .4byte _0809EC64
+ .align 2, 0
+_0809EC64:
+ .4byte _0809EC7C
+ .4byte _0809ED14
+ .4byte _0809ED98
+ .4byte _0809EE12
+ .4byte _0809EE1C
+ .4byte _0809EE4C
+_0809EC7C:
+ ldr r1, _0809ECB8 @ =0x02018000
+ adds r0, r1, 0
+ adds r0, 0x80
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0809ECC8
+ ldrb r3, [r1, 0xB]
+ cmp r3, 0
+ beq _0809EC98
+ ldr r1, _0809ECBC @ =gUnknown_03004288
+ movs r2, 0x80
+ lsls r2, 1
+ adds r0, r2, 0
+ strh r0, [r1]
+_0809EC98:
+ cmp r3, 0x1
+ bne _0809ECAE
+ ldr r2, _0809ECC0 @ =REG_BG2CNT
+ ldrh r1, [r2]
+ ldr r0, _0809ECC4 @ =0x0000e0ff
+ ands r0, r1
+ movs r4, 0x80
+ lsls r4, 4
+ adds r1, r4, 0
+ adds r0, r1
+ strh r0, [r2]
+_0809ECAE:
+ cmp r3, 0x2
+ beq _0809ECB4
+ b _0809EE3A
+_0809ECB4:
+ ldr r2, _0809ECC0 @ =REG_BG2CNT
+ b _0809ECF6
+ .align 2, 0
+_0809ECB8: .4byte 0x02018000
+_0809ECBC: .4byte gUnknown_03004288
+_0809ECC0: .4byte REG_BG2CNT
+_0809ECC4: .4byte 0x0000e0ff
+_0809ECC8:
+ ldrb r3, [r1, 0xB]
+ cmp r3, 0
+ beq _0809ECD8
+ ldr r1, _0809ED08 @ =gUnknown_030042C0
+ movs r4, 0x80
+ lsls r4, 1
+ adds r0, r4, 0
+ strh r0, [r1]
+_0809ECD8:
+ cmp r3, 0x1
+ bne _0809ECEE
+ ldr r2, _0809ED0C @ =REG_BG1CNT
+ ldrh r1, [r2]
+ ldr r0, _0809ED10 @ =0x0000e0ff
+ ands r0, r1
+ movs r4, 0x80
+ lsls r4, 4
+ adds r1, r4, 0
+ adds r0, r1
+ strh r0, [r2]
+_0809ECEE:
+ cmp r3, 0x2
+ beq _0809ECF4
+ b _0809EE3A
+_0809ECF4:
+ ldr r2, _0809ED0C @ =REG_BG1CNT
+_0809ECF6:
+ ldrh r1, [r2]
+ ldr r0, _0809ED10 @ =0x0000e0ff
+ ands r0, r1
+ movs r3, 0xA0
+ lsls r3, 4
+ adds r1, r3, 0
+ adds r0, r1
+ strh r0, [r2]
+ b _0809EE3A
+ .align 2, 0
+_0809ED08: .4byte gUnknown_030042C0
+_0809ED0C: .4byte REG_BG1CNT
+_0809ED10: .4byte 0x0000e0ff
+_0809ED14:
+ ldr r0, _0809ED48 @ =0x02018000
+ adds r0, 0x80
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0809ED5C
+ ldr r1, _0809ED4C @ =gUnknown_030042C0
+ ldrh r0, [r1]
+ subs r0, 0x20
+ strh r0, [r1]
+ lsls r0, 16
+ cmp r0, 0
+ beq _0809ED2E
+ b _0809EE64
+_0809ED2E:
+ ldr r3, _0809ED50 @ =REG_BG1CNT
+ ldrh r2, [r3]
+ ldr r1, _0809ED54 @ =0x0000fffc
+ adds r0, r1, 0
+ ands r0, r2
+ adds r0, 0x2
+ strh r0, [r3]
+ ldr r2, _0809ED58 @ =REG_BG2CNT
+ ldrh r0, [r2]
+ ands r1, r0
+ adds r1, 0x1
+ strh r1, [r2]
+ b _0809EE3A
+ .align 2, 0
+_0809ED48: .4byte 0x02018000
+_0809ED4C: .4byte gUnknown_030042C0
+_0809ED50: .4byte REG_BG1CNT
+_0809ED54: .4byte 0x0000fffc
+_0809ED58: .4byte REG_BG2CNT
+_0809ED5C:
+ ldr r1, _0809ED88 @ =gUnknown_03004288
+ ldrh r0, [r1]
+ subs r0, 0x20
+ strh r0, [r1]
+ lsls r0, 16
+ cmp r0, 0
+ beq _0809ED6C
+ b _0809EE64
+_0809ED6C:
+ ldr r3, _0809ED8C @ =REG_BG1CNT
+ ldrh r2, [r3]
+ ldr r1, _0809ED90 @ =0x0000fffc
+ adds r0, r1, 0
+ ands r0, r2
+ adds r0, 0x1
+ strh r0, [r3]
+ ldr r2, _0809ED94 @ =REG_BG2CNT
+ ldrh r0, [r2]
+ ands r1, r0
+ adds r1, 0x2
+ strh r1, [r2]
+ b _0809EE3A
+ .align 2, 0
+_0809ED88: .4byte gUnknown_03004288
+_0809ED8C: .4byte REG_BG1CNT
+_0809ED90: .4byte 0x0000fffc
+_0809ED94: .4byte REG_BG2CNT
+_0809ED98:
+ ldr r1, _0809EDD4 @ =0x02018000
+ ldrb r3, [r1, 0xB]
+ adds r0, r3, 0x1
+ adds r2, r1, 0
+ adds r2, 0x7E
+ strb r0, [r2]
+ ldrb r2, [r1, 0x8]
+ subs r0, r2, 0x2
+ lsls r0, 24
+ lsrs r0, 24
+ adds r5, r1, 0
+ cmp r0, 0x1
+ bhi _0809EDD8
+ adds r1, 0x7F
+ movs r0, 0
+ strb r0, [r1]
+ adds r4, r5, 0
+ adds r4, 0x10
+ adds r0, r4, 0
+ bl sub_80A029C
+ adds r5, 0x79
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80A0428
+ ldrb r0, [r5]
+ bl sub_80A00F4
+ b _0809EE3A
+ .align 2, 0
+_0809EDD4: .4byte 0x02018000
+_0809EDD8:
+ lsls r0, r3, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bls _0809EDFA
+ adds r0, r5, 0
+ adds r0, 0x7B
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0809EDF2
+ lsls r0, r2, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bne _0809EDFA
+_0809EDF2:
+ adds r1, r5, 0
+ adds r1, 0x7F
+ movs r0, 0x6
+ b _0809EE0E
+_0809EDFA:
+ ldrb r0, [r5, 0xB]
+ cmp r0, 0
+ bne _0809EE08
+ adds r1, r5, 0
+ adds r1, 0x7F
+ movs r0, 0x7
+ b _0809EE0E
+_0809EE08:
+ adds r1, r5, 0
+ adds r1, 0x7F
+ movs r0, 0
+_0809EE0E:
+ strb r0, [r1]
+ b _0809EE3A
+_0809EE12:
+ bl sub_80A0EE8
+ bl sub_80A0DD0
+ b _0809EE3A
+_0809EE1C:
+ ldr r0, _0809EE44 @ =gUnknown_083C1598
+ ldr r4, _0809EE48 @ =0x02018000
+ ldrb r1, [r4, 0xB]
+ lsls r1, 2
+ adds r1, r0
+ adds r0, r4, 0
+ adds r0, 0x10
+ ldr r1, [r1]
+ bl _call_via_r1
+ adds r4, 0x80
+ ldrb r0, [r4]
+ movs r1, 0x1
+ eors r0, r1
+ strb r0, [r4]
+_0809EE3A:
+ ldrh r0, [r6]
+ adds r0, 0x1
+ strh r0, [r6]
+ b _0809EE64
+ .align 2, 0
+_0809EE44: .4byte gUnknown_083C1598
+_0809EE48: .4byte 0x02018000
+_0809EE4C:
+ bl sub_8055870
+ cmp r0, 0x1
+ beq _0809EE64
+ ldr r1, _0809EE6C @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0809EE70 @ =gUnknown_03005CF0
+ ldr r1, [r1]
+ str r1, [r0]
+_0809EE64:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809EE6C: .4byte gTasks
+_0809EE70: .4byte gUnknown_03005CF0
+ thumb_func_end sub_809EC38
+
+ thumb_func_start sub_809EE74
+sub_809EE74: @ 809EE74
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, _0809EE98 @ =gTasks + 0x8
+ adds r6, r0, r1
+ movs r1, 0
+ ldrsh r0, [r6, r1]
+ cmp r0, 0x6
+ bls _0809EE8E
+ b _0809F0C0
+_0809EE8E:
+ lsls r0, 2
+ ldr r1, _0809EE9C @ =_0809EEA0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0809EE98: .4byte gTasks + 0x8
+_0809EE9C: .4byte _0809EEA0
+ .align 2, 0
+_0809EEA0:
+ .4byte _0809EEBC
+ .4byte _0809EEE0
+ .4byte _0809EFB4
+ .4byte _0809EFF4
+ .4byte _0809F06E
+ .4byte _0809F078
+ .4byte _0809F0A8
+_0809EEBC:
+ ldr r0, _0809EECC @ =0x02018000
+ adds r0, 0x80
+ ldrb r1, [r0]
+ cmp r1, 0
+ bne _0809EED4
+ ldr r0, _0809EED0 @ =gUnknown_03004288
+ strh r1, [r0]
+ b _0809F096
+ .align 2, 0
+_0809EECC: .4byte 0x02018000
+_0809EED0: .4byte gUnknown_03004288
+_0809EED4:
+ ldr r1, _0809EEDC @ =gUnknown_030042C0
+ movs r0, 0
+ strh r0, [r1]
+ b _0809F096
+ .align 2, 0
+_0809EEDC: .4byte gUnknown_030042C0
+_0809EEE0:
+ ldr r1, _0809EF30 @ =0x02018000
+ adds r0, r1, 0
+ adds r0, 0x80
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0809EF4C
+ ldrb r3, [r1, 0xB]
+ cmp r3, 0x1
+ bne _0809EF02
+ ldr r2, _0809EF34 @ =REG_BG2CNT
+ ldrh r1, [r2]
+ ldr r0, _0809EF38 @ =0x0000e0fc
+ ands r0, r1
+ ldr r4, _0809EF3C @ =0x00000801
+ adds r1, r4, 0
+ adds r0, r1
+ strh r0, [r2]
+_0809EF02:
+ cmp r3, 0x2
+ bne _0809EF16
+ ldr r2, _0809EF34 @ =REG_BG2CNT
+ ldrh r1, [r2]
+ ldr r0, _0809EF38 @ =0x0000e0fc
+ ands r0, r1
+ ldr r4, _0809EF40 @ =0x00000a01
+ adds r1, r4, 0
+ adds r0, r1
+ strh r0, [r2]
+_0809EF16:
+ cmp r3, 0x3
+ bne _0809EF2A
+ ldr r2, _0809EF34 @ =REG_BG2CNT
+ ldrh r1, [r2]
+ ldr r0, _0809EF38 @ =0x0000e0fc
+ ands r0, r1
+ ldr r3, _0809EF44 @ =0x00000c01
+ adds r1, r3, 0
+ adds r0, r1
+ strh r0, [r2]
+_0809EF2A:
+ ldr r2, _0809EF48 @ =REG_BG1CNT
+ b _0809EF8C
+ .align 2, 0
+_0809EF30: .4byte 0x02018000
+_0809EF34: .4byte REG_BG2CNT
+_0809EF38: .4byte 0x0000e0fc
+_0809EF3C: .4byte 0x00000801
+_0809EF40: .4byte 0x00000a01
+_0809EF44: .4byte 0x00000c01
+_0809EF48: .4byte REG_BG1CNT
+_0809EF4C:
+ ldrb r3, [r1, 0xB]
+ cmp r3, 0x1
+ bne _0809EF62
+ ldr r2, _0809EF98 @ =REG_BG1CNT
+ ldrh r1, [r2]
+ ldr r0, _0809EF9C @ =0x0000e0fc
+ ands r0, r1
+ ldr r4, _0809EFA0 @ =0x00000801
+ adds r1, r4, 0
+ adds r0, r1
+ strh r0, [r2]
+_0809EF62:
+ cmp r3, 0x2
+ bne _0809EF76
+ ldr r2, _0809EF98 @ =REG_BG1CNT
+ ldrh r1, [r2]
+ ldr r0, _0809EF9C @ =0x0000e0fc
+ ands r0, r1
+ ldr r4, _0809EFA4 @ =0x00000a01
+ adds r1, r4, 0
+ adds r0, r1
+ strh r0, [r2]
+_0809EF76:
+ cmp r3, 0x3
+ bne _0809EF8A
+ ldr r2, _0809EF98 @ =REG_BG1CNT
+ ldrh r1, [r2]
+ ldr r0, _0809EF9C @ =0x0000e0fc
+ ands r0, r1
+ ldr r3, _0809EFA8 @ =0x00000c01
+ adds r1, r3, 0
+ adds r0, r1
+ strh r0, [r2]
+_0809EF8A:
+ ldr r2, _0809EFAC @ =REG_BG2CNT
+_0809EF8C:
+ ldrh r1, [r2]
+ ldr r0, _0809EFB0 @ =0x0000fffc
+ ands r0, r1
+ adds r0, 0x2
+ strh r0, [r2]
+ b _0809F096
+ .align 2, 0
+_0809EF98: .4byte REG_BG1CNT
+_0809EF9C: .4byte 0x0000e0fc
+_0809EFA0: .4byte 0x00000801
+_0809EFA4: .4byte 0x00000a01
+_0809EFA8: .4byte 0x00000c01
+_0809EFAC: .4byte REG_BG2CNT
+_0809EFB0: .4byte 0x0000fffc
+_0809EFB4:
+ ldr r0, _0809EFD4 @ =0x02018000
+ adds r0, 0x80
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0809EFDC
+ ldr r0, _0809EFD8 @ =gUnknown_03004288
+ ldrh r1, [r0]
+ adds r1, 0x20
+ strh r1, [r0]
+ lsls r1, 16
+ movs r0, 0x80
+ lsls r0, 17
+ cmp r1, r0
+ bne _0809F0C0
+ b _0809F096
+ .align 2, 0
+_0809EFD4: .4byte 0x02018000
+_0809EFD8: .4byte gUnknown_03004288
+_0809EFDC:
+ ldr r0, _0809EFF0 @ =gUnknown_030042C0
+ ldrh r1, [r0]
+ adds r1, 0x20
+ strh r1, [r0]
+ lsls r1, 16
+ movs r0, 0x80
+ lsls r0, 17
+ cmp r1, r0
+ bne _0809F0C0
+ b _0809F096
+ .align 2, 0
+_0809EFF0: .4byte gUnknown_030042C0
+_0809EFF4:
+ ldr r1, _0809F030 @ =0x02018000
+ ldrb r3, [r1, 0xB]
+ adds r0, r3, 0x1
+ adds r2, r1, 0
+ adds r2, 0x7E
+ strb r0, [r2]
+ ldrb r2, [r1, 0x8]
+ subs r0, r2, 0x2
+ lsls r0, 24
+ lsrs r0, 24
+ adds r5, r1, 0
+ cmp r0, 0x1
+ bhi _0809F034
+ adds r1, 0x7F
+ movs r0, 0
+ strb r0, [r1]
+ adds r4, r5, 0
+ adds r4, 0x10
+ adds r0, r4, 0
+ bl sub_80A029C
+ adds r5, 0x79
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80A0428
+ ldrb r0, [r5]
+ bl sub_80A00F4
+ b _0809F096
+ .align 2, 0
+_0809F030: .4byte 0x02018000
+_0809F034:
+ lsls r0, r3, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bls _0809F056
+ adds r0, r5, 0
+ adds r0, 0x7B
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0809F04E
+ lsls r0, r2, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bne _0809F056
+_0809F04E:
+ adds r1, r5, 0
+ adds r1, 0x7F
+ movs r0, 0x6
+ b _0809F06A
+_0809F056:
+ ldrb r0, [r5, 0xB]
+ cmp r0, 0
+ bne _0809F064
+ adds r1, r5, 0
+ adds r1, 0x7F
+ movs r0, 0x7
+ b _0809F06A
+_0809F064:
+ adds r1, r5, 0
+ adds r1, 0x7F
+ movs r0, 0
+_0809F06A:
+ strb r0, [r1]
+ b _0809F096
+_0809F06E:
+ bl sub_80A0EE8
+ bl sub_80A0DD0
+ b _0809F096
+_0809F078:
+ ldr r0, _0809F0A0 @ =gUnknown_083C1598
+ ldr r4, _0809F0A4 @ =0x02018000
+ ldrb r1, [r4, 0xB]
+ lsls r1, 2
+ adds r1, r0
+ adds r0, r4, 0
+ adds r0, 0x10
+ ldr r1, [r1]
+ bl _call_via_r1
+ adds r4, 0x80
+ ldrb r0, [r4]
+ movs r1, 0x1
+ eors r0, r1
+ strb r0, [r4]
+_0809F096:
+ ldrh r0, [r6]
+ adds r0, 0x1
+ strh r0, [r6]
+ b _0809F0C0
+ .align 2, 0
+_0809F0A0: .4byte gUnknown_083C1598
+_0809F0A4: .4byte 0x02018000
+_0809F0A8:
+ bl sub_8055870
+ cmp r0, 0x1
+ beq _0809F0C0
+ ldr r1, _0809F0C8 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0809F0CC @ =gUnknown_03005CF0
+ ldr r1, [r1]
+ str r1, [r0]
+_0809F0C0:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809F0C8: .4byte gTasks
+_0809F0CC: .4byte gUnknown_03005CF0
+ thumb_func_end sub_809EE74
+
+ thumb_func_start sub_809F0D0
+sub_809F0D0: @ 809F0D0
+ push {r4-r7,lr}
+ adds r4, r1, 0
+ lsls r0, 24
+ lsrs r7, r0, 24
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r1, _0809F110 @ =0x02018000
+ ldrb r0, [r1, 0xB]
+ adds r0, r4
+ movs r5, 0
+ strb r0, [r1, 0xB]
+ ldr r2, _0809F114 @ =gUnknown_03005CF0
+ ldr r1, _0809F118 @ =gTasks
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r6, r0, r1
+ ldr r0, [r6]
+ str r0, [r2]
+ bl sub_809FBE4
+ strh r5, [r6, 0x8]
+ lsls r4, 24
+ asrs r4, 24
+ movs r0, 0x1
+ negs r0, r0
+ cmp r4, r0
+ bne _0809F120
+ ldr r0, _0809F11C @ =sub_809EC38
+ str r0, [r6]
+ b _0809F12A
+ .align 2, 0
+_0809F110: .4byte 0x02018000
+_0809F114: .4byte gUnknown_03005CF0
+_0809F118: .4byte gTasks
+_0809F11C: .4byte sub_809EC38
+_0809F120:
+ ldr r1, _0809F130 @ =sub_809EE74
+ str r1, [r6]
+ adds r0, r7, 0
+ bl _call_via_r1
+_0809F12A:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809F130: .4byte sub_809EE74
+ thumb_func_end sub_809F0D0
+
+ thumb_func_start SummaryScreenHandleLeftRightInput
+SummaryScreenHandleLeftRightInput: @ 809F134
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r1, 24
+ lsrs r5, r1, 24
+ ldr r4, _0809F1AC @ =0x02018010
+ adds r0, r4, 0
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0
+ bne _0809F1A6
+ lsls r0, r5, 24
+ asrs r5, r0, 24
+ movs r0, 0x1
+ negs r0, r0
+ cmp r5, r0
+ bne _0809F168
+ adds r0, r4, 0
+ subs r0, 0x10
+ adds r1, r4, 0
+ adds r1, 0x65
+ ldrb r0, [r0, 0xB]
+ ldrb r1, [r1]
+ cmp r0, r1
+ beq _0809F1A6
+_0809F168:
+ cmp r5, 0x1
+ bne _0809F17C
+ adds r0, r4, 0
+ subs r0, 0x10
+ adds r1, r4, 0
+ adds r1, 0x66
+ ldrb r0, [r0, 0xB]
+ ldrb r1, [r1]
+ cmp r0, r1
+ beq _0809F1A6
+_0809F17C:
+ ldr r0, _0809F1B0 @ =sub_80A1334
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ bne _0809F1A6
+ ldr r0, _0809F1B4 @ =sub_80A1500
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ bne _0809F1A6
+ movs r0, 0x5
+ bl PlaySE
+ adds r0, r6, 0
+ adds r1, r5, 0
+ bl sub_809F0D0
+_0809F1A6:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809F1AC: .4byte 0x02018010
+_0809F1B0: .4byte sub_80A1334
+_0809F1B4: .4byte sub_80A1500
+ thumb_func_end SummaryScreenHandleLeftRightInput
+
+ thumb_func_start SummaryScreenHandleUpDownInput
+SummaryScreenHandleUpDownInput: @ 809F1B8
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r1, 24
+ lsrs r4, r1, 24
+ ldr r0, _0809F1E4 @ =0x02018000
+ ldrb r1, [r0, 0xE]
+ adds r2, r0, 0
+ cmp r1, 0x1
+ bne _0809F202
+ ldrb r0, [r2, 0xB]
+ cmp r0, 0
+ beq _0809F1E8
+ lsls r1, r4, 24
+ asrs r1, 24
+ movs r4, 0x1
+ eors r1, r4
+ negs r0, r1
+ orrs r0, r1
+ lsrs r4, r0, 31
+ b _0809F1F4
+ .align 2, 0
+_0809F1E4: .4byte 0x02018000
+_0809F1E8:
+ lsls r0, r4, 24
+ asrs r0, 24
+ movs r4, 0x3
+ cmp r0, 0x1
+ bne _0809F1F4
+ movs r4, 0x2
+_0809F1F4:
+ ldr r0, [r2]
+ ldrb r1, [r2, 0x9]
+ ldrb r2, [r2, 0xA]
+ adds r3, r4, 0
+ bl StorageSystemGetNextMonIndex
+ b _0809F22C
+_0809F202:
+ bl sub_80F9344
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0809F224
+ bl IsLinkDoubleBattle
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0809F224
+ lsls r0, r4, 24
+ asrs r0, 24
+ bl sub_809F3CC
+ b _0809F22C
+_0809F224:
+ lsls r0, r4, 24
+ asrs r0, 24
+ bl sub_809F284
+_0809F22C:
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 24
+ asrs r0, 24
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ beq _0809F270
+ movs r0, 0x5
+ bl PlaySE
+ ldr r5, _0809F278 @ =0x02018010
+ adds r0, r5, 0
+ bl GetMonStatusAndPokerus
+ lsls r0, 24
+ cmp r0, 0
+ beq _0809F258
+ movs r0, 0x2
+ negs r0, r0
+ bl sub_80A12D0
+_0809F258:
+ adds r0, r5, 0
+ subs r0, 0x10
+ strb r4, [r0, 0x9]
+ ldr r1, _0809F27C @ =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, [r0]
+ str r1, [r5, 0x74]
+ ldr r1, _0809F280 @ =sub_809F43C
+ str r1, [r0]
+_0809F270:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809F278: .4byte 0x02018010
+_0809F27C: .4byte gTasks
+_0809F280: .4byte sub_809F43C
+ thumb_func_end SummaryScreenHandleUpDownInput
+
+ thumb_func_start sub_809F284
+sub_809F284: @ 809F284
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r0, _0809F2C0 @ =0x02018000
+ ldr r7, [r0]
+ movs r6, 0
+ ldrb r1, [r0, 0xB]
+ adds r4, r0, 0
+ cmp r1, 0
+ bne _0809F2C4
+ lsls r0, r3, 24
+ asrs r2, r0, 24
+ movs r1, 0x1
+ negs r1, r1
+ adds r5, r0, 0
+ cmp r2, r1
+ bne _0809F2AC
+ ldrb r0, [r4, 0x9]
+ cmp r0, 0
+ beq _0809F2E4
+_0809F2AC:
+ asrs r0, r5, 24
+ cmp r0, 0x1
+ bne _0809F2BA
+ ldrb r0, [r4, 0x9]
+ ldrb r1, [r4, 0xA]
+ cmp r0, r1
+ bcs _0809F2E4
+_0809F2BA:
+ ldrb r0, [r4, 0x9]
+ adds r0, r3
+ b _0809F304
+ .align 2, 0
+_0809F2C0: .4byte 0x02018000
+_0809F2C4:
+ lsls r5, r3, 24
+_0809F2C6:
+ lsls r0, r6, 24
+ asrs r0, 24
+ asrs r1, r5, 24
+ adds r0, r1
+ lsls r0, 24
+ ldr r4, _0809F2EC @ =0x02018000
+ lsrs r6, r0, 24
+ asrs r0, 24
+ ldrb r2, [r4, 0x9]
+ adds r1, r0, r2
+ cmp r1, 0
+ blt _0809F2E4
+ ldrb r0, [r4, 0xA]
+ cmp r1, r0
+ ble _0809F2F0
+_0809F2E4:
+ movs r0, 0x1
+ negs r0, r0
+ b _0809F308
+ .align 2, 0
+_0809F2EC: .4byte 0x02018000
+_0809F2F0:
+ movs r0, 0x64
+ muls r0, r1
+ adds r0, r7, r0
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0
+ bne _0809F2C6
+ ldrb r0, [r4, 0x9]
+ adds r0, r6
+_0809F304:
+ lsls r0, 24
+ asrs r0, 24
+_0809F308:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809F284
+
+ thumb_func_start sub_809F310
+sub_809F310: @ 809F310
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _0809F33C
+ ldr r0, _0809F338 @ =0x02018000
+ ldrb r0, [r0, 0xB]
+ cmp r0, 0
+ bne _0809F332
+ adds r0, r4, 0
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0
+ bne _0809F33C
+_0809F332:
+ movs r0, 0x1
+ b _0809F33E
+ .align 2, 0
+_0809F338: .4byte 0x02018000
+_0809F33C:
+ movs r0, 0
+_0809F33E:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809F310
+
+ thumb_func_start sub_809F344
+sub_809F344: @ 809F344
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+_0809F34A:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x6
+ beq _0809F37C
+ ldr r0, _0809F374 @ =gUnknown_083C15A8
+ adds r5, r4, r0
+ ldrb r1, [r5]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0809F378 @ =gPlayerParty
+ adds r0, r1
+ bl sub_809F310
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0809F34A
+ movs r0, 0
+ ldrsb r0, [r5, r0]
+ b _0809F380
+ .align 2, 0
+_0809F374: .4byte gUnknown_083C15A8
+_0809F378: .4byte gPlayerParty
+_0809F37C:
+ movs r0, 0x1
+ negs r0, r0
+_0809F380:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809F344
+
+ thumb_func_start sub_809F388
+sub_809F388: @ 809F388
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+_0809F38E:
+ cmp r4, 0
+ beq _0809F3C0
+ subs r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0809F3B8 @ =gUnknown_083C15A8
+ adds r5, r4, r0
+ ldrb r1, [r5]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0809F3BC @ =gPlayerParty
+ adds r0, r1
+ bl sub_809F310
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0809F38E
+ movs r0, 0
+ ldrsb r0, [r5, r0]
+ b _0809F3C4
+ .align 2, 0
+_0809F3B8: .4byte gUnknown_083C15A8
+_0809F3BC: .4byte gPlayerParty
+_0809F3C0:
+ movs r0, 0x1
+ negs r0, r0
+_0809F3C4:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809F388
+
+ thumb_func_start sub_809F3CC
+sub_809F3CC: @ 809F3CC
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r2, 0
+ movs r1, 0
+ ldr r3, _0809F41C @ =gUnknown_083C15A8
+ ldr r4, _0809F420 @ =0x02018000
+ ldrb r0, [r3]
+ ldrb r5, [r4, 0x9]
+ cmp r0, r5
+ beq _0809F3FC
+ adds r5, r3, 0
+ adds r3, r4, 0
+_0809F3E6:
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x5
+ bhi _0809F3FC
+ adds r0, r1, r5
+ ldrb r0, [r0]
+ ldrb r4, [r3, 0x9]
+ cmp r0, r4
+ bne _0809F3E6
+ adds r2, r1, 0
+_0809F3FC:
+ lsls r0, r6, 24
+ asrs r1, r0, 24
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ bne _0809F40C
+ cmp r2, 0
+ beq _0809F414
+_0809F40C:
+ cmp r1, 0x1
+ bne _0809F424
+ cmp r2, 0x5
+ bne _0809F42C
+_0809F414:
+ movs r0, 0x1
+ negs r0, r0
+ b _0809F436
+ .align 2, 0
+_0809F41C: .4byte gUnknown_083C15A8
+_0809F420: .4byte 0x02018000
+_0809F424:
+ adds r0, r2, 0
+ bl sub_809F388
+ b _0809F432
+_0809F42C:
+ adds r0, r2, 0
+ bl sub_809F344
+_0809F432:
+ lsls r0, 24
+ asrs r0, 24
+_0809F436:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809F3CC
+
+ thumb_func_start sub_809F43C
+sub_809F43C: @ 809F43C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0809F45C @ =gMain
+ ldr r1, _0809F460 @ =0x0000043c
+ adds r5, r0, r1
+ ldrb r2, [r5]
+ adds r3, r0, 0
+ cmp r2, 0x8
+ bls _0809F452
+ b _0809F5CC
+_0809F452:
+ lsls r0, r2, 2
+ ldr r1, _0809F464 @ =_0809F468
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0809F45C: .4byte gMain
+_0809F460: .4byte 0x0000043c
+_0809F464: .4byte _0809F468
+ .align 2, 0
+_0809F468:
+ .4byte _0809F48C
+ .4byte _0809F492
+ .4byte _0809F4BC
+ .4byte _0809F4D8
+ .4byte _0809F4F4
+ .4byte _0809F51C
+ .4byte _0809F578
+ .4byte _0809F584
+ .4byte _0809F5A0
+_0809F48C:
+ bl StopCryAndClearCrySongs
+ b _0809F5B2
+_0809F492:
+ ldr r0, _0809F4AC @ =0x02018000
+ ldrb r1, [r0, 0xC]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0809F4B0 @ =gSprites
+ adds r0, r1
+ bl DestroySpriteAndFreeResources
+ ldr r1, _0809F4B4 @ =gMain
+ ldr r0, _0809F4B8 @ =0x0000043c
+ adds r1, r0
+ b _0809F5B8
+ .align 2, 0
+_0809F4AC: .4byte 0x02018000
+_0809F4B0: .4byte gSprites
+_0809F4B4: .4byte gMain
+_0809F4B8: .4byte 0x0000043c
+_0809F4BC:
+ ldr r0, _0809F4D0 @ =0x02018000
+ ldrb r1, [r0, 0xD]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0809F4D4 @ =gSprites
+ adds r0, r1
+ bl DestroySpriteAndFreeResources
+ b _0809F5B2
+ .align 2, 0
+_0809F4D0: .4byte 0x02018000
+_0809F4D4: .4byte gSprites
+_0809F4D8:
+ ldr r0, _0809F4EC @ =0x02018000
+ adds r1, r0, 0
+ adds r1, 0x74
+ movs r2, 0
+ strb r2, [r1]
+ adds r0, 0x79
+ strb r2, [r0]
+ ldr r0, _0809F4F0 @ =0x0000043c
+ adds r1, r3, r0
+ b _0809F5B8
+ .align 2, 0
+_0809F4EC: .4byte 0x02018000
+_0809F4F0: .4byte 0x0000043c
+_0809F4F4:
+ ldr r4, _0809F518 @ =0x02018010
+ adds r0, r4, 0
+ bl sub_809F678
+ adds r0, r4, 0
+ bl GetMonStatusAndPokerus
+ lsls r0, 24
+ cmp r0, 0
+ beq _0809F50E
+ movs r0, 0x2
+ bl sub_80A12D0
+_0809F50E:
+ adds r0, r4, 0
+ bl sub_80A0EA4
+ b _0809F5B2
+ .align 2, 0
+_0809F518: .4byte 0x02018010
+_0809F51C:
+ ldr r4, _0809F558 @ =0x02018010
+ adds r5, r4, 0
+ adds r5, 0x64
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_809F6B4
+ adds r1, r4, 0
+ subs r1, 0x10
+ strb r0, [r1, 0xC]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ beq _0809F5EA
+ movs r0, 0
+ strb r0, [r5]
+ adds r0, r4, 0
+ movs r1, 0x2D
+ bl GetMonData
+ adds r1, r0, 0
+ cmp r1, 0
+ beq _0809F560
+ ldr r1, _0809F55C @ =gUnknown_030041B0
+ movs r2, 0x80
+ lsls r2, 1
+ adds r0, r2, 0
+ strh r0, [r1]
+ b _0809F564
+ .align 2, 0
+_0809F558: .4byte 0x02018010
+_0809F55C: .4byte gUnknown_030041B0
+_0809F560:
+ ldr r0, _0809F56C @ =gUnknown_030041B0
+ strh r1, [r0]
+_0809F564:
+ ldr r1, _0809F570 @ =gMain
+ ldr r0, _0809F574 @ =0x0000043c
+ adds r1, r0
+ b _0809F5B8
+ .align 2, 0
+_0809F56C: .4byte gUnknown_030041B0
+_0809F570: .4byte gMain
+_0809F574: .4byte 0x0000043c
+_0809F578:
+ ldr r0, _0809F580 @ =0x02018010
+ bl sub_80A1DCC
+ b _0809F5B2
+ .align 2, 0
+_0809F580: .4byte 0x02018010
+_0809F584:
+ ldr r0, _0809F594 @ =0x02018010
+ bl sub_80A1DE8
+ ldr r1, _0809F598 @ =gMain
+ ldr r0, _0809F59C @ =0x0000043c
+ adds r1, r0
+ b _0809F5B8
+ .align 2, 0
+_0809F594: .4byte 0x02018010
+_0809F598: .4byte gMain
+_0809F59C: .4byte 0x0000043c
+_0809F5A0:
+ bl sub_809F5F8
+ lsls r0, 24
+ cmp r0, 0
+ beq _0809F5EA
+ ldr r0, _0809F5C0 @ =0x02018000
+ adds r0, 0x74
+ movs r1, 0
+ strb r1, [r0]
+_0809F5B2:
+ ldr r1, _0809F5C4 @ =gMain
+ ldr r2, _0809F5C8 @ =0x0000043c
+ adds r1, r2
+_0809F5B8:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _0809F5EA
+ .align 2, 0
+_0809F5C0: .4byte 0x02018000
+_0809F5C4: .4byte gMain
+_0809F5C8: .4byte 0x0000043c
+_0809F5CC:
+ bl sub_8055870
+ cmp r0, 0x1
+ beq _0809F5EA
+ movs r0, 0
+ strb r0, [r5]
+ ldr r0, _0809F5F0 @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _0809F5F4 @ =0x02018000
+ adds r0, 0x84
+ ldr r0, [r0]
+ str r0, [r1]
+_0809F5EA:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809F5F0: .4byte gTasks
+_0809F5F4: .4byte 0x02018000
+ thumb_func_end sub_809F43C
+
+ thumb_func_start sub_809F5F8
+sub_809F5F8: @ 809F5F8
+ push {r4,lr}
+ ldr r2, _0809F61C @ =0x02018000
+ adds r4, r2, 0
+ adds r4, 0x74
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _0809F624
+ ldr r0, _0809F620 @ =gUnknown_083C1588
+ ldrb r1, [r2, 0xB]
+ lsls r1, 2
+ adds r1, r0
+ adds r0, r2, 0
+ adds r0, 0x10
+ ldr r1, [r1]
+ bl _call_via_r1
+ movs r0, 0x1
+ b _0809F634
+ .align 2, 0
+_0809F61C: .4byte 0x02018000
+_0809F620: .4byte gUnknown_083C1588
+_0809F624:
+ adds r0, r2, 0
+ adds r0, 0x10
+ bl sub_809FAC8
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ movs r0, 0
+_0809F634:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809F5F8
+
+ thumb_func_start sub_809F63C
+sub_809F63C: @ 809F63C
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_809FE80
+ adds r0, r4, 0
+ bl sub_809FC34
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_809F63C
+
+ thumb_func_start sub_809F650
+sub_809F650: @ 809F650
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_80A00A4
+ adds r0, r4, 0
+ bl sub_809FF64
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_809F650
+
+ thumb_func_start sub_809F664
+sub_809F664: @ 809F664
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_80A0390
+ adds r0, r4, 0
+ bl sub_80A015C
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_809F664
+
+ thumb_func_start sub_809F678
+sub_809F678: @ 809F678
+ push {lr}
+ adds r3, r0, 0
+ ldr r1, _0809F698 @ =0x02018000
+ ldrb r0, [r1, 0xE]
+ cmp r0, 0
+ bne _0809F69C
+ ldr r2, [r1]
+ ldrb r1, [r1, 0x9]
+ movs r0, 0x64
+ muls r1, r0
+ adds r1, r2
+ adds r0, r3, 0
+ movs r2, 0x64
+ bl memcpy
+ b _0809F6AE
+ .align 2, 0
+_0809F698: .4byte 0x02018000
+_0809F69C:
+ ldr r0, [r1]
+ ldrb r2, [r1, 0x9]
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 4
+ adds r0, r1
+ adds r1, r3, 0
+ bl sub_803B4B4
+_0809F6AE:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_809F678
+
+ thumb_func_start sub_809F6B4
+sub_809F6B4: @ 809F6B4
+ push {r4-r7,lr}
+ sub sp, 0xC
+ adds r4, r0, 0
+ adds r7, r1, 0
+ ldrb r0, [r7]
+ cmp r0, 0
+ beq _0809F6D2
+ cmp r0, 0x1
+ beq _0809F718
+ adds r0, r4, 0
+ bl sub_80A1808
+ lsls r0, 24
+ lsrs r0, 24
+ b _0809F756
+_0809F6D2:
+ adds r0, r4, 0
+ movs r1, 0x41
+ bl GetMonData
+ lsls r0, 16
+ lsrs r5, r0, 16
+ adds r0, r4, 0
+ movs r1, 0
+ bl GetMonData
+ adds r6, r0, 0
+ lsls r0, r5, 3
+ ldr r1, _0809F70C @ =gMonFrontPicTable
+ adds r0, r1
+ ldr r1, _0809F710 @ =gMonFrontPicCoords
+ lsls r2, r5, 2
+ adds r2, r1
+ ldrb r1, [r2]
+ ldrb r2, [r2, 0x1]
+ movs r3, 0x80
+ lsls r3, 18
+ ldr r4, _0809F714 @ =gUnknown_081FAF4C
+ ldr r4, [r4, 0x4]
+ str r4, [sp]
+ str r5, [sp, 0x4]
+ str r6, [sp, 0x8]
+ bl HandleLoadSpecialPokePic
+ b _0809F74E
+ .align 2, 0
+_0809F70C: .4byte gMonFrontPicTable
+_0809F710: .4byte gMonFrontPicCoords
+_0809F714: .4byte gUnknown_081FAF4C
+_0809F718:
+ adds r0, r4, 0
+ movs r1, 0x41
+ bl GetMonData
+ lsls r0, 16
+ lsrs r5, r0, 16
+ adds r0, r4, 0
+ movs r1, 0
+ bl GetMonData
+ adds r6, r0, 0
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl GetMonData
+ adds r1, r0, 0
+ adds r0, r5, 0
+ adds r2, r6, 0
+ bl sub_80409C8
+ adds r4, r0, 0
+ bl LoadCompressedObjectPalette
+ ldrh r0, [r4, 0x4]
+ movs r1, 0x1
+ bl GetMonSpriteTemplate_803C56C
+_0809F74E:
+ ldrb r0, [r7]
+ adds r0, 0x1
+ strb r0, [r7]
+ movs r0, 0xFF
+_0809F756:
+ add sp, 0xC
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809F6B4
+
+ thumb_func_start sub_809F760
+sub_809F760: @ 809F760
+ push {lr}
+ lsls r1, 24
+ lsrs r1, 24
+ adds r2, r1, 0
+ cmp r1, 0x1
+ beq _0809F780
+ cmp r1, 0x1
+ bgt _0809F776
+ cmp r1, 0
+ beq _0809F77C
+ b _0809F788
+_0809F776:
+ cmp r2, 0x2
+ beq _0809F784
+ b _0809F788
+_0809F77C:
+ movs r1, 0xD
+ b _0809F78A
+_0809F780:
+ movs r1, 0xE
+ b _0809F78A
+_0809F784:
+ movs r1, 0xF
+ b _0809F78A
+_0809F788:
+ movs r1, 0x10
+_0809F78A:
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809F760
+
+ thumb_func_start sub_809F798
+sub_809F798: @ 809F798
+ push {lr}
+ lsls r1, 24
+ lsrs r1, 24
+ adds r2, r1, 0
+ cmp r1, 0x1
+ beq _0809F7B8
+ cmp r1, 0x1
+ bgt _0809F7AE
+ cmp r1, 0
+ beq _0809F7B4
+ b _0809F7C0
+_0809F7AE:
+ cmp r2, 0x2
+ beq _0809F7BC
+ b _0809F7C0
+_0809F7B4:
+ movs r1, 0x11
+ b _0809F7C2
+_0809F7B8:
+ movs r1, 0x12
+ b _0809F7C2
+_0809F7BC:
+ movs r1, 0x13
+ b _0809F7C2
+_0809F7C0:
+ movs r1, 0x14
+_0809F7C2:
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809F798
+
+ thumb_func_start sub_809F7D0
+sub_809F7D0: @ 809F7D0
+ push {r4,lr}
+ sub sp, 0x64
+ mov r0, sp
+ bl sub_809F678
+ ldr r4, _0809F804 @ =0x02018000
+ adds r0, r4, 0
+ adds r0, 0x79
+ ldrb r1, [r0]
+ mov r0, sp
+ bl sub_809F760
+ lsls r0, 16
+ lsrs r0, 16
+ bl IsHMMove
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0809F808
+ ldrb r0, [r4, 0x8]
+ cmp r0, 0x3
+ beq _0809F808
+ movs r0, 0
+ b _0809F80A
+ .align 2, 0
+_0809F804: .4byte 0x02018000
+_0809F808:
+ movs r0, 0x1
+_0809F80A:
+ add sp, 0x64
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809F7D0
+
+ thumb_func_start sub_809F814
+sub_809F814: @ 809F814
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r6, r0, 3
+ ldr r0, _0809F83C @ =gTasks + 0x8
+ mov r8, r0
+ adds r4, r6, r0
+ ldrh r1, [r4, 0x1C]
+ movs r2, 0x1C
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x3
+ bgt _0809F840
+ adds r0, r1, 0x1
+ strh r0, [r4, 0x1C]
+ b _0809F9C0
+ .align 2, 0
+_0809F83C: .4byte gTasks + 0x8
+_0809F840:
+ ldr r7, _0809F874 @ =gMain
+ ldrh r1, [r7, 0x2E]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0809F880
+ mov r0, r8
+ subs r0, 0x8
+ adds r0, r6, r0
+ ldr r1, _0809F878 @ =sub_809E260
+ str r1, [r0]
+ movs r0, 0x4
+ strh r0, [r4]
+ movs r0, 0x1
+ strh r0, [r4, 0x1A]
+ ldr r2, _0809F87C @ =0x02018000
+ ldrh r0, [r4, 0x1E]
+ adds r2, 0x79
+ strb r0, [r2]
+ movs r1, 0x1
+ negs r1, r1
+ adds r0, r5, 0
+ bl sub_809E8F0
+ b _0809F9C0
+ .align 2, 0
+_0809F874: .4byte gMain
+_0809F878: .4byte sub_809E260
+_0809F87C: .4byte 0x02018000
+_0809F880:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _0809F8B4
+ mov r0, r8
+ subs r0, 0x8
+ adds r0, r6, r0
+ ldr r1, _0809F8AC @ =sub_809E260
+ str r1, [r0]
+ movs r0, 0x4
+ strh r0, [r4]
+ movs r0, 0x1
+ strh r0, [r4, 0x1A]
+ ldr r2, _0809F8B0 @ =0x02018000
+ ldrh r0, [r4, 0x1E]
+ adds r2, 0x79
+ strb r0, [r2]
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_809E8F0
+ b _0809F9C0
+ .align 2, 0
+_0809F8AC: .4byte sub_809E260
+_0809F8B0: .4byte 0x02018000
+_0809F8B4:
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ bne _0809F8C8
+ bl sub_80F9284
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0809F918
+_0809F8C8:
+ ldr r1, _0809F90C @ =0x02018000
+ ldrb r0, [r1, 0xB]
+ cmp r0, 0x2
+ beq _0809F9C0
+ cmp r0, 0x3
+ bne _0809F8F4
+ adds r0, r1, 0
+ adds r0, 0x79
+ ldrb r0, [r0]
+ cmp r0, 0x4
+ bne _0809F8E8
+ adds r0, r1, 0
+ adds r0, 0x7C
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _0809F8F4
+_0809F8E8:
+ movs r0, 0
+ movs r1, 0xE
+ movs r2, 0x9
+ movs r3, 0x12
+ bl MenuZeroFillWindowRect
+_0809F8F4:
+ ldr r1, _0809F910 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0809F914 @ =sub_809E260
+ str r1, [r0]
+ movs r1, 0x1
+ negs r1, r1
+ adds r0, r5, 0
+ b _0809F972
+ .align 2, 0
+_0809F90C: .4byte 0x02018000
+_0809F910: .4byte gTasks
+_0809F914: .4byte sub_809E260
+_0809F918:
+ ldrh r1, [r7, 0x2E]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ bne _0809F92E
+ bl sub_80F9284
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ bne _0809F994
+_0809F92E:
+ ldr r1, _0809F988 @ =0x02018000
+ adds r2, r1, 0
+ adds r2, 0x76
+ ldrb r0, [r1, 0xB]
+ ldrb r2, [r2]
+ cmp r0, r2
+ beq _0809F9C0
+ cmp r0, 0x2
+ bne _0809F960
+ adds r0, r1, 0
+ adds r0, 0x79
+ ldrb r0, [r0]
+ cmp r0, 0x4
+ bne _0809F954
+ adds r0, r1, 0
+ adds r0, 0x7C
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _0809F960
+_0809F954:
+ movs r0, 0
+ movs r1, 0xE
+ movs r2, 0x9
+ movs r3, 0x12
+ bl MenuZeroFillWindowRect
+_0809F960:
+ ldr r1, _0809F98C @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0809F990 @ =sub_809E260
+ str r1, [r0]
+ adds r0, r5, 0
+ movs r1, 0x1
+_0809F972:
+ bl SummaryScreenHandleLeftRightInput
+ ldrb r1, [r4, 0x1E]
+ movs r0, 0x1
+ bl sub_80A1488
+ ldrb r1, [r4, 0x1E]
+ movs r0, 0x1
+ bl sub_80A1654
+ b _0809F9C0
+ .align 2, 0
+_0809F988: .4byte 0x02018000
+_0809F98C: .4byte gTasks
+_0809F990: .4byte sub_809E260
+_0809F994:
+ ldrh r1, [r7, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _0809F9A6
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0809F9C0
+_0809F9A6:
+ ldrb r1, [r4, 0x1E]
+ movs r0, 0x2
+ bl sub_80A1488
+ ldrb r1, [r4, 0x1E]
+ movs r0, 0x2
+ bl sub_80A1654
+ mov r0, r8
+ subs r0, 0x8
+ adds r0, r6, r0
+ ldr r1, _0809F9CC @ =sub_809E260
+ str r1, [r0]
+_0809F9C0:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809F9CC: .4byte sub_809E260
+ thumb_func_end sub_809F814
+
+ thumb_func_start sub_809F9D0
+sub_809F9D0: @ 809F9D0
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ ldr r6, _0809FA24 @ =gTasks + 0x8
+ adds r2, r4, r6
+ movs r0, 0
+ strh r0, [r2, 0x1C]
+ strh r1, [r2, 0x1E]
+ movs r5, 0x2
+ negs r5, r5
+ adds r0, r5, 0
+ movs r1, 0x4
+ bl sub_80A1488
+ adds r0, r5, 0
+ movs r1, 0x4
+ bl sub_80A1654
+ movs r0, 0xB
+ movs r1, 0xF
+ movs r2, 0x1C
+ movs r3, 0x12
+ bl MenuZeroFillWindowRect
+ ldr r0, _0809FA28 @ =gOtherText_CantForgetHMs
+ movs r1, 0xB
+ movs r2, 0xF
+ bl MenuPrint
+ subs r6, 0x8
+ adds r4, r6
+ ldr r0, _0809FA2C @ =sub_809F814
+ str r0, [r4]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809FA24: .4byte gTasks + 0x8
+_0809FA28: .4byte gOtherText_CantForgetHMs
+_0809FA2C: .4byte sub_809F814
+ thumb_func_end sub_809F9D0
+
+ thumb_func_start sub_809FA30
+sub_809FA30: @ 809FA30
+ ldr r0, _0809FA38 @ =0x02018000
+ adds r0, 0x7A
+ ldrb r0, [r0]
+ bx lr
+ .align 2, 0
+_0809FA38: .4byte 0x02018000
+ thumb_func_end sub_809FA30
+
+ thumb_func_start GetStringCenterAlignXOffsetWithLetterSpacing
+GetStringCenterAlignXOffsetWithLetterSpacing: @ 809FA3C
+ push {r4,lr}
+ lsls r0, 24
+ lsls r1, 24
+ lsls r2, 24
+ lsls r3, 24
+ lsrs r2, 23
+ lsrs r3, 18
+ ldr r4, _0809FA70 @ =0x0600f000
+ adds r3, r4
+ adds r2, r3
+ lsrs r1, 12
+ lsrs r0, 23
+ movs r4, 0x80
+ lsls r4, 2
+ adds r3, r4, 0
+ adds r0, r3
+ adds r1, r0
+ adds r0, r1, 0
+ adds r0, 0x80
+ strh r0, [r2]
+ adds r2, 0x40
+ adds r1, 0x81
+ strh r1, [r2]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809FA70: .4byte 0x0600f000
+ thumb_func_end GetStringCenterAlignXOffsetWithLetterSpacing
+
+ thumb_func_start GetStringCenterAlignXOffset
+GetStringCenterAlignXOffset: @ 809FA74
+ push {r4,lr}
+ adds r4, r1, 0
+ adds r3, r2, 0
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r3, 24
+ lsrs r3, 24
+ movs r1, 0xF
+ adds r2, r4, 0
+ bl GetStringCenterAlignXOffsetWithLetterSpacing
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end GetStringCenterAlignXOffset
+
+ thumb_func_start sub_809FA94
+sub_809FA94: @ 809FA94
+ push {lr}
+ bl sub_8040CB4
+ lsls r0, 24
+ cmp r0, 0
+ beq _0809FAB4
+ ldr r0, _0809FAB0 @ =gUnknown_083C157E
+ movs r1, 0x4
+ movs r2, 0x2
+ bl LoadPalette
+ movs r0, 0x1
+ b _0809FAC0
+ .align 2, 0
+_0809FAB0: .4byte gUnknown_083C157E
+_0809FAB4:
+ ldr r0, _0809FAC4 @ =gUnknown_083C157C
+ movs r1, 0x4
+ movs r2, 0x2
+ bl LoadPalette
+ movs r0, 0
+_0809FAC0:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0809FAC4: .4byte gUnknown_083C157C
+ thumb_func_end sub_809FA94
+
+ thumb_func_start sub_809FAC8
+sub_809FAC8: @ 809FAC8
+ push {r4-r6,lr}
+ sub sp, 0xC
+ adds r5, r0, 0
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0
+ beq _0809FB28
+ movs r0, 0x1
+ movs r1, 0x2
+ movs r2, 0x4
+ movs r3, 0x3
+ bl MenuZeroFillWindowRect
+ movs r0, 0x3
+ movs r1, 0x10
+ movs r2, 0x9
+ movs r3, 0x11
+ bl MenuZeroFillWindowRect
+ movs r0, 0
+ movs r1, 0xC
+ movs r2, 0xB
+ movs r3, 0xF
+ bl MenuZeroFillWindowRect
+ ldr r4, _0809FB20 @ =gStringVar1
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl GetMonNickname
+ adds r0, r4, 0
+ movs r1, 0xD
+ movs r2, 0x3
+ movs r3, 0x10
+ bl sub_80A1FF8
+ ldr r0, _0809FB24 @ =gUnknown_083C157C
+ movs r1, 0x4
+ movs r2, 0x2
+ bl LoadPalette
+ b _0809FBD6
+ .align 2, 0
+_0809FB20: .4byte gStringVar1
+_0809FB24: .4byte gUnknown_083C157C
+_0809FB28:
+ adds r0, r5, 0
+ bl sub_809FA94
+ lsls r0, 24
+ lsrs r6, r0, 24
+ adds r0, r5, 0
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ bl SpeciesToPokedexNum
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldr r0, _0809FB6C @ =0x0000ffff
+ cmp r4, r0
+ beq _0809FB96
+ cmp r6, 0
+ bne _0809FB70
+ movs r0, 0x2
+ movs r1, 0x1
+ movs r2, 0x2
+ bl GetStringCenterAlignXOffset
+ movs r0, 0x11
+ str r0, [sp]
+ movs r0, 0x10
+ str r0, [sp, 0x4]
+ movs r0, 0x1
+ str r0, [sp, 0x8]
+ adds r0, r4, 0
+ movs r1, 0xD
+ b _0809FB8C
+ .align 2, 0
+_0809FB6C: .4byte 0x0000ffff
+_0809FB70:
+ movs r0, 0x2
+ movs r1, 0x8
+ movs r2, 0x1
+ movs r3, 0x2
+ bl GetStringCenterAlignXOffsetWithLetterSpacing
+ movs r0, 0x11
+ str r0, [sp]
+ movs r0, 0x10
+ str r0, [sp, 0x4]
+ movs r0, 0x1
+ str r0, [sp, 0x8]
+ adds r0, r4, 0
+ movs r1, 0x8
+_0809FB8C:
+ movs r2, 0x3
+ movs r3, 0x2
+ bl sub_80A1F98
+ b _0809FBA2
+_0809FB96:
+ movs r0, 0x1
+ movs r1, 0x2
+ movs r2, 0x4
+ movs r3, 0x3
+ bl MenuZeroFillWindowRect
+_0809FBA2:
+ ldr r1, _0809FBE0 @ =gStringVar1
+ adds r0, r1, 0
+ movs r1, 0xD
+ bl sub_80A1E58
+ adds r1, r0, 0
+ adds r0, r5, 0
+ bl GetMonNickname
+ adds r1, r0, 0
+ movs r0, 0xFC
+ strb r0, [r1]
+ movs r0, 0x13
+ strb r0, [r1, 0x1]
+ movs r0, 0x3C
+ strb r0, [r1, 0x2]
+ movs r0, 0xFF
+ strb r0, [r1, 0x3]
+ ldr r0, _0809FBE0 @ =gStringVar1
+ movs r1, 0x1
+ movs r2, 0xC
+ bl MenuPrint
+ adds r0, r5, 0
+ bl sub_80A0958
+_0809FBD6:
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809FBE0: .4byte gStringVar1
+ thumb_func_end sub_809FAC8
+
+ thumb_func_start sub_809FBE4
+sub_809FBE4: @ 809FBE4
+ push {r4,lr}
+ movs r4, 0
+_0809FBE8:
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_80A1918
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x1B
+ bls _0809FBE8
+ movs r0, 0xB
+ movs r1, 0x4
+ movs r2, 0x1D
+ movs r3, 0x12
+ bl MenuZeroFillWindowRect
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_809FBE4
+
+ thumb_func_start sub_809FC0C
+sub_809FC0C: @ 809FC0C
+ push {lr}
+ ldr r0, _0809FC30 @ =gOtherText_Type2
+ movs r1, 0xB
+ movs r2, 0x6
+ bl MenuPrint
+ movs r0, 0
+ movs r1, 0x16
+ movs r2, 0x4
+ bl GetStringCenterAlignXOffset
+ movs r0, 0x2
+ movs r1, 0x17
+ movs r2, 0x4
+ bl GetStringCenterAlignXOffset
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809FC30: .4byte gOtherText_Type2
+ thumb_func_end sub_809FC0C
+
+ thumb_func_start sub_809FC34
+sub_809FC34: @ 809FC34
+ push {r4-r6,lr}
+ sub sp, 0xC
+ adds r6, r0, 0
+ movs r4, 0
+_0809FC3C:
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_80A1918
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x4
+ bls _0809FC3C
+ movs r0, 0xB
+ movs r1, 0x9
+ movs r2, 0x1C
+ movs r3, 0xC
+ bl MenuZeroFillWindowRect
+ adds r0, r6, 0
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0
+ beq _0809FD1C
+ ldr r5, _0809FCD0 @ =gStringVar1
+ adds r0, r5, 0
+ movs r1, 0xD
+ bl sub_80A1E58
+ adds r5, r0, 0
+ ldr r1, _0809FCD4 @ =gOtherText_OriginalTrainer
+ bl StringCopy
+ adds r5, r0, 0
+ ldr r4, _0809FCD8 @ =gOtherText_FiveQuestionsAndSlash
+ adds r1, r4, 0
+ bl StringCopy
+ adds r5, r0, 0
+ movs r0, 0xFC
+ strb r0, [r5]
+ movs r0, 0x13
+ strb r0, [r5, 0x1]
+ movs r0, 0x4E
+ strb r0, [r5, 0x2]
+ movs r0, 0xFF
+ strb r0, [r5, 0x3]
+ ldr r0, _0809FCD0 @ =gStringVar1
+ movs r1, 0xB
+ movs r2, 0x4
+ bl MenuPrint
+ movs r0, 0x1
+ str r0, [sp]
+ adds r0, r4, 0
+ movs r1, 0xD
+ movs r2, 0xC1
+ movs r3, 0x20
+ bl sub_80A1EF8
+ movs r0, 0x9
+ movs r1, 0x78
+ movs r2, 0x30
+ movs r3, 0
+ bl sub_80A198C
+ adds r0, r6, 0
+ movs r1, 0x20
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ adds r1, r0, 0
+ cmp r0, 0x5
+ bhi _0809FCE0
+ ldr r0, _0809FCDC @ =gOtherText_EggAbout
+ b _0809FCF2
+ .align 2, 0
+_0809FCD0: .4byte gStringVar1
+_0809FCD4: .4byte gOtherText_OriginalTrainer
+_0809FCD8: .4byte gOtherText_FiveQuestionsAndSlash
+_0809FCDC: .4byte gOtherText_EggAbout
+_0809FCE0:
+ cmp r0, 0xA
+ bhi _0809FCEC
+ ldr r0, _0809FCE8 @ =gOtherText_EggSoon
+ b _0809FCF2
+ .align 2, 0
+_0809FCE8: .4byte gOtherText_EggSoon
+_0809FCEC:
+ cmp r1, 0x28
+ bhi _0809FD00
+ ldr r0, _0809FCFC @ =gOtherText_EggSomeTime
+_0809FCF2:
+ movs r1, 0xB
+ movs r2, 0x9
+ bl MenuPrint
+ b _0809FD0A
+ .align 2, 0
+_0809FCFC: .4byte gOtherText_EggSomeTime
+_0809FD00:
+ ldr r0, _0809FD18 @ =gOtherText_EggLongTime
+ movs r1, 0xB
+ movs r2, 0x9
+ bl MenuPrint
+_0809FD0A:
+ adds r0, r6, 0
+ movs r1, 0xB
+ movs r2, 0xE
+ bl PokemonSummaryScreen_PrintEggTrainerMemo
+ b _0809FE4C
+ .align 2, 0
+_0809FD18: .4byte gOtherText_EggLongTime
+_0809FD1C:
+ ldr r4, _0809FD64 @ =gStringVar2
+ adds r0, r6, 0
+ movs r1, 0x7
+ adds r2, r4, 0
+ bl GetMonData
+ adds r0, r6, 0
+ movs r1, 0x3
+ bl GetMonData
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl ConvertInternationalString
+ ldr r5, _0809FD68 @ =gStringVar1
+ adds r0, r5, 0
+ movs r1, 0xD
+ bl sub_80A1E58
+ adds r5, r0, 0
+ ldr r1, _0809FD6C @ =gOtherText_OriginalTrainer
+ bl StringCopy
+ adds r5, r0, 0
+ adds r0, r6, 0
+ movs r1, 0x31
+ bl GetMonData
+ cmp r0, 0
+ bne _0809FD70
+ adds r0, r5, 0
+ movs r1, 0x9
+ b _0809FD74
+ .align 2, 0
+_0809FD64: .4byte gStringVar2
+_0809FD68: .4byte gStringVar1
+_0809FD6C: .4byte gOtherText_OriginalTrainer
+_0809FD70:
+ adds r0, r5, 0
+ movs r1, 0xA
+_0809FD74:
+ bl sub_80A1E58
+ adds r5, r0, 0
+ ldr r1, _0809FE54 @ =gStringVar2
+ adds r0, r5, 0
+ bl StringCopy
+ adds r5, r0, 0
+ movs r0, 0xFC
+ strb r0, [r5]
+ movs r0, 0x13
+ strb r0, [r5, 0x1]
+ movs r0, 0x4E
+ strb r0, [r5, 0x2]
+ movs r0, 0xFF
+ strb r0, [r5, 0x3]
+ ldr r0, _0809FE58 @ =gStringVar1
+ movs r1, 0xB
+ movs r2, 0x4
+ bl MenuPrint
+ adds r0, r6, 0
+ movs r1, 0x1
+ bl GetMonData
+ ldr r1, _0809FE5C @ =0x0000ffff
+ ands r1, r0
+ movs r0, 0xC1
+ str r0, [sp]
+ movs r0, 0x20
+ str r0, [sp, 0x4]
+ movs r0, 0x1
+ str r0, [sp, 0x8]
+ adds r0, r1, 0
+ movs r1, 0xD
+ movs r2, 0x5
+ movs r3, 0x2
+ bl sub_80A1F98
+ adds r0, r6, 0
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r2, _0809FE60 @ =gBaseStats
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ adds r5, r1, r2
+ ldrb r4, [r5, 0x6]
+ adds r0, r4, 0
+ movs r1, 0x78
+ movs r2, 0x30
+ movs r3, 0
+ bl sub_80A198C
+ ldrb r0, [r5, 0x7]
+ cmp r4, r0
+ beq _0809FDF8
+ ldrb r0, [r5, 0x7]
+ movs r1, 0xA0
+ movs r2, 0x30
+ movs r3, 0x1
+ bl sub_80A198C
+_0809FDF8:
+ adds r0, r6, 0
+ movs r1, 0xB
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r6, 0
+ movs r1, 0x2E
+ bl GetMonData
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl GetAbilityBySpecies
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0xD
+ muls r0, r4
+ ldr r1, _0809FE64 @ =gAbilityNames
+ adds r0, r1
+ movs r1, 0xD
+ movs r2, 0xB
+ movs r3, 0x9
+ bl sub_80A1FF8
+ ldr r0, _0809FE68 @ =gAbilityDescriptions
+ lsls r4, 2
+ adds r4, r0
+ ldr r0, [r4]
+ movs r1, 0xB
+ movs r2, 0xB
+ bl MenuPrint
+ adds r0, r6, 0
+ movs r1, 0xB
+ movs r2, 0xE
+ bl PokemonSummaryScreen_PrintTrainerMemo
+_0809FE4C:
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809FE54: .4byte gStringVar2
+_0809FE58: .4byte gStringVar1
+_0809FE5C: .4byte 0x0000ffff
+_0809FE60: .4byte gBaseStats
+_0809FE64: .4byte gAbilityNames
+_0809FE68: .4byte gAbilityDescriptions
+ thumb_func_end sub_809FC34
+
+ thumb_func_start sub_809FE6C
+sub_809FE6C: @ 809FE6C
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_809FC0C
+ adds r0, r4, 0
+ bl sub_809FC34
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_809FE6C
+
+ thumb_func_start sub_809FE80
+sub_809FE80: @ 809FE80
+ push {lr}
+ movs r0, 0xE
+ movs r1, 0x4
+ movs r2, 0x12
+ movs r3, 0x5
+ bl MenuZeroFillWindowRect
+ movs r0, 0x19
+ movs r1, 0x4
+ movs r2, 0x1E
+ movs r3, 0x5
+ bl MenuZeroFillWindowRect
+ movs r0, 0xB
+ movs r1, 0x9
+ movs r2, 0x1C
+ movs r3, 0xC
+ bl MenuZeroFillWindowRect
+ movs r0, 0xB
+ movs r1, 0xE
+ movs r2, 0x1C
+ movs r3, 0x11
+ bl MenuZeroFillWindowRect
+ pop {r0}
+ bx r0
+ thumb_func_end sub_809FE80
+
+ thumb_func_start sub_809FEB8
+sub_809FEB8: @ 809FEB8
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r0, _0809FF40 @ =gOtherText_ExpPoints
+ movs r1, 0xD
+ movs r2, 0xB
+ movs r3, 0xE
+ bl sub_80A1FF8
+ ldr r0, _0809FF44 @ =gOtherText_NextLv
+ movs r1, 0xD
+ movs r2, 0xB
+ movs r3, 0x10
+ bl sub_80A1FF8
+ ldr r0, _0809FF48 @ =gOtherText_Terminator18
+ movs r1, 0x15
+ movs r2, 0x10
+ bl MenuPrint
+ ldr r0, _0809FF4C @ =gOtherText_HP
+ movs r4, 0x2A
+ str r4, [sp]
+ movs r1, 0xD
+ movs r2, 0xB
+ movs r3, 0x7
+ bl sub_80A1F48
+ ldr r0, _0809FF50 @ =gOtherText_Attack
+ str r4, [sp]
+ movs r1, 0xD
+ movs r2, 0xB
+ movs r3, 0x9
+ bl sub_80A1F48
+ ldr r0, _0809FF54 @ =gOtherText_Defense
+ str r4, [sp]
+ movs r1, 0xD
+ movs r2, 0xB
+ movs r3, 0xB
+ bl sub_80A1F48
+ ldr r0, _0809FF58 @ =gOtherText_SpAtk
+ movs r4, 0x24
+ str r4, [sp]
+ movs r1, 0xD
+ movs r2, 0x16
+ movs r3, 0x7
+ bl sub_80A1F48
+ ldr r0, _0809FF5C @ =gOtherText_SpDef
+ str r4, [sp]
+ movs r1, 0xD
+ movs r2, 0x16
+ movs r3, 0x9
+ bl sub_80A1F48
+ ldr r0, _0809FF60 @ =gOtherText_Speed
+ str r4, [sp]
+ movs r1, 0xD
+ movs r2, 0x16
+ movs r3, 0xB
+ bl sub_80A1F48
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809FF40: .4byte gOtherText_ExpPoints
+_0809FF44: .4byte gOtherText_NextLv
+_0809FF48: .4byte gOtherText_Terminator18
+_0809FF4C: .4byte gOtherText_HP
+_0809FF50: .4byte gOtherText_Attack
+_0809FF54: .4byte gOtherText_Defense
+_0809FF58: .4byte gOtherText_SpAtk
+_0809FF5C: .4byte gOtherText_SpDef
+_0809FF60: .4byte gOtherText_Speed
+ thumb_func_end sub_809FEB8
+
+ thumb_func_start sub_809FF64
+sub_809FF64: @ 809FF64
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r4, 0
+_0809FF6A:
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_80A1918
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x4
+ bls _0809FF6A
+ adds r0, r5, 0
+ movs r1, 0xC
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xB
+ movs r2, 0x4
+ bl sub_80A0BF4
+ adds r0, r5, 0
+ bl sub_80A0B88
+ ldr r4, _080A008C @ =gStringVar1
+ adds r0, r5, 0
+ movs r1, 0x19
+ bl GetMonData
+ adds r1, r0, 0
+ adds r0, r4, 0
+ bl ConvertIntToDecimalString
+ adds r0, r4, 0
+ movs r1, 0x1D
+ movs r2, 0xE
+ bl MenuPrint_RightAligned
+ adds r0, r5, 0
+ movs r1, 0x17
+ movs r2, 0x10
+ bl sub_80A0C80
+ adds r0, r5, 0
+ movs r1, 0x3B
+ bl GetMonData
+ adds r1, r0, 0
+ adds r0, r4, 0
+ bl ConvertIntToDecimalString
+ adds r0, r4, 0
+ movs r1, 0x10
+ movs r2, 0x9
+ movs r3, 0x32
+ bl sub_8072BD8
+ adds r0, r5, 0
+ movs r1, 0x3C
+ bl GetMonData
+ adds r1, r0, 0
+ adds r0, r4, 0
+ bl ConvertIntToDecimalString
+ adds r0, r4, 0
+ movs r1, 0x10
+ movs r2, 0xB
+ movs r3, 0x32
+ bl sub_8072BD8
+ adds r0, r5, 0
+ movs r1, 0x3E
+ bl GetMonData
+ adds r1, r0, 0
+ adds r0, r4, 0
+ bl ConvertIntToDecimalString
+ adds r0, r4, 0
+ movs r1, 0x1B
+ movs r2, 0x7
+ movs r3, 0x12
+ bl sub_8072BD8
+ adds r0, r5, 0
+ movs r1, 0x3F
+ bl GetMonData
+ adds r1, r0, 0
+ adds r0, r4, 0
+ bl ConvertIntToDecimalString
+ adds r0, r4, 0
+ movs r1, 0x1B
+ movs r2, 0x9
+ movs r3, 0x12
+ bl sub_8072BD8
+ adds r0, r5, 0
+ movs r1, 0x3D
+ bl GetMonData
+ adds r1, r0, 0
+ adds r0, r4, 0
+ bl ConvertIntToDecimalString
+ adds r0, r4, 0
+ movs r1, 0x1B
+ movs r2, 0xB
+ movs r3, 0x12
+ bl sub_8072BD8
+ adds r0, r5, 0
+ movs r1, 0x39
+ bl GetMonData
+ adds r1, r0, 0
+ adds r0, r4, 0
+ movs r2, 0x18
+ movs r3, 0x1
+ bl sub_8072C14
+ adds r4, r0, 0
+ movs r0, 0xBA
+ strb r0, [r4]
+ adds r4, 0x1
+ adds r0, r5, 0
+ movs r1, 0x3A
+ bl GetMonData
+ adds r1, r0, 0
+ adds r0, r4, 0
+ movs r2, 0x30
+ movs r3, 0x1
+ bl sub_8072C14
+ ldr r0, _080A008C @ =gStringVar1
+ movs r1, 0x7E
+ movs r2, 0x38
+ movs r3, 0x1
+ bl MenuPrint_PixelCoords
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A008C: .4byte gStringVar1
+ thumb_func_end sub_809FF64
+
+ thumb_func_start sub_80A0090
+sub_80A0090: @ 80A0090
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_809FEB8
+ adds r0, r4, 0
+ bl sub_809FF64
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A0090
+
+ thumb_func_start sub_80A00A4
+sub_80A00A4: @ 80A00A4
+ push {lr}
+ movs r0, 0xB
+ movs r1, 0x4
+ movs r2, 0x13
+ movs r3, 0x5
+ bl MenuZeroFillWindowRect
+ movs r0, 0x10
+ movs r1, 0x7
+ movs r2, 0x15
+ movs r3, 0x8
+ bl MenuZeroFillWindowRect
+ movs r0, 0x11
+ movs r1, 0x9
+ movs r2, 0x15
+ movs r3, 0xC
+ bl MenuZeroFillWindowRect
+ movs r0, 0x1B
+ movs r1, 0x7
+ movs r2, 0x1D
+ movs r3, 0xC
+ bl MenuZeroFillWindowRect
+ movs r0, 0x16
+ movs r1, 0xE
+ movs r2, 0x1C
+ movs r3, 0xF
+ bl MenuZeroFillWindowRect
+ movs r0, 0x17
+ movs r1, 0x10
+ movs r2, 0x1C
+ movs r3, 0x11
+ bl MenuZeroFillWindowRect
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A00A4
+
+ thumb_func_start sub_80A00F4
+sub_80A00F4: @ 80A00F4
+ push {lr}
+ lsls r0, 24
+ lsrs r1, r0, 24
+ ldr r2, _080A012C @ =0x02018000
+ adds r0, r2, 0
+ adds r0, 0x7C
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _080A010A
+ cmp r1, 0x4
+ beq _080A0150
+_080A010A:
+ ldrb r0, [r2, 0xB]
+ cmp r0, 0x2
+ bne _080A0138
+ ldr r0, _080A0130 @ =gOtherText_Power2
+ movs r1, 0xD
+ movs r2, 0x1
+ movs r3, 0xF
+ bl sub_80A1FF8
+ ldr r0, _080A0134 @ =gOtherText_Accuracy2
+ movs r1, 0xD
+ movs r2, 0x1
+ movs r3, 0x11
+ bl sub_80A1FF8
+ b _080A0150
+ .align 2, 0
+_080A012C: .4byte 0x02018000
+_080A0130: .4byte gOtherText_Power2
+_080A0134: .4byte gOtherText_Accuracy2
+_080A0138:
+ ldr r0, _080A0154 @ =gOtherText_Appeal2
+ movs r1, 0xD
+ movs r2, 0x1
+ movs r3, 0xF
+ bl sub_80A1FF8
+ ldr r0, _080A0158 @ =gOtherText_Jam2
+ movs r1, 0xD
+ movs r2, 0x1
+ movs r3, 0x11
+ bl sub_80A1FF8
+_080A0150:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A0154: .4byte gOtherText_Appeal2
+_080A0158: .4byte gOtherText_Jam2
+ thumb_func_end sub_80A00F4
+
+ thumb_func_start sub_80A015C
+sub_80A015C: @ 80A015C
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ mov r8, r0
+ movs r7, 0
+_080A0168:
+ mov r0, r8
+ adds r1, r7, 0
+ bl sub_809F760
+ lsls r0, 16
+ lsrs r6, r0, 16
+ mov r0, r8
+ adds r1, r7, 0
+ bl sub_809F798
+ lsls r0, 16
+ lsrs r0, 16
+ mov r9, r0
+ cmp r6, 0
+ bne _080A01B8
+ adds r0, r7, 0
+ movs r1, 0x1
+ bl sub_80A1918
+ lsls r4, r7, 25
+ movs r0, 0x80
+ lsls r0, 19
+ adds r4, r0
+ lsrs r4, 24
+ ldr r0, _080A01B0 @ =gOtherText_OneDash
+ movs r1, 0xD
+ movs r2, 0xF
+ adds r3, r4, 0
+ bl sub_80A1FF8
+ ldr r0, _080A01B4 @ =gOtherText_TwoDashes
+ movs r1, 0x1A
+ adds r2, r4, 0
+ bl MenuPrint
+ b _080A0276
+ .align 2, 0
+_080A01B0: .4byte gOtherText_OneDash
+_080A01B4: .4byte gOtherText_TwoDashes
+_080A01B8:
+ ldr r0, _080A01E0 @ =0x02018000
+ ldrb r0, [r0, 0xB]
+ cmp r0, 0x2
+ bne _080A01E8
+ ldr r1, _080A01E4 @ =gBattleMoves
+ lsls r0, r6, 1
+ adds r0, r6
+ lsls r0, 2
+ adds r0, r1
+ ldrb r0, [r0, 0x2]
+ lsls r4, r7, 1
+ adds r2, r4, 0x4
+ lsls r2, 27
+ lsrs r2, 24
+ movs r1, 0x57
+ adds r3, r7, 0
+ bl sub_80A198C
+ b _080A020C
+ .align 2, 0
+_080A01E0: .4byte 0x02018000
+_080A01E4: .4byte gBattleMoves
+_080A01E8:
+ ldr r1, _080A0290 @ =gContestMoves
+ lsls r0, r6, 3
+ adds r0, r1
+ ldrb r0, [r0, 0x1]
+ lsls r0, 29
+ lsrs r0, 5
+ movs r1, 0x90
+ lsls r1, 21
+ adds r0, r1
+ lsrs r0, 24
+ lsls r4, r7, 1
+ adds r2, r4, 0x4
+ lsls r2, 27
+ lsrs r2, 24
+ movs r1, 0x57
+ adds r3, r7, 0
+ bl sub_80A198C
+_080A020C:
+ movs r0, 0xD
+ muls r0, r6
+ ldr r1, _080A0294 @ =gMoveNames
+ adds r0, r1
+ adds r5, r4, 0x4
+ lsls r5, 24
+ lsrs r5, 24
+ movs r1, 0xD
+ movs r2, 0xF
+ adds r3, r5, 0
+ bl sub_80A1FF8
+ movs r0, 0x1
+ movs r1, 0x18
+ adds r2, r5, 0
+ bl GetStringCenterAlignXOffset
+ mov r0, r8
+ movs r1, 0x15
+ bl GetMonData
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r6, 0
+ adds r2, r7, 0
+ bl CalculatePPWithBonus
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r1, _080A0298 @ =gStringVar1
+ adds r0, r1, 0
+ mov r1, r9
+ movs r2, 0xE
+ movs r3, 0x1
+ bl sub_8072C14
+ adds r1, r0, 0
+ movs r0, 0xBA
+ strb r0, [r1]
+ adds r1, 0x1
+ adds r0, r1, 0
+ adds r1, r4, 0
+ movs r2, 0x20
+ movs r3, 0x1
+ bl sub_8072C14
+ ldr r0, _080A0298 @ =gStringVar1
+ movs r1, 0x19
+ adds r2, r5, 0
+ bl MenuPrint
+_080A0276:
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ cmp r7, 0x3
+ bhi _080A0282
+ b _080A0168
+_080A0282:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A0290: .4byte gContestMoves
+_080A0294: .4byte gMoveNames
+_080A0298: .4byte gStringVar1
+ thumb_func_end sub_80A015C
+
+ thumb_func_start sub_80A029C
+sub_80A029C: @ 80A029C
+ push {r4,r5,lr}
+ ldr r1, _080A02B8 @ =0x02018000
+ adds r4, r1, 0
+ adds r4, 0x7C
+ ldrh r0, [r4]
+ cmp r0, 0
+ bne _080A02C0
+ ldr r0, _080A02BC @ =gOtherText_CancelNoTerminator
+ movs r1, 0xD
+ movs r2, 0xF
+ movs r3, 0xC
+ bl sub_80A1FF8
+ b _080A037E
+ .align 2, 0
+_080A02B8: .4byte 0x02018000
+_080A02BC: .4byte gOtherText_CancelNoTerminator
+_080A02C0:
+ ldrh r5, [r4]
+ ldrb r0, [r1, 0xB]
+ cmp r0, 0x2
+ bne _080A02E4
+ ldr r1, _080A02E0 @ =gBattleMoves
+ lsls r4, r5, 1
+ adds r0, r4, r5
+ lsls r0, 2
+ adds r0, r1
+ ldrb r0, [r0, 0x2]
+ movs r1, 0x57
+ movs r2, 0x60
+ movs r3, 0x4
+ bl sub_80A198C
+ b _080A0304
+ .align 2, 0
+_080A02E0: .4byte gBattleMoves
+_080A02E4:
+ ldr r1, _080A0320 @ =gContestMoves
+ lsls r0, r5, 3
+ adds r0, r1
+ ldrb r0, [r0, 0x1]
+ lsls r0, 29
+ lsrs r0, 5
+ movs r1, 0x90
+ lsls r1, 21
+ adds r0, r1
+ lsrs r0, 24
+ movs r1, 0x57
+ movs r2, 0x60
+ movs r3, 0x4
+ bl sub_80A198C
+ lsls r4, r5, 1
+_080A0304:
+ ldr r0, _080A0324 @ =0x02018000
+ ldrb r0, [r0, 0xB]
+ cmp r0, 0x2
+ bne _080A032C
+ movs r0, 0xD
+ muls r0, r5
+ ldr r1, _080A0328 @ =gMoveNames
+ adds r0, r1
+ movs r1, 0xA
+ movs r2, 0xF
+ movs r3, 0xC
+ bl sub_80A1FF8
+ b _080A033E
+ .align 2, 0
+_080A0320: .4byte gContestMoves
+_080A0324: .4byte 0x02018000
+_080A0328: .4byte gMoveNames
+_080A032C:
+ movs r0, 0xD
+ muls r0, r5
+ ldr r1, _080A0384 @ =gMoveNames
+ adds r0, r1
+ movs r1, 0x9
+ movs r2, 0xF
+ movs r3, 0xC
+ bl sub_80A1FF8
+_080A033E:
+ movs r0, 0x1
+ movs r1, 0x18
+ movs r2, 0xC
+ bl GetStringCenterAlignXOffset
+ ldr r2, _080A0388 @ =gStringVar1
+ ldr r1, _080A038C @ =gBattleMoves
+ adds r0, r4, r5
+ lsls r0, 2
+ adds r0, r1
+ ldrb r4, [r0, 0x4]
+ adds r0, r2, 0
+ adds r1, r4, 0
+ movs r2, 0xE
+ movs r3, 0x1
+ bl sub_8072C14
+ adds r2, r0, 0
+ movs r0, 0xBA
+ strb r0, [r2]
+ adds r2, 0x1
+ adds r0, r2, 0
+ adds r1, r4, 0
+ movs r2, 0x20
+ movs r3, 0x1
+ bl sub_8072C14
+ ldr r0, _080A0388 @ =gStringVar1
+ movs r1, 0x19
+ movs r2, 0xC
+ bl MenuPrint
+_080A037E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A0384: .4byte gMoveNames
+_080A0388: .4byte gStringVar1
+_080A038C: .4byte gBattleMoves
+ thumb_func_end sub_80A029C
+
+ thumb_func_start sub_80A0390
+sub_80A0390: @ 80A0390
+ push {r4,lr}
+ movs r4, 0
+_080A0394:
+ lsls r3, r4, 1
+ adds r1, r3, 0x4
+ lsls r1, 24
+ lsrs r1, 24
+ adds r3, 0x5
+ lsls r3, 24
+ lsrs r3, 24
+ movs r0, 0xF
+ movs r2, 0x1C
+ bl MenuZeroFillWindowRect
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x3
+ bls _080A0394
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A0390
+
+ thumb_func_start sub_80A03BC
+sub_80A03BC: @ 80A03BC
+ push {lr}
+ lsls r1, 24
+ lsrs r1, 24
+ cmp r1, 0x4
+ beq _080A03D0
+ bl sub_809F760
+ lsls r0, 16
+ lsrs r1, r0, 16
+ b _080A03E0
+_080A03D0:
+ ldr r0, _080A03E8 @ =0x02018000
+ adds r2, r0, 0
+ adds r2, 0x7C
+ ldrh r0, [r2]
+ ldr r1, _080A03EC @ =0x0000ffff
+ cmp r0, 0
+ beq _080A03E0
+ adds r1, r0, 0
+_080A03E0:
+ adds r0, r1, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080A03E8: .4byte 0x02018000
+_080A03EC: .4byte 0x0000ffff
+ thumb_func_end sub_80A03BC
+
+ thumb_func_start sub_80A03F0
+sub_80A03F0: @ 80A03F0
+ push {lr}
+ ldrb r1, [r1]
+ bl sub_80A03BC
+ lsls r0, 16
+ lsrs r1, r0, 16
+ ldr r0, _080A0414 @ =0x02018000
+ ldrb r0, [r0, 0xB]
+ cmp r0, 0x2
+ bne _080A041C
+ adds r0, r1, 0
+ bl sub_80A04CC
+ ldr r0, _080A0418 @ =0x0000ffff
+ bl sub_80A057C
+ b _080A0422
+ .align 2, 0
+_080A0414: .4byte 0x02018000
+_080A0418: .4byte 0x0000ffff
+_080A041C:
+ adds r0, r1, 0
+ bl sub_80A057C
+_080A0422:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A03F0
+
+ thumb_func_start sub_80A0428
+sub_80A0428: @ 80A0428
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ adds r6, r1, 0
+ ldrb r1, [r6]
+ bl sub_80A03BC
+ lsls r0, 16
+ lsrs r4, r0, 16
+ movs r0, 0xB
+ movs r1, 0xF
+ movs r2, 0x1C
+ movs r3, 0x12
+ bl MenuZeroFillWindowRect
+ ldr r0, _080A0454 @ =0x02018000
+ ldrb r0, [r0, 0xB]
+ cmp r0, 0x2
+ bne _080A0458
+ adds r0, r4, 0
+ bl sub_80A046C
+ b _080A045E
+ .align 2, 0
+_080A0454: .4byte 0x02018000
+_080A0458:
+ adds r0, r4, 0
+ bl sub_80A0498
+_080A045E:
+ adds r0, r5, 0
+ adds r1, r6, 0
+ bl sub_80A03F0
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A0428
+
+ thumb_func_start sub_80A046C
+sub_80A046C: @ 80A046C
+ push {lr}
+ lsls r0, 16
+ lsrs r1, r0, 16
+ ldr r0, _080A0490 @ =0x0000ffff
+ cmp r1, r0
+ beq _080A048A
+ ldr r0, _080A0494 @ =gMoveDescriptions
+ subs r1, 0x1
+ lsls r1, 2
+ adds r1, r0
+ ldr r0, [r1]
+ movs r1, 0xB
+ movs r2, 0xF
+ bl MenuPrint
+_080A048A:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A0490: .4byte 0x0000ffff
+_080A0494: .4byte gMoveDescriptions
+ thumb_func_end sub_80A046C
+
+ thumb_func_start sub_80A0498
+sub_80A0498: @ 80A0498
+ push {lr}
+ lsls r0, 16
+ lsrs r3, r0, 16
+ ldr r0, _080A04C0 @ =0x0000ffff
+ cmp r3, r0
+ beq _080A04BC
+ ldr r2, _080A04C4 @ =gUnknown_083CADD4
+ ldr r1, _080A04C8 @ =gContestMoves
+ lsls r0, r3, 3
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r2
+ ldr r0, [r0]
+ movs r1, 0xB
+ movs r2, 0xF
+ bl MenuPrint
+_080A04BC:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A04C0: .4byte 0x0000ffff
+_080A04C4: .4byte gUnknown_083CADD4
+_080A04C8: .4byte gContestMoves
+ thumb_func_end sub_80A0498
+
+ thumb_func_start sub_80A04CC
+sub_80A04CC: @ 80A04CC
+ push {r4,r5,lr}
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldr r0, _080A0504 @ =0x0000ffff
+ cmp r4, r0
+ beq _080A0572
+ ldr r2, _080A0508 @ =gBattleMoves
+ lsls r1, r4, 1
+ adds r0, r1, r4
+ lsls r0, 2
+ adds r2, r0, r2
+ ldrb r0, [r2, 0x1]
+ adds r5, r1, 0
+ cmp r0, 0x1
+ bhi _080A0514
+ ldr r0, _080A050C @ =gStringVar1
+ ldr r1, _080A0510 @ =gOtherText_ThreeDashes2
+ movs r2, 0x15
+ movs r3, 0x1
+ bl sub_8072C74
+ ldr r0, _080A050C @ =gStringVar1
+ movs r1, 0x7
+ movs r2, 0xF
+ bl MenuPrint
+ b _080A052A
+ .align 2, 0
+_080A0504: .4byte 0x0000ffff
+_080A0508: .4byte gBattleMoves
+_080A050C: .4byte gStringVar1
+_080A0510: .4byte gOtherText_ThreeDashes2
+_080A0514:
+ ldr r0, _080A0550 @ =gStringVar1
+ ldrb r1, [r2, 0x1]
+ movs r2, 0x15
+ movs r3, 0x1
+ bl sub_8072C14
+ ldr r0, _080A0550 @ =gStringVar1
+ movs r1, 0x7
+ movs r2, 0xF
+ bl MenuPrint
+_080A052A:
+ ldr r0, _080A0554 @ =gBattleMoves
+ adds r1, r5, r4
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1, 0x3]
+ cmp r0, 0
+ bne _080A055C
+ ldr r0, _080A0550 @ =gStringVar1
+ ldr r1, _080A0558 @ =gOtherText_ThreeDashes2
+ movs r2, 0x15
+ movs r3, 0x1
+ bl sub_8072C74
+ ldr r0, _080A0550 @ =gStringVar1
+ movs r1, 0x7
+ movs r2, 0x11
+ bl MenuPrint
+ b _080A0572
+ .align 2, 0
+_080A0550: .4byte gStringVar1
+_080A0554: .4byte gBattleMoves
+_080A0558: .4byte gOtherText_ThreeDashes2
+_080A055C:
+ ldr r0, _080A0578 @ =gStringVar1
+ ldrb r1, [r1, 0x3]
+ movs r2, 0x15
+ movs r3, 0x1
+ bl sub_8072C14
+ ldr r0, _080A0578 @ =gStringVar1
+ movs r1, 0x7
+ movs r2, 0x11
+ bl MenuPrint
+_080A0572:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A0578: .4byte gStringVar1
+ thumb_func_end sub_80A04CC
+
+ thumb_func_start sub_80A057C
+sub_80A057C: @ 80A057C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldr r0, _080A0648 @ =0x06006800
+ mov r8, r0
+ ldr r0, _080A064C @ =0x0000ffff
+ cmp r5, r0
+ beq _080A063A
+ ldr r1, _080A0650 @ =gContestEffects
+ ldr r2, _080A0654 @ =gContestMoves
+ lsls r3, r5, 3
+ adds r0, r3, r2
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldrb r4, [r0, 0x1]
+ mov r10, r2
+ mov r9, r3
+ cmp r4, 0xFF
+ beq _080A05B8
+ adds r0, r4, 0
+ movs r1, 0xA
+ bl __udivsi3
+ lsls r0, 24
+ lsrs r4, r0, 24
+_080A05B8:
+ movs r2, 0
+ movs r7, 0x3
+ movs r6, 0xF3
+ lsls r6, 2
+_080A05C0:
+ ldr r3, _080A0658 @ =0x00001039
+ cmp r4, 0xFF
+ beq _080A05CC
+ cmp r2, r4
+ bcs _080A05CC
+ adds r3, 0x1
+_080A05CC:
+ lsrs r0, r2, 2
+ lsls r0, 5
+ adds r1, r2, 0
+ ands r1, r7
+ adds r1, r0
+ lsls r1, 1
+ add r1, r8
+ adds r1, r6
+ strh r3, [r1]
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x7
+ bls _080A05C0
+ ldr r0, _080A064C @ =0x0000ffff
+ cmp r5, r0
+ beq _080A063A
+ mov r0, r9
+ add r0, r10
+ ldrb r0, [r0]
+ lsls r0, 2
+ ldr r1, _080A0650 @ =gContestEffects
+ adds r0, r1
+ ldrb r4, [r0, 0x2]
+ cmp r4, 0xFF
+ beq _080A060C
+ adds r0, r4, 0
+ movs r1, 0xA
+ bl __udivsi3
+ lsls r0, 24
+ lsrs r4, r0, 24
+_080A060C:
+ movs r2, 0
+ movs r6, 0x3
+ ldr r5, _080A065C @ =0x0000044c
+_080A0612:
+ ldr r3, _080A0660 @ =0x0000103d
+ cmp r4, 0xFF
+ beq _080A061E
+ cmp r2, r4
+ bcs _080A061E
+ subs r3, 0x1
+_080A061E:
+ lsrs r0, r2, 2
+ lsls r0, 5
+ adds r1, r2, 0
+ ands r1, r6
+ adds r1, r0
+ lsls r1, 1
+ add r1, r8
+ adds r1, r5
+ strh r3, [r1]
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x7
+ bls _080A0612
+_080A063A:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A0648: .4byte 0x06006800
+_080A064C: .4byte 0x0000ffff
+_080A0650: .4byte gContestEffects
+_080A0654: .4byte gContestMoves
+_080A0658: .4byte 0x00001039
+_080A065C: .4byte 0x0000044c
+_080A0660: .4byte 0x0000103d
+ thumb_func_end sub_80A057C
+
+ .section .text_80A0958
+
+ thumb_func_start sub_80A0958
+sub_80A0958: @ 80A0958
+ push {r4-r6,lr}
+ mov r6, r10
+ mov r5, r9
+ mov r4, r8
+ push {r4-r6}
+ mov r8, r0
+ movs r1, 0xB
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ ldr r2, _080A0A24 @ =gStringVar1
+ adds r0, r2, 0
+ movs r1, 0xD
+ bl sub_80A1E58
+ adds r2, r0, 0
+ movs r6, 0xFC
+ strb r6, [r2]
+ movs r0, 0x11
+ strb r0, [r2, 0x1]
+ movs r0, 0x7
+ strb r0, [r2, 0x2]
+ movs r0, 0xBA
+ strb r0, [r2, 0x3]
+ adds r2, 0x4
+ movs r0, 0xB
+ adds r1, r4, 0
+ muls r1, r0
+ ldr r0, _080A0A28 @ =gSpeciesNames
+ adds r1, r0
+ adds r0, r2, 0
+ bl StringCopy
+ adds r2, r0, 0
+ strb r6, [r2]
+ movs r0, 0x13
+ mov r10, r0
+ strb r0, [r2, 0x1]
+ movs r0, 0x50
+ strb r0, [r2, 0x2]
+ movs r0, 0xFF
+ mov r9, r0
+ strb r0, [r2, 0x3]
+ ldr r5, _080A0A24 @ =gStringVar1
+ adds r0, r5, 0
+ movs r1, 0
+ movs r2, 0xE
+ bl MenuPrint
+ movs r0, 0x3
+ movs r1, 0x10
+ movs r2, 0x9
+ movs r3, 0x11
+ bl MenuZeroFillWindowRect
+ mov r0, r8
+ movs r1, 0x38
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ movs r1, 0xD
+ bl sub_80A1E58
+ adds r2, r0, 0
+ movs r0, 0x34
+ strb r0, [r2]
+ adds r2, 0x1
+ adds r0, r2, 0
+ adds r1, r4, 0
+ bl ConvertIntToDecimalString
+ adds r2, r0, 0
+ strb r6, [r2]
+ mov r0, r10
+ strb r0, [r2, 0x1]
+ movs r0, 0x20
+ strb r0, [r2, 0x2]
+ mov r0, r9
+ strb r0, [r2, 0x3]
+ adds r0, r5, 0
+ movs r1, 0x3
+ movs r2, 0x10
+ bl MenuPrint
+ mov r0, r8
+ movs r1, 0x7
+ movs r2, 0x10
+ bl sub_80A0A2C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A0A24: .4byte gStringVar1
+_080A0A28: .4byte gSpeciesNames
+ thumb_func_end sub_80A0958
+
+ thumb_func_start sub_80A0A2C
+sub_80A0A2C: @ 80A0A2C
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ lsls r1, 24
+ lsrs r5, r1, 24
+ lsls r2, 24
+ lsrs r4, r2, 24
+ movs r1, 0x41
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x20
+ beq _080A0A84
+ cmp r0, 0x1D
+ beq _080A0A84
+ adds r0, r6, 0
+ bl GetMonGender
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ beq _080A0A6E
+ cmp r0, 0xFE
+ beq _080A0A78
+ adds r3, r4, 0x1
+ lsls r3, 24
+ lsrs r3, 24
+ adds r0, r5, 0
+ adds r1, r4, 0
+ adds r2, r5, 0
+ bl MenuZeroFillWindowRect
+ b _080A0A84
+_080A0A6E:
+ ldr r0, _080A0A74 @ =gOtherText_MaleSymbol2
+ movs r1, 0xB
+ b _080A0A7C
+ .align 2, 0
+_080A0A74: .4byte gOtherText_MaleSymbol2
+_080A0A78:
+ ldr r0, _080A0A8C @ =gOtherText_FemaleSymbolAndLv
+ movs r1, 0xC
+_080A0A7C:
+ adds r2, r5, 0
+ adds r3, r4, 0
+ bl sub_80A1FF8
+_080A0A84:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A0A8C: .4byte gOtherText_FemaleSymbolAndLv
+ thumb_func_end sub_80A0A2C
+
+ thumb_func_start sub_80A0A90
+sub_80A0A90: @ 80A0A90
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r1, 0x32
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ movs r1, 0x33
+ bl GetMonData
+ adds r4, r0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ movs r1, 0x34
+ bl GetMonData
+ adds r4, r0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ movs r1, 0x35
+ bl GetMonData
+ adds r4, r0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ movs r1, 0x36
+ bl GetMonData
+ adds r4, r0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ movs r1, 0x43
+ bl GetMonData
+ adds r4, r0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ movs r1, 0x44
+ bl GetMonData
+ adds r4, r0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ movs r1, 0x45
+ bl GetMonData
+ adds r4, r0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ movs r1, 0x46
+ bl GetMonData
+ adds r4, r0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ movs r1, 0x47
+ bl GetMonData
+ adds r4, r0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ movs r1, 0x48
+ bl GetMonData
+ adds r4, r0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ movs r1, 0x49
+ bl GetMonData
+ adds r4, r0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ movs r1, 0x4A
+ bl GetMonData
+ adds r4, r0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ movs r1, 0x4B
+ bl GetMonData
+ adds r4, r0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ movs r1, 0x4C
+ bl GetMonData
+ adds r4, r0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ movs r1, 0x4D
+ bl GetMonData
+ adds r4, r0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ movs r1, 0x4E
+ bl GetMonData
+ adds r4, r0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r4, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80A0A90
+
+ thumb_func_start sub_80A0B88
+sub_80A0B88: @ 80A0B88
+ push {r4,r5,lr}
+ bl sub_80A0A90
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0
+ bne _080A0BA8
+ ldr r0, _080A0BA0 @ =gStringVar1
+ ldr r1, _080A0BA4 @ =gOtherText_None
+ bl StringCopy
+ b _080A0BD8
+ .align 2, 0
+_080A0BA0: .4byte gStringVar1
+_080A0BA4: .4byte gOtherText_None
+_080A0BA8:
+ ldr r4, _080A0BE8 @ =gStringVar1
+ ldr r1, _080A0BEC @ =gOtherText_Ribbons00
+ adds r0, r4, 0
+ bl StringCopy
+ adds r0, r4, 0
+ bl StringLength
+ lsls r0, 24
+ lsrs r0, 24
+ subs r4, 0x2
+ adds r0, r4
+ movs r1, 0xFC
+ strb r1, [r0]
+ movs r1, 0x14
+ strb r1, [r0, 0x1]
+ movs r1, 0x6
+ strb r1, [r0, 0x2]
+ adds r0, 0x3
+ adds r1, r5, 0
+ movs r2, 0x1
+ movs r3, 0x2
+ bl ConvertIntToDecimalStringN
+_080A0BD8:
+ ldr r0, _080A0BF0 @ =gUnknown_083C15AE
+ movs r1, 0x15
+ movs r2, 0x4
+ bl MenuPrint
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A0BE8: .4byte gStringVar1
+_080A0BEC: .4byte gOtherText_Ribbons00
+_080A0BF0: .4byte gUnknown_083C15AE
+ thumb_func_end sub_80A0B88
+
+ thumb_func_start sub_80A0BF4
+sub_80A0BF4: @ 80A0BF4
+ push {r4-r7,lr}
+ lsls r0, 16
+ lsrs r5, r0, 16
+ lsls r1, 24
+ lsrs r7, r1, 24
+ lsls r2, 24
+ lsrs r6, r2, 24
+ cmp r5, 0xAF
+ bne _080A0C48
+ bl sub_80F9344
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080A0C48
+ bl IsLinkDoubleBattle
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080A0C48
+ ldr r0, _080A0C40 @ =0x02018000
+ ldrb r0, [r0, 0x9]
+ cmp r0, 0x1
+ beq _080A0C2E
+ cmp r0, 0x4
+ beq _080A0C2E
+ cmp r0, 0x5
+ bne _080A0C48
+_080A0C2E:
+ ldr r4, _080A0C44 @ =gStringVar1
+ adds r0, r5, 0
+ bl ItemId_GetItem
+ adds r1, r0, 0
+ adds r0, r4, 0
+ bl StringCopy
+ b _080A0C68
+ .align 2, 0
+_080A0C40: .4byte 0x02018000
+_080A0C44: .4byte gStringVar1
+_080A0C48:
+ cmp r5, 0
+ bne _080A0C60
+ ldr r0, _080A0C58 @ =gStringVar1
+ ldr r1, _080A0C5C @ =gOtherText_None
+ bl StringCopy
+ b _080A0C68
+ .align 2, 0
+_080A0C58: .4byte gStringVar1
+_080A0C5C: .4byte gOtherText_None
+_080A0C60:
+ ldr r1, _080A0C78 @ =gStringVar1
+ adds r0, r5, 0
+ bl CopyItemName
+_080A0C68:
+ ldr r0, _080A0C7C @ =gUnknown_083C15B4
+ adds r1, r7, 0
+ adds r2, r6, 0
+ bl MenuPrint
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A0C78: .4byte gStringVar1
+_080A0C7C: .4byte gUnknown_083C15B4
+ thumb_func_end sub_80A0BF4
+
+ thumb_func_start sub_80A0C80
+sub_80A0C80: @ 80A0C80
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ adds r4, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ mov r10, r1
+ lsls r2, 24
+ lsrs r2, 24
+ str r2, [sp]
+ movs r0, 0
+ mov r9, r0
+ movs r6, 0
+ movs r7, 0
+ adds r0, r4, 0
+ movs r1, 0x19
+ bl GetMonData
+ mov r8, r0
+ adds r0, r4, 0
+ movs r1, 0x38
+ bl GetMonData
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r5, 0x63
+ bhi _080A0D14
+ ldr r3, _080A0D4C @ =gExperienceTables
+ adds r1, r5, 0x1
+ lsls r1, 2
+ ldr r2, _080A0D50 @ =gBaseStats
+ lsls r0, r4, 3
+ subs r0, r4
+ lsls r0, 2
+ adds r0, r2
+ ldrb r2, [r0, 0x13]
+ movs r0, 0xCA
+ lsls r0, 1
+ muls r2, r0
+ adds r1, r2
+ adds r1, r3
+ ldr r1, [r1]
+ mov r0, r8
+ subs r0, r1, r0
+ mov r9, r0
+ lsls r0, r5, 2
+ adds r0, r2
+ adds r0, r3
+ ldr r0, [r0]
+ subs r1, r0
+ mov r2, r8
+ subs r4, r2, r0
+ lsls r0, r4, 6
+ bl __udivsi3
+ adds r6, r0, 0
+ movs r7, 0
+ adds r0, r7, 0
+ orrs r0, r6
+ cmp r0, 0
+ bne _080A0D14
+ cmp r4, 0
+ beq _080A0D14
+ movs r6, 0x1
+ movs r7, 0
+_080A0D14:
+ ldr r4, _080A0D54 @ =gStringVar1
+ adds r0, r4, 0
+ mov r1, r9
+ bl ConvertIntToDecimalString
+ mov r1, r10
+ adds r1, 0x6
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ ldr r2, [sp]
+ bl MenuPrint_RightAligned
+ ldr r0, _080A0D58 @ =0x06004caa
+ mov r9, r0
+ movs r2, 0
+ mov r12, r2
+ ldr r0, _080A0D5C @ =0x00002062
+ mov r8, r0
+_080A0D3A:
+ cmp r7, 0
+ bgt _080A0D46
+ cmp r7, 0
+ bne _080A0D64
+ cmp r6, 0x7
+ bls _080A0D64
+_080A0D46:
+ ldr r1, _080A0D60 @ =0x0000206a
+ b _080A0D96
+ .align 2, 0
+_080A0D4C: .4byte gExperienceTables
+_080A0D50: .4byte gBaseStats
+_080A0D54: .4byte gStringVar1
+_080A0D58: .4byte 0x06004caa
+_080A0D5C: .4byte 0x00002062
+_080A0D60: .4byte 0x0000206a
+_080A0D64:
+ adds r5, r7, 0
+ adds r4, r6, 0
+ cmp r7, 0
+ bge _080A0D74
+ movs r4, 0x7
+ movs r5, 0
+ adds r4, r6
+ adcs r5, r7
+_080A0D74:
+ lsls r3, r5, 29
+ lsrs r2, r4, 3
+ adds r0, r3, 0
+ orrs r0, r2
+ asrs r1, r5, 3
+ lsrs r5, r0, 29
+ lsls r4, r1, 3
+ adds r3, r5, 0
+ orrs r3, r4
+ lsls r2, r0, 3
+ adds r1, r7, 0
+ adds r0, r6, 0
+ subs r0, r2
+ sbcs r1, r3
+ add r0, r8
+ lsls r0, 16
+ lsrs r1, r0, 16
+_080A0D96:
+ mov r2, r12
+ lsls r0, r2, 1
+ add r0, r9
+ strh r1, [r0]
+ movs r0, 0x8
+ negs r0, r0
+ asrs r1, r0, 31
+ adds r6, r0
+ adcs r7, r1
+ cmp r7, 0
+ bge _080A0DB0
+ movs r6, 0
+ movs r7, 0
+_080A0DB0:
+ mov r0, r12
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r12, r0
+ cmp r0, 0x7
+ bls _080A0D3A
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A0C80
+
+ thumb_func_start sub_80A0DD0
+sub_80A0DD0: @ 80A0DD0
+ push {r4,r5,lr}
+ ldr r2, _080A0E3C @ =gStringVar1
+ movs r5, 0xFC
+ strb r5, [r2]
+ movs r0, 0x12
+ strb r0, [r2, 0x1]
+ movs r0, 0x2
+ strb r0, [r2, 0x2]
+ adds r2, 0x3
+ adds r0, r2, 0
+ movs r1, 0xD
+ bl sub_80A1E58
+ adds r2, r0, 0
+ ldr r1, _080A0E40 @ =gUnknown_083C1068
+ ldr r4, _080A0E44 @ =0x02018000
+ adds r0, r4, 0
+ adds r0, 0x7E
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, [r0]
+ adds r0, r2, 0
+ bl StringCopy
+ adds r2, r0, 0
+ strb r5, [r2]
+ movs r0, 0x13
+ strb r0, [r2, 0x1]
+ movs r0, 0x58
+ strb r0, [r2, 0x2]
+ movs r0, 0xFF
+ strb r0, [r2, 0x3]
+ ldr r0, _080A0E3C @ =gStringVar1
+ movs r1, 0
+ movs r2, 0
+ bl MenuPrint
+ adds r4, 0x7F
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _080A0E48
+ movs r0, 0x5
+ movs r1, 0x17
+ movs r2, 0
+ bl GetStringCenterAlignXOffset
+ movs r0, 0x6
+ movs r1, 0x18
+ movs r2, 0
+ bl GetStringCenterAlignXOffset
+ b _080A0E54
+ .align 2, 0
+_080A0E3C: .4byte gStringVar1
+_080A0E40: .4byte gUnknown_083C1068
+_080A0E44: .4byte 0x02018000
+_080A0E48:
+ movs r0, 0x17
+ movs r1, 0
+ movs r2, 0x18
+ movs r3, 0x1
+ bl MenuZeroFillWindowRect
+_080A0E54:
+ ldr r2, _080A0E98 @ =gStringVar1
+ adds r0, r2, 0
+ movs r1, 0xD
+ bl sub_80A1E58
+ adds r2, r0, 0
+ ldr r1, _080A0E9C @ =gUnknown_083C1068
+ ldr r0, _080A0EA0 @ =0x02018000
+ adds r0, 0x7F
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, [r0]
+ adds r0, r2, 0
+ bl StringCopy
+ adds r2, r0, 0
+ movs r0, 0xFC
+ strb r0, [r2]
+ movs r0, 0x13
+ strb r0, [r2, 0x1]
+ movs r0, 0x28
+ strb r0, [r2, 0x2]
+ movs r0, 0xFF
+ strb r0, [r2, 0x3]
+ ldr r0, _080A0E98 @ =gStringVar1
+ movs r1, 0x19
+ movs r2, 0
+ bl MenuPrint
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A0E98: .4byte gStringVar1
+_080A0E9C: .4byte gUnknown_083C1068
+_080A0EA0: .4byte 0x02018000
+ thumb_func_end sub_80A0DD0
+
+ thumb_func_start sub_80A0EA4
+sub_80A0EA4: @ 80A0EA4
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ ldr r5, _080A0ECC @ =0x0600e444
+ ldr r6, _080A0ED0 @ =0x0600ec44
+ movs r1, 0
+ bl CheckPartyPokerus
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A0ED4
+ adds r0, r4, 0
+ movs r1, 0
+ bl CheckPartyHasHadPokerus
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A0ED4
+ movs r0, 0x2C
+ b _080A0ED8
+ .align 2, 0
+_080A0ECC: .4byte 0x0600e444
+_080A0ED0: .4byte 0x0600ec44
+_080A0ED4:
+ ldr r1, _080A0EE4 @ =0x0000081a
+ adds r0, r1, 0
+_080A0ED8:
+ strh r0, [r5]
+ strh r0, [r6]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A0EE4: .4byte 0x0000081a
+ thumb_func_end sub_80A0EA4
+
+ thumb_func_start sub_80A0EE8
+sub_80A0EE8: @ 80A0EE8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ movs r3, 0
+ ldr r6, _080A0F24 @ =0x02018000
+ adds r5, r6, 0
+ ldr r1, _080A0F28 @ =0x00004040
+ mov r8, r1
+ ldr r2, _080A0F2C @ =0x0000404a
+ mov r10, r2
+_080A0F02:
+ adds r0, r5, 0
+ adds r0, 0x75
+ ldrb r0, [r0]
+ cmp r3, r0
+ bcs _080A0F30
+ lsls r1, r3, 1
+ lsls r0, r3, 2
+ add r0, sp
+ mov r4, r8
+ strh r4, [r0]
+ adds r1, 0x1
+ lsls r1, 1
+ mov r7, sp
+ adds r0, r7, r1
+ strh r4, [r0]
+ b _080A0FE2
+ .align 2, 0
+_080A0F24: .4byte 0x02018000
+_080A0F28: .4byte 0x00004040
+_080A0F2C: .4byte 0x0000404a
+_080A0F30:
+ movs r0, 0x76
+ adds r0, r6
+ mov r12, r0
+ ldrb r1, [r0]
+ cmp r3, r1
+ bls _080A0F52
+ lsls r1, r3, 1
+ lsls r0, r3, 2
+ add r0, sp
+ mov r2, r10
+ strh r2, [r0]
+ adds r1, 0x1
+ lsls r1, 1
+ mov r4, sp
+ adds r0, r4, r1
+ strh r2, [r0]
+ b _080A0FE2
+_080A0F52:
+ ldrb r4, [r5, 0xB]
+ cmp r3, r4
+ bcs _080A0F6E
+ lsls r1, r3, 1
+ lsls r0, r3, 2
+ mov r7, sp
+ adds r2, r7, r0
+ ldr r0, _080A0F88 @ =0x00004046
+ strh r0, [r2]
+ adds r1, 0x1
+ lsls r1, 1
+ add r1, sp
+ adds r0, 0x1
+ strh r0, [r1]
+_080A0F6E:
+ cmp r3, r4
+ bne _080A0FA6
+ mov r0, r12
+ ldrb r0, [r0]
+ cmp r3, r0
+ beq _080A0F90
+ lsls r1, r3, 1
+ lsls r0, r3, 2
+ mov r4, sp
+ adds r2, r4, r0
+ ldr r0, _080A0F8C @ =0x00004041
+ b _080A0F9A
+ .align 2, 0
+_080A0F88: .4byte 0x00004046
+_080A0F8C: .4byte 0x00004041
+_080A0F90:
+ lsls r1, r3, 1
+ lsls r0, r3, 2
+ mov r7, sp
+ adds r2, r7, r0
+ ldr r0, _080A0FC4 @ =0x0000404b
+_080A0F9A:
+ strh r0, [r2]
+ adds r1, 0x1
+ lsls r1, 1
+ add r1, sp
+ adds r0, 0x1
+ strh r0, [r1]
+_080A0FA6:
+ ldrb r0, [r5, 0xB]
+ cmp r3, r0
+ bls _080A0FE2
+ adds r0, r6, 0
+ adds r0, 0x76
+ ldrb r0, [r0]
+ cmp r3, r0
+ beq _080A0FCC
+ lsls r1, r3, 1
+ lsls r0, r3, 2
+ mov r4, sp
+ adds r2, r4, r0
+ ldr r0, _080A0FC8 @ =0x00004043
+ b _080A0FD6
+ .align 2, 0
+_080A0FC4: .4byte 0x0000404b
+_080A0FC8: .4byte 0x00004043
+_080A0FCC:
+ lsls r1, r3, 1
+ lsls r0, r3, 2
+ mov r7, sp
+ adds r2, r7, r0
+ ldr r0, _080A1034 @ =0x00004048
+_080A0FD6:
+ strh r0, [r2]
+ adds r1, 0x1
+ lsls r1, 1
+ add r1, sp
+ adds r0, 0x1
+ strh r0, [r1]
+_080A0FE2:
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x3
+ bls _080A0F02
+ ldr r1, _080A1038 @ =0x0600e016
+ ldr r0, _080A103C @ =0x040000d4
+ mov r2, sp
+ str r2, [r0]
+ str r1, [r0, 0x4]
+ ldr r1, _080A1040 @ =0x80000008
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ movs r3, 0
+_080A0FFE:
+ lsls r0, r3, 1
+ mov r4, sp
+ adds r1, r4, r0
+ ldrh r0, [r1]
+ adds r0, 0x10
+ strh r0, [r1]
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x7
+ bls _080A0FFE
+ ldr r1, _080A1044 @ =0x0600e056
+ ldr r0, _080A103C @ =0x040000d4
+ str r4, [r0]
+ str r1, [r0, 0x4]
+ ldr r1, _080A1040 @ =0x80000008
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ add sp, 0x10
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A1034: .4byte 0x00004048
+_080A1038: .4byte 0x0600e016
+_080A103C: .4byte 0x040000d4
+_080A1040: .4byte 0x80000008
+_080A1044: .4byte 0x0600e056
+ thumb_func_end sub_80A0EE8
+
+ thumb_func_start sub_80A1048
+sub_80A1048: @ 80A1048
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ lsls r0, 2
+ add r0, r8
+ lsls r0, 3
+ ldr r1, _080A10A0 @ =gTasks + 0x8
+ adds r6, r0, r1
+ ldrh r0, [r6]
+ ldrh r1, [r6, 0x2]
+ adds r0, r1
+ strh r0, [r6, 0x2]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080A106E
+ b _080A1224
+_080A106E:
+ movs r5, 0x2
+ ldrsh r2, [r6, r5]
+ ldr r0, _080A10A4 @ =0x0000024a
+ subs r0, r2
+ lsls r0, 1
+ ldr r1, _080A10A8 @ =gUnknown_08E73508
+ adds r4, r0, r1
+ ldr r5, _080A10AC @ =0x0600e480
+ lsls r2, 1
+ movs r0, 0x80
+ lsls r0, 5
+ adds r7, r1, 0
+ cmp r2, r0
+ bhi _080A10B4
+ ldr r0, _080A10B0 @ =0x040000d4
+ str r4, [r0]
+ str r5, [r0, 0x4]
+ lsrs r1, r2, 1
+ movs r2, 0x80
+ lsls r2, 24
+ orrs r1, r2
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ b _080A10E0
+ .align 2, 0
+_080A10A0: .4byte gTasks + 0x8
+_080A10A4: .4byte 0x0000024a
+_080A10A8: .4byte gUnknown_08E73508
+_080A10AC: .4byte 0x0600e480
+_080A10B0: .4byte 0x040000d4
+_080A10B4:
+ ldr r3, _080A110C @ =0x040000d4
+ str r4, [r3]
+ str r5, [r3, 0x4]
+ ldr r0, _080A1110 @ =0x80000800
+ str r0, [r3, 0x8]
+ ldr r0, [r3, 0x8]
+ movs r0, 0x80
+ lsls r0, 5
+ adds r4, r0
+ adds r5, r0
+ ldr r1, _080A1114 @ =0xfffff000
+ adds r2, r1
+ cmp r2, r0
+ bhi _080A10B4
+ str r4, [r3]
+ str r5, [r3, 0x4]
+ lsrs r0, r2, 1
+ movs r1, 0x80
+ lsls r1, 24
+ orrs r0, r1
+ str r0, [r3, 0x8]
+ ldr r0, [r3, 0x8]
+_080A10E0:
+ movs r5, 0x2
+ ldrsh r0, [r6, r5]
+ ldr r1, _080A1118 @ =0x0000026a
+ subs r1, r0
+ lsls r1, 1
+ adds r3, r1, r7
+ ldr r4, _080A111C @ =0x0600e4c0
+ lsls r1, r0, 1
+ movs r0, 0x80
+ lsls r0, 5
+ cmp r1, r0
+ bhi _080A1120
+ ldr r0, _080A110C @ =0x040000d4
+ str r3, [r0]
+ str r4, [r0, 0x4]
+ lsrs r1, 1
+ movs r2, 0x80
+ lsls r2, 24
+ orrs r1, r2
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ b _080A114C
+ .align 2, 0
+_080A110C: .4byte 0x040000d4
+_080A1110: .4byte 0x80000800
+_080A1114: .4byte 0xfffff000
+_080A1118: .4byte 0x0000026a
+_080A111C: .4byte 0x0600e4c0
+_080A1120:
+ ldr r2, _080A1178 @ =0x040000d4
+ str r3, [r2]
+ str r4, [r2, 0x4]
+ ldr r0, _080A117C @ =0x80000800
+ str r0, [r2, 0x8]
+ ldr r0, [r2, 0x8]
+ movs r0, 0x80
+ lsls r0, 5
+ adds r3, r0
+ adds r4, r0
+ ldr r5, _080A1180 @ =0xfffff000
+ adds r1, r5
+ cmp r1, r0
+ bhi _080A1120
+ str r3, [r2]
+ str r4, [r2, 0x4]
+ lsrs r0, r1, 1
+ movs r1, 0x80
+ lsls r1, 24
+ orrs r0, r1
+ str r0, [r2, 0x8]
+ ldr r0, [r2, 0x8]
+_080A114C:
+ movs r1, 0x2
+ ldrsh r0, [r6, r1]
+ ldr r1, _080A1184 @ =0x0000024a
+ subs r1, r0
+ lsls r1, 1
+ adds r3, r1, r7
+ ldr r4, _080A1188 @ =0x0600ec80
+ lsls r1, r0, 1
+ movs r0, 0x80
+ lsls r0, 5
+ cmp r1, r0
+ bhi _080A118C
+ ldr r0, _080A1178 @ =0x040000d4
+ str r3, [r0]
+ str r4, [r0, 0x4]
+ lsrs r1, 1
+ movs r2, 0x80
+ lsls r2, 24
+ orrs r1, r2
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ b _080A11B8
+ .align 2, 0
+_080A1178: .4byte 0x040000d4
+_080A117C: .4byte 0x80000800
+_080A1180: .4byte 0xfffff000
+_080A1184: .4byte 0x0000024a
+_080A1188: .4byte 0x0600ec80
+_080A118C:
+ ldr r2, _080A11E4 @ =0x040000d4
+ str r3, [r2]
+ str r4, [r2, 0x4]
+ ldr r0, _080A11E8 @ =0x80000800
+ str r0, [r2, 0x8]
+ ldr r0, [r2, 0x8]
+ movs r0, 0x80
+ lsls r0, 5
+ adds r3, r0
+ adds r4, r0
+ ldr r5, _080A11EC @ =0xfffff000
+ adds r1, r5
+ cmp r1, r0
+ bhi _080A118C
+ str r3, [r2]
+ str r4, [r2, 0x4]
+ lsrs r0, r1, 1
+ movs r1, 0x80
+ lsls r1, 24
+ orrs r0, r1
+ str r0, [r2, 0x8]
+ ldr r0, [r2, 0x8]
+_080A11B8:
+ movs r1, 0x2
+ ldrsh r0, [r6, r1]
+ ldr r1, _080A11F0 @ =0x0000026a
+ subs r1, r0
+ lsls r1, 1
+ adds r3, r1, r7
+ ldr r4, _080A11F4 @ =0x0600ecc0
+ lsls r1, r0, 1
+ movs r0, 0x80
+ lsls r0, 5
+ cmp r1, r0
+ bhi _080A11F8
+ ldr r0, _080A11E4 @ =0x040000d4
+ str r3, [r0]
+ str r4, [r0, 0x4]
+ lsrs r1, 1
+ movs r2, 0x80
+ lsls r2, 24
+ orrs r1, r2
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ b _080A1224
+ .align 2, 0
+_080A11E4: .4byte 0x040000d4
+_080A11E8: .4byte 0x80000800
+_080A11EC: .4byte 0xfffff000
+_080A11F0: .4byte 0x0000026a
+_080A11F4: .4byte 0x0600ecc0
+_080A11F8:
+ ldr r2, _080A12B0 @ =0x040000d4
+ str r3, [r2]
+ str r4, [r2, 0x4]
+ ldr r0, _080A12B4 @ =0x80000800
+ str r0, [r2, 0x8]
+ ldr r0, [r2, 0x8]
+ movs r0, 0x80
+ lsls r0, 5
+ adds r3, r0
+ adds r4, r0
+ ldr r5, _080A12B8 @ =0xfffff000
+ adds r1, r5
+ cmp r1, r0
+ bhi _080A11F8
+ str r3, [r2]
+ str r4, [r2, 0x4]
+ lsrs r0, r1, 1
+ movs r1, 0x80
+ lsls r1, 24
+ orrs r0, r1
+ str r0, [r2, 0x8]
+ ldr r0, [r2, 0x8]
+_080A1224:
+ ldrb r4, [r6, 0x2]
+ ldrh r7, [r6, 0x2]
+ ldrh r0, [r6]
+ mov r12, r0
+ cmp r4, 0x9
+ bhi _080A1272
+ adds r3, r6, 0x4
+ ldr r2, _080A12B0 @ =0x040000d4
+ ldr r5, _080A12BC @ =0x80000001
+_080A1236:
+ lsls r1, r4, 1
+ ldr r6, _080A12C0 @ =0x0600e480
+ adds r0, r1, r6
+ str r3, [r2]
+ str r0, [r2, 0x4]
+ str r5, [r2, 0x8]
+ ldr r0, [r2, 0x8]
+ adds r6, 0x40
+ adds r0, r1, r6
+ str r3, [r2]
+ str r0, [r2, 0x4]
+ str r5, [r2, 0x8]
+ ldr r0, [r2, 0x8]
+ ldr r6, _080A12C4 @ =0x0600ec80
+ adds r0, r1, r6
+ str r3, [r2]
+ str r0, [r2, 0x4]
+ str r5, [r2, 0x8]
+ ldr r0, [r2, 0x8]
+ ldr r0, _080A12C8 @ =0x0600ecc0
+ adds r1, r0
+ str r3, [r2]
+ str r1, [r2, 0x4]
+ str r5, [r2, 0x8]
+ ldr r0, [r2, 0x8]
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x9
+ bls _080A1236
+_080A1272:
+ mov r1, r12
+ lsls r0, r1, 16
+ cmp r0, 0
+ beq _080A1286
+ lsls r0, r7, 16
+ asrs r0, 16
+ cmp r0, 0
+ ble _080A1286
+ cmp r0, 0x9
+ ble _080A12A4
+_080A1286:
+ lsls r0, r7, 16
+ asrs r0, 16
+ cmp r0, 0x9
+ ble _080A129A
+ ldr r0, _080A12CC @ =gOtherText_Status
+ movs r1, 0xD
+ movs r2, 0x1
+ movs r3, 0x12
+ bl sub_80A1FF8
+_080A129A:
+ bl sub_80A1D18
+ mov r0, r8
+ bl DestroyTask
+_080A12A4:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A12B0: .4byte 0x040000d4
+_080A12B4: .4byte 0x80000800
+_080A12B8: .4byte 0xfffff000
+_080A12BC: .4byte 0x80000001
+_080A12C0: .4byte 0x0600e480
+_080A12C4: .4byte 0x0600ec80
+_080A12C8: .4byte 0x0600ecc0
+_080A12CC: .4byte gOtherText_Status
+ thumb_func_end sub_80A1048
+
+ thumb_func_start sub_80A12D0
+sub_80A12D0: @ 80A12D0
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x1
+ movs r1, 0x12
+ movs r2, 0x5
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ movs r0, 0x1D
+ bl sub_80A18E4
+ ldr r0, _080A1310 @ =sub_80A1048
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r1, _080A1314 @ =gTasks
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r1, r0, r1
+ lsls r4, 24
+ asrs r4, 24
+ strh r4, [r1, 0x8]
+ cmp r4, 0
+ bge _080A1318
+ movs r0, 0xA
+ b _080A131A
+ .align 2, 0
+_080A1310: .4byte sub_80A1048
+_080A1314: .4byte gTasks
+_080A1318:
+ movs r0, 0
+_080A131A:
+ strh r0, [r1, 0xA]
+ ldr r0, _080A1330 @ =gTasks
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0x1
+ strh r0, [r1, 0xC]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A1330: .4byte gTasks
+ thumb_func_end sub_80A12D0
+
+ thumb_func_start sub_80A1334
+sub_80A1334: @ 80A1334
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ lsls r0, 2
+ add r0, r10
+ lsls r0, 3
+ ldr r1, _080A13E4 @ =gTasks + 0x8
+ adds r7, r0, r1
+ ldrh r0, [r7]
+ ldrh r1, [r7, 0x2]
+ adds r0, r1
+ strh r0, [r7, 0x2]
+ lsls r0, 16
+ asrs r1, r0, 16
+ movs r0, 0
+ cmp r1, 0
+ blt _080A136A
+ movs r0, 0xA
+ cmp r1, 0xA
+ bgt _080A136A
+ ldrh r0, [r7, 0x2]
+_080A136A:
+ lsls r0, 16
+ asrs r2, r0, 16
+ mov r9, r0
+ cmp r2, 0
+ ble _080A13A6
+ movs r0, 0xA
+ subs r0, r2
+ lsls r0, 1
+ ldr r1, _080A13E8 @ =0x06005b40
+ adds r4, r0, r1
+ movs r5, 0
+ adds r6, r2, 0
+ ldr r0, _080A13EC @ =0x001fffff
+ mov r8, r0
+_080A1386:
+ adds r0, r5, 0
+ adds r0, 0xD
+ lsls r0, 6
+ ldr r1, _080A13F0 @ =gUnknown_08E73E88
+ adds r0, r1
+ adds r1, r4, 0
+ mov r2, r8
+ ands r2, r6
+ bl CpuSet
+ adds r4, 0x40
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x6
+ bls _080A1386
+_080A13A6:
+ mov r1, r9
+ asrs r2, r1, 16
+ cmp r2, 0x9
+ bgt _080A13F4
+ ldr r4, _080A13E8 @ =0x06005b40
+ movs r5, 0
+ mov r8, sp
+ movs r0, 0xA
+ subs r6, r0, r2
+ ldr r0, _080A13EC @ =0x001fffff
+ ands r6, r0
+ movs r0, 0x80
+ lsls r0, 17
+ mov r9, r0
+_080A13C2:
+ ldrh r0, [r7, 0x4]
+ mov r1, r8
+ strh r0, [r1]
+ mov r0, sp
+ adds r1, r4, 0
+ mov r2, r9
+ orrs r2, r6
+ bl CpuSet
+ adds r4, 0x40
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x6
+ bls _080A13C2
+ b _080A1400
+ .align 2, 0
+_080A13E4: .4byte gTasks + 0x8
+_080A13E8: .4byte 0x06005b40
+_080A13EC: .4byte 0x001fffff
+_080A13F0: .4byte gUnknown_08E73E88
+_080A13F4:
+ movs r0, 0
+ movs r1, 0x13
+ movs r2, 0x9
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+_080A1400:
+ movs r1, 0
+ ldrsh r0, [r7, r1]
+ cmp r0, 0
+ beq _080A1410
+ movs r1, 0x2
+ ldrsh r0, [r7, r1]
+ cmp r0, 0
+ bge _080A144A
+_080A1410:
+ ldr r4, _080A1480 @ =0x02018000
+ ldrb r0, [r4, 0xB]
+ cmp r0, 0x2
+ bne _080A1444
+ movs r0, 0
+ movs r1, 0xE
+ movs r2, 0x9
+ movs r3, 0x12
+ bl MenuZeroFillWindowRect
+ adds r4, 0x10
+ adds r0, r4, 0
+ bl sub_80A0958
+ adds r0, r4, 0
+ bl GetMonStatusAndPokerus
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A1444
+ ldr r0, _080A1484 @ =gOtherText_Status
+ movs r1, 0xD
+ movs r2, 0x1
+ movs r3, 0x12
+ bl sub_80A1FF8
+_080A1444:
+ mov r0, r10
+ bl DestroyTask
+_080A144A:
+ movs r1, 0x2
+ ldrsh r0, [r7, r1]
+ cmp r0, 0x9
+ ble _080A1470
+ ldr r4, _080A1480 @ =0x02018000
+ ldrb r0, [r4, 0xB]
+ cmp r0, 0x2
+ bne _080A1460
+ ldrb r0, [r7, 0x6]
+ bl sub_80A00F4
+_080A1460:
+ adds r0, r4, 0
+ adds r0, 0x10
+ adds r1, r7, 0x6
+ bl sub_80A0428
+ mov r0, r10
+ bl DestroyTask
+_080A1470:
+ 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
+_080A1480: .4byte 0x02018000
+_080A1484: .4byte gOtherText_Status
+ thumb_func_end sub_80A1334
+
+ thumb_func_start sub_80A1488
+sub_80A1488: @ 80A1488
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r1, 24
+ lsrs r7, r1, 24
+ ldr r0, _080A14DC @ =0x02018000
+ ldrb r0, [r0, 0xB]
+ cmp r0, 0x2
+ bne _080A14A6
+ movs r0, 0
+ movs r1, 0xE
+ movs r2, 0x9
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+_080A14A6:
+ ldr r5, _080A14E0 @ =sub_80A1334
+ adds r0, r5, 0
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0xFF
+ bne _080A14C2
+ adds r0, r5, 0
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r4, r0, 24
+_080A14C2:
+ ldr r1, _080A14E4 @ =gTasks
+ lsls r2, r4, 2
+ adds r0, r2, r4
+ lsls r0, 3
+ adds r3, r0, r1
+ lsls r0, r6, 24
+ asrs r0, 24
+ strh r0, [r3, 0x8]
+ cmp r0, 0
+ bge _080A14E8
+ movs r0, 0xA
+ b _080A14EA
+ .align 2, 0
+_080A14DC: .4byte 0x02018000
+_080A14E0: .4byte sub_80A1334
+_080A14E4: .4byte gTasks
+_080A14E8:
+ movs r0, 0
+_080A14EA:
+ strh r0, [r3, 0xA]
+ adds r0, r2, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0, 0xC]
+ strh r7, [r0, 0xE]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A1488
+
+ thumb_func_start sub_80A1500
+sub_80A1500: @ 80A1500
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ lsls r0, 2
+ add r0, r10
+ lsls r0, 3
+ ldr r1, _080A15B0 @ =gTasks + 0x8
+ adds r7, r0, r1
+ ldrh r0, [r7]
+ ldrh r1, [r7, 0x2]
+ adds r0, r1
+ strh r0, [r7, 0x2]
+ lsls r0, 16
+ asrs r1, r0, 16
+ movs r0, 0
+ cmp r1, 0
+ blt _080A1536
+ movs r0, 0xA
+ cmp r1, 0xA
+ bgt _080A1536
+ ldrh r0, [r7, 0x2]
+_080A1536:
+ lsls r0, 16
+ asrs r2, r0, 16
+ mov r9, r0
+ cmp r2, 0
+ ble _080A1572
+ movs r0, 0xA
+ subs r0, r2
+ lsls r0, 1
+ ldr r1, _080A15B4 @ =0x06006b40
+ adds r4, r0, r1
+ movs r5, 0
+ adds r6, r2, 0
+ ldr r0, _080A15B8 @ =0x001fffff
+ mov r8, r0
+_080A1552:
+ adds r0, r5, 0
+ adds r0, 0xD
+ lsls r0, 6
+ ldr r1, _080A15BC @ =gUnknown_08E74688
+ adds r0, r1
+ adds r1, r4, 0
+ mov r2, r8
+ ands r2, r6
+ bl CpuSet
+ adds r4, 0x40
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x6
+ bls _080A1552
+_080A1572:
+ mov r1, r9
+ asrs r2, r1, 16
+ cmp r2, 0x9
+ bgt _080A15C0
+ ldr r4, _080A15B4 @ =0x06006b40
+ movs r5, 0
+ mov r8, sp
+ movs r0, 0xA
+ subs r6, r0, r2
+ ldr r0, _080A15B8 @ =0x001fffff
+ ands r6, r0
+ movs r0, 0x80
+ lsls r0, 17
+ mov r9, r0
+_080A158E:
+ ldrh r0, [r7, 0x4]
+ mov r1, r8
+ strh r0, [r1]
+ mov r0, sp
+ adds r1, r4, 0
+ mov r2, r9
+ orrs r2, r6
+ bl CpuSet
+ adds r4, 0x40
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x6
+ bls _080A158E
+ b _080A15CC
+ .align 2, 0
+_080A15B0: .4byte gTasks + 0x8
+_080A15B4: .4byte 0x06006b40
+_080A15B8: .4byte 0x001fffff
+_080A15BC: .4byte gUnknown_08E74688
+_080A15C0:
+ movs r0, 0
+ movs r1, 0x13
+ movs r2, 0x9
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+_080A15CC:
+ movs r1, 0
+ ldrsh r0, [r7, r1]
+ cmp r0, 0
+ beq _080A15DC
+ movs r1, 0x2
+ ldrsh r0, [r7, r1]
+ cmp r0, 0
+ bge _080A1616
+_080A15DC:
+ ldr r4, _080A164C @ =0x02018000
+ ldrb r0, [r4, 0xB]
+ cmp r0, 0x3
+ bne _080A1610
+ movs r0, 0
+ movs r1, 0xE
+ movs r2, 0x9
+ movs r3, 0x12
+ bl MenuZeroFillWindowRect
+ adds r4, 0x10
+ adds r0, r4, 0
+ bl sub_80A0958
+ adds r0, r4, 0
+ bl GetMonStatusAndPokerus
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A1610
+ ldr r0, _080A1650 @ =gOtherText_Status
+ movs r1, 0xD
+ movs r2, 0x1
+ movs r3, 0x12
+ bl sub_80A1FF8
+_080A1610:
+ mov r0, r10
+ bl DestroyTask
+_080A1616:
+ movs r1, 0x2
+ ldrsh r0, [r7, r1]
+ cmp r0, 0x9
+ ble _080A163C
+ ldr r4, _080A164C @ =0x02018000
+ ldrb r0, [r4, 0xB]
+ cmp r0, 0x3
+ bne _080A162C
+ ldrb r0, [r7, 0x6]
+ bl sub_80A00F4
+_080A162C:
+ adds r0, r4, 0
+ adds r0, 0x10
+ adds r1, r7, 0x6
+ bl sub_80A0428
+ mov r0, r10
+ bl DestroyTask
+_080A163C:
+ 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
+_080A164C: .4byte 0x02018000
+_080A1650: .4byte gOtherText_Status
+ thumb_func_end sub_80A1500
+
+ thumb_func_start sub_80A1654
+sub_80A1654: @ 80A1654
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r1, 24
+ lsrs r7, r1, 24
+ ldr r0, _080A16A8 @ =0x02018000
+ ldrb r0, [r0, 0xB]
+ cmp r0, 0x3
+ bne _080A1672
+ movs r0, 0
+ movs r1, 0xE
+ movs r2, 0x9
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+_080A1672:
+ ldr r5, _080A16AC @ =sub_80A1500
+ adds r0, r5, 0
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0xFF
+ bne _080A168E
+ adds r0, r5, 0
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r4, r0, 24
+_080A168E:
+ ldr r1, _080A16B0 @ =gTasks
+ lsls r2, r4, 2
+ adds r0, r2, r4
+ lsls r0, 3
+ adds r3, r0, r1
+ lsls r0, r6, 24
+ asrs r0, 24
+ strh r0, [r3, 0x8]
+ cmp r0, 0
+ bge _080A16B4
+ movs r0, 0xA
+ b _080A16B6
+ .align 2, 0
+_080A16A8: .4byte 0x02018000
+_080A16AC: .4byte sub_80A1500
+_080A16B0: .4byte gTasks
+_080A16B4:
+ movs r0, 0
+_080A16B6:
+ strh r0, [r3, 0xA]
+ adds r0, r2, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0, 0xC]
+ strh r7, [r0, 0xE]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A1654
+
+ thumb_func_start sub_80A16CC
+sub_80A16CC: @ 80A16CC
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ ldr r0, _080A1724 @ =0x06006ad4
+ mov r12, r0
+ mov r1, r9
+ cmp r1, 0
+ bne _080A172C
+ movs r5, 0
+ ldr r7, _080A1728 @ =gUnknown_08E94510
+ movs r0, 0x80
+ lsls r0, 5
+ adds r6, r0, 0
+ movs r1, 0x40
+ adds r1, r7
+ mov r8, r1
+_080A16F4:
+ lsls r2, r5, 1
+ mov r0, r12
+ adds r3, r2, r0
+ adds r4, r2, r7
+ ldrh r1, [r4]
+ adds r0, r6, r1
+ strh r0, [r3]
+ adds r1, r3, 0
+ adds r1, 0x40
+ ldrh r4, [r4]
+ adds r0, r6, r4
+ strh r0, [r1]
+ adds r3, 0x80
+ add r2, r8
+ ldrh r2, [r2]
+ adds r0, r6, r2
+ strh r0, [r3]
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x13
+ bls _080A16F4
+ b _080A1768
+ .align 2, 0
+_080A1724: .4byte 0x06006ad4
+_080A1728: .4byte gUnknown_08E94510
+_080A172C:
+ movs r5, 0
+ ldr r6, _080A17B0 @ =gUnknown_08E94550
+ movs r7, 0x80
+ lsls r7, 5
+ adds r4, r7, 0
+ movs r0, 0x40
+ adds r0, r6
+ mov r8, r0
+_080A173C:
+ lsls r1, r5, 1
+ mov r7, r12
+ adds r2, r1, r7
+ adds r0, r1, r6
+ ldrh r0, [r0]
+ adds r0, r4, r0
+ strh r0, [r2]
+ adds r3, r2, 0
+ adds r3, 0x40
+ add r1, r8
+ ldrh r7, [r1]
+ adds r0, r4, r7
+ strh r0, [r3]
+ adds r2, 0x80
+ ldrh r1, [r1]
+ adds r0, r4, r1
+ strh r0, [r2]
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x13
+ bls _080A173C
+_080A1768:
+ ldr r0, _080A17B4 @ =0x06005ad4
+ mov r12, r0
+ mov r1, r9
+ cmp r1, 0
+ bne _080A17BC
+ movs r5, 0
+ ldr r7, _080A17B8 @ =gUnknown_08E94510
+ movs r0, 0xC0
+ lsls r0, 6
+ adds r6, r0, 0
+ movs r1, 0x40
+ adds r1, r7
+ mov r8, r1
+_080A1782:
+ lsls r2, r5, 1
+ mov r0, r12
+ adds r3, r2, r0
+ adds r4, r2, r7
+ ldrh r1, [r4]
+ adds r0, r6, r1
+ strh r0, [r3]
+ adds r1, r3, 0
+ adds r1, 0x40
+ ldrh r4, [r4]
+ adds r0, r6, r4
+ strh r0, [r1]
+ adds r3, 0x80
+ add r2, r8
+ ldrh r2, [r2]
+ adds r0, r6, r2
+ strh r0, [r3]
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x13
+ bls _080A1782
+ b _080A17F8
+ .align 2, 0
+_080A17B0: .4byte gUnknown_08E94550
+_080A17B4: .4byte 0x06005ad4
+_080A17B8: .4byte gUnknown_08E94510
+_080A17BC:
+ movs r5, 0
+ ldr r6, _080A1804 @ =gUnknown_08E94550
+ movs r7, 0xC0
+ lsls r7, 6
+ adds r4, r7, 0
+ movs r0, 0x40
+ adds r0, r6
+ mov r8, r0
+_080A17CC:
+ lsls r1, r5, 1
+ mov r7, r12
+ adds r2, r1, r7
+ adds r0, r1, r6
+ ldrh r0, [r0]
+ adds r0, r4, r0
+ strh r0, [r2]
+ adds r3, r2, 0
+ adds r3, 0x40
+ add r1, r8
+ ldrh r7, [r1]
+ adds r0, r4, r7
+ strh r0, [r3]
+ adds r2, 0x80
+ ldrh r1, [r1]
+ adds r0, r4, r1
+ strh r0, [r2]
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x13
+ bls _080A17CC
+_080A17F8:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A1804: .4byte gUnknown_08E94550
+ thumb_func_end sub_80A16CC
+
+ thumb_func_start sub_80A1808
+sub_80A1808: @ 80A1808
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ movs r1, 0x41
+ bl GetMonData
+ adds r6, r0, 0
+ lsls r6, 16
+ lsrs r6, 16
+ ldr r0, _080A1860 @ =gUnknown_02024E8C
+ movs r1, 0x28
+ movs r2, 0x40
+ movs r3, 0x5
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ lsls r4, r0, 4
+ add r4, r8
+ lsls r4, 2
+ ldr r5, _080A1864 @ =gSprites
+ adds r7, r4, r5
+ adds r0, r7, 0
+ bl FreeSpriteOamMatrix
+ strh r6, [r7, 0x2E]
+ adds r5, 0x1C
+ adds r4, r5
+ ldr r0, _080A1868 @ =sub_80A1888
+ str r0, [r4]
+ adds r0, r6, 0
+ bl sub_8040A3C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A186C
+ adds r0, r7, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r2, 0x1
+ orrs r1, r2
+ strb r1, [r0]
+ b _080A187A
+ .align 2, 0
+_080A1860: .4byte gUnknown_02024E8C
+_080A1864: .4byte gSprites
+_080A1868: .4byte sub_80A1888
+_080A186C:
+ adds r2, r7, 0
+ adds r2, 0x3F
+ ldrb r1, [r2]
+ movs r0, 0x2
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+_080A187A:
+ mov r0, r8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80A1808
+
+ thumb_func_start sub_80A1888
+sub_80A1888: @ 80A1888
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080A18B8 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080A18B0
+ ldr r0, _080A18BC @ =SpriteCallbackDummy
+ str r0, [r4, 0x1C]
+ ldr r0, _080A18C0 @ =0x02018010
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0
+ bne _080A18B0
+ ldrh r0, [r4, 0x2E]
+ movs r1, 0
+ bl PlayCry1
+_080A18B0:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A18B8: .4byte gPaletteFade
+_080A18BC: .4byte SpriteCallbackDummy
+_080A18C0: .4byte 0x02018010
+ thumb_func_end sub_80A1888
+
+ thumb_func_start sub_80A18C4
+sub_80A18C4: @ 80A18C4
+ push {lr}
+ movs r1, 0
+ ldr r3, _080A18E0 @ =0x0201a000
+ movs r2, 0xFF
+_080A18CC:
+ adds r0, r1, r3
+ strb r2, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x1D
+ bls _080A18CC
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A18E0: .4byte 0x0201a000
+ thumb_func_end sub_80A18C4
+
+ thumb_func_start sub_80A18E4
+sub_80A18E4: @ 80A18E4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080A1910 @ =0x0201a000
+ adds r4, r0, r1
+ ldrb r0, [r4]
+ cmp r0, 0xFF
+ beq _080A1908
+ adds r1, r0, 0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080A1914 @ =gSprites
+ adds r0, r1
+ bl DestroySprite
+ movs r0, 0xFF
+ strb r0, [r4]
+_080A1908:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A1910: .4byte 0x0201a000
+_080A1914: .4byte gSprites
+ thumb_func_end sub_80A18E4
+
+ thumb_func_start sub_80A1918
+sub_80A1918: @ 80A1918
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r3, _080A1948 @ =gSprites
+ ldr r2, _080A194C @ =0x0201a000
+ adds r0, r2
+ ldrb r0, [r0]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r3
+ adds r2, 0x3E
+ movs r0, 0x1
+ ands r1, r0
+ lsls r1, 2
+ ldrb r3, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2]
+ bx lr
+ .align 2, 0
+_080A1948: .4byte gSprites
+_080A194C: .4byte 0x0201a000
+ thumb_func_end sub_80A1918
+
+ thumb_func_start sub_80A1950
+sub_80A1950: @ 80A1950
+ push {r4,r5,lr}
+ movs r5, 0
+_080A1954:
+ ldr r0, _080A1984 @ =0x0201a000
+ adds r4, r5, r0
+ ldrb r0, [r4]
+ cmp r0, 0xFF
+ bne _080A196C
+ ldr r0, _080A1988 @ =gSpriteTemplate_83C11C0
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x2
+ bl CreateSprite
+ strb r0, [r4]
+_080A196C:
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_80A1918
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x4
+ bls _080A1954
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A1984: .4byte 0x0201a000
+_080A1988: .4byte gSpriteTemplate_83C11C0
+ thumb_func_end sub_80A1950
+
+ thumb_func_start sub_80A198C
+sub_80A198C: @ 80A198C
+ push {r4-r6,lr}
+ mov r6, r10
+ mov r5, r9
+ mov r4, r8
+ push {r4-r6}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ adds r6, r2, 0
+ mov r10, r3
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r6, 24
+ lsrs r6, 24
+ mov r0, r10
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ ldr r1, _080A1A24 @ =0x0201a000
+ mov r8, r1
+ add r8, r10
+ mov r0, r8
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080A1A28 @ =gSprites
+ mov r9, r1
+ add r0, r9
+ adds r1, r4, 0
+ bl StartSpriteAnim
+ mov r1, r8
+ ldrb r0, [r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ add r1, r9
+ ldr r0, _080A1A2C @ =gUnknown_083C11D8
+ adds r4, r0
+ ldrb r2, [r4]
+ lsls r2, 4
+ ldrb r3, [r1, 0x5]
+ movs r0, 0xF
+ ands r0, r3
+ orrs r0, r2
+ strb r0, [r1, 0x5]
+ mov r0, r8
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ add r0, r9
+ adds r5, 0x10
+ strh r5, [r0, 0x20]
+ mov r0, r8
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ add r0, r9
+ adds r6, 0x8
+ strh r6, [r0, 0x22]
+ mov r0, r10
+ movs r1, 0
+ bl sub_80A1918
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A1A24: .4byte 0x0201a000
+_080A1A28: .4byte gSprites
+_080A1A2C: .4byte gUnknown_083C11D8
+ thumb_func_end sub_80A198C
+
+ thumb_func_start sub_80A1A30
+sub_80A1A30: @ 80A1A30
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r0, 0
+ mov r9, r0
+ ldr r1, _080A1A98 @ =0x02018000
+ ldrb r0, [r1, 0xB]
+ cmp r0, 0x1
+ bls _080A1B0A
+ cmp r4, 0x9
+ bne _080A1A52
+ movs r3, 0x1
+ mov r9, r3
+_080A1A52:
+ movs r5, 0
+ movs r0, 0x80
+ lsls r0, 6
+ adds r0, r1
+ mov r8, r0
+ ldr r6, _080A1A9C @ =gSprites
+ mov r10, r5
+_080A1A60:
+ lsls r1, r5, 20
+ movs r3, 0xB0
+ lsls r3, 15
+ adds r1, r3
+ asrs r1, 16
+ ldr r0, _080A1AA0 @ =gSpriteTemplate_83C1280
+ movs r2, 0x28
+ mov r3, r9
+ bl CreateSprite
+ adds r1, r4, r5
+ mov r3, r8
+ adds r2, r1, r3
+ strb r0, [r2]
+ adds r7, r1, 0
+ cmp r5, 0
+ bne _080A1AA4
+ adds r0, r4, r3
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ movs r1, 0x4
+ bl StartSpriteAnim
+ b _080A1AD0
+ .align 2, 0
+_080A1A98: .4byte 0x02018000
+_080A1A9C: .4byte gSprites
+_080A1AA0: .4byte gSpriteTemplate_83C1280
+_080A1AA4:
+ cmp r5, 0x9
+ bne _080A1AC0
+ adds r0, r4, 0
+ adds r0, 0x9
+ add r0, r8
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ movs r1, 0x5
+ bl StartSpriteAnim
+ b _080A1AD0
+_080A1AC0:
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ movs r1, 0x6
+ bl StartSpriteAnim
+_080A1AD0:
+ mov r0, r8
+ adds r2, r7, r0
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r6, 0
+ adds r1, 0x1C
+ adds r0, r1
+ ldr r1, _080A1B18 @ =sub_80A1BC0
+ str r1, [r0]
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ strh r4, [r0, 0x2E]
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ mov r1, r10
+ strh r1, [r0, 0x30]
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x9
+ bls _080A1A60
+_080A1B0A:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A1B18: .4byte sub_80A1BC0
+ thumb_func_end sub_80A1A30
+
+ thumb_func_start sub_80A1B1C
+sub_80A1B1C: @ 80A1B1C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r4, 0
+_080A1B24:
+ adds r0, r5, r4
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80A18E4
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x9
+ bls _080A1B24
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A1B1C
+
+ thumb_func_start sub_80A1B40
+sub_80A1B40: @ 80A1B40
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ lsls r1, r7, 1
+ adds r1, r7
+ lsls r1, 24
+ ldr r0, _080A1BB4 @ =0x0201a009
+ ldrb r2, [r0]
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ ldr r2, _080A1BB8 @ =gSprites
+ adds r0, r2
+ lsrs r7, r1, 24
+ movs r2, 0x80
+ lsls r2, 19
+ adds r1, r2
+ lsrs r1, 24
+ bl StartSpriteAnim
+ movs r4, 0
+ adds r0, r7, 0x6
+ lsls r0, 24
+ mov r8, r0
+_080A1B74:
+ ldr r6, _080A1BBC @ =0x0201a00a
+ adds r0, r4, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r5, _080A1BB8 @ =gSprites
+ adds r0, r5
+ mov r2, r8
+ lsrs r1, r2, 24
+ bl StartSpriteAnim
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x7
+ bls _080A1B74
+ ldrb r1, [r6, 0x8]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ adds r1, r7, 0x5
+ lsls r1, 24
+ lsrs r1, 24
+ bl StartSpriteAnim
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A1BB4: .4byte 0x0201a009
+_080A1BB8: .4byte gSprites
+_080A1BBC: .4byte 0x0201a00a
+ thumb_func_end sub_80A1B40
+
+ thumb_func_start sub_80A1BC0
+sub_80A1BC0: @ 80A1BC0
+ push {lr}
+ adds r2, r0, 0
+ adds r0, 0x2A
+ ldrb r0, [r0]
+ subs r0, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ bhi _080A1BF8
+ ldrh r0, [r2, 0x30]
+ adds r0, 0x1
+ movs r1, 0x1F
+ ands r0, r1
+ strh r0, [r2, 0x30]
+ cmp r0, 0x18
+ ble _080A1BEC
+ adds r3, r2, 0
+ adds r3, 0x3E
+ ldrb r0, [r3]
+ movs r1, 0x4
+ orrs r0, r1
+ b _080A1C06
+_080A1BEC:
+ adds r3, r2, 0
+ adds r3, 0x3E
+ ldrb r1, [r3]
+ movs r0, 0x5
+ negs r0, r0
+ b _080A1C04
+_080A1BF8:
+ movs r0, 0
+ strh r0, [r2, 0x30]
+ adds r3, r2, 0
+ adds r3, 0x3E
+ ldrb r1, [r3]
+ subs r0, 0x5
+_080A1C04:
+ ands r0, r1
+_080A1C06:
+ strb r0, [r3]
+ movs r1, 0x2E
+ ldrsh r0, [r2, r1]
+ cmp r0, 0x9
+ bne _080A1C1C
+ ldr r0, _080A1C18 @ =0x02018000
+ adds r0, 0x79
+ b _080A1C20
+ .align 2, 0
+_080A1C18: .4byte 0x02018000
+_080A1C1C:
+ ldr r0, _080A1C2C @ =0x02018000
+ adds r0, 0x7A
+_080A1C20:
+ ldrb r0, [r0]
+ lsls r0, 4
+ strh r0, [r2, 0x26]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A1C2C: .4byte 0x02018000
+ thumb_func_end sub_80A1BC0
+
+ thumb_func_start sub_80A1C30
+sub_80A1C30: @ 80A1C30
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 25
+ lsrs r3, r0, 24
+ adds r4, r3, 0
+ adds r0, r3, 0
+ adds r0, 0xA
+ cmp r3, r0
+ bge _080A1C82
+ ldr r5, _080A1C88 @ =gSprites
+ movs r7, 0x5
+ negs r7, r7
+ ldr r6, _080A1C8C @ =0x0201a009
+_080A1C50:
+ adds r2, r3, r6
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r1, 0
+ strh r1, [r0, 0x30]
+ ldrb r0, [r2]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ adds r1, 0x3E
+ ldrb r2, [r1]
+ adds r0, r7, 0
+ ands r0, r2
+ strb r0, [r1]
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ adds r0, r4, 0
+ adds r0, 0xA
+ cmp r3, r0
+ blt _080A1C50
+_080A1C82:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A1C88: .4byte gSprites
+_080A1C8C: .4byte 0x0201a009
+ thumb_func_end sub_80A1C30
+
+ thumb_func_start pokemon_ailments_get_primary
+pokemon_ailments_get_primary: @ 80A1C90
+ push {lr}
+ adds r1, r0, 0
+ movs r0, 0x88
+ ands r0, r1
+ cmp r0, 0
+ beq _080A1CA0
+ movs r0, 0x1
+ b _080A1CD2
+_080A1CA0:
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _080A1CAC
+ movs r0, 0x2
+ b _080A1CD2
+_080A1CAC:
+ movs r0, 0x7
+ ands r0, r1
+ cmp r0, 0
+ beq _080A1CB8
+ movs r0, 0x3
+ b _080A1CD2
+_080A1CB8:
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _080A1CC4
+ movs r0, 0x4
+ b _080A1CD2
+_080A1CC4:
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ bne _080A1CD0
+ movs r0, 0
+ b _080A1CD2
+_080A1CD0:
+ movs r0, 0x5
+_080A1CD2:
+ pop {r1}
+ bx r1
+ thumb_func_end pokemon_ailments_get_primary
+
+ thumb_func_start GetMonStatusAndPokerus
+GetMonStatusAndPokerus: @ 80A1CD8
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x39
+ bl GetMonData
+ cmp r0, 0
+ bne _080A1CEA
+ movs r0, 0x7
+ b _080A1D12
+_080A1CEA:
+ adds r0, r4, 0
+ movs r1, 0x37
+ bl GetMonData
+ bl pokemon_ailments_get_primary
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ bne _080A1D12
+ adds r0, r4, 0
+ movs r1, 0
+ bl CheckPartyPokerus
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A1D10
+ movs r0, 0
+ b _080A1D12
+_080A1D10:
+ movs r0, 0x6
+_080A1D12:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end GetMonStatusAndPokerus
+
+ thumb_func_start sub_80A1D18
+sub_80A1D18: @ 80A1D18
+ push {r4,r5,lr}
+ sub sp, 0x64
+ mov r0, sp
+ bl sub_809F678
+ mov r0, sp
+ bl GetMonStatusAndPokerus
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ beq _080A1D58
+ subs r0, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r4, _080A1D50 @ =0x0201a01d
+ ldrb r0, [r4]
+ cmp r0, 0xFF
+ bne _080A1D60
+ ldr r0, _080A1D54 @ =gSpriteTemplate_83C1304
+ movs r1, 0x40
+ movs r2, 0x98
+ movs r3, 0
+ bl CreateSprite
+ strb r0, [r4]
+ b _080A1D60
+ .align 2, 0
+_080A1D50: .4byte 0x0201a01d
+_080A1D54: .4byte gSpriteTemplate_83C1304
+_080A1D58:
+ movs r0, 0x1D
+ bl sub_80A18E4
+ b _080A1D74
+_080A1D60:
+ ldr r0, _080A1D7C @ =0x0201a01d
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080A1D80 @ =gSprites
+ adds r0, r1
+ adds r1, r5, 0
+ bl StartSpriteAnim
+_080A1D74:
+ add sp, 0x64
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A1D7C: .4byte 0x0201a01d
+_080A1D80: .4byte gSprites
+ thumb_func_end sub_80A1D18
+
+ thumb_func_start sub_80A1D84
+sub_80A1D84: @ 80A1D84
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r1, _080A1DC0 @ =0x00007533
+ ldr r2, _080A1DC4 @ =gSummaryScreenMonMarkingsPalette
+ adds r0, r1, 0
+ bl sub_80F7920
+ adds r4, r0, 0
+ ldr r6, _080A1DC8 @ =gUnknown_020384F4
+ str r4, [r6]
+ cmp r4, 0
+ beq _080A1DBA
+ adds r0, r5, 0
+ movs r1, 0x8
+ bl GetMonData
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ ldr r1, [r6]
+ movs r0, 0x3C
+ strh r0, [r1, 0x20]
+ movs r0, 0x1A
+ strh r0, [r1, 0x22]
+_080A1DBA:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A1DC0: .4byte 0x00007533
+_080A1DC4: .4byte gSummaryScreenMonMarkingsPalette
+_080A1DC8: .4byte gUnknown_020384F4
+ thumb_func_end sub_80A1D84
+
+ thumb_func_start sub_80A1DCC
+sub_80A1DCC: @ 80A1DCC
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080A1DE4 @ =gUnknown_020384F4
+ ldr r0, [r0]
+ bl DestroySprite
+ adds r0, r4, 0
+ bl sub_80A1D84
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A1DE4: .4byte gUnknown_020384F4
+ thumb_func_end sub_80A1DCC
+
+ thumb_func_start sub_80A1DE8
+sub_80A1DE8: @ 80A1DE8
+ push {r4,lr}
+ movs r1, 0x26
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ bl ball_number_to_ball_processing_index
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r4, 0
+ bl sub_80478DC
+ lsls r0, r4, 1
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, _080A1E48 @ =gSpriteTemplate_820AAB4
+ adds r0, r1
+ movs r1, 0x6
+ movs r2, 0x88
+ movs r3, 0
+ bl CreateSprite
+ ldr r2, _080A1E4C @ =0x02018000
+ strb r0, [r2, 0xD]
+ ldr r3, _080A1E50 @ =gSprites
+ ldrb r1, [r2, 0xD]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r3, 0
+ adds r1, 0x1C
+ adds r0, r1
+ ldr r1, _080A1E54 @ =SpriteCallbackDummy
+ str r1, [r0]
+ ldrb r1, [r2, 0xD]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrb r1, [r0, 0x5]
+ movs r2, 0xC
+ orrs r1, r2
+ strb r1, [r0, 0x5]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A1E48: .4byte gSpriteTemplate_820AAB4
+_080A1E4C: .4byte 0x02018000
+_080A1E50: .4byte gSprites
+_080A1E54: .4byte SpriteCallbackDummy
+ thumb_func_end sub_80A1DE8
+
+ thumb_func_start sub_80A1E58
+sub_80A1E58: @ 80A1E58
+ push {r4,lr}
+ adds r2, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ cmp r1, 0xFF
+ beq _080A1E92
+ ldr r3, _080A1E6C @ =gUnknown_083C15BC
+ ldrb r0, [r3]
+ adds r4, r2, 0x5
+ b _080A1E74
+ .align 2, 0
+_080A1E6C: .4byte gUnknown_083C15BC
+_080A1E70:
+ adds r3, 0x4
+ ldrb r0, [r3]
+_080A1E74:
+ cmp r0, 0xFF
+ beq _080A1E7C
+ cmp r0, r1
+ bne _080A1E70
+_080A1E7C:
+ movs r0, 0xFC
+ strb r0, [r2]
+ movs r0, 0x4
+ strb r0, [r2, 0x1]
+ ldrb r0, [r3, 0x1]
+ strb r0, [r2, 0x2]
+ ldrb r0, [r3, 0x2]
+ strb r0, [r2, 0x3]
+ ldrb r0, [r3, 0x3]
+ strb r0, [r2, 0x4]
+ adds r2, r4, 0
+_080A1E92:
+ adds r0, r2, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80A1E58
+
+ thumb_func_start sub_80A1E9C
+sub_80A1E9C: @ 80A1E9C
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r6, r0, 0
+ adds r5, r1, 0
+ lsls r4, r2, 24
+ lsrs r4, 24
+ mov r1, sp
+ adds r1, 0x1
+ mov r2, sp
+ adds r2, 0x2
+ mov r0, sp
+ bl sub_8072CD4
+ adds r0, r6, 0
+ adds r1, r4, 0
+ bl sub_80A1E58
+ adds r6, r0, 0
+ adds r1, r5, 0
+ bl StringCopy
+ adds r6, r0, 0
+ cmp r4, 0xFF
+ beq _080A1EEC
+ movs r0, 0xFC
+ strb r0, [r6]
+ movs r0, 0x4
+ strb r0, [r6, 0x1]
+ mov r0, sp
+ ldrb r0, [r0]
+ strb r0, [r6, 0x2]
+ mov r0, sp
+ ldrb r0, [r0, 0x1]
+ strb r0, [r6, 0x3]
+ mov r0, sp
+ ldrb r0, [r0, 0x2]
+ strb r0, [r6, 0x4]
+ movs r0, 0xFF
+ strb r0, [r6, 0x5]
+ adds r6, 0x5
+_080A1EEC:
+ adds r0, r6, 0
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80A1E9C
+
+ thumb_func_start sub_80A1EF8
+sub_80A1EF8: @ 80A1EF8
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ sub sp, 0x4
+ mov r9, r0
+ adds r4, r1, 0
+ adds r5, r2, 0
+ adds r6, r3, 0
+ ldr r3, [sp, 0x1C]
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r6, 16
+ lsrs r6, 16
+ ldr r0, _080A1F44 @ =gStringVar4
+ mov r8, r0
+ mov r1, r9
+ adds r2, r4, 0
+ str r3, [sp]
+ bl sub_80A1E9C
+ ldr r3, [sp]
+ lsls r3, 24
+ lsrs r3, 24
+ mov r0, r8
+ adds r1, r5, 0
+ adds r2, r6, 0
+ bl MenuPrint_PixelCoords
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A1F44: .4byte gStringVar4
+ thumb_func_end sub_80A1EF8
+
+ thumb_func_start sub_80A1F48
+sub_80A1F48: @ 80A1F48
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ sub sp, 0x4
+ mov r9, r0
+ adds r4, r1, 0
+ adds r5, r2, 0
+ adds r6, r3, 0
+ ldr r3, [sp, 0x1C]
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r6, 24
+ lsrs r6, 24
+ lsls r3, 16
+ lsrs r3, 16
+ ldr r0, _080A1F94 @ =gStringVar4
+ mov r8, r0
+ mov r1, r9
+ adds r2, r4, 0
+ str r3, [sp]
+ bl sub_80A1E9C
+ mov r0, r8
+ adds r1, r5, 0
+ adds r2, r6, 0
+ ldr r3, [sp]
+ bl sub_8072BD8
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A1F94: .4byte gStringVar4
+ thumb_func_end sub_80A1F48
+
+ thumb_func_start sub_80A1F98
+sub_80A1F98: @ 80A1F98
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ mov r10, r0
+ mov r8, r1
+ adds r4, r2, 0
+ adds r2, r3, 0
+ ldr r5, [sp, 0x24]
+ ldr r6, [sp, 0x28]
+ ldr r7, [sp, 0x2C]
+ mov r0, r8
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r2, 24
+ lsrs r2, 24
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r6, 16
+ lsrs r6, 16
+ ldr r0, _080A1FF4 @ =gStringVar1
+ mov r9, r0
+ mov r1, r10
+ adds r3, r4, 0
+ bl ConvertIntToDecimalStringN
+ str r7, [sp]
+ mov r0, r9
+ mov r1, r8
+ adds r2, r5, 0
+ adds r3, r6, 0
+ bl sub_80A1EF8
+ 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
+_080A1FF4: .4byte gStringVar1
+ thumb_func_end sub_80A1F98
+
+ thumb_func_start sub_80A1FF8
+sub_80A1FF8: @ 80A1FF8
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ mov r9, r0
+ adds r4, r1, 0
+ adds r5, r2, 0
+ adds r6, r3, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r6, 24
+ lsrs r6, 24
+ ldr r0, _080A2038 @ =gStringVar4
+ mov r8, r0
+ mov r1, r9
+ adds r2, r4, 0
+ bl sub_80A1E9C
+ mov r0, r8
+ adds r1, r5, 0
+ adds r2, r6, 0
+ bl MenuPrint
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A2038: .4byte gStringVar4
+ thumb_func_end sub_80A1FF8
+
+ thumb_func_start PokemonSummaryScreen_CopyPokemonLevel
+PokemonSummaryScreen_CopyPokemonLevel: @ 80A203C
+ push {r4,lr}
+ sub sp, 0xC
+ adds r4, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ movs r0, 0x34
+ strb r0, [r4]
+ adds r4, 0x1
+ cmp r1, 0
+ bne _080A2052
+ movs r1, 0x5
+_080A2052:
+ mov r0, sp
+ bl ConvertIntToDecimalString
+ adds r0, r4, 0
+ mov r1, sp
+ movs r2, 0xE
+ bl sub_80A1E9C
+ adds r4, r0, 0
+ ldr r1, _080A2074 @ =gOtherText_Comma
+ bl StringCopy
+ adds r4, r0, 0
+ add sp, 0xC
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080A2074: .4byte gOtherText_Comma
+ thumb_func_end PokemonSummaryScreen_CopyPokemonLevel
+
+ thumb_func_start sub_80A2078
+sub_80A2078: @ 80A2078
+ push {lr}
+ ldr r3, _080A209C @ =gUnknown_03005CF0
+ ldr r2, _080A20A0 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r2, [r1]
+ str r2, [r3]
+ ldr r2, _080A20A4 @ =sub_80A20A8
+ str r2, [r1]
+ lsls r0, 24
+ lsrs r0, 24
+ bl _call_via_r2
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A209C: .4byte gUnknown_03005CF0
+_080A20A0: .4byte gTasks
+_080A20A4: .4byte sub_80A20A8
+ thumb_func_end sub_80A2078
+
+ thumb_func_start sub_80A20A8
+sub_80A20A8: @ 80A20A8
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_8055870
+ cmp r0, 0x1
+ beq _080A20C6
+ ldr r1, _080A20CC @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080A20D0 @ =gUnknown_03005CF0
+ ldr r1, [r1]
+ str r1, [r0]
+_080A20C6:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A20CC: .4byte gTasks
+_080A20D0: .4byte gUnknown_03005CF0
+ thumb_func_end sub_80A20A8
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/pokenav.s b/asm/pokenav.s
index 968386bd1..966285ab3 100644
--- a/asm/pokenav.s
+++ b/asm/pokenav.s
@@ -9571,7 +9571,7 @@ _080F088C:
bne _080F08C6
_080F089A:
movs r0, 0x9
- bl sub_8053108
+ bl GetGameStat
adds r1, r0, 0
ldr r0, _080F08E0 @ =0x0001869f
cmp r1, r0
@@ -12455,7 +12455,7 @@ _080F1F4A:
movs r1, 0x3
orrs r0, r1
strb r0, [r4, 0x1]
- ldr r0, _080F1FB0 @ =gUnknown_083E4450
+ ldr r0, _080F1FB0 @ =gSpriteAffineAnimTable_83E4450
str r0, [r4, 0x10]
adds r0, r4, 0
bl InitSpriteAffineAnim
@@ -12489,7 +12489,7 @@ _080F1F4A:
b _080F1FE4
.align 2, 0
_080F1FAC: .4byte 0x00006dad
-_080F1FB0: .4byte gUnknown_083E4450
+_080F1FB0: .4byte gSpriteAffineAnimTable_83E4450
_080F1FB4: .4byte sub_80F2240
_080F1FB8: .4byte gUnknown_083DFEC4
_080F1FBC: .4byte 0x0000030f
@@ -17339,7 +17339,7 @@ _080F44FC:
lsls r1, r2, 2
adds r1, r2
lsls r1, 4
- ldr r2, _080F451C @ =gUnknown_020300A4
+ ldr r2, _080F451C @ =gPokemonStorage + 0x4
adds r1, r2
adds r0, r1
adds r1, r4, 0
@@ -17347,7 +17347,7 @@ _080F44FC:
bl GetBoxMonData
b _080F453C
.align 2, 0
-_080F451C: .4byte gUnknown_020300A4
+_080F451C: .4byte gPokemonStorage + 0x4
_080F4520:
lsls r1, r0, 2
adds r1, r0
@@ -17357,7 +17357,7 @@ _080F4520:
lsls r1, r2, 2
adds r1, r2
lsls r1, 4
- ldr r2, _080F4544 @ =gUnknown_020300A4
+ ldr r2, _080F4544 @ =gPokemonStorage + 0x4
adds r1, r2
adds r0, r1
adds r1, r4, 0
@@ -17367,7 +17367,7 @@ _080F453C:
pop {r1}
bx r1
.align 2, 0
-_080F4544: .4byte gUnknown_020300A4
+_080F4544: .4byte gPokemonStorage + 0x4
thumb_func_end sub_80F44B0
thumb_func_start sub_80F4548
@@ -17401,7 +17401,7 @@ _080F4574:
lsls r1, r4, 2
adds r1, r4
lsls r1, 4
- ldr r2, _080F459C @ =gUnknown_020300A4
+ ldr r2, _080F459C @ =gPokemonStorage + 0x4
adds r1, r2
adds r0, r1
movs r1, 0x8
@@ -17413,7 +17413,7 @@ _080F4592:
pop {r0}
bx r0
.align 2, 0
-_080F459C: .4byte gUnknown_020300A4
+_080F459C: .4byte gPokemonStorage + 0x4
thumb_func_end sub_80F4548
thumb_func_start sub_80F45A0
@@ -17472,7 +17472,7 @@ _080F4608:
adds r0, r5, r0
lsls r1, r2, 3
adds r1, r2
- ldr r2, _080F4638 @ =gUnknown_020383E4
+ ldr r2, _080F4638 @ =gPokemonStorage + 0x8344
adds r1, r2
movs r2, 0x40
movs r3, 0
@@ -17488,7 +17488,7 @@ _080F4624:
b _080F4676
.align 2, 0
_080F4634: .4byte 0x000088e9
-_080F4638: .4byte gUnknown_020383E4
+_080F4638: .4byte gPokemonStorage + 0x8344
_080F463C: .4byte gUnknown_083DFEC4
_080F4640: .4byte 0x00008937
_080F4644:
@@ -17783,7 +17783,7 @@ sub_80F4824: @ 80F4824
str r5, [sp, 0x4]
str r4, [sp, 0x8]
movs r2, 0x1
- bl sub_800D334
+ bl HandleLoadSpecialPokePic
adds r0, r5, 0
mov r1, r8
adds r2, r4, 0
@@ -18432,7 +18432,7 @@ _080F4DAA:
ldr r0, _080F4EA4 @ =0x000087d8
adds r0, r4
mov r9, r0
- ldr r1, _080F4EA8 @ =gUnknown_020300A4
+ ldr r1, _080F4EA8 @ =gPokemonStorage + 0x4
mov r8, r1
_080F4DCA:
ldrb r0, [r6]
@@ -18541,7 +18541,7 @@ _080F4E98: .4byte gUnknown_083DFEC4
_080F4E9C: .4byte 0x00008fe6
_080F4EA0: .4byte 0x00008fe7
_080F4EA4: .4byte 0x000087d8
-_080F4EA8: .4byte gUnknown_020300A4
+_080F4EA8: .4byte gPokemonStorage + 0x4
_080F4EAC: .4byte 0xffff00ff
_080F4EB0: .4byte 0xffe0ffff
_080F4EB4: .4byte 0xffffff00
@@ -21141,7 +21141,7 @@ _080F6278:
adds r5, r7, r1
ldr r0, _080F6310 @ =0x00008fe7
adds r4, r7, r0
- ldr r1, _080F6314 @ =gUnknown_020300A4
+ ldr r1, _080F6314 @ =gPokemonStorage + 0x4
mov r8, r1
ldr r0, _080F6318 @ =0x000041a0
add r0, r8
@@ -21205,7 +21205,7 @@ _080F62FE:
.align 2, 0
_080F630C: .4byte 0x00008fe6
_080F6310: .4byte 0x00008fe7
-_080F6314: .4byte gUnknown_020300A4
+_080F6314: .4byte gPokemonStorage + 0x4
_080F6318: .4byte 0x000041a0
_080F631C:
movs r0, 0
@@ -21336,7 +21336,7 @@ _080F63FC:
lsls r1, r2, 2
adds r1, r2
lsls r1, 4
- ldr r2, _080F6488 @ =gUnknown_020300A4
+ ldr r2, _080F6488 @ =gPokemonStorage + 0x4
adds r1, r2
adds r0, r1
movs r1, 0x51
@@ -21393,7 +21393,7 @@ _080F646E:
_080F647C: .4byte gUnknown_083DFEC4
_080F6480: .4byte 0x00008fe6
_080F6484: .4byte 0x00008fe7
-_080F6488: .4byte gUnknown_020300A4
+_080F6488: .4byte gPokemonStorage + 0x4
_080F648C: .4byte 0xffff00ff
_080F6490: .4byte 0xffe0ffff
_080F6494: .4byte 0xffffff00
@@ -21544,7 +21544,7 @@ _080F65B4:
lsls r1, r7, 2
adds r1, r7
lsls r1, 4
- ldr r2, _080F6620 @ =gUnknown_020300A4
+ ldr r2, _080F6620 @ =gPokemonStorage + 0x4
adds r1, r2
adds r0, r1
bl GetLevelFromBoxMonExp
@@ -21587,7 +21587,7 @@ _080F65FC:
beq _080F663C
b _080F6656
.align 2, 0
-_080F6620: .4byte gUnknown_020300A4
+_080F6620: .4byte gPokemonStorage + 0x4
_080F6624:
strb r1, [r5]
movs r0, 0x1
diff --git a/asm/record_mixing.s b/asm/record_mixing.s
index 1c981d167..ce0121a40 100644
--- a/asm/record_mixing.s
+++ b/asm/record_mixing.s
@@ -496,7 +496,7 @@ _080BA038:
.4byte _080BA074
.4byte _080BA08E
_080BA050:
- bl sub_8047A1C
+ bl SetSecretBase2Field_9_AndHideBG
bl sub_8125E2C
b _080BA086
_080BA05A:
@@ -504,7 +504,7 @@ _080BA05A:
lsls r0, 24
cmp r0, 0
beq _080BA09C
- bl sub_8047A34
+ bl ClearSecretBase2Field_9_2
ldrh r0, [r4, 0x8]
adds r0, 0x1
movs r1, 0
diff --git a/asm/region_map.s b/asm/region_map.s
index 61449ba53..c6953705c 100644
--- a/asm/region_map.s
+++ b/asm/region_map.s
@@ -3034,8 +3034,8 @@ _080FC026:
bx r1
thumb_func_end CopyMapName
- thumb_func_start sub_80FC02C
-sub_80FC02C: @ 80FC02C
+ thumb_func_start CopyLocationName
+CopyLocationName: @ 80FC02C
push {lr}
lsls r1, 16
lsrs r1, 16
@@ -3051,7 +3051,7 @@ _080FC042:
bx r1
.align 2, 0
_080FC048: .4byte gOtherText_Hideout
- thumb_func_end sub_80FC02C
+ thumb_func_end CopyLocationName
thumb_func_start sub_80FC04C
sub_80FC04C: @ 80FC04C
diff --git a/asm/reset_rtc_screen.s b/asm/reset_rtc_screen.s
index 082ebf465..1b58b417b 100644
--- a/asm/reset_rtc_screen.s
+++ b/asm/reset_rtc_screen.s
@@ -655,7 +655,7 @@ Task_ResetRtc_1: @ 806A958
lsls r0, r4, 1
adds r0, r4
lsls r0, 2
- ldr r1, _0806A9A0 @ =gUnknown_08376414
+ ldr r1, _0806A9A0 @ =gUnknown_08376420 - 0xC
adds r2, r0, r1
ldr r1, _0806A9A4 @ =gMain
ldrh r3, [r1, 0x2E]
@@ -675,7 +675,7 @@ Task_ResetRtc_1: @ 806A958
b _0806A9CC
.align 2, 0
_0806A99C: .4byte gTasks + 0x8
-_0806A9A0: .4byte gUnknown_08376414
+_0806A9A0: .4byte gUnknown_08376420 - 0xC
_0806A9A4: .4byte gMain
_0806A9A8: .4byte Task_ResetRtc_2
_0806A9AC:
@@ -1225,7 +1225,7 @@ _0806AE08:
ldr r0, _0806AE54 @ =0x00004040
ldrh r1, [r4]
bl VarSet
- bl sub_80691A0
+ bl DisableResetRTC
ldr r0, _0806AE58 @ =gSystemText_ClockResetDataSave
bl ResetRtcScreen_ShowMessage
movs r0, 0x4
diff --git a/asm/rom3.s b/asm/rom3.s
index 823ac4e0c..94862459b 100644
--- a/asm/rom3.s
+++ b/asm/rom3.s
@@ -9,7 +9,7 @@
thumb_func_start sub_800B858
sub_800B858: @ 800B858
push {lr}
- ldr r0, _0800B87C @ =gUnknown_020239F8
+ ldr r0, _0800B87C @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x2
ands r0, r1
@@ -24,7 +24,7 @@ _0800B876:
pop {r0}
bx r0
.align 2, 0
-_0800B87C: .4byte gUnknown_020239F8
+_0800B87C: .4byte gBattleTypeFlags
_0800B880: .4byte sub_8083C50
thumb_func_end sub_800B858
@@ -69,8 +69,8 @@ _0800B8A0:
str r5, [r0]
bl sub_8075624
bl sub_8040710
- bl sub_81070D4
- ldr r0, _0800B940 @ =gUnknown_020239F8
+ bl BattleAI_HandleItemUseBeforeAISetup
+ ldr r0, _0800B940 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x10
ands r0, r1
@@ -111,7 +111,7 @@ _0800B930: .4byte gUnknown_02024E64
_0800B934: .4byte nullsub_91
_0800B938: .4byte gUnknown_02024A72
_0800B93C: .4byte gUnknown_02024A64
-_0800B940: .4byte gUnknown_020239F8
+_0800B940: .4byte gBattleTypeFlags
_0800B944: .4byte gEnemyParty
_0800B948: .4byte gUnknown_020239FC
_0800B94C: .4byte gUnknown_02024C78
@@ -120,7 +120,7 @@ _0800B94C: .4byte gUnknown_02024C78
thumb_func_start sub_800B950
sub_800B950: @ 800B950
push {r4,r5,lr}
- ldr r0, _0800B964 @ =gUnknown_020239F8
+ ldr r0, _0800B964 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x2
ands r0, r1
@@ -129,12 +129,12 @@ sub_800B950: @ 800B950
bl sub_800BA78
b _0800B96C
.align 2, 0
-_0800B964: .4byte gUnknown_020239F8
+_0800B964: .4byte gBattleTypeFlags
_0800B968:
bl sub_800B9A8
_0800B96C:
bl sub_800BD54
- ldr r0, _0800B9A0 @ =gUnknown_020239F8
+ ldr r0, _0800B9A0 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x40
ands r0, r1
@@ -160,14 +160,14 @@ _0800B99A:
pop {r0}
bx r0
.align 2, 0
-_0800B9A0: .4byte gUnknown_020239F8
+_0800B9A0: .4byte gBattleTypeFlags
_0800B9A4: .4byte gUnknown_02024A68
thumb_func_end sub_800B950
thumb_func_start sub_800B9A8
sub_800B9A8: @ 800B9A8
push {r4,lr}
- ldr r0, _0800B9CC @ =gUnknown_020239F8
+ ldr r0, _0800B9CC @ =gBattleTypeFlags
ldrh r2, [r0]
movs r0, 0x1
ands r0, r2
@@ -184,7 +184,7 @@ sub_800B9A8: @ 800B9A8
ldr r0, _0800B9DC @ =sub_812B468
b _0800B9FC
.align 2, 0
-_0800B9CC: .4byte gUnknown_020239F8
+_0800B9CC: .4byte gBattleTypeFlags
_0800B9D0: .4byte gUnknown_030042D4
_0800B9D4: .4byte sub_8010800
_0800B9D8: .4byte gUnknown_03004330
@@ -267,7 +267,7 @@ sub_800BA78: @ 800BA78
mov r6, r9
mov r5, r8
push {r5-r7}
- ldr r6, _0800BAB8 @ =gUnknown_020239F8
+ ldr r6, _0800BAB8 @ =gBattleTypeFlags
ldrh r1, [r6]
movs r5, 0x1
movs r4, 0x1
@@ -295,7 +295,7 @@ sub_800BA78: @ 800BA78
movs r0, 0x2
b _0800BD3E
.align 2, 0
-_0800BAB8: .4byte gUnknown_020239F8
+_0800BAB8: .4byte gBattleTypeFlags
_0800BABC: .4byte gUnknown_030042D4
_0800BAC0: .4byte sub_8010800
_0800BAC4: .4byte gUnknown_03004330
@@ -632,7 +632,7 @@ sub_800BD54: @ 800BD54
mov r6, r9
mov r5, r8
push {r5-r7}
- ldr r0, _0800BD74 @ =gUnknown_020239F8
+ ldr r0, _0800BD74 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x40
ands r0, r1
@@ -644,7 +644,7 @@ _0800BD6C:
mov r8, r0
b _0800BE7E
.align 2, 0
-_0800BD74: .4byte gUnknown_020239F8
+_0800BD74: .4byte gBattleTypeFlags
_0800BD78:
movs r5, 0
movs r0, 0x1
@@ -797,7 +797,7 @@ dp01_prepare_buffer: @ 800BE9C
adds r5, r3, 0
lsls r2, 16
lsrs r2, 16
- ldr r0, _0800BEC4 @ =gUnknown_020239F8
+ ldr r0, _0800BEC4 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x2
ands r0, r1
@@ -809,7 +809,7 @@ dp01_prepare_buffer: @ 800BE9C
bl dp01_prepare_buffer_wireless_probably
b _0800BF1A
.align 2, 0
-_0800BEC4: .4byte gUnknown_020239F8
+_0800BEC4: .4byte gBattleTypeFlags
_0800BEC8:
cmp r5, 0
beq _0800BED2
@@ -1393,7 +1393,7 @@ sub_800C35C: @ 800C35C
ldrb r0, [r0]
cmp r0, 0
beq _0800C458
- ldr r0, _0800C390 @ =gUnknown_020239F8
+ ldr r0, _0800C390 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x20
ands r0, r1
@@ -1410,7 +1410,7 @@ sub_800C35C: @ 800C35C
b _0800C44C
.align 2, 0
_0800C38C: .4byte gReceivedRemoteLinkPlayers
-_0800C390: .4byte gUnknown_020239F8
+_0800C390: .4byte gBattleTypeFlags
_0800C394: .4byte gLinkPlayers
_0800C398: .4byte 0x00002211
_0800C39C: .4byte gBlockRecvBuffer
@@ -1620,7 +1620,7 @@ _0800C50E:
bl memcpy
adds r0, r4, 0
bl sub_80155A4
- ldr r0, _0800C598 @ =gUnknown_020239F8
+ ldr r0, _0800C598 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x4
ands r0, r1
@@ -1664,7 +1664,7 @@ _0800C588: .4byte gUnknown_02024A64
_0800C58C: .4byte gBitTable
_0800C590: .4byte gUnknown_02023A60
_0800C594: .4byte 0x00015008
-_0800C598: .4byte gUnknown_020239F8
+_0800C598: .4byte gBattleTypeFlags
_0800C59C: .4byte gUnknown_02024C07
_0800C5A0: .4byte 0x00015002
_0800C5A4: .4byte gUnknown_02024C08
@@ -2133,7 +2133,7 @@ dp01_build_cmdbuf_x0F_aa_b_cc_dddd_e_mlc_weather_00_x1Cbytes: @ 800C870
lsls r0, 24
cmp r0, 0
bne _0800C910
- ldr r0, _0800C90C @ =word_2024DB8
+ ldr r0, _0800C90C @ =gBattleWeather
ldrh r0, [r0]
strb r0, [r7, 0xC]
ands r6, r0
@@ -2144,7 +2144,7 @@ dp01_build_cmdbuf_x0F_aa_b_cc_dddd_e_mlc_weather_00_x1Cbytes: @ 800C870
.align 2, 0
_0800C904: .4byte gUnknown_03004040
_0800C908: .4byte gUnknown_02024C0E
-_0800C90C: .4byte word_2024DB8
+_0800C90C: .4byte gBattleWeather
_0800C910:
ldr r0, _0800C944 @ =gUnknown_03004040
movs r1, 0
diff --git a/asm/rom5.s b/asm/rom5.s
index 4b0947a5d..3e0ebe208 100644
--- a/asm/rom5.s
+++ b/asm/rom5.s
@@ -279,7 +279,7 @@ _0807AF88:
lsrs r1, 16
adds r0, r4, 0
bl sub_8032984
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _0807AFEC
@@ -420,7 +420,7 @@ _0807B0E8:
bl sub_8032350
b _0807B168
_0807B0F2:
- ldr r2, _0807B108 @ =gUnknown_020239F8
+ ldr r2, _0807B108 @ =gBattleTypeFlags
ldrh r1, [r2]
movs r0, 0x80
ands r0, r1
@@ -432,7 +432,7 @@ _0807B0F2:
ldrb r0, [r0, 0x8]
b _0807B122
.align 2, 0
-_0807B108: .4byte gUnknown_020239F8
+_0807B108: .4byte gBattleTypeFlags
_0807B10C: .4byte gSaveBlock2
_0807B110:
ldrh r1, [r2]
@@ -650,7 +650,7 @@ _0807B2CC: .4byte gSprites
_0807B2D0: .4byte SpriteCallbackDummy
_0807B2D4: .4byte gUnknown_02024E84
_0807B2D8:
- ldr r2, _0807B328 @ =gUnknown_020239F8
+ ldr r2, _0807B328 @ =gBattleTypeFlags
ldrh r1, [r2]
movs r0, 0x80
ands r0, r1
@@ -688,7 +688,7 @@ _0807B2D8:
adds r0, r6, 0
b _0807B37C
.align 2, 0
-_0807B328: .4byte gUnknown_020239F8
+_0807B328: .4byte gBattleTypeFlags
_0807B32C: .4byte gSaveBlock2
_0807B330: .4byte gUnknown_02024E8C
_0807B334: .4byte gTrainerBackPicCoords
@@ -918,7 +918,7 @@ sub_807B508: @ 807B508
bcc _0807B518
b _0807B68A
_0807B518:
- ldr r2, _0807B534 @ =gUnknown_020239F8
+ ldr r2, _0807B534 @ =gBattleTypeFlags
ldrh r1, [r2]
movs r0, 0x80
ands r0, r1
@@ -930,7 +930,7 @@ _0807B518:
b _0807B550
.align 2, 0
_0807B530: .4byte gUnknown_02024A68
-_0807B534: .4byte gUnknown_020239F8
+_0807B534: .4byte gBattleTypeFlags
_0807B538:
ldrh r1, [r2]
movs r0, 0x80
@@ -976,7 +976,7 @@ _0807B58C: .4byte gUnknown_03004340
_0807B590: .4byte gUnknown_02024A6A
_0807B594: .4byte gEnemyParty
_0807B598:
- ldr r0, _0807B5C0 @ =gUnknown_020239F8
+ ldr r0, _0807B5C0 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x80
ands r0, r1
@@ -995,7 +995,7 @@ _0807B598:
bl sub_8045A5C
b _0807B5E4
.align 2, 0
-_0807B5C0: .4byte gUnknown_020239F8
+_0807B5C0: .4byte gBattleTypeFlags
_0807B5C4: .4byte gUnknown_02024A6A
_0807B5C8: .4byte gPlayerParty
_0807B5CC:
@@ -1065,7 +1065,7 @@ _0807B654: .4byte gUnknown_03004340
_0807B658: .4byte gUnknown_02024A6A
_0807B65C: .4byte gEnemyParty
_0807B660:
- ldr r0, _0807B690 @ =gUnknown_020239F8
+ ldr r0, _0807B690 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x80
ands r0, r1
@@ -1089,960 +1089,9 @@ _0807B68A:
pop {r0}
bx r0
.align 2, 0
-_0807B690: .4byte gUnknown_020239F8
+_0807B690: .4byte gBattleTypeFlags
_0807B694: .4byte gUnknown_02024A6A
_0807B698: .4byte gPlayerParty
thumb_func_end sub_807B508
- thumb_func_start unref_sub_807B69C
-unref_sub_807B69C: @ 807B69C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- ldr r0, _0807B740 @ =gUnknown_02024BE0
- adds r0, r4, r0
- ldrb r6, [r0]
- ldr r0, _0807B744 @ =sub_807B7E0
- movs r1, 0xA
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r0, _0807B748 @ =gBattleAnimPicTable + (136 * 8)
- bl LoadCompressedObjectPic
- ldr r0, _0807B74C @ =gBattleAnimPaletteTable + (136 * 8)
- bl LoadCompressedObjectPalette
- ldr r1, _0807B750 @ =gTasks
- mov r2, r8
- lsls r0, r2, 2
- add r0, r8
- lsls r0, 3
- adds r1, r0, r1
- strh r4, [r1, 0x8]
- cmp r5, 0
- beq _0807B75C
- movs r0, 0x1F
- strh r0, [r1, 0xA]
- movs r5, 0
- lsls r0, r6, 4
- ldr r7, _0807B754 @ =gSprites
- adds r0, r6
- lsls r0, 2
- adds r6, r0, r7
-_0807B6F0:
- movs r0, 0x20
- ldrsh r1, [r6, r0]
- ldrh r2, [r6, 0x22]
- adds r2, 0x20
- lsls r2, 16
- asrs r2, 16
- ldr r0, _0807B758 @ =gSpriteTemplate_83931F8
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r3, r0, r7
- lsls r0, r5, 1
- adds r0, r5
- lsls r1, r0, 4
- adds r0, r1
- strh r0, [r3, 0x2E]
- movs r0, 0xFF
- lsls r0, 8
- strh r0, [r3, 0x30]
- adds r2, r3, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- cmp r5, 0x4
- bls _0807B734
- movs r0, 0x15
- strh r0, [r3, 0x3A]
-_0807B734:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x9
- bls _0807B6F0
- b _0807B7BC
- .align 2, 0
-_0807B740: .4byte gUnknown_02024BE0
-_0807B744: .4byte sub_807B7E0
-_0807B748: .4byte gBattleAnimPicTable + (136 * 8)
-_0807B74C: .4byte gBattleAnimPaletteTable + (136 * 8)
-_0807B750: .4byte gTasks
-_0807B754: .4byte gSprites
-_0807B758: .4byte gSpriteTemplate_83931F8
-_0807B75C:
- movs r0, 0xF8
- lsls r0, 7
- strh r0, [r1, 0xA]
- movs r5, 0
- lsls r0, r6, 4
- ldr r7, _0807B7D8 @ =gSprites
- adds r0, r6
- lsls r0, 2
- adds r6, r0, r7
-_0807B76E:
- movs r2, 0x20
- ldrsh r1, [r6, r2]
- ldrh r2, [r6, 0x22]
- subs r2, 0x20
- lsls r2, 16
- asrs r2, 16
- ldr r0, _0807B7DC @ =gSpriteTemplate_83931F8
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r3, r0, r7
- lsls r0, r5, 1
- adds r0, r5
- lsls r1, r0, 4
- adds r0, r1
- strh r0, [r3, 0x2E]
- movs r0, 0x80
- lsls r0, 1
- strh r0, [r3, 0x30]
- adds r2, r3, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- cmp r5, 0x4
- bls _0807B7B2
- movs r0, 0x15
- strh r0, [r3, 0x3A]
-_0807B7B2:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x9
- bls _0807B76E
-_0807B7BC:
- ldr r0, _0807B7D8 @ =gSprites
- lsls r1, r4, 4
- adds r1, r4
- lsls r1, 2
- adds r1, r0
- movs r0, 0x1
- strh r0, [r1, 0x3C]
- mov r0, r8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0807B7D8: .4byte gSprites
-_0807B7DC: .4byte gSpriteTemplate_83931F8
- thumb_func_end unref_sub_807B69C
-
- thumb_func_start sub_807B7E0
-sub_807B7E0: @ 807B7E0
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _0807B838 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- ldrh r1, [r4, 0xC]
- movs r2, 0xC
- ldrsh r0, [r4, r2]
- cmp r0, 0x2
- bne _0807B866
- movs r0, 0
- strh r0, [r4, 0xC]
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- lsls r0, 20
- movs r2, 0x80
- lsls r2, 17
- adds r0, r2
- lsrs r0, 16
- ldrb r2, [r4, 0x10]
- ldrh r3, [r4, 0xA]
- movs r1, 0x10
- bl BlendPalette
- ldrh r2, [r4, 0x12]
- movs r1, 0x12
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0807B83C
- ldrh r0, [r4, 0x10]
- adds r0, 0x1
- strh r0, [r4, 0x10]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x8
- ble _0807B86A
- movs r0, 0x1
- eors r0, r2
- strh r0, [r4, 0x12]
- b _0807B86A
- .align 2, 0
-_0807B838: .4byte gTasks
-_0807B83C:
- ldrh r1, [r4, 0x10]
- subs r0, r1, 0x1
- strh r0, [r4, 0x10]
- lsls r0, 16
- cmp r0, 0
- bge _0807B86A
- strh r1, [r4, 0x10]
- movs r0, 0x1
- eors r0, r2
- strh r0, [r4, 0x12]
- ldrh r0, [r4, 0xE]
- adds r0, 0x1
- strh r0, [r4, 0xE]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- bne _0807B86A
- adds r0, r5, 0
- bl DestroyTask
- b _0807B86A
-_0807B866:
- adds r0, r1, 0x1
- strh r0, [r4, 0xC]
-_0807B86A:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_807B7E0
-
- thumb_func_start sub_807B870
-sub_807B870: @ 807B870
- push {lr}
- adds r2, r0, 0
- ldrh r1, [r2, 0x3A]
- movs r3, 0x3A
- ldrsh r0, [r2, r3]
- cmp r0, 0
- bne _0807B89C
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x5
- negs r1, r1
- ands r1, r0
- strb r1, [r3]
- ldr r1, _0807B898 @ =sub_807B8A4
- str r1, [r2, 0x1C]
- adds r0, r2, 0
- bl _call_via_r1
- b _0807B8A0
- .align 2, 0
-_0807B898: .4byte sub_807B8A4
-_0807B89C:
- subs r0, r1, 0x1
- strh r0, [r2, 0x3A]
-_0807B8A0:
- pop {r0}
- bx r0
- thumb_func_end sub_807B870
-
- thumb_func_start sub_807B8A4
-sub_807B8A4: @ 807B8A4
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- movs r1, 0x20
- bl Cos
- strh r0, [r4, 0x24]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- movs r1, 0x8
- bl Sin
- strh r0, [r4, 0x26]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x7F
- bgt _0807B8D0
- adds r1, r4, 0
- adds r1, 0x43
- movs r0, 0x1D
- b _0807B8D6
-_0807B8D0:
- adds r1, r4, 0
- adds r1, 0x43
- movs r0, 0x1F
-_0807B8D6:
- strb r0, [r1]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x8
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x30]
- ldrh r1, [r4, 0x38]
- adds r0, r1
- strh r0, [r4, 0x38]
- lsls r0, 16
- asrs r0, 24
- ldrh r1, [r4, 0x26]
- adds r0, r1
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x34
- bne _0807B918
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _0807B912
- adds r0, r4, 0
- bl DestroySpriteAndFreeResources
- b _0807B918
-_0807B912:
- adds r0, r4, 0
- bl DestroySprite
-_0807B918:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_807B8A4
-
- thumb_func_start sub_807B920
-sub_807B920: @ 807B920
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r4, _0807B9B0 @ =gUnknown_0202F7C9
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 8
- ldr r1, _0807B9B4 @ =0xffe00000
- adds r0, r1
- lsrs r5, r0, 16
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 8
- ldr r2, _0807B9B8 @ =0xffdc0000
- adds r0, r2
- lsrs r4, r0, 16
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _0807B95E
- lsls r0, r5, 16
- ldr r1, _0807B9BC @ =0xfffa0000
- adds r0, r1
- lsrs r5, r0, 16
-_0807B95E:
- ldr r1, _0807B9C0 @ =REG_BLDCNT
- movs r2, 0xFD
- lsls r2, 6
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- movs r2, 0x80
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _0807B9C4 @ =gSpriteTemplate_83931E0
- lsls r1, r5, 16
- asrs r1, 16
- lsls r2, r4, 16
- asrs r2, 16
- movs r3, 0x4
- bl CreateSprite
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- ldr r1, _0807B9C8 @ =gSprites
- adds r0, r1
- ldr r1, _0807B9CC @ =gUnknown_083931D8
- bl SetSubspriteTables
- ldr r1, _0807B9D0 @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- strh r4, [r0, 0x26]
- ldr r1, _0807B9D4 @ =sub_807B9D8
- str r1, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0807B9B0: .4byte gUnknown_0202F7C9
-_0807B9B4: .4byte 0xffe00000
-_0807B9B8: .4byte 0xffdc0000
-_0807B9BC: .4byte 0xfffa0000
-_0807B9C0: .4byte REG_BLDCNT
-_0807B9C4: .4byte gSpriteTemplate_83931E0
-_0807B9C8: .4byte gSprites
-_0807B9CC: .4byte gUnknown_083931D8
-_0807B9D0: .4byte gTasks
-_0807B9D4: .4byte sub_807B9D8
- thumb_func_end sub_807B920
-
- thumb_func_start sub_807B9D8
-sub_807B9D8: @ 807B9D8
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0807BA04 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldrh r0, [r1, 0xA]
- adds r0, 0x1
- adds r2, r0, 0
- strh r0, [r1, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xA
- bne _0807BA0C
- ldr r0, _0807BA08 @ =sub_807BA24
- str r0, [r1]
- movs r0, 0
- strh r0, [r1, 0xA]
- b _0807BA1C
- .align 2, 0
-_0807BA04: .4byte gTasks
-_0807BA08: .4byte sub_807BA24
-_0807BA0C:
- lsls r0, r2, 24
- lsrs r0, 24
- ldr r2, _0807BA20 @ =REG_BLDALPHA
- movs r1, 0x10
- subs r1, r0
- lsls r1, 8
- orrs r1, r0
- strh r1, [r2]
-_0807BA1C:
- pop {r0}
- bx r0
- .align 2, 0
-_0807BA20: .4byte REG_BLDALPHA
- thumb_func_end sub_807B9D8
-
- thumb_func_start sub_807BA24
-sub_807BA24: @ 807BA24
- push {r4-r6,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _0807BABC @ =0x0000271a
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _0807BAC0 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r5, r0, r1
- ldrh r0, [r5, 0xA]
- adds r1, r0, 0x1
- strh r1, [r5, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xD
- ble _0807BAB4
- ldrh r0, [r5, 0xC]
- adds r0, 0x1
- movs r6, 0
- strh r0, [r5, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- bne _0807BAB4
- ldr r3, _0807BAC4 @ =gPlttBufferFaded
- lsls r2, 4
- mov r12, r2
- ldr r1, _0807BAC8 @ =0x0000010d
- add r1, r12
- lsls r1, 1
- adds r1, r3
- ldrh r4, [r1]
- movs r2, 0x87
- lsls r2, 1
- add r2, r12
- lsls r2, 1
- adds r2, r3
- ldrh r0, [r2]
- strh r0, [r1]
- ldr r0, _0807BACC @ =0x0000010f
- add r0, r12
- lsls r0, 1
- adds r0, r3
- ldrh r1, [r0]
- strh r1, [r2]
- strh r4, [r0]
- strh r6, [r5, 0xC]
- ldrh r0, [r5, 0xE]
- adds r0, 0x1
- strh r0, [r5, 0xE]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- bne _0807BAB4
- strh r6, [r5, 0xE]
- strh r6, [r5, 0xA]
- ldrh r0, [r5, 0x10]
- adds r0, 0x1
- strh r0, [r5, 0x10]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- bne _0807BAB4
- movs r0, 0x9
- strh r0, [r5, 0xA]
- ldr r0, _0807BAD0 @ =sub_807BAD4
- str r0, [r5]
-_0807BAB4:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0807BABC: .4byte 0x0000271a
-_0807BAC0: .4byte gTasks
-_0807BAC4: .4byte gPlttBufferFaded
-_0807BAC8: .4byte 0x0000010d
-_0807BACC: .4byte 0x0000010f
-_0807BAD0: .4byte sub_807BAD4
- thumb_func_end sub_807BA24
-
- thumb_func_start sub_807BAD4
-sub_807BAD4: @ 807BAD4
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0807BB04 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r2, r1, r2
- ldrh r0, [r2, 0xA]
- subs r0, 0x1
- adds r3, r0, 0
- strh r0, [r2, 0xA]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- bne _0807BB0C
- ldr r0, _0807BB08 @ =sub_807BB24
- str r0, [r2]
- movs r0, 0
- strh r0, [r2, 0xA]
- b _0807BB1C
- .align 2, 0
-_0807BB04: .4byte gTasks
-_0807BB08: .4byte sub_807BB24
-_0807BB0C:
- lsls r0, r3, 24
- lsrs r0, 24
- ldr r2, _0807BB20 @ =REG_BLDALPHA
- movs r1, 0x10
- subs r1, r0
- lsls r1, 8
- orrs r1, r0
- strh r1, [r2]
-_0807BB1C:
- pop {r0}
- bx r0
- .align 2, 0
-_0807BB20: .4byte REG_BLDALPHA
- thumb_func_end sub_807BAD4
-
- thumb_func_start sub_807BB24
-sub_807BB24: @ 807BB24
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r2, r0, 0
- ldr r1, _0807BB64 @ =gTasks
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r1, r0, r1
- ldrh r0, [r1, 0xA]
- adds r0, 0x1
- movs r3, 0
- strh r0, [r1, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x25
- bne _0807BB6C
- ldrh r0, [r1, 0x26]
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- ldr r0, _0807BB68 @ =gSprites
- adds r4, r0
- adds r0, r4, 0
- bl FreeSpriteOamMatrix
- adds r0, r4, 0
- bl DestroySprite
- b _0807BB7E
- .align 2, 0
-_0807BB64: .4byte gTasks
-_0807BB68: .4byte gSprites
-_0807BB6C:
- cmp r0, 0x27
- bne _0807BB7E
- ldr r0, _0807BB84 @ =REG_BLDCNT
- strh r3, [r0]
- adds r0, 0x2
- strh r3, [r0]
- adds r0, r2, 0
- bl move_anim_task_del
-_0807BB7E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0807BB84: .4byte REG_BLDCNT
- thumb_func_end sub_807BB24
-
- thumb_func_start sub_807BB88
-sub_807BB88: @ 807BB88
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- movs r3, 0
- ldr r0, _0807BBA8 @ =0x02017840
- ldrh r0, [r0]
- subs r0, 0xF
- cmp r0, 0x2B
- bls _0807BB9C
- b _0807BD20
-_0807BB9C:
- lsls r0, 2
- ldr r1, _0807BBAC @ =_0807BBB0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0807BBA8: .4byte 0x02017840
-_0807BBAC: .4byte _0807BBB0
- .align 2, 0
-_0807BBB0:
- .4byte _0807BC60
- .4byte _0807BC66
- .4byte _0807BC6C
- .4byte _0807BC72
- .4byte _0807BC78
- .4byte _0807BC7E
- .4byte _0807BC84
- .4byte _0807BC8A
- .4byte _0807BC90
- .4byte _0807BC96
- .4byte _0807BC9C
- .4byte _0807BCA2
- .4byte _0807BCA8
- .4byte _0807BCAE
- .4byte _0807BD20
- .4byte _0807BD20
- .4byte _0807BD20
- .4byte _0807BD20
- .4byte _0807BD20
- .4byte _0807BD20
- .4byte _0807BD20
- .4byte _0807BD20
- .4byte _0807BD20
- .4byte _0807BD20
- .4byte _0807BCB4
- .4byte _0807BCB8
- .4byte _0807BCBC
- .4byte _0807BCC0
- .4byte _0807BCC4
- .4byte _0807BCC8
- .4byte _0807BCCC
- .4byte _0807BCD0
- .4byte _0807BCD8
- .4byte _0807BCE0
- .4byte _0807BCE8
- .4byte _0807BCF0
- .4byte _0807BCF8
- .4byte _0807BD00
- .4byte _0807BD20
- .4byte _0807BD20
- .4byte _0807BD08
- .4byte _0807BD0C
- .4byte _0807BD10
- .4byte _0807BD18
-_0807BC60:
- movs r5, 0
- movs r2, 0
- b _0807BD28
-_0807BC66:
- movs r5, 0
- movs r2, 0x1
- b _0807BD28
-_0807BC6C:
- movs r5, 0
- movs r2, 0x3
- b _0807BD28
-_0807BC72:
- movs r5, 0
- movs r2, 0x5
- b _0807BD28
-_0807BC78:
- movs r5, 0
- movs r2, 0x6
- b _0807BD28
-_0807BC7E:
- movs r5, 0
- movs r2, 0x2
- b _0807BD28
-_0807BC84:
- movs r5, 0
- movs r2, 0x4
- b _0807BD28
-_0807BC8A:
- movs r5, 0x1
- movs r2, 0
- b _0807BD28
-_0807BC90:
- movs r5, 0x1
- movs r2, 0x1
- b _0807BD28
-_0807BC96:
- movs r5, 0x1
- movs r2, 0x3
- b _0807BD28
-_0807BC9C:
- movs r5, 0x1
- movs r2, 0x5
- b _0807BD28
-_0807BCA2:
- movs r5, 0x1
- movs r2, 0x6
- b _0807BD28
-_0807BCA8:
- movs r5, 0x1
- movs r2, 0x2
- b _0807BD28
-_0807BCAE:
- movs r5, 0x1
- movs r2, 0x4
- b _0807BD28
-_0807BCB4:
- movs r5, 0
- b _0807BCD2
-_0807BCB8:
- movs r5, 0
- b _0807BCDA
-_0807BCBC:
- movs r5, 0
- b _0807BCE2
-_0807BCC0:
- movs r5, 0
- b _0807BCEA
-_0807BCC4:
- movs r5, 0
- b _0807BCF2
-_0807BCC8:
- movs r5, 0
- b _0807BCFA
-_0807BCCC:
- movs r5, 0
- b _0807BD02
-_0807BCD0:
- movs r5, 0x1
-_0807BCD2:
- movs r2, 0
- movs r3, 0x1
- b _0807BD28
-_0807BCD8:
- movs r5, 0x1
-_0807BCDA:
- movs r2, 0x1
- movs r3, 0x1
- b _0807BD28
-_0807BCE0:
- movs r5, 0x1
-_0807BCE2:
- movs r2, 0x3
- movs r3, 0x1
- b _0807BD28
-_0807BCE8:
- movs r5, 0x1
-_0807BCEA:
- movs r2, 0x5
- movs r3, 0x1
- b _0807BD28
-_0807BCF0:
- movs r5, 0x1
-_0807BCF2:
- movs r2, 0x6
- movs r3, 0x1
- b _0807BD28
-_0807BCF8:
- movs r5, 0x1
-_0807BCFA:
- movs r2, 0x2
- movs r3, 0x1
- b _0807BD28
-_0807BD00:
- movs r5, 0x1
-_0807BD02:
- movs r2, 0x4
- movs r3, 0x1
- b _0807BD28
-_0807BD08:
- movs r5, 0
- b _0807BD12
-_0807BD0C:
- movs r5, 0
- b _0807BD1A
-_0807BD10:
- movs r5, 0x1
-_0807BD12:
- movs r2, 0xFF
- movs r3, 0
- b _0807BD28
-_0807BD18:
- movs r5, 0x1
-_0807BD1A:
- movs r2, 0xFF
- movs r3, 0x1
- b _0807BD28
-_0807BD20:
- adds r0, r4, 0
- bl move_anim_task_del
- b _0807BD4A
-_0807BD28:
- ldr r0, _0807BD50 @ =gUnknown_03004B00
- movs r1, 0
- strh r5, [r0]
- strh r2, [r0, 0x2]
- strh r1, [r0, 0x4]
- strh r1, [r0, 0x6]
- strh r3, [r0, 0x8]
- ldr r1, _0807BD54 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0807BD58 @ =sub_80E32E0
- str r1, [r0]
- adds r0, r4, 0
- bl _call_via_r1
-_0807BD4A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0807BD50: .4byte gUnknown_03004B00
-_0807BD54: .4byte gTasks
-_0807BD58: .4byte sub_80E32E0
- thumb_func_end sub_807BB88
-
- thumb_func_start move_anim_start_t2
-move_anim_start_t2: @ 807BD5C
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r1, 24
- lsrs r1, 24
- ldr r0, _0807BD98 @ =gUnknown_0202F7C8
- strb r4, [r0]
- ldr r0, _0807BD9C @ =gUnknown_0202F7C9
- strb r4, [r0]
- ldr r0, _0807BDA0 @ =gBattleAnims_StatusConditions
- movs r2, 0
- bl move_something
- ldr r0, _0807BDA4 @ =sub_807BDAC
- movs r1, 0xA
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0807BDA8 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r4, [r1, 0x8]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0807BD98: .4byte gUnknown_0202F7C8
-_0807BD9C: .4byte gUnknown_0202F7C9
-_0807BDA0: .4byte gBattleAnims_StatusConditions
-_0807BDA4: .4byte sub_807BDAC
-_0807BDA8: .4byte gTasks
- thumb_func_end move_anim_start_t2
-
- thumb_func_start sub_807BDAC
-sub_807BDAC: @ 807BDAC
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0807BDF0 @ =gUnknown_0202F7AC
- ldr r0, [r0]
- bl _call_via_r0
- ldr r0, _0807BDF4 @ =gUnknown_0202F7B1
- ldrb r0, [r0]
- cmp r0, 0
- bne _0807BDEA
- ldr r1, _0807BDF8 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0x8
- ldrsh r0, [r0, r1]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- ldr r0, _0807BDFC @ =0x02017810
- adds r1, r0
- ldrb r2, [r1]
- movs r0, 0x11
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- adds r0, r4, 0
- bl DestroyTask
-_0807BDEA:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0807BDF0: .4byte gUnknown_0202F7AC
-_0807BDF4: .4byte gUnknown_0202F7B1
-_0807BDF8: .4byte gTasks
-_0807BDFC: .4byte 0x02017810
- thumb_func_end sub_807BDAC
-
.align 2, 0 @ Don't pad with nop.
diff --git a/asm/rom6.s b/asm/rom6.s
index ad1e71be5..16899bf2e 100644
--- a/asm/rom6.s
+++ b/asm/rom6.s
@@ -342,7 +342,7 @@ FldEff_RockSmash: @ 810B55C
strh r0, [r1, 0x18]
strh r2, [r1, 0x1A]
movs r0, 0x13
- bl sav12_xor_increment
+ bl IncrementGameStat
movs r0, 0
pop {r1}
bx r1
@@ -423,7 +423,7 @@ FldEff_UseDig: @ 810B5F8
lsrs r0, r2, 16
strh r0, [r1, 0x18]
strh r2, [r1, 0x1A]
- bl sub_81473B8
+ bl ShouldDoBrailleDigEffect
lsls r0, 24
cmp r0, 0
bne _0810B624
@@ -443,12 +443,12 @@ sub_810B634: @ 810B634
push {r4,lr}
movs r0, 0x26
bl FieldEffectActiveListRemove
- bl sub_81473B8
+ bl ShouldDoBrailleDigEffect
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0
beq _0810B64E
- bl sub_8147408
+ bl DoBrailleDigEffect
b _0810B666
_0810B64E:
ldr r0, _0810B66C @ =task08_080A1C44
@@ -471,9393 +471,4 @@ _0810B66C: .4byte task08_080A1C44
_0810B670: .4byte gTasks
thumb_func_end sub_810B634
- 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 @ =gUnknown_0300485C
- 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 gUnknown_0300485C
-_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 sub_8072DEC
- 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 sub_80F914C
- 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 sub_80F98DC
- movs r0, 0x1
- bl sub_80F98DC
- 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 sub_80F98DC
- movs r0, 0x1
- bl sub_80F98DC
- bl sub_8072DEC
- 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 @ =gUnknown_030041C0
- 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 gUnknown_030041C0
-_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 @ =gUnknown_083F7F70
- 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 gUnknown_083F7F70
-_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 sub_810C950
-sub_810C950: @ 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 sub_810C950
-
- thumb_func_start sub_810C994
-sub_810C994: @ 810C994
- push {r4,lr}
- movs r4, 0
-_0810C998:
- adds r0, r4, 0
- bl sub_810C950
- 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 sub_810C994
-
- 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 sub_810C950
- 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
-
- thumb_func_start SetUpFieldMove_Flash
-SetUpFieldMove_Flash: @ 810CBB4
- push {lr}
- ldr r0, _0810CBDC @ =gMapHeader
- ldrb r0, [r0, 0x15]
- cmp r0, 0x1
- bne _0810CBF4
- ldr r0, _0810CBE0 @ =0x00000828
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- bne _0810CBF4
- ldr r1, _0810CBE4 @ =gUnknown_0300485C
- ldr r0, _0810CBE8 @ =sub_808AB90
- str r0, [r1]
- ldr r1, _0810CBEC @ =gUnknown_03005CE4
- ldr r0, _0810CBF0 @ =sub_810CBFC
- str r0, [r1]
- movs r0, 0x1
- b _0810CBF6
- .align 2, 0
-_0810CBDC: .4byte gMapHeader
-_0810CBE0: .4byte 0x00000828
-_0810CBE4: .4byte gUnknown_0300485C
-_0810CBE8: .4byte sub_808AB90
-_0810CBEC: .4byte gUnknown_03005CE4
-_0810CBF0: .4byte sub_810CBFC
-_0810CBF4:
- movs r0, 0
-_0810CBF6:
- pop {r1}
- bx r1
- thumb_func_end SetUpFieldMove_Flash
-
- thumb_func_start sub_810CBFC
-sub_810CBFC: @ 810CBFC
- push {lr}
- bl oei_task_add
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0810CC24 @ =gUnknown_0202FF84
- ldr r1, _0810CC28 @ =gUnknown_03005CE0
- ldrb r1, [r1]
- str r1, [r2]
- ldr r2, _0810CC2C @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r2, _0810CC30 @ =sub_810CC34
- lsrs r0, r2, 16
- strh r0, [r1, 0x18]
- strh r2, [r1, 0x1A]
- pop {r0}
- bx r0
- .align 2, 0
-_0810CC24: .4byte gUnknown_0202FF84
-_0810CC28: .4byte gUnknown_03005CE0
-_0810CC2C: .4byte gTasks
-_0810CC30: .4byte sub_810CC34
- thumb_func_end sub_810CBFC
-
- thumb_func_start sub_810CC34
-sub_810CC34: @ 810CC34
- push {lr}
- movs r0, 0xCF
- bl PlaySE
- ldr r0, _0810CC4C @ =0x00000828
- bl FlagSet
- ldr r0, _0810CC50 @ =gUnknown_081B694A
- bl ScriptContext1_SetupScript
- pop {r0}
- bx r0
- .align 2, 0
-_0810CC4C: .4byte 0x00000828
-_0810CC50: .4byte gUnknown_081B694A
- thumb_func_end sub_810CC34
-
- thumb_func_start sub_810CC54
-sub_810CC54: @ 810CC54
- push {lr}
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- pop {r0}
- bx r0
- thumb_func_end sub_810CC54
-
- thumb_func_start sub_810CC6C
-sub_810CC6C: @ 810CC6C
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- pop {r0}
- bx r0
- thumb_func_end sub_810CC6C
-
- thumb_func_start sub_810CC80
-sub_810CC80: @ 810CC80
- push {r4,lr}
- sub sp, 0x8
- movs r0, 0
- bl SetVBlankCallback
- movs r0, 0x80
- lsls r0, 19
- movs r1, 0
- strh r1, [r0]
- adds r0, 0xC
- strh r1, [r0]
- subs r0, 0x2
- strh r1, [r0]
- subs r0, 0x2
- strh r1, [r0]
- adds r0, 0x10
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- subs r0, 0x6
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- subs r0, 0x6
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- mov r0, sp
- strh r1, [r0]
- ldr r1, _0810CD34 @ =0x040000d4
- str r0, [r1]
- movs r0, 0xC0
- lsls r0, 19
- str r0, [r1, 0x4]
- ldr r0, _0810CD38 @ =0x8100c000
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- movs r4, 0
- str r4, [sp, 0x4]
- add r0, sp, 0x4
- str r0, [r1]
- movs r0, 0xE0
- lsls r0, 19
- str r0, [r1, 0x4]
- ldr r0, _0810CD3C @ =0x85000100
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- mov r0, sp
- strh r4, [r0]
- str r0, [r1]
- ldr r0, _0810CD40 @ =0x05000002
- str r0, [r1, 0x4]
- ldr r0, _0810CD44 @ =0x810001ff
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- bl ResetPaletteFade
- bl ResetTasks
- bl ResetSpriteData
- ldr r3, _0810CD48 @ =0x04000208
- ldrh r2, [r3]
- strh r4, [r3]
- ldr r4, _0810CD4C @ =0x04000200
- ldrh r0, [r4]
- movs r1, 0x1
- orrs r0, r1
- strh r0, [r4]
- strh r2, [r3]
- ldr r0, _0810CD50 @ =sub_810CC6C
- bl SetVBlankCallback
- ldr r0, _0810CD54 @ =sub_810CC54
- bl SetMainCallback2
- bl sub_810CD5C
- lsls r0, 24
- cmp r0, 0
- bne _0810CD2A
- ldr r0, _0810CD58 @ =gMain
- ldr r0, [r0, 0x8]
- bl SetMainCallback2
-_0810CD2A:
- add sp, 0x8
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810CD34: .4byte 0x040000d4
-_0810CD38: .4byte 0x8100c000
-_0810CD3C: .4byte 0x85000100
-_0810CD40: .4byte 0x05000002
-_0810CD44: .4byte 0x810001ff
-_0810CD48: .4byte 0x04000208
-_0810CD4C: .4byte 0x04000200
-_0810CD50: .4byte sub_810CC6C
-_0810CD54: .4byte sub_810CC54
-_0810CD58: .4byte gMain
- thumb_func_end sub_810CC80
-
- thumb_func_start sub_810CD5C
-sub_810CD5C: @ 810CD5C
- push {r4-r7,lr}
- bl get_map_light_from_warp0
- lsls r0, 24
- lsrs r6, r0, 24
- bl sav1_map_get_light_level
- lsls r0, 24
- lsrs r5, r0, 24
- movs r3, 0
- ldr r4, _0810CD9C @ =gUnknown_083F7FC4
- ldrb r0, [r4]
- cmp r0, 0
- beq _0810CDB0
- adds r7, r4, 0
- adds r0, r4, 0x4
- mov r12, r0
-_0810CD7E:
- lsls r2, r3, 3
- adds r1, r2, r7
- ldrb r0, [r1]
- cmp r0, r6
- bne _0810CDA0
- ldrb r0, [r1, 0x1]
- cmp r0, r5
- bne _0810CDA0
- mov r1, r12
- adds r0, r2, r1
- ldr r0, [r0]
- bl _call_via_r0
- movs r0, 0x1
- b _0810CDB2
- .align 2, 0
-_0810CD9C: .4byte gUnknown_083F7FC4
-_0810CDA0:
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- lsls r0, r3, 3
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0
- bne _0810CD7E
-_0810CDB0:
- movs r0, 0
-_0810CDB2:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_810CD5C
-
- thumb_func_start sub_810CDB8
-sub_810CDB8: @ 810CDB8
- push {r4-r6,lr}
- lsls r0, 24
- lsls r1, 24
- lsrs r5, r0, 24
- lsrs r4, r1, 24
- movs r3, 0
- ldr r1, _0810CDE4 @ =gUnknown_083F7FC4
- ldrb r0, [r1]
- cmp r0, 0
- beq _0810CDF8
- adds r6, r1, 0
-_0810CDCE:
- lsls r0, r3, 3
- adds r2, r0, r6
- ldrb r0, [r2]
- cmp r0, r5
- bne _0810CDE8
- ldrb r0, [r2, 0x1]
- cmp r0, r4
- bne _0810CDE8
- ldrb r0, [r2, 0x2]
- b _0810CDFA
- .align 2, 0
-_0810CDE4: .4byte gUnknown_083F7FC4
-_0810CDE8:
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- lsls r0, r3, 3
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _0810CDCE
-_0810CDF8:
- movs r0, 0
-_0810CDFA:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_810CDB8
-
- thumb_func_start fade_type_for_given_maplight_pair
-fade_type_for_given_maplight_pair: @ 810CE00
- push {r4-r6,lr}
- lsls r0, 24
- lsls r1, 24
- lsrs r5, r0, 24
- lsrs r4, r1, 24
- movs r3, 0
- ldr r1, _0810CE2C @ =gUnknown_083F7FC4
- ldrb r0, [r1]
- cmp r0, 0
- beq _0810CE40
- adds r6, r1, 0
-_0810CE16:
- lsls r0, r3, 3
- adds r2, r0, r6
- ldrb r0, [r2]
- cmp r0, r5
- bne _0810CE30
- ldrb r0, [r2, 0x1]
- cmp r0, r4
- bne _0810CE30
- ldrb r0, [r2, 0x3]
- b _0810CE42
- .align 2, 0
-_0810CE2C: .4byte gUnknown_083F7FC4
-_0810CE30:
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- lsls r0, r3, 3
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _0810CE16
-_0810CE40:
- movs r0, 0
-_0810CE42:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end fade_type_for_given_maplight_pair
-
- thumb_func_start sub_810CE48
-sub_810CE48: @ 810CE48
- push {lr}
- ldr r0, _0810CE58 @ =sub_810CE5C
- movs r1, 0
- bl CreateTask
- pop {r0}
- bx r0
- .align 2, 0
-_0810CE58: .4byte sub_810CE5C
- thumb_func_end sub_810CE48
-
- thumb_func_start sub_810CE5C
-sub_810CE5C: @ 810CE5C
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0810CE70 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r0, _0810CE74 @ =sub_810CE78
- str r0, [r1]
- bx lr
- .align 2, 0
-_0810CE70: .4byte gTasks
-_0810CE74: .4byte sub_810CE78
- thumb_func_end sub_810CE5C
-
- thumb_func_start sub_810CE78
-sub_810CE78: @ 810CE78
- push {r4-r6,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r6, 0x80
- lsls r6, 19
- movs r5, 0
- strh r5, [r6]
- ldr r0, _0810CEE8 @ =gCaveTransitionTiles
- ldr r1, _0810CEEC @ =0x0600c000
- bl LZ77UnCompVram
- ldr r0, _0810CEF0 @ =gCaveTransitionTilemap
- ldr r1, _0810CEF4 @ =0x0600f800
- bl LZ77UnCompVram
- ldr r0, _0810CEF8 @ =gCaveTransitionPalette_White
- movs r1, 0xE0
- movs r2, 0x20
- bl LoadPalette
- ldr r0, _0810CEFC @ =gUnknown_083F809C
- movs r1, 0xE0
- movs r2, 0x10
- bl LoadPalette
- ldr r1, _0810CF00 @ =REG_BLDCNT
- ldr r2, _0810CF04 @ =0x00003e41
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _0810CF08 @ =REG_BLDALPHA
- strh r5, [r0]
- adds r0, 0x2
- strh r5, [r0]
- subs r1, 0x48
- ldr r2, _0810CF0C @ =0x00001f0c
- adds r0, r2, 0
- strh r0, [r1]
- movs r1, 0x8A
- lsls r1, 5
- adds r0, r1, 0
- strh r0, [r6]
- ldr r1, _0810CF10 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0810CF14 @ =sub_810CF18
- str r1, [r0]
- movs r2, 0
- movs r1, 0x10
- strh r1, [r0, 0x8]
- strh r2, [r0, 0xA]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0810CEE8: .4byte gCaveTransitionTiles
-_0810CEEC: .4byte 0x0600c000
-_0810CEF0: .4byte gCaveTransitionTilemap
-_0810CEF4: .4byte 0x0600f800
-_0810CEF8: .4byte gCaveTransitionPalette_White
-_0810CEFC: .4byte gUnknown_083F809C
-_0810CF00: .4byte REG_BLDCNT
-_0810CF04: .4byte 0x00003e41
-_0810CF08: .4byte REG_BLDALPHA
-_0810CF0C: .4byte 0x00001f0c
-_0810CF10: .4byte gTasks
-_0810CF14: .4byte sub_810CF18
- thumb_func_end sub_810CE78
-
- thumb_func_start sub_810CF18
-sub_810CF18: @ 810CF18
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0810CF44 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r3, r1, r2
- ldrh r2, [r3, 0xA]
- movs r1, 0x80
- lsls r1, 5
- adds r0, r2, r1
- lsls r0, 16
- lsrs r0, 16
- ldr r1, _0810CF48 @ =REG_BLDALPHA
- strh r0, [r1]
- cmp r2, 0x10
- bhi _0810CF4C
- ldrh r0, [r3, 0xA]
- adds r0, 0x1
- strh r0, [r3, 0xA]
- b _0810CF54
- .align 2, 0
-_0810CF44: .4byte gTasks
-_0810CF48: .4byte REG_BLDALPHA
-_0810CF4C:
- movs r0, 0
- strh r0, [r3, 0xC]
- ldr r0, _0810CF58 @ =sub_810CF5C
- str r0, [r3]
-_0810CF54:
- pop {r0}
- bx r0
- .align 2, 0
-_0810CF58: .4byte sub_810CF5C
- thumb_func_end sub_810CF18
-
- thumb_func_start sub_810CF5C
-sub_810CF5C: @ 810CF5C
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0810CF94 @ =REG_BLDALPHA
- ldr r3, _0810CF98 @ =0x00001010
- adds r1, r3, 0
- strh r1, [r2]
- ldr r2, _0810CF9C @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
- ldrh r1, [r4, 0xC]
- cmp r1, 0x7
- bhi _0810CFA4
- adds r0, r1, 0x1
- strh r0, [r4, 0xC]
- lsls r1, 1
- ldr r0, _0810CFA0 @ =gUnknown_083F809C
- adds r0, r1, r0
- movs r2, 0x10
- subs r2, r1
- lsls r2, 16
- lsrs r2, 16
- movs r1, 0xE0
- bl LoadPalette
- b _0810CFB6
- .align 2, 0
-_0810CF94: .4byte REG_BLDALPHA
-_0810CF98: .4byte 0x00001010
-_0810CF9C: .4byte gTasks
-_0810CFA0: .4byte gUnknown_083F809C
-_0810CFA4:
- ldr r0, _0810CFBC @ =gCaveTransitionPalette_White
- movs r1, 0
- movs r2, 0x20
- bl LoadPalette
- ldr r0, _0810CFC0 @ =sub_810CFC4
- str r0, [r4]
- movs r0, 0x8
- strh r0, [r4, 0xC]
-_0810CFB6:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810CFBC: .4byte gCaveTransitionPalette_White
-_0810CFC0: .4byte sub_810CFC4
- thumb_func_end sub_810CF5C
-
- thumb_func_start sub_810CFC4
-sub_810CFC4: @ 810CFC4
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0810CFE4 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldrh r2, [r1, 0xC]
- movs r3, 0xC
- ldrsh r0, [r1, r3]
- cmp r0, 0
- beq _0810CFE8
- subs r0, r2, 0x1
- strh r0, [r1, 0xC]
- b _0810CFF0
- .align 2, 0
-_0810CFE4: .4byte gTasks
-_0810CFE8:
- ldr r0, _0810CFF4 @ =gMain
- ldr r0, [r0, 0x8]
- bl SetMainCallback2
-_0810CFF0:
- pop {r0}
- bx r0
- .align 2, 0
-_0810CFF4: .4byte gMain
- thumb_func_end sub_810CFC4
-
- thumb_func_start sub_810CFF8
-sub_810CFF8: @ 810CFF8
- push {lr}
- ldr r0, _0810D008 @ =sub_810D00C
- movs r1, 0
- bl CreateTask
- pop {r0}
- bx r0
- .align 2, 0
-_0810D008: .4byte sub_810D00C
- thumb_func_end sub_810CFF8
-
- thumb_func_start sub_810D00C
-sub_810D00C: @ 810D00C
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0810D020 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r0, _0810D024 @ =sub_810D028
- str r0, [r1]
- bx lr
- .align 2, 0
-_0810D020: .4byte gTasks
-_0810D024: .4byte sub_810D028
- thumb_func_end sub_810D00C
-
- thumb_func_start sub_810D028
-sub_810D028: @ 810D028
- push {r4-r6,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- movs r6, 0x80
- lsls r6, 19
- movs r4, 0
- strh r4, [r6]
- ldr r0, _0810D098 @ =gCaveTransitionTiles
- ldr r1, _0810D09C @ =0x0600c000
- bl LZ77UnCompVram
- ldr r0, _0810D0A0 @ =gCaveTransitionTilemap
- ldr r1, _0810D0A4 @ =0x0600f800
- bl LZ77UnCompVram
- ldr r0, _0810D0A8 @ =REG_BLDCNT
- strh r4, [r0]
- adds r0, 0x2
- strh r4, [r0]
- adds r0, 0x2
- strh r4, [r0]
- ldr r1, _0810D0AC @ =REG_BG0CNT
- ldr r2, _0810D0B0 @ =0x00001f0c
- adds r0, r2, 0
- strh r0, [r1]
- movs r1, 0x8A
- lsls r1, 5
- adds r0, r1, 0
- strh r0, [r6]
- ldr r0, _0810D0B4 @ =gCaveTransitionPalette_White
- movs r1, 0xE0
- movs r2, 0x20
- bl LoadPalette
- ldr r0, _0810D0B8 @ =gCaveTransitionPalette_Black
- movs r1, 0
- movs r2, 0x20
- bl LoadPalette
- ldr r1, _0810D0BC @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _0810D0C0 @ =sub_810D0C4
- str r1, [r0]
- movs r2, 0
- movs r1, 0x10
- strh r1, [r0, 0x8]
- strh r2, [r0, 0xA]
- strh r2, [r0, 0xC]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0810D098: .4byte gCaveTransitionTiles
-_0810D09C: .4byte 0x0600c000
-_0810D0A0: .4byte gCaveTransitionTilemap
-_0810D0A4: .4byte 0x0600f800
-_0810D0A8: .4byte REG_BLDCNT
-_0810D0AC: .4byte REG_BG0CNT
-_0810D0B0: .4byte 0x00001f0c
-_0810D0B4: .4byte gCaveTransitionPalette_White
-_0810D0B8: .4byte gCaveTransitionPalette_Black
-_0810D0BC: .4byte gTasks
-_0810D0C0: .4byte sub_810D0C4
- thumb_func_end sub_810D028
-
- thumb_func_start sub_810D0C4
-sub_810D0C4: @ 810D0C4
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0810D0F8 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r3, r1, r2
- ldrh r1, [r3, 0xC]
- cmp r1, 0xF
- bhi _0810D100
- adds r2, r1, 0x1
- adds r0, r2, 0x1
- strh r0, [r3, 0xC]
- movs r0, 0xF
- subs r0, r1
- lsls r0, 1
- ldr r1, _0810D0FC @ =gUnknown_083F808C
- adds r0, r1
- lsls r2, 17
- lsrs r2, 16
- movs r1, 0xE0
- bl LoadPalette
- b _0810D114
- .align 2, 0
-_0810D0F8: .4byte gTasks
-_0810D0FC: .4byte gUnknown_083F808C
-_0810D100:
- ldr r1, _0810D118 @ =REG_BLDALPHA
- ldr r2, _0810D11C @ =0x00001010
- adds r0, r2, 0
- strh r0, [r1]
- subs r1, 0x2
- ldr r2, _0810D120 @ =0x00003e41
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _0810D124 @ =sub_810D128
- str r0, [r3]
-_0810D114:
- pop {r0}
- bx r0
- .align 2, 0
-_0810D118: .4byte REG_BLDALPHA
-_0810D11C: .4byte 0x00001010
-_0810D120: .4byte 0x00003e41
-_0810D124: .4byte sub_810D128
- thumb_func_end sub_810D0C4
-
- thumb_func_start sub_810D128
-sub_810D128: @ 810D128
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0810D158 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r3, r1, r2
- ldrh r0, [r3, 0xA]
- movs r1, 0x10
- subs r1, r0
- lsls r1, 16
- movs r2, 0x80
- lsls r2, 21
- adds r0, r1, r2
- lsrs r0, 16
- ldr r2, _0810D15C @ =REG_BLDALPHA
- strh r0, [r2]
- cmp r1, 0
- beq _0810D160
- ldrh r0, [r3, 0xA]
- adds r0, 0x1
- strh r0, [r3, 0xA]
- b _0810D172
- .align 2, 0
-_0810D158: .4byte gTasks
-_0810D15C: .4byte REG_BLDALPHA
-_0810D160:
- ldr r0, _0810D178 @ =gCaveTransitionPalette_Black
- movs r1, 0
- movs r2, 0x20
- bl LoadPalette
- ldr r0, _0810D17C @ =gMain
- ldr r0, [r0, 0x8]
- bl SetMainCallback2
-_0810D172:
- pop {r0}
- bx r0
- .align 2, 0
-_0810D178: .4byte gCaveTransitionPalette_Black
-_0810D17C: .4byte gMain
- thumb_func_end sub_810D128
-
- thumb_func_start sub_810D180
-sub_810D180: @ 810D180
- push {r4-r7,lr}
- sub sp, 0x4
- bl HealPlayerParty
- ldr r4, _0810D1A0 @ =0x00000804
- adds r0, r4, 0
- bl FlagGet
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x1
- bne _0810D1A8
- ldr r0, _0810D1A4 @ =gUnknown_02039324
- strb r1, [r0]
- b _0810D1B4
- .align 2, 0
-_0810D1A0: .4byte 0x00000804
-_0810D1A4: .4byte gUnknown_02039324
-_0810D1A8:
- ldr r1, _0810D1E8 @ =gUnknown_02039324
- movs r0, 0
- strb r0, [r1]
- adds r0, r4, 0
- bl FlagSet
-_0810D1B4:
- movs r0, 0x1
- bl sub_8053108
- cmp r0, 0
- bne _0810D1D4
- ldr r2, _0810D1EC @ =gSaveBlock2
- ldrh r1, [r2, 0xE]
- lsls r1, 16
- ldrb r0, [r2, 0x10]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x11]
- orrs r1, r0
- movs r0, 0x1
- bl sav12_xor_set
-_0810D1D4:
- bl sub_8047A10
- ldr r0, _0810D1EC @ =gSaveBlock2
- ldrb r0, [r0, 0x8]
- cmp r0, 0
- bne _0810D1F0
- movs r0, 0x1
- bl sub_80537CC
- b _0810D1F6
- .align 2, 0
-_0810D1E8: .4byte gUnknown_02039324
-_0810D1EC: .4byte gSaveBlock2
-_0810D1F0:
- movs r0, 0x2
- bl sub_80537CC
-_0810D1F6:
- movs r6, 0
- movs r5, 0
- mov r7, sp
-_0810D1FC:
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _0810D260 @ =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0x5
- bl GetMonData
- cmp r0, 0
- beq _0810D23A
- adds r0, r4, 0
- movs r1, 0x6
- bl GetMonData
- cmp r0, 0
- bne _0810D23A
- adds r0, r4, 0
- movs r1, 0x43
- bl GetMonData
- cmp r0, 0
- bne _0810D23A
- movs r0, 0x1
- strb r0, [r7]
- adds r0, r4, 0
- movs r1, 0x43
- mov r2, sp
- bl SetMonData
- movs r6, 0x1
-_0810D23A:
- adds r5, 0x1
- cmp r5, 0x5
- ble _0810D1FC
- cmp r6, 0x1
- bne _0810D250
- movs r0, 0x2A
- bl sav12_xor_increment
- ldr r0, _0810D264 @ =0x0000083b
- bl FlagSet
-_0810D250:
- ldr r0, _0810D268 @ =sub_8141F90
- bl SetMainCallback2
- movs r0, 0
- add sp, 0x4
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0810D260: .4byte gPlayerParty
-_0810D264: .4byte 0x0000083b
-_0810D268: .4byte sub_8141F90
- thumb_func_end sub_810D180
-
- thumb_func_start sp0C8_whiteout_maybe
-sp0C8_whiteout_maybe: @ 810D26C
- push {lr}
- ldr r0, _0810D27C @ =c2_whiteout
- bl SetMainCallback2
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_0810D27C: .4byte c2_whiteout
- thumb_func_end sp0C8_whiteout_maybe
-
- thumb_func_start sub_810D280
-sub_810D280: @ 810D280
- push {r4,lr}
- ldr r0, _0810D2A4 @ =0x00004024
- bl VarGet
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldr r0, _0810D2A8 @ =0x00004025
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- lsls r4, 16
- orrs r4, r0
- adds r0, r4, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0810D2A4: .4byte 0x00004024
-_0810D2A8: .4byte 0x00004025
- thumb_func_end sub_810D280
-
- thumb_func_start sub_810D2AC
-sub_810D2AC: @ 810D2AC
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _0810D2CC @ =0x00004024
- lsrs r1, r4, 16
- bl VarSet
- ldr r0, _0810D2D0 @ =0x00004025
- lsls r4, 16
- lsrs r4, 16
- adds r1, r4, 0
- bl VarSet
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810D2CC: .4byte 0x00004024
-_0810D2D0: .4byte 0x00004025
- thumb_func_end sub_810D2AC
-
- thumb_func_start unref_sub_810D2D4
-unref_sub_810D2D4: @ 810D2D4
- push {r4,lr}
- bl Random
- adds r4, r0, 0
- bl Random
- lsls r4, 16
- lsls r0, 16
- lsrs r0, 16
- orrs r4, r0
- adds r0, r4, 0
- bl sub_810D2AC
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end unref_sub_810D2D4
-
- thumb_func_start sub_810D2F4
-sub_810D2F4: @ 810D2F4
- push {r4,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- bl sub_810D280
- adds r1, r0, 0
- cmp r4, 0
- beq _0810D318
- ldr r3, _0810D324 @ =0x41c64e6d
- ldr r2, _0810D328 @ =0x00003039
-_0810D308:
- adds r0, r1, 0
- muls r0, r3
- adds r1, r0, r2
- subs r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0
- bne _0810D308
-_0810D318:
- adds r0, r1, 0
- bl sub_810D2AC
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810D324: .4byte 0x41c64e6d
-_0810D328: .4byte 0x00003039
- thumb_func_end sub_810D2F4
-
- thumb_func_start sub_810D32C
-sub_810D32C: @ 810D32C
- push {r4-r6,lr}
- bl sub_810D280
- lsrs r6, r0, 16
- movs r5, 0
-_0810D336:
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _0810D360 @ =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _0810D368
- adds r0, r4, 0
- movs r1, 0
- bl GetMonData
- ldr r1, _0810D364 @ =0x0000ffff
- ands r1, r0
- cmp r1, r6
- bne _0810D368
- movs r0, 0x1
- b _0810D370
- .align 2, 0
-_0810D360: .4byte gPlayerParty
-_0810D364: .4byte 0x0000ffff
-_0810D368:
- adds r5, 0x1
- cmp r5, 0x5
- ble _0810D336
- movs r0, 0
-_0810D370:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_810D32C
-
- thumb_func_start sub_810D378
-sub_810D378: @ 810D378
- push {lr}
- bl get_map_light_from_warp0
- lsls r0, 24
- lsrs r0, 24
- bl is_light_level_1_2_3_5_or_6
- lsls r0, 24
- cmp r0, 0
- beq _0810D3BE
- bl RtcCalcLocalTime
- ldr r1, _0810D3AC @ =gUnknown_083F8340
- ldr r0, _0810D3B0 @ =gLocalTime
- ldrb r0, [r0, 0x2]
- lsls r0, 24
- asrs r0, 24
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _0810D3B8
- ldr r0, _0810D3B4 @ =0x0000083a
- bl FlagSet
- b _0810D3BE
- .align 2, 0
-_0810D3AC: .4byte gUnknown_083F8340
-_0810D3B0: .4byte gLocalTime
-_0810D3B4: .4byte 0x0000083a
-_0810D3B8:
- ldr r0, _0810D3C4 @ =0x0000083a
- bl FlagReset
-_0810D3BE:
- pop {r0}
- bx r0
- .align 2, 0
-_0810D3C4: .4byte 0x0000083a
- thumb_func_end sub_810D378
-
- thumb_func_start sub_810D3C8
-sub_810D3C8: @ 810D3C8
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_807DDFC
- lsls r0, 24
- cmp r0, 0
- beq _0810D3E2
- bl EnableBothScriptContexts
- adds r0, r4, 0
- bl DestroyTask
-_0810D3E2:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_810D3C8
-
- thumb_func_start sub_810D3E8
-sub_810D3E8: @ 810D3E8
- push {lr}
- ldr r0, _0810D3F8 @ =sub_810D3C8
- movs r1, 0x50
- bl CreateTask
- pop {r0}
- bx r0
- .align 2, 0
-_0810D3F8: .4byte sub_810D3C8
- thumb_func_end sub_810D3E8
-
- thumb_func_start sub_810D3FC
-sub_810D3FC: @ 810D3FC
- push {lr}
- ldr r0, _0810D40C @ =0x00004049
- bl GetVarPointer
- movs r1, 0
- strh r1, [r0]
- pop {r0}
- bx r0
- .align 2, 0
-_0810D40C: .4byte 0x00004049
- thumb_func_end sub_810D3FC
-
- thumb_func_start UpdateBirchState
-UpdateBirchState: @ 810D410
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldr r0, _0810D438 @ =0x00004049
- bl GetVarPointer
- adds r5, r0, 0
- ldrh r0, [r5]
- adds r4, r0
- strh r4, [r5]
- ldrh r0, [r5]
- movs r1, 0x7
- bl __umodsi3
- strh r0, [r5]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810D438: .4byte 0x00004049
- thumb_func_end UpdateBirchState
-
- thumb_func_start ScriptGetPokedexInfo
-ScriptGetPokedexInfo: @ 810D43C
- push {lr}
- ldr r0, _0810D458 @ =gSpecialVar_0x8004
- ldrh r0, [r0]
- cmp r0, 0
- bne _0810D460
- movs r0, 0
- bl GetHoennPokedexCount
- ldr r1, _0810D45C @ =gSpecialVar_0x8005
- strh r0, [r1]
- movs r0, 0x1
- bl GetHoennPokedexCount
- b _0810D470
- .align 2, 0
-_0810D458: .4byte gSpecialVar_0x8004
-_0810D45C: .4byte gSpecialVar_0x8005
-_0810D460:
- movs r0, 0
- bl GetNationalPokedexCount
- ldr r1, _0810D480 @ =gSpecialVar_0x8005
- strh r0, [r1]
- movs r0, 0x1
- bl GetNationalPokedexCount
-_0810D470:
- ldr r1, _0810D484 @ =gSpecialVar_0x8006
- strh r0, [r1]
- bl IsNationalPokedex
- lsls r0, 16
- lsrs r0, 16
- pop {r1}
- bx r1
- .align 2, 0
-_0810D480: .4byte gSpecialVar_0x8005
-_0810D484: .4byte gSpecialVar_0x8006
- thumb_func_end ScriptGetPokedexInfo
-
- thumb_func_start GetPokedexRatingText
-GetPokedexRatingText: @ 810D488
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x9
- bhi _0810D494
- b _0810D5EC
-_0810D494:
- cmp r0, 0x13
- bhi _0810D4A0
- ldr r0, _0810D49C @ =gUnknown_081C456A
- b _0810D5F6
- .align 2, 0
-_0810D49C: .4byte gUnknown_081C456A
-_0810D4A0:
- cmp r0, 0x1D
- bhi _0810D4AC
- ldr r0, _0810D4A8 @ =gUnknown_081C45B0
- b _0810D5F6
- .align 2, 0
-_0810D4A8: .4byte gUnknown_081C45B0
-_0810D4AC:
- cmp r0, 0x27
- bhi _0810D4B8
- ldr r0, _0810D4B4 @ =gUnknown_081C45F9
- b _0810D5F6
- .align 2, 0
-_0810D4B4: .4byte gUnknown_081C45F9
-_0810D4B8:
- cmp r0, 0x31
- bhi _0810D4C4
- ldr r0, _0810D4C0 @ =gUnknown_081C4648
- b _0810D5F6
- .align 2, 0
-_0810D4C0: .4byte gUnknown_081C4648
-_0810D4C4:
- cmp r0, 0x3B
- bhi _0810D4D0
- ldr r0, _0810D4CC @ =gUnknown_081C467E
- b _0810D5F6
- .align 2, 0
-_0810D4CC: .4byte gUnknown_081C467E
-_0810D4D0:
- cmp r0, 0x45
- bhi _0810D4DC
- ldr r0, _0810D4D8 @ =gUnknown_081C46B9
- b _0810D5F6
- .align 2, 0
-_0810D4D8: .4byte gUnknown_081C46B9
-_0810D4DC:
- cmp r0, 0x4F
- bhi _0810D4E8
- ldr r0, _0810D4E4 @ =gUnknown_081C46FE
- b _0810D5F6
- .align 2, 0
-_0810D4E4: .4byte gUnknown_081C46FE
-_0810D4E8:
- cmp r0, 0x59
- bhi _0810D4F4
- ldr r0, _0810D4F0 @ =gUnknown_081C4747
- b _0810D5F6
- .align 2, 0
-_0810D4F0: .4byte gUnknown_081C4747
-_0810D4F4:
- cmp r0, 0x63
- bhi _0810D500
- ldr r0, _0810D4FC @ =gUnknown_081C4780
- b _0810D5F6
- .align 2, 0
-_0810D4FC: .4byte gUnknown_081C4780
-_0810D500:
- cmp r0, 0x6D
- bhi _0810D50C
- ldr r0, _0810D508 @ =gUnknown_081C47DF
- b _0810D5F6
- .align 2, 0
-_0810D508: .4byte gUnknown_081C47DF
-_0810D50C:
- cmp r0, 0x77
- bhi _0810D518
- ldr r0, _0810D514 @ =gUnknown_081C4828
- b _0810D5F6
- .align 2, 0
-_0810D514: .4byte gUnknown_081C4828
-_0810D518:
- cmp r0, 0x81
- bhi _0810D524
- ldr r0, _0810D520 @ =gUnknown_081C4863
- b _0810D5F6
- .align 2, 0
-_0810D520: .4byte gUnknown_081C4863
-_0810D524:
- cmp r0, 0x8B
- bhi _0810D530
- ldr r0, _0810D52C @ =gUnknown_081C489C
- b _0810D5F6
- .align 2, 0
-_0810D52C: .4byte gUnknown_081C489C
-_0810D530:
- cmp r0, 0x95
- bhi _0810D53C
- ldr r0, _0810D538 @ =gUnknown_081C48EB
- b _0810D5F6
- .align 2, 0
-_0810D538: .4byte gUnknown_081C48EB
-_0810D53C:
- cmp r0, 0x9F
- bhi _0810D548
- ldr r0, _0810D544 @ =gUnknown_081C4936
- b _0810D5F6
- .align 2, 0
-_0810D544: .4byte gUnknown_081C4936
-_0810D548:
- cmp r0, 0xA9
- bhi _0810D554
- ldr r0, _0810D550 @ =gUnknown_081C49A2
- b _0810D5F6
- .align 2, 0
-_0810D550: .4byte gUnknown_081C49A2
-_0810D554:
- cmp r0, 0xB3
- bhi _0810D560
- ldr r0, _0810D55C @ =gUnknown_081C4A06
- b _0810D5F6
- .align 2, 0
-_0810D55C: .4byte gUnknown_081C4A06
-_0810D560:
- cmp r0, 0xBD
- bhi _0810D56C
- ldr r0, _0810D568 @ =gUnknown_081C4A4F
- b _0810D5F6
- .align 2, 0
-_0810D568: .4byte gUnknown_081C4A4F
-_0810D56C:
- cmp r0, 0xC7
- bls _0810D5DA
- cmp r0, 0xC8
- bne _0810D5A8
- ldr r0, _0810D5A4 @ =0x00000199
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x1
- bl sub_8090D90
- lsls r0, 24
- cmp r0, 0
- bne _0810D5DA
- movs r0, 0xCD
- lsls r0, 1
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x1
- bl sub_8090D90
- lsls r0, 24
- cmp r0, 0
- bne _0810D5DA
- b _0810D5F4
- .align 2, 0
-_0810D5A4: .4byte 0x00000199
-_0810D5A8:
- cmp r0, 0xC9
- bne _0810D5E8
- ldr r0, _0810D5E0 @ =0x00000199
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x1
- bl sub_8090D90
- lsls r0, 24
- cmp r0, 0
- beq _0810D5F4
- movs r0, 0xCD
- lsls r0, 1
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x1
- bl sub_8090D90
- lsls r0, 24
- cmp r0, 0
- beq _0810D5F4
-_0810D5DA:
- ldr r0, _0810D5E4 @ =gUnknown_081C4A91
- b _0810D5F6
- .align 2, 0
-_0810D5E0: .4byte 0x00000199
-_0810D5E4: .4byte gUnknown_081C4A91
-_0810D5E8:
- cmp r0, 0xCA
- beq _0810D5F4
-_0810D5EC:
- ldr r0, _0810D5F0 @ =gUnknown_081C4520
- b _0810D5F6
- .align 2, 0
-_0810D5F0: .4byte gUnknown_081C4520
-_0810D5F4:
- ldr r0, _0810D5FC @ =gUnknown_081C4ADA
-_0810D5F6:
- pop {r1}
- bx r1
- .align 2, 0
-_0810D5FC: .4byte gUnknown_081C4ADA
- thumb_func_end GetPokedexRatingText
-
- thumb_func_start ShowPokedexRatingMessage
-ShowPokedexRatingMessage: @ 810D600
- push {lr}
- ldr r0, _0810D614 @ =gSpecialVar_0x8004
- ldrh r0, [r0]
- bl GetPokedexRatingText
- bl ShowFieldMessage
- pop {r0}
- bx r0
- .align 2, 0
-_0810D614: .4byte gSpecialVar_0x8004
- thumb_func_end ShowPokedexRatingMessage
-
- thumb_func_start AccessHallOfFamePC
-AccessHallOfFamePC: @ 810D618
- push {lr}
- ldr r0, _0810D628 @ =sub_81428CC
- bl SetMainCallback2
- bl ScriptContext2_Enable
- pop {r0}
- bx r0
- .align 2, 0
-_0810D628: .4byte sub_81428CC
- thumb_func_end AccessHallOfFamePC
-
- thumb_func_start ReturnFromHallOfFamePC
-ReturnFromHallOfFamePC: @ 810D62C
- push {lr}
- ldr r0, _0810D640 @ =c2_exit_to_overworld_2_switch
- bl SetMainCallback2
- ldr r1, _0810D644 @ =gUnknown_0300485C
- ldr r0, _0810D648 @ =ReshowPCMenuAfterHallOfFamePC
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_0810D640: .4byte c2_exit_to_overworld_2_switch
-_0810D644: .4byte gUnknown_0300485C
-_0810D648: .4byte ReshowPCMenuAfterHallOfFamePC
- thumb_func_end ReturnFromHallOfFamePC
-
- thumb_func_start ReshowPCMenuAfterHallOfFamePC
-ReshowPCMenuAfterHallOfFamePC: @ 810D64C
- push {lr}
- sub sp, 0x4
- bl ScriptContext2_Enable
- bl sub_8053E90
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- bl sp109_CreatePCMenu
- bl sub_80B5838
- ldr r0, _0810D680 @ =sub_810D684
- movs r1, 0xA
- bl CreateTask
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_0810D680: .4byte sub_810D684
- thumb_func_end ReshowPCMenuAfterHallOfFamePC
-
- thumb_func_start sub_810D684
-sub_810D684: @ 810D684
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _0810D6A0 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0810D69C
- adds r0, r2, 0
- bl DestroyTask
-_0810D69C:
- pop {r0}
- bx r0
- .align 2, 0
-_0810D6A0: .4byte gPaletteFade
- thumb_func_end sub_810D684
-
- thumb_func_start sub_810D6A4
-sub_810D6A4: @ 810D6A4
- push {lr}
- ldr r0, _0810D6B4 @ =sub_8145D88
- bl SetMainCallback2
- bl ScriptContext2_Enable
- pop {r0}
- bx r0
- .align 2, 0
-_0810D6B4: .4byte sub_8145D88
- thumb_func_end sub_810D6A4
-
- thumb_func_start sub_810D6B8
-sub_810D6B8: @ 810D6B8
- push {lr}
- ldr r0, _0810D6D0 @ =gMain
- ldr r1, _0810D6D4 @ =c2_exit_to_overworld_2_switch
- str r1, [r0, 0x8]
- ldr r0, _0810D6D8 @ =Cb2_ViewWallClock
- bl SetMainCallback2
- bl ScriptContext2_Enable
- pop {r0}
- bx r0
- .align 2, 0
-_0810D6D0: .4byte gMain
-_0810D6D4: .4byte c2_exit_to_overworld_2_switch
-_0810D6D8: .4byte Cb2_ViewWallClock
- thumb_func_end sub_810D6B8
-
- thumb_func_start ResetCyclingRoadChallengeData
-ResetCyclingRoadChallengeData: @ 810D6DC
- ldr r0, _0810D6F0 @ =gUnknown_02039250
- movs r1, 0
- strb r1, [r0]
- ldr r0, _0810D6F4 @ =gUnknown_02039251
- strb r1, [r0]
- ldr r1, _0810D6F8 @ =gUnknown_02039254
- movs r0, 0
- str r0, [r1]
- bx lr
- .align 2, 0
-_0810D6F0: .4byte gUnknown_02039250
-_0810D6F4: .4byte gUnknown_02039251
-_0810D6F8: .4byte gUnknown_02039254
- thumb_func_end ResetCyclingRoadChallengeData
-
- thumb_func_start BeginCyclingRoadChallenge
-BeginCyclingRoadChallenge: @ 810D6FC
- ldr r1, _0810D714 @ =gUnknown_02039250
- movs r0, 0x1
- strb r0, [r1]
- ldr r1, _0810D718 @ =gUnknown_02039251
- movs r0, 0
- strb r0, [r1]
- ldr r1, _0810D71C @ =gUnknown_02039254
- ldr r0, _0810D720 @ =gMain
- ldr r0, [r0, 0x20]
- str r0, [r1]
- bx lr
- .align 2, 0
-_0810D714: .4byte gUnknown_02039250
-_0810D718: .4byte gUnknown_02039251
-_0810D71C: .4byte gUnknown_02039254
-_0810D720: .4byte gMain
- thumb_func_end BeginCyclingRoadChallenge
-
- thumb_func_start GetPlayerAvatarBike
-GetPlayerAvatarBike: @ 810D724
- push {lr}
- movs r0, 0x4
- bl TestPlayerAvatarFlags
- lsls r0, 24
- cmp r0, 0
- beq _0810D736
- movs r0, 0x1
- b _0810D748
-_0810D736:
- movs r0, 0x2
- bl TestPlayerAvatarFlags
- lsls r0, 24
- cmp r0, 0
- bne _0810D746
- movs r0, 0
- b _0810D748
-_0810D746:
- movs r0, 0x2
-_0810D748:
- pop {r1}
- bx r1
- thumb_func_end GetPlayerAvatarBike
-
- thumb_func_start DetermineCyclingRoadResults
-DetermineCyclingRoadResults: @ 810D74C
- push {r4-r7,lr}
- adds r7, r0, 0
- lsls r1, 24
- lsrs r6, r1, 24
- cmp r6, 0x63
- bhi _0810D778
- ldr r4, _0810D770 @ =gStringVar1
- adds r0, r4, 0
- adds r1, r6, 0
- movs r2, 0
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- ldr r1, _0810D774 @ =gOtherText_Times
- adds r0, r4, 0
- bl StringAppend
- b _0810D780
- .align 2, 0
-_0810D770: .4byte gStringVar1
-_0810D774: .4byte gOtherText_Times
-_0810D778:
- ldr r0, _0810D7CC @ =gStringVar1
- ldr r1, _0810D7D0 @ =gOtherText_99Times
- bl StringCopy
-_0810D780:
- ldr r0, _0810D7D4 @ =0x00000e0f
- cmp r7, r0
- bhi _0810D7E0
- ldr r4, _0810D7D8 @ =gStringVar2
- adds r0, r7, 0
- movs r1, 0x3C
- bl __udivsi3
- adds r1, r0, 0
- adds r0, r4, 0
- movs r2, 0x1
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- movs r0, 0xAD
- strb r0, [r4, 0x2]
- adds r5, r4, 0x3
- adds r0, r7, 0
- movs r1, 0x3C
- bl __umodsi3
- movs r1, 0x64
- muls r0, r1
- movs r1, 0x3C
- bl __udivsi3
- adds r1, r0, 0
- adds r0, r5, 0
- movs r2, 0x2
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- ldr r1, _0810D7DC @ =gOtherText_Seconds
- adds r0, r4, 0
- bl StringAppend
- b _0810D7E8
- .align 2, 0
-_0810D7CC: .4byte gStringVar1
-_0810D7D0: .4byte gOtherText_99Times
-_0810D7D4: .4byte 0x00000e0f
-_0810D7D8: .4byte gStringVar2
-_0810D7DC: .4byte gOtherText_Seconds
-_0810D7E0:
- ldr r0, _0810D7F4 @ =gStringVar2
- ldr r1, _0810D7F8 @ =gOtherText_1Minute
- bl StringCopy
-_0810D7E8:
- movs r4, 0
- cmp r6, 0
- bne _0810D7FC
- movs r4, 0x5
- b _0810D81A
- .align 2, 0
-_0810D7F4: .4byte gStringVar2
-_0810D7F8: .4byte gOtherText_1Minute
-_0810D7FC:
- cmp r6, 0x3
- bhi _0810D804
- movs r4, 0x4
- b _0810D81A
-_0810D804:
- cmp r6, 0x9
- bhi _0810D80C
- movs r4, 0x3
- b _0810D81A
-_0810D80C:
- cmp r6, 0x13
- bhi _0810D814
- movs r4, 0x2
- b _0810D81A
-_0810D814:
- cmp r6, 0x63
- bhi _0810D81A
- movs r4, 0x1
-_0810D81A:
- adds r0, r7, 0
- movs r1, 0x3C
- bl __udivsi3
- cmp r0, 0xA
- bhi _0810D82A
- adds r0, r4, 0x5
- b _0810D848
-_0810D82A:
- cmp r0, 0xF
- bhi _0810D832
- adds r0, r4, 0x4
- b _0810D848
-_0810D832:
- cmp r0, 0x14
- bhi _0810D83A
- adds r0, r4, 0x3
- b _0810D848
-_0810D83A:
- cmp r0, 0x28
- bhi _0810D842
- adds r0, r4, 0x2
- b _0810D848
-_0810D842:
- cmp r0, 0x3B
- bhi _0810D84C
- adds r0, r4, 0x1
-_0810D848:
- lsls r0, 24
- lsrs r4, r0, 24
-_0810D84C:
- ldr r0, _0810D858 @ =gScriptResult
- strh r4, [r0]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0810D858: .4byte gScriptResult
- thumb_func_end DetermineCyclingRoadResults
-
- thumb_func_start FinishCyclingRoadChallenge
-FinishCyclingRoadChallenge: @ 810D85C
- push {r4,r5,lr}
- ldr r0, _0810D880 @ =gMain
- ldr r1, _0810D884 @ =gUnknown_02039254
- ldr r4, [r0, 0x20]
- ldr r0, [r1]
- subs r4, r0
- ldr r5, _0810D888 @ =gUnknown_02039251
- ldrb r1, [r5]
- adds r0, r4, 0
- bl DetermineCyclingRoadResults
- ldrb r1, [r5]
- adds r0, r4, 0
- bl RecordCyclingRoadResults
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810D880: .4byte gMain
-_0810D884: .4byte gUnknown_02039254
-_0810D888: .4byte gUnknown_02039251
- thumb_func_end FinishCyclingRoadChallenge
-
- thumb_func_start RecordCyclingRoadResults
-RecordCyclingRoadResults: @ 810D88C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r5, r0, 0
- lsls r1, 24
- lsrs r1, 24
- mov r8, r1
- ldr r6, _0810D8E0 @ =0x00004028
- adds r0, r6, 0
- bl VarGet
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldr r7, _0810D8E4 @ =0x00004029
- adds r0, r7, 0
- bl VarGet
- lsls r0, 16
- adds r4, r0
- cmp r4, r5
- bhi _0810D8BC
- cmp r4, 0
- bne _0810D8D6
-_0810D8BC:
- lsls r1, r5, 16
- lsrs r1, 16
- adds r0, r6, 0
- bl VarSet
- lsrs r1, r5, 16
- adds r0, r7, 0
- bl VarSet
- ldr r0, _0810D8E8 @ =0x00004027
- mov r1, r8
- bl VarSet
-_0810D8D6:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0810D8E0: .4byte 0x00004028
-_0810D8E4: .4byte 0x00004029
-_0810D8E8: .4byte 0x00004027
- thumb_func_end RecordCyclingRoadResults
-
- thumb_func_start GetRecordedCyclingRoadResults
-GetRecordedCyclingRoadResults: @ 810D8EC
- push {r4,lr}
- ldr r0, _0810D920 @ =0x00004028
- bl VarGet
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldr r0, _0810D924 @ =0x00004029
- bl VarGet
- lsls r0, 16
- adds r4, r0
- cmp r4, 0
- beq _0810D92C
- ldr r0, _0810D928 @ =0x00004027
- bl VarGet
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl DetermineCyclingRoadResults
- movs r0, 0x1
- b _0810D92E
- .align 2, 0
-_0810D920: .4byte 0x00004028
-_0810D924: .4byte 0x00004029
-_0810D928: .4byte 0x00004027
-_0810D92C:
- movs r0, 0
-_0810D92E:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end GetRecordedCyclingRoadResults
-
- thumb_func_start UpdateCyclingRoadState
-UpdateCyclingRoadState: @ 810D934
- push {r4,lr}
- ldr r0, _0810D974 @ =gUnknown_020297F0
- ldrh r1, [r0]
- ldr r0, _0810D978 @ =0x00000c1d
- cmp r1, r0
- beq _0810D96C
- ldr r4, _0810D97C @ =0x000040a9
- adds r0, r4, 0
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x2
- beq _0810D95E
- adds r0, r4, 0
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x3
- bne _0810D96C
-_0810D95E:
- adds r0, r4, 0
- movs r1, 0
- bl VarSet
- movs r0, 0
- bl sav1_set_battle_music_maybe
-_0810D96C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810D974: .4byte gUnknown_020297F0
-_0810D978: .4byte 0x00000c1d
-_0810D97C: .4byte 0x000040a9
- thumb_func_end UpdateCyclingRoadState
-
- thumb_func_start SetSSTidalFlag
-SetSSTidalFlag: @ 810D980
- push {lr}
- ldr r0, _0810D998 @ =0x0000082d
- bl FlagSet
- ldr r0, _0810D99C @ =0x0000404a
- bl GetVarPointer
- movs r1, 0
- strh r1, [r0]
- pop {r0}
- bx r0
- .align 2, 0
-_0810D998: .4byte 0x0000082d
-_0810D99C: .4byte 0x0000404a
- thumb_func_end SetSSTidalFlag
-
- thumb_func_start ResetSSTidalFlag
-ResetSSTidalFlag: @ 810D9A0
- push {lr}
- ldr r0, _0810D9AC @ =0x0000082d
- bl FlagReset
- pop {r0}
- bx r0
- .align 2, 0
-_0810D9AC: .4byte 0x0000082d
- thumb_func_end ResetSSTidalFlag
-
- thumb_func_start sub_810D9B0
-sub_810D9B0: @ 810D9B0
- push {r4,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r0, _0810D9DC @ =0x0000082d
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _0810D9D6
- ldr r0, _0810D9E0 @ =0x0000404a
- bl GetVarPointer
- ldrh r1, [r0]
- adds r1, r4, r1
- strh r1, [r0]
- lsls r1, 16
- lsrs r1, 16
- cmp r1, 0xCC
- bhi _0810D9E4
-_0810D9D6:
- movs r0, 0
- b _0810D9E6
- .align 2, 0
-_0810D9DC: .4byte 0x0000082d
-_0810D9E0: .4byte 0x0000404a
-_0810D9E4:
- movs r0, 0x1
-_0810D9E6:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_810D9B0
-
- thumb_func_start sub_810D9EC
-sub_810D9EC: @ 810D9EC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- mov r8, r0
- adds r5, r1, 0
- adds r6, r2, 0
- adds r7, r3, 0
- ldr r0, _0810DA1C @ =0x0000404a
- bl GetVarPointer
- adds r4, r0, 0
- ldr r0, _0810DA20 @ =0x000040b4
- bl GetVarPointer
- ldrh r0, [r0]
- subs r0, 0x1
- cmp r0, 0x9
- bhi _0810DAB2
- lsls r0, 2
- ldr r1, _0810DA24 @ =_0810DA28
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0810DA1C: .4byte 0x0000404a
-_0810DA20: .4byte 0x000040b4
-_0810DA24: .4byte _0810DA28
- .align 2, 0
-_0810DA28:
- .4byte _0810DA50
- .4byte _0810DA60
- .4byte _0810DA54
- .4byte _0810DA58
- .4byte _0810DA58
- .4byte _0810DA5C
- .4byte _0810DA88
- .4byte _0810DA50
- .4byte _0810DA54
- .4byte _0810DA5C
-_0810DA50:
- movs r0, 0x1
- b _0810DABE
-_0810DA54:
- movs r0, 0x4
- b _0810DABE
-_0810DA58:
- movs r0, 0x2
- b _0810DABE
-_0810DA5C:
- movs r0, 0x3
- b _0810DABE
-_0810DA60:
- ldrh r0, [r4]
- cmp r0, 0x3B
- bhi _0810DA70
- movs r0, 0x31
- strb r0, [r5]
- ldrh r0, [r4]
- adds r0, 0x13
- b _0810DAB0
-_0810DA70:
- cmp r0, 0x8B
- bhi _0810DA7E
- movs r0, 0x30
- strb r0, [r5]
- ldrh r0, [r4]
- subs r0, 0x3C
- b _0810DAB0
-_0810DA7E:
- movs r0, 0x2F
- strb r0, [r5]
- ldrh r0, [r4]
- subs r0, 0x8C
- b _0810DAB0
-_0810DA88:
- ldrh r0, [r4]
- cmp r0, 0x41
- bhi _0810DA98
- movs r0, 0x2F
- strb r0, [r5]
- ldrh r1, [r4]
- movs r0, 0x41
- b _0810DAAE
-_0810DA98:
- cmp r0, 0x91
- bhi _0810DAA6
- movs r0, 0x30
- strb r0, [r5]
- ldrh r1, [r4]
- movs r0, 0x91
- b _0810DAAE
-_0810DAA6:
- movs r0, 0x31
- strb r0, [r5]
- ldrh r1, [r4]
- movs r0, 0xE0
-_0810DAAE:
- subs r0, r1
-_0810DAB0:
- strh r0, [r6]
-_0810DAB2:
- movs r0, 0
- mov r1, r8
- strb r0, [r1]
- movs r0, 0x14
- strh r0, [r7]
- movs r0, 0
-_0810DABE:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_810D9EC
-
- thumb_func_start GetLinkPartnerNames
-GetLinkPartnerNames: @ 810DAC8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r6, 0
- bl sub_8008218
- lsls r0, 24
- lsrs r7, r0, 24
- bl sub_800820C
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0
- cmp r4, r5
- bcs _0810DB12
- ldr r0, _0810DB20 @ =gUnknown_083D1464
- mov r8, r0
-_0810DAEA:
- cmp r7, r4
- beq _0810DB08
- lsls r0, r6, 2
- add r0, r8
- ldr r0, [r0]
- lsls r1, r4, 3
- subs r1, r4
- lsls r1, 2
- ldr r2, _0810DB24 @ =gLinkPlayers + 0x8
- adds r1, r2
- bl StringCopy
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
-_0810DB08:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, r5
- bcc _0810DAEA
-_0810DB12:
- adds r0, r5, 0
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0810DB20: .4byte gUnknown_083D1464
-_0810DB24: .4byte gLinkPlayers + 0x8
- thumb_func_end GetLinkPartnerNames
-
- thumb_func_start sub_810DB28
-sub_810DB28: @ 810DB28
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- movs r7, 0
- movs r0, 0
- mov r9, r0
- mov r8, r0
- ldr r1, _0810DB74 @ =gUnknown_083F8358
- add r0, sp, 0x8
- movs r2, 0x4
- bl memcpy
- add r4, sp, 0xC
- ldr r1, _0810DB78 @ =gUnknown_083F835C
- adds r0, r4, 0
- movs r2, 0x8
- bl memcpy
- bl sub_8008218
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- bl player_get_direction_lower_nybble
- lsls r0, 24
- lsrs r0, 24
- adds r1, r0, 0
- cmp r0, 0x2
- beq _0810DB94
- cmp r0, 0x2
- bgt _0810DB7C
- cmp r0, 0x1
- beq _0810DBC0
- b _0810DBD2
- .align 2, 0
-_0810DB74: .4byte gUnknown_083F8358
-_0810DB78: .4byte gUnknown_083F835C
-_0810DB7C:
- cmp r1, 0x3
- beq _0810DB86
- cmp r1, 0x4
- beq _0810DBA8
- b _0810DBD2
-_0810DB86:
- movs r7, 0x2
- ldr r1, _0810DB90 @ =gSaveBlock1
- ldrh r0, [r1]
- subs r0, 0x1
- b _0810DBAE
- .align 2, 0
-_0810DB90: .4byte gSaveBlock1
-_0810DB94:
- movs r7, 0x1
- ldr r0, _0810DBA4 @ =gSaveBlock1
- ldrh r1, [r0]
- mov r9, r1
- ldrh r0, [r0, 0x2]
- subs r0, 0x1
- b _0810DBCC
- .align 2, 0
-_0810DBA4: .4byte gSaveBlock1
-_0810DBA8:
- ldr r1, _0810DBBC @ =gSaveBlock1
- ldrh r0, [r1]
- adds r0, 0x1
-_0810DBAE:
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
- ldrh r1, [r1, 0x2]
- mov r8, r1
- b _0810DBD2
- .align 2, 0
-_0810DBBC: .4byte gSaveBlock1
-_0810DBC0:
- movs r7, 0x3
- ldr r0, _0810DBD8 @ =gSaveBlock1
- ldrh r4, [r0]
- mov r9, r4
- ldrh r0, [r0, 0x2]
- adds r0, 0x1
-_0810DBCC:
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
-_0810DBD2:
- movs r6, 0
- b _0810DC5C
- .align 2, 0
-_0810DBD8: .4byte gSaveBlock1
-_0810DBDC:
- cmp r10, r6
- beq _0810DC56
- ldr r1, _0810DC74 @ =gLinkPlayers
- lsls r0, r6, 3
- subs r0, r6
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x13]
- movs r0, 0
- bl sub_805983C
- lsls r0, 24
- lsrs r0, 24
- mov r1, sp
- adds r1, r7
- adds r1, 0x8
- ldrb r1, [r1]
- movs r2, 0xF0
- subs r2, r6
- lsls r2, 24
- lsrs r2, 24
- lsls r5, r7, 1
- mov r3, sp
- adds r3, r5
- adds r3, 0xC
- ldrb r3, [r3]
- lsls r3, 24
- asrs r3, 24
- mov r12, r3
- mov r4, r9
- lsls r3, r4, 16
- asrs r3, 16
- add r3, r12
- adds r3, 0x7
- lsls r3, 16
- asrs r3, 16
- mov r4, sp
- adds r4, 0xD
- adds r4, r5
- ldrb r4, [r4]
- lsls r4, 24
- asrs r4, 24
- mov r12, r4
- mov r5, r8
- lsls r4, r5, 16
- asrs r4, 16
- add r4, r12
- adds r4, 0x7
- lsls r4, 16
- asrs r4, 16
- str r4, [sp]
- movs r4, 0
- str r4, [sp, 0x4]
- bl SpawnSpecialFieldObjectParametrized
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0x4
- bne _0810DC56
- movs r7, 0
-_0810DC56:
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
-_0810DC5C:
- ldr r0, _0810DC78 @ =gSpecialVar_0x8004
- ldrh r0, [r0]
- cmp r6, r0
- bcc _0810DBDC
- add sp, 0x14
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0810DC74: .4byte gLinkPlayers
-_0810DC78: .4byte gSpecialVar_0x8004
- thumb_func_end sub_810DB28
-
- thumb_func_start sub_810DC7C
-sub_810DC7C: @ 810DC7C
- push {r4,r5,lr}
- movs r4, 0
- ldr r5, _0810DC9C @ =gUnknown_083F8364
-_0810DC82:
- ldr r0, _0810DCA0 @ =gSpecialVar_0x8004
- ldrh r0, [r0]
- cmp r4, r0
- bne _0810DCA8
- lsls r1, r4, 2
- adds r1, r5
- ldrb r0, [r1]
- ldrb r1, [r1, 0x1]
- ldr r2, _0810DCA4 @ =0x00000206
- bl MapGridSetMetatileIdAt
- b _0810DCB6
- .align 2, 0
-_0810DC9C: .4byte gUnknown_083F8364
-_0810DCA0: .4byte gSpecialVar_0x8004
-_0810DCA4: .4byte 0x00000206
-_0810DCA8:
- lsls r1, r4, 2
- adds r1, r5
- ldrb r0, [r1]
- ldrb r1, [r1, 0x1]
- ldr r2, _0810DCC8 @ =0x00000205
- bl MapGridSetMetatileIdAt
-_0810DCB6:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x2
- bls _0810DC82
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810DCC8: .4byte 0x00000205
- thumb_func_end sub_810DC7C
-
- thumb_func_start sub_810DCCC
-sub_810DCCC: @ 810DCCC
- push {r4-r6,lr}
- movs r5, 0xC
-_0810DCD0:
- movs r4, 0x7
- adds r6, r5, 0x1
-_0810DCD4:
- adds r0, r4, 0
- adds r1, r5, 0
- bl MapGridGetMetatileIdAt
- ldr r1, _0810DCF0 @ =0xfffffde6
- adds r0, r1
- cmp r0, 0x37
- bls _0810DCE6
- b _0810DEC0
-_0810DCE6:
- lsls r0, 2
- ldr r1, _0810DCF4 @ =_0810DCF8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0810DCF0: .4byte 0xfffffde6
-_0810DCF4: .4byte _0810DCF8
- .align 2, 0
-_0810DCF8:
- .4byte _0810DE7E
- .4byte _0810DEC0
- .4byte _0810DEC0
- .4byte _0810DEC0
- .4byte _0810DEC0
- .4byte _0810DEC0
- .4byte _0810DDD8
- .4byte _0810DDDE
- .4byte _0810DE18
- .4byte _0810DE20
- .4byte _0810DEC0
- .4byte _0810DEC0
- .4byte _0810DEC0
- .4byte _0810DEC0
- .4byte _0810DDE8
- .4byte _0810DDEE
- .4byte _0810DE28
- .4byte _0810DE30
- .4byte _0810DEC0
- .4byte _0810DEC0
- .4byte _0810DEC0
- .4byte _0810DEC0
- .4byte _0810DDF8
- .4byte _0810DDFE
- .4byte _0810DE38
- .4byte _0810DE40
- .4byte _0810DEC0
- .4byte _0810DEC0
- .4byte _0810DEC0
- .4byte _0810DEC0
- .4byte _0810DE08
- .4byte _0810DE10
- .4byte _0810DE48
- .4byte _0810DE50
- .4byte _0810DEC0
- .4byte _0810DEC0
- .4byte _0810DEC0
- .4byte _0810DEC0
- .4byte _0810DE58
- .4byte _0810DE68
- .4byte _0810DE78
- .4byte _0810DEA0
- .4byte _0810DEC0
- .4byte _0810DEC0
- .4byte _0810DEC0
- .4byte _0810DEC0
- .4byte _0810DE60
- .4byte _0810DE70
- .4byte _0810DEC0
- .4byte _0810DEC0
- .4byte _0810DEC0
- .4byte _0810DEC0
- .4byte _0810DEC0
- .4byte _0810DEC0
- .4byte _0810DEB6
- .4byte _0810DEA8
-_0810DDD8:
- movs r2, 0x8C
- lsls r2, 2
- b _0810DEAC
-_0810DDDE:
- ldr r2, _0810DDE4 @ =0x00000231
- b _0810DEAC
- .align 2, 0
-_0810DDE4: .4byte 0x00000231
-_0810DDE8:
- movs r2, 0x8E
- lsls r2, 2
- b _0810DEAC
-_0810DDEE:
- ldr r2, _0810DDF4 @ =0x00000239
- b _0810DEAC
- .align 2, 0
-_0810DDF4: .4byte 0x00000239
-_0810DDF8:
- movs r2, 0x88
- lsls r2, 2
- b _0810DEAC
-_0810DDFE:
- ldr r2, _0810DE04 @ =0x00000221
- b _0810DEAC
- .align 2, 0
-_0810DE04: .4byte 0x00000221
-_0810DE08:
- ldr r2, _0810DE0C @ =0x00000e28
- b _0810DEAC
- .align 2, 0
-_0810DE0C: .4byte 0x00000e28
-_0810DE10:
- ldr r2, _0810DE14 @ =0x00000e29
- b _0810DEAC
- .align 2, 0
-_0810DE14: .4byte 0x00000e29
-_0810DE18:
- ldr r2, _0810DE1C @ =0x00000232
- b _0810DEAC
- .align 2, 0
-_0810DE1C: .4byte 0x00000232
-_0810DE20:
- ldr r2, _0810DE24 @ =0x00000233
- b _0810DEAC
- .align 2, 0
-_0810DE24: .4byte 0x00000233
-_0810DE28:
- ldr r2, _0810DE2C @ =0x0000023a
- b _0810DEAC
- .align 2, 0
-_0810DE2C: .4byte 0x0000023a
-_0810DE30:
- ldr r2, _0810DE34 @ =0x0000023b
- b _0810DEAC
- .align 2, 0
-_0810DE34: .4byte 0x0000023b
-_0810DE38:
- ldr r2, _0810DE3C @ =0x00000222
- b _0810DEAC
- .align 2, 0
-_0810DE3C: .4byte 0x00000222
-_0810DE40:
- ldr r2, _0810DE44 @ =0x00000223
- b _0810DEAC
- .align 2, 0
-_0810DE44: .4byte 0x00000223
-_0810DE48:
- ldr r2, _0810DE4C @ =0x00000e2a
- b _0810DEAC
- .align 2, 0
-_0810DE4C: .4byte 0x00000e2a
-_0810DE50:
- ldr r2, _0810DE54 @ =0x00000e2b
- b _0810DEAC
- .align 2, 0
-_0810DE54: .4byte 0x00000e2b
-_0810DE58:
- ldr r2, _0810DE5C @ =0x00000e42
- b _0810DEAC
- .align 2, 0
-_0810DE5C: .4byte 0x00000e42
-_0810DE60:
- ldr r2, _0810DE64 @ =0x0000021a
- b _0810DEAC
- .align 2, 0
-_0810DE64: .4byte 0x0000021a
-_0810DE68:
- ldr r2, _0810DE6C @ =0x00000e43
- b _0810DEAC
- .align 2, 0
-_0810DE6C: .4byte 0x00000e43
-_0810DE70:
- ldr r2, _0810DE74 @ =0x0000021a
- b _0810DEAC
- .align 2, 0
-_0810DE74: .4byte 0x0000021a
-_0810DE78:
- movs r2, 0xE4
- lsls r2, 4
- b _0810DEAC
-_0810DE7E:
- subs r1, r5, 0x1
- adds r0, r4, 0
- bl MapGridGetMetatileIdAt
- movs r1, 0x90
- lsls r1, 2
- cmp r0, r1
- bne _0810DE98
- ldr r2, _0810DE94 @ =0x00000e48
- b _0810DEAC
- .align 2, 0
-_0810DE94: .4byte 0x00000e48
-_0810DE98:
- ldr r2, _0810DE9C @ =0x00000e49
- b _0810DEAC
- .align 2, 0
-_0810DE9C: .4byte 0x00000e49
-_0810DEA0:
- ldr r2, _0810DEA4 @ =0x00000e41
- b _0810DEAC
- .align 2, 0
-_0810DEA4: .4byte 0x00000e41
-_0810DEA8:
- movs r2, 0xE5
- lsls r2, 4
-_0810DEAC:
- adds r0, r4, 0
- adds r1, r5, 0
- bl MapGridSetMetatileIdAt
- b _0810DEC0
-_0810DEB6:
- ldr r2, _0810DED8 @ =0x00000251
- adds r0, r4, 0
- adds r1, r5, 0
- bl MapGridSetMetatileIdAt
-_0810DEC0:
- adds r4, 0x1
- cmp r4, 0xF
- bgt _0810DEC8
- b _0810DCD4
-_0810DEC8:
- adds r5, r6, 0
- cmp r5, 0x17
- bgt _0810DED0
- b _0810DCD0
-_0810DED0:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0810DED8: .4byte 0x00000251
- thumb_func_end sub_810DCCC
-
- thumb_func_start sub_810DEDC
-sub_810DEDC: @ 810DEDC
- push {r4-r6,lr}
- ldr r4, _0810DF18 @ =gUnknown_083F8364
- movs r5, 0x2
-_0810DEE2:
- ldrb r0, [r4]
- ldrb r1, [r4, 0x1]
- ldr r2, _0810DF1C @ =0x00000206
- bl MapGridSetMetatileIdAt
- adds r4, 0x4
- subs r5, 0x1
- cmp r5, 0
- bge _0810DEE2
- movs r5, 0xC
-_0810DEF6:
- movs r4, 0x7
- adds r6, r5, 0x1
-_0810DEFA:
- adds r0, r4, 0
- adds r1, r5, 0
- bl MapGridGetMetatileIdAt
- ldr r1, _0810DF20 @ =0xfffffde0
- adds r0, r1
- cmp r0, 0x30
- bls _0810DF0C
- b _0810E056
-_0810DF0C:
- lsls r0, 2
- ldr r1, _0810DF24 @ =_0810DF28
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0810DF18: .4byte gUnknown_083F8364
-_0810DF1C: .4byte 0x00000206
-_0810DF20: .4byte 0xfffffde0
-_0810DF24: .4byte _0810DF28
- .align 2, 0
-_0810DF28:
- .4byte _0810DFEC
- .4byte _0810DFF2
- .4byte _0810E00C
- .4byte _0810E014
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810DFFC
- .4byte _0810E002
- .4byte _0810E01C
- .4byte _0810E024
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E02C
- .4byte _0810E034
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E03C
- .4byte _0810E03C
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E04C
-_0810DFEC:
- movs r2, 0x8C
- lsls r2, 2
- b _0810E03E
-_0810DFF2:
- ldr r2, _0810DFF8 @ =0x00000231
- b _0810E03E
- .align 2, 0
-_0810DFF8: .4byte 0x00000231
-_0810DFFC:
- movs r2, 0x8E
- lsls r2, 2
- b _0810E03E
-_0810E002:
- ldr r2, _0810E008 @ =0x00000239
- b _0810E03E
- .align 2, 0
-_0810E008: .4byte 0x00000239
-_0810E00C:
- ldr r2, _0810E010 @ =0x00000232
- b _0810E03E
- .align 2, 0
-_0810E010: .4byte 0x00000232
-_0810E014:
- ldr r2, _0810E018 @ =0x00000233
- b _0810E03E
- .align 2, 0
-_0810E018: .4byte 0x00000233
-_0810E01C:
- ldr r2, _0810E020 @ =0x0000023a
- b _0810E03E
- .align 2, 0
-_0810E020: .4byte 0x0000023a
-_0810E024:
- ldr r2, _0810E028 @ =0x0000023b
- b _0810E03E
- .align 2, 0
-_0810E028: .4byte 0x0000023b
-_0810E02C:
- ldr r2, _0810E030 @ =0x00000e42
- b _0810E03E
- .align 2, 0
-_0810E030: .4byte 0x00000e42
-_0810E034:
- ldr r2, _0810E038 @ =0x00000e43
- b _0810E03E
- .align 2, 0
-_0810E038: .4byte 0x00000e43
-_0810E03C:
- ldr r2, _0810E048 @ =0x0000021a
-_0810E03E:
- adds r0, r4, 0
- adds r1, r5, 0
- bl MapGridSetMetatileIdAt
- b _0810E056
- .align 2, 0
-_0810E048: .4byte 0x0000021a
-_0810E04C:
- ldr r2, _0810E06C @ =0x00000251
- adds r0, r4, 0
- adds r1, r5, 0
- bl MapGridSetMetatileIdAt
-_0810E056:
- adds r4, 0x1
- cmp r4, 0xF
- bgt _0810E05E
- b _0810DEFA
-_0810E05E:
- adds r5, r6, 0
- cmp r5, 0x17
- bgt _0810E066
- b _0810DEF6
-_0810E066:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0810E06C: .4byte 0x00000251
- thumb_func_end sub_810DEDC
-
- thumb_func_start sub_810E070
-sub_810E070: @ 810E070
- push {lr}
- ldr r0, _0810E090 @ =gUnknown_02039258
- movs r1, 0
- strb r1, [r0]
- ldr r0, _0810E094 @ =gUnknown_02039259
- strb r1, [r0]
- movs r0, 0x2C
- bl PlaySE
- ldr r0, _0810E098 @ =sub_810E09C
- movs r1, 0x8
- bl CreateTask
- pop {r0}
- bx r0
- .align 2, 0
-_0810E090: .4byte gUnknown_02039258
-_0810E094: .4byte gUnknown_02039259
-_0810E098: .4byte sub_810E09C
- thumb_func_end sub_810E070
-
- thumb_func_start sub_810E09C
-sub_810E09C: @ 810E09C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, _0810E0E4 @ =gUnknown_083F8370
- ldr r5, _0810E0E8 @ =gUnknown_02039259
- ldrb r1, [r5]
- adds r0, r1, r0
- ldr r4, _0810E0EC @ =gUnknown_02039258
- ldrb r2, [r4]
- ldrb r0, [r0]
- cmp r0, r2
- bne _0810E0F8
- ldr r0, _0810E0F0 @ =gSpecialVar_0x8004
- ldrb r0, [r0]
- ldr r2, _0810E0F4 @ =gUnknown_083F8376
- lsls r1, 1
- adds r1, r2
- ldrh r1, [r1]
- bl sub_810E104
- movs r0, 0
- strb r0, [r4]
- ldrb r0, [r5]
- adds r0, 0x1
- strb r0, [r5]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x5
- bne _0810E0FC
- adds r0, r6, 0
- bl DestroyTask
- bl EnableBothScriptContexts
- b _0810E0FC
- .align 2, 0
-_0810E0E4: .4byte gUnknown_083F8370
-_0810E0E8: .4byte gUnknown_02039259
-_0810E0EC: .4byte gUnknown_02039258
-_0810E0F0: .4byte gSpecialVar_0x8004
-_0810E0F4: .4byte gUnknown_083F8376
-_0810E0F8:
- adds r0, r2, 0x1
- strb r0, [r4]
-_0810E0FC:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_810E09C
-
- thumb_func_start sub_810E104
-sub_810E104: @ 810E104
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x10
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 16
- lsrs r2, r1, 16
- movs r7, 0
- subs r0, 0x1
- cmp r0, 0x7
- bhi _0810E1CC
- lsls r0, 2
- ldr r1, _0810E128 @ =_0810E12C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0810E128: .4byte _0810E12C
- .align 2, 0
-_0810E12C:
- .4byte _0810E14C
- .4byte _0810E15E
- .4byte _0810E170
- .4byte _0810E182
- .4byte _0810E190
- .4byte _0810E1A6
- .4byte _0810E1B2
- .4byte _0810E1C0
-_0810E14C:
- movs r7, 0x2
- mov r1, sp
- movs r0, 0x1
- strh r0, [r1]
- movs r0, 0x7
- strh r0, [r1, 0x2]
- add r1, sp, 0x8
- movs r0, 0x68
- b _0810E1A0
-_0810E15E:
- movs r7, 0x2
- mov r1, sp
- movs r0, 0x1
- strh r0, [r1]
- movs r0, 0x7
- strh r0, [r1, 0x2]
- add r1, sp, 0x8
- movs r0, 0x4E
- b _0810E1A0
-_0810E170:
- movs r7, 0x2
- mov r1, sp
- movs r0, 0x1
- strh r0, [r1]
- movs r0, 0x7
- strh r0, [r1, 0x2]
- add r1, sp, 0x8
- movs r0, 0x5B
- b _0810E1A0
-_0810E182:
- movs r7, 0x1
- mov r1, sp
- movs r0, 0x7
- strh r0, [r1]
- add r1, sp, 0x8
- movs r0, 0x27
- b _0810E1CA
-_0810E190:
- movs r7, 0x2
- mov r1, sp
- movs r0, 0x1
- strh r0, [r1]
- movs r0, 0x7
- strh r0, [r1, 0x2]
- add r1, sp, 0x8
- movs r0, 0x34
-_0810E1A0:
- strh r0, [r1]
- strh r0, [r1, 0x2]
- b _0810E1CC
-_0810E1A6:
- movs r7, 0x1
- mov r0, sp
- strh r7, [r0]
- add r1, sp, 0x8
- movs r0, 0x41
- b _0810E1CA
-_0810E1B2:
- movs r7, 0x1
- mov r1, sp
- movs r0, 0x7
- strh r0, [r1]
- add r1, sp, 0x8
- movs r0, 0xD
- b _0810E1CA
-_0810E1C0:
- movs r7, 0x1
- mov r0, sp
- strh r7, [r0]
- add r1, sp, 0x8
- movs r0, 0x1A
-_0810E1CA:
- strh r0, [r1]
-_0810E1CC:
- movs r6, 0
- cmp r6, r7
- bcs _0810E21E
- movs r1, 0xC0
- lsls r1, 4
- adds r0, r1, 0
- adds r1, r2, 0
- orrs r1, r0
- lsls r1, 16
- mov r9, r1
- adds r1, r2, 0
- adds r1, 0x8
- orrs r1, r0
- lsls r1, 16
- mov r8, r1
-_0810E1EA:
- lsls r1, r6, 1
- mov r3, sp
- adds r5, r3, r1
- ldrh r0, [r5]
- adds r0, 0x7
- add r4, sp, 0x8
- adds r4, r1
- ldrh r1, [r4]
- adds r1, 0x7
- mov r3, r9
- lsrs r2, r3, 16
- bl MapGridSetMetatileIdAt
- ldrh r0, [r5]
- adds r0, 0x7
- ldrh r1, [r4]
- adds r1, 0x8
- mov r3, r8
- lsrs r2, r3, 16
- bl MapGridSetMetatileIdAt
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, r7
- bcc _0810E1EA
-_0810E21E:
- bl DrawWholeMapView
- add sp, 0x10
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_810E104
-
- thumb_func_start sub_810E230
-sub_810E230: @ 810E230
- push {lr}
- ldr r0, _0810E244 @ =gSpecialVar_0x8004
- ldrb r0, [r0]
- ldr r1, _0810E248 @ =gUnknown_083F8376
- ldrh r1, [r1, 0x8]
- bl sub_810E104
- pop {r0}
- bx r0
- .align 2, 0
-_0810E244: .4byte gSpecialVar_0x8004
-_0810E248: .4byte gUnknown_083F8376
- thumb_func_end sub_810E230
-
- thumb_func_start ShowFieldMessageStringVar4
-ShowFieldMessageStringVar4: @ 810E24C
- push {lr}
- ldr r0, _0810E258 @ =gStringVar4
- bl ShowFieldMessage
- pop {r0}
- bx r0
- .align 2, 0
-_0810E258: .4byte gStringVar4
- thumb_func_end ShowFieldMessageStringVar4
-
- thumb_func_start StorePlayerCoordsInVars
-StorePlayerCoordsInVars: @ 810E25C
- ldr r1, _0810E26C @ =gSpecialVar_0x8004
- ldr r2, _0810E270 @ =gSaveBlock1
- ldrh r0, [r2]
- strh r0, [r1]
- ldr r1, _0810E274 @ =gSpecialVar_0x8005
- ldrh r0, [r2, 0x2]
- strh r0, [r1]
- bx lr
- .align 2, 0
-_0810E26C: .4byte gSpecialVar_0x8004
-_0810E270: .4byte gSaveBlock1
-_0810E274: .4byte gSpecialVar_0x8005
- thumb_func_end StorePlayerCoordsInVars
-
- thumb_func_start GetPlayerTrainerIdOnesDigit
-GetPlayerTrainerIdOnesDigit: @ 810E278
- push {lr}
- ldr r0, _0810E294 @ =gSaveBlock2
- ldrb r1, [r0, 0xB]
- lsls r1, 8
- ldrb r0, [r0, 0xA]
- orrs r0, r1
- movs r1, 0xA
- bl __umodsi3
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_0810E294: .4byte gSaveBlock2
- thumb_func_end GetPlayerTrainerIdOnesDigit
-
- thumb_func_start GetPlayerBigGuyGirlString
-GetPlayerBigGuyGirlString: @ 810E298
- push {lr}
- ldr r0, _0810E2AC @ =gSaveBlock2
- ldrb r0, [r0, 0x8]
- cmp r0, 0
- bne _0810E2B8
- ldr r0, _0810E2B0 @ =gStringVar1
- ldr r1, _0810E2B4 @ =gOtherText_BigGuy
- bl StringCopy
- b _0810E2C0
- .align 2, 0
-_0810E2AC: .4byte gSaveBlock2
-_0810E2B0: .4byte gStringVar1
-_0810E2B4: .4byte gOtherText_BigGuy
-_0810E2B8:
- ldr r0, _0810E2C4 @ =gStringVar1
- ldr r1, _0810E2C8 @ =gOtherText_BigGirl
- bl StringCopy
-_0810E2C0:
- pop {r0}
- bx r0
- .align 2, 0
-_0810E2C4: .4byte gStringVar1
-_0810E2C8: .4byte gOtherText_BigGirl
- thumb_func_end GetPlayerBigGuyGirlString
-
- thumb_func_start GetRivalSonDaughterString
-GetRivalSonDaughterString: @ 810E2CC
- push {lr}
- ldr r0, _0810E2E0 @ =gSaveBlock2
- ldrb r0, [r0, 0x8]
- cmp r0, 0
- bne _0810E2EC
- ldr r0, _0810E2E4 @ =gStringVar1
- ldr r1, _0810E2E8 @ =gOtherText_Daughter
- bl StringCopy
- b _0810E2F4
- .align 2, 0
-_0810E2E0: .4byte gSaveBlock2
-_0810E2E4: .4byte gStringVar1
-_0810E2E8: .4byte gOtherText_Daughter
-_0810E2EC:
- ldr r0, _0810E2F8 @ =gStringVar1
- ldr r1, _0810E2FC @ =gOtherText_Son
- bl StringCopy
-_0810E2F4:
- pop {r0}
- bx r0
- .align 2, 0
-_0810E2F8: .4byte gStringVar1
-_0810E2FC: .4byte gOtherText_Son
- thumb_func_end GetRivalSonDaughterString
-
- thumb_func_start sub_810E300
-sub_810E300: @ 810E300
- ldr r0, _0810E308 @ =gUnknown_02024D26
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_0810E308: .4byte gUnknown_02024D26
- thumb_func_end sub_810E300
-
- thumb_func_start CableCarWarp
-CableCarWarp: @ 810E30C
- push {lr}
- sub sp, 0x4
- ldr r0, _0810E32C @ =gSpecialVar_0x8004
- ldrh r0, [r0]
- cmp r0, 0
- beq _0810E330
- movs r2, 0x1
- negs r2, r2
- movs r0, 0x4
- str r0, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r3, 0x6
- bl warp1_set
- b _0810E342
- .align 2, 0
-_0810E32C: .4byte gSpecialVar_0x8004
-_0810E330:
- movs r2, 0x1
- negs r2, r2
- movs r0, 0x4
- str r0, [sp]
- movs r0, 0x13
- movs r1, 0x1
- movs r3, 0x6
- bl warp1_set
-_0810E342:
- add sp, 0x4
- pop {r0}
- bx r0
- thumb_func_end CableCarWarp
-
- thumb_func_start SetFlagInVar
-SetFlagInVar: @ 810E348
- push {lr}
- ldr r0, _0810E358 @ =gSpecialVar_0x8004
- ldrh r0, [r0]
- bl FlagSet
- pop {r0}
- bx r0
- .align 2, 0
-_0810E358: .4byte gSpecialVar_0x8004
- thumb_func_end SetFlagInVar
-
- thumb_func_start GetWeekCount
-GetWeekCount: @ 810E35C
- push {lr}
- ldr r0, _0810E37C @ =gLocalTime
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r1, 0x7
- bl __divsi3
- lsls r0, 16
- lsrs r0, 16
- ldr r1, _0810E380 @ =0x0000270f
- cmp r0, r1
- bls _0810E376
- adds r0, r1, 0
-_0810E376:
- pop {r1}
- bx r1
- .align 2, 0
-_0810E37C: .4byte gLocalTime
-_0810E380: .4byte 0x0000270f
- thumb_func_end GetWeekCount
-
- thumb_func_start GetLeadMonFriendshipScore
-GetLeadMonFriendshipScore: @ 810E384
- push {r4,lr}
- bl GetLeadMonIndex
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r1, r0
- ldr r0, _0810E3A8 @ =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0x20
- bl GetMonData
- cmp r0, 0xFF
- bne _0810E3AC
- movs r0, 0x6
- b _0810E3FE
- .align 2, 0
-_0810E3A8: .4byte gPlayerParty
-_0810E3AC:
- adds r0, r4, 0
- movs r1, 0x20
- bl GetMonData
- cmp r0, 0xC7
- bls _0810E3BC
- movs r0, 0x5
- b _0810E3FE
-_0810E3BC:
- adds r0, r4, 0
- movs r1, 0x20
- bl GetMonData
- cmp r0, 0x95
- bls _0810E3CC
- movs r0, 0x4
- b _0810E3FE
-_0810E3CC:
- adds r0, r4, 0
- movs r1, 0x20
- bl GetMonData
- cmp r0, 0x63
- bls _0810E3DC
- movs r0, 0x3
- b _0810E3FE
-_0810E3DC:
- adds r0, r4, 0
- movs r1, 0x20
- bl GetMonData
- cmp r0, 0x31
- bls _0810E3EC
- movs r0, 0x2
- b _0810E3FE
-_0810E3EC:
- adds r0, r4, 0
- movs r1, 0x20
- bl GetMonData
- cmp r0, 0
- bne _0810E3FC
- movs r0, 0
- b _0810E3FE
-_0810E3FC:
- movs r0, 0x1
-_0810E3FE:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end GetLeadMonFriendshipScore
-
- thumb_func_start CB2_FieldShowRegionMap
-CB2_FieldShowRegionMap: @ 810E404
- push {lr}
- ldr r0, _0810E410 @ =c2_exit_to_overworld_1_continue_scripts_restart_music
- bl FieldInitRegionMap
- pop {r0}
- bx r0
- .align 2, 0
-_0810E410: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
- thumb_func_end CB2_FieldShowRegionMap
-
- thumb_func_start FieldShowRegionMap
-FieldShowRegionMap: @ 810E414
- push {lr}
- ldr r0, _0810E420 @ =CB2_FieldShowRegionMap
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_0810E420: .4byte CB2_FieldShowRegionMap
- thumb_func_end FieldShowRegionMap
-
- thumb_func_start DoPCTurnOnEffect
-DoPCTurnOnEffect: @ 810E424
- push {r4,lr}
- ldr r4, _0810E460 @ =Task_PCTurnOnEffect
- adds r0, r4, 0
- bl FuncIsActiveTask
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0810E458
- adds r0, r4, 0
- movs r1, 0x8
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0810E464 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r2, 0
- strh r2, [r1, 0x8]
- strh r0, [r1, 0xA]
- strh r2, [r1, 0xC]
- strh r2, [r1, 0xE]
- strh r2, [r1, 0x10]
-_0810E458:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810E460: .4byte Task_PCTurnOnEffect
-_0810E464: .4byte gTasks
- thumb_func_end DoPCTurnOnEffect
-
- thumb_func_start Task_PCTurnOnEffect
-Task_PCTurnOnEffect: @ 810E468
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _0810E48C @ =gTasks
- adds r1, r0
- movs r2, 0x8
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _0810E486
- adds r0, r1, 0
- bl PCTurnOffEffect_0
-_0810E486:
- pop {r0}
- bx r0
- .align 2, 0
-_0810E48C: .4byte gTasks
- thumb_func_end Task_PCTurnOnEffect
-
- thumb_func_start PCTurnOffEffect_0
-PCTurnOffEffect_0: @ 810E490
- push {r4-r6,lr}
- adds r4, r0, 0
- movs r6, 0
- movs r5, 0
- movs r1, 0xE
- ldrsh r0, [r4, r1]
- cmp r0, 0x6
- bne _0810E4FC
- strh r5, [r4, 0xE]
- bl player_get_direction_lower_nybble
- lsls r0, 24
- lsrs r0, 24
- adds r1, r0, 0
- cmp r0, 0x3
- beq _0810E4C4
- cmp r0, 0x3
- bgt _0810E4BA
- cmp r0, 0x2
- beq _0810E4C0
- b _0810E4CC
-_0810E4BA:
- cmp r1, 0x4
- beq _0810E4C8
- b _0810E4CC
-_0810E4C0:
- movs r6, 0
- b _0810E4CA
-_0810E4C4:
- movs r6, 0xFF
- b _0810E4CA
-_0810E4C8:
- movs r6, 0x1
-_0810E4CA:
- movs r5, 0xFF
-_0810E4CC:
- movs r1, 0x10
- ldrsh r0, [r4, r1]
- lsls r1, r6, 24
- asrs r1, 24
- lsls r2, r5, 24
- asrs r2, 24
- bl PCTurnOffEffect_1
- bl DrawWholeMapView
- ldrh r0, [r4, 0x10]
- movs r1, 0x1
- eors r0, r1
- strh r0, [r4, 0x10]
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5
- bne _0810E4FC
- ldrb r0, [r4, 0xA]
- bl DestroyTask
-_0810E4FC:
- ldrh r0, [r4, 0xE]
- adds r0, 0x1
- strh r0, [r4, 0xE]
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end PCTurnOffEffect_0
-
- thumb_func_start PCTurnOffEffect_1
-PCTurnOffEffect_1: @ 810E508
- push {r4,r5,lr}
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r4, r2, 24
- movs r3, 0
- lsls r0, 16
- cmp r0, 0
- beq _0810E544
- ldr r0, _0810E528 @ =gSpecialVar_0x8004
- ldrh r0, [r0]
- cmp r0, 0
- bne _0810E52C
- movs r3, 0x4
- b _0810E566
- .align 2, 0
-_0810E528: .4byte gSpecialVar_0x8004
-_0810E52C:
- cmp r0, 0x1
- bne _0810E538
- ldr r3, _0810E534 @ =0x0000025a
- b _0810E566
- .align 2, 0
-_0810E534: .4byte 0x0000025a
-_0810E538:
- cmp r0, 0x2
- bne _0810E566
- ldr r3, _0810E540 @ =0x00000259
- b _0810E566
- .align 2, 0
-_0810E540: .4byte 0x00000259
-_0810E544:
- ldr r0, _0810E550 @ =gSpecialVar_0x8004
- ldrh r0, [r0]
- cmp r0, 0
- bne _0810E554
- movs r3, 0x5
- b _0810E566
- .align 2, 0
-_0810E550: .4byte gSpecialVar_0x8004
-_0810E554:
- cmp r0, 0x1
- bne _0810E560
- ldr r3, _0810E55C @ =0x0000027f
- b _0810E566
- .align 2, 0
-_0810E55C: .4byte 0x0000027f
-_0810E560:
- cmp r0, 0x2
- bne _0810E566
- ldr r3, _0810E594 @ =0x0000027e
-_0810E566:
- ldr r2, _0810E598 @ =gSaveBlock1
- movs r5, 0
- ldrsh r0, [r2, r5]
- lsls r1, 24
- asrs r1, 24
- adds r0, r1
- adds r0, 0x7
- movs r5, 0x2
- ldrsh r1, [r2, r5]
- lsls r2, r4, 24
- asrs r2, 24
- adds r1, r2
- adds r1, 0x7
- movs r4, 0xC0
- lsls r4, 4
- adds r2, r4, 0
- orrs r3, r2
- adds r2, r3, 0
- bl MapGridSetMetatileIdAt
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810E594: .4byte 0x0000027e
-_0810E598: .4byte gSaveBlock1
- thumb_func_end PCTurnOffEffect_1
-
- thumb_func_start DoPCTurnOffEffect
-DoPCTurnOffEffect: @ 810E59C
- push {lr}
- bl PCTurnOffEffect
- pop {r0}
- bx r0
- thumb_func_end DoPCTurnOffEffect
-
- thumb_func_start PCTurnOffEffect
-PCTurnOffEffect: @ 810E5A8
- push {r4-r6,lr}
- movs r6, 0
- movs r5, 0
- movs r4, 0
- bl player_get_direction_lower_nybble
- lsls r0, 24
- lsrs r0, 24
- adds r1, r0, 0
- cmp r0, 0x3
- beq _0810E5D2
- cmp r0, 0x3
- bgt _0810E5C8
- cmp r0, 0x2
- beq _0810E5CE
- b _0810E5DA
-_0810E5C8:
- cmp r1, 0x4
- beq _0810E5D6
- b _0810E5DA
-_0810E5CE:
- movs r6, 0
- b _0810E5D8
-_0810E5D2:
- movs r6, 0xFF
- b _0810E5D8
-_0810E5D6:
- movs r6, 0x1
-_0810E5D8:
- movs r5, 0xFF
-_0810E5DA:
- ldr r0, _0810E5E8 @ =gSpecialVar_0x8004
- ldrh r0, [r0]
- cmp r0, 0
- bne _0810E5EC
- movs r4, 0x4
- b _0810E5FE
- .align 2, 0
-_0810E5E8: .4byte gSpecialVar_0x8004
-_0810E5EC:
- cmp r0, 0x1
- bne _0810E5F8
- ldr r4, _0810E5F4 @ =0x0000025a
- b _0810E5FE
- .align 2, 0
-_0810E5F4: .4byte 0x0000025a
-_0810E5F8:
- cmp r0, 0x2
- bne _0810E5FE
- ldr r4, _0810E630 @ =0x00000259
-_0810E5FE:
- ldr r2, _0810E634 @ =gSaveBlock1
- movs r1, 0
- ldrsh r0, [r2, r1]
- lsls r1, r6, 24
- asrs r1, 24
- adds r0, r1
- adds r0, 0x7
- movs r3, 0x2
- ldrsh r1, [r2, r3]
- lsls r2, r5, 24
- asrs r2, 24
- adds r1, r2
- adds r1, 0x7
- movs r3, 0xC0
- lsls r3, 4
- adds r2, r3, 0
- orrs r4, r2
- adds r2, r4, 0
- bl MapGridSetMetatileIdAt
- bl DrawWholeMapView
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0810E630: .4byte 0x00000259
-_0810E634: .4byte gSaveBlock1
- thumb_func_end PCTurnOffEffect
-
- thumb_func_start DoLotteryCornerComputerEffect
-DoLotteryCornerComputerEffect: @ 810E638
- push {r4,lr}
- ldr r4, _0810E674 @ =Task_LotteryCornerComputerEffect
- adds r0, r4, 0
- bl FuncIsActiveTask
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0810E66C
- adds r0, r4, 0
- movs r1, 0x8
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0810E678 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r2, 0
- strh r2, [r1, 0x8]
- strh r0, [r1, 0xA]
- strh r2, [r1, 0xC]
- strh r2, [r1, 0xE]
- strh r2, [r1, 0x10]
-_0810E66C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810E674: .4byte Task_LotteryCornerComputerEffect
-_0810E678: .4byte gTasks
- thumb_func_end DoLotteryCornerComputerEffect
-
- thumb_func_start Task_LotteryCornerComputerEffect
-Task_LotteryCornerComputerEffect: @ 810E67C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _0810E6A0 @ =gTasks
- adds r1, r0
- movs r2, 0x8
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _0810E69A
- adds r0, r1, 0
- bl LotteryCornerComputerEffect
-_0810E69A:
- pop {r0}
- bx r0
- .align 2, 0
-_0810E6A0: .4byte gTasks
- thumb_func_end Task_LotteryCornerComputerEffect
-
- thumb_func_start LotteryCornerComputerEffect
-LotteryCornerComputerEffect: @ 810E6A4
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0xE
- ldrsh r0, [r4, r1]
- cmp r0, 0x6
- bne _0810E712
- movs r0, 0
- strh r0, [r4, 0xE]
- movs r1, 0x10
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _0810E6DC
- ldr r2, _0810E6D4 @ =0x00000e9d
- movs r0, 0x12
- movs r1, 0x8
- bl MapGridSetMetatileIdAt
- ldr r2, _0810E6D8 @ =0x00000ea5
- movs r0, 0x12
- movs r1, 0x9
- bl MapGridSetMetatileIdAt
- b _0810E6F2
- .align 2, 0
-_0810E6D4: .4byte 0x00000e9d
-_0810E6D8: .4byte 0x00000ea5
-_0810E6DC:
- ldr r2, _0810E720 @ =0x00000e58
- movs r0, 0x12
- movs r1, 0x8
- bl MapGridSetMetatileIdAt
- movs r2, 0xE6
- lsls r2, 4
- movs r0, 0x12
- movs r1, 0x9
- bl MapGridSetMetatileIdAt
-_0810E6F2:
- bl DrawWholeMapView
- ldrh r0, [r4, 0x10]
- movs r1, 0x1
- eors r0, r1
- strh r0, [r4, 0x10]
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5
- bne _0810E712
- ldrb r0, [r4, 0xA]
- bl DestroyTask
-_0810E712:
- ldrh r0, [r4, 0xE]
- adds r0, 0x1
- strh r0, [r4, 0xE]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810E720: .4byte 0x00000e58
- thumb_func_end LotteryCornerComputerEffect
-
- thumb_func_start EndLotteryCornerComputerEffect
-EndLotteryCornerComputerEffect: @ 810E724
- push {lr}
- ldr r2, _0810E744 @ =0x00000e9d
- movs r0, 0x12
- movs r1, 0x8
- bl MapGridSetMetatileIdAt
- ldr r2, _0810E748 @ =0x00000ea5
- movs r0, 0x12
- movs r1, 0x9
- bl MapGridSetMetatileIdAt
- bl DrawWholeMapView
- pop {r0}
- bx r0
- .align 2, 0
-_0810E744: .4byte 0x00000e9d
-_0810E748: .4byte 0x00000ea5
- thumb_func_end EndLotteryCornerComputerEffect
-
- thumb_func_start SetDepartmentStoreFloorVar
-SetDepartmentStoreFloorVar: @ 810E74C
- push {lr}
- ldr r0, _0810E768 @ =gSaveBlock1
- ldrb r0, [r0, 0x15]
- subs r0, 0x11
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x5
- bhi _0810E79C
- lsls r0, 2
- ldr r1, _0810E76C @ =_0810E770
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0810E768: .4byte gSaveBlock1
-_0810E76C: .4byte _0810E770
- .align 2, 0
-_0810E770:
- .4byte _0810E79C
- .4byte _0810E788
- .4byte _0810E78C
- .4byte _0810E790
- .4byte _0810E794
- .4byte _0810E798
-_0810E788:
- movs r1, 0x1
- b _0810E79E
-_0810E78C:
- movs r1, 0x2
- b _0810E79E
-_0810E790:
- movs r1, 0x3
- b _0810E79E
-_0810E794:
- movs r1, 0x4
- b _0810E79E
-_0810E798:
- movs r1, 0xF
- b _0810E79E
-_0810E79C:
- movs r1, 0
-_0810E79E:
- ldr r0, _0810E7A8 @ =0x00004043
- bl VarSet
- pop {r0}
- bx r0
- .align 2, 0
-_0810E7A8: .4byte 0x00004043
- thumb_func_end SetDepartmentStoreFloorVar
-
- thumb_func_start ScriptAddElevatorMenuItem
-ScriptAddElevatorMenuItem: @ 810E7AC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 24
- lsrs r7, r1, 24
- lsls r2, 24
- lsrs r2, 24
- mov r12, r2
- lsls r3, 24
- lsrs r3, 24
- mov r8, r3
- ldr r0, _0810E81C @ =gSpecialVar_0x8004
- ldrh r1, [r0]
- adds r2, r0, 0
- ldr r3, _0810E820 @ =gUnknown_03000760
- cmp r1, 0
- bne _0810E7E8
- movs r1, 0
- adds r5, r3, 0
- movs r4, 0x10
-_0810E7D8:
- lsls r0, r1, 2
- adds r0, r5
- strb r4, [r0]
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x13
- bls _0810E7D8
-_0810E7E8:
- ldrh r0, [r2]
- lsls r0, 2
- adds r0, r3
- strb r6, [r0]
- ldrh r0, [r2]
- lsls r0, 2
- adds r0, r3
- strb r7, [r0, 0x1]
- ldrh r0, [r2]
- lsls r0, 2
- adds r0, r3
- mov r1, r12
- strb r1, [r0, 0x2]
- ldrh r0, [r2]
- lsls r0, 2
- adds r0, r3
- mov r1, r8
- strb r1, [r0, 0x3]
- ldrh r0, [r2]
- adds r0, 0x1
- strh r0, [r2]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0810E81C: .4byte gSpecialVar_0x8004
-_0810E820: .4byte gUnknown_03000760
- thumb_func_end ScriptAddElevatorMenuItem
-
- thumb_func_start ScriptShowElevatorMenu
-ScriptShowElevatorMenu: @ 810E824
- push {r4,r5,lr}
- movs r4, 0
- ldr r5, _0810E868 @ =gUnknown_0203925A
- strb r4, [r5]
- ldr r0, _0810E86C @ =gUnknown_0203925B
- strb r4, [r0]
- movs r0, 0x10
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl ScriptAddElevatorMenuItem
- ldr r2, _0810E870 @ =gUnknown_03000760
- ldrb r0, [r2]
- cmp r0, 0x10
- beq _0810E85C
- adds r1, r5, 0
-_0810E846:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0x10
- bne _0810E846
-_0810E85C:
- bl sub_810E874
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810E868: .4byte gUnknown_0203925A
-_0810E86C: .4byte gUnknown_0203925B
-_0810E870: .4byte gUnknown_03000760
- thumb_func_end ScriptShowElevatorMenu
-
- thumb_func_start sub_810E874
-sub_810E874: @ 810E874
- push {r4-r6,lr}
- sub sp, 0x8
- bl ScriptContext2_Enable
- ldr r4, _0810E8B8 @ =gUnknown_0203925A
- ldrb r0, [r4]
- cmp r0, 0x5
- bls _0810E8C0
- movs r0, 0
- movs r1, 0
- movs r2, 0x8
- movs r3, 0xB
- bl MenuDrawTextWindow
- movs r4, 0
- str r4, [sp]
- movs r0, 0x7
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x1
- movs r3, 0x5
- bl InitMenu
- ldr r0, _0810E8BC @ =gUnknown_0203925C
- strb r4, [r0]
- bl sub_80F944C
- bl LoadScrollIndicatorPalette
- bl sub_810ECD4
- b _0810E8E8
- .align 2, 0
-_0810E8B8: .4byte gUnknown_0203925A
-_0810E8BC: .4byte gUnknown_0203925C
-_0810E8C0:
- ldrb r3, [r4]
- lsls r3, 1
- adds r3, 0x1
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0
- movs r1, 0
- movs r2, 0x8
- bl MenuDrawTextWindow
- ldrb r3, [r4]
- movs r0, 0
- str r0, [sp]
- movs r0, 0x7
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x1
- bl InitMenu
-_0810E8E8:
- movs r4, 0
- ldr r1, _0810E938 @ =gUnknown_03000760
- ldrb r0, [r1]
- cmp r0, 0x10
- beq _0810E924
- ldr r6, _0810E93C @ =gUnknown_083F8380
- adds r5, r1, 0
-_0810E8F6:
- lsls r0, r4, 2
- adds r0, r5
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r6
- ldr r0, [r0]
- lsls r2, r4, 1
- adds r2, 0x1
- lsls r2, 24
- lsrs r2, 24
- movs r1, 0x1
- bl MenuPrint
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x4
- bhi _0810E924
- lsls r0, r4, 2
- adds r0, r5
- ldrb r0, [r0]
- cmp r0, 0x10
- bne _0810E8F6
-_0810E924:
- bl sub_810E944
- ldr r0, _0810E940 @ =sub_810E984
- movs r1, 0x8
- bl CreateTask
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0810E938: .4byte gUnknown_03000760
-_0810E93C: .4byte gUnknown_083F8380
-_0810E940: .4byte sub_810E984
- thumb_func_end sub_810E874
-
- thumb_func_start sub_810E944
-sub_810E944: @ 810E944
- push {lr}
- movs r0, 0x14
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x5
- bl MenuDrawTextWindow
- ldr r0, _0810E978 @ =gOtherText_NowOn
- movs r1, 0x15
- movs r2, 0x1
- movs r3, 0x40
- bl sub_8072BD8
- ldr r1, _0810E97C @ =gUnknown_083F8380
- ldr r0, _0810E980 @ =gSpecialVar_0x8005
- ldrh r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x15
- movs r2, 0x3
- movs r3, 0x40
- bl sub_8072BD8
- pop {r0}
- bx r0
- .align 2, 0
-_0810E978: .4byte gOtherText_NowOn
-_0810E97C: .4byte gUnknown_083F8380
-_0810E980: .4byte gSpecialVar_0x8005
- thumb_func_end sub_810E944
-
- thumb_func_start sub_810E984
-sub_810E984: @ 810E984
- push {r4-r6,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, _0810EA44 @ =gMain
- ldrh r0, [r0, 0x2E]
- cmp r0, 0x40
- bne _0810E9B8
- ldr r1, _0810EA48 @ =gUnknown_0203925B
- ldrb r0, [r1]
- cmp r0, 0
- beq _0810E9B8
- subs r0, 0x1
- strb r0, [r1]
- bl GetMenuCursorPos
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0x1
- negs r0, r0
- bl MoveMenuCursorNoWrap
- adds r0, r4, 0
- movs r1, 0x40
- bl sub_810EAC8
-_0810E9B8:
- ldr r0, _0810EA44 @ =gMain
- ldrh r0, [r0, 0x2E]
- cmp r0, 0x80
- bne _0810E9E8
- ldr r2, _0810EA48 @ =gUnknown_0203925B
- ldrb r1, [r2]
- ldr r0, _0810EA4C @ =gUnknown_0203925A
- ldrb r0, [r0]
- subs r0, 0x1
- cmp r1, r0
- beq _0810E9E8
- adds r0, r1, 0x1
- strb r0, [r2]
- bl GetMenuCursorPos
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0x1
- bl MoveMenuCursorNoWrap
- adds r0, r4, 0
- movs r1, 0x80
- bl sub_810EAC8
-_0810E9E8:
- ldr r0, _0810EA44 @ =gMain
- ldrh r2, [r0, 0x2E]
- movs r5, 0x1
- adds r1, r5, 0
- ands r1, r2
- cmp r1, 0
- beq _0810EA94
- ldr r1, _0810EA50 @ =gUnknown_03000760
- ldr r4, _0810EA48 @ =gUnknown_0203925B
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- movs r1, 0x1
- ldrsb r1, [r0, r1]
- movs r2, 0x2
- ldrsb r2, [r0, r2]
- movs r3, 0x1
- negs r3, r3
- movs r0, 0x2
- str r0, [sp]
- str r5, [sp, 0x4]
- movs r0, 0
- bl saved_warp2_set_2
- ldr r1, _0810EA54 @ =gSpecialVar_0x8005
- ldrh r0, [r1]
- ldrb r2, [r4]
- cmp r0, r2
- bne _0810EA5C
- ldr r1, _0810EA58 @ =gScriptResult
- movs r0, 0
- strh r0, [r1]
- movs r0, 0x5
- bl PlaySE
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0xC
- bl MenuZeroFillWindowRect
- adds r0, r6, 0
- bl sub_810EC9C
- b _0810EABC
- .align 2, 0
-_0810EA44: .4byte gMain
-_0810EA48: .4byte gUnknown_0203925B
-_0810EA4C: .4byte gUnknown_0203925A
-_0810EA50: .4byte gUnknown_03000760
-_0810EA54: .4byte gSpecialVar_0x8005
-_0810EA58: .4byte gScriptResult
-_0810EA5C:
- ldr r0, _0810EA88 @ =gScriptResult
- strh r5, [r0]
- ldrb r0, [r4]
- strh r0, [r1]
- bl sub_810EBEC
- ldr r0, _0810EA8C @ =gScriptLastTalked
- ldrb r0, [r0]
- ldr r2, _0810EA90 @ =gSaveBlock1
- ldrb r1, [r2, 0x5]
- ldrb r2, [r2, 0x4]
- movs r3, 0x1
- bl FieldObjectTurnByLocalIdAndMap
- bl sub_810EEDC
- bl MenuZeroFillScreen
- adds r0, r6, 0
- bl DestroyTask
- b _0810EABC
- .align 2, 0
-_0810EA88: .4byte gScriptResult
-_0810EA8C: .4byte gScriptLastTalked
-_0810EA90: .4byte gSaveBlock1
-_0810EA94:
- movs r0, 0x2
- ands r0, r2
- cmp r0, 0
- beq _0810EABC
- ldr r0, _0810EAC4 @ =gScriptResult
- strh r1, [r0]
- movs r0, 0x5
- bl PlaySE
- bl sub_810EEDC
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0xC
- bl MenuZeroFillWindowRect
- adds r0, r6, 0
- bl sub_810EC9C
-_0810EABC:
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0810EAC4: .4byte gScriptResult
- thumb_func_end sub_810E984
-
- thumb_func_start sub_810EAC8
-sub_810EAC8: @ 810EAC8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r2, r0, 24
- adds r5, r2, 0
- lsls r1, 24
- lsrs r1, 24
- adds r3, r1, 0
- movs r7, 0
- movs r4, 0
- ldr r0, _0810EAEC @ =gUnknown_0203925A
- ldrb r0, [r0]
- cmp r0, 0x4
- bhi _0810EAF0
- movs r0, 0
- b _0810EB78
- .align 2, 0
-_0810EAEC: .4byte gUnknown_0203925A
-_0810EAF0:
- cmp r1, 0x40
- bne _0810EB04
- cmp r2, 0
- bne _0810EB18
- ldr r0, _0810EB00 @ =gUnknown_0203925B
- ldrb r4, [r0]
- movs r7, 0x1
- b _0810EB1C
- .align 2, 0
-_0810EB00: .4byte gUnknown_0203925B
-_0810EB04:
- cmp r3, 0x80
- bne _0810EB18
- cmp r5, 0x4
- bne _0810EB18
- ldr r0, _0810EB84 @ =gUnknown_0203925B
- ldrb r0, [r0]
- subs r0, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- movs r7, 0x1
-_0810EB18:
- cmp r7, 0
- beq _0810EB76
-_0810EB1C:
- adds r0, r4, 0
- movs r1, 0x5
- bl sub_810EB90
- movs r0, 0x2
- movs r1, 0x1
- movs r2, 0x7
- movs r3, 0xA
- bl MenuFillWindowRectWithBlankTile
- movs r5, 0
- ldr r2, _0810EB88 @ =gUnknown_03000760
- lsls r1, r4, 2
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0x10
- beq _0810EB76
- ldr r0, _0810EB8C @ =gUnknown_083F8380
- mov r8, r0
- adds r6, r2, 0
-_0810EB44:
- adds r0, r1, r6
- ldrb r0, [r0]
- lsls r0, 2
- add r0, r8
- ldr r0, [r0]
- lsls r2, r5, 1
- adds r2, 0x1
- lsls r2, 24
- lsrs r2, 24
- movs r1, 0x1
- bl MenuPrint
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x4
- bhi _0810EB76
- lsls r1, r4, 2
- adds r0, r1, r6
- ldrb r0, [r0]
- cmp r0, 0x10
- bne _0810EB44
-_0810EB76:
- adds r0, r7, 0
-_0810EB78:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0810EB84: .4byte gUnknown_0203925B
-_0810EB88: .4byte gUnknown_03000760
-_0810EB8C: .4byte gUnknown_083F8380
- thumb_func_end sub_810EAC8
-
- thumb_func_start sub_810EB90
-sub_810EB90: @ 810EB90
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 24
- lsrs r5, r1, 24
- cmp r4, 0
- bne _0810EBB4
- ldr r0, _0810EBB0 @ =gUnknown_0203925C
- ldrb r1, [r0]
- movs r2, 0x2
- eors r1, r2
- strb r1, [r0]
- movs r0, 0
- bl DestroyVerticalScrollIndicator
- b _0810EBB8
- .align 2, 0
-_0810EBB0: .4byte gUnknown_0203925C
-_0810EBB4:
- bl sub_810ECB0
-_0810EBB8:
- adds r1, r4, r5
- ldr r0, _0810EBC8 @ =gUnknown_0203925A
- ldrb r0, [r0]
- cmp r1, r0
- bge _0810EBCC
- bl sub_810ECD4
- b _0810EBE0
- .align 2, 0
-_0810EBC8: .4byte gUnknown_0203925A
-_0810EBCC:
- cmp r1, r0
- bne _0810EBE0
- ldr r0, _0810EBE8 @ =gUnknown_0203925C
- ldrb r1, [r0]
- movs r2, 0x1
- eors r1, r2
- strb r1, [r0]
- movs r0, 0x1
- bl DestroyVerticalScrollIndicator
-_0810EBE0:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810EBE8: .4byte gUnknown_0203925C
- thumb_func_end sub_810EB90
-
- thumb_func_start sub_810EBEC
-sub_810EBEC: @ 810EBEC
- push {lr}
- ldr r0, _0810EC2C @ =sub_810EC34
- movs r1, 0x9
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0810EC30 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r0, 0
- movs r2, 0x1
- strh r2, [r1, 0x8]
- strh r0, [r1, 0xA]
- strh r0, [r1, 0xC]
- strh r0, [r1, 0xE]
- strh r2, [r1, 0x10]
- movs r0, 0x3
- strh r0, [r1, 0x12]
- movs r0, 0
- bl SetCameraPanningCallback
- bl sub_810ECFC
- movs r0, 0x59
- bl PlaySE
- pop {r0}
- bx r0
- .align 2, 0
-_0810EC2C: .4byte sub_810EC34
-_0810EC30: .4byte gTasks
- thumb_func_end sub_810EBEC
-
- thumb_func_start sub_810EC34
-sub_810EC34: @ 810EC34
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _0810EC98 @ =gTasks
- adds r4, r0, r1
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- movs r2, 0x12
- ldrsh r1, [r4, r2]
- bl __modsi3
- cmp r0, 0
- bne _0810EC92
- strh r0, [r4, 0xA]
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- movs r1, 0xE
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0810EC92
- ldrh r0, [r4, 0x10]
- negs r0, r0
- strh r0, [r4, 0x10]
- movs r2, 0x10
- ldrsh r1, [r4, r2]
- movs r0, 0
- bl SetCameraPanning
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- cmp r0, 0x17
- bne _0810EC92
- movs r0, 0x49
- bl PlaySE
- adds r0, r5, 0
- bl sub_810EC9C
- bl InstallCameraPanAheadCallback
-_0810EC92:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810EC98: .4byte gTasks
- thumb_func_end sub_810EC34
-
- thumb_func_start sub_810EC9C
-sub_810EC9C: @ 810EC9C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
- bl EnableBothScriptContexts
- pop {r0}
- bx r0
- thumb_func_end sub_810EC9C
-
- thumb_func_start sub_810ECB0
-sub_810ECB0: @ 810ECB0
- push {lr}
- ldr r2, _0810ECD0 @ =gUnknown_0203925C
- ldrb r1, [r2]
- lsrs r0, r1, 1
- cmp r0, 0x1
- beq _0810ECCC
- movs r0, 0x2
- orrs r0, r1
- strb r0, [r2]
- movs r0, 0
- movs r1, 0x24
- movs r2, 0x8
- bl CreateVerticalScrollIndicators
-_0810ECCC:
- pop {r0}
- bx r0
- .align 2, 0
-_0810ECD0: .4byte gUnknown_0203925C
- thumb_func_end sub_810ECB0
-
- thumb_func_start sub_810ECD4
-sub_810ECD4: @ 810ECD4
- push {lr}
- ldr r2, _0810ECF8 @ =gUnknown_0203925C
- ldrb r1, [r2]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0810ECF2
- movs r0, 0x1
- orrs r0, r1
- strb r0, [r2]
- movs r0, 0x1
- movs r1, 0x24
- movs r2, 0x48
- bl CreateVerticalScrollIndicators
-_0810ECF2:
- pop {r0}
- bx r0
- .align 2, 0
-_0810ECF8: .4byte gUnknown_0203925C
- thumb_func_end sub_810ECD4
-
- thumb_func_start sub_810ECFC
-sub_810ECFC: @ 810ECFC
- push {r4,lr}
- ldr r4, _0810ED38 @ =sub_810ED40
- adds r0, r4, 0
- bl FuncIsActiveTask
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0810ED30
- adds r0, r4, 0
- movs r1, 0x8
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0810ED3C @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r2, 0
- strh r2, [r1, 0x8]
- strh r0, [r1, 0xA]
- strh r2, [r1, 0xC]
- strh r2, [r1, 0xE]
- strh r2, [r1, 0x10]
-_0810ED30:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810ED38: .4byte sub_810ED40
-_0810ED3C: .4byte gTasks
- thumb_func_end sub_810ECFC
-
- thumb_func_start sub_810ED40
-sub_810ED40: @ 810ED40
- push {lr}
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- ldr r1, _0810ED5C @ =gTasks
- adds r0, r1
- bl sub_810ED60
- pop {r0}
- bx r0
- .align 2, 0
-_0810ED5C: .4byte gTasks
- thumb_func_end sub_810ED40
-
- thumb_func_start sub_810ED60
-sub_810ED60: @ 810ED60
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r1, 0xE
- ldrsh r0, [r5, r1]
- cmp r0, 0x8
- beq _0810ED6E
- b _0810EEB2
-_0810ED6E:
- movs r0, 0
- strh r0, [r5, 0xE]
- movs r1, 0x10
- ldrsh r0, [r5, r1]
- cmp r0, 0
- beq _0810EE14
- ldr r2, _0810EDFC @ =0x00000e68
- movs r0, 0x7
- movs r1, 0x7
- bl MapGridSetMetatileIdAt
- ldr r4, _0810EE00 @ =0x00000e69
- movs r0, 0x8
- movs r1, 0x7
- adds r2, r4, 0
- bl MapGridSetMetatileIdAt
- movs r0, 0x9
- movs r1, 0x7
- adds r2, r4, 0
- bl MapGridSetMetatileIdAt
- ldr r2, _0810EE04 @ =0x00000e6a
- movs r0, 0xA
- movs r1, 0x7
- bl MapGridSetMetatileIdAt
- movs r2, 0xE7
- lsls r2, 4
- movs r0, 0x7
- movs r1, 0x8
- bl MapGridSetMetatileIdAt
- adds r4, 0x8
- movs r0, 0x8
- movs r1, 0x8
- adds r2, r4, 0
- bl MapGridSetMetatileIdAt
- movs r0, 0x9
- movs r1, 0x8
- adds r2, r4, 0
- bl MapGridSetMetatileIdAt
- ldr r2, _0810EE08 @ =0x00000e72
- movs r0, 0xA
- movs r1, 0x8
- bl MapGridSetMetatileIdAt
- ldr r2, _0810EE0C @ =0x00000e78
- movs r0, 0x7
- movs r1, 0x9
- bl MapGridSetMetatileIdAt
- adds r4, 0x8
- movs r0, 0x8
- movs r1, 0x9
- adds r2, r4, 0
- bl MapGridSetMetatileIdAt
- movs r0, 0x9
- movs r1, 0x9
- adds r2, r4, 0
- bl MapGridSetMetatileIdAt
- ldr r2, _0810EE10 @ =0x00000e7a
- movs r0, 0xA
- movs r1, 0x9
- bl MapGridSetMetatileIdAt
- b _0810EE92
- .align 2, 0
-_0810EDFC: .4byte 0x00000e68
-_0810EE00: .4byte 0x00000e69
-_0810EE04: .4byte 0x00000e6a
-_0810EE08: .4byte 0x00000e72
-_0810EE0C: .4byte 0x00000e78
-_0810EE10: .4byte 0x00000e7a
-_0810EE14:
- ldr r2, _0810EEC0 @ =0x00000e6b
- movs r0, 0x7
- movs r1, 0x7
- bl MapGridSetMetatileIdAt
- ldr r4, _0810EEC4 @ =0x00000e6c
- movs r0, 0x8
- movs r1, 0x7
- adds r2, r4, 0
- bl MapGridSetMetatileIdAt
- movs r0, 0x9
- movs r1, 0x7
- adds r2, r4, 0
- bl MapGridSetMetatileIdAt
- ldr r2, _0810EEC8 @ =0x00000e6d
- movs r0, 0xA
- movs r1, 0x7
- bl MapGridSetMetatileIdAt
- ldr r2, _0810EECC @ =0x00000e73
- movs r0, 0x7
- movs r1, 0x8
- bl MapGridSetMetatileIdAt
- adds r4, 0x8
- movs r0, 0x8
- movs r1, 0x8
- adds r2, r4, 0
- bl MapGridSetMetatileIdAt
- movs r0, 0x9
- movs r1, 0x8
- adds r2, r4, 0
- bl MapGridSetMetatileIdAt
- ldr r2, _0810EED0 @ =0x00000e75
- movs r0, 0xA
- movs r1, 0x8
- bl MapGridSetMetatileIdAt
- ldr r2, _0810EED4 @ =0x00000e7b
- movs r0, 0x7
- movs r1, 0x9
- bl MapGridSetMetatileIdAt
- adds r4, 0x8
- movs r0, 0x8
- movs r1, 0x9
- adds r2, r4, 0
- bl MapGridSetMetatileIdAt
- movs r0, 0x9
- movs r1, 0x9
- adds r2, r4, 0
- bl MapGridSetMetatileIdAt
- ldr r2, _0810EED8 @ =0x00000e7d
- movs r0, 0xA
- movs r1, 0x9
- bl MapGridSetMetatileIdAt
-_0810EE92:
- bl DrawWholeMapView
- ldrh r0, [r5, 0x10]
- movs r1, 0x1
- eors r0, r1
- strh r0, [r5, 0x10]
- ldrh r0, [r5, 0xC]
- adds r0, 0x1
- strh r0, [r5, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x8
- bne _0810EEB2
- ldrb r0, [r5, 0xA]
- bl DestroyTask
-_0810EEB2:
- ldrh r0, [r5, 0xE]
- adds r0, 0x1
- strh r0, [r5, 0xE]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810EEC0: .4byte 0x00000e6b
-_0810EEC4: .4byte 0x00000e6c
-_0810EEC8: .4byte 0x00000e6d
-_0810EECC: .4byte 0x00000e73
-_0810EED0: .4byte 0x00000e75
-_0810EED4: .4byte 0x00000e7b
-_0810EED8: .4byte 0x00000e7d
- thumb_func_end sub_810ED60
-
- thumb_func_start sub_810EEDC
-sub_810EEDC: @ 810EEDC
- push {r4,lr}
- ldr r4, _0810EF08 @ =gUnknown_0203925C
- ldrb r1, [r4]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0810EEF0
- movs r0, 0x1
- bl DestroyVerticalScrollIndicator
-_0810EEF0:
- ldrb r0, [r4]
- lsrs r0, 1
- cmp r0, 0x1
- bne _0810EEFE
- movs r0, 0
- bl DestroyVerticalScrollIndicator
-_0810EEFE:
- bl BuyMenuFreeMemory
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810EF08: .4byte gUnknown_0203925C
- thumb_func_end sub_810EEDC
-
- thumb_func_start SetTrickHouseEndRoomFlag
-SetTrickHouseEndRoomFlag: @ 810EF0C
- push {lr}
- ldr r1, _0810EF1C @ =gSpecialVar_0x8004
- ldr r0, _0810EF20 @ =0x00000259
- strh r0, [r1]
- bl FlagSet
- pop {r0}
- bx r0
- .align 2, 0
-_0810EF1C: .4byte gSpecialVar_0x8004
-_0810EF20: .4byte 0x00000259
- thumb_func_end SetTrickHouseEndRoomFlag
-
- thumb_func_start ResetTrickHouseEndRoomFlag
-ResetTrickHouseEndRoomFlag: @ 810EF24
- push {lr}
- ldr r1, _0810EF34 @ =gSpecialVar_0x8004
- ldr r0, _0810EF38 @ =0x00000259
- strh r0, [r1]
- bl FlagReset
- pop {r0}
- bx r0
- .align 2, 0
-_0810EF34: .4byte gSpecialVar_0x8004
-_0810EF38: .4byte 0x00000259
- thumb_func_end ResetTrickHouseEndRoomFlag
-
- thumb_func_start CheckLeadMonCool
-CheckLeadMonCool: @ 810EF3C
- push {lr}
- bl GetLeadMonIndex
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r0, r1
- ldr r1, _0810EF5C @ =gPlayerParty
- adds r0, r1
- movs r1, 0x16
- bl GetMonData
- cmp r0, 0xC7
- bls _0810EF60
- movs r0, 0x1
- b _0810EF62
- .align 2, 0
-_0810EF5C: .4byte gPlayerParty
-_0810EF60:
- movs r0, 0
-_0810EF62:
- pop {r1}
- bx r1
- thumb_func_end CheckLeadMonCool
-
- thumb_func_start CheckLeadMonBeauty
-CheckLeadMonBeauty: @ 810EF68
- push {lr}
- bl GetLeadMonIndex
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r0, r1
- ldr r1, _0810EF88 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x17
- bl GetMonData
- cmp r0, 0xC7
- bls _0810EF8C
- movs r0, 0x1
- b _0810EF8E
- .align 2, 0
-_0810EF88: .4byte gPlayerParty
-_0810EF8C:
- movs r0, 0
-_0810EF8E:
- pop {r1}
- bx r1
- thumb_func_end CheckLeadMonBeauty
-
- thumb_func_start CheckLeadMonCute
-CheckLeadMonCute: @ 810EF94
- push {lr}
- bl GetLeadMonIndex
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r0, r1
- ldr r1, _0810EFB4 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x18
- bl GetMonData
- cmp r0, 0xC7
- bls _0810EFB8
- movs r0, 0x1
- b _0810EFBA
- .align 2, 0
-_0810EFB4: .4byte gPlayerParty
-_0810EFB8:
- movs r0, 0
-_0810EFBA:
- pop {r1}
- bx r1
- thumb_func_end CheckLeadMonCute
-
- thumb_func_start CheckLeadMonSmart
-CheckLeadMonSmart: @ 810EFC0
- push {lr}
- bl GetLeadMonIndex
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r0, r1
- ldr r1, _0810EFE0 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x21
- bl GetMonData
- cmp r0, 0xC7
- bls _0810EFE4
- movs r0, 0x1
- b _0810EFE6
- .align 2, 0
-_0810EFE0: .4byte gPlayerParty
-_0810EFE4:
- movs r0, 0
-_0810EFE6:
- pop {r1}
- bx r1
- thumb_func_end CheckLeadMonSmart
-
- thumb_func_start CheckLeadMonTough
-CheckLeadMonTough: @ 810EFEC
- push {lr}
- bl GetLeadMonIndex
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r0, r1
- ldr r1, _0810F00C @ =gPlayerParty
- adds r0, r1
- movs r1, 0x2F
- bl GetMonData
- cmp r0, 0xC7
- bls _0810F010
- movs r0, 0x1
- b _0810F012
- .align 2, 0
-_0810F00C: .4byte gPlayerParty
-_0810F010:
- movs r0, 0
-_0810F012:
- pop {r1}
- bx r1
- thumb_func_end CheckLeadMonTough
-
- thumb_func_start IsGrassTypeInParty
-IsGrassTypeInParty: @ 810F018
- push {r4-r6,lr}
- movs r5, 0
- ldr r6, _0810F068 @ =gBaseStats
-_0810F01E:
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _0810F06C @ =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0x5
- bl GetMonData
- cmp r0, 0
- beq _0810F074
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _0810F074
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r6
- ldrb r0, [r1, 0x6]
- cmp r0, 0xC
- beq _0810F060
- ldrb r0, [r1, 0x7]
- cmp r0, 0xC
- bne _0810F074
-_0810F060:
- ldr r1, _0810F070 @ =gScriptResult
- movs r0, 0x1
- b _0810F082
- .align 2, 0
-_0810F068: .4byte gBaseStats
-_0810F06C: .4byte gPlayerParty
-_0810F070: .4byte gScriptResult
-_0810F074:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x5
- bls _0810F01E
- ldr r1, _0810F08C @ =gScriptResult
- movs r0, 0
-_0810F082:
- strh r0, [r1]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0810F08C: .4byte gScriptResult
- thumb_func_end IsGrassTypeInParty
-
- thumb_func_start ShowGlassWorkshopMenu
-ShowGlassWorkshopMenu: @ 810F090
- push {r4,r5,lr}
- sub sp, 0x8
- bl ScriptContext2_Enable
- movs r0, 0
- movs r1, 0
- movs r2, 0xA
- movs r3, 0xB
- bl MenuDrawTextWindow
- movs r4, 0
- str r4, [sp]
- movs r0, 0x9
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x1
- movs r3, 0x5
- bl InitMenu
- ldr r0, _0810F104 @ =gUnknown_0203925C
- strb r4, [r0]
- bl sub_80F944C
- bl LoadScrollIndicatorPalette
- bl sub_810F2B4
- ldr r5, _0810F108 @ =gUnknown_083F83C0
-_0810F0CA:
- lsls r0, r4, 2
- adds r0, r5
- ldr r0, [r0]
- lsls r2, r4, 1
- adds r2, 0x1
- lsls r2, 24
- lsrs r2, 24
- movs r1, 0x1
- bl MenuPrint
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x4
- bls _0810F0CA
- ldr r1, _0810F10C @ =gUnknown_0203925B
- movs r0, 0
- strb r0, [r1]
- ldr r1, _0810F110 @ =gUnknown_0203925A
- movs r0, 0x8
- strb r0, [r1]
- ldr r0, _0810F114 @ =sub_810F118
- movs r1, 0x8
- bl CreateTask
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810F104: .4byte gUnknown_0203925C
-_0810F108: .4byte gUnknown_083F83C0
-_0810F10C: .4byte gUnknown_0203925B
-_0810F110: .4byte gUnknown_0203925A
-_0810F114: .4byte sub_810F118
- thumb_func_end ShowGlassWorkshopMenu
-
- thumb_func_start sub_810F118
-sub_810F118: @ 810F118
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _0810F1E4 @ =gMain
- ldrh r0, [r0, 0x2E]
- cmp r0, 0x40
- bne _0810F14A
- ldr r1, _0810F1E8 @ =gUnknown_0203925B
- ldrb r0, [r1]
- cmp r0, 0
- beq _0810F14A
- subs r0, 0x1
- strb r0, [r1]
- bl GetMenuCursorPos
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0x1
- negs r0, r0
- bl MoveMenuCursorNoWrap
- adds r0, r4, 0
- movs r1, 0x40
- bl sub_810F1F4
-_0810F14A:
- ldr r0, _0810F1E4 @ =gMain
- ldrh r0, [r0, 0x2E]
- cmp r0, 0x80
- bne _0810F17A
- ldr r2, _0810F1E8 @ =gUnknown_0203925B
- ldrb r1, [r2]
- ldr r0, _0810F1EC @ =gUnknown_0203925A
- ldrb r0, [r0]
- subs r0, 0x1
- cmp r1, r0
- beq _0810F17A
- adds r0, r1, 0x1
- strb r0, [r2]
- bl GetMenuCursorPos
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0x1
- bl MoveMenuCursorNoWrap
- adds r0, r4, 0
- movs r1, 0x80
- bl sub_810F1F4
-_0810F17A:
- ldr r4, _0810F1E4 @ =gMain
- ldrh r1, [r4, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0810F1AE
- bl sub_8072DEC
- ldr r0, _0810F1F0 @ =gScriptResult
- ldr r1, _0810F1E8 @ =gUnknown_0203925B
- ldrb r1, [r1]
- strh r1, [r0]
- movs r0, 0x5
- bl PlaySE
- bl sub_810EEDC
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0xC
- bl MenuZeroFillWindowRect
- adds r0, r5, 0
- bl sub_810EC9C
-_0810F1AE:
- ldrh r1, [r4, 0x2E]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0810F1DE
- bl sub_8072DEC
- ldr r1, _0810F1F0 @ =gScriptResult
- movs r0, 0x7F
- strh r0, [r1]
- movs r0, 0x5
- bl PlaySE
- bl sub_810EEDC
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0xC
- bl MenuZeroFillWindowRect
- adds r0, r5, 0
- bl sub_810EC9C
-_0810F1DE:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810F1E4: .4byte gMain
-_0810F1E8: .4byte gUnknown_0203925B
-_0810F1EC: .4byte gUnknown_0203925A
-_0810F1F0: .4byte gScriptResult
- thumb_func_end sub_810F118
-
- thumb_func_start sub_810F1F4
-sub_810F1F4: @ 810F1F4
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- adds r5, r2, 0
- lsls r1, 24
- lsrs r1, 24
- adds r3, r1, 0
- movs r6, 0
- movs r4, 0
- ldr r0, _0810F214 @ =gUnknown_0203925A
- ldrb r0, [r0]
- cmp r0, 0x4
- bhi _0810F218
- movs r0, 0
- b _0810F282
- .align 2, 0
-_0810F214: .4byte gUnknown_0203925A
-_0810F218:
- cmp r1, 0x40
- bne _0810F22C
- cmp r2, 0
- bne _0810F240
- ldr r0, _0810F228 @ =gUnknown_0203925B
- ldrb r4, [r0]
- movs r6, 0x1
- b _0810F244
- .align 2, 0
-_0810F228: .4byte gUnknown_0203925B
-_0810F22C:
- cmp r3, 0x80
- bne _0810F240
- cmp r5, 0x4
- bne _0810F240
- ldr r0, _0810F288 @ =gUnknown_0203925B
- ldrb r0, [r0]
- subs r0, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- movs r6, 0x1
-_0810F240:
- cmp r6, 0
- beq _0810F280
-_0810F244:
- adds r0, r4, 0
- movs r1, 0x5
- bl GlassWorkshopUpdateScrollIndicators
- movs r0, 0x2
- movs r1, 0x1
- movs r2, 0x9
- movs r3, 0xA
- bl MenuFillWindowRectWithBlankTile
- movs r5, 0
- ldr r7, _0810F28C @ =gUnknown_083F83C0
-_0810F25C:
- lsls r0, r4, 2
- adds r0, r7
- ldr r0, [r0]
- lsls r2, r5, 1
- adds r2, 0x1
- lsls r2, 24
- lsrs r2, 24
- movs r1, 0x1
- bl MenuPrint
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x4
- bls _0810F25C
-_0810F280:
- adds r0, r6, 0
-_0810F282:
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0810F288: .4byte gUnknown_0203925B
-_0810F28C: .4byte gUnknown_083F83C0
- thumb_func_end sub_810F1F4
-
- thumb_func_start sub_810F290
-sub_810F290: @ 810F290
- push {lr}
- ldr r2, _0810F2B0 @ =gUnknown_0203925C
- ldrb r1, [r2]
- lsrs r0, r1, 1
- cmp r0, 0x1
- beq _0810F2AC
- movs r0, 0x2
- orrs r0, r1
- strb r0, [r2]
- movs r0, 0
- movs r1, 0x2C
- movs r2, 0x8
- bl CreateVerticalScrollIndicators
-_0810F2AC:
- pop {r0}
- bx r0
- .align 2, 0
-_0810F2B0: .4byte gUnknown_0203925C
- thumb_func_end sub_810F290
-
- thumb_func_start sub_810F2B4
-sub_810F2B4: @ 810F2B4
- push {lr}
- ldr r2, _0810F2D8 @ =gUnknown_0203925C
- ldrb r1, [r2]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0810F2D2
- movs r0, 0x1
- orrs r0, r1
- strb r0, [r2]
- movs r0, 0x1
- movs r1, 0x2C
- movs r2, 0x58
- bl CreateVerticalScrollIndicators
-_0810F2D2:
- pop {r0}
- bx r0
- .align 2, 0
-_0810F2D8: .4byte gUnknown_0203925C
- thumb_func_end sub_810F2B4
-
- thumb_func_start GlassWorkshopUpdateScrollIndicators
-GlassWorkshopUpdateScrollIndicators: @ 810F2DC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 24
- lsrs r5, r1, 24
- cmp r4, 0
- bne _0810F300
- ldr r0, _0810F2FC @ =gUnknown_0203925C
- ldrb r1, [r0]
- movs r2, 0x2
- eors r1, r2
- strb r1, [r0]
- movs r0, 0
- bl DestroyVerticalScrollIndicator
- b _0810F304
- .align 2, 0
-_0810F2FC: .4byte gUnknown_0203925C
-_0810F300:
- bl sub_810F290
-_0810F304:
- adds r1, r4, r5
- ldr r0, _0810F314 @ =gUnknown_0203925A
- ldrb r0, [r0]
- cmp r1, r0
- bge _0810F318
- bl sub_810F2B4
- b _0810F32C
- .align 2, 0
-_0810F314: .4byte gUnknown_0203925A
-_0810F318:
- cmp r1, r0
- bne _0810F32C
- ldr r0, _0810F334 @ =gUnknown_0203925C
- ldrb r1, [r0]
- movs r2, 0x1
- eors r1, r2
- strb r1, [r0]
- movs r0, 0x1
- bl DestroyVerticalScrollIndicator
-_0810F32C:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810F334: .4byte gUnknown_0203925C
- thumb_func_end GlassWorkshopUpdateScrollIndicators
-
- thumb_func_start SpawnCameraDummy
-SpawnCameraDummy: @ 810F338
- push {lr}
- sub sp, 0x8
- ldr r0, _0810F380 @ =gSaveBlock1
- ldrh r3, [r0]
- adds r3, 0x7
- lsls r3, 16
- asrs r3, 16
- ldrh r0, [r0, 0x2]
- adds r0, 0x7
- lsls r0, 16
- asrs r0, 16
- str r0, [sp]
- movs r0, 0x3
- str r0, [sp, 0x4]
- movs r0, 0x7
- movs r1, 0x8
- movs r2, 0x7F
- bl SpawnSpecialFieldObjectParametrized
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0810F384 @ =gMapObjects
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r0, [r1, 0x1]
- movs r2, 0x20
- orrs r0, r2
- strb r0, [r1, 0x1]
- ldrb r0, [r1, 0x4]
- bl CameraObjectSetFollowedObjectId
- add sp, 0x8
- pop {r0}
- bx r0
- .align 2, 0
-_0810F380: .4byte gSaveBlock1
-_0810F384: .4byte gMapObjects
- thumb_func_end SpawnCameraDummy
-
- thumb_func_start RemoveCameraDummy
-RemoveCameraDummy: @ 810F388
- push {lr}
- bl GetPlayerAvatarObjectId
- lsls r0, 24
- lsrs r0, 24
- bl CameraObjectSetFollowedObjectId
- ldr r0, _0810F3A8 @ =gSaveBlock1
- ldrb r1, [r0, 0x5]
- ldrb r2, [r0, 0x4]
- movs r0, 0x7F
- bl RemoveFieldObjectByLocalIdAndMap
- pop {r0}
- bx r0
- .align 2, 0
-_0810F3A8: .4byte gSaveBlock1
- thumb_func_end RemoveCameraDummy
-
- thumb_func_start GetPokeblockNameByMonNature
-GetPokeblockNameByMonNature: @ 810F3AC
- push {lr}
- bl GetLeadMonIndex
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r0, r1
- ldr r1, _0810F3D4 @ =gPlayerParty
- adds r0, r1
- bl GetNature
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0810F3D8 @ =gStringVar1
- bl sub_810CB68
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_0810F3D4: .4byte gPlayerParty
-_0810F3D8: .4byte gStringVar1
- thumb_func_end GetPokeblockNameByMonNature
-
- thumb_func_start GetSecretBaseNearbyMapName
-GetSecretBaseNearbyMapName: @ 810F3DC
- push {r4,lr}
- ldr r4, _0810F3FC @ =gStringVar1
- ldr r0, _0810F400 @ =0x00004026
- bl VarGet
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- adds r0, r4, 0
- movs r2, 0
- bl sub_80FBFB4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810F3FC: .4byte gStringVar1
-_0810F400: .4byte 0x00004026
- thumb_func_end GetSecretBaseNearbyMapName
-
- thumb_func_start sub_810F404
-sub_810F404: @ 810F404
- push {lr}
- movs r0, 0x20
- bl sub_8053108
- lsls r0, 16
- lsrs r0, 16
- pop {r1}
- bx r1
- thumb_func_end sub_810F404
-
- thumb_func_start sub_810F414
-sub_810F414: @ 810F414
- push {lr}
- ldr r0, _0810F420 @ =gStringVar1
- bl sub_8135FF4
- pop {r0}
- bx r0
- .align 2, 0
-_0810F420: .4byte gStringVar1
- thumb_func_end sub_810F414
-
- thumb_func_start sub_810F424
-sub_810F424: @ 810F424
- push {r4,r5,lr}
- ldr r2, _0810F458 @ =gSaveBlock1
- ldr r1, _0810F45C @ =0x00002dd4
- adds r0, r2, r1
- ldrb r1, [r0]
- lsls r1, 25
- ldr r0, _0810F460 @ =0x00002dd6
- adds r2, r0
- lsrs r1, 25
- ldrh r2, [r2]
- adds r1, r2
- ldr r2, _0810F464 @ =gUnknown_083F83E0
- ldr r0, _0810F468 @ =gSpecialVar_0x8004
- ldrh r0, [r0]
- adds r0, r2
- ldrb r0, [r0]
- adds r5, r1, r0
- movs r0, 0x2
- bl GetPriceReduction
- lsls r0, 24
- cmp r0, 0
- bne _0810F470
- ldr r4, _0810F46C @ =gUnknown_083F83EC
- b _0810F472
- .align 2, 0
-_0810F458: .4byte gSaveBlock1
-_0810F45C: .4byte 0x00002dd4
-_0810F460: .4byte 0x00002dd6
-_0810F464: .4byte gUnknown_083F83E0
-_0810F468: .4byte gSpecialVar_0x8004
-_0810F46C: .4byte gUnknown_083F83EC
-_0810F470:
- ldr r4, _0810F484 @ =gUnknown_083F83F8
-_0810F472:
- adds r0, r5, 0
- movs r1, 0xC
- bl __umodsi3
- adds r0, r4
- ldrb r0, [r0]
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0810F484: .4byte gUnknown_083F83F8
- thumb_func_end sub_810F424
-
- thumb_func_start sub_810F488
-sub_810F488: @ 810F488
- push {lr}
- ldr r1, _0810F4A0 @ =gSpecialVar_0x8004
- ldr r0, _0810F4A4 @ =0x00000277
- strh r0, [r1]
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _0810F4A8
- movs r0, 0x1
- b _0810F4AA
- .align 2, 0
-_0810F4A0: .4byte gSpecialVar_0x8004
-_0810F4A4: .4byte 0x00000277
-_0810F4A8:
- movs r0, 0
-_0810F4AA:
- pop {r1}
- bx r1
- thumb_func_end sub_810F488
-
- thumb_func_start sub_810F4B0
-sub_810F4B0: @ 810F4B0
- push {lr}
- ldr r1, _0810F4C8 @ =gSpecialVar_0x8004
- movs r0, 0x9E
- lsls r0, 2
- strh r0, [r1]
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _0810F4CC
- movs r0, 0x1
- b _0810F4CE
- .align 2, 0
-_0810F4C8: .4byte gSpecialVar_0x8004
-_0810F4CC:
- movs r0, 0
-_0810F4CE:
- pop {r1}
- bx r1
- thumb_func_end sub_810F4B0
-
- thumb_func_start sub_810F4D4
-sub_810F4D4: @ 810F4D4
- push {lr}
- ldr r1, _0810F4EC @ =gSpecialVar_0x8004
- ldr r0, _0810F4F0 @ =0x00000279
- strh r0, [r1]
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _0810F4F4
- movs r0, 0x1
- b _0810F4F6
- .align 2, 0
-_0810F4EC: .4byte gSpecialVar_0x8004
-_0810F4F0: .4byte 0x00000279
-_0810F4F4:
- movs r0, 0
-_0810F4F6:
- pop {r1}
- bx r1
- thumb_func_end sub_810F4D4
-
- thumb_func_start sub_810F4FC
-sub_810F4FC: @ 810F4FC
- push {lr}
- ldr r1, _0810F514 @ =gSpecialVar_0x8004
- ldr r0, _0810F518 @ =0x0000027a
- strh r0, [r1]
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _0810F51C
- movs r0, 0x1
- b _0810F51E
- .align 2, 0
-_0810F514: .4byte gSpecialVar_0x8004
-_0810F518: .4byte 0x0000027a
-_0810F51C:
- movs r0, 0
-_0810F51E:
- pop {r1}
- bx r1
- thumb_func_end sub_810F4FC
-
- thumb_func_start LeadMonHasEffortRibbon
-LeadMonHasEffortRibbon: @ 810F524
- push {lr}
- bl GetLeadMonIndex
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r0, r1
- ldr r1, _0810F548 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x47
- movs r2, 0
- bl GetMonData
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_0810F548: .4byte gPlayerParty
- thumb_func_end LeadMonHasEffortRibbon
-
- thumb_func_start GivLeadMonEffortRibbon
-GivLeadMonEffortRibbon: @ 810F54C
- push {lr}
- sub sp, 0x4
- movs r0, 0x2A
- bl sav12_xor_increment
- ldr r0, _0810F580 @ =0x0000083b
- bl FlagSet
- movs r1, 0x1
- mov r0, sp
- strb r1, [r0]
- bl GetLeadMonIndex
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r0, r1
- ldr r1, _0810F584 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x47
- mov r2, sp
- bl SetMonData
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_0810F580: .4byte 0x0000083b
-_0810F584: .4byte gPlayerParty
- thumb_func_end GivLeadMonEffortRibbon
-
- thumb_func_start GetLeadMonEVCount
-GetLeadMonEVCount: @ 810F588
- push {lr}
- bl GetLeadMonIndex
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r0, r1
- ldr r1, _0810F5AC @ =gPlayerParty
- adds r0, r1
- bl GetMonEVCount
- lsls r0, 16
- ldr r1, _0810F5B0 @ =0x01fd0000
- cmp r0, r1
- bhi _0810F5B4
- movs r0, 0
- b _0810F5B6
- .align 2, 0
-_0810F5AC: .4byte gPlayerParty
-_0810F5B0: .4byte 0x01fd0000
-_0810F5B4:
- movs r0, 0x1
-_0810F5B6:
- pop {r1}
- bx r1
- thumb_func_end GetLeadMonEVCount
-
- thumb_func_start sub_810F5BC
-sub_810F5BC: @ 810F5BC
- push {lr}
- movs r0, 0xC7
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- bne _0810F610
- ldr r0, _0810F5E8 @ =gSaveBlock1
- ldrh r1, [r0, 0x4]
- movs r0, 0x83
- lsls r0, 3
- cmp r1, r0
- bne _0810F610
- subs r0, 0x75
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _0810F5F0
- ldr r0, _0810F5EC @ =0x0000409a
- movs r1, 0x4
- b _0810F602
- .align 2, 0
-_0810F5E8: .4byte gSaveBlock1
-_0810F5EC: .4byte 0x0000409a
-_0810F5F0:
- movs r0, 0xE9
- lsls r0, 2
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _0810F610
- ldr r0, _0810F60C @ =0x0000409a
- movs r1, 0x5
-_0810F602:
- bl VarSet
- movs r0, 0x1
- b _0810F612
- .align 2, 0
-_0810F60C: .4byte 0x0000409a
-_0810F610:
- movs r0, 0
-_0810F612:
- pop {r1}
- bx r1
- thumb_func_end sub_810F5BC
-
- thumb_func_start sub_810F618
-sub_810F618: @ 810F618
- push {lr}
- ldr r0, _0810F624 @ =0x0000085f
- bl FlagSet
- pop {r0}
- bx r0
- .align 2, 0
-_0810F624: .4byte 0x0000085f
- thumb_func_end sub_810F618
-
- thumb_func_start PutZigzagoonInPlayerParty
-PutZigzagoonInPlayerParty: @ 810F628
- push {r4,r5,lr}
- sub sp, 0x14
- ldr r5, _0810F690 @ =gPlayerParty
- movs r1, 0x90
- lsls r1, 1
- movs r4, 0
- str r4, [sp]
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- str r4, [sp, 0xC]
- adds r0, r5, 0
- movs r2, 0x7
- movs r3, 0x20
- bl CreateMon
- movs r1, 0x1
- add r0, sp, 0x10
- strh r1, [r0]
- adds r0, r5, 0
- movs r1, 0x2E
- add r2, sp, 0x10
- bl SetMonData
- add r1, sp, 0x10
- movs r0, 0x21
- strh r0, [r1]
- adds r0, r5, 0
- movs r1, 0xD
- add r2, sp, 0x10
- bl SetMonData
- add r0, sp, 0x10
- strh r4, [r0]
- adds r0, r5, 0
- movs r1, 0xE
- add r2, sp, 0x10
- bl SetMonData
- adds r0, r5, 0
- movs r1, 0xF
- add r2, sp, 0x10
- bl SetMonData
- adds r0, r5, 0
- movs r1, 0x10
- add r2, sp, 0x10
- bl SetMonData
- add sp, 0x14
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810F690: .4byte gPlayerParty
- thumb_func_end PutZigzagoonInPlayerParty
-
- thumb_func_start IsStarterInParty
-IsStarterInParty: @ 810F694
- push {r4-r6,lr}
- ldr r0, _0810F6D0 @ =0x00004023
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- bl GetStarterPokemon
- lsls r0, 16
- lsrs r6, r0, 16
- bl CalculatePlayerPartyCount
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0
- cmp r4, r5
- bcs _0810F6E2
-_0810F6B6:
- movs r0, 0x64
- muls r0, r4
- ldr r1, _0810F6D4 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x41
- movs r2, 0
- bl GetMonData
- cmp r0, r6
- bne _0810F6D8
- movs r0, 0x1
- b _0810F6E4
- .align 2, 0
-_0810F6D0: .4byte 0x00004023
-_0810F6D4: .4byte gPlayerParty
-_0810F6D8:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, r5
- bcc _0810F6B6
-_0810F6E2:
- movs r0, 0
-_0810F6E4:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end IsStarterInParty
-
- thumb_func_start CheckFreePokemonStorageSpace
-CheckFreePokemonStorageSpace: @ 810F6EC
- push {r4-r6,lr}
- movs r5, 0
-_0810F6F0:
- movs r4, 0
- lsls r1, r5, 2
- adds r1, r5
- lsls r0, r1, 4
- subs r0, r1
- lsls r6, r0, 5
-_0810F6FC:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 4
- ldr r1, _0810F718 @ =gUnknown_020300A4
- adds r0, r1
- adds r0, r6, r0
- movs r1, 0xB
- movs r2, 0
- bl GetBoxMonData
- cmp r0, 0
- bne _0810F71C
- movs r0, 0x1
- b _0810F732
- .align 2, 0
-_0810F718: .4byte gUnknown_020300A4
-_0810F71C:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x1D
- bls _0810F6FC
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0xD
- bls _0810F6F0
- movs r0, 0
-_0810F732:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end CheckFreePokemonStorageSpace
-
- thumb_func_start IsPokerusInParty
-IsPokerusInParty: @ 810F738
- push {lr}
- ldr r0, _0810F74C @ =gPlayerParty
- movs r1, 0x3F
- bl CheckPartyPokerus
- lsls r0, 24
- cmp r0, 0
- beq _0810F750
- movs r0, 0x1
- b _0810F752
- .align 2, 0
-_0810F74C: .4byte gPlayerParty
-_0810F750:
- movs r0, 0
-_0810F752:
- pop {r1}
- bx r1
- thumb_func_end IsPokerusInParty
-
- thumb_func_start sub_810F758
-sub_810F758: @ 810F758
- push {lr}
- ldr r0, _0810F798 @ =sub_810F7A8
- movs r1, 0x9
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0810F79C @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r0, _0810F7A0 @ =gSpecialVar_0x8005
- ldrh r2, [r0]
- movs r0, 0
- strh r2, [r1, 0x8]
- strh r0, [r1, 0xA]
- strh r0, [r1, 0xC]
- strh r0, [r1, 0xE]
- ldr r0, _0810F7A4 @ =gSpecialVar_0x8004
- ldrh r0, [r0]
- strh r0, [r1, 0x10]
- movs r0, 0x5
- strh r0, [r1, 0x12]
- movs r0, 0
- bl SetCameraPanningCallback
- movs r0, 0xD6
- bl PlaySE
- pop {r0}
- bx r0
- .align 2, 0
-_0810F798: .4byte sub_810F7A8
-_0810F79C: .4byte gTasks
-_0810F7A0: .4byte gSpecialVar_0x8005
-_0810F7A4: .4byte gSpecialVar_0x8004
- thumb_func_end sub_810F758
-
- thumb_func_start sub_810F7A8
-sub_810F7A8: @ 810F7A8
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _0810F810 @ =gTasks
- adds r4, r0, r1
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- movs r2, 0x12
- ldrsh r1, [r4, r2]
- bl __modsi3
- cmp r0, 0
- bne _0810F808
- strh r0, [r4, 0xA]
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- movs r1, 0xE
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0810F808
- ldrh r0, [r4, 0x8]
- negs r0, r0
- strh r0, [r4, 0x8]
- ldrh r0, [r4, 0x10]
- negs r0, r0
- strh r0, [r4, 0x10]
- movs r2, 0x8
- ldrsh r0, [r4, r2]
- movs r2, 0x10
- ldrsh r1, [r4, r2]
- bl SetCameraPanning
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- cmp r0, 0x8
- bne _0810F808
- adds r0, r5, 0
- bl sub_810F814
- bl InstallCameraPanAheadCallback
-_0810F808:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810F810: .4byte gTasks
- thumb_func_end sub_810F7A8
-
- thumb_func_start sub_810F814
-sub_810F814: @ 810F814
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
- bl EnableBothScriptContexts
- pop {r0}
- bx r0
- thumb_func_end sub_810F814
-
- thumb_func_start sub_810F828
-sub_810F828: @ 810F828
- push {lr}
- movs r0, 0xAE
- lsls r0, 2
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- thumb_func_end sub_810F828
-
- thumb_func_start SetRoute119Weather
-SetRoute119Weather: @ 810F83C
- push {lr}
- bl get_map_light_from_warp0
- lsls r0, 24
- lsrs r0, 24
- bl is_light_level_1_2_3_5_or_6
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0810F858
- movs r0, 0x14
- bl SetSav1Weather
-_0810F858:
- pop {r0}
- bx r0
- thumb_func_end SetRoute119Weather
-
- thumb_func_start SetRoute123Weather
-SetRoute123Weather: @ 810F85C
- push {lr}
- bl get_map_light_from_warp0
- lsls r0, 24
- lsrs r0, 24
- bl is_light_level_1_2_3_5_or_6
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0810F878
- movs r0, 0x15
- bl SetSav1Weather
-_0810F878:
- pop {r0}
- bx r0
- thumb_func_end SetRoute123Weather
-
- thumb_func_start GetLeadMonIndex
-GetLeadMonIndex: @ 810F87C
- push {r4-r6,lr}
- bl CalculatePlayerPartyCount
- lsls r0, 24
- lsrs r6, r0, 24
- movs r5, 0
- cmp r5, r6
- bcs _0810F8CA
-_0810F88C:
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _0810F8BC @ =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0x41
- movs r2, 0
- bl GetMonData
- movs r1, 0xCE
- lsls r1, 1
- cmp r0, r1
- beq _0810F8C0
- adds r0, r4, 0
- movs r1, 0x41
- movs r2, 0
- bl GetMonData
- cmp r0, 0
- beq _0810F8C0
- adds r0, r5, 0
- b _0810F8CC
- .align 2, 0
-_0810F8BC: .4byte gPlayerParty
-_0810F8C0:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, r6
- bcc _0810F88C
-_0810F8CA:
- movs r0, 0
-_0810F8CC:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end GetLeadMonIndex
-
- thumb_func_start ScriptGetPartyMonSpecies
-ScriptGetPartyMonSpecies: @ 810F8D4
- push {lr}
- ldr r0, _0810F8F4 @ =gSpecialVar_0x8004
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0810F8F8 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x41
- movs r2, 0
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- pop {r1}
- bx r1
- .align 2, 0
-_0810F8F4: .4byte gSpecialVar_0x8004
-_0810F8F8: .4byte gPlayerParty
- thumb_func_end ScriptGetPartyMonSpecies
-
- thumb_func_start sub_810F8FC
-sub_810F8FC: @ 810F8FC
- push {lr}
- movs r0, 0x6
- bl sub_805ADDC
- pop {r0}
- bx r0
- thumb_func_end sub_810F8FC
-
- thumb_func_start sub_810F908
-sub_810F908: @ 810F908
- push {r4,lr}
- ldr r0, _0810F928 @ =0x000040c2
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- adds r3, r0, 0
- ldr r2, _0810F92C @ =gLocalTime
- movs r1, 0
- ldrsh r0, [r2, r1]
- subs r0, r3
- cmp r0, 0x6
- ble _0810F930
- movs r0, 0
- b _0810F948
- .align 2, 0
-_0810F928: .4byte 0x000040c2
-_0810F92C: .4byte gLocalTime
-_0810F930:
- ldrh r1, [r2]
- movs r4, 0
- ldrsh r0, [r2, r4]
- cmp r0, 0
- blt _0810F946
- subs r1, r3
- movs r0, 0x7
- subs r0, r1
- lsls r0, 16
- lsrs r0, 16
- b _0810F948
-_0810F946:
- movs r0, 0x8
-_0810F948:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_810F908
-
- thumb_func_start sub_810F950
-sub_810F950: @ 810F950
- push {r4,lr}
- ldr r0, _0810F964 @ =0x000040c2
- ldr r4, _0810F968 @ =gLocalTime
- ldrh r1, [r4]
- bl VarSet
- ldrh r0, [r4]
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0810F964: .4byte 0x000040c2
-_0810F968: .4byte gLocalTime
- thumb_func_end sub_810F950
-
- thumb_func_start sub_810F96C
-sub_810F96C: @ 810F96C
- push {r4,lr}
- ldr r0, _0810F994 @ =gSpecialVar_0x8004
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0810F998 @ =gPlayerParty
- adds r0, r1
- ldr r4, _0810F99C @ =gStringVar1
- movs r1, 0x7
- adds r2, r4, 0
- bl GetMonData
- ldr r0, _0810F9A0 @ =gSaveBlock2
- adds r1, r4, 0
- bl StringCompareWithoutExtCtrlCodes
- cmp r0, 0
- beq _0810F9A4
- movs r0, 0x1
- b _0810F9A6
- .align 2, 0
-_0810F994: .4byte gSpecialVar_0x8004
-_0810F998: .4byte gPlayerParty
-_0810F99C: .4byte gStringVar1
-_0810F9A0: .4byte gSaveBlock2
-_0810F9A4:
- movs r0, 0
-_0810F9A6:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_810F96C
-
- thumb_func_start sub_810F9AC
-sub_810F9AC: @ 810F9AC
- push {r4,r5,lr}
- ldr r2, _0810F9C0 @ =gScriptResult
- ldrh r1, [r2]
- ldr r0, _0810F9C4 @ =0x0000270f
- cmp r1, r0
- bls _0810F9C8
- movs r0, 0
- bl sub_80BF088
- b _0810FA4A
- .align 2, 0
-_0810F9C0: .4byte gScriptResult
-_0810F9C4: .4byte 0x0000270f
-_0810F9C8:
- ldr r0, _0810F9D8 @ =0x000003e7
- cmp r1, r0
- bls _0810F9E0
- ldr r4, _0810F9DC @ =gStringVar1
- movs r0, 0xA1
- strb r0, [r4]
- adds r4, 0x1
- b _0810FA04
- .align 2, 0
-_0810F9D8: .4byte 0x000003e7
-_0810F9DC: .4byte gStringVar1
-_0810F9E0:
- cmp r1, 0x63
- bls _0810F9F4
- ldr r4, _0810F9F0 @ =gStringVar1
- movs r0, 0xA1
- strb r0, [r4]
- strb r0, [r4, 0x1]
- adds r4, 0x2
- b _0810FA04
- .align 2, 0
-_0810F9F0: .4byte gStringVar1
-_0810F9F4:
- cmp r1, 0x9
- bls _0810FA24
- ldr r4, _0810FA20 @ =gStringVar1
- movs r0, 0xA1
- strb r0, [r4]
- strb r0, [r4, 0x1]
- strb r0, [r4, 0x2]
- adds r4, 0x3
-_0810FA04:
- ldrh r5, [r2]
- adds r0, r5, 0
- bl sub_80BF0B8
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0
- bl ConvertIntToDecimalStringN
- b _0810FA4A
- .align 2, 0
-_0810FA20: .4byte gStringVar1
-_0810FA24:
- ldr r4, _0810FA50 @ =gStringVar1
- movs r0, 0xA1
- strb r0, [r4]
- strb r0, [r4, 0x1]
- strb r0, [r4, 0x2]
- strb r0, [r4, 0x3]
- adds r4, 0x4
- ldrh r5, [r2]
- adds r0, r5, 0
- bl sub_80BF0B8
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0
- bl ConvertIntToDecimalStringN
-_0810FA4A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810FA50: .4byte gStringVar1
- thumb_func_end sub_810F9AC
-
- thumb_func_start sub_810FA54
-sub_810FA54: @ 810FA54
- ldr r0, _0810FA68 @ =gSaveBlock1
- ldr r2, _0810FA6C @ =0x000013c2
- adds r1, r0, r2
- movs r2, 0
- strh r2, [r1]
- ldr r1, _0810FA70 @ =0x000013c4
- adds r0, r1
- strh r2, [r0]
- bx lr
- .align 2, 0
-_0810FA68: .4byte gSaveBlock1
-_0810FA6C: .4byte 0x000013c2
-_0810FA70: .4byte 0x000013c4
- thumb_func_end sub_810FA54
-
- thumb_func_start sub_810FA74
-sub_810FA74: @ 810FA74
- push {lr}
- bl sub_810FF30
- lsls r0, 24
- cmp r0, 0
- beq _0810FA90
- bl sub_810FCE8
- ldr r0, _0810FA94 @ =gSaveBlock1
- ldr r1, _0810FA98 @ =gSaveBlock2
- ldrh r1, [r1, 0xE]
- ldr r2, _0810FA9C @ =0x000013c4
- adds r0, r2
- strh r1, [r0]
-_0810FA90:
- pop {r0}
- bx r0
- .align 2, 0
-_0810FA94: .4byte gSaveBlock1
-_0810FA98: .4byte gSaveBlock2
-_0810FA9C: .4byte 0x000013c4
- thumb_func_end sub_810FA74
-
- thumb_func_start sub_810FAA0
-sub_810FAA0: @ 810FAA0
- push {r4,lr}
- ldr r4, _0810FAF0 @ =gSaveBlock1
- ldr r1, _0810FAF4 @ =0x000013c2
- adds r0, r4, r1
- ldrh r0, [r0]
- lsrs r0, 7
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0810FAE8
- bl sub_810FF48
- bl sub_810FD80
- ldr r0, _0810FAF8 @ =gSaveBlock2
- ldrh r1, [r0, 0xE]
- ldr r2, _0810FAFC @ =0x000013c4
- adds r0, r4, r2
- strh r1, [r0]
- ldr r0, _0810FB00 @ =0x00000315
- bl FlagReset
- ldr r0, _0810FB04 @ =0x00000316
- bl FlagReset
- ldr r0, _0810FB08 @ =0x00000317
- bl FlagReset
- movs r0, 0xC6
- lsls r0, 2
- bl FlagReset
- ldr r0, _0810FB0C @ =0x00004095
- movs r1, 0x1
- bl VarSet
-_0810FAE8:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810FAF0: .4byte gSaveBlock1
-_0810FAF4: .4byte 0x000013c2
-_0810FAF8: .4byte gSaveBlock2
-_0810FAFC: .4byte 0x000013c4
-_0810FB00: .4byte 0x00000315
-_0810FB04: .4byte 0x00000316
-_0810FB08: .4byte 0x00000317
-_0810FB0C: .4byte 0x00004095
- thumb_func_end sub_810FAA0
-
- thumb_func_start sub_810FB10
-sub_810FB10: @ 810FB10
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _0810FB54 @ =0x00004095
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x2
- bne _0810FB80
- ldr r0, _0810FB58 @ =gSaveBlock1
- ldr r1, _0810FB5C @ =0x000013c2
- adds r4, r0, r1
- ldrh r2, [r4]
- movs r1, 0x7F
- ands r1, r2
- ldr r0, _0810FB60 @ =gUnknown_083F8404
- adds r0, r5, r0
- ldrb r0, [r0]
- adds r1, r0
- cmp r1, 0x13
- ble _0810FB7C
- bl sub_810FCB0
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x2
- bhi _0810FB68
- bl sub_810FB9C
- ldrh r1, [r4]
- ldr r0, _0810FB64 @ =0x0000ff80
- ands r0, r1
- b _0810FB7E
- .align 2, 0
-_0810FB54: .4byte 0x00004095
-_0810FB58: .4byte gSaveBlock1
-_0810FB5C: .4byte 0x000013c2
-_0810FB60: .4byte gUnknown_083F8404
-_0810FB64: .4byte 0x0000ff80
-_0810FB68:
- ldrh r0, [r4]
- ldr r1, _0810FB78 @ =0x0000ff80
- ands r1, r0
- movs r0, 0x14
- orrs r1, r0
- strh r1, [r4]
- b _0810FB80
- .align 2, 0
-_0810FB78: .4byte 0x0000ff80
-_0810FB7C:
- adds r0, r2, r0
-_0810FB7E:
- strh r0, [r4]
-_0810FB80:
- ldr r0, _0810FB94 @ =gSaveBlock1
- ldr r1, _0810FB98 @ =0x000013c2
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x7F
- ands r0, r1
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0810FB94: .4byte gSaveBlock1
-_0810FB98: .4byte 0x000013c2
- thumb_func_end sub_810FB10
-
- thumb_func_start sub_810FB9C
-sub_810FB9C: @ 810FB9C
- push {r4-r7,lr}
- sub sp, 0x4
- movs r3, 0
- movs r5, 0
- ldr r7, _0810FBD8 @ =gSaveBlock1 + 0x13C2
- movs r6, 0x1
-_0810FBA8:
- ldrh r1, [r7]
- ldr r0, _0810FBDC @ =gUnknown_083F8408
- adds r0, r5, r0
- ldrb r4, [r0]
- asrs r1, r4
- ands r1, r6
- cmp r1, 0
- bne _0810FBE0
- adds r3, r5, 0
- str r3, [sp]
- bl Random
- adds r1, r6, 0
- ands r1, r0
- ldr r3, [sp]
- cmp r1, 0
- beq _0810FBE0
- adds r0, r6, 0
- lsls r0, r4
- ldrh r1, [r7]
- orrs r0, r1
- strh r0, [r7]
- b _0810FC00
- .align 2, 0
-_0810FBD8: .4byte gSaveBlock1 + 0x13C2
-_0810FBDC: .4byte gUnknown_083F8408
-_0810FBE0:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x7
- bls _0810FBA8
- ldr r2, _0810FC0C @ =gSaveBlock1
- ldr r0, _0810FC10 @ =0x000013c2
- adds r2, r0
- ldr r1, _0810FC14 @ =gUnknown_083F8408
- adds r1, r3, r1
- movs r0, 0x1
- ldrb r1, [r1]
- lsls r0, r1
- ldrh r1, [r2]
- orrs r0, r1
- strh r0, [r2]
-_0810FC00:
- adds r0, r3, 0
- add sp, 0x4
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0810FC0C: .4byte gSaveBlock1
-_0810FC10: .4byte 0x000013c2
-_0810FC14: .4byte gUnknown_083F8408
- thumb_func_end sub_810FB9C
-
- thumb_func_start sub_810FC18
-sub_810FC18: @ 810FC18
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- movs r0, 0
- mov r8, r0
- bl sub_810FCB0
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bne _0810FC3E
- movs r0, 0
- b _0810FC94
-_0810FC34:
- lsls r4, r6
- ldrh r0, [r2]
- eors r4, r0
- strh r4, [r2]
- b _0810FC92
-_0810FC3E:
- movs r5, 0
- ldr r2, _0810FCA0 @ =gSaveBlock1 + 0x13C2
- movs r4, 0x1
-_0810FC44:
- ldrh r1, [r2]
- ldr r7, _0810FCA4 @ =gUnknown_083F8410
- adds r0, r5, r7
- ldrb r6, [r0]
- asrs r1, r6
- ands r1, r4
- cmp r1, 0
- beq _0810FC66
- mov r8, r5
- str r2, [sp]
- bl Random
- adds r1, r4, 0
- ands r1, r0
- ldr r2, [sp]
- cmp r1, 0
- bne _0810FC34
-_0810FC66:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x7
- bls _0810FC44
- ldr r0, _0810FCA8 @ =gSaveBlock1
- ldr r1, _0810FCAC @ =0x000013c2
- adds r4, r0, r1
- ldrh r1, [r4]
- mov r2, r8
- adds r0, r2, r7
- ldrb r2, [r0]
- adds r0, r1, 0
- asrs r0, r2
- movs r3, 0x1
- ands r0, r3
- cmp r0, 0
- beq _0810FC92
- adds r0, r3, 0
- lsls r0, r2
- eors r1, r0
- strh r1, [r4]
-_0810FC92:
- mov r0, r8
-_0810FC94:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0810FCA0: .4byte gSaveBlock1 + 0x13C2
-_0810FCA4: .4byte gUnknown_083F8410
-_0810FCA8: .4byte gSaveBlock1
-_0810FCAC: .4byte 0x000013c2
- thumb_func_end sub_810FC18
-
- thumb_func_start sub_810FCB0
-sub_810FCB0: @ 810FCB0
- push {r4,r5,lr}
- movs r3, 0
- movs r2, 0
- ldr r0, _0810FCE4 @ =gSaveBlock1 + 0x13C2
- ldrh r4, [r0]
- movs r5, 0x1
-_0810FCBC:
- adds r1, r2, 0
- adds r1, 0x8
- adds r0, r4, 0
- asrs r0, r1
- ands r0, r5
- cmp r0, 0
- beq _0810FCD0
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
-_0810FCD0:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x7
- bls _0810FCBC
- adds r0, r3, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0810FCE4: .4byte gSaveBlock1 + 0x13C2
- thumb_func_end sub_810FCB0
-
- thumb_func_start sub_810FCE8
-sub_810FCE8: @ 810FCE8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r5, 0
- ldr r2, _0810FD08 @ =gSaveBlock2
- ldrh r1, [r2, 0xE]
- ldr r0, _0810FD0C @ =0x000003e6
- cmp r1, r0
- bhi _0810FD54
- ldr r7, _0810FD10 @ =gSaveBlock1
- adds r6, r2, 0
- ldr r0, _0810FD14 @ =0x000013c4
- adds r0, r7
- mov r8, r0
- b _0810FD36
- .align 2, 0
-_0810FD08: .4byte gSaveBlock2
-_0810FD0C: .4byte 0x000003e6
-_0810FD10: .4byte gSaveBlock1
-_0810FD14: .4byte 0x000013c4
-_0810FD18:
- ldrh r1, [r6, 0xE]
- ldr r0, _0810FD4C @ =0x000013c4
- adds r4, r7, r0
- ldrh r0, [r4]
- subs r1, r0
- cmp r1, 0xB
- ble _0810FD54
- bl sub_810FC18
- ldrh r0, [r4]
- adds r0, 0xC
- strh r0, [r4]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
-_0810FD36:
- bl sub_810FCB0
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x4
- bhi _0810FD50
- ldrh r0, [r6, 0xE]
- mov r1, r8
- strh r0, [r1]
- b _0810FD54
- .align 2, 0
-_0810FD4C: .4byte 0x000013c4
-_0810FD50:
- cmp r5, 0x8
- bne _0810FD18
-_0810FD54:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_810FCE8
-
- thumb_func_start sub_810FD60
-sub_810FD60: @ 810FD60
- ldr r0, _0810FD74 @ =gSaveBlock1
- ldr r1, _0810FD78 @ =0x000013c2
- adds r0, r1
- ldrh r0, [r0]
- ldr r1, _0810FD7C @ =gSpecialVar_0x8004
- ldrh r1, [r1]
- asrs r0, r1
- movs r1, 0x1
- ands r0, r1
- bx lr
- .align 2, 0
-_0810FD74: .4byte gSaveBlock1
-_0810FD78: .4byte 0x000013c2
-_0810FD7C: .4byte gSpecialVar_0x8004
- thumb_func_end sub_810FD60
-
- thumb_func_start sub_810FD80
-sub_810FD80: @ 810FD80
- ldr r2, _0810FDA4 @ =gSaveBlock1
- ldr r0, _0810FDA8 @ =0x000013c2
- adds r2, r0
- ldrh r1, [r2]
- movs r3, 0x80
- lsls r3, 6
- adds r0, r3, 0
- orrs r0, r1
- movs r3, 0x80
- lsls r3, 1
- adds r1, r3, 0
- orrs r0, r1
- movs r3, 0x80
- lsls r3, 3
- adds r1, r3, 0
- orrs r0, r1
- strh r0, [r2]
- bx lr
- .align 2, 0
-_0810FDA4: .4byte gSaveBlock1
-_0810FDA8: .4byte 0x000013c2
- thumb_func_end sub_810FD80
-
- thumb_func_start sub_810FDAC
-sub_810FDAC: @ 810FDAC
- push {lr}
- movs r3, 0
- movs r2, 0
- ldr r0, _0810FDC8 @ =gSpecialVar_0x8004
- ldrh r0, [r0]
- subs r0, 0x8
- cmp r0, 0x7
- bhi _0810FE0C
- lsls r0, 2
- ldr r1, _0810FDCC @ =_0810FDD0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0810FDC8: .4byte gSpecialVar_0x8004
-_0810FDCC: .4byte _0810FDD0
- .align 2, 0
-_0810FDD0:
- .4byte _0810FE0C
- .4byte _0810FE0C
- .4byte _0810FDF0
- .4byte _0810FDF6
- .4byte _0810FDFC
- .4byte _0810FE02
- .4byte _0810FE08
- .4byte _0810FE0C
-_0810FDF0:
- movs r3, 0
- movs r2, 0x3
- b _0810FE0C
-_0810FDF6:
- movs r3, 0
- movs r2, 0x1
- b _0810FE0C
-_0810FDFC:
- movs r3, 0x1
- movs r2, 0
- b _0810FE0C
-_0810FE02:
- movs r3, 0
- movs r2, 0x4
- b _0810FE0C
-_0810FE08:
- movs r3, 0x1
- movs r2, 0x5
-_0810FE0C:
- ldr r0, _0810FE18 @ =gSaveBlock1 + 0x30B8
- adds r1, r3, 0
- bl sub_810FE1C
- pop {r0}
- bx r0
- .align 2, 0
-_0810FE18: .4byte gSaveBlock1 + 0x30B8
- thumb_func_end sub_810FDAC
-
- thumb_func_start sub_810FE1C
-sub_810FE1C: @ 810FE1C
- push {r4,lr}
- lsls r1, 24
- lsls r2, 24
- lsrs r2, 24
- lsrs r1, 20
- adds r1, r0, r1
- ldrb r0, [r1]
- cmp r0, 0xFF
- bne _0810FED0
- cmp r2, 0x5
- bhi _0810FEBC
- lsls r0, r2, 2
- ldr r1, _0810FE3C @ =_0810FE40
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0810FE3C: .4byte _0810FE40
- .align 2, 0
-_0810FE40:
- .4byte _0810FEBC
- .4byte _0810FE58
- .4byte _0810FE6C
- .4byte _0810FE80
- .4byte _0810FE94
- .4byte _0810FEA8
-_0810FE58:
- ldr r0, _0810FE64 @ =gStringVar1
- ldr r1, _0810FE68 @ =gOtherText_Steven
- bl StringCopy
- b _0810FEF2
- .align 2, 0
-_0810FE64: .4byte gStringVar1
-_0810FE68: .4byte gOtherText_Steven
-_0810FE6C:
- ldr r0, _0810FE78 @ =gStringVar1
- ldr r1, _0810FE7C @ =gOtherText_Brawly
- bl StringCopy
- b _0810FEF2
- .align 2, 0
-_0810FE78: .4byte gStringVar1
-_0810FE7C: .4byte gOtherText_Brawly
-_0810FE80:
- ldr r0, _0810FE8C @ =gStringVar1
- ldr r1, _0810FE90 @ =gOtherText_Winona
- bl StringCopy
- b _0810FEF2
- .align 2, 0
-_0810FE8C: .4byte gStringVar1
-_0810FE90: .4byte gOtherText_Winona
-_0810FE94:
- ldr r0, _0810FEA0 @ =gStringVar1
- ldr r1, _0810FEA4 @ =gOtherText_Phoebe
- bl StringCopy
- b _0810FEF2
- .align 2, 0
-_0810FEA0: .4byte gStringVar1
-_0810FEA4: .4byte gOtherText_Phoebe
-_0810FEA8:
- ldr r0, _0810FEB4 @ =gStringVar1
- ldr r1, _0810FEB8 @ =gOtherText_Glacia
- bl StringCopy
- b _0810FEF2
- .align 2, 0
-_0810FEB4: .4byte gStringVar1
-_0810FEB8: .4byte gOtherText_Glacia
-_0810FEBC:
- ldr r0, _0810FEC8 @ =gStringVar1
- ldr r1, _0810FECC @ =gOtherText_Wallace
- bl StringCopy
- b _0810FEF2
- .align 2, 0
-_0810FEC8: .4byte gStringVar1
-_0810FECC: .4byte gOtherText_Wallace
-_0810FED0:
- ldr r4, _0810FEF8 @ =gStringVar1
- adds r0, r4, 0
- movs r2, 0x7
- bl StringCopyN
- movs r0, 0xFF
- strb r0, [r4, 0x7]
- ldrb r0, [r4]
- cmp r0, 0xFC
- bne _0810FEF2
- ldrb r0, [r4, 0x1]
- cmp r0, 0x15
- bne _0810FEF2
- adds r0, r4, 0
- movs r1, 0x1
- bl ConvertInternationalString
-_0810FEF2:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810FEF8: .4byte gStringVar1
- thumb_func_end sub_810FE1C
-
- thumb_func_start sub_810FEFC
-sub_810FEFC: @ 810FEFC
- push {lr}
- ldr r0, _0810FF20 @ =0x00004095
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x2
- bne _0810FF2C
- bl sub_810FA74
- ldr r0, _0810FF24 @ =gUnknown_02024D26
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _0810FF28
- bl sub_810FB9C
- b _0810FF2C
- .align 2, 0
-_0810FF20: .4byte 0x00004095
-_0810FF24: .4byte gUnknown_02024D26
-_0810FF28:
- bl sub_810FC18
-_0810FF2C:
- pop {r0}
- bx r0
- thumb_func_end sub_810FEFC
-
- thumb_func_start sub_810FF30
-sub_810FF30: @ 810FF30
- ldr r0, _0810FF40 @ =gSaveBlock1
- ldr r1, _0810FF44 @ =0x000013c2
- adds r0, r1
- ldrh r0, [r0]
- lsrs r0, 7
- movs r1, 0x1
- ands r0, r1
- bx lr
- .align 2, 0
-_0810FF40: .4byte gSaveBlock1
-_0810FF44: .4byte 0x000013c2
- thumb_func_end sub_810FF30
-
- thumb_func_start sub_810FF48
-sub_810FF48: @ 810FF48
- ldr r0, _0810FF58 @ =gSaveBlock1
- ldr r1, _0810FF5C @ =0x000013c2
- adds r0, r1
- ldrh r2, [r0]
- movs r1, 0x80
- orrs r1, r2
- strh r1, [r0]
- bx lr
- .align 2, 0
-_0810FF58: .4byte gSaveBlock1
-_0810FF5C: .4byte 0x000013c2
- thumb_func_end sub_810FF48
-
- thumb_func_start sub_810FF60
-sub_810FF60: @ 810FF60
- push {lr}
- ldr r0, _0810FF74 @ =gSpecialVar_0x8004
- ldrb r0, [r0]
- bl sub_810FB10
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_0810FF74: .4byte gSpecialVar_0x8004
- thumb_func_end sub_810FF60
-
.align 2, 0 @ Don't pad with nop.
diff --git a/asm/rom_800D42C.s b/asm/rom_800D42C.s
index fdb390563..57a727072 100644
--- a/asm/rom_800D42C.s
+++ b/asm/rom_800D42C.s
@@ -493,7 +493,7 @@ _0800D7B4: .4byte gPlttBufferFaded + 0xB8
thumb_func_start sub_800D7B8
sub_800D7B8: @ 800D7B8
push {r4,r5,lr}
- ldr r0, _0800D7DC @ =gUnknown_020239F8
+ ldr r0, _0800D7DC @ =gBattleTypeFlags
ldrh r1, [r0]
ldr r0, _0800D7E0 @ =0x00000902
ands r0, r1
@@ -508,7 +508,7 @@ sub_800D7B8: @ 800D7B8
ldr r0, _0800D7F4 @ =gBattleTerrainPalette_BattleTower
b _0800DA66
.align 2, 0
-_0800D7DC: .4byte gUnknown_020239F8
+_0800D7DC: .4byte gBattleTypeFlags
_0800D7E0: .4byte 0x00000902
_0800D7E4: .4byte gBattleTerrainTiles_Building
_0800D7E8: .4byte 0x06008000
@@ -631,7 +631,7 @@ _0800D8F4:
.4byte _0800DA84
_0800D918:
ldr r4, _0800D954 @ =gBattleTerrainTable
- ldr r5, _0800D958 @ =gUnknown_0300428C
+ ldr r5, _0800D958 @ =gBattleTerrain
ldrb r1, [r5]
lsls r0, r1, 2
adds r0, r1
@@ -659,7 +659,7 @@ _0800D918:
b _0800DA66
.align 2, 0
_0800D954: .4byte gBattleTerrainTable
-_0800D958: .4byte gUnknown_0300428C
+_0800D958: .4byte gBattleTerrain
_0800D95C: .4byte 0x06008000
_0800D960: .4byte 0x0600d000
_0800D964:
@@ -832,7 +832,7 @@ sub_800DAF8: @ 800DAF8
lsls r1, 24
lsrs r3, r1, 24
movs r4, 0
- ldr r0, _0800DB38 @ =gUnknown_020239F8
+ ldr r0, _0800DB38 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x40
ands r0, r1
@@ -855,7 +855,7 @@ sub_800DAF8: @ 800DAF8
beq _0800DB4A
b _0800DB84
.align 2, 0
-_0800DB38: .4byte gUnknown_020239F8
+_0800DB38: .4byte gBattleTypeFlags
_0800DB3C: .4byte gTasks
_0800DB40:
cmp r3, 0x2
@@ -984,247 +984,7 @@ _0800DC1C: .4byte gTasks
_0800DC20: .4byte 0x00006001
thumb_func_end sub_800DAF8
- thumb_func_start sub_800DC24
-sub_800DC24: @ 800DC24
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r0, _0800DC40 @ =gUnknown_02024D26
- ldrb r2, [r0]
- cmp r2, 0x3
- bne _0800DC4C
- ldr r4, _0800DC44 @ =gUnknown_03004210
- ldr r1, _0800DC48 @ =gUnknown_08400E57
- movs r0, 0x2
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0xA0
- movs r3, 0xD
- b _0800DDCA
- .align 2, 0
-_0800DC40: .4byte gUnknown_02024D26
-_0800DC44: .4byte gUnknown_03004210
-_0800DC48: .4byte gUnknown_08400E57
-_0800DC4C:
- ldr r0, _0800DC80 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0800DD38
- cmp r2, 0x1
- bne _0800DCCC
- ldr r2, _0800DC84 @ =gLinkPlayers
- ldr r0, _0800DC88 @ =0x02000000
- ldr r1, _0800DC8C @ =0x000160cb
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r0, [r0, 0x18]
- cmp r0, 0x1
- beq _0800DC9C
- cmp r0, 0x1
- bgt _0800DC90
- cmp r0, 0
- bne _0800DC7E
- b _0800DDA8
-_0800DC7E:
- b _0800DE1C
- .align 2, 0
-_0800DC80: .4byte gUnknown_020239F8
-_0800DC84: .4byte gLinkPlayers
-_0800DC88: .4byte 0x02000000
-_0800DC8C: .4byte 0x000160cb
-_0800DC90:
- cmp r0, 0x2
- bne _0800DC96
- b _0800DDA8
-_0800DC96:
- cmp r0, 0x3
- beq _0800DC9C
- b _0800DE1C
-_0800DC9C:
- ldr r4, _0800DCC0 @ =gUnknown_03004210
- ldr r1, _0800DCC4 @ =gUnknown_08400E48
- movs r5, 0x2
- str r5, [sp]
- adds r0, r4, 0
- movs r2, 0xA0
- movs r3, 0x15
- bl InitWindow
- adds r0, r4, 0
- bl sub_8002F44
- ldr r1, _0800DCC8 @ =gUnknown_08400E4F
- str r5, [sp]
- adds r0, r4, 0
- movs r2, 0xA8
- movs r3, 0x6
- b _0800DDCA
- .align 2, 0
-_0800DCC0: .4byte gUnknown_03004210
-_0800DCC4: .4byte gUnknown_08400E48
-_0800DCC8: .4byte gUnknown_08400E4F
-_0800DCCC:
- ldr r2, _0800DCF0 @ =gLinkPlayers
- ldr r0, _0800DCF4 @ =0x02000000
- ldr r1, _0800DCF8 @ =0x000160cb
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r0, [r0, 0x18]
- cmp r0, 0x1
- beq _0800DDA8
- cmp r0, 0x1
- bgt _0800DCFC
- cmp r0, 0
- beq _0800DD08
- b _0800DE1C
- .align 2, 0
-_0800DCF0: .4byte gLinkPlayers
-_0800DCF4: .4byte 0x02000000
-_0800DCF8: .4byte 0x000160cb
-_0800DCFC:
- cmp r0, 0x2
- beq _0800DD08
- cmp r0, 0x3
- beq _0800DD06
- b _0800DE1C
-_0800DD06:
- b _0800DDA8
-_0800DD08:
- ldr r4, _0800DD2C @ =gUnknown_03004210
- ldr r1, _0800DD30 @ =gUnknown_08400E48
- movs r5, 0x2
- str r5, [sp]
- adds r0, r4, 0
- movs r2, 0xA0
- movs r3, 0x15
- bl InitWindow
- adds r0, r4, 0
- bl sub_8002F44
- ldr r1, _0800DD34 @ =gUnknown_08400E4F
- str r5, [sp]
- adds r0, r4, 0
- movs r2, 0xA8
- movs r3, 0x6
- b _0800DDCA
- .align 2, 0
-_0800DD2C: .4byte gUnknown_03004210
-_0800DD30: .4byte gUnknown_08400E48
-_0800DD34: .4byte gUnknown_08400E4F
-_0800DD38:
- cmp r2, 0x1
- bne _0800DD90
- ldr r2, _0800DD78 @ =gLinkPlayers
- ldr r0, _0800DD7C @ =0x02000000
- ldr r1, _0800DD80 @ =0x000160cb
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r0, [r0, 0x18]
- cmp r0, 0
- beq _0800DDA8
- ldr r4, _0800DD84 @ =gUnknown_03004210
- ldr r1, _0800DD88 @ =gUnknown_08400E48
- movs r5, 0x2
- str r5, [sp]
- adds r0, r4, 0
- movs r2, 0xA0
- movs r3, 0x15
- bl InitWindow
- adds r0, r4, 0
- bl sub_8002F44
- ldr r1, _0800DD8C @ =gUnknown_08400E4F
- str r5, [sp]
- adds r0, r4, 0
- movs r2, 0xA8
- movs r3, 0x6
- b _0800DDCA
- .align 2, 0
-_0800DD78: .4byte gLinkPlayers
-_0800DD7C: .4byte 0x02000000
-_0800DD80: .4byte 0x000160cb
-_0800DD84: .4byte gUnknown_03004210
-_0800DD88: .4byte gUnknown_08400E48
-_0800DD8C: .4byte gUnknown_08400E4F
-_0800DD90:
- ldr r2, _0800DDD8 @ =gLinkPlayers
- ldr r0, _0800DDDC @ =0x02000000
- ldr r1, _0800DDE0 @ =0x000160cb
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r0, [r0, 0x18]
- cmp r0, 0
- beq _0800DDF0
-_0800DDA8:
- ldr r4, _0800DDE4 @ =gUnknown_03004210
- ldr r1, _0800DDE8 @ =gUnknown_08400E48
- movs r5, 0x2
- str r5, [sp]
- adds r0, r4, 0
- movs r2, 0xA0
- movs r3, 0x6
- bl InitWindow
- adds r0, r4, 0
- bl sub_8002F44
- ldr r1, _0800DDEC @ =gUnknown_08400E4F
- str r5, [sp]
- adds r0, r4, 0
- movs r2, 0xA8
- movs r3, 0x15
-_0800DDCA:
- bl InitWindow
- adds r0, r4, 0
- bl sub_8002F44
- b _0800DE1C
- .align 2, 0
-_0800DDD8: .4byte gLinkPlayers
-_0800DDDC: .4byte 0x02000000
-_0800DDE0: .4byte 0x000160cb
-_0800DDE4: .4byte gUnknown_03004210
-_0800DDE8: .4byte gUnknown_08400E48
-_0800DDEC: .4byte gUnknown_08400E4F
-_0800DDF0:
- ldr r4, _0800DE24 @ =gUnknown_03004210
- ldr r1, _0800DE28 @ =gUnknown_08400E48
- movs r5, 0x2
- str r5, [sp]
- adds r0, r4, 0
- movs r2, 0xA0
- movs r3, 0x15
- bl InitWindow
- adds r0, r4, 0
- bl sub_8002F44
- ldr r1, _0800DE2C @ =gUnknown_08400E4F
- str r5, [sp]
- adds r0, r4, 0
- movs r2, 0xA8
- movs r3, 0x6
- bl InitWindow
- adds r0, r4, 0
- bl sub_8002F44
-_0800DE1C:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0800DE24: .4byte gUnknown_03004210
-_0800DE28: .4byte gUnknown_08400E48
-_0800DE2C: .4byte gUnknown_08400E4F
- thumb_func_end sub_800DC24
+ .section .text_800DC24
thumb_func_start sub_800DE30
sub_800DE30: @ 800DE30
@@ -1263,7 +1023,7 @@ _0800DE68:
_0800DE6E:
b _0800E212
_0800DE70:
- ldr r0, _0800DED0 @ =gUnknown_020239F8
+ ldr r0, _0800DED0 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x40
ands r0, r1
@@ -1310,7 +1070,7 @@ _0800DE88:
bge _0800DE88
b _0800DF70
.align 2, 0
-_0800DED0: .4byte gUnknown_020239F8
+_0800DED0: .4byte gBattleTypeFlags
_0800DED4: .4byte gLinkPlayers
_0800DED8: .4byte gUnknown_081F9680
_0800DEDC: .4byte gUnknown_081F9680 + 0x8
@@ -1714,7 +1474,7 @@ _0800E238: .4byte 0xfffffc00
thumb_func_start sub_800E23C
sub_800E23C: @ 800E23C
push {r4,r5,lr}
- ldr r0, _0800E29C @ =gUnknown_020239F8
+ ldr r0, _0800E29C @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x2
ands r0, r1
@@ -1756,7 +1516,7 @@ sub_800E23C: @ 800E23C
bl LoadCompressedObjectPic
b _0800E3FC
.align 2, 0
-_0800E29C: .4byte gUnknown_020239F8
+_0800E29C: .4byte gBattleTypeFlags
_0800E2A0: .4byte gVersusFrameGfx
_0800E2A4: .4byte 0x06004000
_0800E2A8: .4byte gVersusFrameTilemap
@@ -1861,7 +1621,7 @@ _0800E3A0:
cmp r0, 0
bne _0800E3EC
ldr r4, _0800E3DC @ =gBattleTerrainTable
- ldr r5, _0800E3E0 @ =gUnknown_0300428C
+ ldr r5, _0800E3E0 @ =gBattleTerrain
ldrb r1, [r5]
lsls r0, r1, 2
adds r0, r1
@@ -1885,7 +1645,7 @@ _0800E3D2:
b _0800E3FC
.align 2, 0
_0800E3DC: .4byte gBattleTerrainTable
-_0800E3E0: .4byte gUnknown_0300428C
+_0800E3E0: .4byte gBattleTerrain
_0800E3E4: .4byte 0x06004000
_0800E3E8: .4byte 0x0600e000
_0800E3EC:
@@ -1959,7 +1719,7 @@ _0800E474:
.align 2, 0
_0800E480: .4byte gUnknown_08D004E0
_0800E484:
- ldr r0, _0800E4A8 @ =gUnknown_020239F8
+ ldr r0, _0800E4A8 @ =gBattleTypeFlags
ldrh r1, [r0]
ldr r0, _0800E4AC @ =0x00000902
ands r0, r1
@@ -1979,7 +1739,7 @@ _0800E492:
ldr r0, _0800E4B4 @ =gBattleTerrainTiles_Cave
b _0800E57E
.align 2, 0
-_0800E4A8: .4byte gUnknown_020239F8
+_0800E4A8: .4byte gBattleTypeFlags
_0800E4AC: .4byte 0x00000902
_0800E4B0: .4byte gGameVersion
_0800E4B4: .4byte gBattleTerrainTiles_Cave
@@ -2039,7 +1799,7 @@ _0800E50C:
.4byte _0800E57C
_0800E530:
ldr r2, _0800E544 @ =gBattleTerrainTable
- ldr r0, _0800E548 @ =gUnknown_0300428C
+ ldr r0, _0800E548 @ =gBattleTerrain
ldrb r1, [r0]
lsls r0, r1, 2
adds r0, r1
@@ -2049,7 +1809,7 @@ _0800E530:
b _0800E57E
.align 2, 0
_0800E544: .4byte gBattleTerrainTable
-_0800E548: .4byte gUnknown_0300428C
+_0800E548: .4byte gBattleTerrain
_0800E54C:
ldr r0, _0800E550 @ =gBattleTerrainTiles_Stadium
b _0800E57E
@@ -2090,7 +1850,7 @@ _0800E57E:
_0800E588: .4byte gBattleTerrainTiles_Building
_0800E58C: .4byte 0x06008000
_0800E590:
- ldr r0, _0800E5B4 @ =gUnknown_020239F8
+ ldr r0, _0800E5B4 @ =gBattleTypeFlags
ldrh r1, [r0]
ldr r0, _0800E5B8 @ =0x00000902
ands r0, r1
@@ -2110,7 +1870,7 @@ _0800E59E:
ldr r0, _0800E5C0 @ =gBattleTerrainTilemap_Cave
b _0800E68A
.align 2, 0
-_0800E5B4: .4byte gUnknown_020239F8
+_0800E5B4: .4byte gBattleTypeFlags
_0800E5B8: .4byte 0x00000902
_0800E5BC: .4byte gGameVersion
_0800E5C0: .4byte gBattleTerrainTilemap_Cave
@@ -2170,7 +1930,7 @@ _0800E618:
.4byte _0800E688
_0800E63C:
ldr r2, _0800E650 @ =gBattleTerrainTable
- ldr r0, _0800E654 @ =gUnknown_0300428C
+ ldr r0, _0800E654 @ =gBattleTerrain
ldrb r1, [r0]
lsls r0, r1, 2
adds r0, r1
@@ -2181,7 +1941,7 @@ _0800E63C:
b _0800E68A
.align 2, 0
_0800E650: .4byte gBattleTerrainTable
-_0800E654: .4byte gUnknown_0300428C
+_0800E654: .4byte gBattleTerrain
_0800E658:
ldr r0, _0800E65C @ =gBattleTerrainTilemap_Stadium
b _0800E68A
@@ -2222,7 +1982,7 @@ _0800E68A:
_0800E694: .4byte gBattleTerrainTilemap_Building
_0800E698: .4byte 0x0600d000
_0800E69C:
- ldr r0, _0800E6C0 @ =gUnknown_020239F8
+ ldr r0, _0800E6C0 @ =gBattleTypeFlags
ldrh r1, [r0]
ldr r0, _0800E6C4 @ =0x00000902
ands r0, r1
@@ -2242,7 +2002,7 @@ _0800E6AA:
ldr r0, _0800E6CC @ =gBattleTerrainPalette_Groudon
b _0800E7A6
.align 2, 0
-_0800E6C0: .4byte gUnknown_020239F8
+_0800E6C0: .4byte gBattleTypeFlags
_0800E6C4: .4byte 0x00000902
_0800E6C8: .4byte gGameVersion
_0800E6CC: .4byte gBattleTerrainPalette_Groudon
@@ -2305,7 +2065,7 @@ _0800E72C:
.4byte _0800E7A4
_0800E750:
ldr r2, _0800E764 @ =gBattleTerrainTable
- ldr r0, _0800E768 @ =gUnknown_0300428C
+ ldr r0, _0800E768 @ =gBattleTerrain
ldrb r1, [r0]
lsls r0, r1, 2
adds r0, r1
@@ -2316,7 +2076,7 @@ _0800E750:
b _0800E7A6
.align 2, 0
_0800E764: .4byte gBattleTerrainTable
-_0800E768: .4byte gUnknown_0300428C
+_0800E768: .4byte gBattleTerrain
_0800E76C:
ldr r0, _0800E770 @ =gBattleTerrainPalette_BuildingGym
b _0800E7A6
@@ -2376,7 +2136,7 @@ _0800E7BC:
thumb_func_start sub_800E7C4
sub_800E7C4: @ 800E7C4
push {lr}
- ldr r0, _0800E7E4 @ =gUnknown_020239F8
+ ldr r0, _0800E7E4 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x40
ands r0, r1
@@ -2390,7 +2150,7 @@ sub_800E7C4: @ 800E7C4
strb r0, [r1]
b _0800E7F4
.align 2, 0
-_0800E7E4: .4byte gUnknown_020239F8
+_0800E7E4: .4byte gBattleTypeFlags
_0800E7E8: .4byte sub_800F104
_0800E7EC: .4byte gUnknown_02024D1E
_0800E7F0:
@@ -2488,8 +2248,8 @@ _0800E868:
strh r1, [r0]
ldr r0, _0800E94C @ =gUnknown_030041B8
strh r1, [r0]
- bl sub_8081D3C
- ldr r1, _0800E950 @ =gUnknown_0300428C
+ bl GetBattleTerrain
+ ldr r1, _0800E950 @ =gBattleTerrain
strb r0, [r1]
ldr r0, _0800E954 @ =gUnknown_03004210
adds r1, r4, 0
@@ -2512,7 +2272,7 @@ _0800E868:
ldr r0, _0800E96C @ =sub_800FCFC
bl SetVBlankCallback
bl sub_800B884
- ldr r0, _0800E970 @ =gUnknown_020239F8
+ ldr r0, _0800E970 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x40
ands r0, r1
@@ -2539,7 +2299,7 @@ _0800E940: .4byte gUnknown_03004288
_0800E944: .4byte gUnknown_03004280
_0800E948: .4byte gUnknown_030041B0
_0800E94C: .4byte gUnknown_030041B8
-_0800E950: .4byte gUnknown_0300428C
+_0800E950: .4byte gBattleTerrain
_0800E954: .4byte gUnknown_03004210
_0800E958: .4byte gUnknown_030041D0
_0800E95C: .4byte gWindowConfig_81E71D0
@@ -2547,13 +2307,13 @@ _0800E960: .4byte gUnknown_03004250
_0800E964: .4byte gWindowConfig_81E71EC
_0800E968: .4byte gReservedSpritePaletteCount
_0800E96C: .4byte sub_800FCFC
-_0800E970: .4byte gUnknown_020239F8
+_0800E970: .4byte gBattleTypeFlags
_0800E974: .4byte sub_800F298
_0800E978:
ldr r0, _0800E9CC @ =sub_800EC9C
bl SetMainCallback2
_0800E97E:
- ldr r0, _0800E9D0 @ =gUnknown_020239F8
+ ldr r0, _0800E9D0 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x2
ands r0, r1
@@ -2592,7 +2352,7 @@ _0800E9AE:
bx r0
.align 2, 0
_0800E9CC: .4byte sub_800EC9C
-_0800E9D0: .4byte gUnknown_020239F8
+_0800E9D0: .4byte gBattleTypeFlags
_0800E9D4: .4byte gEnemyParty
_0800E9D8: .4byte gTrainerBattleOpponent
_0800E9DC: .4byte gMain
@@ -2755,7 +2515,7 @@ sub_800EB08: @ 800EB08
mov r6, r9
mov r5, r8
push {r5-r7}
- ldr r0, _0800EB84 @ =gUnknown_020239F8
+ ldr r0, _0800EB84 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x2
ands r0, r1
@@ -2815,7 +2575,7 @@ _0800EB4E:
strb r1, [r0]
b _0800EC28
.align 2, 0
-_0800EB84: .4byte gUnknown_020239F8
+_0800EB84: .4byte gBattleTypeFlags
_0800EB88: .4byte gEnigmaBerries
_0800EB8C: .4byte gSaveBlock1
_0800EB90: .4byte 0x00003160
@@ -2996,7 +2756,7 @@ _0800ECE4:
.4byte _0800EFB4
.4byte _0800EFCC
_0800ED0C:
- ldr r2, _0800ED54 @ =gUnknown_020239F8
+ ldr r2, _0800ED54 @ =gBattleTypeFlags
ldrh r1, [r2]
movs r0, 0x2
ands r0, r1
@@ -3030,7 +2790,7 @@ _0800ED2E:
strb r5, [r0]
b _0800F008
.align 2, 0
-_0800ED54: .4byte gUnknown_020239F8
+_0800ED54: .4byte gBattleTypeFlags
_0800ED58: .4byte gReceivedRemoteLinkPlayers
_0800ED5C: .4byte 0x02000000
_0800ED60: .4byte gUnknown_02024D1E
@@ -3063,15 +2823,15 @@ _0800ED8A:
bne _0800EDBC
cmp r4, 0
bne _0800EDB0
- ldr r0, _0800EDAC @ =gUnknown_020239F8
+ ldr r0, _0800EDAC @ =gBattleTypeFlags
ldrh r1, [r0]
movs r2, 0xC
b _0800EDB6
.align 2, 0
_0800EDA8: .4byte gBlockRecvBuffer
-_0800EDAC: .4byte gUnknown_020239F8
+_0800EDAC: .4byte gBattleTypeFlags
_0800EDB0:
- ldr r0, _0800EDE0 @ =gUnknown_020239F8
+ ldr r0, _0800EDE0 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r2, 0x8
_0800EDB6:
@@ -3093,15 +2853,15 @@ _0800EDBC:
bne _0800EDF4
cmp r4, 0
bne _0800EDE8
- ldr r0, _0800EDE0 @ =gUnknown_020239F8
+ ldr r0, _0800EDE0 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r2, 0xC
b _0800EDEE
.align 2, 0
-_0800EDE0: .4byte gUnknown_020239F8
+_0800EDE0: .4byte gBattleTypeFlags
_0800EDE4: .4byte gBlockRecvBuffer
_0800EDE8:
- ldr r0, _0800EE04 @ =gUnknown_020239F8
+ ldr r0, _0800EE04 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r2, 0x8
_0800EDEE:
@@ -3114,10 +2874,10 @@ _0800EDF4:
bne _0800EE38
ldrh r1, [r6]
ldr r0, _0800EE08 @ =0x00000101
- ldr r2, _0800EE04 @ =gUnknown_020239F8
+ ldr r2, _0800EE04 @ =gBattleTypeFlags
b _0800EE1A
.align 2, 0
-_0800EE04: .4byte gUnknown_020239F8
+_0800EE04: .4byte gBattleTypeFlags
_0800EE08: .4byte 0x00000101
_0800EE0C:
adds r3, 0x1
@@ -3336,7 +3096,7 @@ _0800EFCC:
str r0, [r1]
ldr r0, _0800F020 @ =sub_800F808
bl SetMainCallback2
- ldr r3, _0800F024 @ =gUnknown_020239F8
+ ldr r3, _0800F024 @ =gBattleTypeFlags
ldrh r2, [r3]
movs r0, 0x2
ands r0, r2
@@ -3360,7 +3120,7 @@ _0800F014: .4byte gUnknown_030042D0
_0800F018: .4byte gMain
_0800F01C: .4byte sub_8010824
_0800F020: .4byte sub_800F808
-_0800F024: .4byte gUnknown_020239F8
+_0800F024: .4byte gBattleTypeFlags
_0800F028: .4byte gTrainerBattleOpponent
thumb_func_end sub_800EC9C
@@ -3438,7 +3198,7 @@ _0800F03E:
beq _0800F0D4
adds r0, r7, 0
movs r1, 0
- bl sub_814A518
+ bl PadNameString
_0800F0D4:
adds r7, 0x20
movs r0, 0x1
@@ -3593,7 +3353,7 @@ _0800F1FA:
ldr r0, [r1, 0x8]
mov r2, r9
str r0, [r2]
- ldr r0, _0800F238 @ =gUnknown_020239F8
+ ldr r0, _0800F238 @ =gBattleTypeFlags
ldrh r0, [r0]
mov r2, r8
strh r0, [r2]
@@ -3608,7 +3368,7 @@ _0800F228: .4byte gBlockRecvBuffer
_0800F22C: .4byte gUnknown_02023A00
_0800F230: .4byte gUnknown_02024D1E
_0800F234: .4byte gMain
-_0800F238: .4byte gUnknown_020239F8
+_0800F238: .4byte gBattleTypeFlags
_0800F23C: .4byte sub_800F104
_0800F240:
ldr r0, _0800F258 @ =gPaletteFade
@@ -3628,7 +3388,7 @@ _0800F25C:
ldrb r0, [r0]
cmp r0, 0
bne _0800F27A
- ldr r1, _0800F28C @ =gUnknown_020239F8
+ ldr r1, _0800F28C @ =gBattleTypeFlags
mov r2, r8
ldrh r0, [r2]
strh r0, [r1]
@@ -3647,7 +3407,7 @@ _0800F27A:
bx r0
.align 2, 0
_0800F288: .4byte gReceivedRemoteLinkPlayers
-_0800F28C: .4byte gUnknown_020239F8
+_0800F28C: .4byte gBattleTypeFlags
_0800F290: .4byte gMain
_0800F294: .4byte sub_800E7F8
thumb_func_end sub_800F104
@@ -3740,15 +3500,15 @@ _0800F34E:
bne _0800F380
cmp r6, 0
bne _0800F374
- ldr r0, _0800F370 @ =gUnknown_020239F8
+ ldr r0, _0800F370 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r2, 0xC
b _0800F37A
.align 2, 0
_0800F36C: .4byte gBlockRecvBuffer
-_0800F370: .4byte gUnknown_020239F8
+_0800F370: .4byte gBattleTypeFlags
_0800F374:
- ldr r0, _0800F3B0 @ =gUnknown_020239F8
+ ldr r0, _0800F3B0 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r2, 0x8
_0800F37A:
@@ -3777,15 +3537,15 @@ _0800F39E:
bne _0800F3C4
cmp r6, 0
bne _0800F3B8
- ldr r0, _0800F3B0 @ =gUnknown_020239F8
+ ldr r0, _0800F3B0 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r2, 0xC
b _0800F3BE
.align 2, 0
-_0800F3B0: .4byte gUnknown_020239F8
+_0800F3B0: .4byte gBattleTypeFlags
_0800F3B4: .4byte gBlockRecvBuffer
_0800F3B8:
- ldr r0, _0800F408 @ =gUnknown_020239F8
+ ldr r0, _0800F408 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r2, 0x8
_0800F3BE:
@@ -3799,7 +3559,7 @@ _0800F3C4:
ldrh r2, [r0]
ldr r1, _0800F410 @ =0x00000101
adds r3, r0, 0
- ldr r5, _0800F408 @ =gUnknown_020239F8
+ ldr r5, _0800F408 @ =gBattleTypeFlags
cmp r2, r1
beq _0800F3F6
_0800F3D6:
@@ -3832,7 +3592,7 @@ _0800F3FE:
movs r1, 0xC
b _0800F418
.align 2, 0
-_0800F408: .4byte gUnknown_020239F8
+_0800F408: .4byte gBattleTypeFlags
_0800F40C: .4byte gBlockRecvBuffer
_0800F410: .4byte 0x00000101
_0800F414:
@@ -4312,7 +4072,7 @@ _0800F7A4:
str r0, [r1]
ldr r0, _0800F7FC @ =sub_800F808
bl SetMainCallback2
- ldr r3, _0800F800 @ =gUnknown_020239F8
+ ldr r3, _0800F800 @ =gBattleTypeFlags
ldrh r2, [r3]
movs r0, 0x2
ands r0, r2
@@ -4338,7 +4098,7 @@ _0800F7F0: .4byte gUnknown_030042D0
_0800F7F4: .4byte gMain
_0800F7F8: .4byte sub_8010824
_0800F7FC: .4byte sub_800F808
-_0800F800: .4byte gUnknown_020239F8
+_0800F800: .4byte gBattleTypeFlags
_0800F804: .4byte gTrainerBattleOpponent
thumb_func_end sub_800F298
@@ -4484,7 +4244,7 @@ sub_800F8E8: @ 800F8E8
movs r0, 0
b _0800FCB4
_0800F90C:
- ldr r0, _0800F93C @ =gUnknown_020239F8
+ ldr r0, _0800F93C @ =gBattleTypeFlags
ldrh r1, [r0]
ldr r0, _0800F940 @ =0x00000908
ands r0, r1
@@ -4508,7 +4268,7 @@ _0800F920:
ldr r4, [sp, 0x18]
b _0800FC86
.align 2, 0
-_0800F93C: .4byte gUnknown_020239F8
+_0800F93C: .4byte gBattleTypeFlags
_0800F940: .4byte 0x00000908
_0800F944: .4byte gTrainers
_0800F948:
@@ -4939,7 +4699,7 @@ _0800FC86:
bge _0800FC8E
b _0800F948
_0800FC8E:
- ldr r2, _0800FCD0 @ =gUnknown_020239F8
+ ldr r2, _0800FCD0 @ =gBattleTypeFlags
ldr r1, _0800FCCC @ =gTrainers
ldr r4, [sp, 0x20]
ldr r3, [sp, 0x14]
@@ -4972,7 +4732,7 @@ _0800FCB4:
_0800FCC4: .4byte gSpeciesNames
_0800FCC8: .4byte gBattleMoves + 0x4 @ PP offset
_0800FCCC: .4byte gTrainers
-_0800FCD0: .4byte gUnknown_020239F8
+_0800FCD0: .4byte gBattleTypeFlags
thumb_func_end sub_800F8E8
thumb_func_start sub_800FCD4
@@ -5172,7 +4932,7 @@ sub_800FE40: @ 800FE40
ldr r2, _0800FE8C @ =0x000160cb
adds r0, r2
ldrb r2, [r0]
- ldr r0, _0800FE90 @ =gUnknown_020239F8
+ ldr r0, _0800FE90 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x40
ands r0, r1
@@ -5194,7 +4954,7 @@ sub_800FE40: @ 800FE40
.align 2, 0
_0800FE88: .4byte 0x02000000
_0800FE8C: .4byte 0x000160cb
-_0800FE90: .4byte gUnknown_020239F8
+_0800FE90: .4byte gBattleTypeFlags
_0800FE94: .4byte gLinkPlayers
_0800FE98:
cmp r0, 0x2
@@ -6209,7 +5969,7 @@ _0801065A:
cmp r0, 0
bne _080106FA
ldr r0, _0801069C @ =objc_dp11b_pingpong
- bl object_new_hidden_with_callback
+ bl CreateInvisibleSpriteWithCallback
lsls r0, 24
lsrs r5, r0, 24
mov r0, r8
@@ -6574,7 +6334,7 @@ _08010906:
strb r1, [r2]
ldr r3, _08010B00 @ =gUnknown_02024C08
strb r1, [r3]
- ldr r4, _08010B04 @ =word_2024DB8
+ ldr r4, _08010B04 @ =gBattleWeather
strh r1, [r4]
ldr r1, _08010B08 @ =gUnknown_02024DBC
movs r2, 0
@@ -6588,7 +6348,7 @@ _0801092E:
movs r0, 0
ldr r1, _08010B0C @ =gUnknown_02024C6C
str r0, [r1]
- ldr r2, _08010B10 @ =gUnknown_020239F8
+ ldr r2, _08010B10 @ =gBattleTypeFlags
ldrh r1, [r2]
movs r0, 0x2
ands r0, r1
@@ -6804,10 +6564,10 @@ _08010AF4: .4byte gUnknown_02024C80
_08010AF8: .4byte gUnknown_02024C7A
_08010AFC: .4byte gUnknown_02024C07
_08010B00: .4byte gUnknown_02024C08
-_08010B04: .4byte word_2024DB8
+_08010B04: .4byte gBattleWeather
_08010B08: .4byte gUnknown_02024DBC
_08010B0C: .4byte gUnknown_02024C6C
-_08010B10: .4byte gUnknown_020239F8
+_08010B10: .4byte gBattleTypeFlags
_08010B14: .4byte gSaveBlock2
_08010B18: .4byte 0x02000000
_08010B1C: .4byte 0x00016084
@@ -7811,7 +7571,7 @@ bc_load_battlefield: @ 8011334
bl battle_get_side_with_given_state
ldr r4, _08011370 @ =gUnknown_02024A60
strb r0, [r4]
- ldr r0, _08011374 @ =gUnknown_0300428C
+ ldr r0, _08011374 @ =gBattleTerrain
ldrb r1, [r0]
movs r0, 0
bl dp01_build_cmdbuf_x2E_a
@@ -7830,7 +7590,7 @@ _08011364:
.align 2, 0
_0801136C: .4byte gUnknown_02024A64
_08011370: .4byte gUnknown_02024A60
-_08011374: .4byte gUnknown_0300428C
+_08011374: .4byte gBattleTerrain
_08011378: .4byte gUnknown_030042D4
_0801137C: .4byte sub_8011384
_08011380: .4byte gUnknown_02024D1E
@@ -7861,7 +7621,7 @@ _080113A4:
mov r9, r0
mov r8, r2
_080113AC:
- ldr r0, _080113F0 @ =gUnknown_020239F8
+ ldr r0, _080113F0 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x80
ands r0, r1
@@ -7891,7 +7651,7 @@ _080113E0: .4byte gUnknown_02024A64
_080113E4: .4byte gUnknown_02024A60
_080113E8: .4byte gUnknown_02024A68
_080113EC: .4byte gBattleMons
-_080113F0: .4byte gUnknown_020239F8
+_080113F0: .4byte gBattleTypeFlags
_080113F4:
mov r2, r8
ldrb r0, [r2]
@@ -8006,7 +7766,7 @@ _080114BE:
ldrb r0, [r4]
bl dp01_battle_side_mark_buffer_for_execution
_080114D8:
- ldr r5, _08011544 @ =gUnknown_020239F8
+ ldr r5, _08011544 @ =gBattleTypeFlags
ldrh r1, [r5]
movs r0, 0x8
ands r0, r1
@@ -8051,7 +7811,7 @@ _08011534: .4byte gUnknown_02024260
_08011538: .4byte gUnknown_02024A60
_0801153C: .4byte 0x020160bc
_08011540: .4byte gUnknown_02024A98
-_08011544: .4byte gUnknown_020239F8
+_08011544: .4byte gBattleTypeFlags
_08011548: .4byte 0x00000902
_0801154C:
ldrb r0, [r4]
@@ -8080,7 +7840,7 @@ _0801154C:
ldrb r0, [r4]
bl dp01_battle_side_mark_buffer_for_execution
_08011588:
- ldr r0, _080115EC @ =gUnknown_020239F8
+ ldr r0, _080115EC @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x40
ands r0, r1
@@ -8129,7 +7889,7 @@ _080115DA:
bx r0
.align 2, 0
_080115E8: .4byte 0x00000902
-_080115EC: .4byte gUnknown_020239F8
+_080115EC: .4byte gBattleTypeFlags
_080115F0: .4byte gUnknown_02024A60
_080115F4: .4byte gUnknown_02024A68
_080115F8: .4byte gUnknown_030042D4
@@ -8148,7 +7908,7 @@ bc_801333C: @ 8011600
beq _08011612
b _0801178C
_08011612:
- ldr r0, _0801165C @ =gUnknown_020239F8
+ ldr r0, _0801165C @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x8
ands r0, r1
@@ -8186,7 +7946,7 @@ _08011650:
b _0801167A
.align 2, 0
_08011658: .4byte gUnknown_02024A64
-_0801165C: .4byte gUnknown_020239F8
+_0801165C: .4byte gBattleTypeFlags
_08011660: .4byte gEnemyParty
_08011664: .4byte 0x0000ffff
_08011668:
@@ -8438,7 +8198,7 @@ _0801184C:
ldrb r0, [r4]
bl dp01_battle_side_mark_buffer_for_execution
_08011866:
- ldr r0, _080118B8 @ =gUnknown_020239F8
+ ldr r0, _080118B8 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x40
ands r0, r1
@@ -8476,7 +8236,7 @@ _080118A4:
_080118AC: .4byte gUnknown_02024A64
_080118B0: .4byte gUnknown_02024A60
_080118B4: .4byte gUnknown_02024A68
-_080118B8: .4byte gUnknown_020239F8
+_080118B8: .4byte gBattleTypeFlags
_080118BC: .4byte gUnknown_030042D4
_080118C0: .4byte bc_801362C
thumb_func_end sub_8011834
@@ -8503,7 +8263,7 @@ _080118DE:
lsrs r0, 24
cmp r0, 0x1
bne _08011912
- ldr r0, _08011940 @ =gUnknown_020239F8
+ ldr r0, _08011940 @ =gBattleTypeFlags
ldrh r1, [r0]
ldr r2, _08011944 @ =0x00000902
adds r0, r2, 0
@@ -8543,7 +8303,7 @@ _08011930: .4byte gUnknown_02024A64
_08011934: .4byte gUnknown_02024A60
_08011938: .4byte gUnknown_02024A68
_0801193C: .4byte gBattleMons
-_08011940: .4byte gUnknown_020239F8
+_08011940: .4byte gBattleTypeFlags
_08011944: .4byte 0x00000902
_08011948: .4byte gUnknown_030042D4
_0801194C: .4byte sub_8011970
@@ -8575,7 +8335,7 @@ sub_8011970: @ 8011970
ldr r0, [r0]
cmp r0, 0
bne _0801199E
- ldr r0, _080119A8 @ =gUnknown_020239F8
+ ldr r0, _080119A8 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x80
ands r0, r1
@@ -8597,7 +8357,7 @@ _0801199E:
bx r0
.align 2, 0
_080119A4: .4byte gUnknown_02024A64
-_080119A8: .4byte gUnknown_020239F8
+_080119A8: .4byte gBattleTypeFlags
_080119AC: .4byte gUnknown_030042D4
_080119B0: .4byte sub_80119B4
thumb_func_end sub_8011970
@@ -8627,7 +8387,7 @@ _080119CC:
ldrb r0, [r4]
bl dp01_battle_side_mark_buffer_for_execution
_080119E4:
- ldr r0, _08011A4C @ =gUnknown_020239F8
+ ldr r0, _08011A4C @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x40
ands r0, r1
@@ -8676,7 +8436,7 @@ _08011A38:
_08011A40: .4byte gUnknown_02024A64
_08011A44: .4byte gUnknown_02024A60
_08011A48: .4byte gUnknown_02024A68
-_08011A4C: .4byte gUnknown_020239F8
+_08011A4C: .4byte gBattleTypeFlags
_08011A50: .4byte 0x02000000
_08011A54: .4byte 0x00016058
_08011A58: .4byte 0x000160f9
@@ -9427,7 +9187,7 @@ _08012062:
bne _08012070
b _080121F4
_08012070:
- ldr r0, _08012184 @ =gUnknown_020239F8
+ ldr r0, _08012184 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x2
ands r0, r1
@@ -9567,7 +9327,7 @@ _0801215E:
.align 2, 0
_0801217C: .4byte gUnknown_02024C0B
_08012180: .4byte gUnknown_02024A60
-_08012184: .4byte gUnknown_020239F8
+_08012184: .4byte gBattleTypeFlags
_08012188: .4byte gBattleMons
_0801218C: .4byte gUnknown_02024A68
_08012190: .4byte 0x02000000
@@ -9609,7 +9369,7 @@ _080121DC: .4byte 0x0400e000
_080121E0: .4byte gUnknown_02024C98
_080121E4: .4byte gUnknown_02024D1E
_080121E8:
- ldr r0, _080121F8 @ =gUnknown_020239F8
+ ldr r0, _080121F8 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x10
ands r0, r1
@@ -9619,7 +9379,7 @@ _080121F4:
movs r0, 0
b _0801224A
.align 2, 0
-_080121F8: .4byte gUnknown_020239F8
+_080121F8: .4byte gBattleTypeFlags
_080121FC:
ldr r0, _08012210 @ =0x02000000
ldr r1, _08012214 @ =0x00016003
@@ -9705,7 +9465,7 @@ _08012270:
lsrs r1, 24
adds r0, r4, 0
bl sub_8094C98
- ldr r0, _080122F8 @ =gUnknown_020239F8
+ ldr r0, _080122F8 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x1
ands r0, r1
@@ -9742,7 +9502,7 @@ _080122E8: .4byte gUnknown_02038470
_080122EC: .4byte 0x02000000
_080122F0: .4byte 0x0001606c
_080122F4: .4byte 0x00016068
-_080122F8: .4byte gUnknown_020239F8
+_080122F8: .4byte gBattleTypeFlags
_080122FC:
movs r3, 0
ldr r2, _0801231C @ =0x0001606c
@@ -9827,7 +9587,7 @@ _0801239C:
adds r0, r4
movs r1, 0x6
strb r1, [r0]
- ldr r0, _08012440 @ =gUnknown_020239F8
+ ldr r0, _08012440 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x40
ands r0, r1
@@ -9880,7 +9640,7 @@ _080123F8:
adds r0, r2, r0
movs r1, 0xD
strb r1, [r0]
- ldr r0, _08012440 @ =gUnknown_020239F8
+ ldr r0, _08012440 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x40
ands r0, r1
@@ -9896,7 +9656,7 @@ _080123F8:
_08012434: .4byte 0x02000000
_08012438: .4byte gUnknown_02024A60
_0801243C: .4byte 0x00016068
-_08012440: .4byte gUnknown_020239F8
+_08012440: .4byte gBattleTypeFlags
_08012444: .4byte 0x000160a6
_08012448: .4byte gBitTable
_0801244C: .4byte gUnknown_02024D1E
@@ -10162,7 +9922,7 @@ _0801264E:
adds r4, 0x1
cmp r4, 0x3
ble _0801264E
- ldr r0, _080126B0 @ =gUnknown_020239F8
+ ldr r0, _080126B0 @ =gBattleTypeFlags
ldrb r0, [r0]
movs r1, 0x1
ands r1, r0
@@ -10173,9 +9933,9 @@ _0801264E:
b _0801289E
.align 2, 0
_080126AC: .4byte gBattleMons
-_080126B0: .4byte gUnknown_020239F8
+_080126B0: .4byte gBattleTypeFlags
_080126B4:
- ldr r0, _080126D0 @ =gUnknown_020239F8
+ ldr r0, _080126D0 @ =gBattleTypeFlags
ldrh r1, [r0]
ldr r0, _080126D4 @ =0x00000902
ands r0, r1
@@ -10191,7 +9951,7 @@ _080126C2:
ldr r1, _080126DC @ =gUnknown_081D9B29
b _080129CC
.align 2, 0
-_080126D0: .4byte gUnknown_020239F8
+_080126D0: .4byte gBattleTypeFlags
_080126D4: .4byte 0x00000902
_080126D8: .4byte gUnknown_02024C1C
_080126DC: .4byte gUnknown_081D9B29
@@ -10494,7 +10254,7 @@ _0801292C:
.align 2, 0
_08012964: .4byte gUnknown_02024D1E
_08012968:
- ldr r0, _08012994 @ =gUnknown_020239F8
+ ldr r0, _08012994 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0xA
ands r0, r1
@@ -10516,7 +10276,7 @@ _08012968:
adds r0, r1
b _08012BFE
.align 2, 0
-_08012994: .4byte gUnknown_020239F8
+_08012994: .4byte gBattleTypeFlags
_08012998: .4byte gUnknown_02024260
_0801299C: .4byte gUnknown_02024A60
_080129A0: .4byte gUnknown_081D8E37
@@ -10809,7 +10569,7 @@ _08012C10:
adds r0, r2, r3
add r0, r12
strb r1, [r0]
- ldr r0, _08012CCC @ =gUnknown_020239F8
+ ldr r0, _08012CCC @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x40
ands r0, r1
@@ -10897,7 +10657,7 @@ _08012CBE:
.align 2, 0
_08012CC4: .4byte 0x02000000
_08012CC8: .4byte 0x00016068
-_08012CCC: .4byte gUnknown_020239F8
+_08012CCC: .4byte gBattleTypeFlags
_08012CD0: .4byte 0x0001606c
_08012CD4: .4byte 0x0001606d
_08012CD8: .4byte 0x0001606e
@@ -11017,7 +10777,7 @@ _08012DA8:
beq _08012DD2
b _08012F66
_08012DD2:
- ldr r0, _08012E1C @ =gUnknown_020239F8
+ ldr r0, _08012E1C @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x41
ands r0, r1
@@ -11051,7 +10811,7 @@ _08012E06:
_08012E10: .4byte gUnknown_02024A64
_08012E14: .4byte gBitTable
_08012E18: .4byte gUnknown_02024A60
-_08012E1C: .4byte gUnknown_020239F8
+_08012E1C: .4byte gBattleTypeFlags
_08012E20: .4byte 0x02000000
_08012E24: .4byte 0x000160a6
_08012E28:
@@ -11323,7 +11083,7 @@ b_first_side: @ 8012FF0
ldrb r3, [r0]
cmp r3, 0x21
bne _0801305C
- ldr r0, _08013074 @ =word_2024DB8
+ ldr r0, _08013074 @ =gBattleWeather
ldrh r1, [r0]
movs r0, 0x7
ands r0, r1
@@ -11332,7 +11092,7 @@ b_first_side: @ 8012FF0
_0801305C:
cmp r3, 0x22
bne _08013078
- ldr r0, _08013074 @ =word_2024DB8
+ ldr r0, _08013074 @ =gBattleWeather
ldrh r1, [r0]
movs r0, 0x60
ands r0, r1
@@ -11343,7 +11103,7 @@ _0801306C:
b _0801307A
.align 2, 0
_08013070: .4byte gBattleMons
-_08013074: .4byte word_2024DB8
+_08013074: .4byte gBattleWeather
_08013078:
movs r3, 0x1
_0801307A:
@@ -11357,7 +11117,7 @@ _0801307A:
ldrb r2, [r0]
cmp r2, 0x21
bne _0801309A
- ldr r0, _080130B4 @ =word_2024DB8
+ ldr r0, _080130B4 @ =gBattleWeather
ldrh r1, [r0]
movs r0, 0x7
ands r0, r1
@@ -11366,7 +11126,7 @@ _0801307A:
_0801309A:
cmp r2, 0x22
bne _080130BA
- ldr r0, _080130B4 @ =word_2024DB8
+ ldr r0, _080130B4 @ =gBattleWeather
ldrh r1, [r0]
movs r0, 0x60
ands r0, r1
@@ -11377,7 +11137,7 @@ _080130AA:
b _080130BC
.align 2, 0
_080130B0: .4byte gBattleMons
-_080130B4: .4byte word_2024DB8
+_080130B4: .4byte gBattleWeather
_080130B8:
movs r3, 0x1
_080130BA:
@@ -11429,7 +11189,7 @@ _0801310C:
lsls r0, 24
lsrs r5, r0, 24
_08013120:
- ldr r0, _080131DC @ =gUnknown_020239F8
+ ldr r0, _080131DC @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x2
ands r0, r1
@@ -11523,7 +11283,7 @@ _08013198:
ldrb r5, [r0, 0x1A]
b _08013208
.align 2, 0
-_080131DC: .4byte gUnknown_020239F8
+_080131DC: .4byte gBattleTypeFlags
_080131E0: .4byte 0x00000809
_080131E4: .4byte gBattleMons
_080131E8: .4byte gUnknown_02024D1C
@@ -11539,7 +11299,7 @@ _080131F4:
lsls r0, 24
lsrs r5, r0, 24
_08013208:
- ldr r0, _08013280 @ =gUnknown_020239F8
+ ldr r0, _08013280 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x2
ands r0, r1
@@ -11599,7 +11359,7 @@ _08013274:
movs r3, 0
b _08013334
.align 2, 0
-_08013280: .4byte gUnknown_020239F8
+_08013280: .4byte gBattleTypeFlags
_08013284: .4byte 0x00000809
_08013288: .4byte gBattleMons
_0801328C: .4byte gUnknown_02024D1C
@@ -11774,7 +11534,7 @@ sub_80133C8: @ 80133C8
mov r5, r8
push {r5-r7}
movs r3, 0
- ldr r0, _0801341C @ =gUnknown_020239F8
+ ldr r0, _0801341C @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x80
ands r0, r1
@@ -11813,7 +11573,7 @@ _080133F8:
bcc _080133F8
b _08013622
.align 2, 0
-_0801341C: .4byte gUnknown_020239F8
+_0801341C: .4byte gBattleTypeFlags
_08013420: .4byte gUnknown_02024A60
_08013424: .4byte gUnknown_02024A68
_08013428: .4byte gUnknown_02024A76
@@ -12501,7 +12261,7 @@ sub_8013998: @ 8013998
ldr r1, _080139D0 @ =gUnknown_02024A7F
movs r0, 0
strb r0, [r1]
- ldr r0, _080139D4 @ =gUnknown_020239F8
+ ldr r0, _080139D4 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x2
ands r0, r1
@@ -12525,7 +12285,7 @@ sub_8013998: @ 8013998
b _08013B48
.align 2, 0
_080139D0: .4byte gUnknown_02024A7F
-_080139D4: .4byte gUnknown_020239F8
+_080139D4: .4byte gBattleTypeFlags
_080139D8: .4byte gUnknown_030041C0
_080139DC: .4byte gUnknown_02024D26
_080139E0: .4byte gUnknown_02024C07
@@ -12676,7 +12436,7 @@ sub_8013B64: @ 8013B64
ldr r1, _08013B9C @ =gUnknown_02024A7F
movs r0, 0
strb r0, [r1]
- ldr r0, _08013BA0 @ =gUnknown_020239F8
+ ldr r0, _08013BA0 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x2
ands r0, r1
@@ -12700,7 +12460,7 @@ sub_8013B64: @ 8013B64
b _08013BBE
.align 2, 0
_08013B9C: .4byte gUnknown_02024A7F
-_08013BA0: .4byte gUnknown_020239F8
+_08013BA0: .4byte gBattleTypeFlags
_08013BA4: .4byte gUnknown_030041C0
_08013BA8: .4byte gUnknown_02024D26
_08013BAC: .4byte gUnknown_02024C07
@@ -12824,7 +12584,7 @@ sub_8013C9C: @ 8013C9C
lsrs r0, 24
cmp r0, 0x1
bhi _08013D7C
- ldr r0, _08013D04 @ =gUnknown_020239F8
+ ldr r0, _08013D04 @ =gBattleTypeFlags
ldrh r0, [r0]
ldr r1, _08013D08 @ =0x00000b92
ands r1, r0
@@ -12866,7 +12626,7 @@ _08013CCE:
b _08013D36
.align 2, 0
_08013D00: .4byte gUnknown_02024A7F
-_08013D04: .4byte gUnknown_020239F8
+_08013D04: .4byte gBattleTypeFlags
_08013D08: .4byte 0x00000b92
_08013D0C: .4byte gUnknown_02024A60
_08013D10: .4byte gUnknown_02024A68
@@ -13075,7 +12835,7 @@ _08013EAC: .4byte bc_evolution_cutscene
thumb_func_start c4_overworld
c4_overworld: @ 8013EB0
push {r4-r6,lr}
- ldr r5, _08013F30 @ =gUnknown_020239F8
+ ldr r5, _08013F30 @ =gBattleTypeFlags
ldrh r1, [r5]
movs r6, 0x2
adds r0, r6, 0
@@ -13138,7 +12898,7 @@ _08013F2A:
pop {r0}
bx r0
.align 2, 0
-_08013F30: .4byte gUnknown_020239F8
+_08013F30: .4byte gBattleTypeFlags
_08013F34: .4byte gPlayerParty
_08013F38: .4byte gReceivedRemoteLinkPlayers
_08013F3C: .4byte gScriptResult
@@ -13600,7 +13360,7 @@ _08014324: .4byte gBattleMoves
_08014328: .4byte gBattleMons
_0801432C: .4byte gUnknown_02024C08
_08014330:
- ldr r2, _08014454 @ =gUnknown_020239F8
+ ldr r2, _08014454 @ =gBattleTypeFlags
ldrh r1, [r2]
movs r0, 0x1
ands r0, r1
@@ -13750,7 +13510,7 @@ _0801441E:
movs r0, 0x1
b _08014496
.align 2, 0
-_08014454: .4byte gUnknown_020239F8
+_08014454: .4byte gBattleTypeFlags
_08014458: .4byte gUnknown_02024C07
_0801445C: .4byte gUnknown_02024C80
_08014460: .4byte gBattleMoves
@@ -14433,7 +14193,7 @@ _08014A24: .4byte gUnknown_081D9E7C
_08014A28: .4byte 0x000160a4
_08014A2C: .4byte 0x000160a5
_08014A30:
- ldr r0, _08014A50 @ =gUnknown_020239F8
+ ldr r0, _08014A50 @ =gBattleTypeFlags
ldrh r0, [r0]
movs r1, 0x1
ands r1, r0
@@ -14450,7 +14210,7 @@ _08014A30:
mov r10, r2
b _08014A74
.align 2, 0
-_08014A50: .4byte gUnknown_020239F8
+_08014A50: .4byte gBattleTypeFlags
_08014A54: .4byte gUnknown_02024D1E
_08014A58: .4byte gUnknown_02024C07
_08014A5C: .4byte gUnknown_02024C10
@@ -14584,7 +14344,7 @@ _08014B5C: .4byte gBattleMons
_08014B60: .4byte byte_2024C06
_08014B64: .4byte gUnknown_02024D28
_08014B68:
- ldr r0, _08014BDC @ =gUnknown_020239F8
+ ldr r0, _08014BDC @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x1
ands r0, r1
@@ -14645,7 +14405,7 @@ _08014BD4:
pop {r1}
bx r1
.align 2, 0
-_08014BDC: .4byte gUnknown_020239F8
+_08014BDC: .4byte gBattleTypeFlags
_08014BE0: .4byte 0x02000000
_08014BE4: .4byte 0x00016078
_08014BE8: .4byte gUnknown_02024A7E
@@ -14663,7 +14423,7 @@ sub_8014BF4: @ 8014BF4
adds r0, r1
ldrb r0, [r0]
strb r0, [r4]
- ldr r0, _08014C50 @ =gUnknown_020239F8
+ ldr r0, _08014C50 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x2
ands r0, r1
@@ -14699,7 +14459,7 @@ _08014C28:
_08014C44: .4byte gUnknown_02024C07
_08014C48: .4byte gUnknown_02024A7A
_08014C4C: .4byte gUnknown_02024A7E
-_08014C50: .4byte gUnknown_020239F8
+_08014C50: .4byte gBattleTypeFlags
_08014C54: .4byte gUnknown_02024A68
_08014C58: .4byte gUnknown_02024A60
_08014C5C: .4byte gUnknown_02024C18
@@ -15756,7 +15516,7 @@ _080154E0: .4byte gUnknown_02024A60
thumb_func_start unref_sub_80154E4
unref_sub_80154E4: @ 80154E4
push {r4,r5,lr}
- ldr r0, _08015514 @ =gUnknown_020239F8
+ ldr r0, _08015514 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x2
ands r0, r1
@@ -15781,7 +15541,7 @@ _08015500:
blt _08015500
b _08015542
.align 2, 0
-_08015514: .4byte gUnknown_020239F8
+_08015514: .4byte gBattleTypeFlags
_08015518: .4byte gUnknown_02024A68
_0801551C: .4byte gUnknown_02024A64
_08015520: .4byte gBitTable
@@ -15817,7 +15577,7 @@ dp01_battle_side_mark_buffer_for_execution: @ 8015554
push {lr}
lsls r0, 24
lsrs r3, r0, 24
- ldr r0, _0801557C @ =gUnknown_020239F8
+ ldr r0, _0801557C @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x2
ands r0, r1
@@ -15834,7 +15594,7 @@ dp01_battle_side_mark_buffer_for_execution: @ 8015554
str r0, [r2]
b _08015598
.align 2, 0
-_0801557C: .4byte gUnknown_020239F8
+_0801557C: .4byte gBattleTypeFlags
_08015580: .4byte gUnknown_02024A64
_08015584: .4byte gBitTable
_08015588:
@@ -16779,7 +16539,7 @@ sub_8015C90: @ 8015C90
adds r0, r1
ldr r1, _08015D08 @ =gUnknown_081D9365
str r1, [r0]
- ldr r0, _08015D0C @ =gUnknown_020239F8
+ ldr r0, _08015D0C @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x1
ands r0, r1
@@ -16809,7 +16569,7 @@ _08015CFC: .4byte gUnknown_02024A60
_08015D00: .4byte gUnknown_02024D28
_08015D04: .4byte gUnknown_02024C1C
_08015D08: .4byte gUnknown_081D9365
-_08015D0C: .4byte gUnknown_020239F8
+_08015D0C: .4byte gBattleTypeFlags
_08015D10: .4byte gUnknown_02024260
_08015D14:
ldrb r0, [r5]
@@ -17566,7 +17326,7 @@ _08016318: .4byte gUnknown_081D939A
_0801631C: .4byte 0x02000000
_08016320: .4byte 0x0001600e
_08016324:
- ldr r3, _0801635C @ =word_2024DB8
+ ldr r3, _0801635C @ =gBattleWeather
ldrh r2, [r3]
movs r0, 0x7
ands r0, r2
@@ -17596,7 +17356,7 @@ _08016332:
strb r0, [r1, 0x5]
b _0801639C
.align 2, 0
-_0801635C: .4byte word_2024DB8
+_0801635C: .4byte gBattleWeather
_08016360: .4byte gUnknown_02024DBC
_08016364: .4byte 0x0000fffe
_08016368: .4byte 0x0000fffd
@@ -17633,7 +17393,7 @@ _0801639C:
_080163A0: .4byte gUnknown_02024D1E
_080163A4: .4byte gUnknown_081D8F62
_080163A8:
- ldr r3, _080163DC @ =word_2024DB8
+ ldr r3, _080163DC @ =gBattleWeather
ldrh r2, [r3]
movs r0, 0x18
ands r0, r2
@@ -17660,7 +17420,7 @@ _080163B6:
ldr r0, _080163EC @ =gUnknown_081D8FFF
b _080163F4
.align 2, 0
-_080163DC: .4byte word_2024DB8
+_080163DC: .4byte gBattleWeather
_080163E0: .4byte gUnknown_02024DBC
_080163E4: .4byte 0x0000fff7
_080163E8: .4byte gUnknown_02024C10
@@ -17687,7 +17447,7 @@ _08016414: .4byte 0x02000000
_08016418: .4byte 0x000160a4
_0801641C: .4byte gUnknown_02024D1E
_08016420:
- ldr r3, _08016450 @ =word_2024DB8
+ ldr r3, _08016450 @ =gBattleWeather
ldrh r2, [r3]
movs r0, 0x60
ands r0, r2
@@ -17712,7 +17472,7 @@ _08016420:
ldr r0, _08016460 @ =gUnknown_081D9016
b _08016468
.align 2, 0
-_08016450: .4byte word_2024DB8
+_08016450: .4byte gBattleWeather
_08016454: .4byte gUnknown_02024DBC
_08016458: .4byte 0x0000ffdf
_0801645C: .4byte gUnknown_02024C10
@@ -17741,7 +17501,7 @@ _08016488: .4byte gUnknown_081D9008
_0801648C: .4byte 0x02000000
_08016490: .4byte 0x0001600e
_08016494:
- ldr r3, _080164BC @ =word_2024DB8
+ ldr r3, _080164BC @ =gBattleWeather
ldrh r2, [r3]
movs r0, 0x80
ands r0, r2
@@ -17762,7 +17522,7 @@ _08016494:
ldr r0, _080164CC @ =gUnknown_081D8FFF
b _080164D4
.align 2, 0
-_080164BC: .4byte word_2024DB8
+_080164BC: .4byte gBattleWeather
_080164C0: .4byte gUnknown_02024DBC
_080164C4: .4byte 0x0000ff7f
_080164C8: .4byte gUnknown_02024C10
@@ -19589,7 +19349,7 @@ sub_80173A4: @ 80173A4
mov r5, r8
push {r5-r7}
sub sp, 0x4
- ldr r0, _080173C0 @ =gUnknown_020239F8
+ ldr r0, _080173C0 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x80
ands r0, r1
@@ -19597,7 +19357,7 @@ sub_80173A4: @ 80173A4
beq _080173F8
b _080176AC
.align 2, 0
-_080173C0: .4byte gUnknown_020239F8
+_080173C0: .4byte gBattleTypeFlags
_080173C4:
ldr r0, _080173D4 @ =gUnknown_081D8C72
bl b_call_bc_move_exec
@@ -20796,7 +20556,7 @@ _08017DC0:
b _08017F94
_08017DDC:
lsrs r0, r1, 16
- bl sub_804114C
+ bl CountTrailingZeroBits
ldr r1, _08017E04 @ =0x02000000
ldr r7, _08017E08 @ =0x00016003
adds r1, r7
@@ -21071,7 +20831,7 @@ sub_8018018: @ 8018018
lsls r2, 24
lsrs r2, 24
mov r9, r2
- ldr r0, _08018044 @ =gUnknown_020239F8
+ ldr r0, _08018044 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x1
ands r0, r1
@@ -21080,7 +20840,7 @@ sub_8018018: @ 8018018
movs r0, 0
b _08018198
.align 2, 0
-_08018044: .4byte gUnknown_020239F8
+_08018044: .4byte gBattleTypeFlags
_08018048:
movs r0, 0x40
ands r0, r1
@@ -21347,7 +21107,7 @@ _0801825C:
movs r0, 0
b _08018314
_08018260:
- ldr r1, _0801831C @ =word_2024DB8
+ ldr r1, _0801831C @ =gBattleWeather
ldrh r0, [r1]
movs r2, 0xE7
ands r2, r0
@@ -21447,7 +21207,7 @@ _08018314:
pop {r1}
bx r1
.align 2, 0
-_0801831C: .4byte word_2024DB8
+_0801831C: .4byte gBattleWeather
_08018320: .4byte gBattleMons
thumb_func_end castform_switch
@@ -21574,7 +21334,7 @@ _080183F4:
movs r1, 0
bl GetMonData
str r0, [sp, 0x14]
- ldr r0, _0801844C @ =gUnknown_020239F8
+ ldr r0, _0801844C @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x80
ands r0, r1
@@ -21592,7 +21352,7 @@ _08018436:
.align 2, 0
_08018444: .4byte gUnknown_02024A6A
_08018448: .4byte gEnemyParty
-_0801844C: .4byte gUnknown_020239F8
+_0801844C: .4byte gBattleTypeFlags
_08018450: .4byte byte_2024C06
_08018454:
ldr r2, _08018474 @ =byte_2024C06
@@ -21766,7 +21526,7 @@ _080185A4:
.4byte _08018620
.4byte _080185D0
_080185D0:
- ldr r2, _080185EC @ =word_2024DB8
+ ldr r2, _080185EC @ =gBattleWeather
ldrh r1, [r2]
movs r0, 0x7
ands r0, r1
@@ -21780,11 +21540,11 @@ _080185D0:
movs r1, 0xA
b _08018638
.align 2, 0
-_080185EC: .4byte word_2024DB8
+_080185EC: .4byte gBattleWeather
_080185F0: .4byte 0x02000000
_080185F4: .4byte 0x000160a4
_080185F8:
- ldr r3, _08018614 @ =word_2024DB8
+ ldr r3, _08018614 @ =gBattleWeather
ldrh r1, [r3]
movs r2, 0x18
adds r0, r2, 0
@@ -21798,11 +21558,11 @@ _080185F8:
movs r1, 0xC
b _08018638
.align 2, 0
-_08018614: .4byte word_2024DB8
+_08018614: .4byte gBattleWeather
_08018618: .4byte 0x02000000
_0801861C: .4byte 0x000160a4
_08018620:
- ldr r3, _08018668 @ =word_2024DB8
+ ldr r3, _08018668 @ =gBattleWeather
ldrh r1, [r3]
movs r2, 0x60
adds r0, r2, 0
@@ -21838,14 +21598,14 @@ _08018656:
bl b_push_move_exec
bl _08019F76
.align 2, 0
-_08018668: .4byte word_2024DB8
+_08018668: .4byte gBattleWeather
_0801866C: .4byte 0x02000000
_08018670: .4byte 0x000160a4
_08018674: .4byte 0x00016003
_08018678: .4byte gUnknown_02024D1E
_0801867C: .4byte gUnknown_081D901D
_08018680:
- ldr r2, _080186A8 @ =word_2024DB8
+ ldr r2, _080186A8 @ =gBattleWeather
ldrh r1, [r2]
movs r0, 0x4
ands r0, r1
@@ -21864,12 +21624,12 @@ _08018690:
strb r5, [r0]
bl _08019F22
.align 2, 0
-_080186A8: .4byte word_2024DB8
+_080186A8: .4byte gBattleWeather
_080186AC: .4byte gUnknown_081D9704
_080186B0: .4byte 0x02000000
_080186B4: .4byte 0x00016003
_080186B8:
- ldr r2, _080186E0 @ =word_2024DB8
+ ldr r2, _080186E0 @ =gBattleWeather
ldrh r1, [r2]
movs r0, 0x10
ands r0, r1
@@ -21888,12 +21648,12 @@ _080186C8:
strb r2, [r0]
bl _08019F22
.align 2, 0
-_080186E0: .4byte word_2024DB8
+_080186E0: .4byte gBattleWeather
_080186E4: .4byte gUnknown_081D9744
_080186E8: .4byte 0x02000000
_080186EC: .4byte 0x00016003
_080186F0:
- ldr r2, _08018718 @ =word_2024DB8
+ ldr r2, _08018718 @ =gBattleWeather
ldrh r1, [r2]
movs r0, 0x40
ands r0, r1
@@ -21912,7 +21672,7 @@ _08018700:
strb r5, [r0]
bl _08019F22
.align 2, 0
-_08018718: .4byte word_2024DB8
+_08018718: .4byte gBattleWeather
_0801871C: .4byte gUnknown_081D97FE
_08018720: .4byte 0x02000000
_08018724: .4byte 0x00016003
@@ -22086,7 +21846,7 @@ _08018876:
beq _0801888E
bl _08019F76
_0801888E:
- ldr r0, _080188D0 @ =word_2024DB8
+ ldr r0, _080188D0 @ =gBattleWeather
ldrh r1, [r0]
movs r0, 0x7
ands r0, r1
@@ -22118,7 +21878,7 @@ _080188C4:
str r0, [r1]
bl _08019F22
.align 2, 0
-_080188D0: .4byte word_2024DB8
+_080188D0: .4byte gBattleWeather
_080188D4: .4byte gUnknown_081D9730
_080188D8: .4byte gUnknown_02024BEC
_080188DC:
@@ -24023,7 +23783,7 @@ _0801997A:
bl battle_get_side_with_given_state
lsls r0, 24
lsrs r7, r0, 24
- ldr r0, _08019A2C @ =gUnknown_020239F8
+ ldr r0, _08019A2C @ =gBattleTypeFlags
ldrh r1, [r0]
movs r2, 0x1
adds r0, r2, 0
@@ -24090,7 +23850,7 @@ _08019A1C: .4byte gUnknown_02024A68
_08019A20: .4byte gUnknown_02024A60
_08019A24: .4byte gBattleMons
_08019A28: .4byte gUnknown_02024C98
-_08019A2C: .4byte gUnknown_020239F8
+_08019A2C: .4byte gBattleTypeFlags
_08019A30: .4byte byte_2024C06
_08019A34:
ldr r3, _08019A74 @ =gBattleMons
@@ -27248,7 +27008,7 @@ unref_sub_801B40C: @ 801B40C
sub sp, 0x8
movs r0, 0
str r0, [sp]
- ldr r0, _0801B464 @ =gUnknown_020239F8
+ ldr r0, _0801B464 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x1
ands r0, r1
@@ -27288,7 +27048,7 @@ _0801B45A:
lsrs r5, r0, 24
b _0801B556
.align 2, 0
-_0801B464: .4byte gUnknown_020239F8
+_0801B464: .4byte gBattleTypeFlags
_0801B468: .4byte gUnknown_081FC1D0
_0801B46C: .4byte gUnknown_02024C0C
_0801B470: .4byte gBitTable
@@ -27725,7 +27485,7 @@ _0801B854: .4byte gUnknown_02024C07
_0801B858: .4byte gUnknown_02024C80
_0801B85C: .4byte gBattleMons
_0801B860:
- ldr r0, _0801B894 @ =gUnknown_020239F8
+ ldr r0, _0801B894 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r4, 0x1
adds r0, r4, 0
@@ -27750,7 +27510,7 @@ _0801B860:
movs r0, 0x1
b _0801B8B2
.align 2, 0
-_0801B894: .4byte gUnknown_020239F8
+_0801B894: .4byte gBattleTypeFlags
_0801B898: .4byte gUnknown_02024C07
_0801B89C:
movs r0, 0x3
@@ -27830,7 +27590,7 @@ sub_801B928: @ 801B928
mov r6, r8
push {r6,r7}
sub sp, 0x10
- ldr r0, _0801B9E0 @ =gUnknown_020239F8
+ ldr r0, _0801B9E0 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x2
ands r0, r1
@@ -27914,7 +27674,7 @@ _0801B9DA:
movs r0, 0
b _0801BC24
.align 2, 0
-_0801B9E0: .4byte gUnknown_020239F8
+_0801B9E0: .4byte gBattleTypeFlags
_0801B9E4: .4byte gUnknown_02024C07
_0801B9E8: .4byte gBattleMons
_0801B9EC: .4byte 0x0000080e
@@ -28938,7 +28698,7 @@ _0801C22E:
lsls r0, 24
cmp r0, 0
bne _0801C27E
- ldr r0, _0801C2A8 @ =word_2024DB8
+ ldr r0, _0801C2A8 @ =gBattleWeather
ldrh r1, [r0]
movs r0, 0x7
ands r0, r1
@@ -28971,7 +28731,7 @@ _0801C290:
_0801C29C: .4byte 0xfffeffff
_0801C2A0: .4byte 0xfffdffff
_0801C2A4: .4byte 0xfffbffff
-_0801C2A8: .4byte word_2024DB8
+_0801C2A8: .4byte gBattleWeather
_0801C2AC: .4byte gBattleMoves
_0801C2B0:
movs r0, 0
@@ -29197,7 +28957,7 @@ _0801C430:
lsls r0, 24
cmp r0, 0
bne _0801C482
- ldr r0, _0801C574 @ =word_2024DB8
+ ldr r0, _0801C574 @ =gBattleWeather
ldrh r1, [r0]
movs r0, 0x60
ands r0, r1
@@ -29267,7 +29027,7 @@ _0801C4C0:
ldrb r0, [r0]
cmp r0, 0x8
bne _0801C518
- ldr r0, _0801C574 @ =word_2024DB8
+ ldr r0, _0801C574 @ =gBattleWeather
ldrh r1, [r0]
movs r0, 0x18
ands r0, r1
@@ -29325,7 +29085,7 @@ _0801C544:
.align 2, 0
_0801C56C: .4byte gUnknown_02024C07
_0801C570: .4byte gBattleMoves
-_0801C574: .4byte word_2024DB8
+_0801C574: .4byte gBattleWeather
_0801C578: .4byte gAccuracyStageRatios
_0801C57C: .4byte gBattleMons
_0801C580: .4byte gUnknown_02024C08
@@ -29373,7 +29133,7 @@ _0801C5C0:
movs r1, 0x1
orrs r0, r1
strb r0, [r2]
- ldr r0, _0801C614 @ =gUnknown_020239F8
+ ldr r0, _0801C614 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x1
ands r0, r1
@@ -29397,7 +29157,7 @@ _0801C602:
_0801C608: .4byte gUnknown_02024C0B
_0801C60C: .4byte gUnknown_02024C08
_0801C610: .4byte gUnknown_02024C68
-_0801C614: .4byte gUnknown_020239F8
+_0801C614: .4byte gBattleTypeFlags
_0801C618: .4byte gBattleMoves
_0801C61C: .4byte gUnknown_02024D1E
_0801C620:
@@ -29841,7 +29601,7 @@ _0801C960:
ands r0, r1
cmp r0, 0
bne _0801C9D0
- ldr r0, _0801C9C4 @ =gUnknown_020239F8
+ ldr r0, _0801C9C4 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x84
lsls r0, 2
@@ -29865,7 +29625,7 @@ _0801C960:
.align 2, 0
_0801C9BC: .4byte gUnknown_02024C08
_0801C9C0: .4byte gUnknown_02024C98
-_0801C9C4: .4byte gUnknown_020239F8
+_0801C9C4: .4byte gBattleTypeFlags
_0801C9C8: .4byte gCriticalHitChance
_0801C9CC: .4byte gCritMultiplier
_0801C9D0:
@@ -33722,7 +33482,7 @@ _0801E7EA:
lsls r0, 24
cmp r0, 0
bne _0801E826
- ldr r0, _0801E87C @ =word_2024DB8
+ ldr r0, _0801E87C @ =gBattleWeather
ldrh r1, [r0]
movs r0, 0x60
ands r0, r1
@@ -33778,7 +33538,7 @@ _0801E86E:
mov r10, r3
b _0801EA14
.align 2, 0
-_0801E87C: .4byte word_2024DB8
+_0801E87C: .4byte gBattleWeather
_0801E880: .4byte gBattleMons
_0801E884: .4byte gUnknown_02024C0A
_0801E888:
@@ -34834,7 +34594,7 @@ _0801F1A4:
lsrs r0, 24
cmp r0, 0x1
bne _0801F1D8
- ldr r0, _0801F258 @ =gUnknown_020239F8
+ ldr r0, _0801F258 @ =gBattleTypeFlags
ldrh r1, [r0]
ldr r0, _0801F25C @ =0x00000902
ands r0, r1
@@ -34848,7 +34608,7 @@ _0801F1A4:
beq _0801F1D8
b _0801F5DC
_0801F1D8:
- ldr r0, _0801F258 @ =gUnknown_020239F8
+ ldr r0, _0801F258 @ =gBattleTypeFlags
ldrh r1, [r0]
ldr r0, _0801F25C @ =0x00000902
ands r0, r1
@@ -34911,7 +34671,7 @@ _0801F214:
b _0801F5FA
.align 2, 0
_0801F254: .4byte gUnknown_02024C07
-_0801F258: .4byte gUnknown_020239F8
+_0801F258: .4byte gBattleTypeFlags
_0801F25C: .4byte 0x00000902
_0801F260: .4byte gTrainerBattleOpponent
_0801F264: .4byte gUnknown_02024DBC
@@ -36645,7 +36405,7 @@ _0802007C:
lsrs r0, 24
cmp r0, 0x1
bne _08020098
- ldr r0, _080200AC @ =gUnknown_020239F8
+ ldr r0, _080200AC @ =gBattleTypeFlags
ldrh r1, [r0]
ldr r0, _080200B0 @ =0x00000982
ands r0, r1
@@ -36660,7 +36420,7 @@ _08020098:
bl _08020996
.align 2, 0
_080200A8: .4byte gUnknown_02024C09
-_080200AC: .4byte gUnknown_020239F8
+_080200AC: .4byte gBattleTypeFlags
_080200B0: .4byte 0x00000982
_080200B4: .4byte 0x02000000
_080200B8: .4byte 0x0001600f
@@ -36921,7 +36681,7 @@ _080202DC: .4byte 0x0001605f
_080202E0: .4byte 0x0001600f
_080202E4: .4byte gUnknown_02024BEC
_080202E8:
- ldr r0, _0802034C @ =gUnknown_020239F8
+ ldr r0, _0802034C @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x8
ands r0, r1
@@ -36971,7 +36731,7 @@ _08020332:
mov r8, r1
b _08020376
.align 2, 0
-_0802034C: .4byte gUnknown_020239F8
+_0802034C: .4byte gBattleTypeFlags
_08020350: .4byte gBattleMons
_08020354: .4byte 0x0001601b
_08020358: .4byte 0x00000161
@@ -37005,7 +36765,7 @@ _08020386:
mov r1, r8
str r0, [r1]
_0802039C:
- ldr r0, _080203F4 @ =gUnknown_020239F8
+ ldr r0, _080203F4 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x8
ands r0, r1
@@ -37045,7 +36805,7 @@ _080203B8:
.align 2, 0
_080203EC: .4byte gUnknown_02024BEC
_080203F0: .4byte gUnknown_02024DEE
-_080203F4: .4byte gUnknown_020239F8
+_080203F4: .4byte gBattleTypeFlags
_080203F8: .4byte 0x02000000
_080203FC: .4byte 0x00016018
_08020400: .4byte gPlayerParty
@@ -37054,7 +36814,7 @@ _08020404:
ldr r3, _08020440 @ =gUnknown_02024BEC
mov r8, r3
_0802040A:
- ldr r0, _08020444 @ =gUnknown_020239F8
+ ldr r0, _08020444 @ =gBattleTypeFlags
ldrh r0, [r0]
movs r1, 0x1
ands r1, r0
@@ -37082,7 +36842,7 @@ _0802040A:
.align 2, 0
_0802043C: .4byte 0x00000149
_08020440: .4byte gUnknown_02024BEC
-_08020444: .4byte gUnknown_020239F8
+_08020444: .4byte gBattleTypeFlags
_08020448: .4byte gUnknown_02024A6A
_0802044C: .4byte 0x02000000
_08020450: .4byte 0x00016018
@@ -37339,7 +37099,7 @@ _0802066E:
beq _0802067A
b _080208F0
_0802067A:
- ldr r0, _080208C0 @ =gUnknown_020239F8
+ ldr r0, _080208C0 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x8
ands r0, r1
@@ -37528,7 +37288,7 @@ _080207EC:
ldrh r0, [r0]
cmp r0, 0
beq _080208F6
- ldr r0, _080208C0 @ =gUnknown_020239F8
+ ldr r0, _080208C0 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x1
ands r0, r1
@@ -37606,7 +37366,7 @@ _080208B0: .4byte gUnknown_02024A60
_080208B4: .4byte 0x02000000
_080208B8: .4byte 0x000160a2
_080208BC: .4byte gUnknown_02024260
-_080208C0: .4byte gUnknown_020239F8
+_080208C0: .4byte gBattleTypeFlags
_080208C4: .4byte gUnknown_02024A6A
_080208C8: .4byte 0x00016018
_080208CC: .4byte gPlayerParty
@@ -37799,7 +37559,7 @@ _08020A54:
ldrb r0, [r2]
cmp r0, 0
bne _08020B3E
- ldr r2, _08020B00 @ =gUnknown_020239F8
+ ldr r2, _08020B00 @ =gBattleTypeFlags
ldrh r1, [r2]
movs r0, 0x2
ands r0, r1
@@ -37884,7 +37644,7 @@ _08020AF0: .4byte gUnknown_02024A64
_08020AF4: .4byte gPlayerParty
_08020AF8: .4byte gUnknown_02024D26
_08020AFC: .4byte gEnemyParty
-_08020B00: .4byte gUnknown_020239F8
+_08020B00: .4byte gBattleTypeFlags
_08020B04: .4byte gUnknown_02024A68
_08020B08: .4byte gUnknown_02024C10
_08020B0C: .4byte gUnknown_02024C6C
@@ -40846,7 +40606,7 @@ _080221C0:
ands r0, r2
cmp r0, 0
bne _08022244
- ldr r0, _080222B4 @ =gUnknown_020239F8
+ ldr r0, _080222B4 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x1
ands r0, r1
@@ -40964,7 +40724,7 @@ _0802229E:
bx r0
.align 2, 0
_080222B0: .4byte gUnknown_02024C6C
-_080222B4: .4byte gUnknown_020239F8
+_080222B4: .4byte gBattleTypeFlags
_080222B8: .4byte gUnknown_02024D28
_080222BC: .4byte gUnknown_02024C07
_080222C0: .4byte gBattleMoves
@@ -41571,7 +41331,7 @@ sub_8022784: @ 8022784
lsrs r0, 24
cmp r0, 0x1
bne _080227D0
- ldr r0, _08022818 @ =gUnknown_020239F8
+ ldr r0, _08022818 @ =gBattleTypeFlags
ldrh r1, [r0]
ldr r0, _0802281C @ =0x00000902
ands r0, r1
@@ -41622,7 +41382,7 @@ _08022806:
_0802280C: .4byte gUnknown_02024A64
_08022810: .4byte gUnknown_02024C10
_08022814: .4byte gUnknown_02024A60
-_08022818: .4byte gUnknown_020239F8
+_08022818: .4byte gBattleTypeFlags
_0802281C: .4byte 0x00000902
_08022820: .4byte gBattleMons
_08022824: .4byte gUnknown_02024C0C
@@ -41689,7 +41449,7 @@ _0802289C: .4byte gBattleMons
_080228A0: .4byte 0x0400e000
_080228A4: .4byte gUnknown_02024C98
_080228A8:
- ldr r5, _08022934 @ =gUnknown_020239F8
+ ldr r5, _08022934 @ =gBattleTypeFlags
ldrh r1, [r5]
movs r0, 0x40
ands r0, r1
@@ -41759,7 +41519,7 @@ _0802292E:
beq _080229FC
b _08022A24
.align 2, 0
-_08022934: .4byte gUnknown_020239F8
+_08022934: .4byte gBattleTypeFlags
_08022938: .4byte gUnknown_02024A60
_0802293C: .4byte gPlayerParty
_08022940: .4byte gEnemyParty
@@ -41963,7 +41723,7 @@ atk50_openpartyscreen: @ 8022A98
beq _08022ACE
b _08022F74
_08022ACE:
- ldr r0, _08022B48 @ =gUnknown_020239F8
+ ldr r0, _08022B48 @ =gBattleTypeFlags
ldrh r0, [r0]
movs r1, 0x41
ands r1, r0
@@ -42023,7 +41783,7 @@ _08022AF2:
b _08022BA2
.align 2, 0
_08022B44: .4byte gUnknown_02024C10
-_08022B48: .4byte gUnknown_020239F8
+_08022B48: .4byte gBattleTypeFlags
_08022B4C: .4byte gUnknown_02024A60
_08022B50: .4byte gUnknown_02024A68
_08022B54: .4byte gUnknown_02024C6C
@@ -42515,7 +42275,7 @@ _08022F74:
beq _08022F7A
b _08023170
_08022F7A:
- ldr r0, _08022FF0 @ =gUnknown_020239F8
+ ldr r0, _08022FF0 @ =gBattleTypeFlags
ldrh r2, [r0]
movs r0, 0x40
ands r0, r2
@@ -42574,7 +42334,7 @@ _08022F92:
bl dp01_battle_side_mark_buffer_for_execution
b _0802303A
.align 2, 0
-_08022FF0: .4byte gUnknown_020239F8
+_08022FF0: .4byte gBattleTypeFlags
_08022FF4: .4byte gUnknown_02024C6C
_08022FF8: .4byte gBitTable
_08022FFC: .4byte gUnknown_02024A60
@@ -42860,7 +42620,7 @@ _080231F8:
adds r0, 0x1
strb r0, [r1, 0x2]
_0802325A:
- ldr r0, _080232BC @ =gUnknown_020239F8
+ ldr r0, _080232BC @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x40
ands r0, r1
@@ -42902,7 +42662,7 @@ _080232AC: .4byte gUnknown_02024A6A
_080232B0: .4byte 0x00016068
_080232B4: .4byte 0x0001606c
_080232B8: .4byte gUnknown_030042E0
-_080232BC: .4byte gUnknown_020239F8
+_080232BC: .4byte gBattleTypeFlags
_080232C0: .4byte gUnknown_02024A68
_080232C4:
adds r0, r7, 0
@@ -43016,7 +42776,7 @@ _08023394: .4byte 0x02000000
_08023398: .4byte gUnknown_02024260
_0802339C: .4byte 0x00016068
_080233A0:
- ldr r0, _080233B8 @ =gUnknown_020239F8
+ ldr r0, _080233B8 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x40
ands r0, r1
@@ -43028,7 +42788,7 @@ _080233AE:
bl sub_8012258
b _080234F6
.align 2, 0
-_080233B8: .4byte gUnknown_020239F8
+_080233B8: .4byte gBattleTypeFlags
_080233BC:
ldr r1, _08023484 @ =gUnknown_02024D1E
ldr r4, _08023488 @ =gUnknown_02024260
@@ -43047,7 +42807,7 @@ _080233BC:
adds r0, r2
ldrb r0, [r0]
strb r0, [r1]
- ldr r0, _08023494 @ =gUnknown_020239F8
+ ldr r0, _08023494 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x40
ands r0, r1
@@ -43135,7 +42895,7 @@ _08023484: .4byte gUnknown_02024D1E
_08023488: .4byte gUnknown_02024260
_0802348C: .4byte 0x02000000
_08023490: .4byte 0x00016068
-_08023494: .4byte gUnknown_020239F8
+_08023494: .4byte gBattleTypeFlags
_08023498: .4byte 0x0001606c
_0802349C: .4byte 0x0001606d
_080234A0: .4byte 0x0001606e
@@ -43804,7 +43564,7 @@ _080239C8:
adds r1, r5, 0
bl GiveMoveToBattleMon
_08023A08:
- ldr r0, _08023A78 @ =gUnknown_020239F8
+ ldr r0, _08023A78 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x1
ands r0, r1
@@ -43856,7 +43616,7 @@ _08023A68: .4byte gUnknown_02024A6A
_08023A6C: .4byte 0x02000000
_08023A70: .4byte 0x00016018
_08023A74: .4byte gBattleMons
-_08023A78: .4byte gUnknown_020239F8
+_08023A78: .4byte gBattleTypeFlags
_08023A7C: .4byte gUnknown_02024C10
thumb_func_end atk59_8025230
@@ -44231,7 +43991,7 @@ _08023D20:
adds r2, r5, 0
bl SetBattleMonMoveSlot
_08023DB0:
- ldr r0, _08023E2C @ =gUnknown_020239F8
+ ldr r0, _08023E2C @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x1
ands r0, r1
@@ -44284,7 +44044,7 @@ _08023E1C: .4byte gUnknown_02024A6A
_08023E20: .4byte gBattleMons
_08023E24: .4byte gUnknown_02024CA8
_08023E28: .4byte gBitTable
-_08023E2C: .4byte gUnknown_020239F8
+_08023E2C: .4byte gBattleTypeFlags
_08023E30: .4byte 0x02000000
_08023E34: .4byte 0x00016018
_08023E38:
@@ -44620,7 +44380,7 @@ _080240C4:
mov r12, r0
lsls r4, r5, 2
ldr r5, _08024124 @ =0x02000000
- ldr r7, _08024128 @ =gUnknown_020239F8
+ ldr r7, _08024128 @ =gBattleTypeFlags
ldr r0, _0802412C @ =gSaveBlock1 + 0x490
mov r8, r0
cmp r1, 0xFF
@@ -44664,7 +44424,7 @@ _080240FE:
.align 2, 0
_08024120: .4byte gTrainerMoney
_08024124: .4byte 0x02000000
-_08024128: .4byte gUnknown_020239F8
+_08024128: .4byte gBattleTypeFlags
_0802412C: .4byte gSaveBlock1 + 0x490
_08024130: .4byte gTrainers
_08024134: .4byte gTrainerBattleOpponent
@@ -44858,7 +44618,7 @@ atk60_cmd60: @ 8024298
ldr r0, _080242C4 @ =gUnknown_02024C10
ldr r0, [r0]
ldrb r0, [r0, 0x1]
- bl sav12_xor_increment
+ bl IncrementGameStat
_080242B2:
ldr r1, _080242C4 @ =gUnknown_02024C10
ldr r0, [r1]
@@ -46205,7 +45965,7 @@ _08024D6C: .4byte gUnknown_02024C10
thumb_func_start atk73_cmd73
atk73_cmd73: @ 8024D70
push {r4,r5,lr}
- ldr r0, _08024DC0 @ =gUnknown_020239F8
+ ldr r0, _08024DC0 @ =gBattleTypeFlags
ldrh r0, [r0]
movs r5, 0x1
ands r5, r0
@@ -46245,7 +46005,7 @@ _08024DB6:
strb r5, [r0]
b _08024E12
.align 2, 0
-_08024DC0: .4byte gUnknown_020239F8
+_08024DC0: .4byte gBattleTypeFlags
_08024DC4: .4byte gUnknown_02024C10
_08024DC8: .4byte gUnknown_02024A60
_08024DCC: .4byte gBattleMons
@@ -46297,7 +46057,7 @@ _08024E28: .4byte gUnknown_02024C10
thumb_func_start atk74_hp_tresholds_2
atk74_hp_tresholds_2: @ 8024E2C
push {r4-r7,lr}
- ldr r0, _08024E8C @ =gUnknown_020239F8
+ ldr r0, _08024E8C @ =gBattleTypeFlags
ldrh r0, [r0]
movs r7, 0x1
ands r7, r0
@@ -46341,7 +46101,7 @@ atk74_hp_tresholds_2: @ 8024E2C
strb r7, [r0]
b _08024ED0
.align 2, 0
-_08024E8C: .4byte gUnknown_020239F8
+_08024E8C: .4byte gBattleTypeFlags
_08024E90: .4byte gUnknown_02024C10
_08024E94: .4byte gUnknown_02024A60
_08024E98: .4byte 0x02000000
@@ -47012,7 +46772,7 @@ sub_80253E8: @ 80253E8
ldrb r0, [r2, 0x4]
lsls r0, 24
orrs r4, r0
- ldr r0, _08025464 @ =gUnknown_020239F8
+ ldr r0, _08025464 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x1
ands r0, r1
@@ -47063,7 +46823,7 @@ _0802543E:
b _08025484
.align 2, 0
_08025460: .4byte gUnknown_02024C10
-_08025464: .4byte gUnknown_020239F8
+_08025464: .4byte gBattleTypeFlags
_08025468: .4byte gUnknown_02024C08
_0802546C: .4byte gUnknown_02024C07
_08025470: .4byte gUnknown_02024C0C
@@ -47354,7 +47114,7 @@ _080256CC: .4byte gUnknown_02024C10
thumb_func_start sub_80256D0
sub_80256D0: @ 80256D0
push {lr}
- ldr r2, _080256F0 @ =word_2024DB8
+ ldr r2, _080256F0 @ =gBattleWeather
ldrh r0, [r2]
movs r1, 0x7
ands r1, r0
@@ -47370,7 +47130,7 @@ sub_80256D0: @ 80256D0
strb r0, [r1, 0x5]
b _0802570C
.align 2, 0
-_080256F0: .4byte word_2024DB8
+_080256F0: .4byte gBattleWeather
_080256F4: .4byte gUnknown_02024C68
_080256F8: .4byte gUnknown_02024D1E
_080256FC:
@@ -47447,7 +47207,7 @@ _08025764:
adds r0, r2
movs r1, 0x5
strb r1, [r0]
- ldr r0, _080257B8 @ =gUnknown_020239F8
+ ldr r0, _080257B8 @ =gBattleTypeFlags
ldrh r1, [r0]
adds r0, r4, 0
ands r0, r1
@@ -47464,7 +47224,7 @@ _08025764:
b _080257C6
.align 2, 0
_080257B4: .4byte gUnknown_02024C80
-_080257B8: .4byte gUnknown_020239F8
+_080257B8: .4byte gBattleTypeFlags
_080257BC: .4byte gUnknown_02024D1E
_080257C0:
ldr r1, _080257D4 @ =gUnknown_02024D1E
@@ -49241,7 +49001,7 @@ sub_8026590: @ 8026590
push {r4-r7,lr}
mov r7, r8
push {r7}
- ldr r4, _08026628 @ =gUnknown_020239F8
+ ldr r4, _08026628 @ =gBattleTypeFlags
ldrh r1, [r4]
movs r0, 0x8
ands r0, r1
@@ -49314,7 +49074,7 @@ _0802661A:
blt _080265E8
b _08026678
.align 2, 0
-_08026628: .4byte gUnknown_020239F8
+_08026628: .4byte gBattleTypeFlags
_0802662C: .4byte gUnknown_02024C08
_08026630: .4byte gEnemyParty
_08026634: .4byte gPlayerParty
@@ -49353,7 +49113,7 @@ _0802666E:
_08026678:
cmp r7, 0x1
bhi _08026688
- ldr r0, _080266BC @ =gUnknown_020239F8
+ ldr r0, _080266BC @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x41
ands r0, r1
@@ -49362,7 +49122,7 @@ _08026678:
_08026688:
cmp r7, 0x2
bhi _080266C4
- ldr r0, _080266BC @ =gUnknown_020239F8
+ ldr r0, _080266BC @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x1
ands r0, r1
@@ -49388,7 +49148,7 @@ _080266A0:
str r1, [r3]
b _08026880
.align 2, 0
-_080266BC: .4byte gUnknown_020239F8
+_080266BC: .4byte gBattleTypeFlags
_080266C0: .4byte gUnknown_02024C10
_080266C4:
bl sub_80264C0
@@ -49397,7 +49157,7 @@ _080266C4:
bne _080266D0
b _08026880
_080266D0:
- ldr r0, _08026710 @ =gUnknown_020239F8
+ ldr r0, _08026710 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x40
ands r0, r1
@@ -49426,7 +49186,7 @@ _080266DC:
lsrs r5, r0, 24
b _0802671A
.align 2, 0
-_08026710: .4byte gUnknown_020239F8
+_08026710: .4byte gBattleTypeFlags
_08026714: .4byte gUnknown_02024C08
_08026718:
adds r5, r6, 0
@@ -49567,7 +49327,7 @@ _08026832:
adds r1, r2
adds r1, r0
strb r5, [r1]
- bl sub_806B528
+ bl IsLinkDoubleBattle
lsls r0, 24
cmp r0, 0
bne _08026850
@@ -49823,7 +49583,7 @@ _08026A2C: .4byte gUnknown_02024C10
thumb_func_start atk91_givemoney
atk91_givemoney: @ 8026A30
push {r4,lr}
- ldr r0, _08026A8C @ =gUnknown_020239F8
+ ldr r0, _08026A8C @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x2
ands r0, r1
@@ -49867,7 +49627,7 @@ atk91_givemoney: @ 8026A30
str r0, [r4]
b _08026AB4
.align 2, 0
-_08026A8C: .4byte gUnknown_020239F8
+_08026A8C: .4byte gBattleTypeFlags
_08026A90: .4byte gUnknown_02024D1A
_08026A94: .4byte gSaveBlock1 + 0x490
_08026A98: .4byte 0x02000000
@@ -49940,7 +49700,7 @@ _08026B00:
adds r0, r2
movs r1, 0x5
strb r1, [r0, 0x1]
- ldr r0, _08026B54 @ =gUnknown_020239F8
+ ldr r0, _08026B54 @ =gBattleTypeFlags
ldrh r1, [r0]
adds r0, r5, 0
ands r0, r1
@@ -49957,7 +49717,7 @@ _08026B00:
b _08026B60
.align 2, 0
_08026B50: .4byte gUnknown_02024C80
-_08026B54: .4byte gUnknown_020239F8
+_08026B54: .4byte gBattleTypeFlags
_08026B58: .4byte gUnknown_02024D1E
_08026B5C:
ldr r1, _08026B70 @ =gUnknown_02024D1E
@@ -50358,7 +50118,7 @@ _08026E90: .4byte gUnknown_02024C10
thumb_func_start sub_8026E94
sub_8026E94: @ 8026E94
push {lr}
- ldr r2, _08026EB4 @ =word_2024DB8
+ ldr r2, _08026EB4 @ =gBattleWeather
ldrh r1, [r2]
movs r0, 0x18
ands r0, r1
@@ -50374,7 +50134,7 @@ sub_8026E94: @ 8026E94
strb r0, [r1, 0x5]
b _08026ED2
.align 2, 0
-_08026EB4: .4byte word_2024DB8
+_08026EB4: .4byte gBattleWeather
_08026EB8: .4byte gUnknown_02024C68
_08026EBC: .4byte gUnknown_02024D1E
_08026EC0:
@@ -50428,7 +50188,7 @@ _08026F0A:
beq _08026F20
b _0802701C
_08026F20:
- ldr r2, _08026F94 @ =word_2024DB8
+ ldr r2, _08026F94 @ =gBattleWeather
ldrh r1, [r2]
movs r0, 0x18
ands r0, r1
@@ -50486,7 +50246,7 @@ _08026F20:
movs r0, 0x1
b _08026FAC
.align 2, 0
-_08026F94: .4byte word_2024DB8
+_08026F94: .4byte gBattleWeather
_08026F98: .4byte gUnknown_02024C07
_08026F9C: .4byte gBattleMons
_08026FA0: .4byte gUnknown_02024C98
@@ -50871,7 +50631,7 @@ _08027290:
ldrb r0, [r4]
bl dp01_battle_side_mark_buffer_for_execution
_080272CC:
- ldr r0, _08027340 @ =gUnknown_020239F8
+ ldr r0, _08027340 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x1
ands r0, r1
@@ -50922,7 +50682,7 @@ _08027330: .4byte gUnknown_02024C07
_08027334: .4byte gUnknown_02024C0C
_08027338: .4byte gBitTable
_0802733C: .4byte gBattleMons
-_08027340: .4byte gUnknown_020239F8
+_08027340: .4byte gBattleTypeFlags
_08027344: .4byte gUnknown_02024C10
thumb_func_end sub_8027238
@@ -53030,7 +52790,7 @@ move_weather_interaction: @ 80283B4
adds r3, r1, 0
cmp r0, 0x97
bne _080283D8
- ldr r0, _08028410 @ =word_2024DB8
+ ldr r0, _08028410 @ =gBattleWeather
ldrh r1, [r0]
movs r0, 0x60
ands r0, r1
@@ -53066,7 +52826,7 @@ _080283FA:
b _0802841A
.align 2, 0
_0802840C: .4byte gBattleMoves
-_08028410: .4byte word_2024DB8
+_08028410: .4byte gBattleWeather
_08028414: .4byte gUnknown_02024C6C
_08028418:
movs r0, 0x2
@@ -53325,7 +53085,7 @@ atkAC_remaininghptopower: @ 8028600
movs r2, 0x2C
ldrsh r1, [r1, r2]
movs r2, 0x30
- bl sub_80461D4
+ bl GetScaledHPFraction
lsls r0, 24
lsrs r1, r0, 24
movs r3, 0
@@ -53684,7 +53444,7 @@ _080288D4:
adds r1, r2
strb r0, [r1]
strb r0, [r4]
- ldr r0, _08028944 @ =gUnknown_020239F8
+ ldr r0, _08028944 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x1
ands r0, r1
@@ -53720,7 +53480,7 @@ _08028934: .4byte gUnknown_02024A60
_08028938: .4byte gUnknown_02024C07
_0802893C: .4byte 0x02000000
_08028940: .4byte 0x00016003
-_08028944: .4byte gUnknown_020239F8
+_08028944: .4byte gBattleTypeFlags
_08028948: .4byte gUnknown_02024C0C
_0802894C: .4byte gBitTable
_08028950: .4byte gBattleMons
@@ -53774,7 +53534,7 @@ _080289B0: .4byte gBattleMons
_080289B4: .4byte gUnknown_02024A6A
_080289B8: .4byte gUnknown_02024C07
_080289BC:
- ldr r0, _080289F4 @ =gUnknown_020239F8
+ ldr r0, _080289F4 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x1
ands r0, r1
@@ -53804,7 +53564,7 @@ _080289EC:
ldrb r0, [r0]
b _08028A10
.align 2, 0
-_080289F4: .4byte gUnknown_020239F8
+_080289F4: .4byte gBattleTypeFlags
_080289F8: .4byte gUnknown_02024A60
_080289FC: .4byte gUnknown_02024C0C
_08028A00: .4byte gBitTable
@@ -53850,7 +53610,7 @@ _08028A26:
bl battle_get_side_with_given_state
ldr r3, _08028AC0 @ =gUnknown_02024A60
strb r0, [r3]
- ldr r0, _08028AC4 @ =gUnknown_020239F8
+ ldr r0, _08028AC4 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x1
ands r0, r1
@@ -53900,7 +53660,7 @@ _08028AB4: .4byte gUnknown_02024D1E
_08028AB8: .4byte gBattleMons
_08028ABC: .4byte gUnknown_02024C07
_08028AC0: .4byte gUnknown_02024A60
-_08028AC4: .4byte gUnknown_020239F8
+_08028AC4: .4byte gBattleTypeFlags
_08028AC8: .4byte gUnknown_02024C0C
_08028ACC: .4byte gBitTable
_08028AD0: .4byte gUnknown_02024C10
@@ -55063,7 +54823,7 @@ _080293E4: .4byte gUnknown_02024C10
thumb_func_start sub_80293E8
sub_80293E8: @ 80293E8
push {lr}
- ldr r2, _08029408 @ =word_2024DB8
+ ldr r2, _08029408 @ =gBattleWeather
ldrh r1, [r2]
movs r0, 0x60
ands r0, r1
@@ -55079,7 +54839,7 @@ sub_80293E8: @ 80293E8
strb r0, [r1, 0x5]
b _08029426
.align 2, 0
-_08029408: .4byte word_2024DB8
+_08029408: .4byte gBattleWeather
_0802940C: .4byte gUnknown_02024C68
_08029410: .4byte gUnknown_02024D1E
_08029414:
@@ -55398,7 +55158,7 @@ atkC0_recoverbasedonsunlight: @ 802967C
ldrh r0, [r0, 0x2C]
cmp r1, r0
beq _0802975C
- ldr r4, _080296F4 @ =word_2024DB8
+ ldr r4, _080296F4 @ =gBattleWeather
ldrh r0, [r4]
cmp r0, 0
beq _080296CE
@@ -55439,7 +55199,7 @@ _080296CE:
_080296E8: .4byte gUnknown_02024C08
_080296EC: .4byte gUnknown_02024C07
_080296F0: .4byte gBattleMons
-_080296F4: .4byte word_2024DB8
+_080296F4: .4byte gBattleWeather
_080296F8: .4byte gUnknown_02024BEC
_080296FC:
ldrh r1, [r4]
@@ -56293,7 +56053,7 @@ _08029DA8: .4byte gUnknown_02024C10
thumb_func_start sub_8029DAC
sub_8029DAC: @ 8029DAC
push {lr}
- ldr r3, _08029DD0 @ =word_2024DB8
+ ldr r3, _08029DD0 @ =gBattleWeather
ldrh r1, [r3]
movs r2, 0x80
adds r0, r2, 0
@@ -56310,7 +56070,7 @@ sub_8029DAC: @ 8029DAC
strb r0, [r1, 0x5]
b _08029DEA
.align 2, 0
-_08029DD0: .4byte word_2024DB8
+_08029DD0: .4byte gBattleWeather
_08029DD4: .4byte gUnknown_02024C68
_08029DD8: .4byte gUnknown_02024D1E
_08029DDC:
@@ -56507,7 +56267,7 @@ atkCC_callterrainattack: @ 8029F50
str r0, [r2]
ldr r4, _08029FA8 @ =gUnknown_02024BE6
ldr r1, _08029FAC @ =gNaturePowerMoves
- ldr r0, _08029FB0 @ =gUnknown_0300428C
+ ldr r0, _08029FB0 @ =gBattleTerrain
ldrb r0, [r0]
lsls r0, 1
adds r0, r1
@@ -56542,7 +56302,7 @@ _08029FA0: .4byte gUnknown_02024C6C
_08029FA4: .4byte 0xfffffbff
_08029FA8: .4byte gUnknown_02024BE6
_08029FAC: .4byte gNaturePowerMoves
-_08029FB0: .4byte gUnknown_0300428C
+_08029FB0: .4byte gBattleTerrain
_08029FB4: .4byte gUnknown_02024C08
_08029FB8: .4byte gUnknown_081D6BBC
_08029FBC: .4byte gBattleMoves
@@ -56786,7 +56546,7 @@ sub_802A170: @ 802A170
bl battle_get_side_with_given_state
ldr r3, _0802A1DC @ =gUnknown_02024C08
strb r0, [r3]
- ldr r0, _0802A1E0 @ =gUnknown_020239F8
+ ldr r0, _0802A1E0 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x1
ands r0, r1
@@ -56827,7 +56587,7 @@ sub_802A170: @ 802A170
.align 2, 0
_0802A1D8: .4byte gUnknown_02024C07
_0802A1DC: .4byte gUnknown_02024C08
-_0802A1E0: .4byte gUnknown_020239F8
+_0802A1E0: .4byte gBattleTypeFlags
_0802A1E4: .4byte gUnknown_02024C0C
_0802A1E8: .4byte gBitTable
_0802A1EC: .4byte gUnknown_02024D28
@@ -56869,7 +56629,7 @@ sub_802A218: @ 802A218
lsrs r0, 24
cmp r0, 0x1
bne _0802A24C
- ldr r0, _0802A310 @ =gUnknown_020239F8
+ ldr r0, _0802A310 @ =gBattleTypeFlags
ldrh r1, [r0]
ldr r0, _0802A314 @ =0x00000902
ands r0, r1
@@ -56887,7 +56647,7 @@ _0802A24C:
bl battle_side_get_owner
lsls r0, 24
lsrs r2, r0, 24
- ldr r0, _0802A310 @ =gUnknown_020239F8
+ ldr r0, _0802A310 @ =gBattleTypeFlags
ldrh r1, [r0]
ldr r0, _0802A314 @ =0x00000902
ands r0, r1
@@ -56981,7 +56741,7 @@ _0802A2EE:
b _0802A49A
.align 2, 0
_0802A30C: .4byte gUnknown_02024C07
-_0802A310: .4byte gUnknown_020239F8
+_0802A310: .4byte gBattleTypeFlags
_0802A314: .4byte 0x00000902
_0802A318: .4byte gTrainerBattleOpponent
_0802A31C: .4byte gUnknown_02024DBC
@@ -57893,7 +57653,7 @@ _0802AA08:
lsls r0, 16
lsrs r0, 16
movs r1, 0x1
- bl sub_8090D54
+ bl GetPokedexHeightWeight
ldrh r1, [r4]
lsls r0, 16
lsrs r0, 16
@@ -58470,7 +58230,7 @@ _0802AEAA:
thumb_func_start sub_802AEB0
sub_802AEB0: @ 802AEB0
push {lr}
- ldr r0, _0802AEC4 @ =gUnknown_0300428C
+ ldr r0, _0802AEC4 @ =gBattleTerrain
ldrb r0, [r0]
cmp r0, 0x7
bhi _0802AF4C
@@ -58480,7 +58240,7 @@ sub_802AEB0: @ 802AEB0
ldr r0, [r0]
mov pc, r0
.align 2, 0
-_0802AEC4: .4byte gUnknown_0300428C
+_0802AEC4: .4byte gBattleTerrain
_0802AEC8: .4byte _0802AECC
.align 2, 0
_0802AECC:
@@ -58875,7 +58635,7 @@ sub_802B1C0: @ 802B1C0
lsls r0, 24
cmp r0, 0
bne _0802B276
- ldr r3, _0802B218 @ =word_2024DB8
+ ldr r3, _0802B218 @ =gBattleWeather
ldrb r0, [r3]
ldr r2, _0802B21C @ =0x02000000
cmp r0, 0
@@ -58896,7 +58656,7 @@ _0802B202:
strb r0, [r1]
b _0802B276
.align 2, 0
-_0802B218: .4byte word_2024DB8
+_0802B218: .4byte gBattleWeather
_0802B21C: .4byte 0x02000000
_0802B220: .4byte 0x0001601f
_0802B224: .4byte 0x0001601c
@@ -59050,7 +58810,7 @@ atkEB_settypetoterrain: @ 802B330
adds r0, r3
mov r12, r0
ldr r5, _0802B3A8 @ =gTerrainToType
- ldr r4, _0802B3AC @ =gUnknown_0300428C
+ ldr r4, _0802B3AC @ =gBattleTerrain
ldrb r0, [r4]
adds r0, r5
ldrb r2, [r0]
@@ -59095,7 +58855,7 @@ atkEB_settypetoterrain: @ 802B330
_0802B3A0: .4byte gBattleMons
_0802B3A4: .4byte gUnknown_02024C07
_0802B3A8: .4byte gTerrainToType
-_0802B3AC: .4byte gUnknown_0300428C
+_0802B3AC: .4byte gBattleTerrain
_0802B3B0: .4byte gUnknown_030041C0
_0802B3B4: .4byte gUnknown_02024C10
_0802B3B8:
@@ -59135,7 +58895,7 @@ sub_802B3E0: @ 802B3E0
bl battle_get_side_with_given_state
ldr r4, _0802B460 @ =gUnknown_02024A60
strb r0, [r4]
- ldr r0, _0802B464 @ =gUnknown_020239F8
+ ldr r0, _0802B464 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x1
ands r0, r1
@@ -59187,7 +58947,7 @@ sub_802B3E0: @ 802B3E0
.align 2, 0
_0802B45C: .4byte gUnknown_02024C07
_0802B460: .4byte gUnknown_02024A60
-_0802B464: .4byte gUnknown_020239F8
+_0802B464: .4byte gBattleTypeFlags
_0802B468: .4byte gUnknown_02024C0C
_0802B46C: .4byte gBitTable
_0802B470: .4byte gUnknown_02024C18
@@ -59362,7 +59122,7 @@ _0802B5C6:
movs r1, 0x1
eors r0, r1
strb r0, [r6]
- ldr r0, _0802B608 @ =gUnknown_020239F8
+ ldr r0, _0802B608 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x8
ands r0, r1
@@ -59381,7 +59141,7 @@ _0802B5F8: .4byte gUnknown_02024A64
_0802B5FC: .4byte gUnknown_02024A60
_0802B600: .4byte gUnknown_02024C07
_0802B604: .4byte gUnknown_02024C08
-_0802B608: .4byte gUnknown_020239F8
+_0802B608: .4byte gBattleTypeFlags
_0802B60C: .4byte gUnknown_02024C10
_0802B610: .4byte gUnknown_081D9F35
_0802B614:
@@ -60579,7 +60339,7 @@ dp01_tbl1_exec_completed: @ 802BF9C
adds r0, r1
ldr r1, _0802BFE4 @ =sub_802C014
str r1, [r0]
- ldr r0, _0802BFE8 @ =gUnknown_020239F8
+ ldr r0, _0802BFE8 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x2
ands r0, r1
@@ -60603,7 +60363,7 @@ dp01_tbl1_exec_completed: @ 802BF9C
_0802BFDC: .4byte gUnknown_03004330
_0802BFE0: .4byte gUnknown_02024A60
_0802BFE4: .4byte sub_802C014
-_0802BFE8: .4byte gUnknown_020239F8
+_0802BFE8: .4byte gBattleTypeFlags
_0802BFEC: .4byte gUnknown_02023A60
_0802BFF0:
ldr r2, _0802C00C @ =gUnknown_02024A64
@@ -60886,7 +60646,7 @@ _0802C218:
ands r0, r1
cmp r0, 0
beq _0802C2A0
- ldr r6, _0802C294 @ =gUnknown_020239F8
+ ldr r6, _0802C294 @ =gBattleTypeFlags
ldrh r1, [r6]
adds r0, r2, 0
ands r0, r1
@@ -60938,7 +60698,7 @@ _0802C278:
bl sub_814A7FC
b _0802C2AC
.align 2, 0
-_0802C294: .4byte gUnknown_020239F8
+_0802C294: .4byte gBattleTypeFlags
_0802C298: .4byte gUnknown_02024C0C
_0802C29C: .4byte gBitTable
_0802C2A0:
@@ -61800,7 +61560,7 @@ _0802C99C:
ldrb r0, [r0]
cmp r0, 0x1
bls _0802CA38
- ldr r0, _0802C9DC @ =gUnknown_020239F8
+ ldr r0, _0802C9DC @ =gBattleTypeFlags
ldrh r1, [r0]
adds r0, r6, 0
ands r0, r1
@@ -61823,7 +61583,7 @@ _0802C99C:
b _0802C9F4
.align 2, 0
_0802C9D8: .4byte gUnknown_03004348
-_0802C9DC: .4byte gUnknown_020239F8
+_0802C9DC: .4byte gBattleTypeFlags
_0802C9E0: .4byte gUnknown_02024E64
_0802C9E4: .4byte gUnknown_081FAE80
_0802C9E8: .4byte gUnknown_03004344
@@ -62760,7 +62520,7 @@ sub_802D18C: @ 802D18C
ands r0, r1
cmp r0, 0
bne _0802D1F2
- ldr r0, _0802D1C0 @ =gUnknown_020239F8
+ ldr r0, _0802D1C0 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x2
ands r0, r1
@@ -62777,7 +62537,7 @@ sub_802D18C: @ 802D18C
b _0802D1F2
.align 2, 0
_0802D1BC: .4byte gPaletteFade
-_0802D1C0: .4byte gUnknown_020239F8
+_0802D1C0: .4byte gBattleTypeFlags
_0802D1C4: .4byte gUnknown_03004330
_0802D1C8: .4byte gUnknown_02024A60
_0802D1CC: .4byte sub_802D148
@@ -62952,15 +62712,15 @@ _0802D318: .4byte 0x02017810
sub_802D31C: @ 802D31C
push {r4-r7,lr}
movs r6, 0
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _0802D340
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _0802D374
- ldr r0, _0802D360 @ =gUnknown_020239F8
+ ldr r0, _0802D360 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x40
ands r0, r1
@@ -62984,7 +62744,7 @@ _0802D340:
bne _0802D3AA
b _0802D3A8
.align 2, 0
-_0802D360: .4byte gUnknown_020239F8
+_0802D360: .4byte gBattleTypeFlags
_0802D364: .4byte gSprites
_0802D368: .4byte gUnknown_03004340
_0802D36C: .4byte gUnknown_02024A60
@@ -63097,7 +62857,7 @@ _0802D3D8:
bl FreeSpriteTilesByTag
adds r0, r4, 0
bl FreeSpritePaletteByTag
- ldr r0, _0802D474 @ =gUnknown_020239F8
+ ldr r0, _0802D474 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x40
ands r0, r1
@@ -63113,7 +62873,7 @@ _0802D464: .4byte gUnknown_02024A60
_0802D468: .4byte SpriteCallbackDummy
_0802D46C: .4byte 0x02017810
_0802D470: .4byte 0x000027f9
-_0802D474: .4byte gUnknown_020239F8
+_0802D474: .4byte gBattleTypeFlags
_0802D478: .4byte gMPlay_BGM
_0802D47C:
ldr r0, _0802D4E0 @ =gMPlay_BGM
@@ -63133,7 +62893,7 @@ _0802D488:
ldr r5, _0802D4F0 @ =gPlayerParty
adds r0, r5
bl sub_80324F8
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _0802D4BE
@@ -63247,11 +63007,11 @@ _0802D55E:
ands r0, r1
cmp r0, 0
bne _0802D64C
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _0802D5EE
- ldr r0, _0802D664 @ =gUnknown_020239F8
+ ldr r0, _0802D664 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x40
ands r0, r1
@@ -63345,7 +63105,7 @@ _0802D654: .4byte gUnknown_02024A60
_0802D658: .4byte 0x02017810
_0802D65C: .4byte gUnknown_02024A6A
_0802D660: .4byte gPlayerParty
-_0802D664: .4byte gUnknown_020239F8
+_0802D664: .4byte gBattleTypeFlags
_0802D668: .4byte gUnknown_0300434C
_0802D66C: .4byte gSprites
_0802D670: .4byte gUnknown_03004340
@@ -63699,7 +63459,7 @@ sub_802D924: @ 802D924
str r7, [sp, 0x8]
ldrh r2, [r1, 0xA]
str r2, [sp, 0xC]
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -63776,7 +63536,7 @@ _0802D96A:
movs r1, 0xB
bl dp01_build_cmdbuf_x21_a_bb
strb r5, [r4]
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -64117,7 +63877,7 @@ sub_802DCB0: @ 802DCB0
adds r0, r1
ldrb r4, [r0, 0xC]
ldrb r6, [r0, 0x8]
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -64184,7 +63944,7 @@ sub_802DD10: @ 802DD10
adds r0, r7, 0
movs r1, 0x38
bl GetMonData
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -65095,7 +64855,7 @@ _0802E488: .4byte 0x02017810
b_link_standby_message: @ 802E48C
push {lr}
sub sp, 0x4
- ldr r0, _0802E4BC @ =gUnknown_020239F8
+ ldr r0, _0802E4BC @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x2
ands r0, r1
@@ -65118,7 +64878,7 @@ _0802E4B6:
pop {r0}
bx r0
.align 2, 0
-_0802E4BC: .4byte gUnknown_020239F8
+_0802E4BC: .4byte gBattleTypeFlags
_0802E4C0: .4byte gUnknown_030042A4
_0802E4C4: .4byte gUnknown_030042A0
_0802E4C8: .4byte gUnknown_03004210
@@ -67573,7 +67333,7 @@ sub_802F934: @ 802F934
lsrs r0, 16
mov r8, r0
ldr r0, _0802FA84 @ =sub_80312F0
- bl object_new_hidden_with_callback
+ bl CreateInvisibleSpriteWithCallback
ldr r1, _0802FA88 @ =gUnknown_0300434C
mov r9, r1
add r9, r6
@@ -67845,7 +67605,7 @@ sub_802FBB4: @ 802FBB4
push {r4-r7,lr}
mov r7, r8
push {r7}
- ldr r0, _0802FBDC @ =gUnknown_020239F8
+ ldr r0, _0802FBDC @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x40
ands r0, r1
@@ -67862,7 +67622,7 @@ sub_802FBB4: @ 802FBB4
movs r7, 0x10
b _0802FBEA
.align 2, 0
-_0802FBDC: .4byte gUnknown_020239F8
+_0802FBDC: .4byte gBattleTypeFlags
_0802FBE0: .4byte gUnknown_02024A60
_0802FBE4: .4byte 0x0000fff0
_0802FBE8:
@@ -70181,11 +69941,11 @@ _08030ECC:
mov r9, r0
ldrh r0, [r1, 0x8]
strb r0, [r7]
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _08030EEC
- ldr r0, _08030F10 @ =gUnknown_020239F8
+ ldr r0, _08030F10 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x40
ands r0, r1
@@ -70208,7 +69968,7 @@ _08030EEC:
b _08030F70
.align 2, 0
_08030F0C: .4byte gUnknown_02024A60
-_08030F10: .4byte gUnknown_020239F8
+_08030F10: .4byte gBattleTypeFlags
_08030F14: .4byte gUnknown_02023A60
_08030F18: .4byte gUnknown_02024A6A
_08030F1C:
@@ -71369,7 +71129,7 @@ _080317DC:
str r6, [sp, 0x4]
str r7, [sp, 0x8]
adds r0, r5, 0
- bl sub_800D334
+ bl HandleLoadSpecialPokePic
mov r1, r9
lsls r2, r1, 4
movs r0, 0x80
@@ -71533,7 +71293,7 @@ _08031944:
str r6, [sp, 0x4]
str r7, [sp, 0x8]
adds r0, r5, 0
- bl sub_800D334
+ bl HandleLoadSpecialPokePic
mov r1, r9
lsls r2, r1, 4
movs r0, 0x80
@@ -71804,7 +71564,7 @@ unref_sub_8031BA0: @ 8031BA0
adds r4, 0x8
adds r0, r4, 0
bl LoadSpritePalette
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
bne _08031BD8
@@ -71883,13 +71643,13 @@ _08031C40:
.align 2, 0
_08031C58: .4byte gUnknown_0820A4D4
_08031C5C:
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
bne _08031CC4
cmp r4, 0x2
bne _08031C94
- ldr r0, _08031C80 @ =gUnknown_020239F8
+ ldr r0, _08031C80 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x80
ands r0, r1
@@ -71899,7 +71659,7 @@ _08031C5C:
bl LoadCompressedObjectPic
b _08031D52
.align 2, 0
-_08031C80: .4byte gUnknown_020239F8
+_08031C80: .4byte gBattleTypeFlags
_08031C84: .4byte gUnknown_0820A4AC
_08031C88:
ldr r0, _08031C90 @ =gUnknown_0820A47C
@@ -72066,7 +71826,7 @@ _08031DC0:
strb r0, [r4]
b _08031EDE
_08031DC8:
- ldr r0, _08031DE0 @ =gUnknown_020239F8
+ ldr r0, _08031DE0 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x80
ands r0, r1
@@ -72078,7 +71838,7 @@ _08031DC8:
bl battle_make_oam_safari_battle
b _08031DEA
.align 2, 0
-_08031DE0: .4byte gUnknown_020239F8
+_08031DE0: .4byte gBattleTypeFlags
_08031DE4:
ldrb r0, [r4]
bl battle_make_oam_normal_battle
@@ -72123,7 +71883,7 @@ _08031E34:
lsls r0, 24
cmp r0, 0
bne _08031E7C
- ldr r0, _08031E6C @ =gUnknown_020239F8
+ ldr r0, _08031E6C @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x80
ands r0, r1
@@ -72145,7 +71905,7 @@ _08031E34:
bl sub_8045A5C
b _08031E9A
.align 2, 0
-_08031E6C: .4byte gUnknown_020239F8
+_08031E6C: .4byte gBattleTypeFlags
_08031E70: .4byte gUnknown_03004340
_08031E74: .4byte gUnknown_02024A6A
_08031E78: .4byte gPlayerParty
@@ -72532,7 +72292,7 @@ _08032114:
ldr r4, [r4]
_08032184:
str r4, [sp, 0x8]
- bl sub_800D334
+ bl HandleLoadSpecialPokePic
b _08032202
.align 2, 0
_0803218C: .4byte gUnknown_02024A6A
@@ -72585,7 +72345,7 @@ _080321A4:
add r4, r12
ldr r4, [r4]
str r4, [sp, 0x8]
- bl sub_800D334
+ bl HandleLoadSpecialPokePic
_08032202:
ldr r1, _08032318 @ =gUnknown_081FAF4C
mov r2, r10
@@ -72968,7 +72728,7 @@ sub_80324F8: @ 80324F8
lsls r1, 16
asrs r1, 16
adds r0, r4, 0
- bl sub_8046200
+ bl GetHPBarLevel
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -73010,7 +72770,7 @@ _08032568:
negs r0, r0
ands r0, r2
strb r0, [r1]
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
bne _08032590
@@ -73020,7 +72780,7 @@ _08032568:
.align 2, 0
_0803258C: .4byte 0x02017800
_08032590:
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _080325B2
@@ -73057,7 +72817,7 @@ sub_80325B8: @ 80325B8
adds r0, r5, 0
ands r0, r2
strb r0, [r1]
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _080325F2
@@ -73098,7 +72858,7 @@ unref_sub_8032604: @ 8032604
lsls r1, 16
asrs r1, 16
adds r0, r4, 0
- bl sub_8046200
+ bl GetHPBarLevel
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
@@ -73160,7 +72920,7 @@ sub_8032638: @ 8032638
mov r1, r8
bl sub_80324F8
_080326AA:
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _080326CE
@@ -73349,7 +73109,7 @@ sub_80327CC: @ 80327CC
lsls r0, 2
adds r0, r7
strh r5, [r0, 0x2E]
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _0803288A
@@ -73931,15 +73691,15 @@ _08032C84: .4byte 0x02017810
sub_8032C88: @ 8032C88
push {r4-r7,lr}
movs r6, 0
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _08032CAC
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _08032CE0
- ldr r0, _08032CCC @ =gUnknown_020239F8
+ ldr r0, _08032CCC @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x40
ands r0, r1
@@ -73963,7 +73723,7 @@ _08032CAC:
bne _08032D16
b _08032D14
.align 2, 0
-_08032CCC: .4byte gUnknown_020239F8
+_08032CCC: .4byte gBattleTypeFlags
_08032CD0: .4byte gSprites
_08032CD4: .4byte gUnknown_03004340
_08032CD8: .4byte gUnknown_02024A60
@@ -74072,7 +73832,7 @@ _08032D22:
bl FreeSpriteTilesByTag
adds r0, r4, 0
bl FreeSpritePaletteByTag
- ldr r0, _08032DDC @ =gUnknown_020239F8
+ ldr r0, _08032DDC @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x40
ands r0, r1
@@ -74088,7 +73848,7 @@ _08032DCC: .4byte gUnknown_02024A60
_08032DD0: .4byte SpriteCallbackDummy
_08032DD4: .4byte 0x02017810
_08032DD8: .4byte 0x000027f9
-_08032DDC: .4byte gUnknown_020239F8
+_08032DDC: .4byte gBattleTypeFlags
_08032DE0: .4byte gMPlay_BGM
_08032DE4:
ldr r0, _08032E14 @ =gMPlay_BGM
@@ -74206,11 +73966,11 @@ _08032EAE:
beq _08032EC6
b _08032FE0
_08032EC6:
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _08032F58
- ldr r0, _08032FFC @ =gUnknown_020239F8
+ ldr r0, _08032FFC @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x40
ands r0, r1
@@ -74347,7 +74107,7 @@ _08032FEC: .4byte gUnknown_02024A60
_08032FF0: .4byte 0x02017810
_08032FF4: .4byte gUnknown_02024A6A
_08032FF8: .4byte gEnemyParty
-_08032FFC: .4byte gUnknown_020239F8
+_08032FFC: .4byte gBattleTypeFlags
_08033000: .4byte gUnknown_0300434C
_08033004: .4byte gSprites
_08033008: .4byte gUnknown_03004340
@@ -77414,7 +77174,7 @@ sub_803495C: @ 803495C
lsrs r0, 16
mov r8, r0
ldr r0, _08034AC4 @ =sub_80312F0
- bl object_new_hidden_with_callback
+ bl CreateInvisibleSpriteWithCallback
ldr r1, _08034AC8 @ =gUnknown_0300434C
mov r10, r1
add r10, r6
@@ -77707,7 +77467,7 @@ sub_8034BFC: @ 8034BFC
.align 2, 0
_08034C18: .4byte gTrainerBattleOpponent
_08034C1C:
- ldr r0, _08034C30 @ =gUnknown_020239F8
+ ldr r0, _08034C30 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x80
lsls r0, 1
@@ -77717,7 +77477,7 @@ _08034C1C:
bl get_trainer_class_pic_index
b _08034C42
.align 2, 0
-_08034C30: .4byte gUnknown_020239F8
+_08034C30: .4byte gBattleTypeFlags
_08034C34:
movs r0, 0x80
lsls r0, 4
@@ -77918,7 +77678,7 @@ sub_8034DC0: @ 8034DC0
.align 2, 0
_08034DDC: .4byte gTrainerBattleOpponent
_08034DE0:
- ldr r0, _08034DF4 @ =gUnknown_020239F8
+ ldr r0, _08034DF4 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x80
lsls r0, 1
@@ -77928,7 +77688,7 @@ _08034DE0:
bl get_trainer_class_pic_index
b _08034E06
.align 2, 0
-_08034DF4: .4byte gUnknown_020239F8
+_08034DF4: .4byte gBattleTypeFlags
_08034DF8:
movs r0, 0x80
lsls r0, 4
@@ -78707,15 +78467,15 @@ sub_8035428: @ 8035428
lsls r0, 9
ldr r1, _08035460 @ =gUnknown_02023A64
adds r5, r0, r1
- ldr r0, _08035464 @ =gUnknown_020239F8
+ ldr r0, _08035464 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x93
lsls r0, 3
ands r0, r1
cmp r0, 0
beq _080354F8
- bl sub_810715C
- bl sub_81072A8
+ bl BattleAI_SetupAIData
+ bl BattleAI_GetAIActionToUse
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0x4
@@ -78728,7 +78488,7 @@ sub_8035428: @ 8035428
.align 2, 0
_0803545C: .4byte gUnknown_02024A60
_08035460: .4byte gUnknown_02023A64
-_08035464: .4byte gUnknown_020239F8
+_08035464: .4byte gBattleTypeFlags
_08035468:
movs r0, 0x1
movs r1, 0x3
@@ -78832,7 +78592,7 @@ _080354FA:
_08035534: .4byte gBattleMoves
_08035538: .4byte gUnknown_02024A60
_0803553C:
- ldr r0, _0803556C @ =gUnknown_020239F8
+ ldr r0, _0803556C @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x1
ands r0, r1
@@ -78854,7 +78614,7 @@ _0803553C:
bl dp01_build_cmdbuf_x21_a_bb
b _08035586
.align 2, 0
-_0803556C: .4byte gUnknown_020239F8
+_0803556C: .4byte gBattleTypeFlags
_08035570:
movs r0, 0
bl battle_get_side_with_given_state
@@ -78916,7 +78676,7 @@ sub_80355C0: @ 80355C0
lsrs r4, r0, 24
cmp r4, 0x6
bne _0803568A
- ldr r0, _08035610 @ =gUnknown_020239F8
+ ldr r0, _08035610 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x1
ands r0, r1
@@ -78932,7 +78692,7 @@ sub_80355C0: @ 80355C0
_08035604: .4byte 0x02000000
_08035608: .4byte gUnknown_02024A60
_0803560C: .4byte 0x000160c8
-_08035610: .4byte gUnknown_020239F8
+_08035610: .4byte gBattleTypeFlags
_08035614:
movs r0, 0x1
bl battle_get_side_with_given_state
@@ -79743,11 +79503,11 @@ sub_8035C44: @ 8035C44
adds r0, r1
ldrh r0, [r0, 0x8]
strb r0, [r7]
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _08035C7E
- ldr r0, _08035CA4 @ =gUnknown_020239F8
+ ldr r0, _08035CA4 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x40
ands r0, r1
@@ -79771,7 +79531,7 @@ _08035C7E:
.align 2, 0
_08035C9C: .4byte gUnknown_02024A60
_08035CA0: .4byte gTasks
-_08035CA4: .4byte gUnknown_020239F8
+_08035CA4: .4byte gBattleTypeFlags
_08035CA8: .4byte gUnknown_02023A60
_08035CAC: .4byte gUnknown_02024A6A
_08035CB0:
@@ -80156,7 +79916,7 @@ sub_8035F98: @ 8035F98
thumb_func_start sub_8035FA4
sub_8035FA4: @ 8035FA4
push {lr}
- ldr r0, _08035FD8 @ =gUnknown_020239F8
+ ldr r0, _08035FD8 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x6
ands r0, r1
@@ -80180,7 +79940,7 @@ _08035FCE:
pop {r0}
bx r0
.align 2, 0
-_08035FD8: .4byte gUnknown_020239F8
+_08035FD8: .4byte gBattleTypeFlags
_08035FDC: .4byte gMain
_08035FE0: .4byte 0x0000043d
_08035FE4: .4byte gUnknown_030042D0
@@ -80248,7 +80008,7 @@ sub_8036054: @ 8036054
mov r7, r9
mov r6, r8
push {r6,r7}
- ldr r0, _0803606C @ =gUnknown_020239F8
+ ldr r0, _0803606C @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x1
ands r0, r1
@@ -80256,7 +80016,7 @@ sub_8036054: @ 8036054
beq _080360A0
b _080361C8
.align 2, 0
-_0803606C: .4byte gUnknown_020239F8
+_0803606C: .4byte gBattleTypeFlags
_08036070:
ldr r0, _08036094 @ =gUnknown_02024A60
ldrb r0, [r0]
@@ -80485,7 +80245,7 @@ _0803622E:
bne _08036242
b _08036400
_08036242:
- ldr r0, _0803628C @ =gUnknown_020239F8
+ ldr r0, _0803628C @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x1
ands r0, r1
@@ -80516,7 +80276,7 @@ _0803627C: .4byte gUnknown_02024C3C
_08036280: .4byte gUnknown_02024A60
_08036284: .4byte 0x0000ffff
_08036288: .4byte gBattleMoves
-_0803628C: .4byte gUnknown_020239F8
+_0803628C: .4byte gBattleTypeFlags
_08036290: .4byte gUnknown_02024C0C
_08036294: .4byte gBitTable
_08036298:
@@ -80901,7 +80661,7 @@ _08036596:
cmp r4, 0x3
ble _08036550
_0803659C:
- ldr r0, _080365BC @ =gUnknown_020239F8
+ ldr r0, _080365BC @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x1
ands r0, r1
@@ -80913,7 +80673,7 @@ _080365AC: .4byte gUnknown_02024C0C
_080365B0: .4byte gBitTable
_080365B4: .4byte gBattleMons
_080365B8: .4byte gUnknown_02024A60
-_080365BC: .4byte gUnknown_020239F8
+_080365BC: .4byte gBattleTypeFlags
_080365C0:
movs r0, 0x1
b _08036640
@@ -81082,7 +80842,7 @@ _080366E2:
bne _080366F6
b _080368D8
_080366F6:
- ldr r0, _08036744 @ =gUnknown_020239F8
+ ldr r0, _08036744 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x1
ands r0, r1
@@ -81115,7 +80875,7 @@ _08036734: .4byte gUnknown_02024A60
_08036738: .4byte 0x0000ffff
_0803673C: .4byte gUnknown_02024C5C
_08036740: .4byte gBattleMoves
-_08036744: .4byte gUnknown_020239F8
+_08036744: .4byte gBattleTypeFlags
_08036748: .4byte gUnknown_02024C0C
_0803674C: .4byte gBitTable
_08036750:
@@ -81410,7 +81170,7 @@ _08036994:
_080369A0:
movs r0, 0
mov r8, r0
- ldr r0, _080369F0 @ =gUnknown_020239F8
+ ldr r0, _080369F0 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x1
ands r0, r1
@@ -81442,7 +81202,7 @@ _080369E0: .4byte gBattleMons
_080369E4: .4byte gUnknown_02024A60
_080369E8: .4byte 0x0400e000
_080369EC: .4byte gUnknown_02024C98
-_080369F0: .4byte gUnknown_020239F8
+_080369F0: .4byte gBattleTypeFlags
_080369F4: .4byte gUnknown_02024C0C
_080369F8: .4byte gBitTable
_080369FC:
@@ -81576,7 +81336,7 @@ _08036AFE:
thumb_func_start sub_8036B0C
sub_8036B0C: @ 8036B0C
push {r4-r6,lr}
- ldr r5, _08036B68 @ =gUnknown_020239F8
+ ldr r5, _08036B68 @ =gBattleTypeFlags
ldrh r1, [r5]
movs r0, 0x8
ands r0, r1
@@ -81619,7 +81379,7 @@ _08036B28:
adds r6, r5, 0
b _08036B8C
.align 2, 0
-_08036B68: .4byte gUnknown_020239F8
+_08036B68: .4byte gBattleTypeFlags
_08036B6C: .4byte 0x02000000
_08036B70: .4byte gUnknown_02024A60
_08036B74: .4byte 0x000160c8
@@ -81808,7 +81568,7 @@ sub_8036CD4: @ 8036CD4
mov r5, r8
push {r5-r7}
sub sp, 0x1C
- ldr r0, _08036D1C @ =gUnknown_020239F8
+ ldr r0, _08036D1C @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x1
ands r0, r1
@@ -81837,7 +81597,7 @@ sub_8036CD4: @ 8036CD4
str r4, [sp, 0x10]
b _08036D42
.align 2, 0
-_08036D1C: .4byte gUnknown_020239F8
+_08036D1C: .4byte gBattleTypeFlags
_08036D20: .4byte gUnknown_02024A60
_08036D24: .4byte gUnknown_02024C0C
_08036D28: .4byte gBitTable
@@ -82431,7 +82191,7 @@ _080371D0:
mov r0, r10
movs r1, 0x4
movs r2, 0x4
- bl sub_803F1DC
+ bl GetItemEffectParamOffset
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0
@@ -83046,15 +82806,15 @@ _0803767C: .4byte 0x02017810
sub_8037680: @ 8037680
push {r4-r7,lr}
movs r6, 0
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _080376A4
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _080376D8
- ldr r0, _080376C4 @ =gUnknown_020239F8
+ ldr r0, _080376C4 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x40
ands r0, r1
@@ -83078,7 +82838,7 @@ _080376A4:
bne _0803770E
b _0803770C
.align 2, 0
-_080376C4: .4byte gUnknown_020239F8
+_080376C4: .4byte gBattleTypeFlags
_080376C8: .4byte gSprites
_080376CC: .4byte gUnknown_03004340
_080376D0: .4byte gUnknown_02024A60
@@ -83195,7 +82955,7 @@ _08037720:
adds r0, r4, 0
bl FreeSpritePaletteByTag
_080377B4:
- ldr r0, _080377F0 @ =gUnknown_020239F8
+ ldr r0, _080377F0 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x40
ands r0, r1
@@ -83217,7 +82977,7 @@ _080377E0: .4byte gUnknown_02024A60
_080377E4: .4byte SpriteCallbackDummy
_080377E8: .4byte 0x02017810
_080377EC: .4byte 0x000027f9
-_080377F0: .4byte gUnknown_020239F8
+_080377F0: .4byte gBattleTypeFlags
_080377F4: .4byte gMPlay_BGM
_080377F8:
ldr r0, _08037828 @ =gMPlay_BGM
@@ -83335,7 +83095,7 @@ _080378BE:
beq _080378DA
b _08037A3A
_080378DA:
- ldr r0, _08037A58 @ =gUnknown_020239F8
+ ldr r0, _08037A58 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x40
ands r0, r1
@@ -83368,11 +83128,11 @@ _0803790E:
adds r0, r5
strb r4, [r0, 0x9]
_0803791A:
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _080379B2
- ldr r0, _08037A58 @ =gUnknown_020239F8
+ ldr r0, _08037A58 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x40
ands r0, r1
@@ -83513,7 +83273,7 @@ _08037A48: .4byte gUnknown_02024A60
_08037A4C: .4byte 0x02017810
_08037A50: .4byte gUnknown_02024A6A
_08037A54: .4byte gEnemyParty
-_08037A58: .4byte gUnknown_020239F8
+_08037A58: .4byte gBattleTypeFlags
_08037A5C: .4byte gUnknown_0300434C
_08037A60: .4byte gSprites
_08037A64: .4byte gUnknown_03004340
@@ -84111,7 +83871,7 @@ sub_8037F34: @ 8037F34
ands r0, r1
cmp r0, 0
bne _08037F9A
- ldr r0, _08037F68 @ =gUnknown_020239F8
+ ldr r0, _08037F68 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x2
ands r0, r1
@@ -84128,7 +83888,7 @@ sub_8037F34: @ 8037F34
b _08037F9A
.align 2, 0
_08037F64: .4byte gPaletteFade
-_08037F68: .4byte gUnknown_020239F8
+_08037F68: .4byte gBattleTypeFlags
_08037F6C: .4byte gUnknown_03004330
_08037F70: .4byte gUnknown_02024A60
_08037F74: .4byte sub_8037EF0
@@ -84216,7 +83976,7 @@ dp01_tbl4_exec_completed: @ 8038004
adds r0, r1
ldr r1, _0803804C @ =sub_803752C
str r1, [r0]
- ldr r0, _08038050 @ =gUnknown_020239F8
+ ldr r0, _08038050 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x2
ands r0, r1
@@ -84240,7 +84000,7 @@ dp01_tbl4_exec_completed: @ 8038004
_08038044: .4byte gUnknown_03004330
_08038048: .4byte gUnknown_02024A60
_0803804C: .4byte sub_803752C
-_08038050: .4byte gUnknown_020239F8
+_08038050: .4byte gBattleTypeFlags
_08038054: .4byte gUnknown_02023A60
_08038058:
ldr r2, _08038074 @ =gUnknown_02024A64
@@ -86633,7 +86393,7 @@ sub_8039430: @ 8039430
lsrs r0, 16
mov r8, r0
ldr r0, _08039598 @ =sub_80312F0
- bl object_new_hidden_with_callback
+ bl CreateInvisibleSpriteWithCallback
ldr r1, _0803959C @ =gUnknown_0300434C
mov r10, r1
add r10, r6
@@ -86915,7 +86675,7 @@ sub_80396D0: @ 80396D0
mov r6, r9
mov r5, r8
push {r5,r6}
- ldr r0, _08039704 @ =gUnknown_020239F8
+ ldr r0, _08039704 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x40
ands r0, r1
@@ -86936,7 +86696,7 @@ _080396F8:
bl sub_803FC34
b _08039724
.align 2, 0
-_08039704: .4byte gUnknown_020239F8
+_08039704: .4byte gBattleTypeFlags
_08039708: .4byte gUnknown_02024A60
_0803970C: .4byte 0x0000fff0
_08039710: .4byte gLinkPlayers
@@ -88441,11 +88201,11 @@ sub_803A2C4: @ 803A2C4
adds r0, r1
ldrh r0, [r0, 0x8]
strb r0, [r7]
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _0803A2FE
- ldr r0, _0803A324 @ =gUnknown_020239F8
+ ldr r0, _0803A324 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x40
ands r0, r1
@@ -88469,7 +88229,7 @@ _0803A2FE:
.align 2, 0
_0803A31C: .4byte gUnknown_02024A60
_0803A320: .4byte gTasks
-_0803A324: .4byte gUnknown_020239F8
+_0803A324: .4byte gBattleTypeFlags
_0803A328: .4byte gUnknown_02023A60
_0803A32C: .4byte gUnknown_02024A6A
_0803A330:
diff --git a/asm/rom_803D1FC.s b/asm/rom_803D1FC.s
deleted file mode 100644
index e011d3c43..000000000
--- a/asm/rom_803D1FC.s
+++ /dev/null
@@ -1,5839 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start ExecuteTableBasedItemEffect_
-ExecuteTableBasedItemEffect_: @ 803E18C
- push {r4,lr}
- sub sp, 0x4
- lsls r1, 16
- lsrs r1, 16
- lsls r2, 24
- lsrs r2, 24
- lsls r3, 24
- lsrs r3, 24
- movs r4, 0
- str r4, [sp]
- bl sub_803E1B0
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end ExecuteTableBasedItemEffect_
-
- thumb_func_start sub_803E1B0
-sub_803E1B0: @ 803E1B0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x3C
- mov r8, r0
- ldr r0, [sp, 0x5C]
- lsls r1, 16
- lsrs r1, 16
- str r1, [sp, 0x8]
- lsls r2, 24
- lsrs r2, 24
- str r2, [sp, 0xC]
- lsls r3, 24
- lsrs r3, 24
- str r3, [sp, 0x10]
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x14]
- movs r0, 0x1
- str r0, [sp, 0x1C]
- movs r1, 0x6
- str r1, [sp, 0x24]
- movs r2, 0
- str r2, [sp, 0x2C]
- movs r3, 0x4
- str r3, [sp, 0x34]
- mov r0, r8
- movs r1, 0xC
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xAF
- bne _0803E240
- ldr r0, _0803E21C @ =gMain
- ldr r4, _0803E220 @ =0x0000043d
- adds r0, r4
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0803E22C
- ldr r2, _0803E224 @ =gEnigmaBerries
- ldr r0, _0803E228 @ =gUnknown_02024E6C
- ldrb r1, [r0]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x7]
- b _0803E248
- .align 2, 0
-_0803E21C: .4byte gMain
-_0803E220: .4byte 0x0000043d
-_0803E224: .4byte gEnigmaBerries
-_0803E228: .4byte gUnknown_02024E6C
-_0803E22C:
- ldr r0, _0803E238 @ =gSaveBlock1
- ldr r5, _0803E23C @ =0x00003688
- adds r0, r5
- ldrb r0, [r0]
- b _0803E248
- .align 2, 0
-_0803E238: .4byte gSaveBlock1
-_0803E23C: .4byte 0x00003688
-_0803E240:
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r0, 24
-_0803E248:
- str r0, [sp, 0x30]
- ldr r1, _0803E2A4 @ =gUnknown_02024C0B
- ldr r0, _0803E2A8 @ =gUnknown_02024E6C
- ldrb r2, [r0]
- strb r2, [r1]
- ldr r0, _0803E2AC @ =gMain
- ldr r1, _0803E2B0 @ =0x0000043d
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- beq _0803E2E8
- ldr r0, _0803E2B4 @ =gUnknown_02024A60
- strb r2, [r0]
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- negs r1, r0
- orrs r1, r0
- lsrs r1, 31
- str r1, [sp, 0x18]
- ldr r0, _0803E2B8 @ =gUnknown_02024A68
- ldr r4, [sp, 0x8]
- subs r4, 0xD
- ldrb r0, [r0]
- cmp r1, r0
- bge _0803E2F4
- ldr r2, _0803E2BC @ =gUnknown_02024A6A
- lsls r0, r1, 1
- adds r0, r2
- ldrh r3, [r0]
- ldr r5, [sp, 0xC]
- lsls r0, r5, 16
- lsrs r1, r0, 16
- adds r5, r0, 0
- cmp r3, r1
- bne _0803E2C0
- ldr r0, [sp, 0x18]
- str r0, [sp, 0x34]
- b _0803E2F4
- .align 2, 0
-_0803E2A4: .4byte gUnknown_02024C0B
-_0803E2A8: .4byte gUnknown_02024E6C
-_0803E2AC: .4byte gMain
-_0803E2B0: .4byte 0x0000043d
-_0803E2B4: .4byte gUnknown_02024A60
-_0803E2B8: .4byte gUnknown_02024A68
-_0803E2BC: .4byte gUnknown_02024A6A
-_0803E2C0:
- ldr r1, [sp, 0x18]
- adds r1, 0x2
- str r1, [sp, 0x18]
- ldr r0, _0803E2E4 @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r1, r0
- bge _0803E2F4
- lsls r0, r1, 1
- adds r0, r2
- ldrh r1, [r0]
- lsrs r0, r5, 16
- cmp r1, r0
- bne _0803E2C0
- ldr r2, [sp, 0x18]
- lsls r0, r2, 24
- lsrs r0, 24
- str r0, [sp, 0x34]
- b _0803E2F4
- .align 2, 0
-_0803E2E4: .4byte gUnknown_02024A68
-_0803E2E8:
- ldr r0, _0803E310 @ =gUnknown_02024A60
- strb r1, [r0]
- movs r3, 0x4
- str r3, [sp, 0x34]
- ldr r4, [sp, 0x8]
- subs r4, 0xD
-_0803E2F4:
- lsls r0, r4, 16
- lsrs r0, 16
- cmp r0, 0xA5
- bhi _0803E36C
- ldr r1, _0803E314 @ =gItemEffectTable
- lsls r0, r4, 2
- adds r0, r1
- ldr r0, [r0]
- cmp r0, 0
- bne _0803E318
- ldr r4, [sp, 0x8]
- cmp r4, 0xAF
- beq _0803E31E
- b _0803E36C
- .align 2, 0
-_0803E310: .4byte gUnknown_02024A60
-_0803E314: .4byte gItemEffectTable
-_0803E318:
- ldr r5, [sp, 0x8]
- cmp r5, 0xAF
- bne _0803E372
-_0803E31E:
- ldr r0, _0803E340 @ =gMain
- ldr r1, _0803E344 @ =0x0000043d
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0803E350
- ldr r0, _0803E348 @ =gUnknown_02024A60
- ldrb r1, [r0]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- ldr r1, _0803E34C @ =gUnknown_02024DF8
- adds r0, r1
- b _0803E372
- .align 2, 0
-_0803E340: .4byte gMain
-_0803E344: .4byte 0x0000043d
-_0803E348: .4byte gUnknown_02024A60
-_0803E34C: .4byte gUnknown_02024DF8
-_0803E350:
- ldr r2, _0803E358 @ =gSaveBlock1 + 0x3676
- str r2, [sp, 0x20]
- b _0803E374
- .align 2, 0
-_0803E358: .4byte gSaveBlock1 + 0x3676
-_0803E35C:
- mov r0, r8
- movs r2, 0
- ldr r3, [sp, 0xC]
- bl BeginEvolutionScene
- movs r0, 0
- bl _0803F15C
-_0803E36C:
- movs r0, 0x1
- bl _0803F15C
-_0803E372:
- str r0, [sp, 0x20]
-_0803E374:
- movs r3, 0
- str r3, [sp, 0x18]
-_0803E378:
- ldr r4, [sp, 0x18]
- cmp r4, 0x5
- bls _0803E382
- bl _0803F14C
-_0803E382:
- lsls r0, r4, 2
- ldr r1, _0803E38C @ =_0803E390
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0803E38C: .4byte _0803E390
- .align 2, 0
-_0803E390:
- .4byte _0803E3A8
- .4byte _0803E474
- .4byte _0803E508
- .4byte _0803E59C
- .4byte _0803E77C
- .4byte _0803EE1E
-_0803E3A8:
- ldr r5, [sp, 0x20]
- ldr r0, [sp, 0x18]
- adds r2, r5, r0
- ldrb r1, [r2]
- movs r0, 0x80
- ands r0, r1
- adds r6, r2, 0
- cmp r0, 0
- beq _0803E3F0
- ldr r0, _0803E460 @ =gMain
- ldr r1, _0803E464 @ =0x0000043d
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0803E3F0
- ldr r2, [sp, 0x34]
- cmp r2, 0x4
- beq _0803E3F0
- ldr r1, _0803E468 @ =gBattleMons
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x50
- adds r2, r0, r1
- ldr r1, [r2]
- movs r0, 0xF0
- lsls r0, 12
- ands r0, r1
- cmp r0, 0
- beq _0803E3F0
- ldr r0, _0803E46C @ =0xfff0ffff
- ands r1, r0
- str r1, [r2]
- movs r3, 0
- str r3, [sp, 0x1C]
-_0803E3F0:
- ldrb r1, [r6]
- movs r0, 0x30
- ands r0, r1
- cmp r0, 0
- beq _0803E41E
- ldr r1, _0803E468 @ =gBattleMons
- ldr r0, _0803E470 @ =gUnknown_02024A60
- ldrb r2, [r0]
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x50
- adds r2, r0, r1
- ldr r1, [r2]
- movs r3, 0x80
- lsls r3, 13
- adds r0, r1, 0
- ands r0, r3
- cmp r0, 0
- bne _0803E41E
- orrs r1, r3
- str r1, [r2]
- movs r4, 0
- str r4, [sp, 0x1C]
-_0803E41E:
- ldrb r0, [r6]
- movs r3, 0xF
- ands r3, r0
- cmp r3, 0
- bne _0803E42C
- bl _0803F14C
-_0803E42C:
- ldr r6, _0803E468 @ =gBattleMons
- ldr r5, _0803E470 @ =gUnknown_02024A60
- ldrb r0, [r5]
- movs r4, 0x58
- muls r0, r4
- adds r1, r0, r6
- ldrb r2, [r1, 0x19]
- movs r0, 0x19
- ldrsb r0, [r1, r0]
- cmp r0, 0xB
- ble _0803E446
- bl _0803F14C
-_0803E446:
- adds r0, r2, r3
- strb r0, [r1, 0x19]
- ldrb r0, [r5]
- muls r0, r4
- adds r1, r0, r6
- movs r0, 0x19
- ldrsb r0, [r1, r0]
- cmp r0, 0xC
- bgt _0803E45A
- b _0803E74E
-_0803E45A:
- movs r0, 0xC
- strb r0, [r1, 0x19]
- b _0803E74E
- .align 2, 0
-_0803E460: .4byte gMain
-_0803E464: .4byte 0x0000043d
-_0803E468: .4byte gBattleMons
-_0803E46C: .4byte 0xfff0ffff
-_0803E470: .4byte gUnknown_02024A60
-_0803E474:
- ldr r0, [sp, 0x20]
- ldr r1, [sp, 0x18]
- adds r2, r0, r1
- ldrb r1, [r2]
- movs r0, 0xF0
- ands r0, r1
- lsls r3, r0, 24
- adds r6, r2, 0
- cmp r3, 0
- beq _0803E4BA
- ldr r7, _0803E500 @ =gBattleMons
- ldr r5, _0803E504 @ =gUnknown_02024A60
- ldrb r0, [r5]
- movs r4, 0x58
- muls r0, r4
- adds r1, r0, r7
- ldrb r2, [r1, 0x1A]
- movs r0, 0x1A
- ldrsb r0, [r1, r0]
- cmp r0, 0xB
- bgt _0803E4BA
- lsrs r0, r3, 28
- adds r0, r2, r0
- strb r0, [r1, 0x1A]
- ldrb r0, [r5]
- muls r0, r4
- adds r1, r0, r7
- movs r0, 0x1A
- ldrsb r0, [r1, r0]
- cmp r0, 0xC
- ble _0803E4B6
- movs r0, 0xC
- strb r0, [r1, 0x1A]
-_0803E4B6:
- movs r2, 0
- str r2, [sp, 0x1C]
-_0803E4BA:
- ldrb r0, [r6]
- movs r3, 0xF
- ands r3, r0
- cmp r3, 0
- bne _0803E4C8
- bl _0803F14C
-_0803E4C8:
- ldr r6, _0803E500 @ =gBattleMons
- ldr r5, _0803E504 @ =gUnknown_02024A60
- ldrb r0, [r5]
- movs r4, 0x58
- muls r0, r4
- adds r1, r0, r6
- ldrb r2, [r1, 0x1B]
- movs r0, 0x1B
- ldrsb r0, [r1, r0]
- cmp r0, 0xB
- ble _0803E4E2
- bl _0803F14C
-_0803E4E2:
- adds r0, r2, r3
- strb r0, [r1, 0x1B]
- ldrb r0, [r5]
- muls r0, r4
- adds r1, r0, r6
- movs r0, 0x1B
- ldrsb r0, [r1, r0]
- cmp r0, 0xC
- ble _0803E4F8
- movs r0, 0xC
- strb r0, [r1, 0x1B]
-_0803E4F8:
- movs r3, 0
- str r3, [sp, 0x1C]
- bl _0803F14C
- .align 2, 0
-_0803E500: .4byte gBattleMons
-_0803E504: .4byte gUnknown_02024A60
-_0803E508:
- ldr r4, [sp, 0x20]
- ldr r5, [sp, 0x18]
- adds r2, r4, r5
- ldrb r1, [r2]
- movs r0, 0xF0
- ands r0, r1
- lsls r3, r0, 24
- adds r6, r2, 0
- cmp r3, 0
- beq _0803E54E
- ldr r7, _0803E594 @ =gBattleMons
- ldr r5, _0803E598 @ =gUnknown_02024A60
- ldrb r0, [r5]
- movs r4, 0x58
- muls r0, r4
- adds r1, r0, r7
- ldrb r2, [r1, 0x1E]
- movs r0, 0x1E
- ldrsb r0, [r1, r0]
- cmp r0, 0xB
- bgt _0803E54E
- lsrs r0, r3, 28
- adds r0, r2, r0
- strb r0, [r1, 0x1E]
- ldrb r0, [r5]
- muls r0, r4
- adds r1, r0, r7
- movs r0, 0x1E
- ldrsb r0, [r1, r0]
- cmp r0, 0xC
- ble _0803E54A
- movs r0, 0xC
- strb r0, [r1, 0x1E]
-_0803E54A:
- movs r0, 0
- str r0, [sp, 0x1C]
-_0803E54E:
- ldrb r0, [r6]
- movs r3, 0xF
- ands r3, r0
- cmp r3, 0
- bne _0803E55C
- bl _0803F14C
-_0803E55C:
- ldr r6, _0803E594 @ =gBattleMons
- ldr r5, _0803E598 @ =gUnknown_02024A60
- ldrb r0, [r5]
- movs r4, 0x58
- muls r0, r4
- adds r1, r0, r6
- ldrb r2, [r1, 0x1C]
- movs r0, 0x1C
- ldrsb r0, [r1, r0]
- cmp r0, 0xB
- ble _0803E576
- bl _0803F14C
-_0803E576:
- adds r0, r2, r3
- strb r0, [r1, 0x1C]
- ldrb r0, [r5]
- muls r0, r4
- adds r1, r0, r6
- movs r0, 0x1C
- ldrsb r0, [r1, r0]
- cmp r0, 0xC
- ble _0803E58C
- movs r0, 0xC
- strb r0, [r1, 0x1C]
-_0803E58C:
- movs r1, 0
- str r1, [sp, 0x1C]
- bl _0803F14C
- .align 2, 0
-_0803E594: .4byte gBattleMons
-_0803E598: .4byte gUnknown_02024A60
-_0803E59C:
- ldr r3, [sp, 0x20]
- ldr r4, [sp, 0x18]
- adds r2, r3, r4
- ldrb r1, [r2]
- movs r0, 0x80
- ands r0, r1
- adds r6, r2, 0
- cmp r0, 0
- beq _0803E5E4
- ldr r5, _0803E758 @ =gUnknown_02024C80
- ldr r4, _0803E75C @ =gUnknown_02024A60
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- ldrb r0, [r1, 0x2]
- cmp r0, 0
- bne _0803E5E4
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- movs r0, 0x5
- strb r0, [r1, 0x2]
- movs r5, 0
- str r5, [sp, 0x1C]
-_0803E5E4:
- ldrb r1, [r6]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0803E646
- mov r0, r8
- movs r1, 0x38
- movs r2, 0
- bl GetMonData
- cmp r0, 0x64
- beq _0803E646
- ldr r5, _0803E760 @ =gExperienceTables
- mov r0, r8
- movs r1, 0x38
- movs r2, 0
- bl GetMonData
- adds r4, r0, 0
- mov r0, r8
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- adds r4, 0x1
- lsls r4, 2
- ldr r2, _0803E764 @ =gBaseStats
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r1, [r1, 0x13]
- movs r0, 0xCA
- lsls r0, 1
- muls r0, r1
- adds r4, r0
- adds r4, r5
- ldr r0, [r4]
- str r0, [sp]
- mov r0, r8
- movs r1, 0x19
- mov r2, sp
- bl SetMonData
- mov r0, r8
- bl CalculateMonStats
- movs r0, 0
- str r0, [sp, 0x1C]
-_0803E646:
- ldrb r1, [r6]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0803E682
- mov r0, r8
- ldr r1, [sp, 0xC]
- movs r2, 0x7
- ldr r3, [sp, 0x34]
- bl HealStatusConditions
- lsls r0, 24
- cmp r0, 0
- bne _0803E682
- ldr r1, [sp, 0x34]
- cmp r1, 0x4
- beq _0803E67E
- ldr r1, _0803E768 @ =gBattleMons
- movs r0, 0x58
- ldr r3, [sp, 0x34]
- adds r2, r3, 0
- muls r2, r0
- adds r1, 0x50
- adds r2, r1
- ldr r0, [r2]
- ldr r1, _0803E76C @ =0xf7ffffff
- ands r0, r1
- str r0, [r2]
-_0803E67E:
- movs r4, 0
- str r4, [sp, 0x1C]
-_0803E682:
- ldrb r1, [r6]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0803E6A2
- ldr r2, _0803E770 @ =0x00000f88
- mov r0, r8
- ldr r1, [sp, 0xC]
- ldr r3, [sp, 0x34]
- bl HealStatusConditions
- lsls r0, 24
- cmp r0, 0
- bne _0803E6A2
- movs r5, 0
- str r5, [sp, 0x1C]
-_0803E6A2:
- ldrb r1, [r6]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _0803E6C2
- mov r0, r8
- ldr r1, [sp, 0xC]
- movs r2, 0x10
- ldr r3, [sp, 0x34]
- bl HealStatusConditions
- lsls r0, 24
- cmp r0, 0
- bne _0803E6C2
- movs r0, 0
- str r0, [sp, 0x1C]
-_0803E6C2:
- ldrb r1, [r6]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0803E6E2
- mov r0, r8
- ldr r1, [sp, 0xC]
- movs r2, 0x20
- ldr r3, [sp, 0x34]
- bl HealStatusConditions
- lsls r0, 24
- cmp r0, 0
- bne _0803E6E2
- movs r1, 0
- str r1, [sp, 0x1C]
-_0803E6E2:
- ldrb r1, [r6]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0803E702
- mov r0, r8
- ldr r1, [sp, 0xC]
- movs r2, 0x40
- ldr r3, [sp, 0x34]
- bl HealStatusConditions
- lsls r0, 24
- cmp r0, 0
- bne _0803E702
- movs r2, 0
- str r2, [sp, 0x1C]
-_0803E702:
- ldrb r1, [r6]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0803E710
- bl _0803F14C
-_0803E710:
- ldr r0, _0803E774 @ =gMain
- ldr r3, _0803E778 @ =0x0000043d
- adds r0, r3
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _0803E724
- bl _0803F14C
-_0803E724:
- ldr r4, [sp, 0x34]
- cmp r4, 0x4
- bne _0803E72E
- bl _0803F14C
-_0803E72E:
- ldr r1, _0803E768 @ =gBattleMons
- movs r0, 0x58
- muls r0, r4
- adds r1, 0x50
- adds r2, r0, r1
- ldr r1, [r2]
- movs r0, 0x7
- ands r0, r1
- cmp r0, 0
- bne _0803E746
- bl _0803F14C
-_0803E746:
- movs r0, 0x8
- negs r0, r0
- ands r1, r0
- str r1, [r2]
-_0803E74E:
- movs r5, 0
- str r5, [sp, 0x1C]
- bl _0803F14C
- .align 2, 0
-_0803E758: .4byte gUnknown_02024C80
-_0803E75C: .4byte gUnknown_02024A60
-_0803E760: .4byte gExperienceTables
-_0803E764: .4byte gBaseStats
-_0803E768: .4byte gBattleMons
-_0803E76C: .4byte 0xf7ffffff
-_0803E770: .4byte 0x00000f88
-_0803E774: .4byte gMain
-_0803E778: .4byte 0x0000043d
-_0803E77C:
- ldr r1, [sp, 0x20]
- ldr r2, [sp, 0x18]
- adds r0, r1, r2
- ldrb r0, [r0]
- mov r10, r0
- movs r0, 0x20
- mov r3, r10
- ands r0, r3
- cmp r0, 0
- beq _0803E854
- movs r0, 0xDF
- ands r3, r0
- mov r10, r3
- mov r0, r8
- movs r1, 0x15
- movs r2, 0
- bl GetMonData
- ldr r1, _0803E880 @ =gUnknown_08208238
- ldr r4, [sp, 0x10]
- adds r1, r4, r1
- ldrb r1, [r1]
- ands r0, r1
- lsls r1, r4, 1
- lsrs r0, r1
- str r0, [sp]
- adds r5, r4, 0
- adds r5, 0xD
- mov r0, r8
- adds r1, r5, 0
- movs r2, 0
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- mov r0, r8
- movs r1, 0x15
- movs r2, 0
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- ldr r2, [sp, 0x10]
- bl CalculatePPWithBonus
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x28]
- ldr r0, [sp]
- cmp r0, 0x2
- bhi _0803E854
- ldr r0, [sp, 0x28]
- cmp r0, 0x4
- bls _0803E854
- mov r0, r8
- movs r1, 0x15
- movs r2, 0
- bl GetMonData
- ldr r1, _0803E884 @ =gUnknown_08208240
- ldr r2, [sp, 0x10]
- adds r1, r2, r1
- ldrb r1, [r1]
- adds r0, r1
- str r0, [sp]
- mov r0, r8
- movs r1, 0x15
- mov r2, sp
- bl SetMonData
- mov r0, r8
- adds r1, r5, 0
- movs r2, 0
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- ldr r1, [sp]
- lsls r1, 24
- lsrs r1, 24
- ldr r2, [sp, 0x10]
- bl CalculatePPWithBonus
- lsls r0, 24
- lsrs r0, 24
- ldr r3, [sp, 0x28]
- subs r0, r3
- str r0, [sp]
- ldr r4, [sp, 0x10]
- adds r4, 0x11
- mov r0, r8
- adds r1, r4, 0
- movs r2, 0
- bl GetMonData
- ldr r1, [sp]
- adds r0, r1
- str r0, [sp]
- mov r0, r8
- adds r1, r4, 0
- mov r2, sp
- bl SetMonData
- movs r4, 0
- str r4, [sp, 0x1C]
-_0803E854:
- movs r5, 0
- str r5, [sp, 0x28]
- mov r0, r10
- cmp r0, 0
- bne _0803E862
- bl _0803F14C
-_0803E862:
- movs r0, 0x1
- mov r1, r10
- ands r0, r1
- cmp r0, 0
- bne _0803E86E
- b _0803EE0A
-_0803E86E:
- ldr r2, [sp, 0x28]
- cmp r2, 0x7
- bls _0803E876
- b _0803EE0A
-_0803E876:
- lsls r0, r2, 2
- ldr r1, _0803E888 @ =_0803E88C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0803E880: .4byte gUnknown_08208238
-_0803E884: .4byte gUnknown_08208240
-_0803E888: .4byte _0803E88C
- .align 2, 0
-_0803E88C:
- .4byte _0803E8AC
- .4byte _0803E8AC
- .4byte _0803E934
- .4byte _0803EB5C
- .4byte _0803EE0A
- .4byte _0803EE0A
- .4byte _0803EE0A
- .4byte _0803EDF4
-_0803E8AC:
- mov r0, r8
- bl GetMonEVCount
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r0, _0803E8EC @ =0x000001fd
- cmp r5, r0
- bls _0803E8BE
- b _0803E36C
-_0803E8BE:
- ldr r0, _0803E8F0 @ =gUnknown_082082F2
- ldr r3, [sp, 0x28]
- adds r0, r3, r0
- ldrb r1, [r0]
- mov r0, r8
- movs r2, 0
- bl GetMonData
- adds r1, r0, 0
- str r1, [sp]
- cmp r1, 0x63
- bls _0803E8D8
- b _0803EE0A
-_0803E8D8:
- ldr r4, [sp, 0x20]
- ldr r2, [sp, 0x24]
- adds r0, r4, r2
- ldrb r0, [r0]
- adds r1, r0
- cmp r1, 0x64
- bls _0803E8F4
- adds r0, 0x64
- subs r4, r0, r1
- b _0803E8F6
- .align 2, 0
-_0803E8EC: .4byte 0x000001fd
-_0803E8F0: .4byte gUnknown_082082F2
-_0803E8F4:
- adds r4, r0, 0
-_0803E8F6:
- adds r1, r5, r4
- movs r0, 0xFF
- lsls r0, 1
- cmp r1, r0
- bls _0803E904
- adds r0, r4, r0
- subs r4, r0, r1
-_0803E904:
- ldr r0, [sp]
- adds r0, r4
- str r0, [sp]
- ldr r0, _0803E930 @ =gUnknown_082082F2
- ldr r3, [sp, 0x28]
- adds r0, r3, r0
- ldrb r1, [r0]
- mov r0, r8
- mov r2, sp
- bl SetMonData
- mov r0, r8
- bl CalculateMonStats
- ldr r0, [sp, 0x24]
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x24]
- movs r4, 0
- str r4, [sp, 0x1C]
- b _0803EE0A
- .align 2, 0
-_0803E930: .4byte gUnknown_082082F2
-_0803E934:
- movs r0, 0x10
- mov r5, r10
- ands r0, r5
- cmp r0, 0
- beq _0803E9F4
- mov r0, r8
- movs r1, 0x39
- movs r2, 0
- bl GetMonData
- cmp r0, 0
- beq _0803E954
- ldr r0, [sp, 0x24]
- adds r0, 0x1
- lsls r0, 24
- b _0803EC9E
-_0803E954:
- ldr r0, _0803E99C @ =gMain
- ldr r1, _0803E9A0 @ =0x0000043d
- adds r0, r1
- ldrb r1, [r0]
- movs r4, 0x2
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0803EA0A
- ldr r2, [sp, 0x34]
- cmp r2, 0x4
- beq _0803E9B4
- ldr r2, _0803E9A4 @ =gUnknown_02024C0C
- ldr r1, _0803E9A8 @ =gBitTable
- ldr r3, [sp, 0x34]
- lsls r0, r3, 2
- adds r0, r1
- ldr r1, [r0]
- ldrb r0, [r2]
- bics r0, r1
- strb r0, [r2]
- ldr r1, _0803E9AC @ =gUnknown_02024A6A
- lsls r0, r3, 1
- adds r0, r1
- ldrb r0, [r0]
- bl pokemon_order_func
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r0, [sp, 0x34]
- bl CopyPlayerPartyMonToBattleData
- ldr r0, _0803E9B0 @ =gUnknown_02024A60
- ldrb r0, [r0]
- b _0803E9CC
- .align 2, 0
-_0803E99C: .4byte gMain
-_0803E9A0: .4byte 0x0000043d
-_0803E9A4: .4byte gUnknown_02024C0C
-_0803E9A8: .4byte gBitTable
-_0803E9AC: .4byte gUnknown_02024A6A
-_0803E9B0: .4byte gUnknown_02024A60
-_0803E9B4:
- ldr r3, _0803E9E4 @ =gUnknown_02024C0C
- ldr r1, _0803E9E8 @ =gBitTable
- ldr r2, _0803E9EC @ =gUnknown_02024A60
- ldrb r0, [r2]
- eors r0, r4
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- ldrb r0, [r3]
- bics r0, r1
- strb r0, [r3]
- ldrb r0, [r2]
-_0803E9CC:
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _0803EA0A
- ldr r1, _0803E9F0 @ =gUnknown_030042E0
- ldrb r0, [r1, 0x4]
- cmp r0, 0xFE
- bhi _0803EA0A
- adds r0, 0x1
- strb r0, [r1, 0x4]
- b _0803EA0A
- .align 2, 0
-_0803E9E4: .4byte gUnknown_02024C0C
-_0803E9E8: .4byte gBitTable
-_0803E9EC: .4byte gUnknown_02024A60
-_0803E9F0: .4byte gUnknown_030042E0
-_0803E9F4:
- mov r0, r8
- movs r1, 0x39
- movs r2, 0
- bl GetMonData
- cmp r0, 0
- bne _0803EA0A
- ldr r0, [sp, 0x24]
- adds r0, 0x1
- lsls r0, 24
- b _0803EC9E
-_0803EA0A:
- ldr r1, [sp, 0x24]
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x24]
- ldr r4, [sp, 0x20]
- adds r1, r4, r1
- ldrb r1, [r1]
- str r1, [sp]
- adds r0, r1, 0
- cmp r0, 0xFE
- beq _0803EA4C
- cmp r0, 0xFE
- bhi _0803EA2C
- cmp r0, 0xFD
- beq _0803EA62
- b _0803EA6C
-_0803EA2C:
- cmp r1, 0xFF
- bne _0803EA6C
- mov r0, r8
- movs r1, 0x3A
- movs r2, 0
- bl GetMonData
- adds r4, r0, 0
- mov r0, r8
- movs r1, 0x39
- movs r2, 0
- bl GetMonData
- subs r4, r0
- str r4, [sp]
- b _0803EA6C
-_0803EA4C:
- mov r0, r8
- movs r1, 0x3A
- movs r2, 0
- bl GetMonData
- lsrs r0, 1
- str r0, [sp]
- cmp r0, 0
- bne _0803EA6C
- movs r0, 0x1
- b _0803EA6A
-_0803EA62:
- ldr r0, _0803EB24 @ =0x02000000
- ldr r5, _0803EB28 @ =0x000160fa
- adds r0, r5
- ldrb r0, [r0]
-_0803EA6A:
- str r0, [sp]
-_0803EA6C:
- mov r0, r8
- movs r1, 0x3A
- movs r2, 0
- bl GetMonData
- adds r4, r0, 0
- mov r0, r8
- movs r1, 0x39
- movs r2, 0
- bl GetMonData
- cmp r4, r0
- beq _0803EB4C
- ldr r0, [sp, 0x14]
- cmp r0, 0
- bne _0803EB40
- mov r0, r8
- movs r1, 0x39
- movs r2, 0
- bl GetMonData
- ldr r1, [sp]
- adds r0, r1
- str r0, [sp]
- mov r0, r8
- movs r1, 0x3A
- movs r2, 0
- bl GetMonData
- ldr r1, [sp]
- cmp r1, r0
- bls _0803EAB8
- mov r0, r8
- movs r1, 0x3A
- movs r2, 0
- bl GetMonData
- str r0, [sp]
-_0803EAB8:
- mov r0, r8
- movs r1, 0x39
- mov r2, sp
- bl SetMonData
- ldr r0, _0803EB2C @ =gMain
- ldr r1, _0803EB30 @ =0x0000043d
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0803EB48
- ldr r2, [sp, 0x34]
- cmp r2, 0x4
- beq _0803EB48
- ldr r1, _0803EB34 @ =gBattleMons
- movs r0, 0x58
- muls r0, r2
- adds r0, r1
- ldr r1, [sp]
- strh r1, [r0, 0x28]
- movs r0, 0x10
- mov r3, r10
- ands r0, r3
- cmp r0, 0
- bne _0803EB48
- ldr r4, _0803EB38 @ =gUnknown_02024A60
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _0803EB48
- ldr r1, _0803EB3C @ =gUnknown_030042E0
- ldrb r0, [r1, 0x3]
- cmp r0, 0xFE
- bhi _0803EB08
- adds r0, 0x1
- strb r0, [r1, 0x3]
-_0803EB08:
- ldrb r5, [r4]
- add r0, sp, 0x34
- ldrb r0, [r0]
- strb r0, [r4]
- movs r0, 0
- movs r1, 0
- movs r2, 0
- bl dp01_build_cmdbuf_x00_a_b_0
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- strb r5, [r4]
- b _0803EB48
- .align 2, 0
-_0803EB24: .4byte 0x02000000
-_0803EB28: .4byte 0x000160fa
-_0803EB2C: .4byte gMain
-_0803EB30: .4byte 0x0000043d
-_0803EB34: .4byte gBattleMons
-_0803EB38: .4byte gUnknown_02024A60
-_0803EB3C: .4byte gUnknown_030042E0
-_0803EB40:
- ldr r1, _0803EB58 @ =gUnknown_02024BEC
- ldr r0, [sp]
- negs r0, r0
- str r0, [r1]
-_0803EB48:
- movs r1, 0
- str r1, [sp, 0x1C]
-_0803EB4C:
- movs r0, 0xEF
- mov r2, r10
- ands r2, r0
- mov r10, r2
- b _0803EE0A
- .align 2, 0
-_0803EB58: .4byte gUnknown_02024BEC
-_0803EB5C:
- movs r7, 0x2
- mov r0, r10
- ands r0, r7
- cmp r0, 0
- beq _0803EB68
- b _0803ECB8
-_0803EB68:
- movs r5, 0
- ldr r3, [sp, 0x24]
- adds r3, 0x1
- str r3, [sp, 0x38]
-_0803EB70:
- movs r4, 0x11
- adds r4, r5
- mov r9, r4
- mov r0, r8
- mov r1, r9
- movs r2, 0
- bl GetMonData
- str r0, [sp]
- adds r7, r5, 0
- adds r7, 0xD
- mov r0, r8
- adds r1, r7, 0
- movs r2, 0
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- mov r0, r8
- movs r1, 0x15
- movs r2, 0
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- lsls r0, r5, 24
- lsrs r6, r0, 24
- adds r0, r4, 0
- adds r2, r6, 0
- bl CalculatePPWithBonus
- lsls r0, 24
- lsrs r0, 24
- ldr r1, [sp]
- cmp r1, r0
- beq _0803EC92
- ldr r2, [sp, 0x20]
- ldr r3, [sp, 0x24]
- adds r0, r2, r3
- ldrb r0, [r0]
- adds r0, r1, r0
- str r0, [sp]
- mov r0, r8
- adds r1, r7, 0
- movs r2, 0
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- mov r0, r8
- movs r1, 0x15
- movs r2, 0
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- adds r2, r6, 0
- bl CalculatePPWithBonus
- lsls r0, 24
- lsrs r0, 24
- ldr r1, [sp]
- cmp r1, r0
- bls _0803EC28
- mov r0, r8
- adds r1, r7, 0
- movs r2, 0
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- mov r0, r8
- movs r1, 0x15
- movs r2, 0
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- adds r2, r6, 0
- bl CalculatePPWithBonus
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
-_0803EC28:
- mov r0, r8
- mov r1, r9
- mov r2, sp
- bl SetMonData
- ldr r0, _0803ECA4 @ =gMain
- ldr r4, _0803ECA8 @ =0x0000043d
- adds r0, r4
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0803EC8E
- ldr r0, [sp, 0x34]
- cmp r0, 0x4
- beq _0803EC8E
- ldr r4, _0803ECAC @ =gBattleMons
- movs r0, 0x58
- ldr r1, [sp, 0x34]
- adds r3, r1, 0
- muls r3, r0
- adds r0, r4, 0
- adds r0, 0x50
- adds r0, r3, r0
- ldr r1, [r0]
- movs r0, 0x80
- lsls r0, 14
- ands r1, r0
- cmp r1, 0
- bne _0803EC8E
- ldr r1, _0803ECB0 @ =gUnknown_02024CA8
- ldr r2, [sp, 0x34]
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x18]
- lsrs r1, 4
- ldr r2, _0803ECB4 @ =gBitTable
- lsls r0, r5, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _0803EC8E
- adds r0, r5, r3
- adds r1, r4, 0
- adds r1, 0x24
- adds r0, r1
- ldr r1, [sp]
- strb r1, [r0]
-_0803EC8E:
- movs r3, 0
- str r3, [sp, 0x1C]
-_0803EC92:
- adds r5, 0x1
- cmp r5, 0x3
- bgt _0803EC9A
- b _0803EB70
-_0803EC9A:
- ldr r4, [sp, 0x38]
- lsls r0, r4, 24
-_0803EC9E:
- lsrs r0, 24
- str r0, [sp, 0x24]
- b _0803EE0A
- .align 2, 0
-_0803ECA4: .4byte gMain
-_0803ECA8: .4byte 0x0000043d
-_0803ECAC: .4byte gBattleMons
-_0803ECB0: .4byte gUnknown_02024CA8
-_0803ECB4: .4byte gBitTable
-_0803ECB8:
- ldr r6, [sp, 0x10]
- adds r6, 0x11
- mov r0, r8
- adds r1, r6, 0
- movs r2, 0
- bl GetMonData
- str r0, [sp]
- ldr r5, [sp, 0x10]
- adds r5, 0xD
- mov r0, r8
- adds r1, r5, 0
- movs r2, 0
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- mov r0, r8
- movs r1, 0x15
- movs r2, 0
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- ldr r2, [sp, 0x10]
- bl CalculatePPWithBonus
- lsls r0, 24
- lsrs r0, 24
- ldr r2, [sp]
- cmp r2, r0
- bne _0803ED00
- b _0803EE0A
-_0803ED00:
- ldr r1, [sp, 0x24]
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x24]
- ldr r0, [sp, 0x20]
- adds r1, r0, r1
- ldrb r0, [r1]
- adds r0, r2, r0
- str r0, [sp]
- mov r0, r8
- adds r1, r5, 0
- movs r2, 0
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- mov r0, r8
- movs r1, 0x15
- movs r2, 0
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- ldr r2, [sp, 0x10]
- bl CalculatePPWithBonus
- lsls r0, 24
- lsrs r0, 24
- ldr r1, [sp]
- cmp r1, r0
- bls _0803ED74
- mov r0, r8
- adds r1, r5, 0
- movs r2, 0
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- mov r0, r8
- movs r1, 0x15
- movs r2, 0
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- ldr r2, [sp, 0x10]
- bl CalculatePPWithBonus
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
-_0803ED74:
- mov r0, r8
- adds r1, r6, 0
- mov r2, sp
- bl SetMonData
- ldr r0, _0803EDE0 @ =gMain
- ldr r1, _0803EDE4 @ =0x0000043d
- adds r0, r1
- ldrb r1, [r0]
- adds r0, r7, 0
- ands r0, r1
- cmp r0, 0
- beq _0803EDD8
- ldr r2, [sp, 0x34]
- cmp r2, 0x4
- beq _0803EDD8
- ldr r4, _0803EDE8 @ =gBattleMons
- movs r0, 0x58
- adds r3, r2, 0
- muls r3, r0
- adds r0, r4, 0
- adds r0, 0x50
- adds r0, r3, r0
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 14
- ands r0, r1
- cmp r0, 0
- bne _0803EDD8
- ldr r1, _0803EDEC @ =gUnknown_02024CA8
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x18]
- lsrs r1, 4
- ldr r2, _0803EDF0 @ =gBitTable
- ldr r5, [sp, 0x10]
- lsls r0, r5, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _0803EDD8
- adds r0, r5, r3
- adds r1, r4, 0
- adds r1, 0x24
- adds r0, r1
- ldr r1, [sp]
- strb r1, [r0]
-_0803EDD8:
- movs r0, 0
- str r0, [sp, 0x1C]
- b _0803EE0A
- .align 2, 0
-_0803EDE0: .4byte gMain
-_0803EDE4: .4byte 0x0000043d
-_0803EDE8: .4byte gBattleMons
-_0803EDEC: .4byte gUnknown_02024CA8
-_0803EDF0: .4byte gBitTable
-_0803EDF4:
- mov r0, r8
- movs r1, 0x2
- ldr r2, [sp, 0x8]
- bl GetEvolutionTargetSpecies
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- beq _0803EE0A
- bl _0803E35C
-_0803EE0A:
- ldr r1, [sp, 0x28]
- adds r1, 0x1
- str r1, [sp, 0x28]
- mov r2, r10
- lsrs r2, 1
- mov r10, r2
- cmp r2, 0
- beq _0803EE1C
- b _0803E862
-_0803EE1C:
- b _0803F14C
-_0803EE1E:
- ldr r3, [sp, 0x20]
- ldr r4, [sp, 0x18]
- adds r0, r3, r4
- ldrb r0, [r0]
- mov r10, r0
- movs r5, 0
- str r5, [sp, 0x28]
- cmp r0, 0
- bne _0803EE32
- b _0803F14C
-_0803EE32:
- movs r0, 0x1
- mov r1, r10
- ands r0, r1
- cmp r0, 0
- bne _0803EE3E
- b _0803F13A
-_0803EE3E:
- ldr r2, [sp, 0x28]
- cmp r2, 0x7
- bls _0803EE46
- b _0803F13A
-_0803EE46:
- lsls r0, r2, 2
- ldr r1, _0803EE50 @ =_0803EE54
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0803EE50: .4byte _0803EE54
- .align 2, 0
-_0803EE54:
- .4byte _0803EE74
- .4byte _0803EE74
- .4byte _0803EE74
- .4byte _0803EE74
- .4byte _0803EEF8
- .4byte _0803EFCC
- .4byte _0803F026
- .4byte _0803F07C
-_0803EE74:
- mov r0, r8
- bl GetMonEVCount
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r0, _0803EEBC @ =0x000001fd
- cmp r5, r0
- bls _0803EE88
- bl _0803E36C
-_0803EE88:
- ldr r0, _0803EEC0 @ =gUnknown_082082F2
- ldr r4, [sp, 0x28]
- adds r4, 0x2
- adds r0, r4, r0
- ldrb r1, [r0]
- mov r0, r8
- movs r2, 0
- bl GetMonData
- adds r1, r0, 0
- str r1, [sp]
- adds r2, r4, 0
- cmp r1, 0x63
- bls _0803EEA6
- b _0803F13A
-_0803EEA6:
- ldr r3, [sp, 0x20]
- ldr r4, [sp, 0x24]
- adds r0, r3, r4
- ldrb r0, [r0]
- adds r1, r0
- cmp r1, 0x64
- bls _0803EEC4
- adds r0, 0x64
- subs r4, r0, r1
- b _0803EEC6
- .align 2, 0
-_0803EEBC: .4byte 0x000001fd
-_0803EEC0: .4byte gUnknown_082082F2
-_0803EEC4:
- adds r4, r0, 0
-_0803EEC6:
- adds r1, r5, r4
- movs r0, 0xFF
- lsls r0, 1
- cmp r1, r0
- bls _0803EED4
- adds r0, r4, r0
- subs r4, r0, r1
-_0803EED4:
- ldr r0, [sp]
- adds r0, r4
- str r0, [sp]
- ldr r0, _0803EEF4 @ =gUnknown_082082F2
- adds r0, r2, r0
- ldrb r1, [r0]
- mov r0, r8
- mov r2, sp
- bl SetMonData
- mov r0, r8
- bl CalculateMonStats
- movs r5, 0
- str r5, [sp, 0x1C]
- b _0803F130
- .align 2, 0
-_0803EEF4: .4byte gUnknown_082082F2
-_0803EEF8:
- mov r0, r8
- movs r1, 0x15
- movs r2, 0
- bl GetMonData
- ldr r1, _0803EFC0 @ =gUnknown_08208238
- ldr r2, [sp, 0x10]
- adds r1, r2, r1
- ldrb r1, [r1]
- ands r0, r1
- lsls r1, r2, 1
- lsrs r0, r1
- str r0, [sp]
- cmp r0, 0x2
- bls _0803EF18
- b _0803F13A
-_0803EF18:
- adds r5, r2, 0
- adds r5, 0xD
- mov r0, r8
- adds r1, r5, 0
- movs r2, 0
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- mov r0, r8
- movs r1, 0x15
- movs r2, 0
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- ldr r2, [sp, 0x10]
- bl CalculatePPWithBonus
- lsls r0, 24
- lsrs r4, r0, 24
- mov r0, r8
- movs r1, 0x15
- movs r2, 0
- bl GetMonData
- str r0, [sp]
- ldr r1, _0803EFC4 @ =gUnknown_0820823C
- ldr r3, [sp, 0x10]
- adds r1, r3, r1
- ldrb r2, [r1]
- ands r2, r0
- str r2, [sp]
- ldr r0, _0803EFC8 @ =gUnknown_08208240
- adds r0, r3, r0
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- adds r2, r0
- str r2, [sp]
- mov r0, r8
- movs r1, 0x15
- mov r2, sp
- bl SetMonData
- mov r0, r8
- adds r1, r5, 0
- movs r2, 0
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- ldr r1, [sp]
- lsls r1, 24
- lsrs r1, 24
- ldr r2, [sp, 0x10]
- bl CalculatePPWithBonus
- lsls r0, 24
- lsrs r0, 24
- subs r0, r4
- str r0, [sp]
- ldr r4, [sp, 0x10]
- adds r4, 0x11
- mov r0, r8
- adds r1, r4, 0
- movs r2, 0
- bl GetMonData
- ldr r1, [sp]
- adds r0, r1
- str r0, [sp]
- mov r0, r8
- adds r1, r4, 0
- mov r2, sp
- bl SetMonData
- movs r4, 0
- str r4, [sp, 0x1C]
- b _0803F13A
- .align 2, 0
-_0803EFC0: .4byte gUnknown_08208238
-_0803EFC4: .4byte gUnknown_0820823C
-_0803EFC8: .4byte gUnknown_08208240
-_0803EFCC:
- mov r0, r8
- movs r1, 0x20
- movs r2, 0
- bl GetMonData
- cmp r0, 0x63
- bls _0803EFDC
- b _0803F130
-_0803EFDC:
- ldr r5, [sp, 0x1C]
- cmp r5, 0
- beq _0803EFE4
- b _0803F130
-_0803EFE4:
- ldr r0, [sp, 0x2C]
- cmp r0, 0
- beq _0803EFEC
- b _0803F130
-_0803EFEC:
- ldr r1, [sp, 0x20]
- ldr r2, [sp, 0x24]
- adds r0, r1, r2
- ldrb r0, [r0]
- str r0, [sp, 0x2C]
- mov r0, r8
- movs r1, 0x20
- movs r2, 0
- bl GetMonData
- adds r5, r0, 0
- str r5, [sp, 0x4]
- ldr r3, [sp, 0x2C]
- lsls r4, r3, 24
- asrs r1, r4, 24
- cmp r1, 0
- ble _0803F0D0
- ldr r0, [sp, 0x30]
- cmp r0, 0x1B
- bne _0803F0D0
- movs r0, 0x96
- muls r0, r1
- movs r1, 0x64
- bl __divsi3
- adds r0, r5, r0
- str r0, [sp, 0x4]
- adds r2, r4, 0
- b _0803F0DC
-_0803F026:
- mov r0, r8
- movs r1, 0x20
- movs r2, 0
- bl GetMonData
- cmp r0, 0x63
- bls _0803F130
- mov r0, r8
- movs r1, 0x20
- movs r2, 0
- bl GetMonData
- cmp r0, 0xC7
- bhi _0803F130
- ldr r2, [sp, 0x1C]
- cmp r2, 0
- bne _0803F130
- ldr r3, [sp, 0x2C]
- cmp r3, 0
- bne _0803F130
- ldr r4, [sp, 0x20]
- ldr r5, [sp, 0x24]
- adds r0, r4, r5
- ldrb r0, [r0]
- str r0, [sp, 0x2C]
- mov r0, r8
- movs r1, 0x20
- movs r2, 0
- bl GetMonData
- adds r4, r0, 0
- str r4, [sp, 0x4]
- ldr r0, [sp, 0x2C]
- lsls r5, r0, 24
- asrs r1, r5, 24
- cmp r1, 0
- ble _0803F076
- ldr r2, [sp, 0x30]
- cmp r2, 0x1B
- beq _0803F0BE
-_0803F076:
- ldr r3, [sp, 0x2C]
- lsls r2, r3, 24
- b _0803F0D4
-_0803F07C:
- mov r0, r8
- movs r1, 0x20
- movs r2, 0
- bl GetMonData
- cmp r0, 0xC7
- bls _0803F130
- ldr r4, [sp, 0x1C]
- cmp r4, 0
- bne _0803F130
- ldr r5, [sp, 0x2C]
- cmp r5, 0
- bne _0803F130
- ldr r1, [sp, 0x20]
- ldr r2, [sp, 0x24]
- adds r0, r1, r2
- ldrb r0, [r0]
- str r0, [sp, 0x2C]
- mov r0, r8
- movs r1, 0x20
- movs r2, 0
- bl GetMonData
- adds r4, r0, 0
- str r4, [sp, 0x4]
- ldr r3, [sp, 0x2C]
- lsls r5, r3, 24
- asrs r1, r5, 24
- cmp r1, 0
- ble _0803F0D0
- ldr r0, [sp, 0x30]
- cmp r0, 0x1B
- bne _0803F0D0
-_0803F0BE:
- movs r0, 0x96
- muls r0, r1
- movs r1, 0x64
- bl __divsi3
- adds r0, r4, r0
- str r0, [sp, 0x4]
- adds r2, r5, 0
- b _0803F0DC
-_0803F0D0:
- ldr r1, [sp, 0x2C]
- lsls r2, r1, 24
-_0803F0D4:
- asrs r1, r2, 24
- ldr r0, [sp, 0x4]
- adds r0, r1
- str r0, [sp, 0x4]
-_0803F0DC:
- cmp r2, 0
- ble _0803F112
- mov r0, r8
- movs r1, 0x26
- movs r2, 0
- bl GetMonData
- cmp r0, 0xB
- bne _0803F0F4
- ldr r0, [sp, 0x4]
- adds r0, 0x1
- str r0, [sp, 0x4]
-_0803F0F4:
- mov r0, r8
- movs r1, 0x23
- movs r2, 0
- bl GetMonData
- adds r4, r0, 0
- bl sav1_map_get_name
- lsls r0, 24
- lsrs r0, 24
- cmp r4, r0
- bne _0803F112
- ldr r0, [sp, 0x4]
- adds r0, 0x1
- str r0, [sp, 0x4]
-_0803F112:
- ldr r0, [sp, 0x4]
- cmp r0, 0
- bge _0803F11C
- movs r0, 0
- str r0, [sp, 0x4]
-_0803F11C:
- ldr r0, [sp, 0x4]
- cmp r0, 0xFF
- ble _0803F126
- movs r0, 0xFF
- str r0, [sp, 0x4]
-_0803F126:
- add r2, sp, 0x4
- mov r0, r8
- movs r1, 0x20
- bl SetMonData
-_0803F130:
- ldr r0, [sp, 0x24]
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x24]
-_0803F13A:
- ldr r2, [sp, 0x28]
- adds r2, 0x1
- str r2, [sp, 0x28]
- mov r3, r10
- lsrs r3, 1
- mov r10, r3
- cmp r3, 0
- beq _0803F14C
- b _0803EE32
-_0803F14C:
- ldr r4, [sp, 0x18]
- adds r4, 0x1
- str r4, [sp, 0x18]
- cmp r4, 0x5
- bgt _0803F15A
- bl _0803E378
-_0803F15A:
- ldr r0, [sp, 0x1C]
-_0803F15C:
- add sp, 0x3C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_803E1B0
-
- thumb_func_start HealStatusConditions
-HealStatusConditions: @ 803F16C
- push {r4-r6,lr}
- sub sp, 0x4
- adds r5, r0, 0
- adds r4, r2, 0
- lsls r3, 24
- lsrs r6, r3, 24
- movs r1, 0x37
- movs r2, 0
- bl GetMonData
- adds r1, r0, 0
- str r1, [sp]
- ands r0, r4
- cmp r0, 0
- beq _0803F1D0
- mvns r4, r4
- ands r1, r4
- str r1, [sp]
- adds r0, r5, 0
- movs r1, 0x37
- mov r2, sp
- bl SetMonData
- ldr r0, _0803F1C4 @ =gMain
- ldr r1, _0803F1C8 @ =0x0000043d
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0803F1BE
- cmp r6, 0x4
- beq _0803F1BE
- ldr r0, _0803F1CC @ =gBattleMons
- movs r1, 0x58
- muls r1, r6
- adds r0, 0x4C
- adds r1, r0
- ldr r0, [r1]
- ands r0, r4
- str r0, [r1]
-_0803F1BE:
- movs r0, 0
- b _0803F1D2
- .align 2, 0
-_0803F1C4: .4byte gMain
-_0803F1C8: .4byte 0x0000043d
-_0803F1CC: .4byte gBattleMons
-_0803F1D0:
- movs r0, 0x1
-_0803F1D2:
- add sp, 0x4
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end HealStatusConditions
-
- thumb_func_start sub_803F1DC
-sub_803F1DC: @ 803F1DC
- push {r4-r7,lr}
- lsls r0, 16
- lsrs r3, r0, 16
- lsls r1, 24
- lsrs r4, r1, 24
- lsls r2, 24
- lsrs r5, r2, 24
- movs r7, 0x6
- ldr r1, _0803F204 @ =gItemEffectTable
- adds r0, r3, 0
- subs r0, 0xD
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- cmp r0, 0
- bne _0803F208
- cmp r3, 0xAF
- beq _0803F20C
-_0803F200:
- movs r0, 0
- b _0803F31C
- .align 2, 0
-_0803F204: .4byte gItemEffectTable
-_0803F208:
- cmp r3, 0xAF
- bne _0803F21A
-_0803F20C:
- ldr r0, _0803F22C @ =gUnknown_02024A60
- ldrb r1, [r0]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- ldr r1, _0803F230 @ =gUnknown_02024DF8
- adds r0, r1
-_0803F21A:
- mov r12, r0
- movs r2, 0
-_0803F21E:
- cmp r2, 0x4
- beq _0803F23E
- cmp r2, 0x4
- ble _0803F234
- cmp r2, 0x5
- beq _0803F2C8
- b _0803F312
- .align 2, 0
-_0803F22C: .4byte gUnknown_02024A60
-_0803F230: .4byte gUnknown_02024DF8
-_0803F234:
- cmp r2, 0
- blt _0803F312
- cmp r2, r4
- bne _0803F312
- b _0803F200
-_0803F23E:
- mov r0, r12
- ldrb r3, [r0, 0x4]
- movs r0, 0x20
- ands r0, r3
- cmp r0, 0
- beq _0803F24E
- movs r0, 0xDF
- ands r3, r0
-_0803F24E:
- movs r6, 0
- cmp r3, 0
- beq _0803F312
-_0803F254:
- movs r0, 0x1
- ands r0, r3
- cmp r0, 0
- beq _0803F2B4
- cmp r6, 0x7
- bhi _0803F2B4
- lsls r0, r6, 2
- ldr r1, _0803F26C @ =_0803F270
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0803F26C: .4byte _0803F270
- .align 2, 0
-_0803F270:
- .4byte _0803F29C
- .4byte _0803F29C
- .4byte _0803F290
- .4byte _0803F29C
- .4byte _0803F2B4
- .4byte _0803F2B4
- .4byte _0803F2B4
- .4byte _0803F2B0
-_0803F290:
- movs r0, 0x10
- ands r0, r3
- cmp r0, 0
- beq _0803F29C
- movs r0, 0xEF
- ands r3, r0
-_0803F29C:
- cmp r2, r4
- bne _0803F2A8
- adds r0, r3, 0
- ands r0, r5
- cmp r0, 0
- bne _0803F31A
-_0803F2A8:
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- b _0803F2B4
-_0803F2B0:
- cmp r2, r4
- beq _0803F200
-_0803F2B4:
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- lsrs r3, 1
- cmp r2, r4
- bne _0803F2C2
- lsrs r5, 1
-_0803F2C2:
- cmp r3, 0
- bne _0803F254
- b _0803F312
-_0803F2C8:
- mov r0, r12
- ldrb r3, [r0, 0x5]
- movs r6, 0
-_0803F2CE:
- cmp r3, 0
- beq _0803F312
- movs r0, 0x1
- ands r0, r3
- cmp r0, 0
- beq _0803F302
- cmp r6, 0
- blt _0803F302
- cmp r6, 0x6
- ble _0803F2E8
- cmp r6, 0x7
- beq _0803F2FC
- b _0803F302
-_0803F2E8:
- cmp r2, r4
- bne _0803F2F4
- adds r0, r3, 0
- ands r0, r5
- cmp r0, 0
- bne _0803F31A
-_0803F2F4:
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- b _0803F302
-_0803F2FC:
- cmp r2, r4
- bne _0803F302
- b _0803F200
-_0803F302:
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- lsrs r3, 1
- cmp r2, r4
- bne _0803F2CE
- lsrs r5, 1
- b _0803F2CE
-_0803F312:
- adds r2, 0x1
- cmp r2, 0x5
- bgt _0803F31A
- b _0803F21E
-_0803F31A:
- adds r0, r7, 0
-_0803F31C:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_803F1DC
-
- thumb_func_start sub_803F324
-sub_803F324: @ 803F324
- push {lr}
- ldr r2, _0803F358 @ =gUnknown_02024C08
- ldr r1, _0803F35C @ =gUnknown_02024E6C
- ldrb r1, [r1]
- strb r1, [r2]
- ldr r3, _0803F360 @ =gUnknown_030041C0
- ldr r2, _0803F364 @ =gUnknown_08400F58
- ldr r1, _0803F368 @ =gUnknown_082082F8
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r2
- ldr r1, [r0]
- adds r0, r3, 0
- bl StringCopy
- ldr r0, _0803F36C @ =gUnknown_03004290
- ldr r1, _0803F370 @ =gUnknown_083FFDB3
- bl StringCopy
- ldr r0, _0803F374 @ =gUnknown_083FFDD3
- bl get_battle_strings_
- pop {r0}
- bx r0
- .align 2, 0
-_0803F358: .4byte gUnknown_02024C08
-_0803F35C: .4byte gUnknown_02024E6C
-_0803F360: .4byte gUnknown_030041C0
-_0803F364: .4byte gUnknown_08400F58
-_0803F368: .4byte gUnknown_082082F8
-_0803F36C: .4byte gUnknown_03004290
-_0803F370: .4byte gUnknown_083FFDB3
-_0803F374: .4byte gUnknown_083FFDD3
- thumb_func_end sub_803F324
-
- thumb_func_start sub_803F378
-sub_803F378: @ 803F378
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xAF
- bne _0803F3C0
- ldr r0, _0803F3A8 @ =gMain
- ldr r1, _0803F3AC @ =0x0000043d
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0803F3B8
- ldr r2, _0803F3B0 @ =gUnknown_02024E6C
- ldrb r1, [r2]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- ldr r1, _0803F3B4 @ =gUnknown_02024DF8
- adds r7, r0, r1
- b _0803F3CC
- .align 2, 0
-_0803F3A8: .4byte gMain
-_0803F3AC: .4byte 0x0000043d
-_0803F3B0: .4byte gUnknown_02024E6C
-_0803F3B4: .4byte gUnknown_02024DF8
-_0803F3B8:
- ldr r7, _0803F3BC @ =gSaveBlock1 + 0x3676
- b _0803F3CA
- .align 2, 0
-_0803F3BC: .4byte gSaveBlock1 + 0x3676
-_0803F3C0:
- ldr r1, _0803F404 @ =gItemEffectTable
- subs r0, 0xD
- lsls r0, 2
- adds r0, r1
- ldr r7, [r0]
-_0803F3CA:
- ldr r2, _0803F408 @ =gUnknown_02024E6C
-_0803F3CC:
- ldr r1, _0803F40C @ =gUnknown_02024C0B
- ldrb r0, [r2]
- strb r0, [r1]
- movs r5, 0
- ldr r0, _0803F410 @ =gUnknown_02024C07
- mov r8, r0
- movs r6, 0
-_0803F3DA:
- adds r4, r7, r5
- ldrb r1, [r4]
- movs r0, 0xF
- ands r0, r1
- cmp r0, 0
- beq _0803F3EC
- adds r0, r6, 0
- bl sub_803F324
-_0803F3EC:
- ldrb r1, [r4]
- movs r0, 0xF0
- ands r0, r1
- cmp r0, 0
- beq _0803F422
- cmp r5, 0
- beq _0803F414
- adds r0, r6, 0x1
- bl sub_803F324
- b _0803F422
- .align 2, 0
-_0803F404: .4byte gItemEffectTable
-_0803F408: .4byte gUnknown_02024E6C
-_0803F40C: .4byte gUnknown_02024C0B
-_0803F410: .4byte gUnknown_02024C07
-_0803F414:
- ldr r0, _0803F450 @ =gUnknown_02024E6C
- ldrb r0, [r0]
- mov r1, r8
- strb r0, [r1]
- ldr r0, _0803F454 @ =gUnknown_083FEE92
- bl get_battle_strings_
-_0803F422:
- adds r6, 0x2
- adds r5, 0x1
- cmp r5, 0x2
- ble _0803F3DA
- ldrb r1, [r7, 0x3]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0803F442
- ldr r1, _0803F458 @ =gUnknown_02024C07
- ldr r0, _0803F450 @ =gUnknown_02024E6C
- ldrb r0, [r0]
- strb r0, [r1]
- ldr r0, _0803F45C @ =gUnknown_083FEE5D
- bl get_battle_strings_
-_0803F442:
- ldr r0, _0803F460 @ =gUnknown_020238CC
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0803F450: .4byte gUnknown_02024E6C
-_0803F454: .4byte gUnknown_083FEE92
-_0803F458: .4byte gUnknown_02024C07
-_0803F45C: .4byte gUnknown_083FEE5D
-_0803F460: .4byte gUnknown_020238CC
- thumb_func_end sub_803F378
-
- thumb_func_start GetNature
-GetNature: @ 803F464
- push {lr}
- movs r1, 0
- movs r2, 0
- bl GetMonData
- movs r1, 0x19
- bl __umodsi3
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- thumb_func_end GetNature
-
- thumb_func_start GetNatureFromPersonality
-GetNatureFromPersonality: @ 803F47C
- push {lr}
- movs r1, 0x19
- bl __umodsi3
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- thumb_func_end GetNatureFromPersonality
-
- thumb_func_start GetEvolutionTargetSpecies
-GetEvolutionTargetSpecies: @ 803F48C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- mov r8, r0
- lsls r1, 24
- lsrs r5, r1, 24
- lsls r2, 16
- lsrs r2, 16
- mov r9, r2
- movs r0, 0
- mov r10, r0
- mov r0, r8
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- lsls r0, 16
- lsrs r7, r0, 16
- mov r0, r8
- movs r1, 0xC
- movs r2, 0
- bl GetMonData
- mov r1, sp
- strh r0, [r1]
- mov r0, r8
- movs r1, 0
- movs r2, 0
- bl GetMonData
- adds r4, r0, 0
- mov r0, r8
- movs r1, 0x17
- movs r2, 0
- bl GetMonData
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0xC]
- lsrs r4, 16
- str r4, [sp, 0x10]
- mov r0, sp
- ldrh r0, [r0]
- cmp r0, 0xAF
- bne _0803F500
- ldr r0, _0803F4F8 @ =gSaveBlock1
- ldr r1, _0803F4FC @ =0x00003688
- adds r0, r1
- ldrb r0, [r0]
- b _0803F508
- .align 2, 0
-_0803F4F8: .4byte gSaveBlock1
-_0803F4FC: .4byte 0x00003688
-_0803F500:
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r0, 24
-_0803F508:
- cmp r0, 0x26
- bne _0803F514
- cmp r5, 0x3
- beq _0803F514
- movs r0, 0
- b _0803F7A4
-_0803F514:
- cmp r5, 0x1
- bne _0803F51A
- b _0803F734
-_0803F51A:
- cmp r5, 0x1
- bgt _0803F524
- cmp r5, 0
- beq _0803F538
- b _0803F7A2
-_0803F524:
- cmp r5, 0x3
- ble _0803F52A
- b _0803F7A2
-_0803F52A:
- movs r2, 0
- str r2, [sp, 0x4]
- ldr r3, _0803F534 @ =gEvolutionTable
- lsls r6, r7, 2
- b _0803F782
- .align 2, 0
-_0803F534: .4byte gEvolutionTable
-_0803F538:
- mov r0, r8
- movs r1, 0x38
- movs r2, 0
- bl GetMonData
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- mov r0, r8
- movs r1, 0x20
- movs r2, 0
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0x8]
- movs r0, 0
- str r0, [sp, 0x4]
- lsls r6, r7, 2
-_0803F55E:
- ldr r1, _0803F584 @ =gEvolutionTable
- ldr r0, [sp, 0x4]
- lsls r2, r0, 3
- adds r0, r6, r7
- lsls r0, 3
- adds r0, r2, r0
- adds r0, r1
- ldrh r0, [r0]
- subs r0, 0x1
- adds r3, r1, 0
- adds r4, r2, 0
- cmp r0, 0xE
- bls _0803F57A
- b _0803F726
-_0803F57A:
- lsls r0, 2
- ldr r1, _0803F588 @ =_0803F58C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0803F584: .4byte gEvolutionTable
-_0803F588: .4byte _0803F58C
- .align 2, 0
-_0803F58C:
- .4byte _0803F5C8
- .4byte _0803F5DA
- .4byte _0803F5FC
- .4byte _0803F62C
- .4byte _0803F726
- .4byte _0803F726
- .4byte _0803F726
- .4byte _0803F63C
- .4byte _0803F666
- .4byte _0803F690
- .4byte _0803F6BE
- .4byte _0803F6DE
- .4byte _0803F702
- .4byte _0803F726
- .4byte _0803F712
-_0803F5C8:
- ldr r1, [sp, 0x8]
- cmp r1, 0xDB
- bhi _0803F5D0
- b _0803F726
-_0803F5D0:
- adds r0, r6, r7
- lsls r0, 3
- adds r0, r4, r0
- adds r0, r3
- b _0803F61C
-_0803F5DA:
- bl RtcCalcLocalTime
- ldr r0, _0803F5F8 @ =gLocalTime
- ldrb r0, [r0, 0x2]
- subs r0, 0xC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xB
- bls _0803F5EE
- b _0803F726
-_0803F5EE:
- ldr r2, [sp, 0x8]
- cmp r2, 0xDB
- bhi _0803F5F6
- b _0803F726
-_0803F5F6:
- b _0803F612
- .align 2, 0
-_0803F5F8: .4byte gLocalTime
-_0803F5FC:
- bl RtcCalcLocalTime
- ldr r0, _0803F624 @ =gLocalTime
- ldrb r0, [r0, 0x2]
- cmp r0, 0xB
- bls _0803F60A
- b _0803F726
-_0803F60A:
- ldr r0, [sp, 0x8]
- cmp r0, 0xDB
- bhi _0803F612
- b _0803F726
-_0803F612:
- ldr r1, _0803F628 @ =gEvolutionTable
- adds r0, r6, r7
- lsls r0, 3
- adds r0, r4, r0
- adds r0, r1
-_0803F61C:
- ldrh r0, [r0, 0x4]
- mov r10, r0
- b _0803F726
- .align 2, 0
-_0803F624: .4byte gLocalTime
-_0803F628: .4byte gEvolutionTable
-_0803F62C:
- adds r0, r6, r7
- lsls r0, 3
- adds r0, r4, r0
- adds r1, r0, r3
- ldrh r0, [r1, 0x2]
- cmp r0, r9
- bhi _0803F726
- b _0803F722
-_0803F63C:
- adds r0, r6, r7
- lsls r0, 3
- adds r0, r4, r0
- adds r5, r0, r3
- ldrh r0, [r5, 0x2]
- cmp r0, r9
- bhi _0803F726
- mov r0, r8
- movs r1, 0x3B
- movs r2, 0
- bl GetMonData
- adds r4, r0, 0
- mov r0, r8
- movs r1, 0x3C
- movs r2, 0
- bl GetMonData
- cmp r4, r0
- bls _0803F726
- b _0803F6B8
-_0803F666:
- adds r0, r6, r7
- lsls r0, 3
- adds r0, r4, r0
- adds r5, r0, r3
- ldrh r0, [r5, 0x2]
- cmp r0, r9
- bhi _0803F726
- mov r0, r8
- movs r1, 0x3B
- movs r2, 0
- bl GetMonData
- adds r4, r0, 0
- mov r0, r8
- movs r1, 0x3C
- movs r2, 0
- bl GetMonData
- cmp r4, r0
- bne _0803F726
- b _0803F6B8
-_0803F690:
- adds r0, r6, r7
- lsls r0, 3
- adds r0, r4, r0
- adds r5, r0, r3
- ldrh r0, [r5, 0x2]
- cmp r0, r9
- bhi _0803F726
- mov r0, r8
- movs r1, 0x3B
- movs r2, 0
- bl GetMonData
- adds r4, r0, 0
- mov r0, r8
- movs r1, 0x3C
- movs r2, 0
- bl GetMonData
- cmp r4, r0
- bcs _0803F726
-_0803F6B8:
- ldrh r5, [r5, 0x4]
- mov r10, r5
- b _0803F726
-_0803F6BE:
- adds r0, r6, r7
- lsls r0, 3
- adds r0, r4, r0
- adds r4, r0, r3
- ldrh r0, [r4, 0x2]
- cmp r0, r9
- bhi _0803F726
- ldr r0, [sp, 0x10]
- movs r1, 0xA
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x4
- bhi _0803F726
- b _0803F6FC
-_0803F6DE:
- adds r0, r6, r7
- lsls r0, 3
- adds r0, r4, r0
- adds r4, r0, r3
- ldrh r0, [r4, 0x2]
- cmp r0, r9
- bhi _0803F726
- ldr r0, [sp, 0x10]
- movs r1, 0xA
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x4
- bls _0803F726
-_0803F6FC:
- ldrh r4, [r4, 0x4]
- mov r10, r4
- b _0803F726
-_0803F702:
- adds r0, r6, r7
- lsls r0, 3
- adds r0, r4, r0
- adds r1, r0, r3
- ldrh r0, [r1, 0x2]
- cmp r0, r9
- bhi _0803F726
- b _0803F722
-_0803F712:
- adds r0, r6, r7
- lsls r0, 3
- adds r0, r4, r0
- adds r1, r0, r3
- ldrh r0, [r1, 0x2]
- ldr r2, [sp, 0xC]
- cmp r0, r2
- bhi _0803F726
-_0803F722:
- ldrh r1, [r1, 0x4]
- mov r10, r1
-_0803F726:
- ldr r0, [sp, 0x4]
- adds r0, 0x1
- str r0, [sp, 0x4]
- cmp r0, 0x4
- bgt _0803F732
- b _0803F55E
-_0803F732:
- b _0803F7A2
-_0803F734:
- lsls r6, r7, 2
- ldr r1, _0803F778 @ =gEvolutionTable
- adds r0, r6, r7
- lsls r0, 3
- adds r4, r0, r1
- mov r5, sp
- movs r1, 0x4
- str r1, [sp, 0x4]
-_0803F744:
- ldrh r0, [r4]
- cmp r0, 0x5
- beq _0803F764
- cmp r0, 0x6
- bne _0803F768
- ldrh r0, [r4, 0x2]
- ldrh r1, [r5]
- cmp r0, r1
- bne _0803F768
- movs r0, 0
- strh r0, [r5]
- mov r0, r8
- movs r1, 0xC
- mov r2, sp
- bl SetMonData
-_0803F764:
- ldrh r2, [r4, 0x4]
- mov r10, r2
-_0803F768:
- adds r4, 0x8
- ldr r0, [sp, 0x4]
- subs r0, 0x1
- str r0, [sp, 0x4]
- cmp r0, 0
- bge _0803F744
- b _0803F7A2
- .align 2, 0
-_0803F778: .4byte gEvolutionTable
-_0803F77C:
- ldrh r1, [r1, 0x4]
- mov r10, r1
- b _0803F7A2
-_0803F782:
- adds r0, r6, r7
- ldr r1, [sp, 0x4]
- adds r0, r1
- lsls r0, 3
- adds r1, r0, r3
- ldrh r0, [r1]
- cmp r0, 0x7
- bne _0803F798
- ldrh r0, [r1, 0x2]
- cmp r0, r9
- beq _0803F77C
-_0803F798:
- ldr r2, [sp, 0x4]
- adds r2, 0x1
- str r2, [sp, 0x4]
- cmp r2, 0x4
- ble _0803F782
-_0803F7A2:
- mov r0, r10
-_0803F7A4:
- add sp, 0x14
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end GetEvolutionTargetSpecies
-
- thumb_func_start HoennPokedexNumToSpecies
-HoennPokedexNumToSpecies: @ 803F7B4
- push {r4,lr}
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0
- beq _0803F7F8
- movs r1, 0
- ldr r3, _0803F7F0 @ =gSpeciesToHoennPokedexNum
- ldrh r0, [r3]
- cmp r0, r2
- beq _0803F7E0
- movs r4, 0xCD
- lsls r4, 1
-_0803F7CC:
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, r4
- bhi _0803F7E0
- lsls r0, r1, 1
- adds r0, r3
- ldrh r0, [r0]
- cmp r0, r2
- bne _0803F7CC
-_0803F7E0:
- ldr r0, _0803F7F4 @ =0x0000019b
- cmp r1, r0
- beq _0803F7F8
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r0, 16
- b _0803F7FA
- .align 2, 0
-_0803F7F0: .4byte gSpeciesToHoennPokedexNum
-_0803F7F4: .4byte 0x0000019b
-_0803F7F8:
- movs r0, 0
-_0803F7FA:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end HoennPokedexNumToSpecies
-
- thumb_func_start NationalPokedexNumToSpecies
-NationalPokedexNumToSpecies: @ 803F800
- push {r4,lr}
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0
- beq _0803F844
- movs r1, 0
- ldr r3, _0803F83C @ =gSpeciesToNationalPokedexNum
- ldrh r0, [r3]
- cmp r0, r2
- beq _0803F82C
- movs r4, 0xCD
- lsls r4, 1
-_0803F818:
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, r4
- bhi _0803F82C
- lsls r0, r1, 1
- adds r0, r3
- ldrh r0, [r0]
- cmp r0, r2
- bne _0803F818
-_0803F82C:
- ldr r0, _0803F840 @ =0x0000019b
- cmp r1, r0
- beq _0803F844
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r0, 16
- b _0803F846
- .align 2, 0
-_0803F83C: .4byte gSpeciesToNationalPokedexNum
-_0803F840: .4byte 0x0000019b
-_0803F844:
- movs r0, 0
-_0803F846:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end NationalPokedexNumToSpecies
-
- thumb_func_start NationalToHoennOrder
-NationalToHoennOrder: @ 803F84C
- push {r4,lr}
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0
- beq _0803F890
- movs r1, 0
- ldr r3, _0803F888 @ =gHoennToNationalOrder
- ldrh r0, [r3]
- cmp r0, r2
- beq _0803F878
- movs r4, 0xCD
- lsls r4, 1
-_0803F864:
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, r4
- bhi _0803F878
- lsls r0, r1, 1
- adds r0, r3
- ldrh r0, [r0]
- cmp r0, r2
- bne _0803F864
-_0803F878:
- ldr r0, _0803F88C @ =0x0000019b
- cmp r1, r0
- beq _0803F890
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r0, 16
- b _0803F892
- .align 2, 0
-_0803F888: .4byte gHoennToNationalOrder
-_0803F88C: .4byte 0x0000019b
-_0803F890:
- movs r0, 0
-_0803F892:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end NationalToHoennOrder
-
- thumb_func_start SpeciesToNationalPokedexNum
-SpeciesToNationalPokedexNum: @ 803F898
- push {lr}
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- beq _0803F8B4
- ldr r0, _0803F8B0 @ =gSpeciesToNationalPokedexNum
- subs r1, 0x1
- lsls r1, 1
- adds r1, r0
- ldrh r0, [r1]
- b _0803F8B6
- .align 2, 0
-_0803F8B0: .4byte gSpeciesToNationalPokedexNum
-_0803F8B4:
- movs r0, 0
-_0803F8B6:
- pop {r1}
- bx r1
- thumb_func_end SpeciesToNationalPokedexNum
-
- thumb_func_start SpeciesToHoennPokedexNum
-SpeciesToHoennPokedexNum: @ 803F8BC
- push {lr}
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- beq _0803F8D8
- ldr r0, _0803F8D4 @ =gSpeciesToHoennPokedexNum
- subs r1, 0x1
- lsls r1, 1
- adds r1, r0
- ldrh r0, [r1]
- b _0803F8DA
- .align 2, 0
-_0803F8D4: .4byte gSpeciesToHoennPokedexNum
-_0803F8D8:
- movs r0, 0
-_0803F8DA:
- pop {r1}
- bx r1
- thumb_func_end SpeciesToHoennPokedexNum
-
- thumb_func_start HoennToNationalOrder
-HoennToNationalOrder: @ 803F8E0
- push {lr}
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- beq _0803F8FC
- ldr r0, _0803F8F8 @ =gHoennToNationalOrder
- subs r1, 0x1
- lsls r1, 1
- adds r1, r0
- ldrh r0, [r1]
- b _0803F8FE
- .align 2, 0
-_0803F8F8: .4byte gHoennToNationalOrder
-_0803F8FC:
- movs r0, 0
-_0803F8FE:
- pop {r1}
- bx r1
- thumb_func_end HoennToNationalOrder
-
- thumb_func_start SpeciesToCryId
-SpeciesToCryId: @ 803F904
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- adds r1, r0, 0
- cmp r0, 0xFA
- bls _0803F932
- ldr r0, _0803F924 @ =0x00000113
- cmp r1, r0
- bls _0803F930
- ldr r0, _0803F928 @ =gSpeciesIdToCryId
- ldr r2, _0803F92C @ =0xfffffeec
- adds r1, r2
- lsls r1, 1
- adds r1, r0
- ldrh r0, [r1]
- b _0803F932
- .align 2, 0
-_0803F924: .4byte 0x00000113
-_0803F928: .4byte gSpeciesIdToCryId
-_0803F92C: .4byte 0xfffffeec
-_0803F930:
- movs r0, 0xC8
-_0803F932:
- pop {r1}
- bx r1
- thumb_func_end SpeciesToCryId
-
- thumb_func_start unref_sub_803F938
-unref_sub_803F938: @ 803F938
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- adds r5, r1, 0
- mov r10, r2
- lsls r0, 16
- movs r1, 0x9A
- lsls r1, 17
- cmp r0, r1
- bne _0803FA42
- ldr r1, _0803FA04 @ =gUnknown_081FAF4C
- ldr r0, [r1]
- cmp r10, r0
- beq _0803FA42
- ldr r0, [r1, 0x8]
- cmp r10, r0
- beq _0803FA42
- movs r6, 0
-_0803F962:
- lsls r3, r6, 3
- adds r3, r6
- lsls r3, 2
- ldr r0, _0803FA08 @ =gSpindaSpotGraphics
- adds r4, r3, r0
- ldrb r1, [r4]
- adds r1, 0xF8
- movs r2, 0xF
- adds r0, r5, 0
- ands r0, r2
- adds r1, r0
- lsls r1, 24
- lsrs r1, 24
- mov r12, r1
- ldrb r1, [r4, 0x1]
- adds r1, 0xF8
- movs r0, 0xF0
- ands r0, r5
- lsrs r0, 4
- adds r1, r0
- lsls r1, 24
- lsrs r1, 24
- movs r2, 0
- lsrs r5, 8
- str r5, [sp, 0x4]
- adds r6, 0x1
- str r6, [sp]
- mov r9, r3
-_0803F99A:
- lsls r0, r2, 1
- add r0, r9
- ldr r3, _0803FA0C @ =gSpindaSpotGraphics + 0x2
- adds r0, r3
- ldrh r3, [r0]
- mov r4, r12
- adds r0, r4, 0
- adds r0, 0x10
- adds r7, r1, 0x1
- adds r2, 0x1
- mov r8, r2
- cmp r4, r0
- bge _0803FA30
- lsrs r0, r1, 3
- lsls r6, r0, 8
- movs r0, 0x7
- ands r1, r0
- lsls r5, r1, 2
-_0803F9BE:
- adds r0, r4, 0
- cmp r4, 0
- bge _0803F9C6
- adds r0, r4, 0x7
-_0803F9C6:
- asrs r0, 3
- lsls r2, r0, 5
- add r2, r10
- lsls r0, 3
- subs r0, r4, r0
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- adds r2, r0
- adds r2, r6
- adds r2, r5
- movs r1, 0x1
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _0803FA24
- adds r0, r4, 0
- ands r0, r1
- cmp r0, 0
- beq _0803FA10
- ldrb r1, [r2]
- movs r0, 0xF0
- ands r0, r1
- subs r0, 0x10
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x20
- bhi _0803FA24
- adds r0, r1, 0
- adds r0, 0x40
- b _0803FA22
- .align 2, 0
-_0803FA04: .4byte gUnknown_081FAF4C
-_0803FA08: .4byte gSpindaSpotGraphics
-_0803FA0C: .4byte gSpindaSpotGraphics + 0x2
-_0803FA10:
- ldrb r1, [r2]
- movs r0, 0xF
- ands r0, r1
- subs r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bhi _0803FA24
- adds r0, r1, 0x4
-_0803FA22:
- strb r0, [r2]
-_0803FA24:
- asrs r3, 1
- adds r4, 0x1
- mov r0, r12
- adds r0, 0x10
- cmp r4, r0
- blt _0803F9BE
-_0803FA30:
- lsls r0, r7, 24
- lsrs r1, r0, 24
- mov r2, r8
- cmp r2, 0xF
- ble _0803F99A
- ldr r5, [sp, 0x4]
- ldr r6, [sp]
- cmp r6, 0x3
- ble _0803F962
-_0803FA42:
- 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 unref_sub_803F938
-
- thumb_func_start DrawSpindaSpots
-DrawSpindaSpots: @ 803FA54
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- adds r5, r1, 0
- str r2, [sp]
- lsls r0, 16
- lsls r3, 24
- lsrs r3, 24
- movs r1, 0x9A
- lsls r1, 17
- cmp r0, r1
- bne _0803FB56
- cmp r3, 0
- beq _0803FB56
- movs r6, 0
-_0803FA78:
- lsls r3, r6, 3
- adds r3, r6
- lsls r3, 2
- ldr r0, _0803FB1C @ =gSpindaSpotGraphics
- adds r4, r3, r0
- ldrb r1, [r4]
- adds r1, 0xF8
- movs r2, 0xF
- adds r0, r5, 0
- ands r0, r2
- adds r1, r0
- lsls r1, 24
- lsrs r1, 24
- mov r12, r1
- ldrb r1, [r4, 0x1]
- adds r1, 0xF8
- movs r0, 0xF0
- ands r0, r5
- lsrs r0, 4
- adds r1, r0
- lsls r1, 24
- lsrs r1, 24
- movs r2, 0
- lsrs r5, 8
- str r5, [sp, 0x4]
- adds r6, 0x1
- mov r10, r6
- mov r9, r3
-_0803FAB0:
- lsls r0, r2, 1
- add r0, r9
- ldr r3, _0803FB20 @ =gSpindaSpotGraphics + 0x2
- adds r0, r3
- ldrh r3, [r0]
- mov r4, r12
- adds r0, r4, 0
- adds r0, 0x10
- adds r7, r1, 0x1
- adds r2, 0x1
- mov r8, r2
- cmp r4, r0
- bge _0803FB44
- lsrs r0, r1, 3
- lsls r6, r0, 8
- movs r0, 0x7
- ands r1, r0
- lsls r5, r1, 2
-_0803FAD4:
- adds r0, r4, 0
- cmp r4, 0
- bge _0803FADC
- adds r0, r4, 0x7
-_0803FADC:
- asrs r0, 3
- lsls r2, r0, 5
- ldr r1, [sp]
- adds r2, r1, r2
- lsls r0, 3
- subs r0, r4, r0
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- adds r2, r0
- adds r2, r6
- adds r2, r5
- movs r1, 0x1
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _0803FB38
- adds r0, r4, 0
- ands r0, r1
- cmp r0, 0
- beq _0803FB24
- ldrb r1, [r2]
- movs r0, 0xF0
- ands r0, r1
- subs r0, 0x10
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x20
- bhi _0803FB38
- adds r0, r1, 0
- adds r0, 0x40
- b _0803FB36
- .align 2, 0
-_0803FB1C: .4byte gSpindaSpotGraphics
-_0803FB20: .4byte gSpindaSpotGraphics + 0x2
-_0803FB24:
- ldrb r1, [r2]
- movs r0, 0xF
- ands r0, r1
- subs r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bhi _0803FB38
- adds r0, r1, 0x4
-_0803FB36:
- strb r0, [r2]
-_0803FB38:
- asrs r3, 1
- adds r4, 0x1
- mov r0, r12
- adds r0, 0x10
- cmp r4, r0
- blt _0803FAD4
-_0803FB44:
- lsls r0, r7, 24
- lsrs r1, r0, 24
- mov r2, r8
- cmp r2, 0xF
- ble _0803FAB0
- ldr r5, [sp, 0x4]
- mov r6, r10
- cmp r6, 0x3
- ble _0803FA78
-_0803FB56:
- 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 DrawSpindaSpots
-
- .if REVISION >= 1
- thumb_func_start sub_803FB68
-sub_803FB68: @ 803FB68
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- adds r5, r0, 0
- lsls r1, 16
- lsrs r7, r1, 16
- lsls r2, 16
- lsrs r2, 16
- mov r8, r2
- ldr r0, =gStringVar1
- mov r9, r0
- adds r0, r5, 0
- movs r1, 0x2
- mov r2, r9
- bl GetMonData
- mov r4, sp
- adds r0, r5, 0
- movs r1, 0x3
- mov r2, sp
- bl GetMonData
- strb r0, [r4, 0x0]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _0803FBC4
- movs r6, 0xB
- adds r0, r7, 0
- muls r0, r6
- ldr r4, =gSpeciesNames
- adds r0, r4
- mov r1, r9
- bl StringCompareWithoutExtCtrlCodes
- cmp r0, 0
- bne _0803FBC4
- mov r2, r8
- muls r2, r6
- adds r2, r4
- adds r0, r5, 0
- movs r1, 0x2
- bl SetMonData
-_0803FBC4:
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_803FB68
- .else
- thumb_func_start sub_803FB68
-sub_803FB68: @ 803FB68
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r7, r0, 0
- adds r4, r1, 0
- lsls r4, 16
- lsrs r4, 16
- lsls r2, 16
- lsrs r2, 16
- mov r8, r2
- ldr r5, _0803FBB4 @ =gStringVar1
- movs r1, 0x2
- adds r2, r5, 0
- bl GetMonData
- movs r6, 0xB
- adds r0, r4, 0
- muls r0, r6
- ldr r4, _0803FBB8 @ =gSpeciesNames
- adds r0, r4
- adds r1, r5, 0
- bl StringCompareWithoutExtCtrlCodes
- cmp r0, 0
- bne _0803FBA8
- mov r2, r8
- muls r2, r6
- adds r2, r4
- adds r0, r7, 0
- movs r1, 0x2
- bl SetMonData
-_0803FBA8:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0803FBB4: .4byte gStringVar1
-_0803FBB8: .4byte gSpeciesNames
- thumb_func_end sub_803FB68
- .endif
-
- thumb_func_start sub_803FBBC
-sub_803FBBC: @ 803FBBC
- push {r4,r5,lr}
- movs r5, 0
- ldr r4, _0803FBE4 @ =gLinkPlayers
- bl GetMultiplayerId
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r4
- ldrh r0, [r1, 0x18]
- cmp r0, 0x2
- bgt _0803FBE8
- cmp r0, 0x1
- bge _0803FBF0
- cmp r0, 0
- beq _0803FBEC
- b _0803FBF2
- .align 2, 0
-_0803FBE4: .4byte gLinkPlayers
-_0803FBE8:
- cmp r0, 0x3
- bne _0803FBF2
-_0803FBEC:
- movs r5, 0
- b _0803FBF2
-_0803FBF0:
- movs r5, 0x1
-_0803FBF2:
- adds r0, r5, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_803FBBC
-
- thumb_func_start sub_803FBFC
-sub_803FBFC: @ 803FBFC
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- movs r3, 0
- ldr r2, _0803FC20 @ =gLinkPlayers
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r2
- ldrh r0, [r1, 0x18]
- cmp r0, 0x2
- bgt _0803FC24
- cmp r0, 0x1
- bge _0803FC2C
- cmp r0, 0
- beq _0803FC28
- b _0803FC2E
- .align 2, 0
-_0803FC20: .4byte gLinkPlayers
-_0803FC24:
- cmp r0, 0x3
- bne _0803FC2E
-_0803FC28:
- movs r3, 0
- b _0803FC2E
-_0803FC2C:
- movs r3, 0x1
-_0803FC2E:
- adds r0, r3, 0
- pop {r1}
- bx r1
- thumb_func_end sub_803FBFC
-
- thumb_func_start sub_803FC34
-sub_803FC34: @ 803FC34
- push {lr}
- lsls r0, 16
- lsrs r3, r0, 16
- movs r2, 0
- ldr r1, _0803FC40 @ =gLinkPlayers
- b _0803FC4C
- .align 2, 0
-_0803FC40: .4byte gLinkPlayers
-_0803FC44:
- adds r1, 0x1C
- adds r2, 0x1
- cmp r2, 0x3
- bgt _0803FC52
-_0803FC4C:
- ldrh r0, [r1, 0x18]
- cmp r0, r3
- bne _0803FC44
-_0803FC52:
- adds r0, r2, 0
- pop {r1}
- bx r1
- thumb_func_end sub_803FC34
-
- thumb_func_start sub_803FC58
-sub_803FC58: @ 803FC58
- lsls r0, 16
- lsrs r0, 16
- ldr r2, _0803FC70 @ =gTrainers
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldrb r1, [r1, 0x2]
- movs r0, 0x7F
- ands r0, r1
- bx lr
- .align 2, 0
-_0803FC70: .4byte gTrainers
- thumb_func_end sub_803FC58
-
- thumb_func_start nature_stat_mod
-nature_stat_mod: @ 803FC74
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 16
- lsrs r3, r1, 16
- lsls r2, 24
- lsrs r5, r2, 24
- movs r0, 0xFF
- lsls r0, 24
- adds r2, r0
- lsrs r2, 24
- cmp r2, 0x4
- bls _0803FC92
- adds r0, r3, 0
- b _0803FCCE
-_0803FC92:
- ldr r0, _0803FCB4 @ =gNatureStatTable
- lsls r1, r4, 2
- adds r1, r4
- subs r1, 0x1
- adds r1, r5, r1
- adds r1, r0
- ldrb r1, [r1]
- lsls r1, 24
- asrs r1, 24
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _0803FCB8
- cmp r1, 0x1
- bne _0803FCCC
- movs r0, 0x6E
- b _0803FCBA
- .align 2, 0
-_0803FCB4: .4byte gNatureStatTable
-_0803FCB8:
- movs r0, 0x5A
-_0803FCBA:
- muls r0, r3
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- bl __udivsi3
- lsls r0, 16
- lsrs r0, 16
- b _0803FCCE
-_0803FCCC:
- adds r0, r3, 0
-_0803FCCE:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end nature_stat_mod
-
- thumb_func_start AdjustFriendship
-AdjustFriendship: @ 803FCD4
- push {r4-r7,lr}
- sub sp, 0x4
- adds r7, r0, 0
- lsls r1, 24
- lsrs r5, r1, 24
- movs r1, 0x41
- movs r2, 0
- bl GetMonData
- lsls r0, 16
- lsrs r6, r0, 16
- adds r0, r7, 0
- movs r1, 0xC
- movs r2, 0
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xAF
- bne _0803FD34
- ldr r0, _0803FD14 @ =gMain
- ldr r1, _0803FD18 @ =0x0000043d
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0803FD20
- ldr r0, _0803FD1C @ =gEnigmaBerries
- ldrb r4, [r0, 0x7]
- b _0803FD3C
- .align 2, 0
-_0803FD14: .4byte gMain
-_0803FD18: .4byte 0x0000043d
-_0803FD1C: .4byte gEnigmaBerries
-_0803FD20:
- ldr r0, _0803FD2C @ =gSaveBlock1
- ldr r1, _0803FD30 @ =0x00003688
- adds r0, r1
- ldrb r4, [r0]
- b _0803FD3C
- .align 2, 0
-_0803FD2C: .4byte gSaveBlock1
-_0803FD30: .4byte 0x00003688
-_0803FD34:
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r4, r0, 24
-_0803FD3C:
- cmp r6, 0
- bne _0803FD42
- b _0803FE56
-_0803FD42:
- movs r0, 0xCE
- lsls r0, 1
- cmp r6, r0
- bne _0803FD4C
- b _0803FE56
-_0803FD4C:
- movs r6, 0
- adds r0, r7, 0
- movs r1, 0x20
- movs r2, 0
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- mov r1, sp
- strh r0, [r1]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x63
- ble _0803FD6A
- movs r6, 0x1
-_0803FD6A:
- cmp r0, 0xC7
- ble _0803FD74
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
-_0803FD74:
- cmp r5, 0x5
- bne _0803FD84
- bl Random
- movs r1, 0x1
- ands r1, r0
- cmp r1, 0
- bne _0803FE56
-_0803FD84:
- cmp r5, 0x3
- bne _0803FDB4
- ldr r0, _0803FE60 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _0803FE56
- ldr r2, _0803FE64 @ =gTrainers
- ldr r0, _0803FE68 @ =gTrainerBattleOpponent
- ldrh r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrb r1, [r0, 0x1]
- adds r0, r1, 0
- subs r0, 0x18
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bls _0803FDB4
- cmp r1, 0x20
- bne _0803FE56
-_0803FDB4:
- ldr r1, _0803FE6C @ =gUnknown_082082FE
- lsls r0, r5, 1
- adds r0, r5
- adds r0, r6, r0
- adds r0, r1
- ldrb r2, [r0]
- movs r1, 0
- ldrsb r1, [r0, r1]
- cmp r1, 0
- ble _0803FDDA
- cmp r4, 0x1B
- bne _0803FDDA
- movs r0, 0x96
- muls r0, r1
- movs r1, 0x64
- bl __divsi3
- lsls r0, 24
- lsrs r2, r0, 24
-_0803FDDA:
- lsls r2, 24
- asrs r2, 24
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- adds r0, r2
- mov r1, sp
- strh r0, [r1]
- cmp r2, 0
- ble _0803FE2C
- adds r0, r7, 0
- movs r1, 0x26
- movs r2, 0
- bl GetMonData
- cmp r0, 0xB
- bne _0803FE08
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- adds r0, 0x1
- mov r1, sp
- strh r0, [r1]
-_0803FE08:
- adds r0, r7, 0
- movs r1, 0x23
- movs r2, 0
- bl GetMonData
- adds r4, r0, 0
- bl sav1_map_get_name
- lsls r0, 24
- lsrs r0, 24
- cmp r4, r0
- bne _0803FE2C
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- adds r0, 0x1
- mov r1, sp
- strh r0, [r1]
-_0803FE2C:
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bge _0803FE3C
- movs r1, 0
- mov r0, sp
- strh r1, [r0]
-_0803FE3C:
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0xFF
- ble _0803FE4C
- movs r1, 0xFF
- mov r0, sp
- strh r1, [r0]
-_0803FE4C:
- adds r0, r7, 0
- movs r1, 0x20
- mov r2, sp
- bl SetMonData
-_0803FE56:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0803FE60: .4byte gUnknown_020239F8
-_0803FE64: .4byte gTrainers
-_0803FE68: .4byte gTrainerBattleOpponent
-_0803FE6C: .4byte gUnknown_082082FE
- thumb_func_end AdjustFriendship
-
- thumb_func_start MonGainEVs
-MonGainEVs: @ 803FE70
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- mov r8, r0
- lsls r1, 16
- lsrs r5, r1, 16
- movs r4, 0
- movs r7, 0
- movs r6, 0
-_0803FE84:
- adds r1, r6, 0
- adds r1, 0x1A
- mov r0, r8
- movs r2, 0
- bl GetMonData
- mov r2, sp
- adds r1, r2, r6
- strb r0, [r1]
- ldrb r0, [r1]
- adds r0, r7, r0
- lsls r0, 16
- lsrs r7, r0, 16
- adds r6, 0x1
- cmp r6, 0x5
- ble _0803FE84
- movs r6, 0
- b _08040006
-_0803FEA8:
- mov r0, r8
- movs r1, 0
- bl CheckPartyHasHadPokerus
- lsls r0, 24
- movs r2, 0x1
- cmp r0, 0
- beq _0803FEBA
- movs r2, 0x2
-_0803FEBA:
- cmp r6, 0x5
- bhi _0803FF5C
- lsls r0, r6, 2
- ldr r1, _0803FEC8 @ =_0803FECC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0803FEC8: .4byte _0803FECC
- .align 2, 0
-_0803FECC:
- .4byte _0803FEE4
- .4byte _0803FEF8
- .4byte _0803FF0C
- .4byte _0803FF20
- .4byte _0803FF34
- .4byte _0803FF48
-_0803FEE4:
- ldr r0, _0803FEF4 @ =gBaseStats
- lsls r1, r5, 3
- subs r1, r5
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0xA]
- lsls r0, 30
- b _0803FF56
- .align 2, 0
-_0803FEF4: .4byte gBaseStats
-_0803FEF8:
- ldr r0, _0803FF08 @ =gBaseStats
- lsls r1, r5, 3
- subs r1, r5
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0xA]
- b _0803FF54
- .align 2, 0
-_0803FF08: .4byte gBaseStats
-_0803FF0C:
- ldr r0, _0803FF1C @ =gBaseStats
- lsls r1, r5, 3
- subs r1, r5
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0xA]
- lsls r0, 26
- b _0803FF56
- .align 2, 0
-_0803FF1C: .4byte gBaseStats
-_0803FF20:
- ldr r0, _0803FF30 @ =gBaseStats
- lsls r1, r5, 3
- subs r1, r5
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0xA]
- lsrs r0, 6
- b _0803FF58
- .align 2, 0
-_0803FF30: .4byte gBaseStats
-_0803FF34:
- ldr r0, _0803FF44 @ =gBaseStats
- lsls r1, r5, 3
- subs r1, r5
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0xB]
- lsls r0, 30
- b _0803FF56
- .align 2, 0
-_0803FF44: .4byte gBaseStats
-_0803FF48:
- ldr r0, _0803FF84 @ =gBaseStats
- lsls r1, r5, 3
- subs r1, r5
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0xB]
-_0803FF54:
- lsls r0, 28
-_0803FF56:
- lsrs r0, 30
-_0803FF58:
- adds r4, r0, 0
- muls r4, r2
-_0803FF5C:
- mov r0, r8
- movs r1, 0xC
- movs r2, 0
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xAF
- bne _0803FFA8
- ldr r0, _0803FF88 @ =gMain
- ldr r1, _0803FF8C @ =0x0000043d
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0803FF94
- ldr r0, _0803FF90 @ =gEnigmaBerries
- ldrb r0, [r0, 0x7]
- b _0803FFB0
- .align 2, 0
-_0803FF84: .4byte gBaseStats
-_0803FF88: .4byte gMain
-_0803FF8C: .4byte 0x0000043d
-_0803FF90: .4byte gEnigmaBerries
-_0803FF94:
- ldr r0, _0803FFA0 @ =gSaveBlock1
- ldr r2, _0803FFA4 @ =0x00003688
- adds r0, r2
- ldrb r0, [r0]
- b _0803FFB0
- .align 2, 0
-_0803FFA0: .4byte gSaveBlock1
-_0803FFA4: .4byte 0x00003688
-_0803FFA8:
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r0, 24
-_0803FFB0:
- cmp r0, 0x18
- bne _0803FFB8
- lsls r0, r4, 17
- lsrs r4, r0, 16
-_0803FFB8:
- lsls r0, r4, 16
- asrs r2, r0, 16
- adds r1, r7, r2
- movs r0, 0xFF
- lsls r0, 1
- cmp r1, r0
- ble _0803FFD0
- adds r0, r2, r0
- adds r1, r7, r4
- subs r0, r1
- lsls r0, 16
- lsrs r4, r0, 16
-_0803FFD0:
- mov r0, sp
- adds r2, r0, r6
- ldrb r3, [r2]
- lsls r0, r4, 16
- asrs r1, r0, 16
- adds r0, r3, r1
- cmp r0, 0xFF
- ble _0803FFEC
- adds r0, r1, 0
- adds r0, 0xFF
- adds r1, r3, r4
- subs r0, r1
- lsls r0, 16
- lsrs r4, r0, 16
-_0803FFEC:
- adds r0, r3, r4
- strb r0, [r2]
- adds r0, r7, r4
- lsls r0, 16
- lsrs r7, r0, 16
- adds r1, r6, 0
- adds r1, 0x1A
- mov r0, r8
- bl SetMonData
- adds r6, 0x1
- cmp r6, 0x5
- bgt _0804000E
-_08040006:
- ldr r0, _0804001C @ =0x000001fd
- cmp r7, r0
- bhi _0804000E
- b _0803FEA8
-_0804000E:
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0804001C: .4byte 0x000001fd
- thumb_func_end MonGainEVs
-
- thumb_func_start GetMonEVCount
-GetMonEVCount: @ 8040020
- push {r4-r6,lr}
- adds r6, r0, 0
- movs r5, 0
- movs r4, 0
-_08040028:
- adds r1, r4, 0
- adds r1, 0x1A
- adds r0, r6, 0
- movs r2, 0
- bl GetMonData
- adds r0, r5, r0
- lsls r0, 16
- lsrs r5, r0, 16
- adds r4, 0x1
- cmp r4, 0x5
- ble _08040028
- adds r0, r5, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end GetMonEVCount
-
- thumb_func_start RandomlyGivePartyPokerus
-RandomlyGivePartyPokerus: @ 8040048
- push {r4-r6,lr}
- sub sp, 0x4
- adds r6, r0, 0
- bl Random
- lsls r0, 16
- lsrs r5, r0, 16
- movs r0, 0x80
- lsls r0, 7
- cmp r5, r0
- beq _0804006E
- movs r0, 0x80
- lsls r0, 8
- cmp r5, r0
- beq _0804006E
- movs r0, 0xC0
- lsls r0, 8
- cmp r5, r0
- bne _08040104
-_0804006E:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x6
- bl __umodsi3
- lsls r0, 16
- lsrs r5, r0, 16
- movs r0, 0x64
- muls r0, r5
- adds r4, r6, r0
- adds r0, r4, 0
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- cmp r0, 0
- beq _0804006E
- adds r0, r4, 0
- movs r1, 0x2D
- movs r2, 0
- bl GetMonData
- cmp r0, 0
- bne _0804006E
- ldr r1, _0804010C @ =gBitTable
- lsls r0, r5, 2
- adds r0, r1
- ldrb r1, [r0]
- adds r0, r6, 0
- bl CheckPartyHasHadPokerus
- lsls r0, 24
- cmp r0, 0
- bne _08040104
- mov r4, sp
-_080400B8:
- bl Random
- lsls r0, 24
- lsrs r0, 24
- strb r0, [r4]
- cmp r0, 0
- beq _080400B8
- movs r0, 0xF0
- mov r1, sp
- ldrb r1, [r1]
- ands r0, r1
- cmp r0, 0
- beq _080400DA
- movs r0, 0x7
- ands r1, r0
- mov r0, sp
- strb r1, [r0]
-_080400DA:
- mov r0, sp
- ldrb r0, [r0]
- lsls r1, r0, 4
- orrs r0, r1
- lsls r0, 24
- lsrs r0, 24
- mov r1, sp
- strb r0, [r1]
- movs r1, 0xF3
- ands r1, r0
- mov r0, sp
- strb r1, [r0]
- adds r1, 0x1
- strb r1, [r0]
- movs r0, 0x64
- muls r0, r5
- adds r0, r6, r0
- movs r1, 0x22
- mov r2, sp
- bl SetMonData
-_08040104:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0804010C: .4byte gBitTable
- thumb_func_end RandomlyGivePartyPokerus
-
- thumb_func_start CheckPartyPokerus
-CheckPartyPokerus: @ 8040110
- push {r4-r7,lr}
- sub sp, 0x4
- adds r7, r0, 0
- lsls r1, 24
- lsrs r4, r1, 24
- movs r3, 0
- movs r6, 0x1
- movs r5, 0
- cmp r4, 0
- beq _08040158
-_08040124:
- movs r0, 0x1
- ands r0, r4
- cmp r0, 0
- beq _0804014C
- movs r0, 0x64
- muls r0, r3
- adds r0, r7, r0
- movs r1, 0x22
- movs r2, 0
- str r3, [sp]
- bl GetMonData
- movs r1, 0xF
- ands r1, r0
- ldr r3, [sp]
- cmp r1, 0
- beq _0804014C
- orrs r5, r6
- lsls r0, r5, 24
- lsrs r5, r0, 24
-_0804014C:
- adds r3, 0x1
- lsls r6, 1
- lsrs r4, 1
- cmp r4, 0
- bne _08040124
- b _0804016C
-_08040158:
- adds r0, r7, 0
- movs r1, 0x22
- movs r2, 0
- bl GetMonData
- movs r1, 0xF
- ands r1, r0
- cmp r1, 0
- beq _0804016C
- movs r5, 0x1
-_0804016C:
- adds r0, r5, 0
- add sp, 0x4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end CheckPartyPokerus
-
- thumb_func_start CheckPartyHasHadPokerus
-CheckPartyHasHadPokerus: @ 8040178
- push {r4-r7,lr}
- sub sp, 0x4
- adds r7, r0, 0
- lsls r1, 24
- lsrs r4, r1, 24
- movs r3, 0
- movs r6, 0x1
- movs r5, 0
- cmp r4, 0
- beq _080401BC
-_0804018C:
- movs r0, 0x1
- ands r0, r4
- cmp r0, 0
- beq _080401B0
- movs r0, 0x64
- muls r0, r3
- adds r0, r7, r0
- movs r1, 0x22
- movs r2, 0
- str r3, [sp]
- bl GetMonData
- ldr r3, [sp]
- cmp r0, 0
- beq _080401B0
- orrs r5, r6
- lsls r0, r5, 24
- lsrs r5, r0, 24
-_080401B0:
- adds r3, 0x1
- lsls r6, 1
- lsrs r4, 1
- cmp r4, 0
- bne _0804018C
- b _080401CC
-_080401BC:
- adds r0, r7, 0
- movs r1, 0x22
- movs r2, 0
- bl GetMonData
- cmp r0, 0
- beq _080401CC
- movs r5, 0x1
-_080401CC:
- adds r0, r5, 0
- add sp, 0x4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end CheckPartyHasHadPokerus
-
- thumb_func_start UpdatePartyPokerusTime
-UpdatePartyPokerusTime: @ 80401D8
- push {r4-r7,lr}
- sub sp, 0x4
- lsls r0, 16
- lsrs r7, r0, 16
- movs r5, 0
- mov r6, sp
-_080401E4:
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _08040224 @ =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- cmp r0, 0
- beq _0804023C
- adds r0, r4, 0
- movs r1, 0x22
- movs r2, 0
- bl GetMonData
- lsls r0, 24
- lsrs r0, 24
- strb r0, [r6]
- movs r1, 0xF
- adds r2, r0, 0
- ands r1, r2
- cmp r1, 0
- beq _0804023C
- cmp r1, r7
- bcc _0804021E
- cmp r7, 0x4
- bls _08040228
-_0804021E:
- movs r0, 0xF0
- ands r0, r2
- b _0804022A
- .align 2, 0
-_08040224: .4byte gPlayerParty
-_08040228:
- subs r0, r2, r7
-_0804022A:
- strb r0, [r6]
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0804024C @ =gPlayerParty
- adds r0, r1
- movs r1, 0x22
- mov r2, sp
- bl SetMonData
-_0804023C:
- adds r5, 0x1
- cmp r5, 0x5
- ble _080401E4
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0804024C: .4byte gPlayerParty
- thumb_func_end UpdatePartyPokerusTime
-
- thumb_func_start PartySpreadPokerus
-PartySpreadPokerus: @ 8040250
- push {r4-r7,lr}
- sub sp, 0x4
- adds r7, r0, 0
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- bl __umodsi3
- lsls r0, 16
- cmp r0, 0
- bne _080402F6
- movs r5, 0
-_0804026C:
- movs r0, 0x64
- adds r6, r5, 0
- muls r6, r0
- adds r4, r7, r6
- adds r0, r4, 0
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- cmp r0, 0
- beq _080402F0
- adds r0, r4, 0
- movs r1, 0x22
- movs r2, 0
- bl GetMonData
- lsls r0, 24
- lsrs r1, r0, 24
- mov r0, sp
- strb r1, [r0]
- cmp r1, 0
- beq _080402F0
- movs r0, 0xF
- ands r0, r1
- cmp r0, 0
- beq _080402F0
- cmp r5, 0
- beq _080402C6
- adds r0, r6, 0
- subs r0, 0x64
- adds r4, r7, r0
- adds r0, r4, 0
- movs r1, 0x22
- movs r2, 0
- bl GetMonData
- movs r1, 0xF0
- ands r1, r0
- cmp r1, 0
- bne _080402C6
- adds r0, r4, 0
- movs r1, 0x22
- mov r2, sp
- bl SetMonData
-_080402C6:
- cmp r5, 0x5
- beq _080402F0
- movs r0, 0x64
- muls r0, r5
- adds r0, 0x64
- adds r4, r7, r0
- adds r0, r4, 0
- movs r1, 0x22
- movs r2, 0
- bl GetMonData
- movs r1, 0xF0
- ands r1, r0
- cmp r1, 0
- bne _080402F0
- adds r0, r4, 0
- movs r1, 0x22
- mov r2, sp
- bl SetMonData
- adds r5, 0x1
-_080402F0:
- adds r5, 0x1
- cmp r5, 0x5
- ble _0804026C
-_080402F6:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end PartySpreadPokerus
-
- thumb_func_start TryIncrementMonLevel
-TryIncrementMonLevel: @ 8040300
- push {r4-r6,lr}
- sub sp, 0x4
- adds r6, r0, 0
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r6, 0
- movs r1, 0x38
- movs r2, 0
- bl GetMonData
- adds r0, 0x1
- mov r1, sp
- strb r0, [r1]
- adds r0, r6, 0
- movs r1, 0x19
- movs r2, 0
- bl GetMonData
- ldr r5, _08040358 @ =gExperienceTables
- mov r1, sp
- ldrb r2, [r1]
- lsls r2, 2
- ldr r3, _0804035C @ =gBaseStats
- lsls r1, r4, 3
- subs r1, r4
- lsls r1, 2
- adds r1, r3
- ldrb r3, [r1, 0x13]
- movs r1, 0xCA
- lsls r1, 1
- muls r1, r3
- adds r2, r1
- adds r2, r5
- ldr r1, [r2]
- cmp r0, r1
- bhi _08040360
- movs r0, 0
- b _0804036C
- .align 2, 0
-_08040358: .4byte gExperienceTables
-_0804035C: .4byte gBaseStats
-_08040360:
- adds r0, r6, 0
- movs r1, 0x38
- mov r2, sp
- bl SetMonData
- movs r0, 0x1
-_0804036C:
- add sp, 0x4
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end TryIncrementMonLevel
-
- thumb_func_start CanMonLearnTMHM
-CanMonLearnTMHM: @ 8040374
- push {r4,r5,lr}
- lsls r1, 24
- lsrs r4, r1, 24
- adds r5, r4, 0
- movs r1, 0x41
- movs r2, 0
- bl GetMonData
- lsls r0, 16
- lsrs r1, r0, 16
- adds r3, r1, 0
- movs r0, 0xCE
- lsls r0, 1
- cmp r1, r0
- bne _08040396
- movs r0, 0
- b _080403C2
-_08040396:
- cmp r4, 0x1F
- bls _080403B4
- adds r0, r4, 0
- subs r0, 0x20
- movs r2, 0x1
- lsls r2, r0
- ldr r0, _080403B0 @ =gTMHMLearnsets
- lsls r1, 3
- adds r0, 0x4
- adds r1, r0
- ldr r0, [r1]
- ands r0, r2
- b _080403C2
- .align 2, 0
-_080403B0: .4byte gTMHMLearnsets
-_080403B4:
- movs r1, 0x1
- lsls r1, r5
- ldr r2, _080403C8 @ =gTMHMLearnsets
- lsls r0, r3, 3
- adds r0, r2
- ldr r0, [r0]
- ands r0, r1
-_080403C2:
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_080403C8: .4byte gTMHMLearnsets
- thumb_func_end CanMonLearnTMHM
-
- thumb_func_start sub_80403CC
-sub_80403CC: @ 80403CC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x18
- adds r6, r0, 0
- str r1, [sp, 0x8]
- movs r0, 0
- mov r10, r0
- adds r0, r6, 0
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- lsls r0, 16
- lsrs r7, r0, 16
- adds r0, r6, 0
- movs r1, 0x38
- movs r2, 0
- bl GetMonData
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0xC]
- movs r5, 0
- mov r4, sp
-_08040402:
- adds r1, r5, 0
- adds r1, 0xD
- adds r0, r6, 0
- movs r2, 0
- bl GetMonData
- strh r0, [r4]
- adds r4, 0x2
- adds r5, 0x1
- cmp r5, 0x3
- ble _08040402
- movs r5, 0
- ldr r6, _08040510 @ =gLevelUpLearnsets
- lsls r1, r7, 2
- adds r2, r1, r6
- ldr r3, [r2]
- ldrh r0, [r3]
- ldr r4, _08040514 @ =0x0000ffff
- str r1, [sp, 0x14]
- cmp r0, r4
- beq _080404FC
- mov r9, r2
- str r3, [sp, 0x10]
-_08040430:
- lsls r2, r5, 1
- ldr r1, [sp, 0x10]
- adds r0, r2, r1
- ldrh r3, [r0]
- movs r0, 0xFE
- lsls r0, 8
- ands r0, r3
- ldr r4, [sp, 0xC]
- lsls r1, r4, 9
- adds r7, r2, 0
- adds r5, 0x1
- mov r12, r5
- cmp r0, r1
- bgt _080404E6
- movs r4, 0
- mov r0, sp
- ldrh r1, [r0]
- ldr r0, _08040518 @ =0x000001ff
- ands r0, r3
- cmp r1, r0
- beq _08040480
- ldr r0, [sp, 0x14]
- ldr r1, _08040510 @ =gLevelUpLearnsets
- adds r6, r0, r1
- ldr r2, _08040518 @ =0x000001ff
- mov r8, r2
- mov r3, sp
- adds r5, r7, 0
-_08040468:
- adds r3, 0x2
- adds r4, 0x1
- cmp r4, 0x3
- bgt _08040480
- ldr r0, [r6]
- adds r0, r5, r0
- ldrh r1, [r0]
- ldrh r2, [r3]
- mov r0, r8
- ands r0, r1
- cmp r2, r0
- bne _08040468
-_08040480:
- cmp r4, 0x4
- bne _080404E6
- movs r4, 0
- cmp r4, r10
- bge _080404C4
- mov r1, r9
- ldr r0, [r1]
- adds r0, r7, r0
- ldrh r1, [r0]
- ldr r0, [sp, 0x8]
- ldrh r2, [r0]
- ldr r0, _08040518 @ =0x000001ff
- ands r0, r1
- cmp r2, r0
- beq _080404C4
- ldr r1, [sp, 0x14]
- ldr r2, _08040510 @ =gLevelUpLearnsets
- adds r6, r1, r2
- ldr r0, _08040518 @ =0x000001ff
- mov r8, r0
- ldr r3, [sp, 0x8]
- adds r5, r7, 0
-_080404AC:
- adds r3, 0x2
- adds r4, 0x1
- cmp r4, r10
- bge _080404C4
- ldr r0, [r6]
- adds r0, r5, r0
- ldrh r1, [r0]
- ldrh r2, [r3]
- mov r0, r8
- ands r0, r1
- cmp r2, r0
- bne _080404AC
-_080404C4:
- cmp r4, r10
- bne _080404E6
- mov r0, r10
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- lsls r2, r4, 1
- ldr r1, [sp, 0x8]
- adds r2, r1
- mov r4, r9
- ldr r0, [r4]
- adds r0, r7, r0
- ldrh r1, [r0]
- ldr r0, _08040518 @ =0x000001ff
- ands r0, r1
- strh r0, [r2]
-_080404E6:
- mov r5, r12
- cmp r5, 0x13
- bgt _080404FC
- mov r1, r9
- ldr r0, [r1]
- lsls r1, r5, 1
- adds r1, r0
- ldrh r0, [r1]
- ldr r2, _08040514 @ =0x0000ffff
- cmp r0, r2
- bne _08040430
-_080404FC:
- mov r0, r10
- add sp, 0x18
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08040510: .4byte gLevelUpLearnsets
-_08040514: .4byte 0x0000ffff
-_08040518: .4byte 0x000001ff
- thumb_func_end sub_80403CC
-
- thumb_func_start sub_804051C
-sub_804051C: @ 804051C
- push {r4-r7,lr}
- adds r6, r1, 0
- lsls r0, 16
- movs r5, 0
- movs r4, 0
- ldr r1, _08040568 @ =gLevelUpLearnsets
- lsrs r0, 14
- adds r0, r1
- ldr r2, [r0]
- ldrh r0, [r2]
- ldr r1, _0804056C @ =0x0000ffff
- cmp r0, r1
- beq _08040560
- ldr r0, _08040570 @ =0x000001ff
- mov r12, r0
- adds r7, r1, 0
- adds r3, r2, 0
-_0804053E:
- adds r1, r5, 0
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r1, 1
- adds r1, r6
- ldrh r2, [r3]
- mov r0, r12
- ands r0, r2
- strh r0, [r1]
- adds r3, 0x2
- adds r4, 0x1
- cmp r4, 0x13
- bgt _08040560
- ldrh r0, [r3]
- cmp r0, r7
- bne _0804053E
-_08040560:
- adds r0, r5, 0
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08040568: .4byte gLevelUpLearnsets
-_0804056C: .4byte 0x0000ffff
-_08040570: .4byte 0x000001ff
- thumb_func_end sub_804051C
-
- thumb_func_start sub_8040574
-sub_8040574: @ 8040574
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x3C
- adds r6, r0, 0
- movs r0, 0
- mov r10, r0
- adds r0, r6, 0
- movs r1, 0x41
- movs r2, 0
- bl GetMonData
- lsls r0, 16
- lsrs r4, r0, 16
- adds r0, r6, 0
- movs r1, 0x38
- movs r2, 0
- bl GetMonData
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x30]
- movs r0, 0xCE
- lsls r0, 1
- cmp r4, r0
- bne _080405B0
- movs r0, 0
- b _080406BA
-_080405B0:
- movs r5, 0
- lsls r4, 2
- str r4, [sp, 0x38]
- mov r4, sp
-_080405B8:
- adds r1, r5, 0
- adds r1, 0xD
- adds r0, r6, 0
- movs r2, 0
- bl GetMonData
- strh r0, [r4]
- adds r4, 0x2
- adds r5, 0x1
- cmp r5, 0x3
- ble _080405B8
- movs r5, 0
- ldr r3, _080406CC @ =gLevelUpLearnsets
- ldr r2, [sp, 0x38]
- adds r1, r2, r3
- ldr r0, [r1]
- ldrh r0, [r0]
- ldr r2, _080406D0 @ =0x0000ffff
- cmp r0, r2
- beq _080406B8
- mov r9, r1
- mov r4, sp
- adds r4, 0x8
- str r4, [sp, 0x34]
-_080405E8:
- mov r1, r9
- ldr r0, [r1]
- lsls r2, r5, 1
- adds r0, r2, r0
- ldrh r3, [r0]
- movs r0, 0xFE
- lsls r0, 8
- ands r0, r3
- ldr r4, [sp, 0x30]
- lsls r1, r4, 9
- adds r7, r2, 0
- adds r5, 0x1
- mov r12, r5
- cmp r0, r1
- bgt _080406A2
- movs r4, 0
- mov r0, sp
- ldrh r1, [r0]
- ldr r0, _080406D4 @ =0x000001ff
- ands r0, r3
- cmp r1, r0
- beq _0804063A
- ldr r0, [sp, 0x38]
- ldr r1, _080406CC @ =gLevelUpLearnsets
- adds r6, r0, r1
- ldr r2, _080406D4 @ =0x000001ff
- mov r8, r2
- mov r3, sp
- adds r5, r7, 0
-_08040622:
- adds r3, 0x2
- adds r4, 0x1
- cmp r4, 0x3
- bgt _0804063A
- ldr r0, [r6]
- adds r0, r5, r0
- ldrh r1, [r0]
- ldrh r2, [r3]
- mov r0, r8
- ands r0, r1
- cmp r2, r0
- bne _08040622
-_0804063A:
- cmp r4, 0x4
- bne _080406A2
- movs r4, 0
- cmp r4, r10
- bge _08040680
- mov r1, r9
- ldr r0, [r1]
- adds r0, r7, r0
- ldrh r1, [r0]
- ldr r0, [sp, 0x34]
- ldrh r2, [r0]
- ldr r0, _080406D4 @ =0x000001ff
- ands r0, r1
- add r1, sp, 0x8
- cmp r2, r0
- beq _08040680
- ldr r2, [sp, 0x38]
- ldr r0, _080406CC @ =gLevelUpLearnsets
- adds r6, r2, r0
- ldr r2, _080406D4 @ =0x000001ff
- mov r8, r2
- adds r3, r1, 0
- adds r5, r7, 0
-_08040668:
- adds r3, 0x2
- adds r4, 0x1
- cmp r4, r10
- bge _08040680
- ldr r0, [r6]
- adds r0, r5, r0
- ldrh r1, [r0]
- ldrh r2, [r3]
- mov r0, r8
- ands r0, r1
- cmp r2, r0
- bne _08040668
-_08040680:
- cmp r4, r10
- bne _080406A2
- mov r0, r10
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- lsls r2, r4, 1
- ldr r4, [sp, 0x34]
- adds r2, r4, r2
- mov r1, r9
- ldr r0, [r1]
- adds r0, r7, r0
- ldrh r1, [r0]
- ldr r0, _080406D4 @ =0x000001ff
- ands r0, r1
- strh r0, [r2]
-_080406A2:
- mov r5, r12
- cmp r5, 0x13
- bgt _080406B8
- mov r2, r9
- ldr r0, [r2]
- lsls r1, r5, 1
- adds r1, r0
- ldrh r0, [r1]
- ldr r4, _080406D0 @ =0x0000ffff
- cmp r0, r4
- bne _080405E8
-_080406B8:
- mov r0, r10
-_080406BA:
- add sp, 0x3C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080406CC: .4byte gLevelUpLearnsets
-_080406D0: .4byte 0x0000ffff
-_080406D4: .4byte 0x000001ff
- thumb_func_end sub_8040574
-
- thumb_func_start SpeciesToPokedexNum
-SpeciesToPokedexNum: @ 80406D8
- push {r4,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- bl IsNationalPokedex
- cmp r0, 0
- beq _080406F2
- adds r0, r4, 0
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- b _0804070A
-_080406F2:
- adds r0, r4, 0
- bl SpeciesToHoennPokedexNum
- adds r4, r0, 0
- cmp r4, 0xCA
- bls _08040708
- ldr r0, _08040704 @ =0x0000ffff
- b _0804070A
- .align 2, 0
-_08040704: .4byte 0x0000ffff
-_08040708:
- adds r0, r4, 0
-_0804070A:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end SpeciesToPokedexNum
-
- thumb_func_start sub_8040710
-sub_8040710: @ 8040710
- push {lr}
- ldr r1, _08040724 @ =gUnknown_02024E84
- movs r2, 0
- adds r0, r1, 0x3
-_08040718:
- strb r2, [r0]
- subs r0, 0x1
- cmp r0, r1
- bge _08040718
- pop {r0}
- bx r0
- .align 2, 0
-_08040724: .4byte gUnknown_02024E84
- thumb_func_end sub_8040710
-
- thumb_func_start sub_8040728
-sub_8040728: @ 8040728
- push {lr}
- ldr r0, _0804073C @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x80
- lsls r0, 5
- ands r0, r1
- cmp r0, 0
- beq _08040744
- ldr r0, _08040740 @ =0x000001cf
- b _080408B2
- .align 2, 0
-_0804073C: .4byte gUnknown_020239F8
-_08040740: .4byte 0x000001cf
-_08040744:
- movs r0, 0x80
- lsls r0, 7
- ands r0, r1
- cmp r0, 0
- beq _08040754
- movs r0, 0xE7
- lsls r0, 1
- b _080408B2
-_08040754:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0804075E
- b _080408A8
-_0804075E:
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- bne _08040768
- b _080408B0
-_08040768:
- ldr r3, _0804078C @ =gTrainers
- ldr r2, _08040790 @ =gTrainerBattleOpponent
- ldrh r1, [r2]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r3
- ldrb r0, [r0, 0x1]
- subs r0, 0x2
- cmp r0, 0x31
- bls _08040780
- b _080408A8
-_08040780:
- lsls r0, 2
- ldr r1, _08040794 @ =_08040798
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0804078C: .4byte gTrainers
-_08040790: .4byte gTrainerBattleOpponent
-_08040794: .4byte _08040798
- .align 2, 0
-_08040798:
- .4byte _08040860
- .4byte _08040866
- .4byte _08040866
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A0
- .4byte _0804086C
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _08040872
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _0804087C
- .4byte _080408A8
- .4byte _080408A8
- .4byte _08040860
- .4byte _08040866
- .4byte _08040866
-_08040860:
- movs r0, 0xE9
- lsls r0, 1
- b _080408B2
-_08040866:
- movs r0, 0xE5
- lsls r0, 1
- b _080408B2
-_0804086C:
- movs r0, 0xE6
- lsls r0, 1
- b _080408B2
-_08040872:
- ldr r0, _08040878 @ =0x000001cd
- b _080408B2
- .align 2, 0
-_08040878: .4byte 0x000001cd
-_0804087C:
- ldrh r1, [r2]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- ldr r1, _08040898 @ =gTrainers + 0x4
- adds r0, r1
- ldr r1, _0804089C @ =gUnknown_08400E42
- bl StringCompare
- cmp r0, 0
- beq _080408A8
- movs r0, 0xE8
- lsls r0, 1
- b _080408B2
- .align 2, 0
-_08040898: .4byte gTrainers + 0x4
-_0804089C: .4byte gUnknown_08400E42
-_080408A0:
- ldr r0, _080408A4 @ =0x000001d1
- b _080408B2
- .align 2, 0
-_080408A4: .4byte 0x000001d1
-_080408A8:
- ldr r0, _080408AC @ =0x000001cb
- b _080408B2
- .align 2, 0
-_080408AC: .4byte 0x000001cb
-_080408B0:
- ldr r0, _080408B8 @ =0x000001c9
-_080408B2:
- pop {r1}
- bx r1
- .align 2, 0
-_080408B8: .4byte 0x000001c9
- thumb_func_end sub_8040728
-
- thumb_func_start sub_80408BC
-sub_80408BC: @ 80408BC
- push {lr}
- bl ResetMapMusic
- bl m4aMPlayAllStop
- bl sub_8040728
- lsls r0, 16
- lsrs r0, 16
- bl PlayBGM
- pop {r0}
- bx r0
- thumb_func_end sub_80408BC
-
- thumb_func_start current_map_music_set__default_for_battle
-current_map_music_set__default_for_battle: @ 80408D8
- push {r4,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- bl ResetMapMusic
- bl m4aMPlayAllStop
- cmp r4, 0
- beq _080408F2
- adds r0, r4, 0
- bl PlayNewMapMusic
- b _080408FE
-_080408F2:
- bl sub_8040728
- lsls r0, 16
- lsrs r0, 16
- bl PlayNewMapMusic
-_080408FE:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end current_map_music_set__default_for_battle
-
- thumb_func_start pokemon_get_pal
-pokemon_get_pal: @ 8040904
- push {r4-r6,lr}
- adds r5, r0, 0
- movs r1, 0x41
- movs r2, 0
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- movs r1, 0x1
- movs r2, 0
- bl GetMonData
- adds r6, r0, 0
- adds r0, r5, 0
- movs r1, 0
- movs r2, 0
- bl GetMonData
- adds r2, r0, 0
- adds r0, r4, 0
- adds r1, r6, 0
- bl species_and_otid_get_pal
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end pokemon_get_pal
-
- thumb_func_start species_and_otid_get_pal
-species_and_otid_get_pal: @ 804093C
- push {r4,r5,lr}
- adds r3, r2, 0
- lsls r0, 16
- lsrs r4, r0, 16
- adds r5, r4, 0
- movs r0, 0xCE
- lsls r0, 1
- cmp r4, r0
- bls _08040958
- ldr r0, _08040954 @ =gMonPaletteTable
- ldr r0, [r0]
- b _08040984
- .align 2, 0
-_08040954: .4byte gMonPaletteTable
-_08040958:
- lsrs r0, r1, 16
- ldr r2, _08040974 @ =0x0000ffff
- ands r1, r2
- eors r0, r1
- lsrs r1, r3, 16
- eors r0, r1
- ands r3, r2
- eors r0, r3
- cmp r0, 0x7
- bls _0804097C
- ldr r0, _08040978 @ =gMonPaletteTable
- lsls r1, r4, 3
- b _08040980
- .align 2, 0
-_08040974: .4byte 0x0000ffff
-_08040978: .4byte gMonPaletteTable
-_0804097C:
- ldr r0, _0804098C @ =gMonShinyPaletteTable
- lsls r1, r5, 3
-_08040980:
- adds r1, r0
- ldr r0, [r1]
-_08040984:
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0804098C: .4byte gMonShinyPaletteTable
- thumb_func_end species_and_otid_get_pal
-
- thumb_func_start sub_8040990
-sub_8040990: @ 8040990
- push {r4-r6,lr}
- adds r5, r0, 0
- movs r1, 0x41
- movs r2, 0
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- movs r1, 0x1
- movs r2, 0
- bl GetMonData
- adds r6, r0, 0
- adds r0, r5, 0
- movs r1, 0
- movs r2, 0
- bl GetMonData
- adds r2, r0, 0
- adds r0, r4, 0
- adds r1, r6, 0
- bl sub_80409C8
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_8040990
-
- thumb_func_start sub_80409C8
-sub_80409C8: @ 80409C8
- push {r4,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- lsrs r0, r1, 16
- ldr r3, _080409E8 @ =0x0000ffff
- ands r1, r3
- eors r0, r1
- lsrs r1, r2, 16
- eors r0, r1
- ands r2, r3
- eors r0, r2
- cmp r0, 0x7
- bls _080409F0
- lsls r0, r4, 3
- ldr r1, _080409EC @ =gMonPaletteTable
- b _080409F4
- .align 2, 0
-_080409E8: .4byte 0x0000ffff
-_080409EC: .4byte gMonPaletteTable
-_080409F0:
- lsls r0, r4, 3
- ldr r1, _080409FC @ =gMonShinyPaletteTable
-_080409F4:
- adds r0, r1
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080409FC: .4byte gMonShinyPaletteTable
- thumb_func_end sub_80409C8
-
- thumb_func_start sub_8040A00
-sub_8040A00: @ 8040A00
- push {r4,lr}
- lsls r0, 16
- lsrs r3, r0, 16
- ldr r2, _08040A24 @ =gUnknown_0820831A
- ldrh r0, [r2]
- ldr r1, _08040A28 @ =0x0000ffff
- cmp r0, r1
- beq _08040A32
- adds r4, r1, 0
- adds r1, r2, 0
-_08040A14:
- ldrh r0, [r2]
- adds r1, 0x2
- adds r2, 0x2
- cmp r0, r3
- bne _08040A2C
- movs r0, 0x1
- b _08040A34
- .align 2, 0
-_08040A24: .4byte gUnknown_0820831A
-_08040A28: .4byte 0x0000ffff
-_08040A2C:
- ldrh r0, [r1]
- cmp r0, r4
- bne _08040A14
-_08040A32:
- movs r0, 0
-_08040A34:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8040A00
-
- thumb_func_start sub_8040A3C
-sub_8040A3C: @ 8040A3C
- lsls r0, 16
- lsrs r0, 16
- ldr r2, _08040A50 @ =gBaseStats
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r0, [r1, 0x19]
- lsrs r0, 7
- bx lr
- .align 2, 0
-_08040A50: .4byte gBaseStats
- thumb_func_end sub_8040A3C
-
- thumb_func_start sub_8040A54
-sub_8040A54: @ 8040A54
- push {r4,lr}
- lsls r4, r1, 24
- lsrs r4, 24
- bl GetNature
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08040A78 @ =gUnknown_083F7E28
- lsls r1, r0, 2
- adds r1, r0
- adds r1, r4
- adds r1, r2
- movs r0, 0
- ldrsb r0, [r1, r0]
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08040A78: .4byte gUnknown_083F7E28
- thumb_func_end sub_8040A54
-
- thumb_func_start sub_8040A7C
-sub_8040A7C: @ 8040A7C
- push {r4,lr}
- lsls r4, r1, 24
- lsrs r4, 24
- bl GetNatureFromPersonality
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08040AA0 @ =gUnknown_083F7E28
- lsls r1, r0, 2
- adds r1, r0
- adds r1, r4
- adds r1, r2
- movs r0, 0
- ldrsb r0, [r1, r0]
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08040AA0: .4byte gUnknown_083F7E28
- thumb_func_end sub_8040A7C
-
- thumb_func_start sub_8040AA4
-sub_8040AA4: @ 8040AA4
- push {r4,lr}
- sub sp, 0x8
- adds r4, r0, 0
- movs r1, 0x7
- mov r2, sp
- bl GetMonData
- adds r0, r4, 0
- movs r1, 0x1
- movs r2, 0
- bl GetMonData
- mov r1, sp
- bl sub_8040AD0
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x8
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8040AA4
-
- thumb_func_start sub_8040AD0
-sub_8040AD0: @ 8040AD0
- push {r4,r5,lr}
- adds r5, r1, 0
- ldr r3, _08040B10 @ =gSaveBlock2
- ldrb r2, [r3, 0xA]
- ldrb r1, [r3, 0xB]
- lsls r1, 8
- orrs r2, r1
- ldrb r1, [r3, 0xC]
- lsls r1, 16
- orrs r2, r1
- ldrb r1, [r3, 0xD]
- lsls r1, 24
- orrs r2, r1
- cmp r0, r2
- bne _08040B14
- movs r4, 0
- ldrb r0, [r5]
- cmp r0, 0xFF
- beq _08040B0C
- adds r2, r5, 0
-_08040AF8:
- adds r1, r4, r3
- ldrb r0, [r2]
- ldrb r1, [r1]
- cmp r0, r1
- bne _08040B14
- adds r2, 0x1
- adds r4, 0x1
- ldrb r0, [r2]
- cmp r0, 0xFF
- bne _08040AF8
-_08040B0C:
- movs r0, 0
- b _08040B16
- .align 2, 0
-_08040B10: .4byte gSaveBlock2
-_08040B14:
- movs r0, 0x1
-_08040B16:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8040AD0
-
- thumb_func_start sub_8040B1C
-sub_8040B1C: @ 8040B1C
- push {lr}
- bl pokemon_restore_pp
- pop {r0}
- bx r0
- thumb_func_end sub_8040B1C
-
- thumb_func_start pokemon_restore_pp
-pokemon_restore_pp: @ 8040B28
- push {r4-r6,lr}
- sub sp, 0x4
- adds r5, r0, 0
- movs r6, 0
-_08040B30:
- adds r4, r6, 0
- adds r4, 0xD
- adds r0, r5, 0
- adds r1, r4, 0
- movs r2, 0
- bl GetBoxMonData
- cmp r0, 0
- beq _08040B7C
- adds r0, r5, 0
- adds r1, r4, 0
- movs r2, 0
- bl GetBoxMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- movs r1, 0x15
- movs r2, 0
- bl GetBoxMonData
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- lsls r2, r6, 24
- lsrs r2, 24
- adds r0, r4, 0
- bl CalculatePPWithBonus
- mov r1, sp
- strb r0, [r1]
- adds r1, r6, 0
- adds r1, 0x11
- adds r0, r5, 0
- mov r2, sp
- bl SetBoxMonData
-_08040B7C:
- adds r6, 0x1
- cmp r6, 0x3
- ble _08040B30
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end pokemon_restore_pp
-
- thumb_func_start sub_8040B8C
-sub_8040B8C: @ 8040B8C
- push {r4,r5,lr}
- ldr r1, _08040BCC @ =byte_2024C06
- ldr r2, _08040BD0 @ =0x02000000
- ldr r3, _08040BD4 @ =0x000160c0
- adds r0, r2, r3
- ldrb r0, [r0]
- strb r0, [r1]
- ldr r5, _08040BD8 @ =gUnknown_030041C0
- movs r0, 0xFD
- strb r0, [r5]
- movs r0, 0x4
- strb r0, [r5, 0x1]
- ldr r0, _08040BDC @ =0x00016054
- adds r4, r2, r0
- ldrb r0, [r4]
- strb r0, [r5, 0x2]
- movs r0, 0xFF
- strb r0, [r5, 0x4]
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _08040BE4
- ldr r1, _08040BE0 @ =gUnknown_02024A6A
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r1
- ldrb r0, [r0]
- bl pokemon_order_func
- b _08040BEE
- .align 2, 0
-_08040BCC: .4byte byte_2024C06
-_08040BD0: .4byte 0x02000000
-_08040BD4: .4byte 0x000160c0
-_08040BD8: .4byte gUnknown_030041C0
-_08040BDC: .4byte 0x00016054
-_08040BE0: .4byte gUnknown_02024A6A
-_08040BE4:
- ldr r0, _08040C24 @ =gUnknown_02024A6A
- ldrb r1, [r4]
- lsls r1, 1
- adds r1, r0
- ldrh r0, [r1]
-_08040BEE:
- strb r0, [r5, 0x3]
- ldr r4, _08040C28 @ =gUnknown_03004290
- movs r0, 0xFD
- strb r0, [r4]
- movs r0, 0x4
- strb r0, [r4, 0x1]
- ldr r1, _08040C2C @ =gUnknown_02024E6C
- ldrb r0, [r1]
- strb r0, [r4, 0x2]
- ldr r2, _08040C24 @ =gUnknown_02024A6A
- ldrb r0, [r1]
- lsls r0, 1
- adds r0, r2
- ldrb r0, [r0]
- bl pokemon_order_func
- strb r0, [r4, 0x3]
- movs r0, 0xFF
- strb r0, [r4, 0x4]
- ldr r0, _08040C30 @ =gUnknown_083FFCCA
- ldr r1, _08040C34 @ =gStringVar4
- bl sub_8120FFC
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08040C24: .4byte gUnknown_02024A6A
-_08040C28: .4byte gUnknown_03004290
-_08040C2C: .4byte gUnknown_02024E6C
-_08040C30: .4byte gUnknown_083FFCCA
-_08040C34: .4byte gStringVar4
- thumb_func_end sub_8040B8C
-
- thumb_func_start sub_8040C38
-sub_8040C38: @ 8040C38
- push {r4,r5,lr}
- ldr r0, _08040C90 @ =gUnknown_020239F8
- ldrh r1, [r0]
- ldr r0, _08040C94 @ =0x00002008
- ands r0, r1
- cmp r0, 0
- bne _08040CAC
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- bl __umodsi3
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r4, _08040C98 @ =gEnemyParty
- adds r0, r4, 0
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- ldr r2, _08040C9C @ =gBaseStats
- lsls r1, r0, 3
- subs r1, r0
- lsls r3, r1, 2
- adds r1, r3, r2
- ldrh r0, [r1, 0xC]
- ldrh r1, [r1, 0xE]
- cmp r0, r1
- beq _08040C82
- cmp r5, 0x2C
- bls _08040CAC
- cmp r5, 0x5E
- bhi _08040CA0
-_08040C82:
- adds r2, 0xC
- adds r2, r3, r2
- adds r0, r4, 0
- movs r1, 0xC
- bl SetMonData
- b _08040CAC
- .align 2, 0
-_08040C90: .4byte gUnknown_020239F8
-_08040C94: .4byte 0x00002008
-_08040C98: .4byte gEnemyParty
-_08040C9C: .4byte gBaseStats
-_08040CA0:
- adds r2, 0xE
- adds r2, r3, r2
- adds r0, r4, 0
- movs r1, 0xC
- bl SetMonData
-_08040CAC:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8040C38
-
- thumb_func_start sub_8040CB4
-sub_8040CB4: @ 8040CB4
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x1
- movs r2, 0
- bl GetMonData
- adds r5, r0, 0
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0
- bl GetMonData
- adds r1, r0, 0
- adds r0, r5, 0
- bl sub_8040CE0
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8040CB4
-
- thumb_func_start sub_8040CE0
-sub_8040CE0: @ 8040CE0
- push {r4,lr}
- movs r4, 0
- lsrs r2, r0, 16
- ldr r3, _08040D04 @ =0x0000ffff
- ands r0, r3
- eors r2, r0
- lsrs r0, r1, 16
- eors r2, r0
- ands r1, r3
- eors r2, r1
- cmp r2, 0x7
- bhi _08040CFA
- movs r4, 0x1
-_08040CFA:
- adds r0, r4, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08040D04: .4byte 0x0000ffff
- thumb_func_end sub_8040CE0
-
- thumb_func_start sub_8040D08
-sub_8040D08: @ 8040D08
- push {r4,lr}
- bl GetMultiplayerId
- lsls r0, 24
- lsrs r0, 24
- ldr r4, _08040D38 @ =gLinkPlayers
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r4
- ldrh r1, [r1, 0x18]
- movs r0, 0x2
- eors r0, r1
- bl sub_803FC34
- adds r1, r0, 0
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r4, 0x8
- adds r0, r4
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08040D38: .4byte gLinkPlayers
- thumb_func_end sub_8040D08
-
- thumb_func_start sub_8040D3C
-sub_8040D3C: @ 8040D3C
- push {r4,lr}
- adds r4, r1, 0
- lsls r0, 16
- lsrs r1, r0, 16
- adds r0, r1, 0
- lsls r2, 24
- lsrs r2, 24
- movs r3, 0
- cmp r1, 0x20
- beq _08040D54
- cmp r1, 0x1D
- bne _08040D7E
-_08040D54:
- cmp r2, 0x2
- bne _08040D68
- movs r0, 0xB
- muls r1, r0
- ldr r0, _08040D64 @ =gSpeciesNames
- adds r1, r0
- b _08040D70
- .align 2, 0
-_08040D64: .4byte gSpeciesNames
-_08040D68:
- ldr r1, _08040D88 @ =gUnknown_08208337
- cmp r0, 0x20
- bne _08040D70
- subs r1, 0xB
-_08040D70:
- adds r0, r4, 0
- bl StringCompareWithoutExtCtrlCodes
- movs r3, 0
- cmp r0, 0
- bne _08040D7E
- movs r3, 0x1
-_08040D7E:
- adds r0, r3, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08040D88: .4byte gUnknown_08208337
- thumb_func_end sub_8040D3C
-
- thumb_func_start sub_8040D8C
-sub_8040D8C: @ 8040D8C
- push {lr}
- lsls r0, 16
- lsrs r3, r0, 16
- movs r2, 0x2
- ldrb r0, [r1]
- cmp r0, 0xFC
- bne _08040DA2
- ldrb r0, [r1, 0x1]
- cmp r0, 0x15
- bne _08040DA2
- movs r2, 0x1
-_08040DA2:
- adds r0, r3, 0
- bl sub_8040D3C
- pop {r1}
- bx r1
- thumb_func_end sub_8040D8C
-
- thumb_func_start unref_sub_8040DAC
-unref_sub_8040DAC: @ 8040DAC
- push {r4-r6,lr}
- sub sp, 0xC
- adds r6, r0, 0
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- adds r5, r0, 0
- lsls r5, 16
- lsrs r5, 16
- adds r0, r6, 0
- movs r1, 0x3
- movs r2, 0
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r6, 0
- movs r1, 0x2
- mov r2, sp
- bl GetMonData
- adds r0, r5, 0
- mov r1, sp
- adds r2, r4, 0
- bl sub_8040D3C
- add sp, 0xC
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end unref_sub_8040DAC
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/rom_804373C.s b/asm/rom_804373C.s
index a134237f1..b84342e18 100644
--- a/asm/rom_804373C.s
+++ b/asm/rom_804373C.s
@@ -275,7 +275,7 @@ battle_make_oam_normal_battle: @ 8043914
mov r10, r0
movs r0, 0
str r0, [sp]
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
bne _08043A28
@@ -1060,7 +1060,7 @@ sub_8043F44: @ 8043F44
lsrs r6, r0, 24
movs r5, 0
movs r4, 0
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
bne _08043F70
@@ -1135,7 +1135,7 @@ sub_8043FC0: @ 8043FC0
mov r0, sp
movs r2, 0x1E
bl memcpy
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
bne _08044010
@@ -1291,7 +1291,7 @@ sub_80440EC: @ 80440EC
adds r4, r0, r1
movs r0, 0x3A
ldrsh r5, [r4, r0]
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -1854,7 +1854,7 @@ _0804458E:
bne _080445A2
b _080447D4
_080445A2:
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
bne _080445BA
@@ -1890,13 +1890,13 @@ _080445BA:
lsls r0, 24
cmp r0, 0
bne _080446DC
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
bne _080445FA
b _080447D4
_080445FA:
- ldr r0, _08044684 @ =gUnknown_020239F8
+ ldr r0, _08044684 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x80
ands r0, r1
@@ -1958,7 +1958,7 @@ _08044674: .4byte gUnknown_02024A6A
_08044678: .4byte gUnknown_03004340
_0804467C: .4byte SpriteCallbackDummy
_08044680: .4byte 0x02017800
-_08044684: .4byte gUnknown_020239F8
+_08044684: .4byte gBattleTypeFlags
_08044688: .4byte 0x06010000
_0804468C: .4byte 0x05000040
_08044690: .4byte gPlayerParty
@@ -1996,7 +1996,7 @@ _080446D8: .4byte REG_BG0CNT
_080446DC:
cmp r6, 0x1
bne _0804478C
- ldr r0, _08044704 @ =gUnknown_020239F8
+ ldr r0, _08044704 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x80
ands r0, r1
@@ -2014,7 +2014,7 @@ _080446DC:
bl sub_8044338
b _080447BE
.align 2, 0
-_08044704: .4byte gUnknown_020239F8
+_08044704: .4byte gBattleTypeFlags
_08044708: .4byte gEnemyParty
_0804470C:
ldrb r1, [r5]
@@ -2085,7 +2085,7 @@ _0804478C:
adds r1, r4
movs r2, 0x5
bl sub_8045A5C
- ldr r0, _080447F8 @ =gUnknown_020239F8
+ ldr r0, _080447F8 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x80
ands r0, r1
@@ -2129,7 +2129,7 @@ _080447E4:
bx r0
.align 2, 0
_080447F4: .4byte gEnemyParty
-_080447F8: .4byte gUnknown_020239F8
+_080447F8: .4byte gBattleTypeFlags
_080447FC: .4byte gUnknown_03004340
_08044800: .4byte gUnknown_02024A68
thumb_func_end sub_804454C
@@ -2178,7 +2178,7 @@ _08044854:
movs r7, 0x1
cmp r4, 0
beq _08044864
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
bne _0804486A
@@ -2448,7 +2448,7 @@ _08044A76:
cmp r0, 0
bne _08044B5E
movs r6, 0
- ldr r5, _08044AC8 @ =gUnknown_020239F8
+ ldr r5, _08044AC8 @ =gBattleTypeFlags
mov r10, r5
ldr r0, _08044ACC @ =0x0000ffff
mov r9, r0
@@ -2483,7 +2483,7 @@ _08044A9A:
b _08044B46
.align 2, 0
_08044AC4: .4byte 0x0000ff88
-_08044AC8: .4byte gUnknown_020239F8
+_08044AC8: .4byte gBattleTypeFlags
_08044ACC: .4byte 0x0000ffff
_08044AD0: .4byte gSprites
_08044AD4: .4byte 0x000003ff
@@ -2561,7 +2561,7 @@ _08044B52:
b _08044C38
_08044B5E:
movs r6, 0
- ldr r1, _08044BA4 @ =gUnknown_020239F8
+ ldr r1, _08044BA4 @ =gBattleTypeFlags
mov r10, r1
ldr r2, _08044BA8 @ =0x0000ffff
mov r9, r2
@@ -2596,7 +2596,7 @@ _08044B78:
adds r1, 0x3
b _08044C22
.align 2, 0
-_08044BA4: .4byte gUnknown_020239F8
+_08044BA4: .4byte gBattleTypeFlags
_08044BA8: .4byte 0x0000ffff
_08044BAC: .4byte gSprites
_08044BB0: .4byte 0x000003ff
@@ -3630,7 +3630,7 @@ _0804535A:
lsls r0, 24
cmp r0, 0
bne _080453D4
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
bne _080453D4
@@ -3748,7 +3748,7 @@ sub_8045458: @ 8045458
lsrs r2, r0, 24
lsls r1, 24
lsrs r7, r1, 24
- ldr r0, _080454F4 @ =gUnknown_020239F8
+ ldr r0, _080454F4 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x80
lsls r0, 2
@@ -3815,7 +3815,7 @@ sub_8045458: @ 8045458
bl CpuSet
b _0804552E
.align 2, 0
-_080454F4: .4byte gUnknown_020239F8
+_080454F4: .4byte gBattleTypeFlags
_080454F8: .4byte gSprites
_080454FC: .4byte gUnknown_02024A6A
_08045500: .4byte gEnemyParty
@@ -3887,7 +3887,7 @@ draw_status_ailment_maybe: @ 8045540
movs r1, 0x37
bl GetMonData
adds r4, r0, 0
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
movs r3, 0x12
mov r8, r3
@@ -4092,7 +4092,7 @@ _080456FC:
ldr r2, _080457DC @ =REG_BG2HOFS
adds r0, r6, 0
bl CpuSet
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -4556,7 +4556,7 @@ _08045AEE:
movs r3, 0
bl sub_8045C78
_08045B22:
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
lsrs r0, 24
str r0, [sp, 0x4]
@@ -4767,7 +4767,7 @@ _08045CBC:
ldr r1, [r6, 0xC]
ldr r2, [r6, 0x4]
movs r3, 0x8
- bl sub_8046188
+ bl GetScaledExpFraction
lsls r0, 24
lsrs r5, r0, 24
cmp r5, 0
@@ -5400,8 +5400,8 @@ _08046154:
bx r0
thumb_func_end sub_8046128
- thumb_func_start sub_8046188
-sub_8046188: @ 8046188
+ thumb_func_start GetScaledExpFraction
+GetScaledExpFraction: @ 8046188
push {r4-r7,lr}
adds r6, r2, 0
lsls r3, 27
@@ -5440,10 +5440,10 @@ _080461C8:
pop {r4-r7}
pop {r1}
bx r1
- thumb_func_end sub_8046188
+ thumb_func_end GetScaledExpFraction
- thumb_func_start sub_80461D4
-sub_80461D4: @ 80461D4
+ thumb_func_start GetScaledHPFraction
+GetScaledHPFraction: @ 80461D4
push {r4,lr}
lsls r2, 24
lsrs r2, 24
@@ -5465,10 +5465,10 @@ _080461F8:
pop {r4}
pop {r1}
bx r1
- thumb_func_end sub_80461D4
+ thumb_func_end GetScaledHPFraction
- thumb_func_start sub_8046200
-sub_8046200: @ 8046200
+ thumb_func_start GetHPBarLevel
+GetHPBarLevel: @ 8046200
push {lr}
lsls r0, 16
asrs r0, 16
@@ -5480,7 +5480,7 @@ sub_8046200: @ 8046200
b _0804622E
_08046212:
movs r2, 0x30
- bl sub_80461D4
+ bl GetScaledHPFraction
lsls r0, 24
lsrs r1, r0, 24
movs r0, 0x3
@@ -5495,3001 +5495,6 @@ _08046212:
_0804622E:
pop {r1}
bx r1
- thumb_func_end sub_8046200
-
- thumb_func_start sub_8046234
-sub_8046234: @ 8046234
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 16
- lsrs r6, r0, 16
- lsls r1, 16
- lsrs r7, r1, 16
- lsls r2, 24
- lsrs r4, r2, 24
- ldr r5, _0804636C @ =gUnknown_081FAEA4
- ldrh r0, [r5, 0x6]
- bl GetSpriteTileStartByTag
- lsls r0, 16
- ldr r1, _08046370 @ =0xffff0000
- cmp r0, r1
- bne _08046266
- adds r0, r5, 0
- bl LoadCompressedObjectPic
- ldr r0, _08046374 @ =gUnknown_081FAEAC
- bl LoadCompressedObjectPalette
-_08046266:
- ldr r0, _08046378 @ =sub_8046388
- bl object_new_hidden_with_callback
- mov r8, r0
- mov r0, r8
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r5, r0, 4
- add r5, r8
- lsls r5, 2
- ldr r0, _0804637C @ =gSprites
- adds r5, r0
- strh r4, [r5, 0x30]
- ldr r0, _08046380 @ =gSpriteTemplate_81FAF0C
- mov r9, r0
- lsls r6, 16
- asrs r0, r6, 16
- mov r10, r0
- ldr r0, _08046384 @ =0xfff00000
- adds r6, r0
- asrs r6, 16
- lsls r4, r7, 16
- asrs r7, r4, 16
- adds r4, r0
- asrs r4, 16
- mov r0, r9
- adds r1, r6, 0
- adds r2, r4, 0
- movs r3, 0x2
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- ldr r0, _0804637C @ =gSprites
- adds r1, r0
- mov r0, r8
- strh r0, [r1, 0x2E]
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- adds r0, r1, 0
- bl AnimateSprite
- mov r0, r9
- mov r1, r10
- adds r2, r4, 0
- movs r3, 0x2
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- ldr r0, _0804637C @ =gSprites
- adds r4, r0
- mov r0, r8
- strh r0, [r4, 0x2E]
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAnim
- adds r0, r4, 0
- bl AnimateSprite
- mov r0, r9
- adds r1, r6, 0
- adds r2, r7, 0
- movs r3, 0x2
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- ldr r0, _0804637C @ =gSprites
- adds r4, r0
- mov r0, r8
- strh r0, [r4, 0x2E]
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- adds r0, r4, 0
- movs r1, 0x2
- bl StartSpriteAnim
- adds r0, r4, 0
- bl AnimateSprite
- mov r0, r9
- mov r1, r10
- adds r2, r7, 0
- movs r3, 0x2
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- ldr r0, _0804637C @ =gSprites
- adds r4, r0
- mov r0, r8
- strh r0, [r4, 0x2E]
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- adds r0, r4, 0
- movs r1, 0x3
- bl StartSpriteAnim
- adds r0, r4, 0
- bl AnimateSprite
- mov r0, r8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0804636C: .4byte gUnknown_081FAEA4
-_08046370: .4byte 0xffff0000
-_08046374: .4byte gUnknown_081FAEAC
-_08046378: .4byte sub_8046388
-_0804637C: .4byte gSprites
-_08046380: .4byte gSpriteTemplate_81FAF0C
-_08046384: .4byte 0xfff00000
- thumb_func_end sub_8046234
-
- thumb_func_start sub_8046388
-sub_8046388: @ 8046388
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080463C0
- ldr r0, _080463B4 @ =gUnknown_081FAEA4
- ldrh r0, [r0, 0x6]
- bl FreeSpriteTilesByTag
- ldr r0, _080463B8 @ =gUnknown_081FAEAC
- ldrh r0, [r0, 0x4]
- bl FreeSpritePaletteByTag
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080463BC
- adds r0, r4, 0
- bl DestroySprite
- b _080463C0
- .align 2, 0
-_080463B4: .4byte gUnknown_081FAEA4
-_080463B8: .4byte gUnknown_081FAEAC
-_080463BC:
- ldr r0, _080463C8 @ =SpriteCallbackDummy
- str r0, [r4, 0x1C]
-_080463C0:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080463C8: .4byte SpriteCallbackDummy
- thumb_func_end sub_8046388
-
- thumb_func_start sub_80463CC
-sub_80463CC: @ 80463CC
- push {lr}
- adds r3, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080463F6
- ldr r2, _080463FC @ =gSprites
- movs r0, 0x2E
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x2E]
- subs r1, 0x1
- strh r1, [r0, 0x2E]
- adds r0, r3, 0
- bl DestroySprite
-_080463F6:
- pop {r0}
- bx r0
- .align 2, 0
-_080463FC: .4byte gSprites
- thumb_func_end sub_80463CC
-
- thumb_func_start sub_8046400
-sub_8046400: @ 8046400
- push {r4-r6,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r4, 16
- lsrs r4, 16
- lsls r5, 24
- lsrs r5, 24
- ldr r1, _08046450 @ =gUnknown_02024E6D
- movs r0, 0x1
- strb r0, [r1]
- ldr r6, _08046454 @ =gUnknown_02024A60
- ldrb r1, [r6]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _08046458 @ =0x02017810
- adds r0, r1
- ldrb r1, [r0]
- movs r2, 0x8
- orrs r1, r2
- strb r1, [r0]
- ldr r0, _0804645C @ =sub_8046464
- movs r1, 0x5
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08046460 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r4, [r1, 0xA]
- strh r5, [r1, 0xC]
- ldrb r0, [r6]
- strh r0, [r1, 0xE]
- movs r0, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08046450: .4byte gUnknown_02024E6D
-_08046454: .4byte gUnknown_02024A60
-_08046458: .4byte 0x02017810
-_0804645C: .4byte sub_8046464
-_08046460: .4byte gTasks
- thumb_func_end sub_8046400
-
- thumb_func_start sub_8046464
-sub_8046464: @ 8046464
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- movs r0, 0
- str r0, [sp]
- ldr r1, _08046498 @ =gTasks
- mov r2, r10
- lsls r0, r2, 2
- add r0, r10
- lsls r0, 3
- adds r1, r0, r1
- ldrh r2, [r1, 0x8]
- movs r3, 0x8
- ldrsh r0, [r1, r3]
- cmp r0, 0
- bne _0804649C
- adds r0, r2, 0x1
- strh r0, [r1, 0x8]
- b _08046616
- .align 2, 0
-_08046498: .4byte gTasks
-_0804649C:
- ldrh r0, [r1, 0xC]
- mov r8, r0
- ldrb r5, [r1, 0xE]
- adds r0, r5, 0
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080464C8
- ldr r1, _080464C0 @ =gUnknown_02024A6A
- lsls r0, r5, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080464C4 @ =gEnemyParty
- b _080464D6
- .align 2, 0
-_080464C0: .4byte gUnknown_02024A6A
-_080464C4: .4byte gEnemyParty
-_080464C8:
- ldr r1, _08046544 @ =gUnknown_02024A6A
- lsls r0, r5, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08046548 @ =gPlayerParty
-_080464D6:
- adds r0, r1
- movs r1, 0x26
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- bl ball_number_to_ball_processing_index
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- bl sub_80478DC
- lsls r0, r4, 1
- adds r0, r4
- lsls r0, 3
- ldr r1, _0804654C @ =gSpriteTemplate_820AAB4
- adds r0, r1
- movs r1, 0x20
- movs r2, 0x50
- movs r3, 0x1D
- bl CreateSprite
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r2, _08046550 @ =gSprites
- mov r9, r2
- lsls r0, r7, 4
- adds r0, r7
- lsls r6, r0, 2
- adds r4, r6, r2
- movs r0, 0x80
- strh r0, [r4, 0x2E]
- movs r3, 0
- strh r3, [r4, 0x30]
- mov r0, r8
- strh r0, [r4, 0x3C]
- mov r2, r8
- cmp r2, 0xFE
- beq _0804655C
- cmp r2, 0xFF
- bne _08046598
- ldr r0, _08046554 @ =gUnknown_02024C08
- strb r5, [r0]
- movs r0, 0x18
- strh r0, [r4, 0x20]
- movs r0, 0x44
- strh r0, [r4, 0x22]
- mov r0, r9
- adds r0, 0x1C
- adds r0, r6, r0
- ldr r1, _08046558 @ =sub_8047074
- str r1, [r0]
- b _080465A6
- .align 2, 0
-_08046544: .4byte gUnknown_02024A6A
-_08046548: .4byte gPlayerParty
-_0804654C: .4byte gSpriteTemplate_820AAB4
-_08046550: .4byte gSprites
-_08046554: .4byte gUnknown_02024C08
-_08046558: .4byte sub_8047074
-_0804655C:
- adds r0, r5, 0
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x20]
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x18
- strh r0, [r4, 0x22]
- ldr r0, _08046590 @ =gUnknown_02024C08
- strb r5, [r0]
- movs r3, 0
- strh r3, [r4, 0x2E]
- mov r0, r9
- adds r0, 0x1C
- adds r0, r6, r0
- ldr r1, _08046594 @ =sub_8047254
- str r1, [r0]
- b _080465A6
- .align 2, 0
-_08046590: .4byte gUnknown_02024C08
-_08046594: .4byte sub_8047254
-_08046598:
- movs r0, 0x1
- bl battle_get_side_with_given_state
- ldr r1, _080465C4 @ =gUnknown_02024C08
- strb r0, [r1]
- movs r0, 0x1
- str r0, [sp]
-_080465A6:
- ldr r0, _080465C8 @ =gSprites
- lsls r1, r7, 4
- adds r1, r7
- lsls r1, 2
- adds r4, r1, r0
- ldr r5, _080465C4 @ =gUnknown_02024C08
- ldrb r0, [r5]
- strh r0, [r4, 0x3A]
- ldr r2, [sp]
- cmp r2, 0
- bne _080465CC
- mov r0, r10
- bl DestroyTask
- b _08046616
- .align 2, 0
-_080465C4: .4byte gUnknown_02024C08
-_080465C8: .4byte gSprites
-_080465CC:
- movs r0, 0x22
- strh r0, [r4, 0x2E]
- ldrb r0, [r5]
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x32]
- ldrb r0, [r5]
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- subs r0, 0x10
- strh r0, [r4, 0x36]
- ldr r0, _08046628 @ =0x0000ffd8
- strh r0, [r4, 0x38]
- adds r0, r4, 0
- bl sub_80786EC
- mov r3, r10
- strh r3, [r4, 0x6]
- ldr r1, _0804662C @ =gTasks
- mov r2, r10
- lsls r0, r2, 2
- add r0, r10
- lsls r0, 3
- adds r0, r1
- ldrb r1, [r5]
- strh r1, [r0, 0x10]
- ldr r1, _08046630 @ =TaskDummy
- str r1, [r0]
- movs r0, 0x3D
- bl PlaySE
-_08046616:
- 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
-_08046628: .4byte 0x0000ffd8
-_0804662C: .4byte gTasks
-_08046630: .4byte TaskDummy
- thumb_func_end sub_8046464
-
- thumb_func_start objc_0804ABD4
-objc_0804ABD4: @ 8046634
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- adds r7, r0, 0
- bl sub_8078718
- lsls r0, 24
- cmp r0, 0
- beq _080466D4
- ldrb r6, [r7, 0x6]
- ldr r1, _080466E0 @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- ldrb r5, [r0, 0x10]
- ldrb r0, [r0, 0xC]
- mov r8, r0
- adds r0, r7, 0
- movs r1, 0x1
- bl StartSpriteAnim
- adds r2, r7, 0
- adds r2, 0x2C
- ldrb r0, [r2]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2]
- ldrh r0, [r7, 0x24]
- ldrh r1, [r7, 0x20]
- adds r0, r1
- movs r1, 0
- strh r0, [r7, 0x20]
- ldrh r0, [r7, 0x26]
- ldrh r2, [r7, 0x22]
- adds r0, r2
- strh r0, [r7, 0x22]
- strh r1, [r7, 0x24]
- strh r1, [r7, 0x26]
- strh r1, [r7, 0x38]
- adds r0, r5, 0
- bl sub_8047978
- lsls r0, 16
- lsrs r0, 16
- bl ball_number_to_ball_processing_index
- adds r4, r0, 0
- ldrh r0, [r7, 0x20]
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r7, 0x22]
- subs r1, 0x5
- lsls r1, 24
- lsrs r1, 24
- lsls r4, 24
- lsrs r4, 24
- str r4, [sp]
- movs r2, 0x1
- movs r3, 0x1C
- bl sub_814086C
- movs r0, 0
- adds r1, r5, 0
- movs r2, 0xE
- adds r3, r4, 0
- bl sub_8141314
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r7, 0x2E]
- strh r5, [r7, 0x3A]
- mov r0, r8
- strh r0, [r7, 0x3C]
- adds r0, r6, 0
- bl DestroyTask
- ldr r0, _080466E4 @ =sub_80466E8
- str r0, [r7, 0x1C]
-_080466D4:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080466E0: .4byte gTasks
-_080466E4: .4byte sub_80466E8
- thumb_func_end objc_0804ABD4
-
- thumb_func_start sub_80466E8
-sub_80466E8: @ 80466E8
- ldr r1, _080466F0 @ =sub_80466F4
- str r1, [r0, 0x1C]
- bx lr
- .align 2, 0
-_080466F0: .4byte sub_80466F4
- thumb_func_end sub_80466E8
-
- thumb_func_start sub_80466F4
-sub_80466F4: @ 80466F4
- push {r4-r7,lr}
- adds r6, r0, 0
- ldrh r0, [r6, 0x38]
- adds r0, 0x1
- movs r7, 0
- strh r0, [r6, 0x38]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xA
- bne _0804674E
- strh r7, [r6, 0x38]
- ldr r0, _08046754 @ =sub_8046760
- str r0, [r6, 0x1C]
- ldr r5, _08046758 @ =gUnknown_02024BE0
- movs r1, 0x3A
- ldrsh r0, [r6, r1]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, _0804675C @ =gSprites
- adds r0, r4
- movs r1, 0x2
- bl StartSpriteAffineAnim
- movs r1, 0x3A
- ldrsh r0, [r6, r1]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl AnimateSprite
- movs r1, 0x3A
- ldrsh r0, [r6, r1]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- strh r7, [r0, 0x30]
-_0804674E:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08046754: .4byte sub_8046760
-_08046758: .4byte gUnknown_02024BE0
-_0804675C: .4byte gSprites
- thumb_func_end sub_80466F4
-
- thumb_func_start sub_8046760
-sub_8046760: @ 8046760
- push {r4-r6,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x38]
- adds r0, 0x1
- strh r0, [r4, 0x38]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xB
- bne _08046778
- movs r0, 0x3C
- bl PlaySE
-_08046778:
- ldr r6, _080467C4 @ =gSprites
- ldr r5, _080467C8 @ =gUnknown_02024BE0
- movs r1, 0x3A
- ldrsh r0, [r4, r1]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r0, r6
- adds r0, r1, 0
- adds r0, 0x3F
- ldrb r0, [r0]
- lsls r0, 26
- cmp r0, 0
- bge _080467D0
- adds r0, r4, 0
- movs r1, 0x2
- bl StartSpriteAnim
- movs r2, 0x3A
- ldrsh r0, [r4, r2]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- movs r0, 0
- strh r0, [r4, 0x38]
- ldr r0, _080467CC @ =sub_80467F8
- str r0, [r4, 0x1C]
- b _080467F0
- .align 2, 0
-_080467C4: .4byte gSprites
-_080467C8: .4byte gUnknown_02024BE0
-_080467CC: .4byte sub_80467F8
-_080467D0:
- ldrh r0, [r1, 0x30]
- adds r0, 0x60
- strh r0, [r1, 0x30]
- movs r1, 0x3A
- ldrsh r0, [r4, r1]
- adds r0, r5
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- movs r2, 0x30
- ldrsh r0, [r1, r2]
- negs r0, r0
- asrs r0, 8
- strh r0, [r1, 0x26]
-_080467F0:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8046760
-
- thumb_func_start sub_80467F8
-sub_80467F8: @ 80467F8
- push {r4,lr}
- adds r4, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _08046840
- ldrh r0, [r4, 0x38]
- adds r0, 0x1
- movs r1, 0
- strh r0, [r4, 0x38]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- bne _08046840
- strh r1, [r4, 0x34]
- movs r0, 0x20
- strh r0, [r4, 0x36]
- strh r1, [r4, 0x38]
- movs r0, 0
- movs r1, 0x20
- bl Cos
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- movs r0, 0x36
- ldrsh r1, [r4, r0]
- movs r0, 0
- bl Cos
- negs r0, r0
- strh r0, [r4, 0x26]
- ldr r0, _08046848 @ =sub_804684C
- str r0, [r4, 0x1C]
-_08046840:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08046848: .4byte sub_804684C
- thumb_func_end sub_80467F8
-
- thumb_func_start sub_804684C
-sub_804684C: @ 804684C
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r5, 0
- ldrh r0, [r4, 0x34]
- movs r1, 0xFF
- ands r1, r0
- cmp r1, 0
- beq _08046862
- cmp r1, 0x1
- beq _080468D6
- b _08046902
-_08046862:
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- movs r2, 0x36
- ldrsh r1, [r4, r2]
- bl Cos
- negs r0, r0
- strh r0, [r4, 0x26]
- ldrh r1, [r4, 0x38]
- adds r1, 0x4
- ldrh r2, [r4, 0x34]
- lsls r0, r2, 16
- asrs r0, 24
- adds r1, r0
- strh r1, [r4, 0x38]
- lsls r1, 16
- asrs r1, 16
- cmp r1, 0x3F
- ble _08046902
- ldrh r0, [r4, 0x36]
- subs r0, 0xA
- strh r0, [r4, 0x36]
- ldr r1, _080468AC @ =0x00000101
- adds r0, r2, r1
- strh r0, [r4, 0x34]
- lsls r0, 16
- asrs r0, 24
- cmp r0, 0x4
- bne _0804689E
- movs r5, 0x1
-_0804689E:
- cmp r0, 0x2
- beq _080468BE
- cmp r0, 0x2
- bgt _080468B0
- cmp r0, 0x1
- beq _080468B6
- b _080468CE
- .align 2, 0
-_080468AC: .4byte 0x00000101
-_080468B0:
- cmp r0, 0x3
- beq _080468C6
- b _080468CE
-_080468B6:
- movs r0, 0x38
- bl PlaySE
- b _08046902
-_080468BE:
- movs r0, 0x39
- bl PlaySE
- b _08046902
-_080468C6:
- movs r0, 0x3A
- bl PlaySE
- b _08046902
-_080468CE:
- movs r0, 0x3B
- bl PlaySE
- b _08046902
-_080468D6:
- movs r2, 0x38
- ldrsh r0, [r4, r2]
- movs r2, 0x36
- ldrsh r1, [r4, r2]
- bl Cos
- negs r0, r0
- strh r0, [r4, 0x26]
- ldrh r1, [r4, 0x38]
- subs r1, 0x4
- ldrh r2, [r4, 0x34]
- lsls r0, r2, 16
- asrs r0, 24
- subs r1, r0
- strh r1, [r4, 0x38]
- lsls r1, 16
- cmp r1, 0
- bgt _08046902
- strh r5, [r4, 0x38]
- ldr r0, _08046928 @ =0xffffff00
- ands r0, r2
- strh r0, [r4, 0x34]
-_08046902:
- cmp r5, 0
- beq _0804693A
- movs r5, 0
- strh r5, [r4, 0x34]
- movs r0, 0x40
- movs r1, 0x20
- bl Cos
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- strh r5, [r4, 0x26]
- movs r2, 0x3C
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _08046930
- ldr r0, _0804692C @ =sub_8046C78
- str r0, [r4, 0x1C]
- b _0804693A
- .align 2, 0
-_08046928: .4byte 0xffffff00
-_0804692C: .4byte sub_8046C78
-_08046930:
- ldr r0, _08046940 @ =sub_8046944
- str r0, [r4, 0x1C]
- movs r0, 0x1
- strh r0, [r4, 0x36]
- strh r5, [r4, 0x38]
-_0804693A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08046940: .4byte sub_8046944
- thumb_func_end sub_804684C
-
- thumb_func_start sub_8046944
-sub_8046944: @ 8046944
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x34]
- adds r0, 0x1
- strh r0, [r4, 0x34]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1F
- bne _08046978
- movs r0, 0
- strh r0, [r4, 0x34]
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r0, [r2]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2]
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
- ldr r0, _08046980 @ =sub_8046984
- str r0, [r4, 0x1C]
- movs r0, 0x17
- bl PlaySE
-_08046978:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08046980: .4byte sub_8046984
- thumb_func_end sub_8046944
-
- thumb_func_start sub_8046984
-sub_8046984: @ 8046984
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x34]
- movs r1, 0xFF
- ands r1, r0
- cmp r1, 0x4
- bhi _08046A84
- lsls r0, r1, 2
- ldr r1, _0804699C @ =_080469A0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0804699C: .4byte _080469A0
- .align 2, 0
-_080469A0:
- .4byte _080469B4
- .4byte _080469E6
- .4byte _080469B4
- .4byte _08046A3A
- .4byte _08046A84
-_080469B4:
- ldrh r0, [r4, 0x36]
- ldrh r2, [r4, 0x24]
- adds r1, r0, r2
- strh r1, [r4, 0x24]
- ldrh r1, [r4, 0x38]
- adds r0, r1
- strh r0, [r4, 0x38]
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r1, [r2]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2]
- ldrh r0, [r4, 0x38]
- adds r0, 0x3
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x6
- bls _08046ACA
- ldrh r0, [r4, 0x34]
- adds r0, 0x1
- strh r0, [r4, 0x34]
- movs r0, 0
- strh r0, [r4, 0x38]
- b _08046ACA
-_080469E6:
- ldrh r0, [r4, 0x38]
- adds r0, 0x1
- strh r0, [r4, 0x38]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- bne _08046A2C
- movs r0, 0
- strh r0, [r4, 0x38]
- ldrh r0, [r4, 0x36]
- negs r0, r0
- strh r0, [r4, 0x36]
- ldrh r0, [r4, 0x34]
- adds r0, 0x1
- strh r0, [r4, 0x34]
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r1, [r2]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2]
- movs r2, 0x36
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bge _08046A22
- adds r0, r4, 0
- movs r1, 0x2
- bl ChangeSpriteAffineAnim
- b _08046ACA
-_08046A22:
- adds r0, r4, 0
- movs r1, 0x1
- bl ChangeSpriteAffineAnim
- b _08046ACA
-_08046A2C:
- adds r0, r4, 0
- adds r0, 0x2C
- ldrb r1, [r0]
- movs r2, 0x80
- orrs r1, r2
- strb r1, [r0]
- b _08046ACA
-_08046A3A:
- movs r1, 0x80
- lsls r1, 1
- adds r0, r1, 0
- ldrh r2, [r4, 0x34]
- adds r0, r2
- strh r0, [r4, 0x34]
- lsls r0, 16
- asrs r0, 24
- movs r2, 0x3C
- ldrsh r1, [r4, r2]
- cmp r0, r1
- bne _08046A5C
- ldr r0, _08046A58 @ =sub_8046C78
- str r0, [r4, 0x1C]
- b _08046ACA
- .align 2, 0
-_08046A58: .4byte sub_8046C78
-_08046A5C:
- cmp r1, 0x4
- bne _08046A70
- cmp r0, 0x3
- bne _08046A70
- ldr r0, _08046A6C @ =sub_8046E7C
- str r0, [r4, 0x1C]
- b _08046A76
- .align 2, 0
-_08046A6C: .4byte sub_8046E7C
-_08046A70:
- ldrh r0, [r4, 0x34]
- adds r0, 0x1
- strh r0, [r4, 0x34]
-_08046A76:
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r0, [r2]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2]
- b _08046ACA
-_08046A84:
- ldrh r0, [r4, 0x38]
- adds r0, 0x1
- strh r0, [r4, 0x38]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1F
- bne _08046ACA
- movs r0, 0
- strh r0, [r4, 0x38]
- ldrh r1, [r4, 0x34]
- ldr r0, _08046AB8 @ =0xffffff00
- ands r0, r1
- strh r0, [r4, 0x34]
- adds r0, r4, 0
- movs r1, 0x3
- bl StartSpriteAffineAnim
- movs r1, 0x36
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bge _08046ABC
- adds r0, r4, 0
- movs r1, 0x2
- bl StartSpriteAffineAnim
- b _08046AC4
- .align 2, 0
-_08046AB8: .4byte 0xffffff00
-_08046ABC:
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
-_08046AC4:
- movs r0, 0x17
- bl PlaySE
-_08046ACA:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8046984
-
- thumb_func_start sub_8046AD0
-sub_8046AD0: @ 8046AD0
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _08046AFC @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldrb r6, [r0, 0xC]
- ldrb r3, [r0, 0xA]
- ldrh r5, [r0, 0x8]
- movs r2, 0x26
- ldrsh r0, [r0, r2]
- adds r2, r1, 0
- cmp r0, 0x20
- bhi _08046B88
- lsls r0, 2
- ldr r1, _08046B00 @ =_08046B04
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08046AFC: .4byte gTasks
-_08046B00: .4byte _08046B04
- .align 2, 0
-_08046B04:
- .4byte _08046B88
- .4byte _08046BA6
- .4byte _08046BB2
- .4byte _08046BF6
- .4byte _08046B88
- .4byte _08046B88
- .4byte _08046B88
- .4byte _08046B88
- .4byte _08046B88
- .4byte _08046B88
- .4byte _08046B88
- .4byte _08046B88
- .4byte _08046B88
- .4byte _08046B88
- .4byte _08046B88
- .4byte _08046B88
- .4byte _08046B88
- .4byte _08046B88
- .4byte _08046B88
- .4byte _08046B88
- .4byte _08046BD0
- .4byte _08046B88
- .4byte _08046B88
- .4byte _08046B88
- .4byte _08046B88
- .4byte _08046B88
- .4byte _08046B88
- .4byte _08046B88
- .4byte _08046B88
- .4byte _08046B88
- .4byte _08046C08
- .4byte _08046C20
- .4byte _08046C48
-_08046B88:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r1, r0, r2
- ldrh r2, [r1, 0x18]
- movs r3, 0x18
- ldrsh r0, [r1, r3]
- cmp r0, 0x2
- bgt _08046BA0
- adds r0, r2, 0x1
- strh r0, [r1, 0x18]
- b _08046C72
-_08046BA0:
- adds r0, r6, 0x1
- strh r0, [r1, 0x26]
- b _08046C72
-_08046BA6:
- lsls r1, r3, 24
- asrs r1, 24
- adds r0, r5, 0
- bl PlayCry1
- b _08046BEE
-_08046BB2:
- bl StopCryAndClearCrySongs
- ldr r1, _08046BCC @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0x3
- strh r1, [r0, 0x1C]
- movs r1, 0x14
- strh r1, [r0, 0x26]
- b _08046C72
- .align 2, 0
-_08046BCC: .4byte gTasks
-_08046BD0:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r1, r0, r2
- ldrh r2, [r1, 0x1C]
- movs r6, 0x1C
- ldrsh r0, [r1, r6]
- cmp r0, 0
- bne _08046C5A
- lsls r1, r3, 24
- asrs r1, 24
- adds r0, r5, 0
- movs r2, 0x1
- bl PlayCry4
-_08046BEE:
- adds r0, r4, 0
- bl DestroyTask
- b _08046C72
-_08046BF6:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r2
- movs r1, 0x6
- strh r1, [r0, 0x1C]
- movs r1, 0x1E
- strh r1, [r0, 0x26]
- b _08046C72
-_08046C08:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r1, r0, r2
- ldrh r2, [r1, 0x1C]
- movs r3, 0x1C
- ldrsh r0, [r1, r3]
- cmp r0, 0
- bne _08046C5A
- ldrh r0, [r1, 0x26]
- adds r0, 0x1
- strh r0, [r1, 0x26]
-_08046C20:
- bl IsCryPlayingOrClearCrySongs
- lsls r0, 24
- cmp r0, 0
- bne _08046C72
- bl StopCryAndClearCrySongs
- ldr r0, _08046C44 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- movs r0, 0x3
- strh r0, [r1, 0x1C]
- ldrh r0, [r1, 0x26]
- adds r0, 0x1
- strh r0, [r1, 0x26]
- b _08046C72
- .align 2, 0
-_08046C44: .4byte gTasks
-_08046C48:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r1, r0, r2
- ldrh r2, [r1, 0x1C]
- movs r6, 0x1C
- ldrsh r0, [r1, r6]
- cmp r0, 0
- beq _08046C60
-_08046C5A:
- subs r0, r2, 0x1
- strh r0, [r1, 0x1C]
- b _08046C72
-_08046C60:
- lsls r1, r3, 24
- asrs r1, 24
- adds r0, r5, 0
- movs r2, 0
- bl PlayCry4
- adds r0, r4, 0
- bl DestroyTask
-_08046C72:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8046AD0
-
- thumb_func_start sub_8046C78
-sub_8046C78: @ 8046C78
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- adds r6, r0, 0
- ldrh r0, [r6, 0x3A]
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r6, 0
- movs r1, 0x1
- bl StartSpriteAnim
- adds r0, r5, 0
- bl sub_8047978
- lsls r0, 16
- lsrs r0, 16
- bl ball_number_to_ball_processing_index
- adds r4, r0, 0
- ldrh r0, [r6, 0x20]
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r6, 0x22]
- subs r1, 0x5
- lsls r1, 24
- lsrs r1, 24
- lsls r4, 24
- lsrs r4, 24
- str r4, [sp]
- movs r2, 0x1
- movs r3, 0x1C
- bl sub_814086C
- ldrh r1, [r6, 0x3A]
- lsls r1, 24
- lsrs r1, 24
- movs r0, 0x1
- movs r2, 0xE
- adds r3, r4, 0
- bl sub_8141314
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r6, 0x2E]
- ldr r0, _08046D0C @ =sub_8046E9C
- str r0, [r6, 0x1C]
- ldr r0, _08046D10 @ =gMain
- ldr r1, _08046D14 @ =0x0000043d
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _08046CE8
- b _08046E1C
-_08046CE8:
- adds r0, r5, 0
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _08046D20
- ldr r1, _08046D18 @ =gUnknown_02024A6A
- lsls r0, r5, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _08046D1C @ =gEnemyParty
- adds r0, r1, r0
- movs r3, 0x19
- mov r8, r3
- b _08046D34
- .align 2, 0
-_08046D0C: .4byte sub_8046E9C
-_08046D10: .4byte gMain
-_08046D14: .4byte 0x0000043d
-_08046D18: .4byte gUnknown_02024A6A
-_08046D1C: .4byte gEnemyParty
-_08046D20:
- ldr r1, _08046D90 @ =gUnknown_02024A6A
- lsls r0, r5, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _08046D94 @ =gPlayerParty
- adds r0, r1, r0
- movs r1, 0xE7
- mov r8, r1
-_08046D34:
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r7, r0, 16
- movs r0, 0
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r0, 24
- cmp r5, r0
- beq _08046D5A
- movs r0, 0x1
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r0, 24
- cmp r5, r0
- bne _08046DAE
-_08046D5A:
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- beq _08046DAE
- ldr r0, _08046D98 @ =0x02017840
- ldrb r1, [r0, 0x9]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08046DAE
- ldr r0, _08046D9C @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08046DA4
- bl IsBGMPlaying
- lsls r0, 24
- cmp r0, 0
- beq _08046DAE
- ldr r0, _08046DA0 @ =gMPlay_BGM
- bl m4aMPlayStop
- b _08046DAE
- .align 2, 0
-_08046D90: .4byte gUnknown_02024A6A
-_08046D94: .4byte gPlayerParty
-_08046D98: .4byte 0x02017840
-_08046D9C: .4byte gUnknown_020239F8
-_08046DA0: .4byte gMPlay_BGM
-_08046DA4:
- ldr r0, _08046DC8 @ =gMPlay_BGM
- ldr r1, _08046DCC @ =0x0000ffff
- movs r2, 0x80
- bl m4aMPlayVolumeControl
-_08046DAE:
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- beq _08046DC4
- ldr r0, _08046DD0 @ =0x02017840
- ldrb r1, [r0, 0x9]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _08046DD4
-_08046DC4:
- movs r4, 0
- b _08046DF6
- .align 2, 0
-_08046DC8: .4byte gMPlay_BGM
-_08046DCC: .4byte 0x0000ffff
-_08046DD0: .4byte 0x02017840
-_08046DD4:
- movs r0, 0
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r0, 24
- cmp r5, r0
- beq _08046DF0
- movs r0, 0x1
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r0, 24
- cmp r5, r0
- bne _08046DF4
-_08046DF0:
- movs r4, 0x1
- b _08046DF6
-_08046DF4:
- movs r4, 0x2
-_08046DF6:
- ldr r0, _08046E6C @ =sub_8046AD0
- movs r1, 0x3
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08046E70 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r2, 0
- strh r7, [r1, 0x8]
- mov r3, r8
- lsls r0, r3, 24
- asrs r0, 24
- strh r0, [r1, 0xA]
- strh r4, [r1, 0xC]
- strh r2, [r1, 0x26]
-_08046E1C:
- ldr r5, _08046E74 @ =gUnknown_02024BE0
- movs r1, 0x3A
- ldrsh r0, [r6, r1]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, _08046E78 @ =gSprites
- adds r0, r4
- movs r1, 0x1
- bl StartSpriteAffineAnim
- movs r3, 0x3A
- ldrsh r0, [r6, r3]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl AnimateSprite
- movs r1, 0x3A
- ldrsh r0, [r6, r1]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x80
- lsls r1, 5
- strh r1, [r0, 0x30]
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08046E6C: .4byte sub_8046AD0
-_08046E70: .4byte gTasks
-_08046E74: .4byte gUnknown_02024BE0
-_08046E78: .4byte gSprites
- thumb_func_end sub_8046C78
-
- thumb_func_start sub_8046E7C
-sub_8046E7C: @ 8046E7C
- adds r3, r0, 0
- adds r3, 0x2C
- ldrb r1, [r3]
- movs r2, 0x40
- orrs r1, r2
- strb r1, [r3]
- ldr r1, _08046E98 @ =sub_8046FBC
- str r1, [r0, 0x1C]
- movs r1, 0
- strh r1, [r0, 0x34]
- strh r1, [r0, 0x36]
- strh r1, [r0, 0x38]
- bx lr
- .align 2, 0
-_08046E98: .4byte sub_8046FBC
- thumb_func_end sub_8046E7C
-
- thumb_func_start sub_8046E9C
-sub_8046E9C: @ 8046E9C
- push {r4-r7,lr}
- adds r5, r0, 0
- movs r7, 0
- ldrh r0, [r5, 0x3A]
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r6, _08046F00 @ =gSprites
- ldr r0, _08046F04 @ =gUnknown_02024BE0
- adds r3, r4, r0
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
- adds r0, r5, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _08046EDE
- adds r2, r5, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
-_08046EDE:
- ldrb r0, [r3]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- adds r0, r1, 0
- adds r0, 0x3F
- ldrb r0, [r0]
- lsls r0, 26
- cmp r0, 0
- bge _08046F08
- adds r0, r1, 0
- movs r1, 0
- bl StartSpriteAffineAnim
- movs r7, 0x1
- b _08046F24
- .align 2, 0
-_08046F00: .4byte gSprites
-_08046F04: .4byte gUnknown_02024BE0
-_08046F08:
- ldr r2, _08046FA8 @ =0xfffffee0
- adds r0, r2, 0
- ldrh r2, [r1, 0x30]
- adds r0, r2
- strh r0, [r1, 0x30]
- ldrb r0, [r3]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- ldrh r0, [r1, 0x30]
- lsls r0, 16
- asrs r0, 24
- strh r0, [r1, 0x26]
-_08046F24:
- adds r0, r5, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _08046FA0
- cmp r7, 0
- beq _08046FA0
- ldr r2, _08046FAC @ =gSprites
- ldr r0, _08046FB0 @ =gUnknown_02024BE0
- adds r0, r4, r0
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r2, 0
- movs r1, 0
- strh r1, [r0, 0x26]
- ldr r0, _08046FB4 @ =gUnknown_02024E6D
- strb r2, [r0]
- lsls r1, r4, 1
- adds r1, r4
- lsls r1, 2
- ldr r4, _08046FB8 @ =0x02017810
- adds r1, r4
- ldrb r2, [r1]
- movs r0, 0x9
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- adds r0, r5, 0
- bl FreeSpriteOamMatrix
- adds r0, r5, 0
- bl DestroySprite
- movs r3, 0
- movs r5, 0x8
- adds r2, r4, 0
- movs r4, 0x3
-_08046F78:
- ldrb r1, [r2]
- adds r0, r5, 0
- ands r0, r1
- cmp r0, 0
- bne _08046F84
- adds r3, 0x1
-_08046F84:
- adds r2, 0xC
- subs r4, 0x1
- cmp r4, 0
- bge _08046F78
- cmp r3, 0x4
- bne _08046FA0
- movs r4, 0
-_08046F92:
- lsls r0, r4, 24
- lsrs r0, 24
- bl sub_804794C
- adds r4, 0x1
- cmp r4, 0xB
- ble _08046F92
-_08046FA0:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08046FA8: .4byte 0xfffffee0
-_08046FAC: .4byte gSprites
-_08046FB0: .4byte gUnknown_02024BE0
-_08046FB4: .4byte gUnknown_02024E6D
-_08046FB8: .4byte 0x02017810
- thumb_func_end sub_8046E9C
-
- thumb_func_start sub_8046FBC
-sub_8046FBC: @ 8046FBC
- push {r4-r7,lr}
- adds r6, r0, 0
- ldrh r0, [r6, 0x3A]
- lsls r0, 24
- lsrs r7, r0, 24
- ldrh r0, [r6, 0x36]
- adds r0, 0x1
- strh r0, [r6, 0x36]
- lsls r0, 16
- asrs r1, r0, 16
- cmp r1, 0x28
- beq _08047056
- cmp r1, 0x5F
- bne _08046FF4
- ldr r0, _08046FEC @ =gUnknown_02024E6D
- movs r1, 0
- strb r1, [r0]
- bl m4aMPlayAllStop
- ldr r0, _08046FF0 @ =0x00000173
- bl PlaySE
- b _08047056
- .align 2, 0
-_08046FEC: .4byte gUnknown_02024E6D
-_08046FF0: .4byte 0x00000173
-_08046FF4:
- ldr r0, _0804705C @ =0x0000013b
- cmp r1, r0
- bne _08047056
- ldr r5, _08047060 @ =gSprites
- ldr r4, _08047064 @ =gUnknown_02024BE0
- movs r1, 0x3A
- ldrsh r0, [r6, r1]
- adds r0, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrb r0, [r0, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
- movs r1, 0x3A
- ldrsh r0, [r6, r1]
- adds r0, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- bl DestroySprite
- adds r0, r6, 0
- bl DestroySpriteAndFreeResources
- ldr r0, _08047068 @ =gMain
- ldr r1, _0804706C @ =0x0000043d
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08047056
- lsls r1, r7, 1
- adds r1, r7
- lsls r1, 2
- ldr r0, _08047070 @ =0x02017810
- adds r1, r0
- ldrb r2, [r1]
- movs r0, 0x9
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
-_08047056:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0804705C: .4byte 0x0000013b
-_08047060: .4byte gSprites
-_08047064: .4byte gUnknown_02024BE0
-_08047068: .4byte gMain
-_0804706C: .4byte 0x0000043d
-_08047070: .4byte 0x02017810
- thumb_func_end sub_8046FBC
-
- thumb_func_start sub_8047074
-sub_8047074: @ 8047074
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x19
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x3A]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x3A]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x18
- strh r0, [r4, 0x36]
- ldr r0, _080470BC @ =0x0000ffe2
- strh r0, [r4, 0x38]
- ldrh r0, [r4, 0x3A]
- strh r0, [r4, 0x6]
- adds r0, r4, 0
- bl sub_80786EC
- ldr r0, _080470C0 @ =sub_80470C4
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080470BC: .4byte 0x0000ffe2
-_080470C0: .4byte sub_80470C4
- thumb_func_end sub_8047074
-
- thumb_func_start sub_80470C4
-sub_80470C4: @ 80470C4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r5, r0, 0
- ldrh r0, [r5, 0x3C]
- movs r1, 0xFF
- mov r8, r1
- lsrs r0, 8
- subs r0, 0x23
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x2C
- bhi _080471B8
- ldrh r1, [r5, 0x6]
- movs r0, 0xFF
- lsls r0, 8
- ands r0, r1
- cmp r0, 0
- bne _08047126
- ldrh r0, [r5, 0x30]
- movs r1, 0x1
- adds r6, r1, 0
- ands r6, r0
- ldrh r0, [r5, 0x32]
- adds r7, r1, 0
- ands r7, r0
- movs r2, 0x30
- ldrsh r0, [r5, r2]
- movs r1, 0x3
- bl __divsi3
- movs r1, 0x2
- negs r1, r1
- adds r4, r1, 0
- ands r0, r4
- orrs r6, r0
- strh r6, [r5, 0x30]
- movs r2, 0x32
- ldrsh r0, [r5, r2]
- movs r1, 0x3
- bl __divsi3
- ands r0, r4
- orrs r7, r0
- strh r7, [r5, 0x32]
- adds r0, r5, 0
- movs r1, 0x4
- bl StartSpriteAffineAnim
-_08047126:
- ldrh r4, [r5, 0x2E]
- adds r0, r5, 0
- bl sub_8078B5C
- movs r1, 0x3A
- ldrsh r0, [r5, r1]
- movs r1, 0x3
- bl __divsi3
- adds r1, r0, 0
- ldrh r0, [r5, 0x3C]
- adds r0, r1
- strh r0, [r5, 0x3C]
- lsls r0, 16
- asrs r0, 24
- mov r2, r8
- ands r0, r2
- movs r2, 0x38
- ldrsh r1, [r5, r2]
- bl Sin
- ldrh r1, [r5, 0x26]
- adds r0, r1
- strh r0, [r5, 0x26]
- movs r2, 0x80
- lsls r2, 1
- adds r0, r2, 0
- ldrh r1, [r5, 0x6]
- adds r0, r1
- strh r0, [r5, 0x6]
- lsls r0, 16
- lsrs r0, 24
- movs r1, 0x3
- bl __umodsi3
- lsls r0, 16
- cmp r0, 0
- beq _08047176
- strh r4, [r5, 0x2E]
- b _0804717E
-_08047176:
- lsls r0, r4, 16
- asrs r0, 16
- subs r0, 0x1
- strh r0, [r5, 0x2E]
-_0804717E:
- ldrh r0, [r5, 0x3C]
- lsrs r0, 8
- cmp r0, 0x4F
- ble _08047220
- ldrh r0, [r5, 0x30]
- movs r1, 0x1
- adds r6, r1, 0
- ands r6, r0
- ldrh r0, [r5, 0x32]
- adds r7, r1, 0
- ands r7, r0
- movs r2, 0x30
- ldrsh r1, [r5, r2]
- lsls r0, r1, 1
- adds r0, r1
- movs r1, 0x2
- negs r1, r1
- adds r2, r1, 0
- ands r0, r2
- orrs r0, r6
- strh r0, [r5, 0x30]
- movs r0, 0x32
- ldrsh r1, [r5, r0]
- lsls r0, r1, 1
- adds r0, r1
- ands r0, r2
- orrs r0, r7
- strh r0, [r5, 0x32]
- b _08047220
-_080471B8:
- adds r0, r5, 0
- bl sub_8078718
- lsls r0, 24
- cmp r0, 0
- beq _08047220
- ldrh r0, [r5, 0x24]
- ldrh r1, [r5, 0x20]
- adds r0, r1
- movs r1, 0
- strh r0, [r5, 0x20]
- ldrh r0, [r5, 0x26]
- ldrh r2, [r5, 0x22]
- adds r0, r2
- strh r0, [r5, 0x22]
- strh r1, [r5, 0x26]
- strh r1, [r5, 0x24]
- ldrb r0, [r5, 0x6]
- strh r0, [r5, 0x3A]
- strh r1, [r5, 0x2E]
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- beq _08047214
- ldr r0, _0804720C @ =0x02017840
- ldrb r1, [r0, 0x9]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08047214
- movs r0, 0x3A
- ldrsh r4, [r5, r0]
- movs r0, 0x2
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r0, 24
- cmp r4, r0
- bne _08047214
- ldr r0, _08047210 @ =sub_8047230
- b _08047216
- .align 2, 0
-_0804720C: .4byte 0x02017840
-_08047210: .4byte sub_8047230
-_08047214:
- ldr r0, _0804722C @ =sub_8046C78
-_08047216:
- str r0, [r5, 0x1C]
- adds r0, r5, 0
- movs r1, 0
- bl StartSpriteAffineAnim
-_08047220:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0804722C: .4byte sub_8046C78
- thumb_func_end sub_80470C4
-
- thumb_func_start sub_8047230
-sub_8047230: @ 8047230
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x2E]
- adds r1, r0, 0x1
- strh r1, [r2, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x18
- ble _0804724A
- movs r0, 0
- strh r0, [r2, 0x2E]
- ldr r0, _08047250 @ =sub_8046C78
- str r0, [r2, 0x1C]
-_0804724A:
- pop {r0}
- bx r0
- .align 2, 0
-_08047250: .4byte sub_8046C78
- thumb_func_end sub_8047230
-
- thumb_func_start sub_8047254
-sub_8047254: @ 8047254
- push {r4,r5,lr}
- adds r5, r0, 0
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xF
- ble _080472A4
- movs r0, 0
- strh r0, [r5, 0x2E]
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- beq _080472A0
- ldr r0, _08047298 @ =0x02017840
- ldrb r1, [r0, 0x9]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080472A0
- movs r0, 0x3A
- ldrsh r4, [r5, r0]
- movs r0, 0x3
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r0, 24
- cmp r4, r0
- bne _080472A0
- ldr r0, _0804729C @ =sub_8047230
- b _080472A2
- .align 2, 0
-_08047298: .4byte 0x02017840
-_0804729C: .4byte sub_8047230
-_080472A0:
- ldr r0, _080472AC @ =sub_8046C78
-_080472A2:
- str r0, [r5, 0x1C]
-_080472A4:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080472AC: .4byte sub_8046C78
- thumb_func_end sub_8047254
-
- thumb_func_start sub_80472B0
-sub_80472B0: @ 80472B0
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r2, 24
- lsls r3, 24
- lsrs r3, 24
- movs r4, 0
- str r4, [sp]
- bl sub_814086C
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80472B0
-
- thumb_func_start sub_80472D8
-sub_80472D8: @ 80472D8
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- movs r3, 0
- bl sub_8141314
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- thumb_func_end sub_80472D8
-
- thumb_func_start CreatePokeballSprite
-CreatePokeballSprite: @ 80472F0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- adds r5, r0, 0
- mov r9, r2
- mov r10, r3
- ldr r6, [sp, 0x24]
- ldr r4, [sp, 0x28]
- ldr r0, [sp, 0x2C]
- lsls r5, 24
- lsrs r5, 24
- lsls r1, 24
- lsrs r1, 24
- str r1, [sp]
- mov r1, r9
- lsls r1, 24
- lsrs r1, 24
- mov r9, r1
- mov r2, r10
- lsls r2, 24
- lsrs r2, 24
- mov r10, r2
- lsls r6, 24
- lsrs r6, 24
- lsls r4, 24
- lsrs r4, 24
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r0, _080473BC @ =gUnknown_0820A92C
- bl LoadCompressedObjectPic
- ldr r0, _080473C0 @ =gUnknown_0820A98C
- bl LoadCompressedObjectPalette
- ldr r0, _080473C4 @ =gSpriteTemplate_820AAB4
- mov r1, r9
- mov r2, r10
- adds r3, r4, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _080473C8 @ =gSprites
- mov r8, r3
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- adds r1, r4, r3
- strh r5, [r1, 0x2E]
- lsls r2, r5, 4
- adds r2, r5
- lsls r2, 2
- add r2, r8
- ldrh r0, [r2, 0x20]
- strh r0, [r1, 0x38]
- ldrh r0, [r2, 0x22]
- strh r0, [r1, 0x3A]
- mov r0, r9
- strh r0, [r2, 0x20]
- mov r3, r10
- strh r3, [r2, 0x22]
- strh r7, [r1, 0x30]
- mov r0, sp
- ldrh r0, [r0]
- strh r0, [r1, 0x32]
- mov r3, sp
- ldrh r3, [r3, 0x30]
- strh r3, [r1, 0x34]
- ldr r3, [sp, 0x30]
- lsrs r0, r3, 16
- strh r0, [r1, 0x36]
- movs r0, 0x3
- ands r6, r0
- lsls r6, 2
- ldrb r3, [r1, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r3
- orrs r0, r6
- strb r0, [r1, 0x5]
- movs r0, 0x1C
- add r8, r0
- add r4, r8
- ldr r0, _080473CC @ =sub_80473D0
- str r0, [r4]
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- 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
-_080473BC: .4byte gUnknown_0820A92C
-_080473C0: .4byte gUnknown_0820A98C
-_080473C4: .4byte gSpriteTemplate_820AAB4
-_080473C8: .4byte gSprites
-_080473CC: .4byte sub_80473D0
- thumb_func_end CreatePokeballSprite
-
- thumb_func_start sub_80473D0
-sub_80473D0: @ 80473D0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r6, r0, 0
- ldrh r1, [r6, 0x30]
- movs r2, 0x30
- ldrsh r0, [r6, r2]
- cmp r0, 0
- bne _0804747C
- ldrh r0, [r6, 0x2E]
- lsls r0, 24
- lsrs r7, r0, 24
- ldrh r0, [r6, 0x32]
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldrh r4, [r6, 0x34]
- ldrh r0, [r6, 0x36]
- lsls r0, 16
- orrs r4, r0
- adds r0, r6, 0
- adds r0, 0x43
- ldrb r0, [r0]
- cmp r0, 0
- beq _0804740A
- subs r0, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- b _0804740C
-_0804740A:
- movs r5, 0
-_0804740C:
- adds r0, r6, 0
- movs r1, 0x1
- bl StartSpriteAnim
- ldrh r0, [r6, 0x20]
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r6, 0x22]
- subs r1, 0x5
- lsls r1, 24
- lsrs r1, 24
- ldrb r2, [r6, 0x5]
- lsls r2, 28
- lsrs r2, 30
- adds r3, r5, 0
- bl sub_80472B0
- movs r0, 0x1
- mov r1, r8
- adds r2, r4, 0
- bl sub_80472D8
- lsls r0, 24
- lsrs r0, 24
- movs r5, 0
- strh r0, [r6, 0x30]
- ldr r0, _08047474 @ =sub_804748C
- str r0, [r6, 0x1C]
- ldr r0, _08047478 @ =gSprites
- lsls r4, r7, 4
- adds r4, r7
- lsls r4, 2
- adds r4, r0
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
- adds r0, r4, 0
- bl AnimateSprite
- movs r0, 0x80
- lsls r0, 5
- strh r0, [r4, 0x30]
- strh r5, [r6, 0x3C]
- b _08047480
- .align 2, 0
-_08047474: .4byte sub_804748C
-_08047478: .4byte gSprites
-_0804747C:
- subs r0, r1, 0x1
- strh r0, [r6, 0x30]
-_08047480:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80473D0
-
- thumb_func_start sub_804748C
-sub_804748C: @ 804748C
- push {r4-r7,lr}
- adds r4, r0, 0
- movs r0, 0
- mov r12, r0
- movs r6, 0
- ldrh r0, [r4, 0x2E]
- lsls r0, 24
- lsrs r3, r0, 24
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080474B6
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
-_080474B6:
- ldr r0, _08047544 @ =gSprites
- lsls r1, r3, 4
- adds r1, r3
- lsls r1, 2
- adds r5, r1, r0
- adds r0, r5, 0
- adds r0, 0x3F
- ldrb r0, [r0]
- lsls r0, 26
- cmp r0, 0
- bge _080474D8
- adds r0, r5, 0
- movs r1, 0
- bl StartSpriteAffineAnim
- movs r1, 0x1
- mov r12, r1
-_080474D8:
- movs r2, 0x38
- ldrsh r0, [r4, r2]
- movs r7, 0x20
- ldrsh r1, [r4, r7]
- subs r0, r1
- movs r1, 0x3C
- ldrsh r2, [r4, r1]
- muls r0, r2
- cmp r0, 0
- bge _080474EE
- adds r0, 0x7F
-_080474EE:
- asrs r0, 7
- ldrh r7, [r4, 0x20]
- adds r0, r7
- lsls r0, 16
- lsrs r3, r0, 16
- movs r1, 0x3A
- ldrsh r0, [r4, r1]
- movs r7, 0x22
- ldrsh r1, [r4, r7]
- subs r0, r1
- muls r0, r2
- cmp r0, 0
- bge _0804750A
- adds r0, 0x7F
-_0804750A:
- asrs r0, 7
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r3, [r5, 0x20]
- strh r0, [r5, 0x22]
- ldrh r2, [r4, 0x3C]
- movs r7, 0x3C
- ldrsh r0, [r4, r7]
- cmp r0, 0x7F
- bgt _0804754C
- ldr r1, _08047548 @ =gSineTable
- lsls r0, r2, 24
- lsrs r0, 23
- adds r0, r1
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bge _08047530
- adds r0, 0x7
-_08047530:
- asrs r0, 3
- negs r0, r0
- lsls r0, 16
- lsrs r0, 16
- adds r1, r2, 0x4
- strh r1, [r4, 0x3C]
- strh r0, [r5, 0x24]
- strh r0, [r5, 0x26]
- b _0804755A
- .align 2, 0
-_08047544: .4byte gSprites
-_08047548: .4byte gSineTable
-_0804754C:
- ldrh r0, [r4, 0x38]
- strh r0, [r5, 0x20]
- ldrh r0, [r4, 0x3A]
- strh r0, [r5, 0x22]
- strh r6, [r5, 0x24]
- strh r6, [r5, 0x26]
- movs r6, 0x1
-_0804755A:
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _08047578
- mov r2, r12
- cmp r2, 0
- beq _08047578
- cmp r6, 0
- beq _08047578
- adds r0, r4, 0
- bl DestroySpriteAndFreeResources
-_08047578:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_804748C
-
- thumb_func_start sub_8047580
-sub_8047580: @ 8047580
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- mov r10, r0
- adds r6, r2, 0
- mov r8, r3
- ldr r5, [sp, 0x20]
- ldr r4, [sp, 0x24]
- ldr r0, [sp, 0x28]
- mov r9, r0
- mov r0, r10
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- lsls r1, 24
- lsrs r7, r1, 24
- lsls r6, 24
- lsrs r6, 24
- mov r1, r8
- lsls r1, 24
- lsrs r1, 24
- mov r8, r1
- lsls r5, 24
- lsrs r5, 24
- lsls r4, 24
- lsrs r4, 24
- mov r0, r9
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- ldr r0, _08047624 @ =gUnknown_0820A92C
- bl LoadCompressedObjectPic
- ldr r0, _08047628 @ =gUnknown_0820A98C
- bl LoadCompressedObjectPalette
- ldr r0, _0804762C @ =gSpriteTemplate_820AAB4
- adds r1, r6, 0
- mov r2, r8
- adds r3, r4, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r6, _08047630 @ =gSprites
- lsls r3, r0, 4
- adds r3, r0
- lsls r3, 2
- adds r2, r3, r6
- mov r1, r10
- strh r1, [r2, 0x2E]
- mov r4, r9
- strh r4, [r2, 0x30]
- strh r7, [r2, 0x32]
- mov r1, sp
- ldrh r1, [r1, 0x2C]
- strh r1, [r2, 0x34]
- ldr r4, [sp, 0x2C]
- lsrs r1, r4, 16
- strh r1, [r2, 0x36]
- movs r1, 0x3
- ands r5, r1
- lsls r5, 2
- ldrb r4, [r2, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r4
- orrs r1, r5
- strb r1, [r2, 0x5]
- adds r6, 0x1C
- adds r3, r6
- ldr r1, _08047634 @ =sub_8047638
- str r1, [r3]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08047624: .4byte gUnknown_0820A92C
-_08047628: .4byte gUnknown_0820A98C
-_0804762C: .4byte gSpriteTemplate_820AAB4
-_08047630: .4byte gSprites
-_08047634: .4byte sub_8047638
- thumb_func_end sub_8047580
-
- thumb_func_start sub_8047638
-sub_8047638: @ 8047638
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r4, r0, 0
- ldrh r1, [r4, 0x30]
- movs r2, 0x30
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _080476D0
- ldrh r0, [r4, 0x2E]
- lsls r0, 24
- lsrs r7, r0, 24
- ldrh r0, [r4, 0x32]
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldrh r5, [r4, 0x34]
- ldrh r0, [r4, 0x36]
- lsls r0, 16
- orrs r5, r0
- adds r0, r4, 0
- adds r0, 0x43
- ldrb r0, [r0]
- cmp r0, 0
- beq _08047672
- subs r0, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- b _08047674
-_08047672:
- movs r6, 0
-_08047674:
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAnim
- ldrh r0, [r4, 0x20]
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x22]
- subs r1, 0x5
- lsls r1, 24
- lsrs r1, 24
- ldrb r2, [r4, 0x5]
- lsls r2, 28
- lsrs r2, 30
- adds r3, r6, 0
- bl sub_80472B0
- movs r0, 0x1
- mov r1, r8
- adds r2, r5, 0
- bl sub_80472D8
- lsls r0, 24
- lsrs r0, 24
- movs r5, 0
- strh r0, [r4, 0x30]
- ldr r0, _080476C8 @ =sub_80476E0
- str r0, [r4, 0x1C]
- lsls r4, r7, 4
- adds r4, r7
- lsls r4, 2
- ldr r0, _080476CC @ =gSprites
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x2
- bl StartSpriteAffineAnim
- adds r0, r4, 0
- bl AnimateSprite
- strh r5, [r4, 0x30]
- b _080476D4
- .align 2, 0
-_080476C8: .4byte sub_80476E0
-_080476CC: .4byte gSprites
-_080476D0:
- subs r0, r1, 0x1
- strh r0, [r4, 0x30]
-_080476D4:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8047638
-
- thumb_func_start sub_80476E0
-sub_80476E0: @ 80476E0
- push {r4,r5,lr}
- adds r5, r0, 0
- ldrh r0, [r5, 0x38]
- adds r0, 0x1
- strh r0, [r5, 0x38]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xB
- bne _080476F8
- movs r0, 0x3C
- bl PlaySE
-_080476F8:
- ldrh r1, [r5, 0x2E]
- lsls r1, 24
- lsrs r1, 24
- ldr r2, _08047734 @ =gSprites
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r4, r0, r2
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r0, [r0]
- lsls r0, 26
- cmp r0, 0
- bge _0804773C
- adds r0, r5, 0
- movs r1, 0x2
- bl StartSpriteAnim
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- movs r0, 0
- strh r0, [r5, 0x38]
- ldr r0, _08047738 @ =sub_8047754
- str r0, [r5, 0x1C]
- b _0804774C
- .align 2, 0
-_08047734: .4byte gSprites
-_08047738: .4byte sub_8047754
-_0804773C:
- ldrh r0, [r4, 0x30]
- adds r0, 0x60
- strh r0, [r4, 0x30]
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- negs r0, r0
- asrs r0, 8
- strh r0, [r4, 0x26]
-_0804774C:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80476E0
-
- thumb_func_start sub_8047754
-sub_8047754: @ 8047754
- push {lr}
- adds r2, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _08047768
- ldr r0, _0804776C @ =SpriteCallbackDummy
- str r0, [r2, 0x1C]
-_08047768:
- pop {r0}
- bx r0
- .align 2, 0
-_0804776C: .4byte SpriteCallbackDummy
- thumb_func_end sub_8047754
-
- thumb_func_start obj_delete_and_free_associated_resources_
-obj_delete_and_free_associated_resources_: @ 8047770
- push {lr}
- bl DestroySpriteAndFreeResources
- pop {r0}
- bx r0
- thumb_func_end obj_delete_and_free_associated_resources_
-
- thumb_func_start sub_804777C
-sub_804777C: @ 804777C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0, 0
- ldr r0, _080477FC @ =gUnknown_03004340
- adds r0, r5, r0
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r6, _08047800 @ =gSprites
- adds r4, r0, r6
- movs r1, 0
- movs r0, 0x5
- strh r0, [r4, 0x2E]
- strh r1, [r4, 0x30]
- movs r0, 0x73
- strh r0, [r4, 0x24]
- strh r1, [r4, 0x26]
- ldr r0, _08047804 @ =sub_8047830
- str r0, [r4, 0x1C]
- adds r0, r5, 0
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080477CA
- ldrh r0, [r4, 0x2E]
- negs r0, r0
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x30]
- negs r0, r0
- strh r0, [r4, 0x30]
- ldrh r0, [r4, 0x24]
- negs r0, r0
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x26]
- negs r0, r0
- strh r0, [r4, 0x26]
-_080477CA:
- movs r0, 0x38
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r6, 0
- adds r1, 0x1C
- adds r1, r0, r1
- adds r0, r6
- ldr r1, [r1]
- bl _call_via_r1
- adds r0, r5, 0
- bl battle_get_per_side_status
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _080477F4
- ldr r0, _08047808 @ =sub_804780C
- str r0, [r4, 0x1C]
-_080477F4:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080477FC: .4byte gUnknown_03004340
-_08047800: .4byte gSprites
-_08047804: .4byte sub_8047830
-_08047808: .4byte sub_804780C
- thumb_func_end sub_804777C
-
- thumb_func_start sub_804780C
-sub_804780C: @ 804780C
- push {lr}
- adds r1, r0, 0
- ldrh r0, [r1, 0x30]
- adds r0, 0x1
- strh r0, [r1, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x14
- bne _08047826
- movs r0, 0
- strh r0, [r1, 0x30]
- ldr r0, _0804782C @ =sub_8047830
- str r0, [r1, 0x1C]
-_08047826:
- pop {r0}
- bx r0
- .align 2, 0
-_0804782C: .4byte sub_8047830
- thumb_func_end sub_804780C
-
- thumb_func_start sub_8047830
-sub_8047830: @ 8047830
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x24]
- ldrh r1, [r2, 0x2E]
- subs r0, r1
- strh r0, [r2, 0x24]
- ldrh r0, [r2, 0x26]
- ldrh r1, [r2, 0x30]
- subs r0, r1
- strh r0, [r2, 0x26]
- ldr r0, [r2, 0x24]
- cmp r0, 0
- bne _0804784E
- ldr r0, _08047854 @ =SpriteCallbackDummy
- str r0, [r2, 0x1C]
-_0804784E:
- pop {r0}
- bx r0
- .align 2, 0
-_08047854: .4byte SpriteCallbackDummy
- thumb_func_end sub_8047830
-
- thumb_func_start sub_8047858
-sub_8047858: @ 8047858
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r5, _08047890 @ =oamc_804BEB4
- adds r0, r5, 0
- bl object_new_hidden_with_callback
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08047894 @ =gSprites
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r3, r1, r2
- movs r0, 0x1
- strh r0, [r3, 0x2E]
- ldr r0, _08047898 @ =gUnknown_03004340
- adds r4, r0
- ldrb r0, [r4]
- strh r0, [r3, 0x30]
- adds r2, 0x1C
- adds r1, r2
- str r5, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08047890: .4byte oamc_804BEB4
-_08047894: .4byte gSprites
-_08047898: .4byte gUnknown_03004340
- thumb_func_end sub_8047858
-
- thumb_func_start oamc_804BEB4
-oamc_804BEB4: @ 804789C
- push {lr}
- adds r3, r0, 0
- ldrh r1, [r3, 0x30]
- lsls r1, 24
- lsrs r1, 24
- ldr r2, _080478D8 @ =gSprites
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r0, r2
- ldrh r0, [r3, 0x2E]
- movs r2, 0
- strh r0, [r1, 0x26]
- ldrh r0, [r3, 0x2E]
- negs r0, r0
- strh r0, [r3, 0x2E]
- ldrh r0, [r3, 0x32]
- adds r0, 0x1
- strh r0, [r3, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x15
- bne _080478D4
- strh r2, [r1, 0x24]
- strh r2, [r1, 0x26]
- adds r0, r3, 0
- bl DestroySprite
-_080478D4:
- pop {r0}
- bx r0
- .align 2, 0
-_080478D8: .4byte gSprites
- thumb_func_end oamc_804BEB4
-
- thumb_func_start sub_80478DC
-sub_80478DC: @ 80478DC
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08047938 @ =gUnknown_0820A92C
- lsls r6, r4, 3
- adds r5, r6, r0
- ldrh r0, [r5, 0x6]
- bl GetSpriteTileStartByTag
- lsls r0, 16
- ldr r1, _0804793C @ =0xffff0000
- cmp r0, r1
- bne _08047904
- adds r0, r5, 0
- bl LoadCompressedObjectPic
- ldr r0, _08047940 @ =gUnknown_0820A98C
- adds r0, r6, r0
- bl LoadCompressedObjectPalette
-_08047904:
- cmp r4, 0x6
- beq _08047930
- cmp r4, 0x6
- blt _08047914
- cmp r4, 0xB
- bgt _08047914
- cmp r4, 0xA
- bge _08047930
-_08047914:
- ldr r1, _08047938 @ =gUnknown_0820A92C
- lsls r0, r4, 3
- adds r0, r1
- ldrh r0, [r0, 0x6]
- bl GetSpriteTileStartByTag
- adds r1, r0, 0
- lsls r1, 16
- ldr r0, _08047944 @ =gUnknown_08D030D0
- lsrs r1, 11
- ldr r2, _08047948 @ =0x06010100
- adds r1, r2
- bl LZDecompressVram
-_08047930:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08047938: .4byte gUnknown_0820A92C
-_0804793C: .4byte 0xffff0000
-_08047940: .4byte gUnknown_0820A98C
-_08047944: .4byte gUnknown_08D030D0
-_08047948: .4byte 0x06010100
- thumb_func_end sub_80478DC
-
- thumb_func_start sub_804794C
-sub_804794C: @ 804794C
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- ldr r0, _08047970 @ =gUnknown_0820A92C
- lsrs r4, 21
- adds r0, r4, r0
- ldrh r0, [r0, 0x6]
- bl FreeSpriteTilesByTag
- ldr r0, _08047974 @ =gUnknown_0820A98C
- adds r4, r0
- ldrh r0, [r4, 0x4]
- bl FreeSpritePaletteByTag
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08047970: .4byte gUnknown_0820A92C
-_08047974: .4byte gUnknown_0820A98C
- thumb_func_end sub_804794C
-
- thumb_func_start sub_8047978
-sub_8047978: @ 8047978
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080479A4
- ldr r1, _0804799C @ =gUnknown_02024A6A
- lsls r0, r4, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080479A0 @ =gEnemyParty
- b _080479B2
- .align 2, 0
-_0804799C: .4byte gUnknown_02024A6A
-_080479A0: .4byte gEnemyParty
-_080479A4:
- ldr r1, _080479C4 @ =gUnknown_02024A6A
- lsls r0, r4, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080479C8 @ =gPlayerParty
-_080479B2:
- adds r0, r1
- movs r1, 0x26
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080479C4: .4byte gUnknown_02024A6A
-_080479C8: .4byte gPlayerParty
- thumb_func_end sub_8047978
+ thumb_func_end GetHPBarLevel
.align 2, 0 @ Don't pad with nop.
diff --git a/asm/rom_806D7F8.s b/asm/rom_806D7F8.s
deleted file mode 100644
index 8f95428c3..000000000
--- a/asm/rom_806D7F8.s
+++ /dev/null
@@ -1,6917 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_806D7F8
-sub_806D7F8: @ 806D7F8
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 16
- lsls r2, 16
- lsrs r5, r1, 16
- asrs r1, 16
- lsrs r4, r2, 16
- asrs r2, 16
- adds r0, r1, 0
- adds r1, r2, 0
- bl sub_8046200
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0
- cmp r5, r4
- beq _0806D830
- movs r2, 0x1
- cmp r0, 0x3
- beq _0806D830
- movs r2, 0x2
- cmp r0, 0x2
- beq _0806D830
- movs r2, 0x4
- cmp r0, 0x1
- bne _0806D830
- movs r2, 0x3
-_0806D830:
- lsls r0, r6, 4
- adds r0, r6
- lsls r0, 2
- ldr r1, _0806D848 @ =gSprites
- adds r0, r1
- adds r1, r2, 0
- bl sub_809D824
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806D848: .4byte gSprites
- thumb_func_end sub_806D7F8
-
- thumb_func_start sub_806D84C
-sub_806D84C: @ 806D84C
- push {r4-r6,lr}
- adds r5, r0, 0
- adds r6, r1, 0
- lsls r5, 24
- lsrs r5, 24
- adds r0, r6, 0
- movs r1, 0x39
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r6, 0
- movs r1, 0x3A
- bl GetMonData
- adds r2, r0, 0
- lsls r2, 16
- lsrs r2, 16
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_806D7F8
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_806D84C
-
- thumb_func_start sub_806D880
-sub_806D880: @ 806D880
- push {r4-r6,lr}
- mov r6, r10
- mov r5, r9
- mov r4, r8
- push {r4-r6}
- sub sp, 0x8
- adds r6, r0, 0
- adds r5, r1, 0
- mov r8, r3
- lsls r6, 24
- lsrs r6, 24
- lsls r5, 24
- lsrs r5, 24
- lsls r2, 24
- lsrs r2, 24
- ldr r3, _0806D904 @ =gUnknown_08376678
- lsls r1, r5, 2
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 3
- adds r1, r0
- adds r1, r3
- ldrb r0, [r1]
- mov r9, r0
- ldrb r1, [r1, 0x1]
- mov r10, r1
- mov r0, r8
- movs r1, 0x41
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- mov r0, r8
- movs r1, 0
- bl GetMonData
- ldr r1, _0806D908 @ =sub_809D62C
- movs r2, 0x5
- str r2, [sp]
- str r0, [sp, 0x4]
- adds r0, r4, 0
- mov r2, r9
- mov r3, r10
- bl sub_809D2FC
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r6, 0
- adds r1, r5, 0
- adds r2, r4, 0
- bl sub_806DE50
- adds r0, r4, 0
- mov r1, r8
- bl sub_806D84C
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806D904: .4byte gUnknown_08376678
-_0806D908: .4byte sub_809D62C
- thumb_func_end sub_806D880
-
- thumb_func_start sub_806D90C
-sub_806D90C: @ 806D90C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r4, r2, 0
- lsls r0, 24
- lsrs r6, r0, 24
- mov r8, r6
- lsls r1, 24
- lsrs r5, r1, 24
- adds r7, r5, 0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _0806D95A
- bl sub_806B528
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0806D946
- adds r0, r6, 0
- adds r1, r5, 0
- movs r2, 0x2
- adds r3, r4, 0
- bl sub_806D880
- b _0806D95A
-_0806D946:
- bl battle_type_is_double
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- mov r0, r8
- adds r1, r7, 0
- adds r3, r4, 0
- bl sub_806D880
-_0806D95A:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_806D90C
-
- thumb_func_start unref_sub_806D964
-unref_sub_806D964: @ 806D964
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0
- b _0806D986
-_0806D96E:
- movs r0, 0x64
- adds r2, r4, 0
- muls r2, r0
- ldr r0, _0806D994 @ =gPlayerParty
- adds r2, r0
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_806D90C
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
-_0806D986:
- ldr r0, _0806D998 @ =gPlayerPartyCount
- ldrb r0, [r0]
- cmp r4, r0
- bcc _0806D96E
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0806D994: .4byte gPlayerParty
-_0806D998: .4byte gPlayerPartyCount
- thumb_func_end unref_sub_806D964
-
- thumb_func_start sub_806D99C
-sub_806D99C: @ 806D99C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- adds r6, r0, 0
- adds r5, r1, 0
- mov r8, r3
- lsls r6, 24
- lsrs r6, 24
- lsls r5, 24
- lsrs r5, 24
- lsls r2, 24
- lsrs r2, 24
- ldr r3, _0806DA04 @ =gUnknown_08376678
- lsls r1, r5, 2
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 3
- adds r1, r0
- adds r1, r3
- ldrb r2, [r1]
- ldrb r3, [r1, 0x1]
- mov r1, r8
- ldrh r0, [r1]
- ldr r1, _0806DA08 @ =sub_809D62C
- movs r4, 0x5
- str r4, [sp]
- mov r7, r8
- ldr r4, [r7, 0x18]
- str r4, [sp, 0x4]
- bl sub_809D2FC
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r6, 0
- adds r1, r5, 0
- adds r2, r4, 0
- bl sub_806DE50
- ldrh r1, [r7, 0x10]
- ldrh r2, [r7, 0x12]
- adds r0, r4, 0
- bl sub_806D7F8
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0806DA04: .4byte gUnknown_08376678
-_0806DA08: .4byte sub_809D62C
- thumb_func_end sub_806D99C
-
- thumb_func_start sub_806DA0C
-sub_806DA0C: @ 806DA0C
- push {r4,lr}
- adds r4, r0, 0
- bl sub_809D638
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _0806DA32
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0806DA30
- ldr r0, _0806DA2C @ =0x0000fffd
- strh r0, [r4, 0x26]
- b _0806DA32
- .align 2, 0
-_0806DA2C: .4byte 0x0000fffd
-_0806DA30:
- strh r1, [r4, 0x26]
-_0806DA32:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_806DA0C
-
- thumb_func_start sub_806DA38
-sub_806DA38: @ 806DA38
- push {lr}
- bl sub_809D638
- pop {r0}
- bx r0
- thumb_func_end sub_806DA38
-
- thumb_func_start sub_806DA44
-sub_806DA44: @ 806DA44
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r4, r2, 24
- cmp r1, 0x5
- bhi _0806DA8E
- bl sub_806DDA0
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _0806DA7C @ =gSprites
- lsls r1, r0, 4
- adds r1, r0
- lsls r2, r1, 2
- adds r1, r2, r3
- movs r0, 0
- strh r0, [r1, 0x26]
- strh r0, [r1, 0x2E]
- cmp r4, 0
- bne _0806DA84
- adds r0, r3, 0
- adds r0, 0x1C
- adds r0, r2, r0
- ldr r1, _0806DA80 @ =sub_806DA38
- b _0806DA8C
- .align 2, 0
-_0806DA7C: .4byte gSprites
-_0806DA80: .4byte sub_806DA38
-_0806DA84:
- adds r0, r3, 0
- adds r0, 0x1C
- adds r0, r2, r0
- ldr r1, _0806DA94 @ =sub_806DA0C
-_0806DA8C:
- str r1, [r0]
-_0806DA8E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0806DA94: .4byte sub_806DA0C
- thumb_func_end sub_806DA44
-
- thumb_func_start sub_806DA98
-sub_806DA98: @ 806DA98
- push {lr}
- ldr r0, _0806DAAC @ =gUnknown_083765DC
- bl LoadSpriteSheet
- ldr r0, _0806DAB0 @ =gUnknown_083765E4
- bl LoadSpritePalette
- pop {r0}
- bx r0
- .align 2, 0
-_0806DAAC: .4byte gUnknown_083765DC
-_0806DAB0: .4byte gUnknown_083765E4
- thumb_func_end sub_806DA98
-
- thumb_func_start sub_806DAB4
-sub_806DAB4: @ 806DAB4
- push {r4,lr}
- adds r4, r0, 0
- ldrh r1, [r4, 0x3C]
- lsls r1, 24
- lsrs r1, 24
- ldr r2, _0806DAE4 @ =gSprites
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, r0, r2
- adds r0, r2, 0
- adds r0, 0x3E
- ldrb r0, [r0]
- lsls r0, 29
- cmp r0, 0
- bge _0806DAE8
- adds r0, r4, 0
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- b _0806DB06
- .align 2, 0
-_0806DAE4: .4byte gSprites
-_0806DAE8:
- adds r3, r4, 0
- adds r3, 0x3E
- ldrb r1, [r3]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r3]
- ldrh r0, [r2, 0x24]
- ldrh r1, [r2, 0x20]
- adds r0, r1
- strh r0, [r4, 0x20]
- ldrh r0, [r2, 0x26]
- ldrh r2, [r2, 0x22]
- adds r0, r2
- strh r0, [r4, 0x22]
-_0806DB06:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_806DAB4
-
- thumb_func_start sub_806DB0C
-sub_806DB0C: @ 806DB0C
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- adds r6, r0, 0
- mov r9, r1
- lsls r6, 24
- lsrs r6, 24
- mov r0, r9
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- ldr r0, _0806DB84 @ =gSprites
- mov r8, r0
- lsls r0, r6, 4
- adds r0, r6
- lsls r0, 2
- add r0, r8
- adds r0, 0x43
- ldrb r3, [r0]
- ldr r0, _0806DB88 @ =gSpriteTemplate_837660C
- subs r3, 0x1
- lsls r3, 24
- lsrs r3, 24
- movs r1, 0xFA
- movs r2, 0xAA
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- mov r0, r8
- adds r5, r4, r0
- movs r0, 0x4
- strh r0, [r5, 0x24]
- movs r0, 0xA
- strh r0, [r5, 0x26]
- movs r0, 0x1C
- add r8, r0
- add r4, r8
- ldr r0, _0806DB8C @ =sub_806DAB4
- str r0, [r4]
- strh r6, [r5, 0x3C]
- adds r0, r5, 0
- mov r1, r9
- bl StartSpriteAnim
- ldr r1, [r4]
- adds r0, r5, 0
- bl _call_via_r1
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806DB84: .4byte gSprites
-_0806DB88: .4byte gSpriteTemplate_837660C
-_0806DB8C: .4byte sub_806DAB4
- thumb_func_end sub_806DB0C
-
- thumb_func_start sub_806DB90
-sub_806DB90: @ 806DB90
- push {r4-r7,lr}
- adds r6, r0, 0
- adds r7, r1, 0
- lsls r2, 24
- lsrs r2, 24
- cmp r2, 0
- beq _0806DBA4
- cmp r2, 0x1
- beq _0806DBEC
- b _0806DC28
-_0806DBA4:
- movs r5, 0
- ldrb r0, [r6]
- cmp r5, r0
- bcs _0806DC28
-_0806DBAC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0806DBE8 @ =gPlayerParty
- adds r0, r1
- movs r1, 0xC
- bl GetMonData
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- beq _0806DBD8
- adds r0, r7, r5
- ldrb r4, [r0]
- adds r0, r1, 0
- bl itemid_is_mail
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl sub_806DB0C
-_0806DBD8:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- ldrb r0, [r6]
- cmp r5, r0
- bcc _0806DBAC
- b _0806DC28
- .align 2, 0
-_0806DBE8: .4byte gPlayerParty
-_0806DBEC:
- movs r5, 0
- b _0806DC22
-_0806DBF0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0806DC30 @ =gEnemyParty
- adds r0, r1
- movs r1, 0xC
- bl GetMonData
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- beq _0806DC1C
- adds r0, r5, r7
- ldrb r4, [r0, 0x6]
- adds r0, r1, 0
- bl itemid_is_mail
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl sub_806DB0C
-_0806DC1C:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
-_0806DC22:
- ldrb r0, [r6, 0x1]
- cmp r5, r0
- bcc _0806DBF0
-_0806DC28:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0806DC30: .4byte gEnemyParty
- thumb_func_end sub_806DB90
-
- thumb_func_start sub_806DC34
-sub_806DC34: @ 806DC34
- 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
- movs r7, 0
- ldr r0, _0806DCC8 @ =gSprites
- mov r9, r0
- movs r1, 0x1C
- add r1, r9
- mov r10, r1
-_0806DC50:
- movs r0, 0x64
- muls r0, r7
- ldr r1, _0806DCCC @ =gPlayerParty
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _0806DCB0
- mov r0, r8
- adds r1, r7, 0
- bl sub_806DDA0
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r0, _0806DCD0 @ =gSpriteTemplate_837660C
- movs r1, 0xFA
- movs r2, 0xAA
- movs r3, 0x4
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- mov r1, r9
- adds r6, r4, r1
- movs r1, 0x4
- strh r1, [r6, 0x24]
- movs r1, 0xA
- strh r1, [r6, 0x26]
- strh r5, [r6, 0x3C]
- lsls r1, r5, 4
- adds r1, r5
- lsls r1, 2
- add r1, r9
- strh r0, [r1, 0x3C]
- mov r0, r8
- adds r1, r7, 0
- bl sub_806DF60
- add r4, r10
- ldr r1, [r4]
- adds r0, r6, 0
- bl _call_via_r1
-_0806DCB0:
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0x5
- bls _0806DC50
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0806DCC8: .4byte gSprites
-_0806DCCC: .4byte gPlayerParty
-_0806DCD0: .4byte gSpriteTemplate_837660C
- thumb_func_end sub_806DC34
-
- thumb_func_start sub_806DCD4
-sub_806DCD4: @ 806DCD4
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 16
- lsrs r7, r2, 16
- bl sub_806DDA0
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _0806DD2C @ =gSpriteTemplate_837660C
- movs r1, 0xFA
- movs r2, 0xAA
- movs r3, 0x4
- bl CreateSprite
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _0806DD30 @ =gSprites
- lsls r0, r6, 4
- adds r0, r6
- lsls r0, 2
- adds r5, r0, r1
- movs r0, 0x4
- strh r0, [r5, 0x24]
- movs r0, 0xA
- strh r0, [r5, 0x26]
- strh r4, [r5, 0x3C]
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r0, r1
- strh r6, [r0, 0x3C]
- cmp r7, 0
- bne _0806DD34
- adds r0, r5, 0
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- b _0806DD5C
- .align 2, 0
-_0806DD2C: .4byte gSpriteTemplate_837660C
-_0806DD30: .4byte gSprites
-_0806DD34:
- adds r0, r7, 0
- bl itemid_is_mail
- lsls r0, 24
- cmp r0, 0
- beq _0806DD46
- adds r0, r5, 0
- movs r1, 0x1
- b _0806DD4A
-_0806DD46:
- adds r0, r5, 0
- movs r1, 0
-_0806DD4A:
- bl StartSpriteAnim
- adds r2, r5, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
-_0806DD5C:
- ldr r2, _0806DD78 @ =gSprites
- lsls r0, r6, 4
- adds r0, r6
- lsls r0, 2
- adds r1, r2, 0
- adds r1, 0x1C
- adds r1, r0, r1
- adds r0, r2
- ldr r1, [r1]
- bl _call_via_r1
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0806DD78: .4byte gSprites
- thumb_func_end sub_806DCD4
-
- thumb_func_start sub_806DD7C
-sub_806DD7C: @ 806DD7C
- ldrh r2, [r0, 0x3C]
- lsls r2, 24
- lsrs r2, 24
- ldr r3, _0806DD9C @ =gSprites
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r3
- ldrh r2, [r1, 0x24]
- ldrh r3, [r1, 0x20]
- adds r2, r3
- strh r2, [r0, 0x20]
- ldrh r1, [r1, 0x22]
- strh r1, [r0, 0x22]
- bx lr
- .align 2, 0
-_0806DD9C: .4byte gSprites
- thumb_func_end sub_806DD7C
-
- thumb_func_start sub_806DDA0
-sub_806DDA0: @ 806DDA0
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r1, 24
- lsrs r0, r1, 24
- cmp r0, 0x5
- bhi _0806DE38
- lsls r0, 2
- ldr r1, _0806DDB8 @ =_0806DDBC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0806DDB8: .4byte _0806DDBC
- .align 2, 0
-_0806DDBC:
- .4byte _0806DE38
- .4byte _0806DDD4
- .4byte _0806DDE8
- .4byte _0806DDFC
- .4byte _0806DE10
- .4byte _0806DE24
-_0806DDD4:
- ldr r0, _0806DDE4 @ =gTasks
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 3
- adds r1, r0
- ldrb r0, [r1, 0x8]
- b _0806DE46
- .align 2, 0
-_0806DDE4: .4byte gTasks
-_0806DDE8:
- ldr r0, _0806DDF8 @ =gTasks
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0xA]
- b _0806DE44
- .align 2, 0
-_0806DDF8: .4byte gTasks
-_0806DDFC:
- ldr r0, _0806DE0C @ =gTasks
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 3
- adds r1, r0
- ldrb r0, [r1, 0xA]
- b _0806DE46
- .align 2, 0
-_0806DE0C: .4byte gTasks
-_0806DE10:
- ldr r0, _0806DE20 @ =gTasks
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0xC]
- b _0806DE44
- .align 2, 0
-_0806DE20: .4byte gTasks
-_0806DE24:
- ldr r0, _0806DE34 @ =gTasks
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 3
- adds r1, r0
- ldrb r0, [r1, 0xC]
- b _0806DE46
- .align 2, 0
-_0806DE34: .4byte gTasks
-_0806DE38:
- ldr r0, _0806DE4C @ =gTasks
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x8]
-_0806DE44:
- lsrs r0, 8
-_0806DE46:
- pop {r1}
- bx r1
- .align 2, 0
-_0806DE4C: .4byte gTasks
- thumb_func_end sub_806DDA0
-
- thumb_func_start sub_806DE50
-sub_806DE50: @ 806DE50
- push {r4,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- lsls r1, 24
- lsrs r0, r1, 24
- lsls r2, 24
- lsrs r4, r2, 24
- cmp r0, 0x5
- bhi _0806DF24
- lsls r0, 2
- ldr r1, _0806DE6C @ =_0806DE70
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0806DE6C: .4byte _0806DE70
- .align 2, 0
-_0806DE70:
- .4byte _0806DE88
- .4byte _0806DEA0
- .4byte _0806DEC0
- .4byte _0806DED8
- .4byte _0806DEF8
- .4byte _0806DF10
-_0806DE88:
- ldr r1, _0806DE9C @ =gTasks
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r0, r1
- ldrb r1, [r0, 0x8]
- lsls r2, r4, 8
- orrs r1, r2
- strh r1, [r0, 0x8]
- b _0806DF24
- .align 2, 0
-_0806DE9C: .4byte gTasks
-_0806DEA0:
- ldr r0, _0806DEB8 @ =gTasks
- lsls r1, r3, 2
- adds r1, r3
- lsls r1, 3
- adds r1, r0
- ldrh r2, [r1, 0x8]
- ldr r0, _0806DEBC @ =0xffffff00
- ands r0, r2
- orrs r0, r4
- strh r0, [r1, 0x8]
- b _0806DF24
- .align 2, 0
-_0806DEB8: .4byte gTasks
-_0806DEBC: .4byte 0xffffff00
-_0806DEC0:
- ldr r1, _0806DED4 @ =gTasks
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r0, r1
- ldrb r1, [r0, 0xA]
- lsls r2, r4, 8
- orrs r1, r2
- strh r1, [r0, 0xA]
- b _0806DF24
- .align 2, 0
-_0806DED4: .4byte gTasks
-_0806DED8:
- ldr r0, _0806DEF0 @ =gTasks
- lsls r1, r3, 2
- adds r1, r3
- lsls r1, 3
- adds r1, r0
- ldrh r2, [r1, 0xA]
- ldr r0, _0806DEF4 @ =0xffffff00
- ands r0, r2
- orrs r0, r4
- strh r0, [r1, 0xA]
- b _0806DF24
- .align 2, 0
-_0806DEF0: .4byte gTasks
-_0806DEF4: .4byte 0xffffff00
-_0806DEF8:
- ldr r1, _0806DF0C @ =gTasks
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r0, r1
- ldrb r1, [r0, 0xC]
- lsls r2, r4, 8
- orrs r1, r2
- strh r1, [r0, 0xC]
- b _0806DF24
- .align 2, 0
-_0806DF0C: .4byte gTasks
-_0806DF10:
- ldr r0, _0806DF2C @ =gTasks
- lsls r1, r3, 2
- adds r1, r3
- lsls r1, 3
- adds r1, r0
- ldrh r2, [r1, 0xC]
- ldr r0, _0806DF30 @ =0xffffff00
- ands r0, r2
- orrs r0, r4
- strh r0, [r1, 0xC]
-_0806DF24:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0806DF2C: .4byte gTasks
-_0806DF30: .4byte 0xffffff00
- thumb_func_end sub_806DE50
-
- thumb_func_start sub_806DF34
-sub_806DF34: @ 806DF34
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- bl sub_806DDA0
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0806DF5C @ =gSprites
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrh r0, [r1, 0x3C]
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_0806DF5C: .4byte gSprites
- thumb_func_end sub_806DF34
-
- thumb_func_start sub_806DF60
-sub_806DF60: @ 806DF60
- push {r4-r6,lr}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r4, 24
- lsrs r4, 24
- adds r1, r4, 0
- bl sub_806DF34
- lsls r0, 24
- lsrs r5, r0, 24
- adds r6, r5, 0
- movs r0, 0x64
- adds r1, r4, 0
- muls r1, r0
- ldr r0, _0806DFA4 @ =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0xC
- bl GetMonData
- cmp r0, 0
- bne _0806DFAC
- ldr r1, _0806DFA8 @ =gSprites
- lsls r0, r5, 4
- adds r0, r5
- lsls r0, 2
- adds r0, r1
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- b _0806DFF6
- .align 2, 0
-_0806DFA4: .4byte gPlayerParty
-_0806DFA8: .4byte gSprites
-_0806DFAC:
- adds r0, r4, 0
- movs r1, 0xC
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- bl itemid_is_mail
- lsls r0, 24
- cmp r0, 0
- beq _0806DFD8
- lsls r4, r5, 4
- adds r4, r5
- lsls r4, 2
- ldr r0, _0806DFD4 @ =gSprites
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x1
- b _0806DFE6
- .align 2, 0
-_0806DFD4: .4byte gSprites
-_0806DFD8:
- lsls r4, r6, 4
- adds r4, r6
- lsls r4, 2
- ldr r0, _0806DFFC @ =gSprites
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0
-_0806DFE6:
- bl StartSpriteAnim
- adds r4, 0x3E
- ldrb r1, [r4]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r4]
-_0806DFF6:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806DFFC: .4byte gSprites
- thumb_func_end sub_806DF60
-
- thumb_func_start box_print
-box_print: @ 806E000
- push {r4-r6,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r6, r2, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0
- str r0, [sp]
- ldr r5, _0806E040 @ =gTileBuffer
- ldr r2, _0806E044 @ =0x01000100
- mov r0, sp
- adds r1, r5, 0
- bl CpuFastSet
- ldr r0, _0806E048 @ =gWindowConfig_81E6CAC
- adds r1, r5, 0
- adds r2, r6, 0
- bl sub_8004E3C
- lsls r4, 10
- ldr r0, _0806E04C @ =0x06014000
- adds r4, r0
- adds r0, r5, 0
- adds r1, r4, 0
- movs r2, 0x80
- bl CpuFastSet
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806E040: .4byte gTileBuffer
-_0806E044: .4byte 0x01000100
-_0806E048: .4byte gWindowConfig_81E6CAC
-_0806E04C: .4byte 0x06014000
- thumb_func_end box_print
-
- thumb_func_start sub_806E050
-sub_806E050: @ 806E050
- push {r4,r5,lr}
- sub sp, 0xC
- adds r4, r0, 0
- adds r5, r1, 0
- adds r0, r2, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- mov r1, sp
- bl GetMonNickname
- adds r0, r4, 0
- adds r1, r5, 0
- mov r2, sp
- bl box_print
- add sp, 0xC
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_806E050
-
- thumb_func_start sub_806E07C
-sub_806E07C: @ 806E07C
- push {r4-r6,lr}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r5, r0, 24
- adds r6, r5, 0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _0806E0BC
- bl sub_806B528
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0806E0AA
- adds r0, r5, 0
- movs r1, 0x2
- adds r2, r4, 0
- bl sub_806E050
- b _0806E0BC
-_0806E0AA:
- bl battle_type_is_double
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r6, 0
- adds r2, r4, 0
- bl sub_806E050
-_0806E0BC:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_806E07C
-
- thumb_func_start sub_806E0C4
-sub_806E0C4: @ 806E0C4
- push {r4-r6,lr}
- movs r4, 0
- movs r6, 0x64
- ldr r5, _0806E0E8 @ =gPlayerParty
-_0806E0CC:
- adds r1, r4, 0
- muls r1, r6
- adds r1, r5
- adds r0, r4, 0
- bl sub_806E07C
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x5
- bls _0806E0CC
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806E0E8: .4byte gPlayerParty
- thumb_func_end sub_806E0C4
-
- thumb_func_start GetMonNickname
-GetMonNickname: @ 806E0EC
- push {r4,lr}
- adds r4, r1, 0
- movs r1, 0x2
- adds r2, r4, 0
- bl GetMonData
- adds r0, r4, 0
- bl StringGetEnd10
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end GetMonNickname
-
- thumb_func_start sub_806E104
-sub_806E104: @ 806E104
- push {r4,r5,lr}
- lsls r0, 24
- lsls r1, 24
- lsrs r1, 24
- ldr r4, _0806E15C @ =gUnknown_08376738
- lsrs r0, 22
- lsls r3, r1, 1
- adds r3, r1
- lsls r3, 3
- adds r0, r3
- adds r0, r4
- ldrb r1, [r0]
- subs r1, 0x1
- lsls r1, 24
- lsrs r1, 24
- ldrb r0, [r0, 0x1]
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 19
- adds r1, r0
- lsls r1, 1
- ldr r0, _0806E160 @ =0x0600f000
- adds r4, r1, r0
- lsls r2, 26
- lsrs r2, 24
- movs r3, 0
- movs r0, 0xC6
- lsls r0, 1
- adds r2, r0
- ldr r0, _0806E164 @ =0xffffb000
- adds r5, r0, 0
-_0806E142:
- lsls r0, r3, 1
- adds r0, r4
- adds r1, r2, r3
- orrs r1, r5
- strh r1, [r0]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x3
- bls _0806E142
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0806E15C: .4byte gUnknown_08376738
-_0806E160: .4byte 0x0600f000
-_0806E164: .4byte 0xffffb000
- thumb_func_end sub_806E104
-
- thumb_func_start sub_806E168
-sub_806E168: @ 806E168
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_806B528
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0806E17E
- movs r3, 0x2
- b _0806E186
-_0806E17E:
- bl battle_type_is_double
- lsls r0, 24
- lsrs r3, r0, 24
-_0806E186:
- ldr r1, _0806E1C8 @ =gUnknown_08376738
- lsls r2, r4, 2
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 3
- adds r2, r0
- adds r2, r1
- ldrb r1, [r2]
- subs r1, 0x1
- lsls r1, 24
- lsrs r1, 24
- ldrb r0, [r2, 0x1]
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 19
- adds r1, r0
- lsls r1, 1
- ldr r0, _0806E1CC @ =0x0600f000
- adds r1, r0
- movs r3, 0
- movs r2, 0
-_0806E1B0:
- lsls r0, r3, 1
- adds r0, r1
- strh r2, [r0]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x3
- bls _0806E1B0
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0806E1C8: .4byte gUnknown_08376738
-_0806E1CC: .4byte 0x0600f000
- thumb_func_end sub_806E168
-
- thumb_func_start sub_806E1D0
-sub_806E1D0: @ 806E1D0
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r2, 19
- adds r1, r2
- lsls r1, 1
- ldr r2, _0806E1F0 @ =0x0600f000
- adds r1, r2
- movs r2, 0x86
- lsls r2, 1
- adds r0, r2
- strh r0, [r1]
- bx lr
- .align 2, 0
-_0806E1F0: .4byte 0x0600f000
- thumb_func_end sub_806E1D0
-
- thumb_func_start sub_806E1F4
-sub_806E1F4: @ 806E1F4
- push {r4-r6,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r2, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r1, 24
- lsrs r1, 24
- lsls r5, 24
- lsrs r5, 24
- ldr r3, _0806E278 @ =gUnknown_08376738
- lsls r2, r4, 2
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- adds r2, r0
- adds r2, r3
- ldrb r1, [r2]
- ldrb r2, [r2, 0x1]
- subs r1, 0x1
- lsls r1, 24
- lsrs r1, 24
- adds r2, 0x1
- lsls r2, 24
- lsrs r2, 24
- movs r0, 0x40
- bl sub_806E1D0
- ldr r6, _0806E27C @ =gStringVar1
- movs r0, 0xFC
- strb r0, [r6]
- movs r0, 0x12
- strb r0, [r6, 0x1]
- movs r0, 0x8
- strb r0, [r6, 0x2]
- adds r0, r6, 0x3
- adds r1, r5, 0
- bl ConvertIntToDecimalString
- movs r0, 0
- str r0, [sp]
- ldr r5, _0806E280 @ =gUnknown_02039460
- ldr r2, _0806E284 @ =0x01000020
- mov r0, sp
- adds r1, r5, 0
- bl CpuFastSet
- ldr r0, _0806E288 @ =gWindowConfig_81E6CAC
- ldr r2, _0806E28C @ =0xffffff00
- adds r1, r5, r2
- adds r2, r6, 0
- bl sub_8004E3C
- lsls r4, 10
- ldr r0, _0806E290 @ =0x06014200
- adds r4, r0
- adds r0, r5, 0
- adds r1, r4, 0
- movs r2, 0x20
- bl CpuFastSet
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806E278: .4byte gUnknown_08376738
-_0806E27C: .4byte gStringVar1
-_0806E280: .4byte gUnknown_02039460
-_0806E284: .4byte 0x01000020
-_0806E288: .4byte gWindowConfig_81E6CAC
-_0806E28C: .4byte 0xffffff00
-_0806E290: .4byte 0x06014200
- thumb_func_end sub_806E1F4
-
- thumb_func_start sub_806E294
-sub_806E294: @ 806E294
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r0, r2, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- movs r1, 0x38
- bl GetMonData
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_806E1F4
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_806E294
-
- thumb_func_start sub_806E2C0
-sub_806E2C0: @ 806E2C0
- push {r4-r7,lr}
- adds r5, r1, 0
- lsls r0, 24
- lsrs r7, r0, 24
- adds r0, r5, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _0806E32E
- adds r0, r5, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _0806E32E
- adds r0, r5, 0
- bl sub_80A1CD8
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_806B528
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0806E2FA
- movs r6, 0x2
- b _0806E302
-_0806E2FA:
- bl battle_type_is_double
- lsls r0, 24
- lsrs r6, r0, 24
-_0806E302:
- cmp r4, 0
- beq _0806E31A
- cmp r4, 0x6
- beq _0806E31A
- subs r2, r4, 0x1
- lsls r2, 24
- lsrs r2, 24
- adds r0, r7, 0
- adds r1, r6, 0
- bl sub_806E104
- b _0806E324
-_0806E31A:
- adds r0, r7, 0
- adds r1, r6, 0
- adds r2, r5, 0
- bl sub_806E294
-_0806E324:
- adds r0, r7, 0
- adds r1, r6, 0
- adds r2, r5, 0
- bl sub_806E3C0
-_0806E32E:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_806E2C0
-
- thumb_func_start sub_806E334
-sub_806E334: @ 806E334
- push {r4-r6,lr}
- movs r4, 0
- movs r6, 0x64
- ldr r5, _0806E358 @ =gPlayerParty
-_0806E33C:
- adds r1, r4, 0
- muls r1, r6
- adds r1, r5
- adds r0, r4, 0
- bl sub_806E2C0
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x5
- bls _0806E33C
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806E358: .4byte gPlayerParty
- thumb_func_end sub_806E334
-
- thumb_func_start sub_806E35C
-sub_806E35C: @ 806E35C
- push {r4-r7,lr}
- ldr r4, [sp, 0x14]
- lsls r0, 16
- lsrs r0, 16
- lsls r1, 24
- lsrs r7, r1, 24
- lsls r2, 24
- lsrs r5, r2, 24
- lsls r3, 24
- lsrs r6, r3, 24
- adds r1, r4, 0
- bl sub_8040D8C
- cmp r0, 0
- bne _0806E3BA
- ldr r2, _0806E3A4 @ =gUnknown_08376738
- lsls r1, r6, 2
- lsls r0, r5, 1
- adds r0, r5
- lsls r0, 3
- adds r1, r0
- adds r1, r2
- ldrb r0, [r1]
- adds r0, 0x3
- lsls r0, 24
- lsrs r3, r0, 24
- ldrb r0, [r1, 0x1]
- adds r0, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r7, 0
- beq _0806E3A8
- cmp r7, 0xFE
- beq _0806E3B2
- b _0806E3BA
- .align 2, 0
-_0806E3A4: .4byte gUnknown_08376738
-_0806E3A8:
- movs r0, 0x42
- adds r1, r3, 0
- bl sub_806E1D0
- b _0806E3BA
-_0806E3B2:
- movs r0, 0x44
- adds r1, r3, 0
- bl sub_806E1D0
-_0806E3BA:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_806E35C
-
- thumb_func_start sub_806E3C0
-sub_806E3C0: @ 806E3C0
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0x4
- mov r8, r0
- adds r6, r1, 0
- adds r5, r2, 0
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r6, 24
- lsrs r6, 24
- ldr r0, _0806E41C @ =gStringVar1
- mov r9, r0
- adds r0, r5, 0
- mov r1, r9
- bl GetMonNickname
- adds r0, r5, 0
- movs r1, 0x41
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- bl GetMonGender
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- mov r0, r9
- str r0, [sp]
- adds r0, r4, 0
- adds r2, r6, 0
- mov r3, r8
- bl sub_806E35C
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806E41C: .4byte gStringVar1
- thumb_func_end sub_806E3C0
-
- thumb_func_start sub_806E420
-sub_806E420: @ 806E420
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r1, r2, 0
- adds r5, r3, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r1, 16
- lsrs r1, 16
- lsls r5, 16
- lsrs r5, 16
- ldr r2, _0806E48C @ =gStringVar1
- adds r0, r2, 0
- movs r2, 0xF
- movs r3, 0x1
- bl sub_8072C14
- adds r2, r0, 0
- movs r0, 0xBA
- strb r0, [r2]
- adds r2, 0x1
- adds r0, r2, 0
- adds r1, r5, 0
- movs r2, 0x23
- movs r3, 0x1
- bl sub_8072C14
- movs r0, 0
- str r0, [sp]
- ldr r5, _0806E490 @ =gUnknown_02039460
- ldr r2, _0806E494 @ =0x01000040
- mov r0, sp
- adds r1, r5, 0
- bl CpuFastSet
- ldr r0, _0806E498 @ =gWindowConfig_81E6CAC
- ldr r2, _0806E49C @ =0xffffff00
- adds r1, r5, r2
- ldr r2, _0806E48C @ =gStringVar1
- bl sub_8004E3C
- lsls r4, 10
- ldr r0, _0806E4A0 @ =0x06014300
- adds r4, r0
- adds r0, r5, 0
- adds r1, r4, 0
- movs r2, 0x40
- bl CpuFastSet
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0806E48C: .4byte gStringVar1
-_0806E490: .4byte gUnknown_02039460
-_0806E494: .4byte 0x01000040
-_0806E498: .4byte gWindowConfig_81E6CAC
-_0806E49C: .4byte 0xffffff00
-_0806E4A0: .4byte 0x06014300
- thumb_func_end sub_806E420
-
- thumb_func_start sub_806E4A4
-sub_806E4A4: @ 806E4A4
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- adds r5, r0, 0
- adds r6, r1, 0
- mov r8, r2
- lsls r5, 24
- lsrs r5, 24
- lsls r6, 24
- lsrs r6, 24
- mov r0, r8
- movs r1, 0x39
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- mov r0, r8
- movs r1, 0x3A
- bl GetMonData
- adds r3, r0, 0
- lsls r3, 16
- lsrs r3, 16
- adds r0, r5, 0
- adds r1, r6, 0
- adds r2, r4, 0
- bl sub_806E420
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_806E4A4
-
- thumb_func_start sub_806E4E8
-sub_806E4E8: @ 806E4E8
- push {r4-r6,lr}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r5, r0, 24
- adds r6, r5, 0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _0806E534
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _0806E534
- bl sub_806B528
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0806E522
- adds r0, r5, 0
- movs r1, 0x2
- adds r2, r4, 0
- bl sub_806E4A4
- b _0806E534
-_0806E522:
- bl battle_type_is_double
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r6, 0
- adds r2, r4, 0
- bl sub_806E4A4
-_0806E534:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_806E4E8
-
- thumb_func_start sub_806E53C
-sub_806E53C: @ 806E53C
- push {r4-r6,lr}
- movs r4, 0
- movs r6, 0x64
- ldr r5, _0806E560 @ =gPlayerParty
-_0806E544:
- adds r1, r4, 0
- muls r1, r6
- adds r1, r5
- adds r0, r4, 0
- bl sub_806E4E8
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x5
- bls _0806E544
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806E560: .4byte gPlayerParty
- thumb_func_end sub_806E53C
-
- thumb_func_start unref_sub_806E564
-unref_sub_806E564: @ 806E564
- bx lr
- thumb_func_end unref_sub_806E564
-
- thumb_func_start unref_sub_806E568
-unref_sub_806E568: @ 806E568
- bx lr
- thumb_func_end unref_sub_806E568
-
- thumb_func_start nullsub_12
-nullsub_12: @ 806E56C
- bx lr
- thumb_func_end nullsub_12
-
- thumb_func_start nullsub_13
-nullsub_13: @ 806E570
- bx lr
- thumb_func_end nullsub_13
-
- thumb_func_start sub_806E574
-sub_806E574: @ 806E574
- push {r4-r6,lr}
- sub sp, 0x18
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 24
- lsrs r5, r1, 24
- lsls r2, 16
- lsrs r2, 16
- lsls r3, 16
- lsrs r3, 16
- ldr r0, _0806E624 @ =0xffff8000
- str r0, [sp, 0x14]
- str r3, [sp]
- str r2, [sp, 0x4]
- movs r0, 0
- str r0, [sp, 0x8]
- lsls r2, 16
- asrs r2, 16
- lsls r3, 16
- asrs r3, 16
- adds r0, r2, 0
- adds r1, r3, 0
- bl sub_8046200
- lsls r0, 24
- lsrs r3, r0, 24
- adds r4, r3, 0
- cmp r3, 0x2
- bls _0806E5BE
- mov r2, sp
- ldrb r1, [r2, 0xC]
- movs r0, 0x20
- negs r0, r0
- ands r0, r1
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2, 0xC]
-_0806E5BE:
- cmp r3, 0x2
- bne _0806E5D2
- mov r2, sp
- ldrb r1, [r2, 0xC]
- movs r0, 0x20
- negs r0, r0
- ands r0, r1
- movs r1, 0x5
- orrs r0, r1
- strb r0, [r2, 0xC]
-_0806E5D2:
- cmp r4, 0x1
- bhi _0806E5E6
- mov r2, sp
- ldrb r1, [r2, 0xC]
- movs r0, 0x20
- negs r0, r0
- ands r0, r1
- movs r1, 0x6
- orrs r0, r1
- strb r0, [r2, 0xC]
-_0806E5E6:
- movs r0, 0x80
- lsls r0, 1
- str r0, [sp, 0x10]
- ldr r2, _0806E628 @ =gUnknown_08376858
- lsls r1, r6, 2
- lsls r0, r5, 1
- adds r0, r5
- lsls r0, 3
- adds r1, r0
- adds r1, r2
- ldr r4, [r1]
- add r1, sp, 0x14
- mov r0, sp
- adds r2, r4, 0
- movs r3, 0
- bl sub_80460C8
- subs r4, 0x4
- ldr r1, _0806E62C @ =0x00003109
- adds r0, r1, 0
- strh r0, [r4]
- adds r1, 0x1
- adds r0, r1, 0
- strh r0, [r4, 0x2]
- adds r1, 0x1
- adds r0, r1, 0
- strh r0, [r4, 0x10]
- add sp, 0x18
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806E624: .4byte 0xffff8000
-_0806E628: .4byte gUnknown_08376858
-_0806E62C: .4byte 0x00003109
- thumb_func_end sub_806E574
-
- thumb_func_start sub_806E630
-sub_806E630: @ 806E630
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- adds r5, r0, 0
- adds r6, r1, 0
- mov r8, r2
- lsls r5, 24
- lsrs r5, 24
- lsls r6, 24
- lsrs r6, 24
- mov r0, r8
- movs r1, 0x39
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- mov r0, r8
- movs r1, 0x3A
- bl GetMonData
- adds r3, r0, 0
- lsls r3, 16
- lsrs r3, 16
- adds r0, r5, 0
- adds r1, r6, 0
- adds r2, r4, 0
- bl sub_806E574
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_806E630
-
- thumb_func_start sub_806E674
-sub_806E674: @ 806E674
- push {r4-r6,lr}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r5, r0, 24
- adds r6, r5, 0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _0806E6C0
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _0806E6C0
- bl sub_806B528
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0806E6AE
- adds r0, r5, 0
- movs r1, 0x2
- adds r2, r4, 0
- bl sub_806E630
- b _0806E6C0
-_0806E6AE:
- bl battle_type_is_double
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r6, 0
- adds r2, r4, 0
- bl sub_806E630
-_0806E6C0:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_806E674
-
- thumb_func_start sub_806E6C8
-sub_806E6C8: @ 806E6C8
- push {r4-r6,lr}
- movs r4, 0
- movs r6, 0x64
- ldr r5, _0806E6EC @ =gPlayerParty
-_0806E6D0:
- adds r1, r4, 0
- muls r1, r6
- adds r1, r5
- adds r0, r4, 0
- bl sub_806E674
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x5
- bls _0806E6D0
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806E6EC: .4byte gPlayerParty
- thumb_func_end sub_806E6C8
-
- thumb_func_start sub_806E6F0
-sub_806E6F0: @ 806E6F0
- push {r4,r5,lr}
- sub sp, 0x64
- adds r4, r0, 0
- adds r5, r1, 0
- mov r0, sp
- adds r1, r4, 0
- movs r2, 0x64
- bl memcpy
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x64
- bl memcpy
- adds r0, r5, 0
- mov r1, sp
- movs r2, 0x64
- bl memcpy
- add sp, 0x64
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_806E6F0
-
- thumb_func_start sub_806E720
-sub_806E720: @ 806E720
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 21
- adds r0, r3
- ldrb r4, [r0]
- lsls r4, 25
- movs r3, 0x80
- lsls r3, 18
- adds r4, r3
- lsrs r4, 24
- ldrb r0, [r0, 0x1]
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- movs r3, 0x1E
- subs r3, r0
- strb r3, [r1]
- movs r0, 0x14
- subs r0, r4
- strb r0, [r2]
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_806E720
-
- thumb_func_start sub_806E750
-sub_806E750: @ 806E750
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0xC
- adds r5, r0, 0
- adds r4, r1, 0
- mov r9, r2
- adds r6, r3, 0
- lsls r5, 24
- lsrs r5, 24
- lsls r6, 24
- lsrs r6, 24
- movs r0, 0x9
- add r0, sp
- mov r8, r0
- adds r0, r5, 0
- add r1, sp, 0x8
- mov r2, r8
- adds r3, r4, 0
- bl sub_806E720
- add r0, sp, 0x8
- ldrb r0, [r0]
- mov r2, r8
- ldrb r1, [r2]
- lsls r5, 3
- adds r5, r4
- ldrb r2, [r5, 0x1]
- ldrb r3, [r5]
- mov r4, r9
- str r4, [sp]
- ldr r4, [r5, 0x4]
- str r4, [sp, 0x4]
- bl sub_8089C50
- add r0, sp, 0x8
- ldrb r1, [r0]
- adds r1, 0x1
- lsls r1, 24
- lsrs r1, 24
- mov r0, r8
- ldrb r2, [r0]
- adds r2, 0x1
- lsls r2, 24
- lsrs r2, 24
- ldrb r3, [r5]
- str r6, [sp]
- ldrb r0, [r5, 0x1]
- subs r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x4]
- movs r0, 0
- bl InitMenu
- add sp, 0xC
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_806E750
-
- thumb_func_start sub_806E7D0
-sub_806E7D0: @ 806E7D0
- push {r4-r6,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r6, r1, 0
- lsls r4, 24
- lsrs r4, 24
- mov r5, sp
- adds r5, 0x1
- adds r0, r4, 0
- mov r1, sp
- adds r2, r5, 0
- adds r3, r6, 0
- bl sub_806E720
- mov r0, sp
- ldrb r0, [r0]
- ldrb r1, [r5]
- lsls r4, 3
- adds r4, r6
- ldrb r2, [r4, 0x1]
- adds r2, r0, r2
- lsls r2, 24
- lsrs r2, 24
- ldrb r3, [r4]
- lsls r3, 1
- adds r3, r1, r3
- adds r3, 0x1
- lsls r3, 24
- lsrs r3, 24
- bl MenuZeroFillWindowRect
- bl sub_8072DEC
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_806E7D0
-
- thumb_func_start sub_806E81C
-sub_806E81C: @ 806E81C
- lsls r0, 24
- lsls r3, 24
- lsrs r3, 24
- lsrs r0, 21
- adds r0, r1
- ldr r0, [r0, 0x4]
- adds r0, r3
- ldrb r0, [r0]
- lsls r0, 3
- adds r0, r2
- ldr r0, [r0, 0x4]
- bx lr
- thumb_func_end sub_806E81C
-
- thumb_func_start sub_806E834
-sub_806E834: @ 806E834
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r4, r1, 24
- lsrs r4, 24
- ldr r1, _0806E878 @ =gUnknown_0202E8F6
- movs r0, 0x1
- strb r0, [r1]
- movs r0, 0x3
- movs r1, 0xE
- movs r2, 0x1A
- movs r3, 0x13
- bl MenuDrawTextWindow
- adds r0, r5, 0
- movs r1, 0x4
- movs r2, 0xF
- bl MenuPrintMessage
- ldr r0, _0806E87C @ =sub_806E884
- movs r1, 0x1
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0806E880 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r4, [r1, 0x8]
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0806E878: .4byte gUnknown_0202E8F6
-_0806E87C: .4byte sub_806E884
-_0806E880: .4byte gTasks
- thumb_func_end sub_806E834
-
- thumb_func_start sub_806E884
-sub_806E884: @ 806E884
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r5, r4, 0
- bl MenuUpdateWindowText
- lsls r0, 24
- cmp r0, 0
- beq _0806E8C0
- ldr r1, _0806E8C8 @ =gUnknown_0202E8F6
- movs r0, 0
- strb r0, [r1]
- ldr r1, _0806E8CC @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0x8
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _0806E8BA
- movs r0, 0x3
- movs r1, 0xE
- movs r2, 0x1A
- movs r3, 0x13
- bl MenuZeroFillWindowRect
-_0806E8BA:
- adds r0, r5, 0
- bl DestroyTask
-_0806E8C0:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0806E8C8: .4byte gUnknown_0202E8F6
-_0806E8CC: .4byte gTasks
- thumb_func_end sub_806E884
-
- thumb_func_start sub_806E8D0
-sub_806E8D0: @ 806E8D0
- push {r4,r5,lr}
- adds r5, r1, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r5, 16
- lsrs r5, 16
- ldr r4, _0806E8FC @ =0x0201c000
- str r2, [r4, 0x10]
- strb r0, [r4, 0x4]
- bl sub_806CA38
- strb r0, [r4, 0x5]
- strh r5, [r4, 0x6]
- ldrb r1, [r4, 0x5]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0806E900 @ =gPlayerParty
- adds r0, r1
- str r0, [r4]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0806E8FC: .4byte 0x0201c000
-_0806E900: .4byte gPlayerParty
- thumb_func_end sub_806E8D0
-
- thumb_func_start sub_806E904
-sub_806E904: @ 806E904
- push {r4,r5,lr}
- sub sp, 0x4
- adds r5, r0, 0
- lsls r1, 16
- lsrs r4, r1, 16
- adds r0, r4, 0
- bl itemid_is_mail
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0806E93C
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_80A2BC4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- bne _0806E930
- movs r0, 0x1
- b _0806E958
-_0806E930:
- ldr r1, _0806E938 @ =gUnknown_0202E8F4
- movs r0, 0x2
- b _0806E940
- .align 2, 0
-_0806E938: .4byte gUnknown_0202E8F4
-_0806E93C:
- ldr r1, _0806E960 @ =gUnknown_0202E8F4
- movs r0, 0x1
-_0806E940:
- strb r0, [r1]
- mov r0, sp
- strb r4, [r0]
- mov r1, sp
- lsrs r0, r4, 8
- strb r0, [r1, 0x1]
- adds r0, r5, 0
- movs r1, 0xC
- mov r2, sp
- bl SetMonData
- movs r0, 0
-_0806E958:
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0806E960: .4byte gUnknown_0202E8F4
- thumb_func_end sub_806E904
-
- thumb_func_start sub_806E964
-sub_806E964: @ 806E964
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- mov r8, r2
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 16
- lsrs r5, r1, 16
- mov r9, r5
- ldr r2, _0806E9D4 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r6, r1, r2
- ldr r1, _0806E9D8 @ =TaskDummy
- str r1, [r6]
- adds r1, r5, 0
- mov r2, r8
- bl sub_806E8D0
- ldr r4, _0806E9DC @ =0x0201c000
- ldr r0, [r4]
- movs r1, 0xC
- bl GetMonData
- lsls r0, 16
- lsrs r2, r0, 16
- adds r7, r2, 0
- ldr r1, _0806E9E0 @ =gUnknown_0202E8F4
- movs r0, 0
- strb r0, [r1]
- ldr r0, _0806E9E4 @ =gUnknown_0202E8F8
- mov r10, r0
- movs r0, 0
- mov r1, r10
- strh r0, [r1]
- cmp r2, 0
- beq _0806EA44
- adds r0, r2, 0
- bl itemid_is_mail
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0806E9F0
- ldr r0, _0806E9E8 @ =gOtherText_MailMustBeRemoved
- movs r1, 0x1
- bl sub_806E834
- ldr r0, _0806E9EC @ =party_menu_link_mon_held_item_object
- movs r1, 0x5
- bl CreateTask
- b _0806EA78
- .align 2, 0
-_0806E9D4: .4byte gTasks
-_0806E9D8: .4byte TaskDummy
-_0806E9DC: .4byte 0x0201c000
-_0806E9E0: .4byte gUnknown_0202E8F4
-_0806E9E4: .4byte gUnknown_0202E8F8
-_0806E9E8: .4byte gOtherText_MailMustBeRemoved
-_0806E9EC: .4byte party_menu_link_mon_held_item_object
-_0806E9F0:
- ldr r0, [r4]
- ldr r1, _0806EA30 @ =gStringVar1
- bl GetMonNickname
- ldr r1, _0806EA34 @ =gStringVar2
- adds r0, r7, 0
- bl CopyItemName
- ldr r4, _0806EA38 @ =gStringVar4
- ldr r1, _0806EA3C @ =gOtherText_AlreadyHolding
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_806E834
- ldr r0, _0806EA40 @ =sub_806EBB8
- movs r1, 0x5
- bl CreateTask
- adds r0, r5, 0
- bl itemid_is_mail
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0806EA78
- mov r0, r10
- strh r7, [r0]
- b _0806EA78
- .align 2, 0
-_0806EA30: .4byte gStringVar1
-_0806EA34: .4byte gStringVar2
-_0806EA38: .4byte gStringVar4
-_0806EA3C: .4byte gOtherText_AlreadyHolding
-_0806EA40: .4byte sub_806EBB8
-_0806EA44:
- ldr r0, [r4]
- adds r1, r5, 0
- bl sub_806E904
- adds r0, r5, 0
- movs r1, 0x1
- bl RemoveBagItem
- adds r0, r5, 0
- bl itemid_is_mail
- lsls r0, 24
- cmp r0, 0
- beq _0806EA66
- mov r1, r8
- str r1, [r6]
- b _0806EA78
-_0806EA66:
- ldrb r0, [r4, 0x5]
- mov r1, r9
- movs r2, 0x1
- bl sub_806EBF0
- ldr r0, _0806EA88 @ =party_menu_link_mon_held_item_object
- movs r1, 0x5
- bl CreateTask
-_0806EA78:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0806EA88: .4byte party_menu_link_mon_held_item_object
- thumb_func_end sub_806E964
-
- thumb_func_start party_menu_link_mon_held_item_object
-party_menu_link_mon_held_item_object: @ 806EA8C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _0806EAC0 @ =gUnknown_0202E8F6
- ldrb r0, [r0]
- cmp r0, 0
- bne _0806EABA
- ldr r4, _0806EAC4 @ =0x0201c000
- ldrb r0, [r4, 0x4]
- ldrb r1, [r4, 0x5]
- bl sub_806DF60
- ldr r2, _0806EAC8 @ =gTasks
- ldrb r1, [r4, 0x4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldr r1, [r4, 0x10]
- str r1, [r0]
- adds r0, r5, 0
- bl DestroyTask
-_0806EABA:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0806EAC0: .4byte gUnknown_0202E8F6
-_0806EAC4: .4byte 0x0201c000
-_0806EAC8: .4byte gTasks
- thumb_func_end party_menu_link_mon_held_item_object
-
- thumb_func_start sub_806EACC
-sub_806EACC: @ 806EACC
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- bl ProcessMenuInputNoWrap_
- lsls r0, 24
- asrs r1, r0, 24
- cmp r1, 0
- bne _0806EB74
- movs r0, 0x17
- movs r1, 0x8
- movs r2, 0x1D
- movs r3, 0xD
- bl MenuZeroFillWindowRect
- ldr r4, _0806EB30 @ =0x0201c000
- ldr r0, [r4]
- movs r1, 0xC
- bl GetMonData
- lsls r0, 16
- lsrs r5, r0, 16
- ldrh r0, [r4, 0x6]
- movs r1, 0x1
- bl RemoveBagItem
- adds r0, r5, 0
- movs r1, 0x1
- bl AddBagItem
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0806EB5C
- ldr r0, [r4]
- ldrh r1, [r4, 0x6]
- bl sub_806E904
- ldrh r0, [r4, 0x6]
- bl itemid_is_mail
- lsls r0, 24
- cmp r0, 0
- beq _0806EB34
- ldrb r0, [r4, 0x5]
- adds r1, r5, 0
- movs r2, 0x1
- bl sub_806EDB4
- b _0806EB9A
- .align 2, 0
-_0806EB30: .4byte 0x0201c000
-_0806EB34:
- ldrh r0, [r4, 0x6]
- ldr r1, _0806EB50 @ =gStringVar1
- bl CopyItemName
- ldr r4, _0806EB54 @ =gStringVar4
- ldr r1, _0806EB58 @ =gOtherText_TakenAndReplaced
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_806E834
- b _0806EB9A
- .align 2, 0
-_0806EB50: .4byte gStringVar1
-_0806EB54: .4byte gStringVar4
-_0806EB58: .4byte gOtherText_TakenAndReplaced
-_0806EB5C:
- ldr r0, _0806EB70 @ =gOtherText_BagFullCannotRemoveItem
- movs r1, 0
- bl sub_806E834
- ldrh r0, [r4, 0x6]
- movs r1, 0x1
- bl AddBagItem
- b _0806EB9A
- .align 2, 0
-_0806EB70: .4byte gOtherText_BagFullCannotRemoveItem
-_0806EB74:
- cmp r1, 0x1
- beq _0806EB80
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _0806EBA8
-_0806EB80:
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _0806EB8E
- movs r0, 0x5
- bl PlaySE
-_0806EB8E:
- movs r0, 0x17
- movs r1, 0x8
- movs r2, 0x1D
- movs r3, 0xD
- bl MenuZeroFillWindowRect
-_0806EB9A:
- ldr r0, _0806EBB0 @ =gTasks
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 3
- adds r1, r0
- ldr r0, _0806EBB4 @ =party_menu_link_mon_held_item_object
- str r0, [r1]
-_0806EBA8:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806EBB0: .4byte gTasks
-_0806EBB4: .4byte party_menu_link_mon_held_item_object
- thumb_func_end sub_806EACC
-
- thumb_func_start sub_806EBB8
-sub_806EBB8: @ 806EBB8
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0806EBE4 @ =gUnknown_0202E8F6
- ldrb r0, [r0]
- cmp r0, 0
- bne _0806EBDE
- movs r0, 0x17
- movs r1, 0x8
- movs r2, 0x1
- bl DisplayYesNoMenu
- ldr r0, _0806EBE8 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _0806EBEC @ =sub_806EACC
- str r0, [r1]
-_0806EBDE:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0806EBE4: .4byte gUnknown_0202E8F6
-_0806EBE8: .4byte gTasks
-_0806EBEC: .4byte sub_806EACC
- thumb_func_end sub_806EBB8
-
- thumb_func_start sub_806EBF0
-sub_806EBF0: @ 806EBF0
- push {r4,r5,lr}
- adds r4, r1, 0
- adds r5, r2, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r4, 16
- lsrs r4, 16
- lsls r5, 24
- lsrs r5, 24
- movs r1, 0x64
- muls r0, r1
- ldr r1, _0806EC30 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0806EC34 @ =gStringVar1
- bl GetMonNickname
- ldr r1, _0806EC38 @ =gStringVar2
- adds r0, r4, 0
- bl CopyItemName
- ldr r4, _0806EC3C @ =gStringVar4
- ldr r1, _0806EC40 @ =gOtherText_WasGivenToHold
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_806E834
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0806EC30: .4byte gPlayerParty
-_0806EC34: .4byte gStringVar1
-_0806EC38: .4byte gStringVar2
-_0806EC3C: .4byte gStringVar4
-_0806EC40: .4byte gOtherText_WasGivenToHold
- thumb_func_end sub_806EBF0
-
- thumb_func_start sub_806EC44
-sub_806EC44: @ 806EC44
- push {r4,r5,lr}
- adds r2, r1, 0
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _0806ECA0 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r3
- ldr r3, _0806ECA4 @ =TaskDummy
- str r3, [r1]
- movs r1, 0
- bl sub_806E8D0
- ldr r5, _0806ECA8 @ =0x0201c000
- ldr r0, [r5]
- movs r1, 0xC
- bl GetMonData
- lsls r0, 16
- ldr r2, _0806ECAC @ =gUnknown_0202E8F4
- movs r1, 0
- strb r1, [r2]
- movs r1, 0xF8
- lsls r1, 6
- adds r2, r5, r1
- ldrb r1, [r2]
- adds r1, 0x6
- ldrb r2, [r2, 0x2]
- adds r1, r2
- lsls r2, r1, 3
- adds r2, r1
- lsls r2, 2
- ldr r1, _0806ECB0 @ =gSaveBlock1 + 0x2B4C
- adds r4, r2, r1
- cmp r0, 0
- beq _0806ECBC
- ldr r0, _0806ECB4 @ =gOtherText_PokeHoldingItemCantMail
- movs r1, 0x1
- bl sub_806E834
- ldr r0, _0806ECB8 @ =party_menu_link_mon_held_item_object
- movs r1, 0x5
- bl CreateTask
- b _0806ECDA
- .align 2, 0
-_0806ECA0: .4byte gTasks
-_0806ECA4: .4byte TaskDummy
-_0806ECA8: .4byte 0x0201c000
-_0806ECAC: .4byte gUnknown_0202E8F4
-_0806ECB0: .4byte gSaveBlock1 + 0x2B4C
-_0806ECB4: .4byte gOtherText_PokeHoldingItemCantMail
-_0806ECB8: .4byte party_menu_link_mon_held_item_object
-_0806ECBC:
- ldr r0, [r5]
- adds r1, r4, 0
- bl sub_80A2D88
- adds r0, r4, 0
- bl sub_80A2B40
- ldr r0, _0806ECE0 @ =gOtherText_MailTransferredMailbox
- movs r1, 0x1
- bl sub_806E834
- ldr r0, _0806ECE4 @ =party_menu_link_mon_held_item_object
- movs r1, 0x5
- bl CreateTask
-_0806ECDA:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0806ECE0: .4byte gOtherText_MailTransferredMailbox
-_0806ECE4: .4byte party_menu_link_mon_held_item_object
- thumb_func_end sub_806EC44
-
- thumb_func_start sub_806ECE8
-sub_806ECE8: @ 806ECE8
- push {r4-r6,lr}
- sub sp, 0x4
- adds r2, r1, 0
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _0806ED38 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r3
- ldr r3, _0806ED3C @ =TaskDummy
- str r3, [r1]
- movs r1, 0
- bl sub_806E8D0
- ldr r5, _0806ED40 @ =0x0201c000
- ldr r0, [r5]
- movs r1, 0xC
- bl GetMonData
- lsls r0, 16
- lsrs r4, r0, 16
- adds r6, r4, 0
- cmp r4, 0
- bne _0806ED50
- ldr r4, _0806ED44 @ =gStringVar4
- ldr r1, _0806ED48 @ =gOtherText_NotHoldingAnything
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0
- bl sub_806E834
- ldr r0, _0806ED4C @ =party_menu_link_mon_held_item_object
- movs r1, 0x5
- bl CreateTask
- b _0806EDA2
- .align 2, 0
-_0806ED38: .4byte gTasks
-_0806ED3C: .4byte TaskDummy
-_0806ED40: .4byte 0x0201c000
-_0806ED44: .4byte gStringVar4
-_0806ED48: .4byte gOtherText_NotHoldingAnything
-_0806ED4C: .4byte party_menu_link_mon_held_item_object
-_0806ED50:
- mov r0, sp
- movs r1, 0
- strb r1, [r0]
- strb r1, [r0, 0x1]
- adds r0, r4, 0
- movs r1, 0x1
- bl AddBagItem
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0806ED92
- adds r0, r4, 0
- bl itemid_is_mail
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0806ED7C
- ldr r0, [r5]
- bl sub_80A2DF8
-_0806ED7C:
- ldrb r0, [r5, 0x5]
- adds r1, r6, 0
- movs r2, 0
- bl sub_806EDB4
- ldr r0, [r5]
- movs r1, 0xC
- mov r2, sp
- bl SetMonData
- b _0806ED9A
-_0806ED92:
- ldr r0, _0806EDAC @ =gOtherText_BagFullCannotRemoveItem
- movs r1, 0
- bl sub_806E834
-_0806ED9A:
- ldr r0, _0806EDB0 @ =party_menu_link_mon_held_item_object
- movs r1, 0x5
- bl CreateTask
-_0806EDA2:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806EDAC: .4byte gOtherText_BagFullCannotRemoveItem
-_0806EDB0: .4byte party_menu_link_mon_held_item_object
- thumb_func_end sub_806ECE8
-
- thumb_func_start sub_806EDB4
-sub_806EDB4: @ 806EDB4
- push {r4,r5,lr}
- adds r4, r1, 0
- adds r5, r2, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r4, 16
- lsrs r4, 16
- lsls r5, 24
- lsrs r5, 24
- movs r1, 0x64
- muls r0, r1
- ldr r1, _0806EDF4 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0806EDF8 @ =gStringVar1
- bl GetMonNickname
- ldr r1, _0806EDFC @ =gStringVar2
- adds r0, r4, 0
- bl CopyItemName
- ldr r4, _0806EE00 @ =gStringVar4
- ldr r1, _0806EE04 @ =gOtherText_ReceivedTheThingFrom
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_806E834
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0806EDF4: .4byte gPlayerParty
-_0806EDF8: .4byte gStringVar1
-_0806EDFC: .4byte gStringVar2
-_0806EE00: .4byte gStringVar4
-_0806EE04: .4byte gOtherText_ReceivedTheThingFrom
- thumb_func_end sub_806EDB4
-
- thumb_func_start sub_806EE08
-sub_806EE08: @ 806EE08
- push {r4,lr}
- adds r2, r1, 0
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _0806EE48 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r3
- ldr r3, _0806EE4C @ =TaskDummy
- str r3, [r1]
- movs r1, 0
- bl sub_806E8D0
- ldr r4, _0806EE50 @ =0x0201c000
- ldr r0, [r4]
- movs r1, 0xC
- bl GetMonData
- strh r0, [r4, 0x6]
- ldr r0, _0806EE54 @ =gOtherText_SendRemovedMailPrompt
- movs r1, 0x1
- bl sub_806E834
- ldr r0, _0806EE58 @ =sub_806EFEC
- movs r1, 0x5
- bl CreateTask
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0806EE48: .4byte gTasks
-_0806EE4C: .4byte TaskDummy
-_0806EE50: .4byte 0x0201c000
-_0806EE54: .4byte gOtherText_SendRemovedMailPrompt
-_0806EE58: .4byte sub_806EFEC
- thumb_func_end sub_806EE08
-
- thumb_func_start sub_806EE5C
-sub_806EE5C: @ 806EE5C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl ProcessMenuInputNoWrap_
- lsls r0, 24
- asrs r1, r0, 24
- cmp r1, 0
- bne _0806EEB0
- ldr r5, _0806EE90 @ =0x0201c000
- ldrh r0, [r5, 0x6]
- movs r1, 0x1
- bl AddBagItem
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0806EE98
- ldr r0, [r5]
- bl sub_80A2DF8
- ldr r0, _0806EE94 @ =gOtherText_MailTaken
- movs r1, 0
- bl sub_806E834
- b _0806EEA0
- .align 2, 0
-_0806EE90: .4byte 0x0201c000
-_0806EE94: .4byte gOtherText_MailTaken
-_0806EE98:
- ldr r0, _0806EEAC @ =gOtherText_BagFullCannotRemoveItem
- movs r1, 0
- bl sub_806E834
-_0806EEA0:
- movs r0, 0x17
- movs r1, 0x8
- movs r2, 0x1D
- movs r3, 0xD
- b _0806EEDE
- .align 2, 0
-_0806EEAC: .4byte gOtherText_BagFullCannotRemoveItem
-_0806EEB0:
- cmp r1, 0x1
- beq _0806EEBC
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _0806EEF0
-_0806EEBC:
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _0806EECA
- movs r0, 0x5
- bl PlaySE
-_0806EECA:
- movs r0, 0x17
- movs r1, 0x8
- movs r2, 0x1D
- movs r3, 0xD
- bl MenuZeroFillWindowRect
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x1D
- movs r3, 0x13
-_0806EEDE:
- bl MenuZeroFillWindowRect
- ldr r0, _0806EEF8 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _0806EEFC @ =party_menu_link_mon_held_item_object
- str r0, [r1]
-_0806EEF0:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0806EEF8: .4byte gTasks
-_0806EEFC: .4byte party_menu_link_mon_held_item_object
- thumb_func_end sub_806EE5C
-
- thumb_func_start sub_806EF00
-sub_806EF00: @ 806EF00
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0806EF2C @ =gUnknown_0202E8F6
- ldrb r0, [r0]
- cmp r0, 0
- bne _0806EF26
- movs r0, 0x17
- movs r1, 0x8
- movs r2, 0x1
- bl DisplayYesNoMenu
- ldr r0, _0806EF30 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _0806EF34 @ =sub_806EE5C
- str r0, [r1]
-_0806EF26:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0806EF2C: .4byte gUnknown_0202E8F6
-_0806EF30: .4byte gTasks
-_0806EF34: .4byte sub_806EE5C
- thumb_func_end sub_806EF00
-
- thumb_func_start sub_806EF38
-sub_806EF38: @ 806EF38
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl ProcessMenuInputNoWrap_
- lsls r0, 24
- asrs r1, r0, 24
- cmp r1, 0
- bne _0806EF9C
- movs r0, 0x17
- movs r1, 0x8
- movs r2, 0x1D
- movs r3, 0xD
- bl MenuZeroFillWindowRect
- ldr r0, _0806EF70 @ =0x0201c000
- ldr r0, [r0]
- bl sub_80A2E78
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- beq _0806EF78
- ldr r0, _0806EF74 @ =gOtherText_MailWasSent
- movs r1, 0
- bl sub_806E834
- b _0806EF80
- .align 2, 0
-_0806EF70: .4byte 0x0201c000
-_0806EF74: .4byte gOtherText_MailWasSent
-_0806EF78:
- ldr r0, _0806EF90 @ =gOtherText_MailboxIsFull
- movs r1, 0
- bl sub_806E834
-_0806EF80:
- ldr r0, _0806EF94 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _0806EF98 @ =party_menu_link_mon_held_item_object
- str r0, [r1]
- b _0806EFD8
- .align 2, 0
-_0806EF90: .4byte gOtherText_MailboxIsFull
-_0806EF94: .4byte gTasks
-_0806EF98: .4byte party_menu_link_mon_held_item_object
-_0806EF9C:
- cmp r1, 0x1
- beq _0806EFA8
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _0806EFD8
-_0806EFA8:
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _0806EFB6
- movs r0, 0x5
- bl PlaySE
-_0806EFB6:
- movs r0, 0x17
- movs r1, 0x8
- movs r2, 0x1D
- movs r3, 0xD
- bl MenuZeroFillWindowRect
- ldr r0, _0806EFE0 @ =gOtherText_MailRemovedMessageLost
- movs r1, 0x1
- bl sub_806E834
- ldr r1, _0806EFE4 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0806EFE8 @ =sub_806EF00
- str r1, [r0]
-_0806EFD8:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0806EFE0: .4byte gOtherText_MailRemovedMessageLost
-_0806EFE4: .4byte gTasks
-_0806EFE8: .4byte sub_806EF00
- thumb_func_end sub_806EF38
-
- thumb_func_start sub_806EFEC
-sub_806EFEC: @ 806EFEC
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0806F018 @ =gUnknown_0202E8F6
- ldrb r0, [r0]
- cmp r0, 0
- bne _0806F012
- movs r0, 0x17
- movs r1, 0x8
- movs r2, 0x1
- bl DisplayYesNoMenu
- ldr r0, _0806F01C @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _0806F020 @ =sub_806EF38
- str r0, [r1]
-_0806F012:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0806F018: .4byte gUnknown_0202E8F6
-_0806F01C: .4byte gTasks
-_0806F020: .4byte sub_806EF38
- thumb_func_end sub_806EFEC
-
- thumb_func_start ItemIdToBattleMoveId
-ItemIdToBattleMoveId: @ 806F024
- lsls r0, 16
- ldr r1, _0806F034 @ =0xfedf0000
- adds r0, r1
- ldr r1, _0806F038 @ =gUnknown_08376504
- lsrs r0, 15
- adds r0, r1
- ldrh r0, [r0]
- bx lr
- .align 2, 0
-_0806F034: .4byte 0xfedf0000
-_0806F038: .4byte gUnknown_08376504
- thumb_func_end ItemIdToBattleMoveId
-
- thumb_func_start pokemon_has_move
-pokemon_has_move: @ 806F03C
- push {r4-r6,lr}
- adds r6, r0, 0
- lsls r1, 16
- lsrs r5, r1, 16
- movs r4, 0
-_0806F046:
- adds r1, r4, 0
- adds r1, 0xD
- adds r0, r6, 0
- bl GetMonData
- cmp r0, r5
- bne _0806F058
- movs r0, 0x1
- b _0806F064
-_0806F058:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x3
- bls _0806F046
- movs r0, 0
-_0806F064:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end pokemon_has_move
-
- thumb_func_start sub_806F06C
-sub_806F06C: @ 806F06C
- push {r4-r6,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r6, r2, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 16
- lsrs r5, 16
- movs r0, 0x5
- bl PlaySE
- ldr r1, _0806F0A8 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0806F0AC @ =TaskDummy
- str r1, [r0]
- adds r0, r4, 0
- adds r1, r5, 0
- adds r2, r6, 0
- bl sub_806E8D0
- ldr r0, _0806F0B0 @ =sub_806F0B4
- movs r1, 0x5
- bl CreateTask
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806F0A8: .4byte gTasks
-_0806F0AC: .4byte TaskDummy
-_0806F0B0: .4byte sub_806F0B4
- thumb_func_end sub_806F06C
-
- thumb_func_start sub_806F0B4
-sub_806F0B4: @ 806F0B4
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- adds r7, r6, 0
- ldr r5, _0806F114 @ =0x0201c000
- ldr r0, [r5]
- ldr r1, _0806F118 @ =gStringVar1
- bl GetMonNickname
- ldrh r0, [r5, 0x6]
- bl ItemIdToBattleMoveId
- movs r4, 0
- strh r0, [r5, 0x8]
- ldr r0, _0806F11C @ =gStringVar2
- ldrh r2, [r5, 0x8]
- movs r1, 0xD
- muls r1, r2
- ldr r2, _0806F120 @ =gMoveNames
- adds r1, r2
- bl StringCopy
- ldr r1, _0806F124 @ =0xfffff282
- adds r0, r5, r1
- strh r4, [r0]
- ldr r0, [r5]
- ldrh r1, [r5, 0x8]
- bl pokemon_has_move
- lsls r0, 24
- cmp r0, 0
- beq _0806F138
- ldr r4, _0806F128 @ =gStringVar4
- ldr r1, _0806F12C @ =gOtherText_AlreadyKnows
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_806E834
- ldr r1, _0806F130 @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, _0806F134 @ =party_menu_link_mon_held_item_object
- b _0806F1B6
- .align 2, 0
-_0806F114: .4byte 0x0201c000
-_0806F118: .4byte gStringVar1
-_0806F11C: .4byte gStringVar2
-_0806F120: .4byte gMoveNames
-_0806F124: .4byte 0xfffff282
-_0806F128: .4byte gStringVar4
-_0806F12C: .4byte gOtherText_AlreadyKnows
-_0806F130: .4byte gTasks
-_0806F134: .4byte party_menu_link_mon_held_item_object
-_0806F138:
- ldr r0, [r5]
- ldrb r1, [r5, 0x6]
- subs r1, 0x21
- lsls r1, 24
- lsrs r1, 24
- bl CanMonLearnTMHM
- cmp r0, 0
- bne _0806F17C
- ldr r4, _0806F16C @ =gStringVar4
- ldr r1, _0806F170 @ =gOtherText_NotCompatible
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_806E834
- ldr r1, _0806F174 @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, _0806F178 @ =party_menu_link_mon_held_item_object
- b _0806F1B6
- .align 2, 0
-_0806F16C: .4byte gStringVar4
-_0806F170: .4byte gOtherText_NotCompatible
-_0806F174: .4byte gTasks
-_0806F178: .4byte party_menu_link_mon_held_item_object
-_0806F17C:
- ldr r0, [r5]
- ldrh r1, [r5, 0x8]
- bl GiveMoveToMon
- lsls r0, 16
- ldr r1, _0806F194 @ =0xffff0000
- cmp r0, r1
- beq _0806F198
- adds r0, r6, 0
- bl sub_806F1D0
- b _0806F1B8
- .align 2, 0
-_0806F194: .4byte 0xffff0000
-_0806F198:
- ldr r4, _0806F1C0 @ =gStringVar4
- ldr r1, _0806F1C4 @ =gOtherText_WantsToLearn
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_806E834
- ldr r1, _0806F1C8 @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- ldr r1, _0806F1CC @ =sub_806F358
-_0806F1B6:
- str r1, [r0]
-_0806F1B8:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0806F1C0: .4byte gStringVar4
-_0806F1C4: .4byte gOtherText_WantsToLearn
-_0806F1C8: .4byte gTasks
-_0806F1CC: .4byte sub_806F358
- thumb_func_end sub_806F0B4
-
- thumb_func_start sub_806F1D0
-sub_806F1D0: @ 806F1D0
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, _0806F234 @ =gStringVar2
- ldr r5, _0806F238 @ =0x0201c000
- ldrh r2, [r5, 0x8]
- movs r1, 0xD
- muls r1, r2
- ldr r2, _0806F23C @ =gMoveNames
- adds r1, r2
- bl StringCopy
- ldr r4, _0806F240 @ =gStringVar4
- ldr r1, _0806F244 @ =gOtherText_LearnedMove
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_806E834
- ldr r0, [r5]
- movs r1, 0x4
- bl AdjustFriendship
- ldr r1, _0806F248 @ =0xfffff282
- adds r0, r5, r1
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _0806F220
- ldrh r1, [r5, 0x6]
- movs r0, 0xA9
- lsls r0, 1
- cmp r1, r0
- bhi _0806F220
- adds r0, r1, 0
- movs r1, 0x1
- bl RemoveBagItem
-_0806F220:
- ldr r0, _0806F24C @ =gTasks
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 3
- adds r1, r0
- ldr r0, _0806F250 @ =sub_806F254
- str r0, [r1]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806F234: .4byte gStringVar2
-_0806F238: .4byte 0x0201c000
-_0806F23C: .4byte gMoveNames
-_0806F240: .4byte gStringVar4
-_0806F244: .4byte gOtherText_LearnedMove
-_0806F248: .4byte 0xfffff282
-_0806F24C: .4byte gTasks
-_0806F250: .4byte sub_806F254
- thumb_func_end sub_806F1D0
-
- thumb_func_start sub_806F254
-sub_806F254: @ 806F254
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0806F27C @ =gUnknown_0202E8F6
- ldrb r0, [r0]
- cmp r0, 0
- bne _0806F276
- ldr r0, _0806F280 @ =0x0000016f
- bl PlayFanfare
- ldr r1, _0806F284 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0806F288 @ =sub_806F28C
- str r1, [r0]
-_0806F276:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0806F27C: .4byte gUnknown_0202E8F6
-_0806F280: .4byte 0x0000016f
-_0806F284: .4byte gTasks
-_0806F288: .4byte sub_806F28C
- thumb_func_end sub_806F254
-
- thumb_func_start sub_806F28C
-sub_806F28C: @ 806F28C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- adds r6, r5, 0
- bl IsFanfareTaskInactive
- lsls r0, 24
- cmp r0, 0
- beq _0806F2F2
- ldr r0, _0806F2D0 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0806F2B2
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0806F2F2
-_0806F2B2:
- ldr r4, _0806F2D4 @ =0x0201c000
- ldrb r0, [r4, 0x4]
- ldrb r1, [r4, 0x5]
- bl sub_806DF60
- ldr r1, _0806F2D8 @ =0xfffff282
- adds r0, r4, r1
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0x1
- bne _0806F2DC
- adds r0, r5, 0
- bl sub_8070C54
- b _0806F2F2
- .align 2, 0
-_0806F2D0: .4byte gMain
-_0806F2D4: .4byte 0x0201c000
-_0806F2D8: .4byte 0xfffff282
-_0806F2DC:
- ldr r2, _0806F2F8 @ =gTasks
- ldrb r1, [r4, 0x4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldr r1, [r4, 0x10]
- str r1, [r0]
- adds r0, r6, 0
- bl DestroyTask
-_0806F2F2:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806F2F8: .4byte gTasks
- thumb_func_end sub_806F28C
-
- thumb_func_start sub_806F2FC
-sub_806F2FC: @ 806F2FC
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- adds r6, r5, 0
- ldr r0, _0806F32C @ =gUnknown_0202E8F6
- ldrb r0, [r0]
- cmp r0, 0
- bne _0806F34E
- ldr r4, _0806F330 @ =0x0201c000
- ldrb r0, [r4, 0x4]
- ldrb r1, [r4, 0x5]
- bl sub_806DF60
- ldr r1, _0806F334 @ =0xfffff282
- adds r0, r4, r1
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0x1
- bne _0806F338
- adds r0, r5, 0
- bl sub_8070C54
- b _0806F34E
- .align 2, 0
-_0806F32C: .4byte gUnknown_0202E8F6
-_0806F330: .4byte 0x0201c000
-_0806F334: .4byte 0xfffff282
-_0806F338:
- ldr r2, _0806F354 @ =gTasks
- ldrb r1, [r4, 0x4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldr r1, [r4, 0x10]
- str r1, [r0]
- adds r0, r6, 0
- bl DestroyTask
-_0806F34E:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806F354: .4byte gTasks
- thumb_func_end sub_806F2FC
-
- thumb_func_start sub_806F358
-sub_806F358: @ 806F358
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0806F384 @ =gUnknown_0202E8F6
- ldrb r0, [r0]
- cmp r0, 0
- bne _0806F37E
- movs r0, 0x17
- movs r1, 0x8
- movs r2, 0x1
- bl DisplayYesNoMenu
- ldr r0, _0806F388 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _0806F38C @ =sub_806F390
- str r0, [r1]
-_0806F37E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0806F384: .4byte gUnknown_0202E8F6
-_0806F388: .4byte gTasks
-_0806F38C: .4byte sub_806F390
- thumb_func_end sub_806F358
-
- thumb_func_start sub_806F390
-sub_806F390: @ 806F390
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r5, r4, 0
- bl ProcessMenuInputNoWrap_
- lsls r0, 24
- asrs r1, r0, 24
- cmp r1, 0
- bne _0806F3D4
- movs r0, 0x17
- movs r1, 0x8
- movs r2, 0x1D
- movs r3, 0xD
- bl MenuZeroFillWindowRect
- ldr r0, _0806F3C8 @ =gOtherText_WhichMoveToForget2
- movs r1, 0x1
- bl sub_806E834
- ldr r1, _0806F3CC @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0806F3D0 @ =sub_806F44C
- str r1, [r0]
- b _0806F3F4
- .align 2, 0
-_0806F3C8: .4byte gOtherText_WhichMoveToForget2
-_0806F3CC: .4byte gTasks
-_0806F3D0: .4byte sub_806F44C
-_0806F3D4:
- cmp r1, 0x1
- beq _0806F3E0
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _0806F3F4
-_0806F3E0:
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _0806F3EE
- movs r0, 0x5
- bl PlaySE
-_0806F3EE:
- adds r0, r5, 0
- bl sub_806F614
-_0806F3F4:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_806F390
-
- thumb_func_start sub_806F3FC
-sub_806F3FC: @ 806F3FC
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _0806F438 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0806F430
- ldr r0, _0806F43C @ =gPlayerParty
- ldr r4, _0806F440 @ =0x0201c000
- ldrb r1, [r4, 0x5]
- ldr r2, _0806F444 @ =gPlayerPartyCount
- ldrb r2, [r2]
- subs r2, 0x1
- lsls r2, 24
- lsrs r2, 24
- ldr r3, _0806F448 @ =sub_808B564
- ldrh r4, [r4, 0x8]
- str r4, [sp]
- bl sub_809D9F0
- adds r0, r5, 0
- bl DestroyTask
-_0806F430:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0806F438: .4byte gPaletteFade
-_0806F43C: .4byte gPlayerParty
-_0806F440: .4byte 0x0201c000
-_0806F444: .4byte gPlayerPartyCount
-_0806F448: .4byte sub_808B564
- thumb_func_end sub_806F3FC
-
- thumb_func_start sub_806F44C
-sub_806F44C: @ 806F44C
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0806F484 @ =gUnknown_0202E8F6
- ldrb r1, [r0]
- cmp r1, 0
- bne _0806F47A
- movs r0, 0x1
- negs r0, r0
- str r1, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _0806F488 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0806F48C @ =sub_806F3FC
- str r1, [r0]
-_0806F47A:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0806F484: .4byte gUnknown_0202E8F6
-_0806F488: .4byte gTasks
-_0806F48C: .4byte sub_806F3FC
- thumb_func_end sub_806F44C
-
- thumb_func_start sub_806F490
-sub_806F490: @ 806F490
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r0, _0806F50C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0806F506
- ldr r1, _0806F510 @ =gTasks
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r0, r1
- ldr r1, _0806F514 @ =TaskDummy
- str r1, [r0]
- ldr r0, _0806F518 @ =gScriptItemId
- ldrh r1, [r0]
- ldr r2, _0806F51C @ =sub_808B508
- adds r0, r3, 0
- bl sub_806E8D0
- bl sub_809FA30
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r5, _0806F520 @ =0x0201c000
- ldr r0, [r5]
- adds r1, 0xD
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldr r0, [r5]
- ldr r1, _0806F524 @ =gStringVar1
- bl GetMonNickname
- ldr r0, _0806F528 @ =gStringVar2
- movs r1, 0xD
- muls r1, r4
- ldr r2, _0806F52C @ =gMoveNames
- adds r1, r2
- bl StringCopy
- ldr r4, _0806F530 @ =gStringVar4
- ldr r1, _0806F534 @ =gOtherText_ForgetMove123_2
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_806E834
- ldr r0, _0806F538 @ =sub_806F53C
- movs r1, 0x5
- bl CreateTask
-_0806F506:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0806F50C: .4byte gPaletteFade
-_0806F510: .4byte gTasks
-_0806F514: .4byte TaskDummy
-_0806F518: .4byte gScriptItemId
-_0806F51C: .4byte sub_808B508
-_0806F520: .4byte 0x0201c000
-_0806F524: .4byte gStringVar1
-_0806F528: .4byte gStringVar2
-_0806F52C: .4byte gMoveNames
-_0806F530: .4byte gStringVar4
-_0806F534: .4byte gOtherText_ForgetMove123_2
-_0806F538: .4byte sub_806F53C
- thumb_func_end sub_806F490
-
- thumb_func_start sub_806F53C
-sub_806F53C: @ 806F53C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, _0806F580 @ =gUnknown_0202E8F6
- ldrb r0, [r0]
- cmp r0, 0
- bne _0806F57A
- ldr r4, _0806F584 @ =0x0201c000
- ldr r5, [r4]
- bl sub_809FA30
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl RemoveMonPPBonus
- ldr r5, [r4]
- ldrh r4, [r4, 0x8]
- bl sub_809FA30
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r5, 0
- adds r1, r4, 0
- bl SetMonMoveSlot
- adds r0, r6, 0
- bl sub_806F1D0
-_0806F57A:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806F580: .4byte gUnknown_0202E8F6
-_0806F584: .4byte 0x0201c000
- thumb_func_end sub_806F53C
-
- thumb_func_start sub_806F588
-sub_806F588: @ 806F588
- push {r4,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r0, _0806F5E8 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0806F5E0
- ldr r1, _0806F5EC @ =gTasks
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r0, r1
- ldr r1, _0806F5F0 @ =TaskDummy
- str r1, [r0]
- ldr r0, _0806F5F4 @ =gScriptItemId
- ldrh r1, [r0]
- ldr r2, _0806F5F8 @ =sub_808B508
- adds r0, r3, 0
- bl sub_806E8D0
- ldr r0, _0806F5FC @ =gStringVar2
- ldr r1, _0806F600 @ =0x0201c000
- ldrh r2, [r1, 0x8]
- movs r1, 0xD
- muls r1, r2
- ldr r2, _0806F604 @ =gMoveNames
- adds r1, r2
- bl StringCopy
- ldr r4, _0806F608 @ =gStringVar4
- ldr r1, _0806F60C @ =gOtherText_StopTryingTo
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_806E834
- ldr r0, _0806F610 @ =sub_806F67C
- movs r1, 0x5
- bl CreateTask
-_0806F5E0:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0806F5E8: .4byte gPaletteFade
-_0806F5EC: .4byte gTasks
-_0806F5F0: .4byte TaskDummy
-_0806F5F4: .4byte gScriptItemId
-_0806F5F8: .4byte sub_808B508
-_0806F5FC: .4byte gStringVar2
-_0806F600: .4byte 0x0201c000
-_0806F604: .4byte gMoveNames
-_0806F608: .4byte gStringVar4
-_0806F60C: .4byte gOtherText_StopTryingTo
-_0806F610: .4byte sub_806F67C
- thumb_func_end sub_806F588
-
- thumb_func_start sub_806F614
-sub_806F614: @ 806F614
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- movs r0, 0x17
- movs r1, 0x8
- movs r2, 0x1D
- movs r3, 0xD
- bl MenuZeroFillWindowRect
- ldr r0, _0806F660 @ =gStringVar2
- ldr r1, _0806F664 @ =0x0201c000
- ldrh r2, [r1, 0x8]
- movs r1, 0xD
- muls r1, r2
- ldr r2, _0806F668 @ =gMoveNames
- adds r1, r2
- bl StringCopy
- ldr r4, _0806F66C @ =gStringVar4
- ldr r1, _0806F670 @ =gOtherText_StopTryingTo
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_806E834
- ldr r1, _0806F674 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _0806F678 @ =sub_806F67C
- str r1, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0806F660: .4byte gStringVar2
-_0806F664: .4byte 0x0201c000
-_0806F668: .4byte gMoveNames
-_0806F66C: .4byte gStringVar4
-_0806F670: .4byte gOtherText_StopTryingTo
-_0806F674: .4byte gTasks
-_0806F678: .4byte sub_806F67C
- thumb_func_end sub_806F614
-
- thumb_func_start sub_806F67C
-sub_806F67C: @ 806F67C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0806F6A8 @ =gUnknown_0202E8F6
- ldrb r0, [r0]
- cmp r0, 0
- bne _0806F6A2
- movs r0, 0x17
- movs r1, 0x8
- movs r2, 0x1
- bl DisplayYesNoMenu
- ldr r0, _0806F6AC @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _0806F6B0 @ =sub_806F6B4
- str r0, [r1]
-_0806F6A2:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0806F6A8: .4byte gUnknown_0202E8F6
-_0806F6AC: .4byte gTasks
-_0806F6B0: .4byte sub_806F6B4
- thumb_func_end sub_806F67C
-
- thumb_func_start sub_806F6B4
-sub_806F6B4: @ 806F6B4
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- adds r6, r5, 0
- bl ProcessMenuInputNoWrap_
- lsls r0, 24
- asrs r1, r0, 24
- cmp r1, 0
- bne _0806F730
- movs r0, 0x17
- movs r1, 0x8
- movs r2, 0x1D
- movs r3, 0xD
- bl MenuZeroFillWindowRect
- ldr r4, _0806F710 @ =0x0201c000
- ldr r0, [r4]
- ldr r1, _0806F714 @ =gStringVar1
- bl GetMonNickname
- ldr r0, _0806F718 @ =gStringVar2
- ldrh r2, [r4, 0x8]
- movs r1, 0xD
- muls r1, r2
- ldr r2, _0806F71C @ =gMoveNames
- adds r1, r2
- bl StringCopy
- ldr r4, _0806F720 @ =gStringVar4
- ldr r1, _0806F724 @ =gOtherText_DidNotLearnMove2
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_806E834
- ldr r1, _0806F728 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _0806F72C @ =sub_806F2FC
- b _0806F78E
- .align 2, 0
-_0806F710: .4byte 0x0201c000
-_0806F714: .4byte gStringVar1
-_0806F718: .4byte gStringVar2
-_0806F71C: .4byte gMoveNames
-_0806F720: .4byte gStringVar4
-_0806F724: .4byte gOtherText_DidNotLearnMove2
-_0806F728: .4byte gTasks
-_0806F72C: .4byte sub_806F2FC
-_0806F730:
- cmp r1, 0x1
- beq _0806F73C
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _0806F790
-_0806F73C:
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _0806F74A
- movs r0, 0x5
- bl PlaySE
-_0806F74A:
- movs r0, 0x17
- movs r1, 0x8
- movs r2, 0x1D
- movs r3, 0xD
- bl MenuZeroFillWindowRect
- ldr r4, _0806F798 @ =0x0201c000
- ldr r0, [r4]
- ldr r1, _0806F79C @ =gStringVar1
- bl GetMonNickname
- ldr r0, _0806F7A0 @ =gStringVar2
- ldrh r2, [r4, 0x8]
- movs r1, 0xD
- muls r1, r2
- ldr r2, _0806F7A4 @ =gMoveNames
- adds r1, r2
- bl StringCopy
- ldr r4, _0806F7A8 @ =gStringVar4
- ldr r1, _0806F7AC @ =gOtherText_WantsToLearn
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_806E834
- ldr r1, _0806F7B0 @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, _0806F7B4 @ =sub_806F358
-_0806F78E:
- str r1, [r0]
-_0806F790:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806F798: .4byte 0x0201c000
-_0806F79C: .4byte gStringVar1
-_0806F7A0: .4byte gStringVar2
-_0806F7A4: .4byte gMoveNames
-_0806F7A8: .4byte gStringVar4
-_0806F7AC: .4byte gOtherText_WantsToLearn
-_0806F7B0: .4byte gTasks
-_0806F7B4: .4byte sub_806F358
- thumb_func_end sub_806F6B4
-
- thumb_func_start sub_806F7B8
-sub_806F7B8: @ 806F7B8
- push {lr}
- lsls r0, 16
- lsrs r2, r0, 16
- movs r1, 0
- ldr r3, _0806F7D4 @ =gUnknown_08376504
-_0806F7C2:
- adds r0, r1, 0
- adds r0, 0x32
- lsls r0, 1
- adds r0, r3
- ldrh r0, [r0]
- cmp r0, r2
- bne _0806F7D8
- movs r0, 0x1
- b _0806F7E4
- .align 2, 0
-_0806F7D4: .4byte gUnknown_08376504
-_0806F7D8:
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x7
- bls _0806F7C2
- movs r0, 0
-_0806F7E4:
- pop {r1}
- bx r1
- thumb_func_end sub_806F7B8
-
- thumb_func_start sub_806F7E8
-sub_806F7E8: @ 806F7E8
- push {r4-r6,lr}
- adds r5, r1, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r3, r0, 2
- adds r3, r0
- lsls r3, 3
- ldr r0, _0806F898 @ =gTasks + 0x8
- adds r3, r0
- movs r0, 0x14
- ldrsh r1, [r3, r0]
- str r1, [r5]
- movs r4, 0x16
- ldrsh r0, [r3, r4]
- str r0, [r5, 0x4]
- movs r4, 0x18
- ldrsh r0, [r3, r4]
- lsls r2, 24
- asrs r2, 24
- muls r0, r2
- str r0, [r5, 0x8]
- movs r0, 0x80
- lsls r0, 1
- str r0, [r5, 0x10]
- ldr r6, _0806F89C @ =0x0201b000
- ldr r2, _0806F8A0 @ =0x00000282
- adds r0, r6, r2
- movs r4, 0
- ldrsh r0, [r0, r4]
- bl sub_8046200
- lsls r0, 24
- lsrs r2, r0, 24
- adds r3, r2, 0
- cmp r2, 0x2
- bls _0806F83E
- ldrb r0, [r5, 0xC]
- movs r1, 0x20
- negs r1, r1
- ands r1, r0
- movs r0, 0x4
- orrs r1, r0
- strb r1, [r5, 0xC]
-_0806F83E:
- cmp r2, 0x2
- bne _0806F850
- ldrb r0, [r5, 0xC]
- movs r1, 0x20
- negs r1, r1
- ands r1, r0
- movs r0, 0x5
- orrs r1, r0
- strb r1, [r5, 0xC]
-_0806F850:
- cmp r3, 0x1
- bhi _0806F862
- ldrb r0, [r5, 0xC]
- movs r1, 0x20
- negs r1, r1
- ands r1, r0
- movs r0, 0x6
- orrs r1, r0
- strb r1, [r5, 0xC]
-_0806F862:
- ldr r4, _0806F8A4 @ =gUnknown_08376858
- bl battle_type_is_double
- movs r2, 0x80
- lsls r2, 5
- adds r1, r6, r2
- ldrb r2, [r1, 0x5]
- lsls r2, 2
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 3
- adds r2, r1
- adds r2, r4
- ldr r2, [r2]
- ldr r4, _0806F8A8 @ =0x0000100c
- adds r1, r6, r4
- adds r0, r5, 0
- movs r3, 0
- bl sub_80460C8
- lsls r0, 16
- asrs r0, 16
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0806F898: .4byte gTasks + 0x8
-_0806F89C: .4byte 0x0201b000
-_0806F8A0: .4byte 0x00000282
-_0806F8A4: .4byte gUnknown_08376858
-_0806F8A8: .4byte 0x0000100c
- thumb_func_end sub_806F7E8
-
- thumb_func_start sub_806F8AC
-sub_806F8AC: @ 806F8AC
- push {r4-r7,lr}
- sub sp, 0x18
- lsls r0, 24
- lsrs r6, r0, 24
- movs r4, 0x1
- negs r4, r4
- adds r0, r6, 0
- mov r1, sp
- adds r2, r4, 0
- bl sub_806F7E8
- ldr r1, _0806F8F4 @ =0x0201b000
- ldr r2, _0806F8F8 @ =0x00000282
- adds r5, r1, r2
- strh r0, [r5]
- lsls r0, 16
- asrs r0, 16
- cmp r0, r4
- beq _0806F8D4
- b _0806F9F0
-_0806F8D4:
- movs r0, 0x80
- lsls r0, 5
- adds r1, r0
- movs r0, 0
- str r0, [r1, 0xC]
- ldr r0, [sp, 0x8]
- negs r3, r0
- ldr r2, [sp, 0x4]
- adds r0, r3, r2
- ldr r1, [sp]
- cmp r0, r1
- ble _0806F8FC
- subs r1, r2
- add r0, sp, 0x14
- strh r1, [r0]
- b _0806F900
- .align 2, 0
-_0806F8F4: .4byte 0x0201b000
-_0806F8F8: .4byte 0x00000282
-_0806F8FC:
- add r0, sp, 0x14
- strh r3, [r0]
-_0806F900:
- adds r5, r0, 0
- ldr r1, _0806F940 @ =gUnknown_02024BEC
- ldrh r0, [r5]
- negs r0, r0
- str r0, [r1]
- ldr r0, _0806F944 @ =0x0201c000
- ldr r0, [r0]
- ldr r1, _0806F948 @ =gStringVar1
- bl GetMonNickname
- ldr r0, _0806F94C @ =gStringVar2
- ldrh r1, [r5]
- movs r2, 0
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- ldr r2, _0806F950 @ =gTasks
- lsls r1, r6, 2
- adds r0, r1, r6
- lsls r0, 3
- adds r0, r2
- movs r2, 0x24
- ldrsh r0, [r0, r2]
- adds r7, r1, 0
- cmp r0, 0
- bne _0806F95C
- ldr r0, _0806F954 @ =gStringVar4
- ldr r1, _0806F958 @ =gOtherText_HPRestoredBy
- bl StringExpandPlaceholders
- b _0806F964
- .align 2, 0
-_0806F940: .4byte gUnknown_02024BEC
-_0806F944: .4byte 0x0201c000
-_0806F948: .4byte gStringVar1
-_0806F94C: .4byte gStringVar2
-_0806F950: .4byte gTasks
-_0806F954: .4byte gStringVar4
-_0806F958: .4byte gOtherText_HPRestoredBy
-_0806F95C:
- ldr r0, _0806F9D4 @ =gStringVar4
- ldr r1, _0806F9D8 @ =gOtherText_RegainedHealth
- bl StringExpandPlaceholders
-_0806F964:
- ldr r4, _0806F9DC @ =0x0201c000
- ldrb r0, [r4, 0x4]
- ldrb r1, [r4, 0x5]
- bl sub_806DDA0
- lsls r0, 24
- lsrs r0, 24
- ldr r1, [r4]
- bl sub_806D84C
- bl battle_type_is_double
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldrb r1, [r4, 0x5]
- lsls r1, 1
- adds r0, r1
- ldr r1, _0806F9E0 @ =gUnknown_083769A8
- adds r0, r1
- movs r1, 0x7
- bl task_pc_turn_off
- ldr r0, _0806F9E4 @ =0xfffff261
- adds r1, r4, r0
- movs r0, 0x2
- strb r0, [r1]
- ldr r0, _0806F9D4 @ =gStringVar4
- movs r1, 0x1
- bl sub_806E834
- ldr r1, [sp, 0x4]
- ldrh r0, [r5]
- adds r0, r1
- strh r0, [r5]
- ldr r0, [r4]
- movs r1, 0x39
- adds r2, r5, 0
- bl SetMonData
- ldrh r0, [r4, 0x6]
- movs r1, 0x1
- bl RemoveBagItem
- bl sub_8032638
- ldr r1, _0806F9E8 @ =gTasks
- adds r0, r7, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, _0806F9EC @ =sub_806FB44
- str r1, [r0]
- b _0806FA10
- .align 2, 0
-_0806F9D4: .4byte gStringVar4
-_0806F9D8: .4byte gOtherText_RegainedHealth
-_0806F9DC: .4byte 0x0201c000
-_0806F9E0: .4byte gUnknown_083769A8
-_0806F9E4: .4byte 0xfffff261
-_0806F9E8: .4byte gTasks
-_0806F9EC: .4byte sub_806FB44
-_0806F9F0:
- movs r2, 0x80
- lsls r2, 5
- adds r0, r1, r2
- ldrb r4, [r0, 0x5]
- bl battle_type_is_double
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldrh r2, [r5]
- ldr r3, [sp]
- lsls r3, 16
- lsrs r3, 16
- adds r0, r4, 0
- bl sub_806E420
-_0806FA10:
- add sp, 0x18
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_806F8AC
-
- thumb_func_start sub_806FA18
-sub_806FA18: @ 806FA18
- push {r4-r7,lr}
- sub sp, 0x14
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r5, 0
- mov r1, sp
- movs r2, 0x1
- bl sub_806F7E8
- ldr r6, _0806FAC4 @ =0x0201b000
- ldr r1, _0806FAC8 @ =0x00000282
- adds r7, r6, r1
- strh r0, [r7]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- bne _0806FAE4
- movs r0, 0x1
- bl PlaySE
- movs r0, 0x80
- lsls r0, 5
- adds r4, r6, r0
- movs r0, 0
- str r0, [r4, 0xC]
- ldr r2, _0806FACC @ =gTasks
- lsls r3, r5, 2
- adds r3, r5
- lsls r3, 3
- adds r5, r3, r2
- ldrh r0, [r5, 0x1E]
- ldrh r1, [r5, 0x20]
- subs r0, r1
- strh r0, [r5, 0x1E]
- ldr r0, [r4]
- adds r2, r3
- adds r2, 0x1E
- movs r1, 0x39
- bl SetMonData
- ldrb r0, [r4, 0x4]
- ldr r1, _0806FAD0 @ =0xfffe6000
- adds r6, r1
- ldrb r1, [r6, 0x1]
- bl sub_806DDA0
- lsls r0, 24
- lsrs r0, 24
- ldr r1, [r4]
- bl sub_806D84C
- ldr r2, _0806FAD4 @ =gSprites
- ldrb r1, [r6, 0x2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r0, [r0, 0x2E]
- strb r0, [r4, 0x5]
- ldrb r1, [r4, 0x5]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0806FAD8 @ =gPlayerParty
- adds r0, r1
- str r0, [r4]
- movs r1, 0x3A
- bl GetMonData
- strh r0, [r5, 0x1C]
- ldr r0, [r4]
- movs r1, 0x39
- bl GetMonData
- strh r0, [r5, 0x1E]
- ldr r0, _0806FADC @ =0xffff8000
- str r0, [r4, 0xC]
- ldr r0, [r4, 0x10]
- str r0, [r4, 0x14]
- ldr r0, _0806FAE0 @ =sub_806F8AC
- str r0, [r5]
- ldrh r0, [r5, 0x1E]
- strh r0, [r7]
- b _0806FB04
- .align 2, 0
-_0806FAC4: .4byte 0x0201b000
-_0806FAC8: .4byte 0x00000282
-_0806FACC: .4byte gTasks
-_0806FAD0: .4byte 0xfffe6000
-_0806FAD4: .4byte gSprites
-_0806FAD8: .4byte gPlayerParty
-_0806FADC: .4byte 0xffff8000
-_0806FAE0: .4byte sub_806F8AC
-_0806FAE4:
- movs r1, 0x80
- lsls r1, 5
- adds r0, r6, r1
- ldrb r4, [r0, 0x5]
- bl battle_type_is_double
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldrh r2, [r7]
- ldr r3, [sp]
- lsls r3, 16
- lsrs r3, 16
- adds r0, r4, 0
- bl sub_806E420
-_0806FB04:
- add sp, 0x14
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_806FA18
-
- thumb_func_start sub_806FB0C
-sub_806FB0C: @ 806FB0C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0806FB38 @ =gUnknown_0202E8F6
- ldrb r0, [r0]
- cmp r0, 0
- bne _0806FB32
- ldr r3, _0806FB3C @ =gTasks
- ldr r2, _0806FB40 @ =0x0201c000
- ldrb r1, [r2, 0x4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r3
- ldr r1, [r2, 0x10]
- str r1, [r0]
- adds r0, r4, 0
- bl DestroyTask
-_0806FB32:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0806FB38: .4byte gUnknown_0202E8F6
-_0806FB3C: .4byte gTasks
-_0806FB40: .4byte 0x0201c000
- thumb_func_end sub_806FB0C
-
- thumb_func_start sub_806FB44
-sub_806FB44: @ 806FB44
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0806FB70 @ =gUnknown_0202E8F6
- ldrb r0, [r0]
- cmp r0, 0
- bne _0806FB6A
- ldr r3, _0806FB74 @ =gTasks
- ldr r2, _0806FB78 @ =0x0201c000
- ldrb r1, [r2, 0x4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r3
- ldr r1, [r2, 0x14]
- str r1, [r0]
- adds r0, r4, 0
- bl DestroyTask
-_0806FB6A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0806FB70: .4byte gUnknown_0202E8F6
-_0806FB74: .4byte gTasks
-_0806FB78: .4byte 0x0201c000
- thumb_func_end sub_806FB44
-
- thumb_func_start sub_806FB7C
-sub_806FB7C: @ 806FB7C
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xAF
- bne _0806FB90
- ldr r0, _0806FB8C @ =gSaveBlock1 + 0x3676
- b _0806FB9A
- .align 2, 0
-_0806FB8C: .4byte gSaveBlock1 + 0x3676
-_0806FB90:
- ldr r1, _0806FBA8 @ =gItemEffectTable
- subs r0, 0xD
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
-_0806FB9A:
- ldrb r1, [r0, 0x4]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- bne _0806FBAC
- movs r0, 0
- b _0806FBAE
- .align 2, 0
-_0806FBA8: .4byte gItemEffectTable
-_0806FBAC:
- movs r0, 0x1
-_0806FBAE:
- pop {r1}
- bx r1
- thumb_func_end sub_806FB7C
-
- thumb_func_start sub_806FBB4
-sub_806FBB4: @ 806FBB4
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r4, r1, 24
- lsrs r4, 24
- adds r0, r4, 0
- bl sub_806E168
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_806E2C0
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_806FBB4
-
- thumb_func_start GetMedicineItemEffectMessage
-GetMedicineItemEffectMessage: @ 806FBD0
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- bl sub_8070E48
- lsls r0, 24
- lsrs r0, 24
- subs r0, 0x3
- cmp r0, 0x12
- bls _0806FBE6
- b _0806FD7C
-_0806FBE6:
- lsls r0, 2
- ldr r1, _0806FBF0 @ =_0806FBF4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0806FBF0: .4byte _0806FBF4
- .align 2, 0
-_0806FBF4:
- .4byte _0806FC40
- .4byte _0806FC54
- .4byte _0806FC68
- .4byte _0806FC7C
- .4byte _0806FC90
- .4byte _0806FCA4
- .4byte _0806FCB8
- .4byte _0806FD7C
- .4byte _0806FCCC
- .4byte _0806FCF0
- .4byte _0806FCE0
- .4byte _0806FD20
- .4byte _0806FD30
- .4byte _0806FD10
- .4byte _0806FD00
- .4byte _0806FD7C
- .4byte _0806FD54
- .4byte _0806FD54
- .4byte _0806FD68
-_0806FC40:
- ldr r0, _0806FC4C @ =gStringVar4
- ldr r1, _0806FC50 @ =gOtherText_CuredPoisoning
- bl StringExpandPlaceholders
- b _0806FD84
- .align 2, 0
-_0806FC4C: .4byte gStringVar4
-_0806FC50: .4byte gOtherText_CuredPoisoning
-_0806FC54:
- ldr r0, _0806FC60 @ =gStringVar4
- ldr r1, _0806FC64 @ =gOtherText_WokeUp
- bl StringExpandPlaceholders
- b _0806FD84
- .align 2, 0
-_0806FC60: .4byte gStringVar4
-_0806FC64: .4byte gOtherText_WokeUp
-_0806FC68:
- ldr r0, _0806FC74 @ =gStringVar4
- ldr r1, _0806FC78 @ =gOtherText_BurnHealed
- bl StringExpandPlaceholders
- b _0806FD84
- .align 2, 0
-_0806FC74: .4byte gStringVar4
-_0806FC78: .4byte gOtherText_BurnHealed
-_0806FC7C:
- ldr r0, _0806FC88 @ =gStringVar4
- ldr r1, _0806FC8C @ =gOtherText_ThawedOut
- bl StringExpandPlaceholders
- b _0806FD84
- .align 2, 0
-_0806FC88: .4byte gStringVar4
-_0806FC8C: .4byte gOtherText_ThawedOut
-_0806FC90:
- ldr r0, _0806FC9C @ =gStringVar4
- ldr r1, _0806FCA0 @ =gOtherText_CuredParalysis
- bl StringExpandPlaceholders
- b _0806FD84
- .align 2, 0
-_0806FC9C: .4byte gStringVar4
-_0806FCA0: .4byte gOtherText_CuredParalysis
-_0806FCA4:
- ldr r0, _0806FCB0 @ =gStringVar4
- ldr r1, _0806FCB4 @ =gOtherText_SnapConfusion
- bl StringExpandPlaceholders
- b _0806FD84
- .align 2, 0
-_0806FCB0: .4byte gStringVar4
-_0806FCB4: .4byte gOtherText_SnapConfusion
-_0806FCB8:
- ldr r0, _0806FCC4 @ =gStringVar4
- ldr r1, _0806FCC8 @ =gOtherText_GotOverLove
- bl StringExpandPlaceholders
- b _0806FD84
- .align 2, 0
-_0806FCC4: .4byte gStringVar4
-_0806FCC8: .4byte gOtherText_GotOverLove
-_0806FCCC:
- ldr r0, _0806FCD8 @ =gStringVar4
- ldr r1, _0806FCDC @ =gOtherText_BecameHealthy
- bl StringExpandPlaceholders
- b _0806FD84
- .align 2, 0
-_0806FCD8: .4byte gStringVar4
-_0806FCDC: .4byte gOtherText_BecameHealthy
-_0806FCE0:
- ldr r0, _0806FCE8 @ =gStringVar2
- ldr r1, _0806FCEC @ =gOtherText_Hp2
- b _0806FD34
- .align 2, 0
-_0806FCE8: .4byte gStringVar2
-_0806FCEC: .4byte gOtherText_Hp2
-_0806FCF0:
- ldr r0, _0806FCF8 @ =gStringVar2
- ldr r1, _0806FCFC @ =gOtherText_Attack
- b _0806FD34
- .align 2, 0
-_0806FCF8: .4byte gStringVar2
-_0806FCFC: .4byte gOtherText_Attack
-_0806FD00:
- ldr r0, _0806FD08 @ =gStringVar2
- ldr r1, _0806FD0C @ =gOtherText_Defense
- b _0806FD34
- .align 2, 0
-_0806FD08: .4byte gStringVar2
-_0806FD0C: .4byte gOtherText_Defense
-_0806FD10:
- ldr r0, _0806FD18 @ =gStringVar2
- ldr r1, _0806FD1C @ =gOtherText_Speed
- b _0806FD34
- .align 2, 0
-_0806FD18: .4byte gStringVar2
-_0806FD1C: .4byte gOtherText_Speed
-_0806FD20:
- ldr r0, _0806FD28 @ =gStringVar2
- ldr r1, _0806FD2C @ =gOtherText_SpAtk2
- b _0806FD34
- .align 2, 0
-_0806FD28: .4byte gStringVar2
-_0806FD2C: .4byte gOtherText_SpAtk2
-_0806FD30:
- ldr r0, _0806FD44 @ =gStringVar2
- ldr r1, _0806FD48 @ =gOtherText_SpDef2
-_0806FD34:
- bl StringCopy
- ldr r0, _0806FD4C @ =gStringVar4
- ldr r1, _0806FD50 @ =gOtherText_WasRaised
- bl StringExpandPlaceholders
- b _0806FD84
- .align 2, 0
-_0806FD44: .4byte gStringVar2
-_0806FD48: .4byte gOtherText_SpDef2
-_0806FD4C: .4byte gStringVar4
-_0806FD50: .4byte gOtherText_WasRaised
-_0806FD54:
- ldr r0, _0806FD60 @ =gStringVar4
- ldr r1, _0806FD64 @ =gOtherText_PPIncreased
- bl StringExpandPlaceholders
- b _0806FD84
- .align 2, 0
-_0806FD60: .4byte gStringVar4
-_0806FD64: .4byte gOtherText_PPIncreased
-_0806FD68:
- ldr r0, _0806FD74 @ =gStringVar4
- ldr r1, _0806FD78 @ =gOtherText_PPRestored
- bl StringExpandPlaceholders
- b _0806FD84
- .align 2, 0
-_0806FD74: .4byte gStringVar4
-_0806FD78: .4byte gOtherText_PPRestored
-_0806FD7C:
- ldr r0, _0806FD88 @ =gStringVar4
- ldr r1, _0806FD8C @ =gOtherText_WontHaveAnyEffect
- bl StringExpandPlaceholders
-_0806FD84:
- pop {r0}
- bx r0
- .align 2, 0
-_0806FD88: .4byte gStringVar4
-_0806FD8C: .4byte gOtherText_WontHaveAnyEffect
- thumb_func_end GetMedicineItemEffectMessage
-
- thumb_func_start sub_806FD90
-sub_806FD90: @ 806FD90
- push {r4,lr}
- adds r4, r0, 0
- lsls r0, r1, 16
- lsrs r0, 16
- bl sub_8070E48
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xD
- bne _0806FDBC
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- ldr r1, _0806FDB8 @ =0x0000012f
- cmp r0, r1
- bne _0806FDBC
- movs r0, 0x1
- b _0806FDBE
- .align 2, 0
-_0806FDB8: .4byte 0x0000012f
-_0806FDBC:
- movs r0, 0
-_0806FDBE:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_806FD90
-
- thumb_func_start ExecuteTableBasedItemEffect__
-ExecuteTableBasedItemEffect__: @ 806FDC4
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- lsls r1, 16
- lsrs r5, r1, 16
- lsls r2, 24
- lsrs r6, r2, 24
- ldr r0, _0806FDF0 @ =gMain
- ldr r1, _0806FDF4 @ =0x0000043d
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _0806FDFC
- movs r0, 0x64
- muls r0, r3
- ldr r1, _0806FDF8 @ =gPlayerParty
- adds r0, r1
- adds r1, r5, 0
- adds r2, r3, 0
- b _0806FE16
- .align 2, 0
-_0806FDF0: .4byte gMain
-_0806FDF4: .4byte 0x0000043d
-_0806FDF8: .4byte gPlayerParty
-_0806FDFC:
- movs r0, 0x64
- adds r4, r3, 0
- muls r4, r0
- ldr r0, _0806FE28 @ =gPlayerParty
- adds r4, r0
- adds r0, r3, 0
- bl sub_8094C20
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r5, 0
-_0806FE16:
- adds r3, r6, 0
- bl ExecuteTableBasedItemEffect_
- lsls r0, 24
- lsrs r0, 24
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0806FE28: .4byte gPlayerParty
- thumb_func_end ExecuteTableBasedItemEffect__
-
- thumb_func_start sub_806FE2C
-sub_806FE2C: @ 806FE2C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- adds r4, r0, 0
- adds r5, r2, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r1, 16
- lsrs r6, r1, 16
- movs r0, 0
- mov r9, r0
- ldr r1, _0806FED4 @ =gTasks
- mov r10, r1
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- add r1, r10
- ldr r0, _0806FED8 @ =TaskDummy
- str r0, [r1]
- movs r1, 0x5
- bl CreateTask
- lsls r0, 24
- lsrs r7, r0, 24
- adds r0, r4, 0
- adds r1, r6, 0
- adds r2, r5, 0
- bl sub_806E8D0
- ldr r5, _0806FEDC @ =0x0201c000
- ldr r0, [r5]
- adds r1, r6, 0
- bl sub_806FD90
- lsls r0, 24
- cmp r0, 0
- bne _0806FEE0
- adds r0, r6, 0
- bl sub_806FB7C
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- lsls r2, r7, 2
- mov r8, r2
- cmp r0, 0x1
- bne _0806FEC2
- ldr r0, [r5]
- movs r1, 0x3A
- bl GetMonData
- mov r3, r8
- adds r1, r3, r7
- lsls r1, 3
- mov r2, r10
- adds r4, r1, r2
- strh r0, [r4, 0x1C]
- ldr r0, [r5]
- movs r1, 0x39
- bl GetMonData
- strh r0, [r4, 0x1E]
- movs r3, 0x1C
- ldrsh r1, [r4, r3]
- lsls r0, 16
- asrs r0, 16
- cmp r1, r0
- bne _0806FEC2
- movs r0, 0
- mov r9, r0
- mov r1, r9
- strh r1, [r4, 0x1C]
- strh r1, [r4, 0x1E]
-_0806FEC2:
- ldr r0, _0806FEDC @ =0x0201c000
- ldrb r0, [r0, 0x5]
- adds r1, r6, 0
- movs r2, 0
- bl ExecuteTableBasedItemEffect__
- lsls r0, 24
- lsrs r0, 24
- b _0806FEE6
- .align 2, 0
-_0806FED4: .4byte gTasks
-_0806FED8: .4byte TaskDummy
-_0806FEDC: .4byte 0x0201c000
-_0806FEE0:
- movs r0, 0x1
- lsls r2, r7, 2
- mov r8, r2
-_0806FEE6:
- cmp r0, 0
- beq _0806FF14
- ldr r1, _0806FF08 @ =gUnknown_0202E8F4
- movs r0, 0
- strb r0, [r1]
- movs r0, 0x5
- bl PlaySE
- ldr r0, _0806FF0C @ =gOtherText_WontHaveAnyEffect
- movs r1, 0x1
- bl sub_806E834
- ldr r1, _0806FF10 @ =gTasks
- mov r3, r8
- adds r0, r3, r7
- b _08070002
- .align 2, 0
-_0806FF08: .4byte gUnknown_0202E8F4
-_0806FF0C: .4byte gOtherText_WontHaveAnyEffect
-_0806FF10: .4byte gTasks
-_0806FF14:
- ldr r1, _0806FF30 @ =gUnknown_0202E8F4
- movs r0, 0x1
- strb r0, [r1]
- adds r0, r6, 0
- bl IsBlueYellowRedFlute
- lsls r0, 24
- cmp r0, 0
- bne _0806FF34
- movs r0, 0x1
- bl PlaySE
- b _0806FF3A
- .align 2, 0
-_0806FF30: .4byte gUnknown_0202E8F4
-_0806FF34:
- movs r0, 0x75
- bl PlaySE
-_0806FF3A:
- ldr r4, _0806FF88 @ =0x0201c000
- ldr r0, [r4]
- bl sub_80A1CD8
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x6
- beq _0806FF4E
- cmp r0, 0
- bne _0806FF56
-_0806FF4E:
- ldr r0, [r4]
- ldrb r1, [r4, 0x5]
- bl sub_806FBB4
-_0806FF56:
- mov r0, r9
- cmp r0, 0x1
- bne _0806FFC8
- ldr r4, _0806FF88 @ =0x0201c000
- ldr r0, [r4]
- movs r1, 0x39
- bl GetMonData
- ldr r2, _0806FF8C @ =gTasks
- mov r3, r8
- adds r1, r3, r7
- lsls r1, 3
- adds r2, r1, r2
- ldrh r1, [r2, 0x1E]
- subs r0, r1
- strh r0, [r2, 0x20]
- ldr r0, _0806FF90 @ =0xffff8000
- str r0, [r4, 0xC]
- movs r1, 0x1E
- ldrsh r0, [r2, r1]
- cmp r0, 0
- bne _0806FF94
- mov r3, r9
- strh r3, [r2, 0x24]
- b _0806FF98
- .align 2, 0
-_0806FF88: .4byte 0x0201c000
-_0806FF8C: .4byte gTasks
-_0806FF90: .4byte 0xffff8000
-_0806FF94:
- movs r0, 0
- strh r0, [r2, 0x24]
-_0806FF98:
- ldr r2, _0806FFB8 @ =0x0201c000
- ldr r0, [r2, 0x10]
- str r0, [r2, 0x14]
- ldr r1, _0806FFBC @ =gTasks
- mov r3, r8
- adds r0, r3, r7
- lsls r0, 3
- adds r0, r1
- ldr r1, _0806FFC0 @ =sub_806F8AC
- str r1, [r0]
- ldrh r0, [r0, 0x1E]
- ldr r1, _0806FFC4 @ =0xfffff282
- adds r2, r1
- strh r0, [r2]
- b _0807000A
- .align 2, 0
-_0806FFB8: .4byte 0x0201c000
-_0806FFBC: .4byte gTasks
-_0806FFC0: .4byte sub_806F8AC
-_0806FFC4: .4byte 0xfffff282
-_0806FFC8:
- ldr r4, _08070018 @ =0x0201c000
- ldr r0, [r4]
- ldr r1, _0807001C @ =gStringVar1
- bl GetMonNickname
- adds r0, r6, 0
- bl IsBlueYellowRedFlute
- lsls r0, 24
- cmp r0, 0
- bne _0806FFE6
- adds r0, r6, 0
- movs r1, 0x1
- bl RemoveBagItem
-_0806FFE6:
- adds r0, r6, 0
- bl GetMedicineItemEffectMessage
- ldrb r0, [r4, 0x5]
- ldr r1, [r4]
- bl sub_806E07C
- ldr r0, _08070020 @ =gStringVar4
- movs r1, 0x1
- bl sub_806E834
- ldr r1, _08070024 @ =gTasks
- mov r2, r8
- adds r0, r2, r7
-_08070002:
- lsls r0, 3
- adds r0, r1
- ldr r1, _08070028 @ =sub_806FB0C
- str r1, [r0]
-_0807000A:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08070018: .4byte 0x0201c000
-_0807001C: .4byte gStringVar1
-_08070020: .4byte gStringVar4
-_08070024: .4byte gTasks
-_08070028: .4byte sub_806FB0C
- thumb_func_end sub_806FE2C
-
- thumb_func_start IsBlueYellowRedFlute
-IsBlueYellowRedFlute: @ 807002C
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x27
- beq _0807003E
- cmp r0, 0x29
- beq _0807003E
- cmp r0, 0x28
- bne _08070042
-_0807003E:
- movs r0, 0x1
- b _08070044
-_08070042:
- movs r0, 0
-_08070044:
- pop {r1}
- bx r1
- thumb_func_end IsBlueYellowRedFlute
-
- thumb_func_start sub_8070048
-sub_8070048: @ 8070048
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _08070078 @ =0x0201c000
- str r2, [r3, 0x10]
- movs r4, 0
- strb r0, [r3, 0x4]
- movs r2, 0
- strh r1, [r3, 0x6]
- strb r2, [r3, 0x5]
- ldr r1, _0807007C @ =sub_80701DC
- str r1, [r3, 0x14]
- ldr r2, _08070080 @ =0xfffff27e
- adds r1, r3, r2
- strh r4, [r1]
- ldr r1, _08070084 @ =0xfffff280
- adds r3, r1
- strh r4, [r3]
- bl sub_8070088
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08070078: .4byte 0x0201c000
-_0807007C: .4byte sub_80701DC
-_08070080: .4byte 0xfffff27e
-_08070084: .4byte 0xfffff280
- thumb_func_end sub_8070048
-
- thumb_func_start sub_8070088
-sub_8070088: @ 8070088
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _08070120 @ =gTasks
- mov r10, r1
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- mov r2, r10
- adds r7, r1, r2
- ldr r5, _08070124 @ =TaskDummy
- str r5, [r7]
- ldr r4, _08070128 @ =0x0201c000
- ldrb r0, [r4, 0x5]
- movs r1, 0x64
- mov r9, r1
- mov r2, r9
- muls r2, r0
- adds r0, r2, 0
- ldr r1, _0807012C @ =gPlayerParty
- mov r8, r1
- add r0, r8
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _08070118
- adds r0, r5, 0
- movs r1, 0x5
- bl CreateTask
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- str r0, [sp]
- mov r0, r10
- adds r0, 0x8
- ldr r2, [sp]
- adds r6, r2, r0
- ldrb r0, [r4, 0x5]
- mov r1, r9
- muls r1, r0
- adds r0, r1, 0
- add r0, r8
- str r0, [r4]
- movs r1, 0x3A
- bl GetMonData
- strh r0, [r6, 0x14]
- ldr r0, [r4]
- movs r1, 0x39
- bl GetMonData
- strh r0, [r6, 0x16]
- ldrb r0, [r4, 0x5]
- ldrh r1, [r4, 0x6]
- movs r2, 0
- bl ExecuteTableBasedItemEffect__
- lsls r0, 24
- cmp r0, 0
- beq _08070134
- adds r0, r5, 0
- bl DestroyTask
-_08070118:
- ldr r0, _08070130 @ =sub_80701DC
- str r0, [r7]
- b _080701B0
- .align 2, 0
-_08070120: .4byte gTasks
-_08070124: .4byte TaskDummy
-_08070128: .4byte 0x0201c000
-_0807012C: .4byte gPlayerParty
-_08070130: .4byte sub_80701DC
-_08070134:
- ldr r1, _080701C0 @ =gUnknown_0202E8F4
- movs r0, 0x1
- strb r0, [r1]
- movs r0, 0x3
- movs r1, 0xE
- movs r2, 0x1A
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- movs r0, 0x1
- bl PlaySE
- ldr r0, [r4]
- ldrb r1, [r4, 0x5]
- bl sub_806FBB4
- bl battle_type_is_double
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldrb r1, [r4, 0x5]
- lsls r1, 1
- adds r0, r1
- ldr r1, _080701C4 @ =gUnknown_083769A8
- adds r0, r1
- movs r1, 0x9
- bl task_pc_turn_off
- ldr r2, _080701C8 @ =0xfffff261
- adds r1, r4, r2
- movs r0, 0x2
- strb r0, [r1]
- ldr r0, [r4]
- movs r1, 0x39
- bl GetMonData
- ldrh r1, [r6, 0x16]
- subs r0, r1
- strh r0, [r6, 0x18]
- movs r0, 0x1
- strh r0, [r6, 0x1C]
- ldr r1, _080701CC @ =0xfffff27e
- adds r0, r4, r1
- movs r1, 0x1
- strh r1, [r0]
- ldr r2, _080701D0 @ =0xfffff280
- adds r0, r4, r2
- strh r1, [r0]
- ldrh r1, [r6, 0x16]
- adds r2, 0x2
- adds r0, r4, r2
- strh r1, [r0]
- ldr r0, _080701D4 @ =0xffff8000
- str r0, [r4, 0xC]
- ldr r1, [sp]
- add r1, r10
- ldr r0, _080701D8 @ =sub_806F8AC
- str r0, [r1]
-_080701B0:
- 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
-_080701C0: .4byte gUnknown_0202E8F4
-_080701C4: .4byte gUnknown_083769A8
-_080701C8: .4byte 0xfffff261
-_080701CC: .4byte 0xfffff27e
-_080701D0: .4byte 0xfffff280
-_080701D4: .4byte 0xffff8000
-_080701D8: .4byte sub_806F8AC
- thumb_func_end sub_8070088
-
- thumb_func_start sub_80701DC
-sub_80701DC: @ 80701DC
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r6, _08070280 @ =0x0201b000
- ldr r0, _08070284 @ =0x0000027e
- adds r7, r6, r0
- movs r1, 0
- ldrsh r0, [r7, r1]
- cmp r0, 0x1
- bne _0807023E
- movs r0, 0x80
- lsls r0, 5
- adds r4, r6, r0
- ldrh r0, [r4, 0x6]
- movs r1, 0x1
- bl AddBagItem
- ldrb r1, [r4, 0x5]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08070288 @ =gPlayerParty
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _0807023A
- bl battle_type_is_double
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldrb r1, [r4, 0x5]
- lsls r1, 1
- adds r0, r1
- ldr r1, _0807028C @ =gUnknown_083769A8
- adds r0, r1
- movs r1, 0x3
- bl task_pc_turn_off
- ldr r0, _08070290 @ =0x00000261
- adds r1, r6, r0
- movs r0, 0x2
- strb r0, [r1]
-_0807023A:
- movs r0, 0
- strh r0, [r7]
-_0807023E:
- ldr r4, _08070294 @ =0x0201c000
- ldrb r0, [r4, 0x5]
- adds r0, 0x1
- strb r0, [r4, 0x5]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x6
- bne _080702D8
- ldr r1, _08070298 @ =gUnknown_0202E8F4
- movs r0, 0
- strb r0, [r1]
- ldr r1, _0807029C @ =0xfffff280
- adds r0, r4, r1
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080702B0
- ldr r1, _080702A0 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _080702A4 @ =TaskDummy
- str r1, [r0]
- ldr r0, _080702A8 @ =gOtherText_WontHaveAnyEffect
- movs r1, 0x1
- bl sub_806E834
- ldr r0, _080702AC @ =sub_806FB0C
- movs r1, 0x8
- bl CreateTask
- b _080702C6
- .align 2, 0
-_08070280: .4byte 0x0201b000
-_08070284: .4byte 0x0000027e
-_08070288: .4byte gPlayerParty
-_0807028C: .4byte gUnknown_083769A8
-_08070290: .4byte 0x00000261
-_08070294: .4byte 0x0201c000
-_08070298: .4byte gUnknown_0202E8F4
-_0807029C: .4byte 0xfffff280
-_080702A0: .4byte gTasks
-_080702A4: .4byte TaskDummy
-_080702A8: .4byte gOtherText_WontHaveAnyEffect
-_080702AC: .4byte sub_806FB0C
-_080702B0:
- ldrh r0, [r4, 0x6]
- movs r1, 0x1
- bl RemoveBagItem
- ldr r1, _080702D0 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, [r4, 0x10]
- str r1, [r0]
-_080702C6:
- ldr r1, _080702D4 @ =gUnknown_03005CE0
- movs r0, 0
- strb r0, [r1]
- b _080702DE
- .align 2, 0
-_080702D0: .4byte gTasks
-_080702D4: .4byte gUnknown_03005CE0
-_080702D8:
- adds r0, r5, 0
- bl sub_8070088
-_080702DE:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80701DC
-
- thumb_func_start sub_80702E4
-sub_80702E4: @ 80702E4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r6, 0
- movs r0, 0x13
- movs r1, 0xA
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuDrawTextWindow
- movs r5, 0
- movs r0, 0x64
- adds r7, r4, 0
- muls r7, r0
- ldr r0, _0807036C @ =gPlayerParty
- mov r8, r0
-_0807030C:
- adds r1, r5, 0
- adds r1, 0xD
- mov r2, r8
- adds r0, r7, r2
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- movs r0, 0xD
- muls r0, r4
- ldr r1, _08070370 @ =gMoveNames
- adds r0, r1
- lsls r2, r5, 25
- movs r1, 0xB0
- lsls r1, 20
- adds r2, r1
- lsrs r2, 24
- movs r1, 0x14
- bl MenuPrint
- cmp r4, 0
- beq _08070340
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
-_08070340:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x3
- bls _0807030C
- movs r0, 0
- str r0, [sp]
- movs r0, 0x9
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x14
- movs r2, 0xB
- adds r3, r6, 0
- bl InitMenu
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0807036C: .4byte gPlayerParty
-_08070370: .4byte gMoveNames
- thumb_func_end sub_80702E4
-
- thumb_func_start sub_8070374
-sub_8070374: @ 8070374
- push {r4,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- adds r4, r2, 0
- ldr r0, _08070398 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0807039C
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- negs r0, r0
- bl MoveMenuCursor
- b _080703E4
- .align 2, 0
-_08070398: .4byte gMain
-_0807039C:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080703B2
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- bl MoveMenuCursor
- b _080703E4
-_080703B2:
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080703CC
- ldr r0, _080703C8 @ =gUnknown_08376B54
- ldr r1, [r0]
- adds r0, r2, 0
- bl _call_via_r1
- b _080703E4
- .align 2, 0
-_080703C8: .4byte gUnknown_08376B54
-_080703CC:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080703E4
- movs r0, 0x5
- bl PlaySE
- ldr r0, _080703EC @ =gUnknown_08376B54
- ldr r1, [r0, 0x4]
- adds r0, r4, 0
- bl _call_via_r1
-_080703E4:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080703EC: .4byte gUnknown_08376B54
- thumb_func_end sub_8070374
-
- thumb_func_start dp05_ether
-dp05_ether: @ 80703F0
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- mov r9, r2
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 16
- lsrs r5, r1, 16
- cmp r5, 0xAF
- bne _08070410
- ldr r0, _0807040C @ =gSaveBlock1 + 0x3676
- b _0807041C
- .align 2, 0
-_0807040C: .4byte gSaveBlock1 + 0x3676
-_08070410:
- ldr r1, _08070464 @ =gItemEffectTable
- adds r0, r5, 0
- subs r0, 0xD
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
-_0807041C:
- mov r8, r0
- ldr r7, _08070468 @ =gTasks
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 3
- adds r1, r7
- ldr r0, _0807046C @ =TaskDummy
- str r0, [r1]
- movs r1, 0x5
- bl CreateTask
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r6, 0
- adds r1, r5, 0
- mov r2, r9
- bl sub_806E8D0
- mov r0, r8
- ldrb r1, [r0, 0x4]
- movs r0, 0x10
- ands r0, r1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- bne _08070470
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r7
- strh r1, [r0, 0x1E]
- adds r0, r4, 0
- bl ether_effect_related
- b _08070498
- .align 2, 0
-_08070464: .4byte gItemEffectTable
-_08070468: .4byte gTasks
-_0807046C: .4byte TaskDummy
-_08070470:
- movs r0, 0x5
- bl PlaySE
- movs r0, 0xA
- movs r1, 0x3
- bl sub_806D538
- ldr r0, _080704A4 @ =0x0201c000
- ldrb r0, [r0, 0x5]
- bl sub_80702E4
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r7
- ldr r1, _080704A8 @ =sub_8070374
- str r1, [r0]
- ldr r1, _080704AC @ =gMain
- movs r0, 0
- strh r0, [r1, 0x2E]
-_08070498:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080704A4: .4byte 0x0201c000
-_080704A8: .4byte sub_8070374
-_080704AC: .4byte gMain
- thumb_func_end dp05_ether
-
- thumb_func_start ether_effect_related_2
-ether_effect_related_2: @ 80704B0
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_8072DEC
- movs r0, 0x13
- movs r1, 0xA
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- bl sub_806D5A4
- bl GetMenuCursorPos
- ldr r2, _080704EC @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r2
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r1, 0x1E]
- adds r0, r4, 0
- bl ether_effect_related
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080704EC: .4byte gTasks
- thumb_func_end ether_effect_related_2
-
- thumb_func_start sub_80704F0
-sub_80704F0: @ 80704F0
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_8072DEC
- movs r0, 0x13
- movs r1, 0xA
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- ldr r0, _08070528 @ =gMain
- ldr r1, _0807052C @ =0x0000043d
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0807053C
- ldr r2, _08070530 @ =gTasks
- ldr r0, _08070534 @ =0x0201c000
- ldrb r1, [r0, 0x4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldr r1, _08070538 @ =sub_8095118
- b _0807054C
- .align 2, 0
-_08070528: .4byte gMain
-_0807052C: .4byte 0x0000043d
-_08070530: .4byte gTasks
-_08070534: .4byte 0x0201c000
-_08070538: .4byte sub_8095118
-_0807053C:
- ldr r2, _08070564 @ =gTasks
- ldr r0, _08070568 @ =0x0201c000
- ldrb r1, [r0, 0x4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldr r1, _0807056C @ =sub_808B0C0
-_0807054C:
- str r1, [r0]
- movs r0, 0x3
- movs r1, 0
- bl sub_806D538
- adds r0, r4, 0
- bl DestroyTask
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08070564: .4byte gTasks
-_08070568: .4byte 0x0201c000
-_0807056C: .4byte sub_808B0C0
- thumb_func_end sub_80704F0
-
- thumb_func_start ether_effect_related
-ether_effect_related: @ 8070570
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- movs r5, 0
- ldr r6, _080705A8 @ =0x0201c000
- ldrb r0, [r6, 0x5]
- ldrh r1, [r6, 0x6]
- ldr r3, _080705AC @ =gTasks
- lsls r2, r4, 2
- adds r2, r4
- lsls r2, 3
- adds r7, r2, r3
- ldrb r2, [r7, 0x1E]
- bl ExecuteTableBasedItemEffect__
- lsls r0, 24
- cmp r0, 0
- beq _080705B8
- ldr r0, _080705B0 @ =gUnknown_0202E8F4
- strb r5, [r0]
- movs r0, 0x5
- bl PlaySE
- ldr r0, _080705B4 @ =gOtherText_WontHaveAnyEffect
- movs r1, 0x1
- bl sub_806E834
- b _080705F8
- .align 2, 0
-_080705A8: .4byte 0x0201c000
-_080705AC: .4byte gTasks
-_080705B0: .4byte gUnknown_0202E8F4
-_080705B4: .4byte gOtherText_WontHaveAnyEffect
-_080705B8:
- ldr r1, _0807060C @ =gUnknown_0202E8F4
- movs r0, 0x1
- strb r0, [r1]
- movs r0, 0x1
- bl PlaySE
- ldrh r0, [r6, 0x6]
- movs r1, 0x1
- bl RemoveBagItem
- ldr r0, [r6]
- movs r2, 0x1E
- ldrsh r1, [r7, r2]
- adds r1, 0xD
- bl GetMonData
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r0, _08070610 @ =gStringVar1
- movs r1, 0xD
- muls r1, r5
- ldr r2, _08070614 @ =gMoveNames
- adds r1, r2
- bl StringCopy
- ldrh r0, [r6, 0x6]
- bl GetMedicineItemEffectMessage
- ldr r0, _08070618 @ =gStringVar4
- movs r1, 0x1
- bl sub_806E834
-_080705F8:
- ldr r0, _0807061C @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _08070620 @ =sub_806FB0C
- str r0, [r1]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0807060C: .4byte gUnknown_0202E8F4
-_08070610: .4byte gStringVar1
-_08070614: .4byte gMoveNames
-_08070618: .4byte gStringVar4
-_0807061C: .4byte gTasks
-_08070620: .4byte sub_806FB0C
- thumb_func_end ether_effect_related
-
- thumb_func_start dp05_pp_up
-dp05_pp_up: @ 8070624
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 16
- lsrs r1, 16
- ldr r4, _0807066C @ =gTasks
- lsls r3, r0, 2
- adds r3, r0
- lsls r3, 3
- adds r3, r4
- ldr r4, _08070670 @ =TaskDummy
- str r4, [r3]
- bl sub_806E8D0
- movs r0, 0x5
- bl PlaySE
- movs r0, 0xB
- movs r1, 0x3
- bl sub_806D538
- ldr r0, _08070674 @ =0x0201c000
- ldrb r0, [r0, 0x5]
- bl sub_80702E4
- ldr r0, _08070678 @ =sub_8070374
- movs r1, 0x5
- bl CreateTask
- ldr r1, _0807067C @ =gMain
- movs r0, 0
- strh r0, [r1, 0x2E]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0807066C: .4byte gTasks
-_08070670: .4byte TaskDummy
-_08070674: .4byte 0x0201c000
-_08070678: .4byte sub_8070374
-_0807067C: .4byte gMain
- thumb_func_end dp05_pp_up
-
- thumb_func_start sub_8070680
-sub_8070680: @ 8070680
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 16
- lsrs r6, r1, 16
- ldr r3, _080706E0 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r3
- ldr r3, _080706E4 @ =TaskDummy
- str r3, [r1]
- adds r1, r6, 0
- bl sub_806E8D0
- ldr r5, _080706E8 @ =0x0201c000
- ldr r0, [r5]
- movs r1, 0x38
- bl GetMonData
- cmp r0, 0x64
- beq _080706F4
- movs r4, 0
- ldr r0, _080706EC @ =0xfffff264
- adds r7, r5, r0
-_080706B2:
- ldr r0, [r5]
- ldr r1, _080706F0 @ =gUnknown_08376D1C
- adds r1, r4, r1
- ldrb r1, [r1]
- bl GetMonData
- lsls r1, r4, 1
- adds r1, r7, r1
- strh r0, [r1]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x5
- bls _080706B2
- ldr r0, _080706E8 @ =0x0201c000
- ldrb r0, [r0, 0x5]
- adds r1, r6, 0
- movs r2, 0
- bl ExecuteTableBasedItemEffect__
- lsls r0, 24
- lsrs r0, 24
- b _080706F6
- .align 2, 0
-_080706E0: .4byte gTasks
-_080706E4: .4byte TaskDummy
-_080706E8: .4byte 0x0201c000
-_080706EC: .4byte 0xfffff264
-_080706F0: .4byte gUnknown_08376D1C
-_080706F4:
- movs r0, 0x1
-_080706F6:
- cmp r0, 0
- beq _08070724
- ldr r1, _08070718 @ =gUnknown_0202E8F4
- movs r0, 0
- strb r0, [r1]
- movs r0, 0x5
- bl PlaySE
- ldr r0, _0807071C @ =gOtherText_WontHaveAnyEffect
- movs r1, 0x1
- bl sub_806E834
- ldr r0, _08070720 @ =sub_806FB0C
- movs r1, 0x5
- bl CreateTask
- b _0807077C
- .align 2, 0
-_08070718: .4byte gUnknown_0202E8F4
-_0807071C: .4byte gOtherText_WontHaveAnyEffect
-_08070720: .4byte sub_806FB0C
-_08070724:
- ldr r1, _08070784 @ =gUnknown_0202E8F4
- movs r0, 0x1
- strb r0, [r1]
- movs r0, 0
- bl PlayFanfareByFanfareNum
- ldr r4, _08070788 @ =0x0201c000
- ldrb r0, [r4, 0x5]
- ldr r1, [r4]
- bl sub_8070A20
- adds r0, r6, 0
- movs r1, 0x1
- bl RemoveBagItem
- ldr r0, [r4]
- ldr r1, _0807078C @ =gStringVar1
- bl GetMonNickname
- ldr r0, [r4]
- movs r1, 0x38
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r0, _08070790 @ =gStringVar2
- movs r2, 0
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- ldr r4, _08070794 @ =gStringVar4
- ldr r1, _08070798 @ =gOtherText_ElevatedTo
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_806E834
- ldr r0, _0807079C @ =sub_80707A0
- movs r1, 0x5
- bl CreateTask
-_0807077C:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08070784: .4byte gUnknown_0202E8F4
-_08070788: .4byte 0x0201c000
-_0807078C: .4byte gStringVar1
-_08070790: .4byte gStringVar2
-_08070794: .4byte gStringVar4
-_08070798: .4byte gOtherText_ElevatedTo
-_0807079C: .4byte sub_80707A0
- thumb_func_end sub_8070680
-
- thumb_func_start sub_80707A0
-sub_80707A0: @ 80707A0
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0
- bl WaitFanfare
- lsls r0, 24
- cmp r0, 0
- beq _080707E8
- ldr r0, _080707F0 @ =gUnknown_0202E8F6
- ldrb r0, [r0]
- cmp r0, 0
- bne _080707E8
- ldr r0, _080707F4 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080707CE
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080707E8
-_080707CE:
- movs r0, 0x5
- bl PlaySE
- adds r0, r4, 0
- bl sub_8070848
- ldr r0, _080707F8 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _080707FC @ =sub_8070800
- str r0, [r1]
-_080707E8:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080707F0: .4byte gUnknown_0202E8F6
-_080707F4: .4byte gMain
-_080707F8: .4byte gTasks
-_080707FC: .4byte sub_8070800
- thumb_func_end sub_80707A0
-
- thumb_func_start sub_8070800
-sub_8070800: @ 8070800
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0807083C @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0807081A
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08070834
-_0807081A:
- movs r0, 0x5
- bl PlaySE
- adds r0, r4, 0
- bl sub_8070968
- ldr r0, _08070840 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _08070844 @ =sub_8070AC8
- str r0, [r1]
-_08070834:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0807083C: .4byte gMain
-_08070840: .4byte gTasks
-_08070844: .4byte sub_8070AC8
- thumb_func_end sub_8070800
-
- thumb_func_start sub_8070848
-sub_8070848: @ 8070848
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- movs r0, 0xB
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x7
- bl MenuDrawTextWindow
- movs r7, 0
- ldr r0, _080708E4 @ =gStringVar1
- mov r10, r0
-_08070864:
- ldr r1, _080708E8 @ =0x0201c000
- ldr r0, [r1]
- ldr r1, _080708EC @ =gUnknown_08376D1C
- adds r1, r7, r1
- ldrb r1, [r1]
- bl GetMonData
- adds r1, r7, 0x6
- lsls r1, 1
- ldr r2, _080708F0 @ =0x0201b264
- adds r1, r2
- strh r0, [r1]
- lsls r4, r7, 1
- adds r2, r4, r2
- ldrh r1, [r2]
- subs r0, r1
- strh r0, [r2]
- adds r0, r7, 0
- movs r1, 0x3
- bl __udivsi3
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 3
- adds r1, r0
- adds r1, 0xB
- lsls r1, 24
- lsrs r6, r1, 24
- adds r0, r7, 0
- movs r1, 0x3
- bl __umodsi3
- lsls r0, 1
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- ldr r1, _080708F4 @ =gUnknown_08376D04
- lsls r0, r7, 2
- adds r0, r1
- ldr r0, [r0]
- adds r1, r6, 0x1
- lsls r1, 27
- lsrs r1, 24
- mov r2, r9
- lsls r5, r2, 3
- adds r2, r5, 0
- movs r3, 0x1
- bl MenuPrint_PixelCoords
- mov r8, r4
- cmp r7, 0x2
- bne _080708FC
- adds r4, r6, 0x6
- lsls r1, r4, 3
- adds r1, 0x6
- lsls r1, 24
- lsrs r1, 24
- ldr r0, _080708F8 @ =gOtherText_TallPlusAndRightArrow
- adds r2, r5, 0
- movs r3, 0
- bl MenuPrint_PixelCoords
- b _08070910
- .align 2, 0
-_080708E4: .4byte gStringVar1
-_080708E8: .4byte 0x0201c000
-_080708EC: .4byte gUnknown_08376D1C
-_080708F0: .4byte 0x0201b264
-_080708F4: .4byte gUnknown_08376D04
-_080708F8: .4byte gOtherText_TallPlusAndRightArrow
-_080708FC:
- adds r4, r6, 0x6
- lsls r1, r4, 3
- adds r1, 0x6
- lsls r1, 24
- lsrs r1, 24
- ldr r0, _08070960 @ =gOtherText_TallPlusAndRightArrow
- adds r2, r5, 0
- movs r3, 0x1
- bl MenuPrint_PixelCoords
-_08070910:
- movs r0, 0xFC
- mov r1, r10
- strb r0, [r1]
- movs r0, 0x14
- strb r0, [r1, 0x1]
- movs r0, 0x6
- strb r0, [r1, 0x2]
- ldr r0, _08070964 @ =0x0201b264
- add r0, r8
- movs r2, 0
- ldrsh r1, [r0, r2]
- mov r0, r10
- adds r0, 0x3
- movs r2, 0x1
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- lsls r1, r4, 27
- movs r0, 0xC0
- lsls r0, 20
- adds r1, r0
- lsrs r1, 24
- mov r0, r9
- lsls r2, r0, 3
- mov r0, r10
- movs r3, 0
- bl MenuPrint_PixelCoords
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0x5
- bls _08070864
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08070960: .4byte gOtherText_TallPlusAndRightArrow
-_08070964: .4byte 0x0201b264
- thumb_func_end sub_8070848
-
- thumb_func_start sub_8070968
-sub_8070968: @ 8070968
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- movs r7, 0
- ldr r0, _08070A10 @ =0x0201c000
- mov r9, r0
- ldr r1, _08070A14 @ =0xfffff264
- add r1, r9
- mov r10, r1
- ldr r0, _08070A18 @ =gStringVar1
- mov r8, r0
-_08070982:
- mov r1, r9
- ldr r0, [r1]
- ldr r1, _08070A1C @ =gUnknown_08376D1C
- adds r1, r7, r1
- ldrb r1, [r1]
- bl GetMonData
- adds r6, r7, 0x6
- lsls r6, 1
- add r6, r10
- strh r0, [r6]
- adds r0, r7, 0
- movs r1, 0x3
- bl __udivsi3
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 3
- adds r4, r0
- adds r4, 0xB
- lsls r4, 24
- lsrs r4, 24
- adds r0, r7, 0
- movs r1, 0x3
- bl __umodsi3
- adds r5, r0, 0
- lsls r5, 1
- adds r5, 0x1
- lsls r5, 24
- lsrs r5, 24
- movs r0, 0xFC
- mov r1, r8
- strb r0, [r1]
- movs r0, 0x14
- strb r0, [r1, 0x1]
- movs r0, 0x6
- strb r0, [r1, 0x2]
- movs r0, 0
- ldrsh r1, [r6, r0]
- mov r0, r8
- adds r0, 0x3
- movs r2, 0x1
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- adds r4, 0x6
- lsls r4, 3
- adds r4, 0x6
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 3
- mov r0, r8
- adds r1, r4, 0
- adds r2, r5, 0
- movs r3, 0
- bl MenuPrint_PixelCoords
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0x5
- bls _08070982
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08070A10: .4byte 0x0201c000
-_08070A14: .4byte 0xfffff264
-_08070A18: .4byte gStringVar1
-_08070A1C: .4byte gUnknown_08376D1C
- thumb_func_end sub_8070968
-
- thumb_func_start sub_8070A20
-sub_8070A20: @ 8070A20
- push {r4-r7,lr}
- adds r6, r1, 0
- lsls r0, 24
- lsrs r7, r0, 24
- adds r0, r6, 0
- bl sub_80A1CD8
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _08070A3A
- cmp r0, 0x6
- bne _08070A42
-_08070A3A:
- adds r0, r6, 0
- adds r1, r7, 0
- bl sub_806FBB4
-_08070A42:
- bl battle_type_is_double
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- adds r0, r6, 0
- movs r1, 0x39
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r6, 0
- movs r1, 0x3A
- bl GetMonData
- adds r3, r0, 0
- lsls r3, 16
- lsrs r3, 16
- adds r0, r7, 0
- adds r1, r5, 0
- adds r2, r4, 0
- bl sub_806E420
- adds r0, r7, 0
- adds r1, r6, 0
- bl sub_806E674
- ldr r4, _08070ABC @ =0x0201c000
- ldrb r0, [r4, 0x4]
- adds r1, r7, 0
- bl sub_806DDA0
- lsls r0, 24
- lsrs r0, 24
- adds r1, r6, 0
- bl sub_806D84C
- bl battle_type_is_double
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- lsls r1, r7, 1
- adds r0, r1
- ldr r1, _08070AC0 @ =gUnknown_083769A8
- adds r0, r1
- movs r1, 0x7
- bl task_pc_turn_off
- ldr r0, _08070AC4 @ =0xfffff261
- adds r4, r0
- movs r0, 0x2
- strb r0, [r4]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08070ABC: .4byte 0x0201c000
-_08070AC0: .4byte gUnknown_083769A8
-_08070AC4: .4byte 0xfffff261
- thumb_func_end sub_8070A20
-
- thumb_func_start sub_8070AC8
-sub_8070AC8: @ 8070AC8
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- movs r0, 0
- bl WaitFanfare
- lsls r0, 24
- cmp r0, 0
- bne _08070ADC
- b _08070C2C
-_08070ADC:
- ldr r0, _08070B24 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r5, 0x1
- adds r0, r5, 0
- ands r0, r1
- cmp r0, 0
- bne _08070AF4
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _08070AF4
- b _08070C2C
-_08070AF4:
- movs r0, 0xB
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x7
- bl MenuZeroFillWindowRect
- ldr r7, _08070B28 @ =0x0201c000
- ldr r0, [r7]
- movs r1, 0x1
- bl sub_803B7C8
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r1, _08070B2C @ =0xfffff282
- adds r0, r7, r1
- strh r5, [r0]
- ldr r0, _08070B30 @ =0x0000fffe
- cmp r4, r0
- beq _08070BDC
- cmp r4, r0
- bgt _08070B34
- cmp r4, 0
- beq _08070B40
- b _08070BF4
- .align 2, 0
-_08070B24: .4byte gMain
-_08070B28: .4byte 0x0201c000
-_08070B2C: .4byte 0xfffff282
-_08070B30: .4byte 0x0000fffe
-_08070B34:
- ldr r0, _08070B3C @ =0x0000ffff
- cmp r4, r0
- beq _08070B7C
- b _08070BF4
- .align 2, 0
-_08070B3C: .4byte 0x0000ffff
-_08070B40:
- ldr r0, [r7]
- movs r1, 0
- movs r2, 0
- bl GetEvolutionTargetSpecies
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0
- beq _08070B74
- ldr r1, _08070B6C @ =gUnknown_03005E94
- ldr r0, _08070B70 @ =sub_80A53F8
- str r0, [r1]
- ldr r0, [r7]
- ldrb r3, [r7, 0x5]
- adds r1, r2, 0
- movs r2, 0x1
- bl BeginEvolutionScene
- adds r0, r6, 0
- bl DestroyTask
- b _08070C2C
- .align 2, 0
-_08070B6C: .4byte gUnknown_03005E94
-_08070B70: .4byte sub_80A53F8
-_08070B74:
- adds r0, r6, 0
- bl sub_8070D90
- b _08070C2C
-_08070B7C:
- ldr r0, [r7]
- ldr r1, _08070BBC @ =gStringVar1
- bl GetMonNickname
- ldr r0, _08070BC0 @ =gStringVar2
- ldr r5, _08070BC4 @ =word_2024E82
- ldrh r2, [r5]
- movs r1, 0xD
- muls r1, r2
- ldr r2, _08070BC8 @ =gMoveNames
- adds r1, r2
- bl StringCopy
- ldr r4, _08070BCC @ =gStringVar4
- ldr r1, _08070BD0 @ =gOtherText_WantsToLearn
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_806E834
- ldrh r0, [r5]
- strh r0, [r7, 0x8]
- ldr r1, _08070BD4 @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, _08070BD8 @ =sub_806F358
- b _08070C2A
- .align 2, 0
-_08070BBC: .4byte gStringVar1
-_08070BC0: .4byte gStringVar2
-_08070BC4: .4byte word_2024E82
-_08070BC8: .4byte gMoveNames
-_08070BCC: .4byte gStringVar4
-_08070BD0: .4byte gOtherText_WantsToLearn
-_08070BD4: .4byte gTasks
-_08070BD8: .4byte sub_806F358
-_08070BDC:
- ldr r0, _08070BEC @ =gTasks
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 3
- adds r1, r0
- ldr r0, _08070BF0 @ =sub_8070C54
- str r0, [r1]
- b _08070C2C
- .align 2, 0
-_08070BEC: .4byte gTasks
-_08070BF0: .4byte sub_8070C54
-_08070BF4:
- ldr r0, _08070C34 @ =0x0201c000
- ldr r0, [r0]
- ldr r1, _08070C38 @ =gStringVar1
- bl GetMonNickname
- ldr r0, _08070C3C @ =gStringVar2
- movs r1, 0xD
- muls r1, r4
- ldr r2, _08070C40 @ =gMoveNames
- adds r1, r2
- bl StringCopy
- ldr r4, _08070C44 @ =gStringVar4
- ldr r1, _08070C48 @ =gOtherText_LearnedMove
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_806E834
- ldr r1, _08070C4C @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, _08070C50 @ =sub_806F254
-_08070C2A:
- str r1, [r0]
-_08070C2C:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08070C34: .4byte 0x0201c000
-_08070C38: .4byte gStringVar1
-_08070C3C: .4byte gStringVar2
-_08070C40: .4byte gMoveNames
-_08070C44: .4byte gStringVar4
-_08070C48: .4byte gOtherText_LearnedMove
-_08070C4C: .4byte gTasks
-_08070C50: .4byte sub_806F254
- thumb_func_end sub_8070AC8
-
- thumb_func_start sub_8070C54
-sub_8070C54: @ 8070C54
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r7, _08070C78 @ =0x0201c000
- ldr r0, [r7]
- movs r1, 0
- bl sub_803B7C8
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r0, _08070C7C @ =0x0000fffe
- cmp r4, r0
- beq _08070D28
- cmp r4, r0
- bgt _08070C80
- cmp r4, 0
- beq _08070C8C
- b _08070D30
- .align 2, 0
-_08070C78: .4byte 0x0201c000
-_08070C7C: .4byte 0x0000fffe
-_08070C80:
- ldr r0, _08070C88 @ =0x0000ffff
- cmp r4, r0
- beq _08070CC8
- b _08070D30
- .align 2, 0
-_08070C88: .4byte 0x0000ffff
-_08070C8C:
- ldr r0, [r7]
- movs r1, 0
- movs r2, 0
- bl GetEvolutionTargetSpecies
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0
- beq _08070CC0
- ldr r1, _08070CB8 @ =gUnknown_03005E94
- ldr r0, _08070CBC @ =sub_80A53F8
- str r0, [r1]
- ldr r0, [r7]
- ldrb r3, [r7, 0x5]
- adds r1, r2, 0
- movs r2, 0x1
- bl BeginEvolutionScene
- adds r0, r6, 0
- bl DestroyTask
- b _08070D68
- .align 2, 0
-_08070CB8: .4byte gUnknown_03005E94
-_08070CBC: .4byte sub_80A53F8
-_08070CC0:
- adds r0, r6, 0
- bl sub_8070D90
- b _08070D68
-_08070CC8:
- ldr r0, [r7]
- ldr r1, _08070D08 @ =gStringVar1
- bl GetMonNickname
- ldr r0, _08070D0C @ =gStringVar2
- ldr r5, _08070D10 @ =word_2024E82
- ldrh r2, [r5]
- movs r1, 0xD
- muls r1, r2
- ldr r2, _08070D14 @ =gMoveNames
- adds r1, r2
- bl StringCopy
- ldr r4, _08070D18 @ =gStringVar4
- ldr r1, _08070D1C @ =gOtherText_WantsToLearn
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_806E834
- ldrh r0, [r5]
- strh r0, [r7, 0x8]
- ldr r1, _08070D20 @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, _08070D24 @ =sub_806F358
- b _08070D66
- .align 2, 0
-_08070D08: .4byte gStringVar1
-_08070D0C: .4byte gStringVar2
-_08070D10: .4byte word_2024E82
-_08070D14: .4byte gMoveNames
-_08070D18: .4byte gStringVar4
-_08070D1C: .4byte gOtherText_WantsToLearn
-_08070D20: .4byte gTasks
-_08070D24: .4byte sub_806F358
-_08070D28:
- adds r0, r6, 0
- bl sub_8070C54
- b _08070D68
-_08070D30:
- ldr r0, _08070D70 @ =0x0201c000
- ldr r0, [r0]
- ldr r1, _08070D74 @ =gStringVar1
- bl GetMonNickname
- ldr r0, _08070D78 @ =gStringVar2
- movs r1, 0xD
- muls r1, r4
- ldr r2, _08070D7C @ =gMoveNames
- adds r1, r2
- bl StringCopy
- ldr r4, _08070D80 @ =gStringVar4
- ldr r1, _08070D84 @ =gOtherText_LearnedMove
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_806E834
- ldr r1, _08070D88 @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, _08070D8C @ =sub_806F254
-_08070D66:
- str r1, [r0]
-_08070D68:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08070D70: .4byte 0x0201c000
-_08070D74: .4byte gStringVar1
-_08070D78: .4byte gStringVar2
-_08070D7C: .4byte gMoveNames
-_08070D80: .4byte gStringVar4
-_08070D84: .4byte gOtherText_LearnedMove
-_08070D88: .4byte gTasks
-_08070D8C: .4byte sub_806F254
- thumb_func_end sub_8070C54
-
- thumb_func_start sub_8070D90
-sub_8070D90: @ 8070D90
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r4, _08070DB4 @ =gTasks
- ldr r3, _08070DB8 @ =0x0201c000
- ldrb r2, [r3, 0x4]
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 3
- adds r1, r4
- ldr r2, [r3, 0x10]
- str r2, [r1]
- bl DestroyTask
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08070DB4: .4byte gTasks
-_08070DB8: .4byte 0x0201c000
- thumb_func_end sub_8070D90
-
- thumb_func_start sub_8070DBC
-sub_8070DBC: @ 8070DBC
- push {r4-r6,lr}
- adds r4, r0, 0
- adds r5, r2, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r1, 16
- lsrs r6, r1, 16
- movs r0, 0x5
- bl PlaySE
- ldr r1, _08070E18 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _08070E1C @ =TaskDummy
- str r1, [r0]
- adds r0, r4, 0
- adds r1, r6, 0
- adds r2, r5, 0
- bl sub_806E8D0
- ldr r1, _08070E20 @ =gUnknown_03005E94
- ldr r0, _08070E24 @ =sub_80A53F8
- str r0, [r1]
- ldr r0, _08070E28 @ =0x0201c000
- ldrb r0, [r0, 0x5]
- adds r1, r6, 0
- movs r2, 0
- bl ExecuteTableBasedItemEffect__
- lsls r0, 24
- cmp r0, 0
- beq _08070E38
- ldr r1, _08070E2C @ =gUnknown_0202E8F4
- movs r0, 0
- strb r0, [r1]
- ldr r0, _08070E30 @ =gOtherText_WontHaveAnyEffect
- movs r1, 0x1
- bl sub_806E834
- ldr r0, _08070E34 @ =sub_806FB0C
- movs r1, 0x5
- bl CreateTask
- b _08070E40
- .align 2, 0
-_08070E18: .4byte gTasks
-_08070E1C: .4byte TaskDummy
-_08070E20: .4byte gUnknown_03005E94
-_08070E24: .4byte sub_80A53F8
-_08070E28: .4byte 0x0201c000
-_08070E2C: .4byte gUnknown_0202E8F4
-_08070E30: .4byte gOtherText_WontHaveAnyEffect
-_08070E34: .4byte sub_806FB0C
-_08070E38:
- adds r0, r6, 0
- movs r1, 0x1
- bl RemoveBagItem
-_08070E40:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8070DBC
-
- thumb_func_start sub_8070E48
-sub_8070E48: @ 8070E48
- push {r4,r5,lr}
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xAF
- bne _08070E5C
- ldr r4, _08070E58 @ =gSaveBlock1 + 0x3676
- b _08070E66
- .align 2, 0
-_08070E58: .4byte gSaveBlock1 + 0x3676
-_08070E5C:
- ldr r1, _08070E8C @ =gItemEffectTable
- subs r0, 0xD
- lsls r0, 2
- adds r0, r1
- ldr r4, [r0]
-_08070E66:
- ldrb r1, [r4]
- movs r5, 0x3F
- adds r0, r5, 0
- ands r0, r1
- cmp r0, 0
- bne _08070E88
- ldrb r0, [r4, 0x1]
- cmp r0, 0
- bne _08070E88
- ldrb r0, [r4, 0x2]
- cmp r0, 0
- bne _08070E88
- ldrb r3, [r4, 0x3]
- movs r0, 0x80
- ands r0, r3
- cmp r0, 0
- beq _08070E90
-_08070E88:
- movs r0, 0
- b _08070F8A
- .align 2, 0
-_08070E8C: .4byte gItemEffectTable
-_08070E90:
- movs r2, 0x40
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- beq _08070E9E
- movs r0, 0xA
- b _08070F8A
-_08070E9E:
- adds r0, r2, 0
- ands r0, r3
- cmp r0, 0
- beq _08070EAA
- movs r0, 0x1
- b _08070F8A
-_08070EAA:
- adds r2, r5, 0
- ands r2, r3
- cmp r2, 0
- bne _08070EB8
- lsrs r0, r1, 7
- cmp r0, 0
- beq _08070EFA
-_08070EB8:
- cmp r2, 0x20
- bne _08070EC0
- movs r0, 0x4
- b _08070F8A
-_08070EC0:
- cmp r2, 0x10
- bne _08070EC8
- movs r0, 0x3
- b _08070F8A
-_08070EC8:
- cmp r2, 0x8
- bne _08070ED0
- movs r0, 0x5
- b _08070F8A
-_08070ED0:
- cmp r2, 0x4
- bne _08070ED8
- movs r0, 0x6
- b _08070F8A
-_08070ED8:
- cmp r2, 0x2
- bne _08070EE0
- movs r0, 0x7
- b _08070F8A
-_08070EE0:
- cmp r2, 0x1
- bne _08070EE8
- movs r0, 0x8
- b _08070F8A
-_08070EE8:
- lsrs r0, r1, 7
- cmp r0, 0
- beq _08070EF6
- cmp r2, 0
- bne _08070EF6
- movs r0, 0x9
- b _08070F8A
-_08070EF6:
- movs r0, 0xB
- b _08070F8A
-_08070EFA:
- ldrb r1, [r4, 0x4]
- movs r0, 0x44
- ands r0, r1
- adds r2, r1, 0
- cmp r0, 0
- beq _08070F0A
- movs r0, 0x2
- b _08070F8A
-_08070F0A:
- movs r5, 0x2
- adds r0, r5, 0
- ands r0, r2
- cmp r0, 0
- beq _08070F18
- movs r0, 0xC
- b _08070F8A
-_08070F18:
- movs r3, 0x1
- adds r0, r3, 0
- ands r0, r2
- cmp r0, 0
- beq _08070F26
- movs r0, 0xD
- b _08070F8A
-_08070F26:
- ldrb r1, [r4, 0x5]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _08070F34
- movs r0, 0xE
- b _08070F8A
-_08070F34:
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _08070F40
- movs r0, 0xF
- b _08070F8A
-_08070F40:
- adds r0, r5, 0
- ands r0, r1
- cmp r0, 0
- beq _08070F4C
- movs r0, 0x10
- b _08070F8A
-_08070F4C:
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _08070F58
- movs r0, 0x11
- b _08070F8A
-_08070F58:
- movs r0, 0x80
- ands r0, r2
- cmp r0, 0
- beq _08070F64
- movs r0, 0x12
- b _08070F8A
-_08070F64:
- movs r0, 0x20
- ands r0, r2
- cmp r0, 0
- beq _08070F70
- movs r0, 0x13
- b _08070F8A
-_08070F70:
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _08070F7C
- movs r0, 0x14
- b _08070F8A
-_08070F7C:
- movs r0, 0x18
- ands r0, r2
- cmp r0, 0
- bne _08070F88
- movs r0, 0x16
- b _08070F8A
-_08070F88:
- movs r0, 0x15
-_08070F8A:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8070E48
-
- thumb_func_start unref_sub_8070F90
-unref_sub_8070F90: @ 8070F90
- push {lr}
- ldr r0, _08070FAC @ =0x00000801
- bl FlagSet
- movs r0, 0x80
- lsls r0, 4
- bl FlagSet
- ldr r0, _08070FB0 @ =0x00000802
- bl FlagSet
- pop {r0}
- bx r0
- .align 2, 0
-_08070FAC: .4byte 0x00000801
-_08070FB0: .4byte 0x00000802
- thumb_func_end unref_sub_8070F90
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/rom_8074BAC.s b/asm/rom_8077ABC.s
index 27f89abde..db413817a 100644
--- a/asm/rom_8074BAC.s
+++ b/asm/rom_8077ABC.s
@@ -6,4726 +6,6 @@
.text
- thumb_func_start sub_8075624
-sub_8075624: @ 8075624
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r0, _080756B8 @ =gUnknown_0202F7B0
- movs r1, 0
- strb r1, [r0]
- ldr r0, _080756BC @ =gUnknown_0202F7B1
- strb r1, [r0]
- ldr r0, _080756C0 @ =gUnknown_0202F7B2
- strb r1, [r0]
- ldr r0, _080756C4 @ =gUnknown_0202F7B3
- strb r1, [r0]
- ldr r0, _080756C8 @ =gUnknown_0202F7B4
- movs r1, 0
- str r1, [r0]
- ldr r0, _080756CC @ =gUnknown_0202F7B8
- str r1, [r0]
- ldr r0, _080756D0 @ =gUnknown_0202F7BC
- movs r2, 0
- strh r1, [r0]
- ldr r0, _080756D4 @ =gUnknown_0202F7BE
- strb r2, [r0]
- ldr r4, _080756D8 @ =gUnknown_0202F7C2
- ldr r5, _080756DC @ =gUnknown_0202F7C4
- ldr r6, _080756E0 @ =gUnknown_0202F7C5
- ldr r7, _080756E4 @ =gUnknown_0202F7C6
- ldr r0, _080756E8 @ =gUnknown_0202F7C8
- mov r12, r0
- ldr r1, _080756EC @ =gUnknown_0202F7C9
- mov r8, r1
- ldr r0, _080756F0 @ =gUnknown_0202F7D2
- mov r9, r0
- ldr r1, _080756F4 @ =0x0000ffff
- adds r3, r1, 0
- ldr r1, _080756F8 @ =gUnknown_03004B10
- movs r2, 0x7
-_0807566E:
- ldrh r0, [r1]
- orrs r0, r3
- strh r0, [r1]
- adds r1, 0x2
- subs r2, 0x1
- cmp r2, 0
- bge _0807566E
- ldr r1, _080756FC @ =gUnknown_03004B00
- movs r2, 0
- adds r0, r1, 0
- adds r0, 0xE
-_08075684:
- strh r2, [r0]
- subs r0, 0x2
- cmp r0, r1
- bge _08075684
- movs r1, 0
- movs r0, 0xFF
- strb r0, [r4]
- movs r0, 0x1
- negs r0, r0
- strb r0, [r4, 0x1]
- strb r1, [r5]
- strb r1, [r6]
- movs r0, 0
- strh r1, [r7]
- mov r1, r12
- strb r0, [r1]
- mov r1, r8
- strb r0, [r1]
- mov r1, r9
- strb r0, [r1]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080756B8: .4byte gUnknown_0202F7B0
-_080756BC: .4byte gUnknown_0202F7B1
-_080756C0: .4byte gUnknown_0202F7B2
-_080756C4: .4byte gUnknown_0202F7B3
-_080756C8: .4byte gUnknown_0202F7B4
-_080756CC: .4byte gUnknown_0202F7B8
-_080756D0: .4byte gUnknown_0202F7BC
-_080756D4: .4byte gUnknown_0202F7BE
-_080756D8: .4byte gUnknown_0202F7C2
-_080756DC: .4byte gUnknown_0202F7C4
-_080756E0: .4byte gUnknown_0202F7C5
-_080756E4: .4byte gUnknown_0202F7C6
-_080756E8: .4byte gUnknown_0202F7C8
-_080756EC: .4byte gUnknown_0202F7C9
-_080756F0: .4byte gUnknown_0202F7D2
-_080756F4: .4byte 0x0000ffff
-_080756F8: .4byte gUnknown_03004B10
-_080756FC: .4byte gUnknown_03004B00
- thumb_func_end sub_8075624
-
- thumb_func_start move_anim_start_t1
-move_anim_start_t1: @ 8075700
- push {lr}
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- ldr r2, _08075724 @ =gUnknown_0202F7C8
- ldr r0, _08075728 @ =gUnknown_02024C07
- ldrb r0, [r0]
- strb r0, [r2]
- ldr r2, _0807572C @ =gUnknown_0202F7C9
- ldr r0, _08075730 @ =gUnknown_02024C08
- ldrb r0, [r0]
- strb r0, [r2]
- ldr r0, _08075734 @ =gBattleAnims_Moves
- movs r2, 0x1
- bl move_something
- pop {r0}
- bx r0
- .align 2, 0
-_08075724: .4byte gUnknown_0202F7C8
-_08075728: .4byte gUnknown_02024C07
-_0807572C: .4byte gUnknown_0202F7C9
-_08075730: .4byte gUnknown_02024C08
-_08075734: .4byte gBattleAnims_Moves
- thumb_func_end move_anim_start_t1
-
- thumb_func_start move_something
-move_something: @ 8075738
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- str r0, [sp]
- lsls r1, 16
- lsrs r1, 16
- mov r8, r1
- lsls r2, 24
- lsrs r2, 24
- mov r9, r2
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _080757D8
- bl sub_8079E24
- movs r0, 0
- bl sub_8043EB4
- movs r4, 0
- mov r0, r8
- lsls r0, 2
- mov r10, r0
- ldr r6, _0807578C @ =gUnknown_02024A6A
- movs r7, 0x64
- ldr r5, _08075790 @ =gUnknown_0202F7CA
-_08075774:
- lsls r0, r4, 24
- lsrs r0, 24
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _08075798
- ldrh r0, [r6]
- muls r0, r7
- ldr r1, _08075794 @ =gEnemyParty
- b _0807579E
- .align 2, 0
-_0807578C: .4byte gUnknown_02024A6A
-_08075790: .4byte gUnknown_0202F7CA
-_08075794: .4byte gEnemyParty
-_08075798:
- ldrh r0, [r6]
- muls r0, r7
- ldr r1, _080757C0 @ =gPlayerParty
-_0807579E:
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- strh r0, [r5]
- adds r6, 0x2
- adds r5, 0x2
- adds r4, 0x1
- cmp r4, 0x3
- ble _08075774
- ldr r3, _080757C4 @ =gUnknown_0202F7C6
- ldr r5, _080757C8 @ =gUnknown_0202F7C2
- ldr r1, _080757CC @ =gUnknown_0202F7B1
- mov r12, r1
- ldr r7, _080757D0 @ =gUnknown_0202F7AC
- ldr r6, _080757D4 @ =sub_80759D0
- b _080757FC
- .align 2, 0
-_080757C0: .4byte gPlayerParty
-_080757C4: .4byte gUnknown_0202F7C6
-_080757C8: .4byte gUnknown_0202F7C2
-_080757CC: .4byte gUnknown_0202F7B1
-_080757D0: .4byte gUnknown_0202F7AC
-_080757D4: .4byte sub_80759D0
-_080757D8:
- ldr r3, _08075808 @ =gUnknown_0202F7C6
- ldr r5, _0807580C @ =gUnknown_0202F7C2
- mov r0, r8
- lsls r0, 2
- mov r10, r0
- ldr r1, _08075810 @ =gUnknown_0202F7B1
- mov r12, r1
- ldr r7, _08075814 @ =gUnknown_0202F7AC
- ldr r6, _08075818 @ =sub_80759D0
- ldr r2, _0807581C @ =0x02019348
- ldr r1, _08075820 @ =gUnknown_0202F7CA
- movs r4, 0x3
-_080757F0:
- ldrh r0, [r2]
- strh r0, [r1]
- adds r1, 0x2
- subs r4, 0x1
- cmp r4, 0
- bge _080757F0
-_080757FC:
- mov r0, r9
- cmp r0, 0
- bne _08075824
- strh r0, [r3]
- b _08075828
- .align 2, 0
-_08075808: .4byte gUnknown_0202F7C6
-_0807580C: .4byte gUnknown_0202F7C2
-_08075810: .4byte gUnknown_0202F7B1
-_08075814: .4byte gUnknown_0202F7AC
-_08075818: .4byte sub_80759D0
-_0807581C: .4byte 0x02019348
-_08075820: .4byte gUnknown_0202F7CA
-_08075824:
- mov r1, r8
- strh r1, [r3]
-_08075828:
- ldr r1, _0807587C @ =gUnknown_03004B00
- movs r2, 0
- adds r0, r1, 0
- adds r0, 0xE
-_08075830:
- strh r2, [r0]
- subs r0, 0x2
- cmp r0, r1
- bge _08075830
- movs r0, 0xFF
- strb r0, [r5]
- movs r0, 0x1
- negs r0, r0
- strb r0, [r5, 0x1]
- ldr r0, [sp]
- add r0, r10
- ldr r0, [r0]
- ldr r1, _08075880 @ =gUnknown_0202F7A4
- str r0, [r1]
- movs r0, 0x1
- mov r1, r12
- strb r0, [r1]
- movs r0, 0
- ldr r1, _08075884 @ =gUnknown_0202F7B0
- strb r0, [r1]
- str r6, [r7]
- ldr r0, _08075888 @ =0x0000ffff
- adds r2, r0, 0
- ldr r1, _0807588C @ =gUnknown_03004B10
- movs r4, 0x7
-_08075862:
- ldrh r0, [r1]
- orrs r0, r2
- strh r0, [r1]
- adds r1, 0x2
- subs r4, 0x1
- cmp r4, 0
- bge _08075862
- mov r1, r9
- cmp r1, 0
- beq _080758AE
- movs r4, 0
- ldr r2, _08075890 @ =gUnknown_081C7160
- b _08075896
- .align 2, 0
-_0807587C: .4byte gUnknown_03004B00
-_08075880: .4byte gUnknown_0202F7A4
-_08075884: .4byte gUnknown_0202F7B0
-_08075888: .4byte 0x0000ffff
-_0807588C: .4byte gUnknown_03004B10
-_08075890: .4byte gUnknown_081C7160
-_08075894:
- adds r4, 0x1
-_08075896:
- lsls r0, r4, 1
- adds r0, r2
- ldrh r0, [r0]
- ldr r1, _080758D0 @ =0x0000ffff
- cmp r0, r1
- beq _080758AE
- cmp r8, r0
- bne _08075894
- ldr r0, _080758D4 @ =gMPlay_BGM
- movs r2, 0x80
- bl m4aMPlayVolumeControl
-_080758AE:
- ldr r0, _080758D8 @ =gUnknown_030042C4
- movs r1, 0
- strh r1, [r0]
- ldr r0, _080758DC @ =gUnknown_03004240
- strh r1, [r0]
- ldr r0, _080758E0 @ =gUnknown_03004200
- strh r1, [r0]
- ldr r0, _080758E4 @ =gUnknown_03004244
- strh r1, [r0]
- 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
-_080758D0: .4byte 0x0000ffff
-_080758D4: .4byte gMPlay_BGM
-_080758D8: .4byte gUnknown_030042C4
-_080758DC: .4byte gUnknown_03004240
-_080758E0: .4byte gUnknown_03004200
-_080758E4: .4byte gUnknown_03004244
- thumb_func_end move_something
-
- thumb_func_start move_anim_8072740
-move_anim_8072740: @ 80758E8
- push {r4,lr}
- adds r4, r0, 0
- bl FreeSpriteOamMatrix
- adds r0, r4, 0
- bl DestroySprite
- ldr r1, _08075904 @ =gUnknown_0202F7B2
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08075904: .4byte gUnknown_0202F7B2
- thumb_func_end move_anim_8072740
-
- thumb_func_start move_anim_task_del
-move_anim_task_del: @ 8075908
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
- ldr r1, _08075920 @ =gUnknown_0202F7B2
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08075920: .4byte gUnknown_0202F7B2
- thumb_func_end move_anim_task_del
-
- thumb_func_start move_anim_related_task_del
-move_anim_related_task_del: @ 8075924
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
- ldr r1, _0807593C @ =gUnknown_0202F7B3
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_0807593C: .4byte gUnknown_0202F7B3
- thumb_func_end move_anim_related_task_del
-
- thumb_func_start sub_8075940
-sub_8075940: @ 8075940
- push {r4,lr}
- lsls r0, 16
- lsrs r3, r0, 16
- movs r2, 0
- ldr r4, _08075958 @ =0x0000ffff
- ldr r1, _0807595C @ =gUnknown_03004B10
-_0807594C:
- ldrh r0, [r1]
- cmp r0, r4
- bne _08075960
- strh r3, [r1]
- b _08075968
- .align 2, 0
-_08075958: .4byte 0x0000ffff
-_0807595C: .4byte gUnknown_03004B10
-_08075960:
- adds r1, 0x2
- adds r2, 0x1
- cmp r2, 0x7
- ble _0807594C
-_08075968:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8075940
-
- thumb_func_start sub_8075970
-sub_8075970: @ 8075970
- push {r4,lr}
- lsls r0, 16
- lsrs r3, r0, 16
- movs r2, 0
- ldr r0, _0807598C @ =0x0000ffff
- adds r4, r0, 0
- ldr r1, _08075990 @ =gUnknown_03004B10
-_0807597E:
- ldrh r0, [r1]
- cmp r0, r3
- bne _08075994
- orrs r0, r4
- strh r0, [r1]
- b _0807599C
- .align 2, 0
-_0807598C: .4byte 0x0000ffff
-_08075990: .4byte gUnknown_03004B10
-_08075994:
- adds r1, 0x2
- adds r2, 0x1
- cmp r2, 0x7
- ble _0807597E
-_0807599C:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8075970
-
- thumb_func_start move_anim_waiter
-move_anim_waiter: @ 80759A4
- push {lr}
- ldr r2, _080759BC @ =gUnknown_0202F7B0
- ldrb r1, [r2]
- movs r0, 0
- ldrsb r0, [r2, r0]
- cmp r0, 0
- bgt _080759C8
- ldr r0, _080759C0 @ =gUnknown_0202F7AC
- ldr r1, _080759C4 @ =sub_80759D0
- str r1, [r0]
- movs r0, 0
- b _080759CA
- .align 2, 0
-_080759BC: .4byte gUnknown_0202F7B0
-_080759C0: .4byte gUnknown_0202F7AC
-_080759C4: .4byte sub_80759D0
-_080759C8:
- subs r0, r1, 0x1
-_080759CA:
- strb r0, [r2]
- pop {r0}
- bx r0
- thumb_func_end move_anim_waiter
-
- thumb_func_start sub_80759D0
-sub_80759D0: @ 80759D0
- push {r4,lr}
- ldr r4, _08075A00 @ =gUnknown_0837F4B8
-_080759D4:
- ldr r0, _08075A04 @ =gUnknown_0202F7A4
- ldr r0, [r0]
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r4
- ldr r0, [r0]
- bl _call_via_r0
- ldr r0, _08075A08 @ =gUnknown_0202F7B0
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0
- bne _080759F8
- ldr r0, _08075A0C @ =gUnknown_0202F7B1
- ldrb r0, [r0]
- cmp r0, 0
- bne _080759D4
-_080759F8:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08075A00: .4byte gUnknown_0837F4B8
-_08075A04: .4byte gUnknown_0202F7A4
-_08075A08: .4byte gUnknown_0202F7B0
-_08075A0C: .4byte gUnknown_0202F7B1
- thumb_func_end sub_80759D0
-
- thumb_func_start ma00_load_graphics
-ma00_load_graphics: @ 8075A10
- push {r4-r6,lr}
- ldr r6, _08075A5C @ =gUnknown_0202F7A4
- ldr r0, [r6]
- adds r1, r0, 0x1
- str r1, [r6]
- ldrb r4, [r0, 0x1]
- ldrb r0, [r1, 0x1]
- lsls r0, 8
- orrs r4, r0
- lsls r5, r4, 3
- ldr r0, _08075A60 @ =gBattleAnimPicTable - (10000 * 8)
- adds r0, r5, r0
- bl LoadCompressedObjectPic
- ldr r0, _08075A64 @ =gBattleAnimPaletteTable - (10000 * 8)
- adds r5, r0
- adds r0, r5, 0
- bl LoadCompressedObjectPalette
- ldr r0, [r6]
- adds r0, 0x2
- str r0, [r6]
- ldr r0, _08075A68 @ =0xffffd8f0
- adds r4, r0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r4, 0
- bl sub_8075940
- ldr r1, _08075A6C @ =gUnknown_0202F7B0
- movs r0, 0x1
- strb r0, [r1]
- ldr r1, _08075A70 @ =gUnknown_0202F7AC
- ldr r0, _08075A74 @ =move_anim_waiter
- str r0, [r1]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08075A5C: .4byte gUnknown_0202F7A4
-_08075A60: .4byte gBattleAnimPicTable - (10000 * 8)
-_08075A64: .4byte gBattleAnimPaletteTable - (10000 * 8)
-_08075A68: .4byte 0xffffd8f0
-_08075A6C: .4byte gUnknown_0202F7B0
-_08075A70: .4byte gUnknown_0202F7AC
-_08075A74: .4byte move_anim_waiter
- thumb_func_end ma00_load_graphics
-
- thumb_func_start ma01_080728D0
-ma01_080728D0: @ 8075A78
- push {r4-r6,lr}
- ldr r6, _08075AB8 @ =gUnknown_0202F7A4
- ldr r0, [r6]
- adds r1, r0, 0x1
- str r1, [r6]
- ldrb r4, [r0, 0x1]
- ldrb r0, [r1, 0x1]
- lsls r0, 8
- orrs r4, r0
- ldr r1, _08075ABC @ =gBattleAnimPicTable
- ldr r0, _08075AC0 @ =0xffffd8f0
- adds r4, r0
- lsls r0, r4, 3
- adds r0, r1
- ldrh r5, [r0, 0x6]
- adds r0, r5, 0
- bl FreeSpriteTilesByTag
- adds r0, r5, 0
- bl FreeSpritePaletteByTag
- ldr r0, [r6]
- adds r0, 0x2
- str r0, [r6]
- lsls r4, 16
- lsrs r4, 16
- adds r0, r4, 0
- bl sub_8075970
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08075AB8: .4byte gUnknown_0202F7A4
-_08075ABC: .4byte gBattleAnimPicTable
-_08075AC0: .4byte 0xffffd8f0
- thumb_func_end ma01_080728D0
-
- thumb_func_start ma02_instanciate_template
-ma02_instanciate_template: @ 8075AC4
- push {r4-r7,lr}
- ldr r5, _08075B2C @ =gUnknown_0202F7A4
- ldr r1, [r5]
- adds r3, r1, 0x1
- str r3, [r5]
- ldrb r2, [r1, 0x1]
- ldrb r0, [r3, 0x1]
- lsls r0, 8
- adds r2, r0
- ldrb r0, [r3, 0x2]
- lsls r0, 16
- adds r2, r0
- ldrb r0, [r3, 0x3]
- lsls r0, 24
- adds r7, r2, r0
- adds r0, r1, 0x5
- str r0, [r5]
- ldrb r4, [r1, 0x5]
- adds r0, r1, 0x6
- str r0, [r5]
- ldrb r0, [r1, 0x6]
- adds r1, 0x7
- str r1, [r5]
- cmp r0, 0
- beq _08075B14
- adds r6, r5, 0
- ldr r5, _08075B30 @ =gUnknown_03004B00
- adds r3, r0, 0
-_08075AFC:
- ldr r2, [r6]
- ldrb r1, [r2]
- ldrb r0, [r2, 0x1]
- lsls r0, 8
- orrs r1, r0
- strh r1, [r5]
- adds r2, 0x2
- str r2, [r6]
- adds r5, 0x2
- subs r3, 0x1
- cmp r3, 0
- bne _08075AFC
-_08075B14:
- movs r0, 0x80
- ands r0, r4
- cmp r0, 0
- beq _08075B44
- movs r0, 0x80
- eors r4, r0
- cmp r4, 0x3F
- bls _08075B34
- adds r0, r4, 0
- subs r0, 0x40
- b _08075B36
- .align 2, 0
-_08075B2C: .4byte gUnknown_0202F7A4
-_08075B30: .4byte gUnknown_03004B00
-_08075B34:
- negs r0, r4
-_08075B36:
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08075B40 @ =gUnknown_0202F7C9
- b _08075B56
- .align 2, 0
-_08075B40: .4byte gUnknown_0202F7C9
-_08075B44:
- cmp r4, 0x3F
- bls _08075B4E
- adds r0, r4, 0
- subs r0, 0x40
- b _08075B50
-_08075B4E:
- negs r0, r4
-_08075B50:
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08075BAC @ =gUnknown_0202F7C8
-_08075B56:
- ldrb r0, [r0]
- bl sub_8079E90
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r4, 24
- asrs r1, 24
- adds r0, r1
- lsls r0, 16
- lsrs r6, r0, 16
- lsls r0, r6, 16
- asrs r0, 16
- cmp r0, 0x2
- bgt _08075B74
- movs r6, 0x3
-_08075B74:
- ldr r5, _08075BB0 @ =gUnknown_0202F7C9
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8077ABC
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8077ABC
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- lsls r3, r6, 24
- lsrs r3, 24
- adds r0, r7, 0
- adds r1, r4, 0
- bl CreateSpriteAndAnimate
- ldr r1, _08075BB4 @ =gUnknown_0202F7B2
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08075BAC: .4byte gUnknown_0202F7C8
-_08075BB0: .4byte gUnknown_0202F7C9
-_08075BB4: .4byte gUnknown_0202F7B2
- thumb_func_end ma02_instanciate_template
-
- thumb_func_start sub_8075BB8
-sub_8075BB8: @ 8075BB8
- push {r4-r7,lr}
- ldr r4, _08075C28 @ =gUnknown_0202F7A4
- ldr r1, [r4]
- adds r3, r1, 0x1
- str r3, [r4]
- ldrb r2, [r1, 0x1]
- ldrb r0, [r3, 0x1]
- lsls r0, 8
- adds r2, r0
- ldrb r0, [r3, 0x2]
- lsls r0, 16
- adds r2, r0
- ldrb r0, [r3, 0x3]
- lsls r0, 24
- adds r6, r2, r0
- adds r0, r1, 0x5
- str r0, [r4]
- ldrb r7, [r1, 0x5]
- adds r0, r1, 0x6
- str r0, [r4]
- ldrb r0, [r1, 0x6]
- adds r1, 0x7
- str r1, [r4]
- cmp r0, 0
- beq _08075C08
- adds r5, r4, 0
- ldr r4, _08075C2C @ =gUnknown_03004B00
- adds r3, r0, 0
-_08075BF0:
- ldr r2, [r5]
- ldrb r1, [r2]
- ldrb r0, [r2, 0x1]
- lsls r0, 8
- orrs r1, r0
- strh r1, [r4]
- adds r2, 0x2
- str r2, [r5]
- adds r4, 0x2
- subs r3, 0x1
- cmp r3, 0
- bne _08075BF0
-_08075C08:
- adds r0, r6, 0
- adds r1, r7, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- bl _call_via_r6
- ldr r1, _08075C30 @ =gUnknown_0202F7B2
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08075C28: .4byte gUnknown_0202F7A4
-_08075C2C: .4byte gUnknown_03004B00
-_08075C30: .4byte gUnknown_0202F7B2
- thumb_func_end sub_8075BB8
-
- thumb_func_start ma04_wait_countdown
-ma04_wait_countdown: @ 8075C34
- push {r4,lr}
- ldr r1, _08075C64 @ =gUnknown_0202F7A4
- ldr r0, [r1]
- adds r2, r0, 0x1
- str r2, [r1]
- ldr r3, _08075C68 @ =gUnknown_0202F7B0
- ldrb r0, [r0, 0x1]
- strb r0, [r3]
- lsls r0, 24
- cmp r0, 0
- bne _08075C52
- movs r4, 0x1
- negs r4, r4
- adds r0, r4, 0
- strb r0, [r3]
-_08075C52:
- adds r0, r2, 0x1
- str r0, [r1]
- ldr r1, _08075C6C @ =gUnknown_0202F7AC
- ldr r0, _08075C70 @ =move_anim_waiter
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08075C64: .4byte gUnknown_0202F7A4
-_08075C68: .4byte gUnknown_0202F7B0
-_08075C6C: .4byte gUnknown_0202F7AC
-_08075C70: .4byte move_anim_waiter
- thumb_func_end ma04_wait_countdown
-
- thumb_func_start sub_8075C74
-sub_8075C74: @ 8075C74
- push {lr}
- ldr r0, _08075C8C @ =gUnknown_0202F7B2
- ldrb r2, [r0]
- cmp r2, 0
- bne _08075C98
- ldr r0, _08075C90 @ =gUnknown_0202F7A4
- ldr r1, [r0]
- adds r1, 0x1
- str r1, [r0]
- ldr r0, _08075C94 @ =gUnknown_0202F7B0
- strb r2, [r0]
- b _08075C9E
- .align 2, 0
-_08075C8C: .4byte gUnknown_0202F7B2
-_08075C90: .4byte gUnknown_0202F7A4
-_08075C94: .4byte gUnknown_0202F7B0
-_08075C98:
- ldr r1, _08075CA4 @ =gUnknown_0202F7B0
- movs r0, 0x1
- strb r0, [r1]
-_08075C9E:
- pop {r0}
- bx r0
- .align 2, 0
-_08075CA4: .4byte gUnknown_0202F7B0
- thumb_func_end sub_8075C74
-
- thumb_func_start nullsub_53
-nullsub_53: @ 8075CA8
- bx lr
- thumb_func_end nullsub_53
-
- thumb_func_start nullsub_88
-nullsub_88: @ 8075CAC
- bx lr
- thumb_func_end nullsub_88
-
- thumb_func_start sub_8075CB0
-sub_8075CB0: @ 8075CB0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r0, 0
- mov r8, r0
- ldr r0, _08075CE0 @ =gUnknown_0202F7B2
- ldrb r0, [r0]
- cmp r0, 0
- bne _08075CD8
- ldr r0, _08075CE4 @ =gUnknown_0202F7B3
- ldrb r0, [r0]
- cmp r0, 0
- bne _08075CD8
- ldr r1, _08075CE8 @ =gUnknown_0202F7C2
- ldrb r0, [r1]
- cmp r0, 0xFF
- bne _08075CD8
- ldrb r0, [r1, 0x1]
- cmp r0, 0xFF
- beq _08075CF0
-_08075CD8:
- ldr r1, _08075CEC @ =gUnknown_03004AF0
- movs r0, 0
- strh r0, [r1]
- b _08075D0A
- .align 2, 0
-_08075CE0: .4byte gUnknown_0202F7B2
-_08075CE4: .4byte gUnknown_0202F7B3
-_08075CE8: .4byte gUnknown_0202F7C2
-_08075CEC: .4byte gUnknown_03004AF0
-_08075CF0:
- bl IsSEPlaying
- lsls r0, 24
- cmp r0, 0
- beq _08075D28
- ldr r1, _08075D14 @ =gUnknown_03004AF0
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x5A
- bhi _08075D1C
-_08075D0A:
- ldr r1, _08075D18 @ =gUnknown_0202F7B0
- movs r0, 0x1
- strb r0, [r1]
- b _08075D8E
- .align 2, 0
-_08075D14: .4byte gUnknown_03004AF0
-_08075D18: .4byte gUnknown_0202F7B0
-_08075D1C:
- ldr r0, _08075D98 @ =gMPlay_SE1
- bl m4aMPlayStop
- ldr r0, _08075D9C @ =gMPlay_SE2
- bl m4aMPlayStop
-_08075D28:
- ldr r1, _08075DA0 @ =gUnknown_03004AF0
- movs r0, 0
- strh r0, [r1]
- movs r5, 0
- ldr r7, _08075DA4 @ =0x0000ffff
- ldr r6, _08075DA8 @ =gBattleAnimPicTable
- ldr r4, _08075DAC @ =gUnknown_03004B10
-_08075D36:
- ldrh r0, [r4]
- cmp r0, r7
- beq _08075D5A
- lsls r0, 3
- adds r0, r6
- ldrh r0, [r0, 0x6]
- bl FreeSpriteTilesByTag
- ldrh r0, [r4]
- lsls r0, 3
- adds r0, r6
- ldrh r0, [r0, 0x6]
- bl FreeSpritePaletteByTag
- ldrh r1, [r4]
- adds r0, r7, 0
- orrs r0, r1
- strh r0, [r4]
-_08075D5A:
- adds r4, 0x2
- adds r5, 0x1
- cmp r5, 0x7
- ble _08075D36
- mov r1, r8
- cmp r1, 0
- bne _08075D8E
- ldr r0, _08075DB0 @ =gMPlay_BGM
- ldr r1, _08075DA4 @ =0x0000ffff
- movs r2, 0x80
- lsls r2, 1
- bl m4aMPlayVolumeControl
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _08075D88
- bl sub_8079E24
- movs r0, 0x1
- bl sub_8043EB4
-_08075D88:
- ldr r0, _08075DB4 @ =gUnknown_0202F7B1
- mov r1, r8
- strb r1, [r0]
-_08075D8E:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08075D98: .4byte gMPlay_SE1
-_08075D9C: .4byte gMPlay_SE2
-_08075DA0: .4byte gUnknown_03004AF0
-_08075DA4: .4byte 0x0000ffff
-_08075DA8: .4byte gBattleAnimPicTable
-_08075DAC: .4byte gUnknown_03004B10
-_08075DB0: .4byte gMPlay_BGM
-_08075DB4: .4byte gUnknown_0202F7B1
- thumb_func_end sub_8075CB0
-
- thumb_func_start ma09_play_sound
-ma09_play_sound: @ 8075DB8
- push {r4,lr}
- ldr r4, _08075DDC @ =gUnknown_0202F7A4
- ldr r0, [r4]
- adds r1, r0, 0x1
- str r1, [r4]
- ldrb r0, [r0, 0x1]
- ldrb r1, [r1, 0x1]
- lsls r1, 8
- orrs r0, r1
- bl PlaySE
- ldr r0, [r4]
- adds r0, 0x2
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08075DDC: .4byte gUnknown_0202F7A4
- thumb_func_end ma09_play_sound
-
- thumb_func_start sub_8075DE0
-sub_8075DE0: @ 8075DE0
- push {r4-r7,lr}
- ldr r0, _08075DF4 @ =gUnknown_0202F7A4
- ldr r2, [r0]
- adds r1, r2, 0x1
- str r1, [r0]
- ldrb r6, [r2, 0x1]
- cmp r6, 0
- bne _08075DF8
- movs r6, 0x2
- b _08075E02
- .align 2, 0
-_08075DF4: .4byte gUnknown_0202F7A4
-_08075DF8:
- cmp r6, 0x1
- bne _08075DFE
- movs r6, 0x3
-_08075DFE:
- cmp r6, 0
- beq _08075E06
-_08075E02:
- cmp r6, 0x2
- bne _08075E10
-_08075E06:
- ldr r0, _08075E0C @ =gUnknown_0202F7C8
- b _08075E12
- .align 2, 0
-_08075E0C: .4byte gUnknown_0202F7C8
-_08075E10:
- ldr r0, _08075E44 @ =gUnknown_0202F7C9
-_08075E12:
- ldrb r5, [r0]
- adds r0, r5, 0
- bl b_side_obj__get_some_boolean
- lsls r0, 24
- cmp r0, 0
- beq _08075ECE
- adds r0, r5, 0
- bl battle_get_per_side_status
- lsls r0, 24
- movs r1, 0xFF
- lsls r1, 24
- adds r0, r1
- lsrs r0, 24
- cmp r0, 0x1
- bls _08075E3E
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _08075E48
-_08075E3E:
- movs r7, 0
- b _08075E4A
- .align 2, 0
-_08075E44: .4byte gUnknown_0202F7C9
-_08075E48:
- movs r7, 0x1
-_08075E4A:
- adds r0, r5, 0
- adds r1, r7, 0
- bl sub_8076034
- ldr r0, _08075E98 @ =gUnknown_02024BE0
- adds r0, r5, r0
- ldrb r4, [r0]
- ldr r0, _08075E9C @ =task_pA_ma0A_obj_to_bg_pal
- movs r1, 0xA
- bl CreateTask
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r1, _08075EA0 @ =gTasks
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r2, r0, r1
- strh r4, [r2, 0x8]
- ldr r1, _08075EA4 @ =gSprites
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r0, r1
- ldrh r1, [r0, 0x24]
- ldrh r4, [r0, 0x20]
- adds r1, r4
- strh r1, [r2, 0xA]
- ldrh r1, [r0, 0x26]
- ldrh r0, [r0, 0x22]
- adds r1, r0
- strh r1, [r2, 0xC]
- cmp r7, 0
- bne _08075EB0
- ldr r0, _08075EA8 @ =gUnknown_030042C0
- ldrh r0, [r0]
- strh r0, [r2, 0xE]
- ldr r0, _08075EAC @ =gUnknown_030041B4
- b _08075EB8
- .align 2, 0
-_08075E98: .4byte gUnknown_02024BE0
-_08075E9C: .4byte task_pA_ma0A_obj_to_bg_pal
-_08075EA0: .4byte gTasks
-_08075EA4: .4byte gSprites
-_08075EA8: .4byte gUnknown_030042C0
-_08075EAC: .4byte gUnknown_030041B4
-_08075EB0:
- ldr r0, _08075F04 @ =gUnknown_03004288
- ldrh r0, [r0]
- strh r0, [r2, 0xE]
- ldr r0, _08075F08 @ =gUnknown_03004280
-_08075EB8:
- ldrh r0, [r0]
- strh r0, [r2, 0x10]
- ldr r0, _08075F0C @ =gTasks
- lsls r1, r3, 2
- adds r1, r3
- lsls r1, 3
- adds r1, r0
- strh r7, [r1, 0x12]
- strh r5, [r1, 0x14]
- ldr r0, _08075F10 @ =gUnknown_0202F7C2
- strb r3, [r0]
-_08075ECE:
- movs r0, 0x2
- eors r5, r0
- cmp r6, 0x1
- bls _08075F9A
- adds r0, r5, 0
- bl b_side_obj__get_some_boolean
- lsls r0, 24
- cmp r0, 0
- beq _08075F9A
- adds r0, r5, 0
- bl battle_get_per_side_status
- lsls r0, 24
- movs r1, 0xFF
- lsls r1, 24
- adds r0, r1
- lsrs r0, 24
- cmp r0, 0x1
- bls _08075F00
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _08075F14
-_08075F00:
- movs r7, 0
- b _08075F16
- .align 2, 0
-_08075F04: .4byte gUnknown_03004288
-_08075F08: .4byte gUnknown_03004280
-_08075F0C: .4byte gTasks
-_08075F10: .4byte gUnknown_0202F7C2
-_08075F14:
- movs r7, 0x1
-_08075F16:
- adds r0, r5, 0
- adds r1, r7, 0
- bl sub_8076034
- ldr r0, _08075F64 @ =gUnknown_02024BE0
- adds r0, r5, r0
- ldrb r4, [r0]
- ldr r0, _08075F68 @ =task_pA_ma0A_obj_to_bg_pal
- movs r1, 0xA
- bl CreateTask
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r1, _08075F6C @ =gTasks
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r2, r0, r1
- strh r4, [r2, 0x8]
- ldr r1, _08075F70 @ =gSprites
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r0, r1
- ldrh r1, [r0, 0x24]
- ldrh r4, [r0, 0x20]
- adds r1, r4
- strh r1, [r2, 0xA]
- ldrh r1, [r0, 0x26]
- ldrh r0, [r0, 0x22]
- adds r1, r0
- strh r1, [r2, 0xC]
- cmp r7, 0
- bne _08075F7C
- ldr r0, _08075F74 @ =gUnknown_030042C0
- ldrh r0, [r0]
- strh r0, [r2, 0xE]
- ldr r0, _08075F78 @ =gUnknown_030041B4
- b _08075F84
- .align 2, 0
-_08075F64: .4byte gUnknown_02024BE0
-_08075F68: .4byte task_pA_ma0A_obj_to_bg_pal
-_08075F6C: .4byte gTasks
-_08075F70: .4byte gSprites
-_08075F74: .4byte gUnknown_030042C0
-_08075F78: .4byte gUnknown_030041B4
-_08075F7C:
- ldr r0, _08075FA8 @ =gUnknown_03004288
- ldrh r0, [r0]
- strh r0, [r2, 0xE]
- ldr r0, _08075FAC @ =gUnknown_03004280
-_08075F84:
- ldrh r0, [r0]
- strh r0, [r2, 0x10]
- ldr r0, _08075FB0 @ =gTasks
- lsls r1, r3, 2
- adds r1, r3
- lsls r1, 3
- adds r1, r0
- strh r7, [r1, 0x12]
- strh r5, [r1, 0x14]
- ldr r0, _08075FB4 @ =gUnknown_0202F7C2
- strb r3, [r0, 0x1]
-_08075F9A:
- ldr r1, _08075FB8 @ =gUnknown_0202F7A4
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08075FA8: .4byte gUnknown_03004288
-_08075FAC: .4byte gUnknown_03004280
-_08075FB0: .4byte gTasks
-_08075FB4: .4byte gUnknown_0202F7C2
-_08075FB8: .4byte gUnknown_0202F7A4
- thumb_func_end sub_8075DE0
-
- thumb_func_start b_side_obj__get_some_boolean
-b_side_obj__get_some_boolean: @ 8075FBC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r5, r4, 0
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _08075FDC
- ldr r0, _08075FD8 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- cmp r4, r0
- beq _0807601C
- b _0807602C
- .align 2, 0
-_08075FD8: .4byte gUnknown_0202F7C8
-_08075FDC:
- adds r0, r4, 0
- bl sub_8078874
- lsls r0, 24
- cmp r0, 0
- beq _0807602C
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _0807601C
- lsls r0, r5, 2
- ldr r1, _08076020 @ =0x02017800
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0807601C
- ldr r2, _08076024 @ =gSprites
- ldr r0, _08076028 @ =gUnknown_02024BE0
- adds r0, r5, r0
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3E
- ldrb r0, [r0]
- lsls r0, 29
- cmp r0, 0
- blt _0807602C
-_0807601C:
- movs r0, 0x1
- b _0807602E
- .align 2, 0
-_08076020: .4byte 0x02017800
-_08076024: .4byte gSprites
-_08076028: .4byte gUnknown_02024BE0
-_0807602C:
- movs r0, 0
-_0807602E:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end b_side_obj__get_some_boolean
-
- thumb_func_start sub_8076034
-sub_8076034: @ 8076034
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x28
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- lsls r1, 24
- cmp r1, 0
- beq _0807604E
- b _08076220
-_0807604E:
- add r4, sp, 0x10
- adds r0, r4, 0
- bl sub_8078914
- ldr r2, [sp, 0x10]
- movs r3, 0x80
- lsls r3, 6
- add r6, sp, 0x1C
- add r0, sp, 0x20
- mov r10, r0
- mov r1, r9
- lsls r1, 5
- str r1, [sp, 0x24]
- movs r5, 0
- ldr r1, _08076194 @ =0x040000d4
- movs r4, 0x80
- lsls r4, 5
- mov r12, r6
- ldr r7, _08076198 @ =0x85000400
- movs r0, 0x85
- lsls r0, 24
- mov r8, r0
-_0807607A:
- str r5, [sp, 0x1C]
- mov r0, r12
- str r0, [r1]
- str r2, [r1, 0x4]
- str r7, [r1, 0x8]
- ldr r0, [r1, 0x8]
- adds r2, r4
- subs r3, r4
- cmp r3, r4
- bhi _0807607A
- str r5, [sp, 0x1C]
- str r6, [r1]
- str r2, [r1, 0x4]
- lsrs r0, r3, 2
- mov r2, r8
- orrs r0, r2
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- add r0, sp, 0xC
- movs r1, 0
- strb r1, [r0]
- strb r1, [r0]
- ldr r1, [sp, 0x14]
- movs r0, 0xFF
- mov r3, r10
- strh r0, [r3]
- ldr r0, _08076194 @ =0x040000d4
- str r3, [r0]
- str r1, [r0, 0x4]
- ldr r1, _0807619C @ =0x81000800
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- ldr r2, _080761A0 @ =REG_BG1CNT
- ldrb r1, [r2]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r2]
- ldrb r1, [r2, 0x1]
- movs r0, 0x3F
- ands r0, r1
- movs r1, 0x40
- orrs r0, r1
- strb r0, [r2, 0x1]
- ldrb r1, [r2, 0x1]
- movs r0, 0x21
- negs r0, r0
- ands r0, r1
- strb r0, [r2, 0x1]
- ldr r0, _080761A4 @ =gUnknown_02024BE0
- add r0, r9
- ldrb r4, [r0]
- ldr r5, _080761A8 @ =gUnknown_030042C0
- ldr r0, _080761AC @ =gSprites
- lsls r1, r4, 4
- adds r1, r4
- lsls r1, 2
- adds r1, r0
- ldrh r0, [r1, 0x24]
- ldrh r1, [r1, 0x20]
- adds r0, r1
- negs r0, r0
- adds r0, 0x20
- strh r0, [r5]
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _0807611C
- ldr r0, _080761B0 @ =0x02019348
- ldrh r0, [r0]
- bl sub_80AEB1C
- lsls r0, 24
- cmp r0, 0
- beq _0807611C
- ldrh r0, [r5]
- subs r0, 0x1
- strh r0, [r5]
-_0807611C:
- ldr r3, _080761B4 @ =gUnknown_030041B4
- ldr r2, _080761AC @ =gSprites
- lsls r1, r4, 4
- adds r1, r4
- lsls r1, 2
- adds r1, r2
- ldrh r0, [r1, 0x26]
- ldrh r1, [r1, 0x22]
- adds r0, r1
- negs r0, r0
- adds r0, 0x20
- strh r0, [r3]
- ldr r0, _080761A4 @ =gUnknown_02024BE0
- add r0, r9
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- ldr r1, _080761B8 @ =REG_BG1HOFS
- ldr r0, _080761A8 @ =gUnknown_030042C0
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldrh r0, [r3]
- strh r0, [r1]
- ldr r4, _080761BC @ =gPlttBufferUnfaded + 0x200
- ldr r0, [sp, 0x24]
- adds r4, r0, r4
- mov r2, sp
- ldrb r1, [r2, 0x18]
- lsls r1, 4
- adds r0, r4, 0
- movs r2, 0x20
- bl LoadPalette
- mov r3, sp
- ldrb r0, [r3, 0x18]
- lsls r0, 5
- movs r1, 0xA0
- lsls r1, 19
- adds r0, r1
- ldr r1, _08076194 @ =0x040000d4
- str r4, [r1]
- str r0, [r1, 0x4]
- ldr r0, _080761C0 @ =0x84000008
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _080761C4
- movs r2, 0
- b _080761CE
- .align 2, 0
-_08076194: .4byte 0x040000d4
-_08076198: .4byte 0x85000400
-_0807619C: .4byte 0x81000800
-_080761A0: .4byte REG_BG1CNT
-_080761A4: .4byte gUnknown_02024BE0
-_080761A8: .4byte gUnknown_030042C0
-_080761AC: .4byte gSprites
-_080761B0: .4byte 0x02019348
-_080761B4: .4byte gUnknown_030041B4
-_080761B8: .4byte REG_BG1HOFS
-_080761BC: .4byte gPlttBufferUnfaded + 0x200
-_080761C0: .4byte 0x84000008
-_080761C4:
- mov r0, r9
- bl battle_get_per_side_status
- lsls r0, 24
- lsrs r2, r0, 24
-_080761CE:
- mov r0, sp
- ldrb r3, [r0, 0x18]
- ldr r0, [sp, 0x10]
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp]
- ldr r4, [sp, 0x14]
- movs r1, 0xFA
- lsls r1, 24
- adds r0, r4, r1
- cmp r0, 0
- bge _080761EA
- ldr r1, _08076218 @ =0xfa0007ff
- adds r0, r4, r1
-_080761EA:
- asrs r0, 11
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x4]
- ldr r0, _0807621C @ =REG_BG1CNT
- ldr r0, [r0]
- lsls r0, 28
- lsrs r0, 30
- str r0, [sp, 0x8]
- movs r0, 0
- movs r1, 0
- bl sub_80E4EF8
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _08076210
- b _08076338
-_08076210:
- bl sub_8076380
- b _08076338
- .align 2, 0
-_08076218: .4byte 0xfa0007ff
-_0807621C: .4byte REG_BG1CNT
-_08076220:
- ldr r3, _08076348 @ =0x06006000
- movs r5, 0x80
- lsls r5, 6
- add r6, sp, 0x1C
- ldr r2, _0807634C @ =gSprites
- mov r10, r2
- mov r0, r9
- lsls r0, 5
- str r0, [sp, 0x24]
- movs r4, 0
- ldr r1, _08076350 @ =0x040000d4
- movs r2, 0x80
- lsls r2, 5
- mov r12, r6
- ldr r7, _08076354 @ =0x85000400
- movs r0, 0x85
- lsls r0, 24
- mov r8, r0
-_08076244:
- str r4, [sp, 0x1C]
- mov r0, r12
- str r0, [r1]
- str r3, [r1, 0x4]
- str r7, [r1, 0x8]
- ldr r0, [r1, 0x8]
- adds r3, r2
- subs r5, r2
- cmp r5, r2
- bhi _08076244
- str r4, [sp, 0x1C]
- str r6, [r1]
- str r3, [r1, 0x4]
- lsrs r0, r5, 2
- mov r2, r8
- orrs r0, r2
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- add r0, sp, 0xC
- movs r1, 0
- strb r1, [r0]
- strb r1, [r0]
- ldr r1, _08076358 @ =0x0600f000
- movs r0, 0
- str r0, [sp, 0x1C]
- ldr r5, _08076350 @ =0x040000d4
- str r6, [r5]
- str r1, [r5, 0x4]
- ldr r0, _0807635C @ =0x85000200
- str r0, [r5, 0x8]
- ldr r0, [r5, 0x8]
- ldr r6, _08076360 @ =REG_BG2CNT
- ldrb r1, [r6]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r6]
- ldrb r1, [r6, 0x1]
- movs r0, 0x3F
- ands r0, r1
- movs r1, 0x40
- orrs r0, r1
- strb r0, [r6, 0x1]
- ldrb r1, [r6, 0x1]
- movs r0, 0x21
- negs r0, r0
- ands r0, r1
- strb r0, [r6, 0x1]
- ldr r2, _08076364 @ =gUnknown_02024BE0
- add r2, r9
- ldrb r4, [r2]
- lsls r1, r4, 4
- adds r1, r4
- lsls r1, 2
- add r1, r10
- ldrh r0, [r1, 0x24]
- ldrh r3, [r1, 0x20]
- adds r0, r3
- negs r0, r0
- adds r0, 0x20
- ldr r3, _08076368 @ =gUnknown_03004288
- strh r0, [r3]
- ldrh r0, [r1, 0x26]
- ldrh r1, [r1, 0x22]
- adds r0, r1
- negs r0, r0
- adds r0, 0x20
- ldr r1, _0807636C @ =gUnknown_03004280
- strh r0, [r1]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r10
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- ldr r1, _08076370 @ =REG_BG2HOFS
- ldrh r0, [r3]
- strh r0, [r1]
- adds r1, 0x2
- ldr r2, _0807636C @ =gUnknown_03004280
- ldrh r0, [r2]
- strh r0, [r1]
- ldr r3, [sp, 0x24]
- ldr r0, _08076374 @ =gPlttBufferUnfaded + 0x200
- adds r4, r3, r0
- adds r0, r4, 0
- movs r1, 0x90
- movs r2, 0x20
- bl LoadPalette
- ldr r0, _08076378 @ =0x05000120
- str r4, [r5]
- str r0, [r5, 0x4]
- ldr r0, _0807637C @ =0x84000008
- str r0, [r5, 0x8]
- ldr r0, [r5, 0x8]
- mov r0, r9
- bl battle_get_per_side_status
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- movs r0, 0xC0
- lsls r0, 7
- str r0, [sp]
- movs r0, 0x1E
- str r0, [sp, 0x4]
- ldr r0, [r6]
- lsls r0, 28
- lsrs r0, 30
- str r0, [sp, 0x8]
- movs r0, 0
- movs r1, 0
- movs r3, 0x9
- bl sub_80E4EF8
-_08076338:
- add sp, 0x28
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08076348: .4byte 0x06006000
-_0807634C: .4byte gSprites
-_08076350: .4byte 0x040000d4
-_08076354: .4byte 0x85000400
-_08076358: .4byte 0x0600f000
-_0807635C: .4byte 0x85000200
-_08076360: .4byte REG_BG2CNT
-_08076364: .4byte gUnknown_02024BE0
-_08076368: .4byte gUnknown_03004288
-_0807636C: .4byte gUnknown_03004280
-_08076370: .4byte REG_BG2HOFS
-_08076374: .4byte gPlttBufferUnfaded + 0x200
-_08076378: .4byte 0x05000120
-_0807637C: .4byte 0x84000008
- thumb_func_end sub_8076034
-
- thumb_func_start sub_8076380
-sub_8076380: @ 8076380
- push {r4-r7,lr}
- sub sp, 0xC
- ldr r0, _080763F8 @ =0x02019348
- ldrh r0, [r0]
- bl sub_80AEB1C
- lsls r0, 24
- cmp r0, 0
- beq _080763EE
- mov r0, sp
- bl sub_8078914
- ldr r6, [sp, 0x4]
- movs r5, 0
- movs r0, 0x7
- mov r12, r0
- movs r7, 0
-_080763A2:
- movs r4, 0
- adds r3, r7, r6
- mov r1, r12
- lsls r0, r1, 1
- adds r2, r0, r6
-_080763AC:
- ldrh r1, [r3]
- ldrh r0, [r2]
- strh r0, [r3]
- strh r1, [r2]
- adds r3, 0x2
- subs r2, 0x2
- adds r4, 0x1
- cmp r4, 0x3
- ble _080763AC
- movs r0, 0x20
- add r12, r0
- adds r7, 0x40
- adds r5, 0x1
- cmp r5, 0x7
- ble _080763A2
- movs r5, 0
- movs r1, 0x80
- lsls r1, 3
- adds r3, r1, 0
-_080763D2:
- adds r2, r5, 0x1
- lsls r0, r5, 6
- adds r1, r0, r6
- movs r4, 0x7
-_080763DA:
- ldrh r0, [r1]
- eors r0, r3
- strh r0, [r1]
- adds r1, 0x2
- subs r4, 0x1
- cmp r4, 0
- bge _080763DA
- adds r5, r2, 0
- cmp r5, 0x7
- ble _080763D2
-_080763EE:
- add sp, 0xC
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080763F8: .4byte 0x02019348
- thumb_func_end sub_8076380
-
- thumb_func_start sub_80763FC
-sub_80763FC: @ 80763FC
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- mov r12, r1
- adds r7, r2, 0
- lsls r0, 16
- lsrs r6, r0, 16
- lsls r3, 24
- movs r0, 0x40
- mov r9, r0
- cmp r3, 0
- bne _0807641A
- movs r1, 0x20
- mov r9, r1
-_0807641A:
- lsls r0, r6, 28
- lsrs r6, r0, 16
- movs r0, 0
- cmp r0, r9
- bcs _08076452
- ldr r1, _08076460 @ =0x00000fff
- mov r8, r1
-_08076428:
- movs r3, 0
- adds r5, r0, 0x1
- lsls r4, r0, 5
-_0807642E:
- adds r1, r4, r3
- lsls r1, 1
- add r1, r12
- ldrh r2, [r1]
- mov r0, r8
- ands r0, r2
- orrs r0, r6
- adds r0, r7
- strh r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x1F
- bls _0807642E
- lsls r0, r5, 24
- lsrs r0, 24
- cmp r0, r9
- bcc _08076428
-_08076452:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08076460: .4byte 0x00000fff
- thumb_func_end sub_80763FC
-
- thumb_func_start sub_8076464
-sub_8076464: @ 8076464
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- add r5, sp, 0x4
- adds r0, r5, 0
- bl sub_8078914
- cmp r4, 0
- beq _0807648C
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _080764F0
-_0807648C:
- ldr r2, [sp, 0x4]
- movs r3, 0x80
- lsls r3, 6
- add r5, sp, 0x10
- ldr r0, _080764E0 @ =gUnknown_030042C0
- mov r9, r0
- ldr r0, _080764E4 @ =gUnknown_030041B4
- mov r10, r0
- movs r6, 0
- ldr r1, _080764E8 @ =0x040000d4
- movs r4, 0x80
- lsls r4, 5
- mov r12, r5
- ldr r7, _080764EC @ =0x85000400
- movs r0, 0x85
- lsls r0, 24
- mov r8, r0
-_080764AE:
- str r6, [sp, 0x10]
- mov r0, r12
- str r0, [r1]
- str r2, [r1, 0x4]
- str r7, [r1, 0x8]
- ldr r0, [r1, 0x8]
- adds r2, r4
- subs r3, r4
- cmp r3, r4
- bhi _080764AE
- str r6, [sp, 0x10]
- str r5, [r1]
- str r2, [r1, 0x4]
- lsrs r0, r3, 2
- mov r2, r8
- orrs r0, r2
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- mov r0, sp
- movs r1, 0
- strb r1, [r0]
- strb r1, [r0]
- ldr r1, [sp, 0x8]
- b _08076540
- .align 2, 0
-_080764E0: .4byte gUnknown_030042C0
-_080764E4: .4byte gUnknown_030041B4
-_080764E8: .4byte 0x040000d4
-_080764EC: .4byte 0x85000400
-_080764F0:
- ldr r2, _08076568 @ =0x06006000
- movs r3, 0x80
- lsls r3, 6
- add r5, sp, 0x10
- ldr r0, _0807656C @ =gUnknown_03004288
- mov r9, r0
- ldr r0, _08076570 @ =gUnknown_03004280
- mov r10, r0
- movs r6, 0
- ldr r1, _08076574 @ =0x040000d4
- movs r4, 0x80
- lsls r4, 5
- mov r12, r5
- ldr r7, _08076578 @ =0x85000400
- movs r0, 0x85
- lsls r0, 24
- mov r8, r0
-_08076512:
- str r6, [sp, 0x10]
- mov r0, r12
- str r0, [r1]
- str r2, [r1, 0x4]
- str r7, [r1, 0x8]
- ldr r0, [r1, 0x8]
- adds r2, r4
- subs r3, r4
- cmp r3, r4
- bhi _08076512
- str r6, [sp, 0x10]
- str r5, [r1]
- str r2, [r1, 0x4]
- lsrs r0, r3, 2
- mov r2, r8
- orrs r0, r2
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- mov r0, sp
- movs r1, 0
- strb r1, [r0]
- strb r1, [r0]
- ldr r1, _0807657C @ =0x0600f000
-_08076540:
- movs r2, 0
- str r2, [sp, 0x10]
- ldr r0, _08076574 @ =0x040000d4
- str r5, [r0]
- str r1, [r0, 0x4]
- ldr r1, _08076580 @ =0x85000200
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- mov r0, r9
- strh r2, [r0]
- mov r0, r10
- strh r2, [r0]
- add sp, 0x14
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08076568: .4byte 0x06006000
-_0807656C: .4byte gUnknown_03004288
-_08076570: .4byte gUnknown_03004280
-_08076574: .4byte 0x040000d4
-_08076578: .4byte 0x85000400
-_0807657C: .4byte 0x0600f000
-_08076580: .4byte 0x85000200
- thumb_func_end sub_8076464
-
- thumb_func_start task_pA_ma0A_obj_to_bg_pal
-task_pA_ma0A_obj_to_bg_pal: @ 8076584
- push {r4-r6,lr}
- sub sp, 0xC
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080765FC @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r5, r1, r2
- ldrb r4, [r5, 0x8]
- ldrb r6, [r5, 0x14]
- mov r0, sp
- bl sub_8078914
- ldr r0, _08076600 @ =gSprites
- lsls r1, r4, 4
- adds r1, r4
- lsls r1, 2
- adds r1, r0
- ldrh r2, [r1, 0x24]
- ldrh r0, [r1, 0x20]
- adds r2, r0
- ldrh r0, [r5, 0xA]
- subs r0, r2
- lsls r0, 16
- lsrs r3, r0, 16
- ldrh r2, [r1, 0x26]
- ldrh r1, [r1, 0x22]
- adds r2, r1
- ldrh r0, [r5, 0xC]
- subs r0, r2
- lsls r0, 16
- lsrs r2, r0, 16
- movs r1, 0x12
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _08076614
- ldr r1, _08076604 @ =gUnknown_030042C0
- lsls r0, r3, 16
- asrs r0, 16
- ldrh r3, [r5, 0xE]
- adds r0, r3
- strh r0, [r1]
- ldr r1, _08076608 @ =gUnknown_030041B4
- lsls r0, r2, 16
- asrs r0, 16
- ldrh r5, [r5, 0x10]
- adds r0, r5
- strh r0, [r1]
- lsls r2, r6, 5
- ldr r1, _0807660C @ =gPlttBufferFaded + 0x200
- adds r2, r1
- mov r0, sp
- ldrb r0, [r0, 0x8]
- lsls r0, 5
- ldr r3, _08076610 @ =0xfffffe00
- adds r1, r3
- adds r0, r1
- b _08076634
- .align 2, 0
-_080765FC: .4byte gTasks
-_08076600: .4byte gSprites
-_08076604: .4byte gUnknown_030042C0
-_08076608: .4byte gUnknown_030041B4
-_0807660C: .4byte gPlttBufferFaded + 0x200
-_08076610: .4byte 0xfffffe00
-_08076614:
- ldr r1, _08076648 @ =gUnknown_03004288
- lsls r0, r3, 16
- asrs r0, 16
- ldrh r3, [r5, 0xE]
- adds r0, r3
- strh r0, [r1]
- ldr r1, _0807664C @ =gUnknown_03004280
- lsls r0, r2, 16
- asrs r0, 16
- ldrh r5, [r5, 0x10]
- adds r0, r5
- strh r0, [r1]
- lsls r2, r6, 5
- ldr r0, _08076650 @ =gPlttBufferFaded + 0x200
- adds r2, r0
- subs r0, 0xE0
-_08076634:
- ldr r1, _08076654 @ =0x040000d4
- str r2, [r1]
- str r0, [r1, 0x4]
- ldr r0, _08076658 @ =0x84000008
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- add sp, 0xC
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08076648: .4byte gUnknown_03004288
-_0807664C: .4byte gUnknown_03004280
-_08076650: .4byte gPlttBufferFaded + 0x200
-_08076654: .4byte 0x040000d4
-_08076658: .4byte 0x84000008
- thumb_func_end task_pA_ma0A_obj_to_bg_pal
-
- thumb_func_start ma0B_0807324C
-ma0B_0807324C: @ 807665C
- push {r4,r5,lr}
- ldr r0, _08076670 @ =gUnknown_0202F7A4
- ldr r2, [r0]
- adds r1, r2, 0x1
- str r1, [r0]
- ldrb r4, [r2, 0x1]
- cmp r4, 0
- bne _08076674
- movs r4, 0x2
- b _0807667E
- .align 2, 0
-_08076670: .4byte gUnknown_0202F7A4
-_08076674:
- cmp r4, 0x1
- bne _0807667A
- movs r4, 0x3
-_0807667A:
- cmp r4, 0
- beq _08076682
-_0807667E:
- cmp r4, 0x2
- bne _0807668C
-_08076682:
- ldr r0, _08076688 @ =gUnknown_0202F7C8
- b _0807668E
- .align 2, 0
-_08076688: .4byte gUnknown_0202F7C8
-_0807668C:
- ldr r0, _080766E4 @ =gUnknown_0202F7C9
-_0807668E:
- ldrb r5, [r0]
- ldr r3, _080766E8 @ =gUnknown_0202F7C2
- ldrb r0, [r3]
- cmp r0, 0xFF
- beq _080766B4
- ldr r2, _080766EC @ =gSprites
- ldr r0, _080766F0 @ =gUnknown_02024BE0
- adds r0, r5, r0
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
-_080766B4:
- cmp r4, 0x1
- bls _080766F4
- ldrb r0, [r3, 0x1]
- cmp r0, 0xFF
- beq _080766F4
- ldr r3, _080766EC @ =gSprites
- ldr r2, _080766F0 @ =gUnknown_02024BE0
- movs r1, 0x2
- adds r0, r5, 0
- eors r0, r1
- adds r0, r2
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
- b _080766F6
- .align 2, 0
-_080766E4: .4byte gUnknown_0202F7C9
-_080766E8: .4byte gUnknown_0202F7C2
-_080766EC: .4byte gSprites
-_080766F0: .4byte gUnknown_02024BE0
-_080766F4:
- movs r4, 0
-_080766F6:
- ldr r0, _08076720 @ =sub_807672C
- movs r1, 0x5
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08076724 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r4, [r1, 0x8]
- strh r5, [r1, 0xC]
- ldr r1, _08076728 @ =gUnknown_0202F7A4
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08076720: .4byte sub_807672C
-_08076724: .4byte gTasks
-_08076728: .4byte gUnknown_0202F7A4
- thumb_func_end ma0B_0807324C
-
- thumb_func_start sub_807672C
-sub_807672C: @ 807672C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _0807676C @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r1, r0, r1
- ldrh r0, [r1, 0xA]
- adds r0, 0x1
- strh r0, [r1, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- beq _080767B6
- ldrb r0, [r1, 0xC]
- bl battle_get_per_side_status
- lsls r0, 24
- movs r1, 0xFF
- lsls r1, 24
- adds r0, r1
- lsrs r0, 24
- cmp r0, 0x1
- bls _08076768
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _08076770
-_08076768:
- movs r4, 0
- b _08076772
- .align 2, 0
-_0807676C: .4byte gTasks
-_08076770:
- movs r4, 0x1
-_08076772:
- ldr r6, _080767BC @ =gUnknown_0202F7C2
- ldrb r0, [r6]
- cmp r0, 0xFF
- beq _0807678A
- adds r0, r4, 0
- bl sub_8076464
- ldrb r0, [r6]
- bl DestroyTask
- movs r0, 0xFF
- strb r0, [r6]
-_0807678A:
- ldr r0, _080767C0 @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- movs r2, 0x8
- ldrsh r0, [r1, r2]
- cmp r0, 0x1
- ble _080767B0
- movs r0, 0x1
- eors r4, r0
- adds r0, r4, 0
- bl sub_8076464
- ldrb r0, [r6, 0x1]
- bl DestroyTask
- movs r0, 0xFF
- strb r0, [r6, 0x1]
-_080767B0:
- adds r0, r5, 0
- bl DestroyTask
-_080767B6:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080767BC: .4byte gUnknown_0202F7C2
-_080767C0: .4byte gTasks
- thumb_func_end sub_807672C
-
- thumb_func_start sub_80767C4
-sub_80767C4: @ 80767C4
- push {r4,r5,lr}
- ldr r0, _080767D8 @ =gUnknown_0202F7A4
- ldr r2, [r0]
- adds r1, r2, 0x1
- str r1, [r0]
- ldrb r5, [r2, 0x1]
- cmp r5, 0
- bne _080767DC
- movs r5, 0x2
- b _080767E6
- .align 2, 0
-_080767D8: .4byte gUnknown_0202F7A4
-_080767DC:
- cmp r5, 0x1
- bne _080767E2
- movs r5, 0x3
-_080767E2:
- cmp r5, 0
- beq _080767EA
-_080767E6:
- cmp r5, 0x2
- bne _080767F4
-_080767EA:
- ldr r0, _080767F0 @ =gUnknown_0202F7C8
- b _080767F6
- .align 2, 0
-_080767F0: .4byte gUnknown_0202F7C8
-_080767F4:
- ldr r0, _08076828 @ =gUnknown_0202F7C9
-_080767F6:
- ldrb r4, [r0]
- adds r0, r4, 0
- bl b_side_obj__get_some_boolean
- lsls r0, 24
- cmp r0, 0
- beq _08076850
- adds r0, r4, 0
- bl battle_get_per_side_status
- lsls r0, 24
- movs r1, 0xFF
- lsls r1, 24
- adds r0, r1
- lsrs r0, 24
- cmp r0, 0x1
- bls _08076822
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _0807682C
-_08076822:
- movs r1, 0
- b _0807682E
- .align 2, 0
-_08076828: .4byte gUnknown_0202F7C9
-_0807682C:
- movs r1, 0x1
-_0807682E:
- adds r0, r4, 0
- bl sub_8076034
- ldr r2, _08076888 @ =gSprites
- ldr r0, _0807688C @ =gUnknown_02024BE0
- adds r0, r4, r0
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
-_08076850:
- movs r0, 0x2
- eors r4, r0
- cmp r5, 0x1
- bls _080768B4
- adds r0, r4, 0
- bl b_side_obj__get_some_boolean
- lsls r0, 24
- cmp r0, 0
- beq _080768B4
- adds r0, r4, 0
- bl battle_get_per_side_status
- lsls r0, 24
- movs r1, 0xFF
- lsls r1, 24
- adds r0, r1
- lsrs r0, 24
- cmp r0, 0x1
- bls _08076882
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _08076890
-_08076882:
- movs r1, 0
- b _08076892
- .align 2, 0
-_08076888: .4byte gSprites
-_0807688C: .4byte gUnknown_02024BE0
-_08076890:
- movs r1, 0x1
-_08076892:
- adds r0, r4, 0
- bl sub_8076034
- ldr r2, _080768C4 @ =gSprites
- ldr r0, _080768C8 @ =gUnknown_02024BE0
- adds r0, r4, r0
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
-_080768B4:
- ldr r1, _080768CC @ =gUnknown_0202F7A4
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080768C4: .4byte gSprites
-_080768C8: .4byte gUnknown_02024BE0
-_080768CC: .4byte gUnknown_0202F7A4
- thumb_func_end sub_80767C4
-
- thumb_func_start ma23_8073484
-ma23_8073484: @ 80768D0
- push {r4-r6,lr}
- ldr r0, _080768E4 @ =gUnknown_0202F7A4
- ldr r2, [r0]
- adds r1, r2, 0x1
- str r1, [r0]
- ldrb r5, [r2, 0x1]
- cmp r5, 0
- bne _080768E8
- movs r5, 0x2
- b _080768F2
- .align 2, 0
-_080768E4: .4byte gUnknown_0202F7A4
-_080768E8:
- cmp r5, 0x1
- bne _080768EE
- movs r5, 0x3
-_080768EE:
- cmp r5, 0
- beq _080768F6
-_080768F2:
- cmp r5, 0x2
- bne _08076900
-_080768F6:
- ldr r0, _080768FC @ =gUnknown_0202F7C8
- b _08076902
- .align 2, 0
-_080768FC: .4byte gUnknown_0202F7C8
-_08076900:
- ldr r0, _08076960 @ =gUnknown_0202F7C9
-_08076902:
- ldrb r6, [r0]
- adds r0, r6, 0
- bl b_side_obj__get_some_boolean
- lsls r0, 24
- cmp r0, 0
- beq _0807692C
- ldr r2, _08076964 @ =gSprites
- ldr r0, _08076968 @ =gUnknown_02024BE0
- adds r0, r6, r0
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
-_0807692C:
- cmp r5, 0x1
- bls _0807696C
- movs r0, 0x2
- adds r4, r6, 0
- eors r4, r0
- adds r0, r4, 0
- bl b_side_obj__get_some_boolean
- lsls r0, 24
- cmp r0, 0
- beq _0807696C
- ldr r2, _08076964 @ =gSprites
- ldr r0, _08076968 @ =gUnknown_02024BE0
- adds r0, r4, r0
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
- b _0807696E
- .align 2, 0
-_08076960: .4byte gUnknown_0202F7C9
-_08076964: .4byte gSprites
-_08076968: .4byte gUnknown_02024BE0
-_0807696C:
- movs r5, 0
-_0807696E:
- ldr r0, _08076998 @ =sub_80769A4
- movs r1, 0x5
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0807699C @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r5, [r1, 0x8]
- strh r6, [r1, 0xC]
- ldr r1, _080769A0 @ =gUnknown_0202F7A4
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08076998: .4byte sub_80769A4
-_0807699C: .4byte gTasks
-_080769A0: .4byte gUnknown_0202F7A4
- thumb_func_end ma23_8073484
-
- thumb_func_start sub_80769A4
-sub_80769A4: @ 80769A4
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _080769E8 @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r1, r0, r1
- ldrh r0, [r1, 0xA]
- adds r0, 0x1
- strh r0, [r1, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- beq _08076A32
- ldrb r4, [r1, 0xC]
- adds r0, r4, 0
- bl battle_get_per_side_status
- lsls r0, 24
- movs r1, 0xFF
- lsls r1, 24
- adds r0, r1
- lsrs r0, 24
- cmp r0, 0x1
- bls _080769E2
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _080769EC
-_080769E2:
- movs r5, 0
- b _080769EE
- .align 2, 0
-_080769E8: .4byte gTasks
-_080769EC:
- movs r5, 0x1
-_080769EE:
- adds r0, r4, 0
- bl b_side_obj__get_some_boolean
- lsls r0, 24
- cmp r0, 0
- beq _08076A00
- adds r0, r5, 0
- bl sub_8076464
-_08076A00:
- ldr r0, _08076A38 @ =gTasks
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 3
- adds r1, r0
- movs r2, 0x8
- ldrsh r0, [r1, r2]
- cmp r0, 0x1
- ble _08076A2C
- movs r0, 0x2
- eors r4, r0
- adds r0, r4, 0
- bl b_side_obj__get_some_boolean
- lsls r0, 24
- cmp r0, 0
- beq _08076A2C
- movs r0, 0x1
- eors r5, r0
- adds r0, r5, 0
- bl sub_8076464
-_08076A2C:
- adds r0, r6, 0
- bl DestroyTask
-_08076A32:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08076A38: .4byte gTasks
- thumb_func_end sub_80769A4
-
- thumb_func_start sub_8076A3C
-sub_8076A3C: @ 8076A3C
- push {r4,lr}
- ldr r2, _08076A6C @ =gUnknown_0202F7A4
- ldr r0, [r2]
- adds r1, r0, 0x1
- str r1, [r2]
- ldrb r3, [r0, 0x1]
- adds r0, r1, 0x1
- str r0, [r2]
- ldrb r1, [r1, 0x1]
- lsls r1, 8
- adds r0, 0x1
- str r0, [r2]
- ldr r2, _08076A70 @ =REG_BLDCNT
- movs r4, 0xFD
- lsls r4, 6
- adds r0, r4, 0
- strh r0, [r2]
- ldr r0, _08076A74 @ =REG_BLDALPHA
- orrs r3, r1
- strh r3, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08076A6C: .4byte gUnknown_0202F7A4
-_08076A70: .4byte REG_BLDCNT
-_08076A74: .4byte REG_BLDALPHA
- thumb_func_end sub_8076A3C
-
- thumb_func_start sub_8076A78
-sub_8076A78: @ 8076A78
- ldr r2, _08076A98 @ =gUnknown_0202F7A4
- ldr r0, [r2]
- adds r1, r0, 0x1
- str r1, [r2]
- ldrb r3, [r0, 0x1]
- adds r0, r1, 0x1
- str r0, [r2]
- ldrb r1, [r1, 0x1]
- lsls r1, 8
- adds r0, 0x1
- str r0, [r2]
- ldr r0, _08076A9C @ =REG_BLDCNT
- orrs r3, r1
- strh r3, [r0]
- bx lr
- .align 2, 0
-_08076A98: .4byte gUnknown_0202F7A4
-_08076A9C: .4byte REG_BLDCNT
- thumb_func_end sub_8076A78
-
- thumb_func_start sub_8076AA0
-sub_8076AA0: @ 8076AA0
- ldr r1, _08076AB4 @ =gUnknown_0202F7A4
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- ldr r0, _08076AB8 @ =REG_BLDCNT
- movs r1, 0
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- bx lr
- .align 2, 0
-_08076AB4: .4byte gUnknown_0202F7A4
-_08076AB8: .4byte REG_BLDCNT
- thumb_func_end sub_8076AA0
-
- thumb_func_start ma0E_call
-ma0E_call: @ 8076ABC
- push {r4,lr}
- ldr r4, _08076AE8 @ =gUnknown_0202F7A4
- ldr r1, [r4]
- adds r3, r1, 0x1
- str r3, [r4]
- ldr r2, _08076AEC @ =gUnknown_0202F7A8
- adds r0, r1, 0x5
- str r0, [r2]
- ldrb r1, [r1, 0x1]
- ldrb r0, [r3, 0x1]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r3, 0x2]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r3, 0x3]
- lsls r0, 24
- adds r1, r0
- str r1, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08076AE8: .4byte gUnknown_0202F7A4
-_08076AEC: .4byte gUnknown_0202F7A8
- thumb_func_end ma0E_call
-
- thumb_func_start sub_8076AF0
-sub_8076AF0: @ 8076AF0
- ldr r0, _08076AFC @ =gUnknown_0202F7A4
- ldr r1, _08076B00 @ =gUnknown_0202F7A8
- ldr r1, [r1]
- str r1, [r0]
- bx lr
- .align 2, 0
-_08076AFC: .4byte gUnknown_0202F7A4
-_08076B00: .4byte gUnknown_0202F7A8
- thumb_func_end sub_8076AF0
-
- thumb_func_start ma10_080736AC
-ma10_080736AC: @ 8076B04
- push {r4,r5,lr}
- ldr r5, _08076B30 @ =gUnknown_0202F7A4
- ldr r1, [r5]
- adds r0, r1, 0x1
- str r0, [r5]
- ldrb r2, [r1, 0x1]
- adds r3, r0, 0x1
- str r3, [r5]
- ldrb r4, [r0, 0x1]
- ldrb r0, [r3, 0x1]
- lsls r0, 8
- orrs r4, r0
- adds r1, 0x4
- str r1, [r5]
- ldr r0, _08076B34 @ =gUnknown_03004B00
- lsls r2, 1
- adds r2, r0
- strh r4, [r2]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08076B30: .4byte gUnknown_0202F7A4
-_08076B34: .4byte gUnknown_03004B00
- thumb_func_end ma10_080736AC
-
- thumb_func_start ma11_if_else
-ma11_if_else: @ 8076B38
- push {lr}
- ldr r3, _08076B70 @ =gUnknown_0202F7A4
- ldr r2, [r3]
- adds r0, r2, 0x1
- str r0, [r3]
- ldr r0, _08076B74 @ =gUnknown_0202F7C4
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08076B52
- adds r0, r2, 0x5
- str r0, [r3]
-_08076B52:
- ldr r2, [r3]
- ldrb r1, [r2]
- ldrb r0, [r2, 0x1]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0x2]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 24
- adds r1, r0
- str r1, [r3]
- pop {r0}
- bx r0
- .align 2, 0
-_08076B70: .4byte gUnknown_0202F7A4
-_08076B74: .4byte gUnknown_0202F7C4
- thumb_func_end ma11_if_else
-
- thumb_func_start ma12_cond_if
-ma12_cond_if: @ 8076B78
- push {r4,r5,lr}
- ldr r5, _08076BA8 @ =gUnknown_0202F7A4
- ldr r4, [r5]
- adds r2, r4, 0x1
- str r2, [r5]
- ldrb r1, [r4, 0x1]
- adds r3, r2, 0x1
- str r3, [r5]
- ldr r0, _08076BAC @ =gUnknown_0202F7C4
- ldrb r0, [r0]
- cmp r1, r0
- bne _08076BB0
- ldrb r1, [r2, 0x1]
- ldrb r0, [r3, 0x1]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r3, 0x2]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r3, 0x3]
- lsls r0, 24
- adds r1, r0
- str r1, [r5]
- b _08076BB4
- .align 2, 0
-_08076BA8: .4byte gUnknown_0202F7A4
-_08076BAC: .4byte gUnknown_0202F7C4
-_08076BB0:
- adds r0, r4, 0x6
- str r0, [r5]
-_08076BB4:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end ma12_cond_if
-
- thumb_func_start sub_8076BBC
-sub_8076BBC: @ 8076BBC
- ldr r3, _08076BDC @ =gUnknown_0202F7A4
- ldr r0, [r3]
- adds r2, r0, 0x1
- str r2, [r3]
- ldrb r1, [r0, 0x1]
- ldrb r0, [r2, 0x1]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0x2]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 24
- adds r1, r0
- str r1, [r3]
- bx lr
- .align 2, 0
-_08076BDC: .4byte gUnknown_0202F7A4
- thumb_func_end sub_8076BBC
-
- thumb_func_start sub_8076BE0
-sub_8076BE0: @ 8076BE0
- push {lr}
- ldr r0, _08076BF8 @ =gMain
- ldr r1, _08076BFC @ =0x0000043d
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08076C00
- movs r0, 0
- b _08076C02
- .align 2, 0
-_08076BF8: .4byte gMain
-_08076BFC: .4byte 0x0000043d
-_08076C00:
- movs r0, 0x1
-_08076C02:
- pop {r1}
- bx r1
- thumb_func_end sub_8076BE0
-
- thumb_func_start ma14_load_background
-ma14_load_background: @ 8076C08
- push {r4,lr}
- ldr r1, _08076C3C @ =gUnknown_0202F7A4
- ldr r2, [r1]
- adds r0, r2, 0x1
- str r0, [r1]
- ldrb r4, [r2, 0x1]
- adds r0, 0x1
- str r0, [r1]
- ldr r0, _08076C40 @ =task_p5_load_battle_screen_elements
- movs r1, 0x5
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08076C44 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r4, [r1, 0x8]
- ldr r1, _08076C48 @ =gUnknown_0202F7C5
- movs r0, 0x1
- strb r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08076C3C: .4byte gUnknown_0202F7A4
-_08076C40: .4byte task_p5_load_battle_screen_elements
-_08076C44: .4byte gTasks
-_08076C48: .4byte gUnknown_0202F7C5
- thumb_func_end ma14_load_background
-
- thumb_func_start sub_8076C4C
-sub_8076C4C: @ 8076C4C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r2, _08076C8C @ =gUnknown_0202F7A4
- ldr r1, [r2]
- adds r0, r1, 0x1
- str r0, [r2]
- ldrb r3, [r1, 0x1]
- mov r8, r3
- ldrb r7, [r0, 0x1]
- ldrb r6, [r0, 0x2]
- adds r1, 0x4
- str r1, [r2]
- ldr r0, _08076C90 @ =task_p5_load_battle_screen_elements
- movs r1, 0x5
- bl CreateTask
- lsls r0, 24
- lsrs r4, r0, 24
- adds r5, r4, 0
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _08076C98
- ldr r1, _08076C94 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- strh r6, [r0, 0x8]
- b _08076CCA
- .align 2, 0
-_08076C8C: .4byte gUnknown_0202F7A4
-_08076C90: .4byte task_p5_load_battle_screen_elements
-_08076C94: .4byte gTasks
-_08076C98:
- ldr r0, _08076CB4 @ =gUnknown_0202F7C9
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _08076CBC
- ldr r1, _08076CB8 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- strh r7, [r0, 0x8]
- b _08076CCA
- .align 2, 0
-_08076CB4: .4byte gUnknown_0202F7C9
-_08076CB8: .4byte gTasks
-_08076CBC:
- ldr r1, _08076CDC @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- mov r1, r8
- strh r1, [r0, 0x8]
-_08076CCA:
- ldr r1, _08076CE0 @ =gUnknown_0202F7C5
- movs r0, 0x1
- strb r0, [r1]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08076CDC: .4byte gTasks
-_08076CE0: .4byte gUnknown_0202F7C5
- thumb_func_end sub_8076C4C
-
- thumb_func_start task_p5_load_battle_screen_elements
-task_p5_load_battle_screen_elements: @ 8076CE4
- push {r4-r7,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _08076D18 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- ldrh r6, [r4, 0x1C]
- movs r0, 0x1C
- ldrsh r3, [r4, r0]
- adds r7, r1, 0
- cmp r3, 0
- bne _08076D1C
- str r3, [sp]
- movs r0, 0xE8
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginHardwarePaletteFade
- ldrh r0, [r4, 0x1C]
- adds r0, 0x1
- strh r0, [r4, 0x1C]
- b _08076DAC
- .align 2, 0
-_08076D18: .4byte gTasks
-_08076D1C:
- ldr r2, _08076D38 @ =gPaletteFade
- ldrb r1, [r2, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08076DAC
- cmp r3, 0x1
- bne _08076D40
- adds r0, r6, 0x1
- strh r0, [r4, 0x1C]
- ldr r1, _08076D3C @ =gUnknown_0202F7C5
- movs r0, 0x2
- strb r0, [r1]
- b _08076D84
- .align 2, 0
-_08076D38: .4byte gPaletteFade
-_08076D3C: .4byte gUnknown_0202F7C5
-_08076D40:
- cmp r3, 0x2
- bne _08076D84
- ldrh r0, [r4, 0x8]
- lsls r2, r0, 16
- asrs r1, r2, 16
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _08076D58
- bl dp01t_11_3_message_for_player_only
- b _08076D5E
-_08076D58:
- lsrs r0, r2, 16
- bl sub_8076DB8
-_08076D5E:
- movs r0, 0x1
- str r0, [sp]
- movs r0, 0xE8
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginHardwarePaletteFade
- ldr r1, _08076D80 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldrh r1, [r0, 0x1C]
- adds r1, 0x1
- strh r1, [r0, 0x1C]
- b _08076DAC
- .align 2, 0
-_08076D80: .4byte gTasks
-_08076D84:
- ldrb r1, [r2, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _08076DAC
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r7
- movs r1, 0x1C
- ldrsh r0, [r0, r1]
- cmp r0, 0x3
- bne _08076DAC
- adds r0, r5, 0
- bl DestroyTask
- ldr r0, _08076DB4 @ =gUnknown_0202F7C5
- strb r4, [r0]
-_08076DAC:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08076DB4: .4byte gUnknown_0202F7C5
- thumb_func_end task_p5_load_battle_screen_elements
-
- thumb_func_start sub_8076DB8
-sub_8076DB8: @ 8076DB8
- push {r4-r7,lr}
- lsls r0, 16
- lsrs r6, r0, 16
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _08076E70
- ldr r7, _08076E54 @ =gBattleAnimBackgroundTable
- lsls r0, r6, 1
- adds r0, r6
- lsls r4, r0, 2
- adds r0, r7, 0
- adds r0, 0x8
- adds r0, r4, r0
- ldr r5, [r0]
- bl sub_8076BE0
- lsls r0, 24
- ldr r1, _08076E58 @ =0x02018000
- cmp r0, 0
- beq _08076DE8
- ldr r0, _08076E5C @ =0xffffc800
- adds r1, r0
-_08076DE8:
- adds r0, r5, 0
- bl sub_800D238
- bl sub_80789BC
- lsls r0, 24
- lsrs r5, r0, 24
- bl sub_8076BE0
- lsls r0, 24
- ldr r1, _08076E58 @ =0x02018000
- cmp r0, 0
- beq _08076E06
- ldr r0, _08076E5C @ =0xffffc800
- adds r1, r0
-_08076E06:
- movs r2, 0x80
- lsls r2, 1
- adds r0, r5, 0
- movs r3, 0
- bl sub_80763FC
- bl sub_8076BE0
- lsls r0, 24
- ldr r2, _08076E58 @ =0x02018000
- cmp r0, 0
- beq _08076E22
- ldr r0, _08076E5C @ =0xffffc800
- adds r2, r0
-_08076E22:
- ldr r1, _08076E60 @ =0x0600d000
- ldr r0, _08076E64 @ =0x040000d4
- str r2, [r0]
- str r1, [r0, 0x4]
- ldr r1, _08076E68 @ =0x84000200
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- adds r0, r4, r7
- ldr r0, [r0]
- ldr r1, _08076E6C @ =0x06002000
- bl LZDecompressVram
- adds r0, r7, 0x4
- adds r0, r4, r0
- ldr r4, [r0]
- bl sub_80789BC
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 20
- adds r0, r4, 0
- movs r2, 0x20
- bl LoadCompressedPalette
- b _08076E9E
- .align 2, 0
-_08076E54: .4byte gBattleAnimBackgroundTable
-_08076E58: .4byte 0x02018000
-_08076E5C: .4byte 0xffffc800
-_08076E60: .4byte 0x0600d000
-_08076E64: .4byte 0x040000d4
-_08076E68: .4byte 0x84000200
-_08076E6C: .4byte 0x06002000
-_08076E70:
- ldr r5, _08076EA4 @ =gBattleAnimBackgroundTable
- lsls r4, r6, 1
- adds r4, r6
- lsls r4, 2
- adds r0, r5, 0
- adds r0, 0x8
- adds r0, r4, r0
- ldr r0, [r0]
- ldr r1, _08076EA8 @ =0x0600d000
- bl LZDecompressVram
- adds r0, r4, r5
- ldr r0, [r0]
- ldr r1, _08076EAC @ =0x06008000
- bl LZDecompressVram
- adds r5, 0x4
- adds r4, r5
- ldr r0, [r4]
- movs r1, 0x20
- movs r2, 0x20
- bl LoadCompressedPalette
-_08076E9E:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08076EA4: .4byte gBattleAnimBackgroundTable
-_08076EA8: .4byte 0x0600d000
-_08076EAC: .4byte 0x06008000
- thumb_func_end sub_8076DB8
-
- thumb_func_start dp01t_11_3_message_for_player_only
-dp01t_11_3_message_for_player_only: @ 8076EB0
- push {lr}
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _08076EC2
- bl sub_80AB2AC
- b _08076EC6
-_08076EC2:
- bl sub_800D7B8
-_08076EC6:
- pop {r0}
- bx r0
- thumb_func_end dp01t_11_3_message_for_player_only
-
- thumb_func_start ma15_load_battle_screen_elements
-ma15_load_battle_screen_elements: @ 8076ECC
- push {lr}
- ldr r1, _08076EFC @ =gUnknown_0202F7A4
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- ldr r0, _08076F00 @ =task_p5_load_battle_screen_elements
- movs r1, 0x5
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08076F04 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r0, _08076F08 @ =0x0000ffff
- strh r0, [r1, 0x8]
- ldr r1, _08076F0C @ =gUnknown_0202F7C5
- movs r0, 0x1
- strb r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08076EFC: .4byte gUnknown_0202F7A4
-_08076F00: .4byte task_p5_load_battle_screen_elements
-_08076F04: .4byte gTasks
-_08076F08: .4byte 0x0000ffff
-_08076F0C: .4byte gUnknown_0202F7C5
- thumb_func_end ma15_load_battle_screen_elements
-
- thumb_func_start ma16_wait_for_battle_screen_elements_s2
-ma16_wait_for_battle_screen_elements_s2: @ 8076F10
- push {lr}
- ldr r0, _08076F28 @ =gUnknown_0202F7C5
- ldrb r0, [r0]
- cmp r0, 0x2
- bne _08076F34
- ldr r1, _08076F2C @ =gUnknown_0202F7A4
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- ldr r1, _08076F30 @ =gUnknown_0202F7B0
- movs r0, 0
- b _08076F38
- .align 2, 0
-_08076F28: .4byte gUnknown_0202F7C5
-_08076F2C: .4byte gUnknown_0202F7A4
-_08076F30: .4byte gUnknown_0202F7B0
-_08076F34:
- ldr r1, _08076F40 @ =gUnknown_0202F7B0
- movs r0, 0x1
-_08076F38:
- strb r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08076F40: .4byte gUnknown_0202F7B0
- thumb_func_end ma16_wait_for_battle_screen_elements_s2
-
- thumb_func_start sub_8076F44
-sub_8076F44: @ 8076F44
- push {lr}
- ldr r0, _08076F5C @ =gUnknown_0202F7C5
- ldrb r2, [r0]
- cmp r2, 0
- bne _08076F68
- ldr r0, _08076F60 @ =gUnknown_0202F7A4
- ldr r1, [r0]
- adds r1, 0x1
- str r1, [r0]
- ldr r0, _08076F64 @ =gUnknown_0202F7B0
- strb r2, [r0]
- b _08076F6E
- .align 2, 0
-_08076F5C: .4byte gUnknown_0202F7C5
-_08076F60: .4byte gUnknown_0202F7A4
-_08076F64: .4byte gUnknown_0202F7B0
-_08076F68:
- ldr r1, _08076F74 @ =gUnknown_0202F7B0
- movs r0, 0x1
- strb r0, [r1]
-_08076F6E:
- pop {r0}
- bx r0
- .align 2, 0
-_08076F74: .4byte gUnknown_0202F7B0
- thumb_func_end sub_8076F44
-
- thumb_func_start ma18_load_background_probably
-ma18_load_background_probably: @ 8076F78
- push {r4,lr}
- ldr r4, _08076F94 @ =gUnknown_0202F7A4
- ldr r1, [r4]
- adds r0, r1, 0x1
- str r0, [r4]
- ldrb r0, [r1, 0x1]
- bl sub_8076DB8
- ldr r0, [r4]
- adds r0, 0x1
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08076F94: .4byte gUnknown_0202F7A4
- thumb_func_end ma18_load_background_probably
-
- thumb_func_start sub_8076F98
-sub_8076F98: @ 8076F98
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _08076FDC
- ldr r0, _08076FD4 @ =gUnknown_0202F7C8
- ldrb r2, [r0]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- ldr r1, _08076FD8 @ =0x02017810
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _08076FDC
- adds r0, r2, 0
- bl battle_side_get_owner
- lsls r0, 24
- movs r4, 0xC0
- cmp r0, 0
- beq _0807706E
- movs r4, 0x3F
- b _0807706E
- .align 2, 0
-_08076FD4: .4byte gUnknown_0202F7C8
-_08076FD8: .4byte 0x02017810
-_08076FDC:
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _08077004
- ldr r0, _08076FFC @ =gUnknown_0202F7C8
- ldr r1, _08077000 @ =gUnknown_0202F7C9
- ldrb r0, [r0]
- ldrb r1, [r1]
- cmp r0, r1
- bne _08077068
- cmp r0, 0x2
- bne _08077068
- cmp r4, 0x3F
- beq _0807707A
- b _08077068
- .align 2, 0
-_08076FFC: .4byte gUnknown_0202F7C8
-_08077000: .4byte gUnknown_0202F7C9
-_08077004:
- ldr r0, _0807702C @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _08077042
- ldr r0, _08077030 @ =gUnknown_0202F7C9
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _0807706E
- lsls r0, r4, 24
- asrs r1, r0, 24
- cmp r1, 0x3F
- bne _08077034
- movs r4, 0xC0
- b _0807706E
- .align 2, 0
-_0807702C: .4byte gUnknown_0202F7C8
-_08077030: .4byte gUnknown_0202F7C9
-_08077034:
- movs r0, 0x40
- negs r0, r0
- cmp r1, r0
- beq _0807706E
- negs r0, r1
- lsls r0, 24
- b _0807706C
-_08077042:
- ldr r0, _08077064 @ =gUnknown_0202F7C9
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08077068
- lsls r0, r4, 24
- asrs r0, 24
- movs r1, 0x40
- negs r1, r1
- cmp r0, r1
- bne _0807706E
- movs r4, 0x3F
- b _0807706E
- .align 2, 0
-_08077064: .4byte gUnknown_0202F7C9
-_08077068:
- lsls r0, r4, 24
- negs r0, r0
-_0807706C:
- lsrs r4, r0, 24
-_0807706E:
- lsls r0, r4, 24
- asrs r0, 24
- cmp r0, 0x3F
- ble _0807707A
- movs r4, 0x3F
- b _08077088
-_0807707A:
- lsls r0, r4, 24
- asrs r0, 24
- movs r1, 0x40
- negs r1, r1
- cmp r0, r1
- bge _08077088
- movs r4, 0xC0
-_08077088:
- lsls r0, r4, 24
- asrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8076F98
-
- thumb_func_start sub_8077094
-sub_8077094: @ 8077094
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _080770D8
- ldr r0, _080770D0 @ =gUnknown_0202F7C8
- ldrb r2, [r0]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- ldr r1, _080770D4 @ =0x02017810
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080770D8
- adds r0, r2, 0
- bl battle_side_get_owner
- lsls r0, 24
- movs r4, 0xC0
- cmp r0, 0
- beq _080770F6
- movs r4, 0x3F
- b _080770F6
- .align 2, 0
-_080770D0: .4byte gUnknown_0202F7C8
-_080770D4: .4byte 0x02017810
-_080770D8:
- ldr r0, _08077100 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _080770F0
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _080770F6
-_080770F0:
- lsls r0, r4, 24
- negs r0, r0
- lsrs r4, r0, 24
-_080770F6:
- lsls r0, r4, 24
- asrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08077100: .4byte gUnknown_0202F7C8
- thumb_func_end sub_8077094
-
- thumb_func_start sub_8077104
-sub_8077104: @ 8077104
- push {lr}
- lsls r0, 16
- lsrs r1, r0, 16
- asrs r2, r0, 16
- cmp r2, 0x3F
- ble _08077114
- movs r1, 0x3F
- b _0807711E
-_08077114:
- movs r0, 0x40
- negs r0, r0
- cmp r2, r0
- bge _0807711E
- ldr r1, _08077128 @ =0x0000ffc0
-_0807711E:
- lsls r0, r1, 16
- asrs r0, 16
- pop {r1}
- bx r1
- .align 2, 0
-_08077128: .4byte 0x0000ffc0
- thumb_func_end sub_8077104
-
- thumb_func_start sub_807712C
-sub_807712C: @ 807712C
- push {lr}
- lsls r2, 16
- lsrs r2, 16
- adds r3, r2, 0
- lsls r0, 16
- asrs r0, 16
- lsls r1, 16
- asrs r1, 16
- cmp r0, r1
- bge _0807714A
- lsls r0, r2, 16
- asrs r0, 16
- cmp r0, 0
- bge _0807715A
- b _08077158
-_0807714A:
- cmp r0, r1
- ble _08077160
- lsls r0, r3, 16
- asrs r0, 16
- cmp r0, 0
- bge _08077158
- negs r0, r0
-_08077158:
- negs r0, r0
-_0807715A:
- lsls r0, 16
- lsrs r0, 16
- b _08077162
-_08077160:
- movs r0, 0
-_08077162:
- lsls r0, 16
- asrs r0, 16
- pop {r1}
- bx r1
- thumb_func_end sub_807712C
-
- thumb_func_start ma19_08073BC8
-ma19_08073BC8: @ 807716C
- push {r4,r5,lr}
- ldr r5, _080771A0 @ =gUnknown_0202F7A4
- ldr r0, [r5]
- adds r1, r0, 0x1
- str r1, [r5]
- ldrb r4, [r0, 0x1]
- ldrb r0, [r1, 0x1]
- lsls r0, 8
- orrs r4, r0
- movs r0, 0x2
- ldrsb r0, [r1, r0]
- bl sub_8076F98
- adds r1, r0, 0
- lsls r1, 24
- asrs r1, 24
- adds r0, r4, 0
- bl PlaySE12WithPanning
- ldr r0, [r5]
- adds r0, 0x3
- str r0, [r5]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080771A0: .4byte gUnknown_0202F7A4
- thumb_func_end ma19_08073BC8
-
- thumb_func_start ma1A_8073C00
-ma1A_8073C00: @ 80771A4
- push {r4,lr}
- ldr r4, _080771CC @ =gUnknown_0202F7A4
- ldr r1, [r4]
- adds r0, r1, 0x1
- str r0, [r4]
- movs r0, 0x1
- ldrsb r0, [r1, r0]
- bl sub_8076F98
- lsls r0, 24
- asrs r0, 24
- bl SE12PanpotControl
- ldr r0, [r4]
- adds r0, 0x1
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080771CC: .4byte gUnknown_0202F7A4
- thumb_func_end ma1A_8073C00
-
- thumb_func_start ma1B_8073C2C
-ma1B_8073C2C: @ 80771D0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r0, _08077280 @ =gUnknown_0202F7A4
- mov r10, r0
- ldr r0, [r0]
- adds r1, r0, 0x1
- mov r2, r10
- str r1, [r2]
- ldrb r0, [r0, 0x1]
- mov r9, r0
- ldrb r0, [r1, 0x1]
- lsls r0, 8
- mov r2, r9
- orrs r2, r0
- mov r9, r2
- ldrb r4, [r1, 0x3]
- ldrb r6, [r1, 0x4]
- ldrb r7, [r1, 0x5]
- movs r0, 0x2
- ldrsb r0, [r1, r0]
- bl sub_8076F98
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- lsls r4, 24
- asrs r4, 24
- adds r0, r4, 0
- bl sub_8076F98
- mov r8, r0
- lsls r5, 24
- asrs r5, 24
- mov r0, r8
- lsls r0, 24
- asrs r0, 24
- mov r8, r0
- lsls r6, 24
- asrs r6, 24
- adds r0, r5, 0
- mov r1, r8
- adds r2, r6, 0
- bl sub_807712C
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _08077284 @ =c3_08073CEC
- movs r1, 0x1
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08077288 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r5, [r1, 0x8]
- mov r2, r8
- strh r2, [r1, 0xA]
- lsls r4, 24
- asrs r4, 24
- strh r4, [r1, 0xC]
- strh r7, [r1, 0xE]
- strh r5, [r1, 0x10]
- mov r0, r9
- adds r1, r5, 0
- bl PlaySE12WithPanning
- ldr r1, _0807728C @ =gUnknown_0202F7B3
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- mov r1, r10
- ldr r0, [r1]
- adds r0, 0x6
- str r0, [r1]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08077280: .4byte gUnknown_0202F7A4
-_08077284: .4byte c3_08073CEC
-_08077288: .4byte gTasks
-_0807728C: .4byte gUnknown_0202F7B3
- thumb_func_end ma1B_8073C2C
-
- thumb_func_start c3_08073CEC
-c3_08073CEC: @ 8077290
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r7, 0
- ldr r1, _080772D4 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r2, r0, r1
- ldrh r0, [r2, 0x18]
- adds r1, r0, 0x1
- strh r1, [r2, 0x18]
- lsls r0, 16
- asrs r0, 16
- movs r3, 0xE
- ldrsh r1, [r2, r3]
- cmp r0, r1
- blt _08077314
- strh r7, [r2, 0x18]
- ldrh r6, [r2, 0x8]
- ldrh r3, [r2, 0xA]
- movs r4, 0x10
- ldrsh r0, [r2, r4]
- movs r4, 0xC
- ldrsh r1, [r2, r4]
- adds r0, r1
- lsls r0, 16
- lsrs r4, r0, 16
- strh r4, [r2, 0x10]
- cmp r1, 0
- bne _080772D8
- lsls r2, r3, 16
- b _080772FC
- .align 2, 0
-_080772D4: .4byte gTasks
-_080772D8:
- lsls r1, r6, 16
- lsls r0, r3, 16
- asrs r3, r0, 16
- adds r2, r0, 0
- cmp r1, r2
- bge _080772EE
- lsls r0, r4, 16
- asrs r0, 16
- cmp r0, r3
- blt _080772F8
- b _080772FC
-_080772EE:
- lsls r0, r4, 16
- asrs r0, 16
- cmp r0, r3
- bgt _080772F8
- movs r7, 0x1
-_080772F8:
- cmp r7, 0
- beq _0807730C
-_080772FC:
- lsrs r4, r2, 16
- adds r0, r5, 0
- bl DestroyTask
- ldr r1, _0807731C @ =gUnknown_0202F7B3
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
-_0807730C:
- lsls r0, r4, 24
- asrs r0, 24
- bl SE12PanpotControl
-_08077314:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0807731C: .4byte gUnknown_0202F7B3
- thumb_func_end c3_08073CEC
-
- thumb_func_start sub_8077320
-sub_8077320: @ 8077320
- push {r4-r6,lr}
- mov r6, r10
- mov r5, r9
- mov r4, r8
- push {r4-r6}
- ldr r0, _080773A4 @ =gUnknown_0202F7A4
- mov r9, r0
- ldr r0, [r0]
- adds r1, r0, 0x1
- mov r2, r9
- str r1, [r2]
- ldrb r0, [r0, 0x1]
- mov r8, r0
- ldrb r0, [r1, 0x1]
- lsls r0, 8
- mov r2, r8
- orrs r2, r0
- mov r8, r2
- ldrb r4, [r1, 0x2]
- ldrb r5, [r1, 0x3]
- ldrb r6, [r1, 0x4]
- ldrb r1, [r1, 0x5]
- mov r10, r1
- ldr r0, _080773A8 @ =c3_08073CEC
- movs r1, 0x1
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080773AC @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- lsls r4, 24
- asrs r4, 24
- strh r4, [r1, 0x8]
- lsls r5, 24
- asrs r5, 24
- strh r5, [r1, 0xA]
- lsls r6, 24
- asrs r6, 24
- strh r6, [r1, 0xC]
- mov r0, r10
- strh r0, [r1, 0xE]
- strh r4, [r1, 0x10]
- mov r0, r8
- adds r1, r4, 0
- bl PlaySE12WithPanning
- ldr r1, _080773B0 @ =gUnknown_0202F7B3
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- mov r1, r9
- ldr r0, [r1]
- adds r0, 0x6
- str r0, [r1]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080773A4: .4byte gUnknown_0202F7A4
-_080773A8: .4byte c3_08073CEC
-_080773AC: .4byte gTasks
-_080773B0: .4byte gUnknown_0202F7B3
- thumb_func_end sub_8077320
-
- thumb_func_start sub_80773B4
-sub_80773B4: @ 80773B4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r0, _08077464 @ =gUnknown_0202F7A4
- mov r10, r0
- ldr r0, [r0]
- adds r1, r0, 0x1
- mov r2, r10
- str r1, [r2]
- ldrb r0, [r0, 0x1]
- mov r9, r0
- ldrb r0, [r1, 0x1]
- lsls r0, 8
- mov r2, r9
- orrs r2, r0
- mov r9, r2
- ldrb r4, [r1, 0x3]
- ldrb r0, [r1, 0x4]
- mov r8, r0
- ldrb r7, [r1, 0x5]
- movs r0, 0x2
- ldrsb r0, [r1, r0]
- bl sub_8077094
- adds r6, r0, 0
- lsls r6, 24
- lsrs r6, 24
- lsls r4, 24
- asrs r4, 24
- adds r0, r4, 0
- bl sub_8077094
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- mov r1, r8
- lsls r1, 24
- asrs r1, 24
- mov r8, r1
- mov r0, r8
- bl sub_8077094
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _08077468 @ =c3_08073CEC
- movs r1, 0x1
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0807746C @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- lsls r6, 24
- asrs r6, 24
- strh r6, [r1, 0x8]
- lsls r5, 24
- asrs r5, 24
- strh r5, [r1, 0xA]
- lsls r4, 24
- asrs r4, 24
- strh r4, [r1, 0xC]
- strh r7, [r1, 0xE]
- strh r6, [r1, 0x10]
- mov r0, r9
- adds r1, r6, 0
- bl PlaySE12WithPanning
- ldr r1, _08077470 @ =gUnknown_0202F7B3
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- mov r2, r10
- ldr r0, [r2]
- adds r0, 0x6
- str r0, [r2]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08077464: .4byte gUnknown_0202F7A4
-_08077468: .4byte c3_08073CEC
-_0807746C: .4byte gTasks
-_08077470: .4byte gUnknown_0202F7B3
- thumb_func_end sub_80773B4
-
- thumb_func_start ma1C_8073ED0
-ma1C_8073ED0: @ 8077474
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- ldr r6, _080774EC @ =gUnknown_0202F7A4
- ldr r0, [r6]
- adds r1, r0, 0x1
- str r1, [r6]
- ldrb r5, [r0, 0x1]
- ldrb r0, [r1, 0x1]
- lsls r0, 8
- orrs r5, r0
- ldrb r0, [r1, 0x3]
- mov r8, r0
- ldrb r2, [r1, 0x4]
- mov r9, r2
- movs r0, 0x2
- ldrsb r0, [r1, r0]
- bl sub_8076F98
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _080774F0 @ =sub_80774FC
- movs r1, 0x1
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080774F4 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r5, [r1, 0x8]
- lsls r4, 24
- asrs r4, 24
- strh r4, [r1, 0xA]
- mov r2, r8
- strh r2, [r1, 0xC]
- mov r2, r9
- strh r2, [r1, 0xE]
- mov r2, r8
- strh r2, [r1, 0x18]
- ldr r1, [r1]
- bl _call_via_r1
- ldr r1, _080774F8 @ =gUnknown_0202F7B3
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- ldr r0, [r6]
- adds r0, 0x5
- str r0, [r6]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080774EC: .4byte gUnknown_0202F7A4
-_080774F0: .4byte sub_80774FC
-_080774F4: .4byte gTasks
-_080774F8: .4byte gUnknown_0202F7B3
- thumb_func_end ma1C_8073ED0
-
- thumb_func_start sub_80774FC
-sub_80774FC: @ 80774FC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _08077550 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r2, r0, r1
- ldrh r0, [r2, 0x18]
- adds r1, r0, 0x1
- strh r1, [r2, 0x18]
- lsls r0, 16
- asrs r0, 16
- movs r3, 0xC
- ldrsh r1, [r2, r3]
- cmp r0, r1
- blt _0807754A
- movs r0, 0
- strh r0, [r2, 0x18]
- ldrh r0, [r2, 0x8]
- ldrb r1, [r2, 0xA]
- ldrh r4, [r2, 0xE]
- subs r4, 0x1
- strh r4, [r2, 0xE]
- lsls r4, 24
- lsrs r4, 24
- lsls r1, 24
- asrs r1, 24
- bl PlaySE12WithPanning
- cmp r4, 0
- bne _0807754A
- adds r0, r5, 0
- bl DestroyTask
- ldr r1, _08077554 @ =gUnknown_0202F7B3
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
-_0807754A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08077550: .4byte gTasks
-_08077554: .4byte gUnknown_0202F7B3
- thumb_func_end sub_80774FC
-
- thumb_func_start ma1D_08073FB4
-ma1D_08073FB4: @ 8077558
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- ldr r6, _080775BC @ =gUnknown_0202F7A4
- ldr r0, [r6]
- adds r1, r0, 0x1
- str r1, [r6]
- ldrb r5, [r0, 0x1]
- ldrb r0, [r1, 0x1]
- lsls r0, 8
- orrs r5, r0
- ldrb r0, [r1, 0x3]
- mov r8, r0
- movs r0, 0x2
- ldrsb r0, [r1, r0]
- bl sub_8076F98
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _080775C0 @ =sub_80775CC
- movs r1, 0x1
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080775C4 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r5, [r1, 0x8]
- lsls r4, 24
- asrs r4, 24
- strh r4, [r1, 0xA]
- mov r0, r8
- strh r0, [r1, 0xC]
- ldr r1, _080775C8 @ =gUnknown_0202F7B3
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- ldr r0, [r6]
- adds r0, 0x4
- str r0, [r6]
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080775BC: .4byte gUnknown_0202F7A4
-_080775C0: .4byte sub_80775CC
-_080775C4: .4byte gTasks
-_080775C8: .4byte gUnknown_0202F7B3
- thumb_func_end ma1D_08073FB4
-
- thumb_func_start sub_80775CC
-sub_80775CC: @ 80775CC
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _08077608 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r2, r0, r1
- ldrh r0, [r2, 0xC]
- subs r1, r0, 0x1
- strh r1, [r2, 0xC]
- lsls r0, 16
- cmp r0, 0
- bgt _08077600
- ldrh r0, [r2, 0x8]
- movs r1, 0xA
- ldrsb r1, [r2, r1]
- bl PlaySE12WithPanning
- adds r0, r4, 0
- bl DestroyTask
- ldr r1, _0807760C @ =gUnknown_0202F7B3
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
-_08077600:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08077608: .4byte gTasks
-_0807760C: .4byte gUnknown_0202F7B3
- thumb_func_end sub_80775CC
-
- thumb_func_start sub_8077610
-sub_8077610: @ 8077610
- push {r4-r6,lr}
- ldr r4, _08077678 @ =gUnknown_0202F7A4
- ldr r1, [r4]
- adds r3, r1, 0x1
- str r3, [r4]
- ldrb r2, [r1, 0x1]
- ldrb r0, [r3, 0x1]
- lsls r0, 8
- adds r2, r0
- ldrb r0, [r3, 0x2]
- lsls r0, 16
- adds r2, r0
- ldrb r0, [r3, 0x3]
- lsls r0, 24
- adds r6, r2, r0
- adds r0, r1, 0x5
- str r0, [r4]
- ldrb r0, [r1, 0x5]
- adds r1, 0x6
- str r1, [r4]
- cmp r0, 0
- beq _0807765A
- adds r5, r4, 0
- ldr r4, _0807767C @ =gUnknown_03004B00
- adds r3, r0, 0
-_08077642:
- ldr r2, [r5]
- ldrb r1, [r2]
- ldrb r0, [r2, 0x1]
- lsls r0, 8
- orrs r1, r0
- strh r1, [r4]
- adds r2, 0x2
- str r2, [r5]
- adds r4, 0x2
- subs r3, 0x1
- cmp r3, 0
- bne _08077642
-_0807765A:
- adds r0, r6, 0
- movs r1, 0x1
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- bl _call_via_r6
- ldr r1, _08077680 @ =gUnknown_0202F7B3
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08077678: .4byte gUnknown_0202F7A4
-_0807767C: .4byte gUnknown_03004B00
-_08077680: .4byte gUnknown_0202F7B3
- thumb_func_end sub_8077610
-
- thumb_func_start ma20_wait_for_something
-ma20_wait_for_something: @ 8077684
- push {r4,r5,lr}
- ldr r0, _080776BC @ =gUnknown_0202F7B3
- ldrb r5, [r0]
- cmp r5, 0
- bne _080776CC
- bl IsSEPlaying
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- beq _080776E4
- ldr r4, _080776C0 @ =gUnknown_03004AF0
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x5A
- bls _080776D2
- ldr r0, _080776C4 @ =gMPlay_SE1
- bl m4aMPlayStop
- ldr r0, _080776C8 @ =gMPlay_SE2
- bl m4aMPlayStop
- strh r5, [r4]
- b _080776F6
- .align 2, 0
-_080776BC: .4byte gUnknown_0202F7B3
-_080776C0: .4byte gUnknown_03004AF0
-_080776C4: .4byte gMPlay_SE1
-_080776C8: .4byte gMPlay_SE2
-_080776CC:
- ldr r1, _080776DC @ =gUnknown_03004AF0
- movs r0, 0
- strh r0, [r1]
-_080776D2:
- ldr r1, _080776E0 @ =gUnknown_0202F7B0
- movs r0, 0x1
- strb r0, [r1]
- b _080776F6
- .align 2, 0
-_080776DC: .4byte gUnknown_03004AF0
-_080776E0: .4byte gUnknown_0202F7B0
-_080776E4:
- ldr r0, _080776FC @ =gUnknown_03004AF0
- movs r2, 0
- strh r1, [r0]
- ldr r1, _08077700 @ =gUnknown_0202F7A4
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- ldr r0, _08077704 @ =gUnknown_0202F7B0
- strb r2, [r0]
-_080776F6:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080776FC: .4byte gUnknown_03004AF0
-_08077700: .4byte gUnknown_0202F7A4
-_08077704: .4byte gUnknown_0202F7B0
- thumb_func_end ma20_wait_for_something
-
- thumb_func_start ma21_08074164
-ma21_08074164: @ 8077708
- push {r4-r6,lr}
- ldr r5, _08077748 @ =gUnknown_0202F7A4
- ldr r4, [r5]
- adds r3, r4, 0x1
- str r3, [r5]
- ldrb r2, [r4, 0x1]
- ldrb r1, [r3, 0x1]
- ldrb r0, [r3, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldr r0, _0807774C @ =gUnknown_03004B00
- lsls r2, 1
- adds r2, r0
- lsls r1, 16
- asrs r1, 16
- movs r6, 0
- ldrsh r0, [r2, r6]
- cmp r1, r0
- bne _08077750
- ldrb r1, [r3, 0x3]
- ldrb r0, [r3, 0x4]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r3, 0x5]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r3, 0x6]
- lsls r0, 24
- adds r1, r0
- str r1, [r5]
- b _08077756
- .align 2, 0
-_08077748: .4byte gUnknown_0202F7A4
-_0807774C: .4byte gUnknown_03004B00
-_08077750:
- adds r0, r4, 0
- adds r0, 0x8
- str r0, [r5]
-_08077756:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end ma21_08074164
-
- thumb_func_start sub_807775C
-sub_807775C: @ 807775C
- push {r4,lr}
- ldr r4, _0807778C @ =gUnknown_0202F7A4
- ldr r0, [r4]
- adds r0, 0x1
- str r0, [r4]
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _08077790
- ldr r2, [r4]
- ldrb r1, [r2]
- ldrb r0, [r2, 0x1]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0x2]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 24
- adds r1, r0
- str r1, [r4]
- b _08077796
- .align 2, 0
-_0807778C: .4byte gUnknown_0202F7A4
-_08077790:
- ldr r0, [r4]
- adds r0, 0x4
- str r0, [r4]
-_08077796:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_807775C
-
- thumb_func_start sub_807779C
-sub_807779C: @ 807779C
- push {r4,lr}
- ldr r0, _080777B0 @ =gUnknown_0202F7A4
- ldr r1, [r0]
- ldrb r2, [r1, 0x1]
- adds r1, 0x2
- str r1, [r0]
- cmp r2, 0
- beq _080777B8
- ldr r0, _080777B4 @ =gUnknown_0202F7C9
- b _080777BA
- .align 2, 0
-_080777B0: .4byte gUnknown_0202F7A4
-_080777B4: .4byte gUnknown_0202F7C9
-_080777B8:
- ldr r0, _080777FC @ =gUnknown_0202F7C8
-_080777BA:
- ldrb r0, [r0]
- bl battle_get_per_side_status
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _080777F4
- cmp r4, 0
- beq _080777D6
- cmp r4, 0x3
- bne _080777F4
-_080777D6:
- ldr r3, _08077800 @ =REG_BG1CNT
- ldrb r2, [r3]
- movs r1, 0x4
- negs r1, r1
- adds r0, r1, 0
- ands r0, r2
- movs r2, 0x1
- orrs r0, r2
- strb r0, [r3]
- ldr r2, _08077804 @ =REG_BG2CNT
- ldrb r0, [r2]
- ands r1, r0
- movs r0, 0x2
- orrs r1, r0
- strb r1, [r2]
-_080777F4:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080777FC: .4byte gUnknown_0202F7C8
-_08077800: .4byte REG_BG1CNT
-_08077804: .4byte REG_BG2CNT
- thumb_func_end sub_807779C
-
- thumb_func_start sub_8077808
-sub_8077808: @ 8077808
- push {lr}
- ldr r0, _08077840 @ =gUnknown_0202F7A4
- ldr r1, [r0]
- adds r1, 0x1
- str r1, [r0]
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _0807783A
- ldr r3, _08077844 @ =REG_BG1CNT
- ldrb r2, [r3]
- movs r1, 0x4
- negs r1, r1
- adds r0, r1, 0
- ands r0, r2
- movs r2, 0x1
- orrs r0, r2
- strb r0, [r3]
- ldr r2, _08077848 @ =REG_BG2CNT
- ldrb r0, [r2]
- ands r1, r0
- movs r0, 0x2
- orrs r1, r0
- strb r1, [r2]
-_0807783A:
- pop {r0}
- bx r0
- .align 2, 0
-_08077840: .4byte gUnknown_0202F7A4
-_08077844: .4byte REG_BG1CNT
-_08077848: .4byte REG_BG2CNT
- thumb_func_end sub_8077808
-
- thumb_func_start sub_807784C
-sub_807784C: @ 807784C
- push {r4-r7,lr}
- ldr r1, _0807787C @ =gUnknown_0202F7A4
- ldr r0, [r1]
- ldrb r6, [r0, 0x1]
- adds r0, 0x2
- str r0, [r1]
- ldr r7, _08077880 @ =gUnknown_0202F7C8
- ldrb r0, [r7]
- bl battle_side_get_owner
- adds r4, r0, 0
- ldr r5, _08077884 @ =gUnknown_0202F7C9
- ldrb r0, [r5]
- bl battle_side_get_owner
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- beq _080778C2
- cmp r6, 0
- beq _08077888
- ldrb r0, [r5]
- b _0807788A
- .align 2, 0
-_0807787C: .4byte gUnknown_0202F7A4
-_08077880: .4byte gUnknown_0202F7C8
-_08077884: .4byte gUnknown_0202F7C9
-_08077888:
- ldrb r0, [r7]
-_0807788A:
- bl battle_get_per_side_status
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _080778C2
- cmp r4, 0
- beq _080778A4
- cmp r4, 0x3
- bne _080778C2
-_080778A4:
- ldr r3, _080778C8 @ =REG_BG1CNT
- ldrb r2, [r3]
- movs r1, 0x4
- negs r1, r1
- adds r0, r1, 0
- ands r0, r2
- movs r2, 0x1
- orrs r0, r2
- strb r0, [r3]
- ldr r2, _080778CC @ =REG_BG2CNT
- ldrb r0, [r2]
- ands r1, r0
- movs r0, 0x2
- orrs r1, r0
- strb r1, [r2]
-_080778C2:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080778C8: .4byte REG_BG1CNT
-_080778CC: .4byte REG_BG2CNT
- thumb_func_end sub_807784C
-
- thumb_func_start ma2B_make_side_invisible
-ma2B_make_side_invisible: @ 80778D0
- push {r4,lr}
- ldr r4, _08077904 @ =gUnknown_0202F7A4
- ldr r0, [r4]
- ldrb r0, [r0, 0x1]
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0xFF
- beq _080778F8
- ldr r1, _08077908 @ =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
-_080778F8:
- ldr r0, [r4]
- adds r0, 0x2
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08077904: .4byte gUnknown_0202F7A4
-_08077908: .4byte gSprites
- thumb_func_end ma2B_make_side_invisible
-
- thumb_func_start ma2C_make_side_visible
-ma2C_make_side_visible: @ 807790C
- push {r4,lr}
- ldr r4, _08077944 @ =gUnknown_0202F7A4
- ldr r0, [r4]
- ldrb r0, [r0, 0x1]
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0xFF
- beq _08077936
- ldr r1, _08077948 @ =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
-_08077936:
- ldr r0, [r4]
- adds r0, 0x2
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08077944: .4byte gUnknown_0202F7A4
-_08077948: .4byte gSprites
- thumb_func_end ma2C_make_side_visible
-
- thumb_func_start sub_807794C
-sub_807794C: @ 807794C
- push {r4-r7,lr}
- ldr r1, _08077998 @ =gUnknown_0202F7A4
- ldr r0, [r1]
- ldrb r7, [r0, 0x1]
- adds r0, 0x2
- str r0, [r1]
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _080779F6
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- beq _080779F6
- ldr r6, _0807799C @ =gUnknown_0202F7C8
- ldrb r0, [r6]
- bl battle_side_get_owner
- adds r4, r0, 0
- ldr r5, _080779A0 @ =gUnknown_0202F7C9
- ldrb r0, [r5]
- bl battle_side_get_owner
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- bne _080779F6
- cmp r7, 0
- bne _080779A4
- ldrb r0, [r6]
- bl battle_get_per_side_status_permutated
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0
- b _080779B0
- .align 2, 0
-_08077998: .4byte gUnknown_0202F7A4
-_0807799C: .4byte gUnknown_0202F7C8
-_080779A0: .4byte gUnknown_0202F7C9
-_080779A4:
- ldrb r0, [r5]
- bl battle_get_per_side_status_permutated
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0x1
-_080779B0:
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0xFF
- beq _080779F6
- ldr r1, _080779EC @ =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r2, r0, r1
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r1, [r3]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r3]
- cmp r4, 0x2
- bne _080779E0
- ldrb r0, [r2, 0x5]
- movs r1, 0xC
- orrs r0, r1
- strb r0, [r2, 0x5]
-_080779E0:
- cmp r4, 0x1
- bne _080779F0
- movs r0, 0
- bl sub_8076464
- b _080779F6
- .align 2, 0
-_080779EC: .4byte gSprites
-_080779F0:
- movs r0, 0x1
- bl sub_8076464
-_080779F6:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_807794C
-
- thumb_func_start sub_80779FC
-sub_80779FC: @ 80779FC
- push {r4-r7,lr}
- ldr r1, _08077A48 @ =gUnknown_0202F7A4
- ldr r0, [r1]
- ldrb r7, [r0, 0x1]
- adds r0, 0x2
- str r0, [r1]
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _08077A88
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- beq _08077A88
- ldr r6, _08077A4C @ =gUnknown_0202F7C8
- ldrb r0, [r6]
- bl battle_side_get_owner
- adds r4, r0, 0
- ldr r5, _08077A50 @ =gUnknown_0202F7C9
- ldrb r0, [r5]
- bl battle_side_get_owner
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- bne _08077A88
- cmp r7, 0
- bne _08077A54
- ldrb r0, [r6]
- bl battle_get_per_side_status_permutated
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0
- b _08077A60
- .align 2, 0
-_08077A48: .4byte gUnknown_0202F7A4
-_08077A4C: .4byte gUnknown_0202F7C8
-_08077A50: .4byte gUnknown_0202F7C9
-_08077A54:
- ldrb r0, [r5]
- bl battle_get_per_side_status_permutated
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0x1
-_08077A60:
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0xFF
- beq _08077A88
- cmp r4, 0x2
- bne _08077A88
- ldr r1, _08077A90 @ =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r2, [r0, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r2
- movs r2, 0x8
- orrs r1, r2
- strb r1, [r0, 0x5]
-_08077A88:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08077A90: .4byte gSprites
- thumb_func_end sub_80779FC
-
- thumb_func_start ma2F_stop_music
-ma2F_stop_music: @ 8077A94
- push {lr}
- ldr r0, _08077AB0 @ =gMPlay_SE1
- bl m4aMPlayStop
- ldr r0, _08077AB4 @ =gMPlay_SE2
- bl m4aMPlayStop
- ldr r1, _08077AB8 @ =gUnknown_0202F7A4
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08077AB0: .4byte gMPlay_SE1
-_08077AB4: .4byte gMPlay_SE2
-_08077AB8: .4byte gUnknown_0202F7A4
- thumb_func_end ma2F_stop_music
-
thumb_func_start sub_8077ABC
sub_8077ABC: @ 8077ABC
push {r4,r5,lr}
@@ -4765,7 +45,7 @@ _08077B00:
bl battle_get_per_side_status
lsls r0, 24
lsrs r0, 22
- ldr r1, _08077B24 @ =gUnknown_020239F8
+ ldr r1, _08077B24 @ =gBattleTypeFlags
ldrh r2, [r1]
movs r1, 0x1
ands r1, r2
@@ -4776,14 +56,14 @@ _08077B00:
b _08077BF4
.align 2, 0
_08077B20: .4byte gUnknown_0837F578
-_08077B24: .4byte gUnknown_020239F8
+_08077B24: .4byte gBattleTypeFlags
_08077B28:
ldr r4, _08077B48 @ =gUnknown_0837F578
adds r0, r5, 0
bl battle_get_per_side_status
lsls r0, 24
lsrs r0, 22
- ldr r1, _08077B4C @ =gUnknown_020239F8
+ ldr r1, _08077B4C @ =gBattleTypeFlags
ldrh r2, [r1]
movs r1, 0x1
ands r1, r2
@@ -4794,7 +74,7 @@ _08077B28:
b _08077BF4
.align 2, 0
_08077B48: .4byte gUnknown_0837F578
-_08077B4C: .4byte gUnknown_020239F8
+_08077B4C: .4byte gBattleTypeFlags
_08077B50:
bl sub_8076BE0
lsls r0, 24
@@ -5226,7 +506,7 @@ _08077E94:
ldr r3, _08077EDC @ =gUnknown_0837F578
lsls r0, 24
lsrs r0, 22
- ldr r1, _08077EE0 @ =gUnknown_020239F8
+ ldr r1, _08077EE0 @ =gBattleTypeFlags
ldrh r2, [r1]
movs r1, 0x1
ands r1, r2
@@ -5259,7 +539,7 @@ _08077ED4:
bx r1
.align 2, 0
_08077EDC: .4byte gUnknown_0837F578
-_08077EE0: .4byte gUnknown_020239F8
+_08077EE0: .4byte gBattleTypeFlags
thumb_func_end sub_8077E44
thumb_func_start sub_8077EE4
@@ -5986,7 +1266,7 @@ _08078400:
bl sub_8078104
_08078406:
adds r0, r4, 0
- bl sub_809D638
+ bl UpdateMonIconFrame
pop {r4}
pop {r0}
bx r0
@@ -6480,7 +1760,7 @@ sub_8078764: @ 8078764
lsrs r0, 24
strh r0, [r5, 0x22]
_0807878C:
- ldr r4, _080787AC @ =gUnknown_03004B00
+ ldr r4, _080787AC @ =gBattleAnimArgs
movs r0, 0
ldrsh r1, [r4, r0]
adds r0, r5, 0
@@ -6494,7 +1774,7 @@ _0807878C:
bx r0
.align 2, 0
_080787A8: .4byte gUnknown_0202F7C9
-_080787AC: .4byte gUnknown_03004B00
+_080787AC: .4byte gBattleAnimArgs
thumb_func_end sub_8078764
thumb_func_start sub_80787B0
@@ -6531,7 +1811,7 @@ _080787E8:
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x22]
- ldr r4, _08078810 @ =gUnknown_03004B00
+ ldr r4, _08078810 @ =gBattleAnimArgs
movs r0, 0
ldrsh r1, [r4, r0]
adds r0, r5, 0
@@ -6545,7 +1825,7 @@ _080787E8:
bx r0
.align 2, 0
_0807880C: .4byte gUnknown_0202F7C8
-_08078810: .4byte gUnknown_03004B00
+_08078810: .4byte gBattleAnimArgs
thumb_func_end sub_80787B0
thumb_func_start battle_side_get_owner
@@ -6681,16 +1961,16 @@ _080788FE:
bx r1
thumb_func_end sub_8078874
- thumb_func_start battle_type_is_double
-battle_type_is_double: @ 8078904
- ldr r0, _08078910 @ =gUnknown_020239F8
+ thumb_func_start IsDoubleBattle
+IsDoubleBattle: @ 8078904
+ ldr r0, _08078910 @ =gBattleTypeFlags
ldrb r1, [r0]
movs r0, 0x1
ands r0, r1
bx lr
.align 2, 0
-_08078910: .4byte gUnknown_020239F8
- thumb_func_end battle_type_is_double
+_08078910: .4byte gBattleTypeFlags
+ thumb_func_end IsDoubleBattle
thumb_func_start sub_8078914
sub_8078914: @ 8078914
@@ -8149,7 +3429,7 @@ sub_80793C4: @ 80793C4
ldrsh r0, [r4, r1]
cmp r0, 0
bne _08079402
- ldr r2, _080793F0 @ =gUnknown_03004B00
+ ldr r2, _080793F0 @ =gBattleAnimArgs
movs r3, 0x6
ldrsh r0, [r2, r3]
movs r1, 0
@@ -8165,7 +3445,7 @@ _080793DE:
bl sub_80787B0
b _080793FA
.align 2, 0
-_080793F0: .4byte gUnknown_03004B00
+_080793F0: .4byte gBattleAnimArgs
_080793F4:
adds r0, r4, 0
bl sub_8078764
@@ -8194,7 +3474,7 @@ _08079416:
sub_807941C: @ 807941C
push {r4-r7,lr}
adds r5, r0, 0
- ldr r6, _08079494 @ =gUnknown_03004B00
+ ldr r6, _08079494 @ =gBattleAnimArgs
movs r1, 0xA
ldrsh r0, [r6, r1]
movs r1, 0xFF
@@ -8251,7 +3531,7 @@ _08079458:
pop {r0}
bx r0
.align 2, 0
-_08079494: .4byte gUnknown_03004B00
+_08079494: .4byte gBattleAnimArgs
_08079498: .4byte gUnknown_0202F7C8
_0807949C: .4byte gUnknown_0202F7C9
_080794A0: .4byte sub_8078B34
@@ -8270,12 +3550,12 @@ sub_80794A8: @ 80794A8
lsls r0, 24
cmp r0, 0
beq _080794C8
- ldr r1, _0807950C @ =gUnknown_03004B00
+ ldr r1, _0807950C @ =gBattleAnimArgs
ldrh r0, [r1, 0x4]
negs r0, r0
strh r0, [r1, 0x4]
_080794C8:
- ldr r4, _0807950C @ =gUnknown_03004B00
+ ldr r4, _0807950C @ =gBattleAnimArgs
ldrh r0, [r4, 0x8]
strh r0, [r6, 0x2E]
ldr r5, _08079510 @ =gUnknown_0202F7C9
@@ -8306,7 +3586,7 @@ _080794C8:
bx r0
.align 2, 0
_08079508: .4byte gUnknown_0202F7C8
-_0807950C: .4byte gUnknown_03004B00
+_0807950C: .4byte gBattleAnimArgs
_08079510: .4byte gUnknown_0202F7C9
_08079514: .4byte sub_8079518
thumb_func_end sub_80794A8
@@ -8331,7 +3611,7 @@ _0807952C:
sub_8079534: @ 8079534
push {r4-r7,lr}
adds r5, r0, 0
- ldr r0, _08079548 @ =gUnknown_03004B00
+ ldr r0, _08079548 @ =gBattleAnimArgs
movs r2, 0xC
ldrsh r1, [r0, r2]
cmp r1, 0
@@ -8340,7 +3620,7 @@ sub_8079534: @ 8079534
movs r7, 0x3
b _08079550
.align 2, 0
-_08079548: .4byte gUnknown_03004B00
+_08079548: .4byte gBattleAnimArgs
_0807954C:
movs r4, 0
movs r7, 0x1
@@ -8369,7 +3649,7 @@ _08079572:
lsls r0, 24
cmp r0, 0
beq _0807958A
- ldr r1, _080795D8 @ =gUnknown_03004B00
+ ldr r1, _080795D8 @ =gBattleAnimArgs
ldrh r0, [r1, 0x4]
negs r0, r0
strh r0, [r1, 0x4]
@@ -8377,7 +3657,7 @@ _0807958A:
adds r0, r5, 0
adds r1, r4, 0
bl sub_8078764
- ldr r4, _080795D8 @ =gUnknown_03004B00
+ ldr r4, _080795D8 @ =gBattleAnimArgs
ldrh r0, [r4, 0x8]
strh r0, [r5, 0x2E]
adds r0, r6, 0
@@ -8407,7 +3687,7 @@ _0807958A:
.align 2, 0
_080795D0: .4byte gUnknown_0202F7C9
_080795D4: .4byte gUnknown_0202F7C8
-_080795D8: .4byte gUnknown_03004B00
+_080795D8: .4byte gBattleAnimArgs
_080795DC: .4byte sub_8078B34
_080795E0: .4byte move_anim_8072740
thumb_func_end sub_8079534
@@ -8496,7 +3776,7 @@ sub_8079670: @ 8079670
lsrs r2, r0, 24
movs r5, 0
movs r3, 0
- ldr r4, _080796E4 @ =gUnknown_03004B00
+ ldr r4, _080796E4 @ =gBattleAnimArgs
movs r0, 0x4
ldrsh r1, [r4, r0]
movs r6, 0
@@ -8553,7 +3833,7 @@ _080796A4:
pop {r0}
bx r0
.align 2, 0
-_080796E4: .4byte gUnknown_03004B00
+_080796E4: .4byte gBattleAnimArgs
_080796E8: .4byte 0x0000ffff
_080796EC: .4byte gTasks
_080796F0: .4byte REG_BLDALPHA
@@ -8646,7 +3926,7 @@ sub_8079790: @ 8079790
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
- ldr r0, _080797B0 @ =gUnknown_03004B00
+ ldr r0, _080797B0 @ =gBattleAnimArgs
ldrb r0, [r0]
bl obj_id_for_side_relative_to_move
lsls r0, 24
@@ -8657,7 +3937,7 @@ sub_8079790: @ 8079790
bl move_anim_task_del
b _080797DA
.align 2, 0
-_080797B0: .4byte gUnknown_03004B00
+_080797B0: .4byte gBattleAnimArgs
_080797B4:
ldr r1, _080797E0 @ =gTasks
lsls r0, r4, 2
@@ -8689,7 +3969,7 @@ _080797E8: .4byte 0x00000101
thumb_func_start sub_80797EC
sub_80797EC: @ 80797EC
- ldr r3, _0807980C @ =gUnknown_03004B00
+ ldr r3, _0807980C @ =gBattleAnimArgs
ldrh r1, [r3, 0x2]
movs r2, 0
strh r1, [r0, 0xA]
@@ -8706,7 +3986,7 @@ sub_80797EC: @ 80797EC
str r1, [r0]
bx lr
.align 2, 0
-_0807980C: .4byte gUnknown_03004B00
+_0807980C: .4byte gBattleAnimArgs
_08079810: .4byte sub_8079814
thumb_func_end sub_80797EC
@@ -8793,7 +4073,7 @@ sub_80798AC: @ 80798AC
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
- ldr r0, _080798CC @ =gUnknown_03004B00
+ ldr r0, _080798CC @ =gBattleAnimArgs
ldrh r0, [r0]
bl IndexOfSpritePaletteTag
lsls r0, 24
@@ -8804,7 +4084,7 @@ sub_80798AC: @ 80798AC
bl move_anim_task_del
b _080798E6
.align 2, 0
-_080798CC: .4byte gUnknown_03004B00
+_080798CC: .4byte gBattleAnimArgs
_080798D0:
ldr r1, _080798EC @ =gTasks
lsls r0, r4, 2
@@ -9381,7 +4661,7 @@ sub_8079CEC: @ 8079CEC
bhi _08079D0A
movs r1, 0x2
_08079D0A:
- ldr r0, _08079D1C @ =gUnknown_03004B00
+ ldr r0, _08079D1C @ =gBattleAnimArgs
strh r1, [r0, 0xE]
adds r0, r2, 0
bl move_anim_task_del
@@ -9389,7 +4669,7 @@ _08079D0A:
bx r0
.align 2, 0
_08079D18: .4byte gUnknown_0202F7BE
-_08079D1C: .4byte gUnknown_03004B00
+_08079D1C: .4byte gBattleAnimArgs
thumb_func_end sub_8079CEC
thumb_func_start unref_sub_8079D20
@@ -9756,7 +5036,7 @@ sub_8079F44: @ 8079F44
str r4, [sp, 0x8]
movs r4, 0x1
str r4, [sp, 0xC]
- bl sub_800D378
+ bl LoadSpecialPokePic
b _0807A02E
.align 2, 0
_08079FE0: .4byte gUnknown_0837F5E0
@@ -9791,7 +5071,7 @@ _08079FF0:
str r4, [sp, 0x8]
movs r4, 0
str r4, [sp, 0xC]
- bl sub_800D378
+ bl LoadSpecialPokePic
_0807A02E:
movs r2, 0x80
lsls r2, 18
@@ -10314,7 +5594,7 @@ _0807A41E:
bl sub_8077ABC
lsls r0, 24
lsrs r7, r0, 24
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _0807A470
@@ -10377,7 +5657,7 @@ sub_807A4A0: @ 807A4A0
lsrs r6, 24
ldr r0, _0807A538 @ =SpriteCallbackDummy
mov r10, r0
- bl object_new_hidden_with_callback
+ bl CreateInvisibleSpriteWithCallback
mov r8, r0
mov r0, r8
lsls r0, 24
@@ -10457,7 +5737,7 @@ sub_807A544: @ 807A544
lsls r0, 24
cmp r0, 0
beq _0807A584
- ldr r2, _0807A580 @ =gUnknown_03004B00
+ ldr r2, _0807A580 @ =gBattleAnimArgs
ldrh r0, [r4, 0x20]
ldrh r1, [r2]
subs r0, r1
@@ -10475,9 +5755,9 @@ sub_807A544: @ 807A544
b _0807A58E
.align 2, 0
_0807A57C: .4byte gUnknown_0202F7C8
-_0807A580: .4byte gUnknown_03004B00
+_0807A580: .4byte gBattleAnimArgs
_0807A584:
- ldr r1, _0807A5B8 @ =gUnknown_03004B00
+ ldr r1, _0807A5B8 @ =gBattleAnimArgs
ldrh r0, [r1]
ldrh r2, [r4, 0x20]
adds r0, r2
@@ -10504,7 +5784,7 @@ _0807A58E:
pop {r0}
bx r0
.align 2, 0
-_0807A5B8: .4byte gUnknown_03004B00
+_0807A5B8: .4byte gBattleAnimArgs
_0807A5BC: .4byte move_anim_8074EE0
_0807A5C0: .4byte sub_8078504
thumb_func_end sub_807A544
@@ -10519,7 +5799,7 @@ sub_807A5C4: @ 807A5C4
lsls r0, 24
cmp r0, 0
beq _0807A5F4
- ldr r2, _0807A5F0 @ =gUnknown_03004B00
+ ldr r2, _0807A5F0 @ =gBattleAnimArgs
ldrh r0, [r4, 0x20]
ldrh r1, [r2]
subs r0, r1
@@ -10532,9 +5812,9 @@ sub_807A5C4: @ 807A5C4
b _0807A5FE
.align 2, 0
_0807A5EC: .4byte gUnknown_0202F7C8
-_0807A5F0: .4byte gUnknown_03004B00
+_0807A5F0: .4byte gBattleAnimArgs
_0807A5F4:
- ldr r1, _0807A630 @ =gUnknown_03004B00
+ ldr r1, _0807A630 @ =gBattleAnimArgs
ldrh r0, [r1]
ldrh r2, [r4, 0x20]
adds r0, r2
@@ -10564,7 +5844,7 @@ _0807A5FE:
pop {r0}
bx r0
.align 2, 0
-_0807A630: .4byte gUnknown_03004B00
+_0807A630: .4byte gBattleAnimArgs
_0807A634: .4byte move_anim_8074EE0
_0807A638: .4byte sub_8078504
thumb_func_end sub_807A5C4
@@ -10580,7 +5860,7 @@ sub_807A63C: @ 807A63C
lsls r0, 24
cmp r0, 0
beq _0807A668
- ldr r0, _0807A664 @ =gUnknown_03004B00
+ ldr r0, _0807A664 @ =gBattleAnimArgs
ldrh r1, [r4, 0x20]
ldrh r2, [r0]
subs r1, r2
@@ -10588,9 +5868,9 @@ sub_807A63C: @ 807A63C
b _0807A674
.align 2, 0
_0807A660: .4byte gUnknown_0202F7C8
-_0807A664: .4byte gUnknown_03004B00
+_0807A664: .4byte gBattleAnimArgs
_0807A668:
- ldr r1, _0807A690 @ =gUnknown_03004B00
+ ldr r1, _0807A690 @ =gBattleAnimArgs
ldrh r0, [r1]
ldrh r2, [r4, 0x20]
adds r0, r2
@@ -10610,7 +5890,7 @@ _0807A674:
pop {r0}
bx r0
.align 2, 0
-_0807A690: .4byte gUnknown_03004B00
+_0807A690: .4byte gBattleAnimArgs
_0807A694: .4byte sub_8078600
_0807A698: .4byte move_anim_8072740
thumb_func_end sub_807A63C
@@ -10706,7 +5986,7 @@ _0807A742:
adds r1, r2
ldr r2, _0807A778 @ =REG_BG0CNT
bl CpuSet
- ldr r0, _0807A77C @ =gUnknown_03004B00
+ ldr r0, _0807A77C @ =gBattleAnimArgs
ldrb r2, [r0, 0x2]
ldrh r3, [r0]
adds r0, r6, 0
@@ -10721,7 +6001,7 @@ _0807A742:
_0807A770: .4byte gPlttBufferUnfaded
_0807A774: .4byte gPlttBufferFaded
_0807A778: .4byte REG_BG0CNT
-_0807A77C: .4byte gUnknown_03004B00
+_0807A77C: .4byte gBattleAnimArgs
_0807A780: .4byte sub_807A784
thumb_func_end sub_807A69C
@@ -11021,7 +6301,7 @@ _0807A9B4:
sub_807A9BC: @ 807A9BC
push {r4,r5,lr}
adds r4, r0, 0
- ldr r5, _0807A9F4 @ =gUnknown_03004B00
+ ldr r5, _0807A9F4 @ =gBattleAnimArgs
ldrh r0, [r5, 0x4]
strh r0, [r4, 0x2E]
ldrh r0, [r5, 0x8]
@@ -11047,7 +6327,7 @@ sub_807A9BC: @ 807A9BC
subs r0, 0x14
b _0807AA0A
.align 2, 0
-_0807A9F4: .4byte gUnknown_03004B00
+_0807A9F4: .4byte gBattleAnimArgs
_0807A9F8: .4byte gUnknown_0202F7C9
_0807A9FC:
ldrh r0, [r5, 0x8]
diff --git a/asm/rom_8080874.s b/asm/rom_8080874.s
index d4a6414fb..77dad9f9e 100644
--- a/asm/rom_8080874.s
+++ b/asm/rom_8080874.s
@@ -6,8 +6,8 @@
.text
- thumb_func_start palette_bg_faded_fill_black
-palette_bg_faded_fill_black: @ 8080874
+ thumb_func_start palette_bg_fill_white
+palette_bg_fill_white: @ 8080874
push {lr}
sub sp, 0x4
ldr r0, _0808088C @ =0x7fff7fff
@@ -23,10 +23,10 @@ palette_bg_faded_fill_black: @ 8080874
_0808088C: .4byte 0x7fff7fff
_08080890: .4byte gPlttBufferFaded
_08080894: .4byte 0x01000100
- thumb_func_end palette_bg_faded_fill_black
+ thumb_func_end palette_bg_fill_white
- thumb_func_start palette_bg_faded_fill_white
-palette_bg_faded_fill_white: @ 8080898
+ thumb_func_start palette_bg_fill_black
+palette_bg_fill_black: @ 8080898
push {lr}
sub sp, 0x4
movs r0, 0
@@ -41,10 +41,10 @@ palette_bg_faded_fill_white: @ 8080898
.align 2, 0
_080808B0: .4byte gPlttBufferFaded
_080808B4: .4byte 0x01000100
- thumb_func_end palette_bg_faded_fill_white
+ thumb_func_end palette_bg_fill_black
- thumb_func_start pal_fill_for_maplights
-pal_fill_for_maplights: @ 80808B8
+ thumb_func_start pal_fill_for_map_transition
+pal_fill_for_map_transition: @ 80808B8
push {r4,lr}
bl get_map_light_from_warp0
adds r4, r0, 0
@@ -67,18 +67,18 @@ _080808E2:
movs r0, 0
movs r1, 0
bl fade_screen
- bl palette_bg_faded_fill_white
+ bl palette_bg_fill_black
b _080808FC
_080808F0:
movs r0, 0x2
movs r1, 0
bl fade_screen
- bl palette_bg_faded_fill_black
+ bl palette_bg_fill_white
_080808FC:
pop {r4}
pop {r0}
bx r0
- thumb_func_end pal_fill_for_maplights
+ thumb_func_end pal_fill_for_map_transition
thumb_func_start pal_fill_black
pal_fill_black: @ 8080904
@@ -86,13 +86,13 @@ pal_fill_black: @ 8080904
movs r0, 0
movs r1, 0
bl fade_screen
- bl palette_bg_faded_fill_white
+ bl palette_bg_fill_black
pop {r0}
bx r0
thumb_func_end pal_fill_black
- thumb_func_start sub_8080918
-sub_8080918: @ 8080918
+ thumb_func_start fade_8080918
+fade_8080918: @ 8080918
push {r4,lr}
bl sav1_map_get_light_level
adds r4, r0, 0
@@ -122,7 +122,7 @@ _08080950:
pop {r4}
pop {r0}
bx r0
- thumb_func_end sub_8080918
+ thumb_func_end fade_8080918
thumb_func_start sub_8080958
sub_8080958: @ 8080958
@@ -226,7 +226,7 @@ _08080A06:
ldrb r0, [r1, 0x4]
cmp r0, 0x1
beq _08080A36
- bl pal_fill_for_maplights
+ bl pal_fill_for_map_transition
_08080A1C:
ldrh r0, [r4, 0x8]
adds r0, 0x1
@@ -250,7 +250,7 @@ sub_8080A3C: @ 8080A3C
push {lr}
bl ScriptContext2_Enable
bl sub_8053E90
- bl palette_bg_faded_fill_white
+ bl palette_bg_fill_black
ldr r0, _08080A58 @ =task_mpl_807DD60
movs r1, 0xA
bl CreateTask
@@ -293,7 +293,7 @@ _08080A90:
lsls r0, 24
cmp r0, 0
beq _08080ABC
- bl pal_fill_for_maplights
+ bl pal_fill_for_map_transition
_08080A9E:
ldrh r0, [r4, 0x8]
adds r0, 0x1
@@ -318,7 +318,7 @@ sub_8080AC4: @ 8080AC4
push {lr}
bl ScriptContext2_Enable
bl sub_8053E90
- bl palette_bg_faded_fill_white
+ bl palette_bg_fill_black
ldr r0, _08080AE0 @ =sub_8080A5C
movs r1, 0xA
bl CreateTask
@@ -357,7 +357,7 @@ sub_8080AE4: @ 8080AE4
_08080B18: .4byte sub_8080B9C
_08080B1C:
adds r0, r4, 0
- bl sub_8056F08
+ bl MetatileBehavior_IsNonAnimDoor
lsls r0, 24
lsrs r0, 24
ldr r1, _08080B40 @ =task_map_chg_seq_0807E2CC
@@ -381,7 +381,7 @@ _08080B44: .4byte task_map_chg_seq_0807E20C
mapldr_default: @ 8080B48
push {lr}
bl sub_8053E90
- bl pal_fill_for_maplights
+ bl pal_fill_for_map_transition
bl sub_8080AE4
bl ScriptContext2_Enable
pop {r0}
@@ -403,7 +403,7 @@ sub_8080B60: @ 8080B60
sub_8080B78: @ 8080B78
push {lr}
bl sub_8053E90
- bl pal_fill_for_maplights
+ bl pal_fill_for_map_transition
movs r0, 0x2E
bl PlaySE
ldr r0, _08080B98 @ =task_map_chg_seq_0807E2CC
@@ -453,7 +453,7 @@ _08080BD0:
_08080BE4:
movs r0, 0
bl sub_8080958
- bl player_bitmagic
+ bl FreezeMapObjects
adds r0, r6, 0
adds r1, r7, 0
bl PlayerGetDestCoords
@@ -534,7 +534,7 @@ _08080C84:
cmp r0, 0x1
beq _08080CAE
_08080C9A:
- bl sub_806451C
+ bl UnfreezeMapObjects
movs r0, 0x4
strh r0, [r5, 0x8]
b _08080CAE
@@ -582,7 +582,7 @@ _08080CE4:
_08080CEE:
movs r0, 0
bl sub_8080958
- bl player_bitmagic
+ bl FreezeMapObjects
adds r0, r6, 0
adds r1, r7, 0
bl PlayerGetDestCoords
@@ -625,7 +625,7 @@ _08080D50:
lsls r0, 24
cmp r0, 0
beq _08080D6E
- bl sub_806451C
+ bl UnfreezeMapObjects
movs r0, 0x3
strh r0, [r5, 0x8]
b _08080D6E
@@ -659,7 +659,7 @@ task_map_chg_seq_0807E2CC: @ 8080D74
.align 2, 0
_08080D94: .4byte gTasks
_08080D98:
- bl player_bitmagic
+ bl FreezeMapObjects
bl ScriptContext2_Enable
ldrh r0, [r4, 0x8]
adds r0, 0x1
@@ -669,7 +669,7 @@ _08080DA8:
bl sub_8080E70
cmp r0, 0
beq _08080DBE
- bl sub_806451C
+ bl UnfreezeMapObjects
bl ScriptContext2_Disable
adds r0, r5, 0
bl DestroyTask
@@ -792,7 +792,7 @@ sub_8080E88: @ 8080E88
push {lr}
bl ScriptContext2_Enable
bl sub_8053FF8
- bl sub_8080918
+ bl fade_8080918
bl PlayRainSoundEffect
movs r0, 0x9
bl PlaySE
@@ -815,7 +815,7 @@ sp13E_warp_to_last_warp: @ 8080EC0
push {lr}
bl ScriptContext2_Enable
bl sub_8053FF8
- bl sub_8080918
+ bl fade_8080918
bl PlayRainSoundEffect
ldr r0, _08080EE4 @ =gUnknown_0300485C
ldr r1, _08080EE8 @ =mapldr_default
@@ -903,7 +903,7 @@ sub_8080F68: @ 8080F68
push {lr}
bl ScriptContext2_Enable
bl sub_8053FF8
- bl sub_8080918
+ bl fade_8080918
movs r0, 0x2D
bl PlaySE
ldr r0, _08080F90 @ =task0A_fade_n_map_maybe
@@ -924,7 +924,7 @@ _08080F98: .4byte sub_8080B78
sub_8080F9C: @ 8080F9C
push {lr}
bl ScriptContext2_Enable
- bl sub_8080918
+ bl fade_8080918
ldr r0, _08080FB8 @ =task0A_fade_n_map_maybe
movs r1, 0xA
bl CreateTask
@@ -999,7 +999,7 @@ sub_808102C: @ 808102C
push {lr}
bl ScriptContext2_Enable
bl sub_8053FF8
- bl sub_8080918
+ bl fade_8080918
movs r0, 0x9
bl PlaySE
ldr r0, _0808104C @ =sub_8080FC4
@@ -1116,7 +1116,7 @@ _08081118:
beq _08081142
b _08081152
_0808111E:
- bl player_bitmagic
+ bl FreezeMapObjects
bl ScriptContext2_Enable
b _0808113A
_08081128:
@@ -1183,7 +1183,7 @@ _08081194:
.4byte _0808128C
.4byte _080812A8
_080811A8:
- bl player_bitmagic
+ bl FreezeMapObjects
adds r0, r4, 0
adds r1, r6, 0
bl PlayerGetDestCoords
@@ -1304,7 +1304,7 @@ _080812A2:
b _080812BC
_080812A8:
bl sub_8053FF8
- bl sub_8080918
+ bl fade_8080918
bl PlayRainSoundEffect
movs r0, 0
strh r0, [r5, 0x8]
@@ -1344,7 +1344,7 @@ _080812F0:
beq _0808131A
b _0808132A
_080812F6:
- bl player_bitmagic
+ bl FreezeMapObjects
bl ScriptContext2_Enable
b _08081312
_08081300:
@@ -1379,7 +1379,7 @@ sub_8081334: @ 8081334
push {lr}
bl ScriptContext2_Enable
bl sub_8053FF8
- bl sub_8080918
+ bl fade_8080918
bl PlayRainSoundEffect
movs r0, 0x9
bl PlaySE
diff --git a/asm/rom_8094928.s b/asm/rom_8094928.s
index 231f13e9c..d272b277a 100644
--- a/asm/rom_8094928.s
+++ b/asm/rom_8094928.s
@@ -76,7 +76,7 @@ sub_8094998: @ 8094998
adds r6, r0, 0
lsls r1, 24
lsrs r4, r1, 24
- bl sub_806B528
+ bl IsLinkDoubleBattle
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -99,7 +99,7 @@ _080949C0:
strb r0, [r6, 0x2]
b _08094A68
_080949CE:
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
bne _08094A0C
@@ -218,7 +218,7 @@ _08094AA8:
bl battle_get_side_with_given_state
lsls r0, 24
lsrs r6, r0, 24
- bl sub_806B528
+ bl IsLinkDoubleBattle
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -241,7 +241,7 @@ _08094ACE:
strb r0, [r5, 0x2]
b _08094B5E
_08094ADC:
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
bne _08094B14
@@ -331,7 +331,7 @@ sub_8094B6C: @ 8094B6C
lsls r2, 24
lsrs r6, r2, 24
movs r7, 0
- bl sub_806B528
+ bl IsLinkDoubleBattle
lsls r0, 24
cmp r0, 0
beq _08094C16
@@ -722,28738 +722,4 @@ sub_8094E4C: @ 8094E4C
bx r0
thumb_func_end sub_8094E4C
- thumb_func_start sub_8094E58
-sub_8094E58: @ 8094E58
- push {r4,r5,lr}
- ldr r1, _08094E78 @ =0x0201b000
- movs r2, 0x99
- lsls r2, 2
- adds r0, r1, r2
- movs r3, 0
- ldrsh r0, [r0, r3]
- adds r4, r1, 0
- cmp r0, 0xA
- bls _08094E6E
- b _08095048
-_08094E6E:
- lsls r0, 2
- ldr r1, _08094E7C @ =_08094E80
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08094E78: .4byte 0x0201b000
-_08094E7C: .4byte _08094E80
- .align 2, 0
-_08094E80:
- .4byte _08094EAC
- .4byte _08094F28
- .4byte _08094F3C
- .4byte _08094F4A
- .4byte _08094F6C
- .4byte _08094F80
- .4byte _08094F94
- .4byte _08094FA8
- .4byte _08094FBC
- .4byte _08094FD0
- .4byte _08095000
-_08094EAC:
- bl sub_806B528
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08094EDC
- ldr r1, _08094ED4 @ =0x0201b000
- ldr r0, _08094ED8 @ =0x00000266
- adds r4, r1, r0
- ldrh r2, [r4]
- movs r3, 0
- ldrsh r0, [r4, r3]
- cmp r0, 0x6
- bne _08094EEC
- movs r0, 0
- strh r0, [r4]
- movs r3, 0x99
- lsls r3, 2
- adds r1, r3
- b _08094FEC
- .align 2, 0
-_08094ED4: .4byte 0x0201b000
-_08094ED8: .4byte 0x00000266
-_08094EDC:
- ldr r1, _08094F10 @ =0x0201b000
- ldr r0, _08094F14 @ =0x00000266
- adds r4, r1, r0
- ldrh r2, [r4]
- movs r3, 0
- ldrsh r0, [r4, r3]
- cmp r0, 0x5
- bgt _08094F1C
-_08094EEC:
- movs r3, 0x98
- lsls r3, 2
- adds r0, r1, r3
- ldrb r0, [r0]
- lsls r1, r2, 24
- lsrs r1, 24
- movs r2, 0
- ldrsh r3, [r4, r2]
- movs r2, 0x64
- muls r2, r3
- ldr r3, _08094F18 @ =gPlayerParty
- adds r2, r3
- bl sub_806D90C
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
- b _08095048
- .align 2, 0
-_08094F10: .4byte 0x0201b000
-_08094F14: .4byte 0x00000266
-_08094F18: .4byte gPlayerParty
-_08094F1C:
- movs r0, 0
- strh r0, [r4]
- movs r3, 0x99
- lsls r3, 2
- adds r1, r3
- b _08094FEC
-_08094F28:
- bl sub_806DA98
- ldr r1, _08094F38 @ =0x0201b000
- movs r0, 0x99
- lsls r0, 2
- adds r1, r0
- b _08094FEC
- .align 2, 0
-_08094F38: .4byte 0x0201b000
-_08094F3C:
- movs r1, 0x98
- lsls r1, 2
- adds r0, r4, r1
- ldrb r0, [r0]
- bl sub_806DC34
- b _08094FE6
-_08094F4A:
- movs r3, 0x98
- lsls r3, 2
- adds r0, r4, r3
- ldrb r0, [r0]
- ldr r1, _08094F68 @ =0x00000266
- adds r5, r4, r1
- ldrb r1, [r5]
- bl sub_806BD58
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08094FE2
- b _08094FF8
- .align 2, 0
-_08094F68: .4byte 0x00000266
-_08094F6C:
- bl sub_806E334
- ldr r1, _08094F7C @ =0x0201b000
- movs r3, 0x99
- lsls r3, 2
- adds r1, r3
- b _08094FEC
- .align 2, 0
-_08094F7C: .4byte 0x0201b000
-_08094F80:
- bl sub_806E0C4
- ldr r1, _08094F90 @ =0x0201b000
- movs r0, 0x99
- lsls r0, 2
- adds r1, r0
- b _08094FEC
- .align 2, 0
-_08094F90: .4byte 0x0201b000
-_08094F94:
- bl sub_806E53C
- ldr r1, _08094FA4 @ =0x0201b000
- movs r2, 0x99
- lsls r2, 2
- adds r1, r2
- b _08094FEC
- .align 2, 0
-_08094FA4: .4byte 0x0201b000
-_08094FA8:
- bl nullsub_13
- ldr r1, _08094FB8 @ =0x0201b000
- movs r3, 0x99
- lsls r3, 2
- adds r1, r3
- b _08094FEC
- .align 2, 0
-_08094FB8: .4byte 0x0201b000
-_08094FBC:
- bl sub_806E6C8
- ldr r1, _08094FCC @ =0x0201b000
- movs r0, 0x99
- lsls r0, 2
- adds r1, r0
- b _08094FEC
- .align 2, 0
-_08094FCC: .4byte 0x0201b000
-_08094FD0:
- ldr r1, _08094FF4 @ =0x00000266
- adds r5, r4, r1
- ldrb r0, [r5]
- bl sub_806B58C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08094FF8
-_08094FE2:
- movs r0, 0
- strh r0, [r5]
-_08094FE6:
- movs r2, 0x99
- lsls r2, 2
- adds r1, r4, r2
-_08094FEC:
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- b _08095048
- .align 2, 0
-_08094FF4: .4byte 0x00000266
-_08094FF8:
- ldrh r0, [r5]
- adds r0, 0x1
- strh r0, [r5]
- b _08095048
-_08095000:
- ldr r0, _08095024 @ =gUnknown_02038473
- ldrb r4, [r0]
- cmp r4, 0x3
- bne _0809503C
- ldr r0, _08095028 @ =gScriptItemId
- ldrh r0, [r0]
- bl sub_8070E48
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xA
- bne _08095034
- ldr r0, _0809502C @ =0x0201b000
- ldr r3, _08095030 @ =0x00000259
- adds r0, r3
- movs r1, 0xFF
- strb r1, [r0]
- b _0809503C
- .align 2, 0
-_08095024: .4byte gUnknown_02038473
-_08095028: .4byte gScriptItemId
-_0809502C: .4byte 0x0201b000
-_08095030: .4byte 0x00000259
-_08095034:
- ldr r0, _08095040 @ =0x0201b000
- ldr r1, _08095044 @ =0x00000259
- adds r0, r1
- strb r4, [r0]
-_0809503C:
- movs r0, 0x1
- b _0809504A
- .align 2, 0
-_08095040: .4byte 0x0201b000
-_08095044: .4byte 0x00000259
-_08095048:
- movs r0, 0
-_0809504A:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8094E58
-
- thumb_func_start sub_8095050
-sub_8095050: @ 8095050
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 24
- lsrs r1, 24
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0809508C @ =gPlayerParty
- adds r0, r1
- movs r1, 0x2D
- bl GetMonData
- adds r5, r0, 0
- cmp r5, 0
- bne _080950C8
- ldr r0, _08095090 @ =gUnknown_02038473
- ldrb r4, [r0]
- cmp r4, 0x1
- bne _0809509C
- ldr r3, _08095094 @ =gTasks
- ldr r2, _08095098 @ =0x0201b000
- movs r0, 0x98
- lsls r0, 2
- adds r2, r0
- ldrb r1, [r2]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r3
- b _080950DE
- .align 2, 0
-_0809508C: .4byte gPlayerParty
-_08095090: .4byte gUnknown_02038473
-_08095094: .4byte gTasks
-_08095098: .4byte 0x0201b000
-_0809509C:
- ldr r3, _080950C0 @ =gTasks
- ldr r2, _080950C4 @ =0x0201b000
- movs r0, 0x98
- lsls r0, 2
- adds r2, r0
- ldrb r1, [r2]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r3
- strh r5, [r0, 0x10]
- ldrb r1, [r2]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r3
- strh r5, [r0, 0x12]
- b _080950EC
- .align 2, 0
-_080950C0: .4byte gTasks
-_080950C4: .4byte 0x0201b000
-_080950C8:
- ldr r3, _08095108 @ =gTasks
- ldr r2, _0809510C @ =0x0201b000
- movs r0, 0x98
- lsls r0, 2
- adds r2, r0
- ldrb r1, [r2]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r3
- movs r4, 0x2
-_080950DE:
- strh r4, [r0, 0x10]
- ldrb r1, [r2]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r3
- strh r4, [r0, 0x12]
-_080950EC:
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r3
- ldrb r0, [r0, 0x10]
- ldr r1, _08095110 @ =gUnknown_083B5FF4
- ldr r2, _08095114 @ =gUnknown_083B5FCC
- movs r3, 0
- bl sub_806E750
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08095108: .4byte gTasks
-_0809510C: .4byte 0x0201b000
-_08095110: .4byte gUnknown_083B5FF4
-_08095114: .4byte gUnknown_083B5FCC
- thumb_func_end sub_8095050
-
- thumb_func_start sub_8095118
-sub_8095118: @ 8095118
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08095150 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0809512C
- b _08095268
-_0809512C:
- ldr r0, _08095154 @ =gUnknown_02038473
- ldrb r0, [r0]
- cmp r0, 0x3
- bne _08095164
- ldr r5, _08095158 @ =gScriptItemId
- ldrh r0, [r5]
- bl sub_8070E48
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xA
- bne _08095164
- ldr r0, _0809515C @ =gUnknown_03004AE4
- ldrh r1, [r5]
- ldr r2, _08095160 @ =sub_80952E4
- ldr r3, [r0]
- b _080951AA
- .align 2, 0
-_08095150: .4byte gPaletteFade
-_08095154: .4byte gUnknown_02038473
-_08095158: .4byte gScriptItemId
-_0809515C: .4byte gUnknown_03004AE4
-_08095160: .4byte sub_80952E4
-_08095164:
- adds r0, r4, 0
- bl sub_806BD80
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- beq _08095178
- cmp r0, 0x2
- beq _08095214
- b _08095268
-_08095178:
- ldr r0, _080951B4 @ =gUnknown_02038473
- ldrb r0, [r0]
- cmp r0, 0x3
- bne _080951C8
- adds r0, r4, 0
- bl sub_806CA38
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r0, r1
- ldr r1, _080951B8 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _0809521C
- bl sub_806D5A4
- ldr r3, _080951BC @ =gUnknown_03004AE4
- ldr r0, _080951C0 @ =gScriptItemId
- ldrh r1, [r0]
- ldr r2, _080951C4 @ =sub_80952E4
- ldr r3, [r3]
-_080951AA:
- adds r0, r4, 0
- bl _call_via_r3
- b _08095268
- .align 2, 0
-_080951B4: .4byte gUnknown_02038473
-_080951B8: .4byte gPlayerParty
-_080951BC: .4byte gUnknown_03004AE4
-_080951C0: .4byte gScriptItemId
-_080951C4: .4byte sub_80952E4
-_080951C8:
- movs r0, 0x5
- bl PlaySE
- adds r0, r4, 0
- bl sub_806CA38
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r0, r1
- ldr r1, _08095204 @ =gPlayerParty
- adds r0, r1
- ldr r1, _08095208 @ =gStringVar1
- bl GetMonNickname
- adds r0, r4, 0
- bl sub_806CA38
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl sub_8095050
- ldr r1, _0809520C @ =sub_8095408
- ldr r2, _08095210 @ =sub_8095118
- adds r0, r4, 0
- bl SetTaskFuncWithFollowupFunc
- b _08095268
- .align 2, 0
-_08095204: .4byte gPlayerParty
-_08095208: .4byte gStringVar1
-_0809520C: .4byte sub_8095408
-_08095210: .4byte sub_8095118
-_08095214:
- ldr r5, _08095224 @ =gUnknown_02038473
- ldrb r0, [r5]
- cmp r0, 0x1
- bne _08095228
-_0809521C:
- movs r0, 0x20
- bl PlaySE
- b _08095268
- .align 2, 0
-_08095224: .4byte gUnknown_02038473
-_08095228:
- movs r0, 0x5
- bl PlaySE
- ldrb r0, [r5]
- cmp r0, 0x3
- bne _08095254
- ldr r1, _08095248 @ =gUnknown_0202E8F4
- movs r0, 0
- strb r0, [r1]
- ldr r1, _0809524C @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _08095250 @ =sub_80952E4
- b _08095266
- .align 2, 0
-_08095248: .4byte gUnknown_0202E8F4
-_0809524C: .4byte gTasks
-_08095250: .4byte sub_80952E4
-_08095254:
- ldr r1, _08095270 @ =gUnknown_0202E8F4
- movs r0, 0
- strb r0, [r1]
- ldr r1, _08095274 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _08095278 @ =sub_809527C
-_08095266:
- str r1, [r0]
-_08095268:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08095270: .4byte gUnknown_0202E8F4
-_08095274: .4byte gTasks
-_08095278: .4byte sub_809527C
- thumb_func_end sub_8095118
-
- thumb_func_start sub_809527C
-sub_809527C: @ 809527C
- 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, _080952AC @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _080952B0 @ =sub_80952B4
- str r1, [r0]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080952AC: .4byte gTasks
-_080952B0: .4byte sub_80952B4
- thumb_func_end sub_809527C
-
- thumb_func_start sub_80952B4
-sub_80952B4: @ 80952B4
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080952DC @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080952D6
- bl sub_8094D60
- adds r0, r4, 0
- bl DestroyTask
- ldr r0, _080952E0 @ =sub_802E414
- bl SetMainCallback2
-_080952D6:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080952DC: .4byte gPaletteFade
-_080952E0: .4byte sub_802E414
- thumb_func_end sub_80952B4
-
- thumb_func_start sub_80952E4
-sub_80952E4: @ 80952E4
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080952FC @ =gUnknown_0202E8F4
- ldrb r1, [r0]
- cmp r1, 0
- beq _08095300
- adds r0, r4, 0
- bl sub_809527C
- b _0809531E
- .align 2, 0
-_080952FC: .4byte gUnknown_0202E8F4
-_08095300:
- movs r0, 0x1
- negs r0, r0
- str r1, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _08095328 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0809532C @ =sub_8095330
- str r1, [r0]
-_0809531E:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08095328: .4byte gTasks
-_0809532C: .4byte sub_8095330
- thumb_func_end sub_80952E4
-
- thumb_func_start sub_8095330
-sub_8095330: @ 8095330
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08095358 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08095350
- bl sub_8094D60
- adds r0, r4, 0
- bl DestroyTask
- bl sub_80A6DCC
-_08095350:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08095358: .4byte gPaletteFade
- thumb_func_end sub_8095330
-
- thumb_func_start sub_809535C
-sub_809535C: @ 809535C
- push {lr}
- ldr r2, _08095380 @ =gPaletteFade
- ldrb r0, [r2, 0x8]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2, 0x8]
- ldr r2, _08095384 @ =sub_8095118
- movs r0, 0x1
- movs r1, 0xFF
- movs r3, 0x5
- bl sub_806AF4C
- ldr r0, _08095388 @ =sub_809538C
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_08095380: .4byte gPaletteFade
-_08095384: .4byte sub_8095118
-_08095388: .4byte sub_809538C
- thumb_func_end sub_809535C
-
- thumb_func_start sub_809538C
-sub_809538C: @ 809538C
- push {r4,r5,lr}
- ldr r4, _080953D8 @ =0x0201b260
- ldr r5, _080953DC @ =gUnknown_020384F0
-_08095392:
- bl sub_806B124
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080953F4
- ldrb r0, [r4]
- ldrb r1, [r5]
- bl sub_806C994
- ldrb r0, [r4]
- movs r1, 0
- bl sub_806BF74
- ldrb r1, [r5]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080953E0 @ =gPlayerParty
- adds r0, r1
- ldr r1, _080953E4 @ =gStringVar1
- bl GetMonNickname
- ldrb r0, [r4]
- ldrb r1, [r5]
- bl sub_8095050
- ldrb r0, [r4]
- ldr r1, _080953E8 @ =sub_8095408
- ldr r2, _080953EC @ =sub_8095118
- bl SetTaskFuncWithFollowupFunc
- ldr r0, _080953F0 @ =sub_806AEDC
- bl SetMainCallback2
- b _08095400
- .align 2, 0
-_080953D8: .4byte 0x0201b260
-_080953DC: .4byte gUnknown_020384F0
-_080953E0: .4byte gPlayerParty
-_080953E4: .4byte gStringVar1
-_080953E8: .4byte sub_8095408
-_080953EC: .4byte sub_8095118
-_080953F0: .4byte sub_806AEDC
-_080953F4:
- bl sub_80F9344
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08095392
-_08095400:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_809538C
-
- thumb_func_start sub_8095408
-sub_8095408: @ 8095408
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r7, r0, 24
- adds r4, r7, 0
- ldr r0, _0809543C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r3, 0x80
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- bne _080954B8
- ldr r2, _08095440 @ =gMain
- ldrh r1, [r2, 0x30]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08095444
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- negs r0, r0
- bl MoveMenuCursor
- b _080954B8
- .align 2, 0
-_0809543C: .4byte gPaletteFade
-_08095440: .4byte gMain
-_08095444:
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _0809545A
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- bl MoveMenuCursor
- b _080954B8
-_0809545A:
- ldrh r1, [r2, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080954A4
- movs r0, 0x5
- bl PlaySE
- ldr r1, _08095498 @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- ldrb r4, [r0, 0x10]
- ldr r5, _0809549C @ =gUnknown_083B5FF4
- ldr r6, _080954A0 @ =gUnknown_083B5FCC
- bl GetMenuCursorPos
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- adds r0, r4, 0
- adds r1, r5, 0
- adds r2, r6, 0
- bl sub_806E81C
- adds r1, r0, 0
- adds r0, r7, 0
- bl _call_via_r1
- b _080954B8
- .align 2, 0
-_08095498: .4byte gTasks
-_0809549C: .4byte gUnknown_083B5FF4
-_080954A0: .4byte gUnknown_083B5FCC
-_080954A4:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080954B8
- movs r0, 0x5
- bl PlaySE
- adds r0, r4, 0
- bl sub_80958C4
-_080954B8:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8095408
-
- thumb_func_start sub_80954C0
-sub_80954C0: @ 80954C0
- push {lr}
- lsls r0, 24
- lsrs r1, r0, 24
- ldr r0, _080954D8 @ =gUnknown_0202E8F6
- ldrb r0, [r0]
- cmp r0, 0
- bne _080954D4
- adds r0, r1, 0
- bl sub_80958C4
-_080954D4:
- pop {r0}
- bx r0
- .align 2, 0
-_080954D8: .4byte gUnknown_0202E8F6
- thumb_func_end sub_80954C0
-
- thumb_func_start sub_80954DC
-sub_80954DC: @ 80954DC
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl sub_806CA38
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _0809552C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08095522
- adds r0, r4, 0
- bl DestroyTask
- ldr r0, _08095530 @ =0x0201b000
- ldr r1, _08095534 @ =0x00000262
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
- ldr r0, _08095538 @ =gPlayerParty
- ldr r1, _0809553C @ =gPlayerPartyCount
- ldrb r2, [r1]
- subs r2, 0x1
- lsls r2, 24
- lsrs r2, 24
- ldr r3, _08095540 @ =sub_809535C
- movs r1, 0x4
- str r1, [sp]
- adds r1, r5, 0
- bl sub_809D8BC
-_08095522:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0809552C: .4byte gPaletteFade
-_08095530: .4byte 0x0201b000
-_08095534: .4byte 0x00000262
-_08095538: .4byte gPlayerParty
-_0809553C: .4byte gPlayerPartyCount
-_08095540: .4byte sub_809535C
- thumb_func_end sub_80954DC
-
- thumb_func_start sub_8095544
-sub_8095544: @ 8095544
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- bl sub_806CA38
- ldr r1, _0809557C @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _08095580 @ =sub_80954DC
- str r1, [r0]
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0809557C: .4byte gTasks
-_08095580: .4byte sub_80954DC
- thumb_func_end sub_8095544
-
- thumb_func_start sub_8095584
-sub_8095584: @ 8095584
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _080955F8 @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- ldrb r0, [r0, 0x10]
- ldr r1, _080955FC @ =gUnknown_083B5FF4
- bl sub_806E7D0
- adds r0, r6, 0
- bl sub_806CA38
- lsls r0, 24
- lsrs r5, r0, 24
- bl sub_806B528
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08095610
- cmp r5, 0x1
- beq _080955C6
- cmp r5, 0x4
- beq _080955C6
- cmp r5, 0x5
- bne _08095610
-_080955C6:
- bl sub_806D5A4
- ldr r4, _08095600 @ =gStringVar1
- bl sub_8040D08
- adds r1, r0, 0
- adds r0, r4, 0
- bl StringCopy
- ldr r4, _08095604 @ =gStringVar4
- ldr r1, _08095608 @ =gOtherText_CantSwitchPokeWithYours
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0
- bl sub_806E834
- ldr r1, _080955F8 @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, _0809560C @ =sub_80954C0
- b _0809589A
- .align 2, 0
-_080955F8: .4byte gTasks
-_080955FC: .4byte gUnknown_083B5FF4
-_08095600: .4byte gStringVar1
-_08095604: .4byte gStringVar4
-_08095608: .4byte gOtherText_CantSwitchPokeWithYours
-_0809560C: .4byte sub_80954C0
-_08095610:
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _08095654 @ =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- bne _0809566C
- bl sub_806D5A4
- ldr r1, _08095658 @ =gStringVar1
- adds r0, r4, 0
- bl GetMonNickname
- ldr r4, _0809565C @ =gStringVar4
- ldr r1, _08095660 @ =gOtherText_NoEnergyLeft
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0
- bl sub_806E834
- ldr r1, _08095664 @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, _08095668 @ =sub_80954C0
- b _0809589A
- .align 2, 0
-_08095654: .4byte gPlayerParty
-_08095658: .4byte gStringVar1
-_0809565C: .4byte gStringVar4
-_08095660: .4byte gOtherText_NoEnergyLeft
-_08095664: .4byte gTasks
-_08095668: .4byte sub_80954C0
-_0809566C:
- movs r4, 0
- ldr r0, _08095678 @ =gUnknown_02024A68
- lsls r1, r6, 2
- mov r8, r1
- b _080956A8
- .align 2, 0
-_08095678: .4byte gUnknown_02024A68
-_0809567C:
- adds r0, r4, 0
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _080956A0
- adds r0, r5, 0
- bl sub_8094C20
- lsls r0, 24
- ldr r2, _080956EC @ =gUnknown_02024A6A
- lsls r1, r4, 1
- adds r1, r2
- lsrs r0, 24
- ldrh r1, [r1]
- cmp r0, r1
- bne _080956A0
- b _08095808
-_080956A0:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080956F0 @ =gUnknown_02024A68
-_080956A8:
- ldrb r0, [r0]
- cmp r4, r0
- bcc _0809567C
- movs r2, 0x64
- mov r9, r2
- mov r0, r9
- muls r0, r5
- ldr r1, _080956F4 @ =gPlayerParty
- mov r10, r1
- adds r7, r0, r1
- adds r0, r7, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- beq _08095708
- bl sub_806D5A4
- ldr r4, _080956F8 @ =gStringVar4
- ldr r1, _080956FC @ =gOtherText_EGGCantBattle
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0
- bl sub_806E834
- ldr r1, _08095700 @ =gTasks
- mov r2, r8
- adds r0, r2, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, _08095704 @ =sub_80954C0
- b _0809589A
- .align 2, 0
-_080956EC: .4byte gUnknown_02024A6A
-_080956F0: .4byte gUnknown_02024A68
-_080956F4: .4byte gPlayerParty
-_080956F8: .4byte gStringVar4
-_080956FC: .4byte gOtherText_EGGCantBattle
-_08095700: .4byte gTasks
-_08095704: .4byte sub_80954C0
-_08095708:
- adds r0, r5, 0
- bl sub_8094C20
- ldr r1, _0809574C @ =0x02000000
- ldr r2, _08095750 @ =0x0001609d
- adds r1, r2
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r1]
- cmp r0, r1
- bne _08095768
- bl sub_806D5A4
- ldr r1, _08095754 @ =gStringVar1
- adds r0, r7, 0
- bl GetMonNickname
- ldr r4, _08095758 @ =gStringVar4
- ldr r1, _0809575C @ =gOtherText_AlreadySelected
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0
- bl sub_806E834
- ldr r1, _08095760 @ =gTasks
- mov r2, r8
- adds r0, r2, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, _08095764 @ =sub_80954C0
- b _0809589A
- .align 2, 0
-_0809574C: .4byte 0x02000000
-_08095750: .4byte 0x0001609d
-_08095754: .4byte gStringVar1
-_08095758: .4byte gStringVar4
-_0809575C: .4byte gOtherText_AlreadySelected
-_08095760: .4byte gTasks
-_08095764: .4byte sub_80954C0
-_08095768:
- ldr r0, _08095790 @ =gUnknown_02038473
- ldrb r0, [r0]
- cmp r0, 0x4
- bne _080957A0
- bl sub_806D5A4
- bl sub_8040B8C
- ldr r0, _08095794 @ =gStringVar4
- movs r1, 0
- bl sub_806E834
- ldr r1, _08095798 @ =gTasks
- mov r2, r8
- adds r0, r2, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, _0809579C @ =sub_80954C0
- b _0809589A
- .align 2, 0
-_08095790: .4byte gUnknown_02038473
-_08095794: .4byte gStringVar4
-_08095798: .4byte gTasks
-_0809579C: .4byte sub_80954C0
-_080957A0:
- cmp r0, 0x2
- bne _08095854
- ldr r0, _080957EC @ =gUnknown_02024E6C
- ldrb r4, [r0]
- bl sub_806D5A4
- ldr r0, _080957F0 @ =gUnknown_02024A6A
- lsls r4, 1
- adds r4, r0
- ldrb r0, [r4]
- bl pokemon_order_func
- lsls r0, 24
- lsrs r0, 24
- mov r1, r9
- muls r1, r0
- adds r0, r1, 0
- add r0, r10
- ldr r1, _080957F4 @ =gStringVar1
- bl GetMonNickname
- ldr r4, _080957F8 @ =gStringVar4
- ldr r1, _080957FC @ =gOtherText_CantBeSwitched
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0
- bl sub_806E834
- ldr r1, _08095800 @ =gTasks
- mov r2, r8
- adds r0, r2, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, _08095804 @ =sub_80954C0
- b _0809589A
- .align 2, 0
-_080957EC: .4byte gUnknown_02024E6C
-_080957F0: .4byte gUnknown_02024A6A
-_080957F4: .4byte gStringVar1
-_080957F8: .4byte gStringVar4
-_080957FC: .4byte gOtherText_CantBeSwitched
-_08095800: .4byte gTasks
-_08095804: .4byte sub_80954C0
-_08095808:
- bl sub_806D5A4
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0809583C @ =gPlayerParty
- adds r0, r1
- ldr r1, _08095840 @ =gStringVar1
- bl GetMonNickname
- ldr r4, _08095844 @ =gStringVar4
- ldr r1, _08095848 @ =gOtherText_AlreadyBattle
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0
- bl sub_806E834
- ldr r1, _0809584C @ =gTasks
- mov r2, r8
- adds r0, r2, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, _08095850 @ =sub_80954C0
- b _0809589A
- .align 2, 0
-_0809583C: .4byte gPlayerParty
-_08095840: .4byte gStringVar1
-_08095844: .4byte gStringVar4
-_08095848: .4byte gOtherText_AlreadyBattle
-_0809584C: .4byte gTasks
-_08095850: .4byte sub_80954C0
-_08095854:
- adds r0, r5, 0
- bl sub_8094C20
- ldr r1, _080958AC @ =gUnknown_0202E8F5
- strb r0, [r1]
- ldr r1, _080958B0 @ =gUnknown_0202E8F4
- movs r0, 0x1
- strb r0, [r1]
- ldr r1, _080958B4 @ =gUnknown_02024A6A
- ldr r0, _080958B8 @ =gUnknown_02024E6C
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r1
- ldrb r0, [r0]
- bl pokemon_order_func
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8094C98
- mov r0, r9
- muls r0, r4
- add r0, r10
- adds r1, r7, 0
- bl sub_806E6F0
- ldr r1, _080958BC @ =gTasks
- mov r2, r8
- adds r0, r2, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, _080958C0 @ =sub_809527C
-_0809589A:
- 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
-_080958AC: .4byte gUnknown_0202E8F5
-_080958B0: .4byte gUnknown_0202E8F4
-_080958B4: .4byte gUnknown_02024A6A
-_080958B8: .4byte gUnknown_02024E6C
-_080958BC: .4byte gTasks
-_080958C0: .4byte sub_809527C
- thumb_func_end sub_8095584
-
- thumb_func_start sub_80958C4
-sub_80958C4: @ 80958C4
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- bl sub_8072DEC
- ldr r0, _080958FC @ =gTasks
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- adds r4, r0
- ldrb r0, [r4, 0x10]
- ldr r1, _08095900 @ =gUnknown_083B5FF4
- bl sub_806E7D0
- ldrh r0, [r4, 0x12]
- strh r0, [r4, 0x10]
- movs r0, 0
- movs r1, 0
- bl sub_806D538
- adds r0, r5, 0
- bl SwitchTaskToFollowupFunc
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080958FC: .4byte gTasks
-_08095900: .4byte gUnknown_083B5FF4
- thumb_func_end sub_80958C4
-
- thumb_func_start sub_8095904
-sub_8095904: @ 8095904
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x1C
- str r0, [sp]
- adds r7, r1, 0
- adds r4, r2, 0
- ldr r0, [sp, 0x3C]
- lsls r4, 24
- lsrs r4, 24
- lsls r3, 16
- lsrs r3, 16
- str r3, [sp, 0x4]
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x8]
- ldr r0, [sp]
- bl StringLength
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- cmp r4, 0
- bne _08095988
- movs r5, 0
- cmp r5, r8
- bcs _08095A2E
-_0809593E:
- ldr r1, [sp]
- adds r0, r1, r5
- ldrb r2, [r0]
- ldr r0, _08095980 @ =0x0000fff0
- ands r0, r2
- lsls r0, 6
- movs r1, 0xF
- ands r2, r1
- lsls r2, 5
- adds r0, r2
- ldr r1, _08095984 @ =gFont3LatinGlyphs
- adds r4, r0, r1
- adds r0, r4, 0
- adds r1, r7, 0
- movs r2, 0x10
- bl CpuSet
- movs r2, 0x80
- lsls r2, 2
- adds r0, r4, r2
- ldr r3, [sp, 0x4]
- adds r1, r7, r3
- movs r2, 0x10
- bl CpuSet
- adds r7, 0x20
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, r8
- bcc _0809593E
- b _08095A2E
- .align 2, 0
-_08095980: .4byte 0x0000fff0
-_08095984: .4byte gFont3LatinGlyphs
-_08095988:
- movs r0, 0
- mov r9, r0
- ldr r1, [sp, 0x8]
- lsls r0, r1, 28
- lsrs r0, 24
- str r0, [sp, 0xC]
- mov r2, r8
- lsls r0, r2, 21
- movs r1, 0
- lsrs r0, 1
- str r0, [sp, 0x10]
-_0809599E:
- movs r5, 0
- ldr r3, [sp, 0x4]
- adds r3, r7, r3
- str r3, [sp, 0x14]
- adds r0, r1, 0x1
- str r0, [sp, 0x18]
- cmp r5, r8
- bcs _08095A12
- movs r2, 0xF
- mov r12, r2
- lsls r1, 9
- ldr r0, _08095A40 @ =gFont3LatinGlyphs
- adds r1, r0
- mov r10, r1
-_080959BA:
- ldr r3, [sp]
- adds r0, r3, r5
- ldrb r1, [r0]
- ldr r0, _08095A44 @ =0x0000fff0
- ands r0, r1
- lsls r0, 6
- mov r2, r12
- ands r1, r2
- lsls r1, 5
- adds r0, r1
- mov r3, r10
- adds r4, r0, r3
- movs r6, 0
- adds r5, 0x1
-_080959D6:
- ldrb r0, [r4]
- movs r3, 0xF0
- ands r3, r0
- mov r2, r12
- ands r2, r0
- cmp r3, 0
- bne _080959E6
- ldr r3, [sp, 0xC]
-_080959E6:
- cmp r2, 0
- bne _080959EC
- ldr r2, [sp, 0x8]
-_080959EC:
- mov r0, r9
- adds r1, r0, 0x1
- lsls r1, 16
- lsrs r1, 16
- mov r9, r1
- ldr r1, [sp, 0x40]
- adds r0, r1, r0
- orrs r3, r2
- strb r3, [r0]
- adds r4, 0x1
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r6, 0x1F
- bls _080959D6
- lsls r0, r5, 16
- lsrs r5, r0, 16
- cmp r5, r8
- bcc _080959BA
-_08095A12:
- ldr r0, [sp, 0x40]
- adds r1, r7, 0
- ldr r3, [sp, 0x10]
- lsrs r2, r3, 16
- bl CpuSet
- ldr r7, [sp, 0x14]
- movs r0, 0
- mov r9, r0
- ldr r1, [sp, 0x18]
- lsls r0, r1, 16
- lsrs r1, r0, 16
- cmp r1, 0x1
- bls _0809599E
-_08095A2E:
- add sp, 0x1C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08095A40: .4byte gFont3LatinGlyphs
-_08095A44: .4byte 0x0000fff0
- thumb_func_end sub_8095904
-
- thumb_func_start unref_sub_8095A48
-unref_sub_8095A48: @ 8095A48
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x10
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r2, 24
- lsrs r2, 24
- mov r8, r2
- lsls r3, 24
- lsrs r7, r3, 24
- movs r6, 0
-_08095A60:
- movs r3, 0
- ldrb r0, [r4]
- adds r1, r0, 0
- adds r2, r0, 0
- cmp r1, 0xFF
- beq _08095ACE
-_08095A6C:
- mov r0, sp
- adds r0, r3
- adds r0, 0x8
- strb r2, [r0]
- adds r4, 0x1
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x3
- bhi _08095AA8
- ldrb r0, [r4]
- adds r1, r0, 0
- adds r2, r0, 0
- cmp r1, 0xFF
- bne _08095A6C
- cmp r3, 0
- beq _08095ACE
- movs r6, 0x1
- cmp r3, 0x3
- bhi _08095AA8
- movs r2, 0
-_08095A96:
- adds r0, r3, 0
- adds r1, r0, 0x1
- lsls r1, 16
- lsrs r3, r1, 16
- add r0, sp
- adds r0, 0x8
- strb r2, [r0]
- cmp r3, 0x3
- bls _08095A96
-_08095AA8:
- mov r1, sp
- adds r1, r3
- adds r1, 0x8
- movs r0, 0xFF
- strb r0, [r1]
- str r7, [sp]
- ldr r0, [sp, 0x28]
- str r0, [sp, 0x4]
- add r0, sp, 0x8
- adds r1, r5, 0
- mov r2, r8
- movs r3, 0x80
- bl sub_8095904
- movs r0, 0x80
- lsls r0, 1
- adds r5, r0
- cmp r6, 0
- beq _08095A60
-_08095ACE:
- add sp, 0x10
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end unref_sub_8095A48
-
- thumb_func_start sub_8095ADC
-sub_8095ADC: @ 8095ADC
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- movs r4, 0
- movs r5, 0
- lsls r1, r0, 2
- adds r1, r0
- lsls r0, r1, 4
- subs r0, r1
- lsls r6, r0, 5
-_08095AF0:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 4
- ldr r1, _08095B20 @ =gUnknown_020300A4
- adds r0, r1
- adds r0, r6, r0
- movs r1, 0xB
- bl GetBoxMonData
- cmp r0, 0
- beq _08095B0C
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
-_08095B0C:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x1D
- bls _08095AF0
- lsls r0, r5, 24
- lsrs r0, 24
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08095B20: .4byte gUnknown_020300A4
- thumb_func_end sub_8095ADC
-
- thumb_func_start sub_8095B24
-sub_8095B24: @ 8095B24
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- movs r4, 0
- lsls r1, r0, 2
- adds r1, r0
- lsls r0, r1, 4
- subs r0, r1
- lsls r5, r0, 5
-_08095B36:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 4
- ldr r1, _08095B54 @ =gUnknown_020300A4
- adds r0, r1
- adds r0, r5, r0
- movs r1, 0xB
- bl GetBoxMonData
- cmp r0, 0
- bne _08095B58
- lsls r0, r4, 16
- asrs r0, 16
- b _08095B66
- .align 2, 0
-_08095B54: .4byte gUnknown_020300A4
-_08095B58:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x1D
- bls _08095B36
- movs r0, 0x1
- negs r0, r0
-_08095B66:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8095B24
-
- thumb_func_start sub_8095B6C
-sub_8095B6C: @ 8095B6C
- push {r4-r6,lr}
- movs r5, 0
- movs r6, 0
-_08095B72:
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _08095BB0 @ =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _08095B9A
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _08095B9A
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
-_08095B9A:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x5
- bls _08095B72
- lsls r0, r6, 24
- lsrs r0, 24
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08095BB0: .4byte gPlayerParty
- thumb_func_end sub_8095B6C
-
- thumb_func_start sub_8095BB4
-sub_8095BB4: @ 8095BB4
- push {r4-r7,lr}
- lsls r0, 24
- movs r5, 0
- movs r6, 0
- lsrs r7, r0, 24
-_08095BBE:
- cmp r5, r7
- beq _08095BF6
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _08095C0C @ =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _08095BF6
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _08095BF6
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _08095BF6
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
-_08095BF6:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x5
- bls _08095BBE
- lsls r0, r6, 24
- lsrs r0, 24
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08095C0C: .4byte gPlayerParty
- thumb_func_end sub_8095BB4
-
- thumb_func_start sub_8095C10
-sub_8095C10: @ 8095C10
- push {lr}
- ldr r0, _08095C24 @ =gSpecialVar_0x8004
- ldrb r0, [r0]
- bl sub_8095BB4
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_08095C24: .4byte gSpecialVar_0x8004
- thumb_func_end sub_8095C10
-
- thumb_func_start sub_8095C28
-sub_8095C28: @ 8095C28
- push {r4,r5,lr}
- movs r4, 0
- movs r5, 0
-_08095C2E:
- movs r0, 0x64
- muls r0, r4
- ldr r1, _08095C5C @ =gPlayerParty
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _08095C46
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
-_08095C46:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x5
- bls _08095C2E
- lsls r0, r5, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_08095C5C: .4byte gPlayerParty
- thumb_func_end sub_8095C28
-
- thumb_func_start unref_sub_8095C60
-unref_sub_8095C60: @ 8095C60
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r4, r2, 16
- lsrs r4, 16
- bl StringCopy
- adds r1, r0, 0
- adds r5, r4
- cmp r1, r5
- bcs _08095C7E
- movs r0, 0
-_08095C76:
- strb r0, [r1]
- adds r1, 0x1
- cmp r1, r5
- bcc _08095C76
-_08095C7E:
- movs r0, 0xFF
- strb r0, [r1]
- adds r0, r1, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end unref_sub_8095C60
-
- thumb_func_start sub_8095C8C
-sub_8095C8C: @ 8095C8C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r6, r0, 0
- adds r7, r3, 0
- ldr r5, [sp, 0x1C]
- ldr r4, [sp, 0x20]
- ldr r0, [sp, 0x24]
- mov r9, r0
- ldr r0, [sp, 0x28]
- ldr r3, [sp, 0x2C]
- lsls r1, 16
- lsrs r1, 16
- lsls r2, 16
- lsls r5, 16
- lsrs r5, 16
- lsls r4, 16
- lsrs r4, 16
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- lsls r3, 16
- lsrs r3, 16
- mov r0, r9
- lsls r0, 17
- mov r9, r0
- lsrs r2, 11
- adds r2, r1
- lsls r2, 1
- adds r6, r2
- adds r0, r4, 0
- muls r0, r3
- adds r0, r5
- lsls r0, 1
- adds r7, r0
- movs r4, 0
- cmp r4, r8
- bcs _08095CFC
- mov r0, r9
- lsrs r0, 1
- mov r9, r0
- lsls r5, r3, 1
-_08095CE2:
- adds r0, r7, 0
- adds r1, r6, 0
- mov r3, r9
- lsrs r2, r3, 16
- bl CpuSet
- adds r6, 0x40
- adds r7, r5
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, r8
- bcc _08095CE2
-_08095CFC:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8095C8C
-
- thumb_func_start unref_sub_8095D08
-unref_sub_8095D08: @ 8095D08
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- adds r4, r0, 0
- ldr r0, [sp, 0x28]
- lsls r1, 16
- lsrs r1, 16
- lsls r2, 16
- lsls r0, 16
- lsrs r0, 16
- mov r10, r0
- lsrs r2, 11
- adds r2, r1
- lsls r2, 1
- adds r4, r2
- lsls r3, 17
- lsrs r0, r3, 16
- str r0, [sp, 0x4]
- movs r0, 0
- cmp r0, r10
- bcs _08095DB2
- movs r6, 0x80
- lsls r6, 5
- mov r5, sp
- ldr r7, _08095D74 @ =0x040000d4
- lsrs r3, 17
- mov r9, r3
- mov r1, r9
- movs r2, 0x81
- lsls r2, 24
- orrs r1, r2
- mov r9, r1
-_08095D4E:
- adds r3, r4, 0
- ldr r2, [sp, 0x4]
- movs r1, 0x40
- adds r1, r4
- mov r8, r1
- adds r0, 0x1
- mov r12, r0
- cmp r2, r6
- bhi _08095D78
- movs r0, 0
- strh r0, [r5]
- mov r2, sp
- str r2, [r7]
- str r4, [r7, 0x4]
- mov r0, r9
- str r0, [r7, 0x8]
- ldr r0, [r7, 0x8]
- b _08095DA6
- .align 2, 0
-_08095D74: .4byte 0x040000d4
-_08095D78:
- movs r4, 0
- strh r4, [r5]
- ldr r1, _08095DC4 @ =0x040000d4
- mov r0, sp
- str r0, [r1]
- str r3, [r1, 0x4]
- ldr r0, _08095DC8 @ =0x81000800
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- adds r3, r6
- subs r2, r6
- cmp r2, r6
- bhi _08095D78
- strh r4, [r5]
- mov r0, sp
- str r0, [r1]
- str r3, [r1, 0x4]
- lsrs r0, r2, 1
- movs r2, 0x81
- lsls r2, 24
- orrs r0, r2
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
-_08095DA6:
- mov r4, r8
- mov r1, r12
- lsls r0, r1, 16
- lsrs r0, 16
- cmp r0, r10
- bcc _08095D4E
-_08095DB2:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08095DC4: .4byte 0x040000d4
-_08095DC8: .4byte 0x81000800
- thumb_func_end unref_sub_8095D08
-
- thumb_func_start sub_8095DCC
-sub_8095DCC: @ 8095DCC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- mov r8, r0
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r7, r2, 24
- lsls r3, 24
- lsrs r0, r3, 24
- cmp r0, 0
- beq _08095DE8
- cmp r0, 0x2
- bne _08095DEC
-_08095DE8:
- movs r2, 0x1
- b _08095DEE
-_08095DEC:
- ldr r2, _08095E38 @ =0x0000ffff
-_08095DEE:
- subs r0, 0x2
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bhi _08095E44
- lsls r0, r1, 24
- asrs r0, 24
- lsls r2, 16
- asrs r1, r2, 16
- adds r1, r0
- lsls r0, r1, 16
- asrs r1, r0, 16
- adds r6, r2, 0
- cmp r1, 0
- blt _08095E90
- cmp r1, r7
- bgt _08095E90
-_08095E10:
- asrs r4, r0, 16
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 4
- add r0, r8
- movs r1, 0xB
- bl GetBoxMonData
- cmp r0, 0
- bne _08095E3C
- asrs r0, r6, 16
- adds r0, r4, r0
- lsls r0, 16
- asrs r2, r0, 16
- cmp r2, 0
- blt _08095E90
- cmp r2, r7
- ble _08095E10
- b _08095E90
- .align 2, 0
-_08095E38: .4byte 0x0000ffff
-_08095E3C:
- adds r0, r4, 0
- b _08095E94
-_08095E40:
- adds r0, r5, 0
- b _08095E94
-_08095E44:
- lsls r0, r1, 24
- asrs r0, 24
- lsls r2, 16
- asrs r1, r2, 16
- adds r1, r0
- lsls r0, r1, 16
- asrs r1, r0, 16
- adds r6, r2, 0
- cmp r1, 0
- blt _08095E90
- cmp r1, r7
- bgt _08095E90
-_08095E5C:
- asrs r5, r0, 16
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 4
- mov r1, r8
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetBoxMonData
- cmp r0, 0
- beq _08095E80
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetBoxMonData
- cmp r0, 0
- beq _08095E40
-_08095E80:
- asrs r0, r6, 16
- adds r0, r5, r0
- lsls r0, 16
- asrs r2, r0, 16
- cmp r2, 0
- blt _08095E90
- cmp r2, r7
- ble _08095E5C
-_08095E90:
- movs r0, 0x1
- negs r0, r0
-_08095E94:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8095DCC
-
- thumb_func_start sub_8095EA0
-sub_8095EA0: @ 8095EA0
- push {lr}
- movs r0, 0x2
- movs r1, 0xF
- movs r2, 0x1B
- movs r3, 0x12
- bl MenuFillWindowRectWithBlankTile
- pop {r0}
- bx r0
- thumb_func_end sub_8095EA0
-
- thumb_func_start sub_8095EB4
-sub_8095EB4: @ 8095EB4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _08095ED8 @ =gTasks
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x4
- bls _08095ECE
- b _080960F4
-_08095ECE:
- lsls r0, 2
- ldr r1, _08095EDC @ =_08095EE0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08095ED8: .4byte gTasks
-_08095EDC: .4byte _08095EE0
- .align 2, 0
-_08095EE0:
- .4byte _08095EF4
- .4byte _08095F1C
- .4byte _08095F30
- .4byte _08096042
- .4byte _080960DC
-_08095EF4:
- ldrb r0, [r4, 0xA]
- bl sub_8096168
- bl MenuDisplayMessageBox
- ldr r1, _08095F18 @ =gUnknown_083B600C
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- lsls r0, 3
- adds r1, 0x4
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x2
- movs r2, 0xF
- bl MenuPrint
- b _08095F28
- .align 2, 0
-_08095F18: .4byte gUnknown_083B600C
-_08095F1C:
- bl sub_807D770
- lsls r0, 24
- cmp r0, 0
- bne _08095F28
- b _080960F4
-_08095F28:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080960F4
-_08095F30:
- bl ProcessMenuInput
- lsls r0, 24
- asrs r0, 24
- strh r0, [r4, 0xC]
- movs r3, 0xC
- ldrsh r1, [r4, r3]
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _08095FC8
- cmp r1, r0
- bgt _08095F52
- subs r0, 0x1
- cmp r1, r0
- beq _08095F58
- b _08095FE8
-_08095F52:
- cmp r1, 0x3
- beq _08095FC8
- b _08095FE8
-_08095F58:
- ldrh r3, [r4, 0xA]
- strh r3, [r4, 0xE]
- ldr r2, _08095FC0 @ =gMain
- ldrh r1, [r2, 0x2E]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08095F76
- subs r0, r3, 0x1
- strh r0, [r4, 0xE]
- lsls r0, 16
- cmp r0, 0
- bge _08095F76
- movs r0, 0x3
- strh r0, [r4, 0xE]
-_08095F76:
- ldrh r1, [r2, 0x2E]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08095F92
- ldrh r0, [r4, 0xE]
- adds r0, 0x1
- strh r0, [r4, 0xE]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- ble _08095F92
- movs r0, 0
- strh r0, [r4, 0xE]
-_08095F92:
- lsls r0, r3, 16
- asrs r0, 16
- ldrh r2, [r4, 0xE]
- movs r3, 0xE
- ldrsh r1, [r4, r3]
- cmp r0, r1
- bne _08095FA2
- b _080960F4
-_08095FA2:
- strh r2, [r4, 0xA]
- bl sub_8095EA0
- ldr r0, _08095FC4 @ =gUnknown_083B600C
- movs r2, 0xA
- ldrsh r1, [r4, r2]
- lsls r1, 3
- adds r0, 0x4
- adds r1, r0
- ldr r0, [r1]
- movs r1, 0x2
- movs r2, 0xF
- bl MenuPrint
- b _080960F4
- .align 2, 0
-_08095FC0: .4byte gMain
-_08095FC4: .4byte gUnknown_083B600C
-_08095FC8:
- bl sub_8072DEC
- movs r0, 0
- movs r1, 0
- movs r2, 0xD
- movs r3, 0x9
- bl MenuZeroFillWindowRect
- bl ScriptContext2_Disable
- bl EnableBothScriptContexts
- adds r0, r5, 0
- bl DestroyTask
- b _080960F4
-_08095FE8:
- movs r3, 0xC
- ldrsh r0, [r4, r3]
- cmp r0, 0
- bne _08096008
- bl sub_8095C28
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x6
- bne _08096008
- bl sub_8095EA0
- ldr r0, _08096004 @ =gPCText_PartyFull2
- b _08096022
- .align 2, 0
-_08096004: .4byte gPCText_PartyFull2
-_08096008:
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- bne _08096034
- bl sub_8095C28
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08096034
- bl sub_8095EA0
- ldr r0, _08096030 @ =gPCText_OnlyOne
-_08096022:
- movs r1, 0x2
- movs r2, 0xF
- bl MenuPrint
- movs r0, 0x3
- strh r0, [r4, 0x8]
- b _080960F4
- .align 2, 0
-_08096030: .4byte gPCText_OnlyOne
-_08096034:
- movs r0, 0x1
- movs r1, 0
- bl fade_screen
- movs r0, 0x4
- strh r0, [r4, 0x8]
- b _080960F4
-_08096042:
- ldr r0, _08096088 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r3, 0x3
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- bne _080960B8
- movs r0, 0x40
- ands r0, r1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0
- beq _08096090
- ldrh r0, [r4, 0xA]
- subs r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- cmp r0, 0
- bge _0809606A
- strh r3, [r4, 0xA]
-_0809606A:
- movs r0, 0x1
- negs r0, r0
- bl MoveMenuCursor
- bl GetMenuCursorPos
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0xA]
- bl sub_8095EA0
- ldr r1, _0809608C @ =gUnknown_083B600C
- movs r3, 0xA
- ldrsh r0, [r4, r3]
- b _080960C2
- .align 2, 0
-_08096088: .4byte gMain
-_0809608C: .4byte gUnknown_083B600C
-_08096090:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080960F4
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- ble _080960A8
- strh r2, [r4, 0xA]
-_080960A8:
- movs r0, 0x1
- bl MoveMenuCursor
- bl GetMenuCursorPos
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0xA]
-_080960B8:
- bl sub_8095EA0
- ldr r1, _080960D8 @ =gUnknown_083B600C
- movs r2, 0xA
- ldrsh r0, [r4, r2]
-_080960C2:
- lsls r0, 3
- adds r1, 0x4
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x2
- movs r2, 0xF
- bl MenuPrint
- movs r0, 0x2
- strh r0, [r4, 0x8]
- b _080960F4
- .align 2, 0
-_080960D8: .4byte gUnknown_083B600C
-_080960DC:
- ldr r0, _080960FC @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080960F4
- ldrb r0, [r4, 0xC]
- bl task_intro_29
- adds r0, r5, 0
- bl DestroyTask
-_080960F4:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080960FC: .4byte gPaletteFade
- thumb_func_end sub_8095EB4
-
- thumb_func_start sub_8096100
-sub_8096100: @ 8096100
- push {lr}
- ldr r0, _08096128 @ =sub_8095EB4
- movs r1, 0x50
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0809612C @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r0, 0
- strh r0, [r1, 0x8]
- strh r0, [r1, 0xA]
- bl ScriptContext2_Enable
- pop {r0}
- bx r0
- .align 2, 0
-_08096128: .4byte sub_8095EB4
-_0809612C: .4byte gTasks
- thumb_func_end sub_8096100
-
- thumb_func_start sub_8096130
-sub_8096130: @ 8096130
- push {lr}
- ldr r0, _0809615C @ =sub_8095EB4
- movs r1, 0x50
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08096160 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r0, 0
- strh r0, [r1, 0x8]
- ldr r0, _08096164 @ =gUnknown_02038474
- ldrb r0, [r0]
- strh r0, [r1, 0xA]
- bl pal_fill_black
- pop {r0}
- bx r0
- .align 2, 0
-_0809615C: .4byte sub_8095EB4
-_08096160: .4byte gTasks
-_08096164: .4byte gUnknown_02038474
- thumb_func_end sub_8096130
-
- thumb_func_start sub_8096168
-sub_8096168: @ 8096168
- push {r4,lr}
- sub sp, 0x8
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0
- movs r1, 0
- movs r2, 0xD
- movs r3, 0x9
- bl MenuDrawTextWindow
- ldr r3, _080961A4 @ =gUnknown_083B600C
- movs r0, 0x1
- movs r1, 0x1
- movs r2, 0x4
- bl PrintMenuItems
- str r4, [sp]
- movs r0, 0xC
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x1
- movs r3, 0x4
- bl InitMenu
- add sp, 0x8
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080961A4: .4byte gUnknown_083B600C
- thumb_func_end sub_8096168
-
- thumb_func_start sub_80961A8
-sub_80961A8: @ 80961A8
- push {lr}
- ldr r1, _080961C4 @ =gUnknown_02038474
- ldr r0, _080961C8 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- ldrb r0, [r0, 0x5]
- strb r0, [r1]
- ldr r1, _080961CC @ =gUnknown_0300485C
- ldr r0, _080961D0 @ =sub_8096130
- str r0, [r1]
- ldr r0, _080961D4 @ =c2_exit_to_overworld_2_switch
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_080961C4: .4byte gUnknown_02038474
-_080961C8: .4byte gUnknown_083B6DB4
-_080961CC: .4byte gUnknown_0300485C
-_080961D0: .4byte sub_8096130
-_080961D4: .4byte c2_exit_to_overworld_2_switch
- thumb_func_end sub_80961A8
-
- thumb_func_start sub_80961D8
-sub_80961D8: @ 80961D8
- push {r4-r7,lr}
- ldr r1, _08096258 @ =gPokemonStorage
- movs r0, 0
- strb r0, [r1]
- movs r5, 0
- adds r7, r1, 0x4
-_080961E4:
- movs r4, 0
- lsls r1, r5, 2
- adds r1, r5
- lsls r0, r1, 4
- subs r0, r1
- lsls r6, r0, 5
-_080961F0:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 4
- adds r0, r7
- adds r0, r6, r0
- bl ZeroBoxMonData
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x1D
- bls _080961F0
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0xD
- bls _080961E4
- movs r5, 0
-_08096214:
- lsls r0, r5, 3
- adds r0, r5
- ldr r6, _0809625C @ =gUnknown_020383E4
- adds r0, r6
- ldr r1, _08096260 @ =gPCText_BOX
- bl StringCopy
- adds r4, r5, 0x1
- adds r1, r4, 0
- movs r2, 0
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- lsls r4, 16
- lsrs r5, r4, 16
- cmp r5, 0xD
- bls _08096214
- movs r5, 0
- adds r3, r6, 0
- adds r3, 0x7E
- movs r2, 0x3
-_0809623E:
- adds r0, r5, r3
- adds r1, r5, 0
- ands r1, r2
- strb r1, [r0]
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0xD
- bls _0809623E
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08096258: .4byte gPokemonStorage
-_0809625C: .4byte gUnknown_020383E4
-_08096260: .4byte gPCText_BOX
- thumb_func_end sub_80961D8
-
- thumb_func_start sub_8096264
-sub_8096264: @ 8096264
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0x20
- mov r8, r0
- adds r4, r1, 0
- adds r6, r2, 0
- mov r9, r3
- lsls r4, 16
- lsrs r4, 16
- lsls r6, 16
- lsrs r6, 16
- mov r0, r9
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- ldr r0, _080962F4 @ =gBoxSelectionPopupPalette
- str r0, [sp, 0x18]
- ldr r1, _080962F8 @ =0xffff0000
- add r5, sp, 0x18
- ldr r0, [r5, 0x4]
- ands r0, r1
- orrs r0, r6
- str r0, [r5, 0x4]
- mov r1, sp
- ldr r0, _080962FC @ =gBoxSelectionPopupCenterTiles
- str r0, [sp]
- movs r0, 0x80
- lsls r0, 4
- strh r0, [r1, 0x4]
- strh r4, [r1, 0x6]
- ldr r0, _08096300 @ =gBoxSelectionPopupSidesTiles
- str r0, [sp, 0x8]
- movs r0, 0xC0
- lsls r0, 1
- strh r0, [r1, 0xC]
- adds r0, r4, 0x1
- strh r0, [r1, 0xE]
- add r0, sp, 0x10
- movs r1, 0
- movs r2, 0x8
- bl memset
- adds r0, r5, 0
- bl LoadSpritePalette
- mov r0, sp
- bl LoadSpriteSheets
- ldr r0, _08096304 @ =gUnknown_02038478
- mov r1, r8
- str r1, [r0]
- movs r0, 0x90
- lsls r0, 2
- add r0, r8
- strh r4, [r0]
- ldr r0, _08096308 @ =0x00000242
- add r0, r8
- strh r6, [r0]
- ldr r0, _0809630C @ =0x0000023e
- add r8, r0
- mov r0, r9
- mov r1, r8
- strb r0, [r1]
- add sp, 0x20
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080962F4: .4byte gBoxSelectionPopupPalette
-_080962F8: .4byte 0xffff0000
-_080962FC: .4byte gBoxSelectionPopupCenterTiles
-_08096300: .4byte gBoxSelectionPopupSidesTiles
-_08096304: .4byte gUnknown_02038478
-_08096308: .4byte 0x00000242
-_0809630C: .4byte 0x0000023e
- thumb_func_end sub_8096264
-
- thumb_func_start sub_8096310
-sub_8096310: @ 8096310
- push {r4,r5,lr}
- ldr r4, _08096344 @ =gUnknown_02038478
- ldr r0, [r4]
- ldr r1, _08096348 @ =0x00000242
- adds r0, r1
- ldrh r0, [r0]
- bl FreeSpritePaletteByTag
- ldr r0, [r4]
- movs r5, 0x90
- lsls r5, 2
- adds r0, r5
- ldrh r0, [r0]
- bl FreeSpriteTilesByTag
- ldr r0, [r4]
- adds r0, r5
- ldrh r0, [r0]
- adds r0, 0x1
- lsls r0, 16
- lsrs r0, 16
- bl FreeSpriteTilesByTag
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08096344: .4byte gUnknown_02038478
-_08096348: .4byte 0x00000242
- thumb_func_end sub_8096310
-
- thumb_func_start sub_809634C
-sub_809634C: @ 809634C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl sub_80963D0
- pop {r0}
- bx r0
- thumb_func_end sub_809634C
-
- thumb_func_start sub_809635C
-sub_809635C: @ 809635C
- push {lr}
- bl sub_809658C
- pop {r0}
- bx r0
- thumb_func_end sub_809635C
-
- thumb_func_start sub_8096368
-sub_8096368: @ 8096368
- push {lr}
- ldr r0, _08096380 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08096384
- movs r0, 0x5
- bl PlaySE
- movs r0, 0xC9
- b _080963CC
- .align 2, 0
-_08096380: .4byte gMain
-_08096384:
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080963A4
- movs r0, 0x5
- bl PlaySE
- ldr r0, _080963A0 @ =gUnknown_02038478
- ldr r0, [r0]
- movs r1, 0x8F
- lsls r1, 2
- adds r0, r1
- ldrb r0, [r0]
- b _080963CC
- .align 2, 0
-_080963A0: .4byte gUnknown_02038478
-_080963A4:
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080963B8
- movs r0, 0x5
- bl PlaySE
- bl sub_809662C
- b _080963CA
-_080963B8:
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080963CA
- movs r0, 0x5
- bl PlaySE
- bl sub_80965F8
-_080963CA:
- movs r0, 0xC8
-_080963CC:
- pop {r1}
- bx r1
- thumb_func_end sub_8096368
-
- thumb_func_start sub_80963D0
-sub_80963D0: @ 80963D0
- push {r4-r6,lr}
- sub sp, 0x3C
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- movs r0, 0
- movs r1, 0
- str r0, [sp, 0x34]
- str r1, [sp, 0x38]
- movs r1, 0xC0
- lsls r1, 24
- ldr r0, [sp, 0x34]
- orrs r0, r1
- str r0, [sp, 0x34]
- ldr r1, _08096564 @ =0xffff0fff
- add r4, sp, 0x34
- ldr r0, [r4, 0x4]
- ands r0, r1
- movs r1, 0x80
- lsls r1, 5
- orrs r0, r1
- str r0, [r4, 0x4]
- add r1, sp, 0x1C
- movs r2, 0
- strh r2, [r1]
- mov r0, sp
- adds r0, 0x1E
- strh r2, [r0]
- str r4, [sp, 0x20]
- ldr r0, _08096568 @ =gDummySpriteAnimTable
- str r0, [sp, 0x24]
- str r2, [sp, 0x28]
- ldr r0, _0809656C @ =gDummySpriteAffineAnimTable
- str r0, [sp, 0x2C]
- ldr r0, _08096570 @ =SpriteCallbackDummy
- str r0, [sp, 0x30]
- add r0, sp, 0x4
- movs r2, 0x18
- bl memcpy
- ldr r6, _08096574 @ =gUnknown_02038478
- ldr r0, [r6]
- movs r1, 0x8F
- lsls r1, 2
- adds r0, r1
- strb r5, [r0]
- add r2, sp, 0x4
- ldr r1, [r6]
- movs r5, 0x90
- lsls r5, 2
- adds r0, r1, r5
- ldrh r0, [r0]
- strh r0, [r2]
- ldr r3, _08096578 @ =0x00000242
- adds r1, r3
- ldrh r0, [r1]
- strh r0, [r2, 0x2]
- adds r0, r2, 0
- movs r1, 0xA0
- movs r2, 0x60
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r1, r0, 24
- ldr r3, [r6]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0809657C @ =gSprites
- adds r0, r1
- str r0, [r3]
- ldrb r2, [r4, 0x1]
- movs r1, 0x3F
- adds r0, r1, 0
- ands r0, r2
- movs r2, 0x80
- orrs r0, r2
- strb r0, [r4, 0x1]
- ldrb r0, [r4, 0x3]
- ands r1, r0
- movs r0, 0x40
- orrs r1, r0
- strb r1, [r4, 0x3]
- add r1, sp, 0x4
- adds r3, r5
- ldrh r0, [r3]
- adds r0, 0x1
- strh r0, [r1]
- ldr r0, _08096580 @ =gSpriteAnimTable_83B604C
- str r0, [sp, 0xC]
- movs r4, 0
-_08096488:
- ldr r0, [r6]
- ldr r1, _08096584 @ =0x0000023e
- adds r0, r1
- ldrb r3, [r0]
- add r0, sp, 0x4
- movs r1, 0x7C
- movs r2, 0x50
- bl CreateSprite
- lsls r0, 24
- lsrs r1, r0, 24
- ldr r2, [r6]
- lsls r3, r4, 2
- adds r2, 0x4
- adds r2, r3
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0809657C @ =gSprites
- adds r1, r0, r1
- str r1, [r2]
- movs r5, 0
- movs r0, 0x2
- ands r0, r4
- cmp r0, 0
- beq _080964C2
- movs r0, 0xC4
- strh r0, [r1, 0x20]
- movs r5, 0x2
-_080964C2:
- movs r0, 0x1
- ands r0, r4
- cmp r0, 0
- beq _080964E6
- ldr r1, [r6]
- adds r1, 0x4
- adds r1, r3
- ldr r2, [r1]
- movs r0, 0x70
- strh r0, [r2, 0x22]
- ldr r2, [r1]
- ldrb r1, [r2, 0x3]
- movs r0, 0x3F
- ands r0, r1
- strb r0, [r2, 0x3]
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
-_080964E6:
- ldr r0, [r6]
- adds r0, 0x4
- adds r0, r3
- ldr r0, [r0]
- lsls r1, r5, 24
- lsrs r1, 24
- bl StartSpriteAnim
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x3
- bls _08096488
- movs r4, 0
- ldr r5, _08096574 @ =gUnknown_02038478
-_08096504:
- lsls r0, r4, 3
- adds r0, r4
- lsls r0, 19
- movs r3, 0xF8
- lsls r3, 15
- adds r0, r3
- lsrs r0, 16
- lsls r2, r4, 24
- lsrs r2, 24
- ldr r1, [r5]
- ldr r3, _08096584 @ =0x0000023e
- adds r1, r3
- ldrb r1, [r1]
- str r1, [sp]
- movs r1, 0x58
- movs r3, 0
- bl sub_809A9A0
- adds r2, r0, 0
- ldr r0, [r5]
- lsls r1, r4, 2
- adds r0, 0x20
- adds r0, r1
- str r2, [r0]
- cmp r2, 0
- beq _0809654C
- movs r1, 0x1
- cmp r4, 0
- bne _08096544
- movs r3, 0x1
- negs r3, r3
- adds r1, r3, 0
-_08096544:
- strh r1, [r2, 0x2E]
- ldr r1, [r0]
- ldr r0, _08096588 @ =sub_8096784
- str r0, [r1, 0x1C]
-_0809654C:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x1
- bls _08096504
- bl sub_809665C
- add sp, 0x3C
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08096564: .4byte 0xffff0fff
-_08096568: .4byte gDummySpriteAnimTable
-_0809656C: .4byte gDummySpriteAffineAnimTable
-_08096570: .4byte SpriteCallbackDummy
-_08096574: .4byte gUnknown_02038478
-_08096578: .4byte 0x00000242
-_0809657C: .4byte gSprites
-_08096580: .4byte gSpriteAnimTable_83B604C
-_08096584: .4byte 0x0000023e
-_08096588: .4byte sub_8096784
- thumb_func_end sub_80963D0
-
- thumb_func_start sub_809658C
-sub_809658C: @ 809658C
- push {r4-r6,lr}
- ldr r4, _080965F4 @ =gUnknown_02038478
- ldr r0, [r4]
- ldr r0, [r0]
- cmp r0, 0
- beq _080965A2
- bl DestroySprite
- ldr r1, [r4]
- movs r0, 0
- str r0, [r1]
-_080965A2:
- movs r5, 0
- adds r6, r4, 0
-_080965A6:
- ldr r0, [r6]
- lsls r4, r5, 2
- adds r0, 0x4
- adds r0, r4
- ldr r0, [r0]
- cmp r0, 0
- beq _080965C2
- bl DestroySprite
- ldr r0, [r6]
- adds r0, 0x4
- adds r0, r4
- movs r1, 0
- str r1, [r0]
-_080965C2:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x3
- bls _080965A6
- movs r5, 0
-_080965CE:
- ldr r0, _080965F4 @ =gUnknown_02038478
- ldr r0, [r0]
- lsls r1, r5, 2
- adds r0, 0x20
- adds r0, r1
- ldr r0, [r0]
- cmp r0, 0
- beq _080965E2
- bl DestroySprite
-_080965E2:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x1
- bls _080965CE
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080965F4: .4byte gUnknown_02038478
- thumb_func_end sub_809658C
-
- thumb_func_start sub_80965F8
-sub_80965F8: @ 80965F8
- push {lr}
- ldr r2, _08096628 @ =gUnknown_02038478
- ldr r1, [r2]
- movs r0, 0x8F
- lsls r0, 2
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xD
- bls _0809661E
- ldr r0, [r2]
- movs r1, 0x8F
- lsls r1, 2
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
-_0809661E:
- bl sub_809665C
- pop {r0}
- bx r0
- .align 2, 0
-_08096628: .4byte gUnknown_02038478
- thumb_func_end sub_80965F8
-
- thumb_func_start sub_809662C
-sub_809662C: @ 809662C
- push {lr}
- ldr r0, _08096644 @ =gUnknown_02038478
- ldr r2, [r0]
- movs r1, 0x8F
- lsls r1, 2
- adds r0, r2, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _08096648
- subs r1, r0, 0x1
- b _0809664A
- .align 2, 0
-_08096644: .4byte gUnknown_02038478
-_08096648:
- movs r1, 0xD
-_0809664A:
- movs r3, 0x8F
- lsls r3, 2
- adds r0, r2, r3
- strb r1, [r0]
- bl sub_809665C
- pop {r0}
- bx r0
- thumb_func_end sub_809662C
-
- thumb_func_start sub_809665C
-sub_809665C: @ 809665C
- push {r4-r7,lr}
- ldr r5, _080966B4 @ =gUnknown_02038478
- ldr r0, [r5]
- movs r4, 0x8F
- lsls r4, 2
- adds r0, r4
- ldrb r0, [r0]
- bl sub_8095ADC
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r2, _080966B8 @ =gStringVar1
- movs r6, 0xFC
- strb r6, [r2]
- movs r0, 0x4
- strb r0, [r2, 0x1]
- movs r0, 0xF
- strb r0, [r2, 0x2]
- movs r0, 0x1
- strb r0, [r2, 0x3]
- movs r0, 0xE
- strb r0, [r2, 0x4]
- adds r2, 0x5
- ldr r0, [r5]
- adds r0, r4
- ldrb r0, [r0]
- lsls r1, r0, 3
- adds r1, r0
- ldr r0, _080966BC @ =gUnknown_020383E4
- adds r1, r0
- adds r0, r2, 0
- bl StringCopy
- adds r2, r0, 0
- movs r0, 0xFE
- strb r0, [r2]
- strb r6, [r2, 0x1]
- movs r0, 0x11
- strb r0, [r2, 0x2]
- cmp r7, 0x9
- bhi _080966C0
- movs r0, 0x28
- b _080966C2
- .align 2, 0
-_080966B4: .4byte gUnknown_02038478
-_080966B8: .4byte gStringVar1
-_080966BC: .4byte gUnknown_020383E4
-_080966C0:
- movs r0, 0x22
-_080966C2:
- strb r0, [r2, 0x3]
- adds r2, 0x4
- adds r0, r2, 0
- adds r1, r7, 0
- bl ConvertIntToDecimalString
- adds r2, r0, 0
- movs r0, 0xBA
- strb r0, [r2]
- movs r0, 0xA4
- strb r0, [r2, 0x1]
- movs r0, 0xA1
- strb r0, [r2, 0x2]
- movs r0, 0xFF
- strb r0, [r2, 0x3]
- ldr r0, _080966F0 @ =gStringVar1
- movs r1, 0
- movs r2, 0x1
- bl sub_80966F4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080966F0: .4byte gStringVar1
- thumb_func_end sub_809665C
-
- thumb_func_start sub_80966F4
-sub_80966F4: @ 80966F4
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0x4
- mov r8, r0
- adds r5, r1, 0
- adds r4, r2, 0
- lsls r5, 16
- lsrs r5, 16
- lsls r4, 16
- lsrs r4, 16
- ldr r0, _08096764 @ =gUnknown_02038478
- ldr r0, [r0]
- movs r1, 0x90
- lsls r1, 2
- adds r0, r1
- ldrh r0, [r0]
- bl GetSpriteTileStartByTag
- adds r6, r0, 0
- lsls r6, 16
- lsrs r6, 11
- lsls r4, 8
- ldr r2, _08096768 @ =0x06010000
- adds r4, r2
- adds r6, r4
- lsls r5, 5
- adds r6, r5
- ldr r0, _0809676C @ =gUnknown_083B6DB8
- ldr r5, [r0]
- mov r1, sp
- ldr r2, _08096770 @ =0x00001111
- adds r0, r2, 0
- strh r0, [r1]
- ldr r4, _08096774 @ =0x040000d4
- str r1, [r4]
- str r5, [r4, 0x4]
- ldr r0, _08096778 @ =0x81000200
- str r0, [r4, 0x8]
- ldr r0, [r4, 0x8]
- ldr r0, _0809677C @ =gWindowConfig_81E6D38
- adds r1, r5, 0
- mov r2, r8
- bl sub_8004E3C
- str r5, [r4]
- str r6, [r4, 0x4]
- ldr r0, _08096780 @ =0x80000200
- str r0, [r4, 0x8]
- ldr r0, [r4, 0x8]
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08096764: .4byte gUnknown_02038478
-_08096768: .4byte 0x06010000
-_0809676C: .4byte gUnknown_083B6DB8
-_08096770: .4byte 0x00001111
-_08096774: .4byte 0x040000d4
-_08096778: .4byte 0x81000200
-_0809677C: .4byte gWindowConfig_81E6D38
-_08096780: .4byte 0x80000200
- thumb_func_end sub_80966F4
-
- thumb_func_start sub_8096784
-sub_8096784: @ 8096784
- push {lr}
- adds r1, r0, 0
- ldrh r0, [r1, 0x30]
- adds r0, 0x1
- movs r2, 0
- strh r0, [r1, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- ble _080967B4
- strh r2, [r1, 0x30]
- ldrh r0, [r1, 0x2E]
- ldrh r3, [r1, 0x24]
- adds r0, r3
- strh r0, [r1, 0x24]
- ldrh r0, [r1, 0x32]
- adds r0, 0x1
- strh r0, [r1, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5
- ble _080967B4
- strh r2, [r1, 0x32]
- strh r2, [r1, 0x24]
-_080967B4:
- pop {r0}
- bx r0
- thumb_func_end sub_8096784
-
- thumb_func_start task_intro_29
-task_intro_29: @ 80967B8
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080967D0 @ =gUnknown_0203847D
- strb r0, [r1]
- ldr r1, _080967D4 @ =0x02000000
- strb r0, [r1, 0x5]
- ldr r0, _080967D8 @ =sub_8096884
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_080967D0: .4byte gUnknown_0203847D
-_080967D4: .4byte 0x02000000
-_080967D8: .4byte sub_8096884
- thumb_func_end task_intro_29
-
- thumb_func_start sub_80967DC
-sub_80967DC: @ 80967DC
- ldr r0, _08096800 @ =REG_BG0HOFS
- movs r1, 0
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x4
- strh r1, [r0]
- subs r0, 0x2
- strh r1, [r0]
- adds r0, 0x4
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- bx lr
- .align 2, 0
-_08096800: .4byte REG_BG0HOFS
- thumb_func_end sub_80967DC
-
- thumb_func_start sub_8096804
-sub_8096804: @ 8096804
- push {lr}
- bl ResetPaletteFade
- bl ResetSpriteData
- bl FreeSpriteTileRanges
- bl FreeAllSpritePalettes
- bl ResetTasks
- ldr r1, _0809683C @ =gReservedSpriteTileCount
- movs r2, 0xA0
- lsls r2, 2
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _08096840 @ =0x02000020
- adds r1, r0, 0
- adds r1, 0x8
- movs r2, 0x8
- bl sub_809CFDC
- ldr r1, _08096844 @ =gKeyRepeatStartDelay
- movs r0, 0x14
- strh r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_0809683C: .4byte gReservedSpriteTileCount
-_08096840: .4byte 0x02000020
-_08096844: .4byte gKeyRepeatStartDelay
- thumb_func_end sub_8096804
-
- thumb_func_start sub_8096848
-sub_8096848: @ 8096848
- push {lr}
- bl sub_809B0D4
- ldr r2, _08096868 @ =gUnknown_0203847C
- movs r1, 0
- ldr r0, _0809686C @ =0x02000000
- ldrb r0, [r0, 0x5]
- cmp r0, 0x1
- bne _0809685C
- movs r1, 0x1
-_0809685C:
- strb r1, [r2]
- ldr r1, _08096870 @ =gUnknown_0203847E
- movs r0, 0
- strb r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08096868: .4byte gUnknown_0203847C
-_0809686C: .4byte 0x02000000
-_08096870: .4byte gUnknown_0203847E
- thumb_func_end sub_8096848
-
- thumb_func_start sub_8096874
-sub_8096874: @ 8096874
- movs r1, 0x80
- lsls r1, 19
- movs r2, 0xFA
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- bx lr
- thumb_func_end sub_8096874
-
- thumb_func_start sub_8096884
-sub_8096884: @ 8096884
- push {lr}
- ldr r0, _080968A0 @ =gMain
- ldr r1, _080968A4 @ =0x0000043c
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x9
- bls _08096894
- b _08096986
-_08096894:
- lsls r0, 2
- ldr r1, _080968A8 @ =_080968AC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080968A0: .4byte gMain
-_080968A4: .4byte 0x0000043c
-_080968A8: .4byte _080968AC
- .align 2, 0
-_080968AC:
- .4byte _080968D4
- .4byte _080968E8
- .4byte _080968F4
- .4byte _08096904
- .4byte _0809690E
- .4byte _08096918
- .4byte _0809691E
- .4byte _08096924
- .4byte _0809692A
- .4byte _08096964
-_080968D4:
- movs r0, 0
- bl SetVBlankCallback
- movs r1, 0x80
- lsls r1, 19
- movs r0, 0
- strh r0, [r1]
- bl sub_8096804
- b _0809697A
-_080968E8:
- ldr r0, _080968F0 @ =gWindowConfig_81E6D00
- bl SetUpWindowConfig
- b _0809697A
- .align 2, 0
-_080968F0: .4byte gWindowConfig_81E6D00
-_080968F4:
- ldr r0, _08096900 @ =gWindowConfig_81E6D00
- bl InitMenuWindow
- bl MenuZeroFillScreen
- b _0809697A
- .align 2, 0
-_08096900: .4byte gWindowConfig_81E6D00
-_08096904:
- bl sub_80967DC
- bl sub_8096848
- b _0809697A
-_0809690E:
- bl sub_8098B48
- bl sub_809AA24
- b _0809697A
-_08096918:
- bl sub_8097DE0
- b _0809697A
-_0809691E:
- bl sub_8097E70
- b _0809697A
-_08096924:
- bl sub_8098400
- b _0809697A
-_0809692A:
- ldr r0, _08096950 @ =gPokemonStorage
- ldrb r0, [r0]
- bl sub_8099BF8
- ldr r2, _08096954 @ =0x02000000
- ldr r1, _08096958 @ =0x000012bc
- adds r0, r2, r1
- movs r1, 0xA
- strh r1, [r0]
- ldr r1, _0809695C @ =0x000012be
- adds r2, r1
- ldr r1, _08096960 @ =0x0000dacb
- strh r1, [r2]
- bl sub_80F727C
- bl sub_80F7404
- b _0809697A
- .align 2, 0
-_08096950: .4byte gPokemonStorage
-_08096954: .4byte 0x02000000
-_08096958: .4byte 0x000012bc
-_0809695C: .4byte 0x000012be
-_08096960: .4byte 0x0000dacb
-_08096964:
- bl sub_8096874
- ldr r0, _0809698C @ =sub_8096BF0
- bl sub_8096BE0
- ldr r0, _08096990 @ =sub_8096B38
- bl SetMainCallback2
- ldr r0, _08096994 @ =sub_8096AFC
- bl SetVBlankCallback
-_0809697A:
- ldr r1, _08096998 @ =gMain
- ldr r0, _0809699C @ =0x0000043c
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_08096986:
- pop {r0}
- bx r0
- .align 2, 0
-_0809698C: .4byte sub_8096BF0
-_08096990: .4byte sub_8096B38
-_08096994: .4byte sub_8096AFC
-_08096998: .4byte gMain
-_0809699C: .4byte 0x0000043c
- thumb_func_end sub_8096884
-
- thumb_func_start sub_80969A0
-sub_80969A0: @ 80969A0
- push {r4,lr}
- sub sp, 0x4
- ldr r0, _080969BC @ =gMain
- ldr r1, _080969C0 @ =0x0000043c
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0xA
- bls _080969B2
- b _08096AE4
-_080969B2:
- lsls r0, 2
- ldr r1, _080969C4 @ =_080969C8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080969BC: .4byte gMain
-_080969C0: .4byte 0x0000043c
-_080969C4: .4byte _080969C8
- .align 2, 0
-_080969C8:
- .4byte _080969F4
- .4byte _08096A34
- .4byte _08096A40
- .4byte _08096A50
- .4byte _08096A56
- .4byte _08096A60
- .4byte _08096A66
- .4byte _08096A6C
- .4byte _08096A72
- .4byte _08096AAC
- .4byte _08096AC8
-_080969F4:
- movs r0, 0
- bl SetVBlankCallback
- movs r1, 0x80
- lsls r1, 19
- movs r0, 0
- strh r0, [r1]
- ldr r1, _08096A28 @ =0x02000000
- ldr r0, _08096A2C @ =gUnknown_0203847D
- ldrb r0, [r0]
- strb r0, [r1, 0x5]
- bl sub_8096804
- ldr r4, _08096A30 @ =gUnknown_0203847F
- ldrb r0, [r4]
- cmp r0, 0x1
- bne _08096A1A
- bl sub_809BBC0
-_08096A1A:
- ldrb r0, [r4]
- cmp r0, 0
- bne _08096AD8
- bl sub_809BD14
- b _08096AD8
- .align 2, 0
-_08096A28: .4byte 0x02000000
-_08096A2C: .4byte gUnknown_0203847D
-_08096A30: .4byte gUnknown_0203847F
-_08096A34:
- ldr r0, _08096A3C @ =gWindowConfig_81E6D00
- bl SetUpWindowConfig
- b _08096AD8
- .align 2, 0
-_08096A3C: .4byte gWindowConfig_81E6D00
-_08096A40:
- ldr r0, _08096A4C @ =gWindowConfig_81E6D00
- bl InitMenuWindow
- bl MenuZeroFillScreen
- b _08096AD8
- .align 2, 0
-_08096A4C: .4byte gWindowConfig_81E6D00
-_08096A50:
- bl sub_80967DC
- b _08096AD8
-_08096A56:
- bl sub_8098B48
- bl sub_809AA98
- b _08096AD8
-_08096A60:
- bl sub_8097DE0
- b _08096AD8
-_08096A66:
- bl sub_8097E70
- b _08096AD8
-_08096A6C:
- bl sub_8098400
- b _08096AD8
-_08096A72:
- ldr r0, _08096A98 @ =gPokemonStorage
- ldrb r0, [r0]
- bl sub_8099BF8
- ldr r2, _08096A9C @ =0x02000000
- ldr r1, _08096AA0 @ =0x000012bc
- adds r0, r2, r1
- movs r1, 0xA
- strh r1, [r0]
- ldr r1, _08096AA4 @ =0x000012be
- adds r2, r1
- ldr r1, _08096AA8 @ =0x0000dacb
- strh r1, [r2]
- bl sub_80F727C
- bl sub_80F7404
- b _08096AD8
- .align 2, 0
-_08096A98: .4byte gPokemonStorage
-_08096A9C: .4byte 0x02000000
-_08096AA0: .4byte 0x000012bc
-_08096AA4: .4byte 0x000012be
-_08096AA8: .4byte 0x0000dacb
-_08096AAC:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r0, _08096AC4 @ =sub_8096AFC
- bl SetVBlankCallback
- b _08096AD8
- .align 2, 0
-_08096AC4: .4byte sub_8096AFC
-_08096AC8:
- bl sub_8096874
- ldr r0, _08096AEC @ =sub_8096C68
- bl sub_8096BE0
- ldr r0, _08096AF0 @ =sub_8096B38
- bl SetMainCallback2
-_08096AD8:
- ldr r1, _08096AF4 @ =gMain
- ldr r0, _08096AF8 @ =0x0000043c
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_08096AE4:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08096AEC: .4byte sub_8096C68
-_08096AF0: .4byte sub_8096B38
-_08096AF4: .4byte gMain
-_08096AF8: .4byte 0x0000043c
- thumb_func_end sub_80969A0
-
- thumb_func_start sub_8096AFC
-sub_8096AFC: @ 8096AFC
- push {lr}
- ldr r2, _08096B2C @ =REG_BG2HOFS
- ldr r1, _08096B30 @ =0x02000000
- ldr r3, _08096B34 @ =0x000008b4
- adds r0, r1, r3
- ldrh r0, [r0]
- strh r0, [r2]
- adds r2, 0x4
- ldrh r0, [r1, 0xA]
- strh r0, [r2]
- adds r2, 0x2
- ldrh r0, [r1, 0x8]
- strh r0, [r2]
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl sub_809CFF0
- bl TransferPlttBuffer
- pop {r0}
- bx r0
- .align 2, 0
-_08096B2C: .4byte REG_BG2HOFS
-_08096B30: .4byte 0x02000000
-_08096B34: .4byte 0x000008b4
- thumb_func_end sub_8096AFC
-
- thumb_func_start sub_8096B38
-sub_8096B38: @ 8096B38
- push {lr}
- ldr r0, _08096B58 @ =0x02000000
- ldr r0, [r0]
- bl _call_via_r0
- bl sub_8097E44
- bl sub_8098734
- bl AnimateSprites
- bl BuildOamBuffer
- pop {r0}
- bx r0
- .align 2, 0
-_08096B58: .4byte 0x02000000
- thumb_func_end sub_8096B38
-
- thumb_func_start sub_8096B5C
-sub_8096B5C: @ 8096B5C
- push {r4,r5,lr}
- sub sp, 0x8
- ldr r4, _08096B70 @ =0x02000000
- ldrb r0, [r4, 0x6]
- cmp r0, 0
- beq _08096B74
- cmp r0, 0x1
- beq _08096BAC
- b _08096BCC
- .align 2, 0
-_08096B70: .4byte 0x02000000
-_08096B74:
- ldr r1, _08096B98 @ =0x00002690
- adds r0, r4, r1
- ldr r0, [r0]
- ldr r2, _08096B9C @ =0x0000268d
- adds r1, r4, r2
- ldrb r1, [r1]
- ldr r3, _08096BA0 @ =0x0000268c
- adds r2, r4, r3
- ldrb r2, [r2]
- ldr r3, _08096BA4 @ =sub_80969A0
- ldr r5, _08096BA8 @ =0x0000268e
- adds r4, r5
- ldrb r4, [r4]
- str r4, [sp]
- bl sub_809D8BC
- b _08096BCC
- .align 2, 0
-_08096B98: .4byte 0x00002690
-_08096B9C: .4byte 0x0000268d
-_08096BA0: .4byte 0x0000268c
-_08096BA4: .4byte sub_80969A0
-_08096BA8: .4byte 0x0000268e
-_08096BAC:
- ldr r0, _08096BD4 @ =gPokemonStorage
- ldrb r2, [r0]
- lsls r1, r2, 3
- adds r1, r2
- ldr r2, _08096BD8 @ =0x00008344
- adds r0, r2
- adds r1, r0
- movs r0, 0
- str r0, [sp]
- ldr r0, _08096BDC @ =sub_80969A0
- str r0, [sp, 0x4]
- movs r0, 0x1
- movs r2, 0
- movs r3, 0
- bl DoNamingScreen
-_08096BCC:
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08096BD4: .4byte gPokemonStorage
-_08096BD8: .4byte 0x00008344
-_08096BDC: .4byte sub_80969A0
- thumb_func_end sub_8096B5C
-
- thumb_func_start sub_8096BE0
-sub_8096BE0: @ 8096BE0
- ldr r1, _08096BEC @ =0x02000000
- str r0, [r1]
- movs r0, 0
- strb r0, [r1, 0x4]
- bx lr
- .align 2, 0
-_08096BEC: .4byte 0x02000000
- thumb_func_end sub_8096BE0
-
- thumb_func_start sub_8096BF0
-sub_8096BF0: @ 8096BF0
- push {r4,lr}
- ldr r4, _08096C04 @ =0x02000000
- ldrb r0, [r4, 0x4]
- cmp r0, 0x1
- beq _08096C16
- cmp r0, 0x1
- bgt _08096C08
- cmp r0, 0
- beq _08096C0E
- b _08096C5C
- .align 2, 0
-_08096C04: .4byte 0x02000000
-_08096C08:
- cmp r0, 0x2
- beq _08096C4C
- b _08096C5C
-_08096C0E:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0x10
- b _08096C38
-_08096C16:
- movs r0, 0x2
- bl PlaySE
- movs r1, 0
- movs r0, 0xE
- strh r0, [r4, 0xC]
- ldr r0, _08096C48 @ =0x0000dad0
- strh r0, [r4, 0xE]
- strh r1, [r4, 0x10]
- strh r1, [r4, 0x12]
- adds r0, r4, 0
- adds r0, 0xC
- bl sub_80C5CD4
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
-_08096C38:
- movs r2, 0
- bl BlendPalettes
- ldrb r0, [r4, 0x4]
- adds r0, 0x1
- strb r0, [r4, 0x4]
- b _08096C5C
- .align 2, 0
-_08096C48: .4byte 0x0000dad0
-_08096C4C:
- bl sub_80C5DCC
- lsls r0, 24
- cmp r0, 0
- beq _08096C5C
- ldr r0, _08096C64 @ =sub_8096C84
- bl sub_8096BE0
-_08096C5C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08096C64: .4byte sub_8096C84
- thumb_func_end sub_8096BF0
-
- thumb_func_start sub_8096C68
-sub_8096C68: @ 8096C68
- push {lr}
- bl UpdatePaletteFade
- lsls r0, 24
- cmp r0, 0
- bne _08096C7A
- ldr r0, _08096C80 @ =sub_8096C84
- bl sub_8096BE0
-_08096C7A:
- pop {r0}
- bx r0
- .align 2, 0
-_08096C80: .4byte sub_8096C84
- thumb_func_end sub_8096C68
-
- thumb_func_start sub_8096C84
-sub_8096C84: @ 8096C84
- push {r4,lr}
- ldr r0, _08096C9C @ =0x02000000
- ldrb r0, [r0, 0x4]
- cmp r0, 0x6
- bls _08096C90
- b _08096FBA
-_08096C90:
- lsls r0, 2
- ldr r1, _08096CA0 @ =_08096CA4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08096C9C: .4byte 0x02000000
-_08096CA0: .4byte _08096CA4
- .align 2, 0
-_08096CA4:
- .4byte _08096CC0
- .4byte _08096EE0
- .4byte _08096F1C
- .4byte _08096F60
- .4byte _08096F80
- .4byte _08096F8A
- .4byte _08096FA4
-_08096CC0:
- bl sub_809CA40
- lsls r0, 24
- lsrs r0, 24
- subs r0, 0x1
- cmp r0, 0xF
- bls _08096CD0
- b _08096FBA
-_08096CD0:
- lsls r0, 2
- ldr r1, _08096CDC @ =_08096CE0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08096CDC: .4byte _08096CE0
- .align 2, 0
-_08096CE0:
- .4byte _08096D20
- .4byte _08096FBA
- .4byte _08096FBA
- .4byte _08096D94
- .4byte _08096D34
- .4byte _08096D5C
- .4byte _08096DAC
- .4byte _08096DC0
- .4byte _08096DD4
- .4byte _08096DFC
- .4byte _08096E30
- .4byte _08096EB8
- .4byte _08096E70
- .4byte _08096E8C
- .4byte _08096ECC
- .4byte _08096DA0
-_08096D20:
- movs r0, 0x5
- bl PlaySE
- ldr r1, _08096D30 @ =0x02000000
- movs r0, 0x1
- strb r0, [r1, 0x4]
- b _08096FBA
- .align 2, 0
-_08096D30: .4byte 0x02000000
-_08096D34:
- ldr r4, _08096D48 @ =0x02000000
- ldrb r0, [r4, 0x5]
- cmp r0, 0x2
- beq _08096D4C
- movs r0, 0x10
- bl sub_8098898
- movs r0, 0x3
- strb r0, [r4, 0x4]
- b _08096FBA
- .align 2, 0
-_08096D48: .4byte 0x02000000
-_08096D4C:
- bl sub_809B0D4
- ldr r0, _08096D58 @ =sub_8096FC8
- bl sub_8096BE0
- b _08096FBA
- .align 2, 0
-_08096D58: .4byte sub_8096FC8
-_08096D5C:
- ldr r4, _08096D88 @ =0x02000000
- ldrb r0, [r4, 0x5]
- cmp r0, 0x2
- beq _08096D66
- b _08096FBA
-_08096D66:
- bl sub_809BF20
- lsls r0, 24
- cmp r0, 0
- beq _08096D80
- ldr r1, _08096D8C @ =0x000011f2
- adds r0, r4, r1
- ldrh r0, [r0]
- bl itemid_is_mail
- lsls r0, 24
- cmp r0, 0
- bne _08096E4C
-_08096D80:
- ldr r0, _08096D90 @ =sub_8097004
- bl sub_8096BE0
- b _08096FBA
- .align 2, 0
-_08096D88: .4byte 0x02000000
-_08096D8C: .4byte 0x000011f2
-_08096D90: .4byte sub_8097004
-_08096D94:
- ldr r0, _08096D9C @ =sub_8097BA0
- bl sub_8096BE0
- b _08096FBA
- .align 2, 0
-_08096D9C: .4byte sub_8097BA0
-_08096DA0:
- ldr r0, _08096DA8 @ =sub_8097CC0
- bl sub_8096BE0
- b _08096FBA
- .align 2, 0
-_08096DA8: .4byte sub_8097CC0
-_08096DAC:
- movs r0, 0x5
- bl PlaySE
- ldr r0, _08096DBC @ =sub_809789C
- bl sub_8096BE0
- b _08096FBA
- .align 2, 0
-_08096DBC: .4byte sub_809789C
-_08096DC0:
- movs r0, 0x5
- bl PlaySE
- ldr r0, _08096DD0 @ =sub_8097078
- bl sub_8096BE0
- b _08096FBA
- .align 2, 0
-_08096DD0: .4byte sub_8097078
-_08096DD4:
- movs r0, 0x5
- bl PlaySE
- ldr r4, _08096DF0 @ =0x02000000
- ldr r0, _08096DF4 @ =gPokemonStorage
- ldrb r0, [r0]
- adds r0, 0x1
- ldr r2, _08096DF8 @ =0x000008b2
- adds r1, r4, r2
- strh r0, [r1]
- cmp r0, 0xD
- ble _08096E18
- movs r0, 0
- b _08096E16
- .align 2, 0
-_08096DF0: .4byte 0x02000000
-_08096DF4: .4byte gPokemonStorage
-_08096DF8: .4byte 0x000008b2
-_08096DFC:
- movs r0, 0x5
- bl PlaySE
- ldr r4, _08096E24 @ =0x02000000
- ldr r0, _08096E28 @ =gPokemonStorage
- ldrb r0, [r0]
- subs r0, 0x1
- ldr r2, _08096E2C @ =0x000008b2
- adds r1, r4, r2
- strh r0, [r1]
- cmp r0, 0
- bge _08096E18
- movs r0, 0xD
-_08096E16:
- strh r0, [r1]
-_08096E18:
- ldrb r0, [r1]
- bl sub_8099C70
- movs r0, 0x2
- strb r0, [r4, 0x4]
- b _08096FBA
- .align 2, 0
-_08096E24: .4byte 0x02000000
-_08096E28: .4byte gPokemonStorage
-_08096E2C: .4byte 0x000008b2
-_08096E30:
- bl sub_809BE80
- lsls r0, 24
- cmp r0, 0
- bne _08096E96
- ldr r4, _08096E54 @ =0x02000000
- ldr r1, _08096E58 @ =0x000011f2
- adds r0, r4, r1
- ldrh r0, [r0]
- bl itemid_is_mail
- lsls r0, 24
- cmp r0, 0
- beq _08096E5C
-_08096E4C:
- movs r0, 0x5
- strb r0, [r4, 0x4]
- b _08096FBA
- .align 2, 0
-_08096E54: .4byte 0x02000000
-_08096E58: .4byte 0x000011f2
-_08096E5C:
- movs r0, 0x5
- bl PlaySE
- ldr r0, _08096E6C @ =sub_809746C
- bl sub_8096BE0
- b _08096FBA
- .align 2, 0
-_08096E6C: .4byte sub_809746C
-_08096E70:
- bl sub_809BE80
- lsls r0, 24
- cmp r0, 0
- bne _08096E96
- movs r0, 0x5
- bl PlaySE
- ldr r0, _08096E88 @ =sub_80972A8
- bl sub_8096BE0
- b _08096FBA
- .align 2, 0
-_08096E88: .4byte sub_80972A8
-_08096E8C:
- bl sub_809BEBC
- lsls r0, 24
- cmp r0, 0
- bne _08096EA4
-_08096E96:
- ldr r1, _08096EA0 @ =0x02000000
- movs r0, 0x4
- strb r0, [r1, 0x4]
- b _08096FBA
- .align 2, 0
-_08096EA0: .4byte 0x02000000
-_08096EA4:
- movs r0, 0x5
- bl PlaySE
- ldr r0, _08096EB4 @ =c3_0808DC50
- bl sub_8096BE0
- b _08096FBA
- .align 2, 0
-_08096EB4: .4byte c3_0808DC50
-_08096EB8:
- movs r0, 0x5
- bl PlaySE
- ldr r0, _08096EC8 @ =sub_8097390
- bl sub_8096BE0
- b _08096FBA
- .align 2, 0
-_08096EC8: .4byte sub_8097390
-_08096ECC:
- movs r0, 0x5
- bl PlaySE
- ldr r0, _08096EDC @ =sub_80972FC
- bl sub_8096BE0
- b _08096FBA
- .align 2, 0
-_08096EDC: .4byte sub_80972FC
-_08096EE0:
- bl sub_809AC00
- lsls r0, 24
- cmp r0, 0
- bne _08096FBA
- bl sub_809BF48
- lsls r0, 24
- cmp r0, 0
- beq _08096EFA
- bl sub_80986E8
- b _08096EFE
-_08096EFA:
- bl sub_8098710
-_08096EFE:
- ldr r4, _08096F14 @ =0x02000000
- ldr r2, _08096F18 @ =0x000011f6
- adds r0, r4, r2
- ldrb r0, [r0]
- cmp r0, 0
- beq _08096F0E
- bl BoxSetMosaic
-_08096F0E:
- movs r0, 0
- strb r0, [r4, 0x4]
- b _08096FBA
- .align 2, 0
-_08096F14: .4byte 0x02000000
-_08096F18: .4byte 0x000011f6
-_08096F1C:
- bl sub_8099D34
- lsls r0, 24
- cmp r0, 0
- bne _08096FBA
- ldr r1, _08096F50 @ =gPokemonStorage
- ldr r0, _08096F54 @ =0x02000000
- ldr r2, _08096F58 @ =0x000008b2
- adds r0, r2
- ldrh r0, [r0]
- strb r0, [r1]
- ldr r0, _08096F5C @ =gUnknown_0203847C
- ldrb r0, [r0]
- cmp r0, 0
- bne _08096F70
- bl sub_809BF20
- lsls r0, 24
- cmp r0, 0
- bne _08096F70
- bl sub_809B440
- bl BoxSetMosaic
- b _08096F70
- .align 2, 0
-_08096F50: .4byte gPokemonStorage
-_08096F54: .4byte 0x02000000
-_08096F58: .4byte 0x000008b2
-_08096F5C: .4byte gUnknown_0203847C
-_08096F60:
- ldr r0, _08096F78 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0xF3
- ands r0, r1
- cmp r0, 0
- beq _08096FBA
- bl sub_8098A5C
-_08096F70:
- ldr r1, _08096F7C @ =0x02000000
- movs r0, 0
- strb r0, [r1, 0x4]
- b _08096FBA
- .align 2, 0
-_08096F78: .4byte gMain
-_08096F7C: .4byte 0x02000000
-_08096F80:
- movs r0, 0x20
- bl PlaySE
- movs r0, 0xD
- b _08096F92
-_08096F8A:
- movs r0, 0x20
- bl PlaySE
- movs r0, 0x16
-_08096F92:
- bl sub_8098898
- ldr r1, _08096FA0 @ =0x02000000
- movs r0, 0x6
- strb r0, [r1, 0x4]
- b _08096FBA
- .align 2, 0
-_08096FA0: .4byte 0x02000000
-_08096FA4:
- ldr r0, _08096FC0 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0xF3
- ands r0, r1
- cmp r0, 0
- beq _08096FBA
- bl sub_8098A5C
- ldr r0, _08096FC4 @ =sub_8096C84
- bl sub_8096BE0
-_08096FBA:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08096FC0: .4byte gMain
-_08096FC4: .4byte sub_8096C84
- thumb_func_end sub_8096C84
-
- thumb_func_start sub_8096FC8
-sub_8096FC8: @ 8096FC8
- push {r4,lr}
- ldr r4, _08096FD8 @ =0x02000000
- ldrb r0, [r4, 0x4]
- cmp r0, 0
- beq _08096FDC
- cmp r0, 0x1
- beq _08096FE8
- b _08096FF8
- .align 2, 0
-_08096FD8: .4byte 0x02000000
-_08096FDC:
- bl sub_809880C
- ldrb r0, [r4, 0x4]
- adds r0, 0x1
- strb r0, [r4, 0x4]
- b _08096FF8
-_08096FE8:
- bl sub_8098830
- lsls r0, 24
- cmp r0, 0
- bne _08096FF8
- ldr r0, _08097000 @ =sub_8096C84
- bl sub_8096BE0
-_08096FF8:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08097000: .4byte sub_8096C84
- thumb_func_end sub_8096FC8
-
- thumb_func_start sub_8097004
-sub_8097004: @ 8097004
- push {r4,lr}
- ldr r4, _08097018 @ =0x02000000
- ldrb r0, [r4, 0x4]
- cmp r0, 0x1
- beq _0809702E
- cmp r0, 0x1
- bgt _0809701C
- cmp r0, 0
- beq _08097022
- b _0809706A
- .align 2, 0
-_08097018: .4byte 0x02000000
-_0809701C:
- cmp r0, 0x2
- beq _0809704C
- b _0809706A
-_08097022:
- movs r0, 0x5
- bl PlaySE
- bl add_to_c3_somehow
- b _08097044
-_0809702E:
- bl sub_80985CC
- lsls r0, 24
- cmp r0, 0
- bne _0809706A
- bl sub_809B0F4
- lsls r0, 24
- lsrs r0, 24
- bl sub_809B0C0
-_08097044:
- ldrb r0, [r4, 0x4]
- adds r0, 0x1
- strb r0, [r4, 0x4]
- b _0809706A
-_0809704C:
- bl sub_809AC00
- lsls r0, 24
- cmp r0, 0
- bne _0809706A
- ldr r1, _08097070 @ =0x000011f6
- adds r0, r4, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _08097064
- bl BoxSetMosaic
-_08097064:
- ldr r0, _08097074 @ =sub_8096C84
- bl sub_8096BE0
-_0809706A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08097070: .4byte 0x000011f6
-_08097074: .4byte sub_8096C84
- thumb_func_end sub_8097004
-
- thumb_func_start sub_8097078
-sub_8097078: @ 8097078
- push {r4,lr}
- ldr r0, _08097090 @ =0x02000000
- ldrb r0, [r0, 0x4]
- cmp r0, 0x5
- bls _08097084
- b _0809729A
-_08097084:
- lsls r0, 2
- ldr r1, _08097094 @ =_08097098
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08097090: .4byte 0x02000000
-_08097094: .4byte _08097098
- .align 2, 0
-_08097098:
- .4byte _080970B0
- .4byte _080970C8
- .4byte _08097258
- .4byte _0809726C
- .4byte _08097262
- .4byte _08097284
-_080970B0:
- movs r0, 0x4
- bl sub_8098898
- bl sub_809CE84
- ldr r1, _080970C4 @ =0x02000000
- movs r0, 0x1
- strb r0, [r1, 0x4]
- b _0809729A
- .align 2, 0
-_080970C4: .4byte 0x02000000
-_080970C8:
- bl sub_809CF30
- adds r0, 0x1
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x9
- bls _080970D8
- b _0809729A
-_080970D8:
- lsls r0, 2
- ldr r1, _080970E4 @ =_080970E8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080970E4: .4byte _080970E8
- .align 2, 0
-_080970E8:
- .4byte _08097110
- .4byte _08097110
- .4byte _08097190
- .4byte _08097178
- .4byte _08097120
- .4byte _08097158
- .4byte _08097140
- .4byte _08097230
- .4byte _080971CC
- .4byte _08097244
-_08097110:
- bl sub_8098A5C
- ldr r0, _0809711C @ =sub_8096C84
- bl sub_8096BE0
- b _0809729A
- .align 2, 0
-_0809711C: .4byte sub_8096C84
-_08097120:
- bl sub_809BE80
- lsls r0, 24
- cmp r0, 0
- bne _080971D6
- movs r0, 0x5
- bl PlaySE
- bl sub_8098A5C
- ldr r0, _0809713C @ =sub_80972A8
- bl sub_8096BE0
- b _0809729A
- .align 2, 0
-_0809713C: .4byte sub_80972A8
-_08097140:
- movs r0, 0x5
- bl PlaySE
- bl sub_8098A5C
- ldr r0, _08097154 @ =sub_80972FC
- bl sub_8096BE0
- b _0809729A
- .align 2, 0
-_08097154: .4byte sub_80972FC
-_08097158:
- bl sub_809BEBC
- lsls r0, 24
- cmp r0, 0
- beq _080971D6
- movs r0, 0x5
- bl PlaySE
- bl sub_8098A5C
- ldr r0, _08097174 @ =c3_0808DC50
- bl sub_8096BE0
- b _0809729A
- .align 2, 0
-_08097174: .4byte c3_0808DC50
-_08097178:
- movs r0, 0x5
- bl PlaySE
- bl sub_8098A5C
- ldr r0, _0809718C @ =sub_8097390
- bl sub_8096BE0
- b _0809729A
- .align 2, 0
-_0809718C: .4byte sub_8097390
-_08097190:
- bl sub_809BE80
- lsls r0, 24
- cmp r0, 0
- bne _080971D6
- ldr r4, _080971C0 @ =0x02000000
- ldr r1, _080971C4 @ =0x000011f2
- adds r0, r4, r1
- ldrh r0, [r0]
- bl itemid_is_mail
- lsls r0, 24
- cmp r0, 0
- bne _08097210
- movs r0, 0x5
- bl PlaySE
- bl sub_8098A5C
- ldr r0, _080971C8 @ =sub_809746C
- bl sub_8096BE0
- b _0809729A
- .align 2, 0
-_080971C0: .4byte 0x02000000
-_080971C4: .4byte 0x000011f2
-_080971C8: .4byte sub_809746C
-_080971CC:
- bl sub_809BE80
- lsls r0, 24
- cmp r0, 0
- beq _080971E4
-_080971D6:
- ldr r1, _080971E0 @ =0x02000000
- movs r0, 0x2
- strb r0, [r1, 0x4]
- b _0809729A
- .align 2, 0
-_080971E0: .4byte 0x02000000
-_080971E4:
- ldr r4, _080971F8 @ =0x02000000
- ldr r1, _080971FC @ =0x000011f9
- adds r0, r4, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _08097200
- movs r0, 0x4
- strb r0, [r4, 0x4]
- b _0809729A
- .align 2, 0
-_080971F8: .4byte 0x02000000
-_080971FC: .4byte 0x000011f9
-_08097200:
- ldr r1, _08097218 @ =0x000011f2
- adds r0, r4, r1
- ldrh r0, [r0]
- bl itemid_is_mail
- lsls r0, 24
- cmp r0, 0
- beq _0809721C
-_08097210:
- movs r0, 0x3
- strb r0, [r4, 0x4]
- b _0809729A
- .align 2, 0
-_08097218: .4byte 0x000011f2
-_0809721C:
- movs r0, 0x5
- bl PlaySE
- ldr r0, _0809722C @ =sub_8097594
- bl sub_8096BE0
- b _0809729A
- .align 2, 0
-_0809722C: .4byte sub_8097594
-_08097230:
- movs r0, 0x5
- bl PlaySE
- ldr r0, _08097240 @ =sub_8097788
- bl sub_8096BE0
- b _0809729A
- .align 2, 0
-_08097240: .4byte sub_8097788
-_08097244:
- movs r0, 0x5
- bl PlaySE
- ldr r0, _08097254 @ =sub_80977E4
- bl sub_8096BE0
- b _0809729A
- .align 2, 0
-_08097254: .4byte sub_80977E4
-_08097258:
- movs r0, 0x20
- bl PlaySE
- movs r0, 0xD
- b _08097274
-_08097262:
- movs r0, 0x20
- bl PlaySE
- movs r0, 0x11
- b _08097274
-_0809726C:
- movs r0, 0x20
- bl PlaySE
- movs r0, 0x16
-_08097274:
- bl sub_8098898
- ldr r1, _08097280 @ =0x02000000
- movs r0, 0x5
- strb r0, [r1, 0x4]
- b _0809729A
- .align 2, 0
-_08097280: .4byte 0x02000000
-_08097284:
- ldr r0, _080972A0 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0xF3
- ands r0, r1
- cmp r0, 0
- beq _0809729A
- bl sub_8098A5C
- ldr r0, _080972A4 @ =sub_8096C84
- bl sub_8096BE0
-_0809729A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080972A0: .4byte gMain
-_080972A4: .4byte sub_8096C84
- thumb_func_end sub_8097078
-
- thumb_func_start sub_80972A8
-sub_80972A8: @ 80972A8
- push {r4,lr}
- ldr r4, _080972B8 @ =0x02000000
- ldrb r0, [r4, 0x4]
- cmp r0, 0
- beq _080972BC
- cmp r0, 0x1
- beq _080972CA
- b _080972F2
- .align 2, 0
-_080972B8: .4byte 0x02000000
-_080972BC:
- movs r0, 0
- bl sub_809B100
- ldrb r0, [r4, 0x4]
- adds r0, 0x1
- strb r0, [r4, 0x4]
- b _080972F2
-_080972CA:
- bl sub_809B130
- lsls r0, 24
- cmp r0, 0
- bne _080972F2
- ldr r0, _080972E4 @ =gUnknown_0203847C
- ldrb r0, [r0]
- cmp r0, 0
- beq _080972EC
- ldr r0, _080972E8 @ =sub_8097858
- bl sub_8096BE0
- b _080972F2
- .align 2, 0
-_080972E4: .4byte gUnknown_0203847C
-_080972E8: .4byte sub_8097858
-_080972EC:
- ldr r0, _080972F8 @ =sub_8096C84
- bl sub_8096BE0
-_080972F2:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080972F8: .4byte sub_8096C84
- thumb_func_end sub_80972A8
-
- thumb_func_start sub_80972FC
-sub_80972FC: @ 80972FC
- push {r4,lr}
- ldr r4, _0809730C @ =0x02000000
- ldrb r0, [r4, 0x4]
- cmp r0, 0
- beq _08097310
- cmp r0, 0x1
- beq _0809731E
- b _08097346
- .align 2, 0
-_0809730C: .4byte 0x02000000
-_08097310:
- movs r0, 0x1
- bl sub_809B100
- ldrb r0, [r4, 0x4]
- adds r0, 0x1
- strb r0, [r4, 0x4]
- b _08097346
-_0809731E:
- bl sub_809B130
- lsls r0, 24
- cmp r0, 0
- bne _08097346
- ldr r0, _08097338 @ =gUnknown_0203847C
- ldrb r0, [r0]
- cmp r0, 0
- beq _08097340
- ldr r0, _0809733C @ =sub_8097858
- bl sub_8096BE0
- b _08097346
- .align 2, 0
-_08097338: .4byte gUnknown_0203847C
-_0809733C: .4byte sub_8097858
-_08097340:
- ldr r0, _0809734C @ =sub_8096C84
- bl sub_8096BE0
-_08097346:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0809734C: .4byte sub_8096C84
- thumb_func_end sub_80972FC
-
- thumb_func_start c3_0808DC50
-c3_0808DC50: @ 8097350
- push {r4,lr}
- ldr r4, _08097360 @ =0x02000000
- ldrb r0, [r4, 0x4]
- cmp r0, 0
- beq _08097364
- cmp r0, 0x1
- beq _08097372
- b _08097386
- .align 2, 0
-_08097360: .4byte 0x02000000
-_08097364:
- movs r0, 0x2
- bl sub_809B100
- ldrb r0, [r4, 0x4]
- adds r0, 0x1
- strb r0, [r4, 0x4]
- b _08097386
-_08097372:
- bl sub_809B130
- lsls r0, 24
- cmp r0, 0
- bne _08097386
- bl BoxSetMosaic
- ldr r0, _0809738C @ =sub_8096C84
- bl sub_8096BE0
-_08097386:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0809738C: .4byte sub_8096C84
- thumb_func_end c3_0808DC50
-
- thumb_func_start sub_8097390
-sub_8097390: @ 8097390
- push {lr}
- ldr r0, _080973A4 @ =0x02000000
- ldrb r0, [r0, 0x4]
- cmp r0, 0x5
- bhi _08097462
- lsls r0, 2
- ldr r1, _080973A8 @ =_080973AC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080973A4: .4byte 0x02000000
-_080973A8: .4byte _080973AC
- .align 2, 0
-_080973AC:
- .4byte _080973C4
- .4byte _080973FC
- .4byte _0809741C
- .4byte _0809742C
- .4byte _0809743E
- .4byte _0809745C
-_080973C4:
- bl CalculatePlayerPartyCount
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x6
- bne _080973E4
- movs r0, 0xE
- bl sub_8098898
- ldr r1, _080973E0 @ =0x02000000
- movs r0, 0x1
- strb r0, [r1, 0x4]
- b _08097462
- .align 2, 0
-_080973E0: .4byte 0x02000000
-_080973E4:
- bl sub_809B0E0
- movs r0, 0
- bl sub_809B100
- ldr r1, _080973F8 @ =0x02000000
- movs r0, 0x2
- strb r0, [r1, 0x4]
- b _08097462
- .align 2, 0
-_080973F8: .4byte 0x02000000
-_080973FC:
- ldr r0, _08097414 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0xF3
- ands r0, r1
- cmp r0, 0
- beq _08097462
- bl sub_8098A5C
- ldr r0, _08097418 @ =sub_8096C84
- bl sub_8096BE0
- b _08097462
- .align 2, 0
-_08097414: .4byte gMain
-_08097418: .4byte sub_8096C84
-_0809741C:
- bl sub_809B130
- lsls r0, 24
- cmp r0, 0
- bne _08097462
- bl sub_809880C
- b _0809744C
-_0809742C:
- bl sub_8098830
- lsls r0, 24
- cmp r0, 0
- bne _08097462
- movs r0, 0x1
- bl sub_809B100
- b _0809744C
-_0809743E:
- bl sub_809B130
- lsls r0, 24
- cmp r0, 0
- bne _08097462
- bl sub_80987DC
-_0809744C:
- ldr r1, _08097458 @ =0x02000000
- ldrb r0, [r1, 0x4]
- adds r0, 0x1
- strb r0, [r1, 0x4]
- b _08097462
- .align 2, 0
-_08097458: .4byte 0x02000000
-_0809745C:
- ldr r0, _08097468 @ =sub_8097004
- bl sub_8096BE0
-_08097462:
- pop {r0}
- bx r0
- .align 2, 0
-_08097468: .4byte sub_8097004
- thumb_func_end sub_8097390
-
- thumb_func_start sub_809746C
-sub_809746C: @ 809746C
- push {r4,lr}
- ldr r0, _08097484 @ =0x02000000
- ldrb r0, [r0, 0x4]
- cmp r0, 0x4
- bls _08097478
- b _08097584
-_08097478:
- lsls r0, 2
- ldr r1, _08097488 @ =_0809748C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08097484: .4byte 0x02000000
-_08097488: .4byte _0809748C
- .align 2, 0
-_0809748C:
- .4byte _080974A0
- .4byte _080974D8
- .4byte _08097534
- .4byte _08097548
- .4byte _0809756C
-_080974A0:
- movs r0, 0x6
- bl sub_8098898
- ldr r4, _080974C8 @ =0x02002370
- ldr r2, _080974CC @ =0x0000daca
- adds r0, r4, 0
- movs r1, 0x7
- movs r3, 0x3
- bl sub_8096264
- ldr r0, _080974D0 @ =gUnknown_0203847E
- ldrb r0, [r0]
- bl sub_809634C
- ldr r0, _080974D4 @ =0xffffdc90
- adds r4, r0
- ldrb r0, [r4, 0x4]
- adds r0, 0x1
- strb r0, [r4, 0x4]
- b _08097584
- .align 2, 0
-_080974C8: .4byte 0x02002370
-_080974CC: .4byte 0x0000daca
-_080974D0: .4byte gUnknown_0203847E
-_080974D4: .4byte 0xffffdc90
-_080974D8:
- bl sub_8096368
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0xC8
- beq _08097584
- cmp r4, 0xC9
- bne _080974F6
- bl sub_8098A5C
- bl sub_809635C
- bl sub_8096310
- b _0809755E
-_080974F6:
- adds r0, r4, 0
- bl sub_809B62C
- lsls r0, 24
- cmp r0, 0
- beq _08097518
- bl sub_8098A5C
- bl sub_809635C
- bl sub_8096310
- ldr r1, _08097514 @ =0x02000000
- movs r0, 0x2
- b _08097522
- .align 2, 0
-_08097514: .4byte 0x02000000
-_08097518:
- movs r0, 0x8
- bl sub_8098898
- ldr r1, _0809752C @ =0x02000000
- movs r0, 0x4
-_08097522:
- strb r0, [r1, 0x4]
- ldr r0, _08097530 @ =gUnknown_0203847E
- strb r4, [r0]
- b _08097584
- .align 2, 0
-_0809752C: .4byte 0x02000000
-_08097530: .4byte gUnknown_0203847E
-_08097534:
- bl party_compaction
- bl sub_8099310
- ldr r1, _08097544 @ =0x02000000
- ldrb r0, [r1, 0x4]
- adds r0, 0x1
- b _08097582
- .align 2, 0
-_08097544: .4byte 0x02000000
-_08097548:
- bl sub_8099374
- lsls r0, 24
- cmp r0, 0
- bne _08097584
- bl sub_809B6BC
- bl BoxSetMosaic
- bl sub_80987DC
-_0809755E:
- ldr r0, _08097568 @ =sub_8096C84
- bl sub_8096BE0
- b _08097584
- .align 2, 0
-_08097568: .4byte sub_8096C84
-_0809756C:
- ldr r0, _0809758C @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- beq _08097584
- movs r0, 0x6
- bl sub_8098898
- ldr r1, _08097590 @ =0x02000000
- movs r0, 0x1
-_08097582:
- strb r0, [r1, 0x4]
-_08097584:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0809758C: .4byte gMain
-_08097590: .4byte 0x02000000
- thumb_func_end sub_809746C
-
- thumb_func_start sub_8097594
-sub_8097594: @ 8097594
- push {r4,lr}
- ldr r0, _080975AC @ =0x02000000
- ldrb r0, [r0, 0x4]
- cmp r0, 0xD
- bls _080975A0
- b _0809777A
-_080975A0:
- lsls r0, 2
- ldr r1, _080975B0 @ =_080975B4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080975AC: .4byte 0x02000000
-_080975B0: .4byte _080975B4
- .align 2, 0
-_080975B4:
- .4byte _080975EC
- .4byte _08097600
- .4byte _0809763A
- .4byte _0809766E
- .4byte _0809767A
- .4byte _08097690
- .4byte _080976C8
- .4byte _080976E0
- .4byte _080976EC
- .4byte _080976F0
- .4byte _08097704
- .4byte _08097720
- .4byte _08097732
- .4byte _08097764
-_080975EC:
- movs r0, 0x9
- bl sub_8098898
- movs r0, 0x1
- bl sub_8098A38
- ldr r1, _0809761C @ =0x02000000
- ldrb r0, [r1, 0x4]
- adds r0, 0x1
- strb r0, [r1, 0x4]
-_08097600:
- bl ProcessMenuInputNoWrap
- lsls r0, 24
- asrs r1, r0, 24
- cmp r1, 0
- beq _0809762C
- cmp r1, 0
- bgt _08097620
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _08097626
- b _0809777A
- .align 2, 0
-_0809761C: .4byte 0x02000000
-_08097620:
- cmp r1, 0x1
- beq _08097626
- b _0809777A
-_08097626:
- bl sub_8098A5C
- b _080976E0
-_0809762C:
- bl sub_8098A5C
- bl sub_809B7D4
- bl sub_809B6DC
- b _08097744
-_0809763A:
- bl sub_809B960
- bl sub_809B734
- lsls r0, 24
- cmp r0, 0
- beq _0809764A
- b _0809777A
-_0809764A:
- ldr r4, _08097650 @ =0x02000000
- b _0809765A
- .align 2, 0
-_08097650: .4byte 0x02000000
-_08097654:
- cmp r0, 0
- bne _0809765A
- b _08097758
-_0809765A:
- bl sub_809B960
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x1
- bne _08097654
- ldrb r0, [r4, 0x4]
- adds r0, 0x1
- strb r0, [r4, 0x4]
- b _0809777A
-_0809766E:
- bl sub_809B760
- bl sub_809801C
- movs r0, 0xA
- b _08097740
-_0809767A:
- ldr r0, _0809768C @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- bne _08097688
- b _0809777A
-_08097688:
- movs r0, 0xB
- b _08097740
- .align 2, 0
-_0809768C: .4byte gMain
-_08097690:
- ldr r0, _080976B4 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- beq _0809777A
- bl sub_8098A5C
- ldr r0, _080976B8 @ =gUnknown_0203847C
- ldrb r0, [r0]
- cmp r0, 0
- beq _080976BC
- bl party_compaction
- bl sub_8099310
- b _08097744
- .align 2, 0
-_080976B4: .4byte gMain
-_080976B8: .4byte gUnknown_0203847C
-_080976BC:
- ldr r1, _080976C4 @ =0x02000000
- movs r0, 0x7
- strb r0, [r1, 0x4]
- b _0809777A
- .align 2, 0
-_080976C4: .4byte 0x02000000
-_080976C8:
- bl sub_8099374
- lsls r0, 24
- cmp r0, 0
- bne _0809777A
- bl sub_809B440
- bl BoxSetMosaic
- bl sub_80987DC
- b _08097744
-_080976E0:
- ldr r0, _080976E8 @ =sub_8096C84
- bl sub_8096BE0
- b _0809777A
- .align 2, 0
-_080976E8: .4byte sub_8096C84
-_080976EC:
- movs r0, 0xA
- b _08097740
-_080976F0:
- ldr r0, _08097700 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- beq _0809777A
- movs r0, 0x15
- b _08097740
- .align 2, 0
-_08097700: .4byte gMain
-_08097704:
- ldr r0, _0809771C @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- beq _0809777A
- bl sub_8098A5C
- bl sub_8099958
- b _08097744
- .align 2, 0
-_0809771C: .4byte gMain
-_08097720:
- bl sub_8099990
- lsls r0, 24
- cmp r0, 0
- bne _0809777A
- bl sub_809B7AC
- movs r0, 0x13
- b _08097740
-_08097732:
- ldr r0, _08097750 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- beq _0809777A
- movs r0, 0x14
-_08097740:
- bl sub_8098898
-_08097744:
- ldr r1, _08097754 @ =0x02000000
- ldrb r0, [r1, 0x4]
- adds r0, 0x1
- strb r0, [r1, 0x4]
- b _0809777A
- .align 2, 0
-_08097750: .4byte gMain
-_08097754: .4byte 0x02000000
-_08097758:
- ldr r1, _08097760 @ =0x02000000
- movs r0, 0x8
- strb r0, [r1, 0x4]
- b _0809777A
- .align 2, 0
-_08097760: .4byte 0x02000000
-_08097764:
- ldr r0, _08097780 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- beq _0809777A
- bl sub_8098A5C
- ldr r0, _08097784 @ =sub_8096C84
- bl sub_8096BE0
-_0809777A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08097780: .4byte gMain
-_08097784: .4byte sub_8096C84
- thumb_func_end sub_8097594
-
- thumb_func_start sub_8097788
-sub_8097788: @ 8097788
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r5, _0809779C @ =0x02000000
- ldrb r4, [r5, 0x4]
- cmp r4, 0
- beq _080977A0
- cmp r4, 0x1
- beq _080977BC
- b _080977D4
- .align 2, 0
-_0809779C: .4byte 0x02000000
-_080977A0:
- bl sub_809BC18
- movs r0, 0x1
- negs r0, r0
- str r4, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldrb r0, [r5, 0x4]
- adds r0, 0x1
- strb r0, [r5, 0x4]
- b _080977D4
-_080977BC:
- bl UpdatePaletteFade
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- bne _080977D4
- ldr r0, _080977DC @ =gUnknown_0203847F
- strb r1, [r0]
- strb r1, [r5, 0x6]
- ldr r0, _080977E0 @ =sub_8096B5C
- bl SetMainCallback2
-_080977D4:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080977DC: .4byte gUnknown_0203847F
-_080977E0: .4byte sub_8096B5C
- thumb_func_end sub_8097788
-
- thumb_func_start sub_80977E4
-sub_80977E4: @ 80977E4
- push {r4,lr}
- ldr r4, _080977F4 @ =0x02000000
- ldrb r0, [r4, 0x4]
- cmp r0, 0
- beq _080977F8
- cmp r0, 0x1
- beq _08097824
- b _0809784C
- .align 2, 0
-_080977F4: .4byte 0x02000000
-_080977F8:
- movs r0, 0xC
- bl sub_8098898
- ldr r0, _08097820 @ =0x000011f7
- adds r2, r4, r0
- ldrb r1, [r2]
- movs r3, 0x96
- lsls r3, 5
- adds r0, r4, r3
- strb r1, [r0]
- ldrb r0, [r2]
- movs r1, 0xB0
- movs r2, 0x10
- bl sub_80F7418
- ldrb r0, [r4, 0x4]
- adds r0, 0x1
- strb r0, [r4, 0x4]
- b _0809784C
- .align 2, 0
-_08097820: .4byte 0x000011f7
-_08097824:
- bl sub_80F7500
- lsls r0, 24
- cmp r0, 0
- bne _0809784C
- bl sub_80F7470
- bl sub_8098A5C
- movs r1, 0x96
- lsls r1, 5
- adds r0, r4, r1
- ldrb r0, [r0]
- bl sub_809BDD8
- bl sub_809801C
- ldr r0, _08097854 @ =sub_8096C84
- bl sub_8096BE0
-_0809784C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08097854: .4byte sub_8096C84
- thumb_func_end sub_80977E4
-
- thumb_func_start sub_8097858
-sub_8097858: @ 8097858
- push {r4,lr}
- ldr r4, _08097868 @ =0x02000000
- ldrb r0, [r4, 0x4]
- cmp r0, 0
- beq _0809786C
- cmp r0, 0x1
- beq _0809787C
- b _08097890
- .align 2, 0
-_08097868: .4byte 0x02000000
-_0809786C:
- bl party_compaction
- bl sub_8099310
- ldrb r0, [r4, 0x4]
- adds r0, 0x1
- strb r0, [r4, 0x4]
- b _08097890
-_0809787C:
- bl sub_8099374
- lsls r0, 24
- cmp r0, 0
- bne _08097890
- bl sub_80987DC
- ldr r0, _08097898 @ =sub_8096C84
- bl sub_8096BE0
-_08097890:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08097898: .4byte sub_8096C84
- thumb_func_end sub_8097858
-
- thumb_func_start sub_809789C
-sub_809789C: @ 809789C
- push {r4,lr}
- ldr r4, _080978AC @ =0x02000000
- ldrb r0, [r4, 0x4]
- cmp r0, 0
- beq _080978B0
- cmp r0, 0x1
- beq _080978C2
- b _08097968
- .align 2, 0
-_080978AC: .4byte 0x02000000
-_080978B0:
- movs r0, 0x1
- bl sub_8098898
- bl sub_809CE84
- ldrb r0, [r4, 0x4]
- adds r0, 0x1
- strb r0, [r4, 0x4]
- b _08097968
-_080978C2:
- bl sub_809CF30
- adds r0, 0x1
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xC
- bhi _08097968
- lsls r0, 2
- ldr r1, _080978DC @ =_080978E0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080978DC: .4byte _080978E0
- .align 2, 0
-_080978E0:
- .4byte _08097914
- .4byte _08097914
- .4byte _08097968
- .4byte _08097968
- .4byte _08097968
- .4byte _08097968
- .4byte _08097968
- .4byte _08097968
- .4byte _08097968
- .4byte _08097968
- .4byte _08097958
- .4byte _08097940
- .4byte _0809792C
-_08097914:
- movs r0, 0x1
- bl sub_809A860
- bl sub_8098A5C
- ldr r0, _08097928 @ =sub_8096C84
- bl sub_8096BE0
- b _08097968
- .align 2, 0
-_08097928: .4byte sub_8096C84
-_0809792C:
- movs r0, 0x5
- bl PlaySE
- ldr r0, _0809793C @ =sub_8097B44
- bl sub_8096BE0
- b _08097968
- .align 2, 0
-_0809793C: .4byte sub_8097B44
-_08097940:
- movs r0, 0x5
- bl PlaySE
- bl sub_8098A5C
- ldr r0, _08097954 @ =sub_8097974
- bl sub_8096BE0
- b _08097968
- .align 2, 0
-_08097954: .4byte sub_8097974
-_08097958:
- movs r0, 0x5
- bl PlaySE
- bl sub_8098A5C
- ldr r0, _08097970 @ =sub_8097A64
- bl sub_8096BE0
-_08097968:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08097970: .4byte sub_8097A64
- thumb_func_end sub_809789C
-
- thumb_func_start sub_8097974
-sub_8097974: @ 8097974
- push {r4,r5,lr}
- ldr r5, _08097988 @ =0x02000000
- ldrb r0, [r5, 0x4]
- cmp r0, 0x1
- beq _080979A2
- cmp r0, 0x1
- bgt _0809798C
- cmp r0, 0
- beq _08097996
- b _08097A5A
- .align 2, 0
-_08097988: .4byte 0x02000000
-_0809798C:
- cmp r0, 0x2
- beq _080979FC
- cmp r0, 0x3
- beq _08097A44
- b _08097A5A
-_08097996:
- bl sub_8098A80
- movs r0, 0x2
- bl sub_8098898
- b _08097A3C
-_080979A2:
- bl sub_809CF30
- ldr r1, _080979CC @ =0x00000d5e
- adds r4, r5, r1
- strh r0, [r4]
- movs r1, 0
- ldrsh r0, [r4, r1]
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- bne _080979D4
- movs r0, 0x1
- bl sub_809A860
- bl sub_8098A5C
- ldr r0, _080979D0 @ =sub_8096C84
- bl sub_8096BE0
- b _08097A5A
- .align 2, 0
-_080979CC: .4byte 0x00000d5e
-_080979D0: .4byte sub_8096C84
-_080979D4:
- cmp r0, r1
- blt _08097A5A
- cmp r0, 0xF
- bgt _08097A5A
- cmp r0, 0xC
- blt _08097A5A
- movs r0, 0x5
- bl PlaySE
- ldrh r0, [r4]
- subs r0, 0xC
- strh r0, [r4]
- lsls r0, 24
- lsrs r0, 24
- bl sub_8098AA8
- movs r0, 0x3
- bl sub_8098898
- b _08097A3C
-_080979FC:
- bl sub_809CF30
- movs r1, 0xD6
- lsls r1, 4
- adds r4, r5, r1
- strh r0, [r4]
- movs r0, 0
- ldrsh r1, [r4, r0]
- movs r0, 0x2
- negs r0, r0
- cmp r1, r0
- beq _08097A5A
- adds r0, 0x1
- cmp r1, r0
- bne _08097A24
- bl sub_8098A5C
- movs r0, 0
- strb r0, [r5, 0x4]
- b _08097A5A
-_08097A24:
- movs r0, 0x5
- bl PlaySE
- bl sub_8098A5C
- ldrh r0, [r4]
- subs r0, 0x10
- strh r0, [r4]
- lsls r0, 24
- lsrs r0, 24
- bl sub_8099DCC
-_08097A3C:
- ldrb r0, [r5, 0x4]
- adds r0, 0x1
- strb r0, [r5, 0x4]
- b _08097A5A
-_08097A44:
- bl sub_8099E08
- lsls r0, 24
- cmp r0, 0
- bne _08097A5A
- movs r0, 0x1
- bl sub_809A860
- ldr r0, _08097A60 @ =sub_8096C84
- bl sub_8096BE0
-_08097A5A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08097A60: .4byte sub_8096C84
- thumb_func_end sub_8097974
-
- thumb_func_start sub_8097A64
-sub_8097A64: @ 8097A64
- push {r4,r5,lr}
- ldr r5, _08097A78 @ =0x02000000
- ldrb r0, [r5, 0x4]
- cmp r0, 0x1
- beq _08097AB0
- cmp r0, 0x1
- bgt _08097A7C
- cmp r0, 0
- beq _08097A86
- b _08097B32
- .align 2, 0
-_08097A78: .4byte 0x02000000
-_08097A7C:
- cmp r0, 0x2
- beq _08097B00
- cmp r0, 0x3
- beq _08097B18
- b _08097B32
-_08097A86:
- movs r0, 0x5
- bl sub_8098898
- ldr r1, _08097AA4 @ =0x00002370
- adds r0, r5, r1
- ldr r2, _08097AA8 @ =0x0000daca
- movs r1, 0x7
- movs r3, 0x3
- bl sub_8096264
- ldr r0, _08097AAC @ =gPokemonStorage
- ldrb r0, [r0]
- bl sub_809634C
- b _08097B0A
- .align 2, 0
-_08097AA4: .4byte 0x00002370
-_08097AA8: .4byte 0x0000daca
-_08097AAC: .4byte gPokemonStorage
-_08097AB0:
- bl sub_8096368
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08097AF4 @ =0x000008b2
- adds r4, r5, r2
- strh r0, [r4]
- movs r1, 0
- ldrsh r0, [r4, r1]
- cmp r0, 0xC8
- beq _08097B32
- bl sub_8098A5C
- bl sub_809635C
- bl sub_8096310
- movs r2, 0
- ldrsh r0, [r4, r2]
- cmp r0, 0xC9
- beq _08097AE4
- adds r1, r0, 0
- ldr r0, _08097AF8 @ =gPokemonStorage
- ldrb r0, [r0]
- cmp r1, r0
- bne _08097B0A
-_08097AE4:
- movs r0, 0x1
- bl sub_809A860
- ldr r0, _08097AFC @ =sub_8096C84
- bl sub_8096BE0
- b _08097B32
- .align 2, 0
-_08097AF4: .4byte 0x000008b2
-_08097AF8: .4byte gPokemonStorage
-_08097AFC: .4byte sub_8096C84
-_08097B00:
- ldr r1, _08097B14 @ =0x000008b2
- adds r0, r5, r1
- ldrb r0, [r0]
- bl sub_8099C70
-_08097B0A:
- ldrb r0, [r5, 0x4]
- adds r0, 0x1
- strb r0, [r5, 0x4]
- b _08097B32
- .align 2, 0
-_08097B14: .4byte 0x000008b2
-_08097B18:
- bl sub_8099D34
- lsls r0, 24
- cmp r0, 0
- bne _08097B32
- ldr r1, _08097B38 @ =gPokemonStorage
- ldr r2, _08097B3C @ =0x000008b2
- adds r0, r5, r2
- ldrh r0, [r0]
- strb r0, [r1]
- ldr r0, _08097B40 @ =sub_8096C84
- bl sub_8096BE0
-_08097B32:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08097B38: .4byte gPokemonStorage
-_08097B3C: .4byte 0x000008b2
-_08097B40: .4byte sub_8096C84
- thumb_func_end sub_8097A64
-
- thumb_func_start sub_8097B44
-sub_8097B44: @ 8097B44
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r5, _08097B58 @ =0x02000000
- ldrb r4, [r5, 0x4]
- cmp r4, 0
- beq _08097B5C
- cmp r4, 0x1
- beq _08097B78
- b _08097B8E
- .align 2, 0
-_08097B58: .4byte 0x02000000
-_08097B5C:
- bl sub_809BB90
- movs r0, 0x1
- negs r0, r0
- str r4, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldrb r0, [r5, 0x4]
- adds r0, 0x1
- strb r0, [r5, 0x4]
- b _08097B8E
-_08097B78:
- bl UpdatePaletteFade
- lsls r0, 24
- cmp r0, 0
- bne _08097B8E
- ldr r0, _08097B98 @ =gUnknown_0203847F
- strb r4, [r0]
- strb r4, [r5, 0x6]
- ldr r0, _08097B9C @ =sub_8096B5C
- bl SetMainCallback2
-_08097B8E:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08097B98: .4byte gUnknown_0203847F
-_08097B9C: .4byte sub_8096B5C
- thumb_func_end sub_8097B44
-
- thumb_func_start sub_8097BA0
-sub_8097BA0: @ 8097BA0
- push {r4,lr}
- ldr r0, _08097BB8 @ =0x02000000
- ldrb r1, [r0, 0x4]
- adds r4, r0, 0
- cmp r1, 0x4
- bls _08097BAE
- b _08097CB0
-_08097BAE:
- lsls r0, r1, 2
- ldr r1, _08097BBC @ =_08097BC0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08097BB8: .4byte 0x02000000
-_08097BBC: .4byte _08097BC0
- .align 2, 0
-_08097BC0:
- .4byte _08097BD4
- .4byte _08097C18
- .4byte _08097C2C
- .4byte _08097C74
- .4byte _08097C98
-_08097BD4:
- bl sub_809BF20
- lsls r0, 24
- cmp r0, 0
- beq _08097BF8
- movs r0, 0x20
- bl PlaySE
- movs r0, 0xF
- bl sub_8098898
- ldr r1, _08097BF4 @ =0x02000000
- movs r0, 0x1
- strb r0, [r1, 0x4]
- b _08097CB0
- .align 2, 0
-_08097BF4: .4byte 0x02000000
-_08097BF8:
- movs r0, 0x5
- bl PlaySE
- movs r0, 0
- bl sub_8098898
- movs r0, 0
- bl sub_8098A38
- ldr r1, _08097C14 @ =0x02000000
- movs r0, 0x2
- strb r0, [r1, 0x4]
- b _08097CB0
- .align 2, 0
-_08097C14: .4byte 0x02000000
-_08097C18:
- ldr r0, _08097C28 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0xF3
- ands r0, r1
- cmp r0, 0
- beq _08097CB0
- b _08097C4A
- .align 2, 0
-_08097C28: .4byte gMain
-_08097C2C:
- bl ProcessMenuInputNoWrap
- lsls r0, 24
- asrs r1, r0, 24
- cmp r1, 0
- beq _08097C5C
- cmp r1, 0
- bgt _08097C46
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _08097C4A
- b _08097CB0
-_08097C46:
- cmp r1, 0x1
- bne _08097CB0
-_08097C4A:
- bl sub_8098A5C
- ldr r0, _08097C58 @ =sub_8096C84
- bl sub_8096BE0
- b _08097CB0
- .align 2, 0
-_08097C58: .4byte sub_8096C84
-_08097C5C:
- movs r0, 0x3
- bl PlaySE
- bl sub_8098A5C
- ldr r1, _08097C70 @ =0x02000000
- ldrb r0, [r1, 0x4]
- adds r0, 0x1
- strb r0, [r1, 0x4]
- b _08097CB0
- .align 2, 0
-_08097C70: .4byte 0x02000000
-_08097C74:
- movs r1, 0
- movs r0, 0xE
- strh r0, [r4, 0xC]
- ldr r0, _08097C94 @ =0x0000dad0
- strh r0, [r4, 0xE]
- movs r0, 0x14
- strh r0, [r4, 0x10]
- strh r1, [r4, 0x12]
- adds r0, r4, 0
- adds r0, 0xC
- bl sub_80C5E38
- ldrb r0, [r4, 0x4]
- adds r0, 0x1
- strb r0, [r4, 0x4]
- b _08097CB0
- .align 2, 0
-_08097C94: .4byte 0x0000dad0
-_08097C98:
- bl sub_80C5F98
- lsls r0, 24
- cmp r0, 0
- beq _08097CB0
- bl CalculatePlayerPartyCount
- ldr r1, _08097CB8 @ =gPlayerPartyCount
- strb r0, [r1]
- ldr r0, _08097CBC @ =sub_80961A8
- bl SetMainCallback2
-_08097CB0:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08097CB8: .4byte gPlayerPartyCount
-_08097CBC: .4byte sub_80961A8
- thumb_func_end sub_8097BA0
-
- thumb_func_start sub_8097CC0
-sub_8097CC0: @ 8097CC0
- push {r4,lr}
- ldr r0, _08097CD8 @ =0x02000000
- ldrb r1, [r0, 0x4]
- adds r4, r0, 0
- cmp r1, 0x4
- bls _08097CCE
- b _08097DD0
-_08097CCE:
- lsls r0, r1, 2
- ldr r1, _08097CDC @ =_08097CE0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08097CD8: .4byte 0x02000000
-_08097CDC: .4byte _08097CE0
- .align 2, 0
-_08097CE0:
- .4byte _08097CF4
- .4byte _08097D38
- .4byte _08097D4C
- .4byte _08097D94
- .4byte _08097DB8
-_08097CF4:
- bl sub_809BF20
- lsls r0, 24
- cmp r0, 0
- beq _08097D18
- movs r0, 0x20
- bl PlaySE
- movs r0, 0xF
- bl sub_8098898
- ldr r1, _08097D14 @ =0x02000000
- movs r0, 0x1
- strb r0, [r1, 0x4]
- b _08097DD0
- .align 2, 0
-_08097D14: .4byte 0x02000000
-_08097D18:
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x12
- bl sub_8098898
- movs r0, 0
- bl sub_8098A38
- ldr r1, _08097D34 @ =0x02000000
- movs r0, 0x2
- strb r0, [r1, 0x4]
- b _08097DD0
- .align 2, 0
-_08097D34: .4byte 0x02000000
-_08097D38:
- ldr r0, _08097D48 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0xF3
- ands r0, r1
- cmp r0, 0
- beq _08097DD0
- b _08097D6C
- .align 2, 0
-_08097D48: .4byte gMain
-_08097D4C:
- bl ProcessMenuInputNoWrap
- lsls r0, 24
- asrs r1, r0, 24
- cmp r1, 0
- beq _08097D6C
- cmp r1, 0
- bgt _08097D66
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _08097D7C
- b _08097DD0
-_08097D66:
- cmp r1, 0x1
- beq _08097D7C
- b _08097DD0
-_08097D6C:
- bl sub_8098A5C
- ldr r0, _08097D78 @ =sub_8096C84
- bl sub_8096BE0
- b _08097DD0
- .align 2, 0
-_08097D78: .4byte sub_8096C84
-_08097D7C:
- movs r0, 0x3
- bl PlaySE
- bl sub_8098A5C
- ldr r1, _08097D90 @ =0x02000000
- ldrb r0, [r1, 0x4]
- adds r0, 0x1
- strb r0, [r1, 0x4]
- b _08097DD0
- .align 2, 0
-_08097D90: .4byte 0x02000000
-_08097D94:
- movs r1, 0
- movs r0, 0xE
- strh r0, [r4, 0xC]
- ldr r0, _08097DB4 @ =0x0000dad0
- strh r0, [r4, 0xE]
- movs r0, 0x14
- strh r0, [r4, 0x10]
- strh r1, [r4, 0x12]
- adds r0, r4, 0
- adds r0, 0xC
- bl sub_80C5E38
- ldrb r0, [r4, 0x4]
- adds r0, 0x1
- strb r0, [r4, 0x4]
- b _08097DD0
- .align 2, 0
-_08097DB4: .4byte 0x0000dad0
-_08097DB8:
- bl sub_80C5F98
- lsls r0, 24
- cmp r0, 0
- beq _08097DD0
- bl CalculatePlayerPartyCount
- ldr r1, _08097DD8 @ =gPlayerPartyCount
- strb r0, [r1]
- ldr r0, _08097DDC @ =sub_80961A8
- bl SetMainCallback2
-_08097DD0:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08097DD8: .4byte gPlayerPartyCount
-_08097DDC: .4byte sub_80961A8
- thumb_func_end sub_8097CC0
-
- thumb_func_start sub_8097DE0
-sub_8097DE0: @ 8097DE0
- push {lr}
- ldr r1, _08097E1C @ =0x02000000
- movs r0, 0
- strb r0, [r1, 0x7]
- strh r0, [r1, 0x8]
- strh r0, [r1, 0xA]
- ldr r1, _08097E20 @ =REG_BG3CNT
- ldr r2, _08097E24 @ =0x00001e0f
- adds r0, r2, 0
- strh r0, [r1]
- ldr r1, _08097E28 @ =gPokemonStorageScrollingBGTile
- ldr r2, _08097E2C @ =0x0600e000
- ldr r0, _08097E30 @ =0x040000d4
- str r1, [r0]
- str r2, [r0, 0x4]
- ldr r1, _08097E34 @ =0x80000010
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- ldr r0, _08097E38 @ =gPokemonStorageScrollingBGTilemap
- ldr r1, _08097E3C @ =0x0600f000
- bl LZ77UnCompVram
- ldr r0, _08097E40 @ =gPokemonStorageScrollingBGPalette
- movs r1, 0xD0
- movs r2, 0x10
- bl LoadPalette
- pop {r0}
- bx r0
- .align 2, 0
-_08097E1C: .4byte 0x02000000
-_08097E20: .4byte REG_BG3CNT
-_08097E24: .4byte 0x00001e0f
-_08097E28: .4byte gPokemonStorageScrollingBGTile
-_08097E2C: .4byte 0x0600e000
-_08097E30: .4byte 0x040000d4
-_08097E34: .4byte 0x80000010
-_08097E38: .4byte gPokemonStorageScrollingBGTilemap
-_08097E3C: .4byte 0x0600f000
-_08097E40: .4byte gPokemonStorageScrollingBGPalette
- thumb_func_end sub_8097DE0
-
- thumb_func_start sub_8097E44
-sub_8097E44: @ 8097E44
- push {lr}
- ldr r1, _08097E6C @ =0x02000000
- ldrb r0, [r1, 0x7]
- adds r0, 0x1
- strb r0, [r1, 0x7]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bls _08097E66
- movs r0, 0
- strb r0, [r1, 0x7]
- ldrh r0, [r1, 0x8]
- subs r0, 0x1
- strh r0, [r1, 0x8]
- ldrh r0, [r1, 0xA]
- adds r0, 0x1
- strh r0, [r1, 0xA]
-_08097E66:
- pop {r0}
- bx r0
- .align 2, 0
-_08097E6C: .4byte 0x02000000
- thumb_func_end sub_8097E44
-
- thumb_func_start sub_8097E70
-sub_8097E70: @ 8097E70
- push {r4,lr}
- sub sp, 0x10
- ldr r0, _08097F2C @ =gPSSMenuHeader_Gfx
- ldr r1, _08097F30 @ =0x06005000
- bl LZ77UnCompVram
- ldr r0, _08097F34 @ =gPSSMenuHeader_Tilemap
- ldr r4, _08097F38 @ =gUnknown_02039760
- adds r1, r4, 0
- bl LZ77UnCompWram
- ldr r0, _08097F3C @ =0x06007800
- movs r1, 0
- str r1, [sp]
- str r1, [sp, 0x4]
- movs r1, 0xA
- str r1, [sp, 0x8]
- movs r1, 0x14
- str r1, [sp, 0xC]
- movs r1, 0
- movs r2, 0
- adds r3, r4, 0
- bl sub_809D034
- ldr r0, _08097F40 @ =gPSSMenu1_Pal
- movs r1, 0x10
- movs r2, 0x20
- bl LoadPalette
- ldr r0, _08097F44 @ =gPSSMenu2_Pal
- movs r1, 0
- movs r2, 0x20
- bl LoadPalette
- ldr r0, _08097F48 @ =gUnknown_083B6D74
- movs r1, 0xB0
- movs r2, 0x20
- bl LoadPalette
- ldr r0, _08097F4C @ =gUnknown_083B6D94
- movs r1, 0xC0
- movs r2, 0x20
- bl LoadPalette
- ldr r4, _08097F50 @ =gUnknownPalette_81E6692+0x2
- adds r0, r4, 0
- movs r1, 0xF1
- movs r2, 0x2
- bl LoadPalette
- adds r0, r4, 0
- movs r1, 0xF2
- movs r2, 0x2
- bl LoadPalette
- adds r0, r4, 0
- adds r0, 0x8
- movs r1, 0xF3
- movs r2, 0x2
- bl LoadPalette
- adds r0, r4, 0
- adds r0, 0x16
- movs r1, 0xF4
- movs r2, 0x4
- bl LoadPalette
- adds r0, r4, 0
- adds r0, 0x12
- movs r1, 0xF6
- movs r2, 0x4
- bl LoadPalette
- adds r4, 0x2
- adds r0, r4, 0
- movs r1, 0xFF
- movs r2, 0x2
- bl LoadPalette
- ldr r0, _08097F54 @ =gWaveformSpritePalette
- bl LoadSpritePalette
- bl sub_80980D4
- bl sub_8097F58
- bl sub_8097FB8
- bl sub_809801C
- add sp, 0x10
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08097F2C: .4byte gPSSMenuHeader_Gfx
-_08097F30: .4byte 0x06005000
-_08097F34: .4byte gPSSMenuHeader_Tilemap
-_08097F38: .4byte gUnknown_02039760
-_08097F3C: .4byte 0x06007800
-_08097F40: .4byte gPSSMenu1_Pal
-_08097F44: .4byte gPSSMenu2_Pal
-_08097F48: .4byte gUnknown_083B6D74
-_08097F4C: .4byte gUnknown_083B6D94
-_08097F50: .4byte gUnknownPalette_81E6692+0x2
-_08097F54: .4byte gWaveformSpritePalette
- thumb_func_end sub_8097E70
-
- thumb_func_start sub_8097F58
-sub_8097F58: @ 8097F58
- push {r4,lr}
- ldr r1, _08097FA4 @ =0x0000dace
- movs r0, 0xD
- movs r2, 0
- bl sub_80F7940
- ldr r4, _08097FA8 @ =0x02000000
- ldr r1, _08097FAC @ =0x000012ac
- adds r3, r4, r1
- str r0, [r3]
- ldrb r2, [r0, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r2
- strb r1, [r0, 0x5]
- ldr r0, [r3]
- adds r0, 0x43
- movs r1, 0x1
- strb r1, [r0]
- ldr r1, [r3]
- movs r0, 0x28
- strh r0, [r1, 0x20]
- ldr r1, [r3]
- movs r0, 0x95
- strh r0, [r1, 0x22]
- movs r0, 0xD
- bl GetSpriteTileStartByTag
- ldr r1, _08097FB0 @ =0x000012b8
- adds r4, r1
- lsls r0, 16
- lsrs r0, 11
- ldr r1, _08097FB4 @ =0x06010000
- adds r0, r1
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08097FA4: .4byte 0x0000dace
-_08097FA8: .4byte 0x02000000
-_08097FAC: .4byte 0x000012ac
-_08097FB0: .4byte 0x000012b8
-_08097FB4: .4byte 0x06010000
- thumb_func_end sub_8097F58
-
- thumb_func_start sub_8097FB8
-sub_8097FB8: @ 8097FB8
- push {r4,r5,lr}
- sub sp, 0x8
- ldr r0, _0809800C @ =gWaveformSpriteSheet
- ldr r1, [r0, 0x4]
- ldr r0, [r0]
- str r0, [sp]
- str r1, [sp, 0x4]
- mov r0, sp
- bl LoadSpriteSheet
- movs r4, 0
- ldr r5, _08098010 @ =0x020012b0
-_08097FD0:
- lsls r1, r4, 6
- subs r1, r4
- adds r1, 0x8
- lsls r1, 16
- asrs r1, 16
- ldr r0, _08098014 @ =gSpriteTemplate_83B6EFC
- movs r2, 0x9
- movs r3, 0x2
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r2, r4, 2
- adds r2, r5
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- ldr r0, _08098018 @ =gSprites
- adds r1, r0
- str r1, [r2]
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x1
- bls _08097FD0
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0809800C: .4byte gWaveformSpriteSheet
-_08098010: .4byte 0x020012b0
-_08098014: .4byte gSpriteTemplate_83B6EFC
-_08098018: .4byte gSprites
- thumb_func_end sub_8097FB8
-
- thumb_func_start sub_809801C
-sub_809801C: @ 809801C
- push {lr}
- ldr r1, _0809803C @ =0x02000000
- ldr r2, _08098040 @ =0x000011f0
- adds r0, r1, r2
- ldrh r0, [r0]
- subs r2, 0x4
- adds r1, r2
- ldr r1, [r1]
- bl sub_80981F0
- bl sub_80982B4
- bl sub_8098350
- pop {r0}
- bx r0
- .align 2, 0
-_0809803C: .4byte 0x02000000
-_08098040: .4byte 0x000011f0
- thumb_func_end sub_809801C
-
- thumb_func_start BoxSetMosaic
-BoxSetMosaic: @ 8098044
- push {lr}
- bl sub_809801C
- ldr r0, _08098084 @ =0x02000000
- movs r1, 0x9C
- lsls r1, 6
- adds r3, r0, r1
- ldr r2, [r3]
- cmp r2, 0
- beq _08098080
- ldrb r0, [r2, 0x1]
- movs r1, 0x10
- orrs r0, r1
- strb r0, [r2, 0x1]
- ldr r1, [r3]
- movs r0, 0xA
- strh r0, [r1, 0x2E]
- ldr r1, [r3]
- movs r0, 0x1
- strh r0, [r1, 0x30]
- ldr r1, [r3]
- ldr r0, _08098088 @ =sub_8098090
- str r0, [r1, 0x1C]
- ldr r2, _0809808C @ =REG_MOSAIC
- ldr r0, [r3]
- ldrh r0, [r0, 0x2E]
- lsls r1, r0, 12
- lsls r0, 8
- orrs r1, r0
- strh r1, [r2]
-_08098080:
- pop {r0}
- bx r0
- .align 2, 0
-_08098084: .4byte 0x02000000
-_08098088: .4byte sub_8098090
-_0809808C: .4byte REG_MOSAIC
- thumb_func_end BoxSetMosaic
-
- thumb_func_start sub_8098090
-sub_8098090: @ 8098090
- push {lr}
- adds r3, r0, 0
- ldrh r0, [r3, 0x2E]
- ldrh r1, [r3, 0x30]
- subs r0, r1
- strh r0, [r3, 0x2E]
- lsls r0, 16
- cmp r0, 0
- bge _080980A6
- movs r0, 0
- strh r0, [r3, 0x2E]
-_080980A6:
- ldr r2, _080980CC @ =REG_MOSAIC
- ldrh r0, [r3, 0x2E]
- lsls r1, r0, 12
- lsls r0, 8
- orrs r1, r0
- strh r1, [r2]
- movs r1, 0x2E
- ldrsh r0, [r3, r1]
- cmp r0, 0
- bne _080980C8
- ldrb r0, [r3, 0x1]
- movs r1, 0x11
- negs r1, r1
- ands r1, r0
- strb r1, [r3, 0x1]
- ldr r0, _080980D0 @ =SpriteCallbackDummy
- str r0, [r3, 0x1C]
-_080980C8:
- pop {r0}
- bx r0
- .align 2, 0
-_080980CC: .4byte REG_MOSAIC
-_080980D0: .4byte SpriteCallbackDummy
- thumb_func_end sub_8098090
-
- thumb_func_start sub_80980D4
-sub_80980D4: @ 80980D4
- push {r4,r5,lr}
- sub sp, 0x28
- ldr r0, _08098150 @ =gUnknown_083B6DCC
- ldr r1, [r0, 0x4]
- ldr r0, [r0]
- str r0, [sp, 0x18]
- str r1, [sp, 0x1C]
- ldr r0, _08098154 @ =gUnknown_083B6DD4
- ldr r1, [r0, 0x4]
- ldr r0, [r0]
- str r0, [sp, 0x20]
- str r1, [sp, 0x24]
- mov r1, sp
- ldr r0, _08098158 @ =gSpriteTemplate_83B6DDC
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- movs r1, 0
- add r5, sp, 0x18
- ldr r4, _0809815C @ =0x02002784
- movs r3, 0
- ldr r2, _08098160 @ =0x000007ff
-_08098102:
- adds r0, r1, r4
- strb r3, [r0]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, r2
- bls _08098102
- movs r1, 0
- ldr r3, _08098164 @ =0x02002704
- movs r2, 0
-_08098116:
- lsls r0, r1, 1
- adds r0, r3
- strh r2, [r0]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0xF
- bls _08098116
- ldr r0, _08098168 @ =0x02000000
- movs r1, 0x9C
- lsls r1, 6
- adds r0, r1
- movs r1, 0
- str r1, [r0]
- adds r0, r5, 0
- bl LoadSpriteSheet
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0
- beq _080981C4
- add r0, sp, 0x20
- bl LoadSpritePalette
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0xFF
- beq _080981C4
- b _080981B0
- .align 2, 0
-_08098150: .4byte gUnknown_083B6DCC
-_08098154: .4byte gUnknown_083B6DD4
-_08098158: .4byte gSpriteTemplate_83B6DDC
-_0809815C: .4byte 0x02002784
-_08098160: .4byte 0x000007ff
-_08098164: .4byte 0x02002704
-_08098168: .4byte 0x02000000
-_0809816C:
- ldr r2, _0809819C @ =0x02000000
- movs r0, 0x9C
- lsls r0, 6
- adds r3, r2, r0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080981A0 @ =gSprites
- adds r0, r1
- str r0, [r3]
- lsls r0, r4, 4
- movs r1, 0x80
- lsls r1, 1
- adds r0, r1
- ldr r3, _080981A4 @ =0x000026fa
- adds r1, r2, r3
- strh r0, [r1]
- ldr r4, _080981A8 @ =0x000026fc
- adds r2, r4
- lsls r0, r5, 5
- ldr r1, _080981AC @ =0x06010000
- adds r0, r1
- str r0, [r2]
- b _080981C4
- .align 2, 0
-_0809819C: .4byte 0x02000000
-_080981A0: .4byte gSprites
-_080981A4: .4byte 0x000026fa
-_080981A8: .4byte 0x000026fc
-_080981AC: .4byte 0x06010000
-_080981B0:
- mov r0, sp
- movs r1, 0x28
- movs r2, 0x30
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x40
- bne _0809816C
-_080981C4:
- ldr r0, _080981E8 @ =0x02000000
- movs r2, 0x9C
- lsls r2, 6
- adds r0, r2
- ldr r0, [r0]
- cmp r0, 0
- bne _080981DE
- movs r0, 0x2
- bl FreeSpriteTilesByTag
- ldr r0, _080981EC @ =0x0000dac7
- bl FreeSpritePaletteByTag
-_080981DE:
- add sp, 0x28
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080981E8: .4byte 0x02000000
-_080981EC: .4byte 0x0000dac7
- thumb_func_end sub_80980D4
-
- thumb_func_start sub_80981F0
-sub_80981F0: @ 80981F0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0xC
- adds r7, r1, 0
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r6, _08098274 @ =0x02000000
- movs r0, 0x9C
- lsls r0, 6
- adds r0, r6
- mov r8, r0
- ldr r0, [r0]
- cmp r0, 0
- beq _080982A6
- cmp r4, 0
- beq _0809829C
- lsls r0, r4, 3
- ldr r1, _08098278 @ =gMonFrontPicTable
- adds r0, r1
- ldr r2, _0809827C @ =gMonFrontPicCoords
- lsls r1, r4, 2
- adds r1, r2
- ldrb r1, [r1]
- ldr r2, _08098280 @ =0x00004784
- adds r3, r6, r2
- ldr r2, _08098284 @ =0x00002784
- adds r5, r6, r2
- str r5, [sp]
- str r4, [sp, 0x4]
- str r7, [sp, 0x8]
- movs r2, 0x1
- bl sub_800D334
- ldr r1, _08098288 @ =0x000011e8
- adds r0, r6, r1
- ldr r0, [r0]
- ldr r2, _0809828C @ =0x00002704
- adds r4, r6, r2
- adds r1, r4, 0
- bl LZ77UnCompWram
- ldr r1, _08098290 @ =0x000026fc
- adds r0, r6, r1
- ldr r1, [r0]
- ldr r2, _08098294 @ =0x04000200
- adds r0, r5, 0
- bl CpuSet
- ldr r2, _08098298 @ =0x000026fa
- adds r0, r6, r2
- ldrh r1, [r0]
- adds r0, r4, 0
- movs r2, 0x20
- bl LoadPalette
- mov r0, r8
- ldr r1, [r0]
- adds r1, 0x3E
- ldrb r2, [r1]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- b _080982A6
- .align 2, 0
-_08098274: .4byte 0x02000000
-_08098278: .4byte gMonFrontPicTable
-_0809827C: .4byte gMonFrontPicCoords
-_08098280: .4byte 0x00004784
-_08098284: .4byte 0x00002784
-_08098288: .4byte 0x000011e8
-_0809828C: .4byte 0x00002704
-_08098290: .4byte 0x000026fc
-_08098294: .4byte 0x04000200
-_08098298: .4byte 0x000026fa
-_0809829C:
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
-_080982A6:
- add sp, 0xC
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80981F0
-
- thumb_func_start sub_80982B4
-sub_80982B4: @ 80982B4
- push {r4,lr}
- ldr r4, _080982E4 @ =0x02000000
- ldr r1, _080982E8 @ =0x000011f0
- adds r0, r4, r1
- ldrh r0, [r0]
- cmp r0, 0
- beq _080982F4
- ldr r2, _080982EC @ =0x000011f7
- adds r0, r4, r2
- ldrb r0, [r0]
- adds r2, 0xC1
- adds r1, r4, r2
- ldr r1, [r1]
- bl sub_80F7A10
- ldr r1, _080982F0 @ =0x000012ac
- adds r0, r4, r1
- ldr r1, [r0]
- adds r1, 0x3E
- ldrb r2, [r1]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- b _08098302
- .align 2, 0
-_080982E4: .4byte 0x02000000
-_080982E8: .4byte 0x000011f0
-_080982EC: .4byte 0x000011f7
-_080982F0: .4byte 0x000012ac
-_080982F4:
- ldr r2, _08098348 @ =0x000012ac
- adds r0, r4, r2
- ldr r1, [r0]
- adds r1, 0x3E
- ldrb r0, [r1]
- movs r2, 0x4
- orrs r0, r2
-_08098302:
- strb r0, [r1]
- movs r0, 0
- movs r1, 0xB
- movs r2, 0x9
- movs r3, 0x11
- bl MenuZeroFillWindowRect
- ldr r4, _0809834C @ =0x0200127a
- adds r0, r4, 0
- movs r1, 0x1
- movs r2, 0x10
- bl MenuPrint
- adds r0, r4, 0
- subs r0, 0x6B
- movs r1, 0x1
- movs r2, 0xB
- bl MenuPrint
- adds r0, r4, 0
- subs r0, 0x46
- movs r1, 0
- movs r2, 0xD
- bl MenuPrint
- subs r4, 0x21
- adds r0, r4, 0
- movs r1, 0x1
- movs r2, 0xF
- bl MenuPrint
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08098348: .4byte 0x000012ac
-_0809834C: .4byte 0x0200127a
- thumb_func_end sub_80982B4
-
- thumb_func_start sub_8098350
-sub_8098350: @ 8098350
- push {r4,r5,lr}
- sub sp, 0x10
- ldr r5, _080983A0 @ =0x02000000
- ldr r1, _080983A4 @ =0x000011f0
- adds r0, r5, r1
- ldrh r2, [r0]
- cmp r2, 0
- beq _080983B4
- ldr r0, _080983A8 @ =0x06007800
- ldr r3, _080983AC @ =gUnknown_02039760
- movs r1, 0x1
- str r1, [sp]
- movs r1, 0
- str r1, [sp, 0x4]
- movs r1, 0x8
- str r1, [sp, 0x8]
- movs r1, 0x2
- str r1, [sp, 0xC]
- movs r1, 0x1
- movs r2, 0
- bl sub_809D034
- movs r4, 0
- ldr r0, _080983B0 @ =0x000012b0
- adds r5, r0
-_08098382:
- lsls r0, r4, 2
- adds r0, r5
- ldr r0, [r0]
- lsls r1, r4, 1
- adds r1, 0x1
- lsls r1, 24
- lsrs r1, 24
- bl StartSpriteAnimIfDifferent
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x1
- bls _08098382
- b _080983EC
- .align 2, 0
-_080983A0: .4byte 0x02000000
-_080983A4: .4byte 0x000011f0
-_080983A8: .4byte 0x06007800
-_080983AC: .4byte gUnknown_02039760
-_080983B0: .4byte 0x000012b0
-_080983B4:
- ldr r0, _080983F4 @ =0x06007800
- ldr r3, _080983F8 @ =gUnknown_02039760
- movs r1, 0xA
- str r1, [sp]
- str r2, [sp, 0x4]
- movs r1, 0x8
- str r1, [sp, 0x8]
- movs r1, 0x2
- str r1, [sp, 0xC]
- movs r1, 0x1
- movs r2, 0
- bl sub_809D034
- movs r4, 0
- ldr r1, _080983FC @ =0x000012b0
- adds r5, r1
-_080983D4:
- lsls r0, r4, 2
- adds r0, r5
- ldr r0, [r0]
- lsls r1, r4, 25
- lsrs r1, 24
- bl StartSpriteAnim
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x1
- bls _080983D4
-_080983EC:
- add sp, 0x10
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080983F4: .4byte 0x06007800
-_080983F8: .4byte gUnknown_02039760
-_080983FC: .4byte 0x000012b0
- thumb_func_end sub_8098350
-
- thumb_func_start sub_8098400
-sub_8098400: @ 8098400
- push {r4,r5,lr}
- sub sp, 0x14
- ldr r1, _0809847C @ =REG_BG1CNT
- ldr r2, _08098480 @ =0x00000f01
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _08098484 @ =gPSSMenuMisc_Gfx
- ldr r1, _08098488 @ =0x06006800
- bl LZ77UnCompVram
- ldr r0, _0809848C @ =gPSSMenuMisc_Tilemap
- ldr r5, _08098490 @ =0x020000a8
- adds r1, r5, 0
- bl LZ77UnCompWram
- ldr r0, _08098494 @ =gPSSMenu3_Pal
- movs r1, 0x20
- movs r2, 0x20
- bl LoadPalette
- ldr r0, _08098498 @ =gPSSMenu4_Pal
- movs r1, 0x30
- movs r2, 0x20
- bl LoadPalette
- ldr r4, _0809849C @ =0x06007800
- add r1, sp, 0x10
- movs r0, 0
- strh r0, [r1]
- ldr r0, _080984A0 @ =0x040000d4
- str r1, [r0]
- str r4, [r0, 0x4]
- ldr r1, _080984A4 @ =0x81000400
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- bl sub_8098780
- ldr r0, _080984A8 @ =gUnknown_0203847C
- ldrb r0, [r0]
- cmp r0, 0
- beq _080984AC
- movs r0, 0x1
- bl sub_8098690
- movs r0, 0x1
- bl sub_8099200
- movs r0, 0
- str r0, [sp]
- str r0, [sp, 0x4]
- movs r0, 0xC
- str r0, [sp, 0x8]
- movs r0, 0x16
- str r0, [sp, 0xC]
- adds r0, r4, 0
- movs r1, 0xA
- movs r2, 0
- adds r3, r5, 0
- bl sub_809D034
- b _080984CC
- .align 2, 0
-_0809847C: .4byte REG_BG1CNT
-_08098480: .4byte 0x00000f01
-_08098484: .4byte gPSSMenuMisc_Gfx
-_08098488: .4byte 0x06006800
-_0809848C: .4byte gPSSMenuMisc_Tilemap
-_08098490: .4byte 0x020000a8
-_08098494: .4byte gPSSMenu3_Pal
-_08098498: .4byte gPSSMenu4_Pal
-_0809849C: .4byte 0x06007800
-_080984A0: .4byte 0x040000d4
-_080984A4: .4byte 0x81000400
-_080984A8: .4byte gUnknown_0203847C
-_080984AC:
- str r0, [sp]
- movs r0, 0x14
- str r0, [sp, 0x4]
- movs r0, 0xC
- str r0, [sp, 0x8]
- movs r0, 0x2
- str r0, [sp, 0xC]
- adds r0, r4, 0
- movs r1, 0xA
- movs r2, 0
- adds r3, r5, 0
- bl sub_809D034
- movs r0, 0x1
- bl sub_8098690
-_080984CC:
- ldr r0, _080984E0 @ =0x02000000
- ldr r1, _080984E4 @ =0x000008af
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
- add sp, 0x14
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080984E0: .4byte 0x02000000
-_080984E4: .4byte 0x000008af
- thumb_func_end sub_8098400
-
- thumb_func_start sub_80984E8
-sub_80984E8: @ 80984E8
- push {lr}
- ldr r1, _08098510 @ =0x02000000
- ldr r0, _08098514 @ =0x000008a8
- adds r2, r1, r0
- movs r3, 0
- movs r0, 0x14
- strh r0, [r2]
- ldr r0, _08098518 @ =0x000008aa
- adds r2, r1, r0
- movs r0, 0x2
- strh r0, [r2]
- ldr r0, _0809851C @ =0x000008ad
- adds r1, r0
- strb r3, [r1]
- movs r0, 0
- bl sub_8099200
- pop {r0}
- bx r0
- .align 2, 0
-_08098510: .4byte 0x02000000
-_08098514: .4byte 0x000008a8
-_08098518: .4byte 0x000008aa
-_0809851C: .4byte 0x000008ad
- thumb_func_end sub_80984E8
-
- thumb_func_start sub_8098520
-sub_8098520: @ 8098520
- push {r4,r5,lr}
- sub sp, 0x10
- ldr r3, _08098578 @ =0x02000000
- ldr r0, _0809857C @ =0x000008ad
- adds r5, r3, r0
- ldrb r0, [r5]
- cmp r0, 0x14
- beq _08098592
- ldr r0, _08098580 @ =0x000008a8
- adds r1, r3, r0
- ldrh r0, [r1]
- subs r0, 0x1
- movs r4, 0
- strh r0, [r1]
- ldr r0, _08098584 @ =0x000008aa
- adds r2, r3, r0
- ldrh r0, [r2]
- adds r0, 0x1
- strh r0, [r2]
- ldr r0, _08098588 @ =0x06007800
- adds r3, 0xA8
- str r4, [sp]
- ldrh r1, [r1]
- str r1, [sp, 0x4]
- movs r1, 0xC
- str r1, [sp, 0x8]
- ldrh r1, [r2]
- str r1, [sp, 0xC]
- movs r1, 0xA
- movs r2, 0
- bl sub_809D034
- movs r0, 0x8
- bl sub_80994A8
- ldrb r0, [r5]
- adds r0, 0x1
- strb r0, [r5]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x14
- beq _0809858C
- movs r0, 0x1
- b _08098594
- .align 2, 0
-_08098578: .4byte 0x02000000
-_0809857C: .4byte 0x000008ad
-_08098580: .4byte 0x000008a8
-_08098584: .4byte 0x000008aa
-_08098588: .4byte 0x06007800
-_0809858C:
- ldr r1, _0809859C @ =gUnknown_0203847C
- movs r0, 0x1
- strb r0, [r1]
-_08098592:
- movs r0, 0
-_08098594:
- add sp, 0x10
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0809859C: .4byte gUnknown_0203847C
- thumb_func_end sub_8098520
-
- thumb_func_start add_to_c3_somehow
-add_to_c3_somehow: @ 80985A0
- ldr r1, _080985BC @ =0x02000000
- ldr r0, _080985C0 @ =0x000008a8
- adds r2, r1, r0
- movs r3, 0
- movs r0, 0
- strh r0, [r2]
- ldr r0, _080985C4 @ =0x000008aa
- adds r2, r1, r0
- movs r0, 0x16
- strh r0, [r2]
- ldr r0, _080985C8 @ =0x000008ad
- adds r1, r0
- strb r3, [r1]
- bx lr
- .align 2, 0
-_080985BC: .4byte 0x02000000
-_080985C0: .4byte 0x000008a8
-_080985C4: .4byte 0x000008aa
-_080985C8: .4byte 0x000008ad
- thumb_func_end add_to_c3_somehow
-
- thumb_func_start sub_80985CC
-sub_80985CC: @ 80985CC
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x10
- ldr r3, _08098640 @ =0x02000000
- ldr r0, _08098644 @ =0x000008ad
- adds r6, r3, r0
- ldrb r0, [r6]
- cmp r0, 0x14
- beq _0809867A
- ldr r2, _08098648 @ =0x000008a8
- adds r1, r3, r2
- ldrh r0, [r1]
- adds r0, 0x1
- movs r2, 0
- mov r9, r2
- strh r0, [r1]
- ldr r0, _0809864C @ =0x000008aa
- adds r4, r3, r0
- ldrh r0, [r4]
- subs r0, 0x1
- strh r0, [r4]
- ldr r5, _08098650 @ =0x06007800
- adds r3, 0xA8
- mov r8, r3
- str r2, [sp]
- ldrh r0, [r1]
- str r0, [sp, 0x4]
- movs r7, 0xC
- str r7, [sp, 0x8]
- ldrh r0, [r4]
- str r0, [sp, 0xC]
- adds r0, r5, 0
- movs r1, 0xA
- bl sub_809D034
- ldrh r2, [r4]
- movs r4, 0x1
- str r4, [sp]
- adds r0, r5, 0
- movs r1, 0xA
- movs r3, 0xC
- bl sub_809D16C
- movs r0, 0x8
- negs r0, r0
- bl sub_80994A8
- ldrb r0, [r6]
- adds r0, 0x1
- strb r0, [r6]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x14
- beq _08098654
- movs r0, 0x1
- b _0809867C
- .align 2, 0
-_08098640: .4byte 0x02000000
-_08098644: .4byte 0x000008ad
-_08098648: .4byte 0x000008a8
-_0809864C: .4byte 0x000008aa
-_08098650: .4byte 0x06007800
-_08098654:
- ldr r0, _0809868C @ =gUnknown_0203847C
- movs r1, 0
- strb r1, [r0]
- bl sub_809954C
- bl party_compaction
- str r7, [sp]
- mov r2, r9
- str r2, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r0, 0x2
- str r0, [sp, 0xC]
- adds r0, r5, 0
- movs r1, 0x15
- movs r2, 0
- mov r3, r8
- bl sub_809D034
-_0809867A:
- movs r0, 0
-_0809867C:
- add sp, 0x10
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0809868C: .4byte gUnknown_0203847C
- thumb_func_end sub_80985CC
-
- thumb_func_start sub_8098690
-sub_8098690: @ 8098690
- push {lr}
- sub sp, 0x10
- lsls r0, 24
- cmp r0, 0
- beq _080986C0
- ldr r0, _080986B8 @ =0x06007800
- ldr r3, _080986BC @ =0x020000a8
- movs r1, 0xC
- str r1, [sp]
- movs r1, 0
- str r1, [sp, 0x4]
- movs r1, 0x9
- str r1, [sp, 0x8]
- movs r1, 0x2
- str r1, [sp, 0xC]
- movs r1, 0x15
- movs r2, 0
- bl sub_809D034
- b _080986DA
- .align 2, 0
-_080986B8: .4byte 0x06007800
-_080986BC: .4byte 0x020000a8
-_080986C0:
- ldr r0, _080986E0 @ =0x06007800
- ldr r3, _080986E4 @ =0x020000a8
- movs r1, 0xC
- str r1, [sp]
- movs r2, 0x2
- str r2, [sp, 0x4]
- movs r1, 0x9
- str r1, [sp, 0x8]
- str r2, [sp, 0xC]
- movs r1, 0x15
- movs r2, 0
- bl sub_809D034
-_080986DA:
- add sp, 0x10
- pop {r0}
- bx r0
- .align 2, 0
-_080986E0: .4byte 0x06007800
-_080986E4: .4byte 0x020000a8
- thumb_func_end sub_8098690
-
- thumb_func_start sub_80986E8
-sub_80986E8: @ 80986E8
- ldr r1, _08098704 @ =0x02000000
- ldr r2, _08098708 @ =0x000008af
- adds r0, r1, r2
- movs r3, 0x1
- strb r3, [r0]
- movs r0, 0x8B
- lsls r0, 4
- adds r2, r1, r0
- movs r0, 0x1E
- strb r0, [r2]
- ldr r2, _0809870C @ =0x000008b1
- adds r1, r2
- strb r3, [r1]
- bx lr
- .align 2, 0
-_08098704: .4byte 0x02000000
-_08098708: .4byte 0x000008af
-_0809870C: .4byte 0x000008b1
- thumb_func_end sub_80986E8
-
- thumb_func_start sub_8098710
-sub_8098710: @ 8098710
- push {lr}
- ldr r0, _0809872C @ =0x02000000
- ldr r2, _08098730 @ =0x000008af
- adds r1, r0, r2
- ldrb r0, [r1]
- cmp r0, 0
- beq _08098728
- movs r0, 0
- strb r0, [r1]
- movs r0, 0x1
- bl sub_8098690
-_08098728:
- pop {r0}
- bx r0
- .align 2, 0
-_0809872C: .4byte 0x02000000
-_08098730: .4byte 0x000008af
- thumb_func_end sub_8098710
-
- thumb_func_start sub_8098734
-sub_8098734: @ 8098734
- push {lr}
- ldr r2, _08098774 @ =0x02000000
- ldr r1, _08098778 @ =0x000008af
- adds r0, r2, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _08098770
- movs r0, 0x8B
- lsls r0, 4
- adds r1, r2, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1E
- bls _08098770
- movs r0, 0
- strb r0, [r1]
- movs r3, 0
- ldr r0, _0809877C @ =0x000008b1
- adds r1, r2, r0
- ldrb r0, [r1]
- cmp r0, 0
- bne _08098768
- movs r3, 0x1
-_08098768:
- strb r3, [r1]
- ldrb r0, [r1]
- bl sub_8098690
-_08098770:
- pop {r0}
- bx r0
- .align 2, 0
-_08098774: .4byte 0x02000000
-_08098778: .4byte 0x000008af
-_0809877C: .4byte 0x000008b1
- thumb_func_end sub_8098734
-
- thumb_func_start sub_8098780
-sub_8098780: @ 8098780
- push {r4-r6,lr}
- sub sp, 0x10
- movs r4, 0x1
- ldr r6, _080987D4 @ =0x020000a8
- movs r5, 0x80
- lsls r5, 9
-_0809878C:
- movs r0, 0x64
- muls r0, r4
- ldr r1, _080987D8 @ =gPlayerParty
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _080987A0
- movs r0, 0x1
-_080987A0:
- movs r1, 0x10
- cmp r0, 0
- beq _080987A8
- movs r1, 0xC
-_080987A8:
- lsrs r2, r5, 16
- str r1, [sp]
- movs r0, 0x4
- str r0, [sp, 0x4]
- str r0, [sp, 0x8]
- movs r0, 0x3
- str r0, [sp, 0xC]
- adds r0, r6, 0
- movs r1, 0x7
- adds r3, r6, 0
- bl sub_809D104
- movs r0, 0xC0
- lsls r0, 10
- adds r5, r0
- adds r4, 0x1
- cmp r4, 0x5
- ble _0809878C
- add sp, 0x10
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080987D4: .4byte 0x020000a8
-_080987D8: .4byte gPlayerParty
- thumb_func_end sub_8098780
-
- thumb_func_start sub_80987DC
-sub_80987DC: @ 80987DC
- push {lr}
- sub sp, 0x10
- bl sub_8098780
- ldr r0, _08098804 @ =0x06007800
- ldr r3, _08098808 @ =0x020000a8
- movs r1, 0
- str r1, [sp]
- str r1, [sp, 0x4]
- movs r1, 0xC
- str r1, [sp, 0x8]
- movs r1, 0x16
- str r1, [sp, 0xC]
- movs r1, 0xA
- movs r2, 0
- bl sub_809D034
- add sp, 0x10
- pop {r0}
- bx r0
- .align 2, 0
-_08098804: .4byte 0x06007800
-_08098808: .4byte 0x020000a8
- thumb_func_end sub_80987DC
-
- thumb_func_start sub_809880C
-sub_809880C: @ 809880C
- push {lr}
- ldr r0, _08098828 @ =0x02000000
- ldr r1, _0809882C @ =0x000008ae
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
- movs r0, 0x6
- bl PlaySE
- bl sub_80984E8
- pop {r0}
- bx r0
- .align 2, 0
-_08098828: .4byte 0x02000000
-_0809882C: .4byte 0x000008ae
- thumb_func_end sub_809880C
-
- thumb_func_start sub_8098830
-sub_8098830: @ 8098830
- push {r4,r5,lr}
- ldr r5, _08098848 @ =0x02000000
- ldr r0, _0809884C @ =0x000008ae
- adds r4, r5, r0
- ldrb r0, [r4]
- cmp r0, 0x1
- beq _08098866
- cmp r0, 0x1
- bgt _08098850
- cmp r0, 0
- beq _08098856
- b _08098890
- .align 2, 0
-_08098848: .4byte 0x02000000
-_0809884C: .4byte 0x000008ae
-_08098850:
- cmp r0, 0x2
- beq _0809888C
- b _08098890
-_08098856:
- bl sub_8098520
- lsls r0, 24
- cmp r0, 0
- bne _08098890
- bl sub_809B068
- b _0809887E
-_08098866:
- bl sub_809AC00
- lsls r0, 24
- cmp r0, 0
- bne _08098890
- ldr r1, _08098888 @ =0x000011f6
- adds r0, r5, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _0809887E
- bl BoxSetMosaic
-_0809887E:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- b _08098890
- .align 2, 0
-_08098888: .4byte 0x000011f6
-_0809888C:
- movs r0, 0
- b _08098892
-_08098890:
- movs r0, 0x1
-_08098892:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8098830
-
- thumb_func_start sub_8098898
-sub_8098898: @ 8098898
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r0, 0xA
- movs r1, 0x10
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuDrawTextWindow
- ldr r1, _080988C4 @ =gUnknown_083B6DF4
- lsls r0, r5, 3
- adds r0, r1
- ldrb r0, [r0, 0x4]
- cmp r0, 0x6
- bls _080988B8
- b _080989F4
-_080988B8:
- lsls r0, 2
- ldr r1, _080988C8 @ =_080988CC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080988C4: .4byte gUnknown_083B6DF4
-_080988C8: .4byte _080988CC
- .align 2, 0
-_080988CC:
- .4byte _080989F4
- .4byte _08098930
- .4byte _080988E8
- .4byte _08098974
- .4byte _08098954
- .4byte _08098910
- .4byte _080989B8
-_080988E8:
- ldr r4, _08098904 @ =0x02002694
- ldr r1, _08098908 @ =gUnknown_083B6DF4
- lsls r0, r5, 3
- adds r0, r1
- ldr r1, [r0]
- adds r0, r4, 0
- bl StringCopy
- adds r2, r0, 0
- ldr r0, _0809890C @ =0xffffeb66
- adds r4, r0
- adds r0, r2, 0
- adds r1, r4, 0
- b _080989FE
- .align 2, 0
-_08098904: .4byte 0x02002694
-_08098908: .4byte gUnknown_083B6DF4
-_0809890C: .4byte 0xffffeb66
-_08098910:
- ldr r4, _08098928 @ =0x02002694
- ldr r1, _0809892C @ =gUnknown_083B6DF4
- lsls r0, r5, 3
- adds r0, r1
- ldr r1, [r0]
- adds r0, r4, 0
- bl StringCopy
- adds r2, r0, 0
- adds r4, 0x50
- adds r1, r4, 0
- b _080989FE
- .align 2, 0
-_08098928: .4byte 0x02002694
-_0809892C: .4byte gUnknown_083B6DF4
-_08098930:
- ldr r0, _08098948 @ =0x02002694
- ldr r2, _0809894C @ =0xffffeb66
- adds r1, r0, r2
- bl StringCopy
- adds r2, r0, 0
- ldr r1, _08098950 @ =gUnknown_083B6DF4
- lsls r0, r5, 3
- adds r0, r1
- ldr r1, [r0]
- adds r0, r2, 0
- b _080989FE
- .align 2, 0
-_08098948: .4byte 0x02002694
-_0809894C: .4byte 0xffffeb66
-_08098950: .4byte gUnknown_083B6DF4
-_08098954:
- ldr r0, _0809896C @ =0x02002694
- adds r1, r0, 0
- adds r1, 0x50
- bl StringCopy
- adds r2, r0, 0
- ldr r1, _08098970 @ =gUnknown_083B6DF4
- lsls r0, r5, 3
- adds r0, r1
- ldr r1, [r0]
- adds r0, r2, 0
- b _080989FE
- .align 2, 0
-_0809896C: .4byte 0x02002694
-_08098970: .4byte gUnknown_083B6DF4
-_08098974:
- ldr r1, _080989AC @ =gUnknown_083B6DF4
- lsls r0, r5, 3
- adds r0, r1
- ldr r6, [r0]
- adds r0, r6, 0
- bl StringLength
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r4, r6, r4
- adds r4, 0x1
- ldr r5, _080989B0 @ =0x02002694
- adds r0, r5, 0
- adds r1, r6, 0
- bl StringCopy
- adds r2, r0, 0
- ldr r0, _080989B4 @ =0xffffeb66
- adds r5, r0
- adds r0, r2, 0
- adds r1, r5, 0
- bl StringCopy
- adds r2, r0, 0
- adds r1, r4, 0
- b _080989FE
- .align 2, 0
-_080989AC: .4byte gUnknown_083B6DF4
-_080989B0: .4byte 0x02002694
-_080989B4: .4byte 0xffffeb66
-_080989B8:
- ldr r1, _080989EC @ =gUnknown_083B6DF4
- lsls r0, r5, 3
- adds r0, r1
- ldr r6, [r0]
- adds r0, r6, 0
- bl StringLength
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r4, r6, r4
- subs r4, 0x1
- ldr r5, _080989F0 @ =0x02002694
- adds r0, r5, 0
- adds r1, r6, 0
- bl StringCopy
- adds r2, r0, 0
- subs r0, r2, 0x1
- adds r5, 0x50
- adds r1, r5, 0
- bl StringCopy
- adds r2, r0, 0
- adds r1, r4, 0
- b _080989FE
- .align 2, 0
-_080989EC: .4byte gUnknown_083B6DF4
-_080989F0: .4byte 0x02002694
-_080989F4:
- ldr r0, _08098A2C @ =0x02002694
- ldr r2, _08098A30 @ =gUnknown_083B6DF4
- lsls r1, r5, 3
- adds r1, r2
- ldr r1, [r1]
-_080989FE:
- bl StringCopy
- adds r2, r0, 0
- ldr r0, _08098A34 @ =0x020026a6
- adds r3, r0, 0
- subs r3, 0x12
- cmp r2, r0
- bcs _08098A18
- movs r1, 0
-_08098A10:
- strb r1, [r2]
- adds r2, 0x1
- cmp r2, r0
- bcc _08098A10
-_08098A18:
- movs r0, 0xFF
- strb r0, [r2]
- adds r0, r3, 0
- movs r1, 0xB
- movs r2, 0x11
- bl MenuPrint
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08098A2C: .4byte 0x02002694
-_08098A30: .4byte gUnknown_083B6DF4
-_08098A34: .4byte 0x020026a6
- thumb_func_end sub_8098898
-
- thumb_func_start sub_8098A38
-sub_8098A38: @ 8098A38
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x17
- movs r1, 0xA
- movs r2, 0
- bl DisplayYesNoMenu
- lsls r4, 24
- asrs r4, 24
- adds r0, r4, 0
- bl MoveMenuCursor
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8098A38
-
- thumb_func_start sub_8098A5C
-sub_8098A5C: @ 8098A5C
- push {lr}
- bl sub_8072DEC
- movs r0, 0xA
- movs r1, 0x10
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- movs r0, 0x17
- movs r1, 0xA
- movs r2, 0x1D
- movs r3, 0xF
- bl MenuZeroFillWindowRect
- pop {r0}
- bx r0
- thumb_func_end sub_8098A5C
-
- thumb_func_start sub_8098A80
-sub_8098A80: @ 8098A80
- push {lr}
- bl sub_809CDCC
- movs r0, 0xC
- bl sub_809CDEC
- movs r0, 0xD
- bl sub_809CDEC
- movs r0, 0xE
- bl sub_809CDEC
- movs r0, 0xF
- bl sub_809CDEC
- bl sub_809CE84
- pop {r0}
- bx r0
- thumb_func_end sub_8098A80
-
- thumb_func_start sub_8098AA8
-sub_8098AA8: @ 8098AA8
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r5, r4, 0
- bl sub_809CDCC
- cmp r4, 0x1
- beq _08098AE6
- cmp r4, 0x1
- bgt _08098AC2
- cmp r4, 0
- beq _08098ACC
- b _08098B32
-_08098AC2:
- cmp r5, 0x2
- beq _08098B00
- cmp r5, 0x3
- beq _08098B1A
- b _08098B32
-_08098ACC:
- movs r0, 0x10
- bl sub_809CDEC
- movs r0, 0x11
- bl sub_809CDEC
- movs r0, 0x12
- bl sub_809CDEC
- movs r0, 0x13
- bl sub_809CDEC
- b _08098B32
-_08098AE6:
- movs r0, 0x14
- bl sub_809CDEC
- movs r0, 0x15
- bl sub_809CDEC
- movs r0, 0x16
- bl sub_809CDEC
- movs r0, 0x17
- bl sub_809CDEC
- b _08098B32
-_08098B00:
- movs r0, 0x18
- bl sub_809CDEC
- movs r0, 0x19
- bl sub_809CDEC
- movs r0, 0x1A
- bl sub_809CDEC
- movs r0, 0x1B
- bl sub_809CDEC
- b _08098B32
-_08098B1A:
- movs r0, 0x1C
- bl sub_809CDEC
- movs r0, 0x1D
- bl sub_809CDEC
- movs r0, 0x1E
- bl sub_809CDEC
- movs r0, 0x1F
- bl sub_809CDEC
-_08098B32:
- bl sub_809CE84
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8098AA8
-
- thumb_func_start get_preferred_box
-get_preferred_box: @ 8098B3C
- ldr r0, _08098B44 @ =gPokemonStorage
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_08098B44: .4byte gPokemonStorage
- thumb_func_end get_preferred_box
-
- thumb_func_start sub_8098B48
-sub_8098B48: @ 8098B48
- push {r4,r5,lr}
- bl sub_809D51C
- movs r2, 0
- ldr r1, _08098BD8 @ =gUnknown_083B6DB4
- ldr r0, [r1]
- ldr r4, _08098BDC @ =0x000010d0
- adds r3, r0, r4
- movs r4, 0
- adds r5, r1, 0
-_08098B5C:
- lsls r0, r2, 1
- adds r0, r3, r0
- strh r4, [r0]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x27
- bls _08098B5C
- movs r2, 0
- ldr r0, _08098BD8 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- movs r1, 0x89
- lsls r1, 5
- adds r3, r0, r1
- movs r1, 0
-_08098B7A:
- lsls r0, r2, 1
- adds r0, r3, r0
- strh r1, [r0]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x27
- bls _08098B7A
- movs r2, 0
- ldr r0, _08098BD8 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- ldr r4, _08098BE0 @ =0x00001038
- adds r3, r0, r4
- movs r1, 0
-_08098B96:
- lsls r0, r2, 2
- adds r0, r3, r0
- str r1, [r0]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x5
- bls _08098B96
- movs r2, 0
- ldr r0, _08098BD8 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- ldr r1, _08098BE4 @ =0x00001050
- adds r3, r0, r1
- movs r1, 0
-_08098BB2:
- lsls r0, r2, 2
- adds r0, r3, r0
- str r1, [r0]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x1D
- bls _08098BB2
- ldr r0, [r5]
- ldr r2, _08098BE8 @ =0x00001034
- adds r1, r0, r2
- movs r2, 0
- str r2, [r1]
- ldr r4, _08098BEC @ =0x00000d5c
- adds r0, r4
- strh r2, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08098BD8: .4byte gUnknown_083B6DB4
-_08098BDC: .4byte 0x000010d0
-_08098BE0: .4byte 0x00001038
-_08098BE4: .4byte 0x00001050
-_08098BE8: .4byte 0x00001034
-_08098BEC: .4byte 0x00000d5c
- thumb_func_end sub_8098B48
-
- thumb_func_start sub_8098BF0
-sub_8098BF0: @ 8098BF0
- push {r4-r6,lr}
- sub sp, 0x8
- ldr r0, _08098C38 @ =gUnknown_083B6DB4
- ldr r5, [r0]
- ldr r0, _08098C3C @ =0x000025b4
- adds r4, r5, r0
- adds r0, r4, 0
- movs r1, 0
- bl GetMonData
- adds r6, r0, 0
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x1
- str r1, [sp]
- movs r1, 0x7
- str r1, [sp, 0x4]
- adds r1, r6, 0
- movs r2, 0
- movs r3, 0
- bl sub_8099AFC
- ldr r1, _08098C40 @ =0x00001034
- adds r5, r1
- str r0, [r5]
- ldr r1, _08098C44 @ =sub_80999C4
- str r1, [r0, 0x1C]
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08098C38: .4byte gUnknown_083B6DB4
-_08098C3C: .4byte 0x000025b4
-_08098C40: .4byte 0x00001034
-_08098C44: .4byte sub_80999C4
- thumb_func_end sub_8098BF0
-
- thumb_func_start sub_8098C48
-sub_8098C48: @ 8098C48
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x8
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 5
- ldr r1, _08098CCC @ =gUnknown_020300A4
- adds r6, r0, r1
- movs r0, 0
- mov r8, r0
- movs r7, 0
-_08098C6A:
- movs r5, 0
- adds r1, r7, 0x1
- mov r9, r1
-_08098C70:
- adds r0, r6, 0
- movs r1, 0x41
- bl GetBoxMonData
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0
- beq _08098CD8
- adds r0, r6, 0
- movs r1, 0
- bl GetBoxMonData
- adds r1, r0, 0
- lsls r2, r5, 1
- adds r2, r5
- lsls r2, 19
- movs r3, 0xC8
- lsls r3, 15
- adds r2, r3
- asrs r2, 16
- lsls r3, r7, 1
- adds r3, r7
- lsls r3, 19
- movs r0, 0xB0
- lsls r0, 14
- adds r3, r0
- movs r0, 0x2
- str r0, [sp]
- movs r0, 0x12
- subs r0, r5
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x4]
- adds r0, r4, 0
- asrs r3, 16
- bl sub_8099AFC
- ldr r1, _08098CD0 @ =gUnknown_083B6DB4
- ldr r1, [r1]
- mov r3, r8
- lsls r2, r3, 2
- ldr r3, _08098CD4 @ =0x00001050
- adds r1, r3
- adds r1, r2
- str r0, [r1]
- b _08098CE8
- .align 2, 0
-_08098CCC: .4byte gUnknown_020300A4
-_08098CD0: .4byte gUnknown_083B6DB4
-_08098CD4: .4byte 0x00001050
-_08098CD8:
- ldr r0, _08098D18 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- mov r2, r8
- lsls r1, r2, 2
- ldr r3, _08098D1C @ =0x00001050
- adds r0, r3
- adds r0, r1
- str r4, [r0]
-_08098CE8:
- adds r6, 0x50
- mov r0, r8
- adds r0, 0x1
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x5
- bls _08098C70
- mov r1, r9
- lsls r0, r1, 16
- lsrs r7, r0, 16
- cmp r7, 0x4
- bls _08098C6A
- add sp, 0x8
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08098D18: .4byte gUnknown_083B6DB4
-_08098D1C: .4byte 0x00001050
- thumb_func_end sub_8098C48
-
- thumb_func_start sub_8098D20
-sub_8098D20: @ 8098D20
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x8
- lsls r0, 24
- lsrs r4, r0, 24
- bl get_preferred_box
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r2, r1, 4
- subs r2, r1
- lsls r2, 5
- lsls r0, r4, 2
- mov r9, r0
- adds r0, r4
- lsls r0, 4
- ldr r1, _08098DD4 @ =gUnknown_020300A4
- adds r0, r1
- adds r7, r2, r0
- adds r0, r7, 0
- movs r1, 0x41
- bl GetBoxMonData
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- cmp r0, 0
- beq _08098DC4
- adds r0, r4, 0
- movs r1, 0x6
- bl __umodsi3
- adds r6, r0, 0
- lsls r0, r6, 24
- lsrs r0, 24
- lsls r5, r0, 1
- adds r5, r0
- lsls r5, 19
- movs r1, 0xC8
- lsls r1, 15
- adds r5, r1
- lsrs r5, 16
- adds r0, r4, 0
- movs r1, 0x6
- bl __udivsi3
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 1
- adds r4, r0
- lsls r4, 19
- movs r2, 0xB0
- lsls r2, 14
- adds r4, r2
- lsrs r4, 16
- adds r0, r7, 0
- movs r1, 0
- bl GetBoxMonData
- adds r1, r0, 0
- movs r0, 0x2
- str r0, [sp]
- movs r0, 0x12
- subs r0, r6
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x4]
- mov r0, r8
- adds r2, r5, 0
- adds r3, r4, 0
- bl sub_8099AFC
- ldr r1, _08098DD8 @ =gUnknown_083B6DB4
- ldr r1, [r1]
- ldr r2, _08098DDC @ =0x00001050
- adds r1, r2
- add r1, r9
- str r0, [r1]
-_08098DC4:
- add sp, 0x8
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08098DD4: .4byte gUnknown_020300A4
-_08098DD8: .4byte gUnknown_083B6DB4
-_08098DDC: .4byte 0x00001050
- thumb_func_end sub_8098D20
-
- thumb_func_start sub_8098DE0
-sub_8098DE0: @ 8098DE0
- push {r4-r6,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- movs r2, 0
- ldr r0, _08098E18 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- ldr r1, _08098E1C @ =0x00001050
- adds r3, r0, r1
- movs r6, 0x1
- ldr r5, _08098E20 @ =sub_8098E68
-_08098DF4:
- lsls r0, r2, 2
- adds r1, r3, r0
- ldr r0, [r1]
- cmp r0, 0
- beq _08098E08
- strh r4, [r0, 0x32]
- ldr r0, [r1]
- strh r6, [r0, 0x36]
- ldr r0, [r1]
- str r5, [r0, 0x1C]
-_08098E08:
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x1D
- bls _08098DF4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08098E18: .4byte gUnknown_083B6DB4
-_08098E1C: .4byte 0x00001050
-_08098E20: .4byte sub_8098E68
- thumb_func_end sub_8098DE0
-
- thumb_func_start sub_8098E24
-sub_8098E24: @ 8098E24
- push {lr}
- adds r2, r0, 0
- ldrh r1, [r2, 0x30]
- movs r3, 0x30
- ldrsh r0, [r2, r3]
- cmp r0, 0
- beq _08098E40
- subs r0, r1, 0x1
- strh r0, [r2, 0x30]
- ldrh r0, [r2, 0x32]
- ldrh r1, [r2, 0x20]
- adds r0, r1
- strh r0, [r2, 0x20]
- b _08098E56
-_08098E40:
- ldr r0, _08098E5C @ =gUnknown_083B6DB4
- ldr r1, [r0]
- ldr r3, _08098E60 @ =0x00001178
- adds r1, r3
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
- ldrh r0, [r2, 0x34]
- strh r0, [r2, 0x20]
- ldr r0, _08098E64 @ =SpriteCallbackDummy
- str r0, [r2, 0x1C]
-_08098E56:
- pop {r0}
- bx r0
- .align 2, 0
-_08098E5C: .4byte gUnknown_083B6DB4
-_08098E60: .4byte 0x00001178
-_08098E64: .4byte SpriteCallbackDummy
- thumb_func_end sub_8098E24
-
- thumb_func_start sub_8098E68
-sub_8098E68: @ 8098E68
- push {lr}
- adds r2, r0, 0
- ldrh r1, [r2, 0x36]
- movs r3, 0x36
- ldrsh r0, [r2, r3]
- cmp r0, 0
- beq _08098E7C
- subs r0, r1, 0x1
- strh r0, [r2, 0x36]
- b _08098E98
-_08098E7C:
- ldrh r0, [r2, 0x32]
- ldrh r1, [r2, 0x20]
- adds r0, r1
- strh r0, [r2, 0x20]
- ldrh r1, [r2, 0x24]
- adds r0, r1
- strh r0, [r2, 0x38]
- subs r0, 0x45
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xB6
- bls _08098E98
- ldr r0, _08098E9C @ =SpriteCallbackDummy
- str r0, [r2, 0x1C]
-_08098E98:
- pop {r0}
- bx r0
- .align 2, 0
-_08098E9C: .4byte SpriteCallbackDummy
- thumb_func_end sub_8098E68
-
- thumb_func_start sub_8098EA0
-sub_8098EA0: @ 8098EA0
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r6, 0
- ldr r0, _08098ED8 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- ldr r1, _08098EDC @ =0x00001050
- adds r7, r0, r1
-_08098EB0:
- lsls r0, r5, 2
- adds r4, r7, r0
- ldr r0, [r4]
- cmp r0, 0
- beq _08098EC2
- bl sub_8099BE0
- movs r0, 0
- str r0, [r4]
-_08098EC2:
- adds r0, r5, 0x6
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r6, 0x4
- bls _08098EB0
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08098ED8: .4byte gUnknown_083B6DB4
-_08098EDC: .4byte 0x00001050
- thumb_func_end sub_8098EA0
-
- thumb_func_start sub_8098EE0
-sub_8098EE0: @ 8098EE0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x24
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 16
- lsrs r1, 16
- str r1, [sp, 0x8]
- lsls r2, 16
- movs r0, 0x2C
- str r0, [sp, 0x10]
- lsls r0, r6, 1
- adds r0, r6
- lsls r0, 19
- movs r1, 0xC8
- lsls r1, 15
- adds r0, r1
- lsrs r0, 16
- mov r10, r0
- ldr r0, [sp, 0x8]
- adds r0, 0x1
- lsrs r3, r2, 16
- str r3, [sp, 0xC]
- asrs r2, 16
- adds r1, r0, 0
- muls r1, r2
- mov r4, r10
- subs r1, r4, r1
- movs r0, 0x12
- subs r0, r6
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x18]
- movs r0, 0
- str r0, [sp, 0x14]
- mov r9, r0
- ldr r0, _08098FF8 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- ldr r2, _08098FFC @ =0x0000117d
- adds r2, r0
- mov r8, r2
- ldr r3, _08099000 @ =0x00001050
- adds r3, r0, r3
- str r3, [sp, 0x20]
- lsls r1, 16
- str r1, [sp, 0x1C]
-_08098F42:
- mov r4, r8
- ldrb r0, [r4]
- lsls r1, r0, 2
- adds r1, r0
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 5
- lsls r7, r6, 2
- adds r1, r7, r6
- lsls r1, 4
- ldr r2, _08099004 @ =gUnknown_020300A4
- adds r4, r1, r2
- adds r0, r4
- movs r1, 0x41
- bl GetBoxMonData
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0
- beq _08098FC8
- mov r1, r8
- ldrb r0, [r1]
- lsls r1, r0, 2
- adds r1, r0
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 5
- adds r0, r4
- movs r1, 0
- bl GetBoxMonData
- adds r1, r0, 0
- ldr r2, [sp, 0x10]
- lsls r3, r2, 16
- asrs r3, 16
- movs r0, 0x2
- str r0, [sp]
- ldr r4, [sp, 0x18]
- str r4, [sp, 0x4]
- adds r0, r5, 0
- ldr r4, [sp, 0x1C]
- asrs r2, r4, 16
- bl sub_8099AFC
- ldr r2, [sp, 0x20]
- adds r1, r2, r7
- str r0, [r1]
- cmp r0, 0
- beq _08098FC8
- mov r3, sp
- ldrh r3, [r3, 0x8]
- strh r3, [r0, 0x30]
- ldr r0, [r1]
- mov r4, sp
- ldrh r4, [r4, 0xC]
- strh r4, [r0, 0x32]
- ldr r0, [r1]
- mov r2, r10
- strh r2, [r0, 0x34]
- ldr r1, [r1]
- ldr r0, _08099008 @ =sub_8098E24
- str r0, [r1, 0x1C]
- ldr r0, [sp, 0x14]
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x14]
-_08098FC8:
- adds r0, r6, 0x6
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, [sp, 0x10]
- adds r0, 0x18
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0x10]
- mov r0, r9
- adds r0, 0x1
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
- cmp r0, 0x4
- bls _08098F42
- ldr r0, [sp, 0x14]
- add sp, 0x24
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08098FF8: .4byte gUnknown_083B6DB4
-_08098FFC: .4byte 0x0000117d
-_08099000: .4byte 0x00001050
-_08099004: .4byte gUnknown_020300A4
-_08099008: .4byte sub_8098E24
- thumb_func_end sub_8098EE0
-
- thumb_func_start sub_809900C
-sub_809900C: @ 809900C
- push {r4-r6,lr}
- lsls r1, 24
- lsrs r1, 24
- ldr r4, _08099058 @ =gUnknown_083B6DB4
- ldr r5, [r4]
- ldr r3, _0809905C @ =0x0000117c
- adds r2, r5, r3
- movs r3, 0
- strb r3, [r2]
- ldr r6, _08099060 @ =0x0000117d
- adds r2, r5, r6
- strb r0, [r2]
- ldr r2, _08099064 @ =0x0000117b
- adds r0, r5, r2
- strb r1, [r0]
- subs r6, 0xB
- adds r2, r5, r6
- movs r0, 0x20
- strh r0, [r2]
- lsls r1, 24
- asrs r1, 24
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 1
- negs r0, r0
- adds r6, 0x4
- adds r2, r5, r6
- strh r0, [r2]
- ldr r2, _08099068 @ =0x00001178
- adds r0, r5, r2
- strh r3, [r0]
- cmp r1, 0
- ble _08099070
- ldr r3, _0809906C @ =0x0000117a
- adds r1, r5, r3
- movs r0, 0
- b _08099076
- .align 2, 0
-_08099058: .4byte gUnknown_083B6DB4
-_0809905C: .4byte 0x0000117c
-_08099060: .4byte 0x0000117d
-_08099064: .4byte 0x0000117b
-_08099068: .4byte 0x00001178
-_0809906C: .4byte 0x0000117a
-_08099070:
- ldr r6, _080990A0 @ =0x0000117a
- adds r1, r5, r6
- movs r0, 0x5
-_08099076:
- strb r0, [r1]
- ldr r2, [r4]
- ldr r1, _080990A0 @ =0x0000117a
- adds r0, r2, r1
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- adds r0, 0x64
- ldr r3, _080990A4 @ =0x00001174
- adds r1, r2, r3
- strh r0, [r1]
- ldr r6, _080990A8 @ =0x00001176
- adds r2, r6
- movs r1, 0
- ldrsh r0, [r2, r1]
- bl sub_8098DE0
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080990A0: .4byte 0x0000117a
-_080990A4: .4byte 0x00001174
-_080990A8: .4byte 0x00001176
- thumb_func_end sub_809900C
-
- thumb_func_start sub_80990AC
-sub_80990AC: @ 80990AC
- push {r4-r6,lr}
- ldr r0, _080990D4 @ =gUnknown_083B6DB4
- ldr r4, [r0]
- ldr r0, _080990D8 @ =0x00001172
- adds r3, r4, r0
- ldrh r0, [r3]
- cmp r0, 0
- beq _080990C0
- subs r0, 0x1
- strh r0, [r3]
-_080990C0:
- ldr r1, _080990DC @ =0x0000117c
- adds r6, r4, r1
- ldrb r0, [r6]
- cmp r0, 0x1
- beq _08099138
- cmp r0, 0x1
- bgt _080990E0
- cmp r0, 0
- beq _080990E8
- b _080991F0
- .align 2, 0
-_080990D4: .4byte gUnknown_083B6DB4
-_080990D8: .4byte 0x00001172
-_080990DC: .4byte 0x0000117c
-_080990E0:
- cmp r0, 0x2
- bne _080990E6
- b _080991E0
-_080990E6:
- b _080991F0
-_080990E8:
- ldr r2, _0809912C @ =0x00001174
- adds r5, r4, r2
- ldr r3, _08099130 @ =0x00001176
- adds r0, r4, r3
- ldrh r0, [r0]
- ldrh r1, [r5]
- adds r0, r1
- strh r0, [r5]
- subs r0, 0x41
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xBA
- bhi _08099104
- b _080991F8
-_08099104:
- adds r2, 0x6
- adds r0, r4, r2
- ldrb r0, [r0]
- bl sub_8098EA0
- ldr r3, _08099134 @ =0x0000117b
- adds r0, r4, r3
- movs r1, 0
- ldrsb r1, [r0, r1]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- ldrh r1, [r5]
- adds r0, r1
- strh r0, [r5]
- ldrb r0, [r6]
- adds r0, 0x1
- strb r0, [r6]
- b _080991F8
- .align 2, 0
-_0809912C: .4byte 0x00001174
-_08099130: .4byte 0x00001176
-_08099134: .4byte 0x0000117b
-_08099138:
- ldr r2, _08099194 @ =0x00001174
- adds r1, r4, r2
- ldr r5, _08099198 @ =0x00001176
- adds r2, r4, r5
- ldrh r0, [r2]
- ldrh r5, [r1]
- adds r0, r5
- strh r0, [r1]
- ldr r0, _0809919C @ =0x0000117a
- adds r5, r4, r0
- ldrb r0, [r5]
- ldrh r1, [r3]
- movs r3, 0
- ldrsh r2, [r2, r3]
- bl sub_8098EE0
- ldr r2, _080991A0 @ =0x00001178
- adds r1, r4, r2
- lsls r0, 24
- lsrs r0, 24
- ldrh r3, [r1]
- adds r0, r3
- strh r0, [r1]
- ldr r1, _080991A4 @ =0x0000117b
- adds r0, r4, r1
- movs r1, 0
- ldrsb r1, [r0, r1]
- cmp r1, 0
- ble _08099178
- ldrb r0, [r5]
- cmp r0, 0x5
- beq _08099182
-_08099178:
- cmp r1, 0
- bge _080991B0
- ldrb r0, [r5]
- cmp r0, 0
- bne _080991B0
-_08099182:
- ldr r0, _080991A8 @ =gUnknown_083B6DB4
- ldr r1, [r0]
- ldr r2, _080991AC @ =0x0000117c
- adds r1, r2
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _080991F8
- .align 2, 0
-_08099194: .4byte 0x00001174
-_08099198: .4byte 0x00001176
-_0809919C: .4byte 0x0000117a
-_080991A0: .4byte 0x00001178
-_080991A4: .4byte 0x0000117b
-_080991A8: .4byte gUnknown_083B6DB4
-_080991AC: .4byte 0x0000117c
-_080991B0:
- ldr r0, _080991D0 @ =gUnknown_083B6DB4
- ldr r1, [r0]
- ldr r5, _080991D4 @ =0x0000117a
- adds r3, r1, r5
- ldr r2, _080991D8 @ =0x0000117b
- adds r0, r1, r2
- ldrb r0, [r0]
- ldrb r5, [r3]
- adds r0, r5
- movs r2, 0
- strb r0, [r3]
- ldr r0, _080991DC @ =0x0000117c
- adds r1, r0
- strb r2, [r1]
- b _080991F8
- .align 2, 0
-_080991D0: .4byte gUnknown_083B6DB4
-_080991D4: .4byte 0x0000117a
-_080991D8: .4byte 0x0000117b
-_080991DC: .4byte 0x0000117c
-_080991E0:
- ldr r1, _080991F4 @ =0x00001178
- adds r0, r4, r1
- ldrh r0, [r0]
- cmp r0, 0
- bne _080991F8
- ldrh r0, [r3]
- adds r0, 0x1
- strh r0, [r3]
-_080991F0:
- movs r0, 0
- b _080991FA
- .align 2, 0
-_080991F4: .4byte 0x00001178
-_080991F8:
- movs r0, 0x1
-_080991FA:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80990AC
-
- thumb_func_start sub_8099200
-sub_8099200: @ 8099200
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r4, _080992A0 @ =gPlayerParty
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- lsls r0, 16
- lsrs r5, r0, 16
- adds r0, r4, 0
- movs r1, 0
- bl GetMonData
- adds r1, r0, 0
- movs r0, 0x1
- str r0, [sp]
- movs r0, 0xB
- str r0, [sp, 0x4]
- adds r0, r5, 0
- movs r2, 0x68
- movs r3, 0x40
- bl sub_8099AFC
- ldr r1, _080992A4 @ =gUnknown_083B6DB4
- ldr r1, [r1]
- ldr r2, _080992A8 @ =0x00001038
- adds r1, r2
- str r0, [r1]
- movs r7, 0x1
- movs r6, 0x1
-_08099246:
- movs r0, 0x64
- adds r1, r6, 0
- muls r1, r0
- ldr r0, _080992A0 @ =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0
- beq _080992AC
- adds r0, r4, 0
- movs r1, 0
- bl GetMonData
- adds r1, r0, 0
- subs r0, r6, 0x1
- lsls r3, r0, 1
- adds r3, r0
- lsls r3, 19
- movs r0, 0x80
- lsls r0, 13
- adds r3, r0
- asrs r3, 16
- movs r0, 0x1
- str r0, [sp]
- movs r0, 0xB
- str r0, [sp, 0x4]
- adds r0, r5, 0
- movs r2, 0x98
- bl sub_8099AFC
- ldr r1, _080992A4 @ =gUnknown_083B6DB4
- ldr r1, [r1]
- lsls r2, r6, 2
- ldr r3, _080992A8 @ =0x00001038
- adds r1, r3
- adds r1, r2
- str r0, [r1]
- adds r0, r7, 0x1
- lsls r0, 16
- lsrs r7, r0, 16
- b _080992BA
- .align 2, 0
-_080992A0: .4byte gPlayerParty
-_080992A4: .4byte gUnknown_083B6DB4
-_080992A8: .4byte 0x00001038
-_080992AC:
- ldr r0, _08099308 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- lsls r1, r6, 2
- ldr r2, _0809930C @ =0x00001038
- adds r0, r2
- adds r0, r1
- str r5, [r0]
-_080992BA:
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r6, 0x5
- bls _08099246
- mov r3, r8
- cmp r3, 0
- bne _080992FA
- movs r6, 0
- cmp r6, r7
- bcs _080992FA
- ldr r0, _08099308 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- ldr r1, _0809930C @ =0x00001038
- adds r3, r0, r1
- movs r4, 0x4
-_080992DA:
- lsls r1, r6, 2
- adds r1, r3, r1
- ldr r2, [r1]
- ldrh r0, [r2, 0x22]
- subs r0, 0xA0
- strh r0, [r2, 0x22]
- ldr r1, [r1]
- adds r1, 0x3E
- ldrb r0, [r1]
- orrs r0, r4
- strb r0, [r1]
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r6, r7
- bcc _080992DA
-_080992FA:
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08099308: .4byte gUnknown_083B6DB4
-_0809930C: .4byte 0x00001038
- thumb_func_end sub_8099200
-
- thumb_func_start sub_8099310
-sub_8099310: @ 8099310
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r0, _08099368 @ =gUnknown_083B6DB4
- ldr r2, [r0]
- ldr r0, _0809936C @ =0x00001171
- adds r1, r2, r0
- movs r0, 0
- strb r0, [r1]
- movs r5, 0
- movs r6, 0
- mov r8, r2
- ldr r7, _0809936C @ =0x00001171
- add r7, r8
-_0809932C:
- lsls r1, r5, 2
- ldr r0, _08099370 @ =0x00001038
- add r0, r8
- adds r4, r0, r1
- ldr r0, [r4]
- cmp r0, 0
- beq _08099354
- cmp r5, r6
- beq _0809934E
- adds r1, r6, 0
- bl sub_8099388
- movs r0, 0
- str r0, [r4]
- ldrb r0, [r7]
- adds r0, 0x1
- strb r0, [r7]
-_0809934E:
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
-_08099354:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x5
- bls _0809932C
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08099368: .4byte gUnknown_083B6DB4
-_0809936C: .4byte 0x00001171
-_08099370: .4byte 0x00001038
- thumb_func_end sub_8099310
-
- thumb_func_start sub_8099374
-sub_8099374: @ 8099374
- ldr r0, _08099380 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- ldr r1, _08099384 @ =0x00001171
- adds r0, r1
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_08099380: .4byte gUnknown_083B6DB4
-_08099384: .4byte 0x00001171
- thumb_func_end sub_8099374
-
- thumb_func_start sub_8099388
-sub_8099388: @ 8099388
- push {r4,lr}
- adds r2, r0, 0
- lsls r1, 16
- lsrs r1, 16
- strh r1, [r2, 0x30]
- cmp r1, 0
- bne _0809939C
- movs r3, 0x68
- movs r4, 0x40
- b _080993AE
-_0809939C:
- movs r3, 0x98
- subs r1, 0x1
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 19
- movs r1, 0x80
- lsls r1, 13
- adds r0, r1
- lsrs r4, r0, 16
-_080993AE:
- ldrh r0, [r2, 0x20]
- lsls r0, 3
- strh r0, [r2, 0x32]
- ldrh r0, [r2, 0x22]
- lsls r0, 3
- strh r0, [r2, 0x34]
- lsls r1, r3, 3
- movs r3, 0x32
- ldrsh r0, [r2, r3]
- subs r0, r1, r0
- cmp r0, 0
- bge _080993C8
- adds r0, 0x7
-_080993C8:
- asrs r0, 3
- strh r0, [r2, 0x36]
- lsls r0, r4, 16
- asrs r0, 13
- movs r3, 0x34
- ldrsh r1, [r2, r3]
- subs r0, r1
- cmp r0, 0
- bge _080993DC
- adds r0, 0x7
-_080993DC:
- asrs r0, 3
- strh r0, [r2, 0x38]
- movs r0, 0x8
- strh r0, [r2, 0x3A]
- ldr r0, _080993F0 @ =sub_80993F4
- str r0, [r2, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080993F0: .4byte sub_80993F4
- thumb_func_end sub_8099388
-
- thumb_func_start sub_80993F4
-sub_80993F4: @ 80993F4
- push {r4,lr}
- adds r3, r0, 0
- ldrh r2, [r3, 0x3A]
- movs r1, 0x3A
- ldrsh r0, [r3, r1]
- cmp r0, 0
- beq _08099424
- ldrh r0, [r3, 0x36]
- ldrh r4, [r3, 0x32]
- adds r0, r4
- strh r0, [r3, 0x32]
- ldrh r1, [r3, 0x38]
- ldrh r4, [r3, 0x34]
- adds r1, r4
- strh r1, [r3, 0x34]
- lsls r0, 16
- asrs r0, 19
- strh r0, [r3, 0x20]
- lsls r1, 16
- asrs r1, 19
- strh r1, [r3, 0x22]
- subs r0, r2, 0x1
- strh r0, [r3, 0x3A]
- b _08099468
-_08099424:
- movs r1, 0x30
- ldrsh r0, [r3, r1]
- cmp r0, 0
- bne _08099434
- movs r0, 0x68
- strh r0, [r3, 0x20]
- movs r0, 0x40
- b _08099446
-_08099434:
- movs r0, 0x98
- strh r0, [r3, 0x20]
- movs r4, 0x30
- ldrsh r1, [r3, r4]
- subs r1, 0x1
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- adds r0, 0x10
-_08099446:
- strh r0, [r3, 0x22]
- ldr r0, _08099470 @ =SpriteCallbackDummy
- str r0, [r3, 0x1C]
- ldr r0, _08099474 @ =gUnknown_083B6DB4
- ldr r2, [r0]
- movs r0, 0x30
- ldrsh r1, [r3, r0]
- lsls r1, 2
- ldr r4, _08099478 @ =0x00001038
- adds r0, r2, r4
- adds r0, r1
- str r3, [r0]
- ldr r0, _0809947C @ =0x00001171
- adds r2, r0
- ldrb r0, [r2]
- subs r0, 0x1
- strb r0, [r2]
-_08099468:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08099470: .4byte SpriteCallbackDummy
-_08099474: .4byte gUnknown_083B6DB4
-_08099478: .4byte 0x00001038
-_0809947C: .4byte 0x00001171
- thumb_func_end sub_80993F4
-
- thumb_func_start sub_8099480
-sub_8099480: @ 8099480
- push {r4,lr}
- ldr r0, _080994A0 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- ldr r1, _080994A4 @ =0x00001034
- adds r4, r0, r1
- ldr r0, [r4]
- cmp r0, 0
- beq _08099498
- bl sub_8099BE0
- movs r0, 0
- str r0, [r4]
-_08099498:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080994A0: .4byte gUnknown_083B6DB4
-_080994A4: .4byte 0x00001034
- thumb_func_end sub_8099480
-
- thumb_func_start sub_80994A8
-sub_80994A8: @ 80994A8
- push {r4-r6,lr}
- movs r3, 0
- ldr r1, _080994FC @ =gUnknown_083B6DB4
- ldr r1, [r1]
- ldr r2, _08099500 @ =0x00001038
- adds r5, r1, r2
- lsls r0, 16
- asrs r4, r0, 16
- movs r6, 0x5
- negs r6, r6
-_080994BC:
- lsls r0, r3, 2
- adds r2, r5, r0
- ldr r1, [r2]
- cmp r1, 0
- beq _0809950E
- ldrh r0, [r1, 0x22]
- adds r0, r4, r0
- strh r0, [r1, 0x22]
- ldr r2, [r2]
- ldrh r1, [r2, 0x26]
- ldrh r0, [r2, 0x22]
- adds r1, r0
- adds r0, r2, 0
- adds r0, 0x29
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- adds r0, r1
- lsls r0, 16
- movs r1, 0x80
- lsls r1, 13
- adds r0, r1
- lsrs r0, 16
- cmp r0, 0xC0
- bls _08099504
- adds r0, r2, 0
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- b _0809950E
- .align 2, 0
-_080994FC: .4byte gUnknown_083B6DB4
-_08099500: .4byte 0x00001038
-_08099504:
- adds r2, 0x3E
- ldrb r1, [r2]
- adds r0, r6, 0
- ands r0, r1
- strb r0, [r2]
-_0809950E:
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x5
- bls _080994BC
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80994A8
-
- thumb_func_start sub_8099520
-sub_8099520: @ 8099520
- push {r4,lr}
- lsls r0, 24
- ldr r1, _08099544 @ =gUnknown_083B6DB4
- ldr r1, [r1]
- lsrs r0, 22
- ldr r2, _08099548 @ =0x00001038
- adds r1, r2
- adds r4, r1, r0
- ldr r0, [r4]
- cmp r0, 0
- beq _0809953E
- bl sub_8099BE0
- movs r0, 0
- str r0, [r4]
-_0809953E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08099544: .4byte gUnknown_083B6DB4
-_08099548: .4byte 0x00001038
- thumb_func_end sub_8099520
-
- thumb_func_start sub_809954C
-sub_809954C: @ 809954C
- push {r4-r6,lr}
- movs r5, 0
- ldr r0, _0809957C @ =gUnknown_083B6DB4
- ldr r0, [r0]
- ldr r1, _08099580 @ =0x00001038
- adds r6, r0, r1
-_08099558:
- lsls r0, r5, 2
- adds r4, r6, r0
- ldr r0, [r4]
- cmp r0, 0
- beq _0809956A
- bl sub_8099BE0
- movs r0, 0
- str r0, [r4]
-_0809956A:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x5
- bls _08099558
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0809957C: .4byte gUnknown_083B6DB4
-_08099580: .4byte 0x00001038
- thumb_func_end sub_809954C
-
- thumb_func_start sub_8099584
-sub_8099584: @ 8099584
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 24
- lsrs r1, 24
- adds r5, r1, 0
- cmp r4, 0
- bne _080995B4
- ldr r3, _080995AC @ =gUnknown_083B6DB4
- ldr r0, [r3]
- ldr r5, _080995B0 @ =0x00001034
- adds r2, r0, r5
- lsls r1, 2
- adds r5, 0x4
- adds r0, r5
- adds r0, r1
- ldr r1, [r0]
- str r1, [r2]
- str r4, [r0]
- b _080995D0
- .align 2, 0
-_080995AC: .4byte gUnknown_083B6DB4
-_080995B0: .4byte 0x00001034
-_080995B4:
- cmp r4, 0x1
- bne _080995F4
- ldr r3, _080995FC @ =gUnknown_083B6DB4
- ldr r0, [r3]
- ldr r1, _08099600 @ =0x00001034
- adds r2, r0, r1
- lsls r1, r5, 2
- ldr r4, _08099604 @ =0x00001050
- adds r0, r4
- adds r0, r1
- ldr r1, [r0]
- str r1, [r2]
- movs r1, 0
- str r1, [r0]
-_080995D0:
- ldr r2, [r3]
- ldr r5, _08099600 @ =0x00001034
- adds r2, r5
- ldr r1, [r2]
- ldr r0, _08099608 @ =sub_80999C4
- str r0, [r1, 0x1C]
- ldr r3, [r2]
- ldrb r1, [r3, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r3, 0x5]
- ldr r0, [r2]
- adds r0, 0x43
- movs r1, 0x7
- strb r1, [r0]
-_080995F4:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080995FC: .4byte gUnknown_083B6DB4
-_08099600: .4byte 0x00001034
-_08099604: .4byte 0x00001050
-_08099608: .4byte sub_80999C4
- thumb_func_end sub_8099584
-
- thumb_func_start sub_809960C
-sub_809960C: @ 809960C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r6, r1, 24
- cmp r0, 0xE
- bne _08099654
- ldr r4, _08099648 @ =gUnknown_083B6DB4
- ldr r0, [r4]
- lsls r1, r6, 2
- ldr r2, _0809964C @ =0x00001038
- adds r3, r0, r2
- adds r3, r1
- ldr r1, _08099650 @ =0x00001034
- adds r0, r1
- ldr r2, [r0]
- str r2, [r3]
- ldrb r1, [r2, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2, 0x5]
- ldr r0, [r3]
- adds r0, 0x43
- movs r1, 0xB
- strb r1, [r0]
- b _0809968A
- .align 2, 0
-_08099648: .4byte gUnknown_083B6DB4
-_0809964C: .4byte 0x00001038
-_08099650: .4byte 0x00001034
-_08099654:
- ldr r5, _080996A0 @ =gUnknown_083B6DB4
- ldr r0, [r5]
- lsls r1, r6, 2
- ldr r2, _080996A4 @ =0x00001050
- adds r3, r0, r2
- adds r3, r1
- ldr r1, _080996A8 @ =0x00001034
- adds r0, r1
- ldr r2, [r0]
- str r2, [r3]
- ldrb r1, [r2, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- movs r1, 0x8
- orrs r0, r1
- strb r0, [r2, 0x5]
- ldr r4, [r3]
- adds r0, r6, 0
- movs r1, 0x6
- bl __umodsi3
- movs r1, 0x12
- subs r1, r0
- adds r4, 0x43
- strb r1, [r4]
- adds r4, r5, 0
-_0809968A:
- ldr r1, [r4]
- ldr r2, _080996A8 @ =0x00001034
- adds r1, r2
- ldr r2, [r1]
- ldr r0, _080996AC @ =SpriteCallbackDummy
- str r0, [r2, 0x1C]
- movs r0, 0
- str r0, [r1]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080996A0: .4byte gUnknown_083B6DB4
-_080996A4: .4byte 0x00001050
-_080996A8: .4byte 0x00001034
-_080996AC: .4byte SpriteCallbackDummy
- thumb_func_end sub_809960C
-
- thumb_func_start sub_80996B0
-sub_80996B0: @ 80996B0
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r4, r1, 24
- cmp r0, 0xE
- bne _080996D8
- ldr r3, _080996CC @ =gUnknown_083B6DB4
- ldr r1, [r3]
- ldr r0, _080996D0 @ =0x000010c8
- adds r2, r1, r0
- lsls r0, r4, 2
- ldr r4, _080996D4 @ =0x00001038
- b _080996E4
- .align 2, 0
-_080996CC: .4byte gUnknown_083B6DB4
-_080996D0: .4byte 0x000010c8
-_080996D4: .4byte 0x00001038
-_080996D8:
- ldr r3, _08099704 @ =gUnknown_083B6DB4
- ldr r1, [r3]
- ldr r0, _08099708 @ =0x000010c8
- adds r2, r1, r0
- lsls r0, r4, 2
- ldr r4, _0809970C @ =0x00001050
-_080996E4:
- adds r0, r4
- adds r1, r0
- str r1, [r2]
- ldr r1, [r3]
- ldr r2, _08099710 @ =0x00001034
- adds r0, r1, r2
- ldr r2, [r0]
- ldr r0, _08099714 @ =SpriteCallbackDummy
- str r0, [r2, 0x1C]
- ldr r4, _08099718 @ =0x00001170
- adds r1, r4
- movs r0, 0
- strb r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08099704: .4byte gUnknown_083B6DB4
-_08099708: .4byte 0x000010c8
-_0809970C: .4byte 0x00001050
-_08099710: .4byte 0x00001034
-_08099714: .4byte SpriteCallbackDummy
-_08099718: .4byte 0x00001170
- thumb_func_end sub_80996B0
-
- thumb_func_start sub_809971C
-sub_809971C: @ 809971C
- push {r4-r7,lr}
- ldr r0, _08099730 @ =gUnknown_083B6DB4
- ldr r2, [r0]
- ldr r0, _08099734 @ =0x00001170
- adds r7, r2, r0
- ldrb r0, [r7]
- cmp r0, 0x10
- bne _08099738
- movs r0, 0
- b _08099800
- .align 2, 0
-_08099730: .4byte gUnknown_083B6DB4
-_08099734: .4byte 0x00001170
-_08099738:
- adds r0, 0x1
- strb r0, [r7]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0809975E
- ldr r1, _08099808 @ =0x000010c8
- adds r0, r2, r1
- ldr r0, [r0]
- ldr r1, [r0]
- ldrh r0, [r1, 0x22]
- subs r0, 0x1
- strh r0, [r1, 0x22]
- ldr r4, _0809980C @ =0x00001034
- adds r0, r2, r4
- ldr r1, [r0]
- ldrh r0, [r1, 0x22]
- adds r0, 0x1
- strh r0, [r1, 0x22]
-_0809975E:
- ldr r0, _08099808 @ =0x000010c8
- adds r5, r2, r0
- ldr r0, [r5]
- ldr r1, [r0]
- ldr r3, _08099810 @ =gSineTable
- ldrb r0, [r7]
- lsls r0, 4
- adds r0, r3
- movs r4, 0
- ldrsh r0, [r0, r4]
- cmp r0, 0
- bge _08099778
- adds r0, 0xF
-_08099778:
- asrs r0, 4
- strh r0, [r1, 0x24]
- ldr r0, _0809980C @ =0x00001034
- adds r6, r2, r0
- ldr r1, [r6]
- ldrb r0, [r7]
- lsls r0, 4
- adds r0, r3
- movs r2, 0
- ldrsh r0, [r0, r2]
- cmp r0, 0
- bge _08099792
- adds r0, 0xF
-_08099792:
- asrs r0, 4
- negs r0, r0
- strh r0, [r1, 0x24]
- ldrb r0, [r7]
- cmp r0, 0x8
- bne _080997DE
- ldr r4, [r6]
- ldr r0, [r5]
- ldr r0, [r0]
- ldrb r0, [r0, 0x5]
- movs r2, 0xC
- ands r2, r0
- ldrb r3, [r4, 0x5]
- movs r1, 0xD
- negs r1, r1
- adds r0, r1, 0
- ands r0, r3
- orrs r0, r2
- strb r0, [r4, 0x5]
- ldr r2, [r6]
- ldr r0, [r5]
- ldr r0, [r0]
- adds r0, 0x43
- ldrb r0, [r0]
- adds r2, 0x43
- strb r0, [r2]
- ldr r0, [r5]
- ldr r2, [r0]
- ldrb r0, [r2, 0x5]
- ands r1, r0
- movs r0, 0x4
- orrs r1, r0
- strb r1, [r2, 0x5]
- ldr r0, [r5]
- ldr r0, [r0]
- adds r0, 0x43
- movs r1, 0x7
- strb r1, [r0]
-_080997DE:
- ldrb r0, [r7]
- cmp r0, 0x10
- bne _080997FE
- ldr r1, [r6]
- ldr r0, [r5]
- ldr r0, [r0]
- str r0, [r6]
- ldr r0, [r5]
- str r1, [r0]
- ldr r1, [r6]
- ldr r0, _08099814 @ =sub_80999C4
- str r0, [r1, 0x1C]
- ldr r0, [r5]
- ldr r1, [r0]
- ldr r0, _08099818 @ =SpriteCallbackDummy
- str r0, [r1, 0x1C]
-_080997FE:
- movs r0, 0x1
-_08099800:
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08099808: .4byte 0x000010c8
-_0809980C: .4byte 0x00001034
-_08099810: .4byte gSineTable
-_08099814: .4byte sub_80999C4
-_08099818: .4byte SpriteCallbackDummy
- thumb_func_end sub_809971C
-
- thumb_func_start sub_809981C
-sub_809981C: @ 809981C
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r2, r0, 0
- lsls r1, 24
- lsrs r4, r1, 24
- cmp r0, 0x1
- beq _08099858
- cmp r0, 0x1
- bgt _08099836
- cmp r0, 0
- beq _0809983C
- b _080998C0
-_08099836:
- cmp r2, 0x2
- beq _0809987C
- b _080998C0
-_0809983C:
- ldr r3, _0809984C @ =gUnknown_083B6DB4
- ldr r1, [r3]
- ldr r0, _08099850 @ =0x000010cc
- adds r2, r1, r0
- lsls r0, r4, 2
- ldr r4, _08099854 @ =0x00001038
- b _08099864
- .align 2, 0
-_0809984C: .4byte gUnknown_083B6DB4
-_08099850: .4byte 0x000010cc
-_08099854: .4byte 0x00001038
-_08099858:
- ldr r3, _08099870 @ =gUnknown_083B6DB4
- ldr r1, [r3]
- ldr r0, _08099874 @ =0x000010cc
- adds r2, r1, r0
- lsls r0, r4, 2
- ldr r4, _08099878 @ =0x00001050
-_08099864:
- adds r0, r4
- adds r1, r0
- str r1, [r2]
- adds r0, r3, 0
- b _0809988A
- .align 2, 0
-_08099870: .4byte gUnknown_083B6DB4
-_08099874: .4byte 0x000010cc
-_08099878: .4byte 0x00001050
-_0809987C:
- ldr r0, _080998C8 @ =gUnknown_083B6DB4
- ldr r1, [r0]
- ldr r3, _080998CC @ =0x000010cc
- adds r2, r1, r3
- ldr r4, _080998D0 @ =0x00001034
- adds r1, r4
- str r1, [r2]
-_0809988A:
- ldr r0, [r0]
- ldr r1, _080998CC @ =0x000010cc
- adds r4, r0, r1
- ldr r0, [r4]
- ldr r0, [r0]
- cmp r0, 0
- beq _080998C0
- bl InitSpriteAffineAnim
- ldr r0, [r4]
- ldr r2, [r0]
- ldrb r1, [r2, 0x1]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2, 0x1]
- ldr r0, [r4]
- ldr r1, [r0]
- ldr r0, _080998D4 @ =gUnknown_083B6F5C
- str r0, [r1, 0x10]
- ldr r0, [r4]
- ldr r0, [r0]
- movs r1, 0
- bl StartSpriteAffineAnim
-_080998C0:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080998C8: .4byte gUnknown_083B6DB4
-_080998CC: .4byte 0x000010cc
-_080998D0: .4byte 0x00001034
-_080998D4: .4byte gUnknown_083B6F5C
- thumb_func_end sub_809981C
-
- thumb_func_start sub_80998D8
-sub_80998D8: @ 80998D8
- push {lr}
- ldr r0, _080998FC @ =gUnknown_083B6DB4
- ldr r0, [r0]
- ldr r1, _08099900 @ =0x000010cc
- adds r0, r1
- ldr r0, [r0]
- ldr r1, [r0]
- cmp r1, 0
- beq _080998F8
- adds r3, r1, 0
- adds r3, 0x3E
- ldrb r2, [r3]
- movs r0, 0x4
- ands r0, r2
- cmp r0, 0
- beq _08099904
-_080998F8:
- movs r0, 0
- b _0809991A
- .align 2, 0
-_080998FC: .4byte gUnknown_083B6DB4
-_08099900: .4byte 0x000010cc
-_08099904:
- adds r0, r1, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _08099918
- movs r0, 0x4
- orrs r0, r2
- strb r0, [r3]
-_08099918:
- movs r0, 0x1
-_0809991A:
- pop {r1}
- bx r1
- thumb_func_end sub_80998D8
-
- thumb_func_start sub_8099920
-sub_8099920: @ 8099920
- push {r4,lr}
- ldr r0, _08099950 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- ldr r1, _08099954 @ =0x000010cc
- adds r4, r0, r1
- ldr r0, [r4]
- ldr r0, [r0]
- cmp r0, 0
- beq _0809994A
- ldrb r0, [r0, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
- ldr r0, [r4]
- ldr r0, [r0]
- bl sub_8099BE0
- ldr r1, [r4]
- movs r0, 0
- str r0, [r1]
-_0809994A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08099950: .4byte gUnknown_083B6DB4
-_08099954: .4byte 0x000010cc
- thumb_func_end sub_8099920
-
- thumb_func_start sub_8099958
-sub_8099958: @ 8099958
- push {lr}
- ldr r0, _08099988 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- ldr r1, _0809998C @ =0x000010cc
- adds r3, r0, r1
- ldr r0, [r3]
- ldr r0, [r0]
- cmp r0, 0
- beq _08099982
- adds r2, r0, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- ldr r0, [r3]
- ldr r0, [r0]
- movs r1, 0x1
- bl StartSpriteAffineAnim
-_08099982:
- pop {r0}
- bx r0
- .align 2, 0
-_08099988: .4byte gUnknown_083B6DB4
-_0809998C: .4byte 0x000010cc
- thumb_func_end sub_8099958
-
- thumb_func_start sub_8099990
-sub_8099990: @ 8099990
- push {lr}
- ldr r0, _080999A4 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- ldr r1, _080999A8 @ =0x000010cc
- adds r2, r0, r1
- ldr r0, [r2]
- cmp r0, 0
- bne _080999AC
- movs r0, 0
- b _080999C0
- .align 2, 0
-_080999A4: .4byte gUnknown_083B6DB4
-_080999A8: .4byte 0x000010cc
-_080999AC:
- ldr r0, [r0]
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080999BE
- movs r0, 0
- str r0, [r2]
-_080999BE:
- movs r0, 0x1
-_080999C0:
- pop {r1}
- bx r1
- thumb_func_end sub_8099990
-
- thumb_func_start sub_80999C4
-sub_80999C4: @ 80999C4
- ldr r1, _080999E4 @ =gUnknown_083B6DB4
- ldr r1, [r1]
- movs r2, 0x8E
- lsls r2, 5
- adds r1, r2
- ldr r2, [r1]
- ldrh r2, [r2, 0x20]
- strh r2, [r0, 0x20]
- ldr r2, [r1]
- ldrh r1, [r2, 0x26]
- ldrh r2, [r2, 0x22]
- adds r1, r2
- adds r1, 0x4
- strh r1, [r0, 0x22]
- bx lr
- .align 2, 0
-_080999E4: .4byte gUnknown_083B6DB4
- thumb_func_end sub_80999C4
-
- thumb_func_start sub_80999E8
-sub_80999E8: @ 80999E8
- push {r4-r6,lr}
- lsls r0, 16
- lsrs r3, r0, 16
- movs r4, 0
- ldr r1, _08099A58 @ =gUnknown_083B6DB4
- ldr r0, [r1]
- movs r2, 0x89
- lsls r2, 5
- adds r0, r2
- ldrh r0, [r0]
- adds r2, r1, 0
- cmp r0, r3
- beq _08099A20
- adds r6, r2, 0
- movs r5, 0x89
- lsls r5, 5
-_08099A08:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x27
- bhi _08099A20
- ldr r0, [r6]
- lsls r1, r4, 1
- adds r0, r5
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, r3
- bne _08099A08
-_08099A20:
- cmp r4, 0x28
- bne _08099A60
- movs r4, 0
- ldr r0, [r2]
- movs r5, 0x89
- lsls r5, 5
- adds r0, r5
- ldrh r0, [r0]
- cmp r0, 0
- beq _08099A4E
- adds r6, r2, 0
-_08099A36:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x27
- bhi _08099A4E
- ldr r0, [r6]
- lsls r1, r4, 1
- adds r0, r5
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, 0
- bne _08099A36
-_08099A4E:
- cmp r4, 0x28
- bne _08099A60
- ldr r0, _08099A5C @ =0x0000ffff
- b _08099A94
- .align 2, 0
-_08099A58: .4byte gUnknown_083B6DB4
-_08099A5C: .4byte 0x0000ffff
-_08099A60:
- ldr r1, [r2]
- lsls r2, r4, 1
- movs r5, 0x89
- lsls r5, 5
- adds r0, r1, r5
- adds r0, r2
- strh r3, [r0]
- ldr r0, _08099A9C @ =0x000010d0
- adds r1, r0
- adds r1, r2
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- lsls r4, 20
- lsrs r4, 16
- ldr r1, _08099AA0 @ =gMonIconTable
- lsls r0, r3, 2
- adds r0, r1
- ldr r0, [r0]
- lsls r1, r4, 5
- ldr r2, _08099AA4 @ =0x06010000
- adds r1, r2
- ldr r2, _08099AA8 @ =0x04000080
- bl CpuSet
- adds r0, r4, 0
-_08099A94:
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08099A9C: .4byte 0x000010d0
-_08099AA0: .4byte gMonIconTable
-_08099AA4: .4byte 0x06010000
-_08099AA8: .4byte 0x04000080
- thumb_func_end sub_80999E8
-
- thumb_func_start sub_8099AAC
-sub_8099AAC: @ 8099AAC
- push {r4-r7,lr}
- lsls r0, 16
- lsrs r6, r0, 16
- movs r3, 0
- ldr r0, _08099AE4 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- movs r1, 0x89
- lsls r1, 5
- adds r5, r0, r1
- subs r1, 0x50
- adds r4, r0, r1
- ldr r0, _08099AE8 @ =0x0000ffff
- adds r7, r0, 0
-_08099AC6:
- lsls r1, r3, 1
- adds r2, r5, r1
- ldrh r0, [r2]
- cmp r0, r6
- bne _08099AEC
- adds r1, r4, r1
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
- ands r0, r7
- cmp r0, 0
- bne _08099AF6
- strh r0, [r2]
- b _08099AF6
- .align 2, 0
-_08099AE4: .4byte gUnknown_083B6DB4
-_08099AE8: .4byte 0x0000ffff
-_08099AEC:
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x27
- bls _08099AC6
-_08099AF6:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8099AAC
-
- thumb_func_start sub_8099AFC
-sub_8099AFC: @ 8099AFC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x1C
- ldr r4, [sp, 0x3C]
- ldr r5, [sp, 0x40]
- lsls r0, 16
- lsrs r6, r0, 16
- lsls r2, 16
- lsrs r2, 16
- str r2, [sp, 0x18]
- lsls r3, 16
- lsrs r3, 16
- mov r8, r3
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- mov r9, r5
- mov r2, sp
- ldr r0, _08099BAC @ =gSpriteTemplate_83B6F14
- ldm r0!, {r3,r5,r7}
- stm r2!, {r3,r5,r7}
- ldm r0!, {r3,r5,r7}
- stm r2!, {r3,r5,r7}
- adds r0, r6, 0
- bl mon_icon_convert_unown_species_id
- mov r10, r0
- mov r6, r10
- mov r2, sp
- ldr r1, _08099BB0 @ =gMonIconPaletteIndices
- adds r1, r6, r1
- ldr r3, _08099BB4 @ =0x0000dac0
- adds r0, r3, 0
- ldrb r1, [r1]
- adds r0, r1
- strh r0, [r2, 0x2]
- adds r0, r6, 0
- bl sub_80999E8
- lsls r0, 16
- lsrs r0, 16
- adds r5, r0, 0
- ldr r0, _08099BB8 @ =0x0000ffff
- cmp r5, r0
- beq _08099BCE
- ldr r7, [sp, 0x18]
- lsls r1, r7, 16
- asrs r1, 16
- mov r0, r8
- lsls r2, r0, 16
- asrs r2, 16
- mov r0, sp
- mov r3, r9
- bl CreateSprite
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x40
- beq _08099BC8
- ldr r1, _08099BBC @ =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- ldr r2, _08099BC0 @ =0x000003ff
- ands r2, r5
- ldrh r3, [r0, 0x4]
- ldr r1, _08099BC4 @ =0xfffffc00
- ands r1, r3
- orrs r1, r2
- strh r1, [r0, 0x4]
- movs r1, 0x3
- ands r4, r1
- lsls r3, r4, 2
- ldrb r2, [r0, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r2
- orrs r1, r3
- strb r1, [r0, 0x5]
- mov r1, r10
- strh r1, [r0, 0x2E]
- b _08099BD0
- .align 2, 0
-_08099BAC: .4byte gSpriteTemplate_83B6F14
-_08099BB0: .4byte gMonIconPaletteIndices
-_08099BB4: .4byte 0x0000dac0
-_08099BB8: .4byte 0x0000ffff
-_08099BBC: .4byte gSprites
-_08099BC0: .4byte 0x000003ff
-_08099BC4: .4byte 0xfffffc00
-_08099BC8:
- adds r0, r6, 0
- bl sub_8099AAC
-_08099BCE:
- movs r0, 0
-_08099BD0:
- add sp, 0x1C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8099AFC
-
- thumb_func_start sub_8099BE0
-sub_8099BE0: @ 8099BE0
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- bl sub_8099AAC
- adds r0, r4, 0
- bl DestroySprite
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8099BE0
-
- thumb_func_start sub_8099BF8
-sub_8099BF8: @ 8099BF8
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _08099C50 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- ldr r1, _08099C54 @ =0x000008ba
- adds r2, r0, r1
- movs r1, 0
- strb r1, [r2]
- ldr r2, _08099C58 @ =0x000008b4
- adds r0, r2
- strh r1, [r0]
- str r1, [sp]
- ldr r1, _08099C5C @ =0x040000d4
- mov r0, sp
- str r0, [r1]
- ldr r0, _08099C60 @ =0x0600d000
- str r0, [r1, 0x4]
- ldr r0, _08099C64 @ =0x85000400
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- adds r0, r4, 0
- movs r1, 0
- bl sub_8099EB0
- adds r0, r4, 0
- bl sub_809A23C
- bl sub_809A6DC
- adds r0, r4, 0
- bl sub_8098C48
- ldr r1, _08099C68 @ =REG_BG2CNT
- ldr r2, _08099C6C @ =0x00005a0a
- adds r0, r2, 0
- strh r0, [r1]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08099C50: .4byte gUnknown_083B6DB4
-_08099C54: .4byte 0x000008ba
-_08099C58: .4byte 0x000008b4
-_08099C5C: .4byte 0x040000d4
-_08099C60: .4byte 0x0600d000
-_08099C64: .4byte 0x85000400
-_08099C68: .4byte REG_BG2CNT
-_08099C6C: .4byte 0x00005a0a
- thumb_func_end sub_8099BF8
-
- thumb_func_start sub_8099C70
-sub_8099C70: @ 8099C70
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0, 0
- bl sub_8099D90
- lsls r0, 24
- asrs r4, r0, 24
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_8099EB0
- ldr r0, _08099D10 @ =gUnknown_083B6DB4
- ldr r2, [r0]
- lsls r0, r4, 1
- adds r0, r4
- lsls r0, 1
- ldr r3, _08099D14 @ =0x000008b6
- adds r1, r2, r3
- strh r0, [r1]
- ldr r0, _08099D18 @ =0x000008b8
- adds r1, r2, r0
- movs r0, 0x20
- strh r0, [r1]
- ldr r1, _08099D1C @ =0x000008bb
- adds r0, r2, r1
- strb r5, [r0]
- movs r1, 0
- cmp r4, 0
- bgt _08099CAE
- movs r1, 0x5
-_08099CAE:
- ldr r3, _08099D20 @ =0x000008bc
- adds r0, r2, r3
- strh r1, [r0]
- ldr r1, _08099D24 @ =0x000008be
- adds r0, r2, r1
- strh r4, [r0]
- movs r1, 0x38
- cmp r4, 0
- ble _08099CC6
- movs r3, 0x84
- lsls r3, 1
- adds r1, r3, 0
-_08099CC6:
- movs r3, 0x8C
- lsls r3, 4
- adds r0, r2, r3
- strh r1, [r0]
- movs r1, 0
- cmp r4, 0
- bgt _08099CD6
- movs r1, 0x5
-_08099CD6:
- ldr r3, _08099D28 @ =0x000008c2
- adds r0, r2, r3
- strh r1, [r0]
- ldr r1, _08099D2C @ =0x000008c4
- adds r0, r2, r1
- strh r4, [r0]
- adds r3, 0x4
- adds r1, r2, r3
- movs r0, 0
- strh r0, [r1]
- ldr r0, _08099D30 @ =0x000008c8
- adds r1, r2, r0
- movs r0, 0x2
- strh r0, [r1]
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_809900C
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_809A3D0
- adds r0, r4, 0
- bl sub_809A774
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08099D10: .4byte gUnknown_083B6DB4
-_08099D14: .4byte 0x000008b6
-_08099D18: .4byte 0x000008b8
-_08099D1C: .4byte 0x000008bb
-_08099D20: .4byte 0x000008bc
-_08099D24: .4byte 0x000008be
-_08099D28: .4byte 0x000008c2
-_08099D2C: .4byte 0x000008c4
-_08099D30: .4byte 0x000008c8
- thumb_func_end sub_8099C70
-
- thumb_func_start sub_8099D34
-sub_8099D34: @ 8099D34
- push {r4,lr}
- bl sub_80990AC
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _08099D78 @ =gUnknown_083B6DB4
- ldr r1, [r0]
- ldr r0, _08099D7C @ =0x000008b8
- adds r3, r1, r0
- ldrh r0, [r3]
- cmp r0, 0
- beq _08099D88
- ldr r4, _08099D80 @ =0x000008b4
- adds r2, r1, r4
- adds r4, 0x2
- adds r0, r1, r4
- ldrh r0, [r0]
- ldrh r1, [r2]
- adds r0, r1
- ldr r1, _08099D84 @ =0x000001ff
- ands r0, r1
- strh r0, [r2]
- ldrh r0, [r3]
- subs r0, 0x1
- strh r0, [r3]
- lsls r0, 16
- cmp r0, 0
- bne _08099D74
- bl sub_809A598
- bl sub_809A810
-_08099D74:
- movs r0, 0x1
- b _08099D8A
- .align 2, 0
-_08099D78: .4byte gUnknown_083B6DB4
-_08099D7C: .4byte 0x000008b8
-_08099D80: .4byte 0x000008b4
-_08099D84: .4byte 0x000001ff
-_08099D88:
- adds r0, r2, 0
-_08099D8A:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8099D34
-
- thumb_func_start sub_8099D90
-sub_8099D90: @ 8099D90
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl get_preferred_box
- lsls r0, 24
- lsrs r1, r0, 24
- movs r2, 0
- cmp r1, r4
- beq _08099DBA
-_08099DA4:
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0xD
- bls _08099DB0
- movs r1, 0
-_08099DB0:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r1, r4
- bne _08099DA4
-_08099DBA:
- movs r0, 0x1
- negs r0, r0
- cmp r2, 0x6
- bhi _08099DC4
- movs r0, 0x1
-_08099DC4:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8099D90
-
- thumb_func_start sub_8099DCC
-sub_8099DCC: @ 8099DCC
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl get_preferred_box
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _08099DF8 @ =gPokemonStorage
- ldr r2, _08099DFC @ =0x000083c2
- adds r1, r2
- adds r0, r1
- movs r1, 0
- strb r4, [r0]
- ldr r0, _08099E00 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- ldr r2, _08099E04 @ =0x00001032
- adds r0, r2
- strb r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08099DF8: .4byte gPokemonStorage
-_08099DFC: .4byte 0x000083c2
-_08099E00: .4byte gUnknown_083B6DB4
-_08099E04: .4byte 0x00001032
- thumb_func_end sub_8099DCC
-
- thumb_func_start sub_8099E08
-sub_8099E08: @ 8099E08
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r0, _08099E24 @ =gUnknown_083B6DB4
- ldr r5, [r0]
- ldr r0, _08099E28 @ =0x00001032
- adds r4, r5, r0
- ldrb r0, [r4]
- cmp r0, 0x1
- beq _08099E54
- cmp r0, 0x1
- bgt _08099E2C
- cmp r0, 0
- beq _08099E36
- b _08099EA6
- .align 2, 0
-_08099E24: .4byte gUnknown_083B6DB4
-_08099E28: .4byte 0x00001032
-_08099E2C:
- cmp r0, 0x2
- beq _08099E90
- cmp r0, 0x3
- beq _08099EA2
- b _08099EA6
-_08099E36:
- ldr r1, _08099E4C @ =0x00000d08
- adds r0, r5, r1
- ldr r0, [r0]
- ldr r1, _08099E50 @ =0x0000ffff
- str r1, [sp]
- movs r1, 0x1
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- b _08099E9A
- .align 2, 0
-_08099E4C: .4byte 0x00000d08
-_08099E50: .4byte 0x0000ffff
-_08099E54:
- bl UpdatePaletteFade
- lsls r0, 24
- cmp r0, 0
- bne _08099EA6
- bl get_preferred_box
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- bl sub_8099EB0
- bl sub_809A654
- ldr r1, _08099E88 @ =0x00000d08
- adds r0, r5, r1
- ldr r0, [r0]
- ldr r1, _08099E8C @ =0x0000ffff
- str r1, [sp]
- movs r1, 0x1
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- b _08099E9A
- .align 2, 0
-_08099E88: .4byte 0x00000d08
-_08099E8C: .4byte 0x0000ffff
-_08099E90:
- bl UpdatePaletteFade
- lsls r0, 24
- cmp r0, 0
- bne _08099EA6
-_08099E9A:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- b _08099EA6
-_08099EA2:
- movs r0, 0
- b _08099EA8
-_08099EA6:
- movs r0, 0x1
-_08099EA8:
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8099E08
-
- thumb_func_start sub_8099EB0
-sub_8099EB0: @ 8099EB0
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 24
- lsrs r7, r1, 24
- cmp r1, 0
- beq _08099ED8
- ldr r0, _08099F38 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- movs r2, 0
- ldr r3, _08099F3C @ =0x000008ba
- adds r1, r0, r3
- ldrb r0, [r1]
- cmp r0, 0
- bne _08099ED0
- movs r2, 0x1
-_08099ED0:
- strb r2, [r1]
- ldr r0, _08099F40 @ =0x0600d000
- bl sub_809A14C
-_08099ED8:
- ldr r0, _08099F44 @ =gPokemonStorage
- ldr r1, _08099F48 @ =0x000083c2
- adds r0, r1
- adds r0, r4, r0
- ldrb r4, [r0]
- lsls r4, 4
- ldr r0, _08099F4C @ =gWallpaperTable
- adds r4, r0
- ldr r0, [r4, 0xC]
- ldr r1, _08099F38 @ =gUnknown_083B6DB4
- ldr r5, [r1]
- ldr r2, _08099F3C @ =0x000008ba
- adds r6, r5, r2
- ldrb r2, [r6]
- lsls r1, r2, 1
- adds r1, r2
- lsls r1, 20
- movs r3, 0x80
- lsls r3, 15
- adds r1, r3
- lsrs r1, 16
- movs r2, 0x60
- bl LoadPalette
- ldr r0, [r4, 0x8]
- ldr r1, _08099F50 @ =0x00000d62
- adds r5, r1
- adds r1, r5, 0
- bl LZ77UnCompWram
- ldr r0, _08099F40 @ =0x0600d000
- lsls r2, r7, 24
- asrs r2, 24
- ldrb r3, [r6]
- adds r1, r5, 0
- bl sub_8099F58
- ldr r0, [r4]
- ldrb r1, [r6]
- lsls r1, 13
- ldr r2, _08099F54 @ =0x06008000
- adds r1, r2
- bl LZ77UnCompVram
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08099F38: .4byte gUnknown_083B6DB4
-_08099F3C: .4byte 0x000008ba
-_08099F40: .4byte 0x0600d000
-_08099F44: .4byte gPokemonStorage
-_08099F48: .4byte 0x000083c2
-_08099F4C: .4byte gWallpaperTable
-_08099F50: .4byte 0x00000d62
-_08099F54: .4byte 0x06008000
- thumb_func_end sub_8099EB0
-
- thumb_func_start sub_8099F58
-sub_8099F58: @ 8099F58
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x20
- mov r9, r0
- adds r5, r1, 0
- lsls r2, 24
- lsls r3, 24
- lsrs r3, 24
- lsls r0, r3, 8
- str r0, [sp]
- lsls r0, r3, 1
- adds r0, r3
- adds r0, 0x4
- lsls r0, 28
- lsrs r0, 16
- str r0, [sp, 0x4]
- ldr r0, _08099FB8 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- ldr r1, _08099FBC @ =0x000008b4
- adds r0, r1
- ldrh r1, [r0]
- lsrs r1, 3
- adds r1, 0xA
- lsrs r0, r2, 24
- mov r8, r0
- asrs r2, 24
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 3
- adds r1, r0
- movs r0, 0x3F
- ands r1, r0
- str r1, [sp, 0x8]
- adds r2, r1, 0
- cmp r2, 0xC
- bgt _08099FC0
- movs r6, 0x14
- movs r3, 0
- lsls r0, r2, 1
- adds r0, 0x80
- mov r1, r9
- adds r4, r1, r0
- movs r7, 0
- b _0809A020
- .align 2, 0
-_08099FB8: .4byte gUnknown_083B6DB4
-_08099FBC: .4byte 0x000008b4
-_08099FC0:
- cmp r2, 0x1F
- bgt _08099FE6
- movs r0, 0x20
- subs r0, r2
- lsls r0, 16
- movs r1, 0x14
- lsrs r6, r0, 16
- asrs r0, 16
- subs r1, r0
- lsls r1, 16
- lsrs r3, r1, 16
- lsls r0, r2, 1
- adds r0, 0x80
- mov r2, r9
- adds r4, r2, r0
- movs r7, 0x88
- lsls r7, 4
- add r7, r9
- b _0809A020
-_08099FE6:
- cmp r2, 0x2C
- bgt _08099FFE
- movs r6, 0x14
- movs r3, 0
- lsls r0, r2, 1
- movs r1, 0x84
- lsls r1, 4
- adds r0, r1
- mov r2, r9
- adds r4, r2, r0
- movs r7, 0
- b _0809A020
-_08099FFE:
- movs r0, 0x40
- subs r0, r2
- lsls r0, 16
- movs r1, 0x14
- lsrs r6, r0, 16
- asrs r0, 16
- subs r1, r0
- lsls r1, 16
- lsrs r3, r1, 16
- lsls r0, r2, 1
- movs r1, 0x84
- lsls r1, 4
- adds r0, r1
- mov r2, r9
- adds r4, r2, r0
- mov r7, r9
- adds r7, 0x80
-_0809A020:
- movs r1, 0
- mov r0, r8
- lsls r0, 24
- str r0, [sp, 0x14]
- lsls r0, r6, 16
- asrs r0, 16
- mov r8, r0
- lsls r3, 16
- str r3, [sp, 0xC]
- asrs r2, r3, 16
- str r2, [sp, 0x10]
-_0809A036:
- movs r3, 0
- adds r0, r4, 0
- adds r0, 0x40
- str r0, [sp, 0x18]
- adds r2, r7, 0
- adds r2, 0x40
- str r2, [sp, 0x1C]
- adds r1, 0x1
- mov r10, r1
- cmp r3, r8
- bge _0809A07A
- ldr r0, _0809A0D4 @ =0x00000fff
- mov r12, r0
- movs r6, 0xF0
- lsls r6, 8
-_0809A054:
- ldrh r2, [r5]
- mov r0, r12
- ands r0, r2
- ldr r1, [sp]
- adds r0, r1, r0
- adds r1, r6, 0
- ands r1, r2
- ldr r2, [sp, 0x4]
- adds r1, r2, r1
- orrs r1, r0
- lsls r0, r3, 1
- adds r0, r4
- strh r1, [r0]
- adds r5, 0x2
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, r8
- blt _0809A054
-_0809A07A:
- movs r3, 0
- ldr r0, [sp, 0x10]
- cmp r3, r0
- bge _0809A0B4
- ldr r1, _0809A0D4 @ =0x00000fff
- mov r12, r1
- movs r6, 0xF0
- lsls r6, 8
- ldr r2, [sp, 0xC]
- asrs r4, r2, 16
-_0809A08E:
- ldrh r2, [r5]
- mov r0, r12
- ands r0, r2
- ldr r1, [sp]
- adds r0, r1, r0
- adds r1, r6, 0
- ands r1, r2
- ldr r2, [sp, 0x4]
- adds r1, r2, r1
- orrs r1, r0
- lsls r0, r3, 1
- adds r0, r7
- strh r1, [r0]
- adds r5, 0x2
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, r4
- blt _0809A08E
-_0809A0B4:
- ldr r4, [sp, 0x18]
- ldr r7, [sp, 0x1C]
- mov r1, r10
- lsls r0, r1, 16
- lsrs r1, r0, 16
- cmp r1, 0x11
- bls _0809A036
- ldr r0, [sp, 0x14]
- asrs r2, r0, 24
- cmp r2, 0
- beq _0809A13A
- cmp r2, 0
- ble _0809A0D8
- ldr r1, [sp, 0x8]
- adds r1, 0x14
- b _0809A0DC
- .align 2, 0
-_0809A0D4: .4byte 0x00000fff
-_0809A0D8:
- ldr r1, [sp, 0x8]
- subs r1, 0x4
-_0809A0DC:
- movs r0, 0x3F
- ands r1, r0
- adds r4, r1, 0
- adds r0, r4, 0
- cmp r0, 0x1F
- bgt _0809A0EE
- lsls r0, 1
- adds r0, 0x80
- b _0809A0F6
-_0809A0EE:
- lsls r0, 1
- movs r2, 0x84
- lsls r2, 4
- adds r0, r2
-_0809A0F6:
- mov r1, r9
- adds r2, r1, r0
- movs r3, 0
- movs r6, 0
-_0809A0FE:
- movs r1, 0
- adds r5, r3, 0x1
- lsls r3, r4, 16
-_0809A104:
- strh r6, [r2]
- adds r2, 0x40
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0x11
- bls _0809A104
- asrs r0, r3, 16
- adds r4, r0, 0x1
- movs r0, 0x3F
- ands r4, r0
- adds r0, r4, 0
- cmp r0, 0x1F
- bgt _0809A126
- lsls r0, 1
- adds r0, 0x80
- b _0809A12E
-_0809A126:
- lsls r0, 1
- movs r2, 0x84
- lsls r2, 4
- adds r0, r2
-_0809A12E:
- mov r1, r9
- adds r2, r1, r0
- lsls r0, r5, 16
- lsrs r3, r0, 16
- cmp r3, 0x3
- bls _0809A0FE
-_0809A13A:
- add sp, 0x20
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8099F58
-
- thumb_func_start sub_809A14C
-sub_809A14C: @ 809A14C
- push {r4-r6,lr}
- adds r2, r0, 0
- ldr r0, _0809A174 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- ldr r1, _0809A178 @ =0x000008b4
- adds r0, r1
- ldrh r0, [r0]
- lsrs r0, 3
- adds r3, r0, 0
- adds r3, 0x1E
- movs r0, 0x3F
- ands r3, r0
- adds r0, r3, 0
- cmp r0, 0x1F
- bgt _0809A17C
- lsls r0, 1
- movs r6, 0x98
- lsls r6, 3
- adds r0, r6
- b _0809A184
- .align 2, 0
-_0809A174: .4byte gUnknown_083B6DB4
-_0809A178: .4byte 0x000008b4
-_0809A17C:
- lsls r0, 1
- movs r1, 0xC8
- lsls r1, 4
- adds r0, r1
-_0809A184:
- adds r2, r0
- movs r0, 0
- movs r5, 0
- movs r4, 0x3F
-_0809A18C:
- strh r5, [r2]
- adds r2, 0x2
- adds r3, 0x1
- ands r3, r4
- adds r1, r3, 0
- cmp r1, 0
- bne _0809A19E
- ldr r6, _0809A1B8 @ =0xfffff7c0
- adds r2, r6
-_0809A19E:
- cmp r1, 0x20
- bne _0809A1A8
- movs r1, 0xF8
- lsls r1, 3
- adds r2, r1
-_0809A1A8:
- adds r0, 0x1
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x2B
- bls _0809A18C
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0809A1B8: .4byte 0xfffff7c0
- thumb_func_end sub_809A14C
-
- thumb_func_start sub_809A1BC
-sub_809A1BC: @ 809A1BC
- push {r4-r6,lr}
- sub sp, 0x8
- adds r3, r0, 0
- adds r2, r1, 0
- ldr r0, _0809A228 @ =gUnknown_083B6DB8
- ldr r5, [r0]
- mov r1, sp
- movs r0, 0
- strh r0, [r1]
- ldr r4, _0809A22C @ =0x040000d4
- str r1, [r4]
- str r5, [r4, 0x4]
- movs r6, 0x80
- lsls r6, 1
- ldr r0, _0809A230 @ =0x81000100
- str r0, [r4, 0x8]
- ldr r0, [r4, 0x8]
- ldr r0, _0809A234 @ =gWindowConfig_81E6D38
- adds r1, r5, 0
- str r3, [sp, 0x4]
- bl sub_8004E3C
- str r5, [r4]
- ldr r3, [sp, 0x4]
- str r3, [r4, 0x4]
- ldr r1, _0809A238 @ =0x80000040
- str r1, [r4, 0x8]
- ldr r0, [r4, 0x8]
- adds r0, r5, r6
- str r0, [r4]
- adds r0, r3, 0
- adds r0, 0x80
- str r0, [r4, 0x4]
- str r1, [r4, 0x8]
- ldr r0, [r4, 0x8]
- adds r0, r5, 0
- adds r0, 0x80
- str r0, [r4]
- adds r6, r3, r6
- str r6, [r4, 0x4]
- str r1, [r4, 0x8]
- ldr r0, [r4, 0x8]
- movs r0, 0xC0
- lsls r0, 1
- adds r5, r0
- str r5, [r4]
- adds r3, r0
- str r3, [r4, 0x4]
- str r1, [r4, 0x8]
- ldr r0, [r4, 0x8]
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0809A228: .4byte gUnknown_083B6DB8
-_0809A22C: .4byte 0x040000d4
-_0809A230: .4byte 0x81000100
-_0809A234: .4byte gWindowConfig_81E6D38
-_0809A238: .4byte 0x80000040
- thumb_func_end sub_809A1BC
-
- thumb_func_start sub_809A23C
-sub_809A23C: @ 809A23C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x24
- mov r8, r0
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r0, _0809A384 @ =gUnknown_083B6DB4
- ldr r5, [r0]
- ldr r1, _0809A388 @ =0x000008ca
- adds r7, r5, r1
- str r7, [sp, 0x18]
- mov r2, sp
- adds r2, 0x18
- str r2, [sp, 0x20]
- ldr r0, _0809A38C @ =0x00030200
- str r0, [r2, 0x4]
- mov r1, sp
- ldr r3, _0809A390 @ =0x00000ccc
- adds r0, r5, r3
- str r0, [sp]
- ldr r4, _0809A394 @ =0x0000dac8
- strh r4, [r1, 0x4]
- str r0, [sp, 0x8]
- ldr r6, _0809A398 @ =0xffffdac9
- strh r6, [r1, 0xC]
- add r0, sp, 0x10
- movs r1, 0
- movs r2, 0x8
- bl memset
- ldr r0, _0809A39C @ =gPokemonStorage
- mov r9, r0
- ldr r0, _0809A3A0 @ =0x000083c2
- add r0, r9
- add r0, r8
- ldrb r1, [r0]
- ldr r2, _0809A3A4 @ =gUnknown_083BB0A8
- lsls r1, 2
- adds r0, r1, r2
- ldrh r3, [r0]
- ldr r6, _0809A3A8 @ =0x00000ce8
- adds r0, r5, r6
- strh r3, [r0]
- adds r2, 0x2
- adds r1, r2
- ldrh r1, [r1]
- ldr r2, _0809A3AC @ =0x00000cea
- adds r0, r5, r2
- strh r1, [r0]
- mov r0, sp
- bl LoadSpritePalettes
- ldr r3, _0809A3B0 @ =0x00000d08
- adds r6, r5, r3
- movs r0, 0xFC
- lsls r0, 2
- str r0, [r6]
- adds r0, r4, 0
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- movs r2, 0x87
- lsls r2, 1
- mov r10, r2
- add r1, r10
- ldr r3, _0809A3B4 @ =0x00000cec
- adds r2, r5, r3
- strh r1, [r2]
- movs r4, 0x80
- lsls r4, 9
- adds r1, r4, 0
- lsls r1, r0
- ldr r0, [r6]
- orrs r0, r1
- str r0, [r6]
- ldr r0, _0809A3B8 @ =0x0000dac9
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- add r1, r10
- ldr r2, _0809A3BC @ =0x00000cee
- adds r5, r2
- strh r1, [r5]
- lsls r4, r0
- ldr r0, [r6]
- orrs r0, r4
- str r0, [r6]
- mov r3, r8
- lsls r4, r3, 3
- add r4, r8
- ldr r6, _0809A3C0 @ =0x00008344
- add r9, r6
- add r4, r9
- adds r0, r7, 0
- adds r1, r4, 0
- bl sub_809A1BC
- ldr r0, [sp, 0x20]
- bl LoadSpriteSheet
- adds r0, r4, 0
- bl sub_8072CA4
- lsls r0, 24
- lsrs r0, 24
- bl sub_809A6D0
- movs r4, 0
- lsls r0, 16
- asrs r6, r0, 16
-_0809A328:
- lsls r1, r4, 5
- adds r1, r6, r1
- lsls r1, 16
- asrs r1, 16
- ldr r0, _0809A3C4 @ =gSpriteTemplate_83BB2B8
- movs r2, 0x1C
- movs r3, 0x17
- bl CreateSprite
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r0, _0809A384 @ =gUnknown_083B6DB4
- ldr r5, [r0]
- lsls r0, r4, 2
- movs r3, 0xCF
- lsls r3, 4
- adds r2, r5, r3
- adds r2, r0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0809A3C8 @ =gSprites
- adds r0, r1
- str r0, [r2]
- lsls r1, r4, 24
- lsrs r1, 24
- bl StartSpriteAnim
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x1
- bls _0809A328
- ldr r6, _0809A3CC @ =0x00000cca
- adds r1, r5, r6
- movs r0, 0
- strb r0, [r1]
- add sp, 0x24
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0809A384: .4byte gUnknown_083B6DB4
-_0809A388: .4byte 0x000008ca
-_0809A38C: .4byte 0x00030200
-_0809A390: .4byte 0x00000ccc
-_0809A394: .4byte 0x0000dac8
-_0809A398: .4byte 0xffffdac9
-_0809A39C: .4byte gPokemonStorage
-_0809A3A0: .4byte 0x000083c2
-_0809A3A4: .4byte gUnknown_083BB0A8
-_0809A3A8: .4byte 0x00000ce8
-_0809A3AC: .4byte 0x00000cea
-_0809A3B0: .4byte 0x00000d08
-_0809A3B4: .4byte 0x00000cec
-_0809A3B8: .4byte 0x0000dac9
-_0809A3BC: .4byte 0x00000cee
-_0809A3C0: .4byte 0x00008344
-_0809A3C4: .4byte gSpriteTemplate_83BB2B8
-_0809A3C8: .4byte gSprites
-_0809A3CC: .4byte 0x00000cca
- thumb_func_end sub_809A23C
-
- thumb_func_start sub_809A3D0
-sub_809A3D0: @ 809A3D0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x2C
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x28]
- lsls r1, 24
- lsrs r1, 24
- mov r10, r1
- ldr r3, _0809A43C @ =gUnknown_083B6DB4
- ldr r5, [r3]
- ldr r1, _0809A440 @ =0x000008ca
- adds r0, r5, r1
- str r0, [sp, 0x18]
- add r2, sp, 0x18
- ldr r4, _0809A444 @ =0x0000ffff
- mov r9, r4
- movs r6, 0xC0
- lsls r6, 10
- mov r8, r6
- ldr r0, _0809A448 @ =0x00030200
- str r0, [r2, 0x4]
- mov r1, sp
- ldr r0, _0809A44C @ =gSpriteTemplate_83BB2B8
- ldm r0!, {r4,r6,r7}
- stm r1!, {r4,r6,r7}
- ldm r0!, {r4,r6,r7}
- stm r1!, {r4,r6,r7}
- movs r1, 0
- ldr r7, _0809A450 @ =0x00000cca
- adds r4, r5, r7
- ldrb r0, [r4]
- adds r6, r2, 0
- cmp r0, 0
- bne _0809A41E
- movs r1, 0x1
-_0809A41E:
- strb r1, [r4]
- cmp r1, 0
- bne _0809A458
- ldr r0, [r6, 0x4]
- mov r1, r9
- ands r0, r1
- mov r4, r8
- orrs r0, r4
- str r0, [r6, 0x4]
- ldr r7, _0809A454 @ =0x00000cec
- adds r0, r5, r7
- ldrh r0, [r0]
- mov r8, r0
- b _0809A478
- .align 2, 0
-_0809A43C: .4byte gUnknown_083B6DB4
-_0809A440: .4byte 0x000008ca
-_0809A444: .4byte 0x0000ffff
-_0809A448: .4byte 0x00030200
-_0809A44C: .4byte gSpriteTemplate_83BB2B8
-_0809A450: .4byte 0x00000cca
-_0809A454: .4byte 0x00000cec
-_0809A458:
- ldr r0, [r6, 0x4]
- mov r1, r9
- ands r0, r1
- movs r1, 0x80
- lsls r1, 11
- orrs r0, r1
- str r0, [r6, 0x4]
- ldr r4, _0809A570 @ =0x00000cec
- adds r0, r5, r4
- ldrh r0, [r0]
- mov r8, r0
- mov r1, sp
- movs r0, 0x4
- strh r0, [r1]
- ldr r0, _0809A574 @ =0x0000dac9
- strh r0, [r1, 0x2]
-_0809A478:
- ldr r0, [r3]
- ldr r7, _0809A578 @ =0x000008ca
- adds r0, r7
- ldr r1, [sp, 0x28]
- lsls r5, r1, 3
- adds r5, r1
- ldr r4, _0809A57C @ =gUnknown_020383E4
- adds r5, r4
- adds r1, r5, 0
- bl sub_809A1BC
- adds r0, r6, 0
- bl LoadSpriteSheet
- adds r4, 0x7E
- ldr r3, [sp, 0x28]
- adds r4, r3, r4
- ldrb r0, [r4]
- lsls r0, 2
- ldr r1, _0809A580 @ =gUnknown_083BB0A8
- adds r0, r1
- mov r1, r8
- movs r2, 0x4
- bl LoadPalette
- adds r0, r5, 0
- bl sub_8072CA4
- lsls r0, 24
- lsrs r0, 24
- bl sub_809A6D0
- lsls r0, 16
- mov r4, r10
- lsls r2, r4, 24
- asrs r2, 24
- lsls r1, r2, 1
- adds r1, r2
- lsls r1, 6
- lsrs r6, r0, 16
- str r6, [sp, 0x20]
- asrs r0, 16
- adds r0, r1
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0x24]
- movs r7, 0
- negs r2, r2
- mov r9, r2
- movs r0, 0x1
- mov r10, r0
-_0809A4DE:
- lsls r1, r7, 5
- mov r8, r1
- ldr r3, [sp, 0x24]
- lsls r1, r3, 16
- asrs r1, 16
- add r1, r8
- lsls r1, 16
- asrs r1, 16
- mov r0, sp
- movs r2, 0x1C
- movs r3, 0x17
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0809A584 @ =gUnknown_083B6DB4
- ldr r4, [r1]
- lsls r6, r7, 2
- ldr r1, _0809A588 @ =0x00000cf8
- adds r2, r4, r1
- adds r2, r6
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- ldr r0, _0809A58C @ =gSprites
- adds r1, r0
- str r1, [r2]
- mov r3, r9
- lsls r5, r3, 1
- add r5, r9
- lsls r5, 1
- strh r5, [r1, 0x2E]
- ldr r1, [r2]
- ldr r3, [sp, 0x20]
- lsls r0, r3, 16
- asrs r0, 16
- add r0, r8
- strh r0, [r1, 0x30]
- ldr r0, [r2]
- mov r1, r10
- strh r1, [r0, 0x32]
- ldr r0, [r2]
- ldr r1, _0809A590 @ =sub_809A5E8
- str r1, [r0, 0x1C]
- lsls r1, r7, 24
- lsrs r1, 24
- bl StartSpriteAnim
- movs r3, 0xCF
- lsls r3, 4
- adds r4, r3
- adds r4, r6
- ldr r0, [r4]
- strh r5, [r0, 0x2E]
- ldr r0, [r4]
- mov r6, r10
- strh r6, [r0, 0x30]
- ldr r1, [r4]
- ldr r0, _0809A594 @ =sub_809A61C
- str r0, [r1, 0x1C]
- adds r0, r7, 0x1
- lsls r0, 16
- lsrs r7, r0, 16
- cmp r7, 0x1
- bls _0809A4DE
- 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
-_0809A570: .4byte 0x00000cec
-_0809A574: .4byte 0x0000dac9
-_0809A578: .4byte 0x000008ca
-_0809A57C: .4byte gUnknown_020383E4
-_0809A580: .4byte gUnknown_083BB0A8
-_0809A584: .4byte gUnknown_083B6DB4
-_0809A588: .4byte 0x00000cf8
-_0809A58C: .4byte gSprites
-_0809A590: .4byte sub_809A5E8
-_0809A594: .4byte sub_809A61C
- thumb_func_end sub_809A3D0
-
- thumb_func_start sub_809A598
-sub_809A598: @ 809A598
- push {lr}
- ldr r0, _0809A5B0 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- ldr r1, _0809A5B4 @ =0x00000cca
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _0809A5B8
- movs r0, 0x4
- bl FreeSpriteTilesByTag
- b _0809A5BE
- .align 2, 0
-_0809A5B0: .4byte gUnknown_083B6DB4
-_0809A5B4: .4byte 0x00000cca
-_0809A5B8:
- movs r0, 0x3
- bl FreeSpriteTilesByTag
-_0809A5BE:
- ldr r0, _0809A5E0 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- movs r3, 0xCF
- lsls r3, 4
- adds r2, r0, r3
- adds r3, 0x8
- adds r1, r0, r3
- ldr r1, [r1]
- str r1, [r2]
- ldr r2, _0809A5E4 @ =0x00000cf4
- adds r1, r0, r2
- adds r3, 0x4
- adds r0, r3
- ldr r0, [r0]
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_0809A5E0: .4byte gUnknown_083B6DB4
-_0809A5E4: .4byte 0x00000cf4
- thumb_func_end sub_809A598
-
- thumb_func_start sub_809A5E8
-sub_809A5E8: @ 809A5E8
- push {lr}
- adds r2, r0, 0
- ldrh r1, [r2, 0x32]
- movs r3, 0x32
- ldrsh r0, [r2, r3]
- cmp r0, 0
- beq _0809A5FC
- subs r0, r1, 0x1
- strh r0, [r2, 0x32]
- b _0809A614
-_0809A5FC:
- ldrh r0, [r2, 0x2E]
- ldrh r1, [r2, 0x20]
- adds r0, r1
- strh r0, [r2, 0x20]
- lsls r0, 16
- asrs r0, 16
- movs r3, 0x30
- ldrsh r1, [r2, r3]
- cmp r0, r1
- bne _0809A614
- ldr r0, _0809A618 @ =SpriteCallbackDummy
- str r0, [r2, 0x1C]
-_0809A614:
- pop {r0}
- bx r0
- .align 2, 0
-_0809A618: .4byte SpriteCallbackDummy
- thumb_func_end sub_809A5E8
-
- thumb_func_start sub_809A61C
-sub_809A61C: @ 809A61C
- push {lr}
- adds r2, r0, 0
- ldrh r1, [r2, 0x30]
- movs r3, 0x30
- ldrsh r0, [r2, r3]
- cmp r0, 0
- beq _0809A630
- subs r0, r1, 0x1
- strh r0, [r2, 0x30]
- b _0809A64E
-_0809A630:
- ldrh r0, [r2, 0x2E]
- ldrh r1, [r2, 0x20]
- adds r0, r1
- strh r0, [r2, 0x20]
- ldrh r1, [r2, 0x24]
- adds r0, r1
- strh r0, [r2, 0x32]
- subs r0, 0x40
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xC0
- bls _0809A64E
- adds r0, r2, 0
- bl DestroySprite
-_0809A64E:
- pop {r0}
- bx r0
- thumb_func_end sub_809A61C
-
- thumb_func_start sub_809A654
-sub_809A654: @ 809A654
- push {lr}
- bl get_preferred_box
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0809A690 @ =gPokemonStorage
- ldr r2, _0809A694 @ =0x000083c2
- adds r1, r2
- adds r0, r1
- ldrb r1, [r0]
- ldr r0, _0809A698 @ =gUnknown_083B6DB4
- ldr r2, [r0]
- ldr r3, _0809A69C @ =0x00000cca
- adds r0, r2, r3
- ldrb r0, [r0]
- cmp r0, 0
- bne _0809A6A8
- lsls r0, r1, 2
- ldr r1, _0809A6A0 @ =gUnknown_083BB0A8
- adds r0, r1
- adds r3, 0x22
- adds r1, r2, r3
- ldrh r1, [r1]
- lsls r1, 1
- ldr r2, _0809A6A4 @ =gPlttBufferUnfaded
- adds r1, r2
- movs r2, 0x2
- bl CpuSet
- b _0809A6C0
- .align 2, 0
-_0809A690: .4byte gPokemonStorage
-_0809A694: .4byte 0x000083c2
-_0809A698: .4byte gUnknown_083B6DB4
-_0809A69C: .4byte 0x00000cca
-_0809A6A0: .4byte gUnknown_083BB0A8
-_0809A6A4: .4byte gPlttBufferUnfaded
-_0809A6A8:
- lsls r0, r1, 2
- ldr r1, _0809A6C4 @ =gUnknown_083BB0A8
- adds r0, r1
- ldr r3, _0809A6C8 @ =0x00000cee
- adds r1, r2, r3
- ldrh r1, [r1]
- lsls r1, 1
- ldr r2, _0809A6CC @ =gPlttBufferUnfaded
- adds r1, r2
- movs r2, 0x2
- bl CpuSet
-_0809A6C0:
- pop {r0}
- bx r0
- .align 2, 0
-_0809A6C4: .4byte gUnknown_083BB0A8
-_0809A6C8: .4byte 0x00000cee
-_0809A6CC: .4byte gPlttBufferUnfaded
- thumb_func_end sub_809A654
-
- thumb_func_start sub_809A6D0
-sub_809A6D0: @ 809A6D0
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 25
- movs r0, 0xB0
- subs r0, r1
- bx lr
- thumb_func_end sub_809A6D0
-
- thumb_func_start sub_809A6DC
-sub_809A6DC: @ 809A6DC
- push {r4,r5,lr}
- ldr r0, _0809A760 @ =gUnknown_083BB288
- bl LoadSpriteSheet
- ldr r0, _0809A764 @ =gUnknown_083BB290
- bl LoadSpritePalette
- movs r5, 0
-_0809A6EC:
- lsls r1, r5, 4
- adds r1, r5
- lsls r1, 19
- movs r0, 0xB8
- lsls r0, 15
- adds r1, r0
- asrs r1, 16
- ldr r0, _0809A768 @ =gSpriteTemplate_83BB2F0
- movs r2, 0x1C
- movs r3, 0x15
- bl CreateSprite
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x40
- beq _0809A73E
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0809A76C @ =gSprites
- adds r4, r0, r1
- lsls r1, r5, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl StartSpriteAnim
- movs r0, 0x1
- cmp r5, 0
- bne _0809A72C
- movs r1, 0x1
- negs r1, r1
- adds r0, r1, 0
-_0809A72C:
- strh r0, [r4, 0x34]
- ldr r0, _0809A770 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- lsls r1, r5, 2
- movs r2, 0xD0
- lsls r2, 4
- adds r0, r2
- adds r0, r1
- str r4, [r0]
-_0809A73E:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x1
- bls _0809A6EC
- bl sub_809BF2C
- lsls r0, 24
- cmp r0, 0
- beq _0809A758
- movs r0, 0x1
- bl sub_809A860
-_0809A758:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0809A760: .4byte gUnknown_083BB288
-_0809A764: .4byte gUnknown_083BB290
-_0809A768: .4byte gSpriteTemplate_83BB2F0
-_0809A76C: .4byte gSprites
-_0809A770: .4byte gUnknown_083B6DB4
- thumb_func_end sub_809A6DC
-
- thumb_func_start sub_809A774
-sub_809A774: @ 809A774
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- movs r2, 0
- ldr r7, _0809A7C4 @ =gUnknown_083B6DB4
- ldr r0, [r7]
- movs r1, 0xD0
- lsls r1, 4
- adds r3, r0, r1
- movs r5, 0
- movs r4, 0x2
-_0809A78A:
- lsls r1, r2, 2
- adds r1, r3, r1
- ldr r0, [r1]
- strh r5, [r0, 0x24]
- ldr r0, [r1]
- strh r4, [r0, 0x2E]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x1
- bls _0809A78A
- lsls r0, r6, 24
- cmp r0, 0
- bge _0809A7CC
- ldr r1, [r7]
- movs r2, 0xD0
- lsls r2, 4
- adds r3, r1, r2
- ldr r2, [r3]
- movs r0, 0x1D
- strh r0, [r2, 0x30]
- ldr r0, _0809A7C8 @ =0x00000d04
- adds r1, r0
- ldr r2, [r1]
- movs r0, 0x5
- strh r0, [r2, 0x30]
- ldr r0, [r3]
- movs r2, 0x48
- b _0809A7E8
- .align 2, 0
-_0809A7C4: .4byte gUnknown_083B6DB4
-_0809A7C8: .4byte 0x00000d04
-_0809A7CC:
- ldr r1, [r7]
- movs r2, 0xD0
- lsls r2, 4
- adds r3, r1, r2
- ldr r2, [r3]
- movs r0, 0x5
- strh r0, [r2, 0x30]
- ldr r0, _0809A80C @ =0x00000d04
- adds r1, r0
- ldr r2, [r1]
- movs r0, 0x1D
- strh r0, [r2, 0x30]
- ldr r0, [r3]
- movs r2, 0xF8
-_0809A7E8:
- strh r2, [r0, 0x32]
- ldr r0, [r1]
- strh r2, [r0, 0x32]
- ldr r1, [r7]
- movs r2, 0xD0
- lsls r2, 4
- adds r0, r1, r2
- ldr r2, [r0]
- movs r0, 0
- strh r0, [r2, 0x3C]
- ldr r0, _0809A80C @ =0x00000d04
- adds r1, r0
- ldr r1, [r1]
- movs r0, 0x1
- strh r0, [r1, 0x3C]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0809A80C: .4byte 0x00000d04
- thumb_func_end sub_809A774
-
- thumb_func_start sub_809A810
-sub_809A810: @ 809A810
- push {r4-r6,lr}
- movs r3, 0
- ldr r0, _0809A85C @ =gUnknown_083B6DB4
- ldr r0, [r0]
- movs r1, 0xD0
- lsls r1, 4
- adds r4, r0, r1
- movs r5, 0
- movs r6, 0x5
- negs r6, r6
-_0809A824:
- lsls r1, r3, 2
- adds r1, r4, r1
- ldr r2, [r1]
- lsls r0, r3, 4
- adds r0, r3
- lsls r0, 3
- adds r0, 0x5C
- strh r0, [r2, 0x20]
- ldr r0, [r1]
- strh r5, [r0, 0x24]
- ldr r1, [r1]
- adds r1, 0x3E
- ldrb r2, [r1]
- adds r0, r6, 0
- ands r0, r2
- strb r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x1
- bls _0809A824
- movs r0, 0x1
- bl sub_809A860
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0809A85C: .4byte gUnknown_083B6DB4
- thumb_func_end sub_809A810
-
- thumb_func_start sub_809A860
-sub_809A860: @ 809A860
- push {r4,r5,lr}
- lsls r0, 24
- cmp r0, 0
- beq _0809A89C
- movs r2, 0
- ldr r0, _0809A898 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- movs r1, 0xD0
- lsls r1, 4
- adds r4, r0, r1
- movs r3, 0
- movs r5, 0x1
-_0809A878:
- lsls r1, r2, 2
- adds r1, r4, r1
- ldr r0, [r1]
- strh r5, [r0, 0x2E]
- ldr r0, [r1]
- strh r3, [r0, 0x30]
- ldr r0, [r1]
- strh r3, [r0, 0x32]
- ldr r0, [r1]
- strh r3, [r0, 0x36]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x1
- bls _0809A878
- b _0809A8BC
- .align 2, 0
-_0809A898: .4byte gUnknown_083B6DB4
-_0809A89C:
- movs r2, 0
- ldr r0, _0809A8C4 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- movs r3, 0xD0
- lsls r3, 4
- adds r1, r0, r3
- movs r3, 0
-_0809A8AA:
- lsls r0, r2, 2
- adds r0, r1, r0
- ldr r0, [r0]
- strh r3, [r0, 0x2E]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x1
- bls _0809A8AA
-_0809A8BC:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0809A8C4: .4byte gUnknown_083B6DB4
- thumb_func_end sub_809A860
-
- thumb_func_start sub_809A8C8
-sub_809A8C8: @ 809A8C8
- push {lr}
- adds r2, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r2, r1]
- cmp r0, 0x4
- bhi _0809A994
- lsls r0, 2
- ldr r1, _0809A8E0 @ =_0809A8E4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0809A8E0: .4byte _0809A8E4
- .align 2, 0
-_0809A8E4:
- .4byte _0809A8F8
- .4byte _0809A8FE
- .4byte _0809A92C
- .4byte _0809A932
- .4byte _0809A984
-_0809A8F8:
- movs r0, 0
- strh r0, [r2, 0x24]
- b _0809A994
-_0809A8FE:
- ldrh r0, [r2, 0x30]
- adds r0, 0x1
- movs r1, 0
- strh r0, [r2, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- ble _0809A994
- strh r1, [r2, 0x30]
- ldrh r0, [r2, 0x34]
- ldrh r3, [r2, 0x24]
- adds r0, r3
- strh r0, [r2, 0x24]
- ldrh r0, [r2, 0x32]
- adds r0, 0x1
- strh r0, [r2, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5
- ble _0809A994
- strh r1, [r2, 0x32]
- strh r1, [r2, 0x24]
- b _0809A994
-_0809A92C:
- movs r0, 0x3
- strh r0, [r2, 0x2E]
- b _0809A994
-_0809A932:
- ldr r0, _0809A97C @ =gUnknown_083B6DB4
- ldr r1, [r0]
- ldr r0, _0809A980 @ =0x000008b6
- adds r1, r0
- ldrh r0, [r2, 0x20]
- ldrh r1, [r1]
- subs r0, r1
- strh r0, [r2, 0x20]
- subs r0, 0x49
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xAE
- bls _0809A958
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r3]
-_0809A958:
- ldrh r0, [r2, 0x30]
- subs r0, 0x1
- strh r0, [r2, 0x30]
- lsls r0, 16
- cmp r0, 0
- bne _0809A994
- ldrh r0, [r2, 0x32]
- strh r0, [r2, 0x20]
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r1, [r3]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r3]
- movs r0, 0x4
- strh r0, [r2, 0x2E]
- b _0809A994
- .align 2, 0
-_0809A97C: .4byte gUnknown_083B6DB4
-_0809A980: .4byte 0x000008b6
-_0809A984:
- ldr r0, _0809A998 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- ldr r1, _0809A99C @ =0x000008b6
- adds r0, r1
- ldrh r1, [r2, 0x20]
- ldrh r0, [r0]
- subs r1, r0
- strh r1, [r2, 0x20]
-_0809A994:
- pop {r0}
- bx r0
- .align 2, 0
-_0809A998: .4byte gUnknown_083B6DB4
-_0809A99C: .4byte 0x000008b6
- thumb_func_end sub_809A8C8
-
- thumb_func_start sub_809A9A0
-sub_809A9A0: @ 809A9A0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r5, r0, 0
- adds r6, r1, 0
- ldr r4, [sp, 0x18]
- lsls r2, 24
- lsrs r7, r2, 24
- lsls r3, 24
- lsrs r3, 24
- mov r8, r3
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _0809AA0C @ =gSpriteTemplate_83BB2F0
- lsls r5, 16
- asrs r5, 16
- lsls r6, 16
- asrs r6, 16
- adds r1, r5, 0
- adds r2, r6, 0
- adds r3, r4, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _0809AA18
- movs r1, 0x1
- ands r1, r7
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- ldr r5, _0809AA10 @ =gSprites
- adds r6, r4, r5
- adds r0, r6, 0
- bl StartSpriteAnim
- movs r0, 0x3
- mov r1, r8
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r6, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r6, 0x5]
- adds r5, 0x1C
- adds r4, r5
- ldr r0, _0809AA14 @ =SpriteCallbackDummy
- str r0, [r4]
- adds r0, r6, 0
- b _0809AA1A
- .align 2, 0
-_0809AA0C: .4byte gSpriteTemplate_83BB2F0
-_0809AA10: .4byte gSprites
-_0809AA14: .4byte SpriteCallbackDummy
-_0809AA18:
- movs r0, 0
-_0809AA1A:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_809A9A0
-
- thumb_func_start sub_809AA24
-sub_809AA24: @ 809AA24
- push {lr}
- ldr r0, _0809AA38 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- ldrb r1, [r0, 0x5]
- cmp r1, 0x1
- beq _0809AA40
- ldr r1, _0809AA3C @ =gUnknown_020384E4
- movs r0, 0
- strb r0, [r1]
- b _0809AA44
- .align 2, 0
-_0809AA38: .4byte gUnknown_083B6DB4
-_0809AA3C: .4byte gUnknown_020384E4
-_0809AA40:
- ldr r0, _0809AA78 @ =gUnknown_020384E4
- strb r1, [r0]
-_0809AA44:
- ldr r0, _0809AA7C @ =gUnknown_020384E5
- movs r1, 0
- strb r1, [r0]
- ldr r0, _0809AA80 @ =gUnknown_020384E6
- strb r1, [r0]
- ldr r0, _0809AA84 @ =gUnknown_020384E7
- strb r1, [r0]
- ldr r0, _0809AA88 @ =gUnknown_020384E8
- strb r1, [r0]
- ldr r0, _0809AA8C @ =gUnknown_020384E9
- strb r1, [r0]
- bl sub_809B0D4
- bl sub_809CC04
- ldr r0, _0809AA90 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- ldr r1, _0809AA94 @ =0x000011e2
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
- bl sub_809BF74
- pop {r0}
- bx r0
- .align 2, 0
-_0809AA78: .4byte gUnknown_020384E4
-_0809AA7C: .4byte gUnknown_020384E5
-_0809AA80: .4byte gUnknown_020384E6
-_0809AA84: .4byte gUnknown_020384E7
-_0809AA88: .4byte gUnknown_020384E8
-_0809AA8C: .4byte gUnknown_020384E9
-_0809AA90: .4byte gUnknown_083B6DB4
-_0809AA94: .4byte 0x000011e2
- thumb_func_end sub_809AA24
-
- thumb_func_start sub_809AA98
-sub_809AA98: @ 809AA98
- push {lr}
- bl sub_809CC04
- bl sub_809C028
- ldr r0, _0809AAC0 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- ldr r1, _0809AAC4 @ =0x000011e2
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
- ldr r0, _0809AAC8 @ =gUnknown_020384E6
- ldrb r0, [r0]
- cmp r0, 0
- beq _0809AABA
- bl sub_8098BF0
-_0809AABA:
- pop {r0}
- bx r0
- .align 2, 0
-_0809AAC0: .4byte gUnknown_083B6DB4
-_0809AAC4: .4byte 0x000011e2
-_0809AAC8: .4byte gUnknown_020384E6
- thumb_func_end sub_809AA98
-
- thumb_func_start sub_809AACC
-sub_809AACC: @ 809AACC
- push {r4-r6,lr}
- adds r4, r2, 0
- adds r6, r3, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r5, r1, 24
- cmp r0, 0x4
- bhi _0809AB84
- lsls r0, 2
- ldr r1, _0809AAE8 @ =_0809AAEC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0809AAE8: .4byte _0809AAEC
- .align 2, 0
-_0809AAEC:
- .4byte _0809AB00
- .4byte _0809AB2E
- .4byte _0809AB56
- .4byte _0809AB5E
- .4byte _0809AB7C
-_0809AB00:
- adds r0, r5, 0
- movs r1, 0x6
- bl __umodsi3
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 3
- adds r1, 0x64
- strh r1, [r4]
- adds r0, r5, 0
- movs r1, 0x6
- bl __udivsi3
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 3
- adds r1, 0x20
- strh r1, [r6]
- b _0809AB84
-_0809AB2E:
- cmp r5, 0
- bne _0809AB3A
- movs r0, 0x68
- strh r0, [r4]
- movs r0, 0x34
- b _0809AB82
-_0809AB3A:
- cmp r5, 0x6
- bne _0809AB46
- movs r0, 0x98
- strh r0, [r4]
- movs r0, 0x84
- b _0809AB82
-_0809AB46:
- movs r0, 0x98
- strh r0, [r4]
- subs r1, r5, 0x1
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- adds r0, 0x4
- b _0809AB82
-_0809AB56:
- movs r0, 0xA2
- strh r0, [r4]
- movs r0, 0xC
- b _0809AB82
-_0809AB5E:
- ldr r0, _0809AB78 @ =gUnknown_020384E6
- ldrb r0, [r0]
- movs r1, 0xE
- cmp r0, 0
- beq _0809AB6A
- movs r1, 0x8
-_0809AB6A:
- strh r1, [r6]
- movs r0, 0x58
- muls r0, r5
- adds r0, 0x78
- strh r0, [r4]
- b _0809AB84
- .align 2, 0
-_0809AB78: .4byte gUnknown_020384E6
-_0809AB7C:
- movs r0, 0xA0
- strh r0, [r4]
- movs r0, 0x60
-_0809AB82:
- strh r0, [r6]
-_0809AB84:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_809AACC
-
- thumb_func_start sub_809AB8C
-sub_809AB8C: @ 809AB8C
- push {lr}
- ldr r0, _0809ABB4 @ =gUnknown_020384E4
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0
- beq _0809ABC0
- cmp r0, 0x1
- bne _0809ABF8
- ldr r0, _0809ABB8 @ =gUnknown_020384E5
- movs r1, 0
- ldrsb r1, [r0, r1]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0809ABBC @ =gPlayerParty
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- b _0809ABEA
- .align 2, 0
-_0809ABB4: .4byte gUnknown_020384E4
-_0809ABB8: .4byte gUnknown_020384E5
-_0809ABBC: .4byte gPlayerParty
-_0809ABC0:
- bl get_preferred_box
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 5
- ldr r1, _0809ABF0 @ =gUnknown_020384E5
- movs r2, 0
- ldrsb r2, [r1, r2]
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 4
- ldr r2, _0809ABF4 @ =gUnknown_020300A4
- adds r1, r2
- adds r0, r1
- movs r1, 0xB
- bl GetBoxMonData
-_0809ABEA:
- lsls r0, 16
- lsrs r0, 16
- b _0809ABFA
- .align 2, 0
-_0809ABF0: .4byte gUnknown_020384E5
-_0809ABF4: .4byte gUnknown_020300A4
-_0809ABF8:
- movs r0, 0
-_0809ABFA:
- pop {r1}
- bx r1
- thumb_func_end sub_809AB8C
-
- thumb_func_start sub_809AC00
-sub_809AC00: @ 809AC00
- push {r4-r6,lr}
- ldr r0, _0809AC14 @ =gUnknown_083B6DB4
- ldr r4, [r0]
- ldr r0, _0809AC18 @ =0x000011dc
- adds r1, r4, r0
- ldrh r0, [r1]
- cmp r0, 0
- bne _0809AC1C
- movs r0, 0
- b _0809AD2C
- .align 2, 0
-_0809AC14: .4byte gUnknown_083B6DB4
-_0809AC18: .4byte 0x000011dc
-_0809AC1C:
- subs r0, 0x1
- strh r0, [r1]
- lsls r0, 16
- cmp r0, 0
- beq _0809AD0C
- ldr r1, _0809ACF4 @ =0x000011c8
- adds r3, r4, r1
- ldr r2, _0809ACF8 @ =0x000011d0
- adds r1, r4, r2
- ldr r0, [r3]
- ldr r1, [r1]
- adds r0, r1
- str r0, [r3]
- ldr r6, _0809ACFC @ =0x000011cc
- adds r2, r4, r6
- ldr r0, _0809AD00 @ =0x000011d4
- adds r1, r4, r0
- ldr r0, [r2]
- ldr r1, [r1]
- adds r0, r1
- str r0, [r2]
- movs r1, 0x8E
- lsls r1, 5
- adds r5, r4, r1
- ldr r1, [r5]
- ldr r0, [r3]
- asrs r0, 8
- strh r0, [r1, 0x20]
- ldr r1, [r5]
- ldr r0, [r2]
- asrs r0, 8
- strh r0, [r1, 0x22]
- ldr r1, [r5]
- ldrh r2, [r1, 0x20]
- movs r3, 0x20
- ldrsh r0, [r1, r3]
- movs r3, 0x80
- lsls r3, 1
- cmp r0, r3
- ble _0809AC78
- ldr r6, _0809AD04 @ =0xffffff00
- adds r0, r2, r6
- lsls r0, 16
- asrs r0, 16
- adds r0, 0x40
- strh r0, [r1, 0x20]
-_0809AC78:
- ldr r1, [r5]
- ldrh r2, [r1, 0x20]
- movs r6, 0x20
- ldrsh r0, [r1, r6]
- cmp r0, 0x3F
- bgt _0809AC90
- movs r0, 0x40
- subs r0, r2
- lsls r0, 16
- asrs r0, 16
- subs r0, r3, r0
- strh r0, [r1, 0x20]
-_0809AC90:
- ldr r1, [r5]
- ldrh r2, [r1, 0x22]
- movs r3, 0x22
- ldrsh r0, [r1, r3]
- cmp r0, 0xB0
- ble _0809ACA8
- adds r0, r2, 0
- subs r0, 0xB0
- lsls r0, 16
- asrs r0, 16
- subs r0, 0x10
- strh r0, [r1, 0x22]
-_0809ACA8:
- ldr r2, [r5]
- ldrh r3, [r2, 0x22]
- movs r6, 0x22
- ldrsh r0, [r2, r6]
- movs r1, 0x10
- negs r1, r1
- cmp r0, r1
- bge _0809ACC4
- subs r0, r1, r3
- movs r1, 0xB0
- lsls r0, 16
- asrs r0, 16
- subs r1, r0
- strh r1, [r2, 0x22]
-_0809ACC4:
- ldr r0, _0809AD08 @ =0x000011e3
- adds r1, r4, r0
- ldrb r0, [r1]
- cmp r0, 0
- beq _0809AD2A
- subs r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- cmp r0, 0
- bne _0809AD2A
- ldr r2, [r5]
- adds r2, 0x3F
- ldrb r3, [r2]
- lsrs r1, r3, 1
- movs r0, 0x1
- eors r1, r0
- ands r1, r0
- lsls r1, 1
- movs r0, 0x3
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2]
- b _0809AD2A
- .align 2, 0
-_0809ACF4: .4byte 0x000011c8
-_0809ACF8: .4byte 0x000011d0
-_0809ACFC: .4byte 0x000011cc
-_0809AD00: .4byte 0x000011d4
-_0809AD04: .4byte 0xffffff00
-_0809AD08: .4byte 0x000011e3
-_0809AD0C:
- movs r1, 0x8E
- lsls r1, 5
- adds r2, r4, r1
- ldr r1, [r2]
- ldr r3, _0809AD34 @ =0x000011d8
- adds r0, r4, r3
- ldrh r0, [r0]
- strh r0, [r1, 0x20]
- ldr r1, [r2]
- ldr r6, _0809AD38 @ =0x000011da
- adds r0, r4, r6
- ldrh r0, [r0]
- strh r0, [r1, 0x22]
- bl sub_809AFB8
-_0809AD2A:
- movs r0, 0x1
-_0809AD2C:
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0809AD34: .4byte 0x000011d8
-_0809AD38: .4byte 0x000011da
- thumb_func_end sub_809AC00
-
- thumb_func_start sub_809AD3C
-sub_809AD3C: @ 809AD3C
- push {r4-r6,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- mov r6, sp
- adds r6, 0x2
- adds r0, r4, 0
- adds r1, r5, 0
- mov r2, sp
- adds r3, r6, 0
- bl sub_809AACC
- ldr r0, _0809AD88 @ =gUnknown_083B6DB4
- ldr r1, [r0]
- movs r2, 0x8F
- lsls r2, 5
- adds r0, r1, r2
- strb r4, [r0]
- ldr r3, _0809AD8C @ =0x000011e1
- adds r0, r1, r3
- strb r5, [r0]
- mov r0, sp
- ldrh r2, [r0]
- subs r3, 0x9
- adds r0, r1, r3
- strh r2, [r0]
- ldrh r0, [r6]
- ldr r2, _0809AD90 @ =0x000011da
- adds r1, r2
- strh r0, [r1]
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0809AD88: .4byte gUnknown_083B6DB4
-_0809AD8C: .4byte 0x000011e1
-_0809AD90: .4byte 0x000011da
- thumb_func_end sub_809AD3C
-
- thumb_func_start sub_809AD94
-sub_809AD94: @ 809AD94
- push {r4-r7,lr}
- ldr r0, _0809ADB0 @ =gUnknown_083B6DB4
- ldr r2, [r0]
- ldr r3, _0809ADB4 @ =0x000011de
- adds r1, r2, r3
- ldrh r1, [r1]
- adds r4, r0, 0
- cmp r1, 0
- beq _0809ADBC
- ldr r0, _0809ADB8 @ =0x000011dc
- adds r1, r2, r0
- movs r0, 0xC
- b _0809ADC2
- .align 2, 0
-_0809ADB0: .4byte gUnknown_083B6DB4
-_0809ADB4: .4byte 0x000011de
-_0809ADB8: .4byte 0x000011dc
-_0809ADBC:
- ldr r3, _0809AE04 @ =0x000011dc
- adds r1, r2, r3
- movs r0, 0x6
-_0809ADC2:
- strh r0, [r1]
- ldr r2, [r4]
- ldr r0, _0809AE08 @ =0x000011e3
- adds r1, r2, r0
- ldrb r0, [r1]
- cmp r0, 0
- beq _0809ADDA
- ldr r3, _0809AE04 @ =0x000011dc
- adds r0, r2, r3
- ldrh r0, [r0]
- lsrs r0, 1
- strb r0, [r1]
-_0809ADDA:
- ldr r1, _0809AE0C @ =0x000011de
- adds r0, r2, r1
- movs r1, 0
- ldrsb r1, [r0, r1]
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _0809AE14
- cmp r1, 0x1
- beq _0809AE30
- ldr r3, _0809AE10 @ =0x000011da
- adds r0, r2, r3
- movs r3, 0
- ldrsh r1, [r0, r3]
- movs r3, 0x8E
- lsls r3, 5
- adds r0, r2, r3
- ldr r0, [r0]
- movs r2, 0x22
- ldrsh r0, [r0, r2]
- b _0809AE46
- .align 2, 0
-_0809AE04: .4byte 0x000011dc
-_0809AE08: .4byte 0x000011e3
-_0809AE0C: .4byte 0x000011de
-_0809AE10: .4byte 0x000011da
-_0809AE14:
- ldr r3, _0809AE2C @ =0x000011da
- adds r0, r2, r3
- movs r3, 0
- ldrsh r1, [r0, r3]
- movs r3, 0x8E
- lsls r3, 5
- adds r0, r2, r3
- ldr r0, [r0]
- movs r2, 0x22
- ldrsh r0, [r0, r2]
- adds r0, 0xC0
- b _0809AE46
- .align 2, 0
-_0809AE2C: .4byte 0x000011da
-_0809AE30:
- ldr r3, _0809AE74 @ =0x000011da
- adds r0, r2, r3
- movs r3, 0
- ldrsh r1, [r0, r3]
- movs r3, 0x8E
- lsls r3, 5
- adds r0, r2, r3
- ldr r0, [r0]
- movs r2, 0x22
- ldrsh r0, [r0, r2]
- subs r0, 0xC0
-_0809AE46:
- subs r7, r1, r0
- ldr r2, [r4]
- ldr r3, _0809AE78 @ =0x000011df
- adds r0, r2, r3
- movs r1, 0
- ldrsb r1, [r0, r1]
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _0809AE80
- cmp r1, 0x1
- beq _0809AE9C
- ldr r1, _0809AE7C @ =0x000011d8
- adds r0, r2, r1
- movs r3, 0
- ldrsh r1, [r0, r3]
- movs r3, 0x8E
- lsls r3, 5
- adds r0, r2, r3
- ldr r0, [r0]
- movs r2, 0x20
- ldrsh r0, [r0, r2]
- b _0809AEB2
- .align 2, 0
-_0809AE74: .4byte 0x000011da
-_0809AE78: .4byte 0x000011df
-_0809AE7C: .4byte 0x000011d8
-_0809AE80:
- ldr r3, _0809AE98 @ =0x000011d8
- adds r0, r2, r3
- movs r3, 0
- ldrsh r1, [r0, r3]
- movs r3, 0x8E
- lsls r3, 5
- adds r0, r2, r3
- ldr r0, [r0]
- movs r2, 0x20
- ldrsh r0, [r0, r2]
- adds r0, 0xC0
- b _0809AEB2
- .align 2, 0
-_0809AE98: .4byte 0x000011d8
-_0809AE9C:
- ldr r3, _0809AF00 @ =0x000011d8
- adds r0, r2, r3
- movs r3, 0
- ldrsh r1, [r0, r3]
- movs r3, 0x8E
- lsls r3, 5
- adds r0, r2, r3
- ldr r0, [r0]
- movs r2, 0x20
- ldrsh r0, [r0, r2]
- subs r0, 0xC0
-_0809AEB2:
- subs r0, r1, r0
- lsls r7, 8
- lsls r0, 8
- ldr r4, [r4]
- ldr r3, _0809AF04 @ =0x000011d0
- adds r6, r4, r3
- ldr r1, _0809AF08 @ =0x000011dc
- adds r5, r4, r1
- ldrh r1, [r5]
- bl __divsi3
- str r0, [r6]
- ldr r2, _0809AF0C @ =0x000011d4
- adds r6, r4, r2
- ldrh r1, [r5]
- adds r0, r7, 0
- bl __divsi3
- str r0, [r6]
- ldr r3, _0809AF10 @ =0x000011c8
- adds r2, r4, r3
- movs r0, 0x8E
- lsls r0, 5
- adds r1, r4, r0
- ldr r0, [r1]
- movs r3, 0x20
- ldrsh r0, [r0, r3]
- lsls r0, 8
- str r0, [r2]
- ldr r0, _0809AF14 @ =0x000011cc
- adds r4, r0
- ldr r0, [r1]
- movs r1, 0x22
- ldrsh r0, [r0, r1]
- lsls r0, 8
- str r0, [r4]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0809AF00: .4byte 0x000011d8
-_0809AF04: .4byte 0x000011d0
-_0809AF08: .4byte 0x000011dc
-_0809AF0C: .4byte 0x000011d4
-_0809AF10: .4byte 0x000011c8
-_0809AF14: .4byte 0x000011cc
- thumb_func_end sub_809AD94
-
- thumb_func_start sub_809AF18
-sub_809AF18: @ 809AF18
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl sub_809AD3C
- bl sub_809AD94
- ldr r0, _0809AFA4 @ =gUnknown_020384E6
- ldrb r0, [r0]
- cmp r0, 0
- bne _0809AF46
- ldr r0, _0809AFA8 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- movs r1, 0x8E
- lsls r1, 5
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x1
- bl StartSpriteAnim
-_0809AF46:
- cmp r4, 0x1
- bne _0809AF70
- ldr r0, _0809AFAC @ =gUnknown_020384E4
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x1
- beq _0809AF70
- ldr r0, _0809AFA8 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- ldr r2, _0809AFB0 @ =0x000011e2
- adds r1, r0, r2
- strb r4, [r1]
- ldr r1, _0809AFB4 @ =0x000011c4
- adds r0, r1
- ldr r1, [r0]
- adds r1, 0x3E
- ldrb r0, [r1]
- movs r2, 0x4
- orrs r0, r2
- strb r0, [r1]
-_0809AF70:
- cmp r4, 0
- beq _0809AF9E
- cmp r4, 0
- blt _0809AF9E
- cmp r4, 0x3
- bgt _0809AF9E
- ldr r0, _0809AFA8 @ =gUnknown_083B6DB4
- ldr r2, [r0]
- ldr r0, _0809AFB4 @ =0x000011c4
- adds r2, r0
- ldr r1, [r2]
- adds r1, 0x3E
- ldrb r0, [r1]
- movs r3, 0x4
- orrs r0, r3
- strb r0, [r1]
- ldr r2, [r2]
- ldrb r1, [r2, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- orrs r0, r3
- strb r0, [r2, 0x5]
-_0809AF9E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0809AFA4: .4byte gUnknown_020384E6
-_0809AFA8: .4byte gUnknown_083B6DB4
-_0809AFAC: .4byte gUnknown_020384E4
-_0809AFB0: .4byte 0x000011e2
-_0809AFB4: .4byte 0x000011c4
- thumb_func_end sub_809AF18
-
- thumb_func_start sub_809AFB8
-sub_809AFB8: @ 809AFB8
- push {r4,r5,lr}
- ldr r5, _0809B000 @ =gUnknown_020384E4
- ldr r0, _0809B004 @ =gUnknown_083B6DB4
- ldr r4, [r0]
- movs r1, 0x8F
- lsls r1, 5
- adds r0, r4, r1
- ldrb r0, [r0]
- strb r0, [r5]
- ldr r1, _0809B008 @ =gUnknown_020384E5
- ldr r2, _0809B00C @ =0x000011e1
- adds r0, r4, r2
- ldrb r0, [r0]
- strb r0, [r1]
- ldr r0, _0809B010 @ =gUnknown_020384E6
- ldrb r0, [r0]
- cmp r0, 0
- bne _0809AFEA
- movs r1, 0x8E
- lsls r1, 5
- adds r0, r4, r1
- ldr r0, [r0]
- movs r1, 0
- bl StartSpriteAnim
-_0809AFEA:
- bl sub_809BF74
- movs r0, 0
- ldrsb r0, [r5, r0]
- cmp r0, 0x1
- beq _0809B020
- cmp r0, 0x1
- bgt _0809B014
- cmp r0, 0
- beq _0809B034
- b _0809B05E
- .align 2, 0
-_0809B000: .4byte gUnknown_020384E4
-_0809B004: .4byte gUnknown_083B6DB4
-_0809B008: .4byte gUnknown_020384E5
-_0809B00C: .4byte 0x000011e1
-_0809B010: .4byte gUnknown_020384E6
-_0809B014:
- cmp r0, 0x2
- bne _0809B05E
- movs r0, 0x1
- bl sub_809A860
- b _0809B05E
-_0809B020:
- ldr r2, _0809B030 @ =0x000011c4
- adds r0, r4, r2
- ldr r0, [r0]
- adds r0, 0x43
- movs r1, 0xC
- strb r1, [r0]
- b _0809B05E
- .align 2, 0
-_0809B030: .4byte 0x000011c4
-_0809B034:
- ldr r0, _0809B064 @ =0x000011c4
- adds r2, r4, r0
- ldr r3, [r2]
- ldrb r1, [r3, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- movs r1, 0x8
- orrs r0, r1
- strb r0, [r3, 0x5]
- ldr r0, [r2]
- adds r0, 0x43
- movs r1, 0x14
- strb r1, [r0]
- ldr r1, [r2]
- adds r1, 0x3E
- ldrb r2, [r1]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
-_0809B05E:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0809B064: .4byte 0x000011c4
- thumb_func_end sub_809AFB8
-
- thumb_func_start sub_809B068
-sub_809B068: @ 809B068
- push {lr}
- ldr r0, _0809B078 @ =gUnknown_020384E6
- ldrb r0, [r0]
- cmp r0, 0
- bne _0809B07C
- movs r3, 0
- b _0809B08A
- .align 2, 0
-_0809B078: .4byte gUnknown_020384E6
-_0809B07C:
- bl CalculatePlayerPartyCount
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x5
- bls _0809B08A
- movs r3, 0x5
-_0809B08A:
- ldr r0, _0809B0B8 @ =gUnknown_083B6DB4
- ldr r2, [r0]
- movs r1, 0x8E
- lsls r1, 5
- adds r0, r2, r1
- ldr r0, [r0]
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0809B0AA
- ldr r0, _0809B0BC @ =0x000011e3
- adds r1, r2, r0
- movs r0, 0x1
- strb r0, [r1]
-_0809B0AA:
- movs r0, 0x1
- adds r1, r3, 0
- bl sub_809AF18
- pop {r0}
- bx r0
- .align 2, 0
-_0809B0B8: .4byte gUnknown_083B6DB4
-_0809B0BC: .4byte 0x000011e3
- thumb_func_end sub_809B068
-
- thumb_func_start sub_809B0C0
-sub_809B0C0: @ 809B0C0
- push {lr}
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- movs r0, 0
- bl sub_809AF18
- pop {r0}
- bx r0
- thumb_func_end sub_809B0C0
-
- thumb_func_start sub_809B0D4
-sub_809B0D4: @ 809B0D4
- ldr r1, _0809B0DC @ =gUnknown_020384EA
- movs r0, 0
- strb r0, [r1]
- bx lr
- .align 2, 0
-_0809B0DC: .4byte gUnknown_020384EA
- thumb_func_end sub_809B0D4
-
- thumb_func_start sub_809B0E0
-sub_809B0E0: @ 809B0E0
- ldr r0, _0809B0EC @ =gUnknown_020384EA
- ldr r1, _0809B0F0 @ =gUnknown_020384E5
- ldrb r1, [r1]
- strb r1, [r0]
- bx lr
- .align 2, 0
-_0809B0EC: .4byte gUnknown_020384EA
-_0809B0F0: .4byte gUnknown_020384E5
- thumb_func_end sub_809B0E0
-
- thumb_func_start sub_809B0F4
-sub_809B0F4: @ 809B0F4
- ldr r0, _0809B0FC @ =gUnknown_020384EA
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_0809B0FC: .4byte gUnknown_020384EA
- thumb_func_end sub_809B0F4
-
- thumb_func_start sub_809B100
-sub_809B100: @ 809B100
- lsls r0, 24
- ldr r1, _0809B120 @ =gUnknown_083B6DB4
- ldr r1, [r1]
- ldr r2, _0809B124 @ =0x000012a4
- adds r3, r1, r2
- ldr r2, _0809B128 @ =gUnknown_083BBBC8
- lsrs r0, 22
- adds r0, r2
- ldr r0, [r0]
- str r0, [r3]
- ldr r0, _0809B12C @ =0x000012a8
- adds r1, r0
- movs r0, 0
- strb r0, [r1]
- bx lr
- .align 2, 0
-_0809B120: .4byte gUnknown_083B6DB4
-_0809B124: .4byte 0x000012a4
-_0809B128: .4byte gUnknown_083BBBC8
-_0809B12C: .4byte 0x000012a8
- thumb_func_end sub_809B100
-
- thumb_func_start sub_809B130
-sub_809B130: @ 809B130
- push {lr}
- ldr r0, _0809B148 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- ldr r1, _0809B14C @ =0x000012a4
- adds r0, r1
- ldr r0, [r0]
- bl _call_via_r0
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_0809B148: .4byte gUnknown_083B6DB4
-_0809B14C: .4byte 0x000012a4
- thumb_func_end sub_809B130
-
- thumb_func_start sub_809B150
-sub_809B150: @ 809B150
- push {r4,r5,lr}
- ldr r0, _0809B16C @ =gUnknown_083B6DB4
- ldr r5, [r0]
- ldr r0, _0809B170 @ =0x000012a8
- adds r4, r5, r0
- ldrb r0, [r4]
- cmp r0, 0x1
- beq _0809B1A0
- cmp r0, 0x1
- bgt _0809B174
- cmp r0, 0
- beq _0809B17E
- b _0809B1CE
- .align 2, 0
-_0809B16C: .4byte gUnknown_083B6DB4
-_0809B170: .4byte 0x000012a8
-_0809B174:
- cmp r0, 0x2
- beq _0809B1BE
- cmp r0, 0x3
- beq _0809B186
- b _0809B1CE
-_0809B17E:
- ldr r0, _0809B18C @ =gUnknown_020384E6
- ldrb r0, [r0]
- cmp r0, 0
- beq _0809B190
-_0809B186:
- movs r0, 0
- b _0809B1D0
- .align 2, 0
-_0809B18C: .4byte gUnknown_020384E6
-_0809B190:
- movs r1, 0x8E
- lsls r1, 5
- adds r0, r5, r1
- ldr r0, [r0]
- movs r1, 0x2
- bl StartSpriteAnim
- b _0809B1C8
-_0809B1A0:
- bl sub_809B324
- lsls r0, 24
- cmp r0, 0
- bne _0809B1CE
- movs r1, 0x8E
- lsls r1, 5
- adds r0, r5, r1
- ldr r0, [r0]
- movs r1, 0x3
- bl StartSpriteAnim
- bl sub_809B384
- b _0809B1C8
-_0809B1BE:
- bl sub_809B358
- lsls r0, 24
- cmp r0, 0
- bne _0809B1CE
-_0809B1C8:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
-_0809B1CE:
- movs r0, 0x1
-_0809B1D0:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_809B150
-
- thumb_func_start sub_809B1D8
-sub_809B1D8: @ 809B1D8
- push {r4,r5,lr}
- ldr r0, _0809B1F4 @ =gUnknown_083B6DB4
- ldr r4, [r0]
- ldr r0, _0809B1F8 @ =0x000012a8
- adds r5, r4, r0
- ldrb r0, [r5]
- cmp r0, 0x1
- beq _0809B220
- cmp r0, 0x1
- bgt _0809B1FC
- cmp r0, 0
- beq _0809B202
- b _0809B244
- .align 2, 0
-_0809B1F4: .4byte gUnknown_083B6DB4
-_0809B1F8: .4byte 0x000012a8
-_0809B1FC:
- cmp r0, 0x2
- beq _0809B240
- b _0809B244
-_0809B202:
- bl sub_809B324
- lsls r0, 24
- cmp r0, 0
- bne _0809B244
- movs r1, 0x8E
- lsls r1, 5
- adds r0, r4, r1
- ldr r0, [r0]
- movs r1, 0x2
- bl StartSpriteAnim
- bl sub_809B3E0
- b _0809B238
-_0809B220:
- bl sub_809B358
- lsls r0, 24
- cmp r0, 0
- bne _0809B244
- movs r1, 0x8E
- lsls r1, 5
- adds r0, r4, r1
- ldr r0, [r0]
- movs r1, 0
- bl StartSpriteAnim
-_0809B238:
- ldrb r0, [r5]
- adds r0, 0x1
- strb r0, [r5]
- b _0809B244
-_0809B240:
- movs r0, 0
- b _0809B246
-_0809B244:
- movs r0, 0x1
-_0809B246:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_809B1D8
-
- thumb_func_start sub_809B24C
-sub_809B24C: @ 809B24C
- push {r4,r5,lr}
- ldr r0, _0809B268 @ =gUnknown_083B6DB4
- ldr r4, [r0]
- ldr r0, _0809B26C @ =0x000012a8
- adds r5, r4, r0
- ldrb r0, [r5]
- cmp r0, 0x1
- beq _0809B2E0
- cmp r0, 0x1
- bgt _0809B270
- cmp r0, 0
- beq _0809B276
- b _0809B31C
- .align 2, 0
-_0809B268: .4byte gUnknown_083B6DB4
-_0809B26C: .4byte 0x000012a8
-_0809B270:
- cmp r0, 0x2
- beq _0809B318
- b _0809B31C
-_0809B276:
- ldr r0, _0809B290 @ =gUnknown_020384E4
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0
- beq _0809B298
- cmp r0, 0x1
- bne _0809B318
- ldr r2, _0809B294 @ =0x000012a9
- adds r1, r4, r2
- movs r0, 0xE
- b _0809B2A0
- .align 2, 0
-_0809B290: .4byte gUnknown_020384E4
-_0809B294: .4byte 0x000012a9
-_0809B298:
- bl get_preferred_box
- ldr r2, _0809B2D0 @ =0x000012a9
- adds r1, r4, r2
-_0809B2A0:
- strb r0, [r1]
- ldr r0, _0809B2D4 @ =gUnknown_083B6DB4
- ldr r4, [r0]
- movs r1, 0x8E
- lsls r1, 5
- adds r0, r4, r1
- ldr r0, [r0]
- movs r1, 0x2
- bl StartSpriteAnim
- ldr r2, _0809B2D0 @ =0x000012a9
- adds r0, r4, r2
- ldrb r0, [r0]
- ldr r1, _0809B2D8 @ =gUnknown_020384E5
- ldrb r1, [r1]
- bl sub_80996B0
- ldr r0, _0809B2DC @ =0x000012a8
- adds r4, r0
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- b _0809B31C
- .align 2, 0
-_0809B2D0: .4byte 0x000012a9
-_0809B2D4: .4byte gUnknown_083B6DB4
-_0809B2D8: .4byte gUnknown_020384E5
-_0809B2DC: .4byte 0x000012a8
-_0809B2E0:
- bl sub_809971C
- lsls r0, 24
- cmp r0, 0
- bne _0809B31C
- movs r1, 0x8E
- lsls r1, 5
- adds r0, r4, r1
- ldr r0, [r0]
- movs r1, 0x3
- bl StartSpriteAnim
- ldr r2, _0809B310 @ =0x000012a9
- adds r0, r4, r2
- ldrb r0, [r0]
- ldr r1, _0809B314 @ =gUnknown_020384E5
- ldrb r1, [r1]
- bl diegohint1
- ldrb r0, [r5]
- adds r0, 0x1
- strb r0, [r5]
- b _0809B31C
- .align 2, 0
-_0809B310: .4byte 0x000012a9
-_0809B314: .4byte gUnknown_020384E5
-_0809B318:
- movs r0, 0
- b _0809B31E
-_0809B31C:
- movs r0, 0x1
-_0809B31E:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_809B24C
-
- thumb_func_start sub_809B324
-sub_809B324: @ 809B324
- push {lr}
- ldr r0, _0809B348 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- movs r1, 0x8E
- lsls r1, 5
- adds r0, r1
- ldr r1, [r0]
- movs r2, 0x26
- ldrsh r0, [r1, r2]
- cmp r0, 0
- beq _0809B33E
- cmp r0, 0x8
- beq _0809B34C
-_0809B33E:
- ldrh r0, [r1, 0x26]
- adds r0, 0x1
- strh r0, [r1, 0x26]
- b _0809B350
- .align 2, 0
-_0809B348: .4byte gUnknown_083B6DB4
-_0809B34C:
- movs r0, 0
- b _0809B352
-_0809B350:
- movs r0, 0x1
-_0809B352:
- pop {r1}
- bx r1
- thumb_func_end sub_809B324
-
- thumb_func_start sub_809B358
-sub_809B358: @ 809B358
- push {lr}
- ldr r0, _0809B378 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- movs r1, 0x8E
- lsls r1, 5
- adds r0, r1
- ldr r1, [r0]
- movs r2, 0x26
- ldrsh r0, [r1, r2]
- cmp r0, 0
- beq _0809B37C
- ldrh r0, [r1, 0x26]
- subs r0, 0x1
- strh r0, [r1, 0x26]
- movs r0, 0x1
- b _0809B37E
- .align 2, 0
-_0809B378: .4byte gUnknown_083B6DB4
-_0809B37C:
- movs r0, 0
-_0809B37E:
- pop {r1}
- bx r1
- thumb_func_end sub_809B358
-
- thumb_func_start sub_809B384
-sub_809B384: @ 809B384
- push {r4,lr}
- ldr r0, _0809B3AC @ =gUnknown_020384E4
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0
- beq _0809B3B4
- cmp r0, 0x1
- bne _0809B3D2
- ldr r4, _0809B3B0 @ =gUnknown_020384E5
- ldrb r1, [r4]
- movs r0, 0xE
- bl sub_809B44C
- ldrb r1, [r4]
- movs r0, 0
- bl sub_8099584
- b _0809B3CC
- .align 2, 0
-_0809B3AC: .4byte gUnknown_020384E4
-_0809B3B0: .4byte gUnknown_020384E5
-_0809B3B4:
- bl get_preferred_box
- lsls r0, 24
- lsrs r0, 24
- ldr r4, _0809B3D8 @ =gUnknown_020384E5
- ldrb r1, [r4]
- bl sub_809B44C
- ldrb r1, [r4]
- movs r0, 0x1
- bl sub_8099584
-_0809B3CC:
- ldr r1, _0809B3DC @ =gUnknown_020384E6
- movs r0, 0x1
- strb r0, [r1]
-_0809B3D2:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0809B3D8: .4byte gUnknown_020384E5
-_0809B3DC: .4byte gUnknown_020384E6
- thumb_func_end sub_809B384
-
- thumb_func_start sub_809B3E0
-sub_809B3E0: @ 809B3E0
- push {r4,r5,lr}
- ldr r0, _0809B408 @ =gUnknown_020384E4
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0
- beq _0809B410
- cmp r0, 0x1
- bne _0809B432
- ldr r4, _0809B40C @ =gUnknown_020384E5
- ldrb r1, [r4]
- movs r0, 0xE
- bl diegohint2
- ldrb r1, [r4]
- movs r0, 0xE
- bl sub_809960C
- b _0809B42C
- .align 2, 0
-_0809B408: .4byte gUnknown_020384E4
-_0809B40C: .4byte gUnknown_020384E5
-_0809B410:
- bl get_preferred_box
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r5, _0809B438 @ =gUnknown_020384E5
- ldrb r1, [r5]
- adds r0, r4, 0
- bl diegohint2
- ldrb r1, [r5]
- adds r0, r4, 0
- bl sub_809960C
-_0809B42C:
- ldr r1, _0809B43C @ =gUnknown_020384E6
- movs r0, 0
- strb r0, [r1]
-_0809B432:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0809B438: .4byte gUnknown_020384E5
-_0809B43C: .4byte gUnknown_020384E6
- thumb_func_end sub_809B3E0
-
- thumb_func_start sub_809B440
-sub_809B440: @ 809B440
- push {lr}
- bl sub_809BF74
- pop {r0}
- bx r0
- thumb_func_end sub_809B440
-
- thumb_func_start sub_809B44C
-sub_809B44C: @ 809B44C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 24
- lsrs r5, r1, 24
- cmp r4, 0xE
- bne _0809B488
- ldr r0, _0809B478 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- ldr r1, _0809B47C @ =0x000025b4
- adds r0, r1
- ldr r3, _0809B480 @ =gPlayerParty
- ldr r1, _0809B484 @ =gUnknown_020384E5
- movs r2, 0
- ldrsb r2, [r1, r2]
- movs r1, 0x64
- muls r1, r2
- adds r1, r3
- movs r2, 0x64
- bl memcpy
- b _0809B4AA
- .align 2, 0
-_0809B478: .4byte gUnknown_083B6DB4
-_0809B47C: .4byte 0x000025b4
-_0809B480: .4byte gPlayerParty
-_0809B484: .4byte gUnknown_020384E5
-_0809B488:
- lsls r1, r4, 2
- adds r1, r4
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 5
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 4
- ldr r2, _0809B4C0 @ =gUnknown_020300A4
- adds r1, r2
- adds r0, r1
- ldr r1, _0809B4C4 @ =gUnknown_083B6DB4
- ldr r1, [r1]
- ldr r2, _0809B4C8 @ =0x000025b4
- adds r1, r2
- bl sub_803B4B4
-_0809B4AA:
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_809B548
- ldr r0, _0809B4CC @ =gUnknown_020384E7
- strb r4, [r0]
- ldr r0, _0809B4D0 @ =gUnknown_020384E8
- strb r5, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0809B4C0: .4byte gUnknown_020300A4
-_0809B4C4: .4byte gUnknown_083B6DB4
-_0809B4C8: .4byte 0x000025b4
-_0809B4CC: .4byte gUnknown_020384E7
-_0809B4D0: .4byte gUnknown_020384E8
- thumb_func_end sub_809B44C
-
- thumb_func_start diegohint2
-diegohint2: @ 809B4D4
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 24
- lsrs r5, r1, 24
- cmp r6, 0xE
- bne _0809B508
- ldr r1, _0809B4FC @ =gPlayerParty
- movs r0, 0x64
- muls r0, r5
- adds r0, r1
- ldr r1, _0809B500 @ =gUnknown_083B6DB4
- ldr r1, [r1]
- ldr r2, _0809B504 @ =0x000025b4
- adds r1, r2
- movs r2, 0x64
- bl memcpy
- b _0809B536
- .align 2, 0
-_0809B4FC: .4byte gPlayerParty
-_0809B500: .4byte gUnknown_083B6DB4
-_0809B504: .4byte 0x000025b4
-_0809B508:
- ldr r0, _0809B53C @ =gUnknown_083B6DB4
- ldr r4, [r0]
- ldr r0, _0809B540 @ =0x000025b4
- adds r4, r0
- adds r0, r4, 0
- bl pokemon_restore_pp
- ldr r3, _0809B544 @ =gPokemonStorage
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 4
- lsls r2, r6, 2
- adds r2, r6
- lsls r1, r2, 4
- subs r1, r2
- lsls r1, 5
- adds r0, r1
- adds r0, r3
- adds r0, 0x4
- adds r1, r4, 0
- movs r2, 0x50
- bl memcpy
-_0809B536:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0809B53C: .4byte gUnknown_083B6DB4
-_0809B540: .4byte 0x000025b4
-_0809B544: .4byte gPokemonStorage
- thumb_func_end diegohint2
-
- thumb_func_start sub_809B548
-sub_809B548: @ 809B548
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r2, r1, 24
- cmp r0, 0xE
- bne _0809B568
- movs r0, 0x64
- muls r0, r2
- ldr r1, _0809B564 @ =gPlayerParty
- adds r0, r1
- bl ZeroMonData
- b _0809B582
- .align 2, 0
-_0809B564: .4byte gPlayerParty
-_0809B568:
- lsls r1, r0, 2
- adds r1, r0
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 5
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 4
- ldr r2, _0809B588 @ =gUnknown_020300A4
- adds r1, r2
- adds r0, r1
- bl ZeroBoxMonData
-_0809B582:
- pop {r0}
- bx r0
- .align 2, 0
-_0809B588: .4byte gUnknown_020300A4
- thumb_func_end sub_809B548
-
- thumb_func_start diegohint1
-diegohint1: @ 809B58C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r1, 24
- lsrs r6, r1, 24
- cmp r5, 0xE
- bne _0809B5C0
- ldr r0, _0809B5B4 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- ldr r1, _0809B5B8 @ =0x00002618
- adds r0, r1
- ldr r2, _0809B5BC @ =gPlayerParty
- movs r1, 0x64
- muls r1, r6
- adds r1, r2
- movs r2, 0x64
- bl memcpy
- b _0809B5E2
- .align 2, 0
-_0809B5B4: .4byte gUnknown_083B6DB4
-_0809B5B8: .4byte 0x00002618
-_0809B5BC: .4byte gPlayerParty
-_0809B5C0:
- lsls r1, r5, 2
- adds r1, r5
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 5
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 4
- ldr r2, _0809B614 @ =gUnknown_020300A4
- adds r1, r2
- adds r0, r1
- ldr r1, _0809B618 @ =gUnknown_083B6DB4
- ldr r1, [r1]
- ldr r2, _0809B61C @ =0x00002618
- adds r1, r2
- bl sub_803B4B4
-_0809B5E2:
- adds r0, r5, 0
- adds r1, r6, 0
- bl diegohint2
- ldr r0, _0809B618 @ =gUnknown_083B6DB4
- ldr r1, [r0]
- ldr r0, _0809B620 @ =0x000025b4
- adds r4, r1, r0
- ldr r2, _0809B61C @ =0x00002618
- adds r1, r2
- adds r0, r4, 0
- movs r2, 0x64
- bl memcpy
- adds r0, r4, 0
- movs r1, 0
- bl sub_809C04C
- ldr r0, _0809B624 @ =gUnknown_020384E7
- strb r5, [r0]
- ldr r0, _0809B628 @ =gUnknown_020384E8
- strb r6, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0809B614: .4byte gUnknown_020300A4
-_0809B618: .4byte gUnknown_083B6DB4
-_0809B61C: .4byte 0x00002618
-_0809B620: .4byte 0x000025b4
-_0809B624: .4byte gUnknown_020384E7
-_0809B628: .4byte gUnknown_020384E8
- thumb_func_end diegohint1
-
- thumb_func_start sub_809B62C
-sub_809B62C: @ 809B62C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- adds r0, r6, 0
- bl sub_8095B24
- lsls r0, 16
- lsrs r4, r0, 16
- asrs r0, 16
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- bne _0809B64A
- movs r0, 0
- b _0809B6AC
-_0809B64A:
- ldr r5, _0809B668 @ =gUnknown_020384E6
- ldrb r0, [r5]
- cmp r0, 0
- beq _0809B66C
- lsls r4, 24
- lsrs r1, r4, 24
- adds r0, r6, 0
- bl diegohint2
- bl sub_8099480
- movs r0, 0
- strb r0, [r5]
- b _0809B686
- .align 2, 0
-_0809B668: .4byte gUnknown_020384E6
-_0809B66C:
- ldr r5, _0809B6B4 @ =gUnknown_020384E5
- ldrb r1, [r5]
- movs r0, 0xE
- bl sub_809B44C
- lsls r4, 24
- lsrs r1, r4, 24
- adds r0, r6, 0
- bl diegohint2
- ldrb r0, [r5]
- bl sub_8099520
-_0809B686:
- bl get_preferred_box
- lsls r0, 24
- lsrs r0, 24
- cmp r6, r0
- bne _0809B698
- lsrs r0, r4, 24
- bl sub_8098D20
-_0809B698:
- ldr r0, _0809B6B8 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- movs r1, 0x8E
- lsls r1, 5
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x1
- bl StartSpriteAnim
- movs r0, 0x1
-_0809B6AC:
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0809B6B4: .4byte gUnknown_020384E5
-_0809B6B8: .4byte gUnknown_083B6DB4
- thumb_func_end sub_809B62C
-
- thumb_func_start sub_809B6BC
-sub_809B6BC: @ 809B6BC
- push {lr}
- ldr r0, _0809B6D8 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- movs r1, 0x8E
- lsls r1, 5
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0
- bl StartSpriteAnim
- bl sub_809BF74
- pop {r0}
- bx r0
- .align 2, 0
-_0809B6D8: .4byte gUnknown_083B6DB4
- thumb_func_end sub_809B6BC
-
- thumb_func_start sub_809B6DC
-sub_809B6DC: @ 809B6DC
- push {lr}
- ldr r0, _0809B6EC @ =gUnknown_020384E6
- ldrb r0, [r0]
- cmp r0, 0
- beq _0809B6F0
- movs r2, 0x2
- b _0809B700
- .align 2, 0
-_0809B6EC: .4byte gUnknown_020384E6
-_0809B6F0:
- ldr r0, _0809B720 @ =gUnknown_020384E4
- movs r1, 0
- ldrsb r1, [r0, r1]
- movs r2, 0x1
- eors r1, r2
- negs r0, r1
- orrs r0, r1
- lsrs r2, r0, 31
-_0809B700:
- ldr r0, _0809B724 @ =gUnknown_020384E5
- ldrb r1, [r0]
- adds r0, r2, 0
- bl sub_809981C
- ldr r0, _0809B728 @ =gUnknown_083B6DB4
- ldr r1, [r0]
- ldr r2, _0809B72C @ =0x000026e4
- adds r0, r1, r2
- ldr r2, _0809B730 @ =0x000011fa
- adds r1, r2
- bl StringCopy
- pop {r0}
- bx r0
- .align 2, 0
-_0809B720: .4byte gUnknown_020384E4
-_0809B724: .4byte gUnknown_020384E5
-_0809B728: .4byte gUnknown_083B6DB4
-_0809B72C: .4byte 0x000026e4
-_0809B730: .4byte 0x000011fa
- thumb_func_end sub_809B6DC
-
- thumb_func_start sub_809B734
-sub_809B734: @ 809B734
- push {lr}
- bl sub_80998D8
- lsls r0, 24
- cmp r0, 0
- beq _0809B744
- movs r0, 0x1
- b _0809B758
-_0809B744:
- ldr r0, _0809B75C @ =gUnknown_083B6DB4
- ldr r0, [r0]
- movs r1, 0x8E
- lsls r1, 5
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0
- bl StartSpriteAnim
- movs r0, 0
-_0809B758:
- pop {r1}
- bx r1
- .align 2, 0
-_0809B75C: .4byte gUnknown_083B6DB4
- thumb_func_end sub_809B734
-
- thumb_func_start sub_809B760
-sub_809B760: @ 809B760
- push {lr}
- bl sub_8099920
- ldr r1, _0809B774 @ =gUnknown_020384E6
- ldrb r0, [r1]
- cmp r0, 0
- beq _0809B778
- movs r0, 0
- strb r0, [r1]
- b _0809B79E
- .align 2, 0
-_0809B774: .4byte gUnknown_020384E6
-_0809B778:
- ldr r0, _0809B788 @ =gUnknown_020384E4
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x1
- bne _0809B78C
- movs r2, 0xE
- b _0809B794
- .align 2, 0
-_0809B788: .4byte gUnknown_020384E4
-_0809B78C:
- bl get_preferred_box
- lsls r0, 24
- lsrs r2, r0, 24
-_0809B794:
- ldr r0, _0809B7A8 @ =gUnknown_020384E5
- ldrb r1, [r0]
- adds r0, r2, 0
- bl sub_809B548
-_0809B79E:
- bl sub_809BF74
- pop {r0}
- bx r0
- .align 2, 0
-_0809B7A8: .4byte gUnknown_020384E5
- thumb_func_end sub_809B760
-
- thumb_func_start sub_809B7AC
-sub_809B7AC: @ 809B7AC
- push {lr}
- ldr r0, _0809B7CC @ =gUnknown_020384E6
- ldrb r0, [r0]
- cmp r0, 0
- beq _0809B7C8
- ldr r0, _0809B7D0 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- movs r1, 0x8E
- lsls r1, 5
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x3
- bl StartSpriteAnim
-_0809B7C8:
- pop {r0}
- bx r0
- .align 2, 0
-_0809B7CC: .4byte gUnknown_020384E6
-_0809B7D0: .4byte gUnknown_083B6DB4
- thumb_func_end sub_809B7AC
-
- thumb_func_start sub_809B7D4
-sub_809B7D4: @ 809B7D4
- push {r4-r6,lr}
- ldr r0, _0809B804 @ =gUnknown_020384E6
- ldrb r0, [r0]
- cmp r0, 0
- beq _0809B81C
- ldr r0, _0809B808 @ =gUnknown_083B6DB4
- ldr r4, [r0]
- ldr r1, _0809B80C @ =0x00002618
- adds r0, r4, r1
- ldr r2, _0809B810 @ =0x000025b4
- adds r1, r4, r2
- movs r2, 0x64
- bl memcpy
- ldr r0, _0809B814 @ =0x00002682
- adds r1, r4, r0
- movs r0, 0xFF
- strb r0, [r1]
- ldr r1, _0809B818 @ =0x00002683
- adds r4, r1
- movs r0, 0x1
- negs r0, r0
- strb r0, [r4]
- b _0809B8A6
- .align 2, 0
-_0809B804: .4byte gUnknown_020384E6
-_0809B808: .4byte gUnknown_083B6DB4
-_0809B80C: .4byte 0x00002618
-_0809B810: .4byte 0x000025b4
-_0809B814: .4byte 0x00002682
-_0809B818: .4byte 0x00002683
-_0809B81C:
- ldr r0, _0809B84C @ =gUnknown_020384E4
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x1
- bne _0809B864
- ldr r0, _0809B850 @ =gUnknown_083B6DB4
- ldr r4, [r0]
- ldr r2, _0809B854 @ =0x00002618
- adds r0, r4, r2
- ldr r3, _0809B858 @ =gPlayerParty
- ldr r1, _0809B85C @ =gUnknown_020384E5
- movs r2, 0
- ldrsb r2, [r1, r2]
- movs r1, 0x64
- muls r1, r2
- adds r1, r3
- movs r2, 0x64
- bl memcpy
- ldr r0, _0809B860 @ =0x00002682
- adds r4, r0
- movs r0, 0xE
- b _0809B896
- .align 2, 0
-_0809B84C: .4byte gUnknown_020384E4
-_0809B850: .4byte gUnknown_083B6DB4
-_0809B854: .4byte 0x00002618
-_0809B858: .4byte gPlayerParty
-_0809B85C: .4byte gUnknown_020384E5
-_0809B860: .4byte 0x00002682
-_0809B864:
- ldr r5, _0809B8FC @ =gPokemonStorage
- ldrb r0, [r5]
- lsls r1, r0, 2
- adds r1, r0
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 5
- ldr r1, _0809B900 @ =gUnknown_020384E5
- movs r2, 0
- ldrsb r2, [r1, r2]
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 4
- adds r2, r5, 0x4
- adds r1, r2
- adds r0, r1
- ldr r1, _0809B904 @ =gUnknown_083B6DB4
- ldr r4, [r1]
- ldr r2, _0809B908 @ =0x00002618
- adds r1, r4, r2
- bl sub_803B4B4
- ldrb r0, [r5]
- ldr r1, _0809B90C @ =0x00002682
- adds r4, r1
-_0809B896:
- strb r0, [r4]
- ldr r0, _0809B904 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- ldr r1, _0809B900 @ =gUnknown_020384E5
- ldrb r1, [r1]
- ldr r2, _0809B910 @ =0x00002683
- adds r0, r2
- strb r1, [r0]
-_0809B8A6:
- ldr r0, _0809B904 @ =gUnknown_083B6DB4
- ldr r6, [r0]
- ldr r0, _0809B914 @ =0x0000267e
- adds r4, r6, r0
- movs r0, 0
- strb r0, [r4]
- ldr r1, _0809B918 @ =0x0000267f
- adds r5, r6, r1
- strb r0, [r5]
- ldr r0, _0809B91C @ =0x00002686
- adds r2, r6, r0
- movs r0, 0x39
- strh r0, [r2]
- ldr r0, _0809B920 @ =0x00002688
- adds r1, r6, r0
- ldr r0, _0809B924 @ =0x00000123
- strh r0, [r1]
- ldr r0, _0809B928 @ =0x0000268a
- adds r1, r6, r0
- ldr r0, _0809B92C @ =0x00000163
- strh r0, [r1]
- ldr r1, _0809B908 @ =0x00002618
- adds r0, r6, r1
- movs r1, 0x50
- bl GetMonData
- lsls r0, 16
- lsrs r1, r0, 16
- movs r2, 0x1
- ands r1, r2
- strb r1, [r4]
- lsrs r0, 17
- movs r1, 0x1
- ands r0, r1
- strb r0, [r5]
- ldrh r0, [r4]
- cmp r0, 0
- beq _0809B934
- ldr r2, _0809B930 @ =0x0000267d
- adds r1, r6, r2
- movs r0, 0
- strb r0, [r1]
- b _0809B940
- .align 2, 0
-_0809B8FC: .4byte gPokemonStorage
-_0809B900: .4byte gUnknown_020384E5
-_0809B904: .4byte gUnknown_083B6DB4
-_0809B908: .4byte 0x00002618
-_0809B90C: .4byte 0x00002682
-_0809B910: .4byte 0x00002683
-_0809B914: .4byte 0x0000267e
-_0809B918: .4byte 0x0000267f
-_0809B91C: .4byte 0x00002686
-_0809B920: .4byte 0x00002688
-_0809B924: .4byte 0x00000123
-_0809B928: .4byte 0x0000268a
-_0809B92C: .4byte 0x00000163
-_0809B930: .4byte 0x0000267d
-_0809B934:
- ldr r2, _0809B954 @ =0x0000267d
- adds r0, r6, r2
- strb r1, [r0]
- subs r2, 0x1
- adds r0, r6, r2
- strb r1, [r0]
-_0809B940:
- ldr r0, _0809B958 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- ldr r1, _0809B95C @ =0x00002684
- adds r0, r1
- movs r1, 0
- strh r1, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0809B954: .4byte 0x0000267d
-_0809B958: .4byte gUnknown_083B6DB4
-_0809B95C: .4byte 0x00002684
- thumb_func_end sub_809B7D4
-
- thumb_func_start sub_809B960
-sub_809B960: @ 809B960
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r0, _0809B988 @ =gUnknown_083B6DB4
- ldr r2, [r0]
- ldr r3, _0809B98C @ =0x0000267d
- adds r1, r2, r3
- ldrb r1, [r1]
- mov r12, r0
- cmp r1, 0
- beq _0809B994
- ldr r7, _0809B990 @ =0x0000267c
- adds r0, r2, r7
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- b _0809BB5C
- .align 2, 0
-_0809B988: .4byte gUnknown_083B6DB4
-_0809B98C: .4byte 0x0000267d
-_0809B990: .4byte 0x0000267c
-_0809B994:
- ldr r1, _0809B9A4 @ =0x00002684
- adds r0, r2, r1
- ldrh r0, [r0]
- cmp r0, 0
- beq _0809B9A8
- cmp r0, 0x1
- beq _0809BA84
- b _0809BB58
- .align 2, 0
-_0809B9A4: .4byte 0x00002684
-_0809B9A8:
- movs r5, 0
- movs r6, 0
-_0809B9AC:
- mov r2, r12
- ldr r4, [r2]
- ldr r3, _0809BA28 @ =0x00002682
- adds r0, r4, r3
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0xE
- bne _0809B9CC
- ldr r7, _0809BA2C @ =0x00002683
- adds r0, r4, r7
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, r5
- beq _0809BA02
-_0809B9CC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0809BA30 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0809BA34 @ =0x00002686
- adds r2, r4, r1
- movs r1, 0x50
- bl GetMonData
- lsls r0, 16
- lsrs r3, r0, 16
- movs r0, 0x1
- ands r0, r3
- cmp r0, 0
- beq _0809B9F0
- ldr r2, _0809BA38 @ =0x0000267e
- adds r0, r4, r2
- strb r6, [r0]
-_0809B9F0:
- movs r0, 0x2
- ands r3, r0
- ldr r7, _0809BA3C @ =gUnknown_083B6DB4
- mov r12, r7
- cmp r3, 0
- beq _0809BA02
- ldr r1, _0809BA40 @ =0x0000267f
- adds r0, r4, r1
- strb r6, [r0]
-_0809BA02:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x5
- bls _0809B9AC
- mov r3, r12
- ldr r2, [r3]
- ldr r7, _0809BA38 @ =0x0000267e
- adds r0, r2, r7
- ldrh r0, [r0]
- cmp r0, 0
- bne _0809BA4C
- ldr r1, _0809BA44 @ =0x0000267d
- adds r0, r2, r1
- movs r1, 0x1
- strb r1, [r0]
- ldr r3, _0809BA48 @ =0x0000267c
- b _0809BB54
- .align 2, 0
-_0809BA28: .4byte 0x00002682
-_0809BA2C: .4byte 0x00002683
-_0809BA30: .4byte gPlayerParty
-_0809BA34: .4byte 0x00002686
-_0809BA38: .4byte 0x0000267e
-_0809BA3C: .4byte gUnknown_083B6DB4
-_0809BA40: .4byte 0x0000267f
-_0809BA44: .4byte 0x0000267d
-_0809BA48: .4byte 0x0000267c
-_0809BA4C:
- movs r7, 0x9A
- lsls r7, 6
- adds r0, r2, r7
- movs r1, 0
- strb r1, [r0]
- ldr r3, _0809BA68 @ =0x00002681
- adds r0, r2, r3
- strb r1, [r0]
- adds r7, 0x4
- adds r1, r2, r7
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- b _0809BB58
- .align 2, 0
-_0809BA68: .4byte 0x00002681
-_0809BA6C:
- ldr r1, _0809BA7C @ =0x0000267d
- adds r0, r2, r1
- movs r1, 0x1
- strb r1, [r0]
- ldr r7, _0809BA80 @ =0x0000267c
- adds r0, r2, r7
- strb r3, [r0]
- b _0809BB3C
- .align 2, 0
-_0809BA7C: .4byte 0x0000267d
-_0809BA80: .4byte 0x0000267c
-_0809BA84:
- movs r5, 0
- mov r9, r12
- adds r4, r2, 0
- movs r0, 0x9A
- lsls r0, 6
- adds r6, r4, r0
- ldr r1, _0809BB6C @ =0x0000267f
- adds r1, r4
- mov r8, r1
- ldr r2, _0809BB70 @ =0x0000ffff
- mov r10, r2
-_0809BA9A:
- movs r0, 0
- ldrsb r0, [r6, r0]
- lsls r1, r0, 2
- adds r1, r0
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 5
- ldr r3, _0809BB74 @ =0x00002681
- adds r1, r4, r3
- movs r2, 0
- ldrsb r2, [r1, r2]
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 4
- ldr r2, _0809BB78 @ =gUnknown_020300A4
- adds r1, r2
- adds r0, r1
- movs r1, 0x50
- ldr r7, _0809BB7C @ =0x00002686
- adds r2, r4, r7
- bl GetBoxMonData
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0
- beq _0809BB00
- ldr r1, _0809BB80 @ =0x00002682
- adds r0, r4, r1
- ldrh r0, [r0]
- ldrh r2, [r6]
- mov r1, r10
- ands r1, r0
- mov r0, r10
- ands r0, r2
- cmp r1, r0
- beq _0809BB00
- movs r0, 0x1
- ands r0, r3
- cmp r0, 0
- beq _0809BAF2
- ldr r2, _0809BB84 @ =0x0000267e
- adds r1, r4, r2
- movs r0, 0
- strb r0, [r1]
-_0809BAF2:
- movs r0, 0x2
- ands r3, r0
- cmp r3, 0
- beq _0809BB00
- movs r0, 0
- mov r3, r8
- strb r0, [r3]
-_0809BB00:
- mov r7, r9
- ldr r2, [r7]
- ldr r0, _0809BB74 @ =0x00002681
- adds r1, r2, r0
- ldrb r0, [r1]
- adds r0, 0x1
- movs r3, 0
- strb r0, [r1]
- lsls r0, 24
- asrs r0, 24
- ldr r7, _0809BB88 @ =gUnknown_083B6DB4
- mov r12, r7
- cmp r0, 0x1D
- ble _0809BB32
- strb r3, [r1]
- movs r0, 0x9A
- lsls r0, 6
- adds r1, r2, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0xD
- bgt _0809BA6C
-_0809BB32:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x4
- bls _0809BA9A
-_0809BB3C:
- mov r1, r12
- ldr r2, [r1]
- ldr r3, _0809BB84 @ =0x0000267e
- adds r0, r2, r3
- ldrh r0, [r0]
- cmp r0, 0
- bne _0809BB58
- ldr r7, _0809BB8C @ =0x0000267d
- adds r0, r2, r7
- movs r1, 0x1
- strb r1, [r0]
- subs r3, 0x2
-_0809BB54:
- adds r0, r2, r3
- strb r1, [r0]
-_0809BB58:
- movs r0, 0x1
- negs r0, r0
-_0809BB5C:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0809BB6C: .4byte 0x0000267f
-_0809BB70: .4byte 0x0000ffff
-_0809BB74: .4byte 0x00002681
-_0809BB78: .4byte gUnknown_020300A4
-_0809BB7C: .4byte 0x00002686
-_0809BB80: .4byte 0x00002682
-_0809BB84: .4byte 0x0000267e
-_0809BB88: .4byte gUnknown_083B6DB4
-_0809BB8C: .4byte 0x0000267d
- thumb_func_end sub_809B960
-
- thumb_func_start sub_809BB90
-sub_809BB90: @ 809BB90
- push {lr}
- ldr r0, _0809BBB0 @ =gUnknown_020384E6
- ldrb r0, [r0]
- cmp r0, 0
- beq _0809BBAA
- ldr r0, _0809BBB4 @ =gUnknown_02038480
- ldr r1, _0809BBB8 @ =gUnknown_083B6DB4
- ldr r1, [r1]
- ldr r2, _0809BBBC @ =0x000025b4
- adds r1, r2
- movs r2, 0x64
- bl memcpy
-_0809BBAA:
- pop {r0}
- bx r0
- .align 2, 0
-_0809BBB0: .4byte gUnknown_020384E6
-_0809BBB4: .4byte gUnknown_02038480
-_0809BBB8: .4byte gUnknown_083B6DB4
-_0809BBBC: .4byte 0x000025b4
- thumb_func_end sub_809BB90
-
- thumb_func_start sub_809BBC0
-sub_809BBC0: @ 809BBC0
- push {lr}
- ldr r0, _0809BBE4 @ =gUnknown_020384E6
- ldrb r0, [r0]
- cmp r0, 0
- beq _0809BC08
- ldr r0, _0809BBE8 @ =gUnknown_020384E7
- ldrb r0, [r0]
- cmp r0, 0xE
- bne _0809BBF8
- ldr r0, _0809BBEC @ =gUnknown_083B6DB4
- ldr r0, [r0]
- ldr r1, _0809BBF0 @ =0x000025b4
- adds r0, r1
- ldr r1, _0809BBF4 @ =gUnknown_02038480
- movs r2, 0x64
- bl memcpy
- b _0809BC08
- .align 2, 0
-_0809BBE4: .4byte gUnknown_020384E6
-_0809BBE8: .4byte gUnknown_020384E7
-_0809BBEC: .4byte gUnknown_083B6DB4
-_0809BBF0: .4byte 0x000025b4
-_0809BBF4: .4byte gUnknown_02038480
-_0809BBF8:
- ldr r0, _0809BC0C @ =gUnknown_083B6DB4
- ldr r0, [r0]
- ldr r1, _0809BC10 @ =0x000025b4
- adds r0, r1
- ldr r1, _0809BC14 @ =gUnknown_02038480
- movs r2, 0x50
- bl memcpy
-_0809BC08:
- pop {r0}
- bx r0
- .align 2, 0
-_0809BC0C: .4byte gUnknown_083B6DB4
-_0809BC10: .4byte 0x000025b4
-_0809BC14: .4byte gUnknown_02038480
- thumb_func_end sub_809BBC0
-
- thumb_func_start sub_809BC18
-sub_809BC18: @ 809BC18
- push {r4,r5,lr}
- ldr r0, _0809BC48 @ =gUnknown_020384E6
- ldrb r5, [r0]
- cmp r5, 0
- beq _0809BC64
- bl sub_809BB90
- ldr r0, _0809BC4C @ =gUnknown_083B6DB4
- ldr r2, [r0]
- ldr r0, _0809BC50 @ =0x00002690
- adds r1, r2, r0
- ldr r0, _0809BC54 @ =gUnknown_02038480
- str r0, [r1]
- ldr r1, _0809BC58 @ =0x0000268d
- adds r0, r2, r1
- movs r1, 0
- strb r1, [r0]
- ldr r3, _0809BC5C @ =0x0000268c
- adds r0, r2, r3
- strb r1, [r0]
- ldr r0, _0809BC60 @ =0x0000268e
- adds r2, r0
- strb r1, [r2]
- b _0809BCF2
- .align 2, 0
-_0809BC48: .4byte gUnknown_020384E6
-_0809BC4C: .4byte gUnknown_083B6DB4
-_0809BC50: .4byte 0x00002690
-_0809BC54: .4byte gUnknown_02038480
-_0809BC58: .4byte 0x0000268d
-_0809BC5C: .4byte 0x0000268c
-_0809BC60: .4byte 0x0000268e
-_0809BC64:
- ldr r0, _0809BC9C @ =gUnknown_020384E4
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x1
- bne _0809BCBC
- ldr r0, _0809BCA0 @ =gUnknown_083B6DB4
- ldr r4, [r0]
- ldr r2, _0809BCA4 @ =0x00002690
- adds r1, r4, r2
- ldr r0, _0809BCA8 @ =gPlayerParty
- str r0, [r1]
- ldr r0, _0809BCAC @ =gUnknown_020384E5
- ldrb r1, [r0]
- ldr r3, _0809BCB0 @ =0x0000268d
- adds r0, r4, r3
- strb r1, [r0]
- bl sub_8095C28
- subs r0, 0x1
- ldr r2, _0809BCB4 @ =0x0000268c
- adds r1, r4, r2
- strb r0, [r1]
- ldr r3, _0809BCB8 @ =0x0000268e
- adds r4, r3
- strb r5, [r4]
- b _0809BCF2
- .align 2, 0
-_0809BC9C: .4byte gUnknown_020384E4
-_0809BCA0: .4byte gUnknown_083B6DB4
-_0809BCA4: .4byte 0x00002690
-_0809BCA8: .4byte gPlayerParty
-_0809BCAC: .4byte gUnknown_020384E5
-_0809BCB0: .4byte 0x0000268d
-_0809BCB4: .4byte 0x0000268c
-_0809BCB8: .4byte 0x0000268e
-_0809BCBC:
- ldr r0, _0809BCF8 @ =gUnknown_083B6DB4
- ldr r3, [r0]
- ldr r0, _0809BCFC @ =0x00002690
- adds r4, r3, r0
- ldr r2, _0809BD00 @ =gPokemonStorage
- ldrb r0, [r2]
- lsls r1, r0, 2
- adds r1, r0
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 5
- adds r2, 0x4
- adds r0, r2
- str r0, [r4]
- ldr r0, _0809BD04 @ =gUnknown_020384E5
- ldrb r1, [r0]
- ldr r2, _0809BD08 @ =0x0000268d
- adds r0, r3, r2
- strb r1, [r0]
- ldr r0, _0809BD0C @ =0x0000268c
- adds r1, r3, r0
- movs r0, 0x1D
- strb r0, [r1]
- ldr r1, _0809BD10 @ =0x0000268e
- adds r3, r1
- movs r0, 0x5
- strb r0, [r3]
-_0809BCF2:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0809BCF8: .4byte gUnknown_083B6DB4
-_0809BCFC: .4byte 0x00002690
-_0809BD00: .4byte gPokemonStorage
-_0809BD04: .4byte gUnknown_020384E5
-_0809BD08: .4byte 0x0000268d
-_0809BD0C: .4byte 0x0000268c
-_0809BD10: .4byte 0x0000268e
- thumb_func_end sub_809BC18
-
- thumb_func_start sub_809BD14
-sub_809BD14: @ 809BD14
- push {lr}
- ldr r0, _0809BD24 @ =gUnknown_020384E6
- ldrb r0, [r0]
- cmp r0, 0
- beq _0809BD28
- bl sub_809BBC0
- b _0809BD30
- .align 2, 0
-_0809BD24: .4byte gUnknown_020384E6
-_0809BD28:
- ldr r0, _0809BD34 @ =gUnknown_020384E5
- ldr r1, _0809BD38 @ =0x02018000
- ldrb r1, [r1, 0x9]
- strb r1, [r0]
-_0809BD30:
- pop {r0}
- bx r0
- .align 2, 0
-_0809BD34: .4byte gUnknown_020384E5
-_0809BD38: .4byte 0x02018000
- thumb_func_end sub_809BD14
-
- thumb_func_start party_compaction
-party_compaction: @ 809BD3C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r7, _0809BD88 @ =0x0000ffff
- movs r6, 0
- movs r5, 0
- movs r0, 0x64
- mov r9, r0
- ldr r1, _0809BD8C @ =gPlayerParty
- mov r8, r1
- subs r0, 0x65
- mov r10, r0
-_0809BD58:
- mov r0, r9
- muls r0, r6
- mov r1, r8
- adds r4, r0, r1
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- cmp r0, 0
- beq _0809BD90
- cmp r6, r5
- beq _0809BD80
- mov r0, r9
- muls r0, r5
- add r0, r8
- adds r1, r4, 0
- movs r2, 0x64
- bl memcpy
-_0809BD80:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- b _0809BD9A
- .align 2, 0
-_0809BD88: .4byte 0x0000ffff
-_0809BD8C: .4byte gPlayerParty
-_0809BD90:
- lsls r0, r7, 16
- asrs r0, 16
- cmp r0, r10
- bne _0809BD9A
- adds r7, r6, 0
-_0809BD9A:
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r6, 0x5
- bls _0809BD58
- lsls r7, 16
- cmp r5, 0x5
- bhi _0809BDC2
- movs r6, 0x64
- ldr r4, _0809BDD4 @ =gPlayerParty
-_0809BDAE:
- adds r0, r5, 0
- muls r0, r6
- adds r0, r4
- bl ZeroMonData
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x5
- bls _0809BDAE
-_0809BDC2:
- asrs r0, r7, 16
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0809BDD4: .4byte gPlayerParty
- thumb_func_end party_compaction
-
- thumb_func_start sub_809BDD8
-sub_809BDD8: @ 809BDD8
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- mov r1, sp
- strb r0, [r1]
- ldr r1, _0809BE04 @ =gUnknown_083B6DB4
- ldr r2, [r1]
- ldr r3, _0809BE08 @ =0x000011f7
- adds r1, r2, r3
- strb r0, [r1]
- ldr r0, _0809BE0C @ =gUnknown_020384E6
- ldrb r0, [r0]
- cmp r0, 0
- beq _0809BE14
- ldr r1, _0809BE10 @ =0x000025b4
- adds r0, r2, r1
- movs r1, 0x8
- mov r2, sp
- bl SetMonData
- b _0809BE68
- .align 2, 0
-_0809BE04: .4byte gUnknown_083B6DB4
-_0809BE08: .4byte 0x000011f7
-_0809BE0C: .4byte gUnknown_020384E6
-_0809BE10: .4byte 0x000025b4
-_0809BE14:
- ldr r4, _0809BE70 @ =gUnknown_020384E4
- movs r0, 0
- ldrsb r0, [r4, r0]
- cmp r0, 0x1
- bne _0809BE34
- ldr r0, _0809BE74 @ =gUnknown_020384E5
- movs r1, 0
- ldrsb r1, [r0, r1]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0809BE78 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x8
- mov r2, sp
- bl SetMonData
-_0809BE34:
- movs r0, 0
- ldrsb r0, [r4, r0]
- cmp r0, 0
- bne _0809BE68
- bl get_preferred_box
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 5
- ldr r1, _0809BE74 @ =gUnknown_020384E5
- movs r2, 0
- ldrsb r2, [r1, r2]
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 4
- ldr r2, _0809BE7C @ =gUnknown_020300A4
- adds r1, r2
- adds r0, r1
- movs r1, 0x8
- mov r2, sp
- bl SetBoxMonData
-_0809BE68:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0809BE70: .4byte gUnknown_020384E4
-_0809BE74: .4byte gUnknown_020384E5
-_0809BE78: .4byte gPlayerParty
-_0809BE7C: .4byte gUnknown_020300A4
- thumb_func_end sub_809BDD8
-
- thumb_func_start sub_809BE80
-sub_809BE80: @ 809BE80
- push {lr}
- ldr r0, _0809BEA8 @ =gUnknown_020384E4
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x1
- bne _0809BEB4
- ldr r0, _0809BEAC @ =gUnknown_020384E6
- ldrb r0, [r0]
- cmp r0, 0
- bne _0809BEB4
- ldr r0, _0809BEB0 @ =gUnknown_020384E5
- ldrb r0, [r0]
- bl sub_8095BB4
- lsls r0, 24
- cmp r0, 0
- bne _0809BEB4
- movs r0, 0x1
- b _0809BEB6
- .align 2, 0
-_0809BEA8: .4byte gUnknown_020384E4
-_0809BEAC: .4byte gUnknown_020384E6
-_0809BEB0: .4byte gUnknown_020384E5
-_0809BEB4:
- movs r0, 0
-_0809BEB6:
- pop {r1}
- bx r1
- thumb_func_end sub_809BE80
-
- thumb_func_start sub_809BEBC
-sub_809BEBC: @ 809BEBC
- push {lr}
- ldr r0, _0809BF00 @ =gUnknown_020384E6
- ldrb r0, [r0]
- cmp r0, 0
- beq _0809BF18
- ldr r0, _0809BF04 @ =gUnknown_020384E4
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x1
- bne _0809BEFC
- ldr r0, _0809BF08 @ =gUnknown_020384E5
- ldrb r0, [r0]
- bl sub_8095BB4
- lsls r0, 24
- cmp r0, 0
- bne _0809BEFC
- ldr r0, _0809BF0C @ =gUnknown_083B6DB4
- ldr r1, [r0]
- ldr r2, _0809BF10 @ =0x000011f9
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- bne _0809BF18
- ldr r2, _0809BF14 @ =0x000025b4
- adds r0, r1, r2
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _0809BF18
-_0809BEFC:
- movs r0, 0x1
- b _0809BF1A
- .align 2, 0
-_0809BF00: .4byte gUnknown_020384E6
-_0809BF04: .4byte gUnknown_020384E4
-_0809BF08: .4byte gUnknown_020384E5
-_0809BF0C: .4byte gUnknown_083B6DB4
-_0809BF10: .4byte 0x000011f9
-_0809BF14: .4byte 0x000025b4
-_0809BF18:
- movs r0, 0
-_0809BF1A:
- pop {r1}
- bx r1
- thumb_func_end sub_809BEBC
-
- thumb_func_start sub_809BF20
-sub_809BF20: @ 809BF20
- ldr r0, _0809BF28 @ =gUnknown_020384E6
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_0809BF28: .4byte gUnknown_020384E6
- thumb_func_end sub_809BF20
-
- thumb_func_start sub_809BF2C
-sub_809BF2C: @ 809BF2C
- push {lr}
- movs r1, 0
- ldr r0, _0809BF44 @ =gUnknown_020384E4
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x2
- bne _0809BF3E
- movs r1, 0x1
-_0809BF3E:
- adds r0, r1, 0
- pop {r1}
- bx r1
- .align 2, 0
-_0809BF44: .4byte gUnknown_020384E4
- thumb_func_end sub_809BF2C
-
- thumb_func_start sub_809BF48
-sub_809BF48: @ 809BF48
- push {lr}
- movs r1, 0
- ldr r0, _0809BF6C @ =gUnknown_020384E4
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x3
- bne _0809BF66
- ldr r0, _0809BF70 @ =gUnknown_020384E5
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x1
- bne _0809BF66
- movs r1, 0x1
-_0809BF66:
- adds r0, r1, 0
- pop {r1}
- bx r1
- .align 2, 0
-_0809BF6C: .4byte gUnknown_020384E4
-_0809BF70: .4byte gUnknown_020384E5
- thumb_func_end sub_809BF48
-
- thumb_func_start sub_809BF74
-sub_809BF74: @ 809BF74
- push {r4,lr}
- ldr r0, _0809BFA8 @ =gUnknown_083B6DB4
- ldr r1, [r0]
- movs r2, 0
- ldr r3, _0809BFAC @ =gUnknown_020384E6
- ldrb r0, [r3]
- cmp r0, 0
- bne _0809BF86
- movs r2, 0x1
-_0809BF86:
- ldr r4, _0809BFB0 @ =0x000011f6
- adds r0, r1, r4
- strb r2, [r0]
- ldrb r0, [r3]
- cmp r0, 0
- bne _0809C018
- ldr r0, _0809BFB4 @ =gUnknown_020384E4
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x1
- beq _0809BFBE
- cmp r0, 0x1
- bgt _0809BFB8
- cmp r0, 0
- beq _0809BFEE
- b _0809C018
- .align 2, 0
-_0809BFA8: .4byte gUnknown_083B6DB4
-_0809BFAC: .4byte gUnknown_020384E6
-_0809BFB0: .4byte 0x000011f6
-_0809BFB4: .4byte gUnknown_020384E4
-_0809BFB8:
- cmp r0, 0x3
- bgt _0809C018
- b _0809BFE4
-_0809BFBE:
- ldr r1, _0809BFDC @ =gUnknown_020384E5
- movs r0, 0
- ldrsb r0, [r1, r0]
- cmp r0, 0x5
- bgt _0809BFE4
- adds r1, r0, 0
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0809BFE0 @ =gPlayerParty
- adds r0, r1
- movs r1, 0
- bl sub_809C04C
- b _0809C018
- .align 2, 0
-_0809BFDC: .4byte gUnknown_020384E5
-_0809BFE0: .4byte gPlayerParty
-_0809BFE4:
- movs r0, 0
- movs r1, 0x2
- bl sub_809C04C
- b _0809C018
-_0809BFEE:
- bl get_preferred_box
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 5
- ldr r1, _0809C020 @ =gUnknown_020384E5
- movs r2, 0
- ldrsb r2, [r1, r2]
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 4
- ldr r2, _0809C024 @ =gUnknown_020300A4
- adds r1, r2
- adds r0, r1
- movs r1, 0x1
- bl sub_809C04C
-_0809C018:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0809C020: .4byte gUnknown_020384E5
-_0809C024: .4byte gUnknown_020300A4
- thumb_func_end sub_809BF74
-
- thumb_func_start sub_809C028
-sub_809C028: @ 809C028
- push {lr}
- ldr r0, _0809C03C @ =gUnknown_020384E6
- ldrb r0, [r0]
- cmp r0, 0
- beq _0809C044
- ldr r0, _0809C040 @ =gUnknown_02038480
- movs r1, 0
- bl sub_809C04C
- b _0809C048
- .align 2, 0
-_0809C03C: .4byte gUnknown_020384E6
-_0809C040: .4byte gUnknown_02038480
-_0809C044:
- bl sub_809BF74
-_0809C048:
- pop {r0}
- bx r0
- thumb_func_end sub_809C028
-
- thumb_func_start sub_809C04C
-sub_809C04C: @ 809C04C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- adds r7, r0, 0
- lsls r1, 24
- lsrs r1, 24
- movs r0, 0
- str r0, [sp]
- ldr r0, _0809C0FC @ =gUnknown_083B6DB4
- ldr r6, [r0]
- ldr r2, _0809C100 @ =0x000011f2
- adds r2, r6
- mov r8, r2
- mov r0, sp
- ldrh r0, [r0]
- strh r0, [r2]
- cmp r1, 0
- bne _0809C120
- adds r0, r7, 0
- movs r1, 0x41
- bl GetMonData
- ldr r2, _0809C104 @ =0x000011f0
- adds r1, r6, r2
- strh r0, [r1]
- lsls r0, 16
- cmp r0, 0
- bne _0809C08C
- b _0809C1EC
-_0809C08C:
- adds r0, r7, 0
- movs r1, 0x2D
- bl GetMonData
- ldr r2, _0809C108 @ =0x000011f9
- adds r1, r6, r2
- strb r0, [r1]
- ldr r0, _0809C10C @ =0x000011fa
- adds r4, r6, r0
- adds r0, r7, 0
- movs r1, 0x2
- adds r2, r4, 0
- bl GetMonData
- adds r0, r4, 0
- bl StringGetEnd10
- adds r0, r7, 0
- movs r1, 0x38
- bl GetMonData
- ldr r2, _0809C110 @ =0x000011f8
- adds r1, r6, r2
- strb r0, [r1]
- adds r0, r7, 0
- movs r1, 0x8
- bl GetMonData
- ldr r2, _0809C114 @ =0x000011f7
- adds r1, r6, r2
- strb r0, [r1]
- adds r0, r7, 0
- movs r1, 0
- bl GetMonData
- ldr r2, _0809C118 @ =0x000011ec
- adds r1, r6, r2
- str r0, [r1]
- adds r0, r7, 0
- bl pokemon_get_pal
- ldr r2, _0809C11C @ =0x000011e8
- adds r1, r6, r2
- str r0, [r1]
- adds r0, r7, 0
- bl GetMonGender
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
- adds r0, r7, 0
- movs r1, 0xC
- bl GetMonData
- b _0809C1B2
- .align 2, 0
-_0809C0FC: .4byte gUnknown_083B6DB4
-_0809C100: .4byte 0x000011f2
-_0809C104: .4byte 0x000011f0
-_0809C108: .4byte 0x000011f9
-_0809C10C: .4byte 0x000011fa
-_0809C110: .4byte 0x000011f8
-_0809C114: .4byte 0x000011f7
-_0809C118: .4byte 0x000011ec
-_0809C11C: .4byte 0x000011e8
-_0809C120:
- cmp r1, 0x1
- bne _0809C1D4
- adds r0, r7, 0
- movs r1, 0x41
- bl GetBoxMonData
- ldr r2, _0809C1B8 @ =0x000011f0
- adds r5, r6, r2
- strh r0, [r5]
- lsls r0, 16
- cmp r0, 0
- beq _0809C1EC
- adds r0, r7, 0
- movs r1, 0x1
- bl GetBoxMonData
- mov r9, r0
- adds r0, r7, 0
- movs r1, 0x2D
- bl GetBoxMonData
- ldr r2, _0809C1BC @ =0x000011f9
- adds r1, r6, r2
- strb r0, [r1]
- ldr r0, _0809C1C0 @ =0x000011fa
- adds r4, r6, r0
- adds r0, r7, 0
- movs r1, 0x2
- adds r2, r4, 0
- bl GetBoxMonData
- adds r0, r4, 0
- bl StringGetEnd10
- adds r0, r7, 0
- bl GetLevelFromBoxMonExp
- ldr r2, _0809C1C4 @ =0x000011f8
- adds r1, r6, r2
- strb r0, [r1]
- adds r0, r7, 0
- movs r1, 0x8
- bl GetBoxMonData
- ldr r2, _0809C1C8 @ =0x000011f7
- adds r1, r6, r2
- strb r0, [r1]
- adds r0, r7, 0
- movs r1, 0
- bl GetBoxMonData
- adds r2, r0, 0
- ldr r0, _0809C1CC @ =0x000011ec
- adds r4, r6, r0
- str r2, [r4]
- ldrh r0, [r5]
- mov r1, r9
- bl species_and_otid_get_pal
- ldr r2, _0809C1D0 @ =0x000011e8
- adds r1, r6, r2
- str r0, [r1]
- ldrh r0, [r5]
- ldr r1, [r4]
- bl GetGenderFromSpeciesAndPersonality
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
- adds r0, r7, 0
- movs r1, 0xC
- bl GetBoxMonData
-_0809C1B2:
- mov r1, r8
- strh r0, [r1]
- b _0809C1DE
- .align 2, 0
-_0809C1B8: .4byte 0x000011f0
-_0809C1BC: .4byte 0x000011f9
-_0809C1C0: .4byte 0x000011fa
-_0809C1C4: .4byte 0x000011f8
-_0809C1C8: .4byte 0x000011f7
-_0809C1CC: .4byte 0x000011ec
-_0809C1D0: .4byte 0x000011e8
-_0809C1D4:
- ldr r2, _0809C220 @ =0x000011f0
- adds r0, r6, r2
- mov r1, sp
- ldrh r1, [r1]
- strh r1, [r0]
-_0809C1DE:
- ldr r0, _0809C224 @ =gUnknown_083B6DB4
- ldr r4, [r0]
- ldr r2, _0809C220 @ =0x000011f0
- adds r0, r4, r2
- ldrh r1, [r0]
- cmp r1, 0
- bne _0809C23C
-_0809C1EC:
- ldr r0, _0809C224 @ =gUnknown_083B6DB4
- ldr r1, [r0]
- ldr r0, _0809C228 @ =0x000011fa
- adds r2, r1, r0
- movs r0, 0xFF
- strb r0, [r2]
- ldr r0, _0809C22C @ =0x0000120f
- adds r2, r1, r0
- movs r0, 0x1
- negs r0, r0
- strb r0, [r2]
- ldr r0, _0809C230 @ =0x00001234
- adds r2, r1, r0
- movs r0, 0x1
- negs r0, r0
- strb r0, [r2]
- ldr r0, _0809C234 @ =0x00001259
- adds r2, r1, r0
- movs r0, 0x1
- negs r0, r0
- strb r0, [r2]
- ldr r2, _0809C238 @ =0x0000127a
- adds r1, r2
- strb r0, [r1]
- b _0809C43E
- .align 2, 0
-_0809C220: .4byte 0x000011f0
-_0809C224: .4byte gUnknown_083B6DB4
-_0809C228: .4byte 0x000011fa
-_0809C22C: .4byte 0x0000120f
-_0809C230: .4byte 0x00001234
-_0809C234: .4byte 0x00001259
-_0809C238: .4byte 0x0000127a
-_0809C23C:
- ldr r2, _0809C28C @ =0x000011f9
- adds r0, r4, r2
- ldrb r0, [r0]
- cmp r0, 0
- beq _0809C2A4
- ldr r0, _0809C290 @ =0x0000120f
- adds r7, r4, r0
- movs r0, 0xFC
- strb r0, [r7]
- movs r0, 0x4
- strb r0, [r7, 0x1]
- movs r0, 0xF
- strb r0, [r7, 0x2]
- movs r0, 0
- strb r0, [r7, 0x3]
- movs r0, 0x1
- strb r0, [r7, 0x4]
- ldr r1, _0809C294 @ =0x00001214
- adds r7, r4, r1
- adds r2, 0x1
- adds r1, r4, r2
- adds r0, r7, 0
- bl StringCopy
- ldr r0, _0809C298 @ =0x00001234
- adds r1, r4, r0
- movs r0, 0xFF
- strb r0, [r1]
- ldr r2, _0809C29C @ =0x00001259
- adds r1, r4, r2
- movs r0, 0x1
- negs r0, r0
- strb r0, [r1]
- ldr r0, _0809C2A0 @ =0x0000127a
- adds r1, r4, r0
- movs r0, 0x1
- negs r0, r0
- strb r0, [r1]
- b _0809C43E
- .align 2, 0
-_0809C28C: .4byte 0x000011f9
-_0809C290: .4byte 0x0000120f
-_0809C294: .4byte 0x00001214
-_0809C298: .4byte 0x00001234
-_0809C29C: .4byte 0x00001259
-_0809C2A0: .4byte 0x0000127a
-_0809C2A4:
- cmp r1, 0x20
- beq _0809C2AC
- cmp r1, 0x1D
- bne _0809C2B0
-_0809C2AC:
- movs r1, 0xFF
- str r1, [sp]
-_0809C2B0:
- ldr r0, _0809C388 @ =gUnknown_083B6DB4
- ldr r4, [r0]
- ldr r2, _0809C38C @ =0x0000120f
- adds r7, r4, r2
- movs r0, 0xFC
- mov r9, r0
- strb r0, [r7]
- movs r1, 0x4
- mov r8, r1
- strb r1, [r7, 0x1]
- movs r2, 0xF
- strb r2, [r7, 0x2]
- movs r0, 0
- strb r0, [r7, 0x3]
- movs r6, 0x1
- strb r6, [r7, 0x4]
- ldr r1, _0809C390 @ =0x00001214
- adds r7, r4, r1
- ldr r2, _0809C394 @ =0x000011fa
- adds r1, r4, r2
- adds r0, r7, 0
- bl StringCopy
- ldr r0, _0809C398 @ =0x00001234
- adds r7, r4, r0
- mov r1, r9
- strb r1, [r7]
- mov r2, r8
- strb r2, [r7, 0x1]
- movs r0, 0xF
- strb r0, [r7, 0x2]
- movs r1, 0
- strb r1, [r7, 0x3]
- strb r6, [r7, 0x4]
- mov r2, r9
- strb r2, [r7, 0x5]
- movs r0, 0x13
- mov r10, r0
- strb r0, [r7, 0x6]
- movs r1, 0x7
- strb r1, [r7, 0x7]
- movs r0, 0xBA
- strb r0, [r7, 0x8]
- ldr r2, _0809C39C @ =0x0000123d
- adds r7, r4, r2
- ldr r1, _0809C3A0 @ =0x000011f0
- adds r0, r4, r1
- ldrh r1, [r0]
- movs r0, 0xB
- muls r1, r0
- ldr r0, _0809C3A4 @ =gSpeciesNames
- adds r1, r0
- adds r0, r7, 0
- bl StringCopy
- adds r7, r0, 0
- mov r2, r9
- strb r2, [r7]
- mov r0, r10
- strb r0, [r7, 0x1]
- movs r0, 0x50
- strb r0, [r7, 0x2]
- movs r0, 0xFF
- strb r0, [r7, 0x3]
- ldr r1, _0809C3A8 @ =0x00001259
- adds r7, r4, r1
- strb r2, [r7]
- mov r2, r8
- strb r2, [r7, 0x1]
- movs r0, 0xF
- strb r0, [r7, 0x2]
- movs r1, 0
- strb r1, [r7, 0x3]
- strb r6, [r7, 0x4]
- mov r2, r9
- strb r2, [r7, 0x5]
- mov r0, r10
- strb r0, [r7, 0x6]
- movs r6, 0x8
- strb r6, [r7, 0x7]
- ldr r1, _0809C3AC @ =0x00001261
- adds r7, r4, r1
- movs r0, 0x34
- strb r0, [r7]
- ldr r2, _0809C3B0 @ =0x00001262
- adds r7, r4, r2
- ldr r0, _0809C3B4 @ =0x000011f8
- adds r4, r0
- ldrb r1, [r4]
- adds r0, r7, 0
- movs r2, 0x22
- movs r3, 0x1
- bl sub_8072C14
- adds r7, r0, 0
- mov r1, r9
- strb r1, [r7]
- movs r0, 0x11
- strb r0, [r7, 0x1]
- strb r6, [r7, 0x2]
- adds r7, 0x3
- ldr r2, [sp]
- cmp r2, 0
- beq _0809C3B8
- cmp r2, 0xFE
- beq _0809C3D0
- b _0809C3EA
- .align 2, 0
-_0809C388: .4byte gUnknown_083B6DB4
-_0809C38C: .4byte 0x0000120f
-_0809C390: .4byte 0x00001214
-_0809C394: .4byte 0x000011fa
-_0809C398: .4byte 0x00001234
-_0809C39C: .4byte 0x0000123d
-_0809C3A0: .4byte 0x000011f0
-_0809C3A4: .4byte gSpeciesNames
-_0809C3A8: .4byte 0x00001259
-_0809C3AC: .4byte 0x00001261
-_0809C3B0: .4byte 0x00001262
-_0809C3B4: .4byte 0x000011f8
-_0809C3B8:
- mov r0, r9
- strb r0, [r7]
- mov r1, r8
- strb r1, [r7, 0x1]
- strb r1, [r7, 0x2]
- mov r2, sp
- ldrb r2, [r2]
- strb r2, [r7, 0x3]
- movs r0, 0x5
- strb r0, [r7, 0x4]
- movs r0, 0xB5
- b _0809C3E6
-_0809C3D0:
- mov r0, r9
- strb r0, [r7]
- mov r1, r8
- strb r1, [r7, 0x1]
- movs r0, 0x6
- strb r0, [r7, 0x2]
- movs r2, 0
- strb r2, [r7, 0x3]
- movs r0, 0x7
- strb r0, [r7, 0x4]
- movs r0, 0xB6
-_0809C3E6:
- strb r0, [r7, 0x5]
- adds r7, 0x6
-_0809C3EA:
- movs r5, 0xFF
- strb r5, [r7]
- ldr r0, _0809C450 @ =gUnknown_083B6DB4
- ldr r2, [r0]
- ldr r1, _0809C454 @ =0x0000127a
- adds r7, r2, r1
- ldr r0, _0809C458 @ =0x000011f2
- adds r3, r2, r0
- ldrh r0, [r3]
- cmp r0, 0
- beq _0809C43C
- movs r4, 0xFC
- strb r4, [r7]
- movs r1, 0x4
- strb r1, [r7, 0x1]
- movs r0, 0xF
- strb r0, [r7, 0x2]
- movs r0, 0
- strb r0, [r7, 0x3]
- movs r0, 0x1
- strb r0, [r7, 0x4]
- ldr r0, _0809C45C @ =0x0000127f
- adds r7, r2, r0
- strb r4, [r7]
- movs r0, 0x6
- strb r0, [r7, 0x1]
- strb r1, [r7, 0x2]
- ldr r1, _0809C460 @ =0x00001282
- adds r7, r2, r1
- ldrh r0, [r3]
- bl ItemId_GetItem
- adds r1, r0, 0
- adds r0, r7, 0
- bl StringCopy
- adds r7, r0, 0
- strb r4, [r7]
- movs r0, 0x7
- strb r0, [r7, 0x1]
- adds r7, 0x2
-_0809C43C:
- strb r5, [r7]
-_0809C43E:
- 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
-_0809C450: .4byte gUnknown_083B6DB4
-_0809C454: .4byte 0x0000127a
-_0809C458: .4byte 0x000011f2
-_0809C45C: .4byte 0x0000127f
-_0809C460: .4byte 0x00001282
- thumb_func_end sub_809C04C
-
- thumb_func_start sub_809C464
-sub_809C464: @ 809C464
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r0, _0809C4D8 @ =gUnknown_020384E4
- ldrb r0, [r0]
- mov r8, r0
- ldr r2, _0809C4DC @ =gUnknown_020384E5
- ldrb r4, [r2]
- ldr r0, _0809C4E0 @ =gUnknown_083B6DB4
- ldr r1, [r0]
- ldr r0, _0809C4E4 @ =0x000011de
- adds r7, r1, r0
- movs r0, 0
- strb r0, [r7]
- ldr r3, _0809C4E8 @ =0x000011df
- adds r5, r1, r3
- strb r0, [r5]
- adds r3, 0x4
- adds r6, r1, r3
- strb r0, [r6]
- ldr r0, _0809C4EC @ =gMain
- mov r12, r0
- ldrh r1, [r0, 0x30]
- movs r0, 0x40
- ands r0, r1
- adds r3, r2, 0
- cmp r0, 0
- beq _0809C4A0
- b _0809C62A
-_0809C4A0:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0809C4F0
- movs r1, 0x1
- mov r9, r1
- lsls r0, r4, 24
- movs r3, 0xC0
- lsls r3, 19
- adds r0, r3
- lsrs r4, r0, 24
- asrs r0, 24
- cmp r0, 0x1D
- bgt _0809C4BE
- b _0809C648
-_0809C4BE:
- movs r1, 0x3
- mov r8, r1
- subs r0, 0x1E
- lsls r0, 24
- asrs r0, 24
- bl __divsi3
- lsls r0, 24
- lsrs r4, r0, 24
- mov r3, r9
- strb r3, [r7]
- strb r3, [r6]
- b _0809C648
- .align 2, 0
-_0809C4D8: .4byte gUnknown_020384E4
-_0809C4DC: .4byte gUnknown_020384E5
-_0809C4E0: .4byte gUnknown_083B6DB4
-_0809C4E4: .4byte 0x000011de
-_0809C4E8: .4byte 0x000011df
-_0809C4EC: .4byte gMain
-_0809C4F0:
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0809C524
- movs r0, 0x1
- mov r9, r0
- movs r0, 0
- ldrsb r0, [r3, r0]
- movs r1, 0x6
- bl __modsi3
- lsls r0, 24
- cmp r0, 0
- beq _0809C514
- lsls r0, r4, 24
- movs r1, 0xFF
- lsls r1, 24
- b _0809C63C
-_0809C514:
- movs r0, 0xFF
- strb r0, [r5]
- lsls r0, r4, 24
- movs r3, 0xA0
- lsls r3, 19
- adds r0, r3
- lsrs r4, r0, 24
- b _0809C648
-_0809C524:
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0809C554
- movs r0, 0x1
- mov r9, r0
- movs r0, 0
- ldrsb r0, [r3, r0]
- adds r0, 0x1
- movs r1, 0x6
- bl __modsi3
- cmp r0, 0
- beq _0809C548
- lsls r0, r4, 24
- movs r1, 0x80
- lsls r1, 17
- b _0809C63C
-_0809C548:
- mov r3, r9
- strb r3, [r5]
- lsls r0, r4, 24
- movs r1, 0xFB
- lsls r1, 24
- b _0809C63C
-_0809C554:
- mov r3, r12
- ldrh r1, [r3, 0x2E]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _0809C56A
- movs r0, 0x1
- mov r9, r0
- movs r1, 0x2
- mov r8, r1
- b _0809C646
-_0809C56A:
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0809C5D4
- bl sub_809CAB0
- lsls r0, 24
- cmp r0, 0
- beq _0809C5D4
- ldr r0, _0809C588 @ =gUnknown_020384E9
- ldrb r0, [r0]
- cmp r0, 0
- bne _0809C58C
- movs r0, 0x8
- b _0809C658
- .align 2, 0
-_0809C588: .4byte gUnknown_020384E9
-_0809C58C:
- movs r0, 0
- bl sub_809CE4C
- subs r0, 0x1
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x4
- bhi _0809C5D4
- lsls r0, 2
- ldr r1, _0809C5A8 @ =_0809C5AC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0809C5A8: .4byte _0809C5AC
- .align 2, 0
-_0809C5AC:
- .4byte _0809C5C0
- .4byte _0809C5C4
- .4byte _0809C5C8
- .4byte _0809C5CC
- .4byte _0809C5D0
-_0809C5C0:
- movs r0, 0xB
- b _0809C658
-_0809C5C4:
- movs r0, 0xC
- b _0809C658
-_0809C5C8:
- movs r0, 0xD
- b _0809C658
-_0809C5CC:
- movs r0, 0xE
- b _0809C658
-_0809C5D0:
- movs r0, 0xF
- b _0809C658
-_0809C5D4:
- ldr r2, _0809C5E4 @ =gMain
- ldrh r1, [r2, 0x2E]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0809C5E8
- movs r0, 0x10
- b _0809C658
- .align 2, 0
-_0809C5E4: .4byte gMain
-_0809C5E8:
- ldr r0, _0809C600 @ =gSaveBlock2
- ldrb r0, [r0, 0x13]
- cmp r0, 0x1
- bne _0809C612
- ldrh r1, [r2, 0x2C]
- movs r0, 0x80
- lsls r0, 2
- ands r0, r1
- cmp r0, 0
- beq _0809C604
- movs r0, 0xA
- b _0809C658
- .align 2, 0
-_0809C600: .4byte gSaveBlock2
-_0809C604:
- movs r0, 0x80
- lsls r0, 1
- ands r0, r1
- cmp r0, 0
- beq _0809C612
- movs r0, 0x9
- b _0809C658
-_0809C612:
- ldrh r1, [r2, 0x2E]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0809C624
- bl sub_809CD88
- movs r0, 0
- b _0809C658
-_0809C624:
- movs r3, 0
- mov r9, r3
- b _0809C656
-_0809C62A:
- movs r0, 0x1
- mov r9, r0
- movs r0, 0
- ldrsb r0, [r2, r0]
- cmp r0, 0x5
- ble _0809C642
- lsls r0, r4, 24
- movs r1, 0xFA
- lsls r1, 24
-_0809C63C:
- adds r0, r1
- lsrs r4, r0, 24
- b _0809C648
-_0809C642:
- movs r3, 0x2
- mov r8, r3
-_0809C646:
- movs r4, 0
-_0809C648:
- mov r0, r9
- cmp r0, 0
- beq _0809C656
- mov r0, r8
- adds r1, r4, 0
- bl sub_809AF18
-_0809C656:
- mov r0, r9
-_0809C658:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_809C464
-
- thumb_func_start sub_809C664
-sub_809C664: @ 809C664
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r0, _0809C6D8 @ =gUnknown_020384E4
- ldrb r0, [r0]
- mov r10, r0
- ldr r7, _0809C6DC @ =gUnknown_020384E5
- ldrb r4, [r7]
- ldr r2, _0809C6E0 @ =gUnknown_083B6DB4
- ldr r5, [r2]
- ldr r1, _0809C6E4 @ =0x000011df
- adds r0, r5, r1
- movs r1, 0
- strb r1, [r0]
- ldr r3, _0809C6E8 @ =0x000011de
- adds r0, r5, r3
- strb r1, [r0]
- adds r3, 0x5
- adds r0, r5, r3
- strb r1, [r0]
- mov r9, r1
- mov r8, r1
- ldr r1, _0809C6EC @ =gMain
- ldrh r3, [r1, 0x30]
- movs r0, 0x40
- ands r0, r3
- adds r6, r7, 0
- mov r12, r2
- adds r2, r1, 0
- cmp r0, 0
- beq _0809C6A8
- b _0809C81C
-_0809C6A8:
- movs r0, 0x80
- ands r0, r3
- cmp r0, 0
- beq _0809C6F0
- lsls r0, r4, 24
- movs r1, 0x80
- lsls r1, 17
- adds r0, r1
- lsrs r4, r0, 24
- asrs r0, 24
- cmp r0, 0x6
- ble _0809C6C2
- movs r4, 0
-_0809C6C2:
- lsls r0, r4, 24
- asrs r0, 24
- movs r1, 0
- ldrsb r1, [r6, r1]
- cmp r0, r1
- bne _0809C6D0
- b _0809C83C
-_0809C6D0:
- movs r2, 0x1
- mov r8, r2
- b _0809C842
- .align 2, 0
-_0809C6D8: .4byte gUnknown_020384E4
-_0809C6DC: .4byte gUnknown_020384E5
-_0809C6E0: .4byte gUnknown_083B6DB4
-_0809C6E4: .4byte 0x000011df
-_0809C6E8: .4byte 0x000011de
-_0809C6EC: .4byte gMain
-_0809C6F0:
- movs r0, 0x20
- ands r0, r3
- cmp r0, 0
- beq _0809C714
- ldrb r1, [r6]
- movs r0, 0
- ldrsb r0, [r6, r0]
- cmp r0, 0
- beq _0809C714
- movs r3, 0x1
- mov r8, r3
- ldr r2, _0809C710 @ =0x000011e2
- adds r0, r5, r2
- strb r1, [r0]
- movs r4, 0
- b _0809C83C
- .align 2, 0
-_0809C710: .4byte 0x000011e2
-_0809C714:
- ldrh r1, [r2, 0x30]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0809C748
- movs r0, 0
- ldrsb r0, [r6, r0]
- cmp r0, 0
- bne _0809C73C
- movs r3, 0x1
- mov r8, r3
- mov r1, r12
- ldr r0, [r1]
- ldr r2, _0809C738 @ =0x000011e2
- adds r0, r2
- ldrb r4, [r0]
- b _0809C83C
- .align 2, 0
-_0809C738: .4byte 0x000011e2
-_0809C73C:
- movs r3, 0x6
- mov r8, r3
- movs r0, 0
- mov r10, r0
- movs r4, 0
- b _0809C83C
-_0809C748:
- ldrh r1, [r2, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0809C7D0
- movs r0, 0
- ldrsb r0, [r6, r0]
- cmp r0, 0x6
- bne _0809C76E
- mov r1, r12
- ldr r0, [r1]
- ldrb r0, [r0, 0x5]
- cmp r0, 0x1
- bne _0809C768
- movs r0, 0x4
- b _0809C84C
-_0809C768:
- movs r2, 0x1
- mov r9, r2
- b _0809C7D0
-_0809C76E:
- bl sub_809CAB0
- lsls r0, 24
- cmp r0, 0
- beq _0809C7D0
- ldr r0, _0809C784 @ =gUnknown_020384E9
- ldrb r0, [r0]
- cmp r0, 0
- bne _0809C788
- movs r0, 0x8
- b _0809C84C
- .align 2, 0
-_0809C784: .4byte gUnknown_020384E9
-_0809C788:
- movs r0, 0
- bl sub_809CE4C
- subs r0, 0x1
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x4
- bhi _0809C7D0
- lsls r0, 2
- ldr r1, _0809C7A4 @ =_0809C7A8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0809C7A4: .4byte _0809C7A8
- .align 2, 0
-_0809C7A8:
- .4byte _0809C7BC
- .4byte _0809C7C0
- .4byte _0809C7C4
- .4byte _0809C7C8
- .4byte _0809C7CC
-_0809C7BC:
- movs r0, 0xB
- b _0809C84C
-_0809C7C0:
- movs r0, 0xC
- b _0809C84C
-_0809C7C4:
- movs r0, 0xD
- b _0809C84C
-_0809C7C8:
- movs r0, 0xE
- b _0809C84C
-_0809C7CC:
- movs r0, 0xF
- b _0809C84C
-_0809C7D0:
- ldr r2, _0809C7EC @ =gMain
- ldrh r1, [r2, 0x2E]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0809C7F8
- ldr r0, _0809C7F0 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- ldrb r0, [r0, 0x5]
- cmp r0, 0x1
- bne _0809C7F4
- movs r0, 0x10
- b _0809C84C
- .align 2, 0
-_0809C7EC: .4byte gMain
-_0809C7F0: .4byte gUnknown_083B6DB4
-_0809C7F4:
- movs r3, 0x1
- mov r9, r3
-_0809C7F8:
- mov r0, r9
- cmp r0, 0
- beq _0809C80A
- movs r1, 0x6
- mov r8, r1
- movs r2, 0
- mov r10, r2
- movs r4, 0
- b _0809C83C
-_0809C80A:
- ldrh r1, [r2, 0x2E]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0809C83C
- bl sub_809CD88
- movs r0, 0
- b _0809C84C
-_0809C81C:
- lsls r0, r4, 24
- movs r3, 0xFF
- lsls r3, 24
- adds r0, r3
- lsrs r4, r0, 24
- cmp r0, 0
- bge _0809C82C
- movs r4, 0x6
-_0809C82C:
- lsls r0, r4, 24
- asrs r0, 24
- movs r1, 0
- ldrsb r1, [r7, r1]
- cmp r0, r1
- beq _0809C83C
- movs r0, 0x1
- mov r8, r0
-_0809C83C:
- mov r1, r8
- cmp r1, 0
- beq _0809C84A
-_0809C842:
- mov r0, r10
- adds r1, r4, 0
- bl sub_809AF18
-_0809C84A:
- mov r0, r8
-_0809C84C:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_809C664
-
- thumb_func_start sub_809C85C
-sub_809C85C: @ 809C85C
- push {r4-r6,lr}
- ldr r0, _0809C894 @ =gUnknown_083B6DB4
- ldr r2, [r0]
- ldr r1, _0809C898 @ =0x000011df
- adds r0, r2, r1
- movs r1, 0
- strb r1, [r0]
- ldr r3, _0809C89C @ =0x000011de
- adds r0, r2, r3
- strb r1, [r0]
- ldr r0, _0809C8A0 @ =0x000011e3
- adds r2, r0
- strb r1, [r2]
- ldr r1, _0809C8A4 @ =gMain
- ldrh r3, [r1, 0x30]
- movs r0, 0x40
- ands r0, r3
- cmp r0, 0
- bne _0809C91A
- movs r0, 0x80
- ands r0, r3
- cmp r0, 0
- beq _0809C8A8
- movs r4, 0x1
- movs r0, 0
- movs r5, 0x2
- b _0809C922
- .align 2, 0
-_0809C894: .4byte gUnknown_083B6DB4
-_0809C898: .4byte 0x000011df
-_0809C89C: .4byte 0x000011de
-_0809C8A0: .4byte 0x000011e3
-_0809C8A4: .4byte gMain
-_0809C8A8:
- ldrh r2, [r1, 0x2C]
- movs r0, 0x20
- ands r0, r2
- cmp r0, 0
- bne _0809C8CC
- movs r0, 0x10
- ands r0, r2
- cmp r0, 0
- bne _0809C8DE
- ldr r0, _0809C8D0 @ =gSaveBlock2
- ldrb r0, [r0, 0x13]
- cmp r0, 0x1
- bne _0809C8E2
- movs r0, 0x80
- lsls r0, 2
- ands r0, r2
- cmp r0, 0
- beq _0809C8D4
-_0809C8CC:
- movs r0, 0xA
- b _0809C93E
- .align 2, 0
-_0809C8D0: .4byte gSaveBlock2
-_0809C8D4:
- movs r0, 0x80
- lsls r0, 1
- ands r0, r2
- cmp r0, 0
- beq _0809C8E2
-_0809C8DE:
- movs r0, 0x9
- b _0809C93E
-_0809C8E2:
- ldrh r1, [r1, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0809C8FA
- movs r0, 0
- bl sub_809A860
- bl sub_809CA8C
- movs r0, 0x7
- b _0809C93E
-_0809C8FA:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0809C906
- movs r0, 0x10
- b _0809C93E
-_0809C906:
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0809C916
- bl sub_809CD88
- movs r0, 0
- b _0809C93E
-_0809C916:
- movs r4, 0
- b _0809C93C
-_0809C91A:
- movs r4, 0x1
- movs r0, 0x3
- movs r5, 0
- strb r4, [r2]
-_0809C922:
- cmp r4, 0
- beq _0809C93C
- lsls r6, r0, 24
- cmp r0, 0x2
- beq _0809C932
- movs r0, 0
- bl sub_809A860
-_0809C932:
- lsrs r0, r6, 24
- lsls r1, r5, 24
- lsrs r1, 24
- bl sub_809AF18
-_0809C93C:
- adds r0, r4, 0
-_0809C93E:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_809C85C
-
- thumb_func_start sub_809C944
-sub_809C944: @ 809C944
- push {r4-r7,lr}
- ldr r0, _0809C988 @ =gUnknown_020384E4
- ldrb r0, [r0]
- mov r12, r0
- ldr r7, _0809C98C @ =gUnknown_020384E5
- ldrb r3, [r7]
- ldr r0, _0809C990 @ =gUnknown_083B6DB4
- ldr r1, [r0]
- ldr r0, _0809C994 @ =0x000011df
- adds r5, r1, r0
- movs r0, 0
- strb r0, [r5]
- ldr r2, _0809C998 @ =0x000011de
- adds r4, r1, r2
- strb r0, [r4]
- adds r2, 0x5
- adds r1, r2
- strb r0, [r1]
- ldr r6, _0809C99C @ =gMain
- ldrh r2, [r6, 0x30]
- movs r0, 0x40
- ands r0, r2
- cmp r0, 0
- bne _0809CA14
- movs r0, 0x88
- ands r0, r2
- cmp r0, 0
- beq _0809C9A0
- movs r6, 0x1
- movs r0, 0x2
- mov r12, r0
- movs r3, 0
- b _0809CA2A
- .align 2, 0
-_0809C988: .4byte gUnknown_020384E4
-_0809C98C: .4byte gUnknown_020384E5
-_0809C990: .4byte gUnknown_083B6DB4
-_0809C994: .4byte 0x000011df
-_0809C998: .4byte 0x000011de
-_0809C99C: .4byte gMain
-_0809C9A0:
- movs r0, 0x20
- ands r0, r2
- cmp r0, 0
- beq _0809C9C0
- movs r6, 0x1
- lsls r0, r3, 24
- movs r1, 0xFF
- lsls r1, 24
- adds r0, r1
- lsrs r3, r0, 24
- cmp r0, 0
- bge _0809CA2C
- movs r0, 0xFF
- strb r0, [r5]
- movs r3, 0x1
- b _0809CA2C
-_0809C9C0:
- movs r0, 0x10
- ands r0, r2
- cmp r0, 0
- beq _0809C9E0
- movs r6, 0x1
- lsls r0, r3, 24
- movs r2, 0x80
- lsls r2, 17
- adds r0, r2
- lsrs r3, r0, 24
- asrs r0, 24
- cmp r0, 0x1
- ble _0809CA2C
- strb r6, [r5]
- movs r3, 0
- b _0809CA2C
-_0809C9E0:
- ldrh r1, [r6, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0809C9F4
- movs r0, 0x4
- cmp r3, 0
- bne _0809CA3A
- movs r0, 0x5
- b _0809CA3A
-_0809C9F4:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0809CA00
- movs r0, 0x10
- b _0809CA3A
-_0809CA00:
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0809CA10
- bl sub_809CD88
- movs r0, 0
- b _0809CA3A
-_0809CA10:
- movs r6, 0
- b _0809CA38
-_0809CA14:
- movs r6, 0x1
- movs r0, 0
- mov r12, r0
- movs r0, 0xFF
- strb r0, [r4]
- movs r0, 0
- ldrsb r0, [r7, r0]
- movs r3, 0x1D
- cmp r0, 0
- bne _0809CA2A
- movs r3, 0x18
-_0809CA2A:
- strb r6, [r1]
-_0809CA2C:
- cmp r6, 0
- beq _0809CA38
- mov r0, r12
- adds r1, r3, 0
- bl sub_809AF18
-_0809CA38:
- adds r0, r6, 0
-_0809CA3A:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_809C944
-
- thumb_func_start sub_809CA40
-sub_809CA40: @ 809CA40
- push {r4,r5,lr}
- movs r3, 0
- ldr r0, _0809CA6C @ =gUnknown_083BBBD4
- ldr r1, [r0]
- adds r4, r0, 0
- cmp r1, 0
- beq _0809CA84
- ldr r5, _0809CA70 @ =gUnknown_020384E4
-_0809CA50:
- lsls r0, r3, 3
- adds r2, r0, r4
- movs r1, 0x4
- ldrsb r1, [r2, r1]
- movs r0, 0
- ldrsb r0, [r5, r0]
- cmp r1, r0
- bne _0809CA74
- ldr r0, [r2]
- bl _call_via_r0
- lsls r0, 24
- lsrs r0, 24
- b _0809CA86
- .align 2, 0
-_0809CA6C: .4byte gUnknown_083BBBD4
-_0809CA70: .4byte gUnknown_020384E4
-_0809CA74:
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- lsls r0, r3, 3
- adds r0, r4
- ldr r0, [r0]
- cmp r0, 0
- bne _0809CA50
-_0809CA84:
- movs r0, 0
-_0809CA86:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_809CA40
-
- thumb_func_start sub_809CA8C
-sub_809CA8C: @ 809CA8C
- push {lr}
- bl sub_809CDCC
- movs r0, 0x9
- bl sub_809CDEC
- movs r0, 0xA
- bl sub_809CDEC
- movs r0, 0xB
- bl sub_809CDEC
- movs r0, 0
- bl sub_809CDEC
- pop {r0}
- bx r0
- thumb_func_end sub_809CA8C
-
- thumb_func_start sub_809CAB0
-sub_809CAB0: @ 809CAB0
- push {lr}
- bl sub_809CDCC
- bl sub_809AB8C
- lsls r0, 16
- lsrs r1, r0, 16
- ldr r0, _0809CAD4 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- ldrb r0, [r0, 0x5]
- cmp r0, 0x1
- beq _0809CADE
- cmp r0, 0x1
- bgt _0809CAD8
- cmp r0, 0
- beq _0809CAEA
- b _0809CB24
- .align 2, 0
-_0809CAD4: .4byte gUnknown_083B6DB4
-_0809CAD8:
- cmp r0, 0x2
- beq _0809CAF6
- b _0809CB24
-_0809CADE:
- cmp r1, 0
- beq _0809CB24
- movs r0, 0x1
- bl sub_809CDEC
- b _0809CB28
-_0809CAEA:
- cmp r1, 0
- beq _0809CB24
- movs r0, 0x2
- bl sub_809CDEC
- b _0809CB28
-_0809CAF6:
- ldr r0, _0809CB0C @ =gUnknown_020384E6
- ldrb r0, [r0]
- cmp r0, 0
- beq _0809CB18
- cmp r1, 0
- beq _0809CB10
- movs r0, 0x4
- bl sub_809CDEC
- b _0809CB28
- .align 2, 0
-_0809CB0C: .4byte gUnknown_020384E6
-_0809CB10:
- movs r0, 0x5
- bl sub_809CDEC
- b _0809CB28
-_0809CB18:
- cmp r1, 0
- beq _0809CB24
- movs r0, 0x3
- bl sub_809CDEC
- b _0809CB28
-_0809CB24:
- movs r0, 0
- b _0809CB6E
-_0809CB28:
- movs r0, 0x6
- bl sub_809CDEC
- ldr r0, _0809CB4C @ =gUnknown_083B6DB4
- ldr r0, [r0]
- ldrb r0, [r0, 0x5]
- cmp r0, 0x2
- bne _0809CB5A
- ldr r0, _0809CB50 @ =gUnknown_020384E4
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0
- bne _0809CB54
- movs r0, 0x2
- bl sub_809CDEC
- b _0809CB5A
- .align 2, 0
-_0809CB4C: .4byte gUnknown_083B6DB4
-_0809CB50: .4byte gUnknown_020384E4
-_0809CB54:
- movs r0, 0x1
- bl sub_809CDEC
-_0809CB5A:
- movs r0, 0x8
- bl sub_809CDEC
- movs r0, 0x7
- bl sub_809CDEC
- movs r0, 0
- bl sub_809CDEC
- movs r0, 0x1
-_0809CB6E:
- pop {r1}
- bx r1
- thumb_func_end sub_809CAB0
-
- thumb_func_start sub_809CB74
-sub_809CB74: @ 809CB74
- ldr r1, _0809CB90 @ =gUnknown_083B6DB4
- ldr r1, [r1]
- movs r2, 0x8E
- lsls r2, 5
- adds r1, r2
- ldr r2, [r1]
- ldrh r2, [r2, 0x20]
- strh r2, [r0, 0x20]
- ldr r1, [r1]
- ldrh r1, [r1, 0x22]
- adds r1, 0x14
- strh r1, [r0, 0x22]
- bx lr
- .align 2, 0
-_0809CB90: .4byte gUnknown_083B6DB4
- thumb_func_end sub_809CB74
-
- thumb_func_start unref_sub_809CB94
-unref_sub_809CB94: @ 809CB94
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _0809CBBC @ =gUnknown_020384E4
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x1
- bne _0809CBC8
- ldr r2, _0809CBC0 @ =gPlayerParty
- ldr r0, _0809CBC4 @ =gUnknown_020384E5
- movs r1, 0
- ldrsb r1, [r0, r1]
- movs r0, 0x64
- muls r1, r0
- adds r1, r2
- adds r0, r4, 0
- movs r2, 0x50
- bl memcpy
- b _0809CBF6
- .align 2, 0
-_0809CBBC: .4byte gUnknown_020384E4
-_0809CBC0: .4byte gPlayerParty
-_0809CBC4: .4byte gUnknown_020384E5
-_0809CBC8:
- bl get_preferred_box
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _0809CBFC @ =gPokemonStorage
- ldr r1, _0809CC00 @ =gUnknown_020384E5
- movs r2, 0
- ldrsb r2, [r1, r2]
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 4
- lsls r2, r0, 2
- adds r2, r0
- lsls r0, r2, 4
- subs r0, r2
- lsls r0, 5
- adds r1, r0
- adds r1, r3
- adds r1, 0x4
- adds r0, r4, 0
- movs r2, 0x50
- bl memcpy
-_0809CBF6:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0809CBFC: .4byte gPokemonStorage
-_0809CC00: .4byte gUnknown_020384E5
- thumb_func_end unref_sub_809CB94
-
- thumb_func_start sub_809CC04
-sub_809CC04: @ 809CC04
- push {r4-r7,lr}
- sub sp, 0x34
- mov r1, sp
- ldr r0, _0809CCB0 @ =gHandCursorSpriteSheets
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldm r0!, {r2,r3,r5}
- stm r1!, {r2,r3,r5}
- add r4, sp, 0x18
- adds r1, r4, 0
- ldr r0, _0809CCB4 @ =gHandCursorSpritePalettes
- ldm r0!, {r2,r3,r5}
- stm r1!, {r2,r3,r5}
- ldm r0!, {r2,r3,r5}
- stm r1!, {r2,r3,r5}
- mov r0, sp
- bl LoadSpriteSheets
- adds r0, r4, 0
- bl LoadSpritePalettes
- ldr r0, _0809CCB8 @ =0x0000dac6
- bl IndexOfSpritePaletteTag
- ldr r1, _0809CCBC @ =gUnknown_083B6DB4
- ldr r6, [r1]
- ldr r4, _0809CCC0 @ =0x000011e4
- adds r7, r6, r4
- strb r0, [r7]
- ldr r0, _0809CCC4 @ =0x0000dad1
- bl IndexOfSpritePaletteTag
- ldr r5, _0809CCC8 @ =0x000011e5
- adds r1, r6, r5
- strb r0, [r1]
- ldr r0, _0809CCCC @ =gUnknown_020384E4
- ldrb r0, [r0]
- ldr r1, _0809CCD0 @ =gUnknown_020384E5
- ldrb r1, [r1]
- add r4, sp, 0x30
- mov r5, sp
- adds r5, 0x32
- adds r2, r4, 0
- adds r3, r5, 0
- bl sub_809AACC
- ldr r0, _0809CCD4 @ =gSpriteTemplate_83BBC70
- movs r2, 0
- ldrsh r1, [r4, r2]
- movs r3, 0
- ldrsh r2, [r5, r3]
- movs r3, 0x6
- bl CreateSprite
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x40
- beq _0809CCE4
- movs r5, 0x8E
- lsls r5, 5
- adds r4, r6, r5
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- ldr r0, _0809CCD8 @ =gSprites
- adds r1, r0
- str r1, [r4]
- ldr r0, _0809CCDC @ =gUnknown_020384E9
- ldrb r0, [r0]
- adds r0, r7, r0
- ldrb r2, [r0]
- lsls r2, 4
- ldrb r3, [r1, 0x5]
- movs r0, 0xF
- ands r0, r3
- orrs r0, r2
- strb r0, [r1, 0x5]
- ldr r0, _0809CCE0 @ =gUnknown_020384E6
- ldrb r0, [r0]
- cmp r0, 0
- beq _0809CCEE
- ldr r0, [r4]
- movs r1, 0x3
- bl StartSpriteAnim
- b _0809CCEE
- .align 2, 0
-_0809CCB0: .4byte gHandCursorSpriteSheets
-_0809CCB4: .4byte gHandCursorSpritePalettes
-_0809CCB8: .4byte 0x0000dac6
-_0809CCBC: .4byte gUnknown_083B6DB4
-_0809CCC0: .4byte 0x000011e4
-_0809CCC4: .4byte 0x0000dad1
-_0809CCC8: .4byte 0x000011e5
-_0809CCCC: .4byte gUnknown_020384E4
-_0809CCD0: .4byte gUnknown_020384E5
-_0809CCD4: .4byte gSpriteTemplate_83BBC70
-_0809CCD8: .4byte gSprites
-_0809CCDC: .4byte gUnknown_020384E9
-_0809CCE0: .4byte gUnknown_020384E6
-_0809CCE4:
- movs r0, 0x8E
- lsls r0, 5
- adds r1, r6, r0
- movs r0, 0
- str r0, [r1]
-_0809CCEE:
- ldr r0, _0809CD00 @ =gUnknown_020384E4
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x1
- bne _0809CD04
- movs r3, 0xC
- movs r5, 0x1
- b _0809CD08
- .align 2, 0
-_0809CD00: .4byte gUnknown_020384E4
-_0809CD04:
- movs r3, 0x14
- movs r5, 0x2
-_0809CD08:
- ldr r0, _0809CD58 @ =gSpriteTemplate_83BBC88
- movs r1, 0
- movs r2, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x40
- beq _0809CD6C
- ldr r0, _0809CD5C @ =gUnknown_083B6DB4
- ldr r0, [r0]
- ldr r1, _0809CD60 @ =0x000011c4
- adds r4, r0, r1
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- ldr r0, _0809CD64 @ =gSprites
- adds r1, r0
- str r1, [r4]
- lsls r3, r5, 2
- ldrb r2, [r1, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r3
- strb r0, [r1, 0x5]
- ldr r0, _0809CD68 @ =gUnknown_020384E4
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0
- beq _0809CD78
- ldr r0, [r4]
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- b _0809CD78
- .align 2, 0
-_0809CD58: .4byte gSpriteTemplate_83BBC88
-_0809CD5C: .4byte gUnknown_083B6DB4
-_0809CD60: .4byte 0x000011c4
-_0809CD64: .4byte gSprites
-_0809CD68: .4byte gUnknown_020384E4
-_0809CD6C:
- ldr r0, _0809CD80 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- ldr r2, _0809CD84 @ =0x000011c4
- adds r0, r2
- movs r1, 0
- str r1, [r0]
-_0809CD78:
- add sp, 0x34
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0809CD80: .4byte gUnknown_083B6DB4
-_0809CD84: .4byte 0x000011c4
- thumb_func_end sub_809CC04
-
- thumb_func_start sub_809CD88
-sub_809CD88: @ 809CD88
- push {lr}
- ldr r2, _0809CDC0 @ =gUnknown_020384E9
- movs r1, 0
- ldrb r0, [r2]
- cmp r0, 0
- bne _0809CD96
- movs r1, 0x1
-_0809CD96:
- strb r1, [r2]
- ldr r0, _0809CDC4 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- movs r3, 0x8E
- lsls r3, 5
- adds r1, r0, r3
- ldr r3, [r1]
- ldr r1, _0809CDC8 @ =0x000011e4
- adds r0, r1
- ldrb r2, [r2]
- adds r0, r2
- ldrb r1, [r0]
- lsls r1, 4
- ldrb r2, [r3, 0x5]
- movs r0, 0xF
- ands r0, r2
- orrs r0, r1
- strb r0, [r3, 0x5]
- pop {r0}
- bx r0
- .align 2, 0
-_0809CDC0: .4byte gUnknown_020384E9
-_0809CDC4: .4byte gUnknown_083B6DB4
-_0809CDC8: .4byte 0x000011e4
- thumb_func_end sub_809CD88
-
- thumb_func_start sub_809CDCC
-sub_809CDCC: @ 809CDCC
- ldr r0, _0809CDE0 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- ldr r2, _0809CDE4 @ =0x000011b8
- adds r1, r0, r2
- movs r2, 0
- strb r2, [r1]
- ldr r1, _0809CDE8 @ =0x000011b9
- adds r0, r1
- strb r2, [r0]
- bx lr
- .align 2, 0
-_0809CDE0: .4byte gUnknown_083B6DB4
-_0809CDE4: .4byte 0x000011b8
-_0809CDE8: .4byte 0x000011b9
- thumb_func_end sub_809CDCC
-
- thumb_func_start sub_809CDEC
-sub_809CDEC: @ 809CDEC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r0, _0809CE3C @ =gUnknown_083B6DB4
- ldr r5, [r0]
- ldr r0, _0809CE40 @ =0x000011b8
- adds r4, r5, r0
- ldrb r0, [r4]
- cmp r0, 0x6
- bhi _0809CE36
- adds r1, r0, 0
- lsls r1, 3
- movs r2, 0x8C
- lsls r2, 5
- adds r1, r2
- adds r1, r5, r1
- ldr r2, _0809CE44 @ =gUnknown_083BBCA0
- lsls r0, r3, 2
- adds r0, r2
- ldr r0, [r0]
- str r0, [r1]
- str r3, [r1, 0x4]
- bl sub_8072CA4
- lsls r0, 24
- lsrs r0, 24
- adds r1, r0, 0x7
- lsrs r1, 3
- ldr r2, _0809CE48 @ =0x000011b9
- adds r0, r5, r2
- ldrb r2, [r0]
- cmp r1, r2
- bls _0809CE30
- strb r1, [r0]
-_0809CE30:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
-_0809CE36:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0809CE3C: .4byte gUnknown_083B6DB4
-_0809CE40: .4byte 0x000011b8
-_0809CE44: .4byte gUnknown_083BBCA0
-_0809CE48: .4byte 0x000011b9
- thumb_func_end sub_809CDEC
-
- thumb_func_start sub_809CE4C
-sub_809CE4C: @ 809CE4C
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _0809CE70 @ =gUnknown_083B6DB4
- ldr r1, [r0]
- ldr r3, _0809CE74 @ =0x000011b8
- adds r0, r1, r3
- ldrb r0, [r0]
- cmp r2, r0
- bcs _0809CE7C
- lsls r0, r2, 3
- ldr r2, _0809CE78 @ =0x00001184
- adds r1, r2
- adds r1, r0
- movs r0, 0
- ldrsb r0, [r1, r0]
- b _0809CE80
- .align 2, 0
-_0809CE70: .4byte gUnknown_083B6DB4
-_0809CE74: .4byte 0x000011b8
-_0809CE78: .4byte 0x00001184
-_0809CE7C:
- movs r0, 0x1
- negs r0, r0
-_0809CE80:
- pop {r1}
- bx r1
- thumb_func_end sub_809CE4C
-
- thumb_func_start sub_809CE84
-sub_809CE84: @ 809CE84
- push {r4-r6,lr}
- mov r6, r10
- mov r5, r9
- mov r4, r8
- push {r4-r6}
- sub sp, 0x8
- ldr r0, _0809CF20 @ =gUnknown_083B6DB4
- ldr r4, [r0]
- ldr r0, _0809CF24 @ =0x000011b8
- adds r0, r4
- mov r8, r0
- ldrb r0, [r0]
- lsls r0, 1
- movs r1, 0xE
- subs r1, r0
- ldr r3, _0809CF28 @ =0x000011bc
- adds r6, r4, r3
- movs r0, 0
- mov r10, r0
- strh r1, [r6]
- ldr r1, _0809CF2C @ =0x000011b9
- adds r1, r4
- mov r9, r1
- ldrb r1, [r1]
- movs r0, 0x1C
- subs r0, r1
- subs r3, 0x2
- adds r5, r4, r3
- strh r0, [r5]
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r6]
- movs r2, 0x1D
- movs r3, 0xF
- bl MenuDrawTextWindow
- ldrb r0, [r5]
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r6]
- adds r1, 0x1
- lsls r1, 24
- lsrs r1, 24
- mov r3, r8
- ldrb r2, [r3]
- movs r3, 0x8C
- lsls r3, 5
- adds r4, r3
- adds r3, r4, 0
- bl PrintMenuItems
- ldrb r1, [r5]
- adds r1, 0x1
- lsls r1, 24
- lsrs r1, 24
- ldrb r2, [r6]
- adds r2, 0x1
- lsls r2, 24
- lsrs r2, 24
- mov r4, r8
- ldrb r3, [r4]
- mov r0, r10
- str r0, [sp]
- mov r4, r9
- ldrb r0, [r4]
- str r0, [sp, 0x4]
- movs r0, 0
- bl InitMenu
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0809CF20: .4byte gUnknown_083B6DB4
-_0809CF24: .4byte 0x000011b8
-_0809CF28: .4byte 0x000011bc
-_0809CF2C: .4byte 0x000011b9
- thumb_func_end sub_809CE84
-
- thumb_func_start sub_809CF30
-sub_809CF30: @ 809CF30
- push {r4,r5,lr}
- movs r5, 0x2
- negs r5, r5
- ldr r4, _0809CF6C @ =gMain
- ldrh r1, [r4, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0809CF86
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0809CF52
- movs r0, 0x5
- bl PlaySE
- adds r5, 0x1
-_0809CF52:
- ldrh r1, [r4, 0x2E]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0809CF70
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- negs r0, r0
- bl MoveMenuCursor
- b _0809CF8E
- .align 2, 0
-_0809CF6C: .4byte gMain
-_0809CF70:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0809CF8E
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- bl MoveMenuCursor
- b _0809CF8E
-_0809CF86:
- bl GetMenuCursorPos
- lsls r0, 24
- lsrs r5, r0, 24
-_0809CF8E:
- movs r0, 0x2
- negs r0, r0
- cmp r5, r0
- beq _0809CFB2
- bl sub_8072DEC
- ldr r0, _0809CFD0 @ =gUnknown_083B6DB4
- ldr r1, [r0]
- ldr r2, _0809CFD4 @ =0x000011ba
- adds r0, r1, r2
- ldrb r0, [r0]
- adds r2, 0x2
- adds r1, r2
- ldrb r1, [r1]
- movs r2, 0x1D
- movs r3, 0xF
- bl MenuZeroFillWindowRect
-_0809CFB2:
- cmp r5, 0
- blt _0809CFC4
- ldr r0, _0809CFD0 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- lsls r1, r5, 3
- ldr r2, _0809CFD8 @ =0x00001184
- adds r0, r2
- adds r0, r1
- ldr r5, [r0]
-_0809CFC4:
- lsls r0, r5, 16
- asrs r0, 16
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0809CFD0: .4byte gUnknown_083B6DB4
-_0809CFD4: .4byte 0x000011ba
-_0809CFD8: .4byte 0x00001184
- thumb_func_end sub_809CF30
-
- thumb_func_start sub_809CFDC
-sub_809CFDC: @ 809CFDC
- ldr r3, _0809CFEC @ =gUnknown_020384EC
- str r0, [r3]
- str r1, [r0]
- movs r1, 0
- strb r2, [r0, 0x5]
- strb r1, [r0, 0x4]
- bx lr
- .align 2, 0
-_0809CFEC: .4byte gUnknown_020384EC
- thumb_func_end sub_809CFDC
-
- thumb_func_start sub_809CFF0
-sub_809CFF0: @ 809CFF0
- push {r4,r5,lr}
- ldr r2, _0809D030 @ =gUnknown_020384EC
- ldr r1, [r2]
- ldrb r0, [r1, 0x4]
- cmp r0, 0
- beq _0809D02A
- movs r4, 0
- ldrb r1, [r1, 0x4]
- cmp r4, r1
- bcs _0809D022
- adds r5, r2, 0
-_0809D006:
- ldr r0, [r5]
- lsls r1, r4, 4
- ldr r0, [r0]
- adds r0, r1
- ldr r1, [r0, 0xC]
- bl _call_via_r1
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r0, [r5]
- ldrb r0, [r0, 0x4]
- cmp r4, r0
- bcc _0809D006
-_0809D022:
- ldr r0, _0809D030 @ =gUnknown_020384EC
- ldr r1, [r0]
- movs r0, 0
- strb r0, [r1, 0x4]
-_0809D02A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0809D030: .4byte gUnknown_020384EC
- thumb_func_end sub_809CFF0
-
- thumb_func_start sub_809D034
-sub_809D034: @ 809D034
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- mov r8, r0
- mov r9, r3
- ldr r0, [sp, 0x20]
- ldr r3, [sp, 0x24]
- ldr r4, [sp, 0x28]
- ldr r5, [sp, 0x2C]
- lsls r1, 16
- lsrs r1, 16
- mov r10, r1
- lsls r2, 16
- lsrs r6, r2, 16
- lsls r0, 16
- lsrs r0, 16
- mov r12, r0
- lsls r3, 16
- lsrs r3, 16
- lsls r4, 16
- lsrs r4, 16
- lsls r5, 16
- lsrs r5, 16
- ldr r0, _0809D0A4 @ =gUnknown_020384EC
- ldr r2, [r0]
- ldrb r0, [r2, 0x4]
- adds r1, r0, 0
- ldrb r7, [r2, 0x5]
- cmp r1, r7
- bcs _0809D0AC
- adds r0, 0x1
- strb r0, [r2, 0x4]
- lsls r0, r1, 4
- ldr r2, [r2]
- adds r2, r0
- lsls r0, r4, 1
- strh r0, [r2, 0x8]
- lsls r0, r6, 6
- add r0, r8
- mov r4, r10
- lsls r1, r4, 1
- adds r0, r1
- str r0, [r2, 0x4]
- lsls r0, r3, 6
- add r0, r9
- mov r7, r12
- lsls r1, r7, 1
- adds r0, r1
- str r0, [r2]
- strh r5, [r2, 0xA]
- ldr r0, _0809D0A8 @ =sub_809D0BC
- str r0, [r2, 0xC]
- movs r0, 0x1
- b _0809D0AE
- .align 2, 0
-_0809D0A4: .4byte gUnknown_020384EC
-_0809D0A8: .4byte sub_809D0BC
-_0809D0AC:
- movs r0, 0
-_0809D0AE:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_809D034
-
- thumb_func_start sub_809D0BC
-sub_809D0BC: @ 809D0BC
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r6, [r0]
- ldr r5, [r0, 0x4]
- ldrh r7, [r0, 0xA]
- ldrh r2, [r0, 0x8]
- movs r4, 0
- cmp r4, r7
- bcs _0809D0F2
- lsrs r2, 1
- mov r8, r2
- ldr r0, _0809D100 @ =0x001fffff
- mov r9, r0
-_0809D0DA:
- adds r0, r6, 0
- adds r1, r5, 0
- mov r2, r8
- mov r3, r9
- ands r2, r3
- bl CpuSet
- adds r5, 0x40
- adds r6, 0x40
- adds r4, 0x1
- cmp r4, r7
- bcc _0809D0DA
-_0809D0F2:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0809D100: .4byte 0x001fffff
- thumb_func_end sub_809D0BC
-
- thumb_func_start sub_809D104
-sub_809D104: @ 809D104
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r5, [sp, 0x18]
- ldr r4, [sp, 0x1C]
- ldr r6, [sp, 0x20]
- mov r8, r6
- ldr r6, [sp, 0x24]
- lsls r1, 16
- lsls r2, 16
- lsrs r2, 16
- lsls r5, 16
- lsls r4, 16
- mov r7, r8
- lsls r7, 16
- lsls r6, 16
- lsrs r6, 16
- lsrs r4, 10
- adds r3, r4
- lsrs r5, 15
- adds r5, r3, r5
- lsls r3, r2, 6
- adds r3, r0, r3
- lsrs r1, 15
- adds r4, r3, r1
- adds r2, r6
- lsls r2, 6
- adds r6, r0, r2
- lsrs r2, r7, 15
- cmp r4, r6
- bcs _0809D15C
- lsrs r7, r2, 1
- ldr r0, _0809D168 @ =0x001fffff
- mov r8, r0
-_0809D148:
- adds r0, r5, 0
- adds r1, r4, 0
- mov r2, r8
- ands r2, r7
- bl CpuSet
- adds r4, 0x40
- adds r5, 0x40
- cmp r4, r6
- bcc _0809D148
-_0809D15C:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0809D168: .4byte 0x001fffff
- thumb_func_end sub_809D104
-
- thumb_func_start sub_809D16C
-sub_809D16C: @ 809D16C
- push {r4-r7,lr}
- mov r12, r0
- ldr r0, [sp, 0x14]
- lsls r1, 16
- lsrs r6, r1, 16
- lsls r2, 16
- lsrs r4, r2, 16
- lsls r3, 16
- lsrs r3, 16
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r0, _0809D1B4 @ =gUnknown_020384EC
- ldr r1, [r0]
- ldrb r0, [r1, 0x4]
- adds r2, r0, 0
- ldrb r7, [r1, 0x5]
- cmp r2, r7
- bcs _0809D1BC
- adds r0, 0x1
- strb r0, [r1, 0x4]
- lsls r0, r2, 4
- ldr r1, [r1]
- adds r1, r0
- lsls r0, r3, 1
- strh r0, [r1, 0x8]
- lsls r0, r4, 5
- adds r0, r6
- lsls r0, 1
- add r0, r12
- str r0, [r1, 0x4]
- strh r5, [r1, 0xA]
- ldr r0, _0809D1B8 @ =sub_809D1C4
- str r0, [r1, 0xC]
- movs r0, 0x1
- b _0809D1BE
- .align 2, 0
-_0809D1B4: .4byte gUnknown_020384EC
-_0809D1B8: .4byte sub_809D1C4
-_0809D1BC:
- movs r0, 0
-_0809D1BE:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_809D16C
-
- thumb_func_start sub_809D1C4
-sub_809D1C4: @ 809D1C4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- adds r6, r0, 0
- movs r0, 0
- ldrh r1, [r6, 0xA]
- cmp r0, r1
- bcs _0809D252
- movs r7, 0x80
- lsls r7, 5
- mov r5, sp
- ldr r2, _0809D210 @ =0x040000d4
- mov r8, r2
- movs r1, 0x81
- lsls r1, 24
- mov r10, r1
-_0809D1EA:
- ldr r2, [r6, 0x4]
- ldrh r3, [r6, 0x8]
- mov r12, r2
- adds r0, 0x1
- mov r9, r0
- cmp r3, r7
- bhi _0809D214
- movs r0, 0
- strh r0, [r5]
- mov r2, sp
- mov r0, r8
- str r2, [r0]
- mov r1, r12
- str r1, [r0, 0x4]
- lsrs r0, r3, 1
- mov r2, r10
- orrs r0, r2
- mov r1, r8
- b _0809D23C
- .align 2, 0
-_0809D210: .4byte 0x040000d4
-_0809D214:
- movs r4, 0
- strh r4, [r5]
- ldr r1, _0809D264 @ =0x040000d4
- mov r0, sp
- str r0, [r1]
- str r2, [r1, 0x4]
- ldr r0, _0809D268 @ =0x81000800
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- adds r2, r7
- subs r3, r7
- cmp r3, r7
- bhi _0809D214
- strh r4, [r5]
- mov r0, sp
- str r0, [r1]
- str r2, [r1, 0x4]
- lsrs r0, r3, 1
- mov r2, r10
- orrs r0, r2
-_0809D23C:
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- mov r0, r12
- adds r0, 0x40
- str r0, [r6, 0x4]
- mov r1, r9
- lsls r0, r1, 16
- lsrs r0, 16
- ldrh r2, [r6, 0xA]
- cmp r0, r2
- bcc _0809D1EA
-_0809D252:
- 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
-_0809D264: .4byte 0x040000d4
-_0809D268: .4byte 0x81000800
- thumb_func_end sub_809D1C4
-
- thumb_func_start unref_sub_809D26C
-unref_sub_809D26C: @ 809D26C
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0x18
- adds r6, r3, 0
- ldr r3, [sp, 0x2C]
- lsls r0, 16
- lsrs r0, 16
- lsls r3, 24
- lsrs r3, 24
- mov r8, sp
- ldr r4, _0809D2E0 @ =gOamData_83BC5E8
- str r4, [sp]
- ldr r5, _0809D2E4 @ =gMonIconTable
- lsls r4, r0, 2
- adds r4, r5
- ldr r4, [r4]
- str r4, [sp, 0x4]
- ldr r4, _0809D2E8 @ =gSpriteAnimTable_83BC62C
- str r4, [sp, 0x8]
- ldr r4, _0809D2EC @ =gSpriteAffineAnimTable_83BC660
- str r4, [sp, 0xC]
- str r1, [sp, 0x10]
- ldr r1, _0809D2F0 @ =gMonIconPaletteIndices
- adds r0, r1
- ldr r4, _0809D2F4 @ =0x0000dac0
- adds r1, r4, 0
- ldrb r0, [r0]
- adds r1, r0
- mov r0, r8
- strh r1, [r0, 0x14]
- lsls r2, 16
- asrs r2, 16
- lsls r6, 16
- asrs r6, 16
- mov r0, sp
- adds r1, r2, 0
- adds r2, r6, 0
- bl sub_809D710
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- ldr r1, _0809D2F8 @ =gSprites
- adds r0, r1
- bl sub_809D638
- adds r0, r4, 0
- add sp, 0x18
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0809D2E0: .4byte gOamData_83BC5E8
-_0809D2E4: .4byte gMonIconTable
-_0809D2E8: .4byte gSpriteAnimTable_83BC62C
-_0809D2EC: .4byte gSpriteAffineAnimTable_83BC660
-_0809D2F0: .4byte gMonIconPaletteIndices
-_0809D2F4: .4byte 0x0000dac0
-_0809D2F8: .4byte gSprites
- thumb_func_end unref_sub_809D26C
-
- thumb_func_start sub_809D2FC
-sub_809D2FC: @ 809D2FC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x30
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r0, [sp, 0x48]
- ldr r1, [sp, 0x4C]
- lsls r4, 16
- lsrs r4, 16
- lsls r2, 16
- lsrs r7, r2, 16
- lsls r3, 16
- lsrs r6, r3, 16
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r0, _0809D38C @ =gOamData_83BC5E8
- str r0, [sp, 0x18]
- adds r0, r4, 0
- bl sub_809D4F4
- str r0, [sp, 0x1C]
- ldr r0, _0809D390 @ =gSpriteAnimTable_83BC62C
- str r0, [sp, 0x20]
- ldr r0, _0809D394 @ =gSpriteAffineAnimTable_83BC660
- str r0, [sp, 0x24]
- str r5, [sp, 0x28]
- ldr r0, _0809D398 @ =gMonIconPaletteIndices
- adds r0, r4, r0
- ldr r1, _0809D39C @ =0x0000dac0
- adds r5, r1, 0
- ldrb r0, [r0]
- adds r1, r5, r0
- add r0, sp, 0x2C
- strh r1, [r0]
- add r1, sp, 0x18
- mov r0, sp
- movs r2, 0x18
- bl memcpy
- movs r0, 0xCE
- lsls r0, 1
- cmp r4, r0
- bls _0809D35A
- mov r0, sp
- strh r5, [r0, 0x14]
-_0809D35A:
- lsls r1, r7, 16
- asrs r1, 16
- lsls r2, r6, 16
- asrs r2, 16
- mov r0, sp
- mov r3, r8
- bl sub_809D710
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- ldr r1, _0809D3A0 @ =gSprites
- adds r0, r1
- bl sub_809D638
- adds r0, r4, 0
- add sp, 0x30
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0809D38C: .4byte gOamData_83BC5E8
-_0809D390: .4byte gSpriteAnimTable_83BC62C
-_0809D394: .4byte gSpriteAffineAnimTable_83BC660
-_0809D398: .4byte gMonIconPaletteIndices
-_0809D39C: .4byte 0x0000dac0
-_0809D3A0: .4byte gSprites
- thumb_func_end sub_809D2FC
-
- thumb_func_start sub_809D3A4
-sub_809D3A4: @ 809D3A4
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0x18
- adds r6, r3, 0
- ldr r3, [sp, 0x2C]
- lsls r0, 16
- lsrs r0, 16
- lsls r3, 24
- lsrs r3, 24
- mov r8, sp
- ldr r4, _0809D418 @ =gOamData_83BC5E8
- str r4, [sp]
- ldr r5, _0809D41C @ =gMonIconTable
- lsls r4, r0, 2
- adds r4, r5
- ldr r4, [r4]
- str r4, [sp, 0x4]
- ldr r4, _0809D420 @ =gSpriteAnimTable_83BC62C
- str r4, [sp, 0x8]
- ldr r4, _0809D424 @ =gSpriteAffineAnimTable_83BC660
- str r4, [sp, 0xC]
- str r1, [sp, 0x10]
- ldr r1, _0809D428 @ =gMonIconPaletteIndices
- adds r0, r1
- ldr r4, _0809D42C @ =0x0000dac0
- adds r1, r4, 0
- ldrb r0, [r0]
- adds r1, r0
- mov r0, r8
- strh r1, [r0, 0x14]
- lsls r2, 16
- asrs r2, 16
- lsls r6, 16
- asrs r6, 16
- mov r0, sp
- adds r1, r2, 0
- adds r2, r6, 0
- bl sub_809D710
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- ldr r1, _0809D430 @ =gSprites
- adds r0, r1
- bl sub_809D638
- adds r0, r4, 0
- add sp, 0x18
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0809D418: .4byte gOamData_83BC5E8
-_0809D41C: .4byte gMonIconTable
-_0809D420: .4byte gSpriteAnimTable_83BC62C
-_0809D424: .4byte gSpriteAffineAnimTable_83BC660
-_0809D428: .4byte gMonIconPaletteIndices
-_0809D42C: .4byte 0x0000dac0
-_0809D430: .4byte gSprites
- thumb_func_end sub_809D3A4
-
- thumb_func_start mon_icon_convert_unown_species_id
-mon_icon_convert_unown_species_id: @ 809D434
- push {lr}
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, SPECIES_UNOWN
- bne _0809D45E
- adds r0, r1, 0
- bl sub_809D474
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0
- bne _0809D450
- movs r0, SPECIES_UNOWN
- b _0809D45A
-_0809D450:
- movs r1, 0xCE
- lsls r1, 1
- adds r0, r1
- lsls r0, 16
- lsrs r0, 16
-_0809D45A:
- adds r1, r0, 0
- b _0809D46C
-_0809D45E:
- movs r0, 0xCE
- lsls r0, 1
- adds r1, r2, 0
- cmp r1, r0
- bls _0809D46C
- movs r1, 0x82
- lsls r1, 1
-_0809D46C:
- adds r0, r1, 0
- pop {r1}
- bx r1
- thumb_func_end mon_icon_convert_unown_species_id
-
- thumb_func_start sub_809D474
-sub_809D474: @ 809D474
- push {lr}
- adds r2, r0, 0
- movs r0, 0xC0
- lsls r0, 18
- ands r0, r2
- lsrs r0, 18
- movs r1, 0xC0
- lsls r1, 10
- ands r1, r2
- lsrs r1, 12
- orrs r0, r1
- movs r1, 0xC0
- lsls r1, 2
- ands r1, r2
- lsrs r1, 6
- orrs r0, r1
- movs r1, 0x3
- ands r1, r2
- orrs r0, r1
- movs r1, 0x1C
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- pop {r1}
- bx r1
- thumb_func_end sub_809D474
-
- thumb_func_start sub_809D4A8
-sub_809D4A8: @ 809D4A8
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 16
- lsrs r4, r0, 16
- adds r0, r4, 0
- mov r1, sp
- bl sub_80A2D64
- lsls r0, 16
- lsrs r0, 16
- cmp r0, SPECIES_UNOWN
- bne _0809D4DE
- mov r0, sp
- ldrh r0, [r0]
- cmp r0, 0
- bne _0809D4CE
- mov r1, sp
- adds r0, SPECIES_UNOWN
- b _0809D4D6
-_0809D4CE:
- mov r1, sp
- movs r2, 0xCE
- lsls r2, 1
- adds r0, r2
-_0809D4D6:
- strh r0, [r1]
- mov r0, sp
- ldrh r0, [r0]
- b _0809D4EA
-_0809D4DE:
- adds r0, r4, 0
- movs r1, 0
- bl mon_icon_convert_unown_species_id
- lsls r0, 16
- lsrs r0, 16
-_0809D4EA:
- add sp, 0x4
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_809D4A8
-
- thumb_func_start sub_809D4F4
-sub_809D4F4: @ 809D4F4
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- bl mon_icon_convert_unown_species_id
- lsls r0, 16
- ldr r1, _0809D50C @ =gMonIconTable
- lsrs r0, 14
- adds r0, r1
- ldr r0, [r0]
- pop {r1}
- bx r1
- .align 2, 0
-_0809D50C: .4byte gMonIconTable
- thumb_func_end sub_809D4F4
-
- thumb_func_start sub_809D510
-sub_809D510: @ 809D510
- push {lr}
- bl sub_809D7E8
- pop {r0}
- bx r0
- thumb_func_end sub_809D510
-
- thumb_func_start sub_809D51C
-sub_809D51C: @ 809D51C
- push {r4,r5,lr}
- movs r4, 0
- ldr r5, _0809D53C @ =gMonIconPaletteTable
-_0809D522:
- lsls r0, r4, 3
- adds r0, r5
- bl LoadSpritePalette
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x5
- bls _0809D522
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0809D53C: .4byte gMonIconPaletteTable
- thumb_func_end sub_809D51C
-
- thumb_func_start unref_sub_809D540
-unref_sub_809D540: @ 809D540
- push {r4,lr}
- lsls r0, 16
- lsrs r1, r0, 16
- movs r0, 0xCE
- lsls r0, 1
- cmp r1, r0
- bls _0809D552
- movs r1, 0x82
- lsls r1, 1
-_0809D552:
- ldr r0, _0809D578 @ =gMonIconPaletteIndices
- adds r0, r1, r0
- ldrb r0, [r0]
- ldr r1, _0809D57C @ =gMonIconPaletteTable
- lsls r0, 3
- adds r4, r0, r1
- ldrh r0, [r4, 0x4]
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- bne _0809D572
- adds r0, r4, 0
- bl LoadSpritePalette
-_0809D572:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0809D578: .4byte gMonIconPaletteIndices
-_0809D57C: .4byte gMonIconPaletteTable
- thumb_func_end unref_sub_809D540
-
- thumb_func_start sub_809D580
-sub_809D580: @ 809D580
- push {r4,lr}
- lsls r0, 16
- lsrs r0, 16
- ldr r1, _0809D5AC @ =gMonIconPaletteIndices
- adds r0, r1
- ldrb r0, [r0]
- ldr r1, _0809D5B0 @ =gMonIconPaletteTable
- lsls r0, 3
- adds r4, r0, r1
- ldrh r0, [r4, 0x4]
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- bne _0809D5A6
- adds r0, r4, 0
- bl LoadSpritePalette
-_0809D5A6:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0809D5AC: .4byte gMonIconPaletteIndices
-_0809D5B0: .4byte gMonIconPaletteTable
- thumb_func_end sub_809D580
-
- thumb_func_start unref_sub_809D5B4
-unref_sub_809D5B4: @ 809D5B4
- push {r4,r5,lr}
- movs r4, 0
- ldr r5, _0809D5D4 @ =gMonIconPaletteTable
-_0809D5BA:
- lsls r0, r4, 3
- adds r0, r5
- ldrh r0, [r0, 0x4]
- bl FreeSpritePaletteByTag
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x5
- bls _0809D5BA
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0809D5D4: .4byte gMonIconPaletteTable
- thumb_func_end unref_sub_809D5B4
-
- thumb_func_start unref_sub_809D5D8
-unref_sub_809D5D8: @ 809D5D8
- push {lr}
- lsls r0, 16
- lsrs r1, r0, 16
- movs r0, 0xCE
- lsls r0, 1
- cmp r1, r0
- bls _0809D5EA
- movs r1, 0x82
- lsls r1, 1
-_0809D5EA:
- ldr r0, _0809D600 @ =gMonIconPaletteIndices
- adds r0, r1, r0
- ldrb r0, [r0]
- ldr r1, _0809D604 @ =gMonIconPaletteTable
- lsls r0, 3
- adds r0, r1
- ldrh r0, [r0, 0x4]
- bl FreeSpritePaletteByTag
- pop {r0}
- bx r0
- .align 2, 0
-_0809D600: .4byte gMonIconPaletteIndices
-_0809D604: .4byte gMonIconPaletteTable
- thumb_func_end unref_sub_809D5D8
-
- thumb_func_start sub_809D608
-sub_809D608: @ 809D608
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- ldr r1, _0809D624 @ =gMonIconPaletteIndices
- adds r0, r1
- ldrb r0, [r0]
- ldr r1, _0809D628 @ =gMonIconPaletteTable
- lsls r0, 3
- adds r0, r1
- ldrh r0, [r0, 0x4]
- bl FreeSpritePaletteByTag
- pop {r0}
- bx r0
- .align 2, 0
-_0809D624: .4byte gMonIconPaletteIndices
-_0809D628: .4byte gMonIconPaletteTable
- thumb_func_end sub_809D608
-
- thumb_func_start sub_809D62C
-sub_809D62C: @ 809D62C
- push {lr}
- bl sub_809D638
- pop {r0}
- bx r0
- thumb_func_end sub_809D62C
-
- thumb_func_start sub_809D638
-sub_809D638: @ 809D638
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r4, r0, 0
- movs r7, 0
- adds r6, r4, 0
- adds r6, 0x2C
- ldrb r2, [r6]
- movs r0, 0x3F
- mov r9, r0
- ands r0, r2
- cmp r0, 0
- bne _0809D6EC
- movs r1, 0x2A
- adds r1, r4
- mov r8, r1
- ldrb r1, [r1]
- ldr r0, [r4, 0x8]
- lsls r1, 2
- adds r1, r0
- adds r5, r4, 0
- adds r5, 0x2B
- ldrb r0, [r5]
- ldr r1, [r1]
- lsls r0, 2
- adds r0, r1
- movs r1, 0
- ldrsh r3, [r0, r1]
- movs r0, 0x2
- negs r0, r0
- cmp r3, r0
- beq _0809D682
- adds r0, 0x1
- cmp r3, r0
- bne _0809D686
- b _0809D700
-_0809D682:
- strb r7, [r5]
- b _0809D700
-_0809D686:
- ldr r2, _0809D6E4 @ =gSpriteImageSizes
- ldrb r1, [r4, 0x3]
- lsrs r1, 6
- lsls r1, 1
- ldrb r0, [r4, 0x1]
- lsrs r0, 6
- lsls r0, 3
- adds r1, r0
- adds r1, r2
- ldrh r2, [r1]
- adds r1, r2, 0
- muls r1, r3
- ldr r0, [r4, 0xC]
- adds r0, r1
- ldrh r1, [r4, 0x4]
- lsls r1, 22
- lsrs r1, 17
- ldr r3, _0809D6E8 @ =0x06010000
- adds r1, r3
- bl RequestSpriteCopy
- mov r0, r8
- ldrb r1, [r0]
- ldr r0, [r4, 0x8]
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r5]
- ldr r1, [r1]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- lsls r0, 10
- lsrs r0, 26
- mov r1, r9
- ands r1, r0
- ldrb r2, [r6]
- movs r0, 0x40
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r6]
- ldrb r0, [r5]
- adds r0, 0x1
- strb r0, [r5]
- ldrb r7, [r5]
- b _0809D700
- .align 2, 0
-_0809D6E4: .4byte gSpriteImageSizes
-_0809D6E8: .4byte 0x06010000
-_0809D6EC:
- lsls r0, r2, 26
- lsrs r0, 26
- subs r0, 0x1
- movs r1, 0x3F
- ands r0, r1
- movs r1, 0x40
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r6]
-_0809D700:
- adds r0, r7, 0
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_809D638
-
- thumb_func_start sub_809D710
-sub_809D710: @ 809D710
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0x38
- mov r9, r0
- adds r4, r1, 0
- adds r5, r2, 0
- mov r8, r3
- lsls r4, 16
- lsrs r4, 16
- lsls r5, 16
- lsrs r5, 16
- mov r0, r8
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- movs r0, 0
- str r0, [sp, 0x30]
- ldr r2, _0809D7D8 @ =gSpriteImageSizes
- mov r0, r9
- ldr r6, [r0]
- ldrb r1, [r6, 0x3]
- lsrs r1, 6
- lsls r1, 1
- ldrb r0, [r6, 0x1]
- lsrs r0, 6
- lsls r0, 3
- adds r1, r0
- adds r1, r2
- ldrh r2, [r1]
- ldr r1, _0809D7DC @ =0xffff0000
- add r3, sp, 0x30
- ldr r0, [r3, 0x4]
- ands r0, r1
- orrs r0, r2
- str r0, [r3, 0x4]
- add r1, sp, 0x18
- ldr r0, _0809D7E0 @ =0x0000ffff
- strh r0, [r1]
- mov r0, r9
- ldrh r2, [r0, 0x14]
- mov r0, sp
- adds r0, 0x1A
- strh r2, [r0]
- str r6, [sp, 0x1C]
- mov r2, r9
- ldr r0, [r2, 0x8]
- str r0, [sp, 0x20]
- str r3, [sp, 0x24]
- ldr r0, [r2, 0xC]
- str r0, [sp, 0x28]
- ldr r0, [r2, 0x10]
- str r0, [sp, 0x2C]
- mov r0, sp
- movs r2, 0x18
- bl memcpy
- lsls r4, 16
- asrs r4, 16
- lsls r5, 16
- asrs r5, 16
- mov r0, sp
- adds r1, r4, 0
- adds r2, r5, 0
- mov r3, r8
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r6, _0809D7E4 @ =gSprites
- lsls r3, r0, 4
- adds r3, r0
- lsls r3, 2
- adds r4, r3, r6
- adds r5, r4, 0
- adds r5, 0x2C
- ldrb r1, [r5]
- movs r2, 0x40
- orrs r1, r2
- strb r1, [r5]
- adds r4, 0x3F
- ldrb r2, [r4]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r4]
- adds r6, 0xC
- adds r3, r6
- mov r2, r9
- ldr r1, [r2, 0x4]
- str r1, [r3]
- add sp, 0x38
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0809D7D8: .4byte gSpriteImageSizes
-_0809D7DC: .4byte 0xffff0000
-_0809D7E0: .4byte 0x0000ffff
-_0809D7E4: .4byte gSprites
- thumb_func_end sub_809D710
-
- thumb_func_start sub_809D7E8
-sub_809D7E8: @ 809D7E8
- push {lr}
- sub sp, 0x8
- movs r1, 0
- str r1, [sp]
- ldr r3, _0809D81C @ =gSpriteImageSizes
- ldrb r2, [r0, 0x3]
- lsrs r2, 6
- lsls r2, 1
- ldrb r1, [r0, 0x1]
- lsrs r1, 6
- lsls r1, 3
- adds r2, r1
- adds r2, r3
- ldrh r3, [r2]
- ldr r2, _0809D820 @ =0xffff0000
- ldr r1, [sp, 0x4]
- ands r1, r2
- orrs r1, r3
- str r1, [sp, 0x4]
- mov r1, sp
- str r1, [r0, 0xC]
- bl DestroySprite
- add sp, 0x8
- pop {r0}
- bx r0
- .align 2, 0
-_0809D81C: .4byte gSpriteImageSizes
-_0809D820: .4byte 0xffff0000
- thumb_func_end sub_809D7E8
-
- thumb_func_start sub_809D824
-sub_809D824: @ 809D824
- mov r12, r0
- adds r0, 0x2A
- movs r3, 0
- strb r1, [r0]
- mov r2, r12
- adds r2, 0x2C
- ldrb r1, [r2]
- movs r0, 0x40
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- mov r0, r12
- adds r0, 0x2B
- strb r3, [r0]
- bx lr
- thumb_func_end sub_809D824
-
- thumb_func_start sub_809D844
-sub_809D844: @ 809D844
- push {lr}
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- pop {r0}
- bx r0
- thumb_func_end sub_809D844
-
- thumb_func_start sub_809D85C
-sub_809D85C: @ 809D85C
- push {lr}
- ldr r1, _0809D8A0 @ =REG_BG1HOFS
- ldr r0, _0809D8A4 @ =gUnknown_030042C0
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _0809D8A8 @ =gUnknown_030041B4
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _0809D8AC @ =gUnknown_03004288
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _0809D8B0 @ =gUnknown_03004280
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _0809D8B4 @ =gUnknown_030041B0
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _0809D8B8 @ =gUnknown_030041B8
- ldrh r0, [r0]
- strh r0, [r1]
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- pop {r0}
- bx r0
- .align 2, 0
-_0809D8A0: .4byte REG_BG1HOFS
-_0809D8A4: .4byte gUnknown_030042C0
-_0809D8A8: .4byte gUnknown_030041B4
-_0809D8AC: .4byte gUnknown_03004288
-_0809D8B0: .4byte gUnknown_03004280
-_0809D8B4: .4byte gUnknown_030041B0
-_0809D8B8: .4byte gUnknown_030041B8
- thumb_func_end sub_809D85C
-
- thumb_func_start sub_809D8BC
-sub_809D8BC: @ 809D8BC
- push {r4-r7,lr}
- ldr r4, [sp, 0x14]
- lsls r4, 24
- lsrs r7, r4, 24
- ldr r6, _0809D904 @ =gPaletteFade
- ldrb r4, [r6, 0x8]
- movs r5, 0x80
- orrs r4, r5
- strb r4, [r6, 0x8]
- ldr r5, _0809D908 @ =0x02018000
- str r0, [r5]
- movs r4, 0
- strb r7, [r5, 0x8]
- strb r1, [r5, 0x9]
- strb r2, [r5, 0xA]
- str r3, [r5, 0x4]
- adds r0, r5, 0
- adds r0, 0x74
- strb r4, [r0]
- adds r1, r5, 0
- adds r1, 0x79
- movs r0, 0x4
- strb r0, [r1]
- adds r0, r5, 0
- adds r0, 0x7C
- movs r1, 0
- strh r4, [r0]
- adds r0, 0x4
- strb r1, [r0]
- subs r0, 0x5
- strb r1, [r0]
- cmp r7, 0x4
- bls _0809D90C
- movs r0, 0x1
- strb r0, [r5, 0xE]
- b _0809D90E
- .align 2, 0
-_0809D904: .4byte gPaletteFade
-_0809D908: .4byte 0x02018000
-_0809D90C:
- strb r1, [r5, 0xE]
-_0809D90E:
- cmp r7, 0x6
- bhi _0809D9D6
- lsls r0, r7, 2
- ldr r1, _0809D91C @ =_0809D920
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0809D91C: .4byte _0809D920
- .align 2, 0
-_0809D920:
- .4byte _0809D93C
- .4byte _0809D9BC
- .4byte _0809D992
- .4byte _0809D9D6
- .4byte _0809D966
- .4byte _0809D93C
- .4byte _0809D9BC
-_0809D93C:
- adds r0, r5, 0
- adds r0, 0x75
- movs r1, 0
- strb r1, [r0]
- adds r2, r5, 0
- adds r2, 0x76
- movs r0, 0x3
- strb r0, [r2]
- adds r0, r5, 0
- adds r0, 0x77
- strb r1, [r0]
- adds r0, 0x1
- strb r1, [r0]
- adds r1, r5, 0
- adds r1, 0x7E
- movs r0, 0x1
- strb r0, [r1]
- adds r1, 0x1
- movs r0, 0x7
- strb r0, [r1]
- b _0809D9D6
-_0809D966:
- adds r0, r5, 0
- adds r0, 0x75
- movs r1, 0
- strb r1, [r0]
- adds r2, r5, 0
- adds r2, 0x76
- movs r0, 0x3
- strb r0, [r2]
- adds r0, r5, 0
- adds r0, 0x77
- strb r1, [r0]
- adds r0, 0x1
- strb r1, [r0]
- adds r0, 0x6
- movs r1, 0x1
- strb r1, [r0]
- adds r2, 0x9
- movs r0, 0x7
- strb r0, [r2]
- adds r0, r5, 0
- adds r0, 0x7B
- b _0809D9D4
-_0809D992:
- adds r1, r5, 0
- adds r1, 0x75
- movs r3, 0
- movs r0, 0x2
- strb r0, [r1]
- adds r0, r5, 0
- adds r0, 0x76
- movs r2, 0x3
- strb r2, [r0]
- adds r0, 0x1
- movs r1, 0x1
- strb r1, [r0]
- adds r0, 0x1
- strb r1, [r0]
- adds r0, 0x6
- strb r2, [r0]
- adds r0, 0x1
- strb r3, [r0]
- subs r0, 0x6
- strb r3, [r0]
- b _0809D9D6
-_0809D9BC:
- adds r1, r5, 0
- adds r1, 0x75
- movs r0, 0x2
- strb r0, [r1]
- adds r1, 0x1
- movs r0, 0x3
- strb r0, [r1]
- adds r0, r5, 0
- adds r0, 0x77
- movs r1, 0x1
- strb r1, [r0]
- adds r0, 0x1
-_0809D9D4:
- strb r1, [r0]
-_0809D9D6:
- adds r0, r5, 0
- adds r0, 0x75
- ldrb r0, [r0]
- strb r0, [r5, 0xB]
- ldr r0, _0809D9EC @ =sub_809DE44
- bl SetMainCallback2
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0809D9EC: .4byte sub_809DE44
- thumb_func_end sub_809D8BC
-
- thumb_func_start sub_809D9F0
-sub_809D9F0: @ 809D9F0
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r5, [sp, 0x10]
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r2, 24
- lsls r5, 16
- lsrs r5, 16
- movs r4, 0x2
- str r4, [sp]
- bl sub_809D8BC
- ldr r0, _0809DA18 @ =0x02018000
- adds r0, 0x7C
- strh r5, [r0]
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0809DA18: .4byte 0x02018000
- thumb_func_end sub_809D9F0
-
- thumb_func_start sub_809DA1C
-sub_809DA1C: @ 809DA1C
- push {lr}
- ldr r0, _0809DA30 @ =0x02018000
- ldrb r0, [r0, 0x8]
- cmp r0, 0x6
- bhi _0809DA78
- lsls r0, 2
- ldr r1, _0809DA34 @ =_0809DA38
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0809DA30: .4byte 0x02018000
-_0809DA34: .4byte _0809DA38
- .align 2, 0
-_0809DA38:
- .4byte _0809DA54
- .4byte _0809DA6C
- .4byte _0809DA64
- .4byte _0809DA64
- .4byte _0809DA5C
- .4byte _0809DA54
- .4byte _0809DA6C
-_0809DA54:
- ldr r0, _0809DA58 @ =sub_809E19C
- b _0809DA6E
- .align 2, 0
-_0809DA58: .4byte sub_809E19C
-_0809DA5C:
- ldr r0, _0809DA60 @ =sub_809E19C
- b _0809DA6E
- .align 2, 0
-_0809DA60: .4byte sub_809E19C
-_0809DA64:
- ldr r0, _0809DA68 @ =sub_809EB40
- b _0809DA6E
- .align 2, 0
-_0809DA68: .4byte sub_809EB40
-_0809DA6C:
- ldr r0, _0809DA7C @ =sub_809E3FC
-_0809DA6E:
- movs r1, 0
- bl CreateTask
- ldr r1, _0809DA80 @ =0x02018000
- strb r0, [r1, 0xF]
-_0809DA78:
- pop {r0}
- bx r0
- .align 2, 0
-_0809DA7C: .4byte sub_809E3FC
-_0809DA80: .4byte 0x02018000
- thumb_func_end sub_809DA1C
-
- thumb_func_start sub_809DA84
-sub_809DA84: @ 809DA84
- push {r4-r7,lr}
- sub sp, 0x8
- ldr r1, _0809DAA4 @ =gMain
- ldr r2, _0809DAA8 @ =0x0000043c
- adds r0, r1, r2
- ldrb r0, [r0]
- mov r12, r1
- cmp r0, 0x16
- bls _0809DA98
- b _0809DE00
-_0809DA98:
- lsls r0, 2
- ldr r1, _0809DAAC @ =_0809DAB0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0809DAA4: .4byte gMain
-_0809DAA8: .4byte 0x0000043c
-_0809DAAC: .4byte _0809DAB0
- .align 2, 0
-_0809DAB0:
- .4byte _0809DB0C
- .4byte _0809DB18
- .4byte _0809DB2C
- .4byte _0809DB32
- .4byte _0809DB80
- .4byte _0809DB94
- .4byte _0809DBA0
- .4byte _0809DBBC
- .4byte _0809DBC8
- .4byte _0809DBDC
- .4byte _0809DC2C
- .4byte _0809DC48
- .4byte _0809DC5C
- .4byte _0809DC90
- .4byte _0809DCB0
- .4byte _0809DCC4
- .4byte _0809DCF8
- .4byte _0809DD02
- .4byte _0809DD30
- .4byte _0809DD3C
- .4byte _0809DD68
- .4byte _0809DD98
- .4byte _0809DDE0
-_0809DB0C:
- movs r0, 0
- bl SetVBlankCallback
- bl ResetSpriteData
- b _0809DDE8
-_0809DB18:
- bl remove_some_task
- ldr r1, _0809DB24 @ =gMain
- ldr r2, _0809DB28 @ =0x0000043c
- adds r1, r2
- b _0809DDEE
- .align 2, 0
-_0809DB24: .4byte gMain
-_0809DB28: .4byte 0x0000043c
-_0809DB2C:
- bl FreeAllSpritePalettes
- b _0809DDE8
-_0809DB32:
- movs r2, 0xC0
- lsls r2, 19
- movs r3, 0x80
- lsls r3, 9
- movs r5, 0
- ldr r1, _0809DB74 @ =0x040000d4
- movs r4, 0x80
- lsls r4, 5
- ldr r6, _0809DB78 @ =0x85000400
- movs r7, 0x85
- lsls r7, 24
-_0809DB48:
- str r5, [sp, 0x4]
- add r0, sp, 0x4
- str r0, [r1]
- str r2, [r1, 0x4]
- str r6, [r1, 0x8]
- ldr r0, [r1, 0x8]
- adds r2, r4
- subs r3, r4
- cmp r3, r4
- bhi _0809DB48
- str r5, [sp, 0x4]
- add r0, sp, 0x4
- str r0, [r1]
- str r2, [r1, 0x4]
- lsrs r0, r3, 2
- orrs r0, r7
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- ldr r1, _0809DB7C @ =0x0000043c
- add r1, r12
- b _0809DDEE
- .align 2, 0
-_0809DB74: .4byte 0x040000d4
-_0809DB78: .4byte 0x85000400
-_0809DB7C: .4byte 0x0000043c
-_0809DB80:
- bl sub_809DE64
- ldr r1, _0809DB8C @ =gMain
- ldr r2, _0809DB90 @ =0x0000043c
- adds r1, r2
- b _0809DDEE
- .align 2, 0
-_0809DB8C: .4byte gMain
-_0809DB90: .4byte 0x0000043c
-_0809DB94:
- ldr r0, _0809DB9C @ =gWindowConfig_81E6E6C
- bl SetUpWindowConfig
- b _0809DDE8
- .align 2, 0
-_0809DB9C: .4byte gWindowConfig_81E6E6C
-_0809DBA0:
- ldr r0, _0809DBB0 @ =gWindowConfig_81E6E6C
- bl MultistepInitMenuWindowBegin
- ldr r1, _0809DBB4 @ =gMain
- ldr r2, _0809DBB8 @ =0x0000043c
- adds r1, r2
- b _0809DDEE
- .align 2, 0
-_0809DBB0: .4byte gWindowConfig_81E6E6C
-_0809DBB4: .4byte gMain
-_0809DBB8: .4byte 0x0000043c
-_0809DBBC:
- bl MultistepInitMenuWindowContinue
- cmp r0, 0
- bne _0809DBC6
- b _0809DE38
-_0809DBC6:
- b _0809DDE8
-_0809DBC8:
- bl sub_809DA1C
- ldr r1, _0809DBD4 @ =gMain
- ldr r2, _0809DBD8 @ =0x0000043c
- adds r1, r2
- b _0809DDEE
- .align 2, 0
-_0809DBD4: .4byte gMain
-_0809DBD8: .4byte 0x0000043c
-_0809DBDC:
- ldr r1, _0809DC08 @ =gSummaryScreenTextTiles
- ldr r2, _0809DC0C @ =0x0600d000
- ldr r0, _0809DC10 @ =0x040000d4
- str r1, [r0]
- str r2, [r0, 0x4]
- ldr r1, _0809DC14 @ =0x800000a0
- str r1, [r0, 0x8]
- ldr r1, [r0, 0x8]
- ldr r1, _0809DC18 @ =gSummaryScreenButtonTiles
- ldr r2, _0809DC1C @ =0x0600d140
- str r1, [r0]
- str r2, [r0, 0x4]
- ldr r1, _0809DC20 @ =0x80000080
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- ldr r0, _0809DC24 @ =0x02018000
- adds r0, 0x74
- movs r1, 0
- strb r1, [r0]
- ldr r1, _0809DC28 @ =0x0000043c
- add r1, r12
- b _0809DDEE
- .align 2, 0
-_0809DC08: .4byte gSummaryScreenTextTiles
-_0809DC0C: .4byte 0x0600d000
-_0809DC10: .4byte 0x040000d4
-_0809DC14: .4byte 0x800000a0
-_0809DC18: .4byte gSummaryScreenButtonTiles
-_0809DC1C: .4byte 0x0600d140
-_0809DC20: .4byte 0x80000080
-_0809DC24: .4byte 0x02018000
-_0809DC28: .4byte 0x0000043c
-_0809DC2C:
- bl sub_809DF00
- lsls r0, 24
- cmp r0, 0
- bne _0809DC38
- b _0809DE38
-_0809DC38:
- ldr r0, _0809DC44 @ =0x02018000
- adds r0, 0x74
- movs r1, 0
- strb r1, [r0]
- b _0809DDE8
- .align 2, 0
-_0809DC44: .4byte 0x02018000
-_0809DC48:
- bl sub_80A18C4
- ldr r1, _0809DC54 @ =gMain
- ldr r2, _0809DC58 @ =0x0000043c
- adds r1, r2
- b _0809DDEE
- .align 2, 0
-_0809DC54: .4byte gMain
-_0809DC58: .4byte 0x0000043c
-_0809DC5C:
- ldr r4, _0809DC78 @ =0x02018010
- adds r0, r4, 0
- bl sub_809F678
- adds r0, r4, 0
- bl sub_80A1CD8
- lsls r0, 24
- cmp r0, 0
- bne _0809DC7C
- movs r0, 0
- bl sub_80A12D0
- b _0809DC82
- .align 2, 0
-_0809DC78: .4byte 0x02018010
-_0809DC7C:
- movs r0, 0xA
- bl sub_80A12D0
-_0809DC82:
- ldr r0, _0809DC8C @ =0x02018010
- bl sub_80A0EA4
- b _0809DDE8
- .align 2, 0
-_0809DC8C: .4byte 0x02018010
-_0809DC90:
- bl sub_80A1950
- ldr r0, _0809DCA4 @ =0x02018010
- bl sub_80A1D84
- ldr r1, _0809DCA8 @ =gMain
- ldr r2, _0809DCAC @ =0x0000043c
- adds r1, r2
- b _0809DDEE
- .align 2, 0
-_0809DCA4: .4byte 0x02018010
-_0809DCA8: .4byte gMain
-_0809DCAC: .4byte 0x0000043c
-_0809DCB0:
- ldr r4, _0809DCC0 @ =0x02018010
- adds r0, r4, 0
- bl sub_80A1DE8
- adds r4, 0x64
- movs r0, 0
- strb r0, [r4]
- b _0809DDE8
- .align 2, 0
-_0809DCC0: .4byte 0x02018010
-_0809DCC4:
- ldr r4, _0809DCEC @ =0x02018010
- adds r5, r4, 0
- adds r5, 0x64
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_809F6B4
- subs r4, 0x10
- strb r0, [r4, 0xC]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- bne _0809DCE0
- b _0809DE38
-_0809DCE0:
- movs r0, 0
- strb r0, [r5]
- ldr r1, _0809DCF0 @ =gMain
- ldr r2, _0809DCF4 @ =0x0000043c
- adds r1, r2
- b _0809DDEE
- .align 2, 0
-_0809DCEC: .4byte 0x02018010
-_0809DCF0: .4byte gMain
-_0809DCF4: .4byte 0x0000043c
-_0809DCF8:
- bl sub_809E044
- bl sub_80A0EE8
- b _0809DDE8
-_0809DD02:
- ldr r1, _0809DD20 @ =0x02018000
- ldrb r0, [r1, 0xB]
- cmp r0, 0x1
- bhi _0809DD18
- ldr r0, _0809DD24 @ =gUnknown_083C1580
- ldrb r1, [r1, 0xB]
- lsls r1, 2
- adds r1, r0
- ldr r0, [r1]
- bl _call_via_r0
-_0809DD18:
- ldr r1, _0809DD28 @ =gMain
- ldr r2, _0809DD2C @ =0x0000043c
- adds r1, r2
- b _0809DDEE
- .align 2, 0
-_0809DD20: .4byte 0x02018000
-_0809DD24: .4byte gUnknown_083C1580
-_0809DD28: .4byte gMain
-_0809DD2C: .4byte 0x0000043c
-_0809DD30:
- ldr r0, _0809DD38 @ =0x02018010
- bl sub_809FAC8
- b _0809DDE8
- .align 2, 0
-_0809DD38: .4byte 0x02018010
-_0809DD3C:
- ldr r2, _0809DD58 @ =gUnknown_083C1598
- ldr r0, _0809DD5C @ =0x02018000
- ldrb r1, [r0, 0xB]
- lsls r1, 2
- adds r1, r2
- adds r0, 0x10
- ldr r1, [r1]
- bl _call_via_r1
- ldr r1, _0809DD60 @ =gMain
- ldr r2, _0809DD64 @ =0x0000043c
- adds r1, r2
- b _0809DDEE
- .align 2, 0
-_0809DD58: .4byte gUnknown_083C1598
-_0809DD5C: .4byte 0x02018000
-_0809DD60: .4byte gMain
-_0809DD64: .4byte 0x0000043c
-_0809DD68:
- ldr r0, _0809DD84 @ =0x02018010
- movs r1, 0x2D
- bl GetMonData
- adds r1, r0, 0
- cmp r1, 0
- beq _0809DD8C
- ldr r1, _0809DD88 @ =gUnknown_030041B0
- movs r2, 0x80
- lsls r2, 1
- adds r0, r2, 0
- strh r0, [r1]
- b _0809DDE8
- .align 2, 0
-_0809DD84: .4byte 0x02018010
-_0809DD88: .4byte gUnknown_030041B0
-_0809DD8C:
- ldr r0, _0809DD94 @ =gUnknown_030041B0
- strh r1, [r0]
- b _0809DDE8
- .align 2, 0
-_0809DD94: .4byte gUnknown_030041B0
-_0809DD98:
- bl sub_809EBC4
- ldr r0, _0809DDB8 @ =0x02018000
- adds r0, 0x79
- ldrb r0, [r0]
- cmp r0, 0
- beq _0809DDBC
- movs r0, 0
- movs r1, 0
- bl sub_80A1488
- movs r0, 0
- movs r1, 0
- bl sub_80A1654
- b _0809DDCC
- .align 2, 0
-_0809DDB8: .4byte 0x02018000
-_0809DDBC:
- movs r0, 0xA
- movs r1, 0
- bl sub_80A1488
- movs r0, 0xA
- movs r1, 0
- bl sub_80A1654
-_0809DDCC:
- bl sub_80A0DD0
- ldr r1, _0809DDD8 @ =gMain
- ldr r2, _0809DDDC @ =0x0000043c
- adds r1, r2
- b _0809DDEE
- .align 2, 0
-_0809DDD8: .4byte gMain
-_0809DDDC: .4byte 0x0000043c
-_0809DDE0:
- bl sub_8055870
- cmp r0, 0x1
- beq _0809DE38
-_0809DDE8:
- ldr r1, _0809DDF8 @ =gMain
- ldr r0, _0809DDFC @ =0x0000043c
- adds r1, r0
-_0809DDEE:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _0809DE38
- .align 2, 0
-_0809DDF8: .4byte gMain
-_0809DDFC: .4byte 0x0000043c
-_0809DE00:
- ldr r0, _0809DE2C @ =sub_809D85C
- bl SetVBlankCallback
- movs r0, 0x1
- str r0, [sp]
- movs r0, 0xFF
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginHardwarePaletteFade
- ldr r0, _0809DE30 @ =sub_809D844
- bl SetMainCallback2
- ldr r2, _0809DE34 @ =gPaletteFade
- ldrb r1, [r2, 0x8]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2, 0x8]
- movs r0, 0x1
- b _0809DE3A
- .align 2, 0
-_0809DE2C: .4byte sub_809D85C
-_0809DE30: .4byte sub_809D844
-_0809DE34: .4byte gPaletteFade
-_0809DE38:
- movs r0, 0
-_0809DE3A:
- add sp, 0x8
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_809DA84
-
- thumb_func_start sub_809DE44
-sub_809DE44: @ 809DE44
- push {lr}
-_0809DE46:
- bl sub_809DA84
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0809DE5E
- bl sub_80F9344
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809DE46
-_0809DE5E:
- pop {r0}
- bx r0
- thumb_func_end sub_809DE44
-
- thumb_func_start sub_809DE64
-sub_809DE64: @ 809DE64
- ldr r1, _0809DED0 @ =REG_BG0CNT
- ldr r2, _0809DED4 @ =0x00001e08
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r2, _0809DED8 @ =0x00004801
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r2, _0809DEDC @ =0x00004a02
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r2, _0809DEE0 @ =0x00005c03
- adds r0, r2, 0
- strh r0, [r1]
- ldr r1, _0809DEE4 @ =gUnknown_030042C0
- movs r0, 0
- strh r0, [r1]
- ldr r1, _0809DEE8 @ =gUnknown_030041B4
- strh r0, [r1]
- ldr r1, _0809DEEC @ =gUnknown_03004288
- strh r0, [r1]
- ldr r1, _0809DEF0 @ =gUnknown_03004280
- strh r0, [r1]
- ldr r1, _0809DEF4 @ =gUnknown_030041B0
- strh r0, [r1]
- ldr r1, _0809DEF8 @ =gUnknown_030041B8
- strh r0, [r1]
- ldr r1, _0809DEFC @ =REG_BG0HOFS
- strh r0, [r1]
- adds r1, 0x2
- strh r0, [r1]
- adds r1, 0x2
- strh r0, [r1]
- adds r1, 0x2
- strh r0, [r1]
- adds r1, 0x2
- strh r0, [r1]
- adds r1, 0x2
- strh r0, [r1]
- adds r1, 0x2
- strh r0, [r1]
- adds r1, 0x2
- strh r0, [r1]
- adds r1, 0x32
- strh r0, [r1]
- subs r1, 0x50
- movs r2, 0xFA
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- bx lr
- .align 2, 0
-_0809DED0: .4byte REG_BG0CNT
-_0809DED4: .4byte 0x00001e08
-_0809DED8: .4byte 0x00004801
-_0809DEDC: .4byte 0x00004a02
-_0809DEE0: .4byte 0x00005c03
-_0809DEE4: .4byte gUnknown_030042C0
-_0809DEE8: .4byte gUnknown_030041B4
-_0809DEEC: .4byte gUnknown_03004288
-_0809DEF0: .4byte gUnknown_03004280
-_0809DEF4: .4byte gUnknown_030041B0
-_0809DEF8: .4byte gUnknown_030041B8
-_0809DEFC: .4byte REG_BG0HOFS
- thumb_func_end sub_809DE64
-
- thumb_func_start sub_809DF00
-sub_809DF00: @ 809DF00
- push {lr}
- ldr r0, _0809DF18 @ =0x02018000
- adds r0, 0x74
- ldrb r0, [r0]
- cmp r0, 0xC
- bls _0809DF0E
- b _0809E030
-_0809DF0E:
- lsls r0, 2
- ldr r1, _0809DF1C @ =_0809DF20
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0809DF18: .4byte 0x02018000
-_0809DF1C: .4byte _0809DF20
- .align 2, 0
-_0809DF20:
- .4byte _0809DF54
- .4byte _0809DF64
- .4byte _0809DF74
- .4byte _0809DF88
- .4byte _0809DF9C
- .4byte _0809DFAC
- .4byte _0809DFC4
- .4byte _0809DFD4
- .4byte _0809DFE0
- .4byte _0809DFEC
- .4byte _0809DFF8
- .4byte _0809E004
- .4byte _0809E010
-_0809DF54:
- ldr r0, _0809DF60 @ =gStatusScreen_Gfx
- movs r1, 0xC0
- lsls r1, 19
- bl LZDecompressVram
- b _0809E030
- .align 2, 0
-_0809DF60: .4byte gStatusScreen_Gfx
-_0809DF64:
- ldr r0, _0809DF6C @ =gUnknown_08E73508
- ldr r1, _0809DF70 @ =0x0600e000
- b _0809DFB0
- .align 2, 0
-_0809DF6C: .4byte gUnknown_08E73508
-_0809DF70: .4byte 0x0600e000
-_0809DF74:
- ldr r0, _0809DF80 @ =gUnknown_08E74E88
- ldr r1, _0809DF84 @ =0x0600e800
- bl LZDecompressVram
- b _0809E030
- .align 2, 0
-_0809DF80: .4byte gUnknown_08E74E88
-_0809DF84: .4byte 0x0600e800
-_0809DF88:
- ldr r0, _0809DF94 @ =gStatusScreen_Tilemap
- ldr r1, _0809DF98 @ =0x06004800
- bl LZDecompressVram
- b _0809E030
- .align 2, 0
-_0809DF94: .4byte gStatusScreen_Tilemap
-_0809DF98: .4byte 0x06004800
-_0809DF9C:
- ldr r0, _0809DFA4 @ =gUnknown_08E73E88
- ldr r1, _0809DFA8 @ =0x06005800
- b _0809DFB0
- .align 2, 0
-_0809DFA4: .4byte gUnknown_08E73E88
-_0809DFA8: .4byte 0x06005800
-_0809DFAC:
- ldr r0, _0809DFBC @ =gUnknown_08E74688
- ldr r1, _0809DFC0 @ =0x06006800
-_0809DFB0:
- movs r2, 0x80
- lsls r2, 3
- bl CpuSet
- b _0809E030
- .align 2, 0
-_0809DFBC: .4byte gUnknown_08E74688
-_0809DFC0: .4byte 0x06006800
-_0809DFC4:
- ldr r0, _0809DFD0 @ =gStatusScreen_Pal
- movs r1, 0
- movs r2, 0xA0
- bl LoadCompressedPalette
- b _0809E030
- .align 2, 0
-_0809DFD0: .4byte gStatusScreen_Pal
-_0809DFD4:
- ldr r0, _0809DFDC @ =gUnknown_083C11B8
- bl LoadCompressedObjectPic
- b _0809E030
- .align 2, 0
-_0809DFDC: .4byte gUnknown_083C11B8
-_0809DFE0:
- ldr r0, _0809DFE8 @ =gUnknown_083C1270
- bl LoadCompressedObjectPic
- b _0809E030
- .align 2, 0
-_0809DFE8: .4byte gUnknown_083C1270
-_0809DFEC:
- ldr r0, _0809DFF4 @ =gUnknown_083C12F4
- bl LoadCompressedObjectPic
- b _0809E030
- .align 2, 0
-_0809DFF4: .4byte gUnknown_083C12F4
-_0809DFF8:
- ldr r0, _0809E000 @ =gUnknown_083C12FC
- bl LoadCompressedObjectPalette
- b _0809E030
- .align 2, 0
-_0809E000: .4byte gUnknown_083C12FC
-_0809E004:
- ldr r0, _0809E00C @ =gUnknown_083C1278
- bl LoadCompressedObjectPalette
- b _0809E030
- .align 2, 0
-_0809E00C: .4byte gUnknown_083C1278
-_0809E010:
- ldr r0, _0809E028 @ =gMoveTypes_Pal
- movs r1, 0xE8
- lsls r1, 1
- movs r2, 0x60
- bl LoadCompressedPalette
- ldr r0, _0809E02C @ =0x02018000
- adds r0, 0x74
- movs r1, 0
- strb r1, [r0]
- movs r0, 0x1
- b _0809E03C
- .align 2, 0
-_0809E028: .4byte gMoveTypes_Pal
-_0809E02C: .4byte 0x02018000
-_0809E030:
- ldr r1, _0809E040 @ =0x02018000
- adds r1, 0x74
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- movs r0, 0
-_0809E03C:
- pop {r1}
- bx r1
- .align 2, 0
-_0809E040: .4byte 0x02018000
- thumb_func_end sub_809DF00
-
- thumb_func_start sub_809E044
-sub_809E044: @ 809E044
- push {r4,r5,lr}
- ldr r4, _0809E0F4 @ =gUnknownPalette_81E6692+0x1C
- adds r0, r4, 0
- movs r1, 0x81
- movs r2, 0x2
- bl LoadPalette
- adds r5, r4, 0x2
- adds r0, r5, 0
- movs r1, 0x88
- movs r2, 0x2
- bl LoadPalette
- adds r0, r4, 0
- movs r1, 0x8F
- movs r2, 0x2
- bl LoadPalette
- adds r0, r5, 0
- movs r1, 0x89
- movs r2, 0x2
- bl LoadPalette
- subs r5, 0x12
- adds r0, r5, 0
- movs r1, 0xD1
- movs r2, 0x4
- bl LoadPalette
- adds r0, r4, 0
- subs r0, 0x8
- movs r1, 0xD3
- movs r2, 0x4
- bl LoadPalette
- adds r0, r4, 0
- movs r1, 0xD5
- movs r2, 0x4
- bl LoadPalette
- adds r0, r5, 0
- movs r1, 0xD7
- movs r2, 0x4
- bl LoadPalette
- adds r0, r4, 0
- subs r0, 0x14
- movs r1, 0xD9
- movs r2, 0x4
- bl LoadPalette
- adds r0, r4, 0
- subs r0, 0xC
- movs r1, 0xDB
- movs r2, 0x4
- bl LoadPalette
- adds r0, r4, 0
- subs r0, 0x18
- movs r1, 0xDD
- movs r2, 0x2
- bl LoadPalette
- subs r5, 0x6
- adds r0, r5, 0
- movs r1, 0xDE
- movs r2, 0x2
- bl LoadPalette
- subs r4, 0x1A
- adds r0, r4, 0
- movs r1, 0xDF
- movs r2, 0x2
- bl LoadPalette
- ldr r0, _0809E0F8 @ =gFontDefaultPalette
- movs r1, 0xF0
- movs r2, 0x20
- bl LoadPalette
- adds r0, r5, 0
- movs r1, 0xF9
- movs r2, 0x2
- bl LoadPalette
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0809E0F4: .4byte gUnknownPalette_81E6692+0x1C
-_0809E0F8: .4byte gFontDefaultPalette
- thumb_func_end sub_809E044
-
- thumb_func_start sub_809E0FC
-sub_809E0FC: @ 809E0FC
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _0809E134 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0809E138 @ =sub_809E13C
- str r1, [r0]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0809E134: .4byte gTasks
-_0809E138: .4byte sub_809E13C
- thumb_func_end sub_809E0FC
-
- thumb_func_start sub_809E13C
-sub_809E13C: @ 809E13C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- bl sub_8055870
- cmp r0, 0x1
- beq _0809E182
- ldr r0, _0809E188 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0809E182
- ldr r1, _0809E18C @ =gUnknown_020384F0
- ldr r4, _0809E190 @ =0x02018000
- ldrb r0, [r4, 0x9]
- strb r0, [r1]
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- bl StopCryAndClearCrySongs
- ldr r0, _0809E194 @ =gMPlay_BGM
- ldr r1, _0809E198 @ =0x0000ffff
- movs r2, 0x80
- lsls r2, 1
- bl m4aMPlayVolumeControl
- ldr r0, [r4, 0x4]
- bl SetMainCallback2
- adds r0, r5, 0
- bl DestroyTask
-_0809E182:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0809E188: .4byte gPaletteFade
-_0809E18C: .4byte gUnknown_020384F0
-_0809E190: .4byte 0x02018000
-_0809E194: .4byte gMPlay_BGM
-_0809E198: .4byte 0x0000ffff
- thumb_func_end sub_809E13C
-
- thumb_func_start sub_809E19C
-sub_809E19C: @ 809E19C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0809E1C8 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r2, 0x80
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- bne _0809E25A
- ldr r5, _0809E1CC @ =gMain
- ldrh r1, [r5, 0x2E]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0809E1D0
- movs r1, 0x1
- negs r1, r1
- adds r0, r4, 0
- bl sub_809F1B8
- b _0809E25A
- .align 2, 0
-_0809E1C8: .4byte gPaletteFade
-_0809E1CC: .4byte gMain
-_0809E1D0:
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- beq _0809E1E2
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_809F1B8
- b _0809E25A
-_0809E1E2:
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- bne _0809E1F6
- bl sub_80F9284
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809E202
-_0809E1F6:
- movs r1, 0x1
- negs r1, r1
- adds r0, r4, 0
- bl sub_809F134
- b _0809E25A
-_0809E202:
- ldrh r1, [r5, 0x2E]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- bne _0809E218
- bl sub_80F9284
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _0809E222
-_0809E218:
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_809F134
- b _0809E25A
-_0809E222:
- ldrh r1, [r5, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0809E24C
- ldr r5, _0809E248 @ =0x02018000
- ldrb r0, [r5, 0xB]
- cmp r0, 0x1
- bls _0809E23A
- adds r0, r4, 0
- bl sub_809EA50
-_0809E23A:
- ldrb r0, [r5, 0xB]
- cmp r0, 0
- bne _0809E25A
- adds r0, r4, 0
- bl sub_809E0FC
- b _0809E25A
- .align 2, 0
-_0809E248: .4byte 0x02018000
-_0809E24C:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0809E25A
- adds r0, r4, 0
- bl sub_809E0FC
-_0809E25A:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_809E19C
-
- thumb_func_start sub_809E260
-sub_809E260: @ 809E260
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0809E29C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r2, 0x80
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- beq _0809E276
- b _0809E3EE
-_0809E276:
- ldr r5, _0809E2A0 @ =gMain
- ldrh r1, [r5, 0x2E]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0809E2AC
- ldr r1, _0809E2A4 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0x4
- strh r1, [r0, 0x8]
- subs r1, 0x5
- ldr r2, _0809E2A8 @ =0x02018079
- adds r0, r4, 0
- bl sub_809E8F0
- b _0809E3EE
- .align 2, 0
-_0809E29C: .4byte gPaletteFade
-_0809E2A0: .4byte gMain
-_0809E2A4: .4byte gTasks
-_0809E2A8: .4byte 0x02018079
-_0809E2AC:
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- beq _0809E2D8
- ldr r1, _0809E2D0 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0x4
- strh r1, [r0, 0x8]
- ldr r2, _0809E2D4 @ =0x02018079
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_809E8F0
- b _0809E3EE
- .align 2, 0
-_0809E2D0: .4byte gTasks
-_0809E2D4: .4byte 0x02018079
-_0809E2D8:
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- bne _0809E2EC
- bl sub_80F9284
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809E324
-_0809E2EC:
- ldr r1, _0809E320 @ =0x02018000
- ldrb r0, [r1, 0xB]
- cmp r0, 0x3
- bne _0809E314
- adds r0, r1, 0
- adds r0, 0x79
- ldrb r0, [r0]
- cmp r0, 0x4
- bne _0809E308
- adds r0, r1, 0
- adds r0, 0x7C
- ldrh r0, [r0]
- cmp r0, 0
- beq _0809E314
-_0809E308:
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x9
- movs r3, 0x12
- bl MenuZeroFillWindowRect
-_0809E314:
- movs r1, 0x1
- negs r1, r1
- adds r0, r4, 0
- bl sub_809F134
- b _0809E3EE
- .align 2, 0
-_0809E320: .4byte 0x02018000
-_0809E324:
- ldrh r1, [r5, 0x2E]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- bne _0809E33A
- bl sub_80F9284
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _0809E37C
-_0809E33A:
- ldr r1, _0809E378 @ =0x02018000
- adds r2, r1, 0
- adds r2, 0x76
- ldrb r0, [r1, 0xB]
- ldrb r2, [r2]
- cmp r0, r2
- beq _0809E3EE
- cmp r0, 0x2
- bne _0809E36C
- adds r0, r1, 0
- adds r0, 0x79
- ldrb r0, [r0]
- cmp r0, 0x4
- bne _0809E360
- adds r0, r1, 0
- adds r0, 0x7C
- ldrh r0, [r0]
- cmp r0, 0
- beq _0809E36C
-_0809E360:
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x9
- movs r3, 0x12
- bl MenuZeroFillWindowRect
-_0809E36C:
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_809F134
- b _0809E3EE
- .align 2, 0
-_0809E378: .4byte 0x02018000
-_0809E37C:
- ldrh r1, [r5, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0809E3D4
- adds r0, r4, 0
- bl sub_809F7D0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0809E3A0
- ldr r0, _0809E3BC @ =0x02018000
- adds r5, r0, 0
- adds r5, 0x79
- ldrb r0, [r5]
- cmp r0, 0x4
- bne _0809E3C4
-_0809E3A0:
- ldr r0, _0809E3BC @ =0x02018000
- adds r1, r0, 0
- adds r1, 0x79
- ldrb r1, [r1]
- adds r0, 0x7A
- strb r1, [r0]
- ldr r1, _0809E3C0 @ =gSpecialVar_0x8005
- ldrb r0, [r0]
- strh r0, [r1]
- adds r0, r4, 0
- bl sub_809E0FC
- b _0809E3EE
- .align 2, 0
-_0809E3BC: .4byte 0x02018000
-_0809E3C0: .4byte gSpecialVar_0x8005
-_0809E3C4:
- movs r0, 0x20
- bl PlaySE
- ldrb r1, [r5]
- adds r0, r4, 0
- bl sub_809F9D0
- b _0809E3EE
-_0809E3D4:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0809E3EE
- ldr r0, _0809E3F4 @ =0x02018000
- adds r0, 0x7A
- movs r1, 0x4
- strb r1, [r0]
- ldr r0, _0809E3F8 @ =gSpecialVar_0x8005
- strh r1, [r0]
- adds r0, r4, 0
- bl sub_809E0FC
-_0809E3EE:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0809E3F4: .4byte 0x02018000
-_0809E3F8: .4byte gSpecialVar_0x8005
- thumb_func_end sub_809E260
-
- thumb_func_start sub_809E3FC
-sub_809E3FC: @ 809E3FC
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- adds r7, r5, 0
- ldr r0, _0809E438 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r2, 0x80
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- bne _0809E502
- ldr r0, _0809E43C @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0809E448
- ldr r1, _0809E440 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- movs r1, 0x4
- strh r1, [r0, 0x8]
- subs r1, 0x5
- ldr r2, _0809E444 @ =0x02018079
- adds r0, r5, 0
- bl sub_809E8F0
- b _0809E502
- .align 2, 0
-_0809E438: .4byte gPaletteFade
-_0809E43C: .4byte gMain
-_0809E440: .4byte gTasks
-_0809E444: .4byte 0x02018079
-_0809E448:
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- beq _0809E474
- ldr r1, _0809E46C @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- movs r1, 0x4
- strh r1, [r0, 0x8]
- ldr r2, _0809E470 @ =0x02018079
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_809E8F0
- b _0809E502
- .align 2, 0
-_0809E46C: .4byte gTasks
-_0809E470: .4byte 0x02018079
-_0809E474:
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0809E4EE
- ldr r4, _0809E4A8 @ =0x02018000
- adds r6, r4, 0
- adds r6, 0x79
- ldrb r0, [r6]
- cmp r0, 0x4
- beq _0809E4E0
- adds r0, r4, 0
- adds r0, 0x7B
- ldrb r0, [r0]
- cmp r0, 0
- bne _0809E4E0
- adds r0, r4, 0
- adds r0, 0x10
- bl sub_809E508
- lsls r0, 24
- cmp r0, 0
- bne _0809E4AC
- movs r0, 0x20
- bl PlaySE
- b _0809E502
- .align 2, 0
-_0809E4A8: .4byte 0x02018000
-_0809E4AC:
- movs r0, 0x5
- bl PlaySE
- ldrb r1, [r6]
- adds r0, r4, 0
- adds r0, 0x7A
- strb r1, [r0]
- movs r0, 0x1
- bl sub_80A1B40
- movs r0, 0x13
- bl sub_80A1A30
- ldr r1, _0809E4D8 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _0809E4DC @ =sub_809E534
- str r1, [r0]
- b _0809E502
- .align 2, 0
-_0809E4D8: .4byte gTasks
-_0809E4DC: .4byte sub_809E534
-_0809E4E0:
- movs r0, 0x5
- bl PlaySE
- adds r0, r7, 0
- bl sub_809EAC8
- b _0809E502
-_0809E4EE:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0809E502
- movs r0, 0x5
- bl PlaySE
- adds r0, r7, 0
- bl sub_809EAC8
-_0809E502:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_809E3FC
-
- thumb_func_start sub_809E508
-sub_809E508: @ 809E508
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r4, 0x1
-_0809E50E:
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_809F760
- lsls r0, 16
- cmp r0, 0
- beq _0809E520
- movs r0, 0x1
- b _0809E52C
-_0809E520:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x3
- bls _0809E50E
- movs r0, 0
-_0809E52C:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_809E508
-
- thumb_func_start sub_809E534
-sub_809E534: @ 809E534
- push {lr}
- lsls r0, 24
- lsrs r3, r0, 24
- adds r2, r3, 0
- ldr r0, _0809E564 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0809E570
- ldr r1, _0809E568 @ =gTasks
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r0, r1
- movs r1, 0x3
- strh r1, [r0, 0x8]
- subs r1, 0x4
- ldr r2, _0809E56C @ =0x0201807a
- adds r0, r3, 0
- bl sub_809E8F0
- b _0809E5C0
- .align 2, 0
-_0809E564: .4byte gMain
-_0809E568: .4byte gTasks
-_0809E56C: .4byte 0x0201807a
-_0809E570:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0809E59C
- ldr r1, _0809E594 @ =gTasks
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r0, r1
- movs r1, 0x3
- strh r1, [r0, 0x8]
- ldr r2, _0809E598 @ =0x0201807a
- adds r0, r3, 0
- movs r1, 0x1
- bl sub_809E8F0
- b _0809E5C0
- .align 2, 0
-_0809E594: .4byte gTasks
-_0809E598: .4byte 0x0201807a
-_0809E59C:
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0809E5AE
- adds r0, r3, 0
- movs r1, 0x1
- bl sub_809E83C
- b _0809E5C0
-_0809E5AE:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0809E5C0
- movs r1, 0x1
- negs r1, r1
- adds r0, r2, 0
- bl sub_809E83C
-_0809E5C0:
- pop {r0}
- bx r0
- thumb_func_end sub_809E534
-
- thumb_func_start sub_809E5C4
-sub_809E5C4: @ 809E5C4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x20
- ldr r1, _0809E6D0 @ =0x02018000
- ldr r5, [r1]
- ldrb r2, [r1, 0x9]
- movs r0, 0x64
- muls r0, r2
- adds r5, r0
- adds r0, r1, 0
- adds r0, 0x79
- ldrb r0, [r0]
- mov r8, r0
- adds r1, 0x7A
- ldrb r6, [r1]
- adds r0, 0xD
- str r0, [sp, 0x8]
- adds r0, r5, 0
- ldr r1, [sp, 0x8]
- bl GetMonData
- mov r1, sp
- adds r1, 0x2
- str r1, [sp, 0x14]
- strh r0, [r1]
- adds r2, r6, 0
- adds r2, 0xD
- str r2, [sp, 0xC]
- adds r0, r5, 0
- adds r1, r2, 0
- bl GetMonData
- mov r1, sp
- strh r0, [r1]
- mov r3, r8
- adds r3, 0x11
- str r3, [sp, 0x10]
- adds r0, r5, 0
- adds r1, r3, 0
- bl GetMonData
- mov r7, sp
- adds r7, 0x5
- str r7, [sp, 0x18]
- strb r0, [r7]
- adds r0, r6, 0
- adds r0, 0x11
- str r0, [sp, 0x1C]
- adds r0, r5, 0
- ldr r1, [sp, 0x1C]
- bl GetMonData
- add r1, sp, 0x4
- mov r10, r1
- strb r0, [r1]
- adds r0, r5, 0
- movs r1, 0x15
- bl GetMonData
- mov r4, sp
- adds r4, 0x6
- strb r0, [r4]
- ldr r1, _0809E6D4 @ =gUnknown_08208238
- mov r2, r8
- adds r0, r2, r1
- ldrb r0, [r0]
- mov r9, r0
- ldrb r0, [r4]
- adds r2, r0, 0
- mov r3, r9
- ands r2, r3
- mov r7, r8
- lsls r7, 1
- mov r8, r7
- asrs r2, r7
- lsls r2, 24
- lsrs r2, 24
- adds r1, r6, r1
- ldrb r3, [r1]
- adds r1, r0, 0
- ands r1, r3
- lsls r6, 1
- asrs r1, r6
- lsls r1, 24
- lsrs r1, 24
- mov r7, r9
- bics r0, r7
- strb r0, [r4]
- ldrb r0, [r4]
- bics r0, r3
- strb r0, [r4]
- lsls r2, r6
- mov r0, r8
- lsls r1, r0
- adds r2, r1
- ldrb r0, [r4]
- orrs r0, r2
- strb r0, [r4]
- adds r0, r5, 0
- ldr r1, [sp, 0x8]
- mov r2, sp
- bl SetMonData
- adds r0, r5, 0
- ldr r1, [sp, 0xC]
- ldr r2, [sp, 0x14]
- bl SetMonData
- adds r0, r5, 0
- ldr r1, [sp, 0x10]
- mov r2, r10
- bl SetMonData
- adds r0, r5, 0
- ldr r1, [sp, 0x1C]
- ldr r2, [sp, 0x18]
- bl SetMonData
- adds r0, r5, 0
- movs r1, 0x15
- adds r2, r4, 0
- bl SetMonData
- add sp, 0x20
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0809E6D0: .4byte 0x02018000
-_0809E6D4: .4byte gUnknown_08208238
- thumb_func_end sub_809E5C4
-
- thumb_func_start sub_809E6D8
-sub_809E6D8: @ 809E6D8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x20
- ldr r2, _0809E7E8 @ =0x02018000
- ldr r5, [r2]
- ldrb r1, [r2, 0x9]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 4
- adds r5, r0
- adds r0, r2, 0
- adds r0, 0x79
- ldrb r0, [r0]
- mov r8, r0
- adds r2, 0x7A
- ldrb r6, [r2]
- adds r0, 0xD
- str r0, [sp, 0x8]
- adds r0, r5, 0
- ldr r1, [sp, 0x8]
- bl GetBoxMonData
- mov r1, sp
- adds r1, 0x2
- str r1, [sp, 0x14]
- strh r0, [r1]
- adds r2, r6, 0
- adds r2, 0xD
- str r2, [sp, 0xC]
- adds r0, r5, 0
- adds r1, r2, 0
- bl GetBoxMonData
- mov r1, sp
- strh r0, [r1]
- mov r3, r8
- adds r3, 0x11
- str r3, [sp, 0x10]
- adds r0, r5, 0
- adds r1, r3, 0
- bl GetBoxMonData
- mov r7, sp
- adds r7, 0x5
- str r7, [sp, 0x18]
- strb r0, [r7]
- adds r0, r6, 0
- adds r0, 0x11
- str r0, [sp, 0x1C]
- adds r0, r5, 0
- ldr r1, [sp, 0x1C]
- bl GetBoxMonData
- add r1, sp, 0x4
- mov r10, r1
- strb r0, [r1]
- adds r0, r5, 0
- movs r1, 0x15
- bl GetBoxMonData
- mov r4, sp
- adds r4, 0x6
- strb r0, [r4]
- ldr r1, _0809E7EC @ =gUnknown_08208238
- mov r2, r8
- adds r0, r2, r1
- ldrb r0, [r0]
- mov r9, r0
- ldrb r0, [r4]
- adds r2, r0, 0
- mov r3, r9
- ands r2, r3
- mov r7, r8
- lsls r7, 1
- mov r8, r7
- asrs r2, r7
- lsls r2, 24
- lsrs r2, 24
- adds r1, r6, r1
- ldrb r3, [r1]
- adds r1, r0, 0
- ands r1, r3
- lsls r6, 1
- asrs r1, r6
- lsls r1, 24
- lsrs r1, 24
- mov r7, r9
- bics r0, r7
- strb r0, [r4]
- ldrb r0, [r4]
- bics r0, r3
- strb r0, [r4]
- lsls r2, r6
- mov r0, r8
- lsls r1, r0
- adds r2, r1
- ldrb r0, [r4]
- orrs r0, r2
- strb r0, [r4]
- adds r0, r5, 0
- ldr r1, [sp, 0x8]
- mov r2, sp
- bl SetBoxMonData
- adds r0, r5, 0
- ldr r1, [sp, 0xC]
- ldr r2, [sp, 0x14]
- bl SetBoxMonData
- adds r0, r5, 0
- ldr r1, [sp, 0x10]
- mov r2, r10
- bl SetBoxMonData
- adds r0, r5, 0
- ldr r1, [sp, 0x1C]
- ldr r2, [sp, 0x18]
- bl SetBoxMonData
- adds r0, r5, 0
- movs r1, 0x15
- adds r2, r4, 0
- bl SetBoxMonData
- add sp, 0x20
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0809E7E8: .4byte 0x02018000
-_0809E7EC: .4byte gUnknown_08208238
- thumb_func_end sub_809E6D8
-
- thumb_func_start sub_809E7F0
-sub_809E7F0: @ 809E7F0
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_809F5F8
- lsls r0, 24
- cmp r0, 0
- beq _0809E828
- ldr r1, _0809E830 @ =0x02018000
- adds r2, r1, 0
- adds r2, 0x74
- movs r0, 0
- strb r0, [r2]
- adds r0, r1, 0
- adds r0, 0x10
- adds r1, 0x79
- bl sub_80A0428
- ldr r1, _0809E834 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0809E838 @ =sub_809E3FC
- str r1, [r0]
- adds r0, r4, 0
- bl sub_80A2078
-_0809E828:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0809E830: .4byte 0x02018000
-_0809E834: .4byte gTasks
-_0809E838: .4byte sub_809E3FC
- thumb_func_end sub_809E7F0
-
- thumb_func_start sub_809E83C
-sub_809E83C: @ 809E83C
- push {r4,r5,lr}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x13
- bl sub_80A1B1C
- movs r0, 0
- bl sub_80A1B40
- cmp r4, 0x1
- bne _0809E8C0
- ldr r1, _0809E87C @ =0x02018000
- adds r0, r1, 0
- adds r0, 0x79
- adds r2, r1, 0
- adds r2, 0x7A
- ldrb r0, [r0]
- ldrb r2, [r2]
- cmp r0, r2
- beq _0809E8CA
- ldrb r0, [r1, 0xE]
- cmp r0, 0
- bne _0809E880
- bl sub_809E5C4
- b _0809E884
- .align 2, 0
-_0809E87C: .4byte 0x02018000
-_0809E880:
- bl sub_809E6D8
-_0809E884:
- ldr r4, _0809E8B4 @ =0x02018000
- adds r0, r4, 0
- adds r0, 0x7A
- ldrb r0, [r0]
- adds r1, r4, 0
- adds r1, 0x79
- strb r0, [r1]
- adds r0, r4, 0
- adds r0, 0x10
- bl sub_809F678
- adds r1, r4, 0
- adds r1, 0x74
- movs r0, 0x1
- strb r0, [r1]
- ldr r1, _0809E8B8 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _0809E8BC @ =sub_809E7F0
- str r1, [r0]
- b _0809E8DE
- .align 2, 0
-_0809E8B4: .4byte 0x02018000
-_0809E8B8: .4byte gTasks
-_0809E8BC: .4byte sub_809E7F0
-_0809E8C0:
- ldr r0, _0809E8E4 @ =0x02018010
- adds r1, r0, 0
- adds r1, 0x69
- bl sub_80A0428
-_0809E8CA:
- ldr r0, _0809E8E8 @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldr r0, _0809E8EC @ =sub_809E3FC
- str r0, [r1]
- adds r0, r5, 0
- bl sub_80A2078
-_0809E8DE:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0809E8E4: .4byte 0x02018010
-_0809E8E8: .4byte gTasks
-_0809E8EC: .4byte sub_809E3FC
- thumb_func_end sub_809E83C
-
- thumb_func_start sub_809E8F0
-sub_809E8F0: @ 809E8F0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- adds r4, r1, 0
- mov r9, r2
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x1
- str r0, [sp]
- movs r0, 0x5
- bl PlaySE
- mov r1, r9
- ldrb r6, [r1]
- ldr r1, _0809E944 @ =gTasks
- mov r2, r8
- lsls r0, r2, 2
- add r0, r8
- lsls r0, 3
- adds r0, r1
- ldrb r0, [r0, 0x8]
- movs r2, 0
- lsls r4, 24
- asrs r4, 24
- mov r10, r4
- lsls r7, r0, 24
-_0809E930:
- lsls r0, r6, 24
- asrs r0, 24
- add r0, r10
- lsls r0, 24
- lsrs r6, r0, 24
- asrs r1, r0, 24
- cmp r0, r7
- ble _0809E948
- movs r6, 0
- b _0809E94E
- .align 2, 0
-_0809E944: .4byte gTasks
-_0809E948:
- cmp r1, 0
- bge _0809E94E
- lsrs r6, r7, 24
-_0809E94E:
- lsls r4, r6, 24
- lsrs r1, r4, 24
- ldr r0, _0809EA10 @ =0x02018010
- str r2, [sp, 0x4]
- bl sub_809F760
- lsls r0, 16
- adds r5, r4, 0
- ldr r2, [sp, 0x4]
- cmp r0, 0
- bne _0809E97A
- asrs r0, r5, 24
- cmp r0, 0x4
- beq _0809E97A
- lsls r0, r2, 24
- movs r3, 0x80
- lsls r3, 17
- adds r0, r3
- lsrs r2, r0, 24
- asrs r0, 24
- cmp r0, 0x3
- ble _0809E930
-_0809E97A:
- mov r1, r9
- ldrb r0, [r1]
- cmp r0, 0x4
- bne _0809E996
- asrs r0, r5, 24
- cmp r0, 0x4
- beq _0809E996
- ldr r0, _0809EA14 @ =0x02018000
- adds r0, 0x7C
- ldrh r0, [r0]
- mov r2, r8
- lsls r7, r2, 2
- cmp r0, 0
- beq _0809E9AC
-_0809E996:
- ldr r2, _0809EA18 @ =gTasks
- mov r3, r8
- lsls r1, r3, 2
- adds r0, r1, r3
- lsls r0, 3
- adds r0, r2
- movs r2, 0x22
- ldrsh r0, [r0, r2]
- adds r7, r1, 0
- cmp r0, 0x1
- bne _0809E9D0
-_0809E9AC:
- lsrs r4, r5, 24
- movs r0, 0x2
- adds r1, r4, 0
- bl sub_80A1488
- movs r0, 0x2
- adds r1, r4, 0
- bl sub_80A1654
- ldr r1, _0809EA18 @ =gTasks
- mov r3, r8
- adds r0, r7, r3
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0x22]
- movs r0, 0
- str r0, [sp]
-_0809E9D0:
- mov r1, r9
- ldrb r0, [r1]
- cmp r0, 0x4
- beq _0809E9FE
- asrs r0, r5, 24
- cmp r0, 0x4
- bne _0809E9FE
- ldr r0, _0809EA14 @ =0x02018000
- adds r0, 0x7C
- ldrh r0, [r0]
- cmp r0, 0
- bne _0809E9FE
- movs r4, 0x2
- negs r4, r4
- lsrs r5, 24
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80A1488
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80A1654
-_0809E9FE:
- mov r2, r9
- strb r6, [r2]
- ldr r0, _0809EA1C @ =0x02018079
- cmp r9, r0
- bne _0809EA20
- movs r0, 0
- bl sub_80A1C30
- b _0809EA26
- .align 2, 0
-_0809EA10: .4byte 0x02018010
-_0809EA14: .4byte 0x02018000
-_0809EA18: .4byte gTasks
-_0809EA1C: .4byte 0x02018079
-_0809EA20:
- movs r0, 0x1
- bl sub_80A1C30
-_0809EA26:
- ldr r3, [sp]
- cmp r3, 0
- beq _0809EA34
- ldr r0, _0809EA4C @ =0x02018010
- mov r1, r9
- bl sub_80A0428
-_0809EA34:
- mov r0, r8
- bl sub_80A2078
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0809EA4C: .4byte 0x02018010
- thumb_func_end sub_809E8F0
-
- thumb_func_start sub_809EA50
-sub_809EA50: @ 809EA50
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r0, 0x5
- bl PlaySE
- ldr r4, _0809EABC @ =0x02018000
- adds r1, r4, 0
- adds r1, 0x79
- movs r0, 0
- strb r0, [r1]
- movs r0, 0x2
- movs r1, 0
- bl sub_80A1488
- movs r0, 0x2
- movs r1, 0
- bl sub_80A1654
- adds r0, r4, 0
- adds r0, 0x7B
- ldrb r0, [r0]
- cmp r0, 0
- bne _0809EA8C
- adds r1, r4, 0
- adds r1, 0x7F
- movs r0, 0x5
- strb r0, [r1]
- bl sub_80A0DD0
-_0809EA8C:
- movs r0, 0
- bl sub_80A16CC
- adds r0, r4, 0
- adds r0, 0x10
- bl sub_80A029C
- movs r0, 0x9
- bl sub_80A1A30
- ldr r1, _0809EAC0 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _0809EAC4 @ =sub_809E3FC
- str r1, [r0]
- adds r0, r5, 0
- bl sub_80A2078
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0809EABC: .4byte 0x02018000
-_0809EAC0: .4byte gTasks
-_0809EAC4: .4byte sub_809E3FC
- thumb_func_end sub_809EA50
-
- thumb_func_start sub_809EAC8
-sub_809EAC8: @ 809EAC8
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r6, _0809EB34 @ =0x02018000
- adds r0, r6, 0
- adds r0, 0x79
- ldrb r0, [r0]
- cmp r0, 0x4
- beq _0809EAEE
- movs r4, 0x2
- negs r4, r4
- adds r0, r4, 0
- movs r1, 0
- bl sub_80A1488
- adds r0, r4, 0
- movs r1, 0
- bl sub_80A1654
-_0809EAEE:
- movs r0, 0x9
- bl sub_80A1B1C
- movs r0, 0x1
- bl sub_80A16CC
- movs r0, 0xF
- movs r1, 0xC
- movs r2, 0x1C
- movs r3, 0xD
- bl MenuZeroFillWindowRect
- movs r0, 0xB
- movs r1, 0xF
- movs r2, 0x1C
- movs r3, 0x12
- bl MenuZeroFillWindowRect
- adds r1, r6, 0
- adds r1, 0x7F
- movs r0, 0x6
- strb r0, [r1]
- bl sub_80A0DD0
- ldr r1, _0809EB38 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _0809EB3C @ =sub_809E19C
- str r1, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0809EB34: .4byte 0x02018000
-_0809EB38: .4byte gTasks
-_0809EB3C: .4byte sub_809E19C
- thumb_func_end sub_809EAC8
-
- thumb_func_start sub_809EB40
-sub_809EB40: @ 809EB40
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _0809EB6C @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _0809EB74
- cmp r0, 0x5
- bne _0809EBA4
- movs r0, 0x9
- bl sub_80A1A30
- movs r0, 0
- strh r0, [r4, 0x8]
- ldr r0, _0809EB70 @ =sub_809E260
- str r0, [r4]
- b _0809EBB4
- .align 2, 0
-_0809EB6C: .4byte gTasks
-_0809EB70: .4byte sub_809E260
-_0809EB74:
- ldr r4, _0809EBBC @ =0x02018000
- adds r6, r4, 0
- adds r6, 0x79
- strb r0, [r6]
- adds r0, r4, 0
- adds r0, 0x7C
- ldrh r0, [r0]
- cmp r0, 0
- beq _0809EB96
- movs r0, 0xA
- movs r1, 0
- bl sub_80A1488
- ldrb r1, [r6]
- movs r0, 0xA
- bl sub_80A1654
-_0809EB96:
- movs r0, 0
- bl sub_80A16CC
- adds r0, r4, 0
- adds r0, 0x10
- bl sub_80A029C
-_0809EBA4:
- ldr r0, _0809EBC0 @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
-_0809EBB4:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0809EBBC: .4byte 0x02018000
-_0809EBC0: .4byte gTasks
- thumb_func_end sub_809EB40
-
- thumb_func_start sub_809EBC4
-sub_809EBC4: @ 809EBC4
- push {r4,lr}
- ldr r4, _0809EC28 @ =0x02018000
- ldrb r0, [r4, 0xB]
- cmp r0, 0
- beq _0809EC22
- bl sub_80A0EE8
- ldr r0, _0809EC2C @ =gUnknown_030042C0
- movs r2, 0x80
- lsls r2, 1
- adds r1, r2, 0
- strh r1, [r0]
- ldrb r0, [r4, 0xB]
- cmp r0, 0x1
- bne _0809EBF4
- ldr r2, _0809EC30 @ =REG_BG1CNT
- ldrh r1, [r2]
- ldr r0, _0809EC34 @ =0x0000e0ff
- ands r0, r1
- movs r3, 0x80
- lsls r3, 4
- adds r1, r3, 0
- adds r0, r1
- strh r0, [r2]
-_0809EBF4:
- ldrb r3, [r4, 0xB]
- cmp r3, 0x2
- bne _0809EC0C
- ldr r2, _0809EC30 @ =REG_BG1CNT
- ldrh r1, [r2]
- ldr r0, _0809EC34 @ =0x0000e0ff
- ands r0, r1
- movs r4, 0xA0
- lsls r4, 4
- adds r1, r4, 0
- adds r0, r1
- strh r0, [r2]
-_0809EC0C:
- cmp r3, 0x3
- bne _0809EC22
- ldr r2, _0809EC30 @ =REG_BG1CNT
- ldrh r1, [r2]
- ldr r0, _0809EC34 @ =0x0000e0ff
- ands r0, r1
- movs r3, 0xC0
- lsls r3, 4
- adds r1, r3, 0
- adds r0, r1
- strh r0, [r2]
-_0809EC22:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0809EC28: .4byte 0x02018000
-_0809EC2C: .4byte gUnknown_030042C0
-_0809EC30: .4byte REG_BG1CNT
-_0809EC34: .4byte 0x0000e0ff
- thumb_func_end sub_809EBC4
-
- thumb_func_start sub_809EC38
-sub_809EC38: @ 809EC38
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _0809EC5C @ =gTasks + 0x8
- adds r6, r0, r1
- movs r1, 0
- ldrsh r0, [r6, r1]
- cmp r0, 0x5
- bls _0809EC52
- b _0809EE64
-_0809EC52:
- lsls r0, 2
- ldr r1, _0809EC60 @ =_0809EC64
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0809EC5C: .4byte gTasks + 0x8
-_0809EC60: .4byte _0809EC64
- .align 2, 0
-_0809EC64:
- .4byte _0809EC7C
- .4byte _0809ED14
- .4byte _0809ED98
- .4byte _0809EE12
- .4byte _0809EE1C
- .4byte _0809EE4C
-_0809EC7C:
- ldr r1, _0809ECB8 @ =0x02018000
- adds r0, r1, 0
- adds r0, 0x80
- ldrb r0, [r0]
- cmp r0, 0
- bne _0809ECC8
- ldrb r3, [r1, 0xB]
- cmp r3, 0
- beq _0809EC98
- ldr r1, _0809ECBC @ =gUnknown_03004288
- movs r2, 0x80
- lsls r2, 1
- adds r0, r2, 0
- strh r0, [r1]
-_0809EC98:
- cmp r3, 0x1
- bne _0809ECAE
- ldr r2, _0809ECC0 @ =REG_BG2CNT
- ldrh r1, [r2]
- ldr r0, _0809ECC4 @ =0x0000e0ff
- ands r0, r1
- movs r4, 0x80
- lsls r4, 4
- adds r1, r4, 0
- adds r0, r1
- strh r0, [r2]
-_0809ECAE:
- cmp r3, 0x2
- beq _0809ECB4
- b _0809EE3A
-_0809ECB4:
- ldr r2, _0809ECC0 @ =REG_BG2CNT
- b _0809ECF6
- .align 2, 0
-_0809ECB8: .4byte 0x02018000
-_0809ECBC: .4byte gUnknown_03004288
-_0809ECC0: .4byte REG_BG2CNT
-_0809ECC4: .4byte 0x0000e0ff
-_0809ECC8:
- ldrb r3, [r1, 0xB]
- cmp r3, 0
- beq _0809ECD8
- ldr r1, _0809ED08 @ =gUnknown_030042C0
- movs r4, 0x80
- lsls r4, 1
- adds r0, r4, 0
- strh r0, [r1]
-_0809ECD8:
- cmp r3, 0x1
- bne _0809ECEE
- ldr r2, _0809ED0C @ =REG_BG1CNT
- ldrh r1, [r2]
- ldr r0, _0809ED10 @ =0x0000e0ff
- ands r0, r1
- movs r4, 0x80
- lsls r4, 4
- adds r1, r4, 0
- adds r0, r1
- strh r0, [r2]
-_0809ECEE:
- cmp r3, 0x2
- beq _0809ECF4
- b _0809EE3A
-_0809ECF4:
- ldr r2, _0809ED0C @ =REG_BG1CNT
-_0809ECF6:
- ldrh r1, [r2]
- ldr r0, _0809ED10 @ =0x0000e0ff
- ands r0, r1
- movs r3, 0xA0
- lsls r3, 4
- adds r1, r3, 0
- adds r0, r1
- strh r0, [r2]
- b _0809EE3A
- .align 2, 0
-_0809ED08: .4byte gUnknown_030042C0
-_0809ED0C: .4byte REG_BG1CNT
-_0809ED10: .4byte 0x0000e0ff
-_0809ED14:
- ldr r0, _0809ED48 @ =0x02018000
- adds r0, 0x80
- ldrb r0, [r0]
- cmp r0, 0
- bne _0809ED5C
- ldr r1, _0809ED4C @ =gUnknown_030042C0
- ldrh r0, [r1]
- subs r0, 0x20
- strh r0, [r1]
- lsls r0, 16
- cmp r0, 0
- beq _0809ED2E
- b _0809EE64
-_0809ED2E:
- ldr r3, _0809ED50 @ =REG_BG1CNT
- ldrh r2, [r3]
- ldr r1, _0809ED54 @ =0x0000fffc
- adds r0, r1, 0
- ands r0, r2
- adds r0, 0x2
- strh r0, [r3]
- ldr r2, _0809ED58 @ =REG_BG2CNT
- ldrh r0, [r2]
- ands r1, r0
- adds r1, 0x1
- strh r1, [r2]
- b _0809EE3A
- .align 2, 0
-_0809ED48: .4byte 0x02018000
-_0809ED4C: .4byte gUnknown_030042C0
-_0809ED50: .4byte REG_BG1CNT
-_0809ED54: .4byte 0x0000fffc
-_0809ED58: .4byte REG_BG2CNT
-_0809ED5C:
- ldr r1, _0809ED88 @ =gUnknown_03004288
- ldrh r0, [r1]
- subs r0, 0x20
- strh r0, [r1]
- lsls r0, 16
- cmp r0, 0
- beq _0809ED6C
- b _0809EE64
-_0809ED6C:
- ldr r3, _0809ED8C @ =REG_BG1CNT
- ldrh r2, [r3]
- ldr r1, _0809ED90 @ =0x0000fffc
- adds r0, r1, 0
- ands r0, r2
- adds r0, 0x1
- strh r0, [r3]
- ldr r2, _0809ED94 @ =REG_BG2CNT
- ldrh r0, [r2]
- ands r1, r0
- adds r1, 0x2
- strh r1, [r2]
- b _0809EE3A
- .align 2, 0
-_0809ED88: .4byte gUnknown_03004288
-_0809ED8C: .4byte REG_BG1CNT
-_0809ED90: .4byte 0x0000fffc
-_0809ED94: .4byte REG_BG2CNT
-_0809ED98:
- ldr r1, _0809EDD4 @ =0x02018000
- ldrb r3, [r1, 0xB]
- adds r0, r3, 0x1
- adds r2, r1, 0
- adds r2, 0x7E
- strb r0, [r2]
- ldrb r2, [r1, 0x8]
- subs r0, r2, 0x2
- lsls r0, 24
- lsrs r0, 24
- adds r5, r1, 0
- cmp r0, 0x1
- bhi _0809EDD8
- adds r1, 0x7F
- movs r0, 0
- strb r0, [r1]
- adds r4, r5, 0
- adds r4, 0x10
- adds r0, r4, 0
- bl sub_80A029C
- adds r5, 0x79
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80A0428
- ldrb r0, [r5]
- bl sub_80A00F4
- b _0809EE3A
- .align 2, 0
-_0809EDD4: .4byte 0x02018000
-_0809EDD8:
- lsls r0, r3, 24
- lsrs r0, 24
- cmp r0, 0x1
- bls _0809EDFA
- adds r0, r5, 0
- adds r0, 0x7B
- ldrb r0, [r0]
- cmp r0, 0
- beq _0809EDF2
- lsls r0, r2, 24
- lsrs r0, 24
- cmp r0, 0x4
- bne _0809EDFA
-_0809EDF2:
- adds r1, r5, 0
- adds r1, 0x7F
- movs r0, 0x6
- b _0809EE0E
-_0809EDFA:
- ldrb r0, [r5, 0xB]
- cmp r0, 0
- bne _0809EE08
- adds r1, r5, 0
- adds r1, 0x7F
- movs r0, 0x7
- b _0809EE0E
-_0809EE08:
- adds r1, r5, 0
- adds r1, 0x7F
- movs r0, 0
-_0809EE0E:
- strb r0, [r1]
- b _0809EE3A
-_0809EE12:
- bl sub_80A0EE8
- bl sub_80A0DD0
- b _0809EE3A
-_0809EE1C:
- ldr r0, _0809EE44 @ =gUnknown_083C1598
- ldr r4, _0809EE48 @ =0x02018000
- ldrb r1, [r4, 0xB]
- lsls r1, 2
- adds r1, r0
- adds r0, r4, 0
- adds r0, 0x10
- ldr r1, [r1]
- bl _call_via_r1
- adds r4, 0x80
- ldrb r0, [r4]
- movs r1, 0x1
- eors r0, r1
- strb r0, [r4]
-_0809EE3A:
- ldrh r0, [r6]
- adds r0, 0x1
- strh r0, [r6]
- b _0809EE64
- .align 2, 0
-_0809EE44: .4byte gUnknown_083C1598
-_0809EE48: .4byte 0x02018000
-_0809EE4C:
- bl sub_8055870
- cmp r0, 0x1
- beq _0809EE64
- ldr r1, _0809EE6C @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0809EE70 @ =gUnknown_03005CF0
- ldr r1, [r1]
- str r1, [r0]
-_0809EE64:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0809EE6C: .4byte gTasks
-_0809EE70: .4byte gUnknown_03005CF0
- thumb_func_end sub_809EC38
-
- thumb_func_start sub_809EE74
-sub_809EE74: @ 809EE74
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _0809EE98 @ =gTasks + 0x8
- adds r6, r0, r1
- movs r1, 0
- ldrsh r0, [r6, r1]
- cmp r0, 0x6
- bls _0809EE8E
- b _0809F0C0
-_0809EE8E:
- lsls r0, 2
- ldr r1, _0809EE9C @ =_0809EEA0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0809EE98: .4byte gTasks + 0x8
-_0809EE9C: .4byte _0809EEA0
- .align 2, 0
-_0809EEA0:
- .4byte _0809EEBC
- .4byte _0809EEE0
- .4byte _0809EFB4
- .4byte _0809EFF4
- .4byte _0809F06E
- .4byte _0809F078
- .4byte _0809F0A8
-_0809EEBC:
- ldr r0, _0809EECC @ =0x02018000
- adds r0, 0x80
- ldrb r1, [r0]
- cmp r1, 0
- bne _0809EED4
- ldr r0, _0809EED0 @ =gUnknown_03004288
- strh r1, [r0]
- b _0809F096
- .align 2, 0
-_0809EECC: .4byte 0x02018000
-_0809EED0: .4byte gUnknown_03004288
-_0809EED4:
- ldr r1, _0809EEDC @ =gUnknown_030042C0
- movs r0, 0
- strh r0, [r1]
- b _0809F096
- .align 2, 0
-_0809EEDC: .4byte gUnknown_030042C0
-_0809EEE0:
- ldr r1, _0809EF30 @ =0x02018000
- adds r0, r1, 0
- adds r0, 0x80
- ldrb r0, [r0]
- cmp r0, 0
- bne _0809EF4C
- ldrb r3, [r1, 0xB]
- cmp r3, 0x1
- bne _0809EF02
- ldr r2, _0809EF34 @ =REG_BG2CNT
- ldrh r1, [r2]
- ldr r0, _0809EF38 @ =0x0000e0fc
- ands r0, r1
- ldr r4, _0809EF3C @ =0x00000801
- adds r1, r4, 0
- adds r0, r1
- strh r0, [r2]
-_0809EF02:
- cmp r3, 0x2
- bne _0809EF16
- ldr r2, _0809EF34 @ =REG_BG2CNT
- ldrh r1, [r2]
- ldr r0, _0809EF38 @ =0x0000e0fc
- ands r0, r1
- ldr r4, _0809EF40 @ =0x00000a01
- adds r1, r4, 0
- adds r0, r1
- strh r0, [r2]
-_0809EF16:
- cmp r3, 0x3
- bne _0809EF2A
- ldr r2, _0809EF34 @ =REG_BG2CNT
- ldrh r1, [r2]
- ldr r0, _0809EF38 @ =0x0000e0fc
- ands r0, r1
- ldr r3, _0809EF44 @ =0x00000c01
- adds r1, r3, 0
- adds r0, r1
- strh r0, [r2]
-_0809EF2A:
- ldr r2, _0809EF48 @ =REG_BG1CNT
- b _0809EF8C
- .align 2, 0
-_0809EF30: .4byte 0x02018000
-_0809EF34: .4byte REG_BG2CNT
-_0809EF38: .4byte 0x0000e0fc
-_0809EF3C: .4byte 0x00000801
-_0809EF40: .4byte 0x00000a01
-_0809EF44: .4byte 0x00000c01
-_0809EF48: .4byte REG_BG1CNT
-_0809EF4C:
- ldrb r3, [r1, 0xB]
- cmp r3, 0x1
- bne _0809EF62
- ldr r2, _0809EF98 @ =REG_BG1CNT
- ldrh r1, [r2]
- ldr r0, _0809EF9C @ =0x0000e0fc
- ands r0, r1
- ldr r4, _0809EFA0 @ =0x00000801
- adds r1, r4, 0
- adds r0, r1
- strh r0, [r2]
-_0809EF62:
- cmp r3, 0x2
- bne _0809EF76
- ldr r2, _0809EF98 @ =REG_BG1CNT
- ldrh r1, [r2]
- ldr r0, _0809EF9C @ =0x0000e0fc
- ands r0, r1
- ldr r4, _0809EFA4 @ =0x00000a01
- adds r1, r4, 0
- adds r0, r1
- strh r0, [r2]
-_0809EF76:
- cmp r3, 0x3
- bne _0809EF8A
- ldr r2, _0809EF98 @ =REG_BG1CNT
- ldrh r1, [r2]
- ldr r0, _0809EF9C @ =0x0000e0fc
- ands r0, r1
- ldr r3, _0809EFA8 @ =0x00000c01
- adds r1, r3, 0
- adds r0, r1
- strh r0, [r2]
-_0809EF8A:
- ldr r2, _0809EFAC @ =REG_BG2CNT
-_0809EF8C:
- ldrh r1, [r2]
- ldr r0, _0809EFB0 @ =0x0000fffc
- ands r0, r1
- adds r0, 0x2
- strh r0, [r2]
- b _0809F096
- .align 2, 0
-_0809EF98: .4byte REG_BG1CNT
-_0809EF9C: .4byte 0x0000e0fc
-_0809EFA0: .4byte 0x00000801
-_0809EFA4: .4byte 0x00000a01
-_0809EFA8: .4byte 0x00000c01
-_0809EFAC: .4byte REG_BG2CNT
-_0809EFB0: .4byte 0x0000fffc
-_0809EFB4:
- ldr r0, _0809EFD4 @ =0x02018000
- adds r0, 0x80
- ldrb r0, [r0]
- cmp r0, 0
- bne _0809EFDC
- ldr r0, _0809EFD8 @ =gUnknown_03004288
- ldrh r1, [r0]
- adds r1, 0x20
- strh r1, [r0]
- lsls r1, 16
- movs r0, 0x80
- lsls r0, 17
- cmp r1, r0
- bne _0809F0C0
- b _0809F096
- .align 2, 0
-_0809EFD4: .4byte 0x02018000
-_0809EFD8: .4byte gUnknown_03004288
-_0809EFDC:
- ldr r0, _0809EFF0 @ =gUnknown_030042C0
- ldrh r1, [r0]
- adds r1, 0x20
- strh r1, [r0]
- lsls r1, 16
- movs r0, 0x80
- lsls r0, 17
- cmp r1, r0
- bne _0809F0C0
- b _0809F096
- .align 2, 0
-_0809EFF0: .4byte gUnknown_030042C0
-_0809EFF4:
- ldr r1, _0809F030 @ =0x02018000
- ldrb r3, [r1, 0xB]
- adds r0, r3, 0x1
- adds r2, r1, 0
- adds r2, 0x7E
- strb r0, [r2]
- ldrb r2, [r1, 0x8]
- subs r0, r2, 0x2
- lsls r0, 24
- lsrs r0, 24
- adds r5, r1, 0
- cmp r0, 0x1
- bhi _0809F034
- adds r1, 0x7F
- movs r0, 0
- strb r0, [r1]
- adds r4, r5, 0
- adds r4, 0x10
- adds r0, r4, 0
- bl sub_80A029C
- adds r5, 0x79
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80A0428
- ldrb r0, [r5]
- bl sub_80A00F4
- b _0809F096
- .align 2, 0
-_0809F030: .4byte 0x02018000
-_0809F034:
- lsls r0, r3, 24
- lsrs r0, 24
- cmp r0, 0x1
- bls _0809F056
- adds r0, r5, 0
- adds r0, 0x7B
- ldrb r0, [r0]
- cmp r0, 0
- beq _0809F04E
- lsls r0, r2, 24
- lsrs r0, 24
- cmp r0, 0x4
- bne _0809F056
-_0809F04E:
- adds r1, r5, 0
- adds r1, 0x7F
- movs r0, 0x6
- b _0809F06A
-_0809F056:
- ldrb r0, [r5, 0xB]
- cmp r0, 0
- bne _0809F064
- adds r1, r5, 0
- adds r1, 0x7F
- movs r0, 0x7
- b _0809F06A
-_0809F064:
- adds r1, r5, 0
- adds r1, 0x7F
- movs r0, 0
-_0809F06A:
- strb r0, [r1]
- b _0809F096
-_0809F06E:
- bl sub_80A0EE8
- bl sub_80A0DD0
- b _0809F096
-_0809F078:
- ldr r0, _0809F0A0 @ =gUnknown_083C1598
- ldr r4, _0809F0A4 @ =0x02018000
- ldrb r1, [r4, 0xB]
- lsls r1, 2
- adds r1, r0
- adds r0, r4, 0
- adds r0, 0x10
- ldr r1, [r1]
- bl _call_via_r1
- adds r4, 0x80
- ldrb r0, [r4]
- movs r1, 0x1
- eors r0, r1
- strb r0, [r4]
-_0809F096:
- ldrh r0, [r6]
- adds r0, 0x1
- strh r0, [r6]
- b _0809F0C0
- .align 2, 0
-_0809F0A0: .4byte gUnknown_083C1598
-_0809F0A4: .4byte 0x02018000
-_0809F0A8:
- bl sub_8055870
- cmp r0, 0x1
- beq _0809F0C0
- ldr r1, _0809F0C8 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0809F0CC @ =gUnknown_03005CF0
- ldr r1, [r1]
- str r1, [r0]
-_0809F0C0:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0809F0C8: .4byte gTasks
-_0809F0CC: .4byte gUnknown_03005CF0
- thumb_func_end sub_809EE74
-
- thumb_func_start sub_809F0D0
-sub_809F0D0: @ 809F0D0
- push {r4-r7,lr}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r4, 24
- lsrs r4, 24
- ldr r1, _0809F110 @ =0x02018000
- ldrb r0, [r1, 0xB]
- adds r0, r4
- movs r5, 0
- strb r0, [r1, 0xB]
- ldr r2, _0809F114 @ =gUnknown_03005CF0
- ldr r1, _0809F118 @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r6, r0, r1
- ldr r0, [r6]
- str r0, [r2]
- bl sub_809FBE4
- strh r5, [r6, 0x8]
- lsls r4, 24
- asrs r4, 24
- movs r0, 0x1
- negs r0, r0
- cmp r4, r0
- bne _0809F120
- ldr r0, _0809F11C @ =sub_809EC38
- str r0, [r6]
- b _0809F12A
- .align 2, 0
-_0809F110: .4byte 0x02018000
-_0809F114: .4byte gUnknown_03005CF0
-_0809F118: .4byte gTasks
-_0809F11C: .4byte sub_809EC38
-_0809F120:
- ldr r1, _0809F130 @ =sub_809EE74
- str r1, [r6]
- adds r0, r7, 0
- bl _call_via_r1
-_0809F12A:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0809F130: .4byte sub_809EE74
- thumb_func_end sub_809F0D0
-
- thumb_func_start sub_809F134
-sub_809F134: @ 809F134
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 24
- lsrs r5, r1, 24
- ldr r4, _0809F1AC @ =0x02018010
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _0809F1A6
- lsls r0, r5, 24
- asrs r5, r0, 24
- movs r0, 0x1
- negs r0, r0
- cmp r5, r0
- bne _0809F168
- adds r0, r4, 0
- subs r0, 0x10
- adds r1, r4, 0
- adds r1, 0x65
- ldrb r0, [r0, 0xB]
- ldrb r1, [r1]
- cmp r0, r1
- beq _0809F1A6
-_0809F168:
- cmp r5, 0x1
- bne _0809F17C
- adds r0, r4, 0
- subs r0, 0x10
- adds r1, r4, 0
- adds r1, 0x66
- ldrb r0, [r0, 0xB]
- ldrb r1, [r1]
- cmp r0, r1
- beq _0809F1A6
-_0809F17C:
- ldr r0, _0809F1B0 @ =sub_80A1334
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- bne _0809F1A6
- ldr r0, _0809F1B4 @ =sub_80A1500
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- bne _0809F1A6
- movs r0, 0x5
- bl PlaySE
- adds r0, r6, 0
- adds r1, r5, 0
- bl sub_809F0D0
-_0809F1A6:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0809F1AC: .4byte 0x02018010
-_0809F1B0: .4byte sub_80A1334
-_0809F1B4: .4byte sub_80A1500
- thumb_func_end sub_809F134
-
- thumb_func_start sub_809F1B8
-sub_809F1B8: @ 809F1B8
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 24
- lsrs r4, r1, 24
- ldr r0, _0809F1E4 @ =0x02018000
- ldrb r1, [r0, 0xE]
- adds r2, r0, 0
- cmp r1, 0x1
- bne _0809F202
- ldrb r0, [r2, 0xB]
- cmp r0, 0
- beq _0809F1E8
- lsls r1, r4, 24
- asrs r1, 24
- movs r4, 0x1
- eors r1, r4
- negs r0, r1
- orrs r0, r1
- lsrs r4, r0, 31
- b _0809F1F4
- .align 2, 0
-_0809F1E4: .4byte 0x02018000
-_0809F1E8:
- lsls r0, r4, 24
- asrs r0, 24
- movs r4, 0x3
- cmp r0, 0x1
- bne _0809F1F4
- movs r4, 0x2
-_0809F1F4:
- ldr r0, [r2]
- ldrb r1, [r2, 0x9]
- ldrb r2, [r2, 0xA]
- adds r3, r4, 0
- bl sub_8095DCC
- b _0809F22C
-_0809F202:
- bl sub_80F9344
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809F224
- bl sub_806B528
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809F224
- lsls r0, r4, 24
- asrs r0, 24
- bl sub_809F3CC
- b _0809F22C
-_0809F224:
- lsls r0, r4, 24
- asrs r0, 24
- bl sub_809F284
-_0809F22C:
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 24
- asrs r0, 24
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- beq _0809F270
- movs r0, 0x5
- bl PlaySE
- ldr r5, _0809F278 @ =0x02018010
- adds r0, r5, 0
- bl sub_80A1CD8
- lsls r0, 24
- cmp r0, 0
- beq _0809F258
- movs r0, 0x2
- negs r0, r0
- bl sub_80A12D0
-_0809F258:
- adds r0, r5, 0
- subs r0, 0x10
- strb r4, [r0, 0x9]
- ldr r1, _0809F27C @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, [r0]
- str r1, [r5, 0x74]
- ldr r1, _0809F280 @ =sub_809F43C
- str r1, [r0]
-_0809F270:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0809F278: .4byte 0x02018010
-_0809F27C: .4byte gTasks
-_0809F280: .4byte sub_809F43C
- thumb_func_end sub_809F1B8
-
- thumb_func_start sub_809F284
-sub_809F284: @ 809F284
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r0, _0809F2C0 @ =0x02018000
- ldr r7, [r0]
- movs r6, 0
- ldrb r1, [r0, 0xB]
- adds r4, r0, 0
- cmp r1, 0
- bne _0809F2C4
- lsls r0, r3, 24
- asrs r2, r0, 24
- movs r1, 0x1
- negs r1, r1
- adds r5, r0, 0
- cmp r2, r1
- bne _0809F2AC
- ldrb r0, [r4, 0x9]
- cmp r0, 0
- beq _0809F2E4
-_0809F2AC:
- asrs r0, r5, 24
- cmp r0, 0x1
- bne _0809F2BA
- ldrb r0, [r4, 0x9]
- ldrb r1, [r4, 0xA]
- cmp r0, r1
- bcs _0809F2E4
-_0809F2BA:
- ldrb r0, [r4, 0x9]
- adds r0, r3
- b _0809F304
- .align 2, 0
-_0809F2C0: .4byte 0x02018000
-_0809F2C4:
- lsls r5, r3, 24
-_0809F2C6:
- lsls r0, r6, 24
- asrs r0, 24
- asrs r1, r5, 24
- adds r0, r1
- lsls r0, 24
- ldr r4, _0809F2EC @ =0x02018000
- lsrs r6, r0, 24
- asrs r0, 24
- ldrb r2, [r4, 0x9]
- adds r1, r0, r2
- cmp r1, 0
- blt _0809F2E4
- ldrb r0, [r4, 0xA]
- cmp r1, r0
- ble _0809F2F0
-_0809F2E4:
- movs r0, 0x1
- negs r0, r0
- b _0809F308
- .align 2, 0
-_0809F2EC: .4byte 0x02018000
-_0809F2F0:
- movs r0, 0x64
- muls r0, r1
- adds r0, r7, r0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _0809F2C6
- ldrb r0, [r4, 0x9]
- adds r0, r6
-_0809F304:
- lsls r0, 24
- asrs r0, 24
-_0809F308:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_809F284
-
- thumb_func_start sub_809F310
-sub_809F310: @ 809F310
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _0809F33C
- ldr r0, _0809F338 @ =0x02018000
- ldrb r0, [r0, 0xB]
- cmp r0, 0
- bne _0809F332
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _0809F33C
-_0809F332:
- movs r0, 0x1
- b _0809F33E
- .align 2, 0
-_0809F338: .4byte 0x02018000
-_0809F33C:
- movs r0, 0
-_0809F33E:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_809F310
-
- thumb_func_start sub_809F344
-sub_809F344: @ 809F344
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
-_0809F34A:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x6
- beq _0809F37C
- ldr r0, _0809F374 @ =gUnknown_083C15A8
- adds r5, r4, r0
- ldrb r1, [r5]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0809F378 @ =gPlayerParty
- adds r0, r1
- bl sub_809F310
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809F34A
- movs r0, 0
- ldrsb r0, [r5, r0]
- b _0809F380
- .align 2, 0
-_0809F374: .4byte gUnknown_083C15A8
-_0809F378: .4byte gPlayerParty
-_0809F37C:
- movs r0, 0x1
- negs r0, r0
-_0809F380:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_809F344
-
- thumb_func_start sub_809F388
-sub_809F388: @ 809F388
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
-_0809F38E:
- cmp r4, 0
- beq _0809F3C0
- subs r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0809F3B8 @ =gUnknown_083C15A8
- adds r5, r4, r0
- ldrb r1, [r5]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0809F3BC @ =gPlayerParty
- adds r0, r1
- bl sub_809F310
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809F38E
- movs r0, 0
- ldrsb r0, [r5, r0]
- b _0809F3C4
- .align 2, 0
-_0809F3B8: .4byte gUnknown_083C15A8
-_0809F3BC: .4byte gPlayerParty
-_0809F3C0:
- movs r0, 0x1
- negs r0, r0
-_0809F3C4:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_809F388
-
- thumb_func_start sub_809F3CC
-sub_809F3CC: @ 809F3CC
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- movs r2, 0
- movs r1, 0
- ldr r3, _0809F41C @ =gUnknown_083C15A8
- ldr r4, _0809F420 @ =0x02018000
- ldrb r0, [r3]
- ldrb r5, [r4, 0x9]
- cmp r0, r5
- beq _0809F3FC
- adds r5, r3, 0
- adds r3, r4, 0
-_0809F3E6:
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x5
- bhi _0809F3FC
- adds r0, r1, r5
- ldrb r0, [r0]
- ldrb r4, [r3, 0x9]
- cmp r0, r4
- bne _0809F3E6
- adds r2, r1, 0
-_0809F3FC:
- lsls r0, r6, 24
- asrs r1, r0, 24
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _0809F40C
- cmp r2, 0
- beq _0809F414
-_0809F40C:
- cmp r1, 0x1
- bne _0809F424
- cmp r2, 0x5
- bne _0809F42C
-_0809F414:
- movs r0, 0x1
- negs r0, r0
- b _0809F436
- .align 2, 0
-_0809F41C: .4byte gUnknown_083C15A8
-_0809F420: .4byte 0x02018000
-_0809F424:
- adds r0, r2, 0
- bl sub_809F388
- b _0809F432
-_0809F42C:
- adds r0, r2, 0
- bl sub_809F344
-_0809F432:
- lsls r0, 24
- asrs r0, 24
-_0809F436:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_809F3CC
-
- thumb_func_start sub_809F43C
-sub_809F43C: @ 809F43C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0809F45C @ =gMain
- ldr r1, _0809F460 @ =0x0000043c
- adds r5, r0, r1
- ldrb r2, [r5]
- adds r3, r0, 0
- cmp r2, 0x8
- bls _0809F452
- b _0809F5CC
-_0809F452:
- lsls r0, r2, 2
- ldr r1, _0809F464 @ =_0809F468
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0809F45C: .4byte gMain
-_0809F460: .4byte 0x0000043c
-_0809F464: .4byte _0809F468
- .align 2, 0
-_0809F468:
- .4byte _0809F48C
- .4byte _0809F492
- .4byte _0809F4BC
- .4byte _0809F4D8
- .4byte _0809F4F4
- .4byte _0809F51C
- .4byte _0809F578
- .4byte _0809F584
- .4byte _0809F5A0
-_0809F48C:
- bl StopCryAndClearCrySongs
- b _0809F5B2
-_0809F492:
- ldr r0, _0809F4AC @ =0x02018000
- ldrb r1, [r0, 0xC]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0809F4B0 @ =gSprites
- adds r0, r1
- bl DestroySpriteAndFreeResources
- ldr r1, _0809F4B4 @ =gMain
- ldr r0, _0809F4B8 @ =0x0000043c
- adds r1, r0
- b _0809F5B8
- .align 2, 0
-_0809F4AC: .4byte 0x02018000
-_0809F4B0: .4byte gSprites
-_0809F4B4: .4byte gMain
-_0809F4B8: .4byte 0x0000043c
-_0809F4BC:
- ldr r0, _0809F4D0 @ =0x02018000
- ldrb r1, [r0, 0xD]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0809F4D4 @ =gSprites
- adds r0, r1
- bl DestroySpriteAndFreeResources
- b _0809F5B2
- .align 2, 0
-_0809F4D0: .4byte 0x02018000
-_0809F4D4: .4byte gSprites
-_0809F4D8:
- ldr r0, _0809F4EC @ =0x02018000
- adds r1, r0, 0
- adds r1, 0x74
- movs r2, 0
- strb r2, [r1]
- adds r0, 0x79
- strb r2, [r0]
- ldr r0, _0809F4F0 @ =0x0000043c
- adds r1, r3, r0
- b _0809F5B8
- .align 2, 0
-_0809F4EC: .4byte 0x02018000
-_0809F4F0: .4byte 0x0000043c
-_0809F4F4:
- ldr r4, _0809F518 @ =0x02018010
- adds r0, r4, 0
- bl sub_809F678
- adds r0, r4, 0
- bl sub_80A1CD8
- lsls r0, 24
- cmp r0, 0
- beq _0809F50E
- movs r0, 0x2
- bl sub_80A12D0
-_0809F50E:
- adds r0, r4, 0
- bl sub_80A0EA4
- b _0809F5B2
- .align 2, 0
-_0809F518: .4byte 0x02018010
-_0809F51C:
- ldr r4, _0809F558 @ =0x02018010
- adds r5, r4, 0
- adds r5, 0x64
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_809F6B4
- adds r1, r4, 0
- subs r1, 0x10
- strb r0, [r1, 0xC]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- beq _0809F5EA
- movs r0, 0
- strb r0, [r5]
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- adds r1, r0, 0
- cmp r1, 0
- beq _0809F560
- ldr r1, _0809F55C @ =gUnknown_030041B0
- movs r2, 0x80
- lsls r2, 1
- adds r0, r2, 0
- strh r0, [r1]
- b _0809F564
- .align 2, 0
-_0809F558: .4byte 0x02018010
-_0809F55C: .4byte gUnknown_030041B0
-_0809F560:
- ldr r0, _0809F56C @ =gUnknown_030041B0
- strh r1, [r0]
-_0809F564:
- ldr r1, _0809F570 @ =gMain
- ldr r0, _0809F574 @ =0x0000043c
- adds r1, r0
- b _0809F5B8
- .align 2, 0
-_0809F56C: .4byte gUnknown_030041B0
-_0809F570: .4byte gMain
-_0809F574: .4byte 0x0000043c
-_0809F578:
- ldr r0, _0809F580 @ =0x02018010
- bl sub_80A1DCC
- b _0809F5B2
- .align 2, 0
-_0809F580: .4byte 0x02018010
-_0809F584:
- ldr r0, _0809F594 @ =0x02018010
- bl sub_80A1DE8
- ldr r1, _0809F598 @ =gMain
- ldr r0, _0809F59C @ =0x0000043c
- adds r1, r0
- b _0809F5B8
- .align 2, 0
-_0809F594: .4byte 0x02018010
-_0809F598: .4byte gMain
-_0809F59C: .4byte 0x0000043c
-_0809F5A0:
- bl sub_809F5F8
- lsls r0, 24
- cmp r0, 0
- beq _0809F5EA
- ldr r0, _0809F5C0 @ =0x02018000
- adds r0, 0x74
- movs r1, 0
- strb r1, [r0]
-_0809F5B2:
- ldr r1, _0809F5C4 @ =gMain
- ldr r2, _0809F5C8 @ =0x0000043c
- adds r1, r2
-_0809F5B8:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _0809F5EA
- .align 2, 0
-_0809F5C0: .4byte 0x02018000
-_0809F5C4: .4byte gMain
-_0809F5C8: .4byte 0x0000043c
-_0809F5CC:
- bl sub_8055870
- cmp r0, 0x1
- beq _0809F5EA
- movs r0, 0
- strb r0, [r5]
- ldr r0, _0809F5F0 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _0809F5F4 @ =0x02018000
- adds r0, 0x84
- ldr r0, [r0]
- str r0, [r1]
-_0809F5EA:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0809F5F0: .4byte gTasks
-_0809F5F4: .4byte 0x02018000
- thumb_func_end sub_809F43C
-
- thumb_func_start sub_809F5F8
-sub_809F5F8: @ 809F5F8
- push {r4,lr}
- ldr r2, _0809F61C @ =0x02018000
- adds r4, r2, 0
- adds r4, 0x74
- ldrb r0, [r4]
- cmp r0, 0
- beq _0809F624
- ldr r0, _0809F620 @ =gUnknown_083C1588
- ldrb r1, [r2, 0xB]
- lsls r1, 2
- adds r1, r0
- adds r0, r2, 0
- adds r0, 0x10
- ldr r1, [r1]
- bl _call_via_r1
- movs r0, 0x1
- b _0809F634
- .align 2, 0
-_0809F61C: .4byte 0x02018000
-_0809F620: .4byte gUnknown_083C1588
-_0809F624:
- adds r0, r2, 0
- adds r0, 0x10
- bl sub_809FAC8
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- movs r0, 0
-_0809F634:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_809F5F8
-
- thumb_func_start sub_809F63C
-sub_809F63C: @ 809F63C
- push {r4,lr}
- adds r4, r0, 0
- bl sub_809FE80
- adds r0, r4, 0
- bl sub_809FC34
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_809F63C
-
- thumb_func_start sub_809F650
-sub_809F650: @ 809F650
- push {r4,lr}
- adds r4, r0, 0
- bl sub_80A00A4
- adds r0, r4, 0
- bl sub_809FF64
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_809F650
-
- thumb_func_start sub_809F664
-sub_809F664: @ 809F664
- push {r4,lr}
- adds r4, r0, 0
- bl sub_80A0390
- adds r0, r4, 0
- bl sub_80A015C
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_809F664
-
- thumb_func_start sub_809F678
-sub_809F678: @ 809F678
- push {lr}
- adds r3, r0, 0
- ldr r1, _0809F698 @ =0x02018000
- ldrb r0, [r1, 0xE]
- cmp r0, 0
- bne _0809F69C
- ldr r2, [r1]
- ldrb r1, [r1, 0x9]
- movs r0, 0x64
- muls r1, r0
- adds r1, r2
- adds r0, r3, 0
- movs r2, 0x64
- bl memcpy
- b _0809F6AE
- .align 2, 0
-_0809F698: .4byte 0x02018000
-_0809F69C:
- ldr r0, [r1]
- ldrb r2, [r1, 0x9]
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 4
- adds r0, r1
- adds r1, r3, 0
- bl sub_803B4B4
-_0809F6AE:
- pop {r0}
- bx r0
- thumb_func_end sub_809F678
-
- thumb_func_start sub_809F6B4
-sub_809F6B4: @ 809F6B4
- push {r4-r7,lr}
- sub sp, 0xC
- adds r4, r0, 0
- adds r7, r1, 0
- ldrb r0, [r7]
- cmp r0, 0
- beq _0809F6D2
- cmp r0, 0x1
- beq _0809F718
- adds r0, r4, 0
- bl sub_80A1808
- lsls r0, 24
- lsrs r0, 24
- b _0809F756
-_0809F6D2:
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- lsls r0, 16
- lsrs r5, r0, 16
- adds r0, r4, 0
- movs r1, 0
- bl GetMonData
- adds r6, r0, 0
- lsls r0, r5, 3
- ldr r1, _0809F70C @ =gMonFrontPicTable
- adds r0, r1
- ldr r1, _0809F710 @ =gMonFrontPicCoords
- lsls r2, r5, 2
- adds r2, r1
- ldrb r1, [r2]
- ldrb r2, [r2, 0x1]
- movs r3, 0x80
- lsls r3, 18
- ldr r4, _0809F714 @ =gUnknown_081FAF4C
- ldr r4, [r4, 0x4]
- str r4, [sp]
- str r5, [sp, 0x4]
- str r6, [sp, 0x8]
- bl sub_800D334
- b _0809F74E
- .align 2, 0
-_0809F70C: .4byte gMonFrontPicTable
-_0809F710: .4byte gMonFrontPicCoords
-_0809F714: .4byte gUnknown_081FAF4C
-_0809F718:
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- lsls r0, 16
- lsrs r5, r0, 16
- adds r0, r4, 0
- movs r1, 0
- bl GetMonData
- adds r6, r0, 0
- adds r0, r4, 0
- movs r1, 0x1
- bl GetMonData
- adds r1, r0, 0
- adds r0, r5, 0
- adds r2, r6, 0
- bl sub_80409C8
- adds r4, r0, 0
- bl LoadCompressedObjectPalette
- ldrh r0, [r4, 0x4]
- movs r1, 0x1
- bl GetMonSpriteTemplate_803C56C
-_0809F74E:
- ldrb r0, [r7]
- adds r0, 0x1
- strb r0, [r7]
- movs r0, 0xFF
-_0809F756:
- add sp, 0xC
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_809F6B4
-
- thumb_func_start sub_809F760
-sub_809F760: @ 809F760
- push {lr}
- lsls r1, 24
- lsrs r1, 24
- adds r2, r1, 0
- cmp r1, 0x1
- beq _0809F780
- cmp r1, 0x1
- bgt _0809F776
- cmp r1, 0
- beq _0809F77C
- b _0809F788
-_0809F776:
- cmp r2, 0x2
- beq _0809F784
- b _0809F788
-_0809F77C:
- movs r1, 0xD
- b _0809F78A
-_0809F780:
- movs r1, 0xE
- b _0809F78A
-_0809F784:
- movs r1, 0xF
- b _0809F78A
-_0809F788:
- movs r1, 0x10
-_0809F78A:
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- pop {r1}
- bx r1
- thumb_func_end sub_809F760
-
- thumb_func_start sub_809F798
-sub_809F798: @ 809F798
- push {lr}
- lsls r1, 24
- lsrs r1, 24
- adds r2, r1, 0
- cmp r1, 0x1
- beq _0809F7B8
- cmp r1, 0x1
- bgt _0809F7AE
- cmp r1, 0
- beq _0809F7B4
- b _0809F7C0
-_0809F7AE:
- cmp r2, 0x2
- beq _0809F7BC
- b _0809F7C0
-_0809F7B4:
- movs r1, 0x11
- b _0809F7C2
-_0809F7B8:
- movs r1, 0x12
- b _0809F7C2
-_0809F7BC:
- movs r1, 0x13
- b _0809F7C2
-_0809F7C0:
- movs r1, 0x14
-_0809F7C2:
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- pop {r1}
- bx r1
- thumb_func_end sub_809F798
-
- thumb_func_start sub_809F7D0
-sub_809F7D0: @ 809F7D0
- push {r4,lr}
- sub sp, 0x64
- mov r0, sp
- bl sub_809F678
- ldr r4, _0809F804 @ =0x02018000
- adds r0, r4, 0
- adds r0, 0x79
- ldrb r1, [r0]
- mov r0, sp
- bl sub_809F760
- lsls r0, 16
- lsrs r0, 16
- bl sub_806F7B8
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809F808
- ldrb r0, [r4, 0x8]
- cmp r0, 0x3
- beq _0809F808
- movs r0, 0
- b _0809F80A
- .align 2, 0
-_0809F804: .4byte 0x02018000
-_0809F808:
- movs r0, 0x1
-_0809F80A:
- add sp, 0x64
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_809F7D0
-
- thumb_func_start sub_809F814
-sub_809F814: @ 809F814
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r6, r0, 3
- ldr r0, _0809F83C @ =gTasks + 0x8
- mov r8, r0
- adds r4, r6, r0
- ldrh r1, [r4, 0x1C]
- movs r2, 0x1C
- ldrsh r0, [r4, r2]
- cmp r0, 0x3
- bgt _0809F840
- adds r0, r1, 0x1
- strh r0, [r4, 0x1C]
- b _0809F9C0
- .align 2, 0
-_0809F83C: .4byte gTasks + 0x8
-_0809F840:
- ldr r7, _0809F874 @ =gMain
- ldrh r1, [r7, 0x2E]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0809F880
- mov r0, r8
- subs r0, 0x8
- adds r0, r6, r0
- ldr r1, _0809F878 @ =sub_809E260
- str r1, [r0]
- movs r0, 0x4
- strh r0, [r4]
- movs r0, 0x1
- strh r0, [r4, 0x1A]
- ldr r2, _0809F87C @ =0x02018000
- ldrh r0, [r4, 0x1E]
- adds r2, 0x79
- strb r0, [r2]
- movs r1, 0x1
- negs r1, r1
- adds r0, r5, 0
- bl sub_809E8F0
- b _0809F9C0
- .align 2, 0
-_0809F874: .4byte gMain
-_0809F878: .4byte sub_809E260
-_0809F87C: .4byte 0x02018000
-_0809F880:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0809F8B4
- mov r0, r8
- subs r0, 0x8
- adds r0, r6, r0
- ldr r1, _0809F8AC @ =sub_809E260
- str r1, [r0]
- movs r0, 0x4
- strh r0, [r4]
- movs r0, 0x1
- strh r0, [r4, 0x1A]
- ldr r2, _0809F8B0 @ =0x02018000
- ldrh r0, [r4, 0x1E]
- adds r2, 0x79
- strb r0, [r2]
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_809E8F0
- b _0809F9C0
- .align 2, 0
-_0809F8AC: .4byte sub_809E260
-_0809F8B0: .4byte 0x02018000
-_0809F8B4:
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- bne _0809F8C8
- bl sub_80F9284
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809F918
-_0809F8C8:
- ldr r1, _0809F90C @ =0x02018000
- ldrb r0, [r1, 0xB]
- cmp r0, 0x2
- beq _0809F9C0
- cmp r0, 0x3
- bne _0809F8F4
- adds r0, r1, 0
- adds r0, 0x79
- ldrb r0, [r0]
- cmp r0, 0x4
- bne _0809F8E8
- adds r0, r1, 0
- adds r0, 0x7C
- ldrh r0, [r0]
- cmp r0, 0
- beq _0809F8F4
-_0809F8E8:
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x9
- movs r3, 0x12
- bl MenuZeroFillWindowRect
-_0809F8F4:
- ldr r1, _0809F910 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _0809F914 @ =sub_809E260
- str r1, [r0]
- movs r1, 0x1
- negs r1, r1
- adds r0, r5, 0
- b _0809F972
- .align 2, 0
-_0809F90C: .4byte 0x02018000
-_0809F910: .4byte gTasks
-_0809F914: .4byte sub_809E260
-_0809F918:
- ldrh r1, [r7, 0x2E]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- bne _0809F92E
- bl sub_80F9284
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _0809F994
-_0809F92E:
- ldr r1, _0809F988 @ =0x02018000
- adds r2, r1, 0
- adds r2, 0x76
- ldrb r0, [r1, 0xB]
- ldrb r2, [r2]
- cmp r0, r2
- beq _0809F9C0
- cmp r0, 0x2
- bne _0809F960
- adds r0, r1, 0
- adds r0, 0x79
- ldrb r0, [r0]
- cmp r0, 0x4
- bne _0809F954
- adds r0, r1, 0
- adds r0, 0x7C
- ldrh r0, [r0]
- cmp r0, 0
- beq _0809F960
-_0809F954:
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x9
- movs r3, 0x12
- bl MenuZeroFillWindowRect
-_0809F960:
- ldr r1, _0809F98C @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _0809F990 @ =sub_809E260
- str r1, [r0]
- adds r0, r5, 0
- movs r1, 0x1
-_0809F972:
- bl sub_809F134
- ldrb r1, [r4, 0x1E]
- movs r0, 0x1
- bl sub_80A1488
- ldrb r1, [r4, 0x1E]
- movs r0, 0x1
- bl sub_80A1654
- b _0809F9C0
- .align 2, 0
-_0809F988: .4byte 0x02018000
-_0809F98C: .4byte gTasks
-_0809F990: .4byte sub_809E260
-_0809F994:
- ldrh r1, [r7, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0809F9A6
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0809F9C0
-_0809F9A6:
- ldrb r1, [r4, 0x1E]
- movs r0, 0x2
- bl sub_80A1488
- ldrb r1, [r4, 0x1E]
- movs r0, 0x2
- bl sub_80A1654
- mov r0, r8
- subs r0, 0x8
- adds r0, r6, r0
- ldr r1, _0809F9CC @ =sub_809E260
- str r1, [r0]
-_0809F9C0:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0809F9CC: .4byte sub_809E260
- thumb_func_end sub_809F814
-
- thumb_func_start sub_809F9D0
-sub_809F9D0: @ 809F9D0
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r6, _0809FA24 @ =gTasks + 0x8
- adds r2, r4, r6
- movs r0, 0
- strh r0, [r2, 0x1C]
- strh r1, [r2, 0x1E]
- movs r5, 0x2
- negs r5, r5
- adds r0, r5, 0
- movs r1, 0x4
- bl sub_80A1488
- adds r0, r5, 0
- movs r1, 0x4
- bl sub_80A1654
- movs r0, 0xB
- movs r1, 0xF
- movs r2, 0x1C
- movs r3, 0x12
- bl MenuZeroFillWindowRect
- ldr r0, _0809FA28 @ =gOtherText_CantForgetHMs
- movs r1, 0xB
- movs r2, 0xF
- bl MenuPrint
- subs r6, 0x8
- adds r4, r6
- ldr r0, _0809FA2C @ =sub_809F814
- str r0, [r4]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0809FA24: .4byte gTasks + 0x8
-_0809FA28: .4byte gOtherText_CantForgetHMs
-_0809FA2C: .4byte sub_809F814
- thumb_func_end sub_809F9D0
-
- thumb_func_start sub_809FA30
-sub_809FA30: @ 809FA30
- ldr r0, _0809FA38 @ =0x02018000
- adds r0, 0x7A
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_0809FA38: .4byte 0x02018000
- thumb_func_end sub_809FA30
-
- thumb_func_start GetStringCenterAlignXOffsetWithLetterSpacing
-GetStringCenterAlignXOffsetWithLetterSpacing: @ 809FA3C
- push {r4,lr}
- lsls r0, 24
- lsls r1, 24
- lsls r2, 24
- lsls r3, 24
- lsrs r2, 23
- lsrs r3, 18
- ldr r4, _0809FA70 @ =0x0600f000
- adds r3, r4
- adds r2, r3
- lsrs r1, 12
- lsrs r0, 23
- movs r4, 0x80
- lsls r4, 2
- adds r3, r4, 0
- adds r0, r3
- adds r1, r0
- adds r0, r1, 0
- adds r0, 0x80
- strh r0, [r2]
- adds r2, 0x40
- adds r1, 0x81
- strh r1, [r2]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0809FA70: .4byte 0x0600f000
- thumb_func_end GetStringCenterAlignXOffsetWithLetterSpacing
-
- thumb_func_start GetStringCenterAlignXOffset
-GetStringCenterAlignXOffset: @ 809FA74
- push {r4,lr}
- adds r4, r1, 0
- adds r3, r2, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r4, 24
- lsrs r4, 24
- lsls r3, 24
- lsrs r3, 24
- movs r1, 0xF
- adds r2, r4, 0
- bl GetStringCenterAlignXOffsetWithLetterSpacing
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end GetStringCenterAlignXOffset
-
- thumb_func_start sub_809FA94
-sub_809FA94: @ 809FA94
- push {lr}
- bl sub_8040CB4
- lsls r0, 24
- cmp r0, 0
- beq _0809FAB4
- ldr r0, _0809FAB0 @ =gUnknown_083C157E
- movs r1, 0x4
- movs r2, 0x2
- bl LoadPalette
- movs r0, 0x1
- b _0809FAC0
- .align 2, 0
-_0809FAB0: .4byte gUnknown_083C157E
-_0809FAB4:
- ldr r0, _0809FAC4 @ =gUnknown_083C157C
- movs r1, 0x4
- movs r2, 0x2
- bl LoadPalette
- movs r0, 0
-_0809FAC0:
- pop {r1}
- bx r1
- .align 2, 0
-_0809FAC4: .4byte gUnknown_083C157C
- thumb_func_end sub_809FA94
-
- thumb_func_start sub_809FAC8
-sub_809FAC8: @ 809FAC8
- push {r4-r6,lr}
- sub sp, 0xC
- adds r5, r0, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- beq _0809FB28
- movs r0, 0x1
- movs r1, 0x2
- movs r2, 0x4
- movs r3, 0x3
- bl MenuZeroFillWindowRect
- movs r0, 0x3
- movs r1, 0x10
- movs r2, 0x9
- movs r3, 0x11
- bl MenuZeroFillWindowRect
- movs r0, 0
- movs r1, 0xC
- movs r2, 0xB
- movs r3, 0xF
- bl MenuZeroFillWindowRect
- ldr r4, _0809FB20 @ =gStringVar1
- adds r0, r5, 0
- adds r1, r4, 0
- bl GetMonNickname
- adds r0, r4, 0
- movs r1, 0xD
- movs r2, 0x3
- movs r3, 0x10
- bl sub_80A1FF8
- ldr r0, _0809FB24 @ =gUnknown_083C157C
- movs r1, 0x4
- movs r2, 0x2
- bl LoadPalette
- b _0809FBD6
- .align 2, 0
-_0809FB20: .4byte gStringVar1
-_0809FB24: .4byte gUnknown_083C157C
-_0809FB28:
- adds r0, r5, 0
- bl sub_809FA94
- lsls r0, 24
- lsrs r6, r0, 24
- adds r0, r5, 0
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- bl SpeciesToPokedexNum
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r0, _0809FB6C @ =0x0000ffff
- cmp r4, r0
- beq _0809FB96
- cmp r6, 0
- bne _0809FB70
- movs r0, 0x2
- movs r1, 0x1
- movs r2, 0x2
- bl GetStringCenterAlignXOffset
- movs r0, 0x11
- str r0, [sp]
- movs r0, 0x10
- str r0, [sp, 0x4]
- movs r0, 0x1
- str r0, [sp, 0x8]
- adds r0, r4, 0
- movs r1, 0xD
- b _0809FB8C
- .align 2, 0
-_0809FB6C: .4byte 0x0000ffff
-_0809FB70:
- movs r0, 0x2
- movs r1, 0x8
- movs r2, 0x1
- movs r3, 0x2
- bl GetStringCenterAlignXOffsetWithLetterSpacing
- movs r0, 0x11
- str r0, [sp]
- movs r0, 0x10
- str r0, [sp, 0x4]
- movs r0, 0x1
- str r0, [sp, 0x8]
- adds r0, r4, 0
- movs r1, 0x8
-_0809FB8C:
- movs r2, 0x3
- movs r3, 0x2
- bl sub_80A1F98
- b _0809FBA2
-_0809FB96:
- movs r0, 0x1
- movs r1, 0x2
- movs r2, 0x4
- movs r3, 0x3
- bl MenuZeroFillWindowRect
-_0809FBA2:
- ldr r1, _0809FBE0 @ =gStringVar1
- adds r0, r1, 0
- movs r1, 0xD
- bl sub_80A1E58
- adds r1, r0, 0
- adds r0, r5, 0
- bl GetMonNickname
- adds r1, r0, 0
- movs r0, 0xFC
- strb r0, [r1]
- movs r0, 0x13
- strb r0, [r1, 0x1]
- movs r0, 0x3C
- strb r0, [r1, 0x2]
- movs r0, 0xFF
- strb r0, [r1, 0x3]
- ldr r0, _0809FBE0 @ =gStringVar1
- movs r1, 0x1
- movs r2, 0xC
- bl MenuPrint
- adds r0, r5, 0
- bl sub_80A0958
-_0809FBD6:
- add sp, 0xC
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0809FBE0: .4byte gStringVar1
- thumb_func_end sub_809FAC8
-
- thumb_func_start sub_809FBE4
-sub_809FBE4: @ 809FBE4
- push {r4,lr}
- movs r4, 0
-_0809FBE8:
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_80A1918
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x1B
- bls _0809FBE8
- movs r0, 0xB
- movs r1, 0x4
- movs r2, 0x1D
- movs r3, 0x12
- bl MenuZeroFillWindowRect
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_809FBE4
-
- thumb_func_start sub_809FC0C
-sub_809FC0C: @ 809FC0C
- push {lr}
- ldr r0, _0809FC30 @ =gOtherText_Type2
- movs r1, 0xB
- movs r2, 0x6
- bl MenuPrint
- movs r0, 0
- movs r1, 0x16
- movs r2, 0x4
- bl GetStringCenterAlignXOffset
- movs r0, 0x2
- movs r1, 0x17
- movs r2, 0x4
- bl GetStringCenterAlignXOffset
- pop {r0}
- bx r0
- .align 2, 0
-_0809FC30: .4byte gOtherText_Type2
- thumb_func_end sub_809FC0C
-
- thumb_func_start sub_809FC34
-sub_809FC34: @ 809FC34
- push {r4-r6,lr}
- sub sp, 0xC
- adds r6, r0, 0
- movs r4, 0
-_0809FC3C:
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_80A1918
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x4
- bls _0809FC3C
- movs r0, 0xB
- movs r1, 0x9
- movs r2, 0x1C
- movs r3, 0xC
- bl MenuZeroFillWindowRect
- adds r0, r6, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- beq _0809FD1C
- ldr r5, _0809FCD0 @ =gStringVar1
- adds r0, r5, 0
- movs r1, 0xD
- bl sub_80A1E58
- adds r5, r0, 0
- ldr r1, _0809FCD4 @ =gOtherText_OriginalTrainer
- bl StringCopy
- adds r5, r0, 0
- ldr r4, _0809FCD8 @ =gOtherText_FiveQuestionsAndSlash
- adds r1, r4, 0
- bl StringCopy
- adds r5, r0, 0
- movs r0, 0xFC
- strb r0, [r5]
- movs r0, 0x13
- strb r0, [r5, 0x1]
- movs r0, 0x4E
- strb r0, [r5, 0x2]
- movs r0, 0xFF
- strb r0, [r5, 0x3]
- ldr r0, _0809FCD0 @ =gStringVar1
- movs r1, 0xB
- movs r2, 0x4
- bl MenuPrint
- movs r0, 0x1
- str r0, [sp]
- adds r0, r4, 0
- movs r1, 0xD
- movs r2, 0xC1
- movs r3, 0x20
- bl sub_80A1EF8
- movs r0, 0x9
- movs r1, 0x78
- movs r2, 0x30
- movs r3, 0
- bl sub_80A198C
- adds r0, r6, 0
- movs r1, 0x20
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- adds r1, r0, 0
- cmp r0, 0x5
- bhi _0809FCE0
- ldr r0, _0809FCDC @ =gOtherText_EggAbout
- b _0809FCF2
- .align 2, 0
-_0809FCD0: .4byte gStringVar1
-_0809FCD4: .4byte gOtherText_OriginalTrainer
-_0809FCD8: .4byte gOtherText_FiveQuestionsAndSlash
-_0809FCDC: .4byte gOtherText_EggAbout
-_0809FCE0:
- cmp r0, 0xA
- bhi _0809FCEC
- ldr r0, _0809FCE8 @ =gOtherText_EggSoon
- b _0809FCF2
- .align 2, 0
-_0809FCE8: .4byte gOtherText_EggSoon
-_0809FCEC:
- cmp r1, 0x28
- bhi _0809FD00
- ldr r0, _0809FCFC @ =gOtherText_EggSomeTime
-_0809FCF2:
- movs r1, 0xB
- movs r2, 0x9
- bl MenuPrint
- b _0809FD0A
- .align 2, 0
-_0809FCFC: .4byte gOtherText_EggSomeTime
-_0809FD00:
- ldr r0, _0809FD18 @ =gOtherText_EggLongTime
- movs r1, 0xB
- movs r2, 0x9
- bl MenuPrint
-_0809FD0A:
- adds r0, r6, 0
- movs r1, 0xB
- movs r2, 0xE
- bl sub_80A0708
- b _0809FE4C
- .align 2, 0
-_0809FD18: .4byte gOtherText_EggLongTime
-_0809FD1C:
- ldr r4, _0809FD64 @ =gStringVar2
- adds r0, r6, 0
- movs r1, 0x7
- adds r2, r4, 0
- bl GetMonData
- adds r0, r6, 0
- movs r1, 0x3
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl ConvertInternationalString
- ldr r5, _0809FD68 @ =gStringVar1
- adds r0, r5, 0
- movs r1, 0xD
- bl sub_80A1E58
- adds r5, r0, 0
- ldr r1, _0809FD6C @ =gOtherText_OriginalTrainer
- bl StringCopy
- adds r5, r0, 0
- adds r0, r6, 0
- movs r1, 0x31
- bl GetMonData
- cmp r0, 0
- bne _0809FD70
- adds r0, r5, 0
- movs r1, 0x9
- b _0809FD74
- .align 2, 0
-_0809FD64: .4byte gStringVar2
-_0809FD68: .4byte gStringVar1
-_0809FD6C: .4byte gOtherText_OriginalTrainer
-_0809FD70:
- adds r0, r5, 0
- movs r1, 0xA
-_0809FD74:
- bl sub_80A1E58
- adds r5, r0, 0
- ldr r1, _0809FE54 @ =gStringVar2
- adds r0, r5, 0
- bl StringCopy
- adds r5, r0, 0
- movs r0, 0xFC
- strb r0, [r5]
- movs r0, 0x13
- strb r0, [r5, 0x1]
- movs r0, 0x4E
- strb r0, [r5, 0x2]
- movs r0, 0xFF
- strb r0, [r5, 0x3]
- ldr r0, _0809FE58 @ =gStringVar1
- movs r1, 0xB
- movs r2, 0x4
- bl MenuPrint
- adds r0, r6, 0
- movs r1, 0x1
- bl GetMonData
- ldr r1, _0809FE5C @ =0x0000ffff
- ands r1, r0
- movs r0, 0xC1
- str r0, [sp]
- movs r0, 0x20
- str r0, [sp, 0x4]
- movs r0, 0x1
- str r0, [sp, 0x8]
- adds r0, r1, 0
- movs r1, 0xD
- movs r2, 0x5
- movs r3, 0x2
- bl sub_80A1F98
- adds r0, r6, 0
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- ldr r2, _0809FE60 @ =gBaseStats
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r5, r1, r2
- ldrb r4, [r5, 0x6]
- adds r0, r4, 0
- movs r1, 0x78
- movs r2, 0x30
- movs r3, 0
- bl sub_80A198C
- ldrb r0, [r5, 0x7]
- cmp r4, r0
- beq _0809FDF8
- ldrb r0, [r5, 0x7]
- movs r1, 0xA0
- movs r2, 0x30
- movs r3, 0x1
- bl sub_80A198C
-_0809FDF8:
- adds r0, r6, 0
- movs r1, 0xB
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r6, 0
- movs r1, 0x2E
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl GetAbilityBySpecies
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0xD
- muls r0, r4
- ldr r1, _0809FE64 @ =gAbilityNames
- adds r0, r1
- movs r1, 0xD
- movs r2, 0xB
- movs r3, 0x9
- bl sub_80A1FF8
- ldr r0, _0809FE68 @ =gAbilityDescriptions
- lsls r4, 2
- adds r4, r0
- ldr r0, [r4]
- movs r1, 0xB
- movs r2, 0xB
- bl MenuPrint
- adds r0, r6, 0
- movs r1, 0xB
- movs r2, 0xE
- bl sub_80A0798
-_0809FE4C:
- add sp, 0xC
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0809FE54: .4byte gStringVar2
-_0809FE58: .4byte gStringVar1
-_0809FE5C: .4byte 0x0000ffff
-_0809FE60: .4byte gBaseStats
-_0809FE64: .4byte gAbilityNames
-_0809FE68: .4byte gAbilityDescriptions
- thumb_func_end sub_809FC34
-
- thumb_func_start sub_809FE6C
-sub_809FE6C: @ 809FE6C
- push {r4,lr}
- adds r4, r0, 0
- bl sub_809FC0C
- adds r0, r4, 0
- bl sub_809FC34
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_809FE6C
-
- thumb_func_start sub_809FE80
-sub_809FE80: @ 809FE80
- push {lr}
- movs r0, 0xE
- movs r1, 0x4
- movs r2, 0x12
- movs r3, 0x5
- bl MenuZeroFillWindowRect
- movs r0, 0x19
- movs r1, 0x4
- movs r2, 0x1E
- movs r3, 0x5
- bl MenuZeroFillWindowRect
- movs r0, 0xB
- movs r1, 0x9
- movs r2, 0x1C
- movs r3, 0xC
- bl MenuZeroFillWindowRect
- movs r0, 0xB
- movs r1, 0xE
- movs r2, 0x1C
- movs r3, 0x11
- bl MenuZeroFillWindowRect
- pop {r0}
- bx r0
- thumb_func_end sub_809FE80
-
- thumb_func_start sub_809FEB8
-sub_809FEB8: @ 809FEB8
- push {r4,lr}
- sub sp, 0x4
- ldr r0, _0809FF40 @ =gOtherText_ExpPoints
- movs r1, 0xD
- movs r2, 0xB
- movs r3, 0xE
- bl sub_80A1FF8
- ldr r0, _0809FF44 @ =gOtherText_NextLv
- movs r1, 0xD
- movs r2, 0xB
- movs r3, 0x10
- bl sub_80A1FF8
- ldr r0, _0809FF48 @ =gOtherText_Terminator18
- movs r1, 0x15
- movs r2, 0x10
- bl MenuPrint
- ldr r0, _0809FF4C @ =gOtherText_HP
- movs r4, 0x2A
- str r4, [sp]
- movs r1, 0xD
- movs r2, 0xB
- movs r3, 0x7
- bl sub_80A1F48
- ldr r0, _0809FF50 @ =gOtherText_Attack
- str r4, [sp]
- movs r1, 0xD
- movs r2, 0xB
- movs r3, 0x9
- bl sub_80A1F48
- ldr r0, _0809FF54 @ =gOtherText_Defense
- str r4, [sp]
- movs r1, 0xD
- movs r2, 0xB
- movs r3, 0xB
- bl sub_80A1F48
- ldr r0, _0809FF58 @ =gOtherText_SpAtk
- movs r4, 0x24
- str r4, [sp]
- movs r1, 0xD
- movs r2, 0x16
- movs r3, 0x7
- bl sub_80A1F48
- ldr r0, _0809FF5C @ =gOtherText_SpDef
- str r4, [sp]
- movs r1, 0xD
- movs r2, 0x16
- movs r3, 0x9
- bl sub_80A1F48
- ldr r0, _0809FF60 @ =gOtherText_Speed
- str r4, [sp]
- movs r1, 0xD
- movs r2, 0x16
- movs r3, 0xB
- bl sub_80A1F48
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0809FF40: .4byte gOtherText_ExpPoints
-_0809FF44: .4byte gOtherText_NextLv
-_0809FF48: .4byte gOtherText_Terminator18
-_0809FF4C: .4byte gOtherText_HP
-_0809FF50: .4byte gOtherText_Attack
-_0809FF54: .4byte gOtherText_Defense
-_0809FF58: .4byte gOtherText_SpAtk
-_0809FF5C: .4byte gOtherText_SpDef
-_0809FF60: .4byte gOtherText_Speed
- thumb_func_end sub_809FEB8
-
- thumb_func_start sub_809FF64
-sub_809FF64: @ 809FF64
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r4, 0
-_0809FF6A:
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_80A1918
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x4
- bls _0809FF6A
- adds r0, r5, 0
- movs r1, 0xC
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xB
- movs r2, 0x4
- bl sub_80A0BF4
- adds r0, r5, 0
- bl sub_80A0B88
- ldr r4, _080A008C @ =gStringVar1
- adds r0, r5, 0
- movs r1, 0x19
- bl GetMonData
- adds r1, r0, 0
- adds r0, r4, 0
- bl ConvertIntToDecimalString
- adds r0, r4, 0
- movs r1, 0x1D
- movs r2, 0xE
- bl MenuPrint_RightAligned
- adds r0, r5, 0
- movs r1, 0x17
- movs r2, 0x10
- bl sub_80A0C80
- adds r0, r5, 0
- movs r1, 0x3B
- bl GetMonData
- adds r1, r0, 0
- adds r0, r4, 0
- bl ConvertIntToDecimalString
- adds r0, r4, 0
- movs r1, 0x10
- movs r2, 0x9
- movs r3, 0x32
- bl sub_8072BD8
- adds r0, r5, 0
- movs r1, 0x3C
- bl GetMonData
- adds r1, r0, 0
- adds r0, r4, 0
- bl ConvertIntToDecimalString
- adds r0, r4, 0
- movs r1, 0x10
- movs r2, 0xB
- movs r3, 0x32
- bl sub_8072BD8
- adds r0, r5, 0
- movs r1, 0x3E
- bl GetMonData
- adds r1, r0, 0
- adds r0, r4, 0
- bl ConvertIntToDecimalString
- adds r0, r4, 0
- movs r1, 0x1B
- movs r2, 0x7
- movs r3, 0x12
- bl sub_8072BD8
- adds r0, r5, 0
- movs r1, 0x3F
- bl GetMonData
- adds r1, r0, 0
- adds r0, r4, 0
- bl ConvertIntToDecimalString
- adds r0, r4, 0
- movs r1, 0x1B
- movs r2, 0x9
- movs r3, 0x12
- bl sub_8072BD8
- adds r0, r5, 0
- movs r1, 0x3D
- bl GetMonData
- adds r1, r0, 0
- adds r0, r4, 0
- bl ConvertIntToDecimalString
- adds r0, r4, 0
- movs r1, 0x1B
- movs r2, 0xB
- movs r3, 0x12
- bl sub_8072BD8
- adds r0, r5, 0
- movs r1, 0x39
- bl GetMonData
- adds r1, r0, 0
- adds r0, r4, 0
- movs r2, 0x18
- movs r3, 0x1
- bl sub_8072C14
- adds r4, r0, 0
- movs r0, 0xBA
- strb r0, [r4]
- adds r4, 0x1
- adds r0, r5, 0
- movs r1, 0x3A
- bl GetMonData
- adds r1, r0, 0
- adds r0, r4, 0
- movs r2, 0x30
- movs r3, 0x1
- bl sub_8072C14
- ldr r0, _080A008C @ =gStringVar1
- movs r1, 0x7E
- movs r2, 0x38
- movs r3, 0x1
- bl MenuPrint_PixelCoords
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A008C: .4byte gStringVar1
- thumb_func_end sub_809FF64
-
- thumb_func_start sub_80A0090
-sub_80A0090: @ 80A0090
- push {r4,lr}
- adds r4, r0, 0
- bl sub_809FEB8
- adds r0, r4, 0
- bl sub_809FF64
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A0090
-
- thumb_func_start sub_80A00A4
-sub_80A00A4: @ 80A00A4
- push {lr}
- movs r0, 0xB
- movs r1, 0x4
- movs r2, 0x13
- movs r3, 0x5
- bl MenuZeroFillWindowRect
- movs r0, 0x10
- movs r1, 0x7
- movs r2, 0x15
- movs r3, 0x8
- bl MenuZeroFillWindowRect
- movs r0, 0x11
- movs r1, 0x9
- movs r2, 0x15
- movs r3, 0xC
- bl MenuZeroFillWindowRect
- movs r0, 0x1B
- movs r1, 0x7
- movs r2, 0x1D
- movs r3, 0xC
- bl MenuZeroFillWindowRect
- movs r0, 0x16
- movs r1, 0xE
- movs r2, 0x1C
- movs r3, 0xF
- bl MenuZeroFillWindowRect
- movs r0, 0x17
- movs r1, 0x10
- movs r2, 0x1C
- movs r3, 0x11
- bl MenuZeroFillWindowRect
- pop {r0}
- bx r0
- thumb_func_end sub_80A00A4
-
- thumb_func_start sub_80A00F4
-sub_80A00F4: @ 80A00F4
- push {lr}
- lsls r0, 24
- lsrs r1, r0, 24
- ldr r2, _080A012C @ =0x02018000
- adds r0, r2, 0
- adds r0, 0x7C
- ldrh r0, [r0]
- cmp r0, 0
- bne _080A010A
- cmp r1, 0x4
- beq _080A0150
-_080A010A:
- ldrb r0, [r2, 0xB]
- cmp r0, 0x2
- bne _080A0138
- ldr r0, _080A0130 @ =gOtherText_Power2
- movs r1, 0xD
- movs r2, 0x1
- movs r3, 0xF
- bl sub_80A1FF8
- ldr r0, _080A0134 @ =gOtherText_Accuracy2
- movs r1, 0xD
- movs r2, 0x1
- movs r3, 0x11
- bl sub_80A1FF8
- b _080A0150
- .align 2, 0
-_080A012C: .4byte 0x02018000
-_080A0130: .4byte gOtherText_Power2
-_080A0134: .4byte gOtherText_Accuracy2
-_080A0138:
- ldr r0, _080A0154 @ =gOtherText_Appeal2
- movs r1, 0xD
- movs r2, 0x1
- movs r3, 0xF
- bl sub_80A1FF8
- ldr r0, _080A0158 @ =gOtherText_Jam2
- movs r1, 0xD
- movs r2, 0x1
- movs r3, 0x11
- bl sub_80A1FF8
-_080A0150:
- pop {r0}
- bx r0
- .align 2, 0
-_080A0154: .4byte gOtherText_Appeal2
-_080A0158: .4byte gOtherText_Jam2
- thumb_func_end sub_80A00F4
-
- thumb_func_start sub_80A015C
-sub_80A015C: @ 80A015C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- mov r8, r0
- movs r7, 0
-_080A0168:
- mov r0, r8
- adds r1, r7, 0
- bl sub_809F760
- lsls r0, 16
- lsrs r6, r0, 16
- mov r0, r8
- adds r1, r7, 0
- bl sub_809F798
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
- cmp r6, 0
- bne _080A01B8
- adds r0, r7, 0
- movs r1, 0x1
- bl sub_80A1918
- lsls r4, r7, 25
- movs r0, 0x80
- lsls r0, 19
- adds r4, r0
- lsrs r4, 24
- ldr r0, _080A01B0 @ =gOtherText_OneDash
- movs r1, 0xD
- movs r2, 0xF
- adds r3, r4, 0
- bl sub_80A1FF8
- ldr r0, _080A01B4 @ =gOtherText_TwoDashes
- movs r1, 0x1A
- adds r2, r4, 0
- bl MenuPrint
- b _080A0276
- .align 2, 0
-_080A01B0: .4byte gOtherText_OneDash
-_080A01B4: .4byte gOtherText_TwoDashes
-_080A01B8:
- ldr r0, _080A01E0 @ =0x02018000
- ldrb r0, [r0, 0xB]
- cmp r0, 0x2
- bne _080A01E8
- ldr r1, _080A01E4 @ =gBattleMoves
- lsls r0, r6, 1
- adds r0, r6
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x2]
- lsls r4, r7, 1
- adds r2, r4, 0x4
- lsls r2, 27
- lsrs r2, 24
- movs r1, 0x57
- adds r3, r7, 0
- bl sub_80A198C
- b _080A020C
- .align 2, 0
-_080A01E0: .4byte 0x02018000
-_080A01E4: .4byte gBattleMoves
-_080A01E8:
- ldr r1, _080A0290 @ =gContestMoves
- lsls r0, r6, 3
- adds r0, r1
- ldrb r0, [r0, 0x1]
- lsls r0, 29
- lsrs r0, 5
- movs r1, 0x90
- lsls r1, 21
- adds r0, r1
- lsrs r0, 24
- lsls r4, r7, 1
- adds r2, r4, 0x4
- lsls r2, 27
- lsrs r2, 24
- movs r1, 0x57
- adds r3, r7, 0
- bl sub_80A198C
-_080A020C:
- movs r0, 0xD
- muls r0, r6
- ldr r1, _080A0294 @ =gMoveNames
- adds r0, r1
- adds r5, r4, 0x4
- lsls r5, 24
- lsrs r5, 24
- movs r1, 0xD
- movs r2, 0xF
- adds r3, r5, 0
- bl sub_80A1FF8
- movs r0, 0x1
- movs r1, 0x18
- adds r2, r5, 0
- bl GetStringCenterAlignXOffset
- mov r0, r8
- movs r1, 0x15
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r6, 0
- adds r2, r7, 0
- bl CalculatePPWithBonus
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r1, _080A0298 @ =gStringVar1
- adds r0, r1, 0
- mov r1, r9
- movs r2, 0xE
- movs r3, 0x1
- bl sub_8072C14
- adds r1, r0, 0
- movs r0, 0xBA
- strb r0, [r1]
- adds r1, 0x1
- adds r0, r1, 0
- adds r1, r4, 0
- movs r2, 0x20
- movs r3, 0x1
- bl sub_8072C14
- ldr r0, _080A0298 @ =gStringVar1
- movs r1, 0x19
- adds r2, r5, 0
- bl MenuPrint
-_080A0276:
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0x3
- bhi _080A0282
- b _080A0168
-_080A0282:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A0290: .4byte gContestMoves
-_080A0294: .4byte gMoveNames
-_080A0298: .4byte gStringVar1
- thumb_func_end sub_80A015C
-
- thumb_func_start sub_80A029C
-sub_80A029C: @ 80A029C
- push {r4,r5,lr}
- ldr r1, _080A02B8 @ =0x02018000
- adds r4, r1, 0
- adds r4, 0x7C
- ldrh r0, [r4]
- cmp r0, 0
- bne _080A02C0
- ldr r0, _080A02BC @ =gOtherText_CancelNoTerminator
- movs r1, 0xD
- movs r2, 0xF
- movs r3, 0xC
- bl sub_80A1FF8
- b _080A037E
- .align 2, 0
-_080A02B8: .4byte 0x02018000
-_080A02BC: .4byte gOtherText_CancelNoTerminator
-_080A02C0:
- ldrh r5, [r4]
- ldrb r0, [r1, 0xB]
- cmp r0, 0x2
- bne _080A02E4
- ldr r1, _080A02E0 @ =gBattleMoves
- lsls r4, r5, 1
- adds r0, r4, r5
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x2]
- movs r1, 0x57
- movs r2, 0x60
- movs r3, 0x4
- bl sub_80A198C
- b _080A0304
- .align 2, 0
-_080A02E0: .4byte gBattleMoves
-_080A02E4:
- ldr r1, _080A0320 @ =gContestMoves
- lsls r0, r5, 3
- adds r0, r1
- ldrb r0, [r0, 0x1]
- lsls r0, 29
- lsrs r0, 5
- movs r1, 0x90
- lsls r1, 21
- adds r0, r1
- lsrs r0, 24
- movs r1, 0x57
- movs r2, 0x60
- movs r3, 0x4
- bl sub_80A198C
- lsls r4, r5, 1
-_080A0304:
- ldr r0, _080A0324 @ =0x02018000
- ldrb r0, [r0, 0xB]
- cmp r0, 0x2
- bne _080A032C
- movs r0, 0xD
- muls r0, r5
- ldr r1, _080A0328 @ =gMoveNames
- adds r0, r1
- movs r1, 0xA
- movs r2, 0xF
- movs r3, 0xC
- bl sub_80A1FF8
- b _080A033E
- .align 2, 0
-_080A0320: .4byte gContestMoves
-_080A0324: .4byte 0x02018000
-_080A0328: .4byte gMoveNames
-_080A032C:
- movs r0, 0xD
- muls r0, r5
- ldr r1, _080A0384 @ =gMoveNames
- adds r0, r1
- movs r1, 0x9
- movs r2, 0xF
- movs r3, 0xC
- bl sub_80A1FF8
-_080A033E:
- movs r0, 0x1
- movs r1, 0x18
- movs r2, 0xC
- bl GetStringCenterAlignXOffset
- ldr r2, _080A0388 @ =gStringVar1
- ldr r1, _080A038C @ =gBattleMoves
- adds r0, r4, r5
- lsls r0, 2
- adds r0, r1
- ldrb r4, [r0, 0x4]
- adds r0, r2, 0
- adds r1, r4, 0
- movs r2, 0xE
- movs r3, 0x1
- bl sub_8072C14
- adds r2, r0, 0
- movs r0, 0xBA
- strb r0, [r2]
- adds r2, 0x1
- adds r0, r2, 0
- adds r1, r4, 0
- movs r2, 0x20
- movs r3, 0x1
- bl sub_8072C14
- ldr r0, _080A0388 @ =gStringVar1
- movs r1, 0x19
- movs r2, 0xC
- bl MenuPrint
-_080A037E:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A0384: .4byte gMoveNames
-_080A0388: .4byte gStringVar1
-_080A038C: .4byte gBattleMoves
- thumb_func_end sub_80A029C
-
- thumb_func_start sub_80A0390
-sub_80A0390: @ 80A0390
- push {r4,lr}
- movs r4, 0
-_080A0394:
- lsls r3, r4, 1
- adds r1, r3, 0x4
- lsls r1, 24
- lsrs r1, 24
- adds r3, 0x5
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0xF
- movs r2, 0x1C
- bl MenuZeroFillWindowRect
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x3
- bls _080A0394
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A0390
-
- thumb_func_start sub_80A03BC
-sub_80A03BC: @ 80A03BC
- push {lr}
- lsls r1, 24
- lsrs r1, 24
- cmp r1, 0x4
- beq _080A03D0
- bl sub_809F760
- lsls r0, 16
- lsrs r1, r0, 16
- b _080A03E0
-_080A03D0:
- ldr r0, _080A03E8 @ =0x02018000
- adds r2, r0, 0
- adds r2, 0x7C
- ldrh r0, [r2]
- ldr r1, _080A03EC @ =0x0000ffff
- cmp r0, 0
- beq _080A03E0
- adds r1, r0, 0
-_080A03E0:
- adds r0, r1, 0
- pop {r1}
- bx r1
- .align 2, 0
-_080A03E8: .4byte 0x02018000
-_080A03EC: .4byte 0x0000ffff
- thumb_func_end sub_80A03BC
-
- thumb_func_start sub_80A03F0
-sub_80A03F0: @ 80A03F0
- push {lr}
- ldrb r1, [r1]
- bl sub_80A03BC
- lsls r0, 16
- lsrs r1, r0, 16
- ldr r0, _080A0414 @ =0x02018000
- ldrb r0, [r0, 0xB]
- cmp r0, 0x2
- bne _080A041C
- adds r0, r1, 0
- bl sub_80A04CC
- ldr r0, _080A0418 @ =0x0000ffff
- bl sub_80A057C
- b _080A0422
- .align 2, 0
-_080A0414: .4byte 0x02018000
-_080A0418: .4byte 0x0000ffff
-_080A041C:
- adds r0, r1, 0
- bl sub_80A057C
-_080A0422:
- pop {r0}
- bx r0
- thumb_func_end sub_80A03F0
-
- thumb_func_start sub_80A0428
-sub_80A0428: @ 80A0428
- push {r4-r6,lr}
- adds r5, r0, 0
- adds r6, r1, 0
- ldrb r1, [r6]
- bl sub_80A03BC
- lsls r0, 16
- lsrs r4, r0, 16
- movs r0, 0xB
- movs r1, 0xF
- movs r2, 0x1C
- movs r3, 0x12
- bl MenuZeroFillWindowRect
- ldr r0, _080A0454 @ =0x02018000
- ldrb r0, [r0, 0xB]
- cmp r0, 0x2
- bne _080A0458
- adds r0, r4, 0
- bl sub_80A046C
- b _080A045E
- .align 2, 0
-_080A0454: .4byte 0x02018000
-_080A0458:
- adds r0, r4, 0
- bl sub_80A0498
-_080A045E:
- adds r0, r5, 0
- adds r1, r6, 0
- bl sub_80A03F0
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80A0428
-
- thumb_func_start sub_80A046C
-sub_80A046C: @ 80A046C
- push {lr}
- lsls r0, 16
- lsrs r1, r0, 16
- ldr r0, _080A0490 @ =0x0000ffff
- cmp r1, r0
- beq _080A048A
- ldr r0, _080A0494 @ =gMoveDescriptions
- subs r1, 0x1
- lsls r1, 2
- adds r1, r0
- ldr r0, [r1]
- movs r1, 0xB
- movs r2, 0xF
- bl MenuPrint
-_080A048A:
- pop {r0}
- bx r0
- .align 2, 0
-_080A0490: .4byte 0x0000ffff
-_080A0494: .4byte gMoveDescriptions
- thumb_func_end sub_80A046C
-
- thumb_func_start sub_80A0498
-sub_80A0498: @ 80A0498
- push {lr}
- lsls r0, 16
- lsrs r3, r0, 16
- ldr r0, _080A04C0 @ =0x0000ffff
- cmp r3, r0
- beq _080A04BC
- ldr r2, _080A04C4 @ =gUnknown_083CADD4
- ldr r1, _080A04C8 @ =gContestMoves
- lsls r0, r3, 3
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- movs r1, 0xB
- movs r2, 0xF
- bl MenuPrint
-_080A04BC:
- pop {r0}
- bx r0
- .align 2, 0
-_080A04C0: .4byte 0x0000ffff
-_080A04C4: .4byte gUnknown_083CADD4
-_080A04C8: .4byte gContestMoves
- thumb_func_end sub_80A0498
-
- thumb_func_start sub_80A04CC
-sub_80A04CC: @ 80A04CC
- push {r4,r5,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r0, _080A0504 @ =0x0000ffff
- cmp r4, r0
- beq _080A0572
- ldr r2, _080A0508 @ =gBattleMoves
- lsls r1, r4, 1
- adds r0, r1, r4
- lsls r0, 2
- adds r2, r0, r2
- ldrb r0, [r2, 0x1]
- adds r5, r1, 0
- cmp r0, 0x1
- bhi _080A0514
- ldr r0, _080A050C @ =gStringVar1
- ldr r1, _080A0510 @ =gOtherText_ThreeDashes2
- movs r2, 0x15
- movs r3, 0x1
- bl sub_8072C74
- ldr r0, _080A050C @ =gStringVar1
- movs r1, 0x7
- movs r2, 0xF
- bl MenuPrint
- b _080A052A
- .align 2, 0
-_080A0504: .4byte 0x0000ffff
-_080A0508: .4byte gBattleMoves
-_080A050C: .4byte gStringVar1
-_080A0510: .4byte gOtherText_ThreeDashes2
-_080A0514:
- ldr r0, _080A0550 @ =gStringVar1
- ldrb r1, [r2, 0x1]
- movs r2, 0x15
- movs r3, 0x1
- bl sub_8072C14
- ldr r0, _080A0550 @ =gStringVar1
- movs r1, 0x7
- movs r2, 0xF
- bl MenuPrint
-_080A052A:
- ldr r0, _080A0554 @ =gBattleMoves
- adds r1, r5, r4
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x3]
- cmp r0, 0
- bne _080A055C
- ldr r0, _080A0550 @ =gStringVar1
- ldr r1, _080A0558 @ =gOtherText_ThreeDashes2
- movs r2, 0x15
- movs r3, 0x1
- bl sub_8072C74
- ldr r0, _080A0550 @ =gStringVar1
- movs r1, 0x7
- movs r2, 0x11
- bl MenuPrint
- b _080A0572
- .align 2, 0
-_080A0550: .4byte gStringVar1
-_080A0554: .4byte gBattleMoves
-_080A0558: .4byte gOtherText_ThreeDashes2
-_080A055C:
- ldr r0, _080A0578 @ =gStringVar1
- ldrb r1, [r1, 0x3]
- movs r2, 0x15
- movs r3, 0x1
- bl sub_8072C14
- ldr r0, _080A0578 @ =gStringVar1
- movs r1, 0x7
- movs r2, 0x11
- bl MenuPrint
-_080A0572:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A0578: .4byte gStringVar1
- thumb_func_end sub_80A04CC
-
- thumb_func_start sub_80A057C
-sub_80A057C: @ 80A057C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r0, _080A0648 @ =0x06006800
- mov r8, r0
- ldr r0, _080A064C @ =0x0000ffff
- cmp r5, r0
- beq _080A063A
- ldr r1, _080A0650 @ =gContestEffects
- ldr r2, _080A0654 @ =gContestMoves
- lsls r3, r5, 3
- adds r0, r3, r2
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldrb r4, [r0, 0x1]
- mov r10, r2
- mov r9, r3
- cmp r4, 0xFF
- beq _080A05B8
- adds r0, r4, 0
- movs r1, 0xA
- bl __udivsi3
- lsls r0, 24
- lsrs r4, r0, 24
-_080A05B8:
- movs r2, 0
- movs r7, 0x3
- movs r6, 0xF3
- lsls r6, 2
-_080A05C0:
- ldr r3, _080A0658 @ =0x00001039
- cmp r4, 0xFF
- beq _080A05CC
- cmp r2, r4
- bcs _080A05CC
- adds r3, 0x1
-_080A05CC:
- lsrs r0, r2, 2
- lsls r0, 5
- adds r1, r2, 0
- ands r1, r7
- adds r1, r0
- lsls r1, 1
- add r1, r8
- adds r1, r6
- strh r3, [r1]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x7
- bls _080A05C0
- ldr r0, _080A064C @ =0x0000ffff
- cmp r5, r0
- beq _080A063A
- mov r0, r9
- add r0, r10
- ldrb r0, [r0]
- lsls r0, 2
- ldr r1, _080A0650 @ =gContestEffects
- adds r0, r1
- ldrb r4, [r0, 0x2]
- cmp r4, 0xFF
- beq _080A060C
- adds r0, r4, 0
- movs r1, 0xA
- bl __udivsi3
- lsls r0, 24
- lsrs r4, r0, 24
-_080A060C:
- movs r2, 0
- movs r6, 0x3
- ldr r5, _080A065C @ =0x0000044c
-_080A0612:
- ldr r3, _080A0660 @ =0x0000103d
- cmp r4, 0xFF
- beq _080A061E
- cmp r2, r4
- bcs _080A061E
- subs r3, 0x1
-_080A061E:
- lsrs r0, r2, 2
- lsls r0, 5
- adds r1, r2, 0
- ands r1, r6
- adds r1, r0
- lsls r1, 1
- add r1, r8
- adds r1, r5
- strh r3, [r1]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x7
- bls _080A0612
-_080A063A:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A0648: .4byte 0x06006800
-_080A064C: .4byte 0x0000ffff
-_080A0650: .4byte gContestEffects
-_080A0654: .4byte gContestMoves
-_080A0658: .4byte 0x00001039
-_080A065C: .4byte 0x0000044c
-_080A0660: .4byte 0x0000103d
- thumb_func_end sub_80A057C
-
- thumb_func_start sub_80A0664
-sub_80A0664: @ 80A0664
- push {r4-r6,lr}
- adds r6, r0, 0
- ldr r0, _080A06A0 @ =0x02018000
- ldr r1, [r0]
- ldr r0, _080A06A4 @ =gEnemyParty
- cmp r1, r0
- bne _080A06B0
- bl GetMultiplayerId
- movs r1, 0x1
- eors r0, r1
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080A06A8 @ =gLinkPlayers
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r0, r2, 0x4
- adds r0, r1, r0
- ldrh r5, [r0]
- ldr r4, _080A06AC @ =gStringVar1
- adds r2, 0x8
- adds r1, r2
- adds r0, r4, 0
- bl StringCopy
- adds r0, r4, 0
- bl StripExtCtrlCodes
- b _080A06C2
- .align 2, 0
-_080A06A0: .4byte 0x02018000
-_080A06A4: .4byte gEnemyParty
-_080A06A8: .4byte gLinkPlayers
-_080A06AC: .4byte gStringVar1
-_080A06B0:
- bl sub_80BFB94
- adds r5, r0, 0
- ldr r0, _080A06F0 @ =0x0000ffff
- ands r5, r0
- ldr r0, _080A06F4 @ =gStringVar1
- ldr r1, _080A06F8 @ =gSaveBlock2
- bl StringCopy
-_080A06C2:
- adds r0, r6, 0
- movs r1, 0x1
- bl GetMonData
- ldr r1, _080A06F0 @ =0x0000ffff
- ands r1, r0
- cmp r5, r1
- bne _080A06EA
- ldr r4, _080A06FC @ =gStringVar2
- adds r0, r6, 0
- movs r1, 0x7
- adds r2, r4, 0
- bl GetMonData
- ldr r0, _080A06F4 @ =gStringVar1
- adds r1, r4, 0
- bl StringCompareWithoutExtCtrlCodes
- cmp r0, 0
- beq _080A0700
-_080A06EA:
- movs r0, 0
- b _080A0702
- .align 2, 0
-_080A06F0: .4byte 0x0000ffff
-_080A06F4: .4byte gStringVar1
-_080A06F8: .4byte gSaveBlock2
-_080A06FC: .4byte gStringVar2
-_080A0700:
- movs r0, 0x1
-_080A0702:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80A0664
-
- thumb_func_start sub_80A0708
-sub_80A0708: @ 80A0708
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r4, r0, 0
- lsls r1, 24
- lsrs r5, r1, 24
- mov r9, r5
- lsls r2, 24
- lsrs r6, r2, 24
- mov r8, r6
- movs r1, 0x25
- bl GetMonData
- lsls r0, 24
- movs r1, 0xFF
- lsls r1, 24
- adds r0, r1
- lsrs r0, 24
- cmp r0, 0x2
- bls _080A073C
- ldr r0, _080A0738 @ =gOtherText_EggObtainedInTrade
- b _080A076E
- .align 2, 0
-_080A0738: .4byte gOtherText_EggObtainedInTrade
-_080A073C:
- adds r0, r4, 0
- movs r1, 0x23
- bl GetMonData
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0xFF
- bne _080A0754
- ldr r0, _080A0750 @ =gOtherText_EggNicePlace
- b _080A076E
- .align 2, 0
-_080A0750: .4byte gOtherText_EggNicePlace
-_080A0754:
- adds r0, r4, 0
- bl sub_80A0664
- lsls r0, 24
- cmp r0, 0
- bne _080A0768
- ldr r0, _080A0764 @ =gOtherText_EggObtainedInTrade
- b _080A076E
- .align 2, 0
-_080A0764: .4byte gOtherText_EggObtainedInTrade
-_080A0768:
- cmp r7, 0xFD
- bne _080A077C
- ldr r0, _080A0778 @ =gOtherText_EggHotSprings
-_080A076E:
- adds r1, r5, 0
- adds r2, r6, 0
- bl MenuPrint
- b _080A0786
- .align 2, 0
-_080A0778: .4byte gOtherText_EggHotSprings
-_080A077C:
- ldr r0, _080A0794 @ =gOtherText_EggDayCare
- mov r1, r9
- mov r2, r8
- bl MenuPrint
-_080A0786:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A0794: .4byte gOtherText_EggDayCare
- thumb_func_end sub_80A0708
-
- thumb_func_start sub_80A0798
-sub_80A0798: @ 80A0798
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r7, r0, 0
- lsls r1, 24
- lsrs r1, 24
- mov r9, r1
- lsls r2, 24
- lsrs r2, 24
- mov r8, r2
- ldr r5, _080A0838 @ =gStringVar4
- bl GetNature
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _080A083C @ =gNatureNames
- lsls r0, r4, 2
- adds r0, r1
- ldr r1, [r0]
- adds r0, r5, 0
- movs r2, 0xE
- bl sub_80A1E9C
- adds r5, r0, 0
- cmp r4, 0x5
- beq _080A07DA
- cmp r4, 0x15
- beq _080A07DA
- ldr r1, _080A0840 @ =gOtherText_Terminator4
- bl StringCopy
- adds r5, r0, 0
-_080A07DA:
- ldr r1, _080A0844 @ =gOtherText_Nature
- adds r0, r5, 0
- bl StringCopy
- adds r5, r0, 0
- adds r0, r7, 0
- bl sub_80A0664
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080A0898
- adds r0, r7, 0
- movs r1, 0x23
- bl GetMonData
- lsls r0, 24
- lsrs r6, r0, 24
- adds r0, r7, 0
- movs r1, 0x24
- bl GetMonData
- cmp r0, 0
- bne _080A0850
- adds r0, r5, 0
- movs r1, 0x5
- bl sub_80A203C
- adds r5, r0, 0
- movs r0, 0xFE
- strb r0, [r5]
- adds r5, 0x1
- ldr r4, _080A0848 @ =gStringVar1
- adds r0, r4, 0
- adds r1, r6, 0
- bl sub_80FC02C
- adds r0, r5, 0
- adds r1, r4, 0
- movs r2, 0xE
- bl sub_80A1E9C
- adds r5, r0, 0
- ldr r1, _080A084C @ =gOtherText_Egg2
- bl StringCopy
- b _080A0934
- .align 2, 0
-_080A0838: .4byte gStringVar4
-_080A083C: .4byte gNatureNames
-_080A0840: .4byte gOtherText_Terminator4
-_080A0844: .4byte gOtherText_Nature
-_080A0848: .4byte gStringVar1
-_080A084C: .4byte gOtherText_Egg2
-_080A0850:
- cmp r6, 0x57
- bhi _080A08E8
- adds r0, r7, 0
- movs r1, 0x24
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl sub_80A203C
- adds r5, r0, 0
- movs r0, 0xFE
- strb r0, [r5]
- adds r5, 0x1
- ldr r4, _080A0890 @ =gStringVar1
- adds r0, r4, 0
- adds r1, r6, 0
- bl sub_80FC02C
- adds r0, r5, 0
- adds r1, r4, 0
- movs r2, 0xE
- bl sub_80A1E9C
- adds r5, r0, 0
- ldr r1, _080A0894 @ =gOtherText_Met
- bl StringCopy
- b _080A0934
- .align 2, 0
-_080A0890: .4byte gStringVar1
-_080A0894: .4byte gOtherText_Met
-_080A0898:
- adds r0, r7, 0
- movs r1, 0x25
- bl GetMonData
- lsls r0, 24
- movs r1, 0xFF
- lsls r1, 24
- adds r0, r1
- lsrs r0, 24
- cmp r0, 0x2
- bhi _080A08E8
- adds r0, r7, 0
- movs r1, 0x23
- bl GetMonData
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0xFF
- bne _080A08E4
- adds r0, r7, 0
- movs r1, 0x24
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl sub_80A203C
- adds r5, r0, 0
- movs r0, 0xFE
- strb r0, [r5]
- adds r5, 0x1
- ldr r1, _080A08E0 @ =gOtherText_FatefulEncounter
- b _080A08F0
- .align 2, 0
-_080A08E0: .4byte gOtherText_FatefulEncounter
-_080A08E4:
- cmp r6, 0x57
- bls _080A08FC
-_080A08E8:
- movs r0, 0xFE
- strb r0, [r5]
- adds r5, 0x1
- ldr r1, _080A08F8 @ =gOtherText_ObtainedInTrade
-_080A08F0:
- adds r0, r5, 0
- bl StringCopy
- b _080A0934
- .align 2, 0
-_080A08F8: .4byte gOtherText_ObtainedInTrade
-_080A08FC:
- adds r0, r7, 0
- movs r1, 0x24
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl sub_80A203C
- adds r5, r0, 0
- movs r0, 0xFE
- strb r0, [r5]
- adds r5, 0x1
- ldr r4, _080A094C @ =gStringVar1
- adds r0, r4, 0
- adds r1, r6, 0
- bl sub_80FC02C
- adds r0, r5, 0
- adds r1, r4, 0
- movs r2, 0xE
- bl sub_80A1E9C
- adds r5, r0, 0
- ldr r1, _080A0950 @ =gOtherText_Met2
- bl StringCopy
-_080A0934:
- ldr r0, _080A0954 @ =gStringVar4
- mov r1, r9
- mov r2, r8
- bl MenuPrint
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A094C: .4byte gStringVar1
-_080A0950: .4byte gOtherText_Met2
-_080A0954: .4byte gStringVar4
- thumb_func_end sub_80A0798
-
- thumb_func_start sub_80A0958
-sub_80A0958: @ 80A0958
- push {r4-r6,lr}
- mov r6, r10
- mov r5, r9
- mov r4, r8
- push {r4-r6}
- mov r8, r0
- movs r1, 0xB
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldr r2, _080A0A24 @ =gStringVar1
- adds r0, r2, 0
- movs r1, 0xD
- bl sub_80A1E58
- adds r2, r0, 0
- movs r6, 0xFC
- strb r6, [r2]
- movs r0, 0x11
- strb r0, [r2, 0x1]
- movs r0, 0x7
- strb r0, [r2, 0x2]
- movs r0, 0xBA
- strb r0, [r2, 0x3]
- adds r2, 0x4
- movs r0, 0xB
- adds r1, r4, 0
- muls r1, r0
- ldr r0, _080A0A28 @ =gSpeciesNames
- adds r1, r0
- adds r0, r2, 0
- bl StringCopy
- adds r2, r0, 0
- strb r6, [r2]
- movs r0, 0x13
- mov r10, r0
- strb r0, [r2, 0x1]
- movs r0, 0x50
- strb r0, [r2, 0x2]
- movs r0, 0xFF
- mov r9, r0
- strb r0, [r2, 0x3]
- ldr r5, _080A0A24 @ =gStringVar1
- adds r0, r5, 0
- movs r1, 0
- movs r2, 0xE
- bl MenuPrint
- movs r0, 0x3
- movs r1, 0x10
- movs r2, 0x9
- movs r3, 0x11
- bl MenuZeroFillWindowRect
- mov r0, r8
- movs r1, 0x38
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- movs r1, 0xD
- bl sub_80A1E58
- adds r2, r0, 0
- movs r0, 0x34
- strb r0, [r2]
- adds r2, 0x1
- adds r0, r2, 0
- adds r1, r4, 0
- bl ConvertIntToDecimalString
- adds r2, r0, 0
- strb r6, [r2]
- mov r0, r10
- strb r0, [r2, 0x1]
- movs r0, 0x20
- strb r0, [r2, 0x2]
- mov r0, r9
- strb r0, [r2, 0x3]
- adds r0, r5, 0
- movs r1, 0x3
- movs r2, 0x10
- bl MenuPrint
- mov r0, r8
- movs r1, 0x7
- movs r2, 0x10
- bl sub_80A0A2C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A0A24: .4byte gStringVar1
-_080A0A28: .4byte gSpeciesNames
- thumb_func_end sub_80A0958
-
- thumb_func_start sub_80A0A2C
-sub_80A0A2C: @ 80A0A2C
- push {r4-r6,lr}
- adds r6, r0, 0
- lsls r1, 24
- lsrs r5, r1, 24
- lsls r2, 24
- lsrs r4, r2, 24
- movs r1, 0x41
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x20
- beq _080A0A84
- cmp r0, 0x1D
- beq _080A0A84
- adds r0, r6, 0
- bl GetMonGender
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _080A0A6E
- cmp r0, 0xFE
- beq _080A0A78
- adds r3, r4, 0x1
- lsls r3, 24
- lsrs r3, 24
- adds r0, r5, 0
- adds r1, r4, 0
- adds r2, r5, 0
- bl MenuZeroFillWindowRect
- b _080A0A84
-_080A0A6E:
- ldr r0, _080A0A74 @ =gOtherText_MaleSymbol2
- movs r1, 0xB
- b _080A0A7C
- .align 2, 0
-_080A0A74: .4byte gOtherText_MaleSymbol2
-_080A0A78:
- ldr r0, _080A0A8C @ =gOtherText_FemaleSymbolAndLv
- movs r1, 0xC
-_080A0A7C:
- adds r2, r5, 0
- adds r3, r4, 0
- bl sub_80A1FF8
-_080A0A84:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A0A8C: .4byte gOtherText_FemaleSymbolAndLv
- thumb_func_end sub_80A0A2C
-
- thumb_func_start sub_80A0A90
-sub_80A0A90: @ 80A0A90
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r1, 0x32
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- movs r1, 0x33
- bl GetMonData
- adds r4, r0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- movs r1, 0x34
- bl GetMonData
- adds r4, r0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- movs r1, 0x35
- bl GetMonData
- adds r4, r0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- movs r1, 0x36
- bl GetMonData
- adds r4, r0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- movs r1, 0x43
- bl GetMonData
- adds r4, r0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- movs r1, 0x44
- bl GetMonData
- adds r4, r0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- movs r1, 0x45
- bl GetMonData
- adds r4, r0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- movs r1, 0x46
- bl GetMonData
- adds r4, r0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- movs r1, 0x47
- bl GetMonData
- adds r4, r0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- movs r1, 0x48
- bl GetMonData
- adds r4, r0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- movs r1, 0x49
- bl GetMonData
- adds r4, r0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- movs r1, 0x4A
- bl GetMonData
- adds r4, r0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- movs r1, 0x4B
- bl GetMonData
- adds r4, r0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- movs r1, 0x4C
- bl GetMonData
- adds r4, r0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- movs r1, 0x4D
- bl GetMonData
- adds r4, r0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- movs r1, 0x4E
- bl GetMonData
- adds r4, r0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80A0A90
-
- thumb_func_start sub_80A0B88
-sub_80A0B88: @ 80A0B88
- push {r4,r5,lr}
- bl sub_80A0A90
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- bne _080A0BA8
- ldr r0, _080A0BA0 @ =gStringVar1
- ldr r1, _080A0BA4 @ =gOtherText_None
- bl StringCopy
- b _080A0BD8
- .align 2, 0
-_080A0BA0: .4byte gStringVar1
-_080A0BA4: .4byte gOtherText_None
-_080A0BA8:
- ldr r4, _080A0BE8 @ =gStringVar1
- ldr r1, _080A0BEC @ =gOtherText_Ribbons00
- adds r0, r4, 0
- bl StringCopy
- adds r0, r4, 0
- bl StringLength
- lsls r0, 24
- lsrs r0, 24
- subs r4, 0x2
- adds r0, r4
- movs r1, 0xFC
- strb r1, [r0]
- movs r1, 0x14
- strb r1, [r0, 0x1]
- movs r1, 0x6
- strb r1, [r0, 0x2]
- adds r0, 0x3
- adds r1, r5, 0
- movs r2, 0x1
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
-_080A0BD8:
- ldr r0, _080A0BF0 @ =gUnknown_083C15AE
- movs r1, 0x15
- movs r2, 0x4
- bl MenuPrint
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A0BE8: .4byte gStringVar1
-_080A0BEC: .4byte gOtherText_Ribbons00
-_080A0BF0: .4byte gUnknown_083C15AE
- thumb_func_end sub_80A0B88
-
- thumb_func_start sub_80A0BF4
-sub_80A0BF4: @ 80A0BF4
- push {r4-r7,lr}
- lsls r0, 16
- lsrs r5, r0, 16
- lsls r1, 24
- lsrs r7, r1, 24
- lsls r2, 24
- lsrs r6, r2, 24
- cmp r5, 0xAF
- bne _080A0C48
- bl sub_80F9344
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080A0C48
- bl sub_806B528
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080A0C48
- ldr r0, _080A0C40 @ =0x02018000
- ldrb r0, [r0, 0x9]
- cmp r0, 0x1
- beq _080A0C2E
- cmp r0, 0x4
- beq _080A0C2E
- cmp r0, 0x5
- bne _080A0C48
-_080A0C2E:
- ldr r4, _080A0C44 @ =gStringVar1
- adds r0, r5, 0
- bl ItemId_GetItem
- adds r1, r0, 0
- adds r0, r4, 0
- bl StringCopy
- b _080A0C68
- .align 2, 0
-_080A0C40: .4byte 0x02018000
-_080A0C44: .4byte gStringVar1
-_080A0C48:
- cmp r5, 0
- bne _080A0C60
- ldr r0, _080A0C58 @ =gStringVar1
- ldr r1, _080A0C5C @ =gOtherText_None
- bl StringCopy
- b _080A0C68
- .align 2, 0
-_080A0C58: .4byte gStringVar1
-_080A0C5C: .4byte gOtherText_None
-_080A0C60:
- ldr r1, _080A0C78 @ =gStringVar1
- adds r0, r5, 0
- bl CopyItemName
-_080A0C68:
- ldr r0, _080A0C7C @ =gUnknown_083C15B4
- adds r1, r7, 0
- adds r2, r6, 0
- bl MenuPrint
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A0C78: .4byte gStringVar1
-_080A0C7C: .4byte gUnknown_083C15B4
- thumb_func_end sub_80A0BF4
-
- thumb_func_start sub_80A0C80
-sub_80A0C80: @ 80A0C80
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- adds r4, r0, 0
- lsls r1, 24
- lsrs r1, 24
- mov r10, r1
- lsls r2, 24
- lsrs r2, 24
- str r2, [sp]
- movs r0, 0
- mov r9, r0
- movs r6, 0
- movs r7, 0
- adds r0, r4, 0
- movs r1, 0x19
- bl GetMonData
- mov r8, r0
- adds r0, r4, 0
- movs r1, 0x38
- bl GetMonData
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r5, 0x63
- bhi _080A0D14
- ldr r3, _080A0D4C @ =gExperienceTables
- adds r1, r5, 0x1
- lsls r1, 2
- ldr r2, _080A0D50 @ =gBaseStats
- lsls r0, r4, 3
- subs r0, r4
- lsls r0, 2
- adds r0, r2
- ldrb r2, [r0, 0x13]
- movs r0, 0xCA
- lsls r0, 1
- muls r2, r0
- adds r1, r2
- adds r1, r3
- ldr r1, [r1]
- mov r0, r8
- subs r0, r1, r0
- mov r9, r0
- lsls r0, r5, 2
- adds r0, r2
- adds r0, r3
- ldr r0, [r0]
- subs r1, r0
- mov r2, r8
- subs r4, r2, r0
- lsls r0, r4, 6
- bl __udivsi3
- adds r6, r0, 0
- movs r7, 0
- adds r0, r7, 0
- orrs r0, r6
- cmp r0, 0
- bne _080A0D14
- cmp r4, 0
- beq _080A0D14
- movs r6, 0x1
- movs r7, 0
-_080A0D14:
- ldr r4, _080A0D54 @ =gStringVar1
- adds r0, r4, 0
- mov r1, r9
- bl ConvertIntToDecimalString
- mov r1, r10
- adds r1, 0x6
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- ldr r2, [sp]
- bl MenuPrint_RightAligned
- ldr r0, _080A0D58 @ =0x06004caa
- mov r9, r0
- movs r2, 0
- mov r12, r2
- ldr r0, _080A0D5C @ =0x00002062
- mov r8, r0
-_080A0D3A:
- cmp r7, 0
- bgt _080A0D46
- cmp r7, 0
- bne _080A0D64
- cmp r6, 0x7
- bls _080A0D64
-_080A0D46:
- ldr r1, _080A0D60 @ =0x0000206a
- b _080A0D96
- .align 2, 0
-_080A0D4C: .4byte gExperienceTables
-_080A0D50: .4byte gBaseStats
-_080A0D54: .4byte gStringVar1
-_080A0D58: .4byte 0x06004caa
-_080A0D5C: .4byte 0x00002062
-_080A0D60: .4byte 0x0000206a
-_080A0D64:
- adds r5, r7, 0
- adds r4, r6, 0
- cmp r7, 0
- bge _080A0D74
- movs r4, 0x7
- movs r5, 0
- adds r4, r6
- adcs r5, r7
-_080A0D74:
- lsls r3, r5, 29
- lsrs r2, r4, 3
- adds r0, r3, 0
- orrs r0, r2
- asrs r1, r5, 3
- lsrs r5, r0, 29
- lsls r4, r1, 3
- adds r3, r5, 0
- orrs r3, r4
- lsls r2, r0, 3
- adds r1, r7, 0
- adds r0, r6, 0
- subs r0, r2
- sbcs r1, r3
- add r0, r8
- lsls r0, 16
- lsrs r1, r0, 16
-_080A0D96:
- mov r2, r12
- lsls r0, r2, 1
- add r0, r9
- strh r1, [r0]
- movs r0, 0x8
- negs r0, r0
- asrs r1, r0, 31
- adds r6, r0
- adcs r7, r1
- cmp r7, 0
- bge _080A0DB0
- movs r6, 0
- movs r7, 0
-_080A0DB0:
- mov r0, r12
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r12, r0
- cmp r0, 0x7
- bls _080A0D3A
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80A0C80
-
- thumb_func_start sub_80A0DD0
-sub_80A0DD0: @ 80A0DD0
- push {r4,r5,lr}
- ldr r2, _080A0E3C @ =gStringVar1
- movs r5, 0xFC
- strb r5, [r2]
- movs r0, 0x12
- strb r0, [r2, 0x1]
- movs r0, 0x2
- strb r0, [r2, 0x2]
- adds r2, 0x3
- adds r0, r2, 0
- movs r1, 0xD
- bl sub_80A1E58
- adds r2, r0, 0
- ldr r1, _080A0E40 @ =gUnknown_083C1068
- ldr r4, _080A0E44 @ =0x02018000
- adds r0, r4, 0
- adds r0, 0x7E
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- adds r0, r2, 0
- bl StringCopy
- adds r2, r0, 0
- strb r5, [r2]
- movs r0, 0x13
- strb r0, [r2, 0x1]
- movs r0, 0x58
- strb r0, [r2, 0x2]
- movs r0, 0xFF
- strb r0, [r2, 0x3]
- ldr r0, _080A0E3C @ =gStringVar1
- movs r1, 0
- movs r2, 0
- bl MenuPrint
- adds r4, 0x7F
- ldrb r0, [r4]
- cmp r0, 0
- beq _080A0E48
- movs r0, 0x5
- movs r1, 0x17
- movs r2, 0
- bl GetStringCenterAlignXOffset
- movs r0, 0x6
- movs r1, 0x18
- movs r2, 0
- bl GetStringCenterAlignXOffset
- b _080A0E54
- .align 2, 0
-_080A0E3C: .4byte gStringVar1
-_080A0E40: .4byte gUnknown_083C1068
-_080A0E44: .4byte 0x02018000
-_080A0E48:
- movs r0, 0x17
- movs r1, 0
- movs r2, 0x18
- movs r3, 0x1
- bl MenuZeroFillWindowRect
-_080A0E54:
- ldr r2, _080A0E98 @ =gStringVar1
- adds r0, r2, 0
- movs r1, 0xD
- bl sub_80A1E58
- adds r2, r0, 0
- ldr r1, _080A0E9C @ =gUnknown_083C1068
- ldr r0, _080A0EA0 @ =0x02018000
- adds r0, 0x7F
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- adds r0, r2, 0
- bl StringCopy
- adds r2, r0, 0
- movs r0, 0xFC
- strb r0, [r2]
- movs r0, 0x13
- strb r0, [r2, 0x1]
- movs r0, 0x28
- strb r0, [r2, 0x2]
- movs r0, 0xFF
- strb r0, [r2, 0x3]
- ldr r0, _080A0E98 @ =gStringVar1
- movs r1, 0x19
- movs r2, 0
- bl MenuPrint
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A0E98: .4byte gStringVar1
-_080A0E9C: .4byte gUnknown_083C1068
-_080A0EA0: .4byte 0x02018000
- thumb_func_end sub_80A0DD0
-
- thumb_func_start sub_80A0EA4
-sub_80A0EA4: @ 80A0EA4
- push {r4-r6,lr}
- adds r4, r0, 0
- ldr r5, _080A0ECC @ =0x0600e444
- ldr r6, _080A0ED0 @ =0x0600ec44
- movs r1, 0
- bl CheckPartyPokerus
- lsls r0, 24
- cmp r0, 0
- bne _080A0ED4
- adds r0, r4, 0
- movs r1, 0
- bl CheckPartyHasHadPokerus
- lsls r0, 24
- cmp r0, 0
- beq _080A0ED4
- movs r0, 0x2C
- b _080A0ED8
- .align 2, 0
-_080A0ECC: .4byte 0x0600e444
-_080A0ED0: .4byte 0x0600ec44
-_080A0ED4:
- ldr r1, _080A0EE4 @ =0x0000081a
- adds r0, r1, 0
-_080A0ED8:
- strh r0, [r5]
- strh r0, [r6]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A0EE4: .4byte 0x0000081a
- thumb_func_end sub_80A0EA4
-
- thumb_func_start sub_80A0EE8
-sub_80A0EE8: @ 80A0EE8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- movs r3, 0
- ldr r6, _080A0F24 @ =0x02018000
- adds r5, r6, 0
- ldr r1, _080A0F28 @ =0x00004040
- mov r8, r1
- ldr r2, _080A0F2C @ =0x0000404a
- mov r10, r2
-_080A0F02:
- adds r0, r5, 0
- adds r0, 0x75
- ldrb r0, [r0]
- cmp r3, r0
- bcs _080A0F30
- lsls r1, r3, 1
- lsls r0, r3, 2
- add r0, sp
- mov r4, r8
- strh r4, [r0]
- adds r1, 0x1
- lsls r1, 1
- mov r7, sp
- adds r0, r7, r1
- strh r4, [r0]
- b _080A0FE2
- .align 2, 0
-_080A0F24: .4byte 0x02018000
-_080A0F28: .4byte 0x00004040
-_080A0F2C: .4byte 0x0000404a
-_080A0F30:
- movs r0, 0x76
- adds r0, r6
- mov r12, r0
- ldrb r1, [r0]
- cmp r3, r1
- bls _080A0F52
- lsls r1, r3, 1
- lsls r0, r3, 2
- add r0, sp
- mov r2, r10
- strh r2, [r0]
- adds r1, 0x1
- lsls r1, 1
- mov r4, sp
- adds r0, r4, r1
- strh r2, [r0]
- b _080A0FE2
-_080A0F52:
- ldrb r4, [r5, 0xB]
- cmp r3, r4
- bcs _080A0F6E
- lsls r1, r3, 1
- lsls r0, r3, 2
- mov r7, sp
- adds r2, r7, r0
- ldr r0, _080A0F88 @ =0x00004046
- strh r0, [r2]
- adds r1, 0x1
- lsls r1, 1
- add r1, sp
- adds r0, 0x1
- strh r0, [r1]
-_080A0F6E:
- cmp r3, r4
- bne _080A0FA6
- mov r0, r12
- ldrb r0, [r0]
- cmp r3, r0
- beq _080A0F90
- lsls r1, r3, 1
- lsls r0, r3, 2
- mov r4, sp
- adds r2, r4, r0
- ldr r0, _080A0F8C @ =0x00004041
- b _080A0F9A
- .align 2, 0
-_080A0F88: .4byte 0x00004046
-_080A0F8C: .4byte 0x00004041
-_080A0F90:
- lsls r1, r3, 1
- lsls r0, r3, 2
- mov r7, sp
- adds r2, r7, r0
- ldr r0, _080A0FC4 @ =0x0000404b
-_080A0F9A:
- strh r0, [r2]
- adds r1, 0x1
- lsls r1, 1
- add r1, sp
- adds r0, 0x1
- strh r0, [r1]
-_080A0FA6:
- ldrb r0, [r5, 0xB]
- cmp r3, r0
- bls _080A0FE2
- adds r0, r6, 0
- adds r0, 0x76
- ldrb r0, [r0]
- cmp r3, r0
- beq _080A0FCC
- lsls r1, r3, 1
- lsls r0, r3, 2
- mov r4, sp
- adds r2, r4, r0
- ldr r0, _080A0FC8 @ =0x00004043
- b _080A0FD6
- .align 2, 0
-_080A0FC4: .4byte 0x0000404b
-_080A0FC8: .4byte 0x00004043
-_080A0FCC:
- lsls r1, r3, 1
- lsls r0, r3, 2
- mov r7, sp
- adds r2, r7, r0
- ldr r0, _080A1034 @ =0x00004048
-_080A0FD6:
- strh r0, [r2]
- adds r1, 0x1
- lsls r1, 1
- add r1, sp
- adds r0, 0x1
- strh r0, [r1]
-_080A0FE2:
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x3
- bls _080A0F02
- ldr r1, _080A1038 @ =0x0600e016
- ldr r0, _080A103C @ =0x040000d4
- mov r2, sp
- str r2, [r0]
- str r1, [r0, 0x4]
- ldr r1, _080A1040 @ =0x80000008
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- movs r3, 0
-_080A0FFE:
- lsls r0, r3, 1
- mov r4, sp
- adds r1, r4, r0
- ldrh r0, [r1]
- adds r0, 0x10
- strh r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x7
- bls _080A0FFE
- ldr r1, _080A1044 @ =0x0600e056
- ldr r0, _080A103C @ =0x040000d4
- str r4, [r0]
- str r1, [r0, 0x4]
- ldr r1, _080A1040 @ =0x80000008
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A1034: .4byte 0x00004048
-_080A1038: .4byte 0x0600e016
-_080A103C: .4byte 0x040000d4
-_080A1040: .4byte 0x80000008
-_080A1044: .4byte 0x0600e056
- thumb_func_end sub_80A0EE8
-
- thumb_func_start sub_80A1048
-sub_80A1048: @ 80A1048
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r0, 2
- add r0, r8
- lsls r0, 3
- ldr r1, _080A10A0 @ =gTasks + 0x8
- adds r6, r0, r1
- ldrh r0, [r6]
- ldrh r1, [r6, 0x2]
- adds r0, r1
- strh r0, [r6, 0x2]
- lsls r0, 16
- cmp r0, 0
- bne _080A106E
- b _080A1224
-_080A106E:
- movs r5, 0x2
- ldrsh r2, [r6, r5]
- ldr r0, _080A10A4 @ =0x0000024a
- subs r0, r2
- lsls r0, 1
- ldr r1, _080A10A8 @ =gUnknown_08E73508
- adds r4, r0, r1
- ldr r5, _080A10AC @ =0x0600e480
- lsls r2, 1
- movs r0, 0x80
- lsls r0, 5
- adds r7, r1, 0
- cmp r2, r0
- bhi _080A10B4
- ldr r0, _080A10B0 @ =0x040000d4
- str r4, [r0]
- str r5, [r0, 0x4]
- lsrs r1, r2, 1
- movs r2, 0x80
- lsls r2, 24
- orrs r1, r2
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- b _080A10E0
- .align 2, 0
-_080A10A0: .4byte gTasks + 0x8
-_080A10A4: .4byte 0x0000024a
-_080A10A8: .4byte gUnknown_08E73508
-_080A10AC: .4byte 0x0600e480
-_080A10B0: .4byte 0x040000d4
-_080A10B4:
- ldr r3, _080A110C @ =0x040000d4
- str r4, [r3]
- str r5, [r3, 0x4]
- ldr r0, _080A1110 @ =0x80000800
- str r0, [r3, 0x8]
- ldr r0, [r3, 0x8]
- movs r0, 0x80
- lsls r0, 5
- adds r4, r0
- adds r5, r0
- ldr r1, _080A1114 @ =0xfffff000
- adds r2, r1
- cmp r2, r0
- bhi _080A10B4
- str r4, [r3]
- str r5, [r3, 0x4]
- lsrs r0, r2, 1
- movs r1, 0x80
- lsls r1, 24
- orrs r0, r1
- str r0, [r3, 0x8]
- ldr r0, [r3, 0x8]
-_080A10E0:
- movs r5, 0x2
- ldrsh r0, [r6, r5]
- ldr r1, _080A1118 @ =0x0000026a
- subs r1, r0
- lsls r1, 1
- adds r3, r1, r7
- ldr r4, _080A111C @ =0x0600e4c0
- lsls r1, r0, 1
- movs r0, 0x80
- lsls r0, 5
- cmp r1, r0
- bhi _080A1120
- ldr r0, _080A110C @ =0x040000d4
- str r3, [r0]
- str r4, [r0, 0x4]
- lsrs r1, 1
- movs r2, 0x80
- lsls r2, 24
- orrs r1, r2
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- b _080A114C
- .align 2, 0
-_080A110C: .4byte 0x040000d4
-_080A1110: .4byte 0x80000800
-_080A1114: .4byte 0xfffff000
-_080A1118: .4byte 0x0000026a
-_080A111C: .4byte 0x0600e4c0
-_080A1120:
- ldr r2, _080A1178 @ =0x040000d4
- str r3, [r2]
- str r4, [r2, 0x4]
- ldr r0, _080A117C @ =0x80000800
- str r0, [r2, 0x8]
- ldr r0, [r2, 0x8]
- movs r0, 0x80
- lsls r0, 5
- adds r3, r0
- adds r4, r0
- ldr r5, _080A1180 @ =0xfffff000
- adds r1, r5
- cmp r1, r0
- bhi _080A1120
- str r3, [r2]
- str r4, [r2, 0x4]
- lsrs r0, r1, 1
- movs r1, 0x80
- lsls r1, 24
- orrs r0, r1
- str r0, [r2, 0x8]
- ldr r0, [r2, 0x8]
-_080A114C:
- movs r1, 0x2
- ldrsh r0, [r6, r1]
- ldr r1, _080A1184 @ =0x0000024a
- subs r1, r0
- lsls r1, 1
- adds r3, r1, r7
- ldr r4, _080A1188 @ =0x0600ec80
- lsls r1, r0, 1
- movs r0, 0x80
- lsls r0, 5
- cmp r1, r0
- bhi _080A118C
- ldr r0, _080A1178 @ =0x040000d4
- str r3, [r0]
- str r4, [r0, 0x4]
- lsrs r1, 1
- movs r2, 0x80
- lsls r2, 24
- orrs r1, r2
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- b _080A11B8
- .align 2, 0
-_080A1178: .4byte 0x040000d4
-_080A117C: .4byte 0x80000800
-_080A1180: .4byte 0xfffff000
-_080A1184: .4byte 0x0000024a
-_080A1188: .4byte 0x0600ec80
-_080A118C:
- ldr r2, _080A11E4 @ =0x040000d4
- str r3, [r2]
- str r4, [r2, 0x4]
- ldr r0, _080A11E8 @ =0x80000800
- str r0, [r2, 0x8]
- ldr r0, [r2, 0x8]
- movs r0, 0x80
- lsls r0, 5
- adds r3, r0
- adds r4, r0
- ldr r5, _080A11EC @ =0xfffff000
- adds r1, r5
- cmp r1, r0
- bhi _080A118C
- str r3, [r2]
- str r4, [r2, 0x4]
- lsrs r0, r1, 1
- movs r1, 0x80
- lsls r1, 24
- orrs r0, r1
- str r0, [r2, 0x8]
- ldr r0, [r2, 0x8]
-_080A11B8:
- movs r1, 0x2
- ldrsh r0, [r6, r1]
- ldr r1, _080A11F0 @ =0x0000026a
- subs r1, r0
- lsls r1, 1
- adds r3, r1, r7
- ldr r4, _080A11F4 @ =0x0600ecc0
- lsls r1, r0, 1
- movs r0, 0x80
- lsls r0, 5
- cmp r1, r0
- bhi _080A11F8
- ldr r0, _080A11E4 @ =0x040000d4
- str r3, [r0]
- str r4, [r0, 0x4]
- lsrs r1, 1
- movs r2, 0x80
- lsls r2, 24
- orrs r1, r2
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- b _080A1224
- .align 2, 0
-_080A11E4: .4byte 0x040000d4
-_080A11E8: .4byte 0x80000800
-_080A11EC: .4byte 0xfffff000
-_080A11F0: .4byte 0x0000026a
-_080A11F4: .4byte 0x0600ecc0
-_080A11F8:
- ldr r2, _080A12B0 @ =0x040000d4
- str r3, [r2]
- str r4, [r2, 0x4]
- ldr r0, _080A12B4 @ =0x80000800
- str r0, [r2, 0x8]
- ldr r0, [r2, 0x8]
- movs r0, 0x80
- lsls r0, 5
- adds r3, r0
- adds r4, r0
- ldr r5, _080A12B8 @ =0xfffff000
- adds r1, r5
- cmp r1, r0
- bhi _080A11F8
- str r3, [r2]
- str r4, [r2, 0x4]
- lsrs r0, r1, 1
- movs r1, 0x80
- lsls r1, 24
- orrs r0, r1
- str r0, [r2, 0x8]
- ldr r0, [r2, 0x8]
-_080A1224:
- ldrb r4, [r6, 0x2]
- ldrh r7, [r6, 0x2]
- ldrh r0, [r6]
- mov r12, r0
- cmp r4, 0x9
- bhi _080A1272
- adds r3, r6, 0x4
- ldr r2, _080A12B0 @ =0x040000d4
- ldr r5, _080A12BC @ =0x80000001
-_080A1236:
- lsls r1, r4, 1
- ldr r6, _080A12C0 @ =0x0600e480
- adds r0, r1, r6
- str r3, [r2]
- str r0, [r2, 0x4]
- str r5, [r2, 0x8]
- ldr r0, [r2, 0x8]
- adds r6, 0x40
- adds r0, r1, r6
- str r3, [r2]
- str r0, [r2, 0x4]
- str r5, [r2, 0x8]
- ldr r0, [r2, 0x8]
- ldr r6, _080A12C4 @ =0x0600ec80
- adds r0, r1, r6
- str r3, [r2]
- str r0, [r2, 0x4]
- str r5, [r2, 0x8]
- ldr r0, [r2, 0x8]
- ldr r0, _080A12C8 @ =0x0600ecc0
- adds r1, r0
- str r3, [r2]
- str r1, [r2, 0x4]
- str r5, [r2, 0x8]
- ldr r0, [r2, 0x8]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x9
- bls _080A1236
-_080A1272:
- mov r1, r12
- lsls r0, r1, 16
- cmp r0, 0
- beq _080A1286
- lsls r0, r7, 16
- asrs r0, 16
- cmp r0, 0
- ble _080A1286
- cmp r0, 0x9
- ble _080A12A4
-_080A1286:
- lsls r0, r7, 16
- asrs r0, 16
- cmp r0, 0x9
- ble _080A129A
- ldr r0, _080A12CC @ =gOtherText_Status
- movs r1, 0xD
- movs r2, 0x1
- movs r3, 0x12
- bl sub_80A1FF8
-_080A129A:
- bl sub_80A1D18
- mov r0, r8
- bl DestroyTask
-_080A12A4:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A12B0: .4byte 0x040000d4
-_080A12B4: .4byte 0x80000800
-_080A12B8: .4byte 0xfffff000
-_080A12BC: .4byte 0x80000001
-_080A12C0: .4byte 0x0600e480
-_080A12C4: .4byte 0x0600ec80
-_080A12C8: .4byte 0x0600ecc0
-_080A12CC: .4byte gOtherText_Status
- thumb_func_end sub_80A1048
-
- thumb_func_start sub_80A12D0
-sub_80A12D0: @ 80A12D0
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x1
- movs r1, 0x12
- movs r2, 0x5
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- movs r0, 0x1D
- bl sub_80A18E4
- ldr r0, _080A1310 @ =sub_80A1048
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _080A1314 @ =gTasks
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r1, r0, r1
- lsls r4, 24
- asrs r4, 24
- strh r4, [r1, 0x8]
- cmp r4, 0
- bge _080A1318
- movs r0, 0xA
- b _080A131A
- .align 2, 0
-_080A1310: .4byte sub_80A1048
-_080A1314: .4byte gTasks
-_080A1318:
- movs r0, 0
-_080A131A:
- strh r0, [r1, 0xA]
- ldr r0, _080A1330 @ =gTasks
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 3
- adds r1, r0
- movs r0, 0x1
- strh r0, [r1, 0xC]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A1330: .4byte gTasks
- thumb_func_end sub_80A12D0
-
- thumb_func_start sub_80A1334
-sub_80A1334: @ 80A1334
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- lsls r0, 2
- add r0, r10
- lsls r0, 3
- ldr r1, _080A13E4 @ =gTasks + 0x8
- adds r7, r0, r1
- ldrh r0, [r7]
- ldrh r1, [r7, 0x2]
- adds r0, r1
- strh r0, [r7, 0x2]
- lsls r0, 16
- asrs r1, r0, 16
- movs r0, 0
- cmp r1, 0
- blt _080A136A
- movs r0, 0xA
- cmp r1, 0xA
- bgt _080A136A
- ldrh r0, [r7, 0x2]
-_080A136A:
- lsls r0, 16
- asrs r2, r0, 16
- mov r9, r0
- cmp r2, 0
- ble _080A13A6
- movs r0, 0xA
- subs r0, r2
- lsls r0, 1
- ldr r1, _080A13E8 @ =0x06005b40
- adds r4, r0, r1
- movs r5, 0
- adds r6, r2, 0
- ldr r0, _080A13EC @ =0x001fffff
- mov r8, r0
-_080A1386:
- adds r0, r5, 0
- adds r0, 0xD
- lsls r0, 6
- ldr r1, _080A13F0 @ =gUnknown_08E73E88
- adds r0, r1
- adds r1, r4, 0
- mov r2, r8
- ands r2, r6
- bl CpuSet
- adds r4, 0x40
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x6
- bls _080A1386
-_080A13A6:
- mov r1, r9
- asrs r2, r1, 16
- cmp r2, 0x9
- bgt _080A13F4
- ldr r4, _080A13E8 @ =0x06005b40
- movs r5, 0
- mov r8, sp
- movs r0, 0xA
- subs r6, r0, r2
- ldr r0, _080A13EC @ =0x001fffff
- ands r6, r0
- movs r0, 0x80
- lsls r0, 17
- mov r9, r0
-_080A13C2:
- ldrh r0, [r7, 0x4]
- mov r1, r8
- strh r0, [r1]
- mov r0, sp
- adds r1, r4, 0
- mov r2, r9
- orrs r2, r6
- bl CpuSet
- adds r4, 0x40
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x6
- bls _080A13C2
- b _080A1400
- .align 2, 0
-_080A13E4: .4byte gTasks + 0x8
-_080A13E8: .4byte 0x06005b40
-_080A13EC: .4byte 0x001fffff
-_080A13F0: .4byte gUnknown_08E73E88
-_080A13F4:
- movs r0, 0
- movs r1, 0x13
- movs r2, 0x9
- movs r3, 0x13
- bl MenuZeroFillWindowRect
-_080A1400:
- movs r1, 0
- ldrsh r0, [r7, r1]
- cmp r0, 0
- beq _080A1410
- movs r1, 0x2
- ldrsh r0, [r7, r1]
- cmp r0, 0
- bge _080A144A
-_080A1410:
- ldr r4, _080A1480 @ =0x02018000
- ldrb r0, [r4, 0xB]
- cmp r0, 0x2
- bne _080A1444
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x9
- movs r3, 0x12
- bl MenuZeroFillWindowRect
- adds r4, 0x10
- adds r0, r4, 0
- bl sub_80A0958
- adds r0, r4, 0
- bl sub_80A1CD8
- lsls r0, 24
- cmp r0, 0
- beq _080A1444
- ldr r0, _080A1484 @ =gOtherText_Status
- movs r1, 0xD
- movs r2, 0x1
- movs r3, 0x12
- bl sub_80A1FF8
-_080A1444:
- mov r0, r10
- bl DestroyTask
-_080A144A:
- movs r1, 0x2
- ldrsh r0, [r7, r1]
- cmp r0, 0x9
- ble _080A1470
- ldr r4, _080A1480 @ =0x02018000
- ldrb r0, [r4, 0xB]
- cmp r0, 0x2
- bne _080A1460
- ldrb r0, [r7, 0x6]
- bl sub_80A00F4
-_080A1460:
- adds r0, r4, 0
- adds r0, 0x10
- adds r1, r7, 0x6
- bl sub_80A0428
- mov r0, r10
- bl DestroyTask
-_080A1470:
- 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
-_080A1480: .4byte 0x02018000
-_080A1484: .4byte gOtherText_Status
- thumb_func_end sub_80A1334
-
- thumb_func_start sub_80A1488
-sub_80A1488: @ 80A1488
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 24
- lsrs r7, r1, 24
- ldr r0, _080A14DC @ =0x02018000
- ldrb r0, [r0, 0xB]
- cmp r0, 0x2
- bne _080A14A6
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x9
- movs r3, 0x13
- bl MenuZeroFillWindowRect
-_080A14A6:
- ldr r5, _080A14E0 @ =sub_80A1334
- adds r0, r5, 0
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0xFF
- bne _080A14C2
- adds r0, r5, 0
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r4, r0, 24
-_080A14C2:
- ldr r1, _080A14E4 @ =gTasks
- lsls r2, r4, 2
- adds r0, r2, r4
- lsls r0, 3
- adds r3, r0, r1
- lsls r0, r6, 24
- asrs r0, 24
- strh r0, [r3, 0x8]
- cmp r0, 0
- bge _080A14E8
- movs r0, 0xA
- b _080A14EA
- .align 2, 0
-_080A14DC: .4byte 0x02018000
-_080A14E0: .4byte sub_80A1334
-_080A14E4: .4byte gTasks
-_080A14E8:
- movs r0, 0
-_080A14EA:
- strh r0, [r3, 0xA]
- adds r0, r2, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0xC]
- strh r7, [r0, 0xE]
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80A1488
-
- thumb_func_start sub_80A1500
-sub_80A1500: @ 80A1500
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- lsls r0, 2
- add r0, r10
- lsls r0, 3
- ldr r1, _080A15B0 @ =gTasks + 0x8
- adds r7, r0, r1
- ldrh r0, [r7]
- ldrh r1, [r7, 0x2]
- adds r0, r1
- strh r0, [r7, 0x2]
- lsls r0, 16
- asrs r1, r0, 16
- movs r0, 0
- cmp r1, 0
- blt _080A1536
- movs r0, 0xA
- cmp r1, 0xA
- bgt _080A1536
- ldrh r0, [r7, 0x2]
-_080A1536:
- lsls r0, 16
- asrs r2, r0, 16
- mov r9, r0
- cmp r2, 0
- ble _080A1572
- movs r0, 0xA
- subs r0, r2
- lsls r0, 1
- ldr r1, _080A15B4 @ =0x06006b40
- adds r4, r0, r1
- movs r5, 0
- adds r6, r2, 0
- ldr r0, _080A15B8 @ =0x001fffff
- mov r8, r0
-_080A1552:
- adds r0, r5, 0
- adds r0, 0xD
- lsls r0, 6
- ldr r1, _080A15BC @ =gUnknown_08E74688
- adds r0, r1
- adds r1, r4, 0
- mov r2, r8
- ands r2, r6
- bl CpuSet
- adds r4, 0x40
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x6
- bls _080A1552
-_080A1572:
- mov r1, r9
- asrs r2, r1, 16
- cmp r2, 0x9
- bgt _080A15C0
- ldr r4, _080A15B4 @ =0x06006b40
- movs r5, 0
- mov r8, sp
- movs r0, 0xA
- subs r6, r0, r2
- ldr r0, _080A15B8 @ =0x001fffff
- ands r6, r0
- movs r0, 0x80
- lsls r0, 17
- mov r9, r0
-_080A158E:
- ldrh r0, [r7, 0x4]
- mov r1, r8
- strh r0, [r1]
- mov r0, sp
- adds r1, r4, 0
- mov r2, r9
- orrs r2, r6
- bl CpuSet
- adds r4, 0x40
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x6
- bls _080A158E
- b _080A15CC
- .align 2, 0
-_080A15B0: .4byte gTasks + 0x8
-_080A15B4: .4byte 0x06006b40
-_080A15B8: .4byte 0x001fffff
-_080A15BC: .4byte gUnknown_08E74688
-_080A15C0:
- movs r0, 0
- movs r1, 0x13
- movs r2, 0x9
- movs r3, 0x13
- bl MenuZeroFillWindowRect
-_080A15CC:
- movs r1, 0
- ldrsh r0, [r7, r1]
- cmp r0, 0
- beq _080A15DC
- movs r1, 0x2
- ldrsh r0, [r7, r1]
- cmp r0, 0
- bge _080A1616
-_080A15DC:
- ldr r4, _080A164C @ =0x02018000
- ldrb r0, [r4, 0xB]
- cmp r0, 0x3
- bne _080A1610
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x9
- movs r3, 0x12
- bl MenuZeroFillWindowRect
- adds r4, 0x10
- adds r0, r4, 0
- bl sub_80A0958
- adds r0, r4, 0
- bl sub_80A1CD8
- lsls r0, 24
- cmp r0, 0
- beq _080A1610
- ldr r0, _080A1650 @ =gOtherText_Status
- movs r1, 0xD
- movs r2, 0x1
- movs r3, 0x12
- bl sub_80A1FF8
-_080A1610:
- mov r0, r10
- bl DestroyTask
-_080A1616:
- movs r1, 0x2
- ldrsh r0, [r7, r1]
- cmp r0, 0x9
- ble _080A163C
- ldr r4, _080A164C @ =0x02018000
- ldrb r0, [r4, 0xB]
- cmp r0, 0x3
- bne _080A162C
- ldrb r0, [r7, 0x6]
- bl sub_80A00F4
-_080A162C:
- adds r0, r4, 0
- adds r0, 0x10
- adds r1, r7, 0x6
- bl sub_80A0428
- mov r0, r10
- bl DestroyTask
-_080A163C:
- 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
-_080A164C: .4byte 0x02018000
-_080A1650: .4byte gOtherText_Status
- thumb_func_end sub_80A1500
-
- thumb_func_start sub_80A1654
-sub_80A1654: @ 80A1654
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 24
- lsrs r7, r1, 24
- ldr r0, _080A16A8 @ =0x02018000
- ldrb r0, [r0, 0xB]
- cmp r0, 0x3
- bne _080A1672
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x9
- movs r3, 0x13
- bl MenuZeroFillWindowRect
-_080A1672:
- ldr r5, _080A16AC @ =sub_80A1500
- adds r0, r5, 0
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0xFF
- bne _080A168E
- adds r0, r5, 0
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r4, r0, 24
-_080A168E:
- ldr r1, _080A16B0 @ =gTasks
- lsls r2, r4, 2
- adds r0, r2, r4
- lsls r0, 3
- adds r3, r0, r1
- lsls r0, r6, 24
- asrs r0, 24
- strh r0, [r3, 0x8]
- cmp r0, 0
- bge _080A16B4
- movs r0, 0xA
- b _080A16B6
- .align 2, 0
-_080A16A8: .4byte 0x02018000
-_080A16AC: .4byte sub_80A1500
-_080A16B0: .4byte gTasks
-_080A16B4:
- movs r0, 0
-_080A16B6:
- strh r0, [r3, 0xA]
- adds r0, r2, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0xC]
- strh r7, [r0, 0xE]
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80A1654
-
- thumb_func_start sub_80A16CC
-sub_80A16CC: @ 80A16CC
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- ldr r0, _080A1724 @ =0x06006ad4
- mov r12, r0
- mov r1, r9
- cmp r1, 0
- bne _080A172C
- movs r5, 0
- ldr r7, _080A1728 @ =gUnknown_08E94510
- movs r0, 0x80
- lsls r0, 5
- adds r6, r0, 0
- movs r1, 0x40
- adds r1, r7
- mov r8, r1
-_080A16F4:
- lsls r2, r5, 1
- mov r0, r12
- adds r3, r2, r0
- adds r4, r2, r7
- ldrh r1, [r4]
- adds r0, r6, r1
- strh r0, [r3]
- adds r1, r3, 0
- adds r1, 0x40
- ldrh r4, [r4]
- adds r0, r6, r4
- strh r0, [r1]
- adds r3, 0x80
- add r2, r8
- ldrh r2, [r2]
- adds r0, r6, r2
- strh r0, [r3]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x13
- bls _080A16F4
- b _080A1768
- .align 2, 0
-_080A1724: .4byte 0x06006ad4
-_080A1728: .4byte gUnknown_08E94510
-_080A172C:
- movs r5, 0
- ldr r6, _080A17B0 @ =gUnknown_08E94550
- movs r7, 0x80
- lsls r7, 5
- adds r4, r7, 0
- movs r0, 0x40
- adds r0, r6
- mov r8, r0
-_080A173C:
- lsls r1, r5, 1
- mov r7, r12
- adds r2, r1, r7
- adds r0, r1, r6
- ldrh r0, [r0]
- adds r0, r4, r0
- strh r0, [r2]
- adds r3, r2, 0
- adds r3, 0x40
- add r1, r8
- ldrh r7, [r1]
- adds r0, r4, r7
- strh r0, [r3]
- adds r2, 0x80
- ldrh r1, [r1]
- adds r0, r4, r1
- strh r0, [r2]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x13
- bls _080A173C
-_080A1768:
- ldr r0, _080A17B4 @ =0x06005ad4
- mov r12, r0
- mov r1, r9
- cmp r1, 0
- bne _080A17BC
- movs r5, 0
- ldr r7, _080A17B8 @ =gUnknown_08E94510
- movs r0, 0xC0
- lsls r0, 6
- adds r6, r0, 0
- movs r1, 0x40
- adds r1, r7
- mov r8, r1
-_080A1782:
- lsls r2, r5, 1
- mov r0, r12
- adds r3, r2, r0
- adds r4, r2, r7
- ldrh r1, [r4]
- adds r0, r6, r1
- strh r0, [r3]
- adds r1, r3, 0
- adds r1, 0x40
- ldrh r4, [r4]
- adds r0, r6, r4
- strh r0, [r1]
- adds r3, 0x80
- add r2, r8
- ldrh r2, [r2]
- adds r0, r6, r2
- strh r0, [r3]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x13
- bls _080A1782
- b _080A17F8
- .align 2, 0
-_080A17B0: .4byte gUnknown_08E94550
-_080A17B4: .4byte 0x06005ad4
-_080A17B8: .4byte gUnknown_08E94510
-_080A17BC:
- movs r5, 0
- ldr r6, _080A1804 @ =gUnknown_08E94550
- movs r7, 0xC0
- lsls r7, 6
- adds r4, r7, 0
- movs r0, 0x40
- adds r0, r6
- mov r8, r0
-_080A17CC:
- lsls r1, r5, 1
- mov r7, r12
- adds r2, r1, r7
- adds r0, r1, r6
- ldrh r0, [r0]
- adds r0, r4, r0
- strh r0, [r2]
- adds r3, r2, 0
- adds r3, 0x40
- add r1, r8
- ldrh r7, [r1]
- adds r0, r4, r7
- strh r0, [r3]
- adds r2, 0x80
- ldrh r1, [r1]
- adds r0, r4, r1
- strh r0, [r2]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x13
- bls _080A17CC
-_080A17F8:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A1804: .4byte gUnknown_08E94550
- thumb_func_end sub_80A16CC
-
- thumb_func_start sub_80A1808
-sub_80A1808: @ 80A1808
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r1, 0x41
- bl GetMonData
- adds r6, r0, 0
- lsls r6, 16
- lsrs r6, 16
- ldr r0, _080A1860 @ =gUnknown_02024E8C
- movs r1, 0x28
- movs r2, 0x40
- movs r3, 0x5
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r4, r0, 4
- add r4, r8
- lsls r4, 2
- ldr r5, _080A1864 @ =gSprites
- adds r7, r4, r5
- adds r0, r7, 0
- bl FreeSpriteOamMatrix
- strh r6, [r7, 0x2E]
- adds r5, 0x1C
- adds r4, r5
- ldr r0, _080A1868 @ =sub_80A1888
- str r0, [r4]
- adds r0, r6, 0
- bl sub_8040A3C
- lsls r0, 24
- cmp r0, 0
- bne _080A186C
- adds r0, r7, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r2, 0x1
- orrs r1, r2
- strb r1, [r0]
- b _080A187A
- .align 2, 0
-_080A1860: .4byte gUnknown_02024E8C
-_080A1864: .4byte gSprites
-_080A1868: .4byte sub_80A1888
-_080A186C:
- adds r2, r7, 0
- adds r2, 0x3F
- ldrb r1, [r2]
- movs r0, 0x2
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
-_080A187A:
- mov r0, r8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80A1808
-
- thumb_func_start sub_80A1888
-sub_80A1888: @ 80A1888
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080A18B8 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080A18B0
- ldr r0, _080A18BC @ =SpriteCallbackDummy
- str r0, [r4, 0x1C]
- ldr r0, _080A18C0 @ =0x02018010
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _080A18B0
- ldrh r0, [r4, 0x2E]
- movs r1, 0
- bl PlayCry1
-_080A18B0:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A18B8: .4byte gPaletteFade
-_080A18BC: .4byte SpriteCallbackDummy
-_080A18C0: .4byte 0x02018010
- thumb_func_end sub_80A1888
-
- thumb_func_start sub_80A18C4
-sub_80A18C4: @ 80A18C4
- push {lr}
- movs r1, 0
- ldr r3, _080A18E0 @ =0x0201a000
- movs r2, 0xFF
-_080A18CC:
- adds r0, r1, r3
- strb r2, [r0]
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x1D
- bls _080A18CC
- pop {r0}
- bx r0
- .align 2, 0
-_080A18E0: .4byte 0x0201a000
- thumb_func_end sub_80A18C4
-
- thumb_func_start sub_80A18E4
-sub_80A18E4: @ 80A18E4
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080A1910 @ =0x0201a000
- adds r4, r0, r1
- ldrb r0, [r4]
- cmp r0, 0xFF
- beq _080A1908
- adds r1, r0, 0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080A1914 @ =gSprites
- adds r0, r1
- bl DestroySprite
- movs r0, 0xFF
- strb r0, [r4]
-_080A1908:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A1910: .4byte 0x0201a000
-_080A1914: .4byte gSprites
- thumb_func_end sub_80A18E4
-
- thumb_func_start sub_80A1918
-sub_80A1918: @ 80A1918
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- ldr r3, _080A1948 @ =gSprites
- ldr r2, _080A194C @ =0x0201a000
- adds r0, r2
- ldrb r0, [r0]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r3
- adds r2, 0x3E
- movs r0, 0x1
- ands r1, r0
- lsls r1, 2
- ldrb r3, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2]
- bx lr
- .align 2, 0
-_080A1948: .4byte gSprites
-_080A194C: .4byte 0x0201a000
- thumb_func_end sub_80A1918
-
- thumb_func_start sub_80A1950
-sub_80A1950: @ 80A1950
- push {r4,r5,lr}
- movs r5, 0
-_080A1954:
- ldr r0, _080A1984 @ =0x0201a000
- adds r4, r5, r0
- ldrb r0, [r4]
- cmp r0, 0xFF
- bne _080A196C
- ldr r0, _080A1988 @ =gSpriteTemplate_83C11C0
- movs r1, 0
- movs r2, 0
- movs r3, 0x2
- bl CreateSprite
- strb r0, [r4]
-_080A196C:
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_80A1918
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x4
- bls _080A1954
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A1984: .4byte 0x0201a000
-_080A1988: .4byte gSpriteTemplate_83C11C0
- thumb_func_end sub_80A1950
-
- thumb_func_start sub_80A198C
-sub_80A198C: @ 80A198C
- push {r4-r6,lr}
- mov r6, r10
- mov r5, r9
- mov r4, r8
- push {r4-r6}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r6, r2, 0
- mov r10, r3
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- lsls r6, 24
- lsrs r6, 24
- mov r0, r10
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- ldr r1, _080A1A24 @ =0x0201a000
- mov r8, r1
- add r8, r10
- mov r0, r8
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080A1A28 @ =gSprites
- mov r9, r1
- add r0, r9
- adds r1, r4, 0
- bl StartSpriteAnim
- mov r1, r8
- ldrb r0, [r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- add r1, r9
- ldr r0, _080A1A2C @ =gUnknown_083C11D8
- adds r4, r0
- ldrb r2, [r4]
- lsls r2, 4
- ldrb r3, [r1, 0x5]
- movs r0, 0xF
- ands r0, r3
- orrs r0, r2
- strb r0, [r1, 0x5]
- mov r0, r8
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r9
- adds r5, 0x10
- strh r5, [r0, 0x20]
- mov r0, r8
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r9
- adds r6, 0x8
- strh r6, [r0, 0x22]
- mov r0, r10
- movs r1, 0
- bl sub_80A1918
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A1A24: .4byte 0x0201a000
-_080A1A28: .4byte gSprites
-_080A1A2C: .4byte gUnknown_083C11D8
- thumb_func_end sub_80A198C
-
- thumb_func_start sub_80A1A30
-sub_80A1A30: @ 80A1A30
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0
- mov r9, r0
- ldr r1, _080A1A98 @ =0x02018000
- ldrb r0, [r1, 0xB]
- cmp r0, 0x1
- bls _080A1B0A
- cmp r4, 0x9
- bne _080A1A52
- movs r3, 0x1
- mov r9, r3
-_080A1A52:
- movs r5, 0
- movs r0, 0x80
- lsls r0, 6
- adds r0, r1
- mov r8, r0
- ldr r6, _080A1A9C @ =gSprites
- mov r10, r5
-_080A1A60:
- lsls r1, r5, 20
- movs r3, 0xB0
- lsls r3, 15
- adds r1, r3
- asrs r1, 16
- ldr r0, _080A1AA0 @ =gSpriteTemplate_83C1280
- movs r2, 0x28
- mov r3, r9
- bl CreateSprite
- adds r1, r4, r5
- mov r3, r8
- adds r2, r1, r3
- strb r0, [r2]
- adds r7, r1, 0
- cmp r5, 0
- bne _080A1AA4
- adds r0, r4, r3
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- movs r1, 0x4
- bl StartSpriteAnim
- b _080A1AD0
- .align 2, 0
-_080A1A98: .4byte 0x02018000
-_080A1A9C: .4byte gSprites
-_080A1AA0: .4byte gSpriteTemplate_83C1280
-_080A1AA4:
- cmp r5, 0x9
- bne _080A1AC0
- adds r0, r4, 0
- adds r0, 0x9
- add r0, r8
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- movs r1, 0x5
- bl StartSpriteAnim
- b _080A1AD0
-_080A1AC0:
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- movs r1, 0x6
- bl StartSpriteAnim
-_080A1AD0:
- mov r0, r8
- adds r2, r7, r0
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r6, 0
- adds r1, 0x1C
- adds r0, r1
- ldr r1, _080A1B18 @ =sub_80A1BC0
- str r1, [r0]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- strh r4, [r0, 0x2E]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- mov r1, r10
- strh r1, [r0, 0x30]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x9
- bls _080A1A60
-_080A1B0A:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A1B18: .4byte sub_80A1BC0
- thumb_func_end sub_80A1A30
-
- thumb_func_start sub_80A1B1C
-sub_80A1B1C: @ 80A1B1C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0
-_080A1B24:
- adds r0, r5, r4
- lsls r0, 24
- lsrs r0, 24
- bl sub_80A18E4
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x9
- bls _080A1B24
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80A1B1C
-
- thumb_func_start sub_80A1B40
-sub_80A1B40: @ 80A1B40
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r1, r7, 1
- adds r1, r7
- lsls r1, 24
- ldr r0, _080A1BB4 @ =0x0201a009
- ldrb r2, [r0]
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- ldr r2, _080A1BB8 @ =gSprites
- adds r0, r2
- lsrs r7, r1, 24
- movs r2, 0x80
- lsls r2, 19
- adds r1, r2
- lsrs r1, 24
- bl StartSpriteAnim
- movs r4, 0
- adds r0, r7, 0x6
- lsls r0, 24
- mov r8, r0
-_080A1B74:
- ldr r6, _080A1BBC @ =0x0201a00a
- adds r0, r4, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r5, _080A1BB8 @ =gSprites
- adds r0, r5
- mov r2, r8
- lsrs r1, r2, 24
- bl StartSpriteAnim
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x7
- bls _080A1B74
- ldrb r1, [r6, 0x8]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- adds r1, r7, 0x5
- lsls r1, 24
- lsrs r1, 24
- bl StartSpriteAnim
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A1BB4: .4byte 0x0201a009
-_080A1BB8: .4byte gSprites
-_080A1BBC: .4byte 0x0201a00a
- thumb_func_end sub_80A1B40
-
- thumb_func_start sub_80A1BC0
-sub_80A1BC0: @ 80A1BC0
- push {lr}
- adds r2, r0, 0
- adds r0, 0x2A
- ldrb r0, [r0]
- subs r0, 0x4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bhi _080A1BF8
- ldrh r0, [r2, 0x30]
- adds r0, 0x1
- movs r1, 0x1F
- ands r0, r1
- strh r0, [r2, 0x30]
- cmp r0, 0x18
- ble _080A1BEC
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x4
- orrs r0, r1
- b _080A1C06
-_080A1BEC:
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r1, [r3]
- movs r0, 0x5
- negs r0, r0
- b _080A1C04
-_080A1BF8:
- movs r0, 0
- strh r0, [r2, 0x30]
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r1, [r3]
- subs r0, 0x5
-_080A1C04:
- ands r0, r1
-_080A1C06:
- strb r0, [r3]
- movs r1, 0x2E
- ldrsh r0, [r2, r1]
- cmp r0, 0x9
- bne _080A1C1C
- ldr r0, _080A1C18 @ =0x02018000
- adds r0, 0x79
- b _080A1C20
- .align 2, 0
-_080A1C18: .4byte 0x02018000
-_080A1C1C:
- ldr r0, _080A1C2C @ =0x02018000
- adds r0, 0x7A
-_080A1C20:
- ldrb r0, [r0]
- lsls r0, 4
- strh r0, [r2, 0x26]
- pop {r0}
- bx r0
- .align 2, 0
-_080A1C2C: .4byte 0x02018000
- thumb_func_end sub_80A1BC0
-
- thumb_func_start sub_80A1C30
-sub_80A1C30: @ 80A1C30
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 25
- lsrs r3, r0, 24
- adds r4, r3, 0
- adds r0, r3, 0
- adds r0, 0xA
- cmp r3, r0
- bge _080A1C82
- ldr r5, _080A1C88 @ =gSprites
- movs r7, 0x5
- negs r7, r7
- ldr r6, _080A1C8C @ =0x0201a009
-_080A1C50:
- adds r2, r3, r6
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r1, 0
- strh r1, [r0, 0x30]
- ldrb r0, [r2]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- adds r1, 0x3E
- ldrb r2, [r1]
- adds r0, r7, 0
- ands r0, r2
- strb r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- adds r0, r4, 0
- adds r0, 0xA
- cmp r3, r0
- blt _080A1C50
-_080A1C82:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A1C88: .4byte gSprites
-_080A1C8C: .4byte 0x0201a009
- thumb_func_end sub_80A1C30
-
- thumb_func_start pokemon_ailments_get_primary
-pokemon_ailments_get_primary: @ 80A1C90
- push {lr}
- adds r1, r0, 0
- movs r0, 0x88
- ands r0, r1
- cmp r0, 0
- beq _080A1CA0
- movs r0, 0x1
- b _080A1CD2
-_080A1CA0:
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _080A1CAC
- movs r0, 0x2
- b _080A1CD2
-_080A1CAC:
- movs r0, 0x7
- ands r0, r1
- cmp r0, 0
- beq _080A1CB8
- movs r0, 0x3
- b _080A1CD2
-_080A1CB8:
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080A1CC4
- movs r0, 0x4
- b _080A1CD2
-_080A1CC4:
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- bne _080A1CD0
- movs r0, 0
- b _080A1CD2
-_080A1CD0:
- movs r0, 0x5
-_080A1CD2:
- pop {r1}
- bx r1
- thumb_func_end pokemon_ailments_get_primary
-
- thumb_func_start sub_80A1CD8
-sub_80A1CD8: @ 80A1CD8
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- bne _080A1CEA
- movs r0, 0x7
- b _080A1D12
-_080A1CEA:
- adds r0, r4, 0
- movs r1, 0x37
- bl GetMonData
- bl pokemon_ailments_get_primary
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _080A1D12
- adds r0, r4, 0
- movs r1, 0
- bl CheckPartyPokerus
- lsls r0, 24
- cmp r0, 0
- bne _080A1D10
- movs r0, 0
- b _080A1D12
-_080A1D10:
- movs r0, 0x6
-_080A1D12:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80A1CD8
-
- thumb_func_start sub_80A1D18
-sub_80A1D18: @ 80A1D18
- push {r4,r5,lr}
- sub sp, 0x64
- mov r0, sp
- bl sub_809F678
- mov r0, sp
- bl sub_80A1CD8
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _080A1D58
- subs r0, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r4, _080A1D50 @ =0x0201a01d
- ldrb r0, [r4]
- cmp r0, 0xFF
- bne _080A1D60
- ldr r0, _080A1D54 @ =gSpriteTemplate_83C1304
- movs r1, 0x40
- movs r2, 0x98
- movs r3, 0
- bl CreateSprite
- strb r0, [r4]
- b _080A1D60
- .align 2, 0
-_080A1D50: .4byte 0x0201a01d
-_080A1D54: .4byte gSpriteTemplate_83C1304
-_080A1D58:
- movs r0, 0x1D
- bl sub_80A18E4
- b _080A1D74
-_080A1D60:
- ldr r0, _080A1D7C @ =0x0201a01d
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080A1D80 @ =gSprites
- adds r0, r1
- adds r1, r5, 0
- bl StartSpriteAnim
-_080A1D74:
- add sp, 0x64
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A1D7C: .4byte 0x0201a01d
-_080A1D80: .4byte gSprites
- thumb_func_end sub_80A1D18
-
- thumb_func_start sub_80A1D84
-sub_80A1D84: @ 80A1D84
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r1, _080A1DC0 @ =0x00007533
- ldr r2, _080A1DC4 @ =gSummaryScreenMonMarkingsPalette
- adds r0, r1, 0
- bl sub_80F7920
- adds r4, r0, 0
- ldr r6, _080A1DC8 @ =gUnknown_020384F4
- str r4, [r6]
- cmp r4, 0
- beq _080A1DBA
- adds r0, r5, 0
- movs r1, 0x8
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl StartSpriteAnim
- ldr r1, [r6]
- movs r0, 0x3C
- strh r0, [r1, 0x20]
- movs r0, 0x1A
- strh r0, [r1, 0x22]
-_080A1DBA:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A1DC0: .4byte 0x00007533
-_080A1DC4: .4byte gSummaryScreenMonMarkingsPalette
-_080A1DC8: .4byte gUnknown_020384F4
- thumb_func_end sub_80A1D84
-
- thumb_func_start sub_80A1DCC
-sub_80A1DCC: @ 80A1DCC
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080A1DE4 @ =gUnknown_020384F4
- ldr r0, [r0]
- bl DestroySprite
- adds r0, r4, 0
- bl sub_80A1D84
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A1DE4: .4byte gUnknown_020384F4
- thumb_func_end sub_80A1DCC
-
- thumb_func_start sub_80A1DE8
-sub_80A1DE8: @ 80A1DE8
- push {r4,lr}
- movs r1, 0x26
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- bl ball_number_to_ball_processing_index
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- bl sub_80478DC
- lsls r0, r4, 1
- adds r0, r4
- lsls r0, 3
- ldr r1, _080A1E48 @ =gSpriteTemplate_820AAB4
- adds r0, r1
- movs r1, 0x6
- movs r2, 0x88
- movs r3, 0
- bl CreateSprite
- ldr r2, _080A1E4C @ =0x02018000
- strb r0, [r2, 0xD]
- ldr r3, _080A1E50 @ =gSprites
- ldrb r1, [r2, 0xD]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r3, 0
- adds r1, 0x1C
- adds r0, r1
- ldr r1, _080A1E54 @ =SpriteCallbackDummy
- str r1, [r0]
- ldrb r1, [r2, 0xD]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrb r1, [r0, 0x5]
- movs r2, 0xC
- orrs r1, r2
- strb r1, [r0, 0x5]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A1E48: .4byte gSpriteTemplate_820AAB4
-_080A1E4C: .4byte 0x02018000
-_080A1E50: .4byte gSprites
-_080A1E54: .4byte SpriteCallbackDummy
- thumb_func_end sub_80A1DE8
-
- thumb_func_start sub_80A1E58
-sub_80A1E58: @ 80A1E58
- push {r4,lr}
- adds r2, r0, 0
- lsls r1, 24
- lsrs r1, 24
- cmp r1, 0xFF
- beq _080A1E92
- ldr r3, _080A1E6C @ =gUnknown_083C15BC
- ldrb r0, [r3]
- adds r4, r2, 0x5
- b _080A1E74
- .align 2, 0
-_080A1E6C: .4byte gUnknown_083C15BC
-_080A1E70:
- adds r3, 0x4
- ldrb r0, [r3]
-_080A1E74:
- cmp r0, 0xFF
- beq _080A1E7C
- cmp r0, r1
- bne _080A1E70
-_080A1E7C:
- movs r0, 0xFC
- strb r0, [r2]
- movs r0, 0x4
- strb r0, [r2, 0x1]
- ldrb r0, [r3, 0x1]
- strb r0, [r2, 0x2]
- ldrb r0, [r3, 0x2]
- strb r0, [r2, 0x3]
- ldrb r0, [r3, 0x3]
- strb r0, [r2, 0x4]
- adds r2, r4, 0
-_080A1E92:
- adds r0, r2, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80A1E58
-
- thumb_func_start sub_80A1E9C
-sub_80A1E9C: @ 80A1E9C
- push {r4-r6,lr}
- sub sp, 0x4
- adds r6, r0, 0
- adds r5, r1, 0
- lsls r4, r2, 24
- lsrs r4, 24
- mov r1, sp
- adds r1, 0x1
- mov r2, sp
- adds r2, 0x2
- mov r0, sp
- bl sub_8072CD4
- adds r0, r6, 0
- adds r1, r4, 0
- bl sub_80A1E58
- adds r6, r0, 0
- adds r1, r5, 0
- bl StringCopy
- adds r6, r0, 0
- cmp r4, 0xFF
- beq _080A1EEC
- movs r0, 0xFC
- strb r0, [r6]
- movs r0, 0x4
- strb r0, [r6, 0x1]
- mov r0, sp
- ldrb r0, [r0]
- strb r0, [r6, 0x2]
- mov r0, sp
- ldrb r0, [r0, 0x1]
- strb r0, [r6, 0x3]
- mov r0, sp
- ldrb r0, [r0, 0x2]
- strb r0, [r6, 0x4]
- movs r0, 0xFF
- strb r0, [r6, 0x5]
- adds r6, 0x5
-_080A1EEC:
- adds r0, r6, 0
- add sp, 0x4
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80A1E9C
-
- thumb_func_start sub_80A1EF8
-sub_80A1EF8: @ 80A1EF8
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0x4
- mov r9, r0
- adds r4, r1, 0
- adds r5, r2, 0
- adds r6, r3, 0
- ldr r3, [sp, 0x1C]
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- lsls r6, 16
- lsrs r6, 16
- ldr r0, _080A1F44 @ =gStringVar4
- mov r8, r0
- mov r1, r9
- adds r2, r4, 0
- str r3, [sp]
- bl sub_80A1E9C
- ldr r3, [sp]
- lsls r3, 24
- lsrs r3, 24
- mov r0, r8
- adds r1, r5, 0
- adds r2, r6, 0
- bl MenuPrint_PixelCoords
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A1F44: .4byte gStringVar4
- thumb_func_end sub_80A1EF8
-
- thumb_func_start sub_80A1F48
-sub_80A1F48: @ 80A1F48
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0x4
- mov r9, r0
- adds r4, r1, 0
- adds r5, r2, 0
- adds r6, r3, 0
- ldr r3, [sp, 0x1C]
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- lsls r6, 24
- lsrs r6, 24
- lsls r3, 16
- lsrs r3, 16
- ldr r0, _080A1F94 @ =gStringVar4
- mov r8, r0
- mov r1, r9
- adds r2, r4, 0
- str r3, [sp]
- bl sub_80A1E9C
- mov r0, r8
- adds r1, r5, 0
- adds r2, r6, 0
- ldr r3, [sp]
- bl sub_8072BD8
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A1F94: .4byte gStringVar4
- thumb_func_end sub_80A1F48
-
- thumb_func_start sub_80A1F98
-sub_80A1F98: @ 80A1F98
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- mov r10, r0
- mov r8, r1
- adds r4, r2, 0
- adds r2, r3, 0
- ldr r5, [sp, 0x24]
- ldr r6, [sp, 0x28]
- ldr r7, [sp, 0x2C]
- mov r0, r8
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r4, 24
- lsrs r4, 24
- lsls r2, 24
- lsrs r2, 24
- lsls r5, 24
- lsrs r5, 24
- lsls r6, 16
- lsrs r6, 16
- ldr r0, _080A1FF4 @ =gStringVar1
- mov r9, r0
- mov r1, r10
- adds r3, r4, 0
- bl ConvertIntToDecimalStringN
- str r7, [sp]
- mov r0, r9
- mov r1, r8
- adds r2, r5, 0
- adds r3, r6, 0
- bl sub_80A1EF8
- 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
-_080A1FF4: .4byte gStringVar1
- thumb_func_end sub_80A1F98
-
- thumb_func_start sub_80A1FF8
-sub_80A1FF8: @ 80A1FF8
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- mov r9, r0
- adds r4, r1, 0
- adds r5, r2, 0
- adds r6, r3, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- lsls r6, 24
- lsrs r6, 24
- ldr r0, _080A2038 @ =gStringVar4
- mov r8, r0
- mov r1, r9
- adds r2, r4, 0
- bl sub_80A1E9C
- mov r0, r8
- adds r1, r5, 0
- adds r2, r6, 0
- bl MenuPrint
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A2038: .4byte gStringVar4
- thumb_func_end sub_80A1FF8
-
- thumb_func_start sub_80A203C
-sub_80A203C: @ 80A203C
- push {r4,lr}
- sub sp, 0xC
- adds r4, r0, 0
- lsls r1, 24
- lsrs r1, 24
- movs r0, 0x34
- strb r0, [r4]
- adds r4, 0x1
- cmp r1, 0
- bne _080A2052
- movs r1, 0x5
-_080A2052:
- mov r0, sp
- bl ConvertIntToDecimalString
- adds r0, r4, 0
- mov r1, sp
- movs r2, 0xE
- bl sub_80A1E9C
- adds r4, r0, 0
- ldr r1, _080A2074 @ =gOtherText_Comma
- bl StringCopy
- adds r4, r0, 0
- add sp, 0xC
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080A2074: .4byte gOtherText_Comma
- thumb_func_end sub_80A203C
-
- thumb_func_start sub_80A2078
-sub_80A2078: @ 80A2078
- push {lr}
- ldr r3, _080A209C @ =gUnknown_03005CF0
- ldr r2, _080A20A0 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r2, [r1]
- str r2, [r3]
- ldr r2, _080A20A4 @ =sub_80A20A8
- str r2, [r1]
- lsls r0, 24
- lsrs r0, 24
- bl _call_via_r2
- pop {r0}
- bx r0
- .align 2, 0
-_080A209C: .4byte gUnknown_03005CF0
-_080A20A0: .4byte gTasks
-_080A20A4: .4byte sub_80A20A8
- thumb_func_end sub_80A2078
-
- thumb_func_start sub_80A20A8
-sub_80A20A8: @ 80A20A8
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_8055870
- cmp r0, 0x1
- beq _080A20C6
- ldr r1, _080A20CC @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _080A20D0 @ =gUnknown_03005CF0
- ldr r1, [r1]
- str r1, [r0]
-_080A20C6:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A20CC: .4byte gTasks
-_080A20D0: .4byte gUnknown_03005CF0
- thumb_func_end sub_80A20A8
-
- thumb_func_start exec_movement
-exec_movement: @ 80A20D4
- push {r4,lr}
- sub sp, 0x4
- adds r4, r3, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r2, 24
- mov r3, sp
- bl TryGetFieldObjectIdByLocalIdAndMap
- lsls r0, 24
- cmp r0, 0
- beq _080A20F6
- movs r0, 0x1
- b _080A211E
-_080A20F6:
- ldr r0, _080A2128 @ =sub_80A244C
- bl FuncIsActiveTask
- lsls r0, 24
- cmp r0, 0
- bne _080A2108
- movs r0, 0x32
- bl sub_80A2198
-_080A2108:
- bl sub_80A21E0
- lsls r0, 24
- lsrs r0, 24
- mov r1, sp
- ldrb r1, [r1]
- adds r2, r4, 0
- bl sub_80A21F4
- lsls r0, 24
- lsrs r0, 24
-_080A211E:
- add sp, 0x4
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080A2128: .4byte sub_80A244C
- thumb_func_end exec_movement
-
- thumb_func_start sub_80A212C
-sub_80A212C: @ 80A212C
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r2, 24
- mov r3, sp
- bl TryGetFieldObjectIdByLocalIdAndMap
- lsls r0, 24
- cmp r0, 0
- bne _080A216E
- bl sub_80A21E0
- lsls r0, 24
- lsrs r4, r0, 24
- mov r0, sp
- ldrb r1, [r0]
- adds r0, r4, 0
- bl sub_80A2260
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x10
- beq _080A216E
- adds r0, r4, 0
- bl sub_80A2370
- lsls r0, 24
- lsrs r0, 24
- b _080A2170
-_080A216E:
- movs r0, 0x1
-_080A2170:
- add sp, 0x4
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80A212C
-
- thumb_func_start sub_80A2178
-sub_80A2178: @ 80A2178
- push {r4,lr}
- bl sub_80A21E0
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0xFF
- beq _080A2192
- adds r0, r4, 0
- bl sub_80A2408
- adds r0, r4, 0
- bl DestroyTask
-_080A2192:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A2178
-
- thumb_func_start sub_80A2198
-sub_80A2198: @ 80A2198
- push {r4,r5,lr}
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r0, _080A21D4 @ =sub_80A244C
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0x1
- lsls r1, r0, 2
- adds r1, r0
- lsls r3, r1, 3
- ldr r5, _080A21D8 @ =gTasks + 0x8
- ldr r0, _080A21DC @ =0x0000ffff
- adds r4, r0, 0
-_080A21B8:
- lsls r0, r2, 1
- adds r0, r3
- adds r0, r5
- ldrh r1, [r0]
- orrs r1, r4
- strh r1, [r0]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0xF
- bls _080A21B8
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A21D4: .4byte sub_80A244C
-_080A21D8: .4byte gTasks + 0x8
-_080A21DC: .4byte 0x0000ffff
- thumb_func_end sub_80A2198
-
- thumb_func_start sub_80A21E0
-sub_80A21E0: @ 80A21E0
- push {lr}
- ldr r0, _080A21F0 @ =sub_80A244C
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_080A21F0: .4byte sub_80A244C
- thumb_func_end sub_80A21E0
-
- thumb_func_start sub_80A21F4
-sub_80A21F4: @ 80A21F4
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- mov r9, r2
- lsls r0, 24
- lsrs r5, r0, 24
- adds r7, r5, 0
- lsls r1, 24
- lsrs r6, r1, 24
- mov r8, r6
- adds r0, r5, 0
- adds r1, r6, 0
- bl sub_80A2260
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x10
- beq _080A2230
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_80A2370
- lsls r0, 24
- cmp r0, 0
- beq _080A2250
- adds r0, r5, 0
- adds r1, r4, 0
- adds r2, r6, 0
- b _080A2246
-_080A2230:
- adds r0, r7, 0
- movs r1, 0xFF
- bl sub_80A2260
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x10
- beq _080A2250
- adds r0, r7, 0
- adds r1, r4, 0
- mov r2, r8
-_080A2246:
- mov r3, r9
- bl sub_80A23C8
- movs r0, 0
- b _080A2252
-_080A2250:
- movs r0, 0x1
-_080A2252:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80A21F4
-
- thumb_func_start sub_80A2260
-sub_80A2260: @ 80A2260
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r3, r1, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _080A2284 @ =gTasks + 0x8
- adds r1, r0
- adds r1, 0x2
- movs r2, 0
-_080A2278:
- ldrb r0, [r1]
- cmp r0, r3
- bne _080A2288
- adds r0, r2, 0
- b _080A2296
- .align 2, 0
-_080A2284: .4byte gTasks + 0x8
-_080A2288:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- adds r1, 0x1
- cmp r2, 0xF
- bls _080A2278
- movs r0, 0x10
-_080A2296:
- pop {r1}
- bx r1
- thumb_func_end sub_80A2260
-
- thumb_func_start sub_80A229C
-sub_80A229C: @ 80A229C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r3, r1, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _080A22CC @ =gTasks + 0x8
- adds r1, r0
- adds r1, 0x2
- str r1, [r2]
- movs r0, 0
- cmp r0, r3
- bcs _080A22C8
-_080A22BA:
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- adds r1, 0x1
- cmp r0, r3
- bcc _080A22BA
- str r1, [r2]
-_080A22C8:
- pop {r0}
- bx r0
- .align 2, 0
-_080A22CC: .4byte gTasks + 0x8
- thumb_func_end sub_80A229C
-
- thumb_func_start sub_80A22D0
-sub_80A22D0: @ 80A22D0
- push {r4,lr}
- sub sp, 0x4
- adds r4, r2, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- lsls r4, 24
- lsrs r4, 24
- mov r2, sp
- bl sub_80A229C
- ldr r0, [sp]
- strb r4, [r0]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A22D0
-
- thumb_func_start sub_80A22F4
-sub_80A22F4: @ 80A22F4
- push {r4,lr}
- sub sp, 0x4
- adds r4, r2, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- mov r2, sp
- bl sub_80A229C
- ldr r0, [sp]
- ldrb r0, [r0]
- strb r0, [r4]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A22F4
-
- thumb_func_start sub_80A2318
-sub_80A2318: @ 80A2318
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- ldr r2, _080A2340 @ =gBitTable
- lsrs r1, 22
- adds r1, r2
- ldr r2, [r1]
- mvns r2, r2
- lsls r2, 16
- lsrs r2, 16
- ldr r3, _080A2344 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r3
- ldrh r0, [r1, 0x8]
- ands r2, r0
- strh r2, [r1, 0x8]
- bx lr
- .align 2, 0
-_080A2340: .4byte gBitTable
-_080A2344: .4byte gTasks
- thumb_func_end sub_80A2318
-
- thumb_func_start sub_80A2348
-sub_80A2348: @ 80A2348
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- ldr r3, _080A2368 @ =gTasks
- lsls r2, r0, 2
- adds r2, r0
- lsls r2, 3
- adds r2, r3
- ldr r0, _080A236C @ =gBitTable
- lsrs r1, 22
- adds r1, r0
- ldr r0, [r1]
- ldrh r1, [r2, 0x8]
- orrs r0, r1
- strh r0, [r2, 0x8]
- bx lr
- .align 2, 0
-_080A2368: .4byte gTasks
-_080A236C: .4byte gBitTable
- thumb_func_end sub_80A2348
-
- thumb_func_start sub_80A2370
-sub_80A2370: @ 80A2370
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- ldr r3, _080A2398 @ =gTasks
- lsls r2, r0, 2
- adds r2, r0
- lsls r2, 3
- adds r2, r3
- ldr r0, _080A239C @ =gBitTable
- lsrs r1, 22
- adds r1, r0
- ldr r0, [r1]
- ldrh r1, [r2, 0x8]
- ands r0, r1
- cmp r0, 0
- bne _080A23A0
- movs r0, 0
- b _080A23A2
- .align 2, 0
-_080A2398: .4byte gTasks
-_080A239C: .4byte gBitTable
-_080A23A0:
- movs r0, 0x1
-_080A23A2:
- pop {r1}
- bx r1
- thumb_func_end sub_80A2370
-
- thumb_func_start npc_obj_offscreen_culling_and_flag_update
-npc_obj_offscreen_culling_and_flag_update: @ 80A23A8
- lsls r0, 24
- ldr r2, _080A23B4 @ =gUnknown_020384F8
- lsrs r0, 22
- adds r0, r2
- str r1, [r0]
- bx lr
- .align 2, 0
-_080A23B4: .4byte gUnknown_020384F8
- thumb_func_end npc_obj_offscreen_culling_and_flag_update
-
- thumb_func_start sub_80A23B8
-sub_80A23B8: @ 80A23B8
- lsls r0, 24
- ldr r1, _080A23C4 @ =gUnknown_020384F8
- lsrs r0, 22
- adds r0, r1
- ldr r0, [r0]
- bx lr
- .align 2, 0
-_080A23C4: .4byte gUnknown_020384F8
- thumb_func_end sub_80A23B8
-
- thumb_func_start sub_80A23C8
-sub_80A23C8: @ 80A23C8
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- adds r5, r0, 0
- adds r4, r1, 0
- adds r6, r2, 0
- mov r8, r3
- lsls r5, 24
- lsrs r5, 24
- lsls r4, 24
- lsrs r4, 24
- lsls r6, 24
- lsrs r6, 24
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_80A2318
- adds r0, r4, 0
- mov r1, r8
- bl npc_obj_offscreen_culling_and_flag_update
- adds r0, r5, 0
- adds r1, r4, 0
- adds r2, r6, 0
- bl sub_80A22D0
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80A23C8
-
- thumb_func_start sub_80A2408
-sub_80A2408: @ 80A2408
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _080A2444 @ =gTasks + 0x8
- adds r1, r0
- adds r4, r1, 0x2
- movs r5, 0
-_080A241C:
- ldrb r0, [r4]
- cmp r0, 0xFF
- beq _080A2432
- adds r1, r0, 0
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080A2448 @ =gMapObjects
- adds r0, r1
- bl npc_sync_anim_pause_bits
-_080A2432:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- adds r4, 0x1
- cmp r5, 0xF
- bls _080A241C
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A2444: .4byte gTasks + 0x8
-_080A2448: .4byte gMapObjects
- thumb_func_end sub_80A2408
-
- thumb_func_start sub_80A244C
-sub_80A244C: @ 80A244C
- push {r4-r7,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r7, r0, 24
- movs r5, 0
- mov r6, sp
-_080A2458:
- adds r0, r7, 0
- adds r1, r5, 0
- mov r2, sp
- bl sub_80A22F4
- ldrb r0, [r6]
- cmp r0, 0xFF
- beq _080A247C
- adds r4, r0, 0
- adds r0, r5, 0
- bl sub_80A23B8
- adds r3, r0, 0
- adds r0, r7, 0
- adds r1, r5, 0
- adds r2, r4, 0
- bl sub_80A2490
-_080A247C:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0xF
- bls _080A2458
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80A244C
-
- thumb_func_start sub_80A2490
-sub_80A2490: @ 80A2490
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r5, r3, 0
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r1, 24
- lsrs r6, r1, 24
- mov r8, r6
- lsls r2, 24
- lsrs r2, 24
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- ldr r1, _080A24E0 @ =gMapObjects
- adds r4, r0, r1
- adds r0, r4, 0
- bl FieldObjectIsSpecialAnimActive
- lsls r0, 24
- cmp r0, 0
- beq _080A24C8
- adds r0, r4, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
- lsls r0, 24
- cmp r0, 0
- beq _080A24FA
-_080A24C8:
- ldrb r1, [r5]
- cmp r1, 0xFE
- bne _080A24E4
- adds r0, r7, 0
- adds r1, r6, 0
- bl sub_80A2348
- adds r0, r4, 0
- bl sub_80643A4
- b _080A24FA
- .align 2, 0
-_080A24E0: .4byte gMapObjects
-_080A24E4:
- adds r0, r4, 0
- bl FieldObjectSetSpecialAnim
- lsls r0, 24
- cmp r0, 0
- bne _080A24FA
- adds r5, 0x1
- mov r0, r8
- adds r1, r5, 0
- bl npc_obj_offscreen_culling_and_flag_update
-_080A24FA:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80A2490
-
- thumb_func_start SetUpFieldMove_Cut
-SetUpFieldMove_Cut: @ 80A2504
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r0, 0x52
- bl npc_before_player_of_type
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080A2534
- ldr r1, _080A2524 @ =gUnknown_0300485C
- ldr r0, _080A2528 @ =sub_808AB90
- str r0, [r1]
- ldr r1, _080A252C @ =gUnknown_03005CE4
- ldr r0, _080A2530 @ =sub_80A2634
- b _080A25A8
- .align 2, 0
-_080A2524: .4byte gUnknown_0300485C
-_080A2528: .4byte sub_808AB90
-_080A252C: .4byte gUnknown_03005CE4
-_080A2530: .4byte sub_80A2634
-_080A2534:
- ldr r4, _080A25B0 @ =gUnknown_0203923C
- adds r1, r4, 0x2
- adds r0, r4, 0
- bl PlayerGetDestCoords
- movs r7, 0
- mov r8, r4
-_080A2542:
- ldr r1, _080A25B4 @ =0x0000ffff
- adds r0, r7, r1
- mov r2, r8
- ldrh r2, [r2, 0x2]
- adds r0, r2
- movs r6, 0
- lsls r0, 16
- asrs r5, r0, 16
-_080A2552:
- ldr r1, _080A25B4 @ =0x0000ffff
- adds r0, r6, r1
- mov r2, r8
- ldrh r2, [r2]
- adds r0, r2
- lsls r0, 16
- asrs r4, r0, 16
- adds r0, r4, 0
- adds r1, r5, 0
- bl MapGridGetZCoordAt
- lsls r0, 24
- lsrs r0, 24
- mov r2, r8
- movs r1, 0x4
- ldrsb r1, [r2, r1]
- cmp r0, r1
- bne _080A25C8
- adds r0, r4, 0
- adds r1, r5, 0
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl sub_8056E14
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080A259E
- adds r0, r4, 0
- bl MetatileBehavior_IsAsh
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080A25C8
-_080A259E:
- ldr r1, _080A25B8 @ =gUnknown_0300485C
- ldr r0, _080A25BC @ =sub_808AB90
- str r0, [r1]
- ldr r1, _080A25C0 @ =gUnknown_03005CE4
- ldr r0, _080A25C4 @ =sub_80A25E8
-_080A25A8:
- str r0, [r1]
- movs r0, 0x1
- b _080A25DE
- .align 2, 0
-_080A25B0: .4byte gUnknown_0203923C
-_080A25B4: .4byte 0x0000ffff
-_080A25B8: .4byte gUnknown_0300485C
-_080A25BC: .4byte sub_808AB90
-_080A25C0: .4byte gUnknown_03005CE4
-_080A25C4: .4byte sub_80A25E8
-_080A25C8:
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x2
- bls _080A2552
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0x2
- bls _080A2542
- movs r0, 0
-_080A25DE:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end SetUpFieldMove_Cut
-
- thumb_func_start sub_80A25E8
-sub_80A25E8: @ 80A25E8
- push {lr}
- movs r0, 0x1
- bl FieldEffectStart
- ldr r0, _080A25FC @ =gUnknown_0202FF84
- ldr r1, _080A2600 @ =gUnknown_03005CE0
- ldrb r1, [r1]
- str r1, [r0]
- pop {r0}
- bx r0
- .align 2, 0
-_080A25FC: .4byte gUnknown_0202FF84
-_080A2600: .4byte gUnknown_03005CE0
- thumb_func_end sub_80A25E8
-
- thumb_func_start FldEff_UseCutOnGrass
-FldEff_UseCutOnGrass: @ 80A2604
- push {lr}
- bl oei_task_add
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080A262C @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r2, _080A2630 @ =sub_80A2684
- lsrs r0, r2, 16
- strh r0, [r1, 0x18]
- strh r2, [r1, 0x1A]
- movs r0, 0x12
- bl sav12_xor_increment
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_080A262C: .4byte gTasks
-_080A2630: .4byte sub_80A2684
- thumb_func_end FldEff_UseCutOnGrass
-
- thumb_func_start sub_80A2634
-sub_80A2634: @ 80A2634
- push {lr}
- ldr r1, _080A2648 @ =gUnknown_0202FF84
- ldr r0, _080A264C @ =gUnknown_03005CE0
- ldrb r0, [r0]
- str r0, [r1]
- ldr r0, _080A2650 @ =UseCutScript
- bl ScriptContext1_SetupScript
- pop {r0}
- bx r0
- .align 2, 0
-_080A2648: .4byte gUnknown_0202FF84
-_080A264C: .4byte gUnknown_03005CE0
-_080A2650: .4byte UseCutScript
- thumb_func_end sub_80A2634
-
- thumb_func_start FldEff_UseCutOnTree
-FldEff_UseCutOnTree: @ 80A2654
- push {lr}
- bl oei_task_add
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080A267C @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r2, _080A2680 @ =sub_80A2B00
- lsrs r0, r2, 16
- strh r0, [r1, 0x18]
- strh r2, [r1, 0x1A]
- movs r0, 0x12
- bl sav12_xor_increment
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_080A267C: .4byte gTasks
-_080A2680: .4byte sub_80A2B00
- thumb_func_end FldEff_UseCutOnTree
-
- thumb_func_start sub_80A2684
-sub_80A2684: @ 80A2684
- push {lr}
- movs r0, 0x1
- bl FieldEffectActiveListRemove
- movs r0, 0x3A
- bl FieldEffectStart
- pop {r0}
- bx r0
- thumb_func_end sub_80A2684
-
- thumb_func_start FldEff_CutGrass
-FldEff_CutGrass: @ 80A2698
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r7, 0
- movs r0, 0x80
- bl PlaySE
- ldr r4, _080A2790 @ =gUnknown_0203923C
- adds r1, r4, 0x2
- adds r0, r4, 0
- bl PlayerGetDestCoords
- mov r8, r4
-_080A26B2:
- ldr r1, _080A2794 @ =0x0000ffff
- adds r0, r7, r1
- mov r2, r8
- ldrh r2, [r2, 0x2]
- adds r0, r2
- movs r6, 0
- lsls r0, 16
- asrs r5, r0, 16
-_080A26C2:
- ldr r1, _080A2794 @ =0x0000ffff
- adds r0, r6, r1
- mov r2, r8
- ldrh r2, [r2]
- adds r0, r2
- lsls r0, 16
- asrs r4, r0, 16
- adds r0, r4, 0
- adds r1, r5, 0
- bl MapGridGetZCoordAt
- lsls r0, 24
- lsrs r0, 24
- mov r2, r8
- movs r1, 0x4
- ldrsb r1, [r2, r1]
- cmp r0, r1
- bne _080A270E
- adds r0, r4, 0
- adds r1, r5, 0
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r0, 24
- bl sub_80578F8
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080A270E
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80A27A8
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_805BCC0
-_080A270E:
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x2
- bls _080A26C2
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0x2
- bls _080A26B2
- ldr r1, _080A2790 @ =gUnknown_0203923C
- ldrh r0, [r1]
- subs r0, 0x1
- lsls r0, 16
- asrs r0, 16
- ldrh r1, [r1, 0x2]
- subs r1, 0x2
- lsls r1, 16
- asrs r1, 16
- bl sub_80A28F4
- bl DrawWholeMapView
- movs r7, 0
- ldr r4, _080A2798 @ =gSprites
-_080A2740:
- ldr r0, _080A279C @ =gPlayerAvatar
- ldrb r1, [r0, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrh r1, [r0, 0x2]
- lsls r1, 23
- lsrs r1, 7
- movs r2, 0x80
- lsls r2, 12
- adds r1, r2
- asrs r1, 16
- ldrb r2, [r0]
- adds r2, 0x14
- ldr r0, _080A27A0 @ =gSpriteTemplate_CutGrass
- movs r3, 0
- bl CreateSprite
- ldr r1, _080A27A4 @ =0x0201fff0
- adds r1, r7, r1
- strb r0, [r1]
- ldrb r1, [r1]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- lsls r1, r7, 5
- strh r1, [r0, 0x32]
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0x7
- bls _080A2740
- movs r0, 0
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080A2790: .4byte gUnknown_0203923C
-_080A2794: .4byte 0x0000ffff
-_080A2798: .4byte gSprites
-_080A279C: .4byte gPlayerAvatar
-_080A27A0: .4byte gSpriteTemplate_CutGrass
-_080A27A4: .4byte 0x0201fff0
- thumb_func_end FldEff_CutGrass
-
- thumb_func_start sub_80A27A8
-sub_80A27A8: @ 80A27A8
- push {r4-r7,lr}
- lsls r0, 16
- lsls r1, 16
- lsrs r6, r0, 16
- asrs r4, r0, 16
- lsrs r7, r1, 16
- asrs r5, r1, 16
- adds r0, r4, 0
- adds r1, r5, 0
- bl MapGridGetMetatileIdAt
- adds r1, r0, 0
- ldr r0, _080A27E0 @ =0x00000207
- cmp r1, r0
- bgt _080A27F4
- subs r0, 0x1
- cmp r1, r0
- bge _080A286C
- cmp r1, 0x25
- beq _080A288E
- cmp r1, 0x25
- bgt _080A27E4
- cmp r1, 0xD
- beq _080A2834
- cmp r1, 0x15
- beq _080A2834
- b _080A2898
- .align 2, 0
-_080A27E0: .4byte 0x00000207
-_080A27E4:
- movs r0, 0xE3
- lsls r0, 1
- cmp r1, r0
- beq _080A2844
- adds r0, 0x1
- cmp r1, r0
- beq _080A284A
- b _080A2898
-_080A27F4:
- ldr r0, _080A280C @ =0x00000212
- cmp r1, r0
- beq _080A287C
- cmp r1, r0
- bgt _080A2810
- subs r0, 0xA
- cmp r1, r0
- beq _080A2834
- adds r0, 0x2
- cmp r1, r0
- beq _080A287C
- b _080A2898
- .align 2, 0
-_080A280C: .4byte 0x00000212
-_080A2810:
- ldr r0, _080A2824 @ =0x00000282
- cmp r1, r0
- beq _080A285C
- cmp r1, r0
- bgt _080A2828
- subs r0, 0x1
- cmp r1, r0
- beq _080A2854
- b _080A2898
- .align 2, 0
-_080A2824: .4byte 0x00000282
-_080A2828:
- ldr r0, _080A2830 @ =0x00000283
- cmp r1, r0
- beq _080A2864
- b _080A2898
- .align 2, 0
-_080A2830: .4byte 0x00000283
-_080A2834:
- lsls r0, r6, 16
- asrs r0, 16
- lsls r1, r7, 16
- asrs r1, 16
- movs r2, 0x1
- bl MapGridSetMetatileIdAt
- b _080A2898
-_080A2844:
- movs r2, 0xE7
- lsls r2, 1
- b _080A286E
-_080A284A:
- ldr r2, _080A2850 @ =0x000001cf
- b _080A286E
- .align 2, 0
-_080A2850: .4byte 0x000001cf
-_080A2854:
- ldr r2, _080A2858 @ =0x00000279
- b _080A286E
- .align 2, 0
-_080A2858: .4byte 0x00000279
-_080A285C:
- ldr r2, _080A2860 @ =0x0000027a
- b _080A286E
- .align 2, 0
-_080A2860: .4byte 0x0000027a
-_080A2864:
- ldr r2, _080A2868 @ =0x0000027b
- b _080A286E
- .align 2, 0
-_080A2868: .4byte 0x0000027b
-_080A286C:
- ldr r2, _080A2878 @ =0x00000271
-_080A286E:
- adds r0, r4, 0
- adds r1, r5, 0
- bl MapGridSetMetatileIdAt
- b _080A2898
- .align 2, 0
-_080A2878: .4byte 0x00000271
-_080A287C:
- lsls r0, r6, 16
- asrs r0, 16
- lsls r1, r7, 16
- asrs r1, 16
- movs r2, 0x86
- lsls r2, 2
- bl MapGridSetMetatileIdAt
- b _080A2898
-_080A288E:
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0xE
- bl MapGridSetMetatileIdAt
-_080A2898:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80A27A8
-
- thumb_func_start sub_80A28A0
-sub_80A28A0: @ 80A28A0
- push {lr}
- lsls r0, 16
- asrs r0, 16
- lsls r1, 16
- asrs r1, 16
- bl MapGridGetMetatileIdAt
- lsls r0, 16
- lsrs r1, r0, 16
- adds r2, r1, 0
- cmp r1, 0x1
- bne _080A28BC
- movs r0, 0x1
- b _080A28EE
-_080A28BC:
- ldr r0, _080A28C8 @ =0x00000279
- cmp r1, r0
- bne _080A28CC
- movs r0, 0x2
- b _080A28EE
- .align 2, 0
-_080A28C8: .4byte 0x00000279
-_080A28CC:
- ldr r0, _080A28D8 @ =0x0000027a
- cmp r1, r0
- bne _080A28DC
- movs r0, 0x3
- b _080A28EE
- .align 2, 0
-_080A28D8: .4byte 0x0000027a
-_080A28DC:
- ldr r0, _080A28E8 @ =0x0000027b
- cmp r2, r0
- beq _080A28EC
- movs r0, 0
- b _080A28EE
- .align 2, 0
-_080A28E8: .4byte 0x0000027b
-_080A28EC:
- movs r0, 0x4
-_080A28EE:
- pop {r1}
- bx r1
- thumb_func_end sub_80A28A0
-
- thumb_func_start sub_80A28F4
-sub_80A28F4: @ 80A28F4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 16
- lsrs r0, 16
- mov r10, r0
- lsls r1, 16
- movs r2, 0xC0
- lsls r2, 10
- adds r0, r1, r2
- lsrs r0, 16
- mov r9, r0
- movs r4, 0
- asrs r7, r1, 16
-_080A2914:
- mov r1, r10
- lsls r0, r1, 16
- asrs r0, 16
- lsls r4, 16
- asrs r1, r4, 16
- adds r0, r1
- lsls r0, 16
- lsrs r6, r0, 16
- asrs r5, r0, 16
- adds r0, r5, 0
- adds r1, r7, 0
- bl MapGridGetMetatileIdAt
- mov r8, r4
- cmp r0, 0x15
- bne _080A2996
- adds r4, r7, 0x1
- lsls r1, r4, 16
- asrs r1, 16
- adds r0, r5, 0
- bl sub_80A28A0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- beq _080A296A
- cmp r0, 0x2
- bgt _080A2952
- cmp r0, 0x1
- beq _080A295C
- b _080A2996
-_080A2952:
- cmp r0, 0x3
- beq _080A297C
- cmp r0, 0x4
- beq _080A298C
- b _080A2996
-_080A295C:
- adds r0, r5, 0
- adds r1, r4, 0
- movs r2, 0x82
- lsls r2, 2
- bl MapGridSetMetatileIdAt
- b _080A2996
-_080A296A:
- adds r0, r5, 0
- adds r1, r4, 0
- ldr r2, _080A2978 @ =0x00000281
- bl MapGridSetMetatileIdAt
- b _080A2996
- .align 2, 0
-_080A2978: .4byte 0x00000281
-_080A297C:
- adds r0, r5, 0
- adds r1, r4, 0
- ldr r2, _080A2988 @ =0x00000282
- bl MapGridSetMetatileIdAt
- b _080A2996
- .align 2, 0
-_080A2988: .4byte 0x00000282
-_080A298C:
- adds r0, r5, 0
- adds r1, r4, 0
- ldr r2, _080A2A30 @ =0x00000283
- bl MapGridSetMetatileIdAt
-_080A2996:
- lsls r0, r6, 16
- asrs r5, r0, 16
- mov r2, r9
- lsls r0, r2, 16
- asrs r4, r0, 16
- adds r0, r5, 0
- adds r1, r4, 0
- bl MapGridGetMetatileIdAt
- cmp r0, 0x1
- bne _080A2A10
- adds r4, 0x1
- adds r0, r5, 0
- adds r1, r4, 0
- bl MapGridGetMetatileIdAt
- movs r1, 0x82
- lsls r1, 2
- cmp r0, r1
- bne _080A29C8
- adds r0, r5, 0
- adds r1, r4, 0
- movs r2, 0x1
- bl MapGridSetMetatileIdAt
-_080A29C8:
- adds r0, r5, 0
- adds r1, r4, 0
- bl MapGridGetMetatileIdAt
- ldr r1, _080A2A34 @ =0x00000281
- cmp r0, r1
- bne _080A29E0
- adds r0, r5, 0
- adds r1, r4, 0
- ldr r2, _080A2A38 @ =0x00000279
- bl MapGridSetMetatileIdAt
-_080A29E0:
- adds r0, r5, 0
- adds r1, r4, 0
- bl MapGridGetMetatileIdAt
- ldr r1, _080A2A3C @ =0x00000282
- cmp r0, r1
- bne _080A29F8
- adds r0, r5, 0
- adds r1, r4, 0
- ldr r2, _080A2A40 @ =0x0000027a
- bl MapGridSetMetatileIdAt
-_080A29F8:
- adds r0, r5, 0
- adds r1, r4, 0
- bl MapGridGetMetatileIdAt
- ldr r1, _080A2A30 @ =0x00000283
- cmp r0, r1
- bne _080A2A10
- adds r0, r5, 0
- adds r1, r4, 0
- ldr r2, _080A2A44 @ =0x0000027b
- bl MapGridSetMetatileIdAt
-_080A2A10:
- movs r0, 0x80
- lsls r0, 9
- add r0, r8
- lsrs r4, r0, 16
- asrs r0, 16
- cmp r0, 0x2
- bgt _080A2A20
- b _080A2914
-_080A2A20:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A2A30: .4byte 0x00000283
-_080A2A34: .4byte 0x00000281
-_080A2A38: .4byte 0x00000279
-_080A2A3C: .4byte 0x00000282
-_080A2A40: .4byte 0x0000027a
-_080A2A44: .4byte 0x0000027b
- thumb_func_end sub_80A28F4
-
- thumb_func_start sub_80A2A48
-sub_80A2A48: @ 80A2A48
- movs r2, 0
- movs r1, 0x8
- strh r1, [r0, 0x2E]
- strh r2, [r0, 0x30]
- strh r2, [r0, 0x34]
- ldr r1, _080A2A58 @ =objc_8097BBC
- str r1, [r0, 0x1C]
- bx lr
- .align 2, 0
-_080A2A58: .4byte objc_8097BBC
- thumb_func_end sub_80A2A48
-
- thumb_func_start objc_8097BBC
-objc_8097BBC: @ 80A2A5C
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- movs r2, 0x2E
- ldrsh r1, [r4, r2]
- bl Sin
- strh r0, [r4, 0x24]
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- movs r2, 0x2E
- ldrsh r1, [r4, r2]
- bl Cos
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x32]
- adds r0, 0x8
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x32]
- ldrh r1, [r4, 0x2E]
- adds r1, 0x1
- ldrh r2, [r4, 0x34]
- lsls r0, r2, 16
- asrs r0, 18
- adds r1, r0
- strh r1, [r4, 0x2E]
- adds r2, 0x1
- strh r2, [r4, 0x34]
- ldrh r1, [r4, 0x30]
- movs r2, 0x30
- ldrsh r0, [r4, r2]
- cmp r0, 0x1C
- beq _080A2AA8
- adds r0, r1, 0x1
- strh r0, [r4, 0x30]
- b _080A2AAC
-_080A2AA8:
- ldr r0, _080A2AB4 @ =sub_80A2AB8
- str r0, [r4, 0x1C]
-_080A2AAC:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A2AB4: .4byte sub_80A2AB8
- thumb_func_end objc_8097BBC
-
- thumb_func_start sub_80A2AB8
-sub_80A2AB8: @ 80A2AB8
- push {r4-r6,lr}
- movs r4, 0x1
-_080A2ABC:
- ldr r6, _080A2AF8 @ =0x0201fff0
- adds r0, r4, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r5, _080A2AFC @ =gSprites
- adds r0, r5
- bl DestroySprite
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x7
- bls _080A2ABC
- ldrb r1, [r6]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r1, 0x3A
- bl FieldEffectStop
- bl sub_8064E2C
- bl ScriptContext2_Disable
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A2AF8: .4byte 0x0201fff0
-_080A2AFC: .4byte gSprites
- thumb_func_end sub_80A2AB8
-
- thumb_func_start sub_80A2B00
-sub_80A2B00: @ 80A2B00
- push {lr}
- movs r0, 0x80
- bl PlaySE
- movs r0, 0x2
- bl FieldEffectActiveListRemove
- bl EnableBothScriptContexts
- pop {r0}
- bx r0
- thumb_func_end sub_80A2B00
-
- thumb_func_start sub_80A2B18
-sub_80A2B18: @ 80A2B18
- push {r4,r5,lr}
- movs r4, 0
- ldr r5, _080A2B3C @ =gSaveBlock1 + 0x2B4C
-_080A2B1E:
- lsls r0, r4, 3
- adds r0, r4
- lsls r0, 2
- adds r0, r5
- bl sub_80A2B40
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0xF
- bls _080A2B1E
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A2B3C: .4byte gSaveBlock1 + 0x2B4C
- thumb_func_end sub_80A2B18
-
- thumb_func_start sub_80A2B40
-sub_80A2B40: @ 80A2B40
- push {r4-r6,lr}
- adds r3, r0, 0
- ldr r0, _080A2B90 @ =0x0000ffff
- adds r4, r0, 0
- adds r1, r3, 0
- movs r2, 0x8
-_080A2B4C:
- ldrh r0, [r1]
- orrs r0, r4
- strh r0, [r1]
- adds r1, 0x2
- subs r2, 0x1
- cmp r2, 0
- bge _080A2B4C
- movs r2, 0
- adds r6, r3, 0
- adds r6, 0x1A
- adds r4, r3, 0
- adds r4, 0x12
- movs r5, 0xFF
-_080A2B66:
- adds r1, r4, r2
- ldrb r0, [r1]
- orrs r0, r5
- strb r0, [r1]
- adds r2, 0x1
- cmp r2, 0x7
- ble _080A2B66
- adds r1, r6, 0
- movs r2, 0
- adds r0, r1, 0x3
-_080A2B7A:
- strb r2, [r0]
- subs r0, 0x1
- cmp r0, r1
- bge _080A2B7A
- movs r1, 0
- movs r0, 0x1
- strh r0, [r3, 0x1E]
- strh r1, [r3, 0x20]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A2B90: .4byte 0x0000ffff
- thumb_func_end sub_80A2B40
-
- thumb_func_start sub_80A2B94
-sub_80A2B94: @ 80A2B94
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0xC
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- bl itemid_is_mail
- lsls r0, 24
- cmp r0, 0
- beq _080A2BBC
- adds r0, r4, 0
- movs r1, 0x40
- bl GetMonData
- cmp r0, 0xFF
- beq _080A2BBC
- movs r0, 0x1
- b _080A2BBE
-_080A2BBC:
- movs r0, 0
-_080A2BBE:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80A2B94
-
- thumb_func_start sub_80A2BC4
-sub_80A2BC4: @ 80A2BC4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- adds r7, r0, 0
- lsls r1, 16
- lsrs r0, r1, 16
- str r0, [sp, 0x8]
- mov r0, sp
- movs r2, 0
- ldrb r3, [r0, 0x8]
- strb r3, [r0]
- lsrs r1, 24
- strb r1, [r0, 0x1]
- add r3, sp, 0x4
- strb r2, [r3]
- mov r10, r3
- ldr r4, _080A2D00 @ =gSaveBlock1
- mov r9, r4
- mov r8, r3
- adds r2, r3, 0
-_080A2BF2:
- ldrb r1, [r2]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- add r0, r9
- ldr r5, _080A2D04 @ =0x00002b6c
- adds r0, r5
- ldrh r0, [r0]
- cmp r0, 0
- beq _080A2C08
- b _080A2D24
-_080A2C08:
- movs r3, 0
- ldr r0, _080A2D08 @ =gSaveBlock2
- mov r12, r0
- mov r4, r10
- ldr r6, _080A2D0C @ =gSaveBlock1 + 0x2B4C
- ldr r1, _080A2D10 @ =0x0000ffff
- adds r5, r1, 0
-_080A2C16:
- lsls r2, r3, 1
- ldrb r1, [r4]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r2, r0
- adds r2, r6
- ldrh r0, [r2]
- orrs r0, r5
- strh r0, [r2]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x8
- bls _080A2C16
- movs r3, 0
- mov r2, r10
- ldr r4, _080A2D14 @ =gSaveBlock1 + 0x2B5E
-_080A2C3A:
- ldrb r1, [r2]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r3, r0
- adds r0, r4
- mov r5, r12
- adds r1, r3, r5
- ldrb r1, [r1]
- strb r1, [r0]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x6
- bls _080A2C3A
- mov r0, r8
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r3, r0
- ldr r1, _080A2D14 @ =gSaveBlock1 + 0x2B5E
- adds r0, r1
- movs r1, 0xFF
- strb r1, [r0]
- mov r2, r8
- ldrb r1, [r2]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r3, _080A2D14 @ =gSaveBlock1 + 0x2B5E
- adds r0, r3
- movs r1, 0
- bl sub_814A518
- movs r3, 0
- mov r2, r10
- ldr r5, _080A2D18 @ =gSaveBlock1 + 0x2B66
- ldr r4, _080A2D1C @ =gSaveBlock2 + 0xA
-_080A2C88:
- ldrb r1, [r2]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r3, r0
- adds r0, r5
- adds r1, r3, r4
- ldrb r1, [r1]
- strb r1, [r0]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x3
- bls _080A2C88
- adds r0, r7, 0
- movs r1, 0xB
- bl GetBoxMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r7, 0
- movs r1, 0
- bl GetBoxMonData
- adds r1, r0, 0
- adds r0, r4, 0
- bl sub_80A2D44
- mov r4, r8
- ldrb r2, [r4]
- lsls r1, r2, 3
- adds r1, r2
- lsls r1, 2
- add r1, r9
- ldr r5, _080A2D20 @ =0x00002b6a
- adds r1, r5
- strh r0, [r1]
- ldrb r1, [r4]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- add r0, r9
- ldr r1, _080A2D04 @ =0x00002b6c
- adds r0, r1
- mov r2, sp
- ldrh r2, [r2, 0x8]
- strh r2, [r0]
- adds r0, r7, 0
- movs r1, 0x40
- mov r2, r8
- bl SetMonData
- adds r0, r7, 0
- movs r1, 0xC
- mov r2, sp
- bl SetMonData
- ldrb r0, [r4]
- b _080A2D32
- .align 2, 0
-_080A2D00: .4byte gSaveBlock1
-_080A2D04: .4byte 0x00002b6c
-_080A2D08: .4byte gSaveBlock2
-_080A2D0C: .4byte gSaveBlock1 + 0x2B4C
-_080A2D10: .4byte 0x0000ffff
-_080A2D14: .4byte gSaveBlock1 + 0x2B5E
-_080A2D18: .4byte gSaveBlock1 + 0x2B66
-_080A2D1C: .4byte gSaveBlock2 + 0xA
-_080A2D20: .4byte 0x00002b6a
-_080A2D24:
- adds r0, r1, 0x1
- strb r0, [r3]
- ldrb r0, [r2]
- cmp r0, 0x5
- bhi _080A2D30
- b _080A2BF2
-_080A2D30:
- movs r0, 0xFF
-_080A2D32:
- add sp, 0xC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80A2BC4
-
- thumb_func_start sub_80A2D44
-sub_80A2D44: @ 80A2D44
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xC9
- bne _080A2D5C
- adds r0, r1, 0
- bl sub_809D474
- lsls r0, 16
- ldr r1, _080A2D60 @ =0x75300000
- adds r0, r1
- lsrs r0, 16
-_080A2D5C:
- pop {r1}
- bx r1
- .align 2, 0
-_080A2D60: .4byte 0x75300000
- thumb_func_end sub_80A2D44
-
- thumb_func_start sub_80A2D64
-sub_80A2D64: @ 80A2D64
- push {lr}
- lsls r0, 16
- lsrs r3, r0, 16
- ldr r0, _080A2D7C @ =0xffff8ad0
- adds r2, r3, r0
- lsls r0, r2, 16
- lsrs r0, 16
- cmp r0, 0x1B
- bhi _080A2D80
- movs r0, 0xC9
- strh r2, [r1]
- b _080A2D82
- .align 2, 0
-_080A2D7C: .4byte 0xffff8ad0
-_080A2D80:
- adds r0, r3, 0
-_080A2D82:
- pop {r1}
- bx r1
- thumb_func_end sub_80A2D64
-
- thumb_func_start sub_80A2D88
-sub_80A2D88: @ 80A2D88
- push {r4-r7,lr}
- sub sp, 0x8
- adds r6, r0, 0
- adds r7, r1, 0
- ldrh r5, [r7, 0x20]
- adds r1, r5, 0
- bl sub_80A2BC4
- add r4, sp, 0x4
- strb r0, [r4]
- ldrb r2, [r4]
- cmp r2, 0xFF
- beq _080A2DE8
- ldr r0, _080A2DE0 @ =gSaveBlock1
- lsls r1, r2, 3
- adds r1, r2
- lsls r1, 2
- adds r1, r0
- ldr r0, _080A2DE4 @ =0x00002b4c
- adds r1, r0
- adds r0, r7, 0
- ldm r0!, {r2,r3,r7}
- stm r1!, {r2,r3,r7}
- ldm r0!, {r2,r3,r7}
- stm r1!, {r2,r3,r7}
- ldm r0!, {r2,r3,r7}
- stm r1!, {r2,r3,r7}
- adds r0, r6, 0
- movs r1, 0x40
- adds r2, r4, 0
- bl SetMonData
- mov r0, sp
- strb r5, [r0]
- mov r1, sp
- lsrs r0, r5, 8
- strb r0, [r1, 0x1]
- adds r0, r6, 0
- movs r1, 0xC
- mov r2, sp
- bl SetMonData
- ldrb r0, [r4]
- b _080A2DEA
- .align 2, 0
-_080A2DE0: .4byte gSaveBlock1
-_080A2DE4: .4byte 0x00002b4c
-_080A2DE8:
- movs r0, 0xFF
-_080A2DEA:
- add sp, 0x8
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80A2D88
-
- thumb_func_start unref_sub_80A2DF4
-unref_sub_80A2DF4: @ 80A2DF4
- movs r0, 0
- bx lr
- thumb_func_end unref_sub_80A2DF4
-
- thumb_func_start sub_80A2DF8
-sub_80A2DF8: @ 80A2DF8
- push {r4,lr}
- sub sp, 0x8
- adds r4, r0, 0
- bl sub_80A2B94
- lsls r0, 24
- cmp r0, 0
- beq _080A2E46
- adds r0, r4, 0
- movs r1, 0x40
- bl GetMonData
- add r2, sp, 0x4
- strb r0, [r2]
- ldr r3, _080A2E50 @ =gSaveBlock1
- ldrb r1, [r2]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldr r1, _080A2E54 @ =0x00002b6c
- adds r0, r1
- movs r3, 0
- movs r1, 0
- strh r1, [r0]
- movs r0, 0xFF
- strb r0, [r2]
- mov r0, sp
- strb r3, [r0]
- strb r3, [r0, 0x1]
- adds r0, r4, 0
- movs r1, 0x40
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0xC
- mov r2, sp
- bl SetMonData
-_080A2E46:
- add sp, 0x8
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A2E50: .4byte gSaveBlock1
-_080A2E54: .4byte 0x00002b6c
- thumb_func_end sub_80A2DF8
-
- thumb_func_start unref_sub_80A2E58
-unref_sub_80A2E58: @ 80A2E58
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080A2E70 @ =gSaveBlock1
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldr r0, _080A2E74 @ =0x00002b6c
- adds r1, r0
- movs r0, 0
- strh r0, [r1]
- bx lr
- .align 2, 0
-_080A2E70: .4byte gSaveBlock1
-_080A2E74: .4byte 0x00002b6c
- thumb_func_end unref_sub_80A2E58
-
- thumb_func_start sub_80A2E78
-sub_80A2E78: @ 80A2E78
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0xC
- adds r5, r0, 0
- mov r0, sp
- movs r1, 0
- strb r1, [r0]
- strb r1, [r0, 0x1]
- add r1, sp, 0x4
- movs r0, 0xFF
- strb r0, [r1]
- movs r7, 0x6
- mov r9, r1
- ldr r0, _080A2F04 @ =gSaveBlock1
- mov r8, r0
- ldr r2, _080A2F08 @ =0x00002b4c
- add r2, r8
-_080A2E9E:
- lsls r0, r7, 3
- adds r0, r7
- lsls r4, r0, 2
- mov r1, r8
- adds r0, r4, r1
- ldr r3, _080A2F0C @ =0x00002b6c
- adds r0, r3
- ldrh r6, [r0]
- cmp r6, 0
- bne _080A2F10
- adds r4, r2
- adds r0, r5, 0
- movs r1, 0x40
- str r2, [sp, 0x8]
- bl GetMonData
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- ldr r2, [sp, 0x8]
- adds r1, r2
- ldm r1!, {r0,r2,r3}
- stm r4!, {r0,r2,r3}
- ldm r1!, {r0,r2,r3}
- stm r4!, {r0,r2,r3}
- ldm r1!, {r0,r2,r3}
- stm r4!, {r0,r2,r3}
- adds r0, r5, 0
- movs r1, 0x40
- bl GetMonData
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- add r1, r8
- ldr r0, _080A2F0C @ =0x00002b6c
- adds r1, r0
- strh r6, [r1]
- adds r0, r5, 0
- movs r1, 0x40
- mov r2, r9
- bl SetMonData
- adds r0, r5, 0
- movs r1, 0xC
- mov r2, sp
- bl SetMonData
- adds r0, r7, 0
- b _080A2F1C
- .align 2, 0
-_080A2F04: .4byte gSaveBlock1
-_080A2F08: .4byte 0x00002b4c
-_080A2F0C: .4byte 0x00002b6c
-_080A2F10:
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0xF
- bls _080A2E9E
- movs r0, 0xFF
-_080A2F1C:
- add sp, 0xC
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80A2E78
-
- thumb_func_start itemid_is_mail
-itemid_is_mail: @ 80A2F2C
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x84
- bgt _080A2F3E
- cmp r0, 0x79
- blt _080A2F3E
- movs r0, 0x1
- b _080A2F40
-_080A2F3E:
- movs r0, 0
-_080A2F40:
- pop {r1}
- bx r1
- thumb_func_end itemid_is_mail
-
- thumb_func_start unref_sub_80A2F44
-unref_sub_80A2F44: @ 80A2F44
- push {lr}
- bl sub_8071C20
- bl AddMapNamePopUpWindowTask
- movs r0, 0x1
- pop {r1}
- bx r1
- thumb_func_end unref_sub_80A2F44
-
- thumb_func_start AddMapNamePopUpWindowTask
-AddMapNamePopUpWindowTask: @ 80A2F54
- push {r4,r5,lr}
- movs r0, 0x80
- lsls r0, 7
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080A2FE4
- ldr r4, _080A2FAC @ =sub_80A2FF4
- adds r0, r4, 0
- bl FuncIsActiveTask
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- bne _080A2FBC
- adds r0, r4, 0
- movs r1, 0x5A
- bl CreateTask
- ldr r4, _080A2FB0 @ =gUnknown_02038538
- strb r0, [r4]
- ldr r1, _080A2FB4 @ =REG_BG0VOFS
- movs r0, 0x20
- strh r0, [r1]
- bl sub_80A30E0
- ldr r2, _080A2FB8 @ =gTasks
- ldrb r1, [r4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- strh r5, [r0, 0x8]
- ldrb r1, [r4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- movs r1, 0x20
- strh r1, [r0, 0xC]
- b _080A2FE4
- .align 2, 0
-_080A2FAC: .4byte sub_80A2FF4
-_080A2FB0: .4byte gUnknown_02038538
-_080A2FB4: .4byte REG_BG0VOFS
-_080A2FB8: .4byte gTasks
-_080A2FBC:
- ldr r3, _080A2FEC @ =gTasks
- ldr r2, _080A2FF0 @ =gUnknown_02038538
- ldrb r0, [r2]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r3
- movs r4, 0x8
- ldrsh r0, [r1, r4]
- cmp r0, 0x2
- beq _080A2FD6
- movs r0, 0x2
- strh r0, [r1, 0x8]
-_080A2FD6:
- ldrb r0, [r2]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r3
- movs r0, 0x1
- strh r0, [r1, 0xE]
-_080A2FE4:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A2FEC: .4byte gTasks
-_080A2FF0: .4byte gUnknown_02038538
- thumb_func_end AddMapNamePopUpWindowTask
-
- thumb_func_start sub_80A2FF4
-sub_80A2FF4: @ 80A2FF4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r3, _080A3018 @ =gTasks
- adds r4, r1, r3
- movs r0, 0x8
- ldrsh r2, [r4, r0]
- cmp r2, 0x1
- beq _080A304C
- cmp r2, 0x1
- bgt _080A301C
- cmp r2, 0
- beq _080A3026
- b _080A3092
- .align 2, 0
-_080A3018: .4byte gTasks
-_080A301C:
- cmp r2, 0x2
- beq _080A3064
- cmp r2, 0x4
- beq _080A308C
- b _080A3092
-_080A3026:
- ldrh r0, [r4, 0xC]
- subs r0, 0x2
- strh r0, [r4, 0xC]
- lsls r0, 16
- cmp r0, 0
- bgt _080A3092
- movs r0, 0x1
- strh r0, [r4, 0x8]
- ldr r0, _080A3048 @ =gUnknown_02038538
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r3
- strh r2, [r0, 0xA]
- b _080A3092
- .align 2, 0
-_080A3048: .4byte gUnknown_02038538
-_080A304C:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x78
- ble _080A3092
- movs r0, 0
- strh r0, [r4, 0xA]
- movs r0, 0x2
- strh r0, [r4, 0x8]
- b _080A3092
-_080A3064:
- ldrh r0, [r4, 0xC]
- adds r0, 0x2
- movs r5, 0
- strh r0, [r4, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1F
- ble _080A3092
- movs r1, 0xE
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080A3086
- bl sub_80A30E0
- strh r5, [r4, 0x8]
- strh r5, [r4, 0xE]
- b _080A3092
-_080A3086:
- movs r0, 0x4
- strh r0, [r4, 0x8]
- b _080A3098
-_080A308C:
- bl HideMapNamePopUpWindow
- b _080A3098
-_080A3092:
- ldr r1, _080A30A0 @ =REG_BG0VOFS
- ldrh r0, [r4, 0xC]
- strh r0, [r1]
-_080A3098:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A30A0: .4byte REG_BG0VOFS
- thumb_func_end sub_80A2FF4
-
- thumb_func_start HideMapNamePopUpWindow
-HideMapNamePopUpWindow: @ 80A30A4
- push {lr}
- ldr r0, _080A30D4 @ =sub_80A2FF4
- bl FuncIsActiveTask
- lsls r0, 24
- cmp r0, 0
- beq _080A30D0
- bl MenuLoadTextWindowGraphics
- movs r0, 0
- movs r1, 0
- movs r2, 0xD
- movs r3, 0x3
- bl MenuZeroFillWindowRect
- ldr r1, _080A30D8 @ =REG_BG0VOFS
- movs r0, 0
- strh r0, [r1]
- ldr r0, _080A30DC @ =gUnknown_02038538
- ldrb r0, [r0]
- bl DestroyTask
-_080A30D0:
- pop {r0}
- bx r0
- .align 2, 0
-_080A30D4: .4byte sub_80A2FF4
-_080A30D8: .4byte REG_BG0VOFS
-_080A30DC: .4byte gUnknown_02038538
- thumb_func_end HideMapNamePopUpWindow
-
- thumb_func_start sub_80A30E0
-sub_80A30E0: @ 80A30E0
- push {lr}
- sub sp, 0x14
- movs r0, 0
- bl MenuLoadTextWindowGraphics_OverrideFrameType
- ldr r0, _080A3114 @ =gMapHeader
- ldrb r1, [r0, 0x14]
- mov r0, sp
- movs r2, 0
- bl sub_80FBFB4
- movs r0, 0
- movs r1, 0
- movs r2, 0xD
- movs r3, 0x3
- bl MenuDrawTextWindow
- mov r0, sp
- movs r1, 0x1
- movs r2, 0x1
- movs r3, 0x60
- bl sub_8072BD8
- add sp, 0x14
- pop {r0}
- bx r0
- .align 2, 0
-_080A3114: .4byte gMapHeader
- thumb_func_end sub_80A30E0
-
.align 2, 0 @ Don't pad with nop.
diff --git a/asm/rom_810CBB4.s b/asm/rom_810CBB4.s
new file mode 100644
index 000000000..78fb7e6ac
--- /dev/null
+++ b/asm/rom_810CBB4.s
@@ -0,0 +1,6732 @@
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start SetUpFieldMove_Flash
+SetUpFieldMove_Flash: @ 810CBB4
+ push {lr}
+ ldr r0, _0810CBDC @ =gMapHeader
+ ldrb r0, [r0, 0x15]
+ cmp r0, 0x1
+ bne _0810CBF4
+ ldr r0, _0810CBE0 @ =0x00000828
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ bne _0810CBF4
+ ldr r1, _0810CBE4 @ =gUnknown_0300485C
+ ldr r0, _0810CBE8 @ =sub_808AB90
+ str r0, [r1]
+ ldr r1, _0810CBEC @ =gUnknown_03005CE4
+ ldr r0, _0810CBF0 @ =sub_810CBFC
+ str r0, [r1]
+ movs r0, 0x1
+ b _0810CBF6
+ .align 2, 0
+_0810CBDC: .4byte gMapHeader
+_0810CBE0: .4byte 0x00000828
+_0810CBE4: .4byte gUnknown_0300485C
+_0810CBE8: .4byte sub_808AB90
+_0810CBEC: .4byte gUnknown_03005CE4
+_0810CBF0: .4byte sub_810CBFC
+_0810CBF4:
+ movs r0, 0
+_0810CBF6:
+ pop {r1}
+ bx r1
+ thumb_func_end SetUpFieldMove_Flash
+
+ thumb_func_start sub_810CBFC
+sub_810CBFC: @ 810CBFC
+ push {lr}
+ bl oei_task_add
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0810CC24 @ =gUnknown_0202FF84
+ ldr r1, _0810CC28 @ =gUnknown_03005CE0
+ ldrb r1, [r1]
+ str r1, [r2]
+ ldr r2, _0810CC2C @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r2, _0810CC30 @ =sub_810CC34
+ lsrs r0, r2, 16
+ strh r0, [r1, 0x18]
+ strh r2, [r1, 0x1A]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810CC24: .4byte gUnknown_0202FF84
+_0810CC28: .4byte gUnknown_03005CE0
+_0810CC2C: .4byte gTasks
+_0810CC30: .4byte sub_810CC34
+ thumb_func_end sub_810CBFC
+
+ thumb_func_start sub_810CC34
+sub_810CC34: @ 810CC34
+ push {lr}
+ movs r0, 0xCF
+ bl PlaySE
+ ldr r0, _0810CC4C @ =0x00000828
+ bl FlagSet
+ ldr r0, _0810CC50 @ =gUnknown_081B694A
+ bl ScriptContext1_SetupScript
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810CC4C: .4byte 0x00000828
+_0810CC50: .4byte gUnknown_081B694A
+ thumb_func_end sub_810CC34
+
+ thumb_func_start sub_810CC54
+sub_810CC54: @ 810CC54
+ push {lr}
+ bl RunTasks
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl UpdatePaletteFade
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810CC54
+
+ thumb_func_start sub_810CC6C
+sub_810CC6C: @ 810CC6C
+ push {lr}
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl TransferPlttBuffer
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810CC6C
+
+ thumb_func_start sub_810CC80
+sub_810CC80: @ 810CC80
+ push {r4,lr}
+ sub sp, 0x8
+ movs r0, 0
+ bl SetVBlankCallback
+ movs r0, 0x80
+ lsls r0, 19
+ movs r1, 0
+ strh r1, [r0]
+ adds r0, 0xC
+ strh r1, [r0]
+ subs r0, 0x2
+ strh r1, [r0]
+ subs r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x10
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ subs r0, 0x6
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ subs r0, 0x6
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ mov r0, sp
+ strh r1, [r0]
+ ldr r1, _0810CD34 @ =0x040000d4
+ str r0, [r1]
+ movs r0, 0xC0
+ lsls r0, 19
+ str r0, [r1, 0x4]
+ ldr r0, _0810CD38 @ =0x8100c000
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ movs r4, 0
+ str r4, [sp, 0x4]
+ add r0, sp, 0x4
+ str r0, [r1]
+ movs r0, 0xE0
+ lsls r0, 19
+ str r0, [r1, 0x4]
+ ldr r0, _0810CD3C @ =0x85000100
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ mov r0, sp
+ strh r4, [r0]
+ str r0, [r1]
+ ldr r0, _0810CD40 @ =0x05000002
+ str r0, [r1, 0x4]
+ ldr r0, _0810CD44 @ =0x810001ff
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ bl ResetPaletteFade
+ bl ResetTasks
+ bl ResetSpriteData
+ ldr r3, _0810CD48 @ =0x04000208
+ ldrh r2, [r3]
+ strh r4, [r3]
+ ldr r4, _0810CD4C @ =0x04000200
+ ldrh r0, [r4]
+ movs r1, 0x1
+ orrs r0, r1
+ strh r0, [r4]
+ strh r2, [r3]
+ ldr r0, _0810CD50 @ =sub_810CC6C
+ bl SetVBlankCallback
+ ldr r0, _0810CD54 @ =sub_810CC54
+ bl SetMainCallback2
+ bl sub_810CD5C
+ lsls r0, 24
+ cmp r0, 0
+ bne _0810CD2A
+ ldr r0, _0810CD58 @ =gMain
+ ldr r0, [r0, 0x8]
+ bl SetMainCallback2
+_0810CD2A:
+ add sp, 0x8
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810CD34: .4byte 0x040000d4
+_0810CD38: .4byte 0x8100c000
+_0810CD3C: .4byte 0x85000100
+_0810CD40: .4byte 0x05000002
+_0810CD44: .4byte 0x810001ff
+_0810CD48: .4byte 0x04000208
+_0810CD4C: .4byte 0x04000200
+_0810CD50: .4byte sub_810CC6C
+_0810CD54: .4byte sub_810CC54
+_0810CD58: .4byte gMain
+ thumb_func_end sub_810CC80
+
+ thumb_func_start sub_810CD5C
+sub_810CD5C: @ 810CD5C
+ push {r4-r7,lr}
+ bl get_map_light_from_warp0
+ lsls r0, 24
+ lsrs r6, r0, 24
+ bl sav1_map_get_light_level
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r3, 0
+ ldr r4, _0810CD9C @ =gUnknown_083F7FC4
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _0810CDB0
+ adds r7, r4, 0
+ adds r0, r4, 0x4
+ mov r12, r0
+_0810CD7E:
+ lsls r2, r3, 3
+ adds r1, r2, r7
+ ldrb r0, [r1]
+ cmp r0, r6
+ bne _0810CDA0
+ ldrb r0, [r1, 0x1]
+ cmp r0, r5
+ bne _0810CDA0
+ mov r1, r12
+ adds r0, r2, r1
+ ldr r0, [r0]
+ bl _call_via_r0
+ movs r0, 0x1
+ b _0810CDB2
+ .align 2, 0
+_0810CD9C: .4byte gUnknown_083F7FC4
+_0810CDA0:
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ lsls r0, r3, 3
+ adds r0, r4
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0810CD7E
+_0810CDB0:
+ movs r0, 0
+_0810CDB2:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_810CD5C
+
+ thumb_func_start sub_810CDB8
+sub_810CDB8: @ 810CDB8
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsls r1, 24
+ lsrs r5, r0, 24
+ lsrs r4, r1, 24
+ movs r3, 0
+ ldr r1, _0810CDE4 @ =gUnknown_083F7FC4
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _0810CDF8
+ adds r6, r1, 0
+_0810CDCE:
+ lsls r0, r3, 3
+ adds r2, r0, r6
+ ldrb r0, [r2]
+ cmp r0, r5
+ bne _0810CDE8
+ ldrb r0, [r2, 0x1]
+ cmp r0, r4
+ bne _0810CDE8
+ ldrb r0, [r2, 0x2]
+ b _0810CDFA
+ .align 2, 0
+_0810CDE4: .4byte gUnknown_083F7FC4
+_0810CDE8:
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ lsls r0, r3, 3
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0810CDCE
+_0810CDF8:
+ movs r0, 0
+_0810CDFA:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_810CDB8
+
+ thumb_func_start fade_type_for_given_maplight_pair
+fade_type_for_given_maplight_pair: @ 810CE00
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsls r1, 24
+ lsrs r5, r0, 24
+ lsrs r4, r1, 24
+ movs r3, 0
+ ldr r1, _0810CE2C @ =gUnknown_083F7FC4
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _0810CE40
+ adds r6, r1, 0
+_0810CE16:
+ lsls r0, r3, 3
+ adds r2, r0, r6
+ ldrb r0, [r2]
+ cmp r0, r5
+ bne _0810CE30
+ ldrb r0, [r2, 0x1]
+ cmp r0, r4
+ bne _0810CE30
+ ldrb r0, [r2, 0x3]
+ b _0810CE42
+ .align 2, 0
+_0810CE2C: .4byte gUnknown_083F7FC4
+_0810CE30:
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ lsls r0, r3, 3
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0810CE16
+_0810CE40:
+ movs r0, 0
+_0810CE42:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end fade_type_for_given_maplight_pair
+
+ thumb_func_start sub_810CE48
+sub_810CE48: @ 810CE48
+ push {lr}
+ ldr r0, _0810CE58 @ =sub_810CE5C
+ movs r1, 0
+ bl CreateTask
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810CE58: .4byte sub_810CE5C
+ thumb_func_end sub_810CE48
+
+ thumb_func_start sub_810CE5C
+sub_810CE5C: @ 810CE5C
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0810CE70 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r0, _0810CE74 @ =sub_810CE78
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_0810CE70: .4byte gTasks
+_0810CE74: .4byte sub_810CE78
+ thumb_func_end sub_810CE5C
+
+ thumb_func_start sub_810CE78
+sub_810CE78: @ 810CE78
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r6, 0x80
+ lsls r6, 19
+ movs r5, 0
+ strh r5, [r6]
+ ldr r0, _0810CEE8 @ =gCaveTransitionTiles
+ ldr r1, _0810CEEC @ =0x0600c000
+ bl LZ77UnCompVram
+ ldr r0, _0810CEF0 @ =gCaveTransitionTilemap
+ ldr r1, _0810CEF4 @ =0x0600f800
+ bl LZ77UnCompVram
+ ldr r0, _0810CEF8 @ =gCaveTransitionPalette_White
+ movs r1, 0xE0
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r0, _0810CEFC @ =gUnknown_083F809C
+ movs r1, 0xE0
+ movs r2, 0x10
+ bl LoadPalette
+ ldr r1, _0810CF00 @ =REG_BLDCNT
+ ldr r2, _0810CF04 @ =0x00003e41
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, _0810CF08 @ =REG_BLDALPHA
+ strh r5, [r0]
+ adds r0, 0x2
+ strh r5, [r0]
+ subs r1, 0x48
+ ldr r2, _0810CF0C @ =0x00001f0c
+ adds r0, r2, 0
+ strh r0, [r1]
+ movs r1, 0x8A
+ lsls r1, 5
+ adds r0, r1, 0
+ strh r0, [r6]
+ ldr r1, _0810CF10 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0810CF14 @ =sub_810CF18
+ str r1, [r0]
+ movs r2, 0
+ movs r1, 0x10
+ strh r1, [r0, 0x8]
+ strh r2, [r0, 0xA]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810CEE8: .4byte gCaveTransitionTiles
+_0810CEEC: .4byte 0x0600c000
+_0810CEF0: .4byte gCaveTransitionTilemap
+_0810CEF4: .4byte 0x0600f800
+_0810CEF8: .4byte gCaveTransitionPalette_White
+_0810CEFC: .4byte gUnknown_083F809C
+_0810CF00: .4byte REG_BLDCNT
+_0810CF04: .4byte 0x00003e41
+_0810CF08: .4byte REG_BLDALPHA
+_0810CF0C: .4byte 0x00001f0c
+_0810CF10: .4byte gTasks
+_0810CF14: .4byte sub_810CF18
+ thumb_func_end sub_810CE78
+
+ thumb_func_start sub_810CF18
+sub_810CF18: @ 810CF18
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0810CF44 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r3, r1, r2
+ ldrh r2, [r3, 0xA]
+ movs r1, 0x80
+ lsls r1, 5
+ adds r0, r2, r1
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r1, _0810CF48 @ =REG_BLDALPHA
+ strh r0, [r1]
+ cmp r2, 0x10
+ bhi _0810CF4C
+ ldrh r0, [r3, 0xA]
+ adds r0, 0x1
+ strh r0, [r3, 0xA]
+ b _0810CF54
+ .align 2, 0
+_0810CF44: .4byte gTasks
+_0810CF48: .4byte REG_BLDALPHA
+_0810CF4C:
+ movs r0, 0
+ strh r0, [r3, 0xC]
+ ldr r0, _0810CF58 @ =sub_810CF5C
+ str r0, [r3]
+_0810CF54:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810CF58: .4byte sub_810CF5C
+ thumb_func_end sub_810CF18
+
+ thumb_func_start sub_810CF5C
+sub_810CF5C: @ 810CF5C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0810CF94 @ =REG_BLDALPHA
+ ldr r3, _0810CF98 @ =0x00001010
+ adds r1, r3, 0
+ strh r1, [r2]
+ ldr r2, _0810CF9C @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1, r2
+ ldrh r1, [r4, 0xC]
+ cmp r1, 0x7
+ bhi _0810CFA4
+ adds r0, r1, 0x1
+ strh r0, [r4, 0xC]
+ lsls r1, 1
+ ldr r0, _0810CFA0 @ =gUnknown_083F809C
+ adds r0, r1, r0
+ movs r2, 0x10
+ subs r2, r1
+ lsls r2, 16
+ lsrs r2, 16
+ movs r1, 0xE0
+ bl LoadPalette
+ b _0810CFB6
+ .align 2, 0
+_0810CF94: .4byte REG_BLDALPHA
+_0810CF98: .4byte 0x00001010
+_0810CF9C: .4byte gTasks
+_0810CFA0: .4byte gUnknown_083F809C
+_0810CFA4:
+ ldr r0, _0810CFBC @ =gCaveTransitionPalette_White
+ movs r1, 0
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r0, _0810CFC0 @ =sub_810CFC4
+ str r0, [r4]
+ movs r0, 0x8
+ strh r0, [r4, 0xC]
+_0810CFB6:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810CFBC: .4byte gCaveTransitionPalette_White
+_0810CFC0: .4byte sub_810CFC4
+ thumb_func_end sub_810CF5C
+
+ thumb_func_start sub_810CFC4
+sub_810CFC4: @ 810CFC4
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0810CFE4 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldrh r2, [r1, 0xC]
+ movs r3, 0xC
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ beq _0810CFE8
+ subs r0, r2, 0x1
+ strh r0, [r1, 0xC]
+ b _0810CFF0
+ .align 2, 0
+_0810CFE4: .4byte gTasks
+_0810CFE8:
+ ldr r0, _0810CFF4 @ =gMain
+ ldr r0, [r0, 0x8]
+ bl SetMainCallback2
+_0810CFF0:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810CFF4: .4byte gMain
+ thumb_func_end sub_810CFC4
+
+ thumb_func_start sub_810CFF8
+sub_810CFF8: @ 810CFF8
+ push {lr}
+ ldr r0, _0810D008 @ =sub_810D00C
+ movs r1, 0
+ bl CreateTask
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810D008: .4byte sub_810D00C
+ thumb_func_end sub_810CFF8
+
+ thumb_func_start sub_810D00C
+sub_810D00C: @ 810D00C
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0810D020 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r0, _0810D024 @ =sub_810D028
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_0810D020: .4byte gTasks
+_0810D024: .4byte sub_810D028
+ thumb_func_end sub_810D00C
+
+ thumb_func_start sub_810D028
+sub_810D028: @ 810D028
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ movs r6, 0x80
+ lsls r6, 19
+ movs r4, 0
+ strh r4, [r6]
+ ldr r0, _0810D098 @ =gCaveTransitionTiles
+ ldr r1, _0810D09C @ =0x0600c000
+ bl LZ77UnCompVram
+ ldr r0, _0810D0A0 @ =gCaveTransitionTilemap
+ ldr r1, _0810D0A4 @ =0x0600f800
+ bl LZ77UnCompVram
+ ldr r0, _0810D0A8 @ =REG_BLDCNT
+ strh r4, [r0]
+ adds r0, 0x2
+ strh r4, [r0]
+ adds r0, 0x2
+ strh r4, [r0]
+ ldr r1, _0810D0AC @ =REG_BG0CNT
+ ldr r2, _0810D0B0 @ =0x00001f0c
+ adds r0, r2, 0
+ strh r0, [r1]
+ movs r1, 0x8A
+ lsls r1, 5
+ adds r0, r1, 0
+ strh r0, [r6]
+ ldr r0, _0810D0B4 @ =gCaveTransitionPalette_White
+ movs r1, 0xE0
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r0, _0810D0B8 @ =gCaveTransitionPalette_Black
+ movs r1, 0
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r1, _0810D0BC @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0810D0C0 @ =sub_810D0C4
+ str r1, [r0]
+ movs r2, 0
+ movs r1, 0x10
+ strh r1, [r0, 0x8]
+ strh r2, [r0, 0xA]
+ strh r2, [r0, 0xC]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810D098: .4byte gCaveTransitionTiles
+_0810D09C: .4byte 0x0600c000
+_0810D0A0: .4byte gCaveTransitionTilemap
+_0810D0A4: .4byte 0x0600f800
+_0810D0A8: .4byte REG_BLDCNT
+_0810D0AC: .4byte REG_BG0CNT
+_0810D0B0: .4byte 0x00001f0c
+_0810D0B4: .4byte gCaveTransitionPalette_White
+_0810D0B8: .4byte gCaveTransitionPalette_Black
+_0810D0BC: .4byte gTasks
+_0810D0C0: .4byte sub_810D0C4
+ thumb_func_end sub_810D028
+
+ thumb_func_start sub_810D0C4
+sub_810D0C4: @ 810D0C4
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0810D0F8 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r3, r1, r2
+ ldrh r1, [r3, 0xC]
+ cmp r1, 0xF
+ bhi _0810D100
+ adds r2, r1, 0x1
+ adds r0, r2, 0x1
+ strh r0, [r3, 0xC]
+ movs r0, 0xF
+ subs r0, r1
+ lsls r0, 1
+ ldr r1, _0810D0FC @ =gUnknown_083F808C
+ adds r0, r1
+ lsls r2, 17
+ lsrs r2, 16
+ movs r1, 0xE0
+ bl LoadPalette
+ b _0810D114
+ .align 2, 0
+_0810D0F8: .4byte gTasks
+_0810D0FC: .4byte gUnknown_083F808C
+_0810D100:
+ ldr r1, _0810D118 @ =REG_BLDALPHA
+ ldr r2, _0810D11C @ =0x00001010
+ adds r0, r2, 0
+ strh r0, [r1]
+ subs r1, 0x2
+ ldr r2, _0810D120 @ =0x00003e41
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, _0810D124 @ =sub_810D128
+ str r0, [r3]
+_0810D114:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810D118: .4byte REG_BLDALPHA
+_0810D11C: .4byte 0x00001010
+_0810D120: .4byte 0x00003e41
+_0810D124: .4byte sub_810D128
+ thumb_func_end sub_810D0C4
+
+ thumb_func_start sub_810D128
+sub_810D128: @ 810D128
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0810D158 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r3, r1, r2
+ ldrh r0, [r3, 0xA]
+ movs r1, 0x10
+ subs r1, r0
+ lsls r1, 16
+ movs r2, 0x80
+ lsls r2, 21
+ adds r0, r1, r2
+ lsrs r0, 16
+ ldr r2, _0810D15C @ =REG_BLDALPHA
+ strh r0, [r2]
+ cmp r1, 0
+ beq _0810D160
+ ldrh r0, [r3, 0xA]
+ adds r0, 0x1
+ strh r0, [r3, 0xA]
+ b _0810D172
+ .align 2, 0
+_0810D158: .4byte gTasks
+_0810D15C: .4byte REG_BLDALPHA
+_0810D160:
+ ldr r0, _0810D178 @ =gCaveTransitionPalette_Black
+ movs r1, 0
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r0, _0810D17C @ =gMain
+ ldr r0, [r0, 0x8]
+ bl SetMainCallback2
+_0810D172:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810D178: .4byte gCaveTransitionPalette_Black
+_0810D17C: .4byte gMain
+ thumb_func_end sub_810D128
+
+ thumb_func_start sub_810D180
+sub_810D180: @ 810D180
+ push {r4-r7,lr}
+ sub sp, 0x4
+ bl HealPlayerParty
+ ldr r4, _0810D1A0 @ =0x00000804
+ adds r0, r4, 0
+ bl FlagGet
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x1
+ bne _0810D1A8
+ ldr r0, _0810D1A4 @ =gUnknown_02039324
+ strb r1, [r0]
+ b _0810D1B4
+ .align 2, 0
+_0810D1A0: .4byte 0x00000804
+_0810D1A4: .4byte gUnknown_02039324
+_0810D1A8:
+ ldr r1, _0810D1E8 @ =gUnknown_02039324
+ movs r0, 0
+ strb r0, [r1]
+ adds r0, r4, 0
+ bl FlagSet
+_0810D1B4:
+ movs r0, 0x1
+ bl GetGameStat
+ cmp r0, 0
+ bne _0810D1D4
+ ldr r2, _0810D1EC @ =gSaveBlock2
+ ldrh r1, [r2, 0xE]
+ lsls r1, 16
+ ldrb r0, [r2, 0x10]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x11]
+ orrs r1, r0
+ movs r0, 0x1
+ bl SetGameStat
+_0810D1D4:
+ bl SetSecretBase2Field_9
+ ldr r0, _0810D1EC @ =gSaveBlock2
+ ldrb r0, [r0, 0x8]
+ cmp r0, 0
+ bne _0810D1F0
+ movs r0, 0x1
+ bl sub_80537CC
+ b _0810D1F6
+ .align 2, 0
+_0810D1E8: .4byte gUnknown_02039324
+_0810D1EC: .4byte gSaveBlock2
+_0810D1F0:
+ movs r0, 0x2
+ bl sub_80537CC
+_0810D1F6:
+ movs r6, 0
+ movs r5, 0
+ mov r7, sp
+_0810D1FC:
+ movs r0, 0x64
+ adds r1, r5, 0
+ muls r1, r0
+ ldr r0, _0810D260 @ =gPlayerParty
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0x5
+ bl GetMonData
+ cmp r0, 0
+ beq _0810D23A
+ adds r0, r4, 0
+ movs r1, 0x6
+ bl GetMonData
+ cmp r0, 0
+ bne _0810D23A
+ adds r0, r4, 0
+ movs r1, 0x43
+ bl GetMonData
+ cmp r0, 0
+ bne _0810D23A
+ movs r0, 0x1
+ strb r0, [r7]
+ adds r0, r4, 0
+ movs r1, 0x43
+ mov r2, sp
+ bl SetMonData
+ movs r6, 0x1
+_0810D23A:
+ adds r5, 0x1
+ cmp r5, 0x5
+ ble _0810D1FC
+ cmp r6, 0x1
+ bne _0810D250
+ movs r0, 0x2A
+ bl IncrementGameStat
+ ldr r0, _0810D264 @ =0x0000083b
+ bl FlagSet
+_0810D250:
+ ldr r0, _0810D268 @ =sub_8141F90
+ bl SetMainCallback2
+ movs r0, 0
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0810D260: .4byte gPlayerParty
+_0810D264: .4byte 0x0000083b
+_0810D268: .4byte sub_8141F90
+ thumb_func_end sub_810D180
+
+ thumb_func_start sp0C8_whiteout_maybe
+sp0C8_whiteout_maybe: @ 810D26C
+ push {lr}
+ ldr r0, _0810D27C @ =CB2_WhiteOut
+ bl SetMainCallback2
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0810D27C: .4byte CB2_WhiteOut
+ thumb_func_end sp0C8_whiteout_maybe
+
+ thumb_func_start sub_810D280
+sub_810D280: @ 810D280
+ push {r4,lr}
+ ldr r0, _0810D2A4 @ =0x00004024
+ bl VarGet
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ ldr r0, _0810D2A8 @ =0x00004025
+ bl VarGet
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r4, 16
+ orrs r4, r0
+ adds r0, r4, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0810D2A4: .4byte 0x00004024
+_0810D2A8: .4byte 0x00004025
+ thumb_func_end sub_810D280
+
+ thumb_func_start sub_810D2AC
+sub_810D2AC: @ 810D2AC
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _0810D2CC @ =0x00004024
+ lsrs r1, r4, 16
+ bl VarSet
+ ldr r0, _0810D2D0 @ =0x00004025
+ lsls r4, 16
+ lsrs r4, 16
+ adds r1, r4, 0
+ bl VarSet
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810D2CC: .4byte 0x00004024
+_0810D2D0: .4byte 0x00004025
+ thumb_func_end sub_810D2AC
+
+ thumb_func_start unref_sub_810D2D4
+unref_sub_810D2D4: @ 810D2D4
+ push {r4,lr}
+ bl Random
+ adds r4, r0, 0
+ bl Random
+ lsls r4, 16
+ lsls r0, 16
+ lsrs r0, 16
+ orrs r4, r0
+ adds r0, r4, 0
+ bl sub_810D2AC
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end unref_sub_810D2D4
+
+ thumb_func_start sub_810D2F4
+sub_810D2F4: @ 810D2F4
+ push {r4,lr}
+ lsls r0, 16
+ lsrs r4, r0, 16
+ bl sub_810D280
+ adds r1, r0, 0
+ cmp r4, 0
+ beq _0810D318
+ ldr r3, _0810D324 @ =0x41c64e6d
+ ldr r2, _0810D328 @ =0x00003039
+_0810D308:
+ adds r0, r1, 0
+ muls r0, r3
+ adds r1, r0, r2
+ subs r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0
+ bne _0810D308
+_0810D318:
+ adds r0, r1, 0
+ bl sub_810D2AC
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810D324: .4byte 0x41c64e6d
+_0810D328: .4byte 0x00003039
+ thumb_func_end sub_810D2F4
+
+ thumb_func_start sub_810D32C
+sub_810D32C: @ 810D32C
+ push {r4-r6,lr}
+ bl sub_810D280
+ lsrs r6, r0, 16
+ movs r5, 0
+_0810D336:
+ movs r0, 0x64
+ adds r1, r5, 0
+ muls r1, r0
+ ldr r0, _0810D360 @ =gPlayerParty
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _0810D368
+ adds r0, r4, 0
+ movs r1, 0
+ bl GetMonData
+ ldr r1, _0810D364 @ =0x0000ffff
+ ands r1, r0
+ cmp r1, r6
+ bne _0810D368
+ movs r0, 0x1
+ b _0810D370
+ .align 2, 0
+_0810D360: .4byte gPlayerParty
+_0810D364: .4byte 0x0000ffff
+_0810D368:
+ adds r5, 0x1
+ cmp r5, 0x5
+ ble _0810D336
+ movs r0, 0
+_0810D370:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_810D32C
+
+ thumb_func_start sub_810D378
+sub_810D378: @ 810D378
+ push {lr}
+ bl get_map_light_from_warp0
+ lsls r0, 24
+ lsrs r0, 24
+ bl is_light_level_1_2_3_5_or_6
+ lsls r0, 24
+ cmp r0, 0
+ beq _0810D3BE
+ bl RtcCalcLocalTime
+ ldr r1, _0810D3AC @ =gUnknown_083F8340
+ ldr r0, _0810D3B0 @ =gLocalTime
+ ldrb r0, [r0, 0x2]
+ lsls r0, 24
+ asrs r0, 24
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0810D3B8
+ ldr r0, _0810D3B4 @ =0x0000083a
+ bl FlagSet
+ b _0810D3BE
+ .align 2, 0
+_0810D3AC: .4byte gUnknown_083F8340
+_0810D3B0: .4byte gLocalTime
+_0810D3B4: .4byte 0x0000083a
+_0810D3B8:
+ ldr r0, _0810D3C4 @ =0x0000083a
+ bl FlagReset
+_0810D3BE:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810D3C4: .4byte 0x0000083a
+ thumb_func_end sub_810D378
+
+ thumb_func_start sub_810D3C8
+sub_810D3C8: @ 810D3C8
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_807DDFC
+ lsls r0, 24
+ cmp r0, 0
+ beq _0810D3E2
+ bl EnableBothScriptContexts
+ adds r0, r4, 0
+ bl DestroyTask
+_0810D3E2:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810D3C8
+
+ thumb_func_start sub_810D3E8
+sub_810D3E8: @ 810D3E8
+ push {lr}
+ ldr r0, _0810D3F8 @ =sub_810D3C8
+ movs r1, 0x50
+ bl CreateTask
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810D3F8: .4byte sub_810D3C8
+ thumb_func_end sub_810D3E8
+
+ thumb_func_start sub_810D3FC
+sub_810D3FC: @ 810D3FC
+ push {lr}
+ ldr r0, _0810D40C @ =0x00004049
+ bl GetVarPointer
+ movs r1, 0
+ strh r1, [r0]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810D40C: .4byte 0x00004049
+ thumb_func_end sub_810D3FC
+
+ thumb_func_start UpdateBirchState
+UpdateBirchState: @ 810D410
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ ldr r0, _0810D438 @ =0x00004049
+ bl GetVarPointer
+ adds r5, r0, 0
+ ldrh r0, [r5]
+ adds r4, r0
+ strh r4, [r5]
+ ldrh r0, [r5]
+ movs r1, 0x7
+ bl __umodsi3
+ strh r0, [r5]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810D438: .4byte 0x00004049
+ thumb_func_end UpdateBirchState
+
+ thumb_func_start ScriptGetPokedexInfo
+ScriptGetPokedexInfo: @ 810D43C
+ push {lr}
+ ldr r0, _0810D458 @ =gSpecialVar_0x8004
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _0810D460
+ movs r0, 0
+ bl GetHoennPokedexCount
+ ldr r1, _0810D45C @ =gSpecialVar_0x8005
+ strh r0, [r1]
+ movs r0, 0x1
+ bl GetHoennPokedexCount
+ b _0810D470
+ .align 2, 0
+_0810D458: .4byte gSpecialVar_0x8004
+_0810D45C: .4byte gSpecialVar_0x8005
+_0810D460:
+ movs r0, 0
+ bl GetNationalPokedexCount
+ ldr r1, _0810D480 @ =gSpecialVar_0x8005
+ strh r0, [r1]
+ movs r0, 0x1
+ bl GetNationalPokedexCount
+_0810D470:
+ ldr r1, _0810D484 @ =gSpecialVar_0x8006
+ strh r0, [r1]
+ bl IsNationalPokedexEnabled
+ lsls r0, 16
+ lsrs r0, 16
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0810D480: .4byte gSpecialVar_0x8005
+_0810D484: .4byte gSpecialVar_0x8006
+ thumb_func_end ScriptGetPokedexInfo
+
+ thumb_func_start GetPokedexRatingText
+GetPokedexRatingText: @ 810D488
+ push {lr}
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x9
+ bhi _0810D494
+ b _0810D5EC
+_0810D494:
+ cmp r0, 0x13
+ bhi _0810D4A0
+ ldr r0, _0810D49C @ =gUnknown_081C456A
+ b _0810D5F6
+ .align 2, 0
+_0810D49C: .4byte gUnknown_081C456A
+_0810D4A0:
+ cmp r0, 0x1D
+ bhi _0810D4AC
+ ldr r0, _0810D4A8 @ =gUnknown_081C45B0
+ b _0810D5F6
+ .align 2, 0
+_0810D4A8: .4byte gUnknown_081C45B0
+_0810D4AC:
+ cmp r0, 0x27
+ bhi _0810D4B8
+ ldr r0, _0810D4B4 @ =gUnknown_081C45F9
+ b _0810D5F6
+ .align 2, 0
+_0810D4B4: .4byte gUnknown_081C45F9
+_0810D4B8:
+ cmp r0, 0x31
+ bhi _0810D4C4
+ ldr r0, _0810D4C0 @ =gUnknown_081C4648
+ b _0810D5F6
+ .align 2, 0
+_0810D4C0: .4byte gUnknown_081C4648
+_0810D4C4:
+ cmp r0, 0x3B
+ bhi _0810D4D0
+ ldr r0, _0810D4CC @ =gUnknown_081C467E
+ b _0810D5F6
+ .align 2, 0
+_0810D4CC: .4byte gUnknown_081C467E
+_0810D4D0:
+ cmp r0, 0x45
+ bhi _0810D4DC
+ ldr r0, _0810D4D8 @ =gUnknown_081C46B9
+ b _0810D5F6
+ .align 2, 0
+_0810D4D8: .4byte gUnknown_081C46B9
+_0810D4DC:
+ cmp r0, 0x4F
+ bhi _0810D4E8
+ ldr r0, _0810D4E4 @ =gUnknown_081C46FE
+ b _0810D5F6
+ .align 2, 0
+_0810D4E4: .4byte gUnknown_081C46FE
+_0810D4E8:
+ cmp r0, 0x59
+ bhi _0810D4F4
+ ldr r0, _0810D4F0 @ =gUnknown_081C4747
+ b _0810D5F6
+ .align 2, 0
+_0810D4F0: .4byte gUnknown_081C4747
+_0810D4F4:
+ cmp r0, 0x63
+ bhi _0810D500
+ ldr r0, _0810D4FC @ =gUnknown_081C4780
+ b _0810D5F6
+ .align 2, 0
+_0810D4FC: .4byte gUnknown_081C4780
+_0810D500:
+ cmp r0, 0x6D
+ bhi _0810D50C
+ ldr r0, _0810D508 @ =gUnknown_081C47DF
+ b _0810D5F6
+ .align 2, 0
+_0810D508: .4byte gUnknown_081C47DF
+_0810D50C:
+ cmp r0, 0x77
+ bhi _0810D518
+ ldr r0, _0810D514 @ =gUnknown_081C4828
+ b _0810D5F6
+ .align 2, 0
+_0810D514: .4byte gUnknown_081C4828
+_0810D518:
+ cmp r0, 0x81
+ bhi _0810D524
+ ldr r0, _0810D520 @ =gUnknown_081C4863
+ b _0810D5F6
+ .align 2, 0
+_0810D520: .4byte gUnknown_081C4863
+_0810D524:
+ cmp r0, 0x8B
+ bhi _0810D530
+ ldr r0, _0810D52C @ =gUnknown_081C489C
+ b _0810D5F6
+ .align 2, 0
+_0810D52C: .4byte gUnknown_081C489C
+_0810D530:
+ cmp r0, 0x95
+ bhi _0810D53C
+ ldr r0, _0810D538 @ =gUnknown_081C48EB
+ b _0810D5F6
+ .align 2, 0
+_0810D538: .4byte gUnknown_081C48EB
+_0810D53C:
+ cmp r0, 0x9F
+ bhi _0810D548
+ ldr r0, _0810D544 @ =gUnknown_081C4936
+ b _0810D5F6
+ .align 2, 0
+_0810D544: .4byte gUnknown_081C4936
+_0810D548:
+ cmp r0, 0xA9
+ bhi _0810D554
+ ldr r0, _0810D550 @ =gUnknown_081C49A2
+ b _0810D5F6
+ .align 2, 0
+_0810D550: .4byte gUnknown_081C49A2
+_0810D554:
+ cmp r0, 0xB3
+ bhi _0810D560
+ ldr r0, _0810D55C @ =gUnknown_081C4A06
+ b _0810D5F6
+ .align 2, 0
+_0810D55C: .4byte gUnknown_081C4A06
+_0810D560:
+ cmp r0, 0xBD
+ bhi _0810D56C
+ ldr r0, _0810D568 @ =gUnknown_081C4A4F
+ b _0810D5F6
+ .align 2, 0
+_0810D568: .4byte gUnknown_081C4A4F
+_0810D56C:
+ cmp r0, 0xC7
+ bls _0810D5DA
+ cmp r0, 0xC8
+ bne _0810D5A8
+ ldr r0, _0810D5A4 @ =0x00000199
+ bl SpeciesToNationalPokedexNum
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x1
+ bl sub_8090D90
+ lsls r0, 24
+ cmp r0, 0
+ bne _0810D5DA
+ movs r0, 0xCD
+ lsls r0, 1
+ bl SpeciesToNationalPokedexNum
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x1
+ bl sub_8090D90
+ lsls r0, 24
+ cmp r0, 0
+ bne _0810D5DA
+ b _0810D5F4
+ .align 2, 0
+_0810D5A4: .4byte 0x00000199
+_0810D5A8:
+ cmp r0, 0xC9
+ bne _0810D5E8
+ ldr r0, _0810D5E0 @ =0x00000199
+ bl SpeciesToNationalPokedexNum
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x1
+ bl sub_8090D90
+ lsls r0, 24
+ cmp r0, 0
+ beq _0810D5F4
+ movs r0, 0xCD
+ lsls r0, 1
+ bl SpeciesToNationalPokedexNum
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x1
+ bl sub_8090D90
+ lsls r0, 24
+ cmp r0, 0
+ beq _0810D5F4
+_0810D5DA:
+ ldr r0, _0810D5E4 @ =gUnknown_081C4A91
+ b _0810D5F6
+ .align 2, 0
+_0810D5E0: .4byte 0x00000199
+_0810D5E4: .4byte gUnknown_081C4A91
+_0810D5E8:
+ cmp r0, 0xCA
+ beq _0810D5F4
+_0810D5EC:
+ ldr r0, _0810D5F0 @ =gUnknown_081C4520
+ b _0810D5F6
+ .align 2, 0
+_0810D5F0: .4byte gUnknown_081C4520
+_0810D5F4:
+ ldr r0, _0810D5FC @ =gUnknown_081C4ADA
+_0810D5F6:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0810D5FC: .4byte gUnknown_081C4ADA
+ thumb_func_end GetPokedexRatingText
+
+ thumb_func_start ShowPokedexRatingMessage
+ShowPokedexRatingMessage: @ 810D600
+ push {lr}
+ ldr r0, _0810D614 @ =gSpecialVar_0x8004
+ ldrh r0, [r0]
+ bl GetPokedexRatingText
+ bl ShowFieldMessage
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810D614: .4byte gSpecialVar_0x8004
+ thumb_func_end ShowPokedexRatingMessage
+
+ thumb_func_start AccessHallOfFamePC
+AccessHallOfFamePC: @ 810D618
+ push {lr}
+ ldr r0, _0810D628 @ =sub_81428CC
+ bl SetMainCallback2
+ bl ScriptContext2_Enable
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810D628: .4byte sub_81428CC
+ thumb_func_end AccessHallOfFamePC
+
+ thumb_func_start ReturnFromHallOfFamePC
+ReturnFromHallOfFamePC: @ 810D62C
+ push {lr}
+ ldr r0, _0810D640 @ =c2_exit_to_overworld_2_switch
+ bl SetMainCallback2
+ ldr r1, _0810D644 @ =gUnknown_0300485C
+ ldr r0, _0810D648 @ =ReshowPCMenuAfterHallOfFamePC
+ str r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810D640: .4byte c2_exit_to_overworld_2_switch
+_0810D644: .4byte gUnknown_0300485C
+_0810D648: .4byte ReshowPCMenuAfterHallOfFamePC
+ thumb_func_end ReturnFromHallOfFamePC
+
+ thumb_func_start ReshowPCMenuAfterHallOfFamePC
+ReshowPCMenuAfterHallOfFamePC: @ 810D64C
+ push {lr}
+ sub sp, 0x4
+ bl ScriptContext2_Enable
+ bl sub_8053E90
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ bl TryCreatePCMenu
+ bl sub_80B5838
+ ldr r0, _0810D680 @ =sub_810D684
+ movs r1, 0xA
+ bl CreateTask
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810D680: .4byte sub_810D684
+ thumb_func_end ReshowPCMenuAfterHallOfFamePC
+
+ thumb_func_start sub_810D684
+sub_810D684: @ 810D684
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _0810D6A0 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0810D69C
+ adds r0, r2, 0
+ bl DestroyTask
+_0810D69C:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810D6A0: .4byte gPaletteFade
+ thumb_func_end sub_810D684
+
+ thumb_func_start sub_810D6A4
+sub_810D6A4: @ 810D6A4
+ push {lr}
+ ldr r0, _0810D6B4 @ =sub_8145D88
+ bl SetMainCallback2
+ bl ScriptContext2_Enable
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810D6B4: .4byte sub_8145D88
+ thumb_func_end sub_810D6A4
+
+ thumb_func_start sub_810D6B8
+sub_810D6B8: @ 810D6B8
+ push {lr}
+ ldr r0, _0810D6D0 @ =gMain
+ ldr r1, _0810D6D4 @ =c2_exit_to_overworld_2_switch
+ str r1, [r0, 0x8]
+ ldr r0, _0810D6D8 @ =CB2_ViewWallClock
+ bl SetMainCallback2
+ bl ScriptContext2_Enable
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810D6D0: .4byte gMain
+_0810D6D4: .4byte c2_exit_to_overworld_2_switch
+_0810D6D8: .4byte CB2_ViewWallClock
+ thumb_func_end sub_810D6B8
+
+ thumb_func_start ResetCyclingRoadChallengeData
+ResetCyclingRoadChallengeData: @ 810D6DC
+ ldr r0, _0810D6F0 @ =gUnknown_02039250
+ movs r1, 0
+ strb r1, [r0]
+ ldr r0, _0810D6F4 @ =gUnknown_02039251
+ strb r1, [r0]
+ ldr r1, _0810D6F8 @ =gUnknown_02039254
+ movs r0, 0
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_0810D6F0: .4byte gUnknown_02039250
+_0810D6F4: .4byte gUnknown_02039251
+_0810D6F8: .4byte gUnknown_02039254
+ thumb_func_end ResetCyclingRoadChallengeData
+
+ thumb_func_start BeginCyclingRoadChallenge
+BeginCyclingRoadChallenge: @ 810D6FC
+ ldr r1, _0810D714 @ =gUnknown_02039250
+ movs r0, 0x1
+ strb r0, [r1]
+ ldr r1, _0810D718 @ =gUnknown_02039251
+ movs r0, 0
+ strb r0, [r1]
+ ldr r1, _0810D71C @ =gUnknown_02039254
+ ldr r0, _0810D720 @ =gMain
+ ldr r0, [r0, 0x20]
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_0810D714: .4byte gUnknown_02039250
+_0810D718: .4byte gUnknown_02039251
+_0810D71C: .4byte gUnknown_02039254
+_0810D720: .4byte gMain
+ thumb_func_end BeginCyclingRoadChallenge
+
+ thumb_func_start GetPlayerAvatarBike
+GetPlayerAvatarBike: @ 810D724
+ push {lr}
+ movs r0, 0x4
+ bl TestPlayerAvatarFlags
+ lsls r0, 24
+ cmp r0, 0
+ beq _0810D736
+ movs r0, 0x1
+ b _0810D748
+_0810D736:
+ movs r0, 0x2
+ bl TestPlayerAvatarFlags
+ lsls r0, 24
+ cmp r0, 0
+ bne _0810D746
+ movs r0, 0
+ b _0810D748
+_0810D746:
+ movs r0, 0x2
+_0810D748:
+ pop {r1}
+ bx r1
+ thumb_func_end GetPlayerAvatarBike
+
+ thumb_func_start DetermineCyclingRoadResults
+DetermineCyclingRoadResults: @ 810D74C
+ push {r4-r7,lr}
+ adds r7, r0, 0
+ lsls r1, 24
+ lsrs r6, r1, 24
+ cmp r6, 0x63
+ bhi _0810D778
+ ldr r4, _0810D770 @ =gStringVar1
+ adds r0, r4, 0
+ adds r1, r6, 0
+ movs r2, 0
+ movs r3, 0x2
+ bl ConvertIntToDecimalStringN
+ ldr r1, _0810D774 @ =gOtherText_Times
+ adds r0, r4, 0
+ bl StringAppend
+ b _0810D780
+ .align 2, 0
+_0810D770: .4byte gStringVar1
+_0810D774: .4byte gOtherText_Times
+_0810D778:
+ ldr r0, _0810D7CC @ =gStringVar1
+ ldr r1, _0810D7D0 @ =gOtherText_99Times
+ bl StringCopy
+_0810D780:
+ ldr r0, _0810D7D4 @ =0x00000e0f
+ cmp r7, r0
+ bhi _0810D7E0
+ ldr r4, _0810D7D8 @ =gStringVar2
+ adds r0, r7, 0
+ movs r1, 0x3C
+ bl __udivsi3
+ adds r1, r0, 0
+ adds r0, r4, 0
+ movs r2, 0x1
+ movs r3, 0x2
+ bl ConvertIntToDecimalStringN
+ movs r0, 0xAD
+ strb r0, [r4, 0x2]
+ adds r5, r4, 0x3
+ adds r0, r7, 0
+ movs r1, 0x3C
+ bl __umodsi3
+ movs r1, 0x64
+ muls r0, r1
+ movs r1, 0x3C
+ bl __udivsi3
+ adds r1, r0, 0
+ adds r0, r5, 0
+ movs r2, 0x2
+ movs r3, 0x2
+ bl ConvertIntToDecimalStringN
+ ldr r1, _0810D7DC @ =gOtherText_Seconds
+ adds r0, r4, 0
+ bl StringAppend
+ b _0810D7E8
+ .align 2, 0
+_0810D7CC: .4byte gStringVar1
+_0810D7D0: .4byte gOtherText_99Times
+_0810D7D4: .4byte 0x00000e0f
+_0810D7D8: .4byte gStringVar2
+_0810D7DC: .4byte gOtherText_Seconds
+_0810D7E0:
+ ldr r0, _0810D7F4 @ =gStringVar2
+ ldr r1, _0810D7F8 @ =gOtherText_1Minute
+ bl StringCopy
+_0810D7E8:
+ movs r4, 0
+ cmp r6, 0
+ bne _0810D7FC
+ movs r4, 0x5
+ b _0810D81A
+ .align 2, 0
+_0810D7F4: .4byte gStringVar2
+_0810D7F8: .4byte gOtherText_1Minute
+_0810D7FC:
+ cmp r6, 0x3
+ bhi _0810D804
+ movs r4, 0x4
+ b _0810D81A
+_0810D804:
+ cmp r6, 0x9
+ bhi _0810D80C
+ movs r4, 0x3
+ b _0810D81A
+_0810D80C:
+ cmp r6, 0x13
+ bhi _0810D814
+ movs r4, 0x2
+ b _0810D81A
+_0810D814:
+ cmp r6, 0x63
+ bhi _0810D81A
+ movs r4, 0x1
+_0810D81A:
+ adds r0, r7, 0
+ movs r1, 0x3C
+ bl __udivsi3
+ cmp r0, 0xA
+ bhi _0810D82A
+ adds r0, r4, 0x5
+ b _0810D848
+_0810D82A:
+ cmp r0, 0xF
+ bhi _0810D832
+ adds r0, r4, 0x4
+ b _0810D848
+_0810D832:
+ cmp r0, 0x14
+ bhi _0810D83A
+ adds r0, r4, 0x3
+ b _0810D848
+_0810D83A:
+ cmp r0, 0x28
+ bhi _0810D842
+ adds r0, r4, 0x2
+ b _0810D848
+_0810D842:
+ cmp r0, 0x3B
+ bhi _0810D84C
+ adds r0, r4, 0x1
+_0810D848:
+ lsls r0, 24
+ lsrs r4, r0, 24
+_0810D84C:
+ ldr r0, _0810D858 @ =gScriptResult
+ strh r4, [r0]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810D858: .4byte gScriptResult
+ thumb_func_end DetermineCyclingRoadResults
+
+ thumb_func_start FinishCyclingRoadChallenge
+FinishCyclingRoadChallenge: @ 810D85C
+ push {r4,r5,lr}
+ ldr r0, _0810D880 @ =gMain
+ ldr r1, _0810D884 @ =gUnknown_02039254
+ ldr r4, [r0, 0x20]
+ ldr r0, [r1]
+ subs r4, r0
+ ldr r5, _0810D888 @ =gUnknown_02039251
+ ldrb r1, [r5]
+ adds r0, r4, 0
+ bl DetermineCyclingRoadResults
+ ldrb r1, [r5]
+ adds r0, r4, 0
+ bl RecordCyclingRoadResults
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810D880: .4byte gMain
+_0810D884: .4byte gUnknown_02039254
+_0810D888: .4byte gUnknown_02039251
+ thumb_func_end FinishCyclingRoadChallenge
+
+ thumb_func_start RecordCyclingRoadResults
+RecordCyclingRoadResults: @ 810D88C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r5, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ mov r8, r1
+ ldr r6, _0810D8E0 @ =0x00004028
+ adds r0, r6, 0
+ bl VarGet
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ ldr r7, _0810D8E4 @ =0x00004029
+ adds r0, r7, 0
+ bl VarGet
+ lsls r0, 16
+ adds r4, r0
+ cmp r4, r5
+ bhi _0810D8BC
+ cmp r4, 0
+ bne _0810D8D6
+_0810D8BC:
+ lsls r1, r5, 16
+ lsrs r1, 16
+ adds r0, r6, 0
+ bl VarSet
+ lsrs r1, r5, 16
+ adds r0, r7, 0
+ bl VarSet
+ ldr r0, _0810D8E8 @ =0x00004027
+ mov r1, r8
+ bl VarSet
+_0810D8D6:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810D8E0: .4byte 0x00004028
+_0810D8E4: .4byte 0x00004029
+_0810D8E8: .4byte 0x00004027
+ thumb_func_end RecordCyclingRoadResults
+
+ thumb_func_start GetRecordedCyclingRoadResults
+GetRecordedCyclingRoadResults: @ 810D8EC
+ push {r4,lr}
+ ldr r0, _0810D920 @ =0x00004028
+ bl VarGet
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ ldr r0, _0810D924 @ =0x00004029
+ bl VarGet
+ lsls r0, 16
+ adds r4, r0
+ cmp r4, 0
+ beq _0810D92C
+ ldr r0, _0810D928 @ =0x00004027
+ bl VarGet
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl DetermineCyclingRoadResults
+ movs r0, 0x1
+ b _0810D92E
+ .align 2, 0
+_0810D920: .4byte 0x00004028
+_0810D924: .4byte 0x00004029
+_0810D928: .4byte 0x00004027
+_0810D92C:
+ movs r0, 0
+_0810D92E:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end GetRecordedCyclingRoadResults
+
+ thumb_func_start UpdateCyclingRoadState
+UpdateCyclingRoadState: @ 810D934
+ push {r4,lr}
+ ldr r0, _0810D974 @ =gUnknown_020297F0
+ ldrh r1, [r0]
+ ldr r0, _0810D978 @ =0x00000c1d
+ cmp r1, r0
+ beq _0810D96C
+ ldr r4, _0810D97C @ =0x000040a9
+ adds r0, r4, 0
+ bl VarGet
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x2
+ beq _0810D95E
+ adds r0, r4, 0
+ bl VarGet
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x3
+ bne _0810D96C
+_0810D95E:
+ adds r0, r4, 0
+ movs r1, 0
+ bl VarSet
+ movs r0, 0
+ bl sav1_set_battle_music_maybe
+_0810D96C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810D974: .4byte gUnknown_020297F0
+_0810D978: .4byte 0x00000c1d
+_0810D97C: .4byte 0x000040a9
+ thumb_func_end UpdateCyclingRoadState
+
+ thumb_func_start SetSSTidalFlag
+SetSSTidalFlag: @ 810D980
+ push {lr}
+ ldr r0, _0810D998 @ =0x0000082d
+ bl FlagSet
+ ldr r0, _0810D99C @ =0x0000404a
+ bl GetVarPointer
+ movs r1, 0
+ strh r1, [r0]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810D998: .4byte 0x0000082d
+_0810D99C: .4byte 0x0000404a
+ thumb_func_end SetSSTidalFlag
+
+ thumb_func_start ResetSSTidalFlag
+ResetSSTidalFlag: @ 810D9A0
+ push {lr}
+ ldr r0, _0810D9AC @ =0x0000082d
+ bl FlagReset
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810D9AC: .4byte 0x0000082d
+ thumb_func_end ResetSSTidalFlag
+
+ thumb_func_start sub_810D9B0
+sub_810D9B0: @ 810D9B0
+ push {r4,lr}
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldr r0, _0810D9DC @ =0x0000082d
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ beq _0810D9D6
+ ldr r0, _0810D9E0 @ =0x0000404a
+ bl GetVarPointer
+ ldrh r1, [r0]
+ adds r1, r4, r1
+ strh r1, [r0]
+ lsls r1, 16
+ lsrs r1, 16
+ cmp r1, 0xCC
+ bhi _0810D9E4
+_0810D9D6:
+ movs r0, 0
+ b _0810D9E6
+ .align 2, 0
+_0810D9DC: .4byte 0x0000082d
+_0810D9E0: .4byte 0x0000404a
+_0810D9E4:
+ movs r0, 0x1
+_0810D9E6:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_810D9B0
+
+ thumb_func_start sub_810D9EC
+sub_810D9EC: @ 810D9EC
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ mov r8, r0
+ adds r5, r1, 0
+ adds r6, r2, 0
+ adds r7, r3, 0
+ ldr r0, _0810DA1C @ =0x0000404a
+ bl GetVarPointer
+ adds r4, r0, 0
+ ldr r0, _0810DA20 @ =0x000040b4
+ bl GetVarPointer
+ ldrh r0, [r0]
+ subs r0, 0x1
+ cmp r0, 0x9
+ bhi _0810DAB2
+ lsls r0, 2
+ ldr r1, _0810DA24 @ =_0810DA28
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0810DA1C: .4byte 0x0000404a
+_0810DA20: .4byte 0x000040b4
+_0810DA24: .4byte _0810DA28
+ .align 2, 0
+_0810DA28:
+ .4byte _0810DA50
+ .4byte _0810DA60
+ .4byte _0810DA54
+ .4byte _0810DA58
+ .4byte _0810DA58
+ .4byte _0810DA5C
+ .4byte _0810DA88
+ .4byte _0810DA50
+ .4byte _0810DA54
+ .4byte _0810DA5C
+_0810DA50:
+ movs r0, 0x1
+ b _0810DABE
+_0810DA54:
+ movs r0, 0x4
+ b _0810DABE
+_0810DA58:
+ movs r0, 0x2
+ b _0810DABE
+_0810DA5C:
+ movs r0, 0x3
+ b _0810DABE
+_0810DA60:
+ ldrh r0, [r4]
+ cmp r0, 0x3B
+ bhi _0810DA70
+ movs r0, 0x31
+ strb r0, [r5]
+ ldrh r0, [r4]
+ adds r0, 0x13
+ b _0810DAB0
+_0810DA70:
+ cmp r0, 0x8B
+ bhi _0810DA7E
+ movs r0, 0x30
+ strb r0, [r5]
+ ldrh r0, [r4]
+ subs r0, 0x3C
+ b _0810DAB0
+_0810DA7E:
+ movs r0, 0x2F
+ strb r0, [r5]
+ ldrh r0, [r4]
+ subs r0, 0x8C
+ b _0810DAB0
+_0810DA88:
+ ldrh r0, [r4]
+ cmp r0, 0x41
+ bhi _0810DA98
+ movs r0, 0x2F
+ strb r0, [r5]
+ ldrh r1, [r4]
+ movs r0, 0x41
+ b _0810DAAE
+_0810DA98:
+ cmp r0, 0x91
+ bhi _0810DAA6
+ movs r0, 0x30
+ strb r0, [r5]
+ ldrh r1, [r4]
+ movs r0, 0x91
+ b _0810DAAE
+_0810DAA6:
+ movs r0, 0x31
+ strb r0, [r5]
+ ldrh r1, [r4]
+ movs r0, 0xE0
+_0810DAAE:
+ subs r0, r1
+_0810DAB0:
+ strh r0, [r6]
+_0810DAB2:
+ movs r0, 0
+ mov r1, r8
+ strb r0, [r1]
+ movs r0, 0x14
+ strh r0, [r7]
+ movs r0, 0
+_0810DABE:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_810D9EC
+
+ thumb_func_start GetLinkPartnerNames
+GetLinkPartnerNames: @ 810DAC8
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ movs r6, 0
+ bl sub_8008218
+ lsls r0, 24
+ lsrs r7, r0, 24
+ bl sub_800820C
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r4, 0
+ cmp r4, r5
+ bcs _0810DB12
+ ldr r0, _0810DB20 @ =gUnknown_083D1464
+ mov r8, r0
+_0810DAEA:
+ cmp r7, r4
+ beq _0810DB08
+ lsls r0, r6, 2
+ add r0, r8
+ ldr r0, [r0]
+ lsls r1, r4, 3
+ subs r1, r4
+ lsls r1, 2
+ ldr r2, _0810DB24 @ =gLinkPlayers + 0x8
+ adds r1, r2
+ bl StringCopy
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+_0810DB08:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, r5
+ bcc _0810DAEA
+_0810DB12:
+ adds r0, r5, 0
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0810DB20: .4byte gUnknown_083D1464
+_0810DB24: .4byte gLinkPlayers + 0x8
+ thumb_func_end GetLinkPartnerNames
+
+ thumb_func_start sub_810DB28
+sub_810DB28: @ 810DB28
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x14
+ movs r7, 0
+ movs r0, 0
+ mov r9, r0
+ mov r8, r0
+ ldr r1, _0810DB74 @ =gUnknown_083F8358
+ add r0, sp, 0x8
+ movs r2, 0x4
+ bl memcpy
+ add r4, sp, 0xC
+ ldr r1, _0810DB78 @ =gUnknown_083F835C
+ adds r0, r4, 0
+ movs r2, 0x8
+ bl memcpy
+ bl sub_8008218
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ bl player_get_direction_lower_nybble
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r0, 0
+ cmp r0, 0x2
+ beq _0810DB94
+ cmp r0, 0x2
+ bgt _0810DB7C
+ cmp r0, 0x1
+ beq _0810DBC0
+ b _0810DBD2
+ .align 2, 0
+_0810DB74: .4byte gUnknown_083F8358
+_0810DB78: .4byte gUnknown_083F835C
+_0810DB7C:
+ cmp r1, 0x3
+ beq _0810DB86
+ cmp r1, 0x4
+ beq _0810DBA8
+ b _0810DBD2
+_0810DB86:
+ movs r7, 0x2
+ ldr r1, _0810DB90 @ =gSaveBlock1
+ ldrh r0, [r1]
+ subs r0, 0x1
+ b _0810DBAE
+ .align 2, 0
+_0810DB90: .4byte gSaveBlock1
+_0810DB94:
+ movs r7, 0x1
+ ldr r0, _0810DBA4 @ =gSaveBlock1
+ ldrh r1, [r0]
+ mov r9, r1
+ ldrh r0, [r0, 0x2]
+ subs r0, 0x1
+ b _0810DBCC
+ .align 2, 0
+_0810DBA4: .4byte gSaveBlock1
+_0810DBA8:
+ ldr r1, _0810DBBC @ =gSaveBlock1
+ ldrh r0, [r1]
+ adds r0, 0x1
+_0810DBAE:
+ lsls r0, 16
+ lsrs r0, 16
+ mov r9, r0
+ ldrh r1, [r1, 0x2]
+ mov r8, r1
+ b _0810DBD2
+ .align 2, 0
+_0810DBBC: .4byte gSaveBlock1
+_0810DBC0:
+ movs r7, 0x3
+ ldr r0, _0810DBD8 @ =gSaveBlock1
+ ldrh r4, [r0]
+ mov r9, r4
+ ldrh r0, [r0, 0x2]
+ adds r0, 0x1
+_0810DBCC:
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+_0810DBD2:
+ movs r6, 0
+ b _0810DC5C
+ .align 2, 0
+_0810DBD8: .4byte gSaveBlock1
+_0810DBDC:
+ cmp r10, r6
+ beq _0810DC56
+ ldr r1, _0810DC74 @ =gLinkPlayers
+ lsls r0, r6, 3
+ subs r0, r6
+ lsls r0, 2
+ adds r0, r1
+ ldrb r1, [r0, 0x13]
+ movs r0, 0
+ bl sub_805983C
+ lsls r0, 24
+ lsrs r0, 24
+ mov r1, sp
+ adds r1, r7
+ adds r1, 0x8
+ ldrb r1, [r1]
+ movs r2, 0xF0
+ subs r2, r6
+ lsls r2, 24
+ lsrs r2, 24
+ lsls r5, r7, 1
+ mov r3, sp
+ adds r3, r5
+ adds r3, 0xC
+ ldrb r3, [r3]
+ lsls r3, 24
+ asrs r3, 24
+ mov r12, r3
+ mov r4, r9
+ lsls r3, r4, 16
+ asrs r3, 16
+ add r3, r12
+ adds r3, 0x7
+ lsls r3, 16
+ asrs r3, 16
+ mov r4, sp
+ adds r4, 0xD
+ adds r4, r5
+ ldrb r4, [r4]
+ lsls r4, 24
+ asrs r4, 24
+ mov r12, r4
+ mov r5, r8
+ lsls r4, r5, 16
+ asrs r4, 16
+ add r4, r12
+ adds r4, 0x7
+ lsls r4, 16
+ asrs r4, 16
+ str r4, [sp]
+ movs r4, 0
+ str r4, [sp, 0x4]
+ bl SpawnSpecialFieldObjectParametrized
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ cmp r7, 0x4
+ bne _0810DC56
+ movs r7, 0
+_0810DC56:
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+_0810DC5C:
+ ldr r0, _0810DC78 @ =gSpecialVar_0x8004
+ ldrh r0, [r0]
+ cmp r6, r0
+ bcc _0810DBDC
+ add sp, 0x14
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810DC74: .4byte gLinkPlayers
+_0810DC78: .4byte gSpecialVar_0x8004
+ thumb_func_end sub_810DB28
+
+ thumb_func_start sub_810DC7C
+sub_810DC7C: @ 810DC7C
+ push {r4,r5,lr}
+ movs r4, 0
+ ldr r5, _0810DC9C @ =gUnknown_083F8364
+_0810DC82:
+ ldr r0, _0810DCA0 @ =gSpecialVar_0x8004
+ ldrh r0, [r0]
+ cmp r4, r0
+ bne _0810DCA8
+ lsls r1, r4, 2
+ adds r1, r5
+ ldrb r0, [r1]
+ ldrb r1, [r1, 0x1]
+ ldr r2, _0810DCA4 @ =0x00000206
+ bl MapGridSetMetatileIdAt
+ b _0810DCB6
+ .align 2, 0
+_0810DC9C: .4byte gUnknown_083F8364
+_0810DCA0: .4byte gSpecialVar_0x8004
+_0810DCA4: .4byte 0x00000206
+_0810DCA8:
+ lsls r1, r4, 2
+ adds r1, r5
+ ldrb r0, [r1]
+ ldrb r1, [r1, 0x1]
+ ldr r2, _0810DCC8 @ =0x00000205
+ bl MapGridSetMetatileIdAt
+_0810DCB6:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x2
+ bls _0810DC82
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810DCC8: .4byte 0x00000205
+ thumb_func_end sub_810DC7C
+
+ thumb_func_start sub_810DCCC
+sub_810DCCC: @ 810DCCC
+ push {r4-r6,lr}
+ movs r5, 0xC
+_0810DCD0:
+ movs r4, 0x7
+ adds r6, r5, 0x1
+_0810DCD4:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl MapGridGetMetatileIdAt
+ ldr r1, _0810DCF0 @ =0xfffffde6
+ adds r0, r1
+ cmp r0, 0x37
+ bls _0810DCE6
+ b _0810DEC0
+_0810DCE6:
+ lsls r0, 2
+ ldr r1, _0810DCF4 @ =_0810DCF8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0810DCF0: .4byte 0xfffffde6
+_0810DCF4: .4byte _0810DCF8
+ .align 2, 0
+_0810DCF8:
+ .4byte _0810DE7E
+ .4byte _0810DEC0
+ .4byte _0810DEC0
+ .4byte _0810DEC0
+ .4byte _0810DEC0
+ .4byte _0810DEC0
+ .4byte _0810DDD8
+ .4byte _0810DDDE
+ .4byte _0810DE18
+ .4byte _0810DE20
+ .4byte _0810DEC0
+ .4byte _0810DEC0
+ .4byte _0810DEC0
+ .4byte _0810DEC0
+ .4byte _0810DDE8
+ .4byte _0810DDEE
+ .4byte _0810DE28
+ .4byte _0810DE30
+ .4byte _0810DEC0
+ .4byte _0810DEC0
+ .4byte _0810DEC0
+ .4byte _0810DEC0
+ .4byte _0810DDF8
+ .4byte _0810DDFE
+ .4byte _0810DE38
+ .4byte _0810DE40
+ .4byte _0810DEC0
+ .4byte _0810DEC0
+ .4byte _0810DEC0
+ .4byte _0810DEC0
+ .4byte _0810DE08
+ .4byte _0810DE10
+ .4byte _0810DE48
+ .4byte _0810DE50
+ .4byte _0810DEC0
+ .4byte _0810DEC0
+ .4byte _0810DEC0
+ .4byte _0810DEC0
+ .4byte _0810DE58
+ .4byte _0810DE68
+ .4byte _0810DE78
+ .4byte _0810DEA0
+ .4byte _0810DEC0
+ .4byte _0810DEC0
+ .4byte _0810DEC0
+ .4byte _0810DEC0
+ .4byte _0810DE60
+ .4byte _0810DE70
+ .4byte _0810DEC0
+ .4byte _0810DEC0
+ .4byte _0810DEC0
+ .4byte _0810DEC0
+ .4byte _0810DEC0
+ .4byte _0810DEC0
+ .4byte _0810DEB6
+ .4byte _0810DEA8
+_0810DDD8:
+ movs r2, 0x8C
+ lsls r2, 2
+ b _0810DEAC
+_0810DDDE:
+ ldr r2, _0810DDE4 @ =0x00000231
+ b _0810DEAC
+ .align 2, 0
+_0810DDE4: .4byte 0x00000231
+_0810DDE8:
+ movs r2, 0x8E
+ lsls r2, 2
+ b _0810DEAC
+_0810DDEE:
+ ldr r2, _0810DDF4 @ =0x00000239
+ b _0810DEAC
+ .align 2, 0
+_0810DDF4: .4byte 0x00000239
+_0810DDF8:
+ movs r2, 0x88
+ lsls r2, 2
+ b _0810DEAC
+_0810DDFE:
+ ldr r2, _0810DE04 @ =0x00000221
+ b _0810DEAC
+ .align 2, 0
+_0810DE04: .4byte 0x00000221
+_0810DE08:
+ ldr r2, _0810DE0C @ =0x00000e28
+ b _0810DEAC
+ .align 2, 0
+_0810DE0C: .4byte 0x00000e28
+_0810DE10:
+ ldr r2, _0810DE14 @ =0x00000e29
+ b _0810DEAC
+ .align 2, 0
+_0810DE14: .4byte 0x00000e29
+_0810DE18:
+ ldr r2, _0810DE1C @ =0x00000232
+ b _0810DEAC
+ .align 2, 0
+_0810DE1C: .4byte 0x00000232
+_0810DE20:
+ ldr r2, _0810DE24 @ =0x00000233
+ b _0810DEAC
+ .align 2, 0
+_0810DE24: .4byte 0x00000233
+_0810DE28:
+ ldr r2, _0810DE2C @ =0x0000023a
+ b _0810DEAC
+ .align 2, 0
+_0810DE2C: .4byte 0x0000023a
+_0810DE30:
+ ldr r2, _0810DE34 @ =0x0000023b
+ b _0810DEAC
+ .align 2, 0
+_0810DE34: .4byte 0x0000023b
+_0810DE38:
+ ldr r2, _0810DE3C @ =0x00000222
+ b _0810DEAC
+ .align 2, 0
+_0810DE3C: .4byte 0x00000222
+_0810DE40:
+ ldr r2, _0810DE44 @ =0x00000223
+ b _0810DEAC
+ .align 2, 0
+_0810DE44: .4byte 0x00000223
+_0810DE48:
+ ldr r2, _0810DE4C @ =0x00000e2a
+ b _0810DEAC
+ .align 2, 0
+_0810DE4C: .4byte 0x00000e2a
+_0810DE50:
+ ldr r2, _0810DE54 @ =0x00000e2b
+ b _0810DEAC
+ .align 2, 0
+_0810DE54: .4byte 0x00000e2b
+_0810DE58:
+ ldr r2, _0810DE5C @ =0x00000e42
+ b _0810DEAC
+ .align 2, 0
+_0810DE5C: .4byte 0x00000e42
+_0810DE60:
+ ldr r2, _0810DE64 @ =0x0000021a
+ b _0810DEAC
+ .align 2, 0
+_0810DE64: .4byte 0x0000021a
+_0810DE68:
+ ldr r2, _0810DE6C @ =0x00000e43
+ b _0810DEAC
+ .align 2, 0
+_0810DE6C: .4byte 0x00000e43
+_0810DE70:
+ ldr r2, _0810DE74 @ =0x0000021a
+ b _0810DEAC
+ .align 2, 0
+_0810DE74: .4byte 0x0000021a
+_0810DE78:
+ movs r2, 0xE4
+ lsls r2, 4
+ b _0810DEAC
+_0810DE7E:
+ subs r1, r5, 0x1
+ adds r0, r4, 0
+ bl MapGridGetMetatileIdAt
+ movs r1, 0x90
+ lsls r1, 2
+ cmp r0, r1
+ bne _0810DE98
+ ldr r2, _0810DE94 @ =0x00000e48
+ b _0810DEAC
+ .align 2, 0
+_0810DE94: .4byte 0x00000e48
+_0810DE98:
+ ldr r2, _0810DE9C @ =0x00000e49
+ b _0810DEAC
+ .align 2, 0
+_0810DE9C: .4byte 0x00000e49
+_0810DEA0:
+ ldr r2, _0810DEA4 @ =0x00000e41
+ b _0810DEAC
+ .align 2, 0
+_0810DEA4: .4byte 0x00000e41
+_0810DEA8:
+ movs r2, 0xE5
+ lsls r2, 4
+_0810DEAC:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl MapGridSetMetatileIdAt
+ b _0810DEC0
+_0810DEB6:
+ ldr r2, _0810DED8 @ =0x00000251
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl MapGridSetMetatileIdAt
+_0810DEC0:
+ adds r4, 0x1
+ cmp r4, 0xF
+ bgt _0810DEC8
+ b _0810DCD4
+_0810DEC8:
+ adds r5, r6, 0
+ cmp r5, 0x17
+ bgt _0810DED0
+ b _0810DCD0
+_0810DED0:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810DED8: .4byte 0x00000251
+ thumb_func_end sub_810DCCC
+
+ thumb_func_start sub_810DEDC
+sub_810DEDC: @ 810DEDC
+ push {r4-r6,lr}
+ ldr r4, _0810DF18 @ =gUnknown_083F8364
+ movs r5, 0x2
+_0810DEE2:
+ ldrb r0, [r4]
+ ldrb r1, [r4, 0x1]
+ ldr r2, _0810DF1C @ =0x00000206
+ bl MapGridSetMetatileIdAt
+ adds r4, 0x4
+ subs r5, 0x1
+ cmp r5, 0
+ bge _0810DEE2
+ movs r5, 0xC
+_0810DEF6:
+ movs r4, 0x7
+ adds r6, r5, 0x1
+_0810DEFA:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl MapGridGetMetatileIdAt
+ ldr r1, _0810DF20 @ =0xfffffde0
+ adds r0, r1
+ cmp r0, 0x30
+ bls _0810DF0C
+ b _0810E056
+_0810DF0C:
+ lsls r0, 2
+ ldr r1, _0810DF24 @ =_0810DF28
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0810DF18: .4byte gUnknown_083F8364
+_0810DF1C: .4byte 0x00000206
+_0810DF20: .4byte 0xfffffde0
+_0810DF24: .4byte _0810DF28
+ .align 2, 0
+_0810DF28:
+ .4byte _0810DFEC
+ .4byte _0810DFF2
+ .4byte _0810E00C
+ .4byte _0810E014
+ .4byte _0810E056
+ .4byte _0810E056
+ .4byte _0810E056
+ .4byte _0810E056
+ .4byte _0810DFFC
+ .4byte _0810E002
+ .4byte _0810E01C
+ .4byte _0810E024
+ .4byte _0810E056
+ .4byte _0810E056
+ .4byte _0810E056
+ .4byte _0810E056
+ .4byte _0810E056
+ .4byte _0810E056
+ .4byte _0810E056
+ .4byte _0810E056
+ .4byte _0810E056
+ .4byte _0810E056
+ .4byte _0810E056
+ .4byte _0810E056
+ .4byte _0810E056
+ .4byte _0810E056
+ .4byte _0810E056
+ .4byte _0810E056
+ .4byte _0810E056
+ .4byte _0810E056
+ .4byte _0810E056
+ .4byte _0810E056
+ .4byte _0810E02C
+ .4byte _0810E034
+ .4byte _0810E056
+ .4byte _0810E056
+ .4byte _0810E056
+ .4byte _0810E056
+ .4byte _0810E056
+ .4byte _0810E056
+ .4byte _0810E03C
+ .4byte _0810E03C
+ .4byte _0810E056
+ .4byte _0810E056
+ .4byte _0810E056
+ .4byte _0810E056
+ .4byte _0810E056
+ .4byte _0810E056
+ .4byte _0810E04C
+_0810DFEC:
+ movs r2, 0x8C
+ lsls r2, 2
+ b _0810E03E
+_0810DFF2:
+ ldr r2, _0810DFF8 @ =0x00000231
+ b _0810E03E
+ .align 2, 0
+_0810DFF8: .4byte 0x00000231
+_0810DFFC:
+ movs r2, 0x8E
+ lsls r2, 2
+ b _0810E03E
+_0810E002:
+ ldr r2, _0810E008 @ =0x00000239
+ b _0810E03E
+ .align 2, 0
+_0810E008: .4byte 0x00000239
+_0810E00C:
+ ldr r2, _0810E010 @ =0x00000232
+ b _0810E03E
+ .align 2, 0
+_0810E010: .4byte 0x00000232
+_0810E014:
+ ldr r2, _0810E018 @ =0x00000233
+ b _0810E03E
+ .align 2, 0
+_0810E018: .4byte 0x00000233
+_0810E01C:
+ ldr r2, _0810E020 @ =0x0000023a
+ b _0810E03E
+ .align 2, 0
+_0810E020: .4byte 0x0000023a
+_0810E024:
+ ldr r2, _0810E028 @ =0x0000023b
+ b _0810E03E
+ .align 2, 0
+_0810E028: .4byte 0x0000023b
+_0810E02C:
+ ldr r2, _0810E030 @ =0x00000e42
+ b _0810E03E
+ .align 2, 0
+_0810E030: .4byte 0x00000e42
+_0810E034:
+ ldr r2, _0810E038 @ =0x00000e43
+ b _0810E03E
+ .align 2, 0
+_0810E038: .4byte 0x00000e43
+_0810E03C:
+ ldr r2, _0810E048 @ =0x0000021a
+_0810E03E:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl MapGridSetMetatileIdAt
+ b _0810E056
+ .align 2, 0
+_0810E048: .4byte 0x0000021a
+_0810E04C:
+ ldr r2, _0810E06C @ =0x00000251
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl MapGridSetMetatileIdAt
+_0810E056:
+ adds r4, 0x1
+ cmp r4, 0xF
+ bgt _0810E05E
+ b _0810DEFA
+_0810E05E:
+ adds r5, r6, 0
+ cmp r5, 0x17
+ bgt _0810E066
+ b _0810DEF6
+_0810E066:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810E06C: .4byte 0x00000251
+ thumb_func_end sub_810DEDC
+
+ thumb_func_start sub_810E070
+sub_810E070: @ 810E070
+ push {lr}
+ ldr r0, _0810E090 @ =gUnknown_02039258
+ movs r1, 0
+ strb r1, [r0]
+ ldr r0, _0810E094 @ =gUnknown_02039259
+ strb r1, [r0]
+ movs r0, 0x2C
+ bl PlaySE
+ ldr r0, _0810E098 @ =sub_810E09C
+ movs r1, 0x8
+ bl CreateTask
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810E090: .4byte gUnknown_02039258
+_0810E094: .4byte gUnknown_02039259
+_0810E098: .4byte sub_810E09C
+ thumb_func_end sub_810E070
+
+ thumb_func_start sub_810E09C
+sub_810E09C: @ 810E09C
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r0, _0810E0E4 @ =gUnknown_083F8370
+ ldr r5, _0810E0E8 @ =gUnknown_02039259
+ ldrb r1, [r5]
+ adds r0, r1, r0
+ ldr r4, _0810E0EC @ =gUnknown_02039258
+ ldrb r2, [r4]
+ ldrb r0, [r0]
+ cmp r0, r2
+ bne _0810E0F8
+ ldr r0, _0810E0F0 @ =gSpecialVar_0x8004
+ ldrb r0, [r0]
+ ldr r2, _0810E0F4 @ =gUnknown_083F8376
+ lsls r1, 1
+ adds r1, r2
+ ldrh r1, [r1]
+ bl sub_810E104
+ movs r0, 0
+ strb r0, [r4]
+ ldrb r0, [r5]
+ adds r0, 0x1
+ strb r0, [r5]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x5
+ bne _0810E0FC
+ adds r0, r6, 0
+ bl DestroyTask
+ bl EnableBothScriptContexts
+ b _0810E0FC
+ .align 2, 0
+_0810E0E4: .4byte gUnknown_083F8370
+_0810E0E8: .4byte gUnknown_02039259
+_0810E0EC: .4byte gUnknown_02039258
+_0810E0F0: .4byte gSpecialVar_0x8004
+_0810E0F4: .4byte gUnknown_083F8376
+_0810E0F8:
+ adds r0, r2, 0x1
+ strb r0, [r4]
+_0810E0FC:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810E09C
+
+ thumb_func_start sub_810E104
+sub_810E104: @ 810E104
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 16
+ lsrs r2, r1, 16
+ movs r7, 0
+ subs r0, 0x1
+ cmp r0, 0x7
+ bhi _0810E1CC
+ lsls r0, 2
+ ldr r1, _0810E128 @ =_0810E12C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0810E128: .4byte _0810E12C
+ .align 2, 0
+_0810E12C:
+ .4byte _0810E14C
+ .4byte _0810E15E
+ .4byte _0810E170
+ .4byte _0810E182
+ .4byte _0810E190
+ .4byte _0810E1A6
+ .4byte _0810E1B2
+ .4byte _0810E1C0
+_0810E14C:
+ movs r7, 0x2
+ mov r1, sp
+ movs r0, 0x1
+ strh r0, [r1]
+ movs r0, 0x7
+ strh r0, [r1, 0x2]
+ add r1, sp, 0x8
+ movs r0, 0x68
+ b _0810E1A0
+_0810E15E:
+ movs r7, 0x2
+ mov r1, sp
+ movs r0, 0x1
+ strh r0, [r1]
+ movs r0, 0x7
+ strh r0, [r1, 0x2]
+ add r1, sp, 0x8
+ movs r0, 0x4E
+ b _0810E1A0
+_0810E170:
+ movs r7, 0x2
+ mov r1, sp
+ movs r0, 0x1
+ strh r0, [r1]
+ movs r0, 0x7
+ strh r0, [r1, 0x2]
+ add r1, sp, 0x8
+ movs r0, 0x5B
+ b _0810E1A0
+_0810E182:
+ movs r7, 0x1
+ mov r1, sp
+ movs r0, 0x7
+ strh r0, [r1]
+ add r1, sp, 0x8
+ movs r0, 0x27
+ b _0810E1CA
+_0810E190:
+ movs r7, 0x2
+ mov r1, sp
+ movs r0, 0x1
+ strh r0, [r1]
+ movs r0, 0x7
+ strh r0, [r1, 0x2]
+ add r1, sp, 0x8
+ movs r0, 0x34
+_0810E1A0:
+ strh r0, [r1]
+ strh r0, [r1, 0x2]
+ b _0810E1CC
+_0810E1A6:
+ movs r7, 0x1
+ mov r0, sp
+ strh r7, [r0]
+ add r1, sp, 0x8
+ movs r0, 0x41
+ b _0810E1CA
+_0810E1B2:
+ movs r7, 0x1
+ mov r1, sp
+ movs r0, 0x7
+ strh r0, [r1]
+ add r1, sp, 0x8
+ movs r0, 0xD
+ b _0810E1CA
+_0810E1C0:
+ movs r7, 0x1
+ mov r0, sp
+ strh r7, [r0]
+ add r1, sp, 0x8
+ movs r0, 0x1A
+_0810E1CA:
+ strh r0, [r1]
+_0810E1CC:
+ movs r6, 0
+ cmp r6, r7
+ bcs _0810E21E
+ movs r1, 0xC0
+ lsls r1, 4
+ adds r0, r1, 0
+ adds r1, r2, 0
+ orrs r1, r0
+ lsls r1, 16
+ mov r9, r1
+ adds r1, r2, 0
+ adds r1, 0x8
+ orrs r1, r0
+ lsls r1, 16
+ mov r8, r1
+_0810E1EA:
+ lsls r1, r6, 1
+ mov r3, sp
+ adds r5, r3, r1
+ ldrh r0, [r5]
+ adds r0, 0x7
+ add r4, sp, 0x8
+ adds r4, r1
+ ldrh r1, [r4]
+ adds r1, 0x7
+ mov r3, r9
+ lsrs r2, r3, 16
+ bl MapGridSetMetatileIdAt
+ ldrh r0, [r5]
+ adds r0, 0x7
+ ldrh r1, [r4]
+ adds r1, 0x8
+ mov r3, r8
+ lsrs r2, r3, 16
+ bl MapGridSetMetatileIdAt
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, r7
+ bcc _0810E1EA
+_0810E21E:
+ bl DrawWholeMapView
+ add sp, 0x10
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810E104
+
+ thumb_func_start sub_810E230
+sub_810E230: @ 810E230
+ push {lr}
+ ldr r0, _0810E244 @ =gSpecialVar_0x8004
+ ldrb r0, [r0]
+ ldr r1, _0810E248 @ =gUnknown_083F8376
+ ldrh r1, [r1, 0x8]
+ bl sub_810E104
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810E244: .4byte gSpecialVar_0x8004
+_0810E248: .4byte gUnknown_083F8376
+ thumb_func_end sub_810E230
+
+ thumb_func_start ShowFieldMessageStringVar4
+ShowFieldMessageStringVar4: @ 810E24C
+ push {lr}
+ ldr r0, _0810E258 @ =gStringVar4
+ bl ShowFieldMessage
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810E258: .4byte gStringVar4
+ thumb_func_end ShowFieldMessageStringVar4
+
+ thumb_func_start StorePlayerCoordsInVars
+StorePlayerCoordsInVars: @ 810E25C
+ ldr r1, _0810E26C @ =gSpecialVar_0x8004
+ ldr r2, _0810E270 @ =gSaveBlock1
+ ldrh r0, [r2]
+ strh r0, [r1]
+ ldr r1, _0810E274 @ =gSpecialVar_0x8005
+ ldrh r0, [r2, 0x2]
+ strh r0, [r1]
+ bx lr
+ .align 2, 0
+_0810E26C: .4byte gSpecialVar_0x8004
+_0810E270: .4byte gSaveBlock1
+_0810E274: .4byte gSpecialVar_0x8005
+ thumb_func_end StorePlayerCoordsInVars
+
+ thumb_func_start GetPlayerTrainerIdOnesDigit
+GetPlayerTrainerIdOnesDigit: @ 810E278
+ push {lr}
+ ldr r0, _0810E294 @ =gSaveBlock2
+ ldrb r1, [r0, 0xB]
+ lsls r1, 8
+ ldrb r0, [r0, 0xA]
+ orrs r0, r1
+ movs r1, 0xA
+ bl __umodsi3
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0810E294: .4byte gSaveBlock2
+ thumb_func_end GetPlayerTrainerIdOnesDigit
+
+ thumb_func_start GetPlayerBigGuyGirlString
+GetPlayerBigGuyGirlString: @ 810E298
+ push {lr}
+ ldr r0, _0810E2AC @ =gSaveBlock2
+ ldrb r0, [r0, 0x8]
+ cmp r0, 0
+ bne _0810E2B8
+ ldr r0, _0810E2B0 @ =gStringVar1
+ ldr r1, _0810E2B4 @ =gOtherText_BigGuy
+ bl StringCopy
+ b _0810E2C0
+ .align 2, 0
+_0810E2AC: .4byte gSaveBlock2
+_0810E2B0: .4byte gStringVar1
+_0810E2B4: .4byte gOtherText_BigGuy
+_0810E2B8:
+ ldr r0, _0810E2C4 @ =gStringVar1
+ ldr r1, _0810E2C8 @ =gOtherText_BigGirl
+ bl StringCopy
+_0810E2C0:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810E2C4: .4byte gStringVar1
+_0810E2C8: .4byte gOtherText_BigGirl
+ thumb_func_end GetPlayerBigGuyGirlString
+
+ thumb_func_start GetRivalSonDaughterString
+GetRivalSonDaughterString: @ 810E2CC
+ push {lr}
+ ldr r0, _0810E2E0 @ =gSaveBlock2
+ ldrb r0, [r0, 0x8]
+ cmp r0, 0
+ bne _0810E2EC
+ ldr r0, _0810E2E4 @ =gStringVar1
+ ldr r1, _0810E2E8 @ =gOtherText_Daughter
+ bl StringCopy
+ b _0810E2F4
+ .align 2, 0
+_0810E2E0: .4byte gSaveBlock2
+_0810E2E4: .4byte gStringVar1
+_0810E2E8: .4byte gOtherText_Daughter
+_0810E2EC:
+ ldr r0, _0810E2F8 @ =gStringVar1
+ ldr r1, _0810E2FC @ =gOtherText_Son
+ bl StringCopy
+_0810E2F4:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810E2F8: .4byte gStringVar1
+_0810E2FC: .4byte gOtherText_Son
+ thumb_func_end GetRivalSonDaughterString
+
+ thumb_func_start sub_810E300
+sub_810E300: @ 810E300
+ ldr r0, _0810E308 @ =gUnknown_02024D26
+ ldrb r0, [r0]
+ bx lr
+ .align 2, 0
+_0810E308: .4byte gUnknown_02024D26
+ thumb_func_end sub_810E300
+
+ thumb_func_start CableCarWarp
+CableCarWarp: @ 810E30C
+ push {lr}
+ sub sp, 0x4
+ ldr r0, _0810E32C @ =gSpecialVar_0x8004
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _0810E330
+ movs r2, 0x1
+ negs r2, r2
+ movs r0, 0x4
+ str r0, [sp]
+ movs r0, 0x13
+ movs r1, 0
+ movs r3, 0x6
+ bl warp1_set
+ b _0810E342
+ .align 2, 0
+_0810E32C: .4byte gSpecialVar_0x8004
+_0810E330:
+ movs r2, 0x1
+ negs r2, r2
+ movs r0, 0x4
+ str r0, [sp]
+ movs r0, 0x13
+ movs r1, 0x1
+ movs r3, 0x6
+ bl warp1_set
+_0810E342:
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ thumb_func_end CableCarWarp
+
+ thumb_func_start SetFlagInVar
+SetFlagInVar: @ 810E348
+ push {lr}
+ ldr r0, _0810E358 @ =gSpecialVar_0x8004
+ ldrh r0, [r0]
+ bl FlagSet
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810E358: .4byte gSpecialVar_0x8004
+ thumb_func_end SetFlagInVar
+
+ thumb_func_start GetWeekCount
+GetWeekCount: @ 810E35C
+ push {lr}
+ ldr r0, _0810E37C @ =gLocalTime
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r1, 0x7
+ bl __divsi3
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r1, _0810E380 @ =0x0000270f
+ cmp r0, r1
+ bls _0810E376
+ adds r0, r1, 0
+_0810E376:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0810E37C: .4byte gLocalTime
+_0810E380: .4byte 0x0000270f
+ thumb_func_end GetWeekCount
+
+ thumb_func_start GetLeadMonFriendshipScore
+GetLeadMonFriendshipScore: @ 810E384
+ push {r4,lr}
+ bl GetLeadMonIndex
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x64
+ muls r1, r0
+ ldr r0, _0810E3A8 @ =gPlayerParty
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0x20
+ bl GetMonData
+ cmp r0, 0xFF
+ bne _0810E3AC
+ movs r0, 0x6
+ b _0810E3FE
+ .align 2, 0
+_0810E3A8: .4byte gPlayerParty
+_0810E3AC:
+ adds r0, r4, 0
+ movs r1, 0x20
+ bl GetMonData
+ cmp r0, 0xC7
+ bls _0810E3BC
+ movs r0, 0x5
+ b _0810E3FE
+_0810E3BC:
+ adds r0, r4, 0
+ movs r1, 0x20
+ bl GetMonData
+ cmp r0, 0x95
+ bls _0810E3CC
+ movs r0, 0x4
+ b _0810E3FE
+_0810E3CC:
+ adds r0, r4, 0
+ movs r1, 0x20
+ bl GetMonData
+ cmp r0, 0x63
+ bls _0810E3DC
+ movs r0, 0x3
+ b _0810E3FE
+_0810E3DC:
+ adds r0, r4, 0
+ movs r1, 0x20
+ bl GetMonData
+ cmp r0, 0x31
+ bls _0810E3EC
+ movs r0, 0x2
+ b _0810E3FE
+_0810E3EC:
+ adds r0, r4, 0
+ movs r1, 0x20
+ bl GetMonData
+ cmp r0, 0
+ bne _0810E3FC
+ movs r0, 0
+ b _0810E3FE
+_0810E3FC:
+ movs r0, 0x1
+_0810E3FE:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end GetLeadMonFriendshipScore
+
+ thumb_func_start CB2_FieldShowRegionMap
+CB2_FieldShowRegionMap: @ 810E404
+ push {lr}
+ ldr r0, _0810E410 @ =c2_exit_to_overworld_1_continue_scripts_restart_music
+ bl FieldInitRegionMap
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810E410: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
+ thumb_func_end CB2_FieldShowRegionMap
+
+ thumb_func_start FieldShowRegionMap
+FieldShowRegionMap: @ 810E414
+ push {lr}
+ ldr r0, _0810E420 @ =CB2_FieldShowRegionMap
+ bl SetMainCallback2
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810E420: .4byte CB2_FieldShowRegionMap
+ thumb_func_end FieldShowRegionMap
+
+ thumb_func_start DoPCTurnOnEffect
+DoPCTurnOnEffect: @ 810E424
+ push {r4,lr}
+ ldr r4, _0810E460 @ =Task_PCTurnOnEffect
+ adds r0, r4, 0
+ bl FuncIsActiveTask
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _0810E458
+ adds r0, r4, 0
+ movs r1, 0x8
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0810E464 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ movs r2, 0
+ strh r2, [r1, 0x8]
+ strh r0, [r1, 0xA]
+ strh r2, [r1, 0xC]
+ strh r2, [r1, 0xE]
+ strh r2, [r1, 0x10]
+_0810E458:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810E460: .4byte Task_PCTurnOnEffect
+_0810E464: .4byte gTasks
+ thumb_func_end DoPCTurnOnEffect
+
+ thumb_func_start Task_PCTurnOnEffect
+Task_PCTurnOnEffect: @ 810E468
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _0810E48C @ =gTasks
+ adds r1, r0
+ movs r2, 0x8
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ bne _0810E486
+ adds r0, r1, 0
+ bl PCTurnOffEffect_0
+_0810E486:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810E48C: .4byte gTasks
+ thumb_func_end Task_PCTurnOnEffect
+
+ thumb_func_start PCTurnOffEffect_0
+PCTurnOffEffect_0: @ 810E490
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ movs r6, 0
+ movs r5, 0
+ movs r1, 0xE
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x6
+ bne _0810E4FC
+ strh r5, [r4, 0xE]
+ bl player_get_direction_lower_nybble
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r0, 0
+ cmp r0, 0x3
+ beq _0810E4C4
+ cmp r0, 0x3
+ bgt _0810E4BA
+ cmp r0, 0x2
+ beq _0810E4C0
+ b _0810E4CC
+_0810E4BA:
+ cmp r1, 0x4
+ beq _0810E4C8
+ b _0810E4CC
+_0810E4C0:
+ movs r6, 0
+ b _0810E4CA
+_0810E4C4:
+ movs r6, 0xFF
+ b _0810E4CA
+_0810E4C8:
+ movs r6, 0x1
+_0810E4CA:
+ movs r5, 0xFF
+_0810E4CC:
+ movs r1, 0x10
+ ldrsh r0, [r4, r1]
+ lsls r1, r6, 24
+ asrs r1, 24
+ lsls r2, r5, 24
+ asrs r2, 24
+ bl PCTurnOffEffect_1
+ bl DrawWholeMapView
+ ldrh r0, [r4, 0x10]
+ movs r1, 0x1
+ eors r0, r1
+ strh r0, [r4, 0x10]
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x5
+ bne _0810E4FC
+ ldrb r0, [r4, 0xA]
+ bl DestroyTask
+_0810E4FC:
+ ldrh r0, [r4, 0xE]
+ adds r0, 0x1
+ strh r0, [r4, 0xE]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end PCTurnOffEffect_0
+
+ thumb_func_start PCTurnOffEffect_1
+PCTurnOffEffect_1: @ 810E508
+ push {r4,r5,lr}
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r2, 24
+ lsrs r4, r2, 24
+ movs r3, 0
+ lsls r0, 16
+ cmp r0, 0
+ beq _0810E544
+ ldr r0, _0810E528 @ =gSpecialVar_0x8004
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _0810E52C
+ movs r3, 0x4
+ b _0810E566
+ .align 2, 0
+_0810E528: .4byte gSpecialVar_0x8004
+_0810E52C:
+ cmp r0, 0x1
+ bne _0810E538
+ ldr r3, _0810E534 @ =0x0000025a
+ b _0810E566
+ .align 2, 0
+_0810E534: .4byte 0x0000025a
+_0810E538:
+ cmp r0, 0x2
+ bne _0810E566
+ ldr r3, _0810E540 @ =0x00000259
+ b _0810E566
+ .align 2, 0
+_0810E540: .4byte 0x00000259
+_0810E544:
+ ldr r0, _0810E550 @ =gSpecialVar_0x8004
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _0810E554
+ movs r3, 0x5
+ b _0810E566
+ .align 2, 0
+_0810E550: .4byte gSpecialVar_0x8004
+_0810E554:
+ cmp r0, 0x1
+ bne _0810E560
+ ldr r3, _0810E55C @ =0x0000027f
+ b _0810E566
+ .align 2, 0
+_0810E55C: .4byte 0x0000027f
+_0810E560:
+ cmp r0, 0x2
+ bne _0810E566
+ ldr r3, _0810E594 @ =0x0000027e
+_0810E566:
+ ldr r2, _0810E598 @ =gSaveBlock1
+ movs r5, 0
+ ldrsh r0, [r2, r5]
+ lsls r1, 24
+ asrs r1, 24
+ adds r0, r1
+ adds r0, 0x7
+ movs r5, 0x2
+ ldrsh r1, [r2, r5]
+ lsls r2, r4, 24
+ asrs r2, 24
+ adds r1, r2
+ adds r1, 0x7
+ movs r4, 0xC0
+ lsls r4, 4
+ adds r2, r4, 0
+ orrs r3, r2
+ adds r2, r3, 0
+ bl MapGridSetMetatileIdAt
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810E594: .4byte 0x0000027e
+_0810E598: .4byte gSaveBlock1
+ thumb_func_end PCTurnOffEffect_1
+
+ thumb_func_start DoPCTurnOffEffect
+DoPCTurnOffEffect: @ 810E59C
+ push {lr}
+ bl PCTurnOffEffect
+ pop {r0}
+ bx r0
+ thumb_func_end DoPCTurnOffEffect
+
+ thumb_func_start PCTurnOffEffect
+PCTurnOffEffect: @ 810E5A8
+ push {r4-r6,lr}
+ movs r6, 0
+ movs r5, 0
+ movs r4, 0
+ bl player_get_direction_lower_nybble
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r0, 0
+ cmp r0, 0x3
+ beq _0810E5D2
+ cmp r0, 0x3
+ bgt _0810E5C8
+ cmp r0, 0x2
+ beq _0810E5CE
+ b _0810E5DA
+_0810E5C8:
+ cmp r1, 0x4
+ beq _0810E5D6
+ b _0810E5DA
+_0810E5CE:
+ movs r6, 0
+ b _0810E5D8
+_0810E5D2:
+ movs r6, 0xFF
+ b _0810E5D8
+_0810E5D6:
+ movs r6, 0x1
+_0810E5D8:
+ movs r5, 0xFF
+_0810E5DA:
+ ldr r0, _0810E5E8 @ =gSpecialVar_0x8004
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _0810E5EC
+ movs r4, 0x4
+ b _0810E5FE
+ .align 2, 0
+_0810E5E8: .4byte gSpecialVar_0x8004
+_0810E5EC:
+ cmp r0, 0x1
+ bne _0810E5F8
+ ldr r4, _0810E5F4 @ =0x0000025a
+ b _0810E5FE
+ .align 2, 0
+_0810E5F4: .4byte 0x0000025a
+_0810E5F8:
+ cmp r0, 0x2
+ bne _0810E5FE
+ ldr r4, _0810E630 @ =0x00000259
+_0810E5FE:
+ ldr r2, _0810E634 @ =gSaveBlock1
+ movs r1, 0
+ ldrsh r0, [r2, r1]
+ lsls r1, r6, 24
+ asrs r1, 24
+ adds r0, r1
+ adds r0, 0x7
+ movs r3, 0x2
+ ldrsh r1, [r2, r3]
+ lsls r2, r5, 24
+ asrs r2, 24
+ adds r1, r2
+ adds r1, 0x7
+ movs r3, 0xC0
+ lsls r3, 4
+ adds r2, r3, 0
+ orrs r4, r2
+ adds r2, r4, 0
+ bl MapGridSetMetatileIdAt
+ bl DrawWholeMapView
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810E630: .4byte 0x00000259
+_0810E634: .4byte gSaveBlock1
+ thumb_func_end PCTurnOffEffect
+
+ thumb_func_start DoLotteryCornerComputerEffect
+DoLotteryCornerComputerEffect: @ 810E638
+ push {r4,lr}
+ ldr r4, _0810E674 @ =Task_LotteryCornerComputerEffect
+ adds r0, r4, 0
+ bl FuncIsActiveTask
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _0810E66C
+ adds r0, r4, 0
+ movs r1, 0x8
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0810E678 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ movs r2, 0
+ strh r2, [r1, 0x8]
+ strh r0, [r1, 0xA]
+ strh r2, [r1, 0xC]
+ strh r2, [r1, 0xE]
+ strh r2, [r1, 0x10]
+_0810E66C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810E674: .4byte Task_LotteryCornerComputerEffect
+_0810E678: .4byte gTasks
+ thumb_func_end DoLotteryCornerComputerEffect
+
+ thumb_func_start Task_LotteryCornerComputerEffect
+Task_LotteryCornerComputerEffect: @ 810E67C
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _0810E6A0 @ =gTasks
+ adds r1, r0
+ movs r2, 0x8
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ bne _0810E69A
+ adds r0, r1, 0
+ bl LotteryCornerComputerEffect
+_0810E69A:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810E6A0: .4byte gTasks
+ thumb_func_end Task_LotteryCornerComputerEffect
+
+ thumb_func_start LotteryCornerComputerEffect
+LotteryCornerComputerEffect: @ 810E6A4
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0xE
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x6
+ bne _0810E712
+ movs r0, 0
+ strh r0, [r4, 0xE]
+ movs r1, 0x10
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _0810E6DC
+ ldr r2, _0810E6D4 @ =0x00000e9d
+ movs r0, 0x12
+ movs r1, 0x8
+ bl MapGridSetMetatileIdAt
+ ldr r2, _0810E6D8 @ =0x00000ea5
+ movs r0, 0x12
+ movs r1, 0x9
+ bl MapGridSetMetatileIdAt
+ b _0810E6F2
+ .align 2, 0
+_0810E6D4: .4byte 0x00000e9d
+_0810E6D8: .4byte 0x00000ea5
+_0810E6DC:
+ ldr r2, _0810E720 @ =0x00000e58
+ movs r0, 0x12
+ movs r1, 0x8
+ bl MapGridSetMetatileIdAt
+ movs r2, 0xE6
+ lsls r2, 4
+ movs r0, 0x12
+ movs r1, 0x9
+ bl MapGridSetMetatileIdAt
+_0810E6F2:
+ bl DrawWholeMapView
+ ldrh r0, [r4, 0x10]
+ movs r1, 0x1
+ eors r0, r1
+ strh r0, [r4, 0x10]
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x5
+ bne _0810E712
+ ldrb r0, [r4, 0xA]
+ bl DestroyTask
+_0810E712:
+ ldrh r0, [r4, 0xE]
+ adds r0, 0x1
+ strh r0, [r4, 0xE]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810E720: .4byte 0x00000e58
+ thumb_func_end LotteryCornerComputerEffect
+
+ thumb_func_start EndLotteryCornerComputerEffect
+EndLotteryCornerComputerEffect: @ 810E724
+ push {lr}
+ ldr r2, _0810E744 @ =0x00000e9d
+ movs r0, 0x12
+ movs r1, 0x8
+ bl MapGridSetMetatileIdAt
+ ldr r2, _0810E748 @ =0x00000ea5
+ movs r0, 0x12
+ movs r1, 0x9
+ bl MapGridSetMetatileIdAt
+ bl DrawWholeMapView
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810E744: .4byte 0x00000e9d
+_0810E748: .4byte 0x00000ea5
+ thumb_func_end EndLotteryCornerComputerEffect
+
+ thumb_func_start SetDepartmentStoreFloorVar
+SetDepartmentStoreFloorVar: @ 810E74C
+ push {lr}
+ ldr r0, _0810E768 @ =gSaveBlock1
+ ldrb r0, [r0, 0x15]
+ subs r0, 0x11
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x5
+ bhi _0810E79C
+ lsls r0, 2
+ ldr r1, _0810E76C @ =_0810E770
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0810E768: .4byte gSaveBlock1
+_0810E76C: .4byte _0810E770
+ .align 2, 0
+_0810E770:
+ .4byte _0810E79C
+ .4byte _0810E788
+ .4byte _0810E78C
+ .4byte _0810E790
+ .4byte _0810E794
+ .4byte _0810E798
+_0810E788:
+ movs r1, 0x1
+ b _0810E79E
+_0810E78C:
+ movs r1, 0x2
+ b _0810E79E
+_0810E790:
+ movs r1, 0x3
+ b _0810E79E
+_0810E794:
+ movs r1, 0x4
+ b _0810E79E
+_0810E798:
+ movs r1, 0xF
+ b _0810E79E
+_0810E79C:
+ movs r1, 0
+_0810E79E:
+ ldr r0, _0810E7A8 @ =0x00004043
+ bl VarSet
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810E7A8: .4byte 0x00004043
+ thumb_func_end SetDepartmentStoreFloorVar
+
+ thumb_func_start ScriptAddElevatorMenuItem
+ScriptAddElevatorMenuItem: @ 810E7AC
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r1, 24
+ lsrs r7, r1, 24
+ lsls r2, 24
+ lsrs r2, 24
+ mov r12, r2
+ lsls r3, 24
+ lsrs r3, 24
+ mov r8, r3
+ ldr r0, _0810E81C @ =gSpecialVar_0x8004
+ ldrh r1, [r0]
+ adds r2, r0, 0
+ ldr r3, _0810E820 @ =gUnknown_03000760
+ cmp r1, 0
+ bne _0810E7E8
+ movs r1, 0
+ adds r5, r3, 0
+ movs r4, 0x10
+_0810E7D8:
+ lsls r0, r1, 2
+ adds r0, r5
+ strb r4, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x13
+ bls _0810E7D8
+_0810E7E8:
+ ldrh r0, [r2]
+ lsls r0, 2
+ adds r0, r3
+ strb r6, [r0]
+ ldrh r0, [r2]
+ lsls r0, 2
+ adds r0, r3
+ strb r7, [r0, 0x1]
+ ldrh r0, [r2]
+ lsls r0, 2
+ adds r0, r3
+ mov r1, r12
+ strb r1, [r0, 0x2]
+ ldrh r0, [r2]
+ lsls r0, 2
+ adds r0, r3
+ mov r1, r8
+ strb r1, [r0, 0x3]
+ ldrh r0, [r2]
+ adds r0, 0x1
+ strh r0, [r2]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810E81C: .4byte gSpecialVar_0x8004
+_0810E820: .4byte gUnknown_03000760
+ thumb_func_end ScriptAddElevatorMenuItem
+
+ thumb_func_start ScriptShowElevatorMenu
+ScriptShowElevatorMenu: @ 810E824
+ push {r4,r5,lr}
+ movs r4, 0
+ ldr r5, _0810E868 @ =gUnknown_0203925A
+ strb r4, [r5]
+ ldr r0, _0810E86C @ =gUnknown_0203925B
+ strb r4, [r0]
+ movs r0, 0x10
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl ScriptAddElevatorMenuItem
+ ldr r2, _0810E870 @ =gUnknown_03000760
+ ldrb r0, [r2]
+ cmp r0, 0x10
+ beq _0810E85C
+ adds r1, r5, 0
+_0810E846:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 2
+ adds r0, r2
+ ldrb r0, [r0]
+ cmp r0, 0x10
+ bne _0810E846
+_0810E85C:
+ bl sub_810E874
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810E868: .4byte gUnknown_0203925A
+_0810E86C: .4byte gUnknown_0203925B
+_0810E870: .4byte gUnknown_03000760
+ thumb_func_end ScriptShowElevatorMenu
+
+ thumb_func_start sub_810E874
+sub_810E874: @ 810E874
+ push {r4-r6,lr}
+ sub sp, 0x8
+ bl ScriptContext2_Enable
+ ldr r4, _0810E8B8 @ =gUnknown_0203925A
+ ldrb r0, [r4]
+ cmp r0, 0x5
+ bls _0810E8C0
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x8
+ movs r3, 0xB
+ bl MenuDrawTextWindow
+ movs r4, 0
+ str r4, [sp]
+ movs r0, 0x7
+ str r0, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0x1
+ movs r2, 0x1
+ movs r3, 0x5
+ bl InitMenu
+ ldr r0, _0810E8BC @ =gUnknown_0203925C
+ strb r4, [r0]
+ bl sub_80F944C
+ bl LoadScrollIndicatorPalette
+ bl sub_810ECD4
+ b _0810E8E8
+ .align 2, 0
+_0810E8B8: .4byte gUnknown_0203925A
+_0810E8BC: .4byte gUnknown_0203925C
+_0810E8C0:
+ ldrb r3, [r4]
+ lsls r3, 1
+ adds r3, 0x1
+ lsls r3, 24
+ lsrs r3, 24
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x8
+ bl MenuDrawTextWindow
+ ldrb r3, [r4]
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x7
+ str r0, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0x1
+ movs r2, 0x1
+ bl InitMenu
+_0810E8E8:
+ movs r4, 0
+ ldr r1, _0810E938 @ =gUnknown_03000760
+ ldrb r0, [r1]
+ cmp r0, 0x10
+ beq _0810E924
+ ldr r6, _0810E93C @ =gUnknown_083F8380
+ adds r5, r1, 0
+_0810E8F6:
+ lsls r0, r4, 2
+ adds r0, r5
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r6
+ ldr r0, [r0]
+ lsls r2, r4, 1
+ adds r2, 0x1
+ lsls r2, 24
+ lsrs r2, 24
+ movs r1, 0x1
+ bl MenuPrint
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x4
+ bhi _0810E924
+ lsls r0, r4, 2
+ adds r0, r5
+ ldrb r0, [r0]
+ cmp r0, 0x10
+ bne _0810E8F6
+_0810E924:
+ bl sub_810E944
+ ldr r0, _0810E940 @ =sub_810E984
+ movs r1, 0x8
+ bl CreateTask
+ add sp, 0x8
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810E938: .4byte gUnknown_03000760
+_0810E93C: .4byte gUnknown_083F8380
+_0810E940: .4byte sub_810E984
+ thumb_func_end sub_810E874
+
+ thumb_func_start sub_810E944
+sub_810E944: @ 810E944
+ push {lr}
+ movs r0, 0x14
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x5
+ bl MenuDrawTextWindow
+ ldr r0, _0810E978 @ =gOtherText_NowOn
+ movs r1, 0x15
+ movs r2, 0x1
+ movs r3, 0x40
+ bl sub_8072BD8
+ ldr r1, _0810E97C @ =gUnknown_083F8380
+ ldr r0, _0810E980 @ =gSpecialVar_0x8005
+ ldrh r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x15
+ movs r2, 0x3
+ movs r3, 0x40
+ bl sub_8072BD8
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810E978: .4byte gOtherText_NowOn
+_0810E97C: .4byte gUnknown_083F8380
+_0810E980: .4byte gSpecialVar_0x8005
+ thumb_func_end sub_810E944
+
+ thumb_func_start sub_810E984
+sub_810E984: @ 810E984
+ push {r4-r6,lr}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r0, _0810EA44 @ =gMain
+ ldrh r0, [r0, 0x2E]
+ cmp r0, 0x40
+ bne _0810E9B8
+ ldr r1, _0810EA48 @ =gUnknown_0203925B
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _0810E9B8
+ subs r0, 0x1
+ strb r0, [r1]
+ bl GetMenuCursorPos
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r0, 0x1
+ negs r0, r0
+ bl MoveMenuCursorNoWrap
+ adds r0, r4, 0
+ movs r1, 0x40
+ bl sub_810EAC8
+_0810E9B8:
+ ldr r0, _0810EA44 @ =gMain
+ ldrh r0, [r0, 0x2E]
+ cmp r0, 0x80
+ bne _0810E9E8
+ ldr r2, _0810EA48 @ =gUnknown_0203925B
+ ldrb r1, [r2]
+ ldr r0, _0810EA4C @ =gUnknown_0203925A
+ ldrb r0, [r0]
+ subs r0, 0x1
+ cmp r1, r0
+ beq _0810E9E8
+ adds r0, r1, 0x1
+ strb r0, [r2]
+ bl GetMenuCursorPos
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r0, 0x1
+ bl MoveMenuCursorNoWrap
+ adds r0, r4, 0
+ movs r1, 0x80
+ bl sub_810EAC8
+_0810E9E8:
+ ldr r0, _0810EA44 @ =gMain
+ ldrh r2, [r0, 0x2E]
+ movs r5, 0x1
+ adds r1, r5, 0
+ ands r1, r2
+ cmp r1, 0
+ beq _0810EA94
+ ldr r1, _0810EA50 @ =gUnknown_03000760
+ ldr r4, _0810EA48 @ =gUnknown_0203925B
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ movs r1, 0x1
+ ldrsb r1, [r0, r1]
+ movs r2, 0x2
+ ldrsb r2, [r0, r2]
+ movs r3, 0x1
+ negs r3, r3
+ movs r0, 0x2
+ str r0, [sp]
+ str r5, [sp, 0x4]
+ movs r0, 0
+ bl saved_warp2_set_2
+ ldr r1, _0810EA54 @ =gSpecialVar_0x8005
+ ldrh r0, [r1]
+ ldrb r2, [r4]
+ cmp r0, r2
+ bne _0810EA5C
+ ldr r1, _0810EA58 @ =gScriptResult
+ movs r0, 0
+ strh r0, [r1]
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0xC
+ bl MenuZeroFillWindowRect
+ adds r0, r6, 0
+ bl sub_810EC9C
+ b _0810EABC
+ .align 2, 0
+_0810EA44: .4byte gMain
+_0810EA48: .4byte gUnknown_0203925B
+_0810EA4C: .4byte gUnknown_0203925A
+_0810EA50: .4byte gUnknown_03000760
+_0810EA54: .4byte gSpecialVar_0x8005
+_0810EA58: .4byte gScriptResult
+_0810EA5C:
+ ldr r0, _0810EA88 @ =gScriptResult
+ strh r5, [r0]
+ ldrb r0, [r4]
+ strh r0, [r1]
+ bl sub_810EBEC
+ ldr r0, _0810EA8C @ =gScriptLastTalked
+ ldrb r0, [r0]
+ ldr r2, _0810EA90 @ =gSaveBlock1
+ ldrb r1, [r2, 0x5]
+ ldrb r2, [r2, 0x4]
+ movs r3, 0x1
+ bl FieldObjectTurnByLocalIdAndMap
+ bl sub_810EEDC
+ bl MenuZeroFillScreen
+ adds r0, r6, 0
+ bl DestroyTask
+ b _0810EABC
+ .align 2, 0
+_0810EA88: .4byte gScriptResult
+_0810EA8C: .4byte gScriptLastTalked
+_0810EA90: .4byte gSaveBlock1
+_0810EA94:
+ movs r0, 0x2
+ ands r0, r2
+ cmp r0, 0
+ beq _0810EABC
+ ldr r0, _0810EAC4 @ =gScriptResult
+ strh r1, [r0]
+ movs r0, 0x5
+ bl PlaySE
+ bl sub_810EEDC
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0xC
+ bl MenuZeroFillWindowRect
+ adds r0, r6, 0
+ bl sub_810EC9C
+_0810EABC:
+ add sp, 0x8
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810EAC4: .4byte gScriptResult
+ thumb_func_end sub_810E984
+
+ thumb_func_start sub_810EAC8
+sub_810EAC8: @ 810EAC8
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ adds r5, r2, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r3, r1, 0
+ movs r7, 0
+ movs r4, 0
+ ldr r0, _0810EAEC @ =gUnknown_0203925A
+ ldrb r0, [r0]
+ cmp r0, 0x4
+ bhi _0810EAF0
+ movs r0, 0
+ b _0810EB78
+ .align 2, 0
+_0810EAEC: .4byte gUnknown_0203925A
+_0810EAF0:
+ cmp r1, 0x40
+ bne _0810EB04
+ cmp r2, 0
+ bne _0810EB18
+ ldr r0, _0810EB00 @ =gUnknown_0203925B
+ ldrb r4, [r0]
+ movs r7, 0x1
+ b _0810EB1C
+ .align 2, 0
+_0810EB00: .4byte gUnknown_0203925B
+_0810EB04:
+ cmp r3, 0x80
+ bne _0810EB18
+ cmp r5, 0x4
+ bne _0810EB18
+ ldr r0, _0810EB84 @ =gUnknown_0203925B
+ ldrb r0, [r0]
+ subs r0, 0x4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r7, 0x1
+_0810EB18:
+ cmp r7, 0
+ beq _0810EB76
+_0810EB1C:
+ adds r0, r4, 0
+ movs r1, 0x5
+ bl sub_810EB90
+ movs r0, 0x2
+ movs r1, 0x1
+ movs r2, 0x7
+ movs r3, 0xA
+ bl MenuFillWindowRectWithBlankTile
+ movs r5, 0
+ ldr r2, _0810EB88 @ =gUnknown_03000760
+ lsls r1, r4, 2
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0x10
+ beq _0810EB76
+ ldr r0, _0810EB8C @ =gUnknown_083F8380
+ mov r8, r0
+ adds r6, r2, 0
+_0810EB44:
+ adds r0, r1, r6
+ ldrb r0, [r0]
+ lsls r0, 2
+ add r0, r8
+ ldr r0, [r0]
+ lsls r2, r5, 1
+ adds r2, 0x1
+ lsls r2, 24
+ lsrs r2, 24
+ movs r1, 0x1
+ bl MenuPrint
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x4
+ bhi _0810EB76
+ lsls r1, r4, 2
+ adds r0, r1, r6
+ ldrb r0, [r0]
+ cmp r0, 0x10
+ bne _0810EB44
+_0810EB76:
+ adds r0, r7, 0
+_0810EB78:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0810EB84: .4byte gUnknown_0203925B
+_0810EB88: .4byte gUnknown_03000760
+_0810EB8C: .4byte gUnknown_083F8380
+ thumb_func_end sub_810EAC8
+
+ thumb_func_start sub_810EB90
+sub_810EB90: @ 810EB90
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r1, 24
+ lsrs r5, r1, 24
+ cmp r4, 0
+ bne _0810EBB4
+ ldr r0, _0810EBB0 @ =gUnknown_0203925C
+ ldrb r1, [r0]
+ movs r2, 0x2
+ eors r1, r2
+ strb r1, [r0]
+ movs r0, 0
+ bl DestroyVerticalScrollIndicator
+ b _0810EBB8
+ .align 2, 0
+_0810EBB0: .4byte gUnknown_0203925C
+_0810EBB4:
+ bl sub_810ECB0
+_0810EBB8:
+ adds r1, r4, r5
+ ldr r0, _0810EBC8 @ =gUnknown_0203925A
+ ldrb r0, [r0]
+ cmp r1, r0
+ bge _0810EBCC
+ bl sub_810ECD4
+ b _0810EBE0
+ .align 2, 0
+_0810EBC8: .4byte gUnknown_0203925A
+_0810EBCC:
+ cmp r1, r0
+ bne _0810EBE0
+ ldr r0, _0810EBE8 @ =gUnknown_0203925C
+ ldrb r1, [r0]
+ movs r2, 0x1
+ eors r1, r2
+ strb r1, [r0]
+ movs r0, 0x1
+ bl DestroyVerticalScrollIndicator
+_0810EBE0:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810EBE8: .4byte gUnknown_0203925C
+ thumb_func_end sub_810EB90
+
+ thumb_func_start sub_810EBEC
+sub_810EBEC: @ 810EBEC
+ push {lr}
+ ldr r0, _0810EC2C @ =sub_810EC34
+ movs r1, 0x9
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0810EC30 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ movs r0, 0
+ movs r2, 0x1
+ strh r2, [r1, 0x8]
+ strh r0, [r1, 0xA]
+ strh r0, [r1, 0xC]
+ strh r0, [r1, 0xE]
+ strh r2, [r1, 0x10]
+ movs r0, 0x3
+ strh r0, [r1, 0x12]
+ movs r0, 0
+ bl SetCameraPanningCallback
+ bl sub_810ECFC
+ movs r0, 0x59
+ bl PlaySE
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810EC2C: .4byte sub_810EC34
+_0810EC30: .4byte gTasks
+ thumb_func_end sub_810EBEC
+
+ thumb_func_start sub_810EC34
+sub_810EC34: @ 810EC34
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _0810EC98 @ =gTasks
+ adds r4, r0, r1
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ movs r2, 0x12
+ ldrsh r1, [r4, r2]
+ bl __modsi3
+ cmp r0, 0
+ bne _0810EC92
+ strh r0, [r4, 0xA]
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ movs r1, 0xE
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _0810EC92
+ ldrh r0, [r4, 0x10]
+ negs r0, r0
+ strh r0, [r4, 0x10]
+ movs r2, 0x10
+ ldrsh r1, [r4, r2]
+ movs r0, 0
+ bl SetCameraPanning
+ movs r1, 0xC
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x17
+ bne _0810EC92
+ movs r0, 0x49
+ bl PlaySE
+ adds r0, r5, 0
+ bl sub_810EC9C
+ bl InstallCameraPanAheadCallback
+_0810EC92:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810EC98: .4byte gTasks
+ thumb_func_end sub_810EC34
+
+ thumb_func_start sub_810EC9C
+sub_810EC9C: @ 810EC9C
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ bl DestroyTask
+ bl EnableBothScriptContexts
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810EC9C
+
+ thumb_func_start sub_810ECB0
+sub_810ECB0: @ 810ECB0
+ push {lr}
+ ldr r2, _0810ECD0 @ =gUnknown_0203925C
+ ldrb r1, [r2]
+ lsrs r0, r1, 1
+ cmp r0, 0x1
+ beq _0810ECCC
+ movs r0, 0x2
+ orrs r0, r1
+ strb r0, [r2]
+ movs r0, 0
+ movs r1, 0x24
+ movs r2, 0x8
+ bl CreateVerticalScrollIndicators
+_0810ECCC:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810ECD0: .4byte gUnknown_0203925C
+ thumb_func_end sub_810ECB0
+
+ thumb_func_start sub_810ECD4
+sub_810ECD4: @ 810ECD4
+ push {lr}
+ ldr r2, _0810ECF8 @ =gUnknown_0203925C
+ ldrb r1, [r2]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _0810ECF2
+ movs r0, 0x1
+ orrs r0, r1
+ strb r0, [r2]
+ movs r0, 0x1
+ movs r1, 0x24
+ movs r2, 0x48
+ bl CreateVerticalScrollIndicators
+_0810ECF2:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810ECF8: .4byte gUnknown_0203925C
+ thumb_func_end sub_810ECD4
+
+ thumb_func_start sub_810ECFC
+sub_810ECFC: @ 810ECFC
+ push {r4,lr}
+ ldr r4, _0810ED38 @ =sub_810ED40
+ adds r0, r4, 0
+ bl FuncIsActiveTask
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _0810ED30
+ adds r0, r4, 0
+ movs r1, 0x8
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0810ED3C @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ movs r2, 0
+ strh r2, [r1, 0x8]
+ strh r0, [r1, 0xA]
+ strh r2, [r1, 0xC]
+ strh r2, [r1, 0xE]
+ strh r2, [r1, 0x10]
+_0810ED30:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810ED38: .4byte sub_810ED40
+_0810ED3C: .4byte gTasks
+ thumb_func_end sub_810ECFC
+
+ thumb_func_start sub_810ED40
+sub_810ED40: @ 810ED40
+ push {lr}
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ ldr r1, _0810ED5C @ =gTasks
+ adds r0, r1
+ bl sub_810ED60
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810ED5C: .4byte gTasks
+ thumb_func_end sub_810ED40
+
+ thumb_func_start sub_810ED60
+sub_810ED60: @ 810ED60
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r1, 0xE
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x8
+ beq _0810ED6E
+ b _0810EEB2
+_0810ED6E:
+ movs r0, 0
+ strh r0, [r5, 0xE]
+ movs r1, 0x10
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ beq _0810EE14
+ ldr r2, _0810EDFC @ =0x00000e68
+ movs r0, 0x7
+ movs r1, 0x7
+ bl MapGridSetMetatileIdAt
+ ldr r4, _0810EE00 @ =0x00000e69
+ movs r0, 0x8
+ movs r1, 0x7
+ adds r2, r4, 0
+ bl MapGridSetMetatileIdAt
+ movs r0, 0x9
+ movs r1, 0x7
+ adds r2, r4, 0
+ bl MapGridSetMetatileIdAt
+ ldr r2, _0810EE04 @ =0x00000e6a
+ movs r0, 0xA
+ movs r1, 0x7
+ bl MapGridSetMetatileIdAt
+ movs r2, 0xE7
+ lsls r2, 4
+ movs r0, 0x7
+ movs r1, 0x8
+ bl MapGridSetMetatileIdAt
+ adds r4, 0x8
+ movs r0, 0x8
+ movs r1, 0x8
+ adds r2, r4, 0
+ bl MapGridSetMetatileIdAt
+ movs r0, 0x9
+ movs r1, 0x8
+ adds r2, r4, 0
+ bl MapGridSetMetatileIdAt
+ ldr r2, _0810EE08 @ =0x00000e72
+ movs r0, 0xA
+ movs r1, 0x8
+ bl MapGridSetMetatileIdAt
+ ldr r2, _0810EE0C @ =0x00000e78
+ movs r0, 0x7
+ movs r1, 0x9
+ bl MapGridSetMetatileIdAt
+ adds r4, 0x8
+ movs r0, 0x8
+ movs r1, 0x9
+ adds r2, r4, 0
+ bl MapGridSetMetatileIdAt
+ movs r0, 0x9
+ movs r1, 0x9
+ adds r2, r4, 0
+ bl MapGridSetMetatileIdAt
+ ldr r2, _0810EE10 @ =0x00000e7a
+ movs r0, 0xA
+ movs r1, 0x9
+ bl MapGridSetMetatileIdAt
+ b _0810EE92
+ .align 2, 0
+_0810EDFC: .4byte 0x00000e68
+_0810EE00: .4byte 0x00000e69
+_0810EE04: .4byte 0x00000e6a
+_0810EE08: .4byte 0x00000e72
+_0810EE0C: .4byte 0x00000e78
+_0810EE10: .4byte 0x00000e7a
+_0810EE14:
+ ldr r2, _0810EEC0 @ =0x00000e6b
+ movs r0, 0x7
+ movs r1, 0x7
+ bl MapGridSetMetatileIdAt
+ ldr r4, _0810EEC4 @ =0x00000e6c
+ movs r0, 0x8
+ movs r1, 0x7
+ adds r2, r4, 0
+ bl MapGridSetMetatileIdAt
+ movs r0, 0x9
+ movs r1, 0x7
+ adds r2, r4, 0
+ bl MapGridSetMetatileIdAt
+ ldr r2, _0810EEC8 @ =0x00000e6d
+ movs r0, 0xA
+ movs r1, 0x7
+ bl MapGridSetMetatileIdAt
+ ldr r2, _0810EECC @ =0x00000e73
+ movs r0, 0x7
+ movs r1, 0x8
+ bl MapGridSetMetatileIdAt
+ adds r4, 0x8
+ movs r0, 0x8
+ movs r1, 0x8
+ adds r2, r4, 0
+ bl MapGridSetMetatileIdAt
+ movs r0, 0x9
+ movs r1, 0x8
+ adds r2, r4, 0
+ bl MapGridSetMetatileIdAt
+ ldr r2, _0810EED0 @ =0x00000e75
+ movs r0, 0xA
+ movs r1, 0x8
+ bl MapGridSetMetatileIdAt
+ ldr r2, _0810EED4 @ =0x00000e7b
+ movs r0, 0x7
+ movs r1, 0x9
+ bl MapGridSetMetatileIdAt
+ adds r4, 0x8
+ movs r0, 0x8
+ movs r1, 0x9
+ adds r2, r4, 0
+ bl MapGridSetMetatileIdAt
+ movs r0, 0x9
+ movs r1, 0x9
+ adds r2, r4, 0
+ bl MapGridSetMetatileIdAt
+ ldr r2, _0810EED8 @ =0x00000e7d
+ movs r0, 0xA
+ movs r1, 0x9
+ bl MapGridSetMetatileIdAt
+_0810EE92:
+ bl DrawWholeMapView
+ ldrh r0, [r5, 0x10]
+ movs r1, 0x1
+ eors r0, r1
+ strh r0, [r5, 0x10]
+ ldrh r0, [r5, 0xC]
+ adds r0, 0x1
+ strh r0, [r5, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x8
+ bne _0810EEB2
+ ldrb r0, [r5, 0xA]
+ bl DestroyTask
+_0810EEB2:
+ ldrh r0, [r5, 0xE]
+ adds r0, 0x1
+ strh r0, [r5, 0xE]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810EEC0: .4byte 0x00000e6b
+_0810EEC4: .4byte 0x00000e6c
+_0810EEC8: .4byte 0x00000e6d
+_0810EECC: .4byte 0x00000e73
+_0810EED0: .4byte 0x00000e75
+_0810EED4: .4byte 0x00000e7b
+_0810EED8: .4byte 0x00000e7d
+ thumb_func_end sub_810ED60
+
+ thumb_func_start sub_810EEDC
+sub_810EEDC: @ 810EEDC
+ push {r4,lr}
+ ldr r4, _0810EF08 @ =gUnknown_0203925C
+ ldrb r1, [r4]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0810EEF0
+ movs r0, 0x1
+ bl DestroyVerticalScrollIndicator
+_0810EEF0:
+ ldrb r0, [r4]
+ lsrs r0, 1
+ cmp r0, 0x1
+ bne _0810EEFE
+ movs r0, 0
+ bl DestroyVerticalScrollIndicator
+_0810EEFE:
+ bl BuyMenuFreeMemory
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810EF08: .4byte gUnknown_0203925C
+ thumb_func_end sub_810EEDC
+
+ thumb_func_start SetTrickHouseEndRoomFlag
+SetTrickHouseEndRoomFlag: @ 810EF0C
+ push {lr}
+ ldr r1, _0810EF1C @ =gSpecialVar_0x8004
+ ldr r0, _0810EF20 @ =0x00000259
+ strh r0, [r1]
+ bl FlagSet
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810EF1C: .4byte gSpecialVar_0x8004
+_0810EF20: .4byte 0x00000259
+ thumb_func_end SetTrickHouseEndRoomFlag
+
+ thumb_func_start ResetTrickHouseEndRoomFlag
+ResetTrickHouseEndRoomFlag: @ 810EF24
+ push {lr}
+ ldr r1, _0810EF34 @ =gSpecialVar_0x8004
+ ldr r0, _0810EF38 @ =0x00000259
+ strh r0, [r1]
+ bl FlagReset
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810EF34: .4byte gSpecialVar_0x8004
+_0810EF38: .4byte 0x00000259
+ thumb_func_end ResetTrickHouseEndRoomFlag
+
+ thumb_func_start CheckLeadMonCool
+CheckLeadMonCool: @ 810EF3C
+ push {lr}
+ bl GetLeadMonIndex
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x64
+ muls r0, r1
+ ldr r1, _0810EF5C @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x16
+ bl GetMonData
+ cmp r0, 0xC7
+ bls _0810EF60
+ movs r0, 0x1
+ b _0810EF62
+ .align 2, 0
+_0810EF5C: .4byte gPlayerParty
+_0810EF60:
+ movs r0, 0
+_0810EF62:
+ pop {r1}
+ bx r1
+ thumb_func_end CheckLeadMonCool
+
+ thumb_func_start CheckLeadMonBeauty
+CheckLeadMonBeauty: @ 810EF68
+ push {lr}
+ bl GetLeadMonIndex
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x64
+ muls r0, r1
+ ldr r1, _0810EF88 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x17
+ bl GetMonData
+ cmp r0, 0xC7
+ bls _0810EF8C
+ movs r0, 0x1
+ b _0810EF8E
+ .align 2, 0
+_0810EF88: .4byte gPlayerParty
+_0810EF8C:
+ movs r0, 0
+_0810EF8E:
+ pop {r1}
+ bx r1
+ thumb_func_end CheckLeadMonBeauty
+
+ thumb_func_start CheckLeadMonCute
+CheckLeadMonCute: @ 810EF94
+ push {lr}
+ bl GetLeadMonIndex
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x64
+ muls r0, r1
+ ldr r1, _0810EFB4 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x18
+ bl GetMonData
+ cmp r0, 0xC7
+ bls _0810EFB8
+ movs r0, 0x1
+ b _0810EFBA
+ .align 2, 0
+_0810EFB4: .4byte gPlayerParty
+_0810EFB8:
+ movs r0, 0
+_0810EFBA:
+ pop {r1}
+ bx r1
+ thumb_func_end CheckLeadMonCute
+
+ thumb_func_start CheckLeadMonSmart
+CheckLeadMonSmart: @ 810EFC0
+ push {lr}
+ bl GetLeadMonIndex
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x64
+ muls r0, r1
+ ldr r1, _0810EFE0 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x21
+ bl GetMonData
+ cmp r0, 0xC7
+ bls _0810EFE4
+ movs r0, 0x1
+ b _0810EFE6
+ .align 2, 0
+_0810EFE0: .4byte gPlayerParty
+_0810EFE4:
+ movs r0, 0
+_0810EFE6:
+ pop {r1}
+ bx r1
+ thumb_func_end CheckLeadMonSmart
+
+ thumb_func_start CheckLeadMonTough
+CheckLeadMonTough: @ 810EFEC
+ push {lr}
+ bl GetLeadMonIndex
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x64
+ muls r0, r1
+ ldr r1, _0810F00C @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x2F
+ bl GetMonData
+ cmp r0, 0xC7
+ bls _0810F010
+ movs r0, 0x1
+ b _0810F012
+ .align 2, 0
+_0810F00C: .4byte gPlayerParty
+_0810F010:
+ movs r0, 0
+_0810F012:
+ pop {r1}
+ bx r1
+ thumb_func_end CheckLeadMonTough
+
+ thumb_func_start IsGrassTypeInParty
+IsGrassTypeInParty: @ 810F018
+ push {r4-r6,lr}
+ movs r5, 0
+ ldr r6, _0810F068 @ =gBaseStats
+_0810F01E:
+ movs r0, 0x64
+ adds r1, r5, 0
+ muls r1, r0
+ ldr r0, _0810F06C @ =gPlayerParty
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0x5
+ bl GetMonData
+ cmp r0, 0
+ beq _0810F074
+ adds r0, r4, 0
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0
+ bne _0810F074
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ adds r1, r6
+ ldrb r0, [r1, 0x6]
+ cmp r0, 0xC
+ beq _0810F060
+ ldrb r0, [r1, 0x7]
+ cmp r0, 0xC
+ bne _0810F074
+_0810F060:
+ ldr r1, _0810F070 @ =gScriptResult
+ movs r0, 0x1
+ b _0810F082
+ .align 2, 0
+_0810F068: .4byte gBaseStats
+_0810F06C: .4byte gPlayerParty
+_0810F070: .4byte gScriptResult
+_0810F074:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x5
+ bls _0810F01E
+ ldr r1, _0810F08C @ =gScriptResult
+ movs r0, 0
+_0810F082:
+ strh r0, [r1]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810F08C: .4byte gScriptResult
+ thumb_func_end IsGrassTypeInParty
+
+ thumb_func_start ShowGlassWorkshopMenu
+ShowGlassWorkshopMenu: @ 810F090
+ push {r4,r5,lr}
+ sub sp, 0x8
+ bl ScriptContext2_Enable
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0xA
+ movs r3, 0xB
+ bl MenuDrawTextWindow
+ movs r4, 0
+ str r4, [sp]
+ movs r0, 0x9
+ str r0, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0x1
+ movs r2, 0x1
+ movs r3, 0x5
+ bl InitMenu
+ ldr r0, _0810F104 @ =gUnknown_0203925C
+ strb r4, [r0]
+ bl sub_80F944C
+ bl LoadScrollIndicatorPalette
+ bl sub_810F2B4
+ ldr r5, _0810F108 @ =gUnknown_083F83C0
+_0810F0CA:
+ lsls r0, r4, 2
+ adds r0, r5
+ ldr r0, [r0]
+ lsls r2, r4, 1
+ adds r2, 0x1
+ lsls r2, 24
+ lsrs r2, 24
+ movs r1, 0x1
+ bl MenuPrint
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x4
+ bls _0810F0CA
+ ldr r1, _0810F10C @ =gUnknown_0203925B
+ movs r0, 0
+ strb r0, [r1]
+ ldr r1, _0810F110 @ =gUnknown_0203925A
+ movs r0, 0x8
+ strb r0, [r1]
+ ldr r0, _0810F114 @ =sub_810F118
+ movs r1, 0x8
+ bl CreateTask
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810F104: .4byte gUnknown_0203925C
+_0810F108: .4byte gUnknown_083F83C0
+_0810F10C: .4byte gUnknown_0203925B
+_0810F110: .4byte gUnknown_0203925A
+_0810F114: .4byte sub_810F118
+ thumb_func_end ShowGlassWorkshopMenu
+
+ thumb_func_start sub_810F118
+sub_810F118: @ 810F118
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _0810F1E4 @ =gMain
+ ldrh r0, [r0, 0x2E]
+ cmp r0, 0x40
+ bne _0810F14A
+ ldr r1, _0810F1E8 @ =gUnknown_0203925B
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _0810F14A
+ subs r0, 0x1
+ strb r0, [r1]
+ bl GetMenuCursorPos
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r0, 0x1
+ negs r0, r0
+ bl MoveMenuCursorNoWrap
+ adds r0, r4, 0
+ movs r1, 0x40
+ bl sub_810F1F4
+_0810F14A:
+ ldr r0, _0810F1E4 @ =gMain
+ ldrh r0, [r0, 0x2E]
+ cmp r0, 0x80
+ bne _0810F17A
+ ldr r2, _0810F1E8 @ =gUnknown_0203925B
+ ldrb r1, [r2]
+ ldr r0, _0810F1EC @ =gUnknown_0203925A
+ ldrb r0, [r0]
+ subs r0, 0x1
+ cmp r1, r0
+ beq _0810F17A
+ adds r0, r1, 0x1
+ strb r0, [r2]
+ bl GetMenuCursorPos
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r0, 0x1
+ bl MoveMenuCursorNoWrap
+ adds r0, r4, 0
+ movs r1, 0x80
+ bl sub_810F1F4
+_0810F17A:
+ ldr r4, _0810F1E4 @ =gMain
+ ldrh r1, [r4, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0810F1AE
+ bl sub_8072DEC
+ ldr r0, _0810F1F0 @ =gScriptResult
+ ldr r1, _0810F1E8 @ =gUnknown_0203925B
+ ldrb r1, [r1]
+ strh r1, [r0]
+ movs r0, 0x5
+ bl PlaySE
+ bl sub_810EEDC
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0xC
+ bl MenuZeroFillWindowRect
+ adds r0, r5, 0
+ bl sub_810EC9C
+_0810F1AE:
+ ldrh r1, [r4, 0x2E]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0810F1DE
+ bl sub_8072DEC
+ ldr r1, _0810F1F0 @ =gScriptResult
+ movs r0, 0x7F
+ strh r0, [r1]
+ movs r0, 0x5
+ bl PlaySE
+ bl sub_810EEDC
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0xC
+ bl MenuZeroFillWindowRect
+ adds r0, r5, 0
+ bl sub_810EC9C
+_0810F1DE:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810F1E4: .4byte gMain
+_0810F1E8: .4byte gUnknown_0203925B
+_0810F1EC: .4byte gUnknown_0203925A
+_0810F1F0: .4byte gScriptResult
+ thumb_func_end sub_810F118
+
+ thumb_func_start sub_810F1F4
+sub_810F1F4: @ 810F1F4
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ adds r5, r2, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r3, r1, 0
+ movs r6, 0
+ movs r4, 0
+ ldr r0, _0810F214 @ =gUnknown_0203925A
+ ldrb r0, [r0]
+ cmp r0, 0x4
+ bhi _0810F218
+ movs r0, 0
+ b _0810F282
+ .align 2, 0
+_0810F214: .4byte gUnknown_0203925A
+_0810F218:
+ cmp r1, 0x40
+ bne _0810F22C
+ cmp r2, 0
+ bne _0810F240
+ ldr r0, _0810F228 @ =gUnknown_0203925B
+ ldrb r4, [r0]
+ movs r6, 0x1
+ b _0810F244
+ .align 2, 0
+_0810F228: .4byte gUnknown_0203925B
+_0810F22C:
+ cmp r3, 0x80
+ bne _0810F240
+ cmp r5, 0x4
+ bne _0810F240
+ ldr r0, _0810F288 @ =gUnknown_0203925B
+ ldrb r0, [r0]
+ subs r0, 0x4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r6, 0x1
+_0810F240:
+ cmp r6, 0
+ beq _0810F280
+_0810F244:
+ adds r0, r4, 0
+ movs r1, 0x5
+ bl GlassWorkshopUpdateScrollIndicators
+ movs r0, 0x2
+ movs r1, 0x1
+ movs r2, 0x9
+ movs r3, 0xA
+ bl MenuFillWindowRectWithBlankTile
+ movs r5, 0
+ ldr r7, _0810F28C @ =gUnknown_083F83C0
+_0810F25C:
+ lsls r0, r4, 2
+ adds r0, r7
+ ldr r0, [r0]
+ lsls r2, r5, 1
+ adds r2, 0x1
+ lsls r2, 24
+ lsrs r2, 24
+ movs r1, 0x1
+ bl MenuPrint
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x4
+ bls _0810F25C
+_0810F280:
+ adds r0, r6, 0
+_0810F282:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0810F288: .4byte gUnknown_0203925B
+_0810F28C: .4byte gUnknown_083F83C0
+ thumb_func_end sub_810F1F4
+
+ thumb_func_start sub_810F290
+sub_810F290: @ 810F290
+ push {lr}
+ ldr r2, _0810F2B0 @ =gUnknown_0203925C
+ ldrb r1, [r2]
+ lsrs r0, r1, 1
+ cmp r0, 0x1
+ beq _0810F2AC
+ movs r0, 0x2
+ orrs r0, r1
+ strb r0, [r2]
+ movs r0, 0
+ movs r1, 0x2C
+ movs r2, 0x8
+ bl CreateVerticalScrollIndicators
+_0810F2AC:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810F2B0: .4byte gUnknown_0203925C
+ thumb_func_end sub_810F290
+
+ thumb_func_start sub_810F2B4
+sub_810F2B4: @ 810F2B4
+ push {lr}
+ ldr r2, _0810F2D8 @ =gUnknown_0203925C
+ ldrb r1, [r2]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _0810F2D2
+ movs r0, 0x1
+ orrs r0, r1
+ strb r0, [r2]
+ movs r0, 0x1
+ movs r1, 0x2C
+ movs r2, 0x58
+ bl CreateVerticalScrollIndicators
+_0810F2D2:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810F2D8: .4byte gUnknown_0203925C
+ thumb_func_end sub_810F2B4
+
+ thumb_func_start GlassWorkshopUpdateScrollIndicators
+GlassWorkshopUpdateScrollIndicators: @ 810F2DC
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r1, 24
+ lsrs r5, r1, 24
+ cmp r4, 0
+ bne _0810F300
+ ldr r0, _0810F2FC @ =gUnknown_0203925C
+ ldrb r1, [r0]
+ movs r2, 0x2
+ eors r1, r2
+ strb r1, [r0]
+ movs r0, 0
+ bl DestroyVerticalScrollIndicator
+ b _0810F304
+ .align 2, 0
+_0810F2FC: .4byte gUnknown_0203925C
+_0810F300:
+ bl sub_810F290
+_0810F304:
+ adds r1, r4, r5
+ ldr r0, _0810F314 @ =gUnknown_0203925A
+ ldrb r0, [r0]
+ cmp r1, r0
+ bge _0810F318
+ bl sub_810F2B4
+ b _0810F32C
+ .align 2, 0
+_0810F314: .4byte gUnknown_0203925A
+_0810F318:
+ cmp r1, r0
+ bne _0810F32C
+ ldr r0, _0810F334 @ =gUnknown_0203925C
+ ldrb r1, [r0]
+ movs r2, 0x1
+ eors r1, r2
+ strb r1, [r0]
+ movs r0, 0x1
+ bl DestroyVerticalScrollIndicator
+_0810F32C:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810F334: .4byte gUnknown_0203925C
+ thumb_func_end GlassWorkshopUpdateScrollIndicators
+
+ thumb_func_start SpawnCameraDummy
+SpawnCameraDummy: @ 810F338
+ push {lr}
+ sub sp, 0x8
+ ldr r0, _0810F380 @ =gSaveBlock1
+ ldrh r3, [r0]
+ adds r3, 0x7
+ lsls r3, 16
+ asrs r3, 16
+ ldrh r0, [r0, 0x2]
+ adds r0, 0x7
+ lsls r0, 16
+ asrs r0, 16
+ str r0, [sp]
+ movs r0, 0x3
+ str r0, [sp, 0x4]
+ movs r0, 0x7
+ movs r1, 0x8
+ movs r2, 0x7F
+ bl SpawnSpecialFieldObjectParametrized
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0810F384 @ =gMapObjects
+ lsls r1, r0, 3
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldrb r0, [r1, 0x1]
+ movs r2, 0x20
+ orrs r0, r2
+ strb r0, [r1, 0x1]
+ ldrb r0, [r1, 0x4]
+ bl CameraObjectSetFollowedObjectId
+ add sp, 0x8
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810F380: .4byte gSaveBlock1
+_0810F384: .4byte gMapObjects
+ thumb_func_end SpawnCameraDummy
+
+ thumb_func_start RemoveCameraDummy
+RemoveCameraDummy: @ 810F388
+ push {lr}
+ bl GetPlayerAvatarObjectId
+ lsls r0, 24
+ lsrs r0, 24
+ bl CameraObjectSetFollowedObjectId
+ ldr r0, _0810F3A8 @ =gSaveBlock1
+ ldrb r1, [r0, 0x5]
+ ldrb r2, [r0, 0x4]
+ movs r0, 0x7F
+ bl RemoveFieldObjectByLocalIdAndMap
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810F3A8: .4byte gSaveBlock1
+ thumb_func_end RemoveCameraDummy
+
+ thumb_func_start GetPokeblockNameByMonNature
+GetPokeblockNameByMonNature: @ 810F3AC
+ push {lr}
+ bl GetLeadMonIndex
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x64
+ muls r0, r1
+ ldr r1, _0810F3D4 @ =gPlayerParty
+ adds r0, r1
+ bl GetNature
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _0810F3D8 @ =gStringVar1
+ bl sub_810CB68
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0810F3D4: .4byte gPlayerParty
+_0810F3D8: .4byte gStringVar1
+ thumb_func_end GetPokeblockNameByMonNature
+
+ thumb_func_start GetSecretBaseNearbyMapName
+GetSecretBaseNearbyMapName: @ 810F3DC
+ push {r4,lr}
+ ldr r4, _0810F3FC @ =gStringVar1
+ ldr r0, _0810F400 @ =0x00004026
+ bl VarGet
+ adds r1, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ adds r0, r4, 0
+ movs r2, 0
+ bl sub_80FBFB4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810F3FC: .4byte gStringVar1
+_0810F400: .4byte 0x00004026
+ thumb_func_end GetSecretBaseNearbyMapName
+
+ thumb_func_start sub_810F404
+sub_810F404: @ 810F404
+ push {lr}
+ movs r0, 0x20
+ bl GetGameStat
+ lsls r0, 16
+ lsrs r0, 16
+ pop {r1}
+ bx r1
+ thumb_func_end sub_810F404
+
+ thumb_func_start sub_810F414
+sub_810F414: @ 810F414
+ push {lr}
+ ldr r0, _0810F420 @ =gStringVar1
+ bl sub_8135FF4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810F420: .4byte gStringVar1
+ thumb_func_end sub_810F414
+
+ thumb_func_start sub_810F424
+sub_810F424: @ 810F424
+ push {r4,r5,lr}
+ ldr r2, _0810F458 @ =gSaveBlock1
+ ldr r1, _0810F45C @ =0x00002dd4
+ adds r0, r2, r1
+ ldrb r1, [r0]
+ lsls r1, 25
+ ldr r0, _0810F460 @ =0x00002dd6
+ adds r2, r0
+ lsrs r1, 25
+ ldrh r2, [r2]
+ adds r1, r2
+ ldr r2, _0810F464 @ =gUnknown_083F83E0
+ ldr r0, _0810F468 @ =gSpecialVar_0x8004
+ ldrh r0, [r0]
+ adds r0, r2
+ ldrb r0, [r0]
+ adds r5, r1, r0
+ movs r0, 0x2
+ bl GetPriceReduction
+ lsls r0, 24
+ cmp r0, 0
+ bne _0810F470
+ ldr r4, _0810F46C @ =gUnknown_083F83EC
+ b _0810F472
+ .align 2, 0
+_0810F458: .4byte gSaveBlock1
+_0810F45C: .4byte 0x00002dd4
+_0810F460: .4byte 0x00002dd6
+_0810F464: .4byte gUnknown_083F83E0
+_0810F468: .4byte gSpecialVar_0x8004
+_0810F46C: .4byte gUnknown_083F83EC
+_0810F470:
+ ldr r4, _0810F484 @ =gUnknown_083F83F8
+_0810F472:
+ adds r0, r5, 0
+ movs r1, 0xC
+ bl __umodsi3
+ adds r0, r4
+ ldrb r0, [r0]
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0810F484: .4byte gUnknown_083F83F8
+ thumb_func_end sub_810F424
+
+ thumb_func_start sub_810F488
+sub_810F488: @ 810F488
+ push {lr}
+ ldr r1, _0810F4A0 @ =gSpecialVar_0x8004
+ ldr r0, _0810F4A4 @ =0x00000277
+ strh r0, [r1]
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ beq _0810F4A8
+ movs r0, 0x1
+ b _0810F4AA
+ .align 2, 0
+_0810F4A0: .4byte gSpecialVar_0x8004
+_0810F4A4: .4byte 0x00000277
+_0810F4A8:
+ movs r0, 0
+_0810F4AA:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_810F488
+
+ thumb_func_start sub_810F4B0
+sub_810F4B0: @ 810F4B0
+ push {lr}
+ ldr r1, _0810F4C8 @ =gSpecialVar_0x8004
+ movs r0, 0x9E
+ lsls r0, 2
+ strh r0, [r1]
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ beq _0810F4CC
+ movs r0, 0x1
+ b _0810F4CE
+ .align 2, 0
+_0810F4C8: .4byte gSpecialVar_0x8004
+_0810F4CC:
+ movs r0, 0
+_0810F4CE:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_810F4B0
+
+ thumb_func_start sub_810F4D4
+sub_810F4D4: @ 810F4D4
+ push {lr}
+ ldr r1, _0810F4EC @ =gSpecialVar_0x8004
+ ldr r0, _0810F4F0 @ =0x00000279
+ strh r0, [r1]
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ beq _0810F4F4
+ movs r0, 0x1
+ b _0810F4F6
+ .align 2, 0
+_0810F4EC: .4byte gSpecialVar_0x8004
+_0810F4F0: .4byte 0x00000279
+_0810F4F4:
+ movs r0, 0
+_0810F4F6:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_810F4D4
+
+ thumb_func_start sub_810F4FC
+sub_810F4FC: @ 810F4FC
+ push {lr}
+ ldr r1, _0810F514 @ =gSpecialVar_0x8004
+ ldr r0, _0810F518 @ =0x0000027a
+ strh r0, [r1]
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ beq _0810F51C
+ movs r0, 0x1
+ b _0810F51E
+ .align 2, 0
+_0810F514: .4byte gSpecialVar_0x8004
+_0810F518: .4byte 0x0000027a
+_0810F51C:
+ movs r0, 0
+_0810F51E:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_810F4FC
+
+ thumb_func_start LeadMonHasEffortRibbon
+LeadMonHasEffortRibbon: @ 810F524
+ push {lr}
+ bl GetLeadMonIndex
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x64
+ muls r0, r1
+ ldr r1, _0810F548 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x47
+ movs r2, 0
+ bl GetMonData
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0810F548: .4byte gPlayerParty
+ thumb_func_end LeadMonHasEffortRibbon
+
+ thumb_func_start GivLeadMonEffortRibbon
+GivLeadMonEffortRibbon: @ 810F54C
+ push {lr}
+ sub sp, 0x4
+ movs r0, 0x2A
+ bl IncrementGameStat
+ ldr r0, _0810F580 @ =0x0000083b
+ bl FlagSet
+ movs r1, 0x1
+ mov r0, sp
+ strb r1, [r0]
+ bl GetLeadMonIndex
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x64
+ muls r0, r1
+ ldr r1, _0810F584 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x47
+ mov r2, sp
+ bl SetMonData
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810F580: .4byte 0x0000083b
+_0810F584: .4byte gPlayerParty
+ thumb_func_end GivLeadMonEffortRibbon
+
+ thumb_func_start GetLeadMonEVCount
+GetLeadMonEVCount: @ 810F588
+ push {lr}
+ bl GetLeadMonIndex
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x64
+ muls r0, r1
+ ldr r1, _0810F5AC @ =gPlayerParty
+ adds r0, r1
+ bl GetMonEVCount
+ lsls r0, 16
+ ldr r1, _0810F5B0 @ =0x01fd0000
+ cmp r0, r1
+ bhi _0810F5B4
+ movs r0, 0
+ b _0810F5B6
+ .align 2, 0
+_0810F5AC: .4byte gPlayerParty
+_0810F5B0: .4byte 0x01fd0000
+_0810F5B4:
+ movs r0, 0x1
+_0810F5B6:
+ pop {r1}
+ bx r1
+ thumb_func_end GetLeadMonEVCount
+
+ thumb_func_start sub_810F5BC
+sub_810F5BC: @ 810F5BC
+ push {lr}
+ movs r0, 0xC7
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ bne _0810F610
+ ldr r0, _0810F5E8 @ =gSaveBlock1
+ ldrh r1, [r0, 0x4]
+ movs r0, 0x83
+ lsls r0, 3
+ cmp r1, r0
+ bne _0810F610
+ subs r0, 0x75
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ beq _0810F5F0
+ ldr r0, _0810F5EC @ =0x0000409a
+ movs r1, 0x4
+ b _0810F602
+ .align 2, 0
+_0810F5E8: .4byte gSaveBlock1
+_0810F5EC: .4byte 0x0000409a
+_0810F5F0:
+ movs r0, 0xE9
+ lsls r0, 2
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ beq _0810F610
+ ldr r0, _0810F60C @ =0x0000409a
+ movs r1, 0x5
+_0810F602:
+ bl VarSet
+ movs r0, 0x1
+ b _0810F612
+ .align 2, 0
+_0810F60C: .4byte 0x0000409a
+_0810F610:
+ movs r0, 0
+_0810F612:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_810F5BC
+
+ thumb_func_start sub_810F618
+sub_810F618: @ 810F618
+ push {lr}
+ ldr r0, _0810F624 @ =0x0000085f
+ bl FlagSet
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810F624: .4byte 0x0000085f
+ thumb_func_end sub_810F618
+
+ thumb_func_start PutZigzagoonInPlayerParty
+PutZigzagoonInPlayerParty: @ 810F628
+ push {r4,r5,lr}
+ sub sp, 0x14
+ ldr r5, _0810F690 @ =gPlayerParty
+ movs r1, 0x90
+ lsls r1, 1
+ movs r4, 0
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ str r4, [sp, 0xC]
+ adds r0, r5, 0
+ movs r2, 0x7
+ movs r3, 0x20
+ bl CreateMon
+ movs r1, 0x1
+ add r0, sp, 0x10
+ strh r1, [r0]
+ adds r0, r5, 0
+ movs r1, 0x2E
+ add r2, sp, 0x10
+ bl SetMonData
+ add r1, sp, 0x10
+ movs r0, 0x21
+ strh r0, [r1]
+ adds r0, r5, 0
+ movs r1, 0xD
+ add r2, sp, 0x10
+ bl SetMonData
+ add r0, sp, 0x10
+ strh r4, [r0]
+ adds r0, r5, 0
+ movs r1, 0xE
+ add r2, sp, 0x10
+ bl SetMonData
+ adds r0, r5, 0
+ movs r1, 0xF
+ add r2, sp, 0x10
+ bl SetMonData
+ adds r0, r5, 0
+ movs r1, 0x10
+ add r2, sp, 0x10
+ bl SetMonData
+ add sp, 0x14
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810F690: .4byte gPlayerParty
+ thumb_func_end PutZigzagoonInPlayerParty
+
+ thumb_func_start IsStarterInParty
+IsStarterInParty: @ 810F694
+ push {r4-r6,lr}
+ ldr r0, _0810F6D0 @ =0x00004023
+ bl VarGet
+ lsls r0, 16
+ lsrs r0, 16
+ bl GetStarterPokemon
+ lsls r0, 16
+ lsrs r6, r0, 16
+ bl CalculatePlayerPartyCount
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r4, 0
+ cmp r4, r5
+ bcs _0810F6E2
+_0810F6B6:
+ movs r0, 0x64
+ muls r0, r4
+ ldr r1, _0810F6D4 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x41
+ movs r2, 0
+ bl GetMonData
+ cmp r0, r6
+ bne _0810F6D8
+ movs r0, 0x1
+ b _0810F6E4
+ .align 2, 0
+_0810F6D0: .4byte 0x00004023
+_0810F6D4: .4byte gPlayerParty
+_0810F6D8:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, r5
+ bcc _0810F6B6
+_0810F6E2:
+ movs r0, 0
+_0810F6E4:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end IsStarterInParty
+
+ thumb_func_start CheckFreePokemonStorageSpace
+CheckFreePokemonStorageSpace: @ 810F6EC
+ push {r4-r6,lr}
+ movs r5, 0
+_0810F6F0:
+ movs r4, 0
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r6, r0, 5
+_0810F6FC:
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 4
+ ldr r1, _0810F718 @ =gPokemonStorage + 0x4
+ adds r0, r1
+ adds r0, r6, r0
+ movs r1, 0xB
+ movs r2, 0
+ bl GetBoxMonData
+ cmp r0, 0
+ bne _0810F71C
+ movs r0, 0x1
+ b _0810F732
+ .align 2, 0
+_0810F718: .4byte gPokemonStorage + 0x4
+_0810F71C:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x1D
+ bls _0810F6FC
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0xD
+ bls _0810F6F0
+ movs r0, 0
+_0810F732:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end CheckFreePokemonStorageSpace
+
+ thumb_func_start IsPokerusInParty
+IsPokerusInParty: @ 810F738
+ push {lr}
+ ldr r0, _0810F74C @ =gPlayerParty
+ movs r1, 0x3F
+ bl CheckPartyPokerus
+ lsls r0, 24
+ cmp r0, 0
+ beq _0810F750
+ movs r0, 0x1
+ b _0810F752
+ .align 2, 0
+_0810F74C: .4byte gPlayerParty
+_0810F750:
+ movs r0, 0
+_0810F752:
+ pop {r1}
+ bx r1
+ thumb_func_end IsPokerusInParty
+
+ thumb_func_start sub_810F758
+sub_810F758: @ 810F758
+ push {lr}
+ ldr r0, _0810F798 @ =sub_810F7A8
+ movs r1, 0x9
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0810F79C @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r0, _0810F7A0 @ =gSpecialVar_0x8005
+ ldrh r2, [r0]
+ movs r0, 0
+ strh r2, [r1, 0x8]
+ strh r0, [r1, 0xA]
+ strh r0, [r1, 0xC]
+ strh r0, [r1, 0xE]
+ ldr r0, _0810F7A4 @ =gSpecialVar_0x8004
+ ldrh r0, [r0]
+ strh r0, [r1, 0x10]
+ movs r0, 0x5
+ strh r0, [r1, 0x12]
+ movs r0, 0
+ bl SetCameraPanningCallback
+ movs r0, 0xD6
+ bl PlaySE
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810F798: .4byte sub_810F7A8
+_0810F79C: .4byte gTasks
+_0810F7A0: .4byte gSpecialVar_0x8005
+_0810F7A4: .4byte gSpecialVar_0x8004
+ thumb_func_end sub_810F758
+
+ thumb_func_start sub_810F7A8
+sub_810F7A8: @ 810F7A8
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _0810F810 @ =gTasks
+ adds r4, r0, r1
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ movs r2, 0x12
+ ldrsh r1, [r4, r2]
+ bl __modsi3
+ cmp r0, 0
+ bne _0810F808
+ strh r0, [r4, 0xA]
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ movs r1, 0xE
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _0810F808
+ ldrh r0, [r4, 0x8]
+ negs r0, r0
+ strh r0, [r4, 0x8]
+ ldrh r0, [r4, 0x10]
+ negs r0, r0
+ strh r0, [r4, 0x10]
+ movs r2, 0x8
+ ldrsh r0, [r4, r2]
+ movs r2, 0x10
+ ldrsh r1, [r4, r2]
+ bl SetCameraPanning
+ movs r1, 0xC
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x8
+ bne _0810F808
+ adds r0, r5, 0
+ bl sub_810F814
+ bl InstallCameraPanAheadCallback
+_0810F808:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810F810: .4byte gTasks
+ thumb_func_end sub_810F7A8
+
+ thumb_func_start sub_810F814
+sub_810F814: @ 810F814
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ bl DestroyTask
+ bl EnableBothScriptContexts
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810F814
+
+ thumb_func_start sub_810F828
+sub_810F828: @ 810F828
+ push {lr}
+ movs r0, 0xAE
+ lsls r0, 2
+ bl FlagGet
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ thumb_func_end sub_810F828
+
+ thumb_func_start SetRoute119Weather
+SetRoute119Weather: @ 810F83C
+ push {lr}
+ bl get_map_light_from_warp0
+ lsls r0, 24
+ lsrs r0, 24
+ bl is_light_level_1_2_3_5_or_6
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _0810F858
+ movs r0, 0x14
+ bl SetSav1Weather
+_0810F858:
+ pop {r0}
+ bx r0
+ thumb_func_end SetRoute119Weather
+
+ thumb_func_start SetRoute123Weather
+SetRoute123Weather: @ 810F85C
+ push {lr}
+ bl get_map_light_from_warp0
+ lsls r0, 24
+ lsrs r0, 24
+ bl is_light_level_1_2_3_5_or_6
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _0810F878
+ movs r0, 0x15
+ bl SetSav1Weather
+_0810F878:
+ pop {r0}
+ bx r0
+ thumb_func_end SetRoute123Weather
+
+ thumb_func_start GetLeadMonIndex
+GetLeadMonIndex: @ 810F87C
+ push {r4-r6,lr}
+ bl CalculatePlayerPartyCount
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r5, 0
+ cmp r5, r6
+ bcs _0810F8CA
+_0810F88C:
+ movs r0, 0x64
+ adds r1, r5, 0
+ muls r1, r0
+ ldr r0, _0810F8BC @ =gPlayerParty
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0x41
+ movs r2, 0
+ bl GetMonData
+ movs r1, 0xCE
+ lsls r1, 1
+ cmp r0, r1
+ beq _0810F8C0
+ adds r0, r4, 0
+ movs r1, 0x41
+ movs r2, 0
+ bl GetMonData
+ cmp r0, 0
+ beq _0810F8C0
+ adds r0, r5, 0
+ b _0810F8CC
+ .align 2, 0
+_0810F8BC: .4byte gPlayerParty
+_0810F8C0:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, r6
+ bcc _0810F88C
+_0810F8CA:
+ movs r0, 0
+_0810F8CC:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end GetLeadMonIndex
+
+ thumb_func_start ScriptGetPartyMonSpecies
+ScriptGetPartyMonSpecies: @ 810F8D4
+ push {lr}
+ ldr r0, _0810F8F4 @ =gSpecialVar_0x8004
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0810F8F8 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x41
+ movs r2, 0
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0810F8F4: .4byte gSpecialVar_0x8004
+_0810F8F8: .4byte gPlayerParty
+ thumb_func_end ScriptGetPartyMonSpecies
+
+ thumb_func_start sub_810F8FC
+sub_810F8FC: @ 810F8FC
+ push {lr}
+ movs r0, 0x6
+ bl sub_805ADDC
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810F8FC
+
+ thumb_func_start sub_810F908
+sub_810F908: @ 810F908
+ push {r4,lr}
+ ldr r0, _0810F928 @ =0x000040c2
+ bl VarGet
+ lsls r0, 16
+ lsrs r0, 16
+ adds r3, r0, 0
+ ldr r2, _0810F92C @ =gLocalTime
+ movs r1, 0
+ ldrsh r0, [r2, r1]
+ subs r0, r3
+ cmp r0, 0x6
+ ble _0810F930
+ movs r0, 0
+ b _0810F948
+ .align 2, 0
+_0810F928: .4byte 0x000040c2
+_0810F92C: .4byte gLocalTime
+_0810F930:
+ ldrh r1, [r2]
+ movs r4, 0
+ ldrsh r0, [r2, r4]
+ cmp r0, 0
+ blt _0810F946
+ subs r1, r3
+ movs r0, 0x7
+ subs r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ b _0810F948
+_0810F946:
+ movs r0, 0x8
+_0810F948:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_810F908
+
+ thumb_func_start sub_810F950
+sub_810F950: @ 810F950
+ push {r4,lr}
+ ldr r0, _0810F964 @ =0x000040c2
+ ldr r4, _0810F968 @ =gLocalTime
+ ldrh r1, [r4]
+ bl VarSet
+ ldrh r0, [r4]
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0810F964: .4byte 0x000040c2
+_0810F968: .4byte gLocalTime
+ thumb_func_end sub_810F950
+
+ thumb_func_start sub_810F96C
+sub_810F96C: @ 810F96C
+ push {r4,lr}
+ ldr r0, _0810F994 @ =gSpecialVar_0x8004
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0810F998 @ =gPlayerParty
+ adds r0, r1
+ ldr r4, _0810F99C @ =gStringVar1
+ movs r1, 0x7
+ adds r2, r4, 0
+ bl GetMonData
+ ldr r0, _0810F9A0 @ =gSaveBlock2
+ adds r1, r4, 0
+ bl StringCompareWithoutExtCtrlCodes
+ cmp r0, 0
+ beq _0810F9A4
+ movs r0, 0x1
+ b _0810F9A6
+ .align 2, 0
+_0810F994: .4byte gSpecialVar_0x8004
+_0810F998: .4byte gPlayerParty
+_0810F99C: .4byte gStringVar1
+_0810F9A0: .4byte gSaveBlock2
+_0810F9A4:
+ movs r0, 0
+_0810F9A6:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_810F96C
+
+ thumb_func_start sub_810F9AC
+sub_810F9AC: @ 810F9AC
+ push {r4,r5,lr}
+ ldr r2, _0810F9C0 @ =gScriptResult
+ ldrh r1, [r2]
+ ldr r0, _0810F9C4 @ =0x0000270f
+ cmp r1, r0
+ bls _0810F9C8
+ movs r0, 0
+ bl sub_80BF088
+ b _0810FA4A
+ .align 2, 0
+_0810F9C0: .4byte gScriptResult
+_0810F9C4: .4byte 0x0000270f
+_0810F9C8:
+ ldr r0, _0810F9D8 @ =0x000003e7
+ cmp r1, r0
+ bls _0810F9E0
+ ldr r4, _0810F9DC @ =gStringVar1
+ movs r0, 0xA1
+ strb r0, [r4]
+ adds r4, 0x1
+ b _0810FA04
+ .align 2, 0
+_0810F9D8: .4byte 0x000003e7
+_0810F9DC: .4byte gStringVar1
+_0810F9E0:
+ cmp r1, 0x63
+ bls _0810F9F4
+ ldr r4, _0810F9F0 @ =gStringVar1
+ movs r0, 0xA1
+ strb r0, [r4]
+ strb r0, [r4, 0x1]
+ adds r4, 0x2
+ b _0810FA04
+ .align 2, 0
+_0810F9F0: .4byte gStringVar1
+_0810F9F4:
+ cmp r1, 0x9
+ bls _0810FA24
+ ldr r4, _0810FA20 @ =gStringVar1
+ movs r0, 0xA1
+ strb r0, [r4]
+ strb r0, [r4, 0x1]
+ strb r0, [r4, 0x2]
+ adds r4, 0x3
+_0810FA04:
+ ldrh r5, [r2]
+ adds r0, r5, 0
+ bl sub_80BF0B8
+ adds r3, r0, 0
+ lsls r3, 24
+ lsrs r3, 24
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0
+ bl ConvertIntToDecimalStringN
+ b _0810FA4A
+ .align 2, 0
+_0810FA20: .4byte gStringVar1
+_0810FA24:
+ ldr r4, _0810FA50 @ =gStringVar1
+ movs r0, 0xA1
+ strb r0, [r4]
+ strb r0, [r4, 0x1]
+ strb r0, [r4, 0x2]
+ strb r0, [r4, 0x3]
+ adds r4, 0x4
+ ldrh r5, [r2]
+ adds r0, r5, 0
+ bl sub_80BF0B8
+ adds r3, r0, 0
+ lsls r3, 24
+ lsrs r3, 24
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0
+ bl ConvertIntToDecimalStringN
+_0810FA4A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810FA50: .4byte gStringVar1
+ thumb_func_end sub_810F9AC
+
+ thumb_func_start sub_810FA54
+sub_810FA54: @ 810FA54
+ ldr r0, _0810FA68 @ =gSaveBlock1
+ ldr r2, _0810FA6C @ =0x000013c2
+ adds r1, r0, r2
+ movs r2, 0
+ strh r2, [r1]
+ ldr r1, _0810FA70 @ =0x000013c4
+ adds r0, r1
+ strh r2, [r0]
+ bx lr
+ .align 2, 0
+_0810FA68: .4byte gSaveBlock1
+_0810FA6C: .4byte 0x000013c2
+_0810FA70: .4byte 0x000013c4
+ thumb_func_end sub_810FA54
+
+ thumb_func_start sub_810FA74
+sub_810FA74: @ 810FA74
+ push {lr}
+ bl sub_810FF30
+ lsls r0, 24
+ cmp r0, 0
+ beq _0810FA90
+ bl sub_810FCE8
+ ldr r0, _0810FA94 @ =gSaveBlock1
+ ldr r1, _0810FA98 @ =gSaveBlock2
+ ldrh r1, [r1, 0xE]
+ ldr r2, _0810FA9C @ =0x000013c4
+ adds r0, r2
+ strh r1, [r0]
+_0810FA90:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810FA94: .4byte gSaveBlock1
+_0810FA98: .4byte gSaveBlock2
+_0810FA9C: .4byte 0x000013c4
+ thumb_func_end sub_810FA74
+
+ thumb_func_start sub_810FAA0
+sub_810FAA0: @ 810FAA0
+ push {r4,lr}
+ ldr r4, _0810FAF0 @ =gSaveBlock1
+ ldr r1, _0810FAF4 @ =0x000013c2
+ adds r0, r4, r1
+ ldrh r0, [r0]
+ lsrs r0, 7
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _0810FAE8
+ bl sub_810FF48
+ bl sub_810FD80
+ ldr r0, _0810FAF8 @ =gSaveBlock2
+ ldrh r1, [r0, 0xE]
+ ldr r2, _0810FAFC @ =0x000013c4
+ adds r0, r4, r2
+ strh r1, [r0]
+ ldr r0, _0810FB00 @ =0x00000315
+ bl FlagReset
+ ldr r0, _0810FB04 @ =0x00000316
+ bl FlagReset
+ ldr r0, _0810FB08 @ =0x00000317
+ bl FlagReset
+ movs r0, 0xC6
+ lsls r0, 2
+ bl FlagReset
+ ldr r0, _0810FB0C @ =0x00004095
+ movs r1, 0x1
+ bl VarSet
+_0810FAE8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810FAF0: .4byte gSaveBlock1
+_0810FAF4: .4byte 0x000013c2
+_0810FAF8: .4byte gSaveBlock2
+_0810FAFC: .4byte 0x000013c4
+_0810FB00: .4byte 0x00000315
+_0810FB04: .4byte 0x00000316
+_0810FB08: .4byte 0x00000317
+_0810FB0C: .4byte 0x00004095
+ thumb_func_end sub_810FAA0
+
+ thumb_func_start sub_810FB10
+sub_810FB10: @ 810FB10
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _0810FB54 @ =0x00004095
+ bl VarGet
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x2
+ bne _0810FB80
+ ldr r0, _0810FB58 @ =gSaveBlock1
+ ldr r1, _0810FB5C @ =0x000013c2
+ adds r4, r0, r1
+ ldrh r2, [r4]
+ movs r1, 0x7F
+ ands r1, r2
+ ldr r0, _0810FB60 @ =gUnknown_083F8404
+ adds r0, r5, r0
+ ldrb r0, [r0]
+ adds r1, r0
+ cmp r1, 0x13
+ ble _0810FB7C
+ bl sub_810FCB0
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x2
+ bhi _0810FB68
+ bl sub_810FB9C
+ ldrh r1, [r4]
+ ldr r0, _0810FB64 @ =0x0000ff80
+ ands r0, r1
+ b _0810FB7E
+ .align 2, 0
+_0810FB54: .4byte 0x00004095
+_0810FB58: .4byte gSaveBlock1
+_0810FB5C: .4byte 0x000013c2
+_0810FB60: .4byte gUnknown_083F8404
+_0810FB64: .4byte 0x0000ff80
+_0810FB68:
+ ldrh r0, [r4]
+ ldr r1, _0810FB78 @ =0x0000ff80
+ ands r1, r0
+ movs r0, 0x14
+ orrs r1, r0
+ strh r1, [r4]
+ b _0810FB80
+ .align 2, 0
+_0810FB78: .4byte 0x0000ff80
+_0810FB7C:
+ adds r0, r2, r0
+_0810FB7E:
+ strh r0, [r4]
+_0810FB80:
+ ldr r0, _0810FB94 @ =gSaveBlock1
+ ldr r1, _0810FB98 @ =0x000013c2
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x7F
+ ands r0, r1
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0810FB94: .4byte gSaveBlock1
+_0810FB98: .4byte 0x000013c2
+ thumb_func_end sub_810FB10
+
+ thumb_func_start sub_810FB9C
+sub_810FB9C: @ 810FB9C
+ push {r4-r7,lr}
+ sub sp, 0x4
+ movs r3, 0
+ movs r5, 0
+ ldr r7, _0810FBD8 @ =gSaveBlock1 + 0x13C2
+ movs r6, 0x1
+_0810FBA8:
+ ldrh r1, [r7]
+ ldr r0, _0810FBDC @ =gUnknown_083F8408
+ adds r0, r5, r0
+ ldrb r4, [r0]
+ asrs r1, r4
+ ands r1, r6
+ cmp r1, 0
+ bne _0810FBE0
+ adds r3, r5, 0
+ str r3, [sp]
+ bl Random
+ adds r1, r6, 0
+ ands r1, r0
+ ldr r3, [sp]
+ cmp r1, 0
+ beq _0810FBE0
+ adds r0, r6, 0
+ lsls r0, r4
+ ldrh r1, [r7]
+ orrs r0, r1
+ strh r0, [r7]
+ b _0810FC00
+ .align 2, 0
+_0810FBD8: .4byte gSaveBlock1 + 0x13C2
+_0810FBDC: .4byte gUnknown_083F8408
+_0810FBE0:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x7
+ bls _0810FBA8
+ ldr r2, _0810FC0C @ =gSaveBlock1
+ ldr r0, _0810FC10 @ =0x000013c2
+ adds r2, r0
+ ldr r1, _0810FC14 @ =gUnknown_083F8408
+ adds r1, r3, r1
+ movs r0, 0x1
+ ldrb r1, [r1]
+ lsls r0, r1
+ ldrh r1, [r2]
+ orrs r0, r1
+ strh r0, [r2]
+_0810FC00:
+ adds r0, r3, 0
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0810FC0C: .4byte gSaveBlock1
+_0810FC10: .4byte 0x000013c2
+_0810FC14: .4byte gUnknown_083F8408
+ thumb_func_end sub_810FB9C
+
+ thumb_func_start sub_810FC18
+sub_810FC18: @ 810FC18
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ movs r0, 0
+ mov r8, r0
+ bl sub_810FCB0
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ bne _0810FC3E
+ movs r0, 0
+ b _0810FC94
+_0810FC34:
+ lsls r4, r6
+ ldrh r0, [r2]
+ eors r4, r0
+ strh r4, [r2]
+ b _0810FC92
+_0810FC3E:
+ movs r5, 0
+ ldr r2, _0810FCA0 @ =gSaveBlock1 + 0x13C2
+ movs r4, 0x1
+_0810FC44:
+ ldrh r1, [r2]
+ ldr r7, _0810FCA4 @ =gUnknown_083F8410
+ adds r0, r5, r7
+ ldrb r6, [r0]
+ asrs r1, r6
+ ands r1, r4
+ cmp r1, 0
+ beq _0810FC66
+ mov r8, r5
+ str r2, [sp]
+ bl Random
+ adds r1, r4, 0
+ ands r1, r0
+ ldr r2, [sp]
+ cmp r1, 0
+ bne _0810FC34
+_0810FC66:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x7
+ bls _0810FC44
+ ldr r0, _0810FCA8 @ =gSaveBlock1
+ ldr r1, _0810FCAC @ =0x000013c2
+ adds r4, r0, r1
+ ldrh r1, [r4]
+ mov r2, r8
+ adds r0, r2, r7
+ ldrb r2, [r0]
+ adds r0, r1, 0
+ asrs r0, r2
+ movs r3, 0x1
+ ands r0, r3
+ cmp r0, 0
+ beq _0810FC92
+ adds r0, r3, 0
+ lsls r0, r2
+ eors r1, r0
+ strh r1, [r4]
+_0810FC92:
+ mov r0, r8
+_0810FC94:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0810FCA0: .4byte gSaveBlock1 + 0x13C2
+_0810FCA4: .4byte gUnknown_083F8410
+_0810FCA8: .4byte gSaveBlock1
+_0810FCAC: .4byte 0x000013c2
+ thumb_func_end sub_810FC18
+
+ thumb_func_start sub_810FCB0
+sub_810FCB0: @ 810FCB0
+ push {r4,r5,lr}
+ movs r3, 0
+ movs r2, 0
+ ldr r0, _0810FCE4 @ =gSaveBlock1 + 0x13C2
+ ldrh r4, [r0]
+ movs r5, 0x1
+_0810FCBC:
+ adds r1, r2, 0
+ adds r1, 0x8
+ adds r0, r4, 0
+ asrs r0, r1
+ ands r0, r5
+ cmp r0, 0
+ beq _0810FCD0
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+_0810FCD0:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x7
+ bls _0810FCBC
+ adds r0, r3, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0810FCE4: .4byte gSaveBlock1 + 0x13C2
+ thumb_func_end sub_810FCB0
+
+ thumb_func_start sub_810FCE8
+sub_810FCE8: @ 810FCE8
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ movs r5, 0
+ ldr r2, _0810FD08 @ =gSaveBlock2
+ ldrh r1, [r2, 0xE]
+ ldr r0, _0810FD0C @ =0x000003e6
+ cmp r1, r0
+ bhi _0810FD54
+ ldr r7, _0810FD10 @ =gSaveBlock1
+ adds r6, r2, 0
+ ldr r0, _0810FD14 @ =0x000013c4
+ adds r0, r7
+ mov r8, r0
+ b _0810FD36
+ .align 2, 0
+_0810FD08: .4byte gSaveBlock2
+_0810FD0C: .4byte 0x000003e6
+_0810FD10: .4byte gSaveBlock1
+_0810FD14: .4byte 0x000013c4
+_0810FD18:
+ ldrh r1, [r6, 0xE]
+ ldr r0, _0810FD4C @ =0x000013c4
+ adds r4, r7, r0
+ ldrh r0, [r4]
+ subs r1, r0
+ cmp r1, 0xB
+ ble _0810FD54
+ bl sub_810FC18
+ ldrh r0, [r4]
+ adds r0, 0xC
+ strh r0, [r4]
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+_0810FD36:
+ bl sub_810FCB0
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x4
+ bhi _0810FD50
+ ldrh r0, [r6, 0xE]
+ mov r1, r8
+ strh r0, [r1]
+ b _0810FD54
+ .align 2, 0
+_0810FD4C: .4byte 0x000013c4
+_0810FD50:
+ cmp r5, 0x8
+ bne _0810FD18
+_0810FD54:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810FCE8
+
+ thumb_func_start sub_810FD60
+sub_810FD60: @ 810FD60
+ ldr r0, _0810FD74 @ =gSaveBlock1
+ ldr r1, _0810FD78 @ =0x000013c2
+ adds r0, r1
+ ldrh r0, [r0]
+ ldr r1, _0810FD7C @ =gSpecialVar_0x8004
+ ldrh r1, [r1]
+ asrs r0, r1
+ movs r1, 0x1
+ ands r0, r1
+ bx lr
+ .align 2, 0
+_0810FD74: .4byte gSaveBlock1
+_0810FD78: .4byte 0x000013c2
+_0810FD7C: .4byte gSpecialVar_0x8004
+ thumb_func_end sub_810FD60
+
+ thumb_func_start sub_810FD80
+sub_810FD80: @ 810FD80
+ ldr r2, _0810FDA4 @ =gSaveBlock1
+ ldr r0, _0810FDA8 @ =0x000013c2
+ adds r2, r0
+ ldrh r1, [r2]
+ movs r3, 0x80
+ lsls r3, 6
+ adds r0, r3, 0
+ orrs r0, r1
+ movs r3, 0x80
+ lsls r3, 1
+ adds r1, r3, 0
+ orrs r0, r1
+ movs r3, 0x80
+ lsls r3, 3
+ adds r1, r3, 0
+ orrs r0, r1
+ strh r0, [r2]
+ bx lr
+ .align 2, 0
+_0810FDA4: .4byte gSaveBlock1
+_0810FDA8: .4byte 0x000013c2
+ thumb_func_end sub_810FD80
+
+ thumb_func_start sub_810FDAC
+sub_810FDAC: @ 810FDAC
+ push {lr}
+ movs r3, 0
+ movs r2, 0
+ ldr r0, _0810FDC8 @ =gSpecialVar_0x8004
+ ldrh r0, [r0]
+ subs r0, 0x8
+ cmp r0, 0x7
+ bhi _0810FE0C
+ lsls r0, 2
+ ldr r1, _0810FDCC @ =_0810FDD0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0810FDC8: .4byte gSpecialVar_0x8004
+_0810FDCC: .4byte _0810FDD0
+ .align 2, 0
+_0810FDD0:
+ .4byte _0810FE0C
+ .4byte _0810FE0C
+ .4byte _0810FDF0
+ .4byte _0810FDF6
+ .4byte _0810FDFC
+ .4byte _0810FE02
+ .4byte _0810FE08
+ .4byte _0810FE0C
+_0810FDF0:
+ movs r3, 0
+ movs r2, 0x3
+ b _0810FE0C
+_0810FDF6:
+ movs r3, 0
+ movs r2, 0x1
+ b _0810FE0C
+_0810FDFC:
+ movs r3, 0x1
+ movs r2, 0
+ b _0810FE0C
+_0810FE02:
+ movs r3, 0
+ movs r2, 0x4
+ b _0810FE0C
+_0810FE08:
+ movs r3, 0x1
+ movs r2, 0x5
+_0810FE0C:
+ ldr r0, _0810FE18 @ =gSaveBlock1 + 0x30B8
+ adds r1, r3, 0
+ bl sub_810FE1C
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810FE18: .4byte gSaveBlock1 + 0x30B8
+ thumb_func_end sub_810FDAC
+
+ thumb_func_start sub_810FE1C
+sub_810FE1C: @ 810FE1C
+ push {r4,lr}
+ lsls r1, 24
+ lsls r2, 24
+ lsrs r2, 24
+ lsrs r1, 20
+ adds r1, r0, r1
+ ldrb r0, [r1]
+ cmp r0, 0xFF
+ bne _0810FED0
+ cmp r2, 0x5
+ bhi _0810FEBC
+ lsls r0, r2, 2
+ ldr r1, _0810FE3C @ =_0810FE40
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0810FE3C: .4byte _0810FE40
+ .align 2, 0
+_0810FE40:
+ .4byte _0810FEBC
+ .4byte _0810FE58
+ .4byte _0810FE6C
+ .4byte _0810FE80
+ .4byte _0810FE94
+ .4byte _0810FEA8
+_0810FE58:
+ ldr r0, _0810FE64 @ =gStringVar1
+ ldr r1, _0810FE68 @ =gOtherText_Steven
+ bl StringCopy
+ b _0810FEF2
+ .align 2, 0
+_0810FE64: .4byte gStringVar1
+_0810FE68: .4byte gOtherText_Steven
+_0810FE6C:
+ ldr r0, _0810FE78 @ =gStringVar1
+ ldr r1, _0810FE7C @ =gOtherText_Brawly
+ bl StringCopy
+ b _0810FEF2
+ .align 2, 0
+_0810FE78: .4byte gStringVar1
+_0810FE7C: .4byte gOtherText_Brawly
+_0810FE80:
+ ldr r0, _0810FE8C @ =gStringVar1
+ ldr r1, _0810FE90 @ =gOtherText_Winona
+ bl StringCopy
+ b _0810FEF2
+ .align 2, 0
+_0810FE8C: .4byte gStringVar1
+_0810FE90: .4byte gOtherText_Winona
+_0810FE94:
+ ldr r0, _0810FEA0 @ =gStringVar1
+ ldr r1, _0810FEA4 @ =gOtherText_Phoebe
+ bl StringCopy
+ b _0810FEF2
+ .align 2, 0
+_0810FEA0: .4byte gStringVar1
+_0810FEA4: .4byte gOtherText_Phoebe
+_0810FEA8:
+ ldr r0, _0810FEB4 @ =gStringVar1
+ ldr r1, _0810FEB8 @ =gOtherText_Glacia
+ bl StringCopy
+ b _0810FEF2
+ .align 2, 0
+_0810FEB4: .4byte gStringVar1
+_0810FEB8: .4byte gOtherText_Glacia
+_0810FEBC:
+ ldr r0, _0810FEC8 @ =gStringVar1
+ ldr r1, _0810FECC @ =gOtherText_Wallace
+ bl StringCopy
+ b _0810FEF2
+ .align 2, 0
+_0810FEC8: .4byte gStringVar1
+_0810FECC: .4byte gOtherText_Wallace
+_0810FED0:
+ ldr r4, _0810FEF8 @ =gStringVar1
+ adds r0, r4, 0
+ movs r2, 0x7
+ bl StringCopyN
+ movs r0, 0xFF
+ strb r0, [r4, 0x7]
+ ldrb r0, [r4]
+ cmp r0, 0xFC
+ bne _0810FEF2
+ ldrb r0, [r4, 0x1]
+ cmp r0, 0x15
+ bne _0810FEF2
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl ConvertInternationalString
+_0810FEF2:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810FEF8: .4byte gStringVar1
+ thumb_func_end sub_810FE1C
+
+ thumb_func_start sub_810FEFC
+sub_810FEFC: @ 810FEFC
+ push {lr}
+ ldr r0, _0810FF20 @ =0x00004095
+ bl VarGet
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x2
+ bne _0810FF2C
+ bl sub_810FA74
+ ldr r0, _0810FF24 @ =gUnknown_02024D26
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _0810FF28
+ bl sub_810FB9C
+ b _0810FF2C
+ .align 2, 0
+_0810FF20: .4byte 0x00004095
+_0810FF24: .4byte gUnknown_02024D26
+_0810FF28:
+ bl sub_810FC18
+_0810FF2C:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810FEFC
+
+ thumb_func_start sub_810FF30
+sub_810FF30: @ 810FF30
+ ldr r0, _0810FF40 @ =gSaveBlock1
+ ldr r1, _0810FF44 @ =0x000013c2
+ adds r0, r1
+ ldrh r0, [r0]
+ lsrs r0, 7
+ movs r1, 0x1
+ ands r0, r1
+ bx lr
+ .align 2, 0
+_0810FF40: .4byte gSaveBlock1
+_0810FF44: .4byte 0x000013c2
+ thumb_func_end sub_810FF30
+
+ thumb_func_start sub_810FF48
+sub_810FF48: @ 810FF48
+ ldr r0, _0810FF58 @ =gSaveBlock1
+ ldr r1, _0810FF5C @ =0x000013c2
+ adds r0, r1
+ ldrh r2, [r0]
+ movs r1, 0x80
+ orrs r1, r2
+ strh r1, [r0]
+ bx lr
+ .align 2, 0
+_0810FF58: .4byte gSaveBlock1
+_0810FF5C: .4byte 0x000013c2
+ thumb_func_end sub_810FF48
+
+ thumb_func_start sub_810FF60
+sub_810FF60: @ 810FF60
+ push {lr}
+ ldr r0, _0810FF74 @ =gSpecialVar_0x8004
+ ldrb r0, [r0]
+ bl sub_810FB10
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0810FF74: .4byte gSpecialVar_0x8004
+ thumb_func_end sub_810FF60
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/rom_81258BC.s b/asm/rom_81258BC.s
index cbc5697a6..a169258ae 100644
--- a/asm/rom_81258BC.s
+++ b/asm/rom_81258BC.s
@@ -71,7 +71,7 @@ sub_812AF30: @ 812AF30
adds r6, r0
lsls r6, 3
adds r6, r1
- ldr r1, _0812AF90 @ =gUnknown_03004B00
+ ldr r1, _0812AF90 @ =gBattleAnimArgs
ldrh r0, [r1]
strh r0, [r6, 0x8]
ldrh r0, [r1, 0x2]
@@ -107,7 +107,7 @@ sub_812AF30: @ 812AF30
bx r0
.align 2, 0
_0812AF8C: .4byte gTasks
-_0812AF90: .4byte gUnknown_03004B00
+_0812AF90: .4byte gBattleAnimArgs
_0812AF94: .4byte sub_812AF98
thumb_func_end sub_812AF30
@@ -224,7 +224,7 @@ sub_812B058: @ 812B058
lsls r0, 24
lsrs r0, 24
mov r8, r0
- ldr r0, _0812B0FC @ =gUnknown_03004B00
+ ldr r0, _0812B0FC @ =gBattleAnimArgs
ldrh r1, [r0]
str r1, [sp]
ldrb r5, [r0, 0x4]
@@ -292,7 +292,7 @@ sub_812B058: @ 812B058
pop {r0}
bx r0
.align 2, 0
-_0812B0FC: .4byte gUnknown_03004B00
+_0812B0FC: .4byte gBattleAnimArgs
_0812B100: .4byte gTasks
_0812B104: .4byte sub_812B108
thumb_func_end sub_812B058
@@ -381,7 +381,7 @@ sub_812B18C: @ 812B18C
lsls r0, 24
cmp r0, 0
beq _0812B1CC
- ldr r0, _0812B1BC @ =gUnknown_03004B00
+ ldr r0, _0812B1BC @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
@@ -390,14 +390,14 @@ sub_812B18C: @ 812B18C
ldrh r4, [r0]
b _0812B272
.align 2, 0
-_0812B1BC: .4byte gUnknown_03004B00
+_0812B1BC: .4byte gBattleAnimArgs
_0812B1C0: .4byte 0x02019348
_0812B1C4:
adds r0, r5, 0
bl move_anim_task_del
b _0812B272
_0812B1CC:
- ldr r0, _0812B1E0 @ =gUnknown_03004B00
+ ldr r0, _0812B1E0 @ =gBattleAnimArgs
movs r2, 0
ldrsh r1, [r0, r2]
adds r2, r0, 0
@@ -407,7 +407,7 @@ _0812B1CC:
ldrb r4, [r0]
b _0812B20E
.align 2, 0
-_0812B1E0: .4byte gUnknown_03004B00
+_0812B1E0: .4byte gBattleAnimArgs
_0812B1E4: .4byte gUnknown_0202F7C8
_0812B1E8:
cmp r1, 0x1
@@ -483,7 +483,7 @@ _0812B266:
_0812B272:
cmp r4, 0
beq _0812B2AA
- ldr r0, _0812B298 @ =gUnknown_03004B00
+ ldr r0, _0812B298 @ =gBattleAnimArgs
ldrh r2, [r0, 0x2]
movs r1, 0x2
ldrsh r0, [r0, r1]
@@ -497,7 +497,7 @@ _0812B272:
.align 2, 0
_0812B290: .4byte gUnknown_02024A6A
_0812B294: .4byte gPlayerParty
-_0812B298: .4byte gUnknown_03004B00
+_0812B298: .4byte gBattleAnimArgs
_0812B29C:
lsls r1, r6, 24
asrs r1, 24
@@ -563,7 +563,7 @@ sub_812B30C: @ 812B30C
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
- ldr r0, _0812B33C @ =gUnknown_03004B00
+ ldr r0, _0812B33C @ =gBattleAnimArgs
ldrh r5, [r0]
ldrb r0, [r0, 0x2]
lsls r0, 24
@@ -580,7 +580,7 @@ sub_812B30C: @ 812B30C
pop {r0}
bx r0
.align 2, 0
-_0812B33C: .4byte gUnknown_03004B00
+_0812B33C: .4byte gBattleAnimArgs
thumb_func_end sub_812B30C
thumb_func_start sub_812B340
@@ -589,7 +589,7 @@ sub_812B340: @ 812B340
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
- ldr r0, _0812B370 @ =gUnknown_03004B00
+ ldr r0, _0812B370 @ =gBattleAnimArgs
ldrh r5, [r0]
ldrb r0, [r0, 0x2]
lsls r0, 24
@@ -606,7 +606,7 @@ sub_812B340: @ 812B340
pop {r0}
bx r0
.align 2, 0
-_0812B370: .4byte gUnknown_03004B00
+_0812B370: .4byte gBattleAnimArgs
thumb_func_end sub_812B340
thumb_func_start sub_812B374
@@ -619,7 +619,7 @@ sub_812B374: @ 812B374
lsls r0, 24
lsrs r0, 24
mov r8, r0
- ldr r0, _0812B3F8 @ =gUnknown_03004B00
+ ldr r0, _0812B3F8 @ =gBattleAnimArgs
ldrb r5, [r0, 0x2]
ldrb r6, [r0, 0x4]
ldrh r1, [r0, 0x6]
@@ -673,7 +673,7 @@ sub_812B374: @ 812B374
pop {r0}
bx r0
.align 2, 0
-_0812B3F8: .4byte gUnknown_03004B00
+_0812B3F8: .4byte gBattleAnimArgs
_0812B3FC: .4byte gTasks
_0812B400: .4byte sub_812B404
thumb_func_end sub_812B374
@@ -1177,7 +1177,7 @@ dp01_tbl6_exec_completed: @ 812B7C0
adds r0, r1
ldr r1, _0812B808 @ =sub_812B484
str r1, [r0]
- ldr r0, _0812B80C @ =gUnknown_020239F8
+ ldr r0, _0812B80C @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x2
ands r0, r1
@@ -1201,7 +1201,7 @@ dp01_tbl6_exec_completed: @ 812B7C0
_0812B800: .4byte gUnknown_03004330
_0812B804: .4byte gUnknown_02024A60
_0812B808: .4byte sub_812B484
-_0812B80C: .4byte gUnknown_020239F8
+_0812B80C: .4byte gBattleTypeFlags
_0812B810: .4byte gUnknown_02023A60
_0812B814:
ldr r2, _0812B830 @ =gUnknown_02024A64
@@ -2191,7 +2191,7 @@ sub_812BF54: @ 812BF54
movs r0, 0x3
bl BeginFastPaletteFade
bl dp01_tbl6_exec_completed
- ldr r0, _0812BFA4 @ =gUnknown_020239F8
+ ldr r0, _0812BFA4 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x6
ands r0, r1
@@ -2211,7 +2211,7 @@ _0812BF90:
_0812BF98: .4byte gUnknown_02024D26
_0812BF9C: .4byte gUnknown_02023A60
_0812BFA0: .4byte gUnknown_02024A60
-_0812BFA4: .4byte gUnknown_020239F8
+_0812BFA4: .4byte gBattleTypeFlags
_0812BFA8: .4byte gUnknown_03004330
_0812BFAC: .4byte sub_812B6AC
thumb_func_end sub_812BF54
@@ -2427,7 +2427,7 @@ _0812C140: .4byte SweetScentNothingHereScript
sub_812C144: @ 812C144
push {lr}
adds r2, r0, 0
- ldr r1, _0812C168 @ =gUnknown_03004B00
+ ldr r1, _0812C168 @ =gBattleAnimArgs
ldrh r0, [r1]
ldrh r3, [r2, 0x20]
adds r0, r3
@@ -2443,7 +2443,7 @@ sub_812C144: @ 812C144
ldrh r0, [r1, 0x4]
b _0812C170
.align 2, 0
-_0812C168: .4byte gUnknown_03004B00
+_0812C168: .4byte gBattleAnimArgs
_0812C16C:
ldrh r0, [r1, 0x4]
negs r0, r0
@@ -2675,7 +2675,7 @@ _0812C31A:
movs r1, 0
adds r2, r3, 0
bl sub_8078FDC
- ldr r0, _0812C34C @ =gUnknown_03004B00
+ ldr r0, _0812C34C @ =gBattleAnimArgs
ldrh r0, [r0, 0x4]
strh r0, [r5, 0x2E]
strh r7, [r5, 0x32]
@@ -2691,7 +2691,7 @@ _0812C31A:
bx r0
.align 2, 0
_0812C348: .4byte gUnknown_0202F7C9
-_0812C34C: .4byte gUnknown_03004B00
+_0812C34C: .4byte gBattleAnimArgs
_0812C350: .4byte sub_8078B34
_0812C354: .4byte move_anim_8072740
thumb_func_end sub_812C2BC
@@ -3056,7 +3056,7 @@ _0812C5D6:
add r0, r9
strh r1, [r0, 0x12]
_0812C5F8:
- ldr r0, _0812C61C @ =gUnknown_03004B00
+ ldr r0, _0812C61C @ =gBattleAnimArgs
ldrh r1, [r0, 0xE]
ldr r0, _0812C620 @ =0x0000ffff
cmp r1, r0
@@ -3073,7 +3073,7 @@ _0812C608:
.align 2, 0
_0812C614: .4byte gTasks
_0812C618: .4byte gPlttBufferFaded
-_0812C61C: .4byte gUnknown_03004B00
+_0812C61C: .4byte gBattleAnimArgs
_0812C620: .4byte 0x0000ffff
thumb_func_end sub_812C588
@@ -3184,7 +3184,7 @@ _0812C6CA:
adds r0, r2
strh r1, [r0, 0x12]
_0812C6EE:
- ldr r0, _0812C718 @ =gUnknown_03004B00
+ ldr r0, _0812C718 @ =gBattleAnimArgs
ldrh r1, [r0, 0xE]
ldr r0, _0812C71C @ =0x0000ffff
cmp r1, r0
@@ -3203,7 +3203,7 @@ _0812C6FE:
_0812C70C: .4byte gTasks
_0812C710: .4byte gPlttBufferFaded
_0812C714: .4byte gPlttBufferUnfaded
-_0812C718: .4byte gUnknown_03004B00
+_0812C718: .4byte gBattleAnimArgs
_0812C71C: .4byte 0x0000ffff
thumb_func_end sub_812C64C
@@ -3228,12 +3228,12 @@ sub_812C720: @ 812C720
lsls r0, 24
cmp r0, 0
beq _0812C754
- ldr r1, _0812C78C @ =gUnknown_03004B00
+ ldr r1, _0812C78C @ =gBattleAnimArgs
ldrh r0, [r1, 0x4]
negs r0, r0
strh r0, [r1, 0x4]
_0812C754:
- ldr r1, _0812C78C @ =gUnknown_03004B00
+ ldr r1, _0812C78C @ =gBattleAnimArgs
ldrh r0, [r1, 0x8]
strh r0, [r4, 0x2E]
mov r2, sp
@@ -3258,7 +3258,7 @@ _0812C754:
.align 2, 0
_0812C784: .4byte gUnknown_0202F7C9
_0812C788: .4byte gUnknown_0202F7C8
-_0812C78C: .4byte gUnknown_03004B00
+_0812C78C: .4byte gBattleAnimArgs
_0812C790: .4byte 0x0000ffce
_0812C794: .4byte sub_812C798
thumb_func_end sub_812C720
@@ -3333,7 +3333,7 @@ sub_812C80C: @ 812C80C
push {r4,r5,lr}
adds r4, r0, 0
bl sub_8078650
- ldr r5, _0812C83C @ =gUnknown_03004B00
+ ldr r5, _0812C83C @ =gBattleAnimArgs
movs r0, 0
ldrsh r1, [r5, r0]
adds r0, r4, 0
@@ -3351,7 +3351,7 @@ sub_812C80C: @ 812C80C
pop {r0}
bx r0
.align 2, 0
-_0812C83C: .4byte gUnknown_03004B00
+_0812C83C: .4byte gBattleAnimArgs
_0812C840: .4byte sub_8078600
_0812C844: .4byte move_anim_8072740
thumb_func_end sub_812C80C
@@ -3366,7 +3366,7 @@ sub_812C848: @ 812C848
bne _0812C8A8
adds r0, r4, 0
bl sub_8078650
- ldr r5, _0812C884 @ =gUnknown_03004B00
+ ldr r5, _0812C884 @ =gBattleAnimArgs
movs r2, 0
ldrsh r1, [r5, r2]
adds r0, r4, 0
@@ -3384,7 +3384,7 @@ sub_812C848: @ 812C848
ldrh r0, [r5, 0x4]
b _0812C8A2
.align 2, 0
-_0812C884: .4byte gUnknown_03004B00
+_0812C884: .4byte gBattleAnimArgs
_0812C888: .4byte gUnknown_0202F7C8
_0812C88C:
movs r1, 0x4
@@ -3482,14 +3482,14 @@ sub_812C924: @ 812C924
lsrs r0, 24
cmp r0, 0x1
bne _0812C948
- ldr r1, _0812C944 @ =gUnknown_03004B00
+ ldr r1, _0812C944 @ =gBattleAnimArgs
movs r0, 0
b _0812C94C
.align 2, 0
_0812C940: .4byte gUnknown_0202F7C9
-_0812C944: .4byte gUnknown_03004B00
+_0812C944: .4byte gBattleAnimArgs
_0812C948:
- ldr r1, _0812C95C @ =gUnknown_03004B00
+ ldr r1, _0812C95C @ =gBattleAnimArgs
movs r0, 0x1
_0812C94C:
strh r0, [r1, 0xE]
@@ -3499,7 +3499,7 @@ _0812C94C:
pop {r0}
bx r0
.align 2, 0
-_0812C95C: .4byte gUnknown_03004B00
+_0812C95C: .4byte gBattleAnimArgs
thumb_func_end sub_812C924
thumb_func_start sub_812C960
@@ -3511,14 +3511,14 @@ sub_812C960: @ 812C960
ldr r0, [r0]
cmp r0, 0
ble _0812C97C
- ldr r1, _0812C978 @ =gUnknown_03004B00
+ ldr r1, _0812C978 @ =gBattleAnimArgs
movs r0, 0
b _0812C980
.align 2, 0
_0812C974: .4byte gUnknown_0202F7B8
-_0812C978: .4byte gUnknown_03004B00
+_0812C978: .4byte gBattleAnimArgs
_0812C97C:
- ldr r1, _0812C98C @ =gUnknown_03004B00
+ ldr r1, _0812C98C @ =gBattleAnimArgs
movs r0, 0x1
_0812C980:
strh r0, [r1, 0xE]
@@ -3527,7 +3527,7 @@ _0812C980:
pop {r0}
bx r0
.align 2, 0
-_0812C98C: .4byte gUnknown_03004B00
+_0812C98C: .4byte gBattleAnimArgs
thumb_func_end sub_812C960
thumb_func_start sub_812C990
@@ -3719,7 +3719,7 @@ _0812CAF8: .4byte 0x00003f3f
sub_812CAFC: @ 812CAFC
push {r4-r6,lr}
adds r5, r0, 0
- ldr r6, _0812CB70 @ =gUnknown_03004B00
+ ldr r6, _0812CB70 @ =gBattleAnimArgs
movs r1, 0x6
ldrsh r0, [r6, r1]
cmp r0, 0
@@ -3774,7 +3774,7 @@ _0812CB28:
movs r0, 0x2
b _0812CB8A
.align 2, 0
-_0812CB70: .4byte gUnknown_03004B00
+_0812CB70: .4byte gBattleAnimArgs
_0812CB74: .4byte gUnknown_0202F7C8
_0812CB78: .4byte 0x000003ff
_0812CB7C: .4byte 0xfffffc00
@@ -3785,7 +3785,7 @@ _0812CB84:
ldr r0, _0812CBA8 @ =0x0000fffe
_0812CB8A:
strh r0, [r5, 0x30]
- ldr r1, _0812CBAC @ =gUnknown_03004B00
+ ldr r1, _0812CBAC @ =gBattleAnimArgs
ldrh r0, [r1, 0x8]
strh r0, [r5, 0x2E]
movs r2, 0x34
@@ -3802,7 +3802,7 @@ _0812CB9E:
bx r0
.align 2, 0
_0812CBA8: .4byte 0x0000fffe
-_0812CBAC: .4byte gUnknown_03004B00
+_0812CBAC: .4byte gBattleAnimArgs
_0812CBB0: .4byte sub_812CBB4
thumb_func_end sub_812CAFC
@@ -3965,7 +3965,7 @@ _0812CCE4: .4byte gUnknown_03004244
sub_812CCE8: @ 812CCE8
push {r4-r6,lr}
adds r5, r0, 0
- ldr r6, _0812CCFC @ =gUnknown_03004B00
+ ldr r6, _0812CCFC @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r6, r1]
cmp r0, 0
@@ -3973,7 +3973,7 @@ sub_812CCE8: @ 812CCE8
ldr r4, _0812CD00 @ =gUnknown_0202F7C8
b _0812CD06
.align 2, 0
-_0812CCFC: .4byte gUnknown_03004B00
+_0812CCFC: .4byte gBattleAnimArgs
_0812CD00: .4byte gUnknown_0202F7C8
_0812CD04:
ldr r4, _0812CD58 @ =gUnknown_0202F7C9
@@ -3992,7 +3992,7 @@ _0812CD06:
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x22]
- ldr r2, _0812CD5C @ =gUnknown_03004B00
+ ldr r2, _0812CD5C @ =gBattleAnimArgs
ldrh r0, [r2, 0x4]
strh r0, [r5, 0x26]
movs r3, 0
@@ -4020,7 +4020,7 @@ _0812CD3E:
bx r0
.align 2, 0
_0812CD58: .4byte gUnknown_0202F7C9
-_0812CD5C: .4byte gUnknown_03004B00
+_0812CD5C: .4byte gBattleAnimArgs
_0812CD60: .4byte sub_812CD64
thumb_func_end sub_812CCE8
@@ -4087,7 +4087,7 @@ sub_812CDC8: @ 812CDC8
lsls r1, 3
ldr r0, _0812CDE8 @ =gTasks
adds r5, r1, r0
- ldr r0, _0812CDEC @ =gUnknown_03004B00
+ ldr r0, _0812CDEC @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
@@ -4096,7 +4096,7 @@ sub_812CDC8: @ 812CDC8
b _0812CDF6
.align 2, 0
_0812CDE8: .4byte gTasks
-_0812CDEC: .4byte gUnknown_03004B00
+_0812CDEC: .4byte gBattleAnimArgs
_0812CDF0: .4byte gUnknown_0202F7C8
_0812CDF4:
ldr r4, _0812CE3C @ =gUnknown_0202F7C9
@@ -4125,7 +4125,7 @@ _0812CE20:
strh r0, [r5, 0xE]
movs r0, 0x8
strh r0, [r5, 0x10]
- ldr r1, _0812CE40 @ =gUnknown_03004B00
+ ldr r1, _0812CE40 @ =gBattleAnimArgs
ldrh r0, [r1, 0x2]
strh r0, [r5, 0x12]
strh r2, [r5, 0x14]
@@ -4136,7 +4136,7 @@ _0812CE20:
b _0812CE4A
.align 2, 0
_0812CE3C: .4byte gUnknown_0202F7C9
-_0812CE40: .4byte gUnknown_03004B00
+_0812CE40: .4byte gBattleAnimArgs
_0812CE44: .4byte gUnknown_030042C0
_0812CE48:
ldr r0, _0812CE68 @ =gUnknown_03004288
@@ -5487,14 +5487,14 @@ _0812D85E:
add r1, r8
lsls r1, 3
adds r1, r0
- ldr r0, _0812D884 @ =gUnknown_03004B00
+ ldr r0, _0812D884 @ =gBattleAnimArgs
ldrh r0, [r0]
strh r0, [r1, 0x1C]
b _0812DA2A
.align 2, 0
_0812D87C: .4byte REG_BG2CNT
_0812D880: .4byte gTasks
-_0812D884: .4byte gUnknown_03004B00
+_0812D884: .4byte gBattleAnimArgs
_0812D888:
mov r1, r8
lsls r0, r1, 2
@@ -5817,7 +5817,7 @@ c3_80DFBE4: @ 812DB18
push {r4,lr}
lsls r0, 24
lsrs r0, 24
- ldr r4, _0812DB48 @ =gUnknown_03004B00
+ ldr r4, _0812DB48 @ =gBattleAnimArgs
ldr r3, _0812DB4C @ =gSprites
ldr r2, _0812DB50 @ =gUnknown_02024BE0
ldr r1, _0812DB54 @ =gUnknown_0202F7C8
@@ -5838,7 +5838,7 @@ c3_80DFBE4: @ 812DB18
pop {r0}
bx r0
.align 2, 0
-_0812DB48: .4byte gUnknown_03004B00
+_0812DB48: .4byte gBattleAnimArgs
_0812DB4C: .4byte gSprites
_0812DB50: .4byte gUnknown_02024BE0
_0812DB54: .4byte gUnknown_0202F7C8
@@ -6288,7 +6288,7 @@ _0812DED6:
lsrs r0, 24
adds r0, 0x20
strh r0, [r7, 0x22]
- ldr r1, _0812DFD4 @ =gUnknown_03004B00
+ ldr r1, _0812DFD4 @ =gBattleAnimArgs
ldrh r0, [r1]
strh r0, [r7, 0x30]
ldrh r0, [r1, 0x2]
@@ -6346,7 +6346,7 @@ _0812DED6:
adds r0, r4, 0
movs r1, 0x2
bl StartSpriteAnim
- ldr r1, _0812DFD4 @ =gUnknown_03004B00
+ ldr r1, _0812DFD4 @ =gBattleAnimArgs
ldrh r0, [r1]
strh r0, [r5, 0x30]
ldrh r0, [r1, 0x2]
@@ -6393,7 +6393,7 @@ _0812DED6:
bx r0
.align 2, 0
_0812DFD0: .4byte gUnknown_0202F7C8
-_0812DFD4: .4byte gUnknown_03004B00
+_0812DFD4: .4byte gBattleAnimArgs
_0812DFD8: .4byte gBattleAnimSpriteTemplate_84025EC
_0812DFDC: .4byte gSprites
_0812DFE0: .4byte 0x0000ffff
@@ -6714,7 +6714,7 @@ _0812E260:
bl battle_get_per_side_status
lsls r0, 24
lsrs r4, r0, 24
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -7107,7 +7107,7 @@ sub_812E568: @ 812E568
lsls r0, 3
ldr r1, _0812E58C @ =gTasks
adds r4, r0, r1
- ldr r5, _0812E590 @ =gUnknown_03004B00
+ ldr r5, _0812E590 @ =gBattleAnimArgs
movs r1, 0x2
ldrsh r0, [r5, r1]
cmp r0, 0
@@ -7117,7 +7117,7 @@ sub_812E568: @ 812E568
b _0812E628
.align 2, 0
_0812E58C: .4byte gTasks
-_0812E590: .4byte gUnknown_03004B00
+_0812E590: .4byte gBattleAnimArgs
_0812E594:
movs r1, 0x4
ldrsh r0, [r5, r1]
@@ -7396,16 +7396,16 @@ sub_812E7A0: @ 812E7A0
cmp r0, 0
bne _0812E7C4
strh r0, [r4, 0x20]
- ldr r1, _0812E7C0 @ =gUnknown_03004B00
+ ldr r1, _0812E7C0 @ =gBattleAnimArgs
ldrh r0, [r1]
b _0812E7CE
.align 2, 0
_0812E7BC: .4byte gUnknown_0202F7C8
-_0812E7C0: .4byte gUnknown_03004B00
+_0812E7C0: .4byte gBattleAnimArgs
_0812E7C4:
movs r0, 0xF0
strh r0, [r4, 0x20]
- ldr r1, _0812E7E8 @ =gUnknown_03004B00
+ ldr r1, _0812E7E8 @ =gBattleAnimArgs
ldrh r0, [r1]
subs r0, 0x1E
_0812E7CE:
@@ -7421,7 +7421,7 @@ _0812E7CE:
pop {r0}
bx r0
.align 2, 0
-_0812E7E8: .4byte gUnknown_03004B00
+_0812E7E8: .4byte gBattleAnimArgs
_0812E7EC: .4byte sub_812E7F0
thumb_func_end sub_812E7A0
@@ -7506,7 +7506,7 @@ sub_812E860: @ 812E860
movs r0, 0x80
lsls r0, 4
strh r0, [r4, 0x24]
- ldr r0, _0812E8AC @ =gUnknown_03004B00
+ ldr r0, _0812E8AC @ =gBattleAnimArgs
ldrb r0, [r0]
bl obj_id_for_side_relative_to_move
lsls r0, 24
@@ -7521,7 +7521,7 @@ sub_812E860: @ 812E860
bx r0
.align 2, 0
_0812E8A8: .4byte gTasks
-_0812E8AC: .4byte gUnknown_03004B00
+_0812E8AC: .4byte gBattleAnimArgs
_0812E8B0: .4byte sub_812E8B4
thumb_func_end sub_812E860
@@ -7742,7 +7742,7 @@ sub_812EA4C: @ 812EA4C
ldrsh r0, [r5, r1]
cmp r0, 0
bne _0812EAAC
- ldr r6, _0812EAA4 @ =gUnknown_03004B00
+ ldr r6, _0812EAA4 @ =gBattleAnimArgs
movs r2, 0x4
ldrsh r0, [r6, r2]
cmp r0, 0
@@ -7780,7 +7780,7 @@ _0812EA80:
strh r0, [r5, 0x2E]
b _0812EB0A
.align 2, 0
-_0812EAA4: .4byte gUnknown_03004B00
+_0812EAA4: .4byte gBattleAnimArgs
_0812EAA8: .4byte gUnknown_0202F7C8
_0812EAAC:
ldrh r1, [r5, 0x30]
@@ -7852,7 +7852,7 @@ sub_812EB10: @ 812EB10
ldrsh r0, [r2, r1]
cmp r0, 0
bne _0812EC1C
- ldr r0, _0812EB44 @ =gUnknown_03004B00
+ ldr r0, _0812EB44 @ =gBattleAnimArgs
movs r3, 0
ldrsh r1, [r0, r3]
mov r8, r0
@@ -7862,7 +7862,7 @@ sub_812EB10: @ 812EB10
b _0812EB4E
.align 2, 0
_0812EB40: .4byte gTasks
-_0812EB44: .4byte gUnknown_03004B00
+_0812EB44: .4byte gBattleAnimArgs
_0812EB48: .4byte gUnknown_0202F7C8
_0812EB4C:
ldr r0, _0812EB88 @ =gUnknown_0202F7C9
@@ -8077,7 +8077,7 @@ _0812ECEA:
subs r0, r1
_0812ECF2:
strh r0, [r4, 0x30]
- ldr r0, _0812ED04 @ =gUnknown_03004B00
+ ldr r0, _0812ED04 @ =gBattleAnimArgs
ldrh r0, [r0]
strh r0, [r4, 0x32]
lsls r0, 16
@@ -8086,7 +8086,7 @@ _0812ECF2:
ldr r0, _0812ED08 @ =0x0000fff8
b _0812ED0E
.align 2, 0
-_0812ED04: .4byte gUnknown_03004B00
+_0812ED04: .4byte gBattleAnimArgs
_0812ED08: .4byte 0x0000fff8
_0812ED0C:
movs r0, 0xF8
@@ -8183,7 +8183,7 @@ sub_812ED84: @ 812ED84
strh r1, [r0]
adds r0, 0x4
strh r1, [r0]
- ldr r0, _0812EDF8 @ =gUnknown_03004B00
+ ldr r0, _0812EDF8 @ =gBattleAnimArgs
ldrh r0, [r0, 0x4]
strh r0, [r4, 0x2E]
adds r0, r4, 0
@@ -8213,7 +8213,7 @@ _0812EDE8: .4byte 0x00001f3f
_0812EDEC: .4byte gUnknown_030042C4
_0812EDF0: .4byte gUnknown_03004240
_0812EDF4: .4byte REG_WIN0H
-_0812EDF8: .4byte gUnknown_03004B00
+_0812EDF8: .4byte gBattleAnimArgs
_0812EDFC: .4byte sub_812EE00
thumb_func_end sub_812ED84
@@ -8323,7 +8323,7 @@ sub_812EEA4: @ 812EEA4
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x22]
- ldr r1, _0812EEE4 @ =gUnknown_03004B00
+ ldr r1, _0812EEE4 @ =gBattleAnimArgs
ldrh r0, [r1]
strh r0, [r4, 0x2E]
ldrh r0, [r1, 0x2]
@@ -8337,7 +8337,7 @@ sub_812EEA4: @ 812EEA4
bx r0
.align 2, 0
_0812EEE0: .4byte gUnknown_0202F7C8
-_0812EEE4: .4byte gUnknown_03004B00
+_0812EEE4: .4byte gBattleAnimArgs
_0812EEE8: .4byte sub_812EEEC
thumb_func_end sub_812EEA4
@@ -8867,7 +8867,7 @@ sub_812F314: @ 812F314
lsls r1, 3
ldr r0, _0812F334 @ =gTasks
adds r4, r1, r0
- ldr r0, _0812F338 @ =gUnknown_03004B00
+ ldr r0, _0812F338 @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
@@ -8876,7 +8876,7 @@ sub_812F314: @ 812F314
b _0812F342
.align 2, 0
_0812F334: .4byte gTasks
-_0812F338: .4byte gUnknown_03004B00
+_0812F338: .4byte gBattleAnimArgs
_0812F33C: .4byte gUnknown_0202F7C8
_0812F340:
ldr r0, _0812F3C0 @ =gUnknown_0202F7C9
@@ -8919,7 +8919,7 @@ _0812F388:
ldrh r0, [r4, 0x22]
adds r0, 0x42
strh r0, [r4, 0x24]
- ldr r0, _0812F3C4 @ =gUnknown_03004B00
+ ldr r0, _0812F3C4 @ =gBattleAnimArgs
ldrb r0, [r0]
bl obj_id_for_side_relative_to_move
lsls r0, 24
@@ -8943,7 +8943,7 @@ _0812F388:
b _0812F3EE
.align 2, 0
_0812F3C0: .4byte gUnknown_0202F7C9
-_0812F3C4: .4byte gUnknown_03004B00
+_0812F3C4: .4byte gBattleAnimArgs
_0812F3C8: .4byte REG_BG1HOFS
_0812F3CC: .4byte REG_BLDCNT
_0812F3D0: .4byte 0x00003f42
@@ -9390,7 +9390,7 @@ sub_812F724: @ 812F724
adds r4, r0
movs r0, 0
strh r0, [r4, 0x8]
- ldr r0, _0812F760 @ =gUnknown_03004B00
+ ldr r0, _0812F760 @ =gBattleAnimArgs
ldrb r0, [r0]
bl obj_id_for_side_relative_to_move
adds r1, r0, 0
@@ -9407,7 +9407,7 @@ sub_812F724: @ 812F724
bx r0
.align 2, 0
_0812F75C: .4byte gTasks
-_0812F760: .4byte gUnknown_03004B00
+_0812F760: .4byte gBattleAnimArgs
_0812F764: .4byte gUnknown_08402750
_0812F768: .4byte sub_812F76C
thumb_func_end sub_812F724
@@ -9570,7 +9570,7 @@ sub_812F88C: @ 812F88C
ldrh r6, [r4, 0x20]
ldrh r5, [r4, 0x22]
bl sub_8078650
- ldr r0, _0812F8D4 @ =gUnknown_03004B00
+ ldr r0, _0812F8D4 @ =gBattleAnimArgs
ldrb r1, [r0]
adds r0, r4, 0
bl StartSpriteAffineAnim
@@ -9597,7 +9597,7 @@ sub_812F88C: @ 812F88C
pop {r0}
bx r0
.align 2, 0
-_0812F8D4: .4byte gUnknown_03004B00
+_0812F8D4: .4byte gBattleAnimArgs
_0812F8D8: .4byte sub_812F8DC
thumb_func_end sub_812F88C
@@ -9661,7 +9661,7 @@ _0812F942:
sub_812F948: @ 812F948
push {r4-r6,lr}
adds r5, r0, 0
- ldr r6, _0812F9A0 @ =gUnknown_03004B00
+ ldr r6, _0812F9A0 @ =gBattleAnimArgs
ldrh r0, [r6, 0x6]
strh r0, [r5, 0x2E]
ldrb r1, [r6]
@@ -9700,7 +9700,7 @@ _0812F96E:
pop {r0}
bx r0
.align 2, 0
-_0812F9A0: .4byte gUnknown_03004B00
+_0812F9A0: .4byte gBattleAnimArgs
_0812F9A4: .4byte gUnknown_0202F7C9
_0812F9A8: .4byte gUnknown_0202F7C8
_0812F9AC: .4byte sub_80DA48C
@@ -10096,7 +10096,7 @@ sub_812FC68: @ 812FC68
adds r0, r1
ldrb r0, [r0]
strh r0, [r4, 0x26]
- ldr r5, _0812FCD4 @ =gUnknown_03004B00
+ ldr r5, _0812FCD4 @ =gBattleAnimArgs
ldrh r0, [r5]
strh r0, [r4, 0x24]
ldrh r0, [r5]
@@ -10129,7 +10129,7 @@ _0812FCAC:
_0812FCC8: .4byte gTasks
_0812FCCC: .4byte gUnknown_02024BE0
_0812FCD0: .4byte gUnknown_0202F7C8
-_0812FCD4: .4byte gUnknown_03004B00
+_0812FCD4: .4byte gBattleAnimArgs
_0812FCD8: .4byte 0xffff8000
_0812FCDC:
movs r7, 0x2
@@ -10152,7 +10152,7 @@ _0812FCF8:
orrs r0, r1
_0812FD00:
strh r0, [r4, 0xC]
- ldr r0, _0812FD2C @ =gUnknown_03004B00
+ ldr r0, _0812FD2C @ =gBattleAnimArgs
movs r3, 0x4
ldrsh r1, [r0, r3]
movs r2, 0x80
@@ -10172,7 +10172,7 @@ _0812FD00:
b _0812FD4A
.align 2, 0
_0812FD28: .4byte 0xffff8000
-_0812FD2C: .4byte gUnknown_03004B00
+_0812FD2C: .4byte gBattleAnimArgs
_0812FD30: .4byte gTasks
_0812FD34: .4byte 0x00007fff
_0812FD38:
@@ -10221,7 +10221,7 @@ sub_812FD7C: @ 812FD7C
lsls r0, 3
ldr r1, _0812FDB4 @ =gTasks
adds r5, r0, r1
- ldr r4, _0812FDB8 @ =gUnknown_03004B00
+ ldr r4, _0812FDB8 @ =gBattleAnimArgs
movs r1, 0x2
ldrsh r0, [r4, r1]
cmp r0, 0
@@ -10243,7 +10243,7 @@ _0812FD9C:
b _0812FDC2
.align 2, 0
_0812FDB4: .4byte gTasks
-_0812FDB8: .4byte gUnknown_03004B00
+_0812FDB8: .4byte gBattleAnimArgs
_0812FDBC: .4byte gUnknown_0202F7C8
_0812FDC0:
ldr r0, _0812FE10 @ =gUnknown_0202F7C9
@@ -10266,7 +10266,7 @@ _0812FDC2:
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x14]
- ldr r0, _0812FE14 @ =gUnknown_03004B00
+ ldr r0, _0812FE14 @ =gBattleAnimArgs
ldrb r0, [r0]
bl obj_id_for_side_relative_to_move
adds r1, r0, 0
@@ -10283,7 +10283,7 @@ _0812FDC2:
bx r0
.align 2, 0
_0812FE10: .4byte gUnknown_0202F7C9
-_0812FE14: .4byte gUnknown_03004B00
+_0812FE14: .4byte gBattleAnimArgs
_0812FE18: .4byte gUnknown_084028AC
_0812FE1C: .4byte sub_812FE20
thumb_func_end sub_812FD7C
@@ -10537,7 +10537,7 @@ sub_812FFE4: @ 812FFE4
adds r4, r1
movs r0, 0
strh r0, [r4, 0x8]
- ldr r1, _08130030 @ =gUnknown_03004B00
+ ldr r1, _08130030 @ =gBattleAnimArgs
ldrh r0, [r1, 0x2]
strh r0, [r4, 0xA]
ldrb r0, [r1]
@@ -10564,7 +10564,7 @@ sub_812FFE4: @ 812FFE4
bx r0
.align 2, 0
_0813002C: .4byte gTasks
-_08130030: .4byte gUnknown_03004B00
+_08130030: .4byte gBattleAnimArgs
_08130034: .4byte gSprites
_08130038: .4byte sub_813003C
thumb_func_end sub_812FFE4
@@ -10634,7 +10634,7 @@ sub_81300A4: @ 81300A4
lsls r2, 1
ldr r1, _081300E0 @ =gUnknown_0202F7C8
ldrb r3, [r1]
- ldr r1, _081300E4 @ =gUnknown_03004B00
+ ldr r1, _081300E4 @ =gBattleAnimArgs
ldrb r1, [r1]
str r1, [sp]
movs r1, 0xA
@@ -10656,7 +10656,7 @@ sub_81300A4: @ 81300A4
bx r0
.align 2, 0
_081300E0: .4byte gUnknown_0202F7C8
-_081300E4: .4byte gUnknown_03004B00
+_081300E4: .4byte gBattleAnimArgs
_081300E8: .4byte gUnknown_08D2E014
_081300EC: .4byte gUnknown_08D2E170
_081300F0: .4byte gUnknown_08D2E150
@@ -10673,7 +10673,7 @@ sub_81300F4: @ 81300F4
lsrs r0, 24
cmp r0, 0x1
bne _08130110
- ldr r1, _08130150 @ =gUnknown_03004B00
+ ldr r1, _08130150 @ =gBattleAnimArgs
ldrh r0, [r1]
negs r0, r0
strh r0, [r1]
@@ -10682,7 +10682,7 @@ _08130110:
movs r1, 0
bl sub_8077ABC
lsls r0, 24
- ldr r4, _08130150 @ =gUnknown_03004B00
+ ldr r4, _08130150 @ =gBattleAnimArgs
lsrs r0, 24
ldrh r1, [r4]
adds r0, r1
@@ -10707,7 +10707,7 @@ _08130110:
b _08130180
.align 2, 0
_0813014C: .4byte gUnknown_0202F7C8
-_08130150: .4byte gUnknown_03004B00
+_08130150: .4byte gBattleAnimArgs
_08130154: .4byte 0x0000fd80
_08130158:
cmp r0, 0x1
@@ -11214,7 +11214,7 @@ _08130518: .4byte gTasks
sub_813051C: @ 813051C
push {r4,lr}
adds r4, r0, 0
- ldr r1, _08130548 @ =gUnknown_03004B00
+ ldr r1, _08130548 @ =gBattleAnimArgs
ldrh r0, [r1]
strh r0, [r4, 0x20]
ldrh r0, [r1, 0x2]
@@ -11234,7 +11234,7 @@ sub_813051C: @ 813051C
pop {r0}
bx r0
.align 2, 0
-_08130548: .4byte gUnknown_03004B00
+_08130548: .4byte gBattleAnimArgs
_0813054C: .4byte move_anim_8072740
_08130550: .4byte sub_8078CC0
thumb_func_end sub_813051C
@@ -11540,7 +11540,7 @@ _081307AA:
sub_81307B0: @ 81307B0
push {r4-r6,lr}
adds r4, r0, 0
- ldr r0, _081307C4 @ =gUnknown_03004B00
+ ldr r0, _081307C4 @ =gBattleAnimArgs
movs r2, 0
ldrsh r1, [r0, r2]
adds r6, r0, 0
@@ -11549,7 +11549,7 @@ sub_81307B0: @ 81307B0
ldr r0, _081307C8 @ =gUnknown_0202F7C8
b _081307CE
.align 2, 0
-_081307C4: .4byte gUnknown_03004B00
+_081307C4: .4byte gBattleAnimArgs
_081307C8: .4byte gUnknown_0202F7C8
_081307CC:
ldr r0, _08130834 @ =gUnknown_0202F7C9
@@ -11735,7 +11735,7 @@ sub_8130918: @ 8130918
push {r4,lr}
lsls r0, 24
lsrs r1, r0, 24
- ldr r2, _08130930 @ =gUnknown_03004B00
+ ldr r2, _08130930 @ =gBattleAnimArgs
movs r3, 0
ldrsh r0, [r2, r3]
cmp r0, 0
@@ -11744,7 +11744,7 @@ sub_8130918: @ 8130918
bl move_anim_task_del
b _0813095C
.align 2, 0
-_08130930: .4byte gUnknown_03004B00
+_08130930: .4byte gBattleAnimArgs
_08130934:
ldr r0, _08130964 @ =gTasks
lsls r4, r1, 2
@@ -11873,7 +11873,7 @@ _08130A26:
sub_8130A2C: @ 8130A2C
push {r4,r5,lr}
adds r5, r0, 0
- ldr r0, _08130A40 @ =gUnknown_03004B00
+ ldr r0, _08130A40 @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
@@ -11881,7 +11881,7 @@ sub_8130A2C: @ 8130A2C
ldr r4, _08130A44 @ =gUnknown_0202F7C8
b _08130A4A
.align 2, 0
-_08130A40: .4byte gUnknown_03004B00
+_08130A40: .4byte gBattleAnimArgs
_08130A44: .4byte gUnknown_0202F7C8
_08130A48:
ldr r4, _08130A88 @ =gUnknown_0202F7C9
@@ -11905,7 +11905,7 @@ _08130A4A:
_08130A6E:
movs r2, 0
strh r2, [r5, 0x2E]
- ldr r1, _08130A8C @ =gUnknown_03004B00
+ ldr r1, _08130A8C @ =gBattleAnimArgs
ldrh r0, [r1, 0x2]
strh r0, [r5, 0x30]
strh r2, [r5, 0x32]
@@ -11918,7 +11918,7 @@ _08130A6E:
bx r0
.align 2, 0
_08130A88: .4byte gUnknown_0202F7C9
-_08130A8C: .4byte gUnknown_03004B00
+_08130A8C: .4byte gBattleAnimArgs
_08130A90: .4byte sub_8130A94
thumb_func_end sub_8130A2C
@@ -11974,7 +11974,7 @@ _08130AE8:
sub_8130AEC: @ 8130AEC
push {lr}
adds r3, r0, 0
- ldr r0, _08130B18 @ =gUnknown_03004B00
+ ldr r0, _08130B18 @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
@@ -11994,7 +11994,7 @@ sub_8130AEC: @ 8130AEC
movs r0, 0x1
b _08130B22
.align 2, 0
-_08130B18: .4byte gUnknown_03004B00
+_08130B18: .4byte gBattleAnimArgs
_08130B1C:
movs r0, 0x8C
strh r0, [r3, 0x20]
@@ -12284,7 +12284,7 @@ sub_8130D20: @ 8130D20
lsls r0, 24
cmp r0, 0
bne _08130DA8
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
lsrs r7, r0, 24
cmp r7, 0x1
@@ -12562,7 +12562,7 @@ _08130F58: .4byte gSprites
sub_8130F5C: @ 8130F5C
push {r4,lr}
adds r4, r0, 0
- ldr r0, _08130F78 @ =gUnknown_03004B00
+ ldr r0, _08130F78 @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
@@ -12573,7 +12573,7 @@ sub_8130F5C: @ 8130F5C
ldr r0, _08130F7C @ =gUnknown_0202F7C8
b _08130F82
.align 2, 0
-_08130F78: .4byte gUnknown_03004B00
+_08130F78: .4byte gBattleAnimArgs
_08130F7C: .4byte gUnknown_0202F7C8
_08130F80:
ldr r0, _08130FD8 @ =gUnknown_0202F7C9
@@ -12979,7 +12979,7 @@ sub_8131264: @ 8131264
cmp r0, 0
beq _081312A8
_08131290:
- ldr r2, _081312A4 @ =gUnknown_03004B00
+ ldr r2, _081312A4 @ =gBattleAnimArgs
ldrh r1, [r5, 0x20]
ldrh r0, [r2]
subs r0, r1, r0
@@ -12989,9 +12989,9 @@ _08131290:
b _081312B6
.align 2, 0
_081312A0: .4byte gUnknown_0202F7C9
-_081312A4: .4byte gUnknown_03004B00
+_081312A4: .4byte gBattleAnimArgs
_081312A8:
- ldr r2, _081312DC @ =gUnknown_03004B00
+ ldr r2, _081312DC @ =gBattleAnimArgs
ldrh r1, [r5, 0x20]
ldrh r0, [r2]
adds r0, r1, r0
@@ -13019,7 +13019,7 @@ _081312B6:
pop {r0}
bx r0
.align 2, 0
-_081312DC: .4byte gUnknown_03004B00
+_081312DC: .4byte gBattleAnimArgs
_081312E0: .4byte sub_81311E4
thumb_func_end sub_8131264
@@ -13810,7 +13810,7 @@ sub_81318F0: @ 81318F0
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
- ldr r3, _0813193C @ =gUnknown_03004B00
+ ldr r3, _0813193C @ =gBattleAnimArgs
movs r2, 0
strh r2, [r3, 0xE]
ldr r1, _08131940 @ =gUnknown_0202F7BE
@@ -13848,7 +13848,7 @@ _08131930:
pop {r0}
bx r0
.align 2, 0
-_0813193C: .4byte gUnknown_03004B00
+_0813193C: .4byte gBattleAnimArgs
_08131940: .4byte gUnknown_0202F7BE
thumb_func_end sub_81318F0
@@ -14305,7 +14305,7 @@ _08131D02:
ldrh r0, [r6, 0x24]
adds r0, 0x1
strh r0, [r6, 0x24]
- ldr r1, _08131D34 @ =gUnknown_03004B00
+ ldr r1, _08131D34 @ =gBattleAnimArgs
ldr r0, _08131D38 @ =0x0000ffff
strh r0, [r1, 0xE]
_08131D0E:
@@ -14329,7 +14329,7 @@ _08131D20:
b _08131DB6
.align 2, 0
_08131D30: .4byte gUnknown_0202F7C9
-_08131D34: .4byte gUnknown_03004B00
+_08131D34: .4byte gBattleAnimArgs
_08131D38: .4byte 0x0000ffff
_08131D3C: .4byte gTasks
_08131D40:
@@ -14527,7 +14527,7 @@ sub_8131EB8: @ 8131EB8
beq _08131F72
b _08131FF4
_08131ECA:
- ldr r0, _08131F50 @ =gUnknown_03004B00
+ ldr r0, _08131F50 @ =gBattleAnimArgs
movs r2, 0xE
ldrsh r1, [r0, r2]
movs r0, 0x1
@@ -14589,7 +14589,7 @@ _08131ECA:
strb r0, [r1]
b _08131FF4
.align 2, 0
-_08131F50: .4byte gUnknown_03004B00
+_08131F50: .4byte gBattleAnimArgs
_08131F54: .4byte gUnknown_0202F7C9
_08131F58: .4byte 0x0000ffe0
_08131F5C: .4byte gUnknown_0202F7C8
@@ -15129,7 +15129,7 @@ sub_8132370: @ 8132370
lsls r0, 24
cmp r0, 0
bne _081323B4
- ldr r2, _081323AC @ =gUnknown_03004B00
+ ldr r2, _081323AC @ =gBattleAnimArgs
ldrh r0, [r4, 0x20]
ldrh r1, [r2]
subs r0, r1
@@ -15148,14 +15148,14 @@ sub_8132370: @ 8132370
b _081323CE
.align 2, 0
_081323A8: .4byte gUnknown_0202F7C9
-_081323AC: .4byte gUnknown_03004B00
+_081323AC: .4byte gBattleAnimArgs
_081323B0: .4byte 0x0000fff5
_081323B4:
movs r0, 0xB
strh r0, [r4, 0x2E]
movs r0, 0xC0
strh r0, [r4, 0x30]
- ldr r1, _081323D8 @ =gUnknown_03004B00
+ ldr r1, _081323D8 @ =gBattleAnimArgs
ldrh r0, [r1]
ldrh r2, [r4, 0x20]
adds r0, r2
@@ -15171,7 +15171,7 @@ _081323CE:
pop {r0}
bx r0
.align 2, 0
-_081323D8: .4byte gUnknown_03004B00
+_081323D8: .4byte gBattleAnimArgs
_081323DC: .4byte sub_8132318
thumb_func_end sub_8132370
@@ -15357,7 +15357,7 @@ sub_8132528: @ 8132528
push {lr}
lsls r0, 24
lsrs r3, r0, 24
- ldr r2, _08132544 @ =gUnknown_03004B00
+ ldr r2, _08132544 @ =gBattleAnimArgs
movs r0, 0
strh r0, [r2, 0xE]
ldr r0, _08132548 @ =gUnknown_0202F7C0
@@ -15369,7 +15369,7 @@ sub_8132528: @ 8132528
movs r0, 0x1
b _0813256E
.align 2, 0
-_08132544: .4byte gUnknown_03004B00
+_08132544: .4byte gBattleAnimArgs
_08132548: .4byte gUnknown_0202F7C0
_0813254C:
movs r0, 0x7
@@ -15412,7 +15412,7 @@ sub_813257C: @ 813257C
adds r4, r0
movs r0, 0
strh r0, [r4, 0x8]
- ldr r0, _081325B8 @ =gUnknown_03004B00
+ ldr r0, _081325B8 @ =gBattleAnimArgs
ldrb r0, [r0]
bl obj_id_for_side_relative_to_move
adds r1, r0, 0
@@ -15429,7 +15429,7 @@ sub_813257C: @ 813257C
bx r0
.align 2, 0
_081325B4: .4byte gTasks
-_081325B8: .4byte gUnknown_03004B00
+_081325B8: .4byte gBattleAnimArgs
_081325BC: .4byte gUnknown_08402B28
_081325C0: .4byte sub_81325C4
thumb_func_end sub_813257C
@@ -21501,7 +21501,7 @@ _08135588:
beq _08135600
b _08135648
_0813558E:
- ldr r1, _081355A4 @ =gUnknown_020239F8
+ ldr r1, _081355A4 @ =gBattleTypeFlags
movs r3, 0x84
lsls r3, 1
adds r0, r3, 0
@@ -21511,7 +21511,7 @@ _0813558E:
bl sub_8134DD4
b _081355D6
.align 2, 0
-_081355A4: .4byte gUnknown_020239F8
+_081355A4: .4byte gBattleTypeFlags
_081355A8: .4byte gTrainerBattleOpponent
_081355AC:
movs r5, 0
@@ -21565,7 +21565,7 @@ _08135606:
adds r5, 0x1
cmp r5, 0x2
ble _08135606
- ldr r1, _08135658 @ =gUnknown_020239F8
+ ldr r1, _08135658 @ =gBattleTypeFlags
ldr r2, _0813565C @ =0x00000808
adds r0, r2, 0
strh r0, [r1]
@@ -21589,7 +21589,7 @@ _08135648:
.align 2, 0
_08135650: .4byte gEnemyParty
_08135654: .4byte gSaveBlock2 + 0x4CC
-_08135658: .4byte gUnknown_020239F8
+_08135658: .4byte gBattleTypeFlags
_0813565C: .4byte 0x00000808
_08135660: .4byte gTrainerBattleOpponent
_08135664: .4byte sub_8135534
@@ -21803,7 +21803,7 @@ _08135820:
adds r0, r5, r2
ldrh r1, [r0]
movs r0, 0x20
- bl sav12_xor_set
+ bl SetGameStat
b _0813589A
.align 2, 0
_08135830: .4byte 0x00000572
@@ -21985,7 +21985,7 @@ _081359A0:
adds r0, r3, r1
ldrh r1, [r0]
movs r0, 0x20
- bl sav12_xor_set
+ bl SetGameStat
b _08135A0A
.align 2, 0
_081359B0: .4byte 0x00000572
@@ -22093,7 +22093,7 @@ _08135A66:
adds r5, r0, 0
movs r0, 0x20
adds r1, r5, 0
- bl sav12_xor_set
+ bl SetGameStat
ldr r1, _08135A90 @ =0x0000270f
cmp r5, r1
bhi _08135AA4
@@ -22107,7 +22107,7 @@ _08135A94:
ldrh r5, [r1]
movs r0, 0x20
adds r1, r5, 0
- bl sav12_xor_set
+ bl SetGameStat
ldr r1, _08135AAC @ =0x0000270f
cmp r5, r1
bls _08135AB4
@@ -22179,7 +22179,7 @@ _08135B0E:
adds r0, 0xC
ldr r4, _08135B88 @ =gSaveBlock2 + 0xA
adds r1, r4, 0
- bl sub_8052D10
+ bl copy_word_to_mem
adds r0, r5, 0x4
subs r4, 0xA
adds r1, r4, 0
@@ -22651,7 +22651,7 @@ _08135EBA:
cmp r0, 0
beq _08135EC8
movs r0, 0x2A
- bl sav12_xor_increment
+ bl IncrementGameStat
_08135EC8:
pop {r3}
mov r8, r3
@@ -22708,7 +22708,7 @@ _08135F2A:
adds r0, 0xC
ldr r4, _08135FAC @ =gSaveBlock2 + 0xA
adds r1, r4, 0
- bl sub_8052D10
+ bl copy_word_to_mem
adds r0, r7, 0x4
subs r4, 0xA
adds r1, r4, 0
@@ -25546,11 +25546,11 @@ _08137596:
ands r0, r1
cmp r0, 0
bne _08137684
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _08137626
- ldr r0, _0813769C @ =gUnknown_020239F8
+ ldr r0, _0813769C @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x40
ands r0, r1
@@ -25644,7 +25644,7 @@ _0813768C: .4byte gUnknown_02024A60
_08137690: .4byte 0x02017810
_08137694: .4byte gUnknown_02024A6A
_08137698: .4byte gPlayerParty
-_0813769C: .4byte gUnknown_020239F8
+_0813769C: .4byte gBattleTypeFlags
_081376A0: .4byte gUnknown_0300434C
_081376A4: .4byte gSprites
_081376A8: .4byte gUnknown_03004340
@@ -26001,7 +26001,7 @@ dp01_tbl5_exec_completed: @ 813796C
adds r0, r1
ldr r1, _081379B4 @ =sub_813726C
str r1, [r0]
- ldr r0, _081379B8 @ =gUnknown_020239F8
+ ldr r0, _081379B8 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x2
ands r0, r1
@@ -26025,7 +26025,7 @@ dp01_tbl5_exec_completed: @ 813796C
_081379AC: .4byte gUnknown_03004330
_081379B0: .4byte gUnknown_02024A60
_081379B4: .4byte sub_813726C
-_081379B8: .4byte gUnknown_020239F8
+_081379B8: .4byte gBattleTypeFlags
_081379BC: .4byte gUnknown_02023A60
_081379C0:
ldr r2, _081379DC @ =gUnknown_02024A64
@@ -29815,7 +29815,7 @@ sub_81398BC: @ 81398BC
lsrs r0, 16
mov r8, r0
ldr r0, _08139A10 @ =sub_80312F0
- bl object_new_hidden_with_callback
+ bl CreateInvisibleSpriteWithCallback
ldr r1, _08139A14 @ =gUnknown_0300434C
mov r9, r1
add r9, r6
@@ -30171,7 +30171,7 @@ sub_8139BB8: @ 8139BB8
movs r0, 0x3
bl BeginFastPaletteFade
bl dp01_tbl5_exec_completed
- ldr r0, _08139C08 @ =gUnknown_020239F8
+ ldr r0, _08139C08 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x6
ands r0, r1
@@ -30191,7 +30191,7 @@ _08139BF4:
_08139BFC: .4byte gUnknown_02024D26
_08139C00: .4byte gUnknown_02023A60
_08139C04: .4byte gUnknown_02024A60
-_08139C08: .4byte gUnknown_020239F8
+_08139C08: .4byte gBattleTypeFlags
_08139C0C: .4byte gUnknown_03004330
_08139C10: .4byte sub_813746C
thumb_func_end sub_8139BB8
diff --git a/asm/rom_813BA94.s b/asm/rom_813BA94.s
deleted file mode 100644
index e11d5fad9..000000000
--- a/asm/rom_813BA94.s
+++ /dev/null
@@ -1,20259 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start task_intro_1
-task_intro_1: @ 813BA94
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0xC
- mov r8, r0
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- movs r0, 0
- bl SetVBlankCallback
- ldr r4, _0813BC18 @ =gUnknown_02039318
- bl Random
- movs r1, 0x1
- ands r1, r0
- strh r1, [r4]
- bl intro_reset_and_hide_bgs
- ldr r0, _0813BC1C @ =REG_BG3VOFS
- movs r6, 0
- strh r6, [r0]
- ldr r1, _0813BC20 @ =REG_BG2VOFS
- movs r0, 0x50
- strh r0, [r1]
- subs r1, 0x4
- movs r0, 0x18
- strh r0, [r1]
- subs r1, 0x4
- movs r0, 0x28
- strh r0, [r1]
- ldr r0, _0813BC24 @ =gUnknown_08407764
- movs r1, 0xC0
- lsls r1, 19
- bl LZ77UnCompVram
- ldr r0, _0813BC28 @ =gUnknown_08406B74
- ldr r1, _0813BC2C @ =0x06008000
- bl LZ77UnCompVram
- ldr r1, _0813BC30 @ =0x06008800
- add r0, sp, 0x8
- strh r6, [r0]
- ldr r4, _0813BC34 @ =0x040000d4
- str r0, [r4]
- str r1, [r4, 0x4]
- ldr r5, _0813BC38 @ =0x81000400
- str r5, [r4, 0x8]
- ldr r0, [r4, 0x8]
- ldr r0, _0813BC3C @ =gUnknown_08406F28
- ldr r1, _0813BC40 @ =0x06009000
- bl LZ77UnCompVram
- ldr r1, _0813BC44 @ =0x06009800
- add r0, sp, 0x8
- strh r6, [r0]
- str r0, [r4]
- str r1, [r4, 0x4]
- str r5, [r4, 0x8]
- ldr r0, [r4, 0x8]
- ldr r0, _0813BC48 @ =gUnknown_0840725C
- ldr r1, _0813BC4C @ =0x0600a000
- bl LZ77UnCompVram
- ldr r1, _0813BC50 @ =0x0600a800
- add r0, sp, 0x8
- strh r6, [r0]
- str r0, [r4]
- str r1, [r4, 0x4]
- str r5, [r4, 0x8]
- ldr r0, [r4, 0x8]
- ldr r0, _0813BC54 @ =gUnknown_0840754C
- ldr r1, _0813BC58 @ =0x0600b000
- bl LZ77UnCompVram
- ldr r1, _0813BC5C @ =0x0600b800
- add r0, sp, 0x8
- strh r6, [r0]
- str r0, [r4]
- str r1, [r4, 0x4]
- str r5, [r4, 0x8]
- ldr r0, [r4, 0x8]
- ldr r0, _0813BC60 @ =gUnknown_08406974
- movs r5, 0x80
- lsls r5, 2
- movs r1, 0
- adds r2, r5, 0
- bl LoadPalette
- ldr r1, _0813BC64 @ =REG_BG3CNT
- ldr r2, _0813BC68 @ =0x00009603
- adds r0, r2, 0
- strh r0, [r1]
- subs r1, 0x2
- ldr r3, _0813BC6C @ =0x00009402
- adds r0, r3, 0
- strh r0, [r1]
- subs r1, 0x2
- ldr r2, _0813BC70 @ =0x00009201
- adds r0, r2, 0
- strh r0, [r1]
- subs r1, 0x2
- movs r3, 0x90
- lsls r3, 8
- adds r0, r3, 0
- strh r0, [r1]
- ldr r0, _0813BC74 @ =gUnknown_0840B008
- bl LoadCompressedObjectPic
- ldr r0, _0813BC78 @ =gUnknown_0840B018
- bl LoadCompressedObjectPic
- ldr r0, _0813BC7C @ =gUnknown_0840B028
- bl LoadSpritePalettes
- ldr r4, _0813BC80 @ =gPlttBufferUnfaded + 0x200
- movs r0, 0xF0
- lsls r0, 1
- adds r1, r4, r0
- adds r0, r4, 0
- movs r2, 0x10
- bl CpuSet
- movs r2, 0xE1
- lsls r2, 1
- adds r1, r4, r2
- adds r0, r4, 0
- movs r2, 0xF
- bl CpuSet
- movs r3, 0xD2
- lsls r3, 1
- adds r1, r4, r3
- adds r0, r4, 0
- movs r2, 0xE
- bl CpuSet
- movs r0, 0xC3
- lsls r0, 1
- adds r1, r4, r0
- adds r0, r4, 0
- movs r2, 0xD
- bl CpuSet
- movs r2, 0xB4
- lsls r2, 1
- adds r1, r4, r2
- adds r0, r4, 0
- movs r2, 0xC
- bl CpuSet
- movs r3, 0xA5
- lsls r3, 1
- adds r1, r4, r3
- adds r0, r4, 0
- movs r2, 0xB
- bl CpuSet
- movs r0, 0x96
- lsls r0, 1
- adds r1, r4, r0
- adds r0, r4, 0
- movs r2, 0xA
- bl CpuSet
- movs r1, 0xE
- negs r1, r1
- movs r0, 0x78
- str r0, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- movs r0, 0xEC
- adds r2, r5, 0
- movs r3, 0x1
- bl sub_813D584
- ldr r2, _0813BC84 @ =gTasks
- mov r3, r8
- lsls r1, r3, 2
- add r1, r8
- lsls r1, 3
- adds r1, r2
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r1, 0x8]
- ldr r0, _0813BC88 @ =task_intro_2
- str r0, [r1]
- add sp, 0xC
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0813BC18: .4byte gUnknown_02039318
-_0813BC1C: .4byte REG_BG3VOFS
-_0813BC20: .4byte REG_BG2VOFS
-_0813BC24: .4byte gUnknown_08407764
-_0813BC28: .4byte gUnknown_08406B74
-_0813BC2C: .4byte 0x06008000
-_0813BC30: .4byte 0x06008800
-_0813BC34: .4byte 0x040000d4
-_0813BC38: .4byte 0x81000400
-_0813BC3C: .4byte gUnknown_08406F28
-_0813BC40: .4byte 0x06009000
-_0813BC44: .4byte 0x06009800
-_0813BC48: .4byte gUnknown_0840725C
-_0813BC4C: .4byte 0x0600a000
-_0813BC50: .4byte 0x0600a800
-_0813BC54: .4byte gUnknown_0840754C
-_0813BC58: .4byte 0x0600b000
-_0813BC5C: .4byte 0x0600b800
-_0813BC60: .4byte gUnknown_08406974
-_0813BC64: .4byte REG_BG3CNT
-_0813BC68: .4byte 0x00009603
-_0813BC6C: .4byte 0x00009402
-_0813BC70: .4byte 0x00009201
-_0813BC74: .4byte gUnknown_0840B008
-_0813BC78: .4byte gUnknown_0840B018
-_0813BC7C: .4byte gUnknown_0840B028
-_0813BC80: .4byte gPlttBufferUnfaded + 0x200
-_0813BC84: .4byte gTasks
-_0813BC88: .4byte task_intro_2
- thumb_func_end task_intro_1
-
- thumb_func_start task_intro_2
-task_intro_2: @ 813BC8C
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x1
- negs r0, r0
- movs r5, 0
- str r5, [sp]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r0, _0813BCE0 @ =sub_813B784
- bl SetVBlankCallback
- movs r1, 0x80
- lsls r1, 19
- movs r2, 0xFA
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- ldr r1, _0813BCE4 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0813BCE8 @ =sub_813BCF0
- str r1, [r0]
- ldr r0, _0813BCEC @ =gUnknown_03005ED0
- str r5, [r0]
- movs r0, 0xCF
- lsls r0, 1
- bl m4aSongNumStart
- bl ResetSerial
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0813BCE0: .4byte sub_813B784
-_0813BCE4: .4byte gTasks
-_0813BCE8: .4byte sub_813BCF0
-_0813BCEC: .4byte gUnknown_03005ED0
- thumb_func_end task_intro_2
-
- thumb_func_start sub_813BCF0
-sub_813BCF0: @ 813BCF0
- push {r4-r6,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r3, r0, 24
- adds r5, r3, 0
- ldr r4, _0813BDD4 @ =gUnknown_03005ED0
- ldr r0, [r4]
- cmp r0, 0x4C
- bne _0813BD1E
- ldr r2, _0813BDD8 @ =gSprites
- ldr r1, _0813BDDC @ =gTasks
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r0, r1
- movs r6, 0x8
- ldrsh r1, [r0, r6]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x1
- strh r1, [r0, 0x2E]
-_0813BD1E:
- ldr r0, [r4]
- cmp r0, 0xFB
- bne _0813BD40
- ldr r2, _0813BDD8 @ =gSprites
- ldr r1, _0813BDDC @ =gTasks
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r0, r1
- movs r3, 0x8
- ldrsh r1, [r0, r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x2
- strh r1, [r0, 0x2E]
-_0813BD40:
- ldr r1, [r4]
- movs r0, 0xB8
- lsls r0, 1
- cmp r1, r0
- bne _0813BD60
- movs r2, 0x80
- lsls r2, 3
- movs r0, 0x70
- str r0, [sp]
- movs r0, 0x1
- str r0, [sp, 0x4]
- movs r0, 0x30
- movs r1, 0
- movs r3, 0x5
- bl sub_813D584
-_0813BD60:
- ldr r1, [r4]
- movs r0, 0xC0
- lsls r0, 1
- cmp r1, r0
- bne _0813BD80
- movs r2, 0x80
- lsls r2, 3
- movs r0, 0x80
- str r0, [sp]
- movs r0, 0x1
- str r0, [sp, 0x4]
- movs r0, 0xC8
- movs r1, 0x3C
- movs r3, 0x9
- bl sub_813D584
-_0813BD80:
- ldr r1, [r4]
- movs r0, 0x8C
- lsls r0, 2
- cmp r1, r0
- bne _0813BDA0
- ldr r0, _0813BDE0 @ =sub_813CCE8
- movs r1, 0
- bl CreateTask
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- movs r0, 0x78
- movs r1, 0x50
- bl sub_813D954
-_0813BDA0:
- ldr r1, [r4]
- ldr r0, _0813BDE4 @ =0x000002e3
- cmp r1, r0
- bls _0813BDCA
- ldr r1, _0813BDDC @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- movs r2, 0
- movs r1, 0x50
- strh r1, [r0, 0xA]
- strh r2, [r0, 0xC]
- movs r1, 0x18
- strh r1, [r0, 0xE]
- strh r2, [r0, 0x10]
- movs r1, 0x28
- strh r1, [r0, 0x12]
- strh r2, [r0, 0x14]
- ldr r1, _0813BDE8 @ =task_intro_4
- str r1, [r0]
-_0813BDCA:
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0813BDD4: .4byte gUnknown_03005ED0
-_0813BDD8: .4byte gSprites
-_0813BDDC: .4byte gTasks
-_0813BDE0: .4byte sub_813CCE8
-_0813BDE4: .4byte 0x000002e3
-_0813BDE8: .4byte task_intro_4
- thumb_func_end sub_813BCF0
-
- thumb_func_start task_intro_4
-task_intro_4: @ 813BDEC
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r2, r0, 24
- adds r4, r2, 0
- ldr r0, _0813BE80 @ =gUnknown_03005ED0
- ldr r3, [r0]
- ldr r0, _0813BE84 @ =0x00000387
- cmp r3, r0
- bhi _0813BEAC
- ldr r0, _0813BE88 @ =gTasks
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 3
- adds r1, r0
- movs r2, 0xA
- ldrsh r0, [r1, r2]
- lsls r0, 16
- ldrh r2, [r1, 0xC]
- adds r0, r2
- ldr r2, _0813BE8C @ =0xffff4000
- adds r0, r2
- asrs r2, r0, 16
- strh r2, [r1, 0xA]
- strh r0, [r1, 0xC]
- ldr r0, _0813BE90 @ =REG_BG2VOFS
- strh r2, [r0]
- movs r2, 0xE
- ldrsh r0, [r1, r2]
- lsls r0, 16
- ldrh r2, [r1, 0x10]
- adds r0, r2
- ldr r2, _0813BE94 @ =0xffff0000
- adds r0, r2
- asrs r2, r0, 16
- strh r2, [r1, 0xE]
- strh r0, [r1, 0x10]
- ldr r0, _0813BE98 @ =REG_BG1VOFS
- strh r2, [r0]
- movs r2, 0x12
- ldrsh r0, [r1, r2]
- lsls r0, 16
- ldrh r2, [r1, 0x14]
- adds r0, r2
- ldr r2, _0813BE9C @ =0xfffe8000
- adds r0, r2
- asrs r2, r0, 16
- strh r2, [r1, 0x12]
- strh r0, [r1, 0x14]
- ldr r0, _0813BEA0 @ =REG_BG0VOFS
- strh r2, [r0]
- movs r0, 0xDC
- lsls r0, 2
- cmp r3, r0
- bne _0813BED2
- ldr r0, _0813BEA4 @ =gSpriteTemplate_840AFF0
- movs r1, 0xC8
- movs r2, 0xA0
- movs r3, 0xA
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0813BEA8 @ =gSprites
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- adds r1, 0x3E
- ldrb r0, [r1]
- movs r2, 0x4
- orrs r0, r2
- strb r0, [r1]
- b _0813BED2
- .align 2, 0
-_0813BE80: .4byte gUnknown_03005ED0
-_0813BE84: .4byte 0x00000387
-_0813BE88: .4byte gTasks
-_0813BE8C: .4byte 0xffff4000
-_0813BE90: .4byte REG_BG2VOFS
-_0813BE94: .4byte 0xffff0000
-_0813BE98: .4byte REG_BG1VOFS
-_0813BE9C: .4byte 0xfffe8000
-_0813BEA0: .4byte REG_BG0VOFS
-_0813BEA4: .4byte gSpriteTemplate_840AFF0
-_0813BEA8: .4byte gSprites
-_0813BEAC:
- ldr r0, _0813BEDC @ =0x000003ef
- cmp r3, r0
- bls _0813BED2
- movs r0, 0x1
- negs r0, r0
- ldr r1, _0813BEE0 @ =0x0000ffff
- str r1, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _0813BEE4 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0813BEE8 @ =sub_813BEEC
- str r1, [r0]
-_0813BED2:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813BEDC: .4byte 0x000003ef
-_0813BEE0: .4byte 0x0000ffff
-_0813BEE4: .4byte gTasks
-_0813BEE8: .4byte sub_813BEEC
- thumb_func_end task_intro_4
-
- thumb_func_start sub_813BEEC
-sub_813BEEC: @ 813BEEC
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _0813BF10 @ =gUnknown_03005ED0
- ldr r1, [r0]
- ldr r0, _0813BF14 @ =0x00000402
- cmp r1, r0
- bls _0813BF0A
- ldr r0, _0813BF18 @ =gTasks
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 3
- adds r1, r0
- ldr r0, _0813BF1C @ =task_intro_6
- str r0, [r1]
-_0813BF0A:
- pop {r0}
- bx r0
- .align 2, 0
-_0813BF10: .4byte gUnknown_03005ED0
-_0813BF14: .4byte 0x00000402
-_0813BF18: .4byte gTasks
-_0813BF1C: .4byte task_intro_6
- thumb_func_end sub_813BEEC
-
- thumb_func_start task_intro_6
-task_intro_6: @ 813BF20
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl intro_reset_and_hide_bgs
- movs r0, 0
- bl SetVBlankCallback
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- ldr r0, _0813BF60 @ =gUnknown_02039358
- movs r1, 0
- strh r1, [r0]
- ldr r0, _0813BF64 @ =gUnknown_0203935A
- strh r1, [r0]
- .ifdef SAPPHIRE
- movs r0, 0
- .else
- movs r0, 0x1
- .endif
- bl load_intro_part2_graphics
- ldr r1, _0813BF68 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0813BF6C @ =sub_813BF70
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813BF60: .4byte gUnknown_02039358
-_0813BF64: .4byte gUnknown_0203935A
-_0813BF68: .4byte gTasks
-_0813BF6C: .4byte sub_813BF70
- thumb_func_end task_intro_6
-
- thumb_func_start sub_813BF70
-sub_813BF70: @ 813BF70
- push {r4-r7,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r0, _0813BF88 @ =gUnknown_02039318
- ldrh r0, [r0]
- cmp r0, 0
- bne _0813BF90
- ldr r0, _0813BF8C @ =gIntro2BrendanSpriteSheet
- bl LoadCompressedObjectPic
- b _0813BF96
- .align 2, 0
-_0813BF88: .4byte gUnknown_02039318
-_0813BF8C: .4byte gIntro2BrendanSpriteSheet
-_0813BF90:
- ldr r0, _0813BFBC @ =gIntro2MaySpriteSheet
- bl LoadCompressedObjectPic
-_0813BF96:
- ldr r0, _0813BFC0 @ =gIntro2BicycleSpriteSheet
- bl LoadCompressedObjectPic
- ldr r0, _0813BFC4 @ =gIntro2LatiasSpriteSheet, =gIntro2LatiosSpriteSheet
- bl LoadCompressedObjectPic
- ldr r0, _0813BFC8 @ =gIntro2SpritePalettes
- bl LoadSpritePalettes
- ldr r0, _0813BFCC @ =gUnknown_02039318
- ldrh r0, [r0]
- cmp r0, 0
- bne _0813BFD0
- movs r0, 0x88
- lsls r0, 1
- movs r1, 0x64
- bl sub_8149310
- b _0813BFDA
- .align 2, 0
-_0813BFBC: .4byte gIntro2MaySpriteSheet
-_0813BFC0: .4byte gIntro2BicycleSpriteSheet
- .ifdef SAPPHIRE
-_0813BFC4: .4byte gIntro2LatiasSpriteSheet
- .else
-_0813BFC4: .4byte gIntro2LatiosSpriteSheet
- .endif
-_0813BFC8: .4byte gIntro2SpritePalettes
-_0813BFCC: .4byte gUnknown_02039318
-_0813BFD0:
- movs r0, 0x88
- lsls r0, 1
- movs r1, 0x64
- bl sub_8149368
-_0813BFDA:
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r2, _0813C060 @ =gSprites
- lsls r0, r6, 4
- adds r0, r6
- lsls r0, 2
- adds r5, r2, 0
- adds r5, 0x1C
- adds r3, r0, r5
- ldr r1, _0813C064 @ =sub_813D788
- str r1, [r3]
- adds r2, 0x8
- adds r0, r2
- ldr r1, _0813C068 @ =gUnknown_0840AE80
- str r1, [r0]
- ldr r0, _0813C06C @ =gTasks
- lsls r4, r7, 2
- adds r4, r7
- lsls r4, 3
- adds r4, r0
- strh r6, [r4, 0xA]
- movs r0, 0x40
- negs r0, r0
- movs r1, 0x3C
- .ifdef SAPPHIRE
- bl sapphire_sub_81494A0
- .else
- bl sub_8149424
- .endif
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r0, r6, 4
- adds r0, r6
- lsls r0, 2
- adds r0, r5
- ldr r1, _0813C070 @ =sub_813D880
- str r1, [r0]
- strh r6, [r4, 0xC]
- movs r0, 0x1
- negs r0, r0
- ldr r1, _0813C074 @ =0x0000ffff
- str r1, [sp]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r0, _0813C078 @ =sub_813B784
- bl SetVBlankCallback
- movs r1, 0x80
- lsls r1, 7
- .ifdef SAPPHIRE
- movs r0, 0
- movs r2, 0x40
- .else
- movs r2, 0x80
- lsls r2, 3
- movs r0, 0x1
- .endif
- movs r3, 0x10
- bl sub_8148EC0
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x8]
- .ifdef SAPPHIRE
- movs r0, 0
- .else
- movs r0, 0x1
- .endif
- bl sub_8148C78
- ldr r0, _0813C07C @ =sub_813C080
- str r0, [r4]
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0813C060: .4byte gSprites
-_0813C064: .4byte sub_813D788
-_0813C068: .4byte gUnknown_0840AE80
-_0813C06C: .4byte gTasks
-_0813C070: .4byte sub_813D880
-_0813C074: .4byte 0x0000ffff
-_0813C078: .4byte sub_813B784
-_0813C07C: .4byte sub_813C080
- thumb_func_end sub_813BF70
-
- thumb_func_start sub_813C080
-sub_813C080: @ 813C080
- push {r4-r7,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- adds r6, r4, 0
- ldr r5, _0813C1BC @ =gUnknown_03005ED0
- ldr r1, [r5]
- ldr r0, _0813C1C0 @ =0x0000071f
- cmp r1, r0
- bls _0813C0B4
- movs r0, 0x1
- negs r0, r0
- ldr r1, _0813C1C4 @ =0x0000ffff
- str r1, [sp]
- movs r1, 0x10
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _0813C1C8 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0813C1CC @ =sub_813C1F4
- str r1, [r0]
-_0813C0B4:
- ldr r1, [r5]
- ldr r0, _0813C1D0 @ =0x00000455
- ldr r3, _0813C1C8 @ =gTasks
- cmp r1, r0
- bne _0813C0D8
- ldr r2, _0813C1D4 @ =gSprites
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r3
- movs r7, 0xA
- ldrsh r1, [r0, r7]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x1
- strh r1, [r0, 0x2E]
-_0813C0D8:
- ldr r1, [r5]
- ldr r0, _0813C1D8 @ =0x000004be
- cmp r1, r0
- bne _0813C0FA
- ldr r2, _0813C1D4 @ =gSprites
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r3
- movs r7, 0xA
- ldrsh r1, [r0, r7]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0
- strh r1, [r0, 0x2E]
-_0813C0FA:
- ldr r1, [r5]
- ldr r0, _0813C1DC @ =0x00000572
- cmp r1, r0
- bne _0813C11C
- ldr r2, _0813C1D4 @ =gSprites
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r3
- movs r7, 0xC
- ldrsh r1, [r0, r7]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x1
- strh r1, [r0, 0x2E]
-_0813C11C:
- ldr r1, [r5]
- ldr r0, _0813C1E0 @ =0x00000576
- cmp r1, r0
- bne _0813C13E
- ldr r2, _0813C1D4 @ =gSprites
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r3
- movs r7, 0xA
- ldrsh r1, [r0, r7]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x2
- strh r1, [r0, 0x2E]
-_0813C13E:
- ldr r1, [r5]
- ldr r0, _0813C1E4 @ =0x00000632
- cmp r1, r0
- bne _0813C160
- ldr r2, _0813C1D4 @ =gSprites
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r3
- movs r7, 0xA
- ldrsh r1, [r0, r7]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x3
- strh r1, [r0, 0x2E]
-_0813C160:
- ldr r1, [r5]
- ldr r0, _0813C1E8 @ =0x000006bf
- cmp r1, r0
- bne _0813C182
- ldr r2, _0813C1D4 @ =gSprites
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r3
- movs r4, 0xA
- ldrsh r1, [r0, r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x4
- strh r1, [r0, 0x2E]
-_0813C182:
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r4, r0, r3
- ldrh r0, [r4, 0xE]
- lsls r0, 16
- asrs r0, 18
- movs r1, 0x7F
- ands r0, r1
- movs r1, 0x30
- bl Sin
- ldr r1, _0813C1EC @ =gUnknown_0203935A
- strh r0, [r1]
- ldrh r2, [r4, 0xE]
- movs r7, 0xE
- ldrsh r1, [r4, r7]
- ldr r0, _0813C1F0 @ =0x000001ff
- cmp r1, r0
- bgt _0813C1AE
- adds r0, r2, 0x1
- strh r0, [r4, 0xE]
-_0813C1AE:
- .ifdef SAPPHIRE
- movs r0, 0
- .else
- movs r0, 0x1
- .endif
- bl sub_8149020
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0813C1BC: .4byte gUnknown_03005ED0
-_0813C1C0: .4byte 0x0000071f
-_0813C1C4: .4byte 0x0000ffff
-_0813C1C8: .4byte gTasks
-_0813C1CC: .4byte sub_813C1F4
-_0813C1D0: .4byte 0x00000455
-_0813C1D4: .4byte gSprites
-_0813C1D8: .4byte 0x000004be
-_0813C1DC: .4byte 0x00000572
-_0813C1E0: .4byte 0x00000576
-_0813C1E4: .4byte 0x00000632
-_0813C1E8: .4byte 0x000006bf
-_0813C1EC: .4byte gUnknown_0203935A
-_0813C1F0: .4byte 0x000001ff
- thumb_func_end sub_813C080
-
- thumb_func_start sub_813C1F4
-sub_813C1F4: @ 813C1F4
- push {r4,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _0813C220 @ =gUnknown_03005ED0
- ldr r1, [r0]
- ldr r0, _0813C224 @ =0x00000814
- cmp r1, r0
- bls _0813C218
- ldr r0, _0813C228 @ =gTasks
- lsls r4, r2, 2
- adds r4, r2
- lsls r4, 3
- adds r4, r0
- ldrb r0, [r4, 0x8]
- bl DestroyTask
- ldr r0, _0813C22C @ =task_intro_10
- str r0, [r4]
-_0813C218:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813C220: .4byte gUnknown_03005ED0
-_0813C224: .4byte 0x00000814
-_0813C228: .4byte gTasks
-_0813C22C: .4byte task_intro_10
- thumb_func_end sub_813C1F4
-
- thumb_func_start task_intro_10
-task_intro_10: @ 813C230
- push {r4,r5,lr}
- sub sp, 0x4
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- bl intro_reset_and_hide_bgs
- ldr r0, _0813C2C0 @ =gUnknown_08409C04
- movs r1, 0xC0
- lsls r1, 19
- bl LZ77UnCompVram
- ldr r0, _0813C2C4 @ =gUnknown_08409AD4
- ldr r1, _0813C2C8 @ =0x06004000
- bl LZ77UnCompVram
- ldr r0, _0813C2CC @ =gUnknown_084098D4
- movs r2, 0x80
- lsls r2, 2
- movs r1, 0
- bl LoadPalette
- ldr r0, _0813C2D0 @ =gTasks
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- adds r4, r0
- movs r5, 0
- strh r5, [r4, 0x8]
- strh r5, [r4, 0xA]
- strh r5, [r4, 0xC]
- strh r5, [r4, 0xE]
- movs r0, 0x78
- movs r1, 0x50
- movs r2, 0
- movs r3, 0
- bl sub_813CE30
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- movs r0, 0x1
- negs r0, r0
- ldr r1, _0813C2D4 @ =0x0000ffff
- str r1, [sp]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r1, _0813C2D8 @ =REG_BG2CNT
- ldr r2, _0813C2DC @ =0x00004883
- adds r0, r2, 0
- strh r0, [r1]
- subs r1, 0xC
- ldr r2, _0813C2E0 @ =0x00001441
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _0813C2E4 @ =task_intro_11
- str r0, [r4]
- ldr r0, _0813C2E8 @ =gUnknown_03005ED0
- str r5, [r0]
- movs r0, 0xDD
- lsls r0, 1
- bl m4aSongNumStart
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0813C2C0: .4byte gUnknown_08409C04
-_0813C2C4: .4byte gUnknown_08409AD4
-_0813C2C8: .4byte 0x06004000
-_0813C2CC: .4byte gUnknown_084098D4
-_0813C2D0: .4byte gTasks
-_0813C2D4: .4byte 0x0000ffff
-_0813C2D8: .4byte REG_BG2CNT
-_0813C2DC: .4byte 0x00004883
-_0813C2E0: .4byte 0x00001441
-_0813C2E4: .4byte task_intro_11
-_0813C2E8: .4byte gUnknown_03005ED0
- thumb_func_end task_intro_10
-
- thumb_func_start task_intro_11
-task_intro_11: @ 813C2EC
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r2, _0813C324 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r3, r0, r2
- movs r1, 0x80
- lsls r1, 3
- adds r0, r1, 0
- ldrh r1, [r3, 0x8]
- adds r0, r1
- strh r0, [r3, 0x8]
- ldrh r4, [r3, 0xA]
- movs r0, 0xA
- ldrsh r1, [r3, r0]
- ldr r0, _0813C328 @ =0x000006bf
- cmp r1, r0
- bgt _0813C32C
- ldrh r0, [r3, 0xC]
- adds r1, r4, r0
- strh r1, [r3, 0xA]
- adds r0, 0x1
- strh r0, [r3, 0xC]
- b _0813C330
- .align 2, 0
-_0813C324: .4byte gTasks
-_0813C328: .4byte 0x000006bf
-_0813C32C:
- ldr r0, _0813C378 @ =sub_813C384
- str r0, [r3]
-_0813C330:
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- adds r4, r2
- movs r0, 0xA
- ldrsh r1, [r4, r0]
- movs r0, 0x80
- lsls r0, 9
- bl __divsi3
- adds r2, r0, 0
- lsls r2, 16
- lsrs r2, 16
- ldrh r3, [r4, 0x8]
- movs r0, 0x78
- movs r1, 0x50
- bl sub_813CE30
- ldr r0, _0813C37C @ =gUnknown_03005ED0
- ldr r0, [r0]
- cmp r0, 0x2C
- bne _0813C36E
- movs r0, 0x1
- negs r0, r0
- ldr r1, _0813C380 @ =0x0000ffff
- str r1, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
-_0813C36E:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0813C378: .4byte sub_813C384
-_0813C37C: .4byte gUnknown_03005ED0
-_0813C380: .4byte 0x0000ffff
- thumb_func_end task_intro_11
-
- thumb_func_start sub_813C384
-sub_813C384: @ 813C384
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _0813C3A4 @ =gUnknown_03005ED0
- ldr r0, [r0]
- cmp r0, 0x3B
- bls _0813C3A0
- ldr r0, _0813C3A8 @ =gTasks
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 3
- adds r1, r0
- ldr r0, _0813C3AC @ =sub_813C3B0
- str r0, [r1]
-_0813C3A0:
- pop {r0}
- bx r0
- .align 2, 0
-_0813C3A4: .4byte gUnknown_03005ED0
-_0813C3A8: .4byte gTasks
-_0813C3AC: .4byte sub_813C3B0
- thumb_func_end sub_813C384
-
- thumb_func_start sub_813C3B0
-sub_813C3B0: @ 813C3B0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- bl intro_reset_and_hide_bgs
- movs r1, 0
- ldr r2, _0813C4E4 @ =0x02000000
- movs r7, 0
- adds r6, r2, 0
- adds r6, 0x20
- adds r5, r2, 0
- adds r5, 0x40
- mov r12, r2
- movs r4, 0x11
- movs r3, 0x22
-_0813C3D4:
- adds r0, r1, r2
- strb r7, [r0]
- adds r0, r1, r6
- strb r4, [r0]
- adds r0, r1, r5
- strb r3, [r0]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0x1F
- bls _0813C3D4
- movs r1, 0xC0
- lsls r1, 19
- ldr r0, _0813C4E8 @ =0x040000d4
- mov r2, r12
- str r2, [r0]
- str r1, [r0, 0x4]
- ldr r1, _0813C4EC @ =0x80000030
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- movs r1, 0
- ldr r5, _0813C4F0 @ =gPlttBufferUnfaded
- ldr r6, _0813C4F4 @ =gPlttBufferFaded
- mov r0, r8
- lsls r7, r0, 2
- ldr r4, _0813C4F8 @ =0x06003000
- ldr r2, _0813C4FC @ =0x0000f001
- adds r3, r2, 0
- ldr r2, _0813C500 @ =0x0000027f
-_0813C40E:
- lsls r0, r1, 1
- adds r0, r4
- strh r3, [r0]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, r2
- bls _0813C40E
- movs r1, 0
- ldr r3, _0813C504 @ =0x06003800
- ldr r0, _0813C508 @ =0x0000f002
- adds r2, r0, 0
-_0813C426:
- lsls r0, r1, 1
- adds r0, r3
- strh r2, [r0]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0x7F
- bls _0813C426
- movs r1, 0
- ldr r4, _0813C50C @ =0x06003900
- movs r2, 0xF0
- lsls r2, 8
- adds r3, r2, 0
- ldr r2, _0813C510 @ =0x0000017f
-_0813C442:
- lsls r0, r1, 1
- adds r0, r4
- strh r3, [r0]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, r2
- bls _0813C442
- movs r1, 0
- ldr r3, _0813C514 @ =0x06003c00
- ldr r0, _0813C508 @ =0x0000f002
- adds r2, r0, 0
-_0813C45A:
- lsls r0, r1, 1
- adds r0, r3
- strh r2, [r0]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0x7F
- bls _0813C45A
- movs r0, 0xF0
- lsls r0, 1
- adds r2, r5, r0
- movs r4, 0
- ldr r1, _0813C518 @ =0x00007fff
- strh r1, [r2]
- adds r0, r6, r0
- strh r1, [r0]
- movs r0, 0x1
- bl sub_813D084
- movs r0, 0xF2
- lsls r0, 1
- adds r1, r5, r0
- strh r4, [r1]
- adds r0, r6, r0
- strh r4, [r0]
- ldr r0, _0813C51C @ =gUnknown_0840A778
- ldr r1, _0813C520 @ =0x06004000
- bl LZ77UnCompVram
- ldr r0, _0813C524 @ =gUnknown_0840A7E4
- ldr r1, _0813C528 @ =0x06007000
- bl LZ77UnCompVram
- ldr r0, _0813C52C @ =gUnknown_0840A758
- movs r1, 0
- movs r2, 0x20
- bl LoadPalette
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- ldr r1, _0813C530 @ =gReservedSpritePaletteCount
- movs r0, 0x8
- strb r0, [r1]
- ldr r0, _0813C534 @ =gUnknown_0840B20C
- bl LoadCompressedObjectPic
- ldr r0, _0813C538 @ =gUnknown_0840B21C
- bl LoadCompressedObjectPic
- ldr r0, _0813C53C @ =gUnknown_0840B22C
- bl LoadCompressedObjectPalette
- ldr r0, _0813C540 @ =gUnknown_0840B23C
- bl LoadSpritePalettes
- ldr r1, _0813C544 @ =gTasks
- mov r2, r8
- adds r0, r7, r2
- lsls r0, 3
- adds r0, r1
- ldr r1, _0813C548 @ =sub_813C54C
- str r1, [r0]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0813C4E4: .4byte 0x02000000
-_0813C4E8: .4byte 0x040000d4
-_0813C4EC: .4byte 0x80000030
-_0813C4F0: .4byte gPlttBufferUnfaded
-_0813C4F4: .4byte gPlttBufferFaded
-_0813C4F8: .4byte 0x06003000
-_0813C4FC: .4byte 0x0000f001
-_0813C500: .4byte 0x0000027f
-_0813C504: .4byte 0x06003800
-_0813C508: .4byte 0x0000f002
-_0813C50C: .4byte 0x06003900
-_0813C510: .4byte 0x0000017f
-_0813C514: .4byte 0x06003c00
-_0813C518: .4byte 0x00007fff
-_0813C51C: .4byte gUnknown_0840A778
-_0813C520: .4byte 0x06004000
-_0813C524: .4byte gUnknown_0840A7E4
-_0813C528: .4byte 0x06007000
-_0813C52C: .4byte gUnknown_0840A758
-_0813C530: .4byte gReservedSpritePaletteCount
-_0813C534: .4byte gUnknown_0840B20C
-_0813C538: .4byte gUnknown_0840B21C
-_0813C53C: .4byte gUnknown_0840B22C
-_0813C540: .4byte gUnknown_0840B23C
-_0813C544: .4byte gTasks
-_0813C548: .4byte sub_813C54C
- thumb_func_end sub_813C3B0
-
- thumb_func_start sub_813C54C
-sub_813C54C: @ 813C54C
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r1, _0813C5BC @ =REG_WIN0H
- movs r0, 0xF0
- strh r0, [r1]
- adds r1, 0x4
- movs r0, 0xA0
- strh r0, [r1]
- adds r1, 0x4
- movs r0, 0x1C
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0x1D
- strh r0, [r1]
- subs r1, 0x3C
- ldr r2, _0813C5C0 @ =0x00000603
- adds r0, r2, 0
- strh r0, [r1]
- subs r1, 0x6
- adds r2, 0xFD
- adds r0, r2, 0
- strh r0, [r1]
- subs r1, 0x8
- movs r2, 0xE5
- lsls r2, 6
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _0813C5C4 @ =sub_813CAF4
- movs r1, 0
- bl CreateTask
- ldr r5, _0813C5C8 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r5
- lsls r0, 24
- lsrs r0, 24
- movs r3, 0
- strh r0, [r1, 0x26]
- movs r0, 0x26
- ldrsh r2, [r1, r0]
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r5
- strh r3, [r0, 0x8]
- strh r3, [r1, 0x8]
- ldr r0, _0813C5CC @ =sub_813C5D0
- str r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0813C5BC: .4byte REG_WIN0H
-_0813C5C0: .4byte 0x00000603
-_0813C5C4: .4byte sub_813CAF4
-_0813C5C8: .4byte gTasks
-_0813C5CC: .4byte sub_813C5D0
- thumb_func_end sub_813C54C
-
- thumb_func_start sub_813C5D0
-sub_813C5D0: @ 813C5D0
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0813C600 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r3, r1, r2
- ldrh r1, [r3, 0x8]
- movs r2, 0x8
- ldrsh r0, [r3, r2]
- cmp r0, 0x20
- beq _0813C608
- adds r0, r1, 0x4
- strh r0, [r3, 0x8]
- ldr r2, _0813C604 @ =REG_WIN0V
- movs r4, 0x8
- ldrsh r0, [r3, r4]
- lsls r0, 8
- subs r1, 0x9C
- subs r0, r1
- strh r0, [r2]
- b _0813C616
- .align 2, 0
-_0813C600: .4byte gTasks
-_0813C604: .4byte REG_WIN0V
-_0813C608:
- ldr r0, _0813C61C @ =REG_WIN0V
- movs r2, 0x82
- lsls r2, 6
- adds r1, r2, 0
- strh r1, [r0]
- ldr r0, _0813C620 @ =sub_813C624
- str r0, [r3]
-_0813C616:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813C61C: .4byte REG_WIN0V
-_0813C620: .4byte sub_813C624
- thumb_func_end sub_813C5D0
-
- thumb_func_start sub_813C624
-sub_813C624: @ 813C624
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0813C638 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r0, _0813C63C @ =sub_813C640
- str r0, [r1]
- bx lr
- .align 2, 0
-_0813C638: .4byte gTasks
-_0813C63C: .4byte sub_813C640
- thumb_func_end sub_813C624
-
- thumb_func_start sub_813C640
-sub_813C640: @ 813C640
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0813C65C @ =gUnknown_0203931A
- movs r1, 0
- strh r1, [r2]
- ldr r2, _0813C660 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r0, _0813C664 @ =sub_813C668
- str r0, [r1]
- bx lr
- .align 2, 0
-_0813C65C: .4byte gUnknown_0203931A
-_0813C660: .4byte gTasks
-_0813C664: .4byte sub_813C668
- thumb_func_end sub_813C640
-
- thumb_func_start sub_813C668
-sub_813C668: @ 813C668
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r0, _0813CA24 @ =gUnknown_03005ED0
- mov r8, r0
- ldr r0, [r0]
- cmp r0, 0x50
- bne _0813C6AC
- ldr r0, _0813CA28 @ =0x0000014b
- movs r4, 0x1
- str r4, [sp]
- movs r1, 0xF0
- movs r2, 0xA0
- movs r3, 0x5
- bl sub_813CE88
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r3, _0813CA2C @ =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r1, r3, 0
- adds r1, 0x1C
- adds r1, r0, r1
- ldr r2, _0813CA30 @ =sub_813DB9C
- str r2, [r1]
- adds r0, r3
- movs r1, 0
- strh r4, [r0, 0x30]
- strh r1, [r0, 0x32]
-_0813C6AC:
- mov r1, r8
- ldr r0, [r1]
- cmp r0, 0x98
- bne _0813C6E2
- ldr r0, _0813CA34 @ =0x00000169
- movs r4, 0x1
- str r4, [sp]
- movs r1, 0
- movs r2, 0xA0
- movs r3, 0x4
- bl sub_813CE88
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r3, _0813CA2C @ =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r1, r3, 0
- adds r1, 0x1C
- adds r1, r0, r1
- ldr r2, _0813CA30 @ =sub_813DB9C
- str r2, [r1]
- adds r0, r3
- movs r1, 0x2
- strh r1, [r0, 0x30]
- strh r4, [r0, 0x32]
-_0813C6E2:
- mov r3, r8
- ldr r0, [r3]
- cmp r0, 0xDB
- bne _0813C720
- movs r0, 0
- bl sub_813D084
- ldr r0, _0813CA38 @ =gUnknown_02039318
- ldrh r0, [r0]
- movs r1, 0x88
- lsls r1, 1
- movs r2, 0x60
- movs r3, 0x6
- bl sub_813CFA8
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _0813CA2C @ =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r1, 0x1C
- adds r0, r1
- ldr r1, _0813CA3C @ =sub_813DE70
- str r1, [r0]
- ldr r1, _0813CA40 @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- strh r2, [r0, 0xA]
-_0813C720:
- mov r0, r8
- ldr r1, [r0]
- movs r0, 0x98
- lsls r0, 1
- cmp r1, r0
- bne _0813C758
- ldr r3, _0813CA40 @ =gTasks
- lsls r1, r7, 2
- adds r1, r7
- lsls r1, 3
- adds r1, r3
- movs r0, 0x26
- ldrsh r2, [r1, r0]
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r3
- movs r2, 0x4
- strh r2, [r0, 0x8]
- ldr r2, _0813CA2C @ =gSprites
- movs r3, 0xA
- ldrsh r1, [r1, r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x2
- strh r1, [r0, 0x2E]
-_0813C758:
- mov r0, r8
- ldr r1, [r0]
- movs r0, 0xC0
- lsls r0, 1
- cmp r1, r0
- bne _0813C790
- ldr r3, _0813CA40 @ =gTasks
- lsls r1, r7, 2
- adds r1, r7
- lsls r1, 3
- adds r1, r3
- movs r0, 0x26
- ldrsh r2, [r1, r0]
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r3
- movs r2, 0
- strh r2, [r0, 0x8]
- ldr r2, _0813CA2C @ =gSprites
- movs r3, 0xA
- ldrsh r1, [r1, r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x4
- strh r1, [r0, 0x2E]
-_0813C790:
- mov r0, r8
- ldr r1, [r0]
- movs r0, 0xC8
- lsls r0, 1
- cmp r1, r0
- bne _0813C7AE
- movs r0, 0xFF
- lsls r0, 16
- ldr r1, _0813CA44 @ =0x00007eff
- str r1, [sp]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
-_0813C7AE:
- mov r3, r8
- ldr r1, [r3]
- movs r0, 0xD8
- lsls r0, 1
- cmp r1, r0
- bne _0813C7D6
- ldr r2, _0813CA2C @ =gSprites
- ldr r1, _0813CA40 @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- movs r3, 0xA
- ldrsh r1, [r0, r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x5
- strh r1, [r0, 0x2E]
-_0813C7D6:
- mov r0, r8
- ldr r1, [r0]
- movs r0, 0xE7
- lsls r0, 1
- cmp r1, r0
- bne _0813C80E
- ldr r3, _0813CA2C @ =gSprites
- ldr r4, _0813CA40 @ =gTasks
- lsls r1, r7, 2
- adds r1, r7
- lsls r1, 3
- adds r1, r4
- movs r0, 0xA
- ldrsh r2, [r1, r0]
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r3
- movs r2, 0x6
- strh r2, [r0, 0x2E]
- movs r3, 0x26
- ldrsh r1, [r1, r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r4
- movs r1, 0x2
- strh r1, [r0, 0x8]
-_0813C80E:
- mov r0, r8
- ldr r1, [r0]
- ldr r0, _0813CA48 @ =0x000001cf
- cmp r1, r0
- bne _0813C854
- movs r0, 0x1
- bl sub_813D084
- ldr r0, _0813CA28 @ =0x0000014b
- movs r1, 0x1
- str r1, [sp]
- movs r1, 0xD0
- movs r2, 0x8
- movs r3, 0x5
- bl sub_813CE88
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _0813CA2C @ =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r1, 0x1C
- adds r0, r1
- ldr r1, _0813CA4C @ =sub_813E10C
- str r1, [r0]
- ldr r1, _0813CA40 @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- strh r2, [r0, 0xC]
- adds r0, r2, 0
- bl sub_813E7C0
-_0813C854:
- mov r3, r8
- ldr r1, [r3]
- ldr r0, _0813CA50 @ =0x0000021b
- cmp r1, r0
- bne _0813C894
- subs r0, 0xB2
- movs r1, 0x1
- str r1, [sp]
- movs r1, 0xF8
- movs r2, 0x10
- movs r3, 0x4
- bl sub_813CE88
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _0813CA2C @ =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r1, 0x1C
- adds r0, r1
- ldr r1, _0813CA4C @ =sub_813E10C
- str r1, [r0]
- ldr r1, _0813CA40 @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- strh r2, [r0, 0xE]
- adds r0, r2, 0
- bl sub_813E930
-_0813C894:
- mov r0, r8
- ldr r1, [r0]
- ldr r0, _0813CA54 @ =0x0000026f
- cmp r1, r0
- bne _0813C8D8
- ldr r4, _0813CA2C @ =gSprites
- ldr r5, _0813CA40 @ =gTasks
- lsls r1, r7, 2
- adds r1, r7
- lsls r1, 3
- adds r1, r5
- movs r3, 0xC
- ldrsh r2, [r1, r3]
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r4
- movs r3, 0x2
- strh r3, [r0, 0x2E]
- movs r0, 0xE
- ldrsh r2, [r1, r0]
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r4
- strh r3, [r0, 0x2E]
- movs r3, 0x26
- ldrsh r1, [r1, r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r5
- movs r1, 0x3
- strh r1, [r0, 0x8]
-_0813C8D8:
- mov r0, r8
- ldr r1, [r0]
- movs r0, 0x9C
- lsls r0, 2
- cmp r1, r0
- bne _0813C920
- movs r0, 0
- bl sub_813D084
- ldr r0, _0813CA58 @ =0x0000011b
- movs r1, 0
- str r1, [sp]
- movs r1, 0x20
- movs r2, 0x98
- movs r3, 0
- bl sub_813CE88
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _0813CA2C @ =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r1, 0x1C
- adds r0, r1
- ldr r1, _0813CA5C @ =sub_813E210
- str r1, [r0]
- ldr r1, _0813CA40 @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- strh r2, [r0, 0x10]
- adds r0, r2, 0
- bl sub_813EDBC
-_0813C920:
- mov r3, r8
- ldr r1, [r3]
- movs r0, 0xAF
- lsls r0, 2
- cmp r1, r0
- bne _0813C966
- movs r0, 0x8C
- lsls r0, 1
- movs r1, 0x8
- negs r1, r1
- movs r2, 0
- str r2, [sp]
- movs r2, 0x90
- movs r3, 0x1
- bl sub_813CE88
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _0813CA2C @ =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r1, 0x1C
- adds r0, r1
- ldr r1, _0813CA5C @ =sub_813E210
- str r1, [r0]
- ldr r1, _0813CA40 @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- strh r2, [r0, 0x12]
- adds r0, r2, 0
- bl sub_813EB4C
-_0813C966:
- mov r0, r8
- ldr r1, [r0]
- movs r0, 0xC2
- lsls r0, 2
- cmp r1, r0
- bne _0813C9B2
- ldr r1, _0813CA60 @ =gUnknown_0203931A
- movs r0, 0x1
- strh r0, [r1]
- ldr r4, _0813CA2C @ =gSprites
- ldr r6, _0813CA40 @ =gTasks
- lsls r1, r7, 2
- adds r1, r7
- lsls r1, 3
- adds r1, r6
- movs r3, 0x10
- ldrsh r2, [r1, r3]
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r4
- movs r5, 0
- movs r3, 0x2
- strh r3, [r0, 0x2E]
- movs r0, 0x12
- ldrsh r2, [r1, r0]
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r4
- strh r3, [r0, 0x2E]
- movs r3, 0x26
- ldrsh r1, [r1, r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r6
- strh r5, [r0, 0x8]
-_0813C9B2:
- mov r0, r8
- ldr r1, [r0]
- ldr r0, _0813CA64 @ =0x0000030d
- cmp r1, r0
- bne _0813CA76
- movs r0, 0x2
- bl sub_813D084
- ldr r4, _0813CA2C @ =gSprites
- ldr r0, _0813CA40 @ =gTasks
- lsls r2, r7, 2
- adds r2, r7
- lsls r2, 3
- adds r2, r0
- movs r3, 0xC
- ldrsh r1, [r2, r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r3, 0x3
- strh r3, [r0, 0x2E]
- movs r0, 0xE
- ldrsh r1, [r2, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- strh r3, [r0, 0x2E]
- movs r0, 0x10
- ldrsh r1, [r2, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- strh r3, [r0, 0x2E]
- movs r0, 0x12
- ldrsh r1, [r2, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- strh r3, [r0, 0x2E]
- ldr r0, _0813CA68 @ =gSpriteTemplate_840B1F4
- movs r1, 0x78
- movs r2, 0x50
- movs r3, 0xF
- bl CreateSprite
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r4
- b _0813CA6C
- .align 2, 0
-_0813CA24: .4byte gUnknown_03005ED0
-_0813CA28: .4byte 0x0000014b
-_0813CA2C: .4byte gSprites
-_0813CA30: .4byte sub_813DB9C
-_0813CA34: .4byte 0x00000169
-_0813CA38: .4byte gUnknown_02039318
-_0813CA3C: .4byte sub_813DE70
-_0813CA40: .4byte gTasks
-_0813CA44: .4byte 0x00007eff
-_0813CA48: .4byte 0x000001cf
-_0813CA4C: .4byte sub_813E10C
-_0813CA50: .4byte 0x0000021b
-_0813CA54: .4byte 0x0000026f
-_0813CA58: .4byte 0x0000011b
-_0813CA5C: .4byte sub_813E210
-_0813CA60: .4byte gUnknown_0203931A
-_0813CA64: .4byte 0x0000030d
-_0813CA68: .4byte gSpriteTemplate_840B1F4
-_0813CA6C:
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
-_0813CA76:
- mov r3, r8
- ldr r1, [r3]
- movs r0, 0xC8
- lsls r0, 2
- cmp r1, r0
- bne _0813CA88
- movs r0, 0x67
- bl PlaySE
-_0813CA88:
- mov r0, r8
- ldr r1, [r0]
- ldr r0, _0813CAC8 @ =0x00000352
- cmp r1, r0
- bne _0813CAA4
- movs r0, 0x1
- negs r0, r0
- ldr r1, _0813CACC @ =0x0000ffff
- str r1, [sp]
- movs r1, 0x4
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
-_0813CAA4:
- mov r3, r8
- ldr r1, [r3]
- ldr r0, _0813CAD0 @ =0x000003b2
- cmp r1, r0
- bne _0813CABC
- ldr r0, _0813CAD4 @ =gTasks
- lsls r1, r7, 2
- adds r1, r7
- lsls r1, 3
- adds r1, r0
- ldr r0, _0813CAD8 @ =sub_813CADC
- str r0, [r1]
-_0813CABC:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0813CAC8: .4byte 0x00000352
-_0813CACC: .4byte 0x0000ffff
-_0813CAD0: .4byte 0x000003b2
-_0813CAD4: .4byte gTasks
-_0813CAD8: .4byte sub_813CADC
- thumb_func_end sub_813C668
-
- thumb_func_start sub_813CADC
-sub_813CADC: @ 813CADC
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
- ldr r0, _0813CAF0 @ =CB2_813B7EC
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_0813CAF0: .4byte CB2_813B7EC
- thumb_func_end sub_813CADC
-
- thumb_func_start sub_813CAF4
-sub_813CAF4: @ 813CAF4
- push {r4-r6,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _0813CB2C @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- ldrh r0, [r4, 0x26]
- adds r0, 0x1
- movs r6, 0
- strh r0, [r4, 0x26]
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x4
- bne _0813CB18
- b _0813CC28
-_0813CB18:
- cmp r0, 0x4
- bgt _0813CB30
- cmp r0, 0x2
- beq _0813CB60
- cmp r0, 0x2
- bgt _0813CBC4
- cmp r0, 0
- beq _0813CB46
- b _0813CC8E
- .align 2, 0
-_0813CB2C: .4byte gTasks
-_0813CB30:
- cmp r0, 0x1E
- beq _0813CBEE
- cmp r0, 0x1E
- bgt _0813CB3E
- cmp r0, 0x14
- beq _0813CB8A
- b _0813CC8E
-_0813CB3E:
- cmp r0, 0x28
- bne _0813CB44
- b _0813CC56
-_0813CB44:
- b _0813CC8E
-_0813CB46:
- movs r1, 0x80
- lsls r1, 19
- movs r2, 0xE5
- lsls r2, 6
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _0813CB5C @ =REG_BG2CNT
- strh r6, [r0]
- movs r0, 0xFF
- strh r0, [r4, 0x8]
- b _0813CC8E
- .align 2, 0
-_0813CB5C: .4byte REG_BG2CNT
-_0813CB60:
- ldr r0, _0813CBB0 @ =0x0000ffff
- str r0, [sp]
- movs r0, 0x1
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r1, _0813CBB4 @ =REG_BG2CNT
- ldr r2, _0813CBB8 @ =0x00000e07
- adds r0, r2, 0
- strh r0, [r1]
- subs r1, 0xC
- movs r2, 0xF5
- lsls r2, 6
- adds r0, r2, 0
- strh r0, [r1]
- strh r6, [r4, 0xA]
- strh r6, [r4, 0xC]
- movs r0, 0x14
- strh r0, [r4, 0x8]
-_0813CB8A:
- ldr r2, _0813CBBC @ =REG_BG2VOFS
- ldr r0, _0813CBC0 @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0xA]
- strh r0, [r2]
- subs r2, 0x2
- ldrh r0, [r1, 0xC]
- strh r0, [r2]
- ldrh r0, [r1, 0xA]
- adds r0, 0x6
- strh r0, [r1, 0xA]
- ldrh r0, [r1, 0xC]
- subs r0, 0x8
- strh r0, [r1, 0xC]
- b _0813CC8E
- .align 2, 0
-_0813CBB0: .4byte 0x0000ffff
-_0813CBB4: .4byte REG_BG2CNT
-_0813CBB8: .4byte 0x00000e07
-_0813CBBC: .4byte REG_BG2VOFS
-_0813CBC0: .4byte gTasks
-_0813CBC4:
- ldr r0, _0813CC14 @ =0x0000ffff
- str r0, [sp]
- movs r0, 0x1
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r1, _0813CC18 @ =REG_BG2CNT
- ldr r2, _0813CC1C @ =0x00000e07
- adds r0, r2, 0
- strh r0, [r1]
- subs r1, 0xC
- movs r2, 0xF5
- lsls r2, 6
- adds r0, r2, 0
- strh r0, [r1]
- strh r6, [r4, 0xA]
- strh r6, [r4, 0xC]
- movs r0, 0x1E
- strh r0, [r4, 0x8]
-_0813CBEE:
- ldr r2, _0813CC20 @ =REG_BG2VOFS
- ldr r0, _0813CC24 @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0xA]
- strh r0, [r2]
- subs r2, 0x2
- ldrh r0, [r1, 0xC]
- strh r0, [r2]
- ldrh r0, [r1, 0xA]
- subs r0, 0x6
- strh r0, [r1, 0xA]
- ldrh r0, [r1, 0xC]
- adds r0, 0x8
- strh r0, [r1, 0xC]
- b _0813CC8E
- .align 2, 0
-_0813CC14: .4byte 0x0000ffff
-_0813CC18: .4byte REG_BG2CNT
-_0813CC1C: .4byte 0x00000e07
-_0813CC20: .4byte REG_BG2VOFS
-_0813CC24: .4byte gTasks
-_0813CC28:
- ldr r0, _0813CC98 @ =0x000037f7
- str r0, [sp]
- movs r0, 0x1
- movs r1, 0x5
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _0813CC9C @ =REG_BG2CNT
- ldr r2, _0813CCA0 @ =0x00000e07
- adds r0, r2, 0
- strh r0, [r1]
- subs r1, 0xC
- movs r2, 0xF5
- lsls r2, 6
- adds r0, r2, 0
- strh r0, [r1]
- strh r6, [r4, 0xA]
- strh r6, [r4, 0xC]
- movs r0, 0x8
- strh r0, [r4, 0xE]
- movs r0, 0x28
- strh r0, [r4, 0x8]
-_0813CC56:
- ldr r2, _0813CCA4 @ =REG_BG2VOFS
- ldr r1, _0813CCA8 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r3, r0, r1
- ldrh r0, [r3, 0xA]
- strh r0, [r2]
- ldr r1, _0813CCAC @ =REG_BG2HOFS
- ldrh r0, [r3, 0xC]
- strh r0, [r1]
- ldrh r0, [r3, 0xA]
- ldrh r2, [r3, 0xE]
- subs r0, r2
- strh r0, [r3, 0xA]
- ldrh r1, [r3, 0xC]
- adds r0, r2, r1
- strh r0, [r3, 0xC]
- ldrh r1, [r3, 0x26]
- movs r0, 0x7
- ands r0, r1
- cmp r0, 0
- bne _0813CC8E
- lsls r0, r2, 16
- cmp r0, 0
- beq _0813CC8E
- subs r0, r2, 0x1
- strh r0, [r3, 0xE]
-_0813CC8E:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0813CC98: .4byte 0x000037f7
-_0813CC9C: .4byte REG_BG2CNT
-_0813CCA0: .4byte 0x00000e07
-_0813CCA4: .4byte REG_BG2VOFS
-_0813CCA8: .4byte gTasks
-_0813CCAC: .4byte REG_BG2HOFS
- thumb_func_end sub_813CAF4
-
- thumb_func_start intro_reset_and_hide_bgs
-intro_reset_and_hide_bgs: @ 813CCB0
- movs r0, 0x80
- lsls r0, 19
- movs r1, 0
- strh r1, [r0]
- adds r0, 0x1C
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- subs r0, 0x6
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- subs r0, 0x6
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- subs r0, 0x6
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x3E
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- bx lr
- thumb_func_end intro_reset_and_hide_bgs
-
- thumb_func_start sub_813CCE8
-sub_813CCE8: @ 813CCE8
- push {r4,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r1, _0813CD0C @ =gTasks
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r0, r1
- movs r2, 0x8
- ldrsh r0, [r0, r2]
- adds r2, r1, 0
- cmp r0, 0x4
- bhi _0813CD28
- lsls r0, 2
- ldr r1, _0813CD10 @ =_0813CD14
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0813CD0C: .4byte gTasks
-_0813CD10: .4byte _0813CD14
- .align 2, 0
-_0813CD14:
- .4byte _0813CD28
- .4byte _0813CD5C
- .4byte _0813CD8C
- .4byte _0813CDA8
- .4byte _0813CDFC
-_0813CD28:
- ldr r1, _0813CD54 @ =REG_BLDCNT
- ldr r4, _0813CD58 @ =0x00003f50
- adds r0, r4, 0
- strh r0, [r1]
- adds r1, 0x2
- movs r4, 0x80
- lsls r4, 5
- adds r0, r4, 0
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0
- strh r0, [r1]
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r0, r2
- movs r1, 0x40
- strh r1, [r0, 0xA]
- movs r1, 0x1
- strh r1, [r0, 0x8]
- b _0813CE26
- .align 2, 0
-_0813CD54: .4byte REG_BLDCNT
-_0813CD58: .4byte 0x00003f50
-_0813CD5C:
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r2, r0, r2
- ldrh r1, [r2, 0xA]
- movs r3, 0xA
- ldrsh r0, [r2, r3]
- cmp r0, 0
- beq _0813CD78
- subs r0, r1, 0x1
- strh r0, [r2, 0xA]
- movs r4, 0xA
- ldrsh r0, [r2, r4]
- b _0813CDC2
-_0813CD78:
- ldr r1, _0813CD84 @ =REG_BLDALPHA
- ldr r0, _0813CD88 @ =gUnknown_08393E64
- ldrh r0, [r0]
- strh r0, [r1]
- movs r0, 0x80
- b _0813CDEA
- .align 2, 0
-_0813CD84: .4byte REG_BLDALPHA
-_0813CD88: .4byte gUnknown_08393E64
-_0813CD8C:
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r1, r0, r2
- ldrh r0, [r1, 0xA]
- movs r3, 0xA
- ldrsh r2, [r1, r3]
- cmp r2, 0
- bne _0813CE0E
- strh r2, [r1, 0xA]
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- b _0813CE26
-_0813CDA8:
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r2, r0, r2
- ldrh r1, [r2, 0xA]
- movs r4, 0xA
- ldrsh r0, [r2, r4]
- cmp r0, 0x3D
- bgt _0813CDE0
- adds r0, r1, 0x1
- strh r0, [r2, 0xA]
- movs r1, 0xA
- ldrsh r0, [r2, r1]
-_0813CDC2:
- lsrs r1, r0, 31
- adds r0, r1
- movs r2, 0xFF
- lsls r2, 1
- ldr r3, _0813CDD8 @ =REG_BLDALPHA
- ldr r1, _0813CDDC @ =gUnknown_08393E64
- ands r0, r2
- adds r0, r1
- ldrh r0, [r0]
- strh r0, [r3]
- b _0813CE26
- .align 2, 0
-_0813CDD8: .4byte REG_BLDALPHA
-_0813CDDC: .4byte gUnknown_08393E64
-_0813CDE0:
- ldr r1, _0813CDF4 @ =REG_BLDALPHA
- ldr r0, _0813CDF8 @ =gUnknown_08393E64
- ldrh r0, [r0, 0x3E]
- strh r0, [r1]
- movs r0, 0x10
-_0813CDEA:
- strh r0, [r2, 0xA]
- ldrh r0, [r2, 0x8]
- adds r0, 0x1
- strh r0, [r2, 0x8]
- b _0813CE26
- .align 2, 0
-_0813CDF4: .4byte REG_BLDALPHA
-_0813CDF8: .4byte gUnknown_08393E64
-_0813CDFC:
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r1, r0, r2
- ldrh r0, [r1, 0xA]
- movs r4, 0xA
- ldrsh r2, [r1, r4]
- cmp r2, 0
- beq _0813CE14
-_0813CE0E:
- subs r0, 0x1
- strh r0, [r1, 0xA]
- b _0813CE26
-_0813CE14:
- ldr r0, _0813CE2C @ =REG_BLDCNT
- strh r2, [r0]
- adds r0, 0x2
- strh r2, [r0]
- adds r0, 0x2
- strh r2, [r0]
- adds r0, r3, 0
- bl DestroyTask
-_0813CE26:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813CE2C: .4byte REG_BLDCNT
- thumb_func_end sub_813CCE8
-
- thumb_func_start sub_813CE30
-sub_813CE30: @ 813CE30
- push {r4,lr}
- sub sp, 0x24
- lsls r2, 16
- lsrs r2, 16
- movs r4, 0x80
- lsls r4, 8
- str r4, [sp]
- str r4, [sp, 0x4]
- mov r4, sp
- strh r0, [r4, 0x8]
- mov r0, sp
- strh r1, [r0, 0xA]
- strh r2, [r0, 0xC]
- strh r2, [r0, 0xE]
- strh r3, [r0, 0x10]
- add r4, sp, 0x14
- adds r1, r4, 0
- movs r2, 0x1
- bl BgAffineSet
- ldr r1, _0813CE84 @ =REG_BG2PA
- ldrh r0, [r4]
- strh r0, [r1]
- adds r1, 0x2
- ldrh r0, [r4, 0x2]
- strh r0, [r1]
- adds r1, 0x2
- ldrh r0, [r4, 0x4]
- strh r0, [r1]
- adds r1, 0x2
- ldrh r0, [r4, 0x6]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, [r4, 0x8]
- str r0, [r1]
- adds r1, 0x4
- ldr r0, [r4, 0xC]
- str r0, [r1]
- add sp, 0x24
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813CE84: .4byte REG_BG2PA
- thumb_func_end sub_813CE30
-
- thumb_func_start sub_813CE88
-sub_813CE88: @ 813CE88
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- ldr r4, [sp, 0x30]
- lsls r0, 16
- lsrs r7, r0, 16
- lsls r1, 16
- lsrs r1, 16
- mov r9, r1
- lsls r2, 16
- lsrs r2, 16
- mov r10, r2
- lsls r3, 16
- lsrs r3, 16
- mov r8, r3
- lsls r4, 24
- lsrs r6, r4, 24
- cmp r6, 0
- beq _0813CEF0
- lsls r0, r7, 3
- ldr r1, _0813CEE4 @ =gMonFrontPicTable
- adds r0, r1
- ldr r1, _0813CEE8 @ =gMonFrontPicCoords
- lsls r2, r7, 2
- adds r2, r1
- ldrb r1, [r2]
- ldrb r2, [r2, 0x1]
- movs r3, 0x80
- lsls r3, 18
- ldr r5, _0813CEEC @ =gUnknown_0840B5A0
- mov r6, r8
- lsls r4, r6, 2
- adds r4, r5
- ldr r4, [r4]
- str r4, [sp]
- str r7, [sp, 0x4]
- movs r4, 0
- str r4, [sp, 0x8]
- movs r4, 0x1
- str r4, [sp, 0xC]
- bl sub_800D378
- b _0813CF1C
- .align 2, 0
-_0813CEE4: .4byte gMonFrontPicTable
-_0813CEE8: .4byte gMonFrontPicCoords
-_0813CEEC: .4byte gUnknown_0840B5A0
-_0813CEF0:
- lsls r0, r7, 3
- ldr r1, _0813CF90 @ =gMonBackPicTable
- adds r0, r1
- ldr r1, _0813CF94 @ =gMonBackPicCoords
- lsls r2, r7, 2
- adds r2, r1
- ldrb r1, [r2]
- ldrb r2, [r2, 0x1]
- movs r3, 0x80
- lsls r3, 18
- ldr r4, _0813CF98 @ =gUnknown_0840B5A0
- mov r12, r4
- mov r5, r8
- lsls r4, r5, 2
- add r4, r12
- ldr r4, [r4]
- str r4, [sp]
- str r7, [sp, 0x4]
- str r6, [sp, 0x8]
- str r6, [sp, 0xC]
- bl sub_800D378
-_0813CF1C:
- ldr r2, _0813CF9C @ =0x0000ffff
- adds r0, r7, 0
- movs r1, 0
- bl species_and_otid_get_pal
- mov r6, r8
- lsls r4, r6, 4
- movs r2, 0x80
- lsls r2, 1
- adds r1, r4, r2
- lsls r1, 16
- lsrs r1, 16
- movs r2, 0x20
- bl LoadCompressedPalette
- lsls r1, r6, 24
- lsrs r1, 24
- mov r0, r8
- bl sub_8143648
- ldr r0, _0813CFA0 @ =gUnknown_02024E8C
- mov r3, r9
- lsls r1, r3, 16
- asrs r1, 16
- mov r5, r10
- lsls r2, r5, 16
- asrs r2, 16
- mov r3, r8
- adds r3, 0x1
- lsls r3, 26
- lsrs r3, 24
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0813CFA4 @ =gSprites
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r1
- ldrb r3, [r2, 0x5]
- movs r1, 0xF
- ands r1, r3
- orrs r1, r4
- movs r3, 0xD
- negs r3, r3
- ands r1, r3
- movs r3, 0x4
- orrs r1, r3
- strb r1, [r2, 0x5]
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0813CF90: .4byte gMonBackPicTable
-_0813CF94: .4byte gMonBackPicCoords
-_0813CF98: .4byte gUnknown_0840B5A0
-_0813CF9C: .4byte 0x0000ffff
-_0813CFA0: .4byte gUnknown_02024E8C
-_0813CFA4: .4byte gSprites
- thumb_func_end sub_813CE88
-
- thumb_func_start sub_813CFA8
-sub_813CFA8: @ 813CFA8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- mov r9, r1
- mov r10, r2
- adds r6, r3, 0
- lsls r0, 16
- lsrs r0, 16
- lsls r1, 16
- lsrs r1, 16
- mov r9, r1
- lsls r2, 16
- lsrs r2, 16
- mov r10, r2
- lsls r6, 16
- lsrs r6, 16
- lsls r7, r0, 3
- ldr r1, _0813D068 @ =gTrainerBackPicTable
- mov r8, r1
- add r8, r7
- ldr r1, _0813D06C @ =gTrainerBackPicCoords
- lsls r2, r0, 2
- adds r2, r1
- ldrb r1, [r2]
- ldrb r2, [r2, 0x1]
- movs r3, 0x80
- lsls r3, 18
- ldr r5, _0813D070 @ =gUnknown_0840B5A0
- lsls r4, r6, 2
- adds r4, r5
- ldr r4, [r4]
- str r4, [sp]
- str r0, [sp, 0x4]
- mov r0, r8
- bl DecompressPicFromTable_2
- ldr r0, _0813D074 @ =gTrainerBackPicPaletteTable
- adds r0, r7, r0
- ldr r0, [r0]
- lsls r4, r6, 4
- movs r2, 0x80
- lsls r2, 1
- adds r1, r4, r2
- lsls r1, 16
- lsrs r1, 16
- movs r2, 0x20
- bl LoadCompressedPalette
- lsls r1, r6, 24
- lsrs r1, 24
- adds r0, r6, 0
- bl sub_8143680
- ldr r0, _0813D078 @ =gUnknown_02024E8C
- ldr r1, _0813D07C @ =gUnknown_0840B064
- str r1, [r0, 0x8]
- mov r1, r9
- lsls r1, 16
- asrs r1, 16
- mov r9, r1
- mov r2, r10
- lsls r2, 16
- asrs r2, 16
- mov r10, r2
- movs r3, 0x1
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0813D080 @ =gSprites
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r1
- ldrb r3, [r2, 0x5]
- movs r1, 0xF
- ands r1, r3
- orrs r1, r4
- movs r3, 0xD
- negs r3, r3
- ands r1, r3
- movs r3, 0x4
- orrs r1, r3
- strb r1, [r2, 0x5]
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0813D068: .4byte gTrainerBackPicTable
-_0813D06C: .4byte gTrainerBackPicCoords
-_0813D070: .4byte gUnknown_0840B5A0
-_0813D074: .4byte gTrainerBackPicPaletteTable
-_0813D078: .4byte gUnknown_02024E8C
-_0813D07C: .4byte gUnknown_0840B064
-_0813D080: .4byte gSprites
- thumb_func_end sub_813CFA8
-
- thumb_func_start sub_813D084
-sub_813D084: @ 813D084
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0813D0A0
- cmp r0, 0x1
- ble _0813D096
- cmp r0, 0x2
- beq _0813D0A8
-_0813D096:
- ldr r2, _0813D09C @ =0x00003ff6
- b _0813D0AA
- .align 2, 0
-_0813D09C: .4byte 0x00003ff6
-_0813D0A0:
- ldr r2, _0813D0A4 @ =0x000031df
- b _0813D0AA
- .align 2, 0
-_0813D0A4: .4byte 0x000031df
-_0813D0A8:
- ldr r2, _0813D0C0 @ =0x0000518c
-_0813D0AA:
- ldr r0, _0813D0C4 @ =gPlttBufferUnfaded
- movs r1, 0xF1
- lsls r1, 1
- adds r0, r1
- strh r2, [r0]
- ldr r0, _0813D0C8 @ =gPlttBufferFaded
- adds r0, r1
- strh r2, [r0]
- pop {r0}
- bx r0
- .align 2, 0
-_0813D0C0: .4byte 0x0000518c
-_0813D0C4: .4byte gPlttBufferUnfaded
-_0813D0C8: .4byte gPlttBufferFaded
- thumb_func_end sub_813D084
-
- thumb_func_start sub_813D0CC
-sub_813D0CC: @ 813D0CC
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0xBF
- ble _0813D148
- ldrh r1, [r4, 0x34]
- movs r2, 0x34
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _0813D0EA
- subs r0, r1, 0x1
- strh r0, [r4, 0x34]
- b _0813D14E
-_0813D0EA:
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- ldrh r0, [r4, 0x30]
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x32]
- str r1, [sp]
- movs r2, 0
- movs r3, 0
- bl SetOamMatrix
- movs r0, 0x32
- ldrsh r1, [r4, r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 5
- subs r0, r1
- movs r1, 0x64
- bl __divsi3
- strh r0, [r4, 0x32]
- movs r2, 0x32
- ldrsh r1, [r4, r2]
- adds r0, r1, 0
- subs r0, 0xC0
- cmp r0, 0
- bge _0813D12C
- adds r0, 0x7F
-_0813D12C:
- asrs r0, 7
- adds r0, 0x9
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xF
- bls _0813D13A
- movs r0, 0xF
-_0813D13A:
- lsls r2, r0, 4
- ldrb r1, [r4, 0x5]
- movs r0, 0xF
- ands r0, r1
- orrs r0, r2
- strb r0, [r4, 0x5]
- b _0813D14E
-_0813D148:
- adds r0, r4, 0
- bl DestroySprite
-_0813D14E:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_813D0CC
-
- thumb_func_start sub_813D158
-sub_813D158: @ 813D158
- push {r4,lr}
- adds r4, r0, 0
- ldr r2, _0813D1CC @ =gSprites
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- movs r3, 0x3C
- ldrsh r0, [r1, r3]
- cmp r0, 0
- beq _0813D1D4
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldrh r0, [r4, 0x24]
- ldrh r1, [r4, 0x20]
- adds r0, r1
- strh r0, [r4, 0x20]
- ldrh r0, [r4, 0x26]
- ldrh r3, [r4, 0x22]
- adds r0, r3
- strh r0, [r4, 0x22]
- adds r0, r4, 0
- movs r1, 0x3
- bl StartSpriteAnim
- movs r0, 0x80
- lsls r0, 3
- strh r0, [r4, 0x32]
- ldrh r1, [r4, 0x30]
- movs r0, 0x3
- ands r0, r1
- lsls r0, 3
- strh r0, [r4, 0x34]
- ldr r0, _0813D1D0 @ =sub_813D0CC
- str r0, [r4, 0x1C]
- ldrb r1, [r4, 0x1]
- movs r0, 0x3F
- ands r0, r1
- movs r1, 0x40
- orrs r0, r1
- strb r0, [r4, 0x1]
- ldrb r0, [r4, 0x3]
- movs r1, 0xC0
- orrs r0, r1
- strb r0, [r4, 0x3]
- adds r0, r4, 0
- movs r1, 0x1
- movs r2, 0x3
- movs r3, 0x2
- bl CalcCenterToCornerVec
- b _0813D200
- .align 2, 0
-_0813D1CC: .4byte gSprites
-_0813D1D0: .4byte sub_813D0CC
-_0813D1D4:
- ldrh r0, [r1, 0x24]
- strh r0, [r4, 0x24]
- movs r0, 0x3C
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r0, [r0, 0x26]
- strh r0, [r4, 0x26]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r0, [r0, 0x20]
- strh r0, [r4, 0x20]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r0, [r0, 0x22]
- strh r0, [r4, 0x22]
-_0813D200:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_813D158
-
- thumb_func_start sub_813D208
-sub_813D208: @ 813D208
- push {lr}
- adds r1, r0, 0
- movs r2, 0x2E
- ldrsh r0, [r1, r2]
- cmp r0, 0
- beq _0813D218
- ldr r0, _0813D21C @ =sub_813D220
- str r0, [r1, 0x1C]
-_0813D218:
- pop {r0}
- bx r0
- .align 2, 0
-_0813D21C: .4byte sub_813D220
- thumb_func_end sub_813D208
-
- thumb_func_start sub_813D220
-sub_813D220: @ 813D220
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- adds r7, r0, 0
- ldrh r4, [r7, 0x20]
- movs r1, 0x20
- ldrsh r0, [r7, r1]
- cmp r0, 0x74
- bgt _0813D260
- ldrh r0, [r7, 0x26]
- ldrh r1, [r7, 0x22]
- adds r0, r1
- movs r1, 0
- strh r0, [r7, 0x22]
- strh r1, [r7, 0x26]
- adds r0, r4, 0x4
- strh r0, [r7, 0x20]
- ldr r0, _0813D258 @ =0x0000fffc
- strh r0, [r7, 0x24]
- movs r0, 0x80
- strh r0, [r7, 0x36]
- ldr r0, _0813D25C @ =sub_813D368
- str r0, [r7, 0x1C]
- b _0813D352
- .align 2, 0
-_0813D258: .4byte 0x0000fffc
-_0813D25C: .4byte sub_813D368
-_0813D260:
- ldrh r1, [r7, 0x36]
- ldr r5, _0813D364 @ =gSineTable
- lsls r0, r1, 24
- lsrs r0, 23
- adds r0, r5
- ldrh r2, [r0]
- adds r0, r1, 0
- adds r0, 0x40
- lsls r0, 24
- lsrs r0, 23
- adds r0, r5
- ldrh r3, [r0]
- adds r1, 0x2
- strh r1, [r7, 0x36]
- lsls r2, 16
- asrs r0, r2, 16
- cmp r0, 0
- bge _0813D286
- adds r0, 0x1F
-_0813D286:
- asrs r0, 5
- strh r0, [r7, 0x26]
- subs r0, r4, 0x1
- strh r0, [r7, 0x20]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0813D29C
- ldrh r0, [r7, 0x22]
- adds r0, 0x1
- strh r0, [r7, 0x22]
-_0813D29C:
- lsls r0, r3, 16
- asrs r0, 16
- negs r0, r0
- cmp r0, 0
- bge _0813D2A8
- adds r0, 0xF
-_0813D2A8:
- lsls r1, r0, 12
- lsrs r1, 16
- ldrh r4, [r7, 0x32]
- ldrh r3, [r7, 0x34]
- adds r0, r1, 0
- subs r0, 0x10
- lsls r0, 24
- lsrs r0, 23
- adds r0, r5
- ldrh r2, [r0]
- adds r1, 0x30
- lsls r1, 24
- lsrs r1, 23
- adds r1, r5
- movs r0, 0
- ldrsh r1, [r1, r0]
- adds r0, r1, 0
- muls r0, r4
- cmp r0, 0
- bge _0813D2D2
- adds r0, 0xFF
-_0813D2D2:
- lsls r0, 8
- lsrs r0, 16
- mov r8, r0
- lsls r0, r2, 16
- asrs r2, r0, 16
- negs r0, r2
- muls r0, r3
- cmp r0, 0
- bge _0813D2E6
- adds r0, 0xFF
-_0813D2E6:
- lsls r0, 8
- lsrs r0, 16
- mov r10, r0
- adds r0, r2, 0
- muls r0, r4
- cmp r0, 0
- bge _0813D2F6
- adds r0, 0xFF
-_0813D2F6:
- lsls r0, 8
- lsrs r5, r0, 16
- adds r0, r1, 0
- muls r0, r3
- cmp r0, 0
- bge _0813D304
- adds r0, 0xFF
-_0813D304:
- lsls r6, r0, 8
- lsrs r6, 16
- ldrh r0, [r7, 0x30]
- lsls r0, 24
- lsrs r0, 24
- str r3, [sp]
- adds r1, r4, 0
- movs r2, 0
- movs r3, 0
- bl SetOamMatrix
- ldrh r0, [r7, 0x30]
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r5
- mov r1, r10
- lsls r5, r1, 16
- lsrs r3, r5, 16
- lsls r4, r6, 16
- str r6, [sp]
- mov r1, r8
- mov r2, r9
- bl SetOamMatrix
- ldrh r0, [r7, 0x30]
- adds r0, 0x2
- lsls r0, 24
- lsrs r0, 24
- lsls r5, 1
- lsrs r5, 16
- lsls r4, 1
- lsrs r4, 16
- str r4, [sp]
- mov r1, r8
- mov r2, r9
- adds r3, r5, 0
- bl SetOamMatrix
-_0813D352:
- 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
-_0813D364: .4byte gSineTable
- thumb_func_end sub_813D220
-
- thumb_func_start sub_813D368
-sub_813D368: @ 813D368
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- ldrh r0, [r4, 0x30]
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x3A]
- adds r1, 0x40
- lsls r1, 16
- lsrs r1, 16
- str r1, [sp]
- movs r2, 0
- movs r3, 0
- bl SetOamMatrix
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x3A]
- adds r1, 0x40
- lsls r1, 16
- lsrs r1, 16
- str r1, [sp]
- movs r2, 0
- movs r3, 0
- bl SetOamMatrix
- ldrh r0, [r4, 0x30]
- adds r0, 0x2
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x3A]
- adds r1, 0x40
- lsls r1, 16
- lsrs r1, 16
- str r1, [sp]
- movs r2, 0
- movs r3, 0
- bl SetOamMatrix
- ldrh r1, [r4, 0x36]
- movs r2, 0x36
- ldrsh r0, [r4, r2]
- cmp r0, 0x40
- beq _0813D400
- adds r0, r1, 0
- subs r0, 0x8
- strh r0, [r4, 0x36]
- ldrh r0, [r4, 0x36]
- adds r1, r0, 0
- ldr r2, _0813D3FC @ =gSineTable
- adds r0, 0x40
- lsls r0, 24
- lsrs r0, 23
- adds r0, r2
- movs r3, 0
- ldrsh r0, [r0, r3]
- cmp r0, 0
- bge _0813D3E2
- adds r0, 0x3F
-_0813D3E2:
- asrs r0, 6
- strh r0, [r4, 0x24]
- lsls r0, r1, 24
- lsrs r0, 23
- adds r0, r2
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bge _0813D3F6
- adds r0, 0x3F
-_0813D3F6:
- asrs r0, 6
- strh r0, [r4, 0x26]
- b _0813D408
- .align 2, 0
-_0813D3FC: .4byte gSineTable
-_0813D400:
- movs r0, 0
- strh r0, [r4, 0x36]
- ldr r0, _0813D410 @ =sub_813D414
- str r0, [r4, 0x1C]
-_0813D408:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813D410: .4byte sub_813D414
- thumb_func_end sub_813D368
-
- thumb_func_start sub_813D414
-sub_813D414: @ 813D414
- push {r4,lr}
- adds r1, r0, 0
- movs r2, 0x2E
- ldrsh r0, [r1, r2]
- cmp r0, 0x2
- beq _0813D474
- ldrh r0, [r1, 0x36]
- adds r0, 0x8
- strh r0, [r1, 0x36]
- ldr r3, _0813D470 @ =gSineTable
- lsls r0, 24
- lsrs r0, 23
- adds r0, r3
- movs r4, 0
- ldrsh r0, [r0, r4]
- cmp r0, 0
- bge _0813D438
- adds r0, 0xF
-_0813D438:
- asrs r0, 4
- adds r0, 0x40
- lsls r0, 16
- lsrs r2, r0, 16
- adds r0, r2, 0
- adds r0, 0x40
- lsls r0, 24
- lsrs r0, 23
- adds r0, r3
- movs r4, 0
- ldrsh r0, [r0, r4]
- cmp r0, 0
- bge _0813D454
- adds r0, 0x3F
-_0813D454:
- asrs r0, 6
- strh r0, [r1, 0x24]
- lsls r0, r2, 24
- lsrs r0, 23
- adds r0, r3
- movs r2, 0
- ldrsh r0, [r0, r2]
- cmp r0, 0
- bge _0813D468
- adds r0, 0x3F
-_0813D468:
- asrs r0, 6
- strh r0, [r1, 0x26]
- b _0813D478
- .align 2, 0
-_0813D470: .4byte gSineTable
-_0813D474:
- ldr r0, _0813D480 @ =sub_813D484
- str r0, [r1, 0x1C]
-_0813D478:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813D480: .4byte sub_813D484
- thumb_func_end sub_813D414
-
- thumb_func_start sub_813D484
-sub_813D484: @ 813D484
- push {r4,lr}
- adds r4, r0, 0
- ldrh r2, [r4, 0x22]
- movs r0, 0x22
- ldrsh r1, [r4, r0]
- movs r3, 0x38
- ldrsh r0, [r4, r3]
- cmp r1, r0
- bge _0813D49C
- adds r0, r2, 0x4
- strh r0, [r4, 0x22]
- b _0813D4F8
-_0813D49C:
- movs r0, 0x1
- strh r0, [r4, 0x3C]
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldrh r0, [r4, 0x24]
- ldrh r1, [r4, 0x20]
- adds r0, r1
- strh r0, [r4, 0x20]
- ldrh r0, [r4, 0x26]
- ldrh r3, [r4, 0x22]
- adds r0, r3
- strh r0, [r4, 0x22]
- adds r0, r4, 0
- movs r1, 0x3
- bl StartSpriteAnim
- movs r0, 0x80
- lsls r0, 3
- strh r0, [r4, 0x32]
- ldrh r1, [r4, 0x30]
- movs r0, 0x3
- ands r0, r1
- lsls r0, 3
- strh r0, [r4, 0x34]
- ldr r0, _0813D500 @ =sub_813D0CC
- str r0, [r4, 0x1C]
- ldrb r1, [r4, 0x1]
- movs r0, 0x3F
- ands r0, r1
- movs r1, 0x40
- orrs r0, r1
- strb r0, [r4, 0x1]
- ldrb r0, [r4, 0x3]
- movs r1, 0xC0
- orrs r0, r1
- strb r0, [r4, 0x3]
- adds r0, r4, 0
- movs r1, 0x1
- movs r2, 0x3
- movs r3, 0x2
- bl CalcCenterToCornerVec
-_0813D4F8:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813D500: .4byte sub_813D0CC
- thumb_func_end sub_813D484
-
- thumb_func_start sub_813D504
-sub_813D504: @ 813D504
- push {r4,lr}
- adds r4, r0, 0
- ldrh r2, [r4, 0x22]
- movs r0, 0x22
- ldrsh r1, [r4, r0]
- movs r3, 0x38
- ldrsh r0, [r4, r3]
- cmp r1, r0
- bge _0813D51C
- adds r0, r2, 0x4
- strh r0, [r4, 0x22]
- b _0813D578
-_0813D51C:
- movs r0, 0x1
- strh r0, [r4, 0x3C]
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldrh r0, [r4, 0x24]
- ldrh r1, [r4, 0x20]
- adds r0, r1
- strh r0, [r4, 0x20]
- ldrh r0, [r4, 0x26]
- ldrh r3, [r4, 0x22]
- adds r0, r3
- strh r0, [r4, 0x22]
- adds r0, r4, 0
- movs r1, 0x3
- bl StartSpriteAnim
- movs r0, 0x80
- lsls r0, 3
- strh r0, [r4, 0x32]
- ldrh r1, [r4, 0x30]
- movs r0, 0x3
- ands r0, r1
- lsls r0, 3
- strh r0, [r4, 0x34]
- ldr r0, _0813D580 @ =sub_813D0CC
- str r0, [r4, 0x1C]
- ldrb r1, [r4, 0x1]
- movs r0, 0x3F
- ands r0, r1
- movs r1, 0x40
- orrs r0, r1
- strb r0, [r4, 0x1]
- ldrb r0, [r4, 0x3]
- movs r1, 0xC0
- orrs r0, r1
- strb r0, [r4, 0x3]
- adds r0, r4, 0
- movs r1, 0x1
- movs r2, 0x3
- movs r3, 0x2
- bl CalcCenterToCornerVec
-_0813D578:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813D580: .4byte sub_813D0CC
- thumb_func_end sub_813D504
-
- thumb_func_start sub_813D584
-sub_813D584: @ 813D584
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r6, [sp, 0x34]
- ldr r0, [sp, 0x38]
- mov r8, r0
- lsls r4, 16
- lsls r5, 16
- lsls r2, 16
- lsrs r2, 16
- str r2, [sp, 0x8]
- lsls r3, 16
- lsrs r3, 16
- str r3, [sp, 0xC]
- lsls r6, 16
- lsrs r6, 16
- mov r1, r8
- lsls r1, 24
- lsrs r1, 24
- mov r8, r1
- ldr r0, _0813D640 @ =gSpriteTemplate_840AE20
- lsrs r2, r4, 16
- mov r10, r2
- asrs r4, 16
- lsrs r1, r5, 16
- str r1, [sp, 0x4]
- asrs r5, 16
- adds r1, r4, 0
- adds r2, r5, 0
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r2, _0813D644 @ =gSprites
- mov r9, r2
- lsls r0, r7, 4
- adds r0, r7
- lsls r5, r0, 2
- adds r4, r5, r2
- movs r0, 0
- strh r0, [r4, 0x2E]
- strh r0, [r4, 0x3C]
- mov r0, sp
- ldrh r0, [r0, 0xC]
- strh r0, [r4, 0x30]
- mov r1, sp
- ldrh r1, [r1, 0x8]
- strh r1, [r4, 0x32]
- mov r2, sp
- ldrh r2, [r2, 0x8]
- strh r2, [r4, 0x34]
- strh r6, [r4, 0x38]
- mov r0, sp
- ldrh r0, [r0, 0x8]
- strh r0, [r4, 0x3A]
- ldrb r0, [r4, 0x1]
- movs r1, 0x3
- orrs r0, r1
- strb r0, [r4, 0x1]
- movs r0, 0x1F
- ldr r1, [sp, 0xC]
- ands r1, r0
- lsls r1, 1
- ldrb r2, [r4, 0x3]
- movs r0, 0x3F
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r4, 0x3]
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0x2
- movs r3, 0x2
- bl CalcCenterToCornerVec
- adds r0, r4, 0
- movs r1, 0x2
- bl StartSpriteAnim
- mov r1, r8
- cmp r1, 0
- bne _0813D64C
- mov r0, r9
- adds r0, 0x1C
- adds r0, r5, r0
- ldr r1, _0813D648 @ =sub_813D208
- b _0813D654
- .align 2, 0
-_0813D640: .4byte gSpriteTemplate_840AE20
-_0813D644: .4byte gSprites
-_0813D648: .4byte sub_813D208
-_0813D64C:
- mov r0, r9
- adds r0, 0x1C
- adds r0, r5, r0
- ldr r1, _0813D774 @ =sub_813D504
-_0813D654:
- str r1, [r0]
- str r7, [sp, 0x10]
- mov r2, r10
- lsls r2, 16
- asrs r2, 16
- mov r10, r2
- ldr r0, [sp, 0x4]
- lsls r0, 16
- asrs r0, 16
- mov r8, r0
- ldr r0, _0813D778 @ =gSpriteTemplate_840AE20
- mov r1, r10
- mov r2, r8
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r5, _0813D77C @ =gSprites
- lsls r4, r7, 4
- adds r4, r7
- lsls r4, 2
- adds r0, r4, r5
- mov r1, sp
- ldrh r1, [r1, 0x10]
- strh r1, [r0, 0x3C]
- ldr r2, [sp, 0xC]
- adds r2, 0x1
- mov r9, r2
- strh r2, [r0, 0x30]
- ldrb r1, [r0, 0x1]
- movs r2, 0x3
- orrs r1, r2
- strb r1, [r0, 0x1]
- mov r2, r9
- movs r1, 0x1F
- ands r2, r1
- lsls r2, 1
- ldrb r3, [r0, 0x3]
- movs r6, 0x3F
- negs r6, r6
- adds r1, r6, 0
- ands r1, r3
- orrs r1, r2
- strb r1, [r0, 0x3]
- movs r1, 0
- movs r2, 0x2
- movs r3, 0x2
- bl CalcCenterToCornerVec
- ldr r2, _0813D780 @ =gSprites + 0x1C
- adds r4, r2
- ldr r0, _0813D784 @ =sub_813D158
- str r0, [r4]
- ldr r0, _0813D778 @ =gSpriteTemplate_840AE20
- mov r1, r10
- mov r2, r8
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r4, r7, 4
- adds r4, r7
- lsls r4, 2
- adds r5, r4, r5
- mov r1, sp
- ldrh r1, [r1, 0x10]
- strh r1, [r5, 0x3C]
- ldr r2, [sp, 0xC]
- adds r2, 0x2
- mov r8, r2
- strh r2, [r5, 0x30]
- adds r0, r5, 0
- movs r1, 0x1
- bl StartSpriteAnim
- ldrb r0, [r5, 0x1]
- movs r1, 0x3
- orrs r0, r1
- strb r0, [r5, 0x1]
- mov r0, r8
- movs r2, 0x1F
- ands r0, r2
- lsls r0, 1
- ldrb r1, [r5, 0x3]
- ands r6, r1
- orrs r6, r0
- strb r6, [r5, 0x3]
- adds r0, r5, 0
- movs r1, 0
- movs r2, 0x2
- movs r3, 0x2
- bl CalcCenterToCornerVec
- ldr r0, _0813D780 @ =gSprites + 0x1C
- adds r4, r0
- ldr r1, _0813D784 @ =sub_813D158
- str r1, [r4]
- ldr r2, [sp, 0xC]
- lsls r0, r2, 24
- lsrs r0, 24
- ldr r5, [sp, 0x8]
- adds r5, 0x20
- lsls r4, r5, 16
- lsrs r4, 16
- str r4, [sp]
- adds r1, r4, 0
- movs r2, 0
- movs r3, 0
- bl SetOamMatrix
- mov r0, r9
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- str r4, [sp]
- adds r1, r4, 0
- movs r2, 0
- movs r3, 0
- bl SetOamMatrix
- mov r1, r8
- lsls r1, 24
- lsrs r1, 24
- mov r8, r1
- lsls r5, 17
- lsrs r5, 16
- str r5, [sp]
- mov r0, r8
- adds r1, r4, 0
- movs r2, 0
- movs r3, 0
- bl SetOamMatrix
- ldr r0, [sp, 0x10]
- add sp, 0x14
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0813D774: .4byte sub_813D504
-_0813D778: .4byte gSpriteTemplate_840AE20
-_0813D77C: .4byte gSprites
-_0813D780: .4byte gSprites + 0x1C
-_0813D784: .4byte sub_813D158
- thumb_func_end sub_813D584
-
- thumb_func_start sub_813D788
-sub_813D788: @ 813D788
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x4
- bhi _0813D830
- lsls r0, 2
- ldr r1, _0813D7A0 @ =_0813D7A4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0813D7A0: .4byte _0813D7A4
- .align 2, 0
-_0813D7A4:
- .4byte _0813D7B8
- .4byte _0813D7C6
- .4byte _0813D7E4
- .4byte _0813D80C
- .4byte _0813D816
-_0813D7B8:
- adds r0, r4, 0
- movs r1, 0
- bl StartSpriteAnimIfDifferent
- ldrh r0, [r4, 0x20]
- subs r0, 0x1
- b _0813D82E
-_0813D7C6:
- adds r0, r4, 0
- movs r1, 0
- bl StartSpriteAnimIfDifferent
- ldr r0, _0813D7E0 @ =gUnknown_03005ED0
- ldr r0, [r0]
- movs r1, 0x7
- ands r0, r1
- cmp r0, 0
- bne _0813D87A
- ldrh r0, [r4, 0x20]
- adds r0, 0x1
- b _0813D82E
- .align 2, 0
-_0813D7E0: .4byte gUnknown_03005ED0
-_0813D7E4:
- adds r0, r4, 0
- movs r1, 0x2
- bl StartSpriteAnimIfDifferent
- ldrh r2, [r4, 0x20]
- movs r1, 0x20
- ldrsh r0, [r4, r1]
- cmp r0, 0x78
- ble _0813D802
- ldr r0, _0813D808 @ =gUnknown_03005ED0
- ldr r0, [r0]
- movs r1, 0x7
- ands r0, r1
- cmp r0, 0
- beq _0813D83C
-_0813D802:
- adds r0, r2, 0x1
- b _0813D82E
- .align 2, 0
-_0813D808: .4byte gUnknown_03005ED0
-_0813D80C:
- adds r0, r4, 0
- movs r1, 0x3
- bl StartSpriteAnimIfDifferent
- b _0813D830
-_0813D816:
- adds r0, r4, 0
- movs r1, 0
- bl StartSpriteAnimIfDifferent
- ldrh r2, [r4, 0x20]
- movs r0, 0x20
- ldrsh r1, [r4, r0]
- movs r0, 0x20
- negs r0, r0
- cmp r1, r0
- ble _0813D830
- subs r0, r2, 0x2
-_0813D82E:
- strh r0, [r4, 0x20]
-_0813D830:
- ldr r0, _0813D84C @ =gUnknown_03005ED0
- ldr r0, [r0]
- movs r1, 0x7
- ands r0, r1
- cmp r0, 0
- bne _0813D87A
-_0813D83C:
- movs r1, 0x26
- ldrsh r5, [r4, r1]
- cmp r5, 0
- beq _0813D850
- movs r0, 0
- strh r0, [r4, 0x26]
- b _0813D87A
- .align 2, 0
-_0813D84C: .4byte gUnknown_03005ED0
-_0813D850:
- bl Random
- movs r1, 0x3
- ands r1, r0
- cmp r1, 0x1
- beq _0813D878
- cmp r1, 0x1
- bgt _0813D866
- cmp r1, 0
- beq _0813D86E
- b _0813D87A
-_0813D866:
- cmp r1, 0x3
- bgt _0813D87A
- strh r5, [r4, 0x26]
- b _0813D87A
-_0813D86E:
- ldr r0, _0813D874 @ =0x0000ffff
- strh r0, [r4, 0x26]
- b _0813D87A
- .align 2, 0
-_0813D874: .4byte 0x0000ffff
-_0813D878:
- strh r1, [r4, 0x26]
-_0813D87A:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_813D788
-
- thumb_func_start sub_813D880
-sub_813D880: @ 813D880
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _0813D89A
- cmp r0, 0x1
- ble _0813D8E2
- cmp r0, 0x2
- beq _0813D8BA
- cmp r0, 0x3
- beq _0813D8D4
- b _0813D8E2
-_0813D89A:
- movs r2, 0x24
- ldrsh r0, [r4, r2]
- movs r2, 0x20
- ldrsh r1, [r4, r2]
- adds r0, r1
- ldr r1, _0813D8B0 @ =0x0000012f
- cmp r0, r1
- bgt _0813D8B4
- ldrh r0, [r4, 0x24]
- adds r0, 0x8
- b _0813D8E0
- .align 2, 0
-_0813D8B0: .4byte 0x0000012f
-_0813D8B4:
- movs r0, 0x2
- strh r0, [r4, 0x2E]
- b _0813D8E2
-_0813D8BA:
- movs r1, 0x24
- ldrsh r0, [r4, r1]
- movs r2, 0x20
- ldrsh r1, [r4, r2]
- adds r0, r1
- cmp r0, 0x78
- ble _0813D8CE
- ldrh r0, [r4, 0x24]
- subs r0, 0x1
- b _0813D8E0
-_0813D8CE:
- movs r0, 0x3
- strh r0, [r4, 0x2E]
- b _0813D8E2
-_0813D8D4:
- ldrh r1, [r4, 0x24]
- movs r2, 0x24
- ldrsh r0, [r4, r2]
- cmp r0, 0
- ble _0813D8E2
- subs r0, r1, 0x2
-_0813D8E0:
- strh r0, [r4, 0x24]
-_0813D8E2:
- ldrh r0, [r4, 0x30]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x8
- bl Sin
- ldr r1, _0813D904 @ =gUnknown_0203935A
- ldrh r1, [r1]
- subs r0, r1
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x30]
- adds r0, 0x4
- strh r0, [r4, 0x30]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813D904: .4byte gUnknown_0203935A
- thumb_func_end sub_813D880
-
- thumb_func_start sub_813D908
-sub_813D908: @ 813D908
- push {lr}
- adds r3, r0, 0
- ldr r2, _0813D930 @ =gTasks
- movs r0, 0x2E
- ldrsh r1, [r3, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- movs r1, 0x8
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _0813D934
- adds r0, r3, 0
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- b _0813D94E
- .align 2, 0
-_0813D930: .4byte gTasks
-_0813D934:
- cmp r0, 0x4
- beq _0813D948
- adds r2, r3, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- b _0813D94E
-_0813D948:
- adds r0, r3, 0
- bl DestroySprite
-_0813D94E:
- pop {r0}
- bx r0
- thumb_func_end sub_813D908
-
- thumb_func_start sub_813D954
-sub_813D954: @ 813D954
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- lsls r1, 16
- lsrs r6, r1, 16
- lsls r2, 24
- lsrs r2, 24
- mov r8, r2
- movs r5, 0
- ldr r7, _0813DA48 @ =gUnknown_0840AF50
- lsls r0, 16
- mov r9, r0
- lsls r0, r6, 16
- str r0, [sp, 0x4]
- mov r1, r9
- asrs r1, 16
- str r1, [sp]
-_0813D97C:
- lsls r4, r5, 2
- adds r0, r7, 0x2
- adds r0, r4, r0
- ldrh r1, [r0]
- ldr r2, [sp]
- adds r1, r2, r1
- lsls r1, 16
- asrs r1, 16
- lsls r2, r6, 16
- asrs r3, r2, 16
- mov r10, r3
- ldr r0, _0813DA4C @ =0xfffc0000
- adds r2, r0
- ldr r0, _0813DA50 @ =gSpriteTemplate_840AF94
- asrs r2, 16
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _0813DA54 @ =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- mov r1, r8
- strh r1, [r0, 0x2E]
- adds r4, r7
- ldrb r1, [r4]
- bl StartSpriteAnim
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x8
- bls _0813D97C
- movs r5, 0
- ldr r7, _0813DA58 @ =gUnknown_0840AF74
- mov r0, r10
- adds r0, 0xC
- lsls r0, 16
- mov r10, r0
-_0813D9D0:
- lsls r4, r5, 2
- adds r0, r7, 0x2
- adds r0, r4, r0
- mov r2, r9
- asrs r1, r2, 16
- ldrh r0, [r0]
- adds r1, r0
- lsls r1, 16
- asrs r1, 16
- ldr r0, _0813DA5C @ =gSpriteTemplate_840AFAC
- mov r3, r10
- asrs r2, r3, 16
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r6, _0813DA54 @ =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r6
- mov r1, r8
- strh r1, [r0, 0x2E]
- adds r4, r7
- ldrb r1, [r4]
- bl StartSpriteAnim
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x7
- bls _0813D9D0
- ldr r0, _0813DA60 @ =gSpriteTemplate_840AFC4
- ldr r3, [sp, 0x4]
- ldr r1, _0813DA4C @ =0xfffc0000
- adds r2, r3, r1
- asrs r2, 16
- movs r1, 0x78
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r6
- mov r3, r8
- strh r3, [r0, 0x2E]
- adds r0, r2, 0
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0813DA48: .4byte gUnknown_0840AF50
-_0813DA4C: .4byte 0xfffc0000
-_0813DA50: .4byte gSpriteTemplate_840AF94
-_0813DA54: .4byte gSprites
-_0813DA58: .4byte gUnknown_0840AF74
-_0813DA5C: .4byte gSpriteTemplate_840AFAC
-_0813DA60: .4byte gSpriteTemplate_840AFC4
- thumb_func_end sub_813D954
-
- thumb_func_start sub_813DA64
-sub_813DA64: @ 813DA64
- push {r4-r6,lr}
- sub sp, 0x4
- adds r4, r0, 0
- ldrh r0, [r4, 0x3C]
- adds r0, 0x1
- strh r0, [r4, 0x3C]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _0813DA7C
- cmp r0, 0x1
- beq _0813DAC0
-_0813DA7C:
- ldrb r0, [r4, 0x1]
- movs r1, 0x3
- orrs r0, r1
- strb r0, [r4, 0x1]
- ldrb r1, [r4, 0x3]
- movs r0, 0x3F
- negs r0, r0
- ands r0, r1
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r4, 0x3]
- adds r0, r4, 0
- movs r1, 0x1
- movs r2, 0x3
- movs r3, 0x3
- bl CalcCenterToCornerVec
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- movs r0, 0x1
- strh r0, [r4, 0x2E]
- movs r0, 0x80
- strh r0, [r4, 0x30]
- ldr r0, _0813DABC @ =0x0000ffe8
- strh r0, [r4, 0x32]
- movs r0, 0
- b _0813DB92
- .align 2, 0
-_0813DABC: .4byte 0x0000ffe8
-_0813DAC0:
- ldrh r1, [r4, 0x34]
- movs r2, 0x34
- ldrsh r0, [r4, r2]
- cmp r0, 0x4F
- bgt _0813DAF8
- lsls r0, r1, 24
- lsrs r0, 24
- movs r1, 0x78
- bl Sin
- negs r0, r0
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x34]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x8C
- bl Sin
- negs r0, r0
- strh r0, [r4, 0x24]
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- cmp r0, 0x40
- ble _0813DAF8
- ldrb r0, [r4, 0x5]
- movs r1, 0xC
- orrs r0, r1
- strb r0, [r4, 0x5]
-_0813DAF8:
- ldr r2, _0813DB60 @ =gSineTable
- ldrh r1, [r4, 0x32]
- lsls r0, r1, 24
- lsrs r0, 23
- adds r0, r2
- ldrh r3, [r0]
- adds r1, 0x40
- lsls r1, 24
- lsrs r1, 23
- adds r1, r2
- movs r2, 0
- ldrsh r0, [r1, r2]
- movs r1, 0x30
- ldrsh r2, [r4, r1]
- adds r1, r0, 0
- muls r1, r2
- adds r0, r1, 0
- cmp r1, 0
- bge _0813DB20
- adds r0, 0xFF
-_0813DB20:
- lsls r0, 8
- lsrs r6, r0, 16
- lsls r0, r3, 16
- asrs r3, r0, 16
- negs r0, r3
- muls r0, r2
- cmp r0, 0
- bge _0813DB32
- adds r0, 0xFF
-_0813DB32:
- lsls r0, 8
- lsrs r5, r0, 16
- adds r0, r3, 0
- muls r0, r2
- cmp r0, 0
- bge _0813DB40
- adds r0, 0xFF
-_0813DB40:
- lsls r0, 8
- lsrs r2, r0, 16
- adds r1, r6, 0
- adds r3, r5, 0
- str r1, [sp]
- movs r0, 0x1
- bl SetOamMatrix
- ldrh r1, [r4, 0x30]
- movs r2, 0x30
- ldrsh r0, [r4, r2]
- cmp r0, 0xFF
- bgt _0813DB64
- adds r0, r1, 0
- adds r0, 0x8
- b _0813DB68
- .align 2, 0
-_0813DB60: .4byte gSineTable
-_0813DB64:
- adds r0, r1, 0
- adds r0, 0x20
-_0813DB68:
- strh r0, [r4, 0x30]
- ldrh r1, [r4, 0x32]
- movs r2, 0x32
- ldrsh r0, [r4, r2]
- cmp r0, 0x17
- bgt _0813DB78
- adds r0, r1, 0x1
- strh r0, [r4, 0x32]
-_0813DB78:
- ldrh r2, [r4, 0x34]
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- cmp r0, 0x3F
- bgt _0813DB86
- adds r0, r2, 0x2
- b _0813DB92
-_0813DB86:
- ldrh r1, [r4, 0x3C]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- bne _0813DB94
- adds r0, r2, 0x1
-_0813DB92:
- strh r0, [r4, 0x34]
-_0813DB94:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_813DA64
-
- thumb_func_start sub_813DB9C
-sub_813DB9C: @ 813DB9C
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x4
- bhi _0813DBCC
- lsls r0, 2
- ldr r1, _0813DBB4 @ =_0813DBB8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0813DBB4: .4byte _0813DBB8
- .align 2, 0
-_0813DBB8:
- .4byte _0813DBCC
- .4byte _0813DBF2
- .4byte _0813DC24
- .4byte _0813DC3E
- .4byte _0813DCAA
-_0813DBCC:
- movs r2, 0x32
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _0813DBE0
- adds r2, r4, 0
- adds r2, 0x3F
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- b _0813DBEC
-_0813DBE0:
- adds r2, r4, 0
- adds r2, 0x3F
- ldrb r1, [r2]
- movs r0, 0x2
- negs r0, r0
- ands r0, r1
-_0813DBEC:
- strb r0, [r2]
- movs r0, 0x1
- strh r0, [r4, 0x2E]
-_0813DBF2:
- ldrh r1, [r4, 0x22]
- movs r3, 0x22
- ldrsh r0, [r4, r3]
- cmp r0, 0x60
- ble _0813DC18
- subs r0, r1, 0x4
- strh r0, [r4, 0x22]
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _0813DC10
- ldrh r0, [r4, 0x20]
- adds r0, 0x2
- strh r0, [r4, 0x20]
- b _0813DD4E
-_0813DC10:
- ldrh r0, [r4, 0x20]
- subs r0, 0x2
- strh r0, [r4, 0x20]
- b _0813DD4E
-_0813DC18:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- movs r0, 0x8
- strh r0, [r4, 0x34]
- b _0813DD4E
-_0813DC24:
- ldrh r0, [r4, 0x34]
- movs r2, 0x34
- ldrsh r1, [r4, r2]
- cmp r1, 0
- beq _0813DC34
- subs r0, 0x1
- strh r0, [r4, 0x34]
- b _0813DD4E
-_0813DC34:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- strh r1, [r4, 0x34]
- b _0813DD4E
-_0813DC3E:
- ldrb r0, [r4, 0x1]
- movs r1, 0x3
- orrs r0, r1
- strb r0, [r4, 0x1]
- movs r3, 0x30
- ldrsh r1, [r4, r3]
- movs r0, 0x1F
- ands r1, r0
- lsls r1, 1
- ldrb r2, [r4, 0x3]
- movs r0, 0x3F
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r4, 0x3]
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0x3
- movs r3, 0x3
- bl CalcCenterToCornerVec
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _0813DC8A
- ldrh r0, [r4, 0x30]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0xFF
- lsls r1, 8
- movs r2, 0x80
- lsls r2, 1
- str r2, [sp]
- movs r2, 0
- movs r3, 0
- bl SetOamMatrix
- b _0813DC9E
-_0813DC8A:
- ldrh r0, [r4, 0x30]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x80
- lsls r1, 1
- str r1, [sp]
- movs r2, 0
- movs r3, 0
- bl SetOamMatrix
-_0813DC9E:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- movs r1, 0
- strh r0, [r4, 0x2E]
- strh r1, [r4, 0x36]
- b _0813DD4E
-_0813DCAA:
- ldrh r0, [r4, 0x36]
- adds r2, r0, 0x1
- strh r2, [r4, 0x36]
- movs r3, 0x22
- ldrsh r0, [r4, r3]
- movs r3, 0x26
- ldrsh r1, [r4, r3]
- adds r0, r1
- movs r1, 0x20
- negs r1, r1
- cmp r0, r1
- ble _0813DD48
- movs r1, 0x20
- ldrsh r0, [r4, r1]
- movs r3, 0x24
- ldrsh r1, [r4, r3]
- adds r0, r1
- movs r1, 0x40
- negs r1, r1
- cmp r0, r1
- ble _0813DD48
- movs r1, 0x36
- ldrsh r0, [r4, r1]
- adds r3, r0, 0
- muls r3, r0
- adds r0, r3, 0
- negs r0, r0
- cmp r0, 0
- bge _0813DCE6
- adds r0, 0x7
-_0813DCE6:
- asrs r0, 3
- strh r0, [r4, 0x26]
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- ldrh r3, [r4, 0x32]
- cmp r0, 0
- beq _0813DCFA
- ldrh r0, [r4, 0x24]
- adds r0, r2
- b _0813DCFE
-_0813DCFA:
- ldrh r0, [r4, 0x24]
- subs r0, r2
-_0813DCFE:
- strh r0, [r4, 0x24]
- ldrh r1, [r4, 0x34]
- movs r2, 0x34
- ldrsh r0, [r4, r2]
- cmp r0, 0x7F
- bgt _0813DD10
- adds r0, r1, 0
- adds r0, 0x8
- strh r0, [r4, 0x34]
-_0813DD10:
- ldrh r0, [r4, 0x34]
- movs r2, 0x80
- lsls r2, 1
- adds r1, r2, 0
- subs r1, r0
- lsls r1, 16
- lsrs r2, r1, 16
- lsls r0, r3, 16
- cmp r0, 0
- beq _0813DD34
- ldrh r0, [r4, 0x30]
- lsls r0, 24
- lsrs r0, 24
- negs r1, r2
- lsls r1, 16
- lsrs r1, 16
- str r2, [sp]
- b _0813DD3E
-_0813DD34:
- ldrh r0, [r4, 0x30]
- lsls r0, 24
- lsrs r0, 24
- str r2, [sp]
- adds r1, r2, 0
-_0813DD3E:
- movs r2, 0
- movs r3, 0
- bl SetOamMatrix
- b _0813DD4E
-_0813DD48:
- adds r0, r4, 0
- bl DestroySprite
-_0813DD4E:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_813DB9C
-
- thumb_func_start sub_813DD58
-sub_813DD58: @ 813DD58
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _0813DDAE
- cmp r0, 0x1
- ble _0813DD72
- cmp r0, 0x2
- beq _0813DE66
- cmp r0, 0x3
- beq _0813DE26
-_0813DD72:
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- ldrb r1, [r4, 0x1]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r4, 0x1]
- movs r2, 0x30
- ldrsh r1, [r4, r2]
- movs r0, 0x1F
- ands r1, r0
- lsls r1, 1
- ldrb r2, [r4, 0x3]
- movs r0, 0x3F
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r4, 0x3]
- movs r0, 0x80
- lsls r0, 4
- strh r0, [r4, 0x34]
- movs r0, 0x1
- strh r0, [r4, 0x2E]
-_0813DDAE:
- ldrh r1, [r4, 0x34]
- movs r2, 0x34
- ldrsh r0, [r4, r2]
- movs r2, 0x80
- lsls r2, 1
- cmp r0, r2
- ble _0813DDEE
- subs r1, 0x80
- strh r1, [r4, 0x34]
- movs r2, 0x32
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _0813DDDA
- ldrh r0, [r4, 0x30]
- lsls r0, 24
- lsrs r0, 24
- negs r1, r1
- lsls r1, 16
- lsrs r1, 16
- ldrh r2, [r4, 0x34]
- str r2, [sp]
- b _0813DDE4
-_0813DDDA:
- ldrh r0, [r4, 0x30]
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x34]
- str r1, [sp]
-_0813DDE4:
- movs r2, 0
- movs r3, 0
- bl SetOamMatrix
- b _0813DE66
-_0813DDEE:
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _0813DE0C
- ldrh r0, [r4, 0x30]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0xFF
- lsls r1, 8
- str r2, [sp]
- movs r2, 0
- movs r3, 0
- bl SetOamMatrix
- b _0813DE1E
-_0813DE0C:
- ldrh r0, [r4, 0x30]
- lsls r0, 24
- lsrs r0, 24
- str r2, [sp]
- adds r1, r2, 0
- movs r2, 0
- movs r3, 0
- bl SetOamMatrix
-_0813DE1E:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- b _0813DE66
-_0813DE26:
- ldrh r0, [r4, 0x36]
- adds r0, 0x1
- strh r0, [r4, 0x36]
- movs r2, 0x36
- ldrsh r0, [r4, r2]
- adds r1, r0, 0
- muls r1, r0
- adds r0, r1, 0
- cmp r0, 0
- bge _0813DE3C
- adds r0, 0x1F
-_0813DE3C:
- asrs r0, 5
- strh r0, [r4, 0x26]
- movs r2, 0x32
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _0813DE56
- movs r1, 0x36
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bge _0813DE52
- adds r0, 0x3
-_0813DE52:
- asrs r0, 2
- b _0813DE64
-_0813DE56:
- movs r2, 0x36
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bge _0813DE60
- adds r0, 0x3
-_0813DE60:
- asrs r0, 2
- negs r0, r0
-_0813DE64:
- strh r0, [r4, 0x24]
-_0813DE66:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_813DD58
-
- thumb_func_start sub_813DE70
-sub_813DE70: @ 813DE70
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- adds r7, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r7, r1]
- cmp r0, 0x6
- bhi _0813DEB0
- lsls r0, 2
- ldr r1, _0813DE90 @ =_0813DE94
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0813DE90: .4byte _0813DE94
- .align 2, 0
-_0813DE94:
- .4byte _0813DEB0
- .4byte _0813E0F8
- .4byte _0813DEF4
- .4byte _0813DF2C
- .4byte _0813DF54
- .4byte _0813E0A8
- .4byte _0813E0D0
-_0813DEB0:
- ldrh r1, [r7, 0x20]
- movs r2, 0x20
- ldrsh r0, [r7, r2]
- cmp r0, 0x28
- ble _0813DEC0
- subs r0, r1, 0x4
- strh r0, [r7, 0x20]
- b _0813E0F8
-_0813DEC0:
- adds r0, r7, 0
- movs r1, 0x1
- bl StartSpriteAnim
- ldr r4, _0813DEF0 @ =gSpriteTemplate_840B084
- adds r0, r4, 0
- movs r1, 0x10
- movs r2, 0x68
- movs r3, 0x64
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r7, 0x3A]
- adds r0, r4, 0
- movs r1, 0xC
- movs r2, 0x6A
- movs r3, 0x65
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r7, 0x3C]
- b _0813DF42
- .align 2, 0
-_0813DEF0: .4byte gSpriteTemplate_840B084
-_0813DEF4:
- adds r0, r7, 0
- movs r1, 0x2
- bl StartSpriteAnim
- ldr r2, _0813DF28 @ =gSprites
- movs r3, 0x3A
- ldrsh r1, [r7, r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x1
- strh r1, [r0, 0x2E]
- movs r0, 0x3C
- ldrsh r1, [r7, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x2
- strh r1, [r0, 0x2E]
- ldrh r0, [r7, 0x2E]
- adds r0, 0x1
- strh r0, [r7, 0x2E]
- b _0813E0F8
- .align 2, 0
-_0813DF28: .4byte gSprites
-_0813DF2C:
- ldrh r1, [r7, 0x22]
- movs r2, 0x22
- ldrsh r0, [r7, r2]
- cmp r0, 0xA0
- ble _0813DF48
- adds r2, r7, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
-_0813DF42:
- movs r0, 0x1
- strh r0, [r7, 0x2E]
- b _0813E0F8
-_0813DF48:
- adds r0, r1, 0x2
- strh r0, [r7, 0x22]
- ldrh r0, [r7, 0x20]
- subs r0, 0x1
- strh r0, [r7, 0x20]
- b _0813E0F8
-_0813DF54:
- ldr r6, _0813E094 @ =gSprites
- movs r3, 0x3A
- ldrsh r1, [r7, r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- ldrh r5, [r0, 0x24]
- ldrh r1, [r0, 0x20]
- adds r5, r1
- lsls r5, 16
- lsrs r5, 16
- ldrh r4, [r0, 0x26]
- ldrh r2, [r0, 0x22]
- adds r4, r2
- lsls r4, 16
- lsrs r4, 16
- bl DestroySprite
- movs r0, 0x8C
- lsls r0, 1
- lsls r5, 16
- asrs r1, r5, 16
- lsls r4, 16
- asrs r2, r4, 16
- movs r3, 0x1
- mov r8, r3
- str r3, [sp]
- movs r3, 0x2
- bl sub_813CE88
- strh r0, [r7, 0x3A]
- movs r0, 0x3A
- ldrsh r1, [r7, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0813E098 @ =gSprites + 0x1C
- adds r0, r1
- ldr r2, _0813E09C @ =sub_813DD58
- mov r10, r2
- str r2, [r0]
- movs r3, 0x3A
- ldrsh r1, [r7, r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- mov r9, r2
- mov r3, r9
- orrs r1, r3
- strb r1, [r0]
- movs r0, 0x3A
- ldrsh r1, [r7, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- mov r1, r8
- strh r1, [r0, 0x30]
- movs r2, 0x3A
- ldrsh r1, [r7, r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- mov r3, r8
- strh r3, [r0, 0x32]
- lsrs r5, 16
- lsrs r4, 16
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_813E580
- movs r0, 0x3C
- ldrsh r1, [r7, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- ldrh r5, [r0, 0x24]
- ldrh r1, [r0, 0x20]
- adds r5, r1
- lsls r5, 16
- lsrs r5, 16
- ldrh r4, [r0, 0x26]
- ldrh r2, [r0, 0x22]
- adds r4, r2
- lsls r4, 16
- lsrs r4, 16
- bl DestroySprite
- ldr r0, _0813E0A0 @ =0x0000011b
- lsls r5, 16
- asrs r1, r5, 16
- lsls r4, 16
- asrs r2, r4, 16
- mov r3, r8
- str r3, [sp]
- movs r3, 0x3
- bl sub_813CE88
- strh r0, [r7, 0x3C]
- movs r0, 0x3C
- ldrsh r1, [r7, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0813E098 @ =gSprites + 0x1C
- adds r0, r1
- mov r2, r10
- str r2, [r0]
- movs r3, 0x3C
- ldrsh r1, [r7, r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- adds r0, 0x3E
- ldrb r1, [r0]
- mov r2, r9
- orrs r1, r2
- strb r1, [r0]
- movs r3, 0x3C
- ldrsh r1, [r7, r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- movs r1, 0x2
- strh r1, [r0, 0x30]
- movs r0, 0x3C
- ldrsh r1, [r7, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- movs r1, 0
- strh r1, [r0, 0x32]
- lsrs r5, 16
- lsrs r4, 16
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_813E580
- movs r0, 0xFF
- lsls r0, 16
- ldr r1, _0813E0A4 @ =0x00007eff
- str r1, [sp]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0x10
- bl BeginNormalPaletteFade
- mov r2, r8
- strh r2, [r7, 0x2E]
- b _0813E0F8
- .align 2, 0
-_0813E094: .4byte gSprites
-_0813E098: .4byte gSprites + 0x1C
-_0813E09C: .4byte sub_813DD58
-_0813E0A0: .4byte 0x0000011b
-_0813E0A4: .4byte 0x00007eff
-_0813E0A8:
- ldr r3, _0813E0CC @ =gSprites
- movs r0, 0x3A
- ldrsh r1, [r7, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- movs r2, 0x3
- strh r2, [r0, 0x2E]
- movs r0, 0x3C
- ldrsh r1, [r7, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- strh r2, [r0, 0x2E]
- b _0813E0F8
- .align 2, 0
-_0813E0CC: .4byte gSprites
-_0813E0D0:
- movs r2, 0x3A
- ldrsh r1, [r7, r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, _0813E108 @ =gSprites
- adds r0, r4
- bl DestroySprite
- movs r3, 0x3C
- ldrsh r1, [r7, r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl DestroySprite
- adds r0, r7, 0
- bl DestroySprite
-_0813E0F8:
- 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
-_0813E108: .4byte gSprites
- thumb_func_end sub_813DE70
-
- thumb_func_start sub_813E10C
-sub_813E10C: @ 813E10C
- push {r4,lr}
- adds r3, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r3, r1]
- cmp r0, 0x4
- bhi _0813E13C
- lsls r0, 2
- ldr r1, _0813E124 @ =_0813E128
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0813E124: .4byte _0813E128
- .align 2, 0
-_0813E128:
- .4byte _0813E13C
- .4byte _0813E178
- .4byte _0813E1A6
- .4byte _0813E1C2
- .4byte _0813E1D6
-_0813E13C:
- ldrh r4, [r3, 0x24]
- movs r2, 0x24
- ldrsh r1, [r3, r2]
- movs r0, 0x38
- negs r0, r0
- cmp r1, r0
- ble _0813E158
- adds r0, r4, 0
- subs r0, 0x8
- strh r0, [r3, 0x24]
- ldrh r0, [r3, 0x26]
- adds r0, 0x6
- strh r0, [r3, 0x26]
- b _0813E208
-_0813E158:
- ldrh r0, [r3, 0x20]
- movs r2, 0
- strh r0, [r3, 0x3A]
- ldrh r1, [r3, 0x22]
- strh r1, [r3, 0x3C]
- adds r0, r4
- strh r0, [r3, 0x20]
- ldrh r0, [r3, 0x26]
- adds r1, r0
- strh r1, [r3, 0x22]
- strh r2, [r3, 0x24]
- strh r2, [r3, 0x26]
- movs r0, 0x1
- strh r0, [r3, 0x2E]
- strh r2, [r3, 0x30]
- b _0813E208
-_0813E178:
- ldrh r1, [r3, 0x30]
- movs r2, 0x1
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- bne _0813E1A0
- movs r0, 0x2
- ands r0, r1
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- beq _0813E19C
- ldr r0, _0813E198 @ =0x0000ffff
- strh r0, [r3, 0x24]
- strh r2, [r3, 0x26]
- b _0813E1A0
- .align 2, 0
-_0813E198: .4byte 0x0000ffff
-_0813E19C:
- strh r0, [r3, 0x24]
- strh r0, [r3, 0x26]
-_0813E1A0:
- adds r0, r1, 0x1
- strh r0, [r3, 0x30]
- b _0813E208
-_0813E1A6:
- adds r2, r3, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldrh r0, [r3, 0x3A]
- movs r1, 0
- strh r0, [r3, 0x20]
- ldrh r0, [r3, 0x3C]
- strh r0, [r3, 0x22]
- strh r1, [r3, 0x24]
- strh r1, [r3, 0x26]
- b _0813E208
-_0813E1C2:
- adds r2, r3, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x5
- negs r1, r1
- ands r1, r0
- strb r1, [r2]
- ldrh r0, [r3, 0x30]
- adds r0, 0x1
- strh r0, [r3, 0x30]
-_0813E1D6:
- ldrh r2, [r3, 0x24]
- movs r0, 0x24
- ldrsh r1, [r3, r0]
- movs r0, 0x38
- negs r0, r0
- cmp r1, r0
- ble _0813E1F0
- subs r0, r2, 0x4
- strh r0, [r3, 0x24]
- ldrh r0, [r3, 0x26]
- adds r0, 0x3
- strh r0, [r3, 0x26]
- b _0813E208
-_0813E1F0:
- ldrh r1, [r3, 0x20]
- adds r0, r2, r1
- movs r1, 0
- strh r0, [r3, 0x20]
- ldrh r0, [r3, 0x26]
- ldrh r2, [r3, 0x22]
- adds r0, r2
- strh r0, [r3, 0x22]
- strh r1, [r3, 0x24]
- strh r1, [r3, 0x26]
- movs r0, 0x1
- strh r0, [r3, 0x2E]
-_0813E208:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_813E10C
-
- thumb_func_start sub_813E210
-sub_813E210: @ 813E210
- push {r4,lr}
- adds r3, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r3, r1]
- cmp r0, 0x4
- bhi _0813E240
- lsls r0, 2
- ldr r1, _0813E228 @ =_0813E22C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0813E228: .4byte _0813E22C
- .align 2, 0
-_0813E22C:
- .4byte _0813E240
- .4byte _0813E278
- .4byte _0813E2A6
- .4byte _0813E2C2
- .4byte _0813E2D6
-_0813E240:
- ldrh r4, [r3, 0x24]
- movs r2, 0x24
- ldrsh r0, [r3, r2]
- cmp r0, 0x37
- bgt _0813E258
- adds r0, r4, 0
- adds r0, 0x8
- strh r0, [r3, 0x24]
- ldrh r0, [r3, 0x26]
- subs r0, 0x6
- strh r0, [r3, 0x26]
- b _0813E304
-_0813E258:
- ldrh r0, [r3, 0x20]
- movs r2, 0
- strh r0, [r3, 0x3A]
- ldrh r1, [r3, 0x22]
- strh r1, [r3, 0x3C]
- adds r0, r4
- strh r0, [r3, 0x20]
- ldrh r0, [r3, 0x26]
- adds r1, r0
- strh r1, [r3, 0x22]
- strh r2, [r3, 0x24]
- strh r2, [r3, 0x26]
- movs r0, 0x1
- strh r0, [r3, 0x2E]
- strh r2, [r3, 0x30]
- b _0813E304
-_0813E278:
- ldrh r1, [r3, 0x30]
- movs r2, 0x1
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- bne _0813E2A0
- movs r0, 0x2
- ands r0, r1
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- beq _0813E29C
- strh r2, [r3, 0x24]
- ldr r0, _0813E298 @ =0x0000ffff
- b _0813E29E
- .align 2, 0
-_0813E298: .4byte 0x0000ffff
-_0813E29C:
- strh r0, [r3, 0x24]
-_0813E29E:
- strh r0, [r3, 0x26]
-_0813E2A0:
- adds r0, r1, 0x1
- strh r0, [r3, 0x30]
- b _0813E304
-_0813E2A6:
- adds r2, r3, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldrh r0, [r3, 0x3A]
- movs r1, 0
- strh r0, [r3, 0x20]
- ldrh r0, [r3, 0x3C]
- strh r0, [r3, 0x22]
- strh r1, [r3, 0x24]
- strh r1, [r3, 0x26]
- b _0813E304
-_0813E2C2:
- adds r2, r3, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x5
- negs r1, r1
- ands r1, r0
- strb r1, [r2]
- ldrh r0, [r3, 0x30]
- adds r0, 0x1
- strh r0, [r3, 0x30]
-_0813E2D6:
- ldrh r1, [r3, 0x24]
- movs r2, 0x24
- ldrsh r0, [r3, r2]
- cmp r0, 0x37
- bgt _0813E2EC
- adds r0, r1, 0x4
- strh r0, [r3, 0x24]
- ldrh r0, [r3, 0x26]
- subs r0, 0x3
- strh r0, [r3, 0x26]
- b _0813E304
-_0813E2EC:
- ldrh r2, [r3, 0x20]
- adds r0, r1, r2
- movs r1, 0
- strh r0, [r3, 0x20]
- ldrh r0, [r3, 0x26]
- ldrh r2, [r3, 0x22]
- adds r0, r2
- strh r0, [r3, 0x22]
- strh r1, [r3, 0x24]
- strh r1, [r3, 0x26]
- movs r0, 0x1
- strh r0, [r3, 0x2E]
-_0813E304:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_813E210
-
- thumb_func_start sub_813E30C
-sub_813E30C: @ 813E30C
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- ldrh r0, [r4, 0x3C]
- adds r0, 0x1
- strh r0, [r4, 0x3C]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x14
- bls _0813E322
- b _0813E4AC
-_0813E322:
- lsls r0, 2
- ldr r1, _0813E32C @ =_0813E330
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0813E32C: .4byte _0813E330
- .align 2, 0
-_0813E330:
- .4byte _0813E4AC
- .4byte _0813E384
- .4byte _0813E41C
- .4byte _0813E4AC
- .4byte _0813E4AC
- .4byte _0813E4AC
- .4byte _0813E4AC
- .4byte _0813E4AC
- .4byte _0813E4AC
- .4byte _0813E4AC
- .4byte _0813E3A8
- .4byte _0813E4AC
- .4byte _0813E4AC
- .4byte _0813E4AC
- .4byte _0813E4AC
- .4byte _0813E4AC
- .4byte _0813E4AC
- .4byte _0813E4AC
- .4byte _0813E4AC
- .4byte _0813E4AC
- .4byte _0813E440
-_0813E384:
- ldrb r1, [r4, 0x1]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r4, 0x1]
- ldrb r1, [r4, 0x3]
- movs r0, 0x3F
- negs r0, r0
- ands r0, r1
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r4, 0x3]
- movs r0, 0xA
- strh r0, [r4, 0x2E]
- movs r0, 0x24
- strh r0, [r4, 0x36]
-_0813E3A8:
- ldrh r1, [r4, 0x20]
- movs r2, 0x20
- ldrsh r0, [r4, r2]
- cmp r0, 0x90
- bgt _0813E3D2
- adds r0, r1, 0x4
- strh r0, [r4, 0x20]
- ldrh r0, [r4, 0x22]
- subs r0, 0x1
- strh r0, [r4, 0x22]
- ldrh r0, [r4, 0x32]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x18
- bl Sin
- negs r0, r0
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x32]
- adds r0, 0x4
- strh r0, [r4, 0x32]
-_0813E3D2:
- ldrh r0, [r4, 0x34]
- ldrh r2, [r4, 0x36]
- subs r0, r2
- strh r0, [r4, 0x34]
- ldrh r1, [r4, 0x3C]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0813E3EE
- lsls r0, r2, 16
- cmp r0, 0
- beq _0813E3EE
- subs r0, r2, 0x1
- strh r0, [r4, 0x36]
-_0813E3EE:
- ldr r2, _0813E418 @ =gSineTable
- ldrh r1, [r4, 0x34]
- lsls r0, r1, 24
- lsrs r0, 23
- adds r0, r2
- ldrh r4, [r0]
- adds r1, 0x40
- lsls r1, 24
- lsrs r1, 23
- adds r1, r2
- ldrh r1, [r1]
- negs r3, r4
- lsls r3, 16
- lsrs r3, 16
- str r1, [sp]
- movs r0, 0x1
- adds r2, r4, 0
- bl SetOamMatrix
- b _0813E4AC
- .align 2, 0
-_0813E418: .4byte gSineTable
-_0813E41C:
- ldrb r1, [r4, 0x1]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r4, 0x1]
- ldrb r1, [r4, 0x3]
- movs r0, 0x3F
- negs r0, r0
- ands r0, r1
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r4, 0x3]
- movs r0, 0x14
- strh r0, [r4, 0x2E]
- movs r0, 0x24
- strh r0, [r4, 0x36]
-_0813E440:
- ldrh r1, [r4, 0x20]
- movs r2, 0x20
- ldrsh r0, [r4, r2]
- cmp r0, 0x60
- bgt _0813E46A
- adds r0, r1, 0x3
- strh r0, [r4, 0x20]
- ldrh r0, [r4, 0x22]
- subs r0, 0x1
- strh r0, [r4, 0x22]
- ldrh r0, [r4, 0x32]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x18
- bl Sin
- negs r0, r0
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x32]
- adds r0, 0x4
- strh r0, [r4, 0x32]
-_0813E46A:
- ldrh r0, [r4, 0x34]
- ldrh r2, [r4, 0x36]
- subs r0, r2
- strh r0, [r4, 0x34]
- ldrh r1, [r4, 0x3C]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0813E486
- lsls r0, r2, 16
- cmp r0, 0
- beq _0813E486
- subs r0, r2, 0x1
- strh r0, [r4, 0x36]
-_0813E486:
- ldr r2, _0813E4B4 @ =gSineTable
- ldrh r1, [r4, 0x34]
- lsls r0, r1, 24
- lsrs r0, 23
- adds r0, r2
- ldrh r4, [r0]
- adds r1, 0x40
- lsls r1, 24
- lsrs r1, 23
- adds r1, r2
- ldrh r1, [r1]
- negs r3, r4
- lsls r3, 16
- lsrs r3, 16
- str r1, [sp]
- movs r0, 0x2
- adds r2, r4, 0
- bl SetOamMatrix
-_0813E4AC:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813E4B4: .4byte gSineTable
- thumb_func_end sub_813E30C
-
- thumb_func_start sub_813E4B8
-sub_813E4B8: @ 813E4B8
- push {r4,r5,lr}
- sub sp, 0x4
- adds r5, r0, 0
- ldrh r0, [r5, 0x3C]
- adds r0, 0x1
- strh r0, [r5, 0x3C]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0813E4DA
- adds r2, r5, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- b _0813E4E4
-_0813E4DA:
- adds r2, r5, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
-_0813E4E4:
- strb r0, [r2]
- ldrh r1, [r5, 0x32]
- movs r2, 0x32
- ldrsh r0, [r5, r2]
- cmp r0, 0x3F
- ble _0813E4F8
- adds r0, r5, 0
- bl DestroySprite
- b _0813E574
-_0813E4F8:
- adds r0, r1, 0x2
- strh r0, [r5, 0x32]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x28
- bl Sin
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- lsls r0, 29
- lsrs r0, 24
- lsls r4, 16
- asrs r4, 16
- adds r1, r4, 0
- bl Cos
- strh r0, [r5, 0x24]
- movs r2, 0x2E
- ldrsh r0, [r5, r2]
- lsls r0, 29
- lsrs r0, 24
- adds r1, r4, 0
- bl Sin
- strh r0, [r5, 0x26]
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _0813E574
- ldrh r0, [r5, 0x34]
- ldrh r2, [r5, 0x30]
- subs r0, r2
- strh r0, [r5, 0x34]
- ldrh r1, [r5, 0x3C]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0813E550
- lsls r0, r2, 16
- cmp r0, 0
- beq _0813E550
- subs r0, r2, 0x1
- strh r0, [r5, 0x30]
-_0813E550:
- ldr r3, _0813E57C @ =gSineTable
- ldrh r1, [r5, 0x34]
- lsls r0, r1, 24
- lsrs r0, 23
- adds r0, r3
- ldrh r2, [r0]
- adds r1, 0x40
- lsls r1, 24
- lsrs r1, 23
- adds r1, r3
- ldrh r1, [r1]
- negs r3, r2
- lsls r3, 16
- lsrs r3, 16
- str r1, [sp]
- movs r0, 0x10
- bl SetOamMatrix
-_0813E574:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0813E57C: .4byte gSineTable
- thumb_func_end sub_813E4B8
-
- thumb_func_start sub_813E580
-sub_813E580: @ 813E580
- push {r4-r7,lr}
- movs r4, 0
- ldr r7, _0813E5D8 @ =gSprites
- lsls r6, r0, 16
- lsls r5, r1, 16
-_0813E58A:
- ldr r0, _0813E5DC @ =gSpriteTemplate_840B0B0
- asrs r1, r6, 16
- asrs r2, r5, 16
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r7
- ldrb r1, [r2, 0x1]
- movs r3, 0x4
- negs r3, r3
- adds r0, r3, 0
- ands r1, r0
- movs r0, 0x1
- orrs r1, r0
- strb r1, [r2, 0x1]
- ldrb r1, [r2, 0x3]
- subs r3, 0x3B
- adds r0, r3, 0
- ands r1, r0
- movs r0, 0x20
- orrs r1, r0
- strb r1, [r2, 0x3]
- strh r4, [r2, 0x2E]
- movs r0, 0x20
- strh r0, [r2, 0x30]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x7
- bls _0813E58A
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0813E5D8: .4byte gSprites
-_0813E5DC: .4byte gSpriteTemplate_840B0B0
- thumb_func_end sub_813E580
-
- thumb_func_start sub_813E5E0
-sub_813E5E0: @ 813E5E0
- push {r4,lr}
- adds r3, r0, 0
- ldr r0, _0813E5F4 @ =gUnknown_0203931A
- ldrh r0, [r0]
- cmp r0, 0
- beq _0813E5F8
- adds r0, r3, 0
- bl DestroySprite
- b _0813E6B2
- .align 2, 0
-_0813E5F4: .4byte gUnknown_0203931A
-_0813E5F8:
- ldr r2, _0813E6B8 @ =gSprites
- movs r0, 0x2E
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3E
- ldrb r0, [r0]
- movs r1, 0x3E
- adds r1, r3
- mov r12, r1
- movs r1, 0x4
- ands r1, r0
- mov r4, r12
- ldrb r2, [r4]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r4]
- ldrh r1, [r3, 0x3C]
- movs r2, 0x3C
- ldrsh r0, [r3, r2]
- cmp r0, 0xB
- bgt _0813E630
- adds r0, r1, 0x1
- strh r0, [r3, 0x3C]
-_0813E630:
- ldrh r0, [r3, 0x3A]
- adds r0, 0x4
- strh r0, [r3, 0x3A]
- ldr r4, _0813E6BC @ =gSineTable
- ldrh r0, [r3, 0x34]
- adds r0, 0x40
- lsls r0, 24
- lsrs r0, 23
- adds r0, r4
- movs r2, 0
- ldrsh r1, [r0, r2]
- movs r2, 0x3A
- ldrsh r0, [r3, r2]
- muls r0, r1
- cmp r0, 0
- bge _0813E652
- adds r0, 0xFF
-_0813E652:
- asrs r0, 8
- ldrh r1, [r3, 0x36]
- adds r0, r1
- strh r0, [r3, 0x20]
- movs r2, 0x34
- ldrsh r0, [r3, r2]
- lsls r0, 24
- lsrs r0, 23
- adds r0, r4
- movs r2, 0
- ldrsh r1, [r0, r2]
- movs r2, 0x3A
- ldrsh r0, [r3, r2]
- muls r0, r1
- cmp r0, 0
- bge _0813E674
- adds r0, 0xFF
-_0813E674:
- asrs r0, 8
- ldrh r1, [r3, 0x38]
- adds r2, r0, r1
- strh r2, [r3, 0x22]
- movs r1, 0x30
- ldrsh r0, [r3, r1]
- lsls r0, 24
- lsrs r0, 23
- adds r0, r4
- movs r4, 0
- ldrsh r1, [r0, r4]
- movs r4, 0x3C
- ldrsh r0, [r3, r4]
- muls r0, r1
- cmp r0, 0
- bge _0813E696
- adds r0, 0xFF
-_0813E696:
- asrs r0, 8
- strh r0, [r3, 0x26]
- ldrh r0, [r3, 0x30]
- adds r0, 0x10
- strh r0, [r3, 0x30]
- lsls r0, r2, 16
- asrs r0, 16
- movs r2, 0x32
- ldrsh r1, [r3, r2]
- cmp r0, r1
- ble _0813E6B2
- adds r0, r3, 0
- bl DestroySprite
-_0813E6B2:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813E6B8: .4byte gSprites
-_0813E6BC: .4byte gSineTable
- thumb_func_end sub_813E5E0
-
- thumb_func_start sub_813E6C0
-sub_813E6C0: @ 813E6C0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- adds r4, r0, 0
- ldr r0, _0813E6E0 @ =gUnknown_0203931A
- ldrh r0, [r0]
- cmp r0, 0
- beq _0813E6E4
- adds r0, r4, 0
- bl DestroySprite
- b _0813E7A8
- .align 2, 0
-_0813E6E0: .4byte gUnknown_0203931A
-_0813E6E4:
- ldrh r0, [r4, 0x3C]
- adds r0, 0x1
- strh r0, [r4, 0x3C]
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r3, _0813E7B8 @ =gSprites
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, r0, r3
- movs r1, 0x2E
- ldrsh r0, [r2, r1]
- cmp r0, 0x1
- bne _0813E7A8
- ldrh r1, [r4, 0x3C]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- bne _0813E7A8
- ldrh r0, [r2, 0x20]
- ldrh r7, [r4, 0x30]
- adds r0, r7
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp]
- ldrh r0, [r2, 0x22]
- ldrh r1, [r4, 0x32]
- adds r0, r1
- lsls r0, 16
- lsrs r6, r0, 16
- movs r5, 0
- mov r8, r3
- ldr r2, [sp]
- lsls r2, 16
- mov r10, r2
- lsls r7, r6, 16
- mov r9, r7
-_0813E73A:
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r8
- adds r0, 0x43
- ldrb r3, [r0]
- subs r3, 0x1
- lsls r3, 24
- lsrs r3, 24
- ldr r0, _0813E7BC @ =gSpriteTemplate_840B0DC
- mov r2, r10
- asrs r1, r2, 16
- mov r7, r9
- asrs r2, r7, 16
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _0813E79E
- lsls r3, r0, 4
- adds r3, r0
- lsls r3, 2
- add r3, r8
- ldrh r0, [r4, 0x2E]
- strh r0, [r3, 0x2E]
- ldrh r1, [r4, 0x3C]
- lsls r1, 16
- asrs r1, 18
- movs r0, 0x7
- ands r1, r0
- lsls r1, 5
- lsls r0, r5, 2
- adds r0, r5
- lsls r2, r0, 4
- adds r0, r2
- adds r1, r0
- strh r1, [r3, 0x30]
- ldrh r0, [r4, 0x34]
- strh r0, [r3, 0x32]
- movs r0, 0x68
- strh r0, [r3, 0x34]
- mov r0, sp
- ldrh r0, [r0]
- strh r0, [r3, 0x36]
- strh r6, [r3, 0x38]
- movs r1, 0
- strh r1, [r3, 0x3A]
-_0813E79E:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x2
- bls _0813E73A
-_0813E7A8:
- 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
-_0813E7B8: .4byte gSprites
-_0813E7BC: .4byte gSpriteTemplate_840B0DC
- thumb_func_end sub_813E6C0
-
- thumb_func_start sub_813E7C0
-sub_813E7C0: @ 813E7C0
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0813E7F8 @ =gSpriteTemplate_840B0F4
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x40
- beq _0813E7F2
- ldr r1, _0813E7FC @ =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- movs r2, 0
- strh r4, [r0, 0x2E]
- ldr r1, _0813E800 @ =0x0000fff4
- strh r1, [r0, 0x30]
- strh r2, [r0, 0x32]
- movs r1, 0x88
- strh r1, [r0, 0x34]
-_0813E7F2:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813E7F8: .4byte gSpriteTemplate_840B0F4
-_0813E7FC: .4byte gSprites
-_0813E800: .4byte 0x0000fff4
- thumb_func_end sub_813E7C0
-
- thumb_func_start sub_813E804
-sub_813E804: @ 813E804
- push {r4-r7,lr}
- adds r3, r0, 0
- ldr r0, _0813E818 @ =gUnknown_0203931A
- ldrh r0, [r0]
- cmp r0, 0
- beq _0813E81C
- adds r0, r3, 0
- bl DestroySprite
- b _0813E928
- .align 2, 0
-_0813E818: .4byte gUnknown_0203931A
-_0813E81C:
- ldr r6, _0813E904 @ =gSprites
- movs r0, 0x2E
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- adds r0, 0x3E
- ldrb r0, [r0]
- movs r1, 0x3E
- adds r1, r3
- mov r12, r1
- movs r1, 0x4
- ands r1, r0
- mov r7, r12
- ldrb r2, [r7]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r7]
- ldrh r0, [r3, 0x3C]
- adds r0, 0x1
- strh r0, [r3, 0x3C]
- ldrh r1, [r3, 0x34]
- movs r2, 0x34
- ldrsh r0, [r3, r2]
- cmp r0, 0x27
- bgt _0813E85A
- adds r0, r1, 0x2
- strh r0, [r3, 0x34]
-_0813E85A:
- movs r7, 0x2E
- ldrsh r1, [r3, r7]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- ldrh r1, [r0, 0x24]
- ldrh r0, [r0, 0x20]
- adds r2, r1, r0
- ldr r4, _0813E908 @ =gSineTable
- ldrh r5, [r3, 0x30]
- adds r0, r5, 0
- adds r0, 0x40
- lsls r0, 24
- lsrs r0, 23
- adds r0, r4
- movs r7, 0
- ldrsh r1, [r0, r7]
- movs r7, 0x34
- ldrsh r0, [r3, r7]
- muls r0, r1
- cmp r0, 0
- bge _0813E88A
- adds r0, 0xFF
-_0813E88A:
- asrs r0, 8
- adds r0, r2, r0
- strh r0, [r3, 0x20]
- movs r0, 0x2E
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- ldrh r1, [r0, 0x26]
- ldrh r0, [r0, 0x22]
- adds r2, r1, r0
- movs r1, 0x30
- ldrsh r0, [r3, r1]
- lsls r0, 24
- lsrs r0, 23
- adds r0, r4
- movs r7, 0
- ldrsh r1, [r0, r7]
- movs r7, 0x34
- ldrsh r0, [r3, r7]
- muls r0, r1
- cmp r0, 0
- bge _0813E8BE
- ldr r1, _0813E90C @ =0x000001ff
- adds r0, r1
-_0813E8BE:
- asrs r0, 9
- adds r0, r2, r0
- strh r0, [r3, 0x22]
- adds r1, r5, 0x2
- strh r1, [r3, 0x30]
- movs r2, 0x32
- ldrsh r0, [r3, r2]
- lsls r0, 24
- lsrs r0, 23
- adds r0, r4
- movs r7, 0
- ldrsh r0, [r0, r7]
- cmp r0, 0
- bge _0813E8DC
- adds r0, 0x1F
-_0813E8DC:
- asrs r0, 5
- strh r0, [r3, 0x26]
- ldrh r0, [r3, 0x32]
- adds r0, 0x8
- strh r0, [r3, 0x32]
- movs r0, 0xFF
- ands r1, r0
- cmp r1, 0x7F
- bgt _0813E910
- movs r0, 0x2E
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- adds r0, 0x43
- ldrb r0, [r0]
- subs r0, 0x1
- b _0813E922
- .align 2, 0
-_0813E904: .4byte gSprites
-_0813E908: .4byte gSineTable
-_0813E90C: .4byte 0x000001ff
-_0813E910:
- movs r2, 0x2E
- ldrsh r1, [r3, r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- adds r0, 0x43
- ldrb r0, [r0]
- adds r0, 0x1
-_0813E922:
- adds r1, r3, 0
- adds r1, 0x43
- strb r0, [r1]
-_0813E928:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_813E804
-
- thumb_func_start sub_813E930
-sub_813E930: @ 813E930
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- movs r4, 0
- ldr r7, _0813E978 @ =gSprites
- lsls r0, r6, 4
- adds r0, r6
- lsls r0, 2
- adds r5, r0, r7
-_0813E942:
- movs r0, 0x20
- ldrsh r1, [r5, r0]
- movs r0, 0x22
- ldrsh r2, [r5, r0]
- ldr r0, _0813E97C @ =gSpriteTemplate_840B124
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x40
- beq _0813E968
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- strh r6, [r0, 0x2E]
- lsls r1, r4, 5
- strh r1, [r0, 0x30]
-_0813E968:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x7
- bls _0813E942
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0813E978: .4byte gSprites
-_0813E97C: .4byte gSpriteTemplate_840B124
- thumb_func_end sub_813E930
-
- thumb_func_start GetCurrentTrainerHillMapId
-GetCurrentTrainerHillMapId: @ 813E980
- push {r4,r5,lr}
- adds r3, r0, 0
- ldr r0, _0813E994 @ =gUnknown_0203931A
- ldrh r0, [r0]
- cmp r0, 0
- beq _0813E998
- adds r0, r3, 0
- bl DestroySprite
- b _0813EA50
- .align 2, 0
-_0813E994: .4byte gUnknown_0203931A
-_0813E998:
- ldr r2, _0813EA58 @ =gSprites
- movs r0, 0x2E
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3E
- ldrb r0, [r0]
- movs r1, 0x3E
- adds r1, r3
- mov r12, r1
- movs r1, 0x4
- ands r1, r0
- mov r5, r12
- ldrb r2, [r5]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r5]
- ldrh r0, [r3, 0x3C]
- adds r0, 0x1
- strh r0, [r3, 0x3C]
- ldrh r0, [r3, 0x3A]
- adds r4, r0, 0
- adds r4, 0x8
- strh r4, [r3, 0x3A]
- ldr r2, _0813EA5C @ =gSineTable
- ldrh r0, [r3, 0x34]
- adds r0, 0x40
- lsls r0, 24
- lsrs r0, 23
- adds r0, r2
- movs r5, 0
- ldrsh r1, [r0, r5]
- movs r5, 0x3A
- ldrsh r0, [r3, r5]
- muls r0, r1
- cmp r0, 0
- bge _0813E9EC
- adds r0, 0xFF
-_0813E9EC:
- asrs r0, 8
- ldrh r1, [r3, 0x36]
- adds r0, r1
- strh r0, [r3, 0x20]
- movs r5, 0x34
- ldrsh r0, [r3, r5]
- lsls r0, 24
- lsrs r0, 23
- adds r0, r2
- movs r2, 0
- ldrsh r1, [r0, r2]
- movs r5, 0x3A
- ldrsh r0, [r3, r5]
- muls r0, r1
- cmp r0, 0
- bge _0813EA0E
- adds r0, 0xFF
-_0813EA0E:
- asrs r0, 8
- ldrh r1, [r3, 0x38]
- adds r0, r1
- strh r0, [r3, 0x22]
- movs r2, 0x3A
- ldrsh r0, [r3, r2]
- cmp r0, 0
- bge _0813EA20
- adds r0, 0xF
-_0813EA20:
- asrs r0, 4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x9
- bls _0813EA2C
- movs r0, 0x9
-_0813EA2C:
- adds r1, r0, 0
- adds r1, 0x12
- movs r0, 0x1F
- ands r1, r0
- lsls r1, 1
- ldrb r2, [r3, 0x3]
- movs r0, 0x3F
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3, 0x3]
- lsls r0, r4, 16
- asrs r0, 16
- cmp r0, 0xA0
- ble _0813EA50
- adds r0, r3, 0
- bl DestroySprite
-_0813EA50:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0813EA58: .4byte gSprites
-_0813EA5C: .4byte gSineTable
- thumb_func_end GetCurrentTrainerHillMapId
-
- thumb_func_start sub_813EA60
-sub_813EA60: @ 813EA60
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r5, r0, 0
- ldr r0, _0813EA7C @ =gUnknown_0203931A
- ldrh r0, [r0]
- cmp r0, 0
- beq _0813EA80
- adds r0, r5, 0
- bl DestroySprite
- b _0813EB32
- .align 2, 0
-_0813EA7C: .4byte gUnknown_0203931A
-_0813EA80:
- ldrh r0, [r5, 0x3C]
- adds r0, 0x1
- strh r0, [r5, 0x3C]
- adds r2, r5, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _0813EB40 @ =gSprites
- mov r9, r0
- movs r4, 0x2E
- ldrsh r1, [r5, r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- mov r1, r9
- adds r3, r0, r1
- movs r4, 0x2E
- ldrsh r1, [r3, r4]
- cmp r1, 0x1
- bne _0813EB32
- ldrh r0, [r5, 0x3C]
- ands r1, r0
- lsls r0, r1, 16
- asrs r6, r0, 16
- cmp r6, 0
- bne _0813EB32
- ldrh r1, [r3, 0x20]
- ldrh r0, [r5, 0x30]
- adds r1, r0
- lsls r1, 16
- ldrh r2, [r3, 0x22]
- ldrh r4, [r5, 0x32]
- adds r2, r4
- lsls r2, 16
- ldr r0, _0813EB44 @ =gSpriteTemplate_840B150
- lsrs r4, r1, 16
- mov r8, r4
- asrs r1, 16
- lsrs r7, r2, 16
- asrs r2, 16
- adds r3, 0x43
- ldrb r3, [r3]
- adds r3, 0x1
- lsls r3, 24
- lsrs r3, 24
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _0813EB32
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- add r4, r9
- ldrb r0, [r4, 0x1]
- movs r1, 0x3
- orrs r0, r1
- strb r0, [r4, 0x1]
- ldrb r1, [r4, 0x3]
- movs r0, 0x3F
- negs r0, r0
- ands r0, r1
- movs r1, 0x24
- orrs r0, r1
- strb r0, [r4, 0x3]
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0x1
- movs r3, 0x3
- bl CalcCenterToCornerVec
- ldrh r0, [r5, 0x2E]
- strh r0, [r4, 0x2E]
- ldr r2, _0813EB48 @ =gUnknown_0840B168
- ldrh r0, [r5, 0x3C]
- lsls r0, 16
- asrs r0, 17
- movs r1, 0x7
- ands r0, r1
- adds r0, r2
- ldrb r0, [r0]
- strh r0, [r4, 0x34]
- mov r0, r8
- strh r0, [r4, 0x36]
- strh r7, [r4, 0x38]
- strh r6, [r4, 0x3A]
-_0813EB32:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0813EB40: .4byte gSprites
-_0813EB44: .4byte gSpriteTemplate_840B150
-_0813EB48: .4byte gUnknown_0840B168
- thumb_func_end sub_813EA60
-
- thumb_func_start sub_813EB4C
-sub_813EB4C: @ 813EB4C
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0813EBB0 @ =gSpriteTemplate_840B170
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x40
- beq _0813EB80
- ldr r1, _0813EBB4 @ =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- movs r1, 0
- strh r4, [r0, 0x2E]
- strh r1, [r0, 0x30]
- movs r1, 0x8
- strh r1, [r0, 0x32]
- movs r1, 0x18
- strh r1, [r0, 0x34]
-_0813EB80:
- movs r4, 0
- ldr r5, _0813EBB8 @ =gUnknown_0840B188
-_0813EB84:
- adds r0, r4, 0
- adds r0, 0x12
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r4, 1
- adds r1, r5
- ldrh r1, [r1]
- str r1, [sp]
- movs r2, 0
- movs r3, 0
- bl SetOamMatrix
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x9
- bls _0813EB84
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0813EBB0: .4byte gSpriteTemplate_840B170
-_0813EBB4: .4byte gSprites
-_0813EBB8: .4byte gUnknown_0840B188
- thumb_func_end sub_813EB4C
-
- thumb_func_start sub_813EBBC
-sub_813EBBC: @ 813EBBC
- push {r4,lr}
- adds r3, r0, 0
- ldr r0, _0813EBD0 @ =gUnknown_0203931A
- ldrh r0, [r0]
- cmp r0, 0
- beq _0813EBD4
- adds r0, r3, 0
- bl DestroySprite
- b _0813EC80
- .align 2, 0
-_0813EBD0: .4byte gUnknown_0203931A
-_0813EBD4:
- ldr r2, _0813EC88 @ =gSprites
- movs r0, 0x2E
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3E
- ldrb r0, [r0]
- movs r1, 0x3E
- adds r1, r3
- mov r12, r1
- movs r1, 0x4
- ands r1, r0
- mov r4, r12
- ldrb r2, [r4]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r4]
- ldrh r0, [r3, 0x3C]
- adds r0, 0x1
- strh r0, [r3, 0x3C]
- ldrh r0, [r3, 0x3A]
- adds r0, 0x8
- strh r0, [r3, 0x3A]
- ldr r2, _0813EC8C @ =gSineTable
- ldrh r0, [r3, 0x34]
- adds r0, 0x40
- lsls r0, 24
- lsrs r0, 23
- adds r0, r2
- movs r4, 0
- ldrsh r1, [r0, r4]
- movs r4, 0x3A
- ldrsh r0, [r3, r4]
- muls r0, r1
- cmp r0, 0
- bge _0813EC26
- adds r0, 0xFF
-_0813EC26:
- asrs r0, 8
- ldrh r1, [r3, 0x36]
- adds r0, r1
- strh r0, [r3, 0x20]
- movs r4, 0x34
- ldrsh r0, [r3, r4]
- lsls r0, 24
- lsrs r0, 23
- adds r0, r2
- movs r4, 0
- ldrsh r1, [r0, r4]
- movs r4, 0x3A
- ldrsh r0, [r3, r4]
- muls r0, r1
- cmp r0, 0
- bge _0813EC48
- adds r0, 0xFF
-_0813EC48:
- asrs r0, 8
- ldrh r4, [r3, 0x38]
- adds r1, r0, r4
- strh r1, [r3, 0x22]
- movs r4, 0x30
- ldrsh r0, [r3, r4]
- lsls r0, 24
- lsrs r0, 23
- adds r0, r2
- movs r2, 0
- ldrsh r0, [r0, r2]
- cmp r0, 0
- bge _0813EC64
- adds r0, 0x3F
-_0813EC64:
- asrs r0, 6
- strh r0, [r3, 0x26]
- ldrh r0, [r3, 0x30]
- adds r0, 0x10
- strh r0, [r3, 0x30]
- lsls r0, r1, 16
- asrs r0, 16
- movs r4, 0x32
- ldrsh r1, [r3, r4]
- cmp r0, r1
- bge _0813EC80
- adds r0, r3, 0
- bl DestroySprite
-_0813EC80:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813EC88: .4byte gSprites
-_0813EC8C: .4byte gSineTable
- thumb_func_end sub_813EBBC
-
- thumb_func_start sub_813EC90
-sub_813EC90: @ 813EC90
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- adds r5, r0, 0
- ldr r0, _0813ECAC @ =gUnknown_0203931A
- ldrh r0, [r0]
- cmp r0, 0
- beq _0813ECB0
- adds r0, r5, 0
- bl DestroySprite
- b _0813EDA0
- .align 2, 0
-_0813ECAC: .4byte gUnknown_0203931A
-_0813ECB0:
- ldrh r0, [r5, 0x3C]
- adds r0, 0x1
- strh r0, [r5, 0x3C]
- adds r2, r5, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _0813EDB0 @ =gSprites
- mov r9, r0
- movs r2, 0x2E
- ldrsh r1, [r5, r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- mov r4, r9
- adds r3, r0, r4
- movs r0, 0x2E
- ldrsh r1, [r3, r0]
- cmp r1, 0x1
- bne _0813ED74
- ldrh r0, [r5, 0x3C]
- ands r1, r0
- lsls r0, r1, 16
- asrs r6, r0, 16
- cmp r6, 0
- bne _0813ED66
- ldrh r1, [r3, 0x20]
- ldrh r2, [r5, 0x30]
- adds r1, r2
- lsls r1, 16
- ldrh r2, [r3, 0x22]
- ldrh r4, [r5, 0x32]
- adds r2, r4
- lsls r2, 16
- ldr r0, _0813EDB4 @ =gSpriteTemplate_840B1B0
- lsrs r4, r1, 16
- mov r8, r4
- asrs r1, 16
- lsrs r7, r2, 16
- asrs r2, 16
- adds r3, 0x43
- ldrb r3, [r3]
- adds r3, 0x1
- lsls r3, 24
- lsrs r3, 24
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _0813ED66
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- add r4, r9
- ldrb r0, [r4, 0x1]
- movs r1, 0x3
- orrs r0, r1
- strb r0, [r4, 0x1]
- ldrb r1, [r4, 0x3]
- movs r0, 0x3F
- negs r0, r0
- ands r0, r1
- movs r1, 0x22
- orrs r0, r1
- strb r0, [r4, 0x3]
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0x1
- movs r3, 0x3
- bl CalcCenterToCornerVec
- ldrh r0, [r5, 0x2E]
- strh r0, [r4, 0x2E]
- ldrh r0, [r5, 0x3C]
- lsls r0, 16
- asrs r0, 18
- movs r1, 0x7
- ands r0, r1
- lsls r0, 5
- strh r0, [r4, 0x30]
- ldrh r0, [r5, 0x34]
- strh r0, [r4, 0x32]
- movs r0, 0xE8
- strh r0, [r4, 0x34]
- mov r0, r8
- strh r0, [r4, 0x36]
- strh r7, [r4, 0x38]
- strh r6, [r4, 0x3A]
-_0813ED66:
- ldrh r1, [r5, 0x3A]
- movs r2, 0x3A
- ldrsh r0, [r5, r2]
- cmp r0, 0x6F
- bgt _0813ED74
- adds r0, r1, 0x4
- strh r0, [r5, 0x3A]
-_0813ED74:
- ldr r1, _0813EDB8 @ =gSineTable
- ldrh r0, [r5, 0x3A]
- lsls r0, 24
- lsrs r0, 23
- adds r0, r1
- movs r4, 0
- ldrsh r0, [r0, r4]
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- movs r2, 0x80
- lsls r2, 1
- adds r1, r2, 0
- subs r1, r0
- lsls r1, 16
- lsrs r1, 16
- str r1, [sp]
- movs r0, 0x11
- movs r2, 0
- movs r3, 0
- bl SetOamMatrix
-_0813EDA0:
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0813EDB0: .4byte gSprites
-_0813EDB4: .4byte gSpriteTemplate_840B1B0
-_0813EDB8: .4byte gSineTable
- thumb_func_end sub_813EC90
-
- thumb_func_start sub_813EDBC
-sub_813EDBC: @ 813EDBC
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0813EDF4 @ =gSpriteTemplate_840B1C8
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x40
- beq _0813EDEE
- ldr r1, _0813EDF8 @ =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- movs r1, 0
- strh r4, [r0, 0x2E]
- strh r1, [r0, 0x30]
- movs r1, 0xC
- strh r1, [r0, 0x32]
- movs r1, 0x18
- strh r1, [r0, 0x34]
-_0813EDEE:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813EDF4: .4byte gSpriteTemplate_840B1C8
-_0813EDF8: .4byte gSprites
- thumb_func_end sub_813EDBC
-
- thumb_func_start sub_813EDFC
-sub_813EDFC: @ 813EDFC
- push {r4,r5,lr}
- sub sp, 0x4
- adds r5, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0
- beq _0813EE12
- adds r4, r5, 0
- adds r4, 0x3E
- cmp r0, 0x1
- beq _0813EE4A
-_0813EE12:
- adds r4, r5, 0
- adds r4, 0x3E
- ldrb r1, [r4]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r4]
- ldrb r0, [r5, 0x1]
- movs r1, 0x3
- orrs r0, r1
- strb r0, [r5, 0x1]
- ldrb r1, [r5, 0x3]
- movs r0, 0x3F
- negs r0, r0
- ands r0, r1
- movs r1, 0x24
- orrs r0, r1
- strb r0, [r5, 0x3]
- adds r0, r5, 0
- movs r1, 0
- movs r2, 0x3
- movs r3, 0x3
- bl CalcCenterToCornerVec
- movs r0, 0
- strh r0, [r5, 0x30]
- movs r0, 0x1
- strh r0, [r5, 0x2E]
-_0813EE4A:
- ldrh r0, [r5, 0x3C]
- adds r0, 0x1
- strh r0, [r5, 0x3C]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0813EE62
- ldrb r0, [r4]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r4]
- b _0813EE7A
-_0813EE62:
- ldrb r0, [r4]
- movs r1, 0x5
- negs r1, r1
- ands r1, r0
- strb r1, [r4]
- ldrh r1, [r5, 0x30]
- movs r2, 0x30
- ldrsh r0, [r5, r2]
- cmp r0, 0x3F
- bgt _0813EE7A
- adds r0, r1, 0x1
- strh r0, [r5, 0x30]
-_0813EE7A:
- ldr r1, _0813EEB0 @ =gSineTable
- ldrh r0, [r5, 0x30]
- lsls r0, 24
- lsrs r0, 23
- adds r0, r1
- movs r1, 0
- ldrsh r0, [r0, r1]
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- movs r2, 0x80
- lsls r2, 1
- adds r1, r2, 0
- subs r1, r0
- lsls r1, 16
- lsrs r1, 16
- str r1, [sp]
- movs r0, 0x12
- movs r2, 0
- movs r3, 0
- bl SetOamMatrix
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0813EEB0: .4byte gSineTable
- thumb_func_end sub_813EDFC
-
- thumb_func_start FieldInitRegionMap
-FieldInitRegionMap: @ 813EEB4
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0
- bl SetVBlankCallback
- ldr r2, _0813EED8 @ =0x02000000
- ldr r0, _0813EEDC @ =0x00000888
- adds r1, r2, r0
- movs r0, 0
- strh r0, [r1]
- str r4, [r2]
- ldr r0, _0813EEE0 @ =CB2_FieldInitRegionMap
- bl SetMainCallback2
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813EED8: .4byte 0x02000000
-_0813EEDC: .4byte 0x00000888
-_0813EEE0: .4byte CB2_FieldInitRegionMap
- thumb_func_end FieldInitRegionMap
-
- thumb_func_start CB2_FieldInitRegionMap
-CB2_FieldInitRegionMap: @ 813EEE4
- push {r4,lr}
- sub sp, 0x4
- movs r0, 0x80
- lsls r0, 19
- movs r1, 0
- strh r1, [r0]
- adds r0, 0x10
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- ldr r0, _0813EF98 @ =0x02000008
- movs r1, 0
- bl sub_80FA8EC
- movs r0, 0
- movs r1, 0
- bl sub_80FBCF0
- movs r0, 0x1
- movs r1, 0x1
- bl sub_80FBB3C
- ldr r4, _0813EF9C @ =gWindowConfig_81E709C
- adds r0, r4, 0
- bl SetUpWindowConfig
- adds r0, r4, 0
- bl InitMenuWindow
- bl MenuZeroFillScreen
- ldr r1, _0813EFA0 @ =REG_BG0CNT
- movs r2, 0xF8
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- movs r0, 0x15
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x3
- bl MenuDrawTextWindow
- ldr r0, _0813EFA4 @ =gOtherText_Hoenn
- movs r1, 0x16
- movs r2, 0x1
- movs r3, 0x38
- bl sub_8072BD8
- movs r0, 0x10
- movs r1, 0x10
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuDrawTextWindow
- bl sub_813F0C8
- ldr r0, _0813EFA8 @ =CB2_FieldRegionMap
- bl SetMainCallback2
- ldr r0, _0813EFAC @ =VBlankCB_FieldRegionMap
- bl SetVBlankCallback
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813EF98: .4byte 0x02000008
-_0813EF9C: .4byte gWindowConfig_81E709C
-_0813EFA0: .4byte REG_BG0CNT
-_0813EFA4: .4byte gOtherText_Hoenn
-_0813EFA8: .4byte CB2_FieldRegionMap
-_0813EFAC: .4byte VBlankCB_FieldRegionMap
- thumb_func_end CB2_FieldInitRegionMap
-
- thumb_func_start VBlankCB_FieldRegionMap
-VBlankCB_FieldRegionMap: @ 813EFB0
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- pop {r0}
- bx r0
- thumb_func_end VBlankCB_FieldRegionMap
-
- thumb_func_start CB2_FieldRegionMap
-CB2_FieldRegionMap: @ 813EFC4
- push {lr}
- bl sub_813EFDC
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- pop {r0}
- bx r0
- thumb_func_end CB2_FieldRegionMap
-
- thumb_func_start sub_813EFDC
-sub_813EFDC: @ 813EFDC
- push {lr}
- sub sp, 0x4
- ldr r1, _0813EFF8 @ =0x02000000
- ldr r2, _0813EFFC @ =0x00000888
- adds r0, r1, r2
- ldrh r0, [r0]
- adds r2, r1, 0
- cmp r0, 0x4
- bhi _0813F0B8
- lsls r0, 2
- ldr r1, _0813F000 @ =_0813F004
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0813EFF8: .4byte 0x02000000
-_0813EFFC: .4byte 0x00000888
-_0813F000: .4byte _0813F004
- .align 2, 0
-_0813F004:
- .4byte _0813F018
- .4byte _0813F030
- .4byte _0813F04C
- .4byte _0813F078
- .4byte _0813F0A0
-_0813F018:
- movs r1, 0x80
- lsls r1, 19
- ldr r3, _0813F028 @ =0x00001541
- adds r0, r3, 0
- strh r0, [r1]
- ldr r0, _0813F02C @ =0x00000888
- adds r1, r2, r0
- b _0813F08E
- .align 2, 0
-_0813F028: .4byte 0x00001541
-_0813F02C: .4byte 0x00000888
-_0813F030:
- ldr r0, _0813F044 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0813F0B8
- ldr r3, _0813F048 @ =0x00000888
- adds r1, r2, r3
- b _0813F08E
- .align 2, 0
-_0813F044: .4byte gPaletteFade
-_0813F048: .4byte 0x00000888
-_0813F04C:
- bl sub_80FAB60
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bne _0813F05E
- bl sub_813F0C8
- b _0813F0B8
-_0813F05E:
- cmp r0, 0x3
- blt _0813F0B8
- cmp r0, 0x5
- bgt _0813F0B8
- ldr r1, _0813F070 @ =0x02000000
- ldr r0, _0813F074 @ =0x00000888
- adds r1, r0
- b _0813F08E
- .align 2, 0
-_0813F070: .4byte 0x02000000
-_0813F074: .4byte 0x00000888
-_0813F078:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _0813F098 @ =0x02000000
- ldr r2, _0813F09C @ =0x00000888
- adds r1, r2
-_0813F08E:
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- b _0813F0B8
- .align 2, 0
-_0813F098: .4byte 0x02000000
-_0813F09C: .4byte 0x00000888
-_0813F0A0:
- ldr r0, _0813F0C0 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0813F0B8
- bl sub_80FAB10
- ldr r0, _0813F0C4 @ =0x02000000
- ldr r0, [r0]
- bl SetMainCallback2
-_0813F0B8:
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_0813F0C0: .4byte gPaletteFade
-_0813F0C4: .4byte 0x02000000
- thumb_func_end sub_813EFDC
-
- thumb_func_start sub_813F0C8
-sub_813F0C8: @ 813F0C8
- push {lr}
- movs r0, 0x11
- movs r1, 0x11
- movs r2, 0x1C
- movs r3, 0x12
- bl MenuFillWindowRectWithBlankTile
- ldr r1, _0813F0F0 @ =0x02000000
- ldrb r0, [r1, 0x1E]
- cmp r0, 0
- beq _0813F0EA
- adds r0, r1, 0
- adds r0, 0x8
- movs r1, 0x11
- movs r2, 0x11
- bl MenuPrint
-_0813F0EA:
- pop {r0}
- bx r0
- .align 2, 0
-_0813F0F0: .4byte 0x02000000
- thumb_func_end sub_813F0C8
-
- thumb_func_start unref_sub_813F0F4
-unref_sub_813F0F4: @ 813F0F4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x1C
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x10]
- ldr r0, _0813F2AC @ =gUnknown_0202F7C8
- ldrb r3, [r0]
- ldr r0, _0813F2B0 @ =gUnknown_030042C4
- movs r1, 0
- strh r1, [r0]
- ldr r0, _0813F2B4 @ =gUnknown_03004240
- strh r1, [r0]
- ldr r1, _0813F2B8 @ =REG_WININ
- ldr r2, _0813F2BC @ =0x00003f3f
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r4, _0813F2C0 @ =0x00003f3d
- adds r0, r4, 0
- strh r0, [r1]
- movs r2, 0x80
- lsls r2, 19
- ldrh r0, [r2]
- movs r4, 0x80
- lsls r4, 8
- adds r1, r4, 0
- orrs r0, r1
- strh r0, [r2]
- ldr r1, _0813F2C4 @ =REG_BLDCNT
- ldr r2, _0813F2C8 @ =0x00003f42
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- movs r4, 0x80
- lsls r4, 5
- adds r0, r4, 0
- strh r0, [r1]
- ldr r2, _0813F2CC @ =REG_BG1CNT
- ldrb r1, [r2]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- ldrb r1, [r2, 0x1]
- movs r0, 0x3F
- ands r0, r1
- strb r0, [r2, 0x1]
- ldrb r0, [r2, 0x1]
- movs r1, 0x20
- orrs r0, r1
- strb r0, [r2, 0x1]
- ldrb r1, [r2]
- movs r0, 0xD
- negs r0, r0
- mov r9, r0
- ands r0, r1
- movs r1, 0x4
- mov r8, r1
- mov r4, r8
- orrs r0, r4
- strb r0, [r2]
- ldr r0, _0813F2D0 @ =gUnknown_03004340
- adds r3, r0
- ldrb r0, [r3]
- ldr r1, _0813F2D4 @ =gSprites
- mov r10, r1
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- add r4, r10
- ldrb r7, [r4, 0x6]
- ldrh r6, [r4, 0x38]
- lsls r6, 24
- lsrs r6, 24
- ldr r0, _0813F2D8 @ =SpriteCallbackDummy
- bl object_new_hidden_with_callback
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x14]
- ldr r0, _0813F2D8 @ =SpriteCallbackDummy
- bl object_new_hidden_with_callback
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x18]
- ldrb r1, [r4, 0x5]
- mov r0, r9
- ands r0, r1
- mov r2, r8
- orrs r0, r2
- strb r0, [r4, 0x5]
- lsls r5, r7, 4
- adds r5, r7
- lsls r5, 2
- add r5, r10
- ldrb r1, [r5, 0x5]
- mov r0, r9
- ands r0, r1
- orrs r0, r2
- strb r0, [r5, 0x5]
- lsls r1, r6, 4
- adds r1, r6
- lsls r1, 2
- add r1, r10
- ldrb r2, [r1, 0x5]
- mov r0, r9
- ands r0, r2
- mov r2, r8
- orrs r0, r2
- strb r0, [r1, 0x5]
- ldr r0, [sp, 0x14]
- lsls r6, r0, 4
- adds r6, r0
- lsls r6, 2
- mov r1, r10
- adds r7, r6, r1
- adds r0, r7, 0
- adds r1, r4, 0
- movs r2, 0x44
- bl memcpy
- ldr r2, [sp, 0x18]
- lsls r4, r2, 4
- adds r4, r2
- lsls r4, 2
- adds r0, r4, 0
- add r0, r10
- mov r8, r0
- adds r1, r5, 0
- movs r2, 0x44
- bl memcpy
- ldrb r1, [r7, 0x1]
- mov r0, r9
- ands r0, r1
- movs r1, 0x8
- orrs r0, r1
- strb r0, [r7, 0x1]
- mov r2, r8
- ldrb r0, [r2, 0x1]
- mov r2, r9
- ands r2, r0
- orrs r2, r1
- mov r0, r8
- strb r2, [r0, 0x1]
- movs r1, 0x1C
- add r10, r1
- add r6, r10
- ldr r2, _0813F2D8 @ =SpriteCallbackDummy
- str r2, [r6]
- add r4, r10
- str r2, [r4]
- mov r0, sp
- bl sub_8078914
- ldr r1, [sp, 0x4]
- movs r0, 0
- str r0, [sp, 0xC]
- ldr r2, _0813F2DC @ =0x040000d4
- add r0, sp, 0xC
- str r0, [r2]
- str r1, [r2, 0x4]
- ldr r0, _0813F2E0 @ =0x85000400
- str r0, [r2, 0x8]
- ldr r0, [r2, 0x8]
- ldr r0, _0813F2E4 @ =gUnknown_08D2EE48
- bl LZDecompressVram
- ldr r0, _0813F2E8 @ =gUnknown_08D2EDFC
- ldr r1, [sp]
- bl LZDecompressVram
- ldr r0, _0813F2EC @ =gUnknown_08D2E150
- mov r1, sp
- ldrb r1, [r1, 0x8]
- lsls r1, 4
- movs r2, 0x20
- bl LoadCompressedPalette
- ldr r1, _0813F2F0 @ =gUnknown_030042C0
- ldrh r0, [r7, 0x20]
- negs r0, r0
- adds r0, 0x20
- strh r0, [r1]
- ldr r1, _0813F2F4 @ =gUnknown_030041B4
- ldrh r0, [r7, 0x22]
- negs r0, r0
- subs r0, 0x20
- strh r0, [r1]
- ldr r1, _0813F2F8 @ =gTasks
- ldr r4, [sp, 0x10]
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0xA0
- lsls r1, 2
- strh r1, [r0, 0xA]
- mov r1, sp
- ldrh r1, [r1, 0x14]
- strh r1, [r0, 0x8]
- mov r2, sp
- ldrh r2, [r2, 0x18]
- strh r2, [r0, 0xC]
- ldr r1, _0813F2FC @ =sub_813F300
- str r1, [r0]
- add sp, 0x1C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0813F2AC: .4byte gUnknown_0202F7C8
-_0813F2B0: .4byte gUnknown_030042C4
-_0813F2B4: .4byte gUnknown_03004240
-_0813F2B8: .4byte REG_WININ
-_0813F2BC: .4byte 0x00003f3f
-_0813F2C0: .4byte 0x00003f3d
-_0813F2C4: .4byte REG_BLDCNT
-_0813F2C8: .4byte 0x00003f42
-_0813F2CC: .4byte REG_BG1CNT
-_0813F2D0: .4byte gUnknown_03004340
-_0813F2D4: .4byte gSprites
-_0813F2D8: .4byte SpriteCallbackDummy
-_0813F2DC: .4byte 0x040000d4
-_0813F2E0: .4byte 0x85000400
-_0813F2E4: .4byte gUnknown_08D2EE48
-_0813F2E8: .4byte gUnknown_08D2EDFC
-_0813F2EC: .4byte gUnknown_08D2E150
-_0813F2F0: .4byte gUnknown_030042C0
-_0813F2F4: .4byte gUnknown_030041B4
-_0813F2F8: .4byte gTasks
-_0813F2FC: .4byte sub_813F300
- thumb_func_end unref_sub_813F0F4
-
- thumb_func_start sub_813F300
-sub_813F300: @ 813F300
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x10
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r0, _0813F34C @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- mov r9, r0
- ldr r1, _0813F350 @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r4, r0, r1
- ldrh r1, [r4, 0xA]
- ldrh r0, [r4, 0x22]
- adds r1, r0
- movs r3, 0
- strh r1, [r4, 0x22]
- ldr r2, _0813F354 @ =gUnknown_030041B4
- lsls r0, r1, 16
- lsrs r0, 24
- ldrh r5, [r2]
- adds r0, r5
- strh r0, [r2]
- movs r0, 0xFF
- ands r1, r0
- strh r1, [r4, 0x22]
- movs r1, 0x26
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _0813F394
- cmp r0, 0x1
- bgt _0813F358
- cmp r0, 0
- beq _0813F35E
- b _0813F4B2
- .align 2, 0
-_0813F34C: .4byte gUnknown_0202F7C8
-_0813F350: .4byte gTasks
-_0813F354: .4byte gUnknown_030041B4
-_0813F358:
- cmp r0, 0x2
- beq _0813F3AC
- b _0813F4B2
-_0813F35E:
- ldrh r0, [r4, 0x1E]
- adds r1, r0, 0x1
- strh r1, [r4, 0x1E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- bgt _0813F36E
- b _0813F4B2
-_0813F36E:
- strh r3, [r4, 0x1E]
- ldrh r1, [r4, 0x20]
- adds r1, 0x1
- strh r1, [r4, 0x20]
- ldr r2, _0813F390 @ =REG_BLDALPHA
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r1, r0
- strh r1, [r2]
- movs r2, 0x20
- ldrsh r0, [r4, r2]
- cmp r0, 0x8
- beq _0813F38C
- b _0813F4B2
-_0813F38C:
- b _0813F3A4
- .align 2, 0
-_0813F390: .4byte REG_BLDALPHA
-_0813F394:
- ldrh r0, [r4, 0x1C]
- adds r0, 0x1
- strh r0, [r4, 0x1C]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1E
- beq _0813F3A4
- b _0813F4B2
-_0813F3A4:
- ldrh r0, [r4, 0x26]
- adds r0, 0x1
- strh r0, [r4, 0x26]
- b _0813F4B2
-_0813F3AC:
- ldrh r0, [r4, 0x1E]
- adds r1, r0, 0x1
- strh r1, [r4, 0x1E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _0813F4B2
- strh r3, [r4, 0x1E]
- ldrh r1, [r4, 0x20]
- subs r1, 0x1
- strh r1, [r4, 0x20]
- ldr r6, _0813F4C0 @ =REG_BLDALPHA
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r1, r0
- strh r1, [r6]
- movs r3, 0x20
- ldrsh r5, [r4, r3]
- cmp r5, 0
- bne _0813F4B2
- movs r0, 0
- bl sub_8076464
- ldr r0, _0813F4C4 @ =gUnknown_030042C4
- strh r5, [r0]
- ldr r0, _0813F4C8 @ =gUnknown_03004240
- strh r5, [r0]
- ldr r0, _0813F4CC @ =REG_WININ
- ldr r2, _0813F4D0 @ =0x00003f3f
- adds r1, r2, 0
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _0813F406
- ldr r2, _0813F4D4 @ =REG_BG1CNT
- ldrb r1, [r2]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
-_0813F406:
- movs r2, 0x80
- lsls r2, 19
- ldrh r0, [r2]
- movs r3, 0x80
- lsls r3, 8
- adds r1, r3, 0
- eors r0, r1
- strh r0, [r2]
- ldr r0, _0813F4D8 @ =REG_BLDCNT
- strh r5, [r0]
- strh r5, [r6]
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0813F4DC @ =gSprites
- mov r8, r1
- add r0, r8
- bl DestroySprite
- movs r2, 0xC
- ldrsh r1, [r4, r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r8
- bl DestroySprite
- mov r0, sp
- bl sub_8078914
- ldr r2, [sp, 0x4]
- str r5, [sp, 0xC]
- ldr r1, _0813F4E0 @ =0x040000d4
- add r0, sp, 0xC
- str r0, [r1]
- str r2, [r1, 0x4]
- ldr r0, _0813F4E4 @ =0x85000200
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- ldr r2, _0813F4D4 @ =REG_BG1CNT
- ldrb r1, [r2, 0x1]
- movs r0, 0x21
- negs r0, r0
- ands r0, r1
- strb r0, [r2, 0x1]
- ldr r0, _0813F4E8 @ =gUnknown_03004340
- add r0, r9
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- add r1, r8
- ldrb r6, [r1, 0x6]
- ldrh r4, [r1, 0x38]
- lsls r4, 24
- lsrs r4, 24
- ldrb r3, [r1, 0x5]
- movs r2, 0xD
- negs r2, r2
- adds r0, r2, 0
- ands r0, r3
- movs r5, 0x4
- orrs r0, r5
- strb r0, [r1, 0x5]
- lsls r1, r6, 4
- adds r1, r6
- lsls r1, 2
- add r1, r8
- ldrb r3, [r1, 0x5]
- adds r0, r2, 0
- ands r0, r3
- orrs r0, r5
- strb r0, [r1, 0x5]
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- add r0, r8
- ldrb r1, [r0, 0x5]
- ands r2, r1
- orrs r2, r5
- strb r2, [r0, 0x5]
- adds r0, r7, 0
- bl move_anim_task_del
-_0813F4B2:
- add sp, 0x10
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0813F4C0: .4byte REG_BLDALPHA
-_0813F4C4: .4byte gUnknown_030042C4
-_0813F4C8: .4byte gUnknown_03004240
-_0813F4CC: .4byte REG_WININ
-_0813F4D0: .4byte 0x00003f3f
-_0813F4D4: .4byte REG_BG1CNT
-_0813F4D8: .4byte REG_BLDCNT
-_0813F4DC: .4byte gSprites
-_0813F4E0: .4byte 0x040000d4
-_0813F4E4: .4byte 0x85000200
-_0813F4E8: .4byte gUnknown_03004340
- thumb_func_end sub_813F300
-
- thumb_func_start sub_813F4EC
-sub_813F4EC: @ 813F4EC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
- ldr r1, _0813F5D0 @ =gUnknown_03004340
- ldr r0, _0813F5D4 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- ldr r7, _0813F5D8 @ =gSprites
- lsls r6, r0, 4
- adds r6, r0
- lsls r6, 2
- adds r6, r7
- ldrb r0, [r6, 0x6]
- str r0, [sp, 0x4]
- ldrh r4, [r6, 0x38]
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _0813F5DC @ =0x0000d709
- bl AllocSpritePalette
- mov r8, r0
- mov r1, r8
- lsls r1, 24
- lsrs r1, 24
- mov r8, r1
- ldr r0, _0813F5E0 @ =0x0000d70a
- bl AllocSpritePalette
- mov r9, r0
- mov r2, r9
- lsls r2, 24
- lsrs r2, 24
- mov r9, r2
- ldrb r0, [r6, 0x5]
- lsrs r0, 4
- lsls r0, 4
- movs r1, 0x80
- lsls r1, 1
- adds r3, r1, 0
- orrs r0, r3
- lsls r5, r4, 4
- adds r5, r4
- lsls r5, 2
- adds r5, r7
- ldrb r4, [r5, 0x5]
- lsrs r4, 4
- lsls r4, 4
- orrs r4, r3
- lsls r0, 1
- ldr r2, _0813F5E4 @ =gPlttBufferUnfaded
- mov r10, r2
- add r0, r10
- mov r1, r8
- lsls r1, 4
- mov r8, r1
- adds r1, r3, r1
- movs r2, 0x20
- str r3, [sp, 0x8]
- bl LoadPalette
- lsls r4, 1
- add r4, r10
- mov r2, r9
- lsls r2, 4
- mov r9, r2
- ldr r3, [sp, 0x8]
- add r3, r9
- adds r0, r4, 0
- adds r1, r3, 0
- movs r2, 0x20
- bl LoadPalette
- ldrb r1, [r6, 0x5]
- movs r2, 0xF
- adds r0, r2, 0
- ands r0, r1
- mov r3, r8
- orrs r0, r3
- strb r0, [r6, 0x5]
- ldr r0, [sp, 0x4]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r7
- ldrb r3, [r1, 0x5]
- adds r0, r2, 0
- ands r0, r3
- mov r3, r8
- orrs r0, r3
- strb r0, [r1, 0x5]
- ldrb r0, [r5, 0x5]
- ands r2, r0
- mov r0, r9
- orrs r2, r0
- strb r2, [r5, 0x5]
- ldr r0, [sp]
- bl move_anim_task_del
- add sp, 0xC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0813F5D0: .4byte gUnknown_03004340
-_0813F5D4: .4byte gUnknown_0202F7C8
-_0813F5D8: .4byte gSprites
-_0813F5DC: .4byte 0x0000d709
-_0813F5E0: .4byte 0x0000d70a
-_0813F5E4: .4byte gPlttBufferUnfaded
- thumb_func_end sub_813F4EC
-
- thumb_func_start sub_813F5E8
-sub_813F5E8: @ 813F5E8
- push {r4-r6,lr}
- mov r6, r10
- mov r5, r9
- mov r4, r8
- push {r4-r6}
- mov r8, r0
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r1, _0813F684 @ =gUnknown_03004340
- ldr r0, _0813F688 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- ldr r1, _0813F68C @ =gSprites
- mov r9, r1
- lsls r5, r0, 4
- adds r5, r0
- lsls r5, 2
- add r5, r9
- ldrb r0, [r5, 0x6]
- mov r10, r0
- ldrh r6, [r5, 0x38]
- lsls r6, 24
- lsrs r6, 24
- ldr r0, _0813F690 @ =0x0000d709
- bl FreeSpritePaletteByTag
- ldr r0, _0813F694 @ =0x0000d70a
- bl FreeSpritePaletteByTag
- ldr r0, _0813F698 @ =0x0000d6ff
- bl IndexOfSpritePaletteTag
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _0813F69C @ =0x0000d704
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsls r4, 4
- ldrb r2, [r5, 0x5]
- movs r3, 0xF
- adds r1, r3, 0
- ands r1, r2
- orrs r1, r4
- strb r1, [r5, 0x5]
- mov r1, r10
- lsls r2, r1, 4
- add r2, r10
- lsls r2, 2
- add r2, r9
- ldrb r5, [r2, 0x5]
- adds r1, r3, 0
- ands r1, r5
- orrs r1, r4
- strb r1, [r2, 0x5]
- lsls r1, r6, 4
- adds r1, r6
- lsls r1, 2
- add r1, r9
- lsrs r0, 20
- ldrb r2, [r1, 0x5]
- ands r3, r2
- orrs r3, r0
- strb r3, [r1, 0x5]
- mov r0, r8
- bl move_anim_task_del
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0813F684: .4byte gUnknown_03004340
-_0813F688: .4byte gUnknown_0202F7C8
-_0813F68C: .4byte gSprites
-_0813F690: .4byte 0x0000d709
-_0813F694: .4byte 0x0000d70a
-_0813F698: .4byte 0x0000d6ff
-_0813F69C: .4byte 0x0000d704
- thumb_func_end sub_813F5E8
-
- thumb_func_start sub_813F6A0
-sub_813F6A0: @ 813F6A0
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0813F6C0 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r2, _0813F6C4 @ =gUnknown_03004B00
- ldrh r0, [r2]
- strh r0, [r1, 0x1C]
- ldrh r0, [r2, 0x2]
- strh r0, [r1, 0x1E]
- ldr r0, _0813F6C8 @ =sub_813F6CC
- str r0, [r1]
- bx lr
- .align 2, 0
-_0813F6C0: .4byte gTasks
-_0813F6C4: .4byte gUnknown_03004B00
-_0813F6C8: .4byte sub_813F6CC
- thumb_func_end sub_813F6A0
-
- thumb_func_start sub_813F6CC
-sub_813F6CC: @ 813F6CC
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _0813F718 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- movs r6, 0
- adds r1, r0, 0x1
- strh r1, [r4, 0x8]
- lsls r0, 16
- asrs r0, 16
- movs r2, 0x1E
- ldrsh r1, [r4, r2]
- cmp r0, r1
- blt _0813F78C
- strh r6, [r4, 0x8]
- ldr r0, _0813F71C @ =0x0000d709
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r2, r0, 24
- movs r3, 0x1C
- ldrsh r0, [r4, r3]
- movs r1, 0x2
- cmp r0, 0
- bne _0813F70A
- movs r1, 0x6
-_0813F70A:
- movs r3, 0xA
- ldrsh r0, [r4, r3]
- cmp r0, 0
- beq _0813F720
- cmp r0, 0x1
- beq _0813F75C
- b _0813F78C
- .align 2, 0
-_0813F718: .4byte gTasks
-_0813F71C: .4byte 0x0000d709
-_0813F720:
- ldrh r0, [r4, 0xC]
- adds r0, 0x2
- strh r0, [r4, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x10
- ble _0813F732
- movs r0, 0x10
- strh r0, [r4, 0xC]
-_0813F732:
- lsls r0, r2, 4
- movs r2, 0x80
- lsls r2, 1
- adds r0, r2
- orrs r0, r1
- ldrb r2, [r4, 0xC]
- ldr r3, _0813F758 @ =0x00007f74
- movs r1, 0x1
- bl BlendPalette
- movs r3, 0xC
- ldrsh r0, [r4, r3]
- cmp r0, 0x10
- bne _0813F78C
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- b _0813F78C
- .align 2, 0
-_0813F758: .4byte 0x00007f74
-_0813F75C:
- ldrh r0, [r4, 0xC]
- subs r0, 0x2
- strh r0, [r4, 0xC]
- lsls r0, 16
- cmp r0, 0
- bge _0813F76A
- strh r6, [r4, 0xC]
-_0813F76A:
- lsls r0, r2, 4
- movs r2, 0x80
- lsls r2, 1
- adds r0, r2
- orrs r0, r1
- ldrb r2, [r4, 0xC]
- ldr r3, _0813F794 @ =0x00007f74
- movs r1, 0x1
- bl BlendPalette
- movs r3, 0xC
- ldrsh r0, [r4, r3]
- cmp r0, 0
- bne _0813F78C
- adds r0, r5, 0
- bl move_anim_task_del
-_0813F78C:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0813F794: .4byte 0x00007f74
- thumb_func_end sub_813F6CC
-
- thumb_func_start sub_813F798
-sub_813F798: @ 813F798
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _0813F7C4 @ =gUnknown_02024BE0
- ldr r0, _0813F7C8 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- adds r0, r1
- ldrb r5, [r0]
- ldr r1, _0813F7CC @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _0813F7E6
- cmp r0, 0x1
- bgt _0813F7D0
- cmp r0, 0
- beq _0813F7D6
- b _0813F838
- .align 2, 0
-_0813F7C4: .4byte gUnknown_02024BE0
-_0813F7C8: .4byte gUnknown_0202F7C8
-_0813F7CC: .4byte gTasks
-_0813F7D0:
- cmp r0, 0x2
- beq _0813F818
- b _0813F838
-_0813F7D6:
- adds r0, r5, 0
- movs r1, 0
- bl sub_8078E70
- movs r0, 0x80
- lsls r0, 1
- strh r0, [r4, 0x1C]
- b _0813F80A
-_0813F7E6:
- ldrh r0, [r4, 0x1C]
- adds r0, 0x30
- strh r0, [r4, 0x1C]
- movs r0, 0x1C
- ldrsh r2, [r4, r0]
- adds r0, r5, 0
- adds r1, r2, 0
- movs r3, 0
- bl obj_id_set_rotscale
- adds r0, r5, 0
- bl sub_8079A64
- movs r0, 0x1C
- ldrsh r1, [r4, r0]
- ldr r0, _0813F814 @ =0x000002cf
- cmp r1, r0
- ble _0813F838
-_0813F80A:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _0813F838
- .align 2, 0
-_0813F814: .4byte 0x000002cf
-_0813F818:
- adds r0, r5, 0
- bl sub_8078F40
- ldr r1, _0813F840 @ =gSprites
- lsls r0, r5, 4
- adds r0, r5
- lsls r0, 2
- adds r0, r1
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- adds r0, r6, 0
- bl move_anim_task_del
-_0813F838:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0813F840: .4byte gSprites
- thumb_func_end sub_813F798
-
- thumb_func_start sub_813F844
-sub_813F844: @ 813F844
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0xC
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _0813F87C @ =gUnknown_02024BE0
- ldr r4, _0813F880 @ =gUnknown_0202F7C8
- ldrb r0, [r4]
- adds r1, r0, r1
- ldrb r1, [r1]
- mov r9, r1
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _0813F88C
- ldr r1, _0813F884 @ =gUnknown_02024A6A
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0813F888 @ =gPlayerParty
- b _0813F89C
- .align 2, 0
-_0813F87C: .4byte gUnknown_02024BE0
-_0813F880: .4byte gUnknown_0202F7C8
-_0813F884: .4byte gUnknown_02024A6A
-_0813F888: .4byte gPlayerParty
-_0813F88C:
- ldr r1, _0813F8CC @ =gUnknown_02024A6A
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0813F8D0 @ =gEnemyParty
-_0813F89C:
- adds r0, r1
- movs r1, 0x26
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- bl ball_number_to_ball_processing_index
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r2, _0813F8D4 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r6, r0, r2
- movs r0, 0x8
- ldrsh r7, [r6, r0]
- cmp r7, 0
- beq _0813F8D8
- cmp r7, 0x1
- beq _0813F958
- b _0813F982
- .align 2, 0
-_0813F8CC: .4byte gUnknown_02024A6A
-_0813F8D0: .4byte gEnemyParty
-_0813F8D4: .4byte gTasks
-_0813F8D8:
- ldr r5, _0813F950 @ =gUnknown_0202F7C8
- ldrb r0, [r5]
- movs r1, 0
- bl sub_8077ABC
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldrb r0, [r5]
- movs r1, 0x1
- bl sub_8077ABC
- adds r1, r0, 0
- lsls r1, 24
- ldr r2, _0813F954 @ =gSprites
- mov r3, r9
- lsls r0, r3, 4
- add r0, r9
- lsls r0, 2
- adds r0, r2
- ldrb r2, [r0, 0x5]
- lsls r2, 28
- lsrs r2, 30
- adds r0, 0x43
- ldrb r3, [r0]
- movs r0, 0x80
- lsls r0, 22
- adds r1, r0
- lsrs r1, 24
- mov r0, r8
- str r0, [sp]
- adds r0, r4, 0
- bl sub_814086C
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r6, 0x1C]
- str r7, [sp]
- str r7, [sp, 0x4]
- str r7, [sp, 0x8]
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl sub_80791A8
- adds r2, r0, 0
- ldrb r1, [r5]
- movs r0, 0
- mov r3, r8
- bl sub_8141314
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r6, 0x1E]
- ldrh r0, [r6, 0x8]
- adds r0, 0x1
- strh r0, [r6, 0x8]
- b _0813F982
- .align 2, 0
-_0813F950: .4byte gUnknown_0202F7C8
-_0813F954: .4byte gSprites
-_0813F958:
- movs r1, 0x1C
- ldrsh r0, [r6, r1]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldrb r0, [r1, 0x4]
- cmp r0, 0
- bne _0813F982
- movs r3, 0x1E
- ldrsh r0, [r6, r3]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldrb r0, [r1, 0x4]
- cmp r0, 0
- bne _0813F982
- adds r0, r5, 0
- bl move_anim_task_del
-_0813F982:
- add sp, 0xC
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_813F844
-
- thumb_func_start sub_813F990
-sub_813F990: @ 813F990
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _0813F9B4 @ =gUnknown_02024C04
- ldrh r0, [r0]
- bl ball_number_to_ball_processing_index
- lsls r0, 24
- lsrs r0, 24
- bl sub_80478DC
- adds r0, r4, 0
- bl move_anim_task_del
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813F9B4: .4byte gUnknown_02024C04
- thumb_func_end sub_813F990
-
- thumb_func_start sub_813F9B8
-sub_813F9B8: @ 813F9B8
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _0813F9DC @ =gUnknown_02024C04
- ldrh r0, [r0]
- bl ball_number_to_ball_processing_index
- lsls r0, 24
- lsrs r0, 24
- bl sub_804794C
- adds r0, r4, 0
- bl move_anim_task_del
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813F9DC: .4byte gUnknown_02024C04
- thumb_func_end sub_813F9B8
-
- thumb_func_start sub_813F9E0
-sub_813F9E0: @ 813F9E0
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _0813F9F4 @ =0x02017840
- ldrb r0, [r0, 0x8]
- cmp r0, 0x5
- bne _0813FA00
- ldr r1, _0813F9F8 @ =gUnknown_03004B00
- ldr r0, _0813F9FC @ =0x0000ffff
- b _0813FA04
- .align 2, 0
-_0813F9F4: .4byte 0x02017840
-_0813F9F8: .4byte gUnknown_03004B00
-_0813F9FC: .4byte 0x0000ffff
-_0813FA00:
- ldr r1, _0813FA10 @ =gUnknown_03004B00
- movs r0, 0
-_0813FA04:
- strh r0, [r1, 0xE]
- adds r0, r2, 0
- bl move_anim_task_del
- pop {r0}
- bx r0
- .align 2, 0
-_0813FA10: .4byte gUnknown_03004B00
- thumb_func_end sub_813F9E0
-
- thumb_func_start ball_number_to_ball_processing_index
-ball_number_to_ball_processing_index: @ 813FA14
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- subs r0, 0x1
- cmp r0, 0xB
- bhi _0813FA8C
- lsls r0, 2
- ldr r1, _0813FA2C @ =_0813FA30
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0813FA2C: .4byte _0813FA30
- .align 2, 0
-_0813FA30:
- .4byte _0813FA60
- .4byte _0813FA64
- .4byte _0813FA68
- .4byte _0813FA8C
- .4byte _0813FA6C
- .4byte _0813FA70
- .4byte _0813FA74
- .4byte _0813FA78
- .4byte _0813FA7C
- .4byte _0813FA80
- .4byte _0813FA84
- .4byte _0813FA88
-_0813FA60:
- movs r0, 0x4
- b _0813FA8E
-_0813FA64:
- movs r0, 0x3
- b _0813FA8E
-_0813FA68:
- movs r0, 0x1
- b _0813FA8E
-_0813FA6C:
- movs r0, 0x2
- b _0813FA8E
-_0813FA70:
- movs r0, 0x5
- b _0813FA8E
-_0813FA74:
- movs r0, 0x6
- b _0813FA8E
-_0813FA78:
- movs r0, 0x7
- b _0813FA8E
-_0813FA7C:
- movs r0, 0x8
- b _0813FA8E
-_0813FA80:
- movs r0, 0x9
- b _0813FA8E
-_0813FA84:
- movs r0, 0xA
- b _0813FA8E
-_0813FA88:
- movs r0, 0xB
- b _0813FA8E
-_0813FA8C:
- movs r0, 0
-_0813FA8E:
- pop {r1}
- bx r1
- thumb_func_end ball_number_to_ball_processing_index
-
- thumb_func_start sub_813FA94
-sub_813FA94: @ 813FA94
- push {r4-r6,lr}
- mov r6, r10
- mov r5, r9
- mov r4, r8
- push {r4-r6}
- mov r10, r0
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- ldr r0, _0813FB58 @ =gUnknown_02024C04
- ldrh r0, [r0]
- bl ball_number_to_ball_processing_index
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- ldr r1, _0813FB5C @ =gSpriteTemplate_820AAB4
- adds r0, r1
- movs r1, 0x20
- movs r2, 0x50
- movs r3, 0x1D
- bl CreateSprite
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r1, _0813FB60 @ =gSprites
- mov r9, r1
- lsls r4, r5, 4
- adds r4, r5
- lsls r4, 2
- adds r6, r4, r1
- movs r0, 0x22
- strh r0, [r6, 0x2E]
- ldr r2, _0813FB64 @ =gUnknown_0202F7C9
- mov r8, r2
- ldrb r0, [r2]
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r6, 0x30]
- mov r1, r8
- ldrb r0, [r1]
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- subs r0, 0x10
- strh r0, [r6, 0x32]
- mov r0, r9
- adds r0, 0x1C
- adds r4, r0
- ldr r0, _0813FB68 @ =sub_813FD90
- str r0, [r4]
- ldr r3, _0813FB6C @ =0x02017840
- ldr r1, _0813FB70 @ =gUnknown_02024BE0
- mov r2, r8
- ldrb r0, [r2]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r9
- adds r0, 0x3E
- ldrb r1, [r0]
- lsls r1, 29
- lsrs r1, 31
- lsls r1, 1
- ldrb r2, [r3, 0x9]
- movs r0, 0x3
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3, 0x9]
- ldr r1, _0813FB74 @ =gTasks
- mov r2, r10
- lsls r0, r2, 2
- add r0, r10
- lsls r0, 3
- adds r0, r1
- strh r5, [r0, 0x8]
- ldr r1, _0813FB78 @ =sub_813FB7C
- str r1, [r0]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0813FB58: .4byte gUnknown_02024C04
-_0813FB5C: .4byte gSpriteTemplate_820AAB4
-_0813FB60: .4byte gSprites
-_0813FB64: .4byte gUnknown_0202F7C9
-_0813FB68: .4byte sub_813FD90
-_0813FB6C: .4byte 0x02017840
-_0813FB70: .4byte gUnknown_02024BE0
-_0813FB74: .4byte gTasks
-_0813FB78: .4byte sub_813FB7C
- thumb_func_end sub_813FA94
-
- thumb_func_start sub_813FB7C
-sub_813FB7C: @ 813FB7C
- push {lr}
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r1, _0813FBAC @ =gTasks
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r0, r1
- ldrb r1, [r0, 0x8]
- ldr r2, _0813FBB0 @ =gSprites
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x2E]
- ldr r0, _0813FBB4 @ =0x0000ffff
- cmp r1, r0
- bne _0813FBA6
- adds r0, r3, 0
- bl move_anim_task_del
-_0813FBA6:
- pop {r0}
- bx r0
- .align 2, 0
-_0813FBAC: .4byte gTasks
-_0813FBB0: .4byte gSprites
-_0813FBB4: .4byte 0x0000ffff
- thumb_func_end sub_813FB7C
-
- thumb_func_start sub_813FBB8
-sub_813FBB8: @ 813FBB8
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r0, _0813FBD8 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x80
- lsls r0, 2
- ands r0, r1
- cmp r0, 0
- beq _0813FBDC
- movs r6, 0x20
- movs r5, 0xB
- b _0813FBE0
- .align 2, 0
-_0813FBD8: .4byte gUnknown_020239F8
-_0813FBDC:
- movs r6, 0x17
- movs r5, 0x5
-_0813FBE0:
- ldr r0, _0813FC9C @ =gUnknown_02024C04
- ldrh r0, [r0]
- bl ball_number_to_ball_processing_index
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x1
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r0, 24
- bl sub_8079E90
- adds r3, r0, 0
- adds r3, 0x1
- lsls r3, 24
- lsrs r3, 24
- lsls r0, r4, 1
- adds r0, r4
- lsls r0, 3
- ldr r1, _0813FCA0 @ =gSpriteTemplate_820AAB4
- adds r0, r1
- adds r1, r6, 0
- adds r1, 0x20
- movs r2, 0x50
- orrs r5, r2
- adds r2, r5, 0
- bl CreateSprite
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r0, _0813FCA4 @ =gSprites
- mov r9, r0
- lsls r4, r5, 4
- adds r4, r5
- lsls r4, 2
- adds r6, r4, r0
- movs r0, 0x22
- strh r0, [r6, 0x2E]
- ldr r1, _0813FCA8 @ =gUnknown_0202F7C9
- mov r8, r1
- ldrb r0, [r1]
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r6, 0x30]
- mov r1, r8
- ldrb r0, [r1]
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- subs r0, 0x10
- strh r0, [r6, 0x32]
- mov r0, r9
- adds r0, 0x1C
- adds r4, r0
- ldr r0, _0813FCAC @ =SpriteCallbackDummy
- str r0, [r4]
- movs r0, 0
- bl battle_get_side_with_given_state
- ldr r1, _0813FCB0 @ =gUnknown_02024BE0
- lsls r0, 24
- lsrs r0, 24
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r9
- movs r1, 0x1
- bl StartSpriteAnim
- ldr r1, _0813FCB4 @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- strh r5, [r0, 0x8]
- ldr r1, _0813FCB8 @ =sub_813FCBC
- str r1, [r0]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0813FC9C: .4byte gUnknown_02024C04
-_0813FCA0: .4byte gSpriteTemplate_820AAB4
-_0813FCA4: .4byte gSprites
-_0813FCA8: .4byte gUnknown_0202F7C9
-_0813FCAC: .4byte SpriteCallbackDummy
-_0813FCB0: .4byte gUnknown_02024BE0
-_0813FCB4: .4byte gTasks
-_0813FCB8: .4byte sub_813FCBC
- thumb_func_end sub_813FBB8
-
- thumb_func_start sub_813FCBC
-sub_813FCBC: @ 813FCBC
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r6, _0813FD1C @ =gSprites
- movs r0, 0
- bl battle_get_side_with_given_state
- ldr r1, _0813FD20 @ =gUnknown_02024BE0
- lsls r0, 24
- lsrs r0, 24
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- adds r0, 0x2B
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _0813FD16
- movs r0, 0x3D
- movs r1, 0
- bl PlaySE12WithPanning
- ldr r0, _0813FD24 @ =gTasks
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- adds r4, r0
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r6, 0
- adds r1, 0x1C
- adds r0, r1
- ldr r1, _0813FD28 @ =sub_813FD90
- str r1, [r0]
- ldr r0, _0813FD2C @ =sub_813FD34
- movs r1, 0xA
- bl CreateTask
- ldr r0, _0813FD30 @ =sub_813FB7C
- str r0, [r4]
-_0813FD16:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0813FD1C: .4byte gSprites
-_0813FD20: .4byte gUnknown_02024BE0
-_0813FD24: .4byte gTasks
-_0813FD28: .4byte sub_813FD90
-_0813FD2C: .4byte sub_813FD34
-_0813FD30: .4byte sub_813FB7C
- thumb_func_end sub_813FCBC
-
- thumb_func_start sub_813FD34
-sub_813FD34: @ 813FD34
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r6, _0813FD88 @ =gSprites
- movs r0, 0
- bl battle_get_side_with_given_state
- ldr r4, _0813FD8C @ =gUnknown_02024BE0
- lsls r0, 24
- lsrs r0, 24
- adds r0, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- adds r0, 0x3F
- ldrb r0, [r0]
- lsls r0, 27
- cmp r0, 0
- bge _0813FD80
- movs r0, 0
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r0, 24
- adds r0, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- movs r1, 0
- bl StartSpriteAnim
- adds r0, r5, 0
- bl DestroyTask
-_0813FD80:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0813FD88: .4byte gSprites
-_0813FD8C: .4byte gUnknown_02024BE0
- thumb_func_end sub_813FD34
-
- thumb_func_start sub_813FD90
-sub_813FD90: @ 813FD90
- push {r4,lr}
- adds r4, r0, 0
- ldrh r1, [r4, 0x30]
- ldrh r2, [r4, 0x32]
- ldrh r0, [r4, 0x20]
- strh r0, [r4, 0x30]
- strh r1, [r4, 0x32]
- ldrh r0, [r4, 0x22]
- strh r0, [r4, 0x34]
- strh r2, [r4, 0x36]
- ldr r0, _0813FDB8 @ =0x0000ffd8
- strh r0, [r4, 0x38]
- adds r0, r4, 0
- bl sub_80786EC
- ldr r0, _0813FDBC @ =sub_813FDC0
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813FDB8: .4byte 0x0000ffd8
-_0813FDBC: .4byte sub_813FDC0
- thumb_func_end sub_813FD90
-
- thumb_func_start sub_813FDC0
-sub_813FDC0: @ 813FDC0
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- bl sub_8078718
- lsls r0, 24
- cmp r0, 0
- beq _0813FE5A
- ldr r0, _0813FDE0 @ =0x02017840
- ldrb r0, [r0, 0x8]
- cmp r0, 0x5
- bne _0813FDE8
- ldr r0, _0813FDE4 @ =sub_81407B8
- str r0, [r4, 0x1C]
- b _0813FE5A
- .align 2, 0
-_0813FDE0: .4byte 0x02017840
-_0813FDE4: .4byte sub_81407B8
-_0813FDE8:
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAnim
- ldrh r0, [r4, 0x24]
- ldrh r1, [r4, 0x20]
- adds r0, r1
- movs r1, 0
- strh r0, [r4, 0x20]
- ldrh r0, [r4, 0x26]
- ldrh r2, [r4, 0x22]
- adds r0, r2
- strh r0, [r4, 0x22]
- strh r1, [r4, 0x24]
- strh r1, [r4, 0x26]
- adds r1, r4, 0
- adds r1, 0x2E
- movs r2, 0
- adds r0, r4, 0
- adds r0, 0x3C
-_0813FE10:
- strh r2, [r0]
- subs r0, 0x2
- cmp r0, r1
- bge _0813FE10
- movs r0, 0
- strh r0, [r4, 0x38]
- ldr r0, _0813FE64 @ =sub_813FE70
- str r0, [r4, 0x1C]
- ldr r0, _0813FE68 @ =gUnknown_02024C04
- ldrh r0, [r0]
- bl ball_number_to_ball_processing_index
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0xB
- bgt _0813FE5A
- cmp r5, 0
- blt _0813FE5A
- ldrh r0, [r4, 0x20]
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x22]
- subs r1, 0x5
- lsls r1, 24
- lsrs r1, 24
- str r5, [sp]
- movs r2, 0x1
- movs r3, 0x1C
- bl sub_814086C
- ldr r0, _0813FE6C @ =gUnknown_0202F7C9
- ldrb r1, [r0]
- movs r0, 0
- movs r2, 0xE
- adds r3, r5, 0
- bl sub_8141314
-_0813FE5A:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0813FE64: .4byte sub_813FE70
-_0813FE68: .4byte gUnknown_02024C04
-_0813FE6C: .4byte gUnknown_0202F7C9
- thumb_func_end sub_813FDC0
-
- thumb_func_start sub_813FE70
-sub_813FE70: @ 813FE70
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x38]
- adds r0, 0x1
- strh r0, [r4, 0x38]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xA
- bne _0813FEAC
- ldr r0, _0813FEB4 @ =TaskDummy
- movs r1, 0x32
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x38]
- ldr r0, _0813FEB8 @ =sub_813FEC8
- str r0, [r4, 0x1C]
- ldr r2, _0813FEBC @ =gSprites
- ldr r1, _0813FEC0 @ =gUnknown_02024BE0
- ldr r0, _0813FEC4 @ =gUnknown_0202F7C9
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0
- strh r1, [r0, 0x30]
-_0813FEAC:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813FEB4: .4byte TaskDummy
-_0813FEB8: .4byte sub_813FEC8
-_0813FEBC: .4byte gSprites
-_0813FEC0: .4byte gUnknown_02024BE0
-_0813FEC4: .4byte gUnknown_0202F7C9
- thumb_func_end sub_813FE70
-
- thumb_func_start sub_813FEC8
-sub_813FEC8: @ 813FEC8
- push {r4-r7,lr}
- adds r7, r0, 0
- ldr r1, _0813FF0C @ =gUnknown_02024BE0
- ldr r0, _0813FF10 @ =gUnknown_0202F7C9
- ldrb r0, [r0]
- adds r0, r1
- ldrb r4, [r0]
- ldrh r0, [r7, 0x38]
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _0813FF14 @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r5, r0, r1
- ldrh r0, [r5, 0xA]
- adds r0, 0x1
- strh r0, [r5, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xB
- bne _0813FEFA
- movs r0, 0x3C
- bl PlaySE
-_0813FEFA:
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- beq _0813FF70
- cmp r0, 0x1
- bgt _0813FF18
- cmp r0, 0
- beq _0813FF1E
- b _0813FFDC
- .align 2, 0
-_0813FF0C: .4byte gUnknown_02024BE0
-_0813FF10: .4byte gUnknown_0202F7C9
-_0813FF14: .4byte gTasks
-_0813FF18:
- cmp r0, 0x2
- beq _0813FFB4
- b _0813FFDC
-_0813FF1E:
- adds r0, r4, 0
- movs r1, 0
- bl sub_8078E70
- movs r0, 0x80
- lsls r0, 1
- strh r0, [r5, 0x1C]
- ldr r1, _0813FF60 @ =gUnknown_03005F0C
- movs r0, 0x1C
- str r0, [r1]
- ldr r2, _0813FF64 @ =gUnknown_03005F14
- ldr r1, _0813FF68 @ =gSprites
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r0, r1
- ldrh r1, [r0, 0x26]
- ldrh r0, [r0, 0x22]
- adds r1, r0
- ldrh r0, [r7, 0x26]
- ldrh r7, [r7, 0x22]
- adds r0, r7
- subs r1, r0
- strh r1, [r2]
- ldr r4, _0813FF6C @ =gUnknown_03005F10
- ldrh r0, [r2]
- lsls r0, 8
- movs r1, 0x1C
- bl __udivsi3
- strh r0, [r4]
- strh r0, [r5, 0xC]
- b _0813FFCE
- .align 2, 0
-_0813FF60: .4byte gUnknown_03005F0C
-_0813FF64: .4byte gUnknown_03005F14
-_0813FF68: .4byte gSprites
-_0813FF6C: .4byte gUnknown_03005F10
-_0813FF70:
- ldrh r0, [r5, 0x1C]
- adds r0, 0x20
- strh r0, [r5, 0x1C]
- movs r0, 0x1C
- ldrsh r2, [r5, r0]
- adds r0, r4, 0
- adds r1, r2, 0
- movs r3, 0
- bl obj_id_set_rotscale
- ldrh r0, [r5, 0xC]
- ldrh r1, [r5, 0xE]
- adds r0, r1
- strh r0, [r5, 0xE]
- ldr r0, _0813FFAC @ =gSprites
- lsls r1, r4, 4
- adds r1, r4
- lsls r1, 2
- adds r1, r0
- movs r2, 0xE
- ldrsh r0, [r5, r2]
- negs r0, r0
- asrs r0, 8
- strh r0, [r1, 0x26]
- movs r0, 0x1C
- ldrsh r1, [r5, r0]
- ldr r0, _0813FFB0 @ =0x0000047f
- cmp r1, r0
- ble _08140004
- b _0813FFCE
- .align 2, 0
-_0813FFAC: .4byte gSprites
-_0813FFB0: .4byte 0x0000047f
-_0813FFB4:
- adds r0, r4, 0
- bl sub_8078F40
- ldr r1, _0813FFD8 @ =gSprites
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r0, r1
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
-_0813FFCE:
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- b _08140004
- .align 2, 0
-_0813FFD8: .4byte gSprites
-_0813FFDC:
- ldr r0, _0814000C @ =gTasks
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 3
- adds r1, r0
- movs r2, 0xA
- ldrsh r0, [r1, r2]
- cmp r0, 0xA
- ble _08140004
- adds r0, r6, 0
- bl DestroyTask
- adds r0, r7, 0
- movs r1, 0x2
- bl StartSpriteAnim
- movs r0, 0
- strh r0, [r7, 0x38]
- ldr r0, _08140010 @ =sub_8140014
- str r0, [r7, 0x1C]
-_08140004:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0814000C: .4byte gTasks
-_08140010: .4byte sub_8140014
- thumb_func_end sub_813FEC8
-
- thumb_func_start sub_8140014
-sub_8140014: @ 8140014
- push {r4,lr}
- adds r4, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0814004E
- movs r1, 0
- strh r1, [r4, 0x34]
- movs r0, 0x20
- strh r0, [r4, 0x36]
- strh r1, [r4, 0x38]
- movs r0, 0
- movs r1, 0x20
- bl Cos
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- movs r0, 0x36
- ldrsh r1, [r4, r0]
- movs r0, 0
- bl Cos
- negs r0, r0
- strh r0, [r4, 0x26]
- ldr r0, _08140054 @ =sub_8140058
- str r0, [r4, 0x1C]
-_0814004E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08140054: .4byte sub_8140058
- thumb_func_end sub_8140014
-
- thumb_func_start sub_8140058
-sub_8140058: @ 8140058
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r5, 0
- ldrh r0, [r4, 0x34]
- movs r1, 0xFF
- ands r1, r0
- cmp r1, 0
- beq _0814006E
- cmp r1, 0x1
- beq _081400E2
- b _0814010E
-_0814006E:
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- movs r2, 0x36
- ldrsh r1, [r4, r2]
- bl Cos
- negs r0, r0
- strh r0, [r4, 0x26]
- ldrh r1, [r4, 0x38]
- adds r1, 0x4
- ldrh r2, [r4, 0x34]
- lsls r0, r2, 16
- asrs r0, 24
- adds r1, r0
- strh r1, [r4, 0x38]
- lsls r1, 16
- asrs r1, 16
- cmp r1, 0x3F
- ble _0814010E
- ldrh r0, [r4, 0x36]
- subs r0, 0xA
- strh r0, [r4, 0x36]
- ldr r1, _081400B8 @ =0x00000101
- adds r0, r2, r1
- strh r0, [r4, 0x34]
- lsls r0, 16
- asrs r0, 24
- cmp r0, 0x4
- bne _081400AA
- movs r5, 0x1
-_081400AA:
- cmp r0, 0x2
- beq _081400CA
- cmp r0, 0x2
- bgt _081400BC
- cmp r0, 0x1
- beq _081400C2
- b _081400DA
- .align 2, 0
-_081400B8: .4byte 0x00000101
-_081400BC:
- cmp r0, 0x3
- beq _081400D2
- b _081400DA
-_081400C2:
- movs r0, 0x38
- bl PlaySE
- b _0814010E
-_081400CA:
- movs r0, 0x39
- bl PlaySE
- b _0814010E
-_081400D2:
- movs r0, 0x3A
- bl PlaySE
- b _0814010E
-_081400DA:
- movs r0, 0x3B
- bl PlaySE
- b _0814010E
-_081400E2:
- movs r2, 0x38
- ldrsh r0, [r4, r2]
- movs r2, 0x36
- ldrsh r1, [r4, r2]
- bl Cos
- negs r0, r0
- strh r0, [r4, 0x26]
- ldrh r1, [r4, 0x38]
- subs r1, 0x4
- ldrh r2, [r4, 0x34]
- lsls r0, r2, 16
- asrs r0, 24
- subs r1, r0
- strh r1, [r4, 0x38]
- lsls r1, 16
- cmp r1, 0
- bgt _0814010E
- strh r5, [r4, 0x38]
- ldr r0, _08140138 @ =0xffffff00
- ands r0, r2
- strh r0, [r4, 0x34]
-_0814010E:
- cmp r5, 0
- beq _0814014E
- movs r5, 0
- strh r5, [r4, 0x34]
- movs r0, 0x40
- movs r1, 0x20
- bl Cos
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- strh r5, [r4, 0x26]
- ldr r0, _0814013C @ =0x02017840
- ldrb r0, [r0, 0x8]
- cmp r0, 0
- bne _08140144
- strh r5, [r4, 0x38]
- ldr r0, _08140140 @ =sub_8140410
- str r0, [r4, 0x1C]
- b _0814014E
- .align 2, 0
-_08140138: .4byte 0xffffff00
-_0814013C: .4byte 0x02017840
-_08140140: .4byte sub_8140410
-_08140144:
- ldr r0, _08140154 @ =sub_8140158
- str r0, [r4, 0x1C]
- movs r0, 0x1
- strh r0, [r4, 0x36]
- strh r5, [r4, 0x38]
-_0814014E:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08140154: .4byte sub_8140158
- thumb_func_end sub_8140058
-
- thumb_func_start sub_8140158
-sub_8140158: @ 8140158
- push {r4,r5,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x34]
- adds r0, 0x1
- movs r5, 0
- strh r0, [r4, 0x34]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1F
- bne _08140190
- strh r5, [r4, 0x34]
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r0, [r2]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2]
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
- ldr r0, _08140198 @ =0x02017840
- strh r5, [r0, 0xC]
- ldr r0, _0814019C @ =sub_81401A0
- str r0, [r4, 0x1C]
- movs r0, 0x17
- bl PlaySE
-_08140190:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08140198: .4byte 0x02017840
-_0814019C: .4byte sub_81401A0
- thumb_func_end sub_8140158
-
- thumb_func_start sub_81401A0
-sub_81401A0: @ 81401A0
- push {r4,r5,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x34]
- movs r1, 0xFF
- ands r1, r0
- cmp r1, 0x6
- bls _081401B0
- b _081403C4
-_081401B0:
- lsls r0, r1, 2
- ldr r1, _081401BC @ =_081401C0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_081401BC: .4byte _081401C0
- .align 2, 0
-_081401C0:
- .4byte _081401DC
- .4byte _08140226
- .4byte _0814026C
- .4byte _081402C0
- .4byte _08140310
- .4byte _08140368
- .4byte _081403C4
-_081401DC:
- ldr r0, _081401F8 @ =0x02017840
- ldrh r2, [r0, 0xC]
- movs r3, 0xC
- ldrsh r1, [r0, r3]
- adds r5, r0, 0
- cmp r1, 0xFF
- ble _081401FC
- ldrh r0, [r4, 0x36]
- ldrh r1, [r4, 0x24]
- adds r0, r1
- strh r0, [r4, 0x24]
- movs r0, 0xFF
- ands r0, r2
- b _08140200
- .align 2, 0
-_081401F8: .4byte 0x02017840
-_081401FC:
- adds r0, r2, 0
- adds r0, 0xB0
-_08140200:
- strh r0, [r5, 0xC]
- ldrh r0, [r4, 0x38]
- adds r0, 0x1
- movs r3, 0
- strh r0, [r4, 0x38]
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r1, [r2]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2]
- ldrh r0, [r4, 0x38]
- adds r0, 0x7
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xE
- bhi _08140224
- b _0814040A
-_08140224:
- b _081402B4
-_08140226:
- ldrh r0, [r4, 0x38]
- adds r0, 0x1
- strh r0, [r4, 0x38]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- bne _081402CC
- movs r0, 0
- strh r0, [r4, 0x38]
- ldrh r0, [r4, 0x36]
- negs r0, r0
- strh r0, [r4, 0x36]
- ldrh r0, [r4, 0x34]
- adds r0, 0x1
- strh r0, [r4, 0x34]
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r1, [r2]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2]
- movs r3, 0x36
- ldrsh r0, [r4, r3]
- cmp r0, 0
- bge _08140262
- adds r0, r4, 0
- movs r1, 0x2
- bl ChangeSpriteAffineAnim
- b _0814040A
-_08140262:
- adds r0, r4, 0
- movs r1, 0x1
- bl ChangeSpriteAffineAnim
- b _0814040A
-_0814026C:
- ldr r0, _08140288 @ =0x02017840
- ldrh r2, [r0, 0xC]
- movs r3, 0xC
- ldrsh r1, [r0, r3]
- adds r5, r0, 0
- cmp r1, 0xFF
- ble _0814028C
- ldrh r0, [r4, 0x36]
- ldrh r1, [r4, 0x24]
- adds r0, r1
- strh r0, [r4, 0x24]
- movs r0, 0xFF
- ands r0, r2
- b _08140290
- .align 2, 0
-_08140288: .4byte 0x02017840
-_0814028C:
- adds r0, r2, 0
- adds r0, 0xB0
-_08140290:
- strh r0, [r5, 0xC]
- ldrh r0, [r4, 0x38]
- adds r0, 0x1
- movs r3, 0
- strh r0, [r4, 0x38]
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r1, [r2]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2]
- ldrh r0, [r4, 0x38]
- adds r0, 0xC
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x18
- bhi _081402B4
- b _0814040A
-_081402B4:
- strh r3, [r5, 0xC]
- ldrh r0, [r4, 0x34]
- adds r0, 0x1
- strh r0, [r4, 0x34]
- strh r3, [r4, 0x38]
- b _0814040A
-_081402C0:
- ldrh r0, [r4, 0x38]
- adds r1, r0, 0x1
- strh r1, [r4, 0x38]
- lsls r0, 16
- cmp r0, 0
- bge _081402DA
-_081402CC:
- adds r0, r4, 0
- adds r0, 0x2C
- ldrb r1, [r0]
- movs r2, 0x80
- orrs r1, r2
- strb r1, [r0]
- b _0814040A
-_081402DA:
- movs r0, 0
- strh r0, [r4, 0x38]
- ldrh r0, [r4, 0x36]
- negs r0, r0
- strh r0, [r4, 0x36]
- ldrh r0, [r4, 0x34]
- adds r0, 0x1
- strh r0, [r4, 0x34]
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r1, [r2]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2]
- movs r3, 0x36
- ldrsh r0, [r4, r3]
- cmp r0, 0
- bge _08140308
- adds r0, r4, 0
- movs r1, 0x2
- bl ChangeSpriteAffineAnim
- b _08140310
-_08140308:
- adds r0, r4, 0
- movs r1, 0x1
- bl ChangeSpriteAffineAnim
-_08140310:
- ldr r0, _0814032C @ =0x02017840
- ldrh r2, [r0, 0xC]
- movs r3, 0xC
- ldrsh r1, [r0, r3]
- adds r5, r0, 0
- cmp r1, 0xFF
- ble _08140330
- ldrh r0, [r4, 0x36]
- ldrh r1, [r4, 0x24]
- adds r0, r1
- strh r0, [r4, 0x24]
- movs r0, 0xFF
- ands r0, r2
- b _08140334
- .align 2, 0
-_0814032C: .4byte 0x02017840
-_08140330:
- adds r0, r2, 0
- adds r0, 0xB0
-_08140334:
- strh r0, [r5, 0xC]
- ldrh r0, [r4, 0x38]
- adds r0, 0x1
- movs r3, 0
- strh r0, [r4, 0x38]
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r1, [r2]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2]
- ldrh r0, [r4, 0x38]
- adds r0, 0x4
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x8
- bls _0814040A
- strh r3, [r5, 0xC]
- ldrh r0, [r4, 0x34]
- adds r0, 0x1
- strh r0, [r4, 0x34]
- strh r3, [r4, 0x38]
- ldrh r0, [r4, 0x36]
- negs r0, r0
- strh r0, [r4, 0x36]
- b _0814040A
-_08140368:
- movs r3, 0x80
- lsls r3, 1
- adds r0, r3, 0
- ldrh r1, [r4, 0x34]
- adds r0, r1
- strh r0, [r4, 0x34]
- lsls r0, 16
- asrs r1, r0, 24
- ldr r0, _08140394 @ =0x02017840
- ldrb r0, [r0, 0x8]
- cmp r1, r0
- bne _0814039C
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r0, [r2]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _08140398 @ =sub_8140410
- str r0, [r4, 0x1C]
- b _0814040A
- .align 2, 0
-_08140394: .4byte 0x02017840
-_08140398: .4byte sub_8140410
-_0814039C:
- cmp r0, 0x4
- bne _081403B0
- cmp r1, 0x3
- bne _081403B0
- ldr r0, _081403AC @ =sub_8140434
- str r0, [r4, 0x1C]
- b _081403B6
- .align 2, 0
-_081403AC: .4byte sub_8140434
-_081403B0:
- ldrh r0, [r4, 0x34]
- adds r0, 0x1
- strh r0, [r4, 0x34]
-_081403B6:
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r0, [r2]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2]
- b _0814040A
-_081403C4:
- ldrh r0, [r4, 0x38]
- adds r0, 0x1
- strh r0, [r4, 0x38]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1F
- bne _0814040A
- movs r0, 0
- strh r0, [r4, 0x38]
- ldrh r1, [r4, 0x34]
- ldr r0, _081403F8 @ =0xffffff00
- ands r0, r1
- strh r0, [r4, 0x34]
- adds r0, r4, 0
- movs r1, 0x3
- bl StartSpriteAffineAnim
- movs r3, 0x36
- ldrsh r0, [r4, r3]
- cmp r0, 0
- bge _081403FC
- adds r0, r4, 0
- movs r1, 0x2
- bl StartSpriteAffineAnim
- b _08140404
- .align 2, 0
-_081403F8: .4byte 0xffffff00
-_081403FC:
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
-_08140404:
- movs r0, 0x17
- bl PlaySE
-_0814040A:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_81401A0
-
- thumb_func_start sub_8140410
-sub_8140410: @ 8140410
- push {lr}
- adds r1, r0, 0
- ldrh r0, [r1, 0x38]
- adds r0, 0x1
- strh r0, [r1, 0x38]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1F
- bne _0814042A
- movs r0, 0
- strh r0, [r1, 0x38]
- ldr r0, _08140430 @ =sub_81405F4
- str r0, [r1, 0x1C]
-_0814042A:
- pop {r0}
- bx r0
- .align 2, 0
-_08140430: .4byte sub_81405F4
- thumb_func_end sub_8140410
-
- thumb_func_start sub_8140434
-sub_8140434: @ 8140434
- adds r3, r0, 0
- adds r3, 0x2C
- ldrb r1, [r3]
- movs r2, 0x40
- orrs r1, r2
- strb r1, [r3]
- ldr r1, _08140450 @ =sub_8140454
- str r1, [r0, 0x1C]
- movs r1, 0
- strh r1, [r0, 0x34]
- strh r1, [r0, 0x36]
- strh r1, [r0, 0x38]
- bx lr
- .align 2, 0
-_08140450: .4byte sub_8140454
- thumb_func_end sub_8140434
-
- thumb_func_start sub_8140454
-sub_8140454: @ 8140454
- push {r4-r7,lr}
- adds r6, r0, 0
- ldr r7, _08140484 @ =gUnknown_0202F7C9
- ldrh r0, [r6, 0x36]
- adds r0, 0x1
- strh r0, [r6, 0x36]
- lsls r0, 16
- asrs r1, r0, 16
- cmp r1, 0x28
- beq _081404CC
- cmp r1, 0x5F
- bne _08140490
- ldr r0, _08140488 @ =gUnknown_02024E6D
- movs r1, 0
- strb r1, [r0]
- movs r0, 0x1
- bl sub_8043EB4
- bl m4aMPlayAllStop
- ldr r0, _0814048C @ =0x00000173
- bl PlaySE
- b _081404CC
- .align 2, 0
-_08140484: .4byte gUnknown_0202F7C9
-_08140488: .4byte gUnknown_02024E6D
-_0814048C: .4byte 0x00000173
-_08140490:
- ldr r0, _081404D4 @ =0x0000013b
- cmp r1, r0
- bne _081404CC
- ldr r5, _081404D8 @ =gSprites
- ldr r4, _081404DC @ =gUnknown_02024BE0
- ldrb r0, [r7]
- adds r0, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrb r0, [r0, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
- ldrb r0, [r7]
- adds r0, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- bl DestroySprite
- movs r0, 0
- strh r0, [r6, 0x2E]
- ldr r0, _081404E0 @ =sub_81404E4
- str r0, [r6, 0x1C]
-_081404CC:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081404D4: .4byte 0x0000013b
-_081404D8: .4byte gSprites
-_081404DC: .4byte gUnknown_02024BE0
-_081404E0: .4byte sub_81404E4
- thumb_func_end sub_8140454
-
- thumb_func_start sub_81404E4
-sub_81404E4: @ 81404E4
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _08140550
- cmp r0, 0x1
- bgt _081404FC
- cmp r0, 0
- beq _08140502
- b _08140594
-_081404FC:
- cmp r0, 0x2
- beq _08140580
- b _08140594
-_08140502:
- strh r0, [r4, 0x30]
- strh r0, [r4, 0x32]
- ldrb r1, [r4, 0x1]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r4, 0x1]
- ldr r1, _08140548 @ =REG_BLDCNT
- movs r2, 0xFD
- lsls r2, 6
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0x10
- strh r0, [r1]
- ldr r0, [r4, 0x14]
- ldrh r0, [r0, 0x2]
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x10
- movs r1, 0x1
- lsls r1, r0
- ldr r0, _0814054C @ =0x00007fff
- str r0, [sp]
- adds r0, r1, 0
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- b _0814058C
- .align 2, 0
-_08140548: .4byte REG_BLDCNT
-_0814054C: .4byte 0x00007fff
-_08140550:
- ldrh r0, [r4, 0x30]
- adds r1, r0, 0x1
- strh r1, [r4, 0x30]
- lsls r0, 16
- cmp r0, 0
- ble _081405B2
- movs r0, 0
- strh r0, [r4, 0x30]
- ldrh r1, [r4, 0x32]
- adds r1, 0x1
- strh r1, [r4, 0x32]
- ldr r3, _0814057C @ =REG_BLDALPHA
- lsls r2, r1, 8
- movs r0, 0x10
- subs r0, r1
- orrs r2, r0
- strh r2, [r3]
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0x10
- bne _081405B2
- b _0814058C
- .align 2, 0
-_0814057C: .4byte REG_BLDALPHA
-_08140580:
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
-_0814058C:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- b _081405B2
-_08140594:
- ldr r0, _081405BC @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- bne _081405B2
- ldr r0, _081405C0 @ =REG_BLDCNT
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- strh r1, [r4, 0x2E]
- ldr r0, _081405C4 @ =sub_81405C8
- str r0, [r4, 0x1C]
-_081405B2:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081405BC: .4byte gPaletteFade
-_081405C0: .4byte REG_BLDCNT
-_081405C4: .4byte sub_81405C8
- thumb_func_end sub_81404E4
-
- thumb_func_start sub_81405C8
-sub_81405C8: @ 81405C8
- push {r4,lr}
- adds r4, r0, 0
- ldrh r1, [r4, 0x2E]
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _081405E0
- ldr r0, _081405DC @ =0x0000ffff
- strh r0, [r4, 0x2E]
- b _081405EC
- .align 2, 0
-_081405DC: .4byte 0x0000ffff
-_081405E0:
- adds r0, r4, 0
- bl FreeSpriteOamMatrix
- adds r0, r4, 0
- bl DestroySprite
-_081405EC:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_81405C8
-
- thumb_func_start sub_81405F4
-sub_81405F4: @ 81405F4
- push {r4-r6,lr}
- sub sp, 0x4
- adds r4, r0, 0
- movs r1, 0x1
- bl StartSpriteAnim
- adds r0, r4, 0
- movs r1, 0
- bl StartSpriteAffineAnim
- ldr r0, _081406A8 @ =sub_81406BC
- str r0, [r4, 0x1C]
- ldr r0, _081406AC @ =gUnknown_02024C04
- ldrh r0, [r0]
- bl ball_number_to_ball_processing_index
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0xB
- bgt _08140646
- cmp r5, 0
- blt _08140646
- ldrh r0, [r4, 0x20]
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x22]
- subs r1, 0x5
- lsls r1, 24
- lsrs r1, 24
- str r5, [sp]
- movs r2, 0x1
- movs r3, 0x1C
- bl sub_814086C
- ldr r0, _081406B0 @ =gUnknown_0202F7C9
- ldrb r1, [r0]
- movs r0, 0x1
- movs r2, 0xE
- adds r3, r5, 0
- bl sub_8141314
-_08140646:
- ldr r6, _081406B4 @ =gSprites
- ldr r5, _081406B8 @ =gUnknown_02024BE0
- ldr r4, _081406B0 @ =gUnknown_0202F7C9
- ldrb r0, [r4]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
- ldrb r0, [r4]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- movs r1, 0x1
- bl StartSpriteAffineAnim
- ldrb r0, [r4]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- bl AnimateSprite
- ldrb r0, [r4]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- movs r1, 0x80
- lsls r1, 5
- strh r1, [r0, 0x30]
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_081406A8: .4byte sub_81406BC
-_081406AC: .4byte gUnknown_02024C04
-_081406B0: .4byte gUnknown_0202F7C9
-_081406B4: .4byte gSprites
-_081406B8: .4byte gUnknown_02024BE0
- thumb_func_end sub_81405F4
-
- thumb_func_start sub_81406BC
-sub_81406BC: @ 81406BC
- push {r4-r7,lr}
- adds r7, r0, 0
- movs r5, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _081406DA
- adds r2, r7, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
-_081406DA:
- ldr r4, _08140708 @ =gSprites
- ldr r3, _0814070C @ =gUnknown_02024BE0
- ldr r2, _08140710 @ =gUnknown_0202F7C9
- ldrb r0, [r2]
- adds r0, r3
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r0, r4
- adds r0, r1, 0
- adds r0, 0x3F
- ldrb r0, [r0]
- lsls r0, 26
- cmp r0, 0
- bge _08140714
- adds r0, r1, 0
- movs r1, 0
- bl StartSpriteAffineAnim
- movs r5, 0x1
- b _08140734
- .align 2, 0
-_08140708: .4byte gSprites
-_0814070C: .4byte gUnknown_02024BE0
-_08140710: .4byte gUnknown_0202F7C9
-_08140714:
- ldr r6, _0814079C @ =0xfffffee0
- adds r0, r6, 0
- ldrh r6, [r1, 0x30]
- adds r0, r6
- strh r0, [r1, 0x30]
- ldrb r0, [r2]
- adds r0, r3
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrh r0, [r1, 0x30]
- lsls r0, 16
- asrs r0, 24
- strh r0, [r1, 0x26]
-_08140734:
- adds r0, r7, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _08140796
- cmp r5, 0
- beq _08140796
- ldr r4, _081407A0 @ =gSprites
- ldr r3, _081407A4 @ =gUnknown_02024BE0
- ldr r2, _081407A8 @ =gUnknown_0202F7C9
- ldrb r0, [r2]
- adds r0, r3
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r6, 0
- movs r5, 0
- strh r5, [r0, 0x26]
- ldrb r0, [r2]
- adds r0, r3
- ldrb r0, [r0]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r4
- ldr r0, _081407AC @ =0x02017840
- ldrb r1, [r0, 0x9]
- lsls r1, 30
- adds r2, 0x3E
- lsrs r1, 31
- lsls r1, 2
- ldrb r3, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2]
- strh r5, [r7, 0x2E]
- ldr r0, _081407B0 @ =sub_81405C8
- str r0, [r7, 0x1C]
- ldr r0, _081407B4 @ =gUnknown_02024E6D
- strb r6, [r0]
- movs r0, 0x1
- bl sub_8043EB4
-_08140796:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0814079C: .4byte 0xfffffee0
-_081407A0: .4byte gSprites
-_081407A4: .4byte gUnknown_02024BE0
-_081407A8: .4byte gUnknown_0202F7C9
-_081407AC: .4byte 0x02017840
-_081407B0: .4byte sub_81405C8
-_081407B4: .4byte gUnknown_02024E6D
- thumb_func_end sub_81406BC
-
- thumb_func_start sub_81407B8
-sub_81407B8: @ 81407B8
- push {r4,lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x24]
- ldrh r1, [r2, 0x20]
- adds r0, r1
- movs r1, 0
- strh r0, [r2, 0x20]
- ldrh r0, [r2, 0x26]
- ldrh r3, [r2, 0x22]
- adds r0, r3
- strh r0, [r2, 0x22]
- strh r1, [r2, 0x26]
- strh r1, [r2, 0x24]
- ldr r4, _081407F0 @ =sub_81407F4
- movs r3, 0
- movs r1, 0x5
- adds r0, r2, 0
- adds r0, 0x38
-_081407DC:
- strh r3, [r0]
- subs r0, 0x2
- subs r1, 0x1
- cmp r1, 0
- bge _081407DC
- str r4, [r2, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081407F0: .4byte sub_81407F4
- thumb_func_end sub_81407B8
-
- thumb_func_start sub_81407F4
-sub_81407F4: @ 81407F4
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x80
- lsls r0, 4
- adds r2, r0, 0
- ldrh r1, [r4, 0x2E]
- adds r2, r1
- movs r0, 0xD0
- lsls r0, 3
- adds r3, r0, 0
- ldrh r1, [r4, 0x30]
- adds r3, r1
- lsls r1, r3, 16
- asrs r1, 24
- ldrh r0, [r4, 0x24]
- subs r0, r1
- strh r0, [r4, 0x24]
- lsls r0, r2, 16
- asrs r0, 24
- ldrh r1, [r4, 0x26]
- adds r0, r1
- strh r0, [r4, 0x26]
- movs r0, 0xFF
- ands r2, r0
- strh r2, [r4, 0x2E]
- ands r3, r0
- strh r3, [r4, 0x30]
- movs r2, 0x22
- ldrsh r0, [r4, r2]
- movs r2, 0x26
- ldrsh r1, [r4, r2]
- adds r0, r1
- cmp r0, 0xA0
- bgt _0814084A
- movs r1, 0x20
- ldrsh r0, [r4, r1]
- movs r2, 0x24
- ldrsh r1, [r4, r2]
- adds r0, r1
- movs r1, 0x8
- negs r1, r1
- cmp r0, r1
- bge _0814085E
-_0814084A:
- movs r0, 0
- strh r0, [r4, 0x2E]
- ldr r0, _08140864 @ =sub_81405C8
- str r0, [r4, 0x1C]
- ldr r1, _08140868 @ =gUnknown_02024E6D
- movs r0, 0
- strb r0, [r1]
- movs r0, 0x1
- bl sub_8043EB4
-_0814085E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08140864: .4byte sub_81405C8
-_08140868: .4byte gUnknown_02024E6D
- thumb_func_end sub_81407F4
-
- thumb_func_start sub_814086C
-sub_814086C: @ 814086C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r4, [sp, 0x20]
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- lsls r1, 24
- lsrs r1, 24
- mov r9, r1
- lsls r2, 24
- lsrs r2, 24
- mov r8, r2
- lsls r3, 24
- lsrs r7, r3, 24
- lsls r4, 24
- lsrs r4, 24
- adds r5, r4, 0
- ldr r0, _08140910 @ =gUnknown_0840B258
- lsls r6, r5, 3
- adds r4, r6, r0
- ldrh r0, [r4, 0x6]
- bl GetSpriteTileStartByTag
- lsls r0, 16
- ldr r1, _08140914 @ =0xffff0000
- cmp r0, r1
- bne _081408B6
- adds r0, r4, 0
- bl LoadCompressedObjectPic
- ldr r0, _08140918 @ =gUnknown_0840B2B8
- adds r0, r6, r0
- bl LoadCompressedObjectPalette
-_081408B6:
- ldr r1, _0814091C @ =gUnknown_0840B384
- lsls r0, r5, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x5
- bl CreateTask
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _08140920 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- mov r1, r10
- strh r1, [r0, 0xA]
- mov r1, r9
- strh r1, [r0, 0xC]
- mov r1, r8
- strh r1, [r0, 0xE]
- strh r7, [r0, 0x10]
- strh r5, [r0, 0x26]
- movs r0, 0xF
- bl PlaySE
- ldr r0, _08140924 @ =gMain
- ldr r1, _08140928 @ =0x0000043d
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08140900
- ldr r1, _0814092C @ =0x02017840
- ldrb r0, [r1, 0xA]
- adds r0, 0x1
- strb r0, [r1, 0xA]
-_08140900:
- adds r0, r4, 0
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08140910: .4byte gUnknown_0840B258
-_08140914: .4byte 0xffff0000
-_08140918: .4byte gUnknown_0840B2B8
-_0814091C: .4byte gUnknown_0840B384
-_08140920: .4byte gTasks
-_08140924: .4byte gMain
-_08140928: .4byte 0x0000043d
-_0814092C: .4byte 0x02017840
- thumb_func_end sub_814086C
-
- thumb_func_start sub_8140930
-sub_8140930: @ 8140930
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- ldr r1, _081409D0 @ =gTasks
- lsls r0, 2
- add r0, r9
- lsls r0, 3
- adds r7, r0, r1
- ldrh r0, [r7, 0x26]
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- movs r1, 0x8
- ldrsh r0, [r7, r1]
- cmp r0, 0xF
- bgt _081409E4
- ldrb r1, [r7, 0xA]
- ldrb r2, [r7, 0xC]
- ldrb r6, [r7, 0xE]
- ldrb r3, [r7, 0x10]
- mov r4, r8
- lsls r0, r4, 1
- add r0, r8
- lsls r0, 3
- ldr r4, _081409D4 @ =gSpriteTemplate_840B3B4
- adds r0, r4
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- ldr r5, _081409D8 @ =gSprites
- adds r2, r4, r5
- ldr r0, _081409DC @ =gUnknown_0840B378
- add r0, r8
- ldrb r1, [r0]
- adds r0, r2, 0
- str r2, [sp]
- bl StartSpriteAnim
- adds r5, 0x1C
- adds r4, r5
- ldr r0, _081409E0 @ =sub_8140A08
- str r0, [r4]
- movs r0, 0x3
- ands r6, r0
- lsls r6, 2
- ldr r2, [sp]
- ldrb r1, [r2, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- orrs r0, r6
- strb r0, [r2, 0x5]
- ldrb r0, [r7, 0x8]
- cmp r0, 0x7
- bls _081409B6
- subs r0, 0x8
- lsls r0, 24
- lsrs r0, 24
-_081409B6:
- lsls r0, 5
- strh r0, [r2, 0x2E]
- movs r1, 0x8
- ldrsh r0, [r7, r1]
- cmp r0, 0xF
- bne _081409E4
- movs r0, 0x1
- strh r0, [r2, 0x3C]
- mov r0, r9
- bl DestroyTask
- b _081409F6
- .align 2, 0
-_081409D0: .4byte gTasks
-_081409D4: .4byte gSpriteTemplate_840B3B4
-_081409D8: .4byte gSprites
-_081409DC: .4byte gUnknown_0840B378
-_081409E0: .4byte sub_8140A08
-_081409E4:
- ldr r0, _08140A04 @ =gTasks
- mov r2, r9
- lsls r1, r2, 2
- add r1, r9
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
-_081409F6:
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08140A04: .4byte gTasks
- thumb_func_end sub_8140930
-
- thumb_func_start sub_8140A08
-sub_8140A08: @ 8140A08
- push {lr}
- adds r1, r0, 0
- ldrh r2, [r1, 0x30]
- movs r3, 0x30
- ldrsh r0, [r1, r3]
- cmp r0, 0
- bne _08140A20
- ldr r0, _08140A1C @ =sub_8140A28
- str r0, [r1, 0x1C]
- b _08140A24
- .align 2, 0
-_08140A1C: .4byte sub_8140A28
-_08140A20:
- subs r0, r2, 0x1
- strh r0, [r1, 0x30]
-_08140A24:
- pop {r0}
- bx r0
- thumb_func_end sub_8140A08
-
- thumb_func_start sub_8140A28
-sub_8140A28: @ 8140A28
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- movs r2, 0x30
- ldrsh r1, [r4, r2]
- bl Sin
- strh r0, [r4, 0x24]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- movs r2, 0x30
- ldrsh r1, [r4, r2]
- bl Cos
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x30]
- adds r0, 0x2
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x32
- bne _08140A5C
- adds r0, r4, 0
- bl sub_8141294
-_08140A5C:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8140A28
-
- thumb_func_start sub_8140A64
-sub_8140A64: @ 8140A64
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r1, _08140B24 @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- ldrh r1, [r0, 0x26]
- lsls r1, 24
- lsrs r1, 24
- ldrb r2, [r0, 0xA]
- str r2, [sp]
- ldrb r3, [r0, 0xC]
- str r3, [sp, 0x4]
- ldrb r2, [r0, 0xE]
- str r2, [sp, 0x8]
- ldrb r0, [r0, 0x10]
- str r0, [sp, 0xC]
- movs r6, 0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- mov r10, r0
- ldr r3, _08140B28 @ =gSprites
- mov r8, r3
- ldr r0, _08140B2C @ =gUnknown_0840B378
- adds r1, r0
- mov r9, r1
-_08140AA8:
- ldr r0, _08140B30 @ =gSpriteTemplate_840B3B4
- add r0, r10
- ldr r1, [sp]
- ldr r2, [sp, 0x4]
- ldr r3, [sp, 0xC]
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r5, r1, 2
- mov r0, r8
- adds r4, r5, r0
- mov r2, r9
- ldrb r1, [r2]
- adds r0, r4, 0
- bl StartSpriteAnim
- ldr r3, _08140B34 @ =gSprites + 0x1C
- adds r1, r5, r3
- ldr r0, _08140B38 @ =sub_8140ECC
- str r0, [r1]
- movs r0, 0x3
- ldr r2, [sp, 0x8]
- ands r2, r0
- lsls r2, 2
- ldrb r0, [r4, 0x5]
- movs r3, 0xD
- negs r3, r3
- adds r1, r3, 0
- ands r0, r1
- orrs r0, r2
- strb r0, [r4, 0x5]
- lsls r0, r6, 5
- strh r0, [r4, 0x2E]
- movs r0, 0xA
- strh r0, [r4, 0x36]
- movs r0, 0x2
- strh r0, [r4, 0x38]
- movs r2, 0x1
- strh r2, [r4, 0x3A]
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x7
- bls _08140AA8
- ldr r0, _08140B28 @ =gSprites
- adds r0, r5, r0
- strh r2, [r0, 0x3C]
- adds r0, r7, 0
- bl DestroyTask
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08140B24: .4byte gTasks
-_08140B28: .4byte gSprites
-_08140B2C: .4byte gUnknown_0840B378
-_08140B30: .4byte gSpriteTemplate_840B3B4
-_08140B34: .4byte gSprites + 0x1C
-_08140B38: .4byte sub_8140ECC
- thumb_func_end sub_8140A64
-
- thumb_func_start sub_8140B3C
-sub_8140B3C: @ 8140B3C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r1, _08140BFC @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- ldrh r1, [r0, 0x26]
- lsls r1, 24
- lsrs r1, 24
- ldrb r2, [r0, 0xA]
- str r2, [sp]
- ldrb r3, [r0, 0xC]
- str r3, [sp, 0x4]
- ldrb r2, [r0, 0xE]
- str r2, [sp, 0x8]
- ldrb r0, [r0, 0x10]
- str r0, [sp, 0xC]
- movs r6, 0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- mov r10, r0
- ldr r3, _08140C00 @ =gSprites
- mov r8, r3
- ldr r0, _08140C04 @ =gUnknown_0840B378
- adds r1, r0
- mov r9, r1
-_08140B80:
- ldr r0, _08140C08 @ =gSpriteTemplate_840B3B4
- add r0, r10
- ldr r1, [sp]
- ldr r2, [sp, 0x4]
- ldr r3, [sp, 0xC]
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r5, r1, 2
- mov r0, r8
- adds r4, r5, r0
- mov r2, r9
- ldrb r1, [r2]
- adds r0, r4, 0
- bl StartSpriteAnim
- ldr r3, _08140C0C @ =gSprites + 0x1C
- adds r1, r5, r3
- ldr r0, _08140C10 @ =sub_8140ECC
- str r0, [r1]
- movs r0, 0x3
- ldr r2, [sp, 0x8]
- ands r2, r0
- lsls r2, 2
- ldrb r0, [r4, 0x5]
- movs r3, 0xD
- negs r3, r3
- adds r1, r3, 0
- ands r0, r1
- orrs r0, r2
- strb r0, [r4, 0x5]
- lsls r0, r6, 5
- strh r0, [r4, 0x2E]
- movs r0, 0xA
- strh r0, [r4, 0x36]
- movs r1, 0x1
- strh r1, [r4, 0x38]
- movs r0, 0x2
- strh r0, [r4, 0x3A]
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x7
- bls _08140B80
- ldr r0, _08140C00 @ =gSprites
- adds r0, r5, r0
- strh r1, [r0, 0x3C]
- adds r0, r7, 0
- bl DestroyTask
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08140BFC: .4byte gTasks
-_08140C00: .4byte gSprites
-_08140C04: .4byte gUnknown_0840B378
-_08140C08: .4byte gSpriteTemplate_840B3B4
-_08140C0C: .4byte gSprites + 0x1C
-_08140C10: .4byte sub_8140ECC
- thumb_func_end sub_8140B3C
-
- thumb_func_start sub_8140C14
-sub_8140C14: @ 8140C14
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r1, _08140CD0 @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- ldrh r1, [r0, 0x26]
- lsls r1, 24
- lsrs r1, 24
- ldrb r2, [r0, 0xA]
- str r2, [sp]
- ldrb r3, [r0, 0xC]
- str r3, [sp, 0x4]
- ldrb r2, [r0, 0xE]
- str r2, [sp, 0x8]
- ldrb r0, [r0, 0x10]
- str r0, [sp, 0xC]
- movs r6, 0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- mov r10, r0
- ldr r3, _08140CD4 @ =gSprites
- mov r8, r3
- ldr r0, _08140CD8 @ =gUnknown_0840B378
- adds r1, r0
- mov r9, r1
-_08140C58:
- ldr r0, _08140CDC @ =gSpriteTemplate_840B3B4
- add r0, r10
- ldr r1, [sp]
- ldr r2, [sp, 0x4]
- ldr r3, [sp, 0xC]
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r5, r1, 2
- mov r0, r8
- adds r4, r5, r0
- mov r2, r9
- ldrb r1, [r2]
- adds r0, r4, 0
- bl StartSpriteAnim
- ldr r3, _08140CE0 @ =gSprites + 0x1C
- adds r1, r5, r3
- ldr r0, _08140CE4 @ =sub_8140ECC
- str r0, [r1]
- movs r0, 0x3
- ldr r2, [sp, 0x8]
- ands r2, r0
- lsls r2, 2
- ldrb r0, [r4, 0x5]
- movs r3, 0xD
- negs r3, r3
- adds r1, r3, 0
- ands r0, r1
- orrs r0, r2
- strb r0, [r4, 0x5]
- lsls r0, r6, 5
- strh r0, [r4, 0x2E]
- movs r0, 0x4
- strh r0, [r4, 0x36]
- movs r2, 0x1
- strh r2, [r4, 0x38]
- strh r2, [r4, 0x3A]
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x7
- bls _08140C58
- ldr r0, _08140CD4 @ =gSprites
- adds r0, r5, r0
- strh r2, [r0, 0x3C]
- adds r0, r7, 0
- bl DestroyTask
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08140CD0: .4byte gTasks
-_08140CD4: .4byte gSprites
-_08140CD8: .4byte gUnknown_0840B378
-_08140CDC: .4byte gSpriteTemplate_840B3B4
-_08140CE0: .4byte gSprites + 0x1C
-_08140CE4: .4byte sub_8140ECC
- thumb_func_end sub_8140C14
-
- thumb_func_start sub_8140CE8
-sub_8140CE8: @ 8140CE8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r1, _08140DAC @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- ldrh r1, [r0, 0x26]
- lsls r1, 24
- lsrs r1, 24
- ldrb r2, [r0, 0xA]
- str r2, [sp]
- ldrb r3, [r0, 0xC]
- str r3, [sp, 0x4]
- ldrb r2, [r0, 0xE]
- str r2, [sp, 0x8]
- ldrb r0, [r0, 0x10]
- str r0, [sp, 0xC]
- movs r6, 0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- mov r10, r0
- ldr r3, _08140DB0 @ =gSprites
- mov r8, r3
- ldr r0, _08140DB4 @ =gUnknown_0840B378
- adds r1, r0
- mov r9, r1
-_08140D2C:
- ldr r0, _08140DB8 @ =gSpriteTemplate_840B3B4
- add r0, r10
- ldr r1, [sp]
- ldr r2, [sp, 0x4]
- ldr r3, [sp, 0xC]
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r5, r1, 2
- mov r0, r8
- adds r4, r5, r0
- mov r2, r9
- ldrb r1, [r2]
- adds r0, r4, 0
- bl StartSpriteAnim
- ldr r3, _08140DBC @ =gSprites + 0x1C
- adds r1, r5, r3
- ldr r0, _08140DC0 @ =sub_8140ECC
- str r0, [r1]
- movs r0, 0x3
- ldr r2, [sp, 0x8]
- ands r2, r0
- lsls r2, 2
- ldrb r0, [r4, 0x5]
- movs r3, 0xD
- negs r3, r3
- adds r1, r3, 0
- ands r0, r1
- orrs r0, r2
- strb r0, [r4, 0x5]
- lsls r0, r6, 1
- adds r0, r6
- lsls r0, 3
- adds r0, r6
- strh r0, [r4, 0x2E]
- movs r0, 0x5
- strh r0, [r4, 0x36]
- movs r2, 0x1
- strh r2, [r4, 0x38]
- strh r2, [r4, 0x3A]
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x9
- bls _08140D2C
- ldr r0, _08140DB0 @ =gSprites
- adds r0, r5, r0
- strh r2, [r0, 0x3C]
- adds r0, r7, 0
- bl DestroyTask
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08140DAC: .4byte gTasks
-_08140DB0: .4byte gSprites
-_08140DB4: .4byte gUnknown_0840B378
-_08140DB8: .4byte gSpriteTemplate_840B3B4
-_08140DBC: .4byte gSprites + 0x1C
-_08140DC0: .4byte sub_8140ECC
- thumb_func_end sub_8140CE8
-
- thumb_func_start sub_8140DC4
-sub_8140DC4: @ 8140DC4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r1, _08140DF0 @ =gTasks
- lsls r2, r7, 2
- adds r0, r2, r7
- lsls r0, 3
- adds r3, r0, r1
- ldrh r1, [r3, 0x16]
- movs r4, 0x16
- ldrsh r0, [r3, r4]
- cmp r0, 0
- beq _08140DF4
- subs r0, r1, 0x1
- strh r0, [r3, 0x16]
- b _08140EA4
- .align 2, 0
-_08140DF0: .4byte gTasks
-_08140DF4:
- ldrh r0, [r3, 0x26]
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r3, 0xA]
- str r1, [sp]
- ldrb r4, [r3, 0xC]
- str r4, [sp, 0x4]
- ldrb r1, [r3, 0xE]
- str r1, [sp, 0x8]
- ldrb r3, [r3, 0x10]
- str r3, [sp, 0xC]
- movs r6, 0
- str r2, [sp, 0x10]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 3
- mov r10, r1
- ldr r3, _08140EB4 @ =gSprites
- mov r8, r3
- ldr r1, _08140EB8 @ =gUnknown_0840B378
- adds r0, r1
- mov r9, r0
-_08140E20:
- ldr r0, _08140EBC @ =gSpriteTemplate_840B3B4
- add r0, r10
- ldr r1, [sp]
- ldr r2, [sp, 0x4]
- ldr r3, [sp, 0xC]
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r5, r1, 2
- mov r0, r8
- adds r4, r5, r0
- mov r3, r9
- ldrb r1, [r3]
- adds r0, r4, 0
- bl StartSpriteAnim
- ldr r0, _08140EC0 @ =gSprites + 0x1C
- adds r1, r5, r0
- ldr r0, _08140EC4 @ =sub_8140ECC
- str r0, [r1]
- movs r0, 0x3
- ldr r2, [sp, 0x8]
- ands r2, r0
- lsls r2, 2
- ldrb r0, [r4, 0x5]
- movs r3, 0xD
- negs r3, r3
- adds r1, r3, 0
- ands r0, r1
- orrs r0, r2
- strb r0, [r4, 0x5]
- lsls r0, r6, 5
- strh r0, [r4, 0x2E]
- movs r2, 0x8
- strh r2, [r4, 0x36]
- movs r0, 0x2
- strh r0, [r4, 0x38]
- strh r0, [r4, 0x3A]
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x7
- bls _08140E20
- ldr r0, _08140EC8 @ =gTasks
- ldr r4, [sp, 0x10]
- adds r1, r4, r7
- lsls r1, 3
- adds r1, r0
- strh r2, [r1, 0x16]
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- bne _08140EA4
- ldr r0, _08140EB4 @ =gSprites
- adds r0, r5, r0
- movs r1, 0x1
- strh r1, [r0, 0x3C]
- adds r0, r7, 0
- bl DestroyTask
-_08140EA4:
- add sp, 0x14
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08140EB4: .4byte gSprites
-_08140EB8: .4byte gUnknown_0840B378
-_08140EBC: .4byte gSpriteTemplate_840B3B4
-_08140EC0: .4byte gSprites + 0x1C
-_08140EC4: .4byte sub_8140ECC
-_08140EC8: .4byte gTasks
- thumb_func_end sub_8140DC4
-
- thumb_func_start sub_8140ECC
-sub_8140ECC: @ 8140ECC
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- movs r2, 0x30
- ldrsh r1, [r4, r2]
- bl Sin
- strh r0, [r4, 0x24]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- movs r2, 0x32
- ldrsh r1, [r4, r2]
- bl Cos
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x36]
- ldrh r1, [r4, 0x2E]
- adds r0, r1
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x38]
- ldrh r2, [r4, 0x30]
- adds r0, r2
- strh r0, [r4, 0x30]
- ldrh r0, [r4, 0x3A]
- ldrh r1, [r4, 0x32]
- adds r0, r1
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x34]
- adds r0, 0x1
- strh r0, [r4, 0x34]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x33
- bne _08140F1C
- adds r0, r4, 0
- bl sub_8141294
-_08140F1C:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8140ECC
-
- thumb_func_start sub_8140F24
-sub_8140F24: @ 8140F24
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r1, _08140FE0 @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- ldrh r1, [r0, 0x26]
- lsls r1, 24
- lsrs r1, 24
- ldrb r2, [r0, 0xA]
- str r2, [sp]
- ldrb r3, [r0, 0xC]
- str r3, [sp, 0x4]
- ldrb r2, [r0, 0xE]
- str r2, [sp, 0x8]
- ldrb r0, [r0, 0x10]
- str r0, [sp, 0xC]
- movs r6, 0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- mov r10, r0
- ldr r3, _08140FE4 @ =gSprites
- mov r8, r3
- ldr r0, _08140FE8 @ =gUnknown_0840B378
- adds r1, r0
- mov r9, r1
-_08140F68:
- ldr r0, _08140FEC @ =gSpriteTemplate_840B3B4
- add r0, r10
- ldr r1, [sp]
- ldr r2, [sp, 0x4]
- ldr r3, [sp, 0xC]
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r5, r1, 2
- mov r0, r8
- adds r4, r5, r0
- mov r2, r9
- ldrb r1, [r2]
- adds r0, r4, 0
- bl StartSpriteAnim
- ldr r3, _08140FF0 @ =gSprites + 0x1C
- adds r1, r5, r3
- ldr r0, _08140FF4 @ =sub_8140FF8
- str r0, [r1]
- movs r0, 0x3
- ldr r2, [sp, 0x8]
- ands r2, r0
- lsls r2, 2
- ldrb r0, [r4, 0x5]
- movs r3, 0xD
- negs r3, r3
- adds r1, r3, 0
- ands r0, r1
- orrs r0, r2
- strb r0, [r4, 0x5]
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 2
- adds r0, r6
- strh r0, [r4, 0x2E]
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0xB
- bls _08140F68
- ldr r0, _08140FE4 @ =gSprites
- adds r0, r5, r0
- movs r1, 0x1
- strh r1, [r0, 0x3C]
- adds r0, r7, 0
- bl DestroyTask
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08140FE0: .4byte gTasks
-_08140FE4: .4byte gSprites
-_08140FE8: .4byte gUnknown_0840B378
-_08140FEC: .4byte gSpriteTemplate_840B3B4
-_08140FF0: .4byte gSprites + 0x1C
-_08140FF4: .4byte sub_8140FF8
- thumb_func_end sub_8140F24
-
- thumb_func_start sub_8140FF8
-sub_8140FF8: @ 8140FF8
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- movs r2, 0x30
- ldrsh r1, [r5, r2]
- bl Sin
- strh r0, [r5, 0x24]
- movs r0, 0x2E
- ldrsh r4, [r5, r0]
- movs r2, 0x32
- ldrsh r1, [r5, r2]
- adds r0, r4, 0
- bl Sin
- adds r1, r0, 0
- lsls r1, 16
- asrs r1, 16
- adds r0, r4, 0
- bl Cos
- strh r0, [r5, 0x26]
- ldrh r0, [r5, 0x2E]
- adds r0, 0x6
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r5, 0x2E]
- ldrh r0, [r5, 0x30]
- adds r0, 0x1
- strh r0, [r5, 0x30]
- ldrh r0, [r5, 0x32]
- adds r0, 0x1
- strh r0, [r5, 0x32]
- ldrh r0, [r5, 0x34]
- adds r0, 0x1
- strh r0, [r5, 0x34]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x33
- bne _08141050
- adds r0, r5, 0
- bl sub_8141294
-_08141050:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8140FF8
-
- thumb_func_start sub_8141058
-sub_8141058: @ 8141058
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x18
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
- ldr r1, _08141104 @ =gTasks
- lsls r0, 2
- ldr r2, [sp]
- adds r0, r2
- lsls r0, 3
- adds r0, r1
- ldrh r1, [r0, 0x26]
- lsls r1, 24
- lsrs r1, 24
- ldrb r3, [r0, 0xA]
- str r3, [sp, 0x4]
- ldrb r2, [r0, 0xC]
- str r2, [sp, 0x8]
- ldrb r3, [r0, 0xE]
- str r3, [sp, 0xC]
- ldrb r0, [r0, 0x10]
- str r0, [sp, 0x10]
- movs r0, 0
- mov r8, r0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- str r0, [sp, 0x14]
- ldr r0, _08141108 @ =gUnknown_0840B378
- adds r1, r0
- mov r10, r1
-_0814109E:
- movs r7, 0
- movs r1, 0x1
- add r1, r8
- mov r9, r1
-_081410A6:
- ldr r0, _0814110C @ =gSpriteTemplate_840B3B4
- ldr r2, [sp, 0x14]
- adds r0, r2, r0
- ldr r1, [sp, 0x4]
- ldr r2, [sp, 0x8]
- ldr r3, [sp, 0x10]
- bl CreateSprite
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r4, r6, 4
- adds r4, r6
- lsls r4, 2
- ldr r3, _08141110 @ =gSprites
- adds r5, r4, r3
- mov r0, r10
- ldrb r1, [r0]
- adds r0, r5, 0
- bl StartSpriteAnim
- ldr r1, _08141114 @ =gSprites + 0x1C
- adds r4, r1
- ldr r0, _08141118 @ =sub_8140ECC
- str r0, [r4]
- movs r0, 0x3
- ldr r1, [sp, 0xC]
- ands r1, r0
- lsls r1, 2
- ldrb r0, [r5, 0x5]
- movs r3, 0xD
- negs r3, r3
- adds r2, r3, 0
- ands r0, r2
- orrs r0, r1
- strb r0, [r5, 0x5]
- lsls r0, r7, 5
- strh r0, [r5, 0x2E]
- movs r0, 0x8
- strh r0, [r5, 0x36]
- mov r0, r8
- cmp r0, 0
- bne _0814111C
- movs r0, 0x2
- strh r0, [r5, 0x38]
- movs r0, 0x1
- b _08141122
- .align 2, 0
-_08141104: .4byte gTasks
-_08141108: .4byte gUnknown_0840B378
-_0814110C: .4byte gSpriteTemplate_840B3B4
-_08141110: .4byte gSprites
-_08141114: .4byte gSprites + 0x1C
-_08141118: .4byte sub_8140ECC
-_0814111C:
- movs r0, 0x1
- strh r0, [r5, 0x38]
- movs r0, 0x2
-_08141122:
- strh r0, [r5, 0x3A]
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0x7
- bls _081410A6
- mov r1, r9
- lsls r0, r1, 24
- lsrs r0, 24
- mov r8, r0
- cmp r0, 0x1
- bls _0814109E
- ldr r0, _08141160 @ =gSprites
- lsls r1, r6, 4
- adds r1, r6
- lsls r1, 2
- adds r1, r0
- movs r0, 0x1
- strh r0, [r1, 0x3C]
- ldr r0, [sp]
- bl DestroyTask
- add sp, 0x18
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08141160: .4byte gSprites
- thumb_func_end sub_8141058
-
- thumb_func_start sub_8141164
-sub_8141164: @ 8141164
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r1, _08141218 @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- ldrh r1, [r0, 0x26]
- lsls r1, 24
- lsrs r1, 24
- ldrb r2, [r0, 0xA]
- str r2, [sp]
- ldrb r3, [r0, 0xC]
- str r3, [sp, 0x4]
- ldrb r2, [r0, 0xE]
- str r2, [sp, 0x8]
- ldrb r0, [r0, 0x10]
- str r0, [sp, 0xC]
- movs r6, 0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- mov r10, r0
- ldr r3, _0814121C @ =gSprites
- mov r8, r3
- ldr r0, _08141220 @ =gUnknown_0840B378
- adds r1, r0
- mov r9, r1
-_081411A8:
- ldr r0, _08141224 @ =gSpriteTemplate_840B3B4
- add r0, r10
- ldr r1, [sp]
- ldr r2, [sp, 0x4]
- ldr r3, [sp, 0xC]
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r5, r1, 2
- mov r0, r8
- adds r4, r5, r0
- mov r2, r9
- ldrb r1, [r2]
- adds r0, r4, 0
- bl StartSpriteAnim
- ldr r3, _08141228 @ =gSprites + 0x1C
- adds r1, r5, r3
- ldr r0, _0814122C @ =sub_8141230
- str r0, [r1]
- movs r0, 0x3
- ldr r2, [sp, 0x8]
- ands r2, r0
- lsls r2, 2
- ldrb r0, [r4, 0x5]
- movs r3, 0xD
- negs r3, r3
- adds r1, r3, 0
- ands r0, r1
- orrs r0, r2
- strb r0, [r4, 0x5]
- lsls r0, r6, 5
- strh r0, [r4, 0x2E]
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x7
- bls _081411A8
- ldr r0, _0814121C @ =gSprites
- adds r0, r5, r0
- movs r1, 0x1
- strh r1, [r0, 0x3C]
- adds r0, r7, 0
- bl DestroyTask
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08141218: .4byte gTasks
-_0814121C: .4byte gSprites
-_08141220: .4byte gUnknown_0840B378
-_08141224: .4byte gSpriteTemplate_840B3B4
-_08141228: .4byte gSprites + 0x1C
-_0814122C: .4byte sub_8141230
- thumb_func_end sub_8141164
-
- thumb_func_start sub_8141230
-sub_8141230: @ 8141230
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- movs r2, 0x30
- ldrsh r1, [r5, r2]
- bl Sin
- strh r0, [r5, 0x24]
- movs r0, 0x2E
- ldrsh r4, [r5, r0]
- ldrh r1, [r5, 0x2E]
- movs r0, 0x3F
- ands r0, r1
- movs r2, 0x32
- ldrsh r1, [r5, r2]
- bl Sin
- adds r1, r0, 0
- lsls r1, 16
- asrs r1, 16
- adds r0, r4, 0
- bl Cos
- strh r0, [r5, 0x26]
- ldrh r0, [r5, 0x2E]
- adds r0, 0xA
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r5, 0x2E]
- ldrh r0, [r5, 0x30]
- adds r0, 0x1
- strh r0, [r5, 0x30]
- ldrh r0, [r5, 0x32]
- adds r0, 0x1
- strh r0, [r5, 0x32]
- ldrh r0, [r5, 0x34]
- adds r0, 0x1
- strh r0, [r5, 0x34]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x33
- bne _0814128C
- adds r0, r5, 0
- bl sub_8141294
-_0814128C:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8141230
-
- thumb_func_start sub_8141294
-sub_8141294: @ 8141294
- push {r4-r7,lr}
- adds r5, r0, 0
- ldr r0, _081412B8 @ =gMain
- ldr r1, _081412BC @ =0x0000043d
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _081412C0
- movs r1, 0x3C
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- bne _081412F2
- adds r0, r5, 0
- bl DestroySpriteAndFreeResources
- b _0814130E
- .align 2, 0
-_081412B8: .4byte gMain
-_081412BC: .4byte 0x0000043d
-_081412C0:
- movs r1, 0x3C
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- bne _08141308
- ldr r1, _081412FC @ =0x02017840
- ldrb r0, [r1, 0xA]
- subs r0, 0x1
- strb r0, [r1, 0xA]
- lsls r0, 24
- cmp r0, 0
- bne _081412F2
- movs r7, 0
- ldr r6, _08141300 @ =gUnknown_0840B258
- ldr r4, _08141304 @ =gUnknown_0840B2B8
-_081412DC:
- ldrh r0, [r6, 0x6]
- bl FreeSpriteTilesByTag
- ldrh r0, [r4, 0x4]
- bl FreeSpritePaletteByTag
- adds r6, 0x8
- adds r4, 0x8
- adds r7, 0x1
- cmp r7, 0xB
- ble _081412DC
-_081412F2:
- adds r0, r5, 0
- bl DestroySprite
- b _0814130E
- .align 2, 0
-_081412FC: .4byte 0x02017840
-_08141300: .4byte gUnknown_0840B258
-_08141304: .4byte gUnknown_0840B2B8
-_08141308:
- adds r0, r5, 0
- bl DestroySprite
-_0814130E:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8141294
-
- thumb_func_start sub_8141314
-sub_8141314: @ 8141314
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- adds r4, r0, 0
- mov r9, r2
- lsls r4, 24
- lsrs r4, 24
- lsls r1, 24
- lsrs r6, r1, 24
- lsls r3, 24
- lsrs r7, r3, 24
- ldr r0, _08141378 @ =sub_81413DC
- movs r1, 0x5
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r1, _0814137C @ =gTasks
- lsls r0, 2
- add r0, r8
- lsls r0, 3
- adds r5, r0, r1
- strh r7, [r5, 0x26]
- strh r6, [r5, 0xE]
- mov r0, r9
- strh r0, [r5, 0x1C]
- mov r1, r9
- lsrs r0, r1, 16
- strh r0, [r5, 0x1E]
- cmp r4, 0
- bne _08141384
- lsls r0, r6, 20
- movs r2, 0x80
- lsls r2, 17
- adds r0, r2
- lsrs r0, 16
- ldr r2, _08141380 @ =gUnknown_0840B4D4
- lsls r1, r7, 1
- adds r1, r2
- ldrh r3, [r1]
- movs r1, 0x10
- movs r2, 0
- bl BlendPalette
- movs r0, 0x1
- strh r0, [r5, 0xA]
- b _081413AA
- .align 2, 0
-_08141378: .4byte sub_81413DC
-_0814137C: .4byte gTasks
-_08141380: .4byte gUnknown_0840B4D4
-_08141384:
- lsls r0, r6, 20
- movs r1, 0x80
- lsls r1, 17
- adds r0, r1
- lsrs r0, 16
- ldr r2, _081413CC @ =gUnknown_0840B4D4
- lsls r1, r7, 1
- adds r1, r2
- ldrh r3, [r1]
- movs r1, 0x10
- movs r2, 0x10
- bl BlendPalette
- movs r0, 0x10
- strh r0, [r5, 0x8]
- ldr r0, _081413D0 @ =0x0000ffff
- strh r0, [r5, 0xA]
- ldr r0, _081413D4 @ =sub_814146C
- str r0, [r5]
-_081413AA:
- ldr r0, _081413D8 @ =0x00007fff
- str r0, [sp]
- mov r0, r9
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- mov r0, r8
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_081413CC: .4byte gUnknown_0840B4D4
-_081413D0: .4byte 0x0000ffff
-_081413D4: .4byte sub_814146C
-_081413D8: .4byte 0x00007fff
- thumb_func_end sub_8141314
-
- thumb_func_start sub_81413DC
-sub_81413DC: @ 81413DC
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0, 0
- ldr r1, _0814142C @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r1, r0, 24
- movs r2, 0xC
- ldrsh r0, [r4, r2]
- cmp r0, 0x10
- bgt _08141434
- movs r2, 0xE
- ldrsh r0, [r4, r2]
- lsls r0, 20
- movs r2, 0x80
- lsls r2, 17
- adds r0, r2
- lsrs r0, 16
- ldrb r2, [r4, 0x8]
- ldr r3, _08141430 @ =gUnknown_0840B4D4
- lsls r1, 1
- adds r1, r3
- ldrh r3, [r1]
- movs r1, 0x10
- bl BlendPalette
- ldrh r0, [r4, 0xA]
- ldrh r1, [r4, 0x8]
- adds r0, r1
- strh r0, [r4, 0x8]
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- b _0814145C
- .align 2, 0
-_0814142C: .4byte gTasks
-_08141430: .4byte gUnknown_0840B4D4
-_08141434:
- ldr r0, _08141464 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0814145C
- ldrh r0, [r4, 0x1C]
- ldrh r1, [r4, 0x1E]
- lsls r1, 16
- orrs r0, r1
- ldr r1, _08141468 @ =0x00007fff
- str r1, [sp]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- adds r0, r5, 0
- bl DestroyTask
-_0814145C:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08141464: .4byte gPaletteFade
-_08141468: .4byte 0x00007fff
- thumb_func_end sub_81413DC
-
- thumb_func_start sub_814146C
-sub_814146C: @ 814146C
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _081414AC @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _081414A4
- ldr r0, _081414B0 @ =gTasks
- lsls r4, r2, 2
- adds r4, r2
- lsls r4, 3
- adds r4, r0
- ldrh r0, [r4, 0x1C]
- ldrh r1, [r4, 0x1E]
- lsls r1, 16
- orrs r0, r1
- ldr r1, _081414B4 @ =0x00007fff
- str r1, [sp]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r0, _081414B8 @ =sub_81414BC
- str r0, [r4]
-_081414A4:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081414AC: .4byte gPaletteFade
-_081414B0: .4byte gTasks
-_081414B4: .4byte 0x00007fff
-_081414B8: .4byte sub_81414BC
- thumb_func_end sub_814146C
-
- thumb_func_start sub_81414BC
-sub_81414BC: @ 81414BC
- push {r4,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _08141508 @ =gTasks
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r4, r0, r1
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r1, r0, 24
- movs r3, 0xC
- ldrsh r0, [r4, r3]
- cmp r0, 0x10
- bgt _08141510
- movs r2, 0xE
- ldrsh r0, [r4, r2]
- lsls r0, 20
- movs r3, 0x80
- lsls r3, 17
- adds r0, r3
- lsrs r0, 16
- ldrb r2, [r4, 0x8]
- ldr r3, _0814150C @ =gUnknown_0840B4D4
- lsls r1, 1
- adds r1, r3
- ldrh r3, [r1]
- movs r1, 0x10
- bl BlendPalette
- ldrh r0, [r4, 0xA]
- ldrh r1, [r4, 0x8]
- adds r0, r1
- strh r0, [r4, 0x8]
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- b _08141516
- .align 2, 0
-_08141508: .4byte gTasks
-_0814150C: .4byte gUnknown_0840B4D4
-_08141510:
- adds r0, r2, 0
- bl DestroyTask
-_08141516:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_81414BC
-
- thumb_func_start sub_814151C
-sub_814151C: @ 814151C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r7, r0, 24
- movs r0, 0
- mov r8, r0
- ldr r0, _08141550 @ =gUnknown_02024BE0
- ldr r3, _08141554 @ =gUnknown_0202F7C8
- ldrb r2, [r3]
- adds r0, r2, r0
- ldrb r6, [r0]
- ldr r1, _08141558 @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r5, r0, r1
- movs r1, 0x1C
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- beq _081415F4
- cmp r0, 0x1
- bgt _0814155C
- cmp r0, 0
- beq _08141562
- b _081416B6
- .align 2, 0
-_08141550: .4byte gUnknown_02024BE0
-_08141554: .4byte gUnknown_0202F7C8
-_08141558: .4byte gTasks
-_0814155C:
- cmp r0, 0x2
- beq _08141606
- b _081416B6
-_08141562:
- ldr r0, _0814159C @ =gUnknown_03004B00
- ldrh r0, [r0]
- strh r0, [r5, 0x1E]
- movs r2, 0xA0
- lsls r2, 3
- adds r0, r2, 0
- ldrh r4, [r5, 0x8]
- adds r0, r4
- strh r0, [r5, 0x8]
- ldrb r0, [r3]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _081415A4
- ldr r2, _081415A0 @ =gSprites
- lsls r3, r6, 4
- adds r1, r3, r6
- lsls r1, 2
- adds r1, r2
- ldrh r0, [r5, 0x8]
- lsls r0, 16
- asrs r0, 24
- ldrh r4, [r1, 0x24]
- adds r0, r4
- strh r0, [r1, 0x24]
- adds r4, r3, 0
- b _081415BC
- .align 2, 0
-_0814159C: .4byte gUnknown_03004B00
-_081415A0: .4byte gSprites
-_081415A4:
- ldr r3, _081415EC @ =gSprites
- lsls r4, r6, 4
- adds r2, r4, r6
- lsls r2, 2
- adds r2, r3
- ldrh r1, [r5, 0x8]
- lsls r1, 16
- asrs r1, 24
- ldrh r0, [r2, 0x24]
- subs r0, r1
- strh r0, [r2, 0x24]
- adds r2, r3, 0
-_081415BC:
- ldr r1, _081415F0 @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r3, r0, r1
- ldrb r0, [r3, 0x8]
- strh r0, [r3, 0x8]
- adds r0, r4, r6
- lsls r0, 2
- adds r0, r2
- movs r2, 0x20
- ldrsh r1, [r0, r2]
- movs r4, 0x24
- ldrsh r0, [r0, r4]
- adds r1, r0
- adds r1, 0x20
- movs r0, 0x98
- lsls r0, 1
- cmp r1, r0
- bls _081416B6
- ldrh r0, [r3, 0x1C]
- adds r0, 0x1
- strh r0, [r3, 0x1C]
- b _081416B6
- .align 2, 0
-_081415EC: .4byte gSprites
-_081415F0: .4byte gTasks
-_081415F4:
- ldrb r1, [r5, 0x1E]
- adds r0, r2, 0
- adds r2, r6, 0
- bl refresh_graphics_maybe
- ldrh r0, [r5, 0x1C]
- adds r0, 0x1
- strh r0, [r5, 0x1C]
- b _081416B6
-_08141606:
- movs r1, 0xA0
- lsls r1, 3
- adds r0, r1, 0
- ldrh r2, [r5, 0x8]
- adds r0, r2
- strh r0, [r5, 0x8]
- ldrb r0, [r3]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _0814163C
- ldr r0, _08141638 @ =gSprites
- lsls r3, r6, 4
- adds r2, r3, r6
- lsls r2, 2
- adds r2, r0
- ldrh r1, [r5, 0x8]
- lsls r1, 16
- asrs r1, 24
- ldrh r0, [r2, 0x24]
- subs r0, r1
- strh r0, [r2, 0x24]
- adds r4, r3, 0
- b _08141654
- .align 2, 0
-_08141638: .4byte gSprites
-_0814163C:
- ldr r0, _08141688 @ =gSprites
- lsls r2, r6, 4
- adds r1, r2, r6
- lsls r1, 2
- adds r1, r0
- ldrh r0, [r5, 0x8]
- lsls r0, 16
- asrs r0, 24
- ldrh r3, [r1, 0x24]
- adds r0, r3
- strh r0, [r1, 0x24]
- adds r4, r2, 0
-_08141654:
- ldr r1, _0814168C @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- ldrb r1, [r0, 0x8]
- strh r1, [r0, 0x8]
- ldr r0, _08141690 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- beq _08141694
- ldr r0, _08141688 @ =gSprites
- adds r1, r4, r6
- lsls r1, 2
- adds r1, r0
- movs r4, 0x24
- ldrsh r0, [r1, r4]
- cmp r0, 0
- bgt _081416AA
- movs r0, 0
- strh r0, [r1, 0x24]
- b _081416B0
- .align 2, 0
-_08141688: .4byte gSprites
-_0814168C: .4byte gTasks
-_08141690: .4byte gUnknown_0202F7C8
-_08141694:
- ldr r0, _081416C0 @ =gSprites
- adds r1, r4, r6
- lsls r1, 2
- adds r1, r0
- movs r3, 0x24
- ldrsh r0, [r1, r3]
- cmp r0, 0
- blt _081416AA
- strh r2, [r1, 0x24]
- movs r4, 0x1
- mov r8, r4
-_081416AA:
- mov r0, r8
- cmp r0, 0
- beq _081416B6
-_081416B0:
- adds r0, r7, 0
- bl move_anim_task_del
-_081416B6:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081416C0: .4byte gSprites
- thumb_func_end sub_814151C
-
- thumb_func_start sub_81416C4
-sub_81416C4: @ 81416C4
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _081416E8 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- movs r1, 0x26
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _08141744
- cmp r0, 0x1
- bgt _081416EC
- cmp r0, 0
- beq _081416F2
- b _081417B8
- .align 2, 0
-_081416E8: .4byte gTasks
-_081416EC:
- cmp r0, 0x2
- beq _0814177C
- b _081417B8
-_081416F2:
- ldr r0, _08141708 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl battle_get_per_side_status_permutated
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08141714
- ldr r1, _0814170C @ =REG_BLDCNT
- ldr r2, _08141710 @ =0x00003f42
- b _08141718
- .align 2, 0
-_08141708: .4byte gUnknown_0202F7C8
-_0814170C: .4byte REG_BLDCNT
-_08141710: .4byte 0x00003f42
-_08141714:
- ldr r1, _08141734 @ =REG_BLDCNT
- ldr r2, _08141738 @ =0x00003f44
-_08141718:
- adds r0, r2, 0
- strh r0, [r1]
- ldr r1, _0814173C @ =REG_BLDALPHA
- movs r0, 0x10
- strh r0, [r1]
- ldr r1, _08141740 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldrh r1, [r0, 0x26]
- adds r1, 0x1
- strh r1, [r0, 0x26]
- b _081417B8
- .align 2, 0
-_08141734: .4byte REG_BLDCNT
-_08141738: .4byte 0x00003f44
-_0814173C: .4byte REG_BLDALPHA
-_08141740: .4byte gTasks
-_08141744:
- ldrh r0, [r4, 0xA]
- adds r1, r0, 0x1
- strh r1, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _081417B8
- movs r0, 0
- strh r0, [r4, 0xA]
- ldrh r1, [r4, 0x8]
- adds r1, 0x1
- strh r1, [r4, 0x8]
- ldr r3, _08141778 @ =REG_BLDALPHA
- lsls r2, r1, 8
- movs r0, 0x10
- subs r0, r1
- orrs r2, r0
- strh r2, [r3]
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x10
- bne _081417B8
- ldrh r0, [r4, 0x26]
- adds r0, 0x1
- strh r0, [r4, 0x26]
- b _081417B8
- .align 2, 0
-_08141778: .4byte REG_BLDALPHA
-_0814177C:
- ldr r1, _081417C0 @ =gUnknown_02024BE0
- ldr r3, _081417C4 @ =gUnknown_0202F7C8
- ldrb r0, [r3]
- adds r0, r1
- ldrb r1, [r0]
- ldr r2, _081417C8 @ =gSprites
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r0, [r0, 0x4]
- lsls r0, 22
- lsrs r0, 17
- ldr r1, _081417CC @ =0x06010000
- adds r0, r1
- movs r1, 0
- str r1, [sp]
- ldr r1, _081417D0 @ =0x040000d4
- mov r2, sp
- str r2, [r1]
- str r0, [r1, 0x4]
- ldr r0, _081417D4 @ =0x85000200
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- ldrb r0, [r3]
- bl sub_80324E0
- adds r0, r5, 0
- bl move_anim_task_del
-_081417B8:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_081417C0: .4byte gUnknown_02024BE0
-_081417C4: .4byte gUnknown_0202F7C8
-_081417C8: .4byte gSprites
-_081417CC: .4byte 0x06010000
-_081417D0: .4byte 0x040000d4
-_081417D4: .4byte 0x85000200
- thumb_func_end sub_81416C4
-
- thumb_func_start sub_81417D8
-sub_81417D8: @ 81417D8
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _081417FC @ =gUnknown_03004B00
- ldr r1, _08141800 @ =gUnknown_0202F7C8
- ldrb r1, [r1]
- lsls r1, 2
- ldr r2, _08141804 @ =0x02017800
- adds r1, r2
- ldr r1, [r1]
- lsls r1, 29
- lsrs r1, 31
- strh r1, [r3, 0xE]
- bl move_anim_task_del
- pop {r0}
- bx r0
- .align 2, 0
-_081417FC: .4byte gUnknown_03004B00
-_08141800: .4byte gUnknown_0202F7C8
-_08141804: .4byte 0x02017800
- thumb_func_end sub_81417D8
-
- thumb_func_start sub_8141808
-sub_8141808: @ 8141808
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08141820 @ =gUnknown_0202F7C9
- ldr r1, _08141824 @ =gUnknown_02024C0A
- ldrb r1, [r1]
- strb r1, [r2]
- bl move_anim_task_del
- pop {r0}
- bx r0
- .align 2, 0
-_08141820: .4byte gUnknown_0202F7C9
-_08141824: .4byte gUnknown_02024C0A
- thumb_func_end sub_8141808
-
- thumb_func_start sub_8141828
-sub_8141828: @ 8141828
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r6, r0, 24
- movs r0, 0
- mov r8, r0
- lsls r0, r6, 1
- adds r0, r6
- lsls r0, 2
- ldr r1, _081418E0 @ =0x02017810
- adds r0, r1
- ldrb r1, [r0]
- movs r2, 0x80
- orrs r1, r2
- strb r1, [r0]
- adds r0, r4, 0
- movs r1, 0x1
- bl GetMonData
- adds r5, r0, 0
- adds r0, r4, 0
- movs r1, 0
- bl GetMonData
- adds r4, r0, 0
- adds r0, r6, 0
- bl b_side_obj__get_some_boolean
- lsls r0, 24
- cmp r0, 0
- beq _081418FC
- lsrs r0, r5, 16
- ldr r7, _081418E4 @ =0x0000ffff
- ands r5, r7
- eors r0, r5
- lsrs r1, r4, 16
- eors r0, r1
- ands r4, r7
- eors r0, r4
- cmp r0, 0x7
- bhi _08141882
- movs r0, 0x1
- mov r8, r0
-_08141882:
- mov r0, r8
- cmp r0, 0
- beq _081418FC
- ldr r0, _081418E8 @ =0x000027f9
- bl GetSpriteTileStartByTag
- lsls r0, 16
- lsrs r0, 16
- cmp r0, r7
- bne _081418A2
- ldr r0, _081418EC @ =gBattleAnimPicTable + (233 * 8)
- bl LoadCompressedObjectPic
- ldr r0, _081418F0 @ =gBattleAnimPaletteTable + (233 * 8)
- bl LoadCompressedObjectPalette
-_081418A2:
- ldr r5, _081418F4 @ =sub_814191C
- adds r0, r5, 0
- movs r1, 0xA
- bl CreateTask
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- movs r1, 0xA
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _081418F8 @ =gTasks
- lsls r2, r4, 2
- adds r2, r4
- lsls r2, 3
- adds r2, r3
- movs r4, 0
- strh r6, [r2, 0x8]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r3
- strh r6, [r1, 0x8]
- strh r4, [r2, 0xA]
- movs r0, 0x1
- strh r0, [r1, 0xA]
- b _0814190E
- .align 2, 0
-_081418E0: .4byte 0x02017810
-_081418E4: .4byte 0x0000ffff
-_081418E8: .4byte 0x000027f9
-_081418EC: .4byte gBattleAnimPicTable + (233 * 8)
-_081418F0: .4byte gBattleAnimPaletteTable + (233 * 8)
-_081418F4: .4byte sub_814191C
-_081418F8: .4byte gTasks
-_081418FC:
- lsls r0, r6, 1
- adds r0, r6
- lsls r0, 2
- ldr r1, _08141918 @ =0x02017810
- adds r0, r1
- ldrb r1, [r0, 0x1]
- movs r2, 0x1
- orrs r1, r2
- strb r1, [r0, 0x1]
-_0814190E:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08141918: .4byte 0x02017810
- thumb_func_end sub_8141828
-
- thumb_func_start sub_814191C
-sub_814191C: @ 814191C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r1, _08141944 @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r4, r0, r1
- ldrh r1, [r4, 0x22]
- movs r2, 0x22
- ldrsh r0, [r4, r2]
- cmp r0, 0x3B
- bgt _08141948
- adds r0, r1, 0x1
- strh r0, [r4, 0x22]
- b _08141AB8
- .align 2, 0
-_08141944: .4byte gTasks
-_08141948:
- ldr r0, _08141998 @ =0x02017840
- ldrb r0, [r0, 0xA]
- cmp r0, 0
- beq _08141952
- b _08141AB8
-_08141952:
- ldrh r0, [r4, 0x1C]
- adds r1, r0, 0x1
- strh r1, [r4, 0x1C]
- lsls r0, 16
- movs r1, 0xC0
- lsls r1, 10
- ands r1, r0
- cmp r1, 0
- beq _08141966
- b _08141AB8
-_08141966:
- ldrb r0, [r4, 0x8]
- mov r8, r0
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r5, r0, 24
- mov r0, r8
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r2, r0, 24
- movs r1, 0x1E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _081419A0
- ldr r0, _0814199C @ =gBattleAnimSpriteTemplate_84024E8
- adds r1, r5, 0
- movs r3, 0x5
- bl CreateSprite
- lsls r0, 24
- lsrs r5, r0, 24
- b _08141A02
- .align 2, 0
-_08141998: .4byte 0x02017840
-_0814199C: .4byte gBattleAnimSpriteTemplate_84024E8
-_081419A0:
- cmp r0, 0
- blt _081419D4
- cmp r0, 0x3
- bgt _081419D4
- ldr r0, _081419CC @ =gSpriteTemplate_8402500
- adds r1, r5, 0
- movs r3, 0x5
- bl CreateSprite
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _081419D0 @ =gSprites
- lsls r2, r5, 4
- adds r2, r5
- lsls r2, 2
- adds r2, r0
- ldrh r3, [r2, 0x4]
- lsls r1, r3, 22
- lsrs r1, 22
- adds r1, 0x4
- b _081419F4
- .align 2, 0
-_081419CC: .4byte gSpriteTemplate_8402500
-_081419D0: .4byte gSprites
-_081419D4:
- ldr r0, _08141A2C @ =gSpriteTemplate_8402500
- adds r1, r5, 0
- movs r3, 0x5
- bl CreateSprite
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _08141A30 @ =gSprites
- lsls r2, r5, 4
- adds r2, r5
- lsls r2, 2
- adds r2, r0
- ldrh r3, [r2, 0x4]
- lsls r1, r3, 22
- lsrs r1, 22
- adds r1, 0x5
-_081419F4:
- ldr r4, _08141A34 @ =0x000003ff
- adds r0, r4, 0
- ands r1, r0
- ldr r0, _08141A38 @ =0xfffffc00
- ands r0, r3
- orrs r0, r1
- strh r0, [r2, 0x4]
-_08141A02:
- ldr r2, _08141A3C @ =gTasks
- lsls r1, r7, 2
- adds r0, r1, r7
- lsls r0, 3
- adds r6, r0, r2
- movs r2, 0xA
- ldrsh r0, [r6, r2]
- mov r9, r1
- cmp r0, 0
- bne _08141A44
- ldr r1, _08141A30 @ =gSprites
- lsls r2, r5, 4
- adds r0, r2, r5
- lsls r0, 2
- adds r1, 0x1C
- adds r0, r1
- ldr r1, _08141A40 @ =sub_8141B20
- str r1, [r0]
- adds r4, r2, 0
- b _08141A8C
- .align 2, 0
-_08141A2C: .4byte gSpriteTemplate_8402500
-_08141A30: .4byte gSprites
-_08141A34: .4byte 0x000003ff
-_08141A38: .4byte 0xfffffc00
-_08141A3C: .4byte gTasks
-_08141A40: .4byte sub_8141B20
-_08141A44:
- ldr r3, _08141AC4 @ =gSprites
- lsls r4, r5, 4
- adds r1, r4, r5
- lsls r1, 2
- adds r0, r3, 0
- adds r0, 0x1C
- adds r0, r1, r0
- ldr r2, _08141AC8 @ =sub_8141B74
- str r2, [r0]
- adds r1, r3
- ldr r0, _08141ACC @ =0x0000ffe0
- strh r0, [r1, 0x24]
- movs r0, 0x20
- strh r0, [r1, 0x26]
- adds r1, 0x3E
- ldrb r0, [r1]
- movs r2, 0x4
- orrs r0, r2
- strb r0, [r1]
- movs r1, 0x1E
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _08141A8C
- mov r0, r8
- bl battle_side_get_owner
- lsls r0, 24
- movs r1, 0x3F
- cmp r0, 0
- bne _08141A82
- movs r1, 0xC0
-_08141A82:
- lsls r1, 24
- asrs r1, 24
- movs r0, 0x66
- bl PlaySE12WithPanning
-_08141A8C:
- ldr r1, _08141AC4 @ =gSprites
- adds r0, r4, r5
- lsls r0, 2
- adds r0, r1
- strh r7, [r0, 0x2E]
- ldr r1, _08141AD0 @ =gTasks
- mov r2, r9
- adds r0, r2, r7
- lsls r0, 3
- adds r2, r0, r1
- ldrh r1, [r2, 0x1E]
- adds r1, 0x1
- strh r1, [r2, 0x1E]
- ldrh r0, [r2, 0x20]
- adds r0, 0x1
- strh r0, [r2, 0x20]
- lsls r1, 16
- asrs r1, 16
- cmp r1, 0x5
- bne _08141AB8
- ldr r0, _08141AD4 @ =sub_8141AD8
- str r0, [r2]
-_08141AB8:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08141AC4: .4byte gSprites
-_08141AC8: .4byte sub_8141B74
-_08141ACC: .4byte 0x0000ffe0
-_08141AD0: .4byte gTasks
-_08141AD4: .4byte sub_8141AD8
- thumb_func_end sub_814191C
-
- thumb_func_start sub_8141AD8
-sub_8141AD8: @ 8141AD8
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- adds r3, r0, 0
- ldr r1, _08141B18 @ =gTasks
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r1, r0, r1
- movs r2, 0x20
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _08141B14
- movs r2, 0xA
- ldrsh r0, [r1, r2]
- cmp r0, 0x1
- bne _08141B0E
- ldrb r1, [r1, 0x8]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _08141B1C @ =0x02017810
- adds r0, r1
- ldrb r1, [r0, 0x1]
- movs r2, 0x1
- orrs r1, r2
- strb r1, [r0, 0x1]
-_08141B0E:
- adds r0, r3, 0
- bl DestroyTask
-_08141B14:
- pop {r0}
- bx r0
- .align 2, 0
-_08141B18: .4byte gTasks
-_08141B1C: .4byte 0x02017810
- thumb_func_end sub_8141AD8
-
- thumb_func_start sub_8141B20
-sub_8141B20: @ 8141B20
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r1, 0x18
- bl Sin
- strh r0, [r4, 0x24]
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r1, 0x18
- bl Cos
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x30]
- adds r0, 0xC
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xFF
- ble _08141B6A
- ldr r2, _08141B70 @ =gTasks
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrh r1, [r0, 0x20]
- subs r1, 0x1
- strh r1, [r0, 0x20]
- adds r0, r4, 0
- bl FreeSpriteOamMatrix
- adds r0, r4, 0
- bl DestroySprite
-_08141B6A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08141B70: .4byte gTasks
- thumb_func_end sub_8141B20
-
- thumb_func_start sub_8141B74
-sub_8141B74: @ 8141B74
- push {r4,lr}
- adds r4, r0, 0
- ldrh r1, [r4, 0x30]
- movs r2, 0x30
- ldrsh r0, [r4, r2]
- cmp r0, 0x3
- bgt _08141B88
- adds r0, r1, 0x1
- strh r0, [r4, 0x30]
- b _08141BCA
-_08141B88:
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- ldrh r1, [r4, 0x24]
- adds r1, 0x5
- strh r1, [r4, 0x24]
- ldrh r0, [r4, 0x26]
- subs r0, 0x5
- strh r0, [r4, 0x26]
- lsls r1, 16
- asrs r1, 16
- cmp r1, 0x20
- ble _08141BCA
- ldr r2, _08141BD0 @ =gTasks
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrh r1, [r0, 0x20]
- subs r1, 0x1
- strh r1, [r0, 0x20]
- adds r0, r4, 0
- bl FreeSpriteOamMatrix
- adds r0, r4, 0
- bl DestroySprite
-_08141BCA:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08141BD0: .4byte gTasks
- thumb_func_end sub_8141B74
-
- thumb_func_start sub_8141BD4
-sub_8141BD4: @ 8141BD4
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _08141BFC @ =gBattleAnimPicTable + (269 * 8)
- bl LoadCompressedObjectPic
- ldr r0, _08141C00 @ =gBattleAnimPaletteTable + (269 * 8)
- bl LoadCompressedObjectPalette
- ldr r0, _08141C04 @ =0x0000281d
- bl IndexOfSpritePaletteTag
- adds r0, r4, 0
- bl move_anim_task_del
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08141BFC: .4byte gBattleAnimPicTable + (269 * 8)
-_08141C00: .4byte gBattleAnimPaletteTable + (269 * 8)
-_08141C04: .4byte 0x0000281d
- thumb_func_end sub_8141BD4
-
- thumb_func_start sub_8141C08
-sub_8141C08: @ 8141C08
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r5, _08141C2C @ =0x0000281d
- adds r0, r5, 0
- bl FreeSpriteTilesByTag
- adds r0, r5, 0
- bl FreeSpritePaletteByTag
- adds r0, r4, 0
- bl move_anim_task_del
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08141C2C: .4byte 0x0000281d
- thumb_func_end sub_8141C08
-
- thumb_func_start sub_8141C30
-sub_8141C30: @ 8141C30
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0
- bl sub_80787B0
- movs r0, 0x1E
- strh r0, [r4, 0x2E]
- movs r0, 0x1
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- ldr r5, _08141CA4 @ =gUnknown_03004B00
- lsrs r0, 24
- ldrh r1, [r5, 0x4]
- adds r0, r1
- strh r0, [r4, 0x32]
- movs r0, 0x1
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r5, [r5, 0x6]
- adds r0, r5
- strh r0, [r4, 0x36]
- ldr r0, _08141CA8 @ =0x0000ffe0
- strh r0, [r4, 0x38]
- adds r0, r4, 0
- bl sub_80786EC
- ldr r1, _08141CAC @ =gUnknown_02024BE0
- ldr r0, _08141CB0 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _08141CB4 @ =gSprites
- adds r0, r1
- movs r1, 0x1
- bl StartSpriteAnim
- ldr r0, _08141CB8 @ =sub_8141CBC
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08141CA4: .4byte gUnknown_03004B00
-_08141CA8: .4byte 0x0000ffe0
-_08141CAC: .4byte gUnknown_02024BE0
-_08141CB0: .4byte gUnknown_0202F7C8
-_08141CB4: .4byte gSprites
-_08141CB8: .4byte sub_8141CBC
- thumb_func_end sub_8141C30
-
- thumb_func_start sub_8141CBC
-sub_8141CBC: @ 8141CBC
- push {lr}
- adds r3, r0, 0
- ldr r2, _08141CE4 @ =gSprites
- ldr r1, _08141CE8 @ =gUnknown_02024BE0
- ldr r0, _08141CEC @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x2B
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _08141CE0
- ldr r0, _08141CF0 @ =sub_8141CF4
- str r0, [r3, 0x1C]
-_08141CE0:
- pop {r0}
- bx r0
- .align 2, 0
-_08141CE4: .4byte gSprites
-_08141CE8: .4byte gUnknown_02024BE0
-_08141CEC: .4byte gUnknown_0202F7C8
-_08141CF0: .4byte sub_8141CF4
- thumb_func_end sub_8141CBC
-
- thumb_func_start sub_8141CF4
-sub_8141CF4: @ 8141CF4
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8078718
- lsls r0, 24
- cmp r0, 0
- beq _08141D16
- movs r0, 0
- strh r0, [r4, 0x2E]
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _08141D1C @ =sub_8141D20
- str r0, [r4, 0x1C]
-_08141D16:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08141D1C: .4byte sub_8141D20
- thumb_func_end sub_8141CF4
-
- thumb_func_start sub_8141D20
-sub_8141D20: @ 8141D20
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, _08141D70 @ =gSprites
- ldr r3, _08141D74 @ =gUnknown_02024BE0
- ldr r2, _08141D78 @ =gUnknown_0202F7C8
- ldrb r0, [r2]
- adds r0, r3
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- adds r0, 0x3F
- ldrb r0, [r0]
- lsls r0, 27
- cmp r0, 0
- bge _08141D68
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- cmp r0, 0
- ble _08141D68
- ldrb r0, [r2]
- adds r0, r3
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r1, 0
- bl StartSpriteAnim
- adds r0, r4, 0
- bl move_anim_8072740
-_08141D68:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08141D70: .4byte gSprites
-_08141D74: .4byte gUnknown_02024BE0
-_08141D78: .4byte gUnknown_0202F7C8
- thumb_func_end sub_8141D20
-
- thumb_func_start sub_8141D7C
-sub_8141D7C: @ 8141D7C
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0
- bl battle_get_side_with_given_state
- ldr r1, _08141DA4 @ =gUnknown_0202F7C8
- strb r0, [r1]
- movs r0, 0x1
- bl battle_get_side_with_given_state
- ldr r1, _08141DA8 @ =gUnknown_0202F7C9
- strb r0, [r1]
- adds r0, r4, 0
- bl move_anim_task_del
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08141DA4: .4byte gUnknown_0202F7C8
-_08141DA8: .4byte gUnknown_0202F7C9
- thumb_func_end sub_8141D7C
-
- thumb_func_start sub_8141DAC
-sub_8141DAC: @ 8141DAC
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _08141DC0 @ =0x02017840
- ldrh r1, [r0]
- cmp r1, 0x53
- bne _08141DC8
- ldr r1, _08141DC4 @ =gUnknown_03004B00
- movs r0, 0x1
- b _08141E00
- .align 2, 0
-_08141DC0: .4byte 0x02017840
-_08141DC4: .4byte gUnknown_03004B00
-_08141DC8:
- cmp r1, 0xFA
- bne _08141DD8
- ldr r1, _08141DD4 @ =gUnknown_03004B00
- movs r0, 0x2
- b _08141E00
- .align 2, 0
-_08141DD4: .4byte gUnknown_03004B00
-_08141DD8:
- cmp r1, 0x80
- bne _08141DE8
- ldr r1, _08141DE4 @ =gUnknown_03004B00
- movs r0, 0x3
- b _08141E00
- .align 2, 0
-_08141DE4: .4byte gUnknown_03004B00
-_08141DE8:
- movs r0, 0xA4
- lsls r0, 1
- cmp r1, r0
- bne _08141DFC
- ldr r1, _08141DF8 @ =gUnknown_03004B00
- movs r0, 0x4
- b _08141E00
- .align 2, 0
-_08141DF8: .4byte gUnknown_03004B00
-_08141DFC:
- ldr r1, _08141E0C @ =gUnknown_03004B00
- movs r0, 0
-_08141E00:
- strh r0, [r1]
- adds r0, r2, 0
- bl move_anim_task_del
- pop {r0}
- bx r0
- .align 2, 0
-_08141E0C: .4byte gUnknown_03004B00
- thumb_func_end sub_8141DAC
-
- thumb_func_start sub_8141E10
-sub_8141E10: @ 8141E10
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08141E2C @ =gUnknown_0202F7C8
- ldr r1, _08141E30 @ =0x02017840
- ldrh r1, [r1]
- strb r1, [r2]
- ldr r2, _08141E34 @ =gUnknown_0202F7C9
- lsrs r1, 8
- strb r1, [r2]
- bl move_anim_task_del
- pop {r0}
- bx r0
- .align 2, 0
-_08141E2C: .4byte gUnknown_0202F7C8
-_08141E30: .4byte 0x02017840
-_08141E34: .4byte gUnknown_0202F7C9
- thumb_func_end sub_8141E10
-
- thumb_func_start sub_8141E38
-sub_8141E38: @ 8141E38
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- pop {r0}
- bx r0
- thumb_func_end sub_8141E38
-
- thumb_func_start sub_8141E4C
-sub_8141E4C: @ 8141E4C
- push {lr}
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- pop {r0}
- bx r0
- thumb_func_end sub_8141E4C
-
- thumb_func_start sub_8141E64
-sub_8141E64: @ 8141E64
- push {r4,lr}
- sub sp, 0x4
- ldr r0, _08141E80 @ =gMain
- ldr r1, _08141E84 @ =0x0000043c
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x4
- bhi _08141EA0
- lsls r0, 2
- ldr r1, _08141E88 @ =_08141E8C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08141E80: .4byte gMain
-_08141E84: .4byte 0x0000043c
-_08141E88: .4byte _08141E8C
- .align 2, 0
-_08141E8C:
- .4byte _08141EA0
- .4byte _08141EC0
- .4byte _08141EC6
- .4byte _08141F1C
- .4byte _08141F58
-_08141EA0:
- movs r0, 0
- bl SetVBlankCallback
- bl sub_81433E0
- ldr r0, _08141EB8 @ =gMain
- ldr r2, _08141EBC @ =0x0000043c
- adds r0, r2
- movs r1, 0x1
- strb r1, [r0]
- b _08141F84
- .align 2, 0
-_08141EB8: .4byte gMain
-_08141EBC: .4byte 0x0000043c
-_08141EC0:
- bl sub_8143570
- b _08141F38
-_08141EC6:
- 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, _08141F04 @ =sub_8141E38
- bl SetVBlankCallback
- ldr r3, _08141F08 @ =0x04000208
- ldrh r2, [r3]
- strh r4, [r3]
- ldr r4, _08141F0C @ =0x04000200
- ldrh r0, [r4]
- movs r1, 0x1
- orrs r0, r1
- strh r0, [r4]
- strh r2, [r3]
- ldr r2, _08141F10 @ =REG_DISPSTAT
- ldrh r0, [r2]
- movs r1, 0x8
- orrs r0, r1
- strh r0, [r2]
- ldr r1, _08141F14 @ =gMain
- ldr r2, _08141F18 @ =0x0000043c
- adds r1, r2
- b _08141F3E
- .align 2, 0
-_08141F04: .4byte sub_8141E38
-_08141F08: .4byte 0x04000208
-_08141F0C: .4byte 0x04000200
-_08141F10: .4byte REG_DISPSTAT
-_08141F14: .4byte gMain
-_08141F18: .4byte 0x0000043c
-_08141F1C:
- ldr r1, _08141F48 @ =REG_BLDCNT
- ldr r2, _08141F4C @ =0x00003f42
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- movs r2, 0xE2
- lsls r2, 3
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0
- strh r0, [r1]
- bl sub_81435B8
-_08141F38:
- ldr r1, _08141F50 @ =gMain
- ldr r0, _08141F54 @ =0x0000043c
- adds r1, r0
-_08141F3E:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _08141F84
- .align 2, 0
-_08141F48: .4byte REG_BLDCNT
-_08141F4C: .4byte 0x00003f42
-_08141F50: .4byte gMain
-_08141F54: .4byte 0x0000043c
-_08141F58:
- bl UpdatePaletteFade
- ldr r0, _08141F7C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08141F84
- ldr r0, _08141F80 @ =sub_8141E4C
- bl SetMainCallback2
- movs r0, 0xDA
- lsls r0, 1
- bl PlayBGM
- movs r0, 0
- b _08141F86
- .align 2, 0
-_08141F7C: .4byte gPaletteFade
-_08141F80: .4byte sub_8141E4C
-_08141F84:
- movs r0, 0x1
-_08141F86:
- add sp, 0x4
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8141E64
-
- thumb_func_start sub_8141F90
-sub_8141F90: @ 8141F90
- push {r4,lr}
- bl sub_8141E64
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _08141FB6
- ldr r0, _08141FBC @ =sub_8141FF8
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08141FC0 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r4, [r1, 0x8]
-_08141FB6:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08141FBC: .4byte sub_8141FF8
-_08141FC0: .4byte gTasks
- thumb_func_end sub_8141F90
-
- thumb_func_start sub_8141FC4
-sub_8141FC4: @ 8141FC4
- push {lr}
- bl sub_8141E64
- lsls r0, 24
- cmp r0, 0
- bne _08141FEA
- ldr r0, _08141FF0 @ =sub_8141FF8
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08141FF4 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r0, 0x1
- strh r0, [r1, 0x8]
-_08141FEA:
- pop {r0}
- bx r0
- .align 2, 0
-_08141FF0: .4byte sub_8141FF8
-_08141FF4: .4byte gTasks
- thumb_func_end sub_8141FC4
-
- thumb_func_start sub_8141FF8
-sub_8141FF8: @ 8141FF8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r0, _081420C8 @ =0x0201c000
- mov r9, r0
- ldr r1, _081420CC @ =gTasks
- mov r2, r8
- lsls r0, r2, 2
- add r0, r8
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0xC]
- movs r7, 0
- ldr r4, _081420D0 @ =0xfffffe00
- mov r10, r4
-_08142024:
- movs r0, 0x64
- adds r1, r7, 0
- muls r1, r0
- ldr r0, _081420D4 @ =gPlayerParty
- adds r6, r1, r0
- adds r0, r6, 0
- movs r1, 0xB
- bl GetMonData
- adds r3, r0, 0
- cmp r3, 0
- beq _081420DC
- adds r0, r6, 0
- movs r1, 0x41
- bl GetMonData
- lsls r4, r7, 2
- adds r4, r7
- lsls r4, 2
- mov r1, r9
- adds r5, r1, r4
- ldr r2, _081420D8 @ =0x000001ff
- adds r1, r2, 0
- ands r0, r1
- ldrh r1, [r5, 0x8]
- mov r2, r10
- ands r1, r2
- orrs r1, r0
- strh r1, [r5, 0x8]
- adds r0, r6, 0
- movs r1, 0x1
- bl GetMonData
- str r0, [r5]
- adds r0, r6, 0
- movs r1, 0
- bl GetMonData
- mov r1, r9
- adds r1, 0x4
- adds r1, r4
- str r0, [r1]
- adds r0, r6, 0
- movs r1, 0x38
- bl GetMonData
- lsls r0, 1
- ldrb r2, [r5, 0x9]
- movs r1, 0x1
- ands r1, r2
- orrs r1, r0
- strb r1, [r5, 0x9]
- adds r0, r6, 0
- movs r1, 0x2
- mov r2, sp
- bl GetMonData
- movs r2, 0
- mov r6, r8
- lsls r5, r6, 2
- mov r3, r9
- adds r3, 0xA
-_081420A0:
- adds r1, r2, r4
- adds r1, r3, r1
- mov r6, sp
- adds r0, r6, r2
- ldrb r0, [r0]
- strb r0, [r1]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x9
- bls _081420A0
- ldr r0, _081420CC @ =gTasks
- mov r2, r8
- adds r1, r5, r2
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0xC]
- adds r0, 0x1
- strh r0, [r1, 0xC]
- b _08142108
- .align 2, 0
-_081420C8: .4byte 0x0201c000
-_081420CC: .4byte gTasks
-_081420D0: .4byte 0xfffffe00
-_081420D4: .4byte gPlayerParty
-_081420D8: .4byte 0x000001ff
-_081420DC:
- lsls r1, r7, 2
- adds r1, r7
- lsls r1, 2
- mov r4, r9
- adds r2, r4, r1
- ldrh r0, [r2, 0x8]
- mov r6, r10
- ands r0, r6
- strh r0, [r2, 0x8]
- str r3, [r2]
- mov r0, r9
- adds r0, 0x4
- adds r0, r1
- str r3, [r0]
- ldrb r1, [r2, 0x9]
- movs r0, 0x1
- ands r0, r1
- strb r0, [r2, 0x9]
- movs r0, 0xFF
- strb r0, [r2, 0xA]
- mov r0, r8
- lsls r5, r0, 2
-_08142108:
- adds r0, r7, 0x1
- lsls r0, 16
- lsrs r7, r0, 16
- cmp r7, 0x5
- bls _08142024
- ldr r0, _08142158 @ =gUnknown_0203931C
- movs r3, 0
- str r3, [r0]
- ldr r4, _0814215C @ =gTasks
- mov r2, r8
- adds r1, r5, r2
- lsls r1, 3
- adds r2, r1, r4
- strh r3, [r2, 0xA]
- movs r0, 0xFF
- strh r0, [r2, 0x10]
- movs r7, 0
- adds r3, r4, 0
- adds r3, 0x8
- movs r2, 0xFF
-_08142130:
- adds r0, r7, 0x5
- lsls r0, 1
- adds r0, r1
- adds r0, r3
- strh r2, [r0]
- adds r0, r7, 0x1
- lsls r0, 16
- lsrs r7, r0, 16
- cmp r7, 0x5
- bls _08142130
- mov r6, r8
- adds r0, r5, r6
- lsls r0, 3
- adds r1, r0, r4
- movs r2, 0x8
- ldrsh r0, [r1, r2]
- cmp r0, 0
- beq _08142164
- ldr r0, _08142160 @ =sub_81422E8
- b _08142166
- .align 2, 0
-_08142158: .4byte gUnknown_0203931C
-_0814215C: .4byte gTasks
-_08142160: .4byte sub_81422E8
-_08142164:
- ldr r0, _08142178 @ =sub_814217C
-_08142166:
- str r0, [r1]
- add sp, 0xC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08142178: .4byte sub_814217C
- thumb_func_end sub_8141FF8
-
- thumb_func_start sub_814217C
-sub_814217C: @ 814217C
- 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, _081421C4 @ =0x0201c000
- mov r9, r0
- movs r7, 0x80
- lsls r7, 6
- add r7, r9
- ldr r0, _081421C8 @ =gUnknown_02039324
- ldrb r0, [r0]
- cmp r0, 0
- bne _081421D4
- movs r4, 0
- mov r0, r8
- lsls r0, 2
- mov r10, r0
- ldr r5, _081421CC @ =0xfffe4000
- add r5, r9
- movs r3, 0xF0
- lsls r3, 9
- movs r2, 0
- ldr r1, _081421D0 @ =0x00001fff
-_081421B2:
- adds r0, r4, r3
- adds r0, r5
- strb r2, [r0]
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, r1
- bls _081421B2
- b _081421E0
- .align 2, 0
-_081421C4: .4byte 0x0201c000
-_081421C8: .4byte gUnknown_02039324
-_081421CC: .4byte 0xfffe4000
-_081421D0: .4byte 0x00001fff
-_081421D4:
- movs r0, 0x3
- bl sub_8125EC8
- mov r0, r8
- lsls r0, 2
- mov r10, r0
-_081421E0:
- movs r4, 0
- ldrh r1, [r7, 0x8]
- ldr r2, _081421E8 @ =0x000001ff
- b _081421FA
- .align 2, 0
-_081421E8: .4byte 0x000001ff
-_081421EC:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- adds r7, 0x78
- cmp r4, 0x31
- bhi _08142206
- ldrh r1, [r7, 0x8]
-_081421FA:
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- bne _081421EC
- cmp r4, 0x31
- bls _08142228
-_08142206:
- ldr r5, _08142264 @ =0x0201e000
- adds r6, r5, 0
- adds r5, 0x78
- movs r4, 0
- subs r7, 0x78
-_08142210:
- adds r0, r6, 0
- adds r1, r5, 0
- movs r2, 0x78
- bl memcpy
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- adds r6, 0x78
- adds r5, 0x78
- cmp r4, 0x30
- bls _08142210
-_08142228:
- adds r0, r7, 0
- mov r1, r9
- movs r2, 0x78
- bl memcpy
- movs r0, 0x2
- movs r1, 0xE
- movs r2, 0x1B
- movs r3, 0x13
- bl MenuDrawTextWindow
- ldr r0, _08142268 @ =gMenuText_HOFSaving
- movs r1, 0x3
- movs r2, 0xF
- bl MenuPrint
- ldr r1, _0814226C @ =gTasks
- mov r0, r10
- add r0, r8
- lsls r0, 3
- adds r0, r1
- ldr r1, _08142270 @ =sub_8142274
- 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
-_08142264: .4byte 0x0201e000
-_08142268: .4byte gMenuText_HOFSaving
-_0814226C: .4byte gTasks
-_08142270: .4byte sub_8142274
- thumb_func_end sub_814217C
-
- thumb_func_start sub_8142274
-sub_8142274: @ 8142274
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r1, _081422A8 @ =gUnknown_03005EBC
- ldr r0, _081422AC @ =sub_8141FC4
- str r0, [r1]
- movs r0, 0x3
- bl sub_8125D44
- movs r0, 0x37
- bl PlaySE
- ldr r1, _081422B0 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _081422B4 @ =sub_81422B8
- str r1, [r0]
- movs r1, 0x20
- strh r1, [r0, 0xE]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081422A8: .4byte gUnknown_03005EBC
-_081422AC: .4byte sub_8141FC4
-_081422B0: .4byte gTasks
-_081422B4: .4byte sub_81422B8
- thumb_func_end sub_8142274
-
- thumb_func_start sub_81422B8
-sub_81422B8: @ 81422B8
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _081422D8 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldrh r2, [r1, 0xE]
- movs r3, 0xE
- ldrsh r0, [r1, r3]
- cmp r0, 0
- beq _081422DC
- subs r0, r2, 0x1
- strh r0, [r1, 0xE]
- b _081422E0
- .align 2, 0
-_081422D8: .4byte gTasks
-_081422DC:
- ldr r0, _081422E4 @ =sub_81422E8
- str r0, [r1]
-_081422E0:
- pop {r0}
- bx r0
- .align 2, 0
-_081422E4: .4byte sub_81422E8
- thumb_func_end sub_81422B8
-
- thumb_func_start sub_81422E8
-sub_81422E8: @ 81422E8
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r5, _08142314 @ =gWindowConfig_81E7198
- adds r0, r5, 0
- bl SetUpWindowConfig
- adds r0, r5, 0
- bl InitMenuWindow
- ldr r1, _08142318 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0814231C @ =sub_8142320
- str r1, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08142314: .4byte gWindowConfig_81E7198
-_08142318: .4byte gTasks
-_0814231C: .4byte sub_8142320
- thumb_func_end sub_81422E8
-
- thumb_func_start sub_8142320
-sub_8142320: @ 8142320
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x8
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r2, _08142350 @ =0x0201c000
- ldr r0, _08142354 @ =gTasks
- lsls r1, r7, 2
- adds r1, r7
- lsls r1, 3
- adds r1, r0
- ldrh r6, [r1, 0xA]
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 2
- adds r4, r0, r2
- movs r2, 0xC
- ldrsh r0, [r1, r2]
- cmp r0, 0x3
- ble _0814235C
- ldr r1, _08142358 @ =gUnknown_0840B534
- b _0814235E
- .align 2, 0
-_08142350: .4byte 0x0201c000
-_08142354: .4byte gTasks
-_08142358: .4byte gUnknown_0840B534
-_0814235C:
- ldr r1, _081423F0 @ =gUnknown_0840B564
-_0814235E:
- lsls r2, r6, 3
- adds r0, r2, r1
- ldrh r5, [r0]
- adds r0, r1, 0x2
- adds r0, r2, r0
- ldrh r3, [r0]
- adds r0, r1, 0x4
- adds r0, r2, r0
- ldrh r0, [r0]
- mov r9, r0
- adds r1, 0x6
- adds r2, r1
- ldrh r2, [r2]
- mov r8, r2
- ldrh r0, [r4, 0x8]
- lsls r0, 23
- lsrs r0, 23
- lsls r1, r5, 16
- asrs r1, 16
- lsls r2, r3, 16
- asrs r2, 16
- ldr r3, [r4]
- str r3, [sp]
- ldr r3, [r4, 0x4]
- str r3, [sp, 0x4]
- adds r3, r6, 0
- bl sub_81436BC
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _081423F4 @ =gSprites
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r2, r1, r3
- movs r4, 0
- mov r5, r9
- strh r5, [r2, 0x30]
- mov r5, r8
- strh r5, [r2, 0x32]
- strh r4, [r2, 0x2E]
- adds r3, 0x1C
- adds r1, r3
- ldr r2, _081423F8 @ =sub_81435DC
- str r2, [r1]
- ldr r5, _081423FC @ =gTasks
- adds r1, r6, 0x5
- lsls r1, 1
- lsls r4, r7, 2
- adds r4, r7
- lsls r4, 3
- adds r1, r4
- adds r2, r5, 0
- adds r2, 0x8
- adds r1, r2
- strh r0, [r1]
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- adds r4, r5
- ldr r0, _08142400 @ =sub_8142404
- str r0, [r4]
- add sp, 0x8
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081423F0: .4byte gUnknown_0840B564
-_081423F4: .4byte gSprites
-_081423F8: .4byte sub_81435DC
-_081423FC: .4byte gTasks
-_08142400: .4byte sub_8142404
- thumb_func_end sub_8142320
-
- thumb_func_start sub_8142404
-sub_8142404: @ 8142404
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r4, _08142470 @ =0x0201c000
- ldr r3, _08142474 @ =gTasks
- lsls r2, r0, 2
- adds r2, r0
- lsls r2, 3
- adds r5, r2, r3
- ldrh r1, [r5, 0xA]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r6, r0, r4
- ldr r4, _08142478 @ =gSprites
- adds r1, 0x5
- lsls r1, 1
- adds r1, r2
- adds r3, 0x8
- adds r1, r3
- movs r0, 0
- ldrsh r1, [r1, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x2E
- ldrsh r0, [r0, r1]
- cmp r0, 0
- beq _0814246A
- ldrh r2, [r6, 0x8]
- ldr r0, _0814247C @ =0x000001ff
- ands r0, r2
- movs r1, 0xCE
- lsls r1, 1
- cmp r0, r1
- beq _08142458
- lsls r0, r2, 23
- lsrs r0, 23
- movs r1, 0
- bl PlayCry1
-_08142458:
- adds r0, r6, 0
- movs r1, 0
- movs r2, 0xE
- bl sub_8143088
- movs r0, 0x78
- strh r0, [r5, 0xE]
- ldr r0, _08142480 @ =sub_8142484
- str r0, [r5]
-_0814246A:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08142470: .4byte 0x0201c000
-_08142474: .4byte gTasks
-_08142478: .4byte gSprites
-_0814247C: .4byte 0x000001ff
-_08142480: .4byte sub_8142484
- thumb_func_end sub_8142404
-
- thumb_func_start sub_8142484
-sub_8142484: @ 8142484
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r2, _081424BC @ =0x0201c000
- ldr r1, _081424C0 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r6, r0, 3
- adds r4, r6, r1
- ldrh r3, [r4, 0xA]
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 2
- adds r0, r2
- mov r9, r0
- ldrh r2, [r4, 0xE]
- movs r7, 0xE
- ldrsh r0, [r4, r7]
- mov r12, r1
- cmp r0, 0
- beq _081424C4
- subs r0, r2, 0x1
- strh r0, [r4, 0xE]
- b _0814255C
- .align 2, 0
-_081424BC: .4byte 0x0201c000
-_081424C0: .4byte gTasks
-_081424C4:
- ldr r2, _0814253C @ =gUnknown_0203931C
- ldr r0, _08142540 @ =gSprites
- mov r8, r0
- adds r0, r3, 0x5
- lsls r0, 1
- adds r0, r6
- mov r1, r12
- adds r1, 0x8
- adds r6, r0, r1
- movs r7, 0
- ldrsh r1, [r6, r7]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r8
- ldrb r0, [r0, 0x5]
- lsrs r0, 4
- movs r1, 0x80
- lsls r1, 9
- lsls r1, r0
- ldr r3, [r2]
- orrs r3, r1
- str r3, [r2]
- ldrh r2, [r4, 0xA]
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- cmp r0, 0x4
- bgt _08142550
- mov r7, r9
- ldrh r1, [r7, 0x1C]
- ldr r0, _08142544 @ =0x000001ff
- ands r0, r1
- cmp r0, 0
- beq _08142550
- adds r0, r2, 0x1
- strh r0, [r4, 0xA]
- ldr r0, _08142548 @ =0x0000735f
- str r0, [sp]
- adds r0, r3, 0
- movs r1, 0
- movs r2, 0xC
- movs r3, 0xC
- bl BeginNormalPaletteFade
- movs r0, 0
- ldrsh r1, [r6, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r8
- ldrb r2, [r0, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r2
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0, 0x5]
- ldr r0, _0814254C @ =sub_8142320
- str r0, [r4]
- b _0814255C
- .align 2, 0
-_0814253C: .4byte gUnknown_0203931C
-_08142540: .4byte gSprites
-_08142544: .4byte 0x000001ff
-_08142548: .4byte 0x0000735f
-_0814254C: .4byte sub_8142320
-_08142550:
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- add r0, r12
- ldr r1, _0814256C @ =sub_8142570
- str r1, [r0]
-_0814255C:
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0814256C: .4byte sub_8142570
- thumb_func_end sub_8142484
-
- thumb_func_start sub_8142570
-sub_8142570: @ 8142570
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08142604 @ =0xffff0000
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0
- bl BeginNormalPaletteFade
- movs r3, 0
- lsls r1, r4, 2
- adds r0, r1, r4
- lsls r5, r0, 3
- ldr r0, _08142608 @ =gTasks + 0x8
- mov r12, r0
- mov r8, r1
- ldr r6, _0814260C @ =gSprites
- movs r7, 0xD
- negs r7, r7
-_0814259E:
- adds r0, r3, 0x5
- lsls r0, 1
- adds r0, r5
- mov r2, r12
- adds r1, r0, r2
- movs r2, 0
- ldrsh r0, [r1, r2]
- cmp r0, 0xFF
- beq _081425C0
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- ldrb r2, [r1, 0x5]
- adds r0, r7, 0
- ands r0, r2
- strb r0, [r1, 0x5]
-_081425C0:
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x5
- bls _0814259E
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- movs r0, 0
- movs r1, 0xF
- bl sub_8143068
- movs r0, 0x69
- bl PlaySE
- ldr r1, _08142610 @ =gTasks
- mov r2, r8
- adds r0, r2, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0xC8
- lsls r1, 1
- strh r1, [r0, 0xE]
- ldr r1, _08142614 @ =sub_8142618
- str r1, [r0]
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08142604: .4byte 0xffff0000
-_08142608: .4byte gTasks + 0x8
-_0814260C: .4byte gSprites
-_08142610: .4byte gTasks
-_08142614: .4byte sub_8142618
- thumb_func_end sub_8142570
-
- thumb_func_start sub_8142618
-sub_8142618: @ 8142618
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r7, _08142658 @ =gTasks
- lsls r4, r6, 2
- adds r0, r4, r6
- lsls r5, r0, 3
- adds r1, r5, r7
- ldrh r2, [r1, 0xE]
- movs r3, 0xE
- ldrsh r0, [r1, r3]
- cmp r0, 0
- beq _0814265C
- subs r2, 0x1
- strh r2, [r1, 0xE]
- movs r0, 0x3
- ands r0, r2
- cmp r0, 0
- bne _081426D2
- lsls r0, r2, 16
- asrs r0, 16
- cmp r0, 0x6E
- ble _081426D2
- bl sub_81438C4
- b _081426D2
- .align 2, 0
-_08142658: .4byte gTasks
-_0814265C:
- movs r3, 0
- mov r9, r4
- ldr r0, _081426E4 @ =gUnknown_0203931C
- mov r10, r0
- adds r4, r5, 0
- adds r7, 0x8
- mov r8, r7
- ldr r7, _081426E8 @ =gSprites
- movs r1, 0xD
- negs r1, r1
- mov r12, r1
- movs r5, 0x4
-_08142674:
- adds r0, r3, 0x5
- lsls r0, 1
- adds r0, r4
- mov r2, r8
- adds r1, r0, r2
- movs r2, 0
- ldrsh r0, [r1, r2]
- cmp r0, 0xFF
- beq _08142698
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r7
- ldrb r2, [r1, 0x5]
- mov r0, r12
- ands r0, r2
- orrs r0, r5
- strb r0, [r1, 0x5]
-_08142698:
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x5
- bls _08142674
- mov r3, r10
- ldr r0, [r3]
- ldr r1, _081426EC @ =0x0000735f
- str r1, [sp]
- movs r1, 0
- movs r2, 0xC
- movs r3, 0xC
- bl BeginNormalPaletteFade
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- ldr r1, _081426F0 @ =gTasks
- mov r2, r9
- adds r0, r2, r6
- lsls r0, 3
- adds r0, r1
- movs r1, 0x7
- strh r1, [r0, 0xE]
- ldr r1, _081426F4 @ =sub_81426F8
- str r1, [r0]
-_081426D2:
- 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
-_081426E4: .4byte gUnknown_0203931C
-_081426E8: .4byte gSprites
-_081426EC: .4byte 0x0000735f
-_081426F0: .4byte gTasks
-_081426F4: .4byte sub_81426F8
- thumb_func_end sub_8142618
-
- thumb_func_start sub_81426F8
-sub_81426F8: @ 81426F8
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08142718 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r2, r1, r2
- ldrh r1, [r2, 0xE]
- movs r3, 0xE
- ldrsh r0, [r2, r3]
- cmp r0, 0xF
- ble _08142720
- ldr r0, _0814271C @ =sub_8142738
- str r0, [r2]
- b _0814272E
- .align 2, 0
-_08142718: .4byte gTasks
-_0814271C: .4byte sub_8142738
-_08142720:
- adds r0, r1, 0x1
- strh r0, [r2, 0xE]
- ldr r1, _08142734 @ =REG_BLDALPHA
- movs r3, 0xE
- ldrsh r0, [r2, r3]
- lsls r0, 8
- strh r0, [r1]
-_0814272E:
- pop {r0}
- bx r0
- .align 2, 0
-_08142734: .4byte REG_BLDALPHA
- thumb_func_end sub_81426F8
-
- thumb_func_start sub_8142738
-sub_8142738: @ 8142738
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- movs r1, 0x80
- lsls r1, 19
- movs r2, 0xCA
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- ldr r4, _08142784 @ =gWindowConfig_81E71B4
- adds r0, r4, 0
- bl SetUpWindowConfig
- adds r0, r4, 0
- bl InitMenuWindow
- ldr r0, _08142788 @ =gSaveBlock2
- ldrb r0, [r0, 0x8]
- movs r1, 0x78
- movs r2, 0x48
- movs r3, 0x6
- bl sub_81437A4
- ldr r2, _0814278C @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r2
- strh r0, [r1, 0x10]
- movs r0, 0x78
- strh r0, [r1, 0xE]
- ldr r0, _08142790 @ =sub_8142794
- str r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08142784: .4byte gWindowConfig_81E71B4
-_08142788: .4byte gSaveBlock2
-_0814278C: .4byte gTasks
-_08142790: .4byte sub_8142794
- thumb_func_end sub_8142738
-
- thumb_func_start sub_8142794
-sub_8142794: @ 8142794
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _081427B4 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
- ldrh r1, [r4, 0xE]
- movs r2, 0xE
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _081427B8
- subs r0, r1, 0x1
- strh r0, [r4, 0xE]
- b _0814280A
- .align 2, 0
-_081427B4: .4byte gTasks
-_081427B8:
- ldr r2, _081427D8 @ =gSprites
- movs r3, 0x10
- ldrsh r1, [r4, r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r0, r2
- ldrh r2, [r1, 0x20]
- movs r3, 0x20
- ldrsh r0, [r1, r3]
- cmp r0, 0xA0
- beq _081427DC
- adds r0, r2, 0x1
- strh r0, [r1, 0x20]
- b _0814280A
- .align 2, 0
-_081427D8: .4byte gSprites
-_081427DC:
- movs r0, 0x1
- movs r1, 0x2
- movs r2, 0xF
- movs r3, 0x9
- bl MenuDrawTextWindow
- movs r0, 0x1
- movs r1, 0x2
- bl sub_8143300
- movs r0, 0x2
- movs r1, 0xE
- movs r2, 0x1B
- movs r3, 0x13
- bl MenuDrawTextWindow
- ldr r0, _08142810 @ =gMenuText_HOFCongratulations
- movs r1, 0x4
- movs r2, 0xF
- bl MenuPrint
- ldr r0, _08142814 @ =sub_8142818
- str r0, [r4]
-_0814280A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08142810: .4byte gMenuText_HOFCongratulations
-_08142814: .4byte sub_8142818
- thumb_func_end sub_8142794
-
- thumb_func_start sub_8142818
-sub_8142818: @ 8142818
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08142844 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0814283E
- movs r0, 0x4
- bl FadeOutBGM
- ldr r0, _08142848 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _0814284C @ =sub_8142850
- str r0, [r1]
-_0814283E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08142844: .4byte gMain
-_08142848: .4byte gTasks
-_0814284C: .4byte sub_8142850
- thumb_func_end sub_8142818
-
- thumb_func_start sub_8142850
-sub_8142850: @ 8142850
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _08142890 @ =gPlttBufferFaded
- ldr r1, _08142894 @ =gPlttBufferUnfaded
- movs r2, 0x80
- lsls r2, 2
- bl CpuSet
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r1, 0x8
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _08142898 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0814289C @ =sub_81428A0
- str r1, [r0]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08142890: .4byte gPlttBufferFaded
-_08142894: .4byte gPlttBufferUnfaded
-_08142898: .4byte gTasks
-_0814289C: .4byte sub_81428A0
- thumb_func_end sub_8142850
-
- thumb_func_start sub_81428A0
-sub_81428A0: @ 81428A0
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _081428C4 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _081428BE
- adds r0, r2, 0
- bl DestroyTask
- ldr r0, _081428C8 @ =sub_81439D0
- bl SetMainCallback2
-_081428BE:
- pop {r0}
- bx r0
- .align 2, 0
-_081428C4: .4byte gPaletteFade
-_081428C8: .4byte sub_81439D0
- thumb_func_end sub_81428A0
-
- thumb_func_start sub_81428CC
-sub_81428CC: @ 81428CC
- push {r4,r5,lr}
- ldr r0, _081428E4 @ =gMain
- ldr r1, _081428E8 @ =0x0000043c
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x5
- bhi _08142908
- lsls r0, 2
- ldr r1, _081428EC @ =_081428F0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_081428E4: .4byte gMain
-_081428E8: .4byte 0x0000043c
-_081428EC: .4byte _081428F0
- .align 2, 0
-_081428F0:
- .4byte _08142908
- .4byte _08142928
- .4byte _0814293C
- .4byte _08142980
- .4byte _081429C0
- .4byte _081429EC
-_08142908:
- movs r0, 0
- bl SetVBlankCallback
- bl sub_81433E0
- ldr r0, _08142920 @ =gMain
- ldr r2, _08142924 @ =0x0000043c
- adds r0, r2
- movs r1, 0x1
- strb r1, [r0]
- b _08142A12
- .align 2, 0
-_08142920: .4byte gMain
-_08142924: .4byte 0x0000043c
-_08142928:
- bl sub_8143570
- ldr r1, _08142934 @ =gMain
- ldr r3, _08142938 @ =0x0000043c
- adds r1, r3
- b _081429DC
- .align 2, 0
-_08142934: .4byte gMain
-_08142938: .4byte 0x0000043c
-_0814293C:
- ldr r0, _08142968 @ =sub_8141E38
- bl SetVBlankCallback
- ldr r3, _0814296C @ =0x04000208
- ldrh r2, [r3]
- movs r0, 0
- strh r0, [r3]
- ldr r4, _08142970 @ =0x04000200
- ldrh r0, [r4]
- movs r1, 0x1
- orrs r0, r1
- strh r0, [r4]
- strh r2, [r3]
- ldr r2, _08142974 @ =REG_DISPSTAT
- ldrh r0, [r2]
- movs r1, 0x8
- orrs r0, r1
- strh r0, [r2]
- ldr r1, _08142978 @ =gMain
- ldr r4, _0814297C @ =0x0000043c
- adds r1, r4
- b _081429DC
- .align 2, 0
-_08142968: .4byte sub_8141E38
-_0814296C: .4byte 0x04000208
-_08142970: .4byte 0x04000200
-_08142974: .4byte REG_DISPSTAT
-_08142978: .4byte gMain
-_0814297C: .4byte 0x0000043c
-_08142980:
- ldr r0, _081429AC @ =REG_BLDCNT
- movs r1, 0
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- bl sub_81435B8
- ldr r0, _081429B0 @ =0x0201c000
- adds r2, r0, 0
- ldr r1, _081429B4 @ =gUnknown_0840B57C
- ldm r1!, {r3-r5}
- stm r2!, {r3-r5}
- ldm r1!, {r3,r5}
- stm r2!, {r3,r5}
- bl sub_80C5CD4
- ldr r1, _081429B8 @ =gMain
- ldr r4, _081429BC @ =0x0000043c
- adds r1, r4
- b _081429DC
- .align 2, 0
-_081429AC: .4byte REG_BLDCNT
-_081429B0: .4byte 0x0201c000
-_081429B4: .4byte gUnknown_0840B57C
-_081429B8: .4byte gMain
-_081429BC: .4byte 0x0000043c
-_081429C0:
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- bl sub_80C5DCC
- lsls r0, 24
- cmp r0, 0
- beq _08142A12
- ldr r1, _081429E4 @ =gMain
- ldr r5, _081429E8 @ =0x0000043c
- adds r1, r5
-_081429DC:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _08142A12
- .align 2, 0
-_081429E4: .4byte gMain
-_081429E8: .4byte 0x0000043c
-_081429EC:
- ldr r1, _08142A18 @ =REG_BLDCNT
- ldr r2, _08142A1C @ =0x00003f42
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- movs r3, 0xE2
- lsls r3, 3
- adds r0, r3, 0
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0
- strh r0, [r1]
- ldr r0, _08142A20 @ =sub_8142A28
- movs r1, 0
- bl CreateTask
- ldr r0, _08142A24 @ =sub_8141E4C
- bl SetMainCallback2
-_08142A12:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08142A18: .4byte REG_BLDCNT
-_08142A1C: .4byte 0x00003f42
-_08142A20: .4byte sub_8142A28
-_08142A24: .4byte sub_8141E4C
- thumb_func_end sub_81428CC
-
- thumb_func_start sub_8142A28
-sub_8142A28: @ 8142A28
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r0, 0x3
- bl sub_8125EC8
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08142A54
- ldr r0, _08142A4C @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldr r0, _08142A50 @ =sub_8142FEC
- str r0, [r1]
- b _08142AEA
- .align 2, 0
-_08142A4C: .4byte gTasks
-_08142A50: .4byte sub_8142FEC
-_08142A54:
- ldr r2, _08142A8C @ =0x0201e000
- movs r3, 0
- ldrh r1, [r2, 0x8]
- ldr r4, _08142A90 @ =0x000001ff
- adds r0, r4, 0
- ands r0, r1
- ldr r7, _08142A94 @ =gTasks
- lsls r6, r5, 2
- cmp r0, 0
- beq _08142A7E
-_08142A68:
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- adds r2, 0x78
- cmp r3, 0x31
- bhi _08142A98
- ldrh r1, [r2, 0x8]
- adds r0, r4, 0
- ands r0, r1
- cmp r0, 0
- bne _08142A68
-_08142A7E:
- cmp r3, 0x31
- bhi _08142A98
- adds r0, r6, r5
- lsls r0, 3
- adds r0, r7
- subs r1, r3, 0x1
- b _08142AA0
- .align 2, 0
-_08142A8C: .4byte 0x0201e000
-_08142A90: .4byte 0x000001ff
-_08142A94: .4byte gTasks
-_08142A98:
- adds r0, r6, r5
- lsls r0, 3
- adds r0, r7
- movs r1, 0x31
-_08142AA0:
- strh r1, [r0, 0x8]
- movs r0, 0xA
- bl sub_8053108
- ldr r2, _08142AF0 @ =gTasks
- adds r1, r6, r5
- lsls r1, 3
- adds r1, r2
- strh r0, [r1, 0xA]
- movs r3, 0
- ldr r7, _08142AF4 @ =0x0600381a
- ldr r4, _08142AF8 @ =0x0600385a
-_08142AB8:
- lsls r1, r3, 1
- adds r2, r1, r7
- adds r0, r3, 0x3
- strh r0, [r2]
- adds r1, r4
- adds r0, 0x11
- strh r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x10
- bls _08142AB8
- ldr r4, _08142AFC @ =gWindowConfig_81E7198
- adds r0, r4, 0
- bl SetUpWindowConfig
- adds r0, r4, 0
- bl InitMenuWindow
- ldr r1, _08142AF0 @ =gTasks
- adds r0, r6, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _08142B00 @ =sub_8142B04
- str r1, [r0]
-_08142AEA:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08142AF0: .4byte gTasks
-_08142AF4: .4byte 0x0600381a
-_08142AF8: .4byte 0x0600385a
-_08142AFC: .4byte gWindowConfig_81E7198
-_08142B00: .4byte sub_8142B04
- thumb_func_end sub_8142A28
-
- thumb_func_start sub_8142B04
-sub_8142B04: @ 8142B04
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r3, _08142BB8 @ =0x0201e000
- movs r5, 0
- ldr r1, _08142BBC @ =gTasks
- lsls r0, 2
- add r0, r8
- lsls r0, 3
- adds r0, r1
- movs r2, 0x8
- ldrsh r0, [r0, r2]
- adds r6, r1, 0
- ldr r2, _08142BC0 @ =gUnknown_0203931C
- cmp r5, r0
- bge _08142B3E
- adds r1, r0, 0
-_08142B32:
- adds r3, 0x78
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, r1
- blt _08142B32
-_08142B3E:
- adds r4, r3, 0
- movs r0, 0
- str r0, [r2]
- mov r5, r8
- lsls r2, r5, 2
- adds r1, r2, r5
- lsls r1, 3
- adds r1, r6
- strh r0, [r1, 0xC]
- strh r0, [r1, 0x10]
- movs r5, 0
- str r2, [sp, 0xC]
- ldr r6, _08142BC4 @ =0x000001ff
- adds r2, r1, 0
-_08142B5A:
- ldrh r1, [r4, 0x8]
- adds r0, r6, 0
- ands r0, r1
- cmp r0, 0
- beq _08142B6A
- ldrh r0, [r2, 0x10]
- adds r0, 0x1
- strh r0, [r2, 0x10]
-_08142B6A:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- adds r4, 0x14
- cmp r5, 0x5
- bls _08142B5A
- adds r4, r3, 0
- movs r5, 0
- ldr r1, _08142BBC @ =gTasks
- ldr r0, [sp, 0xC]
- add r0, r8
- lsls r7, r0, 3
- adds r6, r7, r1
- str r6, [sp, 0x8]
- adds r1, 0x8
- mov r9, r1
- ldr r0, _08142BC8 @ =gUnknown_0840B564
- mov r10, r0
-_08142B8E:
- ldrh r1, [r4, 0x8]
- ldr r2, _08142BC4 @ =0x000001ff
- adds r0, r2, 0
- ands r0, r1
- adds r6, r1, 0
- cmp r0, 0
- beq _08142C30
- ldr r1, [sp, 0x8]
- movs r2, 0x10
- ldrsh r0, [r1, r2]
- cmp r0, 0x3
- ble _08142BD4
- lsls r1, r5, 3
- ldr r0, _08142BCC @ =gUnknown_0840B534
- adds r0, 0x4
- adds r0, r1, r0
- ldrh r3, [r0]
- ldr r0, _08142BD0 @ =gUnknown_0840B53A
- adds r1, r0
- b _08142BE2
- .align 2, 0
-_08142BB8: .4byte 0x0201e000
-_08142BBC: .4byte gTasks
-_08142BC0: .4byte gUnknown_0203931C
-_08142BC4: .4byte 0x000001ff
-_08142BC8: .4byte gUnknown_0840B564
-_08142BCC: .4byte gUnknown_0840B534
-_08142BD0: .4byte gUnknown_0840B53A
-_08142BD4:
- lsls r1, r5, 3
- mov r0, r10
- adds r0, 0x4
- adds r0, r1, r0
- ldrh r3, [r0]
- ldr r2, _08142C28 @ =gUnknown_0840B56A
- adds r1, r2
-_08142BE2:
- ldrh r2, [r1]
- lsls r0, r6, 23
- lsrs r0, 23
- lsls r1, r3, 16
- asrs r1, 16
- lsls r2, 16
- asrs r2, 16
- ldr r3, [r4]
- str r3, [sp]
- ldr r3, [r4, 0x4]
- str r3, [sp, 0x4]
- adds r3, r5, 0
- bl sub_81436BC
- lsls r0, 16
- lsrs r0, 16
- ldr r2, _08142C2C @ =gSprites
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r3, [r1, 0x5]
- movs r6, 0xD
- negs r6, r6
- adds r2, r6, 0
- ands r3, r2
- movs r2, 0x4
- orrs r3, r2
- strb r3, [r1, 0x5]
- adds r1, r5, 0x5
- lsls r1, 1
- adds r1, r7
- add r1, r9
- strh r0, [r1]
- b _08142C3C
- .align 2, 0
-_08142C28: .4byte gUnknown_0840B56A
-_08142C2C: .4byte gSprites
-_08142C30:
- adds r0, r5, 0x5
- lsls r0, 1
- adds r0, r7
- add r0, r9
- movs r1, 0xFF
- strh r1, [r0]
-_08142C3C:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- adds r4, 0x14
- cmp r5, 0x5
- bls _08142B8E
- ldr r0, _08142CB0 @ =0xffff0000
- ldr r2, _08142CB4 @ =0x0000735f
- movs r1, 0xC
- bl BlendPalettes
- ldr r3, _08142CB8 @ =gStringVar1
- ldr r1, _08142CBC @ =gMenuText_HOFNumber
- adds r0, r3, 0
- bl StringCopy
- adds r3, r0, 0
- movs r5, 0xFC
- strb r5, [r3]
- movs r0, 0x14
- strb r0, [r3, 0x1]
- movs r0, 0x6
- strb r0, [r3, 0x2]
- adds r3, 0x3
- ldr r0, _08142CC0 @ =gTasks
- ldr r4, [sp, 0xC]
- add r4, r8
- lsls r4, 3
- adds r4, r0
- movs r0, 0xA
- ldrsh r1, [r4, r0]
- adds r0, r3, 0
- bl ConvertIntToDecimalString
- adds r3, r0, 0
- strb r5, [r3]
- movs r0, 0x13
- strb r0, [r3, 0x1]
- movs r0, 0xF0
- strb r0, [r3, 0x2]
- movs r0, 0xFF
- strb r0, [r3, 0x3]
- ldr r0, _08142CB8 @ =gStringVar1
- movs r1, 0
- movs r2, 0
- bl MenuPrint
- ldr r0, _08142CC4 @ =sub_8142CC8
- str r0, [r4]
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08142CB0: .4byte 0xffff0000
-_08142CB4: .4byte 0x0000735f
-_08142CB8: .4byte gStringVar1
-_08142CBC: .4byte gMenuText_HOFNumber
-_08142CC0: .4byte gTasks
-_08142CC4: .4byte sub_8142CC8
- thumb_func_end sub_8142B04
-
- thumb_func_start sub_8142CC8
-sub_8142CC8: @ 8142CC8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08142DD0 @ =0x0201e000
- mov r8, r0
- movs r3, 0
- ldr r1, _08142DD4 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r2, 0x8
- ldrsh r0, [r0, r2]
- cmp r3, r0
- bge _08142CFE
- adds r1, r0, 0
-_08142CF0:
- movs r0, 0x78
- add r8, r0
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, r1
- blt _08142CF0
-_08142CFE:
- movs r3, 0
- lsls r6, r4, 2
- adds r0, r6, r4
- lsls r5, r0, 3
- ldr r1, _08142DD8 @ =gTasks + 0x8
- mov r10, r1
- ldr r2, _08142DDC @ =gSprites
- mov r12, r2
- movs r0, 0xD
- negs r0, r0
- mov r9, r0
- movs r7, 0x4
-_08142D16:
- adds r0, r3, 0x5
- lsls r0, 1
- adds r0, r5
- add r0, r10
- ldrh r1, [r0]
- cmp r1, 0xFF
- beq _08142D36
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r12
- ldrb r2, [r0, 0x5]
- mov r1, r9
- ands r1, r2
- orrs r1, r7
- strb r1, [r0, 0x5]
-_08142D36:
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x5
- bls _08142D16
- adds r1, r6, r4
- lsls r1, 3
- ldr r2, _08142DD4 @ =gTasks
- adds r5, r1, r2
- movs r2, 0xC
- ldrsh r0, [r5, r2]
- adds r0, 0x5
- lsls r0, 1
- adds r0, r1
- ldr r1, _08142DD4 @ =gTasks
- adds r1, 0x8
- adds r0, r1
- ldrh r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _08142DDC @ =gSprites
- adds r0, r1
- ldrb r2, [r0, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r2
- strb r1, [r0, 0x5]
- lsrs r1, 4
- movs r0, 0x80
- lsls r0, 9
- lsls r0, r1
- ldr r1, _08142DE0 @ =0xffff0000
- eors r0, r1
- ldr r2, _08142DE4 @ =gUnknown_0203931C
- str r0, [r2]
- ldr r2, _08142DE8 @ =0x0000735f
- movs r1, 0xC
- bl BlendPalettesUnfaded
- movs r0, 0xC
- ldrsh r1, [r5, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- mov r1, r8
- adds r4, r1, r0
- ldrh r1, [r4, 0x8]
- ldr r0, _08142DEC @ =0x000001ff
- ands r0, r1
- movs r1, 0xCE
- lsls r1, 1
- cmp r0, r1
- beq _08142DB2
- bl StopCryAndClearCrySongs
- ldrh r0, [r4, 0x8]
- lsls r0, 23
- lsrs r0, 23
- movs r1, 0
- bl PlayCry1
-_08142DB2:
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0xE
- bl sub_8143088
- ldr r0, _08142DF0 @ =sub_8142DF4
- str r0, [r5]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08142DD0: .4byte 0x0201e000
-_08142DD4: .4byte gTasks
-_08142DD8: .4byte gTasks + 0x8
-_08142DDC: .4byte gSprites
-_08142DE0: .4byte 0xffff0000
-_08142DE4: .4byte gUnknown_0203931C
-_08142DE8: .4byte 0x0000735f
-_08142DEC: .4byte 0x000001ff
-_08142DF0: .4byte sub_8142DF4
- thumb_func_end sub_8142CC8
-
- thumb_func_start sub_8142DF4
-sub_8142DF4: @ 8142DF4
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _08142E88 @ =gMain
- ldrh r2, [r1, 0x2E]
- movs r0, 0x1
- ands r0, r2
- adds r3, r1, 0
- cmp r0, 0
- beq _08142EC4
- ldr r7, _08142E8C @ =gTasks
- lsls r0, r6, 2
- adds r1, r0, r6
- lsls r3, r1, 3
- adds r4, r3, r7
- ldrh r2, [r4, 0x8]
- movs r5, 0x8
- ldrsh r1, [r4, r5]
- mov r8, r0
- cmp r1, 0
- beq _08142E98
- subs r0, r2, 0x1
- strh r0, [r4, 0x8]
- movs r5, 0
- adds r7, 0x8
- mov r9, r7
- adds r7, r3, 0
-_08142E30:
- adds r0, r5, 0x5
- lsls r0, 1
- adds r0, r7
- add r0, r9
- ldrb r1, [r0]
- cmp r1, 0xFF
- beq _08142E5E
- ldr r0, _08142E90 @ =gSprites
- lsls r4, r1, 4
- adds r4, r1
- lsls r4, 2
- adds r4, r0
- ldrb r0, [r4, 0x5]
- lsrs r0, 4
- bl GetSpritePaletteTagByPaletteNum
- lsls r0, 16
- lsrs r0, 16
- bl FreeSpritePaletteByTag
- adds r0, r4, 0
- bl DestroySprite
-_08142E5E:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x5
- bls _08142E30
- ldr r0, _08142E8C @ =gTasks
- mov r2, r8
- adds r1, r2, r6
- lsls r1, 3
- adds r1, r0
- ldrh r2, [r1, 0xA]
- movs r3, 0xA
- ldrsh r0, [r1, r3]
- cmp r0, 0
- beq _08142E80
- subs r0, r2, 0x1
- strh r0, [r1, 0xA]
-_08142E80:
- ldr r0, _08142E94 @ =sub_8142B04
- str r0, [r1]
- b _08142F64
- .align 2, 0
-_08142E88: .4byte gMain
-_08142E8C: .4byte gTasks
-_08142E90: .4byte gSprites
-_08142E94: .4byte sub_8142B04
-_08142E98:
- bl IsCryPlayingOrClearCrySongs
- lsls r0, 24
- cmp r0, 0
- beq _08142EB2
- bl StopCryAndClearCrySongs
- ldr r0, _08142EB8 @ =gMPlay_BGM
- ldr r1, _08142EBC @ =0x0000ffff
- movs r2, 0x80
- lsls r2, 1
- bl m4aMPlayVolumeControl
-_08142EB2:
- ldr r0, _08142EC0 @ =sub_8142F78
- str r0, [r4]
- b _08142F64
- .align 2, 0
-_08142EB8: .4byte gMPlay_BGM
-_08142EBC: .4byte 0x0000ffff
-_08142EC0: .4byte sub_8142F78
-_08142EC4:
- movs r0, 0x2
- ands r0, r2
- cmp r0, 0
- beq _08142F08
- bl IsCryPlayingOrClearCrySongs
- lsls r0, 24
- cmp r0, 0
- beq _08142EE6
- bl StopCryAndClearCrySongs
- ldr r0, _08142EF8 @ =gMPlay_BGM
- ldr r1, _08142EFC @ =0x0000ffff
- movs r2, 0x80
- lsls r2, 1
- bl m4aMPlayVolumeControl
-_08142EE6:
- ldr r0, _08142F00 @ =gTasks
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 3
- adds r1, r0
- ldr r0, _08142F04 @ =sub_8142F78
- str r0, [r1]
- b _08142F64
- .align 2, 0
-_08142EF8: .4byte gMPlay_BGM
-_08142EFC: .4byte 0x0000ffff
-_08142F00: .4byte gTasks
-_08142F04: .4byte sub_8142F78
-_08142F08:
- movs r0, 0x40
- ands r0, r2
- cmp r0, 0
- beq _08142F38
- ldr r0, _08142F30 @ =gTasks
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 3
- adds r1, r0
- ldrh r2, [r1, 0xC]
- movs r4, 0xC
- ldrsh r0, [r1, r4]
- cmp r0, 0
- beq _08142F38
- subs r0, r2, 0x1
- strh r0, [r1, 0xC]
- ldr r0, _08142F34 @ =sub_8142CC8
- str r0, [r1]
- b _08142F64
- .align 2, 0
-_08142F30: .4byte gTasks
-_08142F34: .4byte sub_8142CC8
-_08142F38:
- ldrh r1, [r3, 0x2E]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08142F64
- ldr r1, _08142F70 @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r2, r0, r1
- movs r5, 0xC
- ldrsh r1, [r2, r5]
- movs r3, 0x10
- ldrsh r0, [r2, r3]
- subs r0, 0x1
- cmp r1, r0
- bge _08142F64
- ldrh r0, [r2, 0xC]
- adds r0, 0x1
- strh r0, [r2, 0xC]
- ldr r0, _08142F74 @ =sub_8142CC8
- str r0, [r2]
-_08142F64:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08142F70: .4byte gTasks
-_08142F74: .4byte sub_8142CC8
- thumb_func_end sub_8142DF4
-
- thumb_func_start sub_8142F78
-sub_8142F78: @ 8142F78
- push {r4-r6,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _08142FB4 @ =gPlttBufferFaded
- ldr r1, _08142FB8 @ =gPlttBufferUnfaded
- movs r2, 0x80
- lsls r2, 2
- bl CpuSet
- ldr r0, _08142FBC @ =0x0201c000
- adds r2, r0, 0
- ldr r1, _08142FC0 @ =gUnknown_0840B57C
- ldm r1!, {r3,r5,r6}
- stm r2!, {r3,r5,r6}
- ldm r1!, {r3,r5}
- stm r2!, {r3,r5}
- bl sub_80C5E38
- ldr r1, _08142FC4 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _08142FC8 @ =sub_8142FCC
- str r1, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08142FB4: .4byte gPlttBufferFaded
-_08142FB8: .4byte gPlttBufferUnfaded
-_08142FBC: .4byte 0x0201c000
-_08142FC0: .4byte gUnknown_0840B57C
-_08142FC4: .4byte gTasks
-_08142FC8: .4byte sub_8142FCC
- thumb_func_end sub_8142F78
-
- thumb_func_start sub_8142FCC
-sub_8142FCC: @ 8142FCC
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_80C5F98
- lsls r0, 24
- cmp r0, 0
- beq _08142FE6
- adds r0, r4, 0
- bl DestroyTask
- bl ReturnFromHallOfFamePC
-_08142FE6:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8142FCC
-
- thumb_func_start sub_8142FEC
-sub_8142FEC: @ 8142FEC
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x2
- movs r1, 0xE
- movs r2, 0x1B
- movs r3, 0x13
- bl MenuDrawTextWindow
- ldr r0, _08143020 @ =gMenuText_HOFCorrupt
- movs r1, 0x3
- movs r2, 0xF
- bl MenuPrintMessage
- ldr r1, _08143024 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _08143028 @ =sub_814302C
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08143020: .4byte gMenuText_HOFCorrupt
-_08143024: .4byte gTasks
-_08143028: .4byte sub_814302C
- thumb_func_end sub_8142FEC
-
- thumb_func_start sub_814302C
-sub_814302C: @ 814302C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl MenuUpdateWindowText
- lsls r0, 24
- cmp r0, 0
- beq _08143056
- ldr r0, _0814305C @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08143056
- ldr r0, _08143060 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _08143064 @ =sub_8142F78
- str r0, [r1]
-_08143056:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0814305C: .4byte gMain
-_08143060: .4byte gTasks
-_08143064: .4byte sub_8142F78
- thumb_func_end sub_814302C
-
- thumb_func_start sub_8143068
-sub_8143068: @ 8143068
- push {lr}
- lsls r2, r1, 24
- ldr r0, _08143084 @ =gMenuText_WelcomeToHOFAndDexRating
- movs r1, 0x80
- lsls r1, 17
- adds r2, r1
- lsrs r2, 24
- movs r1, 0
- movs r3, 0xF0
- bl sub_8072BD8
- pop {r0}
- bx r0
- .align 2, 0
-_08143084: .4byte gMenuText_WelcomeToHOFAndDexRating
- thumb_func_end sub_8143068
-
- thumb_func_start sub_8143088
-sub_8143088: @ 8143088
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- mov r9, r0
- lsls r1, 24
- lsrs r1, 24
- mov r8, r1
- lsls r2, 24
- lsrs r2, 24
- mov r10, r2
- ldr r7, _08143188 @ =gStringVar1
- movs r0, 0xFC
- strb r0, [r7]
- movs r0, 0x13
- strb r0, [r7, 0x1]
- movs r0, 0x28
- strb r0, [r7, 0x2]
- movs r0, 0xFF
- strb r0, [r7, 0x3]
- mov r0, r9
- ldrh r2, [r0, 0x8]
- ldr r0, _0814318C @ =0x000001ff
- ands r0, r2
- movs r1, 0xCE
- lsls r1, 1
- cmp r0, r1
- beq _081430EA
- lsls r0, r2, 23
- lsrs r0, 23
- bl SpeciesToPokedexNum
- lsls r0, 16
- lsrs r6, r0, 16
- ldr r0, _08143190 @ =0x0000ffff
- cmp r6, r0
- beq _081430EA
- ldr r1, _08143194 @ =gOtherText_Number2
- adds r0, r7, 0
- bl StringCopy
- adds r7, r0, 0
- adds r1, r6, 0
- movs r2, 0x2
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
-_081430EA:
- ldr r5, _08143188 @ =gStringVar1
- mov r1, r8
- adds r1, 0x4
- lsls r1, 24
- lsrs r1, 24
- mov r4, r10
- adds r4, 0x1
- lsls r2, r4, 24
- lsrs r2, 24
- adds r0, r5, 0
- bl MenuPrint
- adds r7, r5, 0
- movs r3, 0
- mov r1, r9
- ldrb r0, [r1, 0xA]
- str r4, [sp]
- mov r2, r8
- adds r2, 0x9
- str r2, [sp, 0xC]
- mov r6, r10
- adds r6, 0x3
- str r6, [sp, 0x8]
- cmp r0, 0xFF
- beq _0814313A
- mov r2, r9
- adds r2, 0xA
-_08143120:
- adds r1, r7, r3
- adds r0, r2, r3
- ldrb r0, [r0]
- strb r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x9
- bhi _0814313A
- adds r0, r2, r3
- ldrb r0, [r0]
- cmp r0, 0xFF
- bne _08143120
-_0814313A:
- adds r7, r3
- movs r2, 0xFF
- strb r2, [r7]
- mov r1, r9
- ldrh r0, [r1, 0x8]
- ldr r1, _0814318C @ =0x000001ff
- ands r1, r0
- movs r0, 0xCE
- lsls r0, 1
- cmp r1, r0
- bne _08143198
- movs r0, 0xFC
- strb r0, [r7]
- movs r0, 0x13
- strb r0, [r7, 0x1]
- movs r0, 0xA0
- strb r0, [r7, 0x2]
- strb r2, [r7, 0x3]
- ldr r0, _08143188 @ =gStringVar1
- ldr r2, [sp, 0xC]
- lsls r1, r2, 24
- lsrs r1, 24
- ldr r3, [sp]
- lsls r2, r3, 24
- lsrs r2, 24
- bl MenuPrint
- ldr r6, [sp, 0x8]
- lsls r1, r6, 24
- lsrs r1, 24
- mov r3, r10
- adds r3, 0x4
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0
- movs r2, 0x1D
- bl MenuZeroFillWindowRect
- b _081432E4
- .align 2, 0
-_08143188: .4byte gStringVar1
-_0814318C: .4byte 0x000001ff
-_08143190: .4byte 0x0000ffff
-_08143194: .4byte gOtherText_Number2
-_08143198:
- movs r0, 0xFC
- strb r0, [r7]
- movs r0, 0x13
- strb r0, [r7, 0x1]
- movs r0, 0x3E
- strb r0, [r7, 0x2]
- adds r7, 0x3
- movs r0, 0xBA
- strb r0, [r7]
- adds r7, 0x1
- movs r3, 0
- ldr r2, _08143238 @ =gSpeciesNames
- mov r1, r9
- ldrh r0, [r1, 0x8]
- lsls r0, 23
- lsrs r0, 23
- movs r1, 0xB
- muls r0, r1
- adds r0, r2
- ldrb r0, [r0]
- mov r6, r8
- adds r6, 0x7
- str r6, [sp, 0x4]
- mov r1, r8
- adds r1, 0xD
- str r1, [sp, 0x10]
- cmp r0, 0xFF
- beq _08143204
- adds r5, r2, 0
- movs r4, 0xB
-_081431D4:
- adds r1, r7, r3
- mov r6, r9
- ldrh r0, [r6, 0x8]
- lsls r0, 23
- lsrs r0, 23
- muls r0, r4
- adds r0, r3, r0
- adds r0, r5
- ldrb r0, [r0]
- strb r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x9
- bhi _08143204
- ldrh r0, [r6, 0x8]
- lsls r0, 23
- lsrs r0, 23
- muls r0, r4
- adds r0, r3, r0
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0xFF
- bne _081431D4
-_08143204:
- adds r7, r3
- movs r0, 0
- strb r0, [r7]
- adds r7, 0x1
- mov r1, r9
- ldrh r0, [r1, 0x8]
- ldr r1, _0814323C @ =0x000001ff
- ands r1, r0
- cmp r1, 0x20
- beq _0814324A
- cmp r1, 0x1D
- beq _0814324A
- lsls r0, 23
- lsrs r0, 23
- mov r2, r9
- ldr r1, [r2, 0x4]
- bl GetGenderFromSpeciesAndPersonality
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _08143240
- cmp r0, 0xFE
- beq _08143244
- b _0814324A
- .align 2, 0
-_08143238: .4byte gSpeciesNames
-_0814323C: .4byte 0x000001ff
-_08143240:
- movs r0, 0xB5
- b _08143246
-_08143244:
- movs r0, 0xB6
-_08143246:
- strb r0, [r7]
- adds r7, 0x1
-_0814324A:
- movs r4, 0xFC
- strb r4, [r7]
- movs r3, 0x13
- mov r8, r3
- strb r3, [r7, 0x1]
- movs r0, 0xA0
- strb r0, [r7, 0x2]
- movs r6, 0xFF
- mov r10, r6
- strb r6, [r7, 0x3]
- ldr r5, _081432F4 @ =gStringVar1
- ldr r0, [sp, 0xC]
- lsls r1, r0, 24
- lsrs r1, 24
- ldr r3, [sp]
- lsls r2, r3, 24
- lsrs r2, 24
- adds r0, r5, 0
- bl MenuPrint
- mov r6, r9
- ldrb r0, [r6, 0x9]
- lsrs r6, r0, 1
- ldr r1, _081432F8 @ =gOtherText_Level3
- adds r0, r5, 0
- bl StringCopy
- adds r7, r0, 0
- strb r4, [r7]
- movs r0, 0x14
- strb r0, [r7, 0x1]
- movs r0, 0x6
- strb r0, [r7, 0x2]
- adds r7, 0x3
- adds r0, r7, 0
- adds r1, r6, 0
- movs r2, 0
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- adds r7, r0, 0
- strb r4, [r7]
- mov r0, r8
- strb r0, [r7, 0x1]
- movs r0, 0x30
- strb r0, [r7, 0x2]
- mov r1, r10
- strb r1, [r7, 0x3]
- ldr r2, [sp, 0x4]
- lsls r1, r2, 24
- lsrs r1, 24
- ldr r3, [sp, 0x8]
- lsls r4, r3, 24
- lsrs r4, 24
- adds r0, r5, 0
- adds r2, r4, 0
- bl MenuPrint
- mov r0, r9
- ldrh r6, [r0]
- ldr r1, _081432FC @ =gOtherText_IDNumber
- adds r0, r5, 0
- bl StringCopy
- adds r7, r0, 0
- adds r1, r6, 0
- movs r2, 0x2
- movs r3, 0x5
- bl ConvertIntToDecimalStringN
- ldr r2, [sp, 0x10]
- lsls r1, r2, 24
- lsrs r1, 24
- adds r0, r5, 0
- adds r2, r4, 0
- bl MenuPrint
-_081432E4:
- add sp, 0x14
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081432F4: .4byte gStringVar1
-_081432F8: .4byte gOtherText_Level3
-_081432FC: .4byte gOtherText_IDNumber
- thumb_func_end sub_8143088
-
- thumb_func_start sub_8143300
-sub_8143300: @ 8143300
- push {r4-r6,lr}
- mov r6, r10
- mov r5, r9
- mov r4, r8
- push {r4-r6}
- adds r5, r0, 0
- adds r4, r1, 0
- lsls r5, 24
- lsls r4, 24
- ldr r0, _081433CC @ =gOtherText_Name
- lsrs r1, r5, 24
- mov r8, r1
- movs r2, 0x80
- lsls r2, 17
- adds r5, r2
- lsrs r5, 24
- lsrs r6, r4, 24
- adds r4, r2
- lsrs r4, 24
- adds r1, r5, 0
- adds r2, r4, 0
- bl MenuPrint
- ldr r0, _081433D0 @ =gSaveBlock2
- mov r10, r0
- movs r1, 0xE
- add r8, r1
- mov r2, r8
- lsls r2, 24
- lsrs r2, 24
- mov r8, r2
- mov r1, r8
- adds r2, r4, 0
- bl MenuPrint_RightAligned
- ldr r0, _081433D4 @ =gOtherText_IDNumber2
- adds r4, r6, 0x3
- lsls r4, 24
- lsrs r4, 24
- adds r1, r5, 0
- adds r2, r4, 0
- bl MenuPrint
- mov r0, r10
- ldrb r1, [r0, 0xA]
- ldrb r0, [r0, 0xB]
- lsls r0, 8
- orrs r1, r0
- ldr r2, _081433D8 @ =gStringVar1
- mov r9, r2
- mov r0, r9
- movs r2, 0x2
- movs r3, 0x5
- bl ConvertIntToDecimalStringN
- mov r0, r9
- mov r1, r8
- adds r2, r4, 0
- bl MenuPrint_RightAligned
- ldr r0, _081433DC @ =gMainMenuString_Time
- adds r6, 0x5
- lsls r6, 24
- lsrs r6, 24
- adds r1, r5, 0
- adds r2, r6, 0
- bl MenuPrint
- mov r0, r10
- ldrh r1, [r0, 0xE]
- mov r0, r9
- bl ConvertIntToDecimalString
- adds r2, r0, 0
- movs r1, 0
- strb r1, [r2]
- movs r0, 0xF0
- strb r0, [r2, 0x1]
- strb r1, [r2, 0x2]
- adds r2, 0x3
- mov r0, r10
- ldrb r1, [r0, 0x10]
- adds r0, r2, 0
- movs r2, 0x2
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- adds r2, r0, 0
- movs r0, 0xFF
- strb r0, [r2]
- mov r0, r9
- mov r1, r8
- adds r2, r6, 0
- bl MenuPrint_RightAligned
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_081433CC: .4byte gOtherText_Name
-_081433D0: .4byte gSaveBlock2
-_081433D4: .4byte gOtherText_IDNumber2
-_081433D8: .4byte gStringVar1
-_081433DC: .4byte gMainMenuString_Time
- thumb_func_end sub_8143300
-
- thumb_func_start sub_81433E0
-sub_81433E0: @ 81433E0
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x8
- movs r0, 0x80
- lsls r0, 19
- movs r1, 0
- strh r1, [r0]
- adds r0, 0x8
- strh r1, [r0]
- adds r0, 0x8
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- subs r0, 0x8
- strh r1, [r0]
- adds r0, 0xA
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- subs r0, 0xA
- strh r1, [r0]
- adds r0, 0xC
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- subs r0, 0xC
- strh r1, [r0]
- adds r0, 0xE
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- movs r3, 0xC0
- lsls r3, 19
- movs r4, 0xC0
- lsls r4, 9
- add r0, sp, 0x4
- mov r8, r0
- ldr r1, _0814354C @ =gHallOfFame_Gfx
- mov r9, r1
- mov r2, sp
- movs r6, 0
- ldr r1, _08143550 @ =0x040000d4
- movs r5, 0x80
- lsls r5, 5
- ldr r7, _08143554 @ =0x81000800
- movs r0, 0x81
- lsls r0, 24
- mov r12, r0
-_08143444:
- strh r6, [r2]
- mov r0, sp
- str r0, [r1]
- str r3, [r1, 0x4]
- str r7, [r1, 0x8]
- ldr r0, [r1, 0x8]
- adds r3, r5
- subs r4, r5
- cmp r4, r5
- bhi _08143444
- strh r6, [r2]
- mov r2, sp
- str r2, [r1]
- str r3, [r1, 0x4]
- lsrs r0, r4, 1
- mov r2, r12
- orrs r0, r2
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- movs r0, 0xE0
- lsls r0, 19
- movs r3, 0x80
- lsls r3, 3
- movs r4, 0
- str r4, [sp, 0x4]
- ldr r2, _08143550 @ =0x040000d4
- mov r1, r8
- str r1, [r2]
- str r0, [r2, 0x4]
- lsrs r0, r3, 2
- movs r1, 0x85
- lsls r1, 24
- orrs r0, r1
- str r0, [r2, 0x8]
- ldr r0, [r2, 0x8]
- movs r1, 0xA0
- lsls r1, 19
- mov r0, sp
- strh r4, [r0]
- str r0, [r2]
- str r1, [r2, 0x4]
- lsrs r3, 1
- movs r0, 0x81
- lsls r0, 24
- orrs r3, r0
- str r3, [r2, 0x8]
- ldr r0, [r2, 0x8]
- movs r1, 0xC0
- lsls r1, 19
- mov r0, r9
- bl LZ77UnCompVram
- movs r1, 0
- ldr r3, _08143558 @ =0x06003800
- movs r2, 0x1
-_081434B2:
- lsls r0, r1, 1
- adds r0, r3
- strh r2, [r0]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0x3F
- bls _081434B2
- movs r1, 0
- ldr r5, _0814355C @ =0x02000000
- ldr r3, _08143560 @ =0x06003b80
- movs r2, 0x1
-_081434CA:
- lsls r0, r1, 1
- adds r0, r3
- strh r2, [r0]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0xBF
- bls _081434CA
- movs r1, 0
- ldr r4, _08143564 @ =0x06003000
- movs r3, 0x2
- ldr r2, _08143568 @ =0x000003ff
-_081434E2:
- lsls r0, r1, 1
- adds r0, r4
- strh r3, [r0]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, r2
- bls _081434E2
- adds r2, r5, 0
- movs r3, 0x80
- lsls r3, 7
- mov r4, sp
- movs r6, 0
- ldr r1, _08143550 @ =0x040000d4
- movs r5, 0x80
- lsls r5, 5
- ldr r7, _08143554 @ =0x81000800
- movs r0, 0x81
- lsls r0, 24
- mov r12, r0
-_0814350A:
- strh r6, [r4]
- mov r0, sp
- str r0, [r1]
- str r2, [r1, 0x4]
- str r7, [r1, 0x8]
- ldr r0, [r1, 0x8]
- adds r2, r5
- subs r3, r5
- cmp r3, r5
- bhi _0814350A
- strh r6, [r4]
- mov r0, sp
- str r0, [r1]
- str r2, [r1, 0x4]
- lsrs r0, r3, 1
- mov r2, r12
- orrs r0, r2
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- bl ResetPaletteFade
- ldr r0, _0814356C @ =gHallOfFame_Pal
- movs r1, 0
- movs r2, 0x20
- bl LoadPalette
- add sp, 0x8
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0814354C: .4byte gHallOfFame_Gfx
-_08143550: .4byte 0x040000d4
-_08143554: .4byte 0x81000800
-_08143558: .4byte 0x06003800
-_0814355C: .4byte 0x02000000
-_08143560: .4byte 0x06003b80
-_08143564: .4byte 0x06003000
-_08143568: .4byte 0x000003ff
-_0814356C: .4byte gHallOfFame_Pal
- thumb_func_end sub_81433E0
-
- thumb_func_start sub_8143570
-sub_8143570: @ 8143570
- push {r4,lr}
- bl remove_some_task
- bl ResetTasks
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- ldr r1, _081435A8 @ =gReservedSpritePaletteCount
- movs r0, 0x8
- strb r0, [r1]
- ldr r0, _081435AC @ =gUnknown_0840B514
- bl LoadCompressedObjectPic
- ldr r0, _081435B0 @ =gUnknown_0840B524
- bl LoadCompressedObjectPalette
- ldr r4, _081435B4 @ =gWindowConfig_81E71B4
- adds r0, r4, 0
- bl SetUpWindowConfig
- adds r0, r4, 0
- bl InitMenuWindow
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081435A8: .4byte gReservedSpritePaletteCount
-_081435AC: .4byte gUnknown_0840B514
-_081435B0: .4byte gUnknown_0840B524
-_081435B4: .4byte gWindowConfig_81E71B4
- thumb_func_end sub_8143570
-
- thumb_func_start sub_81435B8
-sub_81435B8: @ 81435B8
- ldr r1, _081435D8 @ =REG_BG1CNT
- movs r2, 0xE0
- lsls r2, 3
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x4
- subs r2, 0xFD
- adds r0, r2, 0
- strh r0, [r1]
- subs r1, 0xE
- movs r2, 0xDA
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- bx lr
- .align 2, 0
-_081435D8: .4byte REG_BG1CNT
- thumb_func_end sub_81435B8
-
- thumb_func_start sub_81435DC
-sub_81435DC: @ 81435DC
- push {r4,lr}
- adds r2, r0, 0
- ldr r1, [r2, 0x20]
- ldr r0, [r2, 0x30]
- cmp r1, r0
- beq _08143632
- ldrh r3, [r2, 0x20]
- movs r1, 0x20
- ldrsh r0, [r2, r1]
- movs r4, 0x30
- ldrsh r1, [r2, r4]
- cmp r0, r1
- bge _081435FC
- adds r0, r3, 0
- adds r0, 0xF
- strh r0, [r2, 0x20]
-_081435FC:
- ldrh r3, [r2, 0x20]
- movs r4, 0x20
- ldrsh r0, [r2, r4]
- cmp r0, r1
- ble _0814360C
- adds r0, r3, 0
- subs r0, 0xF
- strh r0, [r2, 0x20]
-_0814360C:
- ldrh r3, [r2, 0x22]
- movs r1, 0x22
- ldrsh r0, [r2, r1]
- movs r4, 0x32
- ldrsh r1, [r2, r4]
- cmp r0, r1
- bge _08143620
- adds r0, r3, 0
- adds r0, 0xA
- strh r0, [r2, 0x22]
-_08143620:
- ldrh r3, [r2, 0x22]
- movs r4, 0x22
- ldrsh r0, [r2, r4]
- cmp r0, r1
- ble _0814363A
- adds r0, r3, 0
- subs r0, 0xA
- strh r0, [r2, 0x22]
- b _0814363A
-_08143632:
- movs r0, 0x1
- strh r0, [r2, 0x2E]
- ldr r0, _08143640 @ =nullsub_81
- str r0, [r2, 0x1C]
-_0814363A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08143640: .4byte nullsub_81
- thumb_func_end sub_81435DC
-
- thumb_func_start nullsub_81
-nullsub_81: @ 8143644
- bx lr
- thumb_func_end nullsub_81
-
- thumb_func_start sub_8143648
-sub_8143648: @ 8143648
- push {r4-r7,lr}
- lsls r1, 24
- ldr r4, _08143670 @ =gUnknown_02024E8C
- adds r3, r4, 0
- ldr r2, _08143674 @ =gUnknown_0840B6B8
- ldm r2!, {r5-r7}
- stm r3!, {r5-r7}
- ldm r2!, {r5-r7}
- stm r3!, {r5-r7}
- strh r0, [r4, 0x2]
- ldr r0, _08143678 @ =gUnknown_0840B69C
- lsrs r1, 22
- adds r1, r0
- ldr r0, [r1]
- str r0, [r4, 0xC]
- ldr r0, _0814367C @ =gSpriteAnimTable_81E7C64
- str r0, [r4, 0x8]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08143670: .4byte gUnknown_02024E8C
-_08143674: .4byte gUnknown_0840B6B8
-_08143678: .4byte gUnknown_0840B69C
-_0814367C: .4byte gSpriteAnimTable_81E7C64
- thumb_func_end sub_8143648
-
- thumb_func_start sub_8143680
-sub_8143680: @ 8143680
- push {r4-r7,lr}
- lsls r1, 24
- ldr r4, _081436AC @ =gUnknown_02024E8C
- adds r3, r4, 0
- ldr r2, _081436B0 @ =gUnknown_0840B6B8
- ldm r2!, {r5-r7}
- stm r3!, {r5-r7}
- ldm r2!, {r5-r7}
- stm r3!, {r5-r7}
- strh r0, [r4, 0x2]
- ldr r0, _081436B4 @ =gUnknown_0840B69C
- lsrs r1, 22
- adds r1, r0
- ldr r0, [r1]
- str r0, [r4, 0xC]
- ldr r0, _081436B8 @ =gUnknown_081EC2A4
- ldr r0, [r0]
- str r0, [r4, 0x8]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081436AC: .4byte gUnknown_02024E8C
-_081436B0: .4byte gUnknown_0840B6B8
-_081436B4: .4byte gUnknown_0840B69C
-_081436B8: .4byte gUnknown_081EC2A4
- thumb_func_end sub_8143680
-
- thumb_func_start sub_81436BC
-sub_81436BC: @ 81436BC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- adds r6, r0, 0
- mov r9, r1
- mov r10, r2
- mov r8, r3
- ldr r7, [sp, 0x34]
- lsls r6, 16
- lsrs r6, 16
- mov r0, r9
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
- mov r1, r10
- lsls r1, 16
- lsrs r1, 16
- mov r10, r1
- mov r2, r8
- lsls r2, 16
- lsrs r2, 16
- mov r8, r2
- lsls r0, r6, 3
- ldr r1, _08143790 @ =gMonFrontPicTable
- adds r0, r1
- ldr r1, _08143794 @ =gMonFrontPicCoords
- lsls r2, r6, 2
- adds r2, r1
- ldrb r1, [r2]
- ldrb r2, [r2, 0x1]
- movs r3, 0x80
- lsls r3, 18
- ldr r4, _08143798 @ =gUnknown_0840B5A0
- mov r12, r4
- mov r5, r8
- lsls r4, r5, 2
- add r4, r12
- ldr r4, [r4]
- str r4, [sp]
- str r6, [sp, 0x4]
- str r7, [sp, 0x8]
- movs r4, 0x1
- str r4, [sp, 0xC]
- bl sub_800D378
- adds r0, r6, 0
- ldr r1, [sp, 0x30]
- adds r2, r7, 0
- bl species_and_otid_get_pal
- lsls r4, r5, 4
- movs r2, 0x80
- lsls r2, 1
- adds r1, r4, r2
- lsls r1, 16
- lsrs r1, 16
- movs r2, 0x20
- bl LoadCompressedPalette
- lsls r1, r5, 24
- lsrs r1, 24
- mov r0, r8
- bl sub_8143648
- ldr r0, _0814379C @ =gUnknown_02024E8C
- mov r5, r9
- lsls r5, 16
- asrs r5, 16
- mov r9, r5
- mov r1, r10
- lsls r1, 16
- asrs r1, 16
- mov r10, r1
- movs r3, 0xA
- mov r2, r8
- subs r3, r2
- lsls r3, 24
- lsrs r3, 24
- mov r1, r9
- mov r2, r10
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _081437A0 @ =gSprites
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r1
- ldrb r3, [r2, 0x5]
- movs r1, 0xF
- ands r1, r3
- orrs r1, r4
- strb r1, [r2, 0x5]
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08143790: .4byte gMonFrontPicTable
-_08143794: .4byte gMonFrontPicCoords
-_08143798: .4byte gUnknown_0840B5A0
-_0814379C: .4byte gUnknown_02024E8C
-_081437A0: .4byte gSprites
- thumb_func_end sub_81436BC
-
- thumb_func_start sub_81437A4
-sub_81437A4: @ 81437A4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- mov r9, r1
- mov r10, r2
- adds r6, r3, 0
- lsls r0, 16
- lsrs r0, 16
- lsls r1, 16
- lsrs r1, 16
- mov r9, r1
- lsls r2, 16
- lsrs r2, 16
- mov r10, r2
- lsls r6, 16
- lsrs r6, 16
- lsls r7, r0, 3
- ldr r1, _08143854 @ =gTrainerFrontPicTable
- mov r8, r1
- add r8, r7
- ldr r1, _08143858 @ =gTrainerFrontPicCoords
- lsls r2, r0, 2
- adds r2, r1
- ldrb r1, [r2]
- ldrb r2, [r2, 0x1]
- movs r3, 0x80
- lsls r3, 18
- ldr r5, _0814385C @ =gUnknown_0840B5A0
- lsls r4, r6, 2
- adds r4, r5
- ldr r4, [r4]
- str r4, [sp]
- str r0, [sp, 0x4]
- mov r0, r8
- bl DecompressPicFromTable_2
- ldr r0, _08143860 @ =gTrainerFrontPicPaletteTable
- adds r0, r7, r0
- ldr r0, [r0]
- lsls r4, r6, 4
- movs r2, 0x80
- lsls r2, 1
- adds r1, r4, r2
- lsls r1, 16
- lsrs r1, 16
- movs r2, 0x20
- bl LoadCompressedPalette
- lsls r1, r6, 24
- lsrs r1, 24
- adds r0, r6, 0
- bl sub_8143680
- ldr r0, _08143864 @ =gUnknown_02024E8C
- mov r1, r9
- lsls r1, 16
- asrs r1, 16
- mov r9, r1
- mov r2, r10
- lsls r2, 16
- asrs r2, 16
- mov r10, r2
- movs r3, 0x1
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _08143868 @ =gSprites
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r1
- ldrb r3, [r2, 0x5]
- movs r1, 0xF
- ands r1, r3
- orrs r1, r4
- strb r1, [r2, 0x5]
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08143854: .4byte gTrainerFrontPicTable
-_08143858: .4byte gTrainerFrontPicCoords
-_0814385C: .4byte gUnknown_0840B5A0
-_08143860: .4byte gTrainerFrontPicPaletteTable
-_08143864: .4byte gUnknown_02024E8C
-_08143868: .4byte gSprites
- thumb_func_end sub_81437A4
-
- thumb_func_start sub_814386C
-sub_814386C: @ 814386C
- push {r4,r5,lr}
- adds r5, r0, 0
- ldrh r1, [r5, 0x26]
- movs r2, 0x26
- ldrsh r0, [r5, r2]
- cmp r0, 0x78
- ble _08143882
- adds r0, r5, 0
- bl DestroySprite
- b _081438BA
-_08143882:
- adds r0, r1, 0x1
- ldrh r1, [r5, 0x30]
- adds r0, r1
- strh r0, [r5, 0x26]
- ldrh r4, [r5, 0x2E]
- lsls r4, 24
- lsrs r4, 24
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- ands r0, r1
- adds r0, 0x8
- ldr r1, _081438C0 @ =gSineTable
- lsls r4, 1
- adds r4, r1
- movs r2, 0
- ldrsh r1, [r4, r2]
- muls r0, r1
- cmp r0, 0
- bge _081438B0
- adds r0, 0xFF
-_081438B0:
- asrs r0, 8
- strh r0, [r5, 0x24]
- ldrh r0, [r5, 0x2E]
- adds r0, 0x4
- strh r0, [r5, 0x2E]
-_081438BA:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_081438C0: .4byte gSineTable
- thumb_func_end sub_814386C
-
- thumb_func_start sub_81438C4
-sub_81438C4: @ 81438C4
- push {r4,lr}
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xF0
- bl __umodsi3
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- bl Random
- adds r2, r0, 0
- lsls r2, 16
- lsrs r2, 16
- movs r0, 0x7
- ands r2, r0
- negs r2, r2
- ldr r0, _08143934 @ =gSpriteTemplate_840B7A4
- lsls r4, 16
- asrs r4, 16
- lsls r2, 16
- asrs r2, 16
- adds r1, r4, 0
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- ldr r0, _08143938 @ =gSprites
- adds r4, r1, r0
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x11
- bl __umodsi3
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl StartSpriteAnim
- bl Random
- movs r1, 0x3
- ands r1, r0
- cmp r1, 0
- beq _0814393C
- movs r0, 0
- b _0814393E
- .align 2, 0
-_08143934: .4byte gSpriteTemplate_840B7A4
-_08143938: .4byte gSprites
-_0814393C:
- movs r0, 0x1
-_0814393E:
- strh r0, [r4, 0x30]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_81438C4
-
- thumb_func_start sub_8143948
-sub_8143948: @ 8143948
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- pop {r0}
- bx r0
- thumb_func_end sub_8143948
-
- thumb_func_start sub_814395C
-sub_814395C: @ 814395C
- push {lr}
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- ldr r0, _081439B8 @ =gMain
- ldrh r1, [r0, 0x2C]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _081439B2
- ldr r0, _081439BC @ =gUnknown_02039324
- ldrb r0, [r0]
- cmp r0, 0
- beq _081439B2
- ldr r2, _081439C0 @ =gTasks
- ldr r0, _081439C4 @ =gUnknown_02039322
- ldrh r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldr r1, [r0]
- ldr r0, _081439C8 @ =sub_8143B68
- cmp r1, r0
- bne _081439B2
- bl sub_8143948
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- ldr r1, _081439CC @ =gUnknown_02039325
- movs r0, 0x1
- strb r0, [r1]
-_081439B2:
- pop {r0}
- bx r0
- .align 2, 0
-_081439B8: .4byte gMain
-_081439BC: .4byte gUnknown_02039324
-_081439C0: .4byte gTasks
-_081439C4: .4byte gUnknown_02039322
-_081439C8: .4byte sub_8143B68
-_081439CC: .4byte gUnknown_02039325
- thumb_func_end sub_814395C
-
- thumb_func_start sub_81439D0
-sub_81439D0: @ 81439D0
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- bl sub_8144130
- movs r0, 0
- bl SetVBlankCallback
- bl ResetPaletteFade
- bl ResetTasks
- ldr r0, _08143AF0 @ =sub_8143B38
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r1, _08143AF4 @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0x10]
- strh r1, [r0, 0x16]
- strh r1, [r0, 0x1E]
- movs r1, 0x1
- strh r1, [r0, 0x22]
-_08143A0E:
- movs r0, 0
- adds r1, r7, 0
- bl sub_8144ECC
- lsls r0, 24
- cmp r0, 0
- beq _08143A0E
- ldr r6, _08143AF4 @ =gTasks
- lsls r5, r7, 2
- adds r5, r7
- lsls r5, 3
- adds r5, r6
- movs r0, 0xA
- ldrsh r1, [r5, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r6
- movs r1, 0
- mov r9, r1
- movs r2, 0
- mov r8, r2
- movs r1, 0x28
- strh r1, [r0, 0x8]
- ldr r4, _08143AF8 @ =gWindowConfig_81E7208
- adds r0, r4, 0
- bl SetUpWindowConfig
- adds r0, r4, 0
- bl InitMenuWindow
- ldr r0, _08143AFC @ =gUnknown_0840B7BC
- movs r1, 0x80
- movs r2, 0x40
- bl LoadPalette
- ldr r0, _08143B00 @ =gUnknown_0840B7FC
- ldr r1, _08143B04 @ =0x0600bee0
- movs r2, 0x20
- bl CpuSet
- ldr r1, _08143B08 @ =REG_BG0VOFS
- ldr r2, _08143B0C @ =0x0000fffc
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _08143B10 @ =sub_81441B8
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r6
- strh r7, [r1, 0xA]
- strh r0, [r5, 0x26]
- movs r0, 0x1
- negs r0, r0
- mov r1, r8
- str r1, [sp]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r3, _08143B14 @ =0x04000208
- ldrh r2, [r3]
- mov r0, r8
- strh r0, [r3]
- ldr r4, _08143B18 @ =0x04000200
- ldrh r0, [r4]
- movs r1, 0x1
- orrs r0, r1
- strh r0, [r4]
- strh r2, [r3]
- ldr r2, _08143B1C @ =REG_DISPSTAT
- ldrh r0, [r2]
- movs r1, 0x8
- orrs r0, r1
- strh r0, [r2]
- ldr r0, _08143B20 @ =sub_8143948
- bl SetVBlankCallback
- ldr r0, _08143B24 @ =0x000001c7
- bl m4aSongNumStart
- ldr r0, _08143B28 @ =sub_814395C
- bl SetMainCallback2
- ldr r0, _08143B2C @ =gUnknown_02039325
- mov r1, r9
- strb r1, [r0]
- ldr r4, _08143B30 @ =0x0201c000
- bl sub_81458DC
- adds r0, r4, 0
- adds r0, 0x88
- mov r2, r8
- strh r2, [r0]
- adds r0, 0x2
- strh r2, [r0]
- adds r0, 0x2
- strh r2, [r0]
- ldr r0, _08143B34 @ =gUnknown_02039322
- strh r7, [r0]
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08143AF0: .4byte sub_8143B38
-_08143AF4: .4byte gTasks
-_08143AF8: .4byte gWindowConfig_81E7208
-_08143AFC: .4byte gUnknown_0840B7BC
-_08143B00: .4byte gUnknown_0840B7FC
-_08143B04: .4byte 0x0600bee0
-_08143B08: .4byte REG_BG0VOFS
-_08143B0C: .4byte 0x0000fffc
-_08143B10: .4byte sub_81441B8
-_08143B14: .4byte 0x04000208
-_08143B18: .4byte 0x04000200
-_08143B1C: .4byte REG_DISPSTAT
-_08143B20: .4byte sub_8143948
-_08143B24: .4byte 0x000001c7
-_08143B28: .4byte sub_814395C
-_08143B2C: .4byte gUnknown_02039325
-_08143B30: .4byte 0x0201c000
-_08143B34: .4byte gUnknown_02039322
- thumb_func_end sub_81439D0
-
- thumb_func_start sub_8143B38
-sub_8143B38: @ 8143B38
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _08143B5C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08143B58
- ldr r0, _08143B60 @ =gTasks
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 3
- adds r1, r0
- ldr r0, _08143B64 @ =sub_8143B68
- str r0, [r1]
-_08143B58:
- pop {r0}
- bx r0
- .align 2, 0
-_08143B5C: .4byte gPaletteFade
-_08143B60: .4byte gTasks
-_08143B64: .4byte sub_8143B68
- thumb_func_end sub_8143B38
-
- thumb_func_start sub_8143B68
-sub_8143B68: @ 8143B68
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08143B9C @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
- movs r0, 0x10
- ldrsh r1, [r4, r0]
- cmp r1, 0
- beq _08143BA4
- movs r3, 0xA
- ldrsh r1, [r4, r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- movs r1, 0x1E
- strh r1, [r0, 0x8]
- movs r0, 0x80
- lsls r0, 1
- strh r0, [r4, 0x20]
- ldr r0, _08143BA0 @ =sub_8143EBC
- b _08143BEE
- .align 2, 0
-_08143B9C: .4byte gTasks
-_08143BA0: .4byte sub_8143EBC
-_08143BA4:
- ldr r0, _08143BCC @ =gUnknown_02039320
- strh r1, [r0]
- ldrh r2, [r4, 0x1E]
- movs r3, 0x1E
- ldrsh r0, [r4, r3]
- cmp r0, 0x1
- bne _08143BD4
- strh r2, [r4, 0x22]
- strh r1, [r4, 0x1E]
- movs r0, 0x1
- negs r0, r0
- str r1, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, _08143BD0 @ =sub_8143BFC
- b _08143BEE
- .align 2, 0
-_08143BCC: .4byte gUnknown_02039320
-_08143BD0: .4byte sub_8143BFC
-_08143BD4:
- cmp r0, 0x2
- bne _08143BF0
- strh r2, [r4, 0x22]
- strh r1, [r4, 0x1E]
- movs r0, 0x1
- negs r0, r0
- str r1, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, _08143BF8 @ =sub_8143CC0
-_08143BEE:
- str r0, [r4]
-_08143BF0:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08143BF8: .4byte sub_8143CC0
- thumb_func_end sub_8143B68
-
- thumb_func_start sub_8143BFC
-sub_8143BFC: @ 8143BFC
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08143C34 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- bne _08143C2C
- movs r0, 0x80
- lsls r0, 19
- strh r1, [r0]
- adds r0, r4, 0
- bl sub_81450AC
- ldr r1, _08143C38 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _08143C3C @ =c2_080C9BFC
- str r1, [r0]
-_08143C2C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08143C34: .4byte gPaletteFade
-_08143C38: .4byte gTasks
-_08143C3C: .4byte c2_080C9BFC
- thumb_func_end sub_8143BFC
-
- thumb_func_start c2_080C9BFC
-c2_080C9BFC: @ 8143C40
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0
- bl SetVBlankCallback
- ldr r1, _08143CA8 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r5, r0, r1
- ldrb r0, [r5, 0x16]
- adds r1, r4, 0
- bl sub_8144ECC
- lsls r0, 24
- cmp r0, 0
- beq _08143CA0
- movs r0, 0x1
- negs r0, r0
- movs r4, 0
- str r4, [sp]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r3, _08143CAC @ =0x04000208
- ldrh r2, [r3]
- strh r4, [r3]
- ldr r4, _08143CB0 @ =0x04000200
- ldrh r0, [r4]
- movs r1, 0x1
- orrs r0, r1
- strh r0, [r4]
- strh r2, [r3]
- ldr r2, _08143CB4 @ =REG_DISPSTAT
- ldrh r0, [r2]
- movs r1, 0x8
- orrs r0, r1
- strh r0, [r2]
- ldr r0, _08143CB8 @ =sub_8143948
- bl SetVBlankCallback
- ldr r0, _08143CBC @ =sub_8143B38
- str r0, [r5]
-_08143CA0:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08143CA8: .4byte gTasks
-_08143CAC: .4byte 0x04000208
-_08143CB0: .4byte 0x04000200
-_08143CB4: .4byte REG_DISPSTAT
-_08143CB8: .4byte sub_8143948
-_08143CBC: .4byte sub_8143B38
- thumb_func_end c2_080C9BFC
-
- thumb_func_start sub_8143CC0
-sub_8143CC0: @ 8143CC0
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08143CF8 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- bne _08143CF0
- movs r0, 0x80
- lsls r0, 19
- strh r1, [r0]
- adds r0, r4, 0
- bl sub_81450AC
- ldr r1, _08143CFC @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _08143D00 @ =sub_8143D04
- str r1, [r0]
-_08143CF0:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08143CF8: .4byte gPaletteFade
-_08143CFC: .4byte gTasks
-_08143D00: .4byte sub_8143D04
- thumb_func_end sub_8143CC0
-
- thumb_func_start sub_8143D04
-sub_8143D04: @ 8143D04
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, _08143DC8 @ =gMain
- ldr r1, _08143DCC @ =0x0000043c
- adds r1, r0
- mov r8, r1
- ldrb r7, [r1]
- cmp r7, 0
- beq _08143D24
- cmp r7, 0x1
- beq _08143E0C
-_08143D24:
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- ldr r1, _08143DD0 @ =gReservedSpritePaletteCount
- movs r0, 0x8
- strb r0, [r1]
- ldr r0, _08143DD4 @ =gUnknown_083F66F0
- movs r1, 0xC0
- lsls r1, 19
- bl LZ77UnCompVram
- ldr r0, _08143DD8 @ =gBirchGrassTilemap
- ldr r1, _08143DDC @ =0x06003800
- bl LZ77UnCompVram
- ldr r0, _08143DE0 @ =gUnknown_083F62EC + 0x2
- movs r1, 0x1
- movs r2, 0x3E
- bl LoadPalette
- movs r1, 0
- ldr r4, _08143DE4 @ =0x0201e000
- movs r3, 0x11
- ldr r2, _08143DE8 @ =0x000007ff
-_08143D56:
- adds r0, r1, r4
- strb r3, [r0]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, r2
- bls _08143D56
- movs r1, 0
- ldr r2, _08143DEC @ =0x0201f800
- ldr r6, _08143DF0 @ =gUnknown_0840CAA0
- ldr r0, _08143DF4 @ =0xfffff000
- adds r5, r2, r0
- movs r4, 0x22
- ldr r3, _08143DE8 @ =0x000007ff
-_08143D72:
- adds r0, r1, r5
- strb r4, [r0]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, r3
- bls _08143D72
- movs r1, 0
- ldr r5, _08143DF8 @ =0x0201f000
- movs r4, 0x33
- ldr r3, _08143DE8 @ =0x000007ff
-_08143D88:
- adds r0, r1, r5
- strb r4, [r0]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, r3
- bls _08143D88
- movs r0, 0
- strh r0, [r2]
- ldr r1, _08143DFC @ =0x000053ff
- adds r0, r1, 0
- strh r0, [r2, 0x2]
- ldr r1, _08143E00 @ =0x0000529f
- adds r0, r1, 0
- strh r0, [r2, 0x4]
- ldr r1, _08143E04 @ =0x00007e94
- adds r0, r1, 0
- strh r0, [r2, 0x6]
- adds r0, r6, 0
- bl LoadSpriteSheet
- ldr r0, _08143E08 @ =gUnknown_0840CAB0
- bl LoadSpritePalette
- ldr r1, _08143DC8 @ =gMain
- ldr r2, _08143DCC @ =0x0000043c
- adds r1, r2
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _08143E90
- .align 2, 0
-_08143DC8: .4byte gMain
-_08143DCC: .4byte 0x0000043c
-_08143DD0: .4byte gReservedSpritePaletteCount
-_08143DD4: .4byte gUnknown_083F66F0
-_08143DD8: .4byte gBirchGrassTilemap
-_08143DDC: .4byte 0x06003800
-_08143DE0: .4byte gUnknown_083F62EC + 0x2
-_08143DE4: .4byte 0x0201e000
-_08143DE8: .4byte 0x000007ff
-_08143DEC: .4byte 0x0201f800
-_08143DF0: .4byte gUnknown_0840CAA0
-_08143DF4: .4byte 0xfffff000
-_08143DF8: .4byte 0x0201f000
-_08143DFC: .4byte 0x000053ff
-_08143E00: .4byte 0x0000529f
-_08143E04: .4byte 0x00007e94
-_08143E08: .4byte gUnknown_0840CAB0
-_08143E0C:
- ldr r0, _08143EA0 @ =sub_8144514
- movs r1, 0
- bl CreateTask
- ldr r2, _08143EA4 @ =gTasks
- lsls r4, r6, 2
- adds r4, r6
- lsls r4, 3
- adds r4, r2
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- mov r9, r1
- movs r5, 0
- strh r0, [r4, 0xE]
- movs r0, 0xE
- ldrsh r1, [r4, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- strh r7, [r0, 0x8]
- movs r0, 0xE
- ldrsh r1, [r4, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- strh r6, [r0, 0xA]
- movs r0, 0xE
- ldrsh r1, [r4, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrh r1, [r4, 0x16]
- strh r1, [r0, 0xC]
- movs r0, 0x1
- negs r0, r0
- str r5, [sp]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r0, _08143EA8 @ =REG_BG3HOFS
- strh r5, [r0]
- ldr r1, _08143EAC @ =REG_BG3VOFS
- movs r0, 0x20
- strh r0, [r1]
- subs r1, 0x10
- ldr r2, _08143EB0 @ =0x00000703
- adds r0, r2, 0
- strh r0, [r1]
- subs r1, 0xE
- movs r2, 0xCA
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- mov r1, r9
- mov r0, r8
- strb r1, [r0]
- ldr r0, _08143EB4 @ =gUnknown_0203935C
- strh r5, [r0]
- ldr r0, _08143EB8 @ =sub_8143B38
- str r0, [r4]
-_08143E90:
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08143EA0: .4byte sub_8144514
-_08143EA4: .4byte gTasks
-_08143EA8: .4byte REG_BG3HOFS
-_08143EAC: .4byte REG_BG3VOFS
-_08143EB0: .4byte 0x00000703
-_08143EB4: .4byte gUnknown_0203935C
-_08143EB8: .4byte sub_8143B38
- thumb_func_end sub_8143D04
-
- thumb_func_start sub_8143EBC
-sub_8143EBC: @ 8143EBC
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08143EE0 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
- ldrh r0, [r4, 0x20]
- movs r2, 0x20
- ldrsh r1, [r4, r2]
- cmp r1, 0
- beq _08143EE4
- subs r0, 0x1
- strh r0, [r4, 0x20]
- b _08143EF8
- .align 2, 0
-_08143EE0: .4byte gTasks
-_08143EE4:
- movs r0, 0x1
- negs r0, r0
- str r1, [sp]
- movs r1, 0xC
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, _08143F00 @ =sub_8143F04
- str r0, [r4]
-_08143EF8:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08143F00: .4byte sub_8143F04
- thumb_func_end sub_8143EBC
-
- thumb_func_start sub_8143F04
-sub_8143F04: @ 8143F04
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08143F30 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08143F2A
- adds r0, r4, 0
- bl sub_81450AC
- ldr r0, _08143F34 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _08143F38 @ =sub_8143F3C
- str r0, [r1]
-_08143F2A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08143F30: .4byte gPaletteFade
-_08143F34: .4byte gTasks
-_08143F38: .4byte sub_8143F3C
- thumb_func_end sub_8143F04
-
- thumb_func_start sub_8143F3C
-sub_8143F3C: @ 8143F3C
- push {r4,r5,lr}
- sub sp, 0x4
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- bl sub_8144130
- bl ResetPaletteFade
- movs r1, 0xE0
- lsls r1, 6
- movs r0, 0
- movs r2, 0
- bl sub_8145128
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- movs r0, 0x1
- negs r0, r0
- movs r4, 0
- str r4, [sp]
- movs r1, 0x8
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r1, _08143FC4 @ =REG_BG0CNT
- movs r2, 0xE0
- lsls r2, 3
- adds r0, r2, 0
- strh r0, [r1]
- ldr r3, _08143FC8 @ =0x04000208
- ldrh r2, [r3]
- strh r4, [r3]
- ldr r4, _08143FCC @ =0x04000200
- ldrh r0, [r4]
- movs r1, 0x1
- orrs r0, r1
- strh r0, [r4]
- strh r2, [r3]
- ldr r2, _08143FD0 @ =REG_DISPSTAT
- ldrh r0, [r2]
- movs r1, 0x8
- orrs r0, r1
- strh r0, [r2]
- movs r1, 0x80
- lsls r1, 19
- movs r2, 0xA0
- lsls r2, 1
- adds r0, r2, 0
- strh r0, [r1]
- ldr r1, _08143FD4 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- movs r1, 0x80
- lsls r1, 1
- strh r1, [r0, 0x8]
- ldr r1, _08143FD8 @ =sub_8143FDC
- str r1, [r0]
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08143FC4: .4byte REG_BG0CNT
-_08143FC8: .4byte 0x04000208
-_08143FCC: .4byte 0x04000200
-_08143FD0: .4byte REG_DISPSTAT
-_08143FD4: .4byte gTasks
-_08143FD8: .4byte sub_8143FDC
- thumb_func_end sub_8143F3C
-
- thumb_func_start sub_8143FDC
-sub_8143FDC: @ 8143FDC
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08144000 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
- ldrh r0, [r4, 0x8]
- movs r2, 0x8
- ldrsh r1, [r4, r2]
- cmp r1, 0
- beq _08144004
- subs r0, 0x1
- strh r0, [r4, 0x8]
- b _08144018
- .align 2, 0
-_08144000: .4byte gTasks
-_08144004:
- movs r0, 0x1
- negs r0, r0
- str r1, [sp]
- movs r1, 0x6
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, _08144020 @ =sub_8144024
- str r0, [r4]
-_08144018:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08144020: .4byte sub_8144024
- thumb_func_end sub_8143FDC
-
- thumb_func_start sub_8144024
-sub_8144024: @ 8144024
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _08144074 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _0814406A
- movs r0, 0xE0
- lsls r0, 6
- movs r1, 0
- bl sub_81452D0
- movs r0, 0x1
- negs r0, r0
- str r4, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r1, _08144078 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- movs r1, 0xE1
- lsls r1, 5
- strh r1, [r0, 0x8]
- ldr r1, _0814407C @ =sub_8144080
- str r1, [r0]
-_0814406A:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08144074: .4byte gPaletteFade
-_08144078: .4byte gTasks
-_0814407C: .4byte sub_8144080
- thumb_func_end sub_8144024
-
- thumb_func_start sub_8144080
-sub_8144080: @ 8144080
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _081440CC @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08144104
- ldr r1, _081440D0 @ =gTasks
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r4, r0, r1
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- cmp r1, 0
- beq _081440AE
- ldr r0, _081440D4 @ =gMain
- ldrh r0, [r0, 0x2E]
- cmp r0, 0
- beq _081440E0
-_081440AE:
- movs r0, 0x4
- bl FadeOutBGM
- movs r0, 0x1
- negs r0, r0
- ldr r1, _081440D8 @ =0x0000ffff
- str r1, [sp]
- movs r1, 0x8
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, _081440DC @ =sub_8144114
- str r0, [r4]
- b _08144104
- .align 2, 0
-_081440CC: .4byte gPaletteFade
-_081440D0: .4byte gTasks
-_081440D4: .4byte gMain
-_081440D8: .4byte 0x0000ffff
-_081440DC: .4byte sub_8144114
-_081440E0:
- ldr r0, _0814410C @ =0x00001be8
- cmp r1, r0
- bne _081440EC
- movs r0, 0x8
- bl FadeOutBGM
-_081440EC:
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- ldr r0, _08144110 @ =0x00001ab8
- cmp r1, r0
- bne _081440FE
- movs r0, 0xE4
- lsls r0, 1
- bl m4aSongNumStart
-_081440FE:
- ldrh r0, [r4, 0x8]
- subs r0, 0x1
- strh r0, [r4, 0x8]
-_08144104:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0814410C: .4byte 0x00001be8
-_08144110: .4byte 0x00001ab8
- thumb_func_end sub_8144080
-
- thumb_func_start sub_8144114
-sub_8144114: @ 8144114
- push {lr}
- ldr r0, _0814412C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08144128
- movs r0, 0xFF
- bl SoftReset
-_08144128:
- pop {r0}
- bx r0
- .align 2, 0
-_0814412C: .4byte gPaletteFade
- thumb_func_end sub_8144114
-
- thumb_func_start sub_8144130
-sub_8144130: @ 8144130
- sub sp, 0x8
- movs r0, 0x80
- lsls r0, 19
- movs r1, 0
- strh r1, [r0]
- adds r0, 0x1C
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- subs r0, 0x6
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- subs r0, 0x6
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- subs r0, 0x6
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x3E
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- mov r0, sp
- strh r1, [r0]
- ldr r1, _081441A4 @ =0x040000d4
- str r0, [r1]
- movs r0, 0xC0
- lsls r0, 19
- str r0, [r1, 0x4]
- ldr r0, _081441A8 @ =0x8100c000
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- movs r2, 0
- str r2, [sp, 0x4]
- add r0, sp, 0x4
- str r0, [r1]
- movs r0, 0xE0
- lsls r0, 19
- str r0, [r1, 0x4]
- ldr r0, _081441AC @ =0x85000100
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- mov r0, sp
- strh r2, [r0]
- str r0, [r1]
- ldr r0, _081441B0 @ =0x05000002
- str r0, [r1, 0x4]
- ldr r0, _081441B4 @ =0x810001ff
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- add sp, 0x8
- bx lr
- .align 2, 0
-_081441A4: .4byte 0x040000d4
-_081441A8: .4byte 0x8100c000
-_081441AC: .4byte 0x85000100
-_081441B0: .4byte 0x05000002
-_081441B4: .4byte 0x810001ff
- thumb_func_end sub_8144130
-
- thumb_func_start sub_81441B8
-sub_81441B8: @ 81441B8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _081441E4 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- movs r2, 0x8
- ldrsh r0, [r0, r2]
- adds r6, r1, 0
- cmp r0, 0xA
- bhi _08144218
- lsls r0, 2
- ldr r1, _081441E8 @ =_081441EC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_081441E4: .4byte gTasks
-_081441E8: .4byte _081441EC
- .align 2, 0
-_081441EC:
- .4byte _08144218
- .4byte _08144258
- .4byte _08144278
- .4byte _08144358
- .4byte _0814438C
- .4byte _081443F8
- .4byte _08144218
- .4byte _08144218
- .4byte _08144218
- .4byte _08144218
- .4byte _08144428
-_08144218:
- ldr r0, _08144250 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- beq _0814422A
- b _08144446
-_0814422A:
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r6
- movs r1, 0x1
- strh r1, [r0, 0x8]
- movs r1, 0x58
- strh r1, [r0, 0xE]
- movs r3, 0xA
- ldrsh r1, [r0, r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r6
- strh r2, [r0, 0x24]
- ldr r0, _08144254 @ =gUnknown_02039320
- strh r2, [r0]
- b _08144446
- .align 2, 0
-_08144250: .4byte gPaletteFade
-_08144254: .4byte gUnknown_02039320
-_08144258:
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r1, r0, r6
- ldrh r2, [r1, 0xE]
- movs r3, 0xE
- ldrsh r0, [r1, r3]
- cmp r0, 0
- beq _08144270
- subs r0, r2, 0x1
- strh r0, [r1, 0xE]
- b _08144446
-_08144270:
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- b _08144446
-_08144278:
- movs r2, 0x80
- lsls r2, 19
- ldrh r1, [r2]
- ldr r0, _08144320 @ =0x0000feff
- ands r0, r1
- strh r0, [r2]
- lsls r2, r5, 2
- adds r0, r2, r5
- lsls r0, 3
- adds r3, r0, r6
- movs r0, 0xA
- ldrsh r1, [r3, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r4, r0, r6
- ldr r1, [r4]
- ldr r0, _08144324 @ =sub_8143B68
- mov r8, r2
- cmp r1, r0
- bne _08144352
- movs r1, 0xC
- ldrsh r0, [r3, r1]
- cmp r0, 0x33
- bgt _0814434C
- movs r4, 0
- ldr r7, _08144328 @ =gCreditsEntryPointerTable
- adds r6, r3, 0
-_081442B0:
- movs r2, 0xC
- ldrsh r1, [r6, r2]
- lsls r0, r1, 2
- adds r0, r1
- adds r0, r4
- lsls r0, 2
- adds r0, r7
- ldr r0, [r0]
- ldr r0, [r0, 0x4]
- lsls r2, r4, 25
- movs r3, 0x90
- lsls r3, 20
- adds r2, r3
- lsrs r2, 24
- movs r1, 0
- movs r3, 0xF0
- bl sub_8072BD8
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x4
- bls _081442B0
- ldr r3, _0814432C @ =gTasks
- mov r0, r8
- adds r1, r0, r5
- lsls r1, 3
- adds r1, r3
- ldrh r0, [r1, 0xC]
- adds r0, 0x1
- strh r0, [r1, 0xC]
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- movs r0, 0xA
- ldrsh r2, [r1, r0]
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r3
- movs r2, 0x1
- strh r2, [r0, 0x24]
- movs r2, 0xA
- ldrsh r1, [r1, r2]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r3
- movs r3, 0x22
- ldrsh r0, [r0, r3]
- cmp r0, 0x1
- bne _08144334
- movs r0, 0xC0
- lsls r0, 2
- ldr r1, _08144330 @ =0x0000328d
- b _0814433A
- .align 2, 0
-_08144320: .4byte 0x0000feff
-_08144324: .4byte sub_8143B68
-_08144328: .4byte gCreditsEntryPointerTable
-_0814432C: .4byte gTasks
-_08144330: .4byte 0x0000328d
-_08144334:
- movs r0, 0xC0
- lsls r0, 2
- ldr r1, _08144348 @ =0x00001967
-_0814433A:
- str r1, [sp]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- b _08144446
- .align 2, 0
-_08144348: .4byte 0x00001967
-_0814434C:
- movs r0, 0xA
- strh r0, [r3, 0x8]
- b _08144446
-_08144352:
- movs r0, 0
- strh r0, [r4, 0x24]
- b _08144446
-_08144358:
- movs r2, 0x80
- lsls r2, 19
- ldrh r0, [r2]
- movs r3, 0x80
- lsls r3, 1
- adds r1, r3, 0
- orrs r0, r1
- strh r0, [r2]
- ldr r0, _08144388 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08144446
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r6
- movs r1, 0x82
- strh r1, [r0, 0xE]
- ldrh r1, [r0, 0x8]
- adds r1, 0x1
- strh r1, [r0, 0x8]
- b _08144446
- .align 2, 0
-_08144388: .4byte gPaletteFade
-_0814438C:
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r6
- ldrh r1, [r4, 0xE]
- movs r2, 0xE
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _081443A4
- subs r0, r1, 0x1
- strh r0, [r4, 0xE]
- b _08144446
-_081443A4:
- ldrb r0, [r4, 0xC]
- ldrb r1, [r4, 0xA]
- bl sub_8144454
- lsls r0, 24
- cmp r0, 0
- beq _081443BA
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _08144446
-_081443BA:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- movs r3, 0xA
- ldrsh r1, [r4, r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r6
- movs r1, 0x22
- ldrsh r0, [r0, r1]
- cmp r0, 0x1
- bne _081443E0
- movs r0, 0xC0
- lsls r0, 2
- ldr r1, _081443DC @ =0x0000328d
- b _081443E6
- .align 2, 0
-_081443DC: .4byte 0x0000328d
-_081443E0:
- movs r0, 0xC0
- lsls r0, 2
- ldr r1, _081443F4 @ =0x00001967
-_081443E6:
- str r1, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- b _08144446
- .align 2, 0
-_081443F4: .4byte 0x00001967
-_081443F8:
- ldr r0, _08144420 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08144446
- movs r0, 0
- movs r1, 0x9
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- ldr r0, _08144424 @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- movs r0, 0x2
- strh r0, [r1, 0x8]
- b _08144446
- .align 2, 0
-_08144420: .4byte gPaletteFade
-_08144424: .4byte gTasks
-_08144428:
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r6
- movs r2, 0xA
- ldrsh r1, [r0, r2]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r6
- movs r1, 0x1
- strh r1, [r0, 0x10]
- adds r0, r5, 0
- bl DestroyTask
-_08144446:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_81441B8
-
- thumb_func_start sub_8144454
-sub_8144454: @ 8144454
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- adds r6, r3, 0
- lsls r1, 24
- lsrs r2, r1, 24
- adds r5, r2, 0
- ldr r4, _08144508 @ =gTasks
- cmp r3, 0x6
- bne _08144474
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r4
- movs r1, 0x2
- strh r1, [r0, 0x1E]
-_08144474:
- cmp r3, 0xC
- bne _08144486
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r4
- movs r1, 0x1
- strh r1, [r0, 0x16]
- strh r1, [r0, 0x1E]
-_08144486:
- cmp r3, 0x12
- bne _08144496
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r4
- movs r1, 0x2
- strh r1, [r0, 0x1E]
-_08144496:
- cmp r3, 0x18
- bne _081444AA
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r4
- movs r1, 0x2
- strh r1, [r0, 0x16]
- movs r1, 0x1
- strh r1, [r0, 0x1E]
-_081444AA:
- cmp r3, 0x1E
- bne _081444BA
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r4
- movs r1, 0x2
- strh r1, [r0, 0x1E]
-_081444BA:
- cmp r3, 0x23
- bne _081444CE
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r4
- movs r1, 0x3
- strh r1, [r0, 0x16]
- movs r1, 0x1
- strh r1, [r0, 0x1E]
-_081444CE:
- cmp r3, 0x28
- bne _081444DE
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r4
- movs r1, 0x2
- strh r1, [r0, 0x1E]
-_081444DE:
- cmp r6, 0x2E
- bne _081444F2
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r4
- movs r1, 0x4
- strh r1, [r0, 0x16]
- movs r1, 0x1
- strh r1, [r0, 0x1E]
-_081444F2:
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r4
- movs r1, 0x1E
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _0814450C
- movs r0, 0
- b _0814450E
- .align 2, 0
-_08144508: .4byte gTasks
-_0814450C:
- movs r0, 0x1
-_0814450E:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_8144454
-
- thumb_func_start sub_8144514
-sub_8144514: @ 8144514
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r6, _08144548 @ =0x0201c000
- ldr r3, _0814454C @ =gTasks
- lsls r0, 2
- add r0, r8
- lsls r0, 3
- adds r2, r0, r3
- movs r1, 0x8
- ldrsh r0, [r2, r1]
- cmp r0, 0x1
- beq _08144550
- cmp r0, 0x1
- bgt _0814453C
- b _08144658
-_0814453C:
- cmp r0, 0x2
- beq _08144584
- cmp r0, 0x3
- bne _08144546
- b _08144644
-_08144546:
- b _08144658
- .align 2, 0
-_08144548: .4byte 0x0201c000
-_0814454C: .4byte gTasks
-_08144550:
- adds r0, r6, 0
- adds r0, 0x8A
- ldrh r0, [r0]
- cmp r0, 0
- bne _0814456E
- movs r4, 0xA
- ldrsh r0, [r2, r4]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r3
- movs r4, 0x24
- ldrsh r0, [r1, r4]
- cmp r0, 0
- beq _08144658
-_0814456E:
- movs r0, 0xA
- ldrsh r1, [r2, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r3
- movs r1, 0
- strh r1, [r0, 0x24]
- ldrh r0, [r2, 0x8]
- adds r0, 0x1
- b _08144656
-_08144584:
- adds r0, r6, 0
- adds r0, 0x88
- ldrh r1, [r0]
- mov r9, r0
- cmp r1, 0x44
- beq _08144658
- movs r4, 0xA
- ldrsh r1, [r2, r4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r3
- ldr r1, [r0]
- ldr r0, _081445EC @ =sub_8143B68
- cmp r1, r0
- bne _08144658
- adds r7, r6, 0
- adds r7, 0x8C
- ldrh r0, [r7]
- lsls r0, 1
- adds r0, r6
- ldrh r0, [r0]
- ldr r4, _081445F0 @ =gUnknown_0840CA00
- adds r5, r6, 0
- adds r5, 0x8A
- ldrh r3, [r5]
- lsls r2, r3, 1
- adds r1, r2, r4
- ldrb r1, [r1]
- adds r4, 0x1
- adds r2, r4
- ldrb r2, [r2]
- bl sub_81456B4
- lsls r0, 24
- lsrs r2, r0, 24
- ldrh r1, [r7]
- adds r0, r6, 0
- adds r0, 0x8E
- ldrh r0, [r0]
- subs r0, 0x1
- cmp r1, r0
- bge _081445F8
- adds r0, r1, 0x1
- strh r0, [r7]
- ldr r1, _081445F4 @ =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- movs r1, 0x32
- b _0814460A
- .align 2, 0
-_081445EC: .4byte sub_8143B68
-_081445F0: .4byte gUnknown_0840CA00
-_081445F4: .4byte gSprites
-_081445F8:
- movs r0, 0
- strh r0, [r7]
- ldr r1, _08144620 @ =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- movs r1, 0x80
- lsls r1, 2
-_0814460A:
- strh r1, [r0, 0x34]
- mov r1, r9
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- ldrh r0, [r5]
- cmp r0, 0x2
- bne _08144624
- movs r0, 0
- b _08144626
- .align 2, 0
-_08144620: .4byte gSprites
-_08144624:
- adds r0, 0x1
-_08144626:
- strh r0, [r5]
- ldr r0, _08144640 @ =gTasks
- mov r2, r8
- lsls r1, r2, 2
- add r1, r8
- lsls r1, 3
- adds r1, r0
- movs r0, 0x32
- strh r0, [r1, 0xE]
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- b _08144658
- .align 2, 0
-_08144640: .4byte gTasks
-_08144644:
- ldrh r1, [r2, 0xE]
- movs r3, 0xE
- ldrsh r0, [r2, r3]
- cmp r0, 0
- beq _08144654
- subs r0, r1, 0x1
- strh r0, [r2, 0xE]
- b _08144658
-_08144654:
- movs r0, 0x1
-_08144656:
- strh r0, [r2, 0x8]
-_08144658:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8144514
-
- thumb_func_start sub_8144664
-sub_8144664: @ 8144664
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _0814468C @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- movs r2, 0x8
- ldrsh r0, [r0, r2]
- adds r6, r1, 0
- cmp r0, 0x32
- bls _08144680
- b _0814492C
-_08144680:
- lsls r0, 2
- ldr r1, _08144690 @ =_08144694
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0814468C: .4byte gTasks
-_08144690: .4byte _08144694
- .align 2, 0
-_08144694:
- .4byte _08144760
- .4byte _08144784
- .4byte _081447D8
- .4byte _081447F0
- .4byte _0814482C
- .4byte _08144850
- .4byte _0814489C
- .4byte _0814492C
- .4byte _0814492C
- .4byte _0814492C
- .4byte _081448A8
- .4byte _0814492C
- .4byte _0814492C
- .4byte _0814492C
- .4byte _0814492C
- .4byte _0814492C
- .4byte _0814492C
- .4byte _0814492C
- .4byte _0814492C
- .4byte _0814492C
- .4byte _081448C8
- .4byte _0814492C
- .4byte _0814492C
- .4byte _0814492C
- .4byte _0814492C
- .4byte _0814492C
- .4byte _0814492C
- .4byte _0814492C
- .4byte _0814492C
- .4byte _0814492C
- .4byte _081448EC
- .4byte _0814492C
- .4byte _0814492C
- .4byte _0814492C
- .4byte _0814492C
- .4byte _0814492C
- .4byte _0814492C
- .4byte _0814492C
- .4byte _0814492C
- .4byte _0814492C
- .4byte _0814492C
- .4byte _0814492C
- .4byte _0814492C
- .4byte _0814492C
- .4byte _0814492C
- .4byte _0814492C
- .4byte _0814492C
- .4byte _0814492C
- .4byte _0814492C
- .4byte _0814492C
- .4byte _08144920
-_08144760:
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- adds r4, r6
- ldrh r0, [r4, 0x12]
- lsls r0, 16
- asrs r0, 17
- movs r1, 0x7F
- ands r0, r1
- movs r1, 0xC
- bl Sin
- ldr r1, _08144780 @ =gUnknown_0203935A
- strh r0, [r1]
- b _081447A8
- .align 2, 0
-_08144780: .4byte gUnknown_0203935A
-_08144784:
- ldr r7, _081447B0 @ =gUnknown_0203935A
- movs r3, 0
- ldrsh r4, [r7, r3]
- cmp r4, 0
- beq _081447B4
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- adds r4, r6
- ldrh r0, [r4, 0x12]
- lsls r0, 16
- asrs r0, 17
- movs r1, 0x7F
- ands r0, r1
- movs r1, 0xC
- bl Sin
- strh r0, [r7]
-_081447A8:
- ldrh r0, [r4, 0x12]
- adds r0, 0x1
- strh r0, [r4, 0x12]
- b _0814492C
- .align 2, 0
-_081447B0: .4byte gUnknown_0203935A
-_081447B4:
- ldr r3, _081447D4 @ =gSprites
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r6
- movs r0, 0xC
- ldrsh r2, [r1, r0]
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r3
- movs r2, 0x2
- strh r2, [r0, 0x2E]
- strh r4, [r1, 0x12]
- b _08144848
- .align 2, 0
-_081447D4: .4byte gSprites
-_081447D8:
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r1, r0, r6
- ldrh r2, [r1, 0x12]
- movs r3, 0x12
- ldrsh r0, [r1, r3]
- cmp r0, 0x3F
- bgt _08144848
- adds r0, r2, 0x1
- strh r0, [r1, 0x12]
- b _08144866
-_081447F0:
- ldr r3, _08144828 @ =gSprites
- lsls r2, r5, 2
- adds r2, r5
- lsls r2, 3
- adds r2, r6
- movs r0, 0xC
- ldrsh r1, [r2, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- movs r1, 0x3
- strh r1, [r0, 0x2E]
- movs r0, 0xE
- ldrsh r1, [r2, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- movs r1, 0x1
- strh r1, [r0, 0x2E]
- movs r0, 0x78
- strh r0, [r2, 0x10]
- ldrh r0, [r2, 0x8]
- adds r0, 0x1
- strh r0, [r2, 0x8]
- b _0814492C
- .align 2, 0
-_08144828: .4byte gSprites
-_0814482C:
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r1, r0, r6
- ldrh r2, [r1, 0x10]
- movs r3, 0x10
- ldrsh r0, [r1, r3]
- cmp r0, 0
- beq _08144844
- subs r0, r2, 0x1
- strh r0, [r1, 0x10]
- b _0814492C
-_08144844:
- movs r0, 0x40
- strh r0, [r1, 0x12]
-_08144848:
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- b _0814492C
-_08144850:
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r6
- ldrh r1, [r4, 0x12]
- movs r2, 0x12
- ldrsh r0, [r4, r2]
- cmp r0, 0
- ble _0814487C
- subs r0, r1, 0x1
- strh r0, [r4, 0x12]
-_08144866:
- movs r1, 0x7F
- ands r0, r1
- movs r1, 0x14
- bl Sin
- ldr r1, _08144878 @ =gUnknown_0203935A
- strh r0, [r1]
- b _0814492C
- .align 2, 0
-_08144878: .4byte gUnknown_0203935A
-_0814487C:
- ldr r2, _08144898 @ =gSprites
- movs r3, 0xC
- ldrsh r1, [r4, r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x1
- strh r1, [r0, 0x2E]
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _0814492C
- .align 2, 0
-_08144898: .4byte gSprites
-_0814489C:
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r6
- movs r1, 0x32
- b _0814492A
-_081448A8:
- ldr r3, _081448C4 @ =gSprites
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r6
- movs r0, 0xE
- ldrsh r2, [r1, r0]
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r3
- movs r2, 0x2
- b _081448E0
- .align 2, 0
-_081448C4: .4byte gSprites
-_081448C8:
- ldr r3, _081448E8 @ =gSprites
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r6
- movs r0, 0xC
- ldrsh r2, [r1, r0]
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r3
- movs r2, 0x4
-_081448E0:
- strh r2, [r0, 0x2E]
- movs r0, 0x32
- strh r0, [r1, 0x8]
- b _0814492C
- .align 2, 0
-_081448E8: .4byte gSprites
-_081448EC:
- ldr r3, _0814491C @ =gSprites
- lsls r2, r5, 2
- adds r2, r5
- lsls r2, 3
- adds r2, r6
- movs r0, 0xC
- ldrsh r1, [r2, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- movs r1, 0x5
- strh r1, [r0, 0x2E]
- movs r0, 0xE
- ldrsh r1, [r2, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- movs r1, 0x3
- strh r1, [r0, 0x2E]
- movs r0, 0x32
- strh r0, [r2, 0x8]
- b _0814492C
- .align 2, 0
-_0814491C: .4byte gSprites
-_08144920:
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r6
- movs r1, 0
-_0814492A:
- strh r1, [r0, 0x8]
-_0814492C:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8144664
-
- thumb_func_start sub_8144934
-sub_8144934: @ 8144934
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _08144958 @ =gTasks
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r1
- movs r3, 0x8
- ldrsh r0, [r0, r3]
- adds r4, r1, 0
- cmp r0, 0x4
- bhi _08144974
- lsls r0, 2
- ldr r1, _0814495C @ =_08144960
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08144958: .4byte gTasks
-_0814495C: .4byte _08144960
- .align 2, 0
-_08144960:
- .4byte _08144974
- .4byte _081449B8
- .4byte _081449C4
- .4byte _08144A0C
- .4byte _08144A5C
-_08144974:
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r2, r0, r4
- movs r1, 0xA
- ldrsh r0, [r2, r1]
- ldr r5, _081449C0 @ =0x00007fff
- cmp r0, r5
- beq _081449B8
- movs r3, 0xC
- ldrsh r1, [r2, r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r3, r0, r4
- movs r0, 0x26
- ldrsh r1, [r3, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r4
- movs r1, 0xC
- ldrsh r0, [r0, r1]
- cmp r0, 0x2
- bne _081449B8
- movs r1, 0xA
- ldrsh r0, [r3, r1]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r4
- movs r0, 0x14
- strh r0, [r1, 0x8]
- strh r5, [r2, 0xA]
-_081449B8:
- movs r0, 0
- bl sub_8149020
- b _08144A62
- .align 2, 0
-_081449C0: .4byte 0x00007fff
-_081449C4:
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r2, r0, r4
- movs r3, 0xA
- ldrsh r0, [r2, r3]
- ldr r5, _08144A08 @ =0x00007fff
- cmp r0, r5
- beq _08144A54
- movs r0, 0xC
- ldrsh r1, [r2, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r4
- movs r3, 0xA
- ldrsh r1, [r0, r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r3, r0, r4
- ldrh r1, [r3, 0x12]
- movs r0, 0x80
- negs r0, r0
- ands r0, r1
- movs r1, 0xA0
- lsls r1, 2
- cmp r0, r1
- bne _08144A54
- movs r0, 0x1
- strh r0, [r3, 0x8]
- strh r5, [r2, 0xA]
- b _08144A54
- .align 2, 0
-_08144A08: .4byte 0x00007fff
-_08144A0C:
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r2, r0, r4
- ldrh r3, [r2, 0xA]
- movs r0, 0xA
- ldrsh r1, [r2, r0]
- ldr r5, _08144A48 @ =0x00007fff
- cmp r1, r5
- beq _08144A54
- ldr r0, _08144A4C @ =0x000001f3
- cmp r1, r0
- bne _08144A50
- movs r3, 0xC
- ldrsh r1, [r2, r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r4
- movs r3, 0xA
- ldrsh r1, [r0, r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r4
- movs r1, 0xA
- strh r1, [r0, 0x8]
- strh r5, [r2, 0xA]
- b _08144A54
- .align 2, 0
-_08144A48: .4byte 0x00007fff
-_08144A4C: .4byte 0x000001f3
-_08144A50:
- adds r0, r3, 0x1
- strh r0, [r2, 0xA]
-_08144A54:
- movs r0, 0x1
- bl sub_8149020
- b _08144A62
-_08144A5C:
- movs r0, 0x2
- bl sub_8149020
-_08144A62:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8144934
-
- thumb_func_start sub_8144A68
-sub_8144A68: @ 8144A68
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r1, 24
- lsrs r7, r1, 24
- cmp r0, 0x4
- bls _08144A7E
- b _08144DFC
-_08144A7E:
- lsls r0, 2
- ldr r1, _08144A88 @ =_08144A8C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08144A88: .4byte _08144A8C
- .align 2, 0
-_08144A8C:
- .4byte _08144AA0
- .4byte _08144B48
- .4byte _08144BF4
- .4byte _08144CA0
- .4byte _08144D50
-_08144AA0:
- ldr r5, _08144B40 @ =gSprites
- ldr r0, _08144B44 @ =gTasks
- lsls r4, r7, 2
- adds r4, r7
- lsls r4, 3
- adds r4, r0
- movs r1, 0x12
- ldrsh r0, [r4, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- adds r1, 0x3E
- ldrb r3, [r1]
- movs r2, 0x5
- negs r2, r2
- adds r0, r2, 0
- ands r0, r3
- strb r0, [r1]
- movs r0, 0x14
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- adds r0, 0x3E
- ldrb r1, [r0]
- ands r2, r1
- strb r2, [r0]
- movs r0, 0x12
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r3, 0
- movs r2, 0x88
- lsls r2, 1
- strh r2, [r0, 0x20]
- movs r0, 0x14
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r2, [r0, 0x20]
- movs r0, 0x12
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r2, 0x2E
- strh r2, [r0, 0x22]
- movs r0, 0x14
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r2, [r0, 0x22]
- movs r0, 0x12
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r3, [r0, 0x2E]
- movs r0, 0x14
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r3, [r0, 0x2E]
- movs r1, 0x80
- lsls r1, 6
- movs r0, 0
- movs r2, 0x20
- b _08144DF0
- .align 2, 0
-_08144B40: .4byte gSprites
-_08144B44: .4byte gTasks
-_08144B48:
- ldr r5, _08144BEC @ =gSprites
- ldr r0, _08144BF0 @ =gTasks
- lsls r4, r7, 2
- adds r4, r7
- lsls r4, 3
- adds r4, r0
- movs r1, 0x12
- ldrsh r0, [r4, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- adds r1, 0x3E
- ldrb r3, [r1]
- movs r2, 0x5
- negs r2, r2
- adds r0, r2, 0
- ands r0, r3
- strb r0, [r1]
- movs r0, 0x14
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- adds r0, 0x3E
- ldrb r1, [r0]
- ands r2, r1
- strb r2, [r0]
- movs r0, 0x12
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r3, 0
- movs r1, 0x78
- strh r1, [r0, 0x20]
- movs r0, 0x14
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r1, 0x88
- lsls r1, 1
- strh r1, [r0, 0x20]
- movs r0, 0x12
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r2, 0x2E
- strh r2, [r0, 0x22]
- movs r0, 0x14
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r2, [r0, 0x22]
- movs r0, 0x12
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r3, [r0, 0x2E]
- movs r0, 0x14
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r3, [r0, 0x2E]
- movs r1, 0x80
- lsls r1, 6
- movs r0, 0
- movs r2, 0x20
- b _08144DF0
- .align 2, 0
-_08144BEC: .4byte gSprites
-_08144BF0: .4byte gTasks
-_08144BF4:
- ldr r5, _08144C98 @ =gSprites
- ldr r0, _08144C9C @ =gTasks
- lsls r4, r7, 2
- adds r4, r7
- lsls r4, 3
- adds r4, r0
- movs r1, 0x12
- ldrsh r0, [r4, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- adds r1, 0x3E
- ldrb r3, [r1]
- movs r2, 0x5
- negs r2, r2
- adds r0, r2, 0
- ands r0, r3
- strb r0, [r1]
- movs r0, 0x14
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- adds r0, 0x3E
- ldrb r1, [r0]
- ands r2, r1
- strb r2, [r0]
- movs r0, 0x12
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r3, 0
- movs r1, 0x78
- strh r1, [r0, 0x20]
- movs r0, 0x14
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r1, 0x88
- lsls r1, 1
- strh r1, [r0, 0x20]
- movs r0, 0x12
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r2, 0x2E
- strh r2, [r0, 0x22]
- movs r0, 0x14
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r2, [r0, 0x22]
- movs r0, 0x12
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r3, [r0, 0x2E]
- movs r0, 0x14
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r3, [r0, 0x2E]
- movs r1, 0x80
- lsls r1, 6
- movs r2, 0x80
- lsls r2, 2
- movs r0, 0x1
- b _08144DF0
- .align 2, 0
-_08144C98: .4byte gSprites
-_08144C9C: .4byte gTasks
-_08144CA0:
- ldr r5, _08144D44 @ =gSprites
- ldr r0, _08144D48 @ =gTasks
- lsls r4, r7, 2
- adds r4, r7
- lsls r4, 3
- adds r4, r0
- movs r1, 0x12
- ldrsh r0, [r4, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- adds r1, 0x3E
- ldrb r3, [r1]
- movs r2, 0x5
- negs r2, r2
- adds r0, r2, 0
- ands r0, r3
- strb r0, [r1]
- movs r0, 0x14
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- adds r0, 0x3E
- ldrb r1, [r0]
- ands r2, r1
- strb r2, [r0]
- movs r0, 0x12
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r3, 0
- movs r1, 0x78
- strh r1, [r0, 0x20]
- movs r0, 0x14
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r1, _08144D4C @ =0x0000ffe0
- strh r1, [r0, 0x20]
- movs r0, 0x12
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r2, 0x2E
- strh r2, [r0, 0x22]
- movs r0, 0x14
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r2, [r0, 0x22]
- movs r0, 0x12
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r3, [r0, 0x2E]
- movs r0, 0x14
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r3, [r0, 0x2E]
- movs r1, 0x80
- lsls r1, 6
- movs r2, 0x80
- lsls r2, 2
- movs r0, 0x1
- b _08144DF0
- .align 2, 0
-_08144D44: .4byte gSprites
-_08144D48: .4byte gTasks
-_08144D4C: .4byte 0x0000ffe0
-_08144D50:
- ldr r5, _08144EBC @ =gSprites
- ldr r0, _08144EC0 @ =gTasks
- lsls r4, r7, 2
- adds r4, r7
- lsls r4, 3
- adds r4, r0
- movs r1, 0x12
- ldrsh r0, [r4, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- adds r1, 0x3E
- ldrb r3, [r1]
- movs r2, 0x5
- negs r2, r2
- adds r0, r2, 0
- ands r0, r3
- strb r0, [r1]
- movs r0, 0x14
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- adds r0, 0x3E
- ldrb r1, [r0]
- ands r2, r1
- strb r2, [r0]
- movs r0, 0x12
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r3, 0
- movs r1, 0x58
- strh r1, [r0, 0x20]
- movs r0, 0x14
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r1, 0x98
- strh r1, [r0, 0x20]
- movs r0, 0x12
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r2, 0x2E
- strh r2, [r0, 0x22]
- movs r0, 0x14
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r2, [r0, 0x22]
- movs r0, 0x12
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r3, [r0, 0x2E]
- movs r0, 0x14
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r3, [r0, 0x2E]
- movs r1, 0x80
- lsls r1, 6
- movs r2, 0x80
- lsls r2, 2
- movs r0, 0x2
-_08144DF0:
- movs r3, 0x8
- bl sub_8148EC0
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x8]
-_08144DFC:
- ldr r0, _08144EC4 @ =sub_8144934
- movs r1, 0
- bl CreateTask
- ldr r6, _08144EC0 @ =gTasks
- lsls r1, r7, 2
- adds r1, r7
- lsls r1, 3
- adds r5, r1, r6
- lsls r0, 24
- lsrs r0, 24
- movs r4, 0
- strh r0, [r5, 0xC]
- movs r0, 0xC
- ldrsh r1, [r5, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r6
- mov r1, r8
- strh r1, [r0, 0x8]
- movs r0, 0xC
- ldrsh r1, [r5, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r6
- strh r4, [r0, 0xA]
- movs r0, 0xC
- ldrsh r1, [r5, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r6
- strh r7, [r0, 0xC]
- ldr r0, _08144EC8 @ =sub_8144664
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0xA]
- movs r0, 0xA
- ldrsh r1, [r5, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r6
- strh r4, [r0, 0x8]
- movs r0, 0xA
- ldrsh r1, [r5, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r6
- strh r7, [r0, 0xA]
- movs r0, 0xA
- ldrsh r1, [r5, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r6
- ldrh r1, [r5, 0x12]
- strh r1, [r0, 0xC]
- movs r0, 0xA
- ldrsh r1, [r5, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r6
- ldrh r1, [r5, 0x14]
- strh r1, [r0, 0xE]
- movs r0, 0xA
- ldrsh r1, [r5, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r6
- strh r4, [r0, 0x10]
- mov r1, r8
- cmp r1, 0x2
- bne _08144EB0
- movs r1, 0xA
- ldrsh r0, [r5, r1]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r6
- movs r0, 0x45
- strh r0, [r1, 0x12]
-_08144EB0:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08144EBC: .4byte gSprites
-_08144EC0: .4byte gTasks
-_08144EC4: .4byte sub_8144934
-_08144EC8: .4byte sub_8144664
- thumb_func_end sub_8144A68
-
- thumb_func_start sub_8144ECC
-sub_8144ECC: @ 8144ECC
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 24
- lsrs r5, r1, 24
- ldr r0, _08144F28 @ =gMain
- ldr r1, _08144F2C @ =0x0000043c
- adds r6, r0, r1
- ldrb r0, [r6]
- cmp r0, 0x1
- beq _08144F38
- cmp r0, 0x1
- ble _08144EF0
- cmp r0, 0x2
- beq _08144F5C
- cmp r0, 0x3
- bne _08144EF0
- b _0814508C
-_08144EF0:
- movs r0, 0x80
- lsls r0, 19
- movs r1, 0
- strh r1, [r0]
- ldr r2, _08144F30 @ =REG_BG3HOFS
- movs r0, 0x8
- strh r0, [r2]
- ldr r0, _08144F34 @ =REG_BG3VOFS
- strh r1, [r0]
- subs r0, 0x6
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- subs r0, 0x6
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x3A
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- movs r0, 0x1
- strb r0, [r6]
- b _081450A2
- .align 2, 0
-_08144F28: .4byte gMain
-_08144F2C: .4byte 0x0000043c
-_08144F30: .4byte REG_BG3HOFS
-_08144F34: .4byte REG_BG3VOFS
-_08144F38:
- ldr r1, _08144F54 @ =gUnknown_02039358
- movs r0, 0x22
- strh r0, [r1]
- ldr r1, _08144F58 @ =gUnknown_0203935A
- movs r0, 0
- strh r0, [r1]
- adds r0, r4, 0
- bl sub_8148CB0
- ldrb r0, [r6]
- adds r0, 0x1
- strb r0, [r6]
- b _081450A2
- .align 2, 0
-_08144F54: .4byte gUnknown_02039358
-_08144F58: .4byte gUnknown_0203935A
-_08144F5C:
- ldr r0, _08144FBC @ =gSaveBlock2
- ldrb r0, [r0, 0x8]
- cmp r0, 0
- bne _08144FE0
- ldr r0, _08144FC0 @ =gIntro2BrendanSpriteSheet
- bl LoadCompressedObjectPic
- ldr r0, _08144FC4 @ =gUnknown_08416E34
- bl LoadCompressedObjectPic
- ldr r0, _08144FC8 @ =gIntro2BicycleSpriteSheet
- bl LoadCompressedObjectPic
- ldr r0, _08144FCC @ =gIntro2SpritePalettes
- bl LoadSpritePalettes
- movs r0, 0x78
- movs r1, 0x2E
- bl sub_8149310
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _08144FD0 @ =gTasks
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- adds r4, r0
- strh r2, [r4, 0x12]
- ldr r6, _08144FD4 @ =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r5, r6, 0
- adds r5, 0x1C
- adds r2, r0, r5
- ldr r1, _08144FD8 @ =sub_8145378
- str r1, [r2]
- adds r6, 0x8
- adds r0, r6
- ldr r1, _08144FDC @ =gUnknown_0840CA54
- str r1, [r0]
- movs r0, 0x88
- lsls r0, 1
- movs r1, 0x2E
- bl sub_8149368
- b _08145034
- .align 2, 0
-_08144FBC: .4byte gSaveBlock2
-_08144FC0: .4byte gIntro2BrendanSpriteSheet
-_08144FC4: .4byte gUnknown_08416E34
-_08144FC8: .4byte gIntro2BicycleSpriteSheet
-_08144FCC: .4byte gIntro2SpritePalettes
-_08144FD0: .4byte gTasks
-_08144FD4: .4byte gSprites
-_08144FD8: .4byte sub_8145378
-_08144FDC: .4byte gUnknown_0840CA54
-_08144FE0:
- ldr r0, _0814505C @ =gIntro2MaySpriteSheet
- bl LoadCompressedObjectPic
- ldr r0, _08145060 @ =gUnknown_08416E24
- bl LoadCompressedObjectPic
- ldr r0, _08145064 @ =gIntro2BicycleSpriteSheet
- bl LoadCompressedObjectPic
- ldr r0, _08145068 @ =gIntro2SpritePalettes
- bl LoadSpritePalettes
- movs r0, 0x78
- movs r1, 0x2E
- bl sub_8149368
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _0814506C @ =gTasks
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- adds r4, r0
- strh r2, [r4, 0x12]
- ldr r6, _08145070 @ =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r5, r6, 0
- adds r5, 0x1C
- adds r2, r0, r5
- ldr r1, _08145074 @ =sub_8145378
- str r1, [r2]
- adds r6, 0x8
- adds r0, r6
- ldr r1, _08145078 @ =gUnknown_0840CA54
- str r1, [r0]
- movs r0, 0x88
- lsls r0, 1
- movs r1, 0x2E
- bl sub_8149310
-_08145034:
- lsls r0, 24
- lsrs r2, r0, 24
- strh r2, [r4, 0x14]
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r5, r0, r5
- ldr r1, _0814507C @ =sub_8145420
- str r1, [r5]
- adds r0, r6
- ldr r1, _08145080 @ =gUnknown_0840CA94
- str r1, [r0]
- ldr r1, _08145084 @ =gMain
- ldr r0, _08145088 @ =0x0000043c
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _081450A2
- .align 2, 0
-_0814505C: .4byte gIntro2MaySpriteSheet
-_08145060: .4byte gUnknown_08416E24
-_08145064: .4byte gIntro2BicycleSpriteSheet
-_08145068: .4byte gIntro2SpritePalettes
-_0814506C: .4byte gTasks
-_08145070: .4byte gSprites
-_08145074: .4byte sub_8145378
-_08145078: .4byte gUnknown_0840CA54
-_0814507C: .4byte sub_8145420
-_08145080: .4byte gUnknown_0840CA94
-_08145084: .4byte gMain
-_08145088: .4byte 0x0000043c
-_0814508C:
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8144A68
- adds r0, r4, 0
- bl sub_8148E90
- movs r0, 0
- strb r0, [r6]
- movs r0, 0x1
- b _081450A4
-_081450A2:
- movs r0, 0
-_081450A4:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_8144ECC
-
- thumb_func_start sub_81450AC
-sub_81450AC: @ 81450AC
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08145120 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
- ldrh r1, [r4, 0x8]
- movs r2, 0x8
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _081450D2
- lsls r0, r1, 24
- lsrs r0, 24
- bl DestroyTask
- movs r0, 0
- strh r0, [r4, 0x8]
-_081450D2:
- ldrh r1, [r4, 0xA]
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _081450E8
- lsls r0, r1, 24
- lsrs r0, 24
- bl DestroyTask
- movs r0, 0
- strh r0, [r4, 0xA]
-_081450E8:
- ldrh r1, [r4, 0xC]
- movs r2, 0xC
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _081450FE
- lsls r0, r1, 24
- lsrs r0, 24
- bl DestroyTask
- movs r0, 0
- strh r0, [r4, 0xC]
-_081450FE:
- ldrh r1, [r4, 0xE]
- movs r2, 0xE
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _08145114
- lsls r0, r1, 24
- lsrs r0, 24
- bl DestroyTask
- movs r0, 0
- strh r0, [r4, 0xE]
-_08145114:
- ldr r1, _08145124 @ =gUnknown_0203935C
- movs r0, 0x1
- strh r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08145120: .4byte gTasks
-_08145124: .4byte gUnknown_0203935C
- thumb_func_end sub_81450AC
-
- thumb_func_start sub_8145128
-sub_8145128: @ 8145128
- push {r4-r7,lr}
- adds r3, r0, 0
- adds r4, r2, 0
- lsls r3, 16
- lsrs r3, 16
- lsls r1, 16
- lsrs r7, r1, 16
- lsls r4, 16
- lsrs r5, r4, 16
- ldr r0, _081451EC @ =gCreditsCopyrightEnd_Gfx
- movs r6, 0xC0
- lsls r6, 19
- adds r3, r6
- adds r1, r3, 0
- bl LZ77UnCompVram
- ldr r0, _081451F0 @ =gIntroCopyright_Pal
- adds r1, r5, 0
- movs r2, 0x20
- bl LoadPalette
- lsrs r4, 20
- lsls r4, 28
- lsrs r4, 16
- movs r2, 0
- adds r1, r4, 0x1
- ldr r3, _081451F4 @ =0x000003ff
-_0814515E:
- lsls r0, r2, 1
- adds r0, r7
- adds r0, r6
- strh r1, [r0]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, r3
- bls _0814515E
- movs r2, 0
- adds r0, r4, 0x2
- adds r6, r4, 0
- adds r6, 0x17
- movs r1, 0x2B
- adds r1, r4
- mov r12, r1
- adds r4, 0x42
- ldr r5, _081451F8 @ =0x060001c8
- adds r3, r0, 0
-_08145184:
- lsls r0, r2, 1
- adds r0, r7
- adds r0, r5
- adds r1, r2, r3
- strh r1, [r0]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x14
- bls _08145184
- movs r2, 0
- ldr r5, _081451FC @ =0x06000248
- adds r3, r6, 0
-_0814519E:
- lsls r0, r2, 1
- adds r0, r7
- adds r0, r5
- adds r1, r2, r3
- strh r1, [r0]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x13
- bls _0814519E
- movs r2, 0
- ldr r5, _08145200 @ =0x060002c8
- mov r3, r12
-_081451B8:
- lsls r0, r2, 1
- adds r0, r7
- adds r0, r5
- adds r1, r2, r3
- strh r1, [r0]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x16
- bls _081451B8
- movs r2, 0
- ldr r3, _08145204 @ =0x06000348
-_081451D0:
- lsls r0, r2, 1
- adds r0, r7
- adds r0, r3
- adds r1, r2, r4
- strh r1, [r0]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0xB
- bls _081451D0
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081451EC: .4byte gCreditsCopyrightEnd_Gfx
-_081451F0: .4byte gIntroCopyright_Pal
-_081451F4: .4byte 0x000003ff
-_081451F8: .4byte 0x060001c8
-_081451FC: .4byte 0x06000248
-_08145200: .4byte 0x060002c8
-_08145204: .4byte 0x06000348
- thumb_func_end sub_8145128
-
- thumb_func_start sub_8145208
-sub_8145208: @ 8145208
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- adds r3, r2, 0
- movs r0, 0x3F
- ands r0, r2
- adds r1, r0, 0
- adds r1, 0x50
- cmp r2, 0xFF
- bne _08145220
- movs r0, 0x1
- b _08145246
-_08145220:
- movs r0, 0x80
- ands r0, r2
- cmp r0, 0
- beq _08145230
- movs r2, 0x80
- lsls r2, 4
- adds r0, r2, 0
- orrs r1, r0
-_08145230:
- movs r0, 0x40
- ands r3, r0
- cmp r3, 0
- beq _08145244
- movs r2, 0x80
- lsls r2, 3
- adds r0, r2, 0
- orrs r1, r0
- lsls r0, r1, 16
- lsrs r1, r0, 16
-_08145244:
- adds r0, r1, 0
-_08145246:
- pop {r1}
- bx r1
- thumb_func_end sub_8145208
-
- thumb_func_start sub_814524C
-sub_814524C: @ 814524C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- str r0, [sp]
- ldr r0, [sp, 0x2C]
- lsls r1, 24
- lsrs r1, 24
- mov r10, r1
- lsls r2, 24
- lsrs r2, 24
- str r2, [sp, 0x4]
- lsls r3, 16
- lsrs r3, 16
- str r3, [sp, 0x8]
- lsls r0, 16
- lsrs r0, 20
- lsls r0, 28
- lsrs r0, 16
- mov r9, r0
- movs r5, 0
-_0814527A:
- movs r4, 0
- lsls r7, r5, 1
- ldr r1, [sp, 0x4]
- adds r0, r1, r5
- adds r2, r5, 0x1
- mov r8, r2
- lsls r0, 6
- ldr r1, [sp, 0x8]
- adds r6, r0, r1
-_0814528C:
- adds r0, r7, r5
- adds r0, r4
- ldr r2, [sp]
- adds r0, r2, r0
- ldrb r0, [r0]
- bl sub_8145208
- mov r2, r10
- adds r1, r2, r4
- lsls r1, 1
- adds r1, r6
- movs r2, 0xC0
- lsls r2, 19
- adds r1, r2
- add r0, r9
- strh r0, [r1]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x2
- bls _0814528C
- mov r1, r8
- lsls r0, r1, 24
- lsrs r5, r0, 24
- cmp r5, 0x4
- bls _0814527A
- add sp, 0xC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_814524C
-
- thumb_func_start sub_81452D0
-sub_81452D0: @ 81452D0
- push {r4-r7,lr}
- sub sp, 0x4
- lsls r0, 16
- lsrs r5, r0, 16
- lsls r1, 16
- lsrs r6, r1, 16
- lsrs r1, 20
- lsls r1, 28
- lsrs r1, 16
- movs r2, 0
- ldr r7, _08145360 @ =gUnknown_0840B83C
- movs r4, 0xC0
- lsls r4, 19
- adds r1, 0x1
- ldr r3, _08145364 @ =0x000003ff
-_081452EE:
- lsls r0, r2, 1
- adds r0, r5
- adds r0, r4
- strh r1, [r0]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, r3
- bls _081452EE
- str r6, [sp]
- adds r0, r7, 0
- movs r1, 0x3
- movs r2, 0x7
- adds r3, r5, 0
- bl sub_814524C
- ldr r0, _08145368 @ =gUnknown_0840B84B
- str r6, [sp]
- movs r1, 0x7
- movs r2, 0x7
- adds r3, r5, 0
- bl sub_814524C
- ldr r4, _0814536C @ =gUnknown_0840B85A
- str r6, [sp]
- adds r0, r4, 0
- movs r1, 0xB
- movs r2, 0x7
- adds r3, r5, 0
- bl sub_814524C
- str r6, [sp]
- adds r0, r4, 0
- movs r1, 0x10
- movs r2, 0x7
- adds r3, r5, 0
- bl sub_814524C
- ldr r0, _08145370 @ =gUnknown_0840B869
- str r6, [sp]
- movs r1, 0x14
- movs r2, 0x7
- adds r3, r5, 0
- bl sub_814524C
- ldr r0, _08145374 @ =gUnknown_0840B878
- str r6, [sp]
- movs r1, 0x18
- movs r2, 0x7
- adds r3, r5, 0
- bl sub_814524C
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08145360: .4byte gUnknown_0840B83C
-_08145364: .4byte 0x000003ff
-_08145368: .4byte gUnknown_0840B84B
-_0814536C: .4byte gUnknown_0840B85A
-_08145370: .4byte gUnknown_0840B869
-_08145374: .4byte gUnknown_0840B878
- thumb_func_end sub_81452D0
-
- thumb_func_start sub_8145378
-sub_8145378: @ 8145378
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _08145390 @ =gUnknown_0203935C
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- beq _08145394
- adds r0, r4, 0
- bl DestroySprite
- b _08145418
- .align 2, 0
-_08145390: .4byte gUnknown_0203935C
-_08145394:
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- cmp r0, 0x5
- bhi _08145418
- lsls r0, 2
- ldr r1, _081453A8 @ =_081453AC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_081453A8: .4byte _081453AC
- .align 2, 0
-_081453AC:
- .4byte _081453C4
- .4byte _081453CE
- .4byte _081453D4
- .4byte _081453DE
- .4byte _081453E8
- .4byte _081453FE
-_081453C4:
- adds r0, r4, 0
- movs r1, 0
- bl StartSpriteAnimIfDifferent
- b _08145418
-_081453CE:
- adds r0, r4, 0
- movs r1, 0x1
- b _08145402
-_081453D4:
- adds r0, r4, 0
- movs r1, 0x2
- bl StartSpriteAnimIfDifferent
- b _08145418
-_081453DE:
- adds r0, r4, 0
- movs r1, 0x3
- bl StartSpriteAnimIfDifferent
- b _08145418
-_081453E8:
- adds r0, r4, 0
- movs r1, 0
- bl StartSpriteAnimIfDifferent
- ldrh r1, [r4, 0x20]
- movs r2, 0x20
- ldrsh r0, [r4, r2]
- cmp r0, 0x78
- ble _08145418
- subs r0, r1, 0x1
- b _08145416
-_081453FE:
- adds r0, r4, 0
- movs r1, 0
-_08145402:
- bl StartSpriteAnimIfDifferent
- ldrh r2, [r4, 0x20]
- movs r0, 0x20
- ldrsh r1, [r4, r0]
- movs r0, 0x20
- negs r0, r0
- cmp r1, r0
- ble _08145418
- subs r0, r2, 0x1
-_08145416:
- strh r0, [r4, 0x20]
-_08145418:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8145378
-
- thumb_func_start sub_8145420
-sub_8145420: @ 8145420
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _08145438 @ =gUnknown_0203935C
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- beq _0814543C
- adds r0, r4, 0
- bl DestroySprite
- b _081454D8
- .align 2, 0
-_08145438: .4byte gUnknown_0203935C
-_0814543C:
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _08145464
- cmp r0, 0x1
- bgt _0814544E
- cmp r0, 0
- beq _08145458
- b _081454D8
-_0814544E:
- cmp r0, 0x2
- beq _081454A0
- cmp r0, 0x3
- beq _081454BE
- b _081454D8
-_08145458:
- strh r0, [r4, 0x26]
- adds r0, r4, 0
- movs r1, 0
- bl StartSpriteAnimIfDifferent
- b _081454D8
-_08145464:
- movs r1, 0x20
- ldrsh r0, [r4, r1]
- cmp r0, 0xC8
- ble _08145476
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAnimIfDifferent
- b _0814547E
-_08145476:
- adds r0, r4, 0
- movs r1, 0x2
- bl StartSpriteAnimIfDifferent
-_0814547E:
- ldrh r2, [r4, 0x20]
- movs r0, 0x20
- ldrsh r1, [r4, r0]
- movs r0, 0x20
- negs r0, r0
- cmp r1, r0
- ble _08145490
- subs r0, r2, 0x2
- strh r0, [r4, 0x20]
-_08145490:
- ldr r0, _0814549C @ =gUnknown_0203935A
- ldrh r0, [r0]
- negs r0, r0
- strh r0, [r4, 0x26]
- b _081454D8
- .align 2, 0
-_0814549C: .4byte gUnknown_0203935A
-_081454A0:
- ldrh r0, [r4, 0x3C]
- adds r0, 0x1
- strh r0, [r4, 0x3C]
- adds r0, r4, 0
- movs r1, 0
- bl StartSpriteAnimIfDifferent
- ldrh r1, [r4, 0x3C]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- bne _081454D8
- ldrh r0, [r4, 0x20]
- adds r0, 0x1
- b _081454D6
-_081454BE:
- adds r0, r4, 0
- movs r1, 0
- bl StartSpriteAnimIfDifferent
- ldrh r2, [r4, 0x20]
- movs r0, 0x20
- ldrsh r1, [r4, r0]
- movs r0, 0x20
- negs r0, r0
- cmp r1, r0
- ble _081454D8
- subs r0, r2, 0x1
-_081454D6:
- strh r0, [r4, 0x20]
-_081454D8:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8145420
-
- thumb_func_start sub_81454E0
-sub_81454E0: @ 81454E0
- push {r4,r5,lr}
- sub sp, 0x4
- adds r5, r0, 0
- ldr r0, _081454F8 @ =gUnknown_0203935C
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- beq _081454FC
- adds r0, r5, 0
- bl DestroySprite
- b _081456A6
- .align 2, 0
-_081454F8: .4byte gUnknown_0203935C
-_081454FC:
- ldrh r0, [r5, 0x3C]
- adds r0, 0x1
- strh r0, [r5, 0x3C]
- movs r2, 0x2E
- ldrsh r0, [r5, r2]
- cmp r0, 0xA
- bhi _08145544
- lsls r0, 2
- ldr r1, _08145514 @ =_08145518
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08145514: .4byte _08145518
- .align 2, 0
-_08145518:
- .4byte _08145544
- .4byte _0814559E
- .4byte _08145620
- .4byte _08145660
- .4byte _08145544
- .4byte _08145544
- .4byte _08145544
- .4byte _08145544
- .4byte _08145544
- .4byte _08145544
- .4byte _08145696
-_08145544:
- ldrb r1, [r5, 0x1]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r5, 0x1]
- movs r0, 0x30
- ldrsh r1, [r5, r0]
- movs r0, 0x1F
- ands r1, r0
- lsls r1, 1
- ldrb r2, [r5, 0x3]
- movs r0, 0x3F
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r5, 0x3]
- movs r0, 0x10
- strh r0, [r5, 0x32]
- ldrh r4, [r5, 0x30]
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x80
- lsls r0, 9
- movs r1, 0x10
- bl __divsi3
- adds r1, r0, 0
- str r1, [sp]
- adds r0, r4, 0
- movs r2, 0
- movs r3, 0
- bl SetOamMatrix
- adds r2, r5, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- movs r0, 0x1
- strh r0, [r5, 0x2E]
- b _081456A6
-_0814559E:
- ldrh r1, [r5, 0x32]
- movs r2, 0x32
- ldrsh r0, [r5, r2]
- cmp r0, 0xFF
- bgt _081455D4
- adds r0, r1, 0
- adds r0, 0x8
- strh r0, [r5, 0x32]
- ldrh r4, [r5, 0x30]
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x32
- ldrsh r1, [r5, r0]
- movs r0, 0x80
- lsls r0, 9
- bl __divsi3
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- str r1, [sp]
- adds r0, r4, 0
- movs r2, 0
- movs r3, 0
- bl SetOamMatrix
- b _081455DA
-_081455D4:
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
-_081455DA:
- movs r2, 0x30
- ldrsh r1, [r5, r2]
- cmp r1, 0x2
- beq _081456A6
- cmp r1, 0x2
- bgt _081455EC
- cmp r1, 0x1
- beq _081455F2
- b _081456A6
-_081455EC:
- cmp r1, 0x3
- beq _0814560A
- b _081456A6
-_081455F2:
- ldrh r1, [r5, 0x3C]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- bne _08145602
- ldrh r0, [r5, 0x22]
- adds r0, 0x1
- strh r0, [r5, 0x22]
-_08145602:
- ldrh r0, [r5, 0x20]
- subs r0, 0x2
- strh r0, [r5, 0x20]
- b _081456A6
-_0814560A:
- ldrh r0, [r5, 0x3C]
- ands r1, r0
- cmp r1, 0
- bne _08145618
- ldrh r0, [r5, 0x22]
- adds r0, 0x1
- strh r0, [r5, 0x22]
-_08145618:
- ldrh r0, [r5, 0x20]
- adds r0, 0x2
- strh r0, [r5, 0x20]
- b _081456A6
-_08145620:
- ldrh r1, [r5, 0x34]
- movs r2, 0x34
- ldrsh r0, [r5, r2]
- cmp r0, 0
- beq _08145630
- subs r0, r1, 0x1
- strh r0, [r5, 0x34]
- b _081456A6
-_08145630:
- ldr r1, _0814565C @ =REG_BLDCNT
- movs r2, 0xF4
- lsls r2, 4
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0x10
- strh r0, [r1]
- ldrb r1, [r5, 0x1]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r5, 0x1]
- movs r0, 0x10
- strh r0, [r5, 0x34]
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- b _081456A6
- .align 2, 0
-_0814565C: .4byte REG_BLDCNT
-_08145660:
- ldrh r1, [r5, 0x34]
- movs r2, 0x34
- ldrsh r0, [r5, r2]
- cmp r0, 0
- beq _08145684
- subs r1, 0x1
- strh r1, [r5, 0x34]
- ldr r3, _08145680 @ =REG_BLDALPHA
- movs r0, 0x34
- ldrsh r2, [r5, r0]
- movs r0, 0x10
- subs r0, r2
- lsls r0, 8
- adds r1, r0
- strh r1, [r3]
- b _081456A6
- .align 2, 0
-_08145680: .4byte REG_BLDALPHA
-_08145684:
- adds r2, r5, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- movs r0, 0xA
- strh r0, [r5, 0x2E]
- b _081456A6
-_08145696:
- ldr r0, _081456B0 @ =REG_BLDCNT
- movs r1, 0
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, r5, 0
- bl DestroySprite
-_081456A6:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_081456B0: .4byte REG_BLDCNT
- thumb_func_end sub_81454E0
-
- thumb_func_start sub_81456B4
-sub_81456B4: @ 81456B4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- lsls r0, 16
- lsrs r6, r0, 16
- lsls r1, 16
- lsrs r1, 16
- mov r10, r1
- lsls r2, 16
- lsrs r2, 16
- str r2, [sp, 0x10]
- lsls r3, 16
- lsrs r3, 16
- mov r9, r3
- adds r0, r6, 0
- bl NationalPokedexNumToSpecies
- adds r6, r0, 0
- cmp r6, 0xC9
- beq _081456F8
- movs r0, 0x9A
- lsls r0, 1
- cmp r6, r0
- beq _081456EE
- movs r7, 0
- b _081456FC
-_081456EE:
- ldr r0, _081456F4 @ =gSaveBlock2
- ldr r7, [r0, 0x20]
- b _081456FC
- .align 2, 0
-_081456F4: .4byte gSaveBlock2
-_081456F8:
- ldr r0, _081457E8 @ =gSaveBlock2
- ldr r7, [r0, 0x1C]
-_081456FC:
- lsls r0, r6, 3
- ldr r1, _081457EC @ =gMonFrontPicTable
- adds r0, r1
- ldr r1, _081457F0 @ =gMonFrontPicCoords
- lsls r2, r6, 2
- adds r2, r1
- ldrb r1, [r2]
- ldrb r2, [r2, 0x1]
- movs r3, 0x80
- lsls r3, 18
- ldr r4, _081457F4 @ =gUnknown_0840B5A0
- mov r8, r4
- mov r5, r9
- lsls r4, r5, 2
- add r4, r8
- ldr r4, [r4]
- str r4, [sp]
- str r6, [sp, 0x4]
- str r7, [sp, 0x8]
- movs r4, 0x1
- str r4, [sp, 0xC]
- bl sub_800D378
- ldr r2, _081457F8 @ =0x0000ffff
- adds r0, r6, 0
- movs r1, 0
- bl species_and_otid_get_pal
- lsls r5, 4
- mov r8, r5
- movs r1, 0x80
- lsls r1, 1
- add r1, r8
- lsls r1, 16
- lsrs r1, 16
- movs r2, 0x20
- bl LoadCompressedPalette
- mov r7, r9
- lsls r6, r7, 24
- lsrs r6, 24
- mov r0, r9
- adds r1, r6, 0
- bl sub_8143648
- ldr r0, _081457FC @ =gUnknown_02024E8C
- mov r2, r10
- lsls r1, r2, 16
- asrs r1, 16
- ldr r3, [sp, 0x10]
- lsls r2, r3, 16
- asrs r2, 16
- movs r3, 0
- bl CreateSprite
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r5, _08145800 @ =gSprites
- lsls r2, r4, 4
- adds r2, r4
- lsls r2, 2
- adds r3, r2, r5
- ldrb r1, [r3, 0x5]
- movs r0, 0xF
- ands r0, r1
- mov r7, r8
- orrs r0, r7
- movs r1, 0xD
- negs r1, r1
- ands r0, r1
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r3, 0x5]
- mov r0, r9
- adds r0, 0x1
- strh r0, [r3, 0x30]
- movs r0, 0x3E
- adds r0, r3
- mov r8, r0
- ldrb r0, [r0]
- orrs r0, r1
- mov r1, r8
- strb r0, [r1]
- adds r0, r5, 0
- adds r0, 0x1C
- adds r2, r0
- ldr r0, _08145804 @ =sub_81454E0
- str r0, [r2]
- ldr r0, _08145808 @ =gSpriteTemplate_840CAEC
- movs r2, 0x20
- ldrsh r1, [r3, r2]
- movs r7, 0x22
- ldrsh r2, [r3, r7]
- movs r3, 0x1
- bl CreateSprite
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r4, [r0, 0x2E]
- adds r1, r6, 0
- bl StartSpriteAnimIfDifferent
- adds r0, r4, 0
- add sp, 0x14
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_081457E8: .4byte gSaveBlock2
-_081457EC: .4byte gMonFrontPicTable
-_081457F0: .4byte gMonFrontPicCoords
-_081457F4: .4byte gUnknown_0840B5A0
-_081457F8: .4byte 0x0000ffff
-_081457FC: .4byte gUnknown_02024E8C
-_08145800: .4byte gSprites
-_08145804: .4byte sub_81454E0
-_08145808: .4byte gSpriteTemplate_840CAEC
- thumb_func_end sub_81456B4
-
- thumb_func_start sub_814580C
-sub_814580C: @ 814580C
- push {r4,lr}
- adds r3, r0, 0
- ldr r4, _08145838 @ =gSprites
- movs r1, 0x2E
- ldrsh r0, [r3, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- movs r2, 0x2E
- ldrsh r0, [r1, r2]
- cmp r0, 0xA
- beq _08145830
- ldr r0, _0814583C @ =gUnknown_0203935C
- movs r2, 0
- ldrsh r0, [r0, r2]
- cmp r0, 0
- beq _08145840
-_08145830:
- adds r0, r3, 0
- bl DestroySprite
- b _081458D4
- .align 2, 0
-_08145838: .4byte gSprites
-_0814583C: .4byte gUnknown_0203935C
-_08145840:
- adds r0, r1, 0
- adds r0, 0x3E
- ldrb r0, [r0]
- movs r1, 0x3E
- adds r1, r3
- mov r12, r1
- movs r1, 0x4
- ands r1, r0
- mov r0, r12
- ldrb r2, [r0]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- mov r1, r12
- strb r0, [r1]
- movs r2, 0x2E
- ldrsh r1, [r3, r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r1, [r0, 0x1]
- movs r0, 0xC
- ands r0, r1
- ldrb r2, [r3, 0x1]
- movs r1, 0xD
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0x1]
- movs r0, 0x2E
- ldrsh r2, [r3, r0]
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r4
- ldrb r0, [r0, 0x1]
- lsls r0, 30
- lsrs r0, 30
- movs r2, 0x4
- negs r2, r2
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0x1]
- movs r2, 0x2E
- ldrsh r1, [r3, r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r0, [r0, 0x3]
- movs r1, 0x3E
- ands r1, r0
- ldrb r2, [r3, 0x3]
- movs r0, 0x3F
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3, 0x3]
- movs r0, 0x2E
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrh r0, [r0, 0x20]
- strh r0, [r3, 0x20]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrh r0, [r0, 0x22]
- strh r0, [r3, 0x22]
-_081458D4:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_814580C
-
- thumb_func_start sub_81458DC
-sub_81458DC: @ 81458DC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- ldr r7, _0814597C @ =0x0201c000
- ldr r0, _08145980 @ =0x00004023
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- bl GetStarterPokemon
- lsls r0, 16
- lsrs r0, 16
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- mov r10, r0
- movs r4, 0x1
- movs r5, 0
- ldr r0, _08145984 @ =0x00000181
- mov r8, r0
-_0814590E:
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_8090D90
- lsls r0, 24
- adds r6, r7, 0
- adds r6, 0x90
- cmp r0, 0
- beq _0814592C
- lsls r0, r5, 1
- adds r0, r6, r0
- strh r4, [r0]
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
-_0814592C:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, r8
- bls _0814590E
- adds r4, r5, 0
- ldr r0, _08145984 @ =0x00000181
- lsls r1, r4, 16
- mov r9, r1
- movs r2, 0x8E
- adds r2, r7
- mov r8, r2
- adds r1, r7, 0
- adds r1, 0x86
- str r1, [sp]
- cmp r4, r0
- bhi _08145964
- adds r1, r6, 0
- movs r3, 0
- adds r2, r0, 0
-_08145954:
- lsls r0, r4, 1
- adds r0, r1, r0
- strh r3, [r0]
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, r2
- bls _08145954
-_08145964:
- movs r2, 0xE5
- lsls r2, 2
- adds r0, r7, r2
- strh r5, [r0]
- mov r1, r9
- lsrs r0, r1, 16
- cmp r0, 0x43
- bhi _08145988
- mov r2, r8
- strh r5, [r2]
- b _0814598E
- .align 2, 0
-_0814597C: .4byte 0x0201c000
-_08145980: .4byte 0x00004023
-_08145984: .4byte 0x00000181
-_08145988:
- movs r0, 0x44
- mov r1, r8
- strh r0, [r1]
-_0814598E:
- movs r5, 0
- movs r2, 0xE5
- lsls r2, 2
- adds r4, r7, r2
- mov r9, r5
- b _0814599E
-_0814599A:
- cmp r5, 0x43
- bhi _081459EE
-_0814599E:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- ldrh r1, [r4]
- bl __umodsi3
- lsls r0, 16
- lsrs r2, r0, 16
- lsls r1, r5, 1
- adds r1, r7, r1
- lsls r0, r2, 1
- adds r3, r6, r0
- ldrh r0, [r3]
- strh r0, [r1]
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- mov r0, r9
- strh r0, [r3]
- ldrh r0, [r4]
- subs r0, 0x1
- strh r0, [r4]
- lsls r0, 16
- lsrs r0, 16
- cmp r2, r0
- beq _081459E8
- ldrh r0, [r4]
- lsls r0, 1
- adds r0, r6, r0
- ldrh r0, [r0]
- strh r0, [r3]
- ldrh r0, [r4]
- lsls r0, 1
- adds r0, r6, r0
- mov r1, r9
- strh r1, [r0]
-_081459E8:
- ldrh r0, [r4]
- cmp r0, 0
- bne _0814599A
-_081459EE:
- mov r2, r8
- ldrh r0, [r2]
- cmp r0, 0x43
- bhi _08145A26
- adds r5, r0, 0
- movs r2, 0
- cmp r5, 0x43
- bhi _08145A5C
- mov r3, r8
-_08145A00:
- lsls r1, r5, 1
- adds r1, r7, r1
- lsls r0, r2, 1
- adds r0, r7, r0
- ldrh r0, [r0]
- strh r0, [r1]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- ldrh r0, [r3]
- cmp r2, r0
- bne _08145A1A
- movs r2, 0
-_08145A1A:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x43
- bls _08145A00
- b _08145A5C
-_08145A26:
- movs r4, 0
- ldrh r0, [r7]
- cmp r0, r10
- beq _08145A42
-_08145A2E:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- lsls r0, r4, 1
- adds r0, r7, r0
- ldrh r0, [r0]
- cmp r0, r10
- beq _08145A42
- cmp r4, 0x43
- bls _08145A2E
-_08145A42:
- mov r1, r8
- ldrh r0, [r1]
- subs r0, 0x1
- cmp r4, r0
- bge _08145A5C
- lsls r0, r4, 1
- adds r0, r7, r0
- ldr r2, [sp]
- ldrh r1, [r2]
- strh r1, [r0]
- mov r0, r10
- strh r0, [r2]
- b _08145A62
-_08145A5C:
- mov r2, r10
- ldr r1, [sp]
- strh r2, [r1]
-_08145A62:
- movs r0, 0x44
- mov r1, r8
- strh r0, [r1]
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_81458DC
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/roulette.s b/asm/roulette.s
index 01ff3ac8f..0704caf7f 100644
--- a/asm/roulette.s
+++ b/asm/roulette.s
@@ -2555,7 +2555,7 @@ sub_811659C: @ 811659C
cmp r0, 0
beq _08116624
movs r0, 0x1D
- bl sub_8053108
+ bl GetGameStat
ldrh r1, [r4, 0x1E]
adds r1, 0x1
strh r1, [r4, 0x1E]
@@ -2566,7 +2566,7 @@ sub_811659C: @ 811659C
movs r0, 0x1E
ldrsh r1, [r4, r0]
movs r0, 0x1D
- bl sav12_xor_set
+ bl SetGameStat
_081165E4:
ldr r1, _081165F8 @ =sub_811677C
ldr r2, _081165FC @ =0x0000ffff
diff --git a/asm/save_failed_screen.s b/asm/save_failed_screen.s
deleted file mode 100644
index a114bbea3..000000000
--- a/asm/save_failed_screen.s
+++ /dev/null
@@ -1,779 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start fullscreen_save_activate
-fullscreen_save_activate: @ 8146E10
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _08146E30 @ =sub_8146E50
- bl SetMainCallback2
- ldr r0, _08146E34 @ =gUnknown_0203933C
- strh r4, [r0]
- ldr r1, _08146E38 @ =gUnknown_0203933E
- movs r0, 0
- strh r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08146E30: .4byte sub_8146E50
-_08146E34: .4byte gUnknown_0203933C
-_08146E38: .4byte gUnknown_0203933E
- thumb_func_end fullscreen_save_activate
-
- thumb_func_start sub_8146E3C
-sub_8146E3C: @ 8146E3C
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- pop {r0}
- bx r0
- thumb_func_end sub_8146E3C
-
- thumb_func_start sub_8146E50
-sub_8146E50: @ 8146E50
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0xC
- ldr r0, _08146FB0 @ =gMain
- ldr r1, _08146FB4 @ =0x0000043c
- adds r7, r0, r1
- ldrb r0, [r7]
- cmp r0, 0
- beq _08146E6C
- cmp r0, 0x1
- bne _08146E6C
- b _0814701C
-_08146E6C:
- movs r0, 0
- bl SetVBlankCallback
- movs r0, 0x80
- lsls r0, 19
- mov r9, r0
- movs r1, 0
- strh r1, [r0]
- ldr r6, _08146FB8 @ =REG_BG3CNT
- strh r1, [r6]
- adds r0, 0xC
- mov r8, r0
- strh r1, [r0]
- subs r0, 0x2
- strh r1, [r0]
- ldr r5, _08146FBC @ =REG_BG0CNT
- strh r1, [r5]
- adds r0, 0x12
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- subs r0, 0x6
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- subs r0, 0x6
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- subs r0, 0x6
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- add r0, sp, 0x4
- strh r1, [r0]
- ldr r2, _08146FC0 @ =0x040000d4
- str r0, [r2]
- movs r1, 0xC0
- lsls r1, 19
- str r1, [r2, 0x4]
- ldr r0, _08146FC4 @ =0x8100c000
- str r0, [r2, 0x8]
- ldr r0, [r2, 0x8]
- movs r4, 0
- str r4, [sp, 0x8]
- add r0, sp, 0x8
- str r0, [r2]
- movs r0, 0xE0
- lsls r0, 19
- str r0, [r2, 0x4]
- ldr r0, _08146FC8 @ =0x85000100
- str r0, [r2, 0x8]
- ldr r0, [r2, 0x8]
- add r0, sp, 0x4
- strh r4, [r0]
- str r0, [r2]
- movs r0, 0xA0
- lsls r0, 19
- str r0, [r2, 0x4]
- ldr r0, _08146FCC @ =0x81000200
- str r0, [r2, 0x8]
- ldr r0, [r2, 0x8]
- ldr r0, _08146FD0 @ =gUnknown_083F66F0
- bl LZ77UnCompVram
- ldr r0, _08146FD4 @ =gBirchBagTilemap
- ldr r1, _08146FD8 @ =0x06003000
- bl LZ77UnCompVram
- ldr r0, _08146FDC @ =gBirchGrassTilemap
- ldr r1, _08146FE0 @ =0x06003800
- bl LZ77UnCompVram
- ldr r0, _08146FE4 @ =gUnknown_08411980
- ldr r1, _08146FE8 @ =0x06010020
- bl LZ77UnCompVram
- bl ResetSpriteData
- bl ResetTasks
- bl ResetPaletteFade
- ldr r0, _08146FEC @ =gUnknown_083F62EC
- movs r1, 0
- movs r2, 0x40
- bl LoadPalette
- ldr r0, _08146FF0 @ =gUnknown_08411960
- movs r1, 0x80
- lsls r1, 1
- movs r2, 0x20
- bl LoadPalette
- ldr r0, _08146FF4 @ =gWindowConfig_81E6C3C
- bl SetUpWindowConfig
- ldr r0, _08146FF8 @ =gWindowConfig_81E6CE4
- bl InitMenuWindow
- .if REVISION >= 1
- movs r0, 0xD
- movs r1, 0x6
- movs r2, 0x10
- movs r3, 0x9
- .else
- movs r0, 0xD
- movs r1, 0x8
- movs r2, 0x10
- movs r3, 0xB
- .endif
- bl MenuDrawTextWindow
- .if REVISION >= 1
- movs r0, 0x1
- movs r1, 0xA
- movs r2, 0x1C
- movs r3, 0x13
- .else
- movs r0, 0x1
- movs r1, 0xC
- movs r2, 0x1C
- movs r3, 0x13
- .endif
- bl MenuDrawTextWindow
- ldr r0, _08146FFC @ =gSystemText_SaveFailedBackupCheck
- .if REVISION >= 1
- movs r1, 0x2
- movs r2, 0xB
- .else
- movs r1, 0x2
- movs r2, 0xD
- .endif
- bl MenuPrint
- movs r0, 0x1
- negs r0, r0
- str r4, [sp]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r3, _08147000 @ =0x04000208
- ldrh r2, [r3]
- strh r4, [r3]
- ldr r4, _08147004 @ =0x04000200
- ldrh r0, [r4]
- movs r1, 0x1
- orrs r0, r1
- strh r0, [r4]
- strh r2, [r3]
- ldr r2, _08147008 @ =REG_DISPSTAT
- ldrh r0, [r2]
- movs r1, 0x8
- orrs r0, r1
- strh r0, [r2]
- ldr r0, _0814700C @ =sub_8146E3C
- bl SetVBlankCallback
- ldr r1, _08147010 @ =0x00000703
- adds r0, r1, 0
- strh r0, [r6]
- ldr r1, _08147014 @ =0x00000602
- adds r0, r1, 0
- mov r1, r8
- strh r0, [r1]
- ldr r1, _08147018 @ =0x00001f08
- adds r0, r1, 0
- strh r0, [r5]
- movs r1, 0xEA
- lsls r1, 5
- adds r0, r1, 0
- mov r1, r9
- strh r0, [r1]
- ldrb r0, [r7]
- adds r0, 0x1
- strb r0, [r7]
- b _08147032
- .align 2, 0
-_08146FB0: .4byte gMain
-_08146FB4: .4byte 0x0000043c
-_08146FB8: .4byte REG_BG3CNT
-_08146FBC: .4byte REG_BG0CNT
-_08146FC0: .4byte 0x040000d4
-_08146FC4: .4byte 0x8100c000
-_08146FC8: .4byte 0x85000100
-_08146FCC: .4byte 0x81000200
-_08146FD0: .4byte gUnknown_083F66F0
-_08146FD4: .4byte gBirchBagTilemap
-_08146FD8: .4byte 0x06003000
-_08146FDC: .4byte gBirchGrassTilemap
-_08146FE0: .4byte 0x06003800
-_08146FE4: .4byte gUnknown_08411980
-_08146FE8: .4byte 0x06010020
-_08146FEC: .4byte gUnknown_083F62EC
-_08146FF0: .4byte gUnknown_08411960
-_08146FF4: .4byte gWindowConfig_81E6C3C
-_08146FF8: .4byte gWindowConfig_81E6CE4
-_08146FFC: .4byte gSystemText_SaveFailedBackupCheck
-_08147000: .4byte 0x04000208
-_08147004: .4byte 0x04000200
-_08147008: .4byte REG_DISPSTAT
-_0814700C: .4byte sub_8146E3C
-_08147010: .4byte 0x00000703
-_08147014: .4byte 0x00000602
-_08147018: .4byte 0x00001f08
-_0814701C:
- bl UpdatePaletteFade
- lsls r0, 24
- cmp r0, 0
- bne _08147032
- ldr r0, _08147040 @ =sub_8147048
- bl SetMainCallback2
- ldr r0, _08147044 @ =sub_8147218
- bl SetVBlankCallback
-_08147032:
- add sp, 0xC
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08147040: .4byte sub_8147048
-_08147044: .4byte sub_8147218
- thumb_func_end sub_8146E50
-
- thumb_func_start sub_8147048
-sub_8147048: @ 8147048
- push {r4,r5,lr}
- movs r4, 0
- ldr r0, _081470C8 @ =gUnknown_0203933E
- movs r1, 0x1
- strh r1, [r0]
- ldr r1, _081470CC @ =gUnknown_03005EA8
- ldr r0, [r1]
- cmp r0, 0
- beq _081470A6
- adds r5, r1, 0
-_0814705C:
- ldr r0, [r5]
- bl sub_814737C
- lsls r0, 24
- cmp r0, 0
- bne _0814710C
- .if REVISION >= 1
- movs r0, 0x1
- movs r1, 0xA
- movs r2, 0x1C
- movs r3, 0x13
- .else
- movs r0, 0x1
- movs r1, 0xC
- movs r2, 0x1C
- movs r3, 0x13
- .endif
- bl MenuDrawTextWindow
- ldr r0, _081470D0 @ =gSystemText_CheckCompleteSaveAttempt
- .if REVISION >= 1
- movs r1, 0x2
- movs r2, 0xB
- .else
- movs r1, 0x2
- movs r2, 0xD
- .endif
- bl MenuPrint
- ldr r0, _081470D4 @ =gUnknown_0203933C
- ldrb r0, [r0]
- bl sub_8125C3C
- ldr r0, [r5]
- cmp r0, 0
- beq _08147096
- ldr r0, _081470D8 @ =gSystemText_SaveFailedBackupCheck
- .if REVISION >= 1
- movs r1, 0x2
- movs r2, 0xB
- .else
- movs r1, 0x2
- movs r2, 0xD
- .endif
- bl MenuPrint
-_08147096:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, [r5]
- cmp r0, 0
- beq _081470A6
- cmp r4, 0x2
- bls _0814705C
-_081470A6:
- cmp r4, 0x3
- bne _081470E4
- .if REVISION >= 1
- movs r0, 0x1
- movs r1, 0xA
- movs r2, 0x1C
- movs r3, 0x13
- .else
- movs r0, 0x1
- movs r1, 0xC
- movs r2, 0x1C
- movs r3, 0x13
- .endif
- bl MenuDrawTextWindow
- ldr r0, _081470DC @ =gSystemText_BackupDamagedGameContinue
- .if REVISION >= 1
- movs r1, 0x2
- movs r2, 0xB
- .else
- movs r1, 0x2
- movs r2, 0xD
- .endif
- bl MenuPrint
- ldr r0, _081470E0 @ =sub_81471A4
- bl SetMainCallback2
- b _0814713E
- .align 2, 0
-_081470C8: .4byte gUnknown_0203933E
-_081470CC: .4byte gUnknown_03005EA8
-_081470D0: .4byte gSystemText_CheckCompleteSaveAttempt
-_081470D4: .4byte gUnknown_0203933C
-_081470D8: .4byte gSystemText_SaveFailedBackupCheck
-_081470DC: .4byte gSystemText_BackupDamagedGameContinue
-_081470E0: .4byte sub_81471A4
-_081470E4:
- .if REVISION >= 1
- movs r0, 0x1
- movs r1, 0xA
- movs r2, 0x1C
- movs r3, 0x13
- .else
- movs r0, 0x1
- movs r1, 0xC
- movs r2, 0x1C
- movs r3, 0x13
- .endif
- bl MenuDrawTextWindow
- ldr r0, _08147104 @ =gUnknown_03005EBC
- ldr r0, [r0]
- cmp r0, 0
- bne _08147134
- ldr r0, _08147108 @ =gSystemText_SaveCompletedGameEnd
- .if REVISION >= 1
- movs r1, 0x2
- movs r2, 0xB
- .else
- movs r1, 0x2
- movs r2, 0xD
- .endif
- bl MenuPrint
- b _0814713E
- .align 2, 0
-_08147104: .4byte gUnknown_03005EBC
-_08147108: .4byte gSystemText_SaveCompletedGameEnd
-_0814710C:
- .if REVISION >= 1
- movs r0, 0x1
- movs r1, 0xA
- movs r2, 0x1C
- movs r3, 0x13
- .else
- movs r0, 0x1
- movs r1, 0xC
- movs r2, 0x1C
- movs r3, 0x13
- .endif
- bl MenuDrawTextWindow
- ldr r0, _0814712C @ =gSystemText_BackupDamagedGameContinue
- .if REVISION >= 1
- movs r1, 0x2
- movs r2, 0xB
- .else
- movs r1, 0x2
- movs r2, 0xD
- .endif
- bl MenuPrint
- ldr r0, _08147130 @ =sub_8147154
- bl SetMainCallback2
- b _08147144
- .align 2, 0
-_0814712C: .4byte gSystemText_BackupDamagedGameContinue
-_08147130: .4byte sub_8147154
-_08147134:
- ldr r0, _0814714C @ =gSystemText_SaveCompletedPressA
- .if REVISION >= 1
- movs r1, 0x2
- movs r2, 0xB
- .else
- movs r1, 0x2
- movs r2, 0xD
- .endif
- bl MenuPrint
-_0814713E:
- ldr r0, _08147150 @ =sub_81471A4
- bl SetMainCallback2
-_08147144:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0814714C: .4byte gSystemText_SaveCompletedPressA
-_08147150: .4byte sub_81471A4
- thumb_func_end sub_8147048
-
- thumb_func_start sub_8147154
-sub_8147154: @ 8147154
- push {lr}
- ldr r1, _08147190 @ =gUnknown_0203933E
- movs r0, 0
- strh r0, [r1]
- ldr r0, _08147194 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0814718A
- .if REVISION >= 1
- movs r0, 0x1
- movs r1, 0xA
- movs r2, 0x1C
- movs r3, 0x13
- .else
- movs r0, 0x1
- movs r1, 0xC
- movs r2, 0x1C
- movs r3, 0x13
- .endif
- bl MenuDrawTextWindow
- ldr r0, _08147198 @ =gSystemText_GameplayEnded
- .if REVISION >= 1
- movs r1, 0x2
- movs r2, 0xB
- .else
- movs r1, 0x2
- movs r2, 0xD
- .endif
- bl MenuPrint
- ldr r0, _0814719C @ =sub_8146E3C
- bl SetVBlankCallback
- ldr r0, _081471A0 @ =sub_81471A4
- bl SetMainCallback2
-_0814718A:
- pop {r0}
- bx r0
- .align 2, 0
-_08147190: .4byte gUnknown_0203933E
-_08147194: .4byte gMain
-_08147198: .4byte gSystemText_GameplayEnded
-_0814719C: .4byte sub_8146E3C
-_081471A0: .4byte sub_81471A4
- thumb_func_end sub_8147154
-
- thumb_func_start sub_81471A4
-sub_81471A4: @ 81471A4
- push {lr}
- sub sp, 0x4
- ldr r0, _081471DC @ =gUnknown_0203933E
- movs r2, 0
- strh r2, [r0]
- ldr r0, _081471E0 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _081471D4
- movs r0, 0x1
- negs r0, r0
- str r2, [sp]
- movs r1, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, _081471E4 @ =sub_8146E3C
- bl SetVBlankCallback
- ldr r0, _081471E8 @ =sub_81471EC
- bl SetMainCallback2
-_081471D4:
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_081471DC: .4byte gUnknown_0203933E
-_081471E0: .4byte gMain
-_081471E4: .4byte sub_8146E3C
-_081471E8: .4byte sub_81471EC
- thumb_func_end sub_81471A4
-
- thumb_func_start sub_81471EC
-sub_81471EC: @ 81471EC
- push {r4,r5,lr}
- bl UpdatePaletteFade
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _08147212
- ldr r5, _08147208 @ =gUnknown_03005EBC
- ldr r0, [r5]
- cmp r0, 0
- bne _0814720C
- bl DoSoftReset
- b _08147212
- .align 2, 0
-_08147208: .4byte gUnknown_03005EBC
-_0814720C:
- bl SetMainCallback2
- str r4, [r5]
-_08147212:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_81471EC
-
- thumb_func_start sub_8147218
-sub_8147218: @ 8147218
- push {r4,r5,lr}
- ldr r0, _08147290 @ =gMain
- mov r12, r0
- ldr r0, [r0, 0x24]
- lsrs r4, r0, 3
- movs r0, 0x7
- ands r4, r0
- ldr r0, _08147294 @ =gUnknown_08411940
- ldr r1, [r0, 0x4]
- ldr r0, [r0]
- mov r2, r12
- str r0, [r2, 0x3C]
- str r1, [r2, 0x40]
- ldrh r1, [r2, 0x3E]
- ldr r0, _08147298 @ =0xfffffe00
- ands r0, r1
- movs r1, 0x70
- orrs r0, r1
- strh r0, [r2, 0x3E]
- mov r1, r12
- adds r1, 0x3C
- .if REVISION >= 1
- movs r0, 0x38
- .else
- movs r0, 0x48
- .endif
- strb r0, [r1]
- ldr r0, _0814729C @ =gUnknown_0203933E
- ldrh r0, [r0]
- cmp r0, 0
- beq _081472A8
- ldr r3, _081472A0 @ =gUnknown_08411948
- lsls r2, r4, 1
- adds r2, r4
- adds r0, r2, r3
- mov r4, r12
- adds r4, 0x40
- ldrb r5, [r0]
- ldrh r1, [r4]
- ldr r0, _081472A4 @ =0xfffffc00
- ands r0, r1
- orrs r0, r5
- strh r0, [r4]
- adds r0, r3, 0x2
- adds r0, r2, r0
- ldrb r1, [r0]
- lsls r1, 4
- adds r3, 0x1
- adds r2, r3
- ldrb r0, [r2]
- lsls r0, 3
- orrs r1, r0
- mov r3, r12
- adds r3, 0x3F
- movs r0, 0x1F
- ands r1, r0
- lsls r1, 1
- ldrb r2, [r3]
- movs r0, 0x3F
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- b _081472B8
- .align 2, 0
-_08147290: .4byte gMain
-_08147294: .4byte gUnknown_08411940
-_08147298: .4byte 0xfffffe00
-_0814729C: .4byte gUnknown_0203933E
-_081472A0: .4byte gUnknown_08411948
-_081472A4: .4byte 0xfffffc00
-_081472A8:
- mov r2, r12
- adds r2, 0x40
- ldrh r1, [r2]
- ldr r0, _081472D8 @ =0xfffffc00
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strh r0, [r2]
-_081472B8:
- ldr r0, _081472DC @ =gMain + 0x3C
- movs r1, 0xE0
- lsls r1, 19
- movs r2, 0x1
- bl CpuFastSet
- ldr r1, _081472E0 @ =gUnknown_0203933E
- ldrh r0, [r1, 0x2]
- cmp r0, 0
- beq _081472D0
- subs r0, 0x1
- strh r0, [r1, 0x2]
-_081472D0:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_081472D8: .4byte 0xfffffc00
-_081472DC: .4byte gMain + 0x3C
-_081472E0: .4byte gUnknown_0203933E
- thumb_func_end sub_8147218
-
- thumb_func_start sub_81472E4
-sub_81472E4: @ 81472E4
- push {r4,lr}
- lsls r0, 16
- lsrs r0, 16
- ldr r4, _08147308 @ =0x02000000
- movs r3, 0x80
- lsls r3, 5
- movs r1, 0
- adds r2, r4, 0
- bl ReadFlash
- movs r1, 0
- ldr r2, _0814730C @ =0x000003ff
-_081472FC:
- ldr r0, [r4]
- cmp r0, 0
- beq _08147310
- movs r0, 0x1
- b _0814731E
- .align 2, 0
-_08147308: .4byte 0x02000000
-_0814730C: .4byte 0x000003ff
-_08147310:
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- adds r4, 0x4
- cmp r1, r2
- bls _081472FC
- movs r0, 0
-_0814731E:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_81472E4
-
- thumb_func_start sub_8147324
-sub_8147324: @ 8147324
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 16
- lsrs r6, r0, 16
- movs r0, 0
- ldr r1, _08147374 @ =0x00000fff
- mov r8, r1
- ldr r7, _08147378 @ =ProgramFlashByte
-_08147336:
- movs r4, 0
- adds r5, r0, 0x1
-_0814733A:
- ldr r3, [r7]
- adds r0, r6, 0
- adds r1, r4, 0
- movs r2, 0
- bl _call_via_r3
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, r8
- bls _0814733A
- adds r0, r6, 0
- bl sub_81472E4
- lsls r0, 24
- lsrs r1, r0, 24
- lsls r0, r5, 16
- lsrs r0, 16
- cmp r1, 0
- beq _08147366
- cmp r0, 0x81
- bls _08147336
-_08147366:
- adds r0, r1, 0
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08147374: .4byte 0x00000fff
-_08147378: .4byte ProgramFlashByte
- thumb_func_end sub_8147324
-
- thumb_func_start sub_814737C
-sub_814737C: @ 814737C
- push {r4-r6,lr}
- adds r5, r0, 0
- movs r6, 0
-_08147382:
- movs r4, 0x1
- lsls r4, r6
- adds r0, r5, 0
- ands r0, r4
- cmp r0, 0
- beq _0814739C
- adds r0, r6, 0
- bl sub_8147324
- lsls r0, 24
- cmp r0, 0
- bne _0814739C
- bics r5, r4
-_0814739C:
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r6, 0x1F
- bls _08147382
- cmp r5, 0
- beq _081473AE
- movs r0, 0x1
- b _081473B0
-_081473AE:
- movs r0, 0
-_081473B0:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_814737C
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/script_menu.s b/asm/script_menu.s
deleted file mode 100644
index bd6180940..000000000
--- a/asm/script_menu.s
+++ /dev/null
@@ -1,1237 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_80B5054
-sub_80B5054: @ 80B5054
- push {r4-r7,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r1, 24
- lsrs r6, r1, 24
- lsls r2, 24
- lsrs r4, r2, 24
- lsls r3, 24
- lsrs r5, r3, 24
- ldr r0, _080B5098 @ =sub_80B52B4
- bl FuncIsActiveTask
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080B50A4
- ldr r1, _080B509C @ =gScriptResult
- movs r0, 0xFF
- strh r0, [r1]
- ldr r1, _080B50A0 @ =gMultichoiceLists
- lsls r0, r4, 3
- adds r0, r1
- ldrb r2, [r0, 0x4]
- ldr r3, [r0]
- str r5, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- adds r0, r7, 0
- adds r1, r6, 0
- bl sub_80B5138
- movs r0, 0x1
- b _080B50A6
- .align 2, 0
-_080B5098: .4byte sub_80B52B4
-_080B509C: .4byte gScriptResult
-_080B50A0: .4byte gMultichoiceLists
-_080B50A4:
- movs r0, 0
-_080B50A6:
- add sp, 0x8
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80B5054
-
- thumb_func_start sub_80B50B0
-sub_80B50B0: @ 80B50B0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- ldr r4, [sp, 0x20]
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r1, 24
- lsrs r7, r1, 24
- lsls r2, 24
- lsrs r5, r2, 24
- lsls r3, 24
- lsrs r6, r3, 24
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _080B5100 @ =sub_80B52B4
- bl FuncIsActiveTask
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080B510C
- ldr r1, _080B5104 @ =gScriptResult
- movs r0, 0xFF
- strh r0, [r1]
- ldr r1, _080B5108 @ =gMultichoiceLists
- lsls r0, r5, 3
- adds r0, r1
- ldrb r2, [r0, 0x4]
- ldr r3, [r0]
- str r6, [sp]
- str r4, [sp, 0x4]
- mov r0, r8
- adds r1, r7, 0
- bl sub_80B5138
- movs r0, 0x1
- b _080B510E
- .align 2, 0
-_080B5100: .4byte sub_80B52B4
-_080B5104: .4byte gScriptResult
-_080B5108: .4byte gMultichoiceLists
-_080B510C:
- movs r0, 0
-_080B510E:
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80B50B0
-
- thumb_func_start GetStringWidthInTilesForScriptMenu
-GetStringWidthInTilesForScriptMenu: @ 80B511C
- push {lr}
- adds r1, r0, 0
- ldr r0, _080B5134 @ =gWindowConfig_81E6CE4
- bl GetStringWidthGivenWindowConfig
- lsls r0, 24
- lsrs r0, 24
- adds r1, r0, 0x7
- lsrs r0, r1, 3
- pop {r1}
- bx r1
- .align 2, 0
-_080B5134: .4byte gWindowConfig_81E6CE4
- thumb_func_end GetStringWidthInTilesForScriptMenu
-
- thumb_func_start sub_80B5138
-sub_80B5138: @ 80B5138
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- mov r10, r3
- ldr r3, [sp, 0x34]
- ldr r4, [sp, 0x38]
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- lsls r1, 24
- lsrs r1, 24
- str r1, [sp, 0x8]
- lsls r2, 24
- lsrs r2, 24
- mov r8, r2
- lsls r3, 24
- lsrs r3, 24
- str r3, [sp, 0xC]
- lsls r4, 24
- lsrs r4, 24
- str r4, [sp, 0x10]
- mov r1, r10
- ldr r0, [r1]
- bl GetStringWidthInTilesForScriptMenu
- lsls r0, 16
- lsrs r5, r0, 16
- movs r4, 0x1
- cmp r4, r8
- bcs _080B5198
-_080B517A:
- lsls r0, r4, 3
- add r0, r10
- ldr r0, [r0]
- bl GetStringWidthInTilesForScriptMenu
- lsls r0, 16
- lsrs r0, 16
- cmp r5, r0
- bcs _080B518E
- adds r5, r0, 0
-_080B518E:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, r8
- bcc _080B517A
-_080B5198:
- lsls r0, r5, 24
- lsrs r7, r0, 24
- mov r1, r9
- adds r0, r7, r1
- adds r0, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0x1D
- bls _080B51B8
- mov r0, r9
- adds r0, 0x1D
- subs r0, r7
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- movs r7, 0x1D
-_080B51B8:
- mov r1, r8
- lsls r0, r1, 1
- adds r0, 0x1
- ldr r1, [sp, 0x8]
- lsls r4, r1, 24
- asrs r4, 24
- adds r4, r0
- lsls r4, 24
- lsrs r4, 24
- mov r0, r9
- adds r2, r7, 0
- adds r3, r4, 0
- bl MenuDrawTextWindow
- mov r6, r9
- adds r6, 0x1
- lsls r6, 24
- lsrs r6, 24
- ldr r5, [sp, 0x8]
- adds r5, 0x1
- lsls r5, 24
- lsrs r5, 24
- adds r0, r6, 0
- adds r1, r5, 0
- mov r2, r8
- mov r3, r10
- bl PrintMenuItems
- ldr r0, [sp, 0x10]
- str r0, [sp]
- mov r1, r9
- subs r0, r7, r1
- subs r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x4]
- movs r0, 0
- adds r1, r6, 0
- adds r2, r5, 0
- mov r3, r8
- bl InitMenu
- ldr r0, [sp, 0xC]
- str r0, [sp]
- mov r1, r8
- str r1, [sp, 0x4]
- mov r0, r9
- ldr r1, [sp, 0x8]
- adds r2, r7, 0
- adds r3, r4, 0
- bl sub_80B5230
- add sp, 0x14
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80B5138
-
- thumb_func_start sub_80B5230
-sub_80B5230: @ 80B5230
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- adds r6, r2, 0
- ldr r0, [sp, 0x1C]
- mov r8, r0
- ldr r0, [sp, 0x20]
- mov r9, r0
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- lsls r6, 24
- lsrs r6, 24
- lsls r3, 24
- lsrs r3, 24
- mov r0, r8
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- mov r0, r9
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- ldr r0, _080B5298 @ =sub_80B52B4
- movs r1, 0x50
- str r3, [sp]
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080B529C @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r4, [r1, 0x8]
- strh r5, [r1, 0xA]
- strh r6, [r1, 0xC]
- ldr r3, [sp]
- strh r3, [r1, 0xE]
- mov r0, r8
- strh r0, [r1, 0x10]
- mov r0, r9
- cmp r0, 0x3
- bls _080B52A0
- movs r0, 0x1
- b _080B52A2
- .align 2, 0
-_080B5298: .4byte sub_80B52B4
-_080B529C: .4byte gTasks
-_080B52A0:
- movs r0, 0
-_080B52A2:
- strh r0, [r1, 0x12]
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80B5230
-
- thumb_func_start sub_80B52B4
-sub_80B52B4: @ 80B52B4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080B52E0 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080B534E
- ldr r2, _080B52E4 @ =gTasks
- lsls r1, r4, 2
- adds r0, r1, r4
- lsls r0, 3
- adds r0, r2
- movs r2, 0x12
- ldrsh r0, [r0, r2]
- adds r5, r1, 0
- cmp r0, 0
- bne _080B52E8
- bl ProcessMenuInputNoWrap
- b _080B52EC
- .align 2, 0
-_080B52E0: .4byte gPaletteFade
-_080B52E4: .4byte gTasks
-_080B52E8:
- bl ProcessMenuInput
-_080B52EC:
- lsls r0, 24
- lsrs r0, 24
- lsls r0, 24
- asrs r1, r0, 24
- movs r0, 0x2
- negs r0, r0
- cmp r1, r0
- beq _080B534E
- adds r0, 0x1
- cmp r1, r0
- bne _080B5328
- ldr r0, _080B5320 @ =gTasks
- adds r1, r5, r4
- lsls r1, 3
- adds r1, r0
- movs r2, 0x10
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _080B534E
- movs r0, 0x5
- bl PlaySE
- ldr r1, _080B5324 @ =gScriptResult
- movs r0, 0x7F
- strh r0, [r1]
- b _080B532C
- .align 2, 0
-_080B5320: .4byte gTasks
-_080B5324: .4byte gScriptResult
-_080B5328:
- ldr r0, _080B5354 @ =gScriptResult
- strh r1, [r0]
-_080B532C:
- bl sub_8072DEC
- ldr r0, _080B5358 @ =gTasks
- adds r3, r5, r4
- lsls r3, 3
- adds r3, r0
- ldrb r0, [r3, 0x8]
- ldrb r1, [r3, 0xA]
- ldrb r2, [r3, 0xC]
- ldrb r3, [r3, 0xE]
- bl MenuZeroFillWindowRect
- adds r0, r4, 0
- bl DestroyTask
- bl EnableBothScriptContexts
-_080B534E:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080B5354: .4byte gScriptResult
-_080B5358: .4byte gTasks
- thumb_func_end sub_80B52B4
-
- thumb_func_start Multichoice
-Multichoice: @ 80B535C
- push {r4-r7,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r1, 24
- lsrs r6, r1, 24
- lsls r2, 24
- lsrs r4, r2, 24
- lsls r3, 24
- lsrs r5, r3, 24
- ldr r0, _080B539C @ =sub_80B52B4
- bl FuncIsActiveTask
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080B53A8
- ldr r1, _080B53A0 @ =gScriptResult
- movs r0, 0xFF
- strh r0, [r1]
- ldr r1, _080B53A4 @ =gMultichoiceLists
- lsls r0, r4, 3
- adds r0, r1
- ldrb r2, [r0, 0x4]
- ldr r3, [r0]
- str r5, [sp]
- adds r0, r7, 0
- adds r1, r6, 0
- bl sub_80B53B4
- movs r0, 0x1
- b _080B53AA
- .align 2, 0
-_080B539C: .4byte sub_80B52B4
-_080B53A0: .4byte gScriptResult
-_080B53A4: .4byte gMultichoiceLists
-_080B53A8:
- movs r0, 0
-_080B53AA:
- add sp, 0x4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end Multichoice
-
- thumb_func_start sub_80B53B4
-sub_80B53B4: @ 80B53B4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- adds r7, r3, 0
- ldr r3, [sp, 0x28]
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r1, 24
- lsrs r1, 24
- mov r9, r1
- lsls r2, 24
- lsrs r6, r2, 24
- lsls r3, 24
- lsrs r3, 24
- mov r10, r3
- ldr r0, [r7]
- bl GetStringWidthInTilesForScriptMenu
- lsls r0, 16
- lsrs r4, r0, 16
- movs r5, 0x1
- cmp r5, r6
- bcs _080B5408
-_080B53EA:
- lsls r0, r5, 3
- adds r0, r7
- ldr r0, [r0]
- bl GetStringWidthInTilesForScriptMenu
- lsls r0, 16
- lsrs r0, 16
- cmp r4, r0
- bcs _080B53FE
- adds r4, r0, 0
-_080B53FE:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, r6
- bcc _080B53EA
-_080B5408:
- lsls r4, 24
- lsrs r4, 24
- add r4, r8
- adds r4, 0x2
- lsls r4, 24
- lsrs r4, 24
- lsls r0, r6, 1
- adds r0, 0x1
- mov r1, r9
- lsls r5, r1, 24
- asrs r5, 24
- adds r5, r0
- lsls r5, 24
- lsrs r5, 24
- mov r0, r8
- adds r2, r6, 0
- adds r3, r7, 0
- bl PrintMenuItems
- movs r0, 0
- str r0, [sp]
- mov r1, r8
- subs r0, r4, r1
- subs r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x4]
- movs r0, 0
- mov r2, r9
- adds r3, r6, 0
- bl InitMenu
- mov r0, r10
- str r0, [sp]
- str r6, [sp, 0x4]
- mov r0, r8
- mov r1, r9
- adds r2, r4, 0
- adds r3, r5, 0
- bl sub_80B5230
- 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 sub_80B53B4
-
- thumb_func_start yes_no_box
-yes_no_box: @ 80B546C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r1, 24
- lsrs r4, r1, 24
- ldr r6, _080B54B4 @ =task_yes_no_maybe
- adds r0, r6, 0
- bl FuncIsActiveTask
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080B54C0
- ldr r1, _080B54B8 @ =gScriptResult
- movs r0, 0xFF
- strh r0, [r1]
- adds r0, r5, 0
- adds r1, r4, 0
- movs r2, 0x1
- bl DisplayYesNoMenu
- adds r0, r6, 0
- movs r1, 0x50
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080B54BC @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r5, [r1, 0x8]
- strh r4, [r1, 0xA]
- movs r0, 0x1
- b _080B54C2
- .align 2, 0
-_080B54B4: .4byte task_yes_no_maybe
-_080B54B8: .4byte gScriptResult
-_080B54BC: .4byte gTasks
-_080B54C0:
- movs r0, 0
-_080B54C2:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end yes_no_box
-
- thumb_func_start unref_sub_80B54C8
-unref_sub_80B54C8: @ 80B54C8
- push {lr}
- ldr r0, _080B54D8 @ =gScriptResult
- ldrh r0, [r0]
- cmp r0, 0xFF
- beq _080B54DC
- movs r0, 0x1
- b _080B54DE
- .align 2, 0
-_080B54D8: .4byte gScriptResult
-_080B54DC:
- movs r0, 0
-_080B54DE:
- pop {r1}
- bx r1
- thumb_func_end unref_sub_80B54C8
-
- thumb_func_start task_yes_no_maybe
-task_yes_no_maybe: @ 80B54E4
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _080B5504 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r1, r0, r1
- ldrh r2, [r1, 0xC]
- movs r3, 0xC
- ldrsh r0, [r1, r3]
- cmp r0, 0x4
- bgt _080B5508
- adds r0, r2, 0x1
- strh r0, [r1, 0xC]
- b _080B556A
- .align 2, 0
-_080B5504: .4byte gTasks
-_080B5508:
- bl ProcessMenuInputNoWrap
- lsls r0, 24
- asrs r1, r0, 24
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _080B552C
- cmp r1, r0
- bgt _080B5524
- subs r0, 0x1
- cmp r1, r0
- beq _080B556A
- b _080B5542
-_080B5524:
- cmp r1, 0
- beq _080B553C
- cmp r1, 0x1
- bne _080B5542
-_080B552C:
- movs r0, 0x5
- bl PlaySE
- ldr r1, _080B5538 @ =gScriptResult
- movs r0, 0
- b _080B5540
- .align 2, 0
-_080B5538: .4byte gScriptResult
-_080B553C:
- ldr r1, _080B5570 @ =gScriptResult
- movs r0, 0x1
-_080B5540:
- strh r0, [r1]
-_080B5542:
- ldr r0, _080B5574 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldrb r0, [r1, 0x8]
- ldrb r1, [r1, 0xA]
- adds r2, r0, 0x6
- lsls r2, 24
- lsrs r2, 24
- adds r3, r1, 0x5
- lsls r3, 24
- lsrs r3, 24
- bl MenuZeroFillWindowRect
- adds r0, r4, 0
- bl DestroyTask
- bl EnableBothScriptContexts
-_080B556A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B5570: .4byte gScriptResult
-_080B5574: .4byte gTasks
- thumb_func_end task_yes_no_maybe
-
- thumb_func_start sub_80B5578
-sub_80B5578: @ 80B5578
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- ldr r4, [sp, 0x30]
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- lsls r1, 24
- lsrs r1, 24
- mov r8, r1
- lsls r2, 24
- lsrs r6, r2, 24
- lsls r3, 24
- lsrs r3, 24
- str r3, [sp, 0xC]
- lsls r4, 24
- lsrs r5, r4, 24
- movs r7, 0
- ldr r0, _080B55B8 @ =sub_80B5684
- mov r10, r0
- bl FuncIsActiveTask
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080B55BC
- movs r0, 0
- b _080B5670
- .align 2, 0
-_080B55B8: .4byte sub_80B5684
-_080B55BC:
- ldr r1, _080B5620 @ =gScriptResult
- movs r0, 0xFF
- strh r0, [r1]
- ldr r0, _080B5624 @ =gMultichoiceLists
- lsls r4, r6, 3
- adds r0, r4, r0
- ldrb r6, [r0, 0x4]
- ldr r0, [r0]
- str r0, [sp]
- str r5, [sp, 0x4]
- str r7, [sp, 0x8]
- mov r0, r9
- mov r1, r8
- adds r2, r6, 0
- movs r3, 0
- bl sub_807274C
- mov r0, r10
- movs r1, 0x50
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- lsls r0, r6, 24
- lsrs r1, r0, 24
- lsrs r0, 25
- cmp r0, r5
- bcc _080B55FE
- movs r0, 0x1
- ands r0, r6
- cmp r0, 0
- beq _080B5606
-_080B55FE:
- cmp r5, 0x1
- beq _080B5606
- cmp r1, r5
- bne _080B5628
-_080B5606:
- ldr r0, _080B5624 @ =gMultichoiceLists
- adds r0, r4, r0
- ldrb r0, [r0, 0x4]
- adds r1, r5, 0
- bl __udivsi3
- lsls r0, 24
- lsrs r0, 23
- adds r0, 0x1
- mov r2, r8
- lsls r1, r2, 24
- b _080B563A
- .align 2, 0
-_080B5620: .4byte gScriptResult
-_080B5624: .4byte gMultichoiceLists
-_080B5628:
- adds r0, r6, 0
- adds r1, r5, 0
- bl __udivsi3
- lsls r0, 24
- lsrs r0, 23
- adds r0, 0x3
- mov r3, r8
- lsls r1, r3, 24
-_080B563A:
- asrs r1, 24
- adds r1, r0
- lsls r1, 24
- lsrs r7, r1, 24
- adds r0, r5, 0
- bl sub_807288C
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080B5680 @ =gTasks
- mov r3, r10
- lsls r1, r3, 2
- add r1, r10
- lsls r1, 3
- adds r1, r2
- mov r2, r9
- strh r2, [r1, 0x8]
- mov r3, r8
- strh r3, [r1, 0xA]
- add r0, r9
- adds r0, 0x2
- strh r0, [r1, 0xC]
- strh r7, [r1, 0xE]
- mov r0, sp
- ldrh r0, [r0, 0xC]
- strh r0, [r1, 0x10]
- movs r0, 0x1
-_080B5670:
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080B5680: .4byte gTasks
- thumb_func_end sub_80B5578
-
- thumb_func_start sub_80B5684
-sub_80B5684: @ 80B5684
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- bl sub_80727CC
- lsls r0, 24
- asrs r1, r0, 24
- movs r0, 0x2
- negs r0, r0
- cmp r1, r0
- beq _080B56F4
- adds r0, 0x1
- cmp r1, r0
- bne _080B56CC
- ldr r2, _080B56C4 @ =gTasks
- lsls r1, r5, 2
- adds r0, r1, r5
- lsls r0, 3
- adds r0, r2
- movs r2, 0x10
- ldrsh r0, [r0, r2]
- adds r4, r1, 0
- cmp r0, 0
- bne _080B56F4
- movs r0, 0x5
- bl PlaySE
- ldr r1, _080B56C8 @ =gScriptResult
- movs r0, 0x7F
- strh r0, [r1]
- b _080B56D2
- .align 2, 0
-_080B56C4: .4byte gTasks
-_080B56C8: .4byte gScriptResult
-_080B56CC:
- ldr r0, _080B56FC @ =gScriptResult
- strh r1, [r0]
- lsls r4, r5, 2
-_080B56D2:
- bl sub_8072DEC
- ldr r0, _080B5700 @ =gTasks
- adds r3, r4, r5
- lsls r3, 3
- adds r3, r0
- ldrb r0, [r3, 0x8]
- ldrb r1, [r3, 0xA]
- ldrb r2, [r3, 0xC]
- ldrb r3, [r3, 0xE]
- bl MenuZeroFillWindowRect
- adds r0, r5, 0
- bl DestroyTask
- bl EnableBothScriptContexts
-_080B56F4:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080B56FC: .4byte gScriptResult
-_080B5700: .4byte gTasks
- thumb_func_end sub_80B5684
-
- thumb_func_start sp109_CreatePCMenu
-sp109_CreatePCMenu: @ 80B5704
- push {lr}
- ldr r0, _080B5724 @ =sub_80B52B4
- bl FuncIsActiveTask
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080B572C
- ldr r1, _080B5728 @ =gScriptResult
- movs r0, 0xFF
- strh r0, [r1]
- bl CreatePCMenu
- movs r0, 0x1
- b _080B572E
- .align 2, 0
-_080B5724: .4byte sub_80B52B4
-_080B5728: .4byte gScriptResult
-_080B572C:
- movs r0, 0
-_080B572E:
- pop {r1}
- bx r1
- thumb_func_end sp109_CreatePCMenu
-
- thumb_func_start CreatePCMenu
-CreatePCMenu: @ 80B5734
- push {r4-r7,lr}
- sub sp, 0x8
- ldr r0, _080B5758 @ =gPCText_PlayersPC
- bl GetStringWidthInTilesForScriptMenu
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r0, _080B575C @ =gPCText_SomeonesPC
- bl GetStringWidthInTilesForScriptMenu
- lsls r0, 16
- lsrs r0, 16
- cmp r4, r0
- bls _080B5760
- lsls r0, r4, 24
- lsrs r5, r0, 24
- b _080B5762
- .align 2, 0
-_080B5758: .4byte gPCText_PlayersPC
-_080B575C: .4byte gPCText_SomeonesPC
-_080B5760:
- movs r5, 0x8
-_080B5762:
- ldr r0, _080B5798 @ =0x00000804
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _080B57A4
- movs r7, 0x4
- adds r4, r5, 0x2
- lsls r2, r4, 24
- lsrs r2, 24
- movs r0, 0
- movs r1, 0
- movs r3, 0x9
- bl MenuDrawTextWindow
- ldr r0, _080B579C @ =gPCText_HallOfFame
- movs r1, 0x1
- movs r2, 0x5
- bl MenuPrint
- ldr r0, _080B57A0 @ =gPCText_LogOff
- movs r1, 0x1
- movs r2, 0x7
- bl MenuPrint
- b _080B57C0
- .align 2, 0
-_080B5798: .4byte 0x00000804
-_080B579C: .4byte gPCText_HallOfFame
-_080B57A0: .4byte gPCText_LogOff
-_080B57A4:
- movs r7, 0x3
- adds r4, r5, 0x2
- lsls r2, r4, 24
- lsrs r2, 24
- movs r0, 0
- movs r1, 0
- movs r3, 0x7
- bl MenuDrawTextWindow
- ldr r0, _080B57DC @ =gPCText_LogOff
- movs r1, 0x1
- movs r2, 0x5
- bl MenuPrint
-_080B57C0:
- adds r6, r4, 0
- ldr r0, _080B57E0 @ =0x0000084b
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _080B57E8
- ldr r0, _080B57E4 @ =gPCText_LanettesPC
- movs r1, 0x1
- movs r2, 0x1
- bl MenuPrint
- b _080B57F2
- .align 2, 0
-_080B57DC: .4byte gPCText_LogOff
-_080B57E0: .4byte 0x0000084b
-_080B57E4: .4byte gPCText_LanettesPC
-_080B57E8:
- ldr r0, _080B5830 @ =gPCText_SomeonesPC
- movs r1, 0x1
- movs r2, 0x1
- bl MenuPrint
-_080B57F2:
- ldr r0, _080B5834 @ =gPCText_PlayersPC
- movs r1, 0x1
- movs r2, 0x3
- bl MenuPrint
- movs r4, 0
- str r4, [sp]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x1
- adds r3, r7, 0
- bl InitMenu
- lsls r2, r6, 24
- lsrs r2, 24
- lsls r3, r7, 1
- adds r3, 0x1
- str r4, [sp]
- str r7, [sp, 0x4]
- movs r0, 0
- movs r1, 0
- bl sub_80B5230
- add sp, 0x8
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080B5830: .4byte gPCText_SomeonesPC
-_080B5834: .4byte gPCText_PlayersPC
- thumb_func_end CreatePCMenu
-
- thumb_func_start sub_80B5838
-sub_80B5838: @ 80B5838
- push {lr}
- bl MenuDisplayMessageBox
- ldr r0, _080B584C @ =gUnknown_081A0A01
- movs r1, 0x2
- movs r2, 0xF
- bl MenuPrint
- pop {r0}
- bx r0
- .align 2, 0
-_080B584C: .4byte gUnknown_081A0A01
- thumb_func_end sub_80B5838
-
- thumb_func_start task_picbox
-task_picbox: @ 80B5850
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _080B5874 @ =gTasks
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _080B58BE
- cmp r0, 0x1
- bgt _080B5878
- cmp r0, 0
- beq _080B5894
- b _080B58BE
- .align 2, 0
-_080B5874: .4byte gTasks
-_080B5878:
- cmp r0, 0x2
- beq _080B5882
- cmp r0, 0x3
- beq _080B58A0
- b _080B58BE
-_080B5882:
- movs r0, 0xC
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080B589C @ =gSprites
- adds r0, r1
- bl FreeResourcesAndDestroySprite
-_080B5894:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080B58BE
- .align 2, 0
-_080B589C: .4byte gSprites
-_080B58A0:
- ldrb r2, [r4, 0xE]
- adds r0, r2, 0
- ldrb r3, [r4, 0x10]
- adds r1, r3, 0
- adds r2, 0x9
- lsls r2, 24
- lsrs r2, 24
- adds r3, 0xA
- lsls r3, 24
- lsrs r3, 24
- bl MenuZeroFillWindowRect
- adds r0, r5, 0
- bl DestroyTask
-_080B58BE:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end task_picbox
-
- thumb_func_start sub_80B58C4
-sub_80B58C4: @ 80B58C4
- push {r4-r7,lr}
- lsls r0, 16
- lsrs r7, r0, 16
- lsls r1, 24
- lsrs r6, r1, 24
- lsls r2, 24
- lsrs r5, r2, 24
- ldr r4, _080B595C @ =task_picbox
- adds r0, r4, 0
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- bne _080B596C
- adds r2, r6, 0
- adds r2, 0x9
- lsls r2, 24
- lsrs r2, 24
- adds r3, r5, 0
- adds r3, 0xA
- lsls r3, 24
- lsrs r3, 24
- adds r0, r6, 0
- adds r1, r5, 0
- bl MenuDrawTextWindow
- adds r0, r4, 0
- movs r1, 0x50
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080B5960 @ =gTasks
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- adds r4, r1
- movs r0, 0
- strh r0, [r4, 0x8]
- strh r7, [r4, 0xA]
- lsls r1, r6, 19
- movs r0, 0xA0
- lsls r0, 14
- adds r1, r0
- asrs r1, 16
- lsls r2, r5, 19
- adds r2, r0
- asrs r2, 16
- adds r0, r7, 0
- movs r3, 0
- bl CreateMonSprite_PicBox
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0xC]
- strh r6, [r4, 0xE]
- strh r5, [r4, 0x10]
- ldr r3, _080B5964 @ =gSprites
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r0, r3, 0
- adds r0, 0x1C
- adds r0, r1, r0
- ldr r2, _080B5968 @ =SpriteCallbackDummy
- str r2, [r0]
- adds r1, r3
- ldrb r2, [r1, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- strb r0, [r1, 0x5]
- movs r0, 0x1
- b _080B596E
- .align 2, 0
-_080B595C: .4byte task_picbox
-_080B5960: .4byte gTasks
-_080B5964: .4byte gSprites
-_080B5968: .4byte SpriteCallbackDummy
-_080B596C:
- movs r0, 0
-_080B596E:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80B58C4
-
- thumb_func_start picbox_close
-picbox_close: @ 80B5974
- push {lr}
- ldr r0, _080B5998 @ =task_picbox
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0xFF
- beq _080B59A4
- ldr r0, _080B599C @ =gTasks
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- ldr r0, _080B59A0 @ =sub_80B59AC
- b _080B59A6
- .align 2, 0
-_080B5998: .4byte task_picbox
-_080B599C: .4byte gTasks
-_080B59A0: .4byte sub_80B59AC
-_080B59A4:
- movs r0, 0
-_080B59A6:
- pop {r1}
- bx r1
- thumb_func_end picbox_close
-
- thumb_func_start sub_80B59AC
-sub_80B59AC: @ 80B59AC
- push {lr}
- ldr r0, _080B59C0 @ =task_picbox
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- beq _080B59C4
- movs r0, 0
- b _080B59C6
- .align 2, 0
-_080B59C0: .4byte task_picbox
-_080B59C4:
- movs r0, 0x1
-_080B59C6:
- pop {r1}
- bx r1
- thumb_func_end sub_80B59AC
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/script_movement.s b/asm/script_movement.s
new file mode 100644
index 000000000..72523c639
--- /dev/null
+++ b/asm/script_movement.s
@@ -0,0 +1,596 @@
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start exec_movement
+exec_movement: @ 80A20D4
+ push {r4,lr}
+ sub sp, 0x4
+ adds r4, r3, 0
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r2, 24
+ lsrs r2, 24
+ mov r3, sp
+ bl TryGetFieldObjectIdByLocalIdAndMap
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A20F6
+ movs r0, 0x1
+ b _080A211E
+_080A20F6:
+ ldr r0, _080A2128 @ =sub_80A244C
+ bl FuncIsActiveTask
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A2108
+ movs r0, 0x32
+ bl sub_80A2198
+_080A2108:
+ bl sub_80A21E0
+ lsls r0, 24
+ lsrs r0, 24
+ mov r1, sp
+ ldrb r1, [r1]
+ adds r2, r4, 0
+ bl sub_80A21F4
+ lsls r0, 24
+ lsrs r0, 24
+_080A211E:
+ add sp, 0x4
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080A2128: .4byte sub_80A244C
+ thumb_func_end exec_movement
+
+ thumb_func_start sub_80A212C
+sub_80A212C: @ 80A212C
+ push {r4,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r2, 24
+ lsrs r2, 24
+ mov r3, sp
+ bl TryGetFieldObjectIdByLocalIdAndMap
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A216E
+ bl sub_80A21E0
+ lsls r0, 24
+ lsrs r4, r0, 24
+ mov r0, sp
+ ldrb r1, [r0]
+ adds r0, r4, 0
+ bl sub_80A2260
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x10
+ beq _080A216E
+ adds r0, r4, 0
+ bl sub_80A2370
+ lsls r0, 24
+ lsrs r0, 24
+ b _080A2170
+_080A216E:
+ movs r0, 0x1
+_080A2170:
+ add sp, 0x4
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80A212C
+
+ thumb_func_start sub_80A2178
+sub_80A2178: @ 80A2178
+ push {r4,lr}
+ bl sub_80A21E0
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0xFF
+ beq _080A2192
+ adds r0, r4, 0
+ bl sub_80A2408
+ adds r0, r4, 0
+ bl DestroyTask
+_080A2192:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A2178
+
+ thumb_func_start sub_80A2198
+sub_80A2198: @ 80A2198
+ push {r4,r5,lr}
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r0, _080A21D4 @ =sub_80A244C
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ movs r2, 0x1
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r3, r1, 3
+ ldr r5, _080A21D8 @ =gTasks + 0x8
+ ldr r0, _080A21DC @ =0x0000ffff
+ adds r4, r0, 0
+_080A21B8:
+ lsls r0, r2, 1
+ adds r0, r3
+ adds r0, r5
+ ldrh r1, [r0]
+ orrs r1, r4
+ strh r1, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0xF
+ bls _080A21B8
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A21D4: .4byte sub_80A244C
+_080A21D8: .4byte gTasks + 0x8
+_080A21DC: .4byte 0x0000ffff
+ thumb_func_end sub_80A2198
+
+ thumb_func_start sub_80A21E0
+sub_80A21E0: @ 80A21E0
+ push {lr}
+ ldr r0, _080A21F0 @ =sub_80A244C
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080A21F0: .4byte sub_80A244C
+ thumb_func_end sub_80A21E0
+
+ thumb_func_start sub_80A21F4
+sub_80A21F4: @ 80A21F4
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ mov r9, r2
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r7, r5, 0
+ lsls r1, 24
+ lsrs r6, r1, 24
+ mov r8, r6
+ adds r0, r5, 0
+ adds r1, r6, 0
+ bl sub_80A2260
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x10
+ beq _080A2230
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_80A2370
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A2250
+ adds r0, r5, 0
+ adds r1, r4, 0
+ adds r2, r6, 0
+ b _080A2246
+_080A2230:
+ adds r0, r7, 0
+ movs r1, 0xFF
+ bl sub_80A2260
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x10
+ beq _080A2250
+ adds r0, r7, 0
+ adds r1, r4, 0
+ mov r2, r8
+_080A2246:
+ mov r3, r9
+ bl sub_80A23C8
+ movs r0, 0
+ b _080A2252
+_080A2250:
+ movs r0, 0x1
+_080A2252:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80A21F4
+
+ thumb_func_start sub_80A2260
+sub_80A2260: @ 80A2260
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r3, r1, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _080A2284 @ =gTasks + 0x8
+ adds r1, r0
+ adds r1, 0x2
+ movs r2, 0
+_080A2278:
+ ldrb r0, [r1]
+ cmp r0, r3
+ bne _080A2288
+ adds r0, r2, 0
+ b _080A2296
+ .align 2, 0
+_080A2284: .4byte gTasks + 0x8
+_080A2288:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ adds r1, 0x1
+ cmp r2, 0xF
+ bls _080A2278
+ movs r0, 0x10
+_080A2296:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80A2260
+
+ thumb_func_start sub_80A229C
+sub_80A229C: @ 80A229C
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r3, r1, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _080A22CC @ =gTasks + 0x8
+ adds r1, r0
+ adds r1, 0x2
+ str r1, [r2]
+ movs r0, 0
+ cmp r0, r3
+ bcs _080A22C8
+_080A22BA:
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, 0x1
+ cmp r0, r3
+ bcc _080A22BA
+ str r1, [r2]
+_080A22C8:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A22CC: .4byte gTasks + 0x8
+ thumb_func_end sub_80A229C
+
+ thumb_func_start sub_80A22D0
+sub_80A22D0: @ 80A22D0
+ push {r4,lr}
+ sub sp, 0x4
+ adds r4, r2, 0
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r4, 24
+ lsrs r4, 24
+ mov r2, sp
+ bl sub_80A229C
+ ldr r0, [sp]
+ strb r4, [r0]
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A22D0
+
+ thumb_func_start sub_80A22F4
+sub_80A22F4: @ 80A22F4
+ push {r4,lr}
+ sub sp, 0x4
+ adds r4, r2, 0
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ mov r2, sp
+ bl sub_80A229C
+ ldr r0, [sp]
+ ldrb r0, [r0]
+ strb r0, [r4]
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A22F4
+
+ thumb_func_start sub_80A2318
+sub_80A2318: @ 80A2318
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ ldr r2, _080A2340 @ =gBitTable
+ lsrs r1, 22
+ adds r1, r2
+ ldr r2, [r1]
+ mvns r2, r2
+ lsls r2, 16
+ lsrs r2, 16
+ ldr r3, _080A2344 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r3
+ ldrh r0, [r1, 0x8]
+ ands r2, r0
+ strh r2, [r1, 0x8]
+ bx lr
+ .align 2, 0
+_080A2340: .4byte gBitTable
+_080A2344: .4byte gTasks
+ thumb_func_end sub_80A2318
+
+ thumb_func_start sub_80A2348
+sub_80A2348: @ 80A2348
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ ldr r3, _080A2368 @ =gTasks
+ lsls r2, r0, 2
+ adds r2, r0
+ lsls r2, 3
+ adds r2, r3
+ ldr r0, _080A236C @ =gBitTable
+ lsrs r1, 22
+ adds r1, r0
+ ldr r0, [r1]
+ ldrh r1, [r2, 0x8]
+ orrs r0, r1
+ strh r0, [r2, 0x8]
+ bx lr
+ .align 2, 0
+_080A2368: .4byte gTasks
+_080A236C: .4byte gBitTable
+ thumb_func_end sub_80A2348
+
+ thumb_func_start sub_80A2370
+sub_80A2370: @ 80A2370
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ ldr r3, _080A2398 @ =gTasks
+ lsls r2, r0, 2
+ adds r2, r0
+ lsls r2, 3
+ adds r2, r3
+ ldr r0, _080A239C @ =gBitTable
+ lsrs r1, 22
+ adds r1, r0
+ ldr r0, [r1]
+ ldrh r1, [r2, 0x8]
+ ands r0, r1
+ cmp r0, 0
+ bne _080A23A0
+ movs r0, 0
+ b _080A23A2
+ .align 2, 0
+_080A2398: .4byte gTasks
+_080A239C: .4byte gBitTable
+_080A23A0:
+ movs r0, 0x1
+_080A23A2:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80A2370
+
+ thumb_func_start npc_obj_offscreen_culling_and_flag_update
+npc_obj_offscreen_culling_and_flag_update: @ 80A23A8
+ lsls r0, 24
+ ldr r2, _080A23B4 @ =gUnknown_020384F8
+ lsrs r0, 22
+ adds r0, r2
+ str r1, [r0]
+ bx lr
+ .align 2, 0
+_080A23B4: .4byte gUnknown_020384F8
+ thumb_func_end npc_obj_offscreen_culling_and_flag_update
+
+ thumb_func_start sub_80A23B8
+sub_80A23B8: @ 80A23B8
+ lsls r0, 24
+ ldr r1, _080A23C4 @ =gUnknown_020384F8
+ lsrs r0, 22
+ adds r0, r1
+ ldr r0, [r0]
+ bx lr
+ .align 2, 0
+_080A23C4: .4byte gUnknown_020384F8
+ thumb_func_end sub_80A23B8
+
+ thumb_func_start sub_80A23C8
+sub_80A23C8: @ 80A23C8
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ adds r5, r0, 0
+ adds r4, r1, 0
+ adds r6, r2, 0
+ mov r8, r3
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r6, 24
+ lsrs r6, 24
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_80A2318
+ adds r0, r4, 0
+ mov r1, r8
+ bl npc_obj_offscreen_culling_and_flag_update
+ adds r0, r5, 0
+ adds r1, r4, 0
+ adds r2, r6, 0
+ bl sub_80A22D0
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A23C8
+
+ thumb_func_start sub_80A2408
+sub_80A2408: @ 80A2408
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _080A2444 @ =gTasks + 0x8
+ adds r1, r0
+ adds r4, r1, 0x2
+ movs r5, 0
+_080A241C:
+ ldrb r0, [r4]
+ cmp r0, 0xFF
+ beq _080A2432
+ adds r1, r0, 0
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080A2448 @ =gMapObjects
+ adds r0, r1
+ bl UnfreezeMapObject
+_080A2432:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r4, 0x1
+ cmp r5, 0xF
+ bls _080A241C
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A2444: .4byte gTasks + 0x8
+_080A2448: .4byte gMapObjects
+ thumb_func_end sub_80A2408
+
+ thumb_func_start sub_80A244C
+sub_80A244C: @ 80A244C
+ push {r4-r7,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r7, r0, 24
+ movs r5, 0
+ mov r6, sp
+_080A2458:
+ adds r0, r7, 0
+ adds r1, r5, 0
+ mov r2, sp
+ bl sub_80A22F4
+ ldrb r0, [r6]
+ cmp r0, 0xFF
+ beq _080A247C
+ adds r4, r0, 0
+ adds r0, r5, 0
+ bl sub_80A23B8
+ adds r3, r0, 0
+ adds r0, r7, 0
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl sub_80A2490
+_080A247C:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0xF
+ bls _080A2458
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A244C
+
+ thumb_func_start sub_80A2490
+sub_80A2490: @ 80A2490
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r5, r3, 0
+ lsls r0, 24
+ lsrs r7, r0, 24
+ lsls r1, 24
+ lsrs r6, r1, 24
+ mov r8, r6
+ lsls r2, 24
+ lsrs r2, 24
+ lsls r0, r2, 3
+ adds r0, r2
+ lsls r0, 2
+ ldr r1, _080A24E0 @ =gMapObjects
+ adds r4, r0, r1
+ adds r0, r4, 0
+ bl FieldObjectIsSpecialAnimActive
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A24C8
+ adds r0, r4, 0
+ bl FieldObjectClearAnimIfSpecialAnimFinished
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A24FA
+_080A24C8:
+ ldrb r1, [r5]
+ cmp r1, 0xFE
+ bne _080A24E4
+ adds r0, r7, 0
+ adds r1, r6, 0
+ bl sub_80A2348
+ adds r0, r4, 0
+ bl FreezeMapObject
+ b _080A24FA
+ .align 2, 0
+_080A24E0: .4byte gMapObjects
+_080A24E4:
+ adds r0, r4, 0
+ bl FieldObjectSetSpecialAnim
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A24FA
+ adds r5, 0x1
+ mov r0, r8
+ adds r1, r5, 0
+ bl npc_obj_offscreen_culling_and_flag_update
+_080A24FA:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A2490
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/script_pokemon_util_80C4BF0.s b/asm/script_pokemon_util_80C4BF0.s
index dd4c18d96..6777ca135 100644
--- a/asm/script_pokemon_util_80C4BF0.s
+++ b/asm/script_pokemon_util_80C4BF0.s
@@ -10,7 +10,7 @@
sub_80C4BF0: @ 80C4BF0
push {r4,lr}
ldr r2, _080C4C1C @ =gSaveBlock1
- ldr r1, _080C4C20 @ =gUnknown_02038570
+ ldr r1, _080C4C20 @ =gContestMons
ldrb r3, [r1, 0x15]
movs r4, 0x9B
lsls r4, 5
@@ -32,7 +32,7 @@ sub_80C4BF0: @ 80C4BF0
bx r0
.align 2, 0
_080C4C1C: .4byte gSaveBlock1
-_080C4C20: .4byte gUnknown_02038570
+_080C4C20: .4byte gContestMons
_080C4C24: .4byte 0x00001364
thumb_func_end sub_80C4BF0
@@ -161,7 +161,7 @@ sub_80C4CEC: @ 80C4CEC
sub_80C4CF8: @ 80C4CF8
push {lr}
ldr r0, _080C4D28 @ =gUnknown_02038690
- ldr r1, _080C4D2C @ =gUnknown_02038695
+ ldr r1, _080C4D2C @ =gContestPlayerMonIndex
ldrb r2, [r1]
adds r0, r2, r0
ldrb r0, [r0]
@@ -184,7 +184,7 @@ sub_80C4CF8: @ 80C4CF8
b _080C4D44
.align 2, 0
_080C4D28: .4byte gUnknown_02038690
-_080C4D2C: .4byte gUnknown_02038695
+_080C4D2C: .4byte gContestPlayerMonIndex
_080C4D30: .4byte gScriptContestRank
_080C4D34: .4byte gUnknown_02038678
_080C4D38: .4byte 0x0000031f
@@ -370,7 +370,7 @@ _080C4E78:
lsrs r1, 24
mov r0, r9
bl sub_80C4698
- ldr r0, _080C4EAC @ =gUnknown_0203869A
+ ldr r0, _080C4EAC @ =gIsLinkContest
ldrb r1, [r0]
movs r0, 0x1
ands r0, r1
@@ -388,7 +388,7 @@ _080C4E78:
_080C4EA0: .4byte gUnknown_02038670
_080C4EA4: .4byte gSpecialVar_0x8006
_080C4EA8: .4byte gStringVar1
-_080C4EAC: .4byte gUnknown_0203869A
+_080C4EAC: .4byte gIsLinkContest
_080C4EB0: .4byte gStringVar2
_080C4EB4: .4byte gLinkPlayers + 0x8
_080C4EB8:
@@ -486,7 +486,7 @@ _080C4F6C: .4byte ShowContestWinnerCleanup
sub_80C4F70: @ 80C4F70
push {r4,lr}
ldr r0, _080C4FA8 @ =0x00004010
- ldr r4, _080C4FAC @ =gUnknown_02038570
+ ldr r4, _080C4FAC @ =gContestMons
ldrb r1, [r4, 0x15]
bl VarSet
ldr r0, _080C4FB0 @ =0x00004011
@@ -509,7 +509,7 @@ sub_80C4F70: @ 80C4F70
bx r0
.align 2, 0
_080C4FA8: .4byte 0x00004010
-_080C4FAC: .4byte gUnknown_02038570
+_080C4FAC: .4byte gContestMons
_080C4FB0: .4byte 0x00004011
_080C4FB4: .4byte 0x00004012
_080C4FB8: .4byte 0x00004013
@@ -534,7 +534,7 @@ GiveMonArtistRibbon: @ 80C4FBC
cmp r0, 0
bne _080C5038
ldr r0, _080C5024 @ =gUnknown_02038690
- ldr r1, _080C5028 @ =gUnknown_02038695
+ ldr r1, _080C5028 @ =gContestPlayerMonIndex
ldrb r2, [r1]
adds r0, r2, r0
ldrb r0, [r0]
@@ -567,7 +567,7 @@ GiveMonArtistRibbon: @ 80C4FBC
_080C501C: .4byte gUnknown_02038694
_080C5020: .4byte gPlayerParty
_080C5024: .4byte gUnknown_02038690
-_080C5028: .4byte gUnknown_02038695
+_080C5028: .4byte gContestPlayerMonIndex
_080C502C: .4byte gScriptContestRank
_080C5030: .4byte gUnknown_02038678
_080C5034: .4byte 0x0000031f
@@ -611,7 +611,7 @@ ShowContestEntryMonPic: @ 80C5050
movs r2, 0x13
movs r3, 0xD
bl MenuDrawTextWindow
- ldr r2, _080C5140 @ =gUnknown_02038570
+ ldr r2, _080C5140 @ =gContestMons
ldr r0, _080C5144 @ =gSpecialVar_0x8006
ldrh r1, [r0]
lsls r1, 6
@@ -654,7 +654,7 @@ ShowContestEntryMonPic: @ 80C5050
str r6, [sp, 0x4]
mov r4, r8
str r4, [sp, 0x8]
- bl sub_800D334
+ bl HandleLoadSpecialPokePic
adds r0, r6, 0
mov r1, r9
mov r2, r8
@@ -703,7 +703,7 @@ _080C512A:
bx r0
.align 2, 0
_080C513C: .4byte sub_80C5190
-_080C5140: .4byte gUnknown_02038570
+_080C5140: .4byte gContestMons
_080C5144: .4byte gSpecialVar_0x8006
_080C5148: .4byte gTasks
_080C514C: .4byte gMonFrontPicTable
@@ -821,7 +821,7 @@ _080C5222:
thumb_func_start ScriptGetMultiplayerId
ScriptGetMultiplayerId: @ 80C5228
push {r4,lr}
- ldr r0, _080C5244 @ =gUnknown_0203869A
+ ldr r0, _080C5244 @ =gIsLinkContest
ldrb r1, [r0]
movs r0, 0x1
ands r0, r1
@@ -834,7 +834,7 @@ ScriptGetMultiplayerId: @ 80C5228
strh r0, [r4]
b _080C5252
.align 2, 0
-_080C5244: .4byte gUnknown_0203869A
+_080C5244: .4byte gIsLinkContest
_080C5248: .4byte gScriptResult
_080C524C:
ldr r1, _080C5258 @ =gScriptResult
@@ -851,7 +851,7 @@ _080C5258: .4byte gScriptResult
thumb_func_start ScriptRandom
ScriptRandom: @ 80C525C
push {r4,lr}
- ldr r0, _080C5280 @ =gUnknown_0203869A
+ ldr r0, _080C5280 @ =gIsLinkContest
ldrb r1, [r0]
movs r0, 0x1
ands r0, r1
@@ -868,7 +868,7 @@ ScriptRandom: @ 80C525C
ldr r4, _080C5290 @ =gScriptResult
b _080C529E
.align 2, 0
-_080C5280: .4byte gUnknown_0203869A
+_080C5280: .4byte gIsLinkContest
_080C5284: .4byte gUnknown_03005D28
_080C5288: .4byte 0x41c64e6d
_080C528C: .4byte 0x00006073
@@ -1311,7 +1311,7 @@ SetBattleTowerPlayerParty: @ 80C55C8
ldrb r4, [r0]
cmp r4, 0
bne _080C55E4
- bl copy_player_party_from_sav1
+ bl LoadPlayerParty
ldr r0, _080C55E0 @ =gScriptResult
strh r4, [r0]
b _080C55EE
diff --git a/asm/script_pokemon_util_80F99CC.s b/asm/script_pokemon_util_80F99CC.s
index af550f47e..d107902ae 100644
--- a/asm/script_pokemon_util_80F99CC.s
+++ b/asm/script_pokemon_util_80F99CC.s
@@ -183,7 +183,7 @@ _080F9B14:
muls r2, r3
ldr r3, _080F9B44 @ =gPlayerParty
adds r2, r3
- bl sub_806D90C
+ bl TryCreatePartyMenuMonIcon
b _080F9BF0
.align 2, 0
_080F9B3C: .4byte 0x00000266
@@ -197,14 +197,14 @@ _080F9B48:
adds r1, r4, r0
b _080F9BBC
_080F9B54:
- bl sub_806DA98
+ bl LoadHeldItemIconGraphics
b _080F9BB4
_080F9B5A:
movs r1, 0x98
lsls r1, 2
adds r0, r4, r1
ldrb r0, [r0]
- bl sub_806DC34
+ bl CreateHeldItemIcons_806DC34
movs r2, 0x99
lsls r2, 2
adds r1, r4, r2
@@ -231,10 +231,10 @@ _080F9B6E:
.align 2, 0
_080F9B94: .4byte 0x00000266
_080F9B98:
- bl sub_806E334
+ bl PartyMenuPrintMonsLevelOrStatus
b _080F9BB4
_080F9B9E:
- bl sub_806E0C4
+ bl PrintPartyMenuMonNicknames
ldr r1, _080F9BAC @ =0x0201b000
movs r0, 0x99
lsls r0, 2
@@ -450,7 +450,7 @@ _080F9D30:
muls r2, r3
ldr r3, _080F9D60 @ =gPlayerParty
adds r2, r3
- bl sub_806D90C
+ bl TryCreatePartyMenuMonIcon
b _080F9E0C
.align 2, 0
_080F9D58: .4byte 0x00000266
@@ -464,14 +464,14 @@ _080F9D64:
adds r1, r4, r0
b _080F9DD8
_080F9D70:
- bl sub_806DA98
+ bl LoadHeldItemIconGraphics
b _080F9DD0
_080F9D76:
movs r1, 0x98
lsls r1, 2
adds r0, r4, r1
ldrb r0, [r0]
- bl sub_806DC34
+ bl CreateHeldItemIcons_806DC34
movs r2, 0x99
lsls r2, 2
adds r1, r4, r2
@@ -498,10 +498,10 @@ _080F9D8A:
.align 2, 0
_080F9DB0: .4byte 0x00000266
_080F9DB4:
- bl sub_806E334
+ bl PartyMenuPrintMonsLevelOrStatus
b _080F9DD0
_080F9DBA:
- bl sub_806E0C4
+ bl PrintPartyMenuMonNicknames
ldr r1, _080F9DC8 @ =0x0201b000
movs r0, 0x99
lsls r0, 2
diff --git a/asm/secret_base.s b/asm/secret_base.s
index 72c467e70..139375998 100644
--- a/asm/secret_base.s
+++ b/asm/secret_base.s
@@ -2058,7 +2058,7 @@ _080BC460: .4byte 0x00001a16
SecretBasePC_PackUp: @ 80BC464
push {lr}
movs r0, 0x14
- bl sav12_xor_increment
+ bl IncrementGameStat
bl sub_80BC440
pop {r0}
bx r0
@@ -2149,7 +2149,7 @@ sub_80BC50C: @ 80BC50C
push {r4,r5,lr}
bl sub_80BC474
movs r0, 0x14
- bl sav12_xor_increment
+ bl IncrementGameStat
ldr r4, _080BC530 @ =gSaveBlock1
ldr r0, _080BC534 @ =0x00001a16
adds r4, r0
diff --git a/asm/shop.s b/asm/shop.s
index 94ee3c867..d59f9584e 100644
--- a/asm/shop.s
+++ b/asm/shop.s
@@ -1820,7 +1820,7 @@ sub_80B3B80: @ 80B3B80
lsls r4, 24
lsrs r4, 24
movs r0, 0x26
- bl sav12_xor_increment
+ bl IncrementGameStat
ldr r5, _080B3BC0 @ =gSaveBlock1 + 0x490
ldr r0, _080B3BC4 @ =gUnknown_020386A0
ldr r1, [r0]
diff --git a/asm/slot_machine.s b/asm/slot_machine.s
index ee176211f..32abb287d 100644
--- a/asm/slot_machine.s
+++ b/asm/slot_machine.s
@@ -1254,7 +1254,7 @@ sub_81021FC: @ 81021FC
cmp r0, 0
beq _08102220
movs r0, 0x1C
- bl sav12_xor_increment
+ bl IncrementGameStat
_08102220:
ldrh r1, [r4, 0x8]
movs r0, 0x4
@@ -7609,14 +7609,14 @@ sub_81050C4: @ 81050C4
movs r2, 0xC
orrs r1, r2
strb r1, [r0, 0x5]
- ldr r1, _081050FC @ =gUnknown_083ED704
+ ldr r1, _081050FC @ =gSubspriteTables_83ED704
bl SetSubspriteTables
pop {r0}
bx r0
.align 2, 0
_081050F4: .4byte gSpriteTemplate_83ED444
_081050F8: .4byte gSprites
-_081050FC: .4byte gUnknown_083ED704
+_081050FC: .4byte gSubspriteTables_83ED704
thumb_func_end sub_81050C4
thumb_func_start sub_8105100
@@ -7764,7 +7764,7 @@ sub_81051C0: @ 81051C0
mov r3, r8
orrs r0, r3
strb r0, [r1]
- ldr r1, _08105274 @ =gUnknown_083ED73C
+ ldr r1, _08105274 @ =gSubspriteTables_83ED73C
adds r0, r2, 0
bl SetSubspriteTables
ldr r6, _08105278 @ =0x02000000
@@ -7795,7 +7795,7 @@ sub_81051C0: @ 81051C0
mov r3, r8
orrs r0, r3
strb r0, [r1]
- ldr r1, _08105280 @ =gUnknown_083ED75C
+ ldr r1, _08105280 @ =gSubspriteTables_83ED75C
adds r0, r2, 0
bl SetSubspriteTables
adds r6, 0x4A
@@ -7810,10 +7810,10 @@ sub_81051C0: @ 81051C0
.align 2, 0
_0810526C: .4byte gSpriteTemplate_83ED474
_08105270: .4byte gSprites
-_08105274: .4byte gUnknown_083ED73C
+_08105274: .4byte gSubspriteTables_83ED73C
_08105278: .4byte 0x02000000
_0810527C: .4byte gSpriteTemplate_83ED48C
-_08105280: .4byte gUnknown_083ED75C
+_08105280: .4byte gSubspriteTables_83ED75C
thumb_func_end sub_81051C0
thumb_func_start sub_8105284
@@ -7850,7 +7850,7 @@ sub_8105284: @ 8105284
movs r2, 0x2
orrs r1, r2
strb r1, [r3]
- ldr r1, _081052E4 @ =gUnknown_083ED78C
+ ldr r1, _081052E4 @ =gSubspriteTables_83ED78C
bl SetSubspriteTables
ldr r0, _081052E8 @ =0x02000000
adds r0, 0x42
@@ -7862,7 +7862,7 @@ sub_8105284: @ 8105284
_081052D8: .4byte gSpriteTemplate_83ED4A4
_081052DC: .4byte gSpriteCoordOffsetX
_081052E0: .4byte gSprites
-_081052E4: .4byte gUnknown_083ED78C
+_081052E4: .4byte gSubspriteTables_83ED78C
_081052E8: .4byte 0x02000000
thumb_func_end sub_8105284
@@ -7997,7 +7997,7 @@ sub_81053A0: @ 81053A0
mov r3, r8
orrs r0, r3
strb r0, [r2, 0x5]
- ldr r0, _08105454 @ =gUnknown_083ED7B4
+ ldr r0, _08105454 @ =gSubspriteTables_83ED7B4
mov r9, r0
adds r0, r2, 0
mov r1, r9
@@ -8045,7 +8045,7 @@ sub_81053A0: @ 81053A0
.align 2, 0
_0810544C: .4byte gSpriteTemplate_83ED4D4
_08105450: .4byte gSprites
-_08105454: .4byte gUnknown_083ED7B4
+_08105454: .4byte gSubspriteTables_83ED7B4
_08105458: .4byte 0x02000000
thumb_func_end sub_81053A0
@@ -8079,7 +8079,7 @@ sub_810545C: @ 810545C
movs r2, 0x4
orrs r1, r2
strb r1, [r0, 0x5]
- ldr r1, _081054B0 @ =gUnknown_083ED7D4
+ ldr r1, _081054B0 @ =gSubspriteTables_83ED7D4
bl SetSubspriteTables
ldr r0, _081054B4 @ =0x02000000
adds r0, 0x40
@@ -8090,7 +8090,7 @@ sub_810545C: @ 810545C
.align 2, 0
_081054A8: .4byte gSpriteTemplate_83ED4EC
_081054AC: .4byte gSprites
-_081054B0: .4byte gUnknown_083ED7D4
+_081054B0: .4byte gSubspriteTables_83ED7D4
_081054B4: .4byte 0x02000000
thumb_func_end sub_810545C
@@ -10258,7 +10258,7 @@ _08106468:
movs r1, 0
movs r2, 0xA0
bl LoadPalette
- ldr r0, _081064B4 @ =gUnknown_083EDE24
+ ldr r0, _081064B4 @ =gPalette_83EDE24
movs r1, 0xD0
movs r2, 0x20
bl LoadPalette
@@ -10271,7 +10271,7 @@ _081064A4: .4byte 0x02010000
_081064A8: .4byte 0x040000d4
_081064AC: .4byte 0x80000800
_081064B0: .4byte gUnknown_08E95A18
-_081064B4: .4byte gUnknown_083EDE24
+_081064B4: .4byte gPalette_83EDE24
thumb_func_end sub_8106448
thumb_func_start sub_81064B8
diff --git a/asm/smokescreen.s b/asm/smokescreen.s
new file mode 100644
index 000000000..7f4aee269
--- /dev/null
+++ b/asm/smokescreen.s
@@ -0,0 +1,226 @@
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_8046234
+sub_8046234: @ 8046234
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 16
+ lsrs r6, r0, 16
+ lsls r1, 16
+ lsrs r7, r1, 16
+ lsls r2, 24
+ lsrs r4, r2, 24
+ ldr r5, _0804636C @ =gUnknown_081FAEA4
+ ldrh r0, [r5, 0x6]
+ bl GetSpriteTileStartByTag
+ lsls r0, 16
+ ldr r1, _08046370 @ =0xffff0000
+ cmp r0, r1
+ bne _08046266
+ adds r0, r5, 0
+ bl LoadCompressedObjectPic
+ ldr r0, _08046374 @ =gUnknown_081FAEAC
+ bl LoadCompressedObjectPalette
+_08046266:
+ ldr r0, _08046378 @ =sub_8046388
+ bl CreateInvisibleSpriteWithCallback
+ mov r8, r0
+ mov r0, r8
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ lsls r5, r0, 4
+ add r5, r8
+ lsls r5, 2
+ ldr r0, _0804637C @ =gSprites
+ adds r5, r0
+ strh r4, [r5, 0x30]
+ ldr r0, _08046380 @ =gSpriteTemplate_81FAF0C
+ mov r9, r0
+ lsls r6, 16
+ asrs r0, r6, 16
+ mov r10, r0
+ ldr r0, _08046384 @ =0xfff00000
+ adds r6, r0
+ asrs r6, 16
+ lsls r4, r7, 16
+ asrs r7, r4, 16
+ adds r4, r0
+ asrs r4, 16
+ mov r0, r9
+ adds r1, r6, 0
+ adds r2, r4, 0
+ movs r3, 0x2
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, _0804637C @ =gSprites
+ adds r1, r0
+ mov r0, r8
+ strh r0, [r1, 0x2E]
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+ adds r0, r1, 0
+ bl AnimateSprite
+ mov r0, r9
+ mov r1, r10
+ adds r2, r4, 0
+ movs r3, 0x2
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 4
+ adds r4, r0
+ lsls r4, 2
+ ldr r0, _0804637C @ =gSprites
+ adds r4, r0
+ mov r0, r8
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAnim
+ adds r0, r4, 0
+ bl AnimateSprite
+ mov r0, r9
+ adds r1, r6, 0
+ adds r2, r7, 0
+ movs r3, 0x2
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 4
+ adds r4, r0
+ lsls r4, 2
+ ldr r0, _0804637C @ =gSprites
+ adds r4, r0
+ mov r0, r8
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl StartSpriteAnim
+ adds r0, r4, 0
+ bl AnimateSprite
+ mov r0, r9
+ mov r1, r10
+ adds r2, r7, 0
+ movs r3, 0x2
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 4
+ adds r4, r0
+ lsls r4, 2
+ ldr r0, _0804637C @ =gSprites
+ adds r4, r0
+ mov r0, r8
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+ adds r0, r4, 0
+ movs r1, 0x3
+ bl StartSpriteAnim
+ adds r0, r4, 0
+ bl AnimateSprite
+ mov r0, r8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0804636C: .4byte gUnknown_081FAEA4
+_08046370: .4byte 0xffff0000
+_08046374: .4byte gUnknown_081FAEAC
+_08046378: .4byte sub_8046388
+_0804637C: .4byte gSprites
+_08046380: .4byte gSpriteTemplate_81FAF0C
+_08046384: .4byte 0xfff00000
+ thumb_func_end sub_8046234
+
+ thumb_func_start sub_8046388
+sub_8046388: @ 8046388
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080463C0
+ ldr r0, _080463B4 @ =gUnknown_081FAEA4
+ ldrh r0, [r0, 0x6]
+ bl FreeSpriteTilesByTag
+ ldr r0, _080463B8 @ =gUnknown_081FAEAC
+ ldrh r0, [r0, 0x4]
+ bl FreeSpritePaletteByTag
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080463BC
+ adds r0, r4, 0
+ bl DestroySprite
+ b _080463C0
+ .align 2, 0
+_080463B4: .4byte gUnknown_081FAEA4
+_080463B8: .4byte gUnknown_081FAEAC
+_080463BC:
+ ldr r0, _080463C8 @ =SpriteCallbackDummy
+ str r0, [r4, 0x1C]
+_080463C0:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080463C8: .4byte SpriteCallbackDummy
+ thumb_func_end sub_8046388
+
+ thumb_func_start sub_80463CC
+sub_80463CC: @ 80463CC
+ push {lr}
+ adds r3, r0, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080463F6
+ ldr r2, _080463FC @ =gSprites
+ movs r0, 0x2E
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x2E]
+ subs r1, 0x1
+ strh r1, [r0, 0x2E]
+ adds r0, r3, 0
+ bl DestroySprite
+_080463F6:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080463FC: .4byte gSprites
+ thumb_func_end sub_80463CC
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/trade.s b/asm/trade.s
index ae857d1c3..d1fe82d6c 100644
--- a/asm/trade.s
+++ b/asm/trade.s
@@ -604,7 +604,7 @@ _080481BA:
str r0, [sp, 0x4]
adds r0, r5, 0
ldr r1, _080482AC @ =sub_809D62C
- bl sub_809D2FC
+ bl CreateMonIcon
mov r2, r8
ldr r1, [r2]
adds r1, 0x34
@@ -661,7 +661,7 @@ _0804822C:
str r0, [sp, 0x4]
adds r0, r5, 0
ldr r1, _080482AC @ =sub_809D62C
- bl sub_809D2FC
+ bl CreateMonIcon
mov r2, r8
ldr r1, [r2]
adds r1, 0x3A
@@ -689,14 +689,14 @@ _080482A8: .4byte 0xfff40000
_080482AC: .4byte sub_809D62C
_080482B0: .4byte gEnemyParty
_080482B4:
- bl sub_806DA98
+ bl LoadHeldItemIconGraphics
ldr r0, _080482D0 @ =gUnknown_03004824
ldr r1, [r0]
adds r0, r1, 0
adds r0, 0x42
adds r1, 0x34
movs r2, 0
- bl sub_806DB90
+ bl CreateHeldItemIcons
ldr r1, _080482D4 @ =gMain
ldr r0, _080482D8 @ =0x0000043c
adds r1, r0
@@ -712,7 +712,7 @@ _080482DC:
adds r0, 0x42
adds r1, 0x34
movs r2, 0x1
- bl sub_806DB90
+ bl CreateHeldItemIcons
ldr r1, _080482F8 @ =gMain
ldr r2, _080482FC @ =0x0000043c
adds r1, r2
@@ -1176,7 +1176,7 @@ _080486DE:
str r0, [sp, 0x4]
adds r0, r5, 0
ldr r1, _080487D8 @ =sub_809D62C
- bl sub_809D2FC
+ bl CreateMonIcon
mov r2, r8
ldr r1, [r2]
adds r1, 0x34
@@ -1233,7 +1233,7 @@ _08048752:
str r0, [sp, 0x4]
adds r0, r5, 0
ldr r1, _080487D8 @ =sub_809D62C
- bl sub_809D2FC
+ bl CreateMonIcon
mov r2, r8
ldr r1, [r2]
adds r1, 0x3A
@@ -1266,14 +1266,14 @@ _080487DC: .4byte gEnemyParty
_080487E0: .4byte gMain
_080487E4: .4byte 0x0000043c
_080487E8:
- bl sub_806DA98
+ bl LoadHeldItemIconGraphics
ldr r0, _08048804 @ =gUnknown_03004824
ldr r1, [r0]
adds r0, r1, 0
adds r0, 0x42
adds r1, 0x34
movs r2, 0
- bl sub_806DB90
+ bl CreateHeldItemIcons
ldr r1, _08048808 @ =gMain
ldr r5, _0804880C @ =0x0000043c
adds r1, r5
@@ -1289,7 +1289,7 @@ _08048810:
adds r0, 0x42
adds r1, 0x34
movs r2, 0x1
- bl sub_806DB90
+ bl CreateHeldItemIcons
ldr r1, _0804882C @ =gMain
ldr r0, _08048830 @ =0x0000043c
adds r1, r0
@@ -3475,7 +3475,7 @@ sub_804997C: @ 804997C
ldr r3, _080499C0 @ =sub_80484F4
movs r4, 0x4
str r4, [sp]
- bl sub_809D8BC
+ bl ShowPokemonSummaryScreen
b _080499E0
.align 2, 0
_080499B4: .4byte gPaletteFade
@@ -3495,7 +3495,7 @@ _080499C4:
ldr r3, _080499EC @ =sub_80484F4
movs r4, 0x4
str r4, [sp]
- bl sub_809D8BC
+ bl ShowPokemonSummaryScreen
_080499E0:
add sp, 0x4
pop {r4}
@@ -6137,7 +6137,7 @@ _0804AE5C:
asrs r0, 16
lsls r1, 16
asrs r1, 16
- bl sub_8046200
+ bl GetHPBarLevel
ldr r1, [r7]
adds r1, 0x69
adds r1, r6
@@ -6182,7 +6182,7 @@ _0804AEBC:
asrs r0, 16
lsls r1, 16
asrs r1, 16
- bl sub_8046200
+ bl GetHPBarLevel
ldr r1, [r7]
adds r1, 0x6F
adds r1, r6
@@ -6539,7 +6539,7 @@ sub_804B128: @ 804B128
ldrh r0, [r0]
str r0, [sp, 0xC]
add r0, sp, 0x10
- bl sub_8040F34
+ bl DoBgAffineSet
ldr r1, _0804B1B8 @ =REG_BG2PA
add r0, sp, 0x10
ldrh r0, [r0]
@@ -6805,7 +6805,7 @@ _0804B330:
str r5, [sp, 0x4]
mov r4, r9
str r4, [sp, 0x8]
- bl sub_800D334
+ bl HandleLoadSpecialPokePic
mov r0, r10
bl sub_8040990
bl LoadCompressedObjectPalette
@@ -7591,7 +7591,7 @@ sub_804BA64: @ 804BA64
lsls r0, 8
cmp r1, r0
bne _0804BA8C
- bl sub_80690F0
+ bl EnableNationalPokedex
_0804BA8C:
pop {r0}
bx r0
@@ -10676,11 +10676,11 @@ _0804D5A4: .4byte 0x0000043c
_0804D5A8:
movs r0, 0x4
strb r0, [r1]
- ldr r1, _0804D5B4 @ =gUnknown_3001BB4
+ ldr r1, _0804D5B4 @ =gSoftResetDisabled
movs r0, 0x1
b _0804D612
.align 2, 0
-_0804D5B4: .4byte gUnknown_3001BB4
+_0804D5B4: .4byte gSoftResetDisabled
_0804D5B8:
ldr r0, _0804D5F4 @ =gUnknown_03005E94
ldr r1, _0804D5F8 @ =sub_804DC88
@@ -11765,9 +11765,9 @@ _0804DF48: .4byte 0x0000043c
_0804DF4C: .4byte gUnknown_03004828
_0804DF50: .4byte gSystemText_Saving
_0804DF54:
- bl sub_8047A1C
+ bl SetSecretBase2Field_9_AndHideBG
movs r0, 0x15
- bl sav12_xor_increment
+ bl IncrementGameStat
bl sub_8125D80
ldr r1, _0804DF74 @ =gMain
ldr r2, _0804DF78 @ =0x0000043c
@@ -11803,7 +11803,7 @@ _0804DF9C:
lsrs r1, r0, 24
cmp r1, 0
beq _0804DFC0
- bl sub_8047A34
+ bl ClearSecretBase2Field_9_2
ldr r0, _0804DFB8 @ =gMain
ldr r1, _0804DFBC @ =0x0000043c
adds r0, r1
@@ -11886,7 +11886,7 @@ _0804E04C:
cmp r0, 0
beq _0804E11A
bl sub_8125E04
- ldr r1, _0804E06C @ =gUnknown_3001BB4
+ ldr r1, _0804E06C @ =gSoftResetDisabled
movs r0, 0
strb r0, [r1]
ldr r0, _0804E070 @ =gMain
@@ -11896,7 +11896,7 @@ _0804E04C:
strb r1, [r0]
b _0804E11A
.align 2, 0
-_0804E06C: .4byte gUnknown_3001BB4
+_0804E06C: .4byte gSoftResetDisabled
_0804E070: .4byte gMain
_0804E074: .4byte 0x0000043c
_0804E078:
diff --git a/asm/trainer_card.s b/asm/trainer_card.s
deleted file mode 100644
index e46113132..000000000
--- a/asm/trainer_card.s
+++ /dev/null
@@ -1,2755 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_8093110
-sub_8093110: @ 8093110
- push {lr}
- bl sub_80932AC
- ldr r0, _08093128 @ =sub_8093174
- bl SetMainCallback2
- ldr r0, _0809312C @ =0x02000000
- adds r0, 0x9C
- movs r1, 0x2
- strb r1, [r0]
- pop {r0}
- bx r0
- .align 2, 0
-_08093128: .4byte sub_8093174
-_0809312C: .4byte 0x02000000
- thumb_func_end sub_8093110
-
- thumb_func_start sub_8093130
-sub_8093130: @ 8093130
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- bl sub_80932E4
- ldr r0, _08093164 @ =sub_8093174
- bl SetMainCallback2
- ldr r2, _08093168 @ =0x02000000
- ldr r3, _0809316C @ =gLinkPlayers
- ldr r0, _08093170 @ =gLinkPlayerMapObjects
- lsls r4, 2
- adds r4, r0
- ldrb r1, [r4, 0x1]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r0, [r0, 0x1A]
- adds r2, 0x9C
- strb r0, [r2]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08093164: .4byte sub_8093174
-_08093168: .4byte 0x02000000
-_0809316C: .4byte gLinkPlayers
-_08093170: .4byte gLinkPlayerMapObjects
- thumb_func_end sub_8093130
-
- thumb_func_start sub_8093174
-sub_8093174: @ 8093174
- push {lr}
- ldr r0, _0809318C @ =gMain
- ldr r1, _08093190 @ =0x0000043c
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x8
- bhi _08093232
- lsls r0, 2
- ldr r1, _08093194 @ =_08093198
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0809318C: .4byte gMain
-_08093190: .4byte 0x0000043c
-_08093194: .4byte _08093198
- .align 2, 0
-_08093198:
- .4byte _080931BC
- .4byte _080931C6
- .4byte _080931CC
- .4byte _080931D2
- .4byte _080931DC
- .4byte _080931EC
- .4byte _08093200
- .4byte _08093206
- .4byte _08093220
-_080931BC:
- bl sub_8093534
- bl sub_8093688
- b _0809320A
-_080931C6:
- bl sub_8093598
- b _0809320A
-_080931CC:
- bl sub_80935EC
- b _0809320A
-_080931D2:
- bl sub_8093610
- bl sub_80937A4
- b _0809320A
-_080931DC:
- bl sub_80937BC
- ldr r1, _080931F8 @ =gMain
- ldr r0, _080931FC @ =0x0000043c
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_080931EC:
- bl MultistepInitMenuWindowContinue
- cmp r0, 0
- beq _08093232
- b _0809320A
- .align 2, 0
-_080931F8: .4byte gMain
-_080931FC: .4byte 0x0000043c
-_08093200:
- bl sub_80937F0
- b _0809320A
-_08093206:
- bl sub_80937D8
-_0809320A:
- ldr r1, _08093218 @ =gMain
- ldr r0, _0809321C @ =0x0000043c
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _08093232
- .align 2, 0
-_08093218: .4byte gMain
-_0809321C: .4byte 0x0000043c
-_08093220:
- bl nullsub_15
- bl sub_8093800
- bl sub_8093550
- ldr r0, _08093238 @ =sub_809323C
- bl SetMainCallback2
-_08093232:
- pop {r0}
- bx r0
- .align 2, 0
-_08093238: .4byte sub_809323C
- thumb_func_end sub_8093174
-
- thumb_func_start sub_809323C
-sub_809323C: @ 809323C
- push {lr}
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- pop {r0}
- bx r0
- thumb_func_end sub_809323C
-
- thumb_func_start sub_8093254
-sub_8093254: @ 8093254
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- ldr r2, _0809329C @ =0x02000000
- ldrb r0, [r2, 0x6]
- adds r0, 0x1
- strb r0, [r2, 0x6]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3B
- bls _0809327E
- movs r0, 0
- strb r0, [r2, 0x6]
- ldrb r0, [r2, 0x5]
- movs r1, 0x1
- eors r0, r1
- strb r0, [r2, 0x5]
-_0809327E:
- ldrb r0, [r2, 0x4]
- cmp r0, 0
- beq _08093298
- ldr r1, _080932A0 @ =0x040000d4
- ldr r0, _080932A4 @ =gUnknown_03004DE0
- str r0, [r1]
- movs r2, 0xF0
- lsls r2, 3
- adds r0, r2
- str r0, [r1, 0x4]
- ldr r0, _080932A8 @ =0x800000a0
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
-_08093298:
- pop {r0}
- bx r0
- .align 2, 0
-_0809329C: .4byte 0x02000000
-_080932A0: .4byte 0x040000d4
-_080932A4: .4byte gUnknown_03004DE0
-_080932A8: .4byte 0x800000a0
- thumb_func_end sub_8093254
-
- thumb_func_start sub_80932AC
-sub_80932AC: @ 80932AC
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080932DC @ =nullsub_60
- movs r1, 0xFF
- bl CreateTask
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- ldr r1, _080932E0 @ =gTasks
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0x8]
- adds r0, 0xC
- adds r1, r4, 0
- bl StoreWordInTwoHalfwords
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080932DC: .4byte nullsub_60
-_080932E0: .4byte gTasks
- thumb_func_end sub_80932AC
-
- thumb_func_start sub_80932E4
-sub_80932E4: @ 80932E4
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _0809331C @ =nullsub_60
- movs r1, 0xFF
- bl CreateTask
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- ldr r1, _08093320 @ =gTasks
- adds r0, r1
- movs r1, 0x1
- strh r1, [r0, 0x8]
- strh r4, [r0, 0xA]
- adds r0, 0xC
- adds r1, r5, 0
- bl StoreWordInTwoHalfwords
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0809331C: .4byte nullsub_60
-_08093320: .4byte gTasks
- thumb_func_end sub_80932E4
-
- thumb_func_start sub_8093324
-sub_8093324: @ 8093324
- push {r4,r5,lr}
- ldr r0, _0809336C @ =nullsub_60
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _08093370 @ =gTasks
- adds r4, r1, r0
- ldr r5, _08093374 @ =0x02000000
- ldrh r0, [r4, 0x8]
- strb r0, [r5, 0x1]
- adds r0, r4, 0
- adds r0, 0xC
- adds r1, r5, 0
- adds r1, 0x60
- bl LoadWordFromTwoHalfwords
- ldrb r0, [r5, 0x1]
- cmp r0, 0
- beq _0809337C
- ldr r2, _08093378 @ =gUnknown_0202FFC0
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 3
- adds r1, r2
- adds r0, r5, 0
- adds r0, 0x64
- movs r2, 0x38
- bl memcpy
- b _08093384
- .align 2, 0
-_0809336C: .4byte nullsub_60
-_08093370: .4byte gTasks
-_08093374: .4byte 0x02000000
-_08093378: .4byte gUnknown_0202FFC0
-_0809337C:
- adds r0, r5, 0
- adds r0, 0x64
- bl sub_8093390
-_08093384:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8093324
-
- thumb_func_start nullsub_60
-nullsub_60: @ 809338C
- bx lr
- thumb_func_end nullsub_60
-
- thumb_func_start sub_8093390
-sub_8093390: @ 8093390
- push {r4-r7,lr}
- adds r5, r0, 0
- ldr r6, _080934A4 @ =gSaveBlock2
- ldrb r0, [r6, 0x8]
- strb r0, [r5]
- ldrh r0, [r6, 0xE]
- strh r0, [r5, 0x10]
- ldrb r0, [r6, 0x10]
- strh r0, [r5, 0x12]
- movs r0, 0x1
- bl sub_8053108
- adds r4, r0, 0
- movs r0, 0xA
- bl sub_8053108
- cmp r0, 0
- bne _080933B6
- movs r4, 0
-_080933B6:
- lsrs r0, r4, 16
- strh r0, [r5, 0x6]
- lsrs r0, r4, 8
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r5, 0x8]
- ands r4, r1
- strh r4, [r5, 0xA]
- ldr r0, _080934A8 @ =0x00000801
- bl FlagGet
- strb r0, [r5, 0x2]
- bl sub_8090FC0
- strb r0, [r5, 0x3]
- bl GetPokedexSeenCount
- strh r0, [r5, 0xC]
- ldrb r1, [r6, 0xB]
- lsls r1, 8
- ldrb r0, [r6, 0xA]
- orrs r0, r1
- strh r0, [r5, 0xE]
- ldr r7, _080934AC @ =0x0000270f
- movs r0, 0x17
- adds r1, r7, 0
- bl sav12_xor_get_clamped_above
- strh r0, [r5, 0x14]
- movs r0, 0x18
- adds r1, r7, 0
- bl sav12_xor_get_clamped_above
- strh r0, [r5, 0x16]
- ldr r1, _080934B0 @ =0x000003e7
- movs r0, 0x23
- bl sav12_xor_get_clamped_above
- strh r0, [r5, 0x1C]
- ldr r4, _080934B4 @ =0x0000ffff
- movs r0, 0x22
- adds r1, r4, 0
- bl sav12_xor_get_clamped_above
- strh r0, [r5, 0x1E]
- movs r0, 0x15
- adds r1, r4, 0
- bl sav12_xor_get_clamped_above
- strh r0, [r5, 0x20]
- movs r1, 0xAE
- lsls r1, 3
- adds r0, r6, r1
- ldrh r0, [r0]
- strh r0, [r5, 0x18]
- ldr r2, _080934B8 @ =0x00000572
- adds r1, r6, r2
- ldrh r1, [r1]
- strh r1, [r5, 0x1A]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, r7
- bls _08093436
- strh r7, [r5, 0x18]
-_08093436:
- ldrh r0, [r5, 0x1A]
- cmp r0, r7
- bls _0809343E
- strh r7, [r5, 0x1A]
-_0809343E:
- movs r4, 0
- bl sub_80C4D50
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bls _0809344E
- movs r4, 0x1
-_0809344E:
- strb r4, [r5, 0x4]
- ldr r0, _080934BC @ =gSaveBlock1
- movs r2, 0x92
- lsls r2, 3
- adds r1, r0, r2
- ldr r1, [r1]
- str r1, [r5, 0x24]
- movs r2, 0
- adds r6, r5, 0
- adds r6, 0x30
- adds r3, r5, 0
- adds r3, 0x28
- ldr r1, _080934C0 @ =0x00002b1c
- adds r4, r0, r1
-_0809346A:
- lsls r0, r2, 1
- adds r1, r3, r0
- adds r0, r4
- ldrh r0, [r0]
- strh r0, [r1]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x3
- bls _0809346A
- movs r2, 0
- adds r3, r6, 0
- ldr r4, _080934A4 @ =gSaveBlock2
-_08093484:
- adds r1, r3, r2
- adds r0, r2, r4
- ldrb r0, [r0]
- strb r0, [r1]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x7
- bls _08093484
- adds r0, r5, 0
- bl sub_80934F4
- strb r0, [r5, 0x1]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080934A4: .4byte gSaveBlock2
-_080934A8: .4byte 0x00000801
-_080934AC: .4byte 0x0000270f
-_080934B0: .4byte 0x000003e7
-_080934B4: .4byte 0x0000ffff
-_080934B8: .4byte 0x00000572
-_080934BC: .4byte gSaveBlock1
-_080934C0: .4byte 0x00002b1c
- thumb_func_end sub_8093390
-
- thumb_func_start sub_80934C4
-sub_80934C4: @ 80934C4
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080934D8 @ =gUnknown_0202FFC0
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 3
- adds r1, r2
- ldrb r0, [r1, 0x1]
- bx lr
- .align 2, 0
-_080934D8: .4byte gUnknown_0202FFC0
- thumb_func_end sub_80934C4
-
- thumb_func_start sav12_xor_get_clamped_above
-sav12_xor_get_clamped_above: @ 80934DC
- push {r4,lr}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r0, 24
- bl sub_8053108
- cmp r0, r4
- bls _080934EE
- adds r0, r4, 0
-_080934EE:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sav12_xor_get_clamped_above
-
- thumb_func_start sub_80934F4
-sub_80934F4: @ 80934F4
- push {lr}
- adds r1, r0, 0
- movs r2, 0
- ldrh r0, [r1, 0x6]
- cmp r0, 0
- bne _08093506
- ldr r0, [r1, 0x8]
- cmp r0, 0
- beq _08093508
-_08093506:
- movs r2, 0x1
-_08093508:
- ldrb r0, [r1, 0x3]
- cmp r0, 0
- beq _08093514
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
-_08093514:
- ldrh r0, [r1, 0x1A]
- cmp r0, 0x31
- bls _08093520
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
-_08093520:
- ldrb r0, [r1, 0x4]
- cmp r0, 0
- beq _0809352C
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
-_0809352C:
- adds r0, r2, 0
- pop {r1}
- bx r1
- thumb_func_end sub_80934F4
-
- thumb_func_start sub_8093534
-sub_8093534: @ 8093534
- push {lr}
- movs r0, 0
- bl SetVBlankCallback
- movs r0, 0
- bl SetHBlankCallback
- movs r1, 0x80
- lsls r1, 19
- movs r0, 0
- strh r0, [r1]
- pop {r0}
- bx r0
- thumb_func_end sub_8093534
-
- thumb_func_start sub_8093550
-sub_8093550: @ 8093550
- push {r4,lr}
- ldr r0, _08093588 @ =sub_8093254
- bl SetVBlankCallback
- ldr r3, _0809358C @ =0x04000208
- ldrh r2, [r3]
- movs r0, 0
- strh r0, [r3]
- ldr r4, _08093590 @ =0x04000200
- ldrh r0, [r4]
- movs r1, 0x3
- orrs r0, r1
- strh r0, [r4]
- strh r2, [r3]
- ldr r2, _08093594 @ =REG_DISPSTAT
- ldrh r0, [r2]
- movs r1, 0x18
- orrs r0, r1
- strh r0, [r2]
- movs r1, 0x80
- lsls r1, 19
- movs r2, 0xFA
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08093588: .4byte sub_8093254
-_0809358C: .4byte 0x04000208
-_08093590: .4byte 0x04000200
-_08093594: .4byte REG_DISPSTAT
- thumb_func_end sub_8093550
-
- thumb_func_start sub_8093598
-sub_8093598: @ 8093598
- push {r4-r7,lr}
- sub sp, 0x4
- movs r2, 0xC0
- lsls r2, 19
- movs r3, 0x80
- lsls r3, 9
- mov r4, sp
- movs r6, 0
- ldr r1, _080935E4 @ =0x040000d4
- movs r5, 0x80
- lsls r5, 5
- ldr r7, _080935E8 @ =0x81000800
- movs r0, 0x81
- lsls r0, 24
- mov r12, r0
-_080935B6:
- strh r6, [r4]
- mov r0, sp
- str r0, [r1]
- str r2, [r1, 0x4]
- str r7, [r1, 0x8]
- ldr r0, [r1, 0x8]
- adds r2, r5
- subs r3, r5
- cmp r3, r5
- bhi _080935B6
- strh r6, [r4]
- mov r0, sp
- str r0, [r1]
- str r2, [r1, 0x4]
- lsrs r0, r3, 1
- mov r2, r12
- orrs r0, r2
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080935E4: .4byte 0x040000d4
-_080935E8: .4byte 0x81000800
- thumb_func_end sub_8093598
-
- thumb_func_start sub_80935EC
-sub_80935EC: @ 80935EC
- sub sp, 0x4
- movs r2, 0xE0
- lsls r2, 19
- mov r1, sp
- movs r0, 0
- strh r0, [r1]
- ldr r0, _08093608 @ =0x040000d4
- str r1, [r0]
- str r2, [r0, 0x4]
- ldr r1, _0809360C @ =0x81000200
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- add sp, 0x4
- bx lr
- .align 2, 0
-_08093608: .4byte 0x040000d4
-_0809360C: .4byte 0x81000200
- thumb_func_end sub_80935EC
-
- thumb_func_start sub_8093610
-sub_8093610: @ 8093610
- push {r4,r5,lr}
- ldr r5, _08093664 @ =REG_BG0CNT
- movs r1, 0
- strh r1, [r5]
- ldr r2, _08093668 @ =REG_BG1CNT
- strh r1, [r2]
- ldr r3, _0809366C @ =REG_BG2CNT
- strh r1, [r3]
- ldr r4, _08093670 @ =REG_BG3CNT
- strh r1, [r4]
- ldr r0, _08093674 @ =REG_BG0HOFS
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- ldr r1, _08093678 @ =0x00001e08
- adds r0, r1, 0
- strh r0, [r5]
- ldr r1, _0809367C @ =0x00000801
- adds r0, r1, 0
- strh r0, [r2]
- ldr r1, _08093680 @ =0x00000902
- adds r0, r1, 0
- strh r0, [r3]
- ldr r1, _08093684 @ =0x00000a03
- adds r0, r1, 0
- strh r0, [r4]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08093664: .4byte REG_BG0CNT
-_08093668: .4byte REG_BG1CNT
-_0809366C: .4byte REG_BG2CNT
-_08093670: .4byte REG_BG3CNT
-_08093674: .4byte REG_BG0HOFS
-_08093678: .4byte 0x00001e08
-_0809367C: .4byte 0x00000801
-_08093680: .4byte 0x00000902
-_08093684: .4byte 0x00000a03
- thumb_func_end sub_8093610
-
- thumb_func_start sub_8093688
-sub_8093688: @ 8093688
- push {r4-r6,lr}
- bl sub_8093324
- ldr r2, _080936D0 @ =0x02000000
- movs r1, 0
- strb r1, [r2]
- strb r1, [r2, 0x3]
- strb r1, [r2, 0x4]
- adds r0, r2, 0
- adds r0, 0x65
- ldrb r0, [r0]
- strb r0, [r2, 0x2]
- strb r1, [r2, 0x5]
- strb r1, [r2, 0x6]
- movs r4, 0
- adds r6, r2, 0
- adds r6, 0x20
- adds r5, r2, 0
- adds r5, 0x8C
-_080936AE:
- lsls r0, r4, 4
- adds r0, r6
- lsls r1, r4, 1
- adds r1, r5, r1
- ldrh r1, [r1]
- bl sub_80EB3FC
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x3
- bls _080936AE
- bl sub_80936D4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080936D0: .4byte 0x02000000
- thumb_func_end sub_8093688
-
- thumb_func_start sub_80936D4
-sub_80936D4: @ 80936D4
- push {r4-r6,lr}
- ldr r4, _08093798 @ =0x02000000
- movs r0, 0
- strb r0, [r4, 0x7]
- strb r0, [r4, 0x8]
- strb r0, [r4, 0x9]
- strb r0, [r4, 0xA]
- strb r0, [r4, 0xB]
- strb r0, [r4, 0xC]
- strb r0, [r4, 0xD]
- adds r0, r4, 0
- adds r0, 0xE
- movs r1, 0
- movs r2, 0x8
- bl memset
- adds r0, r4, 0
- adds r0, 0x66
- ldrb r0, [r0]
- cmp r0, 0
- beq _08093704
- ldrb r0, [r4, 0x7]
- adds r0, 0x1
- strb r0, [r4, 0x7]
-_08093704:
- adds r0, r4, 0
- adds r0, 0x6A
- ldrh r0, [r0]
- cmp r0, 0
- bne _08093714
- ldr r0, [r4, 0x6C]
- cmp r0, 0
- beq _0809371A
-_08093714:
- ldrb r0, [r4, 0x8]
- adds r0, 0x1
- strb r0, [r4, 0x8]
-_0809371A:
- ldr r1, _08093798 @ =0x02000000
- ldr r0, [r1, 0x78]
- cmp r0, 0
- beq _08093728
- ldrb r0, [r1, 0x9]
- adds r0, 0x1
- strb r0, [r1, 0x9]
-_08093728:
- ldr r0, [r1, 0x7C]
- cmp r0, 0
- beq _08093734
- ldrb r0, [r1, 0xA]
- adds r0, 0x1
- strb r0, [r1, 0xA]
-_08093734:
- adds r0, r1, 0
- adds r0, 0x80
- ldrh r0, [r0]
- cmp r0, 0
- beq _08093744
- ldrb r0, [r1, 0xB]
- adds r0, 0x1
- strb r0, [r1, 0xB]
-_08093744:
- adds r0, r1, 0
- adds r0, 0x82
- ldrh r0, [r0]
- cmp r0, 0
- beq _08093754
- ldrb r0, [r1, 0xC]
- adds r0, 0x1
- strb r0, [r1, 0xC]
-_08093754:
- adds r0, r1, 0
- adds r0, 0x84
- ldrh r0, [r0]
- cmp r0, 0
- beq _08093764
- ldrb r0, [r1, 0xD]
- adds r0, 0x1
- strb r0, [r1, 0xD]
-_08093764:
- ldrb r0, [r1, 0x1]
- cmp r0, 0
- bne _08093792
- movs r5, 0
- ldr r4, _0809379C @ =0x00000807
- adds r6, r1, 0
- adds r6, 0xE
-_08093772:
- lsls r0, r4, 16
- lsrs r0, 16
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _08093788
- adds r1, r5, r6
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_08093788:
- adds r4, 0x1
- adds r5, 0x1
- ldr r0, _080937A0 @ =0x0000080e
- cmp r4, r0
- bls _08093772
-_08093792:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08093798: .4byte 0x02000000
-_0809379C: .4byte 0x00000807
-_080937A0: .4byte 0x0000080e
- thumb_func_end sub_80936D4
-
- thumb_func_start sub_80937A4
-sub_80937A4: @ 80937A4
- push {lr}
- bl ResetPaletteFade
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- bl ResetTasks
- pop {r0}
- bx r0
- thumb_func_end sub_80937A4
-
- thumb_func_start sub_80937BC
-sub_80937BC: @ 80937BC
- push {r4,lr}
- ldr r4, _080937D4 @ =gWindowConfig_81E6DC4
- adds r0, r4, 0
- bl SetUpWindowConfig
- adds r0, r4, 0
- bl MultistepInitMenuWindowBegin
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080937D4: .4byte gWindowConfig_81E6DC4
- thumb_func_end sub_80937BC
-
- thumb_func_start sub_80937D8
-sub_80937D8: @ 80937D8
- push {lr}
- bl sub_8093E04
- bl sub_8093E28
- bl sub_8093F64
- bl sub_8093DAC
- pop {r0}
- bx r0
- thumb_func_end sub_80937D8
-
- thumb_func_start sub_80937F0
-sub_80937F0: @ 80937F0
- push {lr}
- bl sub_8093EF8
- pop {r0}
- bx r0
- thumb_func_end sub_80937F0
-
- thumb_func_start nullsub_15
-nullsub_15: @ 80937FC
- bx lr
- thumb_func_end nullsub_15
-
- thumb_func_start sub_8093800
-sub_8093800: @ 8093800
- push {lr}
- bl sub_809380C
- pop {r0}
- bx r0
- thumb_func_end sub_8093800
-
- thumb_func_start sub_809380C
-sub_809380C: @ 809380C
- push {r4,lr}
- ldr r4, _08093828 @ =sub_809382C
- adds r0, r4, 0
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- bl _call_via_r4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08093828: .4byte sub_809382C
- thumb_func_end sub_809380C
-
- thumb_func_start sub_809382C
-sub_809382C: @ 809382C
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r7, _08093858 @ =gUnknown_083B5EBC
- lsls r1, r0, 2
- adds r1, r0
- lsls r4, r1, 3
- ldr r6, _0809385C @ =0x02000000
- ldr r5, _08093860 @ =gTasks
-_0809383E:
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r7
- ldr r1, [r0]
- adds r0, r4, r5
- bl _call_via_r1
- lsls r0, 24
- cmp r0, 0
- bne _0809383E
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08093858: .4byte gUnknown_083B5EBC
-_0809385C: .4byte 0x02000000
-_08093860: .4byte gTasks
- thumb_func_end sub_809382C
-
- thumb_func_start sub_8093864
-sub_8093864: @ 8093864
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r4, _080938A0 @ =0x02000000
- ldr r2, _080938A4 @ =gSaveBlock2
- ldrb r1, [r2, 0x11]
- movs r0, 0x1
- ands r0, r1
- movs r5, 0
- strb r0, [r4, 0x5]
- ldrb r0, [r2, 0x12]
- strb r0, [r4, 0x6]
- bl sub_80939A4
- movs r0, 0x1
- negs r0, r0
- str r5, [sp]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- movs r0, 0
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_080938A0: .4byte 0x02000000
-_080938A4: .4byte gSaveBlock2
- thumb_func_end sub_8093864
-
- thumb_func_start sub_80938A8
-sub_80938A8: @ 80938A8
- push {lr}
- ldr r0, _080938C4 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080938BE
- ldr r1, _080938C8 @ =0x02000000
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_080938BE:
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_080938C4: .4byte gPaletteFade
-_080938C8: .4byte 0x02000000
- thumb_func_end sub_80938A8
-
- thumb_func_start sub_80938CC
-sub_80938CC: @ 80938CC
- push {lr}
- ldr r0, _080938E4 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080938EC
- ldr r1, _080938E8 @ =0x02000000
- movs r0, 0x5
- strb r0, [r1]
- movs r0, 0x1
- b _08093914
- .align 2, 0
-_080938E4: .4byte gMain
-_080938E8: .4byte 0x02000000
-_080938EC:
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08093912
- ldr r2, _08093900 @ =0x02000000
- ldrb r1, [r2, 0x3]
- cmp r1, 0
- beq _08093904
- movs r0, 0x5
- b _0809390C
- .align 2, 0
-_08093900: .4byte 0x02000000
-_08093904:
- movs r0, 0x1
- eors r0, r1
- strb r0, [r2, 0x3]
- movs r0, 0x3
-_0809390C:
- strb r0, [r2]
- movs r0, 0x1
- b _08093914
-_08093912:
- movs r0, 0
-_08093914:
- pop {r1}
- bx r1
- thumb_func_end sub_80938CC
-
- thumb_func_start sub_8093918
-sub_8093918: @ 8093918
- push {lr}
- bl sub_8093A28
- movs r0, 0x36
- bl PlaySE
- ldr r1, _08093934 @ =0x02000000
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_08093934: .4byte 0x02000000
- thumb_func_end sub_8093918
-
- thumb_func_start sub_8093938
-sub_8093938: @ 8093938
- push {lr}
- bl sub_8093A48
- lsls r0, 24
- cmp r0, 0
- beq _0809394A
- ldr r1, _08093950 @ =0x02000000
- movs r0, 0x2
- strb r0, [r1]
-_0809394A:
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_08093950: .4byte 0x02000000
- thumb_func_end sub_8093938
-
- thumb_func_start sub_8093954
-sub_8093954: @ 8093954
- push {lr}
- sub sp, 0x4
- bl sub_80939C0
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _0809397C @ =0x02000000
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- movs r0, 0
- add sp, 0x4
- pop {r1}
- bx r1
- .align 2, 0
-_0809397C: .4byte 0x02000000
- thumb_func_end sub_8093954
-
- thumb_func_start sub_8093980
-sub_8093980: @ 8093980
- push {lr}
- ldr r0, _0809399C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08093996
- ldr r0, _080939A0 @ =0x02000000
- ldr r0, [r0, 0x60]
- bl SetMainCallback2
-_08093996:
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_0809399C: .4byte gPaletteFade
-_080939A0: .4byte 0x02000000
- thumb_func_end sub_8093980
-
- thumb_func_start sub_80939A4
-sub_80939A4: @ 80939A4
- push {lr}
- ldr r0, _080939B8 @ =sub_80939DC
- movs r1, 0
- bl CreateTask
- ldr r0, _080939BC @ =gWindowConfig_81E6DC4
- bl BasicInitMenuWindow
- pop {r0}
- bx r0
- .align 2, 0
-_080939B8: .4byte sub_80939DC
-_080939BC: .4byte gWindowConfig_81E6DC4
- thumb_func_end sub_80939A4
-
- thumb_func_start sub_80939C0
-sub_80939C0: @ 80939C0
- push {lr}
- ldr r0, _080939D8 @ =sub_80939DC
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- beq _080939D4
- bl DestroyTask
-_080939D4:
- pop {r0}
- bx r0
- .align 2, 0
-_080939D8: .4byte sub_80939DC
- thumb_func_end sub_80939C0
-
- thumb_func_start sub_80939DC
-sub_80939DC: @ 80939DC
- push {lr}
- sub sp, 0x20
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _08093A20 @ =gTasks
- adds r2, r1, r0
- ldr r0, _08093A24 @ =0x02000000
- ldrb r1, [r0, 0x5]
- movs r3, 0xA
- ldrsh r0, [r2, r3]
- cmp r1, r0
- beq _08093A04
- strh r1, [r2, 0xA]
- ldrh r0, [r2, 0x8]
- movs r1, 0x1
- eors r0, r1
- strh r0, [r2, 0x8]
-_08093A04:
- movs r0, 0x8
- ldrsh r1, [r2, r0]
- mov r0, sp
- bl sub_8094250
- mov r0, sp
- movs r1, 0xA
- movs r2, 0xC
- bl MenuPrint
- add sp, 0x20
- pop {r0}
- bx r0
- .align 2, 0
-_08093A20: .4byte gTasks
-_08093A24: .4byte 0x02000000
- thumb_func_end sub_80939DC
-
- thumb_func_start sub_8093A28
-sub_8093A28: @ 8093A28
- push {r4,lr}
- ldr r4, _08093A44 @ =sub_8093A68
- adds r0, r4, 0
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- bl _call_via_r4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08093A44: .4byte sub_8093A68
- thumb_func_end sub_8093A28
-
- thumb_func_start sub_8093A48
-sub_8093A48: @ 8093A48
- push {lr}
- ldr r0, _08093A5C @ =sub_8093A68
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- beq _08093A60
- movs r0, 0
- b _08093A62
- .align 2, 0
-_08093A5C: .4byte sub_8093A68
-_08093A60:
- movs r0, 0x1
-_08093A62:
- pop {r1}
- bx r1
- thumb_func_end sub_8093A48
-
- thumb_func_start sub_8093A68
-sub_8093A68: @ 8093A68
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _08093A98 @ =gUnknown_083B5ED8
- ldr r2, _08093A9C @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
-_08093A7A:
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- lsls r0, 2
- adds r0, r5
- ldr r1, [r0]
- adds r0, r4, 0
- bl _call_via_r1
- lsls r0, 24
- cmp r0, 0
- bne _08093A7A
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08093A98: .4byte gUnknown_083B5ED8
-_08093A9C: .4byte gTasks
- thumb_func_end sub_8093A68
-
- thumb_func_start sub_8093AA0
-sub_8093AA0: @ 8093AA0
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _08093AE0 @ =0x02000000
- movs r1, 0
- strb r1, [r0, 0x4]
- bl dp12_8087EA4
- movs r1, 0
- ldr r0, _08093AE4 @ =gUnknown_03004DE0
- ldr r2, _08093AE8 @ =0x0000fffc
- movs r3, 0xF0
- lsls r3, 3
- adds r0, r3
-_08093ABA:
- strh r2, [r0]
- adds r0, 0x2
- adds r1, 0x1
- cmp r1, 0x9F
- bls _08093ABA
- ldr r0, _08093AEC @ =sub_8093D7C
- bl SetHBlankCallback
- ldr r1, _08093AE0 @ =0x02000000
- movs r0, 0x1
- strb r0, [r1, 0x4]
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08093AE0: .4byte 0x02000000
-_08093AE4: .4byte gUnknown_03004DE0
-_08093AE8: .4byte 0x0000fffc
-_08093AEC: .4byte sub_8093D7C
- thumb_func_end sub_8093AA0
-
- thumb_func_start sub_8093AF0
-sub_8093AF0: @ 8093AF0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- mov r8, r0
- ldr r1, _08093BFC @ =0x02000000
- movs r0, 0
- strb r0, [r1, 0x4]
- mov r2, r8
- ldrh r0, [r2, 0xA]
- adds r0, 0x3
- strh r0, [r2, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4F
- ble _08093B18
- movs r0, 0x4F
- strh r0, [r2, 0xA]
-_08093B18:
- mov r4, r8
- movs r0, 0xA
- ldrsh r7, [r4, r0]
- movs r0, 0xA0
- subs r0, r7
- mov r9, r0
- subs r4, r0, r7
- negs r0, r7
- lsls r6, r0, 16
- movs r0, 0xA0
- lsls r0, 16
- adds r1, r4, 0
- bl __udivsi3
- adds r5, r0, 0
- ldr r1, _08093C00 @ =0xffff0000
- adds r5, r1
- adds r0, r5, 0
- muls r0, r4
- adds r0, r6
- mov r10, r0
- adds r0, r5, 0
- adds r1, r4, 0
- bl __udivsi3
- str r0, [sp]
- lsls r5, 1
- movs r3, 0
- cmp r3, r7
- bcs _08093B74
- ldr r2, _08093C04 @ =gUnknown_03004DE0
- mov r12, r2
- ldr r0, _08093C08 @ =0x0000fffc
- adds r4, r0, 0
-_08093B5C:
- lsls r0, r3, 16
- asrs r0, 16
- lsls r1, r0, 1
- add r1, r12
- subs r2, r4, r0
- strh r2, [r1]
- adds r0, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- asrs r0, 16
- cmp r0, r7
- bcc _08093B5C
-_08093B74:
- lsls r2, r3, 16
- mov r1, r9
- lsls r0, r1, 16
- asrs r1, r0, 16
- mov r4, r10
- lsrs r7, r4, 16
- cmp r2, r0
- bge _08093BAE
- ldr r0, _08093C04 @ =gUnknown_03004DE0
- mov r9, r0
- ldr r4, _08093C08 @ =0x0000fffc
- mov r12, r4
- adds r4, r1, 0
-_08093B8E:
- lsrs r1, r6, 16
- adds r6, r5
- ldr r0, [sp]
- subs r5, r0
- asrs r2, 16
- lsls r0, r2, 1
- add r0, r9
- add r1, r12
- strh r1, [r0]
- adds r2, 0x1
- lsls r2, 16
- lsrs r3, r2, 16
- lsls r2, r3, 16
- asrs r0, r2, 16
- cmp r0, r4
- blt _08093B8E
-_08093BAE:
- adds r1, r7, 0
- lsls r0, r3, 16
- asrs r0, 16
- cmp r0, 0x9F
- bgt _08093BD4
- ldr r4, _08093C04 @ =gUnknown_03004DE0
- ldr r0, _08093C08 @ =0x0000fffc
- adds r2, r1, r0
-_08093BBE:
- lsls r1, r3, 16
- asrs r1, 16
- lsls r0, r1, 1
- adds r0, r4
- strh r2, [r0]
- adds r1, 0x1
- lsls r1, 16
- lsrs r3, r1, 16
- asrs r1, 16
- cmp r1, 0x9F
- ble _08093BBE
-_08093BD4:
- movs r0, 0x1
- ldr r1, _08093BFC @ =0x02000000
- strb r0, [r1, 0x4]
- mov r2, r8
- movs r4, 0xA
- ldrsh r0, [r2, r4]
- cmp r0, 0x4A
- ble _08093BEA
- ldrh r0, [r2, 0x8]
- adds r0, 0x1
- strh r0, [r2, 0x8]
-_08093BEA:
- movs r0, 0
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08093BFC: .4byte 0x02000000
-_08093C00: .4byte 0xffff0000
-_08093C04: .4byte gUnknown_03004DE0
-_08093C08: .4byte 0x0000fffc
- thumb_func_end sub_8093AF0
-
- thumb_func_start sub_8093C0C
-sub_8093C0C: @ 8093C0C
- push {r4,lr}
- adds r4, r0, 0
- bl sub_80939C0
- bl sub_8093DAC
- ldr r0, _08093C34 @ =0x02000000
- ldrb r0, [r0, 0x3]
- cmp r0, 0
- bne _08093C24
- bl sub_80939A4
-_08093C24:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- movs r0, 0x1
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08093C34: .4byte 0x02000000
- thumb_func_end sub_8093C0C
-
- thumb_func_start sub_8093C38
-sub_8093C38: @ 8093C38
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- mov r8, r0
- ldr r1, _08093D40 @ =0x02000000
- movs r2, 0
- strb r2, [r1, 0x4]
- ldrh r0, [r0, 0xA]
- subs r0, 0x3
- mov r3, r8
- strh r0, [r3, 0xA]
- lsls r0, 16
- cmp r0, 0
- bgt _08093C5C
- strh r2, [r3, 0xA]
-_08093C5C:
- mov r4, r8
- movs r0, 0xA
- ldrsh r7, [r4, r0]
- movs r0, 0xA0
- subs r0, r7
- mov r9, r0
- subs r4, r0, r7
- negs r0, r7
- lsls r6, r0, 16
- movs r0, 0xA0
- lsls r0, 16
- adds r1, r4, 0
- bl __udivsi3
- adds r5, r0, 0
- ldr r1, _08093D44 @ =0xffff0000
- adds r5, r1
- adds r0, r5, 0
- muls r0, r4
- adds r0, r6
- mov r10, r0
- adds r0, r5, 0
- adds r1, r4, 0
- bl __udivsi3
- str r0, [sp]
- lsrs r5, 1
- movs r3, 0
- cmp r3, r7
- bcs _08093CB8
- ldr r2, _08093D48 @ =gUnknown_03004DE0
- mov r12, r2
- ldr r0, _08093D4C @ =0x0000fffc
- adds r4, r0, 0
-_08093CA0:
- lsls r0, r3, 16
- asrs r0, 16
- lsls r1, r0, 1
- add r1, r12
- subs r2, r4, r0
- strh r2, [r1]
- adds r0, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- asrs r0, 16
- cmp r0, r7
- bcc _08093CA0
-_08093CB8:
- lsls r2, r3, 16
- mov r1, r9
- lsls r0, r1, 16
- asrs r1, r0, 16
- mov r4, r10
- lsrs r7, r4, 16
- cmp r2, r0
- bge _08093CF2
- ldr r0, _08093D48 @ =gUnknown_03004DE0
- mov r9, r0
- ldr r3, _08093D4C @ =0x0000fffc
- mov r12, r3
- adds r4, r1, 0
-_08093CD2:
- lsrs r1, r6, 16
- adds r6, r5
- ldr r0, [sp]
- adds r5, r0
- asrs r2, 16
- lsls r0, r2, 1
- add r0, r9
- add r1, r12
- strh r1, [r0]
- adds r2, 0x1
- lsls r2, 16
- lsrs r3, r2, 16
- lsls r2, r3, 16
- asrs r0, r2, 16
- cmp r0, r4
- blt _08093CD2
-_08093CF2:
- adds r1, r7, 0
- lsls r0, r3, 16
- asrs r0, 16
- cmp r0, 0x9F
- bgt _08093D18
- ldr r4, _08093D48 @ =gUnknown_03004DE0
- ldr r0, _08093D4C @ =0x0000fffc
- adds r2, r1, r0
-_08093D02:
- lsls r1, r3, 16
- asrs r1, 16
- lsls r0, r1, 1
- adds r0, r4
- strh r2, [r0]
- adds r1, 0x1
- lsls r1, 16
- lsrs r3, r1, 16
- asrs r1, 16
- cmp r1, 0x9F
- ble _08093D02
-_08093D18:
- movs r0, 0x1
- ldr r1, _08093D40 @ =0x02000000
- strb r0, [r1, 0x4]
- mov r2, r8
- movs r3, 0xA
- ldrsh r0, [r2, r3]
- cmp r0, 0
- bgt _08093D2E
- ldrh r0, [r2, 0x8]
- adds r0, 0x1
- strh r0, [r2, 0x8]
-_08093D2E:
- movs r0, 0
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08093D40: .4byte 0x02000000
-_08093D44: .4byte 0xffff0000
-_08093D48: .4byte gUnknown_03004DE0
-_08093D4C: .4byte 0x0000fffc
- thumb_func_end sub_8093C38
-
- thumb_func_start sub_8093D50
-sub_8093D50: @ 8093D50
- push {lr}
- ldr r1, _08093D74 @ =0x02000000
- movs r0, 0
- strb r0, [r1, 0x4]
- bl SetHBlankCallback
- bl sub_8093E04
- ldr r0, _08093D78 @ =sub_8093A68
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_08093D74: .4byte 0x02000000
-_08093D78: .4byte sub_8093A68
- thumb_func_end sub_8093D50
-
- thumb_func_start sub_8093D7C
-sub_8093D7C: @ 8093D7C
- ldr r1, _08093DA0 @ =gUnknown_03004DE0
- ldr r0, _08093DA4 @ =REG_VCOUNT
- ldrh r2, [r0]
- movs r0, 0xFF
- ands r0, r2
- lsls r0, 1
- movs r2, 0xF0
- lsls r2, 3
- adds r1, r2
- adds r0, r1
- ldrh r1, [r0]
- ldr r0, _08093DA8 @ =REG_BG0VOFS
- strh r1, [r0]
- adds r0, 0x4
- strh r1, [r0]
- adds r0, 0x4
- strh r1, [r0]
- bx lr
- .align 2, 0
-_08093DA0: .4byte gUnknown_03004DE0
-_08093DA4: .4byte REG_VCOUNT
-_08093DA8: .4byte REG_BG0VOFS
- thumb_func_end sub_8093D7C
-
- thumb_func_start sub_8093DAC
-sub_8093DAC: @ 8093DAC
- push {lr}
- ldr r0, _08093DBC @ =0x02000000
- ldrb r0, [r0, 0x3]
- cmp r0, 0
- beq _08093DC0
- bl sub_8093DEC
- b _08093DC4
- .align 2, 0
-_08093DBC: .4byte 0x02000000
-_08093DC0:
- bl sub_8093DC8
-_08093DC4:
- pop {r0}
- bx r0
- thumb_func_end sub_8093DAC
-
- thumb_func_start sub_8093DC8
-sub_8093DC8: @ 8093DC8
- push {lr}
- bl MenuZeroFillScreen
- bl sub_80940E4
- bl sub_8093F14
- bl sub_8093F80
- bl sub_8093FD0
- bl sub_8094038
- bl sub_8094140
- pop {r0}
- bx r0
- thumb_func_end sub_8093DC8
-
- thumb_func_start sub_8093DEC
-sub_8093DEC: @ 8093DEC
- push {lr}
- bl MenuZeroFillScreen
- bl sub_80940E4
- bl sub_8093F48
- bl sub_8094188
- pop {r0}
- bx r0
- thumb_func_end sub_8093DEC
-
- thumb_func_start sub_8093E04
-sub_8093E04: @ 8093E04
- ldr r0, _08093E20 @ =REG_BG0VOFS
- ldr r2, _08093E24 @ =0x0000fffc
- adds r1, r2, 0
- strh r1, [r0]
- adds r0, 0x2
- movs r2, 0
- strh r2, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r2, [r0]
- adds r0, 0x2
- strh r1, [r0]
- bx lr
- .align 2, 0
-_08093E20: .4byte REG_BG0VOFS
-_08093E24: .4byte 0x0000fffc
- thumb_func_end sub_8093E04
-
- thumb_func_start sub_8093E28
-sub_8093E28: @ 8093E28
- push {r4-r7,lr}
- bl sub_8093EA0
- ldr r0, _08093E84 @ =gUnknown_083B5F6C
- movs r1, 0xE0
- movs r2, 0x20
- bl LoadPalette
- ldr r3, _08093E88 @ =gMenuTrainerCard_Gfx
- movs r4, 0xC0
- lsls r4, 19
- movs r5, 0xA4
- lsls r5, 5
- ldr r1, _08093E8C @ =0x040000d4
- ldr r6, _08093E90 @ =0x80000800
- movs r2, 0x80
- lsls r2, 5
- movs r7, 0x80
- lsls r7, 24
-_08093E4E:
- str r3, [r1]
- str r4, [r1, 0x4]
- str r6, [r1, 0x8]
- ldr r0, [r1, 0x8]
- adds r3, r2
- adds r4, r2
- subs r5, r2
- cmp r5, r2
- bhi _08093E4E
- str r3, [r1]
- str r4, [r1, 0x4]
- lsrs r0, r5, 1
- orrs r0, r7
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- ldr r1, _08093E94 @ =gBadgesTiles
- ldr r2, _08093E98 @ =0x06001480
- ldr r0, _08093E8C @ =0x040000d4
- str r1, [r0]
- str r2, [r0, 0x4]
- ldr r1, _08093E9C @ =0x80000200
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08093E84: .4byte gUnknown_083B5F6C
-_08093E88: .4byte gMenuTrainerCard_Gfx
-_08093E8C: .4byte 0x040000d4
-_08093E90: .4byte 0x80000800
-_08093E94: .4byte gBadgesTiles
-_08093E98: .4byte 0x06001480
-_08093E9C: .4byte 0x80000200
- thumb_func_end sub_8093E28
-
- thumb_func_start sub_8093EA0
-sub_8093EA0: @ 8093EA0
- push {r4,lr}
- ldr r1, _08093EE4 @ =gUnknown_083B5EF8
- ldr r4, _08093EE8 @ =0x02000000
- ldrb r0, [r4, 0x2]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0
- movs r2, 0x60
- bl LoadPalette
- ldr r0, _08093EEC @ =gBadgesPalette
- movs r1, 0x30
- movs r2, 0x20
- bl LoadPalette
- ldr r0, _08093EF0 @ =gUnknown_083B5F4C
- movs r1, 0x40
- movs r2, 0x20
- bl LoadPalette
- adds r4, 0x64
- ldrb r0, [r4]
- cmp r0, 0
- beq _08093EDC
- ldr r0, _08093EF4 @ =gUnknown_083B5F0C
- movs r1, 0x10
- movs r2, 0x20
- bl LoadPalette
-_08093EDC:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08093EE4: .4byte gUnknown_083B5EF8
-_08093EE8: .4byte 0x02000000
-_08093EEC: .4byte gBadgesPalette
-_08093EF0: .4byte gUnknown_083B5F4C
-_08093EF4: .4byte gUnknown_083B5F0C
- thumb_func_end sub_8093EA0
-
- thumb_func_start sub_8093EF8
-sub_8093EF8: @ 8093EF8
- push {lr}
- ldr r0, _08093F0C @ =0x02000000
- adds r0, 0x64
- ldrb r0, [r0]
- ldr r2, _08093F10 @ =0x06001880
- movs r1, 0x50
- bl LoadTrainerGfx_TrainerCard
- pop {r0}
- bx r0
- .align 2, 0
-_08093F0C: .4byte 0x02000000
-_08093F10: .4byte 0x06001880
- thumb_func_end sub_8093EF8
-
- thumb_func_start sub_8093F14
-sub_8093F14: @ 8093F14
- push {lr}
- sub sp, 0x8
- ldr r0, _08093F3C @ =gUnknown_083B5EEC
- ldr r1, [r0, 0x4]
- ldr r0, [r0]
- str r0, [sp]
- str r1, [sp, 0x4]
- ldr r0, _08093F40 @ =0x02000000
- ldrb r0, [r0, 0x1]
- lsls r0, 2
- add r0, sp
- ldr r0, [r0]
- ldr r1, _08093F44 @ =0x06004800
- movs r2, 0xA0
- lsls r2, 1
- bl CpuFastSet
- add sp, 0x8
- pop {r0}
- bx r0
- .align 2, 0
-_08093F3C: .4byte gUnknown_083B5EEC
-_08093F40: .4byte 0x02000000
-_08093F44: .4byte 0x06004800
- thumb_func_end sub_8093F14
-
- thumb_func_start sub_8093F48
-sub_8093F48: @ 8093F48
- push {lr}
- ldr r0, _08093F5C @ =gUnknown_08E8CFC0
- ldr r1, _08093F60 @ =0x06004800
- movs r2, 0xA0
- lsls r2, 1
- bl CpuFastSet
- pop {r0}
- bx r0
- .align 2, 0
-_08093F5C: .4byte gUnknown_08E8CFC0
-_08093F60: .4byte 0x06004800
- thumb_func_end sub_8093F48
-
- thumb_func_start sub_8093F64
-sub_8093F64: @ 8093F64
- push {lr}
- ldr r0, _08093F78 @ =gUnknown_08E8D9C0
- ldr r1, _08093F7C @ =0x06005000
- movs r2, 0xA0
- lsls r2, 1
- bl CpuFastSet
- pop {r0}
- bx r0
- .align 2, 0
-_08093F78: .4byte gUnknown_08E8D9C0
-_08093F7C: .4byte 0x06005000
- thumb_func_end sub_8093F64
-
- thumb_func_start sub_8093F80
-sub_8093F80: @ 8093F80
- push {r4-r7,lr}
- movs r5, 0xC4
- ldr r7, _08093FCC @ =0x06004000
- movs r1, 0x5
- movs r0, 0xA0
- lsls r0, 7
- adds r6, r0, 0
-_08093F8E:
- movs r0, 0x13
- lsls r3, r1, 16
- asrs r4, r3, 11
-_08093F94:
- lsls r2, r0, 16
- asrs r2, 16
- adds r1, r4, r2
- lsls r1, 1
- adds r1, r7
- adds r0, r5, 0
- orrs r0, r6
- strh r0, [r1]
- adds r2, 0x1
- lsls r2, 16
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- lsrs r0, r2, 16
- asrs r2, 16
- cmp r2, 0x1A
- ble _08093F94
- movs r1, 0x80
- lsls r1, 9
- adds r0, r3, r1
- lsrs r1, r0, 16
- asrs r0, 16
- cmp r0, 0xC
- ble _08093F8E
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08093FCC: .4byte 0x06004000
- thumb_func_end sub_8093F80
-
- thumb_func_start sub_8093FD0
-sub_8093FD0: @ 8093FD0
- push {r4-r6,lr}
- ldr r4, _0809402C @ =0x06004000
- movs r2, 0xF
- ldr r0, _08094030 @ =0x02000000
- ldrb r0, [r0, 0x2]
- adds r0, 0xF
- cmp r2, r0
- bge _08094002
- movs r6, 0xC0
- lsls r6, 1
- ldr r1, _08094034 @ =0x0000408f
- adds r5, r1, 0
- adds r3, r0, 0
-_08093FEA:
- lsls r1, r2, 16
- asrs r1, 16
- lsls r0, r1, 1
- adds r0, r4
- adds r0, r6
- strh r5, [r0]
- adds r1, 0x1
- lsls r1, 16
- lsrs r2, r1, 16
- asrs r1, 16
- cmp r1, r3
- blt _08093FEA
-_08094002:
- lsls r1, r2, 16
- asrs r0, r1, 16
- cmp r0, 0x12
- bgt _08094024
- movs r3, 0xC0
- lsls r3, 1
- movs r2, 0
-_08094010:
- asrs r0, r1, 16
- lsls r1, r0, 1
- adds r1, r4
- adds r1, r3
- strh r2, [r1]
- adds r0, 0x1
- lsls r1, r0, 16
- asrs r0, r1, 16
- cmp r0, 0x12
- ble _08094010
-_08094024:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0809402C: .4byte 0x06004000
-_08094030: .4byte 0x02000000
-_08094034: .4byte 0x0000408f
- thumb_func_end sub_8093FD0
-
- thumb_func_start sub_8094038
-sub_8094038: @ 8094038
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r1, _080940D0 @ =0x02000000
- ldrb r0, [r1, 0x1]
- cmp r0, 0
- bne _080940C2
- ldr r0, _080940D4 @ =0x06004000
- mov r9, r0
- movs r0, 0
- movs r2, 0x4
- adds r1, 0xE
- mov r8, r1
- ldr r7, _080940D8 @ =gUnknown_083B5F8C
- movs r1, 0xC0
- lsls r1, 6
- adds r6, r1, 0
- adds r1, r7, 0x6
- mov r12, r1
-_08094060:
- lsls r0, 16
- asrs r4, r0, 16
- mov r1, r8
- adds r0, r4, r1
- ldrb r0, [r0]
- lsls r5, r2, 16
- cmp r0, 0
- beq _080940AE
- asrs r1, r5, 15
- add r1, r9
- movs r2, 0xF0
- lsls r2, 2
- adds r3, r1, r2
- lsls r2, r4, 3
- adds r0, r2, r7
- ldrh r0, [r0]
- orrs r0, r6
- strh r0, [r3]
- ldr r0, _080940DC @ =0x000003c2
- adds r3, r1, r0
- adds r0, r7, 0x2
- adds r0, r2, r0
- ldrh r0, [r0]
- orrs r0, r6
- strh r0, [r3]
- movs r0, 0x80
- lsls r0, 3
- adds r3, r1, r0
- adds r0, r7, 0x4
- adds r0, r2, r0
- ldrh r0, [r0]
- orrs r0, r6
- strh r0, [r3]
- ldr r0, _080940E0 @ =0x00000402
- adds r1, r0
- add r2, r12
- ldrh r0, [r2]
- orrs r0, r6
- strh r0, [r1]
-_080940AE:
- adds r1, r4, 0x1
- lsls r1, 16
- movs r2, 0xC0
- lsls r2, 10
- adds r0, r5, r2
- lsrs r2, r0, 16
- lsrs r0, r1, 16
- asrs r1, 16
- cmp r1, 0x7
- ble _08094060
-_080940C2:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080940D0: .4byte 0x02000000
-_080940D4: .4byte 0x06004000
-_080940D8: .4byte gUnknown_083B5F8C
-_080940DC: .4byte 0x000003c2
-_080940E0: .4byte 0x00000402
- thumb_func_end sub_8094038
-
- thumb_func_start sub_80940E4
-sub_80940E4: @ 80940E4
- push {r4,lr}
- movs r2, 0
- ldr r1, _08094108 @ =0x06004000
- movs r4, 0
- ldr r3, _0809410C @ =0x000003ff
-_080940EE:
- strh r4, [r1]
- lsls r0, r2, 16
- movs r2, 0x80
- lsls r2, 9
- adds r0, r2
- adds r1, 0x2
- lsrs r2, r0, 16
- asrs r0, 16
- cmp r0, r3
- ble _080940EE
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08094108: .4byte 0x06004000
-_0809410C: .4byte 0x000003ff
- thumb_func_end sub_80940E4
-
- thumb_func_start sub_8094110
-sub_8094110: @ 8094110
- push {r4-r6,lr}
- ldr r6, _0809413C @ =0x06004800
- movs r2, 0x3
- movs r5, 0xA0
- lsls r5, 2
- movs r3, 0x1
- movs r4, 0xB0
- lsls r4, 2
-_08094120:
- lsls r0, r2, 1
- adds r0, r6
- adds r1, r0, r5
- strh r3, [r1]
- adds r0, r4
- strh r3, [r0]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x10
- bls _08094120
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0809413C: .4byte 0x06004800
- thumb_func_end sub_8094110
-
- thumb_func_start sub_8094140
-sub_8094140: @ 8094140
- push {r4,r5,lr}
- ldr r0, _0809417C @ =gWindowConfig_81E6DC4
- bl BasicInitMenuWindow
- ldr r4, _08094180 @ =gStringVar1
- ldr r5, _08094184 @ =0x02000094
- adds r0, r4, 0
- adds r1, r5, 0
- bl StringCopy
- ldrb r1, [r5, 0x8]
- adds r0, r4, 0
- bl ConvertInternationalString
- adds r0, r4, 0
- movs r1, 0x7
- movs r2, 0x5
- bl MenuPrint
- bl sub_80941D8
- bl sub_8094200
- bl sub_8094218
- bl sub_809429C
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0809417C: .4byte gWindowConfig_81E6DC4
-_08094180: .4byte gStringVar1
-_08094184: .4byte 0x02000094
- thumb_func_end sub_8094140
-
- thumb_func_start sub_8094188
-sub_8094188: @ 8094188
- push {lr}
- ldr r0, _080941D0 @ =gWindowConfig_81E6DC4
- bl BasicInitMenuWindow
- bl sub_80942F8
- bl sub_8094334
- bl sub_80943C4
- bl sub_8094428
- bl sub_8094498
- bl sub_80944E8
- bl sub_8094538
- ldr r0, _080941D4 @ =gWindowConfig_81E6DE0
- bl BasicInitMenuWindow
- bl sub_8094354
- bl sub_80943E4
- bl sub_8094448
- bl sub_80944B8
- bl sub_8094508
- bl sub_8094558
- pop {r0}
- bx r0
- .align 2, 0
-_080941D0: .4byte gWindowConfig_81E6DC4
-_080941D4: .4byte gWindowConfig_81E6DE0
- thumb_func_end sub_8094188
-
- thumb_func_start sub_80941D8
-sub_80941D8: @ 80941D8
- push {lr}
- sub sp, 0x8
- ldr r0, _080941FC @ =0x02000000
- adds r0, 0x72
- ldrh r1, [r0]
- mov r0, sp
- movs r2, 0x2
- movs r3, 0x5
- bl ConvertIntToDecimalStringN
- mov r0, sp
- movs r1, 0x14
- movs r2, 0x2
- bl MenuPrint
- add sp, 0x8
- pop {r0}
- bx r0
- .align 2, 0
-_080941FC: .4byte 0x02000000
- thumb_func_end sub_80941D8
-
- thumb_func_start sub_8094200
-sub_8094200: @ 8094200
- push {lr}
- ldr r0, _08094214 @ =0x02000000
- adds r0, 0x88
- ldr r0, [r0]
- movs r1, 0x10
- movs r2, 0x8
- bl sub_80B7AEC
- pop {r0}
- bx r0
- .align 2, 0
-_08094214: .4byte 0x02000000
- thumb_func_end sub_8094200
-
- thumb_func_start sub_8094218
-sub_8094218: @ 8094218
- push {lr}
- sub sp, 0x10
- ldr r1, _0809422C @ =0x02000000
- ldrb r0, [r1, 0x7]
- cmp r0, 0
- bne _08094230
- bl sub_8094110
- b _0809424A
- .align 2, 0
-_0809422C: .4byte 0x02000000
-_08094230:
- adds r0, r1, 0
- adds r0, 0x70
- ldrh r1, [r0]
- mov r0, sp
- movs r2, 0
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- mov r0, sp
- movs r1, 0x10
- movs r2, 0xA
- bl MenuPrint_RightAligned
-_0809424A:
- add sp, 0x10
- pop {r0}
- bx r0
- thumb_func_end sub_8094218
-
- thumb_func_start sub_8094250
-sub_8094250: @ 8094250
- push {r4,r5,lr}
- sub sp, 0x10
- adds r5, r0, 0
- lsls r1, 16
- lsrs r3, r1, 16
- ldr r0, _08094294 @ =gSaveBlock2
- ldrh r4, [r0, 0xE]
- ldrb r2, [r0, 0x10]
- ldr r1, _08094298 @ =0x02000000
- ldrb r0, [r1, 0x1]
- cmp r0, 0
- beq _08094272
- adds r0, r1, 0
- adds r0, 0x74
- ldrh r4, [r0]
- adds r0, 0x2
- ldrh r2, [r0]
-_08094272:
- lsls r3, 16
- asrs r3, 16
- mov r0, sp
- adds r1, r4, 0
- bl FormatPlayTime
- adds r0, r5, 0
- mov r1, sp
- movs r2, 0x30
- movs r3, 0x1
- bl sub_8072C74
- add sp, 0x10
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08094294: .4byte gSaveBlock2
-_08094298: .4byte 0x02000000
- thumb_func_end sub_8094250
-
- thumb_func_start sub_809429C
-sub_809429C: @ 809429C
- push {r4-r6,lr}
- ldr r6, _080942F0 @ =0x02000000
- ldrb r0, [r6, 0x1]
- cmp r0, 0
- beq _080942EA
- ldr r0, _080942F4 @ =gStringVar1
- adds r1, r6, 0
- adds r1, 0x20
- bl StringCopy
- movs r5, 0
- strb r5, [r0]
- adds r0, 0x1
- adds r1, r6, 0
- adds r1, 0x30
- bl StringCopy
- ldr r4, _080942F4 @ =gStringVar1
- adds r0, r4, 0
- movs r1, 0x2
- movs r2, 0xE
- bl MenuPrint
- adds r1, r6, 0
- adds r1, 0x40
- adds r0, r4, 0
- bl StringCopy
- strb r5, [r0]
- adds r0, 0x1
- adds r1, r6, 0
- adds r1, 0x50
- bl StringCopy
- adds r0, r4, 0
- movs r1, 0x2
- movs r2, 0x10
- bl MenuPrint
-_080942EA:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080942F0: .4byte 0x02000000
-_080942F4: .4byte gStringVar1
- thumb_func_end sub_809429C
-
- thumb_func_start sub_80942F8
-sub_80942F8: @ 80942F8
- push {r4,r5,lr}
- ldr r4, _08094328 @ =gStringVar1
- ldr r5, _0809432C @ =0x02000094
- adds r0, r4, 0
- adds r1, r5, 0
- bl StringCopy
- ldrb r1, [r5, 0x8]
- adds r0, r4, 0
- bl ConvertInternationalString
- ldr r1, _08094330 @ =gOtherText_TrainersTrainerCard
- adds r0, r4, 0
- bl StringAppend
- adds r0, r4, 0
- movs r1, 0x1C
- movs r2, 0x2
- bl MenuPrint_RightAligned
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08094328: .4byte gStringVar1
-_0809432C: .4byte 0x02000094
-_08094330: .4byte gOtherText_TrainersTrainerCard
- thumb_func_end sub_80942F8
-
- thumb_func_start sub_8094334
-sub_8094334: @ 8094334
- push {lr}
- ldr r0, _0809434C @ =0x02000000
- ldrb r0, [r0, 0x8]
- cmp r0, 0
- beq _08094348
- ldr r0, _08094350 @ =gOtherText_FirstHOF
- movs r1, 0x3
- movs r2, 0x5
- bl MenuPrint
-_08094348:
- pop {r0}
- bx r0
- .align 2, 0
-_0809434C: .4byte 0x02000000
-_08094350: .4byte gOtherText_FirstHOF
- thumb_func_end sub_8094334
-
- thumb_func_start sub_8094354
-sub_8094354: @ 8094354
- push {r4,r5,lr}
- ldr r5, _080943B8 @ =0x02000000
- ldrb r0, [r5, 0x8]
- cmp r0, 0
- beq _080943B0
- ldr r2, _080943BC @ =gStringVar1
- adds r0, r5, 0
- adds r0, 0x6A
- ldrh r1, [r0]
- adds r0, r2, 0
- movs r2, 0x1
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- adds r2, r0, 0
- ldr r4, _080943C0 @ =gUnknown_083B5EF4
- adds r1, r4, 0
- bl StringCopy
- adds r2, r0, 0
- adds r0, r5, 0
- adds r0, 0x6C
- ldrh r1, [r0]
- adds r0, r2, 0
- movs r2, 0x2
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- adds r2, r0, 0
- adds r1, r4, 0
- bl StringCopy
- adds r2, r0, 0
- adds r0, r5, 0
- adds r0, 0x6E
- ldrh r1, [r0]
- adds r0, r2, 0
- movs r2, 0x2
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- ldr r0, _080943BC @ =gStringVar1
- movs r1, 0x1C
- movs r2, 0x5
- bl MenuPrint_RightAligned
-_080943B0:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080943B8: .4byte 0x02000000
-_080943BC: .4byte gStringVar1
-_080943C0: .4byte gUnknown_083B5EF4
- thumb_func_end sub_8094354
-
- thumb_func_start sub_80943C4
-sub_80943C4: @ 80943C4
- push {lr}
- ldr r0, _080943DC @ =0x02000000
- ldrb r0, [r0, 0x9]
- cmp r0, 0
- beq _080943D8
- ldr r0, _080943E0 @ =gOtherText_LinkCableBattles
- movs r1, 0x3
- movs r2, 0x7
- bl MenuPrint
-_080943D8:
- pop {r0}
- bx r0
- .align 2, 0
-_080943DC: .4byte 0x02000000
-_080943E0: .4byte gOtherText_LinkCableBattles
- thumb_func_end sub_80943C4
-
- thumb_func_start sub_80943E4
-sub_80943E4: @ 80943E4
- push {r4,lr}
- sub sp, 0x10
- ldr r4, _08094424 @ =0x02000000
- ldrb r0, [r4, 0x9]
- cmp r0, 0
- beq _0809441C
- adds r0, r4, 0
- adds r0, 0x78
- ldrh r1, [r0]
- mov r0, sp
- bl ConvertIntToDecimalString
- mov r0, sp
- movs r1, 0x16
- movs r2, 0x7
- bl MenuPrint_RightAligned
- adds r0, r4, 0
- adds r0, 0x7A
- ldrh r1, [r0]
- mov r0, sp
- bl ConvertIntToDecimalString
- mov r0, sp
- movs r1, 0x1C
- movs r2, 0x7
- bl MenuPrint_RightAligned
-_0809441C:
- add sp, 0x10
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08094424: .4byte 0x02000000
- thumb_func_end sub_80943E4
-
- thumb_func_start sub_8094428
-sub_8094428: @ 8094428
- push {lr}
- ldr r0, _08094440 @ =0x02000000
- ldrb r0, [r0, 0xA]
- cmp r0, 0
- beq _0809443C
- ldr r0, _08094444 @ =gOtherText_BattleTowerWinRecord
- movs r1, 0x3
- movs r2, 0xF
- bl MenuPrint
-_0809443C:
- pop {r0}
- bx r0
- .align 2, 0
-_08094440: .4byte 0x02000000
-_08094444: .4byte gOtherText_BattleTowerWinRecord
- thumb_func_end sub_8094428
-
- thumb_func_start sub_8094448
-sub_8094448: @ 8094448
- push {r4,lr}
- sub sp, 0x10
- ldr r4, _08094494 @ =0x02000000
- ldrb r0, [r4, 0xA]
- cmp r0, 0
- beq _0809448C
- adds r0, r4, 0
- adds r0, 0x7C
- ldrh r1, [r0]
- mov r0, sp
- movs r2, 0x18
- movs r3, 0x1
- bl sub_8072C44
- mov r0, sp
- movs r1, 0x70
- movs r2, 0x78
- movs r3, 0
- bl MenuPrint_PixelCoords
- adds r0, r4, 0
- adds r0, 0x7E
- ldrh r1, [r0]
- mov r0, sp
- movs r2, 0x18
- movs r3, 0x1
- bl sub_8072C44
- mov r0, sp
- movs r1, 0x95
- movs r2, 0x78
- movs r3, 0
- bl MenuPrint_PixelCoords
-_0809448C:
- add sp, 0x10
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08094494: .4byte 0x02000000
- thumb_func_end sub_8094448
-
- thumb_func_start sub_8094498
-sub_8094498: @ 8094498
- push {lr}
- ldr r0, _080944B0 @ =0x02000000
- ldrb r0, [r0, 0xB]
- cmp r0, 0
- beq _080944AC
- ldr r0, _080944B4 @ =gOtherText_ContestRecord
- movs r1, 0x3
- movs r2, 0xD
- bl MenuPrint
-_080944AC:
- pop {r0}
- bx r0
- .align 2, 0
-_080944B0: .4byte 0x02000000
-_080944B4: .4byte gOtherText_ContestRecord
- thumb_func_end sub_8094498
-
- thumb_func_start sub_80944B8
-sub_80944B8: @ 80944B8
- push {lr}
- sub sp, 0x8
- ldr r1, _080944E4 @ =0x02000000
- ldrb r0, [r1, 0xB]
- cmp r0, 0
- beq _080944DE
- adds r0, r1, 0
- adds r0, 0x80
- ldrh r1, [r0]
- mov r0, sp
- movs r2, 0x1
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- mov r0, sp
- movs r1, 0x1C
- movs r2, 0xD
- bl MenuPrint_RightAligned
-_080944DE:
- add sp, 0x8
- pop {r0}
- bx r0
- .align 2, 0
-_080944E4: .4byte 0x02000000
- thumb_func_end sub_80944B8
-
- thumb_func_start sub_80944E8
-sub_80944E8: @ 80944E8
- push {lr}
- ldr r0, _08094500 @ =0x02000000
- ldrb r0, [r0, 0xC]
- cmp r0, 0
- beq _080944FC
- ldr r0, _08094504 @ =gOtherText_MixingRecord
- movs r1, 0x3
- movs r2, 0xB
- bl MenuPrint
-_080944FC:
- pop {r0}
- bx r0
- .align 2, 0
-_08094500: .4byte 0x02000000
-_08094504: .4byte gOtherText_MixingRecord
- thumb_func_end sub_80944E8
-
- thumb_func_start sub_8094508
-sub_8094508: @ 8094508
- push {lr}
- sub sp, 0x8
- ldr r1, _08094534 @ =0x02000000
- ldrb r0, [r1, 0xC]
- cmp r0, 0
- beq _0809452E
- adds r0, r1, 0
- adds r0, 0x82
- ldrh r1, [r0]
- mov r0, sp
- movs r2, 0x1
- movs r3, 0x5
- bl ConvertIntToDecimalStringN
- mov r0, sp
- movs r1, 0x1C
- movs r2, 0xB
- bl MenuPrint_RightAligned
-_0809452E:
- add sp, 0x8
- pop {r0}
- bx r0
- .align 2, 0
-_08094534: .4byte 0x02000000
- thumb_func_end sub_8094508
-
- thumb_func_start sub_8094538
-sub_8094538: @ 8094538
- push {lr}
- ldr r0, _08094550 @ =0x02000000
- ldrb r0, [r0, 0xD]
- cmp r0, 0
- beq _0809454C
- ldr r0, _08094554 @ =gOtherText_TradeRecord
- movs r1, 0x3
- movs r2, 0x9
- bl MenuPrint
-_0809454C:
- pop {r0}
- bx r0
- .align 2, 0
-_08094550: .4byte 0x02000000
-_08094554: .4byte gOtherText_TradeRecord
- thumb_func_end sub_8094538
-
- thumb_func_start sub_8094558
-sub_8094558: @ 8094558
- push {lr}
- sub sp, 0x8
- ldr r1, _08094584 @ =0x02000000
- ldrb r0, [r1, 0xD]
- cmp r0, 0
- beq _0809457E
- adds r0, r1, 0
- adds r0, 0x84
- ldrh r1, [r0]
- mov r0, sp
- movs r2, 0x1
- movs r3, 0x5
- bl ConvertIntToDecimalStringN
- mov r0, sp
- movs r1, 0x1C
- movs r2, 0x9
- bl MenuPrint_RightAligned
-_0809457E:
- add sp, 0x8
- pop {r0}
- bx r0
- .align 2, 0
-_08094584: .4byte 0x02000000
- thumb_func_end sub_8094558
-
- thumb_func_start unref_sub_8094588
-unref_sub_8094588: @ 8094588
- push {r4,lr}
- lsls r0, 16
- lsrs r3, r0, 16
- lsls r1, 16
- lsrs r2, r1, 16
- ldr r4, _080945B4 @ =gOtherText_Boy
- ldr r0, _080945B8 @ =gSaveBlock2
- ldrb r0, [r0, 0x8]
- cmp r0, 0x1
- bne _0809459E
- ldr r4, _080945BC @ =gOtherText_Girl
-_0809459E:
- lsls r1, r3, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- bl MenuPrint
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080945B4: .4byte gOtherText_Boy
-_080945B8: .4byte gSaveBlock2
-_080945BC: .4byte gOtherText_Girl
- thumb_func_end unref_sub_8094588
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/tv.s b/asm/tv.s
index f30663f93..fd5fdeeac 100644
--- a/asm/tv.s
+++ b/asm/tv.s
@@ -1,4 +1,5 @@
.include "constants/gba_constants.inc"
+ .include "constants/misc_constants.inc"
.include "constants/species_constants.inc"
.include "asm/macros.inc"
@@ -637,7 +638,7 @@ sub_80BDC14: @ 80BDC14
adds r4, r1
strb r0, [r4]
movs r0, 0x6
- bl sav12_xor_increment
+ bl IncrementGameStat
pop {r4-r6}
pop {r0}
bx r0
@@ -940,7 +941,7 @@ _080BDEA6:
sub_80BDEAC: @ 80BDEAC
push {lr}
adds r1, r0, 0
- movs r2, 0x2
+ movs r2, GAME_LANGUAGE
ldrb r0, [r1]
cmp r0, 0xFC
bne _080BDEC0
@@ -1104,7 +1105,7 @@ _080BDFDE:
strh r0, [r5, 0x10]
adds r0, r5, 0
bl sub_80BE138
- movs r0, 0x2
+ movs r0, GAME_LANGUAGE
strb r0, [r5, 0x2]
adds r0, r6, 0
bl sub_80BDEAC
@@ -1135,7 +1136,7 @@ sub_80BE028: @ 80BE028
movs r1, 0x18
bl sub_80BF55C
movs r0, 0x5
- bl sub_8053108
+ bl GetGameStat
strh r0, [r4, 0x6]
movs r0, 0x19
strb r0, [r4]
@@ -1237,7 +1238,7 @@ _080BE0A2:
bl StringCopy
adds r0, r4, 0
bl sub_80BE138
- movs r0, 0x2
+ movs r0, GAME_LANGUAGE
strb r0, [r4, 0x2]
_080BE112:
pop {r4-r7}
@@ -1258,7 +1259,7 @@ _080BE134: .4byte gSaveBlock2
sub_80BE138: @ 80BE138
push {r4,lr}
adds r4, r0, 0
- bl sub_80BFB94
+ bl GetPlayerTrainerId
strb r0, [r4, 0x1E]
lsrs r2, r0, 8
strb r2, [r4, 0x1F]
@@ -1281,7 +1282,7 @@ sub_80BE138: @ 80BE138
sub_80BE160: @ 80BE160
push {r4,lr}
adds r4, r0, 0
- bl sub_80BFB94
+ bl GetPlayerTrainerId
adds r1, r4, 0
adds r1, 0x20
strb r0, [r1]
@@ -1367,7 +1368,7 @@ sub_80BE188: @ 80BE188
strb r0, [r4, 0x13]
adds r0, r4, 0
bl sub_80BE160
- movs r0, 0x2
+ movs r0, GAME_LANGUAGE
strb r0, [r4, 0x1E]
adds r0, r5, 0
bl sub_80BDEAC
@@ -1558,7 +1559,7 @@ _080BE39E:
strb r0, [r6, 0x1B]
adds r0, r6, 0
bl sub_80BE160
- movs r0, 0x2
+ movs r0, GAME_LANGUAGE
strb r0, [r6, 0x1D]
pop {r4-r6}
pop {r0}
@@ -1639,7 +1640,7 @@ _080BE420:
bl StringCopy
adds r0, r5, 0
bl sub_80BE138
- movs r0, 0x2
+ movs r0, GAME_LANGUAGE
strb r0, [r5, 0x3]
_080BE458:
pop {r4-r7}
@@ -1654,544 +1655,8 @@ _080BE470: .4byte gMapHeader
_080BE474: .4byte gSaveBlock2
thumb_func_end sub_80BE3BC
- thumb_func_start sub_80BE478
-sub_80BE478: @ 80BE478
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- bl sub_80BF478
- ldr r0, _080BE554 @ =gScriptResult
- ldrh r0, [r0]
- cmp r0, 0x1
- beq _080BE548
- ldr r0, _080BE558 @ =gSpecialVar_0x8004
- mov r8, r0
- ldrh r0, [r0]
- movs r7, 0x64
- muls r0, r7
- ldr r6, _080BE55C @ =gPlayerParty
- adds r0, r6
- ldr r4, _080BE560 @ =gStringVar1
- movs r1, 0x2
- adds r2, r4, 0
- bl GetMonData
- ldr r1, _080BE564 @ =gSaveBlock2
- mov r9, r1
- mov r0, r9
- bl StringLength
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bls _080BE548
- adds r0, r4, 0
- bl StringLength
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bls _080BE548
- ldr r0, _080BE568 @ =gUnknown_03005D38
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r4, r0, 3
- adds r4, r0
- lsls r4, 2
- ldr r0, _080BE56C @ =gSaveBlock1 + 0x2738
- adds r4, r0
- movs r0, 0x5
- strb r0, [r4]
- movs r5, 0x1
- strb r5, [r4, 0x1]
- mov r1, r8
- ldrh r0, [r1]
- muls r0, r7
- adds r0, r6
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- strh r0, [r4, 0x2]
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- bl __umodsi3
- strb r0, [r4, 0x1A]
- bl Random
- lsls r0, 16
- lsrs r0, 16
- ands r0, r5
- strb r0, [r4, 0x1B]
- ldrh r0, [r4, 0x2]
- bl sub_80BF674
- strh r0, [r4, 0x1C]
- adds r0, r4, 0
- adds r0, 0xF
- mov r1, r9
- bl StringCopy
- mov r1, r8
- ldrh r0, [r1]
- muls r0, r7
- adds r0, r6
- adds r5, r4, 0x4
- movs r1, 0x2
- adds r2, r5, 0
- bl GetMonData
- adds r0, r4, 0
- bl sub_80BE160
- movs r0, 0x2
- strb r0, [r4, 0x1E]
- adds r0, r5, 0
- bl sub_80BDEAC
- strb r0, [r4, 0x1F]
- adds r0, r5, 0
- bl StripExtCtrlCodes
-_080BE548:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080BE554: .4byte gScriptResult
-_080BE558: .4byte gSpecialVar_0x8004
-_080BE55C: .4byte gPlayerParty
-_080BE560: .4byte gStringVar1
-_080BE564: .4byte gSaveBlock2
-_080BE568: .4byte gUnknown_03005D38
-_080BE56C: .4byte gSaveBlock1 + 0x2738
- thumb_func_end sub_80BE478
-
- thumb_func_start StartMassOutbreak
-StartMassOutbreak: @ 80BE570
- push {r4,lr}
- ldr r0, _080BE5F0 @ =gSpecialVar_0x8004
- ldrh r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r2, _080BE5F4 @ =gSaveBlock1 + 0x2738
- adds r0, r2
- ldrh r3, [r0, 0xC]
- movs r4, 0xF1
- lsls r4, 2
- adds r1, r2, r4
- strh r3, [r1]
- ldrb r3, [r0, 0x10]
- adds r4, 0x2
- adds r1, r2, r4
- strb r3, [r1]
- ldrb r3, [r0, 0x11]
- adds r4, 0x1
- adds r1, r2, r4
- strb r3, [r1]
- ldrb r3, [r0, 0x14]
- adds r4, 0x1
- adds r1, r2, r4
- strb r3, [r1]
- ldrb r3, [r0, 0x2]
- adds r4, 0x1
- adds r1, r2, r4
- strb r3, [r1]
- ldrh r3, [r0, 0xE]
- adds r4, 0x1
- adds r1, r2, r4
- strh r3, [r1]
- ldrh r3, [r0, 0x4]
- adds r4, 0x2
- adds r1, r2, r4
- strh r3, [r1]
- ldrh r3, [r0, 0x6]
- adds r4, 0x2
- adds r1, r2, r4
- strh r3, [r1]
- ldrh r3, [r0, 0x8]
- adds r4, 0x2
- adds r1, r2, r4
- strh r3, [r1]
- ldrh r3, [r0, 0xA]
- adds r4, 0x2
- adds r1, r2, r4
- strh r3, [r1]
- ldrb r3, [r0, 0x3]
- adds r4, 0x2
- adds r1, r2, r4
- strb r3, [r1]
- ldrb r1, [r0, 0x13]
- ldr r3, _080BE5F8 @ =0x000003d5
- adds r0, r2, r3
- strb r1, [r0]
- adds r4, 0x2
- adds r2, r4
- movs r0, 0x2
- strh r0, [r2]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080BE5F0: .4byte gSpecialVar_0x8004
-_080BE5F4: .4byte gSaveBlock1 + 0x2738
-_080BE5F8: .4byte 0x000003d5
- thumb_func_end StartMassOutbreak
-
- thumb_func_start sub_80BE5FC
-sub_80BE5FC: @ 80BE5FC
- push {r4,lr}
- ldr r0, _080BE64C @ =gUnknown_03005D38
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r4, r0, 3
- adds r4, r0
- lsls r4, 2
- ldr r0, _080BE650 @ =gSaveBlock1 + 0x2738
- adds r4, r0
- movs r0, 0x1
- strb r0, [r4]
- strb r0, [r4, 0x1]
- adds r0, r4, 0
- adds r0, 0x10
- ldr r1, _080BE654 @ =gSaveBlock2
- bl StringCopy
- bl GetLeadMonIndex
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r0, r1
- ldr r1, _080BE658 @ =gPlayerParty
- adds r0, r1
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- strh r0, [r4, 0x2]
- adds r0, r4, 0
- bl sub_80BE160
- movs r0, 0x2
- strb r0, [r4, 0x18]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080BE64C: .4byte gUnknown_03005D38
-_080BE650: .4byte gSaveBlock1 + 0x2738
-_080BE654: .4byte gSaveBlock2
-_080BE658: .4byte gPlayerParty
- thumb_func_end sub_80BE5FC
-
- thumb_func_start sub_80BE65C
-sub_80BE65C: @ 80BE65C
- push {r4-r6,lr}
- ldr r0, _080BE694 @ =gUnknown_03005D38
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r4, r0, 3
- adds r4, r0
- lsls r4, 2
- ldr r0, _080BE698 @ =gSaveBlock1 + 0x2738
- adds r4, r0
- movs r6, 0
- movs r5, 0x2
- strb r5, [r4]
- movs r0, 0x1
- strb r0, [r4, 0x1]
- adds r0, r4, 0
- adds r0, 0x10
- ldr r1, _080BE69C @ =gSaveBlock2
- bl StringCopy
- strh r6, [r4, 0x2]
- adds r0, r4, 0
- bl sub_80BE160
- strb r5, [r4, 0x18]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080BE694: .4byte gUnknown_03005D38
-_080BE698: .4byte gSaveBlock1 + 0x2738
-_080BE69C: .4byte gSaveBlock2
- thumb_func_end sub_80BE65C
-
- thumb_func_start sub_80BE6A0
-sub_80BE6A0: @ 80BE6A0
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- ldr r0, _080BE760 @ =gUnknown_03005D38
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r4, r0, 3
- adds r4, r0
- lsls r4, 2
- ldr r0, _080BE764 @ =gSaveBlock1 + 0x2738
- adds r4, r0
- movs r0, 0x3
- strb r0, [r4]
- movs r0, 0x1
- strb r0, [r4, 0x1]
- bl GetLeadMonIndex
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- mov r8, r1
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- ldr r6, _080BE768 @ =gPlayerParty
- adds r0, r6
- movs r1, 0x20
- movs r2, 0
- bl GetMonData
- lsrs r0, 4
- movs r1, 0xF
- ands r0, r1
- ldrb r2, [r4, 0x4]
- movs r1, 0x10
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r4, 0x4]
- ldr r0, _080BE76C @ =gSpecialVar_0x8007
- ldrb r0, [r0]
- lsls r0, 4
- movs r2, 0xF
- ands r1, r2
- orrs r1, r0
- strb r1, [r4, 0x4]
- adds r0, r4, 0x5
- ldr r1, _080BE770 @ =gSaveBlock2
- bl StringCopy
- bl GetLeadMonIndex
- lsls r0, 24
- lsrs r0, 24
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- adds r0, r6
- adds r5, r4, 0
- adds r5, 0x10
- movs r1, 0x2
- adds r2, r5, 0
- bl GetMonData
- bl GetLeadMonIndex
- lsls r0, 24
- lsrs r0, 24
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- adds r0, r6
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- strh r0, [r4, 0x2]
- adds r0, r4, 0
- bl sub_80BE160
- movs r0, 0x2
- strb r0, [r4, 0xD]
- adds r0, r5, 0
- bl sub_80BDEAC
- strb r0, [r4, 0xE]
- adds r0, r5, 0
- bl StripExtCtrlCodes
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080BE760: .4byte gUnknown_03005D38
-_080BE764: .4byte gSaveBlock1 + 0x2738
-_080BE768: .4byte gPlayerParty
-_080BE76C: .4byte gSpecialVar_0x8007
-_080BE770: .4byte gSaveBlock2
- thumb_func_end sub_80BE6A0
-
- thumb_func_start nullsub_21
-nullsub_21: @ 80BE774
- bx lr
- thumb_func_end nullsub_21
- thumb_func_start sub_80BE778
-sub_80BE778: @ 80BE778
- push {r4-r6,lr}
- ldr r0, _080BE83C @ =0x00000804
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _080BE836
- movs r1, 0
- ldr r3, _080BE840 @ =gSaveBlock1
- ldr r2, _080BE844 @ =0x00002738
-_080BE78C:
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0x29
- beq _080BE836
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x17
- bls _080BE78C
- ldr r0, _080BE848 @ =0x00000147
- bl sub_80BF77C
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- bne _080BE836
- ldr r6, _080BE84C @ =gSaveBlock1 + 0x2738
- adds r0, r6, 0
- bl sub_80BF720
- ldr r4, _080BE850 @ =gUnknown_03005D38
- strb r0, [r4]
- lsls r0, 24
- asrs r0, 24
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- beq _080BE836
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x5
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0
- ldrsb r1, [r4, r1]
- lsls r4, r1, 3
- adds r4, r1
- lsls r4, 2
- adds r4, r6
- movs r1, 0x29
- strb r1, [r4]
- movs r3, 0x1
- strb r3, [r4, 0x1]
- ldr r2, _080BE854 @ =gUnknown_083D13F8
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r0, [r1, 0xA]
- strb r0, [r4, 0x14]
- strb r5, [r4, 0x2]
- strb r5, [r4, 0x3]
- ldrh r0, [r1]
- movs r2, 0
- strh r0, [r4, 0xC]
- strh r5, [r4, 0xE]
- ldrh r0, [r1, 0x2]
- strh r0, [r4, 0x4]
- ldrh r0, [r1, 0x4]
- strh r0, [r4, 0x6]
- ldrh r0, [r1, 0x6]
- strh r0, [r4, 0x8]
- ldrh r0, [r1, 0x8]
- strh r0, [r4, 0xA]
- ldrb r0, [r1, 0xB]
- strb r0, [r4, 0x10]
- strb r2, [r4, 0x11]
- strb r2, [r4, 0x12]
- movs r0, 0x32
- strb r0, [r4, 0x13]
- strb r2, [r4, 0x15]
- strh r3, [r4, 0x16]
- adds r0, r4, 0
- bl sub_80BE160
- movs r0, 0x2
- strb r0, [r4, 0x18]
-_080BE836:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080BE83C: .4byte 0x00000804
-_080BE840: .4byte gSaveBlock1
-_080BE844: .4byte 0x00002738
-_080BE848: .4byte 0x00000147
-_080BE84C: .4byte gSaveBlock1 + 0x2738
-_080BE850: .4byte gUnknown_03005D38
-_080BE854: .4byte gUnknown_083D13F8
- thumb_func_end sub_80BE778
-
- thumb_func_start EndMassOutbreak
-EndMassOutbreak: @ 80BE858
- push {r4,lr}
- ldr r0, _080BE8B4 @ =gSaveBlock1
- ldr r2, _080BE8B8 @ =0x00002afc
- adds r1, r0, r2
- movs r3, 0
- movs r2, 0
- strh r2, [r1]
- ldr r4, _080BE8BC @ =0x00002afe
- adds r1, r0, r4
- strb r3, [r1]
- adds r4, 0x1
- adds r1, r0, r4
- strb r3, [r1]
- adds r4, 0x1
- adds r1, r0, r4
- strb r3, [r1]
- adds r4, 0x1
- adds r1, r0, r4
- strb r3, [r1]
- adds r4, 0x1
- adds r1, r0, r4
- strh r2, [r1]
- adds r4, 0x2
- adds r1, r0, r4
- strh r2, [r1]
- adds r4, 0x2
- adds r1, r0, r4
- strh r2, [r1]
- adds r4, 0x2
- adds r1, r0, r4
- strh r2, [r1]
- adds r4, 0x2
- adds r1, r0, r4
- strh r2, [r1]
- adds r4, 0x2
- adds r1, r0, r4
- strb r3, [r1]
- adds r4, 0x1
- adds r1, r0, r4
- strb r3, [r1]
- ldr r1, _080BE8C0 @ =0x00002b0e
- adds r0, r1
- strh r2, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080BE8B4: .4byte gSaveBlock1
-_080BE8B8: .4byte 0x00002afc
-_080BE8BC: .4byte 0x00002afe
-_080BE8C0: .4byte 0x00002b0e
- thumb_func_end EndMassOutbreak
-
- thumb_func_start sub_80BE8C4
-sub_80BE8C4: @ 80BE8C4
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r4, 0
- bl sub_80BE8EC
- adds r0, r4, 0
- bl UpdateMassOutbreakTimeLeft
- adds r0, r4, 0
- bl sub_80BEE84
- adds r0, r4, 0
- bl sub_80BEA5C
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80BE8C4
+ .section .text_80BE8EC
thumb_func_start sub_80BE8EC
sub_80BE8EC: @ 80BE8EC
@@ -2368,7 +1833,7 @@ sub_80BE9D4: @ 80BE9D4
bl StringCopy
adds r0, r4, 0
bl sub_80BE138
- movs r0, 0x2
+ movs r0, GAME_LANGUAGE
strb r0, [r4, 0x6]
_080BEA36:
pop {r4,r5}
@@ -2456,7 +1921,7 @@ sub_80BEA88: @ 80BEA88
ldrh r0, [r5, 0x2]
strh r0, [r4, 0x2]
movs r0, 0x5
- bl sub_8053108
+ bl GetGameStat
ldrh r1, [r5, 0x6]
subs r0, r1
strh r0, [r4, 0x6]
@@ -2472,7 +1937,7 @@ sub_80BEA88: @ 80BEA88
bl StringCopy
adds r0, r4, 0
bl sub_80BE138
- movs r0, 0x2
+ movs r0, GAME_LANGUAGE
strb r0, [r4, 0xB]
_080BEB04:
pop {r4-r7}
@@ -2760,7 +2225,7 @@ _080BED00:
asrs r0, 24
cmp r0, 0x13
bgt _080BED40
- ldr r1, _080BED3C @ =gUnknown_083D1444
+ ldr r1, _080BED3C @ =gTVNewsTextGroup2
subs r2, 0x1
b _080BED44
.align 2, 0
@@ -2768,9 +2233,9 @@ _080BED2C: .4byte gSaveBlock1
_080BED30: .4byte 0x00002abe
_080BED34: .4byte 0x00002abd
_080BED38: .4byte gLocalTime
-_080BED3C: .4byte gUnknown_083D1444
+_080BED3C: .4byte gTVNewsTextGroup2
_080BED40:
- ldr r1, _080BED54 @ =gUnknown_083D1454
+ ldr r1, _080BED54 @ =gTVNewsTextGroup3
ldr r2, _080BED58 @ =0x00002abc
_080BED44:
adds r0, r4, r2
@@ -2781,7 +2246,7 @@ _080BED44:
bl ShowFieldMessage
b _080BED82
.align 2, 0
-_080BED54: .4byte gUnknown_083D1454
+_080BED54: .4byte gTVNewsTextGroup3
_080BED58: .4byte 0x00002abc
_080BED5C:
ldrh r1, [r1]
@@ -2793,7 +2258,7 @@ _080BED5C:
adds r1, r4, r0
movs r0, 0
strb r0, [r1]
- ldr r1, _080BED98 @ =gUnknown_083D1434
+ ldr r1, _080BED98 @ =gTVNewsTextGroup1
ldr r2, _080BED9C @ =0x00002abc
adds r0, r4, r2
ldrb r0, [r0]
@@ -2812,7 +2277,7 @@ _080BED86:
.align 2, 0
_080BED90: .4byte gStringVar1
_080BED94: .4byte 0x00002abd
-_080BED98: .4byte gUnknown_083D1434
+_080BED98: .4byte gTVNewsTextGroup1
_080BED9C: .4byte 0x00002abc
_080BEDA0: .4byte gScriptResult
thumb_func_end sub_80BECE8
@@ -3367,7 +2832,7 @@ sub_80BF1B4: @ 80BF1B4
lsls r0, 24
lsrs r6, r0, 24
ldr r7, _080BF1F4 @ =gSaveBlock1 + 0x2738
- bl sub_80BFB94
+ bl GetPlayerTrainerId
adds r5, r0, 0
movs r4, 0x5
_080BF1C4:
@@ -3780,46 +3245,7 @@ _080BF4EC: .4byte gUnknown_03005D38
_080BF4F0: .4byte gSaveBlock1 + 0x2738
thumb_func_end sub_80BF4BC
- thumb_func_start sub_80BF4F4
-sub_80BF4F4: @ 80BF4F4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- adds r4, r0, 0
- muls r4, r1
- ldr r0, _080BF530 @ =gPlayerParty
- adds r4, r0
- ldr r5, _080BF534 @ =gStringVar1
- adds r0, r4, 0
- movs r1, 0x2
- adds r2, r5, 0
- bl GetMonData
- adds r0, r4, 0
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- movs r1, 0xB
- muls r0, r1
- ldr r1, _080BF538 @ =gSpeciesNames
- adds r0, r1
- adds r1, r5, 0
- bl StringCompareWithoutExtCtrlCodes
- cmp r0, 0
- beq _080BF53C
- movs r0, 0x1
- b _080BF53E
- .align 2, 0
-_080BF530: .4byte gPlayerParty
-_080BF534: .4byte gStringVar1
-_080BF538: .4byte gSpeciesNames
-_080BF53C:
- movs r0, 0
-_080BF53E:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80BF4F4
+.section .text_80BF544
thumb_func_start sub_80BF544
sub_80BF544: @ 80BF544
@@ -4628,7 +4054,7 @@ _080BFB0C: .4byte gStringVar1
thumb_func_start sub_80BFB10
sub_80BFB10: @ 80BFB10
push {r4,lr}
- bl sub_80BFB94
+ bl GetPlayerTrainerId
adds r4, r0, 0
ldr r0, _080BFB38 @ =gSpecialVar_0x8004
ldrh r1, [r0]
@@ -4701,8 +4127,8 @@ _080BFB90:
bx r1
thumb_func_end sub_80BFB54
- thumb_func_start sub_80BFB94
-sub_80BFB94: @ 80BFB94
+ thumb_func_start GetPlayerTrainerId
+GetPlayerTrainerId: @ 80BFB94
ldr r2, _080BFBAC @ =gSaveBlock2
ldrb r0, [r2, 0xD]
lsls r0, 24
@@ -4717,7 +4143,7 @@ sub_80BFB94: @ 80BFB94
bx lr
.align 2, 0
_080BFBAC: .4byte gSaveBlock2
- thumb_func_end sub_80BFB94
+ thumb_func_end GetPlayerTrainerId
thumb_func_start CheckForBigMovieOrEmergencyNewsOnTV
CheckForBigMovieOrEmergencyNewsOnTV: @ 80BFBB0
@@ -6686,7 +6112,7 @@ _080C0B74:
_080C0B78:
strb r0, [r1]
_080C0B7A:
- ldr r0, _080C0B98 @ =gUnknown_083D1524
+ ldr r0, _080C0B98 @ =gTVBravoTrainerTextGroup
lsls r1, r5, 2
adds r1, r0
ldr r0, [r1]
@@ -6698,7 +6124,7 @@ _080C0B7A:
_080C0B8C: .4byte gStringVar1
_080C0B90: .4byte gSpeciesNames
_080C0B94: .4byte gUnknown_020387E8
-_080C0B98: .4byte gUnknown_083D1524
+_080C0B98: .4byte gTVBravoTrainerTextGroup
thumb_func_end DoTVShowBravoTrainerPokemonProfile
thumb_func_start DoTVShowBravoTrainerBattleTowerProfile
@@ -6959,7 +6385,7 @@ _080C0DC0:
bl StringCopy
bl TVShowDone
_080C0DDE:
- ldr r0, _080C0DFC @ =gUnknown_083D1548
+ ldr r0, _080C0DFC @ =gTVBravoTrainerBattleTowerTextGroup
lsls r1, r5, 2
adds r1, r0
ldr r0, [r1]
@@ -6971,7 +6397,7 @@ _080C0DDE:
_080C0DF0: .4byte gStringVar1
_080C0DF4: .4byte gStringVar2
_080C0DF8: .4byte gSpeciesNames
-_080C0DFC: .4byte gUnknown_083D1548
+_080C0DFC: .4byte gTVBravoTrainerBattleTowerTextGroup
thumb_func_end DoTVShowBravoTrainerBattleTowerProfile
thumb_func_start DoTVShowTodaysSmartShopper
@@ -7214,7 +6640,7 @@ _080C1004:
bl TVShowConvertInternationalString
bl TVShowDone
_080C1014:
- ldr r0, _080C102C @ =gUnknown_083D14F0
+ ldr r0, _080C102C @ =gTVSmartShopperTextGroup
lsls r1, r6, 2
adds r1, r0
ldr r0, [r1]
@@ -7224,7 +6650,7 @@ _080C1014:
bx r0
.align 2, 0
_080C1028: .4byte gStringVar1
-_080C102C: .4byte gUnknown_083D14F0
+_080C102C: .4byte gTVSmartShopperTextGroup
thumb_func_end DoTVShowTodaysSmartShopper
thumb_func_start DoTVShowTheNameRaterShow
@@ -7598,7 +7024,7 @@ _080C1370:
bl TVShowConvertInternationalString
bl TVShowDone
_080C138A:
- ldr r0, _080C13A8 @ =gUnknown_083D1584
+ ldr r0, _080C13A8 @ =gTVNameRaterTextGroup
lsls r1, r7, 2
adds r1, r0
ldr r0, [r1]
@@ -7610,7 +7036,7 @@ _080C138A:
.align 2, 0
_080C13A0: .4byte gStringVar1
_080C13A4: .4byte gStringVar2
-_080C13A8: .4byte gUnknown_083D1584
+_080C13A8: .4byte gTVNameRaterTextGroup
thumb_func_end DoTVShowTheNameRaterShow
thumb_func_start DoTVShowPokemonTodaySuccessfulCapture
@@ -7854,7 +7280,7 @@ _080C15D4: .4byte gUnknown_020387E8
_080C15D8:
bl TVShowDone
_080C15DC:
- ldr r0, _080C15F0 @ =gUnknown_083D14C0
+ ldr r0, _080C15F0 @ =gTVPokemonTodayTextGroup
lsls r1, r6, 2
adds r1, r0
ldr r0, [r1]
@@ -7863,7 +7289,7 @@ _080C15DC:
pop {r0}
bx r0
.align 2, 0
-_080C15F0: .4byte gUnknown_083D14C0
+_080C15F0: .4byte gTVPokemonTodayTextGroup
thumb_func_end DoTVShowPokemonTodaySuccessfulCapture
thumb_func_start DoTVShowPokemonTodayFailedCapture
@@ -8011,7 +7437,7 @@ _080C1734: .4byte gUnknown_020387E8
_080C1738:
bl TVShowDone
_080C173C:
- ldr r0, _080C1750 @ =gUnknown_083D15D0
+ ldr r0, _080C1750 @ =gTVPokemonTodayFailedCaptureTextGroup
lsls r1, r5, 2
adds r1, r0
ldr r0, [r1]
@@ -8020,7 +7446,7 @@ _080C173C:
pop {r0}
bx r0
.align 2, 0
-_080C1750: .4byte gUnknown_083D15D0
+_080C1750: .4byte gTVPokemonTodayFailedCaptureTextGroup
thumb_func_end DoTVShowPokemonTodayFailedCapture
thumb_func_start DoTVShowPokemonFanClubLetter
@@ -8223,7 +7649,7 @@ _080C193C:
_080C1958: .4byte gStringVar4
_080C195C: .4byte gUnknown_020387E8
_080C1960:
- ldr r0, _080C1974 @ =gUnknown_083D1470
+ ldr r0, _080C1974 @ =gTVFanClubTextGroup
lsls r1, r7, 2
adds r1, r0
ldr r0, [r1]
@@ -8233,7 +7659,7 @@ _080C196C:
pop {r0}
bx r0
.align 2, 0
-_080C1974: .4byte gUnknown_083D1470
+_080C1974: .4byte gTVFanClubTextGroup
thumb_func_end DoTVShowPokemonFanClubLetter
thumb_func_start DoTVShowRecentHappenings
@@ -8370,7 +7796,7 @@ _080C1ACC:
_080C1AE8: .4byte gStringVar4
_080C1AEC: .4byte gUnknown_020387E8
_080C1AF0:
- ldr r0, _080C1B04 @ =gUnknown_083D1490
+ ldr r0, _080C1B04 @ =gTVRecentHappeningsTextGroup
lsls r1, r6, 2
adds r1, r0
ldr r0, [r1]
@@ -8380,7 +7806,7 @@ _080C1AFC:
pop {r0}
bx r0
.align 2, 0
-_080C1B04: .4byte gUnknown_083D1490
+_080C1B04: .4byte gTVRecentHappeningsTextGroup
thumb_func_end DoTVShowRecentHappenings
thumb_func_start DoTVShowPokemonFanClubOpinions
@@ -8474,7 +7900,7 @@ _080C1BC0:
bl sub_80EB3FC
bl TVShowDone
_080C1BD6:
- ldr r0, _080C1BF0 @ =gUnknown_083D14A8
+ ldr r0, _080C1BF0 @ =gTVFanClubOpinionsTextGroup
lsls r1, r5, 2
adds r1, r0
ldr r0, [r1]
@@ -8485,7 +7911,7 @@ _080C1BD6:
.align 2, 0
_080C1BE8: .4byte gStringVar1
_080C1BEC: .4byte gStringVar3
-_080C1BF0: .4byte gUnknown_083D14A8
+_080C1BF0: .4byte gTVFanClubOpinionsTextGroup
thumb_func_end DoTVShowPokemonFanClubOpinions
thumb_func_start nullsub_22
@@ -8493,48 +7919,7 @@ nullsub_22: @ 80C1BF4
bx lr
thumb_func_end nullsub_22
- thumb_func_start DoTVShowPokemonNewsMassOutbreak
-DoTVShowPokemonNewsMassOutbreak: @ 80C1BF8
- push {r4,lr}
- ldr r0, _080C1C40 @ =gSpecialVar_0x8004
- ldrh r0, [r0]
- lsls r4, r0, 3
- adds r4, r0
- lsls r4, 2
- ldr r0, _080C1C44 @ =gSaveBlock1 + 0x2738
- adds r4, r0
- ldr r0, _080C1C48 @ =gStringVar1
- ldrb r1, [r4, 0x10]
- movs r2, 0
- bl sub_80FBFB4
- ldr r0, _080C1C4C @ =gStringVar2
- ldrh r2, [r4, 0xC]
- movs r1, 0xB
- muls r1, r2
- ldr r2, _080C1C50 @ =gSpeciesNames
- adds r1, r2
- bl StringCopy
- bl TVShowDone
- bl StartMassOutbreak
- ldr r1, _080C1C54 @ =gUnknown_083D14BC
- ldr r0, _080C1C58 @ =gUnknown_020387E8
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- bl ShowFieldMessage
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C1C40: .4byte gSpecialVar_0x8004
-_080C1C44: .4byte gSaveBlock1 + 0x2738
-_080C1C48: .4byte gStringVar1
-_080C1C4C: .4byte gStringVar2
-_080C1C50: .4byte gSpeciesNames
-_080C1C54: .4byte gUnknown_083D14BC
-_080C1C58: .4byte gUnknown_020387E8
- thumb_func_end DoTVShowPokemonNewsMassOutbreak
+.section .text_80C1C5C
thumb_func_start DoTVShowInSearchOfTrainers
DoTVShowInSearchOfTrainers: @ 80C1C5C
@@ -8723,7 +8108,7 @@ _080C1DB6:
strb r0, [r1]
bl TakeTVShowInSearchOfTrainersOffTheAir
_080C1DF8:
- ldr r0, _080C1E34 @ =gUnknown_083D1600
+ ldr r0, _080C1E34 @ =gTVGabbyAndTyTextGroup
lsls r1, r7, 2
adds r1, r0
ldr r0, [r1]
@@ -8742,7 +8127,7 @@ _080C1E24: .4byte gStringVar3
_080C1E28: .4byte 0x00002b12
_080C1E2C: .4byte gScriptResult
_080C1E30: .4byte gUnknown_020387E8
-_080C1E34: .4byte gUnknown_083D1600
+_080C1E34: .4byte gTVGabbyAndTyTextGroup
thumb_func_end DoTVShowInSearchOfTrainers
thumb_func_start DoTVShowPokemonAngler
@@ -8824,7 +8209,7 @@ _080C1EBC:
bl sub_80BF088
bl TVShowDone
_080C1EE4:
- ldr r0, _080C1F04 @ =gUnknown_083D15EC
+ ldr r0, _080C1F04 @ =gTVFishingGuruAdviceTextGroup
lsls r1, r5, 2
adds r1, r0
ldr r0, [r1]
@@ -8836,7 +8221,7 @@ _080C1EE4:
_080C1EF8: .4byte gStringVar1
_080C1EFC: .4byte gStringVar2
_080C1F00: .4byte gSpeciesNames
-_080C1F04: .4byte gUnknown_083D15EC
+_080C1F04: .4byte gTVFishingGuruAdviceTextGroup
thumb_func_end DoTVShowPokemonAngler
thumb_func_start DoTVShowTheWorldOfMasters
@@ -8920,7 +8305,7 @@ _080C1F8C:
bl StringCopy
bl TVShowDone
_080C1FB6:
- ldr r0, _080C1FD8 @ =gUnknown_083D15F4
+ ldr r0, _080C1FD8 @ =gTVWorldOfMastersTextGroup
lsls r1, r5, 2
adds r1, r0
ldr r0, [r1]
@@ -8933,45 +8318,8 @@ _080C1FC8: .4byte gStringVar1
_080C1FCC: .4byte gStringVar2
_080C1FD0: .4byte gStringVar3
_080C1FD4: .4byte gSpeciesNames
-_080C1FD8: .4byte gUnknown_083D15F4
+_080C1FD8: .4byte gTVWorldOfMastersTextGroup
thumb_func_end DoTVShowTheWorldOfMasters
- thumb_func_start TVShowDone
-TVShowDone: @ 80C1FDC
- ldr r1, _080C2000 @ =gScriptResult
- movs r0, 0x1
- strh r0, [r1]
- ldr r1, _080C2004 @ =gUnknown_020387E8
- movs r0, 0
- strb r0, [r1]
- ldr r2, _080C2008 @ =gSaveBlock1
- ldr r0, _080C200C @ =gSpecialVar_0x8004
- ldrh r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r1, _080C2010 @ =0x00002739
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
- bx lr
- .align 2, 0
-_080C2000: .4byte gScriptResult
-_080C2004: .4byte gUnknown_020387E8
-_080C2008: .4byte gSaveBlock1
-_080C200C: .4byte gSpecialVar_0x8004
-_080C2010: .4byte 0x00002739
- thumb_func_end TVShowDone
-
- thumb_func_start sub_80C2014
-sub_80C2014: @ 80C2014
- ldr r1, _080C201C @ =gUnknown_020387E8
- movs r0, 0
- strb r0, [r1]
- bx lr
- .align 2, 0
-_080C201C: .4byte gUnknown_020387E8
- thumb_func_end sub_80C2014
.align 2, 0 @ Don't pad with nop.
diff --git a/asm/unknown_debug_menu.s b/asm/unknown_debug_menu.s
new file mode 100644
index 000000000..138fdb876
--- /dev/null
+++ b/asm/unknown_debug_menu.s
@@ -0,0 +1,133 @@
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start unref_sub_814A414
+unref_sub_814A414: @ 814A414
+ push {lr}
+ sub sp, 0x8
+ bl MenuZeroFillScreen
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x10
+ movs r3, 0x12
+ bl MenuDrawTextWindow
+ ldr r3, _0814A458 @ =gUnknown_0842C29C
+ movs r0, 0x2
+ movs r1, 0x1
+ movs r2, 0x8
+ bl PrintMenuItems
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0xF
+ str r0, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0x1
+ movs r2, 0x1
+ movs r3, 0x8
+ bl InitMenu
+ ldr r1, _0814A45C @ =gCallback_03004AE8
+ ldr r0, _0814A460 @ =sub_814A464
+ str r0, [r1]
+ movs r0, 0
+ add sp, 0x8
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0814A458: .4byte gUnknown_0842C29C
+_0814A45C: .4byte gCallback_03004AE8
+_0814A460: .4byte sub_814A464
+ thumb_func_end unref_sub_814A414
+
+ thumb_func_start sub_814A464
+sub_814A464: @ 814A464
+ push {lr}
+ bl ProcessMenuInput
+ lsls r0, 24
+ lsrs r0, 24
+ adds r2, r0, 0
+ lsls r0, r2, 24
+ asrs r1, r0, 24
+ movs r0, 0x2
+ negs r0, r0
+ cmp r1, r0
+ bne _0814A480
+ movs r0, 0
+ b _0814A4B2
+_0814A480:
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _0814A4AC
+ ldr r0, _0814A4A0 @ =gUnknown_02024D1E
+ strb r2, [r0]
+ ldr r2, _0814A4A4 @ =gCallback_03004AE8
+ ldr r0, _0814A4A8 @ =gUnknown_0842C29C
+ lsls r1, 3
+ adds r0, 0x4
+ adds r1, r0
+ ldr r0, [r1]
+ str r0, [r2]
+ movs r0, 0
+ b _0814A4B2
+ .align 2, 0
+_0814A4A0: .4byte gUnknown_02024D1E
+_0814A4A4: .4byte gCallback_03004AE8
+_0814A4A8: .4byte gUnknown_0842C29C
+_0814A4AC:
+ bl CloseMenu
+ movs r0, 0x1
+_0814A4B2:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_814A464
+
+ thumb_func_start sub_814A4B8
+sub_814A4B8: @ 814A4B8
+ push {r4,lr}
+ ldr r2, _0814A4FC @ =gSaveBlock2
+ ldr r1, _0814A500 @ =0x00000556
+ adds r0, r2, r1
+ movs r1, 0x3
+ strb r1, [r0]
+ ldr r3, _0814A504 @ =0x00000557
+ adds r0, r2, r3
+ strb r1, [r0]
+ ldr r3, _0814A508 @ =gUnknown_02024D1E
+ ldrb r0, [r3]
+ adds r0, 0x1
+ ldr r4, _0814A50C @ =0x0000055c
+ adds r1, r2, r4
+ strh r0, [r1]
+ ldrb r0, [r3]
+ adds r0, 0x1
+ ldr r3, _0814A510 @ =0x0000055e
+ adds r1, r2, r3
+ strh r0, [r1]
+ subs r4, 0x4
+ adds r0, r2, r4
+ movs r1, 0x1
+ strh r1, [r0]
+ ldr r0, _0814A514 @ =0x0000055a
+ adds r2, r0
+ strh r1, [r2]
+ bl CloseMenu
+ movs r0, 0x1
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0814A4FC: .4byte gSaveBlock2
+_0814A500: .4byte 0x00000556
+_0814A504: .4byte 0x00000557
+_0814A508: .4byte gUnknown_02024D1E
+_0814A50C: .4byte 0x0000055c
+_0814A510: .4byte 0x0000055e
+_0814A514: .4byte 0x0000055a
+ thumb_func_end sub_814A4B8
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/unknown_task.s b/asm/unknown_task.s
new file mode 100644
index 000000000..39f1497ef
--- /dev/null
+++ b/asm/unknown_task.s
@@ -0,0 +1,645 @@
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start remove_some_task
+remove_some_task: @ 8089578
+ push {r4,lr}
+ ldr r4, _080895A8 @ =gUnknown_03004DC0
+ movs r0, 0
+ strb r0, [r4, 0x15]
+ ldr r1, _080895AC @ =0x040000b0
+ ldrh r2, [r1, 0xA]
+ ldr r0, _080895B0 @ =0x0000c5ff
+ ands r0, r2
+ strh r0, [r1, 0xA]
+ ldrh r2, [r1, 0xA]
+ ldr r0, _080895B4 @ =0x00007fff
+ ands r0, r2
+ strh r0, [r1, 0xA]
+ ldrh r0, [r1, 0xA]
+ ldrb r0, [r4, 0x18]
+ cmp r0, 0xFF
+ beq _080895A2
+ bl DestroyTask
+ movs r0, 0xFF
+ strb r0, [r4, 0x18]
+_080895A2:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080895A8: .4byte gUnknown_03004DC0
+_080895AC: .4byte 0x040000b0
+_080895B0: .4byte 0x0000c5ff
+_080895B4: .4byte 0x00007fff
+ thumb_func_end remove_some_task
+
+ thumb_func_start dp12_8087EA4
+dp12_8087EA4: @ 80895B8
+ push {r4,lr}
+ sub sp, 0x4
+ mov r0, sp
+ movs r4, 0
+ strh r4, [r0]
+ ldr r1, _080895EC @ =gUnknown_03004DE0
+ ldr r2, _080895F0 @ =0x01000780
+ bl CpuSet
+ ldr r0, _080895F4 @ =gUnknown_03004DC0
+ movs r1, 0
+ str r1, [r0]
+ str r1, [r0, 0x4]
+ str r1, [r0, 0x8]
+ str r1, [r0, 0xC]
+ strb r4, [r0, 0x14]
+ strb r4, [r0, 0x15]
+ strb r4, [r0, 0x16]
+ strb r4, [r0, 0x17]
+ movs r1, 0xFF
+ strb r1, [r0, 0x18]
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080895EC: .4byte gUnknown_03004DE0
+_080895F0: .4byte 0x01000780
+_080895F4: .4byte gUnknown_03004DC0
+ thumb_func_end dp12_8087EA4
+
+ thumb_func_start sub_80895F8
+sub_80895F8: @ 80895F8
+ push {lr}
+ sub sp, 0xC
+ str r0, [sp]
+ str r1, [sp, 0x4]
+ str r2, [sp, 0x8]
+ ldr r0, _0808961C @ =0xa2600001
+ cmp r1, r0
+ bne _0808962C
+ ldr r0, _08089620 @ =gUnknown_03004DC0
+ ldr r1, _08089624 @ =gUnknown_03004DE2
+ str r1, [r0]
+ movs r2, 0xF0
+ lsls r2, 3
+ adds r1, r2
+ str r1, [r0, 0x4]
+ ldr r1, _08089628 @ =sub_80896F4
+ b _0808963C
+ .align 2, 0
+_0808961C: .4byte 0xa2600001
+_08089620: .4byte gUnknown_03004DC0
+_08089624: .4byte gUnknown_03004DE2
+_08089628: .4byte sub_80896F4
+_0808962C:
+ ldr r0, _0808965C @ =gUnknown_03004DC0
+ ldr r1, _08089660 @ =gUnknown_03004DE4
+ str r1, [r0]
+ movs r2, 0xF0
+ lsls r2, 3
+ adds r1, r2
+ str r1, [r0, 0x4]
+ ldr r1, _08089664 @ =sub_8089714
+_0808963C:
+ str r1, [r0, 0x10]
+ adds r1, r0, 0
+ ldr r0, [sp, 0x4]
+ str r0, [r1, 0xC]
+ ldr r0, [sp]
+ str r0, [r1, 0x8]
+ mov r0, sp
+ ldrb r0, [r0, 0x8]
+ strb r0, [r1, 0x15]
+ mov r0, sp
+ ldrb r0, [r0, 0x9]
+ strb r0, [r1, 0x16]
+ strb r0, [r1, 0x17]
+ add sp, 0xC
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808965C: .4byte gUnknown_03004DC0
+_08089660: .4byte gUnknown_03004DE4
+_08089664: .4byte sub_8089714
+ thumb_func_end sub_80895F8
+
+ thumb_func_start sub_8089668
+sub_8089668: @ 8089668
+ push {r4,lr}
+ ldr r4, _08089698 @ =gUnknown_03004DC0
+ ldrb r0, [r4, 0x15]
+ cmp r0, 0
+ beq _080896E2
+ cmp r0, 0x3
+ bne _080896AC
+ movs r0, 0
+ strb r0, [r4, 0x15]
+ ldr r1, _0808969C @ =0x040000b0
+ ldrh r2, [r1, 0xA]
+ ldr r0, _080896A0 @ =0x0000c5ff
+ ands r0, r2
+ strh r0, [r1, 0xA]
+ ldrh r2, [r1, 0xA]
+ ldr r0, _080896A4 @ =0x00007fff
+ ands r0, r2
+ strh r0, [r1, 0xA]
+ ldrh r0, [r1, 0xA]
+ ldr r1, _080896A8 @ =gUnknown_0202FFA4
+ movs r0, 0x1
+ strb r0, [r1]
+ b _080896E2
+ .align 2, 0
+_08089698: .4byte gUnknown_03004DC0
+_0808969C: .4byte 0x040000b0
+_080896A0: .4byte 0x0000c5ff
+_080896A4: .4byte 0x00007fff
+_080896A8: .4byte gUnknown_0202FFA4
+_080896AC:
+ ldr r1, _080896E8 @ =0x040000b0
+ ldrh r2, [r1, 0xA]
+ ldr r0, _080896EC @ =0x0000c5ff
+ ands r0, r2
+ strh r0, [r1, 0xA]
+ ldrh r2, [r1, 0xA]
+ ldr r0, _080896F0 @ =0x00007fff
+ ands r0, r2
+ strh r0, [r1, 0xA]
+ ldrh r0, [r1, 0xA]
+ ldrb r0, [r4, 0x14]
+ lsls r0, 2
+ adds r0, r4
+ ldr r0, [r0]
+ str r0, [r1]
+ ldr r0, [r4, 0x8]
+ str r0, [r1, 0x4]
+ ldr r0, [r4, 0xC]
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ ldr r0, [r4, 0x10]
+ bl _call_via_r0
+ ldrb r0, [r4, 0x14]
+ movs r1, 0x1
+ eors r0, r1
+ strb r0, [r4, 0x14]
+_080896E2:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080896E8: .4byte 0x040000b0
+_080896EC: .4byte 0x0000c5ff
+_080896F0: .4byte 0x00007fff
+ thumb_func_end sub_8089668
+
+ thumb_func_start sub_80896F4
+sub_80896F4: @ 80896F4
+ ldr r0, _0808970C @ =gUnknown_03004DC0
+ ldr r2, [r0, 0x8]
+ ldrb r1, [r0, 0x14]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 7
+ ldr r1, _08089710 @ =gUnknown_03004DE0
+ adds r0, r1
+ ldrh r0, [r0]
+ strh r0, [r2]
+ bx lr
+ .align 2, 0
+_0808970C: .4byte gUnknown_03004DC0
+_08089710: .4byte gUnknown_03004DE0
+ thumb_func_end sub_80896F4
+
+ thumb_func_start sub_8089714
+sub_8089714: @ 8089714
+ ldr r0, _0808972C @ =gUnknown_03004DC0
+ ldr r2, [r0, 0x8]
+ ldrb r1, [r0, 0x14]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 7
+ ldr r1, _08089730 @ =gUnknown_03004DE0
+ adds r0, r1
+ ldr r0, [r0]
+ str r0, [r2]
+ bx lr
+ .align 2, 0
+_0808972C: .4byte gUnknown_03004DC0
+_08089730: .4byte gUnknown_03004DE0
+ thumb_func_end sub_8089714
+
+ thumb_func_start task00_for_dp12
+task00_for_dp12: @ 8089734
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 24
+ lsrs r0, 24
+ mov r12, r0
+ movs r6, 0
+ ldr r0, _0808975C @ =gUnknown_0202FFA4
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08089764
+ mov r0, r12
+ bl DestroyTask
+ ldr r1, _08089760 @ =gUnknown_03004DC0
+ movs r0, 0xFF
+ strb r0, [r1, 0x18]
+ b _080898E4
+ .align 2, 0
+_0808975C: .4byte gUnknown_0202FFA4
+_08089760: .4byte gUnknown_03004DC0
+_08089764:
+ ldr r1, _08089790 @ =gTasks
+ mov r0, r12
+ lsls r2, r0, 2
+ adds r0, r2, r0
+ lsls r0, 3
+ adds r3, r0, r1
+ movs r4, 0x16
+ ldrsh r0, [r3, r4]
+ mov r10, r1
+ mov r9, r2
+ cmp r0, 0
+ beq _08089810
+ movs r1, 0x14
+ ldrsh r0, [r3, r1]
+ cmp r0, 0xE
+ bhi _08089810
+ lsls r0, 2
+ ldr r1, _08089794 @ =_08089798
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08089790: .4byte gTasks
+_08089794: .4byte _08089798
+ .align 2, 0
+_08089798:
+ .4byte _080897D4
+ .4byte _08089810
+ .4byte _080897DC
+ .4byte _08089810
+ .4byte _080897E4
+ .4byte _08089810
+ .4byte _080897EC
+ .4byte _08089810
+ .4byte _080897F4
+ .4byte _08089810
+ .4byte _080897FC
+ .4byte _08089810
+ .4byte _08089804
+ .4byte _08089810
+ .4byte _0808980C
+_080897D4:
+ ldr r0, _080897D8 @ =gUnknown_030042A4
+ b _0808980E
+ .align 2, 0
+_080897D8: .4byte gUnknown_030042A4
+_080897DC:
+ ldr r0, _080897E0 @ =gUnknown_030042A0
+ b _0808980E
+ .align 2, 0
+_080897E0: .4byte gUnknown_030042A0
+_080897E4:
+ ldr r0, _080897E8 @ =gUnknown_030042C0
+ b _0808980E
+ .align 2, 0
+_080897E8: .4byte gUnknown_030042C0
+_080897EC:
+ ldr r0, _080897F0 @ =gUnknown_030041B4
+ b _0808980E
+ .align 2, 0
+_080897F0: .4byte gUnknown_030041B4
+_080897F4:
+ ldr r0, _080897F8 @ =gUnknown_03004288
+ b _0808980E
+ .align 2, 0
+_080897F8: .4byte gUnknown_03004288
+_080897FC:
+ ldr r0, _08089800 @ =gUnknown_03004280
+ b _0808980E
+ .align 2, 0
+_08089800: .4byte gUnknown_03004280
+_08089804:
+ ldr r0, _08089808 @ =gUnknown_030041B0
+ b _0808980E
+ .align 2, 0
+_08089808: .4byte gUnknown_030041B0
+_0808980C:
+ ldr r0, _08089870 @ =gUnknown_030041B8
+_0808980E:
+ ldrh r6, [r0]
+_08089810:
+ mov r0, r9
+ add r0, r12
+ lsls r0, 3
+ mov r2, r10
+ adds r1, r0, r2
+ ldrh r2, [r1, 0x10]
+ movs r3, 0x10
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ beq _0808987C
+ subs r0, r2, 0x1
+ strh r0, [r1, 0x10]
+ movs r4, 0xE
+ ldrsh r0, [r1, r4]
+ movs r3, 0xA0
+ lsls r3, 1
+ adds r2, r0, r3
+ movs r4, 0x8
+ ldrsh r3, [r1, r4]
+ movs r4, 0xA
+ ldrsh r0, [r1, r4]
+ cmp r3, r0
+ bge _080898E4
+ ldr r5, _08089874 @ =gUnknown_03004DE0
+ ldr r0, _08089878 @ =gUnknown_03004DC0
+ mov r8, r0
+ adds r7, r1, 0
+ lsls r0, r2, 1
+ adds r4, r0, r5
+_0808984A:
+ lsls r2, r3, 1
+ mov r0, r8
+ ldrb r1, [r0, 0x14]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 7
+ adds r2, r0
+ adds r2, r5
+ ldrh r0, [r4]
+ adds r0, r6
+ strh r0, [r2]
+ adds r4, 0x2
+ adds r3, 0x1
+ movs r1, 0xA
+ ldrsh r0, [r7, r1]
+ cmp r3, r0
+ blt _0808984A
+ b _080898E4
+ .align 2, 0
+_08089870: .4byte gUnknown_030041B8
+_08089874: .4byte gUnknown_03004DE0
+_08089878: .4byte gUnknown_03004DC0
+_0808987C:
+ ldrh r0, [r1, 0x12]
+ strh r0, [r1, 0x10]
+ movs r2, 0xE
+ ldrsh r0, [r1, r2]
+ movs r3, 0xA0
+ lsls r3, 1
+ adds r2, r0, r3
+ movs r4, 0x8
+ ldrsh r3, [r1, r4]
+ movs r4, 0xA
+ ldrsh r0, [r1, r4]
+ cmp r3, r0
+ bge _080898C4
+ ldr r5, _080898F4 @ =gUnknown_03004DE0
+ adds r7, r1, 0
+ lsls r0, r2, 1
+ adds r4, r0, r5
+ ldr r0, _080898F8 @ =gUnknown_03004DC0
+ mov r8, r0
+_080898A2:
+ lsls r2, r3, 1
+ mov r0, r8
+ ldrb r1, [r0, 0x14]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 7
+ adds r2, r0
+ adds r2, r5
+ ldrh r0, [r4]
+ adds r0, r6
+ strh r0, [r2]
+ adds r4, 0x2
+ adds r3, 0x1
+ movs r1, 0xA
+ ldrsh r0, [r7, r1]
+ cmp r3, r0
+ blt _080898A2
+_080898C4:
+ mov r0, r9
+ add r0, r12
+ lsls r0, 3
+ mov r3, r10
+ adds r2, r0, r3
+ ldrh r0, [r2, 0xE]
+ adds r0, 0x1
+ strh r0, [r2, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ movs r4, 0xC
+ ldrsh r1, [r2, r4]
+ cmp r0, r1
+ bne _080898E4
+ movs r0, 0
+ strh r0, [r2, 0xE]
+_080898E4:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080898F4: .4byte gUnknown_03004DE0
+_080898F8: .4byte gUnknown_03004DC0
+ thumb_func_end task00_for_dp12
+
+ thumb_func_start sub_80898FC
+sub_80898FC: @ 80898FC
+ push {r4-r7,lr}
+ adds r6, r0, 0
+ lsls r1, 24
+ lsrs r5, r1, 24
+ lsls r2, 24
+ lsrs r4, r2, 24
+ movs r1, 0
+ movs r2, 0
+ ldr r0, _08089940 @ =gSineTable
+ mov r12, r0
+_08089910:
+ lsls r0, r1, 1
+ adds r3, r0, r6
+ lsls r0, r2, 1
+ add r0, r12
+ movs r7, 0
+ ldrsh r0, [r0, r7]
+ muls r0, r4
+ cmp r0, 0
+ bge _08089924
+ adds r0, 0xFF
+_08089924:
+ asrs r0, 8
+ strh r0, [r3]
+ adds r0, r2, r5
+ lsls r0, 24
+ lsrs r2, r0, 24
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0xFF
+ bls _08089910
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08089940: .4byte gSineTable
+ thumb_func_end sub_80898FC
+
+ thumb_func_start sub_8089944
+sub_8089944: @ 8089944
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x20
+ adds r5, r0, 0
+ str r1, [sp, 0x10]
+ ldr r0, [sp, 0x40]
+ mov r8, r0
+ ldr r1, [sp, 0x44]
+ mov r9, r1
+ ldr r0, [sp, 0x48]
+ mov r10, r0
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r1, [sp, 0x10]
+ lsls r1, 24
+ str r1, [sp, 0x14]
+ lsrs r0, r1, 24
+ str r0, [sp, 0xC]
+ lsls r1, r2, 24
+ lsrs r1, 24
+ str r1, [sp, 0x18]
+ lsls r2, r3, 24
+ lsrs r2, 24
+ str r2, [sp, 0x1C]
+ mov r1, r8
+ lsls r1, 24
+ lsrs r1, 24
+ mov r8, r1
+ mov r3, r9
+ lsls r3, 24
+ lsrs r3, 24
+ mov r9, r3
+ mov r0, r10
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ bl dp12_8087EA4
+ ldr r0, _08089A50 @ =REG_BG0HOFS
+ add r0, r9
+ str r0, [sp]
+ ldr r0, _08089A54 @ =0xa2600001
+ str r0, [sp, 0x4]
+ mov r1, sp
+ movs r0, 0x1
+ strb r0, [r1, 0x8]
+ mov r0, sp
+ movs r1, 0
+ strb r1, [r0, 0x9]
+ ldr r0, [sp]
+ ldr r1, [sp, 0x4]
+ ldr r2, [sp, 0x8]
+ bl sub_80895F8
+ ldr r0, _08089A58 @ =task00_for_dp12
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r0, _08089A5C @ =gTasks
+ lsls r4, r7, 2
+ adds r4, r7
+ lsls r4, 3
+ adds r4, r0
+ strh r5, [r4, 0x8]
+ mov r3, sp
+ ldrh r3, [r3, 0xC]
+ strh r3, [r4, 0xA]
+ movs r0, 0x80
+ lsls r0, 1
+ ldr r1, [sp, 0x18]
+ bl __divsi3
+ strh r0, [r4, 0xC]
+ movs r0, 0
+ strh r0, [r4, 0xE]
+ mov r1, r8
+ strh r1, [r4, 0x10]
+ strh r1, [r4, 0x12]
+ mov r3, r9
+ strh r3, [r4, 0x14]
+ mov r0, r10
+ strh r0, [r4, 0x16]
+ ldr r0, _08089A60 @ =gUnknown_03004DC0
+ strb r7, [r0, 0x18]
+ ldr r0, _08089A64 @ =gUnknown_0202FFA4
+ movs r1, 0
+ strb r1, [r0]
+ ldr r4, _08089A68 @ =gUnknown_03005060
+ ldr r3, [sp, 0xC]
+ subs r6, r3, r5
+ lsls r3, r6, 24
+ lsrs r3, 24
+ adds r0, r4, 0
+ ldr r1, [sp, 0x18]
+ ldr r2, [sp, 0x1C]
+ bl sub_80898FC
+ ldr r0, [sp, 0xC]
+ cmp r5, r0
+ bge _08089A3E
+ ldr r1, _08089A6C @ =0xfffffd80
+ adds r2, r4, r1
+ lsls r1, r5, 1
+ movs r3, 0xF0
+ lsls r3, 3
+ adds r0, r1, r3
+ adds r3, r0, r2
+ adds r1, r2
+ adds r2, r4, 0
+ adds r5, r6, 0
+_08089A2A:
+ ldrh r0, [r2]
+ strh r0, [r1]
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ adds r1, 0x2
+ subs r5, 0x1
+ cmp r5, 0
+ bne _08089A2A
+_08089A3E:
+ adds r0, r7, 0
+ add sp, 0x20
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08089A50: .4byte REG_BG0HOFS
+_08089A54: .4byte 0xa2600001
+_08089A58: .4byte task00_for_dp12
+_08089A5C: .4byte gTasks
+_08089A60: .4byte gUnknown_03004DC0
+_08089A64: .4byte gUnknown_0202FFA4
+_08089A68: .4byte gUnknown_03005060
+_08089A6C: .4byte 0xfffffd80
+ thumb_func_end sub_8089944
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/rom_8040EB4.s b/asm/util.s
index cf7780f78..f204eac43 100644
--- a/asm/rom_8040EB4.s
+++ b/asm/util.s
@@ -5,8 +5,8 @@
.text
- thumb_func_start object_new_hidden_with_callback
-object_new_hidden_with_callback: @ 8040EB4
+ thumb_func_start CreateInvisibleSpriteWithCallback
+CreateInvisibleSpriteWithCallback: @ 8040EB4
push {r4-r6,lr}
adds r6, r0, 0
ldr r0, _08040EE8 @ =gSpriteTemplate_82087AC
@@ -35,7 +35,7 @@ object_new_hidden_with_callback: @ 8040EB4
.align 2, 0
_08040EE8: .4byte gSpriteTemplate_82087AC
_08040EEC: .4byte gSprites
- thumb_func_end object_new_hidden_with_callback
+ thumb_func_end CreateInvisibleSpriteWithCallback
thumb_func_start StoreWordInTwoHalfwords
StoreWordInTwoHalfwords: @ 8040EF0
@@ -56,8 +56,8 @@ LoadWordFromTwoHalfwords: @ 8040EF8
bx lr
thumb_func_end LoadWordFromTwoHalfwords
- thumb_func_start sub_8040F08
-sub_8040F08: @ 8040F08
+ thumb_func_start SetBgAffineStruct
+SetBgAffineStruct: @ 8040F08
push {r4-r7,lr}
mov r7, r8
push {r7}
@@ -79,10 +79,10 @@ sub_8040F08: @ 8040F08
pop {r4-r7}
pop {r0}
bx r0
- thumb_func_end sub_8040F08
+ thumb_func_end SetBgAffineStruct
- thumb_func_start sub_8040F34
-sub_8040F34: @ 8040F34
+ thumb_func_start DoBgAffineSet
+DoBgAffineSet: @ 8040F34
push {r4-r6,lr}
mov r6, r8
push {r6}
@@ -107,7 +107,7 @@ sub_8040F34: @ 8040F34
str r5, [sp, 0x8]
str r6, [sp, 0xC]
add r0, sp, 0x10
- bl sub_8040F08
+ bl SetBgAffineStruct
add r0, sp, 0x10
mov r1, r8
movs r2, 0x1
@@ -118,10 +118,10 @@ sub_8040F34: @ 8040F34
pop {r4-r6}
pop {r0}
bx r0
- thumb_func_end sub_8040F34
+ thumb_func_end DoBgAffineSet
- thumb_func_start sub_8040F80
-sub_8040F80: @ 8040F80
+ thumb_func_start CopySpriteTiles
+CopySpriteTiles: @ 8040F80
push {r4-r7,lr}
mov r7, r10
mov r6, r9
@@ -357,10 +357,10 @@ _08041136:
bx r0
.align 2, 0
_08041148: .4byte 0x84000008
- thumb_func_end sub_8040F80
+ thumb_func_end CopySpriteTiles
- thumb_func_start sub_804114C
-sub_804114C: @ 804114C
+ thumb_func_start CountTrailingZeroBits
+CountTrailingZeroBits: @ 804114C
push {lr}
adds r2, r0, 0
movs r1, 0
@@ -383,10 +383,10 @@ _08041160:
_0804116E:
pop {r1}
bx r1
- thumb_func_end sub_804114C
+ thumb_func_end CountTrailingZeroBits
- thumb_func_start sub_8041174
-sub_8041174: @ 8041174
+ thumb_func_start CalcCRC16
+CalcCRC16: @ 8041174
push {r4-r7,lr}
adds r7, r0, 0
adds r4, r1, 0
@@ -435,10 +435,10 @@ _080411C0:
pop {r4-r7}
pop {r1}
bx r1
- thumb_func_end sub_8041174
+ thumb_func_end CalcCRC16
- thumb_func_start unref_sub_80411CC
-unref_sub_80411CC: @ 80411CC
+ thumb_func_start CalcCRC16WithTable
+CalcCRC16WithTable: @ 80411CC
push {r4-r6,lr}
adds r5, r0, 0
adds r4, r1, 0
@@ -473,6 +473,6 @@ _080411FA:
.align 2, 0
_08041208: .4byte 0x00001121
_0804120C: .4byte gCrc16Table
- thumb_func_end unref_sub_80411CC
+ thumb_func_end CalcCRC16WithTable
.align 2, 0 @ Don't pad with nop.
diff --git a/asm/weather.s b/asm/weather.s
index fbcc61b6f..01190c75e 100644
--- a/asm/weather.s
+++ b/asm/weather.s
@@ -1,858 +1,10 @@
.include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
.include "asm/macros.inc"
.syntax unified
.text
- thumb_func_start sub_807C828
-sub_807C828: @ 807C828
- push {r4-r6,lr}
- ldr r0, _0807C8EC @ =sub_807CA34
- bl FuncIsActiveTask
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0
- bne _0807C8E4
- movs r0, 0x90
- lsls r0, 5
- bl AllocSpritePalette
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r0, _0807C8F0 @ =gUnknown_083970E8
- lsls r1, r5, 5
- ldr r2, _0807C8F4 @ =gPlttBufferUnfaded + 0x200
- adds r1, r2
- ldr r2, _0807C8F8 @ =REG_BG0CNT
- bl CpuSet
- bl sub_807CB10
- ldr r4, _0807C8FC @ =gUnknown_0202F7E8
- ldr r1, _0807C900 @ =0x000006d5
- adds r0, r4, r1
- strb r5, [r0]
- ldr r0, _0807C904 @ =0x00001201
- bl AllocSpritePalette
- ldr r2, _0807C908 @ =0x000006d4
- adds r1, r4, r2
- strb r0, [r1]
- ldr r1, _0807C90C @ =0x000006da
- adds r0, r4, r1
- strb r6, [r0]
- adds r2, 0x4
- adds r0, r4, r2
- strb r6, [r0]
- adds r1, 0x4
- adds r0, r4, r1
- strb r6, [r0]
- adds r2, 0xC
- adds r0, r4, r2
- strb r6, [r0]
- adds r1, 0x22
- adds r0, r4, r1
- strb r6, [r0]
- adds r2, 0x17
- adds r0, r4, r2
- strb r6, [r0]
- adds r1, 0x24
- adds r0, r4, r1
- strb r6, [r0]
- adds r2, 0x1B
- adds r0, r4, r2
- strb r6, [r0]
- subs r1, 0xD
- adds r0, r4, r1
- strb r6, [r0]
- adds r2, 0x18
- adds r0, r4, r2
- strb r6, [r0]
- subs r1, 0x1D
- adds r0, r4, r1
- strb r6, [r0]
- movs r0, 0x10
- movs r1, 0
- bl sub_807DB64
- movs r2, 0xDA
- lsls r2, 3
- adds r0, r4, r2
- strb r6, [r0]
- ldr r0, _0807C910 @ =0x000006c6
- adds r1, r4, r0
- movs r0, 0x3
- strb r0, [r1]
- movs r1, 0xD9
- lsls r1, 3
- adds r0, r4, r1
- strb r6, [r0]
- adds r2, 0x3
- adds r1, r4, r2
- movs r0, 0x1
- strb r0, [r1]
- ldr r0, _0807C914 @ =sub_807C9E4
- movs r1, 0x50
- bl CreateTask
- ldr r1, _0807C918 @ =0x000006c9
- adds r4, r1
- strb r0, [r4]
-_0807C8E4:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0807C8EC: .4byte sub_807CA34
-_0807C8F0: .4byte gUnknown_083970E8
-_0807C8F4: .4byte gPlttBufferUnfaded + 0x200
-_0807C8F8: .4byte REG_BG0CNT
-_0807C8FC: .4byte gUnknown_0202F7E8
-_0807C900: .4byte 0x000006d5
-_0807C904: .4byte 0x00001201
-_0807C908: .4byte 0x000006d4
-_0807C90C: .4byte 0x000006da
-_0807C910: .4byte 0x000006c6
-_0807C914: .4byte sub_807C9E4
-_0807C918: .4byte 0x000006c9
- thumb_func_end sub_807C828
-
- thumb_func_start DoWeatherEffect
-DoWeatherEffect: @ 807C91C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x3
- beq _0807C932
- cmp r4, 0x5
- beq _0807C932
- cmp r4, 0xD
- beq _0807C932
- bl PlayRainSoundEffect
-_0807C932:
- ldr r1, _0807C974 @ =gUnknown_0202F7E8
- ldr r2, _0807C978 @ =0x000006d1
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, r4
- beq _0807C956
- movs r3, 0xDA
- lsls r3, 3
- adds r0, r1, r3
- ldrb r0, [r0]
- cmp r0, r4
- bne _0807C956
- ldr r0, _0807C97C @ =gUnknown_08396FC8
- lsls r1, r4, 4
- adds r1, r0
- ldr r0, [r1]
- bl _call_via_r0
-_0807C956:
- ldr r1, _0807C974 @ =gUnknown_0202F7E8
- ldr r2, _0807C980 @ =0x000006d3
- adds r0, r1, r2
- movs r2, 0
- strb r2, [r0]
- ldr r3, _0807C978 @ =0x000006d1
- adds r0, r1, r3
- strb r4, [r0]
- ldr r0, _0807C984 @ =0x000006ce
- adds r1, r0
- strh r2, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0807C974: .4byte gUnknown_0202F7E8
-_0807C978: .4byte 0x000006d1
-_0807C97C: .4byte gUnknown_08396FC8
-_0807C980: .4byte 0x000006d3
-_0807C984: .4byte 0x000006ce
- thumb_func_end DoWeatherEffect
-
- thumb_func_start sub_807C988
-sub_807C988: @ 807C988
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl PlayRainSoundEffect
- ldr r0, _0807C9AC @ =gUnknown_0202F7E8
- movs r2, 0xDA
- lsls r2, 3
- adds r1, r0, r2
- strb r4, [r1]
- ldr r1, _0807C9B0 @ =0x000006d1
- adds r0, r1
- strb r4, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0807C9AC: .4byte gUnknown_0202F7E8
-_0807C9B0: .4byte 0x000006d1
- thumb_func_end sub_807C988
-
- thumb_func_start sub_807C9B4
-sub_807C9B4: @ 807C9B4
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl PlayRainSoundEffect
- ldr r1, _0807C9E0 @ =gUnknown_0202F7E8
- movs r2, 0xDA
- lsls r2, 3
- adds r0, r1, r2
- strb r4, [r0]
- adds r2, 0x1
- adds r0, r1, r2
- strb r4, [r0]
- movs r0, 0xD9
- lsls r0, 3
- adds r1, r0
- movs r0, 0x1
- strb r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0807C9E0: .4byte gUnknown_0202F7E8
- thumb_func_end sub_807C9B4
-
- thumb_func_start sub_807C9E4
-sub_807C9E4: @ 807C9E4
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r2, _0807CA24 @ =gUnknown_0202F7E8
- movs r1, 0xD9
- lsls r1, 3
- adds r0, r2, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _0807CA1C
- ldr r1, _0807CA28 @ =gUnknown_08396FC8
- movs r3, 0xDA
- lsls r3, 3
- adds r0, r2, r3
- ldrb r0, [r0]
- lsls r0, 4
- adds r1, 0x8
- adds r0, r1
- ldr r0, [r0]
- bl _call_via_r0
- ldr r1, _0807CA2C @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0807CA30 @ =sub_807CA34
- str r1, [r0]
-_0807CA1C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0807CA24: .4byte gUnknown_0202F7E8
-_0807CA28: .4byte gUnknown_08396FC8
-_0807CA2C: .4byte gTasks
-_0807CA30: .4byte sub_807CA34
- thumb_func_end sub_807C9E4
-
- thumb_func_start sub_807CA34
-sub_807CA34: @ 807CA34
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r5, _0807CA90 @ =gUnknown_0202F7E8
- movs r0, 0xDA
- lsls r0, 3
- adds r6, r5, r0
- ldr r1, _0807CA94 @ =0x000006d1
- adds r7, r5, r1
- ldrb r0, [r6]
- ldrb r2, [r7]
- cmp r0, r2
- beq _0807CAA8
- ldr r0, _0807CA98 @ =gUnknown_08396FC8
- mov r8, r0
- ldrb r0, [r6]
- lsls r0, 4
- mov r1, r8
- adds r1, 0xC
- adds r0, r1
- ldr r0, [r0]
- bl _call_via_r0
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _0807CAB8
- ldrb r0, [r7]
- lsls r0, 4
- add r0, r8
- ldr r0, [r0]
- bl _call_via_r0
- ldr r1, _0807CA9C @ =0x000006c3
- adds r0, r5, r1
- strb r4, [r0]
- ldr r2, _0807CAA0 @ =0x000006c6
- adds r0, r5, r2
- strb r4, [r0]
- ldrb r0, [r7]
- strb r0, [r6]
- ldr r0, _0807CAA4 @ =0x000006d3
- adds r1, r5, r0
- movs r0, 0x1
- strb r0, [r1]
- b _0807CAB8
- .align 2, 0
-_0807CA90: .4byte gUnknown_0202F7E8
-_0807CA94: .4byte 0x000006d1
-_0807CA98: .4byte gUnknown_08396FC8
-_0807CA9C: .4byte 0x000006c3
-_0807CAA0: .4byte 0x000006c6
-_0807CAA4: .4byte 0x000006d3
-_0807CAA8:
- ldr r0, _0807CAD8 @ =gUnknown_08396FC8
- ldrb r1, [r6]
- lsls r1, 4
- adds r0, 0x4
- adds r1, r0
- ldr r0, [r1]
- bl _call_via_r0
-_0807CAB8:
- ldr r1, _0807CADC @ =gUnknown_083970B8
- ldr r0, _0807CAE0 @ =gUnknown_0202F7E8
- ldr r2, _0807CAE4 @ =0x000006c6
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- bl _call_via_r0
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0807CAD8: .4byte gUnknown_08396FC8
-_0807CADC: .4byte gUnknown_083970B8
-_0807CAE0: .4byte gUnknown_0202F7E8
-_0807CAE4: .4byte 0x000006c6
- thumb_func_end sub_807CA34
-
- thumb_func_start sub_807CAE8
-sub_807CAE8: @ 807CAE8
- ldr r0, _0807CAFC @ =gUnknown_0202F7E8
- ldr r2, _0807CB00 @ =0x000006c1
- adds r1, r0, r2
- movs r2, 0
- strb r2, [r1]
- ldr r1, _0807CB04 @ =0x000006c2
- adds r0, r1
- strb r2, [r0]
- bx lr
- .align 2, 0
-_0807CAFC: .4byte gUnknown_0202F7E8
-_0807CB00: .4byte 0x000006c1
-_0807CB04: .4byte 0x000006c2
- thumb_func_end sub_807CAE8
-
- thumb_func_start nullsub_38
-nullsub_38: @ 807CB08
- bx lr
- thumb_func_end nullsub_38
-
- thumb_func_start sub_807CB0C
-sub_807CB0C: @ 807CB0C
- movs r0, 0
- bx lr
- thumb_func_end sub_807CB0C
-
- thumb_func_start sub_807CB10
-sub_807CB10: @ 807CB10
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r1, _0807CB50 @ =gUnknown_030006DC
- ldr r0, _0807CB54 @ =gUnknown_083970C8
- str r0, [r1]
- movs r0, 0
- mov r12, r0
- ldr r1, _0807CB58 @ =gUnknown_0202FC48
- mov r10, r1
-_0807CB28:
- mov r7, r10
- mov r0, r12
- cmp r0, 0
- bne _0807CB34
- ldr r1, _0807CB5C @ =0xfffffda0
- adds r7, r1
-_0807CB34:
- movs r5, 0
- movs r0, 0x1
- add r0, r12
- mov r9, r0
-_0807CB3C:
- lsls r1, r5, 8
- lsls r0, r5, 24
- lsrs r2, r0, 16
- mov r0, r12
- cmp r0, 0
- bne _0807CB60
- adds r0, r1, 0
- lsls r0, 12
- lsrs r4, r0, 16
- b _0807CB62
- .align 2, 0
-_0807CB50: .4byte gUnknown_030006DC
-_0807CB54: .4byte gUnknown_083970C8
-_0807CB58: .4byte gUnknown_0202FC48
-_0807CB5C: .4byte 0xfffffda0
-_0807CB60:
- movs r4, 0
-_0807CB62:
- movs r3, 0
- adds r1, r5, 0x1
- mov r8, r1
-_0807CB68:
- subs r1, r2, r4
- lsls r1, 16
- lsrs r2, r1, 16
- lsls r0, r3, 5
- adds r0, r7
- adds r0, r5
- lsrs r1, 24
- strb r1, [r0]
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x2
- bls _0807CB68
- adds r6, r2, 0
- movs r0, 0xF8
- lsls r0, 5
- subs r0, r2
- cmp r0, 0
- bge _0807CB90
- adds r0, 0xF
-_0807CB90:
- lsls r0, 12
- lsrs r4, r0, 16
- cmp r5, 0xB
- bhi _0807CBDA
- cmp r3, 0x12
- bhi _0807CC00
-_0807CB9C:
- adds r0, r2, r4
- lsls r0, 16
- lsrs r2, r0, 16
- subs r0, r2, r6
- lsls r0, 16
- asrs r1, r0, 16
- cmp r1, 0
- ble _0807CBB8
- lsrs r0, 31
- adds r0, r1, r0
- asrs r0, 1
- subs r0, r2, r0
- lsls r0, 16
- lsrs r2, r0, 16
-_0807CBB8:
- lsls r0, r3, 5
- adds r0, r7
- adds r1, r0, r5
- lsrs r0, r2, 8
- strb r0, [r1]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1F
- bls _0807CBCE
- movs r0, 0x1F
- strb r0, [r1]
-_0807CBCE:
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x12
- bls _0807CB9C
- b _0807CC00
-_0807CBDA:
- cmp r3, 0x12
- bhi _0807CC00
- movs r6, 0x1F
-_0807CBE0:
- adds r1, r2, r4
- lsls r1, 16
- lsrs r2, r1, 16
- lsls r0, r3, 5
- adds r0, r7
- adds r0, r5
- lsrs r1, 24
- strb r1, [r0]
- cmp r1, 0x1F
- bls _0807CBF6
- strb r6, [r0]
-_0807CBF6:
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x12
- bls _0807CBE0
-_0807CC00:
- mov r1, r8
- lsls r0, r1, 16
- lsrs r5, r0, 16
- cmp r5, 0x1F
- bls _0807CB3C
- mov r1, r9
- lsls r0, r1, 16
- lsrs r0, 16
- mov r12, r0
- cmp r0, 0x1
- bls _0807CB28
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_807CB10
-
- thumb_func_start sub_807CC24
-sub_807CC24: @ 807CC24
- push {r4-r7,lr}
- ldr r0, _0807CC50 @ =gUnknown_0202F7E8
- movs r1, 0xD8
- lsls r1, 3
- adds r4, r0, r1
- ldr r2, _0807CC54 @ =0x000006c1
- adds r1, r0, r2
- ldrb r7, [r4]
- mov r12, r7
- movs r6, 0
- ldrsb r6, [r4, r6]
- movs r5, 0
- ldrsb r5, [r1, r5]
- adds r3, r0, 0
- cmp r6, r5
- bne _0807CC5C
- ldr r0, _0807CC58 @ =0x000006c6
- adds r1, r3, r0
- movs r0, 0x3
- strb r0, [r1]
- b _0807CCA4
- .align 2, 0
-_0807CC50: .4byte gUnknown_0202F7E8
-_0807CC54: .4byte 0x000006c1
-_0807CC58: .4byte 0x000006c6
-_0807CC5C:
- ldr r1, _0807CC84 @ =0x000006c3
- adds r2, r3, r1
- ldrb r0, [r2]
- adds r0, 0x1
- strb r0, [r2]
- ldr r7, _0807CC88 @ =0x000006c2
- adds r1, r3, r7
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r1]
- cmp r0, r1
- bcc _0807CCA4
- movs r0, 0
- strb r0, [r2]
- mov r0, r12
- cmp r6, r5
- bge _0807CC8C
- adds r0, 0x1
- b _0807CC90
- .align 2, 0
-_0807CC84: .4byte 0x000006c3
-_0807CC88: .4byte 0x000006c2
-_0807CC8C:
- mov r0, r12
- subs r0, 0x1
-_0807CC90:
- strb r0, [r4]
- movs r1, 0xD8
- lsls r1, 3
- adds r0, r3, r1
- movs r2, 0
- ldrsb r2, [r0, r2]
- movs r0, 0
- movs r1, 0x20
- bl sub_807CEBC
-_0807CCA4:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_807CC24
-
- thumb_func_start sub_807CCAC
-sub_807CCAC: @ 807CCAC
- push {lr}
- ldr r2, _0807CCE4 @ =gUnknown_0202F7E8
- ldr r0, _0807CCE8 @ =0x000006cb
- adds r1, r2, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bls _0807CCCA
- ldr r3, _0807CCEC @ =0x000006ca
- adds r1, r2, r3
- movs r0, 0
- strb r0, [r1]
-_0807CCCA:
- movs r1, 0xDA
- lsls r1, 3
- adds r0, r2, r1
- ldrb r0, [r0]
- subs r0, 0x3
- cmp r0, 0xA
- bhi _0807CD94
- lsls r0, 2
- ldr r1, _0807CCF0 @ =_0807CCF4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0807CCE4: .4byte gUnknown_0202F7E8
-_0807CCE8: .4byte 0x000006cb
-_0807CCEC: .4byte 0x000006ca
-_0807CCF0: .4byte _0807CCF4
- .align 2, 0
-_0807CCF4:
- .4byte _0807CD20
- .4byte _0807CD20
- .4byte _0807CD20
- .4byte _0807CD6C
- .4byte _0807CD94
- .4byte _0807CD94
- .4byte _0807CD94
- .4byte _0807CD94
- .4byte _0807CD20
- .4byte _0807CD48
- .4byte _0807CD20
-_0807CD20:
- bl sub_807CDC4
- lsls r0, 24
- cmp r0, 0
- bne _0807CDB4
- ldr r0, _0807CD40 @ =gUnknown_0202F7E8
- movs r2, 0xD8
- lsls r2, 3
- adds r1, r0, r2
- movs r2, 0x3
- strb r2, [r1]
- ldr r3, _0807CD44 @ =0x000006c6
- adds r0, r3
- strb r2, [r0]
- b _0807CDB4
- .align 2, 0
-_0807CD40: .4byte gUnknown_0202F7E8
-_0807CD44: .4byte 0x000006c6
-_0807CD48:
- bl sub_807CE24
- lsls r0, 24
- cmp r0, 0
- bne _0807CDB4
- ldr r1, _0807CD64 @ =gUnknown_0202F7E8
- movs r0, 0xD8
- lsls r0, 3
- adds r2, r1, r0
- movs r0, 0xFA
- strb r0, [r2]
- ldr r2, _0807CD68 @ =0x000006c6
- adds r1, r2
- b _0807CDB0
- .align 2, 0
-_0807CD64: .4byte gUnknown_0202F7E8
-_0807CD68: .4byte 0x000006c6
-_0807CD6C:
- bl sub_807CE7C
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- bne _0807CDB4
- ldr r0, _0807CD8C @ =gUnknown_0202F7E8
- movs r3, 0xD8
- lsls r3, 3
- adds r1, r0, r3
- strb r2, [r1]
- ldr r1, _0807CD90 @ =0x000006c6
- adds r0, r1
- movs r1, 0x3
- strb r1, [r0]
- b _0807CDB4
- .align 2, 0
-_0807CD8C: .4byte gUnknown_0202F7E8
-_0807CD90: .4byte 0x000006c6
-_0807CD94:
- ldr r0, _0807CDB8 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0807CDB4
- ldr r3, _0807CDBC @ =0x000006c1
- adds r0, r2, r3
- ldrb r1, [r0]
- subs r3, 0x1
- adds r0, r2, r3
- strb r1, [r0]
- ldr r0, _0807CDC0 @ =0x000006c6
- adds r1, r2, r0
-_0807CDB0:
- movs r0, 0x3
- strb r0, [r1]
-_0807CDB4:
- pop {r0}
- bx r0
- .align 2, 0
-_0807CDB8: .4byte gPaletteFade
-_0807CDBC: .4byte 0x000006c1
-_0807CDC0: .4byte 0x000006c6
- thumb_func_end sub_807CCAC
-
- thumb_func_start sub_807CDC4
-sub_807CDC4: @ 807CDC4
- push {r4,lr}
- sub sp, 0x4
- ldr r2, _0807CE00 @ =gUnknown_0202F7E8
- ldr r0, _0807CE04 @ =0x000006c7
- adds r4, r2, r0
- ldrb r0, [r4]
- cmp r0, 0x10
- beq _0807CE1A
- adds r1, r0, 0x1
- strb r1, [r4]
- lsls r0, r1, 24
- lsrs r0, 24
- cmp r0, 0xF
- bhi _0807CE0C
- movs r3, 0x10
- subs r3, r1
- lsls r3, 24
- lsrs r3, 24
- ldr r1, _0807CE08 @ =0x000006c4
- adds r0, r2, r1
- ldrh r0, [r0]
- str r0, [sp]
- movs r0, 0
- movs r1, 0x20
- movs r2, 0x3
- bl sub_807D1BC
- movs r0, 0x1
- b _0807CE1C
- .align 2, 0
-_0807CE00: .4byte gUnknown_0202F7E8
-_0807CE04: .4byte 0x000006c7
-_0807CE08: .4byte 0x000006c4
-_0807CE0C:
- movs r0, 0
- movs r1, 0x20
- movs r2, 0x3
- bl sub_807CEBC
- movs r0, 0x10
- strb r0, [r4]
-_0807CE1A:
- movs r0, 0
-_0807CE1C:
- add sp, 0x4
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_807CDC4
-
- thumb_func_start sub_807CE24
-sub_807CE24: @ 807CE24
- push {r4,lr}
- ldr r2, _0807CE58 @ =gUnknown_0202F7E8
- ldr r0, _0807CE5C @ =0x000006c7
- adds r4, r2, r0
- ldrb r0, [r4]
- cmp r0, 0x10
- beq _0807CE74
- adds r3, r0, 0x1
- strb r3, [r4]
- lsls r0, r3, 24
- lsrs r0, 24
- cmp r0, 0xF
- bhi _0807CE64
- movs r0, 0x6
- negs r0, r0
- movs r1, 0x10
- subs r1, r3
- lsls r1, 24
- lsrs r1, 24
- ldr r3, _0807CE60 @ =0x000006c4
- adds r2, r3
- ldrh r2, [r2]
- bl sub_807D304
- movs r0, 0x1
- b _0807CE76
- .align 2, 0
-_0807CE58: .4byte gUnknown_0202F7E8
-_0807CE5C: .4byte 0x000006c7
-_0807CE60: .4byte 0x000006c4
-_0807CE64:
- movs r2, 0x6
- negs r2, r2
- movs r0, 0
- movs r1, 0x20
- bl sub_807CEBC
- movs r0, 0x10
- strb r0, [r4]
-_0807CE74:
- movs r0, 0
-_0807CE76:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_807CE24
-
- thumb_func_start sub_807CE7C
-sub_807CE7C: @ 807CE7C
- push {lr}
- ldr r2, _0807CEA4 @ =gUnknown_0202F7E8
- ldr r1, _0807CEA8 @ =0x000006c7
- adds r0, r2, r1
- ldrb r1, [r0]
- cmp r1, 0x10
- beq _0807CEB0
- adds r1, 0x1
- strb r1, [r0]
- movs r0, 0x10
- subs r0, r1
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _0807CEAC @ =0x000006c4
- adds r1, r2, r3
- ldrh r1, [r1]
- bl sub_807D424
- movs r0, 0x1
- b _0807CEB2
- .align 2, 0
-_0807CEA4: .4byte gUnknown_0202F7E8
-_0807CEA8: .4byte 0x000006c7
-_0807CEAC: .4byte 0x000006c4
-_0807CEB0:
- movs r0, 0
-_0807CEB2:
- pop {r1}
- bx r1
- thumb_func_end sub_807CE7C
-
- thumb_func_start nullsub_39
-nullsub_39: @ 807CEB8
- bx lr
- thumb_func_end nullsub_39
-
thumb_func_start sub_807CEBC
sub_807CEBC: @ 807CEBC
push {r4-r7,lr}
@@ -2728,43 +1880,43 @@ _0807DCD0:
.4byte _0807DD40
_0807DCF8:
movs r0, 0x1
- bl sub_808070C
+ bl SetWeather
b _0807DD46
_0807DD00:
movs r0, 0x2
- bl sub_808070C
+ bl SetWeather
b _0807DD46
_0807DD08:
movs r0, 0x3
- bl sub_808070C
+ bl SetWeather
b _0807DD46
_0807DD10:
movs r0, 0x4
- bl sub_808070C
+ bl SetWeather
b _0807DD46
_0807DD18:
movs r0, 0x5
- bl sub_808070C
+ bl SetWeather
b _0807DD46
_0807DD20:
movs r0, 0x6
- bl sub_808070C
+ bl SetWeather
b _0807DD46
_0807DD28:
movs r0, 0x9
- bl sub_808070C
+ bl SetWeather
b _0807DD46
_0807DD30:
movs r0, 0x7
- bl sub_808070C
+ bl SetWeather
b _0807DD46
_0807DD38:
movs r0, 0x8
- bl sub_808070C
+ bl SetWeather
b _0807DD46
_0807DD40:
movs r0, 0xB
- bl sub_808070C
+ bl SetWeather
_0807DD46:
pop {r0}
bx r0
@@ -8235,8 +7387,8 @@ _08080704: .4byte gSaveBlock1
_08080708: .4byte gMapHeader
thumb_func_end sub_80806E4
- thumb_func_start sub_808070C
-sub_808070C: @ 808070C
+ thumb_func_start SetWeather
+SetWeather: @ 808070C
push {lr}
bl SetSav1Weather
bl GetSav1Weather
@@ -8245,10 +7397,10 @@ sub_808070C: @ 808070C
bl DoWeatherEffect
pop {r0}
bx r0
- thumb_func_end sub_808070C
+ thumb_func_end SetWeather
- thumb_func_start sub_8080724
-sub_8080724: @ 8080724
+ thumb_func_start SetWeather_Unused
+SetWeather_Unused: @ 8080724
push {lr}
bl SetSav1Weather
bl GetSav1Weather
@@ -8257,10 +7409,10 @@ sub_8080724: @ 8080724
bl sub_807C988
pop {r0}
bx r0
- thumb_func_end sub_8080724
+ thumb_func_end SetWeather_Unused
- thumb_func_start sub_808073C
-sub_808073C: @ 808073C
+ thumb_func_start DoCurrentWeather
+DoCurrentWeather: @ 808073C
push {lr}
bl GetSav1Weather
lsls r0, 24
@@ -8268,7 +7420,7 @@ sub_808073C: @ 808073C
bl DoWeatherEffect
pop {r0}
bx r0
- thumb_func_end sub_808073C
+ thumb_func_end DoCurrentWeather
thumb_func_start sub_8080750
sub_8080750: @ 8080750
@@ -8418,7 +7570,7 @@ UpdateRainCounter: @ 8080854
bne _0808086E
_08080868:
movs r0, 0x28
- bl sav12_xor_increment
+ bl IncrementGameStat
_0808086E:
pop {r0}
bx r0
diff --git a/common_syms/main.txt b/common_syms/main.txt
index 4f6a7bf83..1e9013411 100644
--- a/common_syms/main.txt
+++ b/common_syms/main.txt
@@ -2,7 +2,7 @@ gKeyRepeatStartDelay
gUnknown_3001764
gMain
gKeyRepeatContinueDelay
-gUnknown_3001BB4
+gSoftResetDisabled
gIntrTable
gLinkVSyncDisabled
IntrMain_Buffer
diff --git a/constants/misc_constants.inc b/constants/misc_constants.inc
index 64f671e8f..dcb3ab287 100644
--- a/constants/misc_constants.inc
+++ b/constants/misc_constants.inc
@@ -31,3 +31,5 @@
.equiv MALE, 0
.equiv FEMALE, 1
+
+ .equiv GAME_LANGUAGE, 2
diff --git a/data/bard_music.s b/data/bard_music.s
new file mode 100644
index 000000000..5a13af0da
--- /dev/null
+++ b/data/bard_music.s
@@ -0,0 +1,240 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+ .align 1
+Unknown_8416F08:
+ .2byte -768, 6144
+
+ .align 1
+Unknown_8416F0C:
+ .2byte 2304, 6144
+
+ .align 1
+Unknown_8416F10:
+ .2byte 256, 6144
+
+ .align 1
+Unknown_8416F14:
+ .2byte 1024, 6144
+
+ .align 1
+Unknown_8416F18:
+ .2byte 2816, 6144
+
+ .align 1
+Unknown_8416F1C:
+ .2byte -768, -256, 6144
+
+ .align 1
+Unknown_8416F22:
+ .2byte -768, 512, 6144
+
+ .align 1
+Unknown_8416F28:
+ .2byte 512, 1024, 6144
+
+ .align 1
+Unknown_8416F2E:
+ .2byte 1536, 2048, 6144
+
+ .align 1
+Unknown_8416F34:
+ .2byte 2304, 2048, 6144
+
+ .align 1
+Unknown_8416F3A:
+ .2byte -768, -256, -768, 6144
+
+ .align 1
+Unknown_8416F42:
+ .2byte 1024, -768, 1024, 6144
+
+ .align 1
+Unknown_8416F4A:
+ .2byte 2304, 2048, 1536, 6144
+
+ .align 1
+Unknown_8416F52:
+ .2byte 256, 512, 1024, 6144
+
+ .align 1
+Unknown_8416F5A:
+ .2byte 1536, 4096, 3328, 6144
+
+ .align 1
+Unknown_8416F62:
+ .2byte 1024, 2304, 1024, 2304, 6144
+
+ .align 1
+Unknown_8416F6C:
+ .2byte 2304, 1024, 3328, 1024, 6144
+
+ .align 1
+Unknown_8416F76:
+ .2byte 256, 512, 1024, 1536, 6144
+
+ .align 1
+Unknown_8416F80:
+ .2byte 2048, 1536, 1024, 512, 6144
+
+ .align 1
+Unknown_8416F8A:
+ .2byte 3840, 3328, 2816, 2560, 6144
+
+ .align 1
+Unknown_8416F94:
+ .2byte -768, -256, 256, 512, 1024, 6144
+
+ .align 1
+Unknown_8416FA0:
+ .2byte 2304, 2048, 1536, 1024, 512, 6144
+
+ .align 1
+Unknown_8416FAC:
+ .2byte 256, 1024, 2304, 1024, 256, 6144
+
+ .align 1
+Unknown_8416FB8:
+ .2byte 2304, 1024, 2304, 1024, -768, 6144
+
+ .align 1
+Unknown_8416FC4:
+ .2byte 2816, 2048, 1024, 1024, 1536, 6144
+
+ .align 1
+Unknown_8416FD0:
+ .2byte -768, -256, 256, 512, 1024, 1536, 6144
+
+ .align 1
+Unknown_8416FDE:
+ .2byte 2048, 1536, 1024, 512, 256, -256, 6144
+
+ .align 1
+Unknown_8416FEC:
+ .2byte 256, 512, 1024, 256, 512, 4096, 6144
+
+ .align 1
+Unknown_8416FFA:
+ .2byte 1024, -768, 2304, 1024, 2304, 1024, 6144
+
+ .align 1
+Unknown_8417008:
+ .2byte 2048, 2304, 2048, 2304, 2048, 2304, 6144
+
+ .align 1
+Unknown_8417016:
+ .2byte 512, 256, 512, 256, 512, 1024, 512, 6144
+
+ .align 1
+Unknown_8417026:
+ .2byte 256, 256, -256, -256, -768, 1024, -768, 6144
+
+ .align 1
+Unknown_8417036:
+ .2byte 2048, 2304, 2816, 3328, 3584, 3328, 2816, 6144
+
+ .align 1
+Unknown_8417046:
+ .2byte 2048, 1536, 1024, 512, 3328, 2816, 2304, 6144
+
+ .align 1
+Unknown_8417056:
+ .2byte 768, 1024, 1536, 2048, 1792, 2048, 1024, 6144
+
+ .align 2
+gUnknown_08417068:: @ 8417068
+ .4byte Unknown_8416F08
+ .4byte Unknown_8416F0C
+ .4byte Unknown_8416F10
+ .4byte Unknown_8416F14
+ .4byte Unknown_8416F18
+ .4byte Unknown_8416F1C
+ .4byte Unknown_8416F22
+ .4byte Unknown_8416F28
+ .4byte Unknown_8416F2E
+ .4byte Unknown_8416F34
+ .4byte Unknown_8416F3A
+ .4byte Unknown_8416F42
+ .4byte Unknown_8416F4A
+ .4byte Unknown_8416F52
+ .4byte Unknown_8416F5A
+ .4byte Unknown_8416F62
+ .4byte Unknown_8416F6C
+ .4byte Unknown_8416F76
+ .4byte Unknown_8416F80
+ .4byte Unknown_8416F8A
+ .4byte Unknown_8416F94
+ .4byte Unknown_8416FA0
+ .4byte Unknown_8416FAC
+ .4byte Unknown_8416FB8
+ .4byte Unknown_8416FC4
+ .4byte Unknown_8416FD0
+ .4byte Unknown_8416FDE
+ .4byte Unknown_8416FEC
+ .4byte Unknown_8416FFA
+ .4byte Unknown_8417008
+ .4byte Unknown_8417016
+ .4byte Unknown_8417026
+ .4byte Unknown_8417036
+ .4byte Unknown_8417046
+ .4byte Unknown_8417056
+
+ .align 2
+gUnknown_084170F4:: @ 84170F4
+ .4byte 9
+ .4byte 22
+ .4byte 15
+ .4byte 16
+ .4byte 39
+ .4byte 21
+ .4byte 9
+ .4byte 30
+ .4byte 24
+ .4byte 15
+ .4byte 25
+ .4byte 12
+ .4byte 22
+ .4byte 45
+ .4byte 24
+ .4byte 15
+ .4byte 40
+ .4byte 9
+ .4byte 21
+ .4byte 42
+ .4byte 18
+ .4byte 9
+ .4byte 22
+ .4byte 15
+ .4byte 27
+ .4byte 48
+ .4byte 18
+ .4byte 27
+ .4byte 33
+ .4byte 24
+ .4byte 25
+ .4byte 39
+ .4byte 19
+ .4byte 16
+ .4byte 54
+ .4byte 18
+ .4byte 9
+ .4byte 45
+ .4byte 15
+ .4byte 12
+ .4byte 39
+ .4byte 23
+ .4byte 5
+ .4byte 45
+ .4byte 12
+ .4byte 21
+ .4byte 48
+ .4byte 12
+ .4byte 21
+ .4byte 69
+ .4byte 18
+ .4byte 15
+
+@ 84171C4
+ .include "data/bard_music.inc"
diff --git a/data/battle_811DA74.s b/data/battle_811DA74.s
new file mode 100644
index 000000000..a17937823
--- /dev/null
+++ b/data/battle_811DA74.s
@@ -0,0 +1,64 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+ .align 2
+gUnknown_083FE4F4:: @ 83FE4F4
+ .4byte dp01t_00_3_getattr
+ .4byte sub_811EC04
+ .4byte sub_811EC10
+ .4byte sub_811F664
+ .4byte sub_811F6D8
+ .4byte sub_811F7F4
+ .4byte sub_811F9D0
+ .4byte sub_811FAE4
+ .4byte sub_811FC30
+ .4byte sub_811FC3C
+ .4byte sub_811FCE8
+ .4byte sub_811FDCC
+ .4byte sub_811FDD8
+ .4byte sub_811FDE4
+ .4byte sub_811FDF0
+ .4byte sub_811FDFC
+ .4byte sub_8120094
+ .4byte sub_81200F8
+ .4byte sub_8120104
+ .4byte sub_8120110
+ .4byte sub_812011C
+ .4byte sub_8120128
+ .4byte sub_8120134
+ .4byte sub_8120140
+ .4byte sub_812014C
+ .4byte sub_812023C
+ .4byte sub_8120248
+ .4byte sub_81202BC
+ .4byte sub_8120324
+ .4byte sub_8120330
+ .4byte sub_812033C
+ .4byte sub_8120348
+ .4byte sub_8120354
+ .4byte sub_8120360
+ .4byte sub_812036C
+ .4byte sub_8120378
+ .4byte sub_8120384
+ .4byte sub_8120390
+ .4byte sub_81203AC
+ .4byte sub_81203E4
+ .4byte sub_81203FC
+ .4byte dp01t_29_3_blink
+ .4byte sub_8120494
+ .4byte sub_81204A0
+ .4byte sub_81204E4
+ .4byte sub_8120514
+ .4byte dp01t_2E_3_battle_intro
+ .4byte sub_8120588
+ .4byte dp01t_30_3_80EB11C
+ .4byte sub_8120920
+ .4byte sub_812096C
+ .4byte sub_8120978
+ .4byte sub_81209D8
+ .4byte sub_8120A40
+ .4byte sub_8120A4C
+ .4byte sub_8120A58
+ .4byte nullsub_75
diff --git a/data/battle_ai.s b/data/battle_ai.s
new file mode 100644
index 000000000..0d38042f1
--- /dev/null
+++ b/data/battle_ai.s
@@ -0,0 +1,117 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+ .align 2
+gBattleAICmdTable:: @ 83F6144
+ .4byte BattleAICmd_if_random
+ .4byte BattleAICmd_if_not_random
+ .4byte BattleAICmd_if_random_1
+ .4byte BattleAICmd_if_not_random_1
+ .4byte BattleAICmd_score
+ .4byte BattleAICmd_if_hp_less_than
+ .4byte BattleAICmd_if_hp_more_than
+ .4byte BattleAICmd_if_hp_equal
+ .4byte BattleAICmd_if_hp_not_equal
+ .4byte BattleAICmd_if_status
+ .4byte BattleAICmd_if_not_status
+ .4byte BattleAICmd_if_status2
+ .4byte BattleAICmd_if_not_status2
+ .4byte BattleAICmd_if_status3
+ .4byte BattleAICmd_if_not_status3
+ .4byte BattleAICmd_if_status4
+ .4byte BattleAICmd_if_not_status4
+ .4byte BattleAICmd_if_less_than
+ .4byte BattleAICmd_if_more_than
+ .4byte BattleAICmd_if_equal
+ .4byte BattleAICmd_if_not_equal
+ .4byte BattleAICmd_if_less_than_32
+ .4byte BattleAICmd_if_more_than_32
+ .4byte BattleAICmd_if_equal_32
+ .4byte BattleAICmd_if_not_equal_32
+ .4byte BattleAICmd_if_move
+ .4byte BattleAICmd_if_not_move
+ .4byte BattleAICmd_if_in_bytes
+ .4byte BattleAICmd_if_not_in_bytes
+ .4byte BattleAICmd_if_in_words
+ .4byte BattleAICmd_if_not_in_words
+ .4byte BattleAICmd_if_user_can_damage
+ .4byte BattleAICmd_if_user_cant_damage
+ .4byte BattleAICmd_unk_21
+ .4byte BattleAICmd_get_type
+ .4byte BattleAICmd_unk_23
+ .4byte BattleAICmd_unk_24
+ .4byte BattleAICmd_get_move
+ .4byte BattleAICmd_if_type
+ .4byte BattleAICmd_unk_27
+ .4byte BattleAICmd_if_would_go_first
+ .4byte BattleAICmd_if_would_not_go_first
+ .4byte BattleAICmd_unk_2A
+ .4byte BattleAICmd_unk_2B
+ .4byte BattleAICmd_count_alive_pokemon
+ .4byte BattleAICmd_unk_2D
+ .4byte BattleAICmd_unk_2E
+ .4byte BattleAICmd_get_ability
+ .4byte BattleAICmd_unk_30
+ .4byte BattleAICmd_if_damage_bonus
+ .4byte BattleAICmd_unk_32
+ .4byte BattleAICmd_unk_33
+ .4byte BattleAICmd_if_status_in_party
+ .4byte BattleAICmd_if_status_not_in_party
+ .4byte BattleAICmd_unk_36
+ .4byte BattleAICmd_if_effect
+ .4byte BattleAICmd_if_not_effect
+ .4byte BattleAICmd_if_stat_level_less_than
+ .4byte BattleAICmd_if_stat_level_more_than
+ .4byte BattleAICmd_if_stat_level_equal
+ .4byte BattleAICmd_if_stat_level_not_equal
+ .4byte BattleAICmd_if_can_faint
+ .4byte BattleAICmd_if_cant_faint
+ .4byte BattleAICmd_unk_3F
+ .4byte BattleAICmd_unk_40
+ .4byte BattleAICmd_if_move_effect
+ .4byte BattleAICmd_if_not_move_effect
+ .4byte BattleAICmd_if_last_move_did_damage
+ .4byte BattleAICmd_if_encored
+ .4byte BattleAICmd_unk_45
+ .4byte BattleAICmd_if_random_2
+ .4byte BattleAICmd_unk_47
+ .4byte BattleAICmd_get_hold_effect
+ .4byte BattleAICmd_get_gender
+ .4byte BattleAICmd_is_first_turn
+ .4byte BattleAICmd_get_stockpile_count
+ .4byte BattleAICmd_unk_4C
+ .4byte BattleAICmd_get_item
+ .4byte BattleAICmd_unk_4E
+ .4byte BattleAICmd_unk_4F
+ .4byte BattleAICmd_unk_50
+ .4byte BattleAICmd_get_protect_count
+ .4byte BattleAICmd_unk_52
+ .4byte BattleAICmd_unk_53
+ .4byte BattleAICmd_unk_54
+ .4byte BattleAICmd_unk_55
+ .4byte BattleAICmd_unk_56
+ .4byte BattleAICmd_unk_57
+ .4byte BattleAICmd_call
+ .4byte BattleAICmd_jump
+ .4byte BattleAICmd_unk_5A
+ .4byte BattleAICmd_if_level_cond
+ .4byte BattleAICmd_if_taunted
+ .4byte BattleAICmd_if_not_taunted
+
+ .align 1
+gUnknown_083F62BC:: @ 83F62BC
+ .2byte EFFECT_EXPLOSION
+ .2byte EFFECT_DREAM_EATER
+ .2byte EFFECT_RAZOR_WIND
+ .2byte EFFECT_SKY_ATTACK
+ .2byte EFFECT_RECHARGE
+ .2byte EFFECT_SKULL_BASH
+ .2byte EFFECT_SOLARBEAM
+ .2byte EFFECT_SPIT_UP
+ .2byte EFFECT_FOCUS_PUNCH
+ .2byte EFFECT_SUPERPOWER
+ .2byte EFFECT_ERUPTION
+ .2byte EFFECT_OVERHEAT
+ .2byte -1
diff --git a/data/battle_ai_scripts.s b/data/battle_ai_scripts.s
index 86023ca01..dce46a908 100644
--- a/data/battle_ai_scripts.s
+++ b/data/battle_ai_scripts.s
@@ -37,7 +37,7 @@ BattleAIs:: @ 81DA01C
.4byte AI_Unused
.4byte AI_Roaming
.4byte AI_Safari
- .4byte AI_FleeInDanger
+ .4byte AI_GoEasy
AI_CheckBadMove: @ 81DA09C
is_most_powerful_move
@@ -3127,12 +3127,14 @@ AI_Safari: @ 81DC0FE
AI_Safari_Flee: @ 81DC104
flee
-AI_FleeInDanger: @ 81DC105
- if_hp_equal TARGET, 20, AI_FleeInDanger_Flee
- if_hp_less_than TARGET, 20, AI_FleeInDanger_Flee
+@ This AI is used by the wild Poochyena in the first battle in the game.
+@ If it reduces your health to 20% or below, it will flee, allowing you to win.
+AI_GoEasy: @ 81DC105
+ if_hp_equal TARGET, 20, AI_GoEasy_Flee
+ if_hp_less_than TARGET, 20, AI_GoEasy_Flee
end
-AI_FleeInDanger_Flee: @ 81DC114
+AI_GoEasy_Flee: @ 81DC114
flee
AI_Unused: @ 81DC115
diff --git a/data/battle_anim.s b/data/battle_anim.s
new file mode 100644
index 000000000..49f286c60
--- /dev/null
+++ b/data/battle_anim.s
@@ -0,0 +1,1101 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+ .align 2
+gOamData_837DF24:: @ 837DF24
+ .2byte 0x0000
+ .2byte 0x0000
+ .2byte 0x0800
+
+ .align 2
+gOamData_837DF2C:: @ 837DF2C
+ .2byte 0x0000
+ .2byte 0x4000
+ .2byte 0x0800
+
+ .align 2
+gOamData_837DF34:: @ 837DF34
+ .2byte 0x0000
+ .2byte 0x8000
+ .2byte 0x0800
+
+ .align 2
+gOamData_837DF3C:: @ 837DF3C
+ .2byte 0x0000
+ .2byte 0xC000
+ .2byte 0x0800
+
+ .align 2
+gOamData_837DF44:: @ 837DF44
+ .2byte 0x4000
+ .2byte 0x0000
+ .2byte 0x0800
+
+ .align 2
+gOamData_837DF4C:: @ 837DF4C
+ .2byte 0x4000
+ .2byte 0x4000
+ .2byte 0x0800
+
+ .align 2
+gOamData_837DF54:: @ 837DF54
+ .2byte 0x4000
+ .2byte 0x8000
+ .2byte 0x0800
+
+ .align 2
+gOamData_837DF5C:: @ 837DF5C
+ .2byte 0x4000
+ .2byte 0xC000
+ .2byte 0x0800
+
+ .align 2
+gOamData_837DF64:: @ 837DF64
+ .2byte 0x8000
+ .2byte 0x0000
+ .2byte 0x0800
+
+ .align 2
+gOamData_837DF6C:: @ 837DF6C
+ .2byte 0x8000
+ .2byte 0x4000
+ .2byte 0x0800
+
+ .align 2
+gOamData_837DF74:: @ 837DF74
+ .2byte 0x8000
+ .2byte 0x8000
+ .2byte 0x0800
+
+ .align 2
+gOamData_837DF7C:: @ 837DF7C
+ .2byte 0x8000
+ .2byte 0xC000
+ .2byte 0x0800
+
+ .align 2
+gOamData_837DF84:: @ 837DF84
+ .2byte 0x0100
+ .2byte 0x0000
+ .2byte 0x0800
+
+ .align 2
+gOamData_837DF8C:: @ 837DF8C
+ .2byte 0x0100
+ .2byte 0x4000
+ .2byte 0x0800
+
+ .align 2
+gOamData_837DF94:: @ 837DF94
+ .2byte 0x0100
+ .2byte 0x8000
+ .2byte 0x0800
+
+ .align 2
+gOamData_837DF9C:: @ 837DF9C
+ .2byte 0x0100
+ .2byte 0xC000
+ .2byte 0x0800
+
+ .align 2
+gOamData_837DFA4:: @ 837DFA4
+ .2byte 0x4100
+ .2byte 0x0000
+ .2byte 0x0800
+
+ .align 2
+gOamData_837DFAC:: @ 837DFAC
+ .2byte 0x4100
+ .2byte 0x4000
+ .2byte 0x0800
+
+ .align 2
+gOamData_837DFB4:: @ 837DFB4
+ .2byte 0x4100
+ .2byte 0x8000
+ .2byte 0x0800
+
+ .align 2
+gOamData_837DFBC:: @ 837DFBC
+ .2byte 0x4100
+ .2byte 0xC000
+ .2byte 0x0800
+
+ .align 2
+gOamData_837DFC4:: @ 837DFC4
+ .2byte 0x8100
+ .2byte 0x0000
+ .2byte 0x0800
+
+ .align 2
+gOamData_837DFCC:: @ 837DFCC
+ .2byte 0x8100
+ .2byte 0x4000
+ .2byte 0x0800
+
+ .align 2
+gOamData_837DFD4:: @ 837DFD4
+ .2byte 0x8100
+ .2byte 0x8000
+ .2byte 0x0800
+
+ .align 2
+gOamData_837DFDC:: @ 837DFDC
+ .2byte 0x8100
+ .2byte 0xC000
+ .2byte 0x0800
+
+ .align 2
+gOamData_837DFE4:: @ 837DFE4
+ .2byte 0x0300
+ .2byte 0x0000
+ .2byte 0x0800
+
+ .align 2
+gOamData_837DFEC:: @ 837DFEC
+ .2byte 0x0300
+ .2byte 0x4000
+ .2byte 0x0800
+
+ .align 2
+gOamData_837DFF4:: @ 837DFF4
+ .2byte 0x0300
+ .2byte 0x8000
+ .2byte 0x0800
+
+ .align 2
+gOamData_837DFFC:: @ 837DFFC
+ .2byte 0x0300
+ .2byte 0xC000
+ .2byte 0x0800
+
+ .align 2
+gOamData_837D004:: @ 837D004
+ .2byte 0x4300
+ .2byte 0x0000
+ .2byte 0x0800
+
+ .align 2
+gOamData_837D00C:: @ 837D00C
+ .2byte 0x4300
+ .2byte 0x4000
+ .2byte 0x0800
+
+ .align 2
+gOamData_837E014:: @ 837E014
+ .2byte 0x4300
+ .2byte 0x8000
+ .2byte 0x0800
+
+ .align 2
+gOamData_837E01C:: @ 837E01C
+ .2byte 0x4300
+ .2byte 0xC000
+ .2byte 0x0800
+
+ .align 2
+gOamData_837E024:: @ 837E024
+ .2byte 0x8300
+ .2byte 0x0000
+ .2byte 0x0800
+
+ .align 2
+gOamData_837E02C:: @ 837E02C
+ .2byte 0x8300
+ .2byte 0x4000
+ .2byte 0x0800
+
+ .align 2
+gOamData_837E034:: @ 837E034
+ .2byte 0x8300
+ .2byte 0x8000
+ .2byte 0x0800
+
+ .align 2
+gOamData_837E03C:: @ 837E03C
+ .2byte 0x8300
+ .2byte 0xC000
+ .2byte 0x0800
+
+ .align 2
+gOamData_837E044:: @ 837E044
+ .2byte 0x0400
+ .2byte 0x0000
+ .2byte 0x0800
+
+ .align 2
+gOamData_837E04C:: @ 837E04C
+ .2byte 0x0400
+ .2byte 0x4000
+ .2byte 0x0800
+
+ .align 2
+gOamData_837E054:: @ 837E054
+ .2byte 0x0400
+ .2byte 0x8000
+ .2byte 0x0800
+
+ .align 2
+gOamData_837E05C:: @ 837E05C
+ .2byte 0x0400
+ .2byte 0xC000
+ .2byte 0x0800
+
+ .align 2
+gOamData_837E064:: @ 837E064
+ .2byte 0x4400
+ .2byte 0x0000
+ .2byte 0x0800
+
+ .align 2
+gOamData_837E06C:: @ 837E06C
+ .2byte 0x4400
+ .2byte 0x4000
+ .2byte 0x0800
+
+ .align 2
+gOamData_837E074:: @ 837E074
+ .2byte 0x4400
+ .2byte 0x8000
+ .2byte 0x0800
+
+ .align 2
+gOamData_837E07C:: @ 837E07C
+ .2byte 0x4400
+ .2byte 0xC000
+ .2byte 0x0800
+
+ .align 2
+gOamData_837E084:: @ 837E084
+ .2byte 0x8400
+ .2byte 0x0000
+ .2byte 0x0800
+
+ .align 2
+gOamData_837E08C:: @ 837E08C
+ .2byte 0x8400
+ .2byte 0x4000
+ .2byte 0x0800
+
+ .align 2
+gOamData_837E094:: @ 837E094
+ .2byte 0x8400
+ .2byte 0x8000
+ .2byte 0x0800
+
+ .align 2
+gOamData_837E09C:: @ 837E09C
+ .2byte 0x8400
+ .2byte 0xC000
+ .2byte 0x0800
+
+ .align 2
+gOamData_837E0A4:: @ 837E0A4
+ .2byte 0x0500
+ .2byte 0x0000
+ .2byte 0x0800
+
+ .align 2
+gOamData_837E0AC:: @ 837E0AC
+ .2byte 0x0500
+ .2byte 0x4000
+ .2byte 0x0800
+
+ .align 2
+gOamData_837E0B4:: @ 837E0B4
+ .2byte 0x0500
+ .2byte 0x8000
+ .2byte 0x0800
+
+ .align 2
+gOamData_837E0BC:: @ 837E0BC
+ .2byte 0x0500
+ .2byte 0xC000
+ .2byte 0x0800
+
+ .align 2
+gOamData_837E0C4:: @ 837E0C4
+ .2byte 0x4500
+ .2byte 0x0000
+ .2byte 0x0800
+
+ .align 2
+gOamData_837E0CC:: @ 837E0CC
+ .2byte 0x4500
+ .2byte 0x4000
+ .2byte 0x0800
+
+ .align 2
+gOamData_837E0D4:: @ 837E0D4
+ .2byte 0x4500
+ .2byte 0x8000
+ .2byte 0x0800
+
+ .align 2
+gOamData_837E0DC:: @ 837E0DC
+ .2byte 0x4500
+ .2byte 0xC000
+ .2byte 0x0800
+
+ .align 2
+gOamData_837E0E4:: @ 837E0E4
+ .2byte 0x8500
+ .2byte 0x0000
+ .2byte 0x0800
+
+ .align 2
+gOamData_837E0EC:: @ 837E0EC
+ .2byte 0x8500
+ .2byte 0x4000
+ .2byte 0x0800
+
+ .align 2
+gOamData_837E0F4:: @ 837E0F4
+ .2byte 0x8500
+ .2byte 0x8000
+ .2byte 0x0800
+
+ .align 2
+gOamData_837E0FC:: @ 837E0FC
+ .2byte 0x8500
+ .2byte 0xC000
+ .2byte 0x0800
+
+ .align 2
+gOamData_837E104:: @ 837E104
+ .2byte 0x0700
+ .2byte 0x0000
+ .2byte 0x0800
+
+ .align 2
+gOamData_837E10C:: @ 837E10C
+ .2byte 0x0700
+ .2byte 0x4000
+ .2byte 0x0800
+
+ .align 2
+gOamData_837E114:: @ 837E114
+ .2byte 0x0700
+ .2byte 0x8000
+ .2byte 0x0800
+
+ .align 2
+gOamData_837E11C:: @ 837E11C
+ .2byte 0x0700
+ .2byte 0xC000
+ .2byte 0x0800
+
+ .align 2
+gOamData_837E124:: @ 837E124
+ .2byte 0x4700
+ .2byte 0x0000
+ .2byte 0x0800
+
+ .align 2
+gOamData_837E12C:: @ 837E12C
+ .2byte 0x4700
+ .2byte 0x4000
+ .2byte 0x0800
+
+ .align 2
+gOamData_837E134:: @ 837E134
+ .2byte 0x4700
+ .2byte 0x8000
+ .2byte 0x0800
+
+ .align 2
+gOamData_837E13C:: @ 837E13C
+ .2byte 0x4700
+ .2byte 0xC000
+ .2byte 0x0800
+
+ .align 2
+gOamData_837E144:: @ 837E144
+ .2byte 0x8700
+ .2byte 0x0000
+ .2byte 0x0800
+
+ .align 2
+gOamData_837E14C:: @ 837E14C
+ .2byte 0x8700
+ .2byte 0x4000
+ .2byte 0x0800
+
+ .align 2
+gOamData_837E154:: @ 837E154
+ .2byte 0x8700
+ .2byte 0x8000
+ .2byte 0x0800
+
+ .align 2
+gOamData_837E15C:: @ 837E15C
+ .2byte 0x8700
+ .2byte 0xC000
+ .2byte 0x0800
+
+ .align 2
+gBattleAnimPicTable:: @ 837E164
+ obj_tiles gBattleAnimSpriteSheet_000, 0x200, 10000
+ obj_tiles gBattleAnimSpriteSheet_001, 0x300, 10001
+ obj_tiles gBattleAnimSpriteSheet_002, 0x200, 10002
+ obj_tiles gBattleAnimSpriteSheet_003, 0x100, 10003
+ obj_tiles gBattleAnimSpriteSheet_004, 0x200, 10004
+ obj_tiles gBattleAnimSpriteSheet_005, 0x400, 10005
+ obj_tiles gBattleAnimSpriteSheet_006, 0x180, 10006
+ obj_tiles gBattleAnimSpriteSheet_007, 0x800, 10007
+ obj_tiles gBattleAnimSpriteSheet_008, 0x20, 10008
+ obj_tiles gBattleAnimSpriteSheet_009, 0x400, 10009
+ obj_tiles gBattleAnimSpriteSheet_010, 0x1200, 10010
+ obj_tiles gBattleAnimSpriteSheet_011, 0x180, 10011
+ obj_tiles gBattleAnimSpriteSheet_012, 0x80, 10012
+ obj_tiles gBattleAnimSpriteSheet_013, 0x80, 10013
+ obj_tiles gBattleAnimSpriteSheet_014, 0x280, 10014
+ obj_tiles gBattleAnimSpriteSheet_015, 0x80, 10015
+ obj_tiles gBattleAnimSpriteSheet_016, 0x100, 10016
+ obj_tiles gBattleAnimSpriteSheet_017, 0x20, 10017
+ obj_tiles gBattleAnimSpriteSheet_018, 0x80, 10018
+ obj_tiles gBattleAnimSpriteSheet_019, 0x400, 10019
+ obj_tiles gBattleAnimSpriteSheet_020, 0x200, 10020
+ obj_tiles gBattleAnimSpriteSheet_021, 0xA00, 10021
+ obj_tiles gBattleAnimSpriteSheet_021, 0xA00, 10022
+ obj_tiles gBattleAnimSpriteSheet_023, 0x380, 10023
+ obj_tiles gBattleAnimSpriteSheet_024, 0x300, 10024
+ obj_tiles gBattleAnimSpriteSheet_025, 0xA00, 10025
+ obj_tiles gBattleAnimSpriteSheet_026, 0xA00, 10026
+ obj_tiles gBattleAnimSpriteSheet_027, 0xA00, 10027
+ obj_tiles gBattleAnimSpriteSheet_028, 0xA00, 10028
+ obj_tiles gBattleAnimSpriteSheet_029, 0xA00, 10029
+ obj_tiles gBattleAnimSpriteSheet_030, 0xA00, 10030
+ obj_tiles gBattleAnimSpriteSheet_031, 0xE00, 10031
+ obj_tiles gBattleAnimSpriteSheet_032, 0x380, 10032
+ obj_tiles gBattleAnimSpriteSheet_033, 0x1000, 10033
+ obj_tiles gBattleAnimSpriteSheet_034, 0x800, 10034
+ obj_tiles gBattleAnimSpriteSheet_035, 0xA00, 10035
+ obj_tiles gBattleAnimSpriteSheet_036, 0x800, 10036
+ obj_tiles gBattleAnimSpriteSheet_037, 0xA00, 10037
+ obj_tiles gBattleAnimSpriteSheet_038, 0xA00, 10038
+ obj_tiles gBattleAnimSpriteSheet_039, 0xA00, 10039
+ obj_tiles gBattleAnimSpriteSheet_040, 0xA00, 10040
+ obj_tiles gBattleAnimSpriteSheet_041, 0xA00, 10041
+ obj_tiles gBattleAnimSpriteSheet_042, 0xA00, 10042
+ obj_tiles gBattleAnimSpriteSheet_043, 0xA00, 10043
+ obj_tiles gBattleAnimSpriteSheet_044, 0xA00, 10044
+ obj_tiles gBattleAnimSpriteSheet_045, 0xA00, 10045
+ obj_tiles gBattleAnimSpriteSheet_046, 0x1000, 10046
+ obj_tiles gBattleAnimSpriteSheet_046, 0x1000, 10047
+ obj_tiles gBattleAnimSpriteSheet_048, 0x1000, 10048
+ obj_tiles gBattleAnimSpriteSheet_048, 0x1000, 10049
+ obj_tiles gBattleAnimSpriteSheet_050, 0x200, 10050
+ obj_tiles gBattleAnimSpriteSheet_051, 0x200, 10051
+ obj_tiles gBattleAnimSpriteSheet_052, 0x200, 10052
+ obj_tiles gBattleAnimSpriteSheet_053, 0x800, 10053
+ obj_tiles gBattleAnimSpriteSheet_054, 0x80, 10054
+ obj_tiles gBattleAnimSpriteSheet_055, 0x200, 10055
+ obj_tiles gBattleAnimSpriteSheet_056, 0x1000, 10056
+ obj_tiles gBattleAnimSpriteSheet_057, 0x180, 10057
+ obj_tiles gBattleAnimSpriteSheet_058, 0xC00, 10058
+ obj_tiles gBattleAnimSpriteSheet_059, 0x100, 10059
+ obj_tiles gBattleAnimSpriteSheet_060, 0x40, 10060
+ obj_tiles gBattleAnimSpriteSheet_061, 0x180, 10061
+ obj_tiles gBattleAnimSpriteSheet_062, 0x800, 10062
+ obj_tiles gBattleAnimSpriteSheet_063, 0x480, 10063
+ obj_tiles gBattleAnimSpriteSheet_064, 0x200, 10064
+ obj_tiles gBattleAnimSpriteSheet_065, 0x200, 10065
+ obj_tiles gBattleAnimSpriteSheet_066, 0x100, 10066
+ obj_tiles gBattleAnimSpriteSheet_065, 0x200, 10067
+ obj_tiles gBattleAnimSpriteSheet_065, 0x200, 10068
+ obj_tiles gBattleAnimSpriteSheet_065, 0x200, 10069
+ obj_tiles gBattleAnimSpriteSheet_070, 0x200, 10070
+ obj_tiles gBattleAnimSpriteSheet_071, 0xA00, 10071
+ obj_tiles gBattleAnimSpriteSheet_072, 0x300, 10072
+ obj_tiles gBattleAnimSpriteSheet_073, 0x180, 10073
+ obj_tiles gBattleAnimSpriteSheet_074, 0xA0, 10074
+ obj_tiles gBattleAnimSpriteSheet_075, 0x700, 10075
+ obj_tiles gBattleAnimSpriteSheet_076, 0x400, 10076
+ obj_tiles gBattleAnimSpriteSheet_077, 0x200, 10077
+ obj_tiles gBattleAnimSpriteSheet_078, 0x300, 10078
+ obj_tiles gBattleAnimSpriteSheet_079, 0xC00, 10079
+ obj_tiles gBattleAnimSpriteSheet_080, 0xA00, 10080
+ obj_tiles gBattleAnimSpriteSheet_081, 0x80, 10081
+ obj_tiles gBattleAnimSpriteSheet_082, 0x40, 10082
+ obj_tiles gBattleAnimSpriteSheet_083, 0xE00, 10083
+ obj_tiles gBattleAnimSpriteSheet_084, 0xE00, 10084
+ obj_tiles gBattleAnimSpriteSheet_085, 0x280, 10085
+ obj_tiles gBattleAnimSpriteSheet_086, 0x200, 10086
+ obj_tiles gBattleAnimSpriteSheet_087, 0x80, 10087
+ obj_tiles gBattleAnimSpriteSheet_088, 0xC0, 10088
+ obj_tiles gBattleAnimSpriteSheet_089, 0xA00, 10089
+ obj_tiles gBattleAnimSpriteSheet_090, 0x200, 10090
+ obj_tiles gBattleAnimSpriteSheet_091, 0x180, 10091
+ obj_tiles gBattleAnimSpriteSheet_092, 0x80, 10092
+ obj_tiles gBattleAnimSpriteSheet_093, 0x1000, 10093
+ obj_tiles gBattleAnimSpriteSheet_094, 0xA00, 10094
+ obj_tiles gBattleAnimSpriteSheet_095, 0x180, 10095
+ obj_tiles gBattleAnimSpriteSheet_096, 0x380, 10096
+ obj_tiles gBattleAnimSpriteSheet_097, 0xC00, 10097
+ obj_tiles gBattleAnimSpriteSheet_098, 0x200, 10098
+ obj_tiles gBattleAnimSpriteSheet_099, 0x200, 10099
+ obj_tiles gBattleAnimSpriteSheet_100, 0x200, 10100
+ obj_tiles gBattleAnimSpriteSheet_101, 0x200, 10101
+ obj_tiles gBattleAnimSpriteSheet_102, 0x400, 10102
+ obj_tiles gBattleAnimSpriteSheet_103, 0x80, 10103
+ obj_tiles gBattleAnimSpriteSheet_104, 0x400, 10104
+ obj_tiles gBattleAnimSpriteSheet_105, 0xC00, 10105
+ obj_tiles gBattleAnimSpriteSheet_106, 0x200, 10106
+ obj_tiles gBattleAnimSpriteSheet_107, 0x1000, 10107
+ obj_tiles gBattleAnimSpriteSheet_108, 0xA00, 10108
+ obj_tiles gBattleAnimSpriteSheet_109, 0x20, 10109
+ obj_tiles gBattleAnimSpriteSheet_110, 0xE00, 10110
+ obj_tiles gBattleAnimSpriteSheet_111, 0x80, 10111
+ obj_tiles gBattleAnimSpriteSheet_112, 0xA00, 10112
+ obj_tiles gBattleAnimSpriteSheet_113, 0x400, 10113
+ obj_tiles gBattleAnimSpriteSheet_114, 0x200, 10114
+ obj_tiles gBattleAnimSpriteSheet_115, 0x700, 10115
+ obj_tiles gBattleAnimSpriteSheet_116, 0x800, 10116
+ obj_tiles gBattleAnimSpriteSheet_117, 0xA00, 10117
+ obj_tiles gBattleAnimSpriteSheet_118, 0x600, 10118
+ obj_tiles gBattleAnimSpriteSheet_119, 0x800, 10119
+ obj_tiles gBattleAnimSpriteSheet_120, 0x200, 10120
+ obj_tiles gBattleAnimSpriteSheet_121, 0x40, 10121
+ obj_tiles gBattleAnimSpriteSheet_122, 0x180, 10122
+ obj_tiles gBattleAnimSpriteSheet_123, 0x600, 10123
+ obj_tiles gBattleAnimSpriteSheet_124, 0x600, 10124
+ obj_tiles gBattleAnimSpriteSheet_125, 0x200, 10125
+ obj_tiles gBattleAnimSpriteSheet_126, 0x80, 10126
+ obj_tiles gBattleAnimSpriteSheet_127, 0x200, 10127
+ obj_tiles gBattleAnimSpriteSheet_128, 0x800, 10128
+ obj_tiles gBattleAnimSpriteSheet_129, 0x80, 10129
+ obj_tiles gBattleAnimSpriteSheet_130, 0xA00, 10130
+ obj_tiles gBattleAnimSpriteSheet_131, 0x280, 10131
+ obj_tiles gBattleAnimSpriteSheet_132, 0x280, 10132
+ obj_tiles gBattleAnimSpriteSheet_133, 0x100, 10133
+ obj_tiles gBattleAnimSpriteSheet_134, 0x200, 10134
+ obj_tiles gBattleAnimSpriteSheet_135, 0x200, 10135
+ obj_tiles gBattleAnimSpriteSheet_136, 0x20, 10136
+ obj_tiles gBattleAnimSpriteSheet_137, 0xA00, 10137
+ obj_tiles gBattleAnimSpriteSheet_138, 0x800, 10138
+ obj_tiles gBattleAnimSpriteSheet_139, 0x800, 10139
+ obj_tiles gBattleAnimSpriteSheet_140, 0xC0, 10140
+ obj_tiles gBattleAnimSpriteSheet_141, 0x1C0, 10141
+ obj_tiles gBattleAnimSpriteSheet_142, 0x100, 10142
+ obj_tiles gBattleAnimSpriteSheet_143, 0x800, 10143
+ obj_tiles gBattleAnimSpriteSheet_144, 0x200, 10144
+ obj_tiles gBattleAnimSpriteSheet_145, 0x800, 10145
+ obj_tiles gBattleAnimSpriteSheet_146, 0x180, 10146
+ obj_tiles gBattleAnimSpriteSheet_147, 0x180, 10147
+ obj_tiles gBattleAnimSpriteSheet_148, 0x200, 10148
+ obj_tiles gBattleAnimSpriteSheet_149, 0x200, 10149
+ obj_tiles gBattleAnimSpriteSheet_150, 0x180, 10150
+ obj_tiles gBattleAnimSpriteSheet_151, 0x400, 10151
+ obj_tiles gBattleAnimSpriteSheet_152, 0x80, 10152
+ obj_tiles gBattleAnimSpriteSheet_153, 0x100, 10153
+ obj_tiles gBattleAnimSpriteSheet_154, 0x100, 10154
+ obj_tiles gBattleAnimSpriteSheet_155, 0x140, 10155
+ obj_tiles gBattleAnimSpriteSheet_156, 0x800, 10156
+ obj_tiles gBattleAnimSpriteSheet_157, 0x200, 10157
+ obj_tiles gBattleAnimSpriteSheet_158, 0x100, 10158
+ obj_tiles gBattleAnimSpriteSheet_159, 0xA0, 10159
+ obj_tiles gBattleAnimSpriteSheet_160, 0x100, 10160
+ obj_tiles gBattleAnimSpriteSheet_161, 0x80, 10161
+ obj_tiles gBattleAnimSpriteSheet_162, 0x300, 10162
+ obj_tiles gBattleAnimSpriteSheet_163, 0x100, 10163
+ obj_tiles gBattleAnimSpriteSheet_163, 0x100, 10164
+ obj_tiles gBattleAnimSpriteSheet_163, 0x100, 10165
+ obj_tiles gBattleAnimSpriteSheet_166, 0x800, 10166
+ obj_tiles gBattleAnimSpriteSheet_166, 0x800, 10167
+ obj_tiles gBattleAnimSpriteSheet_166, 0x800, 10168
+ obj_tiles gBattleAnimSpriteSheet_166, 0x800, 10169
+ obj_tiles gBattleAnimSpriteSheet_166, 0x800, 10170
+ obj_tiles gBattleAnimSpriteSheet_171, 0x80, 10171
+ obj_tiles gBattleAnimSpriteSheet_144, 0x200, 10172
+ obj_tiles gBattleAnimSpriteSheet_173, 0x200, 10173
+ obj_tiles gBattleAnimSpriteSheet_174, 0x200, 10174
+ obj_tiles gBattleAnimSpriteSheet_175, 0x80, 10175
+ obj_tiles gBattleAnimSpriteSheet_176, 0x200, 10176
+ obj_tiles gBattleAnimSpriteSheet_177, 0x500, 10177
+ obj_tiles gBattleAnimSpriteSheet_178, 0x800, 10178
+ obj_tiles gBattleAnimSpriteSheet_179, 0x400, 10179
+ obj_tiles gBattleAnimSpriteSheet_180, 0x20, 10180
+ obj_tiles gBattleAnimSpriteSheet_181, 0x800, 10181
+ obj_tiles gBattleAnimSpriteSheet_182, 0x100, 10182
+ obj_tiles gBattleAnimSpriteSheet_183, 0x800, 10183
+ obj_tiles gBattleAnimSpriteSheet_184, 0x400, 10184
+ obj_tiles gBattleAnimSpriteSheet_185, 0xA00, 10185
+ obj_tiles gBattleAnimSpriteSheet_186, 0x1000, 10186
+ obj_tiles gBattleAnimSpriteSheet_187, 0x800, 10187
+ obj_tiles gBattleAnimSpriteSheet_188, 0x400, 10188
+ obj_tiles gBattleAnimSpriteSheet_189, 0x200, 10189
+ obj_tiles gBattleAnimSpriteSheet_190, 0x800, 10190
+ obj_tiles gBattleAnimSpriteSheet_191, 0x800, 10191
+ obj_tiles gBattleAnimSpriteSheet_192, 0x800, 10192
+ obj_tiles gBattleAnimSpriteSheet_193, 0x200, 10193
+ obj_tiles gBattleAnimSpriteSheet_194, 0x800, 10194
+ obj_tiles gBattleAnimSpriteSheet_195, 0x200, 10195
+ obj_tiles gBattleAnimSpriteSheet_196, 0x800, 10196
+ obj_tiles gBattleAnimSpriteSheet_197, 0x200, 10197
+ obj_tiles gBattleAnimSpriteSheet_198, 0x800, 10198
+ obj_tiles gBattleAnimSpriteSheet_199, 0x400, 10199
+ obj_tiles gBattleAnimSpriteSheet_200, 0x200, 10200
+ obj_tiles gBattleAnimSpriteSheet_201, 0xA80, 10201
+ obj_tiles gBattleAnimSpriteSheet_202, 0x600, 10202
+ obj_tiles gBattleAnimSpriteSheet_203, 0x800, 10203
+ obj_tiles gBattleAnimSpriteSheet_204, 0x200, 10204
+ obj_tiles gBattleAnimSpriteSheet_205, 0x600, 10205
+ obj_tiles gBattleAnimSpriteSheet_206, 0x800, 10206
+ obj_tiles gBattleAnimSpriteSheet_207, 0x180, 10207
+ obj_tiles gBattleAnimSpriteSheet_208, 0x800, 10208
+ obj_tiles gBattleAnimSpriteSheet_209, 0x800, 10209
+ obj_tiles gBattleAnimSpriteSheet_210, 0x80, 10210
+ obj_tiles gBattleAnimSpriteSheet_211, 0x80, 10211
+ obj_tiles gBattleAnimSpriteSheet_212, 0x800, 10212
+ obj_tiles gBattleAnimSpriteSheet_213, 0x800, 10213
+ obj_tiles gBattleAnimSpriteSheet_214, 0x600, 10214
+ obj_tiles gBattleAnimSpriteSheet_215, 0x600, 10215
+ obj_tiles gBattleAnimSpriteSheet_210, 0x80, 10216
+ obj_tiles gBattleAnimSpriteSheet_217, 0x80, 10217
+ obj_tiles gBattleAnimSpriteSheet_218, 0x180, 10218
+ obj_tiles gBattleAnimSpriteSheet_210, 0x80, 10219
+ obj_tiles gBattleAnimSpriteSheet_220, 0x200, 10220
+ obj_tiles gBattleAnimSpriteSheet_221, 0x400, 10221
+ obj_tiles gBattleAnimSpriteSheet_222, 0xA00, 10222
+ obj_tiles gBattleAnimSpriteSheet_223, 0x800, 10223
+ obj_tiles gBattleAnimSpriteSheet_224, 0x200, 10224
+ obj_tiles gBattleAnimSpriteSheet_225, 0x400, 10225
+ obj_tiles gBattleAnimSpriteSheet_226, 0x80, 10226
+ obj_tiles gBattleAnimSpriteSheet_227, 0x800, 10227
+ obj_tiles gBattleAnimSpriteSheet_228, 0x200, 10228
+ obj_tiles gBattleAnimSpriteSheet_229, 0x300, 10229
+ obj_tiles gBattleAnimSpriteSheet_230, 0x800, 10230
+ obj_tiles gBattleAnimSpriteSheet_231, 0x380, 10231
+ obj_tiles gBattleAnimSpriteSheet_232, 0x800, 10232
+ obj_tiles gBattleAnimSpriteSheet_233, 0xC0, 10233
+ obj_tiles gBattleAnimSpriteSheet_234, 0x800, 10234
+ obj_tiles gBattleAnimSpriteSheet_235, 0x60, 10235
+ obj_tiles gBattleAnimSpriteSheet_235, 0x60, 10236
+ obj_tiles gBattleAnimSpriteSheet_235, 0x60, 10237
+ obj_tiles gBattleAnimSpriteSheet_238, 0x80, 10238
+ obj_tiles gBattleAnimSpriteSheet_239, 0x180, 10239
+ obj_tiles gBattleAnimSpriteSheet_240, 0x180, 10240
+ obj_tiles gBattleAnimSpriteSheet_241, 0x200, 10241
+ obj_tiles gBattleAnimSpriteSheet_242, 0x200, 10242
+ obj_tiles gBattleAnimSpriteSheet_243, 0x20, 10243
+ obj_tiles gBattleAnimSpriteSheet_244, 0x400, 10244
+ obj_tiles gBattleAnimSpriteSheet_245, 0x600, 10245
+ obj_tiles gBattleAnimSpriteSheet_246, 0x1000, 10246
+ obj_tiles gBattleAnimSpriteSheet_247, 0x400, 10247
+ obj_tiles gBattleAnimSpriteSheet_248, 0x20, 10248
+ obj_tiles gBattleAnimSpriteSheet_249, 0x80, 10249
+ obj_tiles gBattleAnimSpriteSheet_250, 0x800, 10250
+ obj_tiles gBattleAnimSpriteSheet_251, 0x80, 10251
+ obj_tiles gBattleAnimSpriteSheet_252, 0x200, 10252
+ obj_tiles gBattleAnimSpriteSheet_253, 0x400, 10253
+ obj_tiles gBattleAnimSpriteSheet_254, 0x200, 10254
+ obj_tiles gBattleAnimSpriteSheet_255, 0x200, 10255
+ obj_tiles gBattleAnimSpriteSheet_256, 0x800, 10256
+ obj_tiles gBattleAnimSpriteSheet_257, 0x280, 10257
+ obj_tiles gBattleAnimSpriteSheet_258, 0x200, 10258
+ obj_tiles gBattleAnimSpriteSheet_149, 0x200, 10259
+ obj_tiles gBattleAnimSpriteSheet_260, 0x400, 10260
+ obj_tiles gBattleAnimSpriteSheet_261, 0x200, 10261
+ obj_tiles gBattleAnimSpriteSheet_262, 0x200, 10262
+ obj_tiles gBattleAnimSpriteSheet_263, 0x80, 10263
+ obj_tiles gBattleAnimSpriteSheet_264, 0x20, 10264
+ obj_tiles gBattleAnimSpriteSheet_264, 0x20, 10265
+ obj_tiles gBattleAnimSpriteSheet_266, 0x80, 10266
+ obj_tiles gBattleAnimSpriteSheet_212, 0x800, 10267
+ obj_tiles gBattleAnimSpriteSheet_264, 0x20, 10268
+ obj_tiles gBattleAnimSpriteSheet_269, 0x80, 10269
+ obj_tiles gBattleAnimSpriteSheet_270, 0x400, 10270
+ obj_tiles gBattleAnimSpriteSheet_271, 0x80, 10271
+ obj_tiles gBattleAnimSpriteSheet_272, 0x800, 10272
+ obj_tiles gBattleAnimSpriteSheet_273, 0x20, 10273
+ obj_tiles gBattleAnimSpriteSheet_274, 0x800, 10274
+ obj_tiles gBattleAnimSpriteSheet_275, 0x800, 10275
+ obj_tiles gBattleAnimSpriteSheet_276, 0x800, 10276
+ obj_tiles gBattleAnimSpriteSheet_277, 0x1000, 10277
+ obj_tiles gBattleAnimSpriteSheet_278, 0x800, 10278
+ obj_tiles gBattleAnimSpriteSheet_279, 0xA0, 10279
+ obj_tiles gBattleAnimSpriteSheet_280, 0x800, 10280
+ obj_tiles gBattleAnimSpriteSheet_281, 0x200, 10281
+ obj_tiles gBattleAnimSpriteSheet_282, 0x600, 10282
+ obj_tiles gBattleAnimSpriteSheet_283, 0x200, 10283
+ obj_tiles gBattleAnimSpriteSheet_284, 0x800, 10284
+ obj_tiles gBattleAnimSpriteSheet_285, 0x200, 10285
+ obj_tiles gBattleAnimSpriteSheet_183, 0x800, 10286
+ obj_tiles gBattleAnimSpriteSheet_056, 0x1000, 10287
+ obj_tiles gBattleAnimSpriteSheet_163, 0x100, 10288
+
+ .align 2
+gBattleAnimPaletteTable:: @ 837EA6C
+ obj_pal gBattleAnimSpritePalette_000, 10000
+ obj_pal gBattleAnimSpritePalette_001, 10001
+ obj_pal gBattleAnimSpritePalette_002, 10002
+ obj_pal gBattleAnimSpritePalette_003, 10003
+ obj_pal gBattleAnimSpritePalette_004, 10004
+ obj_pal gBattleAnimSpritePalette_005, 10005
+ obj_pal gBattleAnimSpritePalette_006, 10006
+ obj_pal gBattleAnimSpritePalette_007, 10007
+ obj_pal gBattleAnimSpritePalette_008, 10008
+ obj_pal gBattleAnimSpritePalette_009, 10009
+ obj_pal gBattleAnimSpritePalette_010, 10010
+ obj_pal gBattleAnimSpritePalette_011, 10011
+ obj_pal gBattleAnimSpritePalette_012, 10012
+ obj_pal gBattleAnimSpritePalette_013, 10013
+ obj_pal gBattleAnimSpritePalette_014, 10014
+ obj_pal gBattleAnimSpritePalette_015, 10015
+ obj_pal gBattleAnimSpritePalette_016, 10016
+ obj_pal gBattleAnimSpritePalette_016, 10017
+ obj_pal gBattleAnimSpritePalette_018, 10018
+ obj_pal gBattleAnimSpritePalette_019, 10019
+ obj_pal gBattleAnimSpritePalette_020, 10020
+ obj_pal gBattleAnimSpritePalette_021, 10021
+ obj_pal gBattleAnimSpritePalette_022, 10022
+ obj_pal gBattleAnimSpritePalette_023, 10023
+ obj_pal gBattleAnimSpritePalette_024, 10024
+ obj_pal gBattleAnimSpritePalette_025, 10025
+ obj_pal gBattleAnimSpritePalette_026, 10026
+ obj_pal gBattleAnimSpritePalette_027, 10027
+ obj_pal gBattleAnimSpritePalette_028, 10028
+ obj_pal gBattleAnimSpritePalette_029, 10029
+ obj_pal gBattleAnimSpritePalette_030, 10030
+ obj_pal gBattleAnimSpritePalette_031, 10031
+ obj_pal gBattleAnimSpritePalette_032, 10032
+ obj_pal gBattleAnimSpritePalette_033, 10033
+ obj_pal gBattleAnimSpritePalette_033, 10034
+ obj_pal gBattleAnimSpritePalette_033, 10035
+ obj_pal gBattleAnimSpritePalette_036, 10036
+ obj_pal gBattleAnimSpritePalette_036, 10037
+ obj_pal gBattleAnimSpritePalette_038, 10038
+ obj_pal gBattleAnimSpritePalette_039, 10039
+ obj_pal gBattleAnimSpritePalette_038, 10040
+ obj_pal gBattleAnimSpritePalette_038, 10041
+ obj_pal gBattleAnimSpritePalette_042, 10042
+ obj_pal gBattleAnimSpritePalette_043, 10043
+ obj_pal gBattleAnimSpritePalette_044, 10044
+ obj_pal gBattleAnimSpritePalette_045, 10045
+ obj_pal gBattleAnimSpritePalette_046, 10046
+ obj_pal gBattleAnimSpritePalette_047, 10046
+ obj_pal gBattleAnimSpritePalette_048, 10048
+ obj_pal gBattleAnimSpritePalette_049, 10049
+ obj_pal gBattleAnimSpritePalette_050, 10050
+ obj_pal gBattleAnimSpritePalette_050, 10051
+ obj_pal gBattleAnimSpritePalette_050, 10052
+ obj_pal gBattleAnimSpritePalette_026, 10053
+ obj_pal gBattleAnimSpritePalette_054, 10054
+ obj_pal gBattleAnimSpritePalette_050, 10055
+ obj_pal gBattleAnimSpritePalette_056, 10056
+ obj_pal gBattleAnimSpritePalette_057, 10057
+ obj_pal gBattleAnimSpritePalette_058, 10058
+ obj_pal gBattleAnimSpritePalette_059, 10059
+ obj_pal gBattleAnimSpritePalette_060, 10060
+ obj_pal gBattleAnimSpritePalette_061, 10061
+ obj_pal gBattleAnimSpritePalette_062, 10062
+ obj_pal gBattleAnimSpritePalette_063, 10063
+ obj_pal gBattleAnimSpritePalette_064, 10064
+ obj_pal gBattleAnimSpritePalette_065, 10065
+ obj_pal gBattleAnimSpritePalette_066, 10066
+ obj_pal gBattleAnimSpritePalette_067, 10067
+ obj_pal gBattleAnimSpritePalette_068, 10068
+ obj_pal gBattleAnimSpritePalette_065, 10069
+ obj_pal gBattleAnimSpritePalette_070, 10070
+ obj_pal gBattleAnimSpritePalette_070, 10071
+ obj_pal gBattleAnimSpritePalette_072, 10072
+ obj_pal gBattleAnimSpritePalette_073, 10073
+ obj_pal gBattleAnimSpritePalette_074, 10074
+ obj_pal gBattleAnimSpritePalette_075, 10075
+ obj_pal gBattleAnimSpritePalette_076, 10076
+ obj_pal gBattleAnimSpritePalette_076, 10077
+ obj_pal gBattleAnimSpritePalette_078, 10078
+ obj_pal gBattleAnimSpritePalette_078, 10079
+ obj_pal gBattleAnimSpritePalette_080, 10080
+ obj_pal gBattleAnimSpritePalette_081, 10081
+ obj_pal gBattleAnimSpritePalette_082, 10082
+ obj_pal gBattleAnimSpritePalette_083, 10083
+ obj_pal gBattleAnimSpritePalette_084, 10084
+ obj_pal gBattleAnimSpritePalette_085, 10085
+ obj_pal gBattleAnimSpritePalette_086, 10086
+ obj_pal gBattleAnimSpritePalette_087, 10087
+ obj_pal gBattleAnimSpritePalette_088, 10088
+ obj_pal gBattleAnimSpritePalette_089, 10089
+ obj_pal gBattleAnimSpritePalette_090, 10090
+ obj_pal gBattleAnimSpritePalette_091, 10091
+ obj_pal gBattleAnimSpritePalette_092, 10092
+ obj_pal gBattleAnimSpritePalette_093, 10093
+ obj_pal gBattleAnimSpritePalette_094, 10094
+ obj_pal gBattleAnimSpritePalette_095, 10095
+ obj_pal gBattleAnimSpritePalette_096, 10096
+ obj_pal gBattleAnimSpritePalette_097, 10097
+ obj_pal gBattleAnimSpritePalette_094, 10098
+ obj_pal gBattleAnimSpritePalette_099, 10099
+ obj_pal gBattleAnimSpritePalette_100, 10100
+ obj_pal gBattleAnimSpritePalette_101, 10101
+ obj_pal gBattleAnimSpritePalette_101, 10102
+ obj_pal gBattleAnimSpritePalette_103, 10103
+ obj_pal gBattleAnimSpritePalette_104, 10104
+ obj_pal gBattleAnimSpritePalette_105, 10105
+ obj_pal gBattleAnimSpritePalette_105, 10106
+ obj_pal gBattleAnimSpritePalette_107, 10107
+ obj_pal gBattleAnimSpritePalette_107, 10108
+ obj_pal gBattleAnimSpritePalette_109, 10109
+ obj_pal gBattleAnimSpritePalette_109, 10110
+ obj_pal gBattleAnimSpritePalette_111, 10111
+ obj_pal gBattleAnimSpritePalette_112, 10112
+ obj_pal gBattleAnimSpritePalette_113, 10113
+ obj_pal gBattleAnimSpritePalette_114, 10114
+ obj_pal gBattleAnimSpritePalette_115, 10115
+ obj_pal gBattleAnimSpritePalette_116, 10116
+ obj_pal gBattleAnimSpritePalette_117, 10117
+ obj_pal gBattleAnimSpritePalette_118, 10118
+ obj_pal gBattleAnimSpritePalette_119, 10119
+ obj_pal gBattleAnimSpritePalette_120, 10120
+ obj_pal gBattleAnimSpritePalette_121, 10121
+ obj_pal gBattleAnimSpritePalette_122, 10122
+ obj_pal gBattleAnimSpritePalette_122, 10123
+ obj_pal gBattleAnimSpritePalette_124, 10124
+ obj_pal gBattleAnimSpritePalette_125, 10125
+ obj_pal gBattleAnimSpritePalette_126, 10126
+ obj_pal gBattleAnimSpritePalette_127, 10127
+ obj_pal gBattleAnimSpritePalette_128, 10128
+ obj_pal gBattleAnimSpritePalette_128, 10129
+ obj_pal gBattleAnimSpritePalette_130, 10130
+ obj_pal gBattleAnimSpritePalette_130, 10131
+ obj_pal gBattleAnimSpritePalette_132, 10132
+ obj_pal gBattleAnimSpritePalette_133, 10133
+ obj_pal gBattleAnimSpritePalette_133, 10134
+ obj_pal gBattleAnimSpritePalette_135, 10135
+ obj_pal gBattleAnimSpritePalette_136, 10136
+ obj_pal gBattleAnimSpritePalette_135, 10137
+ obj_pal gBattleAnimSpritePalette_135, 10138
+ obj_pal gBattleAnimSpritePalette_139, 10139
+ obj_pal gBattleAnimSpritePalette_140, 10140
+ obj_pal gBattleAnimSpritePalette_141, 10141
+ obj_pal gBattleAnimSpritePalette_141, 10142
+ obj_pal gBattleAnimSpritePalette_143, 10143
+ obj_pal gBattleAnimSpritePalette_144, 10144
+ obj_pal gBattleAnimSpritePalette_139, 10145
+ obj_pal gBattleAnimSpritePalette_115, 10146
+ obj_pal gBattleAnimSpritePalette_147, 10147
+ obj_pal gBattleAnimSpritePalette_148, 10148
+ obj_pal gBattleAnimSpritePalette_148, 10149
+ obj_pal gBattleAnimSpritePalette_150, 10150
+ obj_pal gBattleAnimSpritePalette_150, 10151
+ obj_pal gBattleAnimSpritePalette_152, 10152
+ obj_pal gBattleAnimSpritePalette_153, 10153
+ obj_pal gBattleAnimSpritePalette_154, 10154
+ obj_pal gBattleAnimSpritePalette_155, 10155
+ obj_pal gBattleAnimSpritePalette_156, 10156
+ obj_pal gBattleAnimSpritePalette_157, 10157
+ obj_pal gBattleAnimSpritePalette_158, 10158
+ obj_pal gBattleAnimSpritePalette_159, 10159
+ obj_pal gBattleAnimSpritePalette_160, 10160
+ obj_pal gBattleAnimSpritePalette_161, 10161
+ obj_pal gBattleAnimSpritePalette_162, 10162
+ obj_pal gBattleAnimSpritePalette_163, 10163
+ obj_pal gBattleAnimSpritePalette_164, 10164
+ obj_pal gBattleAnimSpritePalette_165, 10165
+ obj_pal gBattleAnimSpritePalette_166, 10166
+ obj_pal gBattleAnimSpritePalette_167, 10167
+ obj_pal gBattleAnimSpritePalette_168, 10168
+ obj_pal gBattleAnimSpritePalette_169, 10169
+ obj_pal gBattleAnimSpritePalette_170, 10170
+ obj_pal gBattleAnimSpritePalette_171, 10171
+ obj_pal gBattleAnimSpritePalette_172, 10172
+ obj_pal gBattleAnimSpritePalette_001, 10173
+ obj_pal gBattleAnimSpritePalette_174, 10174
+ obj_pal gBattleAnimSpritePalette_175, 10175
+ obj_pal gBattleAnimSpritePalette_176, 10176
+ obj_pal gBattleAnimSpritePalette_177, 10177
+ obj_pal gBattleAnimSpritePalette_178, 10178
+ obj_pal gBattleAnimSpritePalette_179, 10179
+ obj_pal gBattleAnimSpritePalette_179, 10180
+ obj_pal gBattleAnimSpritePalette_179, 10181
+ obj_pal gBattleAnimSpritePalette_182, 10182
+ obj_pal gBattleAnimSpritePalette_183, 10183
+ obj_pal gBattleAnimSpritePalette_184, 10184
+ obj_pal gBattleAnimSpritePalette_185, 10185
+ obj_pal gBattleAnimSpritePalette_186, 10186
+ obj_pal gBattleAnimSpritePalette_187, 10187
+ obj_pal gBattleAnimSpritePalette_188, 10188
+ obj_pal gBattleAnimSpritePalette_189, 10189
+ obj_pal gBattleAnimSpritePalette_190, 10190
+ obj_pal gBattleAnimSpritePalette_191, 10191
+ obj_pal gBattleAnimSpritePalette_192, 10192
+ obj_pal gBattleAnimSpritePalette_193, 10193
+ obj_pal gBattleAnimSpritePalette_194, 10194
+ obj_pal gBattleAnimSpritePalette_195, 10195
+ obj_pal gBattleAnimSpritePalette_196, 10196
+ obj_pal gBattleAnimSpritePalette_197, 10197
+ obj_pal gBattleAnimSpritePalette_198, 10198
+ obj_pal gBattleAnimSpritePalette_199, 10199
+ obj_pal gBattleAnimSpritePalette_200, 10200
+ obj_pal gBattleAnimSpritePalette_201, 10201
+ obj_pal gBattleAnimSpritePalette_202, 10202
+ obj_pal gBattleAnimSpritePalette_203, 10203
+ obj_pal gBattleAnimSpritePalette_204, 10204
+ obj_pal gBattleAnimSpritePalette_205, 10205
+ obj_pal gBattleAnimSpritePalette_206, 10206
+ obj_pal gBattleAnimSpritePalette_207, 10207
+ obj_pal gBattleAnimSpritePalette_167, 10208
+ obj_pal gBattleAnimSpritePalette_209, 10209
+ obj_pal gBattleAnimSpritePalette_210, 10210
+ obj_pal gBattleAnimSpritePalette_211, 10211
+ obj_pal gBattleAnimSpritePalette_211, 10212
+ obj_pal gBattleAnimSpritePalette_211, 10213
+ obj_pal gBattleAnimSpritePalette_064, 10214
+ obj_pal gBattleAnimSpritePalette_215, 10215
+ obj_pal gBattleAnimSpritePalette_216, 10216
+ obj_pal gBattleAnimSpritePalette_217, 10217
+ obj_pal gBattleAnimSpritePalette_218, 10218
+ obj_pal gBattleAnimSpritePalette_219, 10219
+ obj_pal gBattleAnimSpritePalette_220, 10220
+ obj_pal gBattleAnimSpritePalette_221, 10221
+ obj_pal gBattleAnimSpritePalette_222, 10222
+ obj_pal gBattleAnimSpritePalette_223, 10223
+ obj_pal gBattleAnimSpritePalette_224, 10224
+ obj_pal gBattleAnimSpritePalette_225, 10225
+ obj_pal gBattleAnimSpritePalette_226, 10226
+ obj_pal gBattleAnimSpritePalette_226, 10227
+ obj_pal gBattleAnimSpritePalette_228, 10228
+ obj_pal gBattleAnimSpritePalette_229, 10229
+ obj_pal gBattleAnimSpritePalette_230, 10230
+ obj_pal gBattleAnimSpritePalette_231, 10231
+ obj_pal gBattleAnimSpritePalette_231, 10232
+ obj_pal gBattleAnimSpritePalette_233, 10233
+ obj_pal gBattleAnimSpritePalette_234, 10234
+ obj_pal gBattleAnimSpritePalette_235, 10235
+ obj_pal gBattleAnimSpritePalette_236, 10236
+ obj_pal gBattleAnimSpritePalette_237, 10237
+ obj_pal gBattleAnimSpritePalette_238, 10238
+ obj_pal gBattleAnimSpritePalette_239, 10239
+ obj_pal gBattleAnimSpritePalette_240, 10240
+ obj_pal gBattleAnimSpritePalette_241, 10241
+ obj_pal gBattleAnimSpritePalette_242, 10242
+ obj_pal gBattleAnimSpritePalette_243, 10243
+ obj_pal gBattleAnimSpritePalette_244, 10244
+ obj_pal gBattleAnimSpritePalette_245, 10245
+ obj_pal gBattleAnimSpritePalette_245, 10246
+ obj_pal gBattleAnimSpritePalette_064, 10247
+ obj_pal gBattleAnimSpritePalette_248, 10248
+ obj_pal gBattleAnimSpritePalette_249, 10249
+ obj_pal gBattleAnimSpritePalette_249, 10250
+ obj_pal gBattleAnimSpritePalette_251, 10251
+ obj_pal gBattleAnimSpritePalette_252, 10252
+ obj_pal gBattleAnimSpritePalette_253, 10253
+ obj_pal gBattleAnimSpritePalette_254, 10254
+ obj_pal gBattleAnimSpritePalette_255, 10255
+ obj_pal gBattleAnimSpritePalette_256, 10256
+ obj_pal gBattleAnimSpritePalette_257, 10257
+ obj_pal gBattleAnimSpritePalette_258, 10258
+ obj_pal gBattleAnimSpritePalette_259, 10259
+ obj_pal gBattleAnimSpritePalette_260, 10260
+ obj_pal gBattleAnimSpritePalette_261, 10261
+ obj_pal gBattleAnimSpritePalette_262, 10262
+ obj_pal gBattleAnimSpritePalette_263, 10263
+ obj_pal gBattleAnimSpritePalette_264, 10264
+ obj_pal gBattleAnimSpritePalette_265, 10265
+ obj_pal gBattleAnimSpritePalette_266, 10266
+ obj_pal gBattleAnimSpritePalette_267, 10267
+ obj_pal gBattleAnimSpritePalette_268, 10268
+ obj_pal gBattleAnimSpritePalette_269, 10269
+ obj_pal gBattleAnimSpritePalette_270, 10270
+ obj_pal gBattleAnimSpritePalette_271, 10271
+ obj_pal gBattleAnimSpritePalette_272, 10272
+ obj_pal gBattleAnimSpritePalette_272, 10273
+ obj_pal gBattleAnimSpritePalette_274, 10274
+ obj_pal gBattleAnimSpritePalette_274, 10275
+ obj_pal gBattleAnimSpritePalette_274, 10276
+ obj_pal gBattleAnimSpritePalette_277, 10277
+ obj_pal gBattleAnimSpritePalette_278, 10278
+ obj_pal gBattleAnimSpritePalette_279, 10279
+ obj_pal gBattleAnimSpritePalette_280, 10280
+ obj_pal gBattleAnimSpritePalette_281, 10281
+ obj_pal gBattleAnimSpritePalette_282, 10282
+ obj_pal gBattleAnimSpritePalette_283, 10283
+ obj_pal gBattleAnimSpritePalette_284, 10284
+ obj_pal gBattleAnimSpritePalette_285, 10285
+ obj_pal gBattleAnimSpritePalette_286, 10286
+ obj_pal gBattleAnimSpritePalette_287, 10287
+ obj_pal gBattleAnimSpritePalette_288, 10288
+
+ .align 2
+gBattleAnimBackgroundTable:: @ 837F374
+ .4byte gBattleAnimBackgroundImage_00, gBattleAnimBackgroundPalette_00, gBattleAnimBackgroundTilemap_00
+ .4byte gBattleAnimBackgroundImage_00, gBattleAnimBackgroundPalette_00, gBattleAnimBackgroundTilemap_00
+ .4byte gBattleAnimBackgroundImage_02, gBattleAnimBackgroundPalette_02, gBattleAnimBackgroundTilemap_02
+ .4byte gBattleAnimBackgroundImage_03, gBattleAnimBackgroundPalette_03, gBattleAnimBackgroundTilemap_03
+ .4byte gBattleAnimBackgroundImage_04, gBattleAnimBackgroundPalette_04, gBattleAnimBackgroundTilemap_04
+ .4byte gBattleAnimBackgroundImage_04, gBattleAnimBackgroundPalette_04, gBattleAnimBackgroundTilemap_05
+ .4byte gBattleAnimBackgroundImage_04, gBattleAnimBackgroundPalette_04, gBattleAnimBackgroundTilemap_06
+ .4byte gBattleAnimBackgroundImage_07, gBattleAnimBackgroundPalette_07, gBattleAnimBackgroundTilemap_07
+ .4byte gBattleAnimBackgroundImage_07, gBattleAnimBackgroundPalette_07, gBattleAnimBackgroundTilemap_08
+ .4byte gBattleAnimBackgroundImage_09, gBattleAnimBackgroundPalette_09, gBattleAnimBackgroundTilemap_09
+ .4byte gBattleAnimBackgroundImage_09, gBattleAnimBackgroundPalette_09, gBattleAnimBackgroundTilemap_10
+ .4byte gBattleAnimBackgroundImage_11, gBattleAnimBackgroundPalette_11, gBattleAnimBackgroundTilemap_11
+ .4byte gBattleAnimBackgroundImage_12, gBattleAnimBackgroundPalette_12, gBattleAnimBackgroundTilemap_12
+ .4byte gBattleAnimBackgroundImage_12, gBattleAnimBackgroundPalette_12, gBattleAnimBackgroundTilemap_13
+ .4byte gBattleAnimBackgroundImage_12, gBattleAnimBackgroundPalette_12, gBattleAnimBackgroundTilemap_14
+ .4byte gBattleAnimBackgroundImage_15, gBattleAnimBackgroundPalette_15, gBattleAnimBackgroundTilemap_15
+ .4byte gBattleAnimBackgroundImage_16, gBattleAnimBackgroundPalette_16, gBattleAnimBackgroundTilemap_16
+ .4byte gBattleAnimBackgroundImage_17, gBattleAnimBackgroundPalette_17, gBattleAnimBackgroundTilemap_17
+ .4byte gBattleAnimBackgroundImage_07, gBattleAnimBackgroundPalette_18, gBattleAnimBackgroundTilemap_07
+ .4byte gBattleAnimBackgroundImage_07, gBattleAnimBackgroundPalette_18, gBattleAnimBackgroundTilemap_08
+ .4byte gBattleAnimBackgroundImage_20, gBattleAnimBackgroundPalette_20, gBattleAnimBackgroundTilemap_20
+ .4byte gBattleAnimBackgroundImage_21, gBattleAnimBackgroundPalette_21, gBattleAnimBackgroundTilemap_21
+ .4byte gBattleAnimBackgroundImage_09, gBattleAnimBackgroundPalette_22, gBattleAnimBackgroundTilemap_09
+ .4byte gBattleAnimBackgroundImage_09, gBattleAnimBackgroundPalette_22, gBattleAnimBackgroundTilemap_10
+ .4byte gBattleAnimBackgroundImage_04, gBattleAnimBackgroundPalette_24, gBattleAnimBackgroundTilemap_04
+ .4byte gBattleAnimBackgroundImage_04, gBattleAnimBackgroundPalette_24, gBattleAnimBackgroundTilemap_05
+ .4byte gBattleAnimBackgroundImage_04, gBattleAnimBackgroundPalette_24, gBattleAnimBackgroundTilemap_06
+
+ .align 2
+gUnknown_0837F4B8:: @ 837F4B8
+ .4byte ma00_load_graphics
+ .4byte ma01_080728D0
+ .4byte ma02_instanciate_template
+ .4byte sub_8075BB8
+ .4byte ma04_wait_countdown
+ .4byte sub_8075C74
+ .4byte nullsub_53
+ .4byte nullsub_88
+ .4byte sub_8075CB0
+ .4byte ma09_play_sound
+ .4byte sub_8075DE0
+ .4byte ma0B_0807324C
+ .4byte sub_8076A3C
+ .4byte sub_8076AA0
+ .4byte ma0E_call
+ .4byte sub_8076AF0
+ .4byte ma10_080736AC
+ .4byte ma11_if_else
+ .4byte ma12_cond_if
+ .4byte sub_8076BBC
+ .4byte ma14_load_background
+ .4byte ma15_load_battle_screen_elements
+ .4byte ma16_wait_for_battle_screen_elements_s2
+ .4byte sub_8076F44
+ .4byte ma18_load_background_probably
+ .4byte ma19_08073BC8
+ .4byte ma1A_8073C00
+ .4byte ma1B_8073C2C
+ .4byte ma1C_8073ED0
+ .4byte ma1D_08073FB4
+ .4byte sub_8076A78
+ .4byte sub_8077610
+ .4byte ma20_wait_for_something
+ .4byte ma21_08074164
+ .4byte sub_80767C4
+ .4byte ma23_8073484
+ .4byte sub_807775C
+ .4byte sub_8076C4C
+ .4byte sub_8077320
+ .4byte sub_80773B4
+ .4byte sub_807779C
+ .4byte sub_8077808
+ .4byte sub_807784C
+ .4byte ma2B_make_side_invisible
+ .4byte ma2C_make_side_visible
+ .4byte sub_807794C
+ .4byte sub_80779FC
+ .4byte ma2F_stop_music
diff --git a/data/battle_anim_807B69C.s b/data/battle_anim_807B69C.s
new file mode 100644
index 000000000..0ed7d7cf0
--- /dev/null
+++ b/data/battle_anim_807B69C.s
@@ -0,0 +1,23 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+ .align 2
+gSubspriteTable_83931B8:: @ 83931B8
+ subsprite -16, -16, 2, 0, 64x64
+ subsprite -16, 48, 2, 64, 64x32
+ subsprite 48, -16, 2, 96, 32x64
+ subsprite 48, 48, 2, 128, 32x32
+
+ .align 2
+gSubspriteTables_83931D8:: @ 83931D8
+ .4byte 4, gSubspriteTable_83931B8
+
+ .align 2
+gSpriteTemplate_83931E0:: @ 83931E0
+ spr_template 10010, 10010, gOamData_837E05C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
+
+ .align 2
+gSpriteTemplate_83931F8:: @ 83931F8
+ spr_template 10136, 10136, gOamData_837DF24, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_807B870
diff --git a/data/battle_anim_80A7E7C.s b/data/battle_anim_80A7E7C.s
new file mode 100644
index 000000000..d7da20315
--- /dev/null
+++ b/data/battle_anim_80A7E7C.s
@@ -0,0 +1,24 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+ .align 2
+gBattleAnimSpriteTemplate_83C1FB0:: @ 83C1FB0
+ spr_template 0, 0, gDummyOamData, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80A8530
+
+ .align 2
+gBattleAnimSpriteTemplate_83C1FC8:: @ 83C1FC8
+ spr_template 0, 0, gDummyOamData, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80A85C8
+
+ .align 2
+gBattleAnimSpriteTemplate_83C1FE0:: @ 83C1FE0
+ spr_template 0, 0, gDummyOamData, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80A8638
+
+ .align 2
+gBattleAnimSpriteTemplate_83C1FF8:: @ 83C1FF8
+ spr_template 0, 0, gDummyOamData, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80A8764
+
+ .align 2
+gBattleAnimSpriteTemplate_83C2010:: @ 83C2010
+ spr_template 0, 0, gDummyOamData, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80A8818
diff --git a/data/battle_anim_80CA710.s b/data/battle_anim_80CA710.s
new file mode 100644
index 000000000..e138d641e
--- /dev/null
+++ b/data/battle_anim_80CA710.s
@@ -0,0 +1,4566 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+ .align 2
+gSpriteAnim_83D61FC:: @ 83D61FC
+ obj_image_anim_frame 0, 5
+ obj_image_anim_frame 2, 5
+ obj_image_anim_frame 4, 5
+ obj_image_anim_frame 6, 5
+ obj_image_anim_frame 8, 5
+ obj_image_anim_frame 10, 5
+ obj_image_anim_frame 12, 5
+ obj_image_anim_frame 14, 5
+ obj_image_anim_jump 0
+
+ .align 2
+gSpriteAnimTable_83D6220:: @ 83D6220
+ .4byte gSpriteAnim_83D61FC
+
+ .align 2
+gBattleAnimSpriteTemplate_83D6224:: @ 83D6224
+ spr_template 10067, 10067, gOamData_837DF64, gSpriteAnimTable_83D6220, NULL, gDummySpriteAffineAnimTable, sub_80CA710
+
+ .align 2
+gBattleAnimSpriteTemplate_83D623C:: @ 83D623C
+ spr_template 10068, 10068, gOamData_837DF64, gSpriteAnimTable_83D6220, NULL, gDummySpriteAffineAnimTable, sub_80CA710
+
+ .align 2
+gBattleAnimSpriteTemplate_83D6254:: @ 83D6254
+ spr_template 10065, 10065, gOamData_837DF64, gSpriteAnimTable_83D6220, NULL, gDummySpriteAffineAnimTable, sub_80CA710
+
+ .align 2
+gSpriteAnim_83D626C:: @ 83D626C
+ obj_image_anim_frame 0, 1
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83D6274:: @ 83D6274
+ obj_image_anim_frame 1, 1
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83D627C:: @ 83D627C
+ obj_image_anim_frame 2, 1
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83D6284:: @ 83D6284
+ obj_image_anim_frame 3, 1
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83D628C:: @ 83D628C
+ obj_image_anim_frame 4, 1
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83D6294:: @ 83D6294
+ obj_image_anim_frame 5, 1
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83D629C:: @ 83D629C
+ obj_image_anim_frame 6, 1
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83D62A4:: @ 83D62A4
+ obj_image_anim_frame 7, 1
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83D62AC:: @ 83D62AC
+ obj_image_anim_frame 8, 1
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_83D62B4:: @ 83D62B4
+ .4byte gSpriteAnim_83D626C
+ .4byte gSpriteAnim_83D6274
+ .4byte gSpriteAnim_83D627C
+ .4byte gSpriteAnim_83D6284
+ .4byte gSpriteAnim_83D628C
+ .4byte gSpriteAnim_83D6294
+ .4byte gSpriteAnim_83D629C
+
+ .align 2
+gSpriteAnimTable_83D62D0:: @ 83D62D0
+ .4byte gSpriteAnim_83D62A4
+
+ .align 2
+gSpriteAnimTable_83D62D4:: @ 83D62D4
+ .4byte gSpriteAnim_83D62AC
+
+ .align 2
+gSpriteAffineAnim_83D62D8:: @ 83D62D8
+ obj_rot_scal_anim_frame 0xFFFB, 0xFFFB, 0, 1
+ obj_rot_scal_anim_jump 0
+
+ .align 2
+gSpriteAffineAnimTable_83D62E8:: @ 83D62E8
+ .4byte gSpriteAffineAnim_83D62D8
+
+ .align 2
+gBattleAnimSpriteTemplate_83D62EC:: @ 83D62EC
+ spr_template 10147, 10147, gOamData_837E0AC, gSpriteAnimTable_83D62D4, NULL, gSpriteAffineAnimTable_83D62E8, sub_80CA7B0
+
+ .align 2
+gBattleAnimSpriteTemplate_83D6304:: @ 83D6304
+ spr_template 10147, 10147, gOamData_837DF24, gSpriteAnimTable_83D62B4, NULL, gDummySpriteAffineAnimTable, sub_80CA800
+
+ .align 2
+gSpriteTemplate_83D631C:: @ 83D631C
+ spr_template 10147, 10147, gOamData_837DF24, gSpriteAnimTable_83D62D0, NULL, gDummySpriteAffineAnimTable, sub_80CA858
+
+ .align 2
+gSpriteAffineAnim_83D6334:: @ 83D6334
+ obj_rot_scal_anim_frame 0x140, 0x140, 0, 0
+ obj_rot_scal_anim_frame 0xFFF2, 0xFFF2, 0, 1
+ obj_rot_scal_anim_jump 1
+
+ .align 2
+gSpriteAffineAnimTable_83D634C:: @ 83D634C
+ .4byte gSpriteAffineAnim_83D6334
+
+ .align 2
+gBattleAnimSpriteTemplate_83D6350:: @ 83D6350
+ spr_template 10235, 10235, gOamData_837DFE4, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83D634C, sub_80CA7B0
+
+ .align 2
+gSpriteAffineAnim_83D6368:: @ 83D6368
+ obj_rot_scal_anim_frame 0xFFFB, 0xFFFB, 0, 1
+ obj_rot_scal_anim_jump 0
+
+ .align 2
+gSpriteAffineAnimTable_83D6378:: @ 83D6378
+ .4byte gSpriteAffineAnim_83D6368
+
+ .align 2
+gBattleAnimSpriteTemplate_83D637C:: @ 83D637C
+ spr_template 10147, 10147, gOamData_837E0AC, gSpriteAnimTable_83D62D4, NULL, gSpriteAffineAnimTable_83D6378, sub_80CA9A8
+
+ .align 2
+gBattleAnimSpriteTemplate_83D6394:: @ 83D6394
+ spr_template 10147, 10147, gOamData_837DF24, gSpriteAnimTable_83D62B4, NULL, gDummySpriteAffineAnimTable, sub_80CAA14
+
+ .align 2
+gSpriteAnim_83D63AC:: @ 83D63AC
+ obj_image_anim_frame 0, 1
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83D63B4:: @ 83D63B4
+ obj_image_anim_frame 4, 7
+ obj_image_anim_frame 8, 7
+ obj_image_anim_jump 0
+
+ .align 2
+gSpriteAnimTable_83D63C0:: @ 83D63C0
+ .4byte gSpriteAnim_83D63AC
+ .4byte gSpriteAnim_83D63B4
+
+ .align 2
+gBattleAnimSpriteTemplate_83D63C8:: @ 83D63C8
+ spr_template 10006, 10006, gOamData_837DF2C, gSpriteAnimTable_83D63C0, NULL, gDummySpriteAffineAnimTable, sub_80CAB18
+
+ .align 2
+gSpriteAnim_83D63E0:: @ 83D63E0
+ obj_image_anim_frame 0, 1
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83D63E8:: @ 83D63E8
+ obj_image_anim_frame 4, 7
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_83D63F0:: @ 83D63F0
+ .4byte gSpriteAnim_83D63E0
+ .4byte gSpriteAnim_83D63E8
+
+ .align 2
+gBattleAnimSpriteTemplate_83D63F8:: @ 83D63F8
+ spr_template 10158, 10158, gOamData_837DF2C, gSpriteAnimTable_83D63F0, NULL, gDummySpriteAffineAnimTable, sub_80CABF8
+
+ .align 2
+gSpriteAnim_83D6410:: @ 83D6410
+ obj_image_anim_frame 0, 1
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83D6418:: @ 83D6418
+ obj_image_anim_frame 4, 1
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_83D6420:: @ 83D6420
+ .4byte gSpriteAnim_83D6410
+
+ .align 2
+gSpriteAnimTable_83D6424:: @ 83D6424
+ .4byte gSpriteAnim_83D6418
+
+ .align 2
+gBattleAnimSpriteTemplate_83D6428:: @ 83D6428
+ spr_template 10159, 10159, gOamData_837DF2C, gSpriteAnimTable_83D6420, NULL, gDummySpriteAffineAnimTable, sub_80CAD54
+
+ .align 2
+gBattleAnimSpriteTemplate_83D6440:: @ 83D6440
+ spr_template 10159, 10159, gOamData_837DF24, gSpriteAnimTable_83D6424, NULL, gDummySpriteAffineAnimTable, sub_80CAE20
+
+ .align 2
+gSpriteAnim_83D6458:: @ 83D6458
+ obj_image_anim_frame 0, 5
+ obj_image_anim_frame 4, 5
+ obj_image_anim_frame 8, 5
+ obj_image_anim_frame 12, 5
+ obj_image_anim_frame 16, 5
+ obj_image_anim_frame 20, 5
+ obj_image_anim_frame 16, 5
+ obj_image_anim_frame 12, 5
+ obj_image_anim_frame 8, 5
+ obj_image_anim_frame 4, 5
+ obj_image_anim_jump 0
+
+ .align 2
+gSpriteAnim_83D6484:: @ 83D6484
+ obj_image_anim_frame 24, 5
+ obj_image_anim_frame 28, 5
+ obj_image_anim_frame 32, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_83D6494:: @ 83D6494
+ .4byte gSpriteAnim_83D6458
+ .4byte gSpriteAnim_83D6484
+
+ .align 2
+gBattleAnimSpriteTemplate_83D649C:: @ 83D649C
+ spr_template 10063, 10063, gOamData_837DF2C, gSpriteAnimTable_83D6494, NULL, gDummySpriteAffineAnimTable, sub_80CAED8
+
+ .align 2
+gBattleAnimSpriteTemplate_83D64B4:: @ 83D64B4
+ spr_template 10063, 10063, gOamData_837DF2C, gSpriteAnimTable_83D6494, NULL, gDummySpriteAffineAnimTable, sub_80CB144
+
+ .align 2
+gSpriteAnim_83D64CC:: @ 83D64CC
+ obj_image_anim_frame 0, 3
+ obj_image_anim_frame 0, 3, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_frame 0, 3, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_frame 0, 3, OBJ_IMAGE_ANIM_V_FLIP
+ obj_image_anim_jump 0
+
+ .align 2
+gSpriteAnimTable_83D64E0:: @ 83D64E0
+ .4byte gSpriteAnim_83D64CC
+
+ .align 2
+gBattleAnimSpriteTemplate_83D64E4:: @ 83D64E4
+ spr_template 10160, 10160, gOamData_837DF54, gSpriteAnimTable_83D64E0, NULL, gDummySpriteAffineAnimTable, sub_80CAFD0
+
+ .align 2
+gSpriteAffineAnim_83D64FC:: @ 83D64FC
+ obj_rot_scal_anim_frame 0x0, 0x0, 0, 1
+ obj_rot_scal_anim_jump 0
+
+ .align 2
+gSpriteAffineAnimTable_83D650C:: @ 83D650C
+ .4byte gSpriteAffineAnim_83D64FC
+
+ .align 2
+gBattleAnimSpriteTemplate_83D6510:: @ 83D6510
+ spr_template 10174, 10174, gOamData_837DF94, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83D650C, sub_80CAFD0
+
+ .align 2
+gSpriteAnim_83D6528:: @ 83D6528
+ obj_image_anim_frame 0, 4
+ obj_image_anim_frame 32, 4
+ obj_image_anim_frame 64, 4
+ obj_image_anim_frame 96, 4
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83D653C:: @ 83D653C
+ obj_image_anim_frame 0, 4, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_frame 32, 4, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_frame 64, 4, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_frame 96, 4, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_83D6550:: @ 83D6550
+ .4byte gSpriteAnim_83D6528
+ .4byte gSpriteAnim_83D653C
+
+ .align 2
+gSpriteAffineAnim_83D6558:: @ 83D6558
+ obj_rot_scal_anim_frame 0x100, 0x100, 0, 0
+ obj_rot_scal_anim_frame 0xFFF5, 0x0, 0, 6
+ obj_rot_scal_anim_frame 0xB, 0x0, 0, 6
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnim_83D6578:: @ 83D6578
+ obj_rot_scal_anim_frame 0xFF00, 0x100, 0, 0
+ obj_rot_scal_anim_frame 0xB, 0x0, 0, 6
+ obj_rot_scal_anim_frame 0xFFF5, 0x0, 0, 6
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnimTable_83D6598:: @ 83D6598
+ .4byte gSpriteAffineAnim_83D6558
+ .4byte gSpriteAffineAnim_83D6578
+
+ .align 2
+gBattleAnimSpriteTemplate_83D65A0:: @ 83D65A0
+ spr_template 10186, 10186, gOamData_837DFBC, gSpriteAnimTable_83D6550, NULL, gSpriteAffineAnimTable_83D6598, sub_80CB25C
+
+ .align 2
+gSpriteAffineAnim_83D65B8:: @ 83D65B8
+ obj_rot_scal_anim_frame 0x0, 0x0, 0, 0
+ obj_rot_scal_anim_frame 0x30, 0x30, 0, 14
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnim_83D65D0:: @ 83D65D0
+ obj_rot_scal_anim_frame 0xFFF0, 0xFFF0, 0, 1
+ obj_rot_scal_anim_jump 0
+
+ .align 2
+gSpriteAffineAnimTable_83D65E0:: @ 83D65E0
+ .4byte gSpriteAffineAnim_83D65B8
+ .4byte gSpriteAffineAnim_83D65D0
+
+ .align 2
+gBattleAnimSpriteTemplate_83D65E8:: @ 83D65E8
+ spr_template 10147, 10147, gOamData_837DFEC, gSpriteAnimTable_83D62D4, NULL, gSpriteAffineAnimTable_83D65E0, sub_80CB4CC
+
+ .align 2
+gSpriteAnim_83D6600:: @ 83D6600
+ obj_image_anim_frame 0, 7
+ obj_image_anim_frame 16, 7
+ obj_image_anim_frame 32, 7
+ obj_image_anim_frame 48, 7
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83D6614:: @ 83D6614
+ obj_image_anim_frame 0, 7, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_frame 16, 7, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_frame 32, 7, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_frame 48, 7, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83D6628:: @ 83D6628
+ obj_image_anim_frame 0, 7
+ obj_image_anim_frame 16, 7
+ obj_image_anim_frame 32, 7
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83D6638:: @ 83D6638
+ obj_image_anim_frame 0, 7, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_frame 16, 7, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_frame 32, 7, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_83D6648:: @ 83D6648
+ .4byte gSpriteAnim_83D6600
+ .4byte gSpriteAnim_83D6614
+ .4byte gSpriteAnim_83D6628
+ .4byte gSpriteAnim_83D6638
+
+ .align 2
+gBattleAnimSpriteTemplate_83D6658:: @ 83D6658
+ spr_template 10223, 10223, gOamData_837DF34, gSpriteAnimTable_83D6648, NULL, gDummySpriteAffineAnimTable, sub_80CB59C
+
+ .align 2
+gBattleAnimSpriteTemplate_83D6670:: @ 83D6670
+ spr_template 10223, 10223, gOamData_837DF34, gSpriteAnimTable_83D6648, NULL, gDummySpriteAffineAnimTable, sub_80CB620
+
+ .align 2
+gSpriteAnim_83D6688:: @ 83D6688
+ obj_image_anim_frame 3, 3
+ obj_image_anim_frame 0, 5
+ obj_image_anim_jump 0
+
+ .align 2
+gSpriteAnimTable_83D6694:: @ 83D6694
+ .4byte gSpriteAnim_83D6688
+
+ .align 2
+gBattleAnimSpriteTemplate_83D6698:: @ 83D6698
+ spr_template 10147, 10147, gOamData_837DF24, gSpriteAnimTable_83D6694, NULL, gDummySpriteAffineAnimTable, sub_80CB768
+
+ .align 2
+gSpriteAnim_83D66B0:: @ 83D66B0
+ obj_image_anim_frame 0, 30
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_83D66B8:: @ 83D66B8
+ .4byte gSpriteAnim_83D66B0
+
+ .align 2
+gSpriteAffineAnim_83D66BC:: @ 83D66BC
+ obj_rot_scal_anim_frame 0x0, 0x0, -4, 10
+ obj_rot_scal_anim_frame 0x0, 0x0, 4, 20
+ obj_rot_scal_anim_frame 0x0, 0x0, -4, 10
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnim_83D66DC:: @ 83D66DC
+ obj_rot_scal_anim_frame 0x0, 0x0, -1, 2
+ obj_rot_scal_anim_frame 0x0, 0x0, 1, 4
+ obj_rot_scal_anim_frame 0x0, 0x0, -1, 4
+ obj_rot_scal_anim_frame 0x0, 0x0, 1, 4
+ obj_rot_scal_anim_frame 0x0, 0x0, -1, 4
+ obj_rot_scal_anim_frame 0x0, 0x0, 1, 2
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnimTable_83D6714:: @ 83D6714
+ .4byte gSpriteAffineAnim_83D66BC
+ .4byte gSpriteAffineAnim_83D66DC
+
+ .align 2
+gBattleAnimSpriteTemplate_83D671C:: @ 83D671C
+ spr_template 10224, 10224, gOamData_837DF94, gSpriteAnimTable_83D66B8, NULL, gSpriteAffineAnimTable_83D6714, sub_80CB94C
+
+ .align 2
+gBattleAnimSpriteTemplate_83D6734:: @ 83D6734
+ spr_template 10224, 10224, gOamData_837DF94, gSpriteAnimTable_83D66B8, NULL, gSpriteAffineAnimTable_83D6714, sub_80CBA28
+
+ .align 2
+gSpriteAnim_83D674C:: @ 83D674C
+ obj_image_anim_frame 0, 4
+ obj_image_anim_frame 4, 4
+ obj_image_anim_frame 8, 4
+ obj_image_anim_frame 12, 4
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_83D6760:: @ 83D6760
+ .4byte gSpriteAnim_83D674C
+
+ .align 2
+gBattleAnimSpriteTemplate_83D6764:: @ 83D6764
+ spr_template 10195, 10195, gOamData_837DF2C, gSpriteAnimTable_83D6760, NULL, gDummySpriteAffineAnimTable, sub_80CBAA4
+
+ .align 2
+gBattleAnimSpriteTemplate_83D677C:: @ 83D677C
+ spr_template 10224, 10224, gOamData_837DF94, gSpriteAnimTable_83D66B8, NULL, gSpriteAffineAnimTable_83D6714, sub_80CBAE8
+
+ .align 2
+gSpriteAffineAnim_83D6794:: @ 83D6794
+ obj_rot_scal_anim_frame 0x0, 0x0, 0, 3
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnim_83D67A4:: @ 83D67A4
+ obj_rot_scal_anim_frame 0x0, 0xFFF6, 0, 3
+ obj_rot_scal_anim_frame 0x0, 0xFFFA, 0, 3
+ obj_rot_scal_anim_frame 0x0, 0xFFFE, 0, 3
+ obj_rot_scal_anim_frame 0x0, 0x0, 0, 3
+ obj_rot_scal_anim_frame 0x0, 0x2, 0, 3
+ obj_rot_scal_anim_frame 0x0, 0x6, 0, 3
+ obj_rot_scal_anim_frame 0x0, 0xA, 0, 3
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnimTable_83D67E4:: @ 83D67E4
+ .4byte gSpriteAffineAnim_83D6794
+ .4byte gSpriteAffineAnim_83D67A4
+ .4byte gSpriteAffineAnim_83D66BC
+ .4byte gSpriteAffineAnim_83D66DC
+
+ .align 2
+gBattleAnimSpriteTemplate_83D67F4:: @ 83D67F4
+ spr_template 10224, 10224, gOamData_837DF94, gSpriteAnimTable_83D66B8, NULL, gSpriteAffineAnimTable_83D67E4, sub_80CBBF0
+
+ .align 2
+gUnknown_083D680C:: @ 83D680C
+ .incbin "baserom.gba", 0x003d680c, 0x24
+
+ .align 2
+gSpriteAnim_83D6830:: @ 83D6830
+ obj_image_anim_frame 28, 1
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83D6838:: @ 83D6838
+ obj_image_anim_frame 32, 1
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83D6840:: @ 83D6840
+ obj_image_anim_frame 20, 1
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83D6848:: @ 83D6848
+ obj_image_anim_frame 28, 1, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83D6850:: @ 83D6850
+ obj_image_anim_frame 16, 1
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83D6858:: @ 83D6858
+ obj_image_anim_frame 16, 1, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83D6860:: @ 83D6860
+ obj_image_anim_frame 28, 1
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_83D6868:: @ 83D6868
+ .4byte gSpriteAnim_83D6830
+ .4byte gSpriteAnim_83D6838
+ .4byte gSpriteAnim_83D6840
+ .4byte gSpriteAnim_83D6848
+ .4byte gSpriteAnim_83D6850
+ .4byte gSpriteAnim_83D6858
+ .4byte gSpriteAnim_83D6860
+
+ .align 2
+gSpriteTemplate_83D6884:: @ 83D6884
+ spr_template 10063, 10063, gOamData_837DF2C, gSpriteAnimTable_83D6868, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
+
+ .align 2
+gSpriteAffineAnim_83D689C:: @ 83D689C
+ obj_rot_scal_anim_frame 0x100, 0x100, 0, 0
+ obj_rot_scal_anim_frame 0x0, 0x0, 4, 1
+ obj_rot_scal_anim_jump 1
+
+ .align 2
+gSpriteAffineAnimTable_83D68B4:: @ 83D68B4
+ .4byte gSpriteAffineAnim_83D689C
+
+ .align 2
+gBattleAnimSpriteTemplate_83D68B8:: @ 83D68B8
+ spr_template 10159, 10159, gOamData_837DF24, gSpriteAnimTable_83D6424, NULL, gDummySpriteAffineAnimTable, sub_80CC474
+
+ .align 2
+gBattleAnimSpriteTemplate_83D68D0:: @ 83D68D0
+ spr_template 10159, 10159, gOamData_837DF8C, gSpriteAnimTable_83D6420, NULL, gSpriteAffineAnimTable_83D68B4, sub_80CC474
+
+ .align 2
+gSpriteAffineAnim_83D68E8:: @ 83D68E8
+ obj_rot_scal_anim_frame 0x100, 0x100, 0, 0
+ obj_rot_scal_anim_frame 0x0, 0x0, -10, 1
+ obj_rot_scal_anim_jump 1
+
+ .align 2
+gSpriteAffineAnim_83D6900:: @ 83D6900
+ obj_rot_scal_anim_frame 0xC0, 0xC0, 0, 0
+ obj_rot_scal_anim_frame 0x0, 0x0, -12, 1
+ obj_rot_scal_anim_jump 1
+
+ .align 2
+gSpriteAffineAnim_83D6918:: @ 83D6918
+ obj_rot_scal_anim_frame 0x8F, 0x8F, 0, 0
+ obj_rot_scal_anim_frame 0x0, 0x0, -15, 1
+ obj_rot_scal_anim_jump 1
+
+ .align 2
+gSpriteAffineAnimTable_83D6930:: @ 83D6930
+ .4byte gSpriteAffineAnim_83D68E8
+
+ .align 2
+gSpriteAffineAnimTable_83D6934:: @ 83D6934
+ .4byte gSpriteAffineAnim_83D6900
+
+ .align 2
+gSpriteAffineAnimTable_83D6938:: @ 83D6938
+ .4byte gSpriteAffineAnim_83D6918
+
+ .align 2
+gBattleAnimSpriteTemplate_83D693C:: @ 83D693C
+ spr_template 10271, 10271, gOamData_837DF8C, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83D6930, sub_80CC474
+
+ .align 2
+gBattleAnimSpriteTemplate_83D6954:: @ 83D6954
+ spr_template 10271, 10271, gOamData_837DF8C, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83D6934, sub_80CC474
+
+ .align 2
+gBattleAnimSpriteTemplate_83D696C:: @ 83D696C
+ spr_template 10271, 10271, gOamData_837DF8C, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83D6938, sub_80CC474
+
+ .align 2
+gUnknown_083D6984:: @ 83D6984
+ .incbin "baserom.gba", 0x003d6984, 0x10
+
+ .align 2
+gBattleAnimSpriteTemplate_83D6994:: @ 83D6994
+ spr_template 10266, 10266, gOamData_837DF8C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80CC6CC
+
+ .align 2
+gSpriteAnim_83D69AC:: @ 83D69AC
+ obj_image_anim_frame 64, 3
+ obj_image_anim_frame 80, 3
+ obj_image_anim_frame 96, 3
+ obj_image_anim_frame 112, 6
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83D69C0:: @ 83D69C0
+ obj_image_anim_frame 64, 3, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_frame 80, 3, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_frame 96, 3, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_frame 112, 6, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_83D69D4:: @ 83D69D4
+ .4byte gSpriteAnim_83D69AC
+ .4byte gSpriteAnim_83D69C0
+
+ .align 2
+gBattleAnimSpriteTemplate_83D69DC:: @ 83D69DC
+ spr_template 10056, 10056, gOamData_837DF34, gSpriteAnimTable_83D69D4, NULL, gDummySpriteAffineAnimTable, sub_80CC884
+
+ .align 2
+gBattleAnimSpriteTemplate_83D69F4:: @ 83D69F4
+ spr_template 10287, 10287, gOamData_837DF34, gSpriteAnimTable_83D69D4, NULL, gDummySpriteAffineAnimTable, sub_80CC884
+
+ .align 2
+gSpriteAnim_83D6A0C:: @ 83D6A0C
+ obj_image_anim_frame 0, 4
+ obj_image_anim_frame 16, 4
+ obj_image_anim_frame 32, 4
+ obj_image_anim_frame 48, 4
+ obj_image_anim_frame 64, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_83D6A24:: @ 83D6A24
+ .4byte gSpriteAnim_83D6A0C
+
+ .align 2
+gSpriteTemplate_83D6A28:: @ 83D6A28
+ spr_template 10021, 10021, gOamData_837DF34, gSpriteAnimTable_83D6A24, NULL, gDummySpriteAffineAnimTable, sub_80CC82C
+
+ .align 2
+gSpriteTemplate_83D6A40:: @ 83D6A40
+ spr_template 10022, 10022, gOamData_837DF34, gSpriteAnimTable_83D6A24, NULL, gDummySpriteAffineAnimTable, sub_80CC82C
+
+ .align 2
+gSpriteAffineAnim_83D6A58:: @ 83D6A58
+ obj_rot_scal_anim_frame 0x100, 0x100, 0, 0
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnim_83D6A68:: @ 83D6A68
+ obj_rot_scal_anim_frame 0x100, 0x100, 32, 0
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnim_83D6A78:: @ 83D6A78
+ obj_rot_scal_anim_frame 0x100, 0x100, 64, 0
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnim_83D6A88:: @ 83D6A88
+ obj_rot_scal_anim_frame 0x100, 0x100, 96, 0
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnim_83D6A98:: @ 83D6A98
+ obj_rot_scal_anim_frame 0x100, 0x100, -128, 0
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnim_83D6AA8:: @ 83D6AA8
+ obj_rot_scal_anim_frame 0x100, 0x100, -96, 0
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnim_83D6AB8:: @ 83D6AB8
+ obj_rot_scal_anim_frame 0x100, 0x100, -64, 0
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnim_83D6AC8:: @ 83D6AC8
+ obj_rot_scal_anim_frame 0x100, 0x100, -32, 0
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnimTable_83D6AD8:: @ 83D6AD8
+ .4byte gSpriteAffineAnim_83D6A58
+ .4byte gSpriteAffineAnim_83D6A68
+ .4byte gSpriteAffineAnim_83D6A78
+ .4byte gSpriteAffineAnim_83D6A88
+ .4byte gSpriteAffineAnim_83D6A98
+ .4byte gSpriteAffineAnim_83D6AA8
+ .4byte gSpriteAffineAnim_83D6AB8
+ .4byte gSpriteAffineAnim_83D6AC8
+
+ .align 2
+gSpriteTemplate_83D6AF8:: @ 83D6AF8
+ spr_template 10143, 10143, gOamData_837DF94, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83D6AD8, sub_80CC8C8
+
+ .align 2
+gSpriteAnim_83D6B10:: @ 83D6B10
+ obj_image_anim_frame 0, 5
+ obj_image_anim_frame 16, 5
+ obj_image_anim_frame 32, 5
+ obj_image_anim_frame 48, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_83D6B24:: @ 83D6B24
+ .4byte gSpriteAnim_83D6B10
+
+ .align 2
+gBattleAnimSpriteTemplate_83D6B28:: @ 83D6B28
+ spr_template 10138, 10138, gOamData_837E054, gSpriteAnimTable_83D6B24, NULL, gDummySpriteAffineAnimTable, sub_80CC914
+
+ .align 2
+gBattleAnimSpriteTemplate_83D6B40:: @ 83D6B40
+ spr_template 10138, 10138, gOamData_837E054, gSpriteAnimTable_83D6B24, NULL, gDummySpriteAffineAnimTable, sub_80CC9BC
+
+ .align 2
+gSpriteAnim_83D6B58:: @ 83D6B58
+ obj_image_anim_frame 0, 1
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83D6B60:: @ 83D6B60
+ obj_image_anim_frame 4, 1
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83D6B68:: @ 83D6B68
+ obj_image_anim_frame 8, 1
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83D6B70:: @ 83D6B70
+ obj_image_anim_frame 12, 1
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83D6B78:: @ 83D6B78
+ obj_image_anim_frame 16, 1
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83D6B80:: @ 83D6B80
+ obj_image_anim_frame 20, 1
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83D6B88:: @ 83D6B88
+ obj_image_anim_frame 0, 1, OBJ_IMAGE_ANIM_V_FLIP
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83D6B90:: @ 83D6B90
+ obj_image_anim_frame 4, 1, OBJ_IMAGE_ANIM_V_FLIP
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83D6B98:: @ 83D6B98
+ obj_image_anim_frame 8, 1, OBJ_IMAGE_ANIM_V_FLIP
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83D6BA0:: @ 83D6BA0
+ obj_image_anim_frame 12, 1, OBJ_IMAGE_ANIM_V_FLIP
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_83D6BA8:: @ 83D6BA8
+ .4byte gSpriteAnim_83D6B58
+ .4byte gSpriteAnim_83D6B60
+ .4byte gSpriteAnim_83D6B68
+ .4byte gSpriteAnim_83D6B70
+ .4byte gSpriteAnim_83D6B78
+ .4byte gSpriteAnim_83D6B80
+ .4byte gSpriteAnim_83D6B88
+ .4byte gSpriteAnim_83D6B90
+ .4byte gSpriteAnim_83D6B98
+ .4byte gSpriteAnim_83D6BA0
+
+ .align 2
+gSpriteTemplate_83D6BD0:: @ 83D6BD0
+ spr_template 10072, 10072, gOamData_837DF2C, gSpriteAnimTable_83D6BA8, NULL, gDummySpriteAffineAnimTable, sub_80CCC50
+
+ .align 2
+gBattleAnimSpriteTemplate_83D6BE8:: @ 83D6BE8
+ spr_template 10280, 10280, gOamData_837E05C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80CCD24
+
+ .align 2
+gSpriteAffineAnim_83D6C00:: @ 83D6C00
+ obj_rot_scal_anim_frame 0x100, 0x100, 0, 0
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnim_83D6C10:: @ 83D6C10
+ obj_rot_scal_anim_frame 0x0, 0x0, 2, 12
+ obj_rot_scal_anim_frame 0x0, 0x0, 0, 6
+ obj_rot_scal_anim_frame 0x0, 0x0, -2, 24
+ obj_rot_scal_anim_frame 0x0, 0x0, 0, 6
+ obj_rot_scal_anim_frame 0x0, 0x0, 2, 12
+ obj_rot_scal_anim_jump 0
+
+ .align 2
+gSpriteAffineAnimTable_83D6C40:: @ 83D6C40
+ .4byte gSpriteAffineAnim_83D6C00
+ .4byte gSpriteAffineAnim_83D6C10
+
+ .align 2
+gBattleAnimSpriteTemplate_83D6C48:: @ 83D6C48
+ spr_template 10099, 10099, gOamData_837E0B4, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83D6C40, sub_80CCF04
+
+ .align 2
+gSpriteAnim_83D6C60:: @ 83D6C60
+ obj_image_anim_frame 0, 7
+ obj_image_anim_frame 16, 7
+ obj_image_anim_frame 32, 7
+ obj_image_anim_frame 48, 7
+ obj_image_anim_frame 64, 7
+ obj_image_anim_frame 80, 7
+ obj_image_anim_frame 96, 7
+ obj_image_anim_frame 112, 7
+ obj_image_anim_jump 0
+
+ .align 2
+gSpriteAnimTable_83D6C84:: @ 83D6C84
+ .4byte gSpriteAnim_83D6C60
+
+ .align 2
+gBattleAnimSpriteTemplate_83D6C88:: @ 83D6C88
+ spr_template 10049, 10049, gOamData_837DF34, gSpriteAnimTable_83D6C84, NULL, gDummySpriteAffineAnimTable, sub_80CD140
+
+ .align 2
+gBattleAnimSpriteTemplate_83D6CA0:: @ 83D6CA0
+ spr_template 10049, 10049, gOamData_837DF34, gSpriteAnimTable_83D6C84, NULL, gDummySpriteAffineAnimTable, sub_80CD190
+
+ .align 2
+gSpriteAnim_83D6CB8:: @ 83D6CB8
+ obj_image_anim_frame 0, 10
+ obj_image_anim_frame 4, 10
+ obj_image_anim_frame 8, 10
+ obj_image_anim_frame 12, 10
+ obj_image_anim_frame 16, 26
+ obj_image_anim_frame 16, 5
+ obj_image_anim_frame 20, 5
+ obj_image_anim_frame 24, 15
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83D6CDC:: @ 83D6CDC
+ obj_image_anim_frame 0, 10, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_frame 4, 10, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_frame 8, 10, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_frame 12, 10, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_frame 16, 26, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_frame 16, 5, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_frame 20, 5, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_frame 24, 15, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_83D6D00:: @ 83D6D00
+ .4byte gSpriteAnim_83D6CB8
+ .4byte gSpriteAnim_83D6CDC
+
+ .align 2
+gSpriteTemplate_83D6D08:: @ 83D6D08
+ spr_template 10032, 10032, gOamData_837DF2C, gSpriteAnimTable_83D6D00, NULL, gDummySpriteAffineAnimTable, sub_80CD274
+
+ .align 2
+gSpriteAnim_83D6D20:: @ 83D6D20
+ obj_image_anim_frame 0, 40
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_83D6D28:: @ 83D6D28
+ .4byte gSpriteAnim_83D6D20
+
+ .align 2
+gSpriteAffineAnim_83D6D2C:: @ 83D6D2C
+ obj_rot_scal_anim_frame 0x14, 0x14, -30, 0
+ obj_rot_scal_anim_frame 0x8, 0x8, 1, 24
+ obj_rot_scal_anim_end
+
+ .align 2
+ .incbin "baserom.gba", 0x003d6d44, 0x18
+
+ .align 2
+gSpriteAffineAnim_83D6D5C:: @ 83D6D5C
+ obj_rot_scal_anim_frame 0x14, 0x14, 30, 0
+ obj_rot_scal_anim_frame 0x8, 0x8, -1, 24
+ obj_rot_scal_anim_end
+
+ .align 2
+ .incbin "baserom.gba", 0x003d6d74, 0x18
+
+ .align 2
+gSpriteAffineAnimTable_83D6D8C:: @ 83D6D8C
+ .4byte gSpriteAffineAnim_83D6D2C
+ .4byte gSpriteAffineAnim_83D6D5C
+
+ .align 2
+gBattleAnimSpriteTemplate_83D6D94:: @ 83D6D94
+ spr_template 10228, 10228, gOamData_837DF94, gSpriteAnimTable_83D6D28, NULL, gSpriteAffineAnimTable_83D6D8C, sub_80CD328
+
+ .align 2
+gBattleAnimSpriteTemplate_83D6DAC:: @ 83D6DAC
+ spr_template 10014, 10014, gOamData_837DF34, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80CD3E0
+
+ .align 2
+gBattleAnimSpriteTemplate_83D6DC4:: @ 83D6DC4
+ spr_template 10014, 10014, gOamData_837DF2C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80CD6CC
+
+ .align 2
+gUnknown_083D6DDC:: @ 83D6DDC
+ .incbin "baserom.gba", 0x003d6ddc, 0x8
+
+ .align 2
+gBattleAnimSpriteTemplate_83D6DE4:: @ 83D6DE4
+ spr_template 0, 0, gDummyOamData, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80CD774
+
+ .align 2
+gSpriteTemplate_83D6DFC:: @ 83D6DFC
+ spr_template 0, 0, gDummyOamData, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80CD9C4
+
+ .align 2
+gSpriteAnim_83D6E14:: @ 83D6E14
+ obj_image_anim_frame 0, 4
+ obj_image_anim_frame 16, 4
+ obj_image_anim_frame 32, 4
+ obj_image_anim_frame 48, 4
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83D6E28:: @ 83D6E28
+ obj_image_anim_frame 48, 4
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_83D6E30:: @ 83D6E30
+ .4byte gSpriteAnim_83D6E14
+ .4byte gSpriteAnim_83D6E28
+
+ .align 2
+gBattleAnimSpriteTemplate_83D6E38:: @ 83D6E38
+ spr_template 10183, 10183, gOamData_837DF34, gSpriteAnimTable_83D6E30, NULL, gDummySpriteAffineAnimTable, sub_80CDD74
+
+ .align 2
+gBattleAnimSpriteTemplate_83D6E50:: @ 83D6E50
+ spr_template 10286, 10286, gOamData_837DF34, gSpriteAnimTable_83D6E30, NULL, gDummySpriteAffineAnimTable, sub_80CDDDC
+
+ .align 2
+gBattleAnimSpriteTemplate_83D6E68:: @ 83D6E68
+ spr_template 10286, 10286, gOamData_837DF34, gSpriteAnimTable_83D6E30, NULL, gDummySpriteAffineAnimTable, sub_80CDE24
+
+ .align 2
+gSpriteAnim_83D6E80:: @ 83D6E80
+ obj_image_anim_frame 0, 4
+ obj_image_anim_frame 8, 12
+ obj_image_anim_frame 16, 4
+ obj_image_anim_frame 24, 4
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_83D6E94:: @ 83D6E94
+ .4byte gSpriteAnim_83D6E80
+
+ .align 2
+gBattleAnimSpriteTemplate_83D6E98:: @ 83D6E98
+ spr_template 10184, 10184, gOamData_837DF74, gSpriteAnimTable_83D6E94, NULL, gDummySpriteAffineAnimTable, sub_80CDF0C
+
+ .align 2
+gSpriteAnim_83D6EB0:: @ 83D6EB0
+ obj_image_anim_frame 0, 18
+ obj_image_anim_frame 0, 6
+ obj_image_anim_frame 16, 18
+ obj_image_anim_frame 0, 6
+ obj_image_anim_frame 16, 6
+ obj_image_anim_frame 32, 18
+ obj_image_anim_frame 16, 6
+ obj_image_anim_frame 32, 6
+ obj_image_anim_frame 48, 18
+ obj_image_anim_frame 32, 6
+ obj_image_anim_frame 48, 6
+ obj_image_anim_frame 64, 18
+ obj_image_anim_frame 48, 6
+ obj_image_anim_frame 64, 54
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_83D6EEC:: @ 83D6EEC
+ .4byte gSpriteAnim_83D6EB0
+
+ .align 2
+gBattleAnimSpriteTemplate_83D6EF0:: @ 83D6EF0
+ spr_template 10185, 10185, gOamData_837DF34, gSpriteAnimTable_83D6EEC, NULL, gDummySpriteAffineAnimTable, sub_80CDFB0
+
+ .align 2
+gBattleAnimSpriteTemplate_83D6F08:: @ 83D6F08
+ spr_template 10017, 10017, gOamData_837DF24, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_807941C
+
+ .align 2
+gSpriteAnim_83D6F20:: @ 83D6F20
+ obj_image_anim_frame 0, 3
+ obj_image_anim_frame 16, 3
+ obj_image_anim_frame 32, 3
+ obj_image_anim_frame 48, 3
+ obj_image_anim_frame 64, 3
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_83D6F38:: @ 83D6F38
+ .4byte gSpriteAnim_83D6F20
+
+ .align 2
+gBattleAnimSpriteTemplate_83D6F3C:: @ 83D6F3C
+ spr_template 10030, 10030, gOamData_837DF34, gSpriteAnimTable_83D6F38, NULL, gDummySpriteAffineAnimTable, sub_80793C4
+
+ .align 2
+gSpriteAnim_83D6F54:: @ 83D6F54
+ obj_image_anim_frame 3, 5
+ obj_image_anim_frame 2, 5
+ obj_image_anim_frame 1, 5
+ obj_image_anim_frame 0, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_83D6F68:: @ 83D6F68
+ .4byte gSpriteAnim_83D6F54
+
+ .align 2
+gSpriteAffineAnim_83D6F6C:: @ 83D6F6C
+ obj_rot_scal_anim_frame 0x200, 0x200, 0, 0
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnimTable_83D6F7C:: @ 83D6F7C
+ .4byte gSpriteAffineAnim_83D6F6C
+
+ .align 2
+gBattleAnimSpriteTemplate_83D6F80:: @ 83D6F80
+ spr_template 10018, 10018, gOamData_837E104, gSpriteAnimTable_83D6F68, NULL, gSpriteAffineAnimTable_83D6F7C, sub_80CE09C
+
+ .align 2
+gSpriteAnim_83D6F98:: @ 83D6F98
+ obj_image_anim_frame 0, 5
+ obj_image_anim_frame 1, 5
+ obj_image_anim_frame 2, 5
+ obj_image_anim_frame 3, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_83D6FAC:: @ 83D6FAC
+ .4byte gSpriteAnim_83D6F98
+
+ .align 2
+gBattleAnimSpriteTemplate_83D6FB0:: @ 83D6FB0
+ spr_template 10018, 10018, gOamData_837E104, gSpriteAnimTable_83D6FAC, NULL, gSpriteAffineAnimTable_83D6F7C, sub_80CE17C
+
+ .align 2
+gBattleAnimSpriteTemplate_83D6FC8:: @ 83D6FC8
+ spr_template 10194, 10194, gOamData_837E05C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80CE30C
+
+ .align 2
+gSpriteAnim_83D6FE0:: @ 83D6FE0
+ obj_image_anim_frame 0, 8
+ obj_image_anim_frame 4, 8
+ obj_image_anim_frame 8, 8
+ obj_image_anim_frame 12, 8
+ obj_image_anim_jump 0
+
+ .align 2
+gSpriteAnimTable_83D6FF4:: @ 83D6FF4
+ .4byte gSpriteAnim_83D6FE0
+
+ .align 2
+gBattleAnimSpriteTemplate_83D6FF8:: @ 83D6FF8
+ spr_template 10195, 10195, gOamData_837DF2C, gSpriteAnimTable_83D6FF4, NULL, gDummySpriteAffineAnimTable, sub_80CE36C
+
+ .align 2
+gSpriteAnim_83D7010:: @ 83D7010
+ obj_image_anim_frame 0, 2
+ obj_image_anim_frame 16, 2
+ obj_image_anim_frame 32, 2
+ obj_image_anim_frame 48, 3
+ obj_image_anim_frame 64, 5
+ obj_image_anim_frame 80, 3
+ obj_image_anim_frame 96, 2
+ obj_image_anim_frame 0, 2
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_83D7034:: @ 83D7034
+ .4byte gSpriteAnim_83D7010
+
+ .align 2
+gBattleAnimSpriteTemplate_83D7038:: @ 83D7038
+ spr_template 10031, 10031, gOamData_837DF34, gSpriteAnimTable_83D7034, NULL, gDummySpriteAffineAnimTable, sub_80793C4
+
+ .align 2
+gBattleAnimSpriteTemplate_83D7050:: @ 83D7050
+ spr_template 10020, 10020, gOamData_837DF34, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80CE670
+
+ .align 2
+gSpriteAnim_83D7068:: @ 83D7068
+ obj_image_anim_frame 0, 2
+ obj_image_anim_frame 16, 2
+ obj_image_anim_frame 32, 2
+ obj_image_anim_frame 48, 2
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_83D707C:: @ 83D707C
+ .4byte gSpriteAnim_83D7068
+
+ .align 2
+gBattleAnimSpriteTemplate_83D7080:: @ 83D7080
+ spr_template 10192, 10192, gOamData_837DF34, gSpriteAnimTable_83D707C, NULL, gDummySpriteAffineAnimTable, sub_80CEA04
+
+ .align 2
+gSpriteAnim_83D7098:: @ 83D7098
+ obj_image_anim_frame 0, 10
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83D70A0:: @ 83D70A0
+ obj_image_anim_frame 4, 10
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83D70A8:: @ 83D70A8
+ obj_image_anim_frame 8, 41
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83D70B0:: @ 83D70B0
+ obj_image_anim_frame 12, 10
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83D70B8:: @ 83D70B8
+ obj_image_anim_frame 16, 10
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83D70C0:: @ 83D70C0
+ obj_image_anim_frame 20, 10
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83D70C8:: @ 83D70C8
+ obj_image_anim_frame 0, 10, OBJ_IMAGE_ANIM_V_FLIP
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83D70D0:: @ 83D70D0
+ obj_image_anim_frame 4, 10, OBJ_IMAGE_ANIM_V_FLIP
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_83D70D8:: @ 83D70D8
+ .4byte gSpriteAnim_83D7098
+ .4byte gSpriteAnim_83D70A0
+ .4byte gSpriteAnim_83D70A8
+ .4byte gSpriteAnim_83D70B0
+ .4byte gSpriteAnim_83D70B8
+ .4byte gSpriteAnim_83D70C0
+ .4byte gSpriteAnim_83D70C8
+ .4byte gSpriteAnim_83D70D0
+
+ .align 2
+gSpriteAffineAnim_83D70F8:: @ 83D70F8
+ obj_rot_scal_anim_frame 0xC, 0xC, 0, 16
+ obj_rot_scal_anim_frame 0xFFF4, 0xFFF4, 0, 16
+ obj_rot_scal_anim_jump 0
+
+ .align 2
+gSpriteAffineAnimTable_83D7110:: @ 83D7110
+ .4byte gSpriteAffineAnim_83D70F8
+
+ .align 2
+gBattleAnimSpriteTemplate_83D7114:: @ 83D7114
+ spr_template 10072, 10072, gOamData_837DFEC, gSpriteAnimTable_83D70D8, NULL, gSpriteAffineAnimTable_83D7110, sub_80CEB0C
+
+ .align 2
+gUnknown_083D712C:: @ 83D712C
+ .incbin "baserom.gba", 0x003d712c, 0x30
+
+ .align 2
+gBattleAnimSpriteTemplate_83D715C:: @ 83D715C
+ spr_template 10072, 10072, gOamData_837DFEC, gSpriteAnimTable_83D70D8, NULL, gSpriteAffineAnimTable_83D7110, sub_80CECE8
+
+ .align 2
+gBattleAnimSpriteTemplate_83D7174:: @ 83D7174
+ spr_template 10193, 10193, gOamData_837DF34, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80CEDF0
+
+ .align 2
+gSpriteAffineAnim_83D718C:: @ 83D718C
+ obj_rot_scal_anim_frame 0xA0, 0xA0, 0, 0
+ obj_rot_scal_anim_frame 0x4, 0x4, 0, 1
+ obj_rot_scal_anim_jump 1
+
+ .align 2
+gSpriteAffineAnimTable_83D71A4:: @ 83D71A4
+ .4byte gSpriteAffineAnim_83D718C
+
+ .align 2
+gBattleAnimSpriteTemplate_83D71A8:: @ 83D71A8
+ spr_template 10072, 10072, gOamData_837DFEC, gSpriteAnimTable_83D70D8, NULL, gSpriteAffineAnimTable_83D71A4, sub_80CEE60
+
+ .align 2
+gSpriteAnim_83D71C0:: @ 83D71C0
+ obj_image_anim_frame 0, 2, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_frame 16, 2, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_frame 32, 2, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_frame 48, 2, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83D71D4:: @ 83D71D4
+ obj_image_anim_frame 48, 2, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_frame 32, 2, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_frame 16, 2, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_frame 0, 2, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83D71E8:: @ 83D71E8
+ obj_image_anim_frame 0, 2
+ obj_image_anim_frame 16, 2
+ obj_image_anim_frame 32, 2
+ obj_image_anim_frame 48, 2
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83D71FC:: @ 83D71FC
+ obj_image_anim_frame 48, 2
+ obj_image_anim_frame 32, 2
+ obj_image_anim_frame 16, 2
+ obj_image_anim_frame 0, 2
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_83D7210:: @ 83D7210
+ .4byte gSpriteAnim_83D71C0
+ .4byte gSpriteAnim_83D71E8
+ .4byte gSpriteAnim_83D71D4
+ .4byte gSpriteAnim_83D71FC
+
+ .align 2
+gBattleAnimSpriteTemplate_83D7220:: @ 83D7220
+ spr_template 10209, 10209, gOamData_837DF34, gSpriteAnimTable_83D7210, NULL, gDummySpriteAffineAnimTable, sub_80CEF9C
+
+ .align 2
+gSpriteAffineAnim_83D7238:: @ 83D7238
+ obj_rot_scal_anim_frame 0x10, 0x10, 0, 0
+ obj_rot_scal_anim_frame 0x1E, 0x1E, 0, 8
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnim_83D7250:: @ 83D7250
+ obj_rot_scal_anim_frame 0x0, 0x0, 4, 11
+ obj_rot_scal_anim_frame 0x0, 0x0, -4, 11
+ obj_rot_scal_anim_loop 2
+ obj_rot_scal_anim_frame 0xFFE2, 0xFFE2, 0, 8
+ obj_rot_scal_anim_end
+
+ .align 2
+ .incbin "baserom.gba", 0x003d7278, 0x48
+
+ .align 2
+gSpriteAffineAnimTable_83D72C0:: @ 83D72C0
+ .4byte gSpriteAffineAnim_83D7238
+ .4byte gSpriteAffineAnim_83D7250
+
+ .align 2
+gBattleAnimSpriteTemplate_83D72C8:: @ 83D72C8
+ spr_template 10064, 10064, gOamData_837DFF4, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83D72C0, sub_80CF040
+
+ .align 2
+gBattleAnimSpriteTemplate_83D72E0:: @ 83D72E0
+ spr_template 10064, 10064, gOamData_837DF94, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83D72C0, sub_80CF0BC
+
+ .align 2
+gSpriteAnim_83D72F8:: @ 83D72F8
+ obj_image_anim_frame 0, 1
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83D7300:: @ 83D7300
+ obj_image_anim_frame 0, 1, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83D7308:: @ 83D7308
+ obj_image_anim_frame 0, 4
+ obj_image_anim_frame 16, 4
+ obj_image_anim_frame 32, 4
+ obj_image_anim_frame 16, 4
+ obj_image_anim_frame 0, 4
+ obj_image_anim_frame 16, 4
+ obj_image_anim_frame 32, 4
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83D7328:: @ 83D7328
+ obj_image_anim_frame 0, 4, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_frame 16, 4, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_frame 32, 4, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_frame 16, 4, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_frame 0, 4, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_frame 16, 4, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_frame 32, 4, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_83D7348:: @ 83D7348
+ .4byte gSpriteAnim_83D72F8
+ .4byte gSpriteAnim_83D7300
+ .4byte gSpriteAnim_83D7308
+ .4byte gSpriteAnim_83D7328
+
+ .align 2
+gBattleAnimSpriteTemplate_83D7358:: @ 83D7358
+ spr_template 10214, 10214, gOamData_837DF34, gSpriteAnimTable_83D7348, NULL, gDummySpriteAffineAnimTable, sub_80CF1C8
+
+ .align 2
+gSpriteTemplate_83D7370:: @ 83D7370
+ spr_template 10064, 10064, gOamData_837DF34, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80CF280
+
+ .align 2
+gSpriteAnim_83D7388:: @ 83D7388
+ obj_image_anim_frame 4, 1
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_83D7390:: @ 83D7390
+ .4byte gSpriteAnim_83D7388
+
+ .align 2
+gSpriteTemplate_83D7394:: @ 83D7394
+ spr_template 10072, 10072, gOamData_837DF2C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80CF2D0
+
+ .align 2
+gSpriteTemplate_83D73AC:: @ 83D73AC
+ spr_template 0, 0, gDummyOamData, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80CF3C4
+
+ .align 2
+gSpriteTemplate_83D73C4:: @ 83D73C4
+ spr_template 10145, 10145, gOamData_837E0BC, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83DB1B0, sub_80CF458
+
+ .align 2
+gSpriteAnim_83D73DC:: @ 83D73DC
+ obj_image_anim_frame 0, 9
+ obj_image_anim_frame 16, 3
+ obj_image_anim_frame 32, 3
+ obj_image_anim_frame 48, 3
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_83D73F0:: @ 83D73F0
+ .4byte gSpriteAnim_83D73DC
+
+ .align 2
+gSpriteAffineAnim_83D73F4:: @ 83D73F4
+ obj_rot_scal_anim_frame 0x50, 0x50, 0, 0
+ obj_rot_scal_anim_frame 0x9, 0x9, 0, 18
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnimTable_83D740C:: @ 83D740C
+ .4byte gSpriteAffineAnim_83D73F4
+
+ .align 2
+gSpriteTemplate_83D7410:: @ 83D7410
+ spr_template 10007, 10007, gOamData_837DF94, gSpriteAnimTable_83D73F0, NULL, gSpriteAffineAnimTable_83D740C, sub_80793C4
+
+ .align 2
+gSpriteAnim_83D7428:: @ 83D7428
+ obj_image_anim_frame 0, 3, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_frame 8, 3, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_frame 16, 3, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_frame 24, 3, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_frame 32, 3, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_frame 40, 3, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_frame 48, 3, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_loop 1
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_83D744C:: @ 83D744C
+ .4byte gSpriteAnim_83D7428
+
+ .align 2
+gBattleAnimSpriteTemplate_83D7450:: @ 83D7450
+ spr_template 10075, 10075, gOamData_837DF54, gSpriteAnimTable_83D744C, NULL, gDummySpriteAffineAnimTable, sub_80CF610
+
+ .align 2
+gSpriteAffineAnim_83D7468:: @ 83D7468
+ obj_rot_scal_anim_frame 0x10, 0x100, 0, 0
+ obj_rot_scal_anim_frame 0x14, 0x0, 0, 12
+ obj_rot_scal_anim_frame 0x0, 0x0, 0, 32
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnimTable_83D7488:: @ 83D7488
+ .4byte gSpriteAffineAnim_83D7468
+
+ .align 2
+gBattleAnimSpriteTemplate_83D748C:: @ 83D748C
+ spr_template 10005, 10005, gOamData_837E0FC, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83D7488, sub_80CF690
+
+ .align 2
+gBattleAnimSpriteTemplate_83D74A4:: @ 83D74A4
+ spr_template 10003, 10003, gOamData_837E134, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80CF6DC
+
+ .align 2
+gSpriteTemplate_83D74BC:: @ 83D74BC
+ spr_template 10003, 10003, gOamData_837E074, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80CF8B8
+
+ .align 2
+gSpriteAffineAnim_83D74D4:: @ 83D74D4
+ obj_rot_scal_anim_frame 0x20, 0x20, 0, 0
+ obj_rot_scal_anim_frame 0x7, 0x7, 0, -56
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnim_83D74EC:: @ 83D74EC
+ obj_rot_scal_anim_frame 0x5, 0x5, 0, 10
+ obj_rot_scal_anim_frame 0xFFF6, 0xFFF6, 0, 10
+ obj_rot_scal_anim_frame 0xA, 0xA, 0, 10
+ obj_rot_scal_anim_frame 0xFFF6, 0xFFF6, 0, 10
+ obj_rot_scal_anim_frame 0xA, 0xA, 0, 10
+ obj_rot_scal_anim_frame 0xFFF6, 0xFFF6, 0, 10
+ obj_rot_scal_anim_frame 0xA, 0xA, 0, 10
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnimTable_83D752C:: @ 83D752C
+ .4byte gSpriteAffineAnim_83D74D4
+
+ .align 2
+gSpriteAffineAnimTable_83D7530:: @ 83D7530
+ .4byte gSpriteAffineAnim_83D74EC
+
+ .align 2
+gBattleAnimSpriteTemplate_83D7534:: @ 83D7534
+ spr_template 10163, 10163, gOamData_837E034, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83D752C, sub_807941C
+
+ .align 2
+gBattleAnimSpriteTemplate_83D754C:: @ 83D754C
+ spr_template 10164, 10164, gOamData_837E034, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83D752C, sub_807941C
+
+ .align 2
+gBattleAnimSpriteTemplate_83D7564:: @ 83D7564
+ spr_template 10260, 10260, gOamData_837E03C, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83D752C, sub_807941C
+
+ .align 2
+gBattleAnimSpriteTemplate_83D757C:: @ 83D757C
+ spr_template 10288, 10288, gOamData_837E034, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83D7530, sub_80D4CA4
+
+ .align 2
+gBattleAnimSpriteTemplate_83D7594:: @ 83D7594
+ spr_template 10175, 10175, gOamData_837DF2C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80794A8
+
+ .align 2
+gSpriteTemplate_83D75AC:: @ 83D75AC
+ spr_template 10178, 10178, gOamData_837E05C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80CFDFC
+
+ .align 2
+gSpriteAnim_83D75C4:: @ 83D75C4
+ obj_image_anim_frame 8, 1
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_83D75CC:: @ 83D75CC
+ .4byte gSpriteAnim_83D75C4
+
+ .align 2
+gSpriteAffineAnim_83D75D0:: @ 83D75D0
+ obj_rot_scal_anim_frame 0x0, 0x0, 10, 1
+ obj_rot_scal_anim_jump 0
+
+ .align 2
+gSpriteAffineAnimTable_83D75E0:: @ 83D75E0
+ .4byte gSpriteAffineAnim_83D75D0
+
+ .align 2
+gBattleAnimSpriteTemplate_83D75E4:: @ 83D75E4
+ spr_template 10100, 10100, gOamData_837DF8C, gSpriteAnimTable_83D75CC, NULL, gDummySpriteAffineAnimTable, sub_80CFE9C
+
+ .align 2
+gBattleAnimSpriteTemplate_83D75FC:: @ 83D75FC
+ spr_template 10100, 10100, gOamData_837DF8C, gSpriteAnimTable_83D75CC, NULL, gSpriteAffineAnimTable_83D75E0, sub_80CFF50
+
+ .align 2
+gSpriteAffineAnim_83D7614:: @ 83D7614
+ obj_rot_scal_anim_frame 0x0, 0x0, 20, 1
+ obj_rot_scal_anim_jump 0
+
+ .align 2
+gSpriteAffineAnimTable_83D7624:: @ 83D7624
+ .4byte gSpriteAffineAnim_83D7614
+
+ .align 2
+gBattleAnimSpriteTemplate_83D7628:: @ 83D7628
+ spr_template 10006, 10006, gOamData_837DF8C, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83D7624, sub_80CFFD8
+
+ .align 2
+gSpriteAffineAnim_83D7640:: @ 83D7640
+ obj_rot_scal_anim_frame 0x10, 0x100, 0, 0
+ obj_rot_scal_anim_frame 0x4, 0x0, 0, 40
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnimTable_83D7658:: @ 83D7658
+ .4byte gSpriteAffineAnim_83D7640
+
+ .align 2
+gBattleAnimSpriteTemplate_83D765C:: @ 83D765C
+ spr_template 10009, 10009, gOamData_837DFDC, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83D7658, sub_80D0118
+
+ .align 2
+gSpriteAnim_83D7674:: @ 83D7674
+ obj_image_anim_frame 0, 3
+ obj_image_anim_frame 16, 3
+ obj_image_anim_frame 32, 20
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83D7684:: @ 83D7684
+ obj_image_anim_frame 0, 3, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_frame 16, 3, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_frame 32, 20, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_83D7694:: @ 83D7694
+ .4byte gSpriteAnim_83D7674
+ .4byte gSpriteAnim_83D7684
+
+ .align 2
+gBattleAnimSpriteTemplate_83D769C:: @ 83D769C
+ spr_template 10138, 10138, gOamData_837E054, gSpriteAnimTable_83D7694, NULL, gDummySpriteAffineAnimTable, sub_80D0178
+
+ .align 2
+gSpriteAnim_83D76B4:: @ 83D76B4
+ obj_image_anim_frame 0, 2
+ obj_image_anim_frame 16, 2
+ obj_image_anim_frame 32, 1
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83D76C4:: @ 83D76C4
+ obj_image_anim_frame 0, 2, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_frame 16, 2, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_frame 32, 1, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_83D76D4:: @ 83D76D4
+ .4byte gSpriteAnim_83D76B4
+ .4byte gSpriteAnim_83D76C4
+
+ .align 2
+gBattleAnimSpriteTemplate_83D76DC:: @ 83D76DC
+ spr_template 10138, 10138, gOamData_837E054, gSpriteAnimTable_83D76D4, NULL, gDummySpriteAffineAnimTable, sub_80D0228
+
+ .align 2
+gUnknown_083D76F4:: @ 83D76F4
+ .incbin "baserom.gba", 0x003d76f4, 0x20
+
+gUnknown_083D7714:: @ 83D7714
+ .incbin "baserom.gba", 0x003d7714, 0x20
+
+ .align 2
+gSpriteAnim_83D7734:: @ 83D7734
+ obj_image_anim_frame 0, 4, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_frame 4, 40, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_frame 8, 4, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_frame 12, 4, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83D7748:: @ 83D7748
+ obj_image_anim_frame 0, 4
+ obj_image_anim_frame 4, 40
+ obj_image_anim_frame 8, 4
+ obj_image_anim_frame 12, 4
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_83D775C:: @ 83D775C
+ .4byte gSpriteAnim_83D7734
+ .4byte gSpriteAnim_83D7748
+
+ .align 2
+gBattleAnimSpriteTemplate_83D7764:: @ 83D7764
+ spr_template 10086, 10086, gOamData_837DF2C, gSpriteAnimTable_83D775C, NULL, gDummySpriteAffineAnimTable, sub_80D0930
+
+ .align 2
+gSpriteAffineAnim_83D777C:: @ 83D777C
+ obj_rot_scal_anim_frame 0xB, 0xB, 0, 8
+ obj_rot_scal_anim_frame 0xFFF5, 0xFFF5, 0, 8
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnimTable_83D7794:: @ 83D7794
+ .4byte gSpriteAffineAnim_83D777C
+
+ .align 2
+gBattleAnimSpriteTemplate_83D7798:: @ 83D7798
+ spr_template 10087, 10087, gOamData_837DF8C, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83D7794, sub_80D09C0
+
+ .align 2
+gUnknown_083D77B0:: @ 83D77B0
+ .incbin "baserom.gba", 0x003d77b0, 0x30
+
+ .align 2
+gBattleAnimSpriteTemplate_83D77E0:: @ 83D77E0
+ spr_template 10002, 10002, gOamData_837DF34, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80D0E30
+
+ .align 2
+gBattleAnimSpriteTemplate_83D77F8:: @ 83D77F8
+ spr_template 10197, 10197, gOamData_837DF34, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_8079534
+
+ .align 2
+gSpriteAnim_83D7810:: @ 83D7810
+ obj_image_anim_frame 0, 5
+ obj_image_anim_frame 16, 5
+ obj_image_anim_frame 32, 5
+ obj_image_anim_frame 48, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_83D7824:: @ 83D7824
+ .4byte gSpriteAnim_83D7810
+
+ .align 2
+gBattleAnimSpriteTemplate_83D7828:: @ 83D7828
+ spr_template 10198, 10198, gOamData_837DF34, gSpriteAnimTable_83D7824, NULL, gDummySpriteAffineAnimTable, sub_80793C4
+
+ .align 2
+gSpriteAffineAnim_83D7840:: @ 83D7840
+ obj_rot_scal_anim_frame 0x0, 0x0, -8, 2
+ obj_rot_scal_anim_frame 0x0, 0x0, 8, 4
+ obj_rot_scal_anim_frame 0x0, 0x0, -8, 2
+ obj_rot_scal_anim_jump 0
+
+ .align 2
+gSpriteAffineAnim_83D7860:: @ 83D7860
+ obj_rot_scal_anim_frame 0x100, 0x100, 0, 0
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnim_83D7870:: @ 83D7870
+ obj_rot_scal_anim_frame 0xFFF8, 0x4, 0, 8
+ obj_rot_scal_anim_loop 0
+ obj_rot_scal_anim_frame 0x10, 0xFFF8, 0, 8
+ obj_rot_scal_anim_frame 0xFFF0, 0x8, 0, 8
+ obj_rot_scal_anim_loop 1
+ obj_rot_scal_anim_frame 0x100, 0x100, 0, 0
+ obj_rot_scal_anim_frame 0x0, 0x0, 0, 15
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnimTable_83D78B0:: @ 83D78B0
+ .4byte gSpriteAffineAnim_83D7840
+ .4byte gSpriteAffineAnim_83D7860
+ .4byte gSpriteAffineAnim_83D7870
+
+ .align 2
+gBattleAnimSpriteTemplate_83D78BC:: @ 83D78BC
+ spr_template 10202, 10202, gOamData_837E114, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83D78B0, sub_80D1368
+
+ .align 2
+gSpriteAffineAnim_83D78D4:: @ 83D78D4
+ obj_rot_scal_anim_frame 0x10, 0x10, 0, 0
+ obj_rot_scal_anim_frame 0x10, 0x10, 0, 30
+ obj_rot_scal_anim_end 1
+
+ .align 2
+gSpriteAffineAnim_83D78EC:: @ 83D78EC
+ obj_rot_scal_anim_frame 0x10, 0x10, 0, 0
+ obj_rot_scal_anim_frame 0x20, 0x20, 0, 15
+ obj_rot_scal_anim_end 1
+
+ .align 2
+gSpriteAffineAnim_83D7904:: @ 83D7904
+ obj_rot_scal_anim_frame 0x10, 0x10, 0, 0
+ obj_rot_scal_anim_frame 0xB, 0xB, 0, 45
+ obj_rot_scal_anim_end 1
+
+ .align 2
+gSpriteAffineAnimTable_83D791C:: @ 83D791C
+ .4byte gSpriteAffineAnim_83D78D4
+ .4byte gSpriteAffineAnim_83D78EC
+
+ .align 2
+gSpriteAffineAnimTable_83D7924:: @ 83D7924
+ .4byte gSpriteAffineAnim_83D7904
+
+ .align 2
+gBattleAnimSpriteTemplate_83D7928:: @ 83D7928
+ spr_template 10203, 10203, gOamData_837DFFC, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83D791C, sub_80793C4
+
+ .align 2
+gSpriteAffineAnim_83D7940:: @ 83D7940
+ obj_rot_scal_anim_frame 0x200, 0x200, 0, 0
+ obj_rot_scal_anim_frame 0xFFF0, 0xFFF0, 0, 30
+ obj_rot_scal_anim_end 1
+
+ .align 2
+gSpriteAffineAnimTable_83D7958:: @ 83D7958
+ .4byte gSpriteAffineAnim_83D7940
+
+ .align 2
+gBattleAnimSpriteTemplate_83D795C:: @ 83D795C
+ spr_template 10203, 10203, gOamData_837E11C, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83D7958, sub_80793C4
+
+ .align 2
+gBattleAnimSpriteTemplate_83D7974:: @ 83D7974
+ spr_template 10203, 10203, gOamData_837E11C, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83D791C, sub_80D0FD8
+
+ .align 2
+gBattleAnimSpriteTemplate_83D798C:: @ 83D798C
+ spr_template 10203, 10203, gOamData_837E11C, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83D7924, sub_80D10B8
+
+ .align 2
+gBattleAnimSpriteTemplate_83D79A4:: @ 83D79A4
+ spr_template 10203, 10203, gOamData_837E11C, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83D791C, sub_80D1318
+
+ .align 2
+gUnknown_083D79BC:: @ 83D79BC
+ .incbin "baserom.gba", 0x003d79bc, 0x10
+
+ .align 2
+gSpriteAnim_83D79CC:: @ 83D79CC
+ obj_image_anim_frame 0, 3
+ obj_image_anim_frame 4, 3
+ obj_image_anim_frame 8, 3
+ obj_image_anim_frame 4, 3
+ obj_image_anim_frame 0, 3
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_83D79E4:: @ 83D79E4
+ .4byte gSpriteAnim_83D79CC
+
+ .align 2
+gSpriteTemplate_83D79E8:: @ 83D79E8
+ spr_template 10207, 10207, gOamData_837DF2C, gSpriteAnimTable_83D79E4, NULL, gDummySpriteAffineAnimTable, sub_80D1A70
+
+gUnknown_083D7A00:: @ 83D7A00
+ .incbin "baserom.gba", 0x003d7a00, 0x8
+
+ .align 2
+gSpriteAnim_83D7A08:: @ 83D7A08
+ obj_image_anim_frame 0, 6
+ obj_image_anim_frame 16, 6
+ obj_image_anim_frame 32, 15
+ obj_image_anim_frame 16, 6
+ obj_image_anim_frame 0, 6
+ obj_image_anim_frame 16, 6, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_frame 32, 15, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_frame 16, 6, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_frame 0, 6
+ obj_image_anim_frame 16, 6
+ obj_image_anim_frame 32, 15
+ obj_image_anim_frame 16, 6
+ obj_image_anim_frame 0, 6
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_83D7A40:: @ 83D7A40
+ .4byte gSpriteAnim_83D7A08
+
+ .align 2
+gBattleAnimSpriteTemplate_83D7A44:: @ 83D7A44
+ spr_template 10205, 10205, gOamData_837DF34, gSpriteAnimTable_83D7A40, NULL, gDummySpriteAffineAnimTable, sub_80793C4
+
+ .align 2
+gUnknown_083D7A5C:: @ 83D7A5C
+ .incbin "baserom.gba", 0x003d7a5c, 0xc
+
+ .align 2
+gBattleAnimSpriteTemplate_83D7A68:: @ 83D7A68
+ spr_template 10206, 10206, gOamData_837DF2C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80D1C08
+
+ .align 2
+gBattleAnimSpriteTemplate_83D7A80:: @ 83D7A80
+ spr_template 10210, 10210, gOamData_837DF2C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80D1C80
+
+ .align 2
+gUnknown_083D7A98:: @ 83D7A98
+ .incbin "baserom.gba", 0x003d7a98, 0x18
+
+ .align 2
+gBattleAnimSpriteTemplate_83D7AB0:: @ 83D7AB0
+ spr_template 10216, 10216, gOamData_837DF2C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80D1F58
+
+ .align 2
+gBattleAnimSpriteTemplate_83D7AC8:: @ 83D7AC8
+ spr_template 10216, 10216, gOamData_837DF2C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80D1FDC
+
+ .align 2
+gBattleAnimSpriteTemplate_83D7AE0:: @ 83D7AE0
+ spr_template 10216, 10216, gOamData_837DF2C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80D2064
+
+ .align 2
+gSpriteAffineAnim_83D7AF8:: @ 83D7AF8
+ obj_rot_scal_anim_frame 0x80, 0x80, 0, 0
+ obj_rot_scal_anim_frame 0x8, 0x8, 0, 1
+ obj_rot_scal_anim_jump 1
+
+ .align 2
+gSpriteAffineAnimTable_83D7B10:: @ 83D7B10
+ .4byte gSpriteAffineAnim_83D7AF8
+
+ .align 2
+gBattleAnimSpriteTemplate_83D7B14:: @ 83D7B14
+ spr_template 10217, 10217, gOamData_837DF8C, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83D7B10, sub_80D26A4
+
+ .align 2
+gBattleAnimSpriteTemplate_83D7B2C:: @ 83D7B2C
+ spr_template 10217, 10217, gOamData_837DFEC, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83D7B10, sub_80D27E0
+
+ .align 2
+gSpriteAffineAnim_83D7B44:: @ 83D7B44
+ obj_rot_scal_anim_frame 0x80, 0x80, 0, 0
+ obj_rot_scal_anim_frame 0x8, 0x8, 0, 1
+ obj_rot_scal_anim_jump 1
+
+ .align 2
+gSpriteAffineAnimTable_83D7B5C:: @ 83D7B5C
+ .4byte gSpriteAffineAnim_83D7B44
+
+ .align 2
+gBattleAnimSpriteTemplate_83D7B60:: @ 83D7B60
+ spr_template 10237, 10237, gOamData_837DFE4, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83D7B5C, sub_80D28AC
+
+ .align 2
+gSpriteAnim_83D7B78:: @ 83D7B78
+ obj_image_anim_frame 0, 4
+ obj_image_anim_frame 4, 4
+ obj_image_anim_frame 8, 4
+ obj_image_anim_frame 4, 4
+ obj_image_anim_frame 0, 4
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_83D7B90:: @ 83D7B90
+ .4byte gSpriteAnim_83D7B78
+
+ .align 2
+gBattleAnimSpriteTemplate_83D7B94:: @ 83D7B94
+ spr_template 10218, 10218, gOamData_837DF2C, gSpriteAnimTable_83D7B90, NULL, gDummySpriteAffineAnimTable, sub_80D2920
+
+ .align 2
+gSpriteAnim_83D7BAC:: @ 83D7BAC
+ obj_image_anim_frame 0, 24
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_83D7BB4:: @ 83D7BB4
+ .4byte gSpriteAnim_83D7BAC
+
+ .align 2
+gBattleAnimSpriteTemplate_83D7BB8:: @ 83D7BB8
+ spr_template 10220, 10220, gOamData_837DF34, gSpriteAnimTable_83D7BB4, NULL, gDummySpriteAffineAnimTable, sub_80D2938
+
+ .align 2
+gBattleAnimSpriteTemplate_83D7BD0:: @ 83D7BD0
+ spr_template 10219, 10219, gOamData_837DF2C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80D2A38
+
+ .align 2
+gSpriteAnim_83D7BE8:: @ 83D7BE8
+ obj_image_anim_frame 0, 3
+ obj_image_anim_jump 0
+
+ .align 2
+gSpriteAnim_83D7BF0:: @ 83D7BF0
+ obj_image_anim_frame 16, 3
+ obj_image_anim_jump 0
+
+ .align 2
+gSpriteAnimTable_83D7BF8:: @ 83D7BF8
+ .4byte gSpriteAnim_83D7BE8
+ .4byte gSpriteAnim_83D7BF0
+
+ .align 2
+gBattleAnimSpriteTemplate_83D7C00:: @ 83D7C00
+ spr_template 10221, 10221, gOamData_837DF34, gSpriteAnimTable_83D7BF8, NULL, gDummySpriteAffineAnimTable, sub_80D2ABC
+
+ .align 2
+gSpriteAnim_83D7C18:: @ 83D7C18
+ obj_image_anim_frame 0, 4
+ obj_image_anim_frame 16, 4
+ obj_image_anim_frame 32, 4
+ obj_image_anim_frame 48, 4
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83D7C2C:: @ 83D7C2C
+ obj_image_anim_frame 0, 4, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_frame 16, 4, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_frame 32, 4, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_frame 48, 4, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_83D7C40:: @ 83D7C40
+ .4byte gSpriteAnim_83D7C18
+ .4byte gSpriteAnim_83D7C2C
+
+ .align 2
+gBattleAnimSpriteTemplate_83D7C48:: @ 83D7C48
+ spr_template 10222, 10222, gOamData_837DF34, gSpriteAnimTable_83D7C40, NULL, gDummySpriteAffineAnimTable, sub_80D2BE8
+
+ .align 2
+gSpriteAnim_83D7C60:: @ 83D7C60
+ obj_image_anim_frame 0, 8
+ obj_image_anim_frame 16, 8
+ obj_image_anim_frame 32, 8
+ obj_image_anim_frame 16, 8
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83D7C74:: @ 83D7C74
+ obj_image_anim_frame 16, 8, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_frame 32, 8, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_frame 16, 8, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_frame 0, 8, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_83D7C88:: @ 83D7C88
+ .4byte gSpriteAnim_83D7C60
+ .4byte gSpriteAnim_83D7C74
+
+ .align 2
+gBattleAnimSpriteTemplate_83D7C90:: @ 83D7C90
+ spr_template 10215, 10215, gOamData_837DF34, gSpriteAnimTable_83D7C88, NULL, gDummySpriteAffineAnimTable, sub_80D2C38
+
+ .align 2
+gUnknown_083D7CA8:: @ 83D7CA8
+ .incbin "baserom.gba", 0x003d7ca8, 0x20
+
+ .align 2
+gBattleAnimSpriteTemplate_83D7CC8:: @ 83D7CC8
+ spr_template 10225, 10225, gOamData_837DF34, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80D2D68
+
+ .align 2
+gSpriteAffineAnim_83D7CE0:: @ 83D7CE0
+ obj_rot_scal_anim_frame 0x0, 0x0, 0, 5
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnim_83D7CF0:: @ 83D7CF0
+ obj_rot_scal_anim_frame 0x0, 0x0, -8, 16
+ obj_rot_scal_anim_end 1
+
+ .align 2
+gSpriteAffineAnim_83D7D00:: @ 83D7D00
+ obj_rot_scal_anim_frame 0x0, 0x0, 8, 16
+ obj_rot_scal_anim_end 1
+
+ .align 2
+gSpriteAffineAnimTable_83D7D10:: @ 83D7D10
+ .4byte gSpriteAffineAnim_83D7CE0
+ .4byte gSpriteAffineAnim_83D7CF0
+ .4byte gSpriteAffineAnim_83D7D00
+
+ .align 2
+gBattleAnimSpriteTemplate_83D7D1C:: @ 83D7D1C
+ spr_template 10206, 10206, gOamData_837DF8C, gSpriteAnimTable_83D70D8, NULL, gSpriteAffineAnimTable_83D7D10, sub_80D2EC8
+
+ .align 2
+gBattleAnimSpriteTemplate_83D7D34:: @ 83D7D34
+ spr_template 10206, 10206, gOamData_837DF8C, gSpriteAnimTable_83D70D8, NULL, gSpriteAffineAnimTable_83D7D10, sub_80D2E68
+
+ .align 2
+gSpriteAffineAnim_83D7D4C:: @ 83D7D4C
+ obj_rot_scal_anim_frame 0x100, 0x100, 0, 0
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnim_83D7D5C:: @ 83D7D5C
+ obj_rot_scal_anim_frame 0x200, 0x100, 0, 0
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnimTable_83D7D6C:: @ 83D7D6C
+ .4byte gSpriteAffineAnim_83D7D4C
+ .4byte gSpriteAffineAnim_83D7D5C
+
+ .align 2
+gBattleAnimSpriteTemplate_83D7D74:: @ 83D7D74
+ spr_template 10244, 10244, gOamData_837E13C, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83D7D6C, sub_80D3014
+
+ .align 2
+ .incbin "graphics/unknown/unknown_3D7D8C.4bpp"
+ .incbin "graphics/unknown/unknown_3D810C.bin"
+
+ .align 2
+gSpriteAnim_83D910C:: @ 83D910C
+ obj_image_anim_frame 0, 2
+ obj_image_anim_frame 8, 2
+ obj_image_anim_frame 16, 2
+ obj_image_anim_frame 24, 6
+ obj_image_anim_frame 32, 2
+ obj_image_anim_frame 40, 2
+ obj_image_anim_frame 48, 2
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_83D912C:: @ 83D912C
+ .4byte gSpriteAnim_83D910C
+
+ .align 2
+gSpriteTemplate_83D9130:: @ 83D9130
+ spr_template 10115, 10115, gOamData_837DF74, gSpriteAnimTable_83D912C, NULL, gDummySpriteAffineAnimTable, sub_80D3184
+
+ .align 2
+gSpriteAffineAnim_83D9148:: @ 83D9148
+ obj_rot_scal_anim_frame 0xFFFB, 0xFFFB, 0, 10
+ obj_rot_scal_anim_frame 0x5, 0x5, 0, 10
+ obj_rot_scal_anim_jump 0
+
+ .align 2
+gSpriteAffineAnimTable_83D9160:: @ 83D9160
+ .4byte gSpriteAffineAnim_83D9148
+
+ .align 2
+gSpriteAnim_83D9164:: @ 83D9164
+ obj_image_anim_frame 0, 1
+ obj_image_anim_frame 4, 5
+ obj_image_anim_frame 8, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_83D9174:: @ 83D9174
+ .4byte gSpriteAnim_83D9164
+
+ .align 2
+gBattleAnimSpriteTemplate_83D9178:: @ 83D9178
+ spr_template 10146, 10146, gOamData_837E0AC, gSpriteAnimTable_83D9174, NULL, gSpriteAffineAnimTable_83D9160, sub_80D31C8
+
+ .align 2
+gSpriteAnim_83D9190:: @ 83D9190
+ obj_image_anim_frame 0, 1
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83D9198:: @ 83D9198
+ obj_image_anim_frame 4, 1
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_83D91A0:: @ 83D91A0
+ .4byte gSpriteAnim_83D9190
+ .4byte gSpriteAnim_83D9198
+
+ .align 2
+gSpriteAffineAnim_83D91A8:: @ 83D91A8
+ obj_rot_scal_anim_frame 0x0, 0x0, 0, 1
+ obj_rot_scal_anim_frame 0x60, 0x60, 0, 1
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnimTable_83D91C0:: @ 83D91C0
+ .4byte gSpriteAffineAnim_83D91A8
+
+ .align 2
+gBattleAnimSpriteTemplate_83D91C4:: @ 83D91C4
+ spr_template 10140, 10140, gOamData_837E024, gSpriteAnimTable_83D91A0, NULL, gSpriteAffineAnimTable_83D91C0, sub_80D33B4
+
+ .align 2
+gSpriteAnim_83D91DC:: @ 83D91DC
+ obj_image_anim_frame 0, 1
+ obj_image_anim_frame 4, 1
+ obj_image_anim_frame 8, 1
+ obj_image_anim_frame 12, 1
+ obj_image_anim_jump 0
+
+ .align 2
+gSpriteAnimTable_83D91F0:: @ 83D91F0
+ .4byte gSpriteAnim_83D91DC
+
+ .align 2
+gBattleAnimSpriteTemplate_83D91F4:: @ 83D91F4
+ spr_template 10149, 10149, gOamData_837E04C, gSpriteAnimTable_83D91F0, NULL, gDummySpriteAffineAnimTable, sub_80D3554
+
+ .align 2
+gBattleAnimSpriteTemplate_83D920C:: @ 83D920C
+ spr_template 10259, 10259, gOamData_837E04C, gSpriteAnimTable_83D91F0, NULL, gDummySpriteAffineAnimTable, sub_80D3554
+
+ .align 2
+gBattleAnimSpriteTemplate_83D9224:: @ 83D9224
+ spr_template 10264, 10264, gOamData_837DF24, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80D3554
+
+ .align 2
+gBattleAnimSpriteTemplate_83D923C:: @ 83D923C
+ spr_template 10265, 10265, gOamData_837DF24, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80D3554
+
+ .align 2
+gSpriteAnim_83D9254:: @ 83D9254
+ obj_image_anim_frame 16, 2
+ obj_image_anim_frame 32, 2
+ obj_image_anim_frame 48, 2
+ obj_image_anim_jump 0
+
+ .align 2
+gSpriteAnimTable_83D9264:: @ 83D9264
+ .4byte gSpriteAnim_83D9254
+
+ .align 2
+gBattleAnimSpriteTemplate_83D9268:: @ 83D9268
+ spr_template 10029, 10029, gOamData_837DF34, gSpriteAnimTable_83D9264, NULL, gDummySpriteAffineAnimTable, sub_80D3554
+
+ .align 2
+gBattleAnimSpriteTemplate_83D9280:: @ 83D9280
+ spr_template 10165, 10165, gOamData_837E034, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83D752C, sub_80D3554
+
+ .align 2
+gSpriteAffineAnim_83D9298:: @ 83D9298
+ obj_rot_scal_anim_frame 0x3, 0x3, 10, 50
+ obj_rot_scal_anim_frame 0x0, 0x0, 0, 10
+ obj_rot_scal_anim_frame 0xFFEC, 0xFFEC, -10, 20
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnim_83D92B8:: @ 83D92B8
+ obj_rot_scal_anim_frame 0x150, 0x150, 0, 0
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnimTable_83D92C8:: @ 83D92C8
+ .4byte gSpriteAffineAnim_83D9298
+
+ .align 2
+gSpriteAffineAnimTable_83D92CC:: @ 83D92CC
+ .4byte gSpriteAffineAnim_83D92B8
+
+ .align 2
+gBattleAnimSpriteTemplate_83D92D0:: @ 83D92D0
+ spr_template 10149, 10149, gOamData_837E10C, gSpriteAnimTable_83D91F0, NULL, gSpriteAffineAnimTable_83D92C8, sub_80D3698
+
+ .align 2
+gBattleAnimSpriteTemplate_83D92E8:: @ 83D92E8
+ spr_template 10149, 10149, gOamData_837E10C, gSpriteAnimTable_83D91F0, NULL, gSpriteAffineAnimTable_83D92CC, sub_80D3728
+
+ .align 2
+gSpriteAnim_83D9300:: @ 83D9300
+ obj_image_anim_frame 0, 1
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83D9308:: @ 83D9308
+ obj_image_anim_frame 4, 1
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_83D9310:: @ 83D9310
+ .4byte gSpriteAnim_83D9300
+
+ .align 2
+gSpriteAnimTable_83D9314:: @ 83D9314
+ .4byte gSpriteAnim_83D9308
+
+ .align 2
+gBattleAnimSpriteTemplate_83D9318:: @ 83D9318
+ spr_template 10155, 10155, gOamData_837E04C, gSpriteAnimTable_83D9310, NULL, gDummySpriteAffineAnimTable, sub_80794A8
+
+ .align 2
+gBattleAnimSpriteTemplate_83D9330:: @ 83D9330
+ spr_template 10155, 10155, gOamData_837E10C, gSpriteAnimTable_83D9314, NULL, gSpriteAffineAnimTable_83DA318, sub_80D37FC
+
+ .align 2
+gBattleAnimSpriteTemplate_83D9348:: @ 83D9348
+ spr_template 10141, 10141, gOamData_837DF24, gSpriteAnimTable_83D9BC8, NULL, gDummySpriteAffineAnimTable, sub_80D3838
+
+ .align 2
+gBattleAnimSpriteTemplate_83D9360:: @ 83D9360
+ spr_template 10155, 10155, gOamData_837DF24, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80D4044
+
+ .align 2
+gSpriteTemplate_83D9378:: @ 83D9378
+ spr_template 10268, 10268, gOamData_837DF24, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80D452C
+
+ .align 2
+gSpriteAnim_83D9390:: @ 83D9390
+ obj_image_anim_frame 8, 1
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83D9398:: @ 83D9398
+ obj_image_anim_frame 9, 1
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83D93A0:: @ 83D93A0
+ obj_image_anim_frame 4, 1
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_83D93A8:: @ 83D93A8
+ .4byte gSpriteAnim_83D9390
+ .4byte gSpriteAnim_83D9398
+
+ .align 2
+gSpriteAnimTable_83D93B0:: @ 83D93B0
+ .4byte gSpriteAnim_83D93A0
+
+ .align 2
+gSpriteAffineAnim_83D93B4:: @ 83D93B4
+ obj_rot_scal_anim_frame 0x100, 0x100, 0, 0
+ obj_rot_scal_anim_frame 0xFFF6, 0xFFF6, 0, 15
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnim_83D93CC:: @ 83D93CC
+ obj_rot_scal_anim_frame 0xE0, 0xE0, 0, 0
+ obj_rot_scal_anim_frame 0xFFF8, 0xFFF8, 0, 15
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnim_83D93E4:: @ 83D93E4
+ obj_rot_scal_anim_frame 0x150, 0x150, 0, 0
+ obj_rot_scal_anim_frame 0x0, 0x0, 0, 15
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnimTable_83D93FC:: @ 83D93FC
+ .4byte gSpriteAffineAnim_83D93B4
+ .4byte gSpriteAffineAnim_83D93CC
+
+ .align 2
+gSpriteAffineAnimTable_83D9404:: @ 83D9404
+ .4byte gSpriteAffineAnim_83D93E4
+
+ .align 2
+gBattleAnimSpriteTemplate_83D9408:: @ 83D9408
+ spr_template 10155, 10155, gOamData_837DF24, gSpriteAnimTable_83D93A8, NULL, gDummySpriteAffineAnimTable, sub_80D4BF0
+
+ .align 2
+gSpriteTemplate_83D9420:: @ 83D9420
+ spr_template 10155, 10155, gOamData_837DF84, gSpriteAnimTable_83D93A8, NULL, gSpriteAffineAnimTable_83D93FC, sub_80D4C64
+
+ .align 2
+gBattleAnimSpriteTemplate_83D9438:: @ 83D9438
+ spr_template 10155, 10155, gOamData_837DF8C, gSpriteAnimTable_83D93B0, NULL, gSpriteAffineAnimTable_83D9404, sub_807A9BC
+
+ .align 2
+gSpriteAnim_83D9450:: @ 83D9450
+ obj_image_anim_frame 16, 4
+ obj_image_anim_frame 32, 4
+ obj_image_anim_frame 48, 4
+ obj_image_anim_jump 0
+
+ .align 2
+gSpriteAnim_83D9460:: @ 83D9460
+ obj_image_anim_frame 16, 4, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_frame 32, 4, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_frame 48, 4, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_jump 0
+
+ .align 2
+gSpriteAnimTable_83D9470:: @ 83D9470
+ .4byte gSpriteAnim_83D9450
+ .4byte gSpriteAnim_83D9460
+
+ .align 2
+gBattleAnimSpriteTemplate_83D9478:: @ 83D9478
+ spr_template 10029, 10029, gOamData_837DF34, gSpriteAnimTable_83D9470, NULL, gDummySpriteAffineAnimTable, sub_80D4ED8
+
+ .align 2
+gBattleAnimSpriteTemplate_83D9490:: @ 83D9490
+ spr_template 10029, 10029, gOamData_837DF34, gSpriteAnimTable_83D9470, NULL, gDummySpriteAffineAnimTable, sub_80D4F18
+
+ .align 2
+gSpriteAnim_83D94A8:: @ 83D94A8
+ obj_image_anim_frame 0, 3
+ obj_image_anim_frame 16, 3
+ obj_image_anim_frame 32, 3
+ obj_image_anim_frame 48, 3
+ obj_image_anim_frame 64, 3
+ obj_image_anim_frame 80, 3
+ obj_image_anim_frame 96, 3
+ obj_image_anim_frame 112, 3
+ obj_image_anim_jump 0
+
+ .align 2
+gSpriteAnimTable_83D94CC:: @ 83D94CC
+ .4byte gSpriteAnim_83D94A8
+
+ .align 2
+gSpriteAnim_83D94D0:: @ 83D94D0
+ obj_image_anim_frame 0, 5
+ obj_image_anim_frame 16, 5
+ obj_image_anim_frame 32, 5
+ obj_image_anim_frame 48, 5
+ obj_image_anim_frame 64, 5
+ obj_image_anim_jump 0
+
+ .align 2
+gSpriteAnimTable_83D94E8:: @ 83D94E8
+ .4byte gSpriteAnim_83D94D0
+
+ .align 2
+gSpriteAffineAnim_83D94EC:: @ 83D94EC
+ obj_rot_scal_anim_frame 0x32, 0x100, 0, 0
+ obj_rot_scal_anim_frame 0x20, 0x0, 0, 7
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnimTable_83D9504:: @ 83D9504
+ .4byte gSpriteAffineAnim_83D94EC
+
+ .align 2
+gBattleAnimSpriteTemplate_83D9508:: @ 83D9508
+ spr_template 10033, 10033, gOamData_837DF94, gSpriteAnimTable_83D94CC, NULL, gSpriteAffineAnimTable_83D9504, sub_80D4FCC
+
+ .align 2
+gBattleAnimSpriteTemplate_83D9520:: @ 83D9520
+ spr_template 10033, 10033, gOamData_837DF34, gSpriteAnimTable_83D94CC, NULL, gDummySpriteAffineAnimTable, sub_80D4FCC
+
+ .align 2
+gBattleAnimSpriteTemplate_83D9538:: @ 83D9538
+ spr_template 10035, 10035, gOamData_837DF34, gSpriteAnimTable_83D94E8, NULL, gDummySpriteAffineAnimTable, sub_80D4F5C
+
+ .align 2
+gSpriteTemplate_83D9550:: @ 83D9550
+ spr_template 10029, 10029, gOamData_837DF34, gSpriteAnimTable_83D94E8, NULL, gDummySpriteAffineAnimTable, sub_80D4F5C
+
+ .align 2
+gSpriteAnim_83D9568:: @ 83D9568
+ obj_image_anim_frame 16, 6
+ obj_image_anim_frame 32, 6
+ obj_image_anim_frame 48, 6
+ obj_image_anim_jump 0
+
+ .align 2
+gSpriteAnimTable_83D9578:: @ 83D9578
+ .4byte gSpriteAnim_83D9568
+
+ .align 2
+gSpriteTemplate_83D957C:: @ 83D957C
+ spr_template 10029, 10029, gOamData_837DF34, gSpriteAnimTable_83D9578, NULL, gDummySpriteAffineAnimTable, sub_80D5074
+
+ .align 2
+gSpriteAffineAnim_83D9594:: @ 83D9594
+ obj_rot_scal_anim_frame 0x50, 0x50, 0, 0
+ obj_rot_scal_anim_frame 0x2, 0x2, 10, 1
+ obj_rot_scal_anim_jump 1
+
+ .align 2
+gSpriteAffineAnimTable_83D95AC:: @ 83D95AC
+ .4byte gSpriteAffineAnim_83D9594
+
+ .align 2
+gBattleAnimSpriteTemplate_83D95B0:: @ 83D95B0
+ spr_template 10157, 10157, gOamData_837E0B4, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83D95AC, sub_80D517C
+
+ .align 2
+gSpriteAnim_83D95C8:: @ 83D95C8
+ obj_image_anim_frame 0, 4
+ obj_image_anim_frame 16, 4
+ obj_image_anim_frame 32, 4
+ obj_image_anim_frame 48, 4
+ obj_image_anim_frame 64, 4
+ obj_image_anim_jump 0
+
+ .align 2
+gSpriteAnimTable_83D95E0:: @ 83D95E0
+ .4byte gSpriteAnim_83D95C8
+
+ .align 2
+gBattleAnimSpriteTemplate_83D95E4:: @ 83D95E4
+ spr_template 10029, 10029, gOamData_837DF34, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_807941C
+
+ .align 2
+gBattleAnimSpriteTemplate_83D95FC:: @ 83D95FC
+ spr_template 10029, 10029, gOamData_837DF34, gSpriteAnimTable_83D95E0, NULL, gDummySpriteAffineAnimTable, sub_80D51A8
+
+ .align 2
+gBattleAnimSpriteTemplate_83D9614:: @ 83D9614
+ spr_template 10029, 10029, gOamData_837DF34, gSpriteAnimTable_83D95E0, NULL, gDummySpriteAffineAnimTable, sub_80D5210
+
+ .align 2
+gBattleAnimSpriteTemplate_83D962C:: @ 83D962C
+ spr_template 10029, 10029, gOamData_837DF34, gSpriteAnimTable_83D95E0, NULL, gDummySpriteAffineAnimTable, sub_80D522C
+
+ .align 2
+gSpriteAnim_83D9644:: @ 83D9644
+ obj_image_anim_frame 32, 6
+ obj_image_anim_frame 48, 6
+ obj_image_anim_jump 0
+
+ .align 2
+gSpriteAnimTable_83D9650:: @ 83D9650
+ .4byte gSpriteAnim_83D9644
+
+ .align 2
+gSpriteAffineAnim_83D9654:: @ 83D9654
+ obj_rot_scal_anim_frame 0x0, 0x0, 0, 1
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnim_83D9664:: @ 83D9664
+ obj_rot_scal_anim_frame 0xA0, 0xA0, 0, 0
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnimTable_83D9674:: @ 83D9674
+ .4byte gSpriteAffineAnim_83D9654
+ .4byte gSpriteAffineAnim_83D9664
+
+ .align 2
+gBattleAnimSpriteTemplate_83D967C:: @ 83D967C
+ spr_template 10029, 10029, gOamData_837DF34, gSpriteAnimTable_83D9650, NULL, gDummySpriteAffineAnimTable, sub_80D5374
+
+ .align 2
+gBattleAnimSpriteTemplate_83D9694:: @ 83D9694
+ spr_template 10029, 10029, gOamData_837DF34, gSpriteAnimTable_83D95E0, NULL, gDummySpriteAffineAnimTable, sub_80D53B4
+
+ .align 2
+gBattleAnimSpriteTemplate_83D96AC:: @ 83D96AC
+ spr_template 10029, 10029, gOamData_837DF34, gSpriteAnimTable_83D95E0, NULL, gDummySpriteAffineAnimTable, sub_807A9BC
+
+ .align 2
+gSpriteTemplate_83D96C4:: @ 83D96C4
+ spr_template 10201, 10201, gOamData_837DF2C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80D58FC
+
+ .align 1
+gUnknown_083D96DC:: @ 83D96DC
+ .2byte -2, -5
+ .2byte -1, -1
+ .2byte 3, -6
+ .2byte 4, -2
+ .2byte 2, -8
+ .2byte -5, -5
+ .2byte 4, -7
+
+ .align 2
+gBattleAnimSpriteTemplate_83D96F8:: @ 83D96F8
+ spr_template 10201, 10201, gOamData_837DF34, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80D5A20
+
+ .align 2
+gSpriteAnim_83D9710:: @ 83D9710
+ obj_image_anim_frame 0, 5
+ obj_image_anim_frame 4, 5
+ obj_image_anim_frame 8, 5
+ obj_image_anim_frame 12, 5
+ obj_image_anim_jump 0
+
+ .align 2
+gSpriteAnim_83D9724:: @ 83D9724
+ obj_image_anim_frame 16, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83D972C:: @ 83D972C
+ obj_image_anim_frame 20, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83D9734:: @ 83D9734
+ obj_image_anim_frame 20, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_83D973C:: @ 83D973C
+ .4byte gSpriteAnim_83D9710
+ .4byte gSpriteAnim_83D9724
+ .4byte gSpriteAnim_83D972C
+ .4byte gSpriteAnim_83D9734
+
+ .align 2
+gBattleAnimSpriteTemplate_83D974C:: @ 83D974C
+ spr_template 10231, 10231, gOamData_837DF2C, gSpriteAnimTable_83D973C, NULL, gDummySpriteAffineAnimTable, sub_80D5B0C
+
+ .align 2
+gSpriteAnim_83D9764:: @ 83D9764
+ obj_image_anim_frame 0, 5
+ obj_image_anim_frame 16, 5
+ obj_image_anim_frame 32, 5
+ obj_image_anim_frame 48, 5
+ obj_image_anim_jump 0
+
+ .align 2
+gSpriteAnimTable_83D9778:: @ 83D9778
+ .4byte gSpriteAnim_83D9764
+
+ .align 2
+gBattleAnimSpriteTemplate_83D977C:: @ 83D977C
+ spr_template 10232, 10232, gOamData_837DF34, gSpriteAnimTable_83D9778, NULL, gDummySpriteAffineAnimTable, sub_80D5CC0
+
+ .align 2
+gUnknown_083D9794:: @ 83D9794
+ .incbin "baserom.gba", 0x003d9794, 0x10
+
+gUnknown_083D97A4:: @ 83D97A4
+ .incbin "baserom.gba", 0x003d97a4, 0x10
+
+ .align 2
+gSpriteAnim_83D97B4:: @ 83D97B4
+ obj_image_anim_frame 0, 5
+ obj_image_anim_frame 16, 5
+ obj_image_anim_frame 32, 8
+ obj_image_anim_frame 48, 5
+ obj_image_anim_frame 64, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_83D97CC:: @ 83D97CC
+ .4byte gSpriteAnim_83D97B4
+
+ .align 2
+gBattleAnimSpriteTemplate_83D97D0:: @ 83D97D0
+ spr_template 10037, 10037, gOamData_837DF34, gSpriteAnimTable_83D97CC, NULL, gDummySpriteAffineAnimTable, sub_80D61C8
+
+ .align 2
+gSpriteAffineAnim_83D97E8:: @ 83D97E8
+ obj_rot_scal_anim_frame 0x100, 0x100, 0, 0
+ obj_rot_scal_anim_frame 0x0, 0x0, 0, 20
+ obj_rot_scal_anim_frame 0x0, 0x0, -16, 60
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnimTable_83D9808:: @ 83D9808
+ .4byte gSpriteAffineAnim_83D97E8
+
+ .align 2
+gSpriteTemplate_83D980C:: @ 83D980C
+ spr_template 10143, 10143, gOamData_837DF94, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83D9808, sub_80D6234
+
+ .align 2
+gSpriteAnim_83D9824:: @ 83D9824
+ obj_image_anim_frame 0, 5
+ obj_image_anim_frame 16, 5
+ obj_image_anim_frame 32, 5
+ obj_image_anim_frame 48, 5
+ obj_image_anim_frame 64, 5
+ obj_image_anim_frame 80, 5
+ obj_image_anim_jump 0
+
+ .align 2
+gSpriteAnimTable_83D9840:: @ 83D9840
+ .4byte gSpriteAnim_83D9824
+
+ .align 2
+gSpriteTemplate_83D9844:: @ 83D9844
+ spr_template 10079, 10079, gOamData_837DF34, gSpriteAnimTable_83D9840, NULL, gDummySpriteAffineAnimTable, sub_80D6294
+
+ .align 2
+gBattleAnimSpriteTemplate_83D985C:: @ 83D985C
+ spr_template 10011, 10011, gOamData_837DF8C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80D6328
+
+ .align 2
+gBattleAnimSpriteTemplate_83D9874:: @ 83D9874
+ spr_template 10171, 10171, gOamData_837DF2C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_807941C
+
+ .align 2
+gSpriteAffineAnim_83D988C:: @ 83D988C
+ obj_rot_scal_anim_frame 0x0, 0x0, 20, 1
+ obj_rot_scal_anim_jump 0
+
+ .align 2
+gSpriteAffineAnimTable_83D989C:: @ 83D989C
+ .4byte gSpriteAffineAnim_83D988C
+
+ .align 2
+gBattleAnimSpriteTemplate_83D98A0:: @ 83D98A0
+ spr_template 10011, 10011, gOamData_837DF8C, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83D989C, sub_80D648C
+
+ .align 2
+gSpriteAnim_83D98B8:: @ 83D98B8
+ obj_image_anim_frame 0, 6
+ obj_image_anim_frame 16, 6
+ obj_image_anim_frame 32, 6
+ obj_image_anim_jump 0
+
+ .align 2
+gSpriteAnimTable_83D98C8:: @ 83D98C8
+ .4byte gSpriteAnim_83D98B8
+
+ .align 2
+gSpriteAffineAnim_83D98CC:: @ 83D98CC
+ obj_rot_scal_anim_frame 0xE8, 0xE8, 0, 0
+ obj_rot_scal_anim_frame 0xFFF8, 0xFFF8, 0, 10
+ obj_rot_scal_anim_frame 0x8, 0x8, 0, 10
+ obj_rot_scal_anim_jump 1
+
+ .align 2
+gSpriteAffineAnimTable_83D98EC:: @ 83D98EC
+ .4byte gSpriteAffineAnim_83D98CC
+
+ .align 2
+gBattleAnimSpriteTemplate_83D98F0:: @ 83D98F0
+ spr_template 10282, 10282, gOamData_837DF94, gSpriteAnimTable_83D98C8, NULL, gSpriteAffineAnimTable_83D98EC, sub_80D65DC
+
+ .align 2
+gBattleAnimSpriteTemplate_83D9908:: @ 83D9908
+ spr_template 10011, 10011, gOamData_837DF8C, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83D989C, sub_80D6658
+
+ .align 2
+gBattleAnimSpriteTemplate_83D9920:: @ 83D9920
+ spr_template 10011, 10011, gOamData_837DF2C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80D679C
+
+ .align 2
+gSpriteTemplate_83D9938:: @ 83D9938
+ spr_template 10001, 10001, gOamData_837DF24, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80D6A1C
+
+ .align 2
+gBattleAnimSpriteTemplate_83D9950:: @ 83D9950
+ spr_template 10173, 10173, gOamData_837DF54, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80D6A6C
+
+ .align 2
+gUnknown_083D9968:: @ 83D9968
+ .incbin "baserom.gba", 0x003d9968, 0x20
+
+ .align 2
+gSpriteAnim_83D9988:: @ 83D9988
+ obj_image_anim_frame 3, 1
+ obj_image_anim_frame 2, 1
+ obj_image_anim_frame 1, 1
+ obj_image_anim_frame 0, 1
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83D999C:: @ 83D999C
+ obj_image_anim_frame 0, 5
+ obj_image_anim_frame 1, 5
+ obj_image_anim_frame 2, 5
+ obj_image_anim_frame 3, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_83D99B0:: @ 83D99B0
+ .4byte gSpriteAnim_83D9988
+ .4byte gSpriteAnim_83D999C
+
+ .align 2
+gSpriteTemplate_83D99B8:: @ 83D99B8
+ spr_template 10211, 10211, gOamData_837DF24, gSpriteAnimTable_83D99B0, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
+
+ .align 2
+gSpriteAffineAnim_83D99D0:: @ 83D99D0
+ obj_rot_scal_anim_frame 0x10, 0x10, 0, 0
+ obj_rot_scal_anim_frame 0x4, 0x4, 0, 60
+ obj_rot_scal_anim_frame 0x100, 0x100, 0, 0
+ obj_rot_scal_anim_loop 0
+ obj_rot_scal_anim_frame 0xFFFC, 0xFFFC, 0, 5
+ obj_rot_scal_anim_frame 0x4, 0x4, 0, 5
+ obj_rot_scal_anim_loop 10
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnim_83D9A10:: @ 83D9A10
+ obj_rot_scal_anim_frame 0x10, 0x10, 0, 0
+ obj_rot_scal_anim_frame 0x8, 0x8, 0, 30
+ obj_rot_scal_anim_frame 0x100, 0x100, 0, 0
+ obj_rot_scal_anim_frame 0xFFFC, 0xFFFC, 0, 5
+ obj_rot_scal_anim_frame 0x4, 0x4, 0, 5
+ obj_rot_scal_anim_jump 3
+
+ .align 2
+gSpriteAffineAnim_83D9A40:: @ 83D9A40
+ obj_rot_scal_anim_frame 0x10, 0x10, 0, 0
+ obj_rot_scal_anim_frame 0x8, 0x8, 0, 30
+ obj_rot_scal_anim_frame 0xFFF8, 0xFFF8, 0, 30
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnimTable_83D9A60:: @ 83D9A60
+ .4byte gSpriteAffineAnim_83D99D0
+ .4byte gSpriteAffineAnim_83D9A10
+ .4byte gSpriteAffineAnim_83D9A40
+
+ .align 2
+gBattleAnimSpriteTemplate_83D9A6C:: @ 83D9A6C
+ spr_template 10212, 10212, gOamData_837E0BC, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83D9A60, sub_80D6D18
+
+ .align 2
+gSpriteAnim_83D9A84:: @ 83D9A84
+ obj_image_anim_frame 0, 3
+ obj_image_anim_frame 16, 3
+ obj_image_anim_frame 32, 3
+ obj_image_anim_frame 48, 3
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_83D9A98:: @ 83D9A98
+ .4byte gSpriteAnim_83D9A84
+
+ .align 2
+gBattleAnimSpriteTemplate_83D9A9C:: @ 83D9A9C
+ spr_template 10213, 10213, gOamData_837DF34, gSpriteAnimTable_83D9A98, NULL, gDummySpriteAffineAnimTable, sub_80D6D70
+
+ .align 2
+gBattleAnimSpriteTemplate_83D9AB4:: @ 83D9AB4
+ spr_template 10212, 10212, gOamData_837E0BC, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83D9A60, sub_80D6DD8
+
+ .align 2
+gSpriteAnim_83D9ACC:: @ 83D9ACC
+ obj_image_anim_frame 0, 3
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83D9AD4:: @ 83D9AD4
+ obj_image_anim_frame 2, 3
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83D9ADC:: @ 83D9ADC
+ obj_image_anim_frame 4, 3
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83D9AE4:: @ 83D9AE4
+ obj_image_anim_frame 6, 3
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_83D9AEC:: @ 83D9AEC
+ .4byte gSpriteAnim_83D9ACC
+ .4byte gSpriteAnim_83D9AD4
+ .4byte gSpriteAnim_83D9ADC
+ .4byte gSpriteAnim_83D9AE4
+
+ .align 2
+gSpriteAffineAnim_83D9AFC:: @ 83D9AFC
+ obj_rot_scal_anim_frame 0x100, 0x100, 64, 0
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnimTable_83D9B0C:: @ 83D9B0C
+ .4byte gSpriteAffineAnim_83D9AFC
+
+ .align 2
+gSpriteTemplate_83D9B10:: @ 83D9B10
+ spr_template 10001, 10001, gOamData_837E024, gSpriteAnimTable_83D9AEC, NULL, gSpriteAffineAnimTable_83D9B0C, sub_80D7230
+
+ .align 2
+gBattleAnimSpriteTemplate_83D9B28:: @ 83D9B28
+ spr_template 10212, 10212, gOamData_837E0BC, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83D9A60, sub_80D727C
+
+ .align 2
+gSpriteTemplate_83D9B40:: @ 83D9B40
+ spr_template 10001, 10001, gOamData_837DF24, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80D755C
+
+ .align 2
+gSpriteAnim_83D9B58:: @ 83D9B58
+ obj_image_anim_frame 0, 5, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_frame 1, 5, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_jump 0
+
+ .align 2
+gSpriteAnimTable_83D9B64:: @ 83D9B64
+ .4byte gSpriteAnim_83D9B58
+
+ .align 2
+gSpriteTemplate_83D9B68:: @ 83D9B68
+ spr_template 10141, 10141, gOamData_837DF24, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80D7704
+
+ .align 2
+gSpriteAnim_83D9B80:: @ 83D9B80
+ obj_image_anim_frame 0, 1
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83D9B88:: @ 83D9B88
+ obj_image_anim_frame 4, 1
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83D9B90:: @ 83D9B90
+ obj_image_anim_frame 6, 1
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83D9B98:: @ 83D9B98
+ obj_image_anim_frame 7, 1
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83D9BA0:: @ 83D9BA0
+ obj_image_anim_frame 8, 1
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83D9BA8:: @ 83D9BA8
+ obj_image_anim_frame 12, 6
+ obj_image_anim_frame 13, 6
+ obj_image_anim_jump 0
+
+ .align 2
+gSpriteAnimTable_83D9BB4:: @ 83D9BB4
+ .4byte gSpriteAnim_83D9B80
+
+ .align 2
+gSpriteAnimTable_83D9BB8:: @ 83D9BB8
+ .4byte gSpriteAnim_83D9B88
+
+ .align 2
+gSpriteAnimTable_83D9BBC:: @ 83D9BBC
+ .4byte gSpriteAnim_83D9B90
+
+ .align 2
+gSpriteAnimTable_83D9BC0:: @ 83D9BC0
+ .4byte gSpriteAnim_83D9B98
+
+ .align 2
+gSpriteAnimTable_83D9BC4:: @ 83D9BC4
+ .4byte gSpriteAnim_83D9BA0
+
+ .align 2
+gSpriteAnimTable_83D9BC8:: @ 83D9BC8
+ .4byte gSpriteAnim_83D9BA8
+
+ .align 2
+gSpriteAffineAnim_83D9BCC:: @ 83D9BCC
+ obj_rot_scal_anim_frame 0x0, 0x0, 40, 1
+ obj_rot_scal_anim_jump 0
+
+ .align 2
+gSpriteAffineAnimTable_83D9BDC:: @ 83D9BDC
+ .4byte gSpriteAffineAnim_83D9BCC
+
+ .align 2
+gBattleAnimSpriteTemplate_83D9BE0:: @ 83D9BE0
+ spr_template 10141, 10141, gOamData_837E144, gSpriteAnimTable_83D9BB8, NULL, gSpriteAffineAnimTable_83D9BDC, sub_80D78EC
+
+ .align 2
+gBattleAnimSpriteTemplate_83D9BF8:: @ 83D9BF8
+ spr_template 10141, 10141, gOamData_837E044, gSpriteAnimTable_83D9BBC, NULL, gDummySpriteAffineAnimTable, sub_80D78EC
+
+ .align 2
+gSpriteAffineAnim_83D9C10:: @ 83D9C10
+ obj_rot_scal_anim_frame 0x0, 0x0, 10, 1
+ obj_rot_scal_anim_jump 0
+
+ .align 2
+gSpriteAffineAnimTable_83D9C20:: @ 83D9C20
+ .4byte gSpriteAffineAnim_83D9C10
+
+ .align 2
+gBattleAnimSpriteTemplate_83D9C24:: @ 83D9C24
+ spr_template 10141, 10141, gOamData_837E0E4, gSpriteAnimTable_83D9BB8, NULL, gSpriteAffineAnimTable_83D9C20, sub_80D792C
+
+ .align 2
+gBattleAnimSpriteTemplate_83D9C3C:: @ 83D9C3C
+ spr_template 10141, 10141, gOamData_837E044, gSpriteAnimTable_83D9BBC, NULL, gDummySpriteAffineAnimTable, sub_80D792C
+
+ .align 2
+gSpriteAffineAnim_83D9C54:: @ 83D9C54
+ obj_rot_scal_anim_frame 0xCE, 0xCE, 0, 0
+ obj_rot_scal_anim_frame 0x5, 0x5, 0, 10
+ obj_rot_scal_anim_frame 0x0, 0x0, 0, 6
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnimTable_83D9C74:: @ 83D9C74
+ .4byte gSpriteAffineAnim_83D9C54
+
+ .align 2
+gBattleAnimSpriteTemplate_83D9C78:: @ 83D9C78
+ spr_template 10141, 10141, gOamData_837E0E4, gSpriteAnimTable_83D9BB8, NULL, gSpriteAffineAnimTable_83D9C74, sub_80D79B4
+
+ .align 2
+gBattleAnimSpriteTemplate_83D9C90:: @ 83D9C90
+ spr_template 10141, 10141, gOamData_837E0A4, gSpriteAnimTable_83D9BBC, NULL, gSpriteAffineAnimTable_83D9C74, sub_80D79B4
+
+ .align 2
+gBattleAnimSpriteTemplate_83D9CA8:: @ 83D9CA8
+ spr_template 10141, 10141, gOamData_837DF24, gSpriteAnimTable_83D9BC0, NULL, gDummySpriteAffineAnimTable, sub_80D7A64
+
+ .align 2
+gBattleAnimSpriteTemplate_83D9CC0:: @ 83D9CC0
+ spr_template 10141, 10141, gOamData_837DF2C, gSpriteAnimTable_83D9BC4, NULL, gDummySpriteAffineAnimTable, sub_80D7CD4
+
+ .align 2
+gBattleAnimSpriteTemplate_83D9CD8:: @ 83D9CD8
+ spr_template 10141, 10141, gOamData_837DF24, gSpriteAnimTable_83D9BC0, NULL, gDummySpriteAffineAnimTable, sub_80D7CD4
+
+ .align 2
+gSpriteAnim_83D9CF0:: @ 83D9CF0
+ obj_image_anim_frame 0, 5
+ obj_image_anim_frame 2, 5
+ obj_image_anim_frame 4, 5
+ obj_image_anim_frame 6, 5
+ obj_image_anim_frame 4, 5
+ obj_image_anim_frame 2, 5
+ obj_image_anim_frame 0, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_83D9D10:: @ 83D9D10
+ .4byte gSpriteAnim_83D9CF0
+
+ .align 2
+gBattleAnimSpriteTemplate_83D9D14:: @ 83D9D14
+ spr_template 10142, 10142, gOamData_837E084, gSpriteAnimTable_83D9D10, NULL, gDummySpriteAffineAnimTable, sub_80D7E88
+
+ .align 2
+gSpriteAnim_83D9D2C:: @ 83D9D2C
+ obj_image_anim_frame 0, 8
+ obj_image_anim_frame 8, 8
+ obj_image_anim_jump 0
+
+ .align 2
+gSpriteAnimTable_83D9D38:: @ 83D9D38
+ .4byte gSpriteAnim_83D9D2C
+
+ .align 2
+gBattleAnimSpriteTemplate_83D9D3C:: @ 83D9D3C
+ spr_template 10144, 10144, gOamData_837E074, gSpriteAnimTable_83D9D38, NULL, gDummySpriteAffineAnimTable, sub_80D7F10
+
+ .align 2
+gBattleAnimSpriteTemplate_83D9D54:: @ 83D9D54
+ spr_template 10172, 10172, gOamData_837E074, gSpriteAnimTable_83D9D38, NULL, gDummySpriteAffineAnimTable, sub_80D7F10
+
+ .align 2
+gUnknown_083D9D6C:: @ 83D9D6C
+ .incbin "baserom.gba", 0x003d9d6c, 0x14
+
+ .align 2
+gBattleAnimSpriteTemplate_83D9D80:: @ 83D9D80
+ spr_template 10155, 10155, gOamData_837DF2C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80D83E0
+
+ .align 2
+gUnknown_083D9D98:: @ 83D9D98
+ .incbin "baserom.gba", 0x003d9d98, 0x14
+
+ .align 2
+gBattleAnimSpriteTemplate_83D9DAC:: @ 83D9DAC
+ spr_template 10172, 10172, gOamData_837E074, gSpriteAnimTable_83D9D38, NULL, gDummySpriteAffineAnimTable, sub_80D8700
+
+ .align 2
+gUnknown_083D9DC4:: @ 83D9DC4
+ .incbin "baserom.gba", 0x003d9dc4, 0x28
+
+ .align 2
+gSpriteAffineAnim_83D9DEC:: @ 83D9DEC
+ obj_rot_scal_anim_frame 0x100, 0x100, 0, 0
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnim_83D9DFC:: @ 83D9DFC
+ obj_rot_scal_anim_frame 0xF0, 0xF0, 0, 0
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnim_83D9E0C:: @ 83D9E0C
+ obj_rot_scal_anim_frame 0xE0, 0xE0, 0, 0
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnim_83D9E1C:: @ 83D9E1C
+ obj_rot_scal_anim_frame 0x150, 0x150, 0, 0
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnimTable_83D9E2C:: @ 83D9E2C
+ .4byte gSpriteAffineAnim_83D9DEC
+ .4byte gSpriteAffineAnim_83D9DFC
+ .4byte gSpriteAffineAnim_83D9E0C
+
+ .align 2
+gSpriteAffineAnimTable_83D9E38:: @ 83D9E38
+ .4byte gSpriteAffineAnim_83D9E1C
+
+ .align 2
+gSpriteTemplate_83D9E3C:: @ 83D9E3C
+ spr_template 10263, 10263, gOamData_837DF8C, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83D9E2C, sub_80D8D1C
+
+ .align 2
+gBattleAnimSpriteTemplate_83D9E54:: @ 83D9E54
+ spr_template 10263, 10263, gOamData_837DF8C, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83D9E38, sub_807A9BC
+
+ .align 2
+gSpriteAnim_83D9E6C:: @ 83D9E6C
+ obj_image_anim_frame 0, 1
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83D9E74:: @ 83D9E74
+ obj_image_anim_frame 16, 4
+ obj_image_anim_frame 32, 4
+ obj_image_anim_frame 48, 4
+ obj_image_anim_frame 64, 4
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_83D9E88:: @ 83D9E88
+ .4byte gSpriteAnim_83D9E6C
+ .4byte gSpriteAnim_83D9E74
+
+ .align 2
+gSpriteAffineAnim_83D9E90:: @ 83D9E90
+ obj_rot_scal_anim_frame 0xE0, 0xE0, 0, 0
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnim_83D9EA0:: @ 83D9EA0
+ obj_rot_scal_anim_frame 0x118, 0x118, 0, 0
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnim_83D9EB0:: @ 83D9EB0
+ obj_rot_scal_anim_frame 0x150, 0x150, 0, 0
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnim_83D9EC0:: @ 83D9EC0
+ obj_rot_scal_anim_frame 0x180, 0x180, 0, 0
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnim_83D9ED0:: @ 83D9ED0
+ obj_rot_scal_anim_frame 0x1C0, 0x1C0, 0, 0
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnimTable_83D9EE0:: @ 83D9EE0
+ .4byte gSpriteAffineAnim_83D9E90
+ .4byte gSpriteAffineAnim_83D9EA0
+ .4byte gSpriteAffineAnim_83D9EB0
+ .4byte gSpriteAffineAnim_83D9EC0
+ .4byte gSpriteAffineAnim_83D9ED0
+
+ .align 2
+gBattleAnimSpriteTemplate_83D9EF4:: @ 83D9EF4
+ spr_template 10043, 10043, gOamData_837DFF4, gSpriteAnimTable_83D9E88, NULL, gSpriteAffineAnimTable_83D9EE0, unc_080B06FC
+
+ .align 2
+gBattleAnimSpriteTemplate_83D9F0C:: @ 83D9F0C
+ spr_template 10141, 10141, gOamData_837DF24, gSpriteAnimTable_83D9BBC, NULL, gDummySpriteAffineAnimTable, sub_80D8F10
+
+ .align 2
+gSpriteTemplate_83D9F24:: @ 83D9F24
+ spr_template 10050, 10050, gOamData_837DF34, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, unc_080B08A0
+
+ .align 2
+gSpriteAnim_83D9F3C:: @ 83D9F3C
+ obj_image_anim_frame 0, 1
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83D9F44:: @ 83D9F44
+ obj_image_anim_frame 16, 1
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83D9F4C:: @ 83D9F4C
+ obj_image_anim_frame 32, 1
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83D9F54:: @ 83D9F54
+ obj_image_anim_frame 48, 1
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83D9F5C:: @ 83D9F5C
+ obj_image_anim_frame 48, 1, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_83D9F64:: @ 83D9F64
+ .4byte gSpriteAnim_83D9F3C
+
+ .align 2
+gSpriteAnimTable_83D9F68:: @ 83D9F68
+ .4byte gSpriteAnim_83D9F44
+ .4byte gSpriteAnim_83D9F4C
+
+ .align 2
+gSpriteAnimTable_83D9F70:: @ 83D9F70
+ .4byte gSpriteAnim_83D9F54
+ .4byte gSpriteAnim_83D9F5C
+
+ .align 2
+gBattleAnimSpriteTemplate_83D9F78:: @ 83D9F78
+ spr_template 10143, 10143, gOamData_837DF34, gSpriteAnimTable_83D9F64, NULL, gDummySpriteAffineAnimTable, sub_80D902C
+
+ .align 2
+gBattleAnimSpriteTemplate_83D9F90:: @ 83D9F90
+ spr_template 10143, 10143, gOamData_837DF34, gSpriteAnimTable_83D9F64, NULL, gDummySpriteAffineAnimTable, sub_80D9078
+
+ .align 2
+gBattleAnimSpriteTemplate_83D9FA8:: @ 83D9FA8
+ spr_template 10143, 10143, gOamData_837DF34, gSpriteAnimTable_83D9F64, NULL, gDummySpriteAffineAnimTable, sub_80D90A4
+
+ .align 2
+gBattleAnimSpriteTemplate_83D9FC0:: @ 83D9FC0
+ spr_template 10143, 10143, gOamData_837DF34, gSpriteAnimTable_83D9F64, NULL, gDummySpriteAffineAnimTable, sub_80D90F4
+
+ .align 2
+gBattleAnimSpriteTemplate_83D9FD8:: @ 83D9FD8
+ spr_template 10143, 10143, gOamData_837DF34, gSpriteAnimTable_83D9F70, NULL, gDummySpriteAffineAnimTable, sub_80D92D0
+
+ .align 2
+gBattleAnimSpriteTemplate_83D9FF0:: @ 83D9FF0
+ spr_template 10143, 10143, gOamData_837DF34, gSpriteAnimTable_83D9F68, NULL, gDummySpriteAffineAnimTable, sub_80D9378
+
+ .align 2
+gSpriteAffineAnim_83DA008:: @ 83DA008
+ obj_rot_scal_anim_frame 0x100, 0x100, 0, 0
+ obj_rot_scal_anim_frame 0xFFF8, 0xFFF8, 20, 1
+ obj_rot_scal_anim_jump 1
+
+ .align 2
+gSpriteAffineAnimTable_83DA020:: @ 83DA020
+ .4byte gSpriteAffineAnim_83DA008
+
+ .align 2
+gBattleAnimSpriteTemplate_83DA024:: @ 83DA024
+ spr_template 10143, 10143, gOamData_837DFF4, gSpriteAnimTable_83D9F64, NULL, gSpriteAffineAnimTable_83DA020, sub_80D943C
+
+ .align 2
+gSpriteAffineAnim_83DA03C:: @ 83DA03C
+ obj_rot_scal_anim_frame 0x100, 0x100, 0, 0
+ obj_rot_scal_anim_frame 0xFFFC, 0xFFFC, 20, 1
+ obj_rot_scal_anim_jump 1
+
+ .align 2
+gSpriteAffineAnimTable_83DA054:: @ 83DA054
+ .4byte gSpriteAffineAnim_83DA03C
+
+ .align 2
+gBattleAnimSpriteTemplate_83DA058:: @ 83DA058
+ spr_template 10143, 10143, gOamData_837DFF4, gSpriteAnimTable_83D9F64, NULL, gSpriteAffineAnimTable_83DA054, sub_80D943C
+
+ .align 2
+gBattleAnimSpriteTemplate_83DA070:: @ 83DA070
+ spr_template 10143, 10143, gOamData_837DF34, gSpriteAnimTable_83D9F68, NULL, gDummySpriteAffineAnimTable, sub_80D94A8
+
+ .align 2
+gBattleAnimSpriteTemplate_83DA088:: @ 83DA088
+ spr_template 10073, 10073, gOamData_837DF2C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80D9540
+
+ .align 2
+gBattleAnimSpriteTemplate_83DA0A0:: @ 83DA0A0
+ spr_template 10167, 10167, gOamData_837E05C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80D95D0
+
+ .align 2
+gBattleAnimSpriteTemplate_83DA0B8:: @ 83DA0B8
+ spr_template 10208, 10208, gOamData_837DF34, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80D96B8
+
+ .align 2
+gSpriteAffineAnim_83DA0D0:: @ 83DA0D0
+ obj_rot_scal_anim_frame 0x20, 0x20, 0, 0
+ obj_rot_scal_anim_frame 0x4, 0x4, 0, 64
+ obj_rot_scal_anim_frame 0xFFFA, 0xFFFA, 0, 8
+ obj_rot_scal_anim_frame 0x6, 0x6, 0, 8
+ obj_rot_scal_anim_jump 2
+
+ .align 2
+gSpriteAffineAnimTable_83DA0F8:: @ 83DA0F8
+ .4byte gSpriteAffineAnim_83DA0D0
+
+ .align 2
+gBattleAnimSpriteTemplate_83DA0FC:: @ 83DA0FC
+ spr_template 10212, 10212, gOamData_837E11C, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83DA0F8, sub_80D97CC
+
+ .align 2
+gBattleAnimSpriteTemplate_83DA114:: @ 83DA114
+ spr_template 10257, 10257, gOamData_837DF2C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80D98D8
+
+ .align 2
+gBattleAnimSpriteTemplate_83DA12C:: @ 83DA12C
+ spr_template 10256, 10256, gOamData_837DF3C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80D9A38
+
+ .align 2
+gBattleAnimSpriteTemplate_83DA144:: @ 83DA144
+ spr_template 10143, 10143, gOamData_837DF34, gSpriteAnimTable_83D9F64, NULL, gDummySpriteAffineAnimTable, sub_80D9B48
+
+ .align 2
+gSpriteAnim_83DA15C:: @ 83DA15C
+ obj_image_anim_frame 0, 4
+ obj_image_anim_frame 16, 4
+ obj_image_anim_frame 32, 4
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83DA16C:: @ 83DA16C
+ obj_image_anim_frame 0, 4, OBJ_IMAGE_ANIM_V_FLIP
+ obj_image_anim_frame 16, 4, OBJ_IMAGE_ANIM_V_FLIP
+ obj_image_anim_frame 32, 4, OBJ_IMAGE_ANIM_V_FLIP
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83DA17C:: @ 83DA17C
+ obj_image_anim_frame 0, 4, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_frame 16, 4, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_frame 32, 4, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_83DA18C:: @ 83DA18C
+ .4byte gSpriteAnim_83DA15C
+ .4byte gSpriteAnim_83DA16C
+ .4byte gSpriteAnim_83DA17C
+
+ .align 2
+gBattleAnimSpriteTemplate_83DA198:: @ 83DA198
+ spr_template 10245, 10245, gOamData_837DF34, gSpriteAnimTable_83DA18C, NULL, gDummySpriteAffineAnimTable, sub_80D9BD4
+
+ .align 2
+gSpriteAnim_83DA1B0:: @ 83DA1B0
+ obj_image_anim_frame 0, 6
+ obj_image_anim_frame 64, 6
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83DA1BC:: @ 83DA1BC
+ obj_image_anim_frame 0, 6, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_frame 64, 6, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83DA1C8:: @ 83DA1C8
+ obj_image_anim_frame 0, 6, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_frame 64, 6, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_83DA1D4:: @ 83DA1D4
+ .4byte gSpriteAnim_83DA1B0
+ .4byte gSpriteAnim_83DA1BC
+ .4byte gSpriteAnim_83DA1C8
+
+ .align 2
+gBattleAnimSpriteTemplate_83DA1E0:: @ 83DA1E0
+ spr_template 10246, 10246, gOamData_837DF3C, gSpriteAnimTable_83DA1D4, NULL, gDummySpriteAffineAnimTable, sub_80D9BD4
+
+ .align 2
+gSpriteAffineAnim_83DA1F8:: @ 83DA1F8
+ obj_rot_scal_anim_frame 0x200, 0x200, 0, 0
+ obj_rot_scal_anim_frame 0xFFE0, 0xFFE0, 0, 8
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnimTable_83DA210:: @ 83DA210
+ .4byte gSpriteAffineAnim_83DA1F8
+
+ .align 2
+gBattleAnimSpriteTemplate_83DA214:: @ 83DA214
+ spr_template 10143, 10143, gOamData_837DFF4, gSpriteAnimTable_83D9F64, NULL, gSpriteAffineAnimTable_83DA210, sub_80D9C40
+
+ .align 2
+gSpriteAnim_83DA22C:: @ 83DA22C
+ obj_image_anim_frame 0, 5
+ obj_image_anim_frame 8, 5
+ obj_image_anim_frame 16, 5
+ obj_image_anim_frame 24, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_83DA240:: @ 83DA240
+ .4byte gSpriteAnim_83DA22C
+
+ .align 2
+gBattleAnimSpriteTemplate_83DA244:: @ 83DA244
+ spr_template 10151, 10151, gOamData_837DF74, gSpriteAnimTable_83DA240, NULL, gDummySpriteAffineAnimTable, sub_80793C4
+
+ .align 2
+gSpriteAnim_83DA25C:: @ 83DA25C
+ obj_image_anim_frame 0, 1
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83DA264:: @ 83DA264
+ obj_image_anim_frame 4, 1
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83DA26C:: @ 83DA26C
+ obj_image_anim_frame 8, 1
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_83DA274:: @ 83DA274
+ .4byte gSpriteAnim_83DA25C
+
+ .align 2
+gSpriteAnimTable_83DA278:: @ 83DA278
+ .4byte gSpriteAnim_83DA264
+
+ .align 2
+gSpriteAnimTable_83DA27C:: @ 83DA27C
+ .4byte gSpriteAnim_83DA26C
+
+ .align 2
+gSpriteAffineAnim_83DA280:: @ 83DA280
+ obj_rot_scal_anim_frame 0x160, 0x160, 0, 0
+ obj_rot_scal_anim_frame 0xFFF6, 0xFFF6, 0, 10
+ obj_rot_scal_anim_frame 0xA, 0xA, 0, 10
+ obj_rot_scal_anim_jump 0
+
+ .align 2
+gSpriteAffineAnim_83DA2A0:: @ 83DA2A0
+ obj_rot_scal_anim_frame 0xEC, 0xEC, 0, 0
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnimTable_83DA2B0:: @ 83DA2B0
+ .4byte gSpriteAffineAnim_83DA280
+
+ .align 2
+gSpriteAffineAnimTable_83DA2B4:: @ 83DA2B4
+ .4byte gSpriteAffineAnim_83DA2A0
+
+ .align 2
+gBattleAnimSpriteTemplate_83DA2B8:: @ 83DA2B8
+ spr_template 10150, 10150, gOamData_837DFEC, gSpriteAnimTable_83DA274, NULL, gSpriteAffineAnimTable_83DA2B0, sub_80D9D70
+
+ .align 2
+gBattleAnimSpriteTemplate_83DA2D0:: @ 83DA2D0
+ spr_template 10150, 10150, gOamData_837DFEC, gSpriteAnimTable_83DA274, NULL, gSpriteAffineAnimTable_83DA2B0, sub_80D9DF0
+
+ .align 2
+gBattleAnimSpriteTemplate_83DA2E8:: @ 83DA2E8
+ spr_template 10150, 10150, gOamData_837DF8C, gSpriteAnimTable_83DA27C, NULL, gSpriteAffineAnimTable_83DA2B4, sub_80D9E94
+
+ .align 2
+gSpriteAffineAnim_83DA300:: @ 83DA300
+ obj_rot_scal_anim_frame 0xFFF0, 0x10, 0, 6
+ obj_rot_scal_anim_frame 0x10, 0xFFF0, 0, 6
+ obj_rot_scal_anim_jump 0
+
+ .align 2
+gSpriteAffineAnimTable_83DA318:: @ 83DA318
+ .4byte gSpriteAffineAnim_83DA300
+
+ .align 2
+gBattleAnimSpriteTemplate_83DA31C:: @ 83DA31C
+ spr_template 10150, 10150, gOamData_837DFEC, gSpriteAnimTable_83DA278, NULL, gSpriteAffineAnimTable_83DA318, sub_80D9F14
+
+ .align 2
+gSpriteAffineAnim_83DA334:: @ 83DA334
+ obj_rot_scal_anim_frame 0x9C, 0x9C, 0, 0
+ obj_rot_scal_anim_frame 0x5, 0x5, 0, 20
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnimTable_83DA34C:: @ 83DA34C
+ .4byte gSpriteAffineAnim_83DA334
+
+ .align 2
+gBattleAnimSpriteTemplate_83DA350:: @ 83DA350
+ spr_template 10150, 10150, gOamData_837DF8C, gSpriteAnimTable_83DA274, NULL, gSpriteAffineAnimTable_83DA34C, sub_80D9F88
+
+ .align 2
+gBattleAnimSpriteTemplate_83DA368:: @ 83DA368
+ spr_template 10155, 10155, gOamData_837E0AC, gSpriteAnimTable_83D9310, NULL, gSpriteAffineAnimTable_83DA34C, sub_80D9F88
+
+ .align 2
+gBattleAnimSpriteTemplate_83DA380:: @ 83DA380
+ spr_template 10009, 10009, gOamData_837DF7C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80DA034
+
+ .align 2
+gSpriteAffineAnim_83DA398:: @ 83DA398
+ obj_rot_scal_anim_frame 0x10, 0x100, 0, 0
+ obj_rot_scal_anim_frame 0xA, 0x0, 0, 24
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnimTable_83DA3B0:: @ 83DA3B0
+ .4byte gSpriteAffineAnim_83DA398
+
+ .align 2
+gBattleAnimSpriteTemplate_83DA3B4:: @ 83DA3B4
+ spr_template 10009, 10009, gOamData_837DFDC, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83DA3B0, sub_80DA16C
+
+ .align 2
+gSpriteAnim_83DA3CC:: @ 83DA3CC
+ obj_image_anim_frame 0, 3
+ obj_image_anim_frame 0, 3, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_frame 0, 3, OBJ_IMAGE_ANIM_V_FLIP
+ obj_image_anim_frame 0, 3, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_jump 0
+
+ .align 2
+gSpriteAnimTable_83DA3E0:: @ 83DA3E0
+ .4byte gSpriteAnim_83DA3CC
+
+ .align 2
+gBattleAnimSpriteTemplate_83DA3E4:: @ 83DA3E4
+ spr_template 10154, 10154, gOamData_837DF54, gSpriteAnimTable_83DA3E0, NULL, gDummySpriteAffineAnimTable, sub_80DA208
+
+ .align 2
+gSpriteAffineAnim_83DA3FC:: @ 83DA3FC
+ obj_rot_scal_anim_frame 0x10, 0x100, 0, 0
+ obj_rot_scal_anim_frame 0x28, 0x0, 0, 6
+ obj_rot_scal_anim_frame 0x0, 0xFFE0, 0, 5
+ obj_rot_scal_anim_frame 0xFFF0, 0x20, 0, 10
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnimTable_83DA424:: @ 83DA424
+ .4byte gSpriteAffineAnim_83DA3FC
+
+ .align 2
+gSpriteAffineAnim_83DA428:: @ 83DA428
+ obj_rot_scal_anim_frame 0x0, 0x0, 50, 1
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnim_83DA438:: @ 83DA438
+ obj_rot_scal_anim_frame 0x0, 0x0, -40, 1
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnimTable_83DA448:: @ 83DA448
+ .4byte gSpriteAffineAnim_83DA428
+ .4byte gSpriteAffineAnim_83DA438
+
+ .align 2
+gBattleAnimSpriteTemplate_83DA450:: @ 83DA450
+ spr_template 10156, 10156, gOamData_837DFFC, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83DA424, sub_80DA300
+
+ .align 2
+gBattleAnimSpriteTemplate_83DA468:: @ 83DA468
+ spr_template 10156, 10156, gOamData_837DF9C, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83DA448, sub_80DA38C
+
+ .align 2
+gSpriteAnim_83DA480:: @ 83DA480
+ obj_image_anim_frame 0, 0
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83DA488:: @ 83DA488
+ obj_image_anim_frame 16, 0, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_83DA490:: @ 83DA490
+ .4byte gSpriteAnim_83DA480
+ .4byte gSpriteAnim_83DA488
+
+ .align 2
+gBattleAnimSpriteTemplate_83DA498:: @ 83DA498
+ spr_template 10270, 10270, gOamData_837DF94, gSpriteAnimTable_83DA490, NULL, gDummySpriteAffineAnimTable, sub_80DA4D8
+
+ .align 2
+ .incbin "baserom.gba", 0x003da4b0, 0x20
+
+ .align 2
+gSpriteTemplate_83DA4D0:: @ 83DA4D0
+ spr_template 10155, 10155, gOamData_837DF2C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80DAD30
+
+ .align 2
+gSpriteTemplate_83DA4E8:: @ 83DA4E8
+ spr_template 10270, 10270, gOamData_837DF94, gSpriteAnimTable_83DA490, NULL, gDummySpriteAffineAnimTable, sub_80DAD84
+
+ .align 2
+gSpriteAnim_83DA500:: @ 83DA500
+ obj_image_anim_frame 0, 1
+ obj_image_anim_frame 8, 1
+ obj_image_anim_frame 16, 1
+ obj_image_anim_frame 8, 1, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_frame 0, 1, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_83DA518:: @ 83DA518
+ .4byte gSpriteAnim_83DA500
+
+ .align 2
+gBattleAnimSpriteTemplate_83DA51C:: @ 83DA51C
+ spr_template 10162, 10162, gOamData_837DF54, gSpriteAnimTable_83DA518, NULL, gDummySpriteAffineAnimTable, sub_80DB000
+
+ .align 2
+gSpriteAffineAnim_83DA534:: @ 83DA534
+ obj_rot_scal_anim_frame 0x10, 0x100, 0, 0
+ obj_rot_scal_anim_frame 0x28, 0x0, 0, 6
+ obj_rot_scal_anim_frame 0x0, 0xFFE0, 0, 5
+ obj_rot_scal_anim_frame 0xFFEC, 0x0, 0, 7
+ obj_rot_scal_anim_frame 0xFFEC, 0xFFEC, 0, 5
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnimTable_83DA564:: @ 83DA564
+ .4byte gSpriteAffineAnim_83DA534
+
+ .align 2
+gBattleAnimSpriteTemplate_83DA568:: @ 83DA568
+ spr_template 10156, 10156, gOamData_837DFFC, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83DA564, sub_80DB194
+
+ .align 2
+gSpriteAffineAnim_83DA580:: @ 83DA580
+ obj_rot_scal_anim_frame 0xA0, 0x100, 0, 0
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnimTable_83DA590:: @ 83DA590
+ .4byte gSpriteAffineAnim_83DA580
+
+ .align 2
+gBattleAnimSpriteTemplate_83DA594:: @ 83DA594
+ spr_template 10156, 10156, gOamData_837DFFC, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83DA590, sub_80DB1F4
+
+ .align 2
+gSpriteAffineAnim_83DA5AC:: @ 83DA5AC
+ obj_rot_scal_anim_frame 0x10, 0x100, 0, 0
+ obj_rot_scal_anim_frame 0x28, 0x0, 0, 6
+ obj_rot_scal_anim_frame 0x0, 0xFFE0, 0, 5
+ obj_rot_scal_anim_frame 0xFFF0, 0x20, 0, 10
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnimTable_83DA5D4:: @ 83DA5D4
+ .4byte gSpriteAffineAnim_83DA5AC
+
+ .align 2
+gBattleAnimSpriteTemplate_83DA5D8:: @ 83DA5D8
+ spr_template 10156, 10156, gOamData_837DFFC, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83DA5D4, sub_80DB288
+
+ .align 2
+gSpriteAffineAnim_83DA5F0:: @ 83DA5F0
+ obj_rot_scal_anim_frame 0x100, 0x0, 0, 0
+ obj_rot_scal_anim_frame 0x0, 0x20, 0, 12
+ obj_rot_scal_anim_frame 0x0, 0xFFE0, 0, 11
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnimTable_83DA610:: @ 83DA610
+ .4byte gSpriteAffineAnim_83DA5F0
+
+ .align 2
+gBattleAnimSpriteTemplate_83DA614:: @ 83DA614
+ spr_template 10272, 10272, gOamData_837DFFC, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80DB374
+
+ .align 2
+gBattleAnimSpriteTemplate_83DA62C:: @ 83DA62C
+ spr_template 10273, 10273, gOamData_837DF24, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80DB458
+
+ .align 2
+gSpriteTemplate_83DA644:: @ 83DA644
+ spr_template 10212, 10212, gOamData_837E05C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80DB564
+
+ .align 2
+gBattleAnimSpriteTemplate_83DA65C:: @ 83DA65C
+ spr_template 10284, 10284, gOamData_837DFFC, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80DB5E4
+
+ .align 2
+gSpriteAffineAnim_83DA674:: @ 83DA674
+ obj_rot_scal_anim_frame 0x100, 0x100, 0, 0
+ obj_rot_scal_anim_frame 0xFFFE, 0xFFFE, -10, 120
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnimTable_83DA68C:: @ 83DA68C
+ .4byte gSpriteAffineAnim_83DA674
+
+ .align 2
+gBattleAnimSpriteTemplate_83DA690:: @ 83DA690
+ spr_template 10196, 10196, gOamData_837E0BC, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83DA68C, sub_80793C4
+
+ .align 2
+gBattleAnimSpriteTemplate_83DA6A8:: @ 83DA6A8
+ spr_template 10166, 10166, gOamData_837E05C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80DB74C
+
+ .align 2
+gBattleAnimSpriteTemplate_83DA6C0:: @ 83DA6C0
+ spr_template 10167, 10167, gOamData_837E05C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80DB74C
+
+ .align 2
+gBattleAnimSpriteTemplate_83DA6D8:: @ 83DA6D8
+ spr_template 10168, 10168, gOamData_837E05C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80DB74C
+
+ .align 2
+gBattleAnimSpriteTemplate_83DA6F0:: @ 83DA6F0
+ spr_template 10169, 10169, gOamData_837E05C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80DB74C
+
+ .align 2
+gBattleAnimSpriteTemplate_83DA708:: @ 83DA708
+ spr_template 10170, 10170, gOamData_837E05C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80DB74C
+
+ .align 2
+gSpriteAnim_83DA720:: @ 83DA720
+ obj_image_anim_frame 0, 3
+ obj_image_anim_frame 16, 3
+ obj_image_anim_frame 32, 3
+ obj_image_anim_frame 48, 3
+ obj_image_anim_frame 64, 3
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_83DA738:: @ 83DA738
+ .4byte gSpriteAnim_83DA720
+
+ .align 2
+gBattleAnimSpriteTemplate_83DA73C:: @ 83DA73C
+ spr_template 10071, 10071, gOamData_837DF34, gSpriteAnimTable_83DA738, NULL, gDummySpriteAffineAnimTable, sub_80DBA4C
+
+ .align 2
+gSpriteAnim_83DA754:: @ 83DA754
+ obj_image_anim_frame 0, 5
+ obj_image_anim_frame 4, 5
+ obj_image_anim_frame 8, 5
+ obj_image_anim_frame 12, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_83DA768:: @ 83DA768
+ .4byte gSpriteAnim_83DA754
+
+ .align 2
+gBattleAnimSpriteTemplate_83DA76C:: @ 83DA76C
+ spr_template 10070, 10070, gOamData_837DF2C, gSpriteAnimTable_83DA768, NULL, gDummySpriteAffineAnimTable, sub_80DBA4C
+
+ .align 2
+gBattleAnimSpriteTemplate_83DA784:: @ 83DA784
+ spr_template 10163, 10163, gOamData_837DF74, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_807941C
+
+ .align 2
+gSpriteAnim_83DA79C:: @ 83DA79C
+ obj_image_anim_frame 8, 60, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_frame 16, 5, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_frame 8, 5, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_frame 0, 5, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_frame 8, 22, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_loop 0
+ obj_image_anim_frame 16, 5, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_frame 8, 5, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_frame 0, 5, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_frame 8, 5, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_loop 1
+ obj_image_anim_frame 8, 22, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_frame 24, 3, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_frame 32, 3, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_frame 40, 22, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83DA7DC:: @ 83DA7DC
+ obj_image_anim_frame 8, 60
+ obj_image_anim_frame 16, 5
+ obj_image_anim_frame 8, 5
+ obj_image_anim_frame 0, 5
+ obj_image_anim_frame 8, 22
+ obj_image_anim_loop 0
+ obj_image_anim_frame 16, 5
+ obj_image_anim_frame 8, 5
+ obj_image_anim_frame 0, 5
+ obj_image_anim_frame 8, 5
+ obj_image_anim_loop 1
+ obj_image_anim_frame 8, 22
+ obj_image_anim_frame 24, 3
+ obj_image_anim_frame 32, 3
+ obj_image_anim_frame 40, 22
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_83DA81C:: @ 83DA81C
+ .4byte gSpriteAnim_83DA79C
+ .4byte gSpriteAnim_83DA7DC
+
+ .align 2
+gBattleAnimSpriteTemplate_83DA824:: @ 83DA824
+ spr_template 10097, 10097, gOamData_837DF74, gSpriteAnimTable_83DA81C, NULL, gDummySpriteAffineAnimTable, sub_80DBAF4
+
+ .align 2
+gSpriteAnim_83DA83C:: @ 83DA83C
+ obj_image_anim_frame 0, 6
+ obj_image_anim_frame 16, 6
+ obj_image_anim_frame 32, 6
+ obj_image_anim_frame 48, 6
+ obj_image_anim_frame 64, 6
+ obj_image_anim_frame 80, 6
+ obj_image_anim_frame 96, 18
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_83DA85C:: @ 83DA85C
+ .4byte gSpriteAnim_83DA83C
+
+ .align 2
+Unknown_3DA860:: @ 83DA860
+ .incbin "baserom.gba", 0x3da860, 0x28
+
+ .align 2
+gUnknown_083DA888:: @ 83DA888
+ .4byte Unknown_3DA860
+
+ .align 2
+gBattleAnimSpriteTemplate_83DA88C:: @ 83DA88C
+ spr_template 10093, 10093, gOamData_837DF34, gSpriteAnimTable_83DA85C, NULL, gDummySpriteAffineAnimTable, sub_80DBB70
+
+ .align 2
+gUnknown_083DA8A4:: @ 83DA8A4
+ .incbin "baserom.gba", 0x003da8a4, 0x20
+
+gUnknown_083DA8C4:: @ 83DA8C4
+ .incbin "baserom.gba", 0x003da8c4, 0x18
+
+ .align 2
+gSpriteTemplate_83DA8DC:: @ 83DA8DC
+ spr_template 10249, 10249, gOamData_837E04C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
+
+ .align 2
+gBattleAnimSpriteTemplate_83DA8F4:: @ 83DA8F4
+ spr_template 10250, 10250, gOamData_837DF3C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80DC068
+
+ .align 2
+gSpriteAffineAnim_83DA90C:: @ 83DA90C
+ obj_rot_scal_anim_frame 0xFFF8, 0xFFF8, 0, 8
+ obj_rot_scal_anim_frame 0x8, 0x8, 0, 8
+ obj_rot_scal_anim_jump 0
+
+ .align 2
+gSpriteAffineAnim_83DA924:: @ 83DA924
+ obj_rot_scal_anim_frame 0xF0, 0xF0, 0, 0
+ obj_rot_scal_anim_frame 0xFFF8, 0xFFF8, 0, 6
+ obj_rot_scal_anim_frame 0x8, 0x8, 0, 8
+ obj_rot_scal_anim_frame 0xFFF8, 0xFFF8, 0, 2
+ obj_rot_scal_anim_jump 1
+
+ .align 2
+gSpriteAffineAnim_83DA94C:: @ 83DA94C
+ obj_rot_scal_anim_frame 0xD0, 0xD0, 0, 0
+ obj_rot_scal_anim_frame 0xFFF8, 0xFFF8, 0, 4
+ obj_rot_scal_anim_frame 0x8, 0x8, 0, 8
+ obj_rot_scal_anim_frame 0xFFF8, 0xFFF8, 0, 4
+ obj_rot_scal_anim_jump 1
+
+ .align 2
+gSpriteAffineAnim_83DA974:: @ 83DA974
+ obj_rot_scal_anim_frame 0xB0, 0xB0, 0, 0
+ obj_rot_scal_anim_frame 0xFFF8, 0xFFF8, 0, 2
+ obj_rot_scal_anim_frame 0x8, 0x8, 0, 8
+ obj_rot_scal_anim_frame 0xFFF8, 0xFFF8, 0, 6
+ obj_rot_scal_anim_jump 1
+
+ .align 2
+gSpriteAffineAnimTable_83DA99C:: @ 83DA99C
+ .4byte gSpriteAffineAnim_83DA90C
+ .4byte gSpriteAffineAnim_83DA924
+ .4byte gSpriteAffineAnim_83DA94C
+ .4byte gSpriteAffineAnim_83DA974
+
+ .align 2
+gSpriteTemplate_83DA9AC:: @ 83DA9AC
+ spr_template 10251, 10251, gOamData_837DF8C, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83DA99C, sub_80DC2B0
+
+ .align 2
+gSpriteAffineAnim_83DA9C4:: @ 83DA9C4
+ obj_rot_scal_anim_frame 0x20, 0x20, 0, 0
+ obj_rot_scal_anim_frame 0x4, 0x4, 0, 120
+ obj_rot_scal_anim_end 1
+
+ .align 2
+gSpriteAffineAnimTable_83DA9DC:: @ 83DA9DC
+ .4byte gSpriteAffineAnim_83DA9C4
+
+ .align 2
+gBattleAnimSpriteTemplate_83DA9E0:: @ 83DA9E0
+ spr_template 10267, 10267, gOamData_837E11C, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83DA9DC, sub_80793C4
+
+ .align 2
+gSpriteAffineAnim_83DA9F8:: @ 83DA9F8
+ obj_rot_scal_anim_frame 0x20, 0x20, 0, 0
+ obj_rot_scal_anim_frame 0x10, 0x10, 0, 17
+ obj_rot_scal_anim_loop 0
+ obj_rot_scal_anim_frame 0xFFF8, 0xFFF8, 0, 10
+ obj_rot_scal_anim_frame 0x8, 0x8, 0, 10
+ obj_rot_scal_anim_loop 4
+ obj_rot_scal_anim_loop 0
+ obj_rot_scal_anim_frame 0xFFF0, 0xFFF0, 0, 5
+ obj_rot_scal_anim_frame 0x10, 0x10, 0, 5
+ obj_rot_scal_anim_loop 7
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnim_83DAA50:: @ 83DAA50
+ obj_rot_scal_anim_frame 0xFFEC, 0x18, 0, 15
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnimTable_83DAA60:: @ 83DAA60
+ .4byte gSpriteAffineAnim_83DA9F8
+ .4byte gSpriteAffineAnim_83DAA50
+
+ .align 2
+gBattleAnimSpriteTemplate_83DAA68:: @ 83DAA68
+ spr_template 10212, 10212, gOamData_837E11C, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83DAA60, sub_80DC700
+
+ .align 2
+gSpriteAffineAnim_83DAA80:: @ 83DAA80
+ obj_rot_scal_anim_frame 0x100, 0x100, 30, 0
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnim_83DAA90:: @ 83DAA90
+ obj_rot_scal_anim_frame 0x100, 0x100, -99, 0
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnim_83DAAA0:: @ 83DAAA0
+ obj_rot_scal_anim_frame 0x100, 0x100, 94, 0
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnimTable_83DAAB0:: @ 83DAAB0
+ .4byte gSpriteAffineAnim_83DAA80
+ .4byte gSpriteAffineAnim_83DAA90
+ .4byte gSpriteAffineAnim_83DAAA0
+
+ .align 2
+gBattleAnimSpriteTemplate_83DAABC:: @ 83DAABC
+ spr_template 10153, 10153, gOamData_837E014, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83DAAB0, sub_80DC824
+
+ .align 2
+gSpriteAffineAnim_83DAAD4:: @ 83DAAD4
+ obj_rot_scal_anim_frame 0x0, 0x0, -33, 1
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnim_83DAAE4:: @ 83DAAE4
+ obj_rot_scal_anim_frame 0x0, 0x0, 96, 1
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnim_83DAAF4:: @ 83DAAF4
+ obj_rot_scal_anim_frame 0x0, 0x0, -96, 1
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnimTable_83DAB04:: @ 83DAB04
+ .4byte gSpriteAffineAnim_83DAAD4
+ .4byte gSpriteAffineAnim_83DAAE4
+ .4byte gSpriteAffineAnim_83DAAF4
+
+ .align 2
+gBattleAnimSpriteTemplate_83DAB10:: @ 83DAB10
+ spr_template 10161, 10161, gOamData_837DF8C, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83DAB04, sub_80DC8F4
+
+ .align 2
+gBattleAnimSpriteTemplate_83DAB28:: @ 83DAB28
+ spr_template 10180, 10180, gOamData_837DF24, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80DC9A0
+
+ .align 2
+gBattleAnimSpriteTemplate_83DAB40:: @ 83DAB40
+ spr_template 10179, 10179, gOamData_837DF5C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80DCA70
+
+ .align 2
+gSpriteAffineAnim_83DAB58:: @ 83DAB58
+ obj_rot_scal_anim_frame 0x10, 0x10, 0, 0
+ obj_rot_scal_anim_frame 0x6, 0x6, 0, 1
+ obj_rot_scal_anim_jump 1
+
+ .align 2
+gSpriteAffineAnimTable_83DAB70:: @ 83DAB70
+ .4byte gSpriteAffineAnim_83DAB58
+
+ .align 2
+gBattleAnimSpriteTemplate_83DAB74:: @ 83DAB74
+ spr_template 10181, 10181, gOamData_837E11C, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83DAB70, sub_80DCB38
+
+ .align 2
+gBattleAnimSpriteTemplate_83DAB8C:: @ 83DAB8C
+ spr_template 10161, 10161, gOamData_837DF8C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80DCBCC
+
+ .align 2
+gBattleAnimSpriteTemplate_83DABA4:: @ 83DABA4
+ spr_template 10161, 10161, gOamData_837DF8C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80DCCFC
+
+ .align 2
+gBattleAnimSpriteTemplate_83DABBC:: @ 83DABBC
+ spr_template 10262, 10262, gOamData_837DF94, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80DCCFC
+
+ .align 2
+gSpriteAffineAnim_83DABD4:: @ 83DABD4
+ obj_rot_scal_anim_frame 0x10, 0x10, 0, 0
+ obj_rot_scal_anim_frame 0x8, 0x8, 0, 18
+ obj_rot_scal_anim_loop 0
+ obj_rot_scal_anim_frame 0xFFFB, 0xFFFB, 0, 8
+ obj_rot_scal_anim_frame 0x5, 0x5, 0, 8
+ obj_rot_scal_anim_loop 5
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnimTable_83DAC0C:: @ 83DAC0C
+ .4byte gSpriteAffineAnim_83DABD4
+
+ .align 2
+gBattleAnimSpriteTemplate_83DAC10:: @ 83DAC10
+ spr_template 10212, 10212, gOamData_837E0BC, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83DAC0C, sub_80DCE40
+
+ .align 2
+gSpriteAnim_83DAC28:: @ 83DAC28
+ obj_image_anim_frame 32, 1
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83DAC30:: @ 83DAC30
+ obj_image_anim_frame 48, 1
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83DAC38:: @ 83DAC38
+ obj_image_anim_frame 64, 1
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_83DAC40:: @ 83DAC40
+ .4byte gSpriteAnim_83DAC28
+ .4byte gSpriteAnim_83DAC30
+ .4byte gSpriteAnim_83DAC38
+
+ .align 2
+gBattleAnimSpriteTemplate_83DAC4C:: @ 83DAC4C
+ spr_template 10058, 10058, gOamData_837DF34, gSpriteAnimTable_83DAC40, NULL, gDummySpriteAffineAnimTable, sub_80DCE9C
+
+ .align 2
+gBattleAnimSpriteTemplate_83DAC64:: @ 83DAC64
+ spr_template 10058, 10058, gOamData_837DF34, gSpriteAnimTable_83DAC40, NULL, gDummySpriteAffineAnimTable, sub_80DCF60
+
+ .align 2
+gBattleAnimSpriteTemplate_83DAC7C:: @ 83DAC7C
+ spr_template 10074, 10074, gOamData_837DF24, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80DCFE4
+
+ .align 2
+gSpriteAffineAnim_83DAC94:: @ 83DAC94
+ obj_rot_scal_anim_frame 0xC0, 0xC0, 0, 0
+ obj_rot_scal_anim_frame 0x2, 0xFFFD, 0, 5
+ obj_rot_scal_anim_frame 0xFFFE, 0x3, 0, 5
+ obj_rot_scal_anim_jump 1
+
+ .align 2
+gSpriteAffineAnimTable_83DACB4:: @ 83DACB4
+ .4byte gSpriteAffineAnim_83DAC94
+
+ .align 2
+gBattleAnimSpriteTemplate_83DACB8:: @ 83DACB8
+ spr_template 10149, 10149, gOamData_837E0AC, gSpriteAnimTable_83D91F0, NULL, gSpriteAffineAnimTable_83DACB4, sub_80DCFE4
+
+ .align 2
+gBattleAnimSpriteTemplate_83DACD0:: @ 83DACD0
+ spr_template 10029, 10029, gOamData_837DF34, gSpriteAnimTable_83D95E0, NULL, gDummySpriteAffineAnimTable, sub_80DCFE4
+
+ .align 2
+gBattleAnimSpriteTemplate_83DACE8:: @ 83DACE8
+ spr_template 10261, 10261, gOamData_837DF54, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80DD3AC
+
+ .align 2
+Unknown_3DAD00:: @ 83DAD00
+ .incbin "baserom.gba", 0x3dad00, 0x10
+
+ .align 2
+gUnknown_083DAD10:: @ 83DAD10
+ .4byte 0x2, Unknown_3DAD00
+
+ .align 2
+gSpriteAnim_83DAD18:: @ 83DAD18
+ obj_image_anim_frame 0, 1
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83DAD20:: @ 83DAD20
+ obj_image_anim_frame 16, 1
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83DAD28:: @ 83DAD28
+ obj_image_anim_frame 32, 1
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83DAD30:: @ 83DAD30
+ obj_image_anim_frame 48, 1
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83DAD38:: @ 83DAD38
+ obj_image_anim_frame 64, 1
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83DAD40:: @ 83DAD40
+ obj_image_anim_frame 80, 1
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_83DAD48:: @ 83DAD48
+ .4byte gSpriteAnim_83DAD18
+ .4byte gSpriteAnim_83DAD20
+
+ .align 2
+gSpriteAnimTable_83DAD50:: @ 83DAD50
+ .4byte gSpriteAnim_83DAD28
+ .4byte gSpriteAnim_83DAD30
+
+ .align 2
+gSpriteAnimTable_83DAD58:: @ 83DAD58
+ .4byte gSpriteAnim_83DAD38
+ .4byte gSpriteAnim_83DAD40
+
+ .align 2
+gBattleAnimSpriteTemplate_83DAD60:: @ 83DAD60
+ spr_template 10058, 10058, gOamData_837DF34, gSpriteAnimTable_83DAD48, NULL, gDummySpriteAffineAnimTable, sub_80DD490
+
+ .align 2
+gSpriteTemplate_83DAD78:: @ 83DAD78
+ spr_template 10074, 10074, gOamData_837DF24, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80DD87C
+
+ .align 2
+gSpriteTemplate_83DAD90:: @ 83DAD90
+ spr_template 10058, 10058, gOamData_837DF34, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80DD87C
+
+ .align 2
+gBattleAnimSpriteTemplate_83DADA8:: @ 83DADA8
+ spr_template 10058, 10058, gOamData_837DF34, gSpriteAnimTable_83DAD48, NULL, gDummySpriteAffineAnimTable, sub_80DD8E8
+
+ .align 2
+gSpriteAffineAnim_83DADC0:: @ 83DADC0
+ obj_rot_scal_anim_frame 0x0, 0x0, -5, 5
+ obj_rot_scal_anim_jump 0
+
+ .align 2
+gSpriteAffineAnim_83DADD0:: @ 83DADD0
+ obj_rot_scal_anim_frame 0x0, 0x0, 5, 5
+ obj_rot_scal_anim_jump 0
+
+ .align 2
+gSpriteAffineAnimTable_83DADE0:: @ 83DADE0
+ .4byte gSpriteAffineAnim_83DADC0
+ .4byte gSpriteAffineAnim_83DADD0
+
+ .align 2
+gBattleAnimSpriteTemplate_83DADE8:: @ 83DADE8
+ spr_template 10058, 10058, gOamData_837DF94, gSpriteAnimTable_83DAD48, NULL, gSpriteAffineAnimTable_83DADE0, sub_80DD978
+
+ .align 2
+gBattleAnimSpriteTemplate_83DAE00:: @ 83DAE00
+ spr_template 10058, 10058, gOamData_837DF94, gSpriteAnimTable_83DAD48, NULL, gSpriteAffineAnimTable_83DADE0, sub_80DD9A4
+
+ .align 2
+gBattleAnimSpriteTemplate_83DAE18:: @ 83DAE18
+ spr_template 10058, 10058, gOamData_837DF34, gSpriteAnimTable_83DAD58, NULL, gSpriteAffineAnimTable_83DADE0, sub_80CB144
+
+ .align 2
+gBattleAnimSpriteTemplate_83DAE30:: @ 83DAE30
+ spr_template 10058, 10058, gOamData_837DF94, gSpriteAnimTable_83DAD50, NULL, gSpriteAffineAnimTable_83DADE0, sub_807A9BC
+
+ .align 2
+gSpriteAffineAnim_83DAE48:: @ 83DAE48
+ obj_rot_scal_anim_frame 0x1E, 0x1E, 10, 5
+ obj_rot_scal_anim_frame 0xFFE2, 0xFFE2, 10, 5
+ obj_rot_scal_anim_jump 0
+
+ .align 2
+gSpriteAffineAnimTable_83DAE60:: @ 83DAE60
+ .4byte gSpriteAffineAnim_83DAE48
+
+ .align 2
+gBattleAnimSpriteTemplate_83DAE64:: @ 83DAE64
+ spr_template 10013, 10013, gOamData_837DFEC, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83DAE60, sub_80DDB6C
+
+ .align 2
+gBattleAnimSpriteTemplate_83DAE7C:: @ 83DAE7C
+ spr_template 10013, 10013, gOamData_837E04C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80DDD58
+
+ .align 2
+gSpriteAffineAnim_83DAE94:: @ 83DAE94
+ obj_rot_scal_anim_frame 0x0, 0x0, 10, 1
+ obj_rot_scal_anim_jump 0
+
+ .align 2
+gSpriteAffineAnimTable_83DAEA4:: @ 83DAEA4
+ .4byte gSpriteAffineAnim_83DAE94
+
+ .align 2
+gBattleAnimSpriteTemplate_83DAEA8:: @ 83DAEA8
+ spr_template 10176, 10176, gOamData_837DF94, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83DAEA4, sub_80DDF40
+
+ .align 2
+gSpriteAnim_83DAEC0:: @ 83DAEC0
+ obj_image_anim_frame 0, 2
+ obj_image_anim_frame 8, 2
+ obj_image_anim_frame 16, 2
+ obj_image_anim_frame 24, 2
+ obj_image_anim_frame 32, 2
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_83DAED8:: @ 83DAED8
+ .4byte gSpriteAnim_83DAEC0
+
+ .align 2
+gBattleAnimSpriteTemplate_83DAEDC:: @ 83DAEDC
+ spr_template 10177, 10177, gOamData_837DF74, gSpriteAnimTable_83DAED8, NULL, gDummySpriteAffineAnimTable, sub_80DE0FC
+
+ .align 2
+gSpriteAffineAnim_83DAEF4:: @ 83DAEF4
+ obj_rot_scal_anim_frame 0x200, 0x200, 0, 0
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnimTable_83DAF04:: @ 83DAF04
+ .4byte gSpriteAffineAnim_83DAEF4
+
+ .align 2
+gSpriteTemplate_83DAF08:: @ 83DAF08
+ spr_template 10188, 10188, gOamData_837E07C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80DE7B8
+
+ .align 2
+gBattleAnimSpriteTemplate_83DAF20:: @ 83DAF20
+ spr_template 10199, 10199, gOamData_837E074, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80DEF3C
+
+ .align 2
+gBattleAnimSpriteTemplate_83DAF38:: @ 83DAF38
+ spr_template 10200, 10200, gOamData_837E054, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80DF0B8
+
+ .align 2
+gBattleAnimSpriteTemplate_83DAF50:: @ 83DAF50
+ spr_template 10221, 10221, gOamData_837E054, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80DF0B8
+
+ .align 2
+gSpriteAnim_83DAF68:: @ 83DAF68
+ obj_image_anim_frame 0, 4
+ obj_image_anim_frame 8, 4
+ obj_image_anim_frame 16, 4
+ obj_image_anim_frame 24, 4
+ obj_image_anim_jump 0
+
+ .align 2
+gSpriteAnimTable_83DAF7C:: @ 83DAF7C
+ .4byte gSpriteAnim_83DAF68
+
+ .align 2
+gSpriteTemplate_83DAF80:: @ 83DAF80
+ spr_template 10253, 10253, gOamData_837E094, gSpriteAnimTable_83DAF7C, NULL, gDummySpriteAffineAnimTable, sub_80DF3D8
+
+ .align 2
+gSpriteTemplate_83DAF98:: @ 83DAF98
+ spr_template 0, 0, gDummyOamData, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80DF49C
+
+ .align 2
+gSpriteAnim_83DAFB0:: @ 83DAFB0
+ obj_image_anim_frame 0, 4
+ obj_image_anim_frame 16, 4
+ obj_image_anim_frame 32, 4
+ obj_image_anim_frame 48, 4
+ obj_image_anim_frame 64, 4
+ obj_image_anim_jump 0
+
+ .align 2
+gSpriteAnimTable_83DAFC8:: @ 83DAFC8
+ .4byte gSpriteAnim_83DAFB0
+
+ .align 2
+gBattleAnimSpriteTemplate_83DAFCC:: @ 83DAFCC
+ spr_template 10029, 10029, gOamData_837DF34, gSpriteAnimTable_83DAFC8, NULL, gDummySpriteAffineAnimTable, sub_80DF5A0
+
+ .align 2
+gSpriteAnim_83DAFE4:: @ 83DAFE4
+ obj_image_anim_frame 16, 3
+ obj_image_anim_frame 32, 3
+ obj_image_anim_frame 48, 3
+ obj_image_anim_jump 0
+
+ .align 2
+gSpriteAnim_83DAFF4:: @ 83DAFF4
+ obj_image_anim_frame 16, 3, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_frame 32, 3, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_frame 48, 3, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_jump 0
+
+ .align 2
+gSpriteAnimTable_83DB004:: @ 83DB004
+ .4byte gSpriteAnim_83DAFE4
+ .4byte gSpriteAnim_83DAFF4
+
+ .align 2
+gSpriteAffineAnim_83DB00C:: @ 83DB00C
+ obj_rot_scal_anim_frame 0x50, 0x50, 127, 0
+ obj_rot_scal_anim_frame 0xD, 0xD, 0, 100
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnim_83DB024:: @ 83DB024
+ obj_rot_scal_anim_frame 0x50, 0x50, 0, 0
+ obj_rot_scal_anim_frame 0xD, 0xD, 0, 100
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnimTable_83DB03C:: @ 83DB03C
+ .4byte gSpriteAffineAnim_83DB00C
+ .4byte gSpriteAffineAnim_83DB024
+
+ .align 2
+gBattleAnimSpriteTemplate_83DB044:: @ 83DB044
+ spr_template 10029, 10029, gOamData_837DFF4, gSpriteAnimTable_83DB004, NULL, gSpriteAffineAnimTable_83DB03C, sub_80DF760
+
+ .align 2
+gSpriteAnim_83DB05C:: @ 83DB05C
+ obj_image_anim_frame 0, 5
+ obj_image_anim_frame 16, 5
+ obj_image_anim_frame 32, 5
+ obj_image_anim_frame 48, 5
+ obj_image_anim_frame 64, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_83DB074:: @ 83DB074
+ .4byte gSpriteAnim_83DB05C
+
+ .align 2
+gBattleAnimSpriteTemplate_83DB078:: @ 83DB078
+ spr_template 10035, 10035, gOamData_837DF34, gSpriteAnimTable_83DB074, NULL, gDummySpriteAffineAnimTable, sub_80DF6F0
+
+ .align 2
+gSpriteAnim_83DB090:: @ 83DB090
+ obj_image_anim_frame 16, 3
+ obj_image_anim_frame 32, 3
+ obj_image_anim_frame 48, 3
+ obj_image_anim_jump 0
+
+ .align 2
+gSpriteAnimTable_83DB0A0:: @ 83DB0A0
+ .4byte gSpriteAnim_83DB090
+ .4byte gSpriteAnim_83DB090
+
+ .align 2
+gSpriteAffineAnim_83DB0A8:: @ 83DB0A8
+ obj_rot_scal_anim_frame 0x64, 0x64, 127, 1
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnim_83DB0B8:: @ 83DB0B8
+ obj_rot_scal_anim_frame 0x64, 0x64, 0, 1
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnimTable_83DB0C8:: @ 83DB0C8
+ .4byte gSpriteAffineAnim_83DB0A8
+ .4byte gSpriteAffineAnim_83DB0B8
+
+ .align 2
+gBattleAnimSpriteTemplate_83DB0D0:: @ 83DB0D0
+ spr_template 10029, 10029, gOamData_837DFF4, gSpriteAnimTable_83DB0A0, NULL, gSpriteAffineAnimTable_83DB0C8, sub_80DF760
+
+ .align 2
+gBattleAnimSpriteTemplate_83DB0E8:: @ 83DB0E8
+ spr_template 10249, 10249, gOamData_837DF2C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80DF78C
+
+ .align 2
+gBattleAnimSpriteTemplate_83DB100:: @ 83DB100
+ spr_template 10029, 10029, gOamData_837DF34, gSpriteAnimTable_83DAFC8, NULL, gDummySpriteAffineAnimTable, sub_80DFB28
+
+ .align 2
+gSpriteTemplate_83DB118:: @ 83DB118
+ spr_template 10015, 10015, gOamData_837DF2C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80DFE14
+
+ .align 2
+gSpriteAffineAnim_83DB130:: @ 83DB130
+ obj_rot_scal_anim_frame 0x0, 0x0, 0, 1
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnim_83DB140:: @ 83DB140
+ obj_rot_scal_anim_frame 0x0, 0x0, 32, 1
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnim_83DB150:: @ 83DB150
+ obj_rot_scal_anim_frame 0x0, 0x0, 64, 1
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnim_83DB160:: @ 83DB160
+ obj_rot_scal_anim_frame 0x0, 0x0, 96, 1
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnim_83DB170:: @ 83DB170
+ obj_rot_scal_anim_frame 0x0, 0x0, -128, 1
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnim_83DB180:: @ 83DB180
+ obj_rot_scal_anim_frame 0x0, 0x0, -96, 1
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnim_83DB190:: @ 83DB190
+ obj_rot_scal_anim_frame 0x0, 0x0, -64, 1
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnim_83DB1A0:: @ 83DB1A0
+ obj_rot_scal_anim_frame 0x0, 0x0, -32, 1
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnimTable_83DB1B0:: @ 83DB1B0
+ .4byte gSpriteAffineAnim_83DB130
+ .4byte gSpriteAffineAnim_83DB140
+ .4byte gSpriteAffineAnim_83DB150
+ .4byte gSpriteAffineAnim_83DB160
+ .4byte gSpriteAffineAnim_83DB170
+ .4byte gSpriteAffineAnim_83DB180
+ .4byte gSpriteAffineAnim_83DB190
+ .4byte gSpriteAffineAnim_83DB1A0
+
+ .align 2
+gBattleAnimSpriteTemplate_83DB1D0:: @ 83DB1D0
+ spr_template 10139, 10139, gOamData_837E0BC, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83DB1B0, sub_80DFF1C
+
+ .align 2
+gBattleAnimSpriteTemplate_83DB1E8:: @ 83DB1E8
+ spr_template 10145, 10145, gOamData_837E0BC, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83DB1B0, sub_80DFF1C
+
+ .align 2
+gSpriteAffineAnim_83DB200:: @ 83DB200
+ obj_rot_scal_anim_frame 0xC0, 0xC0, 80, 0
+ obj_rot_scal_anim_frame 0x0, 0x0, -2, 8
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnim_83DB218:: @ 83DB218
+ obj_rot_scal_anim_frame 0xC0, 0xC0, -80, 0
+ obj_rot_scal_anim_frame 0x0, 0x0, 2, 8
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnimTable_83DB230:: @ 83DB230
+ .4byte gSpriteAffineAnim_83DB200
+ .4byte gSpriteAffineAnim_83DB218
+
+ .align 2
+gBattleAnimSpriteTemplate_83DB238:: @ 83DB238
+ spr_template 10155, 10155, gOamData_837DF8C, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83DB230, sub_80DFFD0
+
+ .align 2
+gSpriteAnim_83DB250:: @ 83DB250
+ obj_image_anim_frame 0, 4
+ obj_image_anim_frame 16, 4
+ obj_image_anim_frame 32, 4
+ obj_image_anim_frame 48, 4
+ obj_image_anim_frame 64, 4
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83DB268:: @ 83DB268
+ obj_image_anim_frame 0, 4, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_frame 16, 4, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_frame 32, 4, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_frame 48, 4, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_frame 64, 4, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_83DB280:: @ 83DB280
+ .4byte gSpriteAnim_83DB250
+ .4byte gSpriteAnim_83DB268
+
+ .align 2
+gBattleAnimSpriteTemplate_83DB288:: @ 83DB288
+ spr_template 10039, 10039, gOamData_837DF34, gSpriteAnimTable_83DB280, NULL, gDummySpriteAffineAnimTable, sub_80E0A10
+
+ .align 2
+gSpriteAffineAnim_83DB2A0:: @ 83DB2A0
+ obj_rot_scal_anim_frame 0x0, 0x0, 15, 1
+ obj_rot_scal_anim_jump 0
+
+ .align 2
+gSpriteAffineAnim_83DB2B0:: @ 83DB2B0
+ obj_rot_scal_anim_frame 0x0, 0x0, 20, 1
+ obj_rot_scal_anim_jump 0
+
+ .align 2
+gSpriteAffineAnimTable_83DB2C0:: @ 83DB2C0
+ .4byte gSpriteAffineAnim_83DB2A0
+
+ .align 2
+gSpriteAffineAnimTable_83DB2C4:: @ 83DB2C4
+ .4byte gSpriteAffineAnim_83DB2B0
+
+ .align 2
+gBattleAnimSpriteTemplate_83DB2C8:: @ 83DB2C8
+ spr_template 10000, 10000, gOamData_837DF94, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83DB2C0, sub_80E0F1C
+
+ .align 2
+gBattleAnimSpriteTemplate_83DB2E0:: @ 83DB2E0
+ spr_template 10000, 10000, gOamData_837DF94, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83DB2C4, sub_80E1004
+
+ .align 2
+gBattleAnimSpriteTemplate_83DB2F8:: @ 83DB2F8
+ spr_template 10074, 10074, gOamData_837DF24, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80E1078
+
+ .align 2
+gSpriteAnim_83DB310:: @ 83DB310
+ obj_image_anim_frame 1, 1
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_83DB318:: @ 83DB318
+ .4byte gSpriteAnim_83DB310
+
+ .align 2
+gBattleAnimSpriteTemplate_83DB31C:: @ 83DB31C
+ spr_template 10074, 10074, gOamData_837DF2C, gSpriteAnimTable_83DB318, NULL, gDummySpriteAffineAnimTable, sub_80E1078
+
+ .align 2
+gBattleAnimSpriteTemplate_83DB334:: @ 83DB334
+ spr_template 10074, 10074, gOamData_837DF2C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80E1108
+
+ .align 2
+gBattleAnimSpriteTemplate_83DB34C:: @ 83DB34C
+ spr_template 10074, 10074, gOamData_837DF24, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80E1728
+
+ .align 2
+gBattleAnimSpriteTemplate_83DB364:: @ 83DB364
+ spr_template 10281, 10281, gOamData_837DF54, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80E17CC
+
+ .align 2
+gSpriteAnim_83DB37C:: @ 83DB37C
+ obj_image_anim_frame 0, 8
+ obj_image_anim_frame 4, 8
+ obj_image_anim_frame 0, 8, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_frame 8, 8
+ obj_image_anim_jump 0
+
+ .align 2
+gSpriteAnim_83DB390:: @ 83DB390
+ obj_image_anim_frame 0, 8, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_frame 4, 8
+ obj_image_anim_frame 0, 8
+ obj_image_anim_frame 8, 8
+ obj_image_anim_jump 0
+
+ .align 2
+gSpriteAnimTable_83DB3A4:: @ 83DB3A4
+ .4byte gSpriteAnim_83DB37C
+ .4byte gSpriteAnim_83DB390
+
+ .align 2
+gBattleAnimSpriteTemplate_83DB3AC:: @ 83DB3AC
+ spr_template 10073, 10073, gOamData_837DF2C, gSpriteAnimTable_83DB3A4, NULL, gDummySpriteAffineAnimTable, sub_80E1CB4
+
+ .align 2
+gBattleAnimSpriteTemplate_83DB3C4:: @ 83DB3C4
+ spr_template 0, 0, gDummyOamData, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80E1D84
+
+ .align 2
+gBattleAnimSpriteTemplate_83DB3DC:: @ 83DB3DC
+ spr_template 0, 0, gDummyOamData, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80E1E2C
+
+ .align 2
+gSpriteAnim_83DB3F4:: @ 83DB3F4
+ obj_image_anim_frame 0, 3
+ obj_image_anim_frame 16, 3
+ obj_image_anim_frame 32, 3
+ obj_image_anim_frame 48, 3
+ obj_image_anim_frame 64, 3
+ obj_image_anim_jump 0
+
+ .align 2
+gSpriteAnimTable_83DB40C:: @ 83DB40C
+ .4byte gSpriteAnim_83DB3F4
+
+ .align 2
+gSpriteTemplate_83DB410:: @ 83DB410
+ spr_template 10071, 10071, gOamData_837DF34, gSpriteAnimTable_83DB40C, NULL, gDummySpriteAffineAnimTable, sub_80E1F3C
+
+ .align 2
+gBattleAnimSpriteTemplate_83DB428:: @ 83DB428
+ spr_template 0, 0, gDummyOamData, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80E24B8
+
+ .align 2
+gSpriteAffineAnim_83DB440:: @ 83DB440
+ obj_rot_scal_anim_frame 0x0, 0x0, 0, 8
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnim_83DB450:: @ 83DB450
+ obj_rot_scal_anim_frame 0xD8, 0xD8, 0, 0
+ obj_rot_scal_anim_frame 0x0, 0x0, 0, 8
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnim_83DB468:: @ 83DB468
+ obj_rot_scal_anim_frame 0xB0, 0xB0, 0, 0
+ obj_rot_scal_anim_frame 0x0, 0x0, 0, 8
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnim_83DB480:: @ 83DB480
+ obj_rot_scal_anim_frame 0x80, 0x80, 0, 0
+ obj_rot_scal_anim_frame 0x0, 0x0, 0, 8
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnimTable_83DB498:: @ 83DB498
+ .4byte gSpriteAffineAnim_83DB440
+ .4byte gSpriteAffineAnim_83DB450
+ .4byte gSpriteAffineAnim_83DB468
+ .4byte gSpriteAffineAnim_83DB480
+
+ .align 2
+gBattleAnimSpriteTemplate_83DB4A8:: @ 83DB4A8
+ spr_template 10135, 10135, gOamData_837E0B4, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83DB498, sub_80E27A0
+
+ .align 2
+gBattleAnimSpriteTemplate_83DB4C0:: @ 83DB4C0
+ spr_template 10135, 10135, gOamData_837E0B4, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83DB498, sub_80E2838
+
+ .align 2
+gBattleAnimSpriteTemplate_83DB4D8:: @ 83DB4D8
+ spr_template 10148, 10148, gOamData_837E0B4, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83DB498, sub_80E27A0
+
+ .align 2
+gBattleAnimSpriteTemplate_83DB4F0:: @ 83DB4F0
+ spr_template 10135, 10135, gOamData_837E0B4, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83DB498, sub_80E2870
+
+ .align 2
+gBattleAnimSpriteTemplate_83DB508:: @ 83DB508
+ spr_template 10135, 10135, gOamData_837E0B4, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83DB498, sub_80E2908
+
+ .align 2
+gBattleAnimSpriteTemplate_83DB520:: @ 83DB520
+ spr_template 10285, 10285, gOamData_837E054, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80E2978
+
+ .align 2
+gBattleAnimSpriteTemplate_83DB538:: @ 83DB538
+ spr_template 10135, 10135, gOamData_837DF94, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83DB498, sub_80E29C0
+
+ .align 2
+gBattleAnimSpriteTemplate_83DB550:: @ 83DB550
+ spr_template 10135, 10135, gOamData_837E0B4, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83DB498, sub_80E27E8
+
+ .align 2
+gUnknown_083DB568:: @ 83DB568
+ .incbin "baserom.gba", 0x003db568, 0x4
+
+ .align 2
+gUnknown_083DB56C:: @ 83DB56C
+ .4byte task_battle_intro_80BC47C
+ .4byte task_battle_intro_80BC47C
+ .4byte task00_battle_intro_80BC6C8
+ .4byte task00_battle_intro_80BC6C8
+ .4byte task00_battle_intro_80BC6C8
+ .4byte task_battle_intro_80BC47C
+ .4byte task_battle_intro_80BC47C
+ .4byte task_battle_intro_80BC47C
+ .4byte task_battle_intro_anim
+ .4byte task_battle_intro_anim
diff --git a/data/battle_anim_813F0F4.s b/data/battle_anim_813F0F4.s
new file mode 100644
index 000000000..849fd8376
--- /dev/null
+++ b/data/battle_anim_813F0F4.s
@@ -0,0 +1,152 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+ .align 2
+gUnknown_0840B258:: @ 840B258
+ obj_tiles gBattleAnimSpriteSheet_Particles, 0x100, 55020
+ obj_tiles gBattleAnimSpriteSheet_Particles, 0x100, 55021
+ obj_tiles gBattleAnimSpriteSheet_Particles, 0x100, 55022
+ obj_tiles gBattleAnimSpriteSheet_Particles, 0x100, 55023
+ obj_tiles gBattleAnimSpriteSheet_Particles, 0x100, 55024
+ obj_tiles gBattleAnimSpriteSheet_Particles, 0x100, 55025
+ obj_tiles gBattleAnimSpriteSheet_Particles, 0x100, 55026
+ obj_tiles gBattleAnimSpriteSheet_Particles, 0x100, 55027
+ obj_tiles gBattleAnimSpriteSheet_Particles, 0x100, 55028
+ obj_tiles gBattleAnimSpriteSheet_Particles, 0x100, 55029
+ obj_tiles gBattleAnimSpriteSheet_Particles, 0x100, 55030
+ obj_tiles gBattleAnimSpriteSheet_Particles, 0x100, 55031
+
+ .align 2
+gUnknown_0840B2B8:: @ 840B2B8
+ obj_pal gBattleAnimSpritePalette_136, 55020
+ obj_pal gBattleAnimSpritePalette_136, 55021
+ obj_pal gBattleAnimSpritePalette_136, 55022
+ obj_pal gBattleAnimSpritePalette_136, 55023
+ obj_pal gBattleAnimSpritePalette_136, 55024
+ obj_pal gBattleAnimSpritePalette_136, 55025
+ obj_pal gBattleAnimSpritePalette_136, 55026
+ obj_pal gBattleAnimSpritePalette_136, 55027
+ obj_pal gBattleAnimSpritePalette_136, 55028
+ obj_pal gBattleAnimSpritePalette_136, 55029
+ obj_pal gBattleAnimSpritePalette_136, 55030
+ obj_pal gBattleAnimSpritePalette_136, 55031
+
+ .align 2
+gSpriteAnim_840B318:: @ 840B318
+ obj_image_anim_frame 0, 1
+ obj_image_anim_frame 1, 1
+ obj_image_anim_frame 2, 1
+ obj_image_anim_frame 0, 1, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_frame 2, 1
+ obj_image_anim_frame 1, 1
+ obj_image_anim_jump 0
+
+ .align 2
+gSpriteAnim_840B334:: @ 840B334
+ obj_image_anim_frame 3, 1
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_840B33C:: @ 840B33C
+ obj_image_anim_frame 4, 1
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_840B344:: @ 840B344
+ obj_image_anim_frame 5, 1
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_840B34C:: @ 840B34C
+ obj_image_anim_frame 6, 4
+ obj_image_anim_frame 7, 4
+ obj_image_anim_jump 0
+
+ .align 2
+gSpriteAnim_840B358:: @ 840B358
+ obj_image_anim_frame 7, 4
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_840B360:: @ 840B360
+ .4byte gSpriteAnim_840B318
+ .4byte gSpriteAnim_840B334
+ .4byte gSpriteAnim_840B33C
+ .4byte gSpriteAnim_840B344
+ .4byte gSpriteAnim_840B34C
+ .4byte gSpriteAnim_840B358
+
+gUnknown_0840B378:: @ 840B378
+ .incbin "baserom.gba", 0x0040b378, 0xc
+
+ .align 2
+gUnknown_0840B384:: @ 840B384
+ .4byte sub_8140930
+ .4byte sub_8140DC4
+ .4byte sub_8140C14
+ .4byte sub_8140CE8
+ .4byte sub_8141058
+ .4byte sub_8140C14
+ .4byte sub_8140B3C
+ .4byte sub_8140CE8
+ .4byte sub_8140F24
+ .4byte sub_8140A64
+ .4byte sub_8140DC4
+ .4byte sub_8141164
+
+ .align 2
+gSpriteTemplate_840B3B4:: @ 840B3B4
+ spr_template 55020, 55020, gOamData_837DF24, gSpriteAnimTable_840B360, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
+
+ .align 2
+gSpriteTemplate_840B3CC:: @ 840B3CC
+ spr_template 55021, 55021, gOamData_837DF24, gSpriteAnimTable_840B360, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
+
+ .align 2
+gSpriteTemplate_840B3E4:: @ 840B3E4
+ spr_template 55022, 55022, gOamData_837DF24, gSpriteAnimTable_840B360, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
+
+ .align 2
+gSpriteTemplate_840B3FC:: @ 840B3FC
+ spr_template 55023, 55023, gOamData_837DF24, gSpriteAnimTable_840B360, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
+
+ .align 2
+gSpriteTemplate_840B414:: @ 840B414
+ spr_template 55024, 55024, gOamData_837DF24, gSpriteAnimTable_840B360, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
+
+ .align 2
+gSpriteTemplate_840B42C:: @ 840B42C
+ spr_template 55025, 55025, gOamData_837DF24, gSpriteAnimTable_840B360, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
+
+ .align 2
+gSpriteTemplate_840B444:: @ 840B444
+ spr_template 55026, 55026, gOamData_837DF24, gSpriteAnimTable_840B360, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
+
+ .align 2
+gSpriteTemplate_840B45C:: @ 840B45C
+ spr_template 55027, 55027, gOamData_837DF24, gSpriteAnimTable_840B360, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
+
+ .align 2
+gSpriteTemplate_840B474:: @ 840B474
+ spr_template 55028, 55028, gOamData_837DF24, gSpriteAnimTable_840B360, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
+
+ .align 2
+gSpriteTemplate_840B48C:: @ 840B48C
+ spr_template 55029, 55029, gOamData_837DF24, gSpriteAnimTable_840B360, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
+
+ .align 2
+gSpriteTemplate_840B4A4:: @ 840B4A4
+ spr_template 55030, 55030, gOamData_837DF24, gSpriteAnimTable_840B360, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
+
+ .align 2
+gSpriteTemplate_840B4BC:: @ 840B4BC
+ spr_template 55031, 55031, gOamData_837DF24, gSpriteAnimTable_840B360, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
+
+gUnknown_0840B4D4:: @ 840B4D4
+ .incbin "baserom.gba", 0x0040b4d4, 0x28
+
+ .align 2
+gBattleAnimSpriteTemplate_840B4FC:: @ 840B4FC
+ spr_template 10269, 10269, gOamData_837DF2C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_8141C30
diff --git a/data/battle_anim_scripts.s b/data/battle_anim_scripts.s
index fad85183f..74205e66c 100644
--- a/data/battle_anim_scripts.s
+++ b/data/battle_anim_scripts.s
@@ -422,8 +422,8 @@ Move_POUND: @ 81C7794
monbg 1
setalpha 12, 8
panse_19 SE_W003, 63
- sprite gBattleAnimSpriteTemplate_83DB4A8, 2, 4, 0, 0, 1, 2
- createtask sub_80A7E7C, 2, 5, 1, 3, 0, 6, 1
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 2, 0, 0, 1, 2
+ createtask sub_80A7E7C, 2, 1, 3, 0, 6, 1
wait
clearmonbg 1
blendoff
@@ -435,89 +435,89 @@ Move_DOUBLE_SLAP: @ 81C77C5
setalpha 12, 8
ifelse _81C77F0, _81C7804
_81C77D6:
- createtask sub_80A7E7C, 2, 5, 1, 3, 0, 6, 1
+ createtask sub_80A7E7C, 2, 1, 3, 0, 6, 1
panse_19 SE_W003, 63
wait
clearmonbg 1
blendoff
end
_81C77F0:
- sprite gBattleAnimSpriteTemplate_83DB4A8, 2, 4, -8, 0, 1, 2
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 2, -8, 0, 1, 2
jump _81C77D6
_81C7804:
- sprite gBattleAnimSpriteTemplate_83DB4A8, 2, 4, 8, 0, 1, 2
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 2, 8, 0, 1, 2
jump _81C77D6
Move_POISON_POWDER: @ 81C7818
loadsprite 10065
loadsprite 10150
panse_1C SE_W077, 63, 10, 6
- sprite gBattleAnimSpriteTemplate_83D6254, 130, 6, -30, -22, 117, 80, 5, 1
- sprite gBattleAnimSpriteTemplate_83D6254, 130, 6, 10, -22, 117, 80, -5, 1
- sprite gBattleAnimSpriteTemplate_83D6254, 130, 6, -25, -22, 117, 112, 5, 3
+ sprite gBattleAnimSpriteTemplate_83D6254, 130, -30, -22, 117, 80, 5, 1
+ sprite gBattleAnimSpriteTemplate_83D6254, 130, 10, -22, 117, 80, -5, 1
+ sprite gBattleAnimSpriteTemplate_83D6254, 130, -25, -22, 117, 112, 5, 3
pause 15
- sprite gBattleAnimSpriteTemplate_83D6254, 130, 6, -5, -22, 117, 80, -5, 1
- sprite gBattleAnimSpriteTemplate_83D6254, 130, 6, 5, -22, 117, 96, 5, 1
- sprite gBattleAnimSpriteTemplate_83D6254, 130, 6, 0, -22, 117, 69, -5, 1
- sprite gBattleAnimSpriteTemplate_83D6254, 130, 6, -15, -22, 117, 112, 5, 2
+ sprite gBattleAnimSpriteTemplate_83D6254, 130, -5, -22, 117, 80, -5, 1
+ sprite gBattleAnimSpriteTemplate_83D6254, 130, 5, -22, 117, 96, 5, 1
+ sprite gBattleAnimSpriteTemplate_83D6254, 130, 0, -22, 117, 69, -5, 1
+ sprite gBattleAnimSpriteTemplate_83D6254, 130, -15, -22, 117, 112, 5, 2
pause 30
- sprite gBattleAnimSpriteTemplate_83D6254, 130, 6, -15, -22, 117, 112, 5, 2
- sprite gBattleAnimSpriteTemplate_83D6254, 130, 6, 15, -22, 117, 80, -5, 1
- sprite gBattleAnimSpriteTemplate_83D6254, 130, 6, -10, -22, 117, 96, 7, 2
- sprite gBattleAnimSpriteTemplate_83D6254, 130, 6, -5, -22, 117, 90, -8, 0
+ sprite gBattleAnimSpriteTemplate_83D6254, 130, -15, -22, 117, 112, 5, 2
+ sprite gBattleAnimSpriteTemplate_83D6254, 130, 15, -22, 117, 80, -5, 1
+ sprite gBattleAnimSpriteTemplate_83D6254, 130, -10, -22, 117, 96, 7, 2
+ sprite gBattleAnimSpriteTemplate_83D6254, 130, -5, -22, 117, 90, -8, 0
pause 20
- sprite gBattleAnimSpriteTemplate_83D6254, 130, 6, -10, -22, 117, 80, -5, 1
- sprite gBattleAnimSpriteTemplate_83D6254, 130, 6, 0, -22, 117, 89, 5, 2
- sprite gBattleAnimSpriteTemplate_83D6254, 130, 6, 20, -22, 117, 112, -8, 2
- sprite gBattleAnimSpriteTemplate_83D6254, 130, 6, 5, -22, 117, 80, 5, 1
+ sprite gBattleAnimSpriteTemplate_83D6254, 130, -10, -22, 117, 80, -5, 1
+ sprite gBattleAnimSpriteTemplate_83D6254, 130, 0, -22, 117, 89, 5, 2
+ sprite gBattleAnimSpriteTemplate_83D6254, 130, 20, -22, 117, 112, -8, 2
+ sprite gBattleAnimSpriteTemplate_83D6254, 130, 5, -22, 117, 80, 5, 1
wait
end
Move_STUN_SPORE: @ 81C7949
loadsprite 10068
panse_1C SE_W077, 63, 10, 6
- sprite gBattleAnimSpriteTemplate_83D623C, 130, 6, -30, -22, 117, 80, 5, 1
- sprite gBattleAnimSpriteTemplate_83D623C, 130, 6, 10, -22, 117, 80, -5, 1
- sprite gBattleAnimSpriteTemplate_83D623C, 130, 6, -25, -22, 117, 112, 5, 3
+ sprite gBattleAnimSpriteTemplate_83D623C, 130, -30, -22, 117, 80, 5, 1
+ sprite gBattleAnimSpriteTemplate_83D623C, 130, 10, -22, 117, 80, -5, 1
+ sprite gBattleAnimSpriteTemplate_83D623C, 130, -25, -22, 117, 112, 5, 3
pause 15
- sprite gBattleAnimSpriteTemplate_83D623C, 130, 6, -5, -22, 117, 80, -5, 1
- sprite gBattleAnimSpriteTemplate_83D623C, 130, 6, 5, -22, 117, 96, 5, 1
- sprite gBattleAnimSpriteTemplate_83D623C, 130, 6, 0, -22, 117, 69, -5, 1
- sprite gBattleAnimSpriteTemplate_83D623C, 130, 6, -15, -22, 117, 112, 5, 2
+ sprite gBattleAnimSpriteTemplate_83D623C, 130, -5, -22, 117, 80, -5, 1
+ sprite gBattleAnimSpriteTemplate_83D623C, 130, 5, -22, 117, 96, 5, 1
+ sprite gBattleAnimSpriteTemplate_83D623C, 130, 0, -22, 117, 69, -5, 1
+ sprite gBattleAnimSpriteTemplate_83D623C, 130, -15, -22, 117, 112, 5, 2
pause 30
- sprite gBattleAnimSpriteTemplate_83D623C, 130, 6, -15, -22, 117, 112, 5, 2
- sprite gBattleAnimSpriteTemplate_83D623C, 130, 6, 15, -22, 117, 80, -5, 1
- sprite gBattleAnimSpriteTemplate_83D623C, 130, 6, -10, -22, 117, 96, 7, 2
- sprite gBattleAnimSpriteTemplate_83D623C, 130, 6, -5, -22, 117, 90, -8, 0
+ sprite gBattleAnimSpriteTemplate_83D623C, 130, -15, -22, 117, 112, 5, 2
+ sprite gBattleAnimSpriteTemplate_83D623C, 130, 15, -22, 117, 80, -5, 1
+ sprite gBattleAnimSpriteTemplate_83D623C, 130, -10, -22, 117, 96, 7, 2
+ sprite gBattleAnimSpriteTemplate_83D623C, 130, -5, -22, 117, 90, -8, 0
pause 20
- sprite gBattleAnimSpriteTemplate_83D623C, 130, 6, -10, -22, 117, 80, -5, 1
- sprite gBattleAnimSpriteTemplate_83D623C, 130, 6, 0, -22, 117, 89, 5, 2
- sprite gBattleAnimSpriteTemplate_83D623C, 130, 6, 20, -22, 117, 112, -8, 2
- sprite gBattleAnimSpriteTemplate_83D623C, 130, 6, 5, -22, 117, 80, 5, 1
+ sprite gBattleAnimSpriteTemplate_83D623C, 130, -10, -22, 117, 80, -5, 1
+ sprite gBattleAnimSpriteTemplate_83D623C, 130, 0, -22, 117, 89, 5, 2
+ sprite gBattleAnimSpriteTemplate_83D623C, 130, 20, -22, 117, 112, -8, 2
+ sprite gBattleAnimSpriteTemplate_83D623C, 130, 5, -22, 117, 80, 5, 1
wait
end
Move_SLEEP_POWDER: @ 81C7A77
loadsprite 10067
panse_1C SE_W077, 63, 10, 6
- sprite gBattleAnimSpriteTemplate_83D6224, 130, 6, -30, -22, 117, 80, 5, 1
- sprite gBattleAnimSpriteTemplate_83D6224, 130, 6, 10, -22, 117, 80, -5, 1
- sprite gBattleAnimSpriteTemplate_83D6224, 130, 6, -25, -22, 117, 112, 5, 3
+ sprite gBattleAnimSpriteTemplate_83D6224, 130, -30, -22, 117, 80, 5, 1
+ sprite gBattleAnimSpriteTemplate_83D6224, 130, 10, -22, 117, 80, -5, 1
+ sprite gBattleAnimSpriteTemplate_83D6224, 130, -25, -22, 117, 112, 5, 3
pause 15
- sprite gBattleAnimSpriteTemplate_83D6224, 130, 6, -5, -22, 117, 80, -5, 1
- sprite gBattleAnimSpriteTemplate_83D6224, 130, 6, 5, -22, 117, 96, 5, 1
- sprite gBattleAnimSpriteTemplate_83D6224, 130, 6, 0, -22, 117, 69, -5, 1
- sprite gBattleAnimSpriteTemplate_83D6224, 130, 6, -15, -22, 117, 112, 5, 2
+ sprite gBattleAnimSpriteTemplate_83D6224, 130, -5, -22, 117, 80, -5, 1
+ sprite gBattleAnimSpriteTemplate_83D6224, 130, 5, -22, 117, 96, 5, 1
+ sprite gBattleAnimSpriteTemplate_83D6224, 130, 0, -22, 117, 69, -5, 1
+ sprite gBattleAnimSpriteTemplate_83D6224, 130, -15, -22, 117, 112, 5, 2
pause 30
- sprite gBattleAnimSpriteTemplate_83D6224, 130, 6, -15, -22, 117, 112, 5, 2
- sprite gBattleAnimSpriteTemplate_83D6224, 130, 6, 15, -22, 117, 80, -5, 1
- sprite gBattleAnimSpriteTemplate_83D6224, 130, 6, -10, -22, 117, 96, 7, 2
- sprite gBattleAnimSpriteTemplate_83D6224, 130, 6, -5, -22, 117, 90, -8, 0
+ sprite gBattleAnimSpriteTemplate_83D6224, 130, -15, -22, 117, 112, 5, 2
+ sprite gBattleAnimSpriteTemplate_83D6224, 130, 15, -22, 117, 80, -5, 1
+ sprite gBattleAnimSpriteTemplate_83D6224, 130, -10, -22, 117, 96, 7, 2
+ sprite gBattleAnimSpriteTemplate_83D6224, 130, -5, -22, 117, 90, -8, 0
pause 20
- sprite gBattleAnimSpriteTemplate_83D6224, 130, 6, -10, -22, 117, 80, -5, 1
- sprite gBattleAnimSpriteTemplate_83D6224, 130, 6, 0, -22, 117, 89, 5, 2
- sprite gBattleAnimSpriteTemplate_83D6224, 130, 6, 20, -22, 117, 112, -8, 2
- sprite gBattleAnimSpriteTemplate_83D6224, 130, 6, 5, -22, 117, 80, 5, 1
+ sprite gBattleAnimSpriteTemplate_83D6224, 130, -10, -22, 117, 80, -5, 1
+ sprite gBattleAnimSpriteTemplate_83D6224, 130, 0, -22, 117, 89, 5, 2
+ sprite gBattleAnimSpriteTemplate_83D6224, 130, 20, -22, 117, 112, -8, 2
+ sprite gBattleAnimSpriteTemplate_83D6224, 130, 5, -22, 117, 80, 5, 1
wait
end
@@ -527,21 +527,21 @@ Move_SWIFT: @ 81C7BA5
monbg 3
setalpha 12, 8
panse_19 SE_W129, 192
- sprite gBattleAnimSpriteTemplate_83D6510, 131, 7, 20, -10, 20, 0, 22, 20, 1
+ sprite gBattleAnimSpriteTemplate_83D6510, 131, 20, -10, 20, 0, 22, 20, 1
pause 5
panse_19 SE_W129, 192
- sprite gBattleAnimSpriteTemplate_83D6510, 131, 7, 20, -10, 20, 5, 22, -18, 1
+ sprite gBattleAnimSpriteTemplate_83D6510, 131, 20, -10, 20, 5, 22, -18, 1
pause 5
panse_19 SE_W129, 192
- sprite gBattleAnimSpriteTemplate_83D6510, 131, 7, 20, -10, 20, -10, 22, 15, 1
- createtask sub_80A7FA0, 2, 5, 1, 2, 0, 18, 1
- createtask sub_80A7FA0, 2, 5, 3, 2, 0, 18, 1
+ sprite gBattleAnimSpriteTemplate_83D6510, 131, 20, -10, 20, -10, 22, 15, 1
+ createtask sub_80A7FA0, 2, 1, 2, 0, 18, 1
+ createtask sub_80A7FA0, 2, 3, 2, 0, 18, 1
pause 5
panse_19 SE_W129, 192
- sprite gBattleAnimSpriteTemplate_83D6510, 131, 7, 20, -10, 20, 0, 22, -20, 1
+ sprite gBattleAnimSpriteTemplate_83D6510, 131, 20, -10, 20, 0, 22, -20, 1
pause 5
panse_19 SE_W129, 192
- sprite gBattleAnimSpriteTemplate_83D6510, 131, 7, 20, -10, 20, 0, 22, 12, 1
+ sprite gBattleAnimSpriteTemplate_83D6510, 131, 20, -10, 20, 0, 22, 12, 1
pause 5
wait
clearmonbg 3
@@ -553,22 +553,22 @@ Move_STRENGTH: @ 81C7C5E
monbg 3
setalpha 12, 8
panse_19 SE_W036, 192
- createtask sub_80A8314, 5, 5, 0, 2, 0, 96, 30
+ createtask sub_80A8314, 5, 0, 2, 0, 96, 30
wait
pause 10
- sprite gBattleAnimSpriteTemplate_83C1FE0, 2, 3, 0, 0, 4
- createtask sub_80A8500, 2, 5, 1, 18, 6, 2, 4
+ sprite gBattleAnimSpriteTemplate_83C1FE0, 2, 0, 0, 4
+ createtask sub_80A8500, 2, 1, 18, 6, 2, 4
pause 4
panse_19 SE_W025B, 63
- sprite gBattleAnimSpriteTemplate_83DB4A8, 3, 4, 16, 12, 1, 1
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 3, 16, 12, 1, 1
pause 4
panse_19 SE_W025B, 63
- sprite gBattleAnimSpriteTemplate_83DB4A8, 3, 4, -16, -12, 1, 1
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 3, -16, -12, 1, 1
pause 4
panse_19 SE_W025B, 63
- sprite gBattleAnimSpriteTemplate_83DB4A8, 3, 4, 3, 4, 1, 1
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 3, 3, 4, 1, 1
wait
- createtask sub_80A7FA0, 2, 5, 1, 2, 0, 8, 1
+ createtask sub_80A7FA0, 2, 1, 2, 0, 8, 1
wait
clearmonbg 3
blendoff
@@ -578,10 +578,10 @@ Move_TACKLE: @ 81C7CF2
loadsprite 10135
monbg 1
setalpha 12, 8
- sprite gBattleAnimSpriteTemplate_83C1FB0, 2, 2, 4, 4
+ sprite gBattleAnimSpriteTemplate_83C1FB0, 2, 4, 4
pause 6
- sprite gBattleAnimSpriteTemplate_83DB4A8, 2, 4, 0, 0, 1, 2
- createtask sub_80A7E7C, 2, 5, 1, 3, 0, 6, 1
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 2, 0, 0, 1, 2
+ createtask sub_80A7E7C, 2, 1, 3, 0, 6, 1
panse_19 SE_W004, 63
wait
clearmonbg 1
@@ -593,22 +593,22 @@ Move_BODY_SLAM: @ 81C7D30
monbg 3
setalpha 12, 8
panse_19 SE_W036, 192
- sprite gBattleAnimSpriteTemplate_83C1FC8, 2, 3, 6, 1, 0
+ sprite gBattleAnimSpriteTemplate_83C1FC8, 2, 6, 1, 0
wait
pause 11
- sprite gBattleAnimSpriteTemplate_83C1FF8, 2, 5, 0, 26, 0, 0, 5
+ sprite gBattleAnimSpriteTemplate_83C1FF8, 2, 0, 26, 0, 0, 5
pause 6
- sprite gBattleAnimSpriteTemplate_83DB4A8, 4, 4, -10, 0, 1, 0
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 4, -10, 0, 1, 0
panse_1C SE_W025B, 63, 10, 2
pause 1
- sprite gBattleAnimSpriteTemplate_83C1FF8, 2, 5, 1, -28, 0, 0, 3
+ sprite gBattleAnimSpriteTemplate_83C1FF8, 2, 1, -28, 0, 0, 3
wait
- createtask sub_80A8154, 2, 5, 1, 4, 0, 12, 1
+ createtask sub_80A8154, 2, 1, 4, 0, 12, 1
wait
pause 10
- sprite gBattleAnimSpriteTemplate_83C1FE0, 2, 3, 0, 0, 6
+ sprite gBattleAnimSpriteTemplate_83C1FE0, 2, 0, 0, 6
pause 5
- sprite gBattleAnimSpriteTemplate_83C1FE0, 2, 3, 1, 0, 6
+ sprite gBattleAnimSpriteTemplate_83C1FE0, 2, 1, 0, 6
wait
clearmonbg 3
blendoff
@@ -619,7 +619,7 @@ Move_SUPERSONIC: @ 81C7DBD
monbg 2
monbgprio_2A 0
setalpha 12, 8
- createtask sub_80A7FA0, 2, 5, 0, 2, 0, 8, 1
+ createtask sub_80A7FA0, 2, 0, 2, 0, 8, 1
call _81C7DFB
call _81C7DFB
call _81C7DFB
@@ -632,22 +632,22 @@ Move_SUPERSONIC: @ 81C7DBD
end
_81C7DFB:
panse_19 SE_W048, 192
- sprite gBattleAnimSpriteTemplate_83D7534, 130, 6, 16, 0, 0, 0, 30, 0
+ sprite gBattleAnimSpriteTemplate_83D7534, 130, 16, 0, 0, 0, 30, 0
pause 2
ret
Move_SCREECH: @ 81C7E15
loadsprite 10164
- createtask sub_80A7FA0, 2, 5, 0, 3, 0, 2, 1
+ createtask sub_80A7FA0, 2, 0, 3, 0, 2, 1
call _81C7E48
call _81C7E48
pause 16
- createtask sub_80A8B88, 5, 5, 0, 6, 2048, 2, 1
+ createtask sub_80A8B88, 5, 0, 6, 2048, 2, 1
wait
end
_81C7E48:
panse_19 SE_W103, 192
- sprite gBattleAnimSpriteTemplate_83D754C, 130, 6, 16, 0, 0, 0, 30, 0
+ sprite gBattleAnimSpriteTemplate_83D754C, 130, 16, 0, 0, 0, 30, 0
pause 2
ret
@@ -655,41 +655,41 @@ Move_FLAME_WHEEL: @ 81C7E62
loadsprite 10029
monbg 3
monbgprio_2A 1
- sprite gBattleAnimSpriteTemplate_83D9694, 3, 4, 0, 0, 56, 0
+ sprite gBattleAnimSpriteTemplate_83D9694, 3, 0, 0, 56, 0
panse_19 SE_W172, 192
pause 2
- sprite gBattleAnimSpriteTemplate_83D9694, 3, 4, 0, 0, 56, 4
+ sprite gBattleAnimSpriteTemplate_83D9694, 3, 0, 0, 56, 4
panse_19 SE_W172, 192
pause 2
- sprite gBattleAnimSpriteTemplate_83D9694, 3, 4, 0, 0, 56, 8
+ sprite gBattleAnimSpriteTemplate_83D9694, 3, 0, 0, 56, 8
panse_19 SE_W172, 192
pause 2
- sprite gBattleAnimSpriteTemplate_83D9694, 3, 4, 0, 0, 56, 12
+ sprite gBattleAnimSpriteTemplate_83D9694, 3, 0, 0, 56, 12
panse_19 SE_W172, 192
pause 2
- sprite gBattleAnimSpriteTemplate_83D9694, 3, 4, 0, 0, 56, 16
+ sprite gBattleAnimSpriteTemplate_83D9694, 3, 0, 0, 56, 16
panse_19 SE_W172, 192
pause 2
- sprite gBattleAnimSpriteTemplate_83D9694, 3, 4, 0, 0, 56, 20
+ sprite gBattleAnimSpriteTemplate_83D9694, 3, 0, 0, 56, 20
panse_19 SE_W172, 192
pause 2
- sprite gBattleAnimSpriteTemplate_83D9694, 3, 4, 0, 0, 56, 24
+ sprite gBattleAnimSpriteTemplate_83D9694, 3, 0, 0, 56, 24
panse_19 SE_W172, 192
wait
- sprite gBattleAnimSpriteTemplate_83C1FF8, 2, 5, 0, 24, 0, 0, 6
+ sprite gBattleAnimSpriteTemplate_83C1FF8, 2, 0, 24, 0, 0, 6
pause 4
- createtask sub_80A7E7C, 2, 5, 1, 5, 0, 8, 1
- createtask sub_8079790, 3, 5, 1, 31, 12, 1, 1
+ createtask sub_80A7E7C, 2, 1, 5, 0, 8, 1
+ createtask sub_8079790, 3, 1, 31, 12, 1, 1
panse_19 SE_W172B, 63
call _81D11A2
pause 7
- sprite gBattleAnimSpriteTemplate_83C1FE0, 2, 3, 0, 0, 9
+ sprite gBattleAnimSpriteTemplate_83C1FE0, 2, 0, 0, 9
wait
clearmonbg 3
end
Unknown_81C7F4C: @ 81C7F4C
- sprite gBattleAnimSpriteTemplate_83D9694, 3, 3, 0, 0, 50
+ sprite gBattleAnimSpriteTemplate_83D9694, 3, 0, 0, 50
pause 4
ret
@@ -700,23 +700,23 @@ Move_PIN_MISSILE: @ 81C7F5C
monbgprio_28 1
setalpha 12, 8
panse_19 SE_W026, 192
- sprite gBattleAnimSpriteTemplate_83DABA4, 2, 6, 20, -8, -8, -8, 20, -32
+ sprite gBattleAnimSpriteTemplate_83DABA4, 2, 20, -8, -8, -8, 20, -32
pause 15
- sprite gBattleAnimSpriteTemplate_83DABA4, 2, 6, 20, -8, 8, 8, 20, -40
+ sprite gBattleAnimSpriteTemplate_83DABA4, 2, 20, -8, 8, 8, 20, -40
pause 4
panse_19 SE_W030, 63
- sprite gBattleAnimSpriteTemplate_83DB4A8, 3, 4, -8, -8, 1, 2
- createtask sub_80A7FA0, 2, 5, 1, 3, 0, 2, 1
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 3, -8, -8, 1, 2
+ createtask sub_80A7FA0, 2, 1, 3, 0, 2, 1
pause 9
- sprite gBattleAnimSpriteTemplate_83DABA4, 2, 6, 20, -8, 0, 0, 20, -32
+ sprite gBattleAnimSpriteTemplate_83DABA4, 2, 20, -8, 0, 0, 20, -32
pause 4
panse_19 SE_W030, 63
- sprite gBattleAnimSpriteTemplate_83DB4A8, 3, 4, 8, 8, 1, 2
- createtask sub_80A7FA0, 2, 5, 1, 3, 0, 2, 1
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 3, 8, 8, 1, 2
+ createtask sub_80A7FA0, 2, 1, 3, 0, 2, 1
pause 14
panse_19 SE_W030, 63
- sprite gBattleAnimSpriteTemplate_83DB4A8, 3, 4, 0, 0, 1, 2
- createtask sub_80A7FA0, 2, 5, 1, 3, 0, 2, 1
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 3, 0, 0, 1, 2
+ createtask sub_80A7FA0, 2, 1, 3, 0, 2, 1
wait
clearmonbg 1
blendoff
@@ -729,23 +729,23 @@ Move_ICICLE_SPEAR: @ 81C8021
monbgprio_28 1
setalpha 12, 8
panse_19 SE_W196, 192
- sprite gBattleAnimSpriteTemplate_83DABBC, 2, 6, 20, -8, -8, -8, 20, -32
+ sprite gBattleAnimSpriteTemplate_83DABBC, 2, 20, -8, -8, -8, 20, -32
pause 15
- sprite gBattleAnimSpriteTemplate_83DABBC, 2, 6, 20, -8, 8, 8, 20, -40
+ sprite gBattleAnimSpriteTemplate_83DABBC, 2, 20, -8, 8, 8, 20, -40
pause 4
panse_19 SE_W030, 63
- sprite gBattleAnimSpriteTemplate_83DB4A8, 3, 4, -8, -8, 1, 2
- createtask sub_80A7FA0, 2, 5, 1, 3, 0, 2, 1
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 3, -8, -8, 1, 2
+ createtask sub_80A7FA0, 2, 1, 3, 0, 2, 1
pause 9
- sprite gBattleAnimSpriteTemplate_83DABBC, 2, 6, 20, -8, 0, 0, 20, -32
+ sprite gBattleAnimSpriteTemplate_83DABBC, 2, 20, -8, 0, 0, 20, -32
pause 4
panse_19 SE_W030, 63
- sprite gBattleAnimSpriteTemplate_83DB4A8, 3, 4, 8, 8, 1, 2
- createtask sub_80A7FA0, 2, 5, 1, 3, 0, 2, 1
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 3, 8, 8, 1, 2
+ createtask sub_80A7FA0, 2, 1, 3, 0, 2, 1
pause 14
panse_19 SE_W030, 63
- sprite gBattleAnimSpriteTemplate_83DB4A8, 3, 4, 0, 0, 1, 2
- createtask sub_80A7FA0, 2, 5, 1, 3, 0, 2, 1
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 3, 0, 0, 1, 2
+ createtask sub_80A7FA0, 2, 1, 3, 0, 2, 1
wait
clearmonbg 1
blendoff
@@ -756,20 +756,20 @@ Move_TAKE_DOWN: @ 81C80E6
monbg 3
setalpha 12, 8
panse_19 SE_W036, 192
- createtask sub_80A8920, 5, 7, 0, -24, 8, 23, 10, 40, 10
+ createtask sub_80A8920, 5, 0, -24, 8, 23, 10, 40, 10
pause 35
- sprite gBattleAnimSpriteTemplate_83DB3DC, 2, 7, 31, 3, 1, 0, 10, 0, 0
- sprite gBattleAnimSpriteTemplate_83DB4A8, 4, 4, -10, 0, 1, 0
+ sprite gBattleAnimSpriteTemplate_83DB3DC, 2, 31, 3, 1, 0, 10, 0, 0
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 4, -10, 0, 1, 0
panse_19 SE_W025B, 63
pause 1
- sprite gBattleAnimSpriteTemplate_83C1FF8, 2, 5, 1, -16, 0, 0, 4
+ sprite gBattleAnimSpriteTemplate_83C1FF8, 2, 1, -16, 0, 0, 4
wait
- createtask sub_80A8154, 2, 5, 1, 4, 0, 12, 1
+ createtask sub_80A8154, 2, 1, 4, 0, 12, 1
wait
pause 2
- sprite gBattleAnimSpriteTemplate_83C1FE0, 2, 3, 0, 0, 5
+ sprite gBattleAnimSpriteTemplate_83C1FE0, 2, 0, 0, 5
pause 3
- sprite gBattleAnimSpriteTemplate_83C1FE0, 2, 3, 1, 0, 7
+ sprite gBattleAnimSpriteTemplate_83C1FE0, 2, 1, 0, 7
wait
clearmonbg 3
blendoff
@@ -778,33 +778,33 @@ Move_TAKE_DOWN: @ 81C80E6
Move_DOUBLE_EDGE: @ 81C817A
loadsprite 10135
panse_19 SE_W129, 192
- sprite gBattleAnimSpriteTemplate_83DB3DC, 2, 7, 2, 4, 2, 32767, 10, 0, 0
+ sprite gBattleAnimSpriteTemplate_83DB3DC, 2, 2, 4, 2, 32767, 10, 0, 0
wait
pause 10
panse_19 SE_W207, 192
panse_1D SE_W207, 192, 8
- createtask sub_80A8500, 2, 5, 0, 18, 6, 2, 4
+ createtask sub_80A8500, 2, 0, 18, 6, 2, 4
wait
- sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 5, 1, 0, 16, 16, 32767
- sprite gBattleAnimSpriteTemplate_83C1FF8, 2, 5, 0, 20, 0, 0, 4
+ sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 1, 0, 16, 16, 32767
+ sprite gBattleAnimSpriteTemplate_83C1FF8, 2, 0, 20, 0, 0, 4
pause 3
wait
panse_19 SE_W025B, 63
- sprite gBattleAnimSpriteTemplate_83DB4A8, 132, 4, -10, 0, 1, 0
- sprite gBattleAnimSpriteTemplate_83C1FF8, 2, 5, 1, -32, 0, 0, 3
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 132, -10, 0, 1, 0
+ sprite gBattleAnimSpriteTemplate_83C1FF8, 2, 1, -32, 0, 0, 3
wait
- createtask sub_80A8E04, 2, 4, 8, -256, 0, 0
- createtask sub_80A8E04, 2, 4, 8, -256, 1, 0
- createtask sub_80A8154, 2, 5, 0, 4, 0, 12, 1
- createtask sub_80A8154, 2, 5, 1, 4, 0, 12, 1
- sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 5, 1, 2, 16, 0, 32767
+ createtask sub_80A8E04, 2, 8, -256, 0, 0
+ createtask sub_80A8E04, 2, 8, -256, 1, 0
+ createtask sub_80A8154, 2, 0, 4, 0, 12, 1
+ createtask sub_80A8154, 2, 1, 4, 0, 12, 1
+ sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 1, 2, 16, 0, 32767
wait
- createtask sub_80A8E04, 2, 4, 8, -256, 0, 1
- createtask sub_80A8E04, 2, 4, 8, -256, 1, 1
+ createtask sub_80A8E04, 2, 8, -256, 0, 1
+ createtask sub_80A8E04, 2, 8, -256, 1, 1
wait
- sprite gBattleAnimSpriteTemplate_83C1FE0, 2, 3, 0, 0, 5
+ sprite gBattleAnimSpriteTemplate_83C1FE0, 2, 0, 0, 5
pause 3
- sprite gBattleAnimSpriteTemplate_83C1FE0, 2, 3, 1, 0, 7
+ sprite gBattleAnimSpriteTemplate_83C1FE0, 2, 1, 0, 7
wait
end
@@ -816,10 +816,10 @@ Move_POISON_STING: @ 81C828D
monbgprio_28 1
setalpha 12, 8
panse_19 SE_W013B, 192
- sprite gBattleAnimSpriteTemplate_83DAB8C, 130, 5, 20, 0, -8, 0, 20
+ sprite gBattleAnimSpriteTemplate_83DAB8C, 130, 20, 0, -8, 0, 20
wait
- sprite gBattleAnimSpriteTemplate_83DB4A8, 3, 4, 0, 0, 1, 2
- createtask sub_80A7FA0, 2, 5, 1, 2, 0, 5, 1
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 3, 0, 0, 1, 2
+ createtask sub_80A7FA0, 2, 1, 2, 0, 5, 1
panse_19 SE_W030, 63
wait
call Unknown_81D5F87
@@ -835,14 +835,14 @@ Move_TWINEEDLE: @ 81C82E2
monbgprio_28 1
setalpha 12, 8
panse_1C SE_W013B, 192, 6, 2
- sprite gBattleAnimSpriteTemplate_83DAB8C, 130, 5, 10, -4, 0, -4, 20
- sprite gBattleAnimSpriteTemplate_83DAB8C, 130, 5, 20, 12, 10, 12, 20
+ sprite gBattleAnimSpriteTemplate_83DAB8C, 130, 10, -4, 0, -4, 20
+ sprite gBattleAnimSpriteTemplate_83DAB8C, 130, 20, 12, 10, 12, 20
pause 20
- createtask sub_80A7FA0, 2, 5, 1, 2, 0, 5, 1
- sprite gBattleAnimSpriteTemplate_83DB4C0, 3, 4, 0, -4, 1, 3
+ createtask sub_80A7FA0, 2, 1, 2, 0, 5, 1
+ sprite gBattleAnimSpriteTemplate_83DB4C0, 3, 0, -4, 1, 3
panse_1C SE_W030, 63, 5, 2
pause 1
- sprite gBattleAnimSpriteTemplate_83DB4C0, 3, 4, 10, 12, 1, 3
+ sprite gBattleAnimSpriteTemplate_83DB4C0, 3, 10, 12, 1, 3
wait
clearmonbg 1
blendoff
@@ -850,15 +850,15 @@ Move_TWINEEDLE: @ 81C82E2
Move_FIRE_BLAST: @ 81C8355
loadsprite 10029
- createtask_1F sub_812AF30, 2, 144, 145
+ createtask_1F sub_812AF30, 144, 145
call _81C83E9
call _81C83E9
call _81C83E9
pause 24
- createtask sub_80E2A38, 10, 5, 1, 3, 0, 8, 0
+ createtask sub_80E2A38, 10, 1, 3, 0, 8, 0
wait
pause 19
- createtask sub_80A7E7C, 2, 5, 1, 5, 0, 20, 1
+ createtask sub_80A7E7C, 2, 1, 5, 0, 20, 1
call _81C842D
pause 3
call _81C842D
@@ -877,35 +877,35 @@ Move_FIRE_BLAST: @ 81C8355
pause 3
call _81C842D
wait
- createtask sub_80E2A38, 10, 5, 1, 2, 8, 0, 0
+ createtask sub_80E2A38, 10, 1, 2, 8, 0, 0
wait
end
_81C83E9:
- sprite gBattleAnimSpriteTemplate_83D962C, 130, 3, 0, 0, 0
- sprite gBattleAnimSpriteTemplate_83D962C, 130, 3, 0, 0, 51
- sprite gBattleAnimSpriteTemplate_83D962C, 130, 3, 0, 0, 102
- sprite gBattleAnimSpriteTemplate_83D962C, 130, 3, 0, 0, 153
- sprite gBattleAnimSpriteTemplate_83D962C, 130, 3, 0, 0, 204
+ sprite gBattleAnimSpriteTemplate_83D962C, 130, 0, 0, 0
+ sprite gBattleAnimSpriteTemplate_83D962C, 130, 0, 0, 51
+ sprite gBattleAnimSpriteTemplate_83D962C, 130, 0, 0, 102
+ sprite gBattleAnimSpriteTemplate_83D962C, 130, 0, 0, 153
+ sprite gBattleAnimSpriteTemplate_83D962C, 130, 0, 0, 204
pause 5
ret
_81C842D:
- sprite gBattleAnimSpriteTemplate_83D967C, 130, 5, 0, 0, 10, 0, -2
- sprite gBattleAnimSpriteTemplate_83D967C, 130, 5, 0, 0, 13, -2, 0
- sprite gBattleAnimSpriteTemplate_83D967C, 130, 5, 0, 0, 13, 2, 0
- sprite gBattleAnimSpriteTemplate_83D967C, 130, 5, 0, 0, 15, -2, 2
- sprite gBattleAnimSpriteTemplate_83D967C, 130, 5, 0, 0, 15, 2, 2
+ sprite gBattleAnimSpriteTemplate_83D967C, 130, 0, 0, 10, 0, -2
+ sprite gBattleAnimSpriteTemplate_83D967C, 130, 0, 0, 13, -2, 0
+ sprite gBattleAnimSpriteTemplate_83D967C, 130, 0, 0, 13, 2, 0
+ sprite gBattleAnimSpriteTemplate_83D967C, 130, 0, 0, 15, -2, 2
+ sprite gBattleAnimSpriteTemplate_83D967C, 130, 0, 0, 15, 2, 2
ret
Move_LEECH_SEED: @ 81C8483
loadsprite 10006
panse_19 SE_W077, 192
- sprite gBattleAnimSpriteTemplate_83D63C8, 130, 6, 15, 0, 0, 24, 35, -32
+ sprite gBattleAnimSpriteTemplate_83D63C8, 130, 15, 0, 0, 24, 35, -32
pause 8
panse_19 SE_W077, 192
- sprite gBattleAnimSpriteTemplate_83D63C8, 130, 6, 15, 0, -16, 24, 35, -40
+ sprite gBattleAnimSpriteTemplate_83D63C8, 130, 15, 0, -16, 24, 35, -40
pause 8
panse_19 SE_W077, 192
- sprite gBattleAnimSpriteTemplate_83D63C8, 130, 6, 15, 0, 16, 24, 35, -37
+ sprite gBattleAnimSpriteTemplate_83D63C8, 130, 15, 0, 16, 24, 35, -37
pause 12
panse_1C SE_W039, 63, 10, 8
wait
@@ -914,11 +914,11 @@ Move_LEECH_SEED: @ 81C8483
Move_EMBER: @ 81C84D9
loadsprite 10029
panse_1C SE_W052, 192, 5, 2
- sprite gBattleAnimSpriteTemplate_83D95E4, 130, 6, 20, 0, -16, 24, 20, 1
+ sprite gBattleAnimSpriteTemplate_83D95E4, 130, 20, 0, -16, 24, 20, 1
pause 4
- sprite gBattleAnimSpriteTemplate_83D95E4, 130, 6, 20, 0, 0, 24, 20, 1
+ sprite gBattleAnimSpriteTemplate_83D95E4, 130, 20, 0, 0, 24, 20, 1
pause 4
- sprite gBattleAnimSpriteTemplate_83D95E4, 130, 6, 20, 0, 16, 24, 20, 1
+ sprite gBattleAnimSpriteTemplate_83D95E4, 130, 20, 0, 16, 24, 20, 1
pause 16
panse_19 SE_W172, 63
call _81C8535
@@ -926,7 +926,7 @@ Move_EMBER: @ 81C84D9
call _81C8535
end
_81C8535:
- sprite gBattleAnimSpriteTemplate_83D95FC, 130, 7, -24, 24, 24, 24, 20, 1, 1
+ sprite gBattleAnimSpriteTemplate_83D95FC, 130, -24, 24, 24, 24, 20, 1, 1
pause 4
ret
@@ -935,17 +935,17 @@ Move_MEGA_PUNCH: @ 81C854D
loadsprite 10143
monbg 1
pause 2
- sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 5, 1, 0, 0, 16, 0
+ sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 1, 0, 0, 16, 0
setalpha 12, 8
panse_19 SE_W025, 63
- sprite gBattleAnimSpriteTemplate_83DA058, 3, 4, 0, 0, 0, 50
- createtask sub_80E2A38, 10, 5, 4, 2, 0, 7, 32767
+ sprite gBattleAnimSpriteTemplate_83DA058, 3, 0, 0, 0, 50
+ createtask sub_80E2A38, 10, 4, 2, 0, 7, 32767
pause 50
call _81C85E9
- sprite gBattleAnimSpriteTemplate_83DB4A8, 2, 4, 0, 0, 1, 0
- createtask sub_80A7FA0, 2, 5, 1, 4, 0, 22, 1
- createtask sub_80E2A38, 10, 5, 4, 2, 0, 0, 32767
- sprite gBattleAnimSpriteTemplate_83DB3DC, 2, 7, 31, 3, 1, 0, 8, 0, 0
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 2, 0, 0, 1, 0
+ createtask sub_80A7FA0, 2, 1, 4, 0, 22, 1
+ createtask sub_80E2A38, 10, 4, 2, 0, 0, 32767
+ sprite gBattleAnimSpriteTemplate_83DB3DC, 2, 31, 3, 1, 0, 8, 0, 0
panse_19 SE_W233B, 63
wait
clearmonbg 1
@@ -978,18 +978,18 @@ Move_MEGA_KICK: @ 81C8627
loadsprite 10143
monbg 1
pause 2
- sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 5, 1, 0, 0, 16, 0
+ sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 1, 0, 0, 16, 0
setalpha 12, 8
panse_19 SE_W025, 63
- sprite gBattleAnimSpriteTemplate_83DA058, 3, 4, 0, 0, 1, 50
- createtask sub_80E2A38, 10, 5, 4, 2, 0, 7, 32767
+ sprite gBattleAnimSpriteTemplate_83DA058, 3, 0, 0, 1, 50
+ createtask sub_80E2A38, 10, 4, 2, 0, 7, 32767
pause 50
panse_19 SE_W025B, 63
call _81C85E9
- sprite gBattleAnimSpriteTemplate_83DB4A8, 2, 4, 0, 0, 1, 0
- createtask sub_80A7FA0, 2, 5, 1, 4, 0, 22, 1
- createtask sub_80E2A38, 10, 5, 4, 2, 0, 0, 32767
- sprite gBattleAnimSpriteTemplate_83DB3DC, 2, 7, 31, 3, 1, 0, 8, 0, 0
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 2, 0, 0, 1, 0
+ createtask sub_80A7FA0, 2, 1, 4, 0, 22, 1
+ createtask sub_80E2A38, 10, 4, 2, 0, 0, 32767
+ sprite gBattleAnimSpriteTemplate_83DB3DC, 2, 31, 3, 1, 0, 8, 0, 0
wait
clearmonbg 1
blendoff
@@ -1005,19 +1005,19 @@ Move_COMET_PUNCH: @ 81C86C3
setalpha 12, 8
ifelse _81C86F1, _81C8716
_81C86D7:
- createtask sub_80A7E7C, 2, 5, 1, 3, 0, 6, 1
+ createtask sub_80A7E7C, 2, 1, 3, 0, 6, 1
panse_19 SE_W004, 63
wait
clearmonbg 1
blendoff
end
_81C86F1:
- sprite gBattleAnimSpriteTemplate_83DB4A8, 2, 4, -8, -8, 1, 2
- sprite gBattleAnimSpriteTemplate_83D9FA8, 3, 5, -8, 0, 8, 1, 0
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 2, -8, -8, 1, 2
+ sprite gBattleAnimSpriteTemplate_83D9FA8, 3, -8, 0, 8, 1, 0
jump _81C86D7
_81C8716:
- sprite gBattleAnimSpriteTemplate_83DB4A8, 2, 4, 8, -8, 1, 2
- sprite gBattleAnimSpriteTemplate_83D9FA8, 3, 5, 8, 0, 8, 1, 0
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 2, 8, -8, 1, 2
+ sprite gBattleAnimSpriteTemplate_83D9FA8, 3, 8, 0, 8, 1, 0
jump _81C86D7
Move_SONIC_BOOM: @ 81C873B
@@ -1029,7 +1029,7 @@ Move_SONIC_BOOM: @ 81C873B
call _81C8772
call _81C8772
call _81C8772
- createtask sub_80A7E7C, 2, 5, 1, 3, 0, 10, 1
+ createtask sub_80A7E7C, 2, 1, 3, 0, 10, 1
call _81C878A
wait
clearmonbg 3
@@ -1037,32 +1037,32 @@ Move_SONIC_BOOM: @ 81C873B
end
_81C8772:
panse_19 SE_W013B, 192
- sprite gBattleAnimSpriteTemplate_83D74A4, 130, 5, 16, 0, 0, 0, 15
+ sprite gBattleAnimSpriteTemplate_83D74A4, 130, 16, 0, 0, 0, 15
pause 4
ret
_81C878A:
- sprite gBattleAnimSpriteTemplate_83DB4A8, 131, 4, 0, 0, 1, 2
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 131, 0, 0, 1, 2
pause 4
ret
Move_THUNDER_SHOCK: @ 81C879C
loadsprite 10001
loadsprite 10011
- createtask sub_80E2A38, 10, 5, 1, 0, 0, 6, 0
+ createtask sub_80E2A38, 10, 1, 0, 0, 6, 0
wait
pause 10
- createtask sub_80D681C, 5, 3, 0, -44, 0
+ createtask sub_80D681C, 5, 0, -44, 0
panse_19 SE_W085, 63
pause 9
- createtask sub_80E2A38, 10, 5, 4, 0, 0, 13, 0
+ createtask sub_80E2A38, 10, 4, 0, 0, 13, 0
wait
- createtask sub_80E2A38, 10, 5, 4, 0, 13, 0, 0
+ createtask sub_80E2A38, 10, 4, 0, 13, 0, 0
wait
pause 20
call Unknown_81D6100
wait
pause 20
- createtask sub_80E2A38, 10, 5, 1, 0, 6, 0, 0
+ createtask sub_80E2A38, 10, 1, 0, 6, 0, 0
wait
end
@@ -1070,48 +1070,48 @@ Move_THUNDERBOLT: @ 81C880A
loadsprite 10001
loadsprite 10282
loadsprite 10011
- createtask sub_80E2A38, 10, 5, 1, 0, 0, 6, 0
+ createtask sub_80E2A38, 10, 1, 0, 0, 6, 0
wait
pause 10
- createtask sub_80D681C, 5, 3, 24, -52, 0
+ createtask sub_80D681C, 5, 24, -52, 0
panse_19 SE_W085, 63
pause 7
- createtask sub_80D681C, 5, 3, -24, -52, 0
+ createtask sub_80D681C, 5, -24, -52, 0
panse_19 SE_W085, 63
pause 7
- createtask sub_80D681C, 5, 3, 0, -60, 1
+ createtask sub_80D681C, 5, 0, -60, 1
panse_19 SE_W085, 63
pause 9
- createtask sub_80E2A38, 10, 5, 4, 0, 0, 13, 0
+ createtask sub_80E2A38, 10, 4, 0, 0, 13, 0
wait
- createtask sub_80E2A38, 10, 5, 4, 0, 13, 0, 0
+ createtask sub_80E2A38, 10, 4, 0, 13, 0, 0
wait
pause 20
- sprite gBattleAnimSpriteTemplate_83D98F0, 131, 4, 44, 0, 0, 3
- sprite gBattleAnimSpriteTemplate_83D9908, 132, 8, 0, 0, 32, 44, 0, 40, 0, -32765
- sprite gBattleAnimSpriteTemplate_83D9908, 132, 8, 0, 0, 32, 44, 64, 40, 1, -32765
- sprite gBattleAnimSpriteTemplate_83D9908, 132, 8, 0, 0, 32, 44, 128, 40, 0, -32765
- sprite gBattleAnimSpriteTemplate_83D9908, 132, 8, 0, 0, 32, 44, 192, 40, 2, -32765
- sprite gBattleAnimSpriteTemplate_83D9908, 132, 8, 0, 0, 16, 44, 32, 40, 0, -32765
- sprite gBattleAnimSpriteTemplate_83D9908, 132, 8, 0, 0, 16, 44, 96, 40, 1, -32765
- sprite gBattleAnimSpriteTemplate_83D9908, 132, 8, 0, 0, 16, 44, 160, 40, 0, -32765
- sprite gBattleAnimSpriteTemplate_83D9908, 132, 8, 0, 0, 16, 44, 224, 40, 2, -32765
+ sprite gBattleAnimSpriteTemplate_83D98F0, 131, 44, 0, 0, 3
+ sprite gBattleAnimSpriteTemplate_83D9908, 132, 0, 0, 32, 44, 0, 40, 0, -32765
+ sprite gBattleAnimSpriteTemplate_83D9908, 132, 0, 0, 32, 44, 64, 40, 1, -32765
+ sprite gBattleAnimSpriteTemplate_83D9908, 132, 0, 0, 32, 44, 128, 40, 0, -32765
+ sprite gBattleAnimSpriteTemplate_83D9908, 132, 0, 0, 32, 44, 192, 40, 2, -32765
+ sprite gBattleAnimSpriteTemplate_83D9908, 132, 0, 0, 16, 44, 32, 40, 0, -32765
+ sprite gBattleAnimSpriteTemplate_83D9908, 132, 0, 0, 16, 44, 96, 40, 1, -32765
+ sprite gBattleAnimSpriteTemplate_83D9908, 132, 0, 0, 16, 44, 160, 40, 0, -32765
+ sprite gBattleAnimSpriteTemplate_83D9908, 132, 0, 0, 16, 44, 224, 40, 2, -32765
panse_19 SE_W063, 63
pause 0
- createtask sub_80E2A38, 10, 5, 1, 0, 2, 2, 0
+ createtask sub_80E2A38, 10, 1, 0, 2, 2, 0
pause 6
- createtask sub_80E2A38, 10, 5, 1, 0, 6, 6, 0
+ createtask sub_80E2A38, 10, 1, 0, 6, 6, 0
pause 6
- createtask sub_80E2A38, 10, 5, 1, 0, 2, 2, 0
+ createtask sub_80E2A38, 10, 1, 0, 2, 2, 0
pause 6
- createtask sub_80E2A38, 10, 5, 1, 0, 6, 6, 0
+ createtask sub_80E2A38, 10, 1, 0, 6, 6, 0
wait
pause 20
panse_1D SE_W085B, 63, 19
call Unknown_81D6100
wait
pause 20
- createtask sub_80E2A38, 10, 5, 1, 0, 6, 0, 0
+ createtask sub_80E2A38, 10, 1, 0, 6, 0, 0
wait
end
@@ -1119,20 +1119,20 @@ Move_THUNDER_WAVE: @ 81C89C0
loadsprite 10001
loadsprite 10011
loadsprite 10173
- createtask sub_80E2A38, 10, 5, 1, 0, 0, 6, 0
+ createtask sub_80E2A38, 10, 1, 0, 0, 6, 0
wait
pause 10
- createtask sub_80D681C, 5, 3, 0, -48, 0
+ createtask sub_80D681C, 5, 0, -48, 0
panse_19 SE_W086, 63
pause 20
panse_1C SE_W085B, 63, 10, 4
- sprite gBattleAnimSpriteTemplate_83D9950, 130, 2, -16, -16
+ sprite gBattleAnimSpriteTemplate_83D9950, 130, -16, -16
pause 4
- sprite gBattleAnimSpriteTemplate_83D9950, 130, 2, -16, 0
+ sprite gBattleAnimSpriteTemplate_83D9950, 130, -16, 0
pause 4
- sprite gBattleAnimSpriteTemplate_83D9950, 130, 2, -16, 16
+ sprite gBattleAnimSpriteTemplate_83D9950, 130, -16, 16
wait
- createtask sub_80E2A38, 10, 5, 1, 0, 6, 0, 0
+ createtask sub_80E2A38, 10, 1, 0, 6, 0, 0
wait
end
@@ -1148,25 +1148,25 @@ _81C8A43:
blendoff
end
_81C8A48:
- sprite gBattleAnimSpriteTemplate_83DB4A8, 130, 4, -20, -20, 1, 2
- sprite gBattleAnimSpriteTemplate_83D9FA8, 131, 5, -20, -12, 8, 1, 0
- createtask sub_80A7E7C, 2, 5, 1, 3, 0, 6, 1
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 130, -20, -20, 1, 2
+ sprite gBattleAnimSpriteTemplate_83D9FA8, 131, -20, -12, 8, 1, 0
+ createtask sub_80A7E7C, 2, 1, 3, 0, 6, 1
panse_19 SE_W233B, 63
pause 8
- sprite gBattleAnimSpriteTemplate_83DB4A8, 130, 4, 8, 0, 1, 2
- sprite gBattleAnimSpriteTemplate_83D9FA8, 131, 5, 8, 8, 8, 1, 0
- createtask sub_80A7E7C, 2, 5, 1, 3, 0, 6, 1
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 130, 8, 0, 1, 2
+ sprite gBattleAnimSpriteTemplate_83D9FA8, 131, 8, 8, 8, 1, 0
+ createtask sub_80A7E7C, 2, 1, 3, 0, 6, 1
panse_19 SE_W233B, 63
jump _81C8A43
_81C8AB9:
- sprite gBattleAnimSpriteTemplate_83DB4A8, 130, 4, 12, -20, 1, 2
- sprite gBattleAnimSpriteTemplate_83D9FA8, 131, 5, 12, -12, 8, 1, 0
- createtask sub_80A7E7C, 2, 5, 1, 3, 0, 6, 1
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 130, 12, -20, 1, 2
+ sprite gBattleAnimSpriteTemplate_83D9FA8, 131, 12, -12, 8, 1, 0
+ createtask sub_80A7E7C, 2, 1, 3, 0, 6, 1
panse_19 SE_W233B, 63
pause 8
- sprite gBattleAnimSpriteTemplate_83DB4A8, 130, 4, -12, 0, 1, 2
- sprite gBattleAnimSpriteTemplate_83D9FA8, 131, 5, -12, 8, 8, 1, 0
- createtask sub_80A7E7C, 2, 5, 1, 3, 0, 6, 1
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 130, -12, 0, 1, 2
+ sprite gBattleAnimSpriteTemplate_83D9FA8, 131, -12, 8, 8, 1, 0
+ createtask sub_80A7E7C, 2, 1, 3, 0, 6, 1
panse_19 SE_W233B, 63
jump _81C8A43
@@ -1176,10 +1176,10 @@ Move_STOMP: @ 81C8B2A
monbg 1
setalpha 12, 8
panse_19 SE_W104, 63
- sprite gBattleAnimSpriteTemplate_83DA070, 3, 3, 0, -32, 15
+ sprite gBattleAnimSpriteTemplate_83DA070, 3, 0, -32, 15
pause 19
- sprite gBattleAnimSpriteTemplate_83DB4A8, 2, 4, 0, -8, 1, 1
- createtask sub_80A7E7C, 2, 5, 1, 0, 4, 9, 1
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 2, 0, -8, 1, 1
+ createtask sub_80A7E7C, 2, 1, 0, 4, 9, 1
panse_19 SE_W025B, 63
wait
clearmonbg 1
@@ -1188,7 +1188,7 @@ Move_STOMP: @ 81C8B2A
Move_TAIL_WHIP: @ 81C8B71
panse_1C SE_W039, 192, 24, 3
- createtask sub_80A8500, 2, 5, 0, 12, 4, 2, 3
+ createtask sub_80A8500, 2, 0, 12, 4, 2, 3
wait
end
@@ -1197,9 +1197,9 @@ Move_CUT: @ 81C8B8A
monbg 1
setalpha 12, 8
panse_19 SE_W015, 63
- sprite gBattleAnimSpriteTemplate_83D6B28, 2, 3, 40, -32, 0
+ sprite gBattleAnimSpriteTemplate_83D6B28, 2, 40, -32, 0
pause 5
- createtask sub_80A7E7C, 2, 5, 1, 0, 3, 10, 1
+ createtask sub_80A7E7C, 2, 1, 0, 3, 10, 1
wait
clearmonbg 1
blendoff
@@ -1209,31 +1209,31 @@ Move_CUT: @ 81C8B8A
Move_HIDDEN_POWER: @ 81C8BBC
loadsprite 10217
panse_19 SE_W036, 192
- createtask sub_80A8D34, 5, 5, -7, -7, 11, 0, 0
+ createtask sub_80A8D34, 5, -7, -7, 11, 0, 0
wait
pause 30
- createtask sub_8079790, 5, 5, 0, 20479, 12, 5, 1
+ createtask sub_8079790, 5, 0, 20479, 12, 5, 1
pause 4
- createtask sub_80A8D34, 5, 5, -7, -7, 11, 0, 0
+ createtask sub_80A8D34, 5, -7, -7, 11, 0, 0
panse_19 SE_W179, 192
- sprite gBattleAnimSpriteTemplate_83D7B14, 2, 2, 26, 0
- sprite gBattleAnimSpriteTemplate_83D7B14, 2, 2, 26, 42
- sprite gBattleAnimSpriteTemplate_83D7B14, 2, 2, 26, 84
- sprite gBattleAnimSpriteTemplate_83D7B14, 2, 2, 26, 126
- sprite gBattleAnimSpriteTemplate_83D7B14, 2, 2, 26, 168
- sprite gBattleAnimSpriteTemplate_83D7B14, 2, 2, 26, 210
+ sprite gBattleAnimSpriteTemplate_83D7B14, 2, 26, 0
+ sprite gBattleAnimSpriteTemplate_83D7B14, 2, 26, 42
+ sprite gBattleAnimSpriteTemplate_83D7B14, 2, 26, 84
+ sprite gBattleAnimSpriteTemplate_83D7B14, 2, 26, 126
+ sprite gBattleAnimSpriteTemplate_83D7B14, 2, 26, 168
+ sprite gBattleAnimSpriteTemplate_83D7B14, 2, 26, 210
pause 52
setvar 7, -1
panse_19 SE_W115, 192
- createtask sub_80A8D34, 5, 5, -7, -7, 11, 0, 0
- sprite gBattleAnimSpriteTemplate_83D7B2C, 130, 1, 0
- sprite gBattleAnimSpriteTemplate_83D7B2C, 130, 1, 32
- sprite gBattleAnimSpriteTemplate_83D7B2C, 130, 1, 64
- sprite gBattleAnimSpriteTemplate_83D7B2C, 130, 1, 96
- sprite gBattleAnimSpriteTemplate_83D7B2C, 130, 1, 128
- sprite gBattleAnimSpriteTemplate_83D7B2C, 130, 1, 160
- sprite gBattleAnimSpriteTemplate_83D7B2C, 130, 1, 192
- sprite gBattleAnimSpriteTemplate_83D7B2C, 130, 1, 224
+ createtask sub_80A8D34, 5, -7, -7, 11, 0, 0
+ sprite gBattleAnimSpriteTemplate_83D7B2C, 130, 0
+ sprite gBattleAnimSpriteTemplate_83D7B2C, 130, 32
+ sprite gBattleAnimSpriteTemplate_83D7B2C, 130, 64
+ sprite gBattleAnimSpriteTemplate_83D7B2C, 130, 96
+ sprite gBattleAnimSpriteTemplate_83D7B2C, 130, 128
+ sprite gBattleAnimSpriteTemplate_83D7B2C, 130, 160
+ sprite gBattleAnimSpriteTemplate_83D7B2C, 130, 192
+ sprite gBattleAnimSpriteTemplate_83D7B2C, 130, 224
end
Move_REVERSAL: @ 81C8CA5
@@ -1241,27 +1241,27 @@ Move_REVERSAL: @ 81C8CA5
loadsprite 10143
loadsprite 10135
panse_19 SE_W197, 192
- sprite gBattleAnimSpriteTemplate_83DB3DC, 2, 7, 31, 3, 3, 32767, 8, 0, 0
+ sprite gBattleAnimSpriteTemplate_83DB3DC, 2, 31, 3, 3, 32767, 8, 0, 0
wait
pause 30
- createtask sub_80E1F8C, 2, 6, 31, 3, 2, 0, 10, 32767
+ createtask sub_80E1F8C, 2, 31, 3, 2, 0, 10, 32767
pause 10
panse_19 SE_W179, 192
- sprite gBattleAnimSpriteTemplate_8402738, 2, 2, 26, 0
- sprite gBattleAnimSpriteTemplate_8402738, 2, 2, 26, 42
- sprite gBattleAnimSpriteTemplate_8402738, 2, 2, 26, 84
- sprite gBattleAnimSpriteTemplate_8402738, 2, 2, 26, 126
- sprite gBattleAnimSpriteTemplate_8402738, 2, 2, 26, 168
- sprite gBattleAnimSpriteTemplate_8402738, 2, 2, 26, 210
+ sprite gBattleAnimSpriteTemplate_8402738, 2, 26, 0
+ sprite gBattleAnimSpriteTemplate_8402738, 2, 26, 42
+ sprite gBattleAnimSpriteTemplate_8402738, 2, 26, 84
+ sprite gBattleAnimSpriteTemplate_8402738, 2, 26, 126
+ sprite gBattleAnimSpriteTemplate_8402738, 2, 26, 168
+ sprite gBattleAnimSpriteTemplate_8402738, 2, 26, 210
wait
pause 20
- sprite gBattleAnimSpriteTemplate_83C1FB0, 2, 2, 6, 4
+ sprite gBattleAnimSpriteTemplate_83C1FB0, 2, 6, 4
pause 8
panse_19 SE_W233B, 63
- sprite gBattleAnimSpriteTemplate_83DB3DC, 2, 7, 31, 3, 1, 32767, 8, 0, 0
- sprite gBattleAnimSpriteTemplate_83D9FA8, 132, 5, 0, 0, 10, 1, 0
- sprite gBattleAnimSpriteTemplate_83DB4A8, 131, 4, 0, 0, 1, 1
- createtask sub_80A9058, 5, 5, 0, 1, 8, 1, 0
+ sprite gBattleAnimSpriteTemplate_83DB3DC, 2, 31, 3, 1, 32767, 8, 0, 0
+ sprite gBattleAnimSpriteTemplate_83D9FA8, 132, 0, 0, 10, 1, 0
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 131, 0, 0, 1, 1
+ createtask sub_80A9058, 5, 0, 1, 8, 1, 0
end
Move_PURSUIT: @ 81C8D80
@@ -1282,13 +1282,13 @@ _81C8D96:
end
_81C8D9F:
panse_19 SE_W004, 63
- sprite gBattleAnimSpriteTemplate_83DB4A8, 3, 4, 0, 0, 1, 2
- createtask sub_80A9058, 5, 5, 0, 1, 6, 1, 0
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 3, 0, 0, 1, 2
+ createtask sub_80A9058, 5, 0, 1, 6, 1, 0
jump _81C8D96
_81C8DC8:
panse_19 SE_W004, 63
- sprite gBattleAnimSpriteTemplate_83DB4A8, 3, 4, 0, 0, 1, 1
- createtask sub_80A9058, 5, 5, 0, 1, 6, 1, 0
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 3, 0, 0, 1, 1
+ createtask sub_80A9058, 5, 0, 1, 6, 1, 0
jump _81C8D96
Move_SPIKE_CANNON: @ 81C8DF1
@@ -1297,18 +1297,18 @@ Move_SPIKE_CANNON: @ 81C8DF1
monbg 1
monbgprio_28 1
setalpha 12, 8
- createtask sub_80A8920, 5, 7, 0, -4, 0, 4, 6, 8, 4
+ createtask sub_80A8920, 5, 0, -4, 0, 4, 6, 8, 4
wait
panse_1C SE_W013B, 192, 5, 3
- sprite gBattleAnimSpriteTemplate_83C1FE0, 2, 3, 0, 0, 5
- sprite gBattleAnimSpriteTemplate_83DAB8C, 2, 5, 10, -8, -8, -8, 20
- sprite gBattleAnimSpriteTemplate_83DAB8C, 2, 5, 18, 0, 0, 0, 20
- sprite gBattleAnimSpriteTemplate_83DAB8C, 2, 5, 26, 8, 8, 8, 20
- wait
- sprite gBattleAnimSpriteTemplate_83DB4C0, 3, 4, -8, -8, 1, 2
- sprite gBattleAnimSpriteTemplate_83DB4C0, 3, 4, 0, 0, 1, 2
- sprite gBattleAnimSpriteTemplate_83DB4C0, 3, 4, 8, 8, 1, 2
- createtask sub_80A7FA0, 2, 5, 1, 3, 0, 7, 1
+ sprite gBattleAnimSpriteTemplate_83C1FE0, 2, 0, 0, 5
+ sprite gBattleAnimSpriteTemplate_83DAB8C, 2, 10, -8, -8, -8, 20
+ sprite gBattleAnimSpriteTemplate_83DAB8C, 2, 18, 0, 0, 0, 20
+ sprite gBattleAnimSpriteTemplate_83DAB8C, 2, 26, 8, 8, 8, 20
+ wait
+ sprite gBattleAnimSpriteTemplate_83DB4C0, 3, -8, -8, 1, 2
+ sprite gBattleAnimSpriteTemplate_83DB4C0, 3, 0, 0, 1, 2
+ sprite gBattleAnimSpriteTemplate_83DB4C0, 3, 8, 8, 1, 2
+ createtask sub_80A7FA0, 2, 1, 3, 0, 7, 1
panse_1C SE_W030, 63, 5, 3
wait
clearmonbg 1
@@ -1320,10 +1320,10 @@ Move_SWORDS_DANCE: @ 81C8EA4
monbg 0
setalpha 12, 8
panse_19 SE_W014, 192
- createtask sub_80A8500, 2, 5, 0, 16, 6, 1, 4
- sprite gBattleAnimSpriteTemplate_83D748C, 2, 2, 0, 0
+ createtask sub_80A8500, 2, 0, 16, 6, 1, 4
+ sprite gBattleAnimSpriteTemplate_83D748C, 2, 0, 0
pause 22
- createtask sub_80E21A8, 2, 7, 10005, 2, 2, 32754, 16, 0, 0
+ createtask sub_80E21A8, 2, 10005, 2, 2, 32754, 16, 0, 0
wait
clearmonbg 0
blendoff
@@ -1333,16 +1333,16 @@ Move_SWORDS_DANCE: @ 81C8EA4
Move_PSYCH_UP: @ 81C8EEA
loadsprite 10196
monbg 2
- createtask sub_80E1F8C, 2, 6, 25, 2, 6, 1, 11, 0
+ createtask sub_80E1F8C, 2, 25, 2, 6, 1, 11, 0
setalpha 12, 8
panse_1C SE_W060B, 192, 5, 10
- sprite gBattleAnimSpriteTemplate_83DA690, 2, 4, 0, 0, 0, 0
- createtask sub_80A8B88, 5, 5, 0, 5, 2560, 8, 0
+ sprite gBattleAnimSpriteTemplate_83DA690, 2, 0, 0, 0, 0
+ createtask sub_80A8B88, 5, 0, 5, 2560, 8, 0
pause 127
pause 4
panse_19 SE_W060, 192
- createtask sub_80A8D34, 5, 5, -5, -5, 10, 0, 1
- createtask sub_80E2A38, 9, 5, 2, 2, 10, 0, 1023
+ createtask sub_80A8D34, 5, -5, -5, 10, 0, 1
+ createtask sub_80E2A38, 9, 2, 2, 10, 0, 1023
pause 30
clearmonbg 2
blendoff
@@ -1356,57 +1356,57 @@ Move_DIZZY_PUNCH: @ 81C8F5C
monbg 1
setalpha 12, 8
call _81C9077
- sprite gBattleAnimSpriteTemplate_83D9FA8, 133, 5, 16, 8, 20, 1, 0
- sprite gBattleAnimSpriteTemplate_83DB4A8, 132, 4, 16, 0, 1, 1
+ sprite gBattleAnimSpriteTemplate_83D9FA8, 133, 16, 8, 20, 1, 0
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 132, 16, 0, 1, 1
panse_19 SE_W004, 63
- sprite gBattleAnimSpriteTemplate_83DA088, 131, 4, 16, 8, 160, -32
- sprite gBattleAnimSpriteTemplate_83DA088, 131, 4, 16, 8, -256, -40
- sprite gBattleAnimSpriteTemplate_83DA088, 131, 4, 16, 8, 128, -16
- sprite gBattleAnimSpriteTemplate_83DA088, 131, 4, 16, 8, 416, -38
- sprite gBattleAnimSpriteTemplate_83DA088, 131, 4, 16, 8, -128, -22
- sprite gBattleAnimSpriteTemplate_83DA088, 131, 4, 16, 8, -384, -31
+ sprite gBattleAnimSpriteTemplate_83DA088, 131, 16, 8, 160, -32
+ sprite gBattleAnimSpriteTemplate_83DA088, 131, 16, 8, -256, -40
+ sprite gBattleAnimSpriteTemplate_83DA088, 131, 16, 8, 128, -16
+ sprite gBattleAnimSpriteTemplate_83DA088, 131, 16, 8, 416, -38
+ sprite gBattleAnimSpriteTemplate_83DA088, 131, 16, 8, -128, -22
+ sprite gBattleAnimSpriteTemplate_83DA088, 131, 16, 8, -384, -31
pause 10
call _81C9077
- sprite gBattleAnimSpriteTemplate_83D9FA8, 133, 5, -16, -8, 20, 1, 0
- sprite gBattleAnimSpriteTemplate_83DB4A8, 132, 4, -16, -16, 1, 1
+ sprite gBattleAnimSpriteTemplate_83D9FA8, 133, -16, -8, 20, 1, 0
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 132, -16, -16, 1, 1
panse_19 SE_W233B, 63
- sprite gBattleAnimSpriteTemplate_83DA088, 131, 4, -16, -8, 160, -32
- sprite gBattleAnimSpriteTemplate_83DA088, 131, 4, -16, -8, -256, -40
- sprite gBattleAnimSpriteTemplate_83DA088, 131, 4, -16, -8, 128, -16
- sprite gBattleAnimSpriteTemplate_83DA088, 131, 4, -16, -8, 416, -38
- sprite gBattleAnimSpriteTemplate_83DA088, 131, 4, -16, -8, -128, -22
- sprite gBattleAnimSpriteTemplate_83DA088, 131, 4, -16, -8, -384, -31
+ sprite gBattleAnimSpriteTemplate_83DA088, 131, -16, -8, 160, -32
+ sprite gBattleAnimSpriteTemplate_83DA088, 131, -16, -8, -256, -40
+ sprite gBattleAnimSpriteTemplate_83DA088, 131, -16, -8, 128, -16
+ sprite gBattleAnimSpriteTemplate_83DA088, 131, -16, -8, 416, -38
+ sprite gBattleAnimSpriteTemplate_83DA088, 131, -16, -8, -128, -22
+ sprite gBattleAnimSpriteTemplate_83DA088, 131, -16, -8, -384, -31
wait
clearmonbg 1
blendoff
end
_81C9077:
- sprite gBattleAnimSpriteTemplate_83C1FB0, 2, 2, 6, 4
+ sprite gBattleAnimSpriteTemplate_83C1FB0, 2, 6, 4
pause 6
- createtask sub_80A7FA0, 2, 5, 1, 3, 0, 7, 1
+ createtask sub_80A7FA0, 2, 1, 3, 0, 7, 1
ret
Move_FIRE_SPIN: @ 81C9096
loadsprite 10029
panse_19 SE_W221B, 63
- createtask sub_80A7E7C, 5, 5, 1, 0, 2, 47, 1
+ createtask sub_80A7E7C, 5, 1, 0, 2, 47, 1
call _81C90BF
call _81C90BF
call _81C90BF
wait
end
_81C90BF:
- sprite gBattleAnimSpriteTemplate_83DACD0, 130, 7, 0, 28, 528, 30, 13, 50, 1
+ sprite gBattleAnimSpriteTemplate_83DACD0, 130, 0, 28, 528, 30, 13, 50, 1
pause 2
- sprite gBattleAnimSpriteTemplate_83DACD0, 130, 7, 0, 32, 480, 20, 16, -46, 1
+ sprite gBattleAnimSpriteTemplate_83DACD0, 130, 0, 32, 480, 20, 16, -46, 1
pause 2
- sprite gBattleAnimSpriteTemplate_83DACD0, 130, 7, 0, 33, 576, 20, 8, 42, 1
+ sprite gBattleAnimSpriteTemplate_83DACD0, 130, 0, 33, 576, 20, 8, 42, 1
pause 2
- sprite gBattleAnimSpriteTemplate_83DACD0, 130, 7, 0, 31, 400, 25, 11, -42, 1
+ sprite gBattleAnimSpriteTemplate_83DACD0, 130, 0, 31, 400, 25, 11, -42, 1
pause 2
- sprite gBattleAnimSpriteTemplate_83DACD0, 130, 7, 0, 28, 512, 25, 16, 46, 1
+ sprite gBattleAnimSpriteTemplate_83DACD0, 130, 0, 28, 512, 25, 16, 46, 1
pause 2
- sprite gBattleAnimSpriteTemplate_83DACD0, 130, 7, 0, 33, 464, 30, 15, -50, 1
+ sprite gBattleAnimSpriteTemplate_83DACD0, 130, 0, 33, 464, 30, 15, -50, 1
pause 2
ret
@@ -1426,56 +1426,56 @@ _81C916A:
jump _81C91FF
_81C918E:
pause 5
- createtask sub_80A7E7C, 2, 5, 1, 0, 3, 10, 1
+ createtask sub_80A7E7C, 2, 1, 0, 3, 10, 1
wait
clearmonbg 1
blendoff
wait
end
_81C91A7:
- sprite gBattleAnimSpriteTemplate_83D6B28, 2, 3, 40, -32, 0
+ sprite gBattleAnimSpriteTemplate_83D6B28, 2, 40, -32, 0
jump _81C916A
_81C91B9:
- sprite gBattleAnimSpriteTemplate_83D6B28, 2, 3, 40, -32, 1
+ sprite gBattleAnimSpriteTemplate_83D6B28, 2, 40, -32, 1
jump _81C916A
_81C91CB:
- sprite gBattleAnimSpriteTemplate_83DB3DC, 2, 7, 31, 3, 1, 10505, 4, 0, 0
+ sprite gBattleAnimSpriteTemplate_83DB3DC, 2, 31, 3, 1, 10505, 4, 0, 0
jump _81C918E
_81C91E5:
- sprite gBattleAnimSpriteTemplate_83DB3DC, 2, 7, 31, 3, 3, 10505, 4, 0, 0
+ sprite gBattleAnimSpriteTemplate_83DB3DC, 2, 31, 3, 3, 10505, 4, 0, 0
jump _81C918E
_81C91FF:
- sprite gBattleAnimSpriteTemplate_83DB3DC, 2, 7, 31, 3, 3, 10505, 4, 0, 0
+ sprite gBattleAnimSpriteTemplate_83DB3DC, 2, 31, 3, 3, 10505, 4, 0, 0
jump _81C918E
Move_SELF_DESTRUCT: @ 81C9219
loadsprite 10198
- createtask sub_80E2A38, 10, 5, 2, 1, 0, 9, 31
- createtask sub_80A7FA0, 5, 5, 4, 6, 0, 38, 1
- createtask sub_80A7FA0, 5, 5, 5, 6, 0, 38, 1
- createtask sub_80A7FA0, 5, 5, 6, 6, 0, 38, 1
- createtask sub_80A7FA0, 5, 5, 7, 6, 0, 38, 1
- createtask sub_80A7FA0, 5, 5, 8, 6, 0, 38, 1
+ createtask sub_80E2A38, 10, 2, 1, 0, 9, 31
+ createtask sub_80A7FA0, 5, 4, 6, 0, 38, 1
+ createtask sub_80A7FA0, 5, 5, 6, 0, 38, 1
+ createtask sub_80A7FA0, 5, 6, 6, 0, 38, 1
+ createtask sub_80A7FA0, 5, 7, 6, 0, 38, 1
+ createtask sub_80A7FA0, 5, 8, 6, 0, 38, 1
call _81C929F
call _81C929F
wait
- createtask sub_80E2A38, 10, 5, 2, 1, 9, 0, 31
+ createtask sub_80E2A38, 10, 2, 1, 9, 0, 31
end
_81C929F:
panse_19 SE_W120, 192
- sprite gBattleAnimSpriteTemplate_83D7828, 3, 4, 0, 0, 0, 1
+ sprite gBattleAnimSpriteTemplate_83D7828, 3, 0, 0, 0, 1
pause 6
panse_19 SE_W120, 192
- sprite gBattleAnimSpriteTemplate_83D7828, 3, 4, 24, -24, 0, 1
+ sprite gBattleAnimSpriteTemplate_83D7828, 3, 24, -24, 0, 1
pause 6
panse_19 SE_W120, 192
- sprite gBattleAnimSpriteTemplate_83D7828, 3, 4, -16, 16, 0, 1
+ sprite gBattleAnimSpriteTemplate_83D7828, 3, -16, 16, 0, 1
pause 6
panse_19 SE_W120, 192
- sprite gBattleAnimSpriteTemplate_83D7828, 3, 4, -24, -12, 0, 1
+ sprite gBattleAnimSpriteTemplate_83D7828, 3, -24, -12, 0, 1
pause 6
panse_19 SE_W120, 192
- sprite gBattleAnimSpriteTemplate_83D7828, 3, 4, 16, 16, 0, 1
+ sprite gBattleAnimSpriteTemplate_83D7828, 3, 16, 16, 0, 1
pause 6
ret
@@ -1485,19 +1485,19 @@ Move_SLAM: @ 81C9309
monbg 1
setalpha 12, 8
panse_19 SE_W004, 192
- sprite gBattleAnimSpriteTemplate_83C1FF8, 2, 5, 0, 20, 3, 0, 4
+ sprite gBattleAnimSpriteTemplate_83C1FF8, 2, 0, 20, 3, 0, 4
pause 1
- sprite gBattleAnimSpriteTemplate_83D69DC, 2, 2, 0, 0
+ sprite gBattleAnimSpriteTemplate_83D69DC, 2, 0, 0
pause 3
panse_19 SE_W025B, 63
- sprite gBattleAnimSpriteTemplate_83DB4A8, 3, 4, 0, 0, 1, 1
- sprite gBattleAnimSpriteTemplate_83C1FF8, 2, 5, 1, -12, 10, 0, 3
- sprite gBattleAnimSpriteTemplate_83C1FE0, 2, 3, 0, 0, 5
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 3, 0, 0, 1, 1
+ sprite gBattleAnimSpriteTemplate_83C1FF8, 2, 1, -12, 10, 0, 3
+ sprite gBattleAnimSpriteTemplate_83C1FE0, 2, 0, 0, 5
pause 3
- createtask sub_80A8154, 2, 5, 1, 0, 3, 6, 1
+ createtask sub_80A8154, 2, 1, 0, 3, 6, 1
wait
pause 5
- sprite gBattleAnimSpriteTemplate_83C1FE0, 2, 3, 1, 0, 6
+ sprite gBattleAnimSpriteTemplate_83C1FE0, 2, 1, 0, 6
wait
clearmonbg 1
blendoff
@@ -1506,30 +1506,30 @@ Move_SLAM: @ 81C9309
Move_VINE_WHIP: @ 81C9391
loadsprite 10287
panse_19 SE_W026, 192
- sprite gBattleAnimSpriteTemplate_83C1FB0, 2, 2, 4, 6
+ sprite gBattleAnimSpriteTemplate_83C1FB0, 2, 4, 6
pause 6
panse_19 SE_W010, 63
- sprite gBattleAnimSpriteTemplate_83D69F4, 130, 2, 0, 0
+ sprite gBattleAnimSpriteTemplate_83D69F4, 130, 0, 0
pause 6
- createtask sub_80A7FA0, 2, 5, 1, 2, 0, 6, 1
+ createtask sub_80A7FA0, 2, 1, 2, 0, 6, 1
end
Move_DRILL_PECK: @ 81C93C8
loadsprite 10135
loadsprite 10162
- sprite gBattleAnimSpriteTemplate_83D6DE4, 2, 1, 0
+ sprite gBattleAnimSpriteTemplate_83D6DE4, 2, 0
panse_19 SE_W029, 192
wait
pause 2
- sprite gBattleAnimSpriteTemplate_83D6DE4, 2, 1, 1
+ sprite gBattleAnimSpriteTemplate_83D6DE4, 2, 1
pause 2
panse_1C SE_W030, 63, 4, 8
createtask sub_80DB0E8, 5
- createtask sub_80A7FA0, 2, 5, 1, 4, 0, 18, 1
+ createtask sub_80A7FA0, 2, 1, 4, 0, 18, 1
wait
- sprite gBattleAnimSpriteTemplate_83D6DE4, 2, 1, 2
+ sprite gBattleAnimSpriteTemplate_83D6DE4, 2, 2
wait
- sprite gBattleAnimSpriteTemplate_83C1FE0, 2, 3, 0, 0, 6
+ sprite gBattleAnimSpriteTemplate_83C1FE0, 2, 0, 0, 6
wait
end
@@ -1539,34 +1539,34 @@ Move_WATERFALL: @ 81C9421
loadsprite 10141
monbg 3
setalpha 12, 8
- createtask sub_80A7E7C, 5, 5, 0, 0, 2, 23, 1
+ createtask sub_80A7E7C, 5, 0, 0, 2, 23, 1
pause 5
panse_19 SE_W152, 192
- sprite gBattleAnimSpriteTemplate_83D9348, 2, 4, 10, 10, 25, 0
+ sprite gBattleAnimSpriteTemplate_83D9348, 2, 10, 10, 25, 0
pause 4
panse_19 SE_W152, 192
- sprite gBattleAnimSpriteTemplate_83D9348, 2, 4, -15, 0, 25, 0
+ sprite gBattleAnimSpriteTemplate_83D9348, 2, -15, 0, 25, 0
pause 4
panse_19 SE_W152, 192
- sprite gBattleAnimSpriteTemplate_83D9348, 2, 4, 20, 10, 25, 0
+ sprite gBattleAnimSpriteTemplate_83D9348, 2, 20, 10, 25, 0
pause 4
panse_19 SE_W152, 192
- sprite gBattleAnimSpriteTemplate_83D9348, 2, 4, 0, -10, 25, 0
+ sprite gBattleAnimSpriteTemplate_83D9348, 2, 0, -10, 25, 0
pause 4
panse_19 SE_W152, 192
- sprite gBattleAnimSpriteTemplate_83D9348, 2, 4, -10, 15, 25, 0
+ sprite gBattleAnimSpriteTemplate_83D9348, 2, -10, 15, 25, 0
pause 4
panse_19 SE_W152, 192
- sprite gBattleAnimSpriteTemplate_83D9348, 2, 4, 25, 20, 25, 0
+ sprite gBattleAnimSpriteTemplate_83D9348, 2, 25, 20, 25, 0
pause 4
panse_19 SE_W152, 192
- sprite gBattleAnimSpriteTemplate_83D9348, 2, 4, -20, 20, 25, 0
+ sprite gBattleAnimSpriteTemplate_83D9348, 2, -20, 20, 25, 0
pause 4
panse_19 SE_W152, 192
- sprite gBattleAnimSpriteTemplate_83D9348, 2, 4, 12, 0, 25, 0
+ sprite gBattleAnimSpriteTemplate_83D9348, 2, 12, 0, 25, 0
wait
pause 10
- sprite gBattleAnimSpriteTemplate_83C1FB0, 2, 2, 6, 5
+ sprite gBattleAnimSpriteTemplate_83C1FB0, 2, 6, 5
pause 6
call _81C9502
wait
@@ -1575,86 +1575,86 @@ Move_WATERFALL: @ 81C9421
end
_81C9502:
panse_19 SE_W127, 63
- createtask sub_80A7FA0, 5, 5, 1, 4, 0, 17, 1
- sprite gBattleAnimSpriteTemplate_83DB4D8, 3, 4, 0, 20, 1, 1
- sprite gBattleAnimSpriteTemplate_83D9360, 4, 2, 0, 20
- sprite gBattleAnimSpriteTemplate_83D9360, 4, 2, 0, 20
- pause 2
- sprite gBattleAnimSpriteTemplate_83DB4D8, 3, 4, 0, 15, 1, 1
- sprite gBattleAnimSpriteTemplate_83D9360, 4, 2, 0, 15
- sprite gBattleAnimSpriteTemplate_83D9360, 4, 2, 0, 15
- pause 2
- sprite gBattleAnimSpriteTemplate_83DB4D8, 3, 4, 0, 10, 1, 1
- sprite gBattleAnimSpriteTemplate_83D9360, 4, 2, 0, 10
- sprite gBattleAnimSpriteTemplate_83D9360, 4, 2, 0, 10
- pause 2
- sprite gBattleAnimSpriteTemplate_83DB4D8, 3, 4, 0, 5, 1, 1
- sprite gBattleAnimSpriteTemplate_83D9360, 4, 2, 0, 5
- sprite gBattleAnimSpriteTemplate_83D9360, 4, 2, 0, 5
- pause 2
- sprite gBattleAnimSpriteTemplate_83DB4D8, 3, 4, 0, 0, 1, 1
- sprite gBattleAnimSpriteTemplate_83D9360, 4, 2, 0, 0
- sprite gBattleAnimSpriteTemplate_83D9360, 4, 2, 0, 0
- pause 2
- sprite gBattleAnimSpriteTemplate_83DB4D8, 3, 4, 0, -5, 1, 1
- sprite gBattleAnimSpriteTemplate_83D9360, 4, 2, 0, -5
- sprite gBattleAnimSpriteTemplate_83D9360, 4, 2, 0, -5
- pause 2
- sprite gBattleAnimSpriteTemplate_83DB4D8, 3, 4, 0, -10, 1, 1
- sprite gBattleAnimSpriteTemplate_83D9360, 4, 2, 0, -10
- sprite gBattleAnimSpriteTemplate_83D9360, 4, 2, 0, -10
- pause 2
- sprite gBattleAnimSpriteTemplate_83DB4D8, 3, 4, 0, -15, 1, 1
- sprite gBattleAnimSpriteTemplate_83D9360, 4, 2, 0, -15
- sprite gBattleAnimSpriteTemplate_83D9360, 4, 2, 0, -15
- pause 2
- sprite gBattleAnimSpriteTemplate_83DB4D8, 3, 4, 0, -20, 1, 1
- sprite gBattleAnimSpriteTemplate_83D9360, 4, 2, 0, -20
- sprite gBattleAnimSpriteTemplate_83D9360, 4, 2, 0, -20
+ createtask sub_80A7FA0, 5, 1, 4, 0, 17, 1
+ sprite gBattleAnimSpriteTemplate_83DB4D8, 3, 0, 20, 1, 1
+ sprite gBattleAnimSpriteTemplate_83D9360, 4, 0, 20
+ sprite gBattleAnimSpriteTemplate_83D9360, 4, 0, 20
+ pause 2
+ sprite gBattleAnimSpriteTemplate_83DB4D8, 3, 0, 15, 1, 1
+ sprite gBattleAnimSpriteTemplate_83D9360, 4, 0, 15
+ sprite gBattleAnimSpriteTemplate_83D9360, 4, 0, 15
+ pause 2
+ sprite gBattleAnimSpriteTemplate_83DB4D8, 3, 0, 10, 1, 1
+ sprite gBattleAnimSpriteTemplate_83D9360, 4, 0, 10
+ sprite gBattleAnimSpriteTemplate_83D9360, 4, 0, 10
+ pause 2
+ sprite gBattleAnimSpriteTemplate_83DB4D8, 3, 0, 5, 1, 1
+ sprite gBattleAnimSpriteTemplate_83D9360, 4, 0, 5
+ sprite gBattleAnimSpriteTemplate_83D9360, 4, 0, 5
+ pause 2
+ sprite gBattleAnimSpriteTemplate_83DB4D8, 3, 0, 0, 1, 1
+ sprite gBattleAnimSpriteTemplate_83D9360, 4, 0, 0
+ sprite gBattleAnimSpriteTemplate_83D9360, 4, 0, 0
+ pause 2
+ sprite gBattleAnimSpriteTemplate_83DB4D8, 3, 0, -5, 1, 1
+ sprite gBattleAnimSpriteTemplate_83D9360, 4, 0, -5
+ sprite gBattleAnimSpriteTemplate_83D9360, 4, 0, -5
+ pause 2
+ sprite gBattleAnimSpriteTemplate_83DB4D8, 3, 0, -10, 1, 1
+ sprite gBattleAnimSpriteTemplate_83D9360, 4, 0, -10
+ sprite gBattleAnimSpriteTemplate_83D9360, 4, 0, -10
+ pause 2
+ sprite gBattleAnimSpriteTemplate_83DB4D8, 3, 0, -15, 1, 1
+ sprite gBattleAnimSpriteTemplate_83D9360, 4, 0, -15
+ sprite gBattleAnimSpriteTemplate_83D9360, 4, 0, -15
+ pause 2
+ sprite gBattleAnimSpriteTemplate_83DB4D8, 3, 0, -20, 1, 1
+ sprite gBattleAnimSpriteTemplate_83D9360, 4, 0, -20
+ sprite gBattleAnimSpriteTemplate_83D9360, 4, 0, -20
ret
Move_EXPLOSION: @ 81C9675
loadsprite 10198
- sprite gBattleAnimSpriteTemplate_83DB3DC, 2, 7, 1, 8, 9, 8474, 8, 0, 8
- createtask sub_80A7FA0, 5, 5, 4, 8, 0, 40, 1
- createtask sub_80A7FA0, 5, 5, 5, 8, 0, 40, 1
- createtask sub_80A7FA0, 5, 5, 6, 8, 0, 40, 1
- createtask sub_80A7FA0, 5, 5, 7, 8, 0, 40, 1
- createtask sub_80A7FA0, 5, 5, 8, 8, 0, 40, 1
+ sprite gBattleAnimSpriteTemplate_83DB3DC, 2, 1, 8, 9, 8474, 8, 0, 8
+ createtask sub_80A7FA0, 5, 4, 8, 0, 40, 1
+ createtask sub_80A7FA0, 5, 5, 8, 0, 40, 1
+ createtask sub_80A7FA0, 5, 6, 8, 0, 40, 1
+ createtask sub_80A7FA0, 5, 7, 8, 0, 40, 1
+ createtask sub_80A7FA0, 5, 8, 8, 0, 40, 1
call _81C9712
call _81C9712
wait
- createtask sub_80E2A38, 10, 5, 1, 1, 16, 16, 32767
+ createtask sub_80E2A38, 10, 1, 1, 16, 16, 32767
pause 50
- createtask sub_80E2A38, 10, 5, 1, 3, 16, 0, 32767
+ createtask sub_80E2A38, 10, 1, 3, 16, 0, 32767
end
_81C9712:
panse_19 SE_W153, 192
- sprite gBattleAnimSpriteTemplate_83D7828, 3, 4, 0, 0, 0, 1
+ sprite gBattleAnimSpriteTemplate_83D7828, 3, 0, 0, 0, 1
pause 6
panse_19 SE_W153, 192
- sprite gBattleAnimSpriteTemplate_83D7828, 3, 4, 24, -24, 0, 1
+ sprite gBattleAnimSpriteTemplate_83D7828, 3, 24, -24, 0, 1
pause 6
panse_19 SE_W153, 192
- sprite gBattleAnimSpriteTemplate_83D7828, 3, 4, -16, 16, 0, 1
+ sprite gBattleAnimSpriteTemplate_83D7828, 3, -16, 16, 0, 1
pause 6
panse_19 SE_W153, 192
- sprite gBattleAnimSpriteTemplate_83D7828, 3, 4, -24, -12, 0, 1
+ sprite gBattleAnimSpriteTemplate_83D7828, 3, -24, -12, 0, 1
pause 6
panse_19 SE_W153, 192
- sprite gBattleAnimSpriteTemplate_83D7828, 3, 4, 16, 16, 0, 1
+ sprite gBattleAnimSpriteTemplate_83D7828, 3, 16, 16, 0, 1
pause 6
ret
Move_DEFENSE_CURL: @ 81C977C
loadsprite 10234
panse_1C SE_W161, 192, 18, 3
- createtask sub_80E0E24, 5, 2, 0, 0
+ createtask sub_80E0E24, 5, 0, 0
createtask sub_812D350, 5
wait
- sprite gBattleAnimSpriteTemplate_8402498, 2, 4, 0, 6, 0, 1
+ sprite gBattleAnimSpriteTemplate_8402498, 2, 0, 6, 0, 1
wait
- createtask sub_80E0E24, 5, 2, 0, 1
+ createtask sub_80E0E24, 5, 0, 1
wait
end
@@ -1663,23 +1663,23 @@ Move_PROTECT: @ 81C97B5
monbg 2
monbgprio_28 0
panse_1D SE_W115, 192, 16
- sprite gBattleAnimSpriteTemplate_83D6BE8, 2, 3, 24, 0, 90
+ sprite gBattleAnimSpriteTemplate_83D6BE8, 2, 24, 0, 90
wait
clearmonbg 2
end
Move_DETECT: @ 81C97D2
loadsprite 10071
- sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 5, 1, 2, 0, 9, 0
+ sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 1, 2, 0, 9, 0
wait
- createtask sub_80E2A38, 10, 5, 2, 1, 0, 9, 32767
+ createtask sub_80E2A38, 10, 2, 1, 0, 9, 32767
pause 18
panse_19 SE_W197, 192
- sprite gBattleAnimSpriteTemplate_83930F4, 13, 2, 20, -20
+ sprite gBattleAnimSpriteTemplate_83930F4, 13, 20, -20
wait
pause 10
- sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 5, 1, 2, 9, 0, 0
- createtask sub_80E2A38, 10, 5, 2, 2, 9, 0, 32767
+ sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 1, 2, 9, 0, 0
+ createtask sub_80E2A38, 10, 2, 2, 9, 0, 32767
wait
end
@@ -1700,92 +1700,92 @@ _81C985F:
end
_81C9864:
panse_19 SE_W082, 192
- createtask sub_80A7FA0, 5, 5, 0, 1, 0, 15, 1
- createtask sub_80E2A38, 10, 5, 2, 3, 0, 9, 31
+ createtask sub_80A7FA0, 5, 0, 1, 0, 15, 1
+ createtask sub_80E2A38, 10, 2, 3, 0, 9, 31
wait
pause 20
panse_19 SE_W207B, 192
- sprite gBattleAnimSpriteTemplate_83D7798, 2, 3, 0, 20, -28
+ sprite gBattleAnimSpriteTemplate_83D7798, 2, 0, 20, -28
wait
panse_19 SE_W207B, 192
- sprite gBattleAnimSpriteTemplate_83D7798, 2, 3, 0, 20, -28
+ sprite gBattleAnimSpriteTemplate_83D7798, 2, 0, 20, -28
wait
pause 10
- createtask sub_80A8B88, 5, 5, 0, 16, 6144, 8, 0
+ createtask sub_80A8B88, 5, 0, 16, 6144, 8, 0
pause 5
- createtask sub_80A7FA0, 5, 5, 1, 4, 0, 30, 1
- sprite gBattleAnimSpriteTemplate_83DB4A8, 3, 4, 0, 0, 1, 0
+ createtask sub_80A7FA0, 5, 1, 4, 0, 30, 1
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 3, 0, 0, 1, 0
panse_19 SE_W004, 63
pause 5
- sprite gBattleAnimSpriteTemplate_83DB4A8, 3, 4, 24, 8, 1, 0
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 3, 24, 8, 1, 0
panse_19 SE_W004, 63
pause 5
- sprite gBattleAnimSpriteTemplate_83DB4A8, 3, 4, -24, -16, 1, 0
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 3, -24, -16, 1, 0
panse_19 SE_W004, 63
pause 5
- sprite gBattleAnimSpriteTemplate_83DB4A8, 3, 4, 8, 4, 1, 0
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 3, 8, 4, 1, 0
panse_19 SE_W004, 63
pause 5
- sprite gBattleAnimSpriteTemplate_83DB4A8, 3, 4, -16, 19, 1, 0
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 3, -16, 19, 1, 0
panse_19 SE_W004, 63
pause 5
- sprite gBattleAnimSpriteTemplate_83DB4A8, 3, 4, 18, -18, 1, 0
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 3, 18, -18, 1, 0
panse_19 SE_W004, 63
wait
- createtask sub_80E2A38, 10, 5, 2, 3, 9, 0, 31
+ createtask sub_80E2A38, 10, 2, 3, 9, 0, 31
jump _81C985F
_81C996A:
panse_19 SE_W082, 192
- createtask sub_80A7FA0, 5, 5, 0, 1, 0, 15, 1
- createtask sub_80E2A38, 10, 5, 2, 3, 0, 9, 31
+ createtask sub_80A7FA0, 5, 0, 1, 0, 15, 1
+ createtask sub_80E2A38, 10, 2, 3, 0, 9, 31
wait
pause 20
panse_19 SE_W207B, 192
- sprite gBattleAnimSpriteTemplate_83D7798, 2, 3, 0, 20, -28
+ sprite gBattleAnimSpriteTemplate_83D7798, 2, 0, 20, -28
wait
pause 5
createtask sub_812E498, 5
pause 7
panse_19 SE_W004, 63
- sprite gBattleAnimSpriteTemplate_83DB4A8, 3, 4, 0, 8, 1, 1
- createtask sub_80A7FA0, 5, 5, 1, 4, 0, 6, 1
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 3, 0, 8, 1, 1
+ createtask sub_80A7FA0, 5, 1, 4, 0, 6, 1
pause 14
panse_19 SE_W004, 63
- sprite gBattleAnimSpriteTemplate_83DB4A8, 3, 4, 12, -6, 1, 1
- createtask sub_80A7FA0, 5, 5, 1, 4, 0, 6, 1
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 3, 12, -6, 1, 1
+ createtask sub_80A7FA0, 5, 1, 4, 0, 6, 1
pause 14
panse_19 SE_W004, 63
- sprite gBattleAnimSpriteTemplate_83DB4A8, 3, 4, -12, -6, 1, 1
- createtask sub_80A7FA0, 5, 5, 1, 4, 0, 6, 1
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 3, -12, -6, 1, 1
+ createtask sub_80A7FA0, 5, 1, 4, 0, 6, 1
wait
- createtask sub_80E2A38, 10, 5, 2, 3, 9, 0, 31
+ createtask sub_80E2A38, 10, 2, 3, 9, 0, 31
jump _81C985F
_81C9A37:
panse_19 SE_W207B, 192
- sprite gBattleAnimSpriteTemplate_83D7798, 2, 3, 0, 20, -28
+ sprite gBattleAnimSpriteTemplate_83D7798, 2, 0, 20, -28
wait
pause 5
- sprite gBattleAnimSpriteTemplate_83C1FB0, 2, 2, 4, 4
+ sprite gBattleAnimSpriteTemplate_83C1FB0, 2, 4, 4
pause 6
panse_19 SE_W004, 63
- sprite gBattleAnimSpriteTemplate_83DB4A8, 2, 4, 10, 4, 1, 1
- createtask sub_80A7FA0, 2, 5, 1, 3, 0, 6, 1
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 2, 10, 4, 1, 1
+ createtask sub_80A7FA0, 2, 1, 3, 0, 6, 1
wait
- sprite gBattleAnimSpriteTemplate_83C1FB0, 2, 2, 4, 4
+ sprite gBattleAnimSpriteTemplate_83C1FB0, 2, 4, 4
pause 6
panse_19 SE_W004, 63
- sprite gBattleAnimSpriteTemplate_83DB4A8, 2, 4, -10, -4, 1, 2
- createtask sub_80A7FA0, 2, 5, 1, 3, 0, 6, 1
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 2, -10, -4, 1, 2
+ createtask sub_80A7FA0, 2, 1, 3, 0, 6, 1
jump _81C985F
_81C9AB3:
- sprite gBattleAnimSpriteTemplate_8402630, 2, 2, 20, -28
+ sprite gBattleAnimSpriteTemplate_8402630, 2, 20, -28
wait
pause 10
- sprite gBattleAnimSpriteTemplate_83C1FB0, 2, 2, 10, 2
+ sprite gBattleAnimSpriteTemplate_83C1FB0, 2, 10, 2
pause 12
panse_19 SE_W004, 63
- sprite gBattleAnimSpriteTemplate_83DB4A8, 2, 4, 0, 0, 1, 2
- createtask sub_80A7FA0, 2, 5, 1, 1, 0, 6, 1
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 2, 0, 0, 1, 2
+ createtask sub_80A7FA0, 2, 1, 1, 0, 6, 1
jump _81C985F
Move_SAFEGUARD: @ 81C9AF7
@@ -1800,7 +1800,7 @@ Move_SAFEGUARD: @ 81C9AF7
sprite gBattleAnimSpriteTemplate_83D7D74, 2
wait
panse_19 SE_REAPOKE, 192
- createtask sub_80E1F8C, 2, 6, 10, 0, 2, 0, 10, 32767
+ createtask sub_80E1F8C, 2, 10, 0, 2, 0, 10, 32767
wait
clearmonbg 2
blendoff
@@ -1808,26 +1808,26 @@ Move_SAFEGUARD: @ 81C9AF7
Move_PAIN_SPLIT: @ 81C9B39
loadsprite 10239
- sprite gBattleAnimSpriteTemplate_84026F0, 2, 3, -8, -42, 0
- sprite gBattleAnimSpriteTemplate_84026F0, 130, 3, -8, -42, 1
+ sprite gBattleAnimSpriteTemplate_84026F0, 2, -8, -42, 0
+ sprite gBattleAnimSpriteTemplate_84026F0, 130, -8, -42, 1
pause 10
panse_19 SE_W207B, 0
- createtask sub_812EB10, 2, 2, 0, 0
- createtask sub_812EB10, 2, 2, 1, 0
+ createtask sub_812EB10, 2, 0, 0
+ createtask sub_812EB10, 2, 1, 0
wait
- sprite gBattleAnimSpriteTemplate_84026F0, 2, 3, -24, -42, 0
- sprite gBattleAnimSpriteTemplate_84026F0, 130, 3, -24, -42, 1
+ sprite gBattleAnimSpriteTemplate_84026F0, 2, -24, -42, 0
+ sprite gBattleAnimSpriteTemplate_84026F0, 130, -24, -42, 1
pause 10
panse_19 SE_W207B, 0
- createtask sub_812EB10, 2, 2, 0, 1
- createtask sub_812EB10, 2, 2, 1, 1
+ createtask sub_812EB10, 2, 0, 1
+ createtask sub_812EB10, 2, 1, 1
wait
- sprite gBattleAnimSpriteTemplate_84026F0, 2, 3, 8, -42, 0
- sprite gBattleAnimSpriteTemplate_84026F0, 130, 3, 8, -42, 1
+ sprite gBattleAnimSpriteTemplate_84026F0, 2, 8, -42, 0
+ sprite gBattleAnimSpriteTemplate_84026F0, 130, 8, -42, 1
pause 10
panse_19 SE_W207B, 0
- createtask sub_812EB10, 2, 2, 0, 2
- createtask sub_812EB10, 2, 2, 1, 2
+ createtask sub_812EB10, 2, 0, 2
+ createtask sub_812EB10, 2, 1, 2
end
Move_VICE_GRIP: @ 81C9BE1
@@ -1836,11 +1836,11 @@ Move_VICE_GRIP: @ 81C9BE1
monbg 3
setalpha 12, 8
panse_19 SE_W011, 63
- sprite gBattleAnimSpriteTemplate_83D769C, 2, 1, 0
- sprite gBattleAnimSpriteTemplate_83D769C, 2, 1, 1
+ sprite gBattleAnimSpriteTemplate_83D769C, 2, 0
+ sprite gBattleAnimSpriteTemplate_83D769C, 2, 1
pause 9
- sprite gBattleAnimSpriteTemplate_83DB4A8, 1, 4, 0, 0, 1, 2
- createtask sub_80A7FA0, 5, 5, 1, 2, 0, 5, 1
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 1, 0, 0, 1, 2
+ createtask sub_80A7FA0, 5, 1, 2, 0, 5, 1
wait
clearmonbg 3
blendoff
@@ -1854,15 +1854,15 @@ Move_GUILLOTINE: @ 81C9C29
fadetobg_25 12, 13, 14
waitbgfadein
panse_19 SE_W011, 63
- sprite gBattleAnimSpriteTemplate_83D76DC, 2, 1, 0
- sprite gBattleAnimSpriteTemplate_83D76DC, 2, 1, 1
- createtask sub_80E2A38, 10, 5, 4, 2, 0, 16, 0
+ sprite gBattleAnimSpriteTemplate_83D76DC, 2, 0
+ sprite gBattleAnimSpriteTemplate_83D76DC, 2, 1
+ createtask sub_80E2A38, 10, 4, 2, 0, 16, 0
pause 9
- createtask sub_80A7FA0, 5, 5, 1, 2, 0, 23, 1
+ createtask sub_80A7FA0, 5, 1, 2, 0, 23, 1
pause 46
- createtask sub_80A7FA0, 5, 5, 1, 4, 0, 8, 1
- sprite gBattleAnimSpriteTemplate_83DB4A8, 3, 4, 0, 0, 1, 0
- sprite gBattleAnimSpriteTemplate_83DB3DC, 2, 7, 31, 3, 1, 0, 8, 0, 0
+ createtask sub_80A7FA0, 5, 1, 4, 0, 8, 1
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 3, 0, 0, 1, 0
+ sprite gBattleAnimSpriteTemplate_83DB3DC, 2, 31, 3, 1, 0, 8, 0, 0
panse_19 SE_W013, 63
wait
clearmonbg 3
@@ -1878,12 +1878,12 @@ Move_PAY_DAY: @ 81C9CB5
monbgprio_28 1
setalpha 12, 8
panse_19 SE_W013B, 192
- sprite gBattleAnimSpriteTemplate_83D75E4, 2, 5, 20, 0, 0, 0, 1152
+ sprite gBattleAnimSpriteTemplate_83D75E4, 2, 20, 0, 0, 0, 1152
wait
panse_19 SE_W006, 63
- sprite gBattleAnimSpriteTemplate_83DB4A8, 1, 4, 0, 0, 1, 2
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 1, 0, 0, 1, 2
sprite gBattleAnimSpriteTemplate_83D75FC, 2
- createtask sub_80A7FA0, 2, 5, 1, 1, 0, 6, 1
+ createtask sub_80A7FA0, 2, 1, 1, 0, 6, 1
wait
clearmonbg 1
blendoff
@@ -1892,90 +1892,90 @@ Move_PAY_DAY: @ 81C9CB5
Move_OUTRAGE: @ 81C9D08
loadsprite 10029
panse_1C SE_W082, 192, 8, 3
- createtask sub_80E1F8C, 2, 6, 7, 2, 5, 3, 8, 430
- createtask sub_80A8500, 2, 5, 0, 12, 6, 5, 4
+ createtask sub_80E1F8C, 2, 7, 2, 5, 3, 8, 430
+ createtask sub_80A8500, 2, 0, 12, 6, 5, 4
pause 0
- sprite gBattleAnimSpriteTemplate_83DAFCC, 130, 6, 0, 0, 30, 1280, 0, 3
+ sprite gBattleAnimSpriteTemplate_83DAFCC, 130, 0, 0, 30, 1280, 0, 3
pause 0
- sprite gBattleAnimSpriteTemplate_83DAFCC, 130, 6, 0, 0, 30, -1280, 0, 3
+ sprite gBattleAnimSpriteTemplate_83DAFCC, 130, 0, 0, 30, -1280, 0, 3
pause 0
- sprite gBattleAnimSpriteTemplate_83DAFCC, 130, 6, 0, 0, 30, 0, 1280, 3
+ sprite gBattleAnimSpriteTemplate_83DAFCC, 130, 0, 0, 30, 0, 1280, 3
pause 0
- sprite gBattleAnimSpriteTemplate_83DAFCC, 130, 6, 0, 0, 30, 0, -1280, 3
+ sprite gBattleAnimSpriteTemplate_83DAFCC, 130, 0, 0, 30, 0, -1280, 3
pause 0
- createtask sub_80A7FA0, 2, 5, 1, 2, 0, 40, 1
- sprite gBattleAnimSpriteTemplate_83DAFCC, 130, 6, 0, 0, 30, 1280, 768, 3
+ createtask sub_80A7FA0, 2, 1, 2, 0, 40, 1
+ sprite gBattleAnimSpriteTemplate_83DAFCC, 130, 0, 0, 30, 1280, 768, 3
pause 0
- sprite gBattleAnimSpriteTemplate_83DAFCC, 130, 6, 0, 0, 30, -1280, 768, 3
+ sprite gBattleAnimSpriteTemplate_83DAFCC, 130, 0, 0, 30, -1280, 768, 3
pause 0
- sprite gBattleAnimSpriteTemplate_83DAFCC, 130, 6, 0, 0, 30, 1280, -768, 3
+ sprite gBattleAnimSpriteTemplate_83DAFCC, 130, 0, 0, 30, 1280, -768, 3
pause 0
- sprite gBattleAnimSpriteTemplate_83DAFCC, 130, 6, 0, 0, 30, -1280, -768, 3
+ sprite gBattleAnimSpriteTemplate_83DAFCC, 130, 0, 0, 30, -1280, -768, 3
pause 0
- sprite gBattleAnimSpriteTemplate_83DAFCC, 130, 6, 0, 0, 30, 1280, 0, 3
+ sprite gBattleAnimSpriteTemplate_83DAFCC, 130, 0, 0, 30, 1280, 0, 3
call _81C9E0F
call _81C9E0F
wait
end
_81C9E0F:
pause 3
- sprite gBattleAnimSpriteTemplate_83DAFCC, 130, 6, 0, 0, 30, -1280, 0, 3
+ sprite gBattleAnimSpriteTemplate_83DAFCC, 130, 0, 0, 30, -1280, 0, 3
pause 0
- sprite gBattleAnimSpriteTemplate_83DAFCC, 130, 6, 0, 0, 30, 0, 1280, 3
+ sprite gBattleAnimSpriteTemplate_83DAFCC, 130, 0, 0, 30, 0, 1280, 3
pause 0
- sprite gBattleAnimSpriteTemplate_83DAFCC, 130, 6, 0, 0, 30, 0, -1280, 3
+ sprite gBattleAnimSpriteTemplate_83DAFCC, 130, 0, 0, 30, 0, -1280, 3
pause 0
- sprite gBattleAnimSpriteTemplate_83DAFCC, 130, 6, 0, 0, 30, 1280, 768, 3
+ sprite gBattleAnimSpriteTemplate_83DAFCC, 130, 0, 0, 30, 1280, 768, 3
pause 0
- sprite gBattleAnimSpriteTemplate_83DAFCC, 130, 6, 0, 0, 30, -1280, 768, 3
+ sprite gBattleAnimSpriteTemplate_83DAFCC, 130, 0, 0, 30, -1280, 768, 3
pause 0
- sprite gBattleAnimSpriteTemplate_83DAFCC, 130, 6, 0, 0, 30, 1280, -768, 3
+ sprite gBattleAnimSpriteTemplate_83DAFCC, 130, 0, 0, 30, 1280, -768, 3
pause 0
- sprite gBattleAnimSpriteTemplate_83DAFCC, 130, 6, 0, 0, 30, -1280, -768, 3
+ sprite gBattleAnimSpriteTemplate_83DAFCC, 130, 0, 0, 30, -1280, -768, 3
ret
Move_SPARK: @ 81C9EA3
loadsprite 10135
loadsprite 10011
pause 0
- createtask sub_80E1F8C, 2, 6, 3, -31, 1, 5, 5, 23551
+ createtask sub_80E1F8C, 2, 3, -31, 1, 5, 5, 23551
panse_19 SE_W085B, 192
- sprite gBattleAnimSpriteTemplate_83D985C, 0, 7, 32, 24, 190, 12, 0, 1, 0
+ sprite gBattleAnimSpriteTemplate_83D985C, 0, 32, 24, 190, 12, 0, 1, 0
pause 0
- sprite gBattleAnimSpriteTemplate_83D985C, 0, 7, 80, 24, 22, 12, 0, 1, 0
- sprite gBattleAnimSpriteTemplate_83D985C, 0, 7, 156, 24, 121, 13, 0, 1, 1
+ sprite gBattleAnimSpriteTemplate_83D985C, 0, 80, 24, 22, 12, 0, 1, 0
+ sprite gBattleAnimSpriteTemplate_83D985C, 0, 156, 24, 121, 13, 0, 1, 1
pause 0
- createtask sub_80E1F8C, 2, 6, 3, -31, 1, 0, 0, 23551
+ createtask sub_80E1F8C, 2, 3, -31, 1, 0, 0, 23551
pause 10
- createtask sub_80E1F8C, 2, 6, 3, -31, 1, 5, 5, 23551
+ createtask sub_80E1F8C, 2, 3, -31, 1, 5, 5, 23551
panse_19 SE_W085B, 192
- sprite gBattleAnimSpriteTemplate_83D985C, 0, 7, 100, 24, 60, 10, 0, 1, 0
- sprite gBattleAnimSpriteTemplate_83D985C, 0, 7, 170, 24, 42, 11, 0, 1, 1
+ sprite gBattleAnimSpriteTemplate_83D985C, 0, 100, 24, 60, 10, 0, 1, 0
+ sprite gBattleAnimSpriteTemplate_83D985C, 0, 170, 24, 42, 11, 0, 1, 1
pause 0
- sprite gBattleAnimSpriteTemplate_83D985C, 0, 7, 238, 24, 165, 10, 0, 1, 1
+ sprite gBattleAnimSpriteTemplate_83D985C, 0, 238, 24, 165, 10, 0, 1, 1
pause 0
- createtask sub_80E1F8C, 2, 6, 3, -31, 1, 0, 0, 23551
+ createtask sub_80E1F8C, 2, 3, -31, 1, 0, 0, 23551
pause 20
- createtask sub_80E1F8C, 2, 6, 3, -31, 1, 7, 7, 23551
+ createtask sub_80E1F8C, 2, 3, -31, 1, 7, 7, 23551
panse_19 SE_W085B, 192
- sprite gBattleAnimSpriteTemplate_83D9908, 4, 8, 0, 0, 32, 12, 0, 20, 0, 0
- sprite gBattleAnimSpriteTemplate_83D9908, 4, 8, 0, 0, 32, 12, 64, 20, 1, 0
- sprite gBattleAnimSpriteTemplate_83D9908, 4, 8, 0, 0, 32, 12, 128, 20, 0, 0
- sprite gBattleAnimSpriteTemplate_83D9908, 4, 8, 0, 0, 32, 12, 192, 20, 2, 0
- sprite gBattleAnimSpriteTemplate_83D9908, 4, 8, 0, 0, 16, 12, 32, 20, 0, 0
- sprite gBattleAnimSpriteTemplate_83D9908, 4, 8, 0, 0, 16, 12, 96, 20, 1, 0
- sprite gBattleAnimSpriteTemplate_83D9908, 4, 8, 0, 0, 16, 12, 160, 20, 0, 0
- sprite gBattleAnimSpriteTemplate_83D9908, 4, 8, 0, 0, 16, 12, 224, 20, 2, 0
+ sprite gBattleAnimSpriteTemplate_83D9908, 4, 0, 0, 32, 12, 0, 20, 0, 0
+ sprite gBattleAnimSpriteTemplate_83D9908, 4, 0, 0, 32, 12, 64, 20, 1, 0
+ sprite gBattleAnimSpriteTemplate_83D9908, 4, 0, 0, 32, 12, 128, 20, 0, 0
+ sprite gBattleAnimSpriteTemplate_83D9908, 4, 0, 0, 32, 12, 192, 20, 2, 0
+ sprite gBattleAnimSpriteTemplate_83D9908, 4, 0, 0, 16, 12, 32, 20, 0, 0
+ sprite gBattleAnimSpriteTemplate_83D9908, 4, 0, 0, 16, 12, 96, 20, 1, 0
+ sprite gBattleAnimSpriteTemplate_83D9908, 4, 0, 0, 16, 12, 160, 20, 0, 0
+ sprite gBattleAnimSpriteTemplate_83D9908, 4, 0, 0, 16, 12, 224, 20, 2, 0
pause 4
wait
- createtask sub_80E1F8C, 2, 6, 3, -31, 1, 0, 0, 23551
- sprite gBattleAnimSpriteTemplate_83C1FB0, 2, 2, 4, 4
+ createtask sub_80E1F8C, 2, 3, -31, 1, 0, 0, 23551
+ sprite gBattleAnimSpriteTemplate_83C1FB0, 2, 4, 4
pause 4
panse_19 SE_W063, 63
- sprite gBattleAnimSpriteTemplate_83DB4A8, 130, 4, 0, 0, 1, 2
- createtask sub_80A7E7C, 2, 5, 1, 3, 0, 6, 1
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 130, 0, 0, 1, 2
+ createtask sub_80A7E7C, 2, 1, 3, 0, 6, 1
wait
- createtask sub_80E1F8C, 2, 6, 4, -31, 2, 0, 6, 23551
+ createtask sub_80E1F8C, 2, 4, -31, 2, 0, 6, 23551
call Unknown_81D6100
wait
end
@@ -1983,30 +1983,30 @@ Move_SPARK: @ 81C9EA3
Move_ATTRACT: @ 81CA0BA
loadsprite 10216
panse_1C SE_W204, 192, 12, 3
- createtask sub_80A8B88, 5, 5, 0, 12, 4096, 4, 0
+ createtask sub_80A8B88, 5, 0, 12, 4096, 4, 0
pause 15
- sprite gBattleAnimSpriteTemplate_83D7AB0, 131, 2, 20, -8
+ sprite gBattleAnimSpriteTemplate_83D7AB0, 131, 20, -8
wait
panse_19 SE_W213, 63
- sprite gBattleAnimSpriteTemplate_83D7AC8, 131, 2, 160, -32
- sprite gBattleAnimSpriteTemplate_83D7AC8, 131, 2, -256, -40
- sprite gBattleAnimSpriteTemplate_83D7AC8, 131, 2, 128, -16
- sprite gBattleAnimSpriteTemplate_83D7AC8, 131, 2, 416, -38
- sprite gBattleAnimSpriteTemplate_83D7AC8, 131, 2, -128, -22
- sprite gBattleAnimSpriteTemplate_83D7AC8, 131, 2, -384, -31
+ sprite gBattleAnimSpriteTemplate_83D7AC8, 131, 160, -32
+ sprite gBattleAnimSpriteTemplate_83D7AC8, 131, -256, -40
+ sprite gBattleAnimSpriteTemplate_83D7AC8, 131, 128, -16
+ sprite gBattleAnimSpriteTemplate_83D7AC8, 131, 416, -38
+ sprite gBattleAnimSpriteTemplate_83D7AC8, 131, -128, -22
+ sprite gBattleAnimSpriteTemplate_83D7AC8, 131, -384, -31
wait
panse_1D SE_W213B, 0, 15
createtask sub_80D2100, 5
- sprite gBattleAnimSpriteTemplate_83D7AE0, 40, 3, 16, 256, 0
- sprite gBattleAnimSpriteTemplate_83D7AE0, 40, 3, 224, 240, 15
- sprite gBattleAnimSpriteTemplate_83D7AE0, 40, 3, 126, 272, 30
- sprite gBattleAnimSpriteTemplate_83D7AE0, 40, 3, 80, 224, 45
- sprite gBattleAnimSpriteTemplate_83D7AE0, 40, 3, 170, 272, 60
- sprite gBattleAnimSpriteTemplate_83D7AE0, 40, 3, 40, 256, 75
- sprite gBattleAnimSpriteTemplate_83D7AE0, 40, 3, 112, 256, 90
- sprite gBattleAnimSpriteTemplate_83D7AE0, 40, 3, 200, 272, 90
+ sprite gBattleAnimSpriteTemplate_83D7AE0, 40, 16, 256, 0
+ sprite gBattleAnimSpriteTemplate_83D7AE0, 40, 224, 240, 15
+ sprite gBattleAnimSpriteTemplate_83D7AE0, 40, 126, 272, 30
+ sprite gBattleAnimSpriteTemplate_83D7AE0, 40, 80, 224, 45
+ sprite gBattleAnimSpriteTemplate_83D7AE0, 40, 170, 272, 60
+ sprite gBattleAnimSpriteTemplate_83D7AE0, 40, 40, 256, 75
+ sprite gBattleAnimSpriteTemplate_83D7AE0, 40, 112, 256, 90
+ sprite gBattleAnimSpriteTemplate_83D7AE0, 40, 200, 272, 90
pause 75
- createtask sub_80E1F8C, 2, 6, 4, 4, 4, 0, 10, 28479
+ createtask sub_80E1F8C, 2, 4, 4, 4, 0, 10, 28479
end
Move_GROWTH: @ 81CA1B3
@@ -2016,27 +2016,27 @@ Move_GROWTH: @ 81CA1B3
wait
end
_81CA1C0:
- createtask sub_80E1F8C, 2, 6, 2, 0, 2, 0, 8, 32767
+ createtask sub_80E1F8C, 2, 2, 0, 2, 0, 8, 32767
panse_19 SE_W036, 192
- createtask sub_80A8D34, 5, 5, -3, -3, 16, 0, 0
+ createtask sub_80A8D34, 5, -3, -3, 16, 0, 0
ret
Move_WHIRLWIND: @ 81CA1E9
loadsprite 10162
- sprite gBattleAnimSpriteTemplate_83DA51C, 2, 5, 0, -8, 1, 60, 0
- sprite gBattleAnimSpriteTemplate_83DA51C, 2, 5, 0, 0, 1, 60, 1
- sprite gBattleAnimSpriteTemplate_83DA51C, 2, 5, 0, 8, 1, 60, 2
- sprite gBattleAnimSpriteTemplate_83DA51C, 2, 5, 0, 16, 1, 60, 3
- sprite gBattleAnimSpriteTemplate_83DA51C, 2, 5, 0, 24, 1, 60, 4
- sprite gBattleAnimSpriteTemplate_83DA51C, 2, 5, 0, 32, 1, 60, 0
+ sprite gBattleAnimSpriteTemplate_83DA51C, 2, 0, -8, 1, 60, 0
+ sprite gBattleAnimSpriteTemplate_83DA51C, 2, 0, 0, 1, 60, 1
+ sprite gBattleAnimSpriteTemplate_83DA51C, 2, 0, 8, 1, 60, 2
+ sprite gBattleAnimSpriteTemplate_83DA51C, 2, 0, 16, 1, 60, 3
+ sprite gBattleAnimSpriteTemplate_83DA51C, 2, 0, 24, 1, 60, 4
+ sprite gBattleAnimSpriteTemplate_83DA51C, 2, 0, 32, 1, 60, 0
pause 5
panse_1C SE_W104, 63, 10, 4
- createtask sub_80A7FA0, 2, 5, 1, 4, 0, 15, 1
+ createtask sub_80A7FA0, 2, 1, 4, 0, 15, 1
pause 29
- createtask sub_80A8500, 2, 5, 1, 12, 6, 1, 5
+ createtask sub_80A8500, 2, 1, 12, 6, 1, 5
pause 7
panse_19 SE_W081, 63
- createtask sub_80A8A80, 5, 2, 1, 8
+ createtask sub_80A8A80, 5, 1, 8
wait
end
@@ -2045,13 +2045,13 @@ Move_CONFUSE_RAY: @ 81CA291
monbg 3
fadetobg 2
waitbgfadein
- createtask sub_812B374, 2, 4, -64, 63, 2, 0
- createtask sub_80E2094, 2, 6, 10013, 0, 6, 0, 14, 351
- sprite gBattleAnimSpriteTemplate_83DAE64, 130, 3, 28, 0, 288
+ createtask sub_812B374, 2, -64, 63, 2, 0
+ createtask sub_80E2094, 2, 10013, 0, 6, 0, 14, 351
+ sprite gBattleAnimSpriteTemplate_83DAE64, 130, 28, 0, 288
wait
setalpha 8, 8
panse_19 SE_W081B, 63
- sprite gBattleAnimSpriteTemplate_83DAE7C, 130, 2, 0, -16
+ sprite gBattleAnimSpriteTemplate_83DAE7C, 130, 0, -16
wait
pause 0
blendoff
@@ -2063,10 +2063,10 @@ Move_CONFUSE_RAY: @ 81CA291
Move_LOCK_ON: @ 81CA2E4
loadsprite 10014
sprite gBattleAnimSpriteTemplate_83D6DAC, 40
- sprite gBattleAnimSpriteTemplate_83D6DC4, 40, 1, 1
- sprite gBattleAnimSpriteTemplate_83D6DC4, 40, 1, 2
- sprite gBattleAnimSpriteTemplate_83D6DC4, 40, 1, 3
- sprite gBattleAnimSpriteTemplate_83D6DC4, 40, 1, 4
+ sprite gBattleAnimSpriteTemplate_83D6DC4, 40, 1
+ sprite gBattleAnimSpriteTemplate_83D6DC4, 40, 2
+ sprite gBattleAnimSpriteTemplate_83D6DC4, 40, 3
+ sprite gBattleAnimSpriteTemplate_83D6DC4, 40, 4
pause 120
setvar 7, -1
wait
@@ -2076,12 +2076,12 @@ Move_MEAN_LOOK: @ 81CA31A
loadsprite 10187
monbg 3
panse_19 SE_W060, 192
- sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 5, 1, 1, 0, 16, 0
+ sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 1, 1, 0, 16, 0
panse_1C SE_W109, 63, 15, 4
panse_1D SE_W043, 63, 85
sprite gBattleAnimSpriteTemplate_8402264, 2
pause 120
- sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 5, 1, 2, 16, 0, 0
+ sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 1, 2, 16, 0, 0
pause 30
clearmonbg 3
wait
@@ -2089,21 +2089,21 @@ Move_MEAN_LOOK: @ 81CA31A
Move_ROCK_THROW: @ 81CA35F
loadsprite 10058
- sprite gBattleAnimSpriteTemplate_83DB428, 130, 4, 6, 1, 15, 1
- sprite gBattleAnimSpriteTemplate_83DAC4C, 130, 4, 0, 1, 0, 0
+ sprite gBattleAnimSpriteTemplate_83DB428, 130, 6, 1, 15, 1
+ sprite gBattleAnimSpriteTemplate_83DAC4C, 130, 0, 1, 0, 0
panse_19 SE_W088, 63
pause 6
- sprite gBattleAnimSpriteTemplate_83DAC4C, 130, 4, 19, 1, 10, 0
+ sprite gBattleAnimSpriteTemplate_83DAC4C, 130, 19, 1, 10, 0
panse_19 SE_W088, 63
pause 6
- sprite gBattleAnimSpriteTemplate_83DAC4C, 130, 4, -23, 2, -10, 0
+ sprite gBattleAnimSpriteTemplate_83DAC4C, 130, -23, 2, -10, 0
panse_19 SE_W088, 63
- createtask sub_80A7E7C, 2, 5, 1, 0, 5, 20, 1
+ createtask sub_80A7E7C, 2, 1, 0, 5, 20, 1
pause 6
- sprite gBattleAnimSpriteTemplate_83DAC4C, 130, 4, -15, 1, -10, 0
+ sprite gBattleAnimSpriteTemplate_83DAC4C, 130, -15, 1, -10, 0
panse_19 SE_W088, 63
pause 6
- sprite gBattleAnimSpriteTemplate_83DAC4C, 130, 4, 23, 2, 10, 0
+ sprite gBattleAnimSpriteTemplate_83DAC4C, 130, 23, 2, 10, 0
panse_19 SE_W088, 63
wait
end
@@ -2111,20 +2111,20 @@ Move_ROCK_THROW: @ 81CA35F
Move_ROCK_SLIDE: @ 81CA3EB
loadsprite 10058
monbg 3
- sprite gBattleAnimSpriteTemplate_83DB428, 2, 4, 7, 1, 11, 1
- sprite gBattleAnimSpriteTemplate_83DAC4C, 130, 4, -5, 1, -5, 1
+ sprite gBattleAnimSpriteTemplate_83DB428, 2, 7, 1, 11, 1
+ sprite gBattleAnimSpriteTemplate_83DAC4C, 130, -5, 1, -5, 1
panse_19 SE_W088, 63
pause 2
- sprite gBattleAnimSpriteTemplate_83DAC4C, 130, 4, 5, 0, 6, 1
+ sprite gBattleAnimSpriteTemplate_83DAC4C, 130, 5, 0, 6, 1
panse_19 SE_W088, 63
pause 2
- sprite gBattleAnimSpriteTemplate_83DAC4C, 130, 4, 19, 1, 10, 1
+ sprite gBattleAnimSpriteTemplate_83DAC4C, 130, 19, 1, 10, 1
panse_19 SE_W088, 63
pause 2
- sprite gBattleAnimSpriteTemplate_83DAC4C, 130, 4, -23, 2, -10, 1
+ sprite gBattleAnimSpriteTemplate_83DAC4C, 130, -23, 2, -10, 1
panse_19 SE_W088, 63
- createtask sub_80A7E7C, 2, 5, 1, 0, 5, 50, 1
- createtask sub_80A7E7C, 2, 5, 3, 0, 5, 50, 1
+ createtask sub_80A7E7C, 2, 1, 0, 5, 50, 1
+ createtask sub_80A7E7C, 2, 3, 0, 5, 50, 1
pause 2
call _81CA483
call _81CA483
@@ -2132,28 +2132,28 @@ Move_ROCK_SLIDE: @ 81CA3EB
clearmonbg 3
end
_81CA483:
- sprite gBattleAnimSpriteTemplate_83DAC4C, 130, 4, -20, 0, -10, 1
+ sprite gBattleAnimSpriteTemplate_83DAC4C, 130, -20, 0, -10, 1
panse_19 SE_W088, 63
pause 2
- sprite gBattleAnimSpriteTemplate_83DAC4C, 130, 4, 28, 1, 10, 1
+ sprite gBattleAnimSpriteTemplate_83DAC4C, 130, 28, 1, 10, 1
panse_19 SE_W088, 63
pause 2
- sprite gBattleAnimSpriteTemplate_83DAC4C, 130, 4, -10, 1, -5, 1
+ sprite gBattleAnimSpriteTemplate_83DAC4C, 130, -10, 1, -5, 1
panse_19 SE_W088, 63
pause 2
- sprite gBattleAnimSpriteTemplate_83DAC4C, 130, 4, 10, 0, 6, 1
+ sprite gBattleAnimSpriteTemplate_83DAC4C, 130, 10, 0, 6, 1
panse_19 SE_W088, 63
pause 2
- sprite gBattleAnimSpriteTemplate_83DAC4C, 130, 4, 24, 1, 10, 1
+ sprite gBattleAnimSpriteTemplate_83DAC4C, 130, 24, 1, 10, 1
panse_19 SE_W088, 63
pause 2
- sprite gBattleAnimSpriteTemplate_83DAC4C, 130, 4, -32, 2, -10, 1
+ sprite gBattleAnimSpriteTemplate_83DAC4C, 130, -32, 2, -10, 1
panse_19 SE_W088, 63
pause 2
- sprite gBattleAnimSpriteTemplate_83DAC4C, 130, 4, -20, 0, -10, 1
+ sprite gBattleAnimSpriteTemplate_83DAC4C, 130, -20, 0, -10, 1
panse_19 SE_W088, 63
pause 2
- sprite gBattleAnimSpriteTemplate_83DAC4C, 130, 4, 30, 2, 10, 1
+ sprite gBattleAnimSpriteTemplate_83DAC4C, 130, 30, 2, 10, 1
panse_19 SE_W088, 63
pause 2
ret
@@ -2165,11 +2165,11 @@ Move_THIEF: @ 81CA52C
fadetobg 1
waitbgfadein
setalpha 12, 8
- sprite gBattleAnimSpriteTemplate_83C1FB0, 2, 2, 6, 4
+ sprite gBattleAnimSpriteTemplate_83C1FB0, 2, 6, 4
pause 6
panse_19 SE_W233, 63
- sprite gBattleAnimSpriteTemplate_83DB4A8, 2, 4, 0, 0, 1, 2
- createtask sub_80A7FA0, 2, 5, 1, 1, 0, 8, 1
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 2, 0, 0, 1, 2
+ createtask sub_80A7FA0, 2, 1, 1, 0, 8, 1
wait
pause 20
clearmonbg 1
@@ -2186,7 +2186,7 @@ Move_BUBBLE_BEAM: @ 81CA573
setalpha 12, 8
pause 1
call _81CA5AD
- createtask sub_80A8B88, 5, 5, 0, 3, 3072, 8, 1
+ createtask sub_80A8B88, 5, 0, 3, 3072, 8, 1
call _81CA5AD
call _81CA5AD
wait
@@ -2196,22 +2196,22 @@ Move_BUBBLE_BEAM: @ 81CA573
blendoff
end
_81CA5AD:
- sprite gBattleAnimSpriteTemplate_83D9178, 2, 7, 18, 0, 35, 70, 0, 256, 50
+ sprite gBattleAnimSpriteTemplate_83D9178, 2, 18, 0, 35, 70, 0, 256, 50
panse_19 SE_W145, 192
pause 3
- sprite gBattleAnimSpriteTemplate_83D9178, 2, 7, 18, 0, 20, 40, -10, 256, 50
+ sprite gBattleAnimSpriteTemplate_83D9178, 2, 18, 0, 20, 40, -10, 256, 50
panse_19 SE_W145, 192
pause 3
- sprite gBattleAnimSpriteTemplate_83D9178, 2, 7, 18, 0, 10, -60, 0, 256, 50
+ sprite gBattleAnimSpriteTemplate_83D9178, 2, 18, 0, 10, -60, 0, 256, 50
panse_19 SE_W145, 192
pause 3
- sprite gBattleAnimSpriteTemplate_83D9178, 2, 7, 18, 0, 15, -15, 10, 256, 50
+ sprite gBattleAnimSpriteTemplate_83D9178, 2, 18, 0, 15, -15, 10, 256, 50
panse_19 SE_W145, 192
pause 3
- sprite gBattleAnimSpriteTemplate_83D9178, 2, 7, 18, 0, 30, 10, -10, 256, 50
+ sprite gBattleAnimSpriteTemplate_83D9178, 2, 18, 0, 30, 10, -10, 256, 50
panse_19 SE_W145, 192
pause 3
- sprite gBattleAnimSpriteTemplate_83D9178, 2, 7, 18, 0, 25, -30, 10, 256, 50
+ sprite gBattleAnimSpriteTemplate_83D9178, 2, 18, 0, 25, -30, 10, 256, 50
panse_19 SE_W145, 192
pause 3
ret
@@ -2220,7 +2220,7 @@ Move_ICY_WIND: @ 81CA650
loadsprite 10141
loadsprite 10142
monbg 3
- createtask sub_80E2A38, 10, 5, 11, 4, 0, 4, 0
+ createtask sub_80E2A38, 10, 11, 4, 0, 4, 0
fadetobg 15
waitbgfadeout
panse_19 SE_W196, 0
@@ -2237,42 +2237,42 @@ Move_ICY_WIND: @ 81CA650
clearmonbg 3
restorebg
waitbgfadeout
- createtask sub_80E2A38, 10, 5, 11, 4, 4, 0, 0
+ createtask sub_80E2A38, 10, 11, 4, 4, 0, 0
waitbgfadein
end
_81CA6A8:
- sprite gBattleAnimSpriteTemplate_83D9CA8, 168, 6, 0, 0, 0, 0, 72, 1
+ sprite gBattleAnimSpriteTemplate_83D9CA8, 168, 0, 0, 0, 0, 72, 1
pause 5
- sprite gBattleAnimSpriteTemplate_83D9CA8, 168, 6, 0, 10, 0, 10, 72, 1
+ sprite gBattleAnimSpriteTemplate_83D9CA8, 168, 0, 10, 0, 10, 72, 1
pause 5
- sprite gBattleAnimSpriteTemplate_83D9CA8, 168, 6, 0, -10, 0, -10, 72, 1
+ sprite gBattleAnimSpriteTemplate_83D9CA8, 168, 0, -10, 0, -10, 72, 1
pause 5
- sprite gBattleAnimSpriteTemplate_83D9CA8, 168, 6, 0, 15, 0, 15, 72, 1
+ sprite gBattleAnimSpriteTemplate_83D9CA8, 168, 0, 15, 0, 15, 72, 1
pause 5
- sprite gBattleAnimSpriteTemplate_83D9CA8, 168, 6, 0, -5, 0, -5, 72, 1
+ sprite gBattleAnimSpriteTemplate_83D9CA8, 168, 0, -5, 0, -5, 72, 1
ret
Move_SMOKESCREEN: @ 81CA710
loadsprite 10016
loadsprite 10017
panse_19 SE_W104, 192
- sprite gBattleAnimSpriteTemplate_84021B0, 130, 6, 20, 0, 0, 0, 35, -25
+ sprite gBattleAnimSpriteTemplate_84021B0, 130, 20, 0, 0, 0, 35, -25
wait
createtask sub_812C1D0, 2
pause 2
panse_19 SE_W028, 63
- sprite gBattleAnimSpriteTemplate_8402198, 132, 5, 0, -12, 104, 0, 75
- sprite gBattleAnimSpriteTemplate_8402198, 132, 5, 0, -12, 72, 1, 75
- sprite gBattleAnimSpriteTemplate_8402198, 132, 5, 0, -6, 56, 1, 75
- sprite gBattleAnimSpriteTemplate_8402198, 132, 5, 0, -6, 88, 0, 75
- sprite gBattleAnimSpriteTemplate_8402198, 132, 5, 0, 0, 56, 0, 75
- sprite gBattleAnimSpriteTemplate_8402198, 132, 5, 0, 0, 88, 1, 75
- sprite gBattleAnimSpriteTemplate_8402198, 132, 5, 0, 6, 72, 0, 75
- sprite gBattleAnimSpriteTemplate_8402198, 132, 5, 0, 6, 104, 1, 75
- sprite gBattleAnimSpriteTemplate_8402198, 132, 5, 0, 12, 72, 0, 75
- sprite gBattleAnimSpriteTemplate_8402198, 132, 5, 0, 12, 56, 1, 75
- sprite gBattleAnimSpriteTemplate_8402198, 132, 5, 0, 18, 80, 0, 75
- sprite gBattleAnimSpriteTemplate_8402198, 132, 5, 0, 18, 72, 1, 75
+ sprite gBattleAnimSpriteTemplate_8402198, 132, 0, -12, 104, 0, 75
+ sprite gBattleAnimSpriteTemplate_8402198, 132, 0, -12, 72, 1, 75
+ sprite gBattleAnimSpriteTemplate_8402198, 132, 0, -6, 56, 1, 75
+ sprite gBattleAnimSpriteTemplate_8402198, 132, 0, -6, 88, 0, 75
+ sprite gBattleAnimSpriteTemplate_8402198, 132, 0, 0, 56, 0, 75
+ sprite gBattleAnimSpriteTemplate_8402198, 132, 0, 0, 88, 1, 75
+ sprite gBattleAnimSpriteTemplate_8402198, 132, 0, 6, 72, 0, 75
+ sprite gBattleAnimSpriteTemplate_8402198, 132, 0, 6, 104, 1, 75
+ sprite gBattleAnimSpriteTemplate_8402198, 132, 0, 12, 72, 0, 75
+ sprite gBattleAnimSpriteTemplate_8402198, 132, 0, 12, 56, 1, 75
+ sprite gBattleAnimSpriteTemplate_8402198, 132, 0, 18, 80, 0, 75
+ sprite gBattleAnimSpriteTemplate_8402198, 132, 0, 18, 72, 1, 75
wait
end
@@ -2283,43 +2283,43 @@ Move_CONVERSION: @ 81CA809
setalpha 16, 0
pause 0
panse_19 SE_W129, 192
- sprite gBattleAnimSpriteTemplate_83D6F80, 2, 2, -24, -24
+ sprite gBattleAnimSpriteTemplate_83D6F80, 2, -24, -24
pause 3
- sprite gBattleAnimSpriteTemplate_83D6F80, 2, 2, -8, -24
+ sprite gBattleAnimSpriteTemplate_83D6F80, 2, -8, -24
pause 3
- sprite gBattleAnimSpriteTemplate_83D6F80, 2, 2, 8, -24
+ sprite gBattleAnimSpriteTemplate_83D6F80, 2, 8, -24
pause 3
- sprite gBattleAnimSpriteTemplate_83D6F80, 2, 2, 24, -24
+ sprite gBattleAnimSpriteTemplate_83D6F80, 2, 24, -24
pause 3
panse_19 SE_W129, 192
- sprite gBattleAnimSpriteTemplate_83D6F80, 2, 2, -24, -8
+ sprite gBattleAnimSpriteTemplate_83D6F80, 2, -24, -8
pause 3
- sprite gBattleAnimSpriteTemplate_83D6F80, 2, 2, -8, -8
+ sprite gBattleAnimSpriteTemplate_83D6F80, 2, -8, -8
pause 3
- sprite gBattleAnimSpriteTemplate_83D6F80, 2, 2, 8, -8
+ sprite gBattleAnimSpriteTemplate_83D6F80, 2, 8, -8
pause 3
- sprite gBattleAnimSpriteTemplate_83D6F80, 2, 2, 24, -8
+ sprite gBattleAnimSpriteTemplate_83D6F80, 2, 24, -8
pause 3
panse_19 SE_W129, 192
- sprite gBattleAnimSpriteTemplate_83D6F80, 2, 2, -24, 8
+ sprite gBattleAnimSpriteTemplate_83D6F80, 2, -24, 8
pause 3
- sprite gBattleAnimSpriteTemplate_83D6F80, 2, 2, -8, 8
+ sprite gBattleAnimSpriteTemplate_83D6F80, 2, -8, 8
pause 3
- sprite gBattleAnimSpriteTemplate_83D6F80, 2, 2, 8, 8
+ sprite gBattleAnimSpriteTemplate_83D6F80, 2, 8, 8
pause 3
- sprite gBattleAnimSpriteTemplate_83D6F80, 2, 2, 24, 8
+ sprite gBattleAnimSpriteTemplate_83D6F80, 2, 24, 8
pause 3
panse_19 SE_W129, 192
- sprite gBattleAnimSpriteTemplate_83D6F80, 2, 2, -24, 24
+ sprite gBattleAnimSpriteTemplate_83D6F80, 2, -24, 24
pause 3
- sprite gBattleAnimSpriteTemplate_83D6F80, 2, 2, -8, 24
+ sprite gBattleAnimSpriteTemplate_83D6F80, 2, -8, 24
pause 3
- sprite gBattleAnimSpriteTemplate_83D6F80, 2, 2, 8, 24
+ sprite gBattleAnimSpriteTemplate_83D6F80, 2, 8, 24
pause 3
- sprite gBattleAnimSpriteTemplate_83D6F80, 2, 2, 24, 24
+ sprite gBattleAnimSpriteTemplate_83D6F80, 2, 24, 24
pause 20
panse_19 SE_W112, 192
- createtask sub_80E21A8, 2, 7, 10018, 1, 1, 14335, 12, 0, 0
+ createtask sub_80E21A8, 2, 10018, 1, 1, 14335, 12, 0, 0
pause 6
createtask sub_80CE108, 5
wait
@@ -2335,22 +2335,22 @@ Move_CONVERSION_2: @ 81CA91E
setalpha 0, 16
pause 0
panse_19 SE_W112, 63
- sprite gBattleAnimSpriteTemplate_83D6FB0, 2, 3, -24, -24, 60
- sprite gBattleAnimSpriteTemplate_83D6FB0, 2, 3, -8, -24, 65
- sprite gBattleAnimSpriteTemplate_83D6FB0, 2, 3, 8, -24, 70
- sprite gBattleAnimSpriteTemplate_83D6FB0, 2, 3, 24, -24, 75
- sprite gBattleAnimSpriteTemplate_83D6FB0, 2, 3, -24, -8, 80
- sprite gBattleAnimSpriteTemplate_83D6FB0, 2, 3, -8, -8, 85
- sprite gBattleAnimSpriteTemplate_83D6FB0, 2, 3, 8, -8, 90
- sprite gBattleAnimSpriteTemplate_83D6FB0, 2, 3, 24, -8, 95
- sprite gBattleAnimSpriteTemplate_83D6FB0, 2, 3, -24, 8, 100
- sprite gBattleAnimSpriteTemplate_83D6FB0, 2, 3, -8, 8, 105
- sprite gBattleAnimSpriteTemplate_83D6FB0, 2, 3, 8, 8, 110
- sprite gBattleAnimSpriteTemplate_83D6FB0, 2, 3, 24, 8, 115
- sprite gBattleAnimSpriteTemplate_83D6FB0, 2, 3, -24, 24, 120
- sprite gBattleAnimSpriteTemplate_83D6FB0, 2, 3, -8, 24, 125
- sprite gBattleAnimSpriteTemplate_83D6FB0, 2, 3, 8, 24, 130
- sprite gBattleAnimSpriteTemplate_83D6FB0, 2, 3, 24, 24, 135
+ sprite gBattleAnimSpriteTemplate_83D6FB0, 2, -24, -24, 60
+ sprite gBattleAnimSpriteTemplate_83D6FB0, 2, -8, -24, 65
+ sprite gBattleAnimSpriteTemplate_83D6FB0, 2, 8, -24, 70
+ sprite gBattleAnimSpriteTemplate_83D6FB0, 2, 24, -24, 75
+ sprite gBattleAnimSpriteTemplate_83D6FB0, 2, -24, -8, 80
+ sprite gBattleAnimSpriteTemplate_83D6FB0, 2, -8, -8, 85
+ sprite gBattleAnimSpriteTemplate_83D6FB0, 2, 8, -8, 90
+ sprite gBattleAnimSpriteTemplate_83D6FB0, 2, 24, -8, 95
+ sprite gBattleAnimSpriteTemplate_83D6FB0, 2, -24, 8, 100
+ sprite gBattleAnimSpriteTemplate_83D6FB0, 2, -8, 8, 105
+ sprite gBattleAnimSpriteTemplate_83D6FB0, 2, 8, 8, 110
+ sprite gBattleAnimSpriteTemplate_83D6FB0, 2, 24, 8, 115
+ sprite gBattleAnimSpriteTemplate_83D6FB0, 2, -24, 24, 120
+ sprite gBattleAnimSpriteTemplate_83D6FB0, 2, -8, 24, 125
+ sprite gBattleAnimSpriteTemplate_83D6FB0, 2, 8, 24, 130
+ sprite gBattleAnimSpriteTemplate_83D6FB0, 2, 24, 24, 135
createtask sub_80CE210, 5
pause 60
panse_19 SE_W129, 63
@@ -2378,35 +2378,35 @@ Move_ROLLING_KICK: @ 81CAA3A
loadsprite 10135
monbg 1
setalpha 12, 8
- createtask sub_80A8500, 2, 5, 0, 18, 6, 1, 4
+ createtask sub_80A8500, 2, 0, 18, 6, 1, 4
panse_19 SE_W104, 192
pause 6
panse_19 SE_W104, 192
wait
- sprite gBattleAnimSpriteTemplate_83C1FF8, 2, 5, 0, 20, 0, 0, 4
- sprite gBattleAnimSpriteTemplate_83D9FF0, 2, 6, -24, 0, 48, 10, 160, 0
+ sprite gBattleAnimSpriteTemplate_83C1FF8, 2, 0, 20, 0, 0, 4
+ sprite gBattleAnimSpriteTemplate_83D9FF0, 2, -24, 0, 48, 10, 160, 0
pause 5
panse_19 SE_W233B, 63
- sprite gBattleAnimSpriteTemplate_83DB4A8, 2, 4, -8, 0, 1, 2
- createtask sub_80A7E7C, 2, 5, 1, 5, 0, 6, 1
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 2, -8, 0, 1, 2
+ createtask sub_80A7E7C, 2, 1, 5, 0, 6, 1
wait
- sprite gBattleAnimSpriteTemplate_83C1FE0, 2, 3, 0, 1, 8
+ sprite gBattleAnimSpriteTemplate_83C1FE0, 2, 0, 1, 8
clearmonbg 1
blendoff
end
Move_HEADBUTT: @ 81CAABD
loadsprite 10135
- sprite gBattleAnimSpriteTemplate_83D6DE4, 2, 1, 0
+ sprite gBattleAnimSpriteTemplate_83D6DE4, 2, 0
panse_19 SE_W029, 192
wait
pause 2
- sprite gBattleAnimSpriteTemplate_83D6DE4, 2, 1, 1
+ sprite gBattleAnimSpriteTemplate_83D6DE4, 2, 1
wait
- createtask sub_80A8154, 2, 5, 0, 2, 0, 4, 1
- createtask sub_80A7E7C, 2, 5, 1, 5, 0, 6, 1
- sprite gBattleAnimSpriteTemplate_83D6DE4, 2, 1, 2
- sprite gBattleAnimSpriteTemplate_83DB538, 131, 4, 0, 0, 1, 1
+ createtask sub_80A8154, 2, 0, 2, 0, 4, 1
+ createtask sub_80A7E7C, 2, 1, 5, 0, 6, 1
+ sprite gBattleAnimSpriteTemplate_83D6DE4, 2, 2
+ sprite gBattleAnimSpriteTemplate_83DB538, 131, 0, 0, 1, 1
panse_19 SE_W233B, 63
wait
end
@@ -2414,17 +2414,17 @@ Move_HEADBUTT: @ 81CAABD
Move_HORN_ATTACK: @ 81CAB1A
loadsprite 10135
loadsprite 10020
- sprite gBattleAnimSpriteTemplate_83D6DE4, 2, 1, 0
+ sprite gBattleAnimSpriteTemplate_83D6DE4, 2, 0
panse_19 SE_W029, 192
wait
pause 2
- sprite gBattleAnimSpriteTemplate_83D6DE4, 2, 1, 1
- sprite gBattleAnimSpriteTemplate_83D7050, 132, 3, 0, 0, 10
+ sprite gBattleAnimSpriteTemplate_83D6DE4, 2, 1
+ sprite gBattleAnimSpriteTemplate_83D7050, 132, 0, 0, 10
wait
- createtask sub_80A8154, 2, 5, 0, 2, 0, 4, 1
- createtask sub_80A7E7C, 2, 5, 1, 5, 0, 6, 1
- sprite gBattleAnimSpriteTemplate_83D6DE4, 2, 1, 2
- sprite gBattleAnimSpriteTemplate_83DB538, 131, 4, 0, 0, 1, 1
+ createtask sub_80A8154, 2, 0, 2, 0, 4, 1
+ createtask sub_80A7E7C, 2, 1, 5, 0, 6, 1
+ sprite gBattleAnimSpriteTemplate_83D6DE4, 2, 2
+ sprite gBattleAnimSpriteTemplate_83DB538, 131, 0, 0, 1, 1
panse_19 SE_W030, 63
wait
end
@@ -2432,22 +2432,22 @@ Move_HORN_ATTACK: @ 81CAB1A
Move_FURY_ATTACK: @ 81CAB87
loadsprite 10135
loadsprite 10020
- createtask sub_80A8E04, 2, 4, 4, 256, 0, 2
+ createtask sub_80A8E04, 2, 4, 256, 0, 2
ifelse _81CABB8, _81CABDE
_81CABA5:
- createtask sub_80A7E7C, 2, 5, 1, 5, 0, 6, 1
+ createtask sub_80A7E7C, 2, 1, 5, 0, 6, 1
wait
end
_81CABB8:
- sprite gBattleAnimSpriteTemplate_83D7050, 132, 3, 8, 8, 10
+ sprite gBattleAnimSpriteTemplate_83D7050, 132, 8, 8, 10
wait
- sprite gBattleAnimSpriteTemplate_83DB538, 131, 4, 0, 0, 1, 1
+ sprite gBattleAnimSpriteTemplate_83DB538, 131, 0, 0, 1, 1
panse_19 SE_W030, 63
jump _81CABA5
_81CABDE:
- sprite gBattleAnimSpriteTemplate_83D7050, 132, 3, -8, -8, 10
+ sprite gBattleAnimSpriteTemplate_83D7050, 132, -8, -8, 10
wait
- sprite gBattleAnimSpriteTemplate_83DB538, 131, 4, 0, 0, 1, 1
+ sprite gBattleAnimSpriteTemplate_83DB538, 131, 0, 0, 1, 1
panse_19 SE_W030, 63
jump _81CABA5
@@ -2457,54 +2457,54 @@ Move_HORN_DRILL: @ 81CAC04
jumpunkcond _81CAD6A
fadetobg 7
waitbgfadeout
- createtask sub_80E3A58, 5, 4, -2304, 768, 1, -1
+ createtask sub_80E3A58, 5, -2304, 768, 1, -1
_81CAC21:
waitbgfadein
setalpha 12, 8
- sprite gBattleAnimSpriteTemplate_83D6DE4, 2, 1, 0
+ sprite gBattleAnimSpriteTemplate_83D6DE4, 2, 0
panse_19 SE_W029, 192
wait
pause 2
- sprite gBattleAnimSpriteTemplate_83D6DE4, 2, 1, 1
- sprite gBattleAnimSpriteTemplate_83D7050, 132, 3, 0, 0, 12
+ sprite gBattleAnimSpriteTemplate_83D6DE4, 2, 1
+ sprite gBattleAnimSpriteTemplate_83D7050, 132, 0, 0, 12
wait
playse SE_BAN
- createtask sub_80A8154, 2, 5, 0, 2, 0, 40, 1
- createtask sub_80A8154, 2, 5, 1, 10, 0, 40, 1
- sprite gBattleAnimSpriteTemplate_83DB538, 131, 4, 0, 0, 1, 3
+ createtask sub_80A8154, 2, 0, 2, 0, 40, 1
+ createtask sub_80A8154, 2, 1, 10, 0, 40, 1
+ sprite gBattleAnimSpriteTemplate_83DB538, 131, 0, 0, 1, 3
panse_19 SE_W030, 63
pause 4
- sprite gBattleAnimSpriteTemplate_83DB538, 131, 4, 0, 2, 1, 3
+ sprite gBattleAnimSpriteTemplate_83DB538, 131, 0, 2, 1, 3
panse_19 SE_W030, 63
pause 4
- sprite gBattleAnimSpriteTemplate_83DB538, 131, 4, -4, 3, 1, 3
+ sprite gBattleAnimSpriteTemplate_83DB538, 131, -4, 3, 1, 3
panse_19 SE_W030, 63
pause 4
- sprite gBattleAnimSpriteTemplate_83DB538, 131, 4, -8, -5, 1, 3
+ sprite gBattleAnimSpriteTemplate_83DB538, 131, -8, -5, 1, 3
panse_19 SE_W030, 63
pause 4
- sprite gBattleAnimSpriteTemplate_83DB538, 131, 4, 4, -12, 1, 3
+ sprite gBattleAnimSpriteTemplate_83DB538, 131, 4, -12, 1, 3
panse_19 SE_W030, 63
pause 4
- sprite gBattleAnimSpriteTemplate_83DB538, 131, 4, 16, 0, 1, 3
+ sprite gBattleAnimSpriteTemplate_83DB538, 131, 16, 0, 1, 3
panse_19 SE_W030, 63
pause 4
- sprite gBattleAnimSpriteTemplate_83DB538, 131, 4, 5, 18, 1, 3
+ sprite gBattleAnimSpriteTemplate_83DB538, 131, 5, 18, 1, 3
panse_19 SE_W030, 63
pause 4
- sprite gBattleAnimSpriteTemplate_83DB538, 131, 4, -17, 12, 1, 2
+ sprite gBattleAnimSpriteTemplate_83DB538, 131, -17, 12, 1, 2
panse_19 SE_W030, 63
pause 4
- sprite gBattleAnimSpriteTemplate_83DB538, 131, 4, -21, -15, 1, 2
+ sprite gBattleAnimSpriteTemplate_83DB538, 131, -21, -15, 1, 2
panse_19 SE_W030, 63
pause 4
- sprite gBattleAnimSpriteTemplate_83DB538, 131, 4, 8, -27, 1, 2
+ sprite gBattleAnimSpriteTemplate_83DB538, 131, 8, -27, 1, 2
panse_19 SE_W030, 63
pause 4
- sprite gBattleAnimSpriteTemplate_83DB538, 131, 4, 32, 0, 1, 2
+ sprite gBattleAnimSpriteTemplate_83DB538, 131, 32, 0, 1, 2
panse_19 SE_W030, 63
pause 4
- sprite gBattleAnimSpriteTemplate_83D6DE4, 2, 1, 2
+ sprite gBattleAnimSpriteTemplate_83D6DE4, 2, 2
wait
restorebg
waitbgfadeout
@@ -2514,7 +2514,7 @@ _81CAC21:
_81CAD6A:
fadetobg 8
waitbgfadeout
- createtask sub_80E3A58, 5, 4, 2304, 768, 0, -1
+ createtask sub_80E3A58, 5, 2304, 768, 0, -1
jump _81CAC21
Move_THRASH: @ 81CAD81
@@ -2522,16 +2522,16 @@ Move_THRASH: @ 81CAD81
loadsprite 10143
createtask sub_80D0A4C, 2
createtask sub_80D0AB8, 2
- sprite gBattleAnimSpriteTemplate_83D9FC0, 131, 3, 1, 10, 0
- createtask sub_80A8154, 2, 5, 1, 4, 0, 7, 1
+ sprite gBattleAnimSpriteTemplate_83D9FC0, 131, 1, 10, 0
+ createtask sub_80A8154, 2, 1, 4, 0, 7, 1
panse_19 SE_W004, 63
pause 28
- sprite gBattleAnimSpriteTemplate_83D9FC0, 131, 3, 1, 10, 1
- createtask sub_80A8154, 2, 5, 1, 4, 0, 7, 1
+ sprite gBattleAnimSpriteTemplate_83D9FC0, 131, 1, 10, 1
+ createtask sub_80A8154, 2, 1, 4, 0, 7, 1
panse_19 SE_W233B, 63
pause 28
- sprite gBattleAnimSpriteTemplate_83D9FC0, 131, 3, 1, 10, 3
- createtask sub_80A8154, 2, 5, 1, 8, 0, 16, 1
+ sprite gBattleAnimSpriteTemplate_83D9FC0, 131, 1, 10, 3
+ createtask sub_80A8154, 2, 1, 8, 0, 16, 1
panse_19 SE_W025B, 63
end
@@ -2541,29 +2541,29 @@ Move_SING: @ 81CAE00
createtask sub_80CEA20, 2
wait
panse_1B SE_W047, 192, 63, 2, 0
- sprite gBattleAnimSpriteTemplate_83D7114, 130, 3, 7, 0, 12
+ sprite gBattleAnimSpriteTemplate_83D7114, 130, 7, 0, 12
pause 5
- sprite gBattleAnimSpriteTemplate_83D7114, 130, 3, 6, 1, 12
+ sprite gBattleAnimSpriteTemplate_83D7114, 130, 6, 1, 12
pause 5
- sprite gBattleAnimSpriteTemplate_83D7114, 130, 3, 1, 2, 12
+ sprite gBattleAnimSpriteTemplate_83D7114, 130, 1, 2, 12
pause 5
- sprite gBattleAnimSpriteTemplate_83D7114, 130, 3, 2, 3, 12
+ sprite gBattleAnimSpriteTemplate_83D7114, 130, 2, 3, 12
pause 5
- sprite gBattleAnimSpriteTemplate_83D7114, 130, 3, 3, 0, 12
+ sprite gBattleAnimSpriteTemplate_83D7114, 130, 3, 0, 12
pause 4
- sprite gBattleAnimSpriteTemplate_83D7114, 130, 3, 2, 1, 12
+ sprite gBattleAnimSpriteTemplate_83D7114, 130, 2, 1, 12
pause 4
- sprite gBattleAnimSpriteTemplate_83D7114, 130, 3, 5, 2, 12
+ sprite gBattleAnimSpriteTemplate_83D7114, 130, 5, 2, 12
pause 4
- sprite gBattleAnimSpriteTemplate_83D7114, 130, 3, 6, 3, 12
+ sprite gBattleAnimSpriteTemplate_83D7114, 130, 6, 3, 12
pause 4
- sprite gBattleAnimSpriteTemplate_83D7114, 130, 3, 2, 0, 12
+ sprite gBattleAnimSpriteTemplate_83D7114, 130, 2, 0, 12
pause 4
- sprite gBattleAnimSpriteTemplate_83D7114, 130, 3, 2, 1, 12
+ sprite gBattleAnimSpriteTemplate_83D7114, 130, 2, 1, 12
pause 4
- sprite gBattleAnimSpriteTemplate_83D7114, 130, 3, 1, 2, 12
+ sprite gBattleAnimSpriteTemplate_83D7114, 130, 1, 2, 12
pause 4
- sprite gBattleAnimSpriteTemplate_83D7114, 130, 3, 5, 3, 12
+ sprite gBattleAnimSpriteTemplate_83D7114, 130, 5, 3, 12
pause 4
wait
clearmonbg 3
@@ -2574,45 +2574,45 @@ Move_SING: @ 81CAE00
Move_LOW_KICK: @ 81CAED4
loadsprite 10143
loadsprite 10135
- sprite gBattleAnimSpriteTemplate_83C1FF8, 2, 5, 0, 20, 0, 0, 4
- sprite gBattleAnimSpriteTemplate_83D9FF0, 130, 6, -24, 28, 40, 8, 160, 0
+ sprite gBattleAnimSpriteTemplate_83C1FF8, 2, 0, 20, 0, 0, 4
+ sprite gBattleAnimSpriteTemplate_83D9FF0, 130, -24, 28, 40, 8, 160, 0
pause 4
- sprite gBattleAnimSpriteTemplate_83DB4A8, 130, 4, -8, 8, 1, 2
- createtask sub_80A8E04, 2, 4, 6, 384, 1, 2
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 130, -8, 8, 1, 2
+ createtask sub_80A8E04, 2, 6, 384, 1, 2
panse_19 SE_W233B, 63
wait
- sprite gBattleAnimSpriteTemplate_83C1FE0, 2, 3, 0, 1, 4
+ sprite gBattleAnimSpriteTemplate_83C1FE0, 2, 0, 1, 4
end
Move_EARTHQUAKE: @ 81CAF31
- createtask sub_80E1864, 5, 3, 5, 10, 50
- createtask sub_80E1864, 5, 3, 4, 10, 50
+ createtask sub_80E1864, 5, 5, 10, 50
+ createtask sub_80E1864, 5, 4, 10, 50
panse_19 SE_W089, 0
pause 10
- sprite gBattleAnimSpriteTemplate_83DB3DC, 2, 7, 1, 3, 1, 0, 14, 32767, 14
+ sprite gBattleAnimSpriteTemplate_83DB3DC, 2, 1, 3, 1, 0, 14, 32767, 14
pause 16
- sprite gBattleAnimSpriteTemplate_83DB3DC, 2, 7, 1, 3, 1, 0, 14, 32767, 14
+ sprite gBattleAnimSpriteTemplate_83DB3DC, 2, 1, 3, 1, 0, 14, 32767, 14
end
Move_FISSURE: @ 81CAF7E
loadsprite 10074
- createtask sub_80E1864, 3, 3, 5, 10, 50
- createtask sub_80E1864, 3, 3, 1, 10, 50
+ createtask sub_80E1864, 3, 5, 10, 50
+ createtask sub_80E1864, 3, 1, 10, 50
panse_19 SE_W089, 63
pause 8
call _81CAFFF
pause 15
- sprite gBattleAnimSpriteTemplate_83DB3DC, 2, 7, 1, 3, 1, 0, 14, 32767, 14
+ sprite gBattleAnimSpriteTemplate_83DB3DC, 2, 1, 3, 1, 0, 14, 32767, 14
pause 15
call _81CB050
pause 15
- sprite gBattleAnimSpriteTemplate_83DB3DC, 2, 7, 1, 3, 1, 0, 14, 32767, 14
+ sprite gBattleAnimSpriteTemplate_83DB3DC, 2, 1, 3, 1, 0, 14, 32767, 14
pause 15
call _81CAFFF
pause 50
fadetobg 21
waitbgfadeout
- createtask sub_80E1BB0, 5, 3, 1, 5, -1
+ createtask sub_80E1BB0, 5, 1, 5, -1
waitbgfadein
pause 40
restorebg
@@ -2621,17 +2621,17 @@ Move_FISSURE: @ 81CAF7E
waitbgfadein
end
_81CAFFF:
- sprite gBattleAnimSpriteTemplate_83DB34C, 130, 6, 1, 0, 12, -48, -16, 24
- sprite gBattleAnimSpriteTemplate_83DB34C, 130, 6, 1, 0, 16, -16, -10, 24
- sprite gBattleAnimSpriteTemplate_83DB34C, 130, 6, 1, 1, 14, -52, -18, 24
- sprite gBattleAnimSpriteTemplate_83DB34C, 130, 6, 1, 1, 12, -32, -16, 24
+ sprite gBattleAnimSpriteTemplate_83DB34C, 130, 1, 0, 12, -48, -16, 24
+ sprite gBattleAnimSpriteTemplate_83DB34C, 130, 1, 0, 16, -16, -10, 24
+ sprite gBattleAnimSpriteTemplate_83DB34C, 130, 1, 1, 14, -52, -18, 24
+ sprite gBattleAnimSpriteTemplate_83DB34C, 130, 1, 1, 12, -32, -16, 24
panse_19 SE_W091, 63
ret
_81CB050:
- sprite gBattleAnimSpriteTemplate_83DB34C, 130, 6, 1, 0, 12, -24, -16, 24
- sprite gBattleAnimSpriteTemplate_83DB34C, 130, 6, 1, 0, 16, -38, -10, 24
- sprite gBattleAnimSpriteTemplate_83DB34C, 130, 6, 1, 1, 14, -20, -18, 24
- sprite gBattleAnimSpriteTemplate_83DB34C, 130, 6, 1, 1, 12, -36, -16, 24
+ sprite gBattleAnimSpriteTemplate_83DB34C, 130, 1, 0, 12, -24, -16, 24
+ sprite gBattleAnimSpriteTemplate_83DB34C, 130, 1, 0, 16, -38, -10, 24
+ sprite gBattleAnimSpriteTemplate_83DB34C, 130, 1, 1, 14, -20, -18, 24
+ sprite gBattleAnimSpriteTemplate_83DB34C, 130, 1, 1, 12, -36, -16, 24
panse_19 SE_W091, 63
ret
@@ -2642,11 +2642,11 @@ _81CB0AA:
_81CB0AB:
loadsprite 10074
loadsprite 10281
- sprite gBattleAnimSpriteTemplate_83DB364, 1, 3, 0, 0, 180
- sprite gBattleAnimSpriteTemplate_83DB364, 1, 3, 0, 1, 180
+ sprite gBattleAnimSpriteTemplate_83DB364, 1, 0, 0, 180
+ sprite gBattleAnimSpriteTemplate_83DB364, 1, 0, 1, 180
monbg_22 0
pause 1
- createtask sub_80E1244, 2, 1, 0
+ createtask sub_80E1244, 2, 0
pause 6
call _81CB16A
call _81CB16A
@@ -2656,29 +2656,29 @@ _81CB0AB:
wait
clearmonbg_23 0
pause 1
- createtask sub_80E1244, 2, 1, 1
+ createtask sub_80E1244, 2, 1
jump _81CB0AA
_81CB106:
loadsprite 10135
loadsprite 10281
- createtask sub_80E149C, 2, 1, 0
+ createtask sub_80E149C, 2, 0
wait
monbg 0
- sprite gBattleAnimSpriteTemplate_83DB364, 1, 3, 0, 0, 48
- sprite gBattleAnimSpriteTemplate_83DB364, 1, 3, 0, 1, 48
+ sprite gBattleAnimSpriteTemplate_83DB364, 1, 0, 0, 48
+ sprite gBattleAnimSpriteTemplate_83DB364, 1, 0, 1, 48
pause 1
- createtask sub_80E149C, 2, 1, 1
+ createtask sub_80E149C, 2, 1
pause 16
- sprite gBattleAnimSpriteTemplate_83DB4A8, 2, 4, -8, 0, 1, 2
- createtask sub_80A7E7C, 2, 5, 1, 5, 0, 6, 1
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 2, -8, 0, 1, 2
+ createtask sub_80A7E7C, 2, 1, 5, 0, 6, 1
panse_19 SE_W025B, 192
clearmonbg 0
jump _81CB0AA
_81CB16A:
- sprite gBattleAnimSpriteTemplate_83DB34C, 2, 6, 0, 0, 12, 4, -16, 18
- sprite gBattleAnimSpriteTemplate_83DB34C, 2, 6, 0, 0, 16, 4, -10, 18
- sprite gBattleAnimSpriteTemplate_83DB34C, 2, 6, 0, 1, 14, 4, -18, 18
- sprite gBattleAnimSpriteTemplate_83DB34C, 2, 6, 0, 1, 12, 4, -16, 18
+ sprite gBattleAnimSpriteTemplate_83DB34C, 2, 0, 0, 12, 4, -16, 18
+ sprite gBattleAnimSpriteTemplate_83DB34C, 2, 0, 0, 16, 4, -10, 18
+ sprite gBattleAnimSpriteTemplate_83DB34C, 2, 0, 1, 14, 4, -18, 18
+ sprite gBattleAnimSpriteTemplate_83DB34C, 2, 0, 1, 12, 4, -16, 18
panse_19 SE_W091, 192
pause 32
ret
@@ -2696,8 +2696,8 @@ Move_MEDITATE: @ 81CB1BD
Move_AGILITY: @ 81CB1DA
monbg 2
setalpha 12, 8
- createtask sub_80A8500, 2, 5, 0, 24, 6, 4, 4
- createtask sub_80E2DD8, 2, 4, 0, 4, 7, 10
+ createtask sub_80A8500, 2, 0, 24, 6, 4, 4
+ createtask sub_80E2DD8, 2, 0, 4, 7, 10
panse_19 SE_W104, 192
pause 12
panse_19 SE_W104, 192
@@ -2718,12 +2718,12 @@ Move_QUICK_ATTACK: @ 81CB224
loadsprite 10135
monbg 2
setalpha 12, 8
- createtask sub_80A8500, 2, 5, 0, 24, 6, 1, 5
- createtask sub_80E2DD8, 2, 4, 0, 4, 7, 3
+ createtask sub_80A8500, 2, 0, 24, 6, 1, 5
+ createtask sub_80E2DD8, 2, 0, 4, 7, 3
panse_19 SE_W026, 192
pause 4
- createtask sub_80A7E7C, 2, 5, 1, 5, 0, 6, 1
- sprite gBattleAnimSpriteTemplate_83DB4A8, 132, 4, 0, 0, 1, 1
+ createtask sub_80A7E7C, 2, 1, 5, 0, 6, 1
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 132, 0, 0, 1, 1
panse_19 SE_W233B, 63
wait
clearmonbg 2
@@ -2736,17 +2736,17 @@ Move_RAGE: @ 81CB27C
loadsprite 10087
monbg 1
setalpha 12, 8
- createtask sub_8079790, 3, 5, 0, 31, 10, 0, 2
- sprite gBattleAnimSpriteTemplate_83D7798, 2, 3, 0, -20, -28
+ createtask sub_8079790, 3, 0, 31, 10, 0, 2
+ sprite gBattleAnimSpriteTemplate_83D7798, 2, 0, -20, -28
panse_19 SE_W207B, 192
pause 20
- sprite gBattleAnimSpriteTemplate_83D7798, 2, 3, 0, 20, -28
+ sprite gBattleAnimSpriteTemplate_83D7798, 2, 0, 20, -28
panse_19 SE_W207B, 192
wait
- sprite gBattleAnimSpriteTemplate_83C1FB0, 2, 2, 4, 6
+ sprite gBattleAnimSpriteTemplate_83C1FB0, 2, 4, 6
pause 4
- sprite gBattleAnimSpriteTemplate_83DB4A8, 2, 4, 0, 0, 1, 2
- createtask sub_80A9058, 2, 5, 1, 1, 10, 1, 0
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 2, 0, 0, 1, 2
+ createtask sub_80A9058, 2, 1, 1, 10, 1, 0
panse_19 SE_W233B, 63
wait
clearmonbg 1
@@ -2799,10 +2799,10 @@ Move_MINIMIZE: @ 81CB352
Move_METRONOME: @ 81CB365
loadsprite 10064
loadsprite 10209
- sprite gBattleAnimSpriteTemplate_83D7220, 11, 2, 0, 100
+ sprite gBattleAnimSpriteTemplate_83D7220, 11, 0, 100
panse_19 SE_W118, 192
pause 6
- sprite gBattleAnimSpriteTemplate_83D72C8, 12, 1, 0
+ sprite gBattleAnimSpriteTemplate_83D72C8, 12, 0
pause 24
panse_1C SE_W039, 192, 22, 3
wait
@@ -2818,27 +2818,27 @@ _81CB399:
wait
jump _81CB398
_81CB3A9:
- sprite gBattleAnimSpriteTemplate_83C2010, 2, 6, 0, -24, 0, 0, 10, 0
+ sprite gBattleAnimSpriteTemplate_83C2010, 2, 0, -24, 0, 0, 10, 0
panse_19 SE_W036, 192
wait
- createtask sub_80A8E04, 2, 4, 16, 96, 0, 2
+ createtask sub_80A8E04, 2, 16, 96, 0, 2
wait
- sprite gBattleAnimSpriteTemplate_83C2010, 2, 6, 0, 24, 0, 0, 10, 1
+ sprite gBattleAnimSpriteTemplate_83C2010, 2, 0, 24, 0, 0, 10, 1
wait
ret
_81CB3E6:
loadsprite 10135
- createtask sub_80CDAC8, 2, 1, 0
+ createtask sub_80CDAC8, 2, 0
panse_19 SE_W036, 192
wait
playse SE_BAN
- sprite gBattleAnimSpriteTemplate_83DB3DC, 2, 7, 1, 3, 1, 0, 14, 32767, 14
- createtask sub_80A8154, 2, 5, 0, 2, 0, 40, 1
- createtask sub_80A8154, 2, 5, 1, 10, 0, 40, 1
- sprite gBattleAnimSpriteTemplate_83DB538, 132, 4, 0, 0, 1, 0
+ sprite gBattleAnimSpriteTemplate_83DB3DC, 2, 1, 3, 1, 0, 14, 32767, 14
+ createtask sub_80A8154, 2, 0, 2, 0, 40, 1
+ createtask sub_80A8154, 2, 1, 10, 0, 40, 1
+ sprite gBattleAnimSpriteTemplate_83DB538, 132, 0, 0, 1, 0
panse_1C SE_W025B, 63, 8, 3
wait
- createtask sub_80CDAC8, 2, 1, 1
+ createtask sub_80CDAC8, 2, 1
jump _81CB398
Move_AMNESIA: @ 81CB455
@@ -2859,8 +2859,8 @@ Move_KINESIS: @ 81CB479
panse_19 SE_W060, 192
call Unknown_81D61E7
sprite gBattleAnimSpriteTemplate_83DA824, 20
- sprite gBattleAnimSpriteTemplate_83D7450, 19, 3, 32, -8, 0
- sprite gBattleAnimSpriteTemplate_83D7450, 19, 3, 32, 16, 1
+ sprite gBattleAnimSpriteTemplate_83D7450, 19, 32, -8, 0
+ sprite gBattleAnimSpriteTemplate_83D7450, 19, 32, 16, 1
panse_1C SE_W109, 192, 21, 2
pause 60
panse_19 SE_W146, 192
@@ -2875,19 +2875,19 @@ Move_KINESIS: @ 81CB479
Move_GLARE: @ 81CB4CA
loadsprite 10248
loadsprite 10218
- createtask sub_81301EC, 5, 1, 0
+ createtask sub_81301EC, 5, 0
panse_19 SE_W060B, 192
wait
- createtask sub_80E2A38, 5, 5, 1, 0, 0, 16, 0
+ createtask sub_80E2A38, 5, 1, 0, 0, 16, 0
wait
- sprite gBattleAnimSpriteTemplate_83D7B94, 0, 2, -16, -8
- sprite gBattleAnimSpriteTemplate_83D7B94, 0, 2, 16, -8
+ sprite gBattleAnimSpriteTemplate_83D7B94, 0, -16, -8
+ sprite gBattleAnimSpriteTemplate_83D7B94, 0, 16, -8
createtask sub_80D23B4, 5
panse_19 SE_W043, 192
pause 2
- createtask sub_80D60B4, 3, 3, 20, 1, 0
+ createtask sub_80D60B4, 3, 20, 1, 0
wait
- createtask sub_80E2A38, 5, 5, 1, 0, 16, 0, 0
+ createtask sub_80E2A38, 5, 1, 0, 16, 0, 0
end
Move_BARRAGE: @ 81CB533
@@ -2895,9 +2895,9 @@ Move_BARRAGE: @ 81CB533
createtask sub_8130554, 3
panse_19 SE_W207, 192
pause 24
- sprite gBattleAnimSpriteTemplate_83DB428, 2, 4, 8, 1, 40, 1
- createtask sub_80A7E7C, 3, 5, 1, 0, 4, 20, 1
- createtask sub_80A7E7C, 3, 5, 3, 0, 4, 20, 1
+ sprite gBattleAnimSpriteTemplate_83DB428, 2, 8, 1, 40, 1
+ createtask sub_80A7E7C, 3, 1, 0, 4, 20, 1
+ createtask sub_80A7E7C, 3, 3, 0, 4, 20, 1
panse_1C SE_W070, 63, 8, 2
end
@@ -2908,38 +2908,38 @@ _81CB584:
_81CB585:
monbg 3
setalpha 12, 11
- createtask sub_80E3BA4, 5, 1, 7
+ createtask sub_80E3BA4, 5, 7
jumpvareq 7, 0, _81CB5A0
jump _81CB617
_81CB5A0:
- createtask sub_80E2A38, 10, 5, 27, 1, 0, 12, 0
+ createtask sub_80E2A38, 10, 27, 1, 0, 12, 0
wait
pause 12
- createtask sub_80E2A38, 10, 5, 2, 1, 8, 0, 0
- createtask sub_80E1864, 5, 3, 0, 2, 16
+ createtask sub_80E2A38, 10, 2, 1, 8, 0, 0
+ createtask sub_80E1864, 5, 0, 2, 16
panse_1C SE_W287, 192, 4, 8
- createtask sub_80E2A38, 10, 5, 2, 1, 0, 15, 32767
+ createtask sub_80E2A38, 10, 2, 1, 0, 15, 32767
pause 20
- createtask sub_80E2A38, 10, 5, 2, 1, 15, 0, 32767
+ createtask sub_80E2A38, 10, 2, 1, 15, 0, 32767
wait
- createtask sub_80E2A38, 10, 5, 25, 1, 8, 0, 0
+ createtask sub_80E2A38, 10, 25, 1, 8, 0, 0
wait
clearmonbg 3
blendoff
jump _81CB584
_81CB617:
- createtask sub_80E2A7C, 10, 5, 1, 1, 0, 12, 0
+ createtask sub_80E2A7C, 10, 1, 1, 0, 12, 0
wait
pause 12
- createtask sub_80E2A38, 10, 5, 2, 1, 8, 0, 0
- createtask sub_80E1864, 5, 3, 0, 2, 16
+ createtask sub_80E2A38, 10, 2, 1, 8, 0, 0
+ createtask sub_80E1864, 5, 0, 2, 16
panse_19 SE_W287, 192
pause 8
- createtask sub_80E2A38, 10, 5, 2, 1, 0, 15, 32767
+ createtask sub_80E2A38, 10, 2, 1, 0, 15, 32767
pause 20
- createtask sub_80E2A38, 10, 5, 2, 1, 15, 0, 32767
+ createtask sub_80E2A38, 10, 2, 1, 15, 0, 32767
wait
- createtask sub_80E2A7C, 10, 5, 4, 1, 8, 0, 0
+ createtask sub_80E2A7C, 10, 4, 1, 8, 0, 0
wait
clearmonbg 3
blendoff
@@ -2949,19 +2949,19 @@ _81CB68E:
loadsprite 10284
call Unknown_81D61FB
monbg 0
- createtask sub_80E2A38, 10, 5, 2, 0, 0, 16, 32767
+ createtask sub_80E2A38, 10, 2, 0, 0, 16, 32767
pause 4
- createtask sub_80DFC24, 5, 1, 0
+ createtask sub_80DFC24, 5, 0
wait
- createtask sub_812B340, 5, 2, 238, -64
+ createtask sub_812B340, 5, 238, -64
sprite gBattleAnimSpriteTemplate_83DA65C, 130
pause 14
- createtask sub_80A7FA0, 2, 5, 1, 10, 0, 18, 1
- createtask sub_812B30C, 5, 2, 141, 63
+ createtask sub_80A7FA0, 2, 1, 10, 0, 18, 1
+ createtask sub_812B30C, 5, 141, 63
pause 20
- createtask sub_80DFD24, 5, 1, 1
+ createtask sub_80DFD24, 5, 1
pause 2
- createtask sub_80E2A38, 10, 5, 2, 0, 15, 0, 32767
+ createtask sub_80E2A38, 10, 2, 0, 15, 0, 32767
wait
clearmonbg 0
call Unknown_81D622B
@@ -2974,7 +2974,7 @@ Move_FLASH: @ 81CB713
end
Move_SPLASH: @ 81CB720
- createtask sub_80D074C, 2, 2, 0, 3
+ createtask sub_80D074C, 2, 0, 3
pause 8
panse_1C SE_W039, 192, 38, 3
wait
@@ -2983,7 +2983,7 @@ Move_SPLASH: @ 81CB720
Move_ACID_ARMOR: @ 81CB735
monbg 0
setalpha 15, 0
- createtask sub_812F314, 2, 1, 0
+ createtask sub_812F314, 2, 0
panse_19 SE_W151, 192
wait
blendoff
@@ -2999,31 +2999,31 @@ Move_SHARPEN: @ 81CB74E
Move_SUPER_FANG: @ 81CB75A
loadsprite 10192
- createtask sub_80A8154, 2, 5, 0, 1, 0, 20, 1
+ createtask sub_80A8154, 2, 0, 1, 0, 20, 1
panse_19 SE_W082, 192
wait
- createtask sub_80A8154, 2, 5, 0, 3, 0, 48, 1
- createtask sub_8079790, 2, 5, 0, 1247, 12, 4, 1
+ createtask sub_80A8154, 2, 0, 3, 0, 48, 1
+ createtask sub_8079790, 2, 0, 1247, 12, 4, 1
wait
pause 20
- sprite gBattleAnimSpriteTemplate_83C1FB0, 2, 2, 4, 4
+ sprite gBattleAnimSpriteTemplate_83C1FB0, 2, 4, 4
pause 4
sprite gBattleAnimSpriteTemplate_83D7080, 130
panse_19 SE_W044, 63
pause 8
- sprite gBattleAnimSpriteTemplate_83DB3DC, 2, 7, 1, 3, 1, 2143, 14, 32767, 14
- createtask sub_80A7E7C, 2, 5, 1, 0, 7, 12, 1
+ sprite gBattleAnimSpriteTemplate_83DB3DC, 2, 1, 3, 1, 2143, 14, 32767, 14
+ createtask sub_80A7E7C, 2, 1, 0, 7, 12, 1
wait
blendoff
end
Move_SLASH: @ 81CB7DB
loadsprite 10183
- sprite gBattleAnimSpriteTemplate_83D6E38, 130, 3, 1, -8, 0
+ sprite gBattleAnimSpriteTemplate_83D6E38, 130, 1, -8, 0
panse_19 SE_W013, 63
pause 4
- sprite gBattleAnimSpriteTemplate_83D6E38, 130, 3, 1, 8, 0
- createtask sub_80A7FA0, 2, 5, 1, 4, 0, 18, 1
+ sprite gBattleAnimSpriteTemplate_83D6E38, 130, 1, 8, 0
+ createtask sub_80A7FA0, 2, 1, 4, 0, 18, 1
panse_19 SE_W013, 63
wait
end
@@ -3033,13 +3033,13 @@ Move_STRUGGLE: @ 81CB815
loadsprite 10215
monbg 1
setalpha 12, 8
- createtask sub_80A8154, 2, 5, 0, 3, 0, 12, 4
- sprite gBattleAnimSpriteTemplate_83D7C90, 2, 3, 0, 0, 2
- sprite gBattleAnimSpriteTemplate_83D7C90, 2, 3, 0, 1, 2
+ createtask sub_80A8154, 2, 0, 3, 0, 12, 4
+ sprite gBattleAnimSpriteTemplate_83D7C90, 2, 0, 0, 2
+ sprite gBattleAnimSpriteTemplate_83D7C90, 2, 0, 1, 2
panse_1C SE_W029, 192, 12, 4
wait
- sprite gBattleAnimSpriteTemplate_83DB4A8, 3, 4, 0, 0, 1, 2
- createtask sub_80A8154, 2, 5, 1, 3, 0, 6, 1
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 3, 0, 0, 1, 2
+ createtask sub_80A8154, 2, 1, 3, 0, 6, 1
panse_19 SE_W025B, 63
wait
clearmonbg 1
@@ -3053,7 +3053,7 @@ Move_SKETCH: @ 81CB87B
sprite gBattleAnimSpriteTemplate_83D77E0, 130
wait
clearmonbg 1
- createtask sub_80D074C, 2, 2, 0, 2
+ createtask sub_80D074C, 2, 0, 2
panse_1C SE_W039, 192, 38, 2
end
@@ -3063,7 +3063,7 @@ Move_NIGHTMARE: @ 81CB8A3
jumpunkcond _81CB8CF
monbg 3
createtask sub_80DE1B0, 2
- createtask sub_80A7E7C, 2, 5, 1, 3, 0, 40, 1
+ createtask sub_80A7E7C, 2, 1, 3, 0, 40, 1
panse_19 SE_W171, 63
wait
clearmonbg 3
@@ -3071,8 +3071,8 @@ Move_NIGHTMARE: @ 81CB8A3
waitbgfadein
end
_81CB8CF:
- createtask sub_8079790, 2, 5, 0, 32767, 10, 2, 1
- createtask sub_80A7E7C, 2, 5, 0, 3, 0, 32, 1
+ createtask sub_8079790, 2, 0, 32767, 10, 2, 1
+ createtask sub_80A7E7C, 2, 0, 3, 0, 32, 1
panse_19 SE_W171, 63
wait
restorebg
@@ -3083,11 +3083,11 @@ Move_FLAIL: @ 81CB8F9
loadsprite 10135
monbg 1
setalpha 12, 8
- createtask sub_812E860, 2, 1, 0
+ createtask sub_812E860, 2, 0
panse_1C SE_W029, 192, 8, 2
wait
- sprite gBattleAnimSpriteTemplate_83DB4F0, 131, 2, 1, 3
- createtask sub_80A9058, 2, 5, 0, 1, 30, 1, 0
+ sprite gBattleAnimSpriteTemplate_83DB4F0, 131, 1, 3
+ createtask sub_80A9058, 2, 0, 1, 30, 1, 0
panse_19 SE_W025B, 63
wait
clearmonbg 1
@@ -3099,7 +3099,7 @@ Move_SPITE: @ 81CB936
panse_19 SE_W060, 192
waitbgfadein
monbg 3
- createtask sub_80E1F8C, 2, 6, 2, 2, 6, 0, 8, 32767
+ createtask sub_80E1F8C, 2, 2, 2, 6, 0, 8, 32767
createtask sub_80DE3AC, 2
panse_1C SE_W060, 63, 20, 3
wait
@@ -3117,17 +3117,17 @@ Move_MACH_PUNCH: @ 81CB965
fadetobg 9
_81CB97E:
waitbgfadeout
- createtask sub_80E3A58, 5, 4, -2304, 0, 1, -1
+ createtask sub_80E3A58, 5, -2304, 0, 1, -1
waitbgfadein
pause 0
setalpha 9, 8
- createtask sub_807A69C, 2, 2, 28968, 10
+ createtask sub_807A69C, 2, 28968, 10
panse_19 SE_W026, 192
pause 6
- sprite gBattleAnimSpriteTemplate_83DB4A8, 131, 4, 0, 0, 1, 1
- sprite gBattleAnimSpriteTemplate_83D9FA8, 132, 5, 0, 0, 8, 1, 0
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 131, 0, 0, 1, 1
+ sprite gBattleAnimSpriteTemplate_83D9FA8, 132, 0, 0, 8, 1, 0
panse_19 SE_W004, 63
- createtask sub_80A7E7C, 2, 5, 1, 3, 0, 6, 1
+ createtask sub_80A7E7C, 2, 1, 3, 0, 6, 1
wait
clearmonbg 2
blendoff
@@ -3145,14 +3145,14 @@ Move_FORESIGHT: @ 81CB9ED
monbg 3
monbgprio_28 1
setalpha 16, 0
- sprite gBattleAnimSpriteTemplate_8402A24, 130, 1, 1
+ sprite gBattleAnimSpriteTemplate_8402A24, 130, 1
pause 17
panse_1C SE_W166, 63, 16, 4
pause 48
pause 24
panse_19 SE_W166, 63
pause 10
- createtask sub_8079790, 5, 5, 1, 32767, 12, 2, 1
+ createtask sub_8079790, 5, 1, 32767, 12, 2, 1
panse_19 SE_W197, 63
wait
blendoff
@@ -3164,13 +3164,13 @@ Move_DESTINY_BOND: @ 81CBA2C
fadetobg 2
panse_19 SE_W060, 192
waitbgfadein
- createtask sub_80DE918, 5, 2, 0, 48
+ createtask sub_80DE918, 5, 0, 48
panse_19 SE_W109, 192
pause 48
- createtask sub_80A8154, 2, 5, 0, 2, 0, 24, 1
- createtask sub_80E2A7C, 2, 5, 6, 1, 0, 12, 30653
+ createtask sub_80A8154, 2, 0, 2, 0, 24, 1
+ createtask sub_80E2A7C, 2, 6, 1, 0, 12, 30653
pause 24
- createtask sub_80E2A7C, 2, 5, 6, 1, 12, 0, 30653
+ createtask sub_80E2A7C, 2, 6, 1, 12, 0, 30653
panse_19 SE_W171, 63
wait
restorebg
@@ -3184,35 +3184,35 @@ Move_ENDURE: @ 81CBA87
panse_19 SE_W082, 192
call _81CBAC7
pause 8
- createtask sub_80E1F8C, 2, 6, 2, 2, 2, 0, 11, 31
- createtask sub_80A7FA0, 2, 5, 0, 1, 0, 32, 1
+ createtask sub_80E1F8C, 2, 2, 2, 2, 0, 11, 31
+ createtask sub_80A7FA0, 2, 0, 1, 0, 32, 1
call _81CBAC7
pause 8
call _81CBAC7
wait
end
_81CBAC7:
- sprite gBattleAnimSpriteTemplate_83D6E98, 2, 4, 0, -24, 26, 2
+ sprite gBattleAnimSpriteTemplate_83D6E98, 2, 0, -24, 26, 2
pause 4
- sprite gBattleAnimSpriteTemplate_83D6E98, 2, 4, 0, 14, 28, 1
+ sprite gBattleAnimSpriteTemplate_83D6E98, 2, 0, 14, 28, 1
pause 4
- sprite gBattleAnimSpriteTemplate_83D6E98, 2, 4, 0, -5, 10, 2
+ sprite gBattleAnimSpriteTemplate_83D6E98, 2, 0, -5, 10, 2
pause 4
- sprite gBattleAnimSpriteTemplate_83D6E98, 2, 4, 0, 28, 26, 3
+ sprite gBattleAnimSpriteTemplate_83D6E98, 2, 0, 28, 26, 3
pause 4
- sprite gBattleAnimSpriteTemplate_83D6E98, 2, 4, 0, -12, 0, 1
+ sprite gBattleAnimSpriteTemplate_83D6E98, 2, 0, -12, 0, 1
ret
Move_CHARM: @ 81CBB1B
loadsprite 10210
- createtask sub_812E568, 5, 3, 0, 2, 0
- sprite gBattleAnimSpriteTemplate_83D7A80, 3, 2, 0, 20
+ createtask sub_812E568, 5, 0, 2, 0
+ sprite gBattleAnimSpriteTemplate_83D7A80, 3, 0, 20
panse_19 SE_W204, 192
pause 15
- sprite gBattleAnimSpriteTemplate_83D7A80, 3, 2, -20, 20
+ sprite gBattleAnimSpriteTemplate_83D7A80, 3, -20, 20
panse_19 SE_W204, 192
pause 15
- sprite gBattleAnimSpriteTemplate_83D7A80, 3, 2, 20, 20
+ sprite gBattleAnimSpriteTemplate_83D7A80, 3, 20, 20
panse_19 SE_W204, 192
wait
end
@@ -3226,8 +3226,8 @@ Move_ROLLOUT: @ 81CBB5E
setalpha 12, 8
createtask sub_80DD4D4, 2
wait
- createtask sub_80A9058, 2, 5, 0, 1, 30, 1, 0
- sprite gBattleAnimSpriteTemplate_83DB4A8, 4, 4, 0, 0, 1, 2
+ createtask sub_80A9058, 2, 0, 1, 30, 1, 0
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 4, 0, 0, 1, 2
panse_19 SE_W025B, 63
wait
clearmonbg 3
@@ -3240,24 +3240,24 @@ Move_FALSE_SWIPE: @ 81CBB9F
sprite gBattleAnimSpriteTemplate_83D6E50, 130
panse_19 SE_W233, 63
pause 16
- sprite gBattleAnimSpriteTemplate_83D6E68, 130, 1, 0
+ sprite gBattleAnimSpriteTemplate_83D6E68, 130, 0
panse_19 SE_W104, 63
pause 2
- sprite gBattleAnimSpriteTemplate_83D6E68, 130, 1, 16
+ sprite gBattleAnimSpriteTemplate_83D6E68, 130, 16
pause 2
- sprite gBattleAnimSpriteTemplate_83D6E68, 130, 1, 32
+ sprite gBattleAnimSpriteTemplate_83D6E68, 130, 32
panse_19 SE_W104, 63
pause 2
- sprite gBattleAnimSpriteTemplate_83D6E68, 130, 1, 48
+ sprite gBattleAnimSpriteTemplate_83D6E68, 130, 48
pause 2
- sprite gBattleAnimSpriteTemplate_83D6E68, 130, 1, 64
+ sprite gBattleAnimSpriteTemplate_83D6E68, 130, 64
panse_19 SE_W104, 63
pause 2
- sprite gBattleAnimSpriteTemplate_83D6E68, 130, 1, 80
+ sprite gBattleAnimSpriteTemplate_83D6E68, 130, 80
pause 2
wait
- createtask sub_80A7E7C, 2, 5, 1, 5, 0, 6, 1
- sprite gBattleAnimSpriteTemplate_83DB4A8, 132, 4, 0, 0, 1, 3
+ createtask sub_80A7E7C, 2, 1, 5, 0, 6, 1
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 132, 0, 0, 1, 3
panse_19 SE_W004, 63
end
@@ -3271,10 +3271,10 @@ Move_SWAGGER: @ 81CBC26
panse_1C SE_W207, 192, 4, 2
wait
pause 24
- sprite gBattleAnimSpriteTemplate_83D7798, 130, 3, 1, -20, -28
+ sprite gBattleAnimSpriteTemplate_83D7798, 130, 1, -20, -28
panse_19 SE_W207B, 63
pause 12
- sprite gBattleAnimSpriteTemplate_83D7798, 130, 3, 1, 20, -28
+ sprite gBattleAnimSpriteTemplate_83D7798, 130, 1, 20, -28
panse_19 SE_W207B, 63
wait
end
@@ -3292,7 +3292,7 @@ Move_MILK_DRINK: @ 81CBC6E
pause 20
panse_19 SE_W152, 192
wait
- sprite gBattleAnimSpriteTemplate_83D7928, 3, 4, 0, 0, 1, 0
+ sprite gBattleAnimSpriteTemplate_83D7928, 3, 0, 0, 1, 0
panse_19 SE_W208, 192
wait
clearmonbg 1
@@ -3308,34 +3308,34 @@ Move_MAGNITUDE: @ 81CBCB0
_81CBCC8:
end
_81CBCC9:
- createtask sub_80E1864, 5, 3, 5, 0, 50
- createtask sub_80E1864, 5, 3, 4, 0, 50
+ createtask sub_80E1864, 5, 5, 0, 50
+ createtask sub_80E1864, 5, 4, 0, 50
panse_1C SE_W070, 63, 8, 10
jump _81CBCC8
_81CBCEE:
- createtask sub_80E1864, 5, 3, 5, 0, 50
- createtask sub_80E1864, 5, 3, 4, 0, 50
+ createtask sub_80E1864, 5, 5, 0, 50
+ createtask sub_80E1864, 5, 4, 0, 50
panse_1C SE_W070, 63, 8, 10
pause 10
- sprite gBattleAnimSpriteTemplate_83DB3DC, 2, 7, 1, 3, 1, 0, 14, 32767, 14
+ sprite gBattleAnimSpriteTemplate_83DB3DC, 2, 1, 3, 1, 0, 14, 32767, 14
pause 16
- sprite gBattleAnimSpriteTemplate_83DB3DC, 2, 7, 1, 3, 1, 0, 14, 32767, 14
+ sprite gBattleAnimSpriteTemplate_83DB3DC, 2, 1, 3, 1, 0, 14, 32767, 14
jump _81CBCC8
Move_RAPID_SPIN: @ 81CBD41
loadsprite 10135
loadsprite 10229
monbg 0
- sprite gBattleAnimSpriteTemplate_84023E8, 2, 6, 0, 0, 32, -32, 40, -2
- createtask sub_812CDC8, 2, 3, 0, 2, 0
+ sprite gBattleAnimSpriteTemplate_84023E8, 2, 0, 0, 32, -32, 40, -2
+ createtask sub_812CDC8, 2, 0, 2, 0
panse_1C SE_W013B, 192, 8, 4
wait
- sprite gBattleAnimSpriteTemplate_83DB4A8, 130, 4, 0, 0, 1, 2
- createtask sub_80A9058, 2, 5, 0, 1, 10, 1, 0
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 130, 0, 0, 1, 2
+ createtask sub_80A9058, 2, 0, 1, 10, 1, 0
panse_19 SE_W003, 63
wait
pause 8
- createtask sub_812CDC8, 2, 3, 0, 2, 1
+ createtask sub_812CDC8, 2, 0, 2, 1
panse_1C SE_W013B, 192, 8, 4
wait
clearmonbg 0
@@ -3346,21 +3346,21 @@ Move_MOONLIGHT: @ 81CBDAE
loadsprite 10195
loadsprite 10031
setalpha 0, 16
- sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 5, 1, 1, 0, 16, 0
+ sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 1, 1, 0, 16, 0
wait
- sprite gBattleAnimSpriteTemplate_83D6FC8, 2, 2, 120, 56
- createtask sub_8079670, 3, 5, 0, 16, 16, 0, 1
+ sprite gBattleAnimSpriteTemplate_83D6FC8, 2, 120, 56
+ createtask sub_8079670, 3, 0, 16, 16, 0, 1
panse_19 SE_W236, 0
pause 30
- sprite gBattleAnimSpriteTemplate_83D6FF8, 40, 2, -12, 0
+ sprite gBattleAnimSpriteTemplate_83D6FF8, 40, -12, 0
pause 30
- sprite gBattleAnimSpriteTemplate_83D6FF8, 40, 2, -24, 0
+ sprite gBattleAnimSpriteTemplate_83D6FF8, 40, -24, 0
pause 30
- sprite gBattleAnimSpriteTemplate_83D6FF8, 40, 2, 21, 0
+ sprite gBattleAnimSpriteTemplate_83D6FF8, 40, 21, 0
pause 30
- sprite gBattleAnimSpriteTemplate_83D6FF8, 40, 2, 0, 0
+ sprite gBattleAnimSpriteTemplate_83D6FF8, 40, 0, 0
pause 30
- sprite gBattleAnimSpriteTemplate_83D6FF8, 40, 2, 10, 0
+ sprite gBattleAnimSpriteTemplate_83D6FF8, 40, 10, 0
pause 20
createtask sub_80CE3EC, 2
wait
@@ -3376,7 +3376,7 @@ Move_EXTREME_SPEED: @ 81CBE3E
fadetobg 9
_81CBE55:
waitbgfadeout
- createtask sub_80E3A58, 5, 4, -2304, 0, 1, -1
+ createtask sub_80E3A58, 5, -2304, 0, 1, -1
waitbgfadein
createtask sub_80D15A4, 2
panse_1C SE_W013B, 192, 8, 3
@@ -3389,13 +3389,13 @@ _81CBE55:
createtask sub_80D1638, 2
pause 2
panse_19 SE_W004, 63
- sprite gBattleAnimSpriteTemplate_83DB508, 130, 4, 1, 0, -12, 3
+ sprite gBattleAnimSpriteTemplate_83DB508, 130, 1, 0, -12, 3
pause 10
panse_19 SE_W004, 63
- sprite gBattleAnimSpriteTemplate_83DB508, 130, 4, 1, 0, 12, 3
+ sprite gBattleAnimSpriteTemplate_83DB508, 130, 1, 0, 12, 3
pause 10
panse_19 SE_W233B, 63
- sprite gBattleAnimSpriteTemplate_83DB508, 130, 4, 1, 0, 0, 3
+ sprite gBattleAnimSpriteTemplate_83DB508, 130, 1, 0, 0, 3
wait
createtask sub_80D18D4, 2
pause 10
@@ -3420,60 +3420,60 @@ Move_UPROAR: @ 81CBEFC
loadsprite 10225
loadsprite 10203
monbg 3
- createtask sub_80D2CF8, 2, 1, 0
- sprite gBattleAnimSpriteTemplate_83D79A4, 3, 6, 0, 0, 0, 0, 31, 8
+ createtask sub_80D2CF8, 2, 0
+ sprite gBattleAnimSpriteTemplate_83D79A4, 3, 0, 0, 0, 0, 31, 8
panse_19 SE_W253, 192
- sprite gBattleAnimSpriteTemplate_83D7CC8, 2, 4, 0, 29, -12, 0
- sprite gBattleAnimSpriteTemplate_83D7CC8, 2, 4, 0, -12, -29, 1
+ sprite gBattleAnimSpriteTemplate_83D7CC8, 2, 0, 29, -12, 0
+ sprite gBattleAnimSpriteTemplate_83D7CC8, 2, 0, -12, -29, 1
pause 16
- createtask sub_80D2CF8, 2, 1, 0
- sprite gBattleAnimSpriteTemplate_83D79A4, 3, 6, 0, 0, 0, 0, 31, 8
+ createtask sub_80D2CF8, 2, 0
+ sprite gBattleAnimSpriteTemplate_83D79A4, 3, 0, 0, 0, 0, 31, 8
panse_19 SE_W253, 192
- sprite gBattleAnimSpriteTemplate_83D7CC8, 2, 4, 0, 12, -29, 1
- sprite gBattleAnimSpriteTemplate_83D7CC8, 2, 4, 0, -29, -12, 0
+ sprite gBattleAnimSpriteTemplate_83D7CC8, 2, 0, 12, -29, 1
+ sprite gBattleAnimSpriteTemplate_83D7CC8, 2, 0, -29, -12, 0
pause 16
- createtask sub_80D2CF8, 2, 1, 0
- sprite gBattleAnimSpriteTemplate_83D79A4, 3, 6, 0, 0, 0, 0, 31, 8
+ createtask sub_80D2CF8, 2, 0
+ sprite gBattleAnimSpriteTemplate_83D79A4, 3, 0, 0, 0, 0, 31, 8
panse_19 SE_W253, 192
- sprite gBattleAnimSpriteTemplate_83D7CC8, 2, 4, 0, 24, -24, 1
- sprite gBattleAnimSpriteTemplate_83D7CC8, 2, 4, 0, -24, -24, 0
+ sprite gBattleAnimSpriteTemplate_83D7CC8, 2, 0, 24, -24, 1
+ sprite gBattleAnimSpriteTemplate_83D7CC8, 2, 0, -24, -24, 0
wait
clearmonbg 3
end
Move_HEAT_WAVE: @ 81CBFC6
loadsprite 10261
- createtask sub_80E2C60, 5, 5, 10261, 0, 6, 6, 31
- createtask do_boulder_dust, 5, 1, 1
- createtask sub_80D6080, 6, 2, 6, 31
+ createtask sub_80E2C60, 5, 10261, 0, 6, 6, 31
+ createtask do_boulder_dust, 5, 1
+ createtask sub_80D6080, 6, 6, 31
panse_1B SE_W257, 192, 63, 2, 0
pause 4
createtask sub_80D5DDC, 5
pause 12
- sprite gBattleAnimSpriteTemplate_83DACE8, 40, 4, 10, 2304, 96, 1
+ sprite gBattleAnimSpriteTemplate_83DACE8, 40, 10, 2304, 96, 1
pause 10
- sprite gBattleAnimSpriteTemplate_83DACE8, 40, 4, 90, 2048, 96, 1
+ sprite gBattleAnimSpriteTemplate_83DACE8, 40, 90, 2048, 96, 1
pause 10
- sprite gBattleAnimSpriteTemplate_83DACE8, 40, 4, 50, 2560, 96, 1
+ sprite gBattleAnimSpriteTemplate_83DACE8, 40, 50, 2560, 96, 1
pause 10
- sprite gBattleAnimSpriteTemplate_83DACE8, 40, 4, 20, 2304, 96, 1
+ sprite gBattleAnimSpriteTemplate_83DACE8, 40, 20, 2304, 96, 1
pause 10
- sprite gBattleAnimSpriteTemplate_83DACE8, 40, 4, 70, 1984, 96, 1
+ sprite gBattleAnimSpriteTemplate_83DACE8, 40, 70, 1984, 96, 1
pause 10
- sprite gBattleAnimSpriteTemplate_83DACE8, 40, 4, 0, 2816, 96, 1
+ sprite gBattleAnimSpriteTemplate_83DACE8, 40, 0, 2816, 96, 1
pause 10
- sprite gBattleAnimSpriteTemplate_83DACE8, 40, 4, 60, 2560, 96, 1
+ sprite gBattleAnimSpriteTemplate_83DACE8, 40, 60, 2560, 96, 1
end
Move_HAIL: @ 81CC076
loadsprite 10263
loadsprite 10141
- createtask sub_80E2A38, 10, 5, 1, 3, 0, 6, 0
+ createtask sub_80E2A38, 10, 1, 3, 0, 6, 0
wait
createtask sub_80D8ADC, 5
panse_1C SE_W258, 0, 8, 10
wait
- createtask sub_80E2A38, 10, 5, 1, 3, 6, 0, 0
+ createtask sub_80E2A38, 10, 1, 3, 6, 0, 0
end
Move_TORMENT: @ 81CC0AE
@@ -3481,11 +3481,11 @@ Move_TORMENT: @ 81CC0AE
loadsprite 10209
createtask sub_812D008, 2
wait
- createtask sub_8079790, 2, 5, 1, 31, 10, 1, 1
- sprite gBattleAnimSpriteTemplate_83D7798, 130, 3, 1, -20, -28
+ createtask sub_8079790, 2, 1, 31, 10, 1, 1
+ sprite gBattleAnimSpriteTemplate_83D7798, 130, 1, -20, -28
panse_19 SE_W207B, 63
pause 20
- sprite gBattleAnimSpriteTemplate_83D7798, 130, 3, 1, 20, -28
+ sprite gBattleAnimSpriteTemplate_83D7798, 130, 1, 20, -28
panse_19 SE_W207B, 63
end
@@ -3515,29 +3515,29 @@ Move_MEMENTO: @ 81CC0F2
Move_FACADE: @ 81CC136
loadsprite 10243
- createtask sub_812FD7C, 2, 2, 0, 3
- createtask sub_812FFE4, 2, 2, 0, 72
+ createtask sub_812FD7C, 2, 0, 3
+ createtask sub_812FFE4, 2, 0, 72
panse_1C SE_W207, 192, 24, 3
end
Move_SMELLING_SALT: @ 81CC156
loadsprite 10247
loadsprite 10255
- sprite gBattleAnimSpriteTemplate_84029C4, 130, 3, 1, 0, 2
- sprite gBattleAnimSpriteTemplate_84029C4, 130, 3, 1, 1, 2
+ sprite gBattleAnimSpriteTemplate_84029C4, 130, 1, 0, 2
+ sprite gBattleAnimSpriteTemplate_84029C4, 130, 1, 1, 2
pause 32
- createtask sub_8130918, 3, 2, 1, 2
+ createtask sub_8130918, 3, 1, 2
panse_1C SE_W003, 63, 12, 2
wait
pause 4
- createtask sub_80A7FA0, 2, 5, 1, 2, 0, 6, 2
- sprite gBattleAnimSpriteTemplate_84029F4, 130, 3, 1, 8, 3
+ createtask sub_80A7FA0, 2, 1, 2, 0, 6, 2
+ sprite gBattleAnimSpriteTemplate_84029F4, 130, 1, 8, 3
panse_1C SE_W207B, 63, 16, 3
end
Move_FOLLOW_ME: @ 81CC1B1
loadsprite 10064
- sprite gBattleAnimSpriteTemplate_83D72E0, 2, 1, 0
+ sprite gBattleAnimSpriteTemplate_83D72E0, 2, 0
panse_19 SE_W039, 192
pause 18
panse_19 SE_W213, 192
@@ -3551,15 +3551,15 @@ Move_CHARGE: @ 81CC1D0
loadsprite 10213
monbg 0
setalpha 12, 8
- sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 5, 1, 2, 0, 4, 0
+ sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 1, 2, 0, 4, 0
wait
- createtask sub_80D6B3C, 2, 4, 0, 60, 2, 12
+ createtask sub_80D6B3C, 2, 0, 60, 2, 12
panse_19 SE_W268, 192
pause 30
panse_19 SE_W268, 192
pause 30
panse_19 SE_W268, 192
- sprite gBattleAnimSpriteTemplate_83D9A6C, 2, 1, 0
+ sprite gBattleAnimSpriteTemplate_83D9A6C, 2, 0
pause 25
panse_19 SE_W268, 192
pause 20
@@ -3570,12 +3570,12 @@ Move_CHARGE: @ 81CC1D0
pause 6
panse_1C SE_W268, 192, 6, 5
wait
- sprite gBattleAnimSpriteTemplate_83D9A9C, 2, 3, 0, 16, 16
+ sprite gBattleAnimSpriteTemplate_83D9A9C, 2, 0, 16, 16
pause 2
- sprite gBattleAnimSpriteTemplate_83D9A9C, 2, 3, 0, -16, -16
+ sprite gBattleAnimSpriteTemplate_83D9A9C, 2, 0, -16, -16
panse_19 SE_W085B, 192
wait
- sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 5, 1, 4, 4, 0, 0
+ sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 1, 4, 4, 0, 0
clearmonbg 0
blendoff
end
@@ -3584,53 +3584,53 @@ Move_TAUNT: @ 81CC26B
loadsprite 10214
loadsprite 10209
loadsprite 10087
- sprite gBattleAnimSpriteTemplate_83D7220, 11, 2, 0, 45
+ sprite gBattleAnimSpriteTemplate_83D7220, 11, 0, 45
panse_19 SE_W118, 192
pause 6
- sprite gBattleAnimSpriteTemplate_83D7358, 12, 1, 0
+ sprite gBattleAnimSpriteTemplate_83D7358, 12, 0
pause 4
panse_1C SE_W039, 192, 16, 2
wait
pause 8
- sprite gBattleAnimSpriteTemplate_83D7798, 130, 3, 1, -20, -28
+ sprite gBattleAnimSpriteTemplate_83D7798, 130, 1, -20, -28
panse_19 SE_W207B, 63
wait
pause 12
- sprite gBattleAnimSpriteTemplate_83D7798, 130, 3, 1, 20, -28
+ sprite gBattleAnimSpriteTemplate_83D7798, 130, 1, 20, -28
panse_19 SE_W207B, 63
end
Move_HELPING_HAND: @ 81CC2BF
loadsprite 10247
createtask sub_8130D20, 5
- sprite gBattleAnimSpriteTemplate_8402A0C, 40, 1, 0
- sprite gBattleAnimSpriteTemplate_8402A0C, 40, 1, 1
+ sprite gBattleAnimSpriteTemplate_8402A0C, 40, 0
+ sprite gBattleAnimSpriteTemplate_8402A0C, 40, 1
pause 19
panse_19 SE_W227, 0
- createtask sub_80A7FA0, 2, 5, 2, 2, 0, 5, 1
+ createtask sub_80A7FA0, 2, 2, 2, 0, 5, 1
pause 14
panse_19 SE_W227, 0
- createtask sub_80A7FA0, 2, 5, 2, 2, 0, 5, 1
+ createtask sub_80A7FA0, 2, 2, 2, 0, 5, 1
pause 20
panse_19 SE_W227, 0
- createtask sub_80A7FA0, 2, 5, 2, 3, 0, 10, 1
- createtask sub_8079790, 2, 5, 2, 1023, 12, 1, 1
+ createtask sub_80A7FA0, 2, 2, 3, 0, 10, 1
+ createtask sub_8079790, 2, 2, 1023, 12, 1, 1
end
Move_ASSIST: @ 81CC332
loadsprite 10252
- sprite gBattleAnimSpriteTemplate_8402964, 50, 5, 112, -16, 140, 128, 36
+ sprite gBattleAnimSpriteTemplate_8402964, 50, 112, -16, 140, 128, 36
pause 2
- sprite gBattleAnimSpriteTemplate_8402964, 50, 5, 208, 128, -16, 48, 36
+ sprite gBattleAnimSpriteTemplate_8402964, 50, 208, 128, -16, 48, 36
panse_19 SE_W010, 0
pause 2
- sprite gBattleAnimSpriteTemplate_8402964, 50, 5, -16, 112, 256, -16, 36
+ sprite gBattleAnimSpriteTemplate_8402964, 50, -16, 112, 256, -16, 36
panse_19 SE_W010, 0
pause 2
- sprite gBattleAnimSpriteTemplate_8402964, 50, 5, 108, 128, 84, -16, 36
+ sprite gBattleAnimSpriteTemplate_8402964, 50, 108, 128, 84, -16, 36
panse_19 SE_W010, 0
pause 2
- sprite gBattleAnimSpriteTemplate_8402964, 50, 5, -16, 56, 256, 56, 36
+ sprite gBattleAnimSpriteTemplate_8402964, 50, -16, 56, 256, 56, 36
panse_19 SE_W010, 0
end
@@ -3641,26 +3641,26 @@ Move_SUPERPOWER: @ 81CC3A3
monbg 2
monbgprio_28 0
setalpha 12, 8
- sprite gBattleAnimSpriteTemplate_83DA0FC, 130, 1, 0
+ sprite gBattleAnimSpriteTemplate_83DA0FC, 130, 0
panse_19 SE_W025, 192
pause 20
- sprite gBattleAnimSpriteTemplate_83DB428, 2, 4, 4, 1, 180, 1
- createtask sub_812B340, 5, 2, 234, 0
+ sprite gBattleAnimSpriteTemplate_83DB428, 2, 4, 1, 180, 1
+ createtask sub_812B340, 5, 234, 0
pause 40
- sprite gBattleAnimSpriteTemplate_83DA114, 41, 4, 200, 96, 1, 120
+ sprite gBattleAnimSpriteTemplate_83DA114, 41, 200, 96, 1, 120
pause 8
- sprite gBattleAnimSpriteTemplate_83DA114, 41, 4, 20, 248, 4, 112
+ sprite gBattleAnimSpriteTemplate_83DA114, 41, 20, 248, 4, 112
pause 8
- sprite gBattleAnimSpriteTemplate_83DA114, 41, 4, 130, 160, 2, 104
+ sprite gBattleAnimSpriteTemplate_83DA114, 41, 130, 160, 2, 104
pause 8
- sprite gBattleAnimSpriteTemplate_83DA114, 41, 4, 160, 192, 0, 96
+ sprite gBattleAnimSpriteTemplate_83DA114, 41, 160, 192, 0, 96
pause 8
- sprite gBattleAnimSpriteTemplate_83DA114, 41, 4, 60, 288, 3, 88
+ sprite gBattleAnimSpriteTemplate_83DA114, 41, 60, 288, 3, 88
pause 74
- sprite gBattleAnimSpriteTemplate_83DA12C, 131, 1, 0
+ sprite gBattleAnimSpriteTemplate_83DA12C, 131, 0
panse_19 SE_W207, 192
pause 16
- createtask sub_80A7FA0, 2, 5, 1, 8, 0, 16, 1
+ createtask sub_80A7FA0, 2, 1, 8, 0, 16, 1
panse_19 SE_W025B, 63
wait
clearmonbg 2
@@ -3676,7 +3676,7 @@ Move_RECYCLE: @ 81CC45E
sprite gBattleAnimSpriteTemplate_8402B10, 2
panse_1C SE_W036, 192, 24, 3
wait
- createtask sub_8079790, 5, 5, 0, 32767, 12, 2, 1
+ createtask sub_8079790, 5, 0, 32767, 12, 2, 1
panse_19 SE_W036, 192
wait
blendoff
@@ -3693,100 +3693,100 @@ Move_BRICK_BREAK: @ 81CC492
_81CC4A7:
monbg 1
setalpha 12, 8
- sprite gBattleAnimSpriteTemplate_83C1FB0, 2, 2, 3, 8
+ sprite gBattleAnimSpriteTemplate_83C1FB0, 2, 3, 8
pause 4
pause 1
- sprite gBattleAnimSpriteTemplate_83DB4A8, 3, 4, -18, -18, 1, 1
- sprite gBattleAnimSpriteTemplate_83D9FA8, 2, 5, -18, -18, 10, 1, 0
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 3, -18, -18, 1, 1
+ sprite gBattleAnimSpriteTemplate_83D9FA8, 2, -18, -18, 10, 1, 0
panse_19 SE_W233, 63
pause 20
- sprite gBattleAnimSpriteTemplate_83C1FB0, 2, 2, 3, 8
+ sprite gBattleAnimSpriteTemplate_83C1FB0, 2, 3, 8
pause 5
- sprite gBattleAnimSpriteTemplate_83DB4A8, 3, 4, 18, 18, 1, 1
- sprite gBattleAnimSpriteTemplate_83D9FA8, 2, 5, 18, 18, 10, 1, 0
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 3, 18, 18, 1, 1
+ sprite gBattleAnimSpriteTemplate_83D9FA8, 2, 18, 18, 10, 1, 0
panse_19 SE_W233, 63
pause 20
- createtask sub_80A8920, 2, 7, 0, -24, 0, 24, 10, 24, 3
- sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 5, 1, 2, 0, 6, 0
+ createtask sub_80A8920, 2, 0, -24, 0, 24, 10, 24, 3
+ sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 1, 2, 0, 6, 0
pause 37
- sprite gBattleAnimSpriteTemplate_83DB4A8, 3, 4, 0, 0, 1, 1
- sprite gBattleAnimSpriteTemplate_83D9FA8, 2, 5, 0, 0, 10, 1, 0
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 3, 0, 0, 1, 1
+ sprite gBattleAnimSpriteTemplate_83D9FA8, 2, 0, 0, 10, 1, 0
panse_19 SE_W233B, 63
wait
- sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 5, 1, 2, 6, 0, 0
+ sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 1, 2, 6, 0, 0
wait
clearmonbg 1
end
_81CC576:
monbg 1
setalpha 12, 8
- sprite gBattleAnimSpriteTemplate_83C1FB0, 2, 2, 3, 8
+ sprite gBattleAnimSpriteTemplate_83C1FB0, 2, 3, 8
pause 4
- sprite gBattleAnimSpriteTemplate_83DA0A0, 3, 5, 1, 0, 0, 90, 10
+ sprite gBattleAnimSpriteTemplate_83DA0A0, 3, 1, 0, 0, 90, 10
pause 1
- sprite gBattleAnimSpriteTemplate_83DB4A8, 3, 4, -18, -18, 1, 1
- sprite gBattleAnimSpriteTemplate_83D9FA8, 2, 5, -18, -18, 10, 1, 0
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 3, -18, -18, 1, 1
+ sprite gBattleAnimSpriteTemplate_83D9FA8, 2, -18, -18, 10, 1, 0
panse_19 SE_W233, 63
pause 20
- sprite gBattleAnimSpriteTemplate_83C1FB0, 2, 2, 3, 8
+ sprite gBattleAnimSpriteTemplate_83C1FB0, 2, 3, 8
pause 5
- sprite gBattleAnimSpriteTemplate_83DB4A8, 3, 4, 18, 18, 1, 1
- sprite gBattleAnimSpriteTemplate_83D9FA8, 2, 5, 18, 18, 10, 1, 0
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 3, 18, 18, 1, 1
+ sprite gBattleAnimSpriteTemplate_83D9FA8, 2, 18, 18, 10, 1, 0
panse_19 SE_W233, 63
pause 20
- createtask sub_80A8920, 2, 7, 0, -24, 0, 24, 10, 24, 3
- sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 5, 1, 2, 0, 6, 0
+ createtask sub_80A8920, 2, 0, -24, 0, 24, 10, 24, 3
+ sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 1, 2, 0, 6, 0
pause 37
- sprite gBattleAnimSpriteTemplate_83DB4A8, 3, 4, 0, 0, 1, 1
- sprite gBattleAnimSpriteTemplate_83D9FA8, 2, 5, 0, 0, 10, 1, 0
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 3, 0, 0, 1, 1
+ sprite gBattleAnimSpriteTemplate_83D9FA8, 2, 0, 0, 10, 1, 0
panse_19 SE_W233B, 63
wait
- sprite gBattleAnimSpriteTemplate_83DA0B8, 2, 4, 1, 0, -8, -12
- sprite gBattleAnimSpriteTemplate_83DA0B8, 2, 4, 1, 1, 8, -12
- sprite gBattleAnimSpriteTemplate_83DA0B8, 2, 4, 1, 2, -8, 12
- sprite gBattleAnimSpriteTemplate_83DA0B8, 2, 4, 1, 3, 8, 12
+ sprite gBattleAnimSpriteTemplate_83DA0B8, 2, 1, 0, -8, -12
+ sprite gBattleAnimSpriteTemplate_83DA0B8, 2, 1, 1, 8, -12
+ sprite gBattleAnimSpriteTemplate_83DA0B8, 2, 1, 2, -8, 12
+ sprite gBattleAnimSpriteTemplate_83DA0B8, 2, 1, 3, 8, 12
panse_19 SE_W280, 63
wait
- sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 5, 1, 2, 6, 0, 0
+ sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 1, 2, 6, 0, 0
wait
clearmonbg 1
end
Move_YAWN: @ 81CC697
loadsprite 10242
- createtask sub_812F724, 2, 1, 0
+ createtask sub_812F724, 2, 0
panse_19 SE_W281, 192
wait
- sprite gBattleAnimSpriteTemplate_84027EC, 133, 1, 2
+ sprite gBattleAnimSpriteTemplate_84027EC, 133, 2
panse_19 SE_W255, 192
pause 4
- sprite gBattleAnimSpriteTemplate_84027EC, 133, 1, 1
+ sprite gBattleAnimSpriteTemplate_84027EC, 133, 1
pause 4
- sprite gBattleAnimSpriteTemplate_84027EC, 133, 1, 0
+ sprite gBattleAnimSpriteTemplate_84027EC, 133, 0
wait
- createtask sub_812F724, 2, 1, 1
+ createtask sub_812F724, 2, 1
panse_19 SE_W281, 63
end
Move_ENDEAVOR: @ 81CC6DA
loadsprite 10243
loadsprite 10135
- createtask sub_812FD7C, 2, 2, 0, 2
+ createtask sub_812FD7C, 2, 0, 2
panse_1C SE_W039, 192, 24, 2
- createtask sub_8079790, 5, 5, 0, 703, 12, 1, 2
+ createtask sub_8079790, 5, 0, 703, 12, 1, 2
pause 6
- createtask sub_80A9058, 5, 5, 0, 1, 8, 1, 0
- sprite gBattleAnimSpriteTemplate_83DB4A8, 130, 4, 12, -12, 1, 2
+ createtask sub_80A9058, 5, 0, 1, 8, 1, 0
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 130, 12, -12, 1, 2
panse_19 SE_W003, 63
pause 24
- createtask sub_80A9058, 5, 5, 0, 1, 8, 1, 0
- sprite gBattleAnimSpriteTemplate_83DB4A8, 130, 4, -12, 12, 1, 2
+ createtask sub_80A9058, 5, 0, 1, 8, 1, 0
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 130, -12, 12, 1, 2
panse_19 SE_W004, 63
end
Move_ERUPTION: @ 81CC74F
loadsprite 10201
- sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 5, 31, 2, 0, 4, 31
+ sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 31, 2, 0, 4, 31
wait
createtask sub_80D5470, 2
panse_1D SE_W153, 192, 60
@@ -3795,29 +3795,29 @@ Move_ERUPTION: @ 81CC74F
panse_1D SE_W153, 192, 60
wait
pause 30
- sprite gBattleAnimSpriteTemplate_83D96F8, 40, 5, 200, -32, 0, 100, 0
- sprite gBattleAnimSpriteTemplate_83D96F8, 40, 5, 30, -32, 16, 90, 1
- sprite gBattleAnimSpriteTemplate_83D96F8, 40, 5, 150, -32, 32, 60, 2
- sprite gBattleAnimSpriteTemplate_83D96F8, 40, 5, 90, -32, 48, 80, 3
- sprite gBattleAnimSpriteTemplate_83D96F8, 40, 5, 110, -32, 64, 50, 0
- sprite gBattleAnimSpriteTemplate_83D96F8, 40, 5, 60, -32, 80, 70, 1
+ sprite gBattleAnimSpriteTemplate_83D96F8, 40, 200, -32, 0, 100, 0
+ sprite gBattleAnimSpriteTemplate_83D96F8, 40, 30, -32, 16, 90, 1
+ sprite gBattleAnimSpriteTemplate_83D96F8, 40, 150, -32, 32, 60, 2
+ sprite gBattleAnimSpriteTemplate_83D96F8, 40, 90, -32, 48, 80, 3
+ sprite gBattleAnimSpriteTemplate_83D96F8, 40, 110, -32, 64, 50, 0
+ sprite gBattleAnimSpriteTemplate_83D96F8, 40, 60, -32, 80, 70, 1
pause 22
- createtask sub_80E1864, 5, 3, 5, 8, 60
- createtask sub_80E1864, 5, 3, 4, 8, 60
+ createtask sub_80E1864, 5, 5, 8, 60
+ createtask sub_80E1864, 5, 4, 8, 60
panse_1C SE_W088, 63, 16, 12
pause 80
- sprite gBattleAnimSpriteTemplate_83DB3C4, 40, 5, 31, 4, 4, 0, 31
+ sprite gBattleAnimSpriteTemplate_83DB3C4, 40, 31, 4, 4, 0, 31
end
Move_SKILL_SWAP: @ 81CC81C
loadsprite 10251
call Unknown_81D61E7
- createtask sub_80DC0B0, 3, 1, 1
- createtask sub_8079790, 5, 5, 1, 32767, 12, 3, 1
+ createtask sub_80DC0B0, 3, 1
+ createtask sub_8079790, 5, 1, 32767, 12, 3, 1
panse_1C SE_W179, 192, 24, 3
pause 16
- createtask sub_80DC0B0, 3, 1, 0
- createtask sub_8079790, 5, 5, 0, 32767, 12, 3, 1
+ createtask sub_80DC0B0, 3, 0
+ createtask sub_8079790, 5, 0, 32767, 12, 3, 1
wait
call Unknown_81D61F3
end
@@ -3832,8 +3832,8 @@ Move_IMPRISON: @ 81CC867
panse_1C SE_W030, 192, 8, 5
wait
pause 4
- sprite gBattleAnimSpriteTemplate_83DA8F4, 5, 2, 0, 40
- createtask sub_80E1864, 5, 3, 4, 1, 10
+ sprite gBattleAnimSpriteTemplate_83DA8F4, 5, 0, 40
+ createtask sub_80E1864, 5, 4, 1, 10
panse_19 SE_W063, 192
clearmonbg 3
call Unknown_81D61F3
@@ -3861,15 +3861,15 @@ Move_CAMOUFLAGE: @ 81CC8D2
monbg 2
monbgprio_28 0
setalpha 16, 0
- createtask sub_80E2B74, 5, 4, 2, 3, 0, 14
+ createtask sub_80E2B74, 5, 2, 3, 0, 14
pause 16
- createtask sub_80DFC24, 2, 1, 4
+ createtask sub_80DFC24, 2, 4
panse_19 SE_W185, 192
wait
pause 8
- createtask sub_80E2B74, 5, 4, 2, 0, 0, 0
+ createtask sub_80E2B74, 5, 2, 0, 0, 0
wait
- createtask sub_80DFD24, 2, 1, 1
+ createtask sub_80DFD24, 2, 1
wait
blendoff
clearmonbg 2
@@ -3879,13 +3879,13 @@ Move_TAIL_GLOW: @ 81CC918
loadsprite 10212
monbg 0
setalpha 12, 8
- sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 5, 1, 2, 0, 4, 0
+ sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 1, 2, 0, 4, 0
wait
- sprite gBattleAnimSpriteTemplate_83DAC10, 66, 1, 0
+ sprite gBattleAnimSpriteTemplate_83DAC10, 66, 0
pause 18
panse_1C SE_W234, 192, 16, 6
wait
- sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 5, 1, 4, 4, 0, 0
+ sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 1, 4, 4, 0, 0
clearmonbg 0
blendoff
pause 1
@@ -3901,33 +3901,33 @@ Move_LUSTER_PURGE: @ 81CC95B
monbg 0
setalpha 12, 8
panse_19 SE_W076, 192
- sprite gBattleAnimSpriteTemplate_83DA9E0, 41, 4, 0, 0, 0, 0
+ sprite gBattleAnimSpriteTemplate_83DA9E0, 41, 0, 0, 0, 0
pause 20
- createtask sub_80E2A7C, 5, 5, 5, 2, 0, 16, -1
- createtask sub_80E2C60, 5, 5, 10267, 2, 0, 16, -1
+ createtask sub_80E2A7C, 5, 5, 2, 0, 16, -1
+ createtask sub_80E2C60, 5, 10267, 2, 0, 16, -1
wait
- createtask sub_80E2C60, 5, 5, 10135, 0, 12, 12, 23552
+ createtask sub_80E2C60, 5, 10135, 0, 12, 12, 23552
wait
- sprite gBattleAnimSpriteTemplate_83DB4F0, 131, 2, 1, 2
- createtask sub_812B30C, 5, 2, 215, 63
+ sprite gBattleAnimSpriteTemplate_83DB4F0, 131, 1, 2
+ createtask sub_812B30C, 5, 215, 63
pause 3
- sprite gBattleAnimSpriteTemplate_83DB4F0, 131, 2, 1, 2
- createtask sub_812B30C, 5, 2, 215, 63
+ sprite gBattleAnimSpriteTemplate_83DB4F0, 131, 1, 2
+ createtask sub_812B30C, 5, 215, 63
pause 3
- sprite gBattleAnimSpriteTemplate_83DB4F0, 131, 2, 1, 2
- createtask sub_812B30C, 5, 2, 215, 63
+ sprite gBattleAnimSpriteTemplate_83DB4F0, 131, 1, 2
+ createtask sub_812B30C, 5, 215, 63
pause 3
- sprite gBattleAnimSpriteTemplate_83DB4F0, 131, 2, 1, 2
- createtask sub_812B30C, 5, 2, 215, 63
+ sprite gBattleAnimSpriteTemplate_83DB4F0, 131, 1, 2
+ createtask sub_812B30C, 5, 215, 63
pause 3
- sprite gBattleAnimSpriteTemplate_83DB4F0, 131, 2, 1, 2
- createtask sub_812B30C, 5, 2, 215, 63
+ sprite gBattleAnimSpriteTemplate_83DB4F0, 131, 1, 2
+ createtask sub_812B30C, 5, 215, 63
pause 3
- sprite gBattleAnimSpriteTemplate_83DB4F0, 131, 2, 1, 2
- createtask sub_812B30C, 5, 2, 215, 63
+ sprite gBattleAnimSpriteTemplate_83DB4F0, 131, 1, 2
+ createtask sub_812B30C, 5, 215, 63
wait
- createtask sub_80E2A7C, 5, 5, 5, 2, 16, 0, -1
- createtask sub_80E1864, 5, 3, 1, 5, 14
+ createtask sub_80E2A7C, 5, 5, 2, 16, 0, -1
+ createtask sub_80E1864, 5, 1, 5, 14
wait
clearmonbg 0
blendoff
@@ -3939,19 +3939,19 @@ Move_MIST_BALL: @ 81CCA72
loadsprite 10270
pause 0
panse_19 SE_W081, 192
- sprite gBattleAnimSpriteTemplate_83D9D80, 128, 6, 0, 0, 0, 0, 30, 0
+ sprite gBattleAnimSpriteTemplate_83D9D80, 128, 0, 0, 0, 0, 30, 0
wait
panse_19 SE_W028, 63
- createtask sub_80A7E7C, 2, 5, 1, 5, 0, 10, 0
- sprite gBattleAnimSpriteTemplate_83DB3DC, 0, 7, 1, 1, 1, 32279, 16, 32767, 16
+ createtask sub_80A7E7C, 2, 1, 5, 0, 10, 0
+ sprite gBattleAnimSpriteTemplate_83DB3DC, 0, 1, 1, 1, 32279, 16, 32767, 16
pause 0
panse_19 SE_W114, 0
createtask sub_80D8414, 5
- createtask sub_80E2A38, 10, 5, 4, 3, 0, 16, 32767
+ createtask sub_80E2A38, 10, 4, 3, 0, 16, 32767
pause 8
- createtask sub_80A7E7C, 2, 5, 1, 4, 0, 70, 0
+ createtask sub_80A7E7C, 2, 1, 4, 0, 70, 0
pause 70
- createtask sub_80E2A38, 10, 5, 4, 2, 16, 0, 32767
+ createtask sub_80E2A38, 10, 4, 2, 16, 0, 32767
end
Move_FEATHER_DANCE: @ 81CCB01
@@ -3960,18 +3960,18 @@ Move_FEATHER_DANCE: @ 81CCB01
monbgprio_29
panse_19 SE_W080, 63
pause 0
- sprite gBattleAnimSpriteTemplate_83DA498, 128, 8, 0, -16, 64, 2, 104, 11304, 32, 1
+ sprite gBattleAnimSpriteTemplate_83DA498, 128, 0, -16, 64, 2, 104, 11304, 32, 1
pause 6
- sprite gBattleAnimSpriteTemplate_83DA498, 128, 8, 0, -16, 32, 2, 104, 11304, 32, 1
- sprite gBattleAnimSpriteTemplate_83DA498, 128, 8, 0, -16, 0, 2, 104, 11304, 32, 1
+ sprite gBattleAnimSpriteTemplate_83DA498, 128, 0, -16, 32, 2, 104, 11304, 32, 1
+ sprite gBattleAnimSpriteTemplate_83DA498, 128, 0, -16, 0, 2, 104, 11304, 32, 1
pause 6
- sprite gBattleAnimSpriteTemplate_83DA498, 128, 8, 0, -16, 224, 2, 104, 11304, 32, 1
- sprite gBattleAnimSpriteTemplate_83DA498, 128, 8, 0, -16, 128, 2, 104, 11304, 32, 1
+ sprite gBattleAnimSpriteTemplate_83DA498, 128, 0, -16, 224, 2, 104, 11304, 32, 1
+ sprite gBattleAnimSpriteTemplate_83DA498, 128, 0, -16, 128, 2, 104, 11304, 32, 1
pause 6
- sprite gBattleAnimSpriteTemplate_83DA498, 128, 8, 0, -16, 192, 2, 104, 11304, 32, 1
- sprite gBattleAnimSpriteTemplate_83DA498, 128, 8, 0, -16, 160, 2, 104, 11304, 32, 1
+ sprite gBattleAnimSpriteTemplate_83DA498, 128, 0, -16, 192, 2, 104, 11304, 32, 1
+ sprite gBattleAnimSpriteTemplate_83DA498, 128, 0, -16, 160, 2, 104, 11304, 32, 1
pause 6
- sprite gBattleAnimSpriteTemplate_83DA498, 128, 8, 0, -16, 96, 2, 104, 11304, 32, 1
+ sprite gBattleAnimSpriteTemplate_83DA498, 128, 0, -16, 96, 2, 104, 11304, 32, 1
wait
clearmonbg 3
end
@@ -3980,66 +3980,66 @@ Move_TEETER_DANCE: @ 81CCBD1
loadsprite 10072
loadsprite 10073
createtask sub_813219C, 5
- sprite gBattleAnimSpriteTemplate_83D715C, 2, 3, 0, 16, -2
+ sprite gBattleAnimSpriteTemplate_83D715C, 2, 0, 16, -2
panse_19 SE_W298, 192
pause 24
- sprite gBattleAnimSpriteTemplate_83D715C, 2, 3, 0, 0, -2
+ sprite gBattleAnimSpriteTemplate_83D715C, 2, 0, 0, -2
panse_19 SE_W298, 192
pause 24
- sprite gBattleAnimSpriteTemplate_83D715C, 2, 3, 0, -16, -2
+ sprite gBattleAnimSpriteTemplate_83D715C, 2, 0, -16, -2
panse_19 SE_W298, 192
pause 24
- sprite gBattleAnimSpriteTemplate_83D715C, 2, 3, 1, -8, -2
+ sprite gBattleAnimSpriteTemplate_83D715C, 2, 1, -8, -2
panse_19 SE_W298, 192
pause 24
- sprite gBattleAnimSpriteTemplate_83D715C, 2, 3, 2, 8, -2
+ sprite gBattleAnimSpriteTemplate_83D715C, 2, 2, 8, -2
panse_19 SE_W298, 192
end
Move_MUD_SPORT: @ 81CCC3C
loadsprite 10074
- createtask sub_80D074C, 2, 2, 0, 6
+ createtask sub_80D074C, 2, 0, 6
pause 24
- sprite gBattleAnimSpriteTemplate_83DB334, 130, 3, 0, -4, -16
- sprite gBattleAnimSpriteTemplate_83DB334, 130, 3, 0, 4, -12
+ sprite gBattleAnimSpriteTemplate_83DB334, 130, 0, -4, -16
+ sprite gBattleAnimSpriteTemplate_83DB334, 130, 0, 4, -12
panse_19 SE_W091, 192
pause 32
- sprite gBattleAnimSpriteTemplate_83DB334, 130, 3, 0, -3, -12
- sprite gBattleAnimSpriteTemplate_83DB334, 130, 3, 0, 5, -14
+ sprite gBattleAnimSpriteTemplate_83DB334, 130, 0, -3, -12
+ sprite gBattleAnimSpriteTemplate_83DB334, 130, 0, 5, -14
panse_19 SE_W091, 192
pause 32
- sprite gBattleAnimSpriteTemplate_83DB334, 130, 3, 0, -5, -18
- sprite gBattleAnimSpriteTemplate_83DB334, 130, 3, 0, 3, -14
+ sprite gBattleAnimSpriteTemplate_83DB334, 130, 0, -5, -18
+ sprite gBattleAnimSpriteTemplate_83DB334, 130, 0, 3, -14
panse_19 SE_W091, 192
pause 16
- sprite gBattleAnimSpriteTemplate_83DB334, 130, 3, 1, 220, 60
+ sprite gBattleAnimSpriteTemplate_83DB334, 130, 1, 220, 60
panse_1D SE_W145B, 0, 15
pause 2
- sprite gBattleAnimSpriteTemplate_83DB334, 130, 3, 1, 60, 100
+ sprite gBattleAnimSpriteTemplate_83DB334, 130, 1, 60, 100
panse_1D SE_W145B, 0, 25
pause 2
- sprite gBattleAnimSpriteTemplate_83DB334, 130, 3, 1, 140, 55
+ sprite gBattleAnimSpriteTemplate_83DB334, 130, 1, 140, 55
panse_1D SE_W145B, 0, 14
pause 2
- sprite gBattleAnimSpriteTemplate_83DB334, 130, 3, 1, 180, 50
+ sprite gBattleAnimSpriteTemplate_83DB334, 130, 1, 180, 50
panse_1D SE_W145B, 0, 10
pause 2
- sprite gBattleAnimSpriteTemplate_83DB334, 130, 3, 1, 20, 90
+ sprite gBattleAnimSpriteTemplate_83DB334, 130, 1, 20, 90
panse_1D SE_W145B, 0, 22
pause 2
- sprite gBattleAnimSpriteTemplate_83DB334, 130, 3, 1, 90, 90
+ sprite gBattleAnimSpriteTemplate_83DB334, 130, 1, 90, 90
panse_1D SE_W145B, 0, 22
pause 2
- sprite gBattleAnimSpriteTemplate_83DB334, 130, 3, 1, 160, 60
+ sprite gBattleAnimSpriteTemplate_83DB334, 130, 1, 160, 60
panse_1D SE_W145B, 0, 15
pause 2
- sprite gBattleAnimSpriteTemplate_83DB334, 130, 3, 1, 30, 90
+ sprite gBattleAnimSpriteTemplate_83DB334, 130, 1, 30, 90
panse_1D SE_W145B, 0, 22
pause 2
- sprite gBattleAnimSpriteTemplate_83DB334, 130, 3, 1, 120, 60
+ sprite gBattleAnimSpriteTemplate_83DB334, 130, 1, 120, 60
panse_1D SE_W145B, 0, 15
pause 2
- sprite gBattleAnimSpriteTemplate_83DB334, 130, 3, 1, 200, 40
+ sprite gBattleAnimSpriteTemplate_83DB334, 130, 1, 200, 40
panse_1D SE_W145B, 0, 10
end
@@ -4048,47 +4048,47 @@ Move_NEEDLE_ARM: @ 81CCD73
loadsprite 10135
loadsprite 10143
panse_1C SE_W030, 63, 2, 16
- sprite gBattleAnimSpriteTemplate_83D6994, 130, 5, 1, 0, 0, -32, 16
+ sprite gBattleAnimSpriteTemplate_83D6994, 130, 1, 0, 0, -32, 16
pause 2
- sprite gBattleAnimSpriteTemplate_83D6994, 130, 5, 1, 0, 22, -22, 16
+ sprite gBattleAnimSpriteTemplate_83D6994, 130, 1, 0, 22, -22, 16
pause 2
- sprite gBattleAnimSpriteTemplate_83D6994, 130, 5, 1, 0, 30, 0, 16
+ sprite gBattleAnimSpriteTemplate_83D6994, 130, 1, 0, 30, 0, 16
pause 2
- sprite gBattleAnimSpriteTemplate_83D6994, 130, 5, 1, 0, 20, 20, 16
+ sprite gBattleAnimSpriteTemplate_83D6994, 130, 1, 0, 20, 20, 16
pause 2
- sprite gBattleAnimSpriteTemplate_83D6994, 130, 5, 1, 0, 0, 28, 16
+ sprite gBattleAnimSpriteTemplate_83D6994, 130, 1, 0, 0, 28, 16
pause 2
- sprite gBattleAnimSpriteTemplate_83D6994, 130, 5, 1, 0, -19, 19, 16
+ sprite gBattleAnimSpriteTemplate_83D6994, 130, 1, 0, -19, 19, 16
pause 2
- sprite gBattleAnimSpriteTemplate_83D6994, 130, 5, 1, 0, -27, 0, 16
+ sprite gBattleAnimSpriteTemplate_83D6994, 130, 1, 0, -27, 0, 16
pause 2
- sprite gBattleAnimSpriteTemplate_83D6994, 130, 5, 1, 0, -18, -18, 16
+ sprite gBattleAnimSpriteTemplate_83D6994, 130, 1, 0, -18, -18, 16
pause 2
- sprite gBattleAnimSpriteTemplate_83D6994, 130, 5, 1, 0, 0, -25, 16
+ sprite gBattleAnimSpriteTemplate_83D6994, 130, 1, 0, 0, -25, 16
pause 2
- sprite gBattleAnimSpriteTemplate_83D6994, 130, 5, 1, 0, 17, -17, 16
+ sprite gBattleAnimSpriteTemplate_83D6994, 130, 1, 0, 17, -17, 16
pause 2
- sprite gBattleAnimSpriteTemplate_83D6994, 130, 5, 1, 0, 23, 0, 16
+ sprite gBattleAnimSpriteTemplate_83D6994, 130, 1, 0, 23, 0, 16
pause 2
- sprite gBattleAnimSpriteTemplate_83D6994, 130, 5, 1, 0, 16, 16, 16
+ sprite gBattleAnimSpriteTemplate_83D6994, 130, 1, 0, 16, 16, 16
wait
- createtask sub_80A7FA0, 2, 5, 1, 4, 0, 18, 1
- sprite gBattleAnimSpriteTemplate_83DB4A8, 131, 4, 0, 0, 1, 1
- sprite gBattleAnimSpriteTemplate_83D9FA8, 132, 5, 0, 0, 8, 1, 0
+ createtask sub_80A7FA0, 2, 1, 4, 0, 18, 1
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 131, 0, 0, 1, 1
+ sprite gBattleAnimSpriteTemplate_83D9FA8, 132, 0, 0, 8, 1, 0
panse_19 SE_W233B, 63
- sprite gBattleAnimSpriteTemplate_83D6994, 130, 5, 1, 1, 0, -24, 10
- sprite gBattleAnimSpriteTemplate_83D6994, 130, 5, 1, 1, 17, -17, 10
- sprite gBattleAnimSpriteTemplate_83D6994, 130, 5, 1, 1, 24, 0, 10
- sprite gBattleAnimSpriteTemplate_83D6994, 130, 5, 1, 1, 17, 17, 10
- sprite gBattleAnimSpriteTemplate_83D6994, 130, 5, 1, 1, 0, 24, 10
- sprite gBattleAnimSpriteTemplate_83D6994, 130, 5, 1, 1, -17, 17, 10
- sprite gBattleAnimSpriteTemplate_83D6994, 130, 5, 1, 1, -24, 0, 10
- sprite gBattleAnimSpriteTemplate_83D6994, 130, 5, 1, 1, -17, -17, 10
+ sprite gBattleAnimSpriteTemplate_83D6994, 130, 1, 1, 0, -24, 10
+ sprite gBattleAnimSpriteTemplate_83D6994, 130, 1, 1, 17, -17, 10
+ sprite gBattleAnimSpriteTemplate_83D6994, 130, 1, 1, 24, 0, 10
+ sprite gBattleAnimSpriteTemplate_83D6994, 130, 1, 1, 17, 17, 10
+ sprite gBattleAnimSpriteTemplate_83D6994, 130, 1, 1, 0, 24, 10
+ sprite gBattleAnimSpriteTemplate_83D6994, 130, 1, 1, -17, 17, 10
+ sprite gBattleAnimSpriteTemplate_83D6994, 130, 1, 1, -24, 0, 10
+ sprite gBattleAnimSpriteTemplate_83D6994, 130, 1, 1, -17, -17, 10
end
Move_SLACK_OFF: @ 81CCF23
loadsprite 10031
- createtask sub_813257C, 2, 1, 0
+ createtask sub_813257C, 2, 0
panse_19 SE_W281, 192
wait
call Unknown_81D5EF5
@@ -4101,15 +4101,15 @@ Move_CRUSH_CLAW: @ 81CCF3B
loadsprite 10208
monbg 1
setalpha 12, 8
- sprite gBattleAnimSpriteTemplate_83C1FB0, 2, 2, 6, 4
+ sprite gBattleAnimSpriteTemplate_83C1FB0, 2, 6, 4
pause 4
- createtask sub_80A7FA0, 2, 5, 1, 2, 0, 18, 1
- sprite gBattleAnimSpriteTemplate_83DB288, 130, 3, -10, -10, 0
- sprite gBattleAnimSpriteTemplate_83DB288, 130, 3, -10, 10, 0
+ createtask sub_80A7FA0, 2, 1, 2, 0, 18, 1
+ sprite gBattleAnimSpriteTemplate_83DB288, 130, -10, -10, 0
+ sprite gBattleAnimSpriteTemplate_83DB288, 130, -10, 10, 0
panse_19 SE_W013, 63
pause 12
- sprite gBattleAnimSpriteTemplate_83DB288, 130, 3, 10, -10, 1
- sprite gBattleAnimSpriteTemplate_83DB288, 130, 3, 10, 10, 1
+ sprite gBattleAnimSpriteTemplate_83DB288, 130, 10, -10, 1
+ sprite gBattleAnimSpriteTemplate_83DB288, 130, 10, 10, 1
panse_19 SE_W013, 63
wait
wait
@@ -4122,37 +4122,37 @@ Move_AROMATHERAPY: @ 81CCFAB
loadsprite 10159
loadsprite 10203
loadsprite 10049
- sprite gBattleAnimSpriteTemplate_83DB3C4, 0, 5, 1, 0, 0, 7, 13293
+ sprite gBattleAnimSpriteTemplate_83DB3C4, 0, 1, 0, 0, 7, 13293
pause 1
monbg 0
pause 1
- sprite gBattleAnimSpriteTemplate_83D68B8, 0, 7, 24, 16, 0, 2, 2, 0, 0
- sprite gBattleAnimSpriteTemplate_83D68B8, 66, 7, 64, 24, 0, 3, 1, 1, 0
- sprite gBattleAnimSpriteTemplate_83D68D0, 0, 7, 16, 24, 0, 2, 1, 0, 0
+ sprite gBattleAnimSpriteTemplate_83D68B8, 0, 24, 16, 0, 2, 2, 0, 0
+ sprite gBattleAnimSpriteTemplate_83D68B8, 66, 64, 24, 0, 3, 1, 1, 0
+ sprite gBattleAnimSpriteTemplate_83D68D0, 0, 16, 24, 0, 2, 1, 0, 0
pause 20
- sprite gBattleAnimSpriteTemplate_83D68B8, 66, 7, 48, 12, 0, 4, 3, 1, 0
- sprite gBattleAnimSpriteTemplate_83D68B8, 0, 7, 100, 16, 0, 3, 2, 0, 0
- sprite gBattleAnimSpriteTemplate_83D68B8, 0, 7, 74, 24, 180, 3, 2, 0, 0
+ sprite gBattleAnimSpriteTemplate_83D68B8, 66, 48, 12, 0, 4, 3, 1, 0
+ sprite gBattleAnimSpriteTemplate_83D68B8, 0, 100, 16, 0, 3, 2, 0, 0
+ sprite gBattleAnimSpriteTemplate_83D68B8, 0, 74, 24, 180, 3, 2, 0, 0
pause 10
- sprite gBattleAnimSpriteTemplate_83D68B8, 66, 7, 80, 30, 0, 4, 1, 1, 0
- sprite gBattleAnimSpriteTemplate_83D68B8, 0, 7, 128, 12, 0, 3, 3, 0, 0
- sprite gBattleAnimSpriteTemplate_83D68D0, 0, 7, 90, 16, 0, 2, 1, 0, 0
+ sprite gBattleAnimSpriteTemplate_83D68B8, 66, 80, 30, 0, 4, 1, 1, 0
+ sprite gBattleAnimSpriteTemplate_83D68B8, 0, 128, 12, 0, 3, 3, 0, 0
+ sprite gBattleAnimSpriteTemplate_83D68D0, 0, 90, 16, 0, 2, 1, 0, 0
wait
clearmonbg 0
pause 1
- sprite gBattleAnimSpriteTemplate_83DB3C4, 0, 5, 1, 0, 7, 0, 13293
+ sprite gBattleAnimSpriteTemplate_83DB3C4, 0, 1, 0, 7, 0, 13293
pause 1
panse_19 SE_W287, 192
- createtask sub_81300A4, 2, 1, 1
+ createtask sub_81300A4, 2, 1
wait
panse_19 SE_W234, 192
- sprite gBattleAnimSpriteTemplate_83D6CA0, 16, 7, -15, 0, 0, 0, 32, 60, 1
+ sprite gBattleAnimSpriteTemplate_83D6CA0, 16, -15, 0, 0, 0, 32, 60, 1
pause 8
- sprite gBattleAnimSpriteTemplate_83D6CA0, 16, 7, 12, -5, 0, 0, 32, 60, 1
+ sprite gBattleAnimSpriteTemplate_83D6CA0, 16, 12, -5, 0, 0, 32, 60, 1
wait
panse_19 SE_REAPOKE, 192
- sprite gBattleAnimSpriteTemplate_83DB3C4, 0, 5, 43, 3, 10, 0, 13293
- sprite gBattleAnimSpriteTemplate_83D7974, 16, 4, 0, 0, 0, 1
+ sprite gBattleAnimSpriteTemplate_83DB3C4, 0, 43, 3, 10, 0, 13293
+ sprite gBattleAnimSpriteTemplate_83D7974, 16, 0, 0, 0, 1
wait
end
@@ -4160,22 +4160,22 @@ Move_FAKE_TEARS: @ 81CD10D
loadsprite 10155
loadsprite 10209
loadsprite 10072
- createtask sub_80E2C60, 5, 5, 10155, 0, 4, 4, 32108
+ createtask sub_80E2C60, 5, 10155, 0, 4, 4, 32108
wait
- createtask sub_812E568, 5, 3, 0, 2, 1
+ createtask sub_812E568, 5, 0, 2, 1
panse_1C SE_W039, 192, 12, 4
pause 8
- sprite gBattleAnimSpriteTemplate_83DB238, 2, 2, 0, 0
- sprite gBattleAnimSpriteTemplate_83DB238, 2, 2, 0, 1
+ sprite gBattleAnimSpriteTemplate_83DB238, 2, 0, 0
+ sprite gBattleAnimSpriteTemplate_83DB238, 2, 0, 1
pause 8
- sprite gBattleAnimSpriteTemplate_83DB238, 2, 2, 0, 2
- sprite gBattleAnimSpriteTemplate_83DB238, 2, 2, 0, 3
+ sprite gBattleAnimSpriteTemplate_83DB238, 2, 0, 2
+ sprite gBattleAnimSpriteTemplate_83DB238, 2, 0, 3
pause 8
- sprite gBattleAnimSpriteTemplate_83DB238, 2, 2, 0, 0
- sprite gBattleAnimSpriteTemplate_83DB238, 2, 2, 0, 1
+ sprite gBattleAnimSpriteTemplate_83DB238, 2, 0, 0
+ sprite gBattleAnimSpriteTemplate_83DB238, 2, 0, 1
pause 8
- sprite gBattleAnimSpriteTemplate_83DB238, 2, 2, 0, 2
- sprite gBattleAnimSpriteTemplate_83DB238, 2, 2, 0, 3
+ sprite gBattleAnimSpriteTemplate_83DB238, 2, 0, 2
+ sprite gBattleAnimSpriteTemplate_83DB238, 2, 0, 3
wait
end
@@ -4187,13 +4187,13 @@ Move_AIR_CUTTER: @ 81CD19D
monbg 3
setalpha 12, 8
pause 0
- createtask sub_80CFB04, 2, 5, 32, -24, 1536, 2, 128
+ createtask sub_80CFB04, 2, 32, -24, 1536, 2, 128
wait
panse_19 SE_W015, 63
- sprite gBattleAnimSpriteTemplate_83D6B40, 2, 4, 40, -32, 0, 2
+ sprite gBattleAnimSpriteTemplate_83D6B40, 2, 40, -32, 0, 2
pause 5
- createtask sub_80A7FA0, 2, 5, 1, 2, 0, 8, 1
- createtask sub_80A7FA0, 2, 5, 3, 2, 0, 8, 1
+ createtask sub_80A7FA0, 2, 1, 2, 0, 8, 1
+ createtask sub_80A7FA0, 2, 3, 2, 0, 8, 1
wait
blendoff
clearmonbg 3
@@ -4204,69 +4204,69 @@ Move_ODOR_SLEUTH: @ 81CD1FF
monbg 1
createtask sub_81316F8, 5
pause 24
- sprite gBattleAnimSpriteTemplate_83C1FB0, 2, 2, 3, 4
+ sprite gBattleAnimSpriteTemplate_83C1FB0, 2, 3, 4
panse_19 SE_W207, 192
pause 6
- sprite gBattleAnimSpriteTemplate_83C1FB0, 2, 2, 3, 4
+ sprite gBattleAnimSpriteTemplate_83C1FB0, 2, 3, 4
panse_19 SE_W207, 192
wait
clearmonbg 1
pause 1
- sprite gBattleAnimSpriteTemplate_83DB3DC, 2, 7, 1, 3, 1, -1, 16, -1, 0
+ sprite gBattleAnimSpriteTemplate_83DB3DC, 2, 1, 3, 1, -1, 16, -1, 0
panse_19 SE_W043, 192
end
Move_GRASS_WHISTLE: @ 81CD249
loadsprite 10072
- sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 5, 1, 2, 0, 4, 13298
+ sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 1, 2, 0, 4, 13298
wait
createtask sub_80CEA20, 2
wait
panse_1B SE_W320, 192, 63, 2, 0
- sprite gBattleAnimSpriteTemplate_83D7114, 130, 3, 7, 1, 0
+ sprite gBattleAnimSpriteTemplate_83D7114, 130, 7, 1, 0
pause 5
- sprite gBattleAnimSpriteTemplate_83D7114, 130, 3, 6, 1, 0
+ sprite gBattleAnimSpriteTemplate_83D7114, 130, 6, 1, 0
pause 5
- sprite gBattleAnimSpriteTemplate_83D7114, 130, 3, 1, 1, 0
+ sprite gBattleAnimSpriteTemplate_83D7114, 130, 1, 1, 0
pause 5
- sprite gBattleAnimSpriteTemplate_83D7114, 130, 3, 2, 1, 0
+ sprite gBattleAnimSpriteTemplate_83D7114, 130, 2, 1, 0
pause 5
- sprite gBattleAnimSpriteTemplate_83D7114, 130, 3, 3, 1, 0
+ sprite gBattleAnimSpriteTemplate_83D7114, 130, 3, 1, 0
pause 4
- sprite gBattleAnimSpriteTemplate_83D7114, 130, 3, 2, 1, 0
+ sprite gBattleAnimSpriteTemplate_83D7114, 130, 2, 1, 0
pause 4
- sprite gBattleAnimSpriteTemplate_83D7114, 130, 3, 5, 1, 0
+ sprite gBattleAnimSpriteTemplate_83D7114, 130, 5, 1, 0
pause 4
- sprite gBattleAnimSpriteTemplate_83D7114, 130, 3, 6, 1, 0
+ sprite gBattleAnimSpriteTemplate_83D7114, 130, 6, 1, 0
pause 4
- sprite gBattleAnimSpriteTemplate_83D7114, 130, 3, 2, 1, 0
+ sprite gBattleAnimSpriteTemplate_83D7114, 130, 2, 1, 0
pause 4
- sprite gBattleAnimSpriteTemplate_83D7114, 130, 3, 2, 1, 0
+ sprite gBattleAnimSpriteTemplate_83D7114, 130, 2, 1, 0
pause 4
- sprite gBattleAnimSpriteTemplate_83D7114, 130, 3, 1, 1, 0
+ sprite gBattleAnimSpriteTemplate_83D7114, 130, 1, 1, 0
pause 4
- sprite gBattleAnimSpriteTemplate_83D7114, 130, 3, 5, 1, 0
+ sprite gBattleAnimSpriteTemplate_83D7114, 130, 5, 1, 0
pause 4
wait
createtask sub_80CEAD8, 2
- sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 5, 1, 4, 4, 0, 13298
+ sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 1, 4, 4, 0, 13298
wait
end
Move_TICKLE: @ 81CD33C
loadsprite 10218
- sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 5, 2, 0, 0, 16, 0
+ sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 2, 0, 0, 16, 0
wait
- sprite gBattleAnimSpriteTemplate_83D7B94, 0, 2, -16, -8
- sprite gBattleAnimSpriteTemplate_83D7B94, 0, 2, 16, -8
+ sprite gBattleAnimSpriteTemplate_83D7B94, 0, -16, -8
+ sprite gBattleAnimSpriteTemplate_83D7B94, 0, 16, -8
panse_19 SE_W197, 192
wait
- sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 5, 2, 0, 16, 0, 0
+ sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 2, 0, 16, 0, 0
wait
pause 20
- createtask sub_80A8B88, 3, 5, 0, 6, 1280, 3, 0
+ createtask sub_80A8B88, 3, 0, 6, 1280, 3, 0
pause 12
- createtask sub_812E568, 3, 3, 1, 6, 2
+ createtask sub_812E568, 3, 1, 6, 2
panse_1C SE_W039, 63, 8, 8
wait
end
@@ -4295,13 +4295,13 @@ Move_SHADOW_PUNCH: @ 81CD3D6
waitbgfadein
monbg 2
setalpha 9, 8
- createtask sub_807A69C, 2, 2, 0, 13
+ createtask sub_807A69C, 2, 0, 13
panse_19 SE_W026, 192
pause 6
- sprite gBattleAnimSpriteTemplate_83DB4A8, 131, 4, 0, 0, 1, 1
- sprite gBattleAnimSpriteTemplate_83D9FA8, 132, 5, 0, 0, 8, 1, 0
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 131, 0, 0, 1, 1
+ sprite gBattleAnimSpriteTemplate_83D9FA8, 132, 0, 0, 8, 1, 0
panse_19 SE_W004, 63
- createtask sub_80A7E7C, 2, 5, 1, 3, 0, 6, 1
+ createtask sub_80A7E7C, 2, 1, 3, 0, 6, 1
wait
clearmonbg 2
blendoff
@@ -4313,16 +4313,16 @@ Move_EXTRASENSORY: @ 81CD431
call Unknown_81D61E7
monbg 3
setalpha 12, 8
- createtask sub_8079790, 5, 5, 0, 891, 12, 1, 1
- createtask sub_80DC2D4, 5, 1, 0
+ createtask sub_8079790, 5, 0, 891, 12, 1, 1
+ createtask sub_80DC2D4, 5, 0
panse_19 SE_W020, 63
wait
- createtask sub_8079790, 5, 5, 0, 891, 12, 1, 1
- createtask sub_80DC2D4, 5, 1, 1
+ createtask sub_8079790, 5, 0, 891, 12, 1, 1
+ createtask sub_80DC2D4, 5, 1
panse_19 SE_W020, 63
wait
- createtask sub_80DC4F4, 5, 1, 0
- createtask sub_80DC2D4, 5, 1, 2
+ createtask sub_80DC4F4, 5, 0
+ createtask sub_80DC2D4, 5, 2
panse_19 SE_W043, 192
wait
blendoff
@@ -4334,13 +4334,13 @@ Move_AERIAL_ACE: @ 81CD499
loadsprite 10138
monbg 1
setalpha 12, 8
- createtask sub_80A8500, 2, 5, 0, 24, 6, 1, 5
- createtask sub_80E2DD8, 2, 4, 0, 4, 7, 3
- sprite gBattleAnimSpriteTemplate_83D6B28, 2, 3, 40, -32, 0
+ createtask sub_80A8500, 2, 0, 24, 6, 1, 5
+ createtask sub_80E2DD8, 2, 0, 4, 7, 3
+ sprite gBattleAnimSpriteTemplate_83D6B28, 2, 40, -32, 0
panse_19 SE_W013B, 192
pause 5
- createtask sub_80A7E7C, 2, 5, 1, 0, 3, 10, 1
- sprite gBattleAnimSpriteTemplate_83DB3DC, 2, 7, 31, 3, 1, 0, 10, 0, 0
+ createtask sub_80A7E7C, 2, 1, 0, 3, 10, 1
+ sprite gBattleAnimSpriteTemplate_83DB3DC, 2, 31, 3, 1, 0, 10, 0, 0
panse_19 SE_W013, 63
wait
clearmonbg 1
@@ -4349,8 +4349,8 @@ Move_AERIAL_ACE: @ 81CD499
Move_IRON_DEFENSE: @ 81CD503
panse_1C SE_REAPOKE, 192, 28, 2
- createtask sub_80E0A4C, 5, 3, 0, 0, 0
- sprite gBattleAnimSpriteTemplate_83DB3DC, 2, 7, 1, 8, 2, -1, 14, -1, 0
+ createtask sub_80E0A4C, 5, 0, 0, 0
+ sprite gBattleAnimSpriteTemplate_83DB3DC, 2, 1, 8, 2, -1, 14, -1, 0
wait
end
@@ -4362,10 +4362,10 @@ Move_BLOCK: @ 81CD52D
Move_HOWL: @ 81CD53C
loadsprite 10053
- createtask sub_812F724, 2, 1, 0
+ createtask sub_812F724, 2, 0
pause 12
call _81CE35E
- createtask sub_812B18C, 2, 2, 0, 3
+ createtask sub_812B18C, 2, 0, 3
wait
pause 30
end
@@ -4383,17 +4383,17 @@ Move_BULK_UP: @ 81CD55E
Move_COVET: @ 81CD57C
loadsprite 10210
loadsprite 10224
- createtask sub_812E568, 5, 3, 0, 2, 0
- sprite gBattleAnimSpriteTemplate_83D7A80, 3, 2, 0, 20
+ createtask sub_812E568, 5, 0, 2, 0
+ sprite gBattleAnimSpriteTemplate_83D7A80, 3, 0, 20
panse_19 SE_W204, 192
pause 15
- sprite gBattleAnimSpriteTemplate_83D7A80, 3, 2, -20, 20
+ sprite gBattleAnimSpriteTemplate_83D7A80, 3, -20, 20
panse_19 SE_W204, 192
pause 15
- sprite gBattleAnimSpriteTemplate_83D7A80, 3, 2, 20, 20
+ sprite gBattleAnimSpriteTemplate_83D7A80, 3, 20, 20
panse_19 SE_W204, 192
wait
- createtask sub_80A7FA0, 2, 5, 1, 2, 0, 8, 1
+ createtask sub_80A7FA0, 2, 1, 2, 0, 8, 1
panse_1C SE_W146, 63, 4, 3
end
@@ -4403,7 +4403,7 @@ Move_VOLT_TACKLE: @ 81CD5D9
loadsprite 10213
monbg 0
setalpha 12, 8
- createtask sub_80E2A38, 10, 5, 1, 0, 0, 8, 0
+ createtask sub_80E2A38, 10, 1, 0, 0, 8, 0
wait
sprite gBattleAnimSpriteTemplate_83D9AB4, 1
panse_19 SE_W268, 192
@@ -4411,36 +4411,36 @@ Move_VOLT_TACKLE: @ 81CD5D9
clearmonbg 0
blendoff
pause 8
- createtask sub_80D700C, 5, 1, 0
+ createtask sub_80D700C, 5, 0
panse_19 SE_W085, 192
wait
- createtask sub_80D700C, 5, 1, 1
+ createtask sub_80D700C, 5, 1
panse_19 SE_W085, 63
wait
- createtask sub_80D700C, 5, 1, 2
+ createtask sub_80D700C, 5, 2
panse_19 SE_W085, 192
wait
- createtask sub_80D700C, 5, 1, 3
+ createtask sub_80D700C, 5, 3
panse_19 SE_W085, 63
wait
- createtask sub_80D700C, 5, 1, 4
+ createtask sub_80D700C, 5, 4
panse_19 SE_W085, 192
pause 8
- createtask sub_80A7FA0, 2, 5, 1, 10, 0, 18, 1
+ createtask sub_80A7FA0, 2, 1, 10, 0, 18, 1
panse_19 SE_W120, 63
- sprite gBattleAnimSpriteTemplate_83D9A9C, 2, 3, 1, 16, 16
+ sprite gBattleAnimSpriteTemplate_83D9A9C, 2, 1, 16, 16
pause 2
- sprite gBattleAnimSpriteTemplate_83D9A9C, 2, 3, 1, -16, -16
+ sprite gBattleAnimSpriteTemplate_83D9A9C, 2, 1, -16, -16
pause 8
createtask sub_80D6E9C, 5
wait
- createtask sub_80A7FA0, 2, 5, 0, 3, 0, 9, 1
+ createtask sub_80A7FA0, 2, 0, 3, 0, 9, 1
panse_19 SE_W085B, 192
- sprite gBattleAnimSpriteTemplate_83D9A9C, 2, 3, 0, 16, 16
+ sprite gBattleAnimSpriteTemplate_83D9A9C, 2, 0, 16, 16
pause 2
- sprite gBattleAnimSpriteTemplate_83D9A9C, 2, 3, 0, -16, -16
+ sprite gBattleAnimSpriteTemplate_83D9A9C, 2, 0, -16, -16
wait
- createtask sub_80E2A38, 10, 5, 1, 0, 8, 0, 0
+ createtask sub_80E2A38, 10, 1, 0, 8, 0, 0
wait
end
@@ -4460,22 +4460,22 @@ Move_WATER_SPORT: @ 81CD6D1
Move_CALM_MIND: @ 81CD6F7
loadsprite 10203
monbg 2
- createtask sub_80E2A7C, 5, 5, 0, 0, 0, 16, 0
+ createtask sub_80E2A7C, 5, 0, 0, 0, 16, 0
wait
- createtask sub_80E3BDC, 5, 1, 1
+ createtask sub_80E3BDC, 5, 1
wait
- sprite gBattleAnimSpriteTemplate_83D795C, 40, 4, 0, 0, 0, 0
+ sprite gBattleAnimSpriteTemplate_83D795C, 40, 0, 0, 0, 0
panse_19 SE_W048, 192
pause 14
- sprite gBattleAnimSpriteTemplate_83D795C, 40, 4, 0, 0, 0, 0
+ sprite gBattleAnimSpriteTemplate_83D795C, 40, 0, 0, 0, 0
panse_19 SE_W048, 192
pause 14
- sprite gBattleAnimSpriteTemplate_83D795C, 40, 4, 0, 0, 0, 0
+ sprite gBattleAnimSpriteTemplate_83D795C, 40, 0, 0, 0, 0
panse_19 SE_W048, 192
wait
- createtask sub_80E3BDC, 5, 1, 0
+ createtask sub_80E3BDC, 5, 0
wait
- createtask sub_80E2A7C, 5, 5, 0, 0, 16, 0, 0
+ createtask sub_80E2A7C, 5, 0, 0, 16, 0, 0
wait
clearmonbg 2
end
@@ -4485,20 +4485,20 @@ Move_LEAF_BLADE: @ 81CD775
loadsprite 10285
createtask sub_80CBDF4, 5
pause 2
- createtask sub_80A7FA0, 2, 5, 1, 2, 0, 8, 1
+ createtask sub_80A7FA0, 2, 1, 2, 0, 8, 1
panse_19 SE_W015, 63
pause 50
- createtask sub_80A7FA0, 2, 5, 1, 2, 0, 8, 1
+ createtask sub_80A7FA0, 2, 1, 2, 0, 8, 1
panse_19 SE_W015, 63
pause 50
- createtask sub_80A7FA0, 2, 5, 1, 2, 0, 8, 1
+ createtask sub_80A7FA0, 2, 1, 2, 0, 8, 1
panse_19 SE_W015, 63
wait
monbg 1
setalpha 12, 8
pause 12
- createtask sub_80A7FA0, 2, 5, 1, 8, 0, 18, 1
- sprite gBattleAnimSpriteTemplate_83DB520, 130, 4, 0, 0, 1, 36
+ createtask sub_80A7FA0, 2, 1, 8, 0, 18, 1
+ sprite gBattleAnimSpriteTemplate_83DB520, 130, 0, 0, 1, 36
panse_19 SE_W043, 63
wait
clearmonbg 1
@@ -4513,13 +4513,13 @@ Move_DRAGON_DANCE: @ 81CD7F8
createtask sub_80DF924, 5
panse_19 SE_W100, 192
pause 8
- createtask sub_80798AC, 5, 5, 10249, 19456, 14, 0, 3
- sprite gBattleAnimSpriteTemplate_83DB0E8, 2, 1, 0
- sprite gBattleAnimSpriteTemplate_83DB0E8, 2, 1, 43
- sprite gBattleAnimSpriteTemplate_83DB0E8, 2, 1, 85
- sprite gBattleAnimSpriteTemplate_83DB0E8, 2, 1, 128
- sprite gBattleAnimSpriteTemplate_83DB0E8, 2, 1, 170
- sprite gBattleAnimSpriteTemplate_83DB0E8, 2, 1, 213
+ createtask sub_80798AC, 5, 10249, 19456, 14, 0, 3
+ sprite gBattleAnimSpriteTemplate_83DB0E8, 2, 0
+ sprite gBattleAnimSpriteTemplate_83DB0E8, 2, 43
+ sprite gBattleAnimSpriteTemplate_83DB0E8, 2, 85
+ sprite gBattleAnimSpriteTemplate_83DB0E8, 2, 128
+ sprite gBattleAnimSpriteTemplate_83DB0E8, 2, 170
+ sprite gBattleAnimSpriteTemplate_83DB0E8, 2, 213
pause 30
panse_19 SE_W100, 192
pause 30
@@ -4536,9 +4536,9 @@ Move_SHOCK_WAVE: @ 81CD867
loadsprite 10037
monbg 0
setalpha 12, 8
- sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 5, 1, 2, 0, 4, 0
+ sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 1, 2, 0, 4, 0
wait
- createtask sub_80D6B3C, 2, 4, 0, 20, 0, 2
+ createtask sub_80D6B3C, 2, 0, 20, 0, 2
panse_19 SE_W268, 192
pause 12
sprite gBattleAnimSpriteTemplate_83D9B28, 2
@@ -4549,11 +4549,11 @@ Move_SHOCK_WAVE: @ 81CD867
createtask sub_80D759C, 5
panse_19 SE_W161B, 63
wait
- createtask sub_80A7E7C, 2, 5, 1, 0, 6, 18, 1
- createtask sub_80E2A38, 5, 5, 1, 3, 16, 0, 32767
- createtask sub_80E2A38, 5, 5, 4, 0, 16, 16, 0
+ createtask sub_80A7E7C, 2, 1, 0, 6, 18, 1
+ createtask sub_80E2A38, 5, 1, 3, 16, 0, 32767
+ createtask sub_80E2A38, 5, 4, 0, 16, 16, 0
pause 4
- createtask sub_80E2A38, 5, 5, 4, 0, 0, 0, 0
+ createtask sub_80E2A38, 5, 4, 0, 0, 0, 0
wait
clearmonbg 0
blendoff
@@ -4561,7 +4561,7 @@ Move_SHOCK_WAVE: @ 81CD867
Move_HARDEN: @ 81CD909
panse_1C SE_W231, 192, 28, 2
- createtask sub_80E0A4C, 5, 3, 0, 0, 0
+ createtask sub_80E0A4C, 5, 0, 0, 0
wait
end
@@ -4571,39 +4571,39 @@ Move_BELLY_DRUM: @ 81CD91E
createtask sub_80CEA20, 2
wait
call _81CD9EB
- sprite gBattleAnimSpriteTemplate_83D71A8, 2, 4, 0, 0, 0, 0
+ sprite gBattleAnimSpriteTemplate_83D71A8, 2, 0, 0, 0, 0
panse_19 SE_W187, 192
pause 15
call _81CD9D0
- sprite gBattleAnimSpriteTemplate_83D71A8, 2, 4, 1, 1, 1, 0
+ sprite gBattleAnimSpriteTemplate_83D71A8, 2, 1, 1, 1, 0
panse_19 SE_W187, 192
pause 15
call _81CD9EB
- sprite gBattleAnimSpriteTemplate_83D71A8, 2, 4, 0, 3, 3, 128
+ sprite gBattleAnimSpriteTemplate_83D71A8, 2, 0, 3, 3, 128
panse_19 SE_W187, 192
pause 7
call _81CD9D0
- sprite gBattleAnimSpriteTemplate_83D71A8, 2, 4, 1, 2, 0, 128
+ sprite gBattleAnimSpriteTemplate_83D71A8, 2, 1, 2, 0, 128
panse_19 SE_W187, 192
pause 7
call _81CD9EB
- sprite gBattleAnimSpriteTemplate_83D71A8, 2, 4, 0, 1, 1, 0
+ sprite gBattleAnimSpriteTemplate_83D71A8, 2, 0, 1, 1, 0
panse_19 SE_W187, 192
pause 7
call _81CD9D0
- sprite gBattleAnimSpriteTemplate_83D71A8, 2, 4, 1, 0, 3, 0
+ sprite gBattleAnimSpriteTemplate_83D71A8, 2, 1, 0, 3, 0
panse_19 SE_W187, 192
wait
createtask sub_80CEAD8, 2
wait
end
_81CD9D0:
- sprite gBattleAnimSpriteTemplate_83D7174, 3, 1, 0
- createtask sub_80A7E7C, 2, 5, 0, 0, 8, 2, 1
+ sprite gBattleAnimSpriteTemplate_83D7174, 3, 0
+ createtask sub_80A7E7C, 2, 0, 0, 8, 2, 1
ret
_81CD9EB:
- sprite gBattleAnimSpriteTemplate_83D7174, 3, 1, 1
- createtask sub_80A7E7C, 2, 5, 0, 0, 8, 2, 1
+ sprite gBattleAnimSpriteTemplate_83D7174, 3, 1
+ createtask sub_80A7E7C, 2, 0, 0, 8, 2, 1
ret
Move_MIND_READER: @ 81CDA06
@@ -4612,36 +4612,36 @@ Move_MIND_READER: @ 81CDA06
loadsprite 10191
monbg 4
panse_19 SE_W109, 63
- sprite gBattleAnimSpriteTemplate_84021DC, 5, 4, 0, 0, 1, 0
+ sprite gBattleAnimSpriteTemplate_84021DC, 5, 0, 0, 1, 0
sprite gBattleAnimSpriteTemplate_84021F4, 5
pause 40
panse_19 SE_W043, 63
- createtask sub_80E1F8C, 2, 6, 1, 1, 2, 0, 10, 0
+ createtask sub_80E1F8C, 2, 1, 1, 2, 0, 10, 0
call _81CDA4D
wait
clearmonbg 4
end
_81CDA4D:
- sprite gBattleAnimSpriteTemplate_840220C, 4, 3, 70, 0, 6
- sprite gBattleAnimSpriteTemplate_840220C, 4, 3, 40, 40, 6
- sprite gBattleAnimSpriteTemplate_840220C, 4, 3, 10, -60, 6
- sprite gBattleAnimSpriteTemplate_840220C, 4, 3, -50, -40, 6
- sprite gBattleAnimSpriteTemplate_840220C, 4, 3, -40, 40, 6
- sprite gBattleAnimSpriteTemplate_840220C, 4, 3, 50, -50, 6
- pause 2
- sprite gBattleAnimSpriteTemplate_840220C, 4, 3, 50, -30, 6
- sprite gBattleAnimSpriteTemplate_840220C, 4, 3, 60, 10, 6
- sprite gBattleAnimSpriteTemplate_840220C, 4, 3, 0, 60, 6
- sprite gBattleAnimSpriteTemplate_840220C, 4, 3, 0, -40, 6
- sprite gBattleAnimSpriteTemplate_840220C, 4, 3, -60, 20, 6
- sprite gBattleAnimSpriteTemplate_840220C, 4, 3, -60, -30, 6
- pause 2
- sprite gBattleAnimSpriteTemplate_840220C, 4, 3, -50, 50, 6
- sprite gBattleAnimSpriteTemplate_840220C, 4, 3, -60, 20, 6
- sprite gBattleAnimSpriteTemplate_840220C, 4, 3, -40, -40, 6
- sprite gBattleAnimSpriteTemplate_840220C, 4, 3, 20, -60, 6
- sprite gBattleAnimSpriteTemplate_840220C, 4, 3, 50, -50, 6
- sprite gBattleAnimSpriteTemplate_840220C, 4, 3, 35, 40, 6
+ sprite gBattleAnimSpriteTemplate_840220C, 4, 70, 0, 6
+ sprite gBattleAnimSpriteTemplate_840220C, 4, 40, 40, 6
+ sprite gBattleAnimSpriteTemplate_840220C, 4, 10, -60, 6
+ sprite gBattleAnimSpriteTemplate_840220C, 4, -50, -40, 6
+ sprite gBattleAnimSpriteTemplate_840220C, 4, -40, 40, 6
+ sprite gBattleAnimSpriteTemplate_840220C, 4, 50, -50, 6
+ pause 2
+ sprite gBattleAnimSpriteTemplate_840220C, 4, 50, -30, 6
+ sprite gBattleAnimSpriteTemplate_840220C, 4, 60, 10, 6
+ sprite gBattleAnimSpriteTemplate_840220C, 4, 0, 60, 6
+ sprite gBattleAnimSpriteTemplate_840220C, 4, 0, -40, 6
+ sprite gBattleAnimSpriteTemplate_840220C, 4, -60, 20, 6
+ sprite gBattleAnimSpriteTemplate_840220C, 4, -60, -30, 6
+ pause 2
+ sprite gBattleAnimSpriteTemplate_840220C, 4, -50, 50, 6
+ sprite gBattleAnimSpriteTemplate_840220C, 4, -60, 20, 6
+ sprite gBattleAnimSpriteTemplate_840220C, 4, -40, -40, 6
+ sprite gBattleAnimSpriteTemplate_840220C, 4, 20, -60, 6
+ sprite gBattleAnimSpriteTemplate_840220C, 4, 50, -50, 6
+ sprite gBattleAnimSpriteTemplate_840220C, 4, 35, 40, 6
pause 2
ret
@@ -4651,32 +4651,32 @@ Move_ICE_PUNCH: @ 81CDB3E
loadsprite 10141
loadsprite 10135
loadsprite 10143
- sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 5, 1, 1, 0, 7, 0
- createtask sub_80E2A38, 10, 5, 4, 2, 0, 9, 32588
+ sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 1, 1, 0, 7, 0
+ createtask sub_80E2A38, 10, 4, 2, 0, 9, 32588
pause 20
panse_19 SE_W081, 63
- sprite gBattleAnimSpriteTemplate_83D9BF8, 2, 1, 0
- sprite gBattleAnimSpriteTemplate_83D9BF8, 2, 1, 64
- sprite gBattleAnimSpriteTemplate_83D9BF8, 2, 1, 128
- sprite gBattleAnimSpriteTemplate_83D9BF8, 2, 1, 192
+ sprite gBattleAnimSpriteTemplate_83D9BF8, 2, 0
+ sprite gBattleAnimSpriteTemplate_83D9BF8, 2, 64
+ sprite gBattleAnimSpriteTemplate_83D9BF8, 2, 128
+ sprite gBattleAnimSpriteTemplate_83D9BF8, 2, 192
pause 5
- sprite gBattleAnimSpriteTemplate_83D9BE0, 2, 1, 32
- sprite gBattleAnimSpriteTemplate_83D9BE0, 2, 1, 96
- sprite gBattleAnimSpriteTemplate_83D9BE0, 2, 1, 160
- sprite gBattleAnimSpriteTemplate_83D9BE0, 2, 1, 224
+ sprite gBattleAnimSpriteTemplate_83D9BE0, 2, 32
+ sprite gBattleAnimSpriteTemplate_83D9BE0, 2, 96
+ sprite gBattleAnimSpriteTemplate_83D9BE0, 2, 160
+ sprite gBattleAnimSpriteTemplate_83D9BE0, 2, 224
pause 17
- sprite gBattleAnimSpriteTemplate_83D9FA8, 4, 5, 0, -10, 8, 1, 0
- sprite gBattleAnimSpriteTemplate_83DB4A8, 3, 4, 0, -10, 1, 1
+ sprite gBattleAnimSpriteTemplate_83D9FA8, 4, 0, -10, 8, 1, 0
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 3, 0, -10, 1, 1
panse_19 SE_W004, 63
pause 2
- createtask sub_80A7E7C, 5, 5, 1, 0, 5, 3, 1
+ createtask sub_80A7E7C, 5, 1, 0, 5, 3, 1
wait
pause 15
call Unknown_81D5C36
pause 5
- createtask sub_80E2A38, 10, 5, 4, 2, 9, 0, 32588
+ createtask sub_80E2A38, 10, 4, 2, 9, 0, 32588
wait
- sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 5, 1, 0, 7, 0, 0
+ sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 1, 0, 7, 0, 0
wait
clearmonbg 3
blendoff
@@ -4685,11 +4685,11 @@ Move_ICE_PUNCH: @ 81CDB3E
Move_REST: @ 81CDC29
panse_19 SE_W173, 192
loadsprite 10228
- sprite gBattleAnimSpriteTemplate_83D6D94, 2, 5, 4, -10, 16, 0, 0
+ sprite gBattleAnimSpriteTemplate_83D6D94, 2, 4, -10, 16, 0, 0
pause 20
- sprite gBattleAnimSpriteTemplate_83D6D94, 2, 5, 4, -10, 16, 0, 0
+ sprite gBattleAnimSpriteTemplate_83D6D94, 2, 4, -10, 16, 0, 0
pause 20
- sprite gBattleAnimSpriteTemplate_83D6D94, 2, 5, 4, -10, 16, 0, 0
+ sprite gBattleAnimSpriteTemplate_83D6D94, 2, 4, -10, 16, 0, 0
wait
end
@@ -4697,12 +4697,12 @@ Move_CONFUSION: @ 81CDC69
monbg 3
call Unknown_81D61E7
setalpha 8, 8
- createtask sub_80A7FA0, 2, 5, 0, 1, 0, 10, 1
- createtask sub_80E1F8C, 2, 6, 2, 0, 2, 0, 8, 32767
+ createtask sub_80A7FA0, 2, 0, 1, 0, 10, 1
+ createtask sub_80E1F8C, 2, 2, 0, 2, 0, 8, 32767
wait
panse_19 SE_W048, 63
- createtask sub_80A7E7C, 2, 5, 1, 3, 0, 15, 1
- createtask sub_80A8D34, 5, 5, -4, -4, 15, 1, 1
+ createtask sub_80A7E7C, 2, 1, 3, 0, 15, 1
+ createtask sub_80A8D34, 5, -4, -4, 15, 1, 1
wait
clearmonbg 3
blendoff
@@ -4714,12 +4714,12 @@ Move_PSYCHIC: @ 81CDCCA
monbg 3
call Unknown_81D61E7
setalpha 8, 8
- createtask sub_80A7FA0, 2, 5, 0, 1, 0, 10, 1
- createtask sub_80E1F8C, 2, 6, 2, 0, 2, 0, 8, 767
+ createtask sub_80A7FA0, 2, 0, 1, 0, 10, 1
+ createtask sub_80E1F8C, 2, 2, 0, 2, 0, 8, 767
wait
panse_1C SE_W048, 63, 10, 3
- createtask sub_80A7E7C, 2, 5, 1, 5, 0, 15, 1
- createtask sub_80A8D34, 5, 5, -6, -6, 15, 1, 1
+ createtask sub_80A7E7C, 2, 1, 5, 0, 15, 1
+ createtask sub_80A8D34, 5, -6, -6, 15, 1, 1
wait
clearmonbg 3
blendoff
@@ -4740,8 +4740,8 @@ _81CDD3B:
call Unknown_81D61E7
setalpha 8, 8
panse_19 SE_W048, 192
- createtask sub_80E1F8C, 2, 6, 2, 0, 2, 0, 8, 32767
- createtask sub_80A8D34, 5, 5, -4, -4, 15, 0, 1
+ createtask sub_80E1F8C, 2, 2, 0, 2, 0, 8, 32767
+ createtask sub_80A8D34, 5, -4, -4, 15, 0, 1
wait
clearmonbg 2
blendoff
@@ -4754,10 +4754,10 @@ Unknown_81CDD7A: @ 81CDD7A
setalpha 8, 8
panse_19 SE_W048, 63
panse_1D SE_W048, 63, 8
- createtask sub_80A7E7C, 2, 5, 1, 4, 0, 15, 1
- createtask sub_80A8D34, 5, 5, -5, -5, 15, 1, 1
+ createtask sub_80A7E7C, 2, 1, 4, 0, 15, 1
+ createtask sub_80A8D34, 5, -5, -5, 15, 1, 1
wait
- createtask sub_80A7E7C, 2, 5, 1, 4, 0, 24, 1
+ createtask sub_80A7E7C, 2, 1, 4, 0, 24, 1
wait
clearmonbg 3
blendoff
@@ -4767,53 +4767,53 @@ Move_THUNDER: @ 81CDDCE
loadsprite 10037
fadetobg 11
waitbgfadeout
- createtask sub_80E3A58, 5, 4, -256, 0, 1, -1
+ createtask sub_80E3A58, 5, -256, 0, 1, -1
waitbgfadein
- sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 5, 1, 2, 0, 16, 0
+ sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 1, 2, 0, 16, 0
pause 16
- createtask sub_80E2324, 2, 3, 257, 257, 257
+ createtask sub_80E2324, 2, 257, 257, 257
panse_19 SE_W086, 63
pause 1
- sprite gBattleAnimSpriteTemplate_83D97D0, 130, 2, 16, -36
+ sprite gBattleAnimSpriteTemplate_83D97D0, 130, 16, -36
pause 1
- sprite gBattleAnimSpriteTemplate_83D97D0, 130, 2, 16, -20
+ sprite gBattleAnimSpriteTemplate_83D97D0, 130, 16, -20
pause 1
- sprite gBattleAnimSpriteTemplate_83D97D0, 130, 2, 16, 12
+ sprite gBattleAnimSpriteTemplate_83D97D0, 130, 16, 12
pause 20
- sprite gBattleAnimSpriteTemplate_83D97D0, 134, 2, -16, -32
+ sprite gBattleAnimSpriteTemplate_83D97D0, 134, -16, -32
panse_19 SE_W086, 63
pause 1
- sprite gBattleAnimSpriteTemplate_83D97D0, 134, 2, -16, -16
+ sprite gBattleAnimSpriteTemplate_83D97D0, 134, -16, -16
pause 1
- sprite gBattleAnimSpriteTemplate_83D97D0, 134, 2, -16, 16
+ sprite gBattleAnimSpriteTemplate_83D97D0, 134, -16, 16
panse_19 SE_W086, 63
pause 5
- createtask sub_80E2324, 2, 3, 257, 257, 257
+ createtask sub_80E2324, 2, 257, 257, 257
pause 1
- sprite gBattleAnimSpriteTemplate_83D97D0, 130, 2, 24, -32
+ sprite gBattleAnimSpriteTemplate_83D97D0, 130, 24, -32
pause 1
- sprite gBattleAnimSpriteTemplate_83D97D0, 130, 2, 24, -16
+ sprite gBattleAnimSpriteTemplate_83D97D0, 130, 24, -16
pause 1
- sprite gBattleAnimSpriteTemplate_83D97D0, 130, 2, 24, 16
+ sprite gBattleAnimSpriteTemplate_83D97D0, 130, 24, 16
pause 30
- createtask sub_80E2324, 2, 3, 257, 257, 257
+ createtask sub_80E2324, 2, 257, 257, 257
pause 5
- createtask sub_80E2324, 2, 3, 257, 257, 257
+ createtask sub_80E2324, 2, 257, 257, 257
pause 1
- sprite gBattleAnimSpriteTemplate_83D97D0, 130, 2, 0, -32
+ sprite gBattleAnimSpriteTemplate_83D97D0, 130, 0, -32
panse_19 SE_W161B, 63
pause 1
- sprite gBattleAnimSpriteTemplate_83D97D0, 130, 2, 0, -16
+ sprite gBattleAnimSpriteTemplate_83D97D0, 130, 0, -16
pause 1
- sprite gBattleAnimSpriteTemplate_83D97D0, 130, 2, 0, 16
+ sprite gBattleAnimSpriteTemplate_83D97D0, 130, 0, 16
pause 10
- createtask sub_80E2324, 2, 3, 257, 257, 257
+ createtask sub_80E2324, 2, 257, 257, 257
pause 1
- createtask sub_80D60B4, 2, 4, 30, 3, 1, 0
+ createtask sub_80D60B4, 2, 30, 3, 1, 0
pause 2
- createtask sub_80E2324, 2, 3, 257, 257, 257
+ createtask sub_80E2324, 2, 257, 257, 257
pause 1
- sprite gBattleAnimSpriteTemplate_83DB3C4, 130, 5, 1, 2, 16, 0, 0
+ sprite gBattleAnimSpriteTemplate_83DB3C4, 130, 1, 2, 16, 0, 0
wait
restorebg
waitbgfadeout
@@ -4827,27 +4827,27 @@ Move_THUNDER_PUNCH: @ 81CDF28
loadsprite 10037
monbg 1
setalpha 12, 8
- sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 5, 1, 2, 0, 16, 0
+ sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 1, 2, 0, 16, 0
wait
panse_19 SE_W004, 63
- sprite gBattleAnimSpriteTemplate_83D9FA8, 132, 5, 0, 0, 8, 1, 0
- sprite gBattleAnimSpriteTemplate_83DB4A8, 131, 4, 0, 0, 1, 1
+ sprite gBattleAnimSpriteTemplate_83D9FA8, 132, 0, 0, 8, 1, 0
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 131, 0, 0, 1, 1
pause 1
- createtask sub_80E2324, 2, 3, 257, 257, 257
+ createtask sub_80E2324, 2, 257, 257, 257
pause 1
- sprite gBattleAnimSpriteTemplate_83D97D0, 130, 2, 0, -48
+ sprite gBattleAnimSpriteTemplate_83D97D0, 130, 0, -48
pause 1
- sprite gBattleAnimSpriteTemplate_83D97D0, 2, 2, 0, -16
+ sprite gBattleAnimSpriteTemplate_83D97D0, 2, 0, -16
pause 1
- sprite gBattleAnimSpriteTemplate_83D97D0, 2, 2, 0, 16
+ sprite gBattleAnimSpriteTemplate_83D97D0, 2, 0, 16
pause 1
panse_19 SE_W161B, 63
- createtask sub_80E2324, 2, 3, 257, 257, 257
+ createtask sub_80E2324, 2, 257, 257, 257
pause 2
- createtask sub_80A7E7C, 2, 5, 1, 0, 3, 15, 1
- sprite gBattleAnimSpriteTemplate_83DB4A8, 3, 4, 0, 0, 1, 2
+ createtask sub_80A7E7C, 2, 1, 0, 3, 15, 1
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 3, 0, 0, 1, 2
pause 1
- sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 5, 1, 2, 16, 0, 0
+ sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 1, 2, 16, 0, 0
pause 20
wait
clearmonbg 1
@@ -4858,56 +4858,56 @@ Move_SACRED_FIRE: @ 81CDFF1
loadsprite 10033
loadsprite 10035
panse_1C SE_W221, 192, 7, 5
- sprite gBattleAnimSpriteTemplate_83D9538, 2, 6, -32, 0, 50, 5, -2, 0
+ sprite gBattleAnimSpriteTemplate_83D9538, 2, -32, 0, 50, 5, -2, 0
pause 1
- sprite gBattleAnimSpriteTemplate_83D9538, 66, 6, -20, -10, 50, 5, -1, -1
+ sprite gBattleAnimSpriteTemplate_83D9538, 66, -20, -10, 50, 5, -1, -1
pause 1
- sprite gBattleAnimSpriteTemplate_83D9538, 66, 6, 0, -16, 50, 5, 0, -1
+ sprite gBattleAnimSpriteTemplate_83D9538, 66, 0, -16, 50, 5, 0, -1
pause 1
- sprite gBattleAnimSpriteTemplate_83D9538, 66, 6, 20, -10, 50, 5, 1, -1
+ sprite gBattleAnimSpriteTemplate_83D9538, 66, 20, -10, 50, 5, 1, -1
pause 1
- sprite gBattleAnimSpriteTemplate_83D9538, 2, 6, 32, 0, 50, 5, 2, 0
+ sprite gBattleAnimSpriteTemplate_83D9538, 2, 32, 0, 50, 5, 2, 0
pause 1
- sprite gBattleAnimSpriteTemplate_83D9538, 2, 6, 20, 10, 50, 5, 1, 1
+ sprite gBattleAnimSpriteTemplate_83D9538, 2, 20, 10, 50, 5, 1, 1
pause 1
- createtask sub_80E2324, 2, 3, 257, 257, 257
+ createtask sub_80E2324, 2, 257, 257, 257
pause 1
- sprite gBattleAnimSpriteTemplate_83D9538, 2, 6, 0, 16, 50, 5, 0, 1
+ sprite gBattleAnimSpriteTemplate_83D9538, 2, 0, 16, 50, 5, 0, 1
pause 1
- sprite gBattleAnimSpriteTemplate_83D9538, 2, 6, -20, 10, 50, 5, -1, 1
- createtask sub_80E2324, 2, 3, 257, 257, 257
+ sprite gBattleAnimSpriteTemplate_83D9538, 2, -20, 10, 50, 5, -1, 1
+ createtask sub_80E2324, 2, 257, 257, 257
pause 1
wait
panse_19 SE_W221B, 63
- sprite gBattleAnimSpriteTemplate_83D9508, 130, 6, -16, 0, 70, 16, 0, 1
+ sprite gBattleAnimSpriteTemplate_83D9508, 130, -16, 0, 70, 16, 0, 1
pause 10
panse_19 SE_W221B, 63
- sprite gBattleAnimSpriteTemplate_83D9508, 130, 6, 0, 0, 70, 16, 0, 1
+ sprite gBattleAnimSpriteTemplate_83D9508, 130, 0, 0, 70, 16, 0, 1
pause 10
panse_19 SE_W221B, 63
- sprite gBattleAnimSpriteTemplate_83D9508, 130, 6, 16, 0, 80, 16, 0, 1
+ sprite gBattleAnimSpriteTemplate_83D9508, 130, 16, 0, 80, 16, 0, 1
pause 1
- createtask sub_80E2324, 2, 3, 257, 257, 257
+ createtask sub_80E2324, 2, 257, 257, 257
pause 1
wait
- createtask sub_80E2324, 2, 3, 257, 257, 257
+ createtask sub_80E2324, 2, 257, 257, 257
pause 1
panse_19 SE_W172B, 63
- sprite gBattleAnimSpriteTemplate_83D9520, 130, 6, 0, 0, 30, 30, -1, 0
+ sprite gBattleAnimSpriteTemplate_83D9520, 130, 0, 0, 30, 30, -1, 0
pause 1
- sprite gBattleAnimSpriteTemplate_83D9520, 130, 6, 0, 0, 30, 30, 0, 1
+ sprite gBattleAnimSpriteTemplate_83D9520, 130, 0, 0, 30, 30, 0, 1
pause 1
- sprite gBattleAnimSpriteTemplate_83D9520, 130, 6, 0, 0, 30, 30, -1, -1
+ sprite gBattleAnimSpriteTemplate_83D9520, 130, 0, 0, 30, 30, -1, -1
pause 1
- sprite gBattleAnimSpriteTemplate_83D9520, 130, 6, 0, 0, 30, 30, 2, 1
+ sprite gBattleAnimSpriteTemplate_83D9520, 130, 0, 0, 30, 30, 2, 1
pause 1
- sprite gBattleAnimSpriteTemplate_83D9520, 130, 6, 0, 0, 30, 30, 1, -1
+ sprite gBattleAnimSpriteTemplate_83D9520, 130, 0, 0, 30, 30, 1, -1
pause 1
- sprite gBattleAnimSpriteTemplate_83D9520, 130, 6, 0, 0, 30, 30, -1, 1
+ sprite gBattleAnimSpriteTemplate_83D9520, 130, 0, 0, 30, 30, -1, 1
pause 1
- sprite gBattleAnimSpriteTemplate_83D9520, 130, 6, 0, 0, 30, 30, 1, -2
+ sprite gBattleAnimSpriteTemplate_83D9520, 130, 0, 0, 30, 30, 1, -2
pause 1
- sprite gBattleAnimSpriteTemplate_83D9520, 130, 6, 0, 0, 30, 30, 3, 1
+ sprite gBattleAnimSpriteTemplate_83D9520, 130, 0, 0, 30, 30, 3, 1
wait
end
@@ -4916,8 +4916,8 @@ Move_SCRATCH: @ 81CE1D8
monbg 1
setalpha 12, 8
panse_19 SE_W010, 63
- sprite gBattleAnimSpriteTemplate_8402180, 2, 4, 0, 0, 1, 0
- createtask sub_80A7E7C, 2, 5, 1, 3, 0, 6, 1
+ sprite gBattleAnimSpriteTemplate_8402180, 2, 0, 0, 1, 0
+ createtask sub_80A7E7C, 2, 1, 3, 0, 6, 1
wait
clearmonbg 1
blendoff
@@ -4929,31 +4929,31 @@ Move_DRAGON_BREATH: @ 81CE20A
monbg 3
monbgprio_28 1
panse_1C SE_W172, 192, 7, 7
- sprite gBattleAnimSpriteTemplate_83DB044, 130, 5, 0, 0, 0, 0, 20
+ sprite gBattleAnimSpriteTemplate_83DB044, 130, 0, 0, 0, 0, 20
pause 2
- sprite gBattleAnimSpriteTemplate_83DB044, 130, 5, 0, 0, 0, 0, 20
+ sprite gBattleAnimSpriteTemplate_83DB044, 130, 0, 0, 0, 0, 20
pause 2
- createtask sub_80E2A38, 10, 5, 4, 1, 0, 9, 31
- sprite gBattleAnimSpriteTemplate_83DB044, 130, 5, 0, 0, 0, 0, 20
+ createtask sub_80E2A38, 10, 4, 1, 0, 9, 31
+ sprite gBattleAnimSpriteTemplate_83DB044, 130, 0, 0, 0, 0, 20
pause 2
- createtask sub_80A7FA0, 2, 5, 1, 2, 0, 21, 1
- sprite gBattleAnimSpriteTemplate_83DB044, 130, 5, 0, 0, 0, 0, 20
+ createtask sub_80A7FA0, 2, 1, 2, 0, 21, 1
+ sprite gBattleAnimSpriteTemplate_83DB044, 130, 0, 0, 0, 0, 20
pause 2
- sprite gBattleAnimSpriteTemplate_83DB044, 130, 5, 0, 0, 0, 0, 20
+ sprite gBattleAnimSpriteTemplate_83DB044, 130, 0, 0, 0, 0, 20
pause 2
- sprite gBattleAnimSpriteTemplate_83DB044, 130, 5, 0, 0, 0, 0, 20
+ sprite gBattleAnimSpriteTemplate_83DB044, 130, 0, 0, 0, 0, 20
pause 2
- sprite gBattleAnimSpriteTemplate_83DB044, 130, 5, 0, 0, 0, 0, 20
+ sprite gBattleAnimSpriteTemplate_83DB044, 130, 0, 0, 0, 0, 20
pause 2
- sprite gBattleAnimSpriteTemplate_83DB044, 130, 5, 0, 0, 0, 0, 20
+ sprite gBattleAnimSpriteTemplate_83DB044, 130, 0, 0, 0, 0, 20
pause 2
- sprite gBattleAnimSpriteTemplate_83DB044, 130, 5, 0, 0, 0, 0, 20
+ sprite gBattleAnimSpriteTemplate_83DB044, 130, 0, 0, 0, 0, 20
pause 2
- sprite gBattleAnimSpriteTemplate_83DB044, 130, 5, 0, 0, 0, 0, 20
+ sprite gBattleAnimSpriteTemplate_83DB044, 130, 0, 0, 0, 0, 20
pause 2
- sprite gBattleAnimSpriteTemplate_83DB044, 130, 5, 0, 0, 0, 0, 20
+ sprite gBattleAnimSpriteTemplate_83DB044, 130, 0, 0, 0, 0, 20
wait
- createtask sub_80E2A38, 10, 5, 4, 1, 9, 0, 31
+ createtask sub_80E2A38, 10, 4, 1, 9, 0, 31
wait
clearmonbg 3
end
@@ -4963,11 +4963,11 @@ Move_ROAR: @ 81CE31E
monbg 0
monbgprio_28 0
setalpha 8, 8
- createtask sub_812B18C, 2, 2, 0, 2
- createtask sub_80A8D34, 5, 5, -5, -5, 10, 0, 1
+ createtask sub_812B18C, 2, 0, 2
+ createtask sub_80A8D34, 5, -5, -5, 10, 0, 1
call _81CE35E
pause 20
- createtask sub_80A8A80, 5, 2, 1, 2
+ createtask sub_80A8A80, 5, 1, 2
wait
clearmonbg 0
blendoff
@@ -4975,22 +4975,22 @@ Move_ROAR: @ 81CE31E
pause 20
end
_81CE35E:
- sprite gBattleAnimSpriteTemplate_8402934, 2, 3, 24, -8, 0
- sprite gBattleAnimSpriteTemplate_8402934, 2, 3, 24, 0, 2
- sprite gBattleAnimSpriteTemplate_8402934, 2, 3, 24, 8, 1
+ sprite gBattleAnimSpriteTemplate_8402934, 2, 24, -8, 0
+ sprite gBattleAnimSpriteTemplate_8402934, 2, 24, 0, 2
+ sprite gBattleAnimSpriteTemplate_8402934, 2, 24, 8, 1
pause 15
- sprite gBattleAnimSpriteTemplate_8402934, 2, 3, 24, -8, 0
- sprite gBattleAnimSpriteTemplate_8402934, 2, 3, 24, 0, 2
- sprite gBattleAnimSpriteTemplate_8402934, 2, 3, 24, 8, 1
+ sprite gBattleAnimSpriteTemplate_8402934, 2, 24, -8, 0
+ sprite gBattleAnimSpriteTemplate_8402934, 2, 24, 0, 2
+ sprite gBattleAnimSpriteTemplate_8402934, 2, 24, 8, 1
ret
Move_GROWL: @ 81CE3AF
loadsprite 10053
- createtask sub_812B18C, 2, 2, 0, 255
+ createtask sub_812B18C, 2, 0, 255
call _81CE35E
pause 10
- createtask sub_80A7FA0, 2, 5, 1, 1, 0, 9, 1
- createtask sub_80A7FA0, 2, 5, 3, 1, 0, 9, 1
+ createtask sub_80A7FA0, 2, 1, 1, 0, 9, 1
+ createtask sub_80A7FA0, 2, 3, 1, 0, 9, 1
wait
pause 20
end
@@ -5008,12 +5008,12 @@ Move_SNORE: @ 81CE3EA
end
_81CE403:
panse_19 SE_W173, 192
- createtask sub_80A8D34, 5, 5, -7, -7, 7, 0, 1
- createtask sub_80A7FA0, 2, 5, 1, 4, 0, 7, 1
- sprite gBattleAnimSpriteTemplate_83DB428, 2, 5, 6, 1, 14, 0, 0
- sprite gBattleAnimSpriteTemplate_83D77F8, 2, 7, 0, 0, -42, -38, 24, 0, 0
- sprite gBattleAnimSpriteTemplate_83D77F8, 2, 7, 0, 0, 0, -42, 24, 0, 0
- sprite gBattleAnimSpriteTemplate_83D77F8, 2, 7, 0, 0, 42, -38, 24, 0, 0
+ createtask sub_80A8D34, 5, -7, -7, 7, 0, 1
+ createtask sub_80A7FA0, 2, 1, 4, 0, 7, 1
+ sprite gBattleAnimSpriteTemplate_83DB428, 2, 6, 1, 14, 0, 0
+ sprite gBattleAnimSpriteTemplate_83D77F8, 2, 0, 0, -42, -38, 24, 0, 0
+ sprite gBattleAnimSpriteTemplate_83D77F8, 2, 0, 0, 0, -42, 24, 0, 0
+ sprite gBattleAnimSpriteTemplate_83D77F8, 2, 0, 0, 42, -38, 24, 0, 0
ret
Move_LIGHT_SCREEN: @ 81CE47A
@@ -5021,7 +5021,7 @@ Move_LIGHT_SCREEN: @ 81CE47A
loadsprite 10166
setalpha 0, 16
panse_1D SE_W115, 192, 15
- sprite gBattleAnimSpriteTemplate_83DA6A8, 1, 3, 40, 0, 10166
+ sprite gBattleAnimSpriteTemplate_83DA6A8, 1, 40, 0, 10166
pause 10
call _81CE4A1
wait
@@ -5029,24 +5029,24 @@ Move_LIGHT_SCREEN: @ 81CE47A
blendoff
end
_81CE4A1:
- sprite gBattleAnimSpriteTemplate_83DA76C, 2, 4, 23, 0, 0, 1
+ sprite gBattleAnimSpriteTemplate_83DA76C, 2, 23, 0, 0, 1
pause 6
- sprite gBattleAnimSpriteTemplate_83DA76C, 2, 4, 31, -8, 0, 1
+ sprite gBattleAnimSpriteTemplate_83DA76C, 2, 31, -8, 0, 1
pause 5
- sprite gBattleAnimSpriteTemplate_83DA76C, 2, 4, 30, 20, 0, 1
+ sprite gBattleAnimSpriteTemplate_83DA76C, 2, 30, 20, 0, 1
pause 7
- sprite gBattleAnimSpriteTemplate_83DA76C, 2, 4, 10, -15, 0, 1
+ sprite gBattleAnimSpriteTemplate_83DA76C, 2, 10, -15, 0, 1
pause 6
- sprite gBattleAnimSpriteTemplate_83DA76C, 2, 4, 20, 10, 0, 1
+ sprite gBattleAnimSpriteTemplate_83DA76C, 2, 20, 10, 0, 1
pause 6
- sprite gBattleAnimSpriteTemplate_83DA76C, 2, 4, 10, 18, 0, 1
+ sprite gBattleAnimSpriteTemplate_83DA76C, 2, 10, 18, 0, 1
ret
Move_MIRROR_COAT: @ 81CE506
loadsprite 10070
loadsprite 10168
setalpha 0, 16
- sprite gBattleAnimSpriteTemplate_83DA6D8, 1, 3, 40, 0, 10168
+ sprite gBattleAnimSpriteTemplate_83DA6D8, 1, 40, 0, 10168
pause 10
panse_19 SE_W115, 192
call _81CE4A1
@@ -5060,13 +5060,13 @@ Move_REFLECT: @ 81CE52C
loadsprite 10167
setalpha 0, 16
panse_1D SE_W115, 192, 15
- sprite gBattleAnimSpriteTemplate_83DA6C0, 1, 3, 40, 0, 10167
+ sprite gBattleAnimSpriteTemplate_83DA6C0, 1, 40, 0, 10167
pause 20
- sprite gBattleAnimSpriteTemplate_83DA73C, 2, 4, 30, 0, 0, 1
+ sprite gBattleAnimSpriteTemplate_83DA73C, 2, 30, 0, 0, 1
pause 7
- sprite gBattleAnimSpriteTemplate_83DA73C, 2, 4, 19, -12, 0, 1
+ sprite gBattleAnimSpriteTemplate_83DA73C, 2, 19, -12, 0, 1
pause 7
- sprite gBattleAnimSpriteTemplate_83DA73C, 2, 4, 10, 20, 0, 1
+ sprite gBattleAnimSpriteTemplate_83DA73C, 2, 10, 20, 0, 1
wait
pause 1
blendoff
@@ -5076,7 +5076,7 @@ Move_BARRIER: @ 81CE57F
loadsprite 10169
setalpha 0, 16
panse_1D SE_W112, 192, 15
- sprite gBattleAnimSpriteTemplate_83DA6F0, 3, 3, 40, 0, 10169
+ sprite gBattleAnimSpriteTemplate_83DA6F0, 3, 40, 0, 10169
wait
pause 1
blendoff
@@ -5088,27 +5088,27 @@ Move_BUBBLE: @ 81CE59C
monbg 1
setalpha 12, 8
pause 1
- sprite gBattleAnimSpriteTemplate_83D9178, 2, 7, 18, 0, 15, -15, 10, 128, 100
+ sprite gBattleAnimSpriteTemplate_83D9178, 2, 18, 0, 15, -15, 10, 128, 100
panse_19 SE_W145, 192
panse_1D SE_W145B, 63, 100
pause 6
- sprite gBattleAnimSpriteTemplate_83D9178, 2, 7, 18, 0, 35, 37, 40, 128, 100
+ sprite gBattleAnimSpriteTemplate_83D9178, 2, 18, 0, 35, 37, 40, 128, 100
panse_19 SE_W145, 192
panse_1D SE_W145B, 63, 100
pause 6
- sprite gBattleAnimSpriteTemplate_83D9178, 2, 7, 18, 0, 10, -37, 30, 128, 100
+ sprite gBattleAnimSpriteTemplate_83D9178, 2, 18, 0, 10, -37, 30, 128, 100
panse_19 SE_W145, 192
panse_1D SE_W145B, 63, 100
pause 6
- sprite gBattleAnimSpriteTemplate_83D9178, 2, 7, 18, 0, 30, 10, 15, 128, 100
+ sprite gBattleAnimSpriteTemplate_83D9178, 2, 18, 0, 30, 10, 15, 128, 100
panse_19 SE_W145, 192
panse_1D SE_W145B, 63, 100
pause 6
- sprite gBattleAnimSpriteTemplate_83D9178, 2, 7, 18, 0, 20, 33, 20, 128, 100
+ sprite gBattleAnimSpriteTemplate_83D9178, 2, 18, 0, 20, 33, 20, 128, 100
panse_19 SE_W145, 192
panse_1D SE_W145B, 63, 100
pause 6
- sprite gBattleAnimSpriteTemplate_83D9178, 2, 7, 18, 0, 25, -30, 10, 128, 100
+ sprite gBattleAnimSpriteTemplate_83D9178, 2, 18, 0, 25, -30, 10, 128, 100
panse_19 SE_W145, 192
panse_1D SE_W145B, 63, 100
wait
@@ -5133,15 +5133,15 @@ Move_SMOG: @ 81CE672
call _81CE6D7
pause 120
panse_1C SE_W092, 63, 18, 2
- createtask sub_80E1F8C, 2, 6, 4, 2, 2, 0, 12, 26650
+ createtask sub_80E1F8C, 2, 4, 2, 2, 0, 12, 26650
pause 10
- createtask sub_80A7FA0, 2, 5, 1, 2, 0, 15, 1
+ createtask sub_80A7FA0, 2, 1, 2, 0, 15, 1
wait
clearmonbg 3
blendoff
end
_81CE6D7:
- sprite gBattleAnimSpriteTemplate_83D9D54, 2, 6, 0, -24, 48, 240, 1, 0
+ sprite gBattleAnimSpriteTemplate_83D9D54, 2, 0, -24, 48, 240, 1, 0
pause 7
ret
@@ -5152,8 +5152,8 @@ Move_FAINT_ATTACK: @ 81CE6ED
waitbgfadein
pause 0
panse_19 SE_W185, 192
- createtask sub_80A8500, 2, 5, 0, 18, 6, 1, 3
- createtask sub_80DFC24, 2, 1, 1
+ createtask sub_80A8500, 2, 0, 18, 6, 1, 3
+ createtask sub_80DFC24, 2, 1
wait
clearmonbg 0
invisible 0
@@ -5163,8 +5163,8 @@ Move_FAINT_ATTACK: @ 81CE6ED
setalpha 12, 8
pause 1
panse_19 SE_W233B, 63
- sprite gBattleAnimSpriteTemplate_83DB4A8, 2, 4, 0, 0, 1, 1
- createtask sub_80A7FA0, 2, 5, 1, 2, 0, 9, 1
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 2, 0, 0, 1, 1
+ createtask sub_80A7FA0, 2, 1, 2, 0, 9, 1
wait
clearmonbg 1
blendoff
@@ -5173,7 +5173,7 @@ Move_FAINT_ATTACK: @ 81CE6ED
pause 32
createtask sub_80DFDC0, 2
monbg 0
- createtask sub_80DFD24, 2, 1, 1
+ createtask sub_80DFD24, 2, 1
wait
clearmonbg 0
pause 1
@@ -5187,9 +5187,9 @@ Move_SAND_ATTACK: @ 81CE774
monbgprio_28 0
setalpha 12, 8
panse_19 SE_W028, 192
- sprite gBattleAnimSpriteTemplate_83C1FF8, 2, 5, 0, -10, 0, 0, 3
+ sprite gBattleAnimSpriteTemplate_83C1FF8, 2, 0, -10, 0, 0, 3
wait
- sprite gBattleAnimSpriteTemplate_83C1FE0, 2, 3, 0, 0, 2
+ sprite gBattleAnimSpriteTemplate_83C1FE0, 2, 0, 0, 2
call _81CE7C4
call _81CE7C4
call _81CE7C4
@@ -5201,20 +5201,20 @@ Move_SAND_ATTACK: @ 81CE774
blendoff
end
_81CE7C4:
- sprite gBattleAnimSpriteTemplate_83DB2F8, 130, 5, 15, 15, 20, 0, 0
- sprite gBattleAnimSpriteTemplate_83DB2F8, 130, 5, 15, 15, 20, 10, 10
- sprite gBattleAnimSpriteTemplate_83DB2F8, 130, 5, 15, 15, 20, -10, -10
- sprite gBattleAnimSpriteTemplate_83DB2F8, 130, 5, 15, 15, 20, 20, 5
- sprite gBattleAnimSpriteTemplate_83DB2F8, 130, 5, 15, 15, 20, -20, -5
+ sprite gBattleAnimSpriteTemplate_83DB2F8, 130, 15, 15, 20, 0, 0
+ sprite gBattleAnimSpriteTemplate_83DB2F8, 130, 15, 15, 20, 10, 10
+ sprite gBattleAnimSpriteTemplate_83DB2F8, 130, 15, 15, 20, -10, -10
+ sprite gBattleAnimSpriteTemplate_83DB2F8, 130, 15, 15, 20, 20, 5
+ sprite gBattleAnimSpriteTemplate_83DB2F8, 130, 15, 15, 20, -20, -5
pause 2
ret
Move_MUD_SLAP: @ 81CE81C
loadsprite 10074
panse_19 SE_W028, 192
- sprite gBattleAnimSpriteTemplate_83C1FF8, 2, 5, 0, -10, 0, 0, 3
+ sprite gBattleAnimSpriteTemplate_83C1FF8, 2, 0, -10, 0, 0, 3
wait
- sprite gBattleAnimSpriteTemplate_83C1FE0, 2, 3, 0, 0, 2
+ sprite gBattleAnimSpriteTemplate_83C1FE0, 2, 0, 0, 2
call _81CE862
call _81CE862
call _81CE862
@@ -5224,11 +5224,11 @@ Move_MUD_SLAP: @ 81CE81C
wait
end
_81CE862:
- sprite gBattleAnimSpriteTemplate_83DB31C, 130, 5, 15, 15, 20, 0, 0
- sprite gBattleAnimSpriteTemplate_83DB31C, 130, 5, 15, 15, 20, 10, 5
- sprite gBattleAnimSpriteTemplate_83DB31C, 130, 5, 15, 15, 20, -10, -5
- sprite gBattleAnimSpriteTemplate_83DB31C, 130, 5, 15, 15, 20, 20, 10
- sprite gBattleAnimSpriteTemplate_83DB31C, 130, 5, 15, 15, 20, -20, -10
+ sprite gBattleAnimSpriteTemplate_83DB31C, 130, 15, 15, 20, 0, 0
+ sprite gBattleAnimSpriteTemplate_83DB31C, 130, 15, 15, 20, 10, 5
+ sprite gBattleAnimSpriteTemplate_83DB31C, 130, 15, 15, 20, -10, -5
+ sprite gBattleAnimSpriteTemplate_83DB31C, 130, 15, 15, 20, 20, 10
+ sprite gBattleAnimSpriteTemplate_83DB31C, 130, 15, 15, 20, -20, -10
pause 2
ret
@@ -5236,45 +5236,45 @@ Move_DRAGON_RAGE: @ 81CE8BA
loadsprite 10029
loadsprite 10035
panse_19 SE_W082, 192
- createtask sub_80A7E7C, 5, 5, 0, 0, 2, 40, 1
+ createtask sub_80A7E7C, 5, 0, 0, 2, 40, 1
wait
- sprite gBattleAnimSpriteTemplate_83C1FF8, 130, 5, 0, 15, 0, 0, 4
+ sprite gBattleAnimSpriteTemplate_83C1FF8, 130, 0, 15, 0, 0, 4
wait
- sprite gBattleAnimSpriteTemplate_83DB0D0, 130, 5, 30, 15, 0, 10, 10
+ sprite gBattleAnimSpriteTemplate_83DB0D0, 130, 30, 15, 0, 10, 10
wait
panse_1C SE_W172B, 63, 11, 3
- createtask sub_80A7E7C, 5, 5, 1, 0, 3, 25, 1
- sprite gBattleAnimSpriteTemplate_83DB078, 194, 3, 1, 5, 0
+ createtask sub_80A7E7C, 5, 1, 0, 3, 25, 1
+ sprite gBattleAnimSpriteTemplate_83DB078, 194, 1, 5, 0
pause 1
- sprite gBattleAnimSpriteTemplate_83DB078, 194, 3, 1, -10, -15
+ sprite gBattleAnimSpriteTemplate_83DB078, 194, 1, -10, -15
pause 1
- sprite gBattleAnimSpriteTemplate_83DB078, 130, 3, 1, 0, 25
+ sprite gBattleAnimSpriteTemplate_83DB078, 130, 1, 0, 25
pause 1
- sprite gBattleAnimSpriteTemplate_83DB078, 194, 3, 1, 15, 5
+ sprite gBattleAnimSpriteTemplate_83DB078, 194, 1, 15, 5
pause 1
- sprite gBattleAnimSpriteTemplate_83DB078, 194, 3, 1, -25, 0
+ sprite gBattleAnimSpriteTemplate_83DB078, 194, 1, -25, 0
pause 1
- sprite gBattleAnimSpriteTemplate_83DB078, 130, 3, 1, 30, 30
+ sprite gBattleAnimSpriteTemplate_83DB078, 130, 1, 30, 30
pause 1
- sprite gBattleAnimSpriteTemplate_83DB078, 130, 3, 1, -27, 25
+ sprite gBattleAnimSpriteTemplate_83DB078, 130, 1, -27, 25
pause 1
- sprite gBattleAnimSpriteTemplate_83DB078, 194, 3, 1, 0, 8
+ sprite gBattleAnimSpriteTemplate_83DB078, 194, 1, 0, 8
wait
- sprite gBattleAnimSpriteTemplate_83C1FE0, 194, 3, 0, 0, 4
+ sprite gBattleAnimSpriteTemplate_83C1FE0, 194, 0, 0, 4
wait
end
Move_RAIN_DANCE: @ 81CE997
loadsprite 10115
panse_19 SE_W240, 192
- createtask sub_80E2A38, 10, 5, 1921, 2, 0, 4, 0
+ createtask sub_80E2A38, 10, 1921, 2, 0, 4, 0
wait
- createtask sub_80D30F0, 2, 3, 0, 3, 120
- createtask sub_80D30F0, 2, 3, 0, 3, 120
+ createtask sub_80D30F0, 2, 0, 3, 120
+ createtask sub_80D30F0, 2, 0, 3, 120
pause 120
pause 30
wait
- createtask sub_80E2A38, 10, 5, 1921, 2, 4, 0, 0
+ createtask sub_80E2A38, 10, 1921, 2, 4, 0, 0
wait
end
@@ -5284,11 +5284,11 @@ Move_BITE: @ 81CE9E2
monbg 1
setalpha 12, 8
panse_19 SE_W044, 63
- sprite gBattleAnimSpriteTemplate_83DB1D0, 2, 6, 0, -32, 0, 0, 819, 10
- sprite gBattleAnimSpriteTemplate_83DB1D0, 2, 6, 0, 32, 4, 0, -819, 10
+ sprite gBattleAnimSpriteTemplate_83DB1D0, 2, 0, -32, 0, 0, 819, 10
+ sprite gBattleAnimSpriteTemplate_83DB1D0, 2, 0, 32, 4, 0, -819, 10
pause 10
- sprite gBattleAnimSpriteTemplate_83DB4A8, 2, 4, 0, 0, 1, 2
- createtask sub_80A7E7C, 5, 5, 1, 0, 4, 7, 1
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 2, 0, 0, 1, 2
+ createtask sub_80A7E7C, 5, 1, 0, 4, 7, 1
wait
clearmonbg 1
blendoff
@@ -5303,18 +5303,18 @@ Move_CRUNCH: @ 81CEA40
waitbgfadein
setalpha 12, 8
panse_19 SE_W044, 63
- sprite gBattleAnimSpriteTemplate_83DB1D0, 2, 6, -32, -32, 1, 819, 819, 10
- sprite gBattleAnimSpriteTemplate_83DB1D0, 2, 6, 32, 32, 5, -819, -819, 10
+ sprite gBattleAnimSpriteTemplate_83DB1D0, 2, -32, -32, 1, 819, 819, 10
+ sprite gBattleAnimSpriteTemplate_83DB1D0, 2, 32, 32, 5, -819, -819, 10
pause 10
- sprite gBattleAnimSpriteTemplate_83DB4A8, 2, 4, -8, 0, 1, 1
- createtask sub_80A7E7C, 5, 5, 1, 0, 7, 5, 2
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 2, -8, 0, 1, 1
+ createtask sub_80A7E7C, 5, 1, 0, 7, 5, 2
wait
panse_19 SE_W044, 63
- sprite gBattleAnimSpriteTemplate_83DB1D0, 2, 6, 32, -32, 7, -819, 819, 10
- sprite gBattleAnimSpriteTemplate_83DB1D0, 2, 6, -32, 32, 3, 819, -819, 10
+ sprite gBattleAnimSpriteTemplate_83DB1D0, 2, 32, -32, 7, -819, 819, 10
+ sprite gBattleAnimSpriteTemplate_83DB1D0, 2, -32, 32, 3, 819, -819, 10
pause 10
- sprite gBattleAnimSpriteTemplate_83DB4A8, 2, 4, 8, 0, 1, 1
- createtask sub_80A7E7C, 5, 5, 1, 0, 8, 4, 2
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 2, 8, 0, 1, 1
+ createtask sub_80A7E7C, 5, 1, 0, 8, 4, 2
wait
clearmonbg 1
blendoff
@@ -5329,11 +5329,11 @@ Move_CLAMP: @ 81CEAF0
monbg 1
setalpha 12, 8
panse_19 SE_W011, 63
- sprite gBattleAnimSpriteTemplate_83DB1E8, 2, 6, -32, 0, 2, 819, 0, 10
- sprite gBattleAnimSpriteTemplate_83DB1E8, 2, 6, 32, 0, 6, -819, 0, 10
+ sprite gBattleAnimSpriteTemplate_83DB1E8, 2, -32, 0, 2, 819, 0, 10
+ sprite gBattleAnimSpriteTemplate_83DB1E8, 2, 32, 0, 6, -819, 0, 10
pause 10
- sprite gBattleAnimSpriteTemplate_83DB4A8, 2, 4, 0, 0, 1, 2
- createtask sub_80A7E7C, 5, 5, 1, 3, 0, 5, 1
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 2, 0, 0, 1, 2
+ createtask sub_80A7E7C, 5, 1, 3, 0, 5, 1
wait
clearmonbg 1
blendoff
@@ -5345,17 +5345,17 @@ Move_ICE_BEAM: @ 81CEB4D
monbgprio_28 1
setalpha 12, 8
loadsprite 10141
- sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 5, 1, 1, 0, 7, 0
+ sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 1, 1, 0, 7, 0
wait
- createtask_1F sub_812B058, 7, 183, -64, 63, 4, 4, 0, 10
- sprite gBattleAnimSpriteTemplate_83D9C3C, 2, 5, 20, 12, 0, 12, 20
- sprite gBattleAnimSpriteTemplate_83D9C3C, 2, 5, 20, -12, 0, -12, 20
+ createtask_1F sub_812B058, 183, -64, 63, 4, 4, 0, 10
+ sprite gBattleAnimSpriteTemplate_83D9C3C, 2, 20, 12, 0, 12, 20
+ sprite gBattleAnimSpriteTemplate_83D9C3C, 2, 20, -12, 0, -12, 20
pause 1
call _81CEC4E
call _81CEC4E
call _81CEC4E
- sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 5, 4, -31, 0, 7, 32384
- createtask sub_80A7FA0, 2, 5, 1, 2, 0, 25, 1
+ sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 4, -31, 0, 7, 32384
+ createtask sub_80A7FA0, 2, 1, 2, 0, 25, 1
call _81CEC4E
call _81CEC4E
call _81CEC4E
@@ -5364,23 +5364,23 @@ Move_ICE_BEAM: @ 81CEB4D
call _81CEC4E
call _81CEC4E
call _81CEC4E
- sprite gBattleAnimSpriteTemplate_83D9C24, 2, 5, 20, 0, 0, 0, 11
+ sprite gBattleAnimSpriteTemplate_83D9C24, 2, 20, 0, 0, 0, 11
pause 1
- sprite gBattleAnimSpriteTemplate_83D9C24, 2, 5, 20, 0, 0, 0, 11
+ sprite gBattleAnimSpriteTemplate_83D9C24, 2, 20, 0, 0, 0, 11
wait
pause 20
call Unknown_81D5C36
- sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 5, 4, 5, 7, 0, 32384
+ sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 4, 5, 7, 0, 32384
wait
- sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 5, 1, 0, 7, 0, 0
+ sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 1, 0, 7, 0, 0
wait
clearmonbg 1
blendoff
end
_81CEC4E:
- sprite gBattleAnimSpriteTemplate_83D9C3C, 2, 5, 20, 12, 0, 12, 20
- sprite gBattleAnimSpriteTemplate_83D9C3C, 2, 5, 20, -12, 0, -12, 20
- sprite gBattleAnimSpriteTemplate_83D9C24, 2, 5, 20, 0, 0, 0, 11
+ sprite gBattleAnimSpriteTemplate_83D9C3C, 2, 20, 12, 0, 12, 20
+ sprite gBattleAnimSpriteTemplate_83D9C3C, 2, 20, -12, 0, -12, 20
+ sprite gBattleAnimSpriteTemplate_83D9C24, 2, 20, 0, 0, 0, 11
pause 1
ret
@@ -5396,15 +5396,15 @@ Move_AURORA_BEAM: @ 81CEC91
waitbgfadein
panse_19 SE_W062, 192
setvar 7, 0
- createtask sub_80D3490, 10, 1, 130
+ createtask sub_80D3490, 10, 130
call _81CED18
- createtask sub_80A7FA0, 5, 5, 1, 1, 0, 17, 1
+ createtask sub_80A7FA0, 5, 1, 1, 0, 17, 1
call _81CED18
call _81CED18
call _81CED18
setvar 7, -1
- createtask_1F sub_812B058, 7, 183, -64, 63, 3, 6, 0, 10
- createtask sub_80A7FA0, 5, 5, 1, 2, 0, 40, 1
+ createtask_1F sub_812B058, 183, -64, 63, 3, 6, 0, 10
+ createtask sub_80A7FA0, 5, 1, 2, 0, 40, 1
call _81CED18
call _81CED18
call _81CED18
@@ -5416,13 +5416,13 @@ Move_AURORA_BEAM: @ 81CEC91
waitbgfadein
end
_81CED18:
- sprite gBattleAnimSpriteTemplate_83D91C4, 130, 5, 20, 0, 0, 0, 17
+ sprite gBattleAnimSpriteTemplate_83D91C4, 130, 20, 0, 0, 0, 17
pause 1
- sprite gBattleAnimSpriteTemplate_83D91C4, 130, 5, 20, 0, 0, 0, 17
+ sprite gBattleAnimSpriteTemplate_83D91C4, 130, 20, 0, 0, 0, 17
pause 1
- sprite gBattleAnimSpriteTemplate_83D91C4, 130, 5, 20, 0, 0, 0, 17
+ sprite gBattleAnimSpriteTemplate_83D91C4, 130, 20, 0, 0, 0, 17
pause 1
- sprite gBattleAnimSpriteTemplate_83D91C4, 130, 5, 20, 0, 0, 0, 17
+ sprite gBattleAnimSpriteTemplate_83D91C4, 130, 20, 0, 0, 0, 17
pause 1
ret
@@ -5435,7 +5435,7 @@ _81CED71:
_81CED73:
monbg 2
setalpha 12, 8
- createtask sub_80E1F8C, 2, 6, 2, 1, 4, 0, 11, 12287
+ createtask sub_80E1F8C, 2, 2, 1, 4, 0, 11, 12287
panse_19 SE_W025, 192
call _81CED9D
wait
@@ -5443,75 +5443,75 @@ _81CED73:
blendoff
jump _81CED71
_81CED9D:
- sprite gBattleAnimSpriteTemplate_83D62EC, 2, 3, 40, 40, 16
+ sprite gBattleAnimSpriteTemplate_83D62EC, 2, 40, 40, 16
pause 2
- sprite gBattleAnimSpriteTemplate_83D62EC, 2, 3, -40, -40, 16
+ sprite gBattleAnimSpriteTemplate_83D62EC, 2, -40, -40, 16
pause 2
- sprite gBattleAnimSpriteTemplate_83D62EC, 2, 3, 0, 40, 16
+ sprite gBattleAnimSpriteTemplate_83D62EC, 2, 0, 40, 16
pause 2
- sprite gBattleAnimSpriteTemplate_83D62EC, 2, 3, 0, -40, 16
+ sprite gBattleAnimSpriteTemplate_83D62EC, 2, 0, -40, 16
pause 2
- sprite gBattleAnimSpriteTemplate_83D62EC, 2, 3, 40, -20, 16
+ sprite gBattleAnimSpriteTemplate_83D62EC, 2, 40, -20, 16
pause 2
- sprite gBattleAnimSpriteTemplate_83D62EC, 2, 3, 40, 20, 16
+ sprite gBattleAnimSpriteTemplate_83D62EC, 2, 40, 20, 16
pause 2
- sprite gBattleAnimSpriteTemplate_83D62EC, 2, 3, -40, -20, 16
+ sprite gBattleAnimSpriteTemplate_83D62EC, 2, -40, -20, 16
pause 2
- sprite gBattleAnimSpriteTemplate_83D62EC, 2, 3, -40, 20, 16
+ sprite gBattleAnimSpriteTemplate_83D62EC, 2, -40, 20, 16
pause 2
- sprite gBattleAnimSpriteTemplate_83D62EC, 2, 3, -20, 30, 16
+ sprite gBattleAnimSpriteTemplate_83D62EC, 2, -20, 30, 16
pause 2
- sprite gBattleAnimSpriteTemplate_83D62EC, 2, 3, 20, -30, 16
+ sprite gBattleAnimSpriteTemplate_83D62EC, 2, 20, -30, 16
pause 2
- sprite gBattleAnimSpriteTemplate_83D62EC, 2, 3, -20, -30, 16
+ sprite gBattleAnimSpriteTemplate_83D62EC, 2, -20, -30, 16
pause 2
- sprite gBattleAnimSpriteTemplate_83D62EC, 2, 3, 20, 30, 16
+ sprite gBattleAnimSpriteTemplate_83D62EC, 2, 20, 30, 16
pause 2
- sprite gBattleAnimSpriteTemplate_83D62EC, 2, 3, -40, 0, 16
+ sprite gBattleAnimSpriteTemplate_83D62EC, 2, -40, 0, 16
pause 2
- sprite gBattleAnimSpriteTemplate_83D62EC, 2, 3, 40, 0, 16
+ sprite gBattleAnimSpriteTemplate_83D62EC, 2, 40, 0, 16
pause 2
ret
_81CEE70:
call Unknown_81D6233
panse_1B SE_W076, 192, 63, 2, 0
createtask sub_80CA928, 5
- sprite gBattleAnimSpriteTemplate_83D6304, 131, 4, 15, 0, 20, 0
+ sprite gBattleAnimSpriteTemplate_83D6304, 131, 15, 0, 20, 0
pause 4
- sprite gBattleAnimSpriteTemplate_83D6304, 131, 4, 15, 0, 20, 1
+ sprite gBattleAnimSpriteTemplate_83D6304, 131, 15, 0, 20, 1
pause 4
- createtask sub_80E2A38, 10, 5, 4, 1, 0, 10, 1017
- sprite gBattleAnimSpriteTemplate_83D6304, 131, 4, 15, 0, 20, 2
+ createtask sub_80E2A38, 10, 4, 1, 0, 10, 1017
+ sprite gBattleAnimSpriteTemplate_83D6304, 131, 15, 0, 20, 2
pause 4
- createtask sub_80A7FA0, 5, 5, 1, 2, 0, 65, 1
- sprite gBattleAnimSpriteTemplate_83D6304, 131, 4, 15, 0, 20, 3
+ createtask sub_80A7FA0, 5, 1, 2, 0, 65, 1
+ sprite gBattleAnimSpriteTemplate_83D6304, 131, 15, 0, 20, 3
pause 4
- sprite gBattleAnimSpriteTemplate_83D6304, 131, 4, 15, 0, 20, 4
+ sprite gBattleAnimSpriteTemplate_83D6304, 131, 15, 0, 20, 4
pause 4
- sprite gBattleAnimSpriteTemplate_83D6304, 131, 4, 15, 0, 20, 5
+ sprite gBattleAnimSpriteTemplate_83D6304, 131, 15, 0, 20, 5
pause 4
- sprite gBattleAnimSpriteTemplate_83D6304, 131, 4, 15, 0, 20, 6
+ sprite gBattleAnimSpriteTemplate_83D6304, 131, 15, 0, 20, 6
pause 4
call _81CEF42
call _81CEF42
wait
- createtask sub_80E2A38, 10, 5, 4, 1, 10, 0, 1017
+ createtask sub_80E2A38, 10, 4, 1, 10, 0, 1017
call Unknown_81D626D
jump _81CED71
_81CEF42:
- sprite gBattleAnimSpriteTemplate_83D6304, 131, 4, 15, 0, 20, 0
+ sprite gBattleAnimSpriteTemplate_83D6304, 131, 15, 0, 20, 0
pause 4
- sprite gBattleAnimSpriteTemplate_83D6304, 131, 4, 15, 0, 20, 1
+ sprite gBattleAnimSpriteTemplate_83D6304, 131, 15, 0, 20, 1
pause 4
- sprite gBattleAnimSpriteTemplate_83D6304, 131, 4, 15, 0, 20, 2
+ sprite gBattleAnimSpriteTemplate_83D6304, 131, 15, 0, 20, 2
pause 4
- sprite gBattleAnimSpriteTemplate_83D6304, 131, 4, 15, 0, 20, 3
+ sprite gBattleAnimSpriteTemplate_83D6304, 131, 15, 0, 20, 3
pause 4
- sprite gBattleAnimSpriteTemplate_83D6304, 131, 4, 15, 0, 20, 4
+ sprite gBattleAnimSpriteTemplate_83D6304, 131, 15, 0, 20, 4
pause 4
- sprite gBattleAnimSpriteTemplate_83D6304, 131, 4, 15, 0, 20, 5
+ sprite gBattleAnimSpriteTemplate_83D6304, 131, 15, 0, 20, 5
pause 4
- sprite gBattleAnimSpriteTemplate_83D6304, 131, 4, 15, 0, 20, 6
+ sprite gBattleAnimSpriteTemplate_83D6304, 131, 15, 0, 20, 6
pause 4
ret
@@ -5523,7 +5523,7 @@ Move_BLIZZARD: @ 81CEFBA
fadetobg 9
_81CEFD0:
waitbgfadeout
- createtask sub_80E3A58, 5, 4, -2304, 0, 1, -1
+ createtask sub_80E3A58, 5, -2304, 0, 1, -1
waitbgfadein
wait
panse_1B SE_W059, 192, 63, 2, 0
@@ -5541,26 +5541,26 @@ _81CEFD0:
waitbgfadein
end
_81CF00A:
- sprite gBattleAnimSpriteTemplate_83D9CA8, 40, 6, 0, -10, 0, -10, 72, 1
- sprite gBattleAnimSpriteTemplate_83D9CC0, 40, 8, 0, 0, 0, 0, 80, 0, 0, 1
+ sprite gBattleAnimSpriteTemplate_83D9CA8, 40, 0, -10, 0, -10, 72, 1
+ sprite gBattleAnimSpriteTemplate_83D9CC0, 40, 0, 0, 0, 0, 80, 0, 0, 1
pause 3
- sprite gBattleAnimSpriteTemplate_83D9CA8, 40, 6, 0, -15, 0, -15, 72, 1
- sprite gBattleAnimSpriteTemplate_83D9CC0, 40, 8, 0, -10, 0, -10, 80, 0, 0, 1
+ sprite gBattleAnimSpriteTemplate_83D9CA8, 40, 0, -15, 0, -15, 72, 1
+ sprite gBattleAnimSpriteTemplate_83D9CC0, 40, 0, -10, 0, -10, 80, 0, 0, 1
pause 3
- sprite gBattleAnimSpriteTemplate_83D9CA8, 40, 6, 0, -5, 0, -5, 72, 1
- sprite gBattleAnimSpriteTemplate_83D9CC0, 40, 8, 0, 10, 0, 10, 80, 0, 0, 1
+ sprite gBattleAnimSpriteTemplate_83D9CA8, 40, 0, -5, 0, -5, 72, 1
+ sprite gBattleAnimSpriteTemplate_83D9CC0, 40, 0, 10, 0, 10, 80, 0, 0, 1
pause 3
- sprite gBattleAnimSpriteTemplate_83D9CA8, 40, 6, 0, -10, 0, -10, 72, 1
- sprite gBattleAnimSpriteTemplate_83D9CC0, 40, 8, 0, -20, 0, -20, 80, 0, 0, 1
+ sprite gBattleAnimSpriteTemplate_83D9CA8, 40, 0, -10, 0, -10, 72, 1
+ sprite gBattleAnimSpriteTemplate_83D9CC0, 40, 0, -20, 0, -20, 80, 0, 0, 1
pause 3
- sprite gBattleAnimSpriteTemplate_83D9CA8, 40, 6, 0, -20, 0, -20, 72, 1
- sprite gBattleAnimSpriteTemplate_83D9CC0, 40, 8, 0, 15, 0, 15, 80, 0, 0, 1
+ sprite gBattleAnimSpriteTemplate_83D9CA8, 40, 0, -20, 0, -20, 72, 1
+ sprite gBattleAnimSpriteTemplate_83D9CC0, 40, 0, 15, 0, 15, 80, 0, 0, 1
pause 3
- sprite gBattleAnimSpriteTemplate_83D9CA8, 40, 6, 0, -15, 0, -15, 72, 1
- sprite gBattleAnimSpriteTemplate_83D9CC0, 40, 8, 0, -20, 0, -20, 80, 0, 0, 1
+ sprite gBattleAnimSpriteTemplate_83D9CA8, 40, 0, -15, 0, -15, 72, 1
+ sprite gBattleAnimSpriteTemplate_83D9CC0, 40, 0, -20, 0, -20, 80, 0, 0, 1
pause 3
- sprite gBattleAnimSpriteTemplate_83D9CA8, 40, 6, 0, -25, 0, -25, 72, 1
- sprite gBattleAnimSpriteTemplate_83D9CC0, 40, 8, 0, 20, 0, 20, 80, 0, 0, 1
+ sprite gBattleAnimSpriteTemplate_83D9CA8, 40, 0, -25, 0, -25, 72, 1
+ sprite gBattleAnimSpriteTemplate_83D9CC0, 40, 0, 20, 0, 20, 80, 0, 0, 1
pause 3
ret
_81CF13F:
@@ -5570,7 +5570,7 @@ _81CF13F:
Move_POWDER_SNOW: @ 81CF146
loadsprite 10141
monbg 3
- sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 5, 31, 1, 0, 3, 0
+ sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 31, 1, 0, 3, 0
wait
panse_1B SE_W016, 192, 63, 2, 0
call _81CF190
@@ -5582,22 +5582,22 @@ Move_POWDER_SNOW: @ 81CF146
wait
clearmonbg 3
pause 20
- sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 5, 31, 1, 3, 0, 0
+ sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 31, 1, 3, 0, 0
end
_81CF190:
- sprite gBattleAnimSpriteTemplate_83D9CD8, 40, 8, 0, 0, 0, 0, 56, 4, 4, 1
+ sprite gBattleAnimSpriteTemplate_83D9CD8, 40, 0, 0, 0, 0, 56, 4, 4, 1
pause 3
- sprite gBattleAnimSpriteTemplate_83D9CD8, 40, 8, 0, -10, 0, -10, 56, 4, 4, 1
+ sprite gBattleAnimSpriteTemplate_83D9CD8, 40, 0, -10, 0, -10, 56, 4, 4, 1
pause 3
- sprite gBattleAnimSpriteTemplate_83D9CD8, 40, 8, 0, 10, 0, 10, 56, -4, 3, 1
+ sprite gBattleAnimSpriteTemplate_83D9CD8, 40, 0, 10, 0, 10, 56, -4, 3, 1
pause 3
- sprite gBattleAnimSpriteTemplate_83D9CD8, 40, 8, 0, -20, 0, -20, 56, -4, 5, 1
+ sprite gBattleAnimSpriteTemplate_83D9CD8, 40, 0, -20, 0, -20, 56, -4, 5, 1
pause 3
- sprite gBattleAnimSpriteTemplate_83D9CD8, 40, 8, 0, 15, 0, 15, 56, 4, 4, 1
+ sprite gBattleAnimSpriteTemplate_83D9CD8, 40, 0, 15, 0, 15, 56, 4, 4, 1
pause 3
- sprite gBattleAnimSpriteTemplate_83D9CD8, 40, 8, 0, -20, 0, -20, 56, 4, 4, 1
+ sprite gBattleAnimSpriteTemplate_83D9CD8, 40, 0, -20, 0, -20, 56, 4, 4, 1
pause 3
- sprite gBattleAnimSpriteTemplate_83D9CD8, 40, 8, 0, 20, 0, 20, 56, 4, 4, 1
+ sprite gBattleAnimSpriteTemplate_83D9CD8, 40, 0, 20, 0, 20, 56, 4, 4, 1
pause 3
ret
@@ -5607,14 +5607,14 @@ Move_HYDRO_PUMP: @ 81CF240
monbg 3
monbgprio_28 1
setalpha 12, 8
- createtask sub_80A7E7C, 5, 5, 0, 0, 2, 40, 1
+ createtask sub_80A7E7C, 5, 0, 0, 2, 40, 1
pause 6
panse_1B SE_W056, 192, 63, 2, 0
- createtask sub_80D3630, 5, 1, 100
+ createtask sub_80D3630, 5, 100
call _81CF2DF
call _81CF2DF
call _81CF2DF
- createtask sub_80A7E7C, 5, 5, 1, 3, 0, 37, 1
+ createtask sub_80A7E7C, 5, 1, 3, 0, 37, 1
call _81CF320
call _81CF2DF
call _81CF2DF
@@ -5636,34 +5636,34 @@ Move_HYDRO_PUMP: @ 81CF240
blendoff
end
_81CF2DF:
- sprite gBattleAnimSpriteTemplate_83D91F4, 3, 4, 10, 10, 0, 16
- sprite gBattleAnimSpriteTemplate_83D91F4, 3, 4, 10, 10, 0, -16
+ sprite gBattleAnimSpriteTemplate_83D91F4, 3, 10, 10, 0, 16
+ sprite gBattleAnimSpriteTemplate_83D91F4, 3, 10, 10, 0, -16
pause 1
- sprite gBattleAnimSpriteTemplate_83D91F4, 3, 4, 10, 10, 0, 16
- sprite gBattleAnimSpriteTemplate_83D91F4, 3, 4, 10, 10, 0, -16
+ sprite gBattleAnimSpriteTemplate_83D91F4, 3, 10, 10, 0, 16
+ sprite gBattleAnimSpriteTemplate_83D91F4, 3, 10, 10, 0, -16
pause 1
ret
_81CF320:
- sprite gBattleAnimSpriteTemplate_83DB4D8, 4, 4, 0, 15, 1, 1
- sprite gBattleAnimSpriteTemplate_83DB4D8, 4, 4, 0, -15, 1, 1
+ sprite gBattleAnimSpriteTemplate_83DB4D8, 4, 0, 15, 1, 1
+ sprite gBattleAnimSpriteTemplate_83DB4D8, 4, 0, -15, 1, 1
ret
Move_SIGNAL_BEAM: @ 81CF33F
loadsprite 10264
loadsprite 10265
loadsprite 10073
- createtask sub_80A7E7C, 5, 5, 0, 0, 2, 25, 1
+ createtask sub_80A7E7C, 5, 0, 0, 2, 25, 1
pause 6
panse_1B SE_W062, 192, 63, 1, 0
- createtask sub_80D3630, 5, 1, 100
+ createtask sub_80D3630, 5, 100
call _81CF406
call _81CF406
call _81CF406
call _81CF406
call _81CF406
call _81CF406
- createtask sub_80A7E7C, 5, 5, 1, 3, 0, 25, 1
- sprite gBattleAnimSpriteTemplate_83DB3DC, 2, 7, 4, 8, 5, 31, 8, 961, 8
+ createtask sub_80A7E7C, 5, 1, 3, 0, 25, 1
+ sprite gBattleAnimSpriteTemplate_83DB3DC, 2, 4, 8, 5, 31, 8, 961, 8
call _81CF406
call _81CF406
call _81CF406
@@ -5684,8 +5684,8 @@ Move_SIGNAL_BEAM: @ 81CF33F
wait
end
_81CF406:
- sprite gBattleAnimSpriteTemplate_83D9224, 131, 4, 10, 10, 0, 16
- sprite gBattleAnimSpriteTemplate_83D923C, 131, 4, 10, 10, 0, -16
+ sprite gBattleAnimSpriteTemplate_83D9224, 131, 10, 10, 0, 16
+ sprite gBattleAnimSpriteTemplate_83D923C, 131, 10, 10, 0, -16
pause 1
ret
@@ -5696,12 +5696,12 @@ Move_ABSORB: @ 81CF427
monbg 3
monbgprio_2A 1
setalpha 12, 8
- sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 5, 1, 1, 0, 4, 13293
+ sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 1, 1, 0, 4, 13293
wait
panse_19 SE_W071, 63
- sprite gBattleAnimSpriteTemplate_83DB4A8, 2, 4, 0, 0, 1, 2
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 2, 0, 0, 1, 2
pause 2
- createtask sub_80A7E7C, 5, 5, 1, 0, 5, 5, 1
+ createtask sub_80A7E7C, 5, 1, 0, 5, 5, 1
wait
pause 3
call _81CF496
@@ -5709,35 +5709,35 @@ Move_ABSORB: @ 81CF427
pause 15
call Unknown_81D5EF5
wait
- sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 5, 1, 1, 4, 0, 13293
+ sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 1, 1, 4, 0, 13293
wait
clearmonbg 3
blendoff
end
_81CF496:
panse_19 SE_W152, 63
- sprite gBattleAnimSpriteTemplate_83D637C, 3, 4, 0, 5, 8, 26
+ sprite gBattleAnimSpriteTemplate_83D637C, 3, 0, 5, 8, 26
pause 4
panse_19 SE_W152, 63
- sprite gBattleAnimSpriteTemplate_83D637C, 3, 4, 10, -5, -8, 26
+ sprite gBattleAnimSpriteTemplate_83D637C, 3, 10, -5, -8, 26
pause 4
panse_19 SE_W152, 63
- sprite gBattleAnimSpriteTemplate_83D637C, 3, 4, -5, 15, 16, 33
+ sprite gBattleAnimSpriteTemplate_83D637C, 3, -5, 15, 16, 33
pause 4
panse_19 SE_W152, 63
- sprite gBattleAnimSpriteTemplate_83D637C, 3, 4, 0, -15, -16, 36
+ sprite gBattleAnimSpriteTemplate_83D637C, 3, 0, -15, -16, 36
pause 4
panse_19 SE_W152, 63
- sprite gBattleAnimSpriteTemplate_83D637C, 3, 4, 0, 5, 8, 26
+ sprite gBattleAnimSpriteTemplate_83D637C, 3, 0, 5, 8, 26
pause 4
panse_19 SE_W152, 63
- sprite gBattleAnimSpriteTemplate_83D637C, 3, 4, 10, -5, -8, 26
+ sprite gBattleAnimSpriteTemplate_83D637C, 3, 10, -5, -8, 26
pause 4
panse_19 SE_W152, 63
- sprite gBattleAnimSpriteTemplate_83D637C, 3, 4, -10, 20, 20, 39
+ sprite gBattleAnimSpriteTemplate_83D637C, 3, -10, 20, 20, 39
pause 4
panse_19 SE_W152, 63
- sprite gBattleAnimSpriteTemplate_83D637C, 3, 4, 5, -18, -20, 35
+ sprite gBattleAnimSpriteTemplate_83D637C, 3, 5, -18, -20, 35
pause 4
ret
@@ -5748,12 +5748,12 @@ Move_MEGA_DRAIN: @ 81CF53F
monbg 3
monbgprio_2A 1
setalpha 12, 8
- sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 5, 1, 1, 0, 8, 13293
+ sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 1, 1, 0, 8, 13293
wait
panse_19 SE_W071, 63
- sprite gBattleAnimSpriteTemplate_83DB4A8, 2, 4, 0, 0, 1, 1
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 2, 0, 0, 1, 1
pause 2
- createtask sub_80A7E7C, 5, 5, 1, 0, 5, 5, 1
+ createtask sub_80A7E7C, 5, 1, 0, 5, 5, 1
wait
pause 3
call _81CF5AE
@@ -5761,43 +5761,43 @@ Move_MEGA_DRAIN: @ 81CF53F
pause 15
call Unknown_81D5EF5
wait
- sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 5, 1, 1, 8, 0, 13293
+ sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 1, 1, 8, 0, 13293
wait
clearmonbg 3
blendoff
end
_81CF5AE:
panse_19 SE_W145C, 63
- sprite gBattleAnimSpriteTemplate_83D637C, 3, 4, 0, 5, 8, 26
- sprite gBattleAnimSpriteTemplate_83D637C, 3, 4, 5, -18, -20, 35
+ sprite gBattleAnimSpriteTemplate_83D637C, 3, 0, 5, 8, 26
+ sprite gBattleAnimSpriteTemplate_83D637C, 3, 5, -18, -20, 35
pause 4
panse_19 SE_W145C, 63
- sprite gBattleAnimSpriteTemplate_83D637C, 3, 4, 10, -5, -8, 26
- sprite gBattleAnimSpriteTemplate_83D637C, 3, 4, -10, 20, 20, 39
+ sprite gBattleAnimSpriteTemplate_83D637C, 3, 10, -5, -8, 26
+ sprite gBattleAnimSpriteTemplate_83D637C, 3, -10, 20, 20, 39
pause 4
panse_19 SE_W145C, 63
- sprite gBattleAnimSpriteTemplate_83D637C, 3, 4, -5, 15, 16, 33
- sprite gBattleAnimSpriteTemplate_83D637C, 3, 4, 10, -5, -8, 26
+ sprite gBattleAnimSpriteTemplate_83D637C, 3, -5, 15, 16, 33
+ sprite gBattleAnimSpriteTemplate_83D637C, 3, 10, -5, -8, 26
pause 4
panse_19 SE_W145C, 63
- sprite gBattleAnimSpriteTemplate_83D637C, 3, 4, 0, -15, -16, 36
- sprite gBattleAnimSpriteTemplate_83D637C, 3, 4, 0, 5, 8, 26
+ sprite gBattleAnimSpriteTemplate_83D637C, 3, 0, -15, -16, 36
+ sprite gBattleAnimSpriteTemplate_83D637C, 3, 0, 5, 8, 26
pause 4
panse_19 SE_W145C, 63
- sprite gBattleAnimSpriteTemplate_83D637C, 3, 4, 0, 5, 8, 26
- sprite gBattleAnimSpriteTemplate_83D637C, 3, 4, 0, -15, -16, 36
+ sprite gBattleAnimSpriteTemplate_83D637C, 3, 0, 5, 8, 26
+ sprite gBattleAnimSpriteTemplate_83D637C, 3, 0, -15, -16, 36
pause 4
panse_19 SE_W145C, 63
- sprite gBattleAnimSpriteTemplate_83D637C, 3, 4, 10, -5, -8, 26
- sprite gBattleAnimSpriteTemplate_83D637C, 3, 4, -5, 15, 16, 33
+ sprite gBattleAnimSpriteTemplate_83D637C, 3, 10, -5, -8, 26
+ sprite gBattleAnimSpriteTemplate_83D637C, 3, -5, 15, 16, 33
pause 4
panse_19 SE_W145C, 63
- sprite gBattleAnimSpriteTemplate_83D637C, 3, 4, -10, 20, 20, 39
- sprite gBattleAnimSpriteTemplate_83D637C, 3, 4, 10, -5, -8, 26
+ sprite gBattleAnimSpriteTemplate_83D637C, 3, -10, 20, 20, 39
+ sprite gBattleAnimSpriteTemplate_83D637C, 3, 10, -5, -8, 26
pause 4
panse_19 SE_W145C, 63
- sprite gBattleAnimSpriteTemplate_83D637C, 3, 4, 0, 5, 8, 26
- sprite gBattleAnimSpriteTemplate_83D637C, 3, 4, 5, -18, -20, 35
+ sprite gBattleAnimSpriteTemplate_83D637C, 3, 0, 5, 8, 26
+ sprite gBattleAnimSpriteTemplate_83D637C, 3, 5, -18, -20, 35
pause 4
ret
@@ -5808,12 +5808,12 @@ Move_GIGA_DRAIN: @ 81CF6CF
monbg 3
monbgprio_2A 1
setalpha 12, 8
- sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 5, 1, 1, 0, 12, 13293
+ sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 1, 1, 0, 12, 13293
wait
panse_19 SE_W071, 63
- sprite gBattleAnimSpriteTemplate_83DB4A8, 2, 4, 0, 0, 1, 0
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 2, 0, 0, 1, 0
pause 2
- createtask sub_80A7E7C, 5, 5, 1, 0, 5, 5, 1
+ createtask sub_80A7E7C, 5, 1, 0, 5, 5, 1
wait
pause 3
call _81CF73E
@@ -5821,51 +5821,51 @@ Move_GIGA_DRAIN: @ 81CF6CF
pause 15
call Unknown_81D5EF5
wait
- sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 5, 1, 1, 12, 0, 13293
+ sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 1, 1, 12, 0, 13293
wait
clearmonbg 3
blendoff
end
_81CF73E:
panse_19 SE_W202, 63
- sprite gBattleAnimSpriteTemplate_83D637C, 3, 4, 0, 5, 8, 26
- sprite gBattleAnimSpriteTemplate_83D637C, 3, 4, 5, -18, -40, 35
- sprite gBattleAnimSpriteTemplate_83D637C, 3, 4, -10, 20, 20, 39
+ sprite gBattleAnimSpriteTemplate_83D637C, 3, 0, 5, 8, 26
+ sprite gBattleAnimSpriteTemplate_83D637C, 3, 5, -18, -40, 35
+ sprite gBattleAnimSpriteTemplate_83D637C, 3, -10, 20, 20, 39
pause 4
panse_19 SE_W202, 63
- sprite gBattleAnimSpriteTemplate_83D637C, 3, 4, 0, 5, 28, 26
- sprite gBattleAnimSpriteTemplate_83D637C, 3, 4, 10, -5, -8, 26
- sprite gBattleAnimSpriteTemplate_83D637C, 3, 4, -10, 20, 40, 39
+ sprite gBattleAnimSpriteTemplate_83D637C, 3, 0, 5, 28, 26
+ sprite gBattleAnimSpriteTemplate_83D637C, 3, 10, -5, -8, 26
+ sprite gBattleAnimSpriteTemplate_83D637C, 3, -10, 20, 40, 39
pause 4
panse_19 SE_W202, 63
- sprite gBattleAnimSpriteTemplate_83D637C, 3, 4, 10, -5, -8, 26
- sprite gBattleAnimSpriteTemplate_83D637C, 3, 4, -5, 15, 16, 33
- sprite gBattleAnimSpriteTemplate_83D637C, 3, 4, 10, -5, -32, 26
+ sprite gBattleAnimSpriteTemplate_83D637C, 3, 10, -5, -8, 26
+ sprite gBattleAnimSpriteTemplate_83D637C, 3, -5, 15, 16, 33
+ sprite gBattleAnimSpriteTemplate_83D637C, 3, 10, -5, -32, 26
pause 4
panse_19 SE_W202, 63
- sprite gBattleAnimSpriteTemplate_83D637C, 3, 4, 0, -15, -16, 36
- sprite gBattleAnimSpriteTemplate_83D637C, 3, 4, 0, 5, 8, 26
- sprite gBattleAnimSpriteTemplate_83D637C, 3, 4, 10, -5, -8, 26
+ sprite gBattleAnimSpriteTemplate_83D637C, 3, 0, -15, -16, 36
+ sprite gBattleAnimSpriteTemplate_83D637C, 3, 0, 5, 8, 26
+ sprite gBattleAnimSpriteTemplate_83D637C, 3, 10, -5, -8, 26
pause 4
panse_19 SE_W202, 63
- sprite gBattleAnimSpriteTemplate_83D637C, 3, 4, -5, 15, 16, 33
- sprite gBattleAnimSpriteTemplate_83D637C, 3, 4, 0, -15, -16, 36
- sprite gBattleAnimSpriteTemplate_83D637C, 3, 4, 0, 5, 8, 26
+ sprite gBattleAnimSpriteTemplate_83D637C, 3, -5, 15, 16, 33
+ sprite gBattleAnimSpriteTemplate_83D637C, 3, 0, -15, -16, 36
+ sprite gBattleAnimSpriteTemplate_83D637C, 3, 0, 5, 8, 26
pause 4
panse_19 SE_W202, 63
- sprite gBattleAnimSpriteTemplate_83D637C, 3, 4, 0, 5, 8, 26
- sprite gBattleAnimSpriteTemplate_83D637C, 3, 4, -5, 15, 16, 33
- sprite gBattleAnimSpriteTemplate_83D637C, 3, 4, 10, -5, -40, 26
+ sprite gBattleAnimSpriteTemplate_83D637C, 3, 0, 5, 8, 26
+ sprite gBattleAnimSpriteTemplate_83D637C, 3, -5, 15, 16, 33
+ sprite gBattleAnimSpriteTemplate_83D637C, 3, 10, -5, -40, 26
pause 4
panse_19 SE_W202, 63
- sprite gBattleAnimSpriteTemplate_83D637C, 3, 4, -5, 15, 36, 33
- sprite gBattleAnimSpriteTemplate_83D637C, 3, 4, 10, -5, -8, 26
- sprite gBattleAnimSpriteTemplate_83D637C, 3, 4, -10, 20, 20, 39
+ sprite gBattleAnimSpriteTemplate_83D637C, 3, -5, 15, 36, 33
+ sprite gBattleAnimSpriteTemplate_83D637C, 3, 10, -5, -8, 26
+ sprite gBattleAnimSpriteTemplate_83D637C, 3, -10, 20, 20, 39
pause 4
panse_19 SE_W202, 63
- sprite gBattleAnimSpriteTemplate_83D637C, 3, 4, 0, 5, 8, 26
- sprite gBattleAnimSpriteTemplate_83D637C, 3, 4, 0, 5, 8, 26
- sprite gBattleAnimSpriteTemplate_83D637C, 3, 4, 5, -18, -20, 35
+ sprite gBattleAnimSpriteTemplate_83D637C, 3, 0, 5, 8, 26
+ sprite gBattleAnimSpriteTemplate_83D637C, 3, 0, 5, 8, 26
+ sprite gBattleAnimSpriteTemplate_83D637C, 3, 5, -18, -20, 35
pause 4
ret
@@ -5879,21 +5879,21 @@ Move_LEECH_LIFE: @ 81CF8D7
monbgprio_2A 1
setalpha 12, 8
pause 1
- sprite gBattleAnimSpriteTemplate_83DAB10, 2, 3, -20, 15, 12
+ sprite gBattleAnimSpriteTemplate_83DAB10, 2, -20, 15, 12
wait
- sprite gBattleAnimSpriteTemplate_83DB4A8, 2, 4, 0, 0, 1, 2
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 2, 0, 0, 1, 2
panse_19 SE_W071, 63
pause 2
- createtask sub_80A7E7C, 5, 5, 1, 0, 5, 5, 1
+ createtask sub_80A7E7C, 5, 1, 0, 5, 5, 1
wait
- sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 5, 1, 1, 0, 7, 0
+ sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 1, 1, 0, 7, 0
wait
call _81CF496
wait
pause 15
call Unknown_81D5EF5
wait
- sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 5, 1, 1, 7, 0, 0
+ sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 1, 1, 7, 0, 0
wait
clearmonbg 3
blendoff
@@ -5902,7 +5902,7 @@ Move_LEECH_LIFE: @ 81CF8D7
Move_SYNTHESIS: @ 81CF959
loadsprite 10031
loadsprite 10049
- createtask sub_80E1F8C, 2, 6, 2, 2, 2, 0, 16, 19451
+ createtask sub_80E1F8C, 2, 2, 2, 2, 0, 16, 19451
panse_19 SE_W025, 192
call Unknown_81D5ECA
wait
@@ -5921,16 +5921,16 @@ Move_TOXIC: @ 81CF983
wait
end
_81CF99D:
- sprite gBattleAnimSpriteTemplate_83DA244, 130, 4, -24, 16, 1, 1
+ sprite gBattleAnimSpriteTemplate_83DA244, 130, -24, 16, 1, 1
panse_19 SE_W092, 63
pause 15
- sprite gBattleAnimSpriteTemplate_83DA244, 130, 4, 8, 16, 1, 1
+ sprite gBattleAnimSpriteTemplate_83DA244, 130, 8, 16, 1, 1
panse_19 SE_W092, 63
pause 15
- sprite gBattleAnimSpriteTemplate_83DA244, 130, 4, -8, 16, 1, 1
+ sprite gBattleAnimSpriteTemplate_83DA244, 130, -8, 16, 1, 1
panse_19 SE_W092, 63
pause 15
- sprite gBattleAnimSpriteTemplate_83DA244, 130, 4, 24, 16, 1, 1
+ sprite gBattleAnimSpriteTemplate_83DA244, 130, 24, 16, 1, 1
panse_19 SE_W092, 63
pause 15
ret
@@ -5938,10 +5938,10 @@ _81CF99D:
Move_SLUDGE: @ 81CF9F2
loadsprite 10150
panse_19 SE_W145C, 192
- sprite gBattleAnimSpriteTemplate_83DA2B8, 130, 4, 20, 0, 40, 0
+ sprite gBattleAnimSpriteTemplate_83DA2B8, 130, 20, 0, 40, 0
wait
- createtask sub_80A7E7C, 5, 5, 1, 3, 0, 5, 1
- createtask sub_80E1F8C, 2, 6, 4, 1, 2, 0, 12, 31774
+ createtask sub_80A7E7C, 5, 1, 3, 0, 5, 1
+ createtask sub_80E1F8C, 2, 4, 1, 2, 0, 12, 31774
call Unknown_81D5F87
wait
end
@@ -5958,24 +5958,24 @@ Move_SLUDGE_BOMB: @ 81CFA34
call _81CFB44
call _81CFB44
call _81CFB44
- createtask sub_80A7FA0, 5, 5, 1, 3, 0, 15, 1
- createtask sub_80E1F8C, 2, 6, 4, 1, 2, 0, 12, 31774
- sprite gBattleAnimSpriteTemplate_83DA2E8, 130, 3, 42, 27, 20
- sprite gBattleAnimSpriteTemplate_83DA2E8, 130, 3, -27, 44, 20
- sprite gBattleAnimSpriteTemplate_83DA2E8, 130, 3, 39, -28, 20
- sprite gBattleAnimSpriteTemplate_83DA2E8, 130, 3, -42, -42, 20
+ createtask sub_80A7FA0, 5, 1, 3, 0, 15, 1
+ createtask sub_80E1F8C, 2, 4, 1, 2, 0, 12, 31774
+ sprite gBattleAnimSpriteTemplate_83DA2E8, 130, 42, 27, 20
+ sprite gBattleAnimSpriteTemplate_83DA2E8, 130, -27, 44, 20
+ sprite gBattleAnimSpriteTemplate_83DA2E8, 130, 39, -28, 20
+ sprite gBattleAnimSpriteTemplate_83DA2E8, 130, -42, -42, 20
panse_19 SE_W091, 63
pause 5
- sprite gBattleAnimSpriteTemplate_83DA2E8, 130, 3, 0, 40, 20
- sprite gBattleAnimSpriteTemplate_83DA2E8, 130, 3, -8, -44, 20
- sprite gBattleAnimSpriteTemplate_83DA2E8, 130, 3, -46, -28, 20
- sprite gBattleAnimSpriteTemplate_83DA2E8, 130, 3, 46, 9, 20
+ sprite gBattleAnimSpriteTemplate_83DA2E8, 130, 0, 40, 20
+ sprite gBattleAnimSpriteTemplate_83DA2E8, 130, -8, -44, 20
+ sprite gBattleAnimSpriteTemplate_83DA2E8, 130, -46, -28, 20
+ sprite gBattleAnimSpriteTemplate_83DA2E8, 130, 46, 9, 20
panse_19 SE_W091, 63
pause 5
- sprite gBattleAnimSpriteTemplate_83DA2E8, 130, 3, 42, 0, 20
- sprite gBattleAnimSpriteTemplate_83DA2E8, 130, 3, -43, -12, 20
- sprite gBattleAnimSpriteTemplate_83DA2E8, 130, 3, 16, -46, 20
- sprite gBattleAnimSpriteTemplate_83DA2E8, 130, 3, -16, 44, 20
+ sprite gBattleAnimSpriteTemplate_83DA2E8, 130, 42, 0, 20
+ sprite gBattleAnimSpriteTemplate_83DA2E8, 130, -43, -12, 20
+ sprite gBattleAnimSpriteTemplate_83DA2E8, 130, 16, -46, 20
+ sprite gBattleAnimSpriteTemplate_83DA2E8, 130, -16, 44, 20
panse_19 SE_W091, 63
pause 0
waitsound
@@ -5985,38 +5985,38 @@ Move_SLUDGE_BOMB: @ 81CFA34
end
_81CFB44:
panse_19 SE_W145C, 192
- sprite gBattleAnimSpriteTemplate_83DA2B8, 130, 4, 20, 0, 40, 0
+ sprite gBattleAnimSpriteTemplate_83DA2B8, 130, 20, 0, 40, 0
pause 3
ret
Move_ACID: @ 81CFB5A
loadsprite 10150
monbg 3
- sprite gBattleAnimSpriteTemplate_83DA2D0, 130, 6, 20, 0, 40, 1, 0, 0
+ sprite gBattleAnimSpriteTemplate_83DA2D0, 130, 20, 0, 40, 1, 0, 0
panse_19 SE_W145C, 192
pause 5
- sprite gBattleAnimSpriteTemplate_83DA2D0, 130, 6, 20, 0, 40, 1, 24, 0
+ sprite gBattleAnimSpriteTemplate_83DA2D0, 130, 20, 0, 40, 1, 24, 0
panse_19 SE_W145C, 192
pause 5
- sprite gBattleAnimSpriteTemplate_83DA2D0, 130, 6, 20, 0, 40, 1, -24, 0
+ sprite gBattleAnimSpriteTemplate_83DA2D0, 130, 20, 0, 40, 1, -24, 0
panse_19 SE_W145C, 192
pause 15
- createtask sub_80A7FA0, 5, 5, 1, 2, 0, 10, 1
- createtask sub_80A7FA0, 5, 5, 3, 2, 0, 10, 1
- createtask sub_80E1F8C, 2, 6, 20, 2, 2, 0, 12, 31774
- sprite gBattleAnimSpriteTemplate_83DA31C, 130, 5, 0, -22, 0, 15, 55
+ createtask sub_80A7FA0, 5, 1, 2, 0, 10, 1
+ createtask sub_80A7FA0, 5, 3, 2, 0, 10, 1
+ createtask sub_80E1F8C, 2, 20, 2, 2, 0, 12, 31774
+ sprite gBattleAnimSpriteTemplate_83DA31C, 130, 0, -22, 0, 15, 55
panse_19 SE_W145, 63
pause 10
- sprite gBattleAnimSpriteTemplate_83DA31C, 130, 5, -26, -24, 0, 15, 55
+ sprite gBattleAnimSpriteTemplate_83DA31C, 130, -26, -24, 0, 15, 55
panse_19 SE_W145, 63
pause 10
- sprite gBattleAnimSpriteTemplate_83DA31C, 130, 5, 15, -27, 0, 15, 50
+ sprite gBattleAnimSpriteTemplate_83DA31C, 130, 15, -27, 0, 15, 50
panse_19 SE_W145, 63
pause 10
- sprite gBattleAnimSpriteTemplate_83DA31C, 130, 5, -15, -17, 0, 10, 45
+ sprite gBattleAnimSpriteTemplate_83DA31C, 130, -15, -17, 0, 10, 45
panse_19 SE_W145, 63
pause 10
- sprite gBattleAnimSpriteTemplate_83DA31C, 130, 5, 27, -22, 0, 15, 50
+ sprite gBattleAnimSpriteTemplate_83DA31C, 130, 27, -22, 0, 15, 50
panse_19 SE_W145, 63
wait
clearmonbg 3
@@ -6032,11 +6032,11 @@ Move_BONEMERANG: @ 81CFC54
sprite gBattleAnimSpriteTemplate_83DB2C8, 2
pause 20
panse_19 SE_W030, 63
- sprite gBattleAnimSpriteTemplate_83DB4A8, 2, 4, 0, 0, 1, 1
- createtask sub_80A7E7C, 5, 5, 1, 5, 0, 5, 1
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 2, 0, 0, 1, 1
+ createtask sub_80A7E7C, 5, 1, 5, 0, 5, 1
pause 17
panse_19 SE_W233, 192
- sprite gBattleAnimSpriteTemplate_83C1FB0, 2, 2, 6, -4
+ sprite gBattleAnimSpriteTemplate_83C1FB0, 2, 6, -4
wait
clearmonbg 3
blendoff
@@ -6049,11 +6049,11 @@ Move_BONE_CLUB: @ 81CFCA8
monbgprio_28 1
setalpha 12, 8
panse_19 SE_W155, 63
- sprite gBattleAnimSpriteTemplate_83DB2E0, 2, 5, -42, -25, 0, 0, 15
+ sprite gBattleAnimSpriteTemplate_83DB2E0, 2, -42, -25, 0, 0, 15
pause 12
- sprite gBattleAnimSpriteTemplate_83DB4A8, 2, 4, 0, 0, 1, 1
- createtask sub_80A7E7C, 5, 5, 1, 0, 5, 5, 1
- sprite gBattleAnimSpriteTemplate_83DB3DC, 2, 7, 7, 5, 1, 0, 10, 0, 0
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 2, 0, 0, 1, 1
+ createtask sub_80A7E7C, 5, 1, 0, 5, 5, 1
+ sprite gBattleAnimSpriteTemplate_83DB3DC, 2, 7, 5, 1, 0, 10, 0, 0
panse_19 SE_W233B, 63
wait
clearmonbg 3
@@ -6066,10 +6066,10 @@ Move_BONE_RUSH: @ 81CFD0A
monbg 3
setalpha 12, 8
panse_19 SE_W155, 63
- sprite gBattleAnimSpriteTemplate_83DB2E0, 2, 5, -42, -25, 0, 0, 15
+ sprite gBattleAnimSpriteTemplate_83DB2E0, 2, -42, -25, 0, 0, 15
pause 12
- sprite gBattleAnimSpriteTemplate_83DB4A8, 2, 4, 0, 0, 1, 2
- createtask sub_80A7E7C, 5, 5, 1, 0, 3, 5, 1
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 2, 0, 0, 1, 2
+ createtask sub_80A7E7C, 5, 1, 0, 3, 5, 1
panse_19 SE_W030, 63
wait
clearmonbg 3
@@ -6081,14 +6081,14 @@ Move_SPIKES: @ 81CFD55
monbg 3
panse_19 SE_W026, 192
panse_1D SE_W030, 63, 28
- sprite gBattleAnimSpriteTemplate_840227C, 130, 5, 20, 0, 0, 24, 30
+ sprite gBattleAnimSpriteTemplate_840227C, 130, 20, 0, 0, 24, 30
pause 10
panse_19 SE_W026, 192
panse_1D SE_W030, 63, 28
- sprite gBattleAnimSpriteTemplate_840227C, 130, 5, 20, 0, -24, 24, 30
+ sprite gBattleAnimSpriteTemplate_840227C, 130, 20, 0, -24, 24, 30
pause 10
panse_1D SE_W030, 63, 28
- sprite gBattleAnimSpriteTemplate_840227C, 130, 5, 20, 0, 24, 24, 30
+ sprite gBattleAnimSpriteTemplate_840227C, 130, 20, 0, 24, 24, 30
wait
clearmonbg 3
end
@@ -6101,27 +6101,27 @@ Move_MEGAHORN: @ 81CFDAC
jumpunkcond _81CFE83
fadetobg 7
waitbgfadeout
- createtask sub_80E3A58, 5, 4, -2304, 768, 1, -1
+ createtask sub_80E3A58, 5, -2304, 768, 1, -1
_81CFDCF:
waitbgfadein
setalpha 12, 8
- createtask sub_80A7E7C, 5, 5, 0, 2, 0, 15, 1
+ createtask sub_80A7E7C, 5, 0, 2, 0, 15, 1
wait
pause 10
- sprite gBattleAnimSpriteTemplate_83C1FF8, 2, 5, 0, 24, 0, 0, 6
+ sprite gBattleAnimSpriteTemplate_83C1FF8, 2, 0, 24, 0, 0, 6
pause 3
- sprite gBattleAnimSpriteTemplate_83DAABC, 3, 5, -42, 25, 0, 0, 6
+ sprite gBattleAnimSpriteTemplate_83DAABC, 3, -42, 25, 0, 0, 6
pause 4
panse_19 SE_W011, 63
- sprite gBattleAnimSpriteTemplate_83DB4A8, 2, 4, 0, 0, 1, 0
- sprite gBattleAnimSpriteTemplate_83C1FF8, 2, 5, 1, -16, 4, 1, 4
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 2, 0, 0, 1, 0
+ sprite gBattleAnimSpriteTemplate_83C1FF8, 2, 1, -16, 4, 1, 4
wait
- createtask sub_80A8154, 2, 5, 1, -4, 1, 12, 1
- sprite gBattleAnimSpriteTemplate_83DB3DC, 2, 7, 7, 5, 1, 32767, 10, 0, 0
+ createtask sub_80A8154, 2, 1, -4, 1, 12, 1
+ sprite gBattleAnimSpriteTemplate_83DB3DC, 2, 7, 5, 1, 32767, 10, 0, 0
pause 10
- sprite gBattleAnimSpriteTemplate_83C1FE0, 2, 3, 0, 0, 11
+ sprite gBattleAnimSpriteTemplate_83C1FE0, 2, 0, 0, 11
pause 3
- sprite gBattleAnimSpriteTemplate_83C1FE0, 2, 3, 1, 0, 7
+ sprite gBattleAnimSpriteTemplate_83C1FE0, 2, 1, 0, 7
wait
wait
clearmonbg 3
@@ -6134,7 +6134,7 @@ _81CFDCF:
_81CFE83:
fadetobg 8
waitbgfadeout
- createtask sub_80E3A58, 5, 4, 2304, 768, 0, -1
+ createtask sub_80E3A58, 5, 2304, 768, 0, -1
jump _81CFDCF
Move_GUST: @ 81CFE9A
@@ -6144,11 +6144,11 @@ Move_GUST: @ 81CFE9A
monbgprio_28 1
setalpha 12, 8
panse_19 SE_W016, 63
- sprite gBattleAnimSpriteTemplate_83DA380, 2, 2, 0, -16
- createtask sub_80DA09C, 5, 2, 1, 70
+ sprite gBattleAnimSpriteTemplate_83DA380, 2, 0, -16
+ createtask sub_80DA09C, 5, 1, 70
wait
- createtask sub_80A7FA0, 5, 5, 1, 1, 0, 7, 1
- sprite gBattleAnimSpriteTemplate_83DB4A8, 2, 4, 0, 0, 1, 2
+ createtask sub_80A7FA0, 5, 1, 1, 0, 7, 1
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 2, 0, 0, 1, 2
panse_19 SE_W016B, 63
wait
clearmonbg 3
@@ -6162,18 +6162,18 @@ Move_WING_ATTACK: @ 81CFEEB
monbgprio_28 1
setalpha 12, 8
panse_1C SE_W017, 192, 20, 2
- createtask sub_80A8408, 2, 5, 0, 12, 4, 1, 4
- createtask sub_80DA09C, 5, 2, 1, 70
- sprite gBattleAnimSpriteTemplate_83DA3B4, 2, 5, -25, 0, 0, 0, 20
- sprite gBattleAnimSpriteTemplate_83DA3B4, 2, 5, 25, 0, 0, 0, 20
+ createtask sub_80A8408, 2, 0, 12, 4, 1, 4
+ createtask sub_80DA09C, 5, 1, 70
+ sprite gBattleAnimSpriteTemplate_83DA3B4, 2, -25, 0, 0, 0, 20
+ sprite gBattleAnimSpriteTemplate_83DA3B4, 2, 25, 0, 0, 0, 20
pause 24
- sprite gBattleAnimSpriteTemplate_83C1FF8, 2, 5, 0, 24, 0, 0, 9
+ sprite gBattleAnimSpriteTemplate_83C1FF8, 2, 0, 24, 0, 0, 9
pause 17
- sprite gBattleAnimSpriteTemplate_83DB4A8, 2, 4, 16, 0, 1, 1
- sprite gBattleAnimSpriteTemplate_83DB4A8, 2, 4, -16, 0, 1, 1
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 2, 16, 0, 1, 1
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 2, -16, 0, 1, 1
panse_1C SE_W003, 63, 5, 2
wait
- sprite gBattleAnimSpriteTemplate_83C1FE0, 2, 3, 0, 0, 11
+ sprite gBattleAnimSpriteTemplate_83C1FE0, 2, 0, 0, 11
wait
clearmonbg 3
blendoff
@@ -6182,8 +6182,8 @@ Move_WING_ATTACK: @ 81CFEEB
Move_PECK: @ 81CFF88
loadsprite 10135
panse_19 SE_W030, 63
- createtask sub_80A8EFC, 2, 4, 3, -768, 1, 2
- sprite gBattleAnimSpriteTemplate_83DB538, 131, 4, -12, 0, 1, 3
+ createtask sub_80A8EFC, 2, 3, -768, 1, 2
+ sprite gBattleAnimSpriteTemplate_83DB538, 131, -12, 0, 1, 3
wait
end
@@ -6195,13 +6195,13 @@ Move_AEROBLAST: @ 81CFFAF
monbgprio_28 1
setalpha 12, 8
call _81D000B
- createtask sub_80A7E7C, 5, 5, 1, 5, 0, 50, 1
+ createtask sub_80A7E7C, 5, 1, 5, 0, 50, 1
call _81D000B
call _81D000B
call _81D000B
call _81D000B
wait
- sprite gBattleAnimSpriteTemplate_83DB4A8, 2, 4, 0, 0, 1, 0
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 2, 0, 0, 1, 0
panse_19 SE_W013, 63
wait
clearmonbg 3
@@ -6211,20 +6211,20 @@ Move_AEROBLAST: @ 81CFFAF
end
_81D000B:
panse_19 SE_W026, 192
- sprite gBattleAnimSpriteTemplate_83DA3E4, 2, 7, 14, -12, 0, -12, 15, 0, 0
- sprite gBattleAnimSpriteTemplate_83DA3E4, 2, 7, 26, 8, 12, 8, 15, 0, 0
+ sprite gBattleAnimSpriteTemplate_83DA3E4, 2, 14, -12, 0, -12, 15, 0, 0
+ sprite gBattleAnimSpriteTemplate_83DA3E4, 2, 26, 8, 12, 8, 15, 0, 0
pause 3
panse_19 SE_W026, 192
- sprite gBattleAnimSpriteTemplate_83DA3E4, 2, 7, 14, -12, 0, -12, 15, 1, 0
- sprite gBattleAnimSpriteTemplate_83DA3E4, 2, 7, 26, 8, 12, 8, 15, 1, 0
+ sprite gBattleAnimSpriteTemplate_83DA3E4, 2, 14, -12, 0, -12, 15, 1, 0
+ sprite gBattleAnimSpriteTemplate_83DA3E4, 2, 26, 8, 12, 8, 15, 1, 0
pause 3
panse_19 SE_W026, 192
- sprite gBattleAnimSpriteTemplate_83DA3E4, 2, 7, 14, -12, 0, -12, 15, 2, 0
- sprite gBattleAnimSpriteTemplate_83DA3E4, 2, 7, 26, 8, 12, 8, 15, 2, 0
+ sprite gBattleAnimSpriteTemplate_83DA3E4, 2, 14, -12, 0, -12, 15, 2, 0
+ sprite gBattleAnimSpriteTemplate_83DA3E4, 2, 26, 8, 12, 8, 15, 2, 0
pause 3
panse_19 SE_W026, 192
- sprite gBattleAnimSpriteTemplate_83DA3E4, 2, 7, 14, -12, 0, -12, 15, 3, 0
- sprite gBattleAnimSpriteTemplate_83DA3E4, 2, 7, 26, 8, 12, 8, 15, 3, 0
+ sprite gBattleAnimSpriteTemplate_83DA3E4, 2, 14, -12, 0, -12, 15, 3, 0
+ sprite gBattleAnimSpriteTemplate_83DA3E4, 2, 26, 8, 12, 8, 15, 3, 0
pause 3
ret
@@ -6234,18 +6234,18 @@ Move_WATER_GUN: @ 81D00CC
monbg 3
monbgprio_28 1
setalpha 12, 8
- sprite gBattleAnimSpriteTemplate_83D9318, 2, 6, 20, 0, 0, 0, 40, -25
+ sprite gBattleAnimSpriteTemplate_83D9318, 2, 20, 0, 0, 0, 40, -25
panse_19 SE_W145, 192
wait
- createtask sub_80A7FA0, 5, 5, 1, 1, 0, 8, 1
- sprite gBattleAnimSpriteTemplate_83DB4D8, 4, 4, 0, 0, 1, 2
- sprite gBattleAnimSpriteTemplate_83D9330, 2, 5, 0, -15, 0, 15, 55
+ createtask sub_80A7FA0, 5, 1, 1, 0, 8, 1
+ sprite gBattleAnimSpriteTemplate_83DB4D8, 4, 0, 0, 1, 2
+ sprite gBattleAnimSpriteTemplate_83D9330, 2, 0, -15, 0, 15, 55
panse_19 SE_W152, 63
pause 10
- sprite gBattleAnimSpriteTemplate_83D9330, 2, 5, 15, -20, 0, 15, 50
+ sprite gBattleAnimSpriteTemplate_83D9330, 2, 15, -20, 0, 15, 50
panse_19 SE_W152, 63
pause 10
- sprite gBattleAnimSpriteTemplate_83D9330, 2, 5, -15, -10, 0, 10, 45
+ sprite gBattleAnimSpriteTemplate_83D9330, 2, -15, -10, 0, 10, 45
panse_19 SE_W152, 63
wait
clearmonbg 3
@@ -6257,40 +6257,40 @@ Move_CRABHAMMER: @ 81D0159
loadsprite 10148
monbg 3
setalpha 12, 8
- sprite gBattleAnimSpriteTemplate_83DB4D8, 4, 4, 0, 0, 1, 0
+ sprite gBattleAnimSpriteTemplate_83DB4D8, 4, 0, 0, 1, 0
panse_19 SE_W233B, 63
pause 1
- sprite gBattleAnimSpriteTemplate_83DB3DC, 2, 7, 31, 3, 1, 32429, 10, 0, 0
- sprite gBattleAnimSpriteTemplate_83C1FF8, 2, 5, 1, -24, 0, 0, 4
+ sprite gBattleAnimSpriteTemplate_83DB3DC, 2, 31, 3, 1, 32429, 10, 0, 0
+ sprite gBattleAnimSpriteTemplate_83C1FF8, 2, 1, -24, 0, 0, 4
wait
pause 8
wait
- sprite gBattleAnimSpriteTemplate_83C1FE0, 2, 3, 1, 0, 4
+ sprite gBattleAnimSpriteTemplate_83C1FE0, 2, 1, 0, 4
wait
panse_1C SE_W152, 63, 20, 3
- createtask sub_80A7E7C, 5, 5, 1, 0, 4, 8, 1
- sprite gBattleAnimSpriteTemplate_83D9348, 2, 4, 10, 10, 20, 1
+ createtask sub_80A7E7C, 5, 1, 0, 4, 8, 1
+ sprite gBattleAnimSpriteTemplate_83D9348, 2, 10, 10, 20, 1
pause 4
- sprite gBattleAnimSpriteTemplate_83D9348, 2, 4, 20, -20, 20, 1
+ sprite gBattleAnimSpriteTemplate_83D9348, 2, 20, -20, 20, 1
pause 4
- sprite gBattleAnimSpriteTemplate_83D9348, 2, 4, -15, 15, 20, 1
+ sprite gBattleAnimSpriteTemplate_83D9348, 2, -15, 15, 20, 1
pause 4
- sprite gBattleAnimSpriteTemplate_83D9348, 2, 4, 0, 0, 20, 1
+ sprite gBattleAnimSpriteTemplate_83D9348, 2, 0, 0, 20, 1
pause 4
- sprite gBattleAnimSpriteTemplate_83D9348, 2, 4, -10, -20, 20, 1
+ sprite gBattleAnimSpriteTemplate_83D9348, 2, -10, -20, 20, 1
pause 4
- sprite gBattleAnimSpriteTemplate_83D9348, 2, 4, 16, -8, 20, 1
+ sprite gBattleAnimSpriteTemplate_83D9348, 2, 16, -8, 20, 1
pause 4
- sprite gBattleAnimSpriteTemplate_83D9348, 2, 4, 5, 8, 20, 1
+ sprite gBattleAnimSpriteTemplate_83D9348, 2, 5, 8, 20, 1
pause 4
- sprite gBattleAnimSpriteTemplate_83D9348, 2, 4, -16, 0, 20, 1
+ sprite gBattleAnimSpriteTemplate_83D9348, 2, -16, 0, 20, 1
wait
clearmonbg 3
blendoff
end
Move_SURF: @ 81D0253
- createtask sub_80D38BC, 2, 1, 0
+ createtask sub_80D38BC, 2, 0
pause 24
panse_1B SE_W057, 192, 63, 2, 0
wait
@@ -6301,14 +6301,14 @@ Move_FLAMETHROWER: @ 81D0267
monbg 3
monbgprio_28 1
setalpha 12, 8
- createtask sub_80A7E7C, 5, 5, 0, 0, 2, 46, 1
+ createtask sub_80A7E7C, 5, 0, 0, 2, 46, 1
pause 6
- createtask sub_80D3630, 5, 1, 100
+ createtask sub_80D3630, 5, 100
panse_1B SE_W053, 192, 63, 2, 0
call _81D02E1
call _81D02E1
call _81D02E1
- createtask sub_80A7E7C, 5, 5, 1, 3, 0, 43, 1
+ createtask sub_80A7E7C, 5, 1, 3, 0, 43, 1
call _81D02E1
call _81D02E1
call _81D02E1
@@ -6322,30 +6322,30 @@ Move_FLAMETHROWER: @ 81D0267
blendoff
end
_81D02E1:
- sprite gBattleAnimSpriteTemplate_83D9268, 3, 4, 10, 10, 0, 16
+ sprite gBattleAnimSpriteTemplate_83D9268, 3, 10, 10, 0, 16
pause 2
- sprite gBattleAnimSpriteTemplate_83D9268, 3, 4, 10, 10, 0, 16
+ sprite gBattleAnimSpriteTemplate_83D9268, 3, 10, 10, 0, 16
pause 2
ret
Move_SANDSTORM: @ 81D0304
loadsprite 10261
panse_19 SE_W201, 0
- createtask do_boulder_dust, 5, 1, 0
+ createtask do_boulder_dust, 5, 0
pause 16
- sprite gBattleAnimSpriteTemplate_83DACE8, 40, 4, 10, 2304, 96, 0
+ sprite gBattleAnimSpriteTemplate_83DACE8, 40, 10, 2304, 96, 0
pause 10
- sprite gBattleAnimSpriteTemplate_83DACE8, 40, 4, 90, 2048, 96, 0
+ sprite gBattleAnimSpriteTemplate_83DACE8, 40, 90, 2048, 96, 0
pause 10
- sprite gBattleAnimSpriteTemplate_83DACE8, 40, 4, 50, 2560, 96, 0
+ sprite gBattleAnimSpriteTemplate_83DACE8, 40, 50, 2560, 96, 0
pause 10
- sprite gBattleAnimSpriteTemplate_83DACE8, 40, 4, 20, 2304, 96, 0
+ sprite gBattleAnimSpriteTemplate_83DACE8, 40, 20, 2304, 96, 0
pause 10
- sprite gBattleAnimSpriteTemplate_83DACE8, 40, 4, 70, 1984, 96, 0
+ sprite gBattleAnimSpriteTemplate_83DACE8, 40, 70, 1984, 96, 0
pause 10
- sprite gBattleAnimSpriteTemplate_83DACE8, 40, 4, 0, 2816, 96, 0
+ sprite gBattleAnimSpriteTemplate_83DACE8, 40, 0, 2816, 96, 0
pause 10
- sprite gBattleAnimSpriteTemplate_83DACE8, 40, 4, 60, 2560, 96, 0
+ sprite gBattleAnimSpriteTemplate_83DACE8, 40, 60, 2560, 96, 0
end
Move_WHIRLPOOL: @ 81D038C
@@ -6354,29 +6354,29 @@ Move_WHIRLPOOL: @ 81D038C
monbgprio_28 1
setalpha 12, 8
pause 0
- sprite gBattleAnimSpriteTemplate_83DB3C4, 0, 5, 4, 2, 0, 7, 23968
+ sprite gBattleAnimSpriteTemplate_83DB3C4, 0, 4, 2, 0, 7, 23968
panse_19 SE_W250, 63
- createtask sub_80A7E7C, 5, 5, 1, 0, 2, 50, 1
+ createtask sub_80A7E7C, 5, 1, 0, 2, 50, 1
call _81D03E4
call _81D03E4
call _81D03E4
pause 12
- sprite gBattleAnimSpriteTemplate_83DB3C4, 0, 5, 4, 2, 7, 0, 23968
+ sprite gBattleAnimSpriteTemplate_83DB3C4, 0, 4, 2, 7, 0, 23968
wait
clearmonbg 3
end
_81D03E4:
- sprite gBattleAnimSpriteTemplate_83DACB8, 130, 7, 0, 28, 384, 50, 8, 50, 1
+ sprite gBattleAnimSpriteTemplate_83DACB8, 130, 0, 28, 384, 50, 8, 50, 1
pause 2
- sprite gBattleAnimSpriteTemplate_83DACB8, 130, 7, 0, 32, 240, 40, 11, -46, 1
+ sprite gBattleAnimSpriteTemplate_83DACB8, 130, 0, 32, 240, 40, 11, -46, 1
pause 2
- sprite gBattleAnimSpriteTemplate_83DACB8, 130, 7, 0, 33, 416, 40, 4, 42, 1
+ sprite gBattleAnimSpriteTemplate_83DACB8, 130, 0, 33, 416, 40, 4, 42, 1
pause 2
- sprite gBattleAnimSpriteTemplate_83DACB8, 130, 7, 0, 31, 288, 45, 6, -42, 1
+ sprite gBattleAnimSpriteTemplate_83DACB8, 130, 0, 31, 288, 45, 6, -42, 1
pause 2
- sprite gBattleAnimSpriteTemplate_83DACB8, 130, 7, 0, 28, 448, 45, 11, 46, 1
+ sprite gBattleAnimSpriteTemplate_83DACB8, 130, 0, 28, 448, 45, 11, 46, 1
pause 2
- sprite gBattleAnimSpriteTemplate_83DACB8, 130, 7, 0, 33, 464, 50, 10, -50, 1
+ sprite gBattleAnimSpriteTemplate_83DACB8, 130, 0, 33, 464, 50, 10, -50, 1
pause 2
ret
@@ -6389,16 +6389,16 @@ _81D047E:
end
_81D0480:
panse_19 SE_W019, 192
- sprite gBattleAnimSpriteTemplate_83DA450, 2, 4, 0, 0, 13, 336
+ sprite gBattleAnimSpriteTemplate_83DA450, 2, 0, 0, 13, 336
jump _81D047E
_81D0498:
monbg 3
setalpha 12, 8
panse_19 SE_W104, 192
- sprite gBattleAnimSpriteTemplate_83DA468, 2, 1, 20
+ sprite gBattleAnimSpriteTemplate_83DA468, 2, 20
pause 20
- sprite gBattleAnimSpriteTemplate_83DB4A8, 2, 4, 0, 0, 1, 0
- createtask sub_80A7E7C, 5, 5, 1, 6, 0, 8, 1
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 2, 0, 0, 1, 0
+ createtask sub_80A7E7C, 5, 1, 6, 0, 8, 1
panse_19 SE_W013, 63
wait
clearmonbg 3
@@ -6413,7 +6413,7 @@ _81D04E8:
end
_81D04E9:
panse_19 SE_W100, 192
- sprite gBattleAnimSpriteTemplate_83DA568, 2, 2, 0, 0
+ sprite gBattleAnimSpriteTemplate_83DA568, 2, 0, 0
jump _81D04E8
_81D04FD:
monbg 3
@@ -6422,8 +6422,8 @@ _81D04FD:
sprite gBattleAnimSpriteTemplate_83DA594, 131
pause 7
panse_19 SE_W025B, 63
- sprite gBattleAnimSpriteTemplate_83DB4A8, 130, 4, 0, 0, 1, 0
- createtask sub_80A7E7C, 5, 5, 1, 0, 5, 11, 1
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 130, 0, 0, 1, 0
+ createtask sub_80A7E7C, 5, 1, 0, 5, 11, 1
wait
clearmonbg 3
blendoff
@@ -6436,11 +6436,11 @@ Move_KARATE_CHOP: @ 81D053C
monbgprio_28 1
setalpha 12, 8
panse_19 SE_W104, 63
- sprite gBattleAnimSpriteTemplate_83D9F78, 2, 8, -16, 0, 0, 0, 10, 1, 3, 0
+ sprite gBattleAnimSpriteTemplate_83D9F78, 2, -16, 0, 0, 0, 10, 1, 3, 0
wait
panse_19 SE_W004, 63
- sprite gBattleAnimSpriteTemplate_83DB4A8, 3, 4, 0, 0, 1, 2
- createtask sub_80A7E7C, 5, 5, 1, 4, 0, 6, 1
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 3, 0, 0, 1, 2
+ createtask sub_80A7E7C, 5, 1, 4, 0, 6, 1
wait
clearmonbg 3
blendoff
@@ -6452,13 +6452,13 @@ Move_CROSS_CHOP: @ 81D058E
monbg 3
setalpha 12, 8
panse_19 SE_W025, 63
- sprite gBattleAnimSpriteTemplate_83D9FD8, 2, 3, 0, 0, 0
- sprite gBattleAnimSpriteTemplate_83D9FD8, 2, 3, 0, 0, 1
+ sprite gBattleAnimSpriteTemplate_83D9FD8, 2, 0, 0, 0
+ sprite gBattleAnimSpriteTemplate_83D9FD8, 2, 0, 0, 1
pause 40
panse_19 SE_W013, 63
- sprite gBattleAnimSpriteTemplate_83DB3DC, 2, 7, 31, 3, 1, 32767, 10, 0, 10
- sprite gBattleAnimSpriteTemplate_83DB520, 3, 4, 0, 0, 1, 20
- createtask sub_80A7E7C, 5, 5, 1, 7, 0, 9, 1
+ sprite gBattleAnimSpriteTemplate_83DB3DC, 2, 31, 3, 1, 32767, 10, 0, 10
+ sprite gBattleAnimSpriteTemplate_83DB520, 3, 0, 0, 1, 20
+ createtask sub_80A7E7C, 5, 1, 7, 0, 9, 1
wait
clearmonbg 3
blendoff
@@ -6469,13 +6469,13 @@ Move_JUMP_KICK: @ 81D05F7
loadsprite 10135
monbg 3
setalpha 12, 8
- sprite gBattleAnimSpriteTemplate_83C1FB0, 2, 2, 4, 4
+ sprite gBattleAnimSpriteTemplate_83C1FB0, 2, 4, 4
pause 3
- sprite gBattleAnimSpriteTemplate_83D9F90, 2, 8, -16, 8, 0, 0, 10, 1, 1, 1
+ sprite gBattleAnimSpriteTemplate_83D9F90, 2, -16, 8, 0, 0, 10, 1, 1, 1
panse_19 SE_W026, 63
wait
- sprite gBattleAnimSpriteTemplate_83DB4A8, 1, 4, 0, 0, 1, 1
- createtask sub_80A7E7C, 5, 5, 1, 5, 0, 7, 1
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 1, 0, 0, 1, 1
+ createtask sub_80A7E7C, 5, 1, 5, 0, 7, 1
panse_19 SE_W004, 63
wait
clearmonbg 3
@@ -6487,22 +6487,22 @@ Move_HI_JUMP_KICK: @ 81D0654
loadsprite 10135
monbg 3
setalpha 12, 8
- sprite gBattleAnimSpriteTemplate_83C1FF8, 2, 5, 0, -24, 0, 0, 8
+ sprite gBattleAnimSpriteTemplate_83C1FF8, 2, 0, -24, 0, 0, 8
wait
pause 10
- sprite gBattleAnimSpriteTemplate_83C1FE0, 2, 3, 0, 0, 3
+ sprite gBattleAnimSpriteTemplate_83C1FE0, 2, 0, 0, 3
pause 2
- sprite gBattleAnimSpriteTemplate_83D9F90, 2, 8, -16, 8, 0, 0, 10, 1, 1, 1
+ sprite gBattleAnimSpriteTemplate_83D9F90, 2, -16, 8, 0, 0, 10, 1, 1, 1
panse_19 SE_W026, 63
wait
- sprite gBattleAnimSpriteTemplate_83DB4A8, 2, 4, 0, 0, 1, 1
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 2, 0, 0, 1, 1
panse_19 SE_W233B, 63
- sprite gBattleAnimSpriteTemplate_83C1FF8, 2, 5, 1, -28, 0, 0, 3
+ sprite gBattleAnimSpriteTemplate_83C1FF8, 2, 1, -28, 0, 0, 3
pause 3
- createtask sub_80A8154, 2, 5, 1, 3, 0, 11, 1
+ createtask sub_80A8154, 2, 1, 3, 0, 11, 1
wait
pause 5
- sprite gBattleAnimSpriteTemplate_83C1FE0, 2, 3, 1, 0, 6
+ sprite gBattleAnimSpriteTemplate_83C1FE0, 2, 1, 0, 6
wait
clearmonbg 3
blendoff
@@ -6513,8 +6513,8 @@ Move_DOUBLE_KICK: @ 81D06EA
loadsprite 10135
monbg 3
setalpha 12, 8
- sprite gBattleAnimSpriteTemplate_83D9FC0, 3, 3, 1, 20, 1
- createtask sub_80A7E7C, 5, 5, 1, 4, 0, 6, 1
+ sprite gBattleAnimSpriteTemplate_83D9FC0, 3, 1, 20, 1
+ createtask sub_80A7E7C, 5, 1, 4, 0, 6, 1
panse_19 SE_W233B, 63
wait
wait
@@ -6537,19 +6537,19 @@ _81D073D:
blendoff
end
_81D0742:
- sprite gBattleAnimSpriteTemplate_83D9FA8, 132, 5, -16, -8, 20, 1, 1
- sprite gBattleAnimSpriteTemplate_83DB4A8, 131, 4, -16, -16, 1, 2
- createtask sub_80A7E7C, 5, 5, 1, 4, 0, 6, 1
+ sprite gBattleAnimSpriteTemplate_83D9FA8, 132, -16, -8, 20, 1, 1
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 131, -16, -16, 1, 2
+ createtask sub_80A7E7C, 5, 1, 4, 0, 6, 1
jump _81D073D
_81D0778:
- sprite gBattleAnimSpriteTemplate_83D9FA8, 132, 5, 8, 8, 20, 1, 1
- sprite gBattleAnimSpriteTemplate_83DB4A8, 131, 4, 8, 0, 1, 2
- createtask sub_80A7E7C, 5, 5, 1, 4, 0, 6, 1
+ sprite gBattleAnimSpriteTemplate_83D9FA8, 132, 8, 8, 20, 1, 1
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 131, 8, 0, 1, 2
+ createtask sub_80A7E7C, 5, 1, 4, 0, 6, 1
jump _81D073D
_81D07AE:
- sprite gBattleAnimSpriteTemplate_83D9FA8, 132, 5, 0, 0, 20, 1, 1
- sprite gBattleAnimSpriteTemplate_83DB4A8, 131, 4, 0, -8, 1, 1
- createtask sub_80A7E7C, 5, 5, 1, 6, 0, 8, 1
+ sprite gBattleAnimSpriteTemplate_83D9FA8, 132, 0, 0, 20, 1, 1
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 131, 0, -8, 1, 1
+ createtask sub_80A7E7C, 5, 1, 6, 0, 8, 1
jump _81D073D
Move_DYNAMIC_PUNCH: @ 81D07E4
@@ -6561,26 +6561,26 @@ Move_DYNAMIC_PUNCH: @ 81D07E4
monbg 3
setalpha 12, 8
panse_19 SE_W233B, 63
- sprite gBattleAnimSpriteTemplate_83D9FA8, 131, 5, 0, 0, 20, 1, 0
- sprite gBattleAnimSpriteTemplate_83DB4A8, 130, 4, 0, 0, 1, 0
- createtask sub_80A7E7C, 5, 5, 1, 5, 0, 7, 1
+ sprite gBattleAnimSpriteTemplate_83D9FA8, 131, 0, 0, 20, 1, 0
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 130, 0, 0, 1, 0
+ createtask sub_80A7E7C, 5, 1, 5, 0, 7, 1
pause 1
waitsound
panse_19 SE_W120, 63
- createtask sub_80A7FA0, 5, 5, 1, 5, 0, 28, 1
- sprite gBattleAnimSpriteTemplate_83D7828, 3, 4, 0, 0, 1, 1
+ createtask sub_80A7FA0, 5, 1, 5, 0, 28, 1
+ sprite gBattleAnimSpriteTemplate_83D7828, 3, 0, 0, 1, 1
pause 6
panse_19 SE_W120, 63
- sprite gBattleAnimSpriteTemplate_83D7828, 3, 4, 24, -24, 1, 1
+ sprite gBattleAnimSpriteTemplate_83D7828, 3, 24, -24, 1, 1
pause 6
panse_19 SE_W120, 63
- sprite gBattleAnimSpriteTemplate_83D7828, 3, 4, -16, 16, 1, 1
+ sprite gBattleAnimSpriteTemplate_83D7828, 3, -16, 16, 1, 1
pause 6
panse_19 SE_W120, 63
- sprite gBattleAnimSpriteTemplate_83D7828, 3, 4, -24, -12, 1, 1
+ sprite gBattleAnimSpriteTemplate_83D7828, 3, -24, -12, 1, 1
pause 6
panse_19 SE_W120, 63
- sprite gBattleAnimSpriteTemplate_83D7828, 3, 4, 16, 16, 1, 1
+ sprite gBattleAnimSpriteTemplate_83D7828, 3, 16, 16, 1, 1
wait
clearmonbg 3
blendoff
@@ -6591,28 +6591,28 @@ Move_COUNTER: @ 81D08AC
loadsprite 10143
monbg 3
setalpha 12, 8
- createtask sub_80A8500, 2, 5, 0, 18, 6, 1, 4
+ createtask sub_80A8500, 2, 0, 18, 6, 1, 4
panse_19 SE_W233, 192
wait
- sprite gBattleAnimSpriteTemplate_83C1FF8, 2, 5, 0, 20, 0, 0, 4
+ sprite gBattleAnimSpriteTemplate_83C1FF8, 2, 0, 20, 0, 0, 4
pause 4
- sprite gBattleAnimSpriteTemplate_83DB4A8, 2, 4, -15, 18, 1, 0
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 2, -15, 18, 1, 0
panse_19 SE_W233B, 63
pause 1
- createtask sub_80A7E7C, 2, 5, 1, 5, 0, 25, 1
- sprite gBattleAnimSpriteTemplate_83D9FA8, 3, 5, -15, 18, 8, 1, 0
+ createtask sub_80A7E7C, 2, 1, 5, 0, 25, 1
+ sprite gBattleAnimSpriteTemplate_83D9FA8, 3, -15, 18, 8, 1, 0
pause 3
- sprite gBattleAnimSpriteTemplate_83DB4A8, 2, 4, 0, -4, 1, 0
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 2, 0, -4, 1, 0
panse_19 SE_W233B, 63
pause 1
- sprite gBattleAnimSpriteTemplate_83D9FA8, 3, 5, 0, -4, 8, 1, 0
+ sprite gBattleAnimSpriteTemplate_83D9FA8, 3, 0, -4, 8, 1, 0
pause 3
- sprite gBattleAnimSpriteTemplate_83DB4A8, 2, 4, 15, 9, 1, 0
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 2, 15, 9, 1, 0
panse_19 SE_W233B, 63
pause 1
- sprite gBattleAnimSpriteTemplate_83D9FA8, 3, 5, 15, 9, 8, 1, 0
+ sprite gBattleAnimSpriteTemplate_83D9FA8, 3, 15, 9, 8, 1, 0
pause 5
- sprite gBattleAnimSpriteTemplate_83C1FE0, 2, 3, 0, 0, 5
+ sprite gBattleAnimSpriteTemplate_83C1FE0, 2, 0, 0, 5
wait
clearmonbg 3
blendoff
@@ -6623,19 +6623,19 @@ Move_VITAL_THROW: @ 81D097B
monbg 3
setalpha 12, 8
panse_19 SE_W233, 192
- createtask sub_80A8500, 2, 5, 0, 12, 4, 1, 2
+ createtask sub_80A8500, 2, 0, 12, 4, 1, 2
wait
- sprite gBattleAnimSpriteTemplate_83C1FF8, 2, 5, 0, 20, 0, 0, 4
+ sprite gBattleAnimSpriteTemplate_83C1FF8, 2, 0, 20, 0, 0, 4
pause 2
- sprite gBattleAnimSpriteTemplate_83DB4A8, 3, 4, 0, 0, 1, 1
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 3, 0, 0, 1, 1
panse_19 SE_W233B, 63
pause 1
- sprite gBattleAnimSpriteTemplate_83C1FF8, 2, 5, 1, -24, 0, 0, 4
+ sprite gBattleAnimSpriteTemplate_83C1FF8, 2, 1, -24, 0, 0, 4
wait
pause 3
- sprite gBattleAnimSpriteTemplate_83C1FE0, 2, 3, 0, 0, 7
+ sprite gBattleAnimSpriteTemplate_83C1FE0, 2, 0, 0, 7
pause 11
- sprite gBattleAnimSpriteTemplate_83C1FE0, 2, 3, 1, 0, 10
+ sprite gBattleAnimSpriteTemplate_83C1FE0, 2, 1, 0, 10
wait
clearmonbg 3
blendoff
@@ -6648,21 +6648,21 @@ Move_ROCK_SMASH: @ 81D09F6
monbg 3
setalpha 12, 8
pause 1
- sprite gBattleAnimSpriteTemplate_83DB4A8, 3, 4, 0, 0, 1, 1
- sprite gBattleAnimSpriteTemplate_83D9FA8, 2, 5, 0, 0, 8, 1, 0
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 3, 0, 0, 1, 1
+ sprite gBattleAnimSpriteTemplate_83D9FA8, 2, 0, 0, 8, 1, 0
panse_19 SE_W233B, 63
- createtask sub_80A7E7C, 2, 5, 1, 3, 0, 5, 1
+ createtask sub_80A7E7C, 2, 1, 3, 0, 5, 1
wait
panse_19 SE_W088, 63
- sprite gBattleAnimSpriteTemplate_83DAC64, 2, 6, 0, 0, 20, 24, 14, 2
- sprite gBattleAnimSpriteTemplate_83DAC64, 2, 6, 5, 0, -20, 24, 14, 1
- sprite gBattleAnimSpriteTemplate_83DAC64, 2, 6, 0, 5, 20, -24, 14, 2
- sprite gBattleAnimSpriteTemplate_83DAC64, 2, 6, -5, 0, -20, -24, 14, 2
- sprite gBattleAnimSpriteTemplate_83DAC64, 2, 6, 0, -5, 30, 18, 8, 2
- sprite gBattleAnimSpriteTemplate_83DAC64, 2, 6, 0, 0, 30, -18, 8, 2
- sprite gBattleAnimSpriteTemplate_83DAC64, 2, 6, 0, 0, -30, 18, 8, 2
- sprite gBattleAnimSpriteTemplate_83DAC64, 2, 6, 0, 0, -30, -18, 8, 2
- createtask sub_80A7E7C, 2, 5, 1, 0, 3, 7, 1
+ sprite gBattleAnimSpriteTemplate_83DAC64, 2, 0, 0, 20, 24, 14, 2
+ sprite gBattleAnimSpriteTemplate_83DAC64, 2, 5, 0, -20, 24, 14, 1
+ sprite gBattleAnimSpriteTemplate_83DAC64, 2, 0, 5, 20, -24, 14, 2
+ sprite gBattleAnimSpriteTemplate_83DAC64, 2, -5, 0, -20, -24, 14, 2
+ sprite gBattleAnimSpriteTemplate_83DAC64, 2, 0, -5, 30, 18, 8, 2
+ sprite gBattleAnimSpriteTemplate_83DAC64, 2, 0, 0, 30, -18, 8, 2
+ sprite gBattleAnimSpriteTemplate_83DAC64, 2, 0, 0, -30, 18, 8, 2
+ sprite gBattleAnimSpriteTemplate_83DAC64, 2, 0, 0, -30, -18, 8, 2
+ createtask sub_80A7E7C, 2, 1, 0, 3, 7, 1
wait
clearmonbg 3
blendoff
@@ -6682,8 +6682,8 @@ Move_SUBMISSION: @ 81D0AEE
panse_1D SE_W004, 63, 70
panse_1D SE_W104, 192, 80
panse_1D SE_W004, 63, 90
- createtask sub_80A8408, 2, 5, 0, -18, 6, 6, 4
- createtask sub_80A8408, 2, 5, 1, 18, 6, 6, 4
+ createtask sub_80A8408, 2, 0, -18, 6, 6, 4
+ createtask sub_80A8408, 2, 1, 18, 6, 6, 4
call _81D0B5D
call _81D0B5D
call _81D0B5D
@@ -6692,11 +6692,11 @@ Move_SUBMISSION: @ 81D0AEE
blendoff
end
_81D0B5D:
- sprite gBattleAnimSpriteTemplate_83DB4A8, 3, 4, 0, -12, 1, 1
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 3, 0, -12, 1, 1
pause 8
- sprite gBattleAnimSpriteTemplate_83DB4A8, 3, 4, -12, 8, 1, 1
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 3, -12, 8, 1, 1
pause 8
- sprite gBattleAnimSpriteTemplate_83DB4A8, 3, 4, 12, 0, 1, 1
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 3, 12, 0, 1, 1
pause 8
ret
@@ -6704,7 +6704,7 @@ Move_SUNNY_DAY: @ 81D0B91
loadsprite 10157
monbg 2
setalpha 13, 3
- createtask sub_80E2A38, 10, 5, 1921, 1, 0, 6, 32767
+ createtask sub_80E2A38, 10, 1921, 1, 0, 6, 32767
wait
panse_26 SE_W080, 192, 63, 1, 0
call _81D0BDD
@@ -6712,7 +6712,7 @@ Move_SUNNY_DAY: @ 81D0B91
call _81D0BDD
call _81D0BDD
wait
- createtask sub_80E2A38, 10, 5, 1921, 1, 6, 0, 32767
+ createtask sub_80E2A38, 10, 1921, 1, 6, 0, 32767
wait
clearmonbg 2
blendoff
@@ -6734,11 +6734,11 @@ Move_COTTON_SPORE: @ 81D0BE7
clearmonbg 3
end
_81D0C07:
- sprite gBattleAnimSpriteTemplate_83D63F8, 2, 5, 0, -20, 85, 80, 0
+ sprite gBattleAnimSpriteTemplate_83D63F8, 2, 0, -20, 85, 80, 0
pause 12
- sprite gBattleAnimSpriteTemplate_83D63F8, 2, 5, 0, -10, 170, 80, 0
+ sprite gBattleAnimSpriteTemplate_83D63F8, 2, 0, -10, 170, 80, 0
pause 12
- sprite gBattleAnimSpriteTemplate_83D63F8, 2, 5, 0, -15, 0, 80, 0
+ sprite gBattleAnimSpriteTemplate_83D63F8, 2, 0, -15, 0, 80, 0
pause 12
ret
@@ -6757,11 +6757,11 @@ Move_SPORE: @ 81D0C41
blendoff
end
_81D0C6C:
- sprite gBattleAnimSpriteTemplate_83D63F8, 130, 5, 0, -20, 85, 80, 1
+ sprite gBattleAnimSpriteTemplate_83D63F8, 130, 0, -20, 85, 80, 1
pause 12
- sprite gBattleAnimSpriteTemplate_83D63F8, 130, 5, 0, -10, 170, 80, 1
+ sprite gBattleAnimSpriteTemplate_83D63F8, 130, 0, -10, 170, 80, 1
pause 12
- sprite gBattleAnimSpriteTemplate_83D63F8, 130, 5, 0, -15, 0, 80, 1
+ sprite gBattleAnimSpriteTemplate_83D63F8, 130, 0, -15, 0, 80, 1
pause 12
ret
@@ -6771,33 +6771,33 @@ Move_PETAL_DANCE: @ 81D0CA6
monbg 3
setalpha 12, 8
panse_19 SE_W080, 192
- createtask sub_80A8500, 2, 5, 0, 12, 6, 6, 3
- sprite gBattleAnimSpriteTemplate_83D6428, 2, 4, 0, -24, 8, 140
- sprite gBattleAnimSpriteTemplate_83D6440, 2, 4, 16, -24, 8, 100
- sprite gBattleAnimSpriteTemplate_83D6440, 2, 4, -16, -24, 8, 100
+ createtask sub_80A8500, 2, 0, 12, 6, 6, 3
+ sprite gBattleAnimSpriteTemplate_83D6428, 2, 0, -24, 8, 140
+ sprite gBattleAnimSpriteTemplate_83D6440, 2, 16, -24, 8, 100
+ sprite gBattleAnimSpriteTemplate_83D6440, 2, -16, -24, 8, 100
pause 15
- sprite gBattleAnimSpriteTemplate_83D6428, 2, 4, 0, -24, 8, 140
- sprite gBattleAnimSpriteTemplate_83D6440, 2, 4, 32, -24, 8, 100
- sprite gBattleAnimSpriteTemplate_83D6440, 2, 4, -32, -24, 8, 100
+ sprite gBattleAnimSpriteTemplate_83D6428, 2, 0, -24, 8, 140
+ sprite gBattleAnimSpriteTemplate_83D6440, 2, 32, -24, 8, 100
+ sprite gBattleAnimSpriteTemplate_83D6440, 2, -32, -24, 8, 100
pause 15
- sprite gBattleAnimSpriteTemplate_83D6428, 2, 4, 0, -24, 8, 140
- sprite gBattleAnimSpriteTemplate_83D6440, 2, 4, 24, -24, 8, 100
- sprite gBattleAnimSpriteTemplate_83D6440, 2, 4, -24, -24, 8, 100
+ sprite gBattleAnimSpriteTemplate_83D6428, 2, 0, -24, 8, 140
+ sprite gBattleAnimSpriteTemplate_83D6440, 2, 24, -24, 8, 100
+ sprite gBattleAnimSpriteTemplate_83D6440, 2, -24, -24, 8, 100
pause 30
- sprite gBattleAnimSpriteTemplate_83D6440, 2, 4, 16, -24, 0, 100
- sprite gBattleAnimSpriteTemplate_83D6440, 2, 4, -16, -24, 0, 100
+ sprite gBattleAnimSpriteTemplate_83D6440, 2, 16, -24, 0, 100
+ sprite gBattleAnimSpriteTemplate_83D6440, 2, -16, -24, 0, 100
pause 30
- sprite gBattleAnimSpriteTemplate_83D6440, 2, 4, 20, -16, 14, 80
- sprite gBattleAnimSpriteTemplate_83D6440, 2, 4, -20, -14, 16, 80
+ sprite gBattleAnimSpriteTemplate_83D6440, 2, 20, -16, 14, 80
+ sprite gBattleAnimSpriteTemplate_83D6440, 2, -20, -14, 16, 80
wait
- sprite gBattleAnimSpriteTemplate_83C1FF8, 2, 5, 0, 24, 0, 0, 5
+ sprite gBattleAnimSpriteTemplate_83C1FF8, 2, 0, 24, 0, 0, 5
pause 3
panse_19 SE_W025B, 63
- sprite gBattleAnimSpriteTemplate_83DB4A8, 3, 4, 0, 0, 1, 0
- createtask sub_80A7E7C, 2, 5, 1, 6, 0, 8, 1
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 3, 0, 0, 1, 0
+ createtask sub_80A7E7C, 2, 1, 6, 0, 8, 1
wait
pause 8
- sprite gBattleAnimSpriteTemplate_83C1FE0, 2, 3, 0, 0, 7
+ sprite gBattleAnimSpriteTemplate_83C1FE0, 2, 0, 0, 7
wait
clearmonbg 3
blendoff
@@ -6811,33 +6811,33 @@ Move_RAZOR_LEAF: @ 81D0DDE
setalpha 12, 8
pause 1
panse_1C SE_W077, 192, 10, 5
- sprite gBattleAnimSpriteTemplate_83D649C, 2, 3, -3, -2, 10
+ sprite gBattleAnimSpriteTemplate_83D649C, 2, -3, -2, 10
pause 2
- sprite gBattleAnimSpriteTemplate_83D649C, 2, 3, -1, -1, 15
+ sprite gBattleAnimSpriteTemplate_83D649C, 2, -1, -1, 15
pause 2
- sprite gBattleAnimSpriteTemplate_83D649C, 2, 3, -4, -4, 7
+ sprite gBattleAnimSpriteTemplate_83D649C, 2, -4, -4, 7
pause 2
- sprite gBattleAnimSpriteTemplate_83D649C, 2, 3, 3, -3, 11
+ sprite gBattleAnimSpriteTemplate_83D649C, 2, 3, -3, 11
pause 2
- sprite gBattleAnimSpriteTemplate_83D649C, 2, 3, -1, -6, 8
+ sprite gBattleAnimSpriteTemplate_83D649C, 2, -1, -6, 8
pause 2
- sprite gBattleAnimSpriteTemplate_83D649C, 2, 3, 2, -1, 12
+ sprite gBattleAnimSpriteTemplate_83D649C, 2, 2, -1, 12
pause 2
- sprite gBattleAnimSpriteTemplate_83D649C, 2, 3, -3, -4, 13
+ sprite gBattleAnimSpriteTemplate_83D649C, 2, -3, -4, 13
pause 2
- sprite gBattleAnimSpriteTemplate_83D649C, 2, 3, 4, -5, 7
+ sprite gBattleAnimSpriteTemplate_83D649C, 2, 4, -5, 7
pause 2
- sprite gBattleAnimSpriteTemplate_83D649C, 2, 3, 2, -6, 11
+ sprite gBattleAnimSpriteTemplate_83D649C, 2, 2, -6, 11
pause 2
- sprite gBattleAnimSpriteTemplate_83D649C, 2, 3, -3, -5, 8
+ sprite gBattleAnimSpriteTemplate_83D649C, 2, -3, -5, 8
pause 60
panse_19 SE_W013B, 192
- sprite gBattleAnimSpriteTemplate_83D64E4, 131, 7, 20, -10, 20, 0, 22, 20, 1
- sprite gBattleAnimSpriteTemplate_83D64E4, 131, 7, 20, -10, 20, 0, 22, -20, 1
+ sprite gBattleAnimSpriteTemplate_83D64E4, 131, 20, -10, 20, 0, 22, 20, 1
+ sprite gBattleAnimSpriteTemplate_83D64E4, 131, 20, -10, 20, 0, 22, -20, 1
pause 20
panse_19 SE_W013, 63
- createtask sub_80A7FA0, 2, 5, 1, 2, 0, 8, 1
- createtask sub_80A7FA0, 2, 5, 3, 2, 0, 8, 1
+ createtask sub_80A7FA0, 2, 1, 2, 0, 8, 1
+ createtask sub_80A7FA0, 2, 3, 2, 0, 8, 1
wait
clearmonbg 3
blendoff
@@ -6848,29 +6848,29 @@ Move_ANCIENT_POWER: @ 81D0EE5
loadsprite 10135
monbg 3
setalpha 12, 8
- sprite gBattleAnimSpriteTemplate_83DB428, 2, 4, 4, 1, 10, 1
- sprite gBattleAnimSpriteTemplate_83DAD60, 2, 5, 20, 32, -48, 50, 2
- sprite gBattleAnimSpriteTemplate_83DAD60, 2, 5, 0, 32, -38, 25, 5
- sprite gBattleAnimSpriteTemplate_83DAD60, 2, 5, 32, 32, -28, 40, 3
- sprite gBattleAnimSpriteTemplate_83DAD60, 2, 5, -20, 32, -48, 50, 2
- sprite gBattleAnimSpriteTemplate_83DAD60, 2, 5, 20, 32, -28, 60, 1
- sprite gBattleAnimSpriteTemplate_83DAD60, 2, 5, 0, 32, -28, 30, 4
- createtask sub_80A7FA0, 2, 5, 0, 1, 0, 30, 1
+ sprite gBattleAnimSpriteTemplate_83DB428, 2, 4, 1, 10, 1
+ sprite gBattleAnimSpriteTemplate_83DAD60, 2, 20, 32, -48, 50, 2
+ sprite gBattleAnimSpriteTemplate_83DAD60, 2, 0, 32, -38, 25, 5
+ sprite gBattleAnimSpriteTemplate_83DAD60, 2, 32, 32, -28, 40, 3
+ sprite gBattleAnimSpriteTemplate_83DAD60, 2, -20, 32, -48, 50, 2
+ sprite gBattleAnimSpriteTemplate_83DAD60, 2, 20, 32, -28, 60, 1
+ sprite gBattleAnimSpriteTemplate_83DAD60, 2, 0, 32, -28, 30, 4
+ createtask sub_80A7FA0, 2, 0, 1, 0, 30, 1
panse_19 SE_W082, 192
pause 10
- sprite gBattleAnimSpriteTemplate_83DAD60, 2, 5, 15, 32, -48, 25, 5
- sprite gBattleAnimSpriteTemplate_83DAD60, 2, 5, -10, 32, -42, 30, 4
+ sprite gBattleAnimSpriteTemplate_83DAD60, 2, 15, 32, -48, 25, 5
+ sprite gBattleAnimSpriteTemplate_83DAD60, 2, -10, 32, -42, 30, 4
pause 10
- sprite gBattleAnimSpriteTemplate_83DAD60, 2, 5, 0, 32, -42, 25, 5
- sprite gBattleAnimSpriteTemplate_83DAD60, 2, 5, -25, 32, -48, 30, 4
+ sprite gBattleAnimSpriteTemplate_83DAD60, 2, 0, 32, -42, 25, 5
+ sprite gBattleAnimSpriteTemplate_83DAD60, 2, -25, 32, -48, 30, 4
wait
- sprite gBattleAnimSpriteTemplate_83C1FF8, 2, 5, 0, 16, 0, 0, 4
+ sprite gBattleAnimSpriteTemplate_83C1FF8, 2, 0, 16, 0, 0, 4
pause 3
panse_19 SE_W120, 63
- sprite gBattleAnimSpriteTemplate_83DB4A8, 3, 4, 0, 0, 1, 1
- createtask sub_80A7FA0, 2, 5, 1, 3, 0, 6, 1
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 3, 0, 0, 1, 1
+ createtask sub_80A7FA0, 2, 1, 3, 0, 6, 1
wait
- sprite gBattleAnimSpriteTemplate_83C1FE0, 2, 3, 0, 0, 7
+ sprite gBattleAnimSpriteTemplate_83C1FE0, 2, 0, 0, 7
wait
clearmonbg 3
blendoff
@@ -6880,16 +6880,16 @@ Move_OCTAZOOKA: @ 81D100D
loadsprite 10030
loadsprite 10017
panse_19 SE_W025B, 192
- sprite gBattleAnimSpriteTemplate_83D6F08, 130, 6, 20, 0, 0, 0, 20, 0
+ sprite gBattleAnimSpriteTemplate_83D6F08, 130, 20, 0, 0, 0, 20, 0
wait
panse_19 SE_W120, 63
- sprite gBattleAnimSpriteTemplate_83D6F3C, 130, 4, 8, 8, 1, 0
+ sprite gBattleAnimSpriteTemplate_83D6F3C, 130, 8, 8, 1, 0
pause 2
- sprite gBattleAnimSpriteTemplate_83D6F3C, 130, 4, -8, -8, 1, 0
+ sprite gBattleAnimSpriteTemplate_83D6F3C, 130, -8, -8, 1, 0
pause 2
- sprite gBattleAnimSpriteTemplate_83D6F3C, 130, 4, 8, -8, 1, 0
+ sprite gBattleAnimSpriteTemplate_83D6F3C, 130, 8, -8, 1, 0
pause 2
- sprite gBattleAnimSpriteTemplate_83D6F3C, 130, 4, -8, 8, 1, 0
+ sprite gBattleAnimSpriteTemplate_83D6F3C, 130, -8, 8, 1, 0
wait
end
@@ -6906,13 +6906,13 @@ Move_MIST: @ 81D1073
call _81D10BE
call _81D10BE
pause 32
- createtask sub_80E1F8C, 2, 6, 10, 8, 2, 0, 14, 32767
+ createtask sub_80E1F8C, 2, 10, 8, 2, 0, 14, 32767
wait
clearmonbg 2
blendoff
end
_81D10BE:
- sprite gBattleAnimSpriteTemplate_83D9D3C, 2, 6, 0, -24, 48, 240, 0, 1
+ sprite gBattleAnimSpriteTemplate_83D9D3C, 2, 0, -24, 48, 240, 0, 1
pause 7
ret
@@ -6921,9 +6921,9 @@ Move_HAZE: @ 81D10D4
panse_19 SE_W114, 0
createtask sub_80D80E0, 5
pause 30
- createtask sub_80E2A38, 10, 5, 1920, 2, 0, 16, 0
+ createtask sub_80E2A38, 10, 1920, 2, 0, 16, 0
pause 90
- createtask sub_80E2A38, 10, 5, 1920, 1, 16, 0, 0
+ createtask sub_80E2A38, 10, 1920, 1, 16, 0, 0
end
Move_FIRE_PUNCH: @ 81D1107
@@ -6932,33 +6932,33 @@ Move_FIRE_PUNCH: @ 81D1107
loadsprite 10135
monbg 3
setalpha 12, 8
- createtask sub_80E2A38, 10, 5, 4, 2, 0, 9, 31
- sprite gBattleAnimSpriteTemplate_83D9478, 129, 1, 0
- sprite gBattleAnimSpriteTemplate_83D9478, 129, 1, 64
- sprite gBattleAnimSpriteTemplate_83D9478, 129, 1, 128
- sprite gBattleAnimSpriteTemplate_83D9478, 129, 1, 196
+ createtask sub_80E2A38, 10, 4, 2, 0, 9, 31
+ sprite gBattleAnimSpriteTemplate_83D9478, 129, 0
+ sprite gBattleAnimSpriteTemplate_83D9478, 129, 64
+ sprite gBattleAnimSpriteTemplate_83D9478, 129, 128
+ sprite gBattleAnimSpriteTemplate_83D9478, 129, 196
panse_19 SE_W172, 63
wait
- sprite gBattleAnimSpriteTemplate_83D9FA8, 131, 5, 0, 0, 8, 1, 0
- sprite gBattleAnimSpriteTemplate_83DB4A8, 130, 4, 0, 0, 1, 1
- createtask sub_80A7E7C, 2, 5, 1, 0, 3, 15, 1
+ sprite gBattleAnimSpriteTemplate_83D9FA8, 131, 0, 0, 8, 1, 0
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 130, 0, 0, 1, 1
+ createtask sub_80A7E7C, 2, 1, 0, 3, 15, 1
call _81D11A2
pause 4
panse_19 SE_W007, 63
wait
- createtask sub_80E2A38, 10, 5, 4, 0, 9, 0, 31
+ createtask sub_80E2A38, 10, 4, 0, 9, 0, 31
wait
clearmonbg 3
blendoff
end
_81D11A2:
- sprite gBattleAnimSpriteTemplate_83D9490, 129, 5, 0, 10, 192, 176, 40
- sprite gBattleAnimSpriteTemplate_83D9490, 129, 5, 0, 10, -192, 240, 40
- sprite gBattleAnimSpriteTemplate_83D9490, 129, 5, 0, 10, 192, -160, 40
- sprite gBattleAnimSpriteTemplate_83D9490, 129, 5, 0, 10, -192, -112, 40
- sprite gBattleAnimSpriteTemplate_83D9490, 129, 5, 0, 10, 160, 48, 40
- sprite gBattleAnimSpriteTemplate_83D9490, 129, 5, 0, 10, -224, -32, 40
- sprite gBattleAnimSpriteTemplate_83D9490, 129, 5, 0, 10, 112, -128, 40
+ sprite gBattleAnimSpriteTemplate_83D9490, 129, 0, 10, 192, 176, 40
+ sprite gBattleAnimSpriteTemplate_83D9490, 129, 0, 10, -192, 240, 40
+ sprite gBattleAnimSpriteTemplate_83D9490, 129, 0, 10, 192, -160, 40
+ sprite gBattleAnimSpriteTemplate_83D9490, 129, 0, 10, -192, -112, 40
+ sprite gBattleAnimSpriteTemplate_83D9490, 129, 0, 10, 160, 48, 40
+ sprite gBattleAnimSpriteTemplate_83D9490, 129, 0, 10, -224, -32, 40
+ sprite gBattleAnimSpriteTemplate_83D9490, 129, 0, 10, 112, -128, 40
ret
Move_LEER: @ 81D121A
@@ -6967,12 +6967,12 @@ Move_LEER: @ 81D121A
monbgprio_28 0
setalpha 8, 8
panse_19 SE_W043, 192
- sprite gBattleAnimSpriteTemplate_84022B0, 2, 2, 24, -12
- createtask sub_80A8D34, 5, 5, -5, -5, 10, 0, 1
+ sprite gBattleAnimSpriteTemplate_84022B0, 2, 24, -12
+ createtask sub_80A8D34, 5, -5, -5, 10, 0, 1
wait
pause 10
- createtask sub_80A7FA0, 2, 5, 1, 1, 0, 9, 1
- createtask sub_80A7FA0, 2, 5, 3, 1, 0, 9, 1
+ createtask sub_80A7FA0, 2, 1, 1, 0, 9, 1
+ createtask sub_80A7FA0, 2, 3, 1, 0, 9, 1
wait
clearmonbg 0
blendoff
@@ -6989,11 +6989,11 @@ Move_DREAM_EATER: @ 81D1271
call Unknown_81D61E7
setalpha 8, 8
panse_19 SE_W107, 63
- createtask sub_80A7E7C, 2, 5, 1, 5, 0, 15, 1
- createtask sub_80A8D34, 5, 5, -6, -6, 15, 1, 1
+ createtask sub_80A7E7C, 2, 1, 5, 0, 15, 1
+ createtask sub_80A8D34, 5, -6, -6, 15, 1, 1
wait
setalpha 12, 8
- createtask sub_80A7E7C, 2, 5, 1, 0, 2, 25, 1
+ createtask sub_80A7E7C, 2, 1, 0, 2, 25, 1
call _81D12DB
wait
pause 15
@@ -7006,44 +7006,44 @@ Move_DREAM_EATER: @ 81D1271
end
_81D12DB:
panse_19 SE_W207, 63
- sprite gBattleAnimSpriteTemplate_83D637C, 3, 4, 0, 5, 8, 26
- sprite gBattleAnimSpriteTemplate_83D637C, 3, 4, 5, -18, -40, 35
- sprite gBattleAnimSpriteTemplate_83D637C, 3, 4, -10, 20, 20, 39
+ sprite gBattleAnimSpriteTemplate_83D637C, 3, 0, 5, 8, 26
+ sprite gBattleAnimSpriteTemplate_83D637C, 3, 5, -18, -40, 35
+ sprite gBattleAnimSpriteTemplate_83D637C, 3, -10, 20, 20, 39
pause 4
panse_19 SE_W207, 63
- sprite gBattleAnimSpriteTemplate_83D637C, 3, 4, 0, 5, 28, 26
- sprite gBattleAnimSpriteTemplate_83D637C, 3, 4, 10, -5, -8, 26
- sprite gBattleAnimSpriteTemplate_83D637C, 3, 4, -10, 20, 40, 39
+ sprite gBattleAnimSpriteTemplate_83D637C, 3, 0, 5, 28, 26
+ sprite gBattleAnimSpriteTemplate_83D637C, 3, 10, -5, -8, 26
+ sprite gBattleAnimSpriteTemplate_83D637C, 3, -10, 20, 40, 39
pause 4
panse_19 SE_W207, 63
- sprite gBattleAnimSpriteTemplate_83D637C, 3, 4, 10, -5, -8, 26
- sprite gBattleAnimSpriteTemplate_83D637C, 3, 4, -5, 15, 16, 33
- sprite gBattleAnimSpriteTemplate_83D637C, 3, 4, 10, -5, -32, 26
+ sprite gBattleAnimSpriteTemplate_83D637C, 3, 10, -5, -8, 26
+ sprite gBattleAnimSpriteTemplate_83D637C, 3, -5, 15, 16, 33
+ sprite gBattleAnimSpriteTemplate_83D637C, 3, 10, -5, -32, 26
pause 4
panse_19 SE_W207, 63
- sprite gBattleAnimSpriteTemplate_83D637C, 3, 4, 0, -15, -16, 36
- sprite gBattleAnimSpriteTemplate_83D637C, 3, 4, 0, 5, 8, 26
- sprite gBattleAnimSpriteTemplate_83D637C, 3, 4, 10, -5, -8, 26
+ sprite gBattleAnimSpriteTemplate_83D637C, 3, 0, -15, -16, 36
+ sprite gBattleAnimSpriteTemplate_83D637C, 3, 0, 5, 8, 26
+ sprite gBattleAnimSpriteTemplate_83D637C, 3, 10, -5, -8, 26
pause 4
panse_19 SE_W207, 63
- sprite gBattleAnimSpriteTemplate_83D637C, 3, 4, -5, 15, 16, 33
- sprite gBattleAnimSpriteTemplate_83D637C, 3, 4, 0, -15, -16, 36
- sprite gBattleAnimSpriteTemplate_83D637C, 3, 4, 0, 5, 8, 26
+ sprite gBattleAnimSpriteTemplate_83D637C, 3, -5, 15, 16, 33
+ sprite gBattleAnimSpriteTemplate_83D637C, 3, 0, -15, -16, 36
+ sprite gBattleAnimSpriteTemplate_83D637C, 3, 0, 5, 8, 26
pause 4
panse_19 SE_W207, 63
- sprite gBattleAnimSpriteTemplate_83D637C, 3, 4, 0, 5, 8, 26
- sprite gBattleAnimSpriteTemplate_83D637C, 3, 4, -5, 15, 16, 33
- sprite gBattleAnimSpriteTemplate_83D637C, 3, 4, 10, -5, -40, 26
+ sprite gBattleAnimSpriteTemplate_83D637C, 3, 0, 5, 8, 26
+ sprite gBattleAnimSpriteTemplate_83D637C, 3, -5, 15, 16, 33
+ sprite gBattleAnimSpriteTemplate_83D637C, 3, 10, -5, -40, 26
pause 4
panse_19 SE_W207, 63
- sprite gBattleAnimSpriteTemplate_83D637C, 3, 4, -5, 15, 36, 33
- sprite gBattleAnimSpriteTemplate_83D637C, 3, 4, 10, -5, -8, 26
- sprite gBattleAnimSpriteTemplate_83D637C, 3, 4, -10, 20, 20, 39
+ sprite gBattleAnimSpriteTemplate_83D637C, 3, -5, 15, 36, 33
+ sprite gBattleAnimSpriteTemplate_83D637C, 3, 10, -5, -8, 26
+ sprite gBattleAnimSpriteTemplate_83D637C, 3, -10, 20, 20, 39
pause 4
panse_19 SE_W207, 63
- sprite gBattleAnimSpriteTemplate_83D637C, 3, 4, 0, 5, 8, 26
- sprite gBattleAnimSpriteTemplate_83D637C, 3, 4, 0, 5, 8, 26
- sprite gBattleAnimSpriteTemplate_83D637C, 3, 4, 5, -18, -20, 35
+ sprite gBattleAnimSpriteTemplate_83D637C, 3, 0, 5, 8, 26
+ sprite gBattleAnimSpriteTemplate_83D637C, 3, 0, 5, 8, 26
+ sprite gBattleAnimSpriteTemplate_83D637C, 3, 5, -18, -20, 35
pause 4
ret
@@ -7056,25 +7056,25 @@ Move_POISON_GAS: @ 81D1474
setalpha 12, 8
pause 0
panse_19 SE_W054, 192
- sprite gBattleAnimSpriteTemplate_83D9DAC, 128, 8, 64, 0, 0, -32, -6, 4192, 1072, 0
+ sprite gBattleAnimSpriteTemplate_83D9DAC, 128, 64, 0, 0, -32, -6, 4192, 1072, 0
pause 4
panse_19 SE_W054, 192
- sprite gBattleAnimSpriteTemplate_83D9DAC, 128, 8, 64, 0, 0, -32, -6, 4192, 1072, 0
+ sprite gBattleAnimSpriteTemplate_83D9DAC, 128, 64, 0, 0, -32, -6, 4192, 1072, 0
pause 4
panse_19 SE_W054, 192
- sprite gBattleAnimSpriteTemplate_83D9DAC, 128, 8, 64, 0, 0, -32, -6, 4192, 1072, 0
+ sprite gBattleAnimSpriteTemplate_83D9DAC, 128, 64, 0, 0, -32, -6, 4192, 1072, 0
pause 4
panse_19 SE_W054, 192
- sprite gBattleAnimSpriteTemplate_83D9DAC, 128, 8, 64, 0, 0, -32, -6, 4192, 1072, 0
+ sprite gBattleAnimSpriteTemplate_83D9DAC, 128, 64, 0, 0, -32, -6, 4192, 1072, 0
pause 4
panse_19 SE_W054, 192
- sprite gBattleAnimSpriteTemplate_83D9DAC, 128, 8, 64, 0, 0, -32, -6, 4192, 1072, 0
+ sprite gBattleAnimSpriteTemplate_83D9DAC, 128, 64, 0, 0, -32, -6, 4192, 1072, 0
pause 4
panse_19 SE_W054, 192
- sprite gBattleAnimSpriteTemplate_83D9DAC, 128, 8, 64, 0, 0, -32, -6, 4192, 1072, 0
+ sprite gBattleAnimSpriteTemplate_83D9DAC, 128, 64, 0, 0, -32, -6, 4192, 1072, 0
pause 40
panse_1C SE_W054, 63, 28, 6
- createtask sub_80E1F8C, 2, 6, 4, 6, 2, 0, 12, 26650
+ createtask sub_80E1F8C, 2, 4, 6, 2, 0, 12, 26650
wait
blendoff
clearmonbg 3
@@ -7082,7 +7082,7 @@ Move_POISON_GAS: @ 81D1474
end
Move_BIND: @ 81D1552
- createtask sub_80A8B88, 5, 5, 0, 6, 3328, 4, 0
+ createtask sub_80A8B88, 5, 0, 6, 3328, 4, 0
jump _81D1568
_81D1568:
panse_19 SE_W020, 63
@@ -7091,23 +7091,23 @@ _81D1568:
wait
end
_81D1578:
- createtask sub_80A8D34, 5, 5, 10, -5, 5, 1, 0
+ createtask sub_80A8D34, 5, 10, -5, 5, 1, 0
pause 16
ret
Move_WRAP: @ 81D158C
- createtask sub_80A8500, 2, 5, 0, 6, 4, 2, 4
+ createtask sub_80A8500, 2, 0, 6, 4, 2, 4
jump _81D1568
Move_PSYBEAM: @ 81D15A2
loadsprite 10163
panse_19 SE_W060, 192
call Unknown_81D61E7
- createtask_1F sub_812B058, 7, 200, -64, 63, 3, 4, 0, 15
+ createtask_1F sub_812B058, 200, -64, 63, 3, 4, 0, 15
call _81D1626
call _81D1626
- createtask sub_80A8B88, 5, 5, 0, 6, 2048, 4, 1
- createtask sub_80E1F8C, 2, 6, 4, 2, 2, 0, 12, 32351
+ createtask sub_80A8B88, 5, 0, 6, 2048, 4, 1
+ createtask sub_80E1F8C, 2, 4, 2, 2, 0, 12, 32351
call _81D1626
call _81D1626
call _81D1626
@@ -7122,7 +7122,7 @@ Move_PSYBEAM: @ 81D15A2
call Unknown_81D61F3
end
_81D1626:
- sprite gBattleAnimSpriteTemplate_83DA784, 130, 6, 16, 0, 0, 0, 13, 0
+ sprite gBattleAnimSpriteTemplate_83DA784, 130, 16, 0, 0, 0, 13, 0
pause 4
ret
@@ -7132,15 +7132,15 @@ Move_HYPNOSIS: @ 81D163C
call _81D166F
call _81D166F
call _81D166F
- createtask sub_80E1F8C, 2, 6, 4, 2, 2, 0, 12, 32351
+ createtask sub_80E1F8C, 2, 4, 2, 2, 0, 12, 32351
wait
pause 1
call Unknown_81D61F3
end
_81D166F:
panse_19 SE_W048, 192
- sprite gBattleAnimSpriteTemplate_83DA784, 130, 6, 0, 8, 0, 8, 27, 0
- sprite gBattleAnimSpriteTemplate_83DA784, 130, 6, 16, -8, 0, -8, 27, 0
+ sprite gBattleAnimSpriteTemplate_83DA784, 130, 0, 8, 0, 8, 27, 0
+ sprite gBattleAnimSpriteTemplate_83DA784, 130, 16, -8, 0, -8, 27, 0
pause 6
ret
@@ -7148,11 +7148,11 @@ Move_PSYWAVE: @ 81D169C
loadsprite 10165
panse_19 SE_W060, 192
call Unknown_81D61E7
- createtask sub_80D3630, 5, 1, 100
- createtask_1F sub_812B058, 7, 203, -64, 63, 2, 9, 0, 10
+ createtask sub_80D3630, 5, 100
+ createtask_1F sub_812B058, 203, -64, 63, 2, 9, 0, 10
call _81D16FF
call _81D16FF
- createtask sub_80E1F8C, 2, 6, 4, 1, 4, 0, 12, 32351
+ createtask sub_80E1F8C, 2, 4, 1, 4, 0, 12, 32351
call _81D16FF
call _81D16FF
call _81D16FF
@@ -7162,9 +7162,9 @@ Move_PSYWAVE: @ 81D169C
call Unknown_81D61F3
end
_81D16FF:
- sprite gBattleAnimSpriteTemplate_83D9280, 131, 4, 10, 10, 0, 16
+ sprite gBattleAnimSpriteTemplate_83D9280, 131, 10, 10, 0, 16
pause 4
- sprite gBattleAnimSpriteTemplate_83D9280, 131, 4, 10, 10, 0, 16
+ sprite gBattleAnimSpriteTemplate_83D9280, 131, 10, 10, 0, 16
pause 4
ret
@@ -7172,17 +7172,17 @@ Move_ZAP_CANNON: @ 81D1722
loadsprite 10171
loadsprite 10011
panse_19 SE_W086, 192
- sprite gBattleAnimSpriteTemplate_83D9874, 131, 6, 10, 0, 0, 0, 30, 0
- sprite gBattleAnimSpriteTemplate_83D98A0, 132, 7, 10, 0, 16, 30, 0, 40, 0
- sprite gBattleAnimSpriteTemplate_83D98A0, 132, 7, 10, 0, 16, 30, 64, 40, 1
- sprite gBattleAnimSpriteTemplate_83D98A0, 132, 7, 10, 0, 16, 30, 128, 40, 0
- sprite gBattleAnimSpriteTemplate_83D98A0, 132, 7, 10, 0, 16, 30, 192, 40, 2
- sprite gBattleAnimSpriteTemplate_83D98A0, 132, 7, 10, 0, 8, 30, 32, 40, 0
- sprite gBattleAnimSpriteTemplate_83D98A0, 132, 7, 10, 0, 8, 30, 96, 40, 1
- sprite gBattleAnimSpriteTemplate_83D98A0, 132, 7, 10, 0, 8, 30, 160, 40, 0
- sprite gBattleAnimSpriteTemplate_83D98A0, 132, 7, 10, 0, 8, 30, 224, 40, 2
- wait
- createtask sub_80A7FA0, 2, 5, 1, 4, 0, 5, 1
+ sprite gBattleAnimSpriteTemplate_83D9874, 131, 10, 0, 0, 0, 30, 0
+ sprite gBattleAnimSpriteTemplate_83D98A0, 132, 10, 0, 16, 30, 0, 40, 0
+ sprite gBattleAnimSpriteTemplate_83D98A0, 132, 10, 0, 16, 30, 64, 40, 1
+ sprite gBattleAnimSpriteTemplate_83D98A0, 132, 10, 0, 16, 30, 128, 40, 0
+ sprite gBattleAnimSpriteTemplate_83D98A0, 132, 10, 0, 16, 30, 192, 40, 2
+ sprite gBattleAnimSpriteTemplate_83D98A0, 132, 10, 0, 8, 30, 32, 40, 0
+ sprite gBattleAnimSpriteTemplate_83D98A0, 132, 10, 0, 8, 30, 96, 40, 1
+ sprite gBattleAnimSpriteTemplate_83D98A0, 132, 10, 0, 8, 30, 160, 40, 0
+ sprite gBattleAnimSpriteTemplate_83D98A0, 132, 10, 0, 8, 30, 224, 40, 2
+ wait
+ createtask sub_80A7FA0, 2, 1, 4, 0, 5, 1
pause 15
panse_1D SE_W085B, 63, 19
call Unknown_81D6100
@@ -7193,24 +7193,24 @@ Move_STEEL_WING: @ 81D1807
loadsprite 10009
loadsprite 10135
panse_1C SE_W231, 192, 28, 2
- createtask sub_80E0A4C, 5, 3, 0, 0, 0
+ createtask sub_80E0A4C, 5, 0, 0, 0
wait
monbg 3
monbgprio_28 1
setalpha 12, 8
panse_1C SE_W017, 192, 20, 2
- createtask sub_80A8408, 2, 5, 0, 12, 4, 1, 4
- createtask sub_80DA09C, 5, 2, 1, 70
- sprite gBattleAnimSpriteTemplate_83DA3B4, 2, 5, -25, 0, 0, 0, 20
- sprite gBattleAnimSpriteTemplate_83DA3B4, 2, 5, 25, 0, 0, 0, 20
+ createtask sub_80A8408, 2, 0, 12, 4, 1, 4
+ createtask sub_80DA09C, 5, 1, 70
+ sprite gBattleAnimSpriteTemplate_83DA3B4, 2, -25, 0, 0, 0, 20
+ sprite gBattleAnimSpriteTemplate_83DA3B4, 2, 25, 0, 0, 0, 20
pause 24
- sprite gBattleAnimSpriteTemplate_83C1FF8, 2, 5, 0, 24, 0, 0, 9
+ sprite gBattleAnimSpriteTemplate_83C1FF8, 2, 0, 24, 0, 0, 9
pause 17
- sprite gBattleAnimSpriteTemplate_83DB4A8, 2, 4, 16, 0, 1, 1
- sprite gBattleAnimSpriteTemplate_83DB4A8, 2, 4, -16, 0, 1, 1
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 2, 16, 0, 1, 1
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 2, -16, 0, 1, 1
panse_19 SE_W013, 63
wait
- sprite gBattleAnimSpriteTemplate_83C1FE0, 2, 3, 0, 0, 11
+ sprite gBattleAnimSpriteTemplate_83C1FE0, 2, 0, 0, 11
wait
clearmonbg 3
blendoff
@@ -7219,17 +7219,17 @@ Move_STEEL_WING: @ 81D1807
Move_IRON_TAIL: @ 81D18B6
loadsprite 10135
panse_1C SE_W231, 192, 28, 2
- createtask sub_80E0A4C, 5, 3, 1, 0, 0
+ createtask sub_80E0A4C, 5, 1, 0, 0
wait
monbg 1
setalpha 12, 8
- sprite gBattleAnimSpriteTemplate_83C1FB0, 2, 2, 4, 4
+ sprite gBattleAnimSpriteTemplate_83C1FB0, 2, 4, 4
pause 6
- sprite gBattleAnimSpriteTemplate_83DB4A8, 130, 4, 0, 0, 1, 2
- createtask sub_80A7E7C, 2, 5, 1, 3, 0, 6, 1
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 130, 0, 0, 1, 2
+ createtask sub_80A7E7C, 2, 1, 3, 0, 6, 1
panse_19 SE_W233B, 63
wait
- createtask sub_80E0E24, 5, 2, 0, 1
+ createtask sub_80E0E24, 5, 0, 1
clearmonbg 1
blendoff
wait
@@ -7239,17 +7239,17 @@ Move_POISON_TAIL: @ 81D1914
loadsprite 10135
loadsprite 10150
panse_1C SE_W231, 192, 28, 2
- createtask sub_80E0A4C, 5, 3, 1, 1, 23768
+ createtask sub_80E0A4C, 5, 1, 1, 23768
wait
monbg 1
setalpha 12, 8
- sprite gBattleAnimSpriteTemplate_83C1FB0, 2, 2, 4, 4
+ sprite gBattleAnimSpriteTemplate_83C1FB0, 2, 4, 4
pause 6
- sprite gBattleAnimSpriteTemplate_83DB4A8, 130, 4, 0, 0, 1, 2
- createtask sub_80A7E7C, 2, 5, 1, 3, 0, 6, 1
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 130, 0, 0, 1, 2
+ createtask sub_80A7E7C, 2, 1, 3, 0, 6, 1
panse_19 SE_W233B, 63
wait
- createtask sub_80E0E24, 5, 2, 0, 1
+ createtask sub_80E0E24, 5, 0, 1
clearmonbg 1
blendoff
call Unknown_81D5F87
@@ -7259,21 +7259,21 @@ Move_POISON_TAIL: @ 81D1914
Move_METAL_CLAW: @ 81D197A
loadsprite 10039
panse_1C SE_W231, 192, 28, 2
- createtask sub_80E0A4C, 5, 3, 0, 0, 0
+ createtask sub_80E0A4C, 5, 0, 0, 0
wait
- sprite gBattleAnimSpriteTemplate_83C1FB0, 2, 2, 6, 4
+ sprite gBattleAnimSpriteTemplate_83C1FB0, 2, 6, 4
pause 2
panse_19 SE_W013, 63
- sprite gBattleAnimSpriteTemplate_83DB288, 130, 3, -10, -10, 0
- sprite gBattleAnimSpriteTemplate_83DB288, 130, 3, -10, 10, 0
- sprite gBattleAnimSpriteTemplate_83DB428, 2, 5, -4, 1, 10, 3, 1
+ sprite gBattleAnimSpriteTemplate_83DB288, 130, -10, -10, 0
+ sprite gBattleAnimSpriteTemplate_83DB288, 130, -10, 10, 0
+ sprite gBattleAnimSpriteTemplate_83DB428, 2, -4, 1, 10, 3, 1
pause 8
- sprite gBattleAnimSpriteTemplate_83C1FB0, 2, 2, 6, 4
+ sprite gBattleAnimSpriteTemplate_83C1FB0, 2, 6, 4
pause 2
panse_19 SE_W013, 63
- sprite gBattleAnimSpriteTemplate_83DB288, 130, 3, 10, -10, 1
- sprite gBattleAnimSpriteTemplate_83DB288, 130, 3, 10, 10, 1
- sprite gBattleAnimSpriteTemplate_83DB428, 2, 5, -4, 1, 10, 3, 1
+ sprite gBattleAnimSpriteTemplate_83DB288, 130, 10, -10, 1
+ sprite gBattleAnimSpriteTemplate_83DB288, 130, 10, 10, 1
+ sprite gBattleAnimSpriteTemplate_83DB428, 2, -4, 1, 10, 3, 1
wait
end
@@ -7285,10 +7285,10 @@ Move_NIGHT_SHADE: @ 81D1A0D
waitbgfadein
pause 10
panse_19 SE_W043, 192
- createtask sub_80DDDF0, 5, 1, 85
+ createtask sub_80DDDF0, 5, 85
pause 70
- createtask sub_80A7FA0, 2, 5, 1, 2, 0, 12, 1
- createtask sub_80E1F8C, 2, 6, 4, 0, 2, 0, 13, 0
+ createtask sub_80A7FA0, 2, 1, 2, 0, 12, 1
+ createtask sub_80E1F8C, 2, 4, 0, 2, 0, 13, 0
wait
clearmonbg 0
pause 1
@@ -7300,22 +7300,22 @@ Move_EGG_BOMB: @ 81D1A55
loadsprite 10198
loadsprite 10175
panse_19 SE_W039, 192
- sprite gBattleAnimSpriteTemplate_83D7594, 130, 6, 10, 0, 0, 0, 25, -32
+ sprite gBattleAnimSpriteTemplate_83D7594, 130, 10, 0, 0, 0, 25, -32
wait
- createtask sub_80A7FA0, 2, 5, 1, 4, 0, 16, 1
- sprite gBattleAnimSpriteTemplate_83D7828, 132, 4, 6, 5, 1, 0
+ createtask sub_80A7FA0, 2, 1, 4, 0, 16, 1
+ sprite gBattleAnimSpriteTemplate_83D7828, 132, 6, 5, 1, 0
panse_19 SE_W120, 63
pause 3
- sprite gBattleAnimSpriteTemplate_83D7828, 132, 4, -16, -15, 1, 0
+ sprite gBattleAnimSpriteTemplate_83D7828, 132, -16, -15, 1, 0
panse_19 SE_W120, 63
pause 3
- sprite gBattleAnimSpriteTemplate_83D7828, 132, 4, 16, -5, 1, 0
+ sprite gBattleAnimSpriteTemplate_83D7828, 132, 16, -5, 1, 0
panse_19 SE_W120, 63
pause 3
- sprite gBattleAnimSpriteTemplate_83D7828, 132, 4, -12, 18, 1, 0
+ sprite gBattleAnimSpriteTemplate_83D7828, 132, -12, 18, 1, 0
panse_19 SE_W120, 63
pause 3
- sprite gBattleAnimSpriteTemplate_83D7828, 132, 4, 0, 5, 1, 0
+ sprite gBattleAnimSpriteTemplate_83D7828, 132, 0, 5, 1, 0
panse_19 SE_W120, 63
pause 3
wait
@@ -7326,11 +7326,11 @@ Move_SHADOW_BALL: @ 81D1AEF
fadetobg 2
waitbgfadein
pause 15
- createtask_1F sub_812B058, 7, 168, -64, 63, 5, 5, 0, 5
- sprite gBattleAnimSpriteTemplate_83DAEA8, 130, 3, 16, 16, 8
+ createtask_1F sub_812B058, 168, -64, 63, 5, 5, 0, 5
+ sprite gBattleAnimSpriteTemplate_83DAEA8, 130, 16, 16, 8
wait
panse_19 SE_W028, 63
- createtask sub_80A7FA0, 2, 5, 1, 4, 0, 8, 1
+ createtask sub_80A7FA0, 2, 1, 4, 0, 8, 1
wait
restorebg
waitbgfadein
@@ -7340,8 +7340,8 @@ Move_LICK: @ 81D1B32
loadsprite 10177
pause 15
panse_19 SE_W122, 63
- sprite gBattleAnimSpriteTemplate_83DAEDC, 130, 2, 0, 0
- createtask sub_80A7FA0, 2, 5, 1, 1, 0, 16, 1
+ sprite gBattleAnimSpriteTemplate_83DAEDC, 130, 0, 0
+ createtask sub_80A7FA0, 2, 1, 1, 0, 16, 1
wait
end
@@ -7350,8 +7350,8 @@ Move_FOCUS_ENERGY: @ 81D1B59
panse_19 SE_W082, 192
call _81CBAC7
pause 8
- createtask sub_80E1F8C, 2, 6, 2, 2, 2, 0, 11, 32767
- createtask sub_80A7FA0, 2, 5, 0, 1, 0, 32, 1
+ createtask sub_80E1F8C, 2, 2, 2, 2, 0, 11, 32767
+ createtask sub_80A7FA0, 2, 0, 1, 0, 32, 1
call _81CBAC7
pause 8
call _81CBAC7
@@ -7363,8 +7363,8 @@ Move_BIDE: @ 81D1B99
end
_81D1BA3:
panse_1C SE_W036, 192, 9, 2
- createtask sub_80E1F8C, 2, 6, 2, 2, 2, 0, 11, 31
- createtask sub_80A7FA0, 2, 5, 0, 1, 0, 32, 1
+ createtask sub_80E1F8C, 2, 2, 2, 2, 0, 11, 31
+ createtask sub_80A7FA0, 2, 0, 1, 0, 32, 1
wait
end
_81D1BCF:
@@ -7372,26 +7372,26 @@ _81D1BCF:
monbg 3
setalpha 12, 8
panse_1C SE_W036, 192, 9, 2
- createtask sub_80E2A38, 10, 5, 2, 2, 0, 11, 31
- createtask sub_80A7FA0, 2, 5, 0, 1, 0, 32, 1
+ createtask sub_80E2A38, 10, 2, 2, 0, 11, 31
+ createtask sub_80A7FA0, 2, 0, 1, 0, 32, 1
wait
- sprite gBattleAnimSpriteTemplate_83C1FF8, 2, 5, 0, 24, 0, 0, 4
+ sprite gBattleAnimSpriteTemplate_83C1FF8, 2, 0, 24, 0, 0, 4
wait
- createtask sub_80A8154, 2, 5, 0, 2, 0, 12, 1
- createtask sub_80A7FA0, 2, 5, 1, 3, 0, 16, 1
+ createtask sub_80A8154, 2, 0, 2, 0, 12, 1
+ createtask sub_80A7FA0, 2, 1, 3, 0, 16, 1
panse_19 SE_W004, 63
- sprite gBattleAnimSpriteTemplate_83DB4A8, 1, 4, 18, -8, 1, 1
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 1, 18, -8, 1, 1
pause 5
panse_19 SE_W004, 63
- sprite gBattleAnimSpriteTemplate_83DB4A8, 1, 4, -18, 8, 1, 1
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 1, -18, 8, 1, 1
pause 5
panse_19 SE_W004, 63
- sprite gBattleAnimSpriteTemplate_83DB4A8, 1, 4, -8, -5, 1, 1
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 1, -8, -5, 1, 1
wait
pause 5
- sprite gBattleAnimSpriteTemplate_83C1FE0, 2, 3, 0, 0, 7
+ sprite gBattleAnimSpriteTemplate_83C1FE0, 2, 0, 0, 7
wait
- createtask sub_80E2A38, 10, 5, 2, 2, 11, 0, 31
+ createtask sub_80E2A38, 10, 2, 2, 11, 0, 31
wait
clearmonbg 3
blendoff
@@ -7402,7 +7402,7 @@ Move_STRING_SHOT: @ 81D1C98
loadsprite 10180
monbg 3
pause 0
- sprite gBattleAnimSpriteTemplate_83DB3C4, 5, 5, 1, 2, 0, 9, 0
+ sprite gBattleAnimSpriteTemplate_83DB3C4, 5, 1, 2, 0, 9, 0
wait
panse_1C SE_W081, 192, 9, 6
call _81D1D56
@@ -7425,19 +7425,19 @@ Move_STRING_SHOT: @ 81D1C98
call _81D1D56
wait
panse_19 SE_W081B, 63
- sprite gBattleAnimSpriteTemplate_83DAB40, 130, 2, 0, 10
+ sprite gBattleAnimSpriteTemplate_83DAB40, 130, 0, 10
pause 4
- sprite gBattleAnimSpriteTemplate_83DAB40, 130, 2, 0, -2
+ sprite gBattleAnimSpriteTemplate_83DAB40, 130, 0, -2
pause 4
- sprite gBattleAnimSpriteTemplate_83DAB40, 130, 2, 0, 22
+ sprite gBattleAnimSpriteTemplate_83DAB40, 130, 0, 22
wait
clearmonbg 3
pause 1
wait
- sprite gBattleAnimSpriteTemplate_83DB3C4, 5, 5, 1, 2, 9, 0, 0
+ sprite gBattleAnimSpriteTemplate_83DB3C4, 5, 1, 2, 9, 0, 0
end
_81D1D56:
- sprite gBattleAnimSpriteTemplate_83DAB28, 130, 5, 20, 0, 512, 20, 1
+ sprite gBattleAnimSpriteTemplate_83DAB28, 130, 20, 0, 512, 20, 1
pause 1
ret
@@ -7446,7 +7446,7 @@ Move_SPIDER_WEB: @ 81D1D6A
loadsprite 10180
monbg 3
pause 0
- sprite gBattleAnimSpriteTemplate_83DB3C4, 5, 5, 1, 2, 0, 9, 0
+ sprite gBattleAnimSpriteTemplate_83DB3C4, 5, 1, 2, 0, 9, 0
wait
monbgprio_28 1
panse_1C SE_W081, 192, 9, 6
@@ -7470,10 +7470,10 @@ Move_SPIDER_WEB: @ 81D1D6A
wait
clearmonbg 3
pause 1
- sprite gBattleAnimSpriteTemplate_83DB3C4, 5, 5, 1, 2, 9, 0, 0
+ sprite gBattleAnimSpriteTemplate_83DB3C4, 5, 1, 2, 9, 0, 0
end
_81D1DF7:
- sprite gBattleAnimSpriteTemplate_83DAB28, 130, 5, 20, 0, 512, 20, 0
+ sprite gBattleAnimSpriteTemplate_83DAB28, 130, 20, 0, 512, 20, 0
pause 1
ret
@@ -7485,9 +7485,9 @@ _81D1E14:
_81D1E16:
loadsprite 10009
panse_19 SE_W016, 192
- sprite gBattleAnimSpriteTemplate_83D765C, 2, 7, 32, 0, 16, 16, 0, 7, 40
- sprite gBattleAnimSpriteTemplate_83D765C, 2, 7, 32, 0, 16, 16, 85, 7, 40
- sprite gBattleAnimSpriteTemplate_83D765C, 2, 7, 32, 0, 16, 16, 170, 7, 40
+ sprite gBattleAnimSpriteTemplate_83D765C, 2, 32, 0, 16, 16, 0, 7, 40
+ sprite gBattleAnimSpriteTemplate_83D765C, 2, 32, 0, 16, 16, 85, 7, 40
+ sprite gBattleAnimSpriteTemplate_83D765C, 2, 32, 0, 16, 16, 170, 7, 40
wait
panse_19 SE_W016B, 192
jump _81D1E14
@@ -7497,17 +7497,17 @@ _81D1E66:
monbg 1
setalpha 12, 8
panse_19 SE_W013B, 192
- sprite gBattleAnimSpriteTemplate_83DA3E4, 2, 7, 14, 8, 0, 0, 22, 2, 1
+ sprite gBattleAnimSpriteTemplate_83DA3E4, 2, 14, 8, 0, 0, 22, 2, 1
pause 2
panse_19 SE_W013B, 192
- sprite gBattleAnimSpriteTemplate_83DA3E4, 2, 7, 14, -8, 16, 14, 22, 1, 1
+ sprite gBattleAnimSpriteTemplate_83DA3E4, 2, 14, -8, 16, 14, 22, 1, 1
pause 2
panse_19 SE_W013B, 192
- sprite gBattleAnimSpriteTemplate_83DA3E4, 2, 7, 14, 12, -16, -14, 22, 0, 1
+ sprite gBattleAnimSpriteTemplate_83DA3E4, 2, 14, 12, -16, -14, 22, 0, 1
pause 17
panse_19 SE_W013, 63
- createtask sub_80A7FA0, 2, 5, 1, 2, 0, 10, 1
- createtask sub_80A7FA0, 2, 5, 3, 2, 0, 10, 1
+ createtask sub_80A7FA0, 2, 1, 2, 0, 10, 1
+ createtask sub_80A7FA0, 2, 3, 2, 0, 10, 1
wait
clearmonbg 1
blendoff
@@ -7519,7 +7519,7 @@ Move_DISABLE: @ 81D1EF1
monbgprio_28 1
setalpha 8, 8
panse_19 SE_W197, 192
- sprite gBattleAnimSpriteTemplate_83930F4, 13, 2, 24, -16
+ sprite gBattleAnimSpriteTemplate_83930F4, 13, 24, -16
wait
createtask sub_80D03C4, 5
panse_1C SE_W020, 63, 15, 4
@@ -7535,7 +7535,7 @@ Move_RECOVER: @ 81D1F1F
monbg 2
setalpha 12, 8
panse_1C SE_W025, 192, 13, 3
- createtask sub_80E1F8C, 2, 6, 2, 0, 6, 0, 11, 12287
+ createtask sub_80E1F8C, 2, 2, 0, 6, 0, 11, 12287
call _81D1F5F
call _81D1F5F
call _81D1F5F
@@ -7547,19 +7547,19 @@ Move_RECOVER: @ 81D1F1F
wait
end
_81D1F5F:
- sprite gBattleAnimSpriteTemplate_83D62EC, 2, 3, 40, -10, 13
+ sprite gBattleAnimSpriteTemplate_83D62EC, 2, 40, -10, 13
pause 3
- sprite gBattleAnimSpriteTemplate_83D62EC, 2, 3, -35, -10, 13
+ sprite gBattleAnimSpriteTemplate_83D62EC, 2, -35, -10, 13
pause 3
- sprite gBattleAnimSpriteTemplate_83D62EC, 2, 3, 15, -40, 13
+ sprite gBattleAnimSpriteTemplate_83D62EC, 2, 15, -40, 13
pause 3
- sprite gBattleAnimSpriteTemplate_83D62EC, 2, 3, -10, -32, 13
+ sprite gBattleAnimSpriteTemplate_83D62EC, 2, -10, -32, 13
pause 3
- sprite gBattleAnimSpriteTemplate_83D62EC, 2, 3, 25, -20, 13
+ sprite gBattleAnimSpriteTemplate_83D62EC, 2, 25, -20, 13
pause 3
- sprite gBattleAnimSpriteTemplate_83D62EC, 2, 3, -40, -20, 13
+ sprite gBattleAnimSpriteTemplate_83D62EC, 2, -40, -20, 13
pause 3
- sprite gBattleAnimSpriteTemplate_83D62EC, 2, 3, 5, -40, 13
+ sprite gBattleAnimSpriteTemplate_83D62EC, 2, 5, -40, 13
pause 3
ret
@@ -7568,14 +7568,14 @@ Move_MIMIC: @ 81D1FC9
monbg_22 3
setalpha 11, 5
panse_1B SE_W107, 63, 192, 253, 0
- createtask sub_80CB340, 5, 2, 128, 24
+ createtask sub_80CB340, 5, 128, 24
pause 15
- sprite gBattleAnimSpriteTemplate_83D65E8, 130, 2, -12, 24
+ sprite gBattleAnimSpriteTemplate_83D65E8, 130, -12, 24
pause 10
setvar 7, -1
wait
panse_19 SE_W036, 192
- createtask sub_80E1F8C, 2, 6, 2, 0, 2, 0, 11, 32767
+ createtask sub_80E1F8C, 2, 2, 0, 2, 0, 11, 32767
wait
clearmonbg_23 3
blendoff
@@ -7584,14 +7584,14 @@ Move_MIMIC: @ 81D1FC9
Move_CONSTRICT: @ 81D2013
loadsprite 10186
panse_1C SE_W010, 63, 6, 4
- sprite gBattleAnimSpriteTemplate_83D65A0, 132, 4, 0, 16, 0, 2
+ sprite gBattleAnimSpriteTemplate_83D65A0, 132, 0, 16, 0, 2
pause 7
- sprite gBattleAnimSpriteTemplate_83D65A0, 131, 4, 0, 0, 0, 2
- sprite gBattleAnimSpriteTemplate_83D65A0, 130, 4, 0, 8, 1, 2
+ sprite gBattleAnimSpriteTemplate_83D65A0, 131, 0, 0, 0, 2
+ sprite gBattleAnimSpriteTemplate_83D65A0, 130, 0, 8, 1, 2
pause 7
- sprite gBattleAnimSpriteTemplate_83D65A0, 131, 4, 0, -8, 1, 2
+ sprite gBattleAnimSpriteTemplate_83D65A0, 131, 0, -8, 1, 2
pause 8
- createtask sub_80A7FA0, 2, 5, 1, 3, 0, 6, 1
+ createtask sub_80A7FA0, 2, 1, 3, 0, 6, 1
pause 20
panse_19 SE_W020, 63
setvar 7, -1
@@ -7620,18 +7620,18 @@ _81D2084:
monbg 3
panse_19 SE_W171, 63
sprite gBattleAnimSpriteTemplate_83DAF38, 130
- createtask sub_80A7FA0, 2, 5, 1, 2, 0, 14, 1
+ createtask sub_80A7FA0, 2, 1, 2, 0, 14, 1
wait
- sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 5, 1, 1, 16, 0, 0
+ sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 1, 1, 16, 0, 0
wait
clearmonbg 3
end
_81D20EB:
- createtask sub_80A7FA0, 2, 5, 0, 4, 0, 10, 0
+ createtask sub_80A7FA0, 2, 0, 4, 0, 10, 0
panse_19 SE_W020, 192
ret
_81D2101:
- createtask sub_80A8B88, 5, 5, 0, 10, 1536, 3, 0
+ createtask sub_80A8B88, 5, 0, 10, 1536, 3, 0
wait
pause 10
call _81D211C
@@ -7640,7 +7640,7 @@ _81D2101:
_81D211C:
panse_19 SE_W082, 192
createtask sub_80E2F2C, 5
- createtask sub_80E1F8C, 5, 6, 2, 4, 2, 0, 10, 31
+ createtask sub_80E1F8C, 5, 2, 4, 2, 0, 10, 31
ret
Move_SOFT_BOILED: @ 81D213B
@@ -7649,16 +7649,16 @@ Move_SOFT_BOILED: @ 81D213B
loadsprite 10031
monbg 2
panse_19 SE_W039, 192
- createtask sub_80A7E7C, 2, 5, 0, 0, 2, 6, 1
- sprite gBattleAnimSpriteTemplate_83D78BC, 4, 3, 0, 16, 0
- sprite gBattleAnimSpriteTemplate_83D78BC, 4, 3, 0, 16, 1
+ createtask sub_80A7E7C, 2, 0, 0, 2, 6, 1
+ sprite gBattleAnimSpriteTemplate_83D78BC, 4, 0, 16, 0
+ sprite gBattleAnimSpriteTemplate_83D78BC, 4, 0, 16, 1
pause 120
pause 7
panse_19 SE_W030, 192
- sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 5, 31, 3, 10, 0, 31500
- sprite gBattleAnimSpriteTemplate_83D7928, 3, 4, 31, 16, 0, 1
+ sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 31, 3, 10, 0, 31500
+ sprite gBattleAnimSpriteTemplate_83D7928, 3, 31, 16, 0, 1
pause 8
- sprite gBattleAnimSpriteTemplate_83D7928, 3, 4, 31, 16, 0, 1
+ sprite gBattleAnimSpriteTemplate_83D7928, 3, 31, 16, 0, 1
pause 60
setvar 7, -1
wait
@@ -7671,45 +7671,45 @@ Move_HEAL_BELL: @ 81D21BD
loadsprite 10206
loadsprite 10203
loadsprite 10049
- createtask sub_80E2A38, 10, 5, 10, 0, 0, 10, 32767
+ createtask sub_80E2A38, 10, 10, 0, 0, 10, 32767
wait
createtask sub_80D1ADC, 5
- sprite gBattleAnimSpriteTemplate_83D7A44, 2, 4, 0, -24, 0, 1
+ sprite gBattleAnimSpriteTemplate_83D7A44, 2, 0, -24, 0, 1
pause 12
- sprite gBattleAnimSpriteTemplate_83D7A68, 40, 7, 0, -24, 48, -18, 35, 0, 0
- sprite gBattleAnimSpriteTemplate_83D7A68, 40, 7, 0, -24, -48, 20, 30, 1, 1
- sprite gBattleAnimSpriteTemplate_83D7A68, 40, 7, 0, -24, -38, -29, 30, 2, 2
- sprite gBattleAnimSpriteTemplate_83D7A68, 40, 7, 0, -24, 36, 18, 30, 3, 3
+ sprite gBattleAnimSpriteTemplate_83D7A68, 40, 0, -24, 48, -18, 35, 0, 0
+ sprite gBattleAnimSpriteTemplate_83D7A68, 40, 0, -24, -48, 20, 30, 1, 1
+ sprite gBattleAnimSpriteTemplate_83D7A68, 40, 0, -24, -38, -29, 30, 2, 2
+ sprite gBattleAnimSpriteTemplate_83D7A68, 40, 0, -24, 36, 18, 30, 3, 3
call _81D2372
pause 33
- sprite gBattleAnimSpriteTemplate_83D7A68, 40, 7, 0, -24, 19, 26, 35, 4, 4
- sprite gBattleAnimSpriteTemplate_83D7A68, 40, 7, 0, -24, -34, -12, 30, 5, 5
- sprite gBattleAnimSpriteTemplate_83D7A68, 40, 7, 0, -24, 41, -20, 34, 6, 6
- sprite gBattleAnimSpriteTemplate_83D7A68, 40, 7, 0, -24, -15, 26, 32, 7, 0
+ sprite gBattleAnimSpriteTemplate_83D7A68, 40, 0, -24, 19, 26, 35, 4, 4
+ sprite gBattleAnimSpriteTemplate_83D7A68, 40, 0, -24, -34, -12, 30, 5, 5
+ sprite gBattleAnimSpriteTemplate_83D7A68, 40, 0, -24, 41, -20, 34, 6, 6
+ sprite gBattleAnimSpriteTemplate_83D7A68, 40, 0, -24, -15, 26, 32, 7, 0
call _81D2372
pause 33
- sprite gBattleAnimSpriteTemplate_83D7A68, 40, 7, 0, -24, -48, 18, 31, 0, 2
- sprite gBattleAnimSpriteTemplate_83D7A68, 40, 7, 0, -24, 48, -20, 30, 2, 5
- sprite gBattleAnimSpriteTemplate_83D7A68, 40, 7, 0, -24, 38, 29, 33, 4, 3
- sprite gBattleAnimSpriteTemplate_83D7A68, 40, 7, 0, -24, -36, -18, 30, 6, 1
+ sprite gBattleAnimSpriteTemplate_83D7A68, 40, 0, -24, -48, 18, 31, 0, 2
+ sprite gBattleAnimSpriteTemplate_83D7A68, 40, 0, -24, 48, -20, 30, 2, 5
+ sprite gBattleAnimSpriteTemplate_83D7A68, 40, 0, -24, 38, 29, 33, 4, 3
+ sprite gBattleAnimSpriteTemplate_83D7A68, 40, 0, -24, -36, -18, 30, 6, 1
call _81D2372
wait
createtask sub_80D1B80, 5
wait
panse_19 SE_W234, 192
- sprite gBattleAnimSpriteTemplate_83D6CA0, 16, 7, -15, 0, 0, 0, 32, 60, 1
+ sprite gBattleAnimSpriteTemplate_83D6CA0, 16, -15, 0, 0, 0, 32, 60, 1
pause 8
- sprite gBattleAnimSpriteTemplate_83D6CA0, 16, 7, 12, -5, 0, 0, 32, 60, 1
+ sprite gBattleAnimSpriteTemplate_83D6CA0, 16, 12, -5, 0, 0, 32, 60, 1
wait
panse_19 SE_REAPOKE, 192
- createtask sub_80E2A7C, 10, 5, 4, 3, 10, 0, 31500
- createtask sub_80E2A38, 10, 5, 10, 3, 10, 0, 32767
- sprite gBattleAnimSpriteTemplate_83D7974, 16, 4, 0, 0, 0, 1
+ createtask sub_80E2A7C, 10, 4, 3, 10, 0, 31500
+ createtask sub_80E2A38, 10, 10, 3, 10, 0, 32767
+ sprite gBattleAnimSpriteTemplate_83D7974, 16, 0, 0, 0, 1
end
_81D2372:
- createtask sub_80E2A7C, 10, 5, 4, 3, 8, 0, 31500
- createtask sub_80E2A38, 10, 5, 10, 3, 2, 10, 32767
- sprite gBattleAnimSpriteTemplate_83D7928, 40, 4, 0, -24, 0, 1
+ createtask sub_80E2A7C, 10, 4, 3, 8, 0, 31500
+ createtask sub_80E2A38, 10, 10, 3, 2, 10, 32767
+ sprite gBattleAnimSpriteTemplate_83D7928, 40, 0, -24, 0, 1
panse_19 SE_W215, 192
ret
@@ -7718,102 +7718,102 @@ Move_FAKE_OUT: @ 81D23A8
createtask sub_80D1CD0, 5
wait
panse_19 SE_W166, 63
- createtask sub_80A7FA0, 2, 5, 1, 4, 0, 5, 1
+ createtask sub_80A7FA0, 2, 1, 4, 0, 5, 1
createtask sub_80D1E38, 3
wait
- sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 5, 1, 3, 16, 0, 32767
+ sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 1, 3, 16, 0, 32767
end
Move_SCARY_FACE: @ 81D23E3
loadsprite 10218
- sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 5, 27, 3, 0, 16, 0
+ sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 27, 3, 0, 16, 0
panse_19 SE_W060, 192
wait
pause 10
panse_19 SE_W043, 192
createtask sub_80D23B4, 5
pause 13
- sprite gBattleAnimSpriteTemplate_83D7B94, 0, 2, -16, -8
- sprite gBattleAnimSpriteTemplate_83D7B94, 0, 2, 16, -8
+ sprite gBattleAnimSpriteTemplate_83D7B94, 0, -16, -8
+ sprite gBattleAnimSpriteTemplate_83D7B94, 0, 16, -8
wait
- createtask sub_80D60B4, 3, 3, 20, 1, 0
+ createtask sub_80D60B4, 3, 20, 1, 0
panse_19 SE_W081B, 63
- sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 5, 27, 3, 16, 0, 0
+ sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 27, 3, 16, 0, 0
wait
end
Move_SWEET_KISS: @ 81D2446
loadsprite 10216
loadsprite 10220
- sprite gBattleAnimSpriteTemplate_83D7BB8, 130, 2, 16, -48
+ sprite gBattleAnimSpriteTemplate_83D7BB8, 130, 16, -48
panse_19 SE_W215, 63
pause 23
panse_19 SE_W215, 63
pause 23
panse_19 SE_W215, 63
wait
- sprite gBattleAnimSpriteTemplate_83D7AC8, 131, 2, 160, -30
+ sprite gBattleAnimSpriteTemplate_83D7AC8, 131, 160, -30
panse_19 SE_W213, 63
- sprite gBattleAnimSpriteTemplate_83D7AC8, 131, 2, -256, -42
- sprite gBattleAnimSpriteTemplate_83D7AC8, 131, 2, 128, -14
- sprite gBattleAnimSpriteTemplate_83D7AC8, 131, 2, 416, -38
- sprite gBattleAnimSpriteTemplate_83D7AC8, 131, 2, -128, -22
- sprite gBattleAnimSpriteTemplate_83D7AC8, 131, 2, -384, -31
+ sprite gBattleAnimSpriteTemplate_83D7AC8, 131, -256, -42
+ sprite gBattleAnimSpriteTemplate_83D7AC8, 131, 128, -14
+ sprite gBattleAnimSpriteTemplate_83D7AC8, 131, 416, -38
+ sprite gBattleAnimSpriteTemplate_83D7AC8, 131, -128, -22
+ sprite gBattleAnimSpriteTemplate_83D7AC8, 131, -384, -31
end
Move_LOVELY_KISS: @ 81D24AF
loadsprite 10219
loadsprite 10221
- sprite gBattleAnimSpriteTemplate_83D7C00, 130, 2, 0, -24
+ sprite gBattleAnimSpriteTemplate_83D7C00, 130, 0, -24
panse_19 SE_W060B, 63
wait
panse_19 SE_W213, 63
- sprite gBattleAnimSpriteTemplate_83D7BD0, 131, 2, -256, -42
- sprite gBattleAnimSpriteTemplate_83D7BD0, 131, 2, 128, -14
- sprite gBattleAnimSpriteTemplate_83D7BD0, 131, 2, 416, -38
- sprite gBattleAnimSpriteTemplate_83D7BD0, 131, 2, -128, -22
+ sprite gBattleAnimSpriteTemplate_83D7BD0, 131, -256, -42
+ sprite gBattleAnimSpriteTemplate_83D7BD0, 131, 128, -14
+ sprite gBattleAnimSpriteTemplate_83D7BD0, 131, 416, -38
+ sprite gBattleAnimSpriteTemplate_83D7BD0, 131, -128, -22
end
Move_FURY_SWIPES: @ 81D24F6
loadsprite 10222
- sprite gBattleAnimSpriteTemplate_83C1FB0, 2, 2, 5, 5
+ sprite gBattleAnimSpriteTemplate_83C1FB0, 2, 5, 5
pause 4
panse_19 SE_W010, 63
- sprite gBattleAnimSpriteTemplate_83D7C48, 130, 3, 16, 0, 1
- createtask sub_80A7FA0, 2, 5, 1, 3, 0, 5, 1
+ sprite gBattleAnimSpriteTemplate_83D7C48, 130, 16, 0, 1
+ createtask sub_80A7FA0, 2, 1, 3, 0, 5, 1
pause 10
- sprite gBattleAnimSpriteTemplate_83C1FB0, 130, 2, 5, 5
+ sprite gBattleAnimSpriteTemplate_83C1FB0, 130, 5, 5
pause 4
panse_19 SE_W010, 63
- sprite gBattleAnimSpriteTemplate_83D7C48, 130, 3, -16, 0, 0
- createtask sub_80A7FA0, 2, 5, 1, 4, 0, 7, 1
+ sprite gBattleAnimSpriteTemplate_83D7C48, 130, -16, 0, 0
+ createtask sub_80A7FA0, 2, 1, 4, 0, 7, 1
end
Move_INGRAIN: @ 81D255A
loadsprite 10223
loadsprite 10147
- sprite gBattleAnimSpriteTemplate_83D6658, 2, 5, 16, 26, -1, 2, 150
+ sprite gBattleAnimSpriteTemplate_83D6658, 2, 16, 26, -1, 2, 150
panse_19 SE_W010, 192
pause 10
- sprite gBattleAnimSpriteTemplate_83D6658, 2, 5, -32, 20, 1, 1, 140
+ sprite gBattleAnimSpriteTemplate_83D6658, 2, -32, 20, 1, 1, 140
panse_19 SE_W010, 192
pause 10
- sprite gBattleAnimSpriteTemplate_83D6658, 2, 5, 32, 22, 1, 0, 130
+ sprite gBattleAnimSpriteTemplate_83D6658, 2, 32, 22, 1, 0, 130
panse_19 SE_W010, 192
pause 10
- sprite gBattleAnimSpriteTemplate_83D6658, 2, 5, -16, 25, -1, 3, 120
+ sprite gBattleAnimSpriteTemplate_83D6658, 2, -16, 25, -1, 3, 120
panse_19 SE_W010, 192
pause 40
- sprite gBattleAnimSpriteTemplate_83D6698, 3, 5, 32, 26, -1, 3, 30
+ sprite gBattleAnimSpriteTemplate_83D6698, 3, 32, 26, -1, 3, 30
pause 5
panse_19 SE_W145C, 192
pause 5
- sprite gBattleAnimSpriteTemplate_83D6698, 3, 5, -48, 20, 1, 2, 30
+ sprite gBattleAnimSpriteTemplate_83D6698, 3, -48, 20, 1, 2, 30
panse_19 SE_W145C, 192
pause 5
panse_19 SE_W145C, 192
pause 5
- sprite gBattleAnimSpriteTemplate_83D6698, 3, 5, 48, 26, -2, 3, 18
+ sprite gBattleAnimSpriteTemplate_83D6698, 3, 48, 26, -2, 3, 18
panse_19 SE_W145C, 192
pause 10
wait
@@ -7822,7 +7822,7 @@ Move_INGRAIN: @ 81D255A
Move_PRESENT: @ 81D260B
loadsprite 10224
createtask sub_812C960, 2
- sprite gBattleAnimSpriteTemplate_83D671C, 130, 5, 0, -5, 10, 2, -1
+ sprite gBattleAnimSpriteTemplate_83D671C, 130, 0, -5, 10, 2, -1
panse_19 SE_W039, 192
pause 14
panse_19 SE_W145B, 192
@@ -7837,41 +7837,41 @@ Move_PRESENT: @ 81D260B
_81D264E:
loadsprite 10198
panse_19 SE_W120, 63
- sprite gBattleAnimSpriteTemplate_83D7828, 131, 4, 0, 0, 1, 1
+ sprite gBattleAnimSpriteTemplate_83D7828, 131, 0, 0, 1, 1
pause 6
panse_19 SE_W120, 63
- sprite gBattleAnimSpriteTemplate_83D7828, 131, 4, 24, -24, 1, 1
+ sprite gBattleAnimSpriteTemplate_83D7828, 131, 24, -24, 1, 1
pause 6
panse_19 SE_W120, 63
- sprite gBattleAnimSpriteTemplate_83D7828, 131, 4, -16, 16, 1, 1
+ sprite gBattleAnimSpriteTemplate_83D7828, 131, -16, 16, 1, 1
pause 6
panse_19 SE_W120, 63
- sprite gBattleAnimSpriteTemplate_83D7828, 131, 4, -24, -12, 1, 1
+ sprite gBattleAnimSpriteTemplate_83D7828, 131, -24, -12, 1, 1
pause 6
panse_19 SE_W120, 63
- sprite gBattleAnimSpriteTemplate_83D7828, 131, 4, 16, 16, 1, 1
+ sprite gBattleAnimSpriteTemplate_83D7828, 131, 16, 16, 1, 1
end
_81D26B9:
loadsprite 10195
loadsprite 10031
panse_19 SE_W234, 63
- sprite gBattleAnimSpriteTemplate_83D6764, 132, 4, -16, 32, -3, 1
+ sprite gBattleAnimSpriteTemplate_83D6764, 132, -16, 32, -3, 1
pause 3
- sprite gBattleAnimSpriteTemplate_83D6764, 132, 4, 16, 32, -3, -1
+ sprite gBattleAnimSpriteTemplate_83D6764, 132, 16, 32, -3, -1
pause 3
- sprite gBattleAnimSpriteTemplate_83D6764, 132, 4, 32, 32, -3, 1
+ sprite gBattleAnimSpriteTemplate_83D6764, 132, 32, 32, -3, 1
pause 3
- sprite gBattleAnimSpriteTemplate_83D6764, 132, 4, -32, 32, -3, 1
+ sprite gBattleAnimSpriteTemplate_83D6764, 132, -32, 32, -3, 1
pause 3
- sprite gBattleAnimSpriteTemplate_83D6764, 132, 4, 0, 32, -3, 1
+ sprite gBattleAnimSpriteTemplate_83D6764, 132, 0, 32, -3, 1
pause 3
- sprite gBattleAnimSpriteTemplate_83D6764, 132, 4, -8, 32, -3, 1
+ sprite gBattleAnimSpriteTemplate_83D6764, 132, -8, 32, -3, 1
pause 3
- sprite gBattleAnimSpriteTemplate_83D6764, 132, 4, -8, 32, -3, 1
+ sprite gBattleAnimSpriteTemplate_83D6764, 132, -8, 32, -3, 1
pause 3
- sprite gBattleAnimSpriteTemplate_83D6764, 132, 4, 24, 32, -3, 1
+ sprite gBattleAnimSpriteTemplate_83D6764, 132, 24, 32, -3, 1
pause 3
- sprite gBattleAnimSpriteTemplate_83D6764, 132, 4, -24, 32, -3, 1
+ sprite gBattleAnimSpriteTemplate_83D6764, 132, -24, 32, -3, 1
wait
waitsound
call Unknown_81D5F3E
@@ -7880,70 +7880,70 @@ _81D26B9:
Move_BATON_PASS: @ 81D2762
loadsprite 10226
panse_19 SE_W226, 192
- createtask sub_80E1F8C, 2, 6, 31, 1, 2, 0, 11, 31455
+ createtask sub_80E1F8C, 2, 31, 1, 2, 0, 11, 31455
sprite gBattleAnimSpriteTemplate_84024D0, 2
end
Move_PERISH_SONG: @ 81D2784
loadsprite 10206
- sprite gBattleAnimSpriteTemplate_83D7D1C, 4, 3, 0, 0, 0
- sprite gBattleAnimSpriteTemplate_83D7D1C, 4, 3, 1, 1, 16
- sprite gBattleAnimSpriteTemplate_83D7D1C, 4, 3, 2, 1, 32
- sprite gBattleAnimSpriteTemplate_83D7D1C, 4, 3, 3, 2, 48
- sprite gBattleAnimSpriteTemplate_83D7D1C, 4, 3, 4, 2, 64
- sprite gBattleAnimSpriteTemplate_83D7D1C, 4, 3, 5, 0, 80
- sprite gBattleAnimSpriteTemplate_83D7D1C, 4, 3, 6, 0, 96
- sprite gBattleAnimSpriteTemplate_83D7D1C, 4, 3, 7, 1, 112
- sprite gBattleAnimSpriteTemplate_83D7D1C, 4, 3, 8, 2, 128
- sprite gBattleAnimSpriteTemplate_83D7D1C, 4, 3, 9, 0, 144
- sprite gBattleAnimSpriteTemplate_83D7D1C, 4, 3, 10, 2, 160
- sprite gBattleAnimSpriteTemplate_83D7D1C, 4, 3, 11, 0, 176
- sprite gBattleAnimSpriteTemplate_83D7D1C, 4, 3, 12, 1, 192
- sprite gBattleAnimSpriteTemplate_83D7D1C, 4, 3, 13, 3, 208
- sprite gBattleAnimSpriteTemplate_83D7D1C, 4, 3, 14, 3, 224
- sprite gBattleAnimSpriteTemplate_83D7D1C, 4, 3, 15, 0, 240
- sprite gBattleAnimSpriteTemplate_83D7D34, 4, 3, 15, 0, 0
+ sprite gBattleAnimSpriteTemplate_83D7D1C, 4, 0, 0, 0
+ sprite gBattleAnimSpriteTemplate_83D7D1C, 4, 1, 1, 16
+ sprite gBattleAnimSpriteTemplate_83D7D1C, 4, 2, 1, 32
+ sprite gBattleAnimSpriteTemplate_83D7D1C, 4, 3, 2, 48
+ sprite gBattleAnimSpriteTemplate_83D7D1C, 4, 4, 2, 64
+ sprite gBattleAnimSpriteTemplate_83D7D1C, 4, 5, 0, 80
+ sprite gBattleAnimSpriteTemplate_83D7D1C, 4, 6, 0, 96
+ sprite gBattleAnimSpriteTemplate_83D7D1C, 4, 7, 1, 112
+ sprite gBattleAnimSpriteTemplate_83D7D1C, 4, 8, 2, 128
+ sprite gBattleAnimSpriteTemplate_83D7D1C, 4, 9, 0, 144
+ sprite gBattleAnimSpriteTemplate_83D7D1C, 4, 10, 2, 160
+ sprite gBattleAnimSpriteTemplate_83D7D1C, 4, 11, 0, 176
+ sprite gBattleAnimSpriteTemplate_83D7D1C, 4, 12, 1, 192
+ sprite gBattleAnimSpriteTemplate_83D7D1C, 4, 13, 3, 208
+ sprite gBattleAnimSpriteTemplate_83D7D1C, 4, 14, 3, 224
+ sprite gBattleAnimSpriteTemplate_83D7D1C, 4, 15, 0, 240
+ sprite gBattleAnimSpriteTemplate_83D7D34, 4, 15, 0, 0
pause 20
panse_1B SE_W195, 192, 63, 2, 0
pause 80
- sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 5, 1, 3, 0, 16, 0
- createtask sub_80E0E24, 5, 2, 4, 0
- createtask sub_80E0E24, 5, 2, 5, 0
- createtask sub_80E0E24, 5, 2, 6, 0
- createtask sub_80E0E24, 5, 2, 7, 0
+ sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 1, 3, 0, 16, 0
+ createtask sub_80E0E24, 5, 4, 0
+ createtask sub_80E0E24, 5, 5, 0
+ createtask sub_80E0E24, 5, 6, 0
+ createtask sub_80E0E24, 5, 7, 0
pause 100
- sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 5, 1, 3, 16, 0, 0
- createtask sub_80E0E24, 5, 2, 4, 1
- createtask sub_80E0E24, 5, 2, 5, 1
- createtask sub_80E0E24, 5, 2, 6, 1
- createtask sub_80E0E24, 5, 2, 7, 1
+ sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 1, 3, 16, 0, 0
+ createtask sub_80E0E24, 5, 4, 1
+ createtask sub_80E0E24, 5, 5, 1
+ createtask sub_80E0E24, 5, 6, 1
+ createtask sub_80E0E24, 5, 7, 1
wait
end
Move_SLEEP_TALK: @ 81D28ED
loadsprite 10228
- createtask sub_80A8B88, 5, 5, 0, 4, 4096, 2, 0
+ createtask sub_80A8B88, 5, 0, 4, 4096, 2, 0
pause 20
- sprite gBattleAnimSpriteTemplate_84022F0, 130, 4, 0, 20, 5, -1
+ sprite gBattleAnimSpriteTemplate_84022F0, 130, 0, 20, 5, -1
panse_19 SE_W173, 192
pause 6
- sprite gBattleAnimSpriteTemplate_84022F0, 130, 4, 0, 20, 5, -1
+ sprite gBattleAnimSpriteTemplate_84022F0, 130, 0, 20, 5, -1
pause 6
- sprite gBattleAnimSpriteTemplate_84022F0, 130, 4, 0, 20, 5, -1
+ sprite gBattleAnimSpriteTemplate_84022F0, 130, 0, 20, 5, -1
pause 20
- sprite gBattleAnimSpriteTemplate_84022F0, 130, 4, 0, 20, 5, -5
+ sprite gBattleAnimSpriteTemplate_84022F0, 130, 0, 20, 5, -5
panse_19 SE_W173, 192
pause 6
- sprite gBattleAnimSpriteTemplate_84022F0, 130, 4, 0, 20, 5, -5
+ sprite gBattleAnimSpriteTemplate_84022F0, 130, 0, 20, 5, -5
pause 6
- sprite gBattleAnimSpriteTemplate_84022F0, 130, 4, 0, 20, 5, -5
+ sprite gBattleAnimSpriteTemplate_84022F0, 130, 0, 20, 5, -5
pause 20
- sprite gBattleAnimSpriteTemplate_84022F0, 130, 4, 0, 20, 5, -3
+ sprite gBattleAnimSpriteTemplate_84022F0, 130, 0, 20, 5, -3
panse_19 SE_W173, 192
pause 6
- sprite gBattleAnimSpriteTemplate_84022F0, 130, 4, 0, 20, 5, -3
+ sprite gBattleAnimSpriteTemplate_84022F0, 130, 0, 20, 5, -3
pause 6
- sprite gBattleAnimSpriteTemplate_84022F0, 130, 4, 0, 20, 5, -3
+ sprite gBattleAnimSpriteTemplate_84022F0, 130, 0, 20, 5, -3
wait
end
@@ -7961,7 +7961,7 @@ _81D29D6:
waitbgfadeout
sprite gBattleAnimSpriteTemplate_840233C, 130
waitbgfadein
- createtask sub_80A7E7C, 3, 5, 1, 0, 10, 10, 1
+ createtask sub_80A7E7C, 3, 1, 0, 10, 10, 1
panse_19 SE_W043, 63
pause 20
restorebg
@@ -7980,50 +7980,50 @@ _81D2A08:
Move_TRI_ATTACK: @ 81D2A0F
loadsprite 10230
- sprite gBattleAnimSpriteTemplate_8402458, 130, 2, 16, 0
+ sprite gBattleAnimSpriteTemplate_8402458, 130, 16, 0
panse_19 SE_W161, 192
pause 20
panse_19 SE_W161, 192
pause 20
- createtask_1F sub_812B058, 7, 220, -64, 63, 5, 6, 0, 7
+ createtask_1F sub_812B058, 220, -64, 63, 5, 6, 0, 7
wait
- sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 5, 1, 2, 0, 16, 0
+ sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 1, 2, 0, 16, 0
pause 16
loadsprite 10033
- sprite gBattleAnimSpriteTemplate_83D9520, 130, 6, 0, 0, 30, 30, -1, 0
+ sprite gBattleAnimSpriteTemplate_83D9520, 130, 0, 0, 30, 30, -1, 0
panse_19 SE_W172B, 63
- sprite gBattleAnimSpriteTemplate_83D9520, 130, 6, 0, 0, 30, 30, 0, 1
+ sprite gBattleAnimSpriteTemplate_83D9520, 130, 0, 0, 30, 30, 0, 1
pause 1
- sprite gBattleAnimSpriteTemplate_83D9520, 130, 6, 0, 0, 30, 30, -1, -1
+ sprite gBattleAnimSpriteTemplate_83D9520, 130, 0, 0, 30, 30, -1, -1
pause 1
- sprite gBattleAnimSpriteTemplate_83D9520, 130, 6, 0, 0, 30, 30, 2, 1
+ sprite gBattleAnimSpriteTemplate_83D9520, 130, 0, 0, 30, 30, 2, 1
pause 1
- sprite gBattleAnimSpriteTemplate_83D9520, 130, 6, 0, 0, 30, 30, 1, -1
+ sprite gBattleAnimSpriteTemplate_83D9520, 130, 0, 0, 30, 30, 1, -1
pause 1
- sprite gBattleAnimSpriteTemplate_83D9520, 130, 6, 0, 0, 30, 30, -1, 1
+ sprite gBattleAnimSpriteTemplate_83D9520, 130, 0, 0, 30, 30, -1, 1
pause 1
- sprite gBattleAnimSpriteTemplate_83D9520, 130, 6, 0, 0, 30, 30, 1, -2
+ sprite gBattleAnimSpriteTemplate_83D9520, 130, 0, 0, 30, 30, 1, -2
pause 1
- sprite gBattleAnimSpriteTemplate_83D9520, 130, 6, 0, 0, 30, 30, 3, 1
+ sprite gBattleAnimSpriteTemplate_83D9520, 130, 0, 0, 30, 30, 3, 1
pause 2
- createtask sub_80D60B4, 2, 4, 20, 3, 1, 1
+ createtask sub_80D60B4, 2, 20, 3, 1, 1
wait
loadsprite 10037
- createtask sub_80E2324, 2, 3, 257, 257, 257
+ createtask sub_80E2324, 2, 257, 257, 257
panse_19 SE_W161B, 63
- sprite gBattleAnimSpriteTemplate_83D97D0, 130, 2, 0, -48
+ sprite gBattleAnimSpriteTemplate_83D97D0, 130, 0, -48
pause 1
- sprite gBattleAnimSpriteTemplate_83D97D0, 130, 2, 0, -16
+ sprite gBattleAnimSpriteTemplate_83D97D0, 130, 0, -16
pause 1
- sprite gBattleAnimSpriteTemplate_83D97D0, 130, 2, 0, 16
+ sprite gBattleAnimSpriteTemplate_83D97D0, 130, 0, 16
pause 20
- createtask sub_80D60B4, 2, 4, 20, 3, 1, 0
+ createtask sub_80D60B4, 2, 20, 3, 1, 0
pause 2
- createtask sub_80E2324, 2, 3, 257, 257, 257
+ createtask sub_80E2324, 2, 257, 257, 257
wait
loadsprite 10141
call Unknown_81D5C36
- sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 5, 1, 2, 16, 0, 0
+ sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 1, 2, 16, 0, 0
wait
end
@@ -8034,26 +8034,26 @@ Move_WILL_O_WISP: @ 81D2B83
monbgprio_2A 1
panse_19 SE_W052, 192
panse_1D SE_W052, 192, 10
- createtask sub_812B374, 2, 4, -64, -64, 1, 0
- sprite gBattleAnimSpriteTemplate_83D974C, 2, 3, 0, 0, 0
+ createtask sub_812B374, 2, -64, -64, 1, 0
+ sprite gBattleAnimSpriteTemplate_83D974C, 2, 0, 0, 0
pause 3
- sprite gBattleAnimSpriteTemplate_83D974C, 3, 3, 0, 0, 1
+ sprite gBattleAnimSpriteTemplate_83D974C, 3, 0, 0, 1
pause 3
- sprite gBattleAnimSpriteTemplate_83D974C, 4, 3, 0, 0, 2
+ sprite gBattleAnimSpriteTemplate_83D974C, 4, 0, 0, 2
pause 3
- sprite gBattleAnimSpriteTemplate_83D974C, 4, 3, 0, 0, 3
+ sprite gBattleAnimSpriteTemplate_83D974C, 4, 0, 0, 3
pause 40
- createtask sub_812B374, 2, 4, -64, 63, 2, 0
+ createtask sub_812B374, 2, -64, 63, 2, 0
wait
monbgprio_29
panse_19 SE_W172B, 63
- createtask sub_80A7FA0, 2, 5, 1, 4, 0, 13, 1
- sprite gBattleAnimSpriteTemplate_83D977C, 2, 1, 0
- sprite gBattleAnimSpriteTemplate_83D977C, 2, 1, 42
- sprite gBattleAnimSpriteTemplate_83D977C, 2, 1, 84
- sprite gBattleAnimSpriteTemplate_83D977C, 2, 1, 126
- sprite gBattleAnimSpriteTemplate_83D977C, 2, 1, 168
- sprite gBattleAnimSpriteTemplate_83D977C, 2, 1, 210
+ createtask sub_80A7FA0, 2, 1, 4, 0, 13, 1
+ sprite gBattleAnimSpriteTemplate_83D977C, 2, 0
+ sprite gBattleAnimSpriteTemplate_83D977C, 2, 42
+ sprite gBattleAnimSpriteTemplate_83D977C, 2, 84
+ sprite gBattleAnimSpriteTemplate_83D977C, 2, 126
+ sprite gBattleAnimSpriteTemplate_83D977C, 2, 168
+ sprite gBattleAnimSpriteTemplate_83D977C, 2, 210
wait
clearmonbg 3
end
@@ -8062,18 +8062,18 @@ Move_ENCORE: @ 81D2C41
loadsprite 10227
loadsprite 10247
createtask sub_812CC44, 2
- createtask sub_80E2D78, 2, 5, 248, 3, 0, 10, 0
+ createtask sub_80E2D78, 2, 248, 3, 0, 10, 0
wait
- sprite gBattleAnimSpriteTemplate_840238C, 130, 2, 0, -8
- sprite gBattleAnimSpriteTemplate_84023A4, 2, 5, -2, 0, 0, 0, 9
- sprite gBattleAnimSpriteTemplate_84023A4, 2, 5, 2, 0, 1, 0, 9
- sprite gBattleAnimSpriteTemplate_84023BC, 3, 5, -2, 0, 0, 0, 9
- sprite gBattleAnimSpriteTemplate_84023BC, 3, 5, 2, 0, 1, 0, 9
+ sprite gBattleAnimSpriteTemplate_840238C, 130, 0, -8
+ sprite gBattleAnimSpriteTemplate_84023A4, 2, -2, 0, 0, 0, 9
+ sprite gBattleAnimSpriteTemplate_84023A4, 2, 2, 0, 1, 0, 9
+ sprite gBattleAnimSpriteTemplate_84023BC, 3, -2, 0, 0, 0, 9
+ sprite gBattleAnimSpriteTemplate_84023BC, 3, 2, 0, 1, 0, 9
pause 16
- createtask sub_812B340, 5, 2, 223, 63
- createtask sub_80A8B88, 5, 5, 1, 8, 1536, 5, 1
+ createtask sub_812B340, 5, 223, 63
+ createtask sub_80A8B88, 5, 1, 8, 1536, 5, 1
wait
- createtask sub_80E2D78, 2, 5, 248, 3, 10, 0, 1
+ createtask sub_80E2D78, 2, 248, 3, 10, 0, 1
wait
createtask sub_812CCA8, 2
end
@@ -8081,8 +8081,8 @@ Move_ENCORE: @ 81D2C41
Move_TRICK: @ 81D2CE8
loadsprite 10224
loadsprite 10207
- sprite gBattleAnimSpriteTemplate_83D67F4, 2, 2, -40, 80
- sprite gBattleAnimSpriteTemplate_83D67F4, 2, 2, -40, 208
+ sprite gBattleAnimSpriteTemplate_83D67F4, 2, -40, 80
+ sprite gBattleAnimSpriteTemplate_83D67F4, 2, -40, 208
pause 16
panse_19 SE_W166, 0
createtask sub_80D1E38, 3
@@ -8101,15 +8101,15 @@ Move_TRICK: @ 81D2CE8
panse_19 SE_W104, 0
pause 16
panse_19 SE_W213, 0
- createtask sub_80A7E7C, 3, 5, 0, 5, 0, 7, 2
- createtask sub_80A7E7C, 3, 5, 1, 5, 0, 7, 2
+ createtask sub_80A7E7C, 3, 0, 5, 0, 7, 2
+ createtask sub_80A7E7C, 3, 1, 5, 0, 7, 2
wait
end
Move_WISH: @ 81D2D66
loadsprite 10233
loadsprite 10049
- sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 5, 1, 3, 0, 10, 0
+ sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 1, 3, 0, 10, 0
wait
panse_27 SE_W115, 63, 192, 253, 0
sprite gBattleAnimSpriteTemplate_84024E8, 40
@@ -8118,36 +8118,36 @@ Move_WISH: @ 81D2D66
panse_1C SE_W215, 192, 16, 3
call Unknown_81D5ECA
wait
- sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 5, 1, 3, 10, 0, 0
+ sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 1, 3, 10, 0, 0
wait
end
Move_STOCKPILE: @ 81D2DAE
loadsprite 10235
panse_19 SE_W025, 192
- createtask sub_80E1F8C, 2, 6, 2, 8, 1, 0, 12, 32767
+ createtask sub_80E1F8C, 2, 2, 8, 1, 0, 12, 32767
createtask sub_812D674, 5
call _81D2DEC
call _81D2DEC
wait
- sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 5, 2, 0, 12, 0, 32767
+ sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 2, 0, 12, 0, 32767
end
_81D2DEC:
- sprite gBattleAnimSpriteTemplate_83D6350, 2, 3, 55, 55, 13
+ sprite gBattleAnimSpriteTemplate_83D6350, 2, 55, 55, 13
pause 1
- sprite gBattleAnimSpriteTemplate_83D6350, 2, 3, -55, -55, 13
+ sprite gBattleAnimSpriteTemplate_83D6350, 2, -55, -55, 13
pause 1
- sprite gBattleAnimSpriteTemplate_83D6350, 2, 3, 0, 55, 13
+ sprite gBattleAnimSpriteTemplate_83D6350, 2, 0, 55, 13
pause 1
- sprite gBattleAnimSpriteTemplate_83D6350, 2, 3, 0, -55, 13
+ sprite gBattleAnimSpriteTemplate_83D6350, 2, 0, -55, 13
pause 1
- sprite gBattleAnimSpriteTemplate_83D6350, 2, 3, 55, -34, 13
+ sprite gBattleAnimSpriteTemplate_83D6350, 2, 55, -34, 13
pause 1
- sprite gBattleAnimSpriteTemplate_83D6350, 2, 3, 55, 34, 13
+ sprite gBattleAnimSpriteTemplate_83D6350, 2, 55, 34, 13
pause 1
- sprite gBattleAnimSpriteTemplate_83D6350, 2, 3, -55, -34, 13
+ sprite gBattleAnimSpriteTemplate_83D6350, 2, -55, -34, 13
pause 1
- sprite gBattleAnimSpriteTemplate_83D6350, 2, 3, -55, 34, 13
+ sprite gBattleAnimSpriteTemplate_83D6350, 2, -55, 34, 13
pause 1
ret
@@ -8156,46 +8156,46 @@ Move_SPIT_UP: @ 81D2E65
loadsprite 10135
panse_19 SE_W036, 192
createtask sub_812D6CC, 5
- createtask sub_80A7FA0, 2, 5, 0, 1, 0, 8, 2
+ createtask sub_80A7FA0, 2, 0, 1, 0, 8, 2
pause 45
panse_19 SE_W255, 192
pause 3
- sprite gBattleAnimSpriteTemplate_83D7B60, 2, 2, 0, 12
- sprite gBattleAnimSpriteTemplate_83D7B60, 2, 2, 32, 12
- sprite gBattleAnimSpriteTemplate_83D7B60, 2, 2, 64, 12
- sprite gBattleAnimSpriteTemplate_83D7B60, 2, 2, 96, 12
- sprite gBattleAnimSpriteTemplate_83D7B60, 2, 2, 128, 12
- sprite gBattleAnimSpriteTemplate_83D7B60, 2, 2, 160, 12
- sprite gBattleAnimSpriteTemplate_83D7B60, 2, 2, 192, 12
- sprite gBattleAnimSpriteTemplate_83D7B60, 2, 2, 224, 12
+ sprite gBattleAnimSpriteTemplate_83D7B60, 2, 0, 12
+ sprite gBattleAnimSpriteTemplate_83D7B60, 2, 32, 12
+ sprite gBattleAnimSpriteTemplate_83D7B60, 2, 64, 12
+ sprite gBattleAnimSpriteTemplate_83D7B60, 2, 96, 12
+ sprite gBattleAnimSpriteTemplate_83D7B60, 2, 128, 12
+ sprite gBattleAnimSpriteTemplate_83D7B60, 2, 160, 12
+ sprite gBattleAnimSpriteTemplate_83D7B60, 2, 192, 12
+ sprite gBattleAnimSpriteTemplate_83D7B60, 2, 224, 12
pause 5
jumpif 2, _81D2F32
jumpif 3, _81D2F5B
_81D2EF5:
pause 5
- createtask sub_80A9058, 2, 5, 0, 1, 8, 1, 0
+ createtask sub_80A9058, 2, 0, 1, 8, 1, 0
panse_19 SE_W003, 63
- sprite gBattleAnimSpriteTemplate_83DB538, 131, 4, -12, 10, 1, 1
+ sprite gBattleAnimSpriteTemplate_83DB538, 131, -12, 10, 1, 1
pause 5
panse_19 SE_W003, 63
- sprite gBattleAnimSpriteTemplate_83DB538, 131, 4, 12, -10, 1, 1
+ sprite gBattleAnimSpriteTemplate_83DB538, 131, 12, -10, 1, 1
wait
end
_81D2F32:
- sprite gBattleAnimSpriteTemplate_83D7B60, 2, 1, 16
- sprite gBattleAnimSpriteTemplate_83D7B60, 2, 1, 80
- sprite gBattleAnimSpriteTemplate_83D7B60, 2, 1, 144
- sprite gBattleAnimSpriteTemplate_83D7B60, 2, 1, 208
+ sprite gBattleAnimSpriteTemplate_83D7B60, 2, 16
+ sprite gBattleAnimSpriteTemplate_83D7B60, 2, 80
+ sprite gBattleAnimSpriteTemplate_83D7B60, 2, 144
+ sprite gBattleAnimSpriteTemplate_83D7B60, 2, 208
jump _81D2EF5
_81D2F5B:
- sprite gBattleAnimSpriteTemplate_83D7B60, 2, 1, 16
- sprite gBattleAnimSpriteTemplate_83D7B60, 2, 1, 48
- sprite gBattleAnimSpriteTemplate_83D7B60, 2, 1, 80
- sprite gBattleAnimSpriteTemplate_83D7B60, 2, 1, 112
- sprite gBattleAnimSpriteTemplate_83D7B60, 2, 1, 144
- sprite gBattleAnimSpriteTemplate_83D7B60, 2, 1, 176
- sprite gBattleAnimSpriteTemplate_83D7B60, 2, 1, 208
- sprite gBattleAnimSpriteTemplate_83D7B60, 2, 1, 240
+ sprite gBattleAnimSpriteTemplate_83D7B60, 2, 16
+ sprite gBattleAnimSpriteTemplate_83D7B60, 2, 48
+ sprite gBattleAnimSpriteTemplate_83D7B60, 2, 80
+ sprite gBattleAnimSpriteTemplate_83D7B60, 2, 112
+ sprite gBattleAnimSpriteTemplate_83D7B60, 2, 144
+ sprite gBattleAnimSpriteTemplate_83D7B60, 2, 176
+ sprite gBattleAnimSpriteTemplate_83D7B60, 2, 208
+ sprite gBattleAnimSpriteTemplate_83D7B60, 2, 240
jump _81D2EF5
Move_SWALLOW: @ 81D2FA8
@@ -8203,10 +8203,10 @@ Move_SWALLOW: @ 81D2FA8
loadsprite 10031
panse_19 SE_W036, 192
createtask sub_812D790, 5
- createtask sub_80A7FA0, 2, 5, 0, 1, 0, 8, 2
+ createtask sub_80A7FA0, 2, 0, 1, 0, 8, 2
pause 38
panse_19 SE_W255, 192
- createtask sub_80A7FA0, 2, 5, 0, 2, 0, 12, 1
+ createtask sub_80A7FA0, 2, 0, 2, 0, 12, 1
call _81D2FF9
jumpif 2, _81D303B
jumpif 3, _81D3045
@@ -8215,15 +8215,15 @@ _81D2FF2:
call Unknown_81D5EF5
end
_81D2FF9:
- sprite gBattleAnimSpriteTemplate_8402578, 2, 2, 0, -8
+ sprite gBattleAnimSpriteTemplate_8402578, 2, 0, -8
pause 1
- sprite gBattleAnimSpriteTemplate_8402578, 2, 2, -24, -8
+ sprite gBattleAnimSpriteTemplate_8402578, 2, -24, -8
pause 1
- sprite gBattleAnimSpriteTemplate_8402578, 2, 2, 16, -8
+ sprite gBattleAnimSpriteTemplate_8402578, 2, 16, -8
pause 1
- sprite gBattleAnimSpriteTemplate_8402578, 2, 2, -16, -8
+ sprite gBattleAnimSpriteTemplate_8402578, 2, -16, -8
pause 1
- sprite gBattleAnimSpriteTemplate_8402578, 2, 2, 24, -8
+ sprite gBattleAnimSpriteTemplate_8402578, 2, 24, -8
pause 1
ret
_81D303B:
@@ -8238,7 +8238,7 @@ Move_TRANSFORM: @ 81D3054
monbg 0
panse_19 SE_W100, 192
panse_1D SE_W107, 192, 48
- createtask sub_812D7E8, 2, 1, 0
+ createtask sub_812D7E8, 2, 0
wait
clearmonbg 0
end
@@ -8248,7 +8248,7 @@ Move_MORNING_SUN: @ 81D306C
loadsprite 10031
createtask sub_812DB84, 5
pause 8
- createtask sub_80E2A38, 10, 5, 1921, 8, 0, 12, 32767
+ createtask sub_80E2A38, 10, 1921, 8, 0, 12, 32767
pause 14
call _81D30F2
call _81D30F2
@@ -8265,73 +8265,73 @@ Move_MORNING_SUN: @ 81D306C
call _81D30F2
call _81D30F2
call _81D30F2
- createtask sub_80E2A38, 10, 5, 1921, 3, 12, 0, 32767
+ createtask sub_80E2A38, 10, 1921, 3, 12, 0, 32767
wait
waitsound
call Unknown_81D5EF5
end
_81D30F2:
- sprite gBattleAnimSpriteTemplate_84025EC, 2, 2, 30, 640
+ sprite gBattleAnimSpriteTemplate_84025EC, 2, 30, 640
pause 5
ret
Move_SWEET_SCENT: @ 81D3100
loadsprite 10238
panse_19 SE_W230, 192
- sprite gBattleAnimSpriteTemplate_84026A4, 2, 3, 100, 0, 100
+ sprite gBattleAnimSpriteTemplate_84026A4, 2, 100, 0, 100
pause 25
setpan 0
call _81D3144
- sprite gBattleAnimSpriteTemplate_84026A4, 2, 2, 55, 0
+ sprite gBattleAnimSpriteTemplate_84026A4, 2, 55, 0
setpan 63
- createtask sub_80E1F8C, 2, 6, 20, 1, 5, 5, 13, 22207
+ createtask sub_80E1F8C, 2, 20, 1, 5, 5, 13, 22207
call _81D3144
wait
end
_81D3144:
- sprite gBattleAnimSpriteTemplate_84026A4, 2, 3, 70, 1, 64
+ sprite gBattleAnimSpriteTemplate_84026A4, 2, 70, 1, 64
pause 2
- sprite gBattleAnimSpriteTemplate_84026A4, 2, 3, 60, 0, 64
+ sprite gBattleAnimSpriteTemplate_84026A4, 2, 60, 0, 64
pause 5
- sprite gBattleAnimSpriteTemplate_84026A4, 2, 3, 80, 1, 64
+ sprite gBattleAnimSpriteTemplate_84026A4, 2, 80, 1, 64
pause 2
- sprite gBattleAnimSpriteTemplate_84026A4, 2, 3, 58, 0, 120
+ sprite gBattleAnimSpriteTemplate_84026A4, 2, 58, 0, 120
pause 2
- sprite gBattleAnimSpriteTemplate_84026A4, 2, 3, 100, 0, 120
+ sprite gBattleAnimSpriteTemplate_84026A4, 2, 100, 0, 120
pause 2
- sprite gBattleAnimSpriteTemplate_84026A4, 2, 3, 90, 0, 64
+ sprite gBattleAnimSpriteTemplate_84026A4, 2, 90, 0, 64
pause 2
- sprite gBattleAnimSpriteTemplate_84026A4, 2, 3, 48, 0, 64
+ sprite gBattleAnimSpriteTemplate_84026A4, 2, 48, 0, 64
pause 2
- sprite gBattleAnimSpriteTemplate_84026A4, 2, 3, 95, 1, 80
+ sprite gBattleAnimSpriteTemplate_84026A4, 2, 95, 1, 80
pause 2
- sprite gBattleAnimSpriteTemplate_84026A4, 2, 3, 100, 0, 120
+ sprite gBattleAnimSpriteTemplate_84026A4, 2, 100, 0, 120
pause 2
- sprite gBattleAnimSpriteTemplate_84026A4, 2, 3, 75, 1, 64
+ sprite gBattleAnimSpriteTemplate_84026A4, 2, 75, 1, 64
pause 2
- sprite gBattleAnimSpriteTemplate_84026A4, 2, 3, 85, 0, 120
+ sprite gBattleAnimSpriteTemplate_84026A4, 2, 85, 0, 120
pause 2
ret
Move_HYPER_BEAM: @ 81D31EA
loadsprite 10147
- sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 5, 1, 4, 0, 16, 0
+ sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 1, 4, 0, 16, 0
wait
pause 10
panse_19 SE_W063, 192
- createtask sub_80A7FA0, 2, 5, 0, 1, 0, 4, 1
+ createtask sub_80A7FA0, 2, 0, 1, 0, 4, 1
wait
pause 30
- createtask_1F sub_812B058, 7, 247, -64, 63, 1, 15, 0, 5
- createtask sub_80A7E7C, 2, 5, 0, 0, 4, 50, 1
- createtask sub_80E21A8, 2, 7, 10147, 1, 12, 31, 16, 0, 0
+ createtask_1F sub_812B058, 247, -64, 63, 1, 15, 0, 5
+ createtask sub_80A7E7C, 2, 0, 0, 4, 50, 1
+ createtask sub_80E21A8, 2, 10147, 1, 12, 31, 16, 0, 0
call _81D331B
call _81D331B
call _81D331B
call _81D331B
call _81D331B
- createtask sub_80A7FA0, 2, 5, 1, 4, 0, 50, 1
- createtask sub_80E2A38, 10, 5, 4, 2, 0, 11, 26425
+ createtask sub_80A7FA0, 2, 1, 4, 0, 50, 1
+ createtask sub_80E2A38, 10, 4, 2, 0, 11, 26425
call _81D331B
call _81D331B
call _81D331B
@@ -8353,9 +8353,9 @@ Move_HYPER_BEAM: @ 81D31EA
call _81D331B
call _81D331B
call _81D331B
- createtask sub_80E2A38, 10, 5, 4, 2, 11, 0, 26425
+ createtask sub_80E2A38, 10, 4, 2, 11, 0, 26425
wait
- sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 5, 1, 4, 16, 0, 0
+ sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 1, 4, 16, 0, 0
end
_81D331B:
sprite gBattleAnimSpriteTemplate_83D6394, 130
@@ -8366,17 +8366,17 @@ _81D331B:
Move_FLATTER: @ 81D332C
loadsprite 10227
loadsprite 10240
- createtask sub_812B340, 5, 2, 223, 63
+ createtask sub_812B340, 5, 223, 63
createtask sub_812CC44, 2
- createtask sub_80E2D78, 2, 5, 248, 3, 0, 10, 0
+ createtask sub_80E2D78, 2, 248, 3, 0, 10, 0
wait
- sprite gBattleAnimSpriteTemplate_8402720, 130, 3, 0, -8, 80
+ sprite gBattleAnimSpriteTemplate_8402720, 130, 0, -8, 80
pause 0
- sprite gBattleAnimSpriteTemplate_83C1FC8, 2, 3, 5, 2, 1
+ sprite gBattleAnimSpriteTemplate_83C1FC8, 2, 5, 2, 1
pause 10
- sprite gBattleAnimSpriteTemplate_83C1FC8, 2, 3, 5, 2, 1
+ sprite gBattleAnimSpriteTemplate_83C1FC8, 2, 5, 2, 1
pause 0
- createtask sub_812B30C, 5, 2, 229, -64
+ createtask sub_812B30C, 5, 229, -64
call _81D3415
call _81D3415
call _81D3415
@@ -8397,44 +8397,44 @@ Move_FLATTER: @ 81D332C
call _81D3415
call _81D3415
pause 5
- createtask sub_812B30C, 5, 2, 229, 63
+ createtask sub_812B30C, 5, 229, 63
wait
- createtask sub_80E2D78, 2, 5, 248, 3, 10, 0, 1
+ createtask sub_80E2D78, 2, 248, 3, 10, 0, 1
wait
createtask sub_812CCA8, 2
end
_81D3415:
- sprite gBattleAnimSpriteTemplate_8402708, 40, 1, 0
- sprite gBattleAnimSpriteTemplate_8402708, 40, 1, 1
+ sprite gBattleAnimSpriteTemplate_8402708, 40, 0
+ sprite gBattleAnimSpriteTemplate_8402708, 40, 1
ret
Move_ROLE_PLAY: @ 81D3428
monbg 2
- createtask sub_80E2A38, 10, 5, 4, 2, 0, 16, 32767
- sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 5, 1, 2, 0, 10, 0
+ createtask sub_80E2A38, 10, 4, 2, 0, 16, 32767
+ sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 1, 2, 0, 10, 0
wait
panse_19 SE_W161, 192
panse_1D SE_W197, 192, 30
createtask sub_812EFC8, 2
wait
clearmonbg 2
- createtask sub_80E2A38, 10, 5, 4, 2, 16, 0, 32767
+ createtask sub_80E2A38, 10, 4, 2, 16, 0, 32767
pause 8
- sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 5, 1, 2, 10, 0, 0
+ sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 1, 2, 10, 0, 0
end
Move_REFRESH: @ 81D3485
loadsprite 10203
loadsprite 10049
panse_19 SE_W287, 192
- createtask sub_81300A4, 2, 1, 0
+ createtask sub_81300A4, 2, 0
wait
panse_19 SE_W234, 192
call Unknown_81D5ECA
wait
panse_19 SE_REAPOKE, 192
- sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 5, 31, 3, 10, 0, 31500
- sprite gBattleAnimSpriteTemplate_83D7928, 3, 4, 0, 0, 0, 0
+ sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 31, 3, 10, 0, 31500
+ sprite gBattleAnimSpriteTemplate_83D7928, 3, 0, 0, 0, 0
end
Move_BLAZE_KICK: @ 81D34C8
@@ -8444,14 +8444,14 @@ Move_BLAZE_KICK: @ 81D34C8
monbg 1
setalpha 12, 8
panse_19 SE_W172, 63
- sprite gBattleAnimSpriteTemplate_83DA024, 131, 4, 0, 0, 1, 30
- createtask sub_80E2A38, 10, 5, 4, 2, 0, 7, 32767
+ sprite gBattleAnimSpriteTemplate_83DA024, 131, 0, 0, 1, 30
+ createtask sub_80E2A38, 10, 4, 2, 0, 7, 32767
pause 30
panse_19 SE_W007, 63
- sprite gBattleAnimSpriteTemplate_83DB4A8, 130, 4, 0, 0, 1, 0
- createtask sub_80A7FA0, 2, 5, 1, 3, 0, 14, 1
- createtask sub_80E2A38, 10, 5, 4, 2, 0, 0, 32767
- sprite gBattleAnimSpriteTemplate_83DB3DC, 2, 7, 31, 3, 1, 0, 8, 0, 0
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 130, 0, 0, 1, 0
+ createtask sub_80A7FA0, 2, 1, 3, 0, 14, 1
+ createtask sub_80E2A38, 10, 4, 2, 0, 0, 32767
+ sprite gBattleAnimSpriteTemplate_83DB3DC, 2, 31, 3, 1, 0, 8, 0, 0
call _81D11A2
wait
clearmonbg 1
@@ -8468,38 +8468,38 @@ Move_HYPER_VOICE: @ 81D3550
end
_81D3562:
createtask sub_812B2B8, 5
- sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 5, 31, 3, 8, 0, 1023
- createtask sub_80A8D34, 5, 5, -5, -5, 5, 0, 0
- sprite gBattleAnimSpriteTemplate_83D798C, 0, 7, 45, 0, 0, 0, 0, 0, 1
- createtask sub_80A7FA0, 2, 5, 1, 1, 0, 6, 1
- createtask sub_80A7FA0, 2, 5, 3, 1, 0, 6, 1
- createtask sub_80E26BC, 2, 4, 1, 0, 6, 1
+ sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 31, 3, 8, 0, 1023
+ createtask sub_80A8D34, 5, -5, -5, 5, 0, 0
+ sprite gBattleAnimSpriteTemplate_83D798C, 0, 45, 0, 0, 0, 0, 0, 1
+ createtask sub_80A7FA0, 2, 1, 1, 0, 6, 1
+ createtask sub_80A7FA0, 2, 3, 1, 0, 6, 1
+ createtask sub_80E26BC, 2, 1, 0, 6, 1
ret
Move_SAND_TOMB: @ 81D35D2
loadsprite 10074
- sprite gBattleAnimSpriteTemplate_83DB3C4, 0, 5, 4, 2, 0, 7, 563
- createtask sub_80A7E7C, 5, 5, 1, 0, 2, 43, 1
+ sprite gBattleAnimSpriteTemplate_83DB3C4, 0, 4, 2, 0, 7, 563
+ createtask sub_80A7E7C, 5, 1, 0, 2, 43, 1
panse_19 SE_W328, 63
call _81D361F
call _81D361F
call _81D361F
pause 22
- sprite gBattleAnimSpriteTemplate_83DB3C4, 0, 5, 4, 2, 7, 0, 563
+ sprite gBattleAnimSpriteTemplate_83DB3C4, 0, 4, 2, 7, 0, 563
wait
end
_81D361F:
- sprite gBattleAnimSpriteTemplate_83DAC7C, 130, 7, 0, 32, 528, 30, 10, 50, 1
+ sprite gBattleAnimSpriteTemplate_83DAC7C, 130, 0, 32, 528, 30, 10, 50, 1
pause 2
- sprite gBattleAnimSpriteTemplate_83DAC7C, 130, 7, 0, 36, 480, 20, 13, -46, 1
+ sprite gBattleAnimSpriteTemplate_83DAC7C, 130, 0, 36, 480, 20, 13, -46, 1
pause 2
- sprite gBattleAnimSpriteTemplate_83DAC7C, 130, 7, 0, 37, 576, 20, 5, 42, 1
+ sprite gBattleAnimSpriteTemplate_83DAC7C, 130, 0, 37, 576, 20, 5, 42, 1
pause 2
- sprite gBattleAnimSpriteTemplate_83DAC7C, 130, 7, 0, 35, 400, 25, 8, -42, 1
+ sprite gBattleAnimSpriteTemplate_83DAC7C, 130, 0, 35, 400, 25, 8, -42, 1
pause 2
- sprite gBattleAnimSpriteTemplate_83DAC7C, 130, 7, 0, 32, 512, 25, 13, 46, 1
+ sprite gBattleAnimSpriteTemplate_83DAC7C, 130, 0, 32, 512, 25, 13, 46, 1
pause 2
- sprite gBattleAnimSpriteTemplate_83DAC7C, 130, 7, 0, 37, 464, 30, 12, -50, 1
+ sprite gBattleAnimSpriteTemplate_83DAC7C, 130, 0, 37, 464, 30, 12, -50, 1
pause 2
ret
@@ -8526,56 +8526,56 @@ Move_ARM_THRUST: @ 81D36CF
loadsprite 10135
monbgprio_28 1
setalpha 12, 8
- createtask sub_80A8E04, 5, 4, 8, 5, 0, 0
+ createtask sub_80A8E04, 5, 8, 5, 0, 0
pause 6
- sprite gBattleAnimSpriteTemplate_83C1FB0, 2, 2, 4, 3
+ sprite gBattleAnimSpriteTemplate_83C1FB0, 2, 4, 3
pause 4
panse_19 SE_W207, 63
- sprite gBattleAnimSpriteTemplate_83DA144, 130, 4, 10, -8, 14, 3
+ sprite gBattleAnimSpriteTemplate_83DA144, 130, 10, -8, 14, 3
wait
- createtask sub_80A8E04, 5, 4, 8, 5, 0, 1
+ createtask sub_80A8E04, 5, 8, 5, 0, 1
panse_19 SE_W003, 63
ifelse _81D373C, _81D3750
_81D3728:
- createtask sub_80A7E7C, 5, 5, 1, 4, 0, 6, 1
+ createtask sub_80A7E7C, 5, 1, 4, 0, 6, 1
wait
blendoff
end
_81D373C:
- sprite gBattleAnimSpriteTemplate_83DB4A8, 130, 4, 8, 0, 1, 2
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 130, 8, 0, 1, 2
jump _81D3728
_81D3750:
- sprite gBattleAnimSpriteTemplate_83DB4A8, 130, 4, -8, 0, 1, 2
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 130, -8, 0, 1, 2
jump _81D3728
Move_MUDDY_WATER: @ 81D3764
panse_1B SE_W250, 192, 63, 2, 0
- createtask sub_80D38BC, 2, 1, 1
+ createtask sub_80D38BC, 2, 1
wait
end
Move_BULLET_SEED: @ 81D3776
loadsprite 10006
- sprite gBattleAnimSpriteTemplate_83D7628, 130, 2, 20, 0
+ sprite gBattleAnimSpriteTemplate_83D7628, 130, 20, 0
pause 5
- sprite gBattleAnimSpriteTemplate_83D7628, 130, 2, 20, 0
+ sprite gBattleAnimSpriteTemplate_83D7628, 130, 20, 0
pause 5
- sprite gBattleAnimSpriteTemplate_83D7628, 130, 2, 20, 0
+ sprite gBattleAnimSpriteTemplate_83D7628, 130, 20, 0
pause 5
- createtask sub_80A7FA0, 2, 5, 1, 2, 0, 30, 1
- sprite gBattleAnimSpriteTemplate_83D7628, 130, 2, 20, 0
+ createtask sub_80A7FA0, 2, 1, 2, 0, 30, 1
+ sprite gBattleAnimSpriteTemplate_83D7628, 130, 20, 0
pause 5
- sprite gBattleAnimSpriteTemplate_83D7628, 130, 2, 20, 0
+ sprite gBattleAnimSpriteTemplate_83D7628, 130, 20, 0
pause 5
- sprite gBattleAnimSpriteTemplate_83D7628, 130, 2, 20, 0
+ sprite gBattleAnimSpriteTemplate_83D7628, 130, 20, 0
pause 5
- sprite gBattleAnimSpriteTemplate_83D7628, 130, 2, 20, 0
+ sprite gBattleAnimSpriteTemplate_83D7628, 130, 20, 0
pause 5
- sprite gBattleAnimSpriteTemplate_83D7628, 130, 2, 20, 0
+ sprite gBattleAnimSpriteTemplate_83D7628, 130, 20, 0
pause 5
- sprite gBattleAnimSpriteTemplate_83D7628, 130, 2, 20, 0
+ sprite gBattleAnimSpriteTemplate_83D7628, 130, 20, 0
pause 5
- sprite gBattleAnimSpriteTemplate_83D7628, 130, 2, 20, 0
+ sprite gBattleAnimSpriteTemplate_83D7628, 130, 20, 0
wait
end
@@ -8583,58 +8583,58 @@ Move_DRAGON_CLAW: @ 81D380C
loadsprite 10029
loadsprite 10039
panse_19 SE_W221B, 192
- createtask sub_80E2A38, 10, 5, 2, 4, 0, 8, 639
- createtask sub_80A7E7C, 5, 5, 0, 0, 2, 15, 1
+ createtask sub_80E2A38, 10, 2, 4, 0, 8, 639
+ createtask sub_80A7E7C, 5, 0, 0, 2, 15, 1
call _81D39E9
call _81D39E9
- sprite gBattleAnimSpriteTemplate_83C1FB0, 2, 2, 6, 4
- sprite gBattleAnimSpriteTemplate_83DACD0, 2, 7, 0, 28, 528, 30, 13, 50, 0
+ sprite gBattleAnimSpriteTemplate_83C1FB0, 2, 6, 4
+ sprite gBattleAnimSpriteTemplate_83DACD0, 2, 0, 28, 528, 30, 13, 50, 0
pause 2
- createtask sub_812B30C, 5, 2, 136, 63
- sprite gBattleAnimSpriteTemplate_83DB288, 130, 3, -10, -10, 0
- sprite gBattleAnimSpriteTemplate_83DB288, 130, 3, -10, 10, 0
- sprite gBattleAnimSpriteTemplate_83DB428, 2, 5, -4, 1, 10, 3, 1
- sprite gBattleAnimSpriteTemplate_83DACD0, 2, 7, 0, 32, 480, 20, 16, -46, 0
+ createtask sub_812B30C, 5, 136, 63
+ sprite gBattleAnimSpriteTemplate_83DB288, 130, -10, -10, 0
+ sprite gBattleAnimSpriteTemplate_83DB288, 130, -10, 10, 0
+ sprite gBattleAnimSpriteTemplate_83DB428, 2, -4, 1, 10, 3, 1
+ sprite gBattleAnimSpriteTemplate_83DACD0, 2, 0, 32, 480, 20, 16, -46, 0
pause 2
- sprite gBattleAnimSpriteTemplate_83DACD0, 2, 7, 0, 33, 576, 20, 8, 42, 0
+ sprite gBattleAnimSpriteTemplate_83DACD0, 2, 0, 33, 576, 20, 8, 42, 0
pause 2
- sprite gBattleAnimSpriteTemplate_83DACD0, 2, 7, 0, 31, 400, 25, 11, -42, 0
+ sprite gBattleAnimSpriteTemplate_83DACD0, 2, 0, 31, 400, 25, 11, -42, 0
pause 2
- sprite gBattleAnimSpriteTemplate_83C1FB0, 2, 2, 6, 4
- sprite gBattleAnimSpriteTemplate_83DACD0, 2, 7, 0, 28, 512, 25, 16, 46, 0
+ sprite gBattleAnimSpriteTemplate_83C1FB0, 2, 6, 4
+ sprite gBattleAnimSpriteTemplate_83DACD0, 2, 0, 28, 512, 25, 16, 46, 0
pause 2
- createtask sub_812B30C, 5, 2, 136, 63
- sprite gBattleAnimSpriteTemplate_83DB288, 130, 3, 10, -10, 1
- sprite gBattleAnimSpriteTemplate_83DB288, 130, 3, 10, 10, 1
- sprite gBattleAnimSpriteTemplate_83DB428, 2, 5, -4, 1, 10, 3, 1
- sprite gBattleAnimSpriteTemplate_83DACD0, 2, 7, 0, 33, 464, 30, 15, -50, 0
+ createtask sub_812B30C, 5, 136, 63
+ sprite gBattleAnimSpriteTemplate_83DB288, 130, 10, -10, 1
+ sprite gBattleAnimSpriteTemplate_83DB288, 130, 10, 10, 1
+ sprite gBattleAnimSpriteTemplate_83DB428, 2, -4, 1, 10, 3, 1
+ sprite gBattleAnimSpriteTemplate_83DACD0, 2, 0, 33, 464, 30, 15, -50, 0
pause 2
- sprite gBattleAnimSpriteTemplate_83DACD0, 2, 7, 0, 28, 528, 30, 13, 50, 0
+ sprite gBattleAnimSpriteTemplate_83DACD0, 2, 0, 28, 528, 30, 13, 50, 0
pause 2
- sprite gBattleAnimSpriteTemplate_83DACD0, 2, 7, 0, 32, 480, 20, 16, -46, 0
+ sprite gBattleAnimSpriteTemplate_83DACD0, 2, 0, 32, 480, 20, 16, -46, 0
pause 2
- sprite gBattleAnimSpriteTemplate_83DACD0, 2, 7, 0, 33, 576, 20, 8, 42, 0
+ sprite gBattleAnimSpriteTemplate_83DACD0, 2, 0, 33, 576, 20, 8, 42, 0
pause 2
- sprite gBattleAnimSpriteTemplate_83DACD0, 2, 7, 0, 31, 400, 25, 11, -42, 0
+ sprite gBattleAnimSpriteTemplate_83DACD0, 2, 0, 31, 400, 25, 11, -42, 0
pause 2
- sprite gBattleAnimSpriteTemplate_83DACD0, 2, 7, 0, 28, 512, 25, 16, 46, 0
+ sprite gBattleAnimSpriteTemplate_83DACD0, 2, 0, 28, 512, 25, 16, 46, 0
pause 2
- sprite gBattleAnimSpriteTemplate_83DACD0, 2, 7, 0, 33, 464, 30, 15, -50, 0
- createtask sub_80E2A38, 10, 5, 2, 4, 8, 0, 639
+ sprite gBattleAnimSpriteTemplate_83DACD0, 2, 0, 33, 464, 30, 15, -50, 0
+ createtask sub_80E2A38, 10, 2, 4, 8, 0, 639
wait
end
_81D39E9:
- sprite gBattleAnimSpriteTemplate_83DACD0, 2, 7, 0, 28, 528, 30, 13, 50, 0
+ sprite gBattleAnimSpriteTemplate_83DACD0, 2, 0, 28, 528, 30, 13, 50, 0
pause 2
- sprite gBattleAnimSpriteTemplate_83DACD0, 2, 7, 0, 32, 480, 20, 16, -46, 0
+ sprite gBattleAnimSpriteTemplate_83DACD0, 2, 0, 32, 480, 20, 16, -46, 0
pause 2
- sprite gBattleAnimSpriteTemplate_83DACD0, 2, 7, 0, 33, 576, 20, 8, 42, 0
+ sprite gBattleAnimSpriteTemplate_83DACD0, 2, 0, 33, 576, 20, 8, 42, 0
pause 2
- sprite gBattleAnimSpriteTemplate_83DACD0, 2, 7, 0, 31, 400, 25, 11, -42, 0
+ sprite gBattleAnimSpriteTemplate_83DACD0, 2, 0, 31, 400, 25, 11, -42, 0
pause 2
- sprite gBattleAnimSpriteTemplate_83DACD0, 2, 7, 0, 28, 512, 25, 16, 46, 0
+ sprite gBattleAnimSpriteTemplate_83DACD0, 2, 0, 28, 512, 25, 16, 46, 0
pause 2
- sprite gBattleAnimSpriteTemplate_83DACD0, 2, 7, 0, 33, 464, 30, 15, -50, 0
+ sprite gBattleAnimSpriteTemplate_83DACD0, 2, 0, 33, 464, 30, 15, -50, 0
pause 2
ret
@@ -8646,14 +8646,14 @@ Move_MUD_SHOT: @ 81D3A75
monbg 3
monbgprio_28 1
setalpha 12, 8
- createtask sub_80A7E7C, 5, 5, 0, 0, 2, 46, 1
+ createtask sub_80A7E7C, 5, 0, 0, 2, 46, 1
pause 6
- createtask sub_80D3630, 5, 1, 100
+ createtask sub_80D3630, 5, 100
panse_1B SE_W250, 192, 63, 1, 0
call _81D3AEF
call _81D3AEF
call _81D3AEF
- createtask sub_80A7E7C, 5, 5, 1, 3, 0, 43, 1
+ createtask sub_80A7E7C, 5, 1, 3, 0, 43, 1
call _81D3AEF
call _81D3AEF
call _81D3AEF
@@ -8667,9 +8667,9 @@ Move_MUD_SHOT: @ 81D3A75
blendoff
end
_81D3AEF:
- sprite gBattleAnimSpriteTemplate_83D920C, 3, 4, 10, 10, 0, 16
+ sprite gBattleAnimSpriteTemplate_83D920C, 3, 10, 10, 0, 16
pause 2
- sprite gBattleAnimSpriteTemplate_83D920C, 3, 4, 10, 10, 0, 16
+ sprite gBattleAnimSpriteTemplate_83D920C, 3, 10, 10, 0, 16
pause 2
ret
@@ -8681,16 +8681,16 @@ Move_METEOR_MASH: @ 81D3B12
fadetobg 16
waitbgfadein
wait
- sprite gBattleAnimSpriteTemplate_8402A3C, 131, 5, -48, -64, 72, 32, 30
+ sprite gBattleAnimSpriteTemplate_8402A3C, 131, -48, -64, 72, 32, 30
pause 10
- sprite gBattleAnimSpriteTemplate_8402A3C, 131, 5, -112, -64, 8, 32, 30
+ sprite gBattleAnimSpriteTemplate_8402A3C, 131, -112, -64, 8, 32, 30
pause 40
- sprite gBattleAnimSpriteTemplate_83DA024, 131, 4, 0, 0, 0, 30
- sprite gBattleAnimSpriteTemplate_8402A3C, 131, 5, -80, -64, 40, 32, 30
+ sprite gBattleAnimSpriteTemplate_83DA024, 131, 0, 0, 0, 30
+ sprite gBattleAnimSpriteTemplate_8402A3C, 131, -80, -64, 40, 32, 30
pause 20
panse_19 SE_W233B, 63
- sprite gBattleAnimSpriteTemplate_83DB4A8, 131, 4, 0, 0, 1, 1
- createtask sub_80A7FA0, 2, 5, 1, 5, 0, 20, 1
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 131, 0, 0, 1, 1
+ createtask sub_80A7FA0, 2, 1, 5, 0, 20, 1
wait
pause 10
restorebg
@@ -8703,24 +8703,24 @@ Move_REVENGE: @ 81D3B99
monbg 1
setalpha 12, 8
panse_19 SE_W036, 192
- sprite gBattleAnimSpriteTemplate_83DA198, 2, 2, 10, -10
+ sprite gBattleAnimSpriteTemplate_83DA198, 2, 10, -10
wait
- createtask sub_80E1F8C, 2, 6, 2, 0, 4, 2, 8, 31
+ createtask sub_80E1F8C, 2, 2, 0, 4, 2, 8, 31
wait
unloadsprite 10245
loadsprite 10246
- sprite gBattleAnimSpriteTemplate_83C1FB0, 2, 2, 6, 4
+ sprite gBattleAnimSpriteTemplate_83C1FB0, 2, 6, 4
pause 4
panse_19 SE_W207, 63
- sprite gBattleAnimSpriteTemplate_83DA1E0, 130, 2, 10, -10
+ sprite gBattleAnimSpriteTemplate_83DA1E0, 130, 10, -10
wait
unloadsprite 10246
loadsprite 10135
- createtask sub_80A7FA0, 2, 5, 1, 3, 0, 10, 1
- sprite gBattleAnimSpriteTemplate_83DB550, 131, 5, -10, -8, 1, 1, 8
+ createtask sub_80A7FA0, 2, 1, 3, 0, 10, 1
+ sprite gBattleAnimSpriteTemplate_83DB550, 131, -10, -8, 1, 1, 8
panse_19 SE_W233B, 63
pause 8
- sprite gBattleAnimSpriteTemplate_83DB550, 131, 5, 10, 8, 1, 1, 8
+ sprite gBattleAnimSpriteTemplate_83DB550, 131, 10, 8, 1, 1, 8
panse_19 SE_W025B, 63
wait
clearmonbg 1
@@ -8733,9 +8733,9 @@ Move_POISON_FANG: @ 81D3C30
panse_19 SE_W044, 63
sprite gBattleAnimSpriteTemplate_840233C, 130
pause 10
- createtask sub_80A7E7C, 3, 5, 1, 3, 0, 10, 1
+ createtask sub_80A7E7C, 3, 1, 3, 0, 10, 1
wait
- createtask sub_80E1F8C, 2, 6, 4, 0, 4, 0, 12, 26650
+ createtask sub_80E1F8C, 2, 4, 0, 4, 0, 12, 26650
call Unknown_81D5F87
wait
end
@@ -8751,55 +8751,55 @@ Move_FRENZY_PLANT: @ 81D3C7B
monbg 1
monbgprio_28 1
setalpha 12, 8
- sprite gBattleAnimSpriteTemplate_83DB3C4, 0, 5, 1, 2, 0, 5, 0
+ sprite gBattleAnimSpriteTemplate_83DB3C4, 0, 1, 2, 0, 5, 0
wait
- sprite gBattleAnimSpriteTemplate_83D6670, 2, 6, 10, 8, 2, 0, 0, 100
+ sprite gBattleAnimSpriteTemplate_83D6670, 2, 10, 8, 2, 0, 0, 100
panse_19 SE_W010, 192
pause 5
- sprite gBattleAnimSpriteTemplate_83D6670, 2, 6, 20, -8, -2, 0, 1, 95
+ sprite gBattleAnimSpriteTemplate_83D6670, 2, 20, -8, -2, 0, 1, 95
panse_19 SE_W010, 213
pause 5
- sprite gBattleAnimSpriteTemplate_83D6670, 2, 6, 30, 8, -4, 0, 0, 90
+ sprite gBattleAnimSpriteTemplate_83D6670, 2, 30, 8, -4, 0, 0, 90
panse_19 SE_W010, 234
pause 5
- sprite gBattleAnimSpriteTemplate_83D6670, 2, 6, 40, -8, 4, 0, 1, 85
+ sprite gBattleAnimSpriteTemplate_83D6670, 2, 40, -8, 4, 0, 1, 85
panse_19 SE_W010, 0
pause 5
- sprite gBattleAnimSpriteTemplate_83D6670, 2, 6, 50, 8, 0, 0, 0, 85
+ sprite gBattleAnimSpriteTemplate_83D6670, 2, 50, 8, 0, 0, 0, 85
panse_19 SE_W010, 21
pause 5
- sprite gBattleAnimSpriteTemplate_83D6670, 2, 6, 60, -8, -2, 0, 1, 85
+ sprite gBattleAnimSpriteTemplate_83D6670, 2, 60, -8, -2, 0, 1, 85
panse_19 SE_W010, 42
pause 5
- sprite gBattleAnimSpriteTemplate_83D6670, 2, 6, 75, 8, 0, 0, 0, 85
+ sprite gBattleAnimSpriteTemplate_83D6670, 2, 75, 8, 0, 0, 0, 85
panse_19 SE_W010, 63
pause 5
- sprite gBattleAnimSpriteTemplate_83D6670, 2, 6, 85, 16, 6, 0, 3, 80
+ sprite gBattleAnimSpriteTemplate_83D6670, 2, 85, 16, 6, 0, 3, 80
panse_19 SE_W010, 63
pause 5
- sprite gBattleAnimSpriteTemplate_83D6670, 2, 6, 85, -16, -6, 0, 2, 75
+ sprite gBattleAnimSpriteTemplate_83D6670, 2, 85, -16, -6, 0, 2, 75
panse_19 SE_W010, 63
pause 5
- sprite gBattleAnimSpriteTemplate_83DB4A8, 2, 4, -10, -10, 1, 3
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 2, -10, -10, 1, 3
panse_19 SE_W003, 63
- createtask sub_80A7E7C, 3, 5, 1, 8, 0, 20, 1
+ createtask sub_80A7E7C, 3, 1, 8, 0, 20, 1
pause 3
- sprite gBattleAnimSpriteTemplate_83DB4A8, 2, 4, 10, 8, 1, 3
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 2, 10, 8, 1, 3
panse_19 SE_W003, 63
pause 3
- sprite gBattleAnimSpriteTemplate_83DB4A8, 2, 4, 10, -3, 1, 2
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 2, 10, -3, 1, 2
panse_19 SE_W003, 63
pause 3
- sprite gBattleAnimSpriteTemplate_83DB4A8, 2, 4, -3, 1, 1, 2
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 2, -3, 1, 1, 2
panse_19 SE_W003, 63
pause 2
- sprite gBattleAnimSpriteTemplate_83DB4A8, 2, 4, -10, 1, 1, 1
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 2, -10, 1, 1, 1
panse_19 SE_W003, 63
pause 2
- sprite gBattleAnimSpriteTemplate_83DB4A8, 2, 4, 0, 10, 1, 1
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 2, 0, 10, 1, 1
panse_19 SE_W003, 63
wait
- sprite gBattleAnimSpriteTemplate_83DB3C4, 0, 5, 1, 2, 5, 0, 0
+ sprite gBattleAnimSpriteTemplate_83DB3C4, 0, 1, 2, 5, 0, 0
wait
clearmonbg 1
blendoff
@@ -8809,7 +8809,7 @@ Move_METAL_SOUND: @ 81D3E1F
loadsprite 10260
monbg 3
monbgprio_2A 1
- createtask sub_80A7FA0, 2, 5, 0, 2, 0, 8, 1
+ createtask sub_80A7FA0, 2, 0, 2, 0, 8, 1
call _81D3E52
call _81D3E52
call _81D3E52
@@ -8821,7 +8821,7 @@ Move_METAL_SOUND: @ 81D3E1F
end
_81D3E52:
panse_1B SE_W103, 192, 63, 2, 0
- sprite gBattleAnimSpriteTemplate_83D7564, 130, 6, 16, 0, 0, 0, 30, 0
+ sprite gBattleAnimSpriteTemplate_83D7564, 130, 16, 0, 0, 0, 30, 0
pause 2
ret
@@ -8846,16 +8846,16 @@ _81D3EA4:
panse_19 SE_W207, 63
sprite gBattleAnimSpriteTemplate_83DA214, 130
pause 10
- sprite gBattleAnimSpriteTemplate_83DB4A8, 2, 4, -10, -8, 1, 0
- createtask sub_80A7E7C, 5, 5, 1, 8, 0, 24, 1
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 2, -10, -8, 1, 0
+ createtask sub_80A7E7C, 5, 1, 8, 0, 24, 1
pause 8
- sprite gBattleAnimSpriteTemplate_83DB4A8, 2, 4, 10, 2, 1, 0
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 2, 10, 2, 1, 0
panse_19 SE_W233B, 63
pause 8
- sprite gBattleAnimSpriteTemplate_83DB4A8, 2, 4, 10, -6, 1, 0
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 2, 10, -6, 1, 0
panse_19 SE_W233B, 63
pause 8
- sprite gBattleAnimSpriteTemplate_83DB4A8, 2, 4, 0, 8, 1, 0
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 2, 0, 8, 1, 0
panse_19 SE_W025B, 63
wait
restorebg
@@ -8889,144 +8889,144 @@ _81D3F67:
blendoff
end
_81D3F6C:
- sprite gBattleAnimSpriteTemplate_83C1FC8, 2, 3, 16, 1, 0
- createtask sub_812B340, 5, 2, 167, -64
+ sprite gBattleAnimSpriteTemplate_83C1FC8, 2, 16, 1, 0
+ createtask sub_812B340, 5, 167, -64
wait
- sprite gBattleAnimSpriteTemplate_83C1FC8, 2, 3, 16, 1, 0
- createtask sub_812B340, 5, 2, 167, -64
+ sprite gBattleAnimSpriteTemplate_83C1FC8, 2, 16, 1, 0
+ createtask sub_812B340, 5, 167, -64
pause 5
- sprite gBattleAnimSpriteTemplate_83DB4A8, 2, 4, -10, -8, 1, 2
- createtask sub_812B30C, 5, 2, 139, 63
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 2, -10, -8, 1, 2
+ createtask sub_812B30C, 5, 139, 63
jump _81D3F67
_81D3FBE:
- sprite gBattleAnimSpriteTemplate_83C1FC8, 2, 3, 6, 1, 0
- createtask sub_812B340, 5, 2, 167, -64
+ sprite gBattleAnimSpriteTemplate_83C1FC8, 2, 6, 1, 0
+ createtask sub_812B340, 5, 167, -64
wait
- sprite gBattleAnimSpriteTemplate_83C1FC8, 2, 3, 6, 1, 0
- createtask sub_812B340, 5, 2, 167, -64
+ sprite gBattleAnimSpriteTemplate_83C1FC8, 2, 6, 1, 0
+ createtask sub_812B340, 5, 167, -64
wait
pause 11
- sprite gBattleAnimSpriteTemplate_83C1FB0, 2, 2, 5, 4
+ sprite gBattleAnimSpriteTemplate_83C1FB0, 2, 5, 4
pause 6
- sprite gBattleAnimSpriteTemplate_83DB4A8, 3, 4, 0, 0, 1, 2
- createtask sub_812B30C, 5, 2, 141, 63
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 3, 0, 0, 1, 2
+ createtask sub_812B30C, 5, 141, 63
jump _81D3F67
_81D401E:
- sprite gBattleAnimSpriteTemplate_83C1FC8, 2, 3, 6, 1, 0
- createtask sub_812B340, 5, 2, 167, -64
+ sprite gBattleAnimSpriteTemplate_83C1FC8, 2, 6, 1, 0
+ createtask sub_812B340, 5, 167, -64
wait
- sprite gBattleAnimSpriteTemplate_83C1FC8, 2, 3, 6, 1, 0
- createtask sub_812B340, 5, 2, 167, -64
+ sprite gBattleAnimSpriteTemplate_83C1FC8, 2, 6, 1, 0
+ createtask sub_812B340, 5, 167, -64
wait
- sprite gBattleAnimSpriteTemplate_83C1FC8, 2, 3, 6, 1, 0
- createtask sub_812B340, 5, 2, 167, -64
+ sprite gBattleAnimSpriteTemplate_83C1FC8, 2, 6, 1, 0
+ createtask sub_812B340, 5, 167, -64
wait
- sprite gBattleAnimSpriteTemplate_83C1FC8, 2, 3, 6, 1, 0
- createtask sub_812B340, 5, 2, 167, -64
+ sprite gBattleAnimSpriteTemplate_83C1FC8, 2, 6, 1, 0
+ createtask sub_812B340, 5, 167, -64
wait
- sprite gBattleAnimSpriteTemplate_83DB4A8, 2, 4, -10, -8, 1, 2
- createtask sub_812B30C, 5, 2, 123, 63
- createtask sub_80A7E7C, 5, 5, 1, 6, 0, 8, 1
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 2, -10, -8, 1, 2
+ createtask sub_812B30C, 5, 123, 63
+ createtask sub_80A7E7C, 5, 1, 6, 0, 8, 1
pause 8
- sprite gBattleAnimSpriteTemplate_83DB4A8, 2, 4, 10, 10, 1, 2
- createtask sub_812B30C, 5, 2, 123, 63
- createtask sub_80A7E7C, 5, 5, 1, 6, 0, 8, 1
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 2, 10, 10, 1, 2
+ createtask sub_812B30C, 5, 123, 63
+ createtask sub_80A7E7C, 5, 1, 6, 0, 8, 1
pause 8
- sprite gBattleAnimSpriteTemplate_83DB4A8, 2, 4, 3, -5, 1, 2
- createtask sub_812B30C, 5, 2, 123, 63
- createtask sub_80A7E7C, 5, 5, 1, 6, 0, 8, 1
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 2, 3, -5, 1, 2
+ createtask sub_812B30C, 5, 123, 63
+ createtask sub_80A7E7C, 5, 1, 6, 0, 8, 1
pause 8
- sprite gBattleAnimSpriteTemplate_83DB4A8, 2, 4, -5, 3, 1, 2
- createtask sub_812B30C, 5, 2, 123, 63
- createtask sub_80A7E7C, 5, 5, 1, 6, 0, 8, 1
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 2, -5, 3, 1, 2
+ createtask sub_812B30C, 5, 123, 63
+ createtask sub_80A7E7C, 5, 1, 6, 0, 8, 1
jump _81D3F67
_81D4139:
- sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 5, 1, 0, 0, 6, 0
+ sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 1, 0, 0, 6, 0
wait
- sprite gBattleAnimSpriteTemplate_83C1FC8, 2, 3, 16, 1, 0
- createtask sub_812B340, 5, 2, 167, -64
+ sprite gBattleAnimSpriteTemplate_83C1FC8, 2, 16, 1, 0
+ createtask sub_812B340, 5, 167, -64
pause 8
- sprite gBattleAnimSpriteTemplate_83DB4A8, 2, 4, 3, -5, 1, 2
- createtask sub_812B30C, 5, 2, 123, 63
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 2, 3, -5, 1, 2
+ createtask sub_812B30C, 5, 123, 63
wait
- sprite gBattleAnimSpriteTemplate_83C1FC8, 2, 3, 12, 1, 0
- createtask sub_812B340, 5, 2, 167, -64
+ sprite gBattleAnimSpriteTemplate_83C1FC8, 2, 12, 1, 0
+ createtask sub_812B340, 5, 167, -64
pause 5
- sprite gBattleAnimSpriteTemplate_83DB4A8, 2, 4, -10, -8, 1, 2
- createtask sub_812B30C, 5, 2, 123, 63
- createtask sub_80A7E7C, 5, 5, 1, 6, 0, 8, 1
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 2, -10, -8, 1, 2
+ createtask sub_812B30C, 5, 123, 63
+ createtask sub_80A7E7C, 5, 1, 6, 0, 8, 1
wait
pause 4
- sprite gBattleAnimSpriteTemplate_83C1FC8, 2, 3, 8, 1, 0
- createtask sub_812B340, 5, 2, 167, -64
+ sprite gBattleAnimSpriteTemplate_83C1FC8, 2, 8, 1, 0
+ createtask sub_812B340, 5, 167, -64
pause 5
- sprite gBattleAnimSpriteTemplate_83DB4A8, 2, 4, -10, -8, 1, 2
- createtask sub_812B30C, 5, 2, 123, 63
- createtask sub_80A7E7C, 5, 5, 1, 6, 0, 8, 1
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 2, -10, -8, 1, 2
+ createtask sub_812B30C, 5, 123, 63
+ createtask sub_80A7E7C, 5, 1, 6, 0, 8, 1
wait
pause 2
- createtask sub_80E2DD8, 2, 4, 0, 4, 5, 1
- sprite gBattleAnimSpriteTemplate_83C1FC8, 2, 3, 4, 1, 0
- createtask sub_812B340, 5, 2, 167, -64
- sprite gBattleAnimSpriteTemplate_83DB4A8, 2, 4, -10, -8, 1, 2
- createtask sub_812B30C, 5, 2, 123, 63
- createtask sub_80A7E7C, 5, 5, 1, 6, 0, 8, 1
- createtask sub_80E2DD8, 2, 4, 0, 4, 5, 1
+ createtask sub_80E2DD8, 2, 0, 4, 5, 1
+ sprite gBattleAnimSpriteTemplate_83C1FC8, 2, 4, 1, 0
+ createtask sub_812B340, 5, 167, -64
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 2, -10, -8, 1, 2
+ createtask sub_812B30C, 5, 123, 63
+ createtask sub_80A7E7C, 5, 1, 6, 0, 8, 1
+ createtask sub_80E2DD8, 2, 0, 4, 5, 1
wait
- sprite gBattleAnimSpriteTemplate_83C1FC8, 2, 3, 4, 2, 0
- createtask sub_812B340, 5, 2, 167, -64
+ sprite gBattleAnimSpriteTemplate_83C1FC8, 2, 4, 2, 0
+ createtask sub_812B340, 5, 167, -64
pause 5
- sprite gBattleAnimSpriteTemplate_83DB4A8, 2, 4, -10, -8, 1, 2
- createtask sub_812B30C, 5, 2, 123, 63
- createtask sub_80A7E7C, 5, 5, 1, 6, 0, 8, 1
- createtask sub_80E2DD8, 2, 4, 0, 4, 5, 1
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 2, -10, -8, 1, 2
+ createtask sub_812B30C, 5, 123, 63
+ createtask sub_80A7E7C, 5, 1, 6, 0, 8, 1
+ createtask sub_80E2DD8, 2, 0, 4, 5, 1
wait
call _81D4371
call _81D4371
call _81D4371
call _81D4371
- sprite gBattleAnimSpriteTemplate_83DB4A8, 2, 4, -10, -8, 1, 0
- createtask sub_812B30C, 5, 2, 141, 63
- createtask sub_80A7E7C, 5, 5, 1, 8, 0, 24, 1
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 2, -10, -8, 1, 0
+ createtask sub_812B30C, 5, 141, 63
+ createtask sub_80A7E7C, 5, 1, 8, 0, 24, 1
pause 6
- sprite gBattleAnimSpriteTemplate_83DB4A8, 2, 4, 10, 10, 1, 0
- createtask sub_812B30C, 5, 2, 141, 63
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 2, 10, 10, 1, 0
+ createtask sub_812B30C, 5, 141, 63
pause 6
- sprite gBattleAnimSpriteTemplate_83DB4A8, 2, 4, 3, -5, 1, 0
- createtask sub_812B30C, 5, 2, 141, 63
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 2, 3, -5, 1, 0
+ createtask sub_812B30C, 5, 141, 63
pause 6
- sprite gBattleAnimSpriteTemplate_83DB4A8, 2, 4, -5, 3, 1, 0
- createtask sub_812B30C, 5, 2, 141, 63
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 2, -5, 3, 1, 0
+ createtask sub_812B30C, 5, 141, 63
wait
- sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 5, 1, 0, 6, 0, 0
+ sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 1, 0, 6, 0, 0
jump _81D3F67
_81D4371:
- sprite gBattleAnimSpriteTemplate_83C1FC8, 2, 3, 4, 3, 0
- createtask sub_812B340, 5, 2, 167, -64
- sprite gBattleAnimSpriteTemplate_83DB4A8, 2, 4, 0, 0, 1, 2
- createtask sub_812B30C, 5, 2, 123, 63
- createtask sub_80A7E7C, 5, 5, 1, 6, 0, 8, 1
- createtask sub_80E2DD8, 2, 4, 0, 4, 5, 1
+ sprite gBattleAnimSpriteTemplate_83C1FC8, 2, 4, 3, 0
+ createtask sub_812B340, 5, 167, -64
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 2, 0, 0, 1, 2
+ createtask sub_812B30C, 5, 123, 63
+ createtask sub_80A7E7C, 5, 1, 6, 0, 8, 1
+ createtask sub_80E2DD8, 2, 0, 4, 5, 1
wait
ret
Move_COSMIC_POWER: @ 81D43C5
loadsprite 10049
- createtask sub_812B340, 5, 2, 243, 0
+ createtask sub_812B340, 5, 243, 0
panse_19 SE_W322, 0
- createtask sub_80E3A08, 2, 4, 0, 0, 15, 0
+ createtask sub_80E3A08, 2, 0, 0, 15, 0
wait
fadetobg 16
waitbgfadeout
- createtask sub_80E3A58, 2, 4, 0, 128, 0, -1
+ createtask sub_80E3A58, 2, 0, 128, 0, -1
waitbgfadein
pause 70
- createtask sub_812B30C, 5, 2, 228, -64
- sprite gBattleAnimSpriteTemplate_83D6C88, 2, 6, -15, 0, 0, 0, 32, 60
+ createtask sub_812B30C, 5, 228, -64
+ sprite gBattleAnimSpriteTemplate_83D6C88, 2, -15, 0, 0, 0, 32, 60
pause 8
- sprite gBattleAnimSpriteTemplate_83D6C88, 2, 6, 12, -5, 0, 0, 32, 60
+ sprite gBattleAnimSpriteTemplate_83D6C88, 2, 12, -5, 0, 0, 32, 60
pause 40
- createtask sub_80E3A08, 2, 4, 0, 15, 0, 0
+ createtask sub_80E3A08, 2, 0, 15, 0, 0
wait
restorebg
waitbgfadeout
@@ -9041,40 +9041,40 @@ Move_BLAST_BURN: @ 81D444A
monbg 3
setalpha 12, 8
panse_19 SE_W221, 192
- sprite gBattleAnimSpriteTemplate_83D9538, 2, 6, -32, 0, 24, 0, 0, 0
- sprite gBattleAnimSpriteTemplate_83D9538, 2, 6, -20, -10, 24, 0, 0, 0
- sprite gBattleAnimSpriteTemplate_83D9538, 66, 6, 0, -16, 24, 0, 0, 0
- sprite gBattleAnimSpriteTemplate_83D9538, 66, 6, 20, -10, 24, 0, 0, 0
- sprite gBattleAnimSpriteTemplate_83D9538, 66, 6, 32, 0, 24, 0, 0, 0
- sprite gBattleAnimSpriteTemplate_83D9538, 66, 6, 20, 10, 24, 0, 0, 0
- sprite gBattleAnimSpriteTemplate_83D9538, 2, 6, 0, 16, 24, 0, 0, 0
- sprite gBattleAnimSpriteTemplate_83D9538, 2, 6, -20, 10, 24, 0, 0, 0
+ sprite gBattleAnimSpriteTemplate_83D9538, 2, -32, 0, 24, 0, 0, 0
+ sprite gBattleAnimSpriteTemplate_83D9538, 2, -20, -10, 24, 0, 0, 0
+ sprite gBattleAnimSpriteTemplate_83D9538, 66, 0, -16, 24, 0, 0, 0
+ sprite gBattleAnimSpriteTemplate_83D9538, 66, 20, -10, 24, 0, 0, 0
+ sprite gBattleAnimSpriteTemplate_83D9538, 66, 32, 0, 24, 0, 0, 0
+ sprite gBattleAnimSpriteTemplate_83D9538, 66, 20, 10, 24, 0, 0, 0
+ sprite gBattleAnimSpriteTemplate_83D9538, 2, 0, 16, 24, 0, 0, 0
+ sprite gBattleAnimSpriteTemplate_83D9538, 2, -20, 10, 24, 0, 0, 0
pause 25
panse_19 SE_W172B, 192
- sprite gBattleAnimSpriteTemplate_83D9538, 2, 6, -64, 0, 24, 0, 0, 0
- sprite gBattleAnimSpriteTemplate_83D9538, 6, 6, -40, -20, 24, 0, 0, 0
- sprite gBattleAnimSpriteTemplate_83D9538, 70, 6, 0, -32, 24, 0, 0, 0
- sprite gBattleAnimSpriteTemplate_83D9538, 70, 6, 40, -20, 24, 0, 0, 0
- createtask sub_80A7E7C, 5, 5, 1, 6, 0, 8, 1
- sprite gBattleAnimSpriteTemplate_83D9538, 66, 6, 64, 0, 24, 0, 0, 0
- sprite gBattleAnimSpriteTemplate_83D9538, 66, 6, 40, 20, 24, 0, 0, 0
- sprite gBattleAnimSpriteTemplate_83D9538, 2, 6, 0, 32, 24, 0, 0, 0
- sprite gBattleAnimSpriteTemplate_83D9538, 2, 6, -40, 20, 24, 0, 0, 0
- createtask sub_80E2324, 2, 3, 257, 257, 257
+ sprite gBattleAnimSpriteTemplate_83D9538, 2, -64, 0, 24, 0, 0, 0
+ sprite gBattleAnimSpriteTemplate_83D9538, 6, -40, -20, 24, 0, 0, 0
+ sprite gBattleAnimSpriteTemplate_83D9538, 70, 0, -32, 24, 0, 0, 0
+ sprite gBattleAnimSpriteTemplate_83D9538, 70, 40, -20, 24, 0, 0, 0
+ createtask sub_80A7E7C, 5, 1, 6, 0, 8, 1
+ sprite gBattleAnimSpriteTemplate_83D9538, 66, 64, 0, 24, 0, 0, 0
+ sprite gBattleAnimSpriteTemplate_83D9538, 66, 40, 20, 24, 0, 0, 0
+ sprite gBattleAnimSpriteTemplate_83D9538, 2, 0, 32, 24, 0, 0, 0
+ sprite gBattleAnimSpriteTemplate_83D9538, 2, -40, 20, 24, 0, 0, 0
+ createtask sub_80E2324, 2, 257, 257, 257
pause 25
panse_19 SE_W172B, 192
- sprite gBattleAnimSpriteTemplate_83D9538, 2, 6, -96, 0, 24, 0, 0, 0
- sprite gBattleAnimSpriteTemplate_83D9538, 6, 6, -60, -30, 24, 0, 0, 0
- sprite gBattleAnimSpriteTemplate_83D9538, 70, 6, 0, -48, 24, 0, 0, 0
- sprite gBattleAnimSpriteTemplate_83D9538, 70, 6, 60, -30, 24, 0, 0, 0
- sprite gBattleAnimSpriteTemplate_83DB4A8, 130, 4, -4, 3, 1, 0
- createtask sub_80A7E7C, 5, 5, 1, 12, 0, 20, 1
- createtask sub_80E26BC, 2, 4, 2, 0, 10, 1
- sprite gBattleAnimSpriteTemplate_83D9538, 66, 6, 96, 0, 24, 0, 0, 0
- sprite gBattleAnimSpriteTemplate_83D9538, 66, 6, 60, 30, 24, 0, 0, 0
- sprite gBattleAnimSpriteTemplate_83D9538, 2, 6, 0, 48, 24, 0, 0, 0
- sprite gBattleAnimSpriteTemplate_83D9538, 2, 6, -60, 30, 24, 0, 0, 0
- createtask sub_80E2324, 2, 3, 257, 257, 257
+ sprite gBattleAnimSpriteTemplate_83D9538, 2, -96, 0, 24, 0, 0, 0
+ sprite gBattleAnimSpriteTemplate_83D9538, 6, -60, -30, 24, 0, 0, 0
+ sprite gBattleAnimSpriteTemplate_83D9538, 70, 0, -48, 24, 0, 0, 0
+ sprite gBattleAnimSpriteTemplate_83D9538, 70, 60, -30, 24, 0, 0, 0
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 130, -4, 3, 1, 0
+ createtask sub_80A7E7C, 5, 1, 12, 0, 20, 1
+ createtask sub_80E26BC, 2, 2, 0, 10, 1
+ sprite gBattleAnimSpriteTemplate_83D9538, 66, 96, 0, 24, 0, 0, 0
+ sprite gBattleAnimSpriteTemplate_83D9538, 66, 60, 30, 24, 0, 0, 0
+ sprite gBattleAnimSpriteTemplate_83D9538, 2, 0, 48, 24, 0, 0, 0
+ sprite gBattleAnimSpriteTemplate_83D9538, 2, -60, 30, 24, 0, 0, 0
+ createtask sub_80E2324, 2, 257, 257, 257
wait
clearmonbg 3
blendoff
@@ -9083,32 +9083,32 @@ Move_BLAST_BURN: @ 81D444A
Move_ROCK_TOMB: @ 81D468C
loadsprite 10250
loadsprite 10058
- createtask sub_80E26BC, 2, 4, 2, 0, 10, 1
+ createtask sub_80E26BC, 2, 2, 0, 10, 1
wait
- sprite gBattleAnimSpriteTemplate_83DADA8, 130, 5, 20, 12, 64, 114, 0
+ sprite gBattleAnimSpriteTemplate_83DADA8, 130, 20, 12, 64, 114, 0
pause 8
- createtask sub_80E26BC, 2, 4, 0, 2, 3, 1
+ createtask sub_80E26BC, 2, 0, 2, 3, 1
panse_19 SE_W070, 63
pause 8
- sprite gBattleAnimSpriteTemplate_83DADA8, 130, 5, -20, 12, 64, 98, 0
+ sprite gBattleAnimSpriteTemplate_83DADA8, 130, -20, 12, 64, 98, 0
pause 8
- createtask sub_80E26BC, 2, 4, 0, 2, 3, 1
+ createtask sub_80E26BC, 2, 0, 2, 3, 1
panse_19 SE_W070, 63
pause 8
- sprite gBattleAnimSpriteTemplate_83DADA8, 194, 5, 3, 6, 64, 82, 0
+ sprite gBattleAnimSpriteTemplate_83DADA8, 194, 3, 6, 64, 82, 0
pause 8
- createtask sub_80E26BC, 2, 4, 0, 2, 3, 1
+ createtask sub_80E26BC, 2, 0, 2, 3, 1
panse_19 SE_W070, 63
pause 8
- sprite gBattleAnimSpriteTemplate_83DADA8, 130, 5, -3, 13, 64, 66, 0
+ sprite gBattleAnimSpriteTemplate_83DADA8, 130, -3, 13, 64, 66, 0
pause 8
- createtask sub_80E26BC, 2, 4, 0, 2, 3, 1
+ createtask sub_80E26BC, 2, 0, 2, 3, 1
panse_19 SE_W070, 63
pause 24
panse_19 SE_W063, 63
- sprite gBattleAnimSpriteTemplate_83DA8F4, 133, 2, 1, 50
- createtask sub_80A7E7C, 5, 5, 1, 3, 0, 20, 1
- createtask sub_80E26BC, 2, 4, 2, 0, 10, 1
+ sprite gBattleAnimSpriteTemplate_83DA8F4, 133, 1, 50
+ createtask sub_80A7E7C, 5, 1, 3, 0, 20, 1
+ createtask sub_80E26BC, 2, 2, 0, 10, 1
wait
end
@@ -9120,58 +9120,58 @@ Move_SILVER_WIND: @ 81D4773
monbg 3
monbgprio_29
pause 0
- createtask sub_80E2A7C, 10, 5, 1, 0, 0, 4, 0
+ createtask sub_80E2A7C, 10, 1, 0, 0, 4, 0
createtask sub_80E3B78, 2
jumpvareq 7, 1, _81D4974
fadetobg 22
waitbgfadeout
- createtask sub_80E3A58, 5, 4, 1536, 0, 0, -1
+ createtask sub_80E3A58, 5, 1536, 0, 0, -1
_81D47BA:
pause 0
- createtask sub_80E2A38, 10, 5, 1, 0, 4, 4, 0
+ createtask sub_80E2A38, 10, 1, 0, 4, 4, 0
waitbgfadein
- sprite gBattleAnimSpriteTemplate_83D693C, 194, 7, -32, 16, 0, 6, 2, 3, 1
- sprite gBattleAnimSpriteTemplate_83D693C, 194, 7, -8, 18, 64, 3, 2, 2, 1
- sprite gBattleAnimSpriteTemplate_83D693C, 120, 7, -24, 18, 90, 5, 1, 2, 1
- sprite gBattleAnimSpriteTemplate_83D693C, 120, 7, -40, 14, 128, 4, 1, 2, 1
+ sprite gBattleAnimSpriteTemplate_83D693C, 194, -32, 16, 0, 6, 2, 3, 1
+ sprite gBattleAnimSpriteTemplate_83D693C, 194, -8, 18, 64, 3, 2, 2, 1
+ sprite gBattleAnimSpriteTemplate_83D693C, 120, -24, 18, 90, 5, 1, 2, 1
+ sprite gBattleAnimSpriteTemplate_83D693C, 120, -40, 14, 128, 4, 1, 2, 1
pause 0
- sprite gBattleAnimSpriteTemplate_83D6954, 194, 7, -32, 16, 0, 6, 2, 3, 1
- sprite gBattleAnimSpriteTemplate_83D6954, 194, 7, -8, 18, 64, 3, 2, 2, 1
- sprite gBattleAnimSpriteTemplate_83D6954, 120, 7, -24, 18, 90, 5, 1, 2, 1
- sprite gBattleAnimSpriteTemplate_83D6954, 120, 7, -40, 14, 128, 4, 1, 2, 1
+ sprite gBattleAnimSpriteTemplate_83D6954, 194, -32, 16, 0, 6, 2, 3, 1
+ sprite gBattleAnimSpriteTemplate_83D6954, 194, -8, 18, 64, 3, 2, 2, 1
+ sprite gBattleAnimSpriteTemplate_83D6954, 120, -24, 18, 90, 5, 1, 2, 1
+ sprite gBattleAnimSpriteTemplate_83D6954, 120, -40, 14, 128, 4, 1, 2, 1
pause 0
- sprite gBattleAnimSpriteTemplate_83D696C, 194, 7, -32, 16, 0, 6, 2, 3, 1
- sprite gBattleAnimSpriteTemplate_83D696C, 194, 7, -8, 18, 64, 3, 2, 2, 1
- sprite gBattleAnimSpriteTemplate_83D696C, 120, 7, -24, 18, 90, 5, 1, 2, 1
- sprite gBattleAnimSpriteTemplate_83D696C, 120, 7, -40, 14, 128, 4, 1, 2, 1
+ sprite gBattleAnimSpriteTemplate_83D696C, 194, -32, 16, 0, 6, 2, 3, 1
+ sprite gBattleAnimSpriteTemplate_83D696C, 194, -8, 18, 64, 3, 2, 2, 1
+ sprite gBattleAnimSpriteTemplate_83D696C, 120, -24, 18, 90, 5, 1, 2, 1
+ sprite gBattleAnimSpriteTemplate_83D696C, 120, -40, 14, 128, 4, 1, 2, 1
pause 6
- sprite gBattleAnimSpriteTemplate_83D693C, 194, 7, -4, 16, 0, 6, 1, 2, 1
- sprite gBattleAnimSpriteTemplate_83D693C, 194, 7, -16, 12, 192, 5, 2, 3, 1
+ sprite gBattleAnimSpriteTemplate_83D693C, 194, -4, 16, 0, 6, 1, 2, 1
+ sprite gBattleAnimSpriteTemplate_83D693C, 194, -16, 12, 192, 5, 2, 3, 1
pause 0
- sprite gBattleAnimSpriteTemplate_83D6954, 194, 7, -4, 16, 0, 6, 1, 2, 1
- sprite gBattleAnimSpriteTemplate_83D6954, 194, 7, -16, 12, 192, 5, 2, 3, 1
+ sprite gBattleAnimSpriteTemplate_83D6954, 194, -4, 16, 0, 6, 1, 2, 1
+ sprite gBattleAnimSpriteTemplate_83D6954, 194, -16, 12, 192, 5, 2, 3, 1
pause 0
- sprite gBattleAnimSpriteTemplate_83D696C, 194, 7, -4, 16, 0, 6, 1, 2, 1
- sprite gBattleAnimSpriteTemplate_83D696C, 194, 7, -16, 12, 192, 5, 2, 3, 1
+ sprite gBattleAnimSpriteTemplate_83D696C, 194, -4, 16, 0, 6, 1, 2, 1
+ sprite gBattleAnimSpriteTemplate_83D696C, 194, -16, 12, 192, 5, 2, 3, 1
wait
panse_19 SE_W016B, 63
clearmonbg 3
pause 0
restorebg
waitbgfadeout
- createtask sub_80E2A7C, 10, 5, 1, 0, 4, 0, 0
+ createtask sub_80E2A7C, 10, 1, 0, 4, 0, 0
setvar 7, -1
waitbgfadein
end
_81D4974:
fadetobg 23
waitbgfadeout
- createtask sub_80E3A58, 5, 4, -1536, 0, 0, -1
+ createtask sub_80E3A58, 5, -1536, 0, 0, -1
jump _81D47BA
Move_SNATCH: @ 81D498B
panse_19 SE_W036, 192
- createtask sub_80A8920, 5, 7, 0, -12, 4, 10, 10, 12, 6
+ createtask sub_80A8920, 5, 0, -12, 4, 10, 10, 12, 6
end
Move_DIVE: @ 81D49A5
@@ -9181,10 +9181,10 @@ Move_DIVE: @ 81D49A5
_81D49B4:
loadsprite 10156
panse_19 SE_W029, 192
- sprite gBattleAnimSpriteTemplate_83DA5D8, 2, 4, 0, 0, 13, 336
+ sprite gBattleAnimSpriteTemplate_83DA5D8, 2, 0, 0, 13, 336
wait
panse_19 SE_W291, 192
- sprite gBattleAnimSpriteTemplate_83DA614, 3, 1, 0
+ sprite gBattleAnimSpriteTemplate_83DA614, 3, 0
call _81D49F2
call _81D49F2
call _81D49F2
@@ -9192,8 +9192,8 @@ _81D49B4:
call _81D49F2
end
_81D49F2:
- sprite gBattleAnimSpriteTemplate_83DA62C, 5, 2, 0, 0
- sprite gBattleAnimSpriteTemplate_83DA62C, 5, 2, 1, 0
+ sprite gBattleAnimSpriteTemplate_83DA62C, 5, 0, 0
+ sprite gBattleAnimSpriteTemplate_83DA62C, 5, 1, 0
ret
_81D4A09:
loadsprite 10148
@@ -9201,7 +9201,7 @@ _81D4A09:
monbg 3
setalpha 12, 8
panse_19 SE_W153, 63
- sprite gBattleAnimSpriteTemplate_83DA614, 131, 1, 1
+ sprite gBattleAnimSpriteTemplate_83DA614, 131, 1
call _81D4A48
call _81D4A48
call _81D4A48
@@ -9215,25 +9215,25 @@ _81D4A09:
blendoff
end
_81D4A48:
- sprite gBattleAnimSpriteTemplate_83DA62C, 133, 2, 0, 1
- sprite gBattleAnimSpriteTemplate_83DA62C, 133, 2, 1, 1
+ sprite gBattleAnimSpriteTemplate_83DA62C, 133, 0, 1
+ sprite gBattleAnimSpriteTemplate_83DA62C, 133, 1, 1
ret
Move_ROCK_BLAST: @ 81D4A5F
loadsprite 10058
loadsprite 10135
- sprite gBattleAnimSpriteTemplate_83C1FB0, 2, 2, 4, 6
+ sprite gBattleAnimSpriteTemplate_83C1FB0, 2, 4, 6
pause 3
panse_19 SE_W207, 192
- sprite gBattleAnimSpriteTemplate_83DADE8, 130, 6, 16, 0, 0, 0, 25, 257
+ sprite gBattleAnimSpriteTemplate_83DADE8, 130, 16, 0, 0, 0, 25, 257
wait
- sprite gBattleAnimSpriteTemplate_83DB4A8, 131, 4, 0, 0, 1, 1
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 131, 0, 0, 1, 1
panse_19 SE_W088, 63
- sprite gBattleAnimSpriteTemplate_83DAC64, 130, 6, 0, 0, 20, 24, 14, 2
- createtask sub_80A7E7C, 2, 5, 1, 3, 0, 5, 1
- sprite gBattleAnimSpriteTemplate_83DAC64, 130, 6, 5, 0, -20, 24, 14, 1
- sprite gBattleAnimSpriteTemplate_83DAC64, 130, 6, 0, 5, 20, -24, 14, 2
- sprite gBattleAnimSpriteTemplate_83DAC64, 130, 6, -5, 0, -20, -24, 14, 2
+ sprite gBattleAnimSpriteTemplate_83DAC64, 130, 0, 0, 20, 24, 14, 2
+ createtask sub_80A7E7C, 2, 1, 3, 0, 5, 1
+ sprite gBattleAnimSpriteTemplate_83DAC64, 130, 5, 0, -20, 24, 14, 1
+ sprite gBattleAnimSpriteTemplate_83DAC64, 130, 0, 5, 20, -24, 14, 2
+ sprite gBattleAnimSpriteTemplate_83DAC64, 130, -5, 0, -20, -24, 14, 2
wait
end
@@ -9242,75 +9242,75 @@ Move_OVERHEAT: @ 81D4AFC
loadsprite 10135
monbg 3
setalpha 12, 18
- sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 5, 1, 1, 0, 5, 28
+ sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 1, 1, 0, 5, 28
wait
- createtask sub_80E4028, 5, 2, 0, 1
+ createtask sub_80E4028, 5, 0, 1
pause 1
- createtask sub_80E4178, 5, 1, 0
+ createtask sub_80E4178, 5, 0
pause 1
panse_19 SE_W082, 192
- createtask sub_80E4028, 5, 2, 1, 0
+ createtask sub_80E4028, 5, 1, 0
pause 1
- sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 5, 2, 1, 0, 13, 28
- createtask sub_80A7E7C, 5, 5, 0, 2, 0, 15, 1
+ sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 2, 1, 0, 13, 28
+ createtask sub_80A7E7C, 5, 0, 2, 0, 15, 1
wait
panse_19 SE_W172B, 192
- sprite gBattleAnimSpriteTemplate_83DB100, 2, 5, 1, 0, 30, 25, -20
- sprite gBattleAnimSpriteTemplate_83DB100, 2, 5, 1, 32, 30, 25, -20
- sprite gBattleAnimSpriteTemplate_83DB100, 2, 5, 1, 64, 30, 25, -20
- sprite gBattleAnimSpriteTemplate_83DB100, 2, 5, 1, 96, 30, 25, -20
- sprite gBattleAnimSpriteTemplate_83DB100, 2, 5, 1, 128, 30, 25, -20
- sprite gBattleAnimSpriteTemplate_83DB100, 66, 5, 1, 160, 30, 25, -20
- sprite gBattleAnimSpriteTemplate_83DB100, 66, 5, 1, 192, 30, 25, -20
- sprite gBattleAnimSpriteTemplate_83DB100, 66, 5, 1, 224, 30, 25, -20
+ sprite gBattleAnimSpriteTemplate_83DB100, 2, 1, 0, 30, 25, -20
+ sprite gBattleAnimSpriteTemplate_83DB100, 2, 1, 32, 30, 25, -20
+ sprite gBattleAnimSpriteTemplate_83DB100, 2, 1, 64, 30, 25, -20
+ sprite gBattleAnimSpriteTemplate_83DB100, 2, 1, 96, 30, 25, -20
+ sprite gBattleAnimSpriteTemplate_83DB100, 2, 1, 128, 30, 25, -20
+ sprite gBattleAnimSpriteTemplate_83DB100, 66, 1, 160, 30, 25, -20
+ sprite gBattleAnimSpriteTemplate_83DB100, 66, 1, 192, 30, 25, -20
+ sprite gBattleAnimSpriteTemplate_83DB100, 66, 1, 224, 30, 25, -20
pause 5
- sprite gBattleAnimSpriteTemplate_83DB100, 2, 5, 1, 0, 30, 25, 0
- sprite gBattleAnimSpriteTemplate_83DB100, 2, 5, 1, 32, 30, 25, 0
- sprite gBattleAnimSpriteTemplate_83DB100, 2, 5, 1, 64, 30, 25, 0
- sprite gBattleAnimSpriteTemplate_83DB100, 2, 5, 1, 96, 30, 25, 0
- sprite gBattleAnimSpriteTemplate_83DB100, 2, 5, 1, 128, 30, 25, 0
- sprite gBattleAnimSpriteTemplate_83DB100, 66, 5, 1, 160, 30, 25, 0
- sprite gBattleAnimSpriteTemplate_83DB100, 66, 5, 1, 192, 30, 25, 0
- sprite gBattleAnimSpriteTemplate_83DB100, 66, 5, 1, 224, 30, 25, 0
+ sprite gBattleAnimSpriteTemplate_83DB100, 2, 1, 0, 30, 25, 0
+ sprite gBattleAnimSpriteTemplate_83DB100, 2, 1, 32, 30, 25, 0
+ sprite gBattleAnimSpriteTemplate_83DB100, 2, 1, 64, 30, 25, 0
+ sprite gBattleAnimSpriteTemplate_83DB100, 2, 1, 96, 30, 25, 0
+ sprite gBattleAnimSpriteTemplate_83DB100, 2, 1, 128, 30, 25, 0
+ sprite gBattleAnimSpriteTemplate_83DB100, 66, 1, 160, 30, 25, 0
+ sprite gBattleAnimSpriteTemplate_83DB100, 66, 1, 192, 30, 25, 0
+ sprite gBattleAnimSpriteTemplate_83DB100, 66, 1, 224, 30, 25, 0
pause 5
- sprite gBattleAnimSpriteTemplate_83DB100, 2, 5, 1, 0, 30, 25, 10
- sprite gBattleAnimSpriteTemplate_83DB100, 2, 5, 1, 32, 30, 25, 10
- sprite gBattleAnimSpriteTemplate_83DB100, 2, 5, 1, 64, 30, 25, 10
- sprite gBattleAnimSpriteTemplate_83DB100, 2, 5, 1, 96, 30, 25, 10
- sprite gBattleAnimSpriteTemplate_83DB100, 2, 5, 1, 128, 30, 25, 10
- sprite gBattleAnimSpriteTemplate_83DB100, 66, 5, 1, 160, 30, 25, 10
- sprite gBattleAnimSpriteTemplate_83DB100, 66, 5, 1, 192, 30, 25, 10
- sprite gBattleAnimSpriteTemplate_83DB100, 66, 5, 1, 224, 30, 25, 10
+ sprite gBattleAnimSpriteTemplate_83DB100, 2, 1, 0, 30, 25, 10
+ sprite gBattleAnimSpriteTemplate_83DB100, 2, 1, 32, 30, 25, 10
+ sprite gBattleAnimSpriteTemplate_83DB100, 2, 1, 64, 30, 25, 10
+ sprite gBattleAnimSpriteTemplate_83DB100, 2, 1, 96, 30, 25, 10
+ sprite gBattleAnimSpriteTemplate_83DB100, 2, 1, 128, 30, 25, 10
+ sprite gBattleAnimSpriteTemplate_83DB100, 66, 1, 160, 30, 25, 10
+ sprite gBattleAnimSpriteTemplate_83DB100, 66, 1, 192, 30, 25, 10
+ sprite gBattleAnimSpriteTemplate_83DB100, 66, 1, 224, 30, 25, 10
pause 5
wait
- sprite gBattleAnimSpriteTemplate_83DB4A8, 131, 4, -5, 3, 1, 0
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 131, -5, 3, 1, 0
panse_19 SE_W007, 63
- createtask sub_80A7E7C, 2, 5, 1, 10, 0, 25, 1
+ createtask sub_80A7E7C, 2, 1, 10, 0, 25, 1
pause 6
- sprite gBattleAnimSpriteTemplate_83DB4A8, 131, 4, 8, -5, 1, 0
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 131, 8, -5, 1, 0
panse_19 SE_W007, 63
pause 8
- sprite gBattleAnimSpriteTemplate_83DB4A8, 131, 4, 10, 10, 1, 0
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 131, 10, 10, 1, 0
panse_19 SE_W007, 63
pause 8
- sprite gBattleAnimSpriteTemplate_83DB4A8, 131, 4, 0, 0, 1, 0
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 131, 0, 0, 1, 0
panse_19 SE_W007, 63
- createtask sub_80E4178, 5, 1, 1
+ createtask sub_80E4178, 5, 1
pause 1
- sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 5, 2, -1, 0, 13, 19026
- createtask sub_80A7E7C, 5, 5, 0, 3, 0, 15, 1
+ sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 2, -1, 0, 13, 19026
+ createtask sub_80A7E7C, 5, 0, 3, 0, 15, 1
wait
- createtask sub_80E40D0, 5, 2, 0, 1
+ createtask sub_80E40D0, 5, 0, 1
pause 1
- sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 5, 1, 1, 5, 0, 28
+ sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 1, 1, 5, 0, 28
wait
clearmonbg 3
blendoff
wait
pause 15
- createtask sub_80E40D0, 5, 2, 1, 0
+ createtask sub_80E40D0, 5, 1, 0
pause 1
- sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 5, 2, 0, 13, 0, 19026
+ sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 2, 0, 13, 0, 19026
wait
end
@@ -9322,49 +9322,49 @@ Move_HYDRO_CANNON: @ 81D4DDE
panse_19 SE_W057, 192
sprite gBattleAnimSpriteTemplate_83D92D0, 130
pause 10
- createtask sub_80E2324, 2, 3, 257, 257, 257
+ createtask sub_80E2324, 2, 257, 257, 257
pause 30
panse_1B SE_W056, 192, 63, 2, 0
call _81D4EA8
- createtask sub_80A7E7C, 5, 5, 1, 10, 0, 40, 1
- sprite gBattleAnimSpriteTemplate_83DB4D8, 130, 4, 0, 0, 1, 0
+ createtask sub_80A7E7C, 5, 1, 10, 0, 40, 1
+ sprite gBattleAnimSpriteTemplate_83DB4D8, 130, 0, 0, 1, 0
call _81D4EA8
- sprite gBattleAnimSpriteTemplate_83DB4D8, 130, 4, 0, 0, 1, 0
+ sprite gBattleAnimSpriteTemplate_83DB4D8, 130, 0, 0, 1, 0
call _81D4EA8
- sprite gBattleAnimSpriteTemplate_83DB4D8, 130, 4, 0, 0, 1, 0
+ sprite gBattleAnimSpriteTemplate_83DB4D8, 130, 0, 0, 1, 0
call _81D4EA8
- sprite gBattleAnimSpriteTemplate_83DB4D8, 130, 4, 0, 0, 1, 0
+ sprite gBattleAnimSpriteTemplate_83DB4D8, 130, 0, 0, 1, 0
call _81D4EA8
- sprite gBattleAnimSpriteTemplate_83DB4D8, 130, 4, 0, 0, 1, 0
+ sprite gBattleAnimSpriteTemplate_83DB4D8, 130, 0, 0, 1, 0
call _81D4EA8
- sprite gBattleAnimSpriteTemplate_83DB4D8, 130, 4, 0, 0, 1, 0
+ sprite gBattleAnimSpriteTemplate_83DB4D8, 130, 0, 0, 1, 0
wait
- createtask sub_80E2324, 2, 3, 257, 257, 257
+ createtask sub_80E2324, 2, 257, 257, 257
wait
clearmonbg 3
blendoff
end
_81D4EA8:
- sprite gBattleAnimSpriteTemplate_83D92E8, 130, 6, 10, -10, 0, 0, 15, 257
+ sprite gBattleAnimSpriteTemplate_83D92E8, 130, 10, -10, 0, 0, 15, 257
pause 1
- sprite gBattleAnimSpriteTemplate_83D92E8, 130, 6, 10, -10, 0, 0, 15, 257
+ sprite gBattleAnimSpriteTemplate_83D92E8, 130, 10, -10, 0, 0, 15, 257
pause 1
- sprite gBattleAnimSpriteTemplate_83D92E8, 130, 6, 10, -10, 0, 0, 15, 257
+ sprite gBattleAnimSpriteTemplate_83D92E8, 130, 10, -10, 0, 0, 15, 257
pause 1
- sprite gBattleAnimSpriteTemplate_83D92E8, 130, 6, 10, -10, 0, 0, 15, 257
+ sprite gBattleAnimSpriteTemplate_83D92E8, 130, 10, -10, 0, 0, 15, 257
pause 1
- sprite gBattleAnimSpriteTemplate_83D92E8, 130, 6, 10, -10, 0, 0, 15, 257
+ sprite gBattleAnimSpriteTemplate_83D92E8, 130, 10, -10, 0, 0, 15, 257
ret
Move_ASTONISH: @ 81D4F10
loadsprite 10273
panse_19 SE_W227, 192
- sprite gBattleAnimSpriteTemplate_83C1FB0, 2, 2, 4, 6
+ sprite gBattleAnimSpriteTemplate_83C1FB0, 2, 4, 6
pause 25
- sprite gBattleAnimSpriteTemplate_83DA62C, 133, 2, 0, 1
+ sprite gBattleAnimSpriteTemplate_83DA62C, 133, 0, 1
panse_19 SE_W166, 63
- sprite gBattleAnimSpriteTemplate_83DA62C, 133, 2, 1, 1
- createtask sub_80A7FA0, 2, 5, 1, 4, 0, 5, 1
+ sprite gBattleAnimSpriteTemplate_83DA62C, 133, 1, 1
+ createtask sub_80A7FA0, 2, 1, 4, 0, 5, 1
createtask sub_80D1E38, 3
wait
end
@@ -9418,29 +9418,29 @@ _81D4FD4:
call _81D4FF3
jump _81D4FA0
_81D4FF3:
- sprite gBattleAnimSpriteTemplate_83DB4A8, 131, 4, -10, -8, 1, 1
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 131, -10, -8, 1, 1
panse_19 SE_W070, 63
- createtask sub_80A7E7C, 2, 5, 1, 0, 3, 5, 1
- sprite gBattleAnimSpriteTemplate_83DAE00, 130, 4, -12, 27, 2, 3
- sprite gBattleAnimSpriteTemplate_83DAE00, 130, 4, 8, 28, 3, 4
- sprite gBattleAnimSpriteTemplate_83DAE00, 130, 4, -4, 30, 2, 3
- sprite gBattleAnimSpriteTemplate_83DAE00, 130, 4, 12, 25, 4, 4
+ createtask sub_80A7E7C, 2, 1, 0, 3, 5, 1
+ sprite gBattleAnimSpriteTemplate_83DAE00, 130, -12, 27, 2, 3
+ sprite gBattleAnimSpriteTemplate_83DAE00, 130, 8, 28, 3, 4
+ sprite gBattleAnimSpriteTemplate_83DAE00, 130, -4, 30, 2, 3
+ sprite gBattleAnimSpriteTemplate_83DAE00, 130, 12, 25, 4, 4
ret
_81D5054:
- sprite gBattleAnimSpriteTemplate_83DB4A8, 131, 4, 10, -8, 1, 1
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 131, 10, -8, 1, 1
panse_19 SE_W088, 63
- createtask sub_80A7E7C, 2, 5, 1, 0, 3, 5, 1
- sprite gBattleAnimSpriteTemplate_83DAE00, 130, 4, -12, 32, 3, 4
- sprite gBattleAnimSpriteTemplate_83DAE00, 130, 4, 8, 31, 2, 2
- sprite gBattleAnimSpriteTemplate_83DAE00, 130, 4, -4, 28, 2, 3
- sprite gBattleAnimSpriteTemplate_83DAE00, 130, 4, 12, 30, 4, 3
+ createtask sub_80A7E7C, 2, 1, 0, 3, 5, 1
+ sprite gBattleAnimSpriteTemplate_83DAE00, 130, -12, 32, 3, 4
+ sprite gBattleAnimSpriteTemplate_83DAE00, 130, 8, 31, 2, 2
+ sprite gBattleAnimSpriteTemplate_83DAE00, 130, -4, 28, 2, 3
+ sprite gBattleAnimSpriteTemplate_83DAE00, 130, 12, 30, 4, 3
ret
Move_MAGIC_COAT: @ 81D50B5
loadsprite 10170
setalpha 0, 16
panse_1D SE_W112, 192, 15
- sprite gBattleAnimSpriteTemplate_83DA708, 3, 3, 40, 0, 10170
+ sprite gBattleAnimSpriteTemplate_83DA708, 3, 40, 0, 10170
wait
pause 1
blendoff
@@ -9452,27 +9452,27 @@ Move_WATER_PULSE: @ 81D50D2
monbg 1
monbgprio_28 1
panse_19 SE_W145C, 192
- sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 5, 1, 0, 0, 7, 29472
+ sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 1, 0, 0, 7, 29472
pause 10
- sprite gBattleAnimSpriteTemplate_83D9408, 66, 7, 100, 100, 8, 1, 20, 40, 0
- sprite gBattleAnimSpriteTemplate_83D9408, 66, 7, 20, 100, 16, 2, 10, 35, 1
- sprite gBattleAnimSpriteTemplate_83D9408, 66, 7, 200, 80, 8, 1, 40, 20, 0
- sprite gBattleAnimSpriteTemplate_83D9408, 66, 7, 80, 60, 10, 3, 20, 50, 0
- sprite gBattleAnimSpriteTemplate_83D9408, 66, 7, 140, 100, 16, 1, 20, 30, 1
+ sprite gBattleAnimSpriteTemplate_83D9408, 66, 100, 100, 8, 1, 20, 40, 0
+ sprite gBattleAnimSpriteTemplate_83D9408, 66, 20, 100, 16, 2, 10, 35, 1
+ sprite gBattleAnimSpriteTemplate_83D9408, 66, 200, 80, 8, 1, 40, 20, 0
+ sprite gBattleAnimSpriteTemplate_83D9408, 66, 80, 60, 10, 3, 20, 50, 0
+ sprite gBattleAnimSpriteTemplate_83D9408, 66, 140, 100, 16, 1, 20, 30, 1
panse_19 SE_W145C, 63
wait
panse_19 SE_W202, 192
- sprite gBattleAnimSpriteTemplate_83D757C, 130, 4, 0, 0, 40, 15
+ sprite gBattleAnimSpriteTemplate_83D757C, 130, 0, 0, 40, 15
pause 5
panse_19 SE_W202, 192
- sprite gBattleAnimSpriteTemplate_83D757C, 130, 4, 0, 0, 40, 15
+ sprite gBattleAnimSpriteTemplate_83D757C, 130, 0, 0, 40, 15
pause 5
panse_19 SE_W202, 192
- sprite gBattleAnimSpriteTemplate_83D757C, 130, 4, 0, 0, 40, 15
+ sprite gBattleAnimSpriteTemplate_83D757C, 130, 0, 0, 40, 15
pause 13
- createtask sub_80A7E7C, 2, 5, 1, 0, 8, 18, 1
+ createtask sub_80A7E7C, 2, 1, 0, 8, 18, 1
wait
- sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 5, 1, 1, 7, 0, 29472
+ sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 1, 1, 7, 0, 29472
wait
clearmonbg 3
end
@@ -9485,18 +9485,18 @@ Move_PSYCHO_BOOST: @ 81D51C7
createtask sub_812C624, 5
waitbgfadein
pause 6
- createtask sub_80E1F8C, 2, 6, 1, 2, 8, 0, 10, 0
+ createtask sub_80E1F8C, 2, 1, 2, 8, 0, 10, 0
pause 0
monbgprio_28 0
setalpha 8, 8
pause 10
- createtask sub_80A7E7C, 2, 5, 0, 3, 0, 240, 0
+ createtask sub_80A7E7C, 2, 0, 3, 0, 240, 0
panse_1C SE_W060B, 192, 14, 10
sprite gBattleAnimSpriteTemplate_83DAA68, 2
pause 110
panse_1C SE_W060B, 192, 7, 10
wait
- createtask sub_80A7FA0, 2, 5, 1, -8, 1, 24, 1
+ createtask sub_80A7FA0, 2, 1, -8, 1, 24, 1
panse_19 SE_W043, 63
wait
clearmonbg 2
@@ -9507,20 +9507,20 @@ Move_PSYCHO_BOOST: @ 81D51C7
Move_KNOCK_OFF: @ 81D523B
loadsprite 10277
loadsprite 10135
- sprite gBattleAnimSpriteTemplate_83C1FB0, 2, 2, 4, 6
+ sprite gBattleAnimSpriteTemplate_83C1FB0, 2, 4, 6
pause 4
panse_19 SE_W233, 63
- sprite gBattleAnimSpriteTemplate_8402AE4, 130, 2, -16, -16
+ sprite gBattleAnimSpriteTemplate_8402AE4, 130, -16, -16
pause 8
- sprite gBattleAnimSpriteTemplate_83DB3DC, 2, 7, 31, 5, 1, 32767, 10, 0, 0
- sprite gBattleAnimSpriteTemplate_83DB4A8, 131, 4, 0, 0, 1, 2
+ sprite gBattleAnimSpriteTemplate_83DB3DC, 2, 31, 5, 1, 32767, 10, 0, 0
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 131, 0, 0, 1, 2
panse_19 SE_W004, 63
- sprite gBattleAnimSpriteTemplate_83C1FF8, 2, 5, 1, -12, 10, 0, 3
- sprite gBattleAnimSpriteTemplate_83C1FE0, 2, 3, 0, 0, 5
+ sprite gBattleAnimSpriteTemplate_83C1FF8, 2, 1, -12, 10, 0, 3
+ sprite gBattleAnimSpriteTemplate_83C1FE0, 2, 0, 0, 5
pause 3
- createtask sub_80A8154, 2, 5, 1, 0, 3, 6, 1
+ createtask sub_80A8154, 2, 1, 0, 3, 6, 1
pause 5
- sprite gBattleAnimSpriteTemplate_83C1FE0, 2, 3, 1, 0, 6
+ sprite gBattleAnimSpriteTemplate_83C1FE0, 2, 1, 0, 6
pause 10
wait
end
@@ -9529,16 +9529,16 @@ Move_DOOM_DESIRE: @ 81D52CB
createtask sub_80E0EE8, 2
pause 1
monbg 2
- createtask sub_80E0E24, 5, 2, 1, 0
- sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 5, 1, 1, 0, 4, 0
+ createtask sub_80E0E24, 5, 1, 0
+ sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 1, 1, 0, 4, 0
wait
setalpha 8, 8
panse_19 SE_W060, 192
- createtask sub_80A8D34, 5, 5, -4, -4, 15, 0, 1
+ createtask sub_80A8D34, 5, -4, -4, 15, 0, 1
wait
pause 20
- createtask sub_80E0E24, 5, 2, 1, 1
- sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 5, 1, 1, 4, 0, 0
+ createtask sub_80E0E24, 5, 1, 1
+ sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 1, 1, 4, 0, 0
wait
clearmonbg 2
blendoff
@@ -9546,7 +9546,7 @@ Move_DOOM_DESIRE: @ 81D52CB
Unknown_81D532F: @ 81D532F
loadsprite 10198
- sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 5, 1, 3, 0, 16, 32767
+ sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 1, 3, 0, 16, 32767
wait
pause 10
createtask sub_812E14C, 5
@@ -9557,23 +9557,23 @@ Unknown_81D532F: @ 81D532F
pause 10
panse_19 SE_W109, 63
pause 23
- createtask sub_80A8154, 2, 5, 1, 10, 0, 20, 1
+ createtask sub_80A8154, 2, 1, 10, 0, 20, 1
panse_19 SE_W120, 63
- sprite gBattleAnimSpriteTemplate_83D7828, 3, 4, 0, 0, 1, 1
+ sprite gBattleAnimSpriteTemplate_83D7828, 3, 0, 0, 1, 1
pause 6
panse_19 SE_W120, 63
- sprite gBattleAnimSpriteTemplate_83D7828, 3, 4, 24, -24, 1, 1
+ sprite gBattleAnimSpriteTemplate_83D7828, 3, 24, -24, 1, 1
pause 6
panse_19 SE_W120, 63
- sprite gBattleAnimSpriteTemplate_83D7828, 3, 4, -16, 16, 1, 1
+ sprite gBattleAnimSpriteTemplate_83D7828, 3, -16, 16, 1, 1
pause 6
panse_19 SE_W120, 63
- sprite gBattleAnimSpriteTemplate_83D7828, 3, 4, -24, -12, 1, 1
+ sprite gBattleAnimSpriteTemplate_83D7828, 3, -24, -12, 1, 1
pause 6
panse_19 SE_W120, 63
- sprite gBattleAnimSpriteTemplate_83D7828, 3, 4, 16, 16, 1, 1
+ sprite gBattleAnimSpriteTemplate_83D7828, 3, 16, 16, 1, 1
wait
- sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 5, 1, 3, 16, 0, 32767
+ sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 1, 3, 16, 0, 32767
wait
end
@@ -9584,35 +9584,35 @@ Move_SKY_UPPERCUT: @ 81D53ED
fadetobg 17
waitbgfadeout
panse_19 SE_W327, 192
- createtask sub_80D9C80, 5, 1, 55
+ createtask sub_80D9C80, 5, 55
waitbgfadein
setalpha 12, 8
pause 38
- sprite gBattleAnimSpriteTemplate_83C1FF8, 2, 5, 0, 28, 0, 0, 5
+ sprite gBattleAnimSpriteTemplate_83C1FF8, 2, 0, 28, 0, 0, 5
pause 4
- createtask sub_80A7FA0, 2, 5, 1, 4, 0, 6, 1
+ createtask sub_80A7FA0, 2, 1, 4, 0, 6, 1
panse_19 SE_W233B, 63
- sprite gBattleAnimSpriteTemplate_83DB4A8, 131, 4, -28, 28, 1, 1
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 131, -28, 28, 1, 1
pause 1
panse_19 SE_W233B, 63
- sprite gBattleAnimSpriteTemplate_83DB4A8, 131, 4, -15, 8, 1, 1
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 131, -15, 8, 1, 1
panse_19 SE_W233B, 63
pause 1
panse_19 SE_W233B, 63
- sprite gBattleAnimSpriteTemplate_83DB4A8, 131, 4, -5, -12, 1, 1
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 131, -5, -12, 1, 1
pause 1
panse_19 SE_W233B, 63
- sprite gBattleAnimSpriteTemplate_83DB4A8, 131, 4, 0, -32, 1, 1
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 131, 0, -32, 1, 1
pause 1
panse_19 SE_W233B, 63
- sprite gBattleAnimSpriteTemplate_83DB4A8, 131, 4, 5, -52, 1, 1
- sprite gBattleAnimSpriteTemplate_83C1FF8, 2, 5, 1, -26, 16, 1, 4
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 131, 5, -52, 1, 1
+ sprite gBattleAnimSpriteTemplate_83C1FF8, 2, 1, -26, 16, 1, 4
pause 4
- createtask sub_80A8154, 2, 5, 1, 0, 3, 6, 1
+ createtask sub_80A8154, 2, 1, 0, 3, 6, 1
pause 30
- sprite gBattleAnimSpriteTemplate_83C1FE0, 2, 3, 0, 0, 6
+ sprite gBattleAnimSpriteTemplate_83C1FE0, 2, 0, 0, 6
pause 4
- sprite gBattleAnimSpriteTemplate_83C1FE0, 2, 3, 1, 0, 6
+ sprite gBattleAnimSpriteTemplate_83C1FE0, 2, 1, 0, 6
clearmonbg 3
blendoff
restorebg
@@ -9641,39 +9641,39 @@ Move_TWISTER: @ 81D553A
monbg 3
monbgprio_28 1
panse_19 SE_W239, 63
- sprite gBattleAnimSpriteTemplate_83D64B4, 130, 5, 120, 70, 5, 70, 30
+ sprite gBattleAnimSpriteTemplate_83D64B4, 130, 120, 70, 5, 70, 30
pause 1
- sprite gBattleAnimSpriteTemplate_83D64B4, 130, 5, 115, 55, 6, 60, 25
+ sprite gBattleAnimSpriteTemplate_83D64B4, 130, 115, 55, 6, 60, 25
pause 1
- sprite gBattleAnimSpriteTemplate_83D64B4, 130, 5, 115, 60, 7, 60, 30
- sprite gBattleAnimSpriteTemplate_83D64B4, 130, 5, 115, 55, 10, 60, 30
+ sprite gBattleAnimSpriteTemplate_83D64B4, 130, 115, 60, 7, 60, 30
+ sprite gBattleAnimSpriteTemplate_83D64B4, 130, 115, 55, 10, 60, 30
pause 3
- sprite gBattleAnimSpriteTemplate_83DAE18, 130, 5, 100, 50, 4, 50, 26
+ sprite gBattleAnimSpriteTemplate_83DAE18, 130, 100, 50, 4, 50, 26
pause 1
- sprite gBattleAnimSpriteTemplate_83D64B4, 130, 5, 105, 25, 8, 60, 20
+ sprite gBattleAnimSpriteTemplate_83D64B4, 130, 105, 25, 8, 60, 20
pause 1
- sprite gBattleAnimSpriteTemplate_83D64B4, 130, 5, 115, 40, 10, 48, 30
+ sprite gBattleAnimSpriteTemplate_83D64B4, 130, 115, 40, 10, 48, 30
pause 3
- sprite gBattleAnimSpriteTemplate_83DAE18, 130, 5, 120, 30, 6, 45, 25
- sprite gBattleAnimSpriteTemplate_83D64B4, 130, 5, 115, 35, 10, 60, 30
+ sprite gBattleAnimSpriteTemplate_83DAE18, 130, 120, 30, 6, 45, 25
+ sprite gBattleAnimSpriteTemplate_83D64B4, 130, 115, 35, 10, 60, 30
pause 3
- sprite gBattleAnimSpriteTemplate_83DAE18, 130, 5, 105, 20, 8, 40, 0
+ sprite gBattleAnimSpriteTemplate_83DAE18, 130, 105, 20, 8, 40, 0
pause 3
- sprite gBattleAnimSpriteTemplate_83D64B4, 130, 5, 20, 255, 15, 32, 0
- sprite gBattleAnimSpriteTemplate_83D64B4, 130, 5, 110, 10, 8, 32, 20
+ sprite gBattleAnimSpriteTemplate_83D64B4, 130, 20, 255, 15, 32, 0
+ sprite gBattleAnimSpriteTemplate_83D64B4, 130, 110, 10, 8, 32, 20
wait
- sprite gBattleAnimSpriteTemplate_83DB4A8, 131, 4, -32, -16, 1, 3
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 131, -32, -16, 1, 3
panse_19 SE_W004, 63
- createtask sub_80A8154, 2, 5, 1, 3, 0, 12, 1
- createtask sub_80A8154, 2, 5, 3, 3, 0, 12, 1
+ createtask sub_80A8154, 2, 1, 3, 0, 12, 1
+ createtask sub_80A8154, 2, 3, 3, 0, 12, 1
pause 4
- sprite gBattleAnimSpriteTemplate_83DB4F0, 131, 2, 1, 3
+ sprite gBattleAnimSpriteTemplate_83DB4F0, 131, 1, 3
panse_19 SE_W004, 63
pause 4
- sprite gBattleAnimSpriteTemplate_83DB4F0, 131, 2, 1, 3
+ sprite gBattleAnimSpriteTemplate_83DB4F0, 131, 1, 3
panse_19 SE_W004, 63
pause 4
- sprite gBattleAnimSpriteTemplate_83DB4A8, 131, 4, 32, 20, 1, 3
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 131, 32, 20, 1, 3
panse_19 SE_W004, 63
wait
clearmonbg 3
@@ -9689,34 +9689,34 @@ Move_MAGICAL_LEAF: @ 81D5699
pause 1
panse_1C SE_W077, 192, 10, 5
createtask sub_80CC5F8, 5
- sprite gBattleAnimSpriteTemplate_83D649C, 2, 3, -3, -2, 10
+ sprite gBattleAnimSpriteTemplate_83D649C, 2, -3, -2, 10
pause 2
- sprite gBattleAnimSpriteTemplate_83D649C, 2, 3, -1, -1, 15
+ sprite gBattleAnimSpriteTemplate_83D649C, 2, -1, -1, 15
pause 2
- sprite gBattleAnimSpriteTemplate_83D649C, 2, 3, -4, -4, 7
+ sprite gBattleAnimSpriteTemplate_83D649C, 2, -4, -4, 7
pause 2
- sprite gBattleAnimSpriteTemplate_83D649C, 2, 3, 3, -3, 11
+ sprite gBattleAnimSpriteTemplate_83D649C, 2, 3, -3, 11
pause 2
- sprite gBattleAnimSpriteTemplate_83D649C, 2, 3, -1, -6, 8
+ sprite gBattleAnimSpriteTemplate_83D649C, 2, -1, -6, 8
pause 2
- sprite gBattleAnimSpriteTemplate_83D649C, 2, 3, 2, -1, 12
+ sprite gBattleAnimSpriteTemplate_83D649C, 2, 2, -1, 12
pause 2
- sprite gBattleAnimSpriteTemplate_83D649C, 2, 3, -3, -4, 13
+ sprite gBattleAnimSpriteTemplate_83D649C, 2, -3, -4, 13
pause 2
- sprite gBattleAnimSpriteTemplate_83D649C, 2, 3, 4, -5, 7
+ sprite gBattleAnimSpriteTemplate_83D649C, 2, 4, -5, 7
pause 2
- sprite gBattleAnimSpriteTemplate_83D649C, 2, 3, 2, -6, 11
+ sprite gBattleAnimSpriteTemplate_83D649C, 2, 2, -6, 11
pause 2
- sprite gBattleAnimSpriteTemplate_83D649C, 2, 3, -3, -5, 8
+ sprite gBattleAnimSpriteTemplate_83D649C, 2, -3, -5, 8
pause 60
panse_19 SE_W013B, 192
- sprite gBattleAnimSpriteTemplate_83D64E4, 131, 7, 20, -10, 20, 0, 32, 20, 0
- sprite gBattleAnimSpriteTemplate_83D64E4, 131, 7, 20, -10, 20, 0, 32, -20, 0
+ sprite gBattleAnimSpriteTemplate_83D64E4, 131, 20, -10, 20, 0, 32, 20, 0
+ sprite gBattleAnimSpriteTemplate_83D64E4, 131, 20, -10, 20, 0, 32, -20, 0
pause 30
panse_19 SE_W013, 63
- sprite gBattleAnimSpriteTemplate_83DB4A8, 132, 4, -10, -4, 1, 2
- sprite gBattleAnimSpriteTemplate_83DB4A8, 132, 4, 10, 4, 1, 2
- createtask sub_80A7FA0, 2, 5, 1, 2, 0, 8, 1
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 132, -10, -4, 1, 2
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 132, 10, 4, 1, 2
+ createtask sub_80A7FA0, 2, 1, 2, 0, 8, 1
pause 20
setvar 7, -1
wait
@@ -9727,21 +9727,21 @@ Move_MAGICAL_LEAF: @ 81D5699
Move_ICE_BALL: @ 81D57BA
loadsprite 10043
loadsprite 10141
- createtask sub_80D8FC0, 5, 1, 0
+ createtask sub_80D8FC0, 5, 0
jumpvareq 0, 4, _81D5831
_81D57D1:
panse_19 SE_W196, 192
- sprite gBattleAnimSpriteTemplate_83D9EF4, 130, 6, 15, 0, -12, -16, 30, -40
+ sprite gBattleAnimSpriteTemplate_83D9EF4, 130, 15, 0, -12, -16, 30, -40
pause 28
panse_19 SE_W280, 63
- createtask sub_80D8FC0, 5, 1, 0
+ createtask sub_80D8FC0, 5, 0
jumpvareq 0, 0, _81D5842
jumpvareq 0, 1, _81D5871
jumpvareq 0, 2, _81D58AA
jumpvareq 0, 3, _81D58ED
jumpvareq 0, 4, _81D5935
_81D581F:
- createtask sub_80D8FC0, 5, 1, 0
+ createtask sub_80D8FC0, 5, 0
jumpvareq 0, 4, _81D5838
_81D5830:
end
@@ -9755,7 +9755,7 @@ _81D5838:
waitbgfadein
jump _81D5830
_81D5842:
- createtask sub_80A9058, 2, 5, 0, 1, 8, 1, 0
+ createtask sub_80A9058, 2, 0, 1, 8, 1, 0
call _81D597D
call _81D597D
call _81D597D
@@ -9763,7 +9763,7 @@ _81D5842:
call _81D597D
jump _81D581F
_81D5871:
- createtask sub_80A9058, 2, 5, 0, 1, 10, 1, 0
+ createtask sub_80A9058, 2, 0, 1, 10, 1, 0
call _81D597D
call _81D597D
call _81D597D
@@ -9773,7 +9773,7 @@ _81D5871:
call _81D597D
jump _81D581F
_81D58AA:
- createtask sub_80A9058, 2, 5, 0, 1, 14, 1, 0
+ createtask sub_80A9058, 2, 0, 1, 14, 1, 0
call _81D597D
call _81D597D
call _81D597D
@@ -9785,7 +9785,7 @@ _81D58AA:
call _81D597D
jump _81D581F
_81D58ED:
- createtask sub_80A9058, 2, 5, 0, 1, 18, 1, 0
+ createtask sub_80A9058, 2, 0, 1, 18, 1, 0
call _81D597D
call _81D597D
call _81D597D
@@ -9798,7 +9798,7 @@ _81D58ED:
call _81D597D
jump _81D581F
_81D5935:
- createtask sub_80A9058, 2, 5, 0, 1, 30, 1, 0
+ createtask sub_80A9058, 2, 0, 1, 30, 1, 0
call _81D597D
call _81D597D
call _81D597D
@@ -9811,19 +9811,19 @@ _81D5935:
call _81D597D
jump _81D581F
_81D597D:
- sprite gBattleAnimSpriteTemplate_83D9F0C, 132, 2, -12, -16
+ sprite gBattleAnimSpriteTemplate_83D9F0C, 132, -12, -16
ret
Move_WEATHER_BALL: @ 81D5989
loadsprite 10283
- sprite gBattleAnimSpriteTemplate_83C1FC8, 2, 3, 8, 1, 0
+ sprite gBattleAnimSpriteTemplate_83C1FC8, 2, 8, 1, 0
pause 8
panse_19 SE_W207, 192
sprite gBattleAnimSpriteTemplate_83930A8, 2
wait
pause 15
panse_19 SE_W197, 0
- sprite gBattleAnimSpriteTemplate_83DB3DC, 2, 7, 31, 5, 1, 32767, 10, 0, 0
+ sprite gBattleAnimSpriteTemplate_83DB3DC, 2, 31, 5, 1, 32767, 10, 0, 0
wait
createtask sub_8132528, 2
pause 1
@@ -9834,75 +9834,75 @@ Move_WEATHER_BALL: @ 81D5989
jumpvareq 7, 4, _81D5B99
_81D59F4:
loadsprite 10135
- sprite gBattleAnimSpriteTemplate_83930C0, 130, 6, -30, -100, 25, 1, 0, 0
+ sprite gBattleAnimSpriteTemplate_83930C0, 130, -30, -100, 25, 1, 0, 0
wait
panse_19 SE_W025B, 63
- sprite gBattleAnimSpriteTemplate_83DB4A8, 132, 4, -10, 0, 1, 2
- createtask sub_80A7E7C, 2, 5, 1, 0, 3, 8, 1
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 132, -10, 0, 1, 2
+ createtask sub_80A7E7C, 2, 1, 0, 3, 8, 1
wait
end
_81D5A31:
loadsprite 10029
- sprite gBattleAnimSpriteTemplate_83D96AC, 130, 6, -30, -100, 25, 1, 40, 10
+ sprite gBattleAnimSpriteTemplate_83D96AC, 130, -30, -100, 25, 1, 40, 10
panse_19 SE_W172, 63
pause 10
- sprite gBattleAnimSpriteTemplate_83D96AC, 130, 6, -30, -100, 25, 1, -40, 20
+ sprite gBattleAnimSpriteTemplate_83D96AC, 130, -30, -100, 25, 1, -40, 20
panse_19 SE_W172, 63
pause 10
- sprite gBattleAnimSpriteTemplate_83D96AC, 130, 6, -30, -100, 25, 1, 0, 0
+ sprite gBattleAnimSpriteTemplate_83D96AC, 130, -30, -100, 25, 1, 0, 0
panse_19 SE_W172, 63
wait
panse_19 SE_W172B, 63
- createtask sub_80A7E7C, 2, 5, 1, 0, 3, 8, 1
+ createtask sub_80A7E7C, 2, 1, 0, 3, 8, 1
wait
end
_81D5A95:
loadsprite 10155
- sprite gBattleAnimSpriteTemplate_83D9438, 130, 6, -30, -100, 25, 1, 50, 10
+ sprite gBattleAnimSpriteTemplate_83D9438, 130, -30, -100, 25, 1, 50, 10
panse_19 SE_W152, 63
pause 8
- sprite gBattleAnimSpriteTemplate_83D9438, 130, 6, -30, -100, 25, 1, -20, 20
+ sprite gBattleAnimSpriteTemplate_83D9438, 130, -30, -100, 25, 1, -20, 20
panse_19 SE_W152, 63
pause 13
- sprite gBattleAnimSpriteTemplate_83D9438, 130, 6, -30, -100, 25, 1, 0, 0
+ sprite gBattleAnimSpriteTemplate_83D9438, 130, -30, -100, 25, 1, 0, 0
panse_19 SE_W152, 63
wait
- createtask sub_80A7E7C, 2, 5, 1, 0, 3, 8, 1
+ createtask sub_80A7E7C, 2, 1, 0, 3, 8, 1
panse_19 SE_W202, 63
wait
end
_81D5AF9:
loadsprite 10058
- sprite gBattleAnimSpriteTemplate_83DAE30, 130, 6, -30, -100, 25, 1, 30, 0
+ sprite gBattleAnimSpriteTemplate_83DAE30, 130, -30, -100, 25, 1, 30, 0
panse_19 SE_W088, 63
pause 5
- sprite gBattleAnimSpriteTemplate_83DAE30, 130, 6, -30, -100, 25, 1, -40, 20
+ sprite gBattleAnimSpriteTemplate_83DAE30, 130, -30, -100, 25, 1, -40, 20
panse_19 SE_W088, 63
pause 14
- sprite gBattleAnimSpriteTemplate_83DAE30, 130, 6, -30, -100, 25, 1, 0, 0
+ sprite gBattleAnimSpriteTemplate_83DAE30, 130, -30, -100, 25, 1, 0, 0
panse_19 SE_W088, 63
wait
panse_19 SE_W070, 63
- sprite gBattleAnimSpriteTemplate_83DAE00, 130, 4, -12, 27, 2, 3
- sprite gBattleAnimSpriteTemplate_83DAE00, 130, 4, 8, 28, 3, 4
- sprite gBattleAnimSpriteTemplate_83DAE00, 130, 4, -4, 30, 2, 3
- sprite gBattleAnimSpriteTemplate_83DAE00, 130, 4, 12, 25, 4, 4
- createtask sub_80A7FA0, 2, 5, 1, 2, 0, 8, 1
+ sprite gBattleAnimSpriteTemplate_83DAE00, 130, -12, 27, 2, 3
+ sprite gBattleAnimSpriteTemplate_83DAE00, 130, 8, 28, 3, 4
+ sprite gBattleAnimSpriteTemplate_83DAE00, 130, -4, 30, 2, 3
+ sprite gBattleAnimSpriteTemplate_83DAE00, 130, 12, 25, 4, 4
+ createtask sub_80A7FA0, 2, 1, 2, 0, 8, 1
wait
end
_81D5B99:
loadsprite 10263
loadsprite 10141
- sprite gBattleAnimSpriteTemplate_83D9E54, 130, 6, -30, -100, 25, 25, -40, 20
+ sprite gBattleAnimSpriteTemplate_83D9E54, 130, -30, -100, 25, 25, -40, 20
panse_19 SE_W258, 63
pause 10
- sprite gBattleAnimSpriteTemplate_83D9E54, 130, 6, -30, -100, 25, 25, 40, 0
+ sprite gBattleAnimSpriteTemplate_83D9E54, 130, -30, -100, 25, 25, 40, 0
panse_19 SE_W258, 63
pause 10
- sprite gBattleAnimSpriteTemplate_83D9E54, 130, 6, -30, -100, 25, 25, 0, 0
+ sprite gBattleAnimSpriteTemplate_83D9E54, 130, -30, -100, 25, 25, 0, 0
panse_19 SE_W258, 63
wait
- createtask sub_80A7FA0, 2, 5, 1, 2, 0, 8, 1
+ createtask sub_80A7FA0, 2, 1, 2, 0, 8, 1
panse_19 SE_W196, 63
call Unknown_81D5C36
wait
@@ -9913,234 +9913,234 @@ PoundCopy: @ 81D5C05
monbg 1
setalpha 12, 8
panse_19 SE_W003, 63
- sprite gBattleAnimSpriteTemplate_83DB4A8, 2, 4, 0, 0, 1, 2
- createtask sub_80A7E7C, 2, 5, 1, 3, 0, 6, 1
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 2, 0, 0, 1, 2
+ createtask sub_80A7E7C, 2, 1, 3, 0, 6, 1
wait
clearmonbg 1
blendoff
end
Unknown_81D5C36: @ 81D5C36
- sprite gBattleAnimSpriteTemplate_83D9C78, 130, 3, -10, -10, 0
+ sprite gBattleAnimSpriteTemplate_83D9C78, 130, -10, -10, 0
panse_19 SE_W196, 63
pause 4
- sprite gBattleAnimSpriteTemplate_83D9C90, 130, 3, 10, 20, 0
+ sprite gBattleAnimSpriteTemplate_83D9C90, 130, 10, 20, 0
panse_19 SE_W196, 63
pause 4
- sprite gBattleAnimSpriteTemplate_83D9C78, 130, 3, -5, 10, 0
+ sprite gBattleAnimSpriteTemplate_83D9C78, 130, -5, 10, 0
panse_19 SE_W196, 63
pause 4
- sprite gBattleAnimSpriteTemplate_83D9C90, 130, 3, 17, -12, 0
+ sprite gBattleAnimSpriteTemplate_83D9C90, 130, 17, -12, 0
panse_19 SE_W196, 63
pause 4
- sprite gBattleAnimSpriteTemplate_83D9C90, 130, 3, -15, 15, 0
+ sprite gBattleAnimSpriteTemplate_83D9C90, 130, -15, 15, 0
panse_19 SE_W196, 63
pause 4
- sprite gBattleAnimSpriteTemplate_83D9C90, 130, 3, 0, 0, 0
+ sprite gBattleAnimSpriteTemplate_83D9C90, 130, 0, 0, 0
panse_19 SE_W196, 63
pause 4
- sprite gBattleAnimSpriteTemplate_83D9C78, 130, 3, 20, 2, 0
+ sprite gBattleAnimSpriteTemplate_83D9C78, 130, 20, 2, 0
panse_19 SE_W196, 63
ret
Unknown_81D5CBA: @ 81D5CBA
- sprite gBattleAnimSpriteTemplate_83D9C78, 130, 3, -10, -10, 1
+ sprite gBattleAnimSpriteTemplate_83D9C78, 130, -10, -10, 1
panse_19 SE_W196, 63
pause 4
- sprite gBattleAnimSpriteTemplate_83D9C90, 130, 3, 10, 20, 1
+ sprite gBattleAnimSpriteTemplate_83D9C90, 130, 10, 20, 1
panse_19 SE_W196, 63
pause 4
- sprite gBattleAnimSpriteTemplate_83D9C78, 130, 3, -29, 0, 1
+ sprite gBattleAnimSpriteTemplate_83D9C78, 130, -29, 0, 1
panse_19 SE_W196, 63
pause 4
- sprite gBattleAnimSpriteTemplate_83D9C90, 130, 3, 29, -20, 1
+ sprite gBattleAnimSpriteTemplate_83D9C90, 130, 29, -20, 1
panse_19 SE_W196, 63
pause 4
- sprite gBattleAnimSpriteTemplate_83D9C78, 130, 3, -5, 10, 1
+ sprite gBattleAnimSpriteTemplate_83D9C78, 130, -5, 10, 1
panse_19 SE_W196, 63
pause 4
- sprite gBattleAnimSpriteTemplate_83D9C90, 130, 3, 17, -12, 1
+ sprite gBattleAnimSpriteTemplate_83D9C90, 130, 17, -12, 1
panse_19 SE_W196, 63
pause 4
- sprite gBattleAnimSpriteTemplate_83D9C78, 130, 3, -20, 0, 1
+ sprite gBattleAnimSpriteTemplate_83D9C78, 130, -20, 0, 1
panse_19 SE_W196, 63
pause 4
- sprite gBattleAnimSpriteTemplate_83D9C90, 130, 3, -15, 15, 1
+ sprite gBattleAnimSpriteTemplate_83D9C90, 130, -15, 15, 1
panse_19 SE_W196, 63
pause 4
- sprite gBattleAnimSpriteTemplate_83D9C90, 130, 3, 26, -5, 1
+ sprite gBattleAnimSpriteTemplate_83D9C90, 130, 26, -5, 1
panse_19 SE_W196, 63
pause 4
- sprite gBattleAnimSpriteTemplate_83D9C90, 130, 3, 0, 0, 1
+ sprite gBattleAnimSpriteTemplate_83D9C90, 130, 0, 0, 1
panse_19 SE_W196, 63
pause 4
- sprite gBattleAnimSpriteTemplate_83D9C78, 130, 3, 20, 2, 1
+ sprite gBattleAnimSpriteTemplate_83D9C78, 130, 20, 2, 1
panse_19 SE_W196, 63
ret
Unknown_81D5D8A: @ 81D5D8A
panse_1C SE_W196, 63, 6, 4
- sprite gBattleAnimSpriteTemplate_83D9D14, 130, 3, 0, 24, 0
+ sprite gBattleAnimSpriteTemplate_83D9D14, 130, 0, 24, 0
pause 4
- sprite gBattleAnimSpriteTemplate_83D9D14, 130, 3, 8, 24, 0
- sprite gBattleAnimSpriteTemplate_83D9D14, 130, 3, -8, 24, 0
+ sprite gBattleAnimSpriteTemplate_83D9D14, 130, 8, 24, 0
+ sprite gBattleAnimSpriteTemplate_83D9D14, 130, -8, 24, 0
pause 4
- sprite gBattleAnimSpriteTemplate_83D9D14, 130, 3, 16, 24, 0
- sprite gBattleAnimSpriteTemplate_83D9D14, 130, 3, -16, 24, 0
+ sprite gBattleAnimSpriteTemplate_83D9D14, 130, 16, 24, 0
+ sprite gBattleAnimSpriteTemplate_83D9D14, 130, -16, 24, 0
pause 4
- sprite gBattleAnimSpriteTemplate_83D9D14, 130, 3, 24, 24, 0
- sprite gBattleAnimSpriteTemplate_83D9D14, 130, 3, -24, 24, 0
+ sprite gBattleAnimSpriteTemplate_83D9D14, 130, 24, 24, 0
+ sprite gBattleAnimSpriteTemplate_83D9D14, 130, -24, 24, 0
pause 4
- sprite gBattleAnimSpriteTemplate_83D9D14, 130, 3, 32, 24, 0
- sprite gBattleAnimSpriteTemplate_83D9D14, 130, 3, -32, 24, 0
+ sprite gBattleAnimSpriteTemplate_83D9D14, 130, 32, 24, 0
+ sprite gBattleAnimSpriteTemplate_83D9D14, 130, -32, 24, 0
ret
Unknown_81D5E0E: @ 81D5E0E
panse_1C SE_W196, 63, 6, 4
- sprite gBattleAnimSpriteTemplate_83D9D14, 130, 3, 0, 24, 1
+ sprite gBattleAnimSpriteTemplate_83D9D14, 130, 0, 24, 1
pause 4
- sprite gBattleAnimSpriteTemplate_83D9D14, 130, 3, 8, 24, 1
- sprite gBattleAnimSpriteTemplate_83D9D14, 130, 3, -8, 24, 1
+ sprite gBattleAnimSpriteTemplate_83D9D14, 130, 8, 24, 1
+ sprite gBattleAnimSpriteTemplate_83D9D14, 130, -8, 24, 1
pause 4
- sprite gBattleAnimSpriteTemplate_83D9D14, 130, 3, 16, 24, 1
- sprite gBattleAnimSpriteTemplate_83D9D14, 130, 3, -16, 24, 1
+ sprite gBattleAnimSpriteTemplate_83D9D14, 130, 16, 24, 1
+ sprite gBattleAnimSpriteTemplate_83D9D14, 130, -16, 24, 1
pause 4
- sprite gBattleAnimSpriteTemplate_83D9D14, 130, 3, 24, 24, 1
- sprite gBattleAnimSpriteTemplate_83D9D14, 130, 3, -24, 24, 1
+ sprite gBattleAnimSpriteTemplate_83D9D14, 130, 24, 24, 1
+ sprite gBattleAnimSpriteTemplate_83D9D14, 130, -24, 24, 1
pause 4
- sprite gBattleAnimSpriteTemplate_83D9D14, 130, 3, 32, 24, 1
- sprite gBattleAnimSpriteTemplate_83D9D14, 130, 3, -32, 24, 1
+ sprite gBattleAnimSpriteTemplate_83D9D14, 130, 32, 24, 1
+ sprite gBattleAnimSpriteTemplate_83D9D14, 130, -32, 24, 1
pause 4
- sprite gBattleAnimSpriteTemplate_83D9D14, 130, 3, 40, 24, 1
- sprite gBattleAnimSpriteTemplate_83D9D14, 130, 3, -40, 24, 1
+ sprite gBattleAnimSpriteTemplate_83D9D14, 130, 40, 24, 1
+ sprite gBattleAnimSpriteTemplate_83D9D14, 130, -40, 24, 1
pause 4
- sprite gBattleAnimSpriteTemplate_83D9D14, 130, 3, 48, 24, 1
- sprite gBattleAnimSpriteTemplate_83D9D14, 130, 3, -48, 24, 1
+ sprite gBattleAnimSpriteTemplate_83D9D14, 130, 48, 24, 1
+ sprite gBattleAnimSpriteTemplate_83D9D14, 130, -48, 24, 1
ret
Unknown_81D5ECA: @ 81D5ECA
- sprite gBattleAnimSpriteTemplate_83D6C88, 2, 6, -15, 0, 0, 0, 32, 60
+ sprite gBattleAnimSpriteTemplate_83D6C88, 2, -15, 0, 0, 0, 32, 60
pause 8
- sprite gBattleAnimSpriteTemplate_83D6C88, 2, 6, 12, -5, 0, 0, 32, 60
+ sprite gBattleAnimSpriteTemplate_83D6C88, 2, 12, -5, 0, 0, 32, 60
pause 8
ret
Unknown_81D5EF5: @ 81D5EF5
panse_19 SE_W071B, 192
- sprite gBattleAnimSpriteTemplate_83D7038, 2, 4, 0, -5, 0, 0
+ sprite gBattleAnimSpriteTemplate_83D7038, 2, 0, -5, 0, 0
pause 7
- sprite gBattleAnimSpriteTemplate_83D7038, 2, 4, -15, 10, 0, 0
+ sprite gBattleAnimSpriteTemplate_83D7038, 2, -15, 10, 0, 0
pause 7
- sprite gBattleAnimSpriteTemplate_83D7038, 2, 4, -15, -15, 0, 0
+ sprite gBattleAnimSpriteTemplate_83D7038, 2, -15, -15, 0, 0
pause 7
- sprite gBattleAnimSpriteTemplate_83D7038, 2, 4, 10, -5, 0, 0
+ sprite gBattleAnimSpriteTemplate_83D7038, 2, 10, -5, 0, 0
pause 7
ret
Unknown_81D5F3E: @ 81D5F3E
panse_19 SE_W071B, 63
- sprite gBattleAnimSpriteTemplate_83D7038, 130, 4, 0, -5, 1, 0
+ sprite gBattleAnimSpriteTemplate_83D7038, 130, 0, -5, 1, 0
pause 7
- sprite gBattleAnimSpriteTemplate_83D7038, 130, 4, -15, 10, 1, 0
+ sprite gBattleAnimSpriteTemplate_83D7038, 130, -15, 10, 1, 0
pause 7
- sprite gBattleAnimSpriteTemplate_83D7038, 130, 4, -15, -15, 1, 0
+ sprite gBattleAnimSpriteTemplate_83D7038, 130, -15, -15, 1, 0
pause 7
- sprite gBattleAnimSpriteTemplate_83D7038, 130, 4, 10, -5, 1, 0
+ sprite gBattleAnimSpriteTemplate_83D7038, 130, 10, -5, 1, 0
pause 7
ret
Unknown_81D5F87: @ 81D5F87
- sprite gBattleAnimSpriteTemplate_83DA350, 130, 3, 10, 10, 0
+ sprite gBattleAnimSpriteTemplate_83DA350, 130, 10, 10, 0
panse_19 SE_W092, 63
pause 6
- sprite gBattleAnimSpriteTemplate_83DA350, 130, 3, 20, -20, 0
+ sprite gBattleAnimSpriteTemplate_83DA350, 130, 20, -20, 0
panse_19 SE_W092, 63
pause 6
- sprite gBattleAnimSpriteTemplate_83DA350, 130, 3, -20, 15, 0
+ sprite gBattleAnimSpriteTemplate_83DA350, 130, -20, 15, 0
panse_19 SE_W092, 63
pause 6
- sprite gBattleAnimSpriteTemplate_83DA350, 130, 3, 0, 0, 0
+ sprite gBattleAnimSpriteTemplate_83DA350, 130, 0, 0, 0
panse_19 SE_W092, 63
pause 6
- sprite gBattleAnimSpriteTemplate_83DA350, 130, 3, -20, -20, 0
+ sprite gBattleAnimSpriteTemplate_83DA350, 130, -20, -20, 0
panse_19 SE_W092, 63
pause 6
- sprite gBattleAnimSpriteTemplate_83DA350, 130, 3, 16, -8, 0
+ sprite gBattleAnimSpriteTemplate_83DA350, 130, 16, -8, 0
panse_19 SE_W092, 63
ret
Unknown_81D5FF8: @ 81D5FF8
- sprite gBattleAnimSpriteTemplate_83DA368, 2, 3, 10, 10, 0
+ sprite gBattleAnimSpriteTemplate_83DA368, 2, 10, 10, 0
panse_19 SE_W145C, 63
pause 6
- sprite gBattleAnimSpriteTemplate_83DA368, 2, 3, 20, -20, 0
+ sprite gBattleAnimSpriteTemplate_83DA368, 2, 20, -20, 0
panse_19 SE_W145C, 63
pause 6
- sprite gBattleAnimSpriteTemplate_83DA368, 2, 3, -20, 15, 0
+ sprite gBattleAnimSpriteTemplate_83DA368, 2, -20, 15, 0
panse_19 SE_W145C, 63
pause 6
- sprite gBattleAnimSpriteTemplate_83DA368, 2, 3, 0, 0, 0
+ sprite gBattleAnimSpriteTemplate_83DA368, 2, 0, 0, 0
panse_19 SE_W145C, 63
pause 6
- sprite gBattleAnimSpriteTemplate_83DA368, 2, 3, -20, -20, 0
+ sprite gBattleAnimSpriteTemplate_83DA368, 2, -20, -20, 0
panse_19 SE_W145C, 63
pause 6
- sprite gBattleAnimSpriteTemplate_83DA368, 2, 3, 16, -8, 0
+ sprite gBattleAnimSpriteTemplate_83DA368, 2, 16, -8, 0
panse_19 SE_W145C, 63
ret
Unknown_81D6069: @ 81D6069
- sprite gBattleAnimSpriteTemplate_83DA368, 2, 3, 10, 10, 1
+ sprite gBattleAnimSpriteTemplate_83DA368, 2, 10, 10, 1
panse_19 SE_W145C, 63
pause 6
- sprite gBattleAnimSpriteTemplate_83DA368, 2, 3, -28, -10, 1
+ sprite gBattleAnimSpriteTemplate_83DA368, 2, -28, -10, 1
panse_19 SE_W145C, 63
pause 6
- sprite gBattleAnimSpriteTemplate_83DA368, 2, 3, 20, -20, 1
+ sprite gBattleAnimSpriteTemplate_83DA368, 2, 20, -20, 1
panse_19 SE_W145C, 63
pause 6
- sprite gBattleAnimSpriteTemplate_83DA368, 2, 3, -20, 15, 1
+ sprite gBattleAnimSpriteTemplate_83DA368, 2, -20, 15, 1
panse_19 SE_W145C, 63
pause 6
- sprite gBattleAnimSpriteTemplate_83DA368, 2, 3, 0, 0, 1
+ sprite gBattleAnimSpriteTemplate_83DA368, 2, 0, 0, 1
panse_19 SE_W145C, 63
pause 6
- sprite gBattleAnimSpriteTemplate_83DA368, 2, 3, 27, 8, 1
+ sprite gBattleAnimSpriteTemplate_83DA368, 2, 27, 8, 1
panse_19 SE_W145C, 63
pause 6
- sprite gBattleAnimSpriteTemplate_83DA368, 2, 3, -20, -20, 1
+ sprite gBattleAnimSpriteTemplate_83DA368, 2, -20, -20, 1
panse_19 SE_W145C, 63
pause 6
- sprite gBattleAnimSpriteTemplate_83DA368, 2, 3, 16, -8, 1
+ sprite gBattleAnimSpriteTemplate_83DA368, 2, 16, -8, 1
panse_19 SE_W145C, 63
ret
Unknown_81D6100: @ 81D6100
panse_19 SE_W085B, 63
- sprite gBattleAnimSpriteTemplate_83D9920, 130, 4, 5, 0, 5, 0
+ sprite gBattleAnimSpriteTemplate_83D9920, 130, 5, 0, 5, 0
pause 2
- sprite gBattleAnimSpriteTemplate_83D9920, 130, 4, -5, 10, 5, 1
+ sprite gBattleAnimSpriteTemplate_83D9920, 130, -5, 10, 5, 1
pause 2
- sprite gBattleAnimSpriteTemplate_83D9920, 130, 4, 15, 20, 5, 2
+ sprite gBattleAnimSpriteTemplate_83D9920, 130, 15, 20, 5, 2
pause 2
- sprite gBattleAnimSpriteTemplate_83D9920, 130, 4, -15, -10, 5, 0
+ sprite gBattleAnimSpriteTemplate_83D9920, 130, -15, -10, 5, 0
pause 2
- sprite gBattleAnimSpriteTemplate_83D9920, 130, 4, 25, 0, 5, 1
+ sprite gBattleAnimSpriteTemplate_83D9920, 130, 25, 0, 5, 1
pause 2
- sprite gBattleAnimSpriteTemplate_83D9920, 130, 4, -8, 8, 5, 2
+ sprite gBattleAnimSpriteTemplate_83D9920, 130, -8, 8, 5, 2
pause 2
- sprite gBattleAnimSpriteTemplate_83D9920, 130, 4, 2, -8, 5, 0
+ sprite gBattleAnimSpriteTemplate_83D9920, 130, 2, -8, 5, 0
pause 2
- sprite gBattleAnimSpriteTemplate_83D9920, 130, 4, -20, 15, 5, 1
+ sprite gBattleAnimSpriteTemplate_83D9920, 130, -20, 15, 5, 1
ret
Unknown_81D618B: @ 81D618B
panse_1C SE_W146, 63, 13, 6
- sprite gBattleAnimSpriteTemplate_83DB3AC, 130, 5, 0, -15, 0, 3, 90
- sprite gBattleAnimSpriteTemplate_83DB3AC, 130, 5, 0, -15, 51, 3, 90
- sprite gBattleAnimSpriteTemplate_83DB3AC, 130, 5, 0, -15, 102, 3, 90
- sprite gBattleAnimSpriteTemplate_83DB3AC, 130, 5, 0, -15, 153, 3, 90
- sprite gBattleAnimSpriteTemplate_83DB3AC, 130, 5, 0, -15, 204, 3, 90
+ sprite gBattleAnimSpriteTemplate_83DB3AC, 130, 0, -15, 0, 3, 90
+ sprite gBattleAnimSpriteTemplate_83DB3AC, 130, 0, -15, 51, 3, 90
+ sprite gBattleAnimSpriteTemplate_83DB3AC, 130, 0, -15, 102, 3, 90
+ sprite gBattleAnimSpriteTemplate_83DB3AC, 130, 0, -15, 153, 3, 90
+ sprite gBattleAnimSpriteTemplate_83DB3AC, 130, 0, -15, 204, 3, 90
ret
Unknown_81D61E7: @ 81D61E7
@@ -10161,14 +10161,14 @@ Unknown_81D61FB: @ 81D61FB
jumpunkcond _81D6214
fadetobg 18
waitbgfadeout
- createtask sub_80E3A58, 5, 4, -2304, 768, 1, -1
+ createtask sub_80E3A58, 5, -2304, 768, 1, -1
_81D6212:
waitbgfadein
ret
_81D6214:
fadetobg 19
waitbgfadeout
- createtask sub_80E3A58, 5, 4, 2304, 768, 0, -1
+ createtask sub_80E3A58, 5, 2304, 768, 0, -1
jump _81D6212
Unknown_81D622B: @ 81D622B
@@ -10208,8 +10208,8 @@ Unknown_81D626D: @ 81D626D
StatusCondition_Poison: @ 81D6270
panse_1C SE_W092, 63, 13, 6
- createtask sub_80A7FA0, 2, 5, 0, 1, 0, 18, 2
- createtask sub_80E1F8C, 2, 6, 2, 2, 2, 0, 12, 31774
+ createtask sub_80A7FA0, 2, 0, 1, 0, 18, 2
+ createtask sub_80E1F8C, 2, 2, 2, 2, 0, 12, 31774
end
StatusCondition_Confusion: @ 81D629B
@@ -10226,33 +10226,33 @@ StatusCondition_Burn: @ 81D62A4
wait
end
_81D62BC:
- sprite gBattleAnimSpriteTemplate_83D9614, 130, 7, -24, 24, 24, 24, 20, 1, 1
+ sprite gBattleAnimSpriteTemplate_83D9614, 130, -24, 24, 24, 24, 20, 1, 1
pause 4
ret
StatusCondition_Love: @ 81D62D4
loadsprite 10210
panse_19 SE_W204, 192
- sprite gBattleAnimSpriteTemplate_83D7A80, 3, 2, 0, 20
+ sprite gBattleAnimSpriteTemplate_83D7A80, 3, 0, 20
pause 15
panse_19 SE_W204, 192
- sprite gBattleAnimSpriteTemplate_83D7A80, 3, 2, -20, 20
+ sprite gBattleAnimSpriteTemplate_83D7A80, 3, -20, 20
pause 15
panse_19 SE_W204, 192
- sprite gBattleAnimSpriteTemplate_83D7A80, 3, 2, 20, 20
+ sprite gBattleAnimSpriteTemplate_83D7A80, 3, 20, 20
end
StatusCondition_Sleep: @ 81D6309
loadsprite 10228
panse_19 SE_W173, 192
- sprite gBattleAnimSpriteTemplate_83D6D94, 2, 5, 4, -10, 16, 0, 0
+ sprite gBattleAnimSpriteTemplate_83D6D94, 2, 4, -10, 16, 0, 0
pause 30
- sprite gBattleAnimSpriteTemplate_83D6D94, 2, 5, 4, -10, 16, 0, 0
+ sprite gBattleAnimSpriteTemplate_83D6D94, 2, 4, -10, 16, 0, 0
end
StatusCondition_Paralysis: @ 81D6335
loadsprite 10011
- createtask sub_80A7FA0, 2, 5, 0, 1, 0, 10, 1
+ createtask sub_80A7FA0, 2, 0, 1, 0, 10, 1
call Unknown_81D6100
end
@@ -10272,7 +10272,7 @@ StatusCondition_Curse: @ 81D636A
monbg 3
panse_19 SE_W171, 63
sprite gBattleAnimSpriteTemplate_83DAF38, 130
- createtask sub_80A7FA0, 2, 5, 1, 2, 0, 14, 1
+ createtask sub_80A7FA0, 2, 1, 2, 0, 14, 1
wait
clearmonbg 3
end
@@ -10282,7 +10282,7 @@ StatusCondition_Nightmare: @ 81D638F
monbg 3
panse_19 SE_W171, 63
sprite gBattleAnimSpriteTemplate_83DAF50, 130
- createtask sub_80A7FA0, 2, 5, 1, 2, 0, 14, 1
+ createtask sub_80A7FA0, 2, 1, 2, 0, 14, 1
wait
clearmonbg 3
end
@@ -10295,12 +10295,12 @@ _81D63C8:
monbg 0
panse_19 SE_W100, 192
panse_1D SE_W107, 192, 48
- createtask sub_812D7E8, 2, 1, 1
+ createtask sub_812D7E8, 2, 1
wait
clearmonbg 0
end
_81D63E0:
- createtask sub_812DB58, 2, 1, 1
+ createtask sub_812DB58, 2, 1
end
Unknown_81D63EA: @ 81D63EA
@@ -10311,14 +10311,14 @@ Unknown_81D63EA: @ 81D63EA
Unknown_81D63F3: @ 81D63F3
monbg 0
createtask sub_81416C4, 5
- createtask sub_80E2A38, 10, 5, 2, 0, 0, 16, 32767
+ createtask sub_80E2A38, 10, 2, 0, 0, 16, 32767
wait
pause 1
clearmonbg 0
pause 2
blendoff
- createtask sub_80E2A38, 10, 5, 2, 0, 0, 0, 32767
- createtask sub_814151C, 2, 1, 1
+ createtask sub_80E2A38, 10, 2, 0, 0, 0, 32767
+ createtask sub_814151C, 2, 1
end
Unknown_81D6430: @ 81D6430
@@ -10330,10 +10330,10 @@ Unknown_81D6438: @ 81D6438
createtask sub_8141BD4, 2
pause 0
panse_1D SE_W026, 192, 22
- sprite gBattleAnimSpriteTemplate_840B4FC, 131, 4, -16, 7, 0, 32
+ sprite gBattleAnimSpriteTemplate_840B4FC, 131, -16, 7, 0, 32
pause 50
panse_1C SE_W039, 63, 19, 2
- createtask sub_80A8B88, 5, 5, 1, 8, 1536, 2, 1
+ createtask sub_80A8B88, 5, 1, 8, 1536, 2, 1
wait
createtask sub_8141C08, 2
end
@@ -10353,11 +10353,11 @@ Unknown_81D6489: @ 81D6489
_81D64B5:
loadsprite 10186
panse_1C SE_W010, 63, 6, 2
- sprite gBattleAnimSpriteTemplate_83D65A0, 132, 4, 0, 16, 0, 1
+ sprite gBattleAnimSpriteTemplate_83D65A0, 132, 0, 16, 0, 1
pause 7
- sprite gBattleAnimSpriteTemplate_83D65A0, 130, 4, 0, 8, 1, 1
+ sprite gBattleAnimSpriteTemplate_83D65A0, 130, 0, 8, 1, 1
pause 3
- createtask sub_80A7FA0, 2, 5, 1, 2, 0, 8, 1
+ createtask sub_80A7FA0, 2, 1, 2, 0, 8, 1
pause 20
setvar 7, -1
panse_19 SE_W020, 63
@@ -10366,7 +10366,7 @@ _81D64B5:
_81D64FD:
loadsprite 10029
panse_19 SE_W221B, 63
- createtask sub_80A7E7C, 5, 5, 1, 0, 2, 30, 1
+ createtask sub_80A7E7C, 5, 1, 0, 2, 30, 1
call _81C90BF
call _81C90BF
wait
@@ -10378,13 +10378,13 @@ _81D6522:
monbgprio_28 1
setalpha 12, 8
pause 0
- sprite gBattleAnimSpriteTemplate_83DB3C4, 0, 5, 4, 2, 0, 7, 23968
+ sprite gBattleAnimSpriteTemplate_83DB3C4, 0, 4, 2, 0, 7, 23968
panse_19 SE_W250, 63
- createtask sub_80A7E7C, 5, 5, 1, 0, 2, 30, 1
+ createtask sub_80A7E7C, 5, 1, 0, 2, 30, 1
call _81D03E4
call _81D03E4
pause 12
- sprite gBattleAnimSpriteTemplate_83DB3C4, 0, 5, 4, 2, 7, 0, 23968
+ sprite gBattleAnimSpriteTemplate_83DB3C4, 0, 4, 2, 7, 0, 23968
wait
stopsound
clearmonbg 3
@@ -10395,11 +10395,11 @@ _81D6576:
monbg 1
setalpha 12, 8
panse_19 SE_W011, 63
- sprite gBattleAnimSpriteTemplate_83DB1E8, 2, 6, -32, 0, 2, 819, 0, 10
- sprite gBattleAnimSpriteTemplate_83DB1E8, 2, 6, 32, 0, 6, -819, 0, 10
+ sprite gBattleAnimSpriteTemplate_83DB1E8, 2, -32, 0, 2, 819, 0, 10
+ sprite gBattleAnimSpriteTemplate_83DB1E8, 2, 32, 0, 6, -819, 0, 10
pause 10
- sprite gBattleAnimSpriteTemplate_83DB4A8, 2, 4, 0, 0, 1, 2
- createtask sub_80A7E7C, 5, 5, 1, 3, 0, 5, 1
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 2, 0, 0, 1, 2
+ createtask sub_80A7E7C, 5, 1, 3, 0, 5, 1
wait
clearmonbg 1
blendoff
@@ -10407,13 +10407,13 @@ _81D6576:
end
_81D65D3:
loadsprite 10074
- sprite gBattleAnimSpriteTemplate_83DB3C4, 0, 5, 4, 2, 0, 7, 563
- createtask sub_80A7E7C, 5, 5, 1, 0, 2, 30, 1
+ sprite gBattleAnimSpriteTemplate_83DB3C4, 0, 4, 2, 0, 7, 563
+ createtask sub_80A7E7C, 5, 1, 0, 2, 30, 1
panse_19 SE_W328, 63
call _81D361F
call _81D361F
pause 22
- sprite gBattleAnimSpriteTemplate_83DB3C4, 0, 5, 4, 2, 7, 0, 563
+ sprite gBattleAnimSpriteTemplate_83DB3C4, 0, 4, 2, 7, 0, 563
wait
stopsound
end
@@ -10423,20 +10423,20 @@ Unknown_81D661C: @ 81D661C
loadsprite 10049
pause 0
panse_19 SE_W036, 192
- createtask sub_80A8EFC, 2, 4, 16, 128, 0, 2
+ createtask sub_80A8EFC, 2, 16, 128, 0, 2
wait
panse_19 SE_W036, 192
- createtask sub_80A8EFC, 2, 4, 16, 128, 0, 2
+ createtask sub_80A8EFC, 2, 16, 128, 0, 2
wait
panse_19 SE_W036, 192
- createtask sub_80A8EFC, 2, 4, 16, 128, 0, 2
+ createtask sub_80A8EFC, 2, 16, 128, 0, 2
wait
panse_19 SE_W234, 192
call Unknown_81D5ECA
wait
panse_19 SE_REAPOKE, 192
- sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 5, 2, 3, 7, 0, 26609
- sprite gBattleAnimSpriteTemplate_83D7928, 3, 4, 0, 0, 0, 0
+ sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 2, 3, 7, 0, 26609
+ sprite gBattleAnimSpriteTemplate_83D7928, 3, 0, 0, 0, 0
wait
end
@@ -10446,32 +10446,32 @@ Unknown_81D6690: @ 81D6690
setalpha 12, 4
pause 0
panse_19 SE_BOWA2, 63
- sprite gBattleAnimSpriteTemplate_8402894, 128, 4, 0, 32, 28, 30
+ sprite gBattleAnimSpriteTemplate_8402894, 128, 0, 32, 28, 30
pause 4
panse_19 SE_BOWA2, 63
- sprite gBattleAnimSpriteTemplate_8402894, 127, 4, 2, 12, 20, 30
+ sprite gBattleAnimSpriteTemplate_8402894, 127, 2, 12, 20, 30
pause 12
panse_19 SE_BOWA2, 63
- sprite gBattleAnimSpriteTemplate_8402894, 126, 4, 2, -28, 4, 30
+ sprite gBattleAnimSpriteTemplate_8402894, 126, 2, -28, 4, 30
pause 4
pause 8
panse_19 SE_BOWA2, 63
- sprite gBattleAnimSpriteTemplate_8402894, 124, 4, 2, 14, -20, 30
+ sprite gBattleAnimSpriteTemplate_8402894, 124, 2, 14, -20, 30
pause 4
panse_19 SE_BOWA2, 63
- createtask sub_80DFC24, 2, 1, 2
- sprite gBattleAnimSpriteTemplate_8402894, 123, 4, 3, 4, 4, 30
+ createtask sub_80DFC24, 2, 2
+ sprite gBattleAnimSpriteTemplate_8402894, 123, 3, 4, 4, 30
pause 14
panse_19 SE_BOWA2, 63
- sprite gBattleAnimSpriteTemplate_8402894, 122, 4, 3, -14, 18, 46
+ sprite gBattleAnimSpriteTemplate_8402894, 122, 3, -14, 18, 46
pause 0
- sprite gBattleAnimSpriteTemplate_8402894, 121, 4, 3, 14, -14, 46
+ sprite gBattleAnimSpriteTemplate_8402894, 121, 3, 14, -14, 46
pause 0
- sprite gBattleAnimSpriteTemplate_8402894, 120, 4, 3, -12, -10, 46
+ sprite gBattleAnimSpriteTemplate_8402894, 120, 3, -12, -10, 46
pause 0
- sprite gBattleAnimSpriteTemplate_8402894, 119, 4, 3, 14, 14, 46
+ sprite gBattleAnimSpriteTemplate_8402894, 119, 3, 14, 14, 46
pause 0
- sprite gBattleAnimSpriteTemplate_8402894, 118, 4, 3, 0, 0, 46
+ sprite gBattleAnimSpriteTemplate_8402894, 118, 3, 0, 0, 46
wait
clearmonbg 0
invisible 0
@@ -10480,26 +10480,26 @@ Unknown_81D6690: @ 81D6690
end
Unknown_81D676E: @ 81D676E
- sprite gBattleAnimSpriteTemplate_83DB3C4, 0, 5, 2, 7, 0, 9, 31
+ sprite gBattleAnimSpriteTemplate_83DB3C4, 0, 2, 7, 0, 9, 31
panse_19 SE_W082, 192
- createtask sub_812FC68, 5, 7, 30, 128, 0, 1, 2, 0, 1
+ createtask sub_812FC68, 5, 30, 128, 0, 1, 2, 0, 1
wait
- sprite gBattleAnimSpriteTemplate_83DB3C4, 0, 5, 2, 4, 9, 0, 31
+ sprite gBattleAnimSpriteTemplate_83DB3C4, 0, 2, 4, 9, 0, 31
wait
pause 6
- sprite gBattleAnimSpriteTemplate_83C1FE0, 0, 3, 0, 0, 15
+ sprite gBattleAnimSpriteTemplate_83C1FE0, 0, 0, 0, 15
end
Unknown_Weather_Rain: @ 81D67BB
loadsprite 10115
panse_19 SE_W240, 192
- createtask sub_80E2A38, 10, 5, 1921, 2, 0, 4, 0
+ createtask sub_80E2A38, 10, 1921, 2, 0, 4, 0
wait
- createtask sub_80D30F0, 2, 3, 0, 3, 60
- createtask sub_80D30F0, 2, 3, 0, 3, 60
+ createtask sub_80D30F0, 2, 0, 3, 60
+ createtask sub_80D30F0, 2, 0, 3, 60
pause 50
wait
- createtask sub_80E2A38, 10, 5, 1921, 2, 4, 0, 0
+ createtask sub_80E2A38, 10, 1921, 2, 4, 0, 0
wait
end
@@ -10522,8 +10522,8 @@ Unknown_81D6821: @ 81D6821
monbg 1
setalpha 12, 8
panse_19 SE_W003, 63
- sprite gBattleAnimSpriteTemplate_83DB4A8, 2, 4, 0, 0, 1, 2
- createtask sub_80A7E7C, 2, 5, 1, 3, 0, 6, 1
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 2, 0, 0, 1, 2
+ createtask sub_80A7E7C, 2, 1, 3, 0, 6, 1
wait
clearmonbg 1
blendoff
@@ -10534,7 +10534,7 @@ Unknown_81D6852: @ 81D6852
createtask sub_80E42D0, 2
createtask sub_8141808, 2
pause 1
- sprite gBattleAnimSpriteTemplate_83D677C, 2, 5, 0, -5, 10, 2, -1
+ sprite gBattleAnimSpriteTemplate_83D677C, 2, 0, -5, 10, 2, -1
end
Unknown_81D6877: @ 81D6877
@@ -10542,7 +10542,7 @@ Unknown_81D6877: @ 81D6877
createtask sub_80E4234, 2
call Unknown_81D6AB6
pause 1
- createtask sub_80A8B88, 2, 5, 0, 5, 5120, 4, 1
+ createtask sub_80A8B88, 2, 0, 5, 5120, 4, 1
wait
createtask sub_80E4264, 2
jumpvareq 7, 0, _81D68B5
@@ -10568,10 +10568,10 @@ Unknown_81D68D5: @ 81D68D5
setalpha 8, 8
panse_19 SE_W048, 63
panse_1D SE_W048, 63, 8
- createtask sub_80A7E7C, 2, 5, 1, 4, 0, 15, 1
- createtask sub_80A8D34, 5, 5, -5, -5, 15, 1, 1
+ createtask sub_80A7E7C, 2, 1, 4, 0, 15, 1
+ createtask sub_80A8D34, 5, -5, -5, 15, 1, 1
wait
- createtask sub_80A7E7C, 2, 5, 1, 4, 0, 24, 1
+ createtask sub_80A7E7C, 2, 1, 4, 0, 24, 1
wait
clearmonbg 3
blendoff
@@ -10583,7 +10583,7 @@ Unknown_81D68D5: @ 81D68D5
Unknown_81D6934: @ 81D6934
createtask sub_80E42B0, 2
loadsprite 10198
- sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 5, 1, 3, 0, 16, 32767
+ sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 1, 3, 0, 16, 32767
wait
pause 10
createtask sub_812E14C, 5
@@ -10594,23 +10594,23 @@ Unknown_81D6934: @ 81D6934
pause 9
panse_19 SE_W109, 63
pause 25
- createtask sub_80A8154, 2, 5, 1, 10, 0, 20, 1
+ createtask sub_80A8154, 2, 1, 10, 0, 20, 1
panse_19 SE_W120, 63
- sprite gBattleAnimSpriteTemplate_83D7828, 3, 4, 0, 0, 1, 1
+ sprite gBattleAnimSpriteTemplate_83D7828, 3, 0, 0, 1, 1
pause 6
panse_19 SE_W120, 63
- sprite gBattleAnimSpriteTemplate_83D7828, 3, 4, 24, -24, 1, 1
+ sprite gBattleAnimSpriteTemplate_83D7828, 3, 24, -24, 1, 1
pause 6
panse_19 SE_W120, 63
- sprite gBattleAnimSpriteTemplate_83D7828, 3, 4, -16, 16, 1, 1
+ sprite gBattleAnimSpriteTemplate_83D7828, 3, -16, 16, 1, 1
pause 6
panse_19 SE_W120, 63
- sprite gBattleAnimSpriteTemplate_83D7828, 3, 4, -24, -12, 1, 1
+ sprite gBattleAnimSpriteTemplate_83D7828, 3, -24, -12, 1, 1
pause 6
panse_19 SE_W120, 63
- sprite gBattleAnimSpriteTemplate_83D7828, 3, 4, 16, 16, 1, 1
+ sprite gBattleAnimSpriteTemplate_83D7828, 3, 16, 16, 1, 1
wait
- sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 5, 1, 3, 16, 0, 32767
+ sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 1, 3, 16, 0, 32767
wait
end
@@ -10619,8 +10619,8 @@ Unknown_81D69F9: @ 81D69F9
panse_19 SE_W082, 192
call _81CBAC7
pause 8
- createtask sub_80E1F8C, 2, 6, 2, 2, 2, 0, 11, 31
- createtask sub_80A7FA0, 2, 5, 0, 1, 0, 32, 1
+ createtask sub_80E1F8C, 2, 2, 2, 2, 0, 11, 31
+ createtask sub_80A7FA0, 2, 0, 1, 0, 32, 1
call _81CBAC7
pause 8
call _81CBAC7
@@ -10632,7 +10632,7 @@ Unknown_81D6A39: @ 81D6A39
loadsprite 10031
monbg 3
setalpha 12, 8
- sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 5, 1, 1, 0, 4, 13293
+ sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 1, 1, 0, 4, 13293
wait
pause 3
call _81CF496
@@ -10640,7 +10640,7 @@ Unknown_81D6A39: @ 81D6A39
pause 15
call Unknown_81D5EF5
wait
- sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 5, 1, 1, 4, 0, 13293
+ sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 1, 1, 4, 0, 13293
wait
clearmonbg 3
blendoff
@@ -10649,14 +10649,14 @@ Unknown_81D6A39: @ 81D6A39
Unknown_81D6A7C: @ 81D6A7C
loadsprite 10031
loadsprite 10049
- sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 5, 1, 3, 0, 10, 0
+ sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 1, 3, 0, 10, 0
wait
panse_19 SE_W025, 192
call Unknown_81D5ECA
wait
call Unknown_81D5EF5
wait
- sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 5, 1, 3, 10, 0, 0
+ sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 1, 3, 10, 0, 0
end
Unknown_81D6AB6: @ 81D6AB6
@@ -10666,7 +10666,7 @@ _81D6AC5:
wait
ret
_81D6AC7:
- createtask sub_814151C, 2, 1, 1
+ createtask sub_814151C, 2, 1
wait
jump _81D6AC5
@@ -10677,7 +10677,7 @@ _81D6AE5:
wait
ret
_81D6AE7:
- createtask sub_814151C, 2, 1, 0
+ createtask sub_814151C, 2, 0
wait
jump _81D6AE5
@@ -10685,7 +10685,7 @@ Unknown_81D6AF6: @ 81D6AF6
panse_19 SE_EXPMAX, 0
createtask sub_813F4EC, 2
pause 0
- createtask sub_813F6A0, 5, 2, 0, 0
+ createtask sub_813F6A0, 5, 0, 0
wait
createtask sub_813F5E8, 2
end
@@ -10720,7 +10720,7 @@ _81D6B65:
setalpha 12, 8
pause 0
panse_19 SE_W003, 63
- sprite gBattleAnimSpriteTemplate_83DB4A8, 130, 4, -4, -20, 1, 2
+ sprite gBattleAnimSpriteTemplate_83DB4A8, 130, -4, -20, 1, 2
wait
clearmonbg 3
blendoff
@@ -10735,9 +10735,9 @@ Unknown_81D6B8D: @ 81D6B8D
end
Unknown_81D6BA6: @ 81D6BA6
- createtask sub_814151C, 2, 1, 1
+ createtask sub_814151C, 2, 1
end
Unknown_81D6BB0: @ 81D6BB0
- createtask sub_814151C, 2, 1, 0
+ createtask sub_814151C, 2, 0
end
diff --git a/data/battle_message.s b/data/battle_message.s
new file mode 100644
index 000000000..78d7c4d95
--- /dev/null
+++ b/data/battle_message.s
@@ -0,0 +1,12 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+ .include "data/text/battle_strings.inc"
+
+gUnknown_084016BC:: @ 84016BC
+ .incbin "baserom.gba", 0x004016bc, 0xec
+
+gUnknown_084017A8:: @ 84017A8
+ .incbin "baserom.gba", 0x004017a8, 0x8
diff --git a/data/battle_party_menu.s b/data/battle_party_menu.s
new file mode 100644
index 000000000..ce6b49927
--- /dev/null
+++ b/data/battle_party_menu.s
@@ -0,0 +1,34 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+ .align 2
+gUnknown_083B5FCC:: @ 83B5FCC
+ .4byte OtherText_Summary, BattlePokemonMenu_Summary
+ .4byte gOtherText_CancelNoTerminator, BattlePokemonMenu_Cancel
+ .4byte OtherText_Shift, BattlePokemonMenu_Shift
+ .4byte OtherText_SendOut, BattlePokemonMenu_Shift
+
+Unknown_83B5FEC: @ 83B5FEC
+ .byte 2, 0, 1
+
+Unknown_83B5FEF: @ 83B5FEF
+ .byte 3, 0, 1
+
+Unknown_83B5FF2: @ 83B5FF2
+ .byte 0, 1
+
+ .align 2
+gUnknown_083B5FF4:: @ 83B5FF4
+ .byte 3, 9
+ .space 2
+ .4byte Unknown_83B5FEC
+
+ .byte 3, 9
+ .space 2
+ .4byte Unknown_83B5FEF
+
+ .byte 2, 9
+ .space 2
+ .4byte Unknown_83B5FF2
diff --git a/data/battle_setup.s b/data/battle_setup.s
new file mode 100644
index 000000000..eb790edf4
--- /dev/null
+++ b/data/battle_setup.s
@@ -0,0 +1,77 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+gBattleTransitionTable_Wild:: @ 839ACF8
+ .byte 8, 9, 5, 10, 0, 10, 7, 6
+
+gBattleTransitionTable_Trainer:: @ 839AD00
+ .byte 4, 11, 2, 3, 0, 10, 1, 6
+
+ .align 2
+gTrainerBattleSpecs_0:: @ 839AD08
+ .4byte gTrainerBattleMode, 0
+ .4byte gTrainerBattleOpponent, 1
+ .4byte gTrainerMapObjectLocalId, 1
+ .4byte gTrainerIntroSpeech, 2
+ .4byte gTrainerDefeatSpeech, 2
+ .4byte gTrainerVictorySpeech, 5
+ .4byte gTrainerCannotBattleSpeech, 5
+ .4byte gTrainerBattleEndScript, 5
+ .4byte gTrainerBattleScriptReturnAddress, 6
+
+ .align 2
+gTrainerBattleSpecs_1:: @ 839AD50
+ .4byte gTrainerBattleMode, 0
+ .4byte gTrainerBattleOpponent, 1
+ .4byte gTrainerMapObjectLocalId, 1
+ .4byte gTrainerIntroSpeech, 2
+ .4byte gTrainerDefeatSpeech, 2
+ .4byte gTrainerVictorySpeech, 5
+ .4byte gTrainerCannotBattleSpeech, 5
+ .4byte gTrainerBattleEndScript, 2
+ .4byte gTrainerBattleScriptReturnAddress, 6
+
+ .align 2
+gTrainerBattleSpecs_2:: @ 839AD98
+ .4byte gTrainerBattleMode, 0
+ .4byte gTrainerBattleOpponent, 1
+ .4byte gTrainerMapObjectLocalId, 1
+ .4byte gTrainerIntroSpeech, 2
+ .4byte gTrainerDefeatSpeech, 2
+ .4byte gTrainerVictorySpeech, 5
+ .4byte gTrainerCannotBattleSpeech, 2
+ .4byte gTrainerBattleEndScript, 5
+ .4byte gTrainerBattleScriptReturnAddress, 6
+
+ .align 2
+gTrainerBattleSpecs_3:: @ 839ADE0
+ .4byte gTrainerBattleMode, 0
+ .4byte gTrainerBattleOpponent, 1
+ .4byte gTrainerMapObjectLocalId, 1
+ .4byte gTrainerIntroSpeech, 5
+ .4byte gTrainerDefeatSpeech, 2
+ .4byte gTrainerVictorySpeech, 5
+ .4byte gTrainerCannotBattleSpeech, 5
+ .4byte gTrainerBattleEndScript, 5
+ .4byte gTrainerBattleScriptReturnAddress, 6
+
+ .align 2
+gTrainerBattleSpecs_4:: @ 839AE28
+ .4byte gTrainerBattleMode, 0
+ .4byte gTrainerBattleOpponent, 1
+ .4byte gTrainerMapObjectLocalId, 1
+ .4byte gTrainerIntroSpeech, 2
+ .4byte gTrainerDefeatSpeech, 2
+ .4byte gTrainerVictorySpeech, 5
+ .4byte gTrainerCannotBattleSpeech, 2
+ .4byte gTrainerBattleEndScript, 2
+ .4byte gTrainerBattleScriptReturnAddress, 6
+
+@ 839AE70
+ .include "data/trainer_eye_trainers.inc"
+
+ .align 2
+gBadgeFlags:: @ 839B1F0
+ .2byte 0x0807, 0x0808, 0x0809, 0x080a, 0x080b, 0x080c, 0x080d, 0x080e
diff --git a/data/battle_transition.s b/data/battle_transition.s
new file mode 100644
index 000000000..6ab97da5a
--- /dev/null
+++ b/data/battle_transition.s
@@ -0,0 +1,361 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+ .align 2
+gUnknown_083FBB88:: @ 83FBB88
+ .incbin "graphics/battle_transitions/big_pokeball.4bpp"
+
+ .align 2
+gUnknown_083FC108:: @ 83FC108
+ .incbin "graphics/battle_transitions/pokeball_trail.4bpp"
+
+ .align 2
+gSpriteImage_83FC148:: @ 83FC148
+ .incbin "graphics/battle_transitions/pokeball.4bpp"
+
+ .align 2
+gUnknown_083FC348:: @ 83FC348
+ .incbin "graphics/battle_transitions/elite_four_bg.4bpp"
+
+ .align 2
+gSpriteImage_83FC528:: @ 83FC528
+ .incbin "graphics/battle_transitions/unused_brendan.4bpp"
+
+ .align 2
+gSpriteImage_83FCD28:: @ 83FCD28
+ .incbin "graphics/battle_transitions/unused_lass.4bpp"
+
+ .align 2
+gUnknown_083FD528:: @ 83FD528
+ .incbin "graphics/battle_transitions/shrinking_box.4bpp"
+
+ .align 2
+gUnknown_083FD708:: @ 83FD708
+ .4byte 0x0200c000
+
+ .align 2
+gUnknown_083FD70C:: @ 83FD70C
+ .4byte sub_811AC64
+ .4byte sub_811AC64
+ .4byte sub_811AC64
+ .4byte sub_811AC64
+ .4byte sub_811AC64
+ .4byte sub_811AC64
+ .4byte sub_811AC64
+ .4byte sub_811AC64
+ .4byte sub_811AC64
+ .4byte sub_811AC64
+ .4byte sub_811AC64
+ .4byte sub_811AC64
+ .4byte sub_811AC64
+ .4byte sub_811AC64
+ .4byte sub_811AC64
+ .4byte sub_811AC64
+ .4byte sub_811AC64
+
+ .align 2
+gBattleTransitionFuncs:: @ 83FD750
+ .4byte sub_811ACB4
+ .4byte sub_811ADAC
+ .4byte sub_811AF44
+ .4byte sub_811B0F0
+ .4byte sub_811B578
+ .4byte sub_811B7E8
+ .4byte sub_811BCBC
+ .4byte sub_811BEA0
+ .4byte sub_811CA5C
+ .4byte sub_811CCDC
+ .4byte sub_811D0B8
+ .4byte sub_811D1C8
+ .4byte sub_811C08C
+ .4byte sub_811C0AC
+ .4byte sub_811C0CC
+ .4byte sub_811C0EC
+ .4byte sub_811C10C
+
+ .align 2
+gUnknown_083FD794:: @ 83FD794
+ .4byte sub_811AB88
+ .4byte sub_811ABD8
+ .4byte sub_811AC0C
+ .4byte sub_811AC34
+
+ .align 2
+gUnknown_083FD7A4:: @ 83FD7A4
+ .4byte sub_811ACEC
+ .4byte sub_811AD1C
+ .4byte sub_811AD80
+
+ .align 2
+gUnknown_083FD7B0:: @ 83FD7B0
+ .4byte sub_811ADE4
+ .4byte sub_811AE70
+
+ .align 2
+gUnknown_083FD7B8:: @ 83FD7B8
+ .4byte sub_811AF7C
+ .4byte sub_811B000
+
+ .align 2
+gUnknown_083FD7C0:: @ 83FD7C0
+ .4byte sub_811B128
+ .4byte sub_811B1D8
+ .4byte sub_811B268
+ .4byte sub_811B2F4
+ .4byte sub_811B380
+ .4byte sub_811B3EC
+
+ .align 2
+gUnknown_083FD7D8:: @ 83FD7D8
+ .4byte sub_811B5B0
+ .4byte sub_811B5FC
+ .4byte sub_811B688
+
+ .align 1
+gUnknown_083FD7E4:: @ 83FD7E4
+ .2byte -16
+ .2byte 256
+
+ .align 1
+gUnknown_083FD7E8:: @ 83FD7E8
+ .2byte 0
+ .2byte 32
+ .2byte 64
+ .2byte 18
+ .2byte 48
+
+ .align 1
+gUnknown_083FD7F2:: @ 83FD7F2
+ .2byte 8
+ .2byte -8
+
+ .align 2
+gUnknown_083FD7F8:: @ 83FD7F8
+ .4byte sub_811B820
+ .4byte sub_811B884
+ .4byte sub_811B90C
+ .4byte sub_811B9F0
+ .4byte sub_811BA70
+ .4byte sub_811BB60
+ .4byte sub_811BBEC
+
+ .align 2
+gUnknown_083FD814:: @ 83FD814
+ .4byte sub_811BCF4
+ .4byte sub_811BD60
+
+ .align 2
+gUnknown_083FD81C:: @ 83FD81C
+ .4byte sub_811BED8
+ .4byte sub_811BF2C
+ .4byte sub_811BFC4
+
+ .align 2
+gUnknown_083FD828:: @ 83FD828
+ .4byte sub_811C164
+ .4byte sub_811C1CC
+ .4byte sub_811C2A4
+ .4byte sub_811C38C
+ .4byte sub_811C400
+ .4byte sub_811C43C
+ .4byte sub_811C4F0
+ .4byte sub_811C5B4
+ .4byte sub_811C5E8
+ .4byte sub_811C630
+
+gUnknown_083FD850:: @ 83FD850
+ .incbin "baserom.gba", 0x003fd850, 0x6
+
+gUnknown_083FD856:: @ 83FD856
+ .incbin "baserom.gba", 0x003fd856, 0x14
+
+gUnknown_083FD86A:: @ 83FD86A
+ .incbin "baserom.gba", 0x003fd86a, 0x16
+
+ .align 2
+gUnknown_083FD880:: @ 83FD880
+ .4byte sub_811C934
+ .4byte sub_811C938
+ .4byte sub_811C984
+ .4byte sub_811C9B8
+ .4byte sub_811C934
+ .4byte sub_811C9E4
+ .4byte sub_811C934
+
+gUnknown_083FD89C:: @ 83FD89C
+ .incbin "baserom.gba", 0x003fd89c, 0x4
+
+gUnknown_083FD8A0:: @ 83FD8A0
+ .incbin "baserom.gba", 0x003fd8a0, 0x4
+
+ .align 2
+gUnknown_083FD8A4:: @ 83FD8A4
+ .4byte sub_811CA94
+ .4byte sub_811CB20
+ .4byte sub_811CBE8
+
+ .align 2
+gUnknown_083FD8B0:: @ 83FD8B0
+ .4byte sub_811CD14
+ .4byte sub_811CDA0
+ .4byte sub_811CE14
+ .4byte sub_811CE4C
+ .4byte sub_811CEB0
+
+gUnknown_083FD8C4:: @ 83FD8C4
+ .incbin "baserom.gba", 0x003fd8c4, 0x10
+
+ .align 2
+gUnknown_083FD8D4:: @ 83FD8D4
+ .4byte sub_811D0F0
+ .4byte sub_811D144
+ .4byte sub_811D19C
+
+ .align 2
+gUnknown_083FD8E0:: @ 83FD8E0
+ .4byte sub_811D200
+ .4byte sub_811D260
+ .4byte sub_811D2D8
+ .4byte sub_811D3B0
+ .4byte sub_811D41C
+
+gUnknown_083FD8F4:: @ 83FD8F4
+ .incbin "baserom.gba", 0x003fd8f4, 0x46
+
+gUnknown_083FD93A:: @ 83FD93A
+ .incbin "baserom.gba", 0x003fd93a, 0xe
+
+ .align 2
+gUnknown_083FD948:: @ 83FD948
+ .4byte sub_811D584
+ .4byte sub_811D5E0
+
+ .align 2
+gSpriteImageTable_83FD950:: @ 83FD950
+ obj_frame_tiles gSpriteImage_83FC148, 0x200
+
+ .align 2
+gSpriteAnim_83FD958:: @ 83FD958
+ obj_image_anim_frame 0, 1
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_83FD960:: @ 83FD960
+ .4byte gSpriteAnim_83FD958
+
+ .align 2
+gSpriteAffineAnim_83FD964:: @ 83FD964
+ obj_rot_scal_anim_frame 0x0, 0x0, -4, 1
+ obj_rot_scal_anim_jump 0
+
+ .align 2
+gSpriteAffineAnim_83FD974:: @ 83FD974
+ obj_rot_scal_anim_frame 0x0, 0x0, 4, 1
+ obj_rot_scal_anim_jump 0
+
+ .align 2
+gSpriteAffineAnimTable_83FD984:: @ 83FD984
+ .4byte gSpriteAffineAnim_83FD964
+ .4byte gSpriteAffineAnim_83FD974
+
+ .align 2
+gSpriteTemplate_83FD98C:: @ 83FD98C
+ spr_template 0xFFFF, 4105, gFieldOamData_32x32, gSpriteAnimTable_83FD960, gSpriteImageTable_83FD950, gSpriteAffineAnimTable_83FD984, sub_811B720
+
+ .align 2
+gOamData_83FD9A4:: @ 83FD9A4
+ .2byte 0x0000
+ .2byte 0xC000
+ .2byte 0x0000
+
+ .align 2
+gSpriteImageTable_83FD9AC:: @ 83FD9AC
+ obj_frame_tiles gSpriteImage_83FC528, 0x800
+
+ .align 2
+gSpriteImageTable_83FD9B4:: @ 83FD9B4
+ obj_frame_tiles gSpriteImage_83FCD28, 0x800
+
+ .align 2
+gSpriteAnim_83FD9BC:: @ 83FD9BC
+ obj_image_anim_frame 0, 1
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_83FD9C4:: @ 83FD9C4
+ .4byte gSpriteAnim_83FD9BC
+
+ .align 2
+gSpriteTemplate_83FD9C8:: @ 83FD9C8
+ spr_template 0xFFFF, 4106, gOamData_83FD9A4, gSpriteAnimTable_83FD9C4, gSpriteImageTable_83FD9AC, gDummySpriteAffineAnimTable, sub_811C90C
+
+ .align 2
+gSpriteTemplate_83FD9E0:: @ 83FD9E0
+ spr_template 0xFFFF, 4106, gOamData_83FD9A4, gSpriteAnimTable_83FD9C4, gSpriteImageTable_83FD9B4, gDummySpriteAffineAnimTable, sub_811C90C
+
+ .align 2
+gFieldEffectObjectPalette10:: @ 83FD9F8
+ .incbin "graphics/field_effect_objects/palettes/10.gbapal"
+
+ .align 2
+gFieldEffectObjectPaletteInfo10:: @ 83FDA18
+ obj_pal gFieldEffectObjectPalette10, 0x1009
+
+ .align 2
+Unknown_83FDA20:
+ .incbin "graphics/battle_transitions/sidney_bg.gbapal"
+
+ .align 2
+Unknown_83FDA40:
+ .incbin "graphics/battle_transitions/phoebe_bg.gbapal"
+
+ .align 2
+Unknown_83FDA60:
+ .incbin "graphics/battle_transitions/glacia_bg.gbapal"
+
+ .align 2
+Unknown_83FDA80:
+ .incbin "graphics/battle_transitions/drake_bg.gbapal"
+
+ .align 2
+Unknown_83FDAA0:
+ .incbin "graphics/battle_transitions/steven_bg.gbapal"
+
+ .align 2
+Unknown_83FDAC0:
+ .incbin "graphics/battle_transitions/brendan_bg.gbapal"
+
+ .align 2
+Unknown_83FDAE0:
+ .incbin "graphics/battle_transitions/may_bg.gbapal"
+
+ .align 2
+gUnknown_083FDB00:: @ 83FDB00
+ .4byte Unknown_83FDA20
+ .4byte Unknown_83FDA40
+ .4byte Unknown_83FDA60
+ .4byte Unknown_83FDA80
+ .4byte Unknown_83FDAA0
+
+ .align 2
+gUnknown_083FDB14:: @ 83FDB14
+ .4byte Unknown_83FDAC0
+ .4byte Unknown_83FDAE0
+
+ .align 2
+UnusedTrainerPalette:
+ .incbin "graphics/battle_transitions/unused_trainer.gbapal"
+
+ .align 2
+gSpritePalette_UnusedTrainer:: @ 83FDB3C
+ obj_pal UnusedTrainerPalette, 0x100A
+
+ .align 2
+gUnknown_083FDB44:: @ 83FDB44
+ .incbin "graphics/battle_transitions/big_pokeball_map.bin"
+
+ .align 2
+gUnknown_083FDFF4:: @ 83FDFF4
+ .incbin "graphics/battle_transitions/elite_four_bg_map.bin"
diff --git a/data/berry.s b/data/berry.s
new file mode 100644
index 000000000..091af4105
--- /dev/null
+++ b/data/berry.s
@@ -0,0 +1,14 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+@ 83CC740
+ .include "data/text/berry_descriptions.inc"
+
+@ 83CD2CC
+ .include "data/berries.inc"
+
+ .align 2
+gBlankBerryTree:: @ 83CD780
+ .4byte 0, 0
diff --git a/data/berry_blender.s b/data/berry_blender.s
new file mode 100644
index 000000000..d346ab9cd
--- /dev/null
+++ b/data/berry_blender.s
@@ -0,0 +1,447 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+ .align 2
+gUnknown_08215C0C:: @ 8215C0C
+ .incbin "graphics/berry_blender/center.gbapal"
+
+ .align 2
+gUnknown_08215C2C:: @ 8215C2C
+ .incbin "graphics/berry_blender/center_map.bin"
+
+ .align 2
+gUnknown_0821602C:: @ 821602C
+ .incbin "graphics/berry_blender/outer.gbapal"
+
+ .incbin "graphics/unused/unknown/821604C.gbapal"
+
+ .space 0x1C0
+
+ .string "▶$"
+ .string " $"
+ .string "カッコイ$" @ "cool" (missing an イ at the end)
+ .string "カワイイ$" @ "cute"
+ .string "ウツクシ$" @ "beautiful" (missing an イ at the end)
+ .string "カシコイ$" @ "smart"
+ .string "タクマシ$" @ "tough" (missing an イ at the end)
+
+gUnknown_08216249:: @ 8216249
+ .string "\p$"
+
+@ unreferenced
+@ These appear to be the first names of four people who worked on the game.
+ .string "てつじ$", 10 @ Tetsuji (Ohta)
+ .string "あきと$", 10 @ Akito (Mori)
+ .string "シゲル$", 10 @ Shigeru (Ohmori)
+ .string "ヨシノリ$", 10 @ Yoshinori (Matsuda)
+
+UnknownText_2Pok:
+ .string "2Pok$"
+UnknownText_3Pok:
+ .string "3Pok$"
+UnknownText_4Pok:
+ .string "4Pok$"
+
+ .align 2
+gUnknown_08216284:: @ 8216284
+ .4byte UnknownText_2Pok
+ .4byte UnknownText_3Pok
+ .4byte UnknownText_4Pok
+
+@ unreferenced
+ .string "1P$", 4
+ .string "2P$", 4
+ .string "3P$", 4
+ .string "4P$", 4
+
+UnknownText_Mister:
+ .string "MISTER$"
+UnknownText_Laddie:
+ .string "LADDIE$"
+UnknownText_Lassie:
+ .string "LASSIE$"
+
+ .align 2
+gUnknown_082162B8:: @ 82162B8
+ .4byte UnknownText_Mister
+ .4byte UnknownText_Laddie
+ .4byte UnknownText_Lassie
+
+gUnknown_082162C4:: @ 82162C4
+ .string "{COLOR RED}$"
+
+gUnknown_082162C8:: @ 82162C8
+ .string "\n$"
+
+ .string " $"
+
+gUnknown_082162CC:: @ 82162CC
+ .byte -1, -1
+ .byte 1, -1
+ .byte -1, 1
+ .byte 1, 1
+
+gUnknown_082162D4:: @ 82162D4
+ .byte 2, 6
+ .byte 23, 6
+ .byte 2, 12
+ .byte 23, 12
+ .byte 1, 6
+ .byte 22, 6
+ .byte 1, 12
+ .byte 22, 12
+
+gUnknown_082162E4:: @ 82162E4
+ .byte 72, 32
+ .byte 168, 32
+ .byte 72, 128
+ .byte 168, 128
+
+gUnknown_082162EC:: @ 82162EC
+ .byte -1, 0, 1, -1
+ .byte -1, 0, 1, 2
+ .byte 0, 1, 2, 3
+
+ .align 1
+gUnknown_082162F8:: @ 82162F8
+ .2byte 0x0000, 0xC000, 0x4000, 0x8000
+
+gUnknown_08216300:: @ 8216300
+ .byte 1
+ .byte 1
+ .byte 0
+
+gUnknown_08216303:: @ 8216303
+ .byte 32
+ .byte 224
+ .byte 96
+ .byte 160
+ .byte 0
+
+ .align 2
+gUnknown_08216308:: @ 8216308
+ .4byte sub_804F8C8
+ .4byte sub_804F9F4
+ .4byte sub_804FB1C
+
+ .align 2
+gOamData_8216314:: @ 8216314
+ .2byte 0x0000
+ .2byte 0x8000
+ .2byte 0x0400
+
+ .align 2
+gSpriteAnim_821631C:: @ 821631C
+ obj_image_anim_frame 16, 5, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_8216324:: @ 8216324
+ obj_image_anim_frame 16, 5, OBJ_IMAGE_ANIM_V_FLIP
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_821632C:: @ 821632C
+ obj_image_anim_frame 16, 5, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_8216334:: @ 8216334
+ obj_image_anim_frame 16, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_821633C:: @ 821633C
+ obj_image_anim_frame 48, 2, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_frame 32, 5, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_frame 48, 3, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_frame 16, 5, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_8216350:: @ 8216350
+ obj_image_anim_frame 48, 2, OBJ_IMAGE_ANIM_V_FLIP
+ obj_image_anim_frame 32, 5, OBJ_IMAGE_ANIM_V_FLIP
+ obj_image_anim_frame 48, 3, OBJ_IMAGE_ANIM_V_FLIP
+ obj_image_anim_frame 16, 5, OBJ_IMAGE_ANIM_V_FLIP
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_8216364:: @ 8216364
+ obj_image_anim_frame 48, 2, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_frame 32, 5, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_frame 48, 3, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_frame 16, 5, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_8216378:: @ 8216378
+ obj_image_anim_frame 48, 2
+ obj_image_anim_frame 32, 5
+ obj_image_anim_frame 48, 3
+ obj_image_anim_frame 16, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_821638C:: @ 821638C
+ obj_image_anim_frame 0, 5, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_8216394:: @ 8216394
+ obj_image_anim_frame 0, 5, OBJ_IMAGE_ANIM_V_FLIP
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_821639C:: @ 821639C
+ obj_image_anim_frame 0, 5, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_82163A4:: @ 82163A4
+ obj_image_anim_frame 0, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_82163AC:: @ 82163AC
+ .4byte gSpriteAnim_821631C
+ .4byte gSpriteAnim_8216324
+ .4byte gSpriteAnim_821632C
+ .4byte gSpriteAnim_8216334
+ .4byte gSpriteAnim_821633C
+ .4byte gSpriteAnim_8216350
+ .4byte gSpriteAnim_8216364
+ .4byte gSpriteAnim_8216378
+ .4byte gSpriteAnim_821638C
+ .4byte gSpriteAnim_8216394
+ .4byte gSpriteAnim_821639C
+ .4byte gSpriteAnim_82163A4
+
+ .align 2
+gUnknown_082163DC:: @ 82163DC
+ obj_tiles gBerryBlenderArrowTiles, 0x800, 46545
+
+ .align 2
+gUnknown_082163E4:: @ 82163E4
+ obj_pal gBerryBlenderMiscPalette, 46546
+
+ .align 2
+gUnknown_082163EC:: @ 82163EC
+ obj_pal gBerryBlenderArrowPalette, 12312
+
+ .align 2
+gSpriteTemplate_82163F4:: @ 82163F4
+ spr_template 46545, 12312, gOamData_8216314, gSpriteAnimTable_82163AC, NULL, gDummySpriteAffineAnimTable, sub_8051C04
+
+ .align 2
+gOamData_821640C:: @ 821640C
+ .2byte 0x0000
+ .2byte 0x4000
+ .2byte 0x0000
+
+ .align 2
+gSpriteAnim_8216414:: @ 8216414
+ obj_image_anim_frame 0, 20
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_821641C:: @ 821641C
+ obj_image_anim_frame 4, 20, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_8216424:: @ 8216424
+ obj_image_anim_frame 8, 4
+ obj_image_anim_frame 12, 4
+ obj_image_anim_frame 8, 4
+ obj_image_anim_frame 12, 4
+ obj_image_anim_frame 8, 4
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_821643C:: @ 821643C
+ obj_image_anim_frame 8, 4
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_8216444:: @ 8216444
+ .4byte gSpriteAnim_8216414
+ .4byte gSpriteAnim_821641C
+ .4byte gSpriteAnim_8216424
+ .4byte gSpriteAnim_821643C
+
+ .align 2
+gUnknown_08216454:: @ 8216454
+ obj_tiles gBerryBlenderMarubatsuTiles, 0x200, 48888
+
+ .align 2
+gSpriteTemplate_821645C:: @ 821645C
+ spr_template 48888, 46546, gOamData_821640C, gSpriteAnimTable_8216444, NULL, gDummySpriteAffineAnimTable, sub_8051650
+
+ .align 2
+gOamData_8216474:: @ 8216474
+ .2byte 0x0000
+ .2byte 0x0000
+ .2byte 0x0400
+
+ .align 2
+gSpriteAnim_821647C:: @ 821647C
+ obj_image_anim_frame 0, 3
+ obj_image_anim_frame 1, 4
+ obj_image_anim_frame 3, 5
+ obj_image_anim_frame 1, 4
+ obj_image_anim_frame 0, 3
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_8216494:: @ 8216494
+ obj_image_anim_frame 0, 3
+ obj_image_anim_frame 2, 4
+ obj_image_anim_frame 4, 5
+ obj_image_anim_frame 2, 4
+ obj_image_anim_frame 0, 3
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_82164AC:: @ 82164AC
+ obj_image_anim_frame 0, 2
+ obj_image_anim_frame 1, 2
+ obj_image_anim_frame 2, 2
+ obj_image_anim_frame 4, 4
+ obj_image_anim_frame 3, 3
+ obj_image_anim_frame 2, 2
+ obj_image_anim_frame 1, 2
+ obj_image_anim_frame 0, 2
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_82164D0:: @ 82164D0
+ obj_image_anim_frame 5, 5, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_82164D8:: @ 82164D8
+ obj_image_anim_frame 6, 5, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_82164E0:: @ 82164E0
+ .4byte gSpriteAnim_821647C
+ .4byte gSpriteAnim_8216494
+ .4byte gSpriteAnim_82164AC
+ .4byte gSpriteAnim_82164D0
+ .4byte gSpriteAnim_82164D8
+
+ .align 2
+gUnknown_082164F4:: @ 82164F4
+ obj_tiles gBerryBlenderParticlesTiles, 0xE0, 23456
+
+ .align 2
+gSpriteTemplate_82164FC:: @ 82164FC
+ spr_template 23456, 46546, gOamData_8216474, gSpriteAnimTable_82164E0, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
+
+ .align 2
+gOamData_8216514:: @ 8216514
+ .2byte 0x0000
+ .2byte 0x8000
+ .2byte 0x0400
+
+ .align 2
+gSpriteAnim_821651C:: @ 821651C
+ obj_image_anim_frame 32, 30
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_8216524:: @ 8216524
+ obj_image_anim_frame 16, 30
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_821652C:: @ 821652C
+ obj_image_anim_frame 0, 30
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_8216534:: @ 8216534
+ .4byte gSpriteAnim_821651C
+ .4byte gSpriteAnim_8216524
+ .4byte gSpriteAnim_821652C
+
+ .align 2
+gUnknown_08216540:: @ 8216540
+ obj_tiles gBerryBlenderCountdownNumbersTiles, 0x600, 12345
+
+ .align 2
+gSpriteTemplate_8216548:: @ 8216548
+ spr_template 12345, 46546, gOamData_8216514, gSpriteAnimTable_8216534, NULL, gDummySpriteAffineAnimTable, sub_805181C
+
+ .align 2
+gOamData_8216560:: @ 8216560
+ .2byte 0x4000
+ .2byte 0xC000
+ .2byte 0x0400
+
+ .align 2
+gSpriteAnim_8216568:: @ 8216568
+ obj_image_anim_frame 0, 30
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_8216570:: @ 8216570
+ .4byte gSpriteAnim_8216568
+
+ .align 2
+gUnknown_08216574:: @ 8216574
+ obj_tiles gBerryBlenderStartTiles, 0x400, 12346
+
+ .align 2
+gSpriteTemplate_821657C:: @ 821657C
+ spr_template 12346, 46546, gOamData_8216560, gSpriteAnimTable_8216570, NULL, gDummySpriteAffineAnimTable, sub_80518CC
+
+ .align 1
+gUnknown_08216594:: @ 8216594
+ .2byte -10, 20, 10, 2, 1
+ .2byte 250, 20, 10, -2, 1
+ .2byte -10, 140, 10, 2, -1
+ .2byte 250, 140, 10, -2, -1
+
+gUnknown_082165BC:: @ 82165BC
+ .byte 4, 3, 2
+ .byte 0, 4, 3
+ .byte 1, 0, 4
+ .byte 2, 1, 0
+ .byte 3, 2, 1
+ .byte 0, 2, 3
+ .byte 1, 3, 4
+ .byte 2, 4, 0
+ .byte 3, 0, 1
+ .byte 4, 1, 2
+
+gUnknown_082165DA:: @ 82165DA
+ .byte 1, 1, 2, 3, 4
+
+gUnknown_082165DF:: @ 82165DF
+ .byte 0x1C, 0x16, 0x13, 0x1A, 0x19, 0x0E, 0x0D, 0x0B, 0x07, 0x15
+
+gUnknown_082165E9:: @ 82165E9
+ .byte 6, 6, 6, 6, 5
+
+gUnknown_082165EE:: @ 82165EE
+ .byte 3, 3, 3, 2, 2
+
+gUnknown_082165F3:: @ 82165F3
+ .byte 3, 3, 3, 3, 2
+
+gUnknown_082165F8:: @ 82165F8
+ .string " $"
+
+gOtherText_BPMAndDash:: @ 82165FA
+ .string "BPM$"
+ .string "-$"
+
+gUnknown_08216600:: @ 8216600
+ .string "\n$"
+
+ .string "\n$"
diff --git a/data/berry_tag_screen.s b/data/berry_tag_screen.s
new file mode 100644
index 000000000..d1be8a9d7
--- /dev/null
+++ b/data/berry_tag_screen.s
@@ -0,0 +1,12 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+ .align 2
+gUnknown_0841192C:: @ 841192C
+ .4byte ContestStatsText_VerySoft
+ .4byte ContestStatsText_Soft
+ .4byte ContestStatsText_Hard
+ .4byte ContestStatsText_VeryHard
+ .4byte ContestStatsText_SuperHard
diff --git a/data/bike.s b/data/bike.s
new file mode 100644
index 000000000..ab2d7b67c
--- /dev/null
+++ b/data/bike.s
@@ -0,0 +1,57 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+ .align 2
+gUnknown_083DB594:: @ 83DB594
+ .4byte sub_80E5168
+ .4byte sub_80E517C
+ .4byte sub_80E51C4
+ .4byte sub_80E5270
+
+ .align 2
+gUnknown_083DB5A4:: @ 83DB5A4
+ .4byte PlayerGoSpeed0
+ .4byte sub_80593C4
+ .4byte sub_80593F4
+
+ .align 2
+gUnknown_083DB5B0:: @ 83DB5B0
+ .4byte sub_80E56F8
+ .4byte sub_80E5708
+ .4byte sub_80E5744
+ .4byte sub_80E57BC
+ .4byte sub_80E57F8
+ .4byte sub_80E5834
+ .4byte sub_80E5870
+ .4byte sub_80E58AC
+ .4byte sub_80E5920
+ .4byte sub_80E5990
+ .4byte sub_80E59A0
+ .4byte sub_80E5A30
+ .4byte sub_80E5AC0
+
+ .align 2
+gUnknown_083DB5E4:: @ 83DB5E4
+ .4byte CheckMovementInputAcroBikeNormal
+ .4byte CheckMovementInputAcroBikeChangingDirection
+ .4byte CheckMovementInputAcroBikeStandingWheelie
+ .4byte CheckMovementInputAcroBikeBunnyHop
+ .4byte CheckMovementInputAcroBikeMovingWheelie
+ .4byte CheckMovementInputAcroBikeUnknownMode5
+ .4byte CheckMovementInputAcroBikeUnknownMode6
+
+ .align 1
+gUnknown_083DB600:: @ 83DB600
+ .2byte 1, 2, 4
+
+Unknown_3DB606:: @ 83DB606
+ .byte 4, 0
+
+ .align 2
+gUnknown_083DB608:: @ 83DB608
+ .4byte 0x1, 0x2, 0xf, 0xf, Unknown_3DB606, Unknown_3DB606, 0x1
+ .4byte 0x2, 0x2, 0xf, 0xf, Unknown_3DB606, Unknown_3DB606, 0x2
+ .4byte 0x3, 0x2, 0xf, 0xf, Unknown_3DB606, Unknown_3DB606, 0x3
+ .4byte 0x4, 0x2, 0xf, 0xf, Unknown_3DB606, Unknown_3DB606, 0x4
diff --git a/data/cable_car.s b/data/cable_car.s
new file mode 100644
index 000000000..3075f7651
--- /dev/null
+++ b/data/cable_car.s
@@ -0,0 +1,101 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+ .align 2
+gCableCarMtChimneyTilemap:: @ 8401820
+ .incbin "graphics/misc/cable_car_mt_chimney_map.bin.lz"
+
+ .align 2
+gCableCarTreeTilemap:: @ 8401978
+ .incbin "graphics/misc/cable_car_tree_map.bin.lz"
+
+ .align 2
+gCableCarMountainTilemap:: @ 8401AFC
+ .incbin "graphics/misc/cable_car_mountain_map.bin.lz"
+
+ .align 2
+gCableCarPylonHookTilemapEntries:: @ 8401CC0
+ .2byte 0x3000
+ .2byte 0x3001
+ .2byte 0x3002
+ .2byte 0x3003
+ .2byte 0x3004
+ .2byte 0x3005
+ .2byte 0x3006
+ .2byte 0x3007
+ .2byte 0x3008
+ .2byte 0x3009
+
+ .align 2
+gCableCarPylonStemTilemap:: @ 8401CD4
+ .incbin "graphics/misc/cable_car_pylon_stem_map.bin.lz"
+
+ .align 2
+gUnknown_08401CF8:: @ 8401CF8
+ obj_tiles gCableCar_Gfx, 0x800, 1
+ obj_tiles gCableCarDoor_Gfx, 0x40, 2
+ obj_tiles gCableCarCord_Gfx, 0x80, 3
+ .space 8
+
+ .align 2
+gUnknown_08401D18:: @ 8401D18
+ obj_pal gCableCar_Pal, 1
+ .space 8
+
+ .align 2
+gOamData_8401D28:: @ 8401D28
+ .2byte 0x0300
+ .2byte 0xC000
+ .2byte 0x0800
+
+ .align 2
+gOamData_8401D30:: @ 8401D30
+ .2byte 0x4300
+ .2byte 0x0000
+ .2byte 0x0800
+
+ .align 2
+gOamData_8401D38:: @ 8401D38
+ .2byte 0x0300
+ .2byte 0x4000
+ .2byte 0x0800
+
+ .align 2
+gSpriteTemplate_8401D40:: @ 8401D40
+ spr_template 1, 1, gOamData_8401D28, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_8123CB8
+
+ .align 2
+gSpriteTemplate_8401D58:: @ 8401D58
+ spr_template 2, 1, gOamData_8401D30, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_8123CB8
+
+ .align 2
+gSpriteTemplate_8401D70:: @ 8401D70
+ spr_template 3, 1, gOamData_8401D38, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, nullsub_76
+
+gCableCarPlayerGraphicsIDs:: @ 8401D88
+ .byte MAP_OBJ_GFX_RIVAL_BRENDAN_NORMAL
+ .byte MAP_OBJ_GFX_RIVAL_MAY_NORMAL
+
+gMtChimneyHikerGraphicsIDs:: @ 8401D8A
+ .byte MAP_OBJ_GFX_HIKER
+ .byte MAP_OBJ_GFX_CAMPER
+ .byte MAP_OBJ_GFX_PICNICKER
+ .byte MAP_OBJ_GFX_POOCHYENA @ not used
+
+ .align 1
+gMtChimneyHikerCoords:: @ 8401D8E
+ .2byte 0, 80
+ .2byte 240, 146
+
+gMtChimneyHikerMovementDelayTable:: @ 8401D96
+ .byte 0
+ .byte 60
+ .byte 120
+ .byte 170
+
+ .align 2
+gUnknown_08401D9C:: @ 8401D9C
+ .4byte sub_8123EB8
+ .4byte sub_8123F44
diff --git a/data/cable_club.s b/data/cable_club.s
new file mode 100644
index 000000000..66608a206
--- /dev/null
+++ b/data/cable_club.s
@@ -0,0 +1,20 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+TrainerCardColorName_Bronze:
+ .string "BRONZE$", 7
+TrainerCardColorName_Copper:
+ .string "COPPER$", 7
+TrainerCardColorName_Silver:
+ .string "SILVER$", 7
+TrainerCardColorName_Gold:
+ .string "GOLD$", 7
+
+ .align 2
+gTrainerCardColorNames:: @ 839B21C
+ .4byte TrainerCardColorName_Bronze
+ .4byte TrainerCardColorName_Copper
+ .4byte TrainerCardColorName_Silver
+ .4byte TrainerCardColorName_Gold
diff --git a/data/choose_party.s b/data/choose_party.s
new file mode 100644
index 000000000..348f9e385
--- /dev/null
+++ b/data/choose_party.s
@@ -0,0 +1,56 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+ .align 2
+gUnknown_084017B0:: @ 84017B0
+ .4byte OtherText_Summary, sub_812265C
+ .4byte OtherText_Enter2, sub_8122694
+ .4byte OtherText_NoEntry, sub_8122770
+ .4byte gUnknownText_Exit, sub_8122838
+
+gUnknown_084017D0:: @ 84017D0
+ .byte 1, 0, 3
+
+gUnknown_084017D3: @ 84017D3
+ .byte 2, 0, 3
+
+gUnknown_084017D6: @ 84017D6
+ .byte 0, 3
+
+ .align 2
+gUnknown_084017D8:: @ 84017D8
+ .byte 3, 9
+ .space 2
+ .4byte gUnknown_084017D0
+
+ .byte 3, 9
+ .space 2
+ .4byte gUnknown_084017D3
+
+ .byte 2, 9
+ .space 2
+ .4byte gUnknown_084017D6
+
+ .align 2
+gUnknown_084017F0:: @ 84017F0
+ .4byte OtherText_Store, sub_8122F70
+ .4byte OtherText_Summary, sub_81230BC
+ .4byte gUnknownText_Exit, sub_81230F4
+
+gUnknown_08401808:: @ 8401808
+ .byte 0, 1, 2
+
+gUnknown_0840180B:: @ 840180B
+ .byte 1, 2
+
+ .align 2
+gUnknown_08401810:: @ 8401810
+ .byte 3, 9
+ .space 2
+ .4byte gUnknown_08401808
+
+ .byte 2, 9
+ .space 2
+ .4byte gUnknown_0840180B
diff --git a/data/contest.s b/data/contest.s
new file mode 100644
index 000000000..f51fe0ca4
--- /dev/null
+++ b/data/contest.s
@@ -0,0 +1,345 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+@ 83C9408
+ .include "data/contest_opponents.inc"
+
+gUnknown_083CA308:: @ 83CA308
+ .byte 19, 0
+ .byte 19, 5
+ .byte 19, 10
+ .byte 19, 15
+
+gUnknown_083CA310:: @ 83CA310
+ .byte 25, 0
+ .byte 25, 5
+ .byte 25, 10
+ .byte 25, 15
+
+gUnknown_083CA318:: @ 83CA318
+ .byte 20, 2
+ .byte 20, 7
+ .byte 20, 12
+ .byte 20, 17
+ .byte 24, 2
+ .byte 24, 7
+ .byte 24, 12
+ .byte 24, 17
+ .byte 220, 24
+ .byte 220, 64
+ .byte 220, 104
+ .byte 220, 144
+
+gUnknown_083CA330:: @ 83CA330
+ .byte 224, 24
+ .byte 224, 64
+ .byte 224, 104
+ .byte 224, 144
+
+gUnknown_083CA338:: @ 83CA338
+ .byte 36, 76, 116, 156
+
+gUnknown_083CA33C:: @ 83CA33C
+ .byte 36, 76, 116, 156
+
+gUnknown_083CA340:: @ 83CA340
+ .byte 0, 31, 9, 39
+ .byte 0, 33, 9, 39
+ .byte 0, 35, 9, 39
+ .byte 0, 37, 9, 39
+
+ .align 2
+gUnknown_083CA350:: @ 83CA350
+ obj_tiles gTiles_8D1975C, 0x20, 20004
+
+ .align 2
+gOamData_83CA358:: @ 83CA358
+ .2byte 0x0000
+ .2byte 0x0000
+ .2byte 0x0000
+
+ .align 2
+gSpriteAffineAnim_83CA360:: @ 83CA360
+ obj_rot_scal_anim_frame 0x100, 0x100, 0, 0
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnim_83CA370:: @ 83CA370
+ obj_rot_scal_anim_frame 0x100, 0x100, 0, 0
+ obj_rot_scal_anim_frame 0xFFF6, 0xFFF6, -20, 20
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnim_83CA388:: @ 83CA388
+ obj_rot_scal_anim_frame 0x38, 0x38, 0, 0
+ obj_rot_scal_anim_frame 0xA, 0xA, 20, 20
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnimTable_83CA3A0:: @ 83CA3A0
+ .4byte gSpriteAffineAnim_83CA360
+ .4byte gSpriteAffineAnim_83CA370
+ .4byte gSpriteAffineAnim_83CA388
+
+ .align 2
+gSpriteTemplate_83CA3AC:: @ 83CA3AC
+ spr_template 20004, 44000, gOamData_83CA358, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83CA3A0, SpriteCallbackDummy
+
+ .align 2
+gUnknown_083CA3C4:: @ 83CA3C4
+ obj_tiles gContestNextTurnGfx, 256, 0x4e26
+ obj_tiles gContestNextTurnGfx, 256, 0x4e27
+ obj_tiles gContestNextTurnGfx, 256, 0x4e28
+ obj_tiles gContestNextTurnGfx, 256, 0x4e29
+
+ .align 2
+gUnknown_083CA3E4:: @ 83CA3E4
+ obj_pal gContestPal, 0x4E26
+
+ .align 2
+gOamData_83CA3EC:: @ 83CA3EC
+ .2byte 0x4000
+ .2byte 0x4000
+ .2byte 0x0000
+
+ .align 2
+gSpriteTemplate_83CA3F4:: @ 83CA3F4
+ spr_template 20006, 20006, gOamData_83CA3EC, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
+
+ .align 2
+gSpriteTemplate_83CA40C:: @ 83CA40C
+ spr_template 20007, 20006, gOamData_83CA3EC, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
+
+ .align 2
+gSpriteTemplate_83CA424:: @ 83CA424
+ spr_template 20008, 20006, gOamData_83CA3EC, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
+
+ .align 2
+gSpriteTemplate_83CA43C:: @ 83CA43C
+ spr_template 20009, 20006, gOamData_83CA3EC, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
+
+ .align 2
+Unknown_3CA454: @ 83CA454
+ .incbin "baserom.gba", 0x3ca454, 0x10
+
+ .align 2
+gUnknown_083CA464:: @ 83CA464
+ .4byte 0x2, Unknown_3CA454
+
+ .align 2
+gUnknown_083CA46C:: @ 83CA46C
+ obj_tiles gContestApplauseGfx, 1024, 0xabe2
+
+ .align 2
+gUnknown_083CA474:: @ 83CA474
+ obj_pal gContestPal, 0xABE2
+
+ .align 2
+gOamData_83CA47C:: @ 83CA47C
+ .2byte 0x4000
+ .2byte 0xC000
+ .2byte 0x0000
+
+ .align 2
+gSpriteTemplate_83CA484:: @ 83CA484
+ spr_template 44002, 44002, gOamData_83CA47C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
+
+ .align 2
+gOamData_83CA49C:: @ 83CA49C
+ .2byte 0x0000
+ .2byte 0xC000
+ .2byte 0x2C00
+
+ .align 2
+gSpriteTemplate_83CA4A4:: @ 83CA4A4
+ spr_template 20005, 20005, gOamData_83CA49C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
+
+ .align 2
+gUnknown_083CA4BC:: @ 83CA4BC
+ obj_tiles gContestJudgeGfx, 2048, 0x4e25
+
+ .align 2
+gUnknown_083CA4C4:: @ 83CA4C4
+ obj_tiles gContestJudgeSymbolsGfx, 896, 0xabe0
+
+ .align 2
+gUnknown_083CA4CC:: @ 83CA4CC
+ obj_pal gContest3Pal, 0xabe0
+
+ .align 2
+gUnknown_083CA4D4:: @ 83CA4D4
+ spr_template 0xABE0, 0xABE0, gOamData_837DF2C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
+
+ .include "data/text/contest_strings.inc"
+
+gUnknownText_MissedTurn:: @ 83CC355
+ .string "Missed turn$"
+
+gUnknownText_LinkStandbyAndWinner:: @ 83CC361
+ .string "Link standby...$"
+ .string "{COLOR WHITE2}$"
+ .string "The winner is {STR_VAR_1}’s {STR_VAR_2}!\nCongratulations!$"
+
+@ unknown, unreferenced data
+ .byte 0x00
+ .byte 0x9C
+ .byte 0x77
+
+gUnknownText_UnknownFormatting2:: @ 83CC3A0
+ .string "{COLOR GREEN}{SHADOW RED}$"
+
+gUnknownText_UnknownFormatting3:: @ 83CC3A7
+ .string "{COLOR LIGHT_GREY}$"
+
+ .align 2
+gUnknown_083CC3AC:: @ 83CC3AC
+ obj_tiles gContestNumbers_UnusedGfx, 512, 0x4e20
+
+ .align 2
+gUnknown_083CC3B4:: @ 83CC3B4
+ obj_pal gContestNumbers_UnusedPal, 0x4E20
+ obj_pal gContestNumbers_UnusedPal, 0x4E21
+ obj_pal gContestNumbers_UnusedPal, 0x4E22
+ obj_pal gContestNumbers_UnusedPal, 0x4E23
+
+ .align 2
+gSpriteAnim_83CC3D4:: @ 83CC3D4
+ obj_image_anim_frame 0, 1
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83CC3DC:: @ 83CC3DC
+ obj_image_anim_frame 4, 1
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83CC3E4:: @ 83CC3E4
+ obj_image_anim_frame 8, 1
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83CC3EC:: @ 83CC3EC
+ obj_image_anim_frame 12, 1
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_83CC3F4:: @ 83CC3F4
+ .4byte gSpriteAnim_83CC3D4
+ .4byte gSpriteAnim_83CC3DC
+ .4byte gSpriteAnim_83CC3E4
+ .4byte gSpriteAnim_83CC3EC
+
+ .align 2
+gSpriteAffineAnim_83CC404:: @ 83CC404
+ obj_rot_scal_anim_frame 0x0, 0x0, 0, 1
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnim_83CC414:: @ 83CC414
+ obj_rot_scal_anim_frame 0xFFF1, 0xFFF1, 0, 15
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnim_83CC424:: @ 83CC424
+ obj_rot_scal_anim_frame 0x1F, 0x1F, 0, 0
+ obj_rot_scal_anim_frame 0xF, 0xF, 0, 15
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnimTable_83CC43C:: @ 83CC43C
+ .4byte gSpriteAffineAnim_83CC404
+ .4byte gSpriteAffineAnim_83CC414
+ .4byte gSpriteAffineAnim_83CC424
+
+ .align 2
+ .incbin "baserom.gba", 0x003cc448, 0x4
+
+ .align 2
+gOamData_83CC44C:: @ 83CC44C
+ .2byte 0x0000
+ .2byte 0x4000
+ .2byte 0x0000
+
+ .align 2
+gSpriteTemplate_83CC454:: @ 83CC454
+ spr_template 20000, 20000, gOamData_83CC44C, gSpriteAnimTable_83CC3F4, NULL, gSpriteAffineAnimTable_83CC43C, SpriteCallbackDummy
+
+ .align 2
+gSpriteTemplate_83CC46C:: @ 83CC46C
+ spr_template 20000, 20001, gOamData_83CC44C, gSpriteAnimTable_83CC3F4, NULL, gSpriteAffineAnimTable_83CC43C, SpriteCallbackDummy
+
+ .align 2
+gSpriteTemplate_83CC484:: @ 83CC484
+ spr_template 20000, 20002, gOamData_83CC44C, gSpriteAnimTable_83CC3F4, NULL, gSpriteAffineAnimTable_83CC43C, SpriteCallbackDummy
+
+ .align 2
+gSpriteTemplate_83CC49C:: @ 83CC49C
+ spr_template 20000, 20003, gOamData_83CC44C, gSpriteAnimTable_83CC3F4, NULL, gSpriteAffineAnimTable_83CC43C, SpriteCallbackDummy
+
+ .align 2
+gUnknown_083CC4B4:: @ 83CC4B4
+ obj_tiles gBlankGfxCompressed, 4096, 0x80e8
+ obj_tiles gBlankGfxCompressed, 4096, 0x80e9
+ obj_tiles gBlankGfxCompressed, 4096, 0x80ea
+ obj_tiles gBlankGfxCompressed, 4096, 0x80eb
+
+gUnknown_083CC4D4:: @ 83CC4D4
+ .incbin "baserom.gba", 0x003cc4d4, 0x20
+
+ .align 2
+gOamData_83CC4F4:: @ 83CC4F4
+ .2byte 0x0700
+ .2byte 0xC000
+ .2byte 0x0000
+
+ .align 2
+gSpriteAffineAnim_83CC4FC:: @ 83CC4FC
+ obj_rot_scal_anim_frame 0x100, 0x100, 0, 0
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnim_83CC50C:: @ 83CC50C
+ obj_rot_scal_anim_frame 0x3, 0x3, 0, 15
+ obj_rot_scal_anim_frame 0xFFFD, 0xFFFD, 0, 15
+ obj_rot_scal_anim_frame 0x3, 0x3, 0, 15
+ obj_rot_scal_anim_frame 0xFFFD, 0xFFFD, 0, 15
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnimTable_83CC534:: @ 83CC534
+ .4byte gSpriteAffineAnim_83CC4FC
+ .4byte gSpriteAffineAnim_83CC50C
+
+ .align 2
+gSpriteTemplate_83CC53C:: @ 83CC53C
+ spr_template 33000, 33000, gOamData_83CC4F4, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83CC534, SpriteCallbackDummy
+
+ .align 2
+gSpriteTemplate_83CC554:: @ 83CC554
+ spr_template 33001, 33001, gOamData_83CC4F4, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83CC534, SpriteCallbackDummy
+
+ .align 2
+gSpriteTemplate_83CC56C:: @ 83CC56C
+ spr_template 33002, 33002, gOamData_83CC4F4, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83CC534, SpriteCallbackDummy
+
+ .align 2
+gSpriteTemplate_83CC584:: @ 83CC584
+ spr_template 33003, 33003, gOamData_83CC4F4, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83CC534, SpriteCallbackDummy
+
+gUnknown_083CC59C:: @ 83CC59C
+ .incbin "baserom.gba", 0x003cc59c, 0x6
+
+gUnknown_083CC5A2:: @ 83CC5A2
+ .string "/$"
+
+gUnknown_083CC5A4:: @ 83CC5A4
+ .incbin "baserom.gba", 0x003cc5a4, 0x10
+
+@ 83CC5B4
+ .include "data/contest_excitement_table.inc"
+
+ .align 2
+gUnknown_083CC5D0:: @ 83CC5D0
+ .incbin "baserom.gba", 0x003cc5d0, 0x100
diff --git a/data/contest_ai.s b/data/contest_ai.s
new file mode 100644
index 000000000..95e65db58
--- /dev/null
+++ b/data/contest_ai.s
@@ -0,0 +1,143 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+ .align 2
+gUnknown_08401E60:: @ 8401E60
+ .4byte sub_8128AA8
+ .4byte contest_ai_get_turn
+ .4byte sub_8128B0C
+ .4byte sub_8128B4C
+ .4byte sub_8128B8C
+ .4byte sub_8128BCC
+ .4byte contest_ai_get_excitement
+ .4byte sub_8128C2C
+ .4byte sub_8128C6C
+ .4byte sub_8128CAC
+ .4byte sub_8128CEC
+ .4byte contest_ai_get_user_order
+ .4byte sub_8128D50
+ .4byte sub_8128D90
+ .4byte sub_8128DD0
+ .4byte sub_8128E10
+ .4byte contest_ai_get_user_condition_maybe
+ .4byte sub_8128E90
+ .4byte sub_8128ED0
+ .4byte sub_8128F10
+ .4byte sub_8128F50
+ .4byte sub_8128F90
+ .4byte sub_8128FBC
+ .4byte sub_8129008
+ .4byte sub_8129054
+ .4byte sub_81290A0
+ .4byte sub_81290EC
+ .4byte sub_8129114
+ .4byte sub_8129160
+ .4byte sub_81291AC
+ .4byte sub_81291F8
+ .4byte contest_ai_get_contest_type
+ .4byte sub_8129264
+ .4byte sub_81292A4
+ .4byte contest_ai_get_move_excitement
+ .4byte sub_8129324
+ .4byte sub_8129368
+ .4byte sub_81293AC
+ .4byte sub_81293F0
+ .4byte contest_ai_get_move_effect
+ .4byte sub_8129470
+ .4byte sub_81294B0
+ .4byte contest_ai_get_move_effect_type
+ .4byte sub_8129538
+ .4byte sub_8129578
+ .4byte contest_ai_check_move_has_highest_appeal
+ .4byte sub_8129638
+ .4byte sub_812967C
+ .4byte sub_81296FC
+ .4byte sub_8129740
+ .4byte sub_8129798
+ .4byte sub_81297D8
+ .4byte sub_8129818
+ .4byte sub_8129858
+ .4byte sub_8129898
+ .4byte sub_81298F0
+ .4byte sub_8129930
+ .4byte sub_8129970
+ .4byte sub_81299B0
+ .4byte contest_ai_get_move_used_count
+ .4byte sub_8129A44
+ .4byte sub_8129A84
+ .4byte sub_8129AC4
+ .4byte sub_8129B04
+ .4byte contest_ai_check_combo_starter
+ .4byte sub_8129BB8
+ .4byte sub_8129BFC
+ .4byte contest_ai_check_combo_finisher
+ .4byte sub_8129CB4
+ .4byte sub_8129CF8
+ .4byte contest_ai_check_would_finish_combo
+ .4byte sub_8129D98
+ .4byte sub_8129DDC
+ .4byte contest_ai_get_condition
+ .4byte sub_8129E64
+ .4byte sub_8129EA4
+ .4byte sub_8129EE4
+ .4byte sub_8129F24
+ .4byte contest_ai_get_used_combo_starter
+ .4byte sub_8129FBC
+ .4byte sub_8129FFC
+ .4byte sub_812A03C
+ .4byte sub_812A07C
+ .4byte contest_ai_check_can_participate
+ .4byte sub_812A100
+ .4byte sub_812A144
+ .4byte contest_ai_get_val_812A188
+ .4byte sub_812A1C4
+ .4byte sub_812A208
+ .4byte sub_812A24C
+ .4byte sub_812A294
+ .4byte sub_812A2D8
+ .4byte sub_812A31C
+ .4byte sub_812A360
+ .4byte sub_812A3A4
+ .4byte sub_812A3E4
+ .4byte sub_812A428
+ .4byte sub_812A46C
+ .4byte sub_812A4B0
+ .4byte sub_812A4F4
+ .4byte sub_812A538
+ .4byte sub_812A578
+ .4byte sub_812A5B8
+ .4byte sub_812A5F8
+ .4byte sub_812A638
+ .4byte sub_812A674
+ .4byte sub_812A6B4
+ .4byte sub_812A6F4
+ .4byte sub_812A734
+ .4byte sub_812A774
+ .4byte sub_812A7C4
+ .4byte sub_812A804
+ .4byte sub_812A844
+ .4byte sub_812A86C
+ .4byte sub_812A898
+ .4byte sub_812A8CC
+ .4byte sub_812A8FC
+ .4byte sub_812A92C
+ .4byte sub_812A978
+ .4byte sub_812A9C4
+ .4byte sub_812AA10
+ .4byte sub_812AA5C
+ .4byte sub_812AAAC
+ .4byte sub_812AAFC
+ .4byte sub_812AB4C
+ .4byte sub_812AB9C
+ .4byte sub_812ABE8
+ .4byte sub_812AC34
+ .4byte sub_812AC54
+ .4byte sub_812AC84
+ .4byte contest_ai_check_for_exciting_move
+ .4byte sub_812AD50
+ .4byte sub_812AD94
+ .4byte sub_812ADD8
+ .4byte sub_812AE44
+ .4byte sub_812AE88
diff --git a/data/contest_effect.s b/data/contest_effect.s
new file mode 100644
index 000000000..7bcb36bf1
--- /dev/null
+++ b/data/contest_effect.s
@@ -0,0 +1,21 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+@ 83CF594
+ .include "data/contest_moves.inc"
+
+@ 83D00AC
+ .include "data/contest_effects.inc"
+
+@ A lookup table with TRUE for each combo starter ID and FALSE for ID 0,
+@ which means "not a combo starter move".
+gComboStarterLookupTable:: @ 83D016C
+ .byte FALSE
+ .rept 62
+ .byte TRUE
+ .endr
+
+@ 83D01AC
+ .include "data/contest_effect_funcs.inc"
diff --git a/data/contest_link_80C2020.s b/data/contest_link_80C2020.s
new file mode 100644
index 000000000..d59c642df
--- /dev/null
+++ b/data/contest_link_80C2020.s
@@ -0,0 +1,73 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+ .align 2
+gUnknown_083D1624:: @ 83D1624
+ .incbin "baserom.gba", 0x003d1624, 0x20
+
+gUnknown_083D1644:: @ 83D1644
+ .incbin "baserom.gba", 0x003d1644, 0xa0
+
+gUnknown_083D16E4:: @ 83D16E4
+ .incbin "baserom.gba", 0x003d16e4, 0x40
+
+ .align 2
+gMiscBlank_Pal::
+ .incbin "graphics/interface/blank.gbapal"
+
+ .align 2
+gOamData_83D1744:: @ 83D1744
+ .2byte 0x4000
+ .2byte 0xC000
+ .2byte 0x2C00
+
+ .align 2
+gSpriteTemplate_83D174C:: @ 83D174C
+ spr_template 3009, 3009, gOamData_83D1744, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
+
+ .align 2
+gUnknown_083D1764:: @ 83D1764
+ obj_tiles gMiscBlank_Gfx, 1024, 0x0bc1
+ obj_tiles gMiscBlank_Gfx, 1024, 0x0bc2
+ obj_tiles gMiscBlank_Gfx, 1024, 0x0bc3
+ obj_tiles gMiscBlank_Gfx, 1024, 0x0bc4
+ obj_tiles gMiscBlank_Gfx, 1024, 0x0bc5
+ obj_tiles gMiscBlank_Gfx, 1024, 0x0bc6
+ obj_tiles gMiscBlank_Gfx, 1024, 0x0bc7
+ obj_tiles gMiscBlank_Gfx, 1024, 0x0bc8
+
+ .align 2
+gUnknown_083D17A4:: @ 83D17A4
+ obj_pal gMiscBlank_Pal, 0x0BC1
+
+ .align 2
+gOamData_83D17AC:: @ 83D17AC
+ .2byte 0x0000
+ .2byte 0x0000
+ .2byte 0x0000
+
+ .align 2
+gSpriteTemplate_83D17B4:: @ 83D17B4
+ spr_template 3017, 3017, gOamData_83D17AC, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80C3DF0
+
+ .align 2
+gUnknown_083D17CC:: @ 83D17CC
+ obj_tiles gContestConfetti_Gfx, 544, 0x0bc9
+
+ .align 2
+gUnknown_083D17D4:: @ 83D17D4
+ obj_pal gContestConfetti_Pal, 0x0bc9
+
+gUnknown_083D17DC:: @ 83D17DC
+ .string "{COLOR RED}$"
+
+gUnknown_083D17E0:: @ 83D17E0
+ .string "/$"
+
+gUnknown_083D17E2:: @ 83D17E2
+ .string "{SIZE 3}{COLOR_HIGHLIGHT_SHADOW WHITE2 DARK_GREY LIGHT_BLUE}$"
+
+ .align 2
+ .incbin "baserom.gba", 0x003d17ec, 0x20
diff --git a/data/contest_painting.s b/data/contest_painting.s
new file mode 100644
index 000000000..071661cb4
--- /dev/null
+++ b/data/contest_painting.s
@@ -0,0 +1,102 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+ .align 2
+gPictureFramePalettes:: @ 83EF198
+ .incbin "graphics/picture_frame/bg0.gbapal"
+ .incbin "graphics/picture_frame/bg1.gbapal"
+ .incbin "graphics/picture_frame/bg2.gbapal"
+ .incbin "graphics/picture_frame/bg3.gbapal"
+ .incbin "graphics/picture_frame/bg4.gbapal"
+ .incbin "graphics/picture_frame/bg5.gbapal"
+ .space 10 * 32
+
+ .align 2
+gPictureFrameTiles_0:: @ 83EF398
+ .incbin "graphics/picture_frame/frame0.4bpp.rl"
+
+ .align 2
+gPictureFrameTiles_1:: @ 83F041C
+ .incbin "graphics/picture_frame/frame1.4bpp.rl"
+
+ .align 2
+gPictureFrameTiles_2:: @ 83F104C
+ .incbin "graphics/picture_frame/frame2.4bpp.rl"
+
+ .align 2
+gPictureFrameTiles_3:: @ 83F1B84
+ .incbin "graphics/picture_frame/frame3.4bpp.rl"
+
+ .align 2
+gPictureFrameTiles_4:: @ 83F2B3C
+ .incbin "graphics/picture_frame/frame4.4bpp.rl"
+
+ .align 2
+gPictureFrameTiles_5:: @ 83F3C6C
+ .incbin "graphics/picture_frame/frame5.4bpp.rl"
+
+ .align 2
+gPictureFrameTilemap_0:: @ 83F4260
+ .incbin "graphics/picture_frame/frame0_map.bin.rl"
+
+ .align 2
+gPictureFrameTilemap_1:: @ 83F476C
+ .incbin "graphics/picture_frame/frame1_map.bin.rl"
+
+ .align 2
+gPictureFrameTilemap_2:: @ 83F4C78
+ .incbin "graphics/picture_frame/frame2_map.bin.rl"
+
+ .align 2
+gPictureFrameTilemap_3:: @ 83F5184
+ .incbin "graphics/picture_frame/frame3_map.bin.rl"
+
+ .align 2
+gPictureFrameTilemap_4:: @ 83F5690
+ .incbin "graphics/picture_frame/frame4_map.bin.rl"
+
+ .align 2
+gPictureFrameTilemap_5:: @ 83F5B9C
+ .incbin "graphics/picture_frame/frame5_map.bin.rl"
+
+ .align 2
+gUnknown_083F60AC:: @ 83F60AC
+ .4byte OtherText_Cool
+ .4byte OtherText_Beauty2
+ .4byte OtherText_Cute
+ .4byte OtherText_Smart
+ .4byte OtherText_Tough
+
+ .align 2
+gUnknown_083F60C0:: @ 83F60C0
+ .4byte OtherText_NonstopSuperCool, OtherText_Terminator6
+ .4byte OtherText_GoodLookingPoke, OtherText_Terminator7
+ .4byte OtherText_MarvelousGreat, OtherText_Terminator8
+
+ .4byte OtherText_CenturyLastVenus, OtherText_Terminator9
+ .4byte OtherText_Terminator10, OtherText_DazzlingSlime
+ .4byte OtherText_PokeCenterIdol, OtherText_Terminator11
+
+ .4byte OtherText_LovelyAndSweet, OtherText_Terminator12
+ .4byte OtherText_ThePretty, OtherText_WinningPortrait
+ .4byte OtherText_GiveUsWink, OtherText_Terminator13
+
+ .4byte OtherText_SmartnessMaestro, OtherText_Terminator15
+ .4byte OtherText_ChosenPokeAmong, OtherText_Terminator15
+ .4byte OtherText_TheExcellent, OtherText_ItsMomentOfElegance
+
+ .4byte OtherText_PowerfullyMuscular, OtherText_Terminator16
+ .4byte OtherText_StrongErEst, OtherText_Terminator17
+ .4byte OtherText_MightyTough, OtherText_Exclamation
+
+ .align 2
+gOamData_83F6138:: @ 83F6138
+ .2byte 0x3000
+ .2byte 0xC000
+ .2byte 0x0000
+
+ .align 2
+gUnknown_083F6140:: @ 83F6140
+ .space 4
diff --git a/data/credits.s b/data/credits.s
new file mode 100644
index 000000000..c6e0ad536
--- /dev/null
+++ b/data/credits.s
@@ -0,0 +1,98 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+gUnknown_0840B7BC:: @ 840B7BC
+ .incbin "graphics/credits/palette_1.gbapal"
+
+gUnknown_0840B7FC:: @ 840B7FC
+ .incbin "graphics/credits/ampersand.4bpp"
+
+gUnknown_0840B83C:: @ 840B83C
+ .incbin "baserom.gba", 0x0040b83c, 0xf
+
+gUnknown_0840B84B:: @ 840B84B
+ .incbin "baserom.gba", 0x0040b84b, 0xf
+
+gUnknown_0840B85A:: @ 840B85A
+ .incbin "baserom.gba", 0x0040b85a, 0xf
+
+gUnknown_0840B869:: @ 840B869
+ .incbin "baserom.gba", 0x0040b869, 0xf
+
+gUnknown_0840B878::
+ .incbin "baserom.gba", 0x0040B878, 0xf
+
+ .include "data/text/credits.inc"
+
+gUnknown_0840CA00:: @ 840CA00
+ .incbin "baserom.gba", 0x0040ca00, 0x8
+
+Unknown_840CA08:
+ .incbin "baserom.gba", 0x0040ca08, 0x14
+Unknown_840CA1C:
+ .incbin "baserom.gba", 0x0040ca1c, 0x14
+Unknown_840CA30:
+ .incbin "baserom.gba", 0x0040ca30, 0x10
+Unknown_840CA40:
+ .incbin "baserom.gba", 0x0040ca40, 0x14
+
+ .align 2
+gUnknown_0840CA54:: @ 840CA54
+ .4byte Unknown_840CA08
+ .4byte Unknown_840CA1C
+ .4byte Unknown_840CA30
+ .4byte Unknown_840CA40
+
+Unknown_840CA64:
+ .incbin "baserom.gba", 0x0040ca64, 0x14
+Unknown_840CA78:
+ .incbin "baserom.gba", 0x0040ca78, 0x14
+Unknown_840CA8C:
+ .incbin "baserom.gba", 0x0040ca8c, 0x8
+
+ .align 2
+gUnknown_0840CA94:: @ 840CA94
+ .4byte Unknown_840CA64
+ .4byte Unknown_840CA78
+ .4byte Unknown_840CA8C
+
+gUnknown_0840CAA0:: @ 840CAA0
+ obj_tiles gHallOfFame, 6144, 1001
+ null_obj_tiles
+
+gUnknown_0840CAB0:: @ 840CAB0
+ obj_pal unk_201f800, 1001
+ null_obj_pal
+
+ .align 2
+gOamData_840CAC0:: @ 840CAC0
+ .2byte 0x00A0
+ .2byte 0xC000
+ .2byte 0x0400
+
+ .align 2
+gSpriteAnim_840CAC8:: @ 840CAC8
+ obj_image_anim_frame 0, 8
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_840CAD0:: @ 840CAD0
+ obj_image_anim_frame 64, 8
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_840CAD8:: @ 840CAD8
+ obj_image_anim_frame 128, 8
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_840CAE0:: @ 840CAE0
+ .4byte gSpriteAnim_840CAC8
+ .4byte gSpriteAnim_840CAD0
+ .4byte gSpriteAnim_840CAD8
+
+ .align 2
+gSpriteTemplate_840CAEC:: @ 840CAEC
+ spr_template 1001, 1001, gOamData_840CAC0, gSpriteAnimTable_840CAE0, NULL, gDummySpriteAffineAnimTable, sub_814580C
diff --git a/data/cute_sketch.inc b/data/cute_sketch.s
index 4e23cd87d..b59a4b804 100644
--- a/data/cute_sketch.inc
+++ b/data/cute_sketch.s
@@ -1,3 +1,8 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
gUnknown_083E7A50:: @ 83E7A50
.byte 0x00, 0x1D, 0x1C
.byte 0x0E, 0x1E, 0x1B
diff --git a/data/data2.s b/data/data2.s
index 35121b3de..e5802a44f 100644
--- a/data/data2.s
+++ b/data/data2.s
@@ -11,7 +11,7 @@ gUnknown_081E764C:: @ 81E764C
.incbin "graphics/birch_speech/bg1.gbapal"
.align 2
-gUnknown_081E768C:: @ 81E768C
+gBirchIntroShadowGfx:: @ 81E768C
.incbin "graphics/birch_speech/shadow.4bpp.lz"
.align 2
@@ -2505,29323 +2505,3 @@ gUnknown_0820A904:: @ 820A904
.4byte OBJ_VRAM0 + 0x420
.4byte OBJ_VRAM0 + 0x440
.4byte OBJ_VRAM0 + 0x460
-
- .align 2
-gUnknown_0820A92C:: @ 820A92C @ graphics
- obj_tiles gInterfaceGfx_PokeBall, 384, 0xd6d8 @ poke
- obj_tiles gInterfaceGfx_GreatBall, 384, 0xd6d9 @ great
- obj_tiles gInterfaceGfx_SafariBall, 384, 0xd6da @ safari
- obj_tiles gInterfaceGfx_UltraBall, 384, 0xd6db @ ultra
- obj_tiles gInterfaceGfx_MasterBall, 384, 0xd6dc @ master
- obj_tiles gInterfaceGfx_NetBall, 384, 0xd6dd @ net
- obj_tiles gInterfaceGfx_DiveBall, 384, 0xd6de @ dive
- obj_tiles gInterfaceGfx_NestBall, 384, 0xd6df @ nest
- obj_tiles gInterfaceGfx_RepeatBall, 384, 0xd6e0 @ repeat
- obj_tiles gInterfaceGfx_TimerBall, 384, 0xd6e1 @ timer
- obj_tiles gInterfaceGfx_LuxuryBall, 384, 0xd6e2 @ luxury
- obj_tiles gInterfaceGfx_PremierBall, 384, 0xd6e3 @ premier
-
- .align 2
-gUnknown_0820A98C:: @ 820A98C
- obj_pal gInterfacePal_PokeBall, 0xD6D8 @ poke
- obj_pal gInterfacePal_GreatBall, 0xD6D9 @ great
- obj_pal gInterfacePal_SafariBall, 0xD6DA @ safari
- obj_pal gInterfacePal_UltraBall, 0xD6DB @ ultra
- obj_pal gInterfacePal_MasterBall, 0xD6DC @ master
- obj_pal gInterfacePal_NetBall, 0xD6DD @ net
- obj_pal gInterfacePal_DiveBall, 0xD6DE @ dive
- obj_pal gInterfacePal_NestBall, 0xD6DF @ nest
- obj_pal gInterfacePal_RepeatBall, 0xD6E0 @ repeat
- obj_pal gInterfacePal_TimerBall, 0xD6E1 @ timer
- obj_pal gInterfacePal_LuxuryBall, 0xD6E2 @ luxury
- obj_pal gInterfacePal_PremierBall, 0xD6E3 @ premier
-
- .align 2
-gOamData_820A9EC:: @ 820A9EC
- .2byte 0x0300
- .2byte 0x4000
- .2byte 0x0800
-
- .align 2
-gSpriteAnim_820A9F4: @ 820A9F4
- obj_image_anim_frame 0, 5
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnim_820A9FC: @ 820A9FC
- obj_image_anim_frame 4, 1
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnim_820AA04: @ 820AA04
- obj_image_anim_frame 8, 5
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnim_820AA0C: @ 820AA0C
- obj_image_anim_frame 12, 1
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnim_820AA14:: @ 820AA14
- obj_image_anim_frame 0, 1
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_820AA1C:: @ 820AA1C
- obj_image_anim_frame 4, 5
- obj_image_anim_frame 8, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_820AA28:: @ 820AA28
- obj_image_anim_frame 4, 5
- obj_image_anim_frame 0, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_820AA34:: @ 820AA34
- .4byte gSpriteAnim_820AA14
- .4byte gSpriteAnim_820AA1C
- .4byte gSpriteAnim_820AA28
-
- @ unused?
- .4byte gSpriteAnim_820A9F4
- .4byte gSpriteAnim_820AA04
- .4byte gSpriteAnim_820A9FC
- .4byte gSpriteAnim_820AA0C
-
- .align 2
-gSpriteAffineAnim_820AA50:: @ 820AA50
- obj_rot_scal_anim_frame 0x0, 0x0, 0, 1
- obj_rot_scal_anim_jump 0
-
- .align 2
-gSpriteAffineAnim_820AA60:: @ 820AA60
- obj_rot_scal_anim_frame 0x0, 0x0, -3, 1
- obj_rot_scal_anim_jump 0
-
- .align 2
-gSpriteAffineAnim_820AA70:: @ 820AA70
- obj_rot_scal_anim_frame 0x0, 0x0, 3, 1
- obj_rot_scal_anim_jump 0
-
- .align 2
-gSpriteAffineAnim_820AA80:: @ 820AA80
- obj_rot_scal_anim_frame 0x100, 0x100, 0, 0
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnim_820AA90:: @ 820AA90
- obj_rot_scal_anim_frame 0x0, 0x0, 25, 1
- obj_rot_scal_anim_jump 0
-
- .align 2
-gSpriteAffineAnimTable_820AAA0:: @ 820AAA0
- .4byte gSpriteAffineAnim_820AA50
- .4byte gSpriteAffineAnim_820AA60
- .4byte gSpriteAffineAnim_820AA70
- .4byte gSpriteAffineAnim_820AA80
- .4byte gSpriteAffineAnim_820AA90
-
- .align 2
-gSpriteTemplate_820AAB4:: @ 820AAB4
- spr_template 55000, 55000, gOamData_820A9EC, gSpriteAnimTable_820AA34, NULL, gSpriteAffineAnimTable_820AAA0, objc_0804ABD4
- spr_template 55001, 55001, gOamData_820A9EC, gSpriteAnimTable_820AA34, NULL, gSpriteAffineAnimTable_820AAA0, objc_0804ABD4
- spr_template 55002, 55002, gOamData_820A9EC, gSpriteAnimTable_820AA34, NULL, gSpriteAffineAnimTable_820AAA0, objc_0804ABD4
- spr_template 55003, 55003, gOamData_820A9EC, gSpriteAnimTable_820AA34, NULL, gSpriteAffineAnimTable_820AAA0, objc_0804ABD4
- spr_template 55004, 55004, gOamData_820A9EC, gSpriteAnimTable_820AA34, NULL, gSpriteAffineAnimTable_820AAA0, objc_0804ABD4
- spr_template 55005, 55005, gOamData_820A9EC, gSpriteAnimTable_820AA34, NULL, gSpriteAffineAnimTable_820AAA0, objc_0804ABD4
- spr_template 55006, 55006, gOamData_820A9EC, gSpriteAnimTable_820AA34, NULL, gSpriteAffineAnimTable_820AAA0, objc_0804ABD4
- spr_template 55007, 55007, gOamData_820A9EC, gSpriteAnimTable_820AA34, NULL, gSpriteAffineAnimTable_820AAA0, objc_0804ABD4
- spr_template 55008, 55008, gOamData_820A9EC, gSpriteAnimTable_820AA34, NULL, gSpriteAffineAnimTable_820AAA0, objc_0804ABD4
- spr_template 55009, 55009, gOamData_820A9EC, gSpriteAnimTable_820AA34, NULL, gSpriteAffineAnimTable_820AAA0, objc_0804ABD4
- spr_template 55010, 55010, gOamData_820A9EC, gSpriteAnimTable_820AA34, NULL, gSpriteAffineAnimTable_820AAA0, objc_0804ABD4
- spr_template 55011, 55011, gOamData_820A9EC, gSpriteAnimTable_820AA34, NULL, gSpriteAffineAnimTable_820AAA0, objc_0804ABD4
-
- .align 2
- .byte 0x90, 0x08, 0x00, 0x00
- .byte 0xC0, 0x3A, 0x00, 0x00
- .byte 0x1C, 0x00, 0x00, 0x00
- .byte 0x30, 0x05, 0x00, 0x00
- .byte 0x24, 0x00, 0x00, 0x00
- .byte 0x64, 0x00, 0x00, 0x00
- .byte 0xD8, 0x04, 0x00, 0x00
-
- .align 1
-gTradeMovesBoxTilemap:: @ 820ABF0
- .incbin "graphics/trade/moves_box_map.bin"
-
- .align 1
-gTradePartyBoxTilemap:: @ 820ADEE
- .incbin "graphics/trade/party_box_map.bin"
-
- .align 2
-gTradeStripesBG2Tilemap:: @ 820AFEC
- .incbin "graphics/trade/stripes_bg2_map.bin"
-
- .align 2
-gTradeStripesBG3Tilemap:: @ 820B7EC
- .incbin "graphics/trade/stripes_bg3_map.bin"
-
- .align 2
-gOamData_820BFEC:: @ 820BFEC
- .2byte 0x4000
- .2byte 0x8000
- .2byte 0x0400
-
- .align 2
-gSpriteAnim_820BFF4:: @ 820BFF4
- obj_image_anim_frame 0, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_820BFFC:: @ 820BFFC
- obj_image_anim_frame 8, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_820C004:: @ 820C004
- obj_image_anim_frame 16, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_820C00C:: @ 820C00C
- obj_image_anim_frame 24, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_820C014:: @ 820C014
- obj_image_anim_frame 32, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_820C01C:: @ 820C01C
- obj_image_anim_frame 40, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_820C024:: @ 820C024
- .4byte gSpriteAnim_820BFF4
- .4byte gSpriteAnim_820BFFC
- .4byte gSpriteAnim_820C004
- .4byte gSpriteAnim_820C00C
- .4byte gSpriteAnim_820C014
- .4byte gSpriteAnim_820C01C
-
- .align 2
-TradeScreenTextPalette: @ 820C03C
- .incbin "graphics/trade/text1.gbapal"
- .incbin "graphics/trade/text2.gbapal" @ unused?
-
- .align 2
-gUnknown_0820C07C:: @ 820C07C
- obj_tiles 0x0201d000, 256, 0x00c8
- obj_tiles 0x0201d100, 256, 0x00c9
- obj_tiles 0x0201d200, 256, 0x00ca
- obj_tiles 0x0201d300, 256, 0x00cb
- obj_tiles 0x0201d400, 256, 0x00cc
- obj_tiles 0x0201d500, 256, 0x00cd
- obj_tiles 0x0201d600, 256, 0x00ce
- obj_tiles 0x0201d700, 256, 0x00cf
- obj_tiles 0x0201d800, 256, 0x00d0
- obj_tiles 0x0201d900, 256, 0x00d1
- obj_tiles 0x0201da00, 256, 0x00d2
- obj_tiles 0x0201db00, 256, 0x00d3
- obj_tiles 0x0201dc00, 256, 0x00d4
-
- .align 2
-gSpritePalette_TradeScreenText:: @ 820C0E4
- obj_pal TradeScreenTextPalette, 4925
-
- .align 2
-gSpriteTemplate_820C0EC:: @ 820C0EC
- spr_template 200, 4925, gOamData_820BFEC, gSpriteAnimTable_820C024, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-gOamData_820C104:: @ 820C104
- .2byte 0x4000
- .2byte 0xC000
- .2byte 0x0400
-
- .align 2
-gSpriteAnim_820C10C:: @ 820C10C
- obj_image_anim_frame 0, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_820C114:: @ 820C114
- obj_image_anim_frame 32, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_820C11C:: @ 820C11C
- .4byte gSpriteAnim_820C10C
- .4byte gSpriteAnim_820C114
-
- .align 2
-gUnknown_0820C124:: @ 820C124
- obj_tiles gUnknown_08EA1DEC, 0x800, 300
-
- .align 2
-gUnknown_0820C12C:: @ 820C12C
- obj_pal gUnknown_08EA0328, 2345
-
- .align 2
-gSpriteTemplate_820C134:: @ 820C134
- spr_template 300, 2345, gOamData_820C104, gSpriteAnimTable_820C11C, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-gUnknown_0820C14C:: @ 820C14C
- .4byte TradeText_Cancel
- .4byte TradeText_ChoosePoke
- .4byte TradeText_Summary1
- .4byte TradeText_Trade1
- .4byte TradeText_CancelTradePrompt
- .4byte TradeText_PressBToExit
-
-@ This is used to determine the next mon to select when the D-Pad is
-@ pressed in a given direction.
-@ Note that the mons are laid out like this.
-@ 0-5 are the player's party and 6-11 are the trading partner's party.
-@ 12 is the cancel button.
-@ 0 1 6 7
-@ 2 3 8 9
-@ 4 5 10 11
-@ 12
-gTradeNextSelectedMonTable:: @ 820C164
- @ 0
- .byte 4, 2, 12, 12, 0, 0 @ up
- .byte 2, 4, 12, 12, 0, 0 @ down
- .byte 7, 6, 1, 0, 0, 0 @ left
- .byte 1, 6, 7, 0, 0, 0 @ right
- @ 1
- .byte 5, 3, 12, 12, 0, 0 @ up
- .byte 3, 5, 12, 12, 0, 0 @ down
- .byte 0, 7, 6, 1, 0, 0 @ left
- .byte 6, 7, 0, 1, 0, 0 @ right
- @ 2
- .byte 0, 0, 0, 0, 0, 0 @ up
- .byte 4, 0, 0, 0, 0, 0 @ down
- .byte 9, 8, 7, 6, 0, 0 @ left
- .byte 3, 1, 0, 0, 0, 0 @ right
- @ 3
- .byte 1, 1, 1, 1, 0, 0 @ up
- .byte 5, 1, 1, 1, 0, 0 @ down
- .byte 2, 9, 8, 7, 0, 0 @ left
- .byte 8, 9, 6, 6, 0, 0 @ right
- @ 4
- .byte 2, 2, 2, 2, 0, 0 @ up
- .byte 0, 0, 0, 0, 0, 0 @ down
- .byte 11, 10, 9, 8, 7, 6 @ left
- .byte 5, 3, 1, 0, 0, 0 @ right
- @ 5
- .byte 3, 3, 3, 3, 0, 0 @ up
- .byte 1, 1, 1, 1, 0, 0 @ down
- .byte 4, 4, 4, 4, 0, 0 @ left
- .byte 10, 8, 6, 0, 0, 0 @ right
- @ 6
- .byte 10, 8, 12, 0, 0, 0 @ up
- .byte 8, 10, 12, 0, 0, 0 @ down
- .byte 1, 0, 0, 0, 0, 0 @ left
- .byte 7, 0, 1, 0, 0, 0 @ right
- @ 7
- .byte 12, 0, 0, 0, 0, 0 @ up
- .byte 9, 12, 0, 0, 0, 0 @ down
- .byte 6, 0, 0, 0, 0, 0 @ left
- .byte 0, 0, 0, 0, 0, 0 @ right
- @ 8
- .byte 6, 0, 0, 0, 0, 0 @ up
- .byte 10, 6, 0, 0, 0, 0 @ down
- .byte 3, 2, 1, 0, 0, 0 @ left
- .byte 9, 7, 0, 0, 0, 0 @ right
- @ 9
- .byte 7, 0, 0, 0, 0, 0 @ up
- .byte 11, 12, 0, 0, 0, 0 @ down
- .byte 8, 0, 0, 0, 0, 0 @ left
- .byte 2, 1, 0, 0, 0, 0 @ right
- @ 10
- .byte 8, 0, 0, 0, 0, 0 @ up
- .byte 6, 0, 0, 0, 0, 0 @ down
- .byte 5, 4, 3, 2, 1, 0 @ left
- .byte 11, 9, 7, 0, 0, 0 @ right
- @ 11
- .byte 9, 0, 0, 0, 0, 0 @ up
- .byte 12, 0, 0, 0, 0, 0 @ down
- .byte 10, 0, 0, 0, 0, 0 @ left
- .byte 4, 2, 0, 0, 0, 0 @ right
- @ 12
- .byte 11, 9, 7, 6, 0, 0 @ up
- .byte 7, 6, 0, 0, 0, 0 @ down
- .byte 12, 0, 0, 0, 0, 0 @ left
- .byte 12, 0, 0, 0, 0, 0 @ right
-
-@ The coordinates are in units of tiles.
-@ These are used for both mon icons and the selected mon cursor,
-@ but the origins of the coordinates differ.
-gTradeMonSpriteCoords:: @ 820C29C
- @ left-side party
- .byte 1, 5
- .byte 8, 5
- .byte 1, 10
- .byte 8, 10
- .byte 1, 15
- .byte 8, 15
-
- @ right-side party
- .byte 16, 5
- .byte 23, 5
- .byte 16, 10
- .byte 23, 10
- .byte 16, 15
- .byte 23, 15
-
- @ cancel button
- .byte 23, 18
-
-gTradeLevelDisplayCoords:: @ 820C2B6
- @ left-side party
- .byte 5, 4
- .byte 12, 4
- .byte 5, 9
- .byte 12, 9
- .byte 5, 14
- .byte 12, 14
-
- @ right-side party
- .byte 20, 4
- .byte 27, 4
- .byte 20, 9
- .byte 27, 9
- .byte 20, 14
- .byte 27, 14
-
-gTradeMonBoxCoords:: @ 820C2CE
- @ left-side party
- .byte 1, 3
- .byte 8, 3
- .byte 1, 8
- .byte 8, 8
- .byte 1, 13
- .byte 8, 13
-
- @ right-side party
- .byte 16, 3
- .byte 23, 3
- .byte 16, 8
- .byte 23, 8
- .byte 16, 13
- .byte 23, 13
-
-gTradeUnknownSpriteCoords:: @ 820C2E6
- .byte 59, 10
- .byte 179, 10
- .byte 59, 10
- .byte 179, 10
-
- .align 2
-gUnknown_0820C2F0:: @ 820C2F0
- .4byte TradeText_LinkStandby
- .4byte TradeText_TradeCancelled
- .4byte TradeText_OnlyPoke
- .4byte TradeText_NonTradablePoke
- .4byte TradeText_WaitingForFriend
- .4byte TradeText_WantToTrade
-
-gTradeMessageWindowRects:: @ 820C308
- .byte 8, 7, 22, 12
- .byte 8, 7, 22, 12
- .byte 6, 7, 24, 12
- .byte 6, 7, 24, 12
- .byte 8, 7, 22, 12
- .byte 7, 7, 23, 12
-
- .align 2
-gUnknown_0820C320:: @ 820C320
- .4byte TradeText_Summary2, sub_804A9F4 @unknown
- .4byte TradeText_Trade2, sub_804AA00
-
-gUnknown_0820C330:: @ 820C330
- .byte 0, 14
- .byte 15, 29
-
-gUnknown_0820C334:: @ 820C334
- .byte 3, 5
- .byte 3, 7
- .byte 18, 5
- .byte 18, 7
-
-gOtherText_Terminator::
- .string "$"
-
-gOtherText_MaleSymbol3:: @ 820C33D
- .string "♂$"
-
-gOtherText_FemaleSymbol3:: @ 820C33F
- .string "♀$"
-
-gOtherText_GenderlessSymbol:: @ 820C341
- .string "$$"
-
- .align 2
- .4byte gTileBuffer
-
-@ Unused debug strings?
- .string "かいめの そうしん$", 13
- .string "かいめの じゅしん$", 13
- .string "ポケモンアイコンセット$", 13
- .string "OBJテキストセット$", 13
- .string "セルセット$", 13
- .string "OBJテキストADD$", 13
- .string "システムメッセージADD$", 13
- .string "はいけいセット$", 13
-
-@ Shedinja's Japanese name
-@ sub_8048D44 compares a pokemon name with this string
-gUnknown_0820C3B0:: @ 820C3B0
- .string "ヌケニン$"
-
- .string "こうかんせいりつ $" @ trade completed
- .string "だめだたらしいよ $" @ it's no good (trade failed maybe?)
-
-gUnknown_0820C3D1:: @ 820C3D1
- .byte 4, 3
- .byte 19, 3
-
- .align 2
-gTradeBallPalette:: @ 820C3D8
- .incbin "graphics/trade/ball.gbapal"
-
- .align 2
-gTradeBallTiles:: @ 820C3F8
- .incbin "graphics/trade/ball.4bpp"
-
- .align 2
-gUnknown_0820C9F8:: @ 820C9F8
- .incbin "graphics/trade/unknown.gbapal"
- .incbin "graphics/trade/gba.gbapal"
- .incbin "graphics/trade/shadow.gbapal"
- .space 32
- .incbin "graphics/trade/misc.gbapal"
-
- .align 2
-gUnknown_0820CA98:: @ 820CA98
- .incbin "graphics/trade/gba.4bpp"
- .incbin "graphics/trade/shadow.4bpp"
-
- .align 2
-gUnknown_0820DD98:: @ 820DD98
- .incbin "graphics/trade/pokeball_symbol.8bpp"
-
- .align 2
-gUnknown_0820F798:: @ 820F798
- .incbin "graphics/trade/shadow_map.bin"
-
- .align 2
-gUnknown_08210798:: @ 8210798
- .incbin "graphics/trade/gba_map.bin"
-
- .align 2
-gUnknown_08211798:: @ 8211798
- .incbin "graphics/trade/cable_closeup_map.bin"
-
- .align 2
-gUnknown_08211F98:: @ 8211F98
- .incbin "graphics/trade/pokeball_symbol_map.bin"
-
- .incbin "graphics/unused/unknown/8212098.gbapal"
-
- .align 2
-gTradeCableEndPalette:: @ 82120B8
- .incbin "graphics/trade/cable_end.gbapal"
-
- .incbin "graphics/unused/unknown/82120D8.gbapal"
-
- .space 32
-
- .align 2
-gTradeGlowPalette:: @ 8212118
- .incbin "graphics/trade/glow.gbapal"
-
- .align 2
-gTradeGlow1Tiles:: @ 8212138
- .incbin "graphics/trade/glow1.4bpp"
-
- .align 2
-gTradeGlow2Tiles:: @ 8212338
- .incbin "graphics/trade/glow2.4bpp"
-
- .align 2
-gTradeCableEndTiles:: @ 8212538
- .incbin "graphics/trade/cable_end.4bpp"
-
- .align 2
-gTradeGBAScreenTiles:: @ 8212738
- .incbin "graphics/trade/gba_screen.4bpp"
-
- .align 2
-gUnknown_08213738:: @ 8213738
- .incbin "graphics/trade/gba_affine.8bpp"
-
- .align 2
-gUnknown_08215778:: @ 8215778
- .incbin "graphics/trade/gba_affine_map.bin"
-
- .align 2
-gOamData_8215878:: @ 8215878
- .2byte 0x0100
- .2byte 0x4000
- .2byte 0x0000
-
- .align 2
-gSpriteAnim_8215880:: @ 8215880
- obj_image_anim_frame 0, 3
- obj_image_anim_frame 4, 3
- obj_image_anim_frame 8, 3
- obj_image_anim_frame 12, 3
- obj_image_anim_frame 16, 3
- obj_image_anim_frame 20, 3
- obj_image_anim_frame 24, 3
- obj_image_anim_frame 28, 3
- obj_image_anim_frame 32, 3
- obj_image_anim_frame 36, 3
- obj_image_anim_frame 40, 3
- obj_image_anim_frame 44, 3
- obj_image_anim_loop 1
- obj_image_anim_frame 0, 3
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_82158BC:: @ 82158BC
- obj_image_anim_frame 0, 3
- obj_image_anim_frame 4, 3
- obj_image_anim_frame 8, 3
- obj_image_anim_frame 12, 3
- obj_image_anim_frame 16, 3
- obj_image_anim_frame 20, 3
- obj_image_anim_frame 24, 3
- obj_image_anim_frame 28, 3
- obj_image_anim_frame 32, 3
- obj_image_anim_frame 36, 3
- obj_image_anim_frame 40, 3
- obj_image_anim_frame 44, 3
- obj_image_anim_loop 2
- obj_image_anim_frame 0, 3
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_82158F8:: @ 82158F8
- .4byte gSpriteAnim_8215880
- .4byte gSpriteAnim_82158BC
-
- .align 2
-gSpriteAffineAnim_8215900:: @ 8215900
- obj_rot_scal_anim_frame 0x0, 0x0, 0, 1
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnim_8215910:: @ 8215910
- obj_rot_scal_anim_frame 0xFFF8, 0x0, 0, 20
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnim_8215920:: @ 8215920
- obj_rot_scal_anim_frame 0x60, 0x100, 0, 0
- obj_rot_scal_anim_frame 0x0, 0x0, 0, 5
- obj_rot_scal_anim_frame 0x8, 0x0, 0, 20
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnimTable_8215940:: @ 8215940
- .4byte gSpriteAffineAnim_8215900
- .4byte gSpriteAffineAnim_8215910
- .4byte gSpriteAffineAnim_8215920
-
- .align 2
-gUnknown_0821594C:: @ 821594C
- obj_tiles gTradeBallTiles, 0x600, 5557
-
- .align 2
-gUnknown_08215954:: @ 8215954
- obj_pal gTradeBallPalette, 5558
-
- .align 2
-gSpriteTemplate_821595C:: @ 821595C
- spr_template 5557, 5558, gOamData_8215878, gSpriteAnimTable_82158F8, NULL, gSpriteAffineAnimTable_8215940, sub_804D6BC
-
- .align 2
-gOamData_8215974:: @ 8215974
- .2byte 0x0500
- .2byte 0x8000
- .2byte 0x0400
-
- .align 2
-gSpriteAnim_821597C:: @ 821597C
- obj_image_anim_frame 0, 5, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_8215984:: @ 8215984
- .4byte gSpriteAnim_821597C
-
- .align 2
-gSpriteAffineAnim_8215988:: @ 8215988
- obj_rot_scal_anim_frame 0xFFF6, 0xFFF6, 0, 5
- obj_rot_scal_anim_frame 0xA, 0xA, 0, 5
- obj_rot_scal_anim_jump 0
-
- .align 2
-gSpriteAffineAnimTable_82159A0:: @ 82159A0
- .4byte gSpriteAffineAnim_8215988
-
- .align 2
-gUnknown_082159A4:: @ 82159A4
- obj_tiles gTradeGlow1Tiles, 0x200, 5550
-
- .align 2
-gUnknown_082159AC:: @ 82159AC
- obj_pal gTradeGlowPalette, 5551
-
- .align 2
-gUnknown_082159B4:: @ 82159B4
- obj_pal gTradeCableEndPalette, 5555
-
- .align 2
-gSpriteTemplate_82159BC:: @ 82159BC
- spr_template 5550, 5551, gOamData_8215974, gSpriteAnimTable_8215984, NULL, gSpriteAffineAnimTable_82159A0, sub_804B058
-
- .align 2
-gOamData_82159D4:: @ 82159D4
- .2byte 0x8000
- .2byte 0x8000
- .2byte 0x0400
-
- .align 2
-gSpriteAnim_82159DC:: @ 82159DC
- obj_image_anim_frame 0, 5, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_82159E4:: @ 82159E4
- obj_image_anim_frame 8, 5, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_82159EC:: @ 82159EC
- .4byte gSpriteAnim_82159DC
- .4byte gSpriteAnim_82159E4
-
- .align 2
-gUnknown_082159F4:: @ 82159F4
- obj_tiles gTradeGlow2Tiles, 0x300, 5552
-
- .align 2
-gSpriteTemplate_82159FC:: @ 82159FC
- spr_template 5552, 5551, gOamData_82159D4, gSpriteAnimTable_82159EC, NULL, gDummySpriteAffineAnimTable, sub_804B07C
-
- .align 2
-gOamData_8215A14:: @ 8215A14
- .2byte 0x8000
- .2byte 0x8000
- .2byte 0x0400
-
- .align 2
-gSpriteAnim_8215A1C:: @ 8215A1C
- obj_image_anim_frame 0, 10
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_8215A24:: @ 8215A24
- .4byte gSpriteAnim_8215A1C
-
- .align 2
-gUnknown_08215A28:: @ 8215A28
- obj_tiles gTradeCableEndTiles, 0x100, 5554
-
- .align 2
-gSpriteTemplate_8215A30:: @ 8215A30
- spr_template 5554, 5555, gOamData_8215A14, gSpriteAnimTable_8215A24, NULL, gDummySpriteAffineAnimTable, sub_804B0BC
-
- .align 2
-gOamData_8215A48:: @ 8215A48
- .2byte 0x4000
- .2byte 0xC000
- .2byte 0x0400
-
- .align 2
-gSpriteAnim_8215A50:: @ 8215A50
- obj_image_anim_frame 0, 2, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 32, 2, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 64, 2, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 96, 2, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 64, 2, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 32, 2, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 0, 2, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_loop 8
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_8215A74:: @ 8215A74
- .4byte gSpriteAnim_8215A50
-
- .align 2
-gUnknown_08215A78:: @ 8215A78
- obj_tiles gTradeGBAScreenTiles, 0x1000, 5556
-
- .align 2
-gSpriteTemplate_8215A80:: @ 8215A80
- spr_template 5556, 5555, gOamData_8215A48, gSpriteAnimTable_8215A74, NULL, gDummySpriteAffineAnimTable, sub_804B104
-
- .align 1
-gTradeGlow2PaletteAnimTable:: @ 8215A98
- .2byte 0x7F12
- .2byte 0x7F12
- .2byte 0x7F12
- .2byte 0x7FFF
- .2byte 0x7FFF
- .2byte 0x7FFF
- .2byte 0x7F12
- .2byte 0x7F12
- .2byte 0x7F12
- .2byte 0x7FFF
- .2byte 0x7FFF
- .2byte 0x7FFF
-
- .align 2
-gSpriteAffineAnim_8215AB0:: @ 8215AB0
- obj_rot_scal_anim_frame 0xFF00, 0x100, 0, 0
- obj_rot_scal_anim_jump 0
-
- .align 2
-gSpriteAffineAnimTable_8215AC0:: @ 8215AC0
- .4byte gSpriteAffineAnim_8215AB0
-
-@ 8215AC4
- .include "data/ingame_trades.inc"
-
-gTradeBallVerticalVelocityTable:: @ 8215BA0
- .byte 0
- .byte 0
- .byte 1
- .byte 0
- .byte 1
- .byte 0
- .byte 1
- .byte 1
- .byte 1
- .byte 1
- .byte 2
- .byte 2
- .byte 2
- .byte 2
- .byte 3
- .byte 3
- .byte 3
- .byte 3
- .byte 4
- .byte 4
- .byte 4
- .byte 4
- .byte -4
- .byte -4
- .byte -4
- .byte -3
- .byte -3
- .byte -3
- .byte -3
- .byte -2
- .byte -2
- .byte -2
- .byte -2
- .byte -1
- .byte -1
- .byte -1
- .byte -1
- .byte 0
- .byte -1
- .byte 0
- .byte -1
- .byte 0
- .byte 0
- .byte 0
- .byte 0
- .byte 0
- .byte 1
- .byte 0
- .byte 1
- .byte 0
- .byte 1
- .byte 1
- .byte 1
- .byte 1
- .byte 2
- .byte 2
- .byte 2
- .byte 2
- .byte 3
- .byte 3
- .byte 3
- .byte 3
- .byte 4
- .byte 4
- .byte 4
- .byte 4
- .byte -4
- .byte -3
- .byte -3
- .byte -2
- .byte -2
- .byte -1
- .byte -1
- .byte -1
- .byte 0
- .byte -1
- .byte 0
- .byte 0
- .byte 0
- .byte 0
- .byte 0
- .byte 0
- .byte 1
- .byte 0
- .byte 1
- .byte 1
- .byte 1
- .byte 2
- .byte 2
- .byte 3
- .byte 3
- .byte 4
- .byte -4
- .byte -3
- .byte -2
- .byte -1
- .byte -1
- .byte -1
- .byte 0
- .byte 0
- .byte 0
- .byte 0
- .byte 1
- .byte 0
- .byte 1
- .byte 1
- .byte 2
- .byte 3
-
- .align 2
-gUnknown_08215C0C:: @ 8215C0C
- .incbin "graphics/berry_blender/center.gbapal"
-
- .align 2
-gUnknown_08215C2C:: @ 8215C2C
- .incbin "graphics/berry_blender/center_map.bin"
-
- .align 2
-gUnknown_0821602C:: @ 821602C
- .incbin "graphics/berry_blender/outer.gbapal"
-
- .incbin "graphics/unused/unknown/821604C.gbapal"
-
- .space 0x1C0
-
- .string "▶$"
- .string " $"
- .string "カッコイ$" @ "cool" (missing an イ at the end)
- .string "カワイイ$" @ "cute"
- .string "ウツクシ$" @ "beautiful" (missing an イ at the end)
- .string "カシコイ$" @ "smart"
- .string "タクマシ$" @ "tough" (missing an イ at the end)
-
-gUnknown_08216249:: @ 8216249
- .string "\p$"
-
-@ unreferenced
-@ These appear to be the first names of four people who worked on the game.
- .string "てつじ$", 10 @ Tetsuji (Ohta)
- .string "あきと$", 10 @ Akito (Mori)
- .string "シゲル$", 10 @ Shigeru (Ohmori)
- .string "ヨシノリ$", 10 @ Yoshinori (Matsuda)
-
-UnknownText_2Pok:
- .string "2Pok$"
-UnknownText_3Pok:
- .string "3Pok$"
-UnknownText_4Pok:
- .string "4Pok$"
-
- .align 2
-gUnknown_08216284:: @ 8216284
- .4byte UnknownText_2Pok
- .4byte UnknownText_3Pok
- .4byte UnknownText_4Pok
-
-@ unreferenced
- .string "1P$", 4
- .string "2P$", 4
- .string "3P$", 4
- .string "4P$", 4
-
-UnknownText_Mister:
- .string "MISTER$"
-UnknownText_Laddie:
- .string "LADDIE$"
-UnknownText_Lassie:
- .string "LASSIE$"
-
- .align 2
-gUnknown_082162B8:: @ 82162B8
- .4byte UnknownText_Mister
- .4byte UnknownText_Laddie
- .4byte UnknownText_Lassie
-
-gUnknown_082162C4:: @ 82162C4
- .string "{COLOR RED}$"
-
-gUnknown_082162C8:: @ 82162C8
- .string "\n$"
-
- .string " $"
-
-gUnknown_082162CC:: @ 82162CC
- .byte -1, -1
- .byte 1, -1
- .byte -1, 1
- .byte 1, 1
-
-gUnknown_082162D4:: @ 82162D4
- .byte 2, 6
- .byte 23, 6
- .byte 2, 12
- .byte 23, 12
- .byte 1, 6
- .byte 22, 6
- .byte 1, 12
- .byte 22, 12
-
-gUnknown_082162E4:: @ 82162E4
- .byte 72, 32
- .byte 168, 32
- .byte 72, 128
- .byte 168, 128
-
-gUnknown_082162EC:: @ 82162EC
- .byte -1, 0, 1, -1
- .byte -1, 0, 1, 2
- .byte 0, 1, 2, 3
-
- .align 1
-gUnknown_082162F8:: @ 82162F8
- .2byte 0x0000, 0xC000, 0x4000, 0x8000
-
-gUnknown_08216300:: @ 8216300
- .byte 1
- .byte 1
- .byte 0
-
-gUnknown_08216303:: @ 8216303
- .byte 32
- .byte 224
- .byte 96
- .byte 160
- .byte 0
-
- .align 2
-gUnknown_08216308:: @ 8216308
- .4byte sub_804F8C8
- .4byte sub_804F9F4
- .4byte sub_804FB1C
-
- .align 2
-gOamData_8216314:: @ 8216314
- .2byte 0x0000
- .2byte 0x8000
- .2byte 0x0400
-
- .align 2
-gSpriteAnim_821631C:: @ 821631C
- obj_image_anim_frame 16, 5, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_8216324:: @ 8216324
- obj_image_anim_frame 16, 5, OBJ_IMAGE_ANIM_V_FLIP
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_821632C:: @ 821632C
- obj_image_anim_frame 16, 5, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_8216334:: @ 8216334
- obj_image_anim_frame 16, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_821633C:: @ 821633C
- obj_image_anim_frame 48, 2, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 32, 5, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 48, 3, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 16, 5, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_8216350:: @ 8216350
- obj_image_anim_frame 48, 2, OBJ_IMAGE_ANIM_V_FLIP
- obj_image_anim_frame 32, 5, OBJ_IMAGE_ANIM_V_FLIP
- obj_image_anim_frame 48, 3, OBJ_IMAGE_ANIM_V_FLIP
- obj_image_anim_frame 16, 5, OBJ_IMAGE_ANIM_V_FLIP
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_8216364:: @ 8216364
- obj_image_anim_frame 48, 2, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 32, 5, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 48, 3, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 16, 5, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_8216378:: @ 8216378
- obj_image_anim_frame 48, 2
- obj_image_anim_frame 32, 5
- obj_image_anim_frame 48, 3
- obj_image_anim_frame 16, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_821638C:: @ 821638C
- obj_image_anim_frame 0, 5, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_8216394:: @ 8216394
- obj_image_anim_frame 0, 5, OBJ_IMAGE_ANIM_V_FLIP
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_821639C:: @ 821639C
- obj_image_anim_frame 0, 5, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_82163A4:: @ 82163A4
- obj_image_anim_frame 0, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_82163AC:: @ 82163AC
- .4byte gSpriteAnim_821631C
- .4byte gSpriteAnim_8216324
- .4byte gSpriteAnim_821632C
- .4byte gSpriteAnim_8216334
- .4byte gSpriteAnim_821633C
- .4byte gSpriteAnim_8216350
- .4byte gSpriteAnim_8216364
- .4byte gSpriteAnim_8216378
- .4byte gSpriteAnim_821638C
- .4byte gSpriteAnim_8216394
- .4byte gSpriteAnim_821639C
- .4byte gSpriteAnim_82163A4
-
- .align 2
-gUnknown_082163DC:: @ 82163DC
- obj_tiles gBerryBlenderArrowTiles, 0x800, 46545
-
- .align 2
-gUnknown_082163E4:: @ 82163E4
- obj_pal gBerryBlenderMiscPalette, 46546
-
- .align 2
-gUnknown_082163EC:: @ 82163EC
- obj_pal gBerryBlenderArrowPalette, 12312
-
- .align 2
-gSpriteTemplate_82163F4:: @ 82163F4
- spr_template 46545, 12312, gOamData_8216314, gSpriteAnimTable_82163AC, NULL, gDummySpriteAffineAnimTable, sub_8051C04
-
- .align 2
-gOamData_821640C:: @ 821640C
- .2byte 0x0000
- .2byte 0x4000
- .2byte 0x0000
-
- .align 2
-gSpriteAnim_8216414:: @ 8216414
- obj_image_anim_frame 0, 20
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_821641C:: @ 821641C
- obj_image_anim_frame 4, 20, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_8216424:: @ 8216424
- obj_image_anim_frame 8, 4
- obj_image_anim_frame 12, 4
- obj_image_anim_frame 8, 4
- obj_image_anim_frame 12, 4
- obj_image_anim_frame 8, 4
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_821643C:: @ 821643C
- obj_image_anim_frame 8, 4
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_8216444:: @ 8216444
- .4byte gSpriteAnim_8216414
- .4byte gSpriteAnim_821641C
- .4byte gSpriteAnim_8216424
- .4byte gSpriteAnim_821643C
-
- .align 2
-gUnknown_08216454:: @ 8216454
- obj_tiles gBerryBlenderMarubatsuTiles, 0x200, 48888
-
- .align 2
-gSpriteTemplate_821645C:: @ 821645C
- spr_template 48888, 46546, gOamData_821640C, gSpriteAnimTable_8216444, NULL, gDummySpriteAffineAnimTable, sub_8051650
-
- .align 2
-gOamData_8216474:: @ 8216474
- .2byte 0x0000
- .2byte 0x0000
- .2byte 0x0400
-
- .align 2
-gSpriteAnim_821647C:: @ 821647C
- obj_image_anim_frame 0, 3
- obj_image_anim_frame 1, 4
- obj_image_anim_frame 3, 5
- obj_image_anim_frame 1, 4
- obj_image_anim_frame 0, 3
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_8216494:: @ 8216494
- obj_image_anim_frame 0, 3
- obj_image_anim_frame 2, 4
- obj_image_anim_frame 4, 5
- obj_image_anim_frame 2, 4
- obj_image_anim_frame 0, 3
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_82164AC:: @ 82164AC
- obj_image_anim_frame 0, 2
- obj_image_anim_frame 1, 2
- obj_image_anim_frame 2, 2
- obj_image_anim_frame 4, 4
- obj_image_anim_frame 3, 3
- obj_image_anim_frame 2, 2
- obj_image_anim_frame 1, 2
- obj_image_anim_frame 0, 2
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_82164D0:: @ 82164D0
- obj_image_anim_frame 5, 5, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_82164D8:: @ 82164D8
- obj_image_anim_frame 6, 5, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_82164E0:: @ 82164E0
- .4byte gSpriteAnim_821647C
- .4byte gSpriteAnim_8216494
- .4byte gSpriteAnim_82164AC
- .4byte gSpriteAnim_82164D0
- .4byte gSpriteAnim_82164D8
-
- .align 2
-gUnknown_082164F4:: @ 82164F4
- obj_tiles gBerryBlenderParticlesTiles, 0xE0, 23456
-
- .align 2
-gSpriteTemplate_82164FC:: @ 82164FC
- spr_template 23456, 46546, gOamData_8216474, gSpriteAnimTable_82164E0, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-gOamData_8216514:: @ 8216514
- .2byte 0x0000
- .2byte 0x8000
- .2byte 0x0400
-
- .align 2
-gSpriteAnim_821651C:: @ 821651C
- obj_image_anim_frame 32, 30
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_8216524:: @ 8216524
- obj_image_anim_frame 16, 30
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_821652C:: @ 821652C
- obj_image_anim_frame 0, 30
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_8216534:: @ 8216534
- .4byte gSpriteAnim_821651C
- .4byte gSpriteAnim_8216524
- .4byte gSpriteAnim_821652C
-
- .align 2
-gUnknown_08216540:: @ 8216540
- obj_tiles gBerryBlenderCountdownNumbersTiles, 0x600, 12345
-
- .align 2
-gSpriteTemplate_8216548:: @ 8216548
- spr_template 12345, 46546, gOamData_8216514, gSpriteAnimTable_8216534, NULL, gDummySpriteAffineAnimTable, sub_805181C
-
- .align 2
-gOamData_8216560:: @ 8216560
- .2byte 0x4000
- .2byte 0xC000
- .2byte 0x0400
-
- .align 2
-gSpriteAnim_8216568:: @ 8216568
- obj_image_anim_frame 0, 30
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_8216570:: @ 8216570
- .4byte gSpriteAnim_8216568
-
- .align 2
-gUnknown_08216574:: @ 8216574
- obj_tiles gBerryBlenderStartTiles, 0x400, 12346
-
- .align 2
-gSpriteTemplate_821657C:: @ 821657C
- spr_template 12346, 46546, gOamData_8216560, gSpriteAnimTable_8216570, NULL, gDummySpriteAffineAnimTable, sub_80518CC
-
- .align 1
-gUnknown_08216594:: @ 8216594
- .2byte -10, 20, 10, 2, 1
- .2byte 250, 20, 10, -2, 1
- .2byte -10, 140, 10, 2, -1
- .2byte 250, 140, 10, -2, -1
-
-gUnknown_082165BC:: @ 82165BC
- .byte 4, 3, 2
- .byte 0, 4, 3
- .byte 1, 0, 4
- .byte 2, 1, 0
- .byte 3, 2, 1
- .byte 0, 2, 3
- .byte 1, 3, 4
- .byte 2, 4, 0
- .byte 3, 0, 1
- .byte 4, 1, 2
-
-gUnknown_082165DA:: @ 82165DA
- .byte 1, 1, 2, 3, 4
-
-gUnknown_082165DF:: @ 82165DF
- .byte 0x1C, 0x16, 0x13, 0x1A, 0x19, 0x0E, 0x0D, 0x0B, 0x07, 0x15
-
-gUnknown_082165E9:: @ 82165E9
- .byte 6, 6, 6, 6, 5
-
-gUnknown_082165EE:: @ 82165EE
- .byte 3, 3, 3, 2, 2
-
-gUnknown_082165F3:: @ 82165F3
- .byte 3, 3, 3, 3, 2
-
-gUnknown_082165F8:: @ 82165F8
- .string " $"
-
-gOtherText_BPMAndDash:: @ 82165FA
- .string "BPM$"
- .string "-$"
-
-gUnknown_08216600:: @ 8216600
- .string "\n$"
-
- .string "\n$"
-
-@ used to initialize part of save block 1 when starting a new game
- .align 2
-gUnknown_08216604:: @ 8216604
- .space 11
- .byte 0xFF
- .space 10
- .byte 0xFF
- .space 9
-
- .align 2
-gDummyWarpData:: @ 8216624
- .byte -1
- .byte -1
- .byte -1
- .space 1
- .2byte -1
- .2byte -1
-
- .incbin "baserom.gba", 0x0021662C, 0x20
-
- .align 2
-gUnknown_0821664C:: @ 821664C
- .4byte 0, 0
- .4byte 0, 1
- .4byte 0, -1
- .4byte -1, 0
- .4byte 1, 0
- .4byte -1, 1
- .4byte 1, 1
- .4byte -1, -1
- .4byte 1, -1
-
- .align 2
-gUnknown_08216694:: @ 8216694
- .4byte REG_WIN0H
- .4byte ((DMA_ENABLE | DMA_START_HBLANK | DMA_REPEAT | DMA_DEST_RELOAD) << 16) | 1
- .4byte 1
-
- .align 2
-gUnknown_082166A0:: @ 82166A0
- .4byte sub_8055C68
- .4byte sub_8055C88
- .4byte sub_8055C8C
-
- .align 2
-gUnknown_082166AC:: @ 82166AC
- .4byte sub_8055CAC
- .4byte sub_8055CB0
- .4byte sub_8055CB0
- .4byte sub_8055CB0
- .4byte sub_8055CB0
- .4byte sub_8055CAC
- .4byte sub_8055CAC
- .4byte sub_8055D18
- .4byte sub_8055D18
- .4byte sub_8055D18
- .4byte sub_8055D18
-
- .align 2
-gUnknown_082166D8:: @ 82166D8
- .4byte sub_8055D30
- .4byte sub_8055D38
-
-@ 82166E0
- .include "data/tilesets/graphics.inc"
-
-@ 8259C1C
- .include "data/tilesets/metatiles.inc"
-
-@ 8286CF4
- .include "data/tilesets/headers.inc"
-
- .include "data/maps/_assets.inc"
- .include "data/maps/attributes_table.inc"
- .include "data/maps/headers.inc"
- .include "data/maps/_groups.inc"
- .include "data/maps/connections.inc"
-
- .align 2
-gUnknown_08308E28:: @ 8308E28
- .4byte 0
-
-gUnknown_08308E2C:: @ 8308E2C
- .byte 0b100
- .byte 0b000
- .byte 0b101
- .byte 0b101
- .byte 0b000
- .byte 0b001
- .byte 0b101
- .byte 0b100
- .byte 0b101
- .byte 0b100
- .byte 0b100
- .byte 0b101
- .byte 0b100
- .byte 0b000
- .byte 0b000
- .byte 0b100
- .byte 0b111
- .byte 0b111
- .byte 0b111
- .byte 0b110
- .byte 0b110
- .byte 0b111
- .byte 0b100
- .byte 0b100
- .byte 0b000
- .byte 0b110
- .byte 0b000
- .byte 0b100
- .byte 0b100
- .byte 0b000
- .byte 0b000
- .byte 0b000
- .byte 0b100
- .byte 0b100
- .byte 0b111
- .byte 0b100
- .byte 0b101
- .byte 0b101
- .byte 0b100
- .byte 0b100
- .byte 0b100
- .byte 0b100
- .byte 0b111
- .byte 0b100
- .byte 0b000
- .byte 0b000
- .byte 0b000
- .byte 0b000
- .byte 0b100
- .byte 0b100
- .byte 0b100
- .byte 0b100
- .byte 0b100
- .byte 0b100
- .byte 0b100
- .byte 0b100
- .byte 0b000
- .byte 0b000
- .byte 0b000
- .byte 0b000
- .byte 0b100
- .byte 0b100
- .byte 0b100
- .byte 0b100
- .byte 0b100
- .byte 0b100
- .byte 0b100
- .byte 0b100
- .byte 0b100
- .byte 0b100
- .byte 0b100
- .byte 0b100
- .byte 0b100
- .byte 0b100
- .byte 0b100
- .byte 0b000
- .byte 0b000
- .byte 0b000
- .byte 0b000
- .byte 0b000
- .byte 0b110
- .byte 0b110
- .byte 0b110
- .byte 0b110
- .byte 0b000
- .byte 0b000
- .byte 0b000
- .byte 0b000
- .byte 0b000
- .byte 0b000
- .byte 0b000
- .byte 0b000
- .byte 0b000
- .byte 0b000
- .byte 0b000
- .byte 0b000
- .byte 0b100
- .byte 0b100
- .byte 0b100
- .byte 0b100
- .byte 0b100
- .byte 0b100
- .byte 0b100
- .byte 0b100
- .byte 0b100
- .byte 0b100
- .byte 0b100
- .byte 0b100
- .byte 0b110
- .byte 0b110
- .byte 0b100
- .byte 0b110
- .byte 0b000
- .byte 0b100
- .byte 0b100
- .byte 0b100
- .byte 0b100
- .byte 0b100
- .byte 0b100
- .byte 0b100
- .byte 0b100
- .byte 0b000
- .byte 0b000
- .byte 0b000
- .byte 0b000
- .byte 0b000
- .byte 0b000
- .byte 0b000
- .byte 0b000
- .byte 0b000
- .byte 0b000
- .byte 0b000
- .byte 0b000
- .byte 0b000
- .byte 0b000
- .byte 0b000
- .byte 0b000
- .byte 0b000
- .byte 0b000
- .byte 0b000
- .byte 0b000
- .byte 0b000
- .byte 0b000
- .byte 0b000
- .byte 0b000
- .byte 0b000
- .byte 0b000
- .byte 0b000
- .byte 0b000
- .byte 0b000
- .byte 0b000
- .byte 0b000
- .byte 0b000
- .byte 0b000
- .byte 0b000
- .byte 0b000
- .byte 0b000
- .byte 0b000
- .byte 0b000
- .byte 0b000
- .byte 0b000
- .byte 0b000
- .byte 0b000
- .byte 0b000
- .byte 0b000
- .byte 0b000
- .byte 0b000
- .byte 0b000
- .byte 0b000
- .byte 0b000
- .byte 0b000
- .byte 0b000
- .byte 0b000
- .byte 0b000
- .byte 0b000
- .byte 0b000
- .byte 0b000
- .byte 0b000
- .byte 0b100
- .byte 0b100
- .byte 0b000
- .byte 0b100
- .byte 0b000
- .byte 0b000
- .byte 0b100
- .byte 0b100
- .byte 0b100
- .byte 0b100
- .byte 0b100
- .byte 0b100
- .byte 0b100
- .byte 0b000
- .byte 0b100
- .byte 0b100
- .byte 0b100
- .byte 0b100
- .byte 0b100
- .byte 0b100
- .byte 0b000
- .byte 0b000
- .byte 0b000
- .byte 0b000
- .byte 0b000
- .byte 0b000
- .byte 0b000
- .byte 0b000
- .byte 0b000
- .byte 0b000
- .byte 0b100
- .byte 0b100
- .byte 0b100
- .byte 0b100
- .byte 0b100
- .byte 0b100
- .byte 0b100
- .byte 0b000
- .byte 0b000
- .byte 0b000
- .byte 0b000
- .byte 0b000
- .byte 0b000
- .byte 0b000
- .byte 0b000
- .byte 0b000
- .byte 0b000
- .byte 0b000
- .byte 0b000
- .byte 0b000
- .byte 0b000
- .byte 0b000
- .byte 0b000
- .byte 0b000
- .byte 0b000
- .byte 0b000
- .byte 0b000
- .byte 0b000
- .byte 0b000
- .byte 0b000
- .byte 0b000
- .byte 0b000
-
- .align 2
-DoorAnimTiles_04: @ 8308F1C
- .incbin "graphics/door_anims/04/0.4bpp"
- .incbin "graphics/door_anims/04/1.4bpp"
- .incbin "graphics/door_anims/04/2.4bpp"
-
- .space 32
-
- .align 2
-DoorAnimTiles_05: @ 830923C
- .incbin "graphics/door_anims/05/0.4bpp"
- .incbin "graphics/door_anims/05/1.4bpp"
- .incbin "graphics/door_anims/05/2.4bpp"
-
- .align 2
-DoorAnimTiles_08: @ 830953C
- .incbin "graphics/door_anims/08/0.4bpp"
- .incbin "graphics/door_anims/08/1.4bpp"
- .incbin "graphics/door_anims/08/2.4bpp"
-
- .space 32
-
- .align 2
-DoorAnimTiles_15: @ 830985C
- .incbin "graphics/door_anims/15/0.4bpp"
- .incbin "graphics/door_anims/15/1.4bpp"
- .incbin "graphics/door_anims/15/2.4bpp"
-
- .space 32
-
- .align 2
-DoorAnimTiles_16: @ 8309B7C
- .incbin "graphics/door_anims/16/0.4bpp"
- .incbin "graphics/door_anims/16/1.4bpp"
- .incbin "graphics/door_anims/16/2.4bpp"
-
- .space 32
-
- .align 2
-DoorAnimTiles_00: @ 8309E9C
- .incbin "graphics/door_anims/00/0.4bpp"
- .incbin "graphics/door_anims/00/1.4bpp"
- .incbin "graphics/door_anims/00/2.4bpp"
-
- .align 2
-DoorAnimTiles_01: @ 830A19C
- .incbin "graphics/door_anims/01/0.4bpp"
- .incbin "graphics/door_anims/01/1.4bpp"
- .incbin "graphics/door_anims/01/2.4bpp"
-
- .align 2
-DoorAnimTiles_02: @ 830A49C
- .incbin "graphics/door_anims/02/0.4bpp"
- .incbin "graphics/door_anims/02/1.4bpp"
- .incbin "graphics/door_anims/02/2.4bpp"
-
- .align 2
-DoorAnimTiles_03: @ 830A79C
- .incbin "graphics/door_anims/03/0.4bpp"
- .incbin "graphics/door_anims/03/1.4bpp"
- .incbin "graphics/door_anims/03/2.4bpp"
-
- .align 2
-DoorAnimTiles_06: @ 830AA9C
- .incbin "graphics/door_anims/06/0.4bpp"
- .incbin "graphics/door_anims/06/1.4bpp"
- .incbin "graphics/door_anims/06/2.4bpp"
-
- .align 2
-DoorAnimTiles_07: @ 830AD9C
- .incbin "graphics/door_anims/07/0.4bpp"
- .incbin "graphics/door_anims/07/1.4bpp"
- .incbin "graphics/door_anims/07/2.4bpp"
-
- .align 2
-DoorAnimTiles_09: @ 830B09C
- .incbin "graphics/door_anims/09/0.4bpp"
- .incbin "graphics/door_anims/09/1.4bpp"
- .incbin "graphics/door_anims/09/2.4bpp"
-
- .space 32
-
- .align 2
-DoorAnimTiles_10: @ 830B3BC
- .incbin "graphics/door_anims/10/0.4bpp"
- .incbin "graphics/door_anims/10/1.4bpp"
- .incbin "graphics/door_anims/10/2.4bpp"
-
- .space 32
-
- .align 2
-DoorAnimTiles_11: @ 830B6DC
- .incbin "graphics/door_anims/11/0.4bpp"
- .incbin "graphics/door_anims/11/1.4bpp"
- .incbin "graphics/door_anims/11/2.4bpp"
-
- .space 32
-
- .align 2
-DoorAnimTiles_12: @ 830B9FC
- .incbin "graphics/door_anims/12/0.4bpp"
- .incbin "graphics/door_anims/12/1.4bpp"
- .incbin "graphics/door_anims/12/2.4bpp"
-
- .space 32
-
- .align 2
-DoorAnimTiles_13: @ 830BD1C
- .incbin "graphics/door_anims/13/0.4bpp"
- .incbin "graphics/door_anims/13/1.4bpp"
- .incbin "graphics/door_anims/13/2.4bpp"
-
- .space 32
-
- .align 2
-DoorAnimTiles_14: @ 830C03C
- .incbin "graphics/door_anims/14/0.4bpp"
- .incbin "graphics/door_anims/14/1.4bpp"
- .incbin "graphics/door_anims/14/2.4bpp"
-
- .space 32
-
- .align 2
-DoorAnimTiles_17: @ 830C35C
- .incbin "graphics/door_anims/17/0.4bpp"
- .incbin "graphics/door_anims/17/1.4bpp"
- .incbin "graphics/door_anims/17/2.4bpp"
-
- .space 32
-
- .align 2
-DoorAnimTiles_18: @ 830C67C
- .incbin "graphics/door_anims/18/0.4bpp"
- .incbin "graphics/door_anims/18/1.4bpp"
- .incbin "graphics/door_anims/18/2.4bpp"
-
- .space 32
-
- .align 2
-DoorAnimTiles_19: @ 830C99C
- .incbin "graphics/door_anims/19/0.4bpp"
- .incbin "graphics/door_anims/19/1.4bpp"
- .incbin "graphics/door_anims/19/2.4bpp"
-
- .space 32
-
- .align 2
-DoorAnimTiles_20: @ 830CCBC
- .incbin "graphics/door_anims/20/0.4bpp"
- .incbin "graphics/door_anims/20/1.4bpp"
- .incbin "graphics/door_anims/20/2.4bpp"
-
- .space 32
-
- .align 2
-DoorAnimTiles_21: @ 830CFDC
- .incbin "graphics/door_anims/21/0.4bpp"
- .incbin "graphics/door_anims/21/1.4bpp"
- .incbin "graphics/door_anims/21/2.4bpp"
-
- .space 32
-
- .align 2
-DoorAnimTiles_22: @ 830D2FC
- .incbin "graphics/door_anims/22/0.4bpp"
- .incbin "graphics/door_anims/22/1.4bpp"
- .incbin "graphics/door_anims/22/2.4bpp"
-
- .space 32
-
- .align 2
-DoorAnimTiles_23: @ 830D61C
- .incbin "graphics/door_anims/23/0.4bpp"
- .incbin "graphics/door_anims/23/1.4bpp"
- .incbin "graphics/door_anims/23/2.4bpp"
-
- .space 32
-
- .align 2
-DoorAnimTiles_24: @ 830D93C
- .incbin "graphics/door_anims/24/0.4bpp"
- .incbin "graphics/door_anims/24/1.4bpp"
- .incbin "graphics/door_anims/24/2.4bpp"
-
- .space 32
-
- .align 2
-DoorAnimTiles_25: @ 830DC5C
- .incbin "graphics/door_anims/25/0.4bpp"
- .incbin "graphics/door_anims/25/1.4bpp"
- .incbin "graphics/door_anims/25/2.4bpp"
-
- .space 32
-
- .align 2
-DoorAnimTiles_26: @ 830DF7C
- .incbin "graphics/door_anims/26/0.4bpp"
- .incbin "graphics/door_anims/26/1.4bpp"
- .incbin "graphics/door_anims/26/2.4bpp"
-
- .space 32
-
- .align 2
-DoorAnimTiles_27: @ 830E29C
- .incbin "graphics/door_anims/27/0.4bpp"
- .incbin "graphics/door_anims/27/1.4bpp"
- .incbin "graphics/door_anims/27/2.4bpp"
-
- .space 32
-
- .align 2
-DoorAnimTiles_28: @ 830E5BC
- .incbin "graphics/door_anims/28/0.4bpp"
- .incbin "graphics/door_anims/28/1.4bpp"
- .incbin "graphics/door_anims/28/2.4bpp"
-
- .space 32
-
- .align 2
-DoorAnimTiles_29: @ 830E8DC
- .incbin "graphics/door_anims/29/0.4bpp"
- .incbin "graphics/door_anims/29/1.4bpp"
- .incbin "graphics/door_anims/29/2.4bpp"
-
- .space 32
-
- .align 2
-DoorAnimTiles_30: @ 830EBFC
- .incbin "graphics/door_anims/30/0.4bpp"
- .incbin "graphics/door_anims/30/1.4bpp"
- .incbin "graphics/door_anims/30/2.4bpp"
-
- .space 32
-
- .align 2
-DoorAnimTiles_31: @ 830EF1C
- .incbin "graphics/door_anims/31/0.4bpp"
- .incbin "graphics/door_anims/31/1.4bpp"
- .incbin "graphics/door_anims/31/2.4bpp"
-
- .space 32
-
- .align 2
-DoorAnimTiles_32: @ 830F23C
- .incbin "graphics/door_anims/32/0.4bpp"
- .incbin "graphics/door_anims/32/1.4bpp"
- .incbin "graphics/door_anims/32/2.4bpp"
-
- .space 32
-
- .align 2
-DoorAnimTiles_33: @ 830F55C
- .incbin "graphics/door_anims/33/0.4bpp"
- .incbin "graphics/door_anims/33/1.4bpp"
- .incbin "graphics/door_anims/33/2.4bpp"
-
- .space 32
-
-gDoorOpenAnimFrames:: @ 830F87C
- door_anim_frame 4, -1
- door_anim_frame 4, 0
- door_anim_frame 4, 0x100
- door_anim_frame 4, 0x200
- door_anim_frame 0, 0
-
-gDoorCloseAnimFrames:: @ 830F890
- door_anim_frame 4, 0x200
- door_anim_frame 4, 0x100
- door_anim_frame 4, 0
- door_anim_frame 4, -1
- door_anim_frame 0, 0
-
-DoorAnimPalettes_830F8A4:
- .byte 1, 1, 1, 1, 1, 1, 1, 1
-
-DoorAnimPalettes_830F8AC:
- .byte 1, 1, 1, 1, 1, 1, 1, 1
-
-DoorAnimPalettes_830F8B4:
- .byte 5, 5, 5, 5, 5, 5, 5, 5
-
-DoorAnimPalettes_830F8BC:
- .byte 0, 0, 1, 1, 1, 1, 1, 1
-
-DoorAnimPalettes_830F8C4:
- .byte 6, 6, 6, 6, 6, 6, 6, 6
-
-DoorAnimPalettes_830F8CC:
- .byte 8, 8, 8, 8, 8, 8, 8, 8
-
-DoorAnimPalettes_830F8D4:
- .byte 11, 11, 11, 11, 11, 11, 11, 11
-
-DoorAnimPalettes_830F8DC:
- .byte 10, 10, 10, 10, 10, 10, 10, 10
-
-DoorAnimPalettes_830F8E4:
- .byte 7, 7, 7, 7, 7, 7, 7, 7
-
-DoorAnimPalettes_830F8EC:
- .byte 8, 8, 8, 8, 8, 8, 8, 8
-
-DoorAnimPalettes_830F8F4:
- .byte 9, 9, 9, 9, 9, 9, 9, 9
-
-DoorAnimPalettes_830F8FC:
- .byte 9, 9, 1, 1, 1, 1, 1, 1
-
-DoorAnimPalettes_830F904:
- .byte 8, 8, 8, 8, 8, 8, 8, 8
-
-DoorAnimPalettes_830F90C:
- .byte 9, 9, 9, 9, 9, 9, 9, 9
-
-DoorAnimPalettes_830F914:
- .byte 6, 6, 6, 6, 6, 6, 6, 6
-
-DoorAnimPalettes_830F91C:
- .byte 6, 6, 6, 6, 6, 6, 6, 6
-
-DoorAnimPalettes_830F924:
- .byte 0, 0, 5, 5, 5, 5, 5, 5
-
-DoorAnimPalettes_830F92C:
- .byte 6, 6, 1, 1, 1, 1, 1, 1
-
-DoorAnimPalettes_830F934:
- .byte 7, 7, 7, 7, 7, 7, 7, 7
-
-DoorAnimPalettes_830F93C:
- .byte 6, 6, 5, 5, 5, 5, 5, 5
-
-DoorAnimPalettes_830F944:
- .byte 5, 5, 5, 5, 5, 5, 5, 5
-
-DoorAnimPalettes_830F94C:
- .byte 1, 1, 1, 1, 1, 1, 1, 1
-
-DoorAnimPalettes_830F954:
- .byte 6, 6, 7, 7, 7, 7, 7, 7
-
-DoorAnimPalettes_830F95C:
- .byte 7, 7, 7, 7, 7, 7, 7, 7
-
-DoorAnimPalettes_830F964:
- .byte 5, 5, 5, 5, 5, 5, 5, 5
-
-DoorAnimPalettes_830F96C:
- .byte 9, 9, 9, 9, 9, 9, 9, 9
-
-DoorAnimPalettes_830F974:
- .byte 8, 8, 8, 8, 8, 8, 8, 8
-
-DoorAnimPalettes_830F97C:
- .byte 6, 6, 6, 6, 6, 6, 6, 6
-
-DoorAnimPalettes_830F984:
- .byte 7, 7, 7, 7, 7, 7, 7, 7
-
-DoorAnimPalettes_830F98C:
- .byte 11, 11, 7, 7, 7, 7, 7, 7
-
-DoorAnimPalettes_830F994:
- .byte 7, 7, 7, 7, 7, 7, 7, 7
-
-DoorAnimPalettes_830F99C:
- .byte 6, 6, 7, 7, 7, 7, 7, 7
-
-DoorAnimPalettes_830F9A4:
- .byte 9, 9, 9, 9, 9, 9, 9, 9
-
-DoorAnimPalettes_830F9AC:
- .byte 7, 7, 7, 7, 7, 7, 7, 7
-
- .align 2
-gDoorAnimGraphicsTable:: @ 830F9B4
- door_anim_gfx 0x021, 0, DoorAnimTiles_00, DoorAnimPalettes_830F8A4
- door_anim_gfx 0x061, 1, DoorAnimTiles_01, DoorAnimPalettes_830F8AC
- door_anim_gfx 0x1CD, 1, DoorAnimTiles_02, DoorAnimPalettes_830F8B4
- door_anim_gfx 0x041, 1, DoorAnimTiles_03, DoorAnimPalettes_830F8BC
- door_anim_gfx 0x248, 0, DoorAnimTiles_04, DoorAnimPalettes_830F8C4
- door_anim_gfx 0x249, 0, DoorAnimTiles_05, DoorAnimPalettes_830F8CC
- door_anim_gfx 0x22F, 0, DoorAnimTiles_06, DoorAnimPalettes_830F8D4
- door_anim_gfx 0x21F, 0, DoorAnimTiles_07, DoorAnimPalettes_830F8DC
- door_anim_gfx 0x2A5, 0, DoorAnimTiles_08, DoorAnimPalettes_830F8E4
- door_anim_gfx 0x287, 0, DoorAnimTiles_09, DoorAnimPalettes_830F8F4
- door_anim_gfx 0x2AC, 0, DoorAnimTiles_10, DoorAnimPalettes_830F934
- door_anim_gfx 0x3A1, 0, DoorAnimTiles_11, DoorAnimPalettes_830F93C
- door_anim_gfx 0x2DC, 0, DoorAnimTiles_12, DoorAnimPalettes_830F92C
- door_anim_gfx 0x225, 0, DoorAnimTiles_13, DoorAnimPalettes_830F924
- door_anim_gfx 0x1DB, 1, DoorAnimTiles_14, DoorAnimPalettes_830F94C
- door_anim_gfx 0x246, 0, DoorAnimTiles_15, DoorAnimPalettes_830F8EC
- door_anim_gfx 0x28E, 0, DoorAnimTiles_16, DoorAnimPalettes_830F944
- door_anim_gfx 0x2A1, 0, DoorAnimTiles_17, DoorAnimPalettes_830F8FC
- door_anim_gfx 0x21C, 0, DoorAnimTiles_18, DoorAnimPalettes_830F914
- door_anim_gfx 0x21E, 0, DoorAnimTiles_19, DoorAnimPalettes_830F91C
- door_anim_gfx 0x21D, 1, DoorAnimTiles_20, DoorAnimPalettes_830F904
- door_anim_gfx 0x21A, 0, DoorAnimTiles_21, DoorAnimPalettes_830F90C
- door_anim_gfx 0x224, 0, DoorAnimTiles_22, DoorAnimPalettes_830F954
- door_anim_gfx 0x289, 0, DoorAnimTiles_23, DoorAnimPalettes_830F95C
- door_anim_gfx 0x30C, 1, DoorAnimTiles_24, DoorAnimPalettes_830F964
- door_anim_gfx 0x32D, 1, DoorAnimTiles_25, DoorAnimPalettes_830F96C
- door_anim_gfx 0x2ED, 1, DoorAnimTiles_26, DoorAnimPalettes_830F974
- door_anim_gfx 0x264, 1, DoorAnimTiles_27, DoorAnimPalettes_830F97C
- door_anim_gfx 0x22B, 0, DoorAnimTiles_28, DoorAnimPalettes_830F984
- door_anim_gfx 0x2F7, 0, DoorAnimTiles_29, DoorAnimPalettes_830F98C
- door_anim_gfx 0x297, 0, DoorAnimTiles_30, DoorAnimPalettes_830F994
- door_anim_gfx 0x285, 1, DoorAnimTiles_31, DoorAnimPalettes_830F99C
- door_anim_gfx 0x25D, 1, DoorAnimTiles_32, DoorAnimPalettes_830F9A4
- door_anim_gfx 0x20E, 1, DoorAnimTiles_33, DoorAnimPalettes_830F9AC
- door_anim_gfx 0, 0, 0, 0
-
- .align 2
-gUnknown_0830FB58:: @ 830FB58
- .4byte MetatileBehavior_IsTrickHouseSlipperyFloor
- .4byte MetatileBehavior_IsIce_2
- .4byte MetatileBehavior_IsWalkSouth
- .4byte MetatileBehavior_IsWalkNorth
- .4byte MetatileBehavior_IsWalkWest
- .4byte MetatileBehavior_IsWalkEast
- .4byte MetatileBehavior_IsSouthwardCurrent
- .4byte MetatileBehavior_IsNorthwardCurrent
- .4byte MetatileBehavior_IsWestwardCurrent
- .4byte MetatileBehavior_IsEastwardCurrent
- .4byte MetatileBehavior_IsSlideSouth
- .4byte MetatileBehavior_IsSlideNorth
- .4byte MetatileBehavior_IsSlideWest
- .4byte MetatileBehavior_IsSlideEast
- .4byte MetatileBehavior_IsWaterfall
- .4byte MetatileBehavior_0xBB
- .4byte MetatileBehavior_0xBC
- .4byte MetatileBehavior_IsMuddySlope
-
- .align 2
-gUnknown_0830FBA0:: @ 830FBA0
- .4byte ForcedMovement_None
- .4byte ForcedMovement_Slip
- .4byte ForcedMovement_Slip
- .4byte sub_8058AAC
- .4byte sub_8058AC4
- .4byte sub_8058ADC
- .4byte sub_8058AF4
- .4byte sub_8058B0C
- .4byte sub_8058B24
- .4byte sub_8058B3C
- .4byte sub_8058B54
- .4byte ForcedMovement_SlideSouth
- .4byte ForcedMovement_SlideNorth
- .4byte ForcedMovement_SlideWest
- .4byte ForcedMovement_SlideEast
- .4byte sub_8058B0C
- .4byte sub_8058C04
- .4byte sub_8058C10
- .4byte ForcedMovement_MuddySlope
-
- .align 2
-gUnknown_0830FBEC:: @ 830FBEC
- .4byte PlayerNotOnBikeNotMoving
- .4byte PlayerNotOnBikeTurningInPlace
- .4byte sub_8058D0C
-
- .align 2
-gUnknown_0830FBF8:: @ 830FBF8
- .4byte MetatileBehavior_IsBumpySlope
- .4byte MetatileBehavior_IsIsolatedVerticalRail
- .4byte MetatileBehavior_IsIsolatedHorizontalRail
- .4byte MetatileBehavior_IsVerticalRail
- .4byte MetatileBehavior_IsHorizontalRail
-
-gUnknown_0830FC0C:: @ 830FC0C
- .byte 0x9, 0xA, 0xB, 0xC, 0xD
-
- .align 2
-gUnknown_0830FC14:: @ 830FC14
- .4byte PlayerAvatarTransition_Normal
- .4byte PlayerAvatarTransition_MachBike
- .4byte PlayerAvatarTransition_AcroBike
- .4byte PlayerAvatarTransition_Surfing
- .4byte PlayerAvatarTransition_Underwater
- .4byte sub_80591F4
- .4byte nullsub_49
- .4byte nullsub_49
-
- .align 2
-gUnknown_0830FC34:: @ 830FC34
- .4byte MetatileBehavior_IsSouthArrowWarp
- .4byte MetatileBehavior_IsNorthArrowWarp
- .4byte MetatileBehavior_IsWestArrowWarp
- .4byte MetatileBehavior_IsEastArrowWarp
-
-gUnknown_0830FC44:: @ 830FC44
- .byte MAP_OBJ_GFX_RIVAL_BRENDAN_NORMAL, MAP_OBJ_GFX_RIVAL_MAY_NORMAL
- .byte MAP_OBJ_GFX_RIVAL_BRENDAN_MACH_BIKE, MAP_OBJ_GFX_RIVAL_MAY_MACH_BIKE
- .byte MAP_OBJ_GFX_RIVAL_BRENDAN_ACRO_BIKE, MAP_OBJ_GFX_RIVAL_MAY_ACRO_BIKE
- .byte MAP_OBJ_GFX_RIVAL_BRENDAN_SURFING, MAP_OBJ_GFX_RIVAL_MAY_SURFING
- .byte MAP_OBJ_GFX_BRENDAN_UNDERWATER, MAP_OBJ_GFX_MAY_UNDERWATER
- .byte MAP_OBJ_GFX_RIVAL_BRENDAN_FIELD_MOVE, MAP_OBJ_GFX_RIVAL_MAY_FIELD_MOVE
- .byte MAP_OBJ_GFX_BRENDAN_FISHING, MAP_OBJ_GFX_MAY_FISHING
- .byte MAP_OBJ_GFX_BRENDAN_WATERING, MAP_OBJ_GFX_MAY_WATERING
-
-gUnknown_0830FC54:: @ 830FC54
- .byte MAP_OBJ_GFX_BRENDAN_NORMAL, MAP_OBJ_GFX_MAY_NORMAL
- .byte MAP_OBJ_GFX_BRENDAN_MACH_BIKE, MAP_OBJ_GFX_MAY_MACH_BIKE
- .byte MAP_OBJ_GFX_BRENDAN_ACRO_BIKE, MAP_OBJ_GFX_MAY_ACRO_BIKE
- .byte MAP_OBJ_GFX_BRENDAN_SURFING, MAP_OBJ_GFX_MAY_SURFING
- .byte MAP_OBJ_GFX_BRENDAN_UNDERWATER, MAP_OBJ_GFX_MAY_UNDERWATER
- .byte MAP_OBJ_GFX_BRENDAN_FIELD_MOVE, MAP_OBJ_GFX_MAY_FIELD_MOVE
- .byte MAP_OBJ_GFX_BRENDAN_FISHING, MAP_OBJ_GFX_MAY_FISHING
- .byte MAP_OBJ_GFX_BRENDAN_WATERING, MAP_OBJ_GFX_MAY_WATERING
-
-gUnknown_0830FC64:: @ 830FC64
- @ male
- .byte MAP_OBJ_GFX_BRENDAN_NORMAL, 1
- .byte MAP_OBJ_GFX_BRENDAN_MACH_BIKE, 2
- .byte MAP_OBJ_GFX_BRENDAN_ACRO_BIKE, 4
- .byte MAP_OBJ_GFX_BRENDAN_SURFING, 8
- .byte MAP_OBJ_GFX_BRENDAN_UNDERWATER, 16
- @ female
- .byte MAP_OBJ_GFX_MAY_NORMAL, 1
- .byte MAP_OBJ_GFX_MAY_MACH_BIKE, 2
- .byte MAP_OBJ_GFX_MAY_ACRO_BIKE, 4
- .byte MAP_OBJ_GFX_MAY_SURFING, 8
- .byte MAP_OBJ_GFX_MAY_UNDERWATER, 16
-
- .align 2
-gUnknown_0830FC78:: @ 830FC78
- .4byte MetatileBehavior_IsSouthArrowWarp
- .4byte MetatileBehavior_IsNorthArrowWarp
- .4byte MetatileBehavior_IsWestArrowWarp
- .4byte MetatileBehavior_IsEastArrowWarp
-
- .align 2
-gUnknown_0830FC88:: @ 830FC88
- .4byte sub_8059E84
- .4byte sub_8059EA4
- .4byte sub_8059F40
-
- .align 2
-gUnknown_0830FC94:: @ 830FC94
- .4byte sub_805A000
-
- .align 2
-gUnknown_0830FC98:: @ 830FC98
- .4byte sub_805A0D8
- .4byte sub_805A100
- .4byte sub_805A178
- .4byte sub_805A1B8
-
-gUnknown_0830FCA8:: @ 830FCA8
- .byte DIR_WEST, DIR_EAST, DIR_NORTH, DIR_SOUTH
-
-gUnknown_0830FCAC:: @ 830FCAC
- .byte 0x10, 0x10, 0x11, 0x12, 0x13
-
- .align 2
-gUnknown_0830FCB4:: @ 830FCB4
- .4byte sub_805A3B4
- .4byte fish1
- .4byte fish2
- .4byte fish3
- .4byte fish4
- .4byte party_menu_update_status_condition_object
- .4byte sub_805A5CC
- .4byte fish7
- .4byte fish8
- .4byte sub_805A6B4
- .4byte sub_805A6DC
- .4byte sub_805A7BC
- .4byte sub_805A808
- .4byte fishD
- .4byte sub_805A874
- .4byte fishF
-
- .align 1
-gUnknown_0830FCF4:: @ 830FCF4
- .2byte 1, 1, 1
-
- .align 1
-gUnknown_0830FCFA:: @ 830FCFA
- .2byte 1, 3, 6
-
-gUnknown_0830FD00:: @ 830FD00
- .string "·$"
-
- .align 1
-gUnknown_0830FD02:: @ 830FD02
- .2byte 36, 33, 30
-
- .align 1
-gUnknown_0830FD08:: @ 830FD08
- .2byte 0, 0, 40, 10, 70, 30
-
-gUnknown_0830FD14:: @ 830FD14
- .byte 1, 1, 6, 7, 8, 9, 6, 7, 8, 9, 11, 11, 0, 0, 0, 0
-
- .align 2
-gSpriteTemplate_830FD24:: @ 830FD24
- spr_template 0, 0xFFFF, gDummyOamData, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, ObjectCB_CameraObject
-
- .align 2
-gUnknown_0830FD3C:: @ 830FD3C
- .4byte CameraObject_0
- .4byte CameraObject_1
- .4byte CameraObject_2
-
-@ 830FD48
- .include "data/graphics/field_objects/map_object_graphics.inc"
-
-@ 8368528
- .include "data/graphics/field_objects/field_effect_object_graphics.inc"
-
- .align 2
-gUnknown_0836DA88:: @ 836DA88
- .4byte sub_805C884
- .4byte sub_805CDE8
- .4byte sub_805C8AC
- .4byte sub_805CF28
- .4byte sub_805CF28
- .4byte sub_805D0AC
- .4byte sub_805D0AC
- .4byte sub_805D230
- .4byte sub_805D230
- .4byte sub_805D230
- .4byte sub_805D230
- .4byte sub_80587B4
- .4byte FieldObjectCB_BerryTree
- .4byte sub_805D4F4
- .4byte sub_805D634
- .4byte sub_805D774
- .4byte sub_805D8B4
- .4byte sub_805D9F4
- .4byte sub_805DB34
- .4byte sub_805DC74
- .4byte sub_805DDB4
- .4byte sub_805DEF4
- .4byte sub_805E034
- .4byte sub_805E174
- .4byte sub_805E278
- .4byte sub_805E37C
- .4byte sub_805E37C
- .4byte sub_805E37C
- .4byte sub_805E37C
- .4byte sub_805E5DC
- .4byte sub_805E668
- .4byte sub_805E6F4
- .4byte sub_805E780
- .4byte sub_805E80C
- .4byte sub_805E898
- .4byte sub_805E924
- .4byte sub_805E9B0
- .4byte sub_805EA3C
- .4byte sub_805EAC8
- .4byte sub_805EB54
- .4byte sub_805EBE0
- .4byte sub_805EC6C
- .4byte sub_805ECF8
- .4byte sub_805ED84
- .4byte sub_805EE10
- .4byte sub_805EE9C
- .4byte sub_805EF28
- .4byte sub_805EFB4
- .4byte sub_805F040
- .4byte sub_805F0CC
- .4byte sub_805F158
- .4byte sub_805F1E4
- .4byte sub_805F270
- .4byte sub_805F2FC
- .4byte sub_805F2FC
- .4byte sub_805F2FC
- .4byte sub_805F2FC
- .4byte FieldObjectCB_TreeDisguise
- .4byte FieldObjectCB_MountainDisguise
- .4byte sub_805F8E0
- .4byte sub_805F8E0
- .4byte sub_805F8E0
- .4byte sub_805F8E0
- .4byte FieldObjectCB_Hidden1
- .4byte sub_805FB20
- .4byte sub_805FB20
- .4byte sub_805FB20
- .4byte sub_805FB20
- .4byte sub_805FB90
- .4byte sub_805FB90
- .4byte sub_805FB90
- .4byte sub_805FB90
- .4byte sub_805FC00
- .4byte sub_805FC00
- .4byte sub_805FC00
- .4byte sub_805FC00
- .4byte sub_805FC70
-
-gUnknown_0836DBBC:: @ 836DBBC
- .byte 0
- .byte 0
- .byte 1
- .byte 1
- .byte 1
- .byte 1
- .byte 1
- .byte 0
- .byte 0
- .byte 0
- .byte 0
- .byte 0
- .byte 0
- .byte 0
- .byte 0
- .byte 0
- .byte 0
- .byte 0
- .byte 0
- .byte 0
- .byte 0
- .byte 0
- .byte 0
- .byte 0
- .byte 0
- .byte 1
- .byte 1
- .byte 1
- .byte 1
- .byte 1
- .byte 1
- .byte 1
- .byte 1
- .byte 1
- .byte 1
- .byte 1
- .byte 1
- .byte 1
- .byte 1
- .byte 1
- .byte 1
- .byte 1
- .byte 1
- .byte 1
- .byte 1
- .byte 1
- .byte 1
- .byte 1
- .byte 1
- .byte 1
- .byte 1
- .byte 1
- .byte 1
- .byte 1
- .byte 1
- .byte 1
- .byte 1
- .byte 0
- .byte 0
- .byte 1
- .byte 1
- .byte 1
- .byte 1
- .byte 0
- .byte 0
- .byte 0
- .byte 0
- .byte 0
- .byte 0
- .byte 0
- .byte 0
- .byte 0
- .byte 0
- .byte 0
- .byte 0
- .byte 0
- .byte 0
-
-gUnknown_0836DC09:: @ 836DC09
- .byte DIR_SOUTH
- .byte DIR_SOUTH
- .byte DIR_SOUTH
- .byte DIR_NORTH
- .byte DIR_SOUTH
- .byte DIR_WEST
- .byte DIR_EAST
- .byte DIR_NORTH
- .byte DIR_SOUTH
- .byte DIR_WEST
- .byte DIR_EAST
- .byte DIR_SOUTH
- .byte DIR_SOUTH
- .byte DIR_SOUTH
- .byte DIR_WEST
- .byte DIR_NORTH
- .byte DIR_NORTH
- .byte DIR_SOUTH
- .byte DIR_SOUTH
- .byte DIR_SOUTH
- .byte DIR_SOUTH
- .byte DIR_NORTH
- .byte DIR_SOUTH
- .byte DIR_SOUTH
- .byte DIR_SOUTH
- .byte DIR_NORTH
- .byte DIR_SOUTH
- .byte DIR_WEST
- .byte DIR_EAST
- .byte DIR_NORTH
- .byte DIR_EAST
- .byte DIR_SOUTH
- .byte DIR_WEST
- .byte DIR_NORTH
- .byte DIR_WEST
- .byte DIR_SOUTH
- .byte DIR_EAST
- .byte DIR_WEST
- .byte DIR_NORTH
- .byte DIR_EAST
- .byte DIR_SOUTH
- .byte DIR_EAST
- .byte DIR_NORTH
- .byte DIR_WEST
- .byte DIR_SOUTH
- .byte DIR_NORTH
- .byte DIR_SOUTH
- .byte DIR_WEST
- .byte DIR_EAST
- .byte DIR_NORTH
- .byte DIR_SOUTH
- .byte DIR_WEST
- .byte DIR_EAST
- .byte DIR_NORTH
- .byte DIR_SOUTH
- .byte DIR_WEST
- .byte DIR_EAST
- .byte DIR_SOUTH
- .byte DIR_SOUTH
- .byte DIR_NORTH
- .byte DIR_SOUTH
- .byte DIR_WEST
- .byte DIR_EAST
- .byte DIR_SOUTH
- .byte DIR_SOUTH
- .byte DIR_NORTH
- .byte DIR_WEST
- .byte DIR_EAST
- .byte DIR_SOUTH
- .byte DIR_NORTH
- .byte DIR_WEST
- .byte DIR_EAST
- .byte DIR_SOUTH
- .byte DIR_NORTH
- .byte DIR_WEST
- .byte DIR_EAST
- .byte DIR_SOUTH
-
-@ 836DC58
- .include "data/graphics/field_objects/map_object_graphics_info_pointers.inc"
-
-@ 836DFC0
- .include "data/graphics/field_objects/field_effect_object_template_pointers.inc"
-
-@ 836E050
- .include "data/graphics/field_objects/map_object_pic_tables.inc"
-
-@ 83708C8
- .include "data/graphics/field_objects/map_object_anims.inc"
-
-@ 83711C4
- .include "data/graphics/field_objects/base_oam.inc"
-
-@ 8371204
- .include "data/graphics/field_objects/map_object_subsprites.inc"
-
-@ 83718D4
- .include "data/graphics/field_objects/map_object_graphics_info.inc"
-
- .align 2
-gUnknown_0837377C:: @ 837377C
- obj_pal gMapObjectPalette0, 0x1103
- obj_pal gMapObjectPalette1, 0x1104
- obj_pal gMapObjectPalette2, 0x1105
- obj_pal gMapObjectPalette3, 0x1106
- obj_pal gMapObjectPalette4, 0x1107
- obj_pal gMapObjectPalette5, 0x1108
- obj_pal gMapObjectPalette6, 0x1109
- obj_pal gMapObjectPalette7, 0x110A
- obj_pal gMapObjectPalette8, 0x1100
- obj_pal gMapObjectPalette9, 0x1101
- obj_pal gMapObjectPalette10, 0x1102
- obj_pal gMapObjectPalette11, 0x1115
- obj_pal gMapObjectPalette12, 0x110B
- obj_pal gMapObjectPalette13, 0x110C
- obj_pal gMapObjectPalette14, 0x110D
- obj_pal gMapObjectPalette15, 0x110E
- obj_pal gMapObjectPalette16, 0x110F
- obj_pal gMapObjectPalette17, 0x1110
- obj_pal gMapObjectPalette18, 0x1111
- obj_pal gMapObjectPalette19, 0x1112
- obj_pal gMapObjectPalette20, 0x1113
- obj_pal gMapObjectPalette21, 0x1114
- obj_pal gMapObjectPalette22, 0x1116
- obj_pal gMapObjectPalette23, 0x1117
- obj_pal gMapObjectPalette24, 0x1118
- obj_pal gMapObjectPalette25, 0x1119
- obj_pal gMapObjectPalette26, 0x111A
- null_obj_pal
-
- .align 1
-Palettes_837385C:
- .2byte 0x1101
- .2byte 0x1101
- .2byte 0x1101
- .2byte 0x1101
-
- @ unused?
- .2byte 0x1111
- .2byte 0x1111
- .2byte 0x1111
- .2byte 0x1111
-
- .align 1
-Palettes_837386C:
- .2byte 0x1115
- .2byte 0x1115
- .2byte 0x1115
- .2byte 0x1115
-
- .align 2
-gUnknown_08373874:: @ 8373874
- paired_pals 0x1100, Palettes_837385C
- paired_pals 0x1110, Palettes_837385C
- paired_pals 0x1115, Palettes_837386C
- paired_pals 0x11FF, NULL
-
- .align 1
-Palettes_8373894:
- .2byte 0x110C
- .2byte 0x110C
- .2byte 0x110C
- .2byte 0x110C
-
- .align 1
-Palettes_837389C:
- .2byte 0x110D
- .2byte 0x110D
- .2byte 0x110D
- .2byte 0x110D
-
- .align 1
-Palettes_83738A4:
- .2byte 0x110E
- .2byte 0x110E
- .2byte 0x110E
- .2byte 0x110E
-
- .align 1
-Palettes_83738AC:
- .2byte 0x1112
- .2byte 0x1112
- .2byte 0x1112
- .2byte 0x1112
-
- .align 1
-Palettes_83738B4:
- .2byte 0x1113
- .2byte 0x1113
- .2byte 0x1113
- .2byte 0x1113
-
- .align 1
-Palettes_83738BC:
- .2byte 0x1114
- .2byte 0x1114
- .2byte 0x1114
- .2byte 0x1114
-
- .align 1
-Palettes_83738C4:
- .2byte 0x111A
- .2byte 0x111A
- .2byte 0x111A
- .2byte 0x111A
-
- .align 1
-Palettes_83738CC:
- .2byte 0x1117
- .2byte 0x1117
- .2byte 0x1117
- .2byte 0x1117
-
- .align 1
-Palettes_83738D4:
- .2byte 0x1119
- .2byte 0x1119
- .2byte 0x1119
- .2byte 0x1119
-
- .align 1
-Palettes_83738DC:
- .2byte 0x1109
- .2byte 0x1109
- .2byte 0x1109
- .2byte 0x1109
-
- .align 2
-gUnknown_083738E4:: @ 83738E4
- paired_pals 0x1100, Palettes_837385C
- paired_pals 0x1110, Palettes_837385C
- paired_pals 0x110B, Palettes_8373894
- paired_pals 0x110D, Palettes_837389C
- paired_pals 0x110E, Palettes_83738A4
- paired_pals 0x1112, Palettes_83738AC
- paired_pals 0x1113, Palettes_83738B4
- paired_pals 0x1114, Palettes_83738BC
- paired_pals 0x1116, Palettes_83738CC
- paired_pals 0x1118, Palettes_83738D4
- paired_pals 0x1105, Palettes_83738DC
- paired_pals 0x111A, Palettes_83738C4
- paired_pals 0x11FF, NULL
-
- .align 1
-Unknown_837394C:
- .2byte 0x1100
- .2byte 0x1101
- .2byte 0x1103
- .2byte 0x1104
- .2byte 0x1105
- .2byte 0x1106
- .2byte 0x1107
- .2byte 0x1108
- .2byte 0x1109
- .2byte 0x110A
-
- .align 1
-Unknown_8373960:
- .2byte 0x1100
- .2byte 0x1101
- .2byte 0x1103
- .2byte 0x1104
- .2byte 0x1105
- .2byte 0x1106
- .2byte 0x1107
- .2byte 0x1108
- .2byte 0x1109
- .2byte 0x110A
-
- .align 1
-Unknown_8373974:
- .2byte 0x1100
- .2byte 0x1101
- .2byte 0x1103
- .2byte 0x1104
- .2byte 0x1105
- .2byte 0x1106
- .2byte 0x1107
- .2byte 0x1108
- .2byte 0x1109
- .2byte 0x110A
-
- .align 1
-Unknown_8373988:
- .2byte 0x1100
- .2byte 0x1101
- .2byte 0x1103
- .2byte 0x1104
- .2byte 0x1105
- .2byte 0x1106
- .2byte 0x1107
- .2byte 0x1108
- .2byte 0x1109
- .2byte 0x110A
-
- .align 2
-gUnknown_0837399C:: @ 837399C
- .4byte Unknown_837394C
- .4byte Unknown_8373960
- .4byte Unknown_8373974
- .4byte Unknown_8373988
-
-@ 83739AC
- .include "data/graphics/field_objects/berry_tree_graphics_tables.inc"
-
-@ 8374524
- .include "data/graphics/field_objects/field_effect_objects.inc"
-
- .align 1
-gUnknown_0837520C:: @ 837520C
- .2byte 0x20, 0x40, 0x60, 0x80, 0x20, 0x40, 0x80, 0xC0
-
- .align 1
-gUnknown_0837521C:: @ 837521C
- .2byte 0x20, 0x30, 0x40, 0x50
-
- .align 2
-gUnknown_08375224:: @ 8375224
- .4byte sub_805C8F0
- .4byte sub_805C904
- .4byte sub_805C930
- .4byte sub_805C96C
- .4byte sub_805C98C
- .4byte sub_805C9D8
- .4byte sub_805CA08
-
-gUnknown_08375240:: @ 8375240
- .byte DIR_SOUTH, DIR_NORTH, DIR_WEST, DIR_EAST
-
- .align 2
-gUnknown_08375244:: @ 8375244
- .4byte sub_805CAAC
- .4byte sub_805CADC
- .4byte sub_805CAEC
- .4byte sub_805CB00
- .4byte sub_805CB5C
- .4byte sub_805CBB8
- .4byte sub_805CC14
- .4byte sub_805CC70
- .4byte sub_805CCAC
- .4byte sub_805CCE8
- .4byte sub_805CD24
-
- .align 2
-gUnknown_08375270:: @ 8375270
- .4byte sub_805CE2C
- .4byte sub_805CE40
- .4byte sub_805CE6C
- .4byte sub_805CEB0
- .4byte sub_805CEE0
-
- .align 2
-gUnknown_08375284:: @ 8375284
- .4byte sub_805CF6C
- .4byte sub_805CF80
- .4byte sub_805CFAC
- .4byte sub_805CFE8
- .4byte sub_805D008
- .4byte sub_805D054
- .4byte sub_805D084
-
-gUnknown_083752A0:: @ 83752A0
- .byte DIR_SOUTH, DIR_NORTH
-
- .align 2
-gUnknown_083752A4:: @ 83752A4
- .4byte sub_805D0F0
- .4byte sub_805D104
- .4byte sub_805D130
- .4byte sub_805D16C
- .4byte sub_805D18C
- .4byte sub_805D1D8
- .4byte sub_805D208
-
-gUnknown_083752C0:: @ 83752C0
- .byte DIR_WEST, DIR_EAST
-
- .align 2
-gUnknown_083752C4:: @ 83752C4
- .4byte sub_805D274
- .4byte sub_805D2A0
- .4byte sub_805D2C0
-
- .align 2
-gUnknown_083752D0:: @ 83752D0
- .4byte do_berry_tree_growth_sparkle_1
- .4byte sub_805D3EC
- .4byte do_berry_tree_growth_sparkle_2
- .4byte sub_805D458
- .4byte sub_805D4A8
-
- .align 2
-gUnknown_083752E4:: @ 83752E4
- .4byte sub_805D538
- .4byte sub_805D54C
- .4byte sub_805D578
- .4byte sub_805D5BC
- .4byte sub_805D5EC
-
- .align 2
-gUnknown_083752F8:: @ 83752F8
- .4byte sub_805D678
- .4byte sub_805D68C
- .4byte sub_805D6B8
- .4byte sub_805D6FC
- .4byte sub_805D72C
-
- .align 2
-gUnknown_0837530C:: @ 837530C
- .4byte sub_805D7B8
- .4byte sub_805D7CC
- .4byte sub_805D7F8
- .4byte sub_805D83C
- .4byte sub_805D86C
-
-gUnknown_08375320:: @ 8375320
- .byte DIR_NORTH, DIR_WEST
-
- .align 2
-gUnknown_08375324:: @ 8375324
- .4byte sub_805D8F8
- .4byte sub_805D90C
- .4byte sub_805D938
- .4byte sub_805D97C
- .4byte sub_805D9AC
-
-gUnknown_08375338:: @ 8375338
- .byte DIR_NORTH, DIR_EAST
-
- .align 2
-gUnknown_0837533C:: @ 837533C
- .4byte sub_805DA38
- .4byte sub_805DA4C
- .4byte sub_805DA78
- .4byte sub_805DABC
- .4byte sub_805DAEC
-
-gUnknown_08375350:: @ 8375350
- .byte DIR_SOUTH, DIR_WEST
-
- .align 2
-gUnknown_08375354:: @ 8375354
- .4byte sub_805DB78
- .4byte sub_805DB8C
- .4byte sub_805DBB8
- .4byte sub_805DBFC
- .4byte sub_805DC2C
-
-gUnknown_08375368:: @ 8375368
- .byte DIR_SOUTH, DIR_EAST
-
- .align 2
-gUnknown_0837536C:: @ 837536C
- .4byte sub_805DCB8
- .4byte sub_805DCCC
- .4byte sub_805DCF8
- .4byte sub_805DD3C
- .4byte sub_805DD6C
-
-gUnknown_08375380:: @ 8375380
- .byte DIR_NORTH, DIR_SOUTH, DIR_WEST, DIR_SOUTH
-
- .align 2
-gUnknown_08375384:: @ 8375384
- .4byte sub_805DDF8
- .4byte sub_805DE0C
- .4byte sub_805DE38
- .4byte sub_805DE7C
- .4byte sub_805DEAC
-
-gUnknown_08375398:: @ 8375398
- .byte DIR_SOUTH, DIR_NORTH, DIR_EAST, DIR_SOUTH
-
- .align 2
-gUnknown_0837539C:: @ 837539C
- .4byte sub_805DF38
- .4byte sub_805DF4C
- .4byte sub_805DF78
- .4byte sub_805DFBC
- .4byte sub_805DFEC
-
-gUnknown_083753B0:: @ 83753B0
- .byte DIR_NORTH, DIR_WEST, DIR_EAST, DIR_NORTH
-
- .align 2
-gUnknown_083753B4:: @ 83753B4
- .4byte sub_805E078
- .4byte sub_805E08C
- .4byte sub_805E0B8
- .4byte sub_805E0FC
- .4byte sub_805E12C
-
-gUnknown_083753C8:: @ 83753C8
- .byte DIR_WEST, DIR_EAST, DIR_SOUTH, DIR_SOUTH
-
- .align 2
-gUnknown_083753CC:: @ 83753CC
- .4byte sub_805E1B8
- .4byte sub_805E1E4
- .4byte sub_805E208
- .4byte sub_805E234
-
-gUnknown_083753DC:: @ 83753DC
- .byte DIR_SOUTH, DIR_EAST, DIR_WEST, DIR_SOUTH, DIR_NORTH
-
- .align 2
-gUnknown_083753E4:: @ 83753E4
- .4byte sub_805E2BC
- .4byte sub_805E2E8
- .4byte sub_805E30C
- .4byte sub_805E338
-
-gUnknown_083753F4:: @ 83753F4
- .byte DIR_SOUTH, DIR_WEST, DIR_EAST, DIR_NORTH, DIR_SOUTH
-
- .align 2
-gUnknown_083753FC:: @ 83753FC
- .4byte sub_805E3C0
- .4byte sub_805E3D4
- .4byte sub_805E40C
- .4byte sub_805E4C4
-
- .align 2
-gUnknown_0837540C:: @ 837540C
- .4byte sub_805E4EC
- .4byte sub_805E620
- .4byte sub_805E5B4
-
-gUnknown_08375418:: @ 8375418
- .byte DIR_NORTH, DIR_EAST, DIR_WEST, DIR_SOUTH
-
- .align 2
-gUnknown_0837541C:: @ 837541C
- .4byte sub_805E4EC
- .4byte sub_805E6AC
- .4byte sub_805E5B4
-
- .align 2
-gUnknown_08375428:: @ 8375428
- .byte DIR_EAST, DIR_WEST, DIR_SOUTH, DIR_NORTH
-
-gUnknown_0837542C:: @ 837542C
- .4byte sub_805E4EC
- .4byte sub_805E738
- .4byte sub_805E5B4
-
-gUnknown_08375438:: @ 8375438
- .byte DIR_SOUTH, DIR_NORTH, DIR_EAST, DIR_WEST
-
- .align 2
-gUnknown_0837543C:: @ 837543C
- .4byte sub_805E4EC
- .4byte sub_805E7C4
- .4byte sub_805E5B4
-
-gUnknown_08375448:: @ 8375448
- .byte DIR_WEST, DIR_SOUTH, DIR_NORTH, DIR_EAST
-
- .align 2
-gUnknown_0837544C:: @ 837544C
- .4byte sub_805E4EC
- .4byte sub_805E850
- .4byte sub_805E5B4
-
-gUnknown_08375458:: @ 8375458
- .byte DIR_NORTH, DIR_WEST, DIR_EAST, DIR_SOUTH
-
- .align 2
-gUnknown_0837545C:: @ 837545C
- .4byte sub_805E4EC
- .4byte sub_805E8DC
- .4byte sub_805E5B4
-
-gUnknown_08375468:: @ 8375468
- .byte DIR_WEST, DIR_EAST, DIR_SOUTH, DIR_NORTH
-
- .align 2
-gUnknown_0837546C:: @ 837546C
- .4byte sub_805E4EC
- .4byte sub_805E968
- .4byte sub_805E5B4
-
- .align 2
-gUnknown_08375478:: @ 8375478
- .4byte sub_805E4EC
- .4byte sub_805E9F4
- .4byte sub_805E5B4
-
-gUnknown_08375484:: @ 8375484
- .byte DIR_EAST, DIR_SOUTH, DIR_NORTH, DIR_WEST
-
- .align 2
-gUnknown_08375488:: @ 8375488
- .4byte sub_805E4EC
- .4byte sub_805EA80
- .4byte sub_805E5B4
-
-gUnknown_08375494:: @ 8375494
- .byte DIR_WEST, DIR_NORTH, DIR_SOUTH, DIR_EAST
-
- .align 2
-gUnknown_08375498:: @ 8375498
- .4byte sub_805E4EC
- .4byte sub_805EB0C
- .4byte sub_805E5B4
-
-gUnknown_083754A4:: @ 83754A4
- .byte DIR_NORTH, DIR_SOUTH, DIR_EAST, DIR_WEST
-
- .align 2
-gUnknown_083754A8:: @ 83754A8
- .4byte sub_805E4EC
- .4byte sub_805EB98
- .4byte sub_805E5B4
-
-gUnknown_083754B4:: @ 83754B4
- .byte DIR_EAST, DIR_WEST, DIR_NORTH, DIR_SOUTH
-
- .align 2
-gUnknown_083754B8:: @ 83754B8
- .4byte sub_805E4EC
- .4byte sub_805EC24
- .4byte sub_805E5B4
-
-gUnknown_083754C4:: @ 83754C4
- .byte DIR_SOUTH, DIR_EAST, DIR_WEST, DIR_NORTH
-
- .align 2
-gUnknown_083754C8:: @ 83754C8
- .4byte sub_805E4EC
- .4byte sub_805ECB0
- .4byte sub_805E5B4
-
-gUnknown_083754D4:: @ 83754D4
- .byte DIR_EAST, DIR_NORTH, DIR_SOUTH, DIR_WEST
-
- .align 2
-gUnknown_083754D8:: @ 83754D8
- .4byte sub_805E4EC
- .4byte sub_805ED3C
- .4byte sub_805E5B4
-
-gUnknown_083754E4:: @ 83754E4
- .byte DIR_NORTH, DIR_SOUTH, DIR_WEST, DIR_EAST
-
- .align 2
-gUnknown_083754E8:: @ 83754E8
- .4byte sub_805E4EC
- .4byte sub_805EDC8
- .4byte sub_805E5B4
-
-gUnknown_083754F4:: @ 83754F4
- .byte DIR_WEST, DIR_EAST, DIR_NORTH, DIR_SOUTH
-
- .align 2
-gUnknown_083754F8:: @ 83754F8
- .4byte sub_805E4EC
- .4byte sub_805EE54
- .4byte sub_805E5B4
-
-gUnknown_08375504:: @ 8375504
- .byte DIR_SOUTH, DIR_WEST, DIR_EAST, DIR_NORTH
-
- .align 2
-gUnknown_08375508:: @ 8375508
- .4byte sub_805E4EC
- .4byte sub_805EEE0
- .4byte sub_805E5B4
-
-gUnknown_08375514:: @ 8375514
- .byte DIR_NORTH, DIR_WEST, DIR_SOUTH, DIR_EAST
-
- .align 2
-gUnknown_08375518:: @ 8375518
- .4byte sub_805E4EC
- .4byte sub_805EF6C
- .4byte sub_805E5B4
-
-gUnknown_08375524:: @ 8375524
- .byte DIR_SOUTH, DIR_EAST, DIR_NORTH, DIR_WEST
-
- .align 2
-gUnknown_08375528:: @ 8375528
- .4byte sub_805E4EC
- .4byte sub_805EFF8
- .4byte sub_805E5B4
-
-gUnknown_08375534:: @ 8375534
- .byte DIR_WEST, DIR_SOUTH, DIR_EAST, DIR_NORTH
-
- .align 2
-gUnknown_08375538:: @ 8375538
- .4byte sub_805E4EC
- .4byte sub_805F084
- .4byte sub_805E5B4
-
-gUnknown_08375544:: @ 8375544
- .byte DIR_EAST, DIR_NORTH, DIR_WEST, DIR_SOUTH
-
- .align 2
-gUnknown_08375548:: @ 8375548
- .4byte sub_805E4EC
- .4byte sub_805F110
- .4byte sub_805E5B4
-
-gUnknown_08375554:: @ 8375554
- .byte DIR_NORTH, DIR_EAST, DIR_SOUTH, DIR_WEST
-
- .align 2
-gUnknown_08375558:: @ 8375558
- .4byte sub_805E4EC
- .4byte sub_805F19C
- .4byte sub_805E5B4
-
-gUnknown_08375564:: @ 8375564
- .byte DIR_SOUTH, DIR_WEST, DIR_NORTH, DIR_EAST
-
- .align 2
-gUnknown_08375568:: @ 8375568
- .4byte sub_805E4EC
- .4byte sub_805F228
- .4byte sub_805E5B4
-
-gUnknown_08375574:: @ 8375574
- .byte DIR_WEST, DIR_NORTH, DIR_EAST, DIR_SOUTH
-
- .align 2
-gUnknown_08375578:: @ 8375578
- .4byte sub_805E4EC
- .4byte sub_805F2B4
- .4byte sub_805E5B4
-
- .align 2
-gUnknown_08375584:: @ 8375584
- .byte DIR_EAST, DIR_SOUTH, DIR_WEST, DIR_NORTH
-
- .align 2
-gUnknown_08375588:: @ 8375588
- .4byte mss_npc_reset_oampriv3_1_unk2_unk3
- .4byte sub_805F364
- .4byte sub_805F3C4
-
- .align 2
-gUnknown_08375594:: @ 8375594
- .4byte sub_805F3EC
- .4byte sub_805F3F0
- .4byte sub_805F438
- .4byte sub_805F4F0
- .4byte sub_805F5A8
- .4byte sub_805F660
- .4byte cph_IM_DIFFERENT
- .4byte sub_805F760
- .4byte oac_hopping
- .4byte sub_805F3EC
- .4byte sub_805F3EC
-
- .align 2
-gUnknown_083755C0:: @ 83755C0
- .4byte mss_npc_reset_oampriv3_1_unk2_unk3
- .4byte mss_08062EA4
- .4byte sub_805F3C4
-
- .align 2
-gUnknown_083755CC:: @ 83755CC
- .4byte sub_805FAF8
-
- .align 2
-gUnknown_083755D0:: @ 83755D0
- .4byte sub_805FB64
- .4byte sub_805FB04
-
- .align 2
-gUnknown_083755D8:: @ 83755D8
- .4byte sub_805FBD4
- .4byte sub_805FB04
-
- .align 2
-gUnknown_083755E0:: @ 83755E0
- .4byte sub_805FC44
- .4byte sub_805FB04
-
- .align 2
-gUnknown_083755E8:: @ 83755E8
- .4byte sub_805FCB4
- .4byte sub_805FCE8
- .4byte sub_805FD08
-
-gUnknown_083755F4:: @ 83755F4
- .byte 0x00, 0x00, 0x01, 0x02, 0x03, 0x00, 0x00, 0x01, 0x01
-
-gUnknown_083755FD:: @ 83755FD
- .byte 0x04, 0x04, 0x05, 0x06, 0x07, 0x04, 0x04, 0x05, 0x05
-
-gUnknown_08375606:: @ 8375606
- .byte 0x08, 0x08, 0x09, 0x0A, 0x0B, 0x08, 0x08, 0x09, 0x09
-
-gUnknown_0837560F:: @ 837560F
- .byte 0x0C, 0x0C, 0x0D, 0x0E, 0x0F, 0x0C, 0x0C, 0x0D, 0x0D
-
-gUnknown_08375618:: @ 8375618
- .byte 0x10, 0x10, 0x11, 0x12, 0x13, 0x10, 0x10, 0x11, 0x11
-
-gUnknown_08375621:: @ 8375621
- .byte 0x14, 0x14, 0x15, 0x16, 0x17, 0x14, 0x14, 0x15, 0x15
-
-gUnknown_0837562A:: @ 837562A
- .byte 0x14, 0x14, 0x15, 0x16, 0x17, 0x14, 0x14, 0x15, 0x15
-
-gUnknown_08375633:: @ 8375633
- .byte 0x18, 0x18, 0x19, 0x1A, 0x1B, 0x18, 0x18, 0x19, 0x19
-
-gUnknown_0837563C:: @ 837563C
- .byte 0x1C, 0x1C, 0x1D, 0x1E, 0x1F, 0x1C, 0x1C, 0x1D, 0x1D
-
-gUnknown_08375645:: @ 8375645
- .byte 0x20, 0x20, 0x21, 0x22, 0x23, 0x20, 0x20, 0x21, 0x21
-
-gUnknown_0837564E:: @ 837564E
- .byte 0x24, 0x24, 0x25, 0x26, 0x27, 0x24, 0x24, 0x25, 0x25
-
-gUnknown_08375657:: @ 8375657
- .byte 0x00, 0x00, 0x01, 0x02, 0x03, 0x00, 0x00, 0x01, 0x01
-
-gUnknown_08375660:: @ 8375660
- .byte 0x04, 0x04, 0x05, 0x06, 0x07, 0x04, 0x04, 0x05, 0x05
-
-gUnknown_08375669:: @ 8375669
- .byte 0x08, 0x08, 0x09, 0x0A, 0x0B, 0x08, 0x08, 0x09, 0x09
-
-gUnknown_08375672:: @ 8375672
- .byte 0x14, 0x14, 0x15, 0x16, 0x17, 0x14, 0x14, 0x15, 0x15
-
-gUnknown_0837567B:: @ 837567B
- .byte 0x08, 0x08, 0x07, 0x09, 0x0A, 0x08, 0x08, 0x07, 0x07
-
- .align 2
-gUnknown_08375684:: @ 8375684
- .4byte MetatileBehavior_IsSouthBlocked
- .4byte MetatileBehavior_IsNorthBlocked
- .4byte MetatileBehavior_IsWestBlocked
- .4byte MetatileBehavior_IsEastBlocked
-
- .align 2
-gUnknown_08375694:: @ 8375694
- .4byte MetatileBehavior_IsNorthBlocked
- .4byte MetatileBehavior_IsSouthBlocked
- .4byte MetatileBehavior_IsEastBlocked
- .4byte MetatileBehavior_IsWestBlocked
-
- .align 1
-gDirectionToVector:: @ 83756A4
- .2byte 0, 0
- .2byte 0, 1
- .2byte 0, -1
- .2byte -1, 0
- .2byte 1, 0
- .2byte -1, 1
- .2byte 1, 1
- .2byte -1, -1
- .2byte 1, -1
-
-gUnknown_083756C8:: @ 83756C8
- .byte 0x00, 0x00, 0x01, 0x02, 0x03
-
-gUnknown_083756CD:: @ 83756CD
- .byte 0x04, 0x04, 0x05, 0x06, 0x07
-
-gUnknown_083756D2:: @ 83756D2
- .byte 0x08, 0x08, 0x09, 0x0A, 0x0B
-
-gUnknown_083756D7:: @ 83756D7
- .byte 0x15, 0x15, 0x16, 0x17, 0x18
-
-gUnknown_083756DC:: @ 83756DC
- .byte 0x29, 0x29, 0x2A, 0x2B, 0x2C
-
-gUnknown_083756E1:: @ 83756E1
- .byte 0x2D, 0x2D, 0x2E, 0x2F, 0x30
-
-gUnknown_083756E6:: @ 83756E6
- .byte 0x31, 0x31, 0x32, 0x33, 0x34
-
-gUnknown_083756EB:: @ 83756EB
- .byte 0x35, 0x35, 0x36, 0x37, 0x38
-
-gUnknown_083756F0:: @ 83756F0
- .byte 0x0C, 0x0C, 0x0D, 0x0E, 0x0F
-
-gUnknown_083756F5:: @ 83756F5
- .byte 0x46, 0x46, 0x47, 0x48, 0x49
-
-gUnknown_083756FA:: @ 83756FA
- .byte 0x4B, 0x4B, 0x4A, 0x4D, 0x4C
-
-gUnknown_083756FF:: @ 83756FF
- .byte 0x42, 0x42, 0x43, 0x44, 0x45
-
-gUnknown_08375704:: @ 8375704
- .byte 0x3A, 0x3A, 0x3B, 0x3C, 0x3D
-
-gUnknown_08375709:: @ 8375709
- .byte 0x19, 0x19, 0x1A, 0x1B, 0x1C
-
-gUnknown_0837570E:: @ 837570E
- .byte 0x1D, 0x1D, 0x1E, 0x1F, 0x20
-
-gUnknown_08375713:: @ 8375713
- .byte 0x21, 0x21, 0x22, 0x23, 0x24
-
-gUnknown_08375718:: @ 8375718
- .byte 0x25, 0x25, 0x26, 0x27, 0x28
-
-gUnknown_0837571D:: @ 837571D
- .byte 0x62, 0x62, 0x63, 0x64, 0x65
-
-gUnknown_08375722:: @ 8375722
- .byte 0x66, 0x66, 0x67, 0x68, 0x69
-
-gUnknown_08375727:: @ 8375727
- .byte 0x6A, 0x6A, 0x6B, 0x6C, 0x6D
-
-gUnknown_0837572C:: @ 837572C
- .byte 0x6E, 0x6E, 0x6F, 0x70, 0x71
-
-gUnknown_08375731:: @ 8375731
- .byte 0x72, 0x72, 0x73, 0x74, 0x75
-
-gUnknown_08375736:: @ 8375736
- .byte 0x76, 0x76, 0x77, 0x78, 0x79
-
-gUnknown_0837573B:: @ 837573B
- .byte 0x7A, 0x7A, 0x7B, 0x7C, 0x7D
-
-gUnknown_08375740:: @ 8375740
- .byte 0x7E, 0x7E, 0x7F, 0x80, 0x81
-
-gUnknown_08375745:: @ 8375745
- .byte 0x82, 0x82, 0x83, 0x84, 0x85
-
-gUnknown_0837574A:: @ 837574A
- .byte 0x86, 0x86, 0x87, 0x88, 0x89
-
-gUnknown_0837574F:: @ 837574F
- .byte 2, 1, 4, 3, 8, 7, 6, 5
-
-gUnknown_08375757:: @ 8375757
- .byte 2, 1, 4, 3, 1, 2, 3, 4, 3, 4, 2, 1, 4, 3, 1, 2
-
-gUnknown_08375767:: @ 8375767
- .byte 2, 1, 4, 3, 1, 2, 3, 4, 4, 3, 1, 2, 3, 4, 2, 1
-
- .align 2
-gUnknown_08375778:: @ 8375778
- .4byte Unknown_83759A0
- .4byte Unknown_83759A8
- .4byte Unknown_83759B0
- .4byte Unknown_83759B8
- .4byte Unknown_83759D4
- .4byte Unknown_83759E0
- .4byte Unknown_83759EC
- .4byte Unknown_83759F8
- .4byte Unknown_8375A04
- .4byte Unknown_8375A10
- .4byte Unknown_8375A1C
- .4byte Unknown_8375A28
- .4byte Unknown_8375A40
- .4byte Unknown_8375A4C
- .4byte Unknown_8375A58
- .4byte Unknown_8375A64
- .4byte Unknown_8375A70
- .4byte Unknown_8375A7C
- .4byte Unknown_8375A88
- .4byte Unknown_8375A94
- .4byte Unknown_8375AA0
- .4byte Unknown_8375AAC
- .4byte Unknown_8375AB8
- .4byte Unknown_8375AC4
- .4byte Unknown_8375AD0
- .4byte Unknown_8375ADC
- .4byte Unknown_8375AE8
- .4byte Unknown_8375AF4
- .4byte Unknown_8375B00
- .4byte Unknown_8375B0C
- .4byte Unknown_8375B18
- .4byte Unknown_8375B24
- .4byte Unknown_8375B30
- .4byte Unknown_8375B3C
- .4byte Unknown_8375B48
- .4byte Unknown_8375B54
- .4byte Unknown_8375B60
- .4byte Unknown_8375B6C
- .4byte Unknown_8375B78
- .4byte Unknown_8375B84
- .4byte Unknown_8375B90
- .4byte Unknown_8375B9C
- .4byte Unknown_8375BA8
- .4byte Unknown_8375BB4
- .4byte Unknown_8375BC0
- .4byte Unknown_8375BCC
- .4byte Unknown_8375BD8
- .4byte Unknown_8375BE4
- .4byte Unknown_8375BF0
- .4byte Unknown_8375BFC
- .4byte Unknown_8375C08
- .4byte Unknown_8375C14
- .4byte Unknown_8375C20
- .4byte Unknown_8375C2C
- .4byte Unknown_8375C38
- .4byte Unknown_8375C44
- .4byte Unknown_8375C50
- .4byte Unknown_8375C5C
- .4byte Unknown_8375C68
- .4byte Unknown_8375C74
- .4byte Unknown_8375C80
- .4byte Unknown_8375C8C
- .4byte Unknown_8375C98
- .4byte Unknown_8375CA0
- .4byte Unknown_8375CA8
- .4byte Unknown_8375CB0
- .4byte Unknown_8375CB8
- .4byte Unknown_8375CC4
- .4byte Unknown_8375CD0
- .4byte Unknown_8375CDC
- .4byte Unknown_8375CE8
- .4byte Unknown_8375CF4
- .4byte Unknown_8375D00
- .4byte Unknown_8375D0C
- .4byte Unknown_8375D18
- .4byte Unknown_8375D24
- .4byte Unknown_8375D30
- .4byte Unknown_8375D3C
- .4byte Unknown_8375D48
- .4byte Unknown_8375D50
- .4byte Unknown_8375D5C
- .4byte Unknown_8375D64
- .4byte Unknown_8375D6C
- .4byte Unknown_8375D74
- .4byte Unknown_8375D7C
- .4byte Unknown_8375D84
- .4byte Unknown_8375D8C
- .4byte Unknown_8375D94
- .4byte Unknown_8375D9C
- .4byte Unknown_8375DA4
- .4byte Unknown_8375DB0
- .4byte Unknown_8375DC0
- .4byte Unknown_8375DD0
- .4byte Unknown_8375DD8
- .4byte Unknown_8375DE0
- .4byte Unknown_8375DE8
- .4byte Unknown_8375DF0
- .4byte Unknown_8375DFC
- .4byte Unknown_8375E08
- .4byte Unknown_8375E10
- .4byte Unknown_8375E18
- .4byte Unknown_8375E20
- .4byte Unknown_8375E28
- .4byte Unknown_8375E34
- .4byte Unknown_8375E40
- .4byte Unknown_8375E4C
- .4byte Unknown_8375E58
- .4byte Unknown_8375E64
- .4byte Unknown_8375E70
- .4byte Unknown_8375E7C
- .4byte Unknown_8375EB8
- .4byte Unknown_8375EC4
- .4byte Unknown_8375ED0
- .4byte Unknown_8375EDC
- .4byte Unknown_8375EE8
- .4byte Unknown_8375EF4
- .4byte Unknown_8375F00
- .4byte Unknown_8375F0C
- .4byte Unknown_8375F18
- .4byte Unknown_8375F24
- .4byte Unknown_8375F30
- .4byte Unknown_8375F3C
- .4byte Unknown_8375F48
- .4byte Unknown_8375F54
- .4byte Unknown_8375F60
- .4byte Unknown_8375F6C
- .4byte Unknown_8375F78
- .4byte Unknown_8375F84
- .4byte Unknown_8375F90
- .4byte Unknown_8375F9C
- .4byte Unknown_8375FA8
- .4byte Unknown_8375FB4
- .4byte Unknown_8375FC0
- .4byte Unknown_8375FCC
- .4byte Unknown_8375FD8
- .4byte Unknown_8375FE4
- .4byte Unknown_8375FF0
- .4byte Unknown_8375FFC
-
- .align 2
-Unknown_83759A0:
- .4byte sub_8060CE0
- .4byte sub_8063474
-
- .align 2
-Unknown_83759A8:
- .4byte sub_8060CF0
- .4byte sub_8063474
-
- .align 2
-Unknown_83759B0:
- .4byte sub_8060D00
- .4byte sub_8063474
-
- .align 2
-Unknown_83759B8:
- .4byte sub_8060D10
- .4byte sub_8063474
-
- .align 2
-gUnknown_083759C0:: @ 83759C0
- .4byte get_go_image_anim_num
- .4byte get_go_fast_image_anim_num
- .4byte get_go_fast_image_anim_num
- .4byte get_go_faster_image_anim_num
- .4byte sub_805FD78
-
- .align 2
-Unknown_83759D4:
- .4byte sub_8060F3C
- .4byte sub_8060F5C
- .4byte sub_8063474
-
- .align 2
-Unknown_83759E0:
- .4byte sub_8060F7C
- .4byte sub_8060F9C
- .4byte sub_8063474
-
- .align 2
-Unknown_83759EC:
- .4byte sub_8060FBC
- .4byte sub_8060FDC
- .4byte sub_8063474
-
- .align 2
-Unknown_83759F8:
- .4byte sub_8060FFC
- .4byte sub_806101C
- .4byte sub_8063474
-
- .align 2
-Unknown_8375A04:
- .4byte sub_806103C
- .4byte sub_806105C
- .4byte sub_8063474
-
- .align 2
-Unknown_8375A10:
- .4byte sub_806107C
- .4byte sub_806109C
- .4byte sub_8063474
-
- .align 2
-Unknown_8375A1C:
- .4byte sub_80610BC
- .4byte sub_80610DC
- .4byte sub_8063474
-
- .align 2
-Unknown_8375A28:
- .4byte sub_80610FC
- .4byte sub_806111C
- .4byte sub_8063474
-
- .align 1
-gUnknown_08375A34:: @ 8375A34
- .2byte 0, 1, 1
-
- .align 1
-gUnknown_08375A3A:: @ 8375A3A
- .2byte 0, 0, 1
-
- .align 2
-Unknown_8375A40:
- .4byte sub_80613A8
- .4byte sub_80613D4
- .4byte sub_8063474
-
- .align 2
-Unknown_8375A4C:
- .4byte sub_8061400
- .4byte sub_806142C
- .4byte sub_8063474
-
- .align 2
-Unknown_8375A58:
- .4byte sub_8061458
- .4byte sub_8061484
- .4byte sub_8063474
-
- .align 2
-Unknown_8375A64:
- .4byte sub_80614B0
- .4byte sub_80614DC
- .4byte sub_8063474
-
- .align 2
-Unknown_8375A70:
- .4byte sub_806152C
- .4byte sub_8061510
- .4byte sub_8063470
-
- .align 2
-Unknown_8375A7C:
- .4byte sub_806154C
- .4byte sub_8061510
- .4byte sub_8063470
-
- .align 2
-Unknown_8375A88:
- .4byte sub_806156C
- .4byte sub_8061510
- .4byte sub_8063470
-
- .align 2
-Unknown_8375A94:
- .4byte sub_806158C
- .4byte sub_8061510
- .4byte sub_8063470
-
- .align 2
-Unknown_8375AA0:
- .4byte sub_80615AC
- .4byte sub_8061510
- .4byte sub_8063470
-
- .align 2
-Unknown_8375AAC:
- .4byte sub_80615CC
- .4byte sub_80615EC
- .4byte sub_8063474
-
- .align 2
-Unknown_8375AB8:
- .4byte sub_806160C
- .4byte sub_806162C
- .4byte sub_8063474
-
- .align 2
-Unknown_8375AC4:
- .4byte sub_806164C
- .4byte sub_806166C
- .4byte sub_8063474
-
- .align 2
-Unknown_8375AD0:
- .4byte sub_806168C
- .4byte sub_80616AC
- .4byte sub_8063474
-
- .align 2
-Unknown_8375ADC:
- .4byte sub_8061778
- .4byte sub_806173C
- .4byte sub_8063474
-
- .align 2
-Unknown_8375AE8:
- .4byte sub_80617B0
- .4byte sub_806173C
- .4byte sub_8063474
-
- .align 2
-Unknown_8375AF4:
- .4byte sub_80617E8
- .4byte sub_806173C
- .4byte sub_8063474
-
- .align 2
-Unknown_8375B00:
- .4byte sub_8061820
- .4byte sub_806173C
- .4byte sub_8063474
-
- .align 2
-Unknown_8375B0C:
- .4byte sub_8061858
- .4byte sub_8061714
- .4byte sub_8063474
-
- .align 2
-Unknown_8375B18:
- .4byte sub_8061890
- .4byte sub_8061714
- .4byte sub_8063474
-
- .align 2
-Unknown_8375B24:
- .4byte sub_80618C8
- .4byte sub_8061714
- .4byte sub_8063474
-
- .align 2
-Unknown_8375B30:
- .4byte sub_8061900
- .4byte sub_8061714
- .4byte sub_8063474
-
- .align 2
-Unknown_8375B3C:
- .4byte sub_8061938
- .4byte sub_8061714
- .4byte sub_8063474
-
- .align 2
-Unknown_8375B48:
- .4byte sub_8061970
- .4byte sub_8061714
- .4byte sub_8063474
-
- .align 2
-Unknown_8375B54:
- .4byte sub_80619A8
- .4byte sub_8061714
- .4byte sub_8063474
-
- .align 2
-Unknown_8375B60:
- .4byte sub_80619E0
- .4byte sub_8061714
- .4byte sub_8063474
-
- .align 2
-Unknown_8375B6C:
- .4byte sub_8061A18
- .4byte sub_8061714
- .4byte sub_8063474
-
- .align 2
-Unknown_8375B78:
- .4byte sub_8061A50
- .4byte sub_8061714
- .4byte sub_8063474
-
- .align 2
-Unknown_8375B84:
- .4byte sub_8061A88
- .4byte sub_8061714
- .4byte sub_8063474
-
- .align 2
-Unknown_8375B90:
- .4byte sub_8061AC0
- .4byte sub_8061714
- .4byte sub_8063474
-
- .align 2
-Unknown_8375B9C:
- .4byte sub_8061AF8
- .4byte sub_8061B18
- .4byte sub_8063474
-
- .align 2
-Unknown_8375BA8:
- .4byte sub_8061B38
- .4byte sub_8061B58
- .4byte sub_8063474
-
- .align 2
-Unknown_8375BB4:
- .4byte sub_8061B78
- .4byte sub_8061B98
- .4byte sub_8063474
-
- .align 2
-Unknown_8375BC0:
- .4byte sub_8061BB8
- .4byte sub_8061BD8
- .4byte sub_8063474
-
- .align 2
-Unknown_8375BCC:
- .4byte sub_8061BF8
- .4byte sub_8061C18
- .4byte sub_8063474
-
- .align 2
-Unknown_8375BD8:
- .4byte sub_8061C38
- .4byte sub_8061C58
- .4byte sub_8063474
-
- .align 2
-Unknown_8375BE4:
- .4byte sub_8061C78
- .4byte sub_8061C98
- .4byte sub_8063474
-
- .align 2
-Unknown_8375BF0:
- .4byte sub_8061CB8
- .4byte sub_8061CD8
- .4byte sub_8063474
-
- .align 2
-Unknown_8375BFC:
- .4byte sub_8061CF8
- .4byte sub_8061D18
- .4byte sub_8063474
-
- .align 2
-Unknown_8375C08:
- .4byte sub_8061D38
- .4byte sub_8061D58
- .4byte sub_8063474
-
- .align 2
-Unknown_8375C14:
- .4byte sub_8061D78
- .4byte sub_8061D98
- .4byte sub_8063474
-
- .align 2
-Unknown_8375C20:
- .4byte sub_8061DB8
- .4byte sub_8061DD8
- .4byte sub_8063474
-
- .align 2
-Unknown_8375C2C:
- .4byte do_run_south_anim
- .4byte sub_8061E18
- .4byte sub_8063474
-
- .align 2
-Unknown_8375C38:
- .4byte do_run_north_anim
- .4byte sub_8061E58
- .4byte sub_8063474
-
- .align 2
-Unknown_8375C44:
- .4byte do_run_west_anim
- .4byte sub_8061E98
- .4byte sub_8063474
-
- .align 2
-Unknown_8375C50:
- .4byte do_run_east_anim
- .4byte sub_8061ED8
- .4byte sub_8063474
-
- .align 2
-Unknown_8375C5C:
- .4byte sub_8061F24
- .4byte sub_8061F3C
- .4byte sub_8063474
-
- .align 2
-Unknown_8375C68:
- .4byte sub_8061F90
- .4byte sub_8061FB0
- .4byte sub_8063474
-
- .align 2
-Unknown_8375C74:
- .4byte sub_8061FD8
- .4byte sub_8061FF8
- .4byte sub_8063474
-
- .align 2
-Unknown_8375C80:
- .4byte sub_8062020
- .4byte sub_8062040
- .4byte sub_8063474
-
- .align 2
-Unknown_8375C8C:
- .4byte sub_8062068
- .4byte sub_8062088
- .4byte sub_8063474
-
- .align 2
-Unknown_8375C98:
- .4byte sub_80620B0
- .4byte sub_8063474
-
- .align 2
-Unknown_8375CA0:
- .4byte sub_806210C
- .4byte sub_8063474
-
- .align 2
-Unknown_8375CA8:
- .4byte sub_8062170
- .4byte sub_8063474
-
- .align 2
-Unknown_8375CB0:
- .4byte sub_8062180
- .4byte sub_8063474
-
- .align 2
-Unknown_8375CB8:
- .4byte sub_8062190
- .4byte sub_80621BC
- .4byte sub_8063474
-
- .align 2
-Unknown_8375CC4:
- .4byte sub_80621E8
- .4byte sub_8062214
- .4byte sub_8063474
-
- .align 2
-Unknown_8375CD0:
- .4byte sub_8062240
- .4byte sub_806226C
- .4byte sub_8063474
-
- .align 2
-Unknown_8375CDC:
- .4byte sub_8062298
- .4byte sub_80622C4
- .4byte sub_8063474
-
- .align 2
-Unknown_8375CE8:
- .4byte sub_80622F0
- .4byte sub_806231C
- .4byte sub_8063474
-
- .align 2
-Unknown_8375CF4:
- .4byte sub_8062348
- .4byte sub_8062374
- .4byte sub_8063474
-
- .align 2
-Unknown_8375D00:
- .4byte sub_80623A0
- .4byte sub_80623CC
- .4byte sub_8063474
-
- .align 2
-Unknown_8375D0C:
- .4byte sub_80623F8
- .4byte sub_8062424
- .4byte sub_8063474
-
- .align 2
-Unknown_8375D18:
- .4byte sub_8062450
- .4byte sub_806247C
- .4byte sub_8063474
-
- .align 2
-Unknown_8375D24:
- .4byte sub_80624A8
- .4byte sub_80624D4
- .4byte sub_8063474
-
- .align 2
-Unknown_8375D30:
- .4byte sub_8062500
- .4byte sub_806252C
- .4byte sub_8063474
-
- .align 2
-Unknown_8375D3C:
- .4byte sub_8062558
- .4byte sub_8062584
- .4byte sub_8063474
-
- .align 2
-Unknown_8375D48:
- .4byte sub_80625B0
- .4byte sub_8063474
-
- .align 2
-Unknown_8375D50:
- .4byte sub_80625C8
- .4byte sub_8061F3C
- .4byte sub_8063474
-
- .align 2
-Unknown_8375D5C:
- .4byte sub_80625D8
- .4byte sub_8063470
-
- .align 2
-Unknown_8375D64:
- .4byte sub_80625E8
- .4byte sub_8063470
-
- .align 2
-Unknown_8375D6C:
- .4byte sub_80625F8
- .4byte sub_8063470
-
- .align 2
-Unknown_8375D74:
- .4byte sub_8062608
- .4byte sub_8063470
-
- .align 2
-Unknown_8375D7C:
- .4byte sub_8062634
- .4byte sub_8063470
-
- .align 2
-Unknown_8375D84:
- .4byte sub_8062644
- .4byte sub_8063470
-
- .align 2
-Unknown_8375D8C:
- .4byte do_exclamation_mark_bubble_1
- .4byte sub_8063470
-
- .align 2
-Unknown_8375D94:
- .4byte do_exclamation_mark_bubble_2
- .4byte sub_8063470
-
- .align 2
-Unknown_8375D9C:
- .4byte do_heart_bubble
- .4byte sub_8063470
-
- .align 2
-Unknown_8375DA4:
- .4byte sub_80626C0
- .4byte sub_8062704
- .4byte sub_8063470
-
- .align 2
-Unknown_8375DB0:
- .4byte sub_8062724
- .4byte sub_8062740
- .4byte sub_8062764
- .4byte sub_8063470
-
- .align 2
-Unknown_8375DC0:
- .4byte sub_80627A0
- .4byte sub_80627BC
- .4byte sub_80627E0
- .4byte sub_8063470
-
- .align 2
-Unknown_8375DD0:
- .4byte sub_806281C
- .4byte sub_8063470
-
- .align 2
-Unknown_8375DD8:
- .4byte sub_806282C
- .4byte sub_8063470
-
- .align 2
-Unknown_8375DE0:
- .4byte sub_806283C
- .4byte sub_8063470
-
- .align 2
-Unknown_8375DE8:
- .4byte sub_806286C
- .4byte sub_8063470
-
- .align 2
-Unknown_8375DF0:
- .4byte sub_806289C
- .4byte sub_80628D0
- .4byte sub_8063474
-
- .align 2
-Unknown_8375DFC:
- .4byte sub_80628FC
- .4byte sub_8062930
- .4byte sub_8063474
-
- .align 2
-Unknown_8375E08:
- .4byte sub_806299C
- .4byte sub_8063474
-
- .align 2
-Unknown_8375E10:
- .4byte sub_80629AC
- .4byte sub_8063474
-
- .align 2
-Unknown_8375E18:
- .4byte sub_80629BC
- .4byte sub_8063474
-
- .align 2
-Unknown_8375E20:
- .4byte sub_80629CC
- .4byte sub_8063474
-
- .align 2
-Unknown_8375E28:
- .4byte sub_80629DC
- .4byte sub_8061F3C
- .4byte sub_8063474
-
- .align 2
-Unknown_8375E34:
- .4byte sub_8062A00
- .4byte sub_8061F3C
- .4byte sub_8063474
-
- .align 2
-Unknown_8375E40:
- .4byte sub_8062A24
- .4byte sub_8061F3C
- .4byte sub_8063474
-
- .align 2
-Unknown_8375E4C:
- .4byte sub_8062A48
- .4byte sub_8061F3C
- .4byte sub_8063474
-
- .align 2
-Unknown_8375E58:
- .4byte sub_8062A6C
- .4byte sub_8061F3C
- .4byte sub_8063474
-
- .align 2
-Unknown_8375E64:
- .4byte sub_8062A90
- .4byte sub_8061F3C
- .4byte sub_8063474
-
- .align 2
-Unknown_8375E70:
- .4byte sub_8062AB4
- .4byte sub_8061F3C
- .4byte sub_8063474
-
- .align 2
-Unknown_8375E7C:
- .4byte sub_8062AD8
- .4byte sub_8061F3C
- .4byte sub_8063474
- .4byte sub_8062AFC
- .4byte sub_8061F3C
- .4byte sub_8063474
- .4byte sub_8062B20
- .4byte sub_8061F3C
- .4byte sub_8063474
- .4byte sub_8062B44
- .4byte sub_8061F3C
- .4byte sub_8063474
- .4byte sub_8062B68
- .4byte sub_8061F3C
- .4byte sub_8063474
-
- .align 2
-Unknown_8375EB8:
- .4byte sub_8062BD0
- .4byte sub_8062BFC
- .4byte sub_8063474
-
- .align 2
-Unknown_8375EC4:
- .4byte sub_8062C28
- .4byte sub_8062C54
- .4byte sub_8063474
-
- .align 2
-Unknown_8375ED0:
- .4byte sub_8062C80
- .4byte sub_8062CAC
- .4byte sub_8063474
-
- .align 2
-Unknown_8375EDC:
- .4byte sub_8062CD8
- .4byte sub_8062D04
- .4byte sub_8063474
-
- .align 2
-Unknown_8375EE8:
- .4byte sub_8062D30
- .4byte sub_8062D5C
- .4byte sub_8063474
-
- .align 2
-Unknown_8375EF4:
- .4byte sub_8062D88
- .4byte sub_8062DB4
- .4byte sub_8063474
-
- .align 2
-Unknown_8375F00:
- .4byte sub_8062DE0
- .4byte sub_8062E0C
- .4byte sub_8063474
-
- .align 2
-Unknown_8375F0C:
- .4byte sub_8062E38
- .4byte sub_8062E64
- .4byte sub_8063474
-
- .align 2
-Unknown_8375F18:
- .4byte sub_8062E90
- .4byte sub_8062EBC
- .4byte sub_8063474
-
- .align 2
-Unknown_8375F24:
- .4byte sub_8062EE8
- .4byte sub_8062F14
- .4byte sub_8063474
-
- .align 2
-Unknown_8375F30:
- .4byte sub_8062F40
- .4byte sub_8062F6C
- .4byte sub_8063474
-
- .align 2
-Unknown_8375F3C:
- .4byte sub_8062F98
- .4byte sub_8062FC4
- .4byte sub_8063474
-
- .align 2
-Unknown_8375F48:
- .4byte sub_8062FF0
- .4byte sub_8061714
- .4byte sub_8063474
-
- .align 2
-Unknown_8375F54:
- .4byte sub_8063028
- .4byte sub_8061714
- .4byte sub_8063474
-
- .align 2
-Unknown_8375F60:
- .4byte sub_8063060
- .4byte sub_8061714
- .4byte sub_8063474
-
- .align 2
-Unknown_8375F6C:
- .4byte sub_8063098
- .4byte sub_8061714
- .4byte sub_8063474
-
- .align 2
-Unknown_8375F78:
- .4byte sub_8063108
- .4byte sub_8063128
- .4byte sub_8063474
-
- .align 2
-Unknown_8375F84:
- .4byte sub_8063148
- .4byte sub_8063168
- .4byte sub_8063474
-
- .align 2
-Unknown_8375F90:
- .4byte sub_8063188
- .4byte sub_80631A8
- .4byte sub_8063474
-
- .align 2
-Unknown_8375F9C:
- .4byte sub_80631C8
- .4byte sub_80631E8
- .4byte sub_8063474
-
- .align 2
-Unknown_8375FA8:
- .4byte sub_8063238
- .4byte sub_8063258
- .4byte sub_8063474
-
- .align 2
-Unknown_8375FB4:
- .4byte sub_8063278
- .4byte sub_8063298
- .4byte sub_8063474
-
- .align 2
-Unknown_8375FC0:
- .4byte sub_80632B8
- .4byte sub_80632D8
- .4byte sub_8063474
-
- .align 2
-Unknown_8375FCC:
- .4byte sub_80632F8
- .4byte sub_8063318
- .4byte sub_8063474
-
- .align 2
-Unknown_8375FD8:
- .4byte sub_8063370
- .4byte sub_8063390
- .4byte sub_8063474
-
- .align 2
-Unknown_8375FE4:
- .4byte sub_80633B0
- .4byte sub_80633D0
- .4byte sub_8063474
-
- .align 2
-Unknown_8375FF0:
- .4byte sub_80633F0
- .4byte sub_8063410
- .4byte sub_8063474
-
- .align 2
-Unknown_8375FFC:
- .4byte sub_8063430
- .4byte sub_8063450
- .4byte sub_8063474
-
- .align 2
-gUnknown_08376008:: @ 8376008
- .4byte 0x00000020
- .4byte 0x00000010
-
-@ Functions used to determine which category of tile the player is landing
-@ on after jumping over a ledge.
- .align 2
-gJumpLanding_MetatileFunctionPointers:: @ 8376010
- .4byte MetatileBehavior_IsTallGrass
- .4byte MetatileBehavior_IsLongGrass
- .4byte MetatileBehavior_IsPuddle
- .4byte MetatileBehavior_IsSurfableWaterOrUnderwater
- .4byte MetatileBehavior_IsShallowFlowingWater
- .4byte sub_8056D9C
-
-@ This table contains bitmasks used for determining the animation that happens when the player lands on
-@ the ground after jumping over a ledge. Each entry corresponds to the gJumpLanding_MetatileFunctionPointers table.
- .align 2
-gJumpLanding_Bitmasks:: @ 8376028
- .4byte 0x00001000 @ Landing in tall grass
- .4byte 0x00002000 @ Landing in long grass
- .4byte 0x00004000 @ Landing on puddle
- .4byte 0x00008000 @ Landing on surfable water or underwater
- .4byte 0x00004000 @ Landing on shallow flowing water
- .4byte 0x00010000 @ Landing on any other type of ground
-
- .align 2
-gUnknown_08376040:: @ 8376040
- .4byte MetatileBehavior_IsJumpSouth
- .4byte MetatileBehavior_IsJumpNorth
- .4byte MetatileBehavior_IsJumpWest
- .4byte MetatileBehavior_IsJumpEast
-
-gUnknown_08376050:: @ 8376050
- .byte 0x73, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x00, 0x00, 0x73
-
-@ Each byte corresponds to a sprite priority for a field object.
-@ This is directly the inverse of gFieldObjectPriorities_08376070.
-gFieldObjectPriorities_08376060:: @ 8376060
- .byte 2, 2, 2, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 0, 0, 2
-
-@ Each byte corresponds to a sprite priority for a field object.
-@ This is the inverse of gFieldObjectPriorities_08376060.
-@ 1 = Above player sprite
-@ 2 = Below player sprite
-gFieldObjectPriorities_08376070:: @ 8376070
- .byte 1, 1, 1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 0, 0, 1
-
- .align 2
-gUnknown_08376080:: @ 8376080
- .4byte nullsub_50
- .4byte DoTracksGroundEffect_Footprints
- .4byte DoTracksGroundEffect_BikeTireTracks
-
-@ First byte is a Field Effect script id. (gFieldEffectScriptPointers)
-@ Last three bytes are unknown.
-gSandFootprints_FieldEffectData:: @ 837608C
- .byte 0xD, 0x0, 0x18, 0x0
-
-@ Specifies which bike track shape to show next.
-@ For example, when the bike turns from up to right, it will show
-@ a track that curves to the right.
-@ Each 4-byte row corresponds to the initial direction of the bike, and
-@ each byte in that row is for the next direction of the bike in the order
-@ of down, up, left, right.
-gBikeTireTracks_Transitions:: @ 8376090
- .byte 1, 2, 7, 8
- .byte 1, 2, 6, 5
- .byte 5, 8, 3, 4
- .byte 6, 7, 3, 4
-
- .align 2
-gUnknown_083760A0:: @ 83760A0
- .4byte GroundEffect_SpawnOnTallGrass
- .4byte sub_8063E94
- .4byte sub_8063EE0
- .4byte sub_8063F2C
- .4byte GroundEffect_WaterReflection
- .4byte GroundEffect_IceReflection
- .4byte GroundEffect_FlowingWater
- .4byte sub_8063FA0
- .4byte sub_8063FCC
- .4byte GroundEffect_Ripple
- .4byte GroundEffect_StepOnPuddle
- .4byte GroundEffect_SandPile
- .4byte GroundEffect_JumpOnTallGrass
- .4byte GroundEffect_JumpOnLongGrass
- .4byte GroundEffect_JumpOnShallowWater
- .4byte GroundEffect_JumpOnWater
- .4byte GroundEffect_JumpLandingDust
- .4byte GroundEffect_ShortGrass
- .4byte GroundEffect_HotSprings
- .4byte GroundEffect_Seaweed
-
- .align 2
-Unknown_83760F0:
- .4byte little_step
- .4byte little_step
- .4byte little_step
- .4byte little_step
- .4byte little_step
- .4byte little_step
- .4byte little_step
- .4byte little_step
- .4byte little_step
- .4byte little_step
- .4byte little_step
- .4byte little_step
- .4byte little_step
- .4byte little_step
- .4byte little_step
- .4byte little_step
-
- .align 2
-Unknown_8376130:
- .4byte sub_806456C
- .4byte sub_806456C
- .4byte sub_806456C
- .4byte sub_806456C
- .4byte sub_806456C
- .4byte sub_806456C
- .4byte sub_806456C
- .4byte sub_806456C
-
- .align 2
-Unknown_8376150:
- .4byte sub_806456C
- .4byte sub_8064590
- .4byte sub_8064590
- .4byte sub_806456C
- .4byte sub_8064590
- .4byte sub_8064590
-
- .align 2
-Unknown_8376168:
- .4byte sub_80645B8
- .4byte sub_80645B8
- .4byte sub_80645B8
- .4byte sub_80645B8
-
- .align 2
-Unknown_8376178:
- .4byte sub_80645DC
- .4byte sub_80645DC
-
- .align 2
-gUnknown_08376180:: @ 8376180
- .4byte Unknown_83760F0
- .4byte Unknown_8376130
- .4byte Unknown_8376150
- .4byte Unknown_8376168
- .4byte Unknown_8376178
-
- .align 1
-gUnknown_08376194:: @ 8376194
- .2byte 16, 8, 6, 4, 2
-Unknown_837619E:
- .byte -4, -6, -8, -10, -11, -12, -12, -12, -11, -10, -9, -8, -6, -4, 0, 0
-Unknown_83761AE:
- .byte 0, -2, -3, -4, -5, -6, -6, -6, -5, -5, -4, -3, -2, 0, 0, 0
-Unknown_83761BE:
- .byte -2, -4, -6, -8, -9, -10, -10, -10, -9, -8, -6, -5, -3, -2, 0, 0
-
- .align 2
-gUnknown_083761D0:: @ 83761D0
- .4byte Unknown_837619E
- .4byte Unknown_83761AE
- .4byte Unknown_83761BE
-
- .align 1
-gUnknown_083761DC:: @ 83761DC
- .2byte 0x10, 0x10, 0x20
-
-gUnknown_083761E2:: @ 83761E2
- .byte 0, 0, 1
-
- .align 1
-gUnknown_083761E6:: @ 83761E6
- .2byte 0x20, 0x20, 0x40
-
-gUnknown_083761EC:: @ 83761EC
- .byte 1, 1, 2
-
- .align 2
-gUnknown_083761F0:: @ 83761F0
- .4byte gTextWindowFrame1_Gfx, gTextWindowFrame1_Pal
- .4byte gTextWindowFrame2_Gfx, gTextWindowFrame2_Pal
- .4byte gTextWindowFrame3_Gfx, gTextWindowFrame3_Pal
- .4byte gTextWindowFrame4_Gfx, gTextWindowFrame4_Pal
- .4byte gTextWindowFrame5_Gfx, gTextWindowFrame5_Pal
- .4byte gTextWindowFrame6_Gfx, gTextWindowFrame6_Pal
- .4byte gTextWindowFrame7_Gfx, gTextWindowFrame7_Pal
- .4byte gTextWindowFrame8_Gfx, gTextWindowFrame8_Pal
- .4byte gTextWindowFrame9_Gfx, gTextWindowFrame9_Pal
- .4byte gTextWindowFrame10_Gfx, gTextWindowFrame10_Pal
- .4byte gTextWindowFrame11_Gfx, gTextWindowFrame11_Pal
- .4byte gTextWindowFrame12_Gfx, gTextWindowFrame12_Pal
- .4byte gTextWindowFrame13_Gfx, gTextWindowFrame13_Pal
- .4byte gTextWindowFrame14_Gfx, gTextWindowFrame14_Pal
- .4byte gTextWindowFrame15_Gfx, gTextWindowFrame15_Pal
- .4byte gTextWindowFrame16_Gfx, gTextWindowFrame16_Pal
- .4byte gTextWindowFrame17_Gfx, gTextWindowFrame17_Pal
- .4byte gTextWindowFrame18_Gfx, gTextWindowFrame18_Pal
- .4byte gTextWindowFrame19_Gfx, gTextWindowFrame19_Pal
- .4byte gTextWindowFrame20_Gfx, gTextWindowFrame20_Pal
-
- .align 1
-gMessageBoxTilemap:: @ 8376290
- .incbin "graphics/text_window/message_box_map.bin"
-
- .align 2
-gUnknown_083762D8:: @ 83762D8
- .4byte NULL
-
-gScriptConditionTable:: @ 83762DC
- @ < = >
- .byte 1, 0, 0 @ <
- .byte 0, 1, 0 @ =
- .byte 0, 0, 1 @ >
- .byte 1, 1, 0 @ <=
- .byte 0, 1, 1 @ >=
- .byte 1, 0, 1 @ !=
-
- .align 2
-gUnknown_083762F0:: @ 83762F0
- .4byte gStringVar1
- .4byte gStringVar2
- .4byte gStringVar3
-
- .align 2
-gUnknown_083762FC:: @ 83762FC
- .4byte 0x1, sub_806936C
- .4byte 0x2, sub_8069378
- .4byte 0x3, sub_8069384
- .4byte 0x4, sub_8069390
- .4byte 0x5, sub_806939C
- .4byte 0x6, sub_80693A8
- .4byte 0x7, sub_80693B4
- .4byte 0x8, sub_80693C0
- .4byte 0x9, sub_80693CC
- .4byte 0xa, sub_80693D8
- .4byte 0xb, sub_80693E4
- .4byte 0x14, sub_80693F0
- .4byte 0x15, sub_80693FC
-
- .align 2
-gUnknown_08376364:: @ 8376364
- .4byte nullsub_51
- .4byte sub_8069F64
- .4byte sub_8069AA0
- .4byte sub_8069864
- .4byte sub_8069DD4
- .4byte EndTruckSequence
- .4byte sub_80BCF1C
- .4byte sub_806A07C
-
-gUnknown_08376384:: @ 8376384
- .incbin "baserom.gba", 0x00376384, 0x20
-
-gUnknown_083763A4:: @ 83763A4
- .incbin "baserom.gba", 0x003763a4, 0x20
-
-gUnknown_083763C4:: @ 83763C4
- .incbin "baserom.gba", 0x003763c4, 0x20
-
-gUnknown_083763E4:: @ 83763E4
- .incbin "baserom.gba", 0x003763e4, 0x30
-
-gUnknown_08376414:: @ 8376414
- .space 4
-
-gUnknown_08376418:: @ 8376418
- .incbin "baserom.gba", 0x00376418, 0x44
-
- .align 2
-gOamData_837645C:: @ 837645C
- .2byte 0x0000
- .2byte 0x0000
- .2byte 0x0000
-
- .align 2
-gSpriteImage_8376464:: @ 8376464
- .incbin "graphics/unknown_sprites/83764AC/0.4bpp"
-
- .align 2
-gSpriteImage_8376484:: @ 8376484
- .incbin "graphics/unknown_sprites/83764AC/1.4bpp"
-
- .align 2
-Palette_3764A4: @ 83764A4
- .incbin "baserom.gba", 0x3764a4, 0x8
-
- .align 2
-gSpriteImageTable_83764AC:: @ 83764AC
- obj_frame_tiles gSpriteImage_8376464, 0x20
- obj_frame_tiles gSpriteImage_8376484, 0x20
-
- .align 2
-gUnknown_083764BC:: @ 83764BC
- obj_pal Palette_3764A4, 0x1000
-
- .align 2
-gSpriteAnim_83764C4:: @ 83764C4
- obj_image_anim_frame 0, 30
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnim_83764CC:: @ 83764CC
- obj_image_anim_frame 0, 30, OBJ_IMAGE_ANIM_V_FLIP
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnim_83764D4:: @ 83764D4
- obj_image_anim_frame 1, 30
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnimTable_83764DC:: @ 83764DC
- .4byte gSpriteAnim_83764C4
- .4byte gSpriteAnim_83764CC
- .4byte gSpriteAnim_83764D4
-
- .align 2
-gSpriteTemplate_83764E8:: @ 83764E8
- spr_template 0xFFFF, 0x1000, gOamData_837645C, gSpriteAnimTable_83764DC, gSpriteImageTable_83764AC, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
-gUnknown_08376500:: @ 8376500
- .incbin "baserom.gba", 0x00376500, 0x4
-
- .align 1
-gUnknown_08376504:: @ 8376504
- .2byte MOVE_FOCUS_PUNCH
- .2byte MOVE_DRAGON_CLAW
- .2byte MOVE_WATER_PULSE
- .2byte MOVE_CALM_MIND
- .2byte MOVE_ROAR
- .2byte MOVE_TOXIC
- .2byte MOVE_HAIL
- .2byte MOVE_BULK_UP
- .2byte MOVE_BULLET_SEED
- .2byte MOVE_HIDDEN_POWER
- .2byte MOVE_SUNNY_DAY
- .2byte MOVE_TAUNT
- .2byte MOVE_ICE_BEAM
- .2byte MOVE_BLIZZARD
- .2byte MOVE_HYPER_BEAM
- .2byte MOVE_LIGHT_SCREEN
- .2byte MOVE_PROTECT
- .2byte MOVE_RAIN_DANCE
- .2byte MOVE_GIGA_DRAIN
- .2byte MOVE_SAFEGUARD
- .2byte MOVE_FRUSTRATION
- .2byte MOVE_SOLAR_BEAM
- .2byte MOVE_IRON_TAIL
- .2byte MOVE_THUNDERBOLT
- .2byte MOVE_THUNDER
- .2byte MOVE_EARTHQUAKE
- .2byte MOVE_RETURN
- .2byte MOVE_DIG
- .2byte MOVE_PSYCHIC
- .2byte MOVE_SHADOW_BALL
- .2byte MOVE_BRICK_BREAK
- .2byte MOVE_DOUBLE_TEAM
- .2byte MOVE_REFLECT
- .2byte MOVE_SHOCK_WAVE
- .2byte MOVE_FLAMETHROWER
- .2byte MOVE_SLUDGE_BOMB
- .2byte MOVE_SANDSTORM
- .2byte MOVE_FIRE_BLAST
- .2byte MOVE_ROCK_TOMB
- .2byte MOVE_AERIAL_ACE
- .2byte MOVE_TORMENT
- .2byte MOVE_FACADE
- .2byte MOVE_SECRET_POWER
- .2byte MOVE_REST
- .2byte MOVE_ATTRACT
- .2byte MOVE_THIEF
- .2byte MOVE_STEEL_WING
- .2byte MOVE_SKILL_SWAP
- .2byte MOVE_SNATCH
- .2byte MOVE_OVERHEAT
- .2byte MOVE_CUT
- .2byte MOVE_FLY
- .2byte MOVE_SURF
- .2byte MOVE_STRENGTH
- .2byte MOVE_FLASH
- .2byte MOVE_ROCK_SMASH
- .2byte MOVE_WATERFALL
- .2byte MOVE_DIVE
-
- .4byte gTileBuffer @ unreferenced?
-
-MenuGfx_HoldIcons:
- .incbin "graphics/interface/hold_icons.4bpp"
-MenuPal_HoldIcons:
- .incbin "graphics/interface/hold_icons.gbapal"
-
- .align 2
-gUnknown_083765DC:: @ 83765DC
- obj_tiles MenuGfx_HoldIcons, 64, 0xd750
-
- .align 2
-gUnknown_083765E4:: @ 83765E4
- obj_pal MenuPal_HoldIcons, 0xd750
-
- .align 2
-gOamData_83765EC:: @ 83765EC
- .2byte 0x0000
- .2byte 0x0000
- .2byte 0x0400
-
- .align 2
-gSpriteAnim_83765F4:: @ 83765F4
- obj_image_anim_frame 0, 1
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83765FC:: @ 83765FC
- obj_image_anim_frame 1, 1
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_8376604:: @ 8376604
- .4byte gSpriteAnim_83765F4
- .4byte gSpriteAnim_83765FC
-
- .align 2
-gSpriteTemplate_837660C:: @ 837660C
- spr_template 55120, 55120, gOamData_83765EC, gSpriteAnimTable_8376604, NULL, gDummySpriteAffineAnimTable, sub_806DD7C
-
- .align 2
-gUnknown_08376624:: @ 8376624
- .4byte OtherText_ChoosePoke
- .4byte OtherText_MovePokeTo
- .4byte OtherText_TeachWhat
- .4byte OtherText_UseWhat
- .4byte OtherText_GiveWhat
- .4byte OtherText_DoWhat
- .4byte OtherText_NothingToCut
- .4byte OtherText_CantSurf
- .4byte OtherText_AlreadySurfing
- .4byte OtherText_CantUseThatHere
- .4byte OtherText_RestoreWhatMove
- .4byte OtherText_BoostPP
- .4byte gOtherText_CancelWithTerminator
- .4byte OtherText_DoWhatWithItem
- .4byte OtherText_NoPokeForBattle
- .4byte OtherText_ChoosePoke2
- .4byte OtherText_NotEnoughHP
- .4byte OtherText_ThreePokeNeeded
- .4byte OtherText_PokeCantBeSame
- .4byte OtherText_NoIdenticalHoldItems
- .4byte OtherText_TeachWhichPoke
-
- .align 2
-gUnknown_08376678:: @ 8376678
- .byte 16, 40, 0, 0
- .byte 104, 18, 0, 0
- .byte 104, 42, 0, 0
- .byte 104, 66, 0, 0
- .byte 104, 90, 0, 0
- .byte 104, 114, 0, 0
- .byte 16, 24, 0, 0
- .byte 16, 80, 0, 0
- .byte 104, 18, 0, 0
- .byte 104, 50, 0, 0
- .byte 104, 82, 0, 0
- .byte 104, 114, 0, 0
- .byte 16, 24, 0, 0
- .byte 16, 80, 0, 0
- .byte 104, 26, 0, 0
- .byte 104, 50, 0, 0
- .byte 104, 82, 0, 0
- .byte 104, 106, 0, 0
- .byte 16, 24, 0, 0
- .byte 104, 26, 0, 0
- .byte 104, 50, 0, 0
- .byte 16, 80, 0, 0
- .byte 104, 82, 0, 0
- .byte 104, 106, 0, 0
- .byte 5, 4, 0, 0
- .byte 16, 1, 0, 0
- .byte 16, 4, 0, 0
- .byte 16, 7, 0, 0
- .byte 16, 10, 0, 0
- .byte 16, 13, 0, 0
- .byte 5, 2, 0, 0
- .byte 5, 9, 0, 0
- .byte 16, 1, 0, 0
- .byte 16, 5, 0, 0
- .byte 16, 9, 0, 0
- .byte 16, 13, 0, 0
- .byte 5, 2, 0, 0
- .byte 5, 9, 0, 0
- .byte 16, 2, 0, 0
- .byte 16, 5, 0, 0
- .byte 16, 9, 0, 0
- .byte 16, 12, 0, 0
- .byte 5, 2, 0, 0
- .byte 16, 2, 0, 0
- .byte 16, 5, 0, 0
- .byte 5, 9, 0, 0
- .byte 16, 9, 0, 0
- .byte 16, 12, 0, 0
-
- .align 2
-gUnknown_08376738:: @ 8376738
- .byte 6, 5, 0, 0
- .byte 17, 2, 0, 0
- .byte 17, 5, 0, 0
- .byte 17, 8, 0, 0
- .byte 17, 11, 0, 0
- .byte 17, 14, 0, 0
- .byte 6, 3, 0, 0
- .byte 6, 10, 0, 0
- .byte 17, 2, 0, 0
- .byte 17, 6, 0, 0
- .byte 17, 10, 0, 0
- .byte 17, 14, 0, 0
- .byte 6, 3, 0, 0
- .byte 6, 10, 0, 0
- .byte 17, 3, 0, 0
- .byte 17, 6, 0, 0
- .byte 17, 10, 0, 0
- .byte 17, 13, 0, 0
- .byte 6, 3, 0, 0
- .byte 17, 3, 0, 0
- .byte 17, 6, 0, 0
- .byte 6, 10, 0, 0
- .byte 17, 10, 0, 0
- .byte 17, 13, 0, 0
- .byte 3, 7, 0, 0
- .byte 22, 2, 0, 0
- .byte 22, 5, 0, 0
- .byte 22, 8, 0, 0
- .byte 22, 11, 0, 0
- .byte 22, 14, 0, 0
- .byte 3, 5, 0, 0
- .byte 3, 12, 0, 0
- .byte 22, 2, 0, 0
- .byte 22, 6, 0, 0
- .byte 22, 10, 0, 0
- .byte 22, 14, 0, 0
- .byte 3, 5, 0, 0
- .byte 3, 12, 0, 0
- .byte 22, 3, 0, 0
- .byte 22, 6, 0, 0
- .byte 22, 10, 0, 0
- .byte 22, 13, 0, 0
- .byte 3, 5, 0, 0
- .byte 22, 3, 0, 0
- .byte 22, 6, 0, 0
- .byte 3, 12, 0, 0
- .byte 22, 10, 0, 0
- .byte 22, 13, 0, 0
- .byte 7, 7, 0, 0
- .byte 26, 2, 0, 0
- .byte 26, 5, 0, 0
- .byte 26, 8, 0, 0
- .byte 26, 11, 0, 0
- .byte 26, 14, 0, 0
- .byte 7, 5, 0, 0
- .byte 7, 12, 0, 0
- .byte 26, 2, 0, 0
- .byte 26, 6, 0, 0
- .byte 26, 10, 0, 0
- .byte 26, 14, 0, 0
- .byte 7, 5, 0, 0
- .byte 7, 12, 0, 0
- .byte 26, 3, 0, 0
- .byte 26, 6, 0, 0
- .byte 26, 10, 0, 0
- .byte 26, 13, 0, 0
- .byte 7, 5, 0, 0
- .byte 26, 3, 0, 0
- .byte 26, 6, 0, 0
- .byte 7, 12, 0, 0
- .byte 26, 10, 0, 0
- .byte 26, 13, 0, 0
-
- .align 2
-gUnknown_08376858:: @ 8376858
- .4byte BG_VRAM + 0xF1C8
- .4byte BG_VRAM + 0xF0AE
- .4byte BG_VRAM + 0xF16E
- .4byte BG_VRAM + 0xF22E
- .4byte BG_VRAM + 0xF2EE
- .4byte BG_VRAM + 0xF3AE
- .4byte BG_VRAM + 0xF148
- .4byte BG_VRAM + 0xF308
- .4byte BG_VRAM + 0xF0AE
- .4byte BG_VRAM + 0xF1AE
- .4byte BG_VRAM + 0xF2AE
- .4byte BG_VRAM + 0xF3AE
- .4byte BG_VRAM + 0xF148
- .4byte BG_VRAM + 0xF308
- .4byte BG_VRAM + 0xF0EE
- .4byte BG_VRAM + 0xF1AE
- .4byte BG_VRAM + 0xF2AE
- .4byte BG_VRAM + 0xF36E
- .4byte BG_VRAM + 0xF148
- .4byte BG_VRAM + 0xF0EE
- .4byte BG_VRAM + 0xF1AE
- .4byte BG_VRAM + 0xF308
- .4byte BG_VRAM + 0xF2AE
- .4byte BG_VRAM + 0xF36E
-
- .align 2
-gUnknown_083768B8:: @ 83768B8
- .byte 8, 44, 0, 0
- .byte 92, 22, 0, 0
- .byte 92, 46, 0, 0
- .byte 92, 70, 0, 0
- .byte 92, 94, 0, 0
- .byte 92, 118, 0, 0
- .byte 196, 136, 0, 0
- .byte 196, 152, 0, 0
- .byte 8, 28, 0, 0
- .byte 8, 84, 0, 0
- .byte 92, 22, 0, 0
- .byte 92, 54, 0, 0
- .byte 92, 86, 0, 0
- .byte 92, 118, 0, 0
- .byte 196, 136, 0, 0
- .byte 196, 152, 0, 0
- .byte 8, 28, 0, 0
- .byte 8, 84, 0, 0
- .byte 92, 30, 0, 0
- .byte 92, 54, 0, 0
- .byte 92, 86, 0, 0
- .byte 92, 110, 0, 0
- .byte 196, 136, 0, 0
- .byte 196, 152, 0, 0
-
- .align 2
-gUnknown_08376918:: @ 8376918
- .4byte BG_VRAM + 0xF1C6
- .4byte BG_VRAM + 0xF06C
- .4byte BG_VRAM + 0xF12C
- .4byte BG_VRAM + 0xF1EC
- .4byte BG_VRAM + 0xF2AC
- .4byte BG_VRAM + 0xF36C
- .4byte BG_VRAM + 0xF148
- .4byte BG_VRAM + 0xF308
- .4byte BG_VRAM + 0xF0AE
- .4byte BG_VRAM + 0xF1AE
- .4byte BG_VRAM + 0xF2AE
- .4byte BG_VRAM + 0xF3AE
-
- .align 2
-gUnknown_08376948:: @ 8376948
- .byte 2, 4, 10, 9
- .byte 16, 1, 29, 3
- .byte 16, 4, 29, 6
- .byte 16, 7, 29, 9
- .byte 16, 10, 29, 12
- .byte 16, 13, 29, 15
- .byte 2, 2, 10, 7
- .byte 2, 9, 10, 14
- .byte 16, 1, 29, 3
- .byte 16, 5, 29, 7
- .byte 16, 9, 29, 11
- .byte 16, 13, 29, 15
-
- .align 2
-gUnknown_08376978:: @ 8376978
- .byte 2, 7, 10, 9
- .byte 21, 1, 29, 3
- .byte 21, 4, 29, 6
- .byte 21, 7, 29, 9
- .byte 21, 10, 29, 12
- .byte 21, 13, 29, 15
- .byte 2, 2, 10, 7
- .byte 2, 9, 10, 14
- .byte 16, 1, 29, 3
- .byte 16, 5, 29, 7
- .byte 16, 9, 29, 11
- .byte 16, 13, 29, 15
-
- .align 2
-gUnknown_083769A8:: @ 83769A8
- .byte 0, 3
- .byte 11, 1
- .byte 11, 4
- .byte 11, 7
- .byte 11, 10
- .byte 11, 13
- .byte 0, 1
- .byte 0, 8
- .byte 11, 1
- .byte 11, 5
- .byte 11, 9
- .byte 11, 13
-
- .align 2
-gUnknown_083769C0:: @ 83769C0
- .byte 0, 1
- .byte 0, 8
- .byte 11, 2
- .byte 11, 5
- .byte 11, 9
- .byte 11, 12
- .byte 0, 1
- .byte 0, 8
- .byte 11, 2
- .byte 11, 5
- .byte 11, 9
- .byte 11, 12
-
-gUnknown_083769D8:: @ 83769D8
- .byte 0x24,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x27
- .byte 0x34,0x35,0x35,0x35,0x35,0x35,0x35,0x35,0x35,0x35,0x37
- .byte 0x34,0x35,0x35,0x35,0x35,0x35,0x35,0x35,0x35,0x35,0x37
- .byte 0x34,0x35,0x35,0x35,0x35,0x35,0x35,0x35,0x35,0x35,0x37
- .byte 0x44,0x45,0x45,0x45,0x45,0x45,0x45,0x45,0x45,0x45,0x47
- .byte 0x44,0x45,0x45,0x45,0x45,0x45,0x45,0x45,0x45,0x45,0x47
- .byte 0x54,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x57
-
-gUnknown_08376A25:: @ 8376A25
- .byte 0x50,0x51,0x51,0x51,0x51,0x51,0x51,0x51,0x51,0x51,0x51,0x51,0x51,0x51,0x51,0x51,0x51,0x51,0x53
- .byte 0x60,0x61,0x61,0x61,0x61,0x61,0x61,0x61,0x61,0x61,0x61,0x61,0x61,0x61,0x61,0x61,0x61,0x61,0x63
- .byte 0x70,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x73
-
-gUnknown_08376A5E:: @ 8376A5E
- .byte 0x20,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x23
- .byte 0x30,0x31,0x31,0x31,0x31,0x31,0x31,0x31,0x31,0x31,0x31,0x31,0x31,0x31,0x31,0x31,0x31,0x31,0x33
- .byte 0x40,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x43
-
-@ unknown, unreferenced data
- .byte 0x0C
- .byte 0x0D
- .byte 0x0E
- .byte 0x0F
- .byte 0x00
- .byte 0x01
- .byte 0x02
- .byte 0x03
- .byte 0x04
- .byte 0x05
- .byte 0x0F
- .byte 0x10
- .byte 0x11
- .byte 0x12
- .byte 0x13
- .byte 0x14
- .byte 0x15
- .byte 0x0F
- .byte 0x06
- .byte 0x05
- .byte 0x01
- .byte 0x07
- .byte 0x08
- .byte 0x09
- .byte 0x0F
- .byte 0x16
- .byte 0x15
- .byte 0x11
- .byte 0x17
- .byte 0x18
- .byte 0x19
- .byte 0x0F
- .byte 0x09
- .byte 0x0A
- .byte 0x0B
- .byte 0x05
- .byte 0x0C
- .byte 0x0F
- .byte 0x0F
- .byte 0x19
- .byte 0x1A
- .byte 0x1B
- .byte 0x15
- .byte 0x1C
- .byte 0x0F
- .byte 0x0F
- .byte 0x0D
- .byte 0x0B
- .byte 0x05
- .byte 0x0C
- .byte 0x0F
- .byte 0x0F
- .byte 0x0F
- .byte 0x1D
- .byte 0x1B
- .byte 0x15
- .byte 0x1C
- .byte 0x0F
- .byte 0x0F
- .byte 0x0F
- .byte 0x06
- .byte 0x05
- .byte 0x0B
- .byte 0x05
- .byte 0x0C
- .byte 0x0F
- .byte 0x0F
- .byte 0x16
- .byte 0x15
- .byte 0x1B
- .byte 0x15
- .byte 0x1C
- .byte 0x0F
- .byte 0x0F
- .byte 0x0F
- .byte 0x0F
- .byte 0x20
- .byte 0x0C
- .byte 0x09
- .byte 0x0F
- .byte 0x0F
- .byte 0x0F
- .byte 0x1F
- .byte 0x30
- .byte 0x1C
- .byte 0x19
- .byte 0x0F
- .byte 0x0F
- .byte 0x0F
- .byte 0x25
- .byte 0x0F
- .byte 0x22
- .byte 0x24
- .byte 0x0F
- .byte 0x0F
- .byte 0x0F
- .byte 0x35
- .byte 0x41
- .byte 0x32
- .byte 0x34
- .byte 0x0F
- .byte 0x0F
- .byte 0x0F
- .byte 0x26
- .byte 0x0F
- .byte 0x23
- .byte 0x0E
- .byte 0x0F
- .byte 0x0F
- .byte 0x0F
- .byte 0x36
- .byte 0x43
- .byte 0x33
- .byte 0x1E
- .byte 0x0F
- .byte 0x0F
- .byte 0x27
- .byte 0x28
- .byte 0x29
- .byte 0x03
- .byte 0x2A
- .byte 0x0F
- .byte 0x0F
- .byte 0x37
- .byte 0x38
- .byte 0x39
- .byte 0x13
- .byte 0x3A
- .byte 0x0F
- .byte 0x0F
- .byte 0x27
- .byte 0x28
- .byte 0x29
- .byte 0x03
- .byte 0x04
- .byte 0x05
- .byte 0x0F
- .byte 0x37
- .byte 0x38
- .byte 0x39
- .byte 0x13
- .byte 0x14
- .byte 0x15
- .byte 0x0F
- .byte 0x2B
- .byte 0x2C
- .byte 0x02
- .byte 0x28
- .byte 0x29
- .byte 0x2D
- .byte 0x21
- .byte 0x3B
- .byte 0x3C
- .byte 0x12
- .byte 0x38
- .byte 0x39
- .byte 0x3D
- .byte 0x31
- .byte 0x2B
- .byte 0x2C
- .byte 0x02
- .byte 0x28
- .byte 0x29
- .byte 0x08
- .byte 0x09
- .byte 0x3B
- .byte 0x3C
- .byte 0x12
- .byte 0x38
- .byte 0x39
- .byte 0x18
- .byte 0x19
- .byte 0x2E
- .byte 0x2F
- .byte 0x2B
- .byte 0x2C
- .byte 0x02
- .byte 0x27
- .byte 0x2D
- .byte 0x3E
- .byte 0x3F
- .byte 0x3B
- .byte 0x3C
- .byte 0x12
- .byte 0x45
- .byte 0x3D
-
- .align 2
-gUnknown_08376B54:: @ 8376B54
- .4byte ether_effect_related_2
- .4byte sub_80704F0
-
- .align 1
-Unknown_08376B5C:
- .2byte 0x4000, 0x4018, 0xF400
- .2byte 0x4000, 0x4038, 0xF404
- .2byte 0x4008, 0x4018, 0xF408
- .2byte 0x4008, 0x4038, 0xF40C
- .2byte 0x4010, 0x4020, 0xF410
- .2byte 0x4020, 0x4025, 0xF418
- .2byte 0x4020, 0x4045, 0xF41C
- .2byte -1
-
- .align 1
-Unknown_08376B88:
- .2byte 0x4000, 0x4018, 0xF400
- .2byte 0x4000, 0x4038, 0xF404
- .2byte 0x4008, 0x4018, 0xF408
- .2byte 0x4008, 0x4038, 0xF40C
- .2byte 0x4010, 0x4020, 0xF410
- .2byte 0x4010, 0x4065, 0xF418
- .2byte 0x4010, 0x4085, 0xF41C
- .2byte -1
-
- .align 2
-gUnknown_08376BB4:: @ 8376BB4
- .byte 0x1, 0x4
- .space 2
- .4byte Unknown_08376B5C
-
- .byte 0xC, 0x1
- .space 2
- .4byte Unknown_08376B88
-
- .byte 0xC, 0x4
- .space 2
- .4byte Unknown_08376B88
-
- .byte 0xC, 0x7
- .space 2
- .4byte Unknown_08376B88
-
- .byte 0xC, 0xA
- .space 2
- .4byte Unknown_08376B88
-
- .byte 0xC, 0xD
- .space 2
- .4byte Unknown_08376B88
-
- .byte 0x1, 0x2
- .space 2
- .4byte Unknown_08376B5C
-
- .byte 0x1, 0x9
- .space 2
- .4byte Unknown_08376B5C
-
- .byte 0xC, 0x1
- .space 2
- .4byte Unknown_08376B88
-
- .byte 0xC, 0x5
- .space 2
- .4byte Unknown_08376B88
-
- .byte 0xC, 0x9
- .space 2
- .4byte Unknown_08376B88
-
- .byte 0xC, 0xD
- .space 2
- .4byte Unknown_08376B88
-
- .byte 0x1, 0x2
- .space 2
- .4byte Unknown_08376B5C
-
- .byte 0x1, 0x9
- .space 2
- .4byte Unknown_08376B5C
-
- .byte 0xC, 0x2
- .space 2
- .4byte Unknown_08376B88
-
- .byte 0xC, 0x5
- .space 2
- .4byte Unknown_08376B88
-
- .byte 0xC, 0x9
- .space 2
- .4byte Unknown_08376B88
-
- .byte 0xC, 0xC
- .space 2
- .4byte Unknown_08376B88
-
- .byte 0x1, 0x2
- .space 2
- .4byte Unknown_08376B5C
-
- .byte 0xC, 0x2
- .space 2
- .4byte Unknown_08376B88
-
- .byte 0xC, 0x5
- .space 2
- .4byte Unknown_08376B88
-
- .byte 0x1, 0x9
- .space 2
- .4byte Unknown_08376B5C
-
- .byte 0xC, 0x9
- .space 2
- .4byte Unknown_08376B88
-
- .byte 0xC, 0xC
- .space 2
- .4byte Unknown_08376B88
-
- .align 2
-gUnknown_08376C74:: @ 8376C74
- .4byte sub_8089CD4, sub_806AFD0, 0
- .4byte sub_8095118, sub_8094E58, 0
- .4byte sub_80F9C6C, sub_80F9ACC, 0
- .4byte sub_80F9C6C, sub_806AFD0, 0
- .4byte sub_81222B0, sub_8121E78, 0
- .4byte sub_8122A48, sub_8122854, 0xFF
- .4byte sub_8122E0C, sub_806AFD0, 0x0F
- .4byte sub_80F9E64, sub_80F9CE8, 0
-
- .align 2
-gUnknown_08376CD4:: @ 8376CD4
- .2byte 0x2A, 0x2B, 0x2C, 0x2D, 0x2E, 0x2F
- .2byte 0x3A, 0x3B, 0x3C, 0x3D, 0x3E, 0x3F
-
- .align 2
-gUnknown_08376CEC:: @ 8376CEC
- .2byte 0x2A, 0x0B, 0x0C, 0x0D, 0x0E, 0x2F
- .2byte 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F
-
- .align 2
-gUnknown_08376D04:: @ 8376D04
- .4byte gOtherText_HP
- .4byte gOtherText_Attack
- .4byte gOtherText_Defense
- .4byte gOtherText_SpAtk
- .4byte gOtherText_SpDef
- .4byte gOtherText_Speed
-
-gUnknown_08376D1C:: @ 8376D1C
- .byte 0x3A @ HP
- .byte 0x3B @ Attack
- .byte 0x3C @ Defense
- .byte 0x3E @ Sp. Attack
- .byte 0x3F @ Sp. Defense
- .byte 0x3D @ Speed
-
- .align 2
-gStartMenuItems:: @ 8376D24
- .4byte SystemText_Pokedex, StartMenu_PokedexCallback
- .4byte SystemText_Pokemon, StartMenu_PokemonCallback
- .4byte SystemText_BAG, StartMenu_BagCallback
- .4byte SystemText_Pokenav, StartMenu_PokenavCallback
- .4byte SystemText_Player, StartMenu_PlayerCallback
- .4byte SystemText_Save, StartMenu_SaveCallback
- .4byte SystemText_Option, StartMenu_OptionCallback
- .4byte SystemText_Exit, StartMenu_ExitCallback
- .4byte SystemText_Retire, StartMenu_RetireCallback
- .4byte SystemText_Player, StartMenu_PlayerLinkCallback
-
- .align 2
-gUnknown_08376D74:: @ 8376D74
- .4byte OtherText_Yes, 0
- .4byte OtherText_No, 0
-
- .align 2
-TilesetAnimTiles_General_0_1: @ 8376D84
- .incbin "data/tilesets/primary/general/anim/0/1.4bpp"
-
- .align 2
-TilesetAnimTiles_General_0_0: @ 8376E04
- .incbin "data/tilesets/primary/general/anim/0/0.4bpp"
-
- .align 2
-TilesetAnimTiles_General_0_2: @ 8376E84
- .incbin "data/tilesets/primary/general/anim/0/2.4bpp"
-
- .space 32
-
- .align 2
-gTilesetAnimTable_General_0:: @ 8376F24
- .4byte TilesetAnimTiles_General_0_0
- .4byte TilesetAnimTiles_General_0_1
- .4byte TilesetAnimTiles_General_0_0
- .4byte TilesetAnimTiles_General_0_2
-
- .align 2
-TilesetAnimTiles_General_1_0: @ 8376F34
- .incbin "data/tilesets/primary/general/anim/1/0.4bpp"
-
- .align 2
-TilesetAnimTiles_General_1_1: @ 83772F4
- .incbin "data/tilesets/primary/general/anim/1/1.4bpp"
-
- .align 2
-TilesetAnimTiles_General_1_2: @ 83776B4
- .incbin "data/tilesets/primary/general/anim/1/2.4bpp"
-
- .align 2
-TilesetAnimTiles_General_1_3: @ 8377A74
- .incbin "data/tilesets/primary/general/anim/1/3.4bpp"
-
- .align 2
-TilesetAnimTiles_General_1_4: @ 8377E34
- .incbin "data/tilesets/primary/general/anim/1/4.4bpp"
-
- .align 2
-TilesetAnimTiles_General_1_5: @ 83781F4
- .incbin "data/tilesets/primary/general/anim/1/5.4bpp"
-
- .align 2
-TilesetAnimTiles_General_1_6: @ 83785B4
- .incbin "data/tilesets/primary/general/anim/1/6.4bpp"
-
- .align 2
-TilesetAnimTiles_General_1_7: @ 8378974
- .incbin "data/tilesets/primary/general/anim/1/7.4bpp"
-
- .align 2
-gTilesetAnimTable_General_1:: @ 8378D34
- .4byte TilesetAnimTiles_General_1_0
- .4byte TilesetAnimTiles_General_1_1
- .4byte TilesetAnimTiles_General_1_2
- .4byte TilesetAnimTiles_General_1_3
- .4byte TilesetAnimTiles_General_1_4
- .4byte TilesetAnimTiles_General_1_5
- .4byte TilesetAnimTiles_General_1_6
- .4byte TilesetAnimTiles_General_1_7
-
- .align 2
-TilesetAnimTiles_General_2_0: @ 8378D54
- .incbin "data/tilesets/primary/general/anim/2/0.4bpp"
-
- .align 2
-TilesetAnimTiles_General_2_1: @ 8378E94
- .incbin "data/tilesets/primary/general/anim/2/1.4bpp"
-
- .align 2
-TilesetAnimTiles_General_2_2: @ 8378FD4
- .incbin "data/tilesets/primary/general/anim/2/2.4bpp"
-
- .align 2
-TilesetAnimTiles_General_2_3: @ 8379114
- .incbin "data/tilesets/primary/general/anim/2/3.4bpp"
-
- .align 2
-TilesetAnimTiles_General_2_4: @ 8379254
- .incbin "data/tilesets/primary/general/anim/2/4.4bpp"
-
- .align 2
-TilesetAnimTiles_General_2_5: @ 8379394
- .incbin "data/tilesets/primary/general/anim/2/5.4bpp"
-
- .align 2
-TilesetAnimTiles_General_2_6: @ 83794D4
- .incbin "data/tilesets/primary/general/anim/2/6.4bpp"
-
- .align 2
-gTilesetAnimTable_General_2:: @ 8379614
- .4byte TilesetAnimTiles_General_2_0
- .4byte TilesetAnimTiles_General_2_1
- .4byte TilesetAnimTiles_General_2_2
- .4byte TilesetAnimTiles_General_2_3
- .4byte TilesetAnimTiles_General_2_4
- .4byte TilesetAnimTiles_General_2_5
- .4byte TilesetAnimTiles_General_2_6
- .4byte TilesetAnimTiles_General_2_0
-
- .align 2
-TilesetAnimTiles_General_3_0: @ 8379634
- .incbin "data/tilesets/primary/general/anim/3/0.4bpp"
-
- .align 2
-TilesetAnimTiles_General_3_1: @ 83796F4
- .incbin "data/tilesets/primary/general/anim/3/1.4bpp"
-
- .align 2
-TilesetAnimTiles_General_3_2: @ 83797B4
- .incbin "data/tilesets/primary/general/anim/3/2.4bpp"
-
- .align 2
-TilesetAnimTiles_General_3_3: @ 8379874
- .incbin "data/tilesets/primary/general/anim/3/3.4bpp"
-
- .align 2
-gTilesetAnimTable_General_3:: @ 8379934
- .4byte TilesetAnimTiles_General_3_0
- .4byte TilesetAnimTiles_General_3_1
- .4byte TilesetAnimTiles_General_3_2
- .4byte TilesetAnimTiles_General_3_3
-
- .align 2
-TilesetAnimTiles_General_4_0: @ 8379944
- .incbin "data/tilesets/primary/general/anim/4/0.4bpp"
-
- .align 2
-TilesetAnimTiles_General_4_1: @ 8379A84
- .incbin "data/tilesets/primary/general/anim/4/1.4bpp"
-
- .align 2
-TilesetAnimTiles_General_4_2: @ 8379BC4
- .incbin "data/tilesets/primary/general/anim/4/2.4bpp"
-
- .align 2
-TilesetAnimTiles_General_4_3: @ 8379D04
- .incbin "data/tilesets/primary/general/anim/4/3.4bpp"
-
- .align 2
-gTilesetAnimTable_General_4:: @ 8379E44
- .4byte TilesetAnimTiles_General_4_0
- .4byte TilesetAnimTiles_General_4_1
- .4byte TilesetAnimTiles_General_4_2
- .4byte TilesetAnimTiles_General_4_3
-
- .align 2
-TilesetAnimTiles_Lavaridge_0: @ 8379E54
- .incbin "data/tilesets/secondary/lavaridge/anim/0.4bpp"
-
- .align 2
-TilesetAnimTiles_Lavaridge_1: @ 8379ED4
- .incbin "data/tilesets/secondary/lavaridge/anim/1.4bpp"
-
- .align 2
-TilesetAnimTiles_Lavaridge_2: @ 8379F54
- .incbin "data/tilesets/secondary/lavaridge/anim/2.4bpp"
-
- .align 2
-TilesetAnimTiles_Lavaridge_3: @ 8379FD4
- .incbin "data/tilesets/secondary/lavaridge/anim/3.4bpp"
-
- .align 2
-gTilesetAnimTable_Lavaridge:: @ 837A054
- .4byte TilesetAnimTiles_Lavaridge_0
- .4byte TilesetAnimTiles_Lavaridge_1
- .4byte TilesetAnimTiles_Lavaridge_2
- .4byte TilesetAnimTiles_Lavaridge_3
-
- .align 2
-TilesetAnimTiles_Pacifidlog_0_0: @ 837A064
- .incbin "data/tilesets/secondary/pacifidlog/anim/0/0.4bpp"
-
- .align 2
-TilesetAnimTiles_Pacifidlog_0_1: @ 837A424
- .incbin "data/tilesets/secondary/pacifidlog/anim/0/1.4bpp"
-
- .align 2
-TilesetAnimTiles_Pacifidlog_0_2: @ 837A7E4
- .incbin "data/tilesets/secondary/pacifidlog/anim/0/2.4bpp"
-
- .align 2
-gTilesetAnimTable_Pacifidlog_0:: @ 837ABA4
- .4byte TilesetAnimTiles_Pacifidlog_0_0
- .4byte TilesetAnimTiles_Pacifidlog_0_1
- .4byte TilesetAnimTiles_Pacifidlog_0_2
- .4byte TilesetAnimTiles_Pacifidlog_0_1
-
- .align 2
-TilesetAnimTiles_Underwater_0: @ 837ABB4
- .incbin "data/tilesets/secondary/underwater/anim/0.4bpp"
-
- .align 2
-TilesetAnimTiles_Underwater_1: @ 837AC34
- .incbin "data/tilesets/secondary/underwater/anim/1.4bpp"
-
- .align 2
-TilesetAnimTiles_Underwater_2: @ 837ACB4
- .incbin "data/tilesets/secondary/underwater/anim/2.4bpp"
-
- .align 2
-TilesetAnimTiles_Underwater_3: @ 837AD34
- .incbin "data/tilesets/secondary/underwater/anim/3.4bpp"
-
- .align 2
-gTilesetAnimTable_Underwater:: @ 837ADB4
- .4byte TilesetAnimTiles_Underwater_0
- .4byte TilesetAnimTiles_Underwater_1
- .4byte TilesetAnimTiles_Underwater_2
- .4byte TilesetAnimTiles_Underwater_3
-
- .align 2
-TilesetAnimTiles_Pacifidlog_1_0: @ 837ADC4
- .incbin "data/tilesets/secondary/pacifidlog/anim/1/0.4bpp"
-
- .align 2
-TilesetAnimTiles_Pacifidlog_1_1: @ 837AEC4
- .incbin "data/tilesets/secondary/pacifidlog/anim/1/1.4bpp"
-
- .align 2
-TilesetAnimTiles_Pacifidlog_1_2: @ 837AFC4
- .incbin "data/tilesets/secondary/pacifidlog/anim/1/2.4bpp"
-
- .align 2
-TilesetAnimTiles_Pacifidlog_1_3: @ 837B0C4
- .incbin "data/tilesets/secondary/pacifidlog/anim/1/3.4bpp"
-
- .align 2
-TilesetAnimTiles_Pacifidlog_1_4: @ 837B1C4
- .incbin "data/tilesets/secondary/pacifidlog/anim/1/4.4bpp"
-
- .align 2
-TilesetAnimTiles_Pacifidlog_1_5: @ 837B2C4
- .incbin "data/tilesets/secondary/pacifidlog/anim/1/5.4bpp"
-
- .align 2
-TilesetAnimTiles_Pacifidlog_1_6: @ 837B3C4
- .incbin "data/tilesets/secondary/pacifidlog/anim/1/6.4bpp"
-
- .align 2
-TilesetAnimTiles_Pacifidlog_1_7: @ 837B4C4
- .incbin "data/tilesets/secondary/pacifidlog/anim/1/7.4bpp"
-
- .align 2
-gTilesetAnimTable_Pacifidlog_1:: @ 837B5C4
- .4byte TilesetAnimTiles_Pacifidlog_1_0
- .4byte TilesetAnimTiles_Pacifidlog_1_1
- .4byte TilesetAnimTiles_Pacifidlog_1_2
- .4byte TilesetAnimTiles_Pacifidlog_1_3
- .4byte TilesetAnimTiles_Pacifidlog_1_4
- .4byte TilesetAnimTiles_Pacifidlog_1_5
- .4byte TilesetAnimTiles_Pacifidlog_1_6
- .4byte TilesetAnimTiles_Pacifidlog_1_7
-
- .align 2
-TilesetAnimTiles_Mauville_0_0: @ 837B5E4
- .incbin "data/tilesets/secondary/mauville/anim/0/0.4bpp"
-
- .align 2
-TilesetAnimTiles_Mauville_0_1: @ 837B664
- .incbin "data/tilesets/secondary/mauville/anim/0/1.4bpp"
-
- .align 2
-TilesetAnimTiles_Mauville_0_2: @ 837B6E4
- .incbin "data/tilesets/secondary/mauville/anim/0/2.4bpp"
-
- .align 2
-TilesetAnimTiles_Mauville_0_3: @ 837B764
- .incbin "data/tilesets/secondary/mauville/anim/0/3.4bpp"
-
- .align 2
-TilesetAnimTiles_Mauville_0_4: @ 837B7E4
- .incbin "data/tilesets/secondary/mauville/anim/0/4.4bpp"
-
- .align 2
-TilesetAnimTiles_Mauville_1_0: @ 837B864
- .incbin "data/tilesets/secondary/mauville/anim/1/0.4bpp"
-
- .align 2
-TilesetAnimTiles_Mauville_1_1: @ 837B8E4
- .incbin "data/tilesets/secondary/mauville/anim/1/1.4bpp"
-
- .align 2
-TilesetAnimTiles_Mauville_1_2: @ 837B964
- .incbin "data/tilesets/secondary/mauville/anim/1/2.4bpp"
-
- .align 2
-TilesetAnimTiles_Mauville_1_3: @ 837B9E4
- .incbin "data/tilesets/secondary/mauville/anim/1/3.4bpp"
-
- .align 2
-TilesetAnimTiles_Mauville_1_4: @ 837BA64
- .incbin "data/tilesets/secondary/mauville/anim/1/4.4bpp"
-
- .align 2
-gUnknown_0837BAE4:: @ 837BAE4
- .4byte 0x06004C00
- .4byte 0x06004C80
- .4byte 0x06004D00
- .4byte 0x06004D80
- .4byte 0x06004E00
- .4byte 0x06004E80
- .4byte 0x06004F00
- .4byte 0x06004F80
-
- .align 2
-gUnknown_0837BB04:: @ 837BB04
- .4byte 0x06005000
- .4byte 0x06005080
- .4byte 0x06005100
- .4byte 0x06005180
- .4byte 0x06005200
- .4byte 0x06005280
- .4byte 0x06005300
- .4byte 0x06005380
-
- .align 2
-gTilesetAnimTable_Mauville_0A:: @ 837BB24
- .4byte TilesetAnimTiles_Mauville_0_0
- .4byte TilesetAnimTiles_Mauville_0_0
- .4byte TilesetAnimTiles_Mauville_0_1
- .4byte TilesetAnimTiles_Mauville_0_2
- .4byte TilesetAnimTiles_Mauville_0_3
- .4byte TilesetAnimTiles_Mauville_0_3
- .4byte TilesetAnimTiles_Mauville_0_3
- .4byte TilesetAnimTiles_Mauville_0_3
- .4byte TilesetAnimTiles_Mauville_0_3
- .4byte TilesetAnimTiles_Mauville_0_3
- .4byte TilesetAnimTiles_Mauville_0_2
- .4byte TilesetAnimTiles_Mauville_0_1
-
- .align 2
-gTilesetAnimTable_Mauville_1A:: @ 837BB54
- .4byte TilesetAnimTiles_Mauville_1_0
- .4byte TilesetAnimTiles_Mauville_1_0
- .4byte TilesetAnimTiles_Mauville_1_1
- .4byte TilesetAnimTiles_Mauville_1_2
- .4byte TilesetAnimTiles_Mauville_1_3
- .4byte TilesetAnimTiles_Mauville_1_3
- .4byte TilesetAnimTiles_Mauville_1_3
- .4byte TilesetAnimTiles_Mauville_1_3
- .4byte TilesetAnimTiles_Mauville_1_3
- .4byte TilesetAnimTiles_Mauville_1_3
- .4byte TilesetAnimTiles_Mauville_1_2
- .4byte TilesetAnimTiles_Mauville_1_1
-
- .align 2
-gTilesetAnimTable_Mauville_0B:: @ 837BB84
- .4byte TilesetAnimTiles_Mauville_0_0
- .4byte TilesetAnimTiles_Mauville_0_0
- .4byte TilesetAnimTiles_Mauville_0_4
- .4byte TilesetAnimTiles_Mauville_0_4
-
- .align 2
-gTilesetAnimTable_Mauville_1B:: @ 837BB94
- .4byte TilesetAnimTiles_Mauville_1_0
- .4byte TilesetAnimTiles_Mauville_1_0
- .4byte TilesetAnimTiles_Mauville_1_4
- .4byte TilesetAnimTiles_Mauville_1_4
-
- .align 2
-TilesetAnimTiles_Rustboro_0_0: @ 837BBA4
- .incbin "data/tilesets/secondary/rustboro/anim/0/0.4bpp"
-
- .align 2
-TilesetAnimTiles_Rustboro_0_1: @ 837BC24
- .incbin "data/tilesets/secondary/rustboro/anim/0/1.4bpp"
-
- .align 2
-TilesetAnimTiles_Rustboro_0_2: @ 837BCA4
- .incbin "data/tilesets/secondary/rustboro/anim/0/2.4bpp"
-
- .align 2
-TilesetAnimTiles_Rustboro_0_3: @ 837BD24
- .incbin "data/tilesets/secondary/rustboro/anim/0/3.4bpp"
-
- .align 2
-TilesetAnimTiles_Rustboro_0_4: @ 837BDA4
- .incbin "data/tilesets/secondary/rustboro/anim/0/4.4bpp"
-
- .align 2
-TilesetAnimTiles_Rustboro_0_5: @ 837BE24
- .incbin "data/tilesets/secondary/rustboro/anim/0/5.4bpp"
-
- .align 2
-TilesetAnimTiles_Rustboro_0_6: @ 837BEA4
- .incbin "data/tilesets/secondary/rustboro/anim/0/6.4bpp"
-
- .align 2
-TilesetAnimTiles_Rustboro_0_7: @ 837BF24
- .incbin "data/tilesets/secondary/rustboro/anim/0/7.4bpp"
-
- .align 2
-gUnknown_0837BFA4:: @ 837BFA4
- .4byte 0x06005000
- .4byte 0x06005080
- .4byte 0x06005100
- .4byte 0x06005180
- .4byte 0x06005200
- .4byte 0x06005280
- .4byte 0x06005300
- .4byte 0x06005380
-
- .align 2
-gTilesetAnimTable_Rustboro_0:: @ 837BFC4
- .4byte TilesetAnimTiles_Rustboro_0_0
- .4byte TilesetAnimTiles_Rustboro_0_1
- .4byte TilesetAnimTiles_Rustboro_0_2
- .4byte TilesetAnimTiles_Rustboro_0_3
- .4byte TilesetAnimTiles_Rustboro_0_4
- .4byte TilesetAnimTiles_Rustboro_0_5
- .4byte TilesetAnimTiles_Rustboro_0_6
- .4byte TilesetAnimTiles_Rustboro_0_7
-
- .align 2
-TilesetAnimTiles_Rustboro_1_0: @ 837BFE4
- .incbin "data/tilesets/secondary/rustboro/anim/1/0.4bpp"
-
- .align 2
-TilesetAnimTiles_Rustboro_1_1: @ 837C064
- .incbin "data/tilesets/secondary/rustboro/anim/1/1.4bpp"
-
- .align 2
-gTilesetAnimTable_Rustboro_1:: @ 837C0E4
- .4byte TilesetAnimTiles_Rustboro_1_0
- .4byte TilesetAnimTiles_Rustboro_1_1
-
- .align 2
-TilesetAnimTiles_Cave_0: @ 837C0EC
- .incbin "data/tilesets/secondary/cave/anim/0.4bpp"
-
- .align 2
-TilesetAnimTiles_Cave_1: @ 837C16C
- .incbin "data/tilesets/secondary/cave/anim/1.4bpp"
-
- .align 2
-TilesetAnimTiles_Cave_2: @ 837C1EC
- .incbin "data/tilesets/secondary/cave/anim/2.4bpp"
-
- .align 2
-TilesetAnimTiles_Cave_3: @ 837C26C
- .incbin "data/tilesets/secondary/cave/anim/3.4bpp"
-
- .incbin "data/tilesets/secondary/cave/anim/unused/0.4bpp"
- .incbin "data/tilesets/secondary/cave/anim/unused/1.4bpp"
- .incbin "data/tilesets/secondary/cave/anim/unused/2.4bpp"
- .incbin "data/tilesets/secondary/cave/anim/unused/3.4bpp"
-
- .space 32
-
- .align 2
-gTilesetAnimTable_Cave:: @ 837C50C
- .4byte TilesetAnimTiles_Cave_0
- .4byte TilesetAnimTiles_Cave_1
- .4byte TilesetAnimTiles_Cave_2
- .4byte TilesetAnimTiles_Cave_3
-
- .align 2
-TilesetAnimTiles_EverGrande_0: @ 837C51C
- .incbin "data/tilesets/secondary/ever_grande/anim/0.4bpp"
-
- .align 2
-TilesetAnimTiles_EverGrande_1: @ 837C59C
- .incbin "data/tilesets/secondary/ever_grande/anim/1.4bpp"
-
- .align 2
-TilesetAnimTiles_EverGrande_2: @ 837C61C
- .incbin "data/tilesets/secondary/ever_grande/anim/2.4bpp"
-
- .align 2
-TilesetAnimTiles_EverGrande_3: @ 837C69C
- .incbin "data/tilesets/secondary/ever_grande/anim/3.4bpp"
-
- .align 2
-TilesetAnimTiles_EverGrande_4: @ 837C71C
- .incbin "data/tilesets/secondary/ever_grande/anim/4.4bpp"
-
- .align 2
-TilesetAnimTiles_EverGrande_5: @ 837C79C
- .incbin "data/tilesets/secondary/ever_grande/anim/5.4bpp"
-
- .align 2
-TilesetAnimTiles_EverGrande_6: @ 837C81C
- .incbin "data/tilesets/secondary/ever_grande/anim/6.4bpp"
-
- .align 2
-TilesetAnimTiles_EverGrande_7: @ 837C89C
- .incbin "data/tilesets/secondary/ever_grande/anim/7.4bpp"
-
- .space 32
-
- .align 2
-gUnknown_0837C93C:: @ 837C93C
- .4byte 0x06005C00
- .4byte 0x06005C80
- .4byte 0x06005D00
- .4byte 0x06005D80
- .4byte 0x06005E00
- .4byte 0x06005E80
- .4byte 0x06005F00
- .4byte 0x06005F80
-
- .align 2
-gTilesetAnimTable_EverGrande:: @ 837C95C
- .4byte TilesetAnimTiles_EverGrande_0
- .4byte TilesetAnimTiles_EverGrande_1
- .4byte TilesetAnimTiles_EverGrande_2
- .4byte TilesetAnimTiles_EverGrande_3
- .4byte TilesetAnimTiles_EverGrande_4
- .4byte TilesetAnimTiles_EverGrande_5
- .4byte TilesetAnimTiles_EverGrande_6
- .4byte TilesetAnimTiles_EverGrande_7
-
- .align 2
-TilesetAnimTiles_Building_0: @ 837C97C
- .incbin "data/tilesets/primary/building/anim/0.4bpp"
-
- .align 2
-TilesetAnimTiles_Building_1: @ 837C9FC
- .incbin "data/tilesets/primary/building/anim/1.4bpp"
-
- .align 2
-gTilesetAnimTable_Building:: @ 837CA7C
- .4byte TilesetAnimTiles_Building_0
- .4byte TilesetAnimTiles_Building_1
-
- .align 2
-TilesetAnimTiles_SootopolisGym_0_0: @ 837CA84
- .incbin "data/tilesets/secondary/sootopolis_gym/anim/0/0.4bpp"
-
- .align 2
-TilesetAnimTiles_SootopolisGym_0_1: @ 837CC04
- .incbin "data/tilesets/secondary/sootopolis_gym/anim/0/1.4bpp"
-
- .align 2
-TilesetAnimTiles_SootopolisGym_0_2: @ 837CD84
- .incbin "data/tilesets/secondary/sootopolis_gym/anim/0/2.4bpp"
-
- .align 2
-TilesetAnimTiles_SootopolisGym_1_0: @ 837CF04
- .incbin "data/tilesets/secondary/sootopolis_gym/anim/1/0.4bpp"
-
- .align 2
-TilesetAnimTiles_SootopolisGym_1_1: @ 837D184
- .incbin "data/tilesets/secondary/sootopolis_gym/anim/1/1.4bpp"
-
- .align 2
-TilesetAnimTiles_SootopolisGym_1_2: @ 837D404
- .incbin "data/tilesets/secondary/sootopolis_gym/anim/1/2.4bpp"
-
- .align 2
-gTilesetAnimTable_SootopolisGym_0:: @ 837D684
- .4byte TilesetAnimTiles_SootopolisGym_0_0
- .4byte TilesetAnimTiles_SootopolisGym_0_1
- .4byte TilesetAnimTiles_SootopolisGym_0_2
-
- .align 2
-gTilesetAnimTable_SootopolisGym_1:: @ 837D690
- .4byte TilesetAnimTiles_SootopolisGym_1_0
- .4byte TilesetAnimTiles_SootopolisGym_1_1
- .4byte TilesetAnimTiles_SootopolisGym_1_2
-
- .align 2
-TilesetAnimTiles_EliteFour_1_0: @ 837D69C
- .incbin "data/tilesets/secondary/elite_four/anim/1/0.4bpp"
-
- .align 2
-TilesetAnimTiles_EliteFour_1_1: @ 837D71C
- .incbin "data/tilesets/secondary/elite_four/anim/1/1.4bpp"
-
- .align 2
-TilesetAnimTiles_EliteFour_0_0: @ 837D79C
- .incbin "data/tilesets/secondary/elite_four/anim/0/0.4bpp"
-
- .align 2
-TilesetAnimTiles_EliteFour_0_1: @ 837D7BC
- .incbin "data/tilesets/secondary/elite_four/anim/0/1.4bpp"
-
- .align 2
-TilesetAnimTiles_EliteFour_0_2: @ 837D7DC
- .incbin "data/tilesets/secondary/elite_four/anim/0/2.4bpp"
-
- .align 2
-TilesetAnimTiles_EliteFour_0_3: @ 837D7FC
- .incbin "data/tilesets/secondary/elite_four/anim/0/3.4bpp"
-
- .space 32
-
- .align 2
-gTilesetAnimTable_EliteFour_0:: @ 837D83C
- .4byte TilesetAnimTiles_EliteFour_0_0
- .4byte TilesetAnimTiles_EliteFour_0_1
- .4byte TilesetAnimTiles_EliteFour_0_2
- .4byte TilesetAnimTiles_EliteFour_0_3
-
- .align 2
-gTilesetAnimTable_EliteFour_1:: @ 837D84C
- .4byte TilesetAnimTiles_EliteFour_1_0
- .4byte TilesetAnimTiles_EliteFour_1_1
-
- .align 2
-TilesetAnimTiles_MauvilleGym_0: @ 837D854
- .incbin "data/tilesets/secondary/mauville_gym/anim/0.4bpp"
-
- .align 2
-TilesetAnimTiles_MauvilleGym_1: @ 837DA54
- .incbin "data/tilesets/secondary/mauville_gym/anim/1.4bpp"
-
- .space 32
-
- .align 2
-gTilesetAnimTable_MauvilleGym:: @ 837DC74
- .4byte TilesetAnimTiles_MauvilleGym_0
- .4byte TilesetAnimTiles_MauvilleGym_1
-
- .align 2
-TilesetAnimTiles_BikeShop_0: @ 837DC7C
- .incbin "data/tilesets/secondary/bike_shop/anim/0.4bpp"
-
- .align 2
-TilesetAnimTiles_BikeShop_1: @ 837DD9C
- .incbin "data/tilesets/secondary/bike_shop/anim/1.4bpp"
-
- .space 32
-
- .align 2
-gTilesetAnimTable_BikeShop:: @ 837DEDC
- .4byte TilesetAnimTiles_BikeShop_0
- .4byte TilesetAnimTiles_BikeShop_1
-
- .align 2
-gDummyPaletteStructTemplate:: @ 837DEE4
- .2byte 0xFFFF
- .space 9
- .byte 0x20
- .space 4
-
- .align 2
-gFanfares:: @ 837DEF4
- .2byte BGM_FANFA1, 80
- .2byte BGM_FANFA4, 160
- .2byte BGM_FANFA5, 220
- .2byte BGM_ME_WAZA, 220
- .2byte BGM_ME_ASA, 160
- .2byte BGM_ME_BACHI, 340
- .2byte BGM_ME_WASURE, 180
- .2byte BGM_ME_KINOMI, 120
- .2byte BGM_ME_TAMA, 710
- .2byte BGM_ME_B_BIG, 250
- .2byte BGM_ME_B_SMALL, 150
- .2byte BGM_ME_ZANNEN, 160
-
- .align 2
-gOamData_837DF24:: @ 837DF24
- .2byte 0x0000
- .2byte 0x0000
- .2byte 0x0800
-
- .align 2
-gOamData_837DF2C:: @ 837DF2C
- .2byte 0x0000
- .2byte 0x4000
- .2byte 0x0800
-
- .align 2
-gOamData_837DF34:: @ 837DF34
- .2byte 0x0000
- .2byte 0x8000
- .2byte 0x0800
-
- .align 2
-gOamData_837DF3C:: @ 837DF3C
- .2byte 0x0000
- .2byte 0xC000
- .2byte 0x0800
-
- .align 2
-gOamData_837DF44:: @ 837DF44
- .2byte 0x4000
- .2byte 0x0000
- .2byte 0x0800
-
- .align 2
-gOamData_837DF4C:: @ 837DF4C
- .2byte 0x4000
- .2byte 0x4000
- .2byte 0x0800
-
- .align 2
-gOamData_837DF54:: @ 837DF54
- .2byte 0x4000
- .2byte 0x8000
- .2byte 0x0800
-
- .align 2
-gOamData_837DF5C:: @ 837DF5C
- .2byte 0x4000
- .2byte 0xC000
- .2byte 0x0800
-
- .align 2
-gOamData_837DF64:: @ 837DF64
- .2byte 0x8000
- .2byte 0x0000
- .2byte 0x0800
-
- .align 2
-gOamData_837DF6C:: @ 837DF6C
- .2byte 0x8000
- .2byte 0x4000
- .2byte 0x0800
-
- .align 2
-gOamData_837DF74:: @ 837DF74
- .2byte 0x8000
- .2byte 0x8000
- .2byte 0x0800
-
- .align 2
-gOamData_837DF7C:: @ 837DF7C
- .2byte 0x8000
- .2byte 0xC000
- .2byte 0x0800
-
- .align 2
-gOamData_837DF84:: @ 837DF84
- .2byte 0x0100
- .2byte 0x0000
- .2byte 0x0800
-
- .align 2
-gOamData_837DF8C:: @ 837DF8C
- .2byte 0x0100
- .2byte 0x4000
- .2byte 0x0800
-
- .align 2
-gOamData_837DF94:: @ 837DF94
- .2byte 0x0100
- .2byte 0x8000
- .2byte 0x0800
-
- .align 2
-gOamData_837DF9C:: @ 837DF9C
- .2byte 0x0100
- .2byte 0xC000
- .2byte 0x0800
-
- .align 2
-gOamData_837DFA4:: @ 837DFA4
- .2byte 0x4100
- .2byte 0x0000
- .2byte 0x0800
-
- .align 2
-gOamData_837DFAC:: @ 837DFAC
- .2byte 0x4100
- .2byte 0x4000
- .2byte 0x0800
-
- .align 2
-gOamData_837DFB4:: @ 837DFB4
- .2byte 0x4100
- .2byte 0x8000
- .2byte 0x0800
-
- .align 2
-gOamData_837DFBC:: @ 837DFBC
- .2byte 0x4100
- .2byte 0xC000
- .2byte 0x0800
-
- .align 2
-gOamData_837DFC4:: @ 837DFC4
- .2byte 0x8100
- .2byte 0x0000
- .2byte 0x0800
-
- .align 2
-gOamData_837DFCC:: @ 837DFCC
- .2byte 0x8100
- .2byte 0x4000
- .2byte 0x0800
-
- .align 2
-gOamData_837DFD4:: @ 837DFD4
- .2byte 0x8100
- .2byte 0x8000
- .2byte 0x0800
-
- .align 2
-gOamData_837DFDC:: @ 837DFDC
- .2byte 0x8100
- .2byte 0xC000
- .2byte 0x0800
-
- .align 2
-gOamData_837DFE4:: @ 837DFE4
- .2byte 0x0300
- .2byte 0x0000
- .2byte 0x0800
-
- .align 2
-gOamData_837DFEC:: @ 837DFEC
- .2byte 0x0300
- .2byte 0x4000
- .2byte 0x0800
-
- .align 2
-gOamData_837DFF4:: @ 837DFF4
- .2byte 0x0300
- .2byte 0x8000
- .2byte 0x0800
-
- .align 2
-gOamData_837DFFC:: @ 837DFFC
- .2byte 0x0300
- .2byte 0xC000
- .2byte 0x0800
-
- .align 2
-gOamData_837D004:: @ 837D004
- .2byte 0x4300
- .2byte 0x0000
- .2byte 0x0800
-
- .align 2
-gOamData_837D00C:: @ 837D00C
- .2byte 0x4300
- .2byte 0x4000
- .2byte 0x0800
-
- .align 2
-gOamData_837E014:: @ 837E014
- .2byte 0x4300
- .2byte 0x8000
- .2byte 0x0800
-
- .align 2
-gOamData_837E01C:: @ 837E01C
- .2byte 0x4300
- .2byte 0xC000
- .2byte 0x0800
-
- .align 2
-gOamData_837E024:: @ 837E024
- .2byte 0x8300
- .2byte 0x0000
- .2byte 0x0800
-
- .align 2
-gOamData_837E02C:: @ 837E02C
- .2byte 0x8300
- .2byte 0x4000
- .2byte 0x0800
-
- .align 2
-gOamData_837E034:: @ 837E034
- .2byte 0x8300
- .2byte 0x8000
- .2byte 0x0800
-
- .align 2
-gOamData_837E03C:: @ 837E03C
- .2byte 0x8300
- .2byte 0xC000
- .2byte 0x0800
-
- .align 2
-gOamData_837E044:: @ 837E044
- .2byte 0x0400
- .2byte 0x0000
- .2byte 0x0800
-
- .align 2
-gOamData_837E04C:: @ 837E04C
- .2byte 0x0400
- .2byte 0x4000
- .2byte 0x0800
-
- .align 2
-gOamData_837E054:: @ 837E054
- .2byte 0x0400
- .2byte 0x8000
- .2byte 0x0800
-
- .align 2
-gOamData_837E05C:: @ 837E05C
- .2byte 0x0400
- .2byte 0xC000
- .2byte 0x0800
-
- .align 2
-gOamData_837E064:: @ 837E064
- .2byte 0x4400
- .2byte 0x0000
- .2byte 0x0800
-
- .align 2
-gOamData_837E06C:: @ 837E06C
- .2byte 0x4400
- .2byte 0x4000
- .2byte 0x0800
-
- .align 2
-gOamData_837E074:: @ 837E074
- .2byte 0x4400
- .2byte 0x8000
- .2byte 0x0800
-
- .align 2
-gOamData_837E07C:: @ 837E07C
- .2byte 0x4400
- .2byte 0xC000
- .2byte 0x0800
-
- .align 2
-gOamData_837E084:: @ 837E084
- .2byte 0x8400
- .2byte 0x0000
- .2byte 0x0800
-
- .align 2
-gOamData_837E08C:: @ 837E08C
- .2byte 0x8400
- .2byte 0x4000
- .2byte 0x0800
-
- .align 2
-gOamData_837E094:: @ 837E094
- .2byte 0x8400
- .2byte 0x8000
- .2byte 0x0800
-
- .align 2
-gOamData_837E09C:: @ 837E09C
- .2byte 0x8400
- .2byte 0xC000
- .2byte 0x0800
-
- .align 2
-gOamData_837E0A4:: @ 837E0A4
- .2byte 0x0500
- .2byte 0x0000
- .2byte 0x0800
-
- .align 2
-gOamData_837E0AC:: @ 837E0AC
- .2byte 0x0500
- .2byte 0x4000
- .2byte 0x0800
-
- .align 2
-gOamData_837E0B4:: @ 837E0B4
- .2byte 0x0500
- .2byte 0x8000
- .2byte 0x0800
-
- .align 2
-gOamData_837E0BC:: @ 837E0BC
- .2byte 0x0500
- .2byte 0xC000
- .2byte 0x0800
-
- .align 2
-gOamData_837E0C4:: @ 837E0C4
- .2byte 0x4500
- .2byte 0x0000
- .2byte 0x0800
-
- .align 2
-gOamData_837E0CC:: @ 837E0CC
- .2byte 0x4500
- .2byte 0x4000
- .2byte 0x0800
-
- .align 2
-gOamData_837E0D4:: @ 837E0D4
- .2byte 0x4500
- .2byte 0x8000
- .2byte 0x0800
-
- .align 2
-gOamData_837E0DC:: @ 837E0DC
- .2byte 0x4500
- .2byte 0xC000
- .2byte 0x0800
-
- .align 2
-gOamData_837E0E4:: @ 837E0E4
- .2byte 0x8500
- .2byte 0x0000
- .2byte 0x0800
-
- .align 2
-gOamData_837E0EC:: @ 837E0EC
- .2byte 0x8500
- .2byte 0x4000
- .2byte 0x0800
-
- .align 2
-gOamData_837E0F4:: @ 837E0F4
- .2byte 0x8500
- .2byte 0x8000
- .2byte 0x0800
-
- .align 2
-gOamData_837E0FC:: @ 837E0FC
- .2byte 0x8500
- .2byte 0xC000
- .2byte 0x0800
-
- .align 2
-gOamData_837E104:: @ 837E104
- .2byte 0x0700
- .2byte 0x0000
- .2byte 0x0800
-
- .align 2
-gOamData_837E10C:: @ 837E10C
- .2byte 0x0700
- .2byte 0x4000
- .2byte 0x0800
-
- .align 2
-gOamData_837E114:: @ 837E114
- .2byte 0x0700
- .2byte 0x8000
- .2byte 0x0800
-
- .align 2
-gOamData_837E11C:: @ 837E11C
- .2byte 0x0700
- .2byte 0xC000
- .2byte 0x0800
-
- .align 2
-gOamData_837E124:: @ 837E124
- .2byte 0x4700
- .2byte 0x0000
- .2byte 0x0800
-
- .align 2
-gOamData_837E12C:: @ 837E12C
- .2byte 0x4700
- .2byte 0x4000
- .2byte 0x0800
-
- .align 2
-gOamData_837E134:: @ 837E134
- .2byte 0x4700
- .2byte 0x8000
- .2byte 0x0800
-
- .align 2
-gOamData_837E13C:: @ 837E13C
- .2byte 0x4700
- .2byte 0xC000
- .2byte 0x0800
-
- .align 2
-gOamData_837E144:: @ 837E144
- .2byte 0x8700
- .2byte 0x0000
- .2byte 0x0800
-
- .align 2
-gOamData_837E14C:: @ 837E14C
- .2byte 0x8700
- .2byte 0x4000
- .2byte 0x0800
-
- .align 2
-gOamData_837E154:: @ 837E154
- .2byte 0x8700
- .2byte 0x8000
- .2byte 0x0800
-
- .align 2
-gOamData_837E15C:: @ 837E15C
- .2byte 0x8700
- .2byte 0xC000
- .2byte 0x0800
-
- .align 2
-gBattleAnimPicTable:: @ 837E164
- obj_tiles gBattleAnimSpriteSheet_000, 0x200, 10000
- obj_tiles gBattleAnimSpriteSheet_001, 0x300, 10001
- obj_tiles gBattleAnimSpriteSheet_002, 0x200, 10002
- obj_tiles gBattleAnimSpriteSheet_003, 0x100, 10003
- obj_tiles gBattleAnimSpriteSheet_004, 0x200, 10004
- obj_tiles gBattleAnimSpriteSheet_005, 0x400, 10005
- obj_tiles gBattleAnimSpriteSheet_006, 0x180, 10006
- obj_tiles gBattleAnimSpriteSheet_007, 0x800, 10007
- obj_tiles gBattleAnimSpriteSheet_008, 0x20, 10008
- obj_tiles gBattleAnimSpriteSheet_009, 0x400, 10009
- obj_tiles gBattleAnimSpriteSheet_010, 0x1200, 10010
- obj_tiles gBattleAnimSpriteSheet_011, 0x180, 10011
- obj_tiles gBattleAnimSpriteSheet_012, 0x80, 10012
- obj_tiles gBattleAnimSpriteSheet_013, 0x80, 10013
- obj_tiles gBattleAnimSpriteSheet_014, 0x280, 10014
- obj_tiles gBattleAnimSpriteSheet_015, 0x80, 10015
- obj_tiles gBattleAnimSpriteSheet_016, 0x100, 10016
- obj_tiles gBattleAnimSpriteSheet_017, 0x20, 10017
- obj_tiles gBattleAnimSpriteSheet_018, 0x80, 10018
- obj_tiles gBattleAnimSpriteSheet_019, 0x400, 10019
- obj_tiles gBattleAnimSpriteSheet_020, 0x200, 10020
- obj_tiles gBattleAnimSpriteSheet_021, 0xA00, 10021
- obj_tiles gBattleAnimSpriteSheet_021, 0xA00, 10022
- obj_tiles gBattleAnimSpriteSheet_023, 0x380, 10023
- obj_tiles gBattleAnimSpriteSheet_024, 0x300, 10024
- obj_tiles gBattleAnimSpriteSheet_025, 0xA00, 10025
- obj_tiles gBattleAnimSpriteSheet_026, 0xA00, 10026
- obj_tiles gBattleAnimSpriteSheet_027, 0xA00, 10027
- obj_tiles gBattleAnimSpriteSheet_028, 0xA00, 10028
- obj_tiles gBattleAnimSpriteSheet_029, 0xA00, 10029
- obj_tiles gBattleAnimSpriteSheet_030, 0xA00, 10030
- obj_tiles gBattleAnimSpriteSheet_031, 0xE00, 10031
- obj_tiles gBattleAnimSpriteSheet_032, 0x380, 10032
- obj_tiles gBattleAnimSpriteSheet_033, 0x1000, 10033
- obj_tiles gBattleAnimSpriteSheet_034, 0x800, 10034
- obj_tiles gBattleAnimSpriteSheet_035, 0xA00, 10035
- obj_tiles gBattleAnimSpriteSheet_036, 0x800, 10036
- obj_tiles gBattleAnimSpriteSheet_037, 0xA00, 10037
- obj_tiles gBattleAnimSpriteSheet_038, 0xA00, 10038
- obj_tiles gBattleAnimSpriteSheet_039, 0xA00, 10039
- obj_tiles gBattleAnimSpriteSheet_040, 0xA00, 10040
- obj_tiles gBattleAnimSpriteSheet_041, 0xA00, 10041
- obj_tiles gBattleAnimSpriteSheet_042, 0xA00, 10042
- obj_tiles gBattleAnimSpriteSheet_043, 0xA00, 10043
- obj_tiles gBattleAnimSpriteSheet_044, 0xA00, 10044
- obj_tiles gBattleAnimSpriteSheet_045, 0xA00, 10045
- obj_tiles gBattleAnimSpriteSheet_046, 0x1000, 10046
- obj_tiles gBattleAnimSpriteSheet_046, 0x1000, 10047
- obj_tiles gBattleAnimSpriteSheet_048, 0x1000, 10048
- obj_tiles gBattleAnimSpriteSheet_048, 0x1000, 10049
- obj_tiles gBattleAnimSpriteSheet_050, 0x200, 10050
- obj_tiles gBattleAnimSpriteSheet_051, 0x200, 10051
- obj_tiles gBattleAnimSpriteSheet_052, 0x200, 10052
- obj_tiles gBattleAnimSpriteSheet_053, 0x800, 10053
- obj_tiles gBattleAnimSpriteSheet_054, 0x80, 10054
- obj_tiles gBattleAnimSpriteSheet_055, 0x200, 10055
- obj_tiles gBattleAnimSpriteSheet_056, 0x1000, 10056
- obj_tiles gBattleAnimSpriteSheet_057, 0x180, 10057
- obj_tiles gBattleAnimSpriteSheet_058, 0xC00, 10058
- obj_tiles gBattleAnimSpriteSheet_059, 0x100, 10059
- obj_tiles gBattleAnimSpriteSheet_060, 0x40, 10060
- obj_tiles gBattleAnimSpriteSheet_061, 0x180, 10061
- obj_tiles gBattleAnimSpriteSheet_062, 0x800, 10062
- obj_tiles gBattleAnimSpriteSheet_063, 0x480, 10063
- obj_tiles gBattleAnimSpriteSheet_064, 0x200, 10064
- obj_tiles gBattleAnimSpriteSheet_065, 0x200, 10065
- obj_tiles gBattleAnimSpriteSheet_066, 0x100, 10066
- obj_tiles gBattleAnimSpriteSheet_065, 0x200, 10067
- obj_tiles gBattleAnimSpriteSheet_065, 0x200, 10068
- obj_tiles gBattleAnimSpriteSheet_065, 0x200, 10069
- obj_tiles gBattleAnimSpriteSheet_070, 0x200, 10070
- obj_tiles gBattleAnimSpriteSheet_071, 0xA00, 10071
- obj_tiles gBattleAnimSpriteSheet_072, 0x300, 10072
- obj_tiles gBattleAnimSpriteSheet_073, 0x180, 10073
- obj_tiles gBattleAnimSpriteSheet_074, 0xA0, 10074
- obj_tiles gBattleAnimSpriteSheet_075, 0x700, 10075
- obj_tiles gBattleAnimSpriteSheet_076, 0x400, 10076
- obj_tiles gBattleAnimSpriteSheet_077, 0x200, 10077
- obj_tiles gBattleAnimSpriteSheet_078, 0x300, 10078
- obj_tiles gBattleAnimSpriteSheet_079, 0xC00, 10079
- obj_tiles gBattleAnimSpriteSheet_080, 0xA00, 10080
- obj_tiles gBattleAnimSpriteSheet_081, 0x80, 10081
- obj_tiles gBattleAnimSpriteSheet_082, 0x40, 10082
- obj_tiles gBattleAnimSpriteSheet_083, 0xE00, 10083
- obj_tiles gBattleAnimSpriteSheet_084, 0xE00, 10084
- obj_tiles gBattleAnimSpriteSheet_085, 0x280, 10085
- obj_tiles gBattleAnimSpriteSheet_086, 0x200, 10086
- obj_tiles gBattleAnimSpriteSheet_087, 0x80, 10087
- obj_tiles gBattleAnimSpriteSheet_088, 0xC0, 10088
- obj_tiles gBattleAnimSpriteSheet_089, 0xA00, 10089
- obj_tiles gBattleAnimSpriteSheet_090, 0x200, 10090
- obj_tiles gBattleAnimSpriteSheet_091, 0x180, 10091
- obj_tiles gBattleAnimSpriteSheet_092, 0x80, 10092
- obj_tiles gBattleAnimSpriteSheet_093, 0x1000, 10093
- obj_tiles gBattleAnimSpriteSheet_094, 0xA00, 10094
- obj_tiles gBattleAnimSpriteSheet_095, 0x180, 10095
- obj_tiles gBattleAnimSpriteSheet_096, 0x380, 10096
- obj_tiles gBattleAnimSpriteSheet_097, 0xC00, 10097
- obj_tiles gBattleAnimSpriteSheet_098, 0x200, 10098
- obj_tiles gBattleAnimSpriteSheet_099, 0x200, 10099
- obj_tiles gBattleAnimSpriteSheet_100, 0x200, 10100
- obj_tiles gBattleAnimSpriteSheet_101, 0x200, 10101
- obj_tiles gBattleAnimSpriteSheet_102, 0x400, 10102
- obj_tiles gBattleAnimSpriteSheet_103, 0x80, 10103
- obj_tiles gBattleAnimSpriteSheet_104, 0x400, 10104
- obj_tiles gBattleAnimSpriteSheet_105, 0xC00, 10105
- obj_tiles gBattleAnimSpriteSheet_106, 0x200, 10106
- obj_tiles gBattleAnimSpriteSheet_107, 0x1000, 10107
- obj_tiles gBattleAnimSpriteSheet_108, 0xA00, 10108
- obj_tiles gBattleAnimSpriteSheet_109, 0x20, 10109
- obj_tiles gBattleAnimSpriteSheet_110, 0xE00, 10110
- obj_tiles gBattleAnimSpriteSheet_111, 0x80, 10111
- obj_tiles gBattleAnimSpriteSheet_112, 0xA00, 10112
- obj_tiles gBattleAnimSpriteSheet_113, 0x400, 10113
- obj_tiles gBattleAnimSpriteSheet_114, 0x200, 10114
- obj_tiles gBattleAnimSpriteSheet_115, 0x700, 10115
- obj_tiles gBattleAnimSpriteSheet_116, 0x800, 10116
- obj_tiles gBattleAnimSpriteSheet_117, 0xA00, 10117
- obj_tiles gBattleAnimSpriteSheet_118, 0x600, 10118
- obj_tiles gBattleAnimSpriteSheet_119, 0x800, 10119
- obj_tiles gBattleAnimSpriteSheet_120, 0x200, 10120
- obj_tiles gBattleAnimSpriteSheet_121, 0x40, 10121
- obj_tiles gBattleAnimSpriteSheet_122, 0x180, 10122
- obj_tiles gBattleAnimSpriteSheet_123, 0x600, 10123
- obj_tiles gBattleAnimSpriteSheet_124, 0x600, 10124
- obj_tiles gBattleAnimSpriteSheet_125, 0x200, 10125
- obj_tiles gBattleAnimSpriteSheet_126, 0x80, 10126
- obj_tiles gBattleAnimSpriteSheet_127, 0x200, 10127
- obj_tiles gBattleAnimSpriteSheet_128, 0x800, 10128
- obj_tiles gBattleAnimSpriteSheet_129, 0x80, 10129
- obj_tiles gBattleAnimSpriteSheet_130, 0xA00, 10130
- obj_tiles gBattleAnimSpriteSheet_131, 0x280, 10131
- obj_tiles gBattleAnimSpriteSheet_132, 0x280, 10132
- obj_tiles gBattleAnimSpriteSheet_133, 0x100, 10133
- obj_tiles gBattleAnimSpriteSheet_134, 0x200, 10134
- obj_tiles gBattleAnimSpriteSheet_135, 0x200, 10135
- obj_tiles gBattleAnimSpriteSheet_136, 0x20, 10136
- obj_tiles gBattleAnimSpriteSheet_137, 0xA00, 10137
- obj_tiles gBattleAnimSpriteSheet_138, 0x800, 10138
- obj_tiles gBattleAnimSpriteSheet_139, 0x800, 10139
- obj_tiles gBattleAnimSpriteSheet_140, 0xC0, 10140
- obj_tiles gBattleAnimSpriteSheet_141, 0x1C0, 10141
- obj_tiles gBattleAnimSpriteSheet_142, 0x100, 10142
- obj_tiles gBattleAnimSpriteSheet_143, 0x800, 10143
- obj_tiles gBattleAnimSpriteSheet_144, 0x200, 10144
- obj_tiles gBattleAnimSpriteSheet_145, 0x800, 10145
- obj_tiles gBattleAnimSpriteSheet_146, 0x180, 10146
- obj_tiles gBattleAnimSpriteSheet_147, 0x180, 10147
- obj_tiles gBattleAnimSpriteSheet_148, 0x200, 10148
- obj_tiles gBattleAnimSpriteSheet_149, 0x200, 10149
- obj_tiles gBattleAnimSpriteSheet_150, 0x180, 10150
- obj_tiles gBattleAnimSpriteSheet_151, 0x400, 10151
- obj_tiles gBattleAnimSpriteSheet_152, 0x80, 10152
- obj_tiles gBattleAnimSpriteSheet_153, 0x100, 10153
- obj_tiles gBattleAnimSpriteSheet_154, 0x100, 10154
- obj_tiles gBattleAnimSpriteSheet_155, 0x140, 10155
- obj_tiles gBattleAnimSpriteSheet_156, 0x800, 10156
- obj_tiles gBattleAnimSpriteSheet_157, 0x200, 10157
- obj_tiles gBattleAnimSpriteSheet_158, 0x100, 10158
- obj_tiles gBattleAnimSpriteSheet_159, 0xA0, 10159
- obj_tiles gBattleAnimSpriteSheet_160, 0x100, 10160
- obj_tiles gBattleAnimSpriteSheet_161, 0x80, 10161
- obj_tiles gBattleAnimSpriteSheet_162, 0x300, 10162
- obj_tiles gBattleAnimSpriteSheet_163, 0x100, 10163
- obj_tiles gBattleAnimSpriteSheet_163, 0x100, 10164
- obj_tiles gBattleAnimSpriteSheet_163, 0x100, 10165
- obj_tiles gBattleAnimSpriteSheet_166, 0x800, 10166
- obj_tiles gBattleAnimSpriteSheet_166, 0x800, 10167
- obj_tiles gBattleAnimSpriteSheet_166, 0x800, 10168
- obj_tiles gBattleAnimSpriteSheet_166, 0x800, 10169
- obj_tiles gBattleAnimSpriteSheet_166, 0x800, 10170
- obj_tiles gBattleAnimSpriteSheet_171, 0x80, 10171
- obj_tiles gBattleAnimSpriteSheet_144, 0x200, 10172
- obj_tiles gBattleAnimSpriteSheet_173, 0x200, 10173
- obj_tiles gBattleAnimSpriteSheet_174, 0x200, 10174
- obj_tiles gBattleAnimSpriteSheet_175, 0x80, 10175
- obj_tiles gBattleAnimSpriteSheet_176, 0x200, 10176
- obj_tiles gBattleAnimSpriteSheet_177, 0x500, 10177
- obj_tiles gBattleAnimSpriteSheet_178, 0x800, 10178
- obj_tiles gBattleAnimSpriteSheet_179, 0x400, 10179
- obj_tiles gBattleAnimSpriteSheet_180, 0x20, 10180
- obj_tiles gBattleAnimSpriteSheet_181, 0x800, 10181
- obj_tiles gBattleAnimSpriteSheet_182, 0x100, 10182
- obj_tiles gBattleAnimSpriteSheet_183, 0x800, 10183
- obj_tiles gBattleAnimSpriteSheet_184, 0x400, 10184
- obj_tiles gBattleAnimSpriteSheet_185, 0xA00, 10185
- obj_tiles gBattleAnimSpriteSheet_186, 0x1000, 10186
- obj_tiles gBattleAnimSpriteSheet_187, 0x800, 10187
- obj_tiles gBattleAnimSpriteSheet_188, 0x400, 10188
- obj_tiles gBattleAnimSpriteSheet_189, 0x200, 10189
- obj_tiles gBattleAnimSpriteSheet_190, 0x800, 10190
- obj_tiles gBattleAnimSpriteSheet_191, 0x800, 10191
- obj_tiles gBattleAnimSpriteSheet_192, 0x800, 10192
- obj_tiles gBattleAnimSpriteSheet_193, 0x200, 10193
- obj_tiles gBattleAnimSpriteSheet_194, 0x800, 10194
- obj_tiles gBattleAnimSpriteSheet_195, 0x200, 10195
- obj_tiles gBattleAnimSpriteSheet_196, 0x800, 10196
- obj_tiles gBattleAnimSpriteSheet_197, 0x200, 10197
- obj_tiles gBattleAnimSpriteSheet_198, 0x800, 10198
- obj_tiles gBattleAnimSpriteSheet_199, 0x400, 10199
- obj_tiles gBattleAnimSpriteSheet_200, 0x200, 10200
- obj_tiles gBattleAnimSpriteSheet_201, 0xA80, 10201
- obj_tiles gBattleAnimSpriteSheet_202, 0x600, 10202
- obj_tiles gBattleAnimSpriteSheet_203, 0x800, 10203
- obj_tiles gBattleAnimSpriteSheet_204, 0x200, 10204
- obj_tiles gBattleAnimSpriteSheet_205, 0x600, 10205
- obj_tiles gBattleAnimSpriteSheet_206, 0x800, 10206
- obj_tiles gBattleAnimSpriteSheet_207, 0x180, 10207
- obj_tiles gBattleAnimSpriteSheet_208, 0x800, 10208
- obj_tiles gBattleAnimSpriteSheet_209, 0x800, 10209
- obj_tiles gBattleAnimSpriteSheet_210, 0x80, 10210
- obj_tiles gBattleAnimSpriteSheet_211, 0x80, 10211
- obj_tiles gBattleAnimSpriteSheet_212, 0x800, 10212
- obj_tiles gBattleAnimSpriteSheet_213, 0x800, 10213
- obj_tiles gBattleAnimSpriteSheet_214, 0x600, 10214
- obj_tiles gBattleAnimSpriteSheet_215, 0x600, 10215
- obj_tiles gBattleAnimSpriteSheet_210, 0x80, 10216
- obj_tiles gBattleAnimSpriteSheet_217, 0x80, 10217
- obj_tiles gBattleAnimSpriteSheet_218, 0x180, 10218
- obj_tiles gBattleAnimSpriteSheet_210, 0x80, 10219
- obj_tiles gBattleAnimSpriteSheet_220, 0x200, 10220
- obj_tiles gBattleAnimSpriteSheet_221, 0x400, 10221
- obj_tiles gBattleAnimSpriteSheet_222, 0xA00, 10222
- obj_tiles gBattleAnimSpriteSheet_223, 0x800, 10223
- obj_tiles gBattleAnimSpriteSheet_224, 0x200, 10224
- obj_tiles gBattleAnimSpriteSheet_225, 0x400, 10225
- obj_tiles gBattleAnimSpriteSheet_226, 0x80, 10226
- obj_tiles gBattleAnimSpriteSheet_227, 0x800, 10227
- obj_tiles gBattleAnimSpriteSheet_228, 0x200, 10228
- obj_tiles gBattleAnimSpriteSheet_229, 0x300, 10229
- obj_tiles gBattleAnimSpriteSheet_230, 0x800, 10230
- obj_tiles gBattleAnimSpriteSheet_231, 0x380, 10231
- obj_tiles gBattleAnimSpriteSheet_232, 0x800, 10232
- obj_tiles gBattleAnimSpriteSheet_233, 0xC0, 10233
- obj_tiles gBattleAnimSpriteSheet_234, 0x800, 10234
- obj_tiles gBattleAnimSpriteSheet_235, 0x60, 10235
- obj_tiles gBattleAnimSpriteSheet_235, 0x60, 10236
- obj_tiles gBattleAnimSpriteSheet_235, 0x60, 10237
- obj_tiles gBattleAnimSpriteSheet_238, 0x80, 10238
- obj_tiles gBattleAnimSpriteSheet_239, 0x180, 10239
- obj_tiles gBattleAnimSpriteSheet_240, 0x180, 10240
- obj_tiles gBattleAnimSpriteSheet_241, 0x200, 10241
- obj_tiles gBattleAnimSpriteSheet_242, 0x200, 10242
- obj_tiles gBattleAnimSpriteSheet_243, 0x20, 10243
- obj_tiles gBattleAnimSpriteSheet_244, 0x400, 10244
- obj_tiles gBattleAnimSpriteSheet_245, 0x600, 10245
- obj_tiles gBattleAnimSpriteSheet_246, 0x1000, 10246
- obj_tiles gBattleAnimSpriteSheet_247, 0x400, 10247
- obj_tiles gBattleAnimSpriteSheet_248, 0x20, 10248
- obj_tiles gBattleAnimSpriteSheet_249, 0x80, 10249
- obj_tiles gBattleAnimSpriteSheet_250, 0x800, 10250
- obj_tiles gBattleAnimSpriteSheet_251, 0x80, 10251
- obj_tiles gBattleAnimSpriteSheet_252, 0x200, 10252
- obj_tiles gBattleAnimSpriteSheet_253, 0x400, 10253
- obj_tiles gBattleAnimSpriteSheet_254, 0x200, 10254
- obj_tiles gBattleAnimSpriteSheet_255, 0x200, 10255
- obj_tiles gBattleAnimSpriteSheet_256, 0x800, 10256
- obj_tiles gBattleAnimSpriteSheet_257, 0x280, 10257
- obj_tiles gBattleAnimSpriteSheet_258, 0x200, 10258
- obj_tiles gBattleAnimSpriteSheet_149, 0x200, 10259
- obj_tiles gBattleAnimSpriteSheet_260, 0x400, 10260
- obj_tiles gBattleAnimSpriteSheet_261, 0x200, 10261
- obj_tiles gBattleAnimSpriteSheet_262, 0x200, 10262
- obj_tiles gBattleAnimSpriteSheet_263, 0x80, 10263
- obj_tiles gBattleAnimSpriteSheet_264, 0x20, 10264
- obj_tiles gBattleAnimSpriteSheet_264, 0x20, 10265
- obj_tiles gBattleAnimSpriteSheet_266, 0x80, 10266
- obj_tiles gBattleAnimSpriteSheet_212, 0x800, 10267
- obj_tiles gBattleAnimSpriteSheet_264, 0x20, 10268
- obj_tiles gBattleAnimSpriteSheet_269, 0x80, 10269
- obj_tiles gBattleAnimSpriteSheet_270, 0x400, 10270
- obj_tiles gBattleAnimSpriteSheet_271, 0x80, 10271
- obj_tiles gBattleAnimSpriteSheet_272, 0x800, 10272
- obj_tiles gBattleAnimSpriteSheet_273, 0x20, 10273
- obj_tiles gBattleAnimSpriteSheet_274, 0x800, 10274
- obj_tiles gBattleAnimSpriteSheet_275, 0x800, 10275
- obj_tiles gBattleAnimSpriteSheet_276, 0x800, 10276
- obj_tiles gBattleAnimSpriteSheet_277, 0x1000, 10277
- obj_tiles gBattleAnimSpriteSheet_278, 0x800, 10278
- obj_tiles gBattleAnimSpriteSheet_279, 0xA0, 10279
- obj_tiles gBattleAnimSpriteSheet_280, 0x800, 10280
- obj_tiles gBattleAnimSpriteSheet_281, 0x200, 10281
- obj_tiles gBattleAnimSpriteSheet_282, 0x600, 10282
- obj_tiles gBattleAnimSpriteSheet_283, 0x200, 10283
- obj_tiles gBattleAnimSpriteSheet_284, 0x800, 10284
- obj_tiles gBattleAnimSpriteSheet_285, 0x200, 10285
- obj_tiles gBattleAnimSpriteSheet_183, 0x800, 10286
- obj_tiles gBattleAnimSpriteSheet_056, 0x1000, 10287
- obj_tiles gBattleAnimSpriteSheet_163, 0x100, 10288
-
- .align 2
-gBattleAnimPaletteTable:: @ 837EA6C
- obj_pal gBattleAnimSpritePalette_000, 10000
- obj_pal gBattleAnimSpritePalette_001, 10001
- obj_pal gBattleAnimSpritePalette_002, 10002
- obj_pal gBattleAnimSpritePalette_003, 10003
- obj_pal gBattleAnimSpritePalette_004, 10004
- obj_pal gBattleAnimSpritePalette_005, 10005
- obj_pal gBattleAnimSpritePalette_006, 10006
- obj_pal gBattleAnimSpritePalette_007, 10007
- obj_pal gBattleAnimSpritePalette_008, 10008
- obj_pal gBattleAnimSpritePalette_009, 10009
- obj_pal gBattleAnimSpritePalette_010, 10010
- obj_pal gBattleAnimSpritePalette_011, 10011
- obj_pal gBattleAnimSpritePalette_012, 10012
- obj_pal gBattleAnimSpritePalette_013, 10013
- obj_pal gBattleAnimSpritePalette_014, 10014
- obj_pal gBattleAnimSpritePalette_015, 10015
- obj_pal gBattleAnimSpritePalette_016, 10016
- obj_pal gBattleAnimSpritePalette_016, 10017
- obj_pal gBattleAnimSpritePalette_018, 10018
- obj_pal gBattleAnimSpritePalette_019, 10019
- obj_pal gBattleAnimSpritePalette_020, 10020
- obj_pal gBattleAnimSpritePalette_021, 10021
- obj_pal gBattleAnimSpritePalette_022, 10022
- obj_pal gBattleAnimSpritePalette_023, 10023
- obj_pal gBattleAnimSpritePalette_024, 10024
- obj_pal gBattleAnimSpritePalette_025, 10025
- obj_pal gBattleAnimSpritePalette_026, 10026
- obj_pal gBattleAnimSpritePalette_027, 10027
- obj_pal gBattleAnimSpritePalette_028, 10028
- obj_pal gBattleAnimSpritePalette_029, 10029
- obj_pal gBattleAnimSpritePalette_030, 10030
- obj_pal gBattleAnimSpritePalette_031, 10031
- obj_pal gBattleAnimSpritePalette_032, 10032
- obj_pal gBattleAnimSpritePalette_033, 10033
- obj_pal gBattleAnimSpritePalette_033, 10034
- obj_pal gBattleAnimSpritePalette_033, 10035
- obj_pal gBattleAnimSpritePalette_036, 10036
- obj_pal gBattleAnimSpritePalette_036, 10037
- obj_pal gBattleAnimSpritePalette_038, 10038
- obj_pal gBattleAnimSpritePalette_039, 10039
- obj_pal gBattleAnimSpritePalette_038, 10040
- obj_pal gBattleAnimSpritePalette_038, 10041
- obj_pal gBattleAnimSpritePalette_042, 10042
- obj_pal gBattleAnimSpritePalette_043, 10043
- obj_pal gBattleAnimSpritePalette_044, 10044
- obj_pal gBattleAnimSpritePalette_045, 10045
- obj_pal gBattleAnimSpritePalette_046, 10046
- obj_pal gBattleAnimSpritePalette_047, 10046
- obj_pal gBattleAnimSpritePalette_048, 10048
- obj_pal gBattleAnimSpritePalette_049, 10049
- obj_pal gBattleAnimSpritePalette_050, 10050
- obj_pal gBattleAnimSpritePalette_050, 10051
- obj_pal gBattleAnimSpritePalette_050, 10052
- obj_pal gBattleAnimSpritePalette_026, 10053
- obj_pal gBattleAnimSpritePalette_054, 10054
- obj_pal gBattleAnimSpritePalette_050, 10055
- obj_pal gBattleAnimSpritePalette_056, 10056
- obj_pal gBattleAnimSpritePalette_057, 10057
- obj_pal gBattleAnimSpritePalette_058, 10058
- obj_pal gBattleAnimSpritePalette_059, 10059
- obj_pal gBattleAnimSpritePalette_060, 10060
- obj_pal gBattleAnimSpritePalette_061, 10061
- obj_pal gBattleAnimSpritePalette_062, 10062
- obj_pal gBattleAnimSpritePalette_063, 10063
- obj_pal gBattleAnimSpritePalette_064, 10064
- obj_pal gBattleAnimSpritePalette_065, 10065
- obj_pal gBattleAnimSpritePalette_066, 10066
- obj_pal gBattleAnimSpritePalette_067, 10067
- obj_pal gBattleAnimSpritePalette_068, 10068
- obj_pal gBattleAnimSpritePalette_065, 10069
- obj_pal gBattleAnimSpritePalette_070, 10070
- obj_pal gBattleAnimSpritePalette_070, 10071
- obj_pal gBattleAnimSpritePalette_072, 10072
- obj_pal gBattleAnimSpritePalette_073, 10073
- obj_pal gBattleAnimSpritePalette_074, 10074
- obj_pal gBattleAnimSpritePalette_075, 10075
- obj_pal gBattleAnimSpritePalette_076, 10076
- obj_pal gBattleAnimSpritePalette_076, 10077
- obj_pal gBattleAnimSpritePalette_078, 10078
- obj_pal gBattleAnimSpritePalette_078, 10079
- obj_pal gBattleAnimSpritePalette_080, 10080
- obj_pal gBattleAnimSpritePalette_081, 10081
- obj_pal gBattleAnimSpritePalette_082, 10082
- obj_pal gBattleAnimSpritePalette_083, 10083
- obj_pal gBattleAnimSpritePalette_084, 10084
- obj_pal gBattleAnimSpritePalette_085, 10085
- obj_pal gBattleAnimSpritePalette_086, 10086
- obj_pal gBattleAnimSpritePalette_087, 10087
- obj_pal gBattleAnimSpritePalette_088, 10088
- obj_pal gBattleAnimSpritePalette_089, 10089
- obj_pal gBattleAnimSpritePalette_090, 10090
- obj_pal gBattleAnimSpritePalette_091, 10091
- obj_pal gBattleAnimSpritePalette_092, 10092
- obj_pal gBattleAnimSpritePalette_093, 10093
- obj_pal gBattleAnimSpritePalette_094, 10094
- obj_pal gBattleAnimSpritePalette_095, 10095
- obj_pal gBattleAnimSpritePalette_096, 10096
- obj_pal gBattleAnimSpritePalette_097, 10097
- obj_pal gBattleAnimSpritePalette_094, 10098
- obj_pal gBattleAnimSpritePalette_099, 10099
- obj_pal gBattleAnimSpritePalette_100, 10100
- obj_pal gBattleAnimSpritePalette_101, 10101
- obj_pal gBattleAnimSpritePalette_101, 10102
- obj_pal gBattleAnimSpritePalette_103, 10103
- obj_pal gBattleAnimSpritePalette_104, 10104
- obj_pal gBattleAnimSpritePalette_105, 10105
- obj_pal gBattleAnimSpritePalette_105, 10106
- obj_pal gBattleAnimSpritePalette_107, 10107
- obj_pal gBattleAnimSpritePalette_107, 10108
- obj_pal gBattleAnimSpritePalette_109, 10109
- obj_pal gBattleAnimSpritePalette_109, 10110
- obj_pal gBattleAnimSpritePalette_111, 10111
- obj_pal gBattleAnimSpritePalette_112, 10112
- obj_pal gBattleAnimSpritePalette_113, 10113
- obj_pal gBattleAnimSpritePalette_114, 10114
- obj_pal gBattleAnimSpritePalette_115, 10115
- obj_pal gBattleAnimSpritePalette_116, 10116
- obj_pal gBattleAnimSpritePalette_117, 10117
- obj_pal gBattleAnimSpritePalette_118, 10118
- obj_pal gBattleAnimSpritePalette_119, 10119
- obj_pal gBattleAnimSpritePalette_120, 10120
- obj_pal gBattleAnimSpritePalette_121, 10121
- obj_pal gBattleAnimSpritePalette_122, 10122
- obj_pal gBattleAnimSpritePalette_122, 10123
- obj_pal gBattleAnimSpritePalette_124, 10124
- obj_pal gBattleAnimSpritePalette_125, 10125
- obj_pal gBattleAnimSpritePalette_126, 10126
- obj_pal gBattleAnimSpritePalette_127, 10127
- obj_pal gBattleAnimSpritePalette_128, 10128
- obj_pal gBattleAnimSpritePalette_128, 10129
- obj_pal gBattleAnimSpritePalette_130, 10130
- obj_pal gBattleAnimSpritePalette_130, 10131
- obj_pal gBattleAnimSpritePalette_132, 10132
- obj_pal gBattleAnimSpritePalette_133, 10133
- obj_pal gBattleAnimSpritePalette_133, 10134
- obj_pal gBattleAnimSpritePalette_135, 10135
- obj_pal gBattleAnimSpritePalette_136, 10136
- obj_pal gBattleAnimSpritePalette_135, 10137
- obj_pal gBattleAnimSpritePalette_135, 10138
- obj_pal gBattleAnimSpritePalette_139, 10139
- obj_pal gBattleAnimSpritePalette_140, 10140
- obj_pal gBattleAnimSpritePalette_141, 10141
- obj_pal gBattleAnimSpritePalette_141, 10142
- obj_pal gBattleAnimSpritePalette_143, 10143
- obj_pal gBattleAnimSpritePalette_144, 10144
- obj_pal gBattleAnimSpritePalette_139, 10145
- obj_pal gBattleAnimSpritePalette_115, 10146
- obj_pal gBattleAnimSpritePalette_147, 10147
- obj_pal gBattleAnimSpritePalette_148, 10148
- obj_pal gBattleAnimSpritePalette_148, 10149
- obj_pal gBattleAnimSpritePalette_150, 10150
- obj_pal gBattleAnimSpritePalette_150, 10151
- obj_pal gBattleAnimSpritePalette_152, 10152
- obj_pal gBattleAnimSpritePalette_153, 10153
- obj_pal gBattleAnimSpritePalette_154, 10154
- obj_pal gBattleAnimSpritePalette_155, 10155
- obj_pal gBattleAnimSpritePalette_156, 10156
- obj_pal gBattleAnimSpritePalette_157, 10157
- obj_pal gBattleAnimSpritePalette_158, 10158
- obj_pal gBattleAnimSpritePalette_159, 10159
- obj_pal gBattleAnimSpritePalette_160, 10160
- obj_pal gBattleAnimSpritePalette_161, 10161
- obj_pal gBattleAnimSpritePalette_162, 10162
- obj_pal gBattleAnimSpritePalette_163, 10163
- obj_pal gBattleAnimSpritePalette_164, 10164
- obj_pal gBattleAnimSpritePalette_165, 10165
- obj_pal gBattleAnimSpritePalette_166, 10166
- obj_pal gBattleAnimSpritePalette_167, 10167
- obj_pal gBattleAnimSpritePalette_168, 10168
- obj_pal gBattleAnimSpritePalette_169, 10169
- obj_pal gBattleAnimSpritePalette_170, 10170
- obj_pal gBattleAnimSpritePalette_171, 10171
- obj_pal gBattleAnimSpritePalette_172, 10172
- obj_pal gBattleAnimSpritePalette_001, 10173
- obj_pal gBattleAnimSpritePalette_174, 10174
- obj_pal gBattleAnimSpritePalette_175, 10175
- obj_pal gBattleAnimSpritePalette_176, 10176
- obj_pal gBattleAnimSpritePalette_177, 10177
- obj_pal gBattleAnimSpritePalette_178, 10178
- obj_pal gBattleAnimSpritePalette_179, 10179
- obj_pal gBattleAnimSpritePalette_179, 10180
- obj_pal gBattleAnimSpritePalette_179, 10181
- obj_pal gBattleAnimSpritePalette_182, 10182
- obj_pal gBattleAnimSpritePalette_183, 10183
- obj_pal gBattleAnimSpritePalette_184, 10184
- obj_pal gBattleAnimSpritePalette_185, 10185
- obj_pal gBattleAnimSpritePalette_186, 10186
- obj_pal gBattleAnimSpritePalette_187, 10187
- obj_pal gBattleAnimSpritePalette_188, 10188
- obj_pal gBattleAnimSpritePalette_189, 10189
- obj_pal gBattleAnimSpritePalette_190, 10190
- obj_pal gBattleAnimSpritePalette_191, 10191
- obj_pal gBattleAnimSpritePalette_192, 10192
- obj_pal gBattleAnimSpritePalette_193, 10193
- obj_pal gBattleAnimSpritePalette_194, 10194
- obj_pal gBattleAnimSpritePalette_195, 10195
- obj_pal gBattleAnimSpritePalette_196, 10196
- obj_pal gBattleAnimSpritePalette_197, 10197
- obj_pal gBattleAnimSpritePalette_198, 10198
- obj_pal gBattleAnimSpritePalette_199, 10199
- obj_pal gBattleAnimSpritePalette_200, 10200
- obj_pal gBattleAnimSpritePalette_201, 10201
- obj_pal gBattleAnimSpritePalette_202, 10202
- obj_pal gBattleAnimSpritePalette_203, 10203
- obj_pal gBattleAnimSpritePalette_204, 10204
- obj_pal gBattleAnimSpritePalette_205, 10205
- obj_pal gBattleAnimSpritePalette_206, 10206
- obj_pal gBattleAnimSpritePalette_207, 10207
- obj_pal gBattleAnimSpritePalette_167, 10208
- obj_pal gBattleAnimSpritePalette_209, 10209
- obj_pal gBattleAnimSpritePalette_210, 10210
- obj_pal gBattleAnimSpritePalette_211, 10211
- obj_pal gBattleAnimSpritePalette_211, 10212
- obj_pal gBattleAnimSpritePalette_211, 10213
- obj_pal gBattleAnimSpritePalette_064, 10214
- obj_pal gBattleAnimSpritePalette_215, 10215
- obj_pal gBattleAnimSpritePalette_216, 10216
- obj_pal gBattleAnimSpritePalette_217, 10217
- obj_pal gBattleAnimSpritePalette_218, 10218
- obj_pal gBattleAnimSpritePalette_219, 10219
- obj_pal gBattleAnimSpritePalette_220, 10220
- obj_pal gBattleAnimSpritePalette_221, 10221
- obj_pal gBattleAnimSpritePalette_222, 10222
- obj_pal gBattleAnimSpritePalette_223, 10223
- obj_pal gBattleAnimSpritePalette_224, 10224
- obj_pal gBattleAnimSpritePalette_225, 10225
- obj_pal gBattleAnimSpritePalette_226, 10226
- obj_pal gBattleAnimSpritePalette_226, 10227
- obj_pal gBattleAnimSpritePalette_228, 10228
- obj_pal gBattleAnimSpritePalette_229, 10229
- obj_pal gBattleAnimSpritePalette_230, 10230
- obj_pal gBattleAnimSpritePalette_231, 10231
- obj_pal gBattleAnimSpritePalette_231, 10232
- obj_pal gBattleAnimSpritePalette_233, 10233
- obj_pal gBattleAnimSpritePalette_234, 10234
- obj_pal gBattleAnimSpritePalette_235, 10235
- obj_pal gBattleAnimSpritePalette_236, 10236
- obj_pal gBattleAnimSpritePalette_237, 10237
- obj_pal gBattleAnimSpritePalette_238, 10238
- obj_pal gBattleAnimSpritePalette_239, 10239
- obj_pal gBattleAnimSpritePalette_240, 10240
- obj_pal gBattleAnimSpritePalette_241, 10241
- obj_pal gBattleAnimSpritePalette_242, 10242
- obj_pal gBattleAnimSpritePalette_243, 10243
- obj_pal gBattleAnimSpritePalette_244, 10244
- obj_pal gBattleAnimSpritePalette_245, 10245
- obj_pal gBattleAnimSpritePalette_245, 10246
- obj_pal gBattleAnimSpritePalette_064, 10247
- obj_pal gBattleAnimSpritePalette_248, 10248
- obj_pal gBattleAnimSpritePalette_249, 10249
- obj_pal gBattleAnimSpritePalette_249, 10250
- obj_pal gBattleAnimSpritePalette_251, 10251
- obj_pal gBattleAnimSpritePalette_252, 10252
- obj_pal gBattleAnimSpritePalette_253, 10253
- obj_pal gBattleAnimSpritePalette_254, 10254
- obj_pal gBattleAnimSpritePalette_255, 10255
- obj_pal gBattleAnimSpritePalette_256, 10256
- obj_pal gBattleAnimSpritePalette_257, 10257
- obj_pal gBattleAnimSpritePalette_258, 10258
- obj_pal gBattleAnimSpritePalette_259, 10259
- obj_pal gBattleAnimSpritePalette_260, 10260
- obj_pal gBattleAnimSpritePalette_261, 10261
- obj_pal gBattleAnimSpritePalette_262, 10262
- obj_pal gBattleAnimSpritePalette_263, 10263
- obj_pal gBattleAnimSpritePalette_264, 10264
- obj_pal gBattleAnimSpritePalette_265, 10265
- obj_pal gBattleAnimSpritePalette_266, 10266
- obj_pal gBattleAnimSpritePalette_267, 10267
- obj_pal gBattleAnimSpritePalette_268, 10268
- obj_pal gBattleAnimSpritePalette_269, 10269
- obj_pal gBattleAnimSpritePalette_270, 10270
- obj_pal gBattleAnimSpritePalette_271, 10271
- obj_pal gBattleAnimSpritePalette_272, 10272
- obj_pal gBattleAnimSpritePalette_272, 10273
- obj_pal gBattleAnimSpritePalette_274, 10274
- obj_pal gBattleAnimSpritePalette_274, 10275
- obj_pal gBattleAnimSpritePalette_274, 10276
- obj_pal gBattleAnimSpritePalette_277, 10277
- obj_pal gBattleAnimSpritePalette_278, 10278
- obj_pal gBattleAnimSpritePalette_279, 10279
- obj_pal gBattleAnimSpritePalette_280, 10280
- obj_pal gBattleAnimSpritePalette_281, 10281
- obj_pal gBattleAnimSpritePalette_282, 10282
- obj_pal gBattleAnimSpritePalette_283, 10283
- obj_pal gBattleAnimSpritePalette_284, 10284
- obj_pal gBattleAnimSpritePalette_285, 10285
- obj_pal gBattleAnimSpritePalette_286, 10286
- obj_pal gBattleAnimSpritePalette_287, 10287
- obj_pal gBattleAnimSpritePalette_288, 10288
-
- .align 2
-gBattleAnimBackgroundTable:: @ 837F374
- .4byte gBattleAnimBackgroundImage_00, gBattleAnimBackgroundPalette_00, gBattleAnimBackgroundTilemap_00
- .4byte gBattleAnimBackgroundImage_00, gBattleAnimBackgroundPalette_00, gBattleAnimBackgroundTilemap_00
- .4byte gBattleAnimBackgroundImage_02, gBattleAnimBackgroundPalette_02, gBattleAnimBackgroundTilemap_02
- .4byte gBattleAnimBackgroundImage_03, gBattleAnimBackgroundPalette_03, gBattleAnimBackgroundTilemap_03
- .4byte gBattleAnimBackgroundImage_04, gBattleAnimBackgroundPalette_04, gBattleAnimBackgroundTilemap_04
- .4byte gBattleAnimBackgroundImage_04, gBattleAnimBackgroundPalette_04, gBattleAnimBackgroundTilemap_05
- .4byte gBattleAnimBackgroundImage_04, gBattleAnimBackgroundPalette_04, gBattleAnimBackgroundTilemap_06
- .4byte gBattleAnimBackgroundImage_07, gBattleAnimBackgroundPalette_07, gBattleAnimBackgroundTilemap_07
- .4byte gBattleAnimBackgroundImage_07, gBattleAnimBackgroundPalette_07, gBattleAnimBackgroundTilemap_08
- .4byte gBattleAnimBackgroundImage_09, gBattleAnimBackgroundPalette_09, gBattleAnimBackgroundTilemap_09
- .4byte gBattleAnimBackgroundImage_09, gBattleAnimBackgroundPalette_09, gBattleAnimBackgroundTilemap_10
- .4byte gBattleAnimBackgroundImage_11, gBattleAnimBackgroundPalette_11, gBattleAnimBackgroundTilemap_11
- .4byte gBattleAnimBackgroundImage_12, gBattleAnimBackgroundPalette_12, gBattleAnimBackgroundTilemap_12
- .4byte gBattleAnimBackgroundImage_12, gBattleAnimBackgroundPalette_12, gBattleAnimBackgroundTilemap_13
- .4byte gBattleAnimBackgroundImage_12, gBattleAnimBackgroundPalette_12, gBattleAnimBackgroundTilemap_14
- .4byte gBattleAnimBackgroundImage_15, gBattleAnimBackgroundPalette_15, gBattleAnimBackgroundTilemap_15
- .4byte gBattleAnimBackgroundImage_16, gBattleAnimBackgroundPalette_16, gBattleAnimBackgroundTilemap_16
- .4byte gBattleAnimBackgroundImage_17, gBattleAnimBackgroundPalette_17, gBattleAnimBackgroundTilemap_17
- .4byte gBattleAnimBackgroundImage_07, gBattleAnimBackgroundPalette_18, gBattleAnimBackgroundTilemap_07
- .4byte gBattleAnimBackgroundImage_07, gBattleAnimBackgroundPalette_18, gBattleAnimBackgroundTilemap_08
- .4byte gBattleAnimBackgroundImage_20, gBattleAnimBackgroundPalette_20, gBattleAnimBackgroundTilemap_20
- .4byte gBattleAnimBackgroundImage_21, gBattleAnimBackgroundPalette_21, gBattleAnimBackgroundTilemap_21
- .4byte gBattleAnimBackgroundImage_09, gBattleAnimBackgroundPalette_22, gBattleAnimBackgroundTilemap_09
- .4byte gBattleAnimBackgroundImage_09, gBattleAnimBackgroundPalette_22, gBattleAnimBackgroundTilemap_10
- .4byte gBattleAnimBackgroundImage_04, gBattleAnimBackgroundPalette_24, gBattleAnimBackgroundTilemap_04
- .4byte gBattleAnimBackgroundImage_04, gBattleAnimBackgroundPalette_24, gBattleAnimBackgroundTilemap_05
- .4byte gBattleAnimBackgroundImage_04, gBattleAnimBackgroundPalette_24, gBattleAnimBackgroundTilemap_06
-
- .align 2
-gUnknown_0837F4B8:: @ 837F4B8
- .4byte ma00_load_graphics
- .4byte ma01_080728D0
- .4byte ma02_instanciate_template
- .4byte sub_8075BB8
- .4byte ma04_wait_countdown
- .4byte sub_8075C74
- .4byte nullsub_53
- .4byte nullsub_88
- .4byte sub_8075CB0
- .4byte ma09_play_sound
- .4byte sub_8075DE0
- .4byte ma0B_0807324C
- .4byte sub_8076A3C
- .4byte sub_8076AA0
- .4byte ma0E_call
- .4byte sub_8076AF0
- .4byte ma10_080736AC
- .4byte ma11_if_else
- .4byte ma12_cond_if
- .4byte sub_8076BBC
- .4byte ma14_load_background
- .4byte ma15_load_battle_screen_elements
- .4byte ma16_wait_for_battle_screen_elements_s2
- .4byte sub_8076F44
- .4byte ma18_load_background_probably
- .4byte ma19_08073BC8
- .4byte ma1A_8073C00
- .4byte ma1B_8073C2C
- .4byte ma1C_8073ED0
- .4byte ma1D_08073FB4
- .4byte sub_8076A78
- .4byte sub_8077610
- .4byte ma20_wait_for_something
- .4byte ma21_08074164
- .4byte sub_80767C4
- .4byte ma23_8073484
- .4byte sub_807775C
- .4byte sub_8076C4C
- .4byte sub_8077320
- .4byte sub_80773B4
- .4byte sub_807779C
- .4byte sub_8077808
- .4byte sub_807784C
- .4byte ma2B_make_side_invisible
- .4byte ma2C_make_side_visible
- .4byte sub_807794C
- .4byte sub_80779FC
- .4byte ma2F_stop_music
-
-gUnknown_0837F578:: @ 837F578
- .incbin "baserom.gba", 0x0037f578, 0x20
-
-@ One entry for each of the four Castform forms.
-@ Coords are probably front pic coords or back pic coords, but this data does not seem to be
-@ used during battle, party summary, or pokedex screens.
- .align 2
-gUnknownCastformCoords_0837F598:: @ 837F598
- .byte 68, 17, 0, 0
- .byte 102, 9, 0, 0
- .byte 70, 9, 0, 0
- .byte 134, 8, 0, 0
-
-@ One entry for each of the four Castform forms. Probably a palette index.
-gUnknownCastformData_0837F5A8:: @ 837F5A8
- .byte 0xD, 0xE, 0xD, 0xD
-
-gUnknown_0837F5AC:: @ 837F5AC
- .byte 0, 0, 0, 0
-
- .align 2
-gSpriteTemplate_837F5B0:: @ 837F5B0
- spr_template 55125, 55125, gOamData_837DF9C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-gSpriteTemplate_837F5C8:: @ 837F5C8
- spr_template 55126, 55126, gOamData_837DF9C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-gUnknown_0837F5E0:: @ 837F5E0
- obj_tiles gMiscBlank_Gfx, 2048, 0xd755
- obj_tiles gMiscBlank_Gfx, 2048, 0xd756
-
- .include "data/maps/events/PetalburgCity.inc"
- .include "data/maps/events/SlateportCity.inc"
- .include "data/maps/events/MauvilleCity.inc"
- .include "data/maps/events/RustboroCity.inc"
- .include "data/maps/events/FortreeCity.inc"
- .include "data/maps/events/LilycoveCity.inc"
- .include "data/maps/events/MossdeepCity.inc"
- .include "data/maps/events/SootopolisCity.inc"
- .include "data/maps/events/EverGrandeCity.inc"
- .include "data/maps/events/LittlerootTown.inc"
- .include "data/maps/events/OldaleTown.inc"
- .include "data/maps/events/DewfordTown.inc"
- .include "data/maps/events/LavaridgeTown.inc"
- .include "data/maps/events/FallarborTown.inc"
- .include "data/maps/events/VerdanturfTown.inc"
- .include "data/maps/events/PacifidlogTown.inc"
- .include "data/maps/events/Route101.inc"
- .include "data/maps/events/Route102.inc"
- .include "data/maps/events/Route103.inc"
- .include "data/maps/events/Route104.inc"
- .include "data/maps/events/Route105.inc"
- .include "data/maps/events/Route106.inc"
- .include "data/maps/events/Route107.inc"
- .include "data/maps/events/Route108.inc"
- .include "data/maps/events/Route109.inc"
- .include "data/maps/events/Route110.inc"
- .include "data/maps/events/Route111.inc"
- .include "data/maps/events/Route112.inc"
- .include "data/maps/events/Route113.inc"
- .include "data/maps/events/Route114.inc"
- .include "data/maps/events/Route115.inc"
- .include "data/maps/events/Route116.inc"
- .include "data/maps/events/Route117.inc"
- .include "data/maps/events/Route118.inc"
- .include "data/maps/events/Route119.inc"
- .include "data/maps/events/Route120.inc"
- .include "data/maps/events/Route121.inc"
- .include "data/maps/events/Route122.inc"
- .include "data/maps/events/Route123.inc"
- .include "data/maps/events/Route124.inc"
- .include "data/maps/events/Route125.inc"
- .include "data/maps/events/Route126.inc"
- .include "data/maps/events/Route127.inc"
- .include "data/maps/events/Route128.inc"
- .include "data/maps/events/Route129.inc"
- .include "data/maps/events/Route130.inc"
- .include "data/maps/events/Route131.inc"
- .include "data/maps/events/Route132.inc"
- .include "data/maps/events/Route133.inc"
- .include "data/maps/events/Route134.inc"
- .include "data/maps/events/Underwater1.inc"
- .include "data/maps/events/Underwater2.inc"
- .include "data/maps/events/Underwater3.inc"
- .include "data/maps/events/Underwater4.inc"
- .include "data/maps/events/LittlerootTown_BrendansHouse_1F.inc"
- .include "data/maps/events/LittlerootTown_BrendansHouse_2F.inc"
- .include "data/maps/events/LittlerootTown_MaysHouse_1F.inc"
- .include "data/maps/events/LittlerootTown_MaysHouse_2F.inc"
- .include "data/maps/events/LittlerootTown_ProfessorBirchsLab.inc"
- .include "data/maps/events/OldaleTown_House1.inc"
- .include "data/maps/events/OldaleTown_House2.inc"
- .include "data/maps/events/OldaleTown_PokemonCenter_1F.inc"
- .include "data/maps/events/OldaleTown_PokemonCenter_2F.inc"
- .include "data/maps/events/OldaleTown_Mart.inc"
- .include "data/maps/events/DewfordTown_House1.inc"
- .include "data/maps/events/DewfordTown_PokemonCenter_1F.inc"
- .include "data/maps/events/DewfordTown_PokemonCenter_2F.inc"
- .include "data/maps/events/DewfordTown_Gym.inc"
- .include "data/maps/events/DewfordTown_Hall.inc"
- .include "data/maps/events/DewfordTown_House2.inc"
- .include "data/maps/events/LavaridgeTown_HerbShop.inc"
- .include "data/maps/events/LavaridgeTown_Gym_1F.inc"
- .include "data/maps/events/LavaridgeTown_Gym_B1F.inc"
- .include "data/maps/events/LavaridgeTown_House.inc"
- .include "data/maps/events/LavaridgeTown_Mart.inc"
- .include "data/maps/events/LavaridgeTown_PokemonCenter_1F.inc"
- .include "data/maps/events/LavaridgeTown_PokemonCenter_2F.inc"
- .include "data/maps/events/FallarborTown_Mart.inc"
- .include "data/maps/events/FallarborTown_ContestLobby.inc"
- .include "data/maps/events/FallarborTown_ContestHall.inc"
- .include "data/maps/events/FallarborTown_PokemonCenter_1F.inc"
- .include "data/maps/events/FallarborTown_PokemonCenter_2F.inc"
- .include "data/maps/events/FallarborTown_House1.inc"
- .include "data/maps/events/FallarborTown_House2.inc"
- .include "data/maps/events/VerdanturfTown_ContestLobby.inc"
- .include "data/maps/events/VerdanturfTown_ContestHall.inc"
- .include "data/maps/events/VerdanturfTown_Mart.inc"
- .include "data/maps/events/VerdanturfTown_PokemonCenter_1F.inc"
- .include "data/maps/events/VerdanturfTown_PokemonCenter_2F.inc"
- .include "data/maps/events/VerdanturfTown_WandasHouse.inc"
- .include "data/maps/events/VerdanturfTown_FriendshipRatersHouse.inc"
- .include "data/maps/events/VerdanturfTown_House.inc"
- .include "data/maps/events/PacifidlogTown_PokemonCenter_1F.inc"
- .include "data/maps/events/PacifidlogTown_PokemonCenter_2F.inc"
- .include "data/maps/events/PacifidlogTown_House1.inc"
- .include "data/maps/events/PacifidlogTown_House2.inc"
- .include "data/maps/events/PacifidlogTown_House3.inc"
- .include "data/maps/events/PacifidlogTown_House4.inc"
- .include "data/maps/events/PacifidlogTown_House5.inc"
- .include "data/maps/events/PetalburgCity_WallysHouse.inc"
- .include "data/maps/events/PetalburgCity_Gym.inc"
- .include "data/maps/events/PetalburgCity_House1.inc"
- .include "data/maps/events/PetalburgCity_House2.inc"
- .include "data/maps/events/PetalburgCity_PokemonCenter_1F.inc"
- .include "data/maps/events/PetalburgCity_PokemonCenter_2F.inc"
- .include "data/maps/events/PetalburgCity_Mart.inc"
- .include "data/maps/events/SlateportCity_SternsShipyard_1F.inc"
- .include "data/maps/events/SlateportCity_SternsShipyard_2F.inc"
- .include "data/maps/events/SlateportCity_ContestLobby.inc"
- .include "data/maps/events/SlateportCity_ContestHall.inc"
- .include "data/maps/events/SlateportCity_House1.inc"
- .include "data/maps/events/SlateportCity_PokemonFanClub.inc"
- .include "data/maps/events/SlateportCity_OceanicMuseum_1F.inc"
- .include "data/maps/events/SlateportCity_OceanicMuseum_2F.inc"
- .include "data/maps/events/SlateportCity_Harbor.inc"
- .include "data/maps/events/SlateportCity_House2.inc"
- .include "data/maps/events/SlateportCity_PokemonCenter_1F.inc"
- .include "data/maps/events/SlateportCity_PokemonCenter_2F.inc"
- .include "data/maps/events/SlateportCity_Mart.inc"
- .include "data/maps/events/MauvilleCity_Gym.inc"
- .include "data/maps/events/MauvilleCity_BikeShop.inc"
- .include "data/maps/events/MauvilleCity_House1.inc"
- .include "data/maps/events/MauvilleCity_GameCorner.inc"
- .include "data/maps/events/MauvilleCity_House2.inc"
- .include "data/maps/events/MauvilleCity_PokemonCenter_1F.inc"
- .include "data/maps/events/MauvilleCity_PokemonCenter_2F.inc"
- .include "data/maps/events/MauvilleCity_Mart.inc"
- .include "data/maps/events/RustboroCity_DevonCorp_1F.inc"
- .include "data/maps/events/RustboroCity_DevonCorp_2F.inc"
- .include "data/maps/events/RustboroCity_DevonCorp_3F.inc"
- .include "data/maps/events/RustboroCity_Gym.inc"
- .include "data/maps/events/RustboroCity_PokemonSchool.inc"
- .include "data/maps/events/RustboroCity_PokemonCenter_1F.inc"
- .include "data/maps/events/RustboroCity_PokemonCenter_2F.inc"
- .include "data/maps/events/RustboroCity_Mart.inc"
- .include "data/maps/events/RustboroCity_Flat1_1F.inc"
- .include "data/maps/events/RustboroCity_Flat1_2F.inc"
- .include "data/maps/events/RustboroCity_House1.inc"
- .include "data/maps/events/RustboroCity_CuttersHouse.inc"
- .include "data/maps/events/RustboroCity_House2.inc"
- .include "data/maps/events/RustboroCity_Flat2_1F.inc"
- .include "data/maps/events/RustboroCity_Flat2_2F.inc"
- .include "data/maps/events/RustboroCity_Flat2_3F.inc"
- .include "data/maps/events/RustboroCity_House3.inc"
- .include "data/maps/events/FortreeCity_House1.inc"
- .include "data/maps/events/FortreeCity_Gym.inc"
- .include "data/maps/events/FortreeCity_PokemonCenter_1F.inc"
- .include "data/maps/events/FortreeCity_PokemonCenter_2F.inc"
- .include "data/maps/events/FortreeCity_Mart.inc"
- .include "data/maps/events/FortreeCity_House2.inc"
- .include "data/maps/events/FortreeCity_House3.inc"
- .include "data/maps/events/FortreeCity_House4.inc"
- .include "data/maps/events/FortreeCity_House5.inc"
- .include "data/maps/events/FortreeCity_DecorationShop.inc"
- .include "data/maps/events/LilycoveCity_CoveLilyMotel_1F.inc"
- .include "data/maps/events/LilycoveCity_CoveLilyMotel_2F.inc"
- .include "data/maps/events/LilycoveCity_LilycoveMuseum_1F.inc"
- .include "data/maps/events/LilycoveCity_LilycoveMuseum_2F.inc"
- .include "data/maps/events/LilycoveCity_ContestLobby.inc"
- .include "data/maps/events/LilycoveCity_ContestHall.inc"
- .include "data/maps/events/LilycoveCity_PokemonCenter_1F.inc"
- .include "data/maps/events/LilycoveCity_PokemonCenter_2F.inc"
- .include "data/maps/events/LilycoveCity_UnusedMart.inc"
- .include "data/maps/events/LilycoveCity_PokemonTrainerFanClub.inc"
- .include "data/maps/events/LilycoveCity_Harbor.inc"
- .include "data/maps/events/LilycoveCity_EmptyMap.inc"
- .include "data/maps/events/LilycoveCity_MoveDeletersHouse.inc"
- .include "data/maps/events/LilycoveCity_House1.inc"
- .include "data/maps/events/LilycoveCity_House2.inc"
- .include "data/maps/events/LilycoveCity_House3.inc"
- .include "data/maps/events/LilycoveCity_House4.inc"
- .include "data/maps/events/LilycoveCity_DepartmentStore_1F.inc"
- .include "data/maps/events/LilycoveCity_DepartmentStore_2F.inc"
- .include "data/maps/events/LilycoveCity_DepartmentStore_3F.inc"
- .include "data/maps/events/LilycoveCity_DepartmentStore_4F.inc"
- .include "data/maps/events/LilycoveCity_DepartmentStore_5F.inc"
- .include "data/maps/events/LilycoveCity_DepartmentStoreRooftop.inc"
- .include "data/maps/events/LilycoveCity_DepartmentStoreElevator.inc"
- .include "data/maps/events/MossdeepCity_Gym.inc"
- .include "data/maps/events/MossdeepCity_House1.inc"
- .include "data/maps/events/MossdeepCity_House2.inc"
- .include "data/maps/events/MossdeepCity_PokemonCenter_1F.inc"
- .include "data/maps/events/MossdeepCity_PokemonCenter_2F.inc"
- .include "data/maps/events/MossdeepCity_Mart.inc"
- .include "data/maps/events/MossdeepCity_House3.inc"
- .include "data/maps/events/MossdeepCity_StevensHouse.inc"
- .include "data/maps/events/MossdeepCity_House4.inc"
- .include "data/maps/events/MossdeepCity_SpaceCenter_1F.inc"
- .include "data/maps/events/MossdeepCity_SpaceCenter_2F.inc"
- .include "data/maps/events/MossdeepCity_GameCorner_1F.inc"
- .include "data/maps/events/MossdeepCity_GameCorner_B1F.inc"
- .include "data/maps/events/SootopolisCity_Gym_1F.inc"
- .include "data/maps/events/SootopolisCity_Gym_B1F.inc"
- .include "data/maps/events/SootopolisCity_PokemonCenter_1F.inc"
- .include "data/maps/events/SootopolisCity_PokemonCenter_2F.inc"
- .include "data/maps/events/SootopolisCity_Mart.inc"
- .include "data/maps/events/SootopolisCity_House1.inc"
- .include "data/maps/events/SootopolisCity_House2.inc"
- .include "data/maps/events/SootopolisCity_House3.inc"
- .include "data/maps/events/SootopolisCity_House4.inc"
- .include "data/maps/events/SootopolisCity_House5.inc"
- .include "data/maps/events/SootopolisCity_House6.inc"
- .include "data/maps/events/SootopolisCity_House7.inc"
- .include "data/maps/events/SootopolisCity_House8.inc"
- .include "data/maps/events/EverGrandeCity_SidneysRoom.inc"
- .include "data/maps/events/EverGrandeCity_PhoebesRoom.inc"
- .include "data/maps/events/EverGrandeCity_GlaciasRoom.inc"
- .include "data/maps/events/EverGrandeCity_DrakesRoom.inc"
- .include "data/maps/events/EverGrandeCity_ChampionsRoom.inc"
- .include "data/maps/events/EverGrandeCity_Corridor1.inc"
- .include "data/maps/events/EverGrandeCity_Corridor2.inc"
- .include "data/maps/events/EverGrandeCity_Corridor3.inc"
- .include "data/maps/events/EverGrandeCity_Corridor4.inc"
- .include "data/maps/events/EverGrandeCity_Corridor5.inc"
- .include "data/maps/events/EverGrandeCity_PokemonLeague.inc"
- .include "data/maps/events/EverGrandeCity_HallOfFame.inc"
- .include "data/maps/events/EverGrandeCity_PokemonCenter_1F.inc"
- .include "data/maps/events/EverGrandeCity_PokemonCenter_2F.inc"
- .include "data/maps/events/Route104_MrBrineysHouse.inc"
- .include "data/maps/events/Route104_PrettyPetalFlowerShop.inc"
- .include "data/maps/events/Route111_WinstrateFamilysHouse.inc"
- .include "data/maps/events/Route111_OldLadysRestStop.inc"
- .include "data/maps/events/Route112_CableCarStation.inc"
- .include "data/maps/events/MtChimney_CableCarStation.inc"
- .include "data/maps/events/Route114_FossilManiacsHouse.inc"
- .include "data/maps/events/Route114_FossilManiacsTunnel.inc"
- .include "data/maps/events/Route114_LanettesHouse.inc"
- .include "data/maps/events/Route116_TunnelersRestHouse.inc"
- .include "data/maps/events/Route117_PokemonDayCare.inc"
- .include "data/maps/events/Route121_SafariZoneEntrance.inc"
- .include "data/maps/events/MeteorFalls_1F_1R.inc"
- .include "data/maps/events/MeteorFalls_1F_2R.inc"
- .include "data/maps/events/MeteorFalls_B1F_1R.inc"
- .include "data/maps/events/MeteorFalls_B1F_2R.inc"
- .include "data/maps/events/RusturfTunnel.inc"
- .include "data/maps/events/Underwater_SootopolisCity.inc"
- .include "data/maps/events/DesertRuins.inc"
- .include "data/maps/events/GraniteCave_1F.inc"
- .include "data/maps/events/GraniteCave_B1F.inc"
- .include "data/maps/events/GraniteCave_B2F.inc"
- .include "data/maps/events/GraniteCave_StevensRoom.inc"
- .include "data/maps/events/PetalburgWoods.inc"
- .include "data/maps/events/MtChimney.inc"
- .include "data/maps/events/JaggedPass.inc"
- .include "data/maps/events/FieryPath.inc"
- .include "data/maps/events/MtPyre_1F.inc"
- .include "data/maps/events/MtPyre_2F.inc"
- .include "data/maps/events/MtPyre_3F.inc"
- .include "data/maps/events/MtPyre_4F.inc"
- .include "data/maps/events/MtPyre_5F.inc"
- .include "data/maps/events/MtPyre_6F.inc"
- .include "data/maps/events/MtPyre_Exterior.inc"
- .include "data/maps/events/MtPyre_Summit.inc"
- .include "data/maps/events/AquaHideout_1F.inc"
- .include "data/maps/events/AquaHideout_B1F.inc"
- .include "data/maps/events/AquaHideout_B2F.inc"
- .include "data/maps/events/Underwater_SeafloorCavern.inc"
- .include "data/maps/events/SeafloorCavern_Entrance.inc"
- .include "data/maps/events/SeafloorCavern_Room1.inc"
- .include "data/maps/events/SeafloorCavern_Room2.inc"
- .include "data/maps/events/SeafloorCavern_Room3.inc"
- .include "data/maps/events/SeafloorCavern_Room4.inc"
- .include "data/maps/events/SeafloorCavern_Room5.inc"
- .include "data/maps/events/SeafloorCavern_Room6.inc"
- .include "data/maps/events/SeafloorCavern_Room7.inc"
- .include "data/maps/events/SeafloorCavern_Room8.inc"
- .include "data/maps/events/SeafloorCavern_Room9.inc"
- .include "data/maps/events/CaveOfOrigin_Entrance.inc"
- .include "data/maps/events/CaveOfOrigin_1F.inc"
- .include "data/maps/events/CaveOfOrigin_B1F.inc"
- .include "data/maps/events/CaveOfOrigin_B2F.inc"
- .include "data/maps/events/CaveOfOrigin_B3F.inc"
- .include "data/maps/events/CaveOfOrigin_B4F.inc"
- .include "data/maps/events/VictoryRoad_1F.inc"
- .include "data/maps/events/VictoryRoad_B1F.inc"
- .include "data/maps/events/VictoryRoad_B2F.inc"
- .include "data/maps/events/ShoalCave_LowTideEntranceRoom.inc"
- .include "data/maps/events/ShoalCave_LowTideInnerRoom.inc"
- .include "data/maps/events/ShoalCave_LowTideStairsRoom.inc"
- .include "data/maps/events/ShoalCave_LowTideLowerRoom.inc"
- .include "data/maps/events/ShoalCave_HighTideEntranceRoom.inc"
- .include "data/maps/events/ShoalCave_HighTideInnerRoom.inc"
- .include "data/maps/events/NewMauville_Entrance.inc"
- .include "data/maps/events/NewMauville_Inside.inc"
- .include "data/maps/events/AbandonedShip_Deck.inc"
- .include "data/maps/events/AbandonedShip_Corridors_1F.inc"
- .include "data/maps/events/AbandonedShip_Rooms_1F.inc"
- .include "data/maps/events/AbandonedShip_Corridors_B1F.inc"
- .include "data/maps/events/AbandonedShip_Rooms_B1F.inc"
- .include "data/maps/events/AbandonedShip_Rooms2_B1F.inc"
- .include "data/maps/events/AbandonedShip_Underwater1.inc"
- .include "data/maps/events/AbandonedShip_Room_B1F.inc"
- .include "data/maps/events/AbandonedShip_Rooms2_1F.inc"
- .include "data/maps/events/AbandonedShip_CaptainsOffice.inc"
- .include "data/maps/events/AbandonedShip_Underwater2.inc"
- .include "data/maps/events/AbandonedShip_HiddenFloorCorridors.inc"
- .include "data/maps/events/AbandonedShip_HiddenFloorRooms.inc"
- .include "data/maps/events/IslandCave.inc"
- .include "data/maps/events/AncientTomb.inc"
- .include "data/maps/events/Underwater_Route134.inc"
- .include "data/maps/events/Underwater_SealedChamber.inc"
- .include "data/maps/events/SealedChamber_OuterRoom.inc"
- .include "data/maps/events/SealedChamber_InnerRoom.inc"
- .include "data/maps/events/ScorchedSlab.inc"
- .include "data/maps/events/MagmaHideout_1F.inc"
- .include "data/maps/events/MagmaHideout_B1F.inc"
- .include "data/maps/events/MagmaHideout_B2F.inc"
- .include "data/maps/events/SkyPillar_Entrance.inc"
- .include "data/maps/events/SkyPillar_Outside.inc"
- .include "data/maps/events/SkyPillar_1F.inc"
- .include "data/maps/events/SkyPillar_2F.inc"
- .include "data/maps/events/SkyPillar_3F.inc"
- .include "data/maps/events/SkyPillar_4F.inc"
- .include "data/maps/events/ShoalCave_LowTideIceRoom.inc"
- .include "data/maps/events/SkyPillar_5F.inc"
- .include "data/maps/events/SkyPillar_Top.inc"
- .include "data/maps/events/SecretBase_RedCave1.inc"
- .include "data/maps/events/SecretBase_BrownCave1.inc"
- .include "data/maps/events/SecretBase_BlueCave1.inc"
- .include "data/maps/events/SecretBase_YellowCave1.inc"
- .include "data/maps/events/SecretBase_Tree1.inc"
- .include "data/maps/events/SecretBase_Shrub1.inc"
- .include "data/maps/events/SecretBase_RedCave2.inc"
- .include "data/maps/events/SecretBase_BrownCave2.inc"
- .include "data/maps/events/SecretBase_BlueCave2.inc"
- .include "data/maps/events/SecretBase_YellowCave2.inc"
- .include "data/maps/events/SecretBase_Tree2.inc"
- .include "data/maps/events/SecretBase_Shrub2.inc"
- .include "data/maps/events/SecretBase_RedCave3.inc"
- .include "data/maps/events/SecretBase_BrownCave3.inc"
- .include "data/maps/events/SecretBase_BlueCave3.inc"
- .include "data/maps/events/SecretBase_YellowCave3.inc"
- .include "data/maps/events/SecretBase_Tree3.inc"
- .include "data/maps/events/SecretBase_Shrub3.inc"
- .include "data/maps/events/SecretBase_RedCave4.inc"
- .include "data/maps/events/SecretBase_BrownCave4.inc"
- .include "data/maps/events/SecretBase_BlueCave4.inc"
- .include "data/maps/events/SecretBase_YellowCave4.inc"
- .include "data/maps/events/SecretBase_Tree4.inc"
- .include "data/maps/events/SecretBase_Shrub4.inc"
- .include "data/maps/events/SingleBattleColosseum.inc"
- .include "data/maps/events/TradeCenter.inc"
- .include "data/maps/events/RecordCorner.inc"
- .include "data/maps/events/DoubleBattleColosseum.inc"
- .include "data/maps/events/LinkContestRoom1.inc"
- .include "data/maps/events/LinkContestRoom2.inc"
- .include "data/maps/events/LinkContestRoom3.inc"
- .include "data/maps/events/LinkContestRoom4.inc"
- .include "data/maps/events/LinkContestRoom5.inc"
- .include "data/maps/events/LinkContestRoom6.inc"
- .include "data/maps/events/UnknownMap_25_29.inc"
- .include "data/maps/events/UnknownMap_25_30.inc"
- .include "data/maps/events/UnknownMap_25_31.inc"
- .include "data/maps/events/UnknownMap_25_32.inc"
- .include "data/maps/events/UnknownMap_25_33.inc"
- .include "data/maps/events/UnknownMap_25_34.inc"
- .include "data/maps/events/InsideOfTruck.inc"
- .include "data/maps/events/SSTidalCorridor.inc"
- .include "data/maps/events/SSTidalLowerDeck.inc"
- .include "data/maps/events/SSTidalRooms.inc"
- .include "data/maps/events/SafariZone_Northwest.inc"
- .include "data/maps/events/SafariZone_Northeast.inc"
- .include "data/maps/events/SafariZone_Southwest.inc"
- .include "data/maps/events/SafariZone_Southeast.inc"
- .include "data/maps/events/BattleTower_Outside.inc"
- .include "data/maps/events/BattleTower_Lobby.inc"
- .include "data/maps/events/BattleTower_Elevator.inc"
- .include "data/maps/events/BattleTower_Corridor.inc"
- .include "data/maps/events/BattleTower_BattleRoom.inc"
- .include "data/maps/events/SouthernIsland_Exterior.inc"
- .include "data/maps/events/SouthernIsland_Interior.inc"
- .include "data/maps/events/SafariZone_RestHouse.inc"
- .include "data/maps/events/Route104_Prototype.inc"
- .include "data/maps/events/Route104_PrototypePrettyPetalFlowerShop.inc"
- .include "data/maps/events/Route109_SeashoreHouse.inc"
- .include "data/maps/events/Route110_TrickHouseEntrance.inc"
- .include "data/maps/events/Route110_TrickHouseEnd.inc"
- .include "data/maps/events/Route110_TrickHouseCorridor.inc"
- .include "data/maps/events/Route110_TrickHousePuzzle1.inc"
- .include "data/maps/events/Route110_TrickHousePuzzle2.inc"
- .include "data/maps/events/Route110_TrickHousePuzzle3.inc"
- .include "data/maps/events/Route110_TrickHousePuzzle4.inc"
- .include "data/maps/events/Route110_TrickHousePuzzle5.inc"
- .include "data/maps/events/Route110_TrickHousePuzzle6.inc"
- .include "data/maps/events/Route110_TrickHousePuzzle7.inc"
- .include "data/maps/events/Route110_TrickHousePuzzle8.inc"
- .include "data/maps/events/Route110_SeasideCyclingRoadSouthEntrance.inc"
- .include "data/maps/events/Route110_SeasideCyclingRoadNorthEntrance.inc"
- .include "data/maps/events/Route113_GlassWorkshop.inc"
- .include "data/maps/events/Route123_BerryMastersHouse.inc"
- .include "data/maps/events/Route119_WeatherInstitute_1F.inc"
- .include "data/maps/events/Route119_WeatherInstitute_2F.inc"
- .include "data/maps/events/Route119_House.inc"
-Route124_DivingTreasureHuntersHouse_MapObjects:: @ 839300C
- object_event 1, MAP_OBJ_GFX_MAN_6, 0, 5, 0, 4, 0, 0, 9, 0, 0, 0, 0, 0, 0, Route124_DivingTreasureHuntersHouse_EventScript_163E04, 0, 0, 0
-
-Route124_DivingTreasureHuntersHouse_MapWarps:: @ 8393024
- warp_def 3, 8, 0, 0, Route124
- warp_def 4, 8, 0, 0, Route124
-
-Route124_DivingTreasureHuntersHouse_MapBGEvents:: @ 8393034
- bg_event 7, 1, 0, 0, 0, Route124_DivingTreasureHuntersHouse_EventScript_164335
-
-Route124_DivingTreasureHuntersHouse_MapEvents:: @ 8393040
- map_events Route124_DivingTreasureHuntersHouse_MapObjects, Route124_DivingTreasureHuntersHouse_MapWarps, 0x0, Route124_DivingTreasureHuntersHouse_MapBGEvents
-
- .align 2
-gSpriteAnim_8393054:: @ 8393054
- obj_image_anim_frame 0, 3
- obj_image_anim_frame 4, 3
- obj_image_anim_frame 8, 3
- obj_image_anim_frame 12, 3
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnimTable_8393068:: @ 8393068
- .4byte gSpriteAnim_8393054
-
- .align 2
-gSpriteTemplate_839306C:: @ 839306C
- spr_template 10004, 10004, gOamData_837DF2C, gSpriteAnimTable_8393068, NULL, gDummySpriteAffineAnimTable, sub_807A5C4
-
- .align 2
-gSpriteTemplate_8393084:: @ 8393084
- spr_template 10004, 10004, gOamData_837DF2C, gSpriteAnimTable_8393068, NULL, gDummySpriteAffineAnimTable, sub_807A544
-
- .align 2
-gSpriteAnim_839309C:: @ 839309C
- obj_image_anim_frame 0, 3
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnimTable_83930A4:: @ 83930A4
- .4byte gSpriteAnim_839309C
-
- .align 2
-gBattleAnimSpriteTemplate_83930A8:: @ 83930A8
- spr_template 10283, 10283, gOamData_837DF34, gSpriteAnimTable_83930A4, NULL, gDummySpriteAffineAnimTable, sub_807A908
-
- .align 2
-gBattleAnimSpriteTemplate_83930C0:: @ 83930C0
- spr_template 10283, 10283, gOamData_837DF34, gSpriteAnimTable_83930A4, NULL, gDummySpriteAffineAnimTable, sub_807A9BC
-
- .align 2
-gSpriteAnim_83930D8:: @ 83930D8
- obj_image_anim_frame 0, 3
- obj_image_anim_frame 16, 3
- obj_image_anim_frame 32, 3
- obj_image_anim_frame 48, 3
- obj_image_anim_frame 64, 3
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83930F0:: @ 83930F0
- .4byte gSpriteAnim_83930D8
-
- .align 2
-gBattleAnimSpriteTemplate_83930F4:: @ 83930F4
- spr_template 10071, 10071, gOamData_837DF34, gSpriteAnimTable_83930F0, NULL, gDummySpriteAffineAnimTable, sub_807A63C
-
- .align 2
-gSpriteTemplate_839310C:: @ 839310C
- spr_template 10051, 10051, gOamData_837DF34, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_807A5C4
-
- .align 2
-gSpriteAnim_8393124:: @ 8393124
- obj_image_anim_frame 0, 5
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnim_839312C:: @ 839312C
- obj_image_anim_frame 0, 5
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnim_8393134:: @ 8393134
- obj_image_anim_frame 0, 5
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnimTable_839313C:: @ 839313C
- .4byte gSpriteAnim_8393124
- .4byte gSpriteAnim_839312C
- .4byte gSpriteAnim_8393134
-
- .align 2
-gSpriteTemplate_8393148:: @ 8393148
- spr_template 10135, 10135, gOamData_837DF34, gSpriteAnimTable_839313C, NULL, gDummySpriteAffineAnimTable, sub_807A5C4
-
- .align 2
-gSpriteAnim_8393160:: @ 8393160
- obj_image_anim_frame 0, 15
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnimTable_8393168:: @ 8393168
- .4byte gSpriteAnim_8393160
-
- .align 2
-gSpriteAffineAnim_839316C:: @ 839316C
- obj_rot_scal_anim_frame 0x60, 0x60, 0, 0
- obj_rot_scal_anim_frame 0x2, 0x2, 0, 1
- obj_rot_scal_anim_jump 1
-
- .align 2
-gSpriteAffineAnimTable_8393184:: @ 8393184
- .4byte gSpriteAffineAnim_839316C
-
- .align 2
-gSpriteTemplate_8393188:: @ 8393188
- spr_template 10004, 10004, gOamData_837DFEC, gSpriteAnimTable_8393168, NULL, gSpriteAffineAnimTable_8393184, sub_807A544
-
- .align 2
- .incbin "baserom.gba", 0x003931a0, 0x18
-Unknown_083931B8:
- .incbin "baserom.gba", 0x003931b8, 0x20
-
-gUnknown_083931D8:: @ 83931D8
- .4byte 4, Unknown_083931B8
-
- .align 2
-gSpriteTemplate_83931E0:: @ 83931E0
- spr_template 10010, 10010, gOamData_837E05C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-gSpriteTemplate_83931F8:: @ 83931F8
- spr_template 10136, 10136, gOamData_837DF24, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_807B870
-
- .align 2
-gUnknown_08393210:: @ 8393210
- .ifdef SAPPHIRE
- .incbin "graphics/title_screen/kyogre_dark.gbapal"
- .incbin "graphics/title_screen/kyogre_glow.gbapal"
- .else
- .incbin "graphics/title_screen/groudon_dark.gbapal"
- .incbin "graphics/title_screen/groudon_glow.gbapal"
- .endif
-
- .align 2
-gUnknown_08393250:: @ 8393250
- .ifdef SAPPHIRE
- .incbin "graphics/title_screen/kyogre.4bpp.lz"
- .else
- .incbin "graphics/title_screen/groudon.4bpp.lz"
- .endif
-
- .align 2
-gUnknown_083939EC:: @ 83939EC
- .ifdef SAPPHIRE
- .incbin "graphics/title_screen/kyogre_map.bin.lz"
- .else
- .incbin "graphics/title_screen/groudon_map.bin.lz"
- .endif
-
- .align 2
-gUnknown_08393BF8:: @ 8393BF8
- .ifdef SAPPHIRE
- .incbin "graphics/title_screen/water_map.bin.lz"
- .else
- .incbin "graphics/title_screen/lava_map.bin.lz"
- .endif
-
- .align 2
-LogoShineTiles: @ 8393D14
- .incbin "graphics/title_screen/logo_shine.4bpp.lz"
-
-gUnknown_08393E64:: @ 8393E64
- .incbin "baserom.gba", 0x00393e64, 0x40
-
- .align 2
-gOamData_8393EA4:: @ 8393EA4
- .2byte 0x60A0
- .2byte 0xC000
- .2byte 0x0000
-
- .align 2
-gOamData_8393EAC:: @ 8393EAC
- .2byte 0x60A0
- .2byte 0xC000
- .2byte 0x0000
-
- .align 2
-gSpriteAnim_8393EB4:: @ 8393EB4
- obj_image_anim_frame 0, 30
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_8393EBC:: @ 8393EBC
- obj_image_anim_frame 64, 30
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_8393EC4:: @ 8393EC4
- .4byte gSpriteAnim_8393EB4
-
- .align 2
-gSpriteAnimTable_8393EC8:: @ 8393EC8
- .4byte gSpriteAnim_8393EBC
-
- .align 2
-gSpriteTemplate_8393ECC:: @ 8393ECC
- spr_template 1000, 1000, gOamData_8393EA4, gSpriteAnimTable_8393EC4, NULL, gDummySpriteAffineAnimTable, SpriteCallback_VersionBannerLeft
-
- .align 2
-gSpriteTemplate_8393EE4:: @ 8393EE4
- spr_template 1000, 1000, gOamData_8393EAC, gSpriteAnimTable_8393EC8, NULL, gDummySpriteAffineAnimTable, SpriteCallback_VersionBannerRight
-
- .align 2
-gUnknown_08393EFC:: @ 8393EFC
- obj_tiles gVersionTiles, 0x1000, 1000
- null_obj_tiles
-
- .align 2
-gOamData_8393F0C:: @ 8393F0C
- .2byte 0x40A0
- .2byte 0x4000
- .2byte 0x0000
-
- .align 2
-gSpriteAnim_8393F14:: @ 8393F14
- obj_image_anim_frame 0, 4
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_8393F1C:: @ 8393F1C
- obj_image_anim_frame 4, 4
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_8393F24:: @ 8393F24
- obj_image_anim_frame 8, 4
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_8393F2C:: @ 8393F2C
- obj_image_anim_frame 12, 4
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_8393F34:: @ 8393F34
- obj_image_anim_frame 16, 4
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_8393F3C:: @ 8393F3C
- obj_image_anim_frame 20, 4
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_8393F44:: @ 8393F44
- obj_image_anim_frame 24, 4
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_8393F4C:: @ 8393F4C
- obj_image_anim_frame 28, 4
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_8393F54:: @ 8393F54
- .4byte gSpriteAnim_8393F14
- .4byte gSpriteAnim_8393F1C
- .4byte gSpriteAnim_8393F24
- .4byte gSpriteAnim_8393F2C
- .4byte gSpriteAnim_8393F34
- .4byte gSpriteAnim_8393F3C
- .4byte gSpriteAnim_8393F44
- .4byte gSpriteAnim_8393F4C
-
- .align 2
-gSpriteTemplate_8393F74:: @ 8393F74
- spr_template 1001, 1001, gOamData_8393F0C, gSpriteAnimTable_8393F54, NULL, gDummySpriteAffineAnimTable, SpriteCallback_PressStartCopyrightBanner
-
- .align 2
-gUnknown_08393F8C:: @ 8393F8C
- obj_tiles gTitleScreenPressStart_Gfx, 0x520, 1001
- null_obj_tiles
-
- .align 2
-gUnknown_08393F9C:: @ 8393F9C
- obj_pal gTitleScreenLogoShinePalette, 1001
- obj_pal 0x0, 0x0
-
- .align 2
-gOamData_8393FAC:: @ 8393FAC
- .2byte 0x00A0
- .2byte 0xC000
- .2byte 0x0000
-
- .align 2
-gSpriteAnim_8393FB4:: @ 8393FB4
- obj_image_anim_frame 0, 4
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_8393FBC:: @ 8393FBC
- .4byte gSpriteAnim_8393FB4
-
- .align 2
-gSpriteTemplate_8393FC0:: @ 8393FC0
- spr_template 1002, 1001, gOamData_8393FAC, gSpriteAnimTable_8393FBC, NULL, gDummySpriteAffineAnimTable, SpriteCallback_PokemonLogoShine
-
- .align 2
-gUnknown_08393FD8:: @ 8393FD8
- obj_tiles LogoShineTiles, 0x800, 1002
- null_obj_tiles
-
- .align 2
-DroughtPaletteData_0: @ 8393FE8
- .incbin "graphics/weather/drought0.bin.lz"
-
- .align 2
-DroughtPaletteData_1: @ 839480C
- .incbin "graphics/weather/drought1.bin.lz"
-
- .align 2
-DroughtPaletteData_2: @ 8395004
- .incbin "graphics/weather/drought2.bin.lz"
-
- .align 2
-DroughtPaletteData_3: @ 83957A0
- .incbin "graphics/weather/drought3.bin.lz"
-
- .align 2
-DroughtPaletteData_4: @ 8395FBC
- .incbin "graphics/weather/drought4.bin.lz"
-
- .align 2
-DroughtPaletteData_5: @ 8396784
- .incbin "graphics/weather/drought5.bin.lz"
-
- .align 2
-gUnknown_08396FA8:: @ 8396FA8
- .4byte DroughtPaletteData_0
- .4byte DroughtPaletteData_1
- .4byte DroughtPaletteData_2
- .4byte DroughtPaletteData_3
- .4byte DroughtPaletteData_4
- .4byte DroughtPaletteData_5
- @.4byte unk_20000000
- .incbin "baserom.gba", 0x00396fc0, 0x4 @ pointer to unk_2000000?
-
- .align 2
-gUnknown_08396FC4:: @ 8396FC4
- .4byte 0x0202f7e8
-
- .align 2
-gUnknown_08396FC8:: @ 8396FC8
- .4byte sub_807CAE8
- .4byte nullsub_38
- .4byte sub_807CAE8
- .4byte sub_807CB0C
- .4byte sub_807DE78
- .4byte sub_807DEF4
- .4byte sub_807DEC4
- .4byte sub_807DF54
- .4byte sub_807DF9C
- .4byte nullsub_55
- .4byte sub_807DFC0
- .4byte sub_807DFD0
- .4byte sub_807E364
- .4byte sub_807E400
- .4byte sub_807E3D0
- .4byte sub_807E460
- .4byte sub_807E9C8
- .4byte snowflakes_progress2
- .4byte sub_807EA18
- .4byte sub_807EAC0
- .4byte sub_807EE80
- .4byte sub_807EFC0
- .4byte sub_807EEF4
- .4byte sub_807F34C
- .4byte sub_807F49C
- .4byte sub_807F52C
- .4byte sub_807F4FC
- .4byte sub_807F5EC
- .4byte sub_807F7F8
- .4byte sub_807F888
- .4byte sub_807F858
- .4byte sub_807F934
- .4byte sub_807FE9C
- .4byte sub_807FF4C
- .4byte sub_807FF1C
- .4byte sub_807FFC8
- .4byte sub_807FB24
- .4byte sub_807FBD8
- .4byte sub_807FBA8
- .4byte sub_807FC3C
- .4byte sub_807F49C
- .4byte sub_807F52C
- .4byte sub_807F4FC
- .4byte sub_807F5EC
- .4byte sub_8080430
- .4byte nullsub_56
- .4byte sub_8080460
- .4byte sub_8080470
- .4byte sub_807E110
- .4byte sub_807E174
- .4byte sub_807E144
- .4byte sub_807E258
- .4byte sub_807EF24
- .4byte sub_807EFC0
- .4byte sub_807EF90
- .4byte sub_807F34C
- .4byte sub_8080474
- .4byte sub_80804F8
- .4byte sub_80804C8
- .4byte sub_808056C
-
- .align 2
-gUnknown_083970B8:: @ 83970B8
- .4byte sub_807CC24
- .4byte sub_807CCAC
- .4byte nullsub_39
- .4byte nullsub_39
-
-gUnknown_083970C8:: @ 83970C8
- .incbin "baserom.gba", 0x003970c8, 0x20
-
- .align 2
-gUnknown_083970E8:: @ 83970E8
- .incbin "graphics/weather/0.gbapal"
-
- .align 2
-gUnknown_08397108:: @ 8397108
- .incbin "graphics/weather/1.gbapal"
-
- .align 2
-gUnknown_08397128:: @ 8397128
- .incbin "graphics/weather/2.gbapal"
-
- .align 2
-WeatherFog0Tiles: @ 8397148
- .incbin "graphics/weather/fog0.4bpp"
-
- .align 2
-gWeatherFog1Tiles:: @ 8397948
- .incbin "graphics/weather/fog1.4bpp"
-
- .align 2
-WeatherCloudTiles: @ 8398148
- .incbin "graphics/weather/cloud.4bpp"
-
- .align 2
-gSpriteImage_8398948:: @ 8398948
- .incbin "graphics/weather/snow0.4bpp"
-
- .align 2
-gSpriteImage_8398968:: @ 8398968
- .incbin "graphics/weather/snow1.4bpp"
-
- .align 2
-WeatherBubbleTiles: @ 8398988
- .incbin "graphics/weather/bubble.4bpp"
-
- .align 2
-WeatherAshTiles: @ 83989C8
- .incbin "graphics/weather/ash.4bpp"
-
- .align 2
-WeatherRainTiles: @ 83999C8
- .incbin "graphics/weather/rain.4bpp"
-
- .align 2
-WeatherSandstormTiles: @ 8399FC8
- .incbin "graphics/weather/sandstorm.4bpp"
-
- .align 1
-gUnknown_0839A9C8:: @ 839A9C8
- .2byte 0, 66
- .2byte 5, 73
- .2byte 10, 78
-
- .align 2
-gUnknown_0839A9D4:: @ 839A9D4
- obj_tiles WeatherCloudTiles, 0x800, 0x1200
-
- .align 2
-gOamData_839A9DC:: @ 839A9DC
- .2byte 0x0400
- .2byte 0xC000
- .2byte 0x0C00
-
- .align 2
-gSpriteAnim_839A9E4:: @ 839A9E4
- obj_image_anim_frame 0, 16
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_839A9EC:: @ 839A9EC
- .4byte gSpriteAnim_839A9E4
-
- .align 2
-gSpriteTemplate_839A9F0:: @ 839A9F0
- spr_template 4608, 4609, gOamData_839A9DC, gSpriteAnimTable_839A9EC, NULL, gDummySpriteAffineAnimTable, sub_807E0F4
-
- .align 1
-gUnknown_0839AA08:: @ 839AA08
- .2byte 0, 0
- .2byte 0, 160
- .2byte 0, 64
- .2byte 144, 224
- .2byte 144, 128
- .2byte 32, 32
- .2byte 32, 192
- .2byte 32, 96
- .2byte 72, 128
- .2byte 72, 32
- .2byte 72, 192
- .2byte 216, 96
- .2byte 216, 0
- .2byte 104, 160
- .2byte 104, 64
- .2byte 104, 224
- .2byte 144, 0
- .2byte 144, 160
- .2byte 144, 64
- .2byte 32, 224
- .2byte 32, 128
- .2byte 72, 32
- .2byte 72, 192
- .2byte 48, 96
-
- .align 2
-gOamData_839AA68:: @ 839AA68
- .2byte 0x8000
- .2byte 0x8000
- .2byte 0x2400
-
- .align 2
-gSpriteAnim_839AA70:: @ 839AA70
- obj_image_anim_frame 0, 16
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnim_839AA78:: @ 839AA78
- obj_image_anim_frame 8, 3
- obj_image_anim_frame 32, 2
- obj_image_anim_frame 40, 2
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_839AA88:: @ 839AA88
- obj_image_anim_frame 8, 3
- obj_image_anim_frame 16, 3
- obj_image_anim_frame 24, 4
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_839AA98:: @ 839AA98
- .4byte gSpriteAnim_839AA70
- .4byte gSpriteAnim_839AA78
- .4byte gSpriteAnim_839AA88
-
- .align 2
-gSpriteTemplate_839AAA4:: @ 839AAA4
- spr_template 4614, 4608, gOamData_839AA68, gSpriteAnimTable_839AA98, NULL, gDummySpriteAffineAnimTable, sub_807E5C0
-
-gUnknown_0839AABC:: @ 839AABC
- .incbin "baserom.gba", 0x0039aabc, 0x8
-
-gUnknown_0839AAC4:: @ 839AAC4
- .incbin "baserom.gba", 0x0039aac4, 0x8
-
- .align 2
-gUnknown_0839AACC:: @ 839AACC
- obj_tiles WeatherRainTiles, 0x600, 0x1206
-
- .align 2
-gOamData_839AAD4:: @ 839AAD4
- .2byte 0x0000
- .2byte 0x0000
- .2byte 0x0400
-
- .align 2
-gSpriteImageTable_839AADC:: @ 839AADC
- obj_frame_tiles gSpriteImage_8398948, 0x20
- obj_frame_tiles gSpriteImage_8398968, 0x20
-
- .align 2
-gSpriteAnim_839AAEC:: @ 839AAEC
- obj_image_anim_frame 0, 16
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_839AAF4:: @ 839AAF4
- obj_image_anim_frame 1, 16
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_839AAFC:: @ 839AAFC
- .4byte gSpriteAnim_839AAEC
- .4byte gSpriteAnim_839AAF4
-
- .align 2
-gSpriteTemplate_839AB04:: @ 839AB04
- spr_template 0xFFFF, 4608, gOamData_839AAD4, gSpriteAnimTable_839AAFC, gSpriteImageTable_839AADC, gDummySpriteAffineAnimTable, sub_807ED48
-
- .align 2
- .incbin "baserom.gba", 0x0039ab1c, 0x10
-
- .align 2
-gOamData_839AB2C:: @ 839AB2C
- .2byte 0x0400
- .2byte 0xC000
- .2byte 0x0800
-
- .align 2
-gSpriteAnim_839AB34:: @ 839AB34
- obj_image_anim_frame 0, 16
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_839AB3C:: @ 839AB3C
- obj_image_anim_frame 32, 16
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_839AB44:: @ 839AB44
- obj_image_anim_frame 64, 16
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_839AB4C:: @ 839AB4C
- obj_image_anim_frame 96, 16
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_839AB54:: @ 839AB54
- obj_image_anim_frame 128, 16
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_839AB5C:: @ 839AB5C
- obj_image_anim_frame 160, 16
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_839AB64:: @ 839AB64
- .4byte gSpriteAnim_839AB34
- .4byte gSpriteAnim_839AB3C
- .4byte gSpriteAnim_839AB44
- .4byte gSpriteAnim_839AB4C
- .4byte gSpriteAnim_839AB54
- .4byte gSpriteAnim_839AB5C
-
- .align 2
-gSpriteAffineAnim_839AB7C:: @ 839AB7C
- obj_rot_scal_anim_frame 0x200, 0x200, 0, 0
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnimTable_839AB8C:: @ 839AB8C
- .4byte gSpriteAffineAnim_839AB7C
-
- .align 2
-gSpriteTemplate_839AB90:: @ 839AB90
- spr_template 4609, 4608, gOamData_839AB2C, gSpriteAnimTable_839AB64, NULL, gSpriteAffineAnimTable_839AB8C, sub_807F688
-
- .align 2
-gUnknown_0839ABA8:: @ 839ABA8
- obj_tiles gWeatherFog1Tiles, 0x800, 0x1201
-
- .align 2
-gUnknown_0839ABB0:: @ 839ABB0
- obj_tiles WeatherAshTiles, 0x1000, 0x1202
-
- .align 2
-gOamData_839ABB8:: @ 839ABB8
- .2byte 0x0400
- .2byte 0xC000
- .2byte 0xF400
-
- .align 2
-gSpriteAnim_839ABC0:: @ 839ABC0
- obj_image_anim_frame 0, 60
- obj_image_anim_frame 64, 60
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnimTable_839ABCC:: @ 839ABCC
- .4byte gSpriteAnim_839ABC0
-
- .align 2
-gSpriteTemplate_839ABD0:: @ 839ABD0
- spr_template 4610, 4608, gOamData_839ABB8, gSpriteAnimTable_839ABCC, NULL, gDummySpriteAffineAnimTable, sub_807FAA8
-
- .align 2
-gUnknown_0839ABE8:: @ 839ABE8
- obj_tiles WeatherFog0Tiles, 0x800, 0x1203
-
- .align 2
-gOamData_839ABF0:: @ 839ABF0
- .2byte 0x0400
- .2byte 0xC000
- .2byte 0x0800
-
- .align 2
-gSpriteAnim_839ABF8:: @ 839ABF8
- obj_image_anim_frame 0, 16
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_839AC00:: @ 839AC00
- .4byte gSpriteAnim_839ABF8
-
- .align 2
-gSpriteTemplate_839AC04:: @ 839AC04
- spr_template 4611, 4608, gOamData_839ABF0, gSpriteAnimTable_839AC00, NULL, gDummySpriteAffineAnimTable, sub_807FE3C
-
- .align 2
-gOamData_839AC1C:: @ 839AC1C
- .2byte 0x0400
- .2byte 0xC000
- .2byte 0x0400
-
- .align 2
-gSpriteAnim_839AC24:: @ 839AC24
- obj_image_anim_frame 0, 3
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_839AC2C:: @ 839AC2C
- obj_image_anim_frame 64, 3
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_839AC34:: @ 839AC34
- .4byte gSpriteAnim_839AC24
- .4byte gSpriteAnim_839AC2C
-
- .align 2
-gSpriteTemplate_839AC3C:: @ 839AC3C
- spr_template 4612, 4609, gOamData_839AC1C, gSpriteAnimTable_839AC34, NULL, gDummySpriteAffineAnimTable, sub_8080338
-
- .align 2
-gUnknown_0839AC54:: @ 839AC54
- obj_tiles WeatherSandstormTiles, 0xA00, 0x1204
-
-gUnknown_0839AC5C:: @ 839AC5C
- .incbin "baserom.gba", 0x0039ac5c, 0xc
-
-gUnknown_0839AC68:: @ 839AC68
- .incbin "baserom.gba", 0x0039ac68, 0x8
-
- .align 2
-gUnknown_0839AC70:: @ 839AC70
- obj_tiles WeatherBubbleTiles, 0x40, 0x1205
-
- .align 1
-gUnknown_0839AC78:: @ 839AC78
- .2byte 120, 160
- .2byte 376, 160
- .2byte 40, 140
- .2byte 296, 140
- .2byte 180, 130
- .2byte 436, 130
- .2byte 60, 160
- .2byte 436, 160
- .2byte 220, 180
- .2byte 476, 180
- .2byte 10, 90
- .2byte 266, 90
- .2byte 256, 160
-
- .align 2
-gSpriteAnim_839ACAC:: @ 839ACAC
- obj_image_anim_frame 0, 16
- obj_image_anim_frame 1, 16
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_839ACB8:: @ 839ACB8
- .4byte gSpriteAnim_839ACAC
-
- .align 2
-gSpriteTemplate_839ACBC:: @ 839ACBC
- spr_template 4613, 4608, gOamData_837DF24, gSpriteAnimTable_839ACB8, NULL, gDummySpriteAffineAnimTable, unc_0807DAB4
-
-gUnknown_0839ACD4:: @ 839ACD4
- .byte 2, 3, 5, 3
-
-gUnknown_0839ACD8:: @ 839ACD8
- .byte 2, 2, 3, 2
-
-gUnknown_0839ACDC:: @ 839ACDC
- .incbin "baserom.gba", 0x0039acdc, 0xc
-
- .align 2
-gUnknown_0839ACE8:: @ 839ACE8
- .byte 4
-
- .align 2
-gUnknown_0839ACEC:: @ 839ACEC
- .4byte REG_WIN0H
- .4byte ((DMA_ENABLE | DMA_START_HBLANK | DMA_REPEAT | DMA_DEST_RELOAD) << 16) | 1
- .4byte 1
-
-gBattleTransitionTable_Wild:: @ 839ACF8
- .byte 8, 9, 5, 10, 0, 10, 7, 6
-
-gBattleTransitionTable_Trainer:: @ 839AD00
- .byte 4, 11, 2, 3, 0, 10, 1, 6
-
- .align 2
-gTrainerBattleSpecs_0:: @ 839AD08
- .4byte gTrainerBattleMode, 0
- .4byte gTrainerBattleOpponent, 1
- .4byte gTrainerMapObjectLocalId, 1
- .4byte gTrainerIntroSpeech, 2
- .4byte gTrainerDefeatSpeech, 2
- .4byte gTrainerVictorySpeech, 5
- .4byte gTrainerCannotBattleSpeech, 5
- .4byte gTrainerBattleEndScript, 5
- .4byte gTrainerBattleScriptReturnAddress, 6
-
- .align 2
-gTrainerBattleSpecs_1:: @ 839AD50
- .4byte gTrainerBattleMode, 0
- .4byte gTrainerBattleOpponent, 1
- .4byte gTrainerMapObjectLocalId, 1
- .4byte gTrainerIntroSpeech, 2
- .4byte gTrainerDefeatSpeech, 2
- .4byte gTrainerVictorySpeech, 5
- .4byte gTrainerCannotBattleSpeech, 5
- .4byte gTrainerBattleEndScript, 2
- .4byte gTrainerBattleScriptReturnAddress, 6
-
- .align 2
-gTrainerBattleSpecs_2:: @ 839AD98
- .4byte gTrainerBattleMode, 0
- .4byte gTrainerBattleOpponent, 1
- .4byte gTrainerMapObjectLocalId, 1
- .4byte gTrainerIntroSpeech, 2
- .4byte gTrainerDefeatSpeech, 2
- .4byte gTrainerVictorySpeech, 5
- .4byte gTrainerCannotBattleSpeech, 2
- .4byte gTrainerBattleEndScript, 5
- .4byte gTrainerBattleScriptReturnAddress, 6
-
- .align 2
-gTrainerBattleSpecs_3:: @ 839ADE0
- .4byte gTrainerBattleMode, 0
- .4byte gTrainerBattleOpponent, 1
- .4byte gTrainerMapObjectLocalId, 1
- .4byte gTrainerIntroSpeech, 5
- .4byte gTrainerDefeatSpeech, 2
- .4byte gTrainerVictorySpeech, 5
- .4byte gTrainerCannotBattleSpeech, 5
- .4byte gTrainerBattleEndScript, 5
- .4byte gTrainerBattleScriptReturnAddress, 6
-
- .align 2
-gTrainerBattleSpecs_4:: @ 839AE28
- .4byte gTrainerBattleMode, 0
- .4byte gTrainerBattleOpponent, 1
- .4byte gTrainerMapObjectLocalId, 1
- .4byte gTrainerIntroSpeech, 2
- .4byte gTrainerDefeatSpeech, 2
- .4byte gTrainerVictorySpeech, 5
- .4byte gTrainerCannotBattleSpeech, 2
- .4byte gTrainerBattleEndScript, 2
- .4byte gTrainerBattleScriptReturnAddress, 6
-
-@ 839AE70
- .include "data/trainer_eye_trainers.inc"
-
- .align 2
-gBadgeFlags:: @ 839B1F0
- .2byte 0x0807, 0x0808, 0x0809, 0x080a, 0x080b, 0x080c, 0x080d, 0x080e
-
-TrainerCardColorName_Bronze:
- .string "BRONZE$", 7
-TrainerCardColorName_Copper:
- .string "COPPER$", 7
-TrainerCardColorName_Silver:
- .string "SILVER$", 7
-TrainerCardColorName_Gold:
- .string "GOLD$", 7
-
- .align 2
-gTrainerCardColorNames:: @ 839B21C
- .4byte TrainerCardColorName_Bronze
- .4byte TrainerCardColorName_Copper
- .4byte TrainerCardColorName_Silver
- .4byte TrainerCardColorName_Gold
-
-@ These seem to be strings for keypad test code.
-gUnknown_0839B22C:: @ 839B22C
- .string " A$" @ A
- .string " B$" @ B
- .string "SL$" @ SELECT
- .string "ST$" @ START
- .string "RK$" @ right
- .string "LK$" @ left
- .string "UK$" @ up
- .string "DK$" @ down
- .string "RT$" @ R
- .string "LT$" @ L
-
-gUnknown_0839B24A:: @ 839B24A
- .string "ND$"
-
-gUnknown_0839B24D:: @ 839B24D
- .string "の こどもは\n$" @ "'s child <topic-particle>"
-
-gUnknown_0839B255:: @ 839B255
- .string " $"
-
-gUnknown_0839B257:: @ 839B257
- .string "ながいなまえぽけもん$" @ "long name pokemon" (used as test name)
-
-Text_39B262: @ 839B262
- .string "Search a child$"
-
-Text_39B271: @ 839B271
- .string "Egg$"
-
-Text_39B275: @ 839B275
- .string "Egg (male)$"
-
-Text_39B280: @ 839B280
- .string "1000 steps$"
-
-Text_39B28B: @ 839B28B
- .string "10000 steps$"
-
-Text_39B297: @ 839B297
- .string "MOVE TUTOR$"
-
-Text_39B2A2: @ 839B2A2
- .string "Breed an egg$"
-
-Text_39B2AF: @ 839B2AF
- .string "Long name$"
-
-Text_39B2B9: @ 839B2B9
- .string "ポロックけす$" @ "{POKEBLOCK} CASE$"
-
- .align 2
-gMoriDebugMenuActions:: @ 839B2C0
- .4byte Text_39B262, MoriDebugMenu_SearchChild
- .4byte Text_39B271, MoriDebugMenu_Egg
- .4byte Text_39B275, MoriDebugMenu_MaleEgg
- .4byte Text_39B280, MoriDebugMenu_1000Steps
- .4byte Text_39B28B, MoriDebugMenu_10000Steps
- .4byte Text_39B297, MoriDebugMenu_MoveTutor
- .4byte Text_39B2A2, MoriDebugMenu_BreedEgg
- .4byte Text_39B2AF, MoriDebugMenu_LongName
- .4byte Text_39B2B9, MoriDebugMenu_PokeblockCase
-
- .align 2
-gSpriteImage_839B308:: @ 839B308
- .incbin "graphics/unknown_sprites/839B4E0/0.4bpp"
-
- .align 2
-gSpriteImage_839B388:: @ 839B388
- .incbin "graphics/unknown_sprites/839B4E0/1.4bpp"
-
- .align 2
-gSpriteImage_839B408:: @ 839B408
- .incbin "graphics/unknown_sprites/839B408.4bpp"
-
- .align 2
-gIsTrainerInRange:: @ 839B488
- .4byte IsTrainerInRangeSouth
- .4byte IsTrainerInRangeNorth
- .4byte IsTrainerInRangeWest
- .4byte IsTrainerInRangeEast
-
- .align 2
-gTrainerSeeFuncList:: @ 839B498
- .4byte sub_8084394
- .4byte sub_8084398
- .4byte sub_80843DC
- .4byte sub_808441C
- .4byte sub_8084478
- .4byte sub_8084534
- .4byte sub_8084578
- .4byte sub_80845AC
- .4byte sub_80845C8
- .4byte sub_80845FC
- .4byte sub_8084654
- .4byte sub_80846C8
-
- .align 2
-gTrainerSeeFuncList2:: @ 839B4C8
- .4byte sub_80845C8
- .4byte sub_80845FC
- .4byte sub_8084654
- .4byte sub_80846C8
-
- .align 2
-gOamData_839B4D8:: @ 839B4D8
- .2byte 0x0000
- .2byte 0x4000
- .2byte 0x0400
-
- .align 2
-gSpriteImageTable_839B4E0:: @ 839B4E0
- obj_frame_tiles gSpriteImage_839B308, 0x80
- obj_frame_tiles gSpriteImage_839B388, 0x80
-
- .align 2
-gSpriteImageTable_839B4F0:: @ 839B4F0
- obj_frame_tiles gSpriteImage_839B408, 0x80
-
- .align 2
-gSpriteAnim_839B4F8:: @ 839B4F8
- obj_image_anim_frame 0, 60
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_839B500:: @ 839B500
- obj_image_anim_frame 1, 60
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_839B508:: @ 839B508
- .4byte gSpriteAnim_839B4F8
- .4byte gSpriteAnim_839B500
-
- .align 2
-gSpriteTemplate_839B510:: @ 839B510
- spr_template 0xFFFF, 0xFFFF, gOamData_839B4D8, gSpriteAnimTable_839B508, gSpriteImageTable_839B4E0, gDummySpriteAffineAnimTable, objc_exclamation_mark_probably
-
- .align 2
-gSpriteTemplate_839B528:: @ 839B528
- spr_template 0xFFFF, 4100, gOamData_839B4D8, gSpriteAnimTable_839B508, gSpriteImageTable_839B4F0, gDummySpriteAffineAnimTable, objc_exclamation_mark_probably
-
-@ 839B540
- .include "data/wild_mons.inc"
-
- .align 2
-gWildFeebasRoute119Data:: @ 839DBFC
- .byte 20, 25 @ Min/Max level
- .2byte SPECIES_FEEBAS
-
- .align 2
-gRoute119WaterTileData:: @ 839DC00
- .2byte 0x0, 0x2D, 0x0
- .2byte 0x2E, 0x5B, 0x83
- .2byte 0x5C, 0x8B, 0x12A
-
- .align 2
-gSpriteImage_839DC14:: @ 839DC14
- .incbin "graphics/birch_speech/birch.4bpp"
-
- .align 2
-gBirchPalette:: @ 839E414
- .incbin "graphics/birch_speech/birch.gbapal"
-
- .align 2
-gSpriteImage_839E434:: @ 839E434
- .incbin "graphics/misc/pokeball_glow.4bpp"
-
- .align 2
-gFieldEffectObjectPalette4: @ 839E454
- .incbin "graphics/field_effect_objects/palettes/04.gbapal"
-
- .align 2
-gSpriteImage_839E474:: @ 839E474
- .incbin "graphics/misc/pokecenter_monitor/0.4bpp"
-
- .align 2
-gSpriteImage_839E534:: @ 839E534
- .incbin "graphics/misc/pokecenter_monitor/1.4bpp"
-
- .align 2
-gSpriteImage_839E5F4:: @ 839E5F4
- .incbin "graphics/misc/big_hof_monitor.4bpp"
-
- .align 2
-gSpriteImage_839E7F4:: @ 839E7F4
- .incbin "graphics/misc/small_hof_monitor.4bpp"
-
- .align 2
-gFieldEffectObjectPalette5: @ 839E8F4
- .incbin "graphics/field_effect_objects/palettes/05.gbapal"
-
-@ Graphics for the lights streaking past your Pokémon when it uses a field move.
-
- .align 2
-gFieldMoveStreaksTiles:: @ 839E914
- .incbin "graphics/misc/field_move_streaks.4bpp"
-
- .align 2
-gFieldMoveStreaksPalette:: @ 839EB14
- .incbin "graphics/misc/field_move_streaks.gbapal"
-
- .align 2
-gFieldMoveStreaksTilemap:: @ 839EB34
- .incbin "graphics/misc/field_move_streaks_map.bin"
-
-@ The following light streaks effect is used when the map is dark (e.g. a cave).
-
- .align 2
-gDarknessFieldMoveStreaksTiles:: @ 839EDB4
- .incbin "graphics/misc/darkness_field_move_streaks.4bpp"
-
- .align 2
-gDarknessFieldMoveStreaksPalette:: @ 839EE34
- .incbin "graphics/misc/darkness_field_move_streaks.gbapal"
-
- .align 2
-gDarknessFieldMoveStreaksTilemap:: @ 839EE54
- .incbin "graphics/misc/darkness_field_move_streaks_map.bin"
-
- .align 2
-gFieldEffectScriptFuncs:: @ 839F0D4
- .4byte FieldEffectCmd_loadtiles
- .4byte FieldEffectCmd_loadfadedpal
- .4byte FieldEffectCmd_loadpal
- .4byte FieldEffectCmd_callnative
- .4byte FieldEffectCmd_end
- .4byte FieldEffectCmd_loadgfx_callnative
- .4byte FieldEffectCmd_loadtiles_callnative
- .4byte FieldEffectCmd_loadfadedpal_callnative
-
- .align 2
-gOamData_839F0F4:: @ 839F0F4
- .2byte 0x0000
- .2byte 0xC000
- .2byte 0x0000
-
- .align 2
-gOamData_839F0FC:: @ 839F0FC
- .2byte 0x0000
- .2byte 0x0000
- .2byte 0x0000
-
- .align 2
-gOamData_839F104:: @ 839F104
- .2byte 0x0000
- .2byte 0x4000
- .2byte 0x0000
-
- .align 2
-gSpriteImageTable_839F10C:: @ 839F10C
- obj_frame_tiles gSpriteImage_839DC14, 0x800
-
- .align 2
-gUnknown_0839F114:: @ 839F114
- obj_pal gBirchPalette, 0x1006
-
- .align 2
-gSpriteAnim_839F11C:: @ 839F11C
- obj_image_anim_frame 0, 1
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_839F124:: @ 839F124
- .4byte gSpriteAnim_839F11C
-
- .align 2
-gSpriteTemplate_839F128:: @ 839F128
- spr_template 0xFFFF, 4102, gOamData_839F0F4, gSpriteAnimTable_839F124, gSpriteImageTable_839F10C, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-gFieldEffectObjectPaletteInfo4:: @ 839F140
- obj_pal gFieldEffectObjectPalette4, 0x1007
-
- .align 2
-gFieldEffectObjectPaletteInfo5:: @ 839F148
- obj_pal gFieldEffectObjectPalette5, 0x1010
-
- .align 2
-gOamData_839F150:: @ 839F150
- .2byte 0x4000
- .2byte 0x8000
- .2byte 0x0000
-
- .align 2
-gSpriteImageTable_839F158:: @ 839F158
- obj_frame_tiles gSpriteImage_839E434, 0x20
-
- .align 2
-gSpriteImageTable_839F160:: @ 839F160
- obj_frame_tiles gSpriteImage_839E474, 0xc0
- obj_frame_tiles gSpriteImage_839E534, 0xc0
-
- .align 2
-gSpriteImageTable_839F170:: @ 839F170
- obj_frame_tiles gSpriteImage_839E5F4, 0x200
-
- .align 2
-gSpriteImageTable_839F178:: @ 839F178
- obj_frame_tiles gSpriteImage_839E7F4, 0x200
-
- .align 2
-Unknown_39F180:: @ 839F180
- .incbin "baserom.gba", 0x0039f180, 0x20
-
- .align 2
-gUnknown_0839F1A0:: @ 839F1A0
- .4byte 4, Unknown_39F180
-
- .align 2
-Unknown_39F1A8:: @ 39F1A8
- .incbin "baserom.gba", 0x0039f1a8, 0x20
-
- .align 2
-gUnknown_0839F1C8:: @ 839F1C8
- .4byte 4, Unknown_39F1A8
-
- .align 2
-gSpriteAnim_839F1D0:: @ 839F1D0
- obj_image_anim_frame 0, 1
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnim_839F1D8:: @ 839F1D8
- obj_image_anim_frame 0, 16
- obj_image_anim_frame 1, 16
- obj_image_anim_frame 0, 16
- obj_image_anim_frame 1, 16
- obj_image_anim_frame 0, 16
- obj_image_anim_frame 1, 16
- obj_image_anim_frame 0, 16
- obj_image_anim_frame 1, 16
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_839F1FC:: @ 839F1FC
- .4byte gSpriteAnim_839F1D0
- .4byte gSpriteAnim_839F1D8
-
- .align 2
-gSpriteAnimTable_839F204:: @ 839F204
- .4byte gSpriteAnim_839F1D0
-
- .align 2
-gSpriteTemplate_839F208:: @ 839F208
- spr_template 0xFFFF, 4103, gOamData_839F0FC, gSpriteAnimTable_839F1FC, gSpriteImageTable_839F158, gDummySpriteAffineAnimTable, SpriteCB_PokeballGlow
-
- .align 2
-gSpriteTemplate_839F220:: @ 839F220
- spr_template 0xFFFF, 4100, gOamData_839F104, gSpriteAnimTable_839F1FC, gSpriteImageTable_839F160, gDummySpriteAffineAnimTable, SpriteCB_PokecenterMonitor
-
- .align 2
-gSpriteTemplate_839F238:: @ 839F238
- spr_template 0xFFFF, 4112, gOamData_839F104, gSpriteAnimTable_839F204, gSpriteImageTable_839F170, gDummySpriteAffineAnimTable, SpriteCB_HallOfFameMonitor
-
- .align 2
-gSpriteTemplate_839F250:: @ 839F250
- spr_template 0xFFFF, 4112, gOamData_839F150, gSpriteAnimTable_839F204, gSpriteImageTable_839F178, gDummySpriteAffineAnimTable, SpriteCB_HallOfFameMonitor
-
- .align 2
-gUnknown_0839F268:: @ 839F268
- .4byte PokecenterHealEffect_0
- .4byte PokecenterHealEffect_1
- .4byte PokecenterHealEffect_2
- .4byte PokecenterHealEffect_3
-
- .align 2
-gUnknown_0839F278:: @ 839F278
- .4byte HallOfFameRecordEffect_0
- .4byte HallOfFameRecordEffect_1
- .4byte HallOfFameRecordEffect_2
- .4byte HallOfFameRecordEffect_3
-
- .align 2
-gUnknown_0839F288:: @ 839F288
- .4byte PokeballGlowEffect_0
- .4byte PokeballGlowEffect_1
- .4byte PokeballGlowEffect_2
- .4byte PokeballGlowEffect_3
- .4byte PokeballGlowEffect_4
- .4byte PokeballGlowEffect_5
- .4byte PokeballGlowEffect_6
- .4byte PokeballGlowEffect_7
-
-gUnknown_0839F2A8:: @ 839F2A8
- .incbin "baserom.gba", 0x0039f2a8, 0x18
-
-gUnknown_0839F2C0:: @ 839F2C0
- .incbin "baserom.gba", 0x0039f2c0, 0x4
-
-gUnknown_0839F2C4:: @ 839F2C4
- .incbin "baserom.gba", 0x0039f2c4, 0x4
-
-gUnknown_0839F2C8:: @ 839F2C8
- .space 4
-
- .align 2
-gUnknown_0839F2CC:: @ 839F2CC
- .4byte sub_80867AC
- .4byte sub_8086854
- .4byte sub_8086870
- .4byte sub_80868E4
- .4byte sub_808699C
- .4byte sub_80869B8
- .4byte sub_80869F8
-
- .align 2
-gUnknown_0839F2E8:: @ 839F2E8
- .4byte sub_8086AA0
- .4byte sub_8086AC0
- .4byte sub_8086B30
- .4byte sub_8086B54
- .4byte sub_8086B64
- .4byte sub_8086B88
-
- .align 2
-gUnknown_0839F300:: @ 839F300
- .4byte sub_8086CF4
- .4byte sub_8086D70
- .4byte sub_8086DB0
- .4byte sub_8086E10
- .4byte sub_8086E50
- .4byte sub_8086EB0
- .4byte sub_8086ED4
-
- .align 2
-gUnknown_0839F31C:: @ 839F31C
- .4byte sub_8086FB0
- .4byte waterfall_1_do_anim_probably
- .4byte waterfall_2_wait_anim_finish_probably
- .4byte sub_8087030
- .4byte sub_8087058
-
- .align 2
-gUnknown_0839F330:: @ 839F330
- .4byte sub_8087124
- .4byte dive_2_unknown
- .4byte dive_3_unknown
-
- .align 2
-gUnknown_0839F33C:: @ 839F33C
- .4byte sub_808722C
- .4byte sub_8087264
- .4byte sub_8087298
- .4byte sub_80872E4
- .4byte sub_80873D8
- .4byte sub_80873F4
-
- .align 2
-gUnknown_0839F354:: @ 839F354
- .4byte sub_80874CC
- .4byte sub_80874FC
- .4byte sub_8087548
- .4byte sub_808759C
-
- .align 2
-gUnknown_0839F364:: @ 839F364
- .4byte sub_80876C8
- .4byte sub_80876F8
- .4byte sub_8087774
- .4byte sub_80877AC
- .4byte sub_80877D4
-
- .align 2
-gUnknown_0839F378:: @ 839F378
- .4byte sub_80878F4
- .4byte sub_8087914
-
-gUnknown_0839F380:: @ 839F380
- .incbin "baserom.gba", 0x0039f380, 0x8
-
- .align 2
-gUnknown_0839F388:: @ 839F388
- .4byte sub_8087AA4
- .4byte sub_8087AC8
-
- .align 2
-gUnknown_0839F390:: @ 839F390
- .4byte sub_8087BEC
- .4byte sub_8087C14
- .4byte sub_8087CA4
- .4byte sub_8087D78
-
- .align 2
-gUnknown_0839F3A0:: @ 839F3A0
- .4byte sub_8087E4C
- .4byte sub_8087ED8
- .4byte sub_8087FDC
-
- .align 2
-gUnknown_0839F3AC:: @ 839F3AC
- .4byte sub_8088150
- .4byte sub_80881C0
- .4byte sub_8088228
- .4byte sub_80882B4
- .4byte sub_80882E4
- .4byte sub_8088338
- .4byte sub_8088380
-
- .align 2
-gUnknown_0839F3C8:: @ 839F3C8
- .4byte sub_80884AC
- .4byte sub_80884E8
- .4byte sub_8088554
- .4byte sub_80885A8
- .4byte sub_80885D8
- .4byte sub_808860C
- .4byte sub_808862C
-
- .align 2
-gUnknown_0839F3E4:: @ 839F3E4
- .4byte sub_8088984
- .4byte sub_80889E4
- .4byte sub_8088A30
- .4byte sub_8088A78
- .4byte sub_8088AF4
-
- .align 2
-gUnknown_0839F3F8:: @ 839F3F8
- .4byte sub_8088CA0
- .4byte sub_8088CF8
- .4byte sub_8088D3C
- .4byte sub_8088D94
- .4byte sub_8088DD8
- .4byte sub_8088E2C
- .4byte sub_8088EB4
- .4byte sub_8088F10
- .4byte sub_8088F30
-Unknown_839F41C:
- .incbin "baserom.gba", 0x0039f41c, 0x18
-Unknown_839F434:
- .incbin "baserom.gba", 0x0039f434, 0x18
-
- .align 2
-gUnknown_0839F44C:: @ 839F44C
- .4byte Unknown_839F41C
- .4byte Unknown_839F434
-
- .align 2
-gUnknown_0839F454:: @ 839F454
- .4byte sub_80892A0
- .4byte sub_8089354
- .4byte sub_80893C0
- .4byte sub_8089414
- .4byte sub_808948C
- .4byte sub_80894C4
- .4byte fishE
-
-gUnknown_0839F470:: @ 839F470
- .incbin "baserom.gba", 0x0039f470, 0x24
-
- .align 2
-gPokemonMenuActions:: @ 839F494
- .4byte OtherText_Summary, PokemonMenu_Summary
- .4byte OtherText_Switch2, PokemonMenu_Switch
- .4byte OtherText_Item, PokemonMenu_Item
- .4byte gOtherText_CancelNoTerminator, PokemonMenu_Cancel
- .4byte OtherText_Give2, PokemonMenu_GiveItem
- .4byte OtherText_Take2, PokemonMenu_TakeItem
- .4byte OtherText_Take, PokemonMenu_TakeMail
- .4byte OtherText_Mail, PokemonMenu_Mail
- .4byte OtherText_Read2, PokemonMenu_ReadMail
- .4byte gOtherText_CancelNoTerminator, PokemonMenu_CancelSubmenu
- .4byte gMoveNames + 13 * MOVE_CUT, PokemonMenu_FieldMove
- .4byte gMoveNames + 13 * MOVE_FLASH, PokemonMenu_FieldMove
- .4byte gMoveNames + 13 * MOVE_ROCK_SMASH, PokemonMenu_FieldMove
- .4byte gMoveNames + 13 * MOVE_STRENGTH, PokemonMenu_FieldMove
- .4byte gMoveNames + 13 * MOVE_SURF, PokemonMenu_FieldMove
- .4byte gMoveNames + 13 * MOVE_FLY, PokemonMenu_FieldMove
- .4byte gMoveNames + 13 * MOVE_DIVE, PokemonMenu_FieldMove
- .4byte gMoveNames + 13 * MOVE_WATERFALL, PokemonMenu_FieldMove
- .4byte gMoveNames + 13 * MOVE_TELEPORT, PokemonMenu_FieldMove
- .4byte gMoveNames + 13 * MOVE_DIG, PokemonMenu_FieldMove
- .4byte gMoveNames + 13 * MOVE_SECRET_POWER, PokemonMenu_FieldMove
- .4byte gMoveNames + 13 * MOVE_MILK_DRINK, PokemonMenu_FieldMove
- .4byte gMoveNames + 13 * MOVE_SOFT_BOILED, PokemonMenu_FieldMove
- .4byte gMoveNames + 13 * MOVE_SWEET_SCENT, PokemonMenu_FieldMove
-
-gUnknown_0839F554:: @ 839F554
- .incbin "baserom.gba", 0x39f554, 0x1e
-
-Unknown_39F572: @ 839F572
- .byte 4, 5, 9, 0
-
- .align 2
-gUnknown_0839F578:: @ 839F578
- .byte 3, 6, 0, 0
- .4byte Unknown_39F572
-
-Unknown_39F580: @ 839F580
- .byte 8, 6, 9, 0
-
- .align 2
-gUnknown_0839F584:: @ 839F584
- .byte 3, 9, 0, 0
- .4byte Unknown_39F580
-
- .align 2
-gFieldMoveFuncs:: @ 839F58C
- .4byte SetUpFieldMove_Cut, 0x6
- .4byte SetUpFieldMove_Flash, 0x9
- .4byte SetUpFieldMove_RockSmash, 0x9
- .4byte SetUpFieldMove_Strength, 0x9
- .4byte SetUpFieldMove_Surf, 0x7
- .4byte SetUpFieldMove_Fly, 0x9
- .4byte SetUpFieldMove_Dive, 0x9
- .4byte SetUpFieldMove_Waterfall, 0x9
- .4byte SetUpFieldMove_Teleport, 0x9
- .4byte SetUpFieldMove_Dig, 0x9
- .4byte SetUpFieldMove_SecretPower, 0x9
- .4byte SetUpFieldMove_SoftBoiled, 0x10
- .4byte SetUpFieldMove_SoftBoiled, 0x10
- .4byte SetUpFieldMove_SweetScent, 0x9
-
- .align 2
-gUnknown_0839F5FC:: @ 839F5FC
- .incbin "baserom.gba", 0x0039f5fc, 0x40
-
- .align 2
-gUnknown_0839F63C:: @ 839F63C
- .incbin "baserom.gba", 0x0039f63c, 0x40
-
- .align 2
-gUnknown_0839F67C:: @ 839F67C
- .incbin "graphics/pokedex/search.gbapal"
-
- .align 2
-gUnknown_0839F73C:: @ 839F73C
- .incbin "graphics/pokedex/national.gbapal"
-
- .space 0xA4
-
- .align 2
-gUnknown_0839F8A0:: @ 839F8A0
- .incbin "baserom.gba", 0x0039f8a0, 0xe8
-
- .align 2
-gUnknown_0839F988:: @ 839F988
- .incbin "baserom.gba", 0x0039f988, 0xf4
-
-gUnknown_0839FA7C:: @ 839FA7C
- .incbin "graphics/pokedex/noball.4bpp.lz"
-
-@ 839FAC4
- .include "data/pokedex_orders.inc"
-
- .align 2
-gOamData_83A0404:: @ 83A0404
- .2byte 0x00A0
- .2byte 0x0000
- .2byte 0x0400
-
- .align 2
-gOamData_83A040C:: @ 83A040C
- .2byte 0x40A0
- .2byte 0x0000
- .2byte 0x0000
-
- .align 2
-gOamData_83A0414:: @ 83A0414
- .2byte 0x40A0
- .2byte 0xC000
- .2byte 0x0000
-
- .align 2
-gOamData_83A041C:: @ 83A041C
- .2byte 0x08A0
- .2byte 0x8000
- .2byte 0x0400
-
- .align 2
-gOamData_83A0424:: @ 83A0424
- .2byte 0x40A0
- .2byte 0xC000
- .2byte 0x0000
-
- .align 2
-gOamData_83A042C:: @ 83A042C
- .2byte 0x80A0
- .2byte 0x0000
- .2byte 0x0000
-
- .align 2
-gSpriteAnim_83A0434:: @ 83A0434
- obj_image_anim_frame 3, 30
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83A043C:: @ 83A043C
- obj_image_anim_frame 1, 30
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83A0444:: @ 83A0444
- obj_image_anim_frame 16, 30
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83A044C:: @ 83A044C
- obj_image_anim_frame 32, 30
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83A0454:: @ 83A0454
- obj_image_anim_frame 64, 30
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83A045C:: @ 83A045C
- obj_image_anim_frame 96, 30
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83A0464:: @ 83A0464
- obj_image_anim_frame 128, 30
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83A046C:: @ 83A046C
- obj_image_anim_frame 160, 30
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83A0474:: @ 83A0474
- obj_image_anim_frame 192, 30
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83A047C:: @ 83A047C
- obj_image_anim_frame 224, 30
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83A0484:: @ 83A0484
- obj_image_anim_frame 226, 30
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83A048C:: @ 83A048C
- obj_image_anim_frame 228, 30
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83A0494:: @ 83A0494
- obj_image_anim_frame 230, 30
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83A049C:: @ 83A049C
- obj_image_anim_frame 232, 30
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83A04A4:: @ 83A04A4
- obj_image_anim_frame 234, 30
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83A04AC:: @ 83A04AC
- obj_image_anim_frame 236, 30
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83A04B4:: @ 83A04B4
- obj_image_anim_frame 238, 30
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83A04BC:: @ 83A04BC
- obj_image_anim_frame 240, 30
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83A04C4:: @ 83A04C4
- obj_image_anim_frame 242, 30
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83A04CC:: @ 83A04CC
- obj_image_anim_frame 4, 30
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83A04D4:: @ 83A04D4
- .4byte gSpriteAnim_83A0434
-
- .align 2
-gSpriteAnimTable_83A04D8:: @ 83A04D8
- .4byte gSpriteAnim_83A043C
-
- .align 2
-gSpriteAnimTable_83A04DC:: @ 83A04DC
- .4byte gSpriteAnim_83A0444
-
- .align 2
-gSpriteAnimTable_83A04E0:: @ 83A04E0
- .4byte gSpriteAnim_83A044C
- .4byte gSpriteAnim_83A0454
- .4byte gSpriteAnim_83A045C
- .4byte gSpriteAnim_83A0464
-
- .align 2
-gSpriteAnimTable_83A04F0:: @ 83A04F0
- .4byte gSpriteAnim_83A046C
- .4byte gSpriteAnim_83A0474
-
- .align 2
-gSpriteAnimTable_83A04F8:: @ 83A04F8
- .4byte gSpriteAnim_83A047C
- .4byte gSpriteAnim_83A0484
- .4byte gSpriteAnim_83A048C
- .4byte gSpriteAnim_83A0494
- .4byte gSpriteAnim_83A049C
- .4byte gSpriteAnim_83A04A4
- .4byte gSpriteAnim_83A04AC
- .4byte gSpriteAnim_83A04B4
- .4byte gSpriteAnim_83A04BC
- .4byte gSpriteAnim_83A04C4
-
- .align 2
-gSpriteAnimTable_83A0520:: @ 83A0520
- .4byte gSpriteAnim_83A04CC
-
- .align 2
-gSpriteTemplate_83A0524:: @ 83A0524
- spr_template 4096, 4096, gOamData_83A0404, gSpriteAnimTable_83A04D4, NULL, gDummySpriteAffineAnimTable, sub_808EF38
-
- .align 2
-gSpriteTemplate_83A053C:: @ 83A053C
- spr_template 4096, 4096, gOamData_83A040C, gSpriteAnimTable_83A04D8, NULL, gDummySpriteAffineAnimTable, sub_808EF8C
-
- .align 2
-gSpriteTemplate_83A0554:: @ 83A0554
- spr_template 4096, 4096, gOamData_83A0414, gSpriteAnimTable_83A04E0, NULL, gDummySpriteAffineAnimTable, sub_808F08C
-
- .align 2
-gSpriteTemplate_83A056C:: @ 83A056C
- spr_template 4096, 4096, gOamData_83A041C, gSpriteAnimTable_83A04DC, NULL, gDummySpriteAffineAnimTable, sub_808F0B4
-
- .align 2
-gSpriteTemplate_83A0584:: @ 83A0584
- spr_template 4096, 4096, gOamData_83A0424, gSpriteAnimTable_83A04F0, NULL, gDummySpriteAffineAnimTable, sub_808ED94
-
- .align 2
-gSpriteTemplate_83A059C:: @ 83A059C
- spr_template 4096, 4096, gOamData_83A042C, gSpriteAnimTable_83A04F8, NULL, gDummySpriteAffineAnimTable, sub_808ED94
-
- .align 2
-gSpriteTemplate_83A05B4:: @ 83A05B4
- spr_template 4096, 4096, gOamData_83A042C, gSpriteAnimTable_83A0520, NULL, gDummySpriteAffineAnimTable, sub_808F168
-
- .align 2
-gUnknown_083A05CC:: @ 83A05CC
- obj_tiles gPokedexMenu2_Gfx, 0x1F00, 0x1000
- null_obj_tiles
-
- .align 2
-gUnknown_083A05DC:: @ 83A05DC
- obj_pal gPokedexMenu_Pal, 0x1000
- null_obj_pal
-
-gUnknown_083A05EC:: @ 83A05EC
- .byte 2, 4, 8, 16, 32
-
-gUnknown_083A05F1:: @ 83A05F1
- .byte 16, 8, 4, 2, 1
-
- .align 2
-gUnknown_083A05F8:: @ 83A05F8
- .string "$"
-
-@ 83A05F9
- .include "data/pokedex_entries.inc"
-
-gUnknown_083B4EC4:: @ 83B4EC4
- .space 32
-
-@ 83B4EE4
- .include "data/graphics/pokemon/footprint_table.inc"
-
-gUnknown_083B5558:: @ 83B5558
- .incbin "baserom.gba", 0x3b5558, 0x24
-
- .align 2
-gOamData_83B557C:: @ 83B557C
- .2byte 0x0000
- .2byte 0xC000
- .2byte 0x0400
-
- .align 2
-gUnknown_083B5584:: @ 83B5584
- .4byte 0x02008000
- .4byte 0x0200c000
- .4byte 0x02010000
- .4byte 0x02014000
-
- .align 2
-gSpriteImageTable_83B5594:: @ 83B5594
- obj_frame_tiles 0x02008000, 0x800
- obj_frame_tiles 0x02008800, 0x800
- obj_frame_tiles 0x02009000, 0x800
- obj_frame_tiles 0x02009800, 0x800
- obj_frame_tiles 0x0200A000, 0x800
- obj_frame_tiles 0x0200A800, 0x800
- obj_frame_tiles 0x0200B000, 0x800
- obj_frame_tiles 0x0200B800, 0x800
- obj_frame_tiles 0x0200C000, 0x800
- obj_frame_tiles 0x0200C800, 0x800
- obj_frame_tiles 0x0200D000, 0x800
- obj_frame_tiles 0x0200D800, 0x800
- obj_frame_tiles 0x0200E000, 0x800
- obj_frame_tiles 0x0200E800, 0x800
- obj_frame_tiles 0x0200F000, 0x800
- obj_frame_tiles 0x0200F800, 0x800
-
- .align 2
-gSpriteImageTable_83B5614:: @ 83B5614
- obj_frame_tiles 0x0200C000, 0x800
- obj_frame_tiles 0x0200C800, 0x800
- obj_frame_tiles 0x0200D000, 0x800
- obj_frame_tiles 0x0200D800, 0x800
- obj_frame_tiles 0x0200E000, 0x800
- obj_frame_tiles 0x0200E800, 0x800
- obj_frame_tiles 0x0200F000, 0x800
- obj_frame_tiles 0x0200F800, 0x800
- obj_frame_tiles 0x02010000, 0x800
- obj_frame_tiles 0x02010800, 0x800
- obj_frame_tiles 0x02011000, 0x800
- obj_frame_tiles 0x02011800, 0x800
- obj_frame_tiles 0x02012000, 0x800
- obj_frame_tiles 0x02012800, 0x800
- obj_frame_tiles 0x02013000, 0x800
- obj_frame_tiles 0x02013800, 0x800
-
- .align 2
-gSpriteImageTable_83B5694:: @ 83B5694
- obj_frame_tiles 0x02010000, 0x800
- obj_frame_tiles 0x02010800, 0x800
- obj_frame_tiles 0x02011000, 0x800
- obj_frame_tiles 0x02011800, 0x800
- obj_frame_tiles 0x02012000, 0x800
- obj_frame_tiles 0x02012800, 0x800
- obj_frame_tiles 0x02013000, 0x800
- obj_frame_tiles 0x02013800, 0x800
- obj_frame_tiles 0x02014000, 0x800
- obj_frame_tiles 0x02014800, 0x800
- obj_frame_tiles 0x02015000, 0x800
- obj_frame_tiles 0x02015800, 0x800
- obj_frame_tiles 0x02016000, 0x800
- obj_frame_tiles 0x02016800, 0x800
- obj_frame_tiles 0x02017000, 0x800
- obj_frame_tiles 0x02017800, 0x800
-
- .align 2
-gSpriteImageTable_83B5714:: @ 83B5714
- obj_frame_tiles 0x02014000, 0x800
- obj_frame_tiles 0x02014800, 0x800
- obj_frame_tiles 0x02015000, 0x800
- obj_frame_tiles 0x02015800, 0x800
- obj_frame_tiles 0x02016000, 0x800
- obj_frame_tiles 0x02016800, 0x800
- obj_frame_tiles 0x02017000, 0x800
- obj_frame_tiles 0x02017800, 0x800
- obj_frame_tiles 0x02018000, 0x800
- obj_frame_tiles 0x02018800, 0x800
- obj_frame_tiles 0x02019000, 0x800
- obj_frame_tiles 0x02019800, 0x800
- obj_frame_tiles 0x0201A000, 0x800
- obj_frame_tiles 0x0201A800, 0x800
- obj_frame_tiles 0x0201B000, 0x800
- obj_frame_tiles 0x0201B800, 0x800
-
- .align 2
-gUnknown_083B5794:: @ 83B5794
- .4byte gSpriteImageTable_83B5594
- .4byte gSpriteImageTable_83B5614
- .4byte gSpriteImageTable_83B5694
- .4byte gSpriteImageTable_83B5714
-
- .align 2
-gUnknown_083B57A4:: @ 83B57A4
- spr_template 0xFFFF, 0, gOamData_83B557C, NULL, gSpriteImageTable_83B5594, gDummySpriteAffineAnimTable, nullsub_59
-
-gUnknown_083B57BC:: @ 83B57BC
- .incbin "baserom.gba", 0x003b57bc, 0x28
-
- .align 2
-gUnknown_083B57E4:: @ 83B57E4
- .4byte DexText_SearchForPoke
- .2byte 0, 5
- .4byte DexText_SwitchDex
- .2byte 6, 5
- .4byte DexText_ReturnToDex
- .2byte 12, 5
-
- .align 2
-gUnknown_083B57FC:: @ 83B57FC
- .4byte DexText_ListByABC
- .byte 0, 2, 5, 5, 2, 12, 0, 0
- .4byte DexText_ListByColor
- .byte 0, 4, 5, 5, 4, 12, 0, 0
- .4byte DexText_ListByType
- .byte 0, 6, 5, 5, 6, 6, 0, 0
- .4byte DexText_ListByType
- .byte 0, 6, 5, 11, 6, 6, 0, 0
- .4byte DexText_SelectDexList
- .byte 0, 8, 5, 5, 8, 12, 0, 0
- .4byte DexText_SelectDexMode
- .byte 0, 10, 5, 5, 10, 12, 0, 0
- .4byte DexText_ExecuteSearchSwitch
- .byte 0, 12, 5, 0, 0, 0, 0, 0
-
-gUnknown_083B5850:: @ 83B5850
- .incbin "baserom.gba", 0x003b5850, 0x1c
-
-gUnknown_083B586C:: @ 83B586C
- .incbin "baserom.gba", 0x003b586c, 0x1c
-
-gUnknown_083B5888:: @ 83B5888
- .incbin "baserom.gba", 0x003b5888, 0x1c
-
-gUnknown_083B58A4:: @ 83B58A4
- .incbin "baserom.gba", 0x003b58a4, 0x1c
-
- .align 2
-gUnknown_083B58C0:: @ 83B58C0
- .4byte DexText_HoennDex2, DexText_HoennDex
- .4byte DexText_NationalDex2, DexText_NationalDex
- .4byte 0x0, 0x0
-
- .align 2
-gUnknown_083B58D8:: @ 83B58D8
- .4byte DexText_ListByNumber, DexText_NumericalMode
- .4byte DexText_ListByABC2, DexText_ABCMode
- .4byte DexText_ListByHeavyToLightest, DexText_HeaviestMode
- .4byte DexText_ListByLightToHeaviest, DexText_LightestMode
- .4byte DexText_ListByTallToSmallest, DexText_TallestMode
- .4byte DexText_ListBySmallToTallest, DexText_SmallestMode
- .4byte 0x0, 0x0
-
- .align 2
-gUnknown_083B5910:: @ 83B5910
- .4byte DexText_Terminator5, DexText_DontSpecify
- .4byte DexText_Terminator5, DexText_ABC
- .4byte DexText_Terminator5, DexText_DEF
- .4byte DexText_Terminator5, DexText_GHI
- .4byte DexText_Terminator5, DexText_JKL
- .4byte DexText_Terminator5, DexText_MNO
- .4byte DexText_Terminator5, DexText_PQR
- .4byte DexText_Terminator5, DexText_STU
- .4byte DexText_Terminator5, DexText_VWX
- .4byte DexText_Terminator5, DexText_YZ
- .4byte 0x0, 0x0
-
- .align 2
-gUnknown_083B5968:: @ 83B5968
- .4byte DexText_Terminator5, DexText_DontSpecify
- .4byte DexText_Terminator5, DexText_Red
- .4byte DexText_Terminator5, DexText_Blue
- .4byte DexText_Terminator5, DexText_Yellow
- .4byte DexText_Terminator5, DexText_Green
- .4byte DexText_Terminator5, DexText_Black
- .4byte DexText_Terminator5, DexText_Brown
- .4byte DexText_Terminator5, DexText_Purple
- .4byte DexText_Terminator5, DexText_Gray
- .4byte DexText_Terminator5, DexText_White
- .4byte DexText_Terminator5, DexText_Pink
- .4byte 0x0, 0x0
-
- .align 2
-gUnknown_083B59C8:: @ 83B59C8
- .4byte DexText_Terminator5, DexText_None
- .4byte DexText_Terminator5, gTypeNames + TYPE_NORMAL * 7
- .4byte DexText_Terminator5, gTypeNames + TYPE_FIGHTING * 7
- .4byte DexText_Terminator5, gTypeNames + TYPE_FLYING * 7
- .4byte DexText_Terminator5, gTypeNames + TYPE_POISON * 7
- .4byte DexText_Terminator5, gTypeNames + TYPE_GROUND * 7
- .4byte DexText_Terminator5, gTypeNames + TYPE_ROCK * 7
- .4byte DexText_Terminator5, gTypeNames + TYPE_BUG * 7
- .4byte DexText_Terminator5, gTypeNames + TYPE_GHOST * 7
- .4byte DexText_Terminator5, gTypeNames + TYPE_STEEL * 7
- .4byte DexText_Terminator5, gTypeNames + TYPE_FIRE * 7
- .4byte DexText_Terminator5, gTypeNames + TYPE_WATER * 7
- .4byte DexText_Terminator5, gTypeNames + TYPE_GRASS * 7
- .4byte DexText_Terminator5, gTypeNames + TYPE_ELECTRIC * 7
- .4byte DexText_Terminator5, gTypeNames + TYPE_PSYCHIC * 7
- .4byte DexText_Terminator5, gTypeNames + TYPE_ICE * 7
- .4byte DexText_Terminator5, gTypeNames + TYPE_DRAGON * 7
- .4byte DexText_Terminator5, gTypeNames + TYPE_DARK * 7
- .4byte 0x0, 0x0
-
-gUnknown_083B5A60:: @ 83B5A60
- .byte 0, 1
-
-gUnknown_083B5A62:: @ 83B5A62
- .byte 0, 1, 2, 3, 4, 5
-
-gUnknown_083B5A68:: @ 83B5A68
- .byte -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16, 17
-
- .align 2
-gUnknown_083B5A7C:: @ 83B5A7C
- .4byte gUnknown_083B5910
- .byte 6, 7, 10, 0
- .4byte gUnknown_083B5968
- .byte 8, 9, 11, 0
- .4byte gUnknown_083B59C8
- .byte 10, 11, 18, 0
- .4byte gUnknown_083B59C8
- .byte 12, 13, 18, 0
- .4byte gUnknown_083B58D8
- .byte 4, 5, 6, 0
- .4byte gUnknown_083B58C0
- .byte 2, 3, 2, 0
-
-gUnknown_083B5AAC:: @ 83B5AAC
- .incbin "baserom.gba", 0x003b5aac, 0x6
-
-gUnknown_083B5AB2:: @ 83B5AB2
- .incbin "baserom.gba", 0x003b5ab2, 0x6
-
- .align 2
-gBadgesTiles:: @ 83B5AB8
- .incbin "graphics/trainer_card/badges.4bpp"
-
- .align 2
- .4byte 0x02000000 @ XXX
-
- .align 2
-gUnknown_083B5EBC:: @ 83B5EBC
- .4byte sub_8093864
- .4byte sub_80938A8
- .4byte sub_80938CC
- .4byte sub_8093918
- .4byte sub_8093938
- .4byte sub_8093954
- .4byte sub_8093980
-
- .align 2
-gUnknown_083B5ED8:: @ 83B5ED8
- .4byte sub_8093AA0
- .4byte sub_8093AF0
- .4byte sub_8093C0C
- .4byte sub_8093C38
- .4byte sub_8093D50
-
- .align 2
-gUnknown_083B5EEC:: @ 83B5EEC
- .4byte gUnknown_08E8CAC0
- .4byte gUnknown_08E8D4C0
-
-gUnknown_083B5EF4:: @ 83B5EF4
- .string " : $"
-
- .align 2
-gUnknown_083B5EF8:: @ 83B5EF8
- .4byte gMenuTrainerCard0Star_Pal
- .4byte gMenuTrainerCard1Star_Pal
- .4byte gMenuTrainerCard2Star_Pal
- .4byte gMenuTrainerCard3Star_Pal
- .4byte gMenuTrainerCard4Star_Pal
-
-gUnknown_083B5F0C:: @ 83B5F0C
- .incbin "baserom.gba", 0x003b5f0c, 0x20
-
- .align 2
-gBadgesPalette:: @ 83B5F2C
- .incbin "graphics/trainer_card/badges.gbapal"
-
-gUnknown_083B5F4C:: @ 83B5F4C
- .incbin "baserom.gba", 0x003b5f4c, 0x20
-
-gUnknown_083B5F6C:: @ 83B5F6C
- .incbin "baserom.gba", 0x003b5f6c, 0x20
-
-gUnknown_083B5F8C:: @ 83B5F8C
- .incbin "baserom.gba", 0x003b5f8c, 0x40
-
- .align 2
-gUnknown_083B5FCC:: @ 83B5FCC
- .4byte OtherText_Summary, sub_8095544
- .4byte gOtherText_CancelNoTerminator, sub_80958C4
- .4byte OtherText_Shift, sub_8095584
- .4byte OtherText_SendOut, sub_8095584
-
-Unknown_83B5FEC: @ 83B5FEC
- .byte 2, 0, 1
-
-Unknown_83B5FEF: @ 83B5FEF
- .byte 3, 0, 1
-
-Unknown_83B5FF2: @ 83B5FF2
- .byte 0, 1
-
- .align 2
-gUnknown_083B5FF4:: @ 83B5FF4
- .byte 3, 9
- .space 2
- .4byte Unknown_83B5FEC
-
- .byte 3, 9
- .space 2
- .4byte Unknown_83B5FEF
-
- .byte 2, 9
- .space 2
- .4byte Unknown_83B5FF2
-
- .align 2
-gUnknown_083B600C:: @ 83B600C
- .4byte PCText_WithdrawPoke, PCText_MovePokeToParty
- .4byte PCText_DepositPoke, PCText_StorePokeInBox
- .4byte PCText_MovePoke, PCText_OrganizeBoxesParty
- .4byte PCText_SeeYa, PCText_ReturnToPrevMenu
-
- .align 2
-gSpriteAnim_83B602C:: @ 83B602C
- obj_image_anim_frame 0, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83B6034:: @ 83B6034
- obj_image_anim_frame 4, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83B603C:: @ 83B603C
- obj_image_anim_frame 6, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83B6044:: @ 83B6044
- obj_image_anim_frame 10, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83B604C:: @ 83B604C
- .4byte gSpriteAnim_83B602C
- .4byte gSpriteAnim_83B6034
- .4byte gSpriteAnim_83B603C
- .4byte gSpriteAnim_83B6044
-
- .align 2
-gSpriteAffineAnim_83B605C:: @ 83B605C
- obj_rot_scal_anim_frame 0xE0, 0xE0, 0, 0
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnimTable_83B606C:: @ 83B606C
- .4byte gSpriteAffineAnim_83B605C
-
- .align 2
-gBoxSelectionPopupPalette:: @ 83B6070
- .incbin "graphics/pokemon_storage/box_selection_popup.gbapal"
-
- .align 2
-gBoxSelectionPopupCenterTiles:: @ 83B6090
- .incbin "graphics/pokemon_storage/box_selection_popup_center.4bpp"
-
- .align 2
-gBoxSelectionPopupSidesTiles:: @ 83B6890
- .incbin "graphics/pokemon_storage/box_selection_popup_sides.4bpp"
-
- .align 2
-gPokemonStorageScrollingBGPalette:: @ 83B6A10
- .incbin "graphics/pokemon_storage/scrolling_bg.gbapal"
-
- .align 2
-gPokemonStorageScrollingBGTile:: @ 83B6A30
- .incbin "graphics/pokemon_storage/scrolling_bg.4bpp"
-
- .align 2
-gPokemonStorageScrollingBGTilemap:: @ 83B6A50
- .incbin "graphics/pokemon_storage/scrolling_bg_map.bin.lz"
-
- .incbin "baserom.gba", 0x003b6b4c, 0x48
-
- .align 2
-WaveformPalette: @ 83B6B94
- .incbin "graphics/pokemon_storage/waveform.gbapal"
-
- .align 2
-WaveformTiles: @ 83B6BB4
- .incbin "graphics/pokemon_storage/waveform.4bpp"
-
- .align 2
-gUnknown_083B6D74:: @ 83B6D74
- .incbin "baserom.gba", 0x003b6d74, 0x20
-
- .align 2
-gUnknown_083B6D94:: @ 83B6D94
- .incbin "baserom.gba", 0x003b6d94, 0x20
-
- .align 2
-gUnknown_083B6DB4:: @ 83B6DB4
- .4byte 0x02000000
-
- .align 2
-gUnknown_083B6DB8:: @ 83B6DB8
- .4byte gTileBuffer
-
- .align 2
-gWaveformSpritePalette:: @ 83B6DBC
- obj_pal WaveformPalette, 56013
-
- .align 2
-gWaveformSpriteSheet:: @ 83B6DC4
- obj_tiles WaveformTiles, 0x1C0, 5
-
- .align 2
-gUnknown_083B6DCC:: @ 83B6DCC
- obj_tiles 0x02002784, 0x800, 2
-
- .align 2
-gUnknown_083B6DD4:: @ 83B6DD4
- obj_pal 0x02002704, 56007
-
- .align 2
-gSpriteTemplate_83B6DDC:: @ 83B6DDC
- spr_template 2, 56007, gOamData_83B6EAC, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-gUnknown_083B6DF4:: @ 83B6DF4
- .4byte PCText_ExitBox, 0
- .4byte PCText_WhatYouDo, 0
- .4byte PCText_PickATheme, 0
- .4byte PCText_PickAWallpaper, 0
- .4byte PCText_IsSelected, 1
- .4byte PCText_JumpToWhichBox, 0
- .4byte PCText_DepositInWhichBox, 0
- .4byte PCText_WasDeposited, 1
- .4byte PCText_BoxIsFull, 0
- .4byte PCText_ReleasePoke, 0
- .4byte PCText_WasReleased, 4
- .4byte PCText_ByeBye, 6
- .4byte PCText_MarkPoke, 0
- .4byte PCText_LastPoke, 0
- .4byte PCText_PartyFull, 0
- .4byte PCText_HoldingPoke, 0
- .4byte PCText_WhichOneWillTake, 0
- .4byte PCText_CantReleaseEgg, 0
- .4byte PCText_ContinueBox, 0
- .4byte PCText_CameBack, 1
- .4byte PCText_Worried, 0
- .4byte PCText_Surprise, 0
- .4byte PCText_PleaseRemoveMail, 0
-
- .align 2
-gOamData_83B6EAC:: @ 83B6EAC
- .2byte 0x0000
- .2byte 0xC000
- .2byte 0x0000
-
- .align 2
-gOamData_83B6EB4:: @ 83B6EB4
- .2byte 0x4000
- .2byte 0x0000
- .2byte 0x0000
-
- .align 2
-gSpriteAnim_83B6EBC:: @ 83B6EBC
- obj_image_anim_frame 0, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83B6EC4:: @ 83B6EC4
- obj_image_anim_frame 2, 8
- obj_image_anim_frame 4, 8
- obj_image_anim_frame 6, 8
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnim_83B6ED4:: @ 83B6ED4
- obj_image_anim_frame 8, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83B6EDC:: @ 83B6EDC
- obj_image_anim_frame 10, 8
- obj_image_anim_frame 4, 8
- obj_image_anim_frame 12, 8
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnimTable_83B6EEC:: @ 83B6EEC
- .4byte gSpriteAnim_83B6EBC
- .4byte gSpriteAnim_83B6EC4
- .4byte gSpriteAnim_83B6ED4
- .4byte gSpriteAnim_83B6EDC
-
- .align 2
-gSpriteTemplate_83B6EFC:: @ 83B6EFC
- spr_template 5, 56013, gOamData_83B6EB4, gSpriteAnimTable_83B6EEC, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-gSpriteTemplate_83B6F14:: @ 83B6F14
- spr_template 15, 56000, gOamData_83B6F2C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-gOamData_83B6F2C:: @ 83B6F2C
- .2byte 0x0000
- .2byte 0x8000
- .2byte 0x0000
-
- .align 2
-Unknown_83B6F34: @ 83B6F34
- .incbin "baserom.gba", 0x003b6f34, 0x10
-
- .align 2
-Unknown_83B6F44: @ 83B6F44
- .incbin "baserom.gba", 0x003b6f44, 0x18
-
- .align 2
-gUnknown_083B6F5C:: @ 83B6F5C
- .4byte Unknown_83B6F34
- .4byte Unknown_83B6F44
-
- .align 2
-gWallpaperPalettes_Forest: @ 83B6F64
- .incbin "graphics/pokemon_storage/box_bg1.gbapal"
- .incbin "graphics/pokemon_storage/forest_frame.gbapal"
- .incbin "graphics/pokemon_storage/forest_bg.gbapal"
-
- .align 2
-gWallpaperTiles_Forest: @ 83B6FC4
- .incbin "graphics/pokemon_storage/forest.4bpp.lz"
-
- .align 2
-gWallpaperTilemap_Forest: @ 83B7394
- .incbin "graphics/pokemon_storage/forest.bin.lz"
-
- .align 2
-gWallpaperPalettes_City: @ 83B7470
- .incbin "graphics/pokemon_storage/box_bg1.gbapal"
- .incbin "graphics/pokemon_storage/city_frame.gbapal"
- .incbin "graphics/pokemon_storage/city_bg.gbapal"
-
- .align 2
-gWallpaperTiles_City: @ 83B74D0
- .incbin "graphics/pokemon_storage/city.4bpp.lz"
-
- .align 2
-gWallpaperTilemap_City: @ 83B76D8
- .incbin "graphics/pokemon_storage/city.bin.lz"
-
- .align 2
-gWallpaperPalettes_Desert: @ 83B7788
- .incbin "graphics/pokemon_storage/box_bg1.gbapal"
- .incbin "graphics/pokemon_storage/desert_frame.gbapal"
- .incbin "graphics/pokemon_storage/desert_bg.gbapal"
-
- .align 2
-gWallpaperTiles_Desert: @ 83B77E8
- .incbin "graphics/pokemon_storage/desert.4bpp.lz"
-
- .align 2
-gWallpaperTilemap_Desert: @ 83B7AD4
- .incbin "graphics/pokemon_storage/desert.bin.lz"
-
- .align 2
-gWallpaperPalettes_Savanna: @ 83B7BB8
- .incbin "graphics/pokemon_storage/box_bg1.gbapal"
- .incbin "graphics/pokemon_storage/savanna_frame.gbapal"
- .incbin "graphics/pokemon_storage/savanna_bg.gbapal"
-
- .align 2
-gWallpaperTiles_Savanna: @ 83B7C18
- .incbin "graphics/pokemon_storage/savanna.4bpp.lz"
-
- .align 2
-gWallpaperTilemap_Savanna: @ 83B7E38
- .incbin "graphics/pokemon_storage/savanna.bin.lz"
-
- .align 2
-gWallpaperPalettes_Crag: @ 83B7F04
- .incbin "graphics/pokemon_storage/box_bg1.gbapal"
- .incbin "graphics/pokemon_storage/crag_frame.gbapal"
- .incbin "graphics/pokemon_storage/crag_bg.gbapal"
-
- .align 2
-gWallpaperTiles_Crag: @ 83B7F64
- .incbin "graphics/pokemon_storage/crag.4bpp.lz"
-
- .align 2
-gWallpaperTilemap_Crag: @ 83B82B4
- .incbin "graphics/pokemon_storage/crag.bin.lz"
-
- .align 2
-gWallpaperPalettes_Volcano: @ 83B838C
- .incbin "graphics/pokemon_storage/box_bg1.gbapal"
- .incbin "graphics/pokemon_storage/volcano_frame.gbapal"
- .incbin "graphics/pokemon_storage/volcano_bg.gbapal"
-
- .align 2
-gWallpaperTiles_Volcano: @ 83B83EC
- .incbin "graphics/pokemon_storage/volcano.4bpp.lz"
-
- .space 4
-
- .align 2
-gWallpaperTilemap_Volcano: @ 83B8720
- .incbin "graphics/pokemon_storage/volcano.bin.lz"
-
- .align 2
-gWallpaperPalettes_Snow: @ 83B87F8
- .incbin "graphics/pokemon_storage/box_bg1.gbapal"
- .incbin "graphics/pokemon_storage/snow_frame.gbapal"
- .incbin "graphics/pokemon_storage/snow_bg.gbapal"
-
- .align 2
-gWallpaperTiles_Snow: @ 83B8858
- .incbin "graphics/pokemon_storage/snow.4bpp.lz"
-
- .align 2
-gWallpaperTilemap_Snow: @ 83B8B10
- .incbin "graphics/pokemon_storage/snow.bin.lz"
-
- .align 2
-gWallpaperPalettes_Cave: @ 83B8BDC
- .incbin "graphics/pokemon_storage/box_bg1.gbapal"
- .incbin "graphics/pokemon_storage/cave_frame.gbapal"
- .incbin "graphics/pokemon_storage/cave_bg.gbapal"
-
- .align 2
-gWallpaperTiles_Cave: @ 83B8C3C
- .incbin "graphics/pokemon_storage/cave.4bpp.lz"
-
- .align 2
-gWallpaperTilemap_Cave: @ 83B8F80
- .incbin "graphics/pokemon_storage/cave.bin.lz"
-
- .align 2
-gWallpaperPalettes_Beach: @ 83B905C
- .incbin "graphics/pokemon_storage/box_bg1.gbapal"
- .incbin "graphics/pokemon_storage/beach_frame.gbapal"
- .incbin "graphics/pokemon_storage/beach_bg.gbapal"
-
- .align 2
-gWallpaperTiles_Beach: @ 83B90BC
- .incbin "graphics/pokemon_storage/beach.4bpp.lz"
-
- .align 2
-gWallpaperTilemap_Beach: @ 83B9440
- .incbin "graphics/pokemon_storage/beach.bin.lz"
-
- .align 2
-gWallpaperPalettes_Seafloor: @ 83B9528
- .incbin "graphics/pokemon_storage/box_bg1.gbapal"
- .incbin "graphics/pokemon_storage/seafloor_frame.gbapal"
- .incbin "graphics/pokemon_storage/seafloor_bg.gbapal"
-
- .align 2
-gWallpaperTiles_Seafloor: @ 83B9588
- .incbin "graphics/pokemon_storage/seafloor.4bpp.lz"
-
- .align 2
-gWallpaperTilemap_Seafloor: @ 83B983C
- .incbin "graphics/pokemon_storage/seafloor.bin.lz"
-
- .align 2
-gWallpaperPalettes_River: @ 83B9918
- .incbin "graphics/pokemon_storage/box_bg1.gbapal"
- .incbin "graphics/pokemon_storage/river_frame.gbapal"
- .incbin "graphics/pokemon_storage/river_bg.gbapal"
-
- .align 2
-gWallpaperTiles_River: @ 83B9978
- .incbin "graphics/pokemon_storage/river.4bpp.lz"
-
- .align 2
-gWallpaperTilemap_River: @ 83B9C0C
- .incbin "graphics/pokemon_storage/river.bin.lz"
-
- .align 2
-gWallpaperPalettes_Sky: @ 83B9CF8
- .incbin "graphics/pokemon_storage/box_bg1.gbapal"
- .incbin "graphics/pokemon_storage/sky_frame.gbapal"
- .incbin "graphics/pokemon_storage/sky_bg.gbapal"
-
- .align 2
-gWallpaperTiles_Sky: @ 83B9D58
- .incbin "graphics/pokemon_storage/sky.4bpp.lz"
-
- .align 2
-gWallpaperTilemap_Sky: @ 83B9FF0
- .incbin "graphics/pokemon_storage/sky.bin.lz"
-
- .align 2
-gWallpaperPalettes_Polkadot: @ 83BA0D0
- .incbin "graphics/pokemon_storage/box_bg2.gbapal"
- .incbin "graphics/pokemon_storage/polkadot_frame.gbapal"
- .incbin "graphics/pokemon_storage/polkadot_bg.gbapal"
-
- .align 2
-gWallpaperTiles_Polkadot: @ 83BA130
- .incbin "graphics/pokemon_storage/polkadot.4bpp.lz"
-
- .align 2
-gWallpaperTilemap_Polkadot: @ 83BA32C
- .incbin "graphics/pokemon_storage/polkadot.bin.lz"
-
- .align 2
-gWallpaperPalettes_Pokecenter: @ 83BA3E4
- .incbin "graphics/pokemon_storage/box_bg2.gbapal"
- .incbin "graphics/pokemon_storage/pokecenter_frame.gbapal"
- .incbin "graphics/pokemon_storage/pokecenter_bg.gbapal"
-
- .align 2
-gWallpaperTiles_Pokecenter: @ 83BA444
- .incbin "graphics/pokemon_storage/pokecenter.4bpp.lz"
-
- .align 2
-gWallpaperTilemap_Pokecenter: @ 83BA7E8
- .incbin "graphics/pokemon_storage/pokecenter.bin.lz"
-
- .align 2
-gWallpaperPalettes_Machine: @ 83BA8FC
- .incbin "graphics/pokemon_storage/box_bg3.gbapal"
- .incbin "graphics/pokemon_storage/machine_frame.gbapal"
- .incbin "graphics/pokemon_storage/machine_bg.gbapal"
-
- .align 2
-gWallpaperTiles_Machine: @ 83BA95C
- .incbin "graphics/pokemon_storage/machine.4bpp.lz"
-
- .align 2
-gWallpaperTilemap_Machine: @ 83BAC4C
- .incbin "graphics/pokemon_storage/machine.bin.lz"
-
- .align 2
-gWallpaperPalettes_Plain: @ 83BAD18
- .incbin "graphics/pokemon_storage/box_bg4.gbapal"
- .incbin "graphics/pokemon_storage/plain_frame.gbapal"
- .incbin "graphics/pokemon_storage/plain_bg.gbapal"
-
- .align 2
-gWallpaperTiles_Plain: @ 83BAD78
- .incbin "graphics/pokemon_storage/plain.4bpp.lz"
-
- .align 2
-gWallpaperTilemap_Plain: @ 83BAE74
- .incbin "graphics/pokemon_storage/plain.bin.lz"
-
-@ 12×18 tilemap
- .incbin "graphics/unused/tilemap_3BAEF8.bin"
-
-gUnknown_083BB0A8:: @ 83BB0A8
- .incbin "baserom.gba", 0x003bb0a8, 0x40
-
- .align 2
-gWallpaperTable:: @ 83BB0E8
- @ Forest
- .4byte gWallpaperTiles_Forest
- .4byte 0x3D0
- .4byte gWallpaperTilemap_Forest
- .4byte gWallpaperPalettes_Forest
-
- @ City
- .4byte gWallpaperTiles_City
- .4byte 0x208
- .4byte gWallpaperTilemap_City
- .4byte gWallpaperPalettes_City
-
- @ Desert
- .4byte gWallpaperTiles_Desert
- .4byte 0x2EC
- .4byte gWallpaperTilemap_Desert
- .4byte gWallpaperPalettes_Desert
-
- @ Savanna
- .4byte gWallpaperTiles_Savanna
- .4byte 0x220
- .4byte gWallpaperTilemap_Savanna
- .4byte gWallpaperPalettes_Savanna
-
- @ Crag
- .4byte gWallpaperTiles_Crag
- .4byte 0x350
- .4byte gWallpaperTilemap_Crag
- .4byte gWallpaperPalettes_Crag
-
- @ Volcano
- .4byte gWallpaperTiles_Volcano
- .4byte 0x334
- .4byte gWallpaperTilemap_Volcano
- .4byte gWallpaperPalettes_Volcano
-
- @ Snow
- .4byte gWallpaperTiles_Snow
- .4byte 0x2B8
- .4byte gWallpaperTilemap_Snow
- .4byte gWallpaperPalettes_Snow
-
- @ Cave
- .4byte gWallpaperTiles_Cave
- .4byte 0x344
- .4byte gWallpaperTilemap_Cave
- .4byte gWallpaperPalettes_Cave
-
- @ Beach
- .4byte gWallpaperTiles_Beach
- .4byte 0x384
- .4byte gWallpaperTilemap_Beach
- .4byte gWallpaperPalettes_Beach
-
- @ Seafloor
- .4byte gWallpaperTiles_Seafloor
- .4byte 0x2B4
- .4byte gWallpaperTilemap_Seafloor
- .4byte gWallpaperPalettes_Seafloor
-
- @ River
- .4byte gWallpaperTiles_River
- .4byte 0x294
- .4byte gWallpaperTilemap_River
- .4byte gWallpaperPalettes_River
-
- @ Sky
- .4byte gWallpaperTiles_Sky
- .4byte 0x298
- .4byte gWallpaperTilemap_Sky
- .4byte gWallpaperPalettes_Sky
-
- @ Polkadot
- .4byte gWallpaperTiles_Polkadot
- .4byte 0x1FC
- .4byte gWallpaperTilemap_Polkadot
- .4byte gWallpaperPalettes_Polkadot
-
- @ Pokecenter
- .4byte gWallpaperTiles_Pokecenter
- .4byte 0x3A4
- .4byte gWallpaperTilemap_Pokecenter
- .4byte gWallpaperPalettes_Pokecenter
-
- @ Machine
- .4byte gWallpaperTiles_Machine
- .4byte 0x2F0
- .4byte gWallpaperTilemap_Machine
- .4byte gWallpaperPalettes_Machine
-
- @ Plain
- .4byte gWallpaperTiles_Plain
- .4byte 0xFC
- .4byte gWallpaperTilemap_Plain
- .4byte gWallpaperPalettes_Plain
-
-PCPal_Arrow:
- .incbin "graphics/pokemon_storage/arrow.gbapal"
-PCGfx_Arrow:
- .incbin "graphics/pokemon_storage/arrow.4bpp"
-
- .align 2
-gUnknown_083BB288:: @ 83BB288
- obj_tiles PCGfx_Arrow, 128, 0x0006
-
- .align 2
-gUnknown_083BB290:: @ 83BB290
- obj_pal PCPal_Arrow, 0xDACF
-
- .align 2
-gOamData_83BB298:: @ 83BB298
- .2byte 0x4000
- .2byte 0x8000
- .2byte 0x0800
-
- .align 2
-gSpriteAnim_83BB2A0:: @ 83BB2A0
- obj_image_anim_frame 0, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83BB2A8:: @ 83BB2A8
- obj_image_anim_frame 8, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83BB2B0:: @ 83BB2B0
- .4byte gSpriteAnim_83BB2A0
- .4byte gSpriteAnim_83BB2A8
-
- .align 2
-gSpriteTemplate_83BB2B8:: @ 83BB2B8
- spr_template 3, 56008, gOamData_83BB298, gSpriteAnimTable_83BB2B0, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-gOamData_83BB2D0:: @ 83BB2D0
- .2byte 0x8000
- .2byte 0x0000
- .2byte 0x0800
-
- .align 2
-gSpriteAnim_83BB2D8:: @ 83BB2D8
- obj_image_anim_frame 0, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83BB2E0:: @ 83BB2E0
- obj_image_anim_frame 2, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83BB2E8:: @ 83BB2E8
- .4byte gSpriteAnim_83BB2D8
- .4byte gSpriteAnim_83BB2E0
-
- .align 2
-gSpriteTemplate_83BB2F0:: @ 83BB2F0
- spr_template 6, 56015, gOamData_83BB2D0, gSpriteAnimTable_83BB2E8, NULL, gDummySpriteAffineAnimTable, sub_809A8C8
-
- .align 2
-HandCursorPalette: @ 83BB308
- .incbin "graphics/pokemon_storage/hand_cursor_pal.bin"
-
- .align 2
-HandCursorAltPalette: @ 83BB328
- .incbin "graphics/pokemon_storage/hand_cursor_alt_pal.bin"
-
- .align 2
-HandCursorTiles: @ 83BB348
- .incbin "graphics/pokemon_storage/hand_cursor.4bpp"
-
- .align 2
-HandCursorShadowTiles: @ 83BBB48
- .incbin "graphics/pokemon_storage/hand_cursor_shadow.4bpp"
-
- .align 2
-gUnknown_083BBBC8:: @ 83BBBC8
- .4byte sub_809B150
- .4byte sub_809B1D8
- .4byte sub_809B24C
-
- .align 2
-gUnknown_083BBBD4:: @ 83BBBD4
- .4byte sub_809C464, 0
- .4byte sub_809C664, 1
- .4byte sub_809C85C, 2
- .4byte sub_809C944, 3
- .4byte NULL, 0
-
- .align 2
-gHandCursorSpriteSheets:: @ 83BBBFC
- obj_tiles HandCursorTiles, 0x800, 0
- obj_tiles HandCursorShadowTiles, 0x80, 1
- null_obj_tiles
-
- .align 2
-gHandCursorSpritePalettes:: @ 83BBC14
- obj_pal HandCursorPalette, 56006
- obj_pal HandCursorAltPalette, 56017
- null_obj_pal
-
- .align 2
-gOamData_83BBC2C:: @ 83BBC2C
- .2byte 0x0000
- .2byte 0x8000
- .2byte 0x0400
-
- .align 2
-gOamData_83BBC34:: @ 83BBC34
- .2byte 0x0000
- .2byte 0x4000
- .2byte 0x0800
-
- .align 2
-gSpriteAnim_83BBC3C:: @ 83BBC3C
- obj_image_anim_frame 0, 30
- obj_image_anim_frame 16, 30
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnim_83BBC48:: @ 83BBC48
- obj_image_anim_frame 0, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83BBC50:: @ 83BBC50
- obj_image_anim_frame 32, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83BBC58:: @ 83BBC58
- obj_image_anim_frame 48, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83BBC60:: @ 83BBC60
- .4byte gSpriteAnim_83BBC3C
- .4byte gSpriteAnim_83BBC48
- .4byte gSpriteAnim_83BBC50
- .4byte gSpriteAnim_83BBC58
-
- .align 2
-gSpriteTemplate_83BBC70:: @ 83BBC70
- spr_template 0, 56006, gOamData_83BBC2C, gSpriteAnimTable_83BBC60, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-gSpriteTemplate_83BBC88:: @ 83BBC88
- spr_template 1, 56006, gOamData_83BBC34, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_809CB74
-
- .align 2
-gUnknown_083BBCA0:: @ 83BBCA0
- .4byte PCText_Cancel2
- .4byte PCText_Deposit
- .4byte PCText_Withdraw
- .4byte PCText_Move
- .4byte PCText_Switch
- .4byte PCText_Place
- .4byte PCText_Summary
- .4byte PCText_Release
- .4byte PCText_Mark
- .4byte PCText_Jump
- .4byte PCText_Wallpaper
- .4byte PCText_Name
- .4byte PCText_Scenery1
- .4byte PCText_Scenery2
- .4byte PCText_Scenery3
- .4byte PCText_Etc
- .4byte PCText_Forest
- .4byte PCText_City
- .4byte PCText_Desert
- .4byte PCText_Savanna
- .4byte PCText_Crag
- .4byte PCText_Volcano
- .4byte PCText_Snow
- .4byte PCText_Cave
- .4byte PCText_Beach
- .4byte PCText_Seafloor
- .4byte PCText_River
- .4byte PCText_Sky
- .4byte PCText_Polka
- .4byte PCText_PokeCenter
- .4byte PCText_Machine
- .4byte PCText_Plain
-
-@ 83BBD20
- .include "data/graphics/pokemon/icon_table.inc"
-
-@ 83BC400
- .include "data/graphics/pokemon/icon_palette_indices.inc"
-
-@ 83BC5B8
- .include "data/graphics/pokemon/icon_palette_table.inc"
-
- .align 2
-gOamData_83BC5E8:: @ 83BC5E8
- .2byte 0x0000
- .2byte 0x8000
- .2byte 0x0400
-
- .align 2
-gSpriteAnim_83BC5F0:: @ 83BC5F0
- obj_image_anim_frame 0, 6
- obj_image_anim_frame 1, 6
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnim_83BC5FC:: @ 83BC5FC
- obj_image_anim_frame 0, 8
- obj_image_anim_frame 1, 8
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnim_83BC608:: @ 83BC608
- obj_image_anim_frame 0, 14
- obj_image_anim_frame 1, 14
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnim_83BC614:: @ 83BC614
- obj_image_anim_frame 0, 22
- obj_image_anim_frame 1, 22
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnim_83BC620:: @ 83BC620
- obj_image_anim_frame 0, 29
- obj_image_anim_frame 0, 29
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnimTable_83BC62C:: @ 83BC62C
- .4byte gSpriteAnim_83BC5F0
- .4byte gSpriteAnim_83BC5FC
- .4byte gSpriteAnim_83BC608
- .4byte gSpriteAnim_83BC614
- .4byte gSpriteAnim_83BC620
-
- .align 2
-gSpriteAffineAnim_83BC640:: @ 83BC640
- obj_rot_scal_anim_frame 0x0, 0x0, 0, 10
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnim_83BC650:: @ 83BC650
- obj_rot_scal_anim_frame 0xFFFE, 0xFFFE, 0, 122
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnimTable_83BC660:: @ 83BC660
- .4byte gSpriteAffineAnim_83BC640
- .4byte gSpriteAffineAnim_83BC650
-
- .align 1
-gSpriteImageSizes:: @ 83BC668
- @ square
- .2byte 0x20 @ 1×1
- .2byte 0x80 @ 2×2
- .2byte 0x200 @ 4×4
- .2byte 0x800 @ 8×8
-
- @ horizontal rectangle
- .2byte 0x40 @ 2×1
- .2byte 0x80 @ 4×1
- .2byte 0x100 @ 4×2
- .2byte 0x400 @ 8×4
-
- @ vertical rectangle
- .2byte 0x40 @ 1×2
- .2byte 0x80 @ 1×4
- .2byte 0x100 @ 2×4
- .2byte 0x400 @ 4×8
-
-@ 83BC680
- .include "data/text/move_descriptions.inc"
-
-@ 83C0F60
- .include "data/text/nature_names.inc"
-
- .align 2
-gUnknown_083C1068:: @ 83C1068
- .4byte gEmptyString_81E72B0
- .4byte OtherText_PokeInfo
- .4byte OtherText_PokeSkills
- .4byte OtherText_BattleMoves
- .4byte OtherText_ContestMoves
- .4byte OtherText_Switch
- .4byte OtherText_Info
- .4byte gOtherText_CancelNoTerminator
-
- .align 2
-gSpriteAffineAnim_83C1088:: @ 83C1088
- obj_rot_scal_anim_frame 0xFF00, 0x100, 0, 0
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnimTable_83C1098:: @ 83C1098
- .4byte gSpriteAffineAnim_83C1088
-
- .align 2
-gOamData_83C109C:: @ 83C109C
- .2byte 0x4000
- .2byte 0x8000
- .2byte 0x0400
-
- .align 2
-gSpriteAnim_83C10A4:: @ 83C10A4
- obj_image_anim_frame 0, 0
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83C10AC:: @ 83C10AC
- obj_image_anim_frame 8, 0
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83C10B4:: @ 83C10B4
- obj_image_anim_frame 16, 0
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83C10BC:: @ 83C10BC
- obj_image_anim_frame 24, 0
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83C10C4:: @ 83C10C4
- obj_image_anim_frame 32, 0
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83C10CC:: @ 83C10CC
- obj_image_anim_frame 40, 0
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83C10D4:: @ 83C10D4
- obj_image_anim_frame 48, 0
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83C10DC:: @ 83C10DC
- obj_image_anim_frame 56, 0
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83C10E4:: @ 83C10E4
- obj_image_anim_frame 64, 0
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83C10EC:: @ 83C10EC
- obj_image_anim_frame 72, 0
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83C10F4:: @ 83C10F4
- obj_image_anim_frame 80, 0
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83C10FC:: @ 83C10FC
- obj_image_anim_frame 88, 0
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83C1104:: @ 83C1104
- obj_image_anim_frame 96, 0
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83C110C:: @ 83C110C
- obj_image_anim_frame 104, 0
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83C1114:: @ 83C1114
- obj_image_anim_frame 112, 0
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83C111C:: @ 83C111C
- obj_image_anim_frame 120, 0
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83C1124:: @ 83C1124
- obj_image_anim_frame 128, 0
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83C112C:: @ 83C112C
- obj_image_anim_frame 136, 0
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83C1134:: @ 83C1134
- obj_image_anim_frame 144, 0
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83C113C:: @ 83C113C
- obj_image_anim_frame 152, 0
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83C1144:: @ 83C1144
- obj_image_anim_frame 160, 0
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83C114C:: @ 83C114C
- obj_image_anim_frame 168, 0
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83C1154:: @ 83C1154
- obj_image_anim_frame 176, 0
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83C115C:: @ 83C115C
- .4byte gSpriteAnim_83C10A4
- .4byte gSpriteAnim_83C10AC
- .4byte gSpriteAnim_83C10B4
- .4byte gSpriteAnim_83C10BC
- .4byte gSpriteAnim_83C10C4
- .4byte gSpriteAnim_83C10CC
- .4byte gSpriteAnim_83C10D4
- .4byte gSpriteAnim_83C10DC
- .4byte gSpriteAnim_83C10E4
- .4byte gSpriteAnim_83C10EC
- .4byte gSpriteAnim_83C10F4
- .4byte gSpriteAnim_83C10FC
- .4byte gSpriteAnim_83C1104
- .4byte gSpriteAnim_83C110C
- .4byte gSpriteAnim_83C1114
- .4byte gSpriteAnim_83C111C
- .4byte gSpriteAnim_83C1124
- .4byte gSpriteAnim_83C112C
- .4byte gSpriteAnim_83C1134
- .4byte gSpriteAnim_83C113C
- .4byte gSpriteAnim_83C1144
- .4byte gSpriteAnim_83C114C
- .4byte gSpriteAnim_83C1154
-
- .align 2
-gUnknown_083C11B8:: @ 83C11B8
- obj_tiles gMoveTypes_Gfx, 5888, 0x7532
-
- .align 2
-gSpriteTemplate_83C11C0:: @ 83C11C0
- spr_template 30002, 30002, gOamData_83C109C, gSpriteAnimTable_83C115C, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
-gUnknown_083C11D8:: @ 83C11D8
- .incbin "baserom.gba", 0x003c11d8, 0x18
-
- .align 2
-gOamData_83C11F0:: @ 83C11F0
- .2byte 0x0000
- .2byte 0x4000
- .2byte 0x0400
-
- .align 2
-gSpriteAnim_83C11F8:: @ 83C11F8
- obj_image_anim_frame 0, 0
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83C1200:: @ 83C1200
- obj_image_anim_frame 4, 0
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83C1208:: @ 83C1208
- obj_image_anim_frame 8, 0
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83C1210:: @ 83C1210
- obj_image_anim_frame 12, 0
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83C1218:: @ 83C1218
- obj_image_anim_frame 16, 0
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83C1220:: @ 83C1220
- obj_image_anim_frame 16, 0, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83C1228:: @ 83C1228
- obj_image_anim_frame 20, 0
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83C1230:: @ 83C1230
- obj_image_anim_frame 24, 0
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83C1238:: @ 83C1238
- obj_image_anim_frame 24, 0, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83C1240:: @ 83C1240
- obj_image_anim_frame 28, 0
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83C1248:: @ 83C1248
- .4byte gSpriteAnim_83C11F8
- .4byte gSpriteAnim_83C1200
- .4byte gSpriteAnim_83C1208
- .4byte gSpriteAnim_83C1210
- .4byte gSpriteAnim_83C1218
- .4byte gSpriteAnim_83C1220
- .4byte gSpriteAnim_83C1228
- .4byte gSpriteAnim_83C1230
- .4byte gSpriteAnim_83C1238
- .4byte gSpriteAnim_83C1240
-
- .align 2
-gUnknown_083C1270:: @ 83C1270
- obj_tiles gMenuSummaryGfx, 1024, 0x7530
-
- .align 2
-gUnknown_083C1278:: @ 83C1278
- obj_pal gMenuSummaryPal, 0x7530
-
- .align 2
-gSpriteTemplate_83C1280:: @ 83C1280
- spr_template 30000, 30000, gOamData_83C11F0, gSpriteAnimTable_83C1248, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-gOamData_83C1298:: @ 83C1298
- .2byte 0x4000
- .2byte 0x4000
- .2byte 0x0C00
-
- .align 2
-gSpriteAnim_83C12A0:: @ 83C12A0
- obj_image_anim_frame 0, 0
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83C12A8:: @ 83C12A8
- obj_image_anim_frame 4, 0
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83C12B0:: @ 83C12B0
- obj_image_anim_frame 8, 0
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83C12B8:: @ 83C12B8
- obj_image_anim_frame 12, 0
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83C12C0:: @ 83C12C0
- obj_image_anim_frame 16, 0
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83C12C8:: @ 83C12C8
- obj_image_anim_frame 20, 0
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83C12D0:: @ 83C12D0
- obj_image_anim_frame 24, 0
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83C12D8:: @ 83C12D8
- .4byte gSpriteAnim_83C12A0
- .4byte gSpriteAnim_83C12A8
- .4byte gSpriteAnim_83C12B0
- .4byte gSpriteAnim_83C12B8
- .4byte gSpriteAnim_83C12C0
- .4byte gSpriteAnim_83C12C8
- .4byte gSpriteAnim_83C12D0
-
- .align 2
-gUnknown_083C12F4:: @ 83C12F4
- obj_tiles gStatusGfx_Icons, 896, 0x7531
-
- .align 2
-gUnknown_083C12FC:: @ 83C12FC
- obj_pal gStatusPal_Icons, 0x7531
-
- .align 2
-gSpriteTemplate_83C1304:: @ 83C1304
- spr_template 30001, 30001, gOamData_83C1298, gSpriteAnimTable_83C12D8, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-gSummaryScreenMonMarkingsPalette:: @ 83C131C
- .incbin "graphics/summary_screen/mon_markings.gbapal"
-
- .align 2
-gSummaryScreenTextTiles:: @ 83C133C
- .incbin "graphics/summary_screen/text.4bpp"
-
- .align 2
-gSummaryScreenButtonTiles:: @ 83C147C
- .incbin "graphics/summary_screen/buttons.4bpp"
-
- .align 1
-gUnknown_083C157C:: @ 83C157C
- .2byte 0x5F5A @ palette color
-
- .align 1
-gUnknown_083C157E:: @ 83C157E
- .2byte 0x6FDE @ palette color
-
- .align 2
-gUnknown_083C1580:: @ 83C1580
- .4byte sub_809FC0C
- .4byte sub_809FEB8
-
- .align 2
-gUnknown_083C1588:: @ 83C1588
- .4byte sub_809F63C
- .4byte sub_809F650
- .4byte sub_809F664
- .4byte sub_809F664
-
- .align 2
-gUnknown_083C1598:: @ 83C1598
- .4byte sub_809FE6C
- .4byte sub_80A0090
- .4byte sub_80A015C
- .4byte sub_80A015C
-
-gUnknown_083C15A8:: @ 83C15A8
- .byte 0, 2, 3, 1, 4, 5
-
-gUnknown_083C15AE:: @ 83C15AE
- .string "{STR_VAR_1}{CLEAR_TO 64}$"
-
-gUnknown_083C15B4:: @ 83C15B4
- .string "{STR_VAR_1}{CLEAR_TO 72}$"
-
- .align 2
-gUnknown_083C15BC:: @ 83C15BC
- .byte 9, 1, 0, 2
- .byte 10, 3, 0, 4
- .byte 8, 5, 0, 6
- .byte 11, 7, 0, 8
- .byte 14, 9, 0, 10
- .byte 12, 11, 0, 12
- .byte 13, 13, 0, 14
- .byte -1, 15, 0, 10
-
- .align 2
-gOamData_CutGrass:: @ 83C15DC
- .2byte 0
- .2byte 0
- .2byte 0x1401
-
- .align 2
-gSpriteAnim_CutGrass:: @ 83C15E4
- obj_image_anim_frame 0, 30
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnimTable_CutGrass:: @ 83C15EC
- .4byte gSpriteAnim_CutGrass
-
- .align 2
-gSpriteImageTable_CutGrass:: @ 83C15F0
- obj_frame_tiles gFieldEffectPic_CutGrass, 0x20
-
- .align 2
-gFieldEffectObjectPaletteInfo6:: @ 83C15F8
- obj_pal gFieldEffectObjectPalette6, 0x1000
-
- .align 2
-gSpriteTemplate_CutGrass:: @ 83C1600
- spr_template 0xFFFF, 0x1000, gOamData_CutGrass, gSpriteAnimTable_CutGrass, gSpriteImageTable_CutGrass, gDummySpriteAffineAnimTable, sub_80A2A48
-
-@ pointer to items, capacity
- .align 2
-gBagPockets:: @ 83C1618
- .4byte gSaveBlock1 + 0x560, 20 @ Items
- .4byte gSaveBlock1 + 0x600, 16 @ Poké Balls
- .4byte gSaveBlock1 + 0x640, 64 @ TMs & HMs
- .4byte gSaveBlock1 + 0x740, 46 @ Berries
- .4byte gSaveBlock1 + 0x5B0, 20 @ Key Items
-
- .align 2
-gUnknown_083C1640:: @ 83C1640
- .4byte OtherText_Use, sub_80A5B78
- .4byte OtherText_Toss, sub_80A5F14
- .4byte gOtherText_CancelNoTerminator, sub_80A5F80
- .4byte OtherText_Register, sub_80A5FAC
- .4byte OtherText_Use, ItemMenu_UseInBattle
- .4byte gOtherText_CancelNoTerminator, sub_80A7124
- .4byte OtherText_Give2, ItemMenu_Give
- .4byte OtherText_CheckTag, sub_80A6178
- .4byte gOtherText_CancelWithTerminator, 0x0
- .4byte OtherText_Confirm, sub_80A69E0
-
-@ 6-byte entries; format of entry is unknown
-gUnknown_083C1690:: @ 83C1690
- .byte 0, 1, 6, 2, 0, 0
- .byte 6, 1, 8, 2, 0, 0
- .byte 0, 8, 6, 2, 0, 0
- .byte 7, 0, 1, 8, 6, 2
- .byte 0, 8, 3, 2, 0, 0
-
-gUnknown_083C16AE:: @ 83C16AE
- .byte 6, 2
- .byte 6, 2
- .byte 6, 2
- .byte 6, 2
- .byte 2, 0
-
-gUnknown_083C16B8:: @ 83C16B8
- .byte 7, 9, 8, 2
-
- .align 2
-gUnknown_083C16BC:: @ 83C16BC
- .4byte sub_80A59D0
- .4byte sub_80A599C
- .4byte sub_80A7024
- .4byte sub_80A70D8
- .4byte sub_80A6214
- .4byte sub_80A61EC
- .4byte sub_80A6354
- .4byte sub_80A631C
- .4byte sub_80A6918
- .4byte sub_80A68F0
- .4byte sub_80A59D0
- .4byte sub_80A69B8
- .4byte sub_80A6C6C
- .4byte sub_80A6A4C
-
- .align 2
-gUnknown_083C16F4:: @ 83C16F4
- .4byte sub_80A5E60
- .4byte sub_80A5E90
-
- .align 2
-gUnknown_083C16FC:: @ 83C16FC
- .4byte sub_80A65AC
- .4byte sub_80A6618
-
-gUnknown_083C1704:: @ 83C1704
- .incbin "baserom.gba", 0x003c1704, 0x4
-
-gUnknown_083C1708:: @ 83C1708
- .byte 4, 5
-
-gUnknown_083C170A:: @ 83C170A
- .byte 5, 0
-
- .align 2
-gPalette_83C170C:: @ 83C170C
- .incbin "baserom.gba", 0x003c170c, 0x20
-
- .align 2
-gSpriteImage_83C172C:: @ 83C172C
- .incbin "graphics/unknown_sprites/83C172C.4bpp"
-
- .align 2
- .incbin "graphics/unused/cherry.4bpp"
-
- .align 2
- .incbin "graphics/unused/cherry.gbapal"
-
- .align 2
-gOamData_83C1C4C:: @ 83C1C4C
- .2byte 0x0000
- .2byte 0xC000
- .2byte 0x7800
-
- .align 2
-gSpriteAnim_83C1C54:: @ 83C1C54
- obj_image_anim_frame 0, 4
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83C1C5C:: @ 83C1C5C
- obj_image_anim_frame 64, 4
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83C1C64:: @ 83C1C64
- obj_image_anim_frame 128, 4
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83C1C6C:: @ 83C1C6C
- obj_image_anim_frame 192, 4
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83C1C74:: @ 83C1C74
- obj_image_anim_frame 256, 4
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83C1C7C:: @ 83C1C7C
- obj_image_anim_frame 320, 4
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83C1C84:: @ 83C1C84
- .4byte gSpriteAnim_83C1C54
- .4byte gSpriteAnim_83C1C5C
- .4byte gSpriteAnim_83C1C6C
- .4byte gSpriteAnim_83C1C74
- .4byte gSpriteAnim_83C1C7C
- .4byte gSpriteAnim_83C1C64
-
- .align 2
-gSpriteAffineAnim_83C1C9C:: @ 83C1C9C
- 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_83C1CC4:: @ 83C1CC4
- .4byte gSpriteAffineAnim_83C1C9C
-
- .align 2
-gUnknown_083C1CC8:: @ 83C1CC8
- obj_tiles gBagMaleTiles, 0x3000, 30000
-
- .align 2
-gUnknown_083C1CD0:: @ 83C1CD0
- obj_tiles gBagFemaleTiles, 0x3000, 30000
-
- .align 2
-gUnknown_083C1CD8:: @ 83C1CD8
- obj_pal gBagPalette, 30000
-
- .align 2
-gSpriteTemplate_83C1CE0:: @ 83C1CE0
- spr_template 30000, 30000, gOamData_83C1C4C, gSpriteAnimTable_83C1C84, NULL, gSpriteAffineAnimTable_83C1CC4, sub_80A7998
-
- .align 2
-gOamData_83C1CF8:: @ 83C1CF8
- .2byte 0x0000
- .2byte 0x4800
- .2byte 0x8800
-
- .align 2
-gSpriteAffineAnim_83C1D00:: @ 83C1D00
- obj_rot_scal_anim_frame 0x0, 0x0, 8, 32
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnim_83C1D10:: @ 83C1D10
- obj_rot_scal_anim_frame 0x0, 0x0, -8, 32
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnimTable_83C1D20:: @ 83C1D20
- .4byte gSpriteAffineAnim_83C1D00
- .4byte gSpriteAffineAnim_83C1D10
-
- .align 2
-gSpriteImageTable_83C1D28:: @ 83C1D28
- obj_frame_tiles gSpriteImage_83C172C, 0x80
-
- .align 2
-gUnknown_083C1D30:: @ 83C1D30
- obj_pal gPalette_83C170C, 8
-
- .align 2
-gSpriteTemplate_83C1D38:: @ 83C1D38
- spr_template 0xFFFF, 8, gOamData_83C1CF8, gSpriteAnimTable_83C1C84, gSpriteImageTable_83C1D28, gSpriteAffineAnimTable_83C1D20, sub_80A7B28
-
- .align 2
-gOamData_83C1D50:: @ 83C1D50
- .2byte 0x0000
- .2byte 0xC000
- .2byte 0x7400
-
- .align 2
-gOamData_83C1D58:: @ 83C1D58
- .2byte 0x0300
- .2byte 0xC000
- .2byte 0x7000
-
- .align 2
-gSpriteAnim_83C1D60:: @ 83C1D60
- obj_image_anim_frame 0, 0
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83C1D68:: @ 83C1D68
- .4byte gSpriteAnim_83C1D60
-
- .align 2
-gSpriteImageTable_83C1D6C:: @ 83C1D6C
- obj_frame_tiles 0x02000000, 0x800
-
- .align 2
-gSpriteTemplate_83C1D74:: @ 83C1D74
- spr_template 0xFFFF, 30020, gOamData_83C1D50, gSpriteAnimTable_83C1D68, gSpriteImageTable_83C1D6C, gDummySpriteAffineAnimTable, sub_80A7DC4
-
- .align 2
-gSpriteAffineAnim_83C1D8C:: @ 83C1D8C
- obj_rot_scal_anim_frame 0xFFFF, 0xFFFF, -3, 96
- obj_rot_scal_anim_frame 0x0, 0x0, 0, 16
- obj_rot_scal_anim_frame 0xFFFE, 0xFFFE, -1, 64
- obj_rot_scal_anim_frame 0xFFF8, 0x0, 0, 16
- obj_rot_scal_anim_frame 0x0, 0xFFF8, 0, 16
- obj_rot_scal_anim_frame 0x100, 0x100, 0, 0
- obj_rot_scal_anim_jump 0
-
- .align 2
-gSpriteAffineAnim_83C1DC4:: @ 83C1DC4
- obj_rot_scal_anim_frame 0xFFFF, 0xFFFF, 3, 96
- obj_rot_scal_anim_frame 0x0, 0x0, 0, 16
- obj_rot_scal_anim_frame 0xFFFE, 0xFFFE, 1, 64
- obj_rot_scal_anim_frame 0xFFF8, 0x0, 0, 16
- obj_rot_scal_anim_frame 0x0, 0xFFF8, 0, 16
- obj_rot_scal_anim_frame 0x100, 0x100, 0, 0
- obj_rot_scal_anim_jump 0
-
- .align 2
-gSpriteAffineAnimTable_83C1DFC:: @ 83C1DFC
- .4byte gSpriteAffineAnim_83C1D8C
- .4byte gSpriteAffineAnim_83C1DC4
-
- .align 2
-gSpriteTemplate_83C1E04:: @ 83C1E04
- spr_template 0xFFFF, 30020, gOamData_83C1D58, gSpriteAnimTable_83C1D68, gSpriteImageTable_83C1D6C, gSpriteAffineAnimTable_83C1DFC, SpriteCallbackDummy
-
-@ 83C1E1C
- .include "data/graphics/berries/graphics_table.inc"
-
- .align 2
-gUnknown_083C1F74:: @ 83C1F74
- obj_tiles gBerryCheckCircle_Gfx, 2048, 0x2710
-
- .align 2
-gUnknown_083C1F7C:: @ 83C1F7C
- obj_pal gBerryCheck_Pal, 0x2710
-
- .align 2
-gOamData_83C1F84:: @ 83C1F84
- .2byte 0x0000
- .2byte 0x8000
- .2byte 0x0400
-
- .align 2
-gSpriteAnim_83C1F8C:: @ 83C1F8C
- obj_image_anim_frame 0, 0
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83C1F94:: @ 83C1F94
- .4byte gSpriteAnim_83C1F8C
-
- .align 2
-gSpriteTemplate_83C1F98:: @ 83C1F98
- spr_template 10000, 10000, gOamData_83C1F84, gSpriteAnimTable_83C1F94, NULL, gDummySpriteAffineAnimTable, sub_80A7DC4
-
- .align 2
-gBattleAnimSpriteTemplate_83C1FB0:: @ 83C1FB0
- spr_template 0, 0, gDummyOamData, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80A8530
-
- .align 2
-gBattleAnimSpriteTemplate_83C1FC8:: @ 83C1FC8
- spr_template 0, 0, gDummyOamData, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80A85C8
-
- .align 2
-gBattleAnimSpriteTemplate_83C1FE0:: @ 83C1FE0
- spr_template 0, 0, gDummyOamData, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80A8638
-
- .align 2
-gBattleAnimSpriteTemplate_83C1FF8:: @ 83C1FF8
- spr_template 0, 0, gDummyOamData, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80A8764
-
- .align 2
-gBattleAnimSpriteTemplate_83C2010:: @ 83C2010
- spr_template 0, 0, gDummyOamData, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80A8818
-
-@ 83C2028
- .include "data/text/item_descriptions.inc"
-
-@ 83C5564
- .include "data/items.inc"
-
-@ 83C9150
- .string "テストです$" @ "test"
-
-Unknown_83C9166:
- .string "Contest$"
-
-Unknown_83C916E:
- .string "Contest results$"
- .string "パラメータへんこう$" @ "Change parameter"
- .string "わざ へんこう$" @ "Change move"
-
-Unknown_83C9190:
- .string "Contest (comm.)$"
-
-Unknown_83C91A0:
- .string "Init comm. data$"
-
-Unknown_83C91B0:
- .string "Set highest score$"
-
-Unknown_83C91C2:
- .string "Reset highest score$"
-
-Unknown_83C91D6:
- .string "Set all art museum items$"
-
- .align 2
-gUnknown_083C91F0:: @ 83C91F0
- .4byte Unknown_83C9166, sub_80A9C1C
- .4byte Unknown_83C916E, sub_80A9BBC
- .4byte Unknown_83C9190, sub_80A9C34
- .4byte Unknown_83C91A0, sub_80A9C40
- .4byte Unknown_83C91B0, sub_80AAFDC
- .4byte Unknown_83C91C2, sub_80AAFEC
- .4byte Unknown_83C91D6, sub_80AB02C
-
-gUnknown_083C9228:: @ 83C9228
- .incbin "baserom.gba", 0x003c9228, 0x5
-Unknown_083C922D:
- .incbin "graphics/unknown/ball.4bpp"
-
- .align 1
-Unknown_083C924E:
- .incbin "graphics/unknown/ball.gbapal"
-
-gUnknown_083C926E:: @ 83C926E
- .incbin "baserom.gba", 0x003c926e, 0x8
-
-gUnknown_083C9276:: @ 83C9276
- .incbin "baserom.gba", 0x003c9276, 0xc
-
-gUnknown_083C9282:: @ 83C9282
- .incbin "baserom.gba", 0x003c9282, 0xc
-
-gUnknown_083C928E:: @ 83C928E
- .incbin "baserom.gba", 0x003c928e, 0x8
-
-gUnknown_083C9296:: @ 83C9296
- .incbin "baserom.gba", 0x003c9296, 0x12
-
-gUnknown_083C92A8:: @ 83C92A8
- .incbin "baserom.gba", 0x003c92a8, 0xc
-
- .align 2
-gUnknown_083C92B4:: @ 83C92B4
- obj_tiles Unknown_083C922D, 32, 0x04b0
-
- .align 2
-gUnknown_083C92BC:: @ 83C92BC
- obj_pal Unknown_083C924E, 0x04B0
-
- .align 2
-gOamData_83C92C4:: @ 83C92C4
- .2byte 0x0000
- .2byte 0x0000
- .2byte 0x0000
-
- .align 2
-gSpriteTemplate_83C92CC:: @ 83C92CC
- spr_template 1200, 1200, gOamData_83C92C4, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80AA754
-
- .align 2
-gUnknown_083C92E4:: @ 83C92E4
- .4byte sub_80AA8C8
- .4byte sub_80AA8D8
- .4byte sub_80AA8E8
- .4byte sub_80AA8F8
- .4byte sub_80AAC5C
- .4byte sub_80AAC5C
- .4byte sub_80AA930
- .4byte sub_80AA974
- .4byte sub_80AA9B8
- .4byte sub_80AA9FC
- .4byte sub_80AAA40
- .4byte sub_80AAA84
- .4byte sub_80AAAF0
- .4byte sub_80AAB30
- .4byte sub_80AAB70
- .4byte sub_80AABB0
- .4byte sub_80AABF0
- .4byte sub_80AAD44
-
-gUnknown_083C932C:: @ 83C932C
- .string "{COLOR CYAN}{HIGHLIGHT RED}$"
- .string "かいし$" @ Start
-
-gUnknown_083C9337:: @ 83C9337
- .string "もどる$" @ Go Back
-
-gUnknown_083C933B:: @ 83C933B
- .string "{COLOR MAGENTA}BP.$"
-
-Unknown_83C9342:
- .string "かっこよさ$" @ coolness
-Unknown_83C9348:
- .string "かわいさ$" @ cuteness
-Unknown_83C934D:
- .string "うつくしさ$" @ beauty
-Unknown_83C9353:
- .string "かしこさ$" @ smartness
-Unknown_83C9358:
- .string "たくましさ$" @ toughness
-Unknown_83C935E:
- .string "けづや$" @ sheen
-
- .align 2
-gUnknown_083C9364:: @ 83C9364
- .4byte Unknown_83C9342
- .4byte Unknown_83C9348
- .4byte Unknown_83C934D
- .4byte Unknown_83C9353
- .4byte Unknown_83C9358
- .4byte Unknown_83C935E
-
-Unknown_83C937C:
- .string "かっこよさコンテスト$" @ Cool Contest
-Unknown_83C9387:
- .string "うつくしさコンテスト$" @ Beauty Contest
-Unknown_83C9392:
- .string "かわいさコンテスト $" @ Cute Contest
-Unknown_83C939D:
- .string "かしこさコンテスト $" @ Smart Contest
-Unknown_83C93A8:
- .string "たくましさコンテスト$" @ Tough Contest
-
- .align 2
-gUnknown_083C93B4:: @ 83C93B4
- .4byte Unknown_83C937C
- .4byte Unknown_83C9387
- .4byte Unknown_83C9392
- .4byte Unknown_83C939D
- .4byte Unknown_83C93A8
-
-Unknown_83C93C8:
- .string "ハジツゲ/ノーマル$" @ Fallarbor / Normal
-Unknown_83C93D2:
- .string "シダケ/スーパー $" @ Verdanturf / Super
-Unknown_83C93DC:
- .string "カイナ/ハイパー $" @ Slateport / Hyper
-Unknown_83C93E6:
- .string "ミナモ/マスター $" @ Lilycove / Master
-
- .align 2
-gUnknown_083C93F0:: @ 83C93F0
- .4byte Unknown_83C93C8
- .4byte Unknown_83C93D2
- .4byte Unknown_83C93DC
- .4byte Unknown_83C93E6
-
-gUnknown_083C9400:: @ 83C9400
- .incbin "baserom.gba", 0x003c9400, 0x8
-
-@ 83C9408
- .include "data/contest_opponents.inc"
-
-gUnknown_083CA308:: @ 83CA308
- .byte 19, 0
- .byte 19, 5
- .byte 19, 10
- .byte 19, 15
-
-gUnknown_083CA310:: @ 83CA310
- .byte 25, 0
- .byte 25, 5
- .byte 25, 10
- .byte 25, 15
-
-gUnknown_083CA318:: @ 83CA318
- .byte 20, 2
- .byte 20, 7
- .byte 20, 12
- .byte 20, 17
- .byte 24, 2
- .byte 24, 7
- .byte 24, 12
- .byte 24, 17
- .byte 220, 24
- .byte 220, 64
- .byte 220, 104
- .byte 220, 144
-
-gUnknown_083CA330:: @ 83CA330
- .byte 224, 24
- .byte 224, 64
- .byte 224, 104
- .byte 224, 144
-
-gUnknown_083CA338:: @ 83CA338
- .byte 36, 76, 116, 156
-
-gUnknown_083CA33C:: @ 83CA33C
- .byte 36, 76, 116, 156
-
-gUnknown_083CA340:: @ 83CA340
- .byte 0, 31, 9, 39
- .byte 0, 33, 9, 39
- .byte 0, 35, 9, 39
- .byte 0, 37, 9, 39
-
- .align 2
-gUnknown_083CA350:: @ 83CA350
- obj_tiles gTiles_8D1975C, 0x20, 20004
-
- .align 2
-gOamData_83CA358:: @ 83CA358
- .2byte 0x0000
- .2byte 0x0000
- .2byte 0x0000
-
- .align 2
-gSpriteAffineAnim_83CA360:: @ 83CA360
- obj_rot_scal_anim_frame 0x100, 0x100, 0, 0
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnim_83CA370:: @ 83CA370
- obj_rot_scal_anim_frame 0x100, 0x100, 0, 0
- obj_rot_scal_anim_frame 0xFFF6, 0xFFF6, -20, 20
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnim_83CA388:: @ 83CA388
- obj_rot_scal_anim_frame 0x38, 0x38, 0, 0
- obj_rot_scal_anim_frame 0xA, 0xA, 20, 20
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnimTable_83CA3A0:: @ 83CA3A0
- .4byte gSpriteAffineAnim_83CA360
- .4byte gSpriteAffineAnim_83CA370
- .4byte gSpriteAffineAnim_83CA388
-
- .align 2
-gSpriteTemplate_83CA3AC:: @ 83CA3AC
- spr_template 20004, 44000, gOamData_83CA358, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83CA3A0, SpriteCallbackDummy
-
- .align 2
-gUnknown_083CA3C4:: @ 83CA3C4
- obj_tiles gContestNextTurnGfx, 256, 0x4e26
- obj_tiles gContestNextTurnGfx, 256, 0x4e27
- obj_tiles gContestNextTurnGfx, 256, 0x4e28
- obj_tiles gContestNextTurnGfx, 256, 0x4e29
-
- .align 2
-gUnknown_083CA3E4:: @ 83CA3E4
- obj_pal gContestPal, 0x4E26
-
- .align 2
-gOamData_83CA3EC:: @ 83CA3EC
- .2byte 0x4000
- .2byte 0x4000
- .2byte 0x0000
-
- .align 2
-gSpriteTemplate_83CA3F4:: @ 83CA3F4
- spr_template 20006, 20006, gOamData_83CA3EC, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-gSpriteTemplate_83CA40C:: @ 83CA40C
- spr_template 20007, 20006, gOamData_83CA3EC, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-gSpriteTemplate_83CA424:: @ 83CA424
- spr_template 20008, 20006, gOamData_83CA3EC, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-gSpriteTemplate_83CA43C:: @ 83CA43C
- spr_template 20009, 20006, gOamData_83CA3EC, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-Unknown_3CA454: @ 83CA454
- .incbin "baserom.gba", 0x3ca454, 0x10
-
- .align 2
-gUnknown_083CA464:: @ 83CA464
- .4byte 0x2, Unknown_3CA454
-
- .align 2
-gUnknown_083CA46C:: @ 83CA46C
- obj_tiles gContestApplauseGfx, 1024, 0xabe2
-
- .align 2
-gUnknown_083CA474:: @ 83CA474
- obj_pal gContestPal, 0xABE2
-
- .align 2
-gOamData_83CA47C:: @ 83CA47C
- .2byte 0x4000
- .2byte 0xC000
- .2byte 0x0000
-
- .align 2
-gSpriteTemplate_83CA484:: @ 83CA484
- spr_template 44002, 44002, gOamData_83CA47C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-gOamData_83CA49C:: @ 83CA49C
- .2byte 0x0000
- .2byte 0xC000
- .2byte 0x2C00
-
- .align 2
-gSpriteTemplate_83CA4A4:: @ 83CA4A4
- spr_template 20005, 20005, gOamData_83CA49C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-gUnknown_083CA4BC:: @ 83CA4BC
- obj_tiles gContestJudgeGfx, 2048, 0x4e25
-
- .align 2
-gUnknown_083CA4C4:: @ 83CA4C4
- obj_tiles gContestJudgeSymbolsGfx, 896, 0xabe0
-
- .align 2
-gUnknown_083CA4CC:: @ 83CA4CC
- obj_pal gContest3Pal, 0xabe0
-
- .align 2
-gUnknown_083CA4D4:: @ 83CA4D4
- spr_template 0xABE0, 0xABE0, gOamData_837DF2C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .include "data/text/contest_strings.inc"
-
-gUnknownText_MissedTurn:: @ 83CC355
- .string "Missed turn$"
-
-gUnknownText_LinkStandbyAndWinner:: @ 83CC361
- .string "Link standby...$"
- .string "{COLOR WHITE2}$"
- .string "The winner is {STR_VAR_1}’s {STR_VAR_2}!\nCongratulations!$"
-
-@ unknown, unreferenced data
- .byte 0x00
- .byte 0x9C
- .byte 0x77
-
-gUnknownText_UnknownFormatting2:: @ 83CC3A0
- .string "{COLOR GREEN}{SHADOW RED}$"
-
-gUnknownText_UnknownFormatting3:: @ 83CC3A7
- .string "{COLOR LIGHT_GREY}$"
-
- .align 2
-gUnknown_083CC3AC:: @ 83CC3AC
- obj_tiles gContestNumbers_UnusedGfx, 512, 0x4e20
-
- .align 2
-gUnknown_083CC3B4:: @ 83CC3B4
- obj_pal gContestNumbers_UnusedPal, 0x4E20
- obj_pal gContestNumbers_UnusedPal, 0x4E21
- obj_pal gContestNumbers_UnusedPal, 0x4E22
- obj_pal gContestNumbers_UnusedPal, 0x4E23
-
- .align 2
-gSpriteAnim_83CC3D4:: @ 83CC3D4
- obj_image_anim_frame 0, 1
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83CC3DC:: @ 83CC3DC
- obj_image_anim_frame 4, 1
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83CC3E4:: @ 83CC3E4
- obj_image_anim_frame 8, 1
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83CC3EC:: @ 83CC3EC
- obj_image_anim_frame 12, 1
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83CC3F4:: @ 83CC3F4
- .4byte gSpriteAnim_83CC3D4
- .4byte gSpriteAnim_83CC3DC
- .4byte gSpriteAnim_83CC3E4
- .4byte gSpriteAnim_83CC3EC
-
- .align 2
-gSpriteAffineAnim_83CC404:: @ 83CC404
- obj_rot_scal_anim_frame 0x0, 0x0, 0, 1
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnim_83CC414:: @ 83CC414
- obj_rot_scal_anim_frame 0xFFF1, 0xFFF1, 0, 15
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnim_83CC424:: @ 83CC424
- obj_rot_scal_anim_frame 0x1F, 0x1F, 0, 0
- obj_rot_scal_anim_frame 0xF, 0xF, 0, 15
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnimTable_83CC43C:: @ 83CC43C
- .4byte gSpriteAffineAnim_83CC404
- .4byte gSpriteAffineAnim_83CC414
- .4byte gSpriteAffineAnim_83CC424
-
- .align 2
- .incbin "baserom.gba", 0x003cc448, 0x4
-
- .align 2
-gOamData_83CC44C:: @ 83CC44C
- .2byte 0x0000
- .2byte 0x4000
- .2byte 0x0000
-
- .align 2
-gSpriteTemplate_83CC454:: @ 83CC454
- spr_template 20000, 20000, gOamData_83CC44C, gSpriteAnimTable_83CC3F4, NULL, gSpriteAffineAnimTable_83CC43C, SpriteCallbackDummy
-
- .align 2
-gSpriteTemplate_83CC46C:: @ 83CC46C
- spr_template 20000, 20001, gOamData_83CC44C, gSpriteAnimTable_83CC3F4, NULL, gSpriteAffineAnimTable_83CC43C, SpriteCallbackDummy
-
- .align 2
-gSpriteTemplate_83CC484:: @ 83CC484
- spr_template 20000, 20002, gOamData_83CC44C, gSpriteAnimTable_83CC3F4, NULL, gSpriteAffineAnimTable_83CC43C, SpriteCallbackDummy
-
- .align 2
-gSpriteTemplate_83CC49C:: @ 83CC49C
- spr_template 20000, 20003, gOamData_83CC44C, gSpriteAnimTable_83CC3F4, NULL, gSpriteAffineAnimTable_83CC43C, SpriteCallbackDummy
-
- .align 2
-gUnknown_083CC4B4:: @ 83CC4B4
- obj_tiles gBlankGfxCompressed, 4096, 0x80e8
- obj_tiles gBlankGfxCompressed, 4096, 0x80e9
- obj_tiles gBlankGfxCompressed, 4096, 0x80ea
- obj_tiles gBlankGfxCompressed, 4096, 0x80eb
-
-gUnknown_083CC4D4:: @ 83CC4D4
- .incbin "baserom.gba", 0x003cc4d4, 0x20
-
- .align 2
-gOamData_83CC4F4:: @ 83CC4F4
- .2byte 0x0700
- .2byte 0xC000
- .2byte 0x0000
-
- .align 2
-gSpriteAffineAnim_83CC4FC:: @ 83CC4FC
- obj_rot_scal_anim_frame 0x100, 0x100, 0, 0
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnim_83CC50C:: @ 83CC50C
- obj_rot_scal_anim_frame 0x3, 0x3, 0, 15
- obj_rot_scal_anim_frame 0xFFFD, 0xFFFD, 0, 15
- obj_rot_scal_anim_frame 0x3, 0x3, 0, 15
- obj_rot_scal_anim_frame 0xFFFD, 0xFFFD, 0, 15
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnimTable_83CC534:: @ 83CC534
- .4byte gSpriteAffineAnim_83CC4FC
- .4byte gSpriteAffineAnim_83CC50C
-
- .align 2
-gSpriteTemplate_83CC53C:: @ 83CC53C
- spr_template 33000, 33000, gOamData_83CC4F4, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83CC534, SpriteCallbackDummy
-
- .align 2
-gSpriteTemplate_83CC554:: @ 83CC554
- spr_template 33001, 33001, gOamData_83CC4F4, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83CC534, SpriteCallbackDummy
-
- .align 2
-gSpriteTemplate_83CC56C:: @ 83CC56C
- spr_template 33002, 33002, gOamData_83CC4F4, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83CC534, SpriteCallbackDummy
-
- .align 2
-gSpriteTemplate_83CC584:: @ 83CC584
- spr_template 33003, 33003, gOamData_83CC4F4, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83CC534, SpriteCallbackDummy
-
-gUnknown_083CC59C:: @ 83CC59C
- .incbin "baserom.gba", 0x003cc59c, 0x6
-
-gUnknown_083CC5A2:: @ 83CC5A2
- .string "/$"
-
-gUnknown_083CC5A4:: @ 83CC5A4
- .incbin "baserom.gba", 0x003cc5a4, 0x10
-
-@ 83CC5B4
- .include "data/contest_excitement_table.inc"
-
- .align 2
-gUnknown_083CC5D0:: @ 83CC5D0
- .incbin "baserom.gba", 0x003cc5d0, 0x100
-
- .align 2
-gUnknown_083CC6D0:: @ 83CC6D0
- .4byte MartText_Buy, sub_80B2EFC
- .4byte MartText_Sell, sub_80B2F30
- .4byte MartText_Quit2, HandleShopMenuQuit
-
-gUnknown_083CC6E8:: @ 83CC6E8
- .byte 0, 1, 2
-
-gUnknown_083CC6EB:: @ 83CC6EB
- .byte 0, 2
-
-@ unknown, unreferenced data
- .align 1
- .2byte 0x2
- .2byte 0x3
- .2byte 0x4
- .2byte 0xD
- .2byte 0x121
- .2byte 0xE
- .2byte 0xE
- .2byte 0xE
- .2byte 0xE
- .2byte 0xE
- .2byte 0xE
- .2byte 0x0
- .2byte 0x0
-
- .align 2
-gUnknown_083CC708:: @ 83CC708
- .4byte sub_80B3BF4
- .4byte sub_80B3D7C
-
-gUnknown_083CC710:: @ 83CC710
- .incbin "baserom.gba", 0x003cc710, 0x4
-
-gUnknown_083CC714:: @ 83CC714
- .incbin "baserom.gba", 0x003cc714, 0x6
-
-gUnknown_083CC71A:: @ 83CC71A
- .incbin "baserom.gba", 0x003cc71a, 0x6
-
-gUnknown_083CC720:: @ 83CC720
- .incbin "baserom.gba", 0x003cc720, 0x6
-
-gUnknown_083CC726:: @ 83CC726
- .incbin "baserom.gba", 0x003cc726, 0x6
-
-gUnknown_083CC72C:: @ 83CC72C
- .incbin "baserom.gba", 0x003cc72c, 0x6
-
-gUnknown_083CC732:: @ 83CC732
- .incbin "baserom.gba", 0x003cc732, 0x6
-
-gUnknown_083CC738:: @ 83CC738
- .incbin "baserom.gba", 0x003cc738, 0x8
-
-@ 83CC740
- .include "data/text/berry_descriptions.inc"
-
-@ 83CD2CC
- .include "data/berries.inc"
-
- .align 2
-gUnknown_083CD780:: @ 83CD780
- .4byte 0, 0
-
-@ 83CD788
- .include "data/multichoice.inc"
-
- .align 2
-gUnknown_083CE048:: @ 83CE048
- .4byte OtherText_Cool2
- .4byte OtherText_Beauty3
- .4byte OtherText_Cute2
- .4byte OtherText_Smart2
- .4byte OtherText_Tough2
- .4byte OtherText_Normal
- .4byte OtherText_Super
- .4byte OtherText_Hyper
- .4byte OtherText_Master
- .4byte OtherText_Cool3
- .4byte OtherText_Beauty4
- .4byte OtherText_Cute3
- .4byte OtherText_Smart3
- .4byte OtherText_Tough3
- .4byte OtherText_Items
- .4byte OtherText_KeyItems
- .4byte OtherText_Balls
- .4byte OtherText_TMsHMs
- .4byte OtherText_Berries
-
- .align 2
-gSpriteImage_83CE094:: @ 83CE094
- .incbin "graphics/naming_screen/pc_icon/0.4bpp"
-
- .align 2
-gSpriteImage_83CE154:: @ 83CE154
- .incbin "graphics/naming_screen/pc_icon/1.4bpp"
-
- .align 2
- .incbin "baserom.gba", 0x003ce214, 0x4
-
- .align 2
-gUnknown_083CE218:: @ 83CE218
- .4byte sub_80B5EA8
- .4byte sub_80B5ED0
- .4byte sub_80B5F00
- .4byte sub_80B5F10
- .4byte sub_80B5F38
- .4byte sub_80B5F70
- .4byte pokemon_store
- .4byte sub_80B604C
- .4byte sub_80B606C
- .4byte sub_80B6094
-
- .align 2
-gUnknown_083CE240:: @ 83CE240
- .4byte sub_80B6108
- .4byte sub_80B6148
- .4byte sub_80B6170
- .4byte sub_80B6194
-
- .align 2
-gUnknown_083CE250:: @ 83CE250
- .4byte sub_80B626C
- .4byte sub_80B6274
-
-gUnknown_083CE258:: @ 83CE258
- .incbin "baserom.gba", 0x003ce258, 0xa
-
-gUnknown_083CE262:: @ 83CE262
- .incbin "baserom.gba", 0x003ce262, 0xa
-
-gUnknown_083CE26C:: @ 83CE26C
- .incbin "baserom.gba", 0x003ce26c, 0x8
-
-gUnknown_083CE274:: @ 83CE274
- .incbin "baserom.gba", 0x003ce274, 0x8
-
- .align 2
-gUnknown_083CE27C:: @ 83CE27C
- .4byte sub_80B6668
- .4byte sub_80B6680
- .4byte sub_80B66EC
- .4byte sub_80B6758
-
- .align 2
-gUnknown_083CE28C:: @ 83CE28C
- .4byte 0x02000006
- .4byte 0x02000004
-
-gUnknown_083CE294:: @ 83CE294
- .incbin "baserom.gba", 0x003ce294, 0x1b
-
-gUnknown_083CE2AF:: @ 83CE2AF
- .incbin "baserom.gba", 0x003ce2af, 0x5
-
- .align 2
-gUnknown_083CE2B4:: @ 83CE2B4
- .4byte sub_80B6B5C
- .4byte sub_80B6B98
- .4byte sub_80B6B9C
- .4byte sub_80B6C08
-
-gUnknown_083CE2C4:: @ 83CE2C4
- .incbin "baserom.gba", 0x003ce2c4, 0x6
-
-gUnknown_083CE2CA:: @ 83CE2CA
- .incbin "baserom.gba", 0x003ce2ca, 0x6
-
-gUnknown_083CE2D0:: @ 83CE2D0
- .incbin "baserom.gba", 0x003ce2d0, 0x8
-
-gUnknown_083CE2D8:: @ 83CE2D8
- .incbin "baserom.gba", 0x003ce2d8, 0x8
-
- .align 2
-gUnknown_083CE2E0:: @ 83CE2E0
- .4byte nullsub_40
- .4byte sub_80B6E68
- .4byte sub_80B6EBC
- .4byte sub_80B6EFC
-
- .align 2
-gUnknown_083CE2F0:: @ 83CE2F0
- .4byte sub_80B7660
- .4byte sub_80B7650
- .4byte sub_80B7650
- .4byte sub_80B7670
- .4byte sub_80B7670
- .4byte sub_80B7660
-
-gUnknown_083CE308:: @ 83CE308
- .incbin "baserom.gba", 0x003ce308, 0x8
-
- .align 2
-gUnknown_083CE310:: @ 83CE310
- .4byte sub_80B7844
- .4byte sub_80B7838
- .4byte sub_80B7838
- .4byte sub_80B7850
- .4byte sub_80B7850
- .4byte sub_80B7844
-
- .align 2
-gUnknown_083CE328:: @ 83CE328
- .4byte gWindowConfig_81E6EDC
- .4byte gWindowConfig_81E6EF8
- .4byte gWindowConfig_81E6EA4
- .4byte gWindowConfig_81E6EC0
- .4byte gWindowConfig_81E6EA4
- .4byte gWindowConfig_81E6EC0
- .4byte gWindowConfig_81E6F14
- .4byte gWindowConfig_81E6F30
- .4byte gWindowConfig_81E6F14
- .4byte gWindowConfig_81E6F30
- .4byte gWindowConfig_81E6EDC
- .4byte gWindowConfig_81E6EF8
-
- .align 2
-gUnknown_083CE358:: @ 83CE358
- .4byte nullsub_61
- .4byte nullsub_61
- .4byte sub_80B78F8
- .4byte sub_80B78F8
-
- .align 2
-gUnknown_083CE368:: @ 83CE368
- .4byte nullsub_62
- .4byte sub_80B7924
-
- .align 2
-gUnknown_083CE370:: @ 83CE370
- .incbin "baserom.gba", 0x003ce370, 0x4
-
- .align 2
-Unknown_83CE374:
- .byte 0, 7, 1, 0, 0, 0, 0, 0
- .4byte OtherText_YourName
-
- .align 2
-Unknown_83CE380:
- .byte 0, 8, 2, 0, 0, 0, 0, 0
- .4byte OtherText_BoxName
-
- .align 2
-Unknown_83CE38C:
- .byte 0, 10, 3, 1, 0, 0, 0, 0
- .4byte OtherText_PokeName
-
- .align 2
-gUnknown_083CE398:: @ 83CE398
- .4byte Unknown_83CE374
- .4byte Unknown_83CE380
- .4byte Unknown_83CE38C
- .4byte Unknown_83CE38C
-
-gUnknown_083CE3A8:: @ 83CE3A8
- .string " A B C D E F . $"
- .string " G H I J K L , $"
- .string " M N O P Q R S $"
- .string " T U V W X Y Z $"
- .string " a b c d e f . $"
- .string " g h i j k l , $"
- .string " m n o p q r s $"
- .string " t u v w x y z $"
- .string " 0 1 2 3 4 $"
- .string " 5 6 7 8 9 $"
- .string " ! ? ♂ ♀ / - $"
- .string " … “ ” ‘ ’ $"
-
- .align 2
-gOamData_83CE498:: @ 83CE498
- .2byte 0x0000
- .2byte 0x0000
- .2byte 0x0000
-
- .align 2
-gOamData_83CE4A0:: @ 83CE4A0
- .2byte 0x0000
- .2byte 0x4000
- .2byte 0x0000
-
- .align 2
-gOamData_83CE4A8:: @ 83CE4A8
- .2byte 0x4000
- .2byte 0x8000
- .2byte 0x0000
-
- .align 2
-Unknown_3CE4B0:: @ 83CE4B0
- .incbin "baserom.gba", 0x3ce4b0, 0x50
-
- .align 2
-Unknown_3CE500:: @ 83CE500
- .incbin "baserom.gba", 0x3ce500, 0x10
-
- .align 2
-Unknown_3CE510:: @ 83CE510
- .incbin "baserom.gba", 0x3ce510, 0x30
-
- .align 2
-Unknown_3CE540:: @ 83CE540
- .incbin "baserom.gba", 0x3ce540, 0x18
-
- .align 2
-gUnknown_083CE558:: @ 83CE558
- .4byte 0x8, Unknown_3CE4B0
-
- .align 2
-gUnknown_083CE560:: @ 83CE560
- .4byte 0x2, Unknown_3CE500
- .4byte 0x2, Unknown_3CE500
- .4byte 0x2, Unknown_3CE500
-
- .align 2
-gUnknown_083CE578:: @ 83CE578
- .4byte 0x6, Unknown_3CE510
-
- .align 2
-gUnknown_083CE580:: @ 83CE580
- .4byte 0x3, Unknown_3CE540
-
- .align 2
-gSpriteImageTable_83CE588:: @ 83CE588
- obj_frame_tiles gSpriteImage_83CE094, 0xc0
- obj_frame_tiles gSpriteImage_83CE154, 0xc0
-
- .align 2
-gSpriteAnim_83CE598:: @ 83CE598
- obj_image_anim_frame 0, 1
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnim_83CE5A0:: @ 83CE5A0
- obj_image_anim_frame 4, 8
- obj_image_anim_frame 8, 8
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83CE5AC:: @ 83CE5AC
- obj_image_anim_frame 0, 2
- obj_image_anim_frame 1, 2
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnimTable_83CE5B8:: @ 83CE5B8
- .4byte gSpriteAnim_83CE598
-
- .align 2
-gSpriteAnimTable_83CE5BC:: @ 83CE5BC
- .4byte gSpriteAnim_83CE598
- .4byte gSpriteAnim_83CE5A0
-
- .align 2
-gSpriteAnimTable_83CE5C4:: @ 83CE5C4
- .4byte gSpriteAnim_83CE5AC
-
- .align 2
-gSpriteTemplate_83CE5C8:: @ 83CE5C8
- spr_template 2, 4, gOamData_83CE498, gSpriteAnimTable_83CE5B8, NULL, gDummySpriteAffineAnimTable, sub_80B6B34
-
- .align 2
-gSpriteTemplate_83CE5E0:: @ 83CE5E0
- spr_template 3, 1, gOamData_83CE4A8, gSpriteAnimTable_83CE5B8, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-gSpriteTemplate_83CE5F8:: @ 83CE5F8
- spr_template 4, 4, gOamData_83CE498, gSpriteAnimTable_83CE5B8, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-gSpriteTemplate_83CE610:: @ 83CE610
- spr_template 0, 6, gOamData_83CE498, gSpriteAnimTable_83CE5B8, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-gSpriteTemplate_83CE628:: @ 83CE628
- spr_template 1, 6, gOamData_83CE498, gSpriteAnimTable_83CE5B8, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-gSpriteTemplate_83CE640:: @ 83CE640
- spr_template 7, 5, gOamData_83CE4A0, gSpriteAnimTable_83CE5BC, NULL, gDummySpriteAffineAnimTable, sub_80B6998
-
- .align 2
-gSpriteTemplate_83CE658:: @ 83CE658
- spr_template 10, 3, gOamData_83CE498, gSpriteAnimTable_83CE5B8, NULL, gDummySpriteAffineAnimTable, sub_80B6D9C
-
- .align 2
-gSpriteTemplate_83CE670:: @ 83CE670
- spr_template 11, 3, gOamData_83CE498, gSpriteAnimTable_83CE5B8, NULL, gDummySpriteAffineAnimTable, sub_80B6DE8
-
- .align 2
-gSpriteTemplate_83CE688:: @ 83CE688
- spr_template 0xFFFF, 0, gOamData_83CE498, gSpriteAnimTable_83CE5C4, gSpriteImageTable_83CE588, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-gUnknown_083CE6A0:: @ 83CE6A0
- obj_tiles gNamingScreenBackButtonTiles, 0x1E0, 0
- obj_tiles gNamingScreenOKButtonTiles, 0x1E0, 1
- obj_tiles gNamingScreenChangeKeyboardBoxTiles, 0x280, 2
- obj_tiles gNamingScreenChangeKeyboardButtonTiles, 0x100, 3
- obj_tiles gNamingScreenLowerTextTiles, 0x60, 4
- obj_tiles gNamingScreenUpperTextTiles, 0x60, 5
- obj_tiles gNamingScreenOthersTextTiles, 0x60, 6
- obj_tiles gNamingScreenCursorTiles, 0x80, 7
- obj_tiles gNamingScreenActiveCursorSmallTiles, 0x80, 8
- obj_tiles gNamingScreenActiveCursorBigTiles, 0x80, 9
- obj_tiles gNamingScreenRightPointingTriangleTiles, 0x20, 10
- obj_tiles gNamingScreenUnderscoreTiles, 0x20, 11
- null_obj_tiles
-
- .align 2
-gUnknown_083CE708:: @ 83CE708
- obj_pal gNamingScreenPalettes + 0x20 * 0, 0
- obj_pal gNamingScreenPalettes + 0x20 * 1, 1
- obj_pal gNamingScreenPalettes + 0x20 * 2, 2
- obj_pal gNamingScreenPalettes + 0x20 * 3, 3
- obj_pal gNamingScreenPalettes + 0x20 * 4, 4
- obj_pal gNamingScreenPalettes + 0x20 * 5, 5
- obj_pal gNamingScreenPalettes + 0x20 * 4, 6
- null_obj_pal
-
- .align 2
-gUnknown_083CE748:: @ 83CE748
- .incbin "graphics/naming_screen/lower_keyboard_map.bin"
-
- .align 2
-gUnknown_083CEBF8:: @ 83CEBF8
- .incbin "graphics/naming_screen/upper_keyboard_map.bin"
-
- .align 2
-gUnknown_083CF0A8:: @ 83CF0A8
- .incbin "graphics/naming_screen/others_keyboard_map.bin"
-
- .align 2
-gOamData_83CF558:: @ 83CF558
- .2byte 0x4000
- .2byte 0x8000
- .2byte 0x0000
-
- .align 2
-gSpriteAnim_83CF560:: @ 83CF560
- obj_image_anim_frame 0, 0
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83CF568:: @ 83CF568
- .4byte gSpriteAnim_83CF560
-
- .align 2
-gSpriteTemplate_83CF56C:: @ 83CF56C
- spr_template 10018, 10018, gOamData_83CF558, gSpriteAnimTable_83CF568, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-gUnknown_083CF584:: @ 83CF584
- obj_tiles gMenuMoneyGfx, 256, 0x2722
-
- .align 2
-gUnknown_083CF58C:: @ 83CF58C
- obj_pal gMenuMoneyPal, 0x2722
-
-@ 83CF594
- .include "data/contest_moves.inc"
-
-@ 83D00AC
- .include "data/contest_effects.inc"
-
-@ A lookup table with TRUE for each combo starter ID and FALSE for ID 0,
-@ which means "not a combo starter move".
-gComboStarterLookupTable:: @ 83D016C
- .byte FALSE
- .rept 62
- .byte TRUE
- .endr
-
-@ 83D01AC
- .include "data/contest_effect_funcs.inc"
-
- .align 2
-recordMixingSecretBases:: @ 83D026C
- @ gSaveBlock1.secretBases
- .4byte gSaveBlock1 + 0x1A08
-
- .align 2
-recordMixingTvShows:: @ 83D0270
- @ gSaveBlock1.tvShows
- .4byte gSaveBlock1 + 0x2738
-
- .align 2
-gUnknown_083D0274:: @ 83D0274
- .4byte gSaveBlock1 + 0x2ABC
-
- .align 2
-gUnknown_083D0278:: @ 83D0278
- .4byte gSaveBlock1 + 0x2D94
-
- .align 2
-recordMixingEasyChatPairs:: @ 83D027C
- @ gSaveBlock1.easyChatPairs
- .4byte gSaveBlock1 + 0x2DD4
-
- .align 2
-gUnknown_083D0280:: @ 83D0280
- .4byte 0x02038738
-
- .align 2
-gUnknown_083D0284:: @ 83D0284
- .4byte 0x02024f4c
-
-gUnknown_083D0288:: @ 83D0288
- .byte 1, 0
-
-gUnknown_083D028A:: @ 83D028A
- .byte 1, 2, 0
- .byte 2, 0, 1
-
-gUnknown_083D0290:: @ 83D0290
- .byte 1, 0, 3, 2
- .byte 3, 0, 1, 2
- .byte 2, 0, 3, 1
- .byte 1, 3, 0, 2
- .byte 2, 3, 0, 1
- .byte 3, 2, 0, 1
- .byte 1, 2, 3, 0
- .byte 2, 3, 1, 0
- .byte 3, 2, 1, 0
-
-gUnknown_083D02B4:: @ 83D02B4
- .byte 0, 1
- .byte 1, 2
- .byte 2, 0
-
-gUnknown_083D02BA:: @ 83D02BA
- .byte 0, 1
- .byte 2, 3
-
- .byte 0, 2
- .byte 1, 3
-
- .byte 0, 3
- .byte 2, 1
-
- .align 2 @ object file boundary?
-
-gDebugText_SoundCheckJap:: @ 83D02C8
- .string "サウンドチェック$" @ Sound Check
-
-gDebugText_BGM:: @ 83D02D1
- .string "BGM$"
-
-gDebugText_SE:: @ 83D02D5
- .string "SE $"
-
-gUnknown_083D02D9:: @ 83D02D9
- .incbin "baserom.gba", 0x003d02d9, 0xd
-
-gDebugText_UpDown:: @ 83D02E6
- .string "L‥UP R‥DOWN$"
-
-gDebugText_DriverTest:: @ 83D02F2
- .string "R‥DRIVER-TEST$"
-
-gUnknown_083D0300:: @ 83D0300
- .incbin "baserom.gba", 0x003d0300, 0x12
-
-gUnknown_083D0312:: @ 83D0312
- .incbin "baserom.gba", 0x003d0312, 0xa
-
-gUnknown_083D031C:: @ 83D031C
- .incbin "baserom.gba", 0x003d031c, 0xb
-
-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
-
-gUnknown_083D039C:: @ 83D039C
- .incbin "baserom.gba", 0x003d039c, 0x40
-
-gUnknown_083D03DC:: @ 83D03DC
- .string "▶$"
-
-gUnknown_083D03DE:: @ 83D03DE
- .string " $"
-
-gUnknown_083D03E0:: @ 83D03E0
- .incbin "baserom.gba", 0x003d03e0, 0x18
-
-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"
-
-gUnknown_083D1358:: @ 83D1358
- .incbin "baserom.gba", 0x003d1358, 0x1c
-
-gUnknown_083D1374:: @ 83D1374
- .incbin "baserom.gba", 0x003d1374, 0x60
-
- .align 2
-gUnknown_083D13D4:: @ 83D13D4
- .4byte SecretBaseText_DelRegist, sub_80BCA84
- .4byte gUnknownText_Exit, sub_80BCBF8
-
- .align 2
-gUnknown_083D13E4:: @ 83D13E4
- .4byte sub_80BCB90
- .4byte sub_80BCBC0
-
-gUnknown_083D13EC:: @ 83D13EC
- .incbin "baserom.gba", 0x003d13ec, 0xc
-
-gUnknown_083D13F8:: @ 83D13F8
- .incbin "baserom.gba", 0x003d13f8, 0x3c
-
- .align 2
-gUnknown_083D1434:: @ 83D1434
- .4byte 0x0
- .4byte UnknownString_81AD135
- .4byte UnknownString_81AD5B0
- .4byte UnknownString_81AD8B4
-
- .align 2
-gUnknown_083D1444:: @ 83D1444
- .4byte 0x0
- .4byte UnknownString_81AD2E0
- .4byte UnknownString_81AD6AE
- .4byte UnknownString_81AD9D3
-
- .align 2
-gUnknown_083D1454:: @ 83D1454
- .4byte 0x0
- .4byte UnknownString_81AD434
- .4byte UnknownString_81AD7A7
- .4byte UnknownString_81ADB01
-
- .align 2
-gUnknown_083D1464:: @ 83D1464
- .4byte gStringVar1
- .4byte gStringVar2
- .4byte gStringVar3
-
- .align 2
-gUnknown_083D1470:: @ 83D1470
- .4byte UnknownString_81A8EC9
- .4byte UnknownString_81A9048
- .4byte UnknownString_81A9067
- .4byte UnknownString_81A9088
- .4byte UnknownString_81A90B4
- .4byte UnknownString_81A911F
- .4byte UnknownString_81A9152
- .4byte UnknownString_81A91C6
-
- .align 2
-gUnknown_083D1490:: @ 83D1490
- .4byte UnknownString_81A9581
- .4byte UnknownString_81A9694
- .4byte UnknownString_81A971B
- .4byte UnknownString_81A974B
- .4byte UnknownString_81A979F
- .4byte UnknownString_81A97D0
-
- .align 2
-gUnknown_083D14A8:: @ 83D14A8
- .4byte UnknownString_81A8917
- .4byte UnknownString_81A8AE5
- .4byte UnknownString_81A8B9D
- .4byte UnknownString_81A8C77
- .4byte UnknownString_81A8D45
-
- .align 2
-gUnknown_083D14BC:: @ 83D14BC
- .4byte UnknownString_81A986F
-
- .align 2
-gUnknown_083D14C0:: @ 83D14C0
- .4byte UnknownString_81AAD23
- .4byte UnknownString_81AADD5
- .4byte UnknownString_81AAE31
- .4byte UnknownString_81AAE9D
- .4byte UnknownString_81AAF03
- .4byte UnknownString_81AAF8A
- .4byte UnknownString_81AB040
- .4byte UnknownString_81AB0C8
- .4byte UnknownString_81AB13D
- .4byte UnknownString_81AB1C6
- .4byte UnknownString_81AB266
- .4byte UnknownString_81AB2DB
-
- .align 2
-gUnknown_083D14F0:: @ 83D14F0
- .4byte UnknownString_81AB381
- .4byte UnknownString_81AB435
- .4byte UnknownString_81AB507
- .4byte UnknownString_81AB5B8
- .4byte UnknownString_81AB61F
- .4byte UnknownString_81AB6B0
- .4byte UnknownString_81AB78D
- .4byte UnknownString_81AB7FE
- .4byte UnknownString_81AB835
- .4byte UnknownString_81AB873
- .4byte UnknownString_81AB92E
- .4byte UnknownString_81AB95E
- .4byte UnknownString_81ABB75
-
- .align 2
-gUnknown_083D1524:: @ 83D1524
- .4byte UnknownString_81A72DE
- .4byte UnknownString_81A736B
- .4byte UnknownString_81A73CA
- .4byte UnknownString_81A744D
- .4byte UnknownString_81A7508
- .4byte UnknownString_81A75CE
- .4byte UnknownString_81A768D
- .4byte UnknownString_81A76C5
- .4byte UnknownString_81A774F
-
- .align 2
-gUnknown_083D1548:: @ 83D1548
- .4byte UnknownString_81A7B93
- .4byte UnknownString_81A7C26
- .4byte UnknownString_81A7C7D
- .4byte UnknownString_81A7D4A
- .4byte UnknownString_81A7E0C
- .4byte UnknownString_81A7F0E
- .4byte UnknownString_81A8004
- .4byte UnknownString_81A8119
- .4byte UnknownString_81A811E
- .4byte UnknownString_81A8123
- .4byte UnknownString_81A8128
- .4byte UnknownString_81A812D
- .4byte UnknownString_81A8133
- .4byte UnknownString_81A81BC
- .4byte UnknownString_81A8267
-
- .align 2
-gUnknown_083D1584:: @ 83D1584
- .4byte UnknownString_81A99D9
- .4byte UnknownString_81A9AF0
- .4byte UnknownString_81A9B69
- .4byte UnknownString_81A9BEF
- .4byte UnknownString_81A9C6A
- .4byte UnknownString_81A9CF8
- .4byte UnknownString_81A9D74
- .4byte UnknownString_81A9DF3
- .4byte UnknownString_81A9E75
- .4byte UnknownString_81A9F06
- .4byte UnknownString_81A9F9F
- .4byte UnknownString_81AA01E
- .4byte UnknownString_81AA09D
- .4byte UnknownString_81AA0D7
- .4byte UnknownString_81AA138
- .4byte UnknownString_81AA166
- .4byte UnknownString_81AA1C0
- .4byte UnknownString_81AA1EA
- .4byte UnknownString_81AA28A
-
- .align 2
-gUnknown_083D15D0:: @ 83D15D0
- .4byte UnknownString_81AA814
- .4byte UnknownString_81AA8C6
- .4byte UnknownString_81AA9B2
- .4byte UnknownString_81AAA5C
- .4byte UnknownString_81AAB11
- .4byte UnknownString_81AABB4
- .4byte UnknownString_81AAC47
-
- .align 2
-gUnknown_083D15EC:: @ 83D15EC
- .4byte UnknownString_81AA344
- .4byte UnknownString_81AA5F3
-
- .align 2
-gUnknown_083D15F4:: @ 83D15F4
- .4byte UnknownString_81ABC51
- .4byte UnknownString_81ABD94
- .4byte UnknownString_81ABDF2
-
- .align 2
-gUnknown_083D1600:: @ 83D1600
- .4byte UnknownString_81AC90D
- .4byte UnknownString_81ACA02
- .4byte UnknownString_81ACAAA
- .4byte UnknownString_81ACC07
- .4byte UnknownString_81ACD13
- .4byte UnknownString_81ACDFA
- .4byte UnknownString_81ACEE7
- .4byte UnknownString_81ACF49
- .4byte UnknownString_81AD00A
-
- .align 2
-gUnknown_083D1624:: @ 83D1624
- .incbin "baserom.gba", 0x003d1624, 0x20
-
-gUnknown_083D1644:: @ 83D1644
- .incbin "baserom.gba", 0x003d1644, 0xa0
-
-gUnknown_083D16E4:: @ 83D16E4
- .incbin "baserom.gba", 0x003d16e4, 0x40
-
- .align 2
-gMiscBlank_Pal::
- .incbin "graphics/interface/blank.gbapal"
-
- .align 2
-gOamData_83D1744:: @ 83D1744
- .2byte 0x4000
- .2byte 0xC000
- .2byte 0x2C00
-
- .align 2
-gSpriteTemplate_83D174C:: @ 83D174C
- spr_template 3009, 3009, gOamData_83D1744, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-gUnknown_083D1764:: @ 83D1764
- obj_tiles gMiscBlank_Gfx, 1024, 0x0bc1
- obj_tiles gMiscBlank_Gfx, 1024, 0x0bc2
- obj_tiles gMiscBlank_Gfx, 1024, 0x0bc3
- obj_tiles gMiscBlank_Gfx, 1024, 0x0bc4
- obj_tiles gMiscBlank_Gfx, 1024, 0x0bc5
- obj_tiles gMiscBlank_Gfx, 1024, 0x0bc6
- obj_tiles gMiscBlank_Gfx, 1024, 0x0bc7
- obj_tiles gMiscBlank_Gfx, 1024, 0x0bc8
-
- .align 2
-gUnknown_083D17A4:: @ 83D17A4
- obj_pal gMiscBlank_Pal, 0x0BC1
-
- .align 2
-gOamData_83D17AC:: @ 83D17AC
- .2byte 0x0000
- .2byte 0x0000
- .2byte 0x0000
-
- .align 2
-gSpriteTemplate_83D17B4:: @ 83D17B4
- spr_template 3017, 3017, gOamData_83D17AC, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80C3DF0
-
- .align 2
-gUnknown_083D17CC:: @ 83D17CC
- obj_tiles gContestConfetti_Gfx, 544, 0x0bc9
-
- .align 2
-gUnknown_083D17D4:: @ 83D17D4
- obj_pal gContestConfetti_Pal, 0x0bc9
-
-gUnknown_083D17DC:: @ 83D17DC
- .string "{COLOR RED}$"
-
-gUnknown_083D17E0:: @ 83D17E0
- .string "/$"
-
-gUnknown_083D17E2:: @ 83D17E2
- .string "{SIZE 3}{COLOR_HIGHLIGHT_SHADOW WHITE2 DARK_GREY LIGHT_BLUE}$"
-
- .align 2
- .incbin "baserom.gba", 0x003d17ec, 0x20
-
-gUnknown_083D180C:: @ 83D180C
- .incbin "baserom.gba", 0x003d180c, 0x80
-
-gOtherText_DecimalPoint:: @ 83D188C
- .string ".$"
-
-gUnknown_083D188E:: @ 83D188E
- .byte 0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E
-
- .align 2
-gUnknown_083D1898:: @ 83D1898
- obj_pal gUnknownPal_083D190C, 0x0080
-
- .align 2
-gUnknown_083D18A0:: @ 83D18A0
- obj_pal gUnknownPal_083D18EC, 0x0000
-
- .align 2
-gSpriteTemplate_83D18A8:: @ 83D18A8
- spr_template 0, 0, gOamData_83D18D8, gSpriteAnimTable_83D18E8, NULL, gDummySpriteAffineAnimTable, sub_80C60CC
-
- .align 2
-gSpriteTemplate_83D18C0:: @ 83D18C0
- spr_template 0, 0, gOamData_83D18D8, gSpriteAnimTable_83D18E8, NULL, gDummySpriteAffineAnimTable, sub_80C6130
-
- .align 2
-gOamData_83D18D8:: @ 83D18D8
- .2byte 0x4000
- .2byte 0x4000
- .2byte 0x0000
-
- .align 2
-gSpriteAnim_83D18E0:: @ 83D18E0
- obj_image_anim_frame 0, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83D18E8:: @ 83D18E8
- .4byte gSpriteAnim_83D18E0
-
- .align 2
-gUnknownPal_083D18EC::
- .incbin "baserom.gba", 0x003d18ec, 0x20
-
- .align 2
-gUnknownPal_083D190C::
- .incbin "baserom.gba", 0x003d190c, 0x20
-
- .incbin "baserom.gba", 0x003d192c, 0x60
-
- .align 2
-gSpriteImage_83D198C:: @ 83D198C
- .incbin "graphics/unknown_sprites/83D259C/0.4bpp"
-
- .align 2
-gSpriteImage_83D1A0C:: @ 83D1A0C
- .incbin "graphics/unknown_sprites/83D259C/1.4bpp"
-
- .align 2
-gSpriteImage_83D1A8C:: @ 83D1A8C
- .incbin "graphics/unknown_sprites/83D259C/2.4bpp"
-
- .align 2
-gSpriteImage_83D1B0C:: @ 83D1B0C
- .incbin "graphics/unknown_sprites/83D259C/3.4bpp"
-
- .align 2
-gSpriteImage_83D1B8C:: @ 83D1B8C
- .incbin "graphics/unknown_sprites/83D259C/4.4bpp"
-
- .align 2
- .incbin "baserom.gba", 0x003d1c0c, 0x20
-
- .align 2
-gFieldEffectObjectPalette7: @ 83D1C2C
- .incbin "graphics/field_effect_objects/palettes/07.gbapal"
-
- .align 2
-gSpriteImage_83D1C4C:: @ 83D1C4C
- .incbin "graphics/unknown_sprites/83D25EC/0.4bpp"
-
- .align 2
-gSpriteImage_83D1CCC:: @ 83D1CCC
- .incbin "graphics/unknown_sprites/83D25EC/1.4bpp"
-
- .align 2
-gSpriteImage_83D1D4C:: @ 83D1D4C
- .incbin "graphics/unknown_sprites/83D25EC/2.4bpp"
-
- .align 2
-gSpriteImage_83D1DCC:: @ 83D1DCC
- .incbin "graphics/unknown_sprites/83D25EC/3.4bpp"
-
- .align 2
-gSpriteImage_83D1E4C:: @ 83D1E4C
- .incbin "graphics/unknown_sprites/83D25EC/4.4bpp"
-
- .align 2
-gSpriteImage_83D1ECC:: @ 83D1ECC
- .incbin "graphics/unknown_sprites/83D25C4/0.4bpp"
-
- .align 2
-gSpriteImage_83D1F4C:: @ 83D1F4C
- .incbin "graphics/unknown_sprites/83D25C4/1.4bpp"
-
- .align 2
-gSpriteImage_83D1FCC:: @ 83D1FCC
- .incbin "graphics/unknown_sprites/83D25C4/2.4bpp"
-
- .align 2
-gSpriteImage_83D204C:: @ 83D204C
- .incbin "graphics/unknown_sprites/83D25C4/3.4bpp"
-
- .align 2
-gSpriteImage_83D20CC:: @ 83D20CC
- .incbin "graphics/unknown_sprites/83D25C4/4.4bpp"
-
- .align 2
- .incbin "baserom.gba", 0x003d214c, 0x80
-
- .align 2
-gFieldEffectObjectPalette8: @ 83D21CC
- .incbin "graphics/field_effect_objects/palettes/08.gbapal"
-
- .align 2
-gSpriteImage_83D21EC:: @ 83D21EC
- .incbin "graphics/unknown_sprites/83D2688/0.4bpp"
-
- .align 2
-gSpriteImage_83D22EC:: @ 83D22EC
- .incbin "graphics/unknown_sprites/83D2688/1.4bpp"
-
- .align 2
-gSpriteImage_83D23EC:: @ 83D23EC
- .incbin "graphics/unknown_sprites/83D2688/2.4bpp"
-
- .align 2
-gOamData_83D24EC:: @ 83D24EC
- .2byte 0x0000
- .2byte 0x4000
- .2byte 0x0800
-
- .align 2
-gSpriteAnim_83D24F4:: @ 83D24F4
- obj_image_anim_frame 0, 8
- obj_image_anim_frame 1, 8
- obj_image_anim_frame 2, 8
- obj_image_anim_frame 3, 8
- obj_image_anim_frame 4, 8
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83D250C:: @ 83D250C
- obj_image_anim_frame 0, 8
- obj_image_anim_frame 1, 8
- obj_image_anim_frame 2, 8
- obj_image_anim_frame 3, 8
- obj_image_anim_frame 4, 8
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83D2524:: @ 83D2524
- obj_image_anim_frame 4, 8
- obj_image_anim_frame 3, 8
- obj_image_anim_frame 2, 8
- obj_image_anim_frame 1, 8
- obj_image_anim_frame 0, 8
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83D253C:: @ 83D253C
- obj_image_anim_frame 0, 8, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 1, 8, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 2, 8, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 3, 8, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 4, 8, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83D2554:: @ 83D2554
- obj_image_anim_frame 4, 8, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 3, 8, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 2, 8, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 1, 8, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 0, 8, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83D256C:: @ 83D256C
- obj_image_anim_frame 0, 8
- obj_image_anim_frame 1, 8
- obj_image_anim_frame 2, 8
- obj_image_anim_frame 3, 8
- obj_image_anim_frame 4, 8
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83D2584:: @ 83D2584
- .4byte gSpriteAnim_83D24F4
-
- .align 2
-gSpriteAnimTable_83D2588:: @ 83D2588
- .4byte gSpriteAnim_83D250C
- .4byte gSpriteAnim_83D2524
- .4byte gSpriteAnim_83D253C
- .4byte gSpriteAnim_83D2554
-
- .align 2
-gSpriteAnimTable_83D2598:: @ 83D2598
- .4byte gSpriteAnim_83D256C
-
- .align 2
-gSpriteImageTable_83D259C:: @ 83D259C
- obj_frame_tiles gSpriteImage_83D198C, 0x80
- obj_frame_tiles gSpriteImage_83D1A0C, 0x80
- obj_frame_tiles gSpriteImage_83D1A8C, 0x80
- obj_frame_tiles gSpriteImage_83D1B0C, 0x80
- obj_frame_tiles gSpriteImage_83D1B8C, 0x80
-
- .align 2
-gSpriteImageTable_83D25C4:: @ 83D25C4
- obj_frame_tiles gSpriteImage_83D1ECC, 0x80
- obj_frame_tiles gSpriteImage_83D1F4C, 0x80
- obj_frame_tiles gSpriteImage_83D1FCC, 0x80
- obj_frame_tiles gSpriteImage_83D204C, 0x80
- obj_frame_tiles gSpriteImage_83D20CC, 0x80
-
- .align 2
-gSpriteImageTable_83D25EC:: @ 83D25EC
- obj_frame_tiles gSpriteImage_83D1C4C, 0x80
- obj_frame_tiles gSpriteImage_83D1CCC, 0x80
- obj_frame_tiles gSpriteImage_83D1D4C, 0x80
- obj_frame_tiles gSpriteImage_83D1DCC, 0x80
- obj_frame_tiles gSpriteImage_83D1E4C, 0x80
-
- .align 2
-gSpriteTemplate_83D2614:: @ 83D2614
- spr_template 0xFFFF, 4099, gOamData_83D24EC, gSpriteAnimTable_83D2584, gSpriteImageTable_83D259C, gDummySpriteAffineAnimTable, sub_80C644C
-
- .align 2
-gSpriteTemplate_83D262C:: @ 83D262C
- spr_template 0xFFFF, 4104, gOamData_83D24EC, gSpriteAnimTable_83D2588, gSpriteImageTable_83D25C4, gDummySpriteAffineAnimTable, sub_80C6598
-
- .align 2
-gSpriteTemplate_83D2644:: @ 83D2644
- spr_template 0xFFFF, 4104, gOamData_83D24EC, gSpriteAnimTable_83D2598, gSpriteImageTable_83D25EC, gDummySpriteAffineAnimTable, sub_80C66BC
-
- .align 2
-gFieldEffectObjectPaletteInfo7:: @ 83D265C
- obj_pal gFieldEffectObjectPalette7, 0x1003
-
- .align 2
-gFieldEffectObjectPaletteInfo8:: @ 83D2664
- obj_pal gFieldEffectObjectPalette8, 0x1008
-
- .align 2
-gOamData_83D266C:: @ 83D266C
- .2byte 0x8000
- .2byte 0x8000
- .2byte 0x0800
-
- .align 2
-gSpriteAnim_83D2674:: @ 83D2674
- obj_image_anim_frame 0, 6
- obj_image_anim_frame 1, 6
- obj_image_anim_frame 2, 6
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83D2684:: @ 83D2684
- .4byte gSpriteAnim_83D2674
-
- .align 2
-gSpriteImageTable_83D2688:: @ 83D2688
- obj_frame_tiles gSpriteImage_83D21EC, 0x100
- obj_frame_tiles gSpriteImage_83D22EC, 0x100
- obj_frame_tiles gSpriteImage_83D23EC, 0x100
-
- .align 2
-gSpriteTemplate_83D26A0:: @ 83D26A0
- spr_template 0xFFFF, 4110, gOamData_83D266C, gSpriteAnimTable_83D2684, gSpriteImageTable_83D2688, gDummySpriteAffineAnimTable, SpriteCB_SandPillar_0
-
-@ This uses one of the secret base palettes, so there is no "09.pal" file.
- .align 2
-gFieldEffectObjectPaletteInfo9:: @ 83D26B8
- obj_pal gTilesetPalettes_SecretBase + 5 * 0x20, 0x100E
-
- .align 2
-gSpriteImage_83D26C0:: @ 83D26C0
- .incbin "graphics/unknown_sprites/83D2860/0.4bpp"
-
- .align 2
-gSpriteImage_83D2740:: @ 83D2740
- .incbin "graphics/unknown_sprites/83D2860/1.4bpp"
-
- .align 2
-gSpriteImage_83D27C0:: @ 83D27C0
- .incbin "graphics/unknown_sprites/83D2860/2.4bpp"
-
- .align 2
-Palette_3D2840:: @ 83D2840
- .incbin "baserom.gba", 0x3d2840, 0x20
-
- .align 2
-gSpriteImageTable_83D2860:: @ 83D2860
- obj_frame_tiles gSpriteImage_83D26C0, 0x80
- obj_frame_tiles gSpriteImage_83D2740, 0x80
- obj_frame_tiles gSpriteImage_83D27C0, 0x80
-
- .align 2
-gUnknown_083D2878:: @ 83D2878
- obj_pal Palette_3D2840, 4096
-
- .align 2
-gSpriteAnim_83D2880:: @ 83D2880
- obj_image_anim_frame 0, 30
- obj_image_anim_frame 1, 30
- obj_image_anim_frame 2, 30
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnimTable_83D2890:: @ 83D2890
- .4byte gSpriteAnim_83D2880
-
- .align 2
-gSpriteTemplate_83D2894:: @ 83D2894
- spr_template 0xFFFF, 4096, gFieldOamData_32x8, gSpriteAnimTable_83D2890, gSpriteImageTable_83D2860, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-gMapObjectPic_MovingBox: @ 83D28AC
- .incbin "graphics/map_objects/pics/misc/moving_box.4bpp"
-
- .align 2
-gMapObjectPalette19: @ 83D292C
- .incbin "graphics/map_objects/palettes/19.gbapal"
-
-gTruckCamera_HorizontalTable:: @ 83D294C
- .byte 0
- .byte 0
- .byte 0
- .byte 0
- .byte 0
- .byte 0
- .byte 0
- .byte 0
- .byte 1
- .byte 2
- .byte 2
- .byte 2
- .byte 2
- .byte 2
- .byte 2
- .byte -1
- .byte -1
- .byte -1
- .byte 0
-
-gUnknown_083D295F:: @ 83D295F
- step_18
- step_end
-
-gUnknown_083D2961:: @ 83D2961
- step_17
- step_end
-
- .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
- .incbin "baserom.gba", 0x003d60bc, 0x10
-
-gUnknown_083D60CC:: @ 83D60CC
- .incbin "baserom.gba", 0x003d60cc, 0x10
-
-gUnknown_083D60DC:: @ 83D60DC
- .incbin "baserom.gba", 0x003d60dc, 0x10
-
-gUnknown_083D60EC:: @ 83D60EC
- .incbin "baserom.gba", 0x003d60ec, 0x10
-
-gUnknown_083D60FC:: @ 83D60FC
- .incbin "baserom.gba", 0x003d60fc, 0x20
-
-gUnknown_083D611C:: @ 83D611C
- .incbin "baserom.gba", 0x003d611c, 0x20
-
-gUnknown_083D613C:: @ 83D613C
-Unknown_83D613C::
- .incbin "baserom.gba", 0x003d613c, 0x60
-Unknown_83D619C::
- .incbin "baserom.gba", 0x003d619c, 0x20
-Unknown_83D61BC::
- .incbin "baserom.gba", 0x003d61bc, 0x20
-
- .align 2
-gUnknown_083D61DC:: @ 83D61DC
- .4byte Unknown_83D619C
- .4byte Unknown_83D61BC
-
- .align 2
-gUnknown_083D61E4:: @ 83D61E4
- .4byte sub_808B020
- .4byte c2_exit_to_overworld_2_switch
- .4byte sub_810B96C
-
-gUnknown_083D61F0:: @ 83D61F0
- .byte DIR_NORTH, DIR_EAST, DIR_SOUTH, DIR_WEST
-
- .align 2
-gUnknown_083D61F4:: @ 83D61F4
- .4byte sub_80C9FC0
- .4byte sub_80A5C48
-
- .align 2
-gSpriteAnim_83D61FC:: @ 83D61FC
- obj_image_anim_frame 0, 5
- obj_image_anim_frame 2, 5
- obj_image_anim_frame 4, 5
- obj_image_anim_frame 6, 5
- obj_image_anim_frame 8, 5
- obj_image_anim_frame 10, 5
- obj_image_anim_frame 12, 5
- obj_image_anim_frame 14, 5
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnimTable_83D6220:: @ 83D6220
- .4byte gSpriteAnim_83D61FC
-
- .align 2
-gBattleAnimSpriteTemplate_83D6224:: @ 83D6224
- spr_template 10067, 10067, gOamData_837DF64, gSpriteAnimTable_83D6220, NULL, gDummySpriteAffineAnimTable, sub_80CA710
-
- .align 2
-gBattleAnimSpriteTemplate_83D623C:: @ 83D623C
- spr_template 10068, 10068, gOamData_837DF64, gSpriteAnimTable_83D6220, NULL, gDummySpriteAffineAnimTable, sub_80CA710
-
- .align 2
-gBattleAnimSpriteTemplate_83D6254:: @ 83D6254
- spr_template 10065, 10065, gOamData_837DF64, gSpriteAnimTable_83D6220, NULL, gDummySpriteAffineAnimTable, sub_80CA710
-
- .align 2
-gSpriteAnim_83D626C:: @ 83D626C
- obj_image_anim_frame 0, 1
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83D6274:: @ 83D6274
- obj_image_anim_frame 1, 1
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83D627C:: @ 83D627C
- obj_image_anim_frame 2, 1
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83D6284:: @ 83D6284
- obj_image_anim_frame 3, 1
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83D628C:: @ 83D628C
- obj_image_anim_frame 4, 1
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83D6294:: @ 83D6294
- obj_image_anim_frame 5, 1
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83D629C:: @ 83D629C
- obj_image_anim_frame 6, 1
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83D62A4:: @ 83D62A4
- obj_image_anim_frame 7, 1
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83D62AC:: @ 83D62AC
- obj_image_anim_frame 8, 1
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83D62B4:: @ 83D62B4
- .4byte gSpriteAnim_83D626C
- .4byte gSpriteAnim_83D6274
- .4byte gSpriteAnim_83D627C
- .4byte gSpriteAnim_83D6284
- .4byte gSpriteAnim_83D628C
- .4byte gSpriteAnim_83D6294
- .4byte gSpriteAnim_83D629C
-
- .align 2
-gSpriteAnimTable_83D62D0:: @ 83D62D0
- .4byte gSpriteAnim_83D62A4
-
- .align 2
-gSpriteAnimTable_83D62D4:: @ 83D62D4
- .4byte gSpriteAnim_83D62AC
-
- .align 2
-gSpriteAffineAnim_83D62D8:: @ 83D62D8
- obj_rot_scal_anim_frame 0xFFFB, 0xFFFB, 0, 1
- obj_rot_scal_anim_jump 0
-
- .align 2
-gSpriteAffineAnimTable_83D62E8:: @ 83D62E8
- .4byte gSpriteAffineAnim_83D62D8
-
- .align 2
-gBattleAnimSpriteTemplate_83D62EC:: @ 83D62EC
- spr_template 10147, 10147, gOamData_837E0AC, gSpriteAnimTable_83D62D4, NULL, gSpriteAffineAnimTable_83D62E8, sub_80CA7B0
-
- .align 2
-gBattleAnimSpriteTemplate_83D6304:: @ 83D6304
- spr_template 10147, 10147, gOamData_837DF24, gSpriteAnimTable_83D62B4, NULL, gDummySpriteAffineAnimTable, sub_80CA800
-
- .align 2
-gSpriteTemplate_83D631C:: @ 83D631C
- spr_template 10147, 10147, gOamData_837DF24, gSpriteAnimTable_83D62D0, NULL, gDummySpriteAffineAnimTable, sub_80CA858
-
- .align 2
-gSpriteAffineAnim_83D6334:: @ 83D6334
- obj_rot_scal_anim_frame 0x140, 0x140, 0, 0
- obj_rot_scal_anim_frame 0xFFF2, 0xFFF2, 0, 1
- obj_rot_scal_anim_jump 1
-
- .align 2
-gSpriteAffineAnimTable_83D634C:: @ 83D634C
- .4byte gSpriteAffineAnim_83D6334
-
- .align 2
-gBattleAnimSpriteTemplate_83D6350:: @ 83D6350
- spr_template 10235, 10235, gOamData_837DFE4, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83D634C, sub_80CA7B0
-
- .align 2
-gSpriteAffineAnim_83D6368:: @ 83D6368
- obj_rot_scal_anim_frame 0xFFFB, 0xFFFB, 0, 1
- obj_rot_scal_anim_jump 0
-
- .align 2
-gSpriteAffineAnimTable_83D6378:: @ 83D6378
- .4byte gSpriteAffineAnim_83D6368
-
- .align 2
-gBattleAnimSpriteTemplate_83D637C:: @ 83D637C
- spr_template 10147, 10147, gOamData_837E0AC, gSpriteAnimTable_83D62D4, NULL, gSpriteAffineAnimTable_83D6378, sub_80CA9A8
-
- .align 2
-gBattleAnimSpriteTemplate_83D6394:: @ 83D6394
- spr_template 10147, 10147, gOamData_837DF24, gSpriteAnimTable_83D62B4, NULL, gDummySpriteAffineAnimTable, sub_80CAA14
-
- .align 2
-gSpriteAnim_83D63AC:: @ 83D63AC
- obj_image_anim_frame 0, 1
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83D63B4:: @ 83D63B4
- obj_image_anim_frame 4, 7
- obj_image_anim_frame 8, 7
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnimTable_83D63C0:: @ 83D63C0
- .4byte gSpriteAnim_83D63AC
- .4byte gSpriteAnim_83D63B4
-
- .align 2
-gBattleAnimSpriteTemplate_83D63C8:: @ 83D63C8
- spr_template 10006, 10006, gOamData_837DF2C, gSpriteAnimTable_83D63C0, NULL, gDummySpriteAffineAnimTable, sub_80CAB18
-
- .align 2
-gSpriteAnim_83D63E0:: @ 83D63E0
- obj_image_anim_frame 0, 1
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83D63E8:: @ 83D63E8
- obj_image_anim_frame 4, 7
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83D63F0:: @ 83D63F0
- .4byte gSpriteAnim_83D63E0
- .4byte gSpriteAnim_83D63E8
-
- .align 2
-gBattleAnimSpriteTemplate_83D63F8:: @ 83D63F8
- spr_template 10158, 10158, gOamData_837DF2C, gSpriteAnimTable_83D63F0, NULL, gDummySpriteAffineAnimTable, sub_80CABF8
-
- .align 2
-gSpriteAnim_83D6410:: @ 83D6410
- obj_image_anim_frame 0, 1
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83D6418:: @ 83D6418
- obj_image_anim_frame 4, 1
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83D6420:: @ 83D6420
- .4byte gSpriteAnim_83D6410
-
- .align 2
-gSpriteAnimTable_83D6424:: @ 83D6424
- .4byte gSpriteAnim_83D6418
-
- .align 2
-gBattleAnimSpriteTemplate_83D6428:: @ 83D6428
- spr_template 10159, 10159, gOamData_837DF2C, gSpriteAnimTable_83D6420, NULL, gDummySpriteAffineAnimTable, sub_80CAD54
-
- .align 2
-gBattleAnimSpriteTemplate_83D6440:: @ 83D6440
- spr_template 10159, 10159, gOamData_837DF24, gSpriteAnimTable_83D6424, NULL, gDummySpriteAffineAnimTable, sub_80CAE20
-
- .align 2
-gSpriteAnim_83D6458:: @ 83D6458
- obj_image_anim_frame 0, 5
- obj_image_anim_frame 4, 5
- obj_image_anim_frame 8, 5
- obj_image_anim_frame 12, 5
- obj_image_anim_frame 16, 5
- obj_image_anim_frame 20, 5
- obj_image_anim_frame 16, 5
- obj_image_anim_frame 12, 5
- obj_image_anim_frame 8, 5
- obj_image_anim_frame 4, 5
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnim_83D6484:: @ 83D6484
- obj_image_anim_frame 24, 5
- obj_image_anim_frame 28, 5
- obj_image_anim_frame 32, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83D6494:: @ 83D6494
- .4byte gSpriteAnim_83D6458
- .4byte gSpriteAnim_83D6484
-
- .align 2
-gBattleAnimSpriteTemplate_83D649C:: @ 83D649C
- spr_template 10063, 10063, gOamData_837DF2C, gSpriteAnimTable_83D6494, NULL, gDummySpriteAffineAnimTable, sub_80CAED8
-
- .align 2
-gBattleAnimSpriteTemplate_83D64B4:: @ 83D64B4
- spr_template 10063, 10063, gOamData_837DF2C, gSpriteAnimTable_83D6494, NULL, gDummySpriteAffineAnimTable, sub_80CB144
-
- .align 2
-gSpriteAnim_83D64CC:: @ 83D64CC
- obj_image_anim_frame 0, 3
- obj_image_anim_frame 0, 3, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 0, 3, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 0, 3, OBJ_IMAGE_ANIM_V_FLIP
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnimTable_83D64E0:: @ 83D64E0
- .4byte gSpriteAnim_83D64CC
-
- .align 2
-gBattleAnimSpriteTemplate_83D64E4:: @ 83D64E4
- spr_template 10160, 10160, gOamData_837DF54, gSpriteAnimTable_83D64E0, NULL, gDummySpriteAffineAnimTable, sub_80CAFD0
-
- .align 2
-gSpriteAffineAnim_83D64FC:: @ 83D64FC
- obj_rot_scal_anim_frame 0x0, 0x0, 0, 1
- obj_rot_scal_anim_jump 0
-
- .align 2
-gSpriteAffineAnimTable_83D650C:: @ 83D650C
- .4byte gSpriteAffineAnim_83D64FC
-
- .align 2
-gBattleAnimSpriteTemplate_83D6510:: @ 83D6510
- spr_template 10174, 10174, gOamData_837DF94, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83D650C, sub_80CAFD0
-
- .align 2
-gSpriteAnim_83D6528:: @ 83D6528
- obj_image_anim_frame 0, 4
- obj_image_anim_frame 32, 4
- obj_image_anim_frame 64, 4
- obj_image_anim_frame 96, 4
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83D653C:: @ 83D653C
- obj_image_anim_frame 0, 4, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 32, 4, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 64, 4, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 96, 4, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83D6550:: @ 83D6550
- .4byte gSpriteAnim_83D6528
- .4byte gSpriteAnim_83D653C
-
- .align 2
-gSpriteAffineAnim_83D6558:: @ 83D6558
- obj_rot_scal_anim_frame 0x100, 0x100, 0, 0
- obj_rot_scal_anim_frame 0xFFF5, 0x0, 0, 6
- obj_rot_scal_anim_frame 0xB, 0x0, 0, 6
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnim_83D6578:: @ 83D6578
- obj_rot_scal_anim_frame 0xFF00, 0x100, 0, 0
- obj_rot_scal_anim_frame 0xB, 0x0, 0, 6
- obj_rot_scal_anim_frame 0xFFF5, 0x0, 0, 6
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnimTable_83D6598:: @ 83D6598
- .4byte gSpriteAffineAnim_83D6558
- .4byte gSpriteAffineAnim_83D6578
-
- .align 2
-gBattleAnimSpriteTemplate_83D65A0:: @ 83D65A0
- spr_template 10186, 10186, gOamData_837DFBC, gSpriteAnimTable_83D6550, NULL, gSpriteAffineAnimTable_83D6598, sub_80CB25C
-
- .align 2
-gSpriteAffineAnim_83D65B8:: @ 83D65B8
- obj_rot_scal_anim_frame 0x0, 0x0, 0, 0
- obj_rot_scal_anim_frame 0x30, 0x30, 0, 14
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnim_83D65D0:: @ 83D65D0
- obj_rot_scal_anim_frame 0xFFF0, 0xFFF0, 0, 1
- obj_rot_scal_anim_jump 0
-
- .align 2
-gSpriteAffineAnimTable_83D65E0:: @ 83D65E0
- .4byte gSpriteAffineAnim_83D65B8
- .4byte gSpriteAffineAnim_83D65D0
-
- .align 2
-gBattleAnimSpriteTemplate_83D65E8:: @ 83D65E8
- spr_template 10147, 10147, gOamData_837DFEC, gSpriteAnimTable_83D62D4, NULL, gSpriteAffineAnimTable_83D65E0, sub_80CB4CC
-
- .align 2
-gSpriteAnim_83D6600:: @ 83D6600
- obj_image_anim_frame 0, 7
- obj_image_anim_frame 16, 7
- obj_image_anim_frame 32, 7
- obj_image_anim_frame 48, 7
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83D6614:: @ 83D6614
- obj_image_anim_frame 0, 7, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 16, 7, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 32, 7, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 48, 7, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83D6628:: @ 83D6628
- obj_image_anim_frame 0, 7
- obj_image_anim_frame 16, 7
- obj_image_anim_frame 32, 7
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83D6638:: @ 83D6638
- obj_image_anim_frame 0, 7, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 16, 7, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 32, 7, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83D6648:: @ 83D6648
- .4byte gSpriteAnim_83D6600
- .4byte gSpriteAnim_83D6614
- .4byte gSpriteAnim_83D6628
- .4byte gSpriteAnim_83D6638
-
- .align 2
-gBattleAnimSpriteTemplate_83D6658:: @ 83D6658
- spr_template 10223, 10223, gOamData_837DF34, gSpriteAnimTable_83D6648, NULL, gDummySpriteAffineAnimTable, sub_80CB59C
-
- .align 2
-gBattleAnimSpriteTemplate_83D6670:: @ 83D6670
- spr_template 10223, 10223, gOamData_837DF34, gSpriteAnimTable_83D6648, NULL, gDummySpriteAffineAnimTable, sub_80CB620
-
- .align 2
-gSpriteAnim_83D6688:: @ 83D6688
- obj_image_anim_frame 3, 3
- obj_image_anim_frame 0, 5
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnimTable_83D6694:: @ 83D6694
- .4byte gSpriteAnim_83D6688
-
- .align 2
-gBattleAnimSpriteTemplate_83D6698:: @ 83D6698
- spr_template 10147, 10147, gOamData_837DF24, gSpriteAnimTable_83D6694, NULL, gDummySpriteAffineAnimTable, sub_80CB768
-
- .align 2
-gSpriteAnim_83D66B0:: @ 83D66B0
- obj_image_anim_frame 0, 30
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83D66B8:: @ 83D66B8
- .4byte gSpriteAnim_83D66B0
-
- .align 2
-gSpriteAffineAnim_83D66BC:: @ 83D66BC
- obj_rot_scal_anim_frame 0x0, 0x0, -4, 10
- obj_rot_scal_anim_frame 0x0, 0x0, 4, 20
- obj_rot_scal_anim_frame 0x0, 0x0, -4, 10
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnim_83D66DC:: @ 83D66DC
- obj_rot_scal_anim_frame 0x0, 0x0, -1, 2
- obj_rot_scal_anim_frame 0x0, 0x0, 1, 4
- obj_rot_scal_anim_frame 0x0, 0x0, -1, 4
- obj_rot_scal_anim_frame 0x0, 0x0, 1, 4
- obj_rot_scal_anim_frame 0x0, 0x0, -1, 4
- obj_rot_scal_anim_frame 0x0, 0x0, 1, 2
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnimTable_83D6714:: @ 83D6714
- .4byte gSpriteAffineAnim_83D66BC
- .4byte gSpriteAffineAnim_83D66DC
-
- .align 2
-gBattleAnimSpriteTemplate_83D671C:: @ 83D671C
- spr_template 10224, 10224, gOamData_837DF94, gSpriteAnimTable_83D66B8, NULL, gSpriteAffineAnimTable_83D6714, sub_80CB94C
-
- .align 2
-gBattleAnimSpriteTemplate_83D6734:: @ 83D6734
- spr_template 10224, 10224, gOamData_837DF94, gSpriteAnimTable_83D66B8, NULL, gSpriteAffineAnimTable_83D6714, sub_80CBA28
-
- .align 2
-gSpriteAnim_83D674C:: @ 83D674C
- obj_image_anim_frame 0, 4
- obj_image_anim_frame 4, 4
- obj_image_anim_frame 8, 4
- obj_image_anim_frame 12, 4
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83D6760:: @ 83D6760
- .4byte gSpriteAnim_83D674C
-
- .align 2
-gBattleAnimSpriteTemplate_83D6764:: @ 83D6764
- spr_template 10195, 10195, gOamData_837DF2C, gSpriteAnimTable_83D6760, NULL, gDummySpriteAffineAnimTable, sub_80CBAA4
-
- .align 2
-gBattleAnimSpriteTemplate_83D677C:: @ 83D677C
- spr_template 10224, 10224, gOamData_837DF94, gSpriteAnimTable_83D66B8, NULL, gSpriteAffineAnimTable_83D6714, sub_80CBAE8
-
- .align 2
-gSpriteAffineAnim_83D6794:: @ 83D6794
- obj_rot_scal_anim_frame 0x0, 0x0, 0, 3
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnim_83D67A4:: @ 83D67A4
- obj_rot_scal_anim_frame 0x0, 0xFFF6, 0, 3
- obj_rot_scal_anim_frame 0x0, 0xFFFA, 0, 3
- obj_rot_scal_anim_frame 0x0, 0xFFFE, 0, 3
- obj_rot_scal_anim_frame 0x0, 0x0, 0, 3
- obj_rot_scal_anim_frame 0x0, 0x2, 0, 3
- obj_rot_scal_anim_frame 0x0, 0x6, 0, 3
- obj_rot_scal_anim_frame 0x0, 0xA, 0, 3
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnimTable_83D67E4:: @ 83D67E4
- .4byte gSpriteAffineAnim_83D6794
- .4byte gSpriteAffineAnim_83D67A4
- .4byte gSpriteAffineAnim_83D66BC
- .4byte gSpriteAffineAnim_83D66DC
-
- .align 2
-gBattleAnimSpriteTemplate_83D67F4:: @ 83D67F4
- spr_template 10224, 10224, gOamData_837DF94, gSpriteAnimTable_83D66B8, NULL, gSpriteAffineAnimTable_83D67E4, sub_80CBBF0
-
- .align 2
-gUnknown_083D680C:: @ 83D680C
- .incbin "baserom.gba", 0x003d680c, 0x24
-
- .align 2
-gSpriteAnim_83D6830:: @ 83D6830
- obj_image_anim_frame 28, 1
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83D6838:: @ 83D6838
- obj_image_anim_frame 32, 1
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83D6840:: @ 83D6840
- obj_image_anim_frame 20, 1
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83D6848:: @ 83D6848
- obj_image_anim_frame 28, 1, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83D6850:: @ 83D6850
- obj_image_anim_frame 16, 1
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83D6858:: @ 83D6858
- obj_image_anim_frame 16, 1, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83D6860:: @ 83D6860
- obj_image_anim_frame 28, 1
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83D6868:: @ 83D6868
- .4byte gSpriteAnim_83D6830
- .4byte gSpriteAnim_83D6838
- .4byte gSpriteAnim_83D6840
- .4byte gSpriteAnim_83D6848
- .4byte gSpriteAnim_83D6850
- .4byte gSpriteAnim_83D6858
- .4byte gSpriteAnim_83D6860
-
- .align 2
-gSpriteTemplate_83D6884:: @ 83D6884
- spr_template 10063, 10063, gOamData_837DF2C, gSpriteAnimTable_83D6868, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-gSpriteAffineAnim_83D689C:: @ 83D689C
- obj_rot_scal_anim_frame 0x100, 0x100, 0, 0
- obj_rot_scal_anim_frame 0x0, 0x0, 4, 1
- obj_rot_scal_anim_jump 1
-
- .align 2
-gSpriteAffineAnimTable_83D68B4:: @ 83D68B4
- .4byte gSpriteAffineAnim_83D689C
-
- .align 2
-gBattleAnimSpriteTemplate_83D68B8:: @ 83D68B8
- spr_template 10159, 10159, gOamData_837DF24, gSpriteAnimTable_83D6424, NULL, gDummySpriteAffineAnimTable, sub_80CC474
-
- .align 2
-gBattleAnimSpriteTemplate_83D68D0:: @ 83D68D0
- spr_template 10159, 10159, gOamData_837DF8C, gSpriteAnimTable_83D6420, NULL, gSpriteAffineAnimTable_83D68B4, sub_80CC474
-
- .align 2
-gSpriteAffineAnim_83D68E8:: @ 83D68E8
- obj_rot_scal_anim_frame 0x100, 0x100, 0, 0
- obj_rot_scal_anim_frame 0x0, 0x0, -10, 1
- obj_rot_scal_anim_jump 1
-
- .align 2
-gSpriteAffineAnim_83D6900:: @ 83D6900
- obj_rot_scal_anim_frame 0xC0, 0xC0, 0, 0
- obj_rot_scal_anim_frame 0x0, 0x0, -12, 1
- obj_rot_scal_anim_jump 1
-
- .align 2
-gSpriteAffineAnim_83D6918:: @ 83D6918
- obj_rot_scal_anim_frame 0x8F, 0x8F, 0, 0
- obj_rot_scal_anim_frame 0x0, 0x0, -15, 1
- obj_rot_scal_anim_jump 1
-
- .align 2
-gSpriteAffineAnimTable_83D6930:: @ 83D6930
- .4byte gSpriteAffineAnim_83D68E8
-
- .align 2
-gSpriteAffineAnimTable_83D6934:: @ 83D6934
- .4byte gSpriteAffineAnim_83D6900
-
- .align 2
-gSpriteAffineAnimTable_83D6938:: @ 83D6938
- .4byte gSpriteAffineAnim_83D6918
-
- .align 2
-gBattleAnimSpriteTemplate_83D693C:: @ 83D693C
- spr_template 10271, 10271, gOamData_837DF8C, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83D6930, sub_80CC474
-
- .align 2
-gBattleAnimSpriteTemplate_83D6954:: @ 83D6954
- spr_template 10271, 10271, gOamData_837DF8C, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83D6934, sub_80CC474
-
- .align 2
-gBattleAnimSpriteTemplate_83D696C:: @ 83D696C
- spr_template 10271, 10271, gOamData_837DF8C, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83D6938, sub_80CC474
-
- .align 2
-gUnknown_083D6984:: @ 83D6984
- .incbin "baserom.gba", 0x003d6984, 0x10
-
- .align 2
-gBattleAnimSpriteTemplate_83D6994:: @ 83D6994
- spr_template 10266, 10266, gOamData_837DF8C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80CC6CC
-
- .align 2
-gSpriteAnim_83D69AC:: @ 83D69AC
- obj_image_anim_frame 64, 3
- obj_image_anim_frame 80, 3
- obj_image_anim_frame 96, 3
- obj_image_anim_frame 112, 6
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83D69C0:: @ 83D69C0
- obj_image_anim_frame 64, 3, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 80, 3, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 96, 3, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 112, 6, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83D69D4:: @ 83D69D4
- .4byte gSpriteAnim_83D69AC
- .4byte gSpriteAnim_83D69C0
-
- .align 2
-gBattleAnimSpriteTemplate_83D69DC:: @ 83D69DC
- spr_template 10056, 10056, gOamData_837DF34, gSpriteAnimTable_83D69D4, NULL, gDummySpriteAffineAnimTable, sub_80CC884
-
- .align 2
-gBattleAnimSpriteTemplate_83D69F4:: @ 83D69F4
- spr_template 10287, 10287, gOamData_837DF34, gSpriteAnimTable_83D69D4, NULL, gDummySpriteAffineAnimTable, sub_80CC884
-
- .align 2
-gSpriteAnim_83D6A0C:: @ 83D6A0C
- obj_image_anim_frame 0, 4
- obj_image_anim_frame 16, 4
- obj_image_anim_frame 32, 4
- obj_image_anim_frame 48, 4
- obj_image_anim_frame 64, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83D6A24:: @ 83D6A24
- .4byte gSpriteAnim_83D6A0C
-
- .align 2
-gSpriteTemplate_83D6A28:: @ 83D6A28
- spr_template 10021, 10021, gOamData_837DF34, gSpriteAnimTable_83D6A24, NULL, gDummySpriteAffineAnimTable, sub_80CC82C
-
- .align 2
-gSpriteTemplate_83D6A40:: @ 83D6A40
- spr_template 10022, 10022, gOamData_837DF34, gSpriteAnimTable_83D6A24, NULL, gDummySpriteAffineAnimTable, sub_80CC82C
-
- .align 2
-gSpriteAffineAnim_83D6A58:: @ 83D6A58
- obj_rot_scal_anim_frame 0x100, 0x100, 0, 0
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnim_83D6A68:: @ 83D6A68
- obj_rot_scal_anim_frame 0x100, 0x100, 32, 0
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnim_83D6A78:: @ 83D6A78
- obj_rot_scal_anim_frame 0x100, 0x100, 64, 0
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnim_83D6A88:: @ 83D6A88
- obj_rot_scal_anim_frame 0x100, 0x100, 96, 0
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnim_83D6A98:: @ 83D6A98
- obj_rot_scal_anim_frame 0x100, 0x100, -128, 0
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnim_83D6AA8:: @ 83D6AA8
- obj_rot_scal_anim_frame 0x100, 0x100, -96, 0
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnim_83D6AB8:: @ 83D6AB8
- obj_rot_scal_anim_frame 0x100, 0x100, -64, 0
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnim_83D6AC8:: @ 83D6AC8
- obj_rot_scal_anim_frame 0x100, 0x100, -32, 0
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnimTable_83D6AD8:: @ 83D6AD8
- .4byte gSpriteAffineAnim_83D6A58
- .4byte gSpriteAffineAnim_83D6A68
- .4byte gSpriteAffineAnim_83D6A78
- .4byte gSpriteAffineAnim_83D6A88
- .4byte gSpriteAffineAnim_83D6A98
- .4byte gSpriteAffineAnim_83D6AA8
- .4byte gSpriteAffineAnim_83D6AB8
- .4byte gSpriteAffineAnim_83D6AC8
-
- .align 2
-gSpriteTemplate_83D6AF8:: @ 83D6AF8
- spr_template 10143, 10143, gOamData_837DF94, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83D6AD8, sub_80CC8C8
-
- .align 2
-gSpriteAnim_83D6B10:: @ 83D6B10
- obj_image_anim_frame 0, 5
- obj_image_anim_frame 16, 5
- obj_image_anim_frame 32, 5
- obj_image_anim_frame 48, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83D6B24:: @ 83D6B24
- .4byte gSpriteAnim_83D6B10
-
- .align 2
-gBattleAnimSpriteTemplate_83D6B28:: @ 83D6B28
- spr_template 10138, 10138, gOamData_837E054, gSpriteAnimTable_83D6B24, NULL, gDummySpriteAffineAnimTable, sub_80CC914
-
- .align 2
-gBattleAnimSpriteTemplate_83D6B40:: @ 83D6B40
- spr_template 10138, 10138, gOamData_837E054, gSpriteAnimTable_83D6B24, NULL, gDummySpriteAffineAnimTable, sub_80CC9BC
-
- .align 2
-gSpriteAnim_83D6B58:: @ 83D6B58
- obj_image_anim_frame 0, 1
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83D6B60:: @ 83D6B60
- obj_image_anim_frame 4, 1
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83D6B68:: @ 83D6B68
- obj_image_anim_frame 8, 1
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83D6B70:: @ 83D6B70
- obj_image_anim_frame 12, 1
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83D6B78:: @ 83D6B78
- obj_image_anim_frame 16, 1
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83D6B80:: @ 83D6B80
- obj_image_anim_frame 20, 1
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83D6B88:: @ 83D6B88
- obj_image_anim_frame 0, 1, OBJ_IMAGE_ANIM_V_FLIP
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83D6B90:: @ 83D6B90
- obj_image_anim_frame 4, 1, OBJ_IMAGE_ANIM_V_FLIP
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83D6B98:: @ 83D6B98
- obj_image_anim_frame 8, 1, OBJ_IMAGE_ANIM_V_FLIP
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83D6BA0:: @ 83D6BA0
- obj_image_anim_frame 12, 1, OBJ_IMAGE_ANIM_V_FLIP
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83D6BA8:: @ 83D6BA8
- .4byte gSpriteAnim_83D6B58
- .4byte gSpriteAnim_83D6B60
- .4byte gSpriteAnim_83D6B68
- .4byte gSpriteAnim_83D6B70
- .4byte gSpriteAnim_83D6B78
- .4byte gSpriteAnim_83D6B80
- .4byte gSpriteAnim_83D6B88
- .4byte gSpriteAnim_83D6B90
- .4byte gSpriteAnim_83D6B98
- .4byte gSpriteAnim_83D6BA0
-
- .align 2
-gSpriteTemplate_83D6BD0:: @ 83D6BD0
- spr_template 10072, 10072, gOamData_837DF2C, gSpriteAnimTable_83D6BA8, NULL, gDummySpriteAffineAnimTable, sub_80CCC50
-
- .align 2
-gBattleAnimSpriteTemplate_83D6BE8:: @ 83D6BE8
- spr_template 10280, 10280, gOamData_837E05C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80CCD24
-
- .align 2
-gSpriteAffineAnim_83D6C00:: @ 83D6C00
- obj_rot_scal_anim_frame 0x100, 0x100, 0, 0
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnim_83D6C10:: @ 83D6C10
- obj_rot_scal_anim_frame 0x0, 0x0, 2, 12
- obj_rot_scal_anim_frame 0x0, 0x0, 0, 6
- obj_rot_scal_anim_frame 0x0, 0x0, -2, 24
- obj_rot_scal_anim_frame 0x0, 0x0, 0, 6
- obj_rot_scal_anim_frame 0x0, 0x0, 2, 12
- obj_rot_scal_anim_jump 0
-
- .align 2
-gSpriteAffineAnimTable_83D6C40:: @ 83D6C40
- .4byte gSpriteAffineAnim_83D6C00
- .4byte gSpriteAffineAnim_83D6C10
-
- .align 2
-gBattleAnimSpriteTemplate_83D6C48:: @ 83D6C48
- spr_template 10099, 10099, gOamData_837E0B4, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83D6C40, sub_80CCF04
-
- .align 2
-gSpriteAnim_83D6C60:: @ 83D6C60
- obj_image_anim_frame 0, 7
- obj_image_anim_frame 16, 7
- obj_image_anim_frame 32, 7
- obj_image_anim_frame 48, 7
- obj_image_anim_frame 64, 7
- obj_image_anim_frame 80, 7
- obj_image_anim_frame 96, 7
- obj_image_anim_frame 112, 7
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnimTable_83D6C84:: @ 83D6C84
- .4byte gSpriteAnim_83D6C60
-
- .align 2
-gBattleAnimSpriteTemplate_83D6C88:: @ 83D6C88
- spr_template 10049, 10049, gOamData_837DF34, gSpriteAnimTable_83D6C84, NULL, gDummySpriteAffineAnimTable, sub_80CD140
-
- .align 2
-gBattleAnimSpriteTemplate_83D6CA0:: @ 83D6CA0
- spr_template 10049, 10049, gOamData_837DF34, gSpriteAnimTable_83D6C84, NULL, gDummySpriteAffineAnimTable, sub_80CD190
-
- .align 2
-gSpriteAnim_83D6CB8:: @ 83D6CB8
- obj_image_anim_frame 0, 10
- obj_image_anim_frame 4, 10
- obj_image_anim_frame 8, 10
- obj_image_anim_frame 12, 10
- obj_image_anim_frame 16, 26
- obj_image_anim_frame 16, 5
- obj_image_anim_frame 20, 5
- obj_image_anim_frame 24, 15
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83D6CDC:: @ 83D6CDC
- obj_image_anim_frame 0, 10, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 4, 10, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 8, 10, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 12, 10, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 16, 26, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 16, 5, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 20, 5, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 24, 15, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83D6D00:: @ 83D6D00
- .4byte gSpriteAnim_83D6CB8
- .4byte gSpriteAnim_83D6CDC
-
- .align 2
-gSpriteTemplate_83D6D08:: @ 83D6D08
- spr_template 10032, 10032, gOamData_837DF2C, gSpriteAnimTable_83D6D00, NULL, gDummySpriteAffineAnimTable, sub_80CD274
-
- .align 2
-gSpriteAnim_83D6D20:: @ 83D6D20
- obj_image_anim_frame 0, 40
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83D6D28:: @ 83D6D28
- .4byte gSpriteAnim_83D6D20
-
- .align 2
-gSpriteAffineAnim_83D6D2C:: @ 83D6D2C
- obj_rot_scal_anim_frame 0x14, 0x14, -30, 0
- obj_rot_scal_anim_frame 0x8, 0x8, 1, 24
- obj_rot_scal_anim_end
-
- .align 2
- .incbin "baserom.gba", 0x003d6d44, 0x18
-
- .align 2
-gSpriteAffineAnim_83D6D5C:: @ 83D6D5C
- obj_rot_scal_anim_frame 0x14, 0x14, 30, 0
- obj_rot_scal_anim_frame 0x8, 0x8, -1, 24
- obj_rot_scal_anim_end
-
- .align 2
- .incbin "baserom.gba", 0x003d6d74, 0x18
-
- .align 2
-gSpriteAffineAnimTable_83D6D8C:: @ 83D6D8C
- .4byte gSpriteAffineAnim_83D6D2C
- .4byte gSpriteAffineAnim_83D6D5C
-
- .align 2
-gBattleAnimSpriteTemplate_83D6D94:: @ 83D6D94
- spr_template 10228, 10228, gOamData_837DF94, gSpriteAnimTable_83D6D28, NULL, gSpriteAffineAnimTable_83D6D8C, sub_80CD328
-
- .align 2
-gBattleAnimSpriteTemplate_83D6DAC:: @ 83D6DAC
- spr_template 10014, 10014, gOamData_837DF34, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80CD3E0
-
- .align 2
-gBattleAnimSpriteTemplate_83D6DC4:: @ 83D6DC4
- spr_template 10014, 10014, gOamData_837DF2C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80CD6CC
-
- .align 2
-gUnknown_083D6DDC:: @ 83D6DDC
- .incbin "baserom.gba", 0x003d6ddc, 0x8
-
- .align 2
-gBattleAnimSpriteTemplate_83D6DE4:: @ 83D6DE4
- spr_template 0, 0, gDummyOamData, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80CD774
-
- .align 2
-gSpriteTemplate_83D6DFC:: @ 83D6DFC
- spr_template 0, 0, gDummyOamData, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80CD9C4
-
- .align 2
-gSpriteAnim_83D6E14:: @ 83D6E14
- obj_image_anim_frame 0, 4
- obj_image_anim_frame 16, 4
- obj_image_anim_frame 32, 4
- obj_image_anim_frame 48, 4
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83D6E28:: @ 83D6E28
- obj_image_anim_frame 48, 4
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83D6E30:: @ 83D6E30
- .4byte gSpriteAnim_83D6E14
- .4byte gSpriteAnim_83D6E28
-
- .align 2
-gBattleAnimSpriteTemplate_83D6E38:: @ 83D6E38
- spr_template 10183, 10183, gOamData_837DF34, gSpriteAnimTable_83D6E30, NULL, gDummySpriteAffineAnimTable, sub_80CDD74
-
- .align 2
-gBattleAnimSpriteTemplate_83D6E50:: @ 83D6E50
- spr_template 10286, 10286, gOamData_837DF34, gSpriteAnimTable_83D6E30, NULL, gDummySpriteAffineAnimTable, sub_80CDDDC
-
- .align 2
-gBattleAnimSpriteTemplate_83D6E68:: @ 83D6E68
- spr_template 10286, 10286, gOamData_837DF34, gSpriteAnimTable_83D6E30, NULL, gDummySpriteAffineAnimTable, sub_80CDE24
-
- .align 2
-gSpriteAnim_83D6E80:: @ 83D6E80
- obj_image_anim_frame 0, 4
- obj_image_anim_frame 8, 12
- obj_image_anim_frame 16, 4
- obj_image_anim_frame 24, 4
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83D6E94:: @ 83D6E94
- .4byte gSpriteAnim_83D6E80
-
- .align 2
-gBattleAnimSpriteTemplate_83D6E98:: @ 83D6E98
- spr_template 10184, 10184, gOamData_837DF74, gSpriteAnimTable_83D6E94, NULL, gDummySpriteAffineAnimTable, sub_80CDF0C
-
- .align 2
-gSpriteAnim_83D6EB0:: @ 83D6EB0
- obj_image_anim_frame 0, 18
- obj_image_anim_frame 0, 6
- obj_image_anim_frame 16, 18
- obj_image_anim_frame 0, 6
- obj_image_anim_frame 16, 6
- obj_image_anim_frame 32, 18
- obj_image_anim_frame 16, 6
- obj_image_anim_frame 32, 6
- obj_image_anim_frame 48, 18
- obj_image_anim_frame 32, 6
- obj_image_anim_frame 48, 6
- obj_image_anim_frame 64, 18
- obj_image_anim_frame 48, 6
- obj_image_anim_frame 64, 54
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83D6EEC:: @ 83D6EEC
- .4byte gSpriteAnim_83D6EB0
-
- .align 2
-gBattleAnimSpriteTemplate_83D6EF0:: @ 83D6EF0
- spr_template 10185, 10185, gOamData_837DF34, gSpriteAnimTable_83D6EEC, NULL, gDummySpriteAffineAnimTable, sub_80CDFB0
-
- .align 2
-gBattleAnimSpriteTemplate_83D6F08:: @ 83D6F08
- spr_template 10017, 10017, gOamData_837DF24, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_807941C
-
- .align 2
-gSpriteAnim_83D6F20:: @ 83D6F20
- obj_image_anim_frame 0, 3
- obj_image_anim_frame 16, 3
- obj_image_anim_frame 32, 3
- obj_image_anim_frame 48, 3
- obj_image_anim_frame 64, 3
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83D6F38:: @ 83D6F38
- .4byte gSpriteAnim_83D6F20
-
- .align 2
-gBattleAnimSpriteTemplate_83D6F3C:: @ 83D6F3C
- spr_template 10030, 10030, gOamData_837DF34, gSpriteAnimTable_83D6F38, NULL, gDummySpriteAffineAnimTable, sub_80793C4
-
- .align 2
-gSpriteAnim_83D6F54:: @ 83D6F54
- obj_image_anim_frame 3, 5
- obj_image_anim_frame 2, 5
- obj_image_anim_frame 1, 5
- obj_image_anim_frame 0, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83D6F68:: @ 83D6F68
- .4byte gSpriteAnim_83D6F54
-
- .align 2
-gSpriteAffineAnim_83D6F6C:: @ 83D6F6C
- obj_rot_scal_anim_frame 0x200, 0x200, 0, 0
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnimTable_83D6F7C:: @ 83D6F7C
- .4byte gSpriteAffineAnim_83D6F6C
-
- .align 2
-gBattleAnimSpriteTemplate_83D6F80:: @ 83D6F80
- spr_template 10018, 10018, gOamData_837E104, gSpriteAnimTable_83D6F68, NULL, gSpriteAffineAnimTable_83D6F7C, sub_80CE09C
-
- .align 2
-gSpriteAnim_83D6F98:: @ 83D6F98
- obj_image_anim_frame 0, 5
- obj_image_anim_frame 1, 5
- obj_image_anim_frame 2, 5
- obj_image_anim_frame 3, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83D6FAC:: @ 83D6FAC
- .4byte gSpriteAnim_83D6F98
-
- .align 2
-gBattleAnimSpriteTemplate_83D6FB0:: @ 83D6FB0
- spr_template 10018, 10018, gOamData_837E104, gSpriteAnimTable_83D6FAC, NULL, gSpriteAffineAnimTable_83D6F7C, sub_80CE17C
-
- .align 2
-gBattleAnimSpriteTemplate_83D6FC8:: @ 83D6FC8
- spr_template 10194, 10194, gOamData_837E05C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80CE30C
-
- .align 2
-gSpriteAnim_83D6FE0:: @ 83D6FE0
- obj_image_anim_frame 0, 8
- obj_image_anim_frame 4, 8
- obj_image_anim_frame 8, 8
- obj_image_anim_frame 12, 8
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnimTable_83D6FF4:: @ 83D6FF4
- .4byte gSpriteAnim_83D6FE0
-
- .align 2
-gBattleAnimSpriteTemplate_83D6FF8:: @ 83D6FF8
- spr_template 10195, 10195, gOamData_837DF2C, gSpriteAnimTable_83D6FF4, NULL, gDummySpriteAffineAnimTable, sub_80CE36C
-
- .align 2
-gSpriteAnim_83D7010:: @ 83D7010
- obj_image_anim_frame 0, 2
- obj_image_anim_frame 16, 2
- obj_image_anim_frame 32, 2
- obj_image_anim_frame 48, 3
- obj_image_anim_frame 64, 5
- obj_image_anim_frame 80, 3
- obj_image_anim_frame 96, 2
- obj_image_anim_frame 0, 2
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83D7034:: @ 83D7034
- .4byte gSpriteAnim_83D7010
-
- .align 2
-gBattleAnimSpriteTemplate_83D7038:: @ 83D7038
- spr_template 10031, 10031, gOamData_837DF34, gSpriteAnimTable_83D7034, NULL, gDummySpriteAffineAnimTable, sub_80793C4
-
- .align 2
-gBattleAnimSpriteTemplate_83D7050:: @ 83D7050
- spr_template 10020, 10020, gOamData_837DF34, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80CE670
-
- .align 2
-gSpriteAnim_83D7068:: @ 83D7068
- obj_image_anim_frame 0, 2
- obj_image_anim_frame 16, 2
- obj_image_anim_frame 32, 2
- obj_image_anim_frame 48, 2
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83D707C:: @ 83D707C
- .4byte gSpriteAnim_83D7068
-
- .align 2
-gBattleAnimSpriteTemplate_83D7080:: @ 83D7080
- spr_template 10192, 10192, gOamData_837DF34, gSpriteAnimTable_83D707C, NULL, gDummySpriteAffineAnimTable, sub_80CEA04
-
- .align 2
-gSpriteAnim_83D7098:: @ 83D7098
- obj_image_anim_frame 0, 10
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83D70A0:: @ 83D70A0
- obj_image_anim_frame 4, 10
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83D70A8:: @ 83D70A8
- obj_image_anim_frame 8, 41
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83D70B0:: @ 83D70B0
- obj_image_anim_frame 12, 10
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83D70B8:: @ 83D70B8
- obj_image_anim_frame 16, 10
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83D70C0:: @ 83D70C0
- obj_image_anim_frame 20, 10
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83D70C8:: @ 83D70C8
- obj_image_anim_frame 0, 10, OBJ_IMAGE_ANIM_V_FLIP
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83D70D0:: @ 83D70D0
- obj_image_anim_frame 4, 10, OBJ_IMAGE_ANIM_V_FLIP
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83D70D8:: @ 83D70D8
- .4byte gSpriteAnim_83D7098
- .4byte gSpriteAnim_83D70A0
- .4byte gSpriteAnim_83D70A8
- .4byte gSpriteAnim_83D70B0
- .4byte gSpriteAnim_83D70B8
- .4byte gSpriteAnim_83D70C0
- .4byte gSpriteAnim_83D70C8
- .4byte gSpriteAnim_83D70D0
-
- .align 2
-gSpriteAffineAnim_83D70F8:: @ 83D70F8
- obj_rot_scal_anim_frame 0xC, 0xC, 0, 16
- obj_rot_scal_anim_frame 0xFFF4, 0xFFF4, 0, 16
- obj_rot_scal_anim_jump 0
-
- .align 2
-gSpriteAffineAnimTable_83D7110:: @ 83D7110
- .4byte gSpriteAffineAnim_83D70F8
-
- .align 2
-gBattleAnimSpriteTemplate_83D7114:: @ 83D7114
- spr_template 10072, 10072, gOamData_837DFEC, gSpriteAnimTable_83D70D8, NULL, gSpriteAffineAnimTable_83D7110, sub_80CEB0C
-
- .align 2
-gUnknown_083D712C:: @ 83D712C
- .incbin "baserom.gba", 0x003d712c, 0x30
-
- .align 2
-gBattleAnimSpriteTemplate_83D715C:: @ 83D715C
- spr_template 10072, 10072, gOamData_837DFEC, gSpriteAnimTable_83D70D8, NULL, gSpriteAffineAnimTable_83D7110, sub_80CECE8
-
- .align 2
-gBattleAnimSpriteTemplate_83D7174:: @ 83D7174
- spr_template 10193, 10193, gOamData_837DF34, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80CEDF0
-
- .align 2
-gSpriteAffineAnim_83D718C:: @ 83D718C
- obj_rot_scal_anim_frame 0xA0, 0xA0, 0, 0
- obj_rot_scal_anim_frame 0x4, 0x4, 0, 1
- obj_rot_scal_anim_jump 1
-
- .align 2
-gSpriteAffineAnimTable_83D71A4:: @ 83D71A4
- .4byte gSpriteAffineAnim_83D718C
-
- .align 2
-gBattleAnimSpriteTemplate_83D71A8:: @ 83D71A8
- spr_template 10072, 10072, gOamData_837DFEC, gSpriteAnimTable_83D70D8, NULL, gSpriteAffineAnimTable_83D71A4, sub_80CEE60
-
- .align 2
-gSpriteAnim_83D71C0:: @ 83D71C0
- obj_image_anim_frame 0, 2, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 16, 2, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 32, 2, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 48, 2, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83D71D4:: @ 83D71D4
- obj_image_anim_frame 48, 2, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 32, 2, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 16, 2, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 0, 2, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83D71E8:: @ 83D71E8
- obj_image_anim_frame 0, 2
- obj_image_anim_frame 16, 2
- obj_image_anim_frame 32, 2
- obj_image_anim_frame 48, 2
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83D71FC:: @ 83D71FC
- obj_image_anim_frame 48, 2
- obj_image_anim_frame 32, 2
- obj_image_anim_frame 16, 2
- obj_image_anim_frame 0, 2
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83D7210:: @ 83D7210
- .4byte gSpriteAnim_83D71C0
- .4byte gSpriteAnim_83D71E8
- .4byte gSpriteAnim_83D71D4
- .4byte gSpriteAnim_83D71FC
-
- .align 2
-gBattleAnimSpriteTemplate_83D7220:: @ 83D7220
- spr_template 10209, 10209, gOamData_837DF34, gSpriteAnimTable_83D7210, NULL, gDummySpriteAffineAnimTable, sub_80CEF9C
-
- .align 2
-gSpriteAffineAnim_83D7238:: @ 83D7238
- obj_rot_scal_anim_frame 0x10, 0x10, 0, 0
- obj_rot_scal_anim_frame 0x1E, 0x1E, 0, 8
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnim_83D7250:: @ 83D7250
- obj_rot_scal_anim_frame 0x0, 0x0, 4, 11
- obj_rot_scal_anim_frame 0x0, 0x0, -4, 11
- obj_rot_scal_anim_loop 2
- obj_rot_scal_anim_frame 0xFFE2, 0xFFE2, 0, 8
- obj_rot_scal_anim_end
-
- .align 2
- .incbin "baserom.gba", 0x003d7278, 0x48
-
- .align 2
-gSpriteAffineAnimTable_83D72C0:: @ 83D72C0
- .4byte gSpriteAffineAnim_83D7238
- .4byte gSpriteAffineAnim_83D7250
-
- .align 2
-gBattleAnimSpriteTemplate_83D72C8:: @ 83D72C8
- spr_template 10064, 10064, gOamData_837DFF4, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83D72C0, sub_80CF040
-
- .align 2
-gBattleAnimSpriteTemplate_83D72E0:: @ 83D72E0
- spr_template 10064, 10064, gOamData_837DF94, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83D72C0, sub_80CF0BC
-
- .align 2
-gSpriteAnim_83D72F8:: @ 83D72F8
- obj_image_anim_frame 0, 1
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83D7300:: @ 83D7300
- obj_image_anim_frame 0, 1, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83D7308:: @ 83D7308
- obj_image_anim_frame 0, 4
- obj_image_anim_frame 16, 4
- obj_image_anim_frame 32, 4
- obj_image_anim_frame 16, 4
- obj_image_anim_frame 0, 4
- obj_image_anim_frame 16, 4
- obj_image_anim_frame 32, 4
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83D7328:: @ 83D7328
- obj_image_anim_frame 0, 4, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 16, 4, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 32, 4, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 16, 4, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 0, 4, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 16, 4, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 32, 4, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83D7348:: @ 83D7348
- .4byte gSpriteAnim_83D72F8
- .4byte gSpriteAnim_83D7300
- .4byte gSpriteAnim_83D7308
- .4byte gSpriteAnim_83D7328
-
- .align 2
-gBattleAnimSpriteTemplate_83D7358:: @ 83D7358
- spr_template 10214, 10214, gOamData_837DF34, gSpriteAnimTable_83D7348, NULL, gDummySpriteAffineAnimTable, sub_80CF1C8
-
- .align 2
-gSpriteTemplate_83D7370:: @ 83D7370
- spr_template 10064, 10064, gOamData_837DF34, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80CF280
-
- .align 2
-gSpriteAnim_83D7388:: @ 83D7388
- obj_image_anim_frame 4, 1
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83D7390:: @ 83D7390
- .4byte gSpriteAnim_83D7388
-
- .align 2
-gSpriteTemplate_83D7394:: @ 83D7394
- spr_template 10072, 10072, gOamData_837DF2C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80CF2D0
-
- .align 2
-gSpriteTemplate_83D73AC:: @ 83D73AC
- spr_template 0, 0, gDummyOamData, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80CF3C4
-
- .align 2
-gSpriteTemplate_83D73C4:: @ 83D73C4
- spr_template 10145, 10145, gOamData_837E0BC, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83DB1B0, sub_80CF458
-
- .align 2
-gSpriteAnim_83D73DC:: @ 83D73DC
- obj_image_anim_frame 0, 9
- obj_image_anim_frame 16, 3
- obj_image_anim_frame 32, 3
- obj_image_anim_frame 48, 3
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83D73F0:: @ 83D73F0
- .4byte gSpriteAnim_83D73DC
-
- .align 2
-gSpriteAffineAnim_83D73F4:: @ 83D73F4
- obj_rot_scal_anim_frame 0x50, 0x50, 0, 0
- obj_rot_scal_anim_frame 0x9, 0x9, 0, 18
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnimTable_83D740C:: @ 83D740C
- .4byte gSpriteAffineAnim_83D73F4
-
- .align 2
-gSpriteTemplate_83D7410:: @ 83D7410
- spr_template 10007, 10007, gOamData_837DF94, gSpriteAnimTable_83D73F0, NULL, gSpriteAffineAnimTable_83D740C, sub_80793C4
-
- .align 2
-gSpriteAnim_83D7428:: @ 83D7428
- obj_image_anim_frame 0, 3, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 8, 3, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 16, 3, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 24, 3, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 32, 3, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 40, 3, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 48, 3, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_loop 1
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83D744C:: @ 83D744C
- .4byte gSpriteAnim_83D7428
-
- .align 2
-gBattleAnimSpriteTemplate_83D7450:: @ 83D7450
- spr_template 10075, 10075, gOamData_837DF54, gSpriteAnimTable_83D744C, NULL, gDummySpriteAffineAnimTable, sub_80CF610
-
- .align 2
-gSpriteAffineAnim_83D7468:: @ 83D7468
- obj_rot_scal_anim_frame 0x10, 0x100, 0, 0
- obj_rot_scal_anim_frame 0x14, 0x0, 0, 12
- obj_rot_scal_anim_frame 0x0, 0x0, 0, 32
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnimTable_83D7488:: @ 83D7488
- .4byte gSpriteAffineAnim_83D7468
-
- .align 2
-gBattleAnimSpriteTemplate_83D748C:: @ 83D748C
- spr_template 10005, 10005, gOamData_837E0FC, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83D7488, sub_80CF690
-
- .align 2
-gBattleAnimSpriteTemplate_83D74A4:: @ 83D74A4
- spr_template 10003, 10003, gOamData_837E134, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80CF6DC
-
- .align 2
-gSpriteTemplate_83D74BC:: @ 83D74BC
- spr_template 10003, 10003, gOamData_837E074, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80CF8B8
-
- .align 2
-gSpriteAffineAnim_83D74D4:: @ 83D74D4
- obj_rot_scal_anim_frame 0x20, 0x20, 0, 0
- obj_rot_scal_anim_frame 0x7, 0x7, 0, -56
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnim_83D74EC:: @ 83D74EC
- obj_rot_scal_anim_frame 0x5, 0x5, 0, 10
- obj_rot_scal_anim_frame 0xFFF6, 0xFFF6, 0, 10
- obj_rot_scal_anim_frame 0xA, 0xA, 0, 10
- obj_rot_scal_anim_frame 0xFFF6, 0xFFF6, 0, 10
- obj_rot_scal_anim_frame 0xA, 0xA, 0, 10
- obj_rot_scal_anim_frame 0xFFF6, 0xFFF6, 0, 10
- obj_rot_scal_anim_frame 0xA, 0xA, 0, 10
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnimTable_83D752C:: @ 83D752C
- .4byte gSpriteAffineAnim_83D74D4
-
- .align 2
-gSpriteAffineAnimTable_83D7530:: @ 83D7530
- .4byte gSpriteAffineAnim_83D74EC
-
- .align 2
-gBattleAnimSpriteTemplate_83D7534:: @ 83D7534
- spr_template 10163, 10163, gOamData_837E034, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83D752C, sub_807941C
-
- .align 2
-gBattleAnimSpriteTemplate_83D754C:: @ 83D754C
- spr_template 10164, 10164, gOamData_837E034, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83D752C, sub_807941C
-
- .align 2
-gBattleAnimSpriteTemplate_83D7564:: @ 83D7564
- spr_template 10260, 10260, gOamData_837E03C, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83D752C, sub_807941C
-
- .align 2
-gBattleAnimSpriteTemplate_83D757C:: @ 83D757C
- spr_template 10288, 10288, gOamData_837E034, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83D7530, sub_80D4CA4
-
- .align 2
-gBattleAnimSpriteTemplate_83D7594:: @ 83D7594
- spr_template 10175, 10175, gOamData_837DF2C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80794A8
-
- .align 2
-gSpriteTemplate_83D75AC:: @ 83D75AC
- spr_template 10178, 10178, gOamData_837E05C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80CFDFC
-
- .align 2
-gSpriteAnim_83D75C4:: @ 83D75C4
- obj_image_anim_frame 8, 1
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83D75CC:: @ 83D75CC
- .4byte gSpriteAnim_83D75C4
-
- .align 2
-gSpriteAffineAnim_83D75D0:: @ 83D75D0
- obj_rot_scal_anim_frame 0x0, 0x0, 10, 1
- obj_rot_scal_anim_jump 0
-
- .align 2
-gSpriteAffineAnimTable_83D75E0:: @ 83D75E0
- .4byte gSpriteAffineAnim_83D75D0
-
- .align 2
-gBattleAnimSpriteTemplate_83D75E4:: @ 83D75E4
- spr_template 10100, 10100, gOamData_837DF8C, gSpriteAnimTable_83D75CC, NULL, gDummySpriteAffineAnimTable, sub_80CFE9C
-
- .align 2
-gBattleAnimSpriteTemplate_83D75FC:: @ 83D75FC
- spr_template 10100, 10100, gOamData_837DF8C, gSpriteAnimTable_83D75CC, NULL, gSpriteAffineAnimTable_83D75E0, sub_80CFF50
-
- .align 2
-gSpriteAffineAnim_83D7614:: @ 83D7614
- obj_rot_scal_anim_frame 0x0, 0x0, 20, 1
- obj_rot_scal_anim_jump 0
-
- .align 2
-gSpriteAffineAnimTable_83D7624:: @ 83D7624
- .4byte gSpriteAffineAnim_83D7614
-
- .align 2
-gBattleAnimSpriteTemplate_83D7628:: @ 83D7628
- spr_template 10006, 10006, gOamData_837DF8C, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83D7624, sub_80CFFD8
-
- .align 2
-gSpriteAffineAnim_83D7640:: @ 83D7640
- obj_rot_scal_anim_frame 0x10, 0x100, 0, 0
- obj_rot_scal_anim_frame 0x4, 0x0, 0, 40
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnimTable_83D7658:: @ 83D7658
- .4byte gSpriteAffineAnim_83D7640
-
- .align 2
-gBattleAnimSpriteTemplate_83D765C:: @ 83D765C
- spr_template 10009, 10009, gOamData_837DFDC, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83D7658, sub_80D0118
-
- .align 2
-gSpriteAnim_83D7674:: @ 83D7674
- obj_image_anim_frame 0, 3
- obj_image_anim_frame 16, 3
- obj_image_anim_frame 32, 20
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83D7684:: @ 83D7684
- obj_image_anim_frame 0, 3, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 16, 3, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 32, 20, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83D7694:: @ 83D7694
- .4byte gSpriteAnim_83D7674
- .4byte gSpriteAnim_83D7684
-
- .align 2
-gBattleAnimSpriteTemplate_83D769C:: @ 83D769C
- spr_template 10138, 10138, gOamData_837E054, gSpriteAnimTable_83D7694, NULL, gDummySpriteAffineAnimTable, sub_80D0178
-
- .align 2
-gSpriteAnim_83D76B4:: @ 83D76B4
- obj_image_anim_frame 0, 2
- obj_image_anim_frame 16, 2
- obj_image_anim_frame 32, 1
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83D76C4:: @ 83D76C4
- obj_image_anim_frame 0, 2, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 16, 2, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 32, 1, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83D76D4:: @ 83D76D4
- .4byte gSpriteAnim_83D76B4
- .4byte gSpriteAnim_83D76C4
-
- .align 2
-gBattleAnimSpriteTemplate_83D76DC:: @ 83D76DC
- spr_template 10138, 10138, gOamData_837E054, gSpriteAnimTable_83D76D4, NULL, gDummySpriteAffineAnimTable, sub_80D0228
-
- .align 2
-gUnknown_083D76F4:: @ 83D76F4
- .incbin "baserom.gba", 0x003d76f4, 0x20
-
-gUnknown_083D7714:: @ 83D7714
- .incbin "baserom.gba", 0x003d7714, 0x20
-
- .align 2
-gSpriteAnim_83D7734:: @ 83D7734
- obj_image_anim_frame 0, 4, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 4, 40, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 8, 4, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 12, 4, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83D7748:: @ 83D7748
- obj_image_anim_frame 0, 4
- obj_image_anim_frame 4, 40
- obj_image_anim_frame 8, 4
- obj_image_anim_frame 12, 4
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83D775C:: @ 83D775C
- .4byte gSpriteAnim_83D7734
- .4byte gSpriteAnim_83D7748
-
- .align 2
-gBattleAnimSpriteTemplate_83D7764:: @ 83D7764
- spr_template 10086, 10086, gOamData_837DF2C, gSpriteAnimTable_83D775C, NULL, gDummySpriteAffineAnimTable, sub_80D0930
-
- .align 2
-gSpriteAffineAnim_83D777C:: @ 83D777C
- obj_rot_scal_anim_frame 0xB, 0xB, 0, 8
- obj_rot_scal_anim_frame 0xFFF5, 0xFFF5, 0, 8
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnimTable_83D7794:: @ 83D7794
- .4byte gSpriteAffineAnim_83D777C
-
- .align 2
-gBattleAnimSpriteTemplate_83D7798:: @ 83D7798
- spr_template 10087, 10087, gOamData_837DF8C, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83D7794, sub_80D09C0
-
- .align 2
-gUnknown_083D77B0:: @ 83D77B0
- .incbin "baserom.gba", 0x003d77b0, 0x30
-
- .align 2
-gBattleAnimSpriteTemplate_83D77E0:: @ 83D77E0
- spr_template 10002, 10002, gOamData_837DF34, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80D0E30
-
- .align 2
-gBattleAnimSpriteTemplate_83D77F8:: @ 83D77F8
- spr_template 10197, 10197, gOamData_837DF34, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_8079534
-
- .align 2
-gSpriteAnim_83D7810:: @ 83D7810
- obj_image_anim_frame 0, 5
- obj_image_anim_frame 16, 5
- obj_image_anim_frame 32, 5
- obj_image_anim_frame 48, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83D7824:: @ 83D7824
- .4byte gSpriteAnim_83D7810
-
- .align 2
-gBattleAnimSpriteTemplate_83D7828:: @ 83D7828
- spr_template 10198, 10198, gOamData_837DF34, gSpriteAnimTable_83D7824, NULL, gDummySpriteAffineAnimTable, sub_80793C4
-
- .align 2
-gSpriteAffineAnim_83D7840:: @ 83D7840
- obj_rot_scal_anim_frame 0x0, 0x0, -8, 2
- obj_rot_scal_anim_frame 0x0, 0x0, 8, 4
- obj_rot_scal_anim_frame 0x0, 0x0, -8, 2
- obj_rot_scal_anim_jump 0
-
- .align 2
-gSpriteAffineAnim_83D7860:: @ 83D7860
- obj_rot_scal_anim_frame 0x100, 0x100, 0, 0
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnim_83D7870:: @ 83D7870
- obj_rot_scal_anim_frame 0xFFF8, 0x4, 0, 8
- obj_rot_scal_anim_loop 0
- obj_rot_scal_anim_frame 0x10, 0xFFF8, 0, 8
- obj_rot_scal_anim_frame 0xFFF0, 0x8, 0, 8
- obj_rot_scal_anim_loop 1
- obj_rot_scal_anim_frame 0x100, 0x100, 0, 0
- obj_rot_scal_anim_frame 0x0, 0x0, 0, 15
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnimTable_83D78B0:: @ 83D78B0
- .4byte gSpriteAffineAnim_83D7840
- .4byte gSpriteAffineAnim_83D7860
- .4byte gSpriteAffineAnim_83D7870
-
- .align 2
-gBattleAnimSpriteTemplate_83D78BC:: @ 83D78BC
- spr_template 10202, 10202, gOamData_837E114, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83D78B0, sub_80D1368
-
- .align 2
-gSpriteAffineAnim_83D78D4:: @ 83D78D4
- obj_rot_scal_anim_frame 0x10, 0x10, 0, 0
- obj_rot_scal_anim_frame 0x10, 0x10, 0, 30
- obj_rot_scal_anim_end 1
-
- .align 2
-gSpriteAffineAnim_83D78EC:: @ 83D78EC
- obj_rot_scal_anim_frame 0x10, 0x10, 0, 0
- obj_rot_scal_anim_frame 0x20, 0x20, 0, 15
- obj_rot_scal_anim_end 1
-
- .align 2
-gSpriteAffineAnim_83D7904:: @ 83D7904
- obj_rot_scal_anim_frame 0x10, 0x10, 0, 0
- obj_rot_scal_anim_frame 0xB, 0xB, 0, 45
- obj_rot_scal_anim_end 1
-
- .align 2
-gSpriteAffineAnimTable_83D791C:: @ 83D791C
- .4byte gSpriteAffineAnim_83D78D4
- .4byte gSpriteAffineAnim_83D78EC
-
- .align 2
-gSpriteAffineAnimTable_83D7924:: @ 83D7924
- .4byte gSpriteAffineAnim_83D7904
-
- .align 2
-gBattleAnimSpriteTemplate_83D7928:: @ 83D7928
- spr_template 10203, 10203, gOamData_837DFFC, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83D791C, sub_80793C4
-
- .align 2
-gSpriteAffineAnim_83D7940:: @ 83D7940
- obj_rot_scal_anim_frame 0x200, 0x200, 0, 0
- obj_rot_scal_anim_frame 0xFFF0, 0xFFF0, 0, 30
- obj_rot_scal_anim_end 1
-
- .align 2
-gSpriteAffineAnimTable_83D7958:: @ 83D7958
- .4byte gSpriteAffineAnim_83D7940
-
- .align 2
-gBattleAnimSpriteTemplate_83D795C:: @ 83D795C
- spr_template 10203, 10203, gOamData_837E11C, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83D7958, sub_80793C4
-
- .align 2
-gBattleAnimSpriteTemplate_83D7974:: @ 83D7974
- spr_template 10203, 10203, gOamData_837E11C, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83D791C, sub_80D0FD8
-
- .align 2
-gBattleAnimSpriteTemplate_83D798C:: @ 83D798C
- spr_template 10203, 10203, gOamData_837E11C, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83D7924, sub_80D10B8
-
- .align 2
-gBattleAnimSpriteTemplate_83D79A4:: @ 83D79A4
- spr_template 10203, 10203, gOamData_837E11C, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83D791C, sub_80D1318
-
- .align 2
-gUnknown_083D79BC:: @ 83D79BC
- .incbin "baserom.gba", 0x003d79bc, 0x10
-
- .align 2
-gSpriteAnim_83D79CC:: @ 83D79CC
- obj_image_anim_frame 0, 3
- obj_image_anim_frame 4, 3
- obj_image_anim_frame 8, 3
- obj_image_anim_frame 4, 3
- obj_image_anim_frame 0, 3
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83D79E4:: @ 83D79E4
- .4byte gSpriteAnim_83D79CC
-
- .align 2
-gSpriteTemplate_83D79E8:: @ 83D79E8
- spr_template 10207, 10207, gOamData_837DF2C, gSpriteAnimTable_83D79E4, NULL, gDummySpriteAffineAnimTable, sub_80D1A70
-
-gUnknown_083D7A00:: @ 83D7A00
- .incbin "baserom.gba", 0x003d7a00, 0x8
-
- .align 2
-gSpriteAnim_83D7A08:: @ 83D7A08
- obj_image_anim_frame 0, 6
- obj_image_anim_frame 16, 6
- obj_image_anim_frame 32, 15
- obj_image_anim_frame 16, 6
- obj_image_anim_frame 0, 6
- obj_image_anim_frame 16, 6, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 32, 15, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 16, 6, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 0, 6
- obj_image_anim_frame 16, 6
- obj_image_anim_frame 32, 15
- obj_image_anim_frame 16, 6
- obj_image_anim_frame 0, 6
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83D7A40:: @ 83D7A40
- .4byte gSpriteAnim_83D7A08
-
- .align 2
-gBattleAnimSpriteTemplate_83D7A44:: @ 83D7A44
- spr_template 10205, 10205, gOamData_837DF34, gSpriteAnimTable_83D7A40, NULL, gDummySpriteAffineAnimTable, sub_80793C4
-
- .align 2
-gUnknown_083D7A5C:: @ 83D7A5C
- .incbin "baserom.gba", 0x003d7a5c, 0xc
-
- .align 2
-gBattleAnimSpriteTemplate_83D7A68:: @ 83D7A68
- spr_template 10206, 10206, gOamData_837DF2C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80D1C08
-
- .align 2
-gBattleAnimSpriteTemplate_83D7A80:: @ 83D7A80
- spr_template 10210, 10210, gOamData_837DF2C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80D1C80
-
- .align 2
-gUnknown_083D7A98:: @ 83D7A98
- .incbin "baserom.gba", 0x003d7a98, 0x18
-
- .align 2
-gBattleAnimSpriteTemplate_83D7AB0:: @ 83D7AB0
- spr_template 10216, 10216, gOamData_837DF2C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80D1F58
-
- .align 2
-gBattleAnimSpriteTemplate_83D7AC8:: @ 83D7AC8
- spr_template 10216, 10216, gOamData_837DF2C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80D1FDC
-
- .align 2
-gBattleAnimSpriteTemplate_83D7AE0:: @ 83D7AE0
- spr_template 10216, 10216, gOamData_837DF2C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80D2064
-
- .align 2
-gSpriteAffineAnim_83D7AF8:: @ 83D7AF8
- obj_rot_scal_anim_frame 0x80, 0x80, 0, 0
- obj_rot_scal_anim_frame 0x8, 0x8, 0, 1
- obj_rot_scal_anim_jump 1
-
- .align 2
-gSpriteAffineAnimTable_83D7B10:: @ 83D7B10
- .4byte gSpriteAffineAnim_83D7AF8
-
- .align 2
-gBattleAnimSpriteTemplate_83D7B14:: @ 83D7B14
- spr_template 10217, 10217, gOamData_837DF8C, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83D7B10, sub_80D26A4
-
- .align 2
-gBattleAnimSpriteTemplate_83D7B2C:: @ 83D7B2C
- spr_template 10217, 10217, gOamData_837DFEC, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83D7B10, sub_80D27E0
-
- .align 2
-gSpriteAffineAnim_83D7B44:: @ 83D7B44
- obj_rot_scal_anim_frame 0x80, 0x80, 0, 0
- obj_rot_scal_anim_frame 0x8, 0x8, 0, 1
- obj_rot_scal_anim_jump 1
-
- .align 2
-gSpriteAffineAnimTable_83D7B5C:: @ 83D7B5C
- .4byte gSpriteAffineAnim_83D7B44
-
- .align 2
-gBattleAnimSpriteTemplate_83D7B60:: @ 83D7B60
- spr_template 10237, 10237, gOamData_837DFE4, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83D7B5C, sub_80D28AC
-
- .align 2
-gSpriteAnim_83D7B78:: @ 83D7B78
- obj_image_anim_frame 0, 4
- obj_image_anim_frame 4, 4
- obj_image_anim_frame 8, 4
- obj_image_anim_frame 4, 4
- obj_image_anim_frame 0, 4
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83D7B90:: @ 83D7B90
- .4byte gSpriteAnim_83D7B78
-
- .align 2
-gBattleAnimSpriteTemplate_83D7B94:: @ 83D7B94
- spr_template 10218, 10218, gOamData_837DF2C, gSpriteAnimTable_83D7B90, NULL, gDummySpriteAffineAnimTable, sub_80D2920
-
- .align 2
-gSpriteAnim_83D7BAC:: @ 83D7BAC
- obj_image_anim_frame 0, 24
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83D7BB4:: @ 83D7BB4
- .4byte gSpriteAnim_83D7BAC
-
- .align 2
-gBattleAnimSpriteTemplate_83D7BB8:: @ 83D7BB8
- spr_template 10220, 10220, gOamData_837DF34, gSpriteAnimTable_83D7BB4, NULL, gDummySpriteAffineAnimTable, sub_80D2938
-
- .align 2
-gBattleAnimSpriteTemplate_83D7BD0:: @ 83D7BD0
- spr_template 10219, 10219, gOamData_837DF2C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80D2A38
-
- .align 2
-gSpriteAnim_83D7BE8:: @ 83D7BE8
- obj_image_anim_frame 0, 3
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnim_83D7BF0:: @ 83D7BF0
- obj_image_anim_frame 16, 3
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnimTable_83D7BF8:: @ 83D7BF8
- .4byte gSpriteAnim_83D7BE8
- .4byte gSpriteAnim_83D7BF0
-
- .align 2
-gBattleAnimSpriteTemplate_83D7C00:: @ 83D7C00
- spr_template 10221, 10221, gOamData_837DF34, gSpriteAnimTable_83D7BF8, NULL, gDummySpriteAffineAnimTable, sub_80D2ABC
-
- .align 2
-gSpriteAnim_83D7C18:: @ 83D7C18
- obj_image_anim_frame 0, 4
- obj_image_anim_frame 16, 4
- obj_image_anim_frame 32, 4
- obj_image_anim_frame 48, 4
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83D7C2C:: @ 83D7C2C
- obj_image_anim_frame 0, 4, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 16, 4, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 32, 4, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 48, 4, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83D7C40:: @ 83D7C40
- .4byte gSpriteAnim_83D7C18
- .4byte gSpriteAnim_83D7C2C
-
- .align 2
-gBattleAnimSpriteTemplate_83D7C48:: @ 83D7C48
- spr_template 10222, 10222, gOamData_837DF34, gSpriteAnimTable_83D7C40, NULL, gDummySpriteAffineAnimTable, sub_80D2BE8
-
- .align 2
-gSpriteAnim_83D7C60:: @ 83D7C60
- obj_image_anim_frame 0, 8
- obj_image_anim_frame 16, 8
- obj_image_anim_frame 32, 8
- obj_image_anim_frame 16, 8
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83D7C74:: @ 83D7C74
- obj_image_anim_frame 16, 8, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 32, 8, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 16, 8, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 0, 8, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83D7C88:: @ 83D7C88
- .4byte gSpriteAnim_83D7C60
- .4byte gSpriteAnim_83D7C74
-
- .align 2
-gBattleAnimSpriteTemplate_83D7C90:: @ 83D7C90
- spr_template 10215, 10215, gOamData_837DF34, gSpriteAnimTable_83D7C88, NULL, gDummySpriteAffineAnimTable, sub_80D2C38
-
- .align 2
-gUnknown_083D7CA8:: @ 83D7CA8
- .incbin "baserom.gba", 0x003d7ca8, 0x20
-
- .align 2
-gBattleAnimSpriteTemplate_83D7CC8:: @ 83D7CC8
- spr_template 10225, 10225, gOamData_837DF34, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80D2D68
-
- .align 2
-gSpriteAffineAnim_83D7CE0:: @ 83D7CE0
- obj_rot_scal_anim_frame 0x0, 0x0, 0, 5
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnim_83D7CF0:: @ 83D7CF0
- obj_rot_scal_anim_frame 0x0, 0x0, -8, 16
- obj_rot_scal_anim_end 1
-
- .align 2
-gSpriteAffineAnim_83D7D00:: @ 83D7D00
- obj_rot_scal_anim_frame 0x0, 0x0, 8, 16
- obj_rot_scal_anim_end 1
-
- .align 2
-gSpriteAffineAnimTable_83D7D10:: @ 83D7D10
- .4byte gSpriteAffineAnim_83D7CE0
- .4byte gSpriteAffineAnim_83D7CF0
- .4byte gSpriteAffineAnim_83D7D00
-
- .align 2
-gBattleAnimSpriteTemplate_83D7D1C:: @ 83D7D1C
- spr_template 10206, 10206, gOamData_837DF8C, gSpriteAnimTable_83D70D8, NULL, gSpriteAffineAnimTable_83D7D10, sub_80D2EC8
-
- .align 2
-gBattleAnimSpriteTemplate_83D7D34:: @ 83D7D34
- spr_template 10206, 10206, gOamData_837DF8C, gSpriteAnimTable_83D70D8, NULL, gSpriteAffineAnimTable_83D7D10, sub_80D2E68
-
- .align 2
-gSpriteAffineAnim_83D7D4C:: @ 83D7D4C
- obj_rot_scal_anim_frame 0x100, 0x100, 0, 0
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnim_83D7D5C:: @ 83D7D5C
- obj_rot_scal_anim_frame 0x200, 0x100, 0, 0
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnimTable_83D7D6C:: @ 83D7D6C
- .4byte gSpriteAffineAnim_83D7D4C
- .4byte gSpriteAffineAnim_83D7D5C
-
- .align 2
-gBattleAnimSpriteTemplate_83D7D74:: @ 83D7D74
- spr_template 10244, 10244, gOamData_837E13C, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83D7D6C, sub_80D3014
-
- .align 2
- .incbin "graphics/unknown/unknown_3D7D8C.4bpp"
- .incbin "graphics/unknown/unknown_3D810C.bin"
-
- .align 2
-gSpriteAnim_83D910C:: @ 83D910C
- obj_image_anim_frame 0, 2
- obj_image_anim_frame 8, 2
- obj_image_anim_frame 16, 2
- obj_image_anim_frame 24, 6
- obj_image_anim_frame 32, 2
- obj_image_anim_frame 40, 2
- obj_image_anim_frame 48, 2
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83D912C:: @ 83D912C
- .4byte gSpriteAnim_83D910C
-
- .align 2
-gSpriteTemplate_83D9130:: @ 83D9130
- spr_template 10115, 10115, gOamData_837DF74, gSpriteAnimTable_83D912C, NULL, gDummySpriteAffineAnimTable, sub_80D3184
-
- .align 2
-gSpriteAffineAnim_83D9148:: @ 83D9148
- obj_rot_scal_anim_frame 0xFFFB, 0xFFFB, 0, 10
- obj_rot_scal_anim_frame 0x5, 0x5, 0, 10
- obj_rot_scal_anim_jump 0
-
- .align 2
-gSpriteAffineAnimTable_83D9160:: @ 83D9160
- .4byte gSpriteAffineAnim_83D9148
-
- .align 2
-gSpriteAnim_83D9164:: @ 83D9164
- obj_image_anim_frame 0, 1
- obj_image_anim_frame 4, 5
- obj_image_anim_frame 8, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83D9174:: @ 83D9174
- .4byte gSpriteAnim_83D9164
-
- .align 2
-gBattleAnimSpriteTemplate_83D9178:: @ 83D9178
- spr_template 10146, 10146, gOamData_837E0AC, gSpriteAnimTable_83D9174, NULL, gSpriteAffineAnimTable_83D9160, sub_80D31C8
-
- .align 2
-gSpriteAnim_83D9190:: @ 83D9190
- obj_image_anim_frame 0, 1
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83D9198:: @ 83D9198
- obj_image_anim_frame 4, 1
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83D91A0:: @ 83D91A0
- .4byte gSpriteAnim_83D9190
- .4byte gSpriteAnim_83D9198
-
- .align 2
-gSpriteAffineAnim_83D91A8:: @ 83D91A8
- obj_rot_scal_anim_frame 0x0, 0x0, 0, 1
- obj_rot_scal_anim_frame 0x60, 0x60, 0, 1
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnimTable_83D91C0:: @ 83D91C0
- .4byte gSpriteAffineAnim_83D91A8
-
- .align 2
-gBattleAnimSpriteTemplate_83D91C4:: @ 83D91C4
- spr_template 10140, 10140, gOamData_837E024, gSpriteAnimTable_83D91A0, NULL, gSpriteAffineAnimTable_83D91C0, sub_80D33B4
-
- .align 2
-gSpriteAnim_83D91DC:: @ 83D91DC
- obj_image_anim_frame 0, 1
- obj_image_anim_frame 4, 1
- obj_image_anim_frame 8, 1
- obj_image_anim_frame 12, 1
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnimTable_83D91F0:: @ 83D91F0
- .4byte gSpriteAnim_83D91DC
-
- .align 2
-gBattleAnimSpriteTemplate_83D91F4:: @ 83D91F4
- spr_template 10149, 10149, gOamData_837E04C, gSpriteAnimTable_83D91F0, NULL, gDummySpriteAffineAnimTable, sub_80D3554
-
- .align 2
-gBattleAnimSpriteTemplate_83D920C:: @ 83D920C
- spr_template 10259, 10259, gOamData_837E04C, gSpriteAnimTable_83D91F0, NULL, gDummySpriteAffineAnimTable, sub_80D3554
-
- .align 2
-gBattleAnimSpriteTemplate_83D9224:: @ 83D9224
- spr_template 10264, 10264, gOamData_837DF24, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80D3554
-
- .align 2
-gBattleAnimSpriteTemplate_83D923C:: @ 83D923C
- spr_template 10265, 10265, gOamData_837DF24, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80D3554
-
- .align 2
-gSpriteAnim_83D9254:: @ 83D9254
- obj_image_anim_frame 16, 2
- obj_image_anim_frame 32, 2
- obj_image_anim_frame 48, 2
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnimTable_83D9264:: @ 83D9264
- .4byte gSpriteAnim_83D9254
-
- .align 2
-gBattleAnimSpriteTemplate_83D9268:: @ 83D9268
- spr_template 10029, 10029, gOamData_837DF34, gSpriteAnimTable_83D9264, NULL, gDummySpriteAffineAnimTable, sub_80D3554
-
- .align 2
-gBattleAnimSpriteTemplate_83D9280:: @ 83D9280
- spr_template 10165, 10165, gOamData_837E034, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83D752C, sub_80D3554
-
- .align 2
-gSpriteAffineAnim_83D9298:: @ 83D9298
- obj_rot_scal_anim_frame 0x3, 0x3, 10, 50
- obj_rot_scal_anim_frame 0x0, 0x0, 0, 10
- obj_rot_scal_anim_frame 0xFFEC, 0xFFEC, -10, 20
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnim_83D92B8:: @ 83D92B8
- obj_rot_scal_anim_frame 0x150, 0x150, 0, 0
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnimTable_83D92C8:: @ 83D92C8
- .4byte gSpriteAffineAnim_83D9298
-
- .align 2
-gSpriteAffineAnimTable_83D92CC:: @ 83D92CC
- .4byte gSpriteAffineAnim_83D92B8
-
- .align 2
-gBattleAnimSpriteTemplate_83D92D0:: @ 83D92D0
- spr_template 10149, 10149, gOamData_837E10C, gSpriteAnimTable_83D91F0, NULL, gSpriteAffineAnimTable_83D92C8, sub_80D3698
-
- .align 2
-gBattleAnimSpriteTemplate_83D92E8:: @ 83D92E8
- spr_template 10149, 10149, gOamData_837E10C, gSpriteAnimTable_83D91F0, NULL, gSpriteAffineAnimTable_83D92CC, sub_80D3728
-
- .align 2
-gSpriteAnim_83D9300:: @ 83D9300
- obj_image_anim_frame 0, 1
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83D9308:: @ 83D9308
- obj_image_anim_frame 4, 1
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83D9310:: @ 83D9310
- .4byte gSpriteAnim_83D9300
-
- .align 2
-gSpriteAnimTable_83D9314:: @ 83D9314
- .4byte gSpriteAnim_83D9308
-
- .align 2
-gBattleAnimSpriteTemplate_83D9318:: @ 83D9318
- spr_template 10155, 10155, gOamData_837E04C, gSpriteAnimTable_83D9310, NULL, gDummySpriteAffineAnimTable, sub_80794A8
-
- .align 2
-gBattleAnimSpriteTemplate_83D9330:: @ 83D9330
- spr_template 10155, 10155, gOamData_837E10C, gSpriteAnimTable_83D9314, NULL, gSpriteAffineAnimTable_83DA318, sub_80D37FC
-
- .align 2
-gBattleAnimSpriteTemplate_83D9348:: @ 83D9348
- spr_template 10141, 10141, gOamData_837DF24, gSpriteAnimTable_83D9BC8, NULL, gDummySpriteAffineAnimTable, sub_80D3838
-
- .align 2
-gBattleAnimSpriteTemplate_83D9360:: @ 83D9360
- spr_template 10155, 10155, gOamData_837DF24, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80D4044
-
- .align 2
-gSpriteTemplate_83D9378:: @ 83D9378
- spr_template 10268, 10268, gOamData_837DF24, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80D452C
-
- .align 2
-gSpriteAnim_83D9390:: @ 83D9390
- obj_image_anim_frame 8, 1
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83D9398:: @ 83D9398
- obj_image_anim_frame 9, 1
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83D93A0:: @ 83D93A0
- obj_image_anim_frame 4, 1
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83D93A8:: @ 83D93A8
- .4byte gSpriteAnim_83D9390
- .4byte gSpriteAnim_83D9398
-
- .align 2
-gSpriteAnimTable_83D93B0:: @ 83D93B0
- .4byte gSpriteAnim_83D93A0
-
- .align 2
-gSpriteAffineAnim_83D93B4:: @ 83D93B4
- obj_rot_scal_anim_frame 0x100, 0x100, 0, 0
- obj_rot_scal_anim_frame 0xFFF6, 0xFFF6, 0, 15
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnim_83D93CC:: @ 83D93CC
- obj_rot_scal_anim_frame 0xE0, 0xE0, 0, 0
- obj_rot_scal_anim_frame 0xFFF8, 0xFFF8, 0, 15
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnim_83D93E4:: @ 83D93E4
- obj_rot_scal_anim_frame 0x150, 0x150, 0, 0
- obj_rot_scal_anim_frame 0x0, 0x0, 0, 15
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnimTable_83D93FC:: @ 83D93FC
- .4byte gSpriteAffineAnim_83D93B4
- .4byte gSpriteAffineAnim_83D93CC
-
- .align 2
-gSpriteAffineAnimTable_83D9404:: @ 83D9404
- .4byte gSpriteAffineAnim_83D93E4
-
- .align 2
-gBattleAnimSpriteTemplate_83D9408:: @ 83D9408
- spr_template 10155, 10155, gOamData_837DF24, gSpriteAnimTable_83D93A8, NULL, gDummySpriteAffineAnimTable, sub_80D4BF0
-
- .align 2
-gSpriteTemplate_83D9420:: @ 83D9420
- spr_template 10155, 10155, gOamData_837DF84, gSpriteAnimTable_83D93A8, NULL, gSpriteAffineAnimTable_83D93FC, sub_80D4C64
-
- .align 2
-gBattleAnimSpriteTemplate_83D9438:: @ 83D9438
- spr_template 10155, 10155, gOamData_837DF8C, gSpriteAnimTable_83D93B0, NULL, gSpriteAffineAnimTable_83D9404, sub_807A9BC
-
- .align 2
-gSpriteAnim_83D9450:: @ 83D9450
- obj_image_anim_frame 16, 4
- obj_image_anim_frame 32, 4
- obj_image_anim_frame 48, 4
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnim_83D9460:: @ 83D9460
- obj_image_anim_frame 16, 4, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 32, 4, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 48, 4, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnimTable_83D9470:: @ 83D9470
- .4byte gSpriteAnim_83D9450
- .4byte gSpriteAnim_83D9460
-
- .align 2
-gBattleAnimSpriteTemplate_83D9478:: @ 83D9478
- spr_template 10029, 10029, gOamData_837DF34, gSpriteAnimTable_83D9470, NULL, gDummySpriteAffineAnimTable, sub_80D4ED8
-
- .align 2
-gBattleAnimSpriteTemplate_83D9490:: @ 83D9490
- spr_template 10029, 10029, gOamData_837DF34, gSpriteAnimTable_83D9470, NULL, gDummySpriteAffineAnimTable, sub_80D4F18
-
- .align 2
-gSpriteAnim_83D94A8:: @ 83D94A8
- obj_image_anim_frame 0, 3
- obj_image_anim_frame 16, 3
- obj_image_anim_frame 32, 3
- obj_image_anim_frame 48, 3
- obj_image_anim_frame 64, 3
- obj_image_anim_frame 80, 3
- obj_image_anim_frame 96, 3
- obj_image_anim_frame 112, 3
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnimTable_83D94CC:: @ 83D94CC
- .4byte gSpriteAnim_83D94A8
-
- .align 2
-gSpriteAnim_83D94D0:: @ 83D94D0
- obj_image_anim_frame 0, 5
- obj_image_anim_frame 16, 5
- obj_image_anim_frame 32, 5
- obj_image_anim_frame 48, 5
- obj_image_anim_frame 64, 5
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnimTable_83D94E8:: @ 83D94E8
- .4byte gSpriteAnim_83D94D0
-
- .align 2
-gSpriteAffineAnim_83D94EC:: @ 83D94EC
- obj_rot_scal_anim_frame 0x32, 0x100, 0, 0
- obj_rot_scal_anim_frame 0x20, 0x0, 0, 7
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnimTable_83D9504:: @ 83D9504
- .4byte gSpriteAffineAnim_83D94EC
-
- .align 2
-gBattleAnimSpriteTemplate_83D9508:: @ 83D9508
- spr_template 10033, 10033, gOamData_837DF94, gSpriteAnimTable_83D94CC, NULL, gSpriteAffineAnimTable_83D9504, sub_80D4FCC
-
- .align 2
-gBattleAnimSpriteTemplate_83D9520:: @ 83D9520
- spr_template 10033, 10033, gOamData_837DF34, gSpriteAnimTable_83D94CC, NULL, gDummySpriteAffineAnimTable, sub_80D4FCC
-
- .align 2
-gBattleAnimSpriteTemplate_83D9538:: @ 83D9538
- spr_template 10035, 10035, gOamData_837DF34, gSpriteAnimTable_83D94E8, NULL, gDummySpriteAffineAnimTable, sub_80D4F5C
-
- .align 2
-gSpriteTemplate_83D9550:: @ 83D9550
- spr_template 10029, 10029, gOamData_837DF34, gSpriteAnimTable_83D94E8, NULL, gDummySpriteAffineAnimTable, sub_80D4F5C
-
- .align 2
-gSpriteAnim_83D9568:: @ 83D9568
- obj_image_anim_frame 16, 6
- obj_image_anim_frame 32, 6
- obj_image_anim_frame 48, 6
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnimTable_83D9578:: @ 83D9578
- .4byte gSpriteAnim_83D9568
-
- .align 2
-gSpriteTemplate_83D957C:: @ 83D957C
- spr_template 10029, 10029, gOamData_837DF34, gSpriteAnimTable_83D9578, NULL, gDummySpriteAffineAnimTable, sub_80D5074
-
- .align 2
-gSpriteAffineAnim_83D9594:: @ 83D9594
- obj_rot_scal_anim_frame 0x50, 0x50, 0, 0
- obj_rot_scal_anim_frame 0x2, 0x2, 10, 1
- obj_rot_scal_anim_jump 1
-
- .align 2
-gSpriteAffineAnimTable_83D95AC:: @ 83D95AC
- .4byte gSpriteAffineAnim_83D9594
-
- .align 2
-gBattleAnimSpriteTemplate_83D95B0:: @ 83D95B0
- spr_template 10157, 10157, gOamData_837E0B4, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83D95AC, sub_80D517C
-
- .align 2
-gSpriteAnim_83D95C8:: @ 83D95C8
- obj_image_anim_frame 0, 4
- obj_image_anim_frame 16, 4
- obj_image_anim_frame 32, 4
- obj_image_anim_frame 48, 4
- obj_image_anim_frame 64, 4
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnimTable_83D95E0:: @ 83D95E0
- .4byte gSpriteAnim_83D95C8
-
- .align 2
-gBattleAnimSpriteTemplate_83D95E4:: @ 83D95E4
- spr_template 10029, 10029, gOamData_837DF34, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_807941C
-
- .align 2
-gBattleAnimSpriteTemplate_83D95FC:: @ 83D95FC
- spr_template 10029, 10029, gOamData_837DF34, gSpriteAnimTable_83D95E0, NULL, gDummySpriteAffineAnimTable, sub_80D51A8
-
- .align 2
-gBattleAnimSpriteTemplate_83D9614:: @ 83D9614
- spr_template 10029, 10029, gOamData_837DF34, gSpriteAnimTable_83D95E0, NULL, gDummySpriteAffineAnimTable, sub_80D5210
-
- .align 2
-gBattleAnimSpriteTemplate_83D962C:: @ 83D962C
- spr_template 10029, 10029, gOamData_837DF34, gSpriteAnimTable_83D95E0, NULL, gDummySpriteAffineAnimTable, sub_80D522C
-
- .align 2
-gSpriteAnim_83D9644:: @ 83D9644
- obj_image_anim_frame 32, 6
- obj_image_anim_frame 48, 6
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnimTable_83D9650:: @ 83D9650
- .4byte gSpriteAnim_83D9644
-
- .align 2
-gSpriteAffineAnim_83D9654:: @ 83D9654
- obj_rot_scal_anim_frame 0x0, 0x0, 0, 1
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnim_83D9664:: @ 83D9664
- obj_rot_scal_anim_frame 0xA0, 0xA0, 0, 0
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnimTable_83D9674:: @ 83D9674
- .4byte gSpriteAffineAnim_83D9654
- .4byte gSpriteAffineAnim_83D9664
-
- .align 2
-gBattleAnimSpriteTemplate_83D967C:: @ 83D967C
- spr_template 10029, 10029, gOamData_837DF34, gSpriteAnimTable_83D9650, NULL, gDummySpriteAffineAnimTable, sub_80D5374
-
- .align 2
-gBattleAnimSpriteTemplate_83D9694:: @ 83D9694
- spr_template 10029, 10029, gOamData_837DF34, gSpriteAnimTable_83D95E0, NULL, gDummySpriteAffineAnimTable, sub_80D53B4
-
- .align 2
-gBattleAnimSpriteTemplate_83D96AC:: @ 83D96AC
- spr_template 10029, 10029, gOamData_837DF34, gSpriteAnimTable_83D95E0, NULL, gDummySpriteAffineAnimTable, sub_807A9BC
-
- .align 2
-gSpriteTemplate_83D96C4:: @ 83D96C4
- spr_template 10201, 10201, gOamData_837DF2C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80D58FC
-
- .align 1
-gUnknown_083D96DC:: @ 83D96DC
- .2byte -2, -5
- .2byte -1, -1
- .2byte 3, -6
- .2byte 4, -2
- .2byte 2, -8
- .2byte -5, -5
- .2byte 4, -7
-
- .align 2
-gBattleAnimSpriteTemplate_83D96F8:: @ 83D96F8
- spr_template 10201, 10201, gOamData_837DF34, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80D5A20
-
- .align 2
-gSpriteAnim_83D9710:: @ 83D9710
- obj_image_anim_frame 0, 5
- obj_image_anim_frame 4, 5
- obj_image_anim_frame 8, 5
- obj_image_anim_frame 12, 5
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnim_83D9724:: @ 83D9724
- obj_image_anim_frame 16, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83D972C:: @ 83D972C
- obj_image_anim_frame 20, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83D9734:: @ 83D9734
- obj_image_anim_frame 20, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83D973C:: @ 83D973C
- .4byte gSpriteAnim_83D9710
- .4byte gSpriteAnim_83D9724
- .4byte gSpriteAnim_83D972C
- .4byte gSpriteAnim_83D9734
-
- .align 2
-gBattleAnimSpriteTemplate_83D974C:: @ 83D974C
- spr_template 10231, 10231, gOamData_837DF2C, gSpriteAnimTable_83D973C, NULL, gDummySpriteAffineAnimTable, sub_80D5B0C
-
- .align 2
-gSpriteAnim_83D9764:: @ 83D9764
- obj_image_anim_frame 0, 5
- obj_image_anim_frame 16, 5
- obj_image_anim_frame 32, 5
- obj_image_anim_frame 48, 5
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnimTable_83D9778:: @ 83D9778
- .4byte gSpriteAnim_83D9764
-
- .align 2
-gBattleAnimSpriteTemplate_83D977C:: @ 83D977C
- spr_template 10232, 10232, gOamData_837DF34, gSpriteAnimTable_83D9778, NULL, gDummySpriteAffineAnimTable, sub_80D5CC0
-
- .align 2
-gUnknown_083D9794:: @ 83D9794
- .incbin "baserom.gba", 0x003d9794, 0x10
-
-gUnknown_083D97A4:: @ 83D97A4
- .incbin "baserom.gba", 0x003d97a4, 0x10
-
- .align 2
-gSpriteAnim_83D97B4:: @ 83D97B4
- obj_image_anim_frame 0, 5
- obj_image_anim_frame 16, 5
- obj_image_anim_frame 32, 8
- obj_image_anim_frame 48, 5
- obj_image_anim_frame 64, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83D97CC:: @ 83D97CC
- .4byte gSpriteAnim_83D97B4
-
- .align 2
-gBattleAnimSpriteTemplate_83D97D0:: @ 83D97D0
- spr_template 10037, 10037, gOamData_837DF34, gSpriteAnimTable_83D97CC, NULL, gDummySpriteAffineAnimTable, sub_80D61C8
-
- .align 2
-gSpriteAffineAnim_83D97E8:: @ 83D97E8
- obj_rot_scal_anim_frame 0x100, 0x100, 0, 0
- obj_rot_scal_anim_frame 0x0, 0x0, 0, 20
- obj_rot_scal_anim_frame 0x0, 0x0, -16, 60
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnimTable_83D9808:: @ 83D9808
- .4byte gSpriteAffineAnim_83D97E8
-
- .align 2
-gSpriteTemplate_83D980C:: @ 83D980C
- spr_template 10143, 10143, gOamData_837DF94, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83D9808, sub_80D6234
-
- .align 2
-gSpriteAnim_83D9824:: @ 83D9824
- obj_image_anim_frame 0, 5
- obj_image_anim_frame 16, 5
- obj_image_anim_frame 32, 5
- obj_image_anim_frame 48, 5
- obj_image_anim_frame 64, 5
- obj_image_anim_frame 80, 5
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnimTable_83D9840:: @ 83D9840
- .4byte gSpriteAnim_83D9824
-
- .align 2
-gSpriteTemplate_83D9844:: @ 83D9844
- spr_template 10079, 10079, gOamData_837DF34, gSpriteAnimTable_83D9840, NULL, gDummySpriteAffineAnimTable, sub_80D6294
-
- .align 2
-gBattleAnimSpriteTemplate_83D985C:: @ 83D985C
- spr_template 10011, 10011, gOamData_837DF8C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80D6328
-
- .align 2
-gBattleAnimSpriteTemplate_83D9874:: @ 83D9874
- spr_template 10171, 10171, gOamData_837DF2C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_807941C
-
- .align 2
-gSpriteAffineAnim_83D988C:: @ 83D988C
- obj_rot_scal_anim_frame 0x0, 0x0, 20, 1
- obj_rot_scal_anim_jump 0
-
- .align 2
-gSpriteAffineAnimTable_83D989C:: @ 83D989C
- .4byte gSpriteAffineAnim_83D988C
-
- .align 2
-gBattleAnimSpriteTemplate_83D98A0:: @ 83D98A0
- spr_template 10011, 10011, gOamData_837DF8C, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83D989C, sub_80D648C
-
- .align 2
-gSpriteAnim_83D98B8:: @ 83D98B8
- obj_image_anim_frame 0, 6
- obj_image_anim_frame 16, 6
- obj_image_anim_frame 32, 6
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnimTable_83D98C8:: @ 83D98C8
- .4byte gSpriteAnim_83D98B8
-
- .align 2
-gSpriteAffineAnim_83D98CC:: @ 83D98CC
- obj_rot_scal_anim_frame 0xE8, 0xE8, 0, 0
- obj_rot_scal_anim_frame 0xFFF8, 0xFFF8, 0, 10
- obj_rot_scal_anim_frame 0x8, 0x8, 0, 10
- obj_rot_scal_anim_jump 1
-
- .align 2
-gSpriteAffineAnimTable_83D98EC:: @ 83D98EC
- .4byte gSpriteAffineAnim_83D98CC
-
- .align 2
-gBattleAnimSpriteTemplate_83D98F0:: @ 83D98F0
- spr_template 10282, 10282, gOamData_837DF94, gSpriteAnimTable_83D98C8, NULL, gSpriteAffineAnimTable_83D98EC, sub_80D65DC
-
- .align 2
-gBattleAnimSpriteTemplate_83D9908:: @ 83D9908
- spr_template 10011, 10011, gOamData_837DF8C, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83D989C, sub_80D6658
-
- .align 2
-gBattleAnimSpriteTemplate_83D9920:: @ 83D9920
- spr_template 10011, 10011, gOamData_837DF2C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80D679C
-
- .align 2
-gSpriteTemplate_83D9938:: @ 83D9938
- spr_template 10001, 10001, gOamData_837DF24, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80D6A1C
-
- .align 2
-gBattleAnimSpriteTemplate_83D9950:: @ 83D9950
- spr_template 10173, 10173, gOamData_837DF54, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80D6A6C
-
- .align 2
-gUnknown_083D9968:: @ 83D9968
- .incbin "baserom.gba", 0x003d9968, 0x20
-
- .align 2
-gSpriteAnim_83D9988:: @ 83D9988
- obj_image_anim_frame 3, 1
- obj_image_anim_frame 2, 1
- obj_image_anim_frame 1, 1
- obj_image_anim_frame 0, 1
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83D999C:: @ 83D999C
- obj_image_anim_frame 0, 5
- obj_image_anim_frame 1, 5
- obj_image_anim_frame 2, 5
- obj_image_anim_frame 3, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83D99B0:: @ 83D99B0
- .4byte gSpriteAnim_83D9988
- .4byte gSpriteAnim_83D999C
-
- .align 2
-gSpriteTemplate_83D99B8:: @ 83D99B8
- spr_template 10211, 10211, gOamData_837DF24, gSpriteAnimTable_83D99B0, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-gSpriteAffineAnim_83D99D0:: @ 83D99D0
- obj_rot_scal_anim_frame 0x10, 0x10, 0, 0
- obj_rot_scal_anim_frame 0x4, 0x4, 0, 60
- obj_rot_scal_anim_frame 0x100, 0x100, 0, 0
- obj_rot_scal_anim_loop 0
- obj_rot_scal_anim_frame 0xFFFC, 0xFFFC, 0, 5
- obj_rot_scal_anim_frame 0x4, 0x4, 0, 5
- obj_rot_scal_anim_loop 10
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnim_83D9A10:: @ 83D9A10
- obj_rot_scal_anim_frame 0x10, 0x10, 0, 0
- obj_rot_scal_anim_frame 0x8, 0x8, 0, 30
- obj_rot_scal_anim_frame 0x100, 0x100, 0, 0
- obj_rot_scal_anim_frame 0xFFFC, 0xFFFC, 0, 5
- obj_rot_scal_anim_frame 0x4, 0x4, 0, 5
- obj_rot_scal_anim_jump 3
-
- .align 2
-gSpriteAffineAnim_83D9A40:: @ 83D9A40
- obj_rot_scal_anim_frame 0x10, 0x10, 0, 0
- obj_rot_scal_anim_frame 0x8, 0x8, 0, 30
- obj_rot_scal_anim_frame 0xFFF8, 0xFFF8, 0, 30
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnimTable_83D9A60:: @ 83D9A60
- .4byte gSpriteAffineAnim_83D99D0
- .4byte gSpriteAffineAnim_83D9A10
- .4byte gSpriteAffineAnim_83D9A40
-
- .align 2
-gBattleAnimSpriteTemplate_83D9A6C:: @ 83D9A6C
- spr_template 10212, 10212, gOamData_837E0BC, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83D9A60, sub_80D6D18
-
- .align 2
-gSpriteAnim_83D9A84:: @ 83D9A84
- obj_image_anim_frame 0, 3
- obj_image_anim_frame 16, 3
- obj_image_anim_frame 32, 3
- obj_image_anim_frame 48, 3
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83D9A98:: @ 83D9A98
- .4byte gSpriteAnim_83D9A84
-
- .align 2
-gBattleAnimSpriteTemplate_83D9A9C:: @ 83D9A9C
- spr_template 10213, 10213, gOamData_837DF34, gSpriteAnimTable_83D9A98, NULL, gDummySpriteAffineAnimTable, sub_80D6D70
-
- .align 2
-gBattleAnimSpriteTemplate_83D9AB4:: @ 83D9AB4
- spr_template 10212, 10212, gOamData_837E0BC, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83D9A60, sub_80D6DD8
-
- .align 2
-gSpriteAnim_83D9ACC:: @ 83D9ACC
- obj_image_anim_frame 0, 3
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83D9AD4:: @ 83D9AD4
- obj_image_anim_frame 2, 3
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83D9ADC:: @ 83D9ADC
- obj_image_anim_frame 4, 3
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83D9AE4:: @ 83D9AE4
- obj_image_anim_frame 6, 3
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83D9AEC:: @ 83D9AEC
- .4byte gSpriteAnim_83D9ACC
- .4byte gSpriteAnim_83D9AD4
- .4byte gSpriteAnim_83D9ADC
- .4byte gSpriteAnim_83D9AE4
-
- .align 2
-gSpriteAffineAnim_83D9AFC:: @ 83D9AFC
- obj_rot_scal_anim_frame 0x100, 0x100, 64, 0
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnimTable_83D9B0C:: @ 83D9B0C
- .4byte gSpriteAffineAnim_83D9AFC
-
- .align 2
-gSpriteTemplate_83D9B10:: @ 83D9B10
- spr_template 10001, 10001, gOamData_837E024, gSpriteAnimTable_83D9AEC, NULL, gSpriteAffineAnimTable_83D9B0C, sub_80D7230
-
- .align 2
-gBattleAnimSpriteTemplate_83D9B28:: @ 83D9B28
- spr_template 10212, 10212, gOamData_837E0BC, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83D9A60, sub_80D727C
-
- .align 2
-gSpriteTemplate_83D9B40:: @ 83D9B40
- spr_template 10001, 10001, gOamData_837DF24, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80D755C
-
- .align 2
-gSpriteAnim_83D9B58:: @ 83D9B58
- obj_image_anim_frame 0, 5, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 1, 5, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnimTable_83D9B64:: @ 83D9B64
- .4byte gSpriteAnim_83D9B58
-
- .align 2
-gSpriteTemplate_83D9B68:: @ 83D9B68
- spr_template 10141, 10141, gOamData_837DF24, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80D7704
-
- .align 2
-gSpriteAnim_83D9B80:: @ 83D9B80
- obj_image_anim_frame 0, 1
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83D9B88:: @ 83D9B88
- obj_image_anim_frame 4, 1
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83D9B90:: @ 83D9B90
- obj_image_anim_frame 6, 1
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83D9B98:: @ 83D9B98
- obj_image_anim_frame 7, 1
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83D9BA0:: @ 83D9BA0
- obj_image_anim_frame 8, 1
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83D9BA8:: @ 83D9BA8
- obj_image_anim_frame 12, 6
- obj_image_anim_frame 13, 6
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnimTable_83D9BB4:: @ 83D9BB4
- .4byte gSpriteAnim_83D9B80
-
- .align 2
-gSpriteAnimTable_83D9BB8:: @ 83D9BB8
- .4byte gSpriteAnim_83D9B88
-
- .align 2
-gSpriteAnimTable_83D9BBC:: @ 83D9BBC
- .4byte gSpriteAnim_83D9B90
-
- .align 2
-gSpriteAnimTable_83D9BC0:: @ 83D9BC0
- .4byte gSpriteAnim_83D9B98
-
- .align 2
-gSpriteAnimTable_83D9BC4:: @ 83D9BC4
- .4byte gSpriteAnim_83D9BA0
-
- .align 2
-gSpriteAnimTable_83D9BC8:: @ 83D9BC8
- .4byte gSpriteAnim_83D9BA8
-
- .align 2
-gSpriteAffineAnim_83D9BCC:: @ 83D9BCC
- obj_rot_scal_anim_frame 0x0, 0x0, 40, 1
- obj_rot_scal_anim_jump 0
-
- .align 2
-gSpriteAffineAnimTable_83D9BDC:: @ 83D9BDC
- .4byte gSpriteAffineAnim_83D9BCC
-
- .align 2
-gBattleAnimSpriteTemplate_83D9BE0:: @ 83D9BE0
- spr_template 10141, 10141, gOamData_837E144, gSpriteAnimTable_83D9BB8, NULL, gSpriteAffineAnimTable_83D9BDC, sub_80D78EC
-
- .align 2
-gBattleAnimSpriteTemplate_83D9BF8:: @ 83D9BF8
- spr_template 10141, 10141, gOamData_837E044, gSpriteAnimTable_83D9BBC, NULL, gDummySpriteAffineAnimTable, sub_80D78EC
-
- .align 2
-gSpriteAffineAnim_83D9C10:: @ 83D9C10
- obj_rot_scal_anim_frame 0x0, 0x0, 10, 1
- obj_rot_scal_anim_jump 0
-
- .align 2
-gSpriteAffineAnimTable_83D9C20:: @ 83D9C20
- .4byte gSpriteAffineAnim_83D9C10
-
- .align 2
-gBattleAnimSpriteTemplate_83D9C24:: @ 83D9C24
- spr_template 10141, 10141, gOamData_837E0E4, gSpriteAnimTable_83D9BB8, NULL, gSpriteAffineAnimTable_83D9C20, sub_80D792C
-
- .align 2
-gBattleAnimSpriteTemplate_83D9C3C:: @ 83D9C3C
- spr_template 10141, 10141, gOamData_837E044, gSpriteAnimTable_83D9BBC, NULL, gDummySpriteAffineAnimTable, sub_80D792C
-
- .align 2
-gSpriteAffineAnim_83D9C54:: @ 83D9C54
- obj_rot_scal_anim_frame 0xCE, 0xCE, 0, 0
- obj_rot_scal_anim_frame 0x5, 0x5, 0, 10
- obj_rot_scal_anim_frame 0x0, 0x0, 0, 6
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnimTable_83D9C74:: @ 83D9C74
- .4byte gSpriteAffineAnim_83D9C54
-
- .align 2
-gBattleAnimSpriteTemplate_83D9C78:: @ 83D9C78
- spr_template 10141, 10141, gOamData_837E0E4, gSpriteAnimTable_83D9BB8, NULL, gSpriteAffineAnimTable_83D9C74, sub_80D79B4
-
- .align 2
-gBattleAnimSpriteTemplate_83D9C90:: @ 83D9C90
- spr_template 10141, 10141, gOamData_837E0A4, gSpriteAnimTable_83D9BBC, NULL, gSpriteAffineAnimTable_83D9C74, sub_80D79B4
-
- .align 2
-gBattleAnimSpriteTemplate_83D9CA8:: @ 83D9CA8
- spr_template 10141, 10141, gOamData_837DF24, gSpriteAnimTable_83D9BC0, NULL, gDummySpriteAffineAnimTable, sub_80D7A64
-
- .align 2
-gBattleAnimSpriteTemplate_83D9CC0:: @ 83D9CC0
- spr_template 10141, 10141, gOamData_837DF2C, gSpriteAnimTable_83D9BC4, NULL, gDummySpriteAffineAnimTable, sub_80D7CD4
-
- .align 2
-gBattleAnimSpriteTemplate_83D9CD8:: @ 83D9CD8
- spr_template 10141, 10141, gOamData_837DF24, gSpriteAnimTable_83D9BC0, NULL, gDummySpriteAffineAnimTable, sub_80D7CD4
-
- .align 2
-gSpriteAnim_83D9CF0:: @ 83D9CF0
- obj_image_anim_frame 0, 5
- obj_image_anim_frame 2, 5
- obj_image_anim_frame 4, 5
- obj_image_anim_frame 6, 5
- obj_image_anim_frame 4, 5
- obj_image_anim_frame 2, 5
- obj_image_anim_frame 0, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83D9D10:: @ 83D9D10
- .4byte gSpriteAnim_83D9CF0
-
- .align 2
-gBattleAnimSpriteTemplate_83D9D14:: @ 83D9D14
- spr_template 10142, 10142, gOamData_837E084, gSpriteAnimTable_83D9D10, NULL, gDummySpriteAffineAnimTable, sub_80D7E88
-
- .align 2
-gSpriteAnim_83D9D2C:: @ 83D9D2C
- obj_image_anim_frame 0, 8
- obj_image_anim_frame 8, 8
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnimTable_83D9D38:: @ 83D9D38
- .4byte gSpriteAnim_83D9D2C
-
- .align 2
-gBattleAnimSpriteTemplate_83D9D3C:: @ 83D9D3C
- spr_template 10144, 10144, gOamData_837E074, gSpriteAnimTable_83D9D38, NULL, gDummySpriteAffineAnimTable, sub_80D7F10
-
- .align 2
-gBattleAnimSpriteTemplate_83D9D54:: @ 83D9D54
- spr_template 10172, 10172, gOamData_837E074, gSpriteAnimTable_83D9D38, NULL, gDummySpriteAffineAnimTable, sub_80D7F10
-
- .align 2
-gUnknown_083D9D6C:: @ 83D9D6C
- .incbin "baserom.gba", 0x003d9d6c, 0x14
-
- .align 2
-gBattleAnimSpriteTemplate_83D9D80:: @ 83D9D80
- spr_template 10155, 10155, gOamData_837DF2C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80D83E0
-
- .align 2
-gUnknown_083D9D98:: @ 83D9D98
- .incbin "baserom.gba", 0x003d9d98, 0x14
-
- .align 2
-gBattleAnimSpriteTemplate_83D9DAC:: @ 83D9DAC
- spr_template 10172, 10172, gOamData_837E074, gSpriteAnimTable_83D9D38, NULL, gDummySpriteAffineAnimTable, sub_80D8700
-
- .align 2
-gUnknown_083D9DC4:: @ 83D9DC4
- .incbin "baserom.gba", 0x003d9dc4, 0x28
-
- .align 2
-gSpriteAffineAnim_83D9DEC:: @ 83D9DEC
- obj_rot_scal_anim_frame 0x100, 0x100, 0, 0
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnim_83D9DFC:: @ 83D9DFC
- obj_rot_scal_anim_frame 0xF0, 0xF0, 0, 0
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnim_83D9E0C:: @ 83D9E0C
- obj_rot_scal_anim_frame 0xE0, 0xE0, 0, 0
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnim_83D9E1C:: @ 83D9E1C
- obj_rot_scal_anim_frame 0x150, 0x150, 0, 0
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnimTable_83D9E2C:: @ 83D9E2C
- .4byte gSpriteAffineAnim_83D9DEC
- .4byte gSpriteAffineAnim_83D9DFC
- .4byte gSpriteAffineAnim_83D9E0C
-
- .align 2
-gSpriteAffineAnimTable_83D9E38:: @ 83D9E38
- .4byte gSpriteAffineAnim_83D9E1C
-
- .align 2
-gSpriteTemplate_83D9E3C:: @ 83D9E3C
- spr_template 10263, 10263, gOamData_837DF8C, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83D9E2C, sub_80D8D1C
-
- .align 2
-gBattleAnimSpriteTemplate_83D9E54:: @ 83D9E54
- spr_template 10263, 10263, gOamData_837DF8C, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83D9E38, sub_807A9BC
-
- .align 2
-gSpriteAnim_83D9E6C:: @ 83D9E6C
- obj_image_anim_frame 0, 1
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83D9E74:: @ 83D9E74
- obj_image_anim_frame 16, 4
- obj_image_anim_frame 32, 4
- obj_image_anim_frame 48, 4
- obj_image_anim_frame 64, 4
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83D9E88:: @ 83D9E88
- .4byte gSpriteAnim_83D9E6C
- .4byte gSpriteAnim_83D9E74
-
- .align 2
-gSpriteAffineAnim_83D9E90:: @ 83D9E90
- obj_rot_scal_anim_frame 0xE0, 0xE0, 0, 0
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnim_83D9EA0:: @ 83D9EA0
- obj_rot_scal_anim_frame 0x118, 0x118, 0, 0
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnim_83D9EB0:: @ 83D9EB0
- obj_rot_scal_anim_frame 0x150, 0x150, 0, 0
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnim_83D9EC0:: @ 83D9EC0
- obj_rot_scal_anim_frame 0x180, 0x180, 0, 0
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnim_83D9ED0:: @ 83D9ED0
- obj_rot_scal_anim_frame 0x1C0, 0x1C0, 0, 0
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnimTable_83D9EE0:: @ 83D9EE0
- .4byte gSpriteAffineAnim_83D9E90
- .4byte gSpriteAffineAnim_83D9EA0
- .4byte gSpriteAffineAnim_83D9EB0
- .4byte gSpriteAffineAnim_83D9EC0
- .4byte gSpriteAffineAnim_83D9ED0
-
- .align 2
-gBattleAnimSpriteTemplate_83D9EF4:: @ 83D9EF4
- spr_template 10043, 10043, gOamData_837DFF4, gSpriteAnimTable_83D9E88, NULL, gSpriteAffineAnimTable_83D9EE0, unc_080B06FC
-
- .align 2
-gBattleAnimSpriteTemplate_83D9F0C:: @ 83D9F0C
- spr_template 10141, 10141, gOamData_837DF24, gSpriteAnimTable_83D9BBC, NULL, gDummySpriteAffineAnimTable, sub_80D8F10
-
- .align 2
-gSpriteTemplate_83D9F24:: @ 83D9F24
- spr_template 10050, 10050, gOamData_837DF34, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, unc_080B08A0
-
- .align 2
-gSpriteAnim_83D9F3C:: @ 83D9F3C
- obj_image_anim_frame 0, 1
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83D9F44:: @ 83D9F44
- obj_image_anim_frame 16, 1
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83D9F4C:: @ 83D9F4C
- obj_image_anim_frame 32, 1
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83D9F54:: @ 83D9F54
- obj_image_anim_frame 48, 1
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83D9F5C:: @ 83D9F5C
- obj_image_anim_frame 48, 1, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83D9F64:: @ 83D9F64
- .4byte gSpriteAnim_83D9F3C
-
- .align 2
-gSpriteAnimTable_83D9F68:: @ 83D9F68
- .4byte gSpriteAnim_83D9F44
- .4byte gSpriteAnim_83D9F4C
-
- .align 2
-gSpriteAnimTable_83D9F70:: @ 83D9F70
- .4byte gSpriteAnim_83D9F54
- .4byte gSpriteAnim_83D9F5C
-
- .align 2
-gBattleAnimSpriteTemplate_83D9F78:: @ 83D9F78
- spr_template 10143, 10143, gOamData_837DF34, gSpriteAnimTable_83D9F64, NULL, gDummySpriteAffineAnimTable, sub_80D902C
-
- .align 2
-gBattleAnimSpriteTemplate_83D9F90:: @ 83D9F90
- spr_template 10143, 10143, gOamData_837DF34, gSpriteAnimTable_83D9F64, NULL, gDummySpriteAffineAnimTable, sub_80D9078
-
- .align 2
-gBattleAnimSpriteTemplate_83D9FA8:: @ 83D9FA8
- spr_template 10143, 10143, gOamData_837DF34, gSpriteAnimTable_83D9F64, NULL, gDummySpriteAffineAnimTable, sub_80D90A4
-
- .align 2
-gBattleAnimSpriteTemplate_83D9FC0:: @ 83D9FC0
- spr_template 10143, 10143, gOamData_837DF34, gSpriteAnimTable_83D9F64, NULL, gDummySpriteAffineAnimTable, sub_80D90F4
-
- .align 2
-gBattleAnimSpriteTemplate_83D9FD8:: @ 83D9FD8
- spr_template 10143, 10143, gOamData_837DF34, gSpriteAnimTable_83D9F70, NULL, gDummySpriteAffineAnimTable, sub_80D92D0
-
- .align 2
-gBattleAnimSpriteTemplate_83D9FF0:: @ 83D9FF0
- spr_template 10143, 10143, gOamData_837DF34, gSpriteAnimTable_83D9F68, NULL, gDummySpriteAffineAnimTable, sub_80D9378
-
- .align 2
-gSpriteAffineAnim_83DA008:: @ 83DA008
- obj_rot_scal_anim_frame 0x100, 0x100, 0, 0
- obj_rot_scal_anim_frame 0xFFF8, 0xFFF8, 20, 1
- obj_rot_scal_anim_jump 1
-
- .align 2
-gSpriteAffineAnimTable_83DA020:: @ 83DA020
- .4byte gSpriteAffineAnim_83DA008
-
- .align 2
-gBattleAnimSpriteTemplate_83DA024:: @ 83DA024
- spr_template 10143, 10143, gOamData_837DFF4, gSpriteAnimTable_83D9F64, NULL, gSpriteAffineAnimTable_83DA020, sub_80D943C
-
- .align 2
-gSpriteAffineAnim_83DA03C:: @ 83DA03C
- obj_rot_scal_anim_frame 0x100, 0x100, 0, 0
- obj_rot_scal_anim_frame 0xFFFC, 0xFFFC, 20, 1
- obj_rot_scal_anim_jump 1
-
- .align 2
-gSpriteAffineAnimTable_83DA054:: @ 83DA054
- .4byte gSpriteAffineAnim_83DA03C
-
- .align 2
-gBattleAnimSpriteTemplate_83DA058:: @ 83DA058
- spr_template 10143, 10143, gOamData_837DFF4, gSpriteAnimTable_83D9F64, NULL, gSpriteAffineAnimTable_83DA054, sub_80D943C
-
- .align 2
-gBattleAnimSpriteTemplate_83DA070:: @ 83DA070
- spr_template 10143, 10143, gOamData_837DF34, gSpriteAnimTable_83D9F68, NULL, gDummySpriteAffineAnimTable, sub_80D94A8
-
- .align 2
-gBattleAnimSpriteTemplate_83DA088:: @ 83DA088
- spr_template 10073, 10073, gOamData_837DF2C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80D9540
-
- .align 2
-gBattleAnimSpriteTemplate_83DA0A0:: @ 83DA0A0
- spr_template 10167, 10167, gOamData_837E05C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80D95D0
-
- .align 2
-gBattleAnimSpriteTemplate_83DA0B8:: @ 83DA0B8
- spr_template 10208, 10208, gOamData_837DF34, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80D96B8
-
- .align 2
-gSpriteAffineAnim_83DA0D0:: @ 83DA0D0
- obj_rot_scal_anim_frame 0x20, 0x20, 0, 0
- obj_rot_scal_anim_frame 0x4, 0x4, 0, 64
- obj_rot_scal_anim_frame 0xFFFA, 0xFFFA, 0, 8
- obj_rot_scal_anim_frame 0x6, 0x6, 0, 8
- obj_rot_scal_anim_jump 2
-
- .align 2
-gSpriteAffineAnimTable_83DA0F8:: @ 83DA0F8
- .4byte gSpriteAffineAnim_83DA0D0
-
- .align 2
-gBattleAnimSpriteTemplate_83DA0FC:: @ 83DA0FC
- spr_template 10212, 10212, gOamData_837E11C, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83DA0F8, sub_80D97CC
-
- .align 2
-gBattleAnimSpriteTemplate_83DA114:: @ 83DA114
- spr_template 10257, 10257, gOamData_837DF2C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80D98D8
-
- .align 2
-gBattleAnimSpriteTemplate_83DA12C:: @ 83DA12C
- spr_template 10256, 10256, gOamData_837DF3C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80D9A38
-
- .align 2
-gBattleAnimSpriteTemplate_83DA144:: @ 83DA144
- spr_template 10143, 10143, gOamData_837DF34, gSpriteAnimTable_83D9F64, NULL, gDummySpriteAffineAnimTable, sub_80D9B48
-
- .align 2
-gSpriteAnim_83DA15C:: @ 83DA15C
- obj_image_anim_frame 0, 4
- obj_image_anim_frame 16, 4
- obj_image_anim_frame 32, 4
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83DA16C:: @ 83DA16C
- obj_image_anim_frame 0, 4, OBJ_IMAGE_ANIM_V_FLIP
- obj_image_anim_frame 16, 4, OBJ_IMAGE_ANIM_V_FLIP
- obj_image_anim_frame 32, 4, OBJ_IMAGE_ANIM_V_FLIP
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83DA17C:: @ 83DA17C
- obj_image_anim_frame 0, 4, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 16, 4, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 32, 4, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83DA18C:: @ 83DA18C
- .4byte gSpriteAnim_83DA15C
- .4byte gSpriteAnim_83DA16C
- .4byte gSpriteAnim_83DA17C
-
- .align 2
-gBattleAnimSpriteTemplate_83DA198:: @ 83DA198
- spr_template 10245, 10245, gOamData_837DF34, gSpriteAnimTable_83DA18C, NULL, gDummySpriteAffineAnimTable, sub_80D9BD4
-
- .align 2
-gSpriteAnim_83DA1B0:: @ 83DA1B0
- obj_image_anim_frame 0, 6
- obj_image_anim_frame 64, 6
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83DA1BC:: @ 83DA1BC
- obj_image_anim_frame 0, 6, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 64, 6, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83DA1C8:: @ 83DA1C8
- obj_image_anim_frame 0, 6, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 64, 6, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83DA1D4:: @ 83DA1D4
- .4byte gSpriteAnim_83DA1B0
- .4byte gSpriteAnim_83DA1BC
- .4byte gSpriteAnim_83DA1C8
-
- .align 2
-gBattleAnimSpriteTemplate_83DA1E0:: @ 83DA1E0
- spr_template 10246, 10246, gOamData_837DF3C, gSpriteAnimTable_83DA1D4, NULL, gDummySpriteAffineAnimTable, sub_80D9BD4
-
- .align 2
-gSpriteAffineAnim_83DA1F8:: @ 83DA1F8
- obj_rot_scal_anim_frame 0x200, 0x200, 0, 0
- obj_rot_scal_anim_frame 0xFFE0, 0xFFE0, 0, 8
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnimTable_83DA210:: @ 83DA210
- .4byte gSpriteAffineAnim_83DA1F8
-
- .align 2
-gBattleAnimSpriteTemplate_83DA214:: @ 83DA214
- spr_template 10143, 10143, gOamData_837DFF4, gSpriteAnimTable_83D9F64, NULL, gSpriteAffineAnimTable_83DA210, sub_80D9C40
-
- .align 2
-gSpriteAnim_83DA22C:: @ 83DA22C
- obj_image_anim_frame 0, 5
- obj_image_anim_frame 8, 5
- obj_image_anim_frame 16, 5
- obj_image_anim_frame 24, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83DA240:: @ 83DA240
- .4byte gSpriteAnim_83DA22C
-
- .align 2
-gBattleAnimSpriteTemplate_83DA244:: @ 83DA244
- spr_template 10151, 10151, gOamData_837DF74, gSpriteAnimTable_83DA240, NULL, gDummySpriteAffineAnimTable, sub_80793C4
-
- .align 2
-gSpriteAnim_83DA25C:: @ 83DA25C
- obj_image_anim_frame 0, 1
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83DA264:: @ 83DA264
- obj_image_anim_frame 4, 1
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83DA26C:: @ 83DA26C
- obj_image_anim_frame 8, 1
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83DA274:: @ 83DA274
- .4byte gSpriteAnim_83DA25C
-
- .align 2
-gSpriteAnimTable_83DA278:: @ 83DA278
- .4byte gSpriteAnim_83DA264
-
- .align 2
-gSpriteAnimTable_83DA27C:: @ 83DA27C
- .4byte gSpriteAnim_83DA26C
-
- .align 2
-gSpriteAffineAnim_83DA280:: @ 83DA280
- obj_rot_scal_anim_frame 0x160, 0x160, 0, 0
- obj_rot_scal_anim_frame 0xFFF6, 0xFFF6, 0, 10
- obj_rot_scal_anim_frame 0xA, 0xA, 0, 10
- obj_rot_scal_anim_jump 0
-
- .align 2
-gSpriteAffineAnim_83DA2A0:: @ 83DA2A0
- obj_rot_scal_anim_frame 0xEC, 0xEC, 0, 0
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnimTable_83DA2B0:: @ 83DA2B0
- .4byte gSpriteAffineAnim_83DA280
-
- .align 2
-gSpriteAffineAnimTable_83DA2B4:: @ 83DA2B4
- .4byte gSpriteAffineAnim_83DA2A0
-
- .align 2
-gBattleAnimSpriteTemplate_83DA2B8:: @ 83DA2B8
- spr_template 10150, 10150, gOamData_837DFEC, gSpriteAnimTable_83DA274, NULL, gSpriteAffineAnimTable_83DA2B0, sub_80D9D70
-
- .align 2
-gBattleAnimSpriteTemplate_83DA2D0:: @ 83DA2D0
- spr_template 10150, 10150, gOamData_837DFEC, gSpriteAnimTable_83DA274, NULL, gSpriteAffineAnimTable_83DA2B0, sub_80D9DF0
-
- .align 2
-gBattleAnimSpriteTemplate_83DA2E8:: @ 83DA2E8
- spr_template 10150, 10150, gOamData_837DF8C, gSpriteAnimTable_83DA27C, NULL, gSpriteAffineAnimTable_83DA2B4, sub_80D9E94
-
- .align 2
-gSpriteAffineAnim_83DA300:: @ 83DA300
- obj_rot_scal_anim_frame 0xFFF0, 0x10, 0, 6
- obj_rot_scal_anim_frame 0x10, 0xFFF0, 0, 6
- obj_rot_scal_anim_jump 0
-
- .align 2
-gSpriteAffineAnimTable_83DA318:: @ 83DA318
- .4byte gSpriteAffineAnim_83DA300
-
- .align 2
-gBattleAnimSpriteTemplate_83DA31C:: @ 83DA31C
- spr_template 10150, 10150, gOamData_837DFEC, gSpriteAnimTable_83DA278, NULL, gSpriteAffineAnimTable_83DA318, sub_80D9F14
-
- .align 2
-gSpriteAffineAnim_83DA334:: @ 83DA334
- obj_rot_scal_anim_frame 0x9C, 0x9C, 0, 0
- obj_rot_scal_anim_frame 0x5, 0x5, 0, 20
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnimTable_83DA34C:: @ 83DA34C
- .4byte gSpriteAffineAnim_83DA334
-
- .align 2
-gBattleAnimSpriteTemplate_83DA350:: @ 83DA350
- spr_template 10150, 10150, gOamData_837DF8C, gSpriteAnimTable_83DA274, NULL, gSpriteAffineAnimTable_83DA34C, sub_80D9F88
-
- .align 2
-gBattleAnimSpriteTemplate_83DA368:: @ 83DA368
- spr_template 10155, 10155, gOamData_837E0AC, gSpriteAnimTable_83D9310, NULL, gSpriteAffineAnimTable_83DA34C, sub_80D9F88
-
- .align 2
-gBattleAnimSpriteTemplate_83DA380:: @ 83DA380
- spr_template 10009, 10009, gOamData_837DF7C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80DA034
-
- .align 2
-gSpriteAffineAnim_83DA398:: @ 83DA398
- obj_rot_scal_anim_frame 0x10, 0x100, 0, 0
- obj_rot_scal_anim_frame 0xA, 0x0, 0, 24
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnimTable_83DA3B0:: @ 83DA3B0
- .4byte gSpriteAffineAnim_83DA398
-
- .align 2
-gBattleAnimSpriteTemplate_83DA3B4:: @ 83DA3B4
- spr_template 10009, 10009, gOamData_837DFDC, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83DA3B0, sub_80DA16C
-
- .align 2
-gSpriteAnim_83DA3CC:: @ 83DA3CC
- obj_image_anim_frame 0, 3
- obj_image_anim_frame 0, 3, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 0, 3, OBJ_IMAGE_ANIM_V_FLIP
- obj_image_anim_frame 0, 3, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnimTable_83DA3E0:: @ 83DA3E0
- .4byte gSpriteAnim_83DA3CC
-
- .align 2
-gBattleAnimSpriteTemplate_83DA3E4:: @ 83DA3E4
- spr_template 10154, 10154, gOamData_837DF54, gSpriteAnimTable_83DA3E0, NULL, gDummySpriteAffineAnimTable, sub_80DA208
-
- .align 2
-gSpriteAffineAnim_83DA3FC:: @ 83DA3FC
- obj_rot_scal_anim_frame 0x10, 0x100, 0, 0
- obj_rot_scal_anim_frame 0x28, 0x0, 0, 6
- obj_rot_scal_anim_frame 0x0, 0xFFE0, 0, 5
- obj_rot_scal_anim_frame 0xFFF0, 0x20, 0, 10
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnimTable_83DA424:: @ 83DA424
- .4byte gSpriteAffineAnim_83DA3FC
-
- .align 2
-gSpriteAffineAnim_83DA428:: @ 83DA428
- obj_rot_scal_anim_frame 0x0, 0x0, 50, 1
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnim_83DA438:: @ 83DA438
- obj_rot_scal_anim_frame 0x0, 0x0, -40, 1
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnimTable_83DA448:: @ 83DA448
- .4byte gSpriteAffineAnim_83DA428
- .4byte gSpriteAffineAnim_83DA438
-
- .align 2
-gBattleAnimSpriteTemplate_83DA450:: @ 83DA450
- spr_template 10156, 10156, gOamData_837DFFC, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83DA424, sub_80DA300
-
- .align 2
-gBattleAnimSpriteTemplate_83DA468:: @ 83DA468
- spr_template 10156, 10156, gOamData_837DF9C, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83DA448, sub_80DA38C
-
- .align 2
-gSpriteAnim_83DA480:: @ 83DA480
- obj_image_anim_frame 0, 0
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83DA488:: @ 83DA488
- obj_image_anim_frame 16, 0, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83DA490:: @ 83DA490
- .4byte gSpriteAnim_83DA480
- .4byte gSpriteAnim_83DA488
-
- .align 2
-gBattleAnimSpriteTemplate_83DA498:: @ 83DA498
- spr_template 10270, 10270, gOamData_837DF94, gSpriteAnimTable_83DA490, NULL, gDummySpriteAffineAnimTable, sub_80DA4D8
-
- .align 2
- .incbin "baserom.gba", 0x003da4b0, 0x20
-
- .align 2
-gSpriteTemplate_83DA4D0:: @ 83DA4D0
- spr_template 10155, 10155, gOamData_837DF2C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80DAD30
-
- .align 2
-gSpriteTemplate_83DA4E8:: @ 83DA4E8
- spr_template 10270, 10270, gOamData_837DF94, gSpriteAnimTable_83DA490, NULL, gDummySpriteAffineAnimTable, sub_80DAD84
-
- .align 2
-gSpriteAnim_83DA500:: @ 83DA500
- obj_image_anim_frame 0, 1
- obj_image_anim_frame 8, 1
- obj_image_anim_frame 16, 1
- obj_image_anim_frame 8, 1, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 0, 1, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83DA518:: @ 83DA518
- .4byte gSpriteAnim_83DA500
-
- .align 2
-gBattleAnimSpriteTemplate_83DA51C:: @ 83DA51C
- spr_template 10162, 10162, gOamData_837DF54, gSpriteAnimTable_83DA518, NULL, gDummySpriteAffineAnimTable, sub_80DB000
-
- .align 2
-gSpriteAffineAnim_83DA534:: @ 83DA534
- obj_rot_scal_anim_frame 0x10, 0x100, 0, 0
- obj_rot_scal_anim_frame 0x28, 0x0, 0, 6
- obj_rot_scal_anim_frame 0x0, 0xFFE0, 0, 5
- obj_rot_scal_anim_frame 0xFFEC, 0x0, 0, 7
- obj_rot_scal_anim_frame 0xFFEC, 0xFFEC, 0, 5
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnimTable_83DA564:: @ 83DA564
- .4byte gSpriteAffineAnim_83DA534
-
- .align 2
-gBattleAnimSpriteTemplate_83DA568:: @ 83DA568
- spr_template 10156, 10156, gOamData_837DFFC, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83DA564, sub_80DB194
-
- .align 2
-gSpriteAffineAnim_83DA580:: @ 83DA580
- obj_rot_scal_anim_frame 0xA0, 0x100, 0, 0
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnimTable_83DA590:: @ 83DA590
- .4byte gSpriteAffineAnim_83DA580
-
- .align 2
-gBattleAnimSpriteTemplate_83DA594:: @ 83DA594
- spr_template 10156, 10156, gOamData_837DFFC, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83DA590, sub_80DB1F4
-
- .align 2
-gSpriteAffineAnim_83DA5AC:: @ 83DA5AC
- obj_rot_scal_anim_frame 0x10, 0x100, 0, 0
- obj_rot_scal_anim_frame 0x28, 0x0, 0, 6
- obj_rot_scal_anim_frame 0x0, 0xFFE0, 0, 5
- obj_rot_scal_anim_frame 0xFFF0, 0x20, 0, 10
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnimTable_83DA5D4:: @ 83DA5D4
- .4byte gSpriteAffineAnim_83DA5AC
-
- .align 2
-gBattleAnimSpriteTemplate_83DA5D8:: @ 83DA5D8
- spr_template 10156, 10156, gOamData_837DFFC, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83DA5D4, sub_80DB288
-
- .align 2
-gSpriteAffineAnim_83DA5F0:: @ 83DA5F0
- obj_rot_scal_anim_frame 0x100, 0x0, 0, 0
- obj_rot_scal_anim_frame 0x0, 0x20, 0, 12
- obj_rot_scal_anim_frame 0x0, 0xFFE0, 0, 11
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnimTable_83DA610:: @ 83DA610
- .4byte gSpriteAffineAnim_83DA5F0
-
- .align 2
-gBattleAnimSpriteTemplate_83DA614:: @ 83DA614
- spr_template 10272, 10272, gOamData_837DFFC, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80DB374
-
- .align 2
-gBattleAnimSpriteTemplate_83DA62C:: @ 83DA62C
- spr_template 10273, 10273, gOamData_837DF24, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80DB458
-
- .align 2
-gSpriteTemplate_83DA644:: @ 83DA644
- spr_template 10212, 10212, gOamData_837E05C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80DB564
-
- .align 2
-gBattleAnimSpriteTemplate_83DA65C:: @ 83DA65C
- spr_template 10284, 10284, gOamData_837DFFC, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80DB5E4
-
- .align 2
-gSpriteAffineAnim_83DA674:: @ 83DA674
- obj_rot_scal_anim_frame 0x100, 0x100, 0, 0
- obj_rot_scal_anim_frame 0xFFFE, 0xFFFE, -10, 120
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnimTable_83DA68C:: @ 83DA68C
- .4byte gSpriteAffineAnim_83DA674
-
- .align 2
-gBattleAnimSpriteTemplate_83DA690:: @ 83DA690
- spr_template 10196, 10196, gOamData_837E0BC, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83DA68C, sub_80793C4
-
- .align 2
-gBattleAnimSpriteTemplate_83DA6A8:: @ 83DA6A8
- spr_template 10166, 10166, gOamData_837E05C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80DB74C
-
- .align 2
-gBattleAnimSpriteTemplate_83DA6C0:: @ 83DA6C0
- spr_template 10167, 10167, gOamData_837E05C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80DB74C
-
- .align 2
-gBattleAnimSpriteTemplate_83DA6D8:: @ 83DA6D8
- spr_template 10168, 10168, gOamData_837E05C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80DB74C
-
- .align 2
-gBattleAnimSpriteTemplate_83DA6F0:: @ 83DA6F0
- spr_template 10169, 10169, gOamData_837E05C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80DB74C
-
- .align 2
-gBattleAnimSpriteTemplate_83DA708:: @ 83DA708
- spr_template 10170, 10170, gOamData_837E05C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80DB74C
-
- .align 2
-gSpriteAnim_83DA720:: @ 83DA720
- obj_image_anim_frame 0, 3
- obj_image_anim_frame 16, 3
- obj_image_anim_frame 32, 3
- obj_image_anim_frame 48, 3
- obj_image_anim_frame 64, 3
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83DA738:: @ 83DA738
- .4byte gSpriteAnim_83DA720
-
- .align 2
-gBattleAnimSpriteTemplate_83DA73C:: @ 83DA73C
- spr_template 10071, 10071, gOamData_837DF34, gSpriteAnimTable_83DA738, NULL, gDummySpriteAffineAnimTable, sub_80DBA4C
-
- .align 2
-gSpriteAnim_83DA754:: @ 83DA754
- obj_image_anim_frame 0, 5
- obj_image_anim_frame 4, 5
- obj_image_anim_frame 8, 5
- obj_image_anim_frame 12, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83DA768:: @ 83DA768
- .4byte gSpriteAnim_83DA754
-
- .align 2
-gBattleAnimSpriteTemplate_83DA76C:: @ 83DA76C
- spr_template 10070, 10070, gOamData_837DF2C, gSpriteAnimTable_83DA768, NULL, gDummySpriteAffineAnimTable, sub_80DBA4C
-
- .align 2
-gBattleAnimSpriteTemplate_83DA784:: @ 83DA784
- spr_template 10163, 10163, gOamData_837DF74, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_807941C
-
- .align 2
-gSpriteAnim_83DA79C:: @ 83DA79C
- obj_image_anim_frame 8, 60, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 16, 5, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 8, 5, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 0, 5, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 8, 22, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_loop 0
- obj_image_anim_frame 16, 5, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 8, 5, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 0, 5, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 8, 5, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_loop 1
- obj_image_anim_frame 8, 22, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 24, 3, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 32, 3, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 40, 22, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83DA7DC:: @ 83DA7DC
- obj_image_anim_frame 8, 60
- obj_image_anim_frame 16, 5
- obj_image_anim_frame 8, 5
- obj_image_anim_frame 0, 5
- obj_image_anim_frame 8, 22
- obj_image_anim_loop 0
- obj_image_anim_frame 16, 5
- obj_image_anim_frame 8, 5
- obj_image_anim_frame 0, 5
- obj_image_anim_frame 8, 5
- obj_image_anim_loop 1
- obj_image_anim_frame 8, 22
- obj_image_anim_frame 24, 3
- obj_image_anim_frame 32, 3
- obj_image_anim_frame 40, 22
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83DA81C:: @ 83DA81C
- .4byte gSpriteAnim_83DA79C
- .4byte gSpriteAnim_83DA7DC
-
- .align 2
-gBattleAnimSpriteTemplate_83DA824:: @ 83DA824
- spr_template 10097, 10097, gOamData_837DF74, gSpriteAnimTable_83DA81C, NULL, gDummySpriteAffineAnimTable, sub_80DBAF4
-
- .align 2
-gSpriteAnim_83DA83C:: @ 83DA83C
- obj_image_anim_frame 0, 6
- obj_image_anim_frame 16, 6
- obj_image_anim_frame 32, 6
- obj_image_anim_frame 48, 6
- obj_image_anim_frame 64, 6
- obj_image_anim_frame 80, 6
- obj_image_anim_frame 96, 18
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83DA85C:: @ 83DA85C
- .4byte gSpriteAnim_83DA83C
-
- .align 2
-Unknown_3DA860:: @ 83DA860
- .incbin "baserom.gba", 0x3da860, 0x28
-
- .align 2
-gUnknown_083DA888:: @ 83DA888
- .4byte Unknown_3DA860
-
- .align 2
-gBattleAnimSpriteTemplate_83DA88C:: @ 83DA88C
- spr_template 10093, 10093, gOamData_837DF34, gSpriteAnimTable_83DA85C, NULL, gDummySpriteAffineAnimTable, sub_80DBB70
-
- .align 2
-gUnknown_083DA8A4:: @ 83DA8A4
- .incbin "baserom.gba", 0x003da8a4, 0x20
-
-gUnknown_083DA8C4:: @ 83DA8C4
- .incbin "baserom.gba", 0x003da8c4, 0x18
-
- .align 2
-gSpriteTemplate_83DA8DC:: @ 83DA8DC
- spr_template 10249, 10249, gOamData_837E04C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-gBattleAnimSpriteTemplate_83DA8F4:: @ 83DA8F4
- spr_template 10250, 10250, gOamData_837DF3C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80DC068
-
- .align 2
-gSpriteAffineAnim_83DA90C:: @ 83DA90C
- obj_rot_scal_anim_frame 0xFFF8, 0xFFF8, 0, 8
- obj_rot_scal_anim_frame 0x8, 0x8, 0, 8
- obj_rot_scal_anim_jump 0
-
- .align 2
-gSpriteAffineAnim_83DA924:: @ 83DA924
- obj_rot_scal_anim_frame 0xF0, 0xF0, 0, 0
- obj_rot_scal_anim_frame 0xFFF8, 0xFFF8, 0, 6
- obj_rot_scal_anim_frame 0x8, 0x8, 0, 8
- obj_rot_scal_anim_frame 0xFFF8, 0xFFF8, 0, 2
- obj_rot_scal_anim_jump 1
-
- .align 2
-gSpriteAffineAnim_83DA94C:: @ 83DA94C
- obj_rot_scal_anim_frame 0xD0, 0xD0, 0, 0
- obj_rot_scal_anim_frame 0xFFF8, 0xFFF8, 0, 4
- obj_rot_scal_anim_frame 0x8, 0x8, 0, 8
- obj_rot_scal_anim_frame 0xFFF8, 0xFFF8, 0, 4
- obj_rot_scal_anim_jump 1
-
- .align 2
-gSpriteAffineAnim_83DA974:: @ 83DA974
- obj_rot_scal_anim_frame 0xB0, 0xB0, 0, 0
- obj_rot_scal_anim_frame 0xFFF8, 0xFFF8, 0, 2
- obj_rot_scal_anim_frame 0x8, 0x8, 0, 8
- obj_rot_scal_anim_frame 0xFFF8, 0xFFF8, 0, 6
- obj_rot_scal_anim_jump 1
-
- .align 2
-gSpriteAffineAnimTable_83DA99C:: @ 83DA99C
- .4byte gSpriteAffineAnim_83DA90C
- .4byte gSpriteAffineAnim_83DA924
- .4byte gSpriteAffineAnim_83DA94C
- .4byte gSpriteAffineAnim_83DA974
-
- .align 2
-gSpriteTemplate_83DA9AC:: @ 83DA9AC
- spr_template 10251, 10251, gOamData_837DF8C, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83DA99C, sub_80DC2B0
-
- .align 2
-gSpriteAffineAnim_83DA9C4:: @ 83DA9C4
- obj_rot_scal_anim_frame 0x20, 0x20, 0, 0
- obj_rot_scal_anim_frame 0x4, 0x4, 0, 120
- obj_rot_scal_anim_end 1
-
- .align 2
-gSpriteAffineAnimTable_83DA9DC:: @ 83DA9DC
- .4byte gSpriteAffineAnim_83DA9C4
-
- .align 2
-gBattleAnimSpriteTemplate_83DA9E0:: @ 83DA9E0
- spr_template 10267, 10267, gOamData_837E11C, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83DA9DC, sub_80793C4
-
- .align 2
-gSpriteAffineAnim_83DA9F8:: @ 83DA9F8
- obj_rot_scal_anim_frame 0x20, 0x20, 0, 0
- obj_rot_scal_anim_frame 0x10, 0x10, 0, 17
- obj_rot_scal_anim_loop 0
- obj_rot_scal_anim_frame 0xFFF8, 0xFFF8, 0, 10
- obj_rot_scal_anim_frame 0x8, 0x8, 0, 10
- obj_rot_scal_anim_loop 4
- obj_rot_scal_anim_loop 0
- obj_rot_scal_anim_frame 0xFFF0, 0xFFF0, 0, 5
- obj_rot_scal_anim_frame 0x10, 0x10, 0, 5
- obj_rot_scal_anim_loop 7
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnim_83DAA50:: @ 83DAA50
- obj_rot_scal_anim_frame 0xFFEC, 0x18, 0, 15
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnimTable_83DAA60:: @ 83DAA60
- .4byte gSpriteAffineAnim_83DA9F8
- .4byte gSpriteAffineAnim_83DAA50
-
- .align 2
-gBattleAnimSpriteTemplate_83DAA68:: @ 83DAA68
- spr_template 10212, 10212, gOamData_837E11C, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83DAA60, sub_80DC700
-
- .align 2
-gSpriteAffineAnim_83DAA80:: @ 83DAA80
- obj_rot_scal_anim_frame 0x100, 0x100, 30, 0
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnim_83DAA90:: @ 83DAA90
- obj_rot_scal_anim_frame 0x100, 0x100, -99, 0
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnim_83DAAA0:: @ 83DAAA0
- obj_rot_scal_anim_frame 0x100, 0x100, 94, 0
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnimTable_83DAAB0:: @ 83DAAB0
- .4byte gSpriteAffineAnim_83DAA80
- .4byte gSpriteAffineAnim_83DAA90
- .4byte gSpriteAffineAnim_83DAAA0
-
- .align 2
-gBattleAnimSpriteTemplate_83DAABC:: @ 83DAABC
- spr_template 10153, 10153, gOamData_837E014, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83DAAB0, sub_80DC824
-
- .align 2
-gSpriteAffineAnim_83DAAD4:: @ 83DAAD4
- obj_rot_scal_anim_frame 0x0, 0x0, -33, 1
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnim_83DAAE4:: @ 83DAAE4
- obj_rot_scal_anim_frame 0x0, 0x0, 96, 1
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnim_83DAAF4:: @ 83DAAF4
- obj_rot_scal_anim_frame 0x0, 0x0, -96, 1
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnimTable_83DAB04:: @ 83DAB04
- .4byte gSpriteAffineAnim_83DAAD4
- .4byte gSpriteAffineAnim_83DAAE4
- .4byte gSpriteAffineAnim_83DAAF4
-
- .align 2
-gBattleAnimSpriteTemplate_83DAB10:: @ 83DAB10
- spr_template 10161, 10161, gOamData_837DF8C, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83DAB04, sub_80DC8F4
-
- .align 2
-gBattleAnimSpriteTemplate_83DAB28:: @ 83DAB28
- spr_template 10180, 10180, gOamData_837DF24, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80DC9A0
-
- .align 2
-gBattleAnimSpriteTemplate_83DAB40:: @ 83DAB40
- spr_template 10179, 10179, gOamData_837DF5C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80DCA70
-
- .align 2
-gSpriteAffineAnim_83DAB58:: @ 83DAB58
- obj_rot_scal_anim_frame 0x10, 0x10, 0, 0
- obj_rot_scal_anim_frame 0x6, 0x6, 0, 1
- obj_rot_scal_anim_jump 1
-
- .align 2
-gSpriteAffineAnimTable_83DAB70:: @ 83DAB70
- .4byte gSpriteAffineAnim_83DAB58
-
- .align 2
-gBattleAnimSpriteTemplate_83DAB74:: @ 83DAB74
- spr_template 10181, 10181, gOamData_837E11C, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83DAB70, sub_80DCB38
-
- .align 2
-gBattleAnimSpriteTemplate_83DAB8C:: @ 83DAB8C
- spr_template 10161, 10161, gOamData_837DF8C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80DCBCC
-
- .align 2
-gBattleAnimSpriteTemplate_83DABA4:: @ 83DABA4
- spr_template 10161, 10161, gOamData_837DF8C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80DCCFC
-
- .align 2
-gBattleAnimSpriteTemplate_83DABBC:: @ 83DABBC
- spr_template 10262, 10262, gOamData_837DF94, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80DCCFC
-
- .align 2
-gSpriteAffineAnim_83DABD4:: @ 83DABD4
- obj_rot_scal_anim_frame 0x10, 0x10, 0, 0
- obj_rot_scal_anim_frame 0x8, 0x8, 0, 18
- obj_rot_scal_anim_loop 0
- obj_rot_scal_anim_frame 0xFFFB, 0xFFFB, 0, 8
- obj_rot_scal_anim_frame 0x5, 0x5, 0, 8
- obj_rot_scal_anim_loop 5
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnimTable_83DAC0C:: @ 83DAC0C
- .4byte gSpriteAffineAnim_83DABD4
-
- .align 2
-gBattleAnimSpriteTemplate_83DAC10:: @ 83DAC10
- spr_template 10212, 10212, gOamData_837E0BC, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83DAC0C, sub_80DCE40
-
- .align 2
-gSpriteAnim_83DAC28:: @ 83DAC28
- obj_image_anim_frame 32, 1
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83DAC30:: @ 83DAC30
- obj_image_anim_frame 48, 1
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83DAC38:: @ 83DAC38
- obj_image_anim_frame 64, 1
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83DAC40:: @ 83DAC40
- .4byte gSpriteAnim_83DAC28
- .4byte gSpriteAnim_83DAC30
- .4byte gSpriteAnim_83DAC38
-
- .align 2
-gBattleAnimSpriteTemplate_83DAC4C:: @ 83DAC4C
- spr_template 10058, 10058, gOamData_837DF34, gSpriteAnimTable_83DAC40, NULL, gDummySpriteAffineAnimTable, sub_80DCE9C
-
- .align 2
-gBattleAnimSpriteTemplate_83DAC64:: @ 83DAC64
- spr_template 10058, 10058, gOamData_837DF34, gSpriteAnimTable_83DAC40, NULL, gDummySpriteAffineAnimTable, sub_80DCF60
-
- .align 2
-gBattleAnimSpriteTemplate_83DAC7C:: @ 83DAC7C
- spr_template 10074, 10074, gOamData_837DF24, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80DCFE4
-
- .align 2
-gSpriteAffineAnim_83DAC94:: @ 83DAC94
- obj_rot_scal_anim_frame 0xC0, 0xC0, 0, 0
- obj_rot_scal_anim_frame 0x2, 0xFFFD, 0, 5
- obj_rot_scal_anim_frame 0xFFFE, 0x3, 0, 5
- obj_rot_scal_anim_jump 1
-
- .align 2
-gSpriteAffineAnimTable_83DACB4:: @ 83DACB4
- .4byte gSpriteAffineAnim_83DAC94
-
- .align 2
-gBattleAnimSpriteTemplate_83DACB8:: @ 83DACB8
- spr_template 10149, 10149, gOamData_837E0AC, gSpriteAnimTable_83D91F0, NULL, gSpriteAffineAnimTable_83DACB4, sub_80DCFE4
-
- .align 2
-gBattleAnimSpriteTemplate_83DACD0:: @ 83DACD0
- spr_template 10029, 10029, gOamData_837DF34, gSpriteAnimTable_83D95E0, NULL, gDummySpriteAffineAnimTable, sub_80DCFE4
-
- .align 2
-gBattleAnimSpriteTemplate_83DACE8:: @ 83DACE8
- spr_template 10261, 10261, gOamData_837DF54, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80DD3AC
-
- .align 2
-Unknown_3DAD00:: @ 83DAD00
- .incbin "baserom.gba", 0x3dad00, 0x10
-
- .align 2
-gUnknown_083DAD10:: @ 83DAD10
- .4byte 0x2, Unknown_3DAD00
-
- .align 2
-gSpriteAnim_83DAD18:: @ 83DAD18
- obj_image_anim_frame 0, 1
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83DAD20:: @ 83DAD20
- obj_image_anim_frame 16, 1
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83DAD28:: @ 83DAD28
- obj_image_anim_frame 32, 1
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83DAD30:: @ 83DAD30
- obj_image_anim_frame 48, 1
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83DAD38:: @ 83DAD38
- obj_image_anim_frame 64, 1
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83DAD40:: @ 83DAD40
- obj_image_anim_frame 80, 1
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83DAD48:: @ 83DAD48
- .4byte gSpriteAnim_83DAD18
- .4byte gSpriteAnim_83DAD20
-
- .align 2
-gSpriteAnimTable_83DAD50:: @ 83DAD50
- .4byte gSpriteAnim_83DAD28
- .4byte gSpriteAnim_83DAD30
-
- .align 2
-gSpriteAnimTable_83DAD58:: @ 83DAD58
- .4byte gSpriteAnim_83DAD38
- .4byte gSpriteAnim_83DAD40
-
- .align 2
-gBattleAnimSpriteTemplate_83DAD60:: @ 83DAD60
- spr_template 10058, 10058, gOamData_837DF34, gSpriteAnimTable_83DAD48, NULL, gDummySpriteAffineAnimTable, sub_80DD490
-
- .align 2
-gSpriteTemplate_83DAD78:: @ 83DAD78
- spr_template 10074, 10074, gOamData_837DF24, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80DD87C
-
- .align 2
-gSpriteTemplate_83DAD90:: @ 83DAD90
- spr_template 10058, 10058, gOamData_837DF34, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80DD87C
-
- .align 2
-gBattleAnimSpriteTemplate_83DADA8:: @ 83DADA8
- spr_template 10058, 10058, gOamData_837DF34, gSpriteAnimTable_83DAD48, NULL, gDummySpriteAffineAnimTable, sub_80DD8E8
-
- .align 2
-gSpriteAffineAnim_83DADC0:: @ 83DADC0
- obj_rot_scal_anim_frame 0x0, 0x0, -5, 5
- obj_rot_scal_anim_jump 0
-
- .align 2
-gSpriteAffineAnim_83DADD0:: @ 83DADD0
- obj_rot_scal_anim_frame 0x0, 0x0, 5, 5
- obj_rot_scal_anim_jump 0
-
- .align 2
-gSpriteAffineAnimTable_83DADE0:: @ 83DADE0
- .4byte gSpriteAffineAnim_83DADC0
- .4byte gSpriteAffineAnim_83DADD0
-
- .align 2
-gBattleAnimSpriteTemplate_83DADE8:: @ 83DADE8
- spr_template 10058, 10058, gOamData_837DF94, gSpriteAnimTable_83DAD48, NULL, gSpriteAffineAnimTable_83DADE0, sub_80DD978
-
- .align 2
-gBattleAnimSpriteTemplate_83DAE00:: @ 83DAE00
- spr_template 10058, 10058, gOamData_837DF94, gSpriteAnimTable_83DAD48, NULL, gSpriteAffineAnimTable_83DADE0, sub_80DD9A4
-
- .align 2
-gBattleAnimSpriteTemplate_83DAE18:: @ 83DAE18
- spr_template 10058, 10058, gOamData_837DF34, gSpriteAnimTable_83DAD58, NULL, gSpriteAffineAnimTable_83DADE0, sub_80CB144
-
- .align 2
-gBattleAnimSpriteTemplate_83DAE30:: @ 83DAE30
- spr_template 10058, 10058, gOamData_837DF94, gSpriteAnimTable_83DAD50, NULL, gSpriteAffineAnimTable_83DADE0, sub_807A9BC
-
- .align 2
-gSpriteAffineAnim_83DAE48:: @ 83DAE48
- obj_rot_scal_anim_frame 0x1E, 0x1E, 10, 5
- obj_rot_scal_anim_frame 0xFFE2, 0xFFE2, 10, 5
- obj_rot_scal_anim_jump 0
-
- .align 2
-gSpriteAffineAnimTable_83DAE60:: @ 83DAE60
- .4byte gSpriteAffineAnim_83DAE48
-
- .align 2
-gBattleAnimSpriteTemplate_83DAE64:: @ 83DAE64
- spr_template 10013, 10013, gOamData_837DFEC, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83DAE60, sub_80DDB6C
-
- .align 2
-gBattleAnimSpriteTemplate_83DAE7C:: @ 83DAE7C
- spr_template 10013, 10013, gOamData_837E04C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80DDD58
-
- .align 2
-gSpriteAffineAnim_83DAE94:: @ 83DAE94
- obj_rot_scal_anim_frame 0x0, 0x0, 10, 1
- obj_rot_scal_anim_jump 0
-
- .align 2
-gSpriteAffineAnimTable_83DAEA4:: @ 83DAEA4
- .4byte gSpriteAffineAnim_83DAE94
-
- .align 2
-gBattleAnimSpriteTemplate_83DAEA8:: @ 83DAEA8
- spr_template 10176, 10176, gOamData_837DF94, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83DAEA4, sub_80DDF40
-
- .align 2
-gSpriteAnim_83DAEC0:: @ 83DAEC0
- obj_image_anim_frame 0, 2
- obj_image_anim_frame 8, 2
- obj_image_anim_frame 16, 2
- obj_image_anim_frame 24, 2
- obj_image_anim_frame 32, 2
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83DAED8:: @ 83DAED8
- .4byte gSpriteAnim_83DAEC0
-
- .align 2
-gBattleAnimSpriteTemplate_83DAEDC:: @ 83DAEDC
- spr_template 10177, 10177, gOamData_837DF74, gSpriteAnimTable_83DAED8, NULL, gDummySpriteAffineAnimTable, sub_80DE0FC
-
- .align 2
-gSpriteAffineAnim_83DAEF4:: @ 83DAEF4
- obj_rot_scal_anim_frame 0x200, 0x200, 0, 0
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnimTable_83DAF04:: @ 83DAF04
- .4byte gSpriteAffineAnim_83DAEF4
-
- .align 2
-gSpriteTemplate_83DAF08:: @ 83DAF08
- spr_template 10188, 10188, gOamData_837E07C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80DE7B8
-
- .align 2
-gBattleAnimSpriteTemplate_83DAF20:: @ 83DAF20
- spr_template 10199, 10199, gOamData_837E074, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80DEF3C
-
- .align 2
-gBattleAnimSpriteTemplate_83DAF38:: @ 83DAF38
- spr_template 10200, 10200, gOamData_837E054, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80DF0B8
-
- .align 2
-gBattleAnimSpriteTemplate_83DAF50:: @ 83DAF50
- spr_template 10221, 10221, gOamData_837E054, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80DF0B8
-
- .align 2
-gSpriteAnim_83DAF68:: @ 83DAF68
- obj_image_anim_frame 0, 4
- obj_image_anim_frame 8, 4
- obj_image_anim_frame 16, 4
- obj_image_anim_frame 24, 4
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnimTable_83DAF7C:: @ 83DAF7C
- .4byte gSpriteAnim_83DAF68
-
- .align 2
-gSpriteTemplate_83DAF80:: @ 83DAF80
- spr_template 10253, 10253, gOamData_837E094, gSpriteAnimTable_83DAF7C, NULL, gDummySpriteAffineAnimTable, sub_80DF3D8
-
- .align 2
-gSpriteTemplate_83DAF98:: @ 83DAF98
- spr_template 0, 0, gDummyOamData, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80DF49C
-
- .align 2
-gSpriteAnim_83DAFB0:: @ 83DAFB0
- obj_image_anim_frame 0, 4
- obj_image_anim_frame 16, 4
- obj_image_anim_frame 32, 4
- obj_image_anim_frame 48, 4
- obj_image_anim_frame 64, 4
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnimTable_83DAFC8:: @ 83DAFC8
- .4byte gSpriteAnim_83DAFB0
-
- .align 2
-gBattleAnimSpriteTemplate_83DAFCC:: @ 83DAFCC
- spr_template 10029, 10029, gOamData_837DF34, gSpriteAnimTable_83DAFC8, NULL, gDummySpriteAffineAnimTable, sub_80DF5A0
-
- .align 2
-gSpriteAnim_83DAFE4:: @ 83DAFE4
- obj_image_anim_frame 16, 3
- obj_image_anim_frame 32, 3
- obj_image_anim_frame 48, 3
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnim_83DAFF4:: @ 83DAFF4
- obj_image_anim_frame 16, 3, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 32, 3, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 48, 3, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnimTable_83DB004:: @ 83DB004
- .4byte gSpriteAnim_83DAFE4
- .4byte gSpriteAnim_83DAFF4
-
- .align 2
-gSpriteAffineAnim_83DB00C:: @ 83DB00C
- obj_rot_scal_anim_frame 0x50, 0x50, 127, 0
- obj_rot_scal_anim_frame 0xD, 0xD, 0, 100
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnim_83DB024:: @ 83DB024
- obj_rot_scal_anim_frame 0x50, 0x50, 0, 0
- obj_rot_scal_anim_frame 0xD, 0xD, 0, 100
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnimTable_83DB03C:: @ 83DB03C
- .4byte gSpriteAffineAnim_83DB00C
- .4byte gSpriteAffineAnim_83DB024
-
- .align 2
-gBattleAnimSpriteTemplate_83DB044:: @ 83DB044
- spr_template 10029, 10029, gOamData_837DFF4, gSpriteAnimTable_83DB004, NULL, gSpriteAffineAnimTable_83DB03C, sub_80DF760
-
- .align 2
-gSpriteAnim_83DB05C:: @ 83DB05C
- obj_image_anim_frame 0, 5
- obj_image_anim_frame 16, 5
- obj_image_anim_frame 32, 5
- obj_image_anim_frame 48, 5
- obj_image_anim_frame 64, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83DB074:: @ 83DB074
- .4byte gSpriteAnim_83DB05C
-
- .align 2
-gBattleAnimSpriteTemplate_83DB078:: @ 83DB078
- spr_template 10035, 10035, gOamData_837DF34, gSpriteAnimTable_83DB074, NULL, gDummySpriteAffineAnimTable, sub_80DF6F0
-
- .align 2
-gSpriteAnim_83DB090:: @ 83DB090
- obj_image_anim_frame 16, 3
- obj_image_anim_frame 32, 3
- obj_image_anim_frame 48, 3
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnimTable_83DB0A0:: @ 83DB0A0
- .4byte gSpriteAnim_83DB090
- .4byte gSpriteAnim_83DB090
-
- .align 2
-gSpriteAffineAnim_83DB0A8:: @ 83DB0A8
- obj_rot_scal_anim_frame 0x64, 0x64, 127, 1
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnim_83DB0B8:: @ 83DB0B8
- obj_rot_scal_anim_frame 0x64, 0x64, 0, 1
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnimTable_83DB0C8:: @ 83DB0C8
- .4byte gSpriteAffineAnim_83DB0A8
- .4byte gSpriteAffineAnim_83DB0B8
-
- .align 2
-gBattleAnimSpriteTemplate_83DB0D0:: @ 83DB0D0
- spr_template 10029, 10029, gOamData_837DFF4, gSpriteAnimTable_83DB0A0, NULL, gSpriteAffineAnimTable_83DB0C8, sub_80DF760
-
- .align 2
-gBattleAnimSpriteTemplate_83DB0E8:: @ 83DB0E8
- spr_template 10249, 10249, gOamData_837DF2C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80DF78C
-
- .align 2
-gBattleAnimSpriteTemplate_83DB100:: @ 83DB100
- spr_template 10029, 10029, gOamData_837DF34, gSpriteAnimTable_83DAFC8, NULL, gDummySpriteAffineAnimTable, sub_80DFB28
-
- .align 2
-gSpriteTemplate_83DB118:: @ 83DB118
- spr_template 10015, 10015, gOamData_837DF2C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80DFE14
-
- .align 2
-gSpriteAffineAnim_83DB130:: @ 83DB130
- obj_rot_scal_anim_frame 0x0, 0x0, 0, 1
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnim_83DB140:: @ 83DB140
- obj_rot_scal_anim_frame 0x0, 0x0, 32, 1
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnim_83DB150:: @ 83DB150
- obj_rot_scal_anim_frame 0x0, 0x0, 64, 1
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnim_83DB160:: @ 83DB160
- obj_rot_scal_anim_frame 0x0, 0x0, 96, 1
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnim_83DB170:: @ 83DB170
- obj_rot_scal_anim_frame 0x0, 0x0, -128, 1
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnim_83DB180:: @ 83DB180
- obj_rot_scal_anim_frame 0x0, 0x0, -96, 1
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnim_83DB190:: @ 83DB190
- obj_rot_scal_anim_frame 0x0, 0x0, -64, 1
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnim_83DB1A0:: @ 83DB1A0
- obj_rot_scal_anim_frame 0x0, 0x0, -32, 1
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnimTable_83DB1B0:: @ 83DB1B0
- .4byte gSpriteAffineAnim_83DB130
- .4byte gSpriteAffineAnim_83DB140
- .4byte gSpriteAffineAnim_83DB150
- .4byte gSpriteAffineAnim_83DB160
- .4byte gSpriteAffineAnim_83DB170
- .4byte gSpriteAffineAnim_83DB180
- .4byte gSpriteAffineAnim_83DB190
- .4byte gSpriteAffineAnim_83DB1A0
-
- .align 2
-gBattleAnimSpriteTemplate_83DB1D0:: @ 83DB1D0
- spr_template 10139, 10139, gOamData_837E0BC, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83DB1B0, sub_80DFF1C
-
- .align 2
-gBattleAnimSpriteTemplate_83DB1E8:: @ 83DB1E8
- spr_template 10145, 10145, gOamData_837E0BC, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83DB1B0, sub_80DFF1C
-
- .align 2
-gSpriteAffineAnim_83DB200:: @ 83DB200
- obj_rot_scal_anim_frame 0xC0, 0xC0, 80, 0
- obj_rot_scal_anim_frame 0x0, 0x0, -2, 8
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnim_83DB218:: @ 83DB218
- obj_rot_scal_anim_frame 0xC0, 0xC0, -80, 0
- obj_rot_scal_anim_frame 0x0, 0x0, 2, 8
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnimTable_83DB230:: @ 83DB230
- .4byte gSpriteAffineAnim_83DB200
- .4byte gSpriteAffineAnim_83DB218
-
- .align 2
-gBattleAnimSpriteTemplate_83DB238:: @ 83DB238
- spr_template 10155, 10155, gOamData_837DF8C, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83DB230, sub_80DFFD0
-
- .align 2
-gSpriteAnim_83DB250:: @ 83DB250
- obj_image_anim_frame 0, 4
- obj_image_anim_frame 16, 4
- obj_image_anim_frame 32, 4
- obj_image_anim_frame 48, 4
- obj_image_anim_frame 64, 4
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83DB268:: @ 83DB268
- obj_image_anim_frame 0, 4, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 16, 4, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 32, 4, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 48, 4, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 64, 4, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83DB280:: @ 83DB280
- .4byte gSpriteAnim_83DB250
- .4byte gSpriteAnim_83DB268
-
- .align 2
-gBattleAnimSpriteTemplate_83DB288:: @ 83DB288
- spr_template 10039, 10039, gOamData_837DF34, gSpriteAnimTable_83DB280, NULL, gDummySpriteAffineAnimTable, sub_80E0A10
-
- .align 2
-gSpriteAffineAnim_83DB2A0:: @ 83DB2A0
- obj_rot_scal_anim_frame 0x0, 0x0, 15, 1
- obj_rot_scal_anim_jump 0
-
- .align 2
-gSpriteAffineAnim_83DB2B0:: @ 83DB2B0
- obj_rot_scal_anim_frame 0x0, 0x0, 20, 1
- obj_rot_scal_anim_jump 0
-
- .align 2
-gSpriteAffineAnimTable_83DB2C0:: @ 83DB2C0
- .4byte gSpriteAffineAnim_83DB2A0
-
- .align 2
-gSpriteAffineAnimTable_83DB2C4:: @ 83DB2C4
- .4byte gSpriteAffineAnim_83DB2B0
-
- .align 2
-gBattleAnimSpriteTemplate_83DB2C8:: @ 83DB2C8
- spr_template 10000, 10000, gOamData_837DF94, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83DB2C0, sub_80E0F1C
-
- .align 2
-gBattleAnimSpriteTemplate_83DB2E0:: @ 83DB2E0
- spr_template 10000, 10000, gOamData_837DF94, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83DB2C4, sub_80E1004
-
- .align 2
-gBattleAnimSpriteTemplate_83DB2F8:: @ 83DB2F8
- spr_template 10074, 10074, gOamData_837DF24, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80E1078
-
- .align 2
-gSpriteAnim_83DB310:: @ 83DB310
- obj_image_anim_frame 1, 1
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83DB318:: @ 83DB318
- .4byte gSpriteAnim_83DB310
-
- .align 2
-gBattleAnimSpriteTemplate_83DB31C:: @ 83DB31C
- spr_template 10074, 10074, gOamData_837DF2C, gSpriteAnimTable_83DB318, NULL, gDummySpriteAffineAnimTable, sub_80E1078
-
- .align 2
-gBattleAnimSpriteTemplate_83DB334:: @ 83DB334
- spr_template 10074, 10074, gOamData_837DF2C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80E1108
-
- .align 2
-gBattleAnimSpriteTemplate_83DB34C:: @ 83DB34C
- spr_template 10074, 10074, gOamData_837DF24, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80E1728
-
- .align 2
-gBattleAnimSpriteTemplate_83DB364:: @ 83DB364
- spr_template 10281, 10281, gOamData_837DF54, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80E17CC
-
- .align 2
-gSpriteAnim_83DB37C:: @ 83DB37C
- obj_image_anim_frame 0, 8
- obj_image_anim_frame 4, 8
- obj_image_anim_frame 0, 8, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 8, 8
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnim_83DB390:: @ 83DB390
- obj_image_anim_frame 0, 8, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 4, 8
- obj_image_anim_frame 0, 8
- obj_image_anim_frame 8, 8
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnimTable_83DB3A4:: @ 83DB3A4
- .4byte gSpriteAnim_83DB37C
- .4byte gSpriteAnim_83DB390
-
- .align 2
-gBattleAnimSpriteTemplate_83DB3AC:: @ 83DB3AC
- spr_template 10073, 10073, gOamData_837DF2C, gSpriteAnimTable_83DB3A4, NULL, gDummySpriteAffineAnimTable, sub_80E1CB4
-
- .align 2
-gBattleAnimSpriteTemplate_83DB3C4:: @ 83DB3C4
- spr_template 0, 0, gDummyOamData, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80E1D84
-
- .align 2
-gBattleAnimSpriteTemplate_83DB3DC:: @ 83DB3DC
- spr_template 0, 0, gDummyOamData, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80E1E2C
-
- .align 2
-gSpriteAnim_83DB3F4:: @ 83DB3F4
- obj_image_anim_frame 0, 3
- obj_image_anim_frame 16, 3
- obj_image_anim_frame 32, 3
- obj_image_anim_frame 48, 3
- obj_image_anim_frame 64, 3
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnimTable_83DB40C:: @ 83DB40C
- .4byte gSpriteAnim_83DB3F4
-
- .align 2
-gSpriteTemplate_83DB410:: @ 83DB410
- spr_template 10071, 10071, gOamData_837DF34, gSpriteAnimTable_83DB40C, NULL, gDummySpriteAffineAnimTable, sub_80E1F3C
-
- .align 2
-gBattleAnimSpriteTemplate_83DB428:: @ 83DB428
- spr_template 0, 0, gDummyOamData, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80E24B8
-
- .align 2
-gSpriteAffineAnim_83DB440:: @ 83DB440
- obj_rot_scal_anim_frame 0x0, 0x0, 0, 8
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnim_83DB450:: @ 83DB450
- obj_rot_scal_anim_frame 0xD8, 0xD8, 0, 0
- obj_rot_scal_anim_frame 0x0, 0x0, 0, 8
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnim_83DB468:: @ 83DB468
- obj_rot_scal_anim_frame 0xB0, 0xB0, 0, 0
- obj_rot_scal_anim_frame 0x0, 0x0, 0, 8
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnim_83DB480:: @ 83DB480
- obj_rot_scal_anim_frame 0x80, 0x80, 0, 0
- obj_rot_scal_anim_frame 0x0, 0x0, 0, 8
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnimTable_83DB498:: @ 83DB498
- .4byte gSpriteAffineAnim_83DB440
- .4byte gSpriteAffineAnim_83DB450
- .4byte gSpriteAffineAnim_83DB468
- .4byte gSpriteAffineAnim_83DB480
-
- .align 2
-gBattleAnimSpriteTemplate_83DB4A8:: @ 83DB4A8
- spr_template 10135, 10135, gOamData_837E0B4, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83DB498, sub_80E27A0
-
- .align 2
-gBattleAnimSpriteTemplate_83DB4C0:: @ 83DB4C0
- spr_template 10135, 10135, gOamData_837E0B4, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83DB498, sub_80E2838
-
- .align 2
-gBattleAnimSpriteTemplate_83DB4D8:: @ 83DB4D8
- spr_template 10148, 10148, gOamData_837E0B4, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83DB498, sub_80E27A0
-
- .align 2
-gBattleAnimSpriteTemplate_83DB4F0:: @ 83DB4F0
- spr_template 10135, 10135, gOamData_837E0B4, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83DB498, sub_80E2870
-
- .align 2
-gBattleAnimSpriteTemplate_83DB508:: @ 83DB508
- spr_template 10135, 10135, gOamData_837E0B4, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83DB498, sub_80E2908
-
- .align 2
-gBattleAnimSpriteTemplate_83DB520:: @ 83DB520
- spr_template 10285, 10285, gOamData_837E054, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80E2978
-
- .align 2
-gBattleAnimSpriteTemplate_83DB538:: @ 83DB538
- spr_template 10135, 10135, gOamData_837DF94, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83DB498, sub_80E29C0
-
- .align 2
-gBattleAnimSpriteTemplate_83DB550:: @ 83DB550
- spr_template 10135, 10135, gOamData_837E0B4, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83DB498, sub_80E27E8
-
- .align 2
-gUnknown_083DB568:: @ 83DB568
- .incbin "baserom.gba", 0x003db568, 0x4
-
- .align 2
-gUnknown_083DB56C:: @ 83DB56C
- .4byte task_battle_intro_80BC47C
- .4byte task_battle_intro_80BC47C
- .4byte task00_battle_intro_80BC6C8
- .4byte task00_battle_intro_80BC6C8
- .4byte task00_battle_intro_80BC6C8
- .4byte task_battle_intro_80BC47C
- .4byte task_battle_intro_80BC47C
- .4byte task_battle_intro_80BC47C
- .4byte task_battle_intro_anim
- .4byte task_battle_intro_anim
-
- .align 2
-gUnknown_083DB594:: @ 83DB594
- .4byte sub_80E5168
- .4byte sub_80E517C
- .4byte sub_80E51C4
- .4byte sub_80E5270
-
- .align 2
-gUnknown_083DB5A4:: @ 83DB5A4
- .4byte PlayerGoSpeed0
- .4byte sub_80593C4
- .4byte sub_80593F4
-
- .align 2
-gUnknown_083DB5B0:: @ 83DB5B0
- .4byte sub_80E56F8
- .4byte sub_80E5708
- .4byte sub_80E5744
- .4byte sub_80E57BC
- .4byte sub_80E57F8
- .4byte sub_80E5834
- .4byte sub_80E5870
- .4byte sub_80E58AC
- .4byte sub_80E5920
- .4byte sub_80E5990
- .4byte sub_80E59A0
- .4byte sub_80E5A30
- .4byte sub_80E5AC0
-
- .align 2
-gUnknown_083DB5E4:: @ 83DB5E4
- .4byte CheckMovementInputAcroBikeNormal
- .4byte CheckMovementInputAcroBikeChangingDirection
- .4byte CheckMovementInputAcroBikeStandingWheelie
- .4byte CheckMovementInputAcroBikeBunnyHop
- .4byte CheckMovementInputAcroBikeMovingWheelie
- .4byte CheckMovementInputAcroBikeUnknownMode5
- .4byte CheckMovementInputAcroBikeUnknownMode6
-
- .align 1
-gUnknown_083DB600:: @ 83DB600
- .2byte 1, 2, 4
-
-Unknown_3DB606:: @ 83DB606
- .byte 4, 0
-
- .align 2
-gUnknown_083DB608:: @ 83DB608
- .4byte 0x1, 0x2, 0xf, 0xf, Unknown_3DB606, Unknown_3DB606, 0x1
- .4byte 0x2, 0x2, 0xf, 0xf, Unknown_3DB606, Unknown_3DB606, 0x2
- .4byte 0x3, 0x2, 0xf, 0xf, Unknown_3DB606, Unknown_3DB606, 0x3
- .4byte 0x4, 0x2, 0xf, 0xf, Unknown_3DB606, Unknown_3DB606, 0x4
-
- .align 1
-gMysteryEventPhrase:: @ 83DB678
- ec_word MYSTERY
- ec_word EVENT
- ec_word IS
- ec_word EXCITING
-
- .align 1
-gBerryMasterWifePhrases:: @ 83DB680
- ec_word GREAT
- ec_word BATTLE
-
- ec_word CHALLENGE
- ec_word CONTEST
-
- ec_word OVERWHELMING
- ec_pokemon1 LATIAS
-
- ec_word COOL
- ec_pokemon1 LATIOS
-
- ec_word SUPER
- ec_word HUSTLE
-
-gUnknown_083DB694:: @ 83DB694
- .4byte 0x02001000
-
-gUnknown_083DB698:: @ 83DB698
- .incbin "baserom.gba", 0x003db698, 0xc
-
-gUnknown_083DB6A4:: @ 83DB6A4
- .incbin "baserom.gba", 0x003db6a4, 0xe
-
-gUnknown_083DB6B2:: @ 83DB6B2
- .incbin "baserom.gba", 0x003db6b2, 0x42
-
- .align 2
-gUnknown_083DB6F4:: @ 83DB6F4
- .4byte OtherText_MakeProfilePage1, OtherText_MakeProfilePage2, 0x1
- .4byte OtherText_MakeMessagePage1, OtherText_MakeMessagePage2, 0x1
- .4byte OtherText_CombineNinePhrasesPage1, OtherText_CombineNinePhrasesPage2, 0x1
- .4byte OtherText_DescribeFeelingsPage1, OtherText_DescribeFeelingsPage2, 0x1
- .4byte OtherText_ImproveBardSongPage1, OtherText_ImproveBardSongPage2, 0x1
- .4byte OtherText_CombineTwoPhrasesPage1, OtherText_CombineTwoPhrasesPage2, 0x1
- .4byte OtherText_YourProfile, OtherText_ConfirmTrendyPage2, 0x0
- .4byte OtherText_YourFeelingBattle, OtherText_ConfirmTrendyPage2, 0x1
- .4byte OtherText_SetWinMessage, OtherText_ConfirmTrendyPage2, 0x1
- .4byte OtherText_SetLossMessage, OtherText_ConfirmTrendyPage2, 0x1
- .4byte OtherText_MailMessage, OtherText_ConfirmTrendyPage2, 0x1
- .4byte OtherText_MailSalutation, OtherText_ConfirmTrendyPage2, 0x1
- .4byte OtherText_NewSong, OtherText_ConfirmTrendyPage2, 0x0
- .4byte OtherText_TheAnswer, OtherText_ConfirmTrendyPage2, 0x0
- .4byte OtherText_ConfirmTrendyPage1, OtherText_ConfirmTrendyPage2, 0x1
- .4byte OtherText_HipsterPage1, OtherText_HipsterPage2, 0x1
- .4byte OtherText_WithFourPhrases, OtherText_CombineNinePhrasesPage2, 0x1
-
-gUnknown_083DB7C0:: @ 83DB7C0
- .incbin "baserom.gba", 0x003db7c0, 0x1c
-
- .align 2
-gUnknown_083DB7DC:: @ 83DB7DC
- .4byte 0x0200ac80
- .4byte 0x0200acc9
- .4byte 0x0200ad12
- .4byte 0x0200ad5b
-
-gUnknown_083DB7EC:: @ 83DB7EC
- .incbin "baserom.gba", 0x003db7ec, 0x8
-
-gUnknown_083DB7F4:: @ 83DB7F4
- .incbin "baserom.gba", 0x3db7f4, 0xc
-
- .align 2
-InterviewPalette_0:: @ 83DB800
- .incbin "graphics/misc/interview_pal0.gbapal"
-
- .align 2
-InterviewPalette_1:: @ 83DB820
- .incbin "graphics/misc/interview_pal1.gbapal"
-
- .align 2
-InterviewArrowTiles: @ 83DB840
- .incbin "graphics/misc/interview_arrow.4bpp"
-
- .align 2
-InterviewButtonTiles: @ 83DB940
- .incbin "graphics/misc/interview_buttons.4bpp"
-
- .align 2
-gMenuInterviewFrame_Pal::
- .incbin "graphics/misc/interview_frame.gbapal"
-
- .align 2
-gMenuInterviewFrame_Gfx::
- .incbin "graphics/misc/interview_frame.4bpp.lz"
-
- .align 2
-InterviewTriangleCursorTiles: @ 83DBB94
- .incbin "graphics/misc/interview_triangle_cursor.4bpp"
-
- .align 2
-gSpriteSheets_Interview:: @ 83DBBB4
- obj_tiles InterviewTriangleCursorTiles, 0x20, 0
- obj_tiles gInterviewOutlineCursorTiles, 0x700, 1
- obj_tiles InterviewArrowTiles, 0x100, 2
- obj_tiles InterviewButtonTiles, 0x100, 3
- null_obj_tiles
-
- .align 2
-gSpritePalettes_Interview:: @ 83DBBDC
- obj_pal InterviewPalette_0, 0
- obj_pal InterviewPalette_1, 1
- null_obj_pal
-
- .align 2
-gOamData_83DBBF4:: @ 83DBBF4
- .2byte 0x0000
- .2byte 0x0000
- .2byte 0x0000
-
- .align 2
-gSpriteTemplate_83DBBFC:: @ 83DBBFC
- spr_template 0, 0, gOamData_83DBBF4, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80E82BC
-
- .align 2
-gOamData_83DBC14:: @ 83DBC14
- .2byte 0x4400
- .2byte 0x8000
- .2byte 0x0400
-
- .align 2
-gSpriteAnim_83DBC1C:: @ 83DBC1C
- obj_image_anim_frame 0, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83DBC24:: @ 83DBC24
- obj_image_anim_frame 8, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83DBC2C:: @ 83DBC2C
- obj_image_anim_frame 0, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83DBC34:: @ 83DBC34
- obj_image_anim_frame 24, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83DBC3C:: @ 83DBC3C
- obj_image_anim_frame 32, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83DBC44:: @ 83DBC44
- obj_image_anim_frame 40, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83DBC4C:: @ 83DBC4C
- obj_image_anim_frame 40, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83DBC54:: @ 83DBC54
- obj_image_anim_frame 40, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83DBC5C:: @ 83DBC5C
- obj_image_anim_frame 48, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83DBC64:: @ 83DBC64
- obj_image_anim_frame 40, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83DBC6C:: @ 83DBC6C
- obj_image_anim_frame 48, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83DBC74:: @ 83DBC74
- obj_image_anim_frame 40, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83DBC7C:: @ 83DBC7C
- .4byte gSpriteAnim_83DBC1C
- .4byte gSpriteAnim_83DBC24
- .4byte gSpriteAnim_83DBC2C
- .4byte gSpriteAnim_83DBC34
-
- .align 2
-gSpriteAnimTable_83DBC8C:: @ 83DBC8C
- .4byte gSpriteAnim_83DBC3C
- .4byte gSpriteAnim_83DBC44
- .4byte gSpriteAnim_83DBC4C
- .4byte gSpriteAnim_83DBC54
-
- .align 2
-gSpriteAnimTable_83DBC9C:: @ 83DBC9C
- .4byte gSpriteAnim_83DBC5C
- .4byte gSpriteAnim_83DBC64
- .4byte gSpriteAnim_83DBC6C
- .4byte gSpriteAnim_83DBC74
-
- .align 2
-gSpriteTemplate_83DBCAC:: @ 83DBCAC
- spr_template 1, 1, gOamData_83DBC14, gSpriteAnimTable_83DBC7C, NULL, gDummySpriteAffineAnimTable, sub_80E85F8
-
- .align 2
-gUnknown_083DBCC4:: @ 83DBCC4
- .incbin "baserom.gba", 0x003dbcc4, 0x1c
-
- .align 2
-gOamData_83DBCE0:: @ 83DBCE0
- .2byte 0x0000
- .2byte 0x4000
- .2byte 0x0400
-
- .align 2
-gSpriteAnim_83DBCE8:: @ 83DBCE8
- obj_image_anim_frame 0, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83DBCF0:: @ 83DBCF0
- obj_image_anim_frame 4, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83DBCF8:: @ 83DBCF8
- .4byte gSpriteAnim_83DBCE8
- .4byte gSpriteAnim_83DBCF0
-
-Unknown_83DBD00:
- .incbin "baserom.gba", 0x003dbd00, 0x8
-Unknown_83DBD08:
- .incbin "baserom.gba", 0x003dbd08, 0x8
-
-gUnknown_083DBD10:: @ 83DBD10
- .4byte Unknown_83DBD00
- .4byte Unknown_83DBD08
-
- .align 2
-gSpriteTemplate_83DBD18:: @ 83DBD18
- spr_template 2, 0, gOamData_83DBCE0, gSpriteAnimTable_83DBCF8, NULL, gDummySpriteAffineAnimTable, sub_80E8B78
-
- .align 2
-gUnknown_083DBD30:: @ 83DBD30
- obj_tiles gMenuInterviewFrame_Gfx, 2048, 0x0006
-
- .align 2
-gUnknown_083DBD38:: @ 83DBD38
- obj_pal gMenuInterviewFrame_Pal, 0x0004
-
- .align 2
-gOamData_83DBD40:: @ 83DBD40
- .2byte 0x0000
- .2byte 0xC000
- .2byte 0x0000
-
- .align 2
-gSpriteTemplate_83DBD48:: @ 83DBD48
- spr_template 6, 4, gOamData_83DBD40, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-gUnknown_083DBD60:: @ 83DBD60
- obj_tiles gMenuWordGroupIndicator_Gfx, 4096, 0x0007
-
- .align 2
-gUnknown_083DBD68:: @ 83DBD68
- obj_pal gMenuWordGroupIndicator_Pal, 0x0005
-
- .align 2
-gOamData_83DBD70:: @ 83DBD70
- .2byte 0x4000
- .2byte 0xC000
- .2byte 0x0000
-
- .align 2
-gSpriteAnim_83DBD78:: @ 83DBD78
- obj_image_anim_frame 96, 3
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83DBD80:: @ 83DBD80
- obj_image_anim_frame 64, 4
- obj_image_anim_frame 96, 4
- obj_image_anim_frame 64, 4
- obj_image_anim_frame 0, 4
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83DBD94:: @ 83DBD94
- obj_image_anim_frame 64, 4
- obj_image_anim_frame 96, 4
- obj_image_anim_frame 64, 4
- obj_image_anim_frame 32, 4
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83DBDA8:: @ 83DBDA8
- obj_image_anim_frame 64, 2
- obj_image_anim_frame 32, 2
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83DBDB4:: @ 83DBDB4
- obj_image_anim_frame 64, 2
- obj_image_anim_frame 0, 2
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83DBDC0:: @ 83DBDC0
- obj_image_anim_frame 64, 2
- obj_image_anim_frame 96, 2
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83DBDCC:: @ 83DBDCC
- .4byte gSpriteAnim_83DBD78
- .4byte gSpriteAnim_83DBD80
- .4byte gSpriteAnim_83DBD94
- .4byte gSpriteAnim_83DBDA8
- .4byte gSpriteAnim_83DBDB4
- .4byte gSpriteAnim_83DBDC0
-
- .align 2
-gSpriteTemplate_83DBDE4:: @ 83DBDE4
- spr_template 7, 5, gOamData_83DBD70, gSpriteAnimTable_83DBDCC, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
-gUnknown_083DBDFC:: @ 83DBDFC
- .incbin "baserom.gba", 0x003dbdfc, 0x20
-
-gUnknown_083DBE1C:: @ 83DBE1C
- .incbin "baserom.gba", 0x003dbe1c, 0x24
-
-gUnknown_083DBE40:: @ 83DBE40
- .incbin "baserom.gba", 0x003dbe40, 0x68
-
-gUnknown_083DBEA8:: @ 83DBEA8
- .incbin "baserom.gba", 0x003dbea8, 0x4
-
-gUnknown_083DBEAC:: @ 83DBEAC
- .incbin "baserom.gba", 0x003dbeac, 0x80
-
-@ 83DBF2C
- .include "data/text/easy_chat/group_words.inc"
-
-@ 83DE138
- .include "data/text/easy_chat/words_by_letter.inc"
-
-@ 83DEFFA
- .include "data/text/easy_chat/group_sizes.inc"
-
-@ 83DF010
- .include "data/text/easy_chat/group_orders.inc"
-
-@ 83DFE6C
- .include "data/text/easy_chat/group_name_table.inc"
-
-gUnknown_083DFEC4:: @ 83DFEC4
- .incbin "baserom.gba", 0x003dfec4, 0x4
-
-gUnknown_083DFEC8:: @ 83DFEC8
- .4byte 0x02039360
-
-gUnknown_083DFECC:: @ 83DFECC
- .incbin "baserom.gba", 0x003dfecc, 0x20
-
-gUnknown_083DFEEC:: @ 83DFEEC
- .incbin "baserom.gba", 0x003dfeec, 0xa0
-
-gUnknown_083DFF8C:: @ 83DFF8C
- .incbin "baserom.gba", 0x003dff8c, 0xb0
-
-gUnknown_083E003C:: @ 83E003C
- .incbin "baserom.gba", 0x003e003c, 0x20
-
-gUnknown_083E005C:: @ 83E005C
- .incbin "baserom.gba", 0x003e005c, 0x20
-
-gUnknown_083E007C:: @ 83E007C
- .incbin "baserom.gba", 0x003e007c, 0xa8
-
-gUnknown_083E0124:: @ 83E0124
- .incbin "baserom.gba", 0x003e0124, 0x20
-
-gUnknown_083E0144:: @ 83E0144
- .incbin "baserom.gba", 0x003e0144, 0x68
-
-gUnknown_083E01AC:: @ 83E01AC
- .incbin "baserom.gba", 0x003e01ac, 0x48
-
-gUnknown_083E01F4:: @ 83E01F4
- .incbin "baserom.gba", 0x003e01f4, 0x60
-
-gUnknown_083E0254:: @ 83E0254
- .incbin "baserom.gba", 0x003e0254, 0x20
-
-gUnknown_083E0274:: @ 83E0274
- .incbin "baserom.gba", 0x003e0274, 0x20
-
- .align 2
-gPokenavConditionSearch2_Pal:: @ 83E0294
- .incbin "graphics/pokenav/condition_search2.gbapal"
-
-gUnknown_083E02B4:: @ 83E02B4
- .incbin "baserom.gba", 0x003e02b4, 0x60
-
-gUnknown_083E0314:: @ 83E0314
- .incbin "baserom.gba", 0x003e0314, 0x20
-
- .align 2
-gUnknown_083E0334:: @ 83E0334
- .incbin "graphics/pokenav/trainereyes_misc_pal.bin" @ the original bytes have an "FF FF" instance which is incompatible with gbagfx to produce the bytes needed to match the original ROM, so I am forced to include it as a .bin until the lowest bit is properly handled or a better workaround is produced
-
- .align 2
-gUnknown_083E0354:: @ 83E0354
- .incbin "graphics/pokenav/trainereyes_misc.4bpp.lz"
-
-gUnknown_083E039C:: @ 83E039C
- .incbin "baserom.gba", 0x003e039c, 0x4
-
-gUnknown_083E03A0:: @ 83E03A0
- .incbin "baserom.gba", 0x003e03a0, 0x8
-
-gUnknown_083E03A8:: @ 83E03A8
- .incbin "baserom.gba", 0x003e03a8, 0x64
-
-gUnknown_083E040C:: @ 83E040C
- .incbin "graphics/misc/ribbons_half.4bpp.lz"
-
- .align 2
-gPokenavOutlinePalette:: @ 83E05D4
- .incbin "graphics/pokenav/outline.gbapal"
-
- .align 2
-gPokenavOutlineTiles:: @ 83E05F4
- .incbin "graphics/pokenav/outline.4bpp.lz"
-
- .align 2
-gPokenavOutlineTilemap:: @ 83E0804
- .incbin "graphics/pokenav/outline_map.bin.lz"
-
- .align 2
-gPokenavCityMap_Lavaridge_0:: @ 83E096C
- .incbin "graphics/pokenav/city_maps/lavaridge_0.bin.lz"
-
- .align 2
-gPokenavCityMap_Fallarbor_0:: @ 83E09B0
- .incbin "graphics/pokenav/city_maps/fallarbor_0.bin.lz"
-
- .align 2
-gPokenavCityMap_Fortree_0:: @ 83E09F8
- .incbin "graphics/pokenav/city_maps/fortree_0.bin.lz"
-
- .align 2
-gPokenavCityMap_Slateport_0:: @ 83E0A48
- .incbin "graphics/pokenav/city_maps/slateport_0.bin.lz"
-
- .align 2
-gPokenavCityMap_Slateport_1:: @ 83E0AA8
- .incbin "graphics/pokenav/city_maps/slateport_1.bin.lz"
-
- .align 2
-gPokenavCityMap_Rustboro_0:: @ 83E0AF4
- .incbin "graphics/pokenav/city_maps/rustboro_0.bin.lz"
-
- .align 2
-gPokenavCityMap_Rustboro_1:: @ 83E0B48
- .incbin "graphics/pokenav/city_maps/rustboro_1.bin.lz"
-
- .align 2
-gPokenavCityMap_Pacifidlog_0:: @ 83E0B9C
- .incbin "graphics/pokenav/city_maps/pacifidlog_0.bin.lz"
-
- .align 2
-gPokenavCityMap_Mauville_1:: @ 83E0BDC
- .incbin "graphics/pokenav/city_maps/mauville_1.bin.lz"
-
- .align 2
-gPokenavCityMap_Mauville_0:: @ 83E0C34
- .incbin "graphics/pokenav/city_maps/mauville_0.bin.lz"
-
- .align 2
-gPokenavCityMap_Oldale_0:: @ 83E0C88
- .incbin "graphics/pokenav/city_maps/oldale_0.bin.lz"
-
- .align 2
-gPokenavCityMap_Lilycove_1:: @ 83E0CB8
- .incbin "graphics/pokenav/city_maps/lilycove_1.bin.lz"
-
- .align 2
-gPokenavCityMap_Lilycove_0:: @ 83E0D04
- .incbin "graphics/pokenav/city_maps/lilycove_0.bin.lz"
-
- .align 2
-gPokenavCityMap_Littleroot_0:: @ 83E0D5C
- .incbin "graphics/pokenav/city_maps/littleroot_0.bin.lz"
-
- .align 2
-gPokenavCityMap_Dewford_0:: @ 83E0D8C
- .incbin "graphics/pokenav/city_maps/dewford_0.bin.lz"
-
- .align 2
-gPokenavCityMap_Sootopolis_0:: @ 83E0DC4
- .incbin "graphics/pokenav/city_maps/sootopolis_0.bin.lz"
-
- .align 2
-gPokenavCityMap_EverGrande_0:: @ 83E0E04
- .incbin "graphics/pokenav/city_maps/ever_grande_0.bin.lz"
-
- .align 2
-gPokenavCityMap_EverGrande_1:: @ 83E0E4C
- .incbin "graphics/pokenav/city_maps/ever_grande_1.bin.lz"
-
- .align 2
-gPokenavCityMap_Verdanturf_0:: @ 83E0E90
- .incbin "graphics/pokenav/city_maps/verdanturf_0.bin.lz"
-
- .align 2
-gPokenavCityMap_Mossdeep_1:: @ 83E0EC8
- .incbin "graphics/pokenav/city_maps/mossdeep_1.bin.lz"
-
- .align 2
-gPokenavCityMap_Mossdeep_0:: @ 83E0F10
- .incbin "graphics/pokenav/city_maps/mossdeep_0.bin.lz"
-
- .align 2
-gPokenavCityMap_Petalburg_0:: @ 83E0F6C
- .incbin "graphics/pokenav/city_maps/petalburg_0.bin.lz"
-
-@ 83E0FC8
- .include "data/text/ribbon_descriptions.inc"
-
-@ 83E1204
- .include "data/text/gift_ribbon_descriptions.inc"
-
-@ 83E178C
- .include "data/text/trainer_eye_descriptions.inc"
-
- .align 2
-gUnknown_083E31B0:: @ 83E31B0
- .4byte PCText_CheckMap
- .4byte PCText_CheckPoke
- .4byte PCText_CheckTrainer
- .4byte PCText_CheckRibbons
- .4byte PCText_PutAwayNav
- .4byte PCText_NoRibbonWin
- .4byte PCText_NoTrainers
-
- .align 2
-gUnknown_083E31CC:: @ 83E31CC
- .4byte PCText_CheckParty
- .4byte PCText_CheckPokeAll
- .4byte PCText_ReturnToNav
-
- .align 2
-gUnknown_083E31D8:: @ 83E31D8
- .4byte PCText_FindCool
- .4byte PCText_FindBeauty
- .4byte PCText_FindCute
- .4byte PCText_FindSmart
- .4byte PCText_FindTough
- .4byte PCText_ReturnToCondition
-
- .align 2
-gPokenavCityMaps:: @ 83E31F0
- .4byte gPokenavCityMap_Littleroot_0, NULL
- .4byte gPokenavCityMap_Oldale_0, NULL
- .4byte gPokenavCityMap_Dewford_0, NULL
- .4byte gPokenavCityMap_Lavaridge_0, NULL
- .4byte gPokenavCityMap_Fallarbor_0, NULL
- .4byte gPokenavCityMap_Verdanturf_0, NULL
- .4byte gPokenavCityMap_Pacifidlog_0, NULL
- .4byte gPokenavCityMap_Petalburg_0, NULL
- .4byte gPokenavCityMap_Slateport_0, gPokenavCityMap_Slateport_1
- .4byte gPokenavCityMap_Mauville_0, gPokenavCityMap_Mauville_1
- .4byte gPokenavCityMap_Rustboro_0, gPokenavCityMap_Rustboro_1
- .4byte gPokenavCityMap_Fortree_0, NULL
- .4byte gPokenavCityMap_Lilycove_0, gPokenavCityMap_Lilycove_1
- .4byte gPokenavCityMap_Mossdeep_0, gPokenavCityMap_Mossdeep_1
- .4byte gPokenavCityMap_Sootopolis_0, NULL
- .4byte gPokenavCityMap_EverGrande_0, gPokenavCityMap_EverGrande_1
-
- .align 2
-gUnknown_083E3270:: @ 83E3270
- .4byte sub_80F0A24
- .4byte sub_80F0A24
- .4byte sub_80F0A74
-
- .align 2
-gPokenavIconPalette::
- .incbin "graphics/pokenav/icon.gbapal"
-
- .align 2
-gUnknown_083E329C:: @ 83E329C
- .incbin "graphics/pokenav/icon.4bpp.lz"
-
- .align 2
-gPokenavPokeballTiles::
- .incbin "graphics/pokenav/pokeball.4bpp"
-
- .align 2
-gUnknown_083E3780: @ 83E3780
- .incbin "baserom.gba", 0x3e3780, 0x20
-
- .align 2
-gPokenavSparkle_Pal::
- .incbin "graphics/pokenav/sparkle.gbapal"
-
- .align 2
-gPokenavSparkle_Gfx::
- .incbin "graphics/pokenav/sparkle.4bpp"
-
- .align 2
-gPokenavUpDownArrows_Gfx::
- .incbin "graphics/pokenav/arrows.4bpp"
-
-gUnknown_083E3BC0::
- .incbin "baserom.gba", 0x003E3BC0, 0x20
-
- .align 2
-gTiles_083E3BE0::
- .incbin "graphics/unknown/unknown_3E3BE0.4bpp"
-
- .align 2
-gUnknown_083E3C60:: @ 83E3C60
- .incbin "graphics/misc/ribbons_cool.gbapal"
- .incbin "graphics/misc/ribbons_beauty.gbapal"
- .incbin "graphics/misc/ribbons_cute.gbapal"
- .incbin "graphics/misc/ribbons_smart.gbapal"
- .incbin "graphics/misc/ribbons_tough.gbapal"
-
- .align 2
-gUnknown_083E3D00:: @ 83E3D00
- .incbin "graphics/misc/ribbons_full.4bpp.lz"
-
- .align 2
-PokenavBlueLightPalette:
- .incbin "graphics/pokenav/blue_light.gbapal"
-
- .align 2
-PokenavBlueLightTiles:
- .incbin "graphics/pokenav/blue_light.4bpp"
-
-Palette_3E42D8: @ 83E42D8
- .incbin "baserom.gba", 0x3e42d8, 0x20
-
-gUnknown_083E42F8:: @ 83E42F8
- .incbin "baserom.gba", 0x003e42f8, 0x20
-
- .align 2
-gOamData_83E4318:: @ 83E4318
- .2byte 0x4000
- .2byte 0x8000
- .2byte 0x0400
-
- .align 2
-gSpriteAnim_83E4320:: @ 83E4320
- obj_image_anim_frame 0, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83E4328:: @ 83E4328
- obj_image_anim_frame 8, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83E4330:: @ 83E4330
- obj_image_anim_frame 16, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83E4338:: @ 83E4338
- obj_image_anim_frame 24, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83E4340:: @ 83E4340
- obj_image_anim_frame 32, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83E4348:: @ 83E4348
- obj_image_anim_frame 40, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83E4350:: @ 83E4350
- obj_image_anim_frame 48, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83E4358:: @ 83E4358
- obj_image_anim_frame 56, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83E4360:: @ 83E4360
- obj_image_anim_frame 64, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83E4368:: @ 83E4368
- obj_image_anim_frame 72, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83E4370:: @ 83E4370
- obj_image_anim_frame 80, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83E4378:: @ 83E4378
- obj_image_anim_frame 88, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83E4380:: @ 83E4380
- obj_image_anim_frame 96, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83E4388:: @ 83E4388
- obj_image_anim_frame 104, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83E4390:: @ 83E4390
- obj_image_anim_frame 112, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83E4398:: @ 83E4398
- obj_image_anim_frame 120, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83E43A0:: @ 83E43A0
- obj_image_anim_frame 128, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83E43A8:: @ 83E43A8
- obj_image_anim_frame 136, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83E43B0:: @ 83E43B0
- obj_image_anim_frame 144, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83E43B8:: @ 83E43B8
- obj_image_anim_frame 152, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83E43C0:: @ 83E43C0
- obj_image_anim_frame 160, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83E43C8:: @ 83E43C8
- obj_image_anim_frame 168, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83E43D0:: @ 83E43D0
- obj_image_anim_frame 176, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83E43D8:: @ 83E43D8
- obj_image_anim_frame 184, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83E43E0:: @ 83E43E0
- .4byte gSpriteAnim_83E4320
- .4byte gSpriteAnim_83E4328
- .4byte gSpriteAnim_83E4330
- .4byte gSpriteAnim_83E4338
- .4byte gSpriteAnim_83E4340
- .4byte gSpriteAnim_83E4348
- .4byte gSpriteAnim_83E4350
- .4byte gSpriteAnim_83E4358
- .4byte gSpriteAnim_83E4360
- .4byte gSpriteAnim_83E4368
- .4byte gSpriteAnim_83E4370
- .4byte gSpriteAnim_83E4378
- .4byte gSpriteAnim_83E4380
- .4byte gSpriteAnim_83E4388
- .4byte gSpriteAnim_83E4390
- .4byte gSpriteAnim_83E4398
- .4byte gSpriteAnim_83E43A0
- .4byte gSpriteAnim_83E43A8
- .4byte gSpriteAnim_83E43B0
- .4byte gSpriteAnim_83E43B8
- .4byte gSpriteAnim_83E43C0
- .4byte gSpriteAnim_83E43C8
- .4byte gSpriteAnim_83E43D0
- .4byte gSpriteAnim_83E43D8
-
-Unknown_83E4440:
- .incbin "baserom.gba", 0x003e4440, 0x10
-
-gUnknown_083E4450:: @ 83E4450
- .4byte Unknown_83E4440
-
- .align 2
-gSpriteTemplate_83E4454:: @ 83E4454
- spr_template 0, 0, gOamData_83E4318, gSpriteAnimTable_83E43E0, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-gSpriteSheet_PokenavBlueLight:: @ 83E446C
- obj_tiles PokenavBlueLightTiles, 0x100, 25
-
- .align 2
-gSpritePalette_PokenavBlueLight:: @ 83E4474
- obj_pal PokenavBlueLightPalette, 17
-
- .align 2
-gOamData_83E447C:: @ 83E447C
- .2byte 0x4000
- .2byte 0x8000
- .2byte 0x0400
-
- .align 2
-gSpriteTemplate_83E4484:: @ 83E4484
- spr_template 25, 17, gOamData_83E447C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80F2654
-
-gUnknown_083E449C:: @ 83E449C
- obj_pal gPokenavMenuOptions3_Pal, 2
- obj_pal gPokenavCondition5_Pal, 3
- obj_pal 0x0, 0
-
- .align 2
-gOamData_83E44B4:: @ 83E44B4
- .2byte 0x4000
- .2byte 0xC000
- .2byte 0x0400
-
- .align 2
-gSpriteAnim_83E44BC:: @ 83E44BC
- obj_image_anim_frame 0, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83E44C4:: @ 83E44C4
- obj_image_anim_frame 32, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83E44CC:: @ 83E44CC
- obj_image_anim_frame 64, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83E44D4:: @ 83E44D4
- .4byte gSpriteAnim_83E44BC
- .4byte gSpriteAnim_83E44C4
- .4byte gSpriteAnim_83E44CC
-
- .align 2
-gSpriteTemplate_83E44E0:: @ 83E44E0
- spr_template 1, 2, gOamData_83E44B4, gSpriteAnimTable_83E44D4, NULL, gDummySpriteAffineAnimTable, sub_80F2BBC
-
- .align 2
-gSpriteTemplate_83E44F8:: @ 83E44F8
- spr_template 1, 3, gOamData_83E44B4, gSpriteAnimTable_83E44D4, NULL, gDummySpriteAffineAnimTable, sub_80F2BBC
-
- .align 2
-gOamData_83E4510:: @ 83E4510
- .2byte 0x4000
- .2byte 0x8000
- .2byte 0x0400
-
- .align 2
-gSpriteAnim_83E4518:: @ 83E4518
- obj_image_anim_frame 0, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83E4520:: @ 83E4520
- obj_image_anim_frame 8, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83E4528:: @ 83E4528
- .4byte gSpriteAnim_83E4518
- .4byte gSpriteAnim_83E4520
-
- .align 2
-gSpriteTemplate_83E4530:: @ 83E4530
- spr_template 2, 2, gOamData_83E4510, gSpriteAnimTable_83E4528, NULL, gDummySpriteAffineAnimTable, sub_80F2BBC
-
- .align 2
-gSpriteTemplate_83E4548:: @ 83E4548
- spr_template 2, 3, gOamData_83E4510, gSpriteAnimTable_83E4528, NULL, gDummySpriteAffineAnimTable, sub_80F2BBC
-
- .align 2
-gOamData_83E4560:: @ 83E4560
- .2byte 0x0000
- .2byte 0xC000
- .2byte 0x0400
-
- .align 2
-gUnknown_083E4568:: @ 83E4568
- .incbin "baserom.gba", 0x003e4568, 0x8
-
- .align 2
-gSpriteTemplate_83E4570:: @ 83E4570
- spr_template 6, 6, gOamData_83E4560, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80F2E00
-
-gUnknown_083E4588:: @ 83E4588
- .incbin "baserom.gba", 0x003e4588, 0x8
-
- .align 2
-gUnknown_083E4590:: @ 83E4590
- obj_tiles gPokenavArrow_Gfx, 0x40, 9
- obj_tiles gPokenavUpDownArrows_Gfx, 0x80, 10
- null_obj_tiles
-
- .align 2
-gUnknown_083E45A8:: @ 83E45A8
- obj_pal gPokenavArrowsPalette, 9
-
- .align 2
-gOamData_83E45B0:: @ 83E45B0
- .2byte 0x8000
- .2byte 0x0000
- .2byte 0x0800
-
- .align 2
-gSpriteTemplate_83E45B8:: @ 83E45B8
- spr_template 9, 9, gOamData_83E45B0, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80F3190
-
- .align 2
-gSpriteAnim_83E45D0:: @ 83E45D0
- obj_image_anim_frame 0, 3
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83E45D8:: @ 83E45D8
- obj_image_anim_frame 2, 3
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83E45E0:: @ 83E45E0
- .4byte gSpriteAnim_83E45D0
- .4byte gSpriteAnim_83E45D8
-
- .align 2
-gOamData_83E45E8:: @ 83E45E8
- .2byte 0x4000
- .2byte 0x0000
- .2byte 0x0800
-
- .align 2
-gSpriteTemplate_83E45F0:: @ 83E45F0
- spr_template 10, 9, gOamData_83E45E8, gSpriteAnimTable_83E45E0, NULL, gDummySpriteAffineAnimTable, sub_80F31AC
-
- .align 2
-gOamData_83E4608:: @ 83E4608
- .2byte 0x0000
- .2byte 0x4000
- .2byte 0x0800
-
- .align 2
-gSpriteAnim_83E4610:: @ 83E4610
- obj_image_anim_frame 0, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83E4618:: @ 83E4618
- obj_image_anim_frame 4, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83E4620:: @ 83E4620
- .4byte gSpriteAnim_83E4610
- .4byte gSpriteAnim_83E4618
-
- .align 2
-gUnknown_083E4628:: @ 83E4628
- obj_tiles gPokenavPokeballTiles, 0x100, 3
- obj_tiles gUnknown_083E3780, 0x20, 4
- obj_tiles gPokenavConditionMenuCancel_Gfx, 0x100, 5
- null_obj_tiles
-
- .align 2
-gUnknown_083E4648:: @ 83E4648
- obj_pal gPokenavConditionPokeball_Pal, 4
- obj_pal gPokenavCondition4_Pal, 5
- .space 8
-
- .align 2
-gSpriteTemplate_83E4660:: @ 83E4660
- spr_template 3, 4, gOamData_83E4608, gSpriteAnimTable_83E4620, NULL, gDummySpriteAffineAnimTable, sub_80F3328
-
-gUnknown_083E4678:: @ 83E4678
- .incbin "baserom.gba", 0x003e4678, 0x20
-
-gUnknown_083E4698:: @ 83E4698
- .incbin "baserom.gba", 0x003e4698, 0x80
-
- .align 2
-gOamData_83E4718:: @ 83E4718
- .2byte 0x0100
- .2byte 0x8000
- .2byte 0x0000
-
- .align 2
-gSpriteAffineAnim_83E4720:: @ 83E4720
- obj_rot_scal_anim_frame 0x80, 0x80, 0, 0
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnim_83E4730:: @ 83E4730
- obj_rot_scal_anim_frame 0x80, 0x80, 0, 0
- obj_rot_scal_anim_frame 0x20, 0x20, 0, 4
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnim_83E4748:: @ 83E4748
- obj_rot_scal_anim_frame 0x100, 0x100, 0, 0
- obj_rot_scal_anim_frame 0xFFE0, 0xFFE0, 0, 4
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnimTable_83E4760:: @ 83E4760
- .4byte gSpriteAffineAnim_83E4720
- .4byte gSpriteAffineAnim_83E4730
- .4byte gSpriteAffineAnim_83E4748
-
- .align 2
-gSpriteTemplate_83E476C:: @ 83E476C
- spr_template 11, 10, gOamData_83E4718, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83E4760, SpriteCallbackDummy
-
- .align 2
-gUnknown_083E4784:: @ 83E4784
- obj_tiles gPokenavSparkle_Gfx, 896, 0x0017
-
- .align 2
-gUnknown_083E478C:: @ 83E478C
- obj_pal gPokenavSparkle_Pal, 0x000f
-
-gUnknown_083E4794:: @ 83E4794
- .incbin "baserom.gba", 0x003e4794, 0x28
-
- .align 2
-gOamData_83E47BC:: @ 83E47BC
- .2byte 0x0000
- .2byte 0x4000
- .2byte 0x0000
-
- .align 2
-gSpriteAnim_83E47C4:: @ 83E47C4
- obj_image_anim_frame 0, 5
- obj_image_anim_frame 4, 5
- obj_image_anim_frame 8, 5
- obj_image_anim_frame 12, 5
- obj_image_anim_frame 16, 5
- obj_image_anim_frame 20, 5
- obj_image_anim_frame 24, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83E47E4:: @ 83E47E4
- .4byte gSpriteAnim_83E47C4
- .4byte gSpriteAnim_83E47C4 + 0x8
- .4byte gSpriteAnim_83E47C4 + 0x10
- .4byte gSpriteAnim_83E47C4 + 0x18
-
- @ unused?
- .4byte gSpriteAnim_83E47C4 + 0x20
- .4byte gSpriteAnim_83E47C4 + 0x28
- .4byte gSpriteAnim_83E47C4 + 0x30
-
- .align 2
-gSpriteTemplate_83E4800:: @ 83E4800
- spr_template 23, 15, gOamData_83E47BC, gSpriteAnimTable_83E47E4, NULL, gDummySpriteAffineAnimTable, sub_80F3E9C
-
- .align 2
-gUnknown_083E4818:: @ 83E4818
- obj_pal gPokenavIconPalette, 16
-
- .align 2
-gSpriteAnim_83E4820:: @ 83E4820
- obj_image_anim_frame 0, 12
- obj_image_anim_frame 16, 12
- obj_image_anim_frame 32, 12
- obj_image_anim_frame 48, 12
- obj_image_anim_frame 64, 12
- obj_image_anim_frame 80, 12
- obj_image_anim_frame 96, 12
- obj_image_anim_frame 112, 12
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnimTable_83E4844:: @ 83E4844
- .4byte gSpriteAnim_83E4820
-
- .align 2
-gOamData_83E4848:: @ 83E4848
- .2byte 0x0000
- .2byte 0x8000
- .2byte 0x0000
-
- .align 2
-gSpriteTemplate_83E4850:: @ 83E4850
- spr_template 24, 16, gOamData_83E4848, gSpriteAnimTable_83E4844, NULL, gDummySpriteAffineAnimTable, sub_80F4138
-
- .align 2
-gUnknown_083E4868:: @ 83E4868
- obj_pal Palette_3E42D8, 18
-
- .align 2
-gOamData_83E4870:: @ 83E4870
- .2byte 0x4000
- .2byte 0x8000
- .2byte 0x0C00
-
- .align 2
-gSpriteTemplate_83E4878:: @ 83E4878
- spr_template 26, 18, gOamData_83E4870, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
-gUnknown_083E4890:: @ 83E4890
- .incbin "baserom.gba", 0x003e4890, 0x100
-
-gUnknown_083E4990:: @ 83E4990
- .incbin "baserom.gba", 0x003e4990, 0xc
-
-gUnknown_083E499C:: @ 83E499C
- .incbin "baserom.gba", 0x003e499c, 0x24
-
-gUnknown_083E49C0:: @ 83E49C0
- .incbin "baserom.gba", 0x003e49c0, 0x34
-
- .align 2
-gUnknown_083E49F4:: @ 83E49F4
- .incbin "graphics/misc/mon_markings.gbapal"
-
- .align 2
-gUnknown_083E4A14:: @ 83E4A14
- .incbin "graphics/misc/mon_markings.4bpp"
-
-gUnknown_083E5214:: @ 83E5214
- .incbin "baserom.gba", 0x003e5214, 0x8
-
-gUnknown_083E521C:: @ 83E521C
- .space 8
-
- .align 2
-gSpriteAnim_83E5224:: @ 83E5224
- obj_image_anim_frame 0, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83E522C:: @ 83E522C
- obj_image_anim_frame 1, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83E5234:: @ 83E5234
- obj_image_anim_frame 2, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83E523C:: @ 83E523C
- obj_image_anim_frame 3, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83E5244:: @ 83E5244
- obj_image_anim_frame 4, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83E524C:: @ 83E524C
- obj_image_anim_frame 5, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83E5254:: @ 83E5254
- obj_image_anim_frame 6, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83E525C:: @ 83E525C
- obj_image_anim_frame 7, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83E5264:: @ 83E5264
- obj_image_anim_frame 8, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83E526C:: @ 83E526C
- obj_image_anim_frame 9, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83E5274:: @ 83E5274
- .4byte gSpriteAnim_83E5224
- .4byte gSpriteAnim_83E522C
- .4byte gSpriteAnim_83E5234
- .4byte gSpriteAnim_83E523C
- .4byte gSpriteAnim_83E5244
- .4byte gSpriteAnim_83E524C
- .4byte gSpriteAnim_83E5254
- .4byte gSpriteAnim_83E525C
- .4byte gSpriteAnim_83E5264
- .4byte gSpriteAnim_83E526C
-
- .align 2
-gSpriteAnim_83E529C:: @ 83E529C
- obj_image_anim_frame 0, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83E52A4:: @ 83E52A4
- obj_image_anim_frame 64, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83E52AC:: @ 83E52AC
- .4byte gSpriteAnim_83E529C
- .4byte gSpriteAnim_83E52A4
-
-gUnknown_083E52B4:: @ 83E52B4
- .incbin "baserom.gba", 0x003E52B4, 0x8
-
- .align 2
-gSpriteAnim_83E52BC:: @ 83E52BC
- obj_image_anim_frame 0, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83E52C4:: @ 83E52C4
- obj_image_anim_frame 4, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83E52CC:: @ 83E52CC
- obj_image_anim_frame 8, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83E52D4:: @ 83E52D4
- obj_image_anim_frame 12, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83E52DC:: @ 83E52DC
- obj_image_anim_frame 16, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83E52E4:: @ 83E52E4
- obj_image_anim_frame 20, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83E52EC:: @ 83E52EC
- obj_image_anim_frame 24, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83E52F4:: @ 83E52F4
- obj_image_anim_frame 28, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83E52FC:: @ 83E52FC
- obj_image_anim_frame 32, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83E5304:: @ 83E5304
- obj_image_anim_frame 36, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83E530C:: @ 83E530C
- obj_image_anim_frame 40, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83E5314:: @ 83E5314
- obj_image_anim_frame 44, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83E531C:: @ 83E531C
- obj_image_anim_frame 48, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83E5324:: @ 83E5324
- obj_image_anim_frame 52, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83E532C:: @ 83E532C
- obj_image_anim_frame 56, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83E5334:: @ 83E5334
- obj_image_anim_frame 60, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83E533C:: @ 83E533C
- .4byte gSpriteAnim_83E52BC
- .4byte gSpriteAnim_83E52C4
- .4byte gSpriteAnim_83E52CC
- .4byte gSpriteAnim_83E52D4
- .4byte gSpriteAnim_83E52DC
- .4byte gSpriteAnim_83E52E4
- .4byte gSpriteAnim_83E52EC
- .4byte gSpriteAnim_83E52F4
- .4byte gSpriteAnim_83E52FC
- .4byte gSpriteAnim_83E5304
- .4byte gSpriteAnim_83E530C
- .4byte gSpriteAnim_83E5314
- .4byte gSpriteAnim_83E531C
- .4byte gSpriteAnim_83E5324
- .4byte gSpriteAnim_83E532C
- .4byte gSpriteAnim_83E5334
-
-gUnknown_083E537C:: @ 83E537C
- .incbin "baserom.gba", 0x003e537c, 0xc
-
- .align 2
-gUnknown_083E5388:: @ 83E5388
- .4byte OtherText_SoPretty
- .4byte OtherText_SoDarling
- .4byte OtherText_SoRelaxed
- .4byte OtherText_SoSunny
- .4byte OtherText_SoDesirable
- .4byte OtherText_SoExciting
- .4byte OtherText_SoAmusing
- .4byte OtherText_SoMagical
-
- .align 2
-gUnknown_083E53A8:: @ 83E53A8
- .4byte OtherText_WantVacationNicePlace
- .4byte OtherText_BoughtCrayonsIsNice
- .4byte OtherText_IfWeCouldFloat
- .4byte OtherText_SandWashesAwayMakeSad
- .4byte OtherText_WhatsBottomSeaLike
- .4byte OtherText_SeeSettingSun
- .4byte OtherText_LyingInGreenGrass
- .4byte OtherText_SecretBasesWonderful
-
-gUnknown_083E53C8:: @ 83E53C8
- .incbin "baserom.gba", 0x003e53c8, 0x18
-
- .align 2
-gUnknown_083E53E0:: @ 83E53E0
- .4byte 0x132, UnknownString_81AEFFC, UnknownString_81AF013, UnknownString_81AF022
- .4byte 0x102, UnknownString_81AF0A3, UnknownString_81AF0BB, UnknownString_81AF0CA
- .4byte 0x103, UnknownString_81AF149, UnknownString_81AF164, UnknownString_81AF174
- .4byte 0x104, UnknownString_81AF1E5, UnknownString_81AF1FD, UnknownString_81AF20A
- .4byte 0x106, UnknownString_81AF281, UnknownString_81AF299, UnknownString_81AF2A9
- .4byte 0x109, UnknownString_81AF32C, UnknownString_81AF345, UnknownString_81AF34D
- .4byte 0x10b, UnknownString_81AF3D0, UnknownString_81AF3ED, UnknownString_81AF3FC
- .4byte 0x10c, UnknownString_81AF46D, UnknownString_81AF481, UnknownString_81AF49B
- .4byte 0x10d, UnknownString_81AF511, UnknownString_81AF529, UnknownString_81AF536
- .4byte 0x10e, UnknownString_81AF5A9, UnknownString_81AF5BD, UnknownString_81AF5CD
- .4byte 0x10f, UnknownString_81AF63F, UnknownString_81AF661, UnknownString_81AF676
- .4byte 0x110, UnknownString_81AF711, UnknownString_81AF726, UnknownString_81AF73D
- .4byte 0x111, UnknownString_81AF7BF, UnknownString_81AF7D9, UnknownString_81AF7F1
- .4byte 0x112, UnknownString_81AF88A, UnknownString_81AF8A1, UnknownString_81AF8AA
- .4byte 0x113, UnknownString_81AF91B, UnknownString_81AF935, UnknownString_81AF943
- .4byte 0x114, UnknownString_81AF9C8, UnknownString_81AF9E0, UnknownString_81AF9F6
- .4byte 0x11a, UnknownString_81AFA79, UnknownString_81AFA92, UnknownString_81AFA9E
- .4byte 0x11b, UnknownString_81AFB17, UnknownString_81AFB2D, UnknownString_81AFB48
- .4byte 0x11c, UnknownString_81AFBD8, UnknownString_81AFBE7, UnknownString_81AFC04
- .4byte 0x21d, UnknownString_81AFC8A, UnknownString_81AFC9D, UnknownString_81AFCBE
- .4byte 0x11e, UnknownString_81AFD44, UnknownString_81AFD60, UnknownString_81AFD80
- .4byte 0x121, UnknownString_81AFE1D, UnknownString_81AFE36, UnknownString_81AFE42
- .4byte 0x124, UnknownString_81AFEC2, UnknownString_81AFEDD, UnknownString_81AFEEE
- .4byte 0x125, UnknownString_81AFF68, UnknownString_81AFF7B, UnknownString_81AFF88
- .4byte 0x126, UnknownString_81AFFFB, UnknownString_81B000D, UnknownString_81B0015
- .4byte 0x127, UnknownString_81B009D, UnknownString_81B00B6, UnknownString_81B00C9
- .4byte 0x128, UnknownString_81B014D, UnknownString_81B0165, UnknownString_81B0173
- .4byte 0x129, UnknownString_81B01E9, UnknownString_81B0201, UnknownString_81B0213
- .4byte 0x12a, UnknownString_81B0290, UnknownString_81B02A5, UnknownString_81B02B6
- .4byte 0x12b, UnknownString_81B0337, UnknownString_81B0351, UnknownString_81B0364
- .4byte 0x12c, UnknownString_81B03E9, UnknownString_81B0401, UnknownString_81B040C
- .4byte 0x12d, UnknownString_81B046E, UnknownString_81B0489, UnknownString_81B049A
- .4byte 0x12e, UnknownString_81B0523, UnknownString_81B053E, UnknownString_81B0554
- .4byte 0x12f, UnknownString_81B05D8, UnknownString_81B05F3, UnknownString_81B0610
- .4byte 0x130, UnknownString_81B06A9, UnknownString_81B06C6, UnknownString_81B06D9
-
-gUnknown_083E5610:: @ 83E5610
- .4byte 0x131, UnknownString_81B0763, UnknownString_81B0781, UnknownString_81B0797
-
-gUnknown_083E5620:: @ 83E5620
- .incbin "baserom.gba", 0x003e5620, 0xc
-
-gUnknown_083E562C:: @ 83E562C
- .incbin "baserom.gba", 0x003e562c, 0x8
-
- .align 2
-gMailGraphicsTable:: @ 83E5634
- .4byte gMailPalette_Orange
- .4byte gMailTiles_Orange
- .4byte gMailTilemap_Orange
- .2byte 0x2C0
- .2byte 0
- .2byte 0x294A
- .2byte 0x6739
-
- .4byte gMailPalette_Harbor
- .4byte gMailTiles_Harbor
- .4byte gMailTilemap_Harbor
- .2byte 0x2E0
- .2byte 0
- .2byte 0x7FFF
- .2byte 0x4631
-
- .4byte gMailPalette_Glitter
- .4byte gMailTiles_Glitter
- .4byte gMailTilemap_Glitter
- .2byte 0x400
- .2byte 0
- .2byte 0x294A
- .2byte 0x6739
-
- .4byte gMailPalette_Mech
- .4byte gMailTiles_Mech
- .4byte gMailTilemap_Mech
- .2byte 0x1E0
- .2byte 0
- .2byte 0x7FFF
- .2byte 0x4631
-
- .4byte gMailPalette_Wood
- .4byte gMailTiles_Wood
- .4byte gMailTilemap_Wood
- .2byte 0x2E0
- .2byte 0
- .2byte 0x7FFF
- .2byte 0x4631
-
- .4byte gMailPalette_Wave
- .4byte gMailTiles_Wave
- .4byte gMailTilemap_Wave
- .2byte 0x300
- .2byte 0
- .2byte 0x294A
- .2byte 0x6739
-
- .4byte gMailPalette_Bead
- .4byte gMailTiles_Bead
- .4byte gMailTilemap_Bead
- .2byte 0x140
- .2byte 0
- .2byte 0x7FFF
- .2byte 0x4631
-
- .4byte gMailPalette_Shadow
- .4byte gMailTiles_Shadow
- .4byte gMailTilemap_Shadow
- .2byte 0x300
- .2byte 0
- .2byte 0x7FFF
- .2byte 0x4631
-
- .4byte gMailPalette_Tropic
- .4byte gMailTiles_Tropic
- .4byte gMailTilemap_Tropic
- .2byte 0x220
- .2byte 0
- .2byte 0x294A
- .2byte 0x6739
-
- .4byte gMailPalette_Dream
- .4byte gMailTiles_Dream
- .4byte gMailTilemap_Dream
- .2byte 0x340
- .2byte 0
- .2byte 0x294A
- .2byte 0x6739
-
- .4byte gMailPalette_Fab
- .4byte gMailTiles_Fab
- .4byte gMailTilemap_Fab
- .2byte 0x2A0
- .2byte 0
- .2byte 0x294A
- .2byte 0x6739
-
- .4byte gMailPalette_Retro
- .4byte gMailTiles_Retro
- .4byte gMailTilemap_Retro
- .2byte 0x520
- .2byte 0
- .2byte 0x294A
- .2byte 0x6739
-
- .align 2
-Unknown_3E5724: @ 83E5724
- .incbin "baserom.gba", 0x3e5724, 0xc
-
-gUnknown_083E5730:: @ 83E5730
- .byte 3, 15, 27, 52
- .4byte Unknown_3E5724
- .byte 3, 15, 27, 52
- .4byte Unknown_3E5724
- .byte 3, 15, 27, 52
- .4byte Unknown_3E5724
- .byte 3, 15, 27, 52
- .4byte Unknown_3E5724
- .byte 3, 15, 27, 52
- .4byte Unknown_3E5724
- .byte 3, 15, 27, 52
- .4byte Unknown_3E5724
- .byte 3, 15, 27, 52
- .4byte Unknown_3E5724
- .byte 3, 15, 27, 52
- .4byte Unknown_3E5724
- .byte 3, 15, 27, 52
- .4byte Unknown_3E5724
- .byte 3, 15, 27, 52
- .4byte Unknown_3E5724
- .byte 3, 16, 27, 52
- .4byte Unknown_3E5724
- .byte 3, 15, 27, 52
- .4byte Unknown_3E5724
-
- .align 2
-Unknown_3E5790: @ 83E5790
- .incbin "baserom.gba", 0x3e5790, 0x14
-
- .align 2
-gUnknown_083E57A4:: @ 83E57A4
- .byte 5, 15, 15, 52
- .4byte Unknown_3E5790
- .byte 5, 15, 15, 52
- .4byte Unknown_3E5790
- .byte 5, 15, 16, 52
- .4byte Unknown_3E5790
- .byte 5, 15, 15, 52
- .4byte Unknown_3E5790
- .byte 5, 15, 15, 52
- .4byte Unknown_3E5790
- .byte 5, 15, 16, 52
- .4byte Unknown_3E5790
- .byte 5, 15, 16, 52
- .4byte Unknown_3E5790
- .byte 5, 15, 15, 52
- .4byte Unknown_3E5790
- .byte 5, 15, 15, 52
- .4byte Unknown_3E5790
- .byte 5, 15, 15, 52
- .4byte Unknown_3E5790
- .byte 5, 16, 15, 52
- .4byte Unknown_3E5790
- .byte 5, 15, 15, 52
- .4byte Unknown_3E5790
-
- .align 2
- .incbin "baserom.gba", 0x3e5804, 0x4
-
- .align 2
-gSpriteImage_83E5808:: @ 83E5808
- .incbin "graphics/unknown_sprites/83E59A0/0.4bpp"
-
- .align 2
-gSpriteImage_83E5848:: @ 83E5848
- .incbin "graphics/unknown_sprites/83E59A0/1.4bpp"
-
- .align 2
-gSpriteImage_83E5888:: @ 83E5888
- .incbin "graphics/unknown_sprites/83E59B0/0.4bpp"
-
- .align 2
-gSpriteImage_83E58C8:: @ 83E58C8
- .incbin "graphics/unknown_sprites/83E59B0/1.4bpp"
-
- .align 2
-gSpriteImage_83E5908:: @ 83E5908
- .incbin "graphics/unknown_sprites/83E59C0/0.4bpp"
-
- .align 2
-gSpriteImage_83E5928:: @ 83E5928
- .incbin "graphics/unknown_sprites/83E59C0/1.4bpp"
-
- .align 2
-Palette_3E5948: @ 83E5948
- .incbin "baserom.gba", 0x3e5948, 0x20
-
- .align 2
-gUnknown_083E5968:: @ 83E5968
- obj_pal Palette_3E5948, 6
-
- .align 2
-gOamData_83E5970:: @ 83E5970
- .2byte 0x0000
- .2byte 0x0000
- .2byte 0x0001
-
- .align 2
-gOamData_83E5978:: @ 83E5978
- .2byte 0x4000
- .2byte 0x0000
- .2byte 0x0001
-
- .align 2
-gOamData_83E5980:: @ 83E5980
- .2byte 0x8000
- .2byte 0x0000
- .2byte 0x0001
-
- .align 2
-gSpriteAnim_83E5988:: @ 83E5988
- obj_image_anim_frame 0, 0
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83E5990:: @ 83E5990
- obj_image_anim_frame 1, 0
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83E5998:: @ 83E5998
- .4byte gSpriteAnim_83E5988
- .4byte gSpriteAnim_83E5990
-
- .align 2
-gSpriteImageTable_83E59A0:: @ 83E59A0
- obj_frame_tiles gSpriteImage_83E5808, 0x40
- obj_frame_tiles gSpriteImage_83E5848, 0x40
-
- .align 2
-gSpriteImageTable_83E59B0:: @ 83E59B0
- obj_frame_tiles gSpriteImage_83E5888, 0x40
- obj_frame_tiles gSpriteImage_83E58C8, 0x40
-
- .align 2
-gSpriteImageTable_83E59C0:: @ 83E59C0
- obj_frame_tiles gSpriteImage_83E5908, 0x20
- obj_frame_tiles gSpriteImage_83E5928, 0x20
-
- .align 2
-gSpriteTemplate_83E59D0:: @ 83E59D0
- spr_template 0xFFFF, 6, gOamData_83E5978, gSpriteAnimTable_83E5998, gSpriteImageTable_83E59A0, gDummySpriteAffineAnimTable, sub_80F9834
-
- .align 2
-gSpriteTemplate_83E59E8:: @ 83E59E8
- spr_template 0xFFFF, 6, gOamData_83E5980, gSpriteAnimTable_83E5998, gSpriteImageTable_83E59B0, gDummySpriteAffineAnimTable, sub_80F9834
-
- .align 2
-gSpriteTemplate_83E5A00:: @ 83E5A00
- spr_template 0xFFFF, 6, gOamData_83E5970, gSpriteAnimTable_83E5998, gSpriteImageTable_83E59C0, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
-gUnknown_083E5A18:: @ 83E5A18
- .string "{PALETTE 0}$"
-
-gUnknown_083E5A1C:: @ 83E5A1C
- .string "▶$"
-
- .align 2
-gHealLocations:: @ 83E5A20
- heal_location LittlerootTown_BrendansHouse_2F, 4, 2
- heal_location LittlerootTown_MaysHouse_2F, 4, 2
- heal_location PetalburgCity, 20, 17
- heal_location SlateportCity, 19, 20
- heal_location MauvilleCity, 22, 6
- heal_location RustboroCity, 16, 39
- heal_location FortreeCity, 5, 7
- heal_location LilycoveCity, 24, 15
- heal_location MossdeepCity, 28, 17
- heal_location SootopolisCity, 43, 32
- heal_location EverGrandeCity, 27, 49
- heal_location LittlerootTown, 5, 9
- heal_location LittlerootTown, 14, 9
- heal_location OldaleTown, 6, 17
- heal_location DewfordTown, 2, 11
- heal_location LavaridgeTown, 9, 7
- heal_location FallarborTown, 14, 8
- heal_location VerdanturfTown, 16, 4
- heal_location PacifidlogTown, 8, 16
- heal_location EverGrandeCity, 18, 6
- heal_location BattleTower_Outside, 14, 9
- heal_location SouthernIsland_Exterior, 15, 20
-
- .align 2
-gPokenavCursor_Pal::
- .incbin "graphics/pokenav/cursor.gbapal"
-
- .align 2
-gUnknown_083E5AF0:: @ 83E5AF0
- .incbin "graphics/pokenav/cursor_small.4bpp.lz"
-
- .align 2
-gUnknown_083E5B34:: @ 83E5B34
- .incbin "graphics/pokenav/cursor_large.4bpp.lz"
-
- .align 2
-gRegionMapBrendanIconPalette:: @ 83E5C20
- .incbin "graphics/pokenav/brendan_icon.gbapal"
-
- .align 2
-gRegionMapBrendanIconTiles:: @ 83E5C40
- .incbin "graphics/pokenav/brendan_icon.4bpp"
-
- .align 2
-gRegionMapMayIconPalette:: @ 83E5CC0
- .incbin "graphics/pokenav/may_icon.gbapal"
-
- .align 2
-gRegionMapMayIconTiles:: @ 83E5CE0
- .incbin "graphics/pokenav/may_icon.4bpp"
-
- .align 2
-gUnknown_083E5D60:: @ 83E5D60
- .incbin "graphics/pokenav/region_map.gbapal", 0xE0, 0x40
-
- .align 2
-gUnknown_083E5DA0:: @ 83E5DA0
- .incbin "graphics/pokenav/region_map.8bpp.lz"
-
- .align 2
-gUnknown_083E6B04:: @ 83E6B04
- .incbin "graphics/pokenav/region_map_map.bin.lz"
-
-@ 83E6E50
- .include "data/region_map_sections.inc"
-
-@ 83E6FF4
- .include "data/region_map_locations.inc"
-
-gUnknown_083E7684:: @ 83E7684
- .incbin "baserom.gba", 0x003e7684, 0x34
-
- .align 2
-gOamData_83E76B8:: @ 83E76B8
- .2byte 0x0000
- .2byte 0x4000
- .2byte 0x0400
-
- .align 2
-gSpriteAnim_83E76C0:: @ 83E76C0
- obj_image_anim_frame 0, 20
- obj_image_anim_frame 4, 20
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnim_83E76CC:: @ 83E76CC
- obj_image_anim_frame 0, 10
- obj_image_anim_frame 16, 10
- obj_image_anim_frame 32, 10
- obj_image_anim_frame 16, 10
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnimTable_83E76E0:: @ 83E76E0
- .4byte gSpriteAnim_83E76C0
- .4byte gSpriteAnim_83E76CC
-
- .align 2
-gUnknown_083E76E8:: @ 83E76E8
- obj_pal gPokenavCursor_Pal, 0x0000
-
- .align 2
-gSpriteTemplate_83E76F0:: @ 83E76F0
- spr_template 0, 0, gOamData_83E76B8, gSpriteAnimTable_83E76E0, NULL, gDummySpriteAffineAnimTable, sub_80FBAF0
-
-gUnknown_083E7708:: @ 83E7708
- .incbin "baserom.gba", 0x003e7708, 0x8
-
-Unknown_83E7710:
- .incbin "baserom.gba", 0x003e7710, 0x8
-
-gUnknown_083E7718:: @ 83E7718
- .4byte Unknown_83E7710
-
-gUnknown_083E771C:: @ 83E771C
- .incbin "graphics/pokenav/map_frame.gbapal"
-
-gUnknown_083E773C:: @ 83E773C
- .incbin "graphics/pokenav/map_frame.4bpp.lz"
-
-gUnknown_083E7774:: @ 83E7774
- .incbin "baserom.gba", 0x003e7774, 0xb8
-
- .align 2
-gPokenavMapMisc_Pal::
- .incbin "graphics/pokenav/map_misc.gbapal"
-
-gUnknown_083E784C:: @ 83E784C
- .incbin "graphics/pokenav/map_misc.4bpp.lz"
-
-gUnknown_083E7920:: @ 83E7920
- .incbin "baserom.gba", 0x3e7920, 0x98
-
- .align 2
-Unknown_3E79B8: @ 83E79B8
- .4byte OtherText_PokeLeague
- .4byte OtherText_PokeCenter
-
- .align 2
-gUnknown_083E79C0:: @ 83E79C0
- .4byte Unknown_3E79B8
- .incbin "baserom.gba", 0x3e79c4, 0x8
-
- .align 2
-gUnknown_083E79CC:: @ 83E79CC
- obj_pal gPokenavMapMisc_Pal, 0x0002
-
- .align 2
-gUnknown_083E79D4:: @ 83E79D4
- .incbin "baserom.gba", 0x003e79d4, 0x8
-
- .align 2
-gOamData_83E79DC:: @ 83E79DC
- .2byte 0x0000
- .2byte 0x0000
- .2byte 0x0800
-
- .align 2
-gSpriteAnim_83E79E4:: @ 83E79E4
- obj_image_anim_frame 0, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83E79EC:: @ 83E79EC
- obj_image_anim_frame 1, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83E79F4:: @ 83E79F4
- obj_image_anim_frame 3, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83E79FC:: @ 83E79FC
- obj_image_anim_frame 5, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83E7A04:: @ 83E7A04
- obj_image_anim_frame 6, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83E7A0C:: @ 83E7A0C
- obj_image_anim_frame 8, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83E7A14:: @ 83E7A14
- obj_image_anim_frame 10, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83E7A1C:: @ 83E7A1C
- .4byte gSpriteAnim_83E79E4
- .4byte gSpriteAnim_83E79EC
- .4byte gSpriteAnim_83E79F4
- .4byte gSpriteAnim_83E79FC
- .4byte gSpriteAnim_83E7A04
- .4byte gSpriteAnim_83E7A0C
- .4byte gSpriteAnim_83E7A14
-
- .align 2
-gSpriteTemplate_83E7A38:: @ 83E7A38
- spr_template 2, 2, gOamData_83E79DC, gSpriteAnimTable_83E7A1C, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
-@ 83E7A50
- .include "data/cute_sketch.inc"
-
-@ 83E9FD0
- .include "data/decorations.inc"
-
- .align 2
-gUnknown_083EC5E4:: @ 83EC5E4
- .4byte SecretBaseText_Desk
- .4byte SecretBaseText_Chair
- .4byte SecretBaseText_Plant
- .4byte SecretBaseText_Ornament
- .4byte SecretBaseText_Mat
- .4byte SecretBaseText_Poster
- .4byte SecretBaseText_Doll
- .4byte SecretBaseText_Cushion
-
- .align 2
-gUnknown_083EC604:: @ 83EC604
- .4byte SecretBaseText_Decorate, sub_80FF160
- .4byte SecretBaseText_PutAway, sub_8100A0C
- .4byte SecretBaseText_Toss, sub_8101700
- .4byte gUnknownText_Exit, gpu_pal_decompress_alloc_tag_and_upload
-
- .align 2
-gUnknown_083EC624:: @ 83EC624
- .4byte SecretBaseText_PutOutDecor
- .4byte SecretBaseText_StoreChosenDecor
- .4byte SecretBaseText_ThrowAwayDecor
- .4byte gMenuText_GoBackToPrev
-
- .align 2
-gUnknown_083EC634:: @ 83EC634
- .4byte sub_80FF5BC
- .4byte sub_80FF058
- .4byte sub_81017A0
- .4byte sub_80FF058
- .4byte sub_81017A0
- .4byte sub_80FF058
- .4byte sub_8109D04
- .4byte sub_80FF058
-
-gUnknown_083EC654:: @ 83EC654
- .incbin "baserom.gba", 0x003ec654, 0x6
-
-gUnknown_083EC65A:: @ 83EC65A
- .incbin "baserom.gba", 0x3ec65a, 0x6
-
-Unknown_3EC660: @ 83EC660
- .incbin "baserom.gba", 0x3ec660, 0x4
-
-Unknown_3EC664: @ 83EC664
- .incbin "baserom.gba", 0x3ec664, 0xc
-
-Unknown_3EC670: @ 83EC670
- .incbin "baserom.gba", 0x3ec670, 0x10
-
-Unknown_3EC680: @ 83EC680
- .incbin "baserom.gba", 0x3ec680, 0xc
-
-Unknown_3EC68C: @ 83EC68C
- .incbin "baserom.gba", 0x3ec68c, 0x8
-
-Unknown_3EC694: @ 83EC694
- .incbin "baserom.gba", 0x3ec694, 0x20
-
-Unknown_3EC6B4: @ 83EC6B4
- .incbin "baserom.gba", 0x3ec6b4, 0x24
-
-Unknown_3EC6D8: @ 83EC6D8
- .incbin "baserom.gba", 0x3ec6d8, 0x18
-
-Unknown_3EC6F0: @ 83EC6F0
- .incbin "baserom.gba", 0x3ec6f0, 0x4
-
-Unknown_3EC6F4: @ 83EC6F4
- .incbin "baserom.gba", 0x3ec6f4, 0x8
-
-Unknown_3EC6FC: @ 83EC6FC
- .incbin "baserom.gba", 0x3ec6fc, 0xc
-
-Unknown_3EC708: @ 83EC708
- .incbin "baserom.gba", 0x3ec708, 0x20
-
-Unknown_3EC728: @ 83EC728
- .incbin "baserom.gba", 0x3ec728, 0x10
-
-Unknown_3EC738: @ 83EC738
- .incbin "baserom.gba", 0x3ec738, 0x8
-
-Unknown_3EC740: @ 83EC740
- .incbin "baserom.gba", 0x3ec740, 0xc
-
-Unknown_3EC74C: @ 83EC74C
- .incbin "baserom.gba", 0x3ec74c, 0x20
-
-Unknown_3EC76C: @ 83EC76C
- .incbin "baserom.gba", 0x3ec76c, 0x24
-
-Unknown_3EC790: @ 83EC790
- .incbin "baserom.gba", 0x3ec790, 0x18
-
-Unknown_3EC7A8: @ 83EC7A8
- .incbin "baserom.gba", 0x3ec7a8, 0x4
-
-Unknown_3EC7AC: @ 83EC7AC
- .incbin "baserom.gba", 0x3ec7ac, 0x8
-
-Unknown_3EC7B4: @ 83EC7B4
- .incbin "baserom.gba", 0x3ec7b4, 0xc
-
-Unknown_3EC7C0: @ 83EC7C0
- .incbin "baserom.gba", 0x3ec7c0, 0x20
-
-Unknown_3EC7E0: @ 83EC7E0
- .incbin "baserom.gba", 0x3ec7e0, 0x10
-
-Unknown_3EC7F0: @ 83EC7F0
- .incbin "baserom.gba", 0x3ec7f0, 0x8
-
-Unknown_3EC7F8: @ 83EC7F8
- .incbin "baserom.gba", 0x3ec7f8, 0xc
-
-Unknown_3EC804: @ 83EC804
- .incbin "baserom.gba", 0x3ec804, 0x20
-
-Unknown_3EC824: @ 83EC824
- .incbin "baserom.gba", 0x3ec824, 0x24
-
-Unknown_3EC848: @ 83EC848
- .incbin "baserom.gba", 0x3ec848, 0x18
-
- .align 2
-gUnknown_083EC860:: @ 83EC860
- .4byte Unknown_3EC660, Unknown_3EC6F0, Unknown_3EC7A8, 0x4
- .4byte Unknown_3EC68C, Unknown_3EC6F4, Unknown_3EC7AC, 0x8
- .4byte Unknown_3EC664, Unknown_3EC6FC, Unknown_3EC7B4, 0xc
- .4byte Unknown_3EC694, Unknown_3EC708, Unknown_3EC7C0, 0x20
- .4byte Unknown_3EC670, Unknown_3EC728, Unknown_3EC7E0, 0x10
- .4byte Unknown_3EC68C, Unknown_3EC738, Unknown_3EC7F0, 0x8
- .4byte Unknown_3EC680, Unknown_3EC740, Unknown_3EC7F8, 0xc
- .4byte Unknown_3EC694, Unknown_3EC74C, Unknown_3EC804, 0x20
- .4byte Unknown_3EC6B4, Unknown_3EC76C, Unknown_3EC824, 0x24
- .4byte Unknown_3EC6D8, Unknown_3EC790, Unknown_3EC848, 0x18
-
-gUnknown_083EC900:: @ 83EC900
- .incbin "baserom.gba", 0x3ec900, 0x28
-
- .align 2
-gSpriteAnim_83EC928:: @ 83EC928
- obj_image_anim_frame 0, 0
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83EC930:: @ 83EC930
- .4byte gSpriteAnim_83EC928
-
- .align 2
-gSpriteImageTable_83EC934: @ 83EC934
- obj_frame_tiles 0x02038984, 0x800
-
- .align 2
-gSpriteTemplate_83EC93C:: @ 83EC93C
- spr_template 0xFFFF, 3000, 0x20391AC, gSpriteAnimTable_83EC930, gSpriteImageTable_83EC934, gDummySpriteAffineAnimTable, sub_81009A8
-
- .align 2
-gUnknown_083EC954:: @ 83EC954
- obj_pal 0x02039184, 3000
-
- .align 2
-gUnknown_083EC95C:: @ 83EC95C
- .4byte sub_81000C4
- .4byte sub_810065C
-
- .align 2
-gUnknown_083EC964:: @ 83EC964
- .4byte sub_810026C
- .4byte sub_810065C
-
- .align 2
-gUnknown_083EC96C:: @ 83EC96C
- .4byte sub_80FFAB0
- .4byte sub_80FFB08
- .4byte sub_8100F88
- .4byte sub_8100FB4
-
-gUnknown_083EC97C:: @ 83EC97C
- .incbin "baserom.gba", 0x003ec97c, 0x8
-
-gUnknown_083EC984:: @ 83EC984
- .incbin "baserom.gba", 0x003ec984, 0x8
-
- .align 2
-gUnknown_083EC98C::
- .incbin "baserom.gba", 0x003ec98c, 0x20
-
- .align 2
-Unknown_3EC9AC: @ 83EC9AC
- .incbin "baserom.gba", 0x3ec9ac, 0x20
-
- .align 2
-gUnknown_083EC9CC:: @ 83EC9CC
- .4byte sub_810153C
- .4byte sub_8100EEC
-
- .align 2
-gUnknown_083EC9D4:: @ 83EC9D4
- .4byte sub_8101590
- .4byte sub_8100EEC
-
- .align 2
-gSpriteImage_83EC9DC:: @ 83EC9DC
- .incbin "graphics/unknown_sprites/83EC9DC.4bpp"
-
- .align 2
-gUnknown_083ECA5C:: @ 83ECA5C
- obj_pal gUnknown_083EC98C, 0x0008
-
- .align 2
-gUnknown_083ECA64:: @ 83ECA64
- obj_pal Unknown_3EC9AC, 0x0008
-
- .align 2
-gOamData_83ECA6C:: @ 83ECA6C
- .2byte 0x0000
- .2byte 0x4000
- .2byte 0x0400
-
- .align 2
-gSpriteAnim_83ECA74:: @ 83ECA74
- obj_image_anim_frame 0, 0
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83ECA7C:: @ 83ECA7C
- .4byte gSpriteAnim_83ECA74
-
- .align 2
-gSpriteImageTable_83ECA80:: @ 83ECA80
- obj_frame_tiles gSpriteImage_83EC9DC, 0x80
-
- .align 2
-gSpriteTemplate_83ECA88:: @ 83ECA88
- spr_template 0xFFFF, 8, gOamData_83ECA6C, gSpriteAnimTable_83ECA7C, gSpriteImageTable_83ECA80, gDummySpriteAffineAnimTable, sub_8101698
-
- .align 2
-gUnknown_083ECAA0:: @ 83ECAA0
- .4byte sub_8101848
- .4byte sub_80FED3C
-
- .incbin "baserom.gba", 0x003ecaa8, 0x4
-
- .align 2
-gUnknown_083ECAAC:: @ 83ECAAC
- .4byte sub_8101D5C
- .4byte sub_8101D8C
- .4byte sub_8101DB0
- .4byte sub_8101DF4
- .4byte sub_8101E10
- .4byte sub_8101E3C
- .4byte sub_8101F44
- .4byte sub_8101F60
- .4byte sub_8101F88
- .4byte sub_8101FA4
- .4byte sub_8102008
- .4byte sub_8102034
- .4byte sub_8102058
- .4byte sub_8102090
- .4byte sub_81020C8
- .4byte sub_81021E0
- .4byte sub_81021FC
- .4byte sub_8102264
- .4byte sub_81022A0
- .4byte sub_81022CC
- .4byte sub_81022F0
- .4byte sub_8102318
- .4byte sub_8102344
- .4byte sub_810239C
- .4byte sub_81023B8
- .4byte sub_81023E0
- .4byte sub_81023FC
- .4byte sub_8102424
- .4byte sub_8102460
-
- .align 2
-gUnknown_083ECB20:: @ 83ECB20
- .4byte sub_8102A9C
- .4byte sub_8102AD0
- .4byte sub_8102B80
-
- .align 2
-gUnknown_083ECB2C:: @ 83ECB2C
- .4byte sub_8102EA0
- .4byte sub_8102EA4
- .4byte sub_8102EC0
- .4byte sub_8102F4C
- .4byte sub_8103008
-
- .align 2
-gUnknown_083ECB40:: @ 83ECB40
- .4byte sub_810305C
- .4byte sub_81032C0
- .4byte sub_81033DC
-
- .align 2
-gUnknown_083ECB4C:: @ 83ECB4C
- .4byte sub_81034F4
- .4byte sub_8103540
- .4byte sub_810380C
-
-gUnknown_083ECB58:: @ 83ECB58
- .incbin "baserom.gba", 0x003ecb58, 0xc
-
- .align 2
-gUnknown_083ECB64:: @ 83ECB64
- .4byte sub_8103154
- .4byte sub_81031B4
- .4byte sub_81031B4
-
- .align 2
-gUnknown_083ECB70:: @ 83ECB70
- .4byte sub_81032E8
- .4byte sub_81032E8
- .4byte sub_810333C
-
- .align 2
-gUnknown_083ECB7C:: @ 83ECB7C
- .4byte sub_810341C
- .4byte sub_810341C
- .4byte sub_810347C
-
- .align 2
-gUnknown_083ECB88:: @ 83ECB88
- .4byte sub_8103564
- .4byte j5_08111E84
- .4byte sub_8103668
-
- .align 2
-gUnknown_083ECB94:: @ 83ECB94
- .4byte sub_8103830
- .4byte sub_8103910
- .4byte sub_8103A78
-
- .align 2
-gUnknown_083ECBA0:: @ 83ECBA0
- .4byte sub_8103C78
- .4byte sub_8103CAC
- .4byte sub_8103CC8
-
-gUnknown_083ECBAC:: @ 83ECBAC
- .incbin "baserom.gba", 0x003ecbac, 0x8
-
- .align 2
-gUnknown_083ECBB4:: @ 83ECBB4
- .4byte nullsub_68
- .4byte sub_810411C
- .4byte sub_8104144
- .4byte sub_81041AC
-
- .align 1
-gUnknown_083ECBC4:: @ 83ECBC4
- .2byte 0x9E, 0x6E, 0x9F, 0x6F, 0xAF, 0x7F
-
- .align 2
-gUnknown_083ECBD0:: @ 83ECBD0
- .4byte sub_810437C
- .4byte sub_81043EC
- .4byte sub_8104468
- .4byte sub_8104498
- .4byte sub_8104548
- .4byte sub_8104598
- .4byte sub_81045CC
- .4byte sub_810463C
- .4byte sub_81046C0
- .4byte sub_8104764
- .4byte sub_8104794
- .4byte sub_81047EC
- .4byte sub_8104860
- .4byte sub_81048A8
- .4byte sub_81048CC
- .4byte sub_8104940
- .4byte sub_81049C8
- .4byte sub_8104794
- .4byte sub_81049F8
-
- .align 2
-gUnknown_083ECC1C:: @ 83ECC1C
- .4byte 0x02020101
-
-gUnknown_083ECC20:: @ 83ECC20
- .incbin "baserom.gba", 0x003ecc20, 0x8
-
-gUnknown_083ECC28:: @ 83ECC28
- .incbin "baserom.gba", 0x003ecc28, 0x8
-
- .align 2
-gUnknown_083ECC30:: @ 83ECC30
- .4byte sub_8104B3C
- .4byte sub_8104B60
- .4byte sub_8104B80
- .4byte sub_8104B60
- .4byte sub_8104BC8
- .4byte sub_8104B60
- .4byte sub_8104BFC
- .4byte sub_8104B60
- .4byte sub_8104C44
-
-gUnknown_083ECC54:: @ 83ECC54
- .4byte nullsub_69
-
-gUnknown_083ECC58:: @ 83ECC58
- .byte 16, 0
-
- .align 1
-gUnknown_083ECC5A:: @ 83ECC5A
- .2byte 0x0, 0x40, 0x80, 0xC0
-
-gUnknown_083ECC62:: @ 83ECC62
- .incbin "baserom.gba", 0x003ecc62, 0x8
-
-gUnknown_083ECC6A:: @ 83ECC6A
- .incbin "baserom.gba", 0x003ecc6a, 0x8
-
-gUnknown_083ECC72:: @ 83ECC72
- .incbin "baserom.gba", 0x003ecc72, 0x10
-
-gUnknown_083ECC82:: @ 83ECC82
- .incbin "baserom.gba", 0x003ecc82, 0x10
-
-gUnknown_083ECC92:: @ 83ECC92
- .incbin "baserom.gba", 0x003ecc92, 0x10
-
-gUnknown_083ECCA2:: @ 83ECCA2
- .incbin "baserom.gba", 0x003ecca2, 0x10
-
-gUnknown_083ECCB2:: @ 83ECCB2
- .incbin "baserom.gba", 0x003eccb2, 0x3f
-
-gUnknown_083ECCF1:: @ 83ECCF1
- .incbin "baserom.gba", 0x003eccf1, 0x7
-
-gUnknown_083ECCF8:: @ 83ECCF8
- .incbin "baserom.gba", 0x003eccf8, 0xc
-
-gUnknown_083ECD04:: @ 83ECD04
- .incbin "baserom.gba", 0x003ecd04, 0x12
-
-gUnknown_083ECD16:: @ 83ECD16
- .incbin "baserom.gba", 0x003ecd16, 0x12
-
-gUnknown_083ECD28:: @ 83ECD28
- .incbin "baserom.gba", 0x003ecd28, 0x1e
-
-gUnknown_083ECD46:: @ 83ECD46
- .incbin "baserom.gba", 0x003ecd46, 0x66
-
-gUnknown_083ECDAC:: @ 83ECDAC
- .incbin "baserom.gba", 0x003ecdac, 0x66
-
-gUnknown_083ECE12:: @ 83ECE12
- .incbin "baserom.gba", 0x003ece12, 0xa
-
-gUnknown_083ECE1C:: @ 83ECE1C
- .incbin "baserom.gba", 0x003ece1c, 0x14
-
-gUnknown_083ECE30:: @ 83ECE30
- .incbin "baserom.gba", 0x003ece30, 0xa
-
-gUnknown_083ECE3A:: @ 83ECE3A
- .incbin "baserom.gba", 0x003ece3a, 0x8
-
-gUnknown_083ECE42:: @ 83ECE42
- .incbin "baserom.gba", 0x003ece42, 0x6
-
-gUnknown_083ECE48:: @ 83ECE48
- .incbin "baserom.gba", 0x003ece48, 0xa
-
-gUnknown_083ECE52:: @ 83ECE52
- .incbin "baserom.gba", 0x003ece52, 0x8
-
-gUnknown_083ECE5A:: @ 83ECE5A
- .incbin "baserom.gba", 0x003ece5a, 0x12
-
-gUnknown_083ECE6C:: @ 83ECE6C
- .incbin "baserom.gba", 0x003ece6c, 0x12
-
-gUnknown_083ECE7E:: @ 83ECE7E
- .incbin "baserom.gba", 0x003ece7e, 0x8e
-
- .align 2
-gUnknown_083ECF0C:: @ 83ECF0C
- .4byte sub_8105C64
- .4byte sub_8105F54
- .4byte sub_8105F54
- .4byte sub_8105F54
- .4byte sub_8105F54
- .4byte sub_8105F9C
- .4byte sub_8105EB4
- .4byte sub_8105C64
- .4byte sub_8105C64
- .4byte sub_8105C6C
- .4byte sub_8105CF0
- .4byte sub_8105D08
- .4byte sub_8105D20
- .4byte sub_8105D3C
- .4byte sub_8105DA4
- .4byte sub_8105E08
- .4byte sub_8105C64
- .4byte sub_8106058
- .4byte sub_81060FC
- .4byte sub_81060FC
- .4byte sub_81060FC
- .4byte sub_81060FC
- .4byte sub_81060FC
- .4byte sub_81060FC
- .4byte sub_81060FC
- .4byte sub_81060FC
- .4byte sub_81061C8
- .4byte sub_81061C8
- .4byte sub_81061C8
- .4byte sub_81061C8
- .4byte sub_81061C8
- .4byte sub_81061C8
- .4byte sub_81061C8
- .4byte sub_81061C8
- .4byte sub_8106230
-
-Unknown_83ECF98:
- .incbin "baserom.gba", 0x003ECF98, 0x10
-Unknown_83ECFA8:
- .incbin "baserom.gba", 0x003ECFA8, 0x1C
-Unknown_83ECFC4:
- .incbin "baserom.gba", 0x003ECFC4, 0xC
-Unknown_83ECFD0:
- .incbin "baserom.gba", 0x003ECFD0, 0x18
-Unknown_83ECFE8:
- .incbin "baserom.gba", 0x003ECFE8, 0x10
-Unknown_83ECFF8:
- .incbin "baserom.gba", 0x003ECFF8, 0x28
-Unknown_83ED020:
- .incbin "baserom.gba", 0x003ED020, 0x28
-
- .align 2
-gUnknown_083ED048:: @ 83ED048
- .4byte Unknown_83ECF98
- .4byte Unknown_83ECFA8
- .4byte Unknown_83ECFC4
- .4byte Unknown_83ECFD0
- .4byte Unknown_83ECFE8
- .4byte Unknown_83ED020
- .4byte Unknown_83ECFF8
-
- .align 2
-gUnknown_083ED064:: @ 83ED064
- .4byte sub_810639C
- .4byte sub_8106364
- .4byte sub_8106370
- .4byte nullsub_70
- .4byte nullsub_70
- .4byte sub_8106370
- .4byte sub_8106370
-
- .align 2
-gOamData_83ED080:: @ 83ED080
- .2byte 0x0000
- .2byte 0x0000
- .2byte 0x0000
-
- .align 2
-gOamData_83ED088:: @ 83ED088
- .2byte 0x8000
- .2byte 0x0000
- .2byte 0x0000
-
- .align 2
-gOamData_83ED090:: @ 83ED090
- .2byte 0x0000
- .2byte 0x4000
- .2byte 0x0000
-
- .align 2
-gOamData_83ED098:: @ 83ED098
- .2byte 0x8000
- .2byte 0x8000
- .2byte 0x0000
-
- .align 2
-gOamData_83ED0A0:: @ 83ED0A0
- .2byte 0x0000
- .2byte 0x8000
- .2byte 0x0000
-
- .align 2
-gOamData_83ED0A8:: @ 83ED0A8
- .2byte 0x8000
- .2byte 0xC000
- .2byte 0x0000
-
- .align 2
-gOamData_83ED0B0:: @ 83ED0B0
- .2byte 0x4000
- .2byte 0xC000
- .2byte 0x0000
-
- .align 2
-gOamData_83ED0B8:: @ 83ED0B8
- .2byte 0x0000
- .2byte 0xC000
- .2byte 0x0000
-
- .align 2
-gSpriteImageTable_83ED0C0:: @ 83ED0C0
- obj_frame_tiles 0x02013200, 0x800
- obj_frame_tiles 0x02013A00, 0x800
- obj_frame_tiles 0x02014200, 0x800
- obj_frame_tiles 0x02014A00, 0x800
- obj_frame_tiles 0x02015200, 0x800
-
- .align 2
-gSpriteImageTable_83ED0E8:: @ 83ED0E8
- obj_frame_tiles 0x02015A00, 0x300
-
- .align 2
-gSpriteImageTable_83ED0F0:: @ 83ED0F0
- obj_frame_tiles 0x02015D00, 0x500
-
- .align 2
-gSpriteImageTable_83ED0F8:: @ 83ED0F8
- obj_frame_tiles 0x02016200, 0x600
-
- .align 2
-gSpriteImageTable_83ED100:: @ 83ED100
- obj_frame_tiles gSpriteImage_8E988E8, 0x80
- obj_frame_tiles gSpriteImage_8E98968, 0x80
- obj_frame_tiles gSpriteImage_8E989E8, 0x80
- obj_frame_tiles gSpriteImage_8E98A68, 0x80
- obj_frame_tiles gSpriteImage_8E98AE8, 0x80
- obj_frame_tiles gSpriteImage_8E98B68, 0x80
-
- .align 2
-gSpriteImageTable_83ED130:: @ 83ED130
- obj_frame_tiles gSpriteImage_8E991E8, 0x200
-
- .align 2
-gSpriteImageTable_83ED138:: @ 83ED138
- obj_frame_tiles gSpriteImage_8E99808, 0x40
-
- .align 2
-gSpriteImageTable_83ED140:: @ 83ED140
- obj_frame_tiles gSpriteImage_8E98BE8, 0x100
- obj_frame_tiles gSpriteImage_8E98CE8, 0x100
-
- .align 2
-gSpriteImageTable_83ED150:: @ 83ED150
- obj_frame_tiles gSpriteImage_8E993E8, 0x400
-
- .align 2
-gSpriteImageTable_83ED158:: @ 83ED158
- obj_frame_tiles gSpriteImage_8E98DE8, 0x200
- obj_frame_tiles gSpriteImage_8E98FE8, 0x200
-
- .align 2
-gSpriteImageTable_83ED168:: @ 83ED168
- obj_frame_tiles gSpriteImage_8E98848, 0x20
-
- .align 2
-gSpriteImageTable_83ED170:: @ 83ED170
- obj_frame_tiles gSpriteImage_8E98868, 0x80
-
- .align 2
-gSpriteImageTable_83ED178:: @ 83ED178
- obj_frame_tiles 0x02010000, 0x600
-
- .align 2
-gSpriteImageTable_83ED180:: @ 83ED180
- obj_frame_tiles 0x02010600, 0x200
-
- .align 2
-gSpriteImageTable_83ED188:: @ 83ED188
- obj_frame_tiles 0x02010800, 0x200
-
- .align 2
-gSpriteImageTable_83ED190:: @ 83ED190
- obj_frame_tiles 0x02010A00, 0x200
-
- .align 2
-gSpriteImageTable_83ED198:: @ 83ED198
- obj_frame_tiles 0x02010C00, 0x300
-
- .align 2
-gSpriteImageTable_83ED1A0:: @ 83ED1A0
- obj_frame_tiles 0x02011000, 0x400
-
- .align 2
-gSpriteImageTable_83ED1A8:: @ 83ED1A8
- obj_frame_tiles 0x02011400, 0x200
-
- .align 2
-gSpriteImageTable_83ED1B0:: @ 83ED1B0
- obj_frame_tiles 0x02011600, 0x300
-
- .align 2
-gSpriteImageTable_83ED1B8:: @ 83ED1B8
- obj_frame_tiles 0x02011900, 0x300
-
- .align 2
-gSpriteImageTable_83ED1C0:: @ 83ED1C0
- obj_frame_tiles 0x02011C00, 0x200
- obj_frame_tiles 0x02011E00, 0x200
- obj_frame_tiles 0x02011E00, 0x200
-
- .align 2
-gSpriteImageTable_83ED1D8:: @ 83ED1D8
- obj_frame_tiles 0x02012000, 0x280
-
- .align 2
-gSpriteImageTable_83ED1E0:: @ 83ED1E0
- obj_frame_tiles 0x02012280, 0x80
- obj_frame_tiles 0x02012300, 0x80
- obj_frame_tiles 0x02012380, 0x80
- obj_frame_tiles 0x02012400, 0x80
- obj_frame_tiles 0x02012480, 0x80
-
- .align 2
-gSpriteImageTable_83ED208:: @ 83ED208
- obj_frame_tiles 0x02012600, 0x480
- obj_frame_tiles 0x02012A80, 0x480
-
- .align 2
-gSpriteImageTable_83ED218:: @ 83ED218
- obj_frame_tiles 0x02012F00, 0x180
- obj_frame_tiles 0x02013080, 0x180
-
- .align 2
-gSpriteImageTable_83ED228:: @ 83ED228
- obj_frame_tiles gSpriteImage_8E98828, 0x20
-
- .align 2
-gSpriteAnim_83ED230:: @ 83ED230
- obj_image_anim_frame 0, 1
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83ED238:: @ 83ED238
- obj_image_anim_frame 0, 1
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnim_83ED240:: @ 83ED240
- obj_image_anim_frame 0, 16
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83ED248:: @ 83ED248
- obj_image_anim_frame 1, 16
- obj_image_anim_frame 0, 16
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnim_83ED254:: @ 83ED254
- obj_image_anim_frame 1, 8
- obj_image_anim_frame 0, 8
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnim_83ED260:: @ 83ED260
- obj_image_anim_frame 1, 4
- obj_image_anim_frame 0, 4
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnim_83ED26C:: @ 83ED26C
- obj_image_anim_frame 2, 32
- obj_image_anim_frame 3, 32
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnim_83ED278:: @ 83ED278
- obj_image_anim_frame 4, 1
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83ED280:: @ 83ED280
- obj_image_anim_frame 0, 1
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83ED288:: @ 83ED288
- obj_image_anim_frame 1, 1
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83ED290:: @ 83ED290
- obj_image_anim_frame 2, 1
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83ED298:: @ 83ED298
- obj_image_anim_frame 3, 1
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83ED2A0:: @ 83ED2A0
- obj_image_anim_frame 4, 1
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83ED2A8:: @ 83ED2A8
- obj_image_anim_frame 5, 1
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83ED2B0:: @ 83ED2B0
- obj_image_anim_frame 0, 4
- obj_image_anim_frame 1, 4
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnim_83ED2BC:: @ 83ED2BC
- obj_image_anim_frame 0, 16
- obj_image_anim_frame 1, 16
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnim_83ED2C8:: @ 83ED2C8
- obj_image_anim_frame 0, 30
- obj_image_anim_frame 1, 30
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnim_83ED2D4:: @ 83ED2D4
- obj_image_anim_frame 1, 1
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83ED2DC:: @ 83ED2DC
- obj_image_anim_frame 0, 30
- obj_image_anim_frame 1, 30
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnim_83ED2E8:: @ 83ED2E8
- obj_image_anim_frame 0, 16
- obj_image_anim_frame 1, 16
- obj_image_anim_frame 0, 16
- obj_image_anim_frame 1, 16, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnim_83ED2FC:: @ 83ED2FC
- obj_image_anim_frame 0, 1
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83ED304:: @ 83ED304
- obj_image_anim_frame 0, 1
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83ED30C:: @ 83ED30C
- obj_image_anim_frame 1, 1
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83ED314:: @ 83ED314
- obj_image_anim_frame 2, 1
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83ED31C:: @ 83ED31C
- obj_image_anim_frame 3, 1
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83ED324:: @ 83ED324
- obj_image_anim_frame 4, 1
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83ED32C:: @ 83ED32C
- .4byte gSpriteAnim_83ED230
-
- .align 2
-gSpriteAnimTable_83ED330:: @ 83ED330
- .4byte gSpriteAnim_83ED238
-
- .align 2
-gSpriteAnimTable_83ED334:: @ 83ED334
- .4byte gSpriteAnim_83ED240
- .4byte gSpriteAnim_83ED248
- .4byte gSpriteAnim_83ED254
- .4byte gSpriteAnim_83ED260
- .4byte gSpriteAnim_83ED26C
- .4byte gSpriteAnim_83ED278
-
- .align 2
-gSpriteAnimTable_83ED34C:: @ 83ED34C
- .4byte gSpriteAnim_83ED280
- .4byte gSpriteAnim_83ED288
- .4byte gSpriteAnim_83ED290
- .4byte gSpriteAnim_83ED298
- .4byte gSpriteAnim_83ED2A0
- .4byte gSpriteAnim_83ED2A8
-
- .align 2
-gSpriteAnimTable_83ED364:: @ 83ED364
- .4byte gSpriteAnim_83ED2B0
-
- .align 2
-gSpriteAnimTable_83ED368:: @ 83ED368
- .4byte gSpriteAnim_83ED2BC
-
- .align 2
-gSpriteAnimTable_83ED36C:: @ 83ED36C
- .4byte gSpriteAnim_83ED2C8
- .4byte gSpriteAnim_83ED2D4
-
- .align 2
-gSpriteAnimTable_83ED374:: @ 83ED374
- .4byte gSpriteAnim_83ED2DC
-
- .align 2
-gSpriteAnimTable_83ED378:: @ 83ED378
- .4byte gSpriteAnim_83ED2E8
- .4byte gSpriteAnim_83ED2FC
-
- .align 2
-gSpriteAnimTable_83ED380:: @ 83ED380
- .4byte gSpriteAnim_83ED304
- .4byte gSpriteAnim_83ED30C
- .4byte gSpriteAnim_83ED314
- .4byte gSpriteAnim_83ED31C
- .4byte gSpriteAnim_83ED324
-
- .align 2
-gSpriteAffineAnim_83ED394:: @ 83ED394
- obj_rot_scal_anim_frame 0x10, 0x10, 0, 0
- obj_rot_scal_anim_loop 0
- obj_rot_scal_anim_frame 0x1, 0x1, 0, 1
- obj_rot_scal_anim_loop 255
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnimTable_83ED3BC:: @ 83ED3BC
- .4byte gSpriteAffineAnim_83ED394
-
- .align 2
-gSpriteAffineAnim_83ED3C0:: @ 83ED3C0
- obj_rot_scal_anim_frame 0x0, 0x0, 8, 32
- obj_rot_scal_anim_frame 0x0, 0x0, 6, 32
- obj_rot_scal_anim_frame 0x0, 0x0, 4, 16
- obj_rot_scal_anim_frame 0x0, 0x0, 12, 2
- obj_rot_scal_anim_frame 0x0, 0x0, -12, 4
- obj_rot_scal_anim_frame 0x0, 0x0, 12, 2
- obj_rot_scal_anim_frame 0x0, 0x0, 12, 2
- obj_rot_scal_anim_frame 0x0, 0x0, -12, 4
- obj_rot_scal_anim_frame 0x0, 0x0, 12, 2
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnimTable_83ED410:: @ 83ED410
- .4byte gSpriteAffineAnim_83ED3C0
-
- .align 2
-gSpriteTemplate_83ED414:: @ 83ED414
- spr_template 0, 0, gOamData_83ED0A0, gSpriteAnimTable_83ED32C, NULL, gDummySpriteAffineAnimTable, sub_8104F18
-
- .align 2
-gSpriteTemplate_83ED42C:: @ 83ED42C
- spr_template 7, 4, gOamData_83ED088, gSpriteAnimTable_83ED32C, NULL, gDummySpriteAffineAnimTable, sub_810506C
-
- .align 2
-gSpriteTemplate_83ED444:: @ 83ED444
- spr_template 17, 0, gOamData_83ED0B8, gSpriteAnimTable_83ED32C, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-gSpriteTemplate_83ED45C:: @ 83ED45C
- spr_template 0xFFFF, 1, gOamData_83ED0B8, gSpriteAnimTable_83ED334, gSpriteImageTable_83ED0C0, gDummySpriteAffineAnimTable, sub_8105170
-
- .align 2
-gSpriteTemplate_83ED474:: @ 83ED474
- spr_template 0xFFFF, 2, gOamData_83ED088, gSpriteAnimTable_83ED32C, gSpriteImageTable_83ED0E8, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-gSpriteTemplate_83ED48C:: @ 83ED48C
- spr_template 0xFFFF, 3, gOamData_83ED088, gSpriteAnimTable_83ED32C, gSpriteImageTable_83ED0F0, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-gSpriteTemplate_83ED4A4:: @ 83ED4A4
- spr_template 0xFFFF, 3, gOamData_83ED088, gSpriteAnimTable_83ED32C, gSpriteImageTable_83ED0F8, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-gSpriteTemplate_83ED4BC:: @ 83ED4BC
- spr_template 0xFFFF, 4, gOamData_83ED090, gSpriteAnimTable_83ED34C, gSpriteImageTable_83ED100, gDummySpriteAffineAnimTable, sub_810535C
-
- .align 2
-gSpriteTemplate_83ED4D4:: @ 83ED4D4
- spr_template 0xFFFF, 4, gOamData_83ED090, gSpriteAnimTable_83ED32C, gSpriteImageTable_83ED130, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-gSpriteTemplate_83ED4EC:: @ 83ED4EC
- spr_template 0xFFFF, 4, gOamData_83ED090, gSpriteAnimTable_83ED32C, gSpriteImageTable_83ED138, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-gSpriteTemplate_83ED504:: @ 83ED504
- spr_template 0xFFFF, 4, gOamData_83ED098, gSpriteAnimTable_83ED364, gSpriteImageTable_83ED140, gDummySpriteAffineAnimTable, sub_810562C
-
- .align 2
-gSpriteTemplate_83ED51C:: @ 83ED51C
- spr_template 0xFFFF, 7, gOamData_83ED0A8, gSpriteAnimTable_83ED32C, gSpriteImageTable_83ED150, gDummySpriteAffineAnimTable, sub_8105784
-
- .align 2
-gSpriteTemplate_83ED534:: @ 83ED534
- spr_template 0xFFFF, 5, gOamData_83ED0A0, gSpriteAnimTable_83ED368, gSpriteImageTable_83ED158, gDummySpriteAffineAnimTable, sub_8105894
-
- .align 2
-gSpriteTemplate_83ED54C:: @ 83ED54C
- spr_template 0xFFFF, 4, gOamData_83ED080, gSpriteAnimTable_83ED330, gSpriteImageTable_83ED168, gDummySpriteAffineAnimTable, sub_810594C
-
- .align 2
-gSpriteTemplate_83ED564:: @ 83ED564
- spr_template 0xFFFF, 4, gOamData_83ED090, gSpriteAnimTable_83ED32C, gSpriteImageTable_83ED170, gSpriteAffineAnimTable_83ED3BC, sub_8105A38
-
- .align 2
-gSpriteTemplate_83ED57C:: @ 83ED57C
- spr_template 0xFFFF, 6, gOamData_83ED080, gSpriteAnimTable_83ED32C, gSpriteImageTable_83ED178, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-gSpriteTemplate_83ED594:: @ 83ED594
- spr_template 0xFFFF, 6, gOamData_83ED080, gSpriteAnimTable_83ED32C, gSpriteImageTable_83ED180, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-gSpriteTemplate_83ED5AC:: @ 83ED5AC
- spr_template 0xFFFF, 6, gOamData_83ED080, gSpriteAnimTable_83ED32C, gSpriteImageTable_83ED188, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-gSpriteTemplate_83ED5C4:: @ 83ED5C4
- spr_template 18, 6, gOamData_83ED080, gSpriteAnimTable_83ED32C, gSpriteImageTable_83ED190, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-gSpriteTemplate_83ED5DC:: @ 83ED5DC
- spr_template 0xFFFF, 6, gOamData_83ED0B0, gSpriteAnimTable_83ED32C, gSpriteImageTable_83ED198, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-gSpriteTemplate_83ED5F4:: @ 83ED5F4
- spr_template 0xFFFF, 6, gOamData_83ED0B0, gSpriteAnimTable_83ED32C, gSpriteImageTable_83ED1A0, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-gSpriteTemplate_83ED60C:: @ 83ED60C
- spr_template 19, 6, gOamData_83ED080, gSpriteAnimTable_83ED32C, gSpriteImageTable_83ED1A8, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-gSpriteTemplate_83ED624:: @ 83ED624
- spr_template 20, 6, gOamData_83ED080, gSpriteAnimTable_83ED32C, gSpriteImageTable_83ED1B0, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-gSpriteTemplate_83ED63C:: @ 83ED63C
- spr_template 21, 6, gOamData_83ED080, gSpriteAnimTable_83ED32C, gSpriteImageTable_83ED1B8, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-gSpriteTemplate_83ED654:: @ 83ED654
- spr_template 0xFFFF, 6, gOamData_83ED0A0, gSpriteAnimTable_83ED36C, gSpriteImageTable_83ED1C0, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-gSpriteTemplate_83ED66C:: @ 83ED66C
- spr_template 0xFFFF, 6, gOamData_83ED080, gSpriteAnimTable_83ED32C, gSpriteImageTable_83ED1D8, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-gSpriteTemplate_83ED684:: @ 83ED684
- spr_template 0xFFFF, 6, gOamData_83ED090, gSpriteAnimTable_83ED380, gSpriteImageTable_83ED1E0, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-gSpriteTemplate_83ED69C:: @ 83ED69C
- spr_template 0xFFFF, 6, gOamData_83ED080, gSpriteAnimTable_83ED378, gSpriteImageTable_83ED208, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-gSpriteTemplate_83ED6B4:: @ 83ED6B4
- spr_template 0xFFFF, 6, gOamData_83ED080, gSpriteAnimTable_83ED374, gSpriteImageTable_83ED218, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-gSpriteTemplate_83ED6CC:: @ 83ED6CC
- spr_template 0xFFFF, 4, gOamData_83ED080, gSpriteAnimTable_83ED32C, gSpriteImageTable_83ED228, gSpriteAffineAnimTable_83ED410, sub_8105B70
-
- .align 2
-Unknown_083ED6E4:
- .incbin "baserom.gba", 0x003ed6e4, 0x20
-
-gUnknown_083ED704:: @ 83ED704
- .4byte 4, Unknown_083ED6E4
-Unknown_083ED70C:
- .incbin "baserom.gba", 0x003ed70c, 0x30
-
-gUnknown_083ED73C:: @ 83ED73C
- .4byte 6, Unknown_083ED70C
-Unknown_083ED744:
- .incbin "baserom.gba", 0x003ed744, 0x18
-
-gUnknown_083ED75C:: @ 83ED75C
- .4byte 3, Unknown_083ED744
-Unknown_083ED764:
- .incbin "baserom.gba", 0x003ed764, 0x28
-
-gUnknown_083ED78C:: @ 83ED78C
- .4byte 5, Unknown_083ED764
-Unknown_083ED794:
- .incbin "baserom.gba", 0x003ed794, 0x20
-
-gUnknown_083ED7B4:: @ 83ED7B4
- .4byte 4, Unknown_083ED794
-Unknown_083ED7BC:
- .incbin "baserom.gba", 0x003ed7bc, 0x18
-
-gUnknown_083ED7D4:: @ 83ED7D4
- .4byte 3, Unknown_083ED7BC
-Unknown_083ED7DC:
- .incbin "baserom.gba", 0x003ed7dc, 0x28
-Unknown_083ED804:
- .4byte 5, Unknown_083ED7DC
-Unknown_083ED80C:
- .incbin "baserom.gba", 0x003ed80c, 0x20
-Unknown_083ED82C:
- .4byte 4, Unknown_083ED80C
-Unknown_083ED834:
- .incbin "baserom.gba", 0x003ed834, 0x20
-Unknown_083ED854:
- .4byte 4, Unknown_083ED834
-Unknown_083ED85C:
- .incbin "baserom.gba", 0x003ed85c, 0x20
-Unknown_083ED87C:
- .4byte 4, Unknown_083ED85C
-Unknown_083ED884:
- .incbin "baserom.gba", 0x003ed884, 0x30
-Unknown_083ED8B4:
- .4byte 6, Unknown_083ED884
-Unknown_083ED8BC:
- .incbin "baserom.gba", 0x003ed8bc, 0x8
-Unknown_083ED8C4:
- .incbin "baserom.gba", 0x003ed8c4, 0x8
-Unknown_083ED8CC:
- .4byte 1, Unknown_083ED8BC
- .4byte 1, Unknown_083ED8C4
-Unknown_083ED8DC:
- .incbin "baserom.gba", 0x003ed8dc, 0x60
-Unknown_083ED93C:
- .4byte 12, Unknown_083ED8DC
-Unknown_083ED944:
- .incbin "baserom.gba", 0x003ed944, 0x18
-Unknown_083ED95C:
- .4byte 3, Unknown_083ED944
-Unknown_083ED964:
- .incbin "baserom.gba", 0x003ed964, 0x10
-Unknown_083ED974:
- .4byte 2, Unknown_083ED964
-Unknown_083ED97C:
- .incbin "baserom.gba", 0x003ed97c, 0x10
-Unknown_083ED98C:
- .4byte 2, Unknown_083ED97C
-Unknown_083ED994:
- .incbin "baserom.gba", 0x003ed994, 0x10
-Unknown_083ED9A4:
- .4byte 2, Unknown_083ED994
-Unknown_083ED9AC:
- .incbin "baserom.gba", 0x003ed9ac, 0x10
-Unknown_083ED9BC:
- .4byte 2, Unknown_083ED9AC
-Unknown_083ED9C4:
- .incbin "baserom.gba", 0x003ed9c4, 0x10
-Unknown_083ED9D4:
- .4byte 2, Unknown_083ED9C4
-Unknown_083ED9DC:
- .incbin "baserom.gba", 0x003ed9dc, 0x10
-Unknown_083ED9EC:
- .4byte 2, Unknown_083ED9DC
-Unknown_083ED9F4:
- .incbin "baserom.gba", 0x003ed9f4, 0x10
-Unknown_083EDA04:
- .4byte 2, Unknown_083ED9F4
-Unknown_083EDA0C:
- .incbin "baserom.gba", 0x003eda0C, 0x10
-Unknown_083EDA1C:
- .4byte 2, Unknown_083EDA0C
-Unknown_083EDA24:
- .incbin "baserom.gba", 0x003eda24, 0x10
-Unknown_083EDA34:
- .4byte 2, Unknown_083EDA24
-Unknown_083EDA3C:
- .incbin "baserom.gba", 0x003eda3c, 0x30
-Unknown_083EDA6C:
- .4byte 6, Unknown_083EDA3C
-Unknown_083EDA74:
- .incbin "baserom.gba", 0x003eda74, 0x18
-Unknown_083EDA8C:
- .4byte 3, Unknown_083EDA74
-Unknown_083EDA94:
- .incbin "baserom.gba", 0x003eda94, 0x30
-Unknown_083EDAC4:
- .4byte 6, Unknown_083EDA94
-Unknown_083EDACC:
- .incbin "baserom.gba", 0x003edacc, 0x30
-Unknown_083EDAFC:
- .4byte 6, Unknown_083EDACC
-Unknown_083EDB04:
- .incbin "baserom.gba", 0x003edb04, 0x18
-Unknown_083EDB1C:
- .4byte 3, Unknown_083EDB04
-Unknown_083EDB24:
- .incbin "baserom.gba", 0x003edb24, 0x30
-Unknown_083EDB54:
- .4byte 6, Unknown_083EDB24
-
- .align 2
-gUnknown_083EDB5C:: @ 83EDB5C
- .4byte gSpriteTemplate_83ED57C
- .4byte gSpriteTemplate_83ED594
- .4byte gSpriteTemplate_83ED5AC
- .4byte gSpriteTemplate_83ED5DC
- .4byte gSpriteTemplate_83ED5F4
- .4byte gSpriteTemplate_83ED654
- .4byte gSpriteTemplate_83ED66C
- .4byte gSpriteTemplate_83ED684
- .4byte gSpriteTemplate_83ED69C
- .4byte gSpriteTemplate_83ED6B4
- .4byte gSpriteTemplate_83ED5C4
- .4byte gSpriteTemplate_83ED5C4
- .4byte gSpriteTemplate_83ED5C4
- .4byte gSpriteTemplate_83ED5C4
- .4byte gSpriteTemplate_83ED60C
- .4byte gSpriteTemplate_83ED60C
- .4byte gSpriteTemplate_83ED60C
- .4byte gSpriteTemplate_83ED60C
- .4byte gSpriteTemplate_83ED60C
- .4byte gSpriteTemplate_83ED624
- .4byte gSpriteTemplate_83ED624
- .4byte gSpriteTemplate_83ED624
- .4byte gSpriteTemplate_83ED63C
- .4byte gSpriteTemplate_83ED63C
- .4byte gSpriteTemplate_83ED63C
- .4byte gDummySpriteTemplate
-
- .align 2
-gUnknown_083EDBC4:: @ 83EDBC4
- .4byte Unknown_083ED804
- .4byte Unknown_083ED82C
- .4byte Unknown_083ED854
- .4byte Unknown_083ED8B4
- .4byte 0 @ dummied out
- .4byte 0 @ dummied out
- .4byte Unknown_083ED8CC
- .4byte 0 @ dummied out
- .4byte Unknown_083ED93C
- .4byte Unknown_083ED95C
- .4byte Unknown_083ED974
- .4byte Unknown_083ED98C
- .4byte Unknown_083ED9A4
- .4byte Unknown_083ED9BC
- .4byte Unknown_083ED9D4
- .4byte Unknown_083ED9EC
- .4byte Unknown_083EDA04
- .4byte Unknown_083EDA1C
- .4byte Unknown_083EDA34
- .4byte Unknown_083EDA6C
- .4byte Unknown_083EDA8C
- .4byte Unknown_083EDAC4
- .4byte Unknown_083EDAFC
- .4byte Unknown_083EDB1C
- .4byte Unknown_083EDB54
- .4byte 0 @ dummied out
-
- .align 2
-gUnknown_083EDC2C:: @ 83EDC2C
- obj_tiles gSlotMachineReelSymbol1Tiles, 0x200, 0
- obj_tiles gSlotMachineReelSymbol2Tiles, 0x200, 1
- obj_tiles gSlotMachineReelSymbol3Tiles, 0x200, 2
- obj_tiles gSlotMachineReelSymbol4Tiles, 0x200, 3
- obj_tiles gSlotMachineReelSymbol5Tiles, 0x200, 4
- obj_tiles gSlotMachineReelSymbol6Tiles, 0x200, 5
- obj_tiles gSlotMachineReelSymbol7Tiles, 0x200, 6
- obj_tiles gSlotMachineNumber0Tiles, 0x40, 7
- obj_tiles gSlotMachineNumber1Tiles, 0x40, 8
- obj_tiles gSlotMachineNumber2Tiles, 0x40, 9
- obj_tiles gSlotMachineNumber3Tiles, 0x40, 10
- obj_tiles gSlotMachineNumber4Tiles, 0x40, 11
- obj_tiles gSlotMachineNumber5Tiles, 0x40, 12
- obj_tiles gSlotMachineNumber6Tiles, 0x40, 13
- obj_tiles gSlotMachineNumber7Tiles, 0x40, 14
- obj_tiles gSlotMachineNumber8Tiles, 0x40, 15
- obj_tiles gSlotMachineNumber9Tiles, 0x40, 16
- obj_tiles 0x2010a00, 0x200, 18
- obj_tiles 0x2011400, 0x200, 19
- obj_tiles 0x2011600, 0x300, 20
- obj_tiles 0x2011900, 0x300, 21
- null_obj_tiles
-
- .align 2
-gUnknown_083EDCDC:: @ 83EDCDC
- obj_tiles 0x02010000, 2048, 0x0011
-
- .align 2
-gUnknown_083EDCE4:: @ 83EDCE4
- .4byte gUnknownPalette_08E997E8
-
-UnknownPalette_83EDCE8:
- .ifdef SAPPHIRE
- .incbin "graphics/unknown/sapphire_83EDD40.gbapal"
- .else
- .incbin "graphics/unknown/ruby_83EDCE8.gbapal"
- .endif
-
- .align 2
-gUnknown_083EDD08:: @ 83EDD08
- .4byte UnknownPalette_83EDCE8 + 10 * 2
- .4byte UnknownPalette_83EDCE8 + 11 * 2
- .4byte UnknownPalette_83EDCE8 + 12 * 2
- .4byte UnknownPalette_83EDCE8 + 13 * 2
- .4byte UnknownPalette_83EDCE8 + 14 * 2
-
- .align 2
-gUnknown_083EDD1C:: @ 83EDD1C
- .4byte gUnknown_08E95A18 + 148
- .4byte gUnknown_08E95A18 + 150
- .4byte gUnknown_08E95A18 + 152
- .4byte gUnknown_08E95A18 + 154
- .4byte gUnknown_08E95A18 + 156
-
-gUnknown_083EDD30:: @ 83EDD30
- .byte 0x4A, 0x4B, 0x4C, 0x4E, 0x4D
-
-gUnknown_083EDD35:: @ 83EDD35
- .byte 0, 0, 1, 2, 3, 4
-
-gUnknown_083EDD3B:: @ 83EDD3B
- .byte 1, 2, 2
-
- .align 1
-Unknown_83EDD3E:
- .ifdef SAPPHIRE
- .incbin "graphics/unknown/sapphire_83EDD96.gbapal"
- .else
- .incbin "graphics/unknown/ruby_83EDD3E.gbapal"
- .endif
-
- .align 1
-Unknown_83EDD5E:
- .ifdef SAPPHIRE
- .incbin "graphics/unknown/sapphire_83EDDB6.gbapal"
- .else
- .incbin "graphics/unknown/ruby_83EDD5E.gbapal"
- .endif
-
- .align 1
-Unknown_83EDD7E:
- .ifdef SAPPHIRE
- .incbin "graphics/unknown/sapphire_83EDDD6.gbapal"
- .else
- .incbin "graphics/unknown/ruby_83EDD7E.gbapal"
- .endif
-
- .align 2
-gUnknown_083EDDA0:: @ 83EDDA0
- .4byte Unknown_83EDD3E
- .4byte Unknown_83EDD5E
- .4byte Unknown_83EDD7E
-
- .align 2
-gUnknown_083EDDAC:: @ 83EDDAC
- .4byte gUnknown_08E95A18 + 32
-
-Unknown_83EDDB0:
- .incbin "baserom.gba", 0x003eddb0, 0x20
-Unknown_83EDDD0:
- .incbin "baserom.gba", 0x003eddd0, 0x20
-Unknown_83EDDF0:
- .incbin "baserom.gba", 0x003eddf0, 0x20
-
- .align 2
-gUnknown_083EDE10:: @ 83EDE10
- .4byte Unknown_83EDDB0
- .4byte Unknown_83EDDD0
- .4byte Unknown_83EDDF0
- .4byte gSlotMachineSpritePalette6
-
- .align 2
-gUnknown_083EDE20:: @ 83EDE20
- .4byte gSlotMachineSpritePalette6
-
-gUnknown_083EDE24:: @ 83EDE24
- .incbin "baserom.gba", 0x003ede24, 0x20
-
- .align 2
-gSlotMachineSpritePalettes:: @ 83EDE44
- obj_pal gSlotMachineSpritePalette0, 0
- obj_pal gSlotMachineSpritePalette1, 1
- obj_pal gSlotMachineSpritePalette2, 2
- obj_pal gSlotMachineSpritePalette3, 3
- obj_pal gSlotMachineSpritePalette4, 4
- obj_pal gSlotMachineSpritePalette5, 5
- obj_pal gSlotMachineSpritePalette6, 6
- obj_pal gSlotMachineSpritePalette4, 7
- null_obj_pal
-
- .align 2
-gUnknown_083EDE8C:: @ 83EDE8C
- .incbin "graphics/slot_machine/reel_time.4bpp.lz"
-
- .align 2
-gReelTimeWindowTilemap:: @ 83EEFE0
- .incbin "graphics/slot_machine/reel_time_window_map.bin"
-
- .align 2
-gPictureFramePalettes:: @ 83EF198
- .incbin "graphics/picture_frame/bg0.gbapal"
- .incbin "graphics/picture_frame/bg1.gbapal"
- .incbin "graphics/picture_frame/bg2.gbapal"
- .incbin "graphics/picture_frame/bg3.gbapal"
- .incbin "graphics/picture_frame/bg4.gbapal"
- .incbin "graphics/picture_frame/bg5.gbapal"
- .space 10 * 32
-
- .align 2
-gPictureFrameTiles_0:: @ 83EF398
- .incbin "graphics/picture_frame/frame0.4bpp.rl"
-
- .align 2
-gPictureFrameTiles_1:: @ 83F041C
- .incbin "graphics/picture_frame/frame1.4bpp.rl"
-
- .align 2
-gPictureFrameTiles_2:: @ 83F104C
- .incbin "graphics/picture_frame/frame2.4bpp.rl"
-
- .align 2
-gPictureFrameTiles_3:: @ 83F1B84
- .incbin "graphics/picture_frame/frame3.4bpp.rl"
-
- .align 2
-gPictureFrameTiles_4:: @ 83F2B3C
- .incbin "graphics/picture_frame/frame4.4bpp.rl"
-
- .align 2
-gPictureFrameTiles_5:: @ 83F3C6C
- .incbin "graphics/picture_frame/frame5.4bpp.rl"
-
- .align 2
-gPictureFrameTilemap_0:: @ 83F4260
- .incbin "graphics/picture_frame/frame0_map.bin.rl"
-
- .align 2
-gPictureFrameTilemap_1:: @ 83F476C
- .incbin "graphics/picture_frame/frame1_map.bin.rl"
-
- .align 2
-gPictureFrameTilemap_2:: @ 83F4C78
- .incbin "graphics/picture_frame/frame2_map.bin.rl"
-
- .align 2
-gPictureFrameTilemap_3:: @ 83F5184
- .incbin "graphics/picture_frame/frame3_map.bin.rl"
-
- .align 2
-gPictureFrameTilemap_4:: @ 83F5690
- .incbin "graphics/picture_frame/frame4_map.bin.rl"
-
- .align 2
-gPictureFrameTilemap_5:: @ 83F5B9C
- .incbin "graphics/picture_frame/frame5_map.bin.rl"
-
- .align 2
-gUnknown_083F60AC:: @ 83F60AC
- .4byte OtherText_Cool
- .4byte OtherText_Beauty2
- .4byte OtherText_Cute
- .4byte OtherText_Smart
- .4byte OtherText_Tough
-
- .align 2
-gUnknown_083F60C0:: @ 83F60C0
- .4byte OtherText_NonstopSuperCool
- .4byte OtherText_Terminator6
- .4byte OtherText_GoodLookingPoke
- .4byte OtherText_Terminator7
- .4byte OtherText_MarvelousGreat
- .4byte OtherText_Terminator8
- .4byte OtherText_CenturyLastVenus
- .4byte OtherText_Terminator9
- .4byte OtherText_Terminator10
- .4byte OtherText_DazzlingSlime
- .4byte OtherText_PokeCenterIdol
- .4byte OtherText_Terminator11
- .4byte OtherText_LovelyAndSweet
- .4byte OtherText_Terminator12
- .4byte OtherText_ThePretty
- .4byte OtherText_WinningPortrait
- .4byte OtherText_GiveUsWink
- .4byte OtherText_Terminator13
- .4byte OtherText_SmartnessMaestro
- .4byte OtherText_Terminator15
- .4byte OtherText_ChosenPokeAmong
- .4byte OtherText_Terminator15
- .4byte OtherText_TheExcellent
- .4byte OtherText_ItsMomentOfElegance
- .4byte OtherText_PowerfullyMuscular
- .4byte OtherText_Terminator16
- .4byte OtherText_StrongErEst
- .4byte OtherText_Terminator17
- .4byte OtherText_MightyTough
- .4byte OtherText_Exclamation
-
- .align 2
-gOamData_83F6138:: @ 83F6138
- .2byte 0x3000
- .2byte 0xC000
- .2byte 0x0000
-
- .align 2
-gUnknown_083F6140:: @ 83F6140
- .space 4
-
- .align 2
-gBattleAICmdTable:: @ 83F6144
- .4byte BattleAICmd_if_random
- .4byte BattleAICmd_if_not_random
- .4byte BattleAICmd_if_random_1
- .4byte BattleAICmd_if_not_random_1
- .4byte BattleAICmd_score
- .4byte BattleAICmd_if_hp_less_than
- .4byte BattleAICmd_if_hp_more_than
- .4byte BattleAICmd_if_hp_equal
- .4byte BattleAICmd_if_hp_not_equal
- .4byte BattleAICmd_if_status
- .4byte BattleAICmd_if_not_status
- .4byte BattleAICmd_if_status2
- .4byte BattleAICmd_if_not_status2
- .4byte BattleAICmd_if_status3
- .4byte BattleAICmd_if_not_status3
- .4byte BattleAICmd_if_status4
- .4byte BattleAICmd_if_not_status4
- .4byte BattleAICmd_if_less_than
- .4byte BattleAICmd_if_more_than
- .4byte BattleAICmd_if_equal
- .4byte BattleAICmd_if_not_equal
- .4byte BattleAICmd_if_less_than_32
- .4byte BattleAICmd_if_more_than_32
- .4byte BattleAICmd_if_equal_32
- .4byte BattleAICmd_if_not_equal_32
- .4byte BattleAICmd_if_move
- .4byte BattleAICmd_if_not_move
- .4byte BattleAICmd_if_in_bytes
- .4byte BattleAICmd_if_not_in_bytes
- .4byte BattleAICmd_if_in_words
- .4byte BattleAICmd_if_not_in_words
- .4byte BattleAICmd_if_user_can_damage
- .4byte BattleAICmd_if_user_cant_damage
- .4byte BattleAICmd_unk_21
- .4byte BattleAICmd_get_type
- .4byte BattleAICmd_unk_23
- .4byte BattleAICmd_unk_24
- .4byte BattleAICmd_get_move
- .4byte BattleAICmd_if_type
- .4byte BattleAICmd_unk_27
- .4byte BattleAICmd_if_would_go_first
- .4byte BattleAICmd_if_would_not_go_first
- .4byte BattleAICmd_unk_2A
- .4byte BattleAICmd_unk_2B
- .4byte BattleAICmd_count_alive_pokemon
- .4byte BattleAICmd_unk_2D
- .4byte BattleAICmd_unk_2E
- .4byte BattleAICmd_get_ability
- .4byte BattleAICmd_unk_30
- .4byte BattleAICmd_if_damage_bonus
- .4byte BattleAICmd_unk_32
- .4byte BattleAICmd_unk_33
- .4byte BattleAICmd_if_status_in_party
- .4byte BattleAICmd_if_status_not_in_party
- .4byte BattleAICmd_unk_36
- .4byte BattleAICmd_if_effect
- .4byte BattleAICmd_if_not_effect
- .4byte BattleAICmd_if_stat_level_less_than
- .4byte BattleAICmd_if_stat_level_more_than
- .4byte BattleAICmd_if_stat_level_equal
- .4byte BattleAICmd_if_stat_level_not_equal
- .4byte BattleAICmd_if_can_faint
- .4byte BattleAICmd_if_cant_faint
- .4byte BattleAICmd_unk_3F
- .4byte BattleAICmd_unk_40
- .4byte BattleAICmd_if_move_effect
- .4byte BattleAICmd_if_not_move_effect
- .4byte BattleAICmd_if_last_move_did_damage
- .4byte BattleAICmd_if_encored
- .4byte BattleAICmd_unk_45
- .4byte BattleAICmd_if_random_2
- .4byte BattleAICmd_unk_47
- .4byte BattleAICmd_get_hold_effect
- .4byte BattleAICmd_get_gender
- .4byte BattleAICmd_is_first_turn
- .4byte BattleAICmd_get_stockpile_count
- .4byte BattleAICmd_unk_4C
- .4byte BattleAICmd_get_item
- .4byte BattleAICmd_unk_4E
- .4byte BattleAICmd_unk_4F
- .4byte BattleAICmd_unk_50
- .4byte BattleAICmd_get_protect_count
- .4byte BattleAICmd_unk_52
- .4byte BattleAICmd_unk_53
- .4byte BattleAICmd_unk_54
- .4byte BattleAICmd_unk_55
- .4byte BattleAICmd_unk_56
- .4byte BattleAICmd_unk_57
- .4byte BattleAICmd_call
- .4byte BattleAICmd_jump
- .4byte BattleAICmd_unk_5A
- .4byte BattleAICmd_if_level_cond
- .4byte BattleAICmd_if_taunted
- .4byte BattleAICmd_if_not_taunted
-
-gUnknown_083F62BC:: @ 83F62BC
- .incbin "baserom.gba", 0x003f62bc, 0x1c
-
- .align 2
-gUnknown_083F62D8:: @ 83F62D8
- .4byte SecretBaseText_Tristan
- .4byte SecretBaseText_Philip
- .4byte SecretBaseText_Dennis
- .4byte SecretBaseText_Roberto
-
-gTraderDecorations:: @ 83F62E8
- .byte DECOR_DUSKULL_DOLL
- .byte DECOR_BALL_CUSHION
- .byte DECOR_TIRE
- .byte DECOR_PRETTY_FLOWERS
-
-gUnknown_083F62EC:: @ 83F62EC
- .incbin "graphics/misc/birch_bag.gbapal"
- .incbin "graphics/misc/birch_grass.gbapal"
-
- .align 2
-gBirchBallarrow_Pal::
- .incbin "graphics/misc/birch_ballarrow.gbapal"
-
- .align 2
-gBirchCircle_Pal::
- .incbin "graphics/misc/birch_circle.gbapal"
-
- .align 2
-gBirchBagTilemap:: @ 83F636C
- .incbin "graphics/misc/birch_bag_map.bin.lz"
-
- .align 2
-gBirchGrassTilemap:: @ 83F64F8
- .incbin "graphics/misc/birch_grass_map.bin.lz"
-
-gUnknown_083F66F0:: @ 83F66F0
- .incbin "graphics/misc/birch_help.4bpp.lz"
-
- .align 2
-gBirchBallarrow_Gfx::
- .incbin "graphics/misc/birch_ballarrow.4bpp.lz"
-
- .align 2
-gBirchCircle_Gfx::
- .incbin "graphics/misc/birch_circle.4bpp.lz"
-
-gStarterChoose_PokeballCoords:: @ 83F76B8
- .byte 60, 64
- .byte 120, 88
- .byte 180, 64
-
-gStarterChoose_LabelCoords:: @ 83F76BE
- .byte 0, 9
- .byte 16, 10
- .byte 8, 4
-
- .align 1
-gStarterMons:: @ 83F76C4
- .2byte SPECIES_TREECKO
- .2byte SPECIES_TORCHIC
- .2byte SPECIES_MUDKIP
- .2byte 0
-
- .align 2
-gOamData_83F76CC:: @ 83F76CC
- .2byte 0x00A0
- .2byte 0x8000
- .2byte 0x0400
-
- .align 2
-gOamData_83F76D4:: @ 83F76D4
- .2byte 0x00A0
- .2byte 0x8000
- .2byte 0x0400
-
- .align 2
-gOamData_83F76DC:: @ 83F76DC
- .2byte 0x03A0
- .2byte 0xC000
- .2byte 0x0400
-
- .align 2
-gUnknown_083F76E4:: @ 83F76E4
- .incbin "baserom.gba", 0x003f76e4, 0x8
-
- .align 2
-gSpriteAnim_83F76EC:: @ 83F76EC
- obj_image_anim_frame 48, 30
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83F76F4:: @ 83F76F4
- obj_image_anim_frame 0, 30
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83F76FC:: @ 83F76FC
- obj_image_anim_frame 16, 4
- obj_image_anim_frame 0, 4
- obj_image_anim_frame 32, 4
- obj_image_anim_frame 0, 4
- obj_image_anim_frame 16, 4
- obj_image_anim_frame 0, 4
- obj_image_anim_frame 32, 4
- obj_image_anim_frame 0, 4
- obj_image_anim_frame 0, 32
- obj_image_anim_frame 16, 8
- obj_image_anim_frame 0, 8
- obj_image_anim_frame 32, 8
- obj_image_anim_frame 0, 8
- obj_image_anim_frame 16, 8
- obj_image_anim_frame 0, 8
- obj_image_anim_frame 32, 8
- obj_image_anim_frame 0, 8
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnim_83F7744:: @ 83F7744
- obj_image_anim_frame 0, 8
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83F774C:: @ 83F774C
- .4byte gSpriteAnim_83F76EC
-
- .align 2
-gSpriteAnimTable_83F7750:: @ 83F7750
- .4byte gSpriteAnim_83F76F4
- .4byte gSpriteAnim_83F76FC
-
- .align 2
-gSpriteAnimTable_83F7758:: @ 83F7758
- .4byte gSpriteAnim_83F7744
-
-Unknown_83F775C:
- .incbin "baserom.gba", 0x003f775c, 0x18
-
- .align 2
-gSpriteAffineAnim_83F7774:: @ 83F7774
- obj_rot_scal_anim_frame 0x14, 0x14, 0, 0
- obj_rot_scal_anim_frame 0x14, 0x14, 0, 15
- obj_rot_scal_anim_end
-
- .align 2
-gUnknown_083F778C:: @ 83F778C
- .4byte Unknown_83F775C
-
- .align 2
-gSpriteAffineAnimTable_83F7790:: @ 83F7790
- .4byte gSpriteAffineAnim_83F7774
-
-gUnknown_083F7794:: @ 83F7794
- obj_tiles gBirchBallarrow_Gfx, 0x0800, 0x1000
- .space 8
-
-gUnknown_083F77A4:: @ 83F77A4
- obj_tiles gBirchCircle_Gfx, 0x0800, 0x1001
- .space 8
-
-gUnknown_083F77B4:: @ 83F77B4
- obj_pal gBirchBallarrow_Pal, 0x1000
- obj_pal gBirchCircle_Pal, 0x1001
- .space 8
-
- .align 2
-gSpriteTemplate_83F77CC:: @ 83F77CC
- spr_template 4096, 4096, gOamData_83F76CC, gSpriteAnimTable_83F774C, NULL, gDummySpriteAffineAnimTable, sub_810A62C
-
- .align 2
-gSpriteTemplate_83F77E4:: @ 83F77E4
- spr_template 4096, 4096, gOamData_83F76D4, gSpriteAnimTable_83F7750, NULL, gDummySpriteAffineAnimTable, sub_810A68C
-
- .align 2
-gSpriteTemplate_83F77FC:: @ 83F77FC
- spr_template 4097, 4097, gOamData_83F76DC, gSpriteAnimTable_83F7758, NULL, gSpriteAffineAnimTable_83F7790, StarterPokemonSpriteAnimCallback
-
-@ 83F7814
-ClockGfx_Misc:
- .incbin "graphics/misc/clock_misc.4bpp.lz"
-
-gUnknown_083F7A90:: @ 83F7A90
- obj_tiles ClockGfx_Misc, 0x2000, 0x1000
- .space 8
-
-gUnknown_083F7AA0:: @ 83F7AA0
- obj_pal gMiscClockMale_Pal, 0x1000
- obj_pal gMiscClockFemale_Pal, 0x1001
- .space 8
-
- .align 2
-gOamData_83F7AB8:: @ 83F7AB8
- .2byte 0x00A0
- .2byte 0xC000
- .2byte 0x0400
-
- .align 2
-gSpriteAnim_83F7AC0:: @ 83F7AC0
- obj_image_anim_frame 0, 30
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83F7AC8:: @ 83F7AC8
- obj_image_anim_frame 64, 30
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83F7AD0:: @ 83F7AD0
- .4byte gSpriteAnim_83F7AC0
-
- .align 2
-gSpriteAnimTable_83F7AD4:: @ 83F7AD4
- .4byte gSpriteAnim_83F7AC8
-
- .align 2
-gSpriteTemplate_83F7AD8:: @ 83F7AD8
- spr_template 4096, 4096, gOamData_83F7AB8, gSpriteAnimTable_83F7AD0, NULL, gDummySpriteAffineAnimTable, sub_810B05C
-
- .align 2
-gSpriteTemplate_83F7AF0:: @ 83F7AF0
- spr_template 4096, 4096, gOamData_83F7AB8, gSpriteAnimTable_83F7AD4, NULL, gDummySpriteAffineAnimTable, sub_810B0F4
-
- .align 2
-gOamData_83F7B08:: @ 83F7B08
- .2byte 0x00A0
- .2byte 0x4000
- .2byte 0x0800
-
- .align 2
-gSpriteAnim_83F7B10:: @ 83F7B10
- obj_image_anim_frame 132, 30
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83F7B18:: @ 83F7B18
- obj_image_anim_frame 128, 30
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83F7B20:: @ 83F7B20
- .4byte gSpriteAnim_83F7B10
-
- .align 2
-gSpriteAnimTable_83F7B24:: @ 83F7B24
- .4byte gSpriteAnim_83F7B18
-
- .align 2
-gSpriteTemplate_83F7B28:: @ 83F7B28
- spr_template 4096, 4096, gOamData_83F7B08, gSpriteAnimTable_83F7B20, NULL, gDummySpriteAffineAnimTable, sub_810B18C
-
- .align 2
-gSpriteTemplate_83F7B40:: @ 83F7B40
- spr_template 4096, 4096, gOamData_83F7B08, gSpriteAnimTable_83F7B24, NULL, gDummySpriteAffineAnimTable, sub_810B230
-
-@ 83F7B58
- .include "data/clock_hand_coords.inc"
-
-gUnknown_083F7E28:: @ 83F7E28
- .incbin "baserom.gba", 0x003f7e28, 0x80
-
- .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
-
-Unknown_83F7F48:
- .incbin "baserom.gba", 0x003f7f48, 0x28
-
- .align 2
-gUnknown_083F7F70:: @ 83F7F70
- .4byte Unknown_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
- .incbin "baserom.gba", 0x003f7f9c, 0x28
-
- .align 2
-gUnknown_083F7FC4:: @ 83F7FC4
- .byte 1, 4, 1, 0
- .4byte sub_810CFF8
- .byte 2, 4, 1, 0
- .4byte sub_810CFF8
- .byte 3, 4, 1, 0
- .4byte sub_810CFF8
- .byte 5, 4, 1, 0
- .4byte sub_810CFF8
- .byte 6, 4, 1, 0
- .4byte sub_810CFF8
- .byte 7, 4, 1, 0
- .4byte sub_810CFF8
- .byte 8, 4, 1, 0
- .4byte sub_810CFF8
- .byte 9, 4, 1, 0
- .4byte sub_810CFF8
-
- .byte 4, 1, 0, 1
- .4byte sub_810CE48
- .byte 4, 2, 0, 1
- .4byte sub_810CE48
- .byte 4, 3, 0, 1
- .4byte sub_810CE48
- .byte 4, 5, 0, 1
- .4byte sub_810CE48
- .byte 4, 6, 0, 1
- .4byte sub_810CE48
- .byte 4, 7, 0, 1
- .4byte sub_810CE48
- .byte 4, 8, 0, 1
- .4byte sub_810CE48
- .byte 4, 9, 0, 1
- .4byte sub_810CE48
-
- .byte 0, 0, 0, 0
- .4byte NULL
-
- .align 2
-gCaveTransitionPalette_White:: @ 83F804C
- .rept 16
- .2byte 0x7FFF
- .endr
-
- .align 2
-gCaveTransitionPalette_Black:: @ 83F806C
- .rept 16
- .2byte 0x0000
- .endr
-
-gUnknown_083F808C:: @ 83F808C
- .incbin "baserom.gba", 0x003f808c, 0x10
-
-gUnknown_083F809C:: @ 83F809C
- .incbin "baserom.gba", 0x003f809c, 0x10
-
- .align 2
-gCaveTransitionTilemap:: @ 83F80AC
- .incbin "graphics/misc/cave_transition_map.bin.lz"
-
- .align 2
-gCaveTransitionTiles:: @ 83F828C
- .incbin "graphics/misc/cave_transition.4bpp.lz"
-
-gUnknown_083F8340:: @ 83F8340
- .incbin "baserom.gba", 0x003f8340, 0x18
-
-gUnknown_083F8358:: @ 83F8358
- .incbin "baserom.gba", 0x003f8358, 0x4
-
-gUnknown_083F835C:: @ 83F835C
- .incbin "baserom.gba", 0x003f835c, 0x8
-
-gUnknown_083F8364:: @ 83F8364
- .incbin "baserom.gba", 0x003f8364, 0xc
-
-gUnknown_083F8370:: @ 83F8370
- .incbin "baserom.gba", 0x003f8370, 0x6
-
-gUnknown_083F8376:: @ 83F8376
- .incbin "baserom.gba", 0x003f8376, 0xa
-
- .align 2
-gUnknown_083F8380:: @ 83F8380
- .4byte OtherText_1F
- .4byte OtherText_2F
- .4byte OtherText_3F
- .4byte OtherText_4F
- .4byte OtherText_5F
- .4byte OtherText_6F
- .4byte OtherText_7F
- .4byte OtherText_8F
- .4byte OtherText_9F
- .4byte OtherText_10F
- .4byte OtherText_11F
- .4byte OtherText_B1F
- .4byte OtherText_B2F
- .4byte OtherText_B3F
- .4byte OtherText_B4F
- .4byte OtherText_Rooftop
-
- .align 2
-gUnknown_083F83C0:: @ 83F83C0
- .4byte OtherText_BlueFlute
- .4byte OtherText_YellowFlute
- .4byte OtherText_RedFlute
- .4byte OtherText_WhiteFlute
- .4byte OtherText_BlackFlute
- .4byte OtherText_PrettyChair
- .4byte OtherText_PrettyDesk
- .4byte gOtherText_CancelNoTerminator
-
-gUnknown_083F83E0:: @ 83F83E0
- .incbin "baserom.gba", 0x003f83e0, 0xc
-
-gUnknown_083F83EC:: @ 83F83EC
- .incbin "baserom.gba", 0x003f83ec, 0xc
-
-gUnknown_083F83F8:: @ 83F83F8
- .incbin "baserom.gba", 0x003f83f8, 0xc
-
-gUnknown_083F8404:: @ 83F8404
- .incbin "baserom.gba", 0x003f8404, 0x4
-
-gUnknown_083F8408:: @ 83F8408
- .incbin "baserom.gba", 0x003f8408, 0x8
-
-gUnknown_083F8410:: @ 83F8410
- .incbin "baserom.gba", 0x003f8410, 0x8
-
-gUnknown_083F8418:: @ 83F8418
- .incbin "graphics/pokedex/area_glow.gbapal"
-
-gUnknown_083F8438:: @ 83F8438
- .incbin "graphics/pokedex/area_glow.4bpp.lz"
-
- .align 1
-gUnknown_083F856C:: @ 83F856C
- .2byte 360
-
- .align 1
-gUnknown_083F856E:: @ 83F856E
- .2byte 328, 0, 34
- .2byte 412, 0, 0
-
-gUnknown_083F857A:: @ 83F857A
- .incbin "baserom.gba", 0x003f857a, 0x12
-
- .align 2
-gUnknown_083F858C:: @ 83F858C
- obj_tiles AreaMarkerTiles, 0x80, 2
-
- .align 2
-gUnknown_083F8594:: @ 83F8594
- obj_pal AreaMarkerPalette, 2
-
- .align 2
-gOamData_83F859C:: @ 83F859C
- .2byte 0x0000
- .2byte 0x4000
- .2byte 0x0400
-
- .align 2
-gSpriteTemplate_83F85A4:: @ 83F85A4
- spr_template 2, 2, gOamData_83F859C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-AreaMarkerPalette:
- .incbin "graphics/pokedex/area_marker.gbapal"
-
- .align 2
-AreaMarkerTiles:
- .incbin "graphics/pokedex/area_marker.4bpp"
-
- .align 2
-gUnknown_083F865C:: @ 83F865C
- obj_pal gAreaUnknownPalette, 3
-
- .align 2
-gUnknown_083F8664:: @ 83F8664
- obj_tiles 0x02000FB4, 0x600, 3
-
- .align 2
-gOamData_83F866C:: @ 83F866C
- .2byte 0x0000
- .2byte 0x8000
- .2byte 0x0400
-
- .align 2
-gSpriteTemplate_83F8674:: @ 83F8674
- spr_template 3, 3, gOamData_83F866C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
-gUnknown_083F868C:: @ 83F868C
- .incbin "baserom.gba", 0x003f868c, 0x30
-
-gUnknown_083F86BC:: @ 83F86BC
- .incbin "baserom.gba", 0x003f86bc, 0x40
-
- .align 2
-gRouletteCenter_Pal::
- .incbin "graphics/roulette/center.gbapal"
-
- .incbin "baserom.gba", 0x003f871c, 0x1A0
-
-gUnknown_083F88BC:: @ 83F88BC
- .incbin "baserom.gba", 0x003f88bc, 0x1a4
-
-gUnknown_083F8A60:: @ 83F8A60
- .incbin "baserom.gba", 0x003f8a60, 0x1a0
-
-gUnknown_083F8C00:: @ 83F8C00
- .incbin "baserom.gba", 0x003f8c00, 0xc
-
-gUnknown_083F8C0C:: @ 83F8C0C
- .incbin "baserom.gba", 0x003f8c0c, 0x184
-
-gUnknown_083F8D90:: @ 83F8D90
- .incbin "baserom.gba", 0x003f8d90, 0x4
-
-gUnknown_083F8D94:: @ 83F8D94
- .incbin "baserom.gba", 0x003f8d94, 0x5c
-
-gUnknown_083F8DF0:: @ 83F8DF0
- .incbin "baserom.gba", 0x003f8df0, 0x4
-
-gUnknown_083F8DF4:: @ 83F8DF4
- .incbin "baserom.gba", 0x003f8df4, 0x40
-
-gUnknown_083F8E34:: @ 83F8E34
- .incbin "baserom.gba", 0x003f8e34, 0x68
-
-gUnknown_083F8E9C:: @ 83F8E9C
- .incbin "baserom.gba", 0x003f8e9c, 0x18
-
- .align 2
-gUnknown_083F8EB4:: @ 83F8EB4
- .4byte sub_811755C
- .4byte sub_81175C0
-
- .align 2
-gUnknown_083F8EBC:: @ 83F8EBC
- .4byte sub_811577C
- .4byte sub_81157AC
-
-gUnknown_083F8EC4:: @ 83F8EC4
- .incbin "baserom.gba", 0x003f8ec4, 0x6
-
-gUnknown_083F8ECA:: @ 83F8ECA
- .incbin "baserom.gba", 0x003f8eca, 0x4
-
-gUnknown_083F8ECE:: @ 83F8ECE
- .incbin "baserom.gba", 0x003f8ece, 0xa
-
-gUnknown_083F8ED8:: @ 83F8ED8
- .incbin "baserom.gba", 0x003f8ed8, 0x10
-
-gUnknown_083F8EE8:: @ 83F8EE8
- .incbin "baserom.gba", 0x003f8ee8, 0xc
-
-gUnknown_083F8EF4:: @ 83F8EF4
- .byte 0, 3, 4, 6, 12
-
- .align 2
-RouletteSpritePalette_01:
- .incbin "graphics/roulette/shadow.gbapal"
-
- .align 2
-RouletteSpritePalette_02:
- .incbin "graphics/roulette/ball.gbapal"
-
- .align 2
-RouletteSpritePalette_03:
- .incbin "graphics/roulette/ball_counter.gbapal"
-
- .align 2
-RouletteSpritePalette_04:
- .incbin "graphics/roulette/cursor.gbapal"
-
- .align 2
-RouletteSpritePalette_05:
- .incbin "graphics/roulette/credit.gbapal"
-
- .align 2
-RouletteSpritePalette_06:
- .incbin "graphics/roulette/shroomish.gbapal"
-
- .align 2
-RouletteSpritePalette_07:
- .incbin "graphics/roulette/tailow.gbapal"
-
- .align 2
-RouletteSpritePalette_08:
- .incbin "graphics/roulette/poke_icons.gbapal"
-
- .align 2
-RouletteSpritePalette_09:
- .incbin "graphics/roulette/wynaut.gbapal"
-
- .align 2
-RouletteSpritePalette_10:
- .incbin "graphics/roulette/azurill.gbapal"
-
- .align 2
-RouletteSpritePalette_11:
- .incbin "graphics/roulette/skitty.gbapal"
-
- .align 2
-RouletteSpritePalette_12:
- .incbin "graphics/roulette/makuhita.gbapal"
-
- .align 2
-RouletteSpritePalette_13:
- .incbin "baserom.gba", 0x003F907C, 0x20
-
- .align 2
-RouletteSpritePalette_14:
- .incbin "baserom.gba", 0x003F909C, 0x20
-
- .align 2
-RouletteSpritePalette_15:
- .incbin "baserom.gba", 0x003F90BC, 0x20
-
- .align 2
-RouletteSpritePalette_16:
- .incbin "baserom.gba", 0x003F90DC, 0x20
-
- .align 2
-gUnknown_083F90FC:: @ 83F90FC
- .incbin "graphics/roulette/ball.4bpp.lz"
-
- .align 2
-RouletteBallCounterTiles: @ 83F9244
- .incbin "graphics/roulette/ball_counter.4bpp.lz"
-
- .align 2
-gUnknown_083F92A8:: @ 83F92A8
- .incbin "graphics/roulette/roulette_tilt.4bpp.lz"
-
- .align 2
-RoulettePokeIconsTiles: @ 83F9698
- .incbin "graphics/roulette/poke_icons.4bpp.lz"
-
- .align 2
-RoulettePokeIcons2Tiles: @ 83F983C
- .incbin "graphics/roulette/poke_icons2.4bpp.lz"
-
- .align 2
-gUnknown_083F9D3C:: @ 83F9D3C
- .incbin "graphics/roulette/shadow.4bpp.lz"
-
- .align 2
-RouletteCursorTiles: @ 83F9DD4
- .incbin "graphics/roulette/cursor.4bpp.lz"
-
- .align 2
-gUnknown_083F9E30:: @ 83F9E30
- obj_pal RouletteSpritePalette_01, 1
- obj_pal RouletteSpritePalette_02, 2
- obj_pal RouletteSpritePalette_03, 3
- obj_pal RouletteSpritePalette_04, 4
- obj_pal RouletteSpritePalette_05, 5
- obj_pal RouletteSpritePalette_06, 6
- obj_pal RouletteSpritePalette_07, 7
- obj_pal RouletteSpritePalette_08, 8
- obj_pal RouletteSpritePalette_09, 9
- obj_pal RouletteSpritePalette_10, 10
- obj_pal RouletteSpritePalette_11, 11
- obj_pal RouletteSpritePalette_12, 12
- obj_pal RouletteSpritePalette_13, 13
- obj_pal RouletteSpritePalette_14, 14
- obj_pal RouletteSpritePalette_15, 15
- obj_pal RouletteSpritePalette_16, 16
- null_obj_pal
-
- .align 2
-gOamData_83F9EB8:: @ 83F9EB8
- .2byte 0x0000
- .2byte 0x8000
- .2byte 0x0400
-
- .align 2
-gOamData_83F9EC0:: @ 83F9EC0
- .2byte 0x0000
- .2byte 0x4000
- .2byte 0x0400
-
- .align 2
-gOamData_83F9EC8:: @ 83F9EC8
- .2byte 0x833C
- .2byte 0x8000
- .2byte 0x0800
-
- .align 2
-gSpriteAnim_83F9ED0:: @ 83F9ED0
- obj_image_anim_frame 0, 0
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83F9ED8:: @ 83F9ED8
- .4byte gSpriteAnim_83F9ED0
-
- .align 2
-gSpriteAffineAnim_83F9EDC:: @ 83F9EDC
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnimTable_83F9EE4:: @ 83F9EE4
- .4byte gSpriteAffineAnim_83F9EDC
-
- .align 2
-gUnknown_083F9EE8:: @ 83F9EE8
- obj_tiles RoulettePokeIcons2Tiles, 0xC00, 0
-
- .align 2
-gSpriteAnim_83F9EF0:: @ 83F9EF0
- obj_image_anim_frame 0, 0
- obj_image_anim_frame 32, 0
- obj_image_anim_frame 64, 0
- obj_image_anim_frame 72, 0
- obj_image_anim_frame 8, 0
- obj_image_anim_frame 40, 0
- obj_image_anim_frame 48, 0
- obj_image_anim_frame 80, 0
- obj_image_anim_frame 16, 0
- obj_image_anim_frame 24, 0
- obj_image_anim_frame 56, 0
- obj_image_anim_frame 88, 0
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83F9F24:: @ 83F9F24
- .4byte gSpriteAnim_83F9EF0
-
- .align 2
-gSpriteAnimTable_83F9F28:: @ 83F9F28
- .4byte gSpriteAnim_83F9EF0 + 0x4
-
- .align 2
-gSpriteAnimTable_83F9F2C:: @ 83F9F2C
- .4byte gSpriteAnim_83F9EF0 + 0x8
-
- .align 2
-gSpriteAnimTable_83F9F30:: @ 83F9F30
- .4byte gSpriteAnim_83F9EF0 + 0xC
-
- .align 2
-gSpriteAnimTable_83F9F34:: @ 83F9F34
- .4byte gSpriteAnim_83F9EF0 + 0x10
-
- .align 2
-gSpriteAnimTable_83F9F38:: @ 83F9F38
- .4byte gSpriteAnim_83F9EF0 + 0x14
-
- .align 2
-gSpriteAnimTable_83F9F3C:: @ 83F9F3C
- .4byte gSpriteAnim_83F9EF0 + 0x18
-
- .align 2
-gSpriteAnimTable_83F9F40:: @ 83F9F40
- .4byte gSpriteAnim_83F9EF0 + 0x1C
-
- .align 2
-gSpriteAnimTable_83F9F44:: @ 83F9F44
- .4byte gSpriteAnim_83F9EF0 + 0x20
-
- .align 2
-gSpriteAnimTable_83F9F48:: @ 83F9F48
- .4byte gSpriteAnim_83F9EF0 + 0x24
-
- .align 2
-gSpriteAnimTable_83F9F4C:: @ 83F9F4C
- .4byte gSpriteAnim_83F9EF0 + 0x28
-
- .align 2
-gSpriteAnimTable_83F9F50:: @ 83F9F50
- .4byte gSpriteAnim_83F9EF0 + 0x2C
-
- .align 2
-gUnknown_083F9F54:: @ 83F9F54
- obj_tiles gRouletteHeadersTiles, 0x1600, 4
-
- .align 2
-gUnknown_083F9F5C:: @ 83F9F5C
- obj_tiles RoulettePokeIconsTiles, 0x400, 5
-
- .align 2
-gSpriteAnim_83F9F64:: @ 83F9F64
- obj_image_anim_frame 0, 0
- obj_image_anim_frame 16, 0
- obj_image_anim_frame 32, 0
- obj_image_anim_frame 48, 0
- obj_image_anim_frame 64, 0
- obj_image_anim_frame 80, 0
- obj_image_anim_frame 96, 0
- obj_image_anim_frame 112, 0
- obj_image_anim_frame 128, 0
- obj_image_anim_frame 144, 0
- obj_image_anim_frame 160, 0
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83F9F94:: @ 83F9F94
- obj_image_anim_frame 0, 0
- obj_image_anim_frame 4, 0
- obj_image_anim_frame 8, 0
- obj_image_anim_frame 12, 0
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83F9FA8:: @ 83F9FA8
- .4byte gSpriteAnim_83F9F64
-
- .align 2
-gSpriteAnimTable_83F9FAC:: @ 83F9FAC
- .4byte gSpriteAnim_83F9F64 + 0x8
-
- .align 2
-gSpriteAnimTable_83F9FB0:: @ 83F9FB0
- .4byte gSpriteAnim_83F9F64 + 0x10
-
- .align 2
-gSpriteAnimTable_83F9FB4:: @ 83F9FB4
- .4byte gSpriteAnim_83F9F64 + 0x18
-
- .align 2
-gSpriteAnimTable_83F9FB8:: @ 83F9FB8
- .4byte gSpriteAnim_83F9F64 + 0x20
-
- .align 2
-gSpriteAnimTable_83F9FBC:: @ 83F9FBC
- .4byte gSpriteAnim_83F9F64 + 0x24
-
- .align 2
-gSpriteAnimTable_83F9FC0:: @ 83F9FC0
- .4byte gSpriteAnim_83F9F64 + 0x28
-
- .align 2
-gSpriteAnimTable_83F9FC4:: @ 83F9FC4
- .4byte gSpriteAnim_83F9F94
-
- .align 2
-gSpriteAnimTable_83F9FC8:: @ 83F9FC8
- .4byte gSpriteAnim_83F9F94 + 0x4
-
- .align 2
-gSpriteAnimTable_83F9FCC:: @ 83F9FCC
- .4byte gSpriteAnim_83F9F94 + 0x8
-
- .align 2
-gSpriteAnimTable_83F9FD0:: @ 83F9FD0
- .4byte gSpriteAnim_83F9F94 + 0xC
-
- .align 2
-gSpriteTemplate_83F9FD4:: @ 83F9FD4
- spr_template 4, 8, gOamData_83F9EB8, gSpriteAnimTable_83F9FA8, NULL, gDummySpriteAffineAnimTable, sub_81184CC
-
- .align 2
-gSpriteTemplate_83F9FEC:: @ 83F9FEC
- spr_template 4, 8, gOamData_83F9EB8, gSpriteAnimTable_83F9FAC, NULL, gDummySpriteAffineAnimTable, sub_81184CC
-
- .align 2
-gSpriteTemplate_83FA004:: @ 83FA004
- spr_template 4, 8, gOamData_83F9EB8, gSpriteAnimTable_83F9FB0, NULL, gDummySpriteAffineAnimTable, sub_81184CC
-
- .align 2
-gSpriteTemplate_83FA01C:: @ 83FA01C
- spr_template 4, 8, gOamData_83F9EB8, gSpriteAnimTable_83F9FB4, NULL, gDummySpriteAffineAnimTable, sub_81184CC
-
- .align 2
-gSpriteTemplate_83FA034:: @ 83FA034
- spr_template 4, 8, gOamData_83F9EB8, gSpriteAnimTable_83F9FB8, NULL, gDummySpriteAffineAnimTable, sub_81184CC
-
- .align 2
-gSpriteTemplate_83FA04C:: @ 83FA04C
- spr_template 4, 8, gOamData_83F9EB8, gSpriteAnimTable_83F9FBC, NULL, gDummySpriteAffineAnimTable, sub_81184CC
-
- .align 2
-gSpriteTemplate_83FA064:: @ 83FA064
- spr_template 4, 8, gOamData_83F9EB8, gSpriteAnimTable_83F9FC0, NULL, gDummySpriteAffineAnimTable, sub_81184CC
-
- .align 2
-gSpriteTemplate_83FA07C:: @ 83FA07C
- spr_template 5, 8, gOamData_83F9EC0, gSpriteAnimTable_83F9FC4, NULL, gDummySpriteAffineAnimTable, sub_81184CC
-
- .align 2
-gSpriteTemplate_83FA094:: @ 83FA094
- spr_template 5, 8, gOamData_83F9EC0, gSpriteAnimTable_83F9FC8, NULL, gDummySpriteAffineAnimTable, sub_81184CC
-
- .align 2
-gSpriteTemplate_83FA0AC:: @ 83FA0AC
- spr_template 5, 8, gOamData_83F9EC0, gSpriteAnimTable_83F9FCC, NULL, gDummySpriteAffineAnimTable, sub_81184CC
-
- .align 2
-gSpriteTemplate_83FA0C4:: @ 83FA0C4
- spr_template 5, 8, gOamData_83F9EC0, gSpriteAnimTable_83F9FD0, NULL, gDummySpriteAffineAnimTable, sub_81184CC
-
- .align 2
-gSpriteTemplate_83FA0DC:: @ 83FA0DC
- spr_template 0, 9, gOamData_83F9EC8, gSpriteAnimTable_83F9F24, NULL, gDummySpriteAffineAnimTable, sub_8117E98
-
- .align 2
-gSpriteTemplate_83FA0F4:: @ 83FA0F4
- spr_template 0, 10, gOamData_83F9EC8, gSpriteAnimTable_83F9F28, NULL, gDummySpriteAffineAnimTable, sub_8117E98
-
- .align 2
-gSpriteTemplate_83FA10C:: @ 83FA10C
- spr_template 0, 11, gOamData_83F9EC8, gSpriteAnimTable_83F9F2C, NULL, gDummySpriteAffineAnimTable, sub_8117E98
-
- .align 2
-gSpriteTemplate_83FA124:: @ 83FA124
- spr_template 0, 12, gOamData_83F9EC8, gSpriteAnimTable_83F9F30, NULL, gDummySpriteAffineAnimTable, sub_8117E98
-
- .align 2
-gSpriteTemplate_83FA13C:: @ 83FA13C
- spr_template 0, 9, gOamData_83F9EC8, gSpriteAnimTable_83F9F34, NULL, gDummySpriteAffineAnimTable, sub_8117E98
-
- .align 2
-gSpriteTemplate_83FA154:: @ 83FA154
- spr_template 0, 10, gOamData_83F9EC8, gSpriteAnimTable_83F9F38, NULL, gDummySpriteAffineAnimTable, sub_8117E98
-
- .align 2
-gSpriteTemplate_83FA16C:: @ 83FA16C
- spr_template 0, 11, gOamData_83F9EC8, gSpriteAnimTable_83F9F3C, NULL, gDummySpriteAffineAnimTable, sub_8117E98
-
- .align 2
-gSpriteTemplate_83FA184:: @ 83FA184
- spr_template 0, 12, gOamData_83F9EC8, gSpriteAnimTable_83F9F40, NULL, gDummySpriteAffineAnimTable, sub_8117E98
-
- .align 2
-gSpriteTemplate_83FA19C:: @ 83FA19C
- spr_template 0, 9, gOamData_83F9EC8, gSpriteAnimTable_83F9F44, NULL, gDummySpriteAffineAnimTable, sub_8117E98
-
- .align 2
-gSpriteTemplate_83FA1B4:: @ 83FA1B4
- spr_template 0, 10, gOamData_83F9EC8, gSpriteAnimTable_83F9F48, NULL, gDummySpriteAffineAnimTable, sub_8117E98
-
- .align 2
-gSpriteTemplate_83FA1CC:: @ 83FA1CC
- spr_template 0, 11, gOamData_83F9EC8, gSpriteAnimTable_83F9F4C, NULL, gDummySpriteAffineAnimTable, sub_8117E98
-
- .align 2
-gSpriteTemplate_83FA1E4:: @ 83FA1E4
- spr_template 0, 12, gOamData_83F9EC8, gSpriteAnimTable_83F9F50, NULL, gDummySpriteAffineAnimTable, sub_8117E98
-
- .align 2
-gOamData_83FA1FC:: @ 83FA1FC
- .2byte 0x4000
- .2byte 0xC000
- .2byte 0x0400
-
- .align 2
-gOamData_83FA204:: @ 83FA204
- .2byte 0x8000
- .2byte 0x0000
- .2byte 0x0400
-
- .align 2
-gOamData_83FA20C:: @ 83FA20C
- .2byte 0x4000
- .2byte 0x8000
- .2byte 0x0400
-
- .align 2
-gOamData_83FA214:: @ 83FA214
- .2byte 0x4000
- .2byte 0x0000
- .2byte 0x0400
-
- .align 2
-gUnknown_083FA21C:: @ 83FA21C
- obj_tiles gRouletteCreditTiles, 0x400, 7
- obj_tiles gRouletteNumbersTiles, 0x280, 8
- obj_tiles gRouletteMultiplierTiles, 0x500, 9
- obj_tiles RouletteBallCounterTiles, 0x140, 10
- obj_tiles RouletteCursorTiles, 0x200, 11
- null_obj_tiles
-
- .align 2
-gSpriteAnim_83FA24C:: @ 83FA24C
- obj_image_anim_frame 0, 0
- obj_image_anim_frame 2, 0
- obj_image_anim_frame 4, 0
- obj_image_anim_frame 6, 0
- obj_image_anim_frame 8, 0
- obj_image_anim_frame 10, 0
- obj_image_anim_frame 12, 0
- obj_image_anim_frame 14, 0
- obj_image_anim_frame 16, 0
- obj_image_anim_frame 18, 0
-
- .align 2
-gSpriteAnimTable_83FA274:: @ 83FA274
- .4byte gSpriteAnim_83FA24C
-
- .align 2
-gSpriteAnim_83FA278:: @ 83FA278
- obj_image_anim_frame 0, 0
- obj_image_anim_frame 8, 0
- obj_image_anim_frame 16, 0
- obj_image_anim_frame 24, 0
- obj_image_anim_frame 32, 0
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83FA290:: @ 83FA290
- .4byte gSpriteAnim_83FA278
-
- .align 2
-gSpriteAnim_83FA294:: @ 83FA294
- obj_image_anim_frame 0, 0
- obj_image_anim_frame 2, 0
- obj_image_anim_frame 4, 0
- obj_image_anim_frame 6, 0
- obj_image_anim_frame 8, 0
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83FA2AC:: @ 83FA2AC
- .4byte gSpriteAnim_83FA294
-
- .align 2
-gSpriteTemplate_83FA2B0:: @ 83FA2B0
- spr_template 7, 5, gOamData_83FA1FC, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-gSpriteTemplate_83FA2C8:: @ 83FA2C8
- spr_template 8, 5, gOamData_83FA204, gSpriteAnimTable_83FA274, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-gSpriteTemplate_83FA2E0:: @ 83FA2E0
- spr_template 9, 5, gOamData_83FA20C, gSpriteAnimTable_83FA290, NULL, gDummySpriteAffineAnimTable, sub_81184CC
-
- .align 2
-gSpriteTemplate_83FA2F8:: @ 83FA2F8
- spr_template 10, 3, gOamData_83FA214, gSpriteAnimTable_83FA2AC, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-gSpriteTemplate_83FA310:: @ 83FA310
- spr_template 11, 5, gOamData_83F9EB8, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-gOamData_83FA328:: @ 83FA328
- .2byte 0x0000
- .2byte 0x4000
- .2byte 0x0800
-
- .align 2
-gSpriteImageTable_83FA330:: @ 83FA330
- obj_frame_tiles 0x02017E00, 0x80
- obj_frame_tiles 0x02017E80, 0x80
- obj_frame_tiles 0x02017F00, 0x80
- obj_frame_tiles 0x02017F80, 0x80
-
- .align 2
-gSpriteAnim_83FA350:: @ 83FA350
- obj_image_anim_frame 0, 5
- obj_image_anim_frame 1, 5
- obj_image_anim_frame 2, 5
- obj_image_anim_frame 1, 5
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnim_83FA364:: @ 83FA364
- obj_image_anim_frame 0, 10
- obj_image_anim_frame 1, 10
- obj_image_anim_frame 2, 10
- obj_image_anim_frame 1, 10
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnim_83FA378:: @ 83FA378
- obj_image_anim_frame 0, 15
- obj_image_anim_frame 1, 15
- obj_image_anim_frame 2, 15
- obj_image_anim_frame 1, 15
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnim_83FA38C:: @ 83FA38C
- obj_image_anim_frame 1, 2
- obj_image_anim_frame 2, 5
- obj_image_anim_frame 1, 5
- obj_image_anim_frame 3, 5
- obj_image_anim_end
-
- .align 2
-Unknown_083FA3A0:
- .incbin "baserom.gba", 0x003fa3a0, 0x18
-Unknown_083FA3B8:
- .incbin "baserom.gba", 0x003fa3b8, 0x14
-Unknown_083FA3CC:
- .incbin "baserom.gba", 0x003fa3cc, 0x8
-
- .align 2
-gSpriteAnim_83FA3D4:: @ 83FA3D4
- obj_image_anim_frame 2, 2
- obj_image_anim_frame 1, 5
- obj_image_anim_frame 0, 5
- obj_image_anim_frame 3, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83FA3E8:: @ 83FA3E8
- .4byte gSpriteAnim_83FA350
- .4byte gSpriteAnim_83FA364
- .4byte gSpriteAnim_83FA378
- .4byte gSpriteAnim_83FA38C
- .4byte gSpriteAnim_83FA3D4
-
- .align 2
- .4byte Unknown_083FA3A0
- .4byte Unknown_083FA3B8
- .4byte Unknown_083FA3B8
- .4byte Unknown_083FA3CC
-
- .align 2
-gSpriteTemplate_83FA40C:: @ 83FA40C
- spr_template 0xFFFF, 2, gOamData_83FA328, gSpriteAnimTable_83FA3E8, gSpriteImageTable_83FA330, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-gOamData_83FA424:: @ 83FA424
- .2byte 0x0351
- .2byte 0xC000
- .2byte 0x0800
-
- .align 2
-gUnknown_083FA42C:: @ 83FA42C
- obj_tiles gRouletteCenter_Gfx, 2048, 0x0006
-
- .align 2
-gSpriteTemplate_83FA434:: @ 83FA434
- spr_template 6, 2, gOamData_83FA424, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_8118554
-
- .align 2
-gOamData_83FA44C:: @ 83FA44C
- .2byte 0x0000
- .2byte 0x8000
- .2byte 0x0800
-
- .align 2
-gOamData_83FA454:: @ 83FA454
- .2byte 0x0000
- .2byte 0x8000
- .2byte 0x0800
-
- .align 2
-gSpriteImageTable_83FA45C:: @ 83FA45C
- obj_frame_tiles 0x02017000, 0x200
- obj_frame_tiles 0x02017200, 0x200
- obj_frame_tiles 0x02017400, 0x200
- obj_frame_tiles 0x02017600, 0x200
- obj_frame_tiles 0x02017800, 0x200
- obj_frame_tiles 0x02017A00, 0x200
- obj_frame_tiles 0x02017C00, 0x200
-
- .align 2
-gSpriteAnim_83FA494:: @ 83FA494
- obj_image_anim_frame 0, 6
- obj_image_anim_frame 1, 6
- obj_image_anim_frame 2, 6
- obj_image_anim_frame 3, 6
- obj_image_anim_frame 2, 6
- obj_image_anim_frame 4, 6
- obj_image_anim_jump 2
-
- .align 2
-gSpriteAnim_83FA4B0:: @ 83FA4B0
- obj_image_anim_frame 5, 10
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83FA4B8:: @ 83FA4B8
- obj_image_anim_frame 5, 10, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83FA4C0:: @ 83FA4C0
- obj_image_anim_frame 5, 20
- obj_image_anim_frame 6, 20
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnim_83FA4CC:: @ 83FA4CC
- obj_image_anim_frame 5, 20, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 6, 20, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnim_83FA4D8:: @ 83FA4D8
- obj_image_anim_frame 5, 10
- obj_image_anim_frame 6, 10
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnim_83FA4E4:: @ 83FA4E4
- obj_image_anim_frame 5, 10, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 6, 10, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnimTable_83FA4F0:: @ 83FA4F0
- .4byte gSpriteAnim_83FA494
-
- .align 2
-gSpriteAnimTable_83FA4F4:: @ 83FA4F4
- .4byte gSpriteAnim_83FA4B0
- .4byte gSpriteAnim_83FA4B8
- .4byte gSpriteAnim_83FA4C0
- .4byte gSpriteAnim_83FA4CC
- .4byte gSpriteAnim_83FA4D8
- .4byte gSpriteAnim_83FA4E4
-
- .align 2
-gSpriteTemplate_83FA50C:: @ 83FA50C
- spr_template 0xFFFF, 6, gOamData_83FA44C, gSpriteAnimTable_83FA4F0, gSpriteImageTable_83FA45C, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-gSpriteTemplate_83FA524:: @ 83FA524
- spr_template 0xFFFF, 7, gOamData_83FA454, gSpriteAnimTable_83FA4F4, gSpriteImageTable_83FA45C, gDummySpriteAffineAnimTable, sub_8119D80
-
- .align 2
-gOamData_83FA53C:: @ 83FA53C
- .2byte 0x0000
- .2byte 0x4000
- .2byte 0x0800
-
- .align 2
-gOamData_83FA544:: @ 83FA544
- .2byte 0x4000
- .2byte 0x8000
- .2byte 0x0800
-
- .align 2
-gOamData_83FA54C:: @ 83FA54C
- .2byte 0x4100
- .2byte 0x8000
- .2byte 0x0800
-
- .align 2
-gSpriteImageTable_83FA554: @ 83FA554
- obj_frame_tiles 0x02018000, 0x80
-
- .align 2
-gSpriteImageTable_83FA55C: @ 83FA55C
- obj_frame_tiles 0x02018080, 0x100
-
- .align 2
-gUnknown_083FA564: @ 83FA564
- .incbin "baserom.gba", 0x003fa564, 0x18
-
- .align 2
-gSpriteAffineAnim_83FA57C:: @ 83FA57C
- obj_rot_scal_anim_frame 0x100, 0x100, 0, 0
- obj_rot_scal_anim_frame 0xFFFE, 0x0, 0, 15
- obj_rot_scal_anim_frame 0xFFFF, 0xFFFE, 0, 15
- obj_rot_scal_anim_frame 0xFFFF, 0xFFFB, 0, 24
- obj_rot_scal_anim_end
-
- .align 2
- .4byte gUnknown_083FA564
-
- .align 2
-gSpriteAffineAnimTable_83FA5A8:: @ 83FA5A8
- .4byte gSpriteAffineAnim_83FA57C
-
- .align 2
-gUnknown_083FA5AC:: @ 83FA5AC
- .incbin "baserom.gba", 0x003fa5ac, 0x10
-
- .align 2
-@ unreferenced
- .4byte gUnknown_083FA5AC
-
- .align 2
-gSpriteTemplate_83FA5C0:: @ 83FA5C0
- spr_template 0xFFFF, 1, gOamData_83FA53C, gSpriteAnimTable_83F9ED8, gSpriteImageTable_83FA554, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-gSpriteTemplate_83FA5D8:: @ 83FA5D8
- spr_template 0xFFFF, 1, gOamData_83FA544, gSpriteAnimTable_83F9ED8, gSpriteImageTable_83FA55C, gDummySpriteAffineAnimTable, sub_8119964
-
- .align 2
-gSpriteTemplate_83FA5F0:: @ 83FA5F0
- spr_template 0xFFFF, 1, gOamData_83FA54C, gSpriteAnimTable_83F9ED8, gSpriteImageTable_83FA55C, gSpriteAffineAnimTable_83FA5A8, sub_8119D80
-
-gUnknown_083FA608:: @ 83FA608
- .incbin "baserom.gba", 0x003fa608, 0x6
-
- .align 1
-gUnknown_083FA60E:: @ 83FA60E
- .2byte 0x74, 0x2C
- .2byte 0x74, 0x70
-
-gUnknown_083FA616:: @ 83FA616
- .incbin "baserom.gba", 0x003fa616, 0x8
-
-gUnknown_083FA61E:: @ 83FA61E
- .incbin "baserom.gba", 0x003fa61e, 0x14
-
-gUnknown_083FA632:: @ 83FA632
- .incbin "baserom.gba", 0x003fa632, 0x18
-
-gUnknown_083FA64A:: @ 83FA64A
- .byte -1, 1
-
-gUnknown_083FA64C:: @ 83FA64C
- .incbin "baserom.gba", 0x003fa64c, 0x10
-
- .align 2
-CryMeterNeedlePalette: @ 83FA65C
- .incbin "graphics/pokedex/cry_meter_needle.gbapal"
-
- .align 2
-CryMeterNeedleTiles: @ 83FA67C
- .incbin "graphics/pokedex/cry_meter_needle.4bpp"
-
-gUnknown_083FAE7C:: @ 83FAE7C
- .incbin "baserom.gba", 0x003fae7c, 0xa0
-
-gUnknown_083FAF1C:: @ 83FAF1C
- .incbin "graphics/pokedex/cry_meter.gbapal"
-
-gUnknown_083FAF3C:: @ 83FAF3C
- .incbin "graphics/pokedex/cry_meter.4bpp.lz"
-
- .align 1
-gUnknown_083FB274:: @ 83FB274
- .2byte 0x0,0x4,0x8,0xC,0x10,0x14,0x18,0x1C,0x400,0x404,0x408,0x40C,0x410,0x414,0x418,0x41C,0x800,0x804,0x808,0x80C,0x810,0x814,0x818,0x81C,0xC00,0xC04,0xC08,0xC0C,0xC10,0xC14,0xC18,0xC1C,0x1000,0x1004,0x1008,0x100C,0x1010,0x1014,0x1018,0x101C,0x1400,0x1404,0x1408,0x140C,0x1410,0x1414,0x1418,0x141C,0x1800,0x1804,0x1808,0x180C,0x1810,0x1814,0x1818,0x181C,0x1C00,0x1C04,0x1C08,0x1C0C,0x1C10,0x1C14,0x1C18,0x1C1C,0x2000,0x2004,0x2008,0x200C,0x2010,0x2014,0x2018,0x201C
- .2byte 0x0,0x4,0x8,0xC,0x10,0x14,0x18,0x1C,0x400,0x404,0x408,0x40C,0x410,0x414,0x418,0x41C,0x800,0x804,0x808,0x80C,0x810,0x814,0x818,0x81C,0xC00,0xC04,0xC08,0xC0C,0xC10,0xC14,0xC18,0xC1C,0x1000,0x1004,0x1008,0x100C,0x1010,0x1014,0x1018,0x101C,0x1400,0x1404,0x1408,0x140C,0x1410,0x1414,0x1418,0x141C,0x1800,0x1804,0x1808,0x180C,0x1810,0x1814,0x1818,0x181C,0x1C00,0x1C04,0x1C08,0x1C0C,0x1C10,0x1C14,0x1C18,0x1C1C,0x2000,0x2004,0x2008,0x200C,0x2010,0x2014,0x2018,0x201C
- .2byte 0x1,0x5,0x9,0xD,0x11,0x15,0x19,0x1D,0x401,0x405,0x409,0x40D,0x411,0x415,0x419,0x41D,0x801,0x805,0x809,0x80D,0x811,0x815,0x819,0x81D,0xC01,0xC05,0xC09,0xC0D,0xC11,0xC15,0xC19,0xC1D,0x1001,0x1005,0x1009,0x100D,0x1011,0x1015,0x1019,0x101D,0x1401,0x1405,0x1409,0x140D,0x1411,0x1415,0x1419,0x141D,0x1801,0x1805,0x1809,0x180D,0x1811,0x1815,0x1819,0x181D,0x1C01,0x1C05,0x1C09,0x1C0D,0x1C11,0x1C15,0x1C19,0x1C1D,0x2001,0x2005,0x2009,0x200D,0x2011,0x2015,0x2019,0x201D
- .2byte 0x1,0x5,0x9,0xD,0x11,0x15,0x19,0x1D,0x401,0x405,0x409,0x40D,0x411,0x415,0x419,0x41D,0x801,0x805,0x809,0x80D,0x811,0x815,0x819,0x81D,0xC01,0xC05,0xC09,0xC0D,0xC11,0xC15,0xC19,0xC1D,0x1001,0x1005,0x1009,0x100D,0x1011,0x1015,0x1019,0x101D,0x1401,0x1405,0x1409,0x140D,0x1411,0x1415,0x1419,0x141D,0x1801,0x1805,0x1809,0x180D,0x1811,0x1815,0x1819,0x181D,0x1C01,0x1C05,0x1C09,0x1C0D,0x1C11,0x1C15,0x1C19,0x1C1D,0x2001,0x2005,0x2009,0x200D,0x2011,0x2015,0x2019,0x201D
- .2byte 0x2,0x6,0xA,0xE,0x12,0x16,0x1A,0x1E,0x402,0x406,0x40A,0x40E,0x412,0x416,0x41A,0x41E,0x802,0x806,0x80A,0x80E,0x812,0x816,0x81A,0x81E,0xC02,0xC06,0xC0A,0xC0E,0xC12,0xC16,0xC1A,0xC1E,0x1002,0x1006,0x100A,0x100E,0x1012,0x1016,0x101A,0x101E,0x1402,0x1406,0x140A,0x140E,0x1412,0x1416,0x141A,0x141E,0x1802,0x1806,0x180A,0x180E,0x1812,0x1816,0x181A,0x181E,0x1C02,0x1C06,0x1C0A,0x1C0E,0x1C12,0x1C16,0x1C1A,0x1C1E,0x2002,0x2006,0x200A,0x200E,0x2012,0x2016,0x201A,0x201E
- .2byte 0x2,0x6,0xA,0xE,0x12,0x16,0x1A,0x1E,0x402,0x406,0x40A,0x40E,0x412,0x416,0x41A,0x41E,0x802,0x806,0x80A,0x80E,0x812,0x816,0x81A,0x81E,0xC02,0xC06,0xC0A,0xC0E,0xC12,0xC16,0xC1A,0xC1E,0x1002,0x1006,0x100A,0x100E,0x1012,0x1016,0x101A,0x101E,0x1402,0x1406,0x140A,0x140E,0x1412,0x1416,0x141A,0x141E,0x1802,0x1806,0x180A,0x180E,0x1812,0x1816,0x181A,0x181E,0x1C02,0x1C06,0x1C0A,0x1C0E,0x1C12,0x1C16,0x1C1A,0x1C1E,0x2002,0x2006,0x200A,0x200E,0x2012,0x2016,0x201A,0x201E
- .2byte 0x3,0x7,0xB,0xF,0x13,0x17,0x1B,0x1F,0x403,0x407,0x40B,0x40F,0x413,0x417,0x41B,0x41F,0x803,0x807,0x80B,0x80F,0x813,0x817,0x81B,0x81F,0xC03,0xC07,0xC0B,0xC0F,0xC13,0xC17,0xC1B,0xC1F,0x1003,0x1007,0x100B,0x100F,0x1013,0x1017,0x101B,0x101F,0x1403,0x1407,0x140B,0x140F,0x1413,0x1417,0x141B,0x141F,0x1803,0x1807,0x180B,0x180F,0x1813,0x1817,0x181B,0x181F,0x1C03,0x1C07,0x1C0B,0x1C0F,0x1C13,0x1C17,0x1C1B,0x1C1F,0x2003,0x2007,0x200B,0x200F,0x2013,0x2017,0x201B,0x201F
- .2byte 0x3,0x7,0xB,0xF,0x13,0x17,0x1B,0x1F,0x403,0x407,0x40B,0x40F,0x413,0x417,0x41B,0x41F,0x803,0x807,0x80B,0x80F,0x813,0x817,0x81B,0x81F,0xC03,0xC07,0xC0B,0xC0F,0xC13,0xC17,0xC1B,0xC1F,0x1003,0x1007,0x100B,0x100F,0x1013,0x1017,0x101B,0x101F,0x1403,0x1407,0x140B,0x140F,0x1413,0x1417,0x141B,0x141F,0x1803,0x1807,0x180B,0x180F,0x1813,0x1817,0x181B,0x181F,0x1C03,0x1C07,0x1C0B,0x1C0F,0x1C13,0x1C17,0x1C1B,0x1C1F,0x2003,0x2007,0x200B,0x200F,0x2013,0x2017,0x201B,0x201F
-
- .align 2
- .4byte 0x201C000
-
-gUnknown_083FB6F8:: @ 83FB6F8
- .incbin "baserom.gba", 0x003fb6f8, 0x20
-
-gUnknown_083FB718:: @ 83FB718
- .incbin "baserom.gba", 0x003fb718, 0x20
-
-gUnknown_083FB738:: @ 83FB738
- .byte 0xF0, 0x0F
-
-gUnknown_083FB73A:: @ 83FB73A
- .incbin "baserom.gba", 0x003fb73a, 0x26
-
- .align 2
-gSpriteAnim_83FB760:: @ 83FB760
- obj_image_anim_frame 0, 30
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83FB768:: @ 83FB768
- .4byte gSpriteAnim_83FB760
-
- .align 2
-gOamData_83FB76C:: @ 83FB76C
- .2byte 0x01A0
- .2byte 0xC000
- .2byte 0x0400
-
- .align 2
-gSpriteTemplate_83FB774:: @ 83FB774
- spr_template 8192, 8192, gOamData_83FB76C, gSpriteAnimTable_83FB768, NULL, gDummySpriteAffineAnimTable, sub_811A534
-
- .align 2
-gCryMeterNeedleSpriteSheets:: @ 83FB78C
- obj_tiles CryMeterNeedleTiles, 0x800, 8192
- null_obj_tiles
-
- .align 2
-gCryMeterNeedleSpritePalettes:: @ 83FB79C
- obj_pal CryMeterNeedlePalette, 8192
- null_obj_pal
-
-@ 83FB7AC
- .include "data/landmarks.inc"
-
- .align 2
-gUnknown_083FBB88:: @ 83FBB88
- .incbin "graphics/battle_transitions/big_pokeball.4bpp"
-
- .align 2
-gUnknown_083FC108:: @ 83FC108
- .incbin "graphics/battle_transitions/pokeball_trail.4bpp"
-
- .align 2
-gSpriteImage_83FC148:: @ 83FC148
- .incbin "graphics/battle_transitions/pokeball.4bpp"
-
- .align 2
-gUnknown_083FC348:: @ 83FC348
- .incbin "graphics/battle_transitions/elite_four_bg.4bpp"
-
- .align 2
-gSpriteImage_83FC528:: @ 83FC528
- .incbin "graphics/battle_transitions/unused_brendan.4bpp"
-
- .align 2
-gSpriteImage_83FCD28:: @ 83FCD28
- .incbin "graphics/battle_transitions/unused_lass.4bpp"
-
- .align 2
-gUnknown_083FD528:: @ 83FD528
- .incbin "graphics/battle_transitions/shrinking_box.4bpp"
-
- .align 2
-gUnknown_083FD708:: @ 83FD708
- .4byte 0x0200c000
-
- .align 2
-gUnknown_083FD70C:: @ 83FD70C
- .4byte sub_811AC64
- .4byte sub_811AC64
- .4byte sub_811AC64
- .4byte sub_811AC64
- .4byte sub_811AC64
- .4byte sub_811AC64
- .4byte sub_811AC64
- .4byte sub_811AC64
- .4byte sub_811AC64
- .4byte sub_811AC64
- .4byte sub_811AC64
- .4byte sub_811AC64
- .4byte sub_811AC64
- .4byte sub_811AC64
- .4byte sub_811AC64
- .4byte sub_811AC64
- .4byte sub_811AC64
-
- .align 2
-gBattleTransitionFuncs:: @ 83FD750
- .4byte sub_811ACB4
- .4byte sub_811ADAC
- .4byte sub_811AF44
- .4byte sub_811B0F0
- .4byte sub_811B578
- .4byte sub_811B7E8
- .4byte sub_811BCBC
- .4byte sub_811BEA0
- .4byte sub_811CA5C
- .4byte sub_811CCDC
- .4byte sub_811D0B8
- .4byte sub_811D1C8
- .4byte sub_811C08C
- .4byte sub_811C0AC
- .4byte sub_811C0CC
- .4byte sub_811C0EC
- .4byte sub_811C10C
-
- .align 2
-gUnknown_083FD794:: @ 83FD794
- .4byte sub_811AB88
- .4byte sub_811ABD8
- .4byte sub_811AC0C
- .4byte sub_811AC34
-
- .align 2
-gUnknown_083FD7A4:: @ 83FD7A4
- .4byte sub_811ACEC
- .4byte sub_811AD1C
- .4byte sub_811AD80
-
- .align 2
-gUnknown_083FD7B0:: @ 83FD7B0
- .4byte sub_811ADE4
- .4byte sub_811AE70
-
- .align 2
-gUnknown_083FD7B8:: @ 83FD7B8
- .4byte sub_811AF7C
- .4byte sub_811B000
-
- .align 2
-gUnknown_083FD7C0:: @ 83FD7C0
- .4byte sub_811B128
- .4byte sub_811B1D8
- .4byte sub_811B268
- .4byte sub_811B2F4
- .4byte sub_811B380
- .4byte sub_811B3EC
-
- .align 2
-gUnknown_083FD7D8:: @ 83FD7D8
- .4byte sub_811B5B0
- .4byte sub_811B5FC
- .4byte sub_811B688
-
- .align 1
-gUnknown_083FD7E4:: @ 83FD7E4
- .2byte -16
- .2byte 256
-
- .align 1
-gUnknown_083FD7E8:: @ 83FD7E8
- .2byte 0
- .2byte 32
- .2byte 64
- .2byte 18
- .2byte 48
-
- .align 1
-gUnknown_083FD7F2:: @ 83FD7F2
- .2byte 8
- .2byte -8
-
- .align 2
-gUnknown_083FD7F8:: @ 83FD7F8
- .4byte sub_811B820
- .4byte sub_811B884
- .4byte sub_811B90C
- .4byte sub_811B9F0
- .4byte sub_811BA70
- .4byte sub_811BB60
- .4byte sub_811BBEC
-
- .align 2
-gUnknown_083FD814:: @ 83FD814
- .4byte sub_811BCF4
- .4byte sub_811BD60
-
- .align 2
-gUnknown_083FD81C:: @ 83FD81C
- .4byte sub_811BED8
- .4byte sub_811BF2C
- .4byte sub_811BFC4
-
- .align 2
-gUnknown_083FD828:: @ 83FD828
- .4byte sub_811C164
- .4byte sub_811C1CC
- .4byte sub_811C2A4
- .4byte sub_811C38C
- .4byte sub_811C400
- .4byte sub_811C43C
- .4byte sub_811C4F0
- .4byte sub_811C5B4
- .4byte sub_811C5E8
- .4byte sub_811C630
-
-gUnknown_083FD850:: @ 83FD850
- .incbin "baserom.gba", 0x003fd850, 0x6
-
-gUnknown_083FD856:: @ 83FD856
- .incbin "baserom.gba", 0x003fd856, 0x14
-
-gUnknown_083FD86A:: @ 83FD86A
- .incbin "baserom.gba", 0x003fd86a, 0x16
-
- .align 2
-gUnknown_083FD880:: @ 83FD880
- .4byte sub_811C934
- .4byte sub_811C938
- .4byte sub_811C984
- .4byte sub_811C9B8
- .4byte sub_811C934
- .4byte sub_811C9E4
- .4byte sub_811C934
-
-gUnknown_083FD89C:: @ 83FD89C
- .incbin "baserom.gba", 0x003fd89c, 0x4
-
-gUnknown_083FD8A0:: @ 83FD8A0
- .incbin "baserom.gba", 0x003fd8a0, 0x4
-
- .align 2
-gUnknown_083FD8A4:: @ 83FD8A4
- .4byte sub_811CA94
- .4byte sub_811CB20
- .4byte sub_811CBE8
-
- .align 2
-gUnknown_083FD8B0:: @ 83FD8B0
- .4byte sub_811CD14
- .4byte sub_811CDA0
- .4byte sub_811CE14
- .4byte sub_811CE4C
- .4byte sub_811CEB0
-
-gUnknown_083FD8C4:: @ 83FD8C4
- .incbin "baserom.gba", 0x003fd8c4, 0x10
-
- .align 2
-gUnknown_083FD8D4:: @ 83FD8D4
- .4byte sub_811D0F0
- .4byte sub_811D144
- .4byte sub_811D19C
-
- .align 2
-gUnknown_083FD8E0:: @ 83FD8E0
- .4byte sub_811D200
- .4byte sub_811D260
- .4byte sub_811D2D8
- .4byte sub_811D3B0
- .4byte sub_811D41C
-
-gUnknown_083FD8F4:: @ 83FD8F4
- .incbin "baserom.gba", 0x003fd8f4, 0x46
-
-gUnknown_083FD93A:: @ 83FD93A
- .incbin "baserom.gba", 0x003fd93a, 0xe
-
- .align 2
-gUnknown_083FD948:: @ 83FD948
- .4byte sub_811D584
- .4byte sub_811D5E0
-
- .align 2
-gSpriteImageTable_83FD950:: @ 83FD950
- obj_frame_tiles gSpriteImage_83FC148, 0x200
-
- .align 2
-gSpriteAnim_83FD958:: @ 83FD958
- obj_image_anim_frame 0, 1
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83FD960:: @ 83FD960
- .4byte gSpriteAnim_83FD958
-
- .align 2
-gSpriteAffineAnim_83FD964:: @ 83FD964
- obj_rot_scal_anim_frame 0x0, 0x0, -4, 1
- obj_rot_scal_anim_jump 0
-
- .align 2
-gSpriteAffineAnim_83FD974:: @ 83FD974
- obj_rot_scal_anim_frame 0x0, 0x0, 4, 1
- obj_rot_scal_anim_jump 0
-
- .align 2
-gSpriteAffineAnimTable_83FD984:: @ 83FD984
- .4byte gSpriteAffineAnim_83FD964
- .4byte gSpriteAffineAnim_83FD974
-
- .align 2
-gSpriteTemplate_83FD98C:: @ 83FD98C
- spr_template 0xFFFF, 4105, gFieldOamData_32x32, gSpriteAnimTable_83FD960, gSpriteImageTable_83FD950, gSpriteAffineAnimTable_83FD984, sub_811B720
-
- .align 2
-gOamData_83FD9A4:: @ 83FD9A4
- .2byte 0x0000
- .2byte 0xC000
- .2byte 0x0000
-
- .align 2
-gSpriteImageTable_83FD9AC:: @ 83FD9AC
- obj_frame_tiles gSpriteImage_83FC528, 0x800
-
- .align 2
-gSpriteImageTable_83FD9B4:: @ 83FD9B4
- obj_frame_tiles gSpriteImage_83FCD28, 0x800
-
- .align 2
-gSpriteAnim_83FD9BC:: @ 83FD9BC
- obj_image_anim_frame 0, 1
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83FD9C4:: @ 83FD9C4
- .4byte gSpriteAnim_83FD9BC
-
- .align 2
-gSpriteTemplate_83FD9C8:: @ 83FD9C8
- spr_template 0xFFFF, 4106, gOamData_83FD9A4, gSpriteAnimTable_83FD9C4, gSpriteImageTable_83FD9AC, gDummySpriteAffineAnimTable, sub_811C90C
-
- .align 2
-gSpriteTemplate_83FD9E0:: @ 83FD9E0
- spr_template 0xFFFF, 4106, gOamData_83FD9A4, gSpriteAnimTable_83FD9C4, gSpriteImageTable_83FD9B4, gDummySpriteAffineAnimTable, sub_811C90C
-
- .align 2
-gFieldEffectObjectPalette10:: @ 83FD9F8
- .incbin "graphics/field_effect_objects/palettes/10.gbapal"
-
- .align 2
-gFieldEffectObjectPaletteInfo10:: @ 83FDA18
- obj_pal gFieldEffectObjectPalette10, 0x1009
-
- .align 2
-Unknown_83FDA20:
- .incbin "graphics/battle_transitions/sidney_bg.gbapal"
-
- .align 2
-Unknown_83FDA40:
- .incbin "graphics/battle_transitions/phoebe_bg.gbapal"
-
- .align 2
-Unknown_83FDA60:
- .incbin "graphics/battle_transitions/glacia_bg.gbapal"
-
- .align 2
-Unknown_83FDA80:
- .incbin "graphics/battle_transitions/drake_bg.gbapal"
-
- .align 2
-Unknown_83FDAA0:
- .incbin "graphics/battle_transitions/steven_bg.gbapal"
-
- .align 2
-Unknown_83FDAC0:
- .incbin "graphics/battle_transitions/brendan_bg.gbapal"
-
- .align 2
-Unknown_83FDAE0:
- .incbin "graphics/battle_transitions/may_bg.gbapal"
-
- .align 2
-gUnknown_083FDB00:: @ 83FDB00
- .4byte Unknown_83FDA20
- .4byte Unknown_83FDA40
- .4byte Unknown_83FDA60
- .4byte Unknown_83FDA80
- .4byte Unknown_83FDAA0
-
- .align 2
-gUnknown_083FDB14:: @ 83FDB14
- .4byte Unknown_83FDAC0
- .4byte Unknown_83FDAE0
-
- .align 2
-UnusedTrainerPalette:
- .incbin "graphics/battle_transitions/unused_trainer.gbapal"
-
- .align 2
-gSpritePalette_UnusedTrainer:: @ 83FDB3C
- obj_pal UnusedTrainerPalette, 0x100A
-
- .align 2
-gUnknown_083FDB44:: @ 83FDB44
- .incbin "graphics/battle_transitions/big_pokeball_map.bin"
-
- .align 2
-gUnknown_083FDFF4:: @ 83FDFF4
- .incbin "graphics/battle_transitions/elite_four_bg_map.bin"
-
- .include "data/text/battle_strings.inc"
-
-gUnknown_084016BC:: @ 84016BC
- .incbin "baserom.gba", 0x004016bc, 0xec
-
-gUnknown_084017A8:: @ 84017A8
- .incbin "baserom.gba", 0x004017a8, 0x8
-
- .align 2
-gUnknown_084017B0:: @ 84017B0
- .4byte OtherText_Summary, sub_812265C
- .4byte OtherText_Enter2, sub_8122694
- .4byte OtherText_NoEntry, sub_8122770
- .4byte gUnknownText_Exit, sub_8122838
-
-gUnknown_084017D0:: @ 84017D0
- .byte 1, 0, 3
-
-gUnknown_084017D3: @ 84017D3
- .byte 2, 0, 3
-
-gUnknown_084017D6: @ 84017D6
- .byte 0, 3
-
- .align 2
-gUnknown_084017D8:: @ 84017D8
- .byte 3, 9
- .space 2
- .4byte gUnknown_084017D0
-
- .byte 3, 9
- .space 2
- .4byte gUnknown_084017D3
-
- .byte 2, 9
- .space 2
- .4byte gUnknown_084017D6
-
- .align 2
-gUnknown_084017F0:: @ 84017F0
- .4byte OtherText_Store, sub_8122F70
- .4byte OtherText_Summary, sub_81230BC
- .4byte gUnknownText_Exit, sub_81230F4
-
-gUnknown_08401808:: @ 8401808
- .byte 0, 1, 2
-
-gUnknown_0840180B:: @ 840180B
- .byte 1, 2
-
- .align 2
-gUnknown_08401810:: @ 8401810
- .byte 3, 9
- .space 2
- .4byte gUnknown_08401808
-
- .byte 2, 9
- .space 2
- .4byte gUnknown_0840180B
-
- .align 2
-gCableCarMtChimneyTilemap:: @ 8401820
- .incbin "graphics/misc/cable_car_mt_chimney_map.bin.lz"
-
- .align 2
-gCableCarTreeTilemap:: @ 8401978
- .incbin "graphics/misc/cable_car_tree_map.bin.lz"
-
- .align 2
-gCableCarMountainTilemap:: @ 8401AFC
- .incbin "graphics/misc/cable_car_mountain_map.bin.lz"
-
- .align 2
-gCableCarPylonHookTilemapEntries:: @ 8401CC0
- .2byte 0x3000
- .2byte 0x3001
- .2byte 0x3002
- .2byte 0x3003
- .2byte 0x3004
- .2byte 0x3005
- .2byte 0x3006
- .2byte 0x3007
- .2byte 0x3008
- .2byte 0x3009
-
- .align 2
-gCableCarPylonStemTilemap:: @ 8401CD4
- .incbin "graphics/misc/cable_car_pylon_stem_map.bin.lz"
-
- .align 2
-gUnknown_08401CF8:: @ 8401CF8
- obj_tiles gCableCar_Gfx, 0x800, 1
- obj_tiles gCableCarDoor_Gfx, 0x40, 2
- obj_tiles gCableCarCord_Gfx, 0x80, 3
- .space 8
-
- .align 2
-gUnknown_08401D18:: @ 8401D18
- obj_pal gCableCar_Pal, 1
- .space 8
-
- .align 2
-gOamData_8401D28:: @ 8401D28
- .2byte 0x0300
- .2byte 0xC000
- .2byte 0x0800
-
- .align 2
-gOamData_8401D30:: @ 8401D30
- .2byte 0x4300
- .2byte 0x0000
- .2byte 0x0800
-
- .align 2
-gOamData_8401D38:: @ 8401D38
- .2byte 0x0300
- .2byte 0x4000
- .2byte 0x0800
-
- .align 2
-gSpriteTemplate_8401D40:: @ 8401D40
- spr_template 1, 1, gOamData_8401D28, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_8123CB8
-
- .align 2
-gSpriteTemplate_8401D58:: @ 8401D58
- spr_template 2, 1, gOamData_8401D30, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_8123CB8
-
- .align 2
-gSpriteTemplate_8401D70:: @ 8401D70
- spr_template 3, 1, gOamData_8401D38, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, nullsub_76
-
-gCableCarPlayerGraphicsIDs:: @ 8401D88
- .byte MAP_OBJ_GFX_RIVAL_BRENDAN_NORMAL
- .byte MAP_OBJ_GFX_RIVAL_MAY_NORMAL
-
-gMtChimneyHikerGraphicsIDs:: @ 8401D8A
- .byte MAP_OBJ_GFX_HIKER
- .byte MAP_OBJ_GFX_CAMPER
- .byte MAP_OBJ_GFX_PICNICKER
- .byte MAP_OBJ_GFX_POOCHYENA @ not used
-
- .align 1
-gMtChimneyHikerCoords:: @ 8401D8E
- .2byte 0, 80
- .2byte 240, 146
-
-gMtChimneyHikerMovementDelayTable:: @ 8401D96
- .byte 0
- .byte 60
- .byte 120
- .byte 170
-
- .align 2
-gUnknown_08401D9C:: @ 8401D9C
- .4byte sub_8123EB8
- .4byte sub_8123F44
-
- .align 2
-gSaveSectionLocations:: @ 8401DA4
- .4byte gSaveBlock2, 0x890
- .4byte gSaveBlock1 + 0xF80 * 0, 0xF80
- .4byte gSaveBlock1 + 0xF80 * 1, 0xF80
- .4byte gSaveBlock1 + 0xF80 * 2, 0xF80
- .4byte gSaveBlock1 + 0xF80 * 3, 0xC40
- .4byte gPokemonStorage + 0xF80 * 0, 0xF80
- .4byte gPokemonStorage + 0xF80 * 1, 0xF80
- .4byte gPokemonStorage + 0xF80 * 2, 0xF80
- .4byte gPokemonStorage + 0xF80 * 3, 0xF80
- .4byte gPokemonStorage + 0xF80 * 4, 0xF80
- .4byte gPokemonStorage + 0xF80 * 5, 0xF80
- .4byte gPokemonStorage + 0xF80 * 6, 0xF80
- .4byte gPokemonStorage + 0xF80 * 7, 0xF80
- .4byte gPokemonStorage + 0xF80 * 8, 0x7D0
-
- .align 2
-gHallOfFameSaveSectionLocations:: @ 8401E14
- .4byte gHallOfFame + 0xF80 * 0, 0xF80
- .4byte gHallOfFame + 0xF80 * 1, 0xF80
-
-gUnknown_08401E24:: @ 8401E24
- .byte 0x1E, 0x1F @ flash sectors
-
-@ XXX: Unused? And why is this aligned?
- .align 2
- .string "タマゴ$"
-
-gUnknown_08401E2C:: @ 8401E2C
- .incbin "baserom.gba", 0x00401e2c, 0x6
-
-gUnknown_08401E32:: @ 8401E32
- .incbin "baserom.gba", 0x00401e32, 0x4
-
-gUnknown_08401E36:: @ 8401E36
- .incbin "baserom.gba", 0x00401e36, 0xa
-
- .align 2
-gUnknown_08401E40:: @ 8401E40
- .4byte sub_81275A0
- .4byte sub_81275C4
-
- .align 2
-gUnknown_08401E48:: @ 8401E48
- .4byte sub_8127DA0
- .4byte sub_8127DD0
- .4byte sub_8127E30
-
-gUnknown_08401E54:: @ 8401E54
- .incbin "baserom.gba", 0x00401e54, 0x6
-
-gUnknown_08401E5A:: @ 8401E5A
- .incbin "baserom.gba", 0x00401e5a, 0x6
-
- .align 2
-gUnknown_08401E60:: @ 8401E60
- .4byte sub_8128AA8
- .4byte contest_ai_get_turn
- .4byte sub_8128B0C
- .4byte sub_8128B4C
- .4byte sub_8128B8C
- .4byte sub_8128BCC
- .4byte contest_ai_get_excitement
- .4byte sub_8128C2C
- .4byte sub_8128C6C
- .4byte sub_8128CAC
- .4byte sub_8128CEC
- .4byte contest_ai_get_user_order
- .4byte sub_8128D50
- .4byte sub_8128D90
- .4byte sub_8128DD0
- .4byte sub_8128E10
- .4byte contest_ai_get_user_condition_maybe
- .4byte sub_8128E90
- .4byte sub_8128ED0
- .4byte sub_8128F10
- .4byte sub_8128F50
- .4byte sub_8128F90
- .4byte sub_8128FBC
- .4byte sub_8129008
- .4byte sub_8129054
- .4byte sub_81290A0
- .4byte sub_81290EC
- .4byte sub_8129114
- .4byte sub_8129160
- .4byte sub_81291AC
- .4byte sub_81291F8
- .4byte contest_ai_get_contest_type
- .4byte sub_8129264
- .4byte sub_81292A4
- .4byte contest_ai_get_move_excitement
- .4byte sub_8129324
- .4byte sub_8129368
- .4byte sub_81293AC
- .4byte sub_81293F0
- .4byte contest_ai_get_move_effect
- .4byte sub_8129470
- .4byte sub_81294B0
- .4byte contest_ai_get_move_effect_type
- .4byte sub_8129538
- .4byte sub_8129578
- .4byte contest_ai_check_move_has_highest_appeal
- .4byte sub_8129638
- .4byte sub_812967C
- .4byte sub_81296FC
- .4byte sub_8129740
- .4byte sub_8129798
- .4byte sub_81297D8
- .4byte sub_8129818
- .4byte sub_8129858
- .4byte sub_8129898
- .4byte sub_81298F0
- .4byte sub_8129930
- .4byte sub_8129970
- .4byte sub_81299B0
- .4byte contest_ai_get_move_used_count
- .4byte sub_8129A44
- .4byte sub_8129A84
- .4byte sub_8129AC4
- .4byte sub_8129B04
- .4byte contest_ai_check_combo_starter
- .4byte sub_8129BB8
- .4byte sub_8129BFC
- .4byte contest_ai_check_combo_finisher
- .4byte sub_8129CB4
- .4byte sub_8129CF8
- .4byte contest_ai_check_would_finish_combo
- .4byte sub_8129D98
- .4byte sub_8129DDC
- .4byte contest_ai_get_condition
- .4byte sub_8129E64
- .4byte sub_8129EA4
- .4byte sub_8129EE4
- .4byte sub_8129F24
- .4byte contest_ai_get_used_combo_starter
- .4byte sub_8129FBC
- .4byte sub_8129FFC
- .4byte sub_812A03C
- .4byte sub_812A07C
- .4byte contest_ai_check_can_participate
- .4byte sub_812A100
- .4byte sub_812A144
- .4byte contest_ai_get_val_812A188
- .4byte sub_812A1C4
- .4byte sub_812A208
- .4byte sub_812A24C
- .4byte sub_812A294
- .4byte sub_812A2D8
- .4byte sub_812A31C
- .4byte sub_812A360
- .4byte sub_812A3A4
- .4byte sub_812A3E4
- .4byte sub_812A428
- .4byte sub_812A46C
- .4byte sub_812A4B0
- .4byte sub_812A4F4
- .4byte sub_812A538
- .4byte sub_812A578
- .4byte sub_812A5B8
- .4byte sub_812A5F8
- .4byte sub_812A638
- .4byte sub_812A674
- .4byte sub_812A6B4
- .4byte sub_812A6F4
- .4byte sub_812A734
- .4byte sub_812A774
- .4byte sub_812A7C4
- .4byte sub_812A804
- .4byte sub_812A844
- .4byte sub_812A86C
- .4byte sub_812A898
- .4byte sub_812A8CC
- .4byte sub_812A8FC
- .4byte sub_812A92C
- .4byte sub_812A978
- .4byte sub_812A9C4
- .4byte sub_812AA10
- .4byte sub_812AA5C
- .4byte sub_812AAAC
- .4byte sub_812AAFC
- .4byte sub_812AB4C
- .4byte sub_812AB9C
- .4byte sub_812ABE8
- .4byte sub_812AC34
- .4byte sub_812AC54
- .4byte sub_812AC84
- .4byte contest_ai_check_for_exciting_move
- .4byte sub_812AD50
- .4byte sub_812AD94
- .4byte sub_812ADD8
- .4byte sub_812AE44
- .4byte sub_812AE88
-
- .align 2
-gUnknown_08402080:: @ 8402080
- .4byte sub_812B864
- .4byte sub_812B870
- .4byte sub_812B87C
- .4byte sub_812B888
- .4byte sub_812B894
- .4byte sub_812B8A0
- .4byte sub_812B8AC
- .4byte sub_812B8B8
- .4byte sub_812B994
- .4byte sub_812B9A0
- .4byte sub_812B9AC
- .4byte sub_812B9B8
- .4byte sub_812B9C4
- .4byte sub_812BA14
- .4byte sub_812BA70
- .4byte sub_812BA7C
- .4byte dp01t_10_6_message
- .4byte dp01t_11_6_message_for_player_only
- .4byte sub_812BB10
- .4byte sub_812BBFC
- .4byte sub_812BC08
- .4byte sub_812BC14
- .4byte sub_812BC54
- .4byte sub_812BC60
- .4byte sub_812BC6C
- .4byte sub_812BC78
- .4byte sub_812BC84
- .4byte sub_812BCC0
- .4byte sub_812BCCC
- .4byte sub_812BCD8
- .4byte sub_812BCE4
- .4byte sub_812BCF0
- .4byte sub_812BCFC
- .4byte sub_812BD08
- .4byte sub_812BD14
- .4byte sub_812BD20
- .4byte sub_812BD2C
- .4byte sub_812BD38
- .4byte sub_812BD44
- .4byte sub_812BD50
- .4byte sub_812BD5C
- .4byte sub_812BD68
- .4byte sub_812BD74
- .4byte sub_812BD80
- .4byte sub_812BDC4
- .4byte sub_812BDF4
- .4byte dp01t_2E_6_battle_intro
- .4byte sub_812BE64
- .4byte sub_812BEB0
- .4byte sub_812BEBC
- .4byte sub_812BEC8
- .4byte sub_812BED4
- .4byte sub_812BEE0
- .4byte sub_812BF3C
- .4byte sub_812BF48
- .4byte sub_812BF54
- .4byte nullsub_78
-
- .align 2
-gSpriteAnim_8402164:: @ 8402164
- obj_image_anim_frame 0, 4
- obj_image_anim_frame 16, 4
- obj_image_anim_frame 32, 4
- obj_image_anim_frame 48, 4
- obj_image_anim_frame 64, 4
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_840217C:: @ 840217C
- .4byte gSpriteAnim_8402164
-
- .align 2
-gBattleAnimSpriteTemplate_8402180:: @ 8402180
- spr_template 10137, 10137, gOamData_837E054, gSpriteAnimTable_840217C, NULL, gDummySpriteAffineAnimTable, sub_80793C4
-
- .align 2
-gBattleAnimSpriteTemplate_8402198:: @ 8402198
- spr_template 10016, 10016, gOamData_837DF54, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_812C144
-
- .align 2
-gBattleAnimSpriteTemplate_84021B0:: @ 84021B0
- spr_template 10017, 10017, gOamData_837DF24, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80794A8
-
- .align 2
-gSpriteAnim_84021C8:: @ 84021C8
- obj_image_anim_frame 0, 40
- obj_image_anim_frame 16, 8
- obj_image_anim_frame 32, 40
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_84021D8:: @ 84021D8
- .4byte gSpriteAnim_84021C8
-
- .align 2
-gBattleAnimSpriteTemplate_84021DC:: @ 84021DC
- spr_template 10190, 10190, gOamData_837DF34, gSpriteAnimTable_84021D8, NULL, gDummySpriteAffineAnimTable, sub_80793C4
-
- .align 2
-gBattleAnimSpriteTemplate_84021F4:: @ 84021F4
- spr_template 10191, 10191, gOamData_837E05C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_812C220
-
- .align 2
-gBattleAnimSpriteTemplate_840220C:: @ 840220C
- spr_template 10189, 10189, gOamData_837DF94, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_812C2BC
-
- .align 2
-gSpriteAffineAnim_8402224:: @ 8402224
- obj_rot_scal_anim_frame 0x180, 0x180, 0, 0
- obj_rot_scal_anim_frame 0xFFE0, 0x18, 0, 5
- obj_rot_scal_anim_frame 0x18, 0xFFE0, 0, 5
- obj_rot_scal_anim_jump 1
-
- .align 2
-gSpriteAffineAnim_8402244:: @ 8402244
- obj_rot_scal_anim_frame 0x30, 0x30, 0, 0
- obj_rot_scal_anim_frame 0x20, 0x20, 0, 6
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnimTable_840225C:: @ 840225C
- .4byte gSpriteAffineAnim_8402224
- .4byte gSpriteAffineAnim_8402244
-
- .align 2
-gBattleAnimSpriteTemplate_8402264:: @ 8402264
- spr_template 10187, 10187, gOamData_837E11C, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_840225C, sub_812C358
-
- .align 2
-gBattleAnimSpriteTemplate_840227C:: @ 840227C
- spr_template 10152, 10152, gOamData_837DF2C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_812C720
-
- .align 2
-gSpriteAnim_8402294:: @ 8402294
- obj_image_anim_frame 0, 3
- obj_image_anim_frame 16, 3
- obj_image_anim_frame 32, 3
- obj_image_anim_frame 48, 3
- obj_image_anim_frame 64, 3
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_84022AC:: @ 84022AC
- .4byte gSpriteAnim_8402294
-
- .align 2
-gBattleAnimSpriteTemplate_84022B0:: @ 84022B0
- spr_template 10027, 10027, gOamData_837DF34, gSpriteAnimTable_84022AC, NULL, gDummySpriteAffineAnimTable, sub_812C80C
-
- .align 2
-gSpriteAnim_84022C8:: @ 84022C8
- obj_image_anim_frame 0, 3
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_84022D0:: @ 84022D0
- .4byte gSpriteAnim_84022C8
-
- .align 2
-gSpriteAffineAnim_84022D4:: @ 84022D4
- obj_rot_scal_anim_frame 0xFFF9, 0xFFF9, -3, 16
- obj_rot_scal_anim_frame 0x7, 0x7, 3, 16
- obj_rot_scal_anim_jump 0
-
- .align 2
-gSpriteAffineAnimTable_84022EC:: @ 84022EC
- .4byte gSpriteAffineAnim_84022D4
-
- .align 2
-gBattleAnimSpriteTemplate_84022F0:: @ 84022F0
- spr_template 10228, 10228, gOamData_837DF94, gSpriteAnimTable_84022D0, NULL, gSpriteAffineAnimTable_84022EC, sub_812C848
-
- .align 2
-gSpriteAnim_8402308:: @ 8402308
- obj_image_anim_frame 0, 8
- obj_image_anim_frame 16, 16
- obj_image_anim_frame 32, 4
- obj_image_anim_frame 48, 4
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_840231C:: @ 840231C
- .4byte gSpriteAnim_8402308
-
- .align 2
-gSpriteAffineAnim_8402320:: @ 8402320
- obj_rot_scal_anim_frame 0x200, 0x200, 0, 0
- obj_rot_scal_anim_frame 0xFFE0, 0xFFE0, 0, 8
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnimTable_8402338:: @ 8402338
- .4byte gSpriteAffineAnim_8402320
-
- .align 2
-gBattleAnimSpriteTemplate_840233C:: @ 840233C
- spr_template 10192, 10192, gOamData_837DFF4, gSpriteAnimTable_840231C, NULL, gSpriteAffineAnimTable_8402338, sub_812C908
-
- .align 2
-gSpriteAffineAnim_8402354:: @ 8402354
- obj_rot_scal_anim_frame 0x0, 0x180, 0, 0
- obj_rot_scal_anim_frame 0x10, 0x0, 0, 20
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnim_840236C:: @ 840236C
- obj_rot_scal_anim_frame 0x140, 0x180, 0, 0
- obj_rot_scal_anim_frame 0xFFF0, 0x0, 0, 19
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnimTable_8402384:: @ 8402384
- .4byte gSpriteAffineAnim_8402354
- .4byte gSpriteAffineAnim_840236C
-
- .align 2
-gBattleAnimSpriteTemplate_840238C:: @ 840238C
- spr_template 10227, 10227, gOamData_837DFFC, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_8402384, sub_812C990
-
- .align 2
-gBattleAnimSpriteTemplate_84023A4:: @ 84023A4
- spr_template 10247, 10247, gOamData_837DF34, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_812CAFC
-
- .align 2
-gBattleAnimSpriteTemplate_84023BC:: @ 84023BC
- spr_template 10247, 10247, gOamData_837DF34, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_812CC28
-
- .align 2
-gSpriteAnim_84023D4:: @ 84023D4
- obj_image_anim_frame 0, 2
- obj_image_anim_frame 8, 2
- obj_image_anim_frame 16, 2
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnimTable_84023E4:: @ 84023E4
- .4byte gSpriteAnim_84023D4
-
- .align 2
-gBattleAnimSpriteTemplate_84023E8:: @ 84023E8
- spr_template 10229, 10229, gOamData_837DF54, gSpriteAnimTable_84023E4, NULL, gDummySpriteAffineAnimTable, sub_812CCE8
-
- .align 2
-gUnknown_08402400:: @ 8402400
- .incbin "baserom.gba", 0x00402400, 0x20
-
- .align 2
-gSpriteAnim_8402420:: @ 8402420
- obj_image_anim_frame 0, 8
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_8402428:: @ 8402428
- .4byte gSpriteAnim_8402420
-
- .align 2
-gSpriteAffineAnim_840242C:: @ 840242C
- obj_rot_scal_anim_frame 0x0, 0x0, 5, 40
- obj_rot_scal_anim_frame 0x0, 0x0, 10, 10
- obj_rot_scal_anim_frame 0x0, 0x0, 15, 10
- obj_rot_scal_anim_frame 0x0, 0x0, 20, 40
- obj_rot_scal_anim_jump 0
-
- .align 2
-gSpriteAffineAnimTable_8402454:: @ 8402454
- .4byte gSpriteAffineAnim_840242C
-
- .align 2
-gBattleAnimSpriteTemplate_8402458:: @ 8402458
- spr_template 10230, 10230, gOamData_837DFFC, gSpriteAnimTable_8402428, NULL, gSpriteAffineAnimTable_8402454, sub_812D294
-
- .align 2
-gSpriteAnim_8402470:: @ 8402470
- obj_image_anim_frame 0, 3
- obj_image_anim_frame 16, 3
- obj_image_anim_frame 32, 3
- obj_image_anim_frame 48, 3
- obj_image_anim_frame 32, 3, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 16, 3, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 0, 3, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_loop 1
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_8402494:: @ 8402494
- .4byte gSpriteAnim_8402470
-
- .align 2
-gBattleAnimSpriteTemplate_8402498:: @ 8402498
- spr_template 10234, 10234, gOamData_837DF34, gSpriteAnimTable_8402494, NULL, gDummySpriteAffineAnimTable, sub_80793C4
-
- .align 2
-gUnknown_084024B0:: @ 84024B0
- .incbin "baserom.gba", 0x004024b0, 0x20
-
- .align 2
-gBattleAnimSpriteTemplate_84024D0:: @ 84024D0
- spr_template 10226, 10226, gOamData_837DF2C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_812D3AC
-
- .align 2
-gBattleAnimSpriteTemplate_84024E8:: @ 84024E8
- spr_template 10233, 10233, gOamData_837DF2C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_812D4B4
-
- .align 2
-gSpriteTemplate_8402500:: @ 8402500
- spr_template 10233, 10233, gOamData_837DF24, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_812D588
-
- .align 2
-gUnknown_08402518:: @ 8402518
- .incbin "baserom.gba", 0x00402518, 0x28
-
- .align 2
-gUnknown_08402540:: @ 8402540
- .incbin "baserom.gba", 0x00402540, 0x38
-
- .align 2
-gBattleAnimSpriteTemplate_8402578:: @ 8402578
- spr_template 10236, 10236, gOamData_837DF24, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_812D724
-
- .align 2
-gUnknown_08402590:: @ 8402590
- .incbin "baserom.gba", 0x00402590, 0x30
-
- .align 2
-gUnknown_084025C0:: @ 84025C0
- .incbin "baserom.gba", 0x004025c0, 0x4
-
- .align 2
-gSpriteAnim_84025C4:: @ 84025C4
- obj_image_anim_frame 0, 6
- obj_image_anim_frame 4, 6
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnim_84025D0:: @ 84025D0
- obj_image_anim_frame 8, 6
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_84025D8:: @ 84025D8
- obj_image_anim_frame 12, 6
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_84025E0:: @ 84025E0
- .4byte gSpriteAnim_84025C4
- .4byte gSpriteAnim_84025D0
- .4byte gSpriteAnim_84025D8
-
- .align 2
-gBattleAnimSpriteTemplate_84025EC:: @ 84025EC
- spr_template 10241, 10241, gOamData_837DF2C, gSpriteAnimTable_84025E0, NULL, gDummySpriteAffineAnimTable, sub_812DEAC
-
- .align 2
-gUnknown_08402604:: @ 8402604
- .incbin "baserom.gba", 0x00402604, 0x4
-
-gUnknown_08402608:: @ 8402608
- .incbin "baserom.gba", 0x00402608, 0x8
-
-gUnknown_08402610:: @ 8402610
- .incbin "baserom.gba", 0x00402610, 0x20
-
- .align 2
-gBattleAnimSpriteTemplate_8402630:: @ 8402630
- spr_template 10087, 10087, gOamData_837DF2C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_812E4F0
-
- .align 2
-gSpriteAnim_8402648:: @ 8402648
- obj_image_anim_frame 0, 8
- obj_image_anim_frame 1, 8
- obj_image_anim_frame 2, 8
- obj_image_anim_frame 3, 8
- obj_image_anim_frame 3, 8, OBJ_IMAGE_ANIM_V_FLIP
- obj_image_anim_frame 2, 8, OBJ_IMAGE_ANIM_V_FLIP
- obj_image_anim_frame 0, 8, OBJ_IMAGE_ANIM_V_FLIP
- obj_image_anim_frame 1, 8, OBJ_IMAGE_ANIM_V_FLIP
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnim_840266C:: @ 840266C
- obj_image_anim_frame 0, 8, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 1, 8, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 2, 8, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 3, 8, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 3, 8, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 2, 8, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 0, 8, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 1, 8, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnim_8402690:: @ 8402690
- obj_image_anim_frame 0, 8
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_8402698:: @ 8402698
- .4byte gSpriteAnim_8402648
- .4byte gSpriteAnim_840266C
- .4byte gSpriteAnim_8402690
-
- .align 2
-gBattleAnimSpriteTemplate_84026A4:: @ 84026A4
- spr_template 10238, 10238, gOamData_837DF24, gSpriteAnimTable_8402698, NULL, gDummySpriteAffineAnimTable, sub_812E7A0
-
- .align 2
- .incbin "baserom.gba", 0x004026bc, 0x20
-
- .align 2
-gSpriteAnim_84026DC:: @ 84026DC
- obj_image_anim_frame 0, 5
- obj_image_anim_frame 4, 9
- obj_image_anim_frame 8, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_84026EC:: @ 84026EC
- .4byte gSpriteAnim_84026DC
-
- .align 2
-gBattleAnimSpriteTemplate_84026F0:: @ 84026F0
- spr_template 10239, 10239, gOamData_837DF2C, gSpriteAnimTable_84026EC, NULL, gDummySpriteAffineAnimTable, sub_812EA4C
-
- .align 2
-gBattleAnimSpriteTemplate_8402708:: @ 8402708
- spr_template 10240, 10240, gOamData_837DF24, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_812EC78
-
- .align 2
-gBattleAnimSpriteTemplate_8402720:: @ 8402720
- spr_template 10227, 10227, gOamData_837DFFC, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_8402384, sub_812ED84
-
- .align 2
-gBattleAnimSpriteTemplate_8402738:: @ 8402738
- spr_template 10236, 10236, gOamData_837DF24, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_812EEA4
-
- .align 2
-gUnknown_08402750:: @ 8402750
- .incbin "baserom.gba", 0x00402750, 0x30
-
- .align 2
-gSpriteAffineAnim_8402780:: @ 8402780
- obj_rot_scal_anim_frame 0x80, 0x80, 0, 0
- obj_rot_scal_anim_frame 0xFFF8, 0xFFF8, 0, 8
- obj_rot_scal_anim_frame 0x8, 0x8, 0, 8
- obj_rot_scal_anim_jump 0
-
- .align 2
-gSpriteAffineAnim_84027A0:: @ 84027A0
- obj_rot_scal_anim_frame 0xC0, 0xC0, 0, 0
- obj_rot_scal_anim_frame 0x8, 0x8, 0, 8
- obj_rot_scal_anim_frame 0xFFF8, 0xFFF8, 0, 8
- obj_rot_scal_anim_jump 0
-
- .align 2
-gSpriteAffineAnim_84027C0:: @ 84027C0
- obj_rot_scal_anim_frame 0x100, 0x100, 0, 0
- obj_rot_scal_anim_frame 0x8, 0x8, 0, 8
- obj_rot_scal_anim_frame 0xFFF8, 0xFFF8, 0, 8
- obj_rot_scal_anim_jump 0
-
- .align 2
-gSpriteAffineAnimTable_84027E0:: @ 84027E0
- .4byte gSpriteAffineAnim_8402780
- .4byte gSpriteAffineAnim_84027A0
- .4byte gSpriteAffineAnim_84027C0
-
- .align 2
-gBattleAnimSpriteTemplate_84027EC:: @ 84027EC
- spr_template 10242, 10242, gOamData_837DF94, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_84027E0, sub_812F88C
-
- .align 2
-gSpriteAffineAnim_8402804:: @ 8402804
- obj_rot_scal_anim_frame 0x80, 0x80, 0, 0
- obj_rot_scal_anim_frame 0xFFFC, 0xFFFA, 0, 16
- obj_rot_scal_anim_frame 0x4, 0x6, 0, 16
- obj_rot_scal_anim_jump 0
-
- .align 2
-gSpriteAffineAnim_8402824:: @ 8402824
- obj_rot_scal_anim_frame 0xC0, 0xC0, 0, 0
- obj_rot_scal_anim_frame 0x4, 0x6, 0, 16
- obj_rot_scal_anim_frame 0xFFFC, 0xFFFA, 0, 16
- obj_rot_scal_anim_jump 0
-
- .align 2
-gSpriteAffineAnim_8402844:: @ 8402844
- obj_rot_scal_anim_frame 0x100, 0x100, 0, 0
- obj_rot_scal_anim_frame 0x4, 0x6, 0, 16
- obj_rot_scal_anim_frame 0xFFFC, 0xFFFA, 0, 16
- obj_rot_scal_anim_jump 0
-
- .align 2
-gSpriteAffineAnim_8402864:: @ 8402864
- obj_rot_scal_anim_frame 0x100, 0x100, 0, 0
- obj_rot_scal_anim_frame 0x8, 0xA, 0, 30
- obj_rot_scal_anim_frame 0xFFF8, 0xFFF6, 0, 16
- obj_rot_scal_anim_jump 0
-
- .align 2
-gSpriteAffineAnimTable_8402884:: @ 8402884
- .4byte gSpriteAffineAnim_8402804
- .4byte gSpriteAffineAnim_8402824
- .4byte gSpriteAffineAnim_8402844
- .4byte gSpriteAffineAnim_8402864
-
- .align 2
-gBattleAnimSpriteTemplate_8402894:: @ 8402894
- spr_template 10242, 10242, gOamData_837DFF4, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_8402884, sub_812F948
-
- .align 2
-gUnknown_084028AC:: @ 84028AC
- .incbin "baserom.gba", 0x004028ac, 0x20
-
- .align 2
-gSpriteTemplate_84028CC:: @ 84028CC
- spr_template 10243, 10243, gOamData_837DF24, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_812FF94
-
-gUnknown_084028E4:: @ 84028E4
- .incbin "baserom.gba", 0x004028e4, 0x30
-
- .align 2
-gSpriteAnim_8402914:: @ 8402914
- obj_image_anim_frame 0, 3
- obj_image_anim_frame 16, 3
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnim_8402920:: @ 8402920
- obj_image_anim_frame 32, 3
- obj_image_anim_frame 48, 3
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnimTable_840292C:: @ 840292C
- .4byte gSpriteAnim_8402914
- .4byte gSpriteAnim_8402920
-
- .align 2
-gBattleAnimSpriteTemplate_8402934:: @ 8402934
- spr_template 10053, 10053, gOamData_837DF34, gSpriteAnimTable_840292C, NULL, gDummySpriteAffineAnimTable, sub_81300F4
-
- .align 2
-gSpriteTemplate_840294C:: @ 840294C
- spr_template 10248, 10248, gOamData_837DF24, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_81304DC
-
- .align 2
-gBattleAnimSpriteTemplate_8402964:: @ 8402964
- spr_template 10252, 10252, gOamData_837DF34, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_813051C
-
- .align 2
-gSpriteAffineAnim_840297C:: @ 840297C
- obj_rot_scal_anim_frame 0x0, 0x0, -4, 24
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnim_840298C:: @ 840298C
- obj_rot_scal_anim_frame 0x100, 0x100, -64, 0
- obj_rot_scal_anim_frame 0x0, 0x0, 4, 24
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnimTable_84029A4:: @ 84029A4
- .4byte gSpriteAffineAnim_840297C
- .4byte gSpriteAffineAnim_840298C
-
- .align 2
-gSpriteTemplate_84029AC:: @ 84029AC
- spr_template 10254, 10254, gOamData_837DF94, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_84029A4, SpriteCallbackDummy
-
- .align 2
-gBattleAnimSpriteTemplate_84029C4:: @ 84029C4
- spr_template 10247, 10247, gOamData_837DF34, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_81307B0
-
- .align 2
-gUnknown_084029DC:: @ 84029DC
- .incbin "baserom.gba", 0x004029dc, 0x18
-
- .align 2
-gBattleAnimSpriteTemplate_84029F4:: @ 84029F4
- spr_template 10255, 10255, gOamData_837DF34, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_8130A2C
-
- .align 2
-gBattleAnimSpriteTemplate_8402A0C:: @ 8402A0C
- spr_template 10247, 10247, gOamData_837DF34, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_8130AEC
-
- .align 2
-gBattleAnimSpriteTemplate_8402A24:: @ 8402A24
- spr_template 10258, 10258, gOamData_837E054, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_8130F5C
-
- .align 2
-gBattleAnimSpriteTemplate_8402A3C:: @ 8402A3C
- spr_template 10233, 10233, gOamData_837DF2C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_8131264
-
- .align 2
-gSpriteTemplate_8402A54:: @ 8402A54
- spr_template 10233, 10233, gOamData_837DF2C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80D1FDC
-
- .align 2
-gBattleAnimSpriteTemplate_8402A6C:: @ 8402A6C
- spr_template 10250, 10250, gOamData_837DF3C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_8131564
-
- .align 2
-gSpriteTemplate_8402A84:: @ 8402A84
- spr_template 10224, 10224, gOamData_837DF34, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_8131EB8
-
- .align 2
-gSpriteAnim_8402A9C:: @ 8402A9C
- obj_image_anim_frame 0, 4
- obj_image_anim_frame 64, 4
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_8402AA8:: @ 8402AA8
- .4byte gSpriteAnim_8402A9C
-
- .align 2
-gSpriteAffineAnim_8402AAC:: @ 8402AAC
- obj_rot_scal_anim_frame 0x100, 0x100, 0, 0
- obj_rot_scal_anim_frame 0x0, 0x0, -4, 8
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnim_8402AC4:: @ 8402AC4
- obj_rot_scal_anim_frame 0xFF00, 0x100, 0, 0
- obj_rot_scal_anim_frame 0x0, 0x0, 4, 8
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnimTable_8402ADC:: @ 8402ADC
- .4byte gSpriteAffineAnim_8402AAC
- .4byte gSpriteAffineAnim_8402AC4
-
- .align 2
-gBattleAnimSpriteTemplate_8402AE4:: @ 8402AE4
- spr_template 10277, 10277, gOamData_837DF9C, gSpriteAnimTable_8402AA8, NULL, gSpriteAffineAnimTable_8402ADC, sub_8132370
-
- .align 2
-gSpriteAffineAnim_8402AFC:: @ 8402AFC
- obj_rot_scal_anim_frame 0x0, 0x0, -4, 64
- obj_rot_scal_anim_jump 0
-
- .align 2
-gSpriteAffineAnimTable_8402B0C:: @ 8402B0C
- .4byte gSpriteAffineAnim_8402AFC
-
- .align 2
-gBattleAnimSpriteTemplate_8402B10:: @ 8402B10
- spr_template 10278, 10278, gOamData_837E0BC, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_8402B0C, sub_81323E0
-
- .align 2
-gUnknown_08402B28:: @ 8402B28
- .incbin "baserom.gba", 0x00402b28, 0x30
-
- .align 2
-gDexArrows_Pal::
- .incbin "graphics/pokedex/arrows.gbapal"
-
- .align 2
-gDexArrows_Gfx::
- .incbin "graphics/pokedex/arrows.4bpp"
-
- .incbin "baserom.gba", 0x00402c78, 0x80
-
-gUnknown_08402CF8:: @ 8402CF8
- .incbin "baserom.gba", 0x00402cf8, 0x10
-
-gUnknown_08402D08:: @ 8402D08
- .4byte OtherText_Battle
- .byte 1, 1, 0, 0
- .4byte OtherText_Power
- .byte 1, 4, 1, 0
- .4byte OtherText_Accuracy
- .byte 1, 9, 2, 0
- .space 8
-
- .4byte OtherText_Contest
- .byte 1, 1, 0, 0
- .4byte OtherText_Appeal
- .byte 1, 4, 1, 0
- .4byte OtherText_Jam
- .byte 1, 9, 2, 0
- .space 8
-
- .incbin "baserom.gba", 0x402d48, 0x8
-
- .align 2
-gOamData_8402D50:: @ 8402D50
- .2byte 0x0000
- .2byte 0x0000
- .2byte 0x0000
-
- .align 2
-gOamData_8402D58:: @ 8402D58
- .2byte 0x8000
- .2byte 0x0000
- .2byte 0x0000
-
- .align 2
-gOamData_8402D60:: @ 8402D60
- .2byte 0x4000
- .2byte 0x0000
- .2byte 0x0000
-
- .align 2
-gSpriteAnim_8402D68:: @ 8402D68
- obj_image_anim_frame 2, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_8402D70:: @ 8402D70
- obj_image_anim_frame 0, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_8402D78:: @ 8402D78
- .4byte gSpriteAnim_8402D68
- .4byte gSpriteAnim_8402D70
-
- .align 2
-gUnknown_08402D80:: @ 8402D80
- obj_tiles gDexArrows_Gfx, 384, 0x1595
-
- .align 2
-gUnknown_08402D88:: @ 8402D88
- obj_pal gDexArrows_Pal, 0x1596
-
- .align 2
-gSpriteTemplate_8402D90:: @ 8402D90
- spr_template 5525, 5526, gOamData_8402D58, gSpriteAnimTable_8402D78, NULL, gDummySpriteAffineAnimTable, sub_8133300
-
- .align 2
-gSpriteAnim_8402DA8:: @ 8402DA8
- obj_image_anim_frame 4, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_8402DB0:: @ 8402DB0
- obj_image_anim_frame 6, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_8402DB8:: @ 8402DB8
- .4byte gSpriteAnim_8402DA8
- .4byte gSpriteAnim_8402DB0
-
- .align 2
-gSpriteTemplate_8402DC0:: @ 8402DC0
- spr_template 5525, 5526, gOamData_8402D60, gSpriteAnimTable_8402DB8, NULL, gDummySpriteAffineAnimTable, sub_8133300
-
- .align 2
-gSpriteAnim_8402DD8:: @ 8402DD8
- obj_image_anim_frame 8, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_8402DE0:: @ 8402DE0
- obj_image_anim_frame 9, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_8402DE8:: @ 8402DE8
- obj_image_anim_frame 10, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_8402DF0:: @ 8402DF0
- obj_image_anim_frame 11, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_8402DF8:: @ 8402DF8
- .4byte gSpriteAnim_8402DD8
- .4byte gSpriteAnim_8402DE0
- .4byte gSpriteAnim_8402DE8
- .4byte gSpriteAnim_8402DF0
-
- .align 2
-gSpriteTemplate_8402E08:: @ 8402E08
- spr_template 5525, 5526, gOamData_8402D50, gSpriteAnimTable_8402DF8, NULL, gDummySpriteAffineAnimTable, sub_8133300
-
- .align 2
- .incbin "baserom.gba", 0x00402e20, 0x4
-
-gUnknown_08402E24:: @ 8402E24
- .incbin "baserom.gba", 0x00402e24, 0x15
-
-gUnknown_08402E39:: @ 8402E39
- .byte 0, 1, 2, 3
-
-gUnknown_08402E3D:: @ 8402E3D
- .byte 4, 5, 6
-
-@ pointer to decorations, capacity
- .align 2
-gDecorationInventories:: @ 8402E40
- .4byte gSaveBlock1 + 0x26A0, 10 @ DESK
- .4byte gSaveBlock1 + 0x26AA, 10 @ CHAIR
- .4byte gSaveBlock1 + 0x26B4, 10 @ PLANT
- .4byte gSaveBlock1 + 0x26BE, 30 @ ORNAMENT
- .4byte gSaveBlock1 + 0x26DC, 30 @ MAT
- .4byte gSaveBlock1 + 0x26FA, 10 @ POSTER
- .4byte gSaveBlock1 + 0x2704, 40 @ DOLL
- .4byte gSaveBlock1 + 0x272C, 10 @ CUSHION
-
-gRoamerLocations:: @ 8402E80
- .byte 0x19,0x1A,0x20,0x21,0x31,0xFF
- .byte 0x1A,0x19,0x20,0x21,0xFF,0xFF
- .byte 0x20,0x1A,0x19,0x21,0xFF,0xFF
- .byte 0x21,0x20,0x19,0x1A,0x22,0x26
- .byte 0x22,0x21,0x23,0xFF,0xFF,0xFF
- .byte 0x23,0x22,0x24,0xFF,0xFF,0xFF
- .byte 0x24,0x23,0x25,0x26,0xFF,0xFF
- .byte 0x25,0x24,0x26,0xFF,0xFF,0xFF
- .byte 0x26,0x25,0x21,0xFF,0xFF,0xFF
- .byte 0x27,0x24,0x28,0x29,0xFF,0xFF
- .byte 0x28,0x27,0x2A,0xFF,0xFF,0xFF
- .byte 0x29,0x27,0x2A,0xFF,0xFF,0xFF
- .byte 0x2A,0x28,0x29,0x2B,0xFF,0xFF
- .byte 0x2B,0x2A,0x2C,0xFF,0xFF,0xFF
- .byte 0x2C,0x2B,0x2D,0xFF,0xFF,0xFF
- .byte 0x2D,0x2C,0x2E,0xFF,0xFF,0xFF
- .byte 0x2E,0x2D,0x2F,0xFF,0xFF,0xFF
- .byte 0x2F,0x2E,0x30,0xFF,0xFF,0xFF
- .byte 0x30,0x2F,0x31,0xFF,0xFF,0xFF
- .byte 0x31,0x30,0x19,0xFF,0xFF,0xFF
- .byte 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF
-
-@ 8402F00
- .include "data/battle_tower/trainers.inc"
-
-@ 8403860
- .include "data/battle_tower/held_items.inc"
-
-@ 84038E0
- .include "data/battle_tower/level_50_mons.inc"
-
-@ 8404BA0
- .include "data/battle_tower/level_100_mons.inc"
-
-gUnknown_08405E60:: @ 8405E60
- .incbin "baserom.gba", 0x00405e60, 0x1e
-
-gUnknown_08405E7E:: @ 8405E7E
- .incbin "baserom.gba", 0x00405e7e, 0x14
-
-gUnknown_08405E92:: @ 8405E92
- .incbin "baserom.gba", 0x00405e92, 0x1e
-
-gUnknown_08405EB0:: @ 8405EB0
- .incbin "baserom.gba", 0x00405eb0, 0x14
-
- .align 1
-gBattleTowerBanlist:: @ 8405EC4
- .2byte SPECIES_MEW
- .2byte SPECIES_MEWTWO
- .2byte SPECIES_HO_OH
- .2byte SPECIES_LUGIA
- .2byte SPECIES_CELEBI
- .2byte SPECIES_KYOGRE
- .2byte SPECIES_GROUDON
- .2byte SPECIES_RAYQUAZA
- .2byte SPECIES_JIRACHI
- .2byte SPECIES_DEOXYS
- .2byte -1
-
-gUnknown_08405EDA:: @ 8405EDA
- .incbin "baserom.gba", 0x00405eda, 0xc
-
-gUnknown_08405EE6:: @ 8405EE6
- .incbin "baserom.gba", 0x00405ee6, 0x12
-
- .align 2
-ConditionUpDownPalette:
- .incbin "graphics/misc/condition_up_down.gbapal"
-
- .align 2
-ConditionUpDownTiles:
- .incbin "graphics/misc/condition_up_down.4bpp"
-
-gUnknown_08406118:: @ 8406118
- .incbin "baserom.gba", 0x00406118, 0x14
-
- .align 2
-gUnknown_0840612C:: @ 840612C
- obj_pal 0x02030400, 0x0001
-
- .align 2
-gUnknown_08406134:: @ 8406134
- .4byte OtherText_Coolness
- .4byte OtherText_Toughness
- .4byte OtherText_Smartness
- .4byte OtherText_Cuteness
- .4byte OtherText_Beauty
-
- .align 2
-gSpriteSheet_ConditionUpDown:: @ 8406148
- obj_tiles ConditionUpDownTiles, 0x200, 0
-
- .align 2
-gSpritePalette_ConditionUpDown:: @ 8406150
- obj_pal ConditionUpDownPalette, 0
-
-gUnknown_08406158:: @ 8406158
- .incbin "baserom.gba", 0x00406158, 0x14
-
- .align 2
-gOamData_840616C:: @ 840616C
- .2byte 0x4000
- .2byte 0x8000
- .2byte 0x0400
-
- .align 2
-gSpriteAnim_8406174:: @ 8406174
- obj_image_anim_frame 0, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_840617C:: @ 840617C
- obj_image_anim_frame 8, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_8406184:: @ 8406184
- .4byte gSpriteAnim_8406174
- .4byte gSpriteAnim_840617C
-
- .align 2
-gSpriteTemplate_840618C:: @ 840618C
- spr_template 0, 0, gOamData_840616C, gSpriteAnimTable_8406184, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-gUnknown_084061A4:: @ 84061A4
- .4byte dp01t_00_5_getattr
- .4byte sub_8138230
- .4byte sub_813823C
- .4byte sub_8138C90
- .4byte sub_8138C9C
- .4byte sub_8138CA8
- .4byte sub_8138CB4
- .4byte sub_8138D38
- .4byte sub_8138E04
- .4byte sub_8138ED0
- .4byte sub_8138EDC
- .4byte sub_8138EE8
- .4byte sub_8138EF4
- .4byte sub_8138F44
- .4byte sub_8138FA0
- .4byte sub_8138FAC
- .4byte sub_8139208
- .4byte dp01t_11_5_message_for_player_only
- .4byte sub_8139298
- .4byte sub_8139378
- .4byte sub_8139384
- .4byte sub_81393EC
- .4byte sub_813942C
- .4byte sub_8139438
- .4byte sub_8139444
- .4byte sub_8139544
- .4byte sub_8139550
- .4byte sub_813955C
- .4byte sub_8139568
- .4byte sub_8139574
- .4byte sub_8139580
- .4byte sub_813958C
- .4byte sub_8139598
- .4byte sub_81395A4
- .4byte sub_81395B0
- .4byte sub_81395BC
- .4byte sub_81395C8
- .4byte sub_81395D4
- .4byte sub_81395E0
- .4byte sub_81395EC
- .4byte sub_81395F8
- .4byte sub_8139604
- .4byte sub_8139674
- .4byte sub_8139680
- .4byte sub_81396B0
- .4byte sub_81396E0
- .4byte dp01t_2E_5_battle_intro
- .4byte sub_8139750
- .4byte sub_8139AA0
- .4byte sub_8139B20
- .4byte sub_8139B2C
- .4byte sub_8139B38
- .4byte sub_8139B44
- .4byte sub_8139BA0
- .4byte sub_8139BAC
- .4byte sub_8139BB8
- .4byte nullsub_80
-
- .align 2
-gUnknown_08406288:: @ 8406288
- .4byte PCText_TakeOutItems
- .4byte PCText_StoreItems
- .4byte PCText_ThrowAwayItems
- .4byte gMenuText_GoBackToPrev
-
- .align 2
-gUnknown_08406298:: @ 8406298
- .4byte SecretBaseText_ItemStorage, PlayerPC_ItemStorage
- .4byte gPCText_Mailbox, PlayerPC_Mailbox
- .4byte SecretBaseText_Decoration, PlayerPC_Decoration
- .4byte SecretBaseText_TurnOff, PlayerPC_TurnOff
-
-gUnknown_084062B8:: @ 84062B8
- .incbin "baserom.gba", 0x004062b8, 0x4
-
-gUnknown_084062BC:: @ 84062BC
- .incbin "baserom.gba", 0x004062bc, 0x4
-
- .align 2
-gUnknown_084062C0:: @ 84062C0
- .4byte PCText_WithdrawItem, ItemStorage_Withdraw
- .4byte PCText_DepositItem, ItemStorage_Deposit
- .4byte PCText_TossItem, ItemStorage_Toss
- .4byte gUnknownText_Exit, ItemStorage_Exit
-
- .align 2
-gUnknown_084062E0:: @ 84062E0
- .4byte sub_813A83C
- .4byte sub_813A878
-
- .align 2
-gUnknown_084062E8:: @ 84062E8
- .4byte sub_813B578
- .4byte sub_813B610
-
- .align 2
-gNewGamePCItems:: @ 84062F0
- .2byte ITEM_POTION, 1
- .2byte 0, 0
-
- .align 2
-gUnknown_084062F8:: @ 84062F8
- .4byte OtherText_Read, Mailbox_Read
- .4byte gOtherText_MoveToBag, Mailbox_MoveToBag
- .4byte OtherText_Give, Mailbox_Give
- .4byte gOtherText_CancelNoTerminator, Mailbox_Cancel
-
-gUnknown_08406318:: @ 8406318
- .string "{STR_VAR_1}{CLEAR_TO 80}$"
-
-gUnknown_0840631E:: @ 840631E
- .string "{COLOR RED}{STR_VAR_1}{CLEAR_TO 80}$"
-
-gUnknown_08406327:: @ 8406327
- .string "{STR_VAR_1}$"
-
-gUnknown_0840632A:: @ 840632A
- .string "{COLOR RED}{STR_VAR_1}$"
-
-gUnknown_08406330:: @ 8406330
- .string "{CLEAR_TO 32}$"
-
-gUnknown_08406334:: @ 8406334
- .incbin "baserom.gba", 0x00406334, 0x6
-
-gUnknown_0840633A:: @ 840633A
- .string "{COLOR RED}{STR_VAR_1}$"
-
- .align 2
-Palette_406340:: @ 8406340
- .incbin "baserom.gba", 0x406340, 0x20
-
- .align 2
-Palette_406360:: @ 8406360
- .incbin "baserom.gba", 0x406360, 0x20
-
- .align 2
-gIntroTiles::
- .incbin "graphics/intro/intro.4bpp.lz"
-
- .align 2
-gUnknown_08406974:: @ 8406974
- .incbin "graphics/intro/intro1_bgpal1.gbapal"
- .incbin "graphics/intro/intro1_bgpal2.gbapal"
- .incbin "graphics/intro/intro1_bgpal3.gbapal"
- .incbin "graphics/intro/intro1_bgpal4.gbapal"
- .incbin "graphics/intro/intro1_bgpal5.gbapal"
- .incbin "graphics/intro/intro1_bgpal6.gbapal"
- .incbin "graphics/intro/intro1_bgpal7.gbapal"
- .incbin "graphics/intro/intro1_bgpal8.gbapal"
- .incbin "graphics/intro/intro1_bgpal9.gbapal"
- .incbin "graphics/intro/intro1_bgpal10.gbapal"
- .incbin "graphics/intro/intro1_bgpal11.gbapal"
- .incbin "graphics/intro/intro1_bgpal12.gbapal"
- .incbin "graphics/intro/intro1_bgpal13.gbapal"
- .incbin "graphics/intro/intro1_bgpal14.gbapal"
- .incbin "graphics/intro/intro1_bgpal15.gbapal"
- .incbin "graphics/intro/intro1_bgpal16.gbapal"
-
- .align 2
-gUnknown_08406B74:: @ 8406B74
- .incbin "graphics/intro/intro1_bg0_map.bin.lz"
-
- .align 2
-gUnknown_08406F28:: @ 8406F28
- .incbin "graphics/intro/intro1_bg1_map.bin.lz"
-
- .align 2
-gUnknown_0840725C:: @ 840725C
- .incbin "graphics/intro/intro1_bg2_map.bin.lz"
-
- .align 2
-gUnknown_0840754C:: @ 840754C
- .incbin "graphics/intro/intro1_bg3_map.bin.lz"
-
- .align 2
-gUnknown_08407764:: @ 8407764
- .incbin "graphics/intro/introgfx.4bpp.lz"
-
- .align 2
-gUnknown_084098D4:: @ 84098D4
- .incbin "graphics/intro/intro3_pokeball.gbapal"
-
- .align 2
-gUnknown_08409AD4:: @ 8409AD4
- .incbin "graphics/intro/intro3_pokeball_map.bin.lz"
-
- .align 2
-gUnknown_08409C04:: @ 8409C04
- .incbin "graphics/intro/intro3_pokeball.8bpp.lz"
-
- .align 2
-gUnknown_0840A758:: @ 840A758
- .incbin "graphics/intro/intro3_streaks.gbapal"
-
- .align 2
-gUnknown_0840A778:: @ 840A778
- .incbin "graphics/intro/intro3_streaks.4bpp.lz"
-
- .align 2
-gUnknown_0840A7E4:: @ 840A7E4
- .incbin "graphics/intro/intro3_streaks_map.bin.lz"
-
- .align 2
-gIntro3Misc1Palette::
- .incbin "graphics/intro/intro3_misc1.gbapal"
-
- .align 2
-gIntro3Misc2Palette::
- .incbin "graphics/intro/intro3_misc2.gbapal"
-
- .align 2
-gIntro3MiscTiles::
- .incbin "graphics/intro/intro3_misc.4bpp.lz"
-
- .align 2
-gIntro1EonPalette::
- .incbin "graphics/intro/intro1_eon.gbapal"
-
- .align 2
-gIntro1EonTiles::
- .incbin "graphics/intro/intro1_eon.4bpp.lz"
-
- .align 2
-gOamData_840ADE8:: @ 840ADE8
- .2byte 0x00A0
- .2byte 0x8000
- .2byte 0x0000
-
- .align 2
-gSpriteAnim_840ADF0:: @ 840ADF0
- obj_image_anim_frame 16, 8
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_840ADF8:: @ 840ADF8
- obj_image_anim_frame 24, 8
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_840AE00:: @ 840AE00
- obj_image_anim_frame 0, 8
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_840AE08:: @ 840AE08
- obj_image_anim_frame 48, 8
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_840AE10:: @ 840AE10
- .4byte gSpriteAnim_840ADF0
- .4byte gSpriteAnim_840ADF8
- .4byte gSpriteAnim_840AE00
- .4byte gSpriteAnim_840AE08
-
- .align 2
-gSpriteTemplate_840AE20:: @ 840AE20
- spr_template 2000, 2000, gOamData_840ADE8, gSpriteAnimTable_840AE10, NULL, gDummySpriteAffineAnimTable, sub_813D208
-
- .align 2
-Unknown_40AE38: @ 840AE38
- .incbin "baserom.gba", 0x40ae38, 0x14
-
- .align 2
-Unknown_40AE4C: @ 840AE4C
- .incbin "baserom.gba", 0x40ae4c, 0x14
-
- .align 2
-Unknown_40AE60: @ 840AE60
- .incbin "baserom.gba", 0x40ae60, 0x10
-
- .align 2
-Unknown_40AE70: @ 840AE70
- .incbin "baserom.gba", 0x40ae70, 0x10
-
- .align 2
-gUnknown_0840AE80:: @ 840AE80
- .4byte Unknown_40AE38
- .4byte Unknown_40AE4C
- .4byte Unknown_40AE60
- .4byte Unknown_40AE70
-
- .align 2
-gOamData_840AE90:: @ 840AE90
- .2byte 0x00A0
- .2byte 0x4000
- .2byte 0x0000
-
- .align 2
-gOamData_840AE98:: @ 840AE98
- .2byte 0x00A0
- .2byte 0x0000
- .2byte 0x0000
-
- .align 2
-gOamData_840AEA0:: @ 840AEA0
- .2byte 0x80A0
- .2byte 0xC000
- .2byte 0x0000
-
- .align 2
-gSpriteAnim_840AEA8:: @ 840AEA8
- obj_image_anim_frame 80, 8
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_840AEB0:: @ 840AEB0
- obj_image_anim_frame 84, 8
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_840AEB8:: @ 840AEB8
- obj_image_anim_frame 88, 8
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_840AEC0:: @ 840AEC0
- obj_image_anim_frame 92, 8
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_840AEC8:: @ 840AEC8
- obj_image_anim_frame 96, 8
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_840AED0:: @ 840AED0
- obj_image_anim_frame 100, 8
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_840AED8:: @ 840AED8
- obj_image_anim_frame 104, 8
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_840AEE0:: @ 840AEE0
- obj_image_anim_frame 112, 8
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_840AEE8:: @ 840AEE8
- obj_image_anim_frame 113, 8
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_840AEF0:: @ 840AEF0
- obj_image_anim_frame 114, 8
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_840AEF8:: @ 840AEF8
- obj_image_anim_frame 115, 8
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_840AF00:: @ 840AF00
- obj_image_anim_frame 116, 8
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_840AF08:: @ 840AF08
- obj_image_anim_frame 117, 8
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_840AF10:: @ 840AF10
- obj_image_anim_frame 128, 8
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_840AF18:: @ 840AF18
- .4byte gSpriteAnim_840AEA8
- .4byte gSpriteAnim_840AEB0
- .4byte gSpriteAnim_840AEB8
- .4byte gSpriteAnim_840AEC0
- .4byte gSpriteAnim_840AEC8
- .4byte gSpriteAnim_840AED0
- .4byte gSpriteAnim_840AED8
-
- .align 2
-gSpriteAnimTable_840AF34:: @ 840AF34
- .4byte gSpriteAnim_840AEE0
- .4byte gSpriteAnim_840AEE8
- .4byte gSpriteAnim_840AEF0
- .4byte gSpriteAnim_840AEF8
- .4byte gSpriteAnim_840AF00
- .4byte gSpriteAnim_840AF08
-
- .align 2
-gSpriteAnimTable_840AF4C:: @ 840AF4C
- .4byte gSpriteAnim_840AF10
-
-gUnknown_0840AF50:: @ 840AF50
- .incbin "baserom.gba", 0x0040af50, 0x24
-
-gUnknown_0840AF74:: @ 840AF74
- .incbin "baserom.gba", 0x0040af74, 0x20
-
- .align 2
-gSpriteTemplate_840AF94:: @ 840AF94
- spr_template 2000, 2001, gOamData_840AE90, gSpriteAnimTable_840AF18, NULL, gDummySpriteAffineAnimTable, sub_813D908
-
- .align 2
-gSpriteTemplate_840AFAC:: @ 840AFAC
- spr_template 2000, 2001, gOamData_840AE98, gSpriteAnimTable_840AF34, NULL, gDummySpriteAffineAnimTable, sub_813D908
-
- .align 2
-gSpriteTemplate_840AFC4:: @ 840AFC4
- spr_template 2000, 2001, gOamData_840AEA0, gSpriteAnimTable_840AF4C, NULL, gDummySpriteAffineAnimTable, sub_813D908
-
- .align 2
-gOamData_840AFDC:: @ 840AFDC
- .2byte 0x40A0
- .2byte 0xC000
- .2byte 0x0000
-
- .align 2
-gSpriteAnim_840AFE4:: @ 840AFE4
- obj_image_anim_frame 0, 10
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnimTable_840AFEC:: @ 840AFEC
- .4byte gSpriteAnim_840AFE4
-
- .align 2
-gSpriteTemplate_840AFF0:: @ 840AFF0
- spr_template 2002, 2002, gOamData_840AFDC, gSpriteAnimTable_840AFEC, NULL, gDummySpriteAffineAnimTable, sub_813DA64
-
- .align 2
-gUnknown_0840B008:: @ 840B008
- obj_tiles gIntroTiles, 0x1400, 2000
- .space 8
-
- .align 2
-gUnknown_0840B018:: @ 840B018
- obj_tiles gIntro1EonTiles, 0x400, 2002
- .space 8
-
- .align 2
-gUnknown_0840B028:: @ 840B028
- obj_pal Palette_406340, 2000
- obj_pal Palette_406360, 2001
- obj_pal gIntro1EonPalette, 2002
- .space 8
-
-gUnknown_0840B048:: @ 840B048
- .incbin "baserom.gba", 0x40b048, 0x8
-
-gUnknown_0840B050:: @ 840B050
- .incbin "baserom.gba", 0x40b050, 0x8
-
-gUnknown_0840B058:: @ 840B058
- .incbin "baserom.gba", 0x40b058, 0xc
-
- .align 2
-gUnknown_0840B064:: @ 840B064
- .4byte gUnknown_0840B048
- .4byte gUnknown_0840B050
- .4byte gUnknown_0840B058
-
- .align 2
-gOamData_840B070:: @ 840B070
- .2byte 0x00A0
- .2byte 0x4000
- .2byte 0x0400
-
- .align 2
-gSpriteAnim_840B078:: @ 840B078
- obj_image_anim_frame 0, 8
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_840B080:: @ 840B080
- .4byte gSpriteAnim_840B078
-
- .align 2
-gSpriteTemplate_840B084:: @ 840B084
- spr_template 2002, 2002, gOamData_840B070, gSpriteAnimTable_840B080, NULL, gDummySpriteAffineAnimTable, sub_813E30C
-
- .align 2
-gOamData_840B09C:: @ 840B09C
- .2byte 0x00A0
- .2byte 0x0000
- .2byte 0x0400
-
- .align 2
-gSpriteAnim_840B0A4:: @ 840B0A4
- obj_image_anim_frame 1, 8
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_840B0AC:: @ 840B0AC
- .4byte gSpriteAnim_840B0A4
-
- .align 2
-gSpriteTemplate_840B0B0:: @ 840B0B0
- spr_template 2003, 2003, gOamData_840B09C, gSpriteAnimTable_840B0AC, NULL, gDummySpriteAffineAnimTable, sub_813E4B8
-
- .align 2
-gOamData_840B0C8:: @ 840B0C8
- .2byte 0x00A0
- .2byte 0x0000
- .2byte 0x0400
-
- .align 2
-gSpriteAnim_840B0D0:: @ 840B0D0
- obj_image_anim_frame 14, 8
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_840B0D8:: @ 840B0D8
- .4byte gSpriteAnim_840B0D0
-
- .align 2
-gSpriteTemplate_840B0DC:: @ 840B0DC
- spr_template 2003, 2004, gOamData_840B0C8, gSpriteAnimTable_840B0D8, NULL, gDummySpriteAffineAnimTable, sub_813E5E0
-
- .align 2
-gSpriteTemplate_840B0F4:: @ 840B0F4
- spr_template 2003, 2004, gOamData_840B0C8, gSpriteAnimTable_840B0D8, NULL, gDummySpriteAffineAnimTable, sub_813E6C0
-
- .align 2
-gOamData_840B10C:: @ 840B10C
- .2byte 0x00A0
- .2byte 0x4000
- .2byte 0x0400
-
- .align 2
-gSpriteAnim_840B114:: @ 840B114
- obj_image_anim_frame 6, 8
- obj_image_anim_frame 6, 8, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnimTable_840B120:: @ 840B120
- .4byte gSpriteAnim_840B114
-
- .align 2
-gSpriteTemplate_840B124:: @ 840B124
- spr_template 2003, 2004, gOamData_840B10C, gSpriteAnimTable_840B120, NULL, gDummySpriteAffineAnimTable, sub_813E804
-
- .align 2
-gOamData_840B13C:: @ 840B13C
- .2byte 0x00A0
- .2byte 0x4000
- .2byte 0x0400
-
- .align 2
-gSpriteAnim_840B144:: @ 840B144
- obj_image_anim_frame 10, 8
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_840B14C:: @ 840B14C
- .4byte gSpriteAnim_840B144
-
- .align 2
-gSpriteTemplate_840B150:: @ 840B150
- spr_template 2003, 2004, gOamData_840B13C, gSpriteAnimTable_840B14C, NULL, gDummySpriteAffineAnimTable, GetCurrentTrainerHillMapId
-
-gUnknown_0840B168:: @ 840B168
- .incbin "baserom.gba", 0x0040b168, 0x8
-
- .align 2
-gSpriteTemplate_840B170:: @ 840B170
- spr_template 2003, 2004, gOamData_840B13C, gSpriteAnimTable_840B14C, NULL, gDummySpriteAffineAnimTable, sub_813EA60
-
-gUnknown_0840B188:: @ 840B188
- .incbin "baserom.gba", 0x0040b188, 0x14
-
- .align 2
-gOamData_840B19C:: @ 840B19C
- .2byte 0x00A0
- .2byte 0x4000
- .2byte 0x0400
-
- .align 2
-gSpriteAnim_840B1A4:: @ 840B1A4
- obj_image_anim_frame 2, 8
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_840B1AC:: @ 840B1AC
- .4byte gSpriteAnim_840B1A4
-
- .align 2
-gSpriteTemplate_840B1B0:: @ 840B1B0
- spr_template 2003, 2004, gOamData_840B19C, gSpriteAnimTable_840B1AC, NULL, gDummySpriteAffineAnimTable, sub_813EBBC
-
- .align 2
-gSpriteTemplate_840B1C8:: @ 840B1C8
- spr_template 2003, 2004, gOamData_840B19C, gSpriteAnimTable_840B1AC, NULL, gDummySpriteAffineAnimTable, sub_813EC90
-
- .align 2
-gOamData_840B1E0:: @ 840B1E0
- .2byte 0x00A0
- .2byte 0xC000
- .2byte 0x0400
-
- .align 2
-gSpriteAnim_840B1E8:: @ 840B1E8
- obj_image_anim_frame 16, 8
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_840B1F0:: @ 840B1F0
- .4byte gSpriteAnim_840B1E8
-
- .align 2
-gSpriteTemplate_840B1F4:: @ 840B1F4
- spr_template 2003, 2003, gOamData_840B1E0, gSpriteAnimTable_840B1F0, NULL, gDummySpriteAffineAnimTable, sub_813EDFC
-
- .align 2
-gUnknown_0840B20C:: @ 840B20C
- obj_tiles gInterfaceGfx_PokeBall, 0x100, 2002
- .space 8
-
- .align 2
-gUnknown_0840B21C:: @ 840B21C
- obj_tiles gIntro3MiscTiles, 0xa00, 2003
- .space 8
-
- .align 2
-gUnknown_0840B22C:: @ 840B22C
- obj_pal gInterfacePal_PokeBall, 2002
- .space 8
-
- .align 2
-gUnknown_0840B23C:: @ 840B23C
- obj_pal gIntro3Misc1Palette, 2003
- obj_pal gIntro3Misc2Palette, 2004
- .space 8
-
- .incbin "baserom.gba", 0x0040b254, 0x4
-
- .align 2
-gUnknown_0840B258:: @ 840B258
- obj_tiles gBattleAnimSpriteSheet_Particles, 0x100, 55020
- obj_tiles gBattleAnimSpriteSheet_Particles, 0x100, 55021
- obj_tiles gBattleAnimSpriteSheet_Particles, 0x100, 55022
- obj_tiles gBattleAnimSpriteSheet_Particles, 0x100, 55023
- obj_tiles gBattleAnimSpriteSheet_Particles, 0x100, 55024
- obj_tiles gBattleAnimSpriteSheet_Particles, 0x100, 55025
- obj_tiles gBattleAnimSpriteSheet_Particles, 0x100, 55026
- obj_tiles gBattleAnimSpriteSheet_Particles, 0x100, 55027
- obj_tiles gBattleAnimSpriteSheet_Particles, 0x100, 55028
- obj_tiles gBattleAnimSpriteSheet_Particles, 0x100, 55029
- obj_tiles gBattleAnimSpriteSheet_Particles, 0x100, 55030
- obj_tiles gBattleAnimSpriteSheet_Particles, 0x100, 55031
-
- .align 2
-gUnknown_0840B2B8:: @ 840B2B8
- obj_pal gBattleAnimSpritePalette_136, 55020
- obj_pal gBattleAnimSpritePalette_136, 55021
- obj_pal gBattleAnimSpritePalette_136, 55022
- obj_pal gBattleAnimSpritePalette_136, 55023
- obj_pal gBattleAnimSpritePalette_136, 55024
- obj_pal gBattleAnimSpritePalette_136, 55025
- obj_pal gBattleAnimSpritePalette_136, 55026
- obj_pal gBattleAnimSpritePalette_136, 55027
- obj_pal gBattleAnimSpritePalette_136, 55028
- obj_pal gBattleAnimSpritePalette_136, 55029
- obj_pal gBattleAnimSpritePalette_136, 55030
- obj_pal gBattleAnimSpritePalette_136, 55031
-
- .align 2
-gSpriteAnim_840B318:: @ 840B318
- obj_image_anim_frame 0, 1
- obj_image_anim_frame 1, 1
- obj_image_anim_frame 2, 1
- obj_image_anim_frame 0, 1, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 2, 1
- obj_image_anim_frame 1, 1
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnim_840B334:: @ 840B334
- obj_image_anim_frame 3, 1
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_840B33C:: @ 840B33C
- obj_image_anim_frame 4, 1
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_840B344:: @ 840B344
- obj_image_anim_frame 5, 1
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_840B34C:: @ 840B34C
- obj_image_anim_frame 6, 4
- obj_image_anim_frame 7, 4
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnim_840B358:: @ 840B358
- obj_image_anim_frame 7, 4
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_840B360:: @ 840B360
- .4byte gSpriteAnim_840B318
- .4byte gSpriteAnim_840B334
- .4byte gSpriteAnim_840B33C
- .4byte gSpriteAnim_840B344
- .4byte gSpriteAnim_840B34C
- .4byte gSpriteAnim_840B358
-
-gUnknown_0840B378:: @ 840B378
- .incbin "baserom.gba", 0x0040b378, 0xc
-
- .align 2
-gUnknown_0840B384:: @ 840B384
- .4byte sub_8140930
- .4byte sub_8140DC4
- .4byte sub_8140C14
- .4byte sub_8140CE8
- .4byte sub_8141058
- .4byte sub_8140C14
- .4byte sub_8140B3C
- .4byte sub_8140CE8
- .4byte sub_8140F24
- .4byte sub_8140A64
- .4byte sub_8140DC4
- .4byte sub_8141164
-
- .align 2
-gSpriteTemplate_840B3B4:: @ 840B3B4
- spr_template 55020, 55020, gOamData_837DF24, gSpriteAnimTable_840B360, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-gSpriteTemplate_840B3CC:: @ 840B3CC
- spr_template 55021, 55021, gOamData_837DF24, gSpriteAnimTable_840B360, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-gSpriteTemplate_840B3E4:: @ 840B3E4
- spr_template 55022, 55022, gOamData_837DF24, gSpriteAnimTable_840B360, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-gSpriteTemplate_840B3FC:: @ 840B3FC
- spr_template 55023, 55023, gOamData_837DF24, gSpriteAnimTable_840B360, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-gSpriteTemplate_840B414:: @ 840B414
- spr_template 55024, 55024, gOamData_837DF24, gSpriteAnimTable_840B360, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-gSpriteTemplate_840B42C:: @ 840B42C
- spr_template 55025, 55025, gOamData_837DF24, gSpriteAnimTable_840B360, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-gSpriteTemplate_840B444:: @ 840B444
- spr_template 55026, 55026, gOamData_837DF24, gSpriteAnimTable_840B360, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-gSpriteTemplate_840B45C:: @ 840B45C
- spr_template 55027, 55027, gOamData_837DF24, gSpriteAnimTable_840B360, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-gSpriteTemplate_840B474:: @ 840B474
- spr_template 55028, 55028, gOamData_837DF24, gSpriteAnimTable_840B360, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-gSpriteTemplate_840B48C:: @ 840B48C
- spr_template 55029, 55029, gOamData_837DF24, gSpriteAnimTable_840B360, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-gSpriteTemplate_840B4A4:: @ 840B4A4
- spr_template 55030, 55030, gOamData_837DF24, gSpriteAnimTable_840B360, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-gSpriteTemplate_840B4BC:: @ 840B4BC
- spr_template 55031, 55031, gOamData_837DF24, gSpriteAnimTable_840B360, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
-gUnknown_0840B4D4:: @ 840B4D4
- .incbin "baserom.gba", 0x0040b4d4, 0x28
-
- .align 2
-gBattleAnimSpriteTemplate_840B4FC:: @ 840B4FC
- spr_template 10269, 10269, gOamData_837DF2C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_8141C30
-
- .align 2
-gUnknown_0840B514:: @ 840B514
- obj_tiles gContestConfetti_Gfx, 0x220, 1001
- .space 8
-
-gUnknown_0840B524:: @ 840B524
- obj_pal gContestConfetti_Pal, 1001
- .space 8
-
-gUnknown_0840B534:: @ 840B534
- .incbin "baserom.gba", 0x0040b534, 0x6
-
-gUnknown_0840B53A:: @ 840B53A
- .incbin "baserom.gba", 0x0040b53a, 0x2a
-
-gUnknown_0840B564:: @ 840B564
- .incbin "baserom.gba", 0x0040b564, 0x6
-
-gUnknown_0840B56A:: @ 840B56A
- .incbin "baserom.gba", 0x0040b56a, 0x12
-
-gUnknown_0840B57C:: @ 840B57C
- .incbin "baserom.gba", 0x0040b57c, 0x1c
-
- .align 2
-gOamData_840B598:: @ 840B598
- .2byte 0x0000
- .2byte 0xC000
- .2byte 0x0000
-
- .align 2
-gUnknown_0840B5A0:: @ 840B5A0
- .4byte 0x02008000
- .4byte 0x0200A000
- .4byte 0x0200C000
- .4byte 0x0200E000
- .4byte 0x02010000
- .4byte 0x02014000
- .4byte 0x02018000
-
- .align 2
-gSpriteImageTable_840B5BC:: @ 840B5BC
- obj_frame_tiles 0x02008000, 0x800
- obj_frame_tiles 0x02008800, 0x800
- obj_frame_tiles 0x02009000, 0x800
- obj_frame_tiles 0x02009800, 0x800
-
- .align 2
-gSpriteImageTable_840B5DC:: @ 840B5DC
- obj_frame_tiles 0x0200A000, 0x800
- obj_frame_tiles 0x0200A800, 0x800
- obj_frame_tiles 0x0200B000, 0x800
- obj_frame_tiles 0x0200B800, 0x800
-
- .align 2
-gSpriteImageTable_840B5FC:: @ 840B5FC
- obj_frame_tiles 0x0200C000, 0x800
- obj_frame_tiles 0x0200C800, 0x800
- obj_frame_tiles 0x0200D000, 0x800
- obj_frame_tiles 0x0200D800, 0x800
-
- .align 2
-gSpriteImageTable_840B61C:: @ 840B61C
- obj_frame_tiles 0x0200E000, 0x800
- obj_frame_tiles 0x0200E800, 0x800
- obj_frame_tiles 0x0200F000, 0x800
- obj_frame_tiles 0x0200F800, 0x800
-
- .align 2
-gSpriteImageTable_840B63C:: @ 840B63C
- obj_frame_tiles 0x02010000, 0x800
- obj_frame_tiles 0x02010800, 0x800
- obj_frame_tiles 0x02011000, 0x800
- obj_frame_tiles 0x02011800, 0x800
-
- .align 2
-gSpriteImageTable_840B65C:: @ 840B65C
- obj_frame_tiles 0x02014000, 0x800
- obj_frame_tiles 0x02014800, 0x800
- obj_frame_tiles 0x02015000, 0x800
- obj_frame_tiles 0x02015800, 0x800
-
- .align 2
-gSpriteImageTable_840B67C:: @ 840B67C
- obj_frame_tiles 0x02018000, 0x800
- obj_frame_tiles 0x02018800, 0x800
- obj_frame_tiles 0x02019000, 0x800
- obj_frame_tiles 0x02019800, 0x800
-
- .align 2
-gUnknown_0840B69C:: @ 840B69C
- .4byte gSpriteImageTable_840B5BC
- .4byte gSpriteImageTable_840B5DC
- .4byte gSpriteImageTable_840B5FC
- .4byte gSpriteImageTable_840B61C
- .4byte gSpriteImageTable_840B63C
- .4byte gSpriteImageTable_840B65C
- .4byte gSpriteImageTable_840B67C
-
-gUnknown_0840B6B8:: @ 840B6B8
- spr_template -1, -1, gOamData_840B598, NULL, gSpriteImageTable_840B5BC, gDummySpriteAffineAnimTable, nullsub_81
-
- .align 2
-gOamData_840B6D0:: @ 840B6D0
- .2byte 0x0000
- .2byte 0x0000
- .2byte 0x0000
-
- .align 2
-gSpriteAnim_840B6D8:: @ 840B6D8
- obj_image_anim_frame 0, 30
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_840B6E0:: @ 840B6E0
- obj_image_anim_frame 1, 30
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_840B6E8:: @ 840B6E8
- obj_image_anim_frame 2, 30
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_840B6F0:: @ 840B6F0
- obj_image_anim_frame 3, 30
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_840B6F8:: @ 840B6F8
- obj_image_anim_frame 4, 30
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_840B700:: @ 840B700
- obj_image_anim_frame 5, 30
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_840B708:: @ 840B708
- obj_image_anim_frame 6, 30
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_840B710:: @ 840B710
- obj_image_anim_frame 7, 30
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_840B718:: @ 840B718
- obj_image_anim_frame 8, 30
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_840B720:: @ 840B720
- obj_image_anim_frame 9, 30
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_840B728:: @ 840B728
- obj_image_anim_frame 10, 30
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_840B730:: @ 840B730
- obj_image_anim_frame 11, 30
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_840B738:: @ 840B738
- obj_image_anim_frame 12, 30
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_840B740:: @ 840B740
- obj_image_anim_frame 13, 30
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_840B748:: @ 840B748
- obj_image_anim_frame 14, 30
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_840B750:: @ 840B750
- obj_image_anim_frame 15, 30
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_840B758:: @ 840B758
- obj_image_anim_frame 16, 30
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_840B760:: @ 840B760
- .4byte gSpriteAnim_840B6D8
- .4byte gSpriteAnim_840B6E0
- .4byte gSpriteAnim_840B6E8
- .4byte gSpriteAnim_840B6F0
- .4byte gSpriteAnim_840B6F8
- .4byte gSpriteAnim_840B700
- .4byte gSpriteAnim_840B708
- .4byte gSpriteAnim_840B710
- .4byte gSpriteAnim_840B718
- .4byte gSpriteAnim_840B720
- .4byte gSpriteAnim_840B728
- .4byte gSpriteAnim_840B730
- .4byte gSpriteAnim_840B738
- .4byte gSpriteAnim_840B740
- .4byte gSpriteAnim_840B748
- .4byte gSpriteAnim_840B750
- .4byte gSpriteAnim_840B758
-
- .align 2
-gSpriteTemplate_840B7A4:: @ 840B7A4
- spr_template 1001, 1001, gOamData_840B6D0, gSpriteAnimTable_840B760, NULL, gDummySpriteAffineAnimTable, sub_814386C
-
-gUnknown_0840B7BC:: @ 840B7BC
- .incbin "baserom.gba", 0x0040b7bc, 0x40
-
-gUnknown_0840B7FC:: @ 840B7FC
- .incbin "baserom.gba", 0x0040b7fc, 0x40
-
-gUnknown_0840B83C:: @ 840B83C
- .incbin "baserom.gba", 0x0040b83c, 0xf
-
-gUnknown_0840B84B:: @ 840B84B
- .incbin "baserom.gba", 0x0040b84b, 0xf
-
-gUnknown_0840B85A:: @ 840B85A
- .incbin "baserom.gba", 0x0040b85a, 0xf
-
-gUnknown_0840B869:: @ 840B869
- .incbin "baserom.gba", 0x0040b869, 0xf
-
-gUnknown_0840B878::
- .incbin "baserom.gba", 0x0040B878, 0xf
-
- .include "data/text/credits.inc"
-
-gUnknown_0840CA00:: @ 840CA00
- .incbin "baserom.gba", 0x0040ca00, 0x8
-
-Unknown_840CA08:
- .incbin "baserom.gba", 0x0040ca08, 0x14
-Unknown_840CA1C:
- .incbin "baserom.gba", 0x0040ca1c, 0x14
-Unknown_840CA30:
- .incbin "baserom.gba", 0x0040ca30, 0x10
-Unknown_840CA40:
- .incbin "baserom.gba", 0x0040ca40, 0x14
-
- .align 2
-gUnknown_0840CA54:: @ 840CA54
- .4byte Unknown_840CA08
- .4byte Unknown_840CA1C
- .4byte Unknown_840CA30
- .4byte Unknown_840CA40
-
-Unknown_840CA64:
- .incbin "baserom.gba", 0x0040ca64, 0x14
-Unknown_840CA78:
- .incbin "baserom.gba", 0x0040ca78, 0x14
-Unknown_840CA8C:
- .incbin "baserom.gba", 0x0040ca8c, 0x8
-
- .align 2
-gUnknown_0840CA94:: @ 840CA94
- .4byte Unknown_840CA64
- .4byte Unknown_840CA78
- .4byte Unknown_840CA8C
-
-gUnknown_0840CAA0:: @ 840CAA0
- .incbin "baserom.gba", 0x0040caa0, 0x10
-
-gUnknown_0840CAB0:: @ 840CAB0
- .incbin "baserom.gba", 0x0040cab0, 0x10
-
- .align 2
-gOamData_840CAC0:: @ 840CAC0
- .2byte 0x00A0
- .2byte 0xC000
- .2byte 0x0400
-
- .align 2
-gSpriteAnim_840CAC8:: @ 840CAC8
- obj_image_anim_frame 0, 8
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_840CAD0:: @ 840CAD0
- obj_image_anim_frame 64, 8
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_840CAD8:: @ 840CAD8
- obj_image_anim_frame 128, 8
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_840CAE0:: @ 840CAE0
- .4byte gSpriteAnim_840CAC8
- .4byte gSpriteAnim_840CAD0
- .4byte gSpriteAnim_840CAD8
-
- .align 2
-gSpriteTemplate_840CAEC:: @ 840CAEC
- spr_template 1001, 1001, gOamData_840CAC0, gSpriteAnimTable_840CAE0, NULL, gDummySpriteAffineAnimTable, sub_814580C
-
-gUnknown_0840CB04:: @ 840CB04
- .incbin "baserom.gba", 0x0040cb04, 0x8
-
- .align 2
-gDiplomaPalettes:: @ 840CB0C
- .incbin "graphics/misc/diploma_national.gbapal"
- .incbin "graphics/misc/diploma_hoenn.gbapal"
-
- .align 2
-gDiplomaTilemap:: @ 840CB4C
- .incbin "graphics/misc/diploma_map.bin.lz"
-
- .align 2
-gDiplomaTiles:: @ 840D288
- .incbin "graphics/misc/diploma.4bpp.lz"
-
-gExpandedPlaceholder_Empty:: @ 840DC80
- .string "$"
-
-gExpandedPlaceholder_Kun:: @ 840DC81
- .string "$"
-
-gExpandedPlaceholder_Chan:: @ 840DC82
- .string "$"
-
-gExpandedPlaceholder_Sapphire:: @ 840DC83
- .string "SAPPHIRE$"
-
-gExpandedPlaceholder_Ruby:: @ 840DC8C
- .string "RUBY$"
-
-gExpandedPlaceholder_Aqua:: @ 840DC91
- .string "AQUA$"
-
-gExpandedPlaceholder_Magma:: @ 840DC96
- .string "MAGMA$"
-
-gExpandedPlaceholder_Archie:: @ 840DC9C
- .string "ARCHIE$"
-
-gExpandedPlaceholder_Maxie:: @ 840DCA3
- .string "MAXIE$"
-
-gExpandedPlaceholder_Kyogre:: @ 840DCA9
- .string "KYOGRE$"
-
-gExpandedPlaceholder_Groudon:: @ 840DCB0
- .string "GROUDON$"
-
-gExpandedPlaceholder_Brendan:: @ 840DCB8
- .string "BRENDAN$"
-
-gExpandedPlaceholder_May:: @ 840DCC0
- .string "MAY$"
-
-gSystemText_Egg:: @ 840DCC4
- .string "EGG$"
-
-gSystemText_Pokemon2:: @ 840DCC8
- .string "POKéMON$"
-
-gMainMenuString_NewGame:: @ 840DCD0
- .string "NEW GAME$"
-
-gMainMenuString_Continue:: @ 840DCD9
- .string "CONTINUE$"
-
-gMainMenuString_Option:: @ 840DCE2
- .string "OPTION$"
-
-gMainMenuString_MysteryEvents:: @ 840DCE9
- .string "MYSTERY EVENTS$"
-
-SystemText_UpdatingSaveExternal:
- .string "Updating save file using external\ndata. Please wait.$"
-
-SystemText_SaveUpdated:
- .string "The save file has been updated.$"
-
-SystemText_SaveUpdatedExchangeBackup:
- .string "The save file has been updated.\pFurther game data cannot be saved\nto the backup memory.\pPlease exchange the backup memory.\pFor details, please contact the\nNintendo Service Center.$"
-
-SystemText_SaveNotUpdated:
- .string "The save file could not be updated.\pPlease exchange the backup\nmemory.\pFor details, please contact the\nNintendo Service Center.$"
-
-gSaveFileCorruptMessage:: @ 840DE81
- .string "The save file is corrupt. The\nprevious save file will be loaded.$"
-
-gSaveFileDeletedMessage:: @ 840DEC2
- .string " The save file has been deleted...$"
-
-gBoardNotInstalledMessage:: @ 840DEE5
- .string "The 1M sub-circuit board is\nnot installed.$"
-
-gBatteryDryMessage:: @ 840DF10
- .string "The internal battery has run dry.\nThe game can be played.\pHowever, clock-based events will\nno longer occur.$"
-
-gMainMenuString_Player:: @ 840DF7C
- .string "PLAYER$"
-
-gMainMenuString_Pokedex:: @ 840DF83
- .string "POKéDEX$"
-
-gMainMenuString_Time:: @ 840DF8B
- .string "TIME$"
-
-gMainMenuString_Badges:: @ 840DF90
- .string "BADGES$"
-
-gBirchText_Boy::
- .string "BOY$"
-gBirchText_Girl::
- .string "GIRL$"
-gBirchText_NewName::
- .string "NEW NAME$"
-
-gDefaultBoyName1::
- .ifdef SAPPHIRE
- .string "SEAN$"
- .else
- .string "LANDON$"
- .endif
-gDefaultBoyName2::
- .string "TERRY$"
-gDefaultBoyName3::
- .string "SETH$"
-gDefaultBoyName4::
- .string "TOM$"
-
-gDefaultGirlName1::
- .ifdef SAPPHIRE
- .string "MARINA$"
- .else
- .string "TERRA$"
- .endif
-gDefaultGirlName2::
- .string "KIMMY$"
-gDefaultGirlName3::
- .string "NICOLA$"
-gDefaultGirlName4::
- .string "SARA$"
-
-gSystemText_IntroWeCall::
- .string "This is what we call\na POKéMON.$"
-
-gSystemText_NewPara:: @ 840DFF7
- .string "\p$"
-
-gDexText_UnknownPoke:: @ 840DFF9
- .string " ????? POKéMON$" @ why 12 spaces?
-
-gDexText_UnknownHeight:: @ 840E013
- .string "{CLEAR_TO 0x0C}??’??”$"
-
-gDexText_UnknownWeight:: @ 840E01D
- .string "????.? lbs.$"
- .string "$"
-
-gDexText_CryOf:: @ 840E02A
- .string "{CLEAR_TO 2}CRY OF$"
- .string "$"
-
-gDexText_SizeComparedTo:: @ 840E035
- .string "SIZE COMPARED TO $"
-
-gDexText_RegisterComplete:: @ 840E047
- .string "POKéDEX registration completed.$"
-
-gDexText_Searching:: @ 840E067
- .string "Searching...\nPlease wait.$"
-
-gDexText_SearchComplete:: @ 840E081
- .string "Search completed.$"
-
-gDexText_NoMatching:: @ 840E093
- .string "No matching POKéMON were found.$"
-
-DexText_SearchForPoke::
- .string "Search for POKéMON based on\nselected parameters.$"
-DexText_SwitchDex::
- .string "Switch POKéDEX listings.$"
-DexText_ReturnToDex::
- .string "Return to the POKéDEX.$"
-DexText_SelectDexMode::
- .string "Select the POKéDEX mode.$"
-DexText_SelectDexList::
- .string "Select the POKéDEX listing mode.$"
-DexText_ListByABC::
- .string "List by the first letter in the name.\n/Spotted POKéMON only.$"
-DexText_ListByColor::
- .string "List by body color.\n/Spotted POKéMON only.$"
-DexText_ListByType::
- .string "List by type.\n/Owned POKéMON only.$"
-DexText_ExecuteSearchSwitch::
- .string "Execute search/switch.$"
-DexText_HoennDex::
- .string "HOENN DEX$"
-DexText_NationalDex::
- .string "NATIONAL DEX$"
-DexText_NumericalMode::
- .string "NUMERICAL MODE$"
-DexText_ABCMode::
- .string "A TO Z MODE$"
-DexText_HeaviestMode::
- .string "HEAVIEST MODE$"
-DexText_LightestMode::
- .string "LIGHTEST MODE$"
-DexText_TallestMode::
- .string "TALLEST MODE$"
-DexText_SmallestMode::
- .string "SMALLEST MODE$"
-DexText_ABC::
- .string "ABC$"
-DexText_DEF::
- .string "DEF$"
-DexText_GHI::
- .string "GHI$"
-DexText_JKL::
- .string "JKL$"
-DexText_MNO::
- .string "MNO$"
-DexText_PQR::
- .string "PQR$"
-DexText_STU::
- .string "STU$"
-DexText_VWX::
- .string "VWX$"
-DexText_YZ::
- .string "YZ$"
-DexText_Red::
- .string "RED$"
-DexText_Blue::
- .string "BLUE$"
-DexText_Yellow::
- .string "YELLOW$"
-DexText_Green::
- .string "GREEN$"
-DexText_Black::
- .string "BLACK$"
-DexText_Brown::
- .string "BROWN$"
-DexText_Purple::
- .string "PURPLE$"
-DexText_Gray::
- .string "GRAY$"
-DexText_White::
- .string "WHITE$"
-DexText_Pink::
- .string "PINK$"
-DexText_HoennDex2::
- .string "HOENN region’s POKéDEX$"
-DexText_NationalDex2::
- .string "National edition POKéDEX$"
-DexText_ListByNumber::
- .string "POKéMON are listed according to their\nnumber.$"
-DexText_ListByABC2::
- .string "Spotted and owned POKéMON are listed\nalphabetically.$"
-DexText_ListByHeavyToLightest::
- .string "Owned POKéMON are listed from the\nheaviest to the lightest.$"
-DexText_ListByLightToHeaviest::
- .string "Owned POKéMON are listed from the\nlightest to the heaviest.$"
-DexText_ListByTallToSmallest::
- .string "Owned POKéMON are listed from the\ntallest to the smallest.$"
-DexText_ListBySmallToTallest::
- .string "Owned POKéMON are listed from the\nsmallest to the tallest.$"
-DexText_Terminator5::
- .string "$"
-DexText_DontSpecify::
- .string "DON’T SPECIFY.$"
-DexText_None::
- .string "NONE$"
-DexText_RightPointingTriangle::
- .string "▶$" @ right-pointing triangle
-DexText_Terminator6::
- .string " $"
-
-gMenuText_WelcomeToHOFAndDexRating:: @ 840E44F
- .string "Welcome to the HALL OF FAME!$"
- .string "Spotted POKéMON: {STR_VAR_1}!\nOwned POKéMON: {STR_VAR_2}!\pPROF. BIRCH’s POKéDEX rating!\pPROF. BIRCH: Let’s see...\p$"
-
-gMenuText_HOFSaving:: @ 840E4CD
- .string "SAVING...\nDON’T TURN OFF THE POWER.$"
-
-gMenuText_HOFCorrupt:: @ 840E4F1
- .string "The HALL OF FAME data is corrupt.$"
-
-gMenuText_HOFNumber:: @ 840E513
- .string "HALL OF FAME No. $"
-
-gMenuText_HOFCongratulations:: @ 840E525
- .string "LEAGUE CHAMPION!\nCONGRATULATIONS!$"
-
-gOtherText_Number2:: @ 840E547
- .string "No. $"
-
-gOtherText_Level3:: @ 840E54C
- .string "Lv. $"
-
-gOtherText_IDNumber:: @ 840E551
- .string "IDNo. /$"
-
-gOtherText_Name:: @ 840E559
- .string "NAME /$"
-
-gOtherText_IDNumber2:: @ 840E560
- .string "IDNo. /$"
-
-gOtherText_BirchInTrouble:: @ 840E568
- .string "{HIGHLIGHT WHITE2}{COLOR DARK_GREY}PROF. BIRCH is in trouble!\nRelease a POKéMON and rescue him!$"
-
-gOtherText_DoYouChoosePoke:: @ 840E5AB
- .string "{HIGHLIGHT WHITE2}{COLOR DARK_GREY}Do you choose this POKéMON?$"
-
-gOtherText_Poke:: @ 840E5CD
- .string "POKéMON$"
-
-gSystemText_SaveErrorExchangeBackup:: @ 840E5D5
- .string "Save error.\pPlease exchange the\nbackup memory.$"
-
-gOtherText_FlyToWhere:: @ 840E604
- .string "FLY to where?$"
-
-OtherText_Use::
- .string "USE$"
-OtherText_Toss::
- .string "TOSS$"
-OtherText_Register::
- .string "REGISTER$"
-OtherText_Give2::
- .string "GIVE$"
-OtherText_CheckTag::
- .string "CHECK TAG$"
-OtherText_Confirm::
- .string "CONFIRM$"
-
-gOtherText_Walk:: @ 840E63B
- .string "WALK$"
-
-gUnknownText_Exit:: @ 840E640
- .string "EXIT$"
-
-gOtherText_CancelNoTerminator:: @ 840E645
- .string "CANCEL$"
-
-gOtherText_CancelWithTerminator:: @ 840E64C
- .string "$CANCEL$"
-
-OtherText_Item::
- .string "ITEM$"
-OtherText_Mail::
- .string "MAIL$"
-OtherText_Take2::
- .string "TAKE$"
-OtherText_Store::
- .string "STORE$"
-
-gOtherText_Check:: @ 840E669
- .string "CHECK$"
-
-gOtherText_None:: @ 840E66F
- .string "NONE$"
-
-gOtherText_ThreeQuestions2:: @ 840E674
- .string "???$"
-
-gOtherText_FiveQuestionsAndSlash:: @ 840E678
- .string "?????$"
- .string "/$"
-
-gOtherText_OneDash:: @ 840E680
- .string "-$"
-
-gOtherText_TwoDashes:: @ 840E682
- .string "--$"
-
-gOtherText_ThreeDashes2:: @ 840E685
- .string "---$"
-
-gOtherText_MaleSymbol2:: @ 840E689
- .string "♂$"
-
-gOtherText_FemaleSymbolAndLv:: @ 840E68B
- .string "♀$"
- .string "Lv.$"
-
-gOtherText_TallPlusAndRightArrow:: @ 840E691
- .string "{TALL_PLUS}$"
- .string "{RIGHT_ARROW}$"
-
-gMenuText_GoBackToPrev:: @ 840E697
- .string "Go back to the\nprevious menu.$"
-
-gOtherText_WhatWillYouDo:: @ 840E6B5
- .string "What would you like to do?$"
-
-gOtherText_xString1:: @ 840E6D0
- .string "×{STR_VAR_1}$"
-
-gOtherText_Berry2:: @ 840E6D4
- .string " BERRY$"
-
-gOtherText_Coins2:: @ 840E6DB
- .string "{STR_VAR_1} COINS$"
-
-gOtherText_CloseBag:: @ 840E6E4
- .string "CLOSE BAG$"
-
-OtherText_TheField3::
- .string "the field.$"
-OtherText_TheBattle::
- .string "the battle.$"
-OtherText_ThePokeList::
- .string "the POKéMON LIST.$"
-OtherText_TheShop::
- .string "the shop.$"
-OtherText_TheField::
- .string "the field.$"
-OtherText_TheField2::
- .string "the field.$"
-OtherText_ThePC::
- .string "the PC.$"
-
- .align 2
-gUnknown_0840E740:: @ 840E740
- .4byte OtherText_TheField3
- .4byte OtherText_TheBattle
- .4byte OtherText_ThePokeList
- .4byte OtherText_TheShop
- .4byte OtherText_TheField
- .4byte OtherText_TheField2
- .4byte OtherText_ThePC
-
-gOtherText_ReturnTo:: @ 840E75C
- .string "Return to$"
-
-gOtherText_WhatWillYouDo2:: @ 840E766
- .string "What would you\nlike to do?$"
-
-gOtherText_CantWriteMail:: @ 840E781
- .string "You can’t write\nMAIL here.$"
-
-gOtherText_NoPokemon:: @ 840E79C
- .string "There is no\nPOKéMON.{PAUSE_UNTIL_PRESS}$"
-
-gOtherText_SwitchWhichItem:: @ 840E7B3
- .string "Switch with which\nitem?$"
-
-gOtherText_CantBeHeld:: @ 840E7CB
- .string "{STR_VAR_1} can’t be held.$"
-
-gOtherText_CantBeHeldHere:: @ 840E7DD
- .string "{STR_VAR_1} can’t be held here.$"
-
-gOtherText_HowManyToDeposit:: @ 840E7F4
- .string "How many do you\nwant to deposit?$"
-
-gOtherText_DepositedItems:: @ 840E815
- .string "Deposited {STR_VAR_2}\n{STR_VAR_1}(s).$"
-
-gOtherText_NoRoomForItems:: @ 840E829
- .string "There’s no room to\nstore items.$"
-
-gOtherText_CantStoreSomeoneItem:: @ 840E849
- .string "You can’t store\nsomeone else’s item\nin the PC.$"
-
-gOtherText_TooImportant:: @ 840E878
- .string "That’s much too\nimportant to toss\nout!$"
-
-gOtherText_HowManyToToss:: @ 840E89F
- .string "Toss out how many?$"
-
-gOtherText_ThrewAwayItem:: @ 840E8B2
- .string "Threw away {STR_VAR_2}\n{STR_VAR_1}(s).$"
-
-gOtherText_OkayToThrowAwayPrompt:: @ 840E8C7
- .string "Is it okay to\nthrow away {STR_VAR_2}\n{STR_VAR_1}(s)?$"
-
-gOtherText_DadsAdvice:: @ 840E8EA
- .string "DAD’s advice...\n{PLAYER}, there’s a time and place for\leverything!{PAUSE_UNTIL_PRESS}$"
-
-gOtherText_CantGetOffBike:: @ 840E929
- .string "You can’t dismount your BIKE here.{PAUSE_UNTIL_PRESS}$"
-
-gOtherText_ItemfinderResponding:: @ 840E94E
- .string "Oh!\nThe machine’s responding!\pThere’s an item buried around here!{PAUSE_UNTIL_PRESS}$"
-
-gOtherText_ItemfinderFoundItem:: @ 840E992
- .string "The machine’s indicating something\nright underfoot!{PAUSE_UNTIL_PRESS}$"
-
-gOtherText_NoResponse:: @ 840E9C8
- .string "... ... ... ... Nope!\nThere’s no response.{PAUSE_UNTIL_PRESS}$"
-
-gOtherText_Coins3:: @ 840E9F5
- .string "Your COINS:\n{STR_VAR_1}{PAUSE_UNTIL_PRESS}$"
-
-gOtherText_BootedTM:: @ 840EA06
- .string "Booted up a TM.$"
-
-gOtherText_BootedHM:: @ 840EA16
- .string "Booted up an HM.$"
-
-gOtherText_ContainsMove:: @ 840EA27
- .string "It contained\n{STR_VAR_1}.\pTeach {STR_VAR_1}\nto a POKéMON?$"
-
-gOtherText_UsedItem:: @ 840EA4F
- .string "{PLAYER} used the\n{STR_VAR_2}.{PAUSE_UNTIL_PRESS}$"
-
-gOtherText_RepelLingers:: @ 840EA61
- .string "But the effects of a REPEL lingered\nfrom earlier.{PAUSE_UNTIL_PRESS}$"
-
-gOtherText_UsedFlute:: @ 840EA95
- .string "{PLAYER} used the\n{STR_VAR_2}.\pWild POKéMON will be lured.{PAUSE_UNTIL_PRESS}$"
-
-gOtherText_UsedRepel:: @ 840EAC3
- .string "{PLAYER} used the\n{STR_VAR_2}.\pWild POKéMON will be repelled.{PAUSE_UNTIL_PRESS}$"
-
-gOtherText_BoxIsFull:: @ 840EAF4
- .string "The BOX is full.{PAUSE_UNTIL_PRESS}$"
-
-gOtherText_Size:: @ 840EB07
- .string "SIZE /$"
-
-gOtherText_Firm:: @ 840EB0E
- .string "FIRM /$"
-
-gContestStatsText_Unknown1:: @ 840EB15
- .string "{STR_VAR_1}.{STR_VAR_2}”$"
-
-ContestStatsText_VerySoft:
- .string "Very soft$"
-ContestStatsText_Soft:
- .string "Soft$"
-ContestStatsText_Hard:
- .string "Hard$"
-ContestStatsText_VeryHard:
- .string "Very hard$"
-ContestStatsText_SuperHard:
- .string "Super hard$"
-ContestStatsText_RedPokeBlock:
- .string "RED {POKEBLOCK}$"
-ContestStatsText_BluePokeBlock:
- .string "BLUE {POKEBLOCK}$"
-ContestStatsText_PinkPokeBlock:
- .string "PINK {POKEBLOCK}$"
-ContestStatsText_GreenPokeBlock:
- .string "GREEN {POKEBLOCK}$"
-ContestStatsText_YellowPokeBlock:
- .string "YELLOW {POKEBLOCK}$"
-ContestStatsText_PurplePokeBlock:
- .string "PURPLE {POKEBLOCK}$"
-ContestStatsText_IndigoPokeBlock:
- .string "INDIGO {POKEBLOCK}$"
-ContestStatsText_BrownPokeBlock:
- .string "BROWN {POKEBLOCK}$"
-ContestStatsText_LiteBluePokeBlock:
- .string "LITEBLUE {POKEBLOCK}$"
-ContestStatsText_OlivePokeBlock:
- .string "OLIVE {POKEBLOCK}$"
-ContestStatsText_GrayPokeBlock:
- .string "GRAY {POKEBLOCK}$"
-ContestStatsText_BlackPokeBlock:
- .string "BLACK {POKEBLOCK}$"
-ContestStatsText_WhitePokeBlock:
- .string "WHITE {POKEBLOCK}$"
-ContestStatsText_GoldPokeBlock:
- .string "GOLD {POKEBLOCK}$"
-
-gContestStatsText_Spicy:: @ 840EBED
- .string "SPICY$"
-
-gContestStatsText_Dry:: @ 840EBF3
- .string "DRY$"
-
-gContestStatsText_Sweet:: @ 840EBF7
- .string "SWEET$"
-
-gContestStatsText_Bitter:: @ 840EBFD
- .string "BITTER$"
-
-gContestStatsText_Sour:: @ 840EC04
- .string "SOUR$"
- .string "TASTY$" @ tasty is probably unused, but feel isn't.
- .string "FEEL$"
-
-gContestStatsText_StowCase:: @ 840EC14
- .string "Stow CASE.$"
-
-gContestStatsText_ThrowAwayPrompt:: @ 840EC1F
- .string "Throw away this\n{STR_VAR_1}?$"
-
-gContestStatsText_WasThrownAway:: @ 840EC33
- .string "The {STR_VAR_1}\nwas thrown away.$"
-
-gContestStatsText_NormallyAte:: @ 840EC4B
- .string "{STR_VAR_1} ate the\n{STR_VAR_2}.{PAUSE_UNTIL_PRESS}$"
-
-gContestStatsText_HappilyAte:: @ 840EC5C
- .string "{STR_VAR_1} happily ate the\n{STR_VAR_2}.{PAUSE_UNTIL_PRESS}$"
-
-gContestStatsText_DisdainfullyAte:: @ 840EC75
- .string "{STR_VAR_1} disdainfully ate the\n{STR_VAR_2}.{PAUSE_UNTIL_PRESS}$"
-
-MartText_Buy:
- .string "BUY$"
-MartText_Sell:
- .string "SELL$"
-MartText_Quit2:
- .string "QUIT$"
-
-gOtherText_QuitShopping:: @ 840ECA1
- .string "Quit shopping.$"
-
-gOtherText_HowManyYouWant:: @ 840ECB0
- .string "{STR_VAR_1}? Certainly.\nHow many would you like?$"
-
-gOtherText_ThatWillBe:: @ 840ECD8
- .string "{STR_VAR_1}? And you wanted {STR_VAR_2}?\nThat will be ¥{STR_VAR_3}.$"
-
-gOtherText_ThatWillBe2:: @ 840ED01
- .string "{STR_VAR_1}, is it?\nThat’ll be ¥{STR_VAR_2}. Do you want it?$"
-
-gOtherText_ThatWillBe3:: @ 840ED2C
- .string "You wanted {STR_VAR_1}?\nThat’ll be ¥{STR_VAR_2}. Will that be okay?$"
-
-gOtherText_HereYouGo:: @ 840ED5E
- .string "Here you go!\nThank you very much.$"
-
-gOtherText_HereYouGo2:: @ 840ED80
- .string "Thank you!\nI’ll send it to your home PC.$"
-
-gOtherText_HereYouGo3:: @ 840EDA9
- .string "Thanks!\nI’ll send it to your PC at home.$"
-
-gOtherText_NotEnoughMoney:: @ 840EDD2
- .string "You don’t have enough money.{PAUSE_UNTIL_PRESS}$"
-
-gOtherText_NoRoomFor:: @ 840EDF1
- .string "You have no more room for items.{PAUSE_UNTIL_PRESS}$"
-
-gOtherText_SpaceForIsFull:: @ 840EE14
- .string "The space for {STR_VAR_1} is full.{PAUSE_UNTIL_PRESS}$"
-
-gOtherText_AnythingElse:: @ 840EE30
- .string "Is there anything else I can help\nyou with?$"
-
-gOtherText_CanIHelpYou:: @ 840EE5C
- .string "Can I help you with anything else?$"
-
-gOtherText_FreePremierBall:: @ 840EE7F
- .string "I’ll throw in a PREMIER BALL, too.{PAUSE_UNTIL_PRESS}$"
-
-gOtherText_CantBuyThat:: @ 840EEA4
- .string "{STR_VAR_2}? Oh, no.\nI can’t buy that.{PAUSE_UNTIL_PRESS}$"
-
-gOtherText_HowManyToSell:: @ 840EEC4
- .string "{STR_VAR_2}?\nHow many would you like to sell?$"
-
-gOtherText_CanPay:: @ 840EEE9
- .string "I can pay ¥{STR_VAR_1}.\nWould that be okay?$"
-
-gOtherText_SoldItem:: @ 840EF0C
- .string "Turned over the {STR_VAR_2}\nand received ¥{STR_VAR_1}.$"
-
-OtherText_Money::
- .string "¥{STR_VAR_1}$"
-OtherText_Shift::
- .string "SHIFT$"
-OtherText_SendOut::
- .string "SEND OUT$"
-OtherText_Switch2::
- .string "SWITCH$"
-OtherText_Summary::
- .string "SUMMARY$"
-OtherText_Moves::
- .string "MOVES$"
-OtherText_Enter2::
- .string "ENTER$"
-OtherText_NoEntry::
- .string "NO ENTRY$"
-OtherText_Take::
- .string "TAKE$"
-OtherText_Read2::
- .string "READ$"
-
-gOtherText_Hp2:: @ 840EF72
- .string "HP$"
-
-gOtherText_SpAtk2:: @ 840EF75
- .string "SP. ATK$"
-
-gOtherText_SpDef2:: @ 840EF7D
- .string "SP. DEF$"
-
-gOtherText_WontHaveAnyEffect:: @ 840EF85
- .string "It won’t have any effect.{PAUSE_UNTIL_PRESS}$"
-
-gOtherText_CantUseOnPoke:: @ 840EFA1
- .if REVISION >= 1
- .string "This can’t be used on\nthat POKéMON.{PAUSE_UNTIL_PRESS}$"
- .else
- .string "This item can’t be used on\nthat POKéMON.{PAUSE_UNTIL_PRESS}$"
- .endif
-
-gOtherText_CantBeSwitched:: @ 840EFCC
- .string "{STR_VAR_1} can’t be switched\nout!{PAUSE_UNTIL_PRESS}$"
-
-gOtherText_AlreadyBattle:: @ 840EFE8
- .string "{STR_VAR_1} is already\nin battle!{PAUSE_UNTIL_PRESS}$"
-
-gOtherText_AlreadySelected:: @ 840F003
- .string "{STR_VAR_1} has already been\nselected.{PAUSE_UNTIL_PRESS}$"
-
-gOtherText_NoEnergyLeft:: @ 840F023
- .string "{STR_VAR_1} has no energy\nleft to battle!{PAUSE_UNTIL_PRESS}$"
-
-gOtherText_CantSwitchPokeWithYours:: @ 840F046
- .string "You can’t switch {STR_VAR_1}’s\nPOKéMON with one of yours!{PAUSE_UNTIL_PRESS}$"
-
-gOtherText_EGGCantBattle:: @ 840F079
- .string "An EGG can’t battle!{PAUSE_UNTIL_PRESS}$"
-
-gOtherText_CantBeUsedBadge:: @ 840F090
- .string "This can’t be used until a new\nBADGE is obtained.$"
-
-gOtherText_NoMoreThreePoke:: @ 840F0C2
- .string "No more than three POKéMON\nmay enter.$"
-
-gOtherText_SendRemovedMailPrompt:: @ 840F0E8
- .string "Send the removed MAIL to\nyour PC?$"
-
-gOtherText_MailWasSent:: @ 840F10A
- .string "The MAIL was sent to your PC.{PAUSE_UNTIL_PRESS}$"
-
-gOtherText_MailboxIsFull:: @ 840F12A
- .string "Your PC’s MAILBOX is full.{PAUSE_UNTIL_PRESS}$"
-
-gOtherText_MailRemovedMessageLost:: @ 840F147
- .string "If the MAIL is removed, the\nmessage will be lost. Okay?$"
-
-gOtherText_MailMustBeRemoved:: @ 840F17F
- .string "MAIL must be removed before\nholding an item.{PAUSE_UNTIL_PRESS}$"
-
-gOtherText_WasGivenToHold:: @ 840F1AE
- .string "{STR_VAR_1} was given the\n{STR_VAR_2} to hold.{PAUSE_UNTIL_PRESS}$"
-
-gOtherText_AlreadyHolding:: @ 840F1CD
- .string "{STR_VAR_1} is already holding\none {STR_VAR_2}.\pWould you like to switch the\ntwo items?$"
-
-gOtherText_NotHoldingAnything:: @ 840F213
- .string "{STR_VAR_1} isn’t\nholding anything.{PAUSE_UNTIL_PRESS}$"
-
-gOtherText_ReceivedTheThingFrom:: @ 840F230
- .string "Received the {STR_VAR_2}\nfrom {STR_VAR_1}.{PAUSE_UNTIL_PRESS}$"
-
-gOtherText_MailTaken:: @ 840F24B
- .string "MAIL was taken from the\nPOKéMON.{PAUSE_UNTIL_PRESS}$"
-
-gOtherText_TakenAndReplaced:: @ 840F26E
- .string "The {STR_VAR_2} was taken and\nreplaced with the {STR_VAR_1}.{PAUSE_UNTIL_PRESS}$"
-
-gOtherText_PokeHoldingItemCantMail:: @ 840F29B
- .string "This POKéMON is holding an item.\nIt cannot hold MAIL.{PAUSE_UNTIL_PRESS}$"
-
-gOtherText_MailTransferredMailbox:: @ 840F2D3
- .string "MAIL was transferred from\nthe MAILBOX.{PAUSE_UNTIL_PRESS}$"
-
-gOtherText_BagFullCannotRemoveItem:: @ 840F2FC
- .string "The BAG is full. The POKéMON’s\nitem could not be removed.{PAUSE_UNTIL_PRESS}$"
-
-gOtherText_LearnedMove:: @ 840F338
- .string "{STR_VAR_1} learned\n{STR_VAR_2}!$"
-
-gOtherText_NotCompatible:: @ 840F347
- .string "{STR_VAR_1} and {STR_VAR_2}\nare not compatible.\p{STR_VAR_2} can’t be learned.{PAUSE_UNTIL_PRESS}$"
-
-gOtherText_WantsToLearn:: @ 840F37C
- .string "{STR_VAR_1} wants to learn the\nmove {STR_VAR_2}.\pHowever, {STR_VAR_1} already\nknows four moves.\pShould a move be deleted and\nreplaced with {STR_VAR_2}?$"
-
-gOtherText_StopTryingTo:: @ 840F3F0
- .string "Stop trying to teach\n{STR_VAR_2}?$"
-
-gOtherText_DidNotLearnMove2:: @ 840F409
- .string "{STR_VAR_1} did not learn the\nmove {STR_VAR_2}.{PAUSE_UNTIL_PRESS}$"
-
-gOtherText_WhichMoveToForget2:: @ 840F429
- .string "Which move should be forgotten?{PAUSE_UNTIL_PRESS}$"
-
-gOtherText_ForgetMove123_2:: @ 840F44B
- .string "{PAUSE 32}1, {PAUSE 15}2, and{PAUSE 15}... {PAUSE 15}... {PAUSE 15}... {PAUSE 15}{PLAY_SE SE_KON}Poof!\p{STR_VAR_1} forgot how to\nuse {STR_VAR_2}.\pAnd...{PAUSE_UNTIL_PRESS}$"
-
-gOtherText_AlreadyKnows:: @ 840F49E
- .string "{STR_VAR_1} already knows\n{STR_VAR_2}.{PAUSE_UNTIL_PRESS}$"
-
-gOtherText_HPRestoredBy:: @ 840F4B5
- .string "{STR_VAR_1}’s HP was restored by\n{STR_VAR_2} points.{PAUSE_UNTIL_PRESS}$"
-
-gOtherText_CuredPoisoning:: @ 840F4DA
- .string "{STR_VAR_1} was cured of its\npoisoning.{PAUSE_UNTIL_PRESS}$"
-
-gOtherText_CuredParalysis:: @ 840F4FB
- .string "{STR_VAR_1} was cured of\nparalysis.{PAUSE_UNTIL_PRESS}$"
-
-gOtherText_WokeUp:: @ 840F518
- .string "{STR_VAR_1} woke up.{PAUSE_UNTIL_PRESS}$"
-
-gOtherText_BurnHealed:: @ 840F526
- .string "{STR_VAR_1}’s burn was healed.{PAUSE_UNTIL_PRESS}$"
-
-gOtherText_ThawedOut:: @ 840F53E
- .string "{STR_VAR_1} was thawed out.{PAUSE_UNTIL_PRESS}$"
-
-gOtherText_PPRestored:: @ 840F553
- .string "PP was restored.{PAUSE_UNTIL_PRESS}$"
-
-gOtherText_RegainedHealth:: @ 840F566
- .string "{STR_VAR_1} regained health.{PAUSE_UNTIL_PRESS}$"
-
-gOtherText_BecameHealthy:: @ 840F57C
- .string "{STR_VAR_1} became healthy.{PAUSE_UNTIL_PRESS}$"
-
-gOtherText_PPIncreased:: @ 840F591
- .string "{STR_VAR_1}’s PP increased.{PAUSE_UNTIL_PRESS}$"
-
-gOtherText_ElevatedTo:: @ 840F5A6
- .string "{STR_VAR_1} was elevated to\nLv. {STR_VAR_2}.$"
-
-gOtherText_WasRaised:: @ 840F5C1
- .string "{STR_VAR_1}’s {STR_VAR_2} was\nraised.{PAUSE_UNTIL_PRESS}$"
-
-gOtherText_SnapConfusion:: @ 840F5D7
- .string "{STR_VAR_1} snapped out of its\nconfusion.{PAUSE_UNTIL_PRESS}$"
-
-gOtherText_GotOverLove:: @ 840F5FA
- .string "{STR_VAR_1} got over its\ninfatuation.{PAUSE_UNTIL_PRESS}$"
-
-OtherText_ChoosePoke::
- .string "Choose a POKéMON.$"
-OtherText_MovePokeTo::
- .string "Move to where?$"
-OtherText_TeachWhat::
- .string "Teach which POKéMON?$"
-OtherText_UseWhat::
- .string "Use on which POKéMON?$"
-OtherText_GiveWhat::
- .string "Give to which POKéMON?$"
-OtherText_DoWhat::
- .string "Do what with {STR_VAR_1}?$"
-OtherText_NothingToCut::
- .string "There’s nothing to CUT.$"
-OtherText_CantSurf::
- .string "You can’t SURF here.$"
-OtherText_AlreadySurfing::
- .string "You’re already SURFING.$"
-OtherText_CantUseThatHere::
- .string "Can’t use that here.$"
-OtherText_RestoreWhatMove::
- .string "Restore which move?$"
-OtherText_BoostPP::
- .string "Boost PP of which move?$"
-OtherText_DoWhatWithItem::
- .string "Do what with an item?$"
-OtherText_NoPokeForBattle::
- .string "No POKéMON for battle!$"
-OtherText_ChoosePoke2::
- .string "Choose a POKéMON.$"
-OtherText_NotEnoughHP::
- .string "Not enough HP...$"
-OtherText_ThreePokeNeeded::
- .string "Three POKéMON are needed.$"
-OtherText_PokeCantBeSame::
- .string "POKéMON can’t be the same.$"
-OtherText_NoIdenticalHoldItems::
- .string "No identical hold items.$"
-OtherText_TeachWhichPoke::
- .string "Teach which POKéMON?$"
-
-gOtherText_Attack:: @ 840F7C6
- .string "ATTACK$"
-
-gOtherText_Defense:: @ 840F7CD
- .string "DEFENSE$"
-
-gOtherText_SpAtk:: @ 840F7D5
- .string "SP. ATK$"
-
-gOtherText_SpDef:: @ 840F7DD
- .string "SP. DEF$"
-
-gOtherText_Speed:: @ 840F7E5
- .string "SPEED$"
-
-gOtherText_HP:: @ 840F7EB
- .string "HP$"
-
-gOtherText_Terminator18:: @ 840F7EE
- .string "$"
-
-gOtherText_OriginalTrainer:: @ 840F7EF
- .string "OT/$"
-
-gOtherText_Type2:: @ 840F7F3
- .string "TYPE/$"
-
-gOtherText_Power2:: @ 840F7F9
- .string "POWER$"
-
-gOtherText_Accuracy2:: @ 840F7FF
- .string "ACCURACY$"
-
-gOtherText_Appeal2:: @ 840F808
- .string "APPEAL$"
-
-gOtherText_Jam2:: @ 840F80F
- .string "JAM$"
-
-gOtherText_Status:: @ 840F813
- .string "STATUS$"
-
-gOtherText_ExpPoints:: @ 840F81A
- .string "EXP. POINTS$"
-
-gOtherText_NextLv:: @ 840F826
- .string "NEXT LV.$"
-
-gOtherText_Ribbons00:: @ 840F82F
- .string "RIBBONS: 00$"
-
-OtherText_Event::
- .string "EVENT$"
-OtherText_Switch::
- .string "SWITCH$"
-OtherText_PokeInfo::
- .string "POKéMON INFO$"
-OtherText_PokeSkills::
- .string "POKéMON SKILLS$"
-OtherText_BattleMoves::
- .string "BATTLE MOVES$"
-OtherText_ContestMoves::
- .string "C0NTEST MOVES$" @why the l33t 0, that's stupid
-OtherText_Info::
- .string "INFO$"
-
-gOtherText_EggLongTime:: @ 840F884
- .string "It looks like this EGG will\ntake a long time to hatch.$"
-
-gOtherText_EggSomeTime:: @ 840F8BB
- .string "What will hatch from this?\nIt will take some time.$"
-
-gOtherText_EggSoon:: @ 840F8EE
- .string "It moves occasionally.\nIt should hatch soon.$"
-
-gOtherText_EggAbout:: @ 840F91B
- .string "It’s making sounds.\nIt’s about to hatch!$"
-
-gOtherText_CantForgetHMs:: @ 840F944
- .string "HM moves can’t be\nforgotten now.$"
-
-gOtherText_PlayersBase:: @ 840F965
- .string "’s BASE$"
-
-gOtherText_OkayToDeleteFromRegistry:: @ 840F96D
- .string "Is it okay to delete {STR_VAR_1}\nfrom the REGISTRY?$"
-
-gOtherText_RegisteredDataDeleted:: @ 840F998
- .string "The registered data was deleted.{PAUSE_UNTIL_PRESS}$"
-
-gSecretBaseText_NoRegistry:: @ 840F9BB
- .string "There is no REGISTRY.{PAUSE_UNTIL_PRESS}$"
-
-SecretBaseText_DelRegist::
- .string "DEL REGIST.$"
-SecretBaseText_Decorate::
- .string "DECORATE$"
-SecretBaseText_PutAway::
- .string "PUT AWAY$"
-SecretBaseText_Toss::
- .string "TOSS$"
-SecretBaseText_PutOutDecor::
- .string "Put out the selected decoration item.$"
-SecretBaseText_StoreChosenDecor::
- .string "Store the chosen decoration in the PC.$"
-SecretBaseText_ThrowAwayDecor::
- .string "Throw away unwanted decorations.$"
-
-gSecretBaseText_NoDecors:: @ 840FA64
- .string "There are no decorations.{PAUSE_UNTIL_PRESS}$"
-
-SecretBaseText_Desk::
- .string "DESK$"
-SecretBaseText_Chair::
- .string "CHAIR$"
-SecretBaseText_Plant::
- .string "PLANT$"
-SecretBaseText_Ornament::
- .string "ORNAMENT$"
-SecretBaseText_Mat::
- .string "MAT$"
-SecretBaseText_Poster::
- .string "POSTER$"
-SecretBaseText_Doll::
- .string "DOLL$"
-SecretBaseText_Cushion::
- .string "CUSHION$"
-
-gSecretBaseText_GoldRank:: @ 840FAB2
- .string "GOLD$"
-
-gSecretBaseText_SilverRank:: @ 840FAB7
- .string "SILVER$"
-
-gSecretBaseText_PlaceItHere:: @ 840FABE
- .string "Place it here?$"
-
-gSecretBaseText_CantBePlacedHere:: @ 840FACD
- .string "It can’t be placed here.$"
-
-gSecretBaseText_CancelDecorating:: @ 840FAE6
- .string "Cancel decorating?$"
-
-gSecretBaseText_InUseAlready:: @ 840FAF9
- .string "This is in use already.$"
-
-gSecretBaseText_NoMoreDecor:: @ 840FB11
- .string "No more decorations can be placed.\nThe most that can be placed is {STR_VAR_1}.$"
-
-gSecretBaseText_NoMoreDecor2:: @ 840FB57
- .string "No more decorations can be placed.\nThe most that can be placed is {STR_VAR_1}.$"
- .string "This can’t be placed here.\nIt must be on a DESK, etc.$"
-
-gSecretBaseText_DecorCantPlace:: @ 840FBD3
- .string "This decoration can’t be placed in\nyour own room.$"
-
-gSecretBaseText_DecorInUse:: @ 840FC05
- .string "This decoration is in use.\nIt can’t be thrown away.$"
-
-gSecretBaseText_WillBeDiscarded:: @ 840FC39
- .string "This {STR_VAR_1} will be discarded.\nIs that okay?$"
-
-gSecretBaseText_DecorThrownAway:: @ 840FC62
- .string "The decoration item was thrown away.$"
-
-gSecretBaseText_StopPuttingAwayDecor:: @ 840FC87
- .string "Stop putting away decorations?$"
-
-gSecretBaseText_NoDecor:: @ 840FCA6
- .string "There is no decoration item here.$"
-
-gSecretBaseText_ReturnDecor:: @ 840FCC8
- .string "Return this decoration to the PC?$"
-
-gSecretBaseText_DecorReturned:: @ 840FCEA
- .string "The decoration was returned to the PC.$"
-
-gSecretBaseText_NoDecorInUse:: @ 840FD11
- .string "There are no decorations in use.{PAUSE_UNTIL_PRESS}$"
-
-SecretBaseText_Tristan::
- .string "TRISTAN$"
-SecretBaseText_Philip::
- .string "PHILIP$"
-SecretBaseText_Dennis::
- .string "DENNIS$"
-SecretBaseText_Roberto::
- .string "ROBERTO$"
-SecretBaseText_TurnOff::
- .string "TURN OFF$"
-SecretBaseText_Decoration::
- .string "DECORATION$"
-SecretBaseText_ItemStorage::
- .string "ITEM STORAGE$"
-
-gPCText_Mailbox:: @ 840FD73
- .string "MAILBOX$"
-
-PCText_DepositItem::
- .string "DEPOSIT ITEM$"
-PCText_WithdrawItem::
- .string "WITHDRAW ITEM$"
-PCText_TossItem::
- .string "TOSS ITEM$"
-PCText_StoreItems::
- .string "Store items in the PC.$"
-PCText_TakeOutItems::
- .string "Take out items from the PC.$"
-PCText_ThrowAwayItems::
- .string "Throw away items stored in the PC.$"
-
-gOtherText_NoItems:: @ 840FDF6
- .string "There are no items.{PAUSE_UNTIL_PRESS}$"
-
-gOtherText_NoMoreRoom:: @ 840FE0C
- .string "There is no more\nroom in the BAG.$"
-
-gOtherText_HowManyToWithdraw:: @ 840FE2E
- .string "How many do you\nwant to withdraw?$"
-
-gOtherText_WithdrewThing:: @ 840FE50
- .string "Withdrew {STR_VAR_2}\n{STR_VAR_1}(s).$"
-
-OtherText_Read:
- .string "READ$"
-
-gOtherText_MoveToBag:: @ 840FE68
- .string "MOVE TO BAG$"
-
-OtherText_Give:
- .string "GIVE$"
-
-gOtherText_NoMailHere:: @ 840FE79
- .string "There’s no MAIL here.{PAUSE_UNTIL_PRESS}$"
-
-gOtherText_WhatWillYouDoMail:: @ 840FE91
- .string "What would you like to do with\n{STR_VAR_1}’s MAIL?$"
-
-gOtherText_MessageWillBeLost:: @ 840FEBB
- .string "The message will be lost.\nIs that okay?$"
-
-gOtherText_BagIsFull:: @ 840FEE3
- .string "The BAG is full.{PAUSE_UNTIL_PRESS}$"
-
-gOtherText_MailWasReturned:: @ 840FEF6
- .string "The MAIL was returned to the BAG\nwith its message erased.{PAUSE_UNTIL_PRESS}$"
-
-gOtherText_Dad:: @ 840FF32
- .string "DAD$"
-
-gOtherText_Mom:: @ 840FF36
- .string "MOM$"
-
-gOtherText_Wallace:: @ 840FF3A
- .string "WALLACE$"
-
-gOtherText_Steven:: @ 840FF42
- .string "STEVEN$"
-
-gOtherText_Brawly:: @ 840FF49
- .string "BRAWLY$"
-
-gOtherText_Winona:: @ 840FF50
- .string "WINONA$"
-
-gOtherText_Phoebe:: @ 840FF57
- .string "PHOEBE$"
-
-gOtherText_Glacia:: @ 840FF5E
- .string "GLACIA$"
-
-gContestText_ContestWinner:: @ 840FF65
- .string "CONTEST WINNER\n$"
-
-gOtherText_Unknown1:: @ 840FF75
- .string "’s $"
-
-OtherText_Cool::
- .string "COOL $"
-OtherText_Beauty2::
- .string "BEAUTY $"
-OtherText_Cute::
- .string "CUTE $"
-OtherText_Smart::
- .string "SMART $"
-OtherText_Tough::
- .string "TOUGH $"
-OtherText_NonstopSuperCool::
- .string "Nonstop super-cool -\nthe inestimable $"
-OtherText_Terminator6::
- .string "$"
-OtherText_GoodLookingPoke::
- .string "Hey, there!\nThe good-looking POKéMON $"
-OtherText_Terminator7::
- .string "$"
-OtherText_MarvelousGreat::
- .string "The marvelous, wonderful, and\nvery great $"
-OtherText_Terminator8::
- .string "$"
-OtherText_CenturyLastVenus::
- .string "This century’s last Venus -\nthe beautiful $"
-OtherText_Terminator9::
- .string "$"
-OtherText_Terminator10::
- .string "$"
-OtherText_DazzlingSlime::
- .string "’s dazzling,\nglittering smile$"
-OtherText_PokeCenterIdol::
- .string "POKéMON CENTER’s super idol -\nthe incomparable $"
-OtherText_Terminator11::
- .string "$"
-OtherText_LovelyAndSweet::
- .string "The lovely and sweet $"
-OtherText_Terminator12::
- .string "$"
-OtherText_ThePretty::
- .string "The pretty $"
-OtherText_WinningPortrait::
- .string "’s\nwinning portrait$"
-OtherText_GiveUsWink::
- .string "Give us a wink!\nThe cutie POKéMON $"
-OtherText_Terminator13::
- .string "$"
-OtherText_SmartnessMaestro::
- .string "The smartness maestro -\nThe wise POKéMON $"
-OtherText_Terminator14::
- .string "$"
-OtherText_ChosenPokeAmong::
- .string "The chosen POKéMON -\nThe one among POKéMON $"
-OtherText_Terminator15::
- .string "$"
-OtherText_TheExcellent::
- .string "The excellent $"
-OtherText_ItsMomentOfElegance::
- .string "’s\nmoment of elegance$"
-OtherText_PowerfullyMuscular::
- .string "The powerfully muscular\nspeedster $"
-OtherText_Terminator16::
- .string "$"
-OtherText_StrongErEst::
- .string "The strong, stronger, and\nstrongest $"
-OtherText_Terminator17::
- .string "$"
-OtherText_MightyTough::
- .string "The mighty tough\nhyper POKéMON $"
-OtherText_Exclamation::
- .string "!$"
-OtherText_Petalburg::
- .string "PETALBURG$"
-OtherText_Slateport::
- .string "SLATEPORT$"
-OtherText_Littleroot::
- .string "LITTLEROOT$"
-OtherText_Lilycove::
- .string "LILYCOVE$"
-OtherText_Dewford::
- .string "DEWFORD$"
-OtherText_Enter::
- .string "ENTER$"
-OtherText_Info3::
- .string "INFO$"
-OtherText_WhatsAContest::
- .string "What’s a CONTEST?$"
-OtherText_TypesOfContest::
- .string "Types of CONTESTS$"
-OtherText_Ranks::
- .string "Ranks$"
-OtherText_Judging::
- .string "Judging$"
-OtherText_CoolContest::
- .string "COOL CONTEST$"
-OtherText_BeautyContest::
- .string "BEAUTY CONTEST$"
-OtherText_CuteContest::
- .string "CUTE CONTEST$"
-OtherText_SmartContest::
- .string "SMART CONTEST$"
-OtherText_ToughContest::
- .string "TOUGH CONTEST$"
-OtherText_Decoration::
- .string "DECORATION$"
-OtherText_PackUp::
- .string "PACK UP$"
-OtherText_Count::
- .string "COUNT$"
-OtherText_Registry::
- .string "REGISTRY$"
-OtherText_Information::
- .string "INFORMATION$"
-OtherText_Mach::
- .string "MACH$"
-OtherText_Acro::
- .string "ACRO$"
-OtherText_Poison::
- .string "PSN$"
-OtherText_Paralysis::
- .string "PAR$"
-OtherText_Sleep::
- .string "SLP$"
-OtherText_Burn::
- .string "BRN$"
-OtherText_Frozen::
- .string "FRZ$"
-OtherText_Quit::
- .string "QUIT$"
-OtherText_SawIt::
- .string "Saw it$"
-OtherText_NotYet::
- .string "Not yet$"
-OtherText_Yes::
- .string "YES$"
-OtherText_No::
- .string "NO$"
-OtherText_Info2::
- .string "INFO$"
-OtherText_SingleBattle::
- .string "SINGLE BATTLE$"
-OtherText_DoubleBattle::
- .string "DOUBLE BATTLE$"
-OtherText_MultiBattle::
- .string "MULTI BATTLE$"
-OtherText_MrBriney::
- .string "MR. BRINEY$"
-OtherText_MakeAChallenge::
- .string "Make a challenge.$"
-OtherText_ObtainInformation::
- .string "Obtain information.$"
-OtherText_Lv50_2::
- .string "LV. 50$"
-OtherText_Lv100_2::
- .string "LV. 100$"
-OtherText_Zigzagoon::
- .string "ZIGZAGOON$"
-OtherText_Nincada::
- .string "NINCADA$"
-OtherText_Poochyena::
- .string "POOCHYENA$"
-OtherText_Nincada2::
- .string "NINCADA$"
-OtherText_Lotad::
- .string "LOTAD$"
-OtherText_Roselia::
- .string "ROSELIA$"
-OtherText_Shroomish::
- .string "SHROOMISH$"
-OtherText_Nincada3::
- .string "NINCADA$"
-OtherText_Surskit::
- .string "SURSKIT$"
-OtherText_Treecko::
- .string "TREECKO$"
-OtherText_Torchic::
- .string "TORCHIC$"
-OtherText_Mudkip::
- .string "MUDKIP$"
-OtherText_Seedot::
- .string "SEEDOT$"
-OtherText_Shroomish2::
- .string "SHROOMISH$"
-OtherText_Spinda::
- .string "SPINDA$"
-OtherText_Shroomish3::
- .string "SHROOMISH$"
-OtherText_Zigzagoon2::
- .string "ZIGZAGOON$"
-OtherText_Wurmple::
- .string "WURMPLE$"
-OtherText_PokeBall::
- .string "POKé BALL$"
-OtherText_SuperPotion::
- .string "SUPER POTION$"
-OtherText_SamePrice::
- .string "Same price$"
-OtherText_Yen135::
- .string "¥135$"
-OtherText_Yen155::
- .string "¥155$"
-OtherText_Yen175::
- .string "¥175$"
-OtherText_CostMore::
- .string "They will cost more.$"
-OtherText_CostLess::
- .string "They will cost less.$"
-OtherText_SamePrice2::
- .string "Same price$"
-OtherText_MaleSymbol::
- .string "♂$"
-OtherText_FemaleSymbol::
- .string "♀$"
-OtherText_Neither::
- .string "Neither$"
-OtherText_Males::
- .string "Males$"
-OtherText_Females::
- .string "Females$"
-OtherText_SameNumber::
- .string "Same number$"
-OtherText_Male::
- .string "Male$"
-OtherText_Female::
- .string "Female$"
-OtherText_ItDepends::
- .string "It depends$"
-OtherText_Six2::
- .string "6$"
-OtherText_Eight2::
- .string "8$"
-OtherText_Ten::
- .string "10$"
-OtherText_One::
- .string "1$"
-OtherText_Two::
- .string "2$"
-OtherText_Three::
- .string "3$"
-OtherText_Six::
- .string "6$"
-OtherText_Seven::
- .string "7$"
-OtherText_Eight::
- .string "8$"
-OtherText_FreshWater::
- .string "FRESH WATER{CLEAR_TO 0x48}¥200$"
-OtherText_SodaPop::
- .string "SODA POP{CLEAR_TO 0x48}¥300$"
-OtherText_Lemonade::
- .string "LEMONADE{CLEAR_TO 0x48}¥350$"
-OtherText_HowToRide::
- .string "HOW TO RIDE$"
-OtherText_HowToTurn::
- .string "HOW TO TURN$"
-OtherText_SandySlopes::
- .string "SANDY SLOPES$"
-OtherText_Wheelies::
- .string "WHEELIES$"
-OtherText_BunnyHops::
- .string "BUNNY-HOPS$"
-OtherText_Jumping::
- .string "JUMPING$"
-OtherText_Satisfied::
- .string "Satisfied$"
-OtherText_Dissatisfied::
- .string "Dissatisfied$"
-OtherText_Deepseatooth::
- .string "DEEPSEATOOTH$"
-OtherText_Deepseascale::
- .string "DEEPSEASCALE$"
-OtherText_BlueFlute2::
- .string "BLUE FLUTE$"
-OtherText_YellowFlute2::
- .string "YELLOW FLUTE$"
-OtherText_RedFlute2::
- .string "RED FLUTE$"
-OtherText_WhiteFlute2::
- .string "WHITE FLUTE$"
-OtherText_BlackFlute2::
- .string "BLACK FLUTE$"
-OtherText_GlassChair::
- .string "GLASS CHAIR$"
-OtherText_GlassDesk::
- .string "GLASS DESK$"
-OtherText_TreeckoDoll::
- .string "TREECKO DOLL 1,000 COINS$"
-OtherText_TorchicDoll::
- .string "TORCHIC DOLL 1,000 COINS$"
-OtherText_MudkipDoll::
- .string "MUDKIP DOLL 1,000 COINS$"
-OtherText_50Coins::
- .string " 50 COINS ¥1,000$"
-OtherText_500Coins::
- .string "500 COINS ¥10,000$"
-OtherText_Excellent::
- .string "Excellent!$"
-OtherText_NotSoHot::
- .string "Not so hot$"
-OtherText_RedShard::
- .string "RED SHARD$"
-OtherText_YellowShard::
- .string "YELLOW SHARD$"
-OtherText_BlueShard::
- .string "BLUE SHARD$"
-OtherText_GreenShard::
- .string "GREEN SHARD$"
-OtherText_BattleTower::
- .string "BATTLE TOWER$"
-OtherText_Right::
- .string "Right$"
-OtherText_Left::
- .string "Left$"
-OtherText_TM32::
- .string "TM32 1,500 COINS$"
-OtherText_TM29::
- .string "TM29 3,500 COINS$"
-OtherText_TM35::
- .string "TM35 4,000 COINS$"
-OtherText_TM24::
- .string "TM24 4,000 COINS$"
-OtherText_TM13::
- .string "TM13 4,000 COINS$"
-OtherText_1F_2::
- .string "1F$"
-OtherText_2F_2::
- .string "2F$"
-OtherText_3F_2::
- .string "3F$"
-OtherText_4F_2::
- .string "4F$"
-OtherText_5F_2::
- .string "5F$"
-OtherText_Cool2::
- .string "COOL$"
-OtherText_Beauty3::
- .string "BEAUTY$"
-OtherText_Cute2::
- .string "CUTE$"
-OtherText_Smart2::
- .string "SMART$"
-OtherText_Tough2::
- .string "TOUGH$"
-OtherText_Normal::
- .string "NORMAL$"
-OtherText_Super::
- .string "SUPER$"
-OtherText_Hyper::
- .string "HYPER$"
-OtherText_Master::
- .string "MASTER$"
-OtherText_Cool3::
- .string "COOL$"
-OtherText_Beauty4::
- .string "BEAUTY$"
-OtherText_Cute3::
- .string "CUTE$"
-OtherText_Smart3::
- .string "SMART$"
-OtherText_Tough3::
- .string "TOUGH$"
-OtherText_Items::
- .string "ITEMS$"
-OtherText_KeyItems::
- .string "KEY ITEMS$"
-OtherText_Balls::
- .string "BALLS$"
-OtherText_TMsHMs::
- .string "TMs & HMs$"
-OtherText_Berries::
- .string "BERRIES$"
-
-gPCText_SomeonesPC:: @ 8410753
- .string "SOMEONE’S PC$"
-
-gPCText_LanettesPC:: @ 8410760
- .string "LANETTE’S PC$"
-
-gPCText_PlayersPC:: @ 841076D
- .string "{PLAYER}’s PC$"
-
-gPCText_HallOfFame:: @ 8410775
- .string "HALL OF FAME$"
-
-gPCText_LogOff:: @ 8410782
- .string "LOG OFF$"
-
-gOtherText_99Times:: @ 841078A
- .string "99 times +$"
-
-gOtherText_1Minute:: @ 8410795
- .string "1 minute +$"
-
-gOtherText_Seconds:: @ 84107A0
- .string " seconds$"
-
-gOtherText_Times:: @ 84107A9
- .string " times$"
- .string ".$"
-
-gOtherText_BigGuy:: @ 84107B2
- .string "Big guy$"
-
-gOtherText_BigGirl:: @ 84107BA
- .string "Big girl$"
-
-gOtherText_Son:: @ 84107C3
- .string "son$"
-
-gOtherText_Daughter:: @ 84107C7
- .string "daughter$"
-
-OtherText_BlueFlute:
- .string "BLUE FLUTE$"
-OtherText_YellowFlute:
- .string "YELLOW FLUTE$"
-OtherText_RedFlute:
- .string "RED FLUTE$"
-OtherText_WhiteFlute:
- .string "WHITE FLUTE$"
-OtherText_BlackFlute:
- .string "BLACK FLUTE$"
-OtherText_PrettyChair:
- .string "PRETTY CHAIR$"
-OtherText_PrettyDesk:
- .string "PRETTY DESK$"
-OtherText_1F:
- .string "1F$"
-OtherText_2F:
- .string "2F$"
-OtherText_3F:
- .string "3F$"
-OtherText_4F:
- .string "4F$"
-OtherText_5F:
- .string "5F$"
-OtherText_6F:
- .string "6F$"
-OtherText_7F:
- .string "7F$"
-OtherText_8F:
- .string "8F$"
-OtherText_9F:
- .string "9F$"
-OtherText_10F:
- .string "10F$"
-OtherText_11F:
- .string "11F$"
-OtherText_B1F:
- .string "B1F$"
-OtherText_B2F:
- .string "B2F$"
-OtherText_B3F:
- .string "B3F$"
-OtherText_B4F:
- .string "B4F$"
-OtherText_Rooftop:
- .string "ROOFTOP$"
-
-gOtherText_NowOn:: @ 841085E
- .string "Now on:$"
-
-gPCText_Cancel:: @ 8410866
- .string "CANCEL$"
-
-PCText_ExitBox:
- .string "Exit from the BOX.$"
-PCText_WhatYouDo:
- .string "What would you like to do?$"
-PCText_PickATheme:
- .string "Please pick a theme.$"
-PCText_PickAWallpaper:
- .string "Please pick out wallpaper.$"
-PCText_IsSelected:
- .string " is selected.$"
-PCText_JumpToWhichBox:
- .string "Jump to which BOX?$"
-PCText_DepositInWhichBox:
- .string "Deposit in which BOX?$"
-PCText_WasDeposited:
- .string " was deposited.$"
-PCText_BoxIsFull:
- .string "The BOX is full.$"
-PCText_ReleasePoke:
- .string "Release this POKéMON?$"
-PCText_WasReleased:
- .string " was released.$"
-PCText_ByeBye:
- .string "Bye-bye, !$"
-PCText_MarkPoke:
- .string "Mark your POKéMON.$"
-PCText_LastPoke:
- .string "That’s your last POKéMON!$"
-PCText_PartyFull:
- .string "Your party’s full!$"
-PCText_HoldingPoke:
- .string "You’re holding a POKéMON!$"
-PCText_WhichOneWillTake:
- .string "Which one will you take?$"
-PCText_CantReleaseEgg:
- .string "You can’t release an EGG.$"
-PCText_ContinueBox:
- .string "Continue BOX operations?$"
-PCText_CameBack:
- .string " came back!$"
-PCText_Worried:
- .string "Was it worried about you?$"
-PCText_Surprise:
- .string "... ... ... ... ...!$"
-PCText_PleaseRemoveMail:
- .string "Please remove the MAIL.$"
-PCText_Cancel2:
- .string "CANCEL$"
-PCText_Deposit:
- .string "DEPOSIT$"
-PCText_Withdraw:
- .string "WITHDRAW$"
-PCText_Switch:
- .string "SWITCH$"
-PCText_Move:
- .string "MOVE$"
-PCText_Place:
- .string "PLACE$"
-PCText_Summary:
- .string "SUMMARY$"
-PCText_Release:
- .string "RELEASE$"
-PCText_Mark:
- .string "MARK$"
-PCText_Name:
- .string "NAME$"
-PCText_Jump:
- .string "JUMP$"
-PCText_Wallpaper:
- .string "WALLPAPER$"
-PCText_Scenery1:
- .string "SCENERY 1$"
-PCText_Scenery2:
- .string "SCENERY 2$"
-PCText_Scenery3:
- .string "SCENERY 3$"
-PCText_Etc:
- .string "ETCETERA$"
-PCText_Forest:
- .string "FOREST$"
-PCText_City:
- .string "CITY$"
-PCText_Desert:
- .string "DESERT$"
-PCText_Savanna:
- .string "SAVANNA$"
-PCText_Crag:
- .string "CRAG$"
-PCText_Volcano:
- .string "VOLCANO$"
-PCText_Snow:
- .string "SNOW$"
-PCText_Cave:
- .string "CAVE$"
-PCText_Beach:
- .string "BEACH$"
-PCText_Seafloor:
- .string "SEAFLOOR$"
-PCText_River:
- .string "RIVER$"
-PCText_Sky:
- .string "SKY$"
-PCText_Polka:
- .string "POLKA-DOT$"
-PCText_PokeCenter:
- .string "POKéCENTER$"
-PCText_Machine:
- .string "MACHINE$"
-PCText_Plain:
- .string "PLAIN$"
-PCText_WhatDoYouWant:
- .string "What do you want?$"
-PCText_WithdrawPoke:
- .string "WITHDRAW POKéMON$"
-PCText_DepositPoke:
- .string "DEPOSIT POKéMON$"
-PCText_MovePoke:
- .string "MOVE POKéMON$"
-PCText_SeeYa:
- .string "SEE YA!$"
-PCText_MovePokeToParty:
- .string "Move POKéMON stored in BOXES to\nyour party.$"
-PCText_StorePokeInBox:
- .string "Store POKéMON in your party in BOXES.$"
-PCText_OrganizeBoxesParty:
- .string "Organize the POKéMON in BOXES and\nin your party.$"
-PCText_ReturnToPrevMenu:
- .string "Return to the previous menu.$"
-
-gPCText_OnlyOne:: @ 8410C1C
- .string "There is just one POKéMON with you.$"
-
-gPCText_PartyFull2:: @ 8410C40
- .string "Your party is full!$"
-
-gPCText_BOX:: @ 8410C54
- .string "BOX$"
-
-PCText_CheckMap:
- .string "{CLEAR 0}Check the map of the HOENN region.$"
-PCText_CheckPoke:
- .string "{CLEAR 0}Check POKéMON in detail.$"
-PCText_CheckTrainer:
- .string "{CLEAR 0}Check TRAINER information.$"
-PCText_CheckRibbons:
- .string "{CLEAR 0}Check obtained RIBBONS.$"
-PCText_PutAwayNav:
- .string "{CLEAR 0}Put away the POKéNAV.$"
-PCText_NoRibbonWin:
- .string "{CLEAR 0}There are no RIBBON winners.$"
-PCText_NoTrainers:
- .string "{CLEAR 0}No TRAINERS are registered.$"
-PCText_CheckParty:
- .string "{CLEAR 0}Check party POKéMON in detail.$"
-PCText_CheckPokeAll:
- .string "{CLEAR 0}Check all POKéMON in detail.$"
-PCText_ReturnToNav:
- .string "{CLEAR 0}Return to the POKéNAV menu.$"
-PCText_FindCool:
- .string "{CLEAR 0}Find cool POKéMON.$"
-PCText_FindBeauty:
- .string "{CLEAR 0}Find beautiful POKéMON.$"
-PCText_FindCute:
- .string "{CLEAR 0}Find cute POKéMON.$"
-PCText_FindSmart:
- .string "{CLEAR 0}Find smart POKéMON.$"
-PCText_FindTough:
- .string "{CLEAR 0}Find tough POKéMON.$"
-PCText_ReturnToCondition:
- .string "{CLEAR 0}Return to the CONDITION menu.$"
-
-gOtherText_NumberRegistered:: @ 8410E22
- .string "No. registered$"
-
-gOtherText_NumberBattles:: @ 8410E31
- .string "No. of battles$"
-
-gOtherText_Strategy:: @ 8410E40
- .string "{PALETTE 5}STRATEGY$"
-
-gOtherText_TrainersPokemon:: @ 8410E4C
- .string "{PALETTE 5}TRAINER’S POKéMON$"
-
-gOtherText_SelfIntroduction:: @ 8410E61
- .string "{PALETTE 5}SELF-INTRODUCTION$"
-
-gOtherText_Nature2:: @ 8410E76
- .string "NATURE/$"
-
-gOtherText_InParty:: @ 8410E7E
- .string "IN PARTY$"
-
-gOtherText_Number:: @ 8410E87
- .string "No. $"
-
-gOtherText_Ribbons:: @ 8410E8C
- .string "RIBBONS$"
-
-OtherText_MakeProfilePage1::
- .string "Make your profile by combining$"
-OtherText_MakeProfilePage2::
- .string "four words or phrases.$"
-OtherText_MakeMessagePage1::
- .string "Make a message with 6 phrases.$"
-OtherText_MakeMessagePage2::
- .string "Max. two 12-letter phrases/line.$"
-OtherText_DescribeFeelingsPage1::
- .string "Find words that describe your$"
-OtherText_DescribeFeelingsPage2::
- .string "feelings right now.$"
-OtherText_WithFourPhrases::
- .string "With four phrases,$"
-OtherText_CombineNinePhrasesPage1::
- .string "Combine nine phrases and$"
-OtherText_CombineNinePhrasesPage2::
- .string "make a message.$"
-OtherText_ImproveBardSongPage1::
- .string "Change just one word or phrase$"
-OtherText_ImproveBardSongPage2::
- .string "and improve the BARD’s song.$"
-OtherText_YourProfile::
- .string "Your profile $"
-OtherText_YourFeelingBattle::
- .string "Your feeling at the battle’s start$"
-OtherText_SetWinMessage::
- .string "What you say if you win a battle$"
-OtherText_SetLossMessage::
- .string "What you say if you lose a battle$"
-OtherText_TheAnswer::
- .string "The answer$"
-OtherText_MailMessage::
- .string "The MAIL message$"
-OtherText_MailSalutation::
- .string "The MAIL salutation$"
-OtherText_NewSong::
- .string "The new song$"
-OtherText_CombineTwoPhrasesPage1::
- .string "Combine two phrases and$"
-OtherText_CombineTwoPhrasesPage2::
- .string "make a trendy saying.$"
-OtherText_ConfirmTrendyPage1::
- .string "The trendy saying$"
-OtherText_ConfirmTrendyPage2::
- .string "is as shown. Okay?$"
-OtherText_HipsterPage1::
- .string "I’ll combine two phrases and$"
-OtherText_HipsterPage2::
- .string "teach you a good saying.$"
-
-gOtherText_TextDeletedConfirmPage1:: @ 84110EE
- .string "All the text being edited will$"
-
-gOtherText_TextDeletedConfirmPage2:: @ 841110D
- .string "be deleted. Is that okay?$"
-
-gOtherText_QuitEditing:: @ 8411127
- .string "Quit editing?$"
-
-gOtherText_EditedTextNoSavePage1:: @ 8411135
- .string "The edited text will not be saved.$"
-
-gOtherText_EditedTextNoSavePage2:: @ 8411158
- .string "Is that okay?$"
-
-gOtherText_EnterAPhraseOrWord:: @ 8411166
- .string "Please enter a phrase or word.$"
-
-gOtherText_TextNoDelete:: @ 8411185
- .string "The entire text can’t be deleted.$"
-
-gOtherText_OnlyOnePhrase:: @ 84111A7
- .string "Only one phrase may be changed.$"
-
-gOtherText_OriginalSongRestored:: @ 84111C7
- .string "The original song will be restored.$"
-
-gOtherText_TrendyAlready:: @ 84111EB
- .string "That’s trendy already!$"
-
-gOtherText_CombineTwoPhrases:: @ 8411202
- .string "Combine two words or phrases.$"
-
-gOtherText_QuitGivingInfo:: @ 8411220
- .string "Quit giving information?$"
-
-gOtherText_StopGivingMail:: @ 8411239
- .string "Stop giving the POKéMON MAIL?$"
-
-gOtherText_Profile:: @ 8411257
- .string "PROFILE$"
-
-gOtherText_AtBattleStart:: @ 841125F
- .string "At the battle’s start.$"
-
-gOtherText_UponWinningBattle:: @ 8411276
- .string "Upon winning a battle.$"
-
-gOtherText_UponLosingBattle:: @ 841128D
- .string "Upon losing a battle.$"
-
-gOtherText_TheBardsSong:: @ 84112A3
- .string "The BARD’s Song$"
-
-gOtherText_WhatsHipHappening:: @ 84112B3
- .string "What’s hip and happening?$"
-
-gOtherText_Interview:: @ 84112CD
- .string "Interview$"
-
-gOtherText_GoodSaying:: @ 84112D7
- .string "Good saying$"
-
-OtherText_SoPretty::
- .string " so pretty!$"
-OtherText_SoDarling::
- .string " so darling!$"
-OtherText_SoRelaxed::
- .string " so relaxed!$"
-OtherText_SoSunny::
- .string " so sunny!$"
-OtherText_SoDesirable::
- .string " so desirable!$"
-OtherText_SoExciting::
- .string " so exciting!$"
-OtherText_SoAmusing::
- .string " so amusing!$"
-OtherText_SoMagical::
- .string " so magical!$"
-
-gOtherText_Is:: @ 841134B
- .string " is$"
-
-gOtherText_DontYouAgree:: @ 841134F
- .string "\nDon’t you agree?$"
-
-OtherText_WantVacationNicePlace::
- .string "I so want to go on a vacation.\nWould you happen to know a nice place?$"
-OtherText_BoughtCrayonsIsNice::
- .string "I bought crayons with 120 colors!\nDon’t you think that’s nice?$"
-OtherText_IfWeCouldFloat::
- .string "Wouldn’t it be nice if we could float\naway on a cloud of bubbles?$"
-OtherText_SandWashesAwayMakeSad::
- .string "When you write on a sandy beach,\nthey wash away. It makes me sad.$"
-OtherText_WhatsBottomSeaLike::
- .string "What’s the bottom of the sea like?\nJust once I would so love to go!$"
-OtherText_SeeSettingSun::
- .string "When you see the setting sun, does it\nmake you want to go home?$"
-OtherText_LyingInGreenGrass::
- .string "Lying back in the green grass...\nOh, it’s so, so nice!$"
-OtherText_SecretBasesWonderful::
- .string "SECRET BASES are so wonderful!\nCan’t you feel the excitement?$"
-OtherText_PokeLeague::
- .string "POKéMON LEAGUE$"
-OtherText_PokeCenter::
- .string "POKéMON CENTER$"
-
-gOtherText_GetsAPokeBlock:: @ 8411581
- .string " gets a {POKEBLOCK}?$"
-
-OtherText_Coolness::
- .string "Coolness $"
-OtherText_Beauty::
- .string "Beauty $"
-OtherText_Cuteness::
- .string "Cuteness $"
-OtherText_Smartness::
- .string "Smartness $"
-OtherText_Toughness::
- .string "Toughness $"
-
-gOtherText_WasEnhanced:: @ 84115C2
- .string "was enhanced!$"
-
-gOtherText_NothingChanged:: @ 84115D0
- .string "Nothing changed!$"
-
-gOtherText_WontEat:: @ 84115E1
- .string "It won’t eat anymore...$"
-
-gSystemText_SaveFailedBackupCheck:: @ 84115F9
- .string "Save failed.\nChecking the backup memory...\nPlease wait.\n{COLOR RED}“Time required: 1 minute”$"
-
-gSystemText_BackupDamagedGameContinue:: @ 841164E
- .string "The backup memory is damaged or\nthe internal battery has run dry.\nThe game can be played. However,\nprogress cannot be saved.$"
-
-gSystemText_GameplayEnded:: @ 84116CB
- .string "{COLOR RED}“Gameplay cannot be continued.\nReturning to the title screen...”$"
-
-gSystemText_CheckCompleteSaveAttempt:: @ 841170F
- .string "Check completed.\nAttempting to save again.\nPlease wait.$"
-
-gSystemText_SaveCompletedGameEnd:: @ 8411747
- .string "Save completed.\n{COLOR RED}“Gameplay cannot be continued.\nReturning to the title screen.”$"
-
-gSystemText_SaveCompletedPressA:: @ 8411799
- .string "Save completed.\n{COLOR RED}“Please press the A Button.”$"
-
-gOtherText_Ferry:: @ 84117C9
- .string "FERRY$"
-
-gOtherText_SecretBase:: @ 84117CF
- .string "SECRET BASE$"
-
-gOtherText_Hideout:: @ 84117DB
- .string "HIDEOUT$"
-
-gSystemText_ResetRTCPrompt:: @ 84117E3
- .string "Reset RTC?\nA: Confirm, B: Cancel$"
-
-gSystemText_PresentTime:: @ 8411804
- .string "Present time in game$"
-
-gSystemText_PreviousTime:: @ 8411819
- .string "Previous time in game$"
-
-gSystemText_PleaseResetTime:: @ 841182F
- .string "Please reset the time.$"
-
-gSystemText_ClockResetDataSave:: @ 8411846
- .string "The clock has been reset.\nData will be saved. Please wait.$"
-
-gSystemText_SaveCompleted:: @ 8411881
- .string "Save completed.$"
-
-gSystemText_SaveFailed:: @ 8411891
- .string "Save failed...$"
-
-gSystemText_NoSaveFileNoTime:: @ 84118A0
- .string "There is no save file, so the time\ncan’t be set.$"
-
-gSystemText_ClockAdjustmentUsable:: @ 84118D1
- .string "The in-game clock adjustment system\nis now useable.$"
-
-gSystemText_Saving:: @ 8411905
- .string "SAVING...\nDON’T TURN OFF THE POWER.$"
-
- .align 2
-gUnknown_0841192C:: @ 841192C
- .4byte ContestStatsText_VerySoft
- .4byte ContestStatsText_Soft
- .4byte ContestStatsText_Hard
- .4byte ContestStatsText_VeryHard
- .4byte ContestStatsText_SuperHard
-
-gUnknown_08411940:: @ 8411940
- .incbin "baserom.gba", 0x00411940, 0x8
-
-gUnknown_08411948:: @ 8411948
- .incbin "baserom.gba", 0x00411948, 0x18
-
-gUnknown_08411960:: @ 8411960
- .incbin "graphics/misc/clock_small.gbapal"
-
-gUnknown_08411980:: @ 8411980
- .incbin "graphics/misc/clock_small.4bpp.lz"
-
-@ 8411A10
- .include "data/mon_pokeblock_anims.inc"
-
- .align 2
-gSpriteAffineAnim_8411E90:: @ 8411E90
- obj_rot_scal_anim_frame 0xFF00, 0x100, 0, 0
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnim_8411EA0:: @ 8411EA0
- obj_rot_scal_anim_frame 0x0, 0x0, 12, 1
- obj_rot_scal_anim_frame 0x0, 0x0, 0, 30
- obj_rot_scal_anim_frame 0x0, 0x0, -12, 1
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnim_8411EC0:: @ 8411EC0
- obj_rot_scal_anim_frame 0xFF00, 0x100, 0, 0
- obj_rot_scal_anim_frame 0x0, 0x0, 12, 1
- obj_rot_scal_anim_frame 0x0, 0x0, 0, 28
- obj_rot_scal_anim_frame 0x0, 0x0, -4, 3
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnim_8411EE8:: @ 8411EE8
- obj_rot_scal_anim_frame 0x0, 0x0, 1, 16
- obj_rot_scal_anim_frame 0x0, 0x0, -1, 32
- obj_rot_scal_anim_frame 0x0, 0x0, 1, 16
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnim_8411F08:: @ 8411F08
- obj_rot_scal_anim_frame 0xFF00, 0x100, 0, 0
- obj_rot_scal_anim_frame 0x0, 0x0, 1, 16
- obj_rot_scal_anim_frame 0x0, 0x0, -1, 32
- obj_rot_scal_anim_frame 0x0, 0x0, 1, 16
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnim_8411F30:: @ 8411F30
- obj_rot_scal_anim_frame 0x0, 0x0, -1, 8
- obj_rot_scal_anim_frame 0x0, 0x0, 0, 16
- obj_rot_scal_anim_frame 0x0, 0x0, 1, 8
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnim_8411F50:: @ 8411F50
- obj_rot_scal_anim_frame 0xFF00, 0x100, 0, 0
- obj_rot_scal_anim_frame 0x0, 0x0, -1, 8
- obj_rot_scal_anim_frame 0x0, 0x0, 0, 16
- obj_rot_scal_anim_frame 0x0, 0x0, 1, 8
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnim_8411F78:: @ 8411F78
- obj_rot_scal_anim_frame 0x0, 0x0, -1, 8
- obj_rot_scal_anim_frame 0x0, 0x0, 0, 32
- obj_rot_scal_anim_frame 0x0, 0x0, 1, 8
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnim_8411F98:: @ 8411F98
- obj_rot_scal_anim_frame 0xFF00, 0x100, 0, 0
- obj_rot_scal_anim_frame 0x0, 0x0, -1, 8
- obj_rot_scal_anim_frame 0x0, 0x0, 0, 32
- obj_rot_scal_anim_frame 0x0, 0x0, 1, 8
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnim_8411FC0:: @ 8411FC0
- obj_rot_scal_anim_frame 0x0, 0x0, -1, 4
- obj_rot_scal_anim_frame 0x0, 0x0, 0, 24
- obj_rot_scal_anim_frame 0x0, 0x0, 1, 4
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnim_8411FE0:: @ 8411FE0
- obj_rot_scal_anim_frame 0xFF00, 0x100, 0, 0
- obj_rot_scal_anim_frame 0x0, 0x0, -1, 4
- obj_rot_scal_anim_frame 0x0, 0x0, 0, 24
- obj_rot_scal_anim_frame 0x0, 0x0, 1, 4
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnim_8412008:: @ 8412008
- obj_rot_scal_anim_frame 0x0, 0x0, 1, 24
- obj_rot_scal_anim_frame 0x0, 0x0, 0, 16
- obj_rot_scal_anim_frame 0x0, 0x0, -12, 2
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnim_8412028:: @ 8412028
- obj_rot_scal_anim_frame 0xFF00, 0x100, 0, 0
- obj_rot_scal_anim_frame 0x0, 0x0, 1, 24
- obj_rot_scal_anim_frame 0x0, 0x0, 0, 16
- obj_rot_scal_anim_frame 0x0, 0x0, -12, 2
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnimTable_8412050:: @ 8412050
- .4byte gSpriteAffineAnim_8411E90
- .4byte gSpriteAffineAnim_8411EA0
- .4byte gSpriteAffineAnim_8411EE8
- .4byte gSpriteAffineAnim_8411F30
- .4byte gSpriteAffineAnim_8411F78
- .4byte gSpriteAffineAnim_8411FC0
- .4byte gSpriteAffineAnim_8412008
- .4byte gSpriteAffineAnim_8411E90
- .4byte gSpriteAffineAnim_8411E90
- .4byte gSpriteAffineAnim_8411E90
- .4byte gSpriteAffineAnim_8411E90
- .4byte gSpriteAffineAnim_8411EC0
- .4byte gSpriteAffineAnim_8411F08
- .4byte gSpriteAffineAnim_8411F50
- .4byte gSpriteAffineAnim_8411F98
- .4byte gSpriteAffineAnim_8411FE0
- .4byte gSpriteAffineAnim_8412028
- .4byte gSpriteAffineAnim_8411E90
- .4byte gSpriteAffineAnim_8411E90
- .4byte gSpriteAffineAnim_8411E90
- .4byte gSpriteAffineAnim_8411E90
-
- .align 2
-gUnknown_084120A4:: @ 84120A4
- .4byte gPokeblockRed_Pal
- .4byte gPokeblockBlue_Pal
- .4byte gPokeblockPink_Pal
- .4byte gPokeblockGreen_Pal
- .4byte gPokeblockYellow_Pal
- .4byte gPokeblockPurple_Pal
- .4byte gPokeblockIndigo_Pal
- .4byte gPokeblockBrown_Pal
- .4byte gPokeblockLiteBlue_Pal
- .4byte gPokeblockOlive_Pal
- .4byte gPokeblockGray_Pal
- .4byte gPokeblockBlack_Pal
- .4byte gPokeblockWhite_Pal
- .4byte gPokeblockGold_Pal
-
- .align 2
-gSpriteAffineAnim_84120DC:: @ 84120DC
- obj_rot_scal_anim_frame 0xFF00, 0x100, 0, 0
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnimTable_84120EC:: @ 84120EC
- .4byte gSpriteAffineAnim_84120DC
-
- .align 2
-gSpriteAffineAnim_84120F0:: @ 84120F0
- obj_rot_scal_anim_frame 0xFF00, 0x100, 0, 0
- obj_rot_scal_anim_frame 0x0, 0x0, -8, 1
- obj_rot_scal_anim_frame 0x0, 0x0, -8, 1
- obj_rot_scal_anim_frame 0x0, 0x0, -8, 1
- obj_rot_scal_anim_frame 0x0, 0x0, -8, 1
- obj_rot_scal_anim_frame 0x0, 0x0, 0, 8
- obj_rot_scal_anim_frame 0x0, 0x0, 16, 1
- obj_rot_scal_anim_frame 0x0, 0x0, 16, 1
- obj_rot_scal_anim_frame 0x0, 0x0, 16, 1
- obj_rot_scal_anim_frame 0xFF00, 0x100, 0, 0
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnim_8412148:: @ 8412148
- obj_rot_scal_anim_frame 0xFF00, 0x100, 0, 0
- obj_rot_scal_anim_frame 0x0, 0x0, 8, 1
- obj_rot_scal_anim_frame 0x0, 0x0, 8, 1
- obj_rot_scal_anim_frame 0x0, 0x0, 8, 1
- obj_rot_scal_anim_frame 0x0, 0x0, 8, 1
- obj_rot_scal_anim_frame 0x0, 0x0, 0, 8
- obj_rot_scal_anim_frame 0x0, 0x0, -16, 1
- obj_rot_scal_anim_frame 0x0, 0x0, -16, 1
- obj_rot_scal_anim_frame 0x0, 0x0, -16, 1
- obj_rot_scal_anim_frame 0xFF00, 0x100, 0, 0
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnimTable_84121A0:: @ 84121A0
- .4byte gSpriteAffineAnim_84120DC
-
- .align 2
-gSpriteAffineAnimTable_84121A4:: @ 84121A4
- .4byte gSpriteAffineAnim_84120F0
-
- .align 2
-gSpriteAffineAnimTable_84121A8:: @ 84121A8
- .4byte gSpriteAffineAnim_8412148
-
- .align 2
-gOamData_84121AC:: @ 84121AC
- .2byte 0x0300
- .2byte 0x0000
- .2byte 0x0400
-
- .align 2
-gSpriteAnim_84121B4:: @ 84121B4
- obj_image_anim_frame 0, 0
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_84121BC:: @ 84121BC
- .4byte gSpriteAnim_84121B4
-
- .align 2
-gSpriteAffineAnim_84121C0:: @ 84121C0
- obj_rot_scal_anim_frame 0x100, 0x100, 0, 0
- obj_rot_scal_anim_frame 0xFFF8, 0xFFF8, 0, 1
- obj_rot_scal_anim_jump 1
-
- .align 2
-gSpriteAffineAnimTable_84121D8:: @ 84121D8
- .4byte gSpriteAffineAnim_84121C0
-
- .align 2
-gUnknown_084121DC:: @ 84121DC
- obj_tiles gPokeblock_Gfx, 0x20, 14818
-
- .align 2
-gSpriteTemplate_84121E4:: @ 84121E4
- spr_template 14818, 14818, gOamData_84121AC, gSpriteAnimTable_84121BC, NULL, gSpriteAffineAnimTable_84121D8, sub_81481B0
-
-gUnknown_084121FC:: @ 84121FC
- .incbin "graphics/intro/intro2_grass.gbapal"
-
-gUnknown_0841221C:: @ 841221C
- .incbin "baserom.gba", 0x0041221c, 0x20
-
-gUnknown_0841223C:: @ 841223C
- .incbin "baserom.gba", 0x0041223c, 0x20
-
- .align 2
-gUnknown_0841225C:: @ 841225C
- .incbin "graphics/intro/intro2_grass.4bpp.lz"
-
- .align 2
-gUnknown_084126DC:: @ 84126DC
- .incbin "graphics/intro/intro2_grass_map.bin.lz"
-
-gUnknown_08412818:: @ 8412818
- .incbin "baserom.gba", 0x00412818, 0x60
-
-gUnknown_08412878:: @ 8412878
- .incbin "baserom.gba", 0x00412878, 0x60
-
- .align 2
-gUnknown_084128D8:: @ 84128D8
- .incbin "graphics/intro/intro2_bgclouds.4bpp.lz"
-
- .align 2
-gUnknown_08412EB4:: @ 8412EB4
- .incbin "graphics/intro/intro2_bgclouds_map.bin.lz"
-
-gUnknown_08413184:: @ 8413184
- .incbin "graphics/intro/intro2_bgclouds.gbapal"
-
-gUnknown_084131A4:: @ 84131A4
- .incbin "baserom.gba", 0x004131a4, 0x20
-
-gUnknown_084131C4:: @ 84131C4
- .incbin "graphics/intro/intro2_bgclouds2.4bpp.lz"
-
-gUnknown_08413300:: @ 8413300
- .incbin "baserom.gba", 0x00413300, 0x20
-
-gUnknown_08413320:: @ 8413320
- .incbin "baserom.gba", 0x00413320, 0x20
-
- .align 2
-gUnknown_08413340:: @ 8413340
- .incbin "graphics/intro/intro2_bgtrees.4bpp.lz"
-
- .align 2
-gUnknown_084139C8:: @ 84139C8
- .incbin "graphics/intro/intro2_bgtrees_map.bin.lz"
-
- .align 2
-gUnknown_08413CCC:: @ 8413CCC
- .incbin "graphics/intro/intro2_bgtrees.gbapal"
-
- .align 2
-gIntro2TreeTiles:: @ 8413CEC
- .incbin "graphics/intro/intro2_bgtreessmall.4bpp.lz"
-
-gUnknown_08413E38:: @ 8413E38
- .incbin "baserom.gba", 0x00413e38, 0x40 @ two palettes?
-
- .align 2
-gUnknown_08413E78:: @ 8413E78
- .incbin "graphics/intro/intro2_bgnight.4bpp.lz" @ only used in credits, coupled with intro because bicycle sequence
-
- .align 2
-gUnknown_08414064:: @ 8414064
- .incbin "graphics/intro/intro2_bgnight.gbapal"
-
- .align 2
-gUnknown_08414084:: @ 8414084
- .incbin "graphics/intro/intro2_bgnight_map.bin.lz"
-
- .align 2
-gIntro2NightTiles:: @ 8414330
- .incbin "graphics/intro/intro2_night.4bpp.lz"
-
- .align 1
-gIntro2BrendanPalette:: @ 84143B4
- .incbin "graphics/intro/intro2_brendan.gbapal"
-
- .align 2
-gIntro2BrendanTiles:: @ 84143D4
- .incbin "graphics/intro/intro2_brendan.4bpp.lz"
-
- .align 1
-gIntro2MayPalette:: @ 8414F70
- .incbin "graphics/intro/intro2_may.gbapal"
-
- .align 2
-gUnknown_08414F90:: @ 8414F90
- .space 0x1E0
-
- .align 2
-gIntro2MayTiles:: @ 8415170
- .incbin "graphics/intro/intro2_may.4bpp.lz"
-
- .align 2
-gIntro2BicycleTiles:: @ 8415E08
- .incbin "graphics/intro/intro2_bicycle.4bpp.lz"
-
- .align 1
-gIntro2LatiosPalette:: @ 8416234
- .incbin "graphics/intro/intro2_latios.gbapal"
-
- .align 2
-gIntro2LatiosTiles:: @ 8416254
- .incbin "graphics/intro/intro2_latios.4bpp.lz"
-
- .align 1
-gIntro2LatiasPalette:: @ 84166F8
- .incbin "graphics/intro/intro2_latias.gbapal"
-
- .align 2
-gIntro2LatiasTiles:: @ 8416718
- .incbin "graphics/intro/intro2_latias.4bpp.lz"
-
- .align 2
-gSpriteTemplate_8416B3C:: @ 8416B3C
- spr_template 2000, 0xFFFF, gDummyOamData, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_814910C
-
- .align 2
-gUnknown_08416B54:: @ 8416B54
- obj_tiles gUnknown_084131C4, 0x400, 2000
- null_obj_tiles
-
- .align 2
-gSpriteAnim_8416B64:: @ 8416B64
- obj_image_anim_frame 0, 30
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_8416B6C:: @ 8416B6C
- obj_image_anim_frame 16, 30
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_8416B74:: @ 8416B74
- obj_image_anim_frame 20, 30
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_8416B7C:: @ 8416B7C
- obj_image_anim_frame 22, 30
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_8416B84:: @ 8416B84
- .4byte gSpriteAnim_8416B64
- .4byte gSpriteAnim_8416B6C
- .4byte gSpriteAnim_8416B74
- .4byte gSpriteAnim_8416B7C
-
-gUnknown_08416B94:: @ 8416B94
- .incbin "baserom.gba", 0x00416b94, 0x48
-
- .align 2
-gUnknown_08416BDC:: @ 8416BDC
- obj_tiles gIntro2TreeTiles, 0x400, 2000
- null_obj_tiles
-
- .align 2
-gSpriteAnim_8416BEC:: @ 8416BEC
- obj_image_anim_frame 0, 30
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_8416BF4:: @ 8416BF4
- obj_image_anim_frame 16, 30
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_8416BFC:: @ 8416BFC
- obj_image_anim_frame 24, 30
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_8416C04:: @ 8416C04
- .4byte gSpriteAnim_8416BEC
- .4byte gSpriteAnim_8416BF4
- .4byte gSpriteAnim_8416BFC
-
-gUnknown_08416C10:: @ 8416C10
- .incbin "baserom.gba", 0x00416c10, 0x60
-
- .align 2
-gUnknown_08416C70:: @ 8416C70
- obj_tiles gIntro2NightTiles, 0x400, 2000
- null_obj_tiles
-
- .align 2
-gSpriteAnim_8416C80:: @ 8416C80
- obj_image_anim_frame 0, 30
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_8416C88:: @ 8416C88
- .4byte gSpriteAnim_8416C80
-
-gUnknown_08416C8C:: @ 8416C8C
- .incbin "baserom.gba", 0x00416c8c, 0x30
-
- .align 2
-gOamData_8416CBC:: @ 8416CBC
- .2byte 0x00A0
- .2byte 0xC000
- .2byte 0x0400
-
- .align 2
-gSpriteAnim_8416CC4:: @ 8416CC4
- obj_image_anim_frame 0, 8
- obj_image_anim_frame 64, 8
- obj_image_anim_frame 128, 8
- obj_image_anim_frame 192, 8
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnimTable_8416CD8:: @ 8416CD8
- .4byte gSpriteAnim_8416CC4
-
- .align 2
-gSpriteTemplate_8416CDC:: @ 8416CDC
- spr_template 1002, 1002, gOamData_8416CBC, gSpriteAnimTable_8416CD8, NULL, gDummySpriteAffineAnimTable, nullsub_82
-
- .align 2
-gSpriteTemplate_8416CF4:: @ 8416CF4
- spr_template 1003, 1003, gOamData_8416CBC, gSpriteAnimTable_8416CD8, NULL, gDummySpriteAffineAnimTable, nullsub_82
-
- .align 2
-gOamData_8416D0C:: @ 8416D0C
- .2byte 0x40A0
- .2byte 0xC000
- .2byte 0x0400
-
- .align 2
-gSpriteAnim_8416D14:: @ 8416D14
- obj_image_anim_frame 0, 8
- obj_image_anim_frame 32, 8
- obj_image_anim_frame 64, 8
- obj_image_anim_frame 96, 8
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnimTable_8416D28:: @ 8416D28
- .4byte gSpriteAnim_8416D14
-
- .align 2
-gSpriteTemplate_8416D2C:: @ 8416D2C
- spr_template 1001, 1002, gOamData_8416D0C, gSpriteAnimTable_8416D28, NULL, gDummySpriteAffineAnimTable, sub_81492A0
-
- .align 2
-gSpriteTemplate_8416D44:: @ 8416D44
- spr_template 1001, 1003, gOamData_8416D0C, gSpriteAnimTable_8416D28, NULL, gDummySpriteAffineAnimTable, sub_81492A0
-
- .align 2
-gOamData_8416D5C:: @ 8416D5C
- .2byte 0x00A0
- .2byte 0xC000
- .2byte 0x0400
-
- .align 2
-gSpriteAnim_8416D64:: @ 8416D64
- obj_image_anim_frame 0, 16
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_8416D6C:: @ 8416D6C
- obj_image_anim_frame 64, 16
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_8416D74:: @ 8416D74
- .4byte gSpriteAnim_8416D64
- .4byte gSpriteAnim_8416D6C
-
- .align 2
-gSpriteTemplate_8416D7C:: @ 8416D7C
- spr_template 1004, 1004, gOamData_8416D5C, gSpriteAnimTable_8416D74, NULL, gDummySpriteAffineAnimTable, nullsub_83
-
- .align 2
-gSpriteTemplate_8416D94:: @ 8416D94
- spr_template 1005, 1005, gOamData_8416D5C, gSpriteAnimTable_8416D74, NULL, gDummySpriteAffineAnimTable, nullsub_83
-
- .align 2
-gIntro2BrendanSpriteSheet:: @ 8416DAC
- obj_tiles gIntro2BrendanTiles, 0x3800, 1002
- .space 8
-
- .align 2
-gIntro2MaySpriteSheet:: @ 8416DBC
- obj_tiles gIntro2MayTiles, 0x3800, 1003
- .space 8
-
- .align 2
-gIntro2BicycleSpriteSheet:: @ 8416DCC
- obj_tiles gIntro2BicycleTiles, 0x1000, 1001
- .space 8
-
- .align 2
-gIntro2LatiosSpriteSheet:: @ 8416DDC
- obj_tiles gIntro2LatiosTiles, 0x1000, 1004
- .space 8
-
- .align 2
-gIntro2LatiasSpriteSheet:: @ 8416DEC
- obj_tiles gIntro2LatiasTiles, 0x1000, 1005
- .space 8
-
- .align 2
-gIntro2SpritePalettes:: @ 8416DFC
- obj_pal gIntro2BrendanPalette, 1002
- obj_pal gIntro2MayPalette, 1003
- obj_pal gIntro2LatiosPalette, 1004
- obj_pal gIntro2LatiasPalette, 1005
- .space 8
-
-gUnknown_08416E24:: @ 8416E24
- obj_tiles gIntro2BrendanTiles, 0x2000, 1002
- .space 8
-
-gUnknown_08416E34:: @ 8416E34
- obj_tiles gIntro2MayTiles, 0x2000, 1003
- .space 8
-
- .align 2
-gEvoSparklePalette: @ 8416E44
- .incbin "graphics/misc/evo_sparkle.gbapal"
-
- .align 2
-gEvoSparkleTiles: @ 8416E64
- .incbin "graphics/misc/evo_sparkle.4bpp.lz"
-
-gUnknown_08416E84:: @ 8416E84
- obj_tiles gEvoSparkleTiles, 0x20, 1001
- .space 8
-
-gUnknown_08416E94:: @ 8416E94
- obj_pal gEvoSparklePalette, 1001
- .space 8
-
- .align 2
-gOamData_8416EA4:: @ 8416EA4
- .2byte 0x00A0
- .2byte 0x0000
- .2byte 0x0400
-
- .align 2
-gSpriteAnim_8416EAC:: @ 8416EAC
- obj_image_anim_frame 0, 8
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_8416EB4:: @ 8416EB4
- .4byte gSpriteAnim_8416EAC
-
- .align 2
-gSpriteTemplate_8416EB8:: @ 8416EB8
- spr_template 1001, 1001, gOamData_8416EA4, gSpriteAnimTable_8416EB4, NULL, gDummySpriteAffineAnimTable, nullsub_84
-
-gUnknown_08416ED0:: @ 8416ED0
- .incbin "baserom.gba", 0x00416ed0, 0x38
-
-Unknown_8416F08:
- .incbin "baserom.gba", 0x00416f08, 0x4
-Unknown_8416F0C:
- .incbin "baserom.gba", 0x00416f0c, 0x4
-Unknown_8416F10:
- .incbin "baserom.gba", 0x00416f10, 0x4
-Unknown_8416F14:
- .incbin "baserom.gba", 0x00416f14, 0x4
-Unknown_8416F18:
- .incbin "baserom.gba", 0x00416f18, 0x4
-Unknown_8416F1C:
- .incbin "baserom.gba", 0x00416f1c, 0x6
-Unknown_8416F22:
- .incbin "baserom.gba", 0x00416f22, 0x6
-Unknown_8416F28:
- .incbin "baserom.gba", 0x00416f28, 0x6
-Unknown_8416F2E:
- .incbin "baserom.gba", 0x00416f2e, 0x6
-Unknown_8416F34:
- .incbin "baserom.gba", 0x00416f34, 0x6
-Unknown_8416F3A:
- .incbin "baserom.gba", 0x00416f3a, 0x8
-Unknown_8416F42:
- .incbin "baserom.gba", 0x00416f42, 0x8
-Unknown_8416F4A:
- .incbin "baserom.gba", 0x00416f4a, 0x8
-Unknown_8416F52:
- .incbin "baserom.gba", 0x00416f52, 0x8
-Unknown_8416F5A:
- .incbin "baserom.gba", 0x00416f5a, 0x8
-Unknown_8416F62:
- .incbin "baserom.gba", 0x00416f62, 0xA
-Unknown_8416F6C:
- .incbin "baserom.gba", 0x00416f6c, 0xA
-Unknown_8416F76:
- .incbin "baserom.gba", 0x00416f76, 0xA
-Unknown_8416F80:
- .incbin "baserom.gba", 0x00416f80, 0xA
-Unknown_8416F8A:
- .incbin "baserom.gba", 0x00416f8a, 0xA
-Unknown_8416F94:
- .incbin "baserom.gba", 0x00416f94, 0xC
-Unknown_8416FA0:
- .incbin "baserom.gba", 0x00416fa0, 0xC
-Unknown_8416FAC:
- .incbin "baserom.gba", 0x00416fac, 0xC
-Unknown_8416FB8:
- .incbin "baserom.gba", 0x00416fb8, 0xC
-Unknown_8416FC4:
- .incbin "baserom.gba", 0x00416fc4, 0xC
-Unknown_8416FD0:
- .incbin "baserom.gba", 0x00416fd0, 0xE
-Unknown_8416FDE:
- .incbin "baserom.gba", 0x00416fde, 0xE
-Unknown_8416FEC:
- .incbin "baserom.gba", 0x00416fec, 0xE
-Unknown_8416FFA:
- .incbin "baserom.gba", 0x00416ffa, 0xE
-Unknown_8417008:
- .incbin "baserom.gba", 0x00417008, 0xE
-Unknown_8417016:
- .incbin "baserom.gba", 0x00417016, 0x10
-Unknown_8417026:
- .incbin "baserom.gba", 0x00417026, 0x10
-Unknown_8417036:
- .incbin "baserom.gba", 0x00417036, 0x10
-Unknown_8417046:
- .incbin "baserom.gba", 0x00417046, 0x10
-Unknown_8417056:
- .incbin "baserom.gba", 0x00417056, 0x12
-
- .align 2
-gUnknown_08417068:: @ 8417068
- .4byte Unknown_8416F08
- .4byte Unknown_8416F0C
- .4byte Unknown_8416F10
- .4byte Unknown_8416F14
- .4byte Unknown_8416F18
- .4byte Unknown_8416F1C
- .4byte Unknown_8416F22
- .4byte Unknown_8416F28
- .4byte Unknown_8416F2E
- .4byte Unknown_8416F34
- .4byte Unknown_8416F3A
- .4byte Unknown_8416F42
- .4byte Unknown_8416F4A
- .4byte Unknown_8416F52
- .4byte Unknown_8416F5A
- .4byte Unknown_8416F62
- .4byte Unknown_8416F6C
- .4byte Unknown_8416F76
- .4byte Unknown_8416F80
- .4byte Unknown_8416F8A
- .4byte Unknown_8416F94
- .4byte Unknown_8416FA0
- .4byte Unknown_8416FAC
- .4byte Unknown_8416FB8
- .4byte Unknown_8416FC4
- .4byte Unknown_8416FD0
- .4byte Unknown_8416FDE
- .4byte Unknown_8416FEC
- .4byte Unknown_8416FFA
- .4byte Unknown_8417008
- .4byte Unknown_8417016
- .4byte Unknown_8417026
- .4byte Unknown_8417036
- .4byte Unknown_8417046
- .4byte Unknown_8417056
-
-gUnknown_084170F4:: @ 84170F4
- .incbin "baserom.gba", 0x004170f4, 0xD0
-
-@ 84171C4
- .include "data/bard_music.inc"
-
-UnknownString_1stRound:
- .string "1st round$"
-UnknownString_2ndRound:
- .string "2nd round$"
-UnknownString_3rdRound:
- .string "3rd round$"
-UnknownString_4thRound:
- .string "4th round$"
-UnknownString_5thRound:
- .string "5th round$"
-UnknownString_6thRound:
- .string "6th round$"
-UnknownString_7thRound:
- .string "7th round$"
-UnknownString_8thRound:
- .string "8th round$"
-
- .align 2
-gUnknown_0842C29C:: @ 842C29C
- .4byte UnknownString_1stRound, sub_814A4B8
- .4byte UnknownString_2ndRound, sub_814A4B8
- .4byte UnknownString_3rdRound, sub_814A4B8
- .4byte UnknownString_4thRound, sub_814A4B8
- .4byte UnknownString_5thRound, sub_814A4B8
- .4byte UnknownString_6thRound, sub_814A4B8
- .4byte UnknownString_7thRound, sub_814A4B8
- .4byte UnknownString_8thRound, sub_814A4B8
-
- @ unused
-gOtherText_TopSpeed::
- .string "TOP SPEED$"
-
-gMultiText_BerryBlenderMaxSpeedRecord:: @ 842C2E6
- .string "BERRY BLENDER\nMAXIMUM SPEED RECORD!$"
-
-gMultiText_2P3P4P:: @ 842C30A
- .string "2 PLAYERS\n3 PLAYERS\n4 PLAYERS$"
-
-gMultiText_Saving:: @ 842C328
- .string "SAVING...\nDON’T TURN OFF THE POWER.$"
-
-gMultiText_LinkError:: @ 842C34C
- .string "{HIGHLIGHT TRANSPARENT}{COLOR WHITE2}Link error...\nCheck your Game Link cable connection,\nand turn the power off and on.$"
-
-gSystemText_OptionMenu:: @ 842C3A6
- .string "{PALETTE 9}OPTION$"
-
-gSystemText_TextSpeed:: @ 842C3B0
- .string "{PALETTE 9}TEXT SPEED$"
-
-gSystemText_BattleScene:: @ 842C3BE
- .string "{PALETTE 9}BATTLE SCENE$"
-
-gSystemText_BattleStyle:: @ 842C3CE
- .string "{PALETTE 9}BATTLE STYLE$"
-
-gSystemText_Sound:: @ 842C3DE
- .string "{PALETTE 9}SOUND$"
-
-gSystemText_Frame:: @ 842C3E7
- .string "{PALETTE 9}FRAME$"
-
-gSystemText_Cancel:: @ 842C3F0
- .string "{PALETTE 9}CANCEL$"
-
-gSystemText_ButtonMode:: @ 842C3FA
- .string "{PALETTE 9}BUTTON MODE$"
-
-gSystemText_Slow:: @ 842C409
- .string "{PALETTE 15}SLOW$"
-
-gSystemText_Mid:: @ 842C411
- .string "{PALETTE 15}MID$"
-
-gSystemText_Fast:: @ 842C418
- .string "{PALETTE 15}FAST$"
-
-gSystemText_On:: @ 842C420
- .string "{PALETTE 15}ON$"
-
-gSystemText_Off:: @ 842C426
- .string "{PALETTE 15}OFF$"
-
-gSystemText_Shift:: @ 842C42D
- .string "{PALETTE 15}SHIFT$"
-
-gSystemText_Set:: @ 842C436
- .string "{PALETTE 15}SET$"
-
-gSystemText_Mono:: @ 842C43D
- .string "{PALETTE 15}MONO$"
-
-gSystemText_Stereo:: @ 842C445
- .string "{PALETTE 15}STEREO$"
-
-gSystemText_Type:: @ 842C44F
- .string "{PALETTE 15}TYPE$"
-
-gSystemText_Terminator:: @ 842C457
- .string "{PALETTE 8}$"
-
-gSystemText_Normal:: @ 842C45B
- .string "{PALETTE 15}NORMAL$"
-
-gSystemText_LR:: @ 842C465
- .string "{PALETTE 15}LR$"
-
-gSystemText_LA:: @ 842C46B
- .string "{PALETTE 15}L=A$"
-
-SystemText_Pokedex:
- .string "POKéDEX$"
-SystemText_Pokemon:
- .string "POKéMON$"
-SystemText_BAG:
- .string "BAG$"
-SystemText_Pokenav:
- .string "POKéNAV$"
-SystemText_Player:
- .string "{PLAYER}$"
-SystemText_Save:
- .string "SAVE$"
-SystemText_Option:
- .string "OPTION$"
-SystemText_Exit:
- .string "EXIT$"
-SystemText_Retire: @ safari zone?
- .string "RETIRE$"
-
-gOtherText_SafariStock:: @ 842C4A9
- .string "SAFARI BALLS\nStock: {STR_VAR_1}$"
-
-gSystemText_LinkStandby:: @ 842C4C0
- .string "Link standby...\n... ... B Button: Cancel$"
-
-gSystemText_LoadEventPressA:: @ 842C4E9
- .string "Press the A Button to load event.\n... ... B Button: Cancel$"
-
-gSystemText_LoadingEvent:: @ 842C524
- .string "Loading event...$"
-
-gSystemText_DontCutLink:: @ 842C535
- .string "Don’t remove the Game Link cable.\nDon’t turn off the power.$"
-
-gSystemText_EventLoadSuccess:: @ 842C571
- .string "The event was safely loaded.$$"
-
-gSystemText_LoadingError:: @ 842C58F
- .string "Loading error.\nEnding session.$$$$$$$$"
-
-gOtherText_Hoenn:: @ 842C5B5
- .string "HOENN$"
-
-gOtherText_OhABite:: @ 842C5BB
- .string "Oh! A bite!$"
-
-gOtherText_PokeOnHook:: @ 842C5C7
- .string "A POKéMON’s on the hook!{PAUSE_UNTIL_PRESS}$"
-
-gOtherText_NotEvenANibble:: @ 842C5E2
- .string "Not even a nibble...{PAUSE_UNTIL_PRESS}$"
-
-gOtherText_ItGotAway:: @ 842C5F9
- .string "It got away...{PAUSE_UNTIL_PRESS}$$"
-
-gTradeText_WillBeSent:: @ 842C60B
- .string "{STR_VAR_2} will be sent to {STR_VAR_1}.$"
-
-gTradeText_ByeBye:: @ 842C622
- .string "Bye-bye, {STR_VAR_2}!$"
-
-gTradeText_SentOverPoke:: @ 842C62F
- .string "{STR_VAR_1} sent over {STR_VAR_3}.$"
-
-gTradeText_TakeGoodCare:: @ 842C640
- .string "Take good care of {STR_VAR_3}!$"
-
-TradeText_Cancel:
- .string "CANCEL$"
-TradeText_ChoosePoke:
- .string "Choose a POKéMON.$"
-TradeText_Summary1:
- .string "SUMMARY$"
-TradeText_Trade1:
- .string "TRADE$"
-TradeText_CancelTradePrompt:
- .string "Cancel trade?$"
-TradeText_PressBToExit:
- .string "Press the B Button to exit.$"
-TradeText_Summary2:
- .string "SUMMARY$"
-TradeText_Trade2:
- .string "TRADE$"
-TradeText_LinkStandby:
- .string "{COLOR DARK_GREY}{HIGHLIGHT WHITE2}{SHADOW LIGHT_GREY}Link standby...\nPlease wait.$"
-TradeText_TradeCancelled:
- .string "{COLOR DARK_GREY}{HIGHLIGHT WHITE2}{SHADOW LIGHT_GREY}The trade has\nbeen canceled.$"
-TradeText_OnlyPoke:
- .string "{COLOR DARK_GREY}{HIGHLIGHT WHITE2}{SHADOW LIGHT_GREY}That’s your only\nPOKéMON for battle.$"
-TradeText_NonTradablePoke:
- .string "{COLOR DARK_GREY}{HIGHLIGHT WHITE2}{SHADOW LIGHT_GREY}Your friend can’t\ntrade that one.$"
-TradeText_WaitingForFriend:
- .string "{COLOR DARK_GREY}{HIGHLIGHT WHITE2}{SHADOW LIGHT_GREY}Waiting for your\nfriend to finish...$"
-TradeText_WantToTrade:
- .string "{COLOR DARK_GREY}{HIGHLIGHT WHITE2}{SHADOW LIGHT_GREY}Your friend wants\nto trade POKéMON.$"
- .string "$"
-
-gTradeText_TradeOkayPrompt:: @ 842C7B6
- .string "Is this trade okay?$"
-
-gOtherText_Terminator2:: @ 842C7CA
- .string "$"
-
-gOtherText_ControlAndMiscText:: @ 842C7CB
- .string "\n$"
- .string "/$"
- .string "Lv$"
- .string "---$"
-
-gOtherText_FourQuestions:: @ 842C7D6
- .string "????$"
-
-@ 842C7DB
- .include "data/text/easy_chat/group_name_strings.inc"
-
-gOtherText_ThreeQuestions:: @ 842C890
- .string "???$"
-
-gOtherText_From:: @ 842C894
- .string "From $"
-
-gOtherText_MixingRecordsWithFriend:: @ 842C89A
- .string "Mixing records...$"
-
-gOtherText_MixingComplete:: @ 842C8AC
- .string "Record mixing completed.\nThank you for waiting.$"
-
-gOtherText_TrainersTrainerCard:: @ 842C8DC
- .string "’s TRAINER CARD$"
-
-gOtherText_FirstHOF:: @ 842C8EC
- .string "FIRST HALL OF FAME$"
-
-gOtherText_LinkCableBattles:: @ 842C8FF
- .string "LINK CABLE BATTLES W/ L/$"
-
-gOtherText_BattleTowerWinRecord:: @ 842C924
- .string "BATTLE TOWER W/{CLEAR_TO 0x72}&{CLEAR_TO 0x98}STRAIGHT$"
-
-gOtherText_ContestRecord:: @ 842C943
- .string "CONTESTS W/FRIENDS W/$"
-
-gOtherText_MixingRecord:: @ 842C959
- .string "{POKEBLOCK}S W/FRIENDS$"
-
-gOtherText_TradeRecord:: @ 842C96A
- .string "POKéMON TRADES$"
-
-gOtherText_Boy:: @ 842C979
- .string "BOY$"
-
-gOtherText_Girl:: @ 842C97D
- .string "GIRL$"
- .string "$"
-
-gOtherText_Player:: @ 842C983
- .string "PLAYER$"
-
-gOtherText_Badges:: @ 842C98A
- .string "BADGES$"
- .string "$"
-
-gOtherText_Pokedex:: @ 842C992
- .string "POKéDEX$"
-
-gOtherText_PlayTime:: @ 842C99A
- .string "PLAY TIME$"
-
-gOtherText_SentToPC:: @ 842C9A4
- .string "{STR_VAR_1} was sent to\nthe PC.{PAUSE_UNTIL_PRESS}$"
-
-OtherText_YourName:
- .string "YOUR NAME?$"
-OtherText_BoxName:
- .string "BOX NAME?$"
-OtherText_PokeName:
- .string "{STR_VAR_1}’s nickname?$"
-
-gOtherText_Marco:: @ 842C9E1
- .string "MARCO$" @ polo
-
-gOtherText_Coins:: @ 842C9E7
- .string "{STR_VAR_1} COINS$"
-
-gOtherText_BattleResults:: @ 842C9F0
- .string "{PLAYER}’s BATTLE RESULTS$"
-
-gOtherText_WinRecord:: @ 842CA04
- .string "TOTAL RECORD W/{STR_VAR_1} L/{STR_VAR_2} D/{STR_VAR_3}$"
-
-gOtherText_WinLoseDraw:: @ 842CA20
- .string "WIN LOSE DRAW$"
-
-gOtherText_SevenDashes:: @ 842CA3C
- .string "-------$"
-
-gOtherText_FourDashes:: @ 842CA44
- .string "----$"
-
-gOtherText_BattleTowerResults:: @ 842CA49
- .string "{PLAYER}’s BATTLE TOWER RESULTS$"
-
-gOtherText_Lv50:: @ 842CA63
- .string "LV 50$"
-
-gOtherText_Lv100:: @ 842CA69
- .string "LV 100$"
-
-gOtherText_WinStreak:: @ 842CA70
- .string "{STR_VAR_1}W STREAK$"
-
-gOtherText_Current:: @ 842CA7B
- .string "CURRENT$"
-
-gOtherText_Record:: @ 842CA83
- .string "RECORD$"
-
-gOtherText_Prev:: @ 842CA8A
- .string "PREV.$"
-
-gOtherText_QuitGamePrompt:: @ 842CA90
- .string "Quit the game?$"
-
-gOtherText_MaxCoins:: @ 842CA9F
- .string "You’ve got 9,999 COINS.$"
-
-gOtherText_OutOfCoins:: @ 842CAB7
- .string "You’ve run out of COINS.\nGame over!$"
-
-gOtherText_DontHaveThreeCoins:: @ 842CADB
- .string "You don’t have three COINS.$"
-
-gOtherText_ReelTime:: @ 842CAF7
- .string "REEL TIME\nHere’s your chance to take\naim and nail marks!\nThe Reel Time continues for\nas often as the drawn number.\nIt all ends on a Big Bonus.$"
-
-DaycareText_GetAlongVeryWell::
- .string "The two seem to get along very well.$"
-DaycareText_GetAlong::
- .string "The two seem to get along.$"
-DaycareText_DontLikeOther::
- .string "The two don’t seem to like each other.$"
-DaycareText_PlayOther::
- .string "The two prefer to play with other\nPOKéMON than each other.$"
-
-gOtherText_NewLine2:: @ 842CC28
- .string "\n$"
-
-gOtherText_CancelAndLv:: @ 842CC2A
- .string "CANCEL$"
- .string "LV$"
-
-gEggNickname:: @ 842CC34
- .string "EGG$"
-
-gOtherText_HatchedFromEgg:: @ 842CC38
- .string "{COLOR WHITE2}{HIGHLIGHT TRANSPARENT}{SHADOW DARK_GREY}{STR_VAR_1} hatched from the EGG!$"
-
-gOtherText_NickHatchPrompt:: @ 842CC5A
- .string "{COLOR WHITE2}{HIGHLIGHT TRANSPARENT}{SHADOW DARK_GREY}Would you like to nickname the newly\nhatched {STR_VAR_1}?$"
-
-OtherText_Battle::
- .string "BATTLE$"
-OtherText_Contest::
- .string "CONTEST$"
-OtherText_Type::
- .string "TYPE/$"
-OtherText_PP::
- .string "PP/$"
-OtherText_Power::
- .string "POWER$"
-OtherText_Accuracy::
- .string "ACCURACY$"
-OtherText_Appeal::
- .string "APPEAL$"
-OtherText_Jam::
- .string "JAM$"
-
-gOtherText_TeachWhichMove:: @ 842CCC7
- .string "Teach which move to {STR_VAR_1}?$"
-
-gOtherText_TeachSpecificMove:: @ 842CCDF
- .string "Teach {STR_VAR_2}?$"
-
-gOtherText_PokeLearnedMove:: @ 842CCE9
- .string "{STR_VAR_1} learned {STR_VAR_2}.$"
-
-gOtherText_DeleteOlderMove:: @ 842CCF8
- .string "{STR_VAR_1} is trying to learn\n{STR_VAR_2}.\pBut {STR_VAR_1} can’t learn more\nthan four moves.\pDelete an older move to make\nroom for {STR_VAR_2}?$"
-
-gOtherText_StopLearningMove:: @ 842CD65
- .string "Stop learning {STR_VAR_2}?$"
-
-gOtherText_ForgotMove123:: @ 842CD77
- .string "{PAUSE 32}1, {PAUSE 15}2 {PAUSE 15}...{PAUSE 15}...{PAUSE 15}...{PAUSE 15} {PLAY_SE 0x0038}Poof!\p$"
-
-gOtherText_ForgotOrDidNotLearnMove:: @ 842CDA3
- .string "{STR_VAR_1} forgot {STR_VAR_3}.\pAnd...\p{STR_VAR_1} learned {STR_VAR_2}.$"
- .string "{STR_VAR_1} did not learn\n{STR_VAR_2}.$"
-
-gOtherText_GiveUpTeachingMove:: @ 842CDDC
- .string "Give up trying to teach a new move\nto {STR_VAR_1}?$"
-
-gOtherText_WhichMoveToForget:: @ 842CE06
- .string "Which move should be forgotten?\p$"
-
-gSystemText_ClearAllSaveDataPrompt:: @ 842CE27
- .string "Clear all save data areas?$"
-
-gSystemText_ClearingData:: @ 842CE42
- .string "Clearing data...\nPlease wait.$"
-
-gContestText_AnnounceResults:: @ 842CE60
- .string "Announcing the results!$"
-
-gContestText_PreliminaryResults:: @ 842CE78
- .string "The preliminary results!$"
-
-gContestText_Round2Results:: @ 842CE91
- .string "Round 2 results!$"
-
-gContestText_PokeWon:: @ 842CEA2
- .string "{STR_VAR_1}’s {STR_VAR_2} won!$"
-
-gOtherText_LinkStandby:: @ 842CEAF
- .string "Link standby...$"
-
-@ 842CEBF
- .include "data/text/landmarks.inc"
-
-gOtherText_Terminator4:: @ 842D0E6
- .string "$"
-
-gOtherText_Nature:: @ 842D0E7
- .string " nature, $"
-
-gOtherText_Comma:: @ 842D0F1
- .string ",$"
-
-gOtherText_Met:: @ 842D0F3
- .string " (met).$"
-
-gOtherText_Egg2:: @ 842D0FB
- .string " (EGG).$"
-
-gOtherText_ObtainedInTrade:: @ 842D103
- .string "obtained in a trade.$"
-
-gOtherText_FatefulEncounter:: @ 842D118
- .string "fateful encounter.$"
-
-gOtherText_Met2:: @ 842D12B
- .string " (met).$"
-
-gOtherText_EggDayCare:: @ 842D133
- .string "An odd POKéMON EGG found\nby the DAY CARE couple.$"
-
-gOtherText_EggNicePlace:: @ 842D164
- .string "A peculiar POKéMON EGG\nobtained at the nice place.$"
-
-gOtherText_EggObtainedInTrade:: @ 842D197
- .string "A peculiar POKéMON EGG\nobtained in a trade.$"
-
-gOtherText_EggHotSprings:: @ 842D1C3
- .string "A POKéMON EGG obtained\nat the hot springs.$"
-
-gOtherText_LinkStandby2:: @ 842D1EE
- .string "Link standby...$"
-
-gOtherText_YesNoAndPlayer:: @ 842D1FE
- .string "{COLOR DARK_GREY}{HIGHLIGHT WHITE2}{SHADOW LIGHT_GREY}YES\nNO$"
- .string "{HIGHLIGHT TRANSPARENT}PLAYER$"
- .string "{HIGHLIGHT TRANSPARENT}$"
-
-gOtherText_HoennDex:: @ 842D21C
- .string "HOENN$"
-
-gOtherText_NationalDex:: @ 842D222
- .string "NATIONAL$"
-
-gOtherText_DiplomaCertificationGameFreak:: @ 842D22B
- .string "{HIGHLIGHT TRANSPARENT}Player: {CLEAR 0x10}{COLOR RED}{PLAYER}\n\n{COLOR DARK_GREY}{STR_VAR_1} POKéDEX\nThis document certifies\nthat you have successfully\ncompleted your POKéDEX.\n\n{CLEAR_TO 0x42}{COLOR RED}GAME FREAK$"
- .string "{COLOR RED}{HIGHLIGHT TRANSPARENT}GAME FREAK$"
-
-gOtherText_PLink:: @ 842D2BC
- .string "{STR_VAR_1}P LINK$"
-
-gOtherText_YesNoTerminating:: @ 842D2C5
- .string "YES\nNO$"
- .string "Terminating.$"
-
-gOtherText_LinkNotFound:: @ 842D2D9
- .string "Link partner(s) not found.\nPlease try again.\p$"
-
-gOtherText_BlenderChooseBerry:: @ 842D307
- .string "Starting up the BERRY BLENDER.\pPlease select a BERRY from your BAG\nto put in the BERRY BLENDER.\p$"
-
-gOtherText_PokeBlockMade:: @ 842D368
- .string " was made!$"
-
-gOtherText_PressAToStart:: @ 842D373
- .string "Press the A Button to start.$"
-
-gOtherText_PleaseWait:: @ 842D390
- .string "Please wait a while.$"
-
-gOtherText_LinkStandby3:: @ 842D3A5
- .string "Link standby...$"
-
-gOtherText_BlendAnotherBerryPrompt:: @ 842D3B5
- .string "Would you like to blend another BERRY?$"
-
-gOtherText_OutOfBerries:: @ 842D3DC
- .string "You’ve run out of BERRIES for\nblending in the BERRY BLENDER.\p$"
-
-gOtherText_CaseIsFull:: @ 842D41A
- .string "Your {POKEBLOCK} CASE is full.\p$"
-
-gOtherText_NoBerriesForBlend:: @ 842D434
- .string " has no BERRIES to put in\nthe BERRY BLENDER.$"
-
-gOtherText_OtherCaseIsFull:: @ 842D461
- .string "’s {POKEBLOCK} CASE is full.\p$"
-
-gOtherText_ResultsOfBlending:: @ 842D479
- .string "RESULTS OF BLENDING$"
- .string "BERRY USED$"
-
-gOtherText_Berry:: @ 842D498
- .string " BERRY$"
-
-gOtherText_RequiredTime:: @ 842D49F
- .string "REQUIRED TIME$"
-
-gOtherText_Min:: @ 842D4AD
- .string "MIN.$"
-
-gOtherText_Sec:: @ 842D4B2
- .string "SEC.$"
-
-gOtherText_MaxSpeed:: @ 842D4B7
- .string "MAXIMUM SPEED$"
-
-gOtherText_RPM:: @ 842D4C5
- .string "RPM$"
- .string ".$"
-
-gOtherText_Ranking:: @ 842D4CB
- .string "RANKING$"
-
-gOtherText_BlockLevelIs:: @ 842D4D3
- .string "The level is $"
-
-gOtherText_BlockFeelIs:: @ 842D4E1
- .string ", and the feel is $"
-
-gOtherText_Period:: @ 842D4F4
- .string ".$"
-
-gOtherText_Day:: @ 842D4F6
- .string "DAY$"
- .string ":$"
-
-gOtherText_OK:: @ 842D4FC
- .string "OK$"
-
-gOtherText_CorrectTimePrompt:: @ 842D4FF
- .string "Is this the correct time?$"
-
- .align 2
-OutlineCursorTiles_00:
- .incbin "graphics/interface/outline_cursor_00.4bpp"
-
- .align 2
-OutlineCursorTiles_01:
- .incbin "graphics/interface/outline_cursor_01.4bpp"
-
- .align 2
-OutlineCursorTiles_02:
- .incbin "graphics/interface/outline_cursor_02.4bpp"
-
- .align 2
-OutlineCursorTiles_03:
- .incbin "graphics/interface/outline_cursor_03.4bpp"
-
- .align 2
-OutlineCursorTiles_04:
- .incbin "graphics/interface/outline_cursor_04.4bpp"
-
- .align 2
-OutlineCursorTiles_05:
- .incbin "graphics/interface/outline_cursor_05.4bpp"
-
- .align 2
-OutlineCursorTiles_06:
- .incbin "graphics/interface/outline_cursor_06.4bpp"
-
- .align 2
-OutlineCursorTiles_07:
- .incbin "graphics/interface/outline_cursor_07.4bpp"
-
- .align 2
-OutlineCursorTiles_08:
- .incbin "graphics/interface/outline_cursor_08.4bpp"
-
- .align 2
-OutlineCursorTiles_09:
- .incbin "graphics/interface/outline_cursor_09.4bpp"
-
- .align 2
-OutlineCursorTiles_10:
- .incbin "graphics/interface/outline_cursor_10.4bpp"
-
- .align 2
-OutlineCursorTiles_11:
- .incbin "graphics/interface/outline_cursor_11.4bpp"
-
- .align 2
-OutlineCursorTiles_12:
- .incbin "graphics/interface/outline_cursor_12.4bpp"
-
- .align 2
-OutlineCursorTiles_13:
- .incbin "graphics/interface/outline_cursor_13.4bpp"
-
- .align 2
-OutlineCursorTiles_14:
- .incbin "graphics/interface/outline_cursor_14.4bpp"
-
- .align 2
-OutlineCursorTiles_15:
- .incbin "graphics/interface/outline_cursor_15.4bpp"
-
- .align 2
-gOamData_842F11C:: @ 842F11C
- .2byte 0x8000
- .2byte 0x0000
- .2byte 0x0000
-
- .align 2
-gOamData_842F124:: @ 842F124
- .2byte 0x8800
- .2byte 0x0000
- .2byte 0x0000
-
- .align 2
-gOamData_842F12C:: @ 842F12C
- .2byte 0x8000
- .2byte 0x0000
- .2byte 0x0000
-
- .align 2
-gSpriteAnim_842F134:: @ 842F134
- obj_image_anim_frame 0, 63
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_842F13C:: @ 842F13C
- .4byte gSpriteAnim_842F134
-
- .align 2
-gUnknown_0842F140:: @ 842F140
- obj_tiles OutlineCursorTiles_00, 0x1C0, 0xFFF0
- obj_tiles OutlineCursorTiles_01, 0x1C0, 0xFFF0
- obj_tiles OutlineCursorTiles_02, 0x1C0, 0xFFF0
- obj_tiles OutlineCursorTiles_03, 0x1C0, 0xFFF0
- obj_tiles OutlineCursorTiles_04, 0x1C0, 0xFFF0
- obj_tiles OutlineCursorTiles_05, 0x1C0, 0xFFF0
- obj_tiles OutlineCursorTiles_06, 0x1C0, 0xFFF0
- obj_tiles OutlineCursorTiles_07, 0x1C0, 0xFFF0
- obj_tiles OutlineCursorTiles_08, 0x1C0, 0xFFF0
- obj_tiles OutlineCursorTiles_09, 0x1C0, 0xFFF0
- obj_tiles OutlineCursorTiles_10, 0x1C0, 0xFFF0
- obj_tiles OutlineCursorTiles_11, 0x1C0, 0xFFF0
- obj_tiles OutlineCursorTiles_12, 0x1C0, 0xFFF0
- obj_tiles OutlineCursorTiles_13, 0x1C0, 0xFFF0
- obj_tiles OutlineCursorTiles_14, 0x1C0, 0xFFF0
- obj_tiles OutlineCursorTiles_15, 0x1C0, 0xFFF0
-
- .align 2
-gUnknown_0842F1C0:: @ 842F1C0
- obj_tiles OutlineCursorTiles_00, 0x1C0, 0xFFF1
- obj_tiles OutlineCursorTiles_01, 0x1C0, 0xFFF1
- obj_tiles OutlineCursorTiles_02, 0x1C0, 0xFFF1
- obj_tiles OutlineCursorTiles_03, 0x1C0, 0xFFF1
- obj_tiles OutlineCursorTiles_04, 0x1C0, 0xFFF1
- obj_tiles OutlineCursorTiles_05, 0x1C0, 0xFFF1
- obj_tiles OutlineCursorTiles_06, 0x1C0, 0xFFF1
- obj_tiles OutlineCursorTiles_07, 0x1C0, 0xFFF1
- obj_tiles OutlineCursorTiles_08, 0x1C0, 0xFFF1
- obj_tiles OutlineCursorTiles_09, 0x1C0, 0xFFF1
- obj_tiles OutlineCursorTiles_10, 0x1C0, 0xFFF1
- obj_tiles OutlineCursorTiles_11, 0x1C0, 0xFFF1
- obj_tiles OutlineCursorTiles_12, 0x1C0, 0xFFF1
- obj_tiles OutlineCursorTiles_13, 0x1C0, 0xFFF1
- obj_tiles OutlineCursorTiles_14, 0x1C0, 0xFFF1
- obj_tiles OutlineCursorTiles_15, 0x1C0, 0xFFF1
-
- .align 2
-gUnknown_0842F240:: @ 842F240
- obj_pal 0x0203a360, 0xfff0
-
- .align 2
-gUnknown_0842F248:: @ 842F248
- obj_pal 0x0203a360, 0xfff1
-
- .align 2
-gSpriteTemplate_842F250:: @ 842F250
- spr_template 65520, 65520, gOamData_842F11C, gSpriteAnimTable_842F13C, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-gSpriteTemplate_842F268:: @ 842F268
- spr_template 65520, 0xFFFF, gOamData_842F11C, gSpriteAnimTable_842F13C, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-gSpriteTemplate_842F280:: @ 842F280
- spr_template 65520, 0xFFFF, gOamData_842F124, gSpriteAnimTable_842F13C, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-gSpriteTemplate_842F298:: @ 842F298
- spr_template 65521, 65521, gOamData_842F12C, gSpriteAnimTable_842F13C, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-gSpriteTemplate_842F2B0:: @ 842F2B0
- spr_template 65521, 0xFFFF, gOamData_842F12C, gSpriteAnimTable_842F13C, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-Unknown_842F2C8: @ 842F2C8
- .incbin "baserom.gba", 0x0042f2c8, 0x10
-Unknown_842F2D8: @ 842F2D8
- .incbin "baserom.gba", 0x0042f2d8, 0x18
-Unknown_842F2F0: @ 842F2F0
- .incbin "baserom.gba", 0x0042f2f0, 0x20
-Unknown_842F310: @ 842F310
- .incbin "baserom.gba", 0x0042f310, 0x18
-Unknown_842F328: @ 842F328
- .incbin "baserom.gba", 0x0042f328, 0x18
-Unknown_842F340: @ 842F340
- .incbin "baserom.gba", 0x0042f340, 0x20
-Unknown_842F360: @ 842F360
- .incbin "baserom.gba", 0x0042f360, 0x20
-Unknown_842F380: @ 842F380
- .incbin "baserom.gba", 0x0042f380, 0x20
-Unknown_842F3A0: @ 842F3A0
- .incbin "baserom.gba", 0x0042f3a0, 0x20
-Unknown_842F3C0: @ 842F3C0
- .incbin "baserom.gba", 0x0042f3c0, 0x28
-Unknown_842F3E8: @ 842F3E8
- .incbin "baserom.gba", 0x0042f3e8, 0x28
-Unknown_842F410: @ 842F410
- .incbin "baserom.gba", 0x0042f410, 0x28
-Unknown_842F438: @ 842F438
- .incbin "baserom.gba", 0x0042f438, 0x28
-Unknown_842F460: @ 842F460
- .incbin "baserom.gba", 0x0042f460, 0x30
-Unknown_842F490: @ 842F490
- .incbin "baserom.gba", 0x0042f490, 0x30
-Unknown_842F4C0: @ 842F4C0
- .incbin "baserom.gba", 0x0042f4c0, 0x30
-Unknown_842F4F0: @ 842F4F0
- .incbin "baserom.gba", 0x0042f4f0, 0x30
-Unknown_842F520: @ 842F520
- .incbin "baserom.gba", 0x0042f520, 0x38
-Unknown_842F558: @ 842F558
- .incbin "baserom.gba", 0x0042f558, 0x18
-
- .4byte Unknown_842F2C8
- .4byte Unknown_842F2C8
- .4byte Unknown_842F2D8
- .4byte Unknown_842F2F0
- .4byte Unknown_842F310
- .4byte Unknown_842F328
- .4byte Unknown_842F340
- .4byte Unknown_842F360
- .4byte Unknown_842F380
- .4byte Unknown_842F3A0
- .4byte Unknown_842F3C0
- .4byte Unknown_842F3E8
- .4byte Unknown_842F410
- .4byte Unknown_842F438
- .4byte Unknown_842F460
- .4byte Unknown_842F490
- .4byte Unknown_842F4C0
- .4byte Unknown_842F4F0
- .4byte Unknown_842F520
-
- .align 2
-gUnknown_0842F5BC:: @ 842F5BC
- .4byte Unknown_842F558
-
- .align 2
-gSubspriteTables_842F5C0:: @ 842F5C0
- .4byte 1, gMenuCursorSubsprites
- .4byte 1, gMenuCursorSubsprites
- .4byte 2, gMenuCursorSubsprites
- .4byte 3, gMenuCursorSubsprites
- .4byte 4, gMenuCursorSubsprites
- .4byte 5, gMenuCursorSubsprites
- .4byte 6, gMenuCursorSubsprites
- .4byte 7, gMenuCursorSubsprites
- .4byte 8, gMenuCursorSubsprites
- .4byte 9, gMenuCursorSubsprites
- .4byte 10, gMenuCursorSubsprites
- .4byte 11, gMenuCursorSubsprites
- .4byte 12, gMenuCursorSubsprites
- .4byte 13, gMenuCursorSubsprites
- .4byte 14, gMenuCursorSubsprites
- .4byte 15, gMenuCursorSubsprites
- .4byte 1, gMenuCursorSubsprites
- .4byte 17, gMenuCursorSubsprites
- .4byte 18, gMenuCursorSubsprites
- .4byte 19, gMenuCursorSubsprites
- .4byte 20, gMenuCursorSubsprites
- .4byte 21, gMenuCursorSubsprites
- .4byte 22, gMenuCursorSubsprites
- .4byte 23, gMenuCursorSubsprites
- .4byte 24, gMenuCursorSubsprites
- .4byte 25, gMenuCursorSubsprites
- .4byte 26, gMenuCursorSubsprites
- .4byte 27, gMenuCursorSubsprites
- .4byte 28, gMenuCursorSubsprites
- .4byte 29, gMenuCursorSubsprites
- .4byte 30, gMenuCursorSubsprites
- .4byte 31, gMenuCursorSubsprites
-
- .align 2
-gUnknown_0842F6C0:: @ 842F6C0
- .4byte 0x2, Unknown_842F2C8
- .4byte 0x2, Unknown_842F2C8
- .4byte 0x3, Unknown_842F2D8
- .4byte 0x4, Unknown_842F2F0
- .4byte 0x3, Unknown_842F310
- .4byte 0x3, Unknown_842F328
- .4byte 0x4, Unknown_842F340
- .4byte 0x4, Unknown_842F360
- .4byte 0x4, Unknown_842F380
- .4byte 0x4, Unknown_842F3A0
- .4byte 0x5, Unknown_842F3C0
- .4byte 0x5, Unknown_842F3E8
- .4byte 0x5, Unknown_842F410
- .4byte 0x5, Unknown_842F438
- .4byte 0x6, Unknown_842F460
- .4byte 0x6, Unknown_842F490
- .4byte 0x6, Unknown_842F4C0
- .4byte 0x6, Unknown_842F4F0
- .4byte 0x7, Unknown_842F520
-
- .align 2
-gUnknown_0842F758:: @ 842F758
- .4byte 3, gMenuCursorSubsprites
- .4byte 0, 2
- .4byte 0, 66
- .4byte 0, 105
- .4byte 0, 34
-
- .align 2
-gUnknown_0842F780:: @ 842F780
- .4byte 0, 105
-
- .align 2
-gUnknown_0842F788:: @ 842F788
- .4byte 0, 34
-
- .align 2
-gUnknown_0842F790:: @ 842F790
- .4byte 0, 66
-
-gOtherText_BerryObtainedDadHasIt:: @ 842F798
- .string "Obtained a {STR_VAR_2} BERRY!\nDad has it at PETALBURG GYM.$"
-
-gOtherText_BerryTransformed:: @ 842F7CA
- .string "The {STR_VAR_1} BERRY transformed into\none {STR_VAR_2} BERRY.$"
-
-gOtherText_BerryAlreadyObtained:: @ 842F7F6
- .string "The {STR_VAR_1} BERRY has already been\nobtained.$"
-
-gOtherText_SpecialRibbonReceived:: @ 842F81E
- .string "A special RIBBON was awarded to your\nparty POKéMON.$"
-
-gOtherText_DexUpgraded:: @ 842F852
- .string "The POKéDEX has been upgraded with\nthe NATIONAL MODE.$"
-
-gOtherText_RareWordAdded:: @ 842F888
- .string "A rare word has been added.$"
-
-gOtherText_PokeWasSentOver:: @ 842F8A4
- .string "{STR_VAR_1} was sent over!$"
-
-gOtherText_PartyIsFull:: @ 842F8B6
- .string "Your party is full.\n{STR_VAR_1} could not be sent over.$"
-
-gOtherText_NewTrainerInHoenn:: @ 842F8E5
- .string "A new TRAINER has arrived in HOENN.$"
- .string "A new adversary has arrived in the\nBATTLE TOWER.$"
-
-gOtherText_DataCannotUseVersion:: @ 842F93A
- .string "This data cannot be used in\nthis version.$"
diff --git a/data/data_8393054.s b/data/data_8393054.s
new file mode 100644
index 000000000..5d2f79e07
--- /dev/null
+++ b/data/data_8393054.s
@@ -0,0 +1,110 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+ .align 2
+gSpriteAnim_8393054:: @ 8393054
+ obj_image_anim_frame 0, 3
+ obj_image_anim_frame 4, 3
+ obj_image_anim_frame 8, 3
+ obj_image_anim_frame 12, 3
+ obj_image_anim_jump 0
+
+ .align 2
+gSpriteAnimTable_8393068:: @ 8393068
+ .4byte gSpriteAnim_8393054
+
+ .align 2
+gSpriteTemplate_839306C:: @ 839306C
+ spr_template 10004, 10004, gOamData_837DF2C, gSpriteAnimTable_8393068, NULL, gDummySpriteAffineAnimTable, sub_807A5C4
+
+ .align 2
+gSpriteTemplate_8393084:: @ 8393084
+ spr_template 10004, 10004, gOamData_837DF2C, gSpriteAnimTable_8393068, NULL, gDummySpriteAffineAnimTable, sub_807A544
+
+ .align 2
+gSpriteAnim_839309C:: @ 839309C
+ obj_image_anim_frame 0, 3
+ obj_image_anim_jump 0
+
+ .align 2
+gSpriteAnimTable_83930A4:: @ 83930A4
+ .4byte gSpriteAnim_839309C
+
+ .align 2
+gBattleAnimSpriteTemplate_83930A8:: @ 83930A8
+ spr_template 10283, 10283, gOamData_837DF34, gSpriteAnimTable_83930A4, NULL, gDummySpriteAffineAnimTable, sub_807A908
+
+ .align 2
+gBattleAnimSpriteTemplate_83930C0:: @ 83930C0
+ spr_template 10283, 10283, gOamData_837DF34, gSpriteAnimTable_83930A4, NULL, gDummySpriteAffineAnimTable, sub_807A9BC
+
+ .align 2
+gSpriteAnim_83930D8:: @ 83930D8
+ obj_image_anim_frame 0, 3
+ obj_image_anim_frame 16, 3
+ obj_image_anim_frame 32, 3
+ obj_image_anim_frame 48, 3
+ obj_image_anim_frame 64, 3
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_83930F0:: @ 83930F0
+ .4byte gSpriteAnim_83930D8
+
+ .align 2
+gBattleAnimSpriteTemplate_83930F4:: @ 83930F4
+ spr_template 10071, 10071, gOamData_837DF34, gSpriteAnimTable_83930F0, NULL, gDummySpriteAffineAnimTable, sub_807A63C
+
+ .align 2
+gSpriteTemplate_839310C:: @ 839310C
+ spr_template 10051, 10051, gOamData_837DF34, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_807A5C4
+
+ .align 2
+gSpriteAnim_8393124:: @ 8393124
+ obj_image_anim_frame 0, 5
+ obj_image_anim_jump 0
+
+ .align 2
+gSpriteAnim_839312C:: @ 839312C
+ obj_image_anim_frame 0, 5
+ obj_image_anim_jump 0
+
+ .align 2
+gSpriteAnim_8393134:: @ 8393134
+ obj_image_anim_frame 0, 5
+ obj_image_anim_jump 0
+
+ .align 2
+gSpriteAnimTable_839313C:: @ 839313C
+ .4byte gSpriteAnim_8393124
+ .4byte gSpriteAnim_839312C
+ .4byte gSpriteAnim_8393134
+
+ .align 2
+gSpriteTemplate_8393148:: @ 8393148
+ spr_template 10135, 10135, gOamData_837DF34, gSpriteAnimTable_839313C, NULL, gDummySpriteAffineAnimTable, sub_807A5C4
+
+ .align 2
+gSpriteAnim_8393160:: @ 8393160
+ obj_image_anim_frame 0, 15
+ obj_image_anim_jump 0
+
+ .align 2
+gSpriteAnimTable_8393168:: @ 8393168
+ .4byte gSpriteAnim_8393160
+
+ .align 2
+gSpriteAffineAnim_839316C:: @ 839316C
+ obj_rot_scal_anim_frame 0x60, 0x60, 0, 0
+ obj_rot_scal_anim_frame 0x2, 0x2, 0, 1
+ obj_rot_scal_anim_jump 1
+
+ .align 2
+gSpriteAffineAnimTable_8393184:: @ 8393184
+ .4byte gSpriteAffineAnim_839316C
+
+ .align 2
+gSpriteTemplate_8393188:: @ 8393188
+ spr_template 10004, 10004, gOamData_837DFEC, gSpriteAnimTable_8393168, NULL, gSpriteAffineAnimTable_8393184, sub_807A544
diff --git a/data/decoration.s b/data/decoration.s
new file mode 100644
index 000000000..6bbe52703
--- /dev/null
+++ b/data/decoration.s
@@ -0,0 +1,264 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+@ 83E9FD0
+ .include "data/decorations.inc"
+
+ .align 2
+gUnknown_083EC5E4:: @ 83EC5E4
+ .4byte SecretBaseText_Desk
+ .4byte SecretBaseText_Chair
+ .4byte SecretBaseText_Plant
+ .4byte SecretBaseText_Ornament
+ .4byte SecretBaseText_Mat
+ .4byte SecretBaseText_Poster
+ .4byte SecretBaseText_Doll
+ .4byte SecretBaseText_Cushion
+
+ .align 2
+gUnknown_083EC604:: @ 83EC604
+ .4byte SecretBaseText_Decorate, sub_80FF160
+ .4byte SecretBaseText_PutAway, sub_8100A0C
+ .4byte SecretBaseText_Toss, sub_8101700
+ .4byte gUnknownText_Exit, gpu_pal_decompress_alloc_tag_and_upload
+
+ .align 2
+gUnknown_083EC624:: @ 83EC624
+ .4byte SecretBaseText_PutOutDecor
+ .4byte SecretBaseText_StoreChosenDecor
+ .4byte SecretBaseText_ThrowAwayDecor
+ .4byte gMenuText_GoBackToPrev
+
+ .align 2
+gUnknown_083EC634:: @ 83EC634
+ .4byte sub_80FF5BC
+ .4byte sub_80FF058
+ .4byte sub_81017A0
+ .4byte sub_80FF058
+ .4byte sub_81017A0
+ .4byte sub_80FF058
+ .4byte sub_8109D04
+ .4byte sub_80FF058
+
+ .align 2
+gUnknown_083EC654:: @ 83EC654
+ .2byte 0x6318, 0x739C, 0x7FFF
+
+gUnknown_083EC65A:: @ 83EC65A
+ .string "{PALETTE 13}{STR_VAR_1}$"
+
+Unknown_3EC660: @ 83EC660
+ .byte 0, 1, 2, 3
+
+Unknown_3EC664: @ 83EC664
+ .byte 0, 1, 2, 3, 4, 5, 8, 9, 10, 11, 12, 13
+
+Unknown_3EC670: @ 83EC670
+ .byte 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15
+
+Unknown_3EC680: @ 83EC680
+ .byte 0, 1, 4, 5, 8, 9, 12, 13, 16, 17, 20, 21
+
+Unknown_3EC68C: @ 83EC68C
+ .byte 0, 1, 2, 3, 4, 5, 6, 7
+
+Unknown_3EC694: @ 83EC694
+ .byte 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31
+
+Unknown_3EC6B4: @ 83EC6B4
+ .byte 0, 1, 2, 3, 4, 5, 8, 9, 10, 11, 12, 13, 16, 17, 18, 19, 20, 21, 24, 25, 26, 27, 28, 29, 32, 33, 34, 35, 36, 37, 40, 41, 42, 43, 44, 45
+
+Unknown_3EC6D8: @ 83EC6D8
+ .byte 0, 1, 2, 3, 4, 5, 8, 9, 10, 11, 12, 13, 16, 17, 18, 19, 20, 21, 24, 25, 26, 27, 28, 29
+
+Unknown_3EC6F0: @ 83EC6F0
+ .byte 0, 0, 0, 0
+
+Unknown_3EC6F4: @ 83EC6F4
+ .byte 0, 0, 1, 1, 0, 0, 1, 1
+
+Unknown_3EC6FC: @ 83EC6FC
+ .byte 0, 0, 1, 1, 2, 2, 0, 0, 1, 1, 2, 2
+
+Unknown_3EC708: @ 83EC708
+ .byte 0, 0, 1, 1, 2, 2, 3, 3, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 4, 4, 5, 5, 6, 6, 7, 7
+
+Unknown_3EC728: @ 83EC728
+ .byte 0, 0, 1, 1, 0, 0, 1, 1, 2, 2, 3, 3, 2, 2, 3, 3
+
+Unknown_3EC738: @ 83EC738
+ .byte 0, 0, 0, 0, 1, 1, 1, 1
+
+Unknown_3EC740: @ 83EC740
+ .byte 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2
+
+Unknown_3EC74C: @ 83EC74C
+ .byte 0, 0, 1, 1, 0, 0, 1, 1, 2, 2, 3, 3, 2, 2, 3, 3, 4, 4, 5, 5, 4, 4, 5, 5, 6, 6, 7, 7, 6, 6, 7, 7
+
+Unknown_3EC76C: @ 83EC76C
+ .byte 0, 0, 1, 1, 2, 2, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 6, 6, 7, 7, 8, 8
+
+Unknown_3EC790: @ 83EC790
+ .byte 0, 0, 1, 1, 2, 2, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 3, 3, 4, 4, 5, 5
+
+Unknown_3EC7A8: @ 83EC7A8
+ .byte 4, 5, 6, 7
+
+Unknown_3EC7AC: @ 83EC7AC
+ .byte 4, 5, 4, 5, 6, 7, 6, 7
+
+Unknown_3EC7B4: @ 83EC7B4
+ .byte 4, 5, 4, 5, 4, 5, 6, 7, 6, 7, 6, 7
+
+Unknown_3EC7C0: @ 83EC7C0
+ .byte 4, 5, 4, 5, 4, 5, 4, 5, 6, 7, 6, 7, 6, 7, 6, 7, 4, 5, 4, 5, 4, 5, 4, 5, 6, 7, 6, 7, 6, 7, 6, 7
+
+Unknown_3EC7E0: @ 83EC7E0
+ .byte 4, 5, 4, 5, 6, 7, 6, 7, 4, 5, 4, 5, 6, 7, 6, 7
+
+Unknown_3EC7F0: @ 83EC7F0
+ .byte 4, 5, 6, 7, 4, 5, 6, 7
+
+Unknown_3EC7F8: @ 83EC7F8
+ .byte 4, 5, 6, 7, 4, 5, 6, 7, 4, 5, 6, 7
+
+Unknown_3EC804: @ 83EC804
+ .byte 4, 5, 4, 5, 6, 7, 6, 7, 4, 5, 4, 5, 6, 7, 6, 7, 4, 5, 4, 5, 6, 7, 6, 7, 4, 5, 4, 5, 6, 7, 6, 7
+
+Unknown_3EC824: @ 83EC824
+ .byte 4, 5, 4, 5, 4, 5, 6, 7, 6, 7, 6, 7, 4, 5, 4, 5, 4, 5, 6, 7, 6, 7, 6, 7, 4, 5, 4, 5, 4, 5, 6, 7, 6, 7, 6, 7
+
+Unknown_3EC848: @ 83EC848
+ .byte 4, 5, 4, 5, 4, 5, 6, 7, 6, 7, 6, 7, 4, 5, 4, 5, 4, 5, 6, 7, 6, 7, 6, 7
+
+ .align 2
+gUnknown_083EC860:: @ 83EC860
+ .4byte Unknown_3EC660, Unknown_3EC6F0, Unknown_3EC7A8, 0x4
+ .4byte Unknown_3EC68C, Unknown_3EC6F4, Unknown_3EC7AC, 0x8
+ .4byte Unknown_3EC664, Unknown_3EC6FC, Unknown_3EC7B4, 0xc
+ .4byte Unknown_3EC694, Unknown_3EC708, Unknown_3EC7C0, 0x20
+ .4byte Unknown_3EC670, Unknown_3EC728, Unknown_3EC7E0, 0x10
+ .4byte Unknown_3EC68C, Unknown_3EC738, Unknown_3EC7F0, 0x8
+ .4byte Unknown_3EC680, Unknown_3EC740, Unknown_3EC7F8, 0xc
+ .4byte Unknown_3EC694, Unknown_3EC74C, Unknown_3EC804, 0x20
+ .4byte Unknown_3EC6B4, Unknown_3EC76C, Unknown_3EC824, 0x24
+ .4byte Unknown_3EC6D8, Unknown_3EC790, Unknown_3EC848, 0x18
+
+gUnknown_083EC900:: @ 83EC900
+ .byte 0, 1, 120, 78
+ .byte 1, 2, -128, 78
+ .byte 1, 3, -112, 86
+ .byte 1, 3, -112, 70
+ .byte 0, 2, -128, 70
+ .byte 2, 2, 120, 70
+ .byte 2, 3, -128, 86
+ .byte 2, 3, -128, 54
+ .byte 0, 3, -112, 70
+ .byte 1, 3, -112, 70
+
+ .align 2
+gSpriteAnim_83EC928:: @ 83EC928
+ obj_image_anim_frame 0, 0
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_83EC930:: @ 83EC930
+ .4byte gSpriteAnim_83EC928
+
+ .align 2
+gSpriteImageTable_83EC934: @ 83EC934
+ obj_frame_tiles 0x02038984, 0x800
+
+ .align 2
+gSpriteTemplate_83EC93C:: @ 83EC93C
+ spr_template 0xFFFF, 3000, 0x20391AC, gSpriteAnimTable_83EC930, gSpriteImageTable_83EC934, gDummySpriteAffineAnimTable, sub_81009A8
+
+ .align 2
+gUnknown_083EC954:: @ 83EC954
+ obj_pal 0x02039184, 3000
+
+ .align 2
+gUnknown_083EC95C:: @ 83EC95C
+ .4byte sub_81000C4
+ .4byte sub_810065C
+
+ .align 2
+gUnknown_083EC964:: @ 83EC964
+ .4byte sub_810026C
+ .4byte sub_810065C
+
+ .align 2
+gUnknown_083EC96C:: @ 83EC96C
+ .4byte sub_80FFAB0
+ .4byte sub_80FFB08
+ .4byte sub_8100F88
+ .4byte sub_8100FB4
+
+gUnknown_083EC97C:: @ 83EC97C
+ .byte 4, 4, 4, 4, 0, 3, 3, 0
+
+gUnknown_083EC984:: @ 83EC984
+ .byte 4, 4, 4, 4, 0, 4, 3, 0
+
+ .align 2
+gUnknown_083EC98C::
+ .incbin "graphics/unknown/83EC98C.gbapal"
+
+ .align 2
+Unknown_3EC9AC: @ 83EC9AC
+ .incbin "graphics/unknown/83EC9AC.gbapal"
+
+ .align 2
+gUnknown_083EC9CC:: @ 83EC9CC
+ .4byte sub_810153C
+ .4byte sub_8100EEC
+
+ .align 2
+gUnknown_083EC9D4:: @ 83EC9D4
+ .4byte sub_8101590
+ .4byte sub_8100EEC
+
+ .align 2
+gSpriteImage_83EC9DC:: @ 83EC9DC
+ .incbin "graphics/unknown_sprites/83EC9DC.4bpp"
+
+ .align 2
+gUnknown_083ECA5C:: @ 83ECA5C
+ obj_pal gUnknown_083EC98C, 0x0008
+
+ .align 2
+gUnknown_083ECA64:: @ 83ECA64
+ obj_pal Unknown_3EC9AC, 0x0008
+
+ .align 2
+gOamData_83ECA6C:: @ 83ECA6C
+ .2byte 0x0000
+ .2byte 0x4000
+ .2byte 0x0400
+
+ .align 2
+gSpriteAnim_83ECA74:: @ 83ECA74
+ obj_image_anim_frame 0, 0
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_83ECA7C:: @ 83ECA7C
+ .4byte gSpriteAnim_83ECA74
+
+ .align 2
+gSpriteImageTable_83ECA80:: @ 83ECA80
+ obj_frame_tiles gSpriteImage_83EC9DC, 0x80
+
+ .align 2
+gSpriteTemplate_83ECA88:: @ 83ECA88
+ spr_template 0xFFFF, 8, gOamData_83ECA6C, gSpriteAnimTable_83ECA7C, gSpriteImageTable_83ECA80, gDummySpriteAffineAnimTable, sub_8101698
+
+ .align 2
+gUnknown_083ECAA0:: @ 83ECAA0
+ .4byte sub_8101848
+ .4byte sub_80FED3C
+
+@ XXX: what is this?
+ .4byte 0x2000000
diff --git a/data/diploma.s b/data/diploma.s
new file mode 100644
index 000000000..c4edb83d8
--- /dev/null
+++ b/data/diploma.s
@@ -0,0 +1,17 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+ .align 2
+gDiplomaPalettes:: @ 840CB0C
+ .incbin "graphics/misc/diploma_national.gbapal"
+ .incbin "graphics/misc/diploma_hoenn.gbapal"
+
+ .align 2
+gDiplomaTilemap:: @ 840CB4C
+ .incbin "graphics/misc/diploma_map.bin.lz"
+
+ .align 2
+gDiplomaTiles:: @ 840D288
+ .incbin "graphics/misc/diploma.4bpp.lz"
diff --git a/data/easy_chat.s b/data/easy_chat.s
new file mode 100644
index 000000000..d2e8ad924
--- /dev/null
+++ b/data/easy_chat.s
@@ -0,0 +1,371 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+ .align 1
+gMysteryEventPhrase:: @ 83DB678
+ ec_word MYSTERY
+ ec_word EVENT
+ ec_word IS
+ ec_word EXCITING
+
+ .align 1
+gBerryMasterWifePhrases:: @ 83DB680
+ ec_word GREAT
+ ec_word BATTLE
+
+ ec_word CHALLENGE
+ ec_word CONTEST
+
+ ec_word OVERWHELMING
+ ec_pokemon1 LATIAS
+
+ ec_word COOL
+ ec_pokemon1 LATIOS
+
+ ec_word SUPER
+ ec_word HUSTLE
+
+gUnknown_083DB694:: @ 83DB694
+ .4byte 0x02001000
+
+gUnknown_083DB698:: @ 83DB698
+ .incbin "baserom.gba", 0x003db698, 0xc
+
+gUnknown_083DB6A4:: @ 83DB6A4
+ .incbin "baserom.gba", 0x003db6a4, 0xe
+
+gUnknown_083DB6B2:: @ 83DB6B2
+ .incbin "baserom.gba", 0x003db6b2, 0x42
+
+ .align 2
+gUnknown_083DB6F4:: @ 83DB6F4
+ .4byte OtherText_MakeProfilePage1, OtherText_MakeProfilePage2, 0x1
+ .4byte OtherText_MakeMessagePage1, OtherText_MakeMessagePage2, 0x1
+ .4byte OtherText_CombineNinePhrasesPage1, OtherText_CombineNinePhrasesPage2, 0x1
+ .4byte OtherText_DescribeFeelingsPage1, OtherText_DescribeFeelingsPage2, 0x1
+ .4byte OtherText_ImproveBardSongPage1, OtherText_ImproveBardSongPage2, 0x1
+ .4byte OtherText_CombineTwoPhrasesPage1, OtherText_CombineTwoPhrasesPage2, 0x1
+ .4byte OtherText_YourProfile, OtherText_ConfirmTrendyPage2, 0x0
+ .4byte OtherText_YourFeelingBattle, OtherText_ConfirmTrendyPage2, 0x1
+ .4byte OtherText_SetWinMessage, OtherText_ConfirmTrendyPage2, 0x1
+ .4byte OtherText_SetLossMessage, OtherText_ConfirmTrendyPage2, 0x1
+ .4byte OtherText_MailMessage, OtherText_ConfirmTrendyPage2, 0x1
+ .4byte OtherText_MailSalutation, OtherText_ConfirmTrendyPage2, 0x1
+ .4byte OtherText_NewSong, OtherText_ConfirmTrendyPage2, 0x0
+ .4byte OtherText_TheAnswer, OtherText_ConfirmTrendyPage2, 0x0
+ .4byte OtherText_ConfirmTrendyPage1, OtherText_ConfirmTrendyPage2, 0x1
+ .4byte OtherText_HipsterPage1, OtherText_HipsterPage2, 0x1
+ .4byte OtherText_WithFourPhrases, OtherText_CombineNinePhrasesPage2, 0x1
+
+gUnknown_083DB7C0:: @ 83DB7C0
+ .incbin "baserom.gba", 0x003db7c0, 0x1c
+
+ .align 2
+gUnknown_083DB7DC:: @ 83DB7DC
+ .4byte 0x0200ac80
+ .4byte 0x0200acc9
+ .4byte 0x0200ad12
+ .4byte 0x0200ad5b
+
+gUnknown_083DB7EC:: @ 83DB7EC
+ .incbin "baserom.gba", 0x003db7ec, 0x8
+
+gUnknown_083DB7F4:: @ 83DB7F4
+ .incbin "baserom.gba", 0x3db7f4, 0xc
+
+ .align 2
+InterviewPalette_0:: @ 83DB800
+ .incbin "graphics/misc/interview_pal0.gbapal"
+
+ .align 2
+InterviewPalette_1:: @ 83DB820
+ .incbin "graphics/misc/interview_pal1.gbapal"
+
+ .align 2
+InterviewArrowTiles: @ 83DB840
+ .incbin "graphics/misc/interview_arrow.4bpp"
+
+ .align 2
+InterviewButtonTiles: @ 83DB940
+ .incbin "graphics/misc/interview_buttons.4bpp"
+
+ .align 2
+gMenuInterviewFrame_Pal::
+ .incbin "graphics/misc/interview_frame.gbapal"
+
+ .align 2
+gMenuInterviewFrame_Gfx::
+ .incbin "graphics/misc/interview_frame.4bpp.lz"
+
+ .align 2
+InterviewTriangleCursorTiles: @ 83DBB94
+ .incbin "graphics/misc/interview_triangle_cursor.4bpp"
+
+ .align 2
+gSpriteSheets_Interview:: @ 83DBBB4
+ obj_tiles InterviewTriangleCursorTiles, 0x20, 0
+ obj_tiles gInterviewOutlineCursorTiles, 0x700, 1
+ obj_tiles InterviewArrowTiles, 0x100, 2
+ obj_tiles InterviewButtonTiles, 0x100, 3
+ null_obj_tiles
+
+ .align 2
+gSpritePalettes_Interview:: @ 83DBBDC
+ obj_pal InterviewPalette_0, 0
+ obj_pal InterviewPalette_1, 1
+ null_obj_pal
+
+ .align 2
+gOamData_83DBBF4:: @ 83DBBF4
+ .2byte 0x0000
+ .2byte 0x0000
+ .2byte 0x0000
+
+ .align 2
+gSpriteTemplate_83DBBFC:: @ 83DBBFC
+ spr_template 0, 0, gOamData_83DBBF4, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80E82BC
+
+ .align 2
+gOamData_83DBC14:: @ 83DBC14
+ .2byte 0x4400
+ .2byte 0x8000
+ .2byte 0x0400
+
+ .align 2
+gSpriteAnim_83DBC1C:: @ 83DBC1C
+ obj_image_anim_frame 0, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83DBC24:: @ 83DBC24
+ obj_image_anim_frame 8, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83DBC2C:: @ 83DBC2C
+ obj_image_anim_frame 0, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83DBC34:: @ 83DBC34
+ obj_image_anim_frame 24, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83DBC3C:: @ 83DBC3C
+ obj_image_anim_frame 32, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83DBC44:: @ 83DBC44
+ obj_image_anim_frame 40, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83DBC4C:: @ 83DBC4C
+ obj_image_anim_frame 40, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83DBC54:: @ 83DBC54
+ obj_image_anim_frame 40, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83DBC5C:: @ 83DBC5C
+ obj_image_anim_frame 48, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83DBC64:: @ 83DBC64
+ obj_image_anim_frame 40, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83DBC6C:: @ 83DBC6C
+ obj_image_anim_frame 48, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83DBC74:: @ 83DBC74
+ obj_image_anim_frame 40, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_83DBC7C:: @ 83DBC7C
+ .4byte gSpriteAnim_83DBC1C
+ .4byte gSpriteAnim_83DBC24
+ .4byte gSpriteAnim_83DBC2C
+ .4byte gSpriteAnim_83DBC34
+
+ .align 2
+gSpriteAnimTable_83DBC8C:: @ 83DBC8C
+ .4byte gSpriteAnim_83DBC3C
+ .4byte gSpriteAnim_83DBC44
+ .4byte gSpriteAnim_83DBC4C
+ .4byte gSpriteAnim_83DBC54
+
+ .align 2
+gSpriteAnimTable_83DBC9C:: @ 83DBC9C
+ .4byte gSpriteAnim_83DBC5C
+ .4byte gSpriteAnim_83DBC64
+ .4byte gSpriteAnim_83DBC6C
+ .4byte gSpriteAnim_83DBC74
+
+ .align 2
+gSpriteTemplate_83DBCAC:: @ 83DBCAC
+ spr_template 1, 1, gOamData_83DBC14, gSpriteAnimTable_83DBC7C, NULL, gDummySpriteAffineAnimTable, sub_80E85F8
+
+ .align 2
+gUnknown_083DBCC4:: @ 83DBCC4
+ .incbin "baserom.gba", 0x003dbcc4, 0x1c
+
+ .align 2
+gOamData_83DBCE0:: @ 83DBCE0
+ .2byte 0x0000
+ .2byte 0x4000
+ .2byte 0x0400
+
+ .align 2
+gSpriteAnim_83DBCE8:: @ 83DBCE8
+ obj_image_anim_frame 0, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83DBCF0:: @ 83DBCF0
+ obj_image_anim_frame 4, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_83DBCF8:: @ 83DBCF8
+ .4byte gSpriteAnim_83DBCE8
+ .4byte gSpriteAnim_83DBCF0
+
+Unknown_83DBD00:
+ .incbin "baserom.gba", 0x003dbd00, 0x8
+Unknown_83DBD08:
+ .incbin "baserom.gba", 0x003dbd08, 0x8
+
+gUnknown_083DBD10:: @ 83DBD10
+ .4byte Unknown_83DBD00
+ .4byte Unknown_83DBD08
+
+ .align 2
+gSpriteTemplate_83DBD18:: @ 83DBD18
+ spr_template 2, 0, gOamData_83DBCE0, gSpriteAnimTable_83DBCF8, NULL, gDummySpriteAffineAnimTable, sub_80E8B78
+
+ .align 2
+gUnknown_083DBD30:: @ 83DBD30
+ obj_tiles gMenuInterviewFrame_Gfx, 2048, 0x0006
+
+ .align 2
+gUnknown_083DBD38:: @ 83DBD38
+ obj_pal gMenuInterviewFrame_Pal, 0x0004
+
+ .align 2
+gOamData_83DBD40:: @ 83DBD40
+ .2byte 0x0000
+ .2byte 0xC000
+ .2byte 0x0000
+
+ .align 2
+gSpriteTemplate_83DBD48:: @ 83DBD48
+ spr_template 6, 4, gOamData_83DBD40, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
+
+ .align 2
+gUnknown_083DBD60:: @ 83DBD60
+ obj_tiles gMenuWordGroupIndicator_Gfx, 4096, 0x0007
+
+ .align 2
+gUnknown_083DBD68:: @ 83DBD68
+ obj_pal gMenuWordGroupIndicator_Pal, 0x0005
+
+ .align 2
+gOamData_83DBD70:: @ 83DBD70
+ .2byte 0x4000
+ .2byte 0xC000
+ .2byte 0x0000
+
+ .align 2
+gSpriteAnim_83DBD78:: @ 83DBD78
+ obj_image_anim_frame 96, 3
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83DBD80:: @ 83DBD80
+ obj_image_anim_frame 64, 4
+ obj_image_anim_frame 96, 4
+ obj_image_anim_frame 64, 4
+ obj_image_anim_frame 0, 4
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83DBD94:: @ 83DBD94
+ obj_image_anim_frame 64, 4
+ obj_image_anim_frame 96, 4
+ obj_image_anim_frame 64, 4
+ obj_image_anim_frame 32, 4
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83DBDA8:: @ 83DBDA8
+ obj_image_anim_frame 64, 2
+ obj_image_anim_frame 32, 2
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83DBDB4:: @ 83DBDB4
+ obj_image_anim_frame 64, 2
+ obj_image_anim_frame 0, 2
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83DBDC0:: @ 83DBDC0
+ obj_image_anim_frame 64, 2
+ obj_image_anim_frame 96, 2
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_83DBDCC:: @ 83DBDCC
+ .4byte gSpriteAnim_83DBD78
+ .4byte gSpriteAnim_83DBD80
+ .4byte gSpriteAnim_83DBD94
+ .4byte gSpriteAnim_83DBDA8
+ .4byte gSpriteAnim_83DBDB4
+ .4byte gSpriteAnim_83DBDC0
+
+ .align 2
+gSpriteTemplate_83DBDE4:: @ 83DBDE4
+ spr_template 7, 5, gOamData_83DBD70, gSpriteAnimTable_83DBDCC, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
+
+gUnknown_083DBDFC:: @ 83DBDFC
+ .incbin "baserom.gba", 0x003dbdfc, 0x20
+
+gUnknown_083DBE1C:: @ 83DBE1C
+ .incbin "baserom.gba", 0x003dbe1c, 0x24
+
+gUnknown_083DBE40:: @ 83DBE40
+ .incbin "baserom.gba", 0x003dbe40, 0x68
+
+gUnknown_083DBEA8:: @ 83DBEA8
+ .incbin "baserom.gba", 0x003dbea8, 0x4
+
+gUnknown_083DBEAC:: @ 83DBEAC
+ .incbin "baserom.gba", 0x003dbeac, 0x80
+
+@ 83DBF2C
+ .include "data/text/easy_chat/group_words.inc"
+
+@ 83DE138
+ .include "data/text/easy_chat/words_by_letter.inc"
+
+@ 83DEFFA
+ .include "data/text/easy_chat/group_sizes.inc"
+
+@ 83DF010
+ .include "data/text/easy_chat/group_orders.inc"
+
+@ 83DFE6C
+ .include "data/text/easy_chat/group_name_table.inc"
diff --git a/data/event_scripts.s b/data/event_scripts.s
index e76663f7f..d909f1006 100644
--- a/data/event_scripts.s
+++ b/data/event_scripts.s
@@ -1324,7 +1324,7 @@ EverGrandeCity_HallOfFame_EventScript_19FC70:: @ 819FC70
setflag 2141
return
-gUnknown_0819FC74:: @ 819FC74
+EventScript_LeagueWhiteOut:: @ 819FC74
call EverGrandeCity_HallOfFame_EventScript_19FD09
call EventScript_19FC84
jump gUnknown_0819FC9F
@@ -1686,7 +1686,7 @@ gUnknown_081A0009:: @ 81A0009
end
EventScript_1A0023:
- message UnknownString_81A0A01
+ message gPCText_WhichPCShouldBeAccessed
waittext
special 262
waitstate
@@ -2970,8 +2970,7 @@ UnusedMixRecordsSeeYouAgainText: @ 81A09D2
UnknownString_81A09EC: @ 81A09EC
.string "{PLAYER} booted up the PC.$"
-gUnknown_081A0A01:: @ 81A0A01
-UnknownString_81A0A01: @ 81A0A01
+gPCText_WhichPCShouldBeAccessed:: @ 81A0A01
.string "Which PC should be accessed?$"
UnknownString_81A0A1E: @ 81A0A1E
diff --git a/data/evolution_graphics.s b/data/evolution_graphics.s
new file mode 100644
index 000000000..1704e4fdb
--- /dev/null
+++ b/data/evolution_graphics.s
@@ -0,0 +1,42 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+ .align 2
+gEvoSparklePalette: @ 8416E44
+ .incbin "graphics/misc/evo_sparkle.gbapal"
+
+ .align 2
+gEvoSparkleTiles: @ 8416E64
+ .incbin "graphics/misc/evo_sparkle.4bpp.lz"
+
+gUnknown_08416E84:: @ 8416E84
+ obj_tiles gEvoSparkleTiles, 0x20, 1001
+ .space 8
+
+gUnknown_08416E94:: @ 8416E94
+ obj_pal gEvoSparklePalette, 1001
+ .space 8
+
+ .align 2
+gOamData_8416EA4:: @ 8416EA4
+ .2byte 0x00A0
+ .2byte 0x0000
+ .2byte 0x0400
+
+ .align 2
+gSpriteAnim_8416EAC:: @ 8416EAC
+ obj_image_anim_frame 0, 8
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_8416EB4:: @ 8416EB4
+ .4byte gSpriteAnim_8416EAC
+
+ .align 2
+gSpriteTemplate_8416EB8:: @ 8416EB8
+ spr_template 1001, 1001, gOamData_8416EA4, gSpriteAnimTable_8416EB4, NULL, gDummySpriteAffineAnimTable, nullsub_84
+
+gUnknown_08416ED0:: @ 8416ED0
+ .incbin "baserom.gba", 0x00416ed0, 0x38
diff --git a/data/evolution_scene.s b/data/evolution_scene.s
new file mode 100644
index 000000000..24744a196
--- /dev/null
+++ b/data/evolution_scene.s
@@ -0,0 +1,14 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+gUnknown_083F868C:: @ 83F868C
+ .string "ヌケニン$"
+
+ .string "{COLOR DARK_GREY}{HIGHLIGHT WHITE2}{SHADOW LIGHT_GREY}$"
+ .string "▶\n $"
+ .string " \n▶$"
+ .string " \n $"
+
+ .space 9
diff --git a/data/field_door.s b/data/field_door.s
new file mode 100644
index 000000000..d7ccdd2d4
--- /dev/null
+++ b/data/field_door.s
@@ -0,0 +1,416 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+ .align 2
+DoorAnimTiles_04: @ 8308F1C
+ .incbin "graphics/door_anims/04/0.4bpp"
+ .incbin "graphics/door_anims/04/1.4bpp"
+ .incbin "graphics/door_anims/04/2.4bpp"
+
+ .space 32
+
+ .align 2
+DoorAnimTiles_05: @ 830923C
+ .incbin "graphics/door_anims/05/0.4bpp"
+ .incbin "graphics/door_anims/05/1.4bpp"
+ .incbin "graphics/door_anims/05/2.4bpp"
+
+ .align 2
+DoorAnimTiles_08: @ 830953C
+ .incbin "graphics/door_anims/08/0.4bpp"
+ .incbin "graphics/door_anims/08/1.4bpp"
+ .incbin "graphics/door_anims/08/2.4bpp"
+
+ .space 32
+
+ .align 2
+DoorAnimTiles_15: @ 830985C
+ .incbin "graphics/door_anims/15/0.4bpp"
+ .incbin "graphics/door_anims/15/1.4bpp"
+ .incbin "graphics/door_anims/15/2.4bpp"
+
+ .space 32
+
+ .align 2
+DoorAnimTiles_16: @ 8309B7C
+ .incbin "graphics/door_anims/16/0.4bpp"
+ .incbin "graphics/door_anims/16/1.4bpp"
+ .incbin "graphics/door_anims/16/2.4bpp"
+
+ .space 32
+
+ .align 2
+DoorAnimTiles_00: @ 8309E9C
+ .incbin "graphics/door_anims/00/0.4bpp"
+ .incbin "graphics/door_anims/00/1.4bpp"
+ .incbin "graphics/door_anims/00/2.4bpp"
+
+ .align 2
+DoorAnimTiles_01: @ 830A19C
+ .incbin "graphics/door_anims/01/0.4bpp"
+ .incbin "graphics/door_anims/01/1.4bpp"
+ .incbin "graphics/door_anims/01/2.4bpp"
+
+ .align 2
+DoorAnimTiles_02: @ 830A49C
+ .incbin "graphics/door_anims/02/0.4bpp"
+ .incbin "graphics/door_anims/02/1.4bpp"
+ .incbin "graphics/door_anims/02/2.4bpp"
+
+ .align 2
+DoorAnimTiles_03: @ 830A79C
+ .incbin "graphics/door_anims/03/0.4bpp"
+ .incbin "graphics/door_anims/03/1.4bpp"
+ .incbin "graphics/door_anims/03/2.4bpp"
+
+ .align 2
+DoorAnimTiles_06: @ 830AA9C
+ .incbin "graphics/door_anims/06/0.4bpp"
+ .incbin "graphics/door_anims/06/1.4bpp"
+ .incbin "graphics/door_anims/06/2.4bpp"
+
+ .align 2
+DoorAnimTiles_07: @ 830AD9C
+ .incbin "graphics/door_anims/07/0.4bpp"
+ .incbin "graphics/door_anims/07/1.4bpp"
+ .incbin "graphics/door_anims/07/2.4bpp"
+
+ .align 2
+DoorAnimTiles_09: @ 830B09C
+ .incbin "graphics/door_anims/09/0.4bpp"
+ .incbin "graphics/door_anims/09/1.4bpp"
+ .incbin "graphics/door_anims/09/2.4bpp"
+
+ .space 32
+
+ .align 2
+DoorAnimTiles_10: @ 830B3BC
+ .incbin "graphics/door_anims/10/0.4bpp"
+ .incbin "graphics/door_anims/10/1.4bpp"
+ .incbin "graphics/door_anims/10/2.4bpp"
+
+ .space 32
+
+ .align 2
+DoorAnimTiles_11: @ 830B6DC
+ .incbin "graphics/door_anims/11/0.4bpp"
+ .incbin "graphics/door_anims/11/1.4bpp"
+ .incbin "graphics/door_anims/11/2.4bpp"
+
+ .space 32
+
+ .align 2
+DoorAnimTiles_12: @ 830B9FC
+ .incbin "graphics/door_anims/12/0.4bpp"
+ .incbin "graphics/door_anims/12/1.4bpp"
+ .incbin "graphics/door_anims/12/2.4bpp"
+
+ .space 32
+
+ .align 2
+DoorAnimTiles_13: @ 830BD1C
+ .incbin "graphics/door_anims/13/0.4bpp"
+ .incbin "graphics/door_anims/13/1.4bpp"
+ .incbin "graphics/door_anims/13/2.4bpp"
+
+ .space 32
+
+ .align 2
+DoorAnimTiles_14: @ 830C03C
+ .incbin "graphics/door_anims/14/0.4bpp"
+ .incbin "graphics/door_anims/14/1.4bpp"
+ .incbin "graphics/door_anims/14/2.4bpp"
+
+ .space 32
+
+ .align 2
+DoorAnimTiles_17: @ 830C35C
+ .incbin "graphics/door_anims/17/0.4bpp"
+ .incbin "graphics/door_anims/17/1.4bpp"
+ .incbin "graphics/door_anims/17/2.4bpp"
+
+ .space 32
+
+ .align 2
+DoorAnimTiles_18: @ 830C67C
+ .incbin "graphics/door_anims/18/0.4bpp"
+ .incbin "graphics/door_anims/18/1.4bpp"
+ .incbin "graphics/door_anims/18/2.4bpp"
+
+ .space 32
+
+ .align 2
+DoorAnimTiles_19: @ 830C99C
+ .incbin "graphics/door_anims/19/0.4bpp"
+ .incbin "graphics/door_anims/19/1.4bpp"
+ .incbin "graphics/door_anims/19/2.4bpp"
+
+ .space 32
+
+ .align 2
+DoorAnimTiles_20: @ 830CCBC
+ .incbin "graphics/door_anims/20/0.4bpp"
+ .incbin "graphics/door_anims/20/1.4bpp"
+ .incbin "graphics/door_anims/20/2.4bpp"
+
+ .space 32
+
+ .align 2
+DoorAnimTiles_21: @ 830CFDC
+ .incbin "graphics/door_anims/21/0.4bpp"
+ .incbin "graphics/door_anims/21/1.4bpp"
+ .incbin "graphics/door_anims/21/2.4bpp"
+
+ .space 32
+
+ .align 2
+DoorAnimTiles_22: @ 830D2FC
+ .incbin "graphics/door_anims/22/0.4bpp"
+ .incbin "graphics/door_anims/22/1.4bpp"
+ .incbin "graphics/door_anims/22/2.4bpp"
+
+ .space 32
+
+ .align 2
+DoorAnimTiles_23: @ 830D61C
+ .incbin "graphics/door_anims/23/0.4bpp"
+ .incbin "graphics/door_anims/23/1.4bpp"
+ .incbin "graphics/door_anims/23/2.4bpp"
+
+ .space 32
+
+ .align 2
+DoorAnimTiles_24: @ 830D93C
+ .incbin "graphics/door_anims/24/0.4bpp"
+ .incbin "graphics/door_anims/24/1.4bpp"
+ .incbin "graphics/door_anims/24/2.4bpp"
+
+ .space 32
+
+ .align 2
+DoorAnimTiles_25: @ 830DC5C
+ .incbin "graphics/door_anims/25/0.4bpp"
+ .incbin "graphics/door_anims/25/1.4bpp"
+ .incbin "graphics/door_anims/25/2.4bpp"
+
+ .space 32
+
+ .align 2
+DoorAnimTiles_26: @ 830DF7C
+ .incbin "graphics/door_anims/26/0.4bpp"
+ .incbin "graphics/door_anims/26/1.4bpp"
+ .incbin "graphics/door_anims/26/2.4bpp"
+
+ .space 32
+
+ .align 2
+DoorAnimTiles_27: @ 830E29C
+ .incbin "graphics/door_anims/27/0.4bpp"
+ .incbin "graphics/door_anims/27/1.4bpp"
+ .incbin "graphics/door_anims/27/2.4bpp"
+
+ .space 32
+
+ .align 2
+DoorAnimTiles_28: @ 830E5BC
+ .incbin "graphics/door_anims/28/0.4bpp"
+ .incbin "graphics/door_anims/28/1.4bpp"
+ .incbin "graphics/door_anims/28/2.4bpp"
+
+ .space 32
+
+ .align 2
+DoorAnimTiles_29: @ 830E8DC
+ .incbin "graphics/door_anims/29/0.4bpp"
+ .incbin "graphics/door_anims/29/1.4bpp"
+ .incbin "graphics/door_anims/29/2.4bpp"
+
+ .space 32
+
+ .align 2
+DoorAnimTiles_30: @ 830EBFC
+ .incbin "graphics/door_anims/30/0.4bpp"
+ .incbin "graphics/door_anims/30/1.4bpp"
+ .incbin "graphics/door_anims/30/2.4bpp"
+
+ .space 32
+
+ .align 2
+DoorAnimTiles_31: @ 830EF1C
+ .incbin "graphics/door_anims/31/0.4bpp"
+ .incbin "graphics/door_anims/31/1.4bpp"
+ .incbin "graphics/door_anims/31/2.4bpp"
+
+ .space 32
+
+ .align 2
+DoorAnimTiles_32: @ 830F23C
+ .incbin "graphics/door_anims/32/0.4bpp"
+ .incbin "graphics/door_anims/32/1.4bpp"
+ .incbin "graphics/door_anims/32/2.4bpp"
+
+ .space 32
+
+ .align 2
+DoorAnimTiles_33: @ 830F55C
+ .incbin "graphics/door_anims/33/0.4bpp"
+ .incbin "graphics/door_anims/33/1.4bpp"
+ .incbin "graphics/door_anims/33/2.4bpp"
+
+ .space 32
+
+gDoorOpenAnimFrames:: @ 830F87C
+ door_anim_frame 4, -1
+ door_anim_frame 4, 0
+ door_anim_frame 4, 0x100
+ door_anim_frame 4, 0x200
+ door_anim_frame 0, 0
+
+gDoorCloseAnimFrames:: @ 830F890
+ door_anim_frame 4, 0x200
+ door_anim_frame 4, 0x100
+ door_anim_frame 4, 0
+ door_anim_frame 4, -1
+ door_anim_frame 0, 0
+
+DoorAnimPalettes_830F8A4:
+ .byte 1, 1, 1, 1, 1, 1, 1, 1
+
+DoorAnimPalettes_830F8AC:
+ .byte 1, 1, 1, 1, 1, 1, 1, 1
+
+DoorAnimPalettes_830F8B4:
+ .byte 5, 5, 5, 5, 5, 5, 5, 5
+
+DoorAnimPalettes_830F8BC:
+ .byte 0, 0, 1, 1, 1, 1, 1, 1
+
+DoorAnimPalettes_830F8C4:
+ .byte 6, 6, 6, 6, 6, 6, 6, 6
+
+DoorAnimPalettes_830F8CC:
+ .byte 8, 8, 8, 8, 8, 8, 8, 8
+
+DoorAnimPalettes_830F8D4:
+ .byte 11, 11, 11, 11, 11, 11, 11, 11
+
+DoorAnimPalettes_830F8DC:
+ .byte 10, 10, 10, 10, 10, 10, 10, 10
+
+DoorAnimPalettes_830F8E4:
+ .byte 7, 7, 7, 7, 7, 7, 7, 7
+
+DoorAnimPalettes_830F8EC:
+ .byte 8, 8, 8, 8, 8, 8, 8, 8
+
+DoorAnimPalettes_830F8F4:
+ .byte 9, 9, 9, 9, 9, 9, 9, 9
+
+DoorAnimPalettes_830F8FC:
+ .byte 9, 9, 1, 1, 1, 1, 1, 1
+
+DoorAnimPalettes_830F904:
+ .byte 8, 8, 8, 8, 8, 8, 8, 8
+
+DoorAnimPalettes_830F90C:
+ .byte 9, 9, 9, 9, 9, 9, 9, 9
+
+DoorAnimPalettes_830F914:
+ .byte 6, 6, 6, 6, 6, 6, 6, 6
+
+DoorAnimPalettes_830F91C:
+ .byte 6, 6, 6, 6, 6, 6, 6, 6
+
+DoorAnimPalettes_830F924:
+ .byte 0, 0, 5, 5, 5, 5, 5, 5
+
+DoorAnimPalettes_830F92C:
+ .byte 6, 6, 1, 1, 1, 1, 1, 1
+
+DoorAnimPalettes_830F934:
+ .byte 7, 7, 7, 7, 7, 7, 7, 7
+
+DoorAnimPalettes_830F93C:
+ .byte 6, 6, 5, 5, 5, 5, 5, 5
+
+DoorAnimPalettes_830F944:
+ .byte 5, 5, 5, 5, 5, 5, 5, 5
+
+DoorAnimPalettes_830F94C:
+ .byte 1, 1, 1, 1, 1, 1, 1, 1
+
+DoorAnimPalettes_830F954:
+ .byte 6, 6, 7, 7, 7, 7, 7, 7
+
+DoorAnimPalettes_830F95C:
+ .byte 7, 7, 7, 7, 7, 7, 7, 7
+
+DoorAnimPalettes_830F964:
+ .byte 5, 5, 5, 5, 5, 5, 5, 5
+
+DoorAnimPalettes_830F96C:
+ .byte 9, 9, 9, 9, 9, 9, 9, 9
+
+DoorAnimPalettes_830F974:
+ .byte 8, 8, 8, 8, 8, 8, 8, 8
+
+DoorAnimPalettes_830F97C:
+ .byte 6, 6, 6, 6, 6, 6, 6, 6
+
+DoorAnimPalettes_830F984:
+ .byte 7, 7, 7, 7, 7, 7, 7, 7
+
+DoorAnimPalettes_830F98C:
+ .byte 11, 11, 7, 7, 7, 7, 7, 7
+
+DoorAnimPalettes_830F994:
+ .byte 7, 7, 7, 7, 7, 7, 7, 7
+
+DoorAnimPalettes_830F99C:
+ .byte 6, 6, 7, 7, 7, 7, 7, 7
+
+DoorAnimPalettes_830F9A4:
+ .byte 9, 9, 9, 9, 9, 9, 9, 9
+
+DoorAnimPalettes_830F9AC:
+ .byte 7, 7, 7, 7, 7, 7, 7, 7
+
+ .align 2
+gDoorAnimGraphicsTable:: @ 830F9B4
+ door_anim_gfx 0x021, 0, DoorAnimTiles_00, DoorAnimPalettes_830F8A4
+ door_anim_gfx 0x061, 1, DoorAnimTiles_01, DoorAnimPalettes_830F8AC
+ door_anim_gfx 0x1CD, 1, DoorAnimTiles_02, DoorAnimPalettes_830F8B4
+ door_anim_gfx 0x041, 1, DoorAnimTiles_03, DoorAnimPalettes_830F8BC
+ door_anim_gfx 0x248, 0, DoorAnimTiles_04, DoorAnimPalettes_830F8C4
+ door_anim_gfx 0x249, 0, DoorAnimTiles_05, DoorAnimPalettes_830F8CC
+ door_anim_gfx 0x22F, 0, DoorAnimTiles_06, DoorAnimPalettes_830F8D4
+ door_anim_gfx 0x21F, 0, DoorAnimTiles_07, DoorAnimPalettes_830F8DC
+ door_anim_gfx 0x2A5, 0, DoorAnimTiles_08, DoorAnimPalettes_830F8E4
+ door_anim_gfx 0x287, 0, DoorAnimTiles_09, DoorAnimPalettes_830F8F4
+ door_anim_gfx 0x2AC, 0, DoorAnimTiles_10, DoorAnimPalettes_830F934
+ door_anim_gfx 0x3A1, 0, DoorAnimTiles_11, DoorAnimPalettes_830F93C
+ door_anim_gfx 0x2DC, 0, DoorAnimTiles_12, DoorAnimPalettes_830F92C
+ door_anim_gfx 0x225, 0, DoorAnimTiles_13, DoorAnimPalettes_830F924
+ door_anim_gfx 0x1DB, 1, DoorAnimTiles_14, DoorAnimPalettes_830F94C
+ door_anim_gfx 0x246, 0, DoorAnimTiles_15, DoorAnimPalettes_830F8EC
+ door_anim_gfx 0x28E, 0, DoorAnimTiles_16, DoorAnimPalettes_830F944
+ door_anim_gfx 0x2A1, 0, DoorAnimTiles_17, DoorAnimPalettes_830F8FC
+ door_anim_gfx 0x21C, 0, DoorAnimTiles_18, DoorAnimPalettes_830F914
+ door_anim_gfx 0x21E, 0, DoorAnimTiles_19, DoorAnimPalettes_830F91C
+ door_anim_gfx 0x21D, 1, DoorAnimTiles_20, DoorAnimPalettes_830F904
+ door_anim_gfx 0x21A, 0, DoorAnimTiles_21, DoorAnimPalettes_830F90C
+ door_anim_gfx 0x224, 0, DoorAnimTiles_22, DoorAnimPalettes_830F954
+ door_anim_gfx 0x289, 0, DoorAnimTiles_23, DoorAnimPalettes_830F95C
+ door_anim_gfx 0x30C, 1, DoorAnimTiles_24, DoorAnimPalettes_830F964
+ door_anim_gfx 0x32D, 1, DoorAnimTiles_25, DoorAnimPalettes_830F96C
+ door_anim_gfx 0x2ED, 1, DoorAnimTiles_26, DoorAnimPalettes_830F974
+ door_anim_gfx 0x264, 1, DoorAnimTiles_27, DoorAnimPalettes_830F97C
+ door_anim_gfx 0x22B, 0, DoorAnimTiles_28, DoorAnimPalettes_830F984
+ door_anim_gfx 0x2F7, 0, DoorAnimTiles_29, DoorAnimPalettes_830F98C
+ door_anim_gfx 0x297, 0, DoorAnimTiles_30, DoorAnimPalettes_830F994
+ door_anim_gfx 0x285, 1, DoorAnimTiles_31, DoorAnimPalettes_830F99C
+ door_anim_gfx 0x25D, 1, DoorAnimTiles_32, DoorAnimPalettes_830F9A4
+ door_anim_gfx 0x20E, 1, DoorAnimTiles_33, DoorAnimPalettes_830F9AC
+ door_anim_gfx 0, 0, 0, 0
diff --git a/data/field_effect.s b/data/field_effect.s
new file mode 100644
index 000000000..b295cc274
--- /dev/null
+++ b/data/field_effect.s
@@ -0,0 +1,399 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+ .align 2
+gSpriteImage_839DC14:: @ 839DC14
+ .incbin "graphics/birch_speech/birch.4bpp"
+
+ .align 2
+gBirchPalette:: @ 839E414
+ .incbin "graphics/birch_speech/birch.gbapal"
+
+ .align 2
+gSpriteImage_839E434:: @ 839E434
+ .incbin "graphics/misc/pokeball_glow.4bpp"
+
+ .align 2
+gFieldEffectObjectPalette4: @ 839E454
+ .incbin "graphics/field_effect_objects/palettes/04.gbapal"
+
+ .align 2
+gSpriteImage_839E474:: @ 839E474
+ .incbin "graphics/misc/pokecenter_monitor/0.4bpp"
+
+ .align 2
+gSpriteImage_839E534:: @ 839E534
+ .incbin "graphics/misc/pokecenter_monitor/1.4bpp"
+
+ .align 2
+gSpriteImage_839E5F4:: @ 839E5F4
+ .incbin "graphics/misc/big_hof_monitor.4bpp"
+
+ .align 2
+gSpriteImage_839E7F4:: @ 839E7F4
+ .incbin "graphics/misc/small_hof_monitor.4bpp"
+
+ .align 2
+gFieldEffectObjectPalette5: @ 839E8F4
+ .incbin "graphics/field_effect_objects/palettes/05.gbapal"
+
+@ Graphics for the lights streaking past your Pokémon when it uses a field move.
+
+ .align 2
+gFieldMoveStreaksTiles:: @ 839E914
+ .incbin "graphics/misc/field_move_streaks.4bpp"
+
+ .align 2
+gFieldMoveStreaksPalette:: @ 839EB14
+ .incbin "graphics/misc/field_move_streaks.gbapal"
+
+ .align 2
+gFieldMoveStreaksTilemap:: @ 839EB34
+ .incbin "graphics/misc/field_move_streaks_map.bin"
+
+@ The following light streaks effect is used when the map is dark (e.g. a cave).
+
+ .align 2
+gDarknessFieldMoveStreaksTiles:: @ 839EDB4
+ .incbin "graphics/misc/darkness_field_move_streaks.4bpp"
+
+ .align 2
+gDarknessFieldMoveStreaksPalette:: @ 839EE34
+ .incbin "graphics/misc/darkness_field_move_streaks.gbapal"
+
+ .align 2
+gDarknessFieldMoveStreaksTilemap:: @ 839EE54
+ .incbin "graphics/misc/darkness_field_move_streaks_map.bin"
+
+ .align 2
+gFieldEffectScriptFuncs:: @ 839F0D4
+ .4byte FieldEffectCmd_loadtiles
+ .4byte FieldEffectCmd_loadfadedpal
+ .4byte FieldEffectCmd_loadpal
+ .4byte FieldEffectCmd_callnative
+ .4byte FieldEffectCmd_end
+ .4byte FieldEffectCmd_loadgfx_callnative
+ .4byte FieldEffectCmd_loadtiles_callnative
+ .4byte FieldEffectCmd_loadfadedpal_callnative
+
+ .align 2
+gOamData_839F0F4:: @ 839F0F4
+ .2byte 0x0000
+ .2byte 0xC000
+ .2byte 0x0000
+
+ .align 2
+gOamData_839F0FC:: @ 839F0FC
+ .2byte 0x0000
+ .2byte 0x0000
+ .2byte 0x0000
+
+ .align 2
+gOamData_839F104:: @ 839F104
+ .2byte 0x0000
+ .2byte 0x4000
+ .2byte 0x0000
+
+ .align 2
+gSpriteImageTable_839F10C:: @ 839F10C
+ obj_frame_tiles gSpriteImage_839DC14, 0x800
+
+ .align 2
+gUnknown_0839F114:: @ 839F114
+ obj_pal gBirchPalette, 0x1006
+
+ .align 2
+gSpriteAnim_839F11C:: @ 839F11C
+ obj_image_anim_frame 0, 1
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_839F124:: @ 839F124
+ .4byte gSpriteAnim_839F11C
+
+ .align 2
+gSpriteTemplate_839F128:: @ 839F128
+ spr_template 0xFFFF, 4102, gOamData_839F0F4, gSpriteAnimTable_839F124, gSpriteImageTable_839F10C, gDummySpriteAffineAnimTable, SpriteCallbackDummy
+
+ .align 2
+gFieldEffectObjectPaletteInfo4:: @ 839F140
+ obj_pal gFieldEffectObjectPalette4, 0x1007
+
+ .align 2
+gFieldEffectObjectPaletteInfo5:: @ 839F148
+ obj_pal gFieldEffectObjectPalette5, 0x1010
+
+ .align 2
+gOamData_839F150:: @ 839F150
+ .2byte 0x4000
+ .2byte 0x8000
+ .2byte 0x0000
+
+ .align 2
+gSpriteImageTable_839F158:: @ 839F158
+ obj_frame_tiles gSpriteImage_839E434, 0x20
+
+ .align 2
+gSpriteImageTable_839F160:: @ 839F160
+ obj_frame_tiles gSpriteImage_839E474, 0xc0
+ obj_frame_tiles gSpriteImage_839E534, 0xc0
+
+ .align 2
+gSpriteImageTable_839F170:: @ 839F170
+ obj_frame_tiles gSpriteImage_839E5F4, 0x200
+
+ .align 2
+gSpriteImageTable_839F178:: @ 839F178
+ obj_frame_tiles gSpriteImage_839E7F4, 0x200
+
+ .align 2
+Unknown_39F180:: @ 839F180
+ .incbin "baserom.gba", 0x0039f180, 0x20
+
+ .align 2
+gUnknown_0839F1A0:: @ 839F1A0
+ .4byte 4, Unknown_39F180
+
+ .align 2
+Unknown_39F1A8:: @ 39F1A8
+ .incbin "baserom.gba", 0x0039f1a8, 0x20
+
+ .align 2
+gUnknown_0839F1C8:: @ 839F1C8
+ .4byte 4, Unknown_39F1A8
+
+ .align 2
+gSpriteAnim_839F1D0:: @ 839F1D0
+ obj_image_anim_frame 0, 1
+ obj_image_anim_jump 0
+
+ .align 2
+gSpriteAnim_839F1D8:: @ 839F1D8
+ obj_image_anim_frame 0, 16
+ obj_image_anim_frame 1, 16
+ obj_image_anim_frame 0, 16
+ obj_image_anim_frame 1, 16
+ obj_image_anim_frame 0, 16
+ obj_image_anim_frame 1, 16
+ obj_image_anim_frame 0, 16
+ obj_image_anim_frame 1, 16
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_839F1FC:: @ 839F1FC
+ .4byte gSpriteAnim_839F1D0
+ .4byte gSpriteAnim_839F1D8
+
+ .align 2
+gSpriteAnimTable_839F204:: @ 839F204
+ .4byte gSpriteAnim_839F1D0
+
+ .align 2
+gSpriteTemplate_839F208:: @ 839F208
+ spr_template 0xFFFF, 4103, gOamData_839F0FC, gSpriteAnimTable_839F1FC, gSpriteImageTable_839F158, gDummySpriteAffineAnimTable, SpriteCB_PokeballGlow
+
+ .align 2
+gSpriteTemplate_839F220:: @ 839F220
+ spr_template 0xFFFF, 4100, gOamData_839F104, gSpriteAnimTable_839F1FC, gSpriteImageTable_839F160, gDummySpriteAffineAnimTable, SpriteCB_PokecenterMonitor
+
+ .align 2
+gSpriteTemplate_839F238:: @ 839F238
+ spr_template 0xFFFF, 4112, gOamData_839F104, gSpriteAnimTable_839F204, gSpriteImageTable_839F170, gDummySpriteAffineAnimTable, SpriteCB_HallOfFameMonitor
+
+ .align 2
+gSpriteTemplate_839F250:: @ 839F250
+ spr_template 0xFFFF, 4112, gOamData_839F150, gSpriteAnimTable_839F204, gSpriteImageTable_839F178, gDummySpriteAffineAnimTable, SpriteCB_HallOfFameMonitor
+
+ .align 2
+gUnknown_0839F268:: @ 839F268
+ .4byte PokecenterHealEffect_0
+ .4byte PokecenterHealEffect_1
+ .4byte PokecenterHealEffect_2
+ .4byte PokecenterHealEffect_3
+
+ .align 2
+gUnknown_0839F278:: @ 839F278
+ .4byte HallOfFameRecordEffect_0
+ .4byte HallOfFameRecordEffect_1
+ .4byte HallOfFameRecordEffect_2
+ .4byte HallOfFameRecordEffect_3
+
+ .align 2
+gUnknown_0839F288:: @ 839F288
+ .4byte PokeballGlowEffect_0
+ .4byte PokeballGlowEffect_1
+ .4byte PokeballGlowEffect_2
+ .4byte PokeballGlowEffect_3
+ .4byte PokeballGlowEffect_4
+ .4byte PokeballGlowEffect_5
+ .4byte PokeballGlowEffect_6
+ .4byte PokeballGlowEffect_7
+
+gUnknown_0839F2A8:: @ 839F2A8
+ .incbin "baserom.gba", 0x0039f2a8, 0x18
+
+gUnknown_0839F2C0:: @ 839F2C0
+ .incbin "baserom.gba", 0x0039f2c0, 0x4
+
+gUnknown_0839F2C4:: @ 839F2C4
+ .incbin "baserom.gba", 0x0039f2c4, 0x4
+
+gUnknown_0839F2C8:: @ 839F2C8
+ .space 4
+
+ .align 2
+gUnknown_0839F2CC:: @ 839F2CC
+ .4byte sub_80867AC
+ .4byte sub_8086854
+ .4byte sub_8086870
+ .4byte sub_80868E4
+ .4byte sub_808699C
+ .4byte sub_80869B8
+ .4byte sub_80869F8
+
+ .align 2
+gUnknown_0839F2E8:: @ 839F2E8
+ .4byte sub_8086AA0
+ .4byte sub_8086AC0
+ .4byte sub_8086B30
+ .4byte sub_8086B54
+ .4byte sub_8086B64
+ .4byte sub_8086B88
+
+ .align 2
+gUnknown_0839F300:: @ 839F300
+ .4byte sub_8086CF4
+ .4byte sub_8086D70
+ .4byte sub_8086DB0
+ .4byte sub_8086E10
+ .4byte sub_8086E50
+ .4byte sub_8086EB0
+ .4byte sub_8086ED4
+
+ .align 2
+gUnknown_0839F31C:: @ 839F31C
+ .4byte sub_8086FB0
+ .4byte waterfall_1_do_anim_probably
+ .4byte waterfall_2_wait_anim_finish_probably
+ .4byte sub_8087030
+ .4byte sub_8087058
+
+ .align 2
+gUnknown_0839F330:: @ 839F330
+ .4byte sub_8087124
+ .4byte dive_2_unknown
+ .4byte dive_3_unknown
+
+ .align 2
+gUnknown_0839F33C:: @ 839F33C
+ .4byte sub_808722C
+ .4byte sub_8087264
+ .4byte sub_8087298
+ .4byte sub_80872E4
+ .4byte sub_80873D8
+ .4byte sub_80873F4
+
+ .align 2
+gUnknown_0839F354:: @ 839F354
+ .4byte sub_80874CC
+ .4byte sub_80874FC
+ .4byte sub_8087548
+ .4byte sub_808759C
+
+ .align 2
+gUnknown_0839F364:: @ 839F364
+ .4byte sub_80876C8
+ .4byte sub_80876F8
+ .4byte sub_8087774
+ .4byte sub_80877AC
+ .4byte sub_80877D4
+
+ .align 2
+gUnknown_0839F378:: @ 839F378
+ .4byte sub_80878F4
+ .4byte sub_8087914
+
+gUnknown_0839F380:: @ 839F380
+ .incbin "baserom.gba", 0x0039f380, 0x8
+
+ .align 2
+gUnknown_0839F388:: @ 839F388
+ .4byte sub_8087AA4
+ .4byte sub_8087AC8
+
+ .align 2
+gUnknown_0839F390:: @ 839F390
+ .4byte sub_8087BEC
+ .4byte sub_8087C14
+ .4byte sub_8087CA4
+ .4byte sub_8087D78
+
+ .align 2
+gUnknown_0839F3A0:: @ 839F3A0
+ .4byte sub_8087E4C
+ .4byte sub_8087ED8
+ .4byte sub_8087FDC
+
+ .align 2
+gUnknown_0839F3AC:: @ 839F3AC
+ .4byte sub_8088150
+ .4byte sub_80881C0
+ .4byte sub_8088228
+ .4byte sub_80882B4
+ .4byte sub_80882E4
+ .4byte sub_8088338
+ .4byte sub_8088380
+
+ .align 2
+gUnknown_0839F3C8:: @ 839F3C8
+ .4byte sub_80884AC
+ .4byte sub_80884E8
+ .4byte sub_8088554
+ .4byte sub_80885A8
+ .4byte sub_80885D8
+ .4byte sub_808860C
+ .4byte sub_808862C
+
+ .align 2
+gUnknown_0839F3E4:: @ 839F3E4
+ .4byte sub_8088984
+ .4byte sub_80889E4
+ .4byte sub_8088A30
+ .4byte sub_8088A78
+ .4byte sub_8088AF4
+
+ .align 2
+gUnknown_0839F3F8:: @ 839F3F8
+ .4byte sub_8088CA0
+ .4byte sub_8088CF8
+ .4byte sub_8088D3C
+ .4byte sub_8088D94
+ .4byte sub_8088DD8
+ .4byte sub_8088E2C
+ .4byte sub_8088EB4
+ .4byte sub_8088F10
+ .4byte sub_8088F30
+Unknown_839F41C:
+ .incbin "baserom.gba", 0x0039f41c, 0x18
+Unknown_839F434:
+ .incbin "baserom.gba", 0x0039f434, 0x18
+
+ .align 2
+gUnknown_0839F44C:: @ 839F44C
+ .4byte Unknown_839F41C
+ .4byte Unknown_839F434
+
+ .align 2
+gUnknown_0839F454:: @ 839F454
+ .4byte sub_80892A0
+ .4byte sub_8089354
+ .4byte sub_80893C0
+ .4byte sub_8089414
+ .4byte sub_808948C
+ .4byte sub_80894C4
+ .4byte fishE
+
+gUnknown_0839F470:: @ 839F470
+ .incbin "baserom.gba", 0x0039f470, 0x24
diff --git a/data/field_effect_helpers.s b/data/field_effect_helpers.s
new file mode 100644
index 000000000..629d41df9
--- /dev/null
+++ b/data/field_effect_helpers.s
@@ -0,0 +1,34 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+@ XXX: Unused? Probably aligned because it's at the beginning of an object file.
+ .align 2
+ .string "タマゴ$"
+
+gUnknown_08401E2C:: @ 8401E2C
+ .incbin "baserom.gba", 0x00401e2c, 0x6
+
+gUnknown_08401E32:: @ 8401E32
+ .incbin "baserom.gba", 0x00401e32, 0x4
+
+gUnknown_08401E36:: @ 8401E36
+ .incbin "baserom.gba", 0x00401e36, 0xa
+
+ .align 2
+gUnknown_08401E40:: @ 8401E40
+ .4byte sub_81275A0
+ .4byte sub_81275C4
+
+ .align 2
+gUnknown_08401E48:: @ 8401E48
+ .4byte sub_8127DA0
+ .4byte sub_8127DD0
+ .4byte sub_8127E30
+
+gUnknown_08401E54:: @ 8401E54
+ .incbin "baserom.gba", 0x00401e54, 0x6
+
+gUnknown_08401E5A:: @ 8401E5A
+ .incbin "baserom.gba", 0x00401e5a, 0x6
diff --git a/data/field_ground_effect.s b/data/field_ground_effect.s
new file mode 100644
index 000000000..d3dbceedb
--- /dev/null
+++ b/data/field_ground_effect.s
@@ -0,0 +1,72 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+ .align 2
+gUnknown_08376040:: @ 8376040
+ .4byte MetatileBehavior_IsJumpSouth
+ .4byte MetatileBehavior_IsJumpNorth
+ .4byte MetatileBehavior_IsJumpWest
+ .4byte MetatileBehavior_IsJumpEast
+
+gUnknown_08376050:: @ 8376050
+ .byte 0x73, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x00, 0x00, 0x73
+
+@ Each byte corresponds to a sprite priority for a field object.
+@ This is directly the inverse of gFieldObjectPriorities_08376070.
+gFieldObjectPriorities_08376060:: @ 8376060
+ .byte 2, 2, 2, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 0, 0, 2
+
+@ Each byte corresponds to a sprite priority for a field object.
+@ This is the inverse of gFieldObjectPriorities_08376060.
+@ 1 = Above player sprite
+@ 2 = Below player sprite
+gFieldObjectPriorities_08376070:: @ 8376070
+ .byte 1, 1, 1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 0, 0, 1
+
+ .align 2
+gUnknown_08376080:: @ 8376080
+ .4byte nullsub_50
+ .4byte DoTracksGroundEffect_Footprints
+ .4byte DoTracksGroundEffect_BikeTireTracks
+
+@ First byte is a Field Effect script id. (gFieldEffectScriptPointers)
+@ Last three bytes are unknown.
+gSandFootprints_FieldEffectData:: @ 837608C
+ .byte 0xD, 0x0, 0x18, 0x0
+
+@ Specifies which bike track shape to show next.
+@ For example, when the bike turns from up to right, it will show
+@ a track that curves to the right.
+@ Each 4-byte row corresponds to the initial direction of the bike, and
+@ each byte in that row is for the next direction of the bike in the order
+@ of down, up, left, right.
+gBikeTireTracks_Transitions:: @ 8376090
+ .byte 1, 2, 7, 8
+ .byte 1, 2, 6, 5
+ .byte 5, 8, 3, 4
+ .byte 6, 7, 3, 4
+
+ .align 2
+gUnknown_083760A0:: @ 83760A0
+ .4byte GroundEffect_SpawnOnTallGrass
+ .4byte sub_8063E94
+ .4byte sub_8063EE0
+ .4byte sub_8063F2C
+ .4byte GroundEffect_WaterReflection
+ .4byte GroundEffect_IceReflection
+ .4byte GroundEffect_FlowingWater
+ .4byte sub_8063FA0
+ .4byte sub_8063FCC
+ .4byte GroundEffect_Ripple
+ .4byte GroundEffect_StepOnPuddle
+ .4byte GroundEffect_SandPile
+ .4byte GroundEffect_JumpOnTallGrass
+ .4byte GroundEffect_JumpOnLongGrass
+ .4byte GroundEffect_JumpOnShallowWater
+ .4byte GroundEffect_JumpOnWater
+ .4byte GroundEffect_JumpLandingDust
+ .4byte GroundEffect_ShortGrass
+ .4byte GroundEffect_HotSprings
+ .4byte GroundEffect_Seaweed
diff --git a/data/field_map_obj.s b/data/field_map_obj.s
new file mode 100644
index 000000000..9ff432961
--- /dev/null
+++ b/data/field_map_obj.s
@@ -0,0 +1,2107 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+gUnknown_0830FD14:: @ 830FD14
+ .byte 1, 1, 6, 7, 8, 9, 6, 7, 8, 9, 11, 11, 0, 0, 0, 0
+
+ .align 2
+gSpriteTemplate_830FD24:: @ 830FD24
+ spr_template 0, 0xFFFF, gDummyOamData, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, ObjectCB_CameraObject
+
+ .align 2
+gUnknown_0830FD3C:: @ 830FD3C
+ .4byte CameraObject_0
+ .4byte CameraObject_1
+ .4byte CameraObject_2
+
+@ 830FD48
+ .include "data/graphics/field_objects/map_object_graphics.inc"
+
+@ 8368528
+ .include "data/graphics/field_objects/field_effect_object_graphics.inc"
+
+ .align 2
+gUnknown_0836DA88:: @ 836DA88
+ .4byte sub_805C884
+ .4byte sub_805CDE8
+ .4byte sub_805C8AC
+ .4byte sub_805CF28
+ .4byte sub_805CF28
+ .4byte sub_805D0AC
+ .4byte sub_805D0AC
+ .4byte sub_805D230
+ .4byte sub_805D230
+ .4byte sub_805D230
+ .4byte sub_805D230
+ .4byte sub_80587B4
+ .4byte FieldObjectCB_BerryTree
+ .4byte sub_805D4F4
+ .4byte sub_805D634
+ .4byte sub_805D774
+ .4byte sub_805D8B4
+ .4byte sub_805D9F4
+ .4byte sub_805DB34
+ .4byte sub_805DC74
+ .4byte sub_805DDB4
+ .4byte sub_805DEF4
+ .4byte sub_805E034
+ .4byte sub_805E174
+ .4byte sub_805E278
+ .4byte sub_805E37C
+ .4byte sub_805E37C
+ .4byte sub_805E37C
+ .4byte sub_805E37C
+ .4byte sub_805E5DC
+ .4byte sub_805E668
+ .4byte sub_805E6F4
+ .4byte sub_805E780
+ .4byte sub_805E80C
+ .4byte sub_805E898
+ .4byte sub_805E924
+ .4byte sub_805E9B0
+ .4byte sub_805EA3C
+ .4byte sub_805EAC8
+ .4byte sub_805EB54
+ .4byte sub_805EBE0
+ .4byte sub_805EC6C
+ .4byte sub_805ECF8
+ .4byte sub_805ED84
+ .4byte sub_805EE10
+ .4byte sub_805EE9C
+ .4byte sub_805EF28
+ .4byte sub_805EFB4
+ .4byte sub_805F040
+ .4byte sub_805F0CC
+ .4byte sub_805F158
+ .4byte sub_805F1E4
+ .4byte sub_805F270
+ .4byte sub_805F2FC
+ .4byte sub_805F2FC
+ .4byte sub_805F2FC
+ .4byte sub_805F2FC
+ .4byte FieldObjectCB_TreeDisguise
+ .4byte FieldObjectCB_MountainDisguise
+ .4byte sub_805F8E0
+ .4byte sub_805F8E0
+ .4byte sub_805F8E0
+ .4byte sub_805F8E0
+ .4byte FieldObjectCB_Hidden1
+ .4byte sub_805FB20
+ .4byte sub_805FB20
+ .4byte sub_805FB20
+ .4byte sub_805FB20
+ .4byte sub_805FB90
+ .4byte sub_805FB90
+ .4byte sub_805FB90
+ .4byte sub_805FB90
+ .4byte sub_805FC00
+ .4byte sub_805FC00
+ .4byte sub_805FC00
+ .4byte sub_805FC00
+ .4byte sub_805FC70
+
+gUnknown_0836DBBC:: @ 836DBBC
+ .byte 0
+ .byte 0
+ .byte 1
+ .byte 1
+ .byte 1
+ .byte 1
+ .byte 1
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 1
+ .byte 1
+ .byte 1
+ .byte 1
+ .byte 1
+ .byte 1
+ .byte 1
+ .byte 1
+ .byte 1
+ .byte 1
+ .byte 1
+ .byte 1
+ .byte 1
+ .byte 1
+ .byte 1
+ .byte 1
+ .byte 1
+ .byte 1
+ .byte 1
+ .byte 1
+ .byte 1
+ .byte 1
+ .byte 1
+ .byte 1
+ .byte 1
+ .byte 1
+ .byte 1
+ .byte 1
+ .byte 1
+ .byte 1
+ .byte 1
+ .byte 1
+ .byte 0
+ .byte 0
+ .byte 1
+ .byte 1
+ .byte 1
+ .byte 1
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+
+gUnknown_0836DC09:: @ 836DC09
+ .byte DIR_SOUTH
+ .byte DIR_SOUTH
+ .byte DIR_SOUTH
+ .byte DIR_NORTH
+ .byte DIR_SOUTH
+ .byte DIR_WEST
+ .byte DIR_EAST
+ .byte DIR_NORTH
+ .byte DIR_SOUTH
+ .byte DIR_WEST
+ .byte DIR_EAST
+ .byte DIR_SOUTH
+ .byte DIR_SOUTH
+ .byte DIR_SOUTH
+ .byte DIR_WEST
+ .byte DIR_NORTH
+ .byte DIR_NORTH
+ .byte DIR_SOUTH
+ .byte DIR_SOUTH
+ .byte DIR_SOUTH
+ .byte DIR_SOUTH
+ .byte DIR_NORTH
+ .byte DIR_SOUTH
+ .byte DIR_SOUTH
+ .byte DIR_SOUTH
+ .byte DIR_NORTH
+ .byte DIR_SOUTH
+ .byte DIR_WEST
+ .byte DIR_EAST
+ .byte DIR_NORTH
+ .byte DIR_EAST
+ .byte DIR_SOUTH
+ .byte DIR_WEST
+ .byte DIR_NORTH
+ .byte DIR_WEST
+ .byte DIR_SOUTH
+ .byte DIR_EAST
+ .byte DIR_WEST
+ .byte DIR_NORTH
+ .byte DIR_EAST
+ .byte DIR_SOUTH
+ .byte DIR_EAST
+ .byte DIR_NORTH
+ .byte DIR_WEST
+ .byte DIR_SOUTH
+ .byte DIR_NORTH
+ .byte DIR_SOUTH
+ .byte DIR_WEST
+ .byte DIR_EAST
+ .byte DIR_NORTH
+ .byte DIR_SOUTH
+ .byte DIR_WEST
+ .byte DIR_EAST
+ .byte DIR_NORTH
+ .byte DIR_SOUTH
+ .byte DIR_WEST
+ .byte DIR_EAST
+ .byte DIR_SOUTH
+ .byte DIR_SOUTH
+ .byte DIR_NORTH
+ .byte DIR_SOUTH
+ .byte DIR_WEST
+ .byte DIR_EAST
+ .byte DIR_SOUTH
+ .byte DIR_SOUTH
+ .byte DIR_NORTH
+ .byte DIR_WEST
+ .byte DIR_EAST
+ .byte DIR_SOUTH
+ .byte DIR_NORTH
+ .byte DIR_WEST
+ .byte DIR_EAST
+ .byte DIR_SOUTH
+ .byte DIR_NORTH
+ .byte DIR_WEST
+ .byte DIR_EAST
+ .byte DIR_SOUTH
+
+@ 836DC58
+ .include "data/graphics/field_objects/map_object_graphics_info_pointers.inc"
+
+@ 836DFC0
+ .include "data/graphics/field_objects/field_effect_object_template_pointers.inc"
+
+@ 836E050
+ .include "data/graphics/field_objects/map_object_pic_tables.inc"
+
+@ 83708C8
+ .include "data/graphics/field_objects/map_object_anims.inc"
+
+@ 83711C4
+ .include "data/graphics/field_objects/base_oam.inc"
+
+@ 8371204
+ .include "data/graphics/field_objects/map_object_subsprites.inc"
+
+@ 83718D4
+ .include "data/graphics/field_objects/map_object_graphics_info.inc"
+
+ .align 2
+gUnknown_0837377C:: @ 837377C
+ obj_pal gMapObjectPalette0, 0x1103
+ obj_pal gMapObjectPalette1, 0x1104
+ obj_pal gMapObjectPalette2, 0x1105
+ obj_pal gMapObjectPalette3, 0x1106
+ obj_pal gMapObjectPalette4, 0x1107
+ obj_pal gMapObjectPalette5, 0x1108
+ obj_pal gMapObjectPalette6, 0x1109
+ obj_pal gMapObjectPalette7, 0x110A
+ obj_pal gMapObjectPalette8, 0x1100
+ obj_pal gMapObjectPalette9, 0x1101
+ obj_pal gMapObjectPalette10, 0x1102
+ obj_pal gMapObjectPalette11, 0x1115
+ obj_pal gMapObjectPalette12, 0x110B
+ obj_pal gMapObjectPalette13, 0x110C
+ obj_pal gMapObjectPalette14, 0x110D
+ obj_pal gMapObjectPalette15, 0x110E
+ obj_pal gMapObjectPalette16, 0x110F
+ obj_pal gMapObjectPalette17, 0x1110
+ obj_pal gMapObjectPalette18, 0x1111
+ obj_pal gMapObjectPalette19, 0x1112
+ obj_pal gMapObjectPalette20, 0x1113
+ obj_pal gMapObjectPalette21, 0x1114
+ obj_pal gMapObjectPalette22, 0x1116
+ obj_pal gMapObjectPalette23, 0x1117
+ obj_pal gMapObjectPalette24, 0x1118
+ obj_pal gMapObjectPalette25, 0x1119
+ obj_pal gMapObjectPalette26, 0x111A
+ null_obj_pal
+
+ .align 1
+Palettes_837385C:
+ .2byte 0x1101
+ .2byte 0x1101
+ .2byte 0x1101
+ .2byte 0x1101
+
+ @ unused?
+ .2byte 0x1111
+ .2byte 0x1111
+ .2byte 0x1111
+ .2byte 0x1111
+
+ .align 1
+Palettes_837386C:
+ .2byte 0x1115
+ .2byte 0x1115
+ .2byte 0x1115
+ .2byte 0x1115
+
+ .align 2
+gUnknown_08373874:: @ 8373874
+ paired_pals 0x1100, Palettes_837385C
+ paired_pals 0x1110, Palettes_837385C
+ paired_pals 0x1115, Palettes_837386C
+ paired_pals 0x11FF, NULL
+
+ .align 1
+Palettes_8373894:
+ .2byte 0x110C
+ .2byte 0x110C
+ .2byte 0x110C
+ .2byte 0x110C
+
+ .align 1
+Palettes_837389C:
+ .2byte 0x110D
+ .2byte 0x110D
+ .2byte 0x110D
+ .2byte 0x110D
+
+ .align 1
+Palettes_83738A4:
+ .2byte 0x110E
+ .2byte 0x110E
+ .2byte 0x110E
+ .2byte 0x110E
+
+ .align 1
+Palettes_83738AC:
+ .2byte 0x1112
+ .2byte 0x1112
+ .2byte 0x1112
+ .2byte 0x1112
+
+ .align 1
+Palettes_83738B4:
+ .2byte 0x1113
+ .2byte 0x1113
+ .2byte 0x1113
+ .2byte 0x1113
+
+ .align 1
+Palettes_83738BC:
+ .2byte 0x1114
+ .2byte 0x1114
+ .2byte 0x1114
+ .2byte 0x1114
+
+ .align 1
+Palettes_83738C4:
+ .2byte 0x111A
+ .2byte 0x111A
+ .2byte 0x111A
+ .2byte 0x111A
+
+ .align 1
+Palettes_83738CC:
+ .2byte 0x1117
+ .2byte 0x1117
+ .2byte 0x1117
+ .2byte 0x1117
+
+ .align 1
+Palettes_83738D4:
+ .2byte 0x1119
+ .2byte 0x1119
+ .2byte 0x1119
+ .2byte 0x1119
+
+ .align 1
+Palettes_83738DC:
+ .2byte 0x1109
+ .2byte 0x1109
+ .2byte 0x1109
+ .2byte 0x1109
+
+ .align 2
+gUnknown_083738E4:: @ 83738E4
+ paired_pals 0x1100, Palettes_837385C
+ paired_pals 0x1110, Palettes_837385C
+ paired_pals 0x110B, Palettes_8373894
+ paired_pals 0x110D, Palettes_837389C
+ paired_pals 0x110E, Palettes_83738A4
+ paired_pals 0x1112, Palettes_83738AC
+ paired_pals 0x1113, Palettes_83738B4
+ paired_pals 0x1114, Palettes_83738BC
+ paired_pals 0x1116, Palettes_83738CC
+ paired_pals 0x1118, Palettes_83738D4
+ paired_pals 0x1105, Palettes_83738DC
+ paired_pals 0x111A, Palettes_83738C4
+ paired_pals 0x11FF, NULL
+
+ .align 1
+Unknown_837394C:
+ .2byte 0x1100
+ .2byte 0x1101
+ .2byte 0x1103
+ .2byte 0x1104
+ .2byte 0x1105
+ .2byte 0x1106
+ .2byte 0x1107
+ .2byte 0x1108
+ .2byte 0x1109
+ .2byte 0x110A
+
+ .align 1
+Unknown_8373960:
+ .2byte 0x1100
+ .2byte 0x1101
+ .2byte 0x1103
+ .2byte 0x1104
+ .2byte 0x1105
+ .2byte 0x1106
+ .2byte 0x1107
+ .2byte 0x1108
+ .2byte 0x1109
+ .2byte 0x110A
+
+ .align 1
+Unknown_8373974:
+ .2byte 0x1100
+ .2byte 0x1101
+ .2byte 0x1103
+ .2byte 0x1104
+ .2byte 0x1105
+ .2byte 0x1106
+ .2byte 0x1107
+ .2byte 0x1108
+ .2byte 0x1109
+ .2byte 0x110A
+
+ .align 1
+Unknown_8373988:
+ .2byte 0x1100
+ .2byte 0x1101
+ .2byte 0x1103
+ .2byte 0x1104
+ .2byte 0x1105
+ .2byte 0x1106
+ .2byte 0x1107
+ .2byte 0x1108
+ .2byte 0x1109
+ .2byte 0x110A
+
+ .align 2
+gUnknown_0837399C:: @ 837399C
+ .4byte Unknown_837394C
+ .4byte Unknown_8373960
+ .4byte Unknown_8373974
+ .4byte Unknown_8373988
+
+@ 83739AC
+ .include "data/graphics/field_objects/berry_tree_graphics_tables.inc"
+
+@ 8374524
+ .include "data/graphics/field_objects/field_effect_objects.inc"
+
+ .align 1
+gUnknown_0837520C:: @ 837520C
+ .2byte 0x20, 0x40, 0x60, 0x80, 0x20, 0x40, 0x80, 0xC0
+
+ .align 1
+gUnknown_0837521C:: @ 837521C
+ .2byte 0x20, 0x30, 0x40, 0x50
+
+ .align 2
+gUnknown_08375224:: @ 8375224
+ .4byte sub_805C8F0
+ .4byte sub_805C904
+ .4byte sub_805C930
+ .4byte sub_805C96C
+ .4byte sub_805C98C
+ .4byte sub_805C9D8
+ .4byte sub_805CA08
+
+gUnknown_08375240:: @ 8375240
+ .byte DIR_SOUTH, DIR_NORTH, DIR_WEST, DIR_EAST
+
+ .align 2
+gUnknown_08375244:: @ 8375244
+ .4byte sub_805CAAC
+ .4byte sub_805CADC
+ .4byte sub_805CAEC
+ .4byte sub_805CB00
+ .4byte sub_805CB5C
+ .4byte sub_805CBB8
+ .4byte sub_805CC14
+ .4byte sub_805CC70
+ .4byte sub_805CCAC
+ .4byte sub_805CCE8
+ .4byte sub_805CD24
+
+ .align 2
+gUnknown_08375270:: @ 8375270
+ .4byte sub_805CE2C
+ .4byte sub_805CE40
+ .4byte sub_805CE6C
+ .4byte sub_805CEB0
+ .4byte sub_805CEE0
+
+ .align 2
+gUnknown_08375284:: @ 8375284
+ .4byte sub_805CF6C
+ .4byte sub_805CF80
+ .4byte sub_805CFAC
+ .4byte sub_805CFE8
+ .4byte sub_805D008
+ .4byte sub_805D054
+ .4byte sub_805D084
+
+gUnknown_083752A0:: @ 83752A0
+ .byte DIR_SOUTH, DIR_NORTH
+
+ .align 2
+gUnknown_083752A4:: @ 83752A4
+ .4byte sub_805D0F0
+ .4byte sub_805D104
+ .4byte sub_805D130
+ .4byte sub_805D16C
+ .4byte sub_805D18C
+ .4byte sub_805D1D8
+ .4byte sub_805D208
+
+gUnknown_083752C0:: @ 83752C0
+ .byte DIR_WEST, DIR_EAST
+
+ .align 2
+gUnknown_083752C4:: @ 83752C4
+ .4byte sub_805D274
+ .4byte sub_805D2A0
+ .4byte sub_805D2C0
+
+ .align 2
+gUnknown_083752D0:: @ 83752D0
+ .4byte do_berry_tree_growth_sparkle_1
+ .4byte sub_805D3EC
+ .4byte do_berry_tree_growth_sparkle_2
+ .4byte sub_805D458
+ .4byte sub_805D4A8
+
+ .align 2
+gUnknown_083752E4:: @ 83752E4
+ .4byte sub_805D538
+ .4byte sub_805D54C
+ .4byte sub_805D578
+ .4byte sub_805D5BC
+ .4byte sub_805D5EC
+
+ .align 2
+gUnknown_083752F8:: @ 83752F8
+ .4byte sub_805D678
+ .4byte sub_805D68C
+ .4byte sub_805D6B8
+ .4byte sub_805D6FC
+ .4byte sub_805D72C
+
+ .align 2
+gUnknown_0837530C:: @ 837530C
+ .4byte sub_805D7B8
+ .4byte sub_805D7CC
+ .4byte sub_805D7F8
+ .4byte sub_805D83C
+ .4byte sub_805D86C
+
+gUnknown_08375320:: @ 8375320
+ .byte DIR_NORTH, DIR_WEST
+
+ .align 2
+gUnknown_08375324:: @ 8375324
+ .4byte sub_805D8F8
+ .4byte sub_805D90C
+ .4byte sub_805D938
+ .4byte sub_805D97C
+ .4byte sub_805D9AC
+
+gUnknown_08375338:: @ 8375338
+ .byte DIR_NORTH, DIR_EAST
+
+ .align 2
+gUnknown_0837533C:: @ 837533C
+ .4byte sub_805DA38
+ .4byte sub_805DA4C
+ .4byte sub_805DA78
+ .4byte sub_805DABC
+ .4byte sub_805DAEC
+
+gUnknown_08375350:: @ 8375350
+ .byte DIR_SOUTH, DIR_WEST
+
+ .align 2
+gUnknown_08375354:: @ 8375354
+ .4byte sub_805DB78
+ .4byte sub_805DB8C
+ .4byte sub_805DBB8
+ .4byte sub_805DBFC
+ .4byte sub_805DC2C
+
+gUnknown_08375368:: @ 8375368
+ .byte DIR_SOUTH, DIR_EAST
+
+ .align 2
+gUnknown_0837536C:: @ 837536C
+ .4byte sub_805DCB8
+ .4byte sub_805DCCC
+ .4byte sub_805DCF8
+ .4byte sub_805DD3C
+ .4byte sub_805DD6C
+
+gUnknown_08375380:: @ 8375380
+ .byte DIR_NORTH, DIR_SOUTH, DIR_WEST, DIR_SOUTH
+
+ .align 2
+gUnknown_08375384:: @ 8375384
+ .4byte sub_805DDF8
+ .4byte sub_805DE0C
+ .4byte sub_805DE38
+ .4byte sub_805DE7C
+ .4byte sub_805DEAC
+
+gUnknown_08375398:: @ 8375398
+ .byte DIR_SOUTH, DIR_NORTH, DIR_EAST, DIR_SOUTH
+
+ .align 2
+gUnknown_0837539C:: @ 837539C
+ .4byte sub_805DF38
+ .4byte sub_805DF4C
+ .4byte sub_805DF78
+ .4byte sub_805DFBC
+ .4byte sub_805DFEC
+
+gUnknown_083753B0:: @ 83753B0
+ .byte DIR_NORTH, DIR_WEST, DIR_EAST, DIR_NORTH
+
+ .align 2
+gUnknown_083753B4:: @ 83753B4
+ .4byte sub_805E078
+ .4byte sub_805E08C
+ .4byte sub_805E0B8
+ .4byte sub_805E0FC
+ .4byte sub_805E12C
+
+gUnknown_083753C8:: @ 83753C8
+ .byte DIR_WEST, DIR_EAST, DIR_SOUTH, DIR_SOUTH
+
+ .align 2
+gUnknown_083753CC:: @ 83753CC
+ .4byte sub_805E1B8
+ .4byte sub_805E1E4
+ .4byte sub_805E208
+ .4byte sub_805E234
+
+gUnknown_083753DC:: @ 83753DC
+ .byte DIR_SOUTH, DIR_EAST, DIR_WEST, DIR_SOUTH, DIR_NORTH
+
+ .align 2
+gUnknown_083753E4:: @ 83753E4
+ .4byte sub_805E2BC
+ .4byte sub_805E2E8
+ .4byte sub_805E30C
+ .4byte sub_805E338
+
+gUnknown_083753F4:: @ 83753F4
+ .byte DIR_SOUTH, DIR_WEST, DIR_EAST, DIR_NORTH, DIR_SOUTH
+
+ .align 2
+gUnknown_083753FC:: @ 83753FC
+ .4byte sub_805E3C0
+ .4byte sub_805E3D4
+ .4byte sub_805E40C
+ .4byte sub_805E4C4
+
+ .align 2
+gUnknown_0837540C:: @ 837540C
+ .4byte sub_805E4EC
+ .4byte sub_805E620
+ .4byte sub_805E5B4
+
+gUnknown_08375418:: @ 8375418
+ .byte DIR_NORTH, DIR_EAST, DIR_WEST, DIR_SOUTH
+
+ .align 2
+gUnknown_0837541C:: @ 837541C
+ .4byte sub_805E4EC
+ .4byte sub_805E6AC
+ .4byte sub_805E5B4
+
+ .align 2
+gUnknown_08375428:: @ 8375428
+ .byte DIR_EAST, DIR_WEST, DIR_SOUTH, DIR_NORTH
+
+gUnknown_0837542C:: @ 837542C
+ .4byte sub_805E4EC
+ .4byte sub_805E738
+ .4byte sub_805E5B4
+
+gUnknown_08375438:: @ 8375438
+ .byte DIR_SOUTH, DIR_NORTH, DIR_EAST, DIR_WEST
+
+ .align 2
+gUnknown_0837543C:: @ 837543C
+ .4byte sub_805E4EC
+ .4byte sub_805E7C4
+ .4byte sub_805E5B4
+
+gUnknown_08375448:: @ 8375448
+ .byte DIR_WEST, DIR_SOUTH, DIR_NORTH, DIR_EAST
+
+ .align 2
+gUnknown_0837544C:: @ 837544C
+ .4byte sub_805E4EC
+ .4byte sub_805E850
+ .4byte sub_805E5B4
+
+gUnknown_08375458:: @ 8375458
+ .byte DIR_NORTH, DIR_WEST, DIR_EAST, DIR_SOUTH
+
+ .align 2
+gUnknown_0837545C:: @ 837545C
+ .4byte sub_805E4EC
+ .4byte sub_805E8DC
+ .4byte sub_805E5B4
+
+gUnknown_08375468:: @ 8375468
+ .byte DIR_WEST, DIR_EAST, DIR_SOUTH, DIR_NORTH
+
+ .align 2
+gUnknown_0837546C:: @ 837546C
+ .4byte sub_805E4EC
+ .4byte sub_805E968
+ .4byte sub_805E5B4
+
+ .align 2
+gUnknown_08375478:: @ 8375478
+ .4byte sub_805E4EC
+ .4byte sub_805E9F4
+ .4byte sub_805E5B4
+
+gUnknown_08375484:: @ 8375484
+ .byte DIR_EAST, DIR_SOUTH, DIR_NORTH, DIR_WEST
+
+ .align 2
+gUnknown_08375488:: @ 8375488
+ .4byte sub_805E4EC
+ .4byte sub_805EA80
+ .4byte sub_805E5B4
+
+gUnknown_08375494:: @ 8375494
+ .byte DIR_WEST, DIR_NORTH, DIR_SOUTH, DIR_EAST
+
+ .align 2
+gUnknown_08375498:: @ 8375498
+ .4byte sub_805E4EC
+ .4byte sub_805EB0C
+ .4byte sub_805E5B4
+
+gUnknown_083754A4:: @ 83754A4
+ .byte DIR_NORTH, DIR_SOUTH, DIR_EAST, DIR_WEST
+
+ .align 2
+gUnknown_083754A8:: @ 83754A8
+ .4byte sub_805E4EC
+ .4byte sub_805EB98
+ .4byte sub_805E5B4
+
+gUnknown_083754B4:: @ 83754B4
+ .byte DIR_EAST, DIR_WEST, DIR_NORTH, DIR_SOUTH
+
+ .align 2
+gUnknown_083754B8:: @ 83754B8
+ .4byte sub_805E4EC
+ .4byte sub_805EC24
+ .4byte sub_805E5B4
+
+gUnknown_083754C4:: @ 83754C4
+ .byte DIR_SOUTH, DIR_EAST, DIR_WEST, DIR_NORTH
+
+ .align 2
+gUnknown_083754C8:: @ 83754C8
+ .4byte sub_805E4EC
+ .4byte sub_805ECB0
+ .4byte sub_805E5B4
+
+gUnknown_083754D4:: @ 83754D4
+ .byte DIR_EAST, DIR_NORTH, DIR_SOUTH, DIR_WEST
+
+ .align 2
+gUnknown_083754D8:: @ 83754D8
+ .4byte sub_805E4EC
+ .4byte sub_805ED3C
+ .4byte sub_805E5B4
+
+gUnknown_083754E4:: @ 83754E4
+ .byte DIR_NORTH, DIR_SOUTH, DIR_WEST, DIR_EAST
+
+ .align 2
+gUnknown_083754E8:: @ 83754E8
+ .4byte sub_805E4EC
+ .4byte sub_805EDC8
+ .4byte sub_805E5B4
+
+gUnknown_083754F4:: @ 83754F4
+ .byte DIR_WEST, DIR_EAST, DIR_NORTH, DIR_SOUTH
+
+ .align 2
+gUnknown_083754F8:: @ 83754F8
+ .4byte sub_805E4EC
+ .4byte sub_805EE54
+ .4byte sub_805E5B4
+
+gUnknown_08375504:: @ 8375504
+ .byte DIR_SOUTH, DIR_WEST, DIR_EAST, DIR_NORTH
+
+ .align 2
+gUnknown_08375508:: @ 8375508
+ .4byte sub_805E4EC
+ .4byte sub_805EEE0
+ .4byte sub_805E5B4
+
+gUnknown_08375514:: @ 8375514
+ .byte DIR_NORTH, DIR_WEST, DIR_SOUTH, DIR_EAST
+
+ .align 2
+gUnknown_08375518:: @ 8375518
+ .4byte sub_805E4EC
+ .4byte sub_805EF6C
+ .4byte sub_805E5B4
+
+gUnknown_08375524:: @ 8375524
+ .byte DIR_SOUTH, DIR_EAST, DIR_NORTH, DIR_WEST
+
+ .align 2
+gUnknown_08375528:: @ 8375528
+ .4byte sub_805E4EC
+ .4byte sub_805EFF8
+ .4byte sub_805E5B4
+
+gUnknown_08375534:: @ 8375534
+ .byte DIR_WEST, DIR_SOUTH, DIR_EAST, DIR_NORTH
+
+ .align 2
+gUnknown_08375538:: @ 8375538
+ .4byte sub_805E4EC
+ .4byte sub_805F084
+ .4byte sub_805E5B4
+
+gUnknown_08375544:: @ 8375544
+ .byte DIR_EAST, DIR_NORTH, DIR_WEST, DIR_SOUTH
+
+ .align 2
+gUnknown_08375548:: @ 8375548
+ .4byte sub_805E4EC
+ .4byte sub_805F110
+ .4byte sub_805E5B4
+
+gUnknown_08375554:: @ 8375554
+ .byte DIR_NORTH, DIR_EAST, DIR_SOUTH, DIR_WEST
+
+ .align 2
+gUnknown_08375558:: @ 8375558
+ .4byte sub_805E4EC
+ .4byte sub_805F19C
+ .4byte sub_805E5B4
+
+gUnknown_08375564:: @ 8375564
+ .byte DIR_SOUTH, DIR_WEST, DIR_NORTH, DIR_EAST
+
+ .align 2
+gUnknown_08375568:: @ 8375568
+ .4byte sub_805E4EC
+ .4byte sub_805F228
+ .4byte sub_805E5B4
+
+gUnknown_08375574:: @ 8375574
+ .byte DIR_WEST, DIR_NORTH, DIR_EAST, DIR_SOUTH
+
+ .align 2
+gUnknown_08375578:: @ 8375578
+ .4byte sub_805E4EC
+ .4byte sub_805F2B4
+ .4byte sub_805E5B4
+
+ .align 2
+gUnknown_08375584:: @ 8375584
+ .byte DIR_EAST, DIR_SOUTH, DIR_WEST, DIR_NORTH
+
+ .align 2
+gUnknown_08375588:: @ 8375588
+ .4byte mss_npc_reset_oampriv3_1_unk2_unk3
+ .4byte sub_805F364
+ .4byte sub_805F3C4
+
+ .align 2
+gUnknown_08375594:: @ 8375594
+ .4byte sub_805F3EC
+ .4byte sub_805F3F0
+ .4byte sub_805F438
+ .4byte sub_805F4F0
+ .4byte sub_805F5A8
+ .4byte sub_805F660
+ .4byte cph_IM_DIFFERENT
+ .4byte sub_805F760
+ .4byte oac_hopping
+ .4byte sub_805F3EC
+ .4byte sub_805F3EC
+
+ .align 2
+gUnknown_083755C0:: @ 83755C0
+ .4byte mss_npc_reset_oampriv3_1_unk2_unk3
+ .4byte mss_08062EA4
+ .4byte sub_805F3C4
+
+ .align 2
+gUnknown_083755CC:: @ 83755CC
+ .4byte sub_805FAF8
+
+ .align 2
+gUnknown_083755D0:: @ 83755D0
+ .4byte sub_805FB64
+ .4byte sub_805FB04
+
+ .align 2
+gUnknown_083755D8:: @ 83755D8
+ .4byte sub_805FBD4
+ .4byte sub_805FB04
+
+ .align 2
+gUnknown_083755E0:: @ 83755E0
+ .4byte sub_805FC44
+ .4byte sub_805FB04
+
+ .align 2
+gUnknown_083755E8:: @ 83755E8
+ .4byte sub_805FCB4
+ .4byte sub_805FCE8
+ .4byte sub_805FD08
+
+gUnknown_083755F4:: @ 83755F4
+ .byte 0x00, 0x00, 0x01, 0x02, 0x03, 0x00, 0x00, 0x01, 0x01
+
+gUnknown_083755FD:: @ 83755FD
+ .byte 0x04, 0x04, 0x05, 0x06, 0x07, 0x04, 0x04, 0x05, 0x05
+
+gUnknown_08375606:: @ 8375606
+ .byte 0x08, 0x08, 0x09, 0x0A, 0x0B, 0x08, 0x08, 0x09, 0x09
+
+gUnknown_0837560F:: @ 837560F
+ .byte 0x0C, 0x0C, 0x0D, 0x0E, 0x0F, 0x0C, 0x0C, 0x0D, 0x0D
+
+gUnknown_08375618:: @ 8375618
+ .byte 0x10, 0x10, 0x11, 0x12, 0x13, 0x10, 0x10, 0x11, 0x11
+
+gUnknown_08375621:: @ 8375621
+ .byte 0x14, 0x14, 0x15, 0x16, 0x17, 0x14, 0x14, 0x15, 0x15
+
+gUnknown_0837562A:: @ 837562A
+ .byte 0x14, 0x14, 0x15, 0x16, 0x17, 0x14, 0x14, 0x15, 0x15
+
+gUnknown_08375633:: @ 8375633
+ .byte 0x18, 0x18, 0x19, 0x1A, 0x1B, 0x18, 0x18, 0x19, 0x19
+
+gUnknown_0837563C:: @ 837563C
+ .byte 0x1C, 0x1C, 0x1D, 0x1E, 0x1F, 0x1C, 0x1C, 0x1D, 0x1D
+
+gUnknown_08375645:: @ 8375645
+ .byte 0x20, 0x20, 0x21, 0x22, 0x23, 0x20, 0x20, 0x21, 0x21
+
+gUnknown_0837564E:: @ 837564E
+ .byte 0x24, 0x24, 0x25, 0x26, 0x27, 0x24, 0x24, 0x25, 0x25
+
+gUnknown_08375657:: @ 8375657
+ .byte 0x00, 0x00, 0x01, 0x02, 0x03, 0x00, 0x00, 0x01, 0x01
+
+gUnknown_08375660:: @ 8375660
+ .byte 0x04, 0x04, 0x05, 0x06, 0x07, 0x04, 0x04, 0x05, 0x05
+
+gUnknown_08375669:: @ 8375669
+ .byte 0x08, 0x08, 0x09, 0x0A, 0x0B, 0x08, 0x08, 0x09, 0x09
+
+gUnknown_08375672:: @ 8375672
+ .byte 0x14, 0x14, 0x15, 0x16, 0x17, 0x14, 0x14, 0x15, 0x15
+
+gUnknown_0837567B:: @ 837567B
+ .byte 0x08, 0x08, 0x07, 0x09, 0x0A, 0x08, 0x08, 0x07, 0x07
+
+ .align 2
+gUnknown_08375684:: @ 8375684
+ .4byte MetatileBehavior_IsSouthBlocked
+ .4byte MetatileBehavior_IsNorthBlocked
+ .4byte MetatileBehavior_IsWestBlocked
+ .4byte MetatileBehavior_IsEastBlocked
+
+ .align 2
+gUnknown_08375694:: @ 8375694
+ .4byte MetatileBehavior_IsNorthBlocked
+ .4byte MetatileBehavior_IsSouthBlocked
+ .4byte MetatileBehavior_IsEastBlocked
+ .4byte MetatileBehavior_IsWestBlocked
+
+ .align 1
+gDirectionToVector:: @ 83756A4
+ .2byte 0, 0
+ .2byte 0, 1
+ .2byte 0, -1
+ .2byte -1, 0
+ .2byte 1, 0
+ .2byte -1, 1
+ .2byte 1, 1
+ .2byte -1, -1
+ .2byte 1, -1
+
+gUnknown_083756C8:: @ 83756C8
+ .byte 0x00, 0x00, 0x01, 0x02, 0x03
+
+gUnknown_083756CD:: @ 83756CD
+ .byte 0x04, 0x04, 0x05, 0x06, 0x07
+
+gUnknown_083756D2:: @ 83756D2
+ .byte 0x08, 0x08, 0x09, 0x0A, 0x0B
+
+gUnknown_083756D7:: @ 83756D7
+ .byte 0x15, 0x15, 0x16, 0x17, 0x18
+
+gUnknown_083756DC:: @ 83756DC
+ .byte 0x29, 0x29, 0x2A, 0x2B, 0x2C
+
+gUnknown_083756E1:: @ 83756E1
+ .byte 0x2D, 0x2D, 0x2E, 0x2F, 0x30
+
+gUnknown_083756E6:: @ 83756E6
+ .byte 0x31, 0x31, 0x32, 0x33, 0x34
+
+gUnknown_083756EB:: @ 83756EB
+ .byte 0x35, 0x35, 0x36, 0x37, 0x38
+
+gUnknown_083756F0:: @ 83756F0
+ .byte 0x0C, 0x0C, 0x0D, 0x0E, 0x0F
+
+gUnknown_083756F5:: @ 83756F5
+ .byte 0x46, 0x46, 0x47, 0x48, 0x49
+
+gUnknown_083756FA:: @ 83756FA
+ .byte 0x4B, 0x4B, 0x4A, 0x4D, 0x4C
+
+gUnknown_083756FF:: @ 83756FF
+ .byte 0x42, 0x42, 0x43, 0x44, 0x45
+
+gUnknown_08375704:: @ 8375704
+ .byte 0x3A, 0x3A, 0x3B, 0x3C, 0x3D
+
+gUnknown_08375709:: @ 8375709
+ .byte 0x19, 0x19, 0x1A, 0x1B, 0x1C
+
+gUnknown_0837570E:: @ 837570E
+ .byte 0x1D, 0x1D, 0x1E, 0x1F, 0x20
+
+gUnknown_08375713:: @ 8375713
+ .byte 0x21, 0x21, 0x22, 0x23, 0x24
+
+gUnknown_08375718:: @ 8375718
+ .byte 0x25, 0x25, 0x26, 0x27, 0x28
+
+gUnknown_0837571D:: @ 837571D
+ .byte 0x62, 0x62, 0x63, 0x64, 0x65
+
+gUnknown_08375722:: @ 8375722
+ .byte 0x66, 0x66, 0x67, 0x68, 0x69
+
+gUnknown_08375727:: @ 8375727
+ .byte 0x6A, 0x6A, 0x6B, 0x6C, 0x6D
+
+gUnknown_0837572C:: @ 837572C
+ .byte 0x6E, 0x6E, 0x6F, 0x70, 0x71
+
+gUnknown_08375731:: @ 8375731
+ .byte 0x72, 0x72, 0x73, 0x74, 0x75
+
+gUnknown_08375736:: @ 8375736
+ .byte 0x76, 0x76, 0x77, 0x78, 0x79
+
+gUnknown_0837573B:: @ 837573B
+ .byte 0x7A, 0x7A, 0x7B, 0x7C, 0x7D
+
+gUnknown_08375740:: @ 8375740
+ .byte 0x7E, 0x7E, 0x7F, 0x80, 0x81
+
+gUnknown_08375745:: @ 8375745
+ .byte 0x82, 0x82, 0x83, 0x84, 0x85
+
+gUnknown_0837574A:: @ 837574A
+ .byte 0x86, 0x86, 0x87, 0x88, 0x89
+
+gUnknown_0837574F:: @ 837574F
+ .byte 2, 1, 4, 3, 8, 7, 6, 5
+
+gUnknown_08375757:: @ 8375757
+ .byte 2, 1, 4, 3, 1, 2, 3, 4, 3, 4, 2, 1, 4, 3, 1, 2
+
+gUnknown_08375767:: @ 8375767
+ .byte 2, 1, 4, 3, 1, 2, 3, 4, 4, 3, 1, 2, 3, 4, 2, 1
+
+ .align 2
+gUnknown_08375778:: @ 8375778
+ .4byte Unknown_83759A0
+ .4byte Unknown_83759A8
+ .4byte Unknown_83759B0
+ .4byte Unknown_83759B8
+ .4byte Unknown_83759D4
+ .4byte Unknown_83759E0
+ .4byte Unknown_83759EC
+ .4byte Unknown_83759F8
+ .4byte Unknown_8375A04
+ .4byte Unknown_8375A10
+ .4byte Unknown_8375A1C
+ .4byte Unknown_8375A28
+ .4byte Unknown_8375A40
+ .4byte Unknown_8375A4C
+ .4byte Unknown_8375A58
+ .4byte Unknown_8375A64
+ .4byte Unknown_8375A70
+ .4byte Unknown_8375A7C
+ .4byte Unknown_8375A88
+ .4byte Unknown_8375A94
+ .4byte Unknown_8375AA0
+ .4byte Unknown_8375AAC
+ .4byte Unknown_8375AB8
+ .4byte Unknown_8375AC4
+ .4byte Unknown_8375AD0
+ .4byte Unknown_8375ADC
+ .4byte Unknown_8375AE8
+ .4byte Unknown_8375AF4
+ .4byte Unknown_8375B00
+ .4byte Unknown_8375B0C
+ .4byte Unknown_8375B18
+ .4byte Unknown_8375B24
+ .4byte Unknown_8375B30
+ .4byte Unknown_8375B3C
+ .4byte Unknown_8375B48
+ .4byte Unknown_8375B54
+ .4byte Unknown_8375B60
+ .4byte Unknown_8375B6C
+ .4byte Unknown_8375B78
+ .4byte Unknown_8375B84
+ .4byte Unknown_8375B90
+ .4byte Unknown_8375B9C
+ .4byte Unknown_8375BA8
+ .4byte Unknown_8375BB4
+ .4byte Unknown_8375BC0
+ .4byte Unknown_8375BCC
+ .4byte Unknown_8375BD8
+ .4byte Unknown_8375BE4
+ .4byte Unknown_8375BF0
+ .4byte Unknown_8375BFC
+ .4byte Unknown_8375C08
+ .4byte Unknown_8375C14
+ .4byte Unknown_8375C20
+ .4byte Unknown_8375C2C
+ .4byte Unknown_8375C38
+ .4byte Unknown_8375C44
+ .4byte Unknown_8375C50
+ .4byte Unknown_8375C5C
+ .4byte Unknown_8375C68
+ .4byte Unknown_8375C74
+ .4byte Unknown_8375C80
+ .4byte Unknown_8375C8C
+ .4byte Unknown_8375C98
+ .4byte Unknown_8375CA0
+ .4byte Unknown_8375CA8
+ .4byte Unknown_8375CB0
+ .4byte Unknown_8375CB8
+ .4byte Unknown_8375CC4
+ .4byte Unknown_8375CD0
+ .4byte Unknown_8375CDC
+ .4byte Unknown_8375CE8
+ .4byte Unknown_8375CF4
+ .4byte Unknown_8375D00
+ .4byte Unknown_8375D0C
+ .4byte Unknown_8375D18
+ .4byte Unknown_8375D24
+ .4byte Unknown_8375D30
+ .4byte Unknown_8375D3C
+ .4byte Unknown_8375D48
+ .4byte Unknown_8375D50
+ .4byte Unknown_8375D5C
+ .4byte Unknown_8375D64
+ .4byte Unknown_8375D6C
+ .4byte Unknown_8375D74
+ .4byte Unknown_8375D7C
+ .4byte Unknown_8375D84
+ .4byte Unknown_8375D8C
+ .4byte Unknown_8375D94
+ .4byte Unknown_8375D9C
+ .4byte Unknown_8375DA4
+ .4byte Unknown_8375DB0
+ .4byte Unknown_8375DC0
+ .4byte Unknown_8375DD0
+ .4byte Unknown_8375DD8
+ .4byte Unknown_8375DE0
+ .4byte Unknown_8375DE8
+ .4byte Unknown_8375DF0
+ .4byte Unknown_8375DFC
+ .4byte Unknown_8375E08
+ .4byte Unknown_8375E10
+ .4byte Unknown_8375E18
+ .4byte Unknown_8375E20
+ .4byte Unknown_8375E28
+ .4byte Unknown_8375E34
+ .4byte Unknown_8375E40
+ .4byte Unknown_8375E4C
+ .4byte Unknown_8375E58
+ .4byte Unknown_8375E64
+ .4byte Unknown_8375E70
+ .4byte Unknown_8375E7C
+ .4byte Unknown_8375EB8
+ .4byte Unknown_8375EC4
+ .4byte Unknown_8375ED0
+ .4byte Unknown_8375EDC
+ .4byte Unknown_8375EE8
+ .4byte Unknown_8375EF4
+ .4byte Unknown_8375F00
+ .4byte Unknown_8375F0C
+ .4byte Unknown_8375F18
+ .4byte Unknown_8375F24
+ .4byte Unknown_8375F30
+ .4byte Unknown_8375F3C
+ .4byte Unknown_8375F48
+ .4byte Unknown_8375F54
+ .4byte Unknown_8375F60
+ .4byte Unknown_8375F6C
+ .4byte Unknown_8375F78
+ .4byte Unknown_8375F84
+ .4byte Unknown_8375F90
+ .4byte Unknown_8375F9C
+ .4byte Unknown_8375FA8
+ .4byte Unknown_8375FB4
+ .4byte Unknown_8375FC0
+ .4byte Unknown_8375FCC
+ .4byte Unknown_8375FD8
+ .4byte Unknown_8375FE4
+ .4byte Unknown_8375FF0
+ .4byte Unknown_8375FFC
+
+ .align 2
+Unknown_83759A0:
+ .4byte sub_8060CE0
+ .4byte sub_8063474
+
+ .align 2
+Unknown_83759A8:
+ .4byte sub_8060CF0
+ .4byte sub_8063474
+
+ .align 2
+Unknown_83759B0:
+ .4byte sub_8060D00
+ .4byte sub_8063474
+
+ .align 2
+Unknown_83759B8:
+ .4byte sub_8060D10
+ .4byte sub_8063474
+
+ .align 2
+gUnknown_083759C0:: @ 83759C0
+ .4byte get_go_image_anim_num
+ .4byte get_go_fast_image_anim_num
+ .4byte get_go_fast_image_anim_num
+ .4byte get_go_faster_image_anim_num
+ .4byte sub_805FD78
+
+ .align 2
+Unknown_83759D4:
+ .4byte sub_8060F3C
+ .4byte sub_8060F5C
+ .4byte sub_8063474
+
+ .align 2
+Unknown_83759E0:
+ .4byte sub_8060F7C
+ .4byte sub_8060F9C
+ .4byte sub_8063474
+
+ .align 2
+Unknown_83759EC:
+ .4byte sub_8060FBC
+ .4byte sub_8060FDC
+ .4byte sub_8063474
+
+ .align 2
+Unknown_83759F8:
+ .4byte sub_8060FFC
+ .4byte sub_806101C
+ .4byte sub_8063474
+
+ .align 2
+Unknown_8375A04:
+ .4byte sub_806103C
+ .4byte sub_806105C
+ .4byte sub_8063474
+
+ .align 2
+Unknown_8375A10:
+ .4byte sub_806107C
+ .4byte sub_806109C
+ .4byte sub_8063474
+
+ .align 2
+Unknown_8375A1C:
+ .4byte sub_80610BC
+ .4byte sub_80610DC
+ .4byte sub_8063474
+
+ .align 2
+Unknown_8375A28:
+ .4byte sub_80610FC
+ .4byte sub_806111C
+ .4byte sub_8063474
+
+ .align 1
+gUnknown_08375A34:: @ 8375A34
+ .2byte 0, 1, 1
+
+ .align 1
+gUnknown_08375A3A:: @ 8375A3A
+ .2byte 0, 0, 1
+
+ .align 2
+Unknown_8375A40:
+ .4byte sub_80613A8
+ .4byte sub_80613D4
+ .4byte sub_8063474
+
+ .align 2
+Unknown_8375A4C:
+ .4byte sub_8061400
+ .4byte sub_806142C
+ .4byte sub_8063474
+
+ .align 2
+Unknown_8375A58:
+ .4byte sub_8061458
+ .4byte sub_8061484
+ .4byte sub_8063474
+
+ .align 2
+Unknown_8375A64:
+ .4byte sub_80614B0
+ .4byte sub_80614DC
+ .4byte sub_8063474
+
+ .align 2
+Unknown_8375A70:
+ .4byte sub_806152C
+ .4byte sub_8061510
+ .4byte sub_8063470
+
+ .align 2
+Unknown_8375A7C:
+ .4byte sub_806154C
+ .4byte sub_8061510
+ .4byte sub_8063470
+
+ .align 2
+Unknown_8375A88:
+ .4byte sub_806156C
+ .4byte sub_8061510
+ .4byte sub_8063470
+
+ .align 2
+Unknown_8375A94:
+ .4byte sub_806158C
+ .4byte sub_8061510
+ .4byte sub_8063470
+
+ .align 2
+Unknown_8375AA0:
+ .4byte sub_80615AC
+ .4byte sub_8061510
+ .4byte sub_8063470
+
+ .align 2
+Unknown_8375AAC:
+ .4byte sub_80615CC
+ .4byte sub_80615EC
+ .4byte sub_8063474
+
+ .align 2
+Unknown_8375AB8:
+ .4byte sub_806160C
+ .4byte sub_806162C
+ .4byte sub_8063474
+
+ .align 2
+Unknown_8375AC4:
+ .4byte sub_806164C
+ .4byte sub_806166C
+ .4byte sub_8063474
+
+ .align 2
+Unknown_8375AD0:
+ .4byte sub_806168C
+ .4byte sub_80616AC
+ .4byte sub_8063474
+
+ .align 2
+Unknown_8375ADC:
+ .4byte sub_8061778
+ .4byte sub_806173C
+ .4byte sub_8063474
+
+ .align 2
+Unknown_8375AE8:
+ .4byte sub_80617B0
+ .4byte sub_806173C
+ .4byte sub_8063474
+
+ .align 2
+Unknown_8375AF4:
+ .4byte sub_80617E8
+ .4byte sub_806173C
+ .4byte sub_8063474
+
+ .align 2
+Unknown_8375B00:
+ .4byte sub_8061820
+ .4byte sub_806173C
+ .4byte sub_8063474
+
+ .align 2
+Unknown_8375B0C:
+ .4byte sub_8061858
+ .4byte sub_8061714
+ .4byte sub_8063474
+
+ .align 2
+Unknown_8375B18:
+ .4byte sub_8061890
+ .4byte sub_8061714
+ .4byte sub_8063474
+
+ .align 2
+Unknown_8375B24:
+ .4byte sub_80618C8
+ .4byte sub_8061714
+ .4byte sub_8063474
+
+ .align 2
+Unknown_8375B30:
+ .4byte sub_8061900
+ .4byte sub_8061714
+ .4byte sub_8063474
+
+ .align 2
+Unknown_8375B3C:
+ .4byte sub_8061938
+ .4byte sub_8061714
+ .4byte sub_8063474
+
+ .align 2
+Unknown_8375B48:
+ .4byte sub_8061970
+ .4byte sub_8061714
+ .4byte sub_8063474
+
+ .align 2
+Unknown_8375B54:
+ .4byte sub_80619A8
+ .4byte sub_8061714
+ .4byte sub_8063474
+
+ .align 2
+Unknown_8375B60:
+ .4byte sub_80619E0
+ .4byte sub_8061714
+ .4byte sub_8063474
+
+ .align 2
+Unknown_8375B6C:
+ .4byte sub_8061A18
+ .4byte sub_8061714
+ .4byte sub_8063474
+
+ .align 2
+Unknown_8375B78:
+ .4byte sub_8061A50
+ .4byte sub_8061714
+ .4byte sub_8063474
+
+ .align 2
+Unknown_8375B84:
+ .4byte sub_8061A88
+ .4byte sub_8061714
+ .4byte sub_8063474
+
+ .align 2
+Unknown_8375B90:
+ .4byte sub_8061AC0
+ .4byte sub_8061714
+ .4byte sub_8063474
+
+ .align 2
+Unknown_8375B9C:
+ .4byte sub_8061AF8
+ .4byte sub_8061B18
+ .4byte sub_8063474
+
+ .align 2
+Unknown_8375BA8:
+ .4byte sub_8061B38
+ .4byte sub_8061B58
+ .4byte sub_8063474
+
+ .align 2
+Unknown_8375BB4:
+ .4byte sub_8061B78
+ .4byte sub_8061B98
+ .4byte sub_8063474
+
+ .align 2
+Unknown_8375BC0:
+ .4byte sub_8061BB8
+ .4byte sub_8061BD8
+ .4byte sub_8063474
+
+ .align 2
+Unknown_8375BCC:
+ .4byte sub_8061BF8
+ .4byte sub_8061C18
+ .4byte sub_8063474
+
+ .align 2
+Unknown_8375BD8:
+ .4byte sub_8061C38
+ .4byte sub_8061C58
+ .4byte sub_8063474
+
+ .align 2
+Unknown_8375BE4:
+ .4byte sub_8061C78
+ .4byte sub_8061C98
+ .4byte sub_8063474
+
+ .align 2
+Unknown_8375BF0:
+ .4byte sub_8061CB8
+ .4byte sub_8061CD8
+ .4byte sub_8063474
+
+ .align 2
+Unknown_8375BFC:
+ .4byte sub_8061CF8
+ .4byte sub_8061D18
+ .4byte sub_8063474
+
+ .align 2
+Unknown_8375C08:
+ .4byte sub_8061D38
+ .4byte sub_8061D58
+ .4byte sub_8063474
+
+ .align 2
+Unknown_8375C14:
+ .4byte sub_8061D78
+ .4byte sub_8061D98
+ .4byte sub_8063474
+
+ .align 2
+Unknown_8375C20:
+ .4byte sub_8061DB8
+ .4byte sub_8061DD8
+ .4byte sub_8063474
+
+ .align 2
+Unknown_8375C2C:
+ .4byte do_run_south_anim
+ .4byte sub_8061E18
+ .4byte sub_8063474
+
+ .align 2
+Unknown_8375C38:
+ .4byte do_run_north_anim
+ .4byte sub_8061E58
+ .4byte sub_8063474
+
+ .align 2
+Unknown_8375C44:
+ .4byte do_run_west_anim
+ .4byte sub_8061E98
+ .4byte sub_8063474
+
+ .align 2
+Unknown_8375C50:
+ .4byte do_run_east_anim
+ .4byte sub_8061ED8
+ .4byte sub_8063474
+
+ .align 2
+Unknown_8375C5C:
+ .4byte sub_8061F24
+ .4byte sub_8061F3C
+ .4byte sub_8063474
+
+ .align 2
+Unknown_8375C68:
+ .4byte sub_8061F90
+ .4byte sub_8061FB0
+ .4byte sub_8063474
+
+ .align 2
+Unknown_8375C74:
+ .4byte sub_8061FD8
+ .4byte sub_8061FF8
+ .4byte sub_8063474
+
+ .align 2
+Unknown_8375C80:
+ .4byte sub_8062020
+ .4byte sub_8062040
+ .4byte sub_8063474
+
+ .align 2
+Unknown_8375C8C:
+ .4byte sub_8062068
+ .4byte sub_8062088
+ .4byte sub_8063474
+
+ .align 2
+Unknown_8375C98:
+ .4byte sub_80620B0
+ .4byte sub_8063474
+
+ .align 2
+Unknown_8375CA0:
+ .4byte sub_806210C
+ .4byte sub_8063474
+
+ .align 2
+Unknown_8375CA8:
+ .4byte sub_8062170
+ .4byte sub_8063474
+
+ .align 2
+Unknown_8375CB0:
+ .4byte sub_8062180
+ .4byte sub_8063474
+
+ .align 2
+Unknown_8375CB8:
+ .4byte sub_8062190
+ .4byte sub_80621BC
+ .4byte sub_8063474
+
+ .align 2
+Unknown_8375CC4:
+ .4byte sub_80621E8
+ .4byte sub_8062214
+ .4byte sub_8063474
+
+ .align 2
+Unknown_8375CD0:
+ .4byte sub_8062240
+ .4byte sub_806226C
+ .4byte sub_8063474
+
+ .align 2
+Unknown_8375CDC:
+ .4byte sub_8062298
+ .4byte sub_80622C4
+ .4byte sub_8063474
+
+ .align 2
+Unknown_8375CE8:
+ .4byte sub_80622F0
+ .4byte sub_806231C
+ .4byte sub_8063474
+
+ .align 2
+Unknown_8375CF4:
+ .4byte sub_8062348
+ .4byte sub_8062374
+ .4byte sub_8063474
+
+ .align 2
+Unknown_8375D00:
+ .4byte sub_80623A0
+ .4byte sub_80623CC
+ .4byte sub_8063474
+
+ .align 2
+Unknown_8375D0C:
+ .4byte sub_80623F8
+ .4byte sub_8062424
+ .4byte sub_8063474
+
+ .align 2
+Unknown_8375D18:
+ .4byte sub_8062450
+ .4byte sub_806247C
+ .4byte sub_8063474
+
+ .align 2
+Unknown_8375D24:
+ .4byte sub_80624A8
+ .4byte sub_80624D4
+ .4byte sub_8063474
+
+ .align 2
+Unknown_8375D30:
+ .4byte sub_8062500
+ .4byte sub_806252C
+ .4byte sub_8063474
+
+ .align 2
+Unknown_8375D3C:
+ .4byte sub_8062558
+ .4byte sub_8062584
+ .4byte sub_8063474
+
+ .align 2
+Unknown_8375D48:
+ .4byte sub_80625B0
+ .4byte sub_8063474
+
+ .align 2
+Unknown_8375D50:
+ .4byte sub_80625C8
+ .4byte sub_8061F3C
+ .4byte sub_8063474
+
+ .align 2
+Unknown_8375D5C:
+ .4byte sub_80625D8
+ .4byte sub_8063470
+
+ .align 2
+Unknown_8375D64:
+ .4byte sub_80625E8
+ .4byte sub_8063470
+
+ .align 2
+Unknown_8375D6C:
+ .4byte sub_80625F8
+ .4byte sub_8063470
+
+ .align 2
+Unknown_8375D74:
+ .4byte sub_8062608
+ .4byte sub_8063470
+
+ .align 2
+Unknown_8375D7C:
+ .4byte sub_8062634
+ .4byte sub_8063470
+
+ .align 2
+Unknown_8375D84:
+ .4byte sub_8062644
+ .4byte sub_8063470
+
+ .align 2
+Unknown_8375D8C:
+ .4byte do_exclamation_mark_bubble_1
+ .4byte sub_8063470
+
+ .align 2
+Unknown_8375D94:
+ .4byte do_exclamation_mark_bubble_2
+ .4byte sub_8063470
+
+ .align 2
+Unknown_8375D9C:
+ .4byte do_heart_bubble
+ .4byte sub_8063470
+
+ .align 2
+Unknown_8375DA4:
+ .4byte sub_80626C0
+ .4byte sub_8062704
+ .4byte sub_8063470
+
+ .align 2
+Unknown_8375DB0:
+ .4byte sub_8062724
+ .4byte sub_8062740
+ .4byte sub_8062764
+ .4byte sub_8063470
+
+ .align 2
+Unknown_8375DC0:
+ .4byte sub_80627A0
+ .4byte sub_80627BC
+ .4byte sub_80627E0
+ .4byte sub_8063470
+
+ .align 2
+Unknown_8375DD0:
+ .4byte sub_806281C
+ .4byte sub_8063470
+
+ .align 2
+Unknown_8375DD8:
+ .4byte sub_806282C
+ .4byte sub_8063470
+
+ .align 2
+Unknown_8375DE0:
+ .4byte sub_806283C
+ .4byte sub_8063470
+
+ .align 2
+Unknown_8375DE8:
+ .4byte sub_806286C
+ .4byte sub_8063470
+
+ .align 2
+Unknown_8375DF0:
+ .4byte sub_806289C
+ .4byte sub_80628D0
+ .4byte sub_8063474
+
+ .align 2
+Unknown_8375DFC:
+ .4byte sub_80628FC
+ .4byte sub_8062930
+ .4byte sub_8063474
+
+ .align 2
+Unknown_8375E08:
+ .4byte sub_806299C
+ .4byte sub_8063474
+
+ .align 2
+Unknown_8375E10:
+ .4byte sub_80629AC
+ .4byte sub_8063474
+
+ .align 2
+Unknown_8375E18:
+ .4byte sub_80629BC
+ .4byte sub_8063474
+
+ .align 2
+Unknown_8375E20:
+ .4byte sub_80629CC
+ .4byte sub_8063474
+
+ .align 2
+Unknown_8375E28:
+ .4byte sub_80629DC
+ .4byte sub_8061F3C
+ .4byte sub_8063474
+
+ .align 2
+Unknown_8375E34:
+ .4byte sub_8062A00
+ .4byte sub_8061F3C
+ .4byte sub_8063474
+
+ .align 2
+Unknown_8375E40:
+ .4byte sub_8062A24
+ .4byte sub_8061F3C
+ .4byte sub_8063474
+
+ .align 2
+Unknown_8375E4C:
+ .4byte sub_8062A48
+ .4byte sub_8061F3C
+ .4byte sub_8063474
+
+ .align 2
+Unknown_8375E58:
+ .4byte sub_8062A6C
+ .4byte sub_8061F3C
+ .4byte sub_8063474
+
+ .align 2
+Unknown_8375E64:
+ .4byte sub_8062A90
+ .4byte sub_8061F3C
+ .4byte sub_8063474
+
+ .align 2
+Unknown_8375E70:
+ .4byte sub_8062AB4
+ .4byte sub_8061F3C
+ .4byte sub_8063474
+
+ .align 2
+Unknown_8375E7C:
+ .4byte sub_8062AD8
+ .4byte sub_8061F3C
+ .4byte sub_8063474
+ .4byte sub_8062AFC
+ .4byte sub_8061F3C
+ .4byte sub_8063474
+ .4byte sub_8062B20
+ .4byte sub_8061F3C
+ .4byte sub_8063474
+ .4byte sub_8062B44
+ .4byte sub_8061F3C
+ .4byte sub_8063474
+ .4byte sub_8062B68
+ .4byte sub_8061F3C
+ .4byte sub_8063474
+
+ .align 2
+Unknown_8375EB8:
+ .4byte sub_8062BD0
+ .4byte sub_8062BFC
+ .4byte sub_8063474
+
+ .align 2
+Unknown_8375EC4:
+ .4byte sub_8062C28
+ .4byte sub_8062C54
+ .4byte sub_8063474
+
+ .align 2
+Unknown_8375ED0:
+ .4byte sub_8062C80
+ .4byte sub_8062CAC
+ .4byte sub_8063474
+
+ .align 2
+Unknown_8375EDC:
+ .4byte sub_8062CD8
+ .4byte sub_8062D04
+ .4byte sub_8063474
+
+ .align 2
+Unknown_8375EE8:
+ .4byte sub_8062D30
+ .4byte sub_8062D5C
+ .4byte sub_8063474
+
+ .align 2
+Unknown_8375EF4:
+ .4byte sub_8062D88
+ .4byte sub_8062DB4
+ .4byte sub_8063474
+
+ .align 2
+Unknown_8375F00:
+ .4byte sub_8062DE0
+ .4byte sub_8062E0C
+ .4byte sub_8063474
+
+ .align 2
+Unknown_8375F0C:
+ .4byte sub_8062E38
+ .4byte sub_8062E64
+ .4byte sub_8063474
+
+ .align 2
+Unknown_8375F18:
+ .4byte sub_8062E90
+ .4byte sub_8062EBC
+ .4byte sub_8063474
+
+ .align 2
+Unknown_8375F24:
+ .4byte sub_8062EE8
+ .4byte sub_8062F14
+ .4byte sub_8063474
+
+ .align 2
+Unknown_8375F30:
+ .4byte sub_8062F40
+ .4byte sub_8062F6C
+ .4byte sub_8063474
+
+ .align 2
+Unknown_8375F3C:
+ .4byte sub_8062F98
+ .4byte sub_8062FC4
+ .4byte sub_8063474
+
+ .align 2
+Unknown_8375F48:
+ .4byte sub_8062FF0
+ .4byte sub_8061714
+ .4byte sub_8063474
+
+ .align 2
+Unknown_8375F54:
+ .4byte sub_8063028
+ .4byte sub_8061714
+ .4byte sub_8063474
+
+ .align 2
+Unknown_8375F60:
+ .4byte sub_8063060
+ .4byte sub_8061714
+ .4byte sub_8063474
+
+ .align 2
+Unknown_8375F6C:
+ .4byte sub_8063098
+ .4byte sub_8061714
+ .4byte sub_8063474
+
+ .align 2
+Unknown_8375F78:
+ .4byte sub_8063108
+ .4byte sub_8063128
+ .4byte sub_8063474
+
+ .align 2
+Unknown_8375F84:
+ .4byte sub_8063148
+ .4byte sub_8063168
+ .4byte sub_8063474
+
+ .align 2
+Unknown_8375F90:
+ .4byte sub_8063188
+ .4byte sub_80631A8
+ .4byte sub_8063474
+
+ .align 2
+Unknown_8375F9C:
+ .4byte sub_80631C8
+ .4byte sub_80631E8
+ .4byte sub_8063474
+
+ .align 2
+Unknown_8375FA8:
+ .4byte sub_8063238
+ .4byte sub_8063258
+ .4byte sub_8063474
+
+ .align 2
+Unknown_8375FB4:
+ .4byte sub_8063278
+ .4byte sub_8063298
+ .4byte sub_8063474
+
+ .align 2
+Unknown_8375FC0:
+ .4byte sub_80632B8
+ .4byte sub_80632D8
+ .4byte sub_8063474
+
+ .align 2
+Unknown_8375FCC:
+ .4byte sub_80632F8
+ .4byte sub_8063318
+ .4byte sub_8063474
+
+ .align 2
+Unknown_8375FD8:
+ .4byte sub_8063370
+ .4byte sub_8063390
+ .4byte sub_8063474
+
+ .align 2
+Unknown_8375FE4:
+ .4byte sub_80633B0
+ .4byte sub_80633D0
+ .4byte sub_8063474
+
+ .align 2
+Unknown_8375FF0:
+ .4byte sub_80633F0
+ .4byte sub_8063410
+ .4byte sub_8063474
+
+ .align 2
+Unknown_8375FFC:
+ .4byte sub_8063430
+ .4byte sub_8063450
+ .4byte sub_8063474
diff --git a/data/field_map_obj_helpers.s b/data/field_map_obj_helpers.s
new file mode 100644
index 000000000..c2111da0f
--- /dev/null
+++ b/data/field_map_obj_helpers.s
@@ -0,0 +1,93 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+ .align 2
+Unknown_83760F0:
+ .4byte Step1
+ .4byte Step1
+ .4byte Step1
+ .4byte Step1
+ .4byte Step1
+ .4byte Step1
+ .4byte Step1
+ .4byte Step1
+ .4byte Step1
+ .4byte Step1
+ .4byte Step1
+ .4byte Step1
+ .4byte Step1
+ .4byte Step1
+ .4byte Step1
+ .4byte Step1
+
+ .align 2
+Unknown_8376130:
+ .4byte Step2
+ .4byte Step2
+ .4byte Step2
+ .4byte Step2
+ .4byte Step2
+ .4byte Step2
+ .4byte Step2
+ .4byte Step2
+
+ .align 2
+Unknown_8376150:
+ .4byte Step2
+ .4byte Step3
+ .4byte Step3
+ .4byte Step2
+ .4byte Step3
+ .4byte Step3
+
+ .align 2
+Unknown_8376168:
+ .4byte Step4
+ .4byte Step4
+ .4byte Step4
+ .4byte Step4
+
+ .align 2
+Unknown_8376178:
+ .4byte Step8
+ .4byte Step8
+
+ .align 2
+gUnknown_08376180:: @ 8376180
+ .4byte Unknown_83760F0
+ .4byte Unknown_8376130
+ .4byte Unknown_8376150
+ .4byte Unknown_8376168
+ .4byte Unknown_8376178
+
+ .align 1
+gUnknown_08376194:: @ 8376194
+ .2byte 16, 8, 6, 4, 2
+Unknown_837619E:
+ .byte -4, -6, -8, -10, -11, -12, -12, -12, -11, -10, -9, -8, -6, -4, 0, 0
+Unknown_83761AE:
+ .byte 0, -2, -3, -4, -5, -6, -6, -6, -5, -5, -4, -3, -2, 0, 0, 0
+Unknown_83761BE:
+ .byte -2, -4, -6, -8, -9, -10, -10, -10, -9, -8, -6, -5, -3, -2, 0, 0
+
+ .align 2
+gUnknown_083761D0:: @ 83761D0
+ .4byte Unknown_837619E
+ .4byte Unknown_83761AE
+ .4byte Unknown_83761BE
+
+ .align 1
+gUnknown_083761DC:: @ 83761DC
+ .2byte 0x10, 0x10, 0x20
+
+gUnknown_083761E2:: @ 83761E2
+ .byte 0, 0, 1
+
+ .align 1
+gUnknown_083761E6:: @ 83761E6
+ .2byte 0x20, 0x20, 0x40
+
+gUnknown_083761EC:: @ 83761EC
+ .byte 1, 1, 2
diff --git a/data/field_player_avatar.s b/data/field_player_avatar.s
new file mode 100644
index 000000000..1491a1ad4
--- /dev/null
+++ b/data/field_player_avatar.s
@@ -0,0 +1,184 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+ .align 2
+gUnknown_0830FB58:: @ 830FB58
+ .4byte MetatileBehavior_IsTrickHouseSlipperyFloor
+ .4byte MetatileBehavior_IsIce_2
+ .4byte MetatileBehavior_IsWalkSouth
+ .4byte MetatileBehavior_IsWalkNorth
+ .4byte MetatileBehavior_IsWalkWest
+ .4byte MetatileBehavior_IsWalkEast
+ .4byte MetatileBehavior_IsSouthwardCurrent
+ .4byte MetatileBehavior_IsNorthwardCurrent
+ .4byte MetatileBehavior_IsWestwardCurrent
+ .4byte MetatileBehavior_IsEastwardCurrent
+ .4byte MetatileBehavior_IsSlideSouth
+ .4byte MetatileBehavior_IsSlideNorth
+ .4byte MetatileBehavior_IsSlideWest
+ .4byte MetatileBehavior_IsSlideEast
+ .4byte MetatileBehavior_IsWaterfall
+ .4byte MetatileBehavior_0xBB
+ .4byte MetatileBehavior_0xBC
+ .4byte MetatileBehavior_IsMuddySlope
+
+ .align 2
+gUnknown_0830FBA0:: @ 830FBA0
+ .4byte ForcedMovement_None
+ .4byte ForcedMovement_Slip
+ .4byte ForcedMovement_Slip
+ .4byte sub_8058AAC
+ .4byte sub_8058AC4
+ .4byte sub_8058ADC
+ .4byte sub_8058AF4
+ .4byte sub_8058B0C
+ .4byte sub_8058B24
+ .4byte sub_8058B3C
+ .4byte sub_8058B54
+ .4byte ForcedMovement_SlideSouth
+ .4byte ForcedMovement_SlideNorth
+ .4byte ForcedMovement_SlideWest
+ .4byte ForcedMovement_SlideEast
+ .4byte sub_8058B0C
+ .4byte sub_8058C04
+ .4byte sub_8058C10
+ .4byte ForcedMovement_MuddySlope
+
+ .align 2
+gUnknown_0830FBEC:: @ 830FBEC
+ .4byte PlayerNotOnBikeNotMoving
+ .4byte PlayerNotOnBikeTurningInPlace
+ .4byte sub_8058D0C
+
+ .align 2
+gUnknown_0830FBF8:: @ 830FBF8
+ .4byte MetatileBehavior_IsBumpySlope
+ .4byte MetatileBehavior_IsIsolatedVerticalRail
+ .4byte MetatileBehavior_IsIsolatedHorizontalRail
+ .4byte MetatileBehavior_IsVerticalRail
+ .4byte MetatileBehavior_IsHorizontalRail
+
+gUnknown_0830FC0C:: @ 830FC0C
+ .byte 0x9, 0xA, 0xB, 0xC, 0xD
+
+ .align 2
+gUnknown_0830FC14:: @ 830FC14
+ .4byte PlayerAvatarTransition_Normal
+ .4byte PlayerAvatarTransition_MachBike
+ .4byte PlayerAvatarTransition_AcroBike
+ .4byte PlayerAvatarTransition_Surfing
+ .4byte PlayerAvatarTransition_Underwater
+ .4byte sub_80591F4
+ .4byte nullsub_49
+ .4byte nullsub_49
+
+ .align 2
+gUnknown_0830FC34:: @ 830FC34
+ .4byte MetatileBehavior_IsSouthArrowWarp
+ .4byte MetatileBehavior_IsNorthArrowWarp
+ .4byte MetatileBehavior_IsWestArrowWarp
+ .4byte MetatileBehavior_IsEastArrowWarp
+
+gUnknown_0830FC44:: @ 830FC44
+ .byte MAP_OBJ_GFX_RIVAL_BRENDAN_NORMAL, MAP_OBJ_GFX_RIVAL_MAY_NORMAL
+ .byte MAP_OBJ_GFX_RIVAL_BRENDAN_MACH_BIKE, MAP_OBJ_GFX_RIVAL_MAY_MACH_BIKE
+ .byte MAP_OBJ_GFX_RIVAL_BRENDAN_ACRO_BIKE, MAP_OBJ_GFX_RIVAL_MAY_ACRO_BIKE
+ .byte MAP_OBJ_GFX_RIVAL_BRENDAN_SURFING, MAP_OBJ_GFX_RIVAL_MAY_SURFING
+ .byte MAP_OBJ_GFX_BRENDAN_UNDERWATER, MAP_OBJ_GFX_MAY_UNDERWATER
+ .byte MAP_OBJ_GFX_RIVAL_BRENDAN_FIELD_MOVE, MAP_OBJ_GFX_RIVAL_MAY_FIELD_MOVE
+ .byte MAP_OBJ_GFX_BRENDAN_FISHING, MAP_OBJ_GFX_MAY_FISHING
+ .byte MAP_OBJ_GFX_BRENDAN_WATERING, MAP_OBJ_GFX_MAY_WATERING
+
+gUnknown_0830FC54:: @ 830FC54
+ .byte MAP_OBJ_GFX_BRENDAN_NORMAL, MAP_OBJ_GFX_MAY_NORMAL
+ .byte MAP_OBJ_GFX_BRENDAN_MACH_BIKE, MAP_OBJ_GFX_MAY_MACH_BIKE
+ .byte MAP_OBJ_GFX_BRENDAN_ACRO_BIKE, MAP_OBJ_GFX_MAY_ACRO_BIKE
+ .byte MAP_OBJ_GFX_BRENDAN_SURFING, MAP_OBJ_GFX_MAY_SURFING
+ .byte MAP_OBJ_GFX_BRENDAN_UNDERWATER, MAP_OBJ_GFX_MAY_UNDERWATER
+ .byte MAP_OBJ_GFX_BRENDAN_FIELD_MOVE, MAP_OBJ_GFX_MAY_FIELD_MOVE
+ .byte MAP_OBJ_GFX_BRENDAN_FISHING, MAP_OBJ_GFX_MAY_FISHING
+ .byte MAP_OBJ_GFX_BRENDAN_WATERING, MAP_OBJ_GFX_MAY_WATERING
+
+gUnknown_0830FC64:: @ 830FC64
+ @ male
+ .byte MAP_OBJ_GFX_BRENDAN_NORMAL, 1
+ .byte MAP_OBJ_GFX_BRENDAN_MACH_BIKE, 2
+ .byte MAP_OBJ_GFX_BRENDAN_ACRO_BIKE, 4
+ .byte MAP_OBJ_GFX_BRENDAN_SURFING, 8
+ .byte MAP_OBJ_GFX_BRENDAN_UNDERWATER, 16
+ @ female
+ .byte MAP_OBJ_GFX_MAY_NORMAL, 1
+ .byte MAP_OBJ_GFX_MAY_MACH_BIKE, 2
+ .byte MAP_OBJ_GFX_MAY_ACRO_BIKE, 4
+ .byte MAP_OBJ_GFX_MAY_SURFING, 8
+ .byte MAP_OBJ_GFX_MAY_UNDERWATER, 16
+
+ .align 2
+gUnknown_0830FC78:: @ 830FC78
+ .4byte MetatileBehavior_IsSouthArrowWarp
+ .4byte MetatileBehavior_IsNorthArrowWarp
+ .4byte MetatileBehavior_IsWestArrowWarp
+ .4byte MetatileBehavior_IsEastArrowWarp
+
+ .align 2
+gUnknown_0830FC88:: @ 830FC88
+ .4byte sub_8059E84
+ .4byte sub_8059EA4
+ .4byte sub_8059F40
+
+ .align 2
+gUnknown_0830FC94:: @ 830FC94
+ .4byte sub_805A000
+
+ .align 2
+gUnknown_0830FC98:: @ 830FC98
+ .4byte sub_805A0D8
+ .4byte sub_805A100
+ .4byte sub_805A178
+ .4byte sub_805A1B8
+
+gUnknown_0830FCA8:: @ 830FCA8
+ .byte DIR_WEST, DIR_EAST, DIR_NORTH, DIR_SOUTH
+
+gUnknown_0830FCAC:: @ 830FCAC
+ .byte 0x10, 0x10, 0x11, 0x12, 0x13
+
+ .align 2
+gUnknown_0830FCB4:: @ 830FCB4
+ .4byte Fishing1
+ .4byte Fishing2
+ .4byte Fishing3
+ .4byte Fishing4
+ .4byte Fishing5
+ .4byte Fishing6
+ .4byte Fishing7
+ .4byte Fishing8
+ .4byte Fishing9
+ .4byte Fishing10
+ .4byte Fishing11
+ .4byte Fishing12
+ .4byte Fishing13
+ .4byte Fishing14
+ .4byte Fishing15
+ .4byte Fishing16
+
+ .align 1
+gUnknown_0830FCF4:: @ 830FCF4
+ .2byte 1, 1, 1
+
+ .align 1
+gUnknown_0830FCFA:: @ 830FCFA
+ .2byte 1, 3, 6
+
+gUnknown_0830FD00:: @ 830FD00
+ .string "·$"
+
+ .align 1
+gUnknown_0830FD02:: @ 830FD02
+ .2byte 36, 33, 30
+
+ .align 1
+gUnknown_0830FD08:: @ 830FD08
+ .2byte 0, 0, 40, 10, 70, 30
diff --git a/data/field_tasks.s b/data/field_tasks.s
new file mode 100644
index 000000000..d7de1fe16
--- /dev/null
+++ b/data/field_tasks.s
@@ -0,0 +1,31 @@
+ .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
+ .incbin "baserom.gba", 0x00376384, 0x20
+
+gUnknown_083763A4:: @ 83763A4
+ .incbin "baserom.gba", 0x003763a4, 0x20
+
+gUnknown_083763C4:: @ 83763C4
+ .incbin "baserom.gba", 0x003763c4, 0x20
+
+gUnknown_083763E4:: @ 83763E4
+ .incbin "baserom.gba", 0x003763e4, 0x34
+
+ .align 1
+gUnknown_08376418:: @ 8376418
+ .2byte 0xE8, 0xEB, 0xEA, 0xE9
diff --git a/data/fldeff_80C5CD4.s b/data/fldeff_80C5CD4.s
new file mode 100644
index 000000000..b0c3a15ea
--- /dev/null
+++ b/data/fldeff_80C5CD4.s
@@ -0,0 +1,323 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+ .align 2
+gUnknown_083D1898:: @ 83D1898
+ obj_pal gUnknownPal_083D190C, 0x0080
+
+ .align 2
+gUnknown_083D18A0:: @ 83D18A0
+ obj_pal gUnknownPal_083D18EC, 0x0000
+
+ .align 2
+gSpriteTemplate_83D18A8:: @ 83D18A8
+ spr_template 0, 0, gOamData_83D18D8, gSpriteAnimTable_83D18E8, NULL, gDummySpriteAffineAnimTable, sub_80C60CC
+
+ .align 2
+gSpriteTemplate_83D18C0:: @ 83D18C0
+ spr_template 0, 0, gOamData_83D18D8, gSpriteAnimTable_83D18E8, NULL, gDummySpriteAffineAnimTable, sub_80C6130
+
+ .align 2
+gOamData_83D18D8:: @ 83D18D8
+ .2byte 0x4000
+ .2byte 0x4000
+ .2byte 0x0000
+
+ .align 2
+gSpriteAnim_83D18E0:: @ 83D18E0
+ obj_image_anim_frame 0, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_83D18E8:: @ 83D18E8
+ .4byte gSpriteAnim_83D18E0
+
+ .align 2
+gUnknownPal_083D18EC::
+ .incbin "baserom.gba", 0x003d18ec, 0x20
+
+ .align 2
+gUnknownPal_083D190C::
+ .incbin "baserom.gba", 0x003d190c, 0x20
+
+ .incbin "baserom.gba", 0x003d192c, 0x60
+
+ .align 2
+gSpriteImage_83D198C:: @ 83D198C
+ .incbin "graphics/unknown_sprites/83D259C/0.4bpp"
+
+ .align 2
+gSpriteImage_83D1A0C:: @ 83D1A0C
+ .incbin "graphics/unknown_sprites/83D259C/1.4bpp"
+
+ .align 2
+gSpriteImage_83D1A8C:: @ 83D1A8C
+ .incbin "graphics/unknown_sprites/83D259C/2.4bpp"
+
+ .align 2
+gSpriteImage_83D1B0C:: @ 83D1B0C
+ .incbin "graphics/unknown_sprites/83D259C/3.4bpp"
+
+ .align 2
+gSpriteImage_83D1B8C:: @ 83D1B8C
+ .incbin "graphics/unknown_sprites/83D259C/4.4bpp"
+
+ .align 2
+ .incbin "baserom.gba", 0x003d1c0c, 0x20
+
+ .align 2
+gFieldEffectObjectPalette7: @ 83D1C2C
+ .incbin "graphics/field_effect_objects/palettes/07.gbapal"
+
+ .align 2
+gSpriteImage_83D1C4C:: @ 83D1C4C
+ .incbin "graphics/unknown_sprites/83D25EC/0.4bpp"
+
+ .align 2
+gSpriteImage_83D1CCC:: @ 83D1CCC
+ .incbin "graphics/unknown_sprites/83D25EC/1.4bpp"
+
+ .align 2
+gSpriteImage_83D1D4C:: @ 83D1D4C
+ .incbin "graphics/unknown_sprites/83D25EC/2.4bpp"
+
+ .align 2
+gSpriteImage_83D1DCC:: @ 83D1DCC
+ .incbin "graphics/unknown_sprites/83D25EC/3.4bpp"
+
+ .align 2
+gSpriteImage_83D1E4C:: @ 83D1E4C
+ .incbin "graphics/unknown_sprites/83D25EC/4.4bpp"
+
+ .align 2
+gSpriteImage_83D1ECC:: @ 83D1ECC
+ .incbin "graphics/unknown_sprites/83D25C4/0.4bpp"
+
+ .align 2
+gSpriteImage_83D1F4C:: @ 83D1F4C
+ .incbin "graphics/unknown_sprites/83D25C4/1.4bpp"
+
+ .align 2
+gSpriteImage_83D1FCC:: @ 83D1FCC
+ .incbin "graphics/unknown_sprites/83D25C4/2.4bpp"
+
+ .align 2
+gSpriteImage_83D204C:: @ 83D204C
+ .incbin "graphics/unknown_sprites/83D25C4/3.4bpp"
+
+ .align 2
+gSpriteImage_83D20CC:: @ 83D20CC
+ .incbin "graphics/unknown_sprites/83D25C4/4.4bpp"
+
+ .align 2
+ .incbin "baserom.gba", 0x003d214c, 0x80
+
+ .align 2
+gFieldEffectObjectPalette8: @ 83D21CC
+ .incbin "graphics/field_effect_objects/palettes/08.gbapal"
+
+ .align 2
+gSpriteImage_83D21EC:: @ 83D21EC
+ .incbin "graphics/unknown_sprites/83D2688/0.4bpp"
+
+ .align 2
+gSpriteImage_83D22EC:: @ 83D22EC
+ .incbin "graphics/unknown_sprites/83D2688/1.4bpp"
+
+ .align 2
+gSpriteImage_83D23EC:: @ 83D23EC
+ .incbin "graphics/unknown_sprites/83D2688/2.4bpp"
+
+ .align 2
+gOamData_83D24EC:: @ 83D24EC
+ .2byte 0x0000
+ .2byte 0x4000
+ .2byte 0x0800
+
+ .align 2
+gSpriteAnim_83D24F4:: @ 83D24F4
+ obj_image_anim_frame 0, 8
+ obj_image_anim_frame 1, 8
+ obj_image_anim_frame 2, 8
+ obj_image_anim_frame 3, 8
+ obj_image_anim_frame 4, 8
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83D250C:: @ 83D250C
+ obj_image_anim_frame 0, 8
+ obj_image_anim_frame 1, 8
+ obj_image_anim_frame 2, 8
+ obj_image_anim_frame 3, 8
+ obj_image_anim_frame 4, 8
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83D2524:: @ 83D2524
+ obj_image_anim_frame 4, 8
+ obj_image_anim_frame 3, 8
+ obj_image_anim_frame 2, 8
+ obj_image_anim_frame 1, 8
+ obj_image_anim_frame 0, 8
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83D253C:: @ 83D253C
+ obj_image_anim_frame 0, 8, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_frame 1, 8, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_frame 2, 8, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_frame 3, 8, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_frame 4, 8, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83D2554:: @ 83D2554
+ obj_image_anim_frame 4, 8, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_frame 3, 8, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_frame 2, 8, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_frame 1, 8, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_frame 0, 8, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83D256C:: @ 83D256C
+ obj_image_anim_frame 0, 8
+ obj_image_anim_frame 1, 8
+ obj_image_anim_frame 2, 8
+ obj_image_anim_frame 3, 8
+ obj_image_anim_frame 4, 8
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_83D2584:: @ 83D2584
+ .4byte gSpriteAnim_83D24F4
+
+ .align 2
+gSpriteAnimTable_83D2588:: @ 83D2588
+ .4byte gSpriteAnim_83D250C
+ .4byte gSpriteAnim_83D2524
+ .4byte gSpriteAnim_83D253C
+ .4byte gSpriteAnim_83D2554
+
+ .align 2
+gSpriteAnimTable_83D2598:: @ 83D2598
+ .4byte gSpriteAnim_83D256C
+
+ .align 2
+gSpriteImageTable_83D259C:: @ 83D259C
+ obj_frame_tiles gSpriteImage_83D198C, 0x80
+ obj_frame_tiles gSpriteImage_83D1A0C, 0x80
+ obj_frame_tiles gSpriteImage_83D1A8C, 0x80
+ obj_frame_tiles gSpriteImage_83D1B0C, 0x80
+ obj_frame_tiles gSpriteImage_83D1B8C, 0x80
+
+ .align 2
+gSpriteImageTable_83D25C4:: @ 83D25C4
+ obj_frame_tiles gSpriteImage_83D1ECC, 0x80
+ obj_frame_tiles gSpriteImage_83D1F4C, 0x80
+ obj_frame_tiles gSpriteImage_83D1FCC, 0x80
+ obj_frame_tiles gSpriteImage_83D204C, 0x80
+ obj_frame_tiles gSpriteImage_83D20CC, 0x80
+
+ .align 2
+gSpriteImageTable_83D25EC:: @ 83D25EC
+ obj_frame_tiles gSpriteImage_83D1C4C, 0x80
+ obj_frame_tiles gSpriteImage_83D1CCC, 0x80
+ obj_frame_tiles gSpriteImage_83D1D4C, 0x80
+ obj_frame_tiles gSpriteImage_83D1DCC, 0x80
+ obj_frame_tiles gSpriteImage_83D1E4C, 0x80
+
+ .align 2
+gSpriteTemplate_83D2614:: @ 83D2614
+ spr_template 0xFFFF, 4099, gOamData_83D24EC, gSpriteAnimTable_83D2584, gSpriteImageTable_83D259C, gDummySpriteAffineAnimTable, sub_80C644C
+
+ .align 2
+gSpriteTemplate_83D262C:: @ 83D262C
+ spr_template 0xFFFF, 4104, gOamData_83D24EC, gSpriteAnimTable_83D2588, gSpriteImageTable_83D25C4, gDummySpriteAffineAnimTable, sub_80C6598
+
+ .align 2
+gSpriteTemplate_83D2644:: @ 83D2644
+ spr_template 0xFFFF, 4104, gOamData_83D24EC, gSpriteAnimTable_83D2598, gSpriteImageTable_83D25EC, gDummySpriteAffineAnimTable, sub_80C66BC
+
+ .align 2
+gFieldEffectObjectPaletteInfo7:: @ 83D265C
+ obj_pal gFieldEffectObjectPalette7, 0x1003
+
+ .align 2
+gFieldEffectObjectPaletteInfo8:: @ 83D2664
+ obj_pal gFieldEffectObjectPalette8, 0x1008
+
+ .align 2
+gOamData_83D266C:: @ 83D266C
+ .2byte 0x8000
+ .2byte 0x8000
+ .2byte 0x0800
+
+ .align 2
+gSpriteAnim_83D2674:: @ 83D2674
+ obj_image_anim_frame 0, 6
+ obj_image_anim_frame 1, 6
+ obj_image_anim_frame 2, 6
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_83D2684:: @ 83D2684
+ .4byte gSpriteAnim_83D2674
+
+ .align 2
+gSpriteImageTable_83D2688:: @ 83D2688
+ obj_frame_tiles gSpriteImage_83D21EC, 0x100
+ obj_frame_tiles gSpriteImage_83D22EC, 0x100
+ obj_frame_tiles gSpriteImage_83D23EC, 0x100
+
+ .align 2
+gSpriteTemplate_83D26A0:: @ 83D26A0
+ spr_template 0xFFFF, 4110, gOamData_83D266C, gSpriteAnimTable_83D2684, gSpriteImageTable_83D2688, gDummySpriteAffineAnimTable, SpriteCB_SandPillar_0
+
+@ This uses one of the secret base palettes, so there is no "09.pal" file.
+ .align 2
+gFieldEffectObjectPaletteInfo9:: @ 83D26B8
+ obj_pal gTilesetPalettes_SecretBase + 5 * 0x20, 0x100E
+
+ .align 2
+gSpriteImage_83D26C0:: @ 83D26C0
+ .incbin "graphics/unknown_sprites/83D2860/0.4bpp"
+
+ .align 2
+gSpriteImage_83D2740:: @ 83D2740
+ .incbin "graphics/unknown_sprites/83D2860/1.4bpp"
+
+ .align 2
+gSpriteImage_83D27C0:: @ 83D27C0
+ .incbin "graphics/unknown_sprites/83D2860/2.4bpp"
+
+ .align 2
+Palette_3D2840:: @ 83D2840
+ .incbin "baserom.gba", 0x3d2840, 0x20
+
+ .align 2
+gSpriteImageTable_83D2860:: @ 83D2860
+ obj_frame_tiles gSpriteImage_83D26C0, 0x80
+ obj_frame_tiles gSpriteImage_83D2740, 0x80
+ obj_frame_tiles gSpriteImage_83D27C0, 0x80
+
+ .align 2
+gUnknown_083D2878:: @ 83D2878
+ obj_pal Palette_3D2840, 4096
+
+ .align 2
+gSpriteAnim_83D2880:: @ 83D2880
+ obj_image_anim_frame 0, 30
+ obj_image_anim_frame 1, 30
+ obj_image_anim_frame 2, 30
+ obj_image_anim_jump 0
+
+ .align 2
+gSpriteAnimTable_83D2890:: @ 83D2890
+ .4byte gSpriteAnim_83D2880
+
+ .align 2
+gSpriteTemplate_83D2894:: @ 83D2894
+ spr_template 0xFFFF, 4096, gFieldOamData_32x8, gSpriteAnimTable_83D2890, gSpriteImageTable_83D2860, gDummySpriteAffineAnimTable, SpriteCallbackDummy
diff --git a/data/fldeff_cut.s b/data/fldeff_cut.s
new file mode 100644
index 000000000..e1d27647e
--- /dev/null
+++ b/data/fldeff_cut.s
@@ -0,0 +1,31 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+ .align 2
+gOamData_CutGrass:: @ 83C15DC
+ .2byte 0
+ .2byte 0
+ .2byte 0x1401
+
+ .align 2
+gSpriteAnim_CutGrass:: @ 83C15E4
+ obj_image_anim_frame 0, 30
+ obj_image_anim_jump 0
+
+ .align 2
+gSpriteAnimTable_CutGrass:: @ 83C15EC
+ .4byte gSpriteAnim_CutGrass
+
+ .align 2
+gSpriteImageTable_CutGrass:: @ 83C15F0
+ obj_frame_tiles gFieldEffectPic_CutGrass, 0x20
+
+ .align 2
+gFieldEffectObjectPaletteInfo6:: @ 83C15F8
+ obj_pal gFieldEffectObjectPalette6, 0x1000
+
+ .align 2
+gSpriteTemplate_CutGrass:: @ 83C1600
+ spr_template 0xFFFF, 0x1000, gOamData_CutGrass, gSpriteAnimTable_CutGrass, gSpriteImageTable_CutGrass, gDummySpriteAffineAnimTable, sub_80A2A48
diff --git a/data/graphics.s b/data/graphics.s
index f809c6ddd..f597b1248 100644
--- a/data/graphics.s
+++ b/data/graphics.s
@@ -1187,7 +1187,7 @@ gBattleAnimSpriteSheet_077:: @ 8D150F4
.incbin "graphics/unused/old_contest.bin.lz"
.align 2
- .incbin "baserom.gba", 0xD15D64, 0x2C0 @ LZ, uncomp. size = 0x1000
+ .incbin "graphics/unknown/unknown_D15D64.bin.lz"
.align 2
gContestNumbers_UnusedGfx::
@@ -1210,17 +1210,17 @@ gUnknown_08D1725C:: @ 8D1725C
.align 2
gUnknown_08D17424:: @ 8D17424
- .incbin "baserom.gba", 0xD17424, 0x2A7 @ LZ, uncomp. size = 0x1000
+ .incbin "graphics/unknown/unknown_D17424.bin.lz"
.align 2
- .incbin "baserom.gba", 0xD176CC, 0x10A @ LZ, uncomp. size = 0x800
+ .incbin "graphics/unknown/unknown_D176CC.bin.lz"
.align 2
- .incbin "baserom.gba", 0xD177D8, 0x462 @ LZ, uncomp. size = 0x2000
+ .incbin "graphics/unknown/unknown_D177D8.bin.lz"
.align 2
gUnknown_08D17C3C:: @ 8D17C3C
- .incbin "baserom.gba", 0xD17C3C, 0x12D @ LZ, uncomp. size = 0x800
+ .incbin "graphics/unknown/unknown_D17C3C.bin.lz"
.align 2
gContestMiscGfx:: @ 8D17D6C
@@ -2962,7 +2962,7 @@ gBattleAnimBackgroundPalette_24:: @ 8E6BBDC
.incbin "graphics/battle_anims/backgrounds/24.gbapal.lz"
.align 2
- .incbin "baserom.gba", 0xE6BC04, 0x4FB @ LZ, uncomp. size = 0x500
+ .incbin "graphics/unknown/unknown_E6BC04.bin.lz"
.align 2
gUnknown_08E6C100:: @ 8E6C100
@@ -3106,15 +3106,15 @@ gBattleAnimBackgroundPalette_Surf:: @ 8E70940
.align 2
gUnknown_08E70968:: @ 8E70968
- .incbin "baserom.gba", 0xE70968, 0x2D0 @ LZ, uncomp. size = 0x1000
+ .incbin "graphics/unknown/unknown_E70968.bin.lz"
.align 2
gUnknown_08E70C38:: @ 8E70C38
- .incbin "baserom.gba", 0xE70C38, 0x2D3 @ LZ, uncomp. size = 0x1000
+ .incbin "graphics/unknown/unknown_E70C38.bin.lz"
.align 2
gUnknown_08E70F0C:: @ 8E70F0C
- .incbin "baserom.gba", 0xE70F0C, 0x2F2 @ LZ, uncomp. size = 0x1000
+ .incbin "graphics/unknown/unknown_E70F0C.bin.lz"
.align 2
gBattleAnimSpritePalette_286:: @ 8E71200
@@ -3182,21 +3182,21 @@ gStatusScreen_Pal:: @ 8E73468
.align 2
gUnknown_08E73508:: @ 8E73508
- .incbin "baserom.gba", 0xE73508, 0x800
+ .incbin "graphics/interface/status_screen.bin"
.align 2
gStatusScreen_Tilemap:: @ 8E73D08
- .incbin "graphics/interface/status_screen.bin.lz"
+ .incbin "graphics/interface/status_screen_pokemon_skills.bin.lz"
gUnknown_08E73E88:: @ 8E73E88
- .incbin "baserom.gba", 0x00e73e88, 0x800
+ .incbin "graphics/interface/status_screen_battle_moves.bin"
gUnknown_08E74688:: @ 8E74688
- .incbin "baserom.gba", 0x00e74688, 0x800
+ .incbin "graphics/interface/status_screen_contest_moves.bin"
.align 2
gUnknown_08E74E88:: @ 8E74E88
- .incbin "baserom.gba", 0xE74E88, 0x19C @ LZ, uncomp. size = 0x800
+ .incbin "graphics/interface/pokemon_info.bin.lz"
.align 2
gBagMaleTiles:: @ 8E75024
@@ -3223,7 +3223,7 @@ gBagScreenFemale_Pal:: @ 8E76FCC
.incbin "graphics/interface/bag_screen_female.gbapal.lz"
gUnknown_08E77004:: @ 8E77004
- .incbin "baserom.gba", 0x00e77004, 0x800
+ .incbin "graphics/unknown/unknown_E77004.bin"
.align 2
gBuyMenuFrame_Gfx:: @ 8E77804
@@ -3323,7 +3323,7 @@ gPokeblockGold_Pal::
.align 2
gUnknown_08E782FC:: @ 8E782FC
- .incbin "baserom.gba", 0xE782FC, 0x100 @ LZ, uncomp. size = 0x800
+ .incbin "graphics/interface/pokeblock_feeding_bg_map.bin.lz"
.align 2
gBerryCheck_Gfx:: @ 8E783FC
@@ -3335,11 +3335,11 @@ gBerryCheck_Pal:: @ 8E7883C
.align 2
gUnknown_08E788E4:: @ 8E788E4
- .incbin "baserom.gba", 0xE788E4, 0x19E @ LZ, uncomp. size = 0x800
+ .incbin "graphics/interface/berry_tag.bin.lz"
.align 2
gUnknown_08E78A84:: @ 8E78A84
- .incbin "baserom.gba", 0xE78A84, 0x12D @ LZ, uncomp. size = 0x800
+ .incbin "graphics/interface/berry_tag_title.bin.lz"
.align 2
gBerryCheckCircle_Gfx:: @ 8E78BB4
@@ -3398,11 +3398,11 @@ gCableCarCord_Gfx:: @ 8E80944
.align 2
gUnknown_08E8096C:: @ 8E8096C
- .incbin "baserom.gba", 0xE8096C, 0x72C @ LZ, uncomp. size = 0x2000
+ .incbin "graphics/unknown/unknown_E8096C.4bpp.lz"
.align 2
gUnknown_08E81098:: @ 8E81098
- .incbin "baserom.gba", 0xE81098, 0x10A5 @ LZ, uncomp. size = 0x4000
+ .incbin "graphics/unknown/unknown_E81098.bin.lz"
.align 2
gRouletteCenter_Gfx::
@@ -3634,7 +3634,7 @@ gNamingScreenPalettes:: @ 8E86198
.incbin "graphics/naming_screen/5.gbapal"
gUnknown_08E86258:: @ 8E86258
- .incbin "baserom.gba", 0x00e86258, 0x500
+ .incbin "graphics/unknown/unknown_E86258.bin"
.align 2
gPokedexMenu_Gfx:: @ 8E86758
@@ -3801,16 +3801,16 @@ gMenuTrainerCard4Star_Pal::
.incbin "graphics/misc/trainer_card_4star.gbapal"
gUnknown_08E8CAC0::
- .incbin "baserom.gba", 0x00e8cac0, 0x500
+ .incbin "graphics/unknown/unknown_E8CAC0.bin"
gUnknown_08E8CFC0:: @ 8E8CFC0
- .incbin "baserom.gba", 0x00e8cfc0, 0x500
+ .incbin "graphics/unknown/unknown_E8CFC0.bin"
gUnknown_08E8D4C0::
- .incbin "baserom.gba", 0x00e8d4c0, 0x500
+ .incbin "graphics/unknown/unknown_E8D4C0.bin"
gUnknown_08E8D9C0:: @ 8E8D9C0
- .incbin "baserom.gba", 0x00e8d9c0, 0x500
+ .incbin "graphics/unknown/unknown_E8D9C0.bin"
.align 2
gPSSMenuHeader_Gfx:: @ 8E8DEC0
@@ -3955,28 +3955,28 @@ gTilesetPalettes_General:: @ 8E94310
.incbin "data/tilesets/primary/general/palettes/15.gbapal"
gUnknown_08E94510:: @ 8E94510
- .incbin "baserom.gba", 0x00e94510, 0x40
+ .incbin "graphics/unknown/unknown_E94510.bin"
gUnknown_08E94550:: @ 8E94550
- .incbin "baserom.gba", 0x00e94550, 0x80
+ .incbin "graphics/unknown/unknown_E94550.bin"
gUnknown_08E945D0:: @ 8E945D0
- .incbin "baserom.gba", 0x00e945d0, 0x500
+ .incbin "graphics/interface/wordgroup_layout.bin"
gUnknown_08E94AD0:: @ 8E94AD0
- .incbin "baserom.gba", 0x00e94ad0, 0x900
+ .incbin "graphics/unknown/unknown_E94AD0.bin"
.align 2
gUnknown_08E953D0:: @ 8E953D0
- .incbin "baserom.gba", 0xE953D0, 0xE0 @ LZ, uncomp. size = 0x480
+ .incbin "graphics/unknown/unknown_E953D0.bin.lz"
.align 2
gUnknown_08E954B0:: @ 8E954B0
- .incbin "baserom.gba", 0xE954B0, 0x2C3 @ LZ, uncomp. size = 0x500
+ .incbin "graphics/misc/wallclock_edit.bin.lz"
.align 2
gUnknown_08E95774:: @ 8E95774
- .incbin "baserom.gba", 0xE95774, 0x2A1 @ LZ, uncomp. size = 0x500
+ .incbin "graphics/misc/wallclock_view.bin.lz"
.align 2
gUnknown_08E95A18:: @ 8E95A18
@@ -3987,16 +3987,16 @@ gUnknown_08E95A18:: @ 8E95A18
.endif
gUnknown_08E95AB8:: @ 8E95AB8
- .incbin "baserom.gba", 0x00e95ab8, 0x500
+ .incbin "graphics/unknown/unknown_E95AB8.bin"
gUnknown_08E95FB8:: @ 8E95FB8
- .incbin "baserom.gba", 0x00e95fb8, 0x500
+ .incbin "graphics/slot_machine/slots_layout.bin"
gUnknown_08E964B8:: @ 8E964B8
- .incbin "baserom.gba", 0x00e964b8, 0x200
+ .incbin "graphics/contest/contest_words.bin"
gUnknown_08E966B8:: @ 8E966B8
- .incbin "baserom.gba", 0x00e966b8, 0x20
+ .incbin "graphics/unknown/unknown_E966B8.gbapal"
.align 2
gMonIconPalettes:: @ 8E966D8
@@ -4006,35 +4006,35 @@ gMonIconPalettes:: @ 8E966D8
.align 2
gUnknown_08E96738:: @ 8E96738
- .incbin "baserom.gba", 0xE96738, 0x14F @ LZ, uncomp. size = 0x500
+ .incbin "graphics/unknown/unknown_E96738.bin.lz"
.align 2
gUnknown_08E96888:: @ 8E96888
- .incbin "baserom.gba", 0xE96888, 0x109 @ LZ, uncomp. size = 0x300
+ .incbin "graphics/pokedex/pokedex_list_menu.bin.lz"
.align 2
gUnknown_08E96994:: @ 8E96994
- .incbin "baserom.gba", 0xE96994, 0x137 @ LZ, uncomp. size = 0x300
+ .incbin "graphics/pokedex/pokedex_listing_menu.bin.lz"
.align 2
gUnknown_08E96ACC:: @ 8E96ACC
- .incbin "baserom.gba", 0xE96ACC, 0x8B @ LZ, uncomp. size = 0xC0
+ .incbin "graphics/pokedex/pokedex_navbar.bin.lz"
.align 2
gUnknown_08E96B58:: @ 8E96B58
- .incbin "baserom.gba", 0xE96B58, 0x7B @ LZ, uncomp. size = 0xC0
+ .incbin "graphics/pokedex/pokedex_navbar_3.bin.lz"
.align 2
gUnknown_08E96BD4:: @ 8E96BD4
- .incbin "baserom.gba", 0xE96BD4, 0x155 @ LZ, uncomp. size = 0x500
+ .incbin "graphics/pokedex/pokedex_detail_layout.bin.lz"
.align 2
gUnknown_08E96D2C:: @ 8E96D2C
- .incbin "baserom.gba", 0xE96D2C, 0x19B @ LZ, uncomp. size = 0x500
+ .incbin "graphics/unknown/unknown_E96D2C.bin.lz"
.align 2
gUnknown_08E96EC8:: @ 8E96EC8
- .incbin "baserom.gba", 0x00e96ec8, 0x800
+ .incbin "graphics/unknown/unknown_E96EC8.bin"
.align 2
gSlotMachineSpritePalette0:: @ 8E976C8
@@ -4202,7 +4202,7 @@ gSpriteImage_8E993E8:: @ 8E993E8
.align 2
gUnknownPalette_08E997E8:: @ 8E997E8
- .incbin "baserom.gba", 0x00E997E8, 0x20
+ .incbin "graphics/unknown/unknown_E997E8.gbapal"
.align 2
gSpriteImage_8E99808:: @ 8E99808
@@ -4214,35 +4214,35 @@ gSlotMachineReelTimeLights_Gfx:: @ 8E99848
.align 2
gUnknown_08E99FB0:: @ 8E99FB0
- .incbin "baserom.gba", 0xE99FB0, 0x14E @ LZ, uncomp. size = 0x600
+ .incbin "graphics/unknown/unknown_E99FB0.bin.lz"
.align 2
gUnknown_08E9A100:: @ 8E9A100
- .incbin "baserom.gba", 0x00e9a100, 0x200
+ .incbin "graphics/pokenav/bottom_toolbar.bin"
gUnknown_08E9A300:: @ 8E9A300
- .incbin "baserom.gba", 0x00e9a300, 0x800
+ .incbin "graphics/unknown/unknown_E9A300.bin"
gUnknown_08E9AB00:: @ 8E9AB00
- .incbin "baserom.gba", 0x00e9ab00, 0x40
+ .incbin "graphics/unknown/unknown_E9AB00.bin"
gUnknown_08E9AB40:: @ 8E9AB40
- .incbin "baserom.gba", 0x00e9ab40, 0x20
+ .incbin "graphics/unknown/unknown_E9AB40.gbapal"
.align 2
gUnknown_08E9AB60:: @ 8E9AB60
- .incbin "baserom.gba", 0xE9AB60, 0x53 @ LZ, uncomp. size = 0x280
+ .incbin "graphics/unknown/unknown_E9AB60.bin.lz"
.align 2
gUnknown_08E9ABB4:: @ 8E9ABB4
- .incbin "baserom.gba", 0x00e9abb4, 0x78
+ .incbin "graphics/unknown/unknown_E9ABB4.bin"
gUnknown_08E9AC2C:: @ 8E9AC2C
- .incbin "baserom.gba", 0x00e9ac2c, 0x20
+ .incbin "graphics/unknown/unknown_E9AC2C.bin"
.align 2
gUnknown_08E9AC4C:: @ 8E9AC4C
- .incbin "baserom.gba", 0xE9AC4C, 0x18F @ LZ, uncomp. size = 0x500
+ .incbin "graphics/pokenav/condition_screen.bin.lz"
@ text window frames
@@ -4408,7 +4408,7 @@ gTextWindowFrame20_Pal::
.align 2
gUnknown_08E9C6DC:: @ 8E9C6DC
- .incbin "baserom.gba", 0xE9C6DC, 0xBC @ LZ, uncomp. size = 0x500
+ .incbin "graphics/unknown/unknown_E9C6DC.bin.lz"
.align 2
gIntroCopyright_Gfx:: @ 8E9C798
@@ -4460,21 +4460,21 @@ gUnknown_08E9F624:: @ 8E9F624
.align 2
gUnknown_08E9F7E4:: @ 8E9F7E4
- .incbin "baserom.gba", 0xE9F7E4, 0x182 @ LZ, uncomp. size = 0x400
+ .incbin "graphics/unknown/unknown_E9F7E4.bin.lz"
.align 2
gPokenavArrowsPalette::
.incbin "graphics/pokenav/arrows.gbapal"
gUnknown_08E9F988:: @ 8E9F988
- .incbin "baserom.gba", 0xe9f988, 0x20
+ .incbin "graphics/unknown/unknown_E9F988.gbapal"
.align 2
gPokenavArrow_Gfx:: @ 8E9F9A8
.incbin "graphics/pokenav/arrow2.4bpp"
gUnknown_08E9F9E8:: @ 8E9F9E8
- .incbin "baserom.gba", 0x00e9f9e8, 0x20
+ .incbin "graphics/unknown/unknown_E9F9E8.gbapal"
.align 2
gPokenavConditionSearch2_Gfx:: @ 8E9FA08
@@ -4490,29 +4490,29 @@ gPokenavRibbonView_Gfx:: @ 8E9FB1C
.align 2
gUnknown_08E9FBA0:: @ 8E9FBA0
- .incbin "baserom.gba", 0xE9FBA0, 0xC3 @ LZ, uncomp. size = 0x500
+ .incbin "graphics/unknown/unknown_E9FBA0.bin.lz"
.align 2
gUnknown_08E9FC64:: @ 8E9FC64
- .incbin "baserom.gba", 0xE9FC64, 0xB6 @ LZ, uncomp. size = 0x500
+ .incbin "graphics/unknown/unknown_E9FC64.bin.lz"
.align 2
gUnknown_08E9FD1C:: @ 8E9FD1C
- .incbin "baserom.gba", 0x00e9fd1c, 0x48
+ .incbin "graphics/unknown/unknown_E9FD1C.bin"
gUnknown_08E9FD64:: @ 8E9FD64
- .incbin "baserom.gba", 0x00e9fd64, 0xf0
+ .incbin "graphics/unknown/unknown_E9FD64.bin"
gUnknown_08E9FE54:: @ 8E9FE54
- .incbin "baserom.gba", 0x00e9fe54, 0x60
+ .incbin "graphics/unknown/unknown_E9FE54.bin"
.align 2
gUnknown_08E9FEB4:: @ 8E9FEB4
- .incbin "baserom.gba", 0xE9FEB4, 0xA2 @ LZ, uncomp. size = 0x500
+ .incbin "graphics/unknown/unknown_E9FEB4.bin.lz"
.align 2
gUnknown_08E9FF58:: @ 8E9FF58
- .incbin "baserom.gba", 0xE9FF58, 0xCF @ LZ, uncomp. size = 0x640
+ .incbin "graphics/unknown/unknown_E9FF58.bin.lz"
.align 2
gPokenavRibbonPokeView_Gfx:: @ 8EA0028
diff --git a/data/graphics/field_objects/base_oam.inc b/data/graphics/field_objects/base_oam.inc
index 88a8ed058..7a2793374 100644
--- a/data/graphics/field_objects/base_oam.inc
+++ b/data/graphics/field_objects/base_oam.inc
@@ -1,47 +1,47 @@
.align 2
-gFieldOamData_8x8: @ 83711C4
+gFieldOamData_8x8:: @ 83711C4
.4byte OAM_SIZE_8x8
.2byte 2 << 10 @ priority
.align 2
-gFieldOamData_16x8: @ 83711CC
+gFieldOamData_16x8:: @ 83711CC
.4byte OAM_SIZE_16x8
.2byte 2 << 10 @ priority
.align 2
-gFieldOamData_16x16: @ 83711D4
+gFieldOamData_16x16:: @ 83711D4
.4byte OAM_SIZE_16x16
.2byte 2 << 10 @ priority
.align 2
-gFieldOamData_32x8: @ 83711DC
+gFieldOamData_32x8:: @ 83711DC
.4byte OAM_SIZE_32x8
.2byte 2 << 10 @ priority
.align 2
-gFieldOamData_64x32: @ 83711E4
+gFieldOamData_64x32:: @ 83711E4
.4byte OAM_SIZE_64x32
.2byte 2 << 10 @ priority
.align 2
-gFieldOamData_16x32: @ 83711EC
+gFieldOamData_16x32:: @ 83711EC
.4byte OAM_SIZE_16x32
.2byte 2 << 10 @ priority
.align 2
-gFieldOamData_32x32: @ 83711F4
+gFieldOamData_32x32:: @ 83711F4
.4byte OAM_SIZE_32x32
.2byte 2 << 10 @ priority
.align 2
-gFieldOamData_64x64: @ 83711FC
+gFieldOamData_64x64:: @ 83711FC
.4byte OAM_SIZE_64x64
.2byte 2 << 10 @ priority
diff --git a/data/graphics/field_objects/field_effect_object_graphics.inc b/data/graphics/field_objects/field_effect_object_graphics.inc
index 67865c4d0..e3affcf9e 100644
--- a/data/graphics/field_objects/field_effect_object_graphics.inc
+++ b/data/graphics/field_objects/field_effect_object_graphics.inc
@@ -1,139 +1,139 @@
.align 2
-gFieldEffectPic_ShadowSmall: @ 8368528
+gFieldEffectPic_ShadowSmall:: @ 8368528
.incbin "graphics/field_effect_objects/pics/shadow_small.4bpp"
.align 2
-gFieldEffectPic_ShadowMedium: @ 8368548
+gFieldEffectPic_ShadowMedium:: @ 8368548
.incbin "graphics/field_effect_objects/pics/shadow_medium.4bpp"
.align 2
-gFieldEffectPic_ShadowLarge: @ 8368588
+gFieldEffectPic_ShadowLarge:: @ 8368588
.incbin "graphics/field_effect_objects/pics/shadow_large.4bpp"
.align 2
-gFieldEffectPic_ShadowExtraLarge: @ 8368608
+gFieldEffectPic_ShadowExtraLarge:: @ 8368608
.incbin "graphics/field_effect_objects/pics/shadow_extra_large.4bpp"
.align 2
.space 0x120
.align 2
-gFieldEffectPic_CutGrass: @ 8368B28
+gFieldEffectPic_CutGrass:: @ 8368B28
.incbin "graphics/field_effect_objects/pics/cut_grass.4bpp"
.incbin "graphics/field_effect_objects/pics/cut_grass.4bpp" @ included twice
.align 2
-gFieldEffectObjectPalette6: @ 8368B68
+gFieldEffectObjectPalette6:: @ 8368B68
.incbin "graphics/field_effect_objects/palettes/06.gbapal"
.align 2
-gFieldEffectPic_Ripple_0: @ 8368B88
+gFieldEffectPic_Ripple_0:: @ 8368B88
.incbin "graphics/field_effect_objects/pics/ripple/0.4bpp"
.align 2
-gFieldEffectPic_Ripple_1: @ 8368C08
+gFieldEffectPic_Ripple_1:: @ 8368C08
.incbin "graphics/field_effect_objects/pics/ripple/1.4bpp"
.align 2
-gFieldEffectPic_Ripple_2: @ 8368C88
+gFieldEffectPic_Ripple_2:: @ 8368C88
.incbin "graphics/field_effect_objects/pics/ripple/2.4bpp"
.align 2
-gFieldEffectPic_Ripple_3: @ 8368D08
+gFieldEffectPic_Ripple_3:: @ 8368D08
.incbin "graphics/field_effect_objects/pics/ripple/3.4bpp"
.align 2
-gFieldEffectPic_Ripple_4: @ 8368D88
+gFieldEffectPic_Ripple_4:: @ 8368D88
.incbin "graphics/field_effect_objects/pics/ripple/4.4bpp"
.align 2
-gFieldEffectPic_Ash_0: @ 8368E08
+gFieldEffectPic_Ash_0:: @ 8368E08
.incbin "graphics/field_effect_objects/pics/ash/0.4bpp"
.align 2
-gFieldEffectPic_Ash_1: @ 8368E88
+gFieldEffectPic_Ash_1:: @ 8368E88
.incbin "graphics/field_effect_objects/pics/ash/1.4bpp"
.align 2
-gFieldEffectPic_Ash_2: @ 8368F08
+gFieldEffectPic_Ash_2:: @ 8368F08
.incbin "graphics/field_effect_objects/pics/ash/2.4bpp"
.align 2
-gFieldEffectPic_Ash_3: @ 8368F88
+gFieldEffectPic_Ash_3:: @ 8368F88
.incbin "graphics/field_effect_objects/pics/ash/3.4bpp"
.align 2
-gFieldEffectPic_Ash_4: @ 8369008
+gFieldEffectPic_Ash_4:: @ 8369008
.incbin "graphics/field_effect_objects/pics/ash/4.4bpp"
.align 2
-gFieldEffectPic_Arrow_0: @ 8369088
+gFieldEffectPic_Arrow_0:: @ 8369088
.incbin "graphics/field_effect_objects/pics/arrow/0.4bpp"
.align 2
-gFieldEffectPic_Arrow_1: @ 8369108
+gFieldEffectPic_Arrow_1:: @ 8369108
.incbin "graphics/field_effect_objects/pics/arrow/1.4bpp"
.align 2
-gFieldEffectPic_Arrow_2: @ 8369188
+gFieldEffectPic_Arrow_2:: @ 8369188
.incbin "graphics/field_effect_objects/pics/arrow/2.4bpp"
.align 2
-gFieldEffectPic_Arrow_3: @ 8369208
+gFieldEffectPic_Arrow_3:: @ 8369208
.incbin "graphics/field_effect_objects/pics/arrow/3.4bpp"
.align 2
-gFieldEffectPic_Arrow_4: @ 8369288
+gFieldEffectPic_Arrow_4:: @ 8369288
.incbin "graphics/field_effect_objects/pics/arrow/4.4bpp"
.align 2
-gFieldEffectPic_Arrow_5: @ 8369308
+gFieldEffectPic_Arrow_5:: @ 8369308
.incbin "graphics/field_effect_objects/pics/arrow/5.4bpp"
.align 2
-gFieldEffectPic_Arrow_6: @ 8369388
+gFieldEffectPic_Arrow_6:: @ 8369388
.incbin "graphics/field_effect_objects/pics/arrow/6.4bpp"
.align 2
-gFieldEffectPic_Arrow_7: @ 8369408
+gFieldEffectPic_Arrow_7:: @ 8369408
.incbin "graphics/field_effect_objects/pics/arrow/7.4bpp"
.align 2
-gFieldEffectObjectPalette0: @ 8369488
+gFieldEffectObjectPalette0:: @ 8369488
.incbin "graphics/field_effect_objects/palettes/00.gbapal"
.align 2
-gFieldEffectObjectPalette1: @ 83694A8
+gFieldEffectObjectPalette1:: @ 83694A8
.incbin "graphics/field_effect_objects/palettes/01.gbapal"
.align 2
-gFieldEffectPic_Dust_0: @ 83694C8
+gFieldEffectPic_Dust_0:: @ 83694C8
.incbin "graphics/field_effect_objects/pics/dust/0.4bpp"
.align 2
-gFieldEffectPic_Dust_1: @ 8369508
+gFieldEffectPic_Dust_1:: @ 8369508
.incbin "graphics/field_effect_objects/pics/dust/1.4bpp"
.align 2
-gFieldEffectPic_Dust_2: @ 8369548
+gFieldEffectPic_Dust_2:: @ 8369548
.incbin "graphics/field_effect_objects/pics/dust/2.4bpp"
.incbin "graphics/field_effect_objects/unknown.bin"
.align 2
-gFieldEffectPic_JumpTallGrass_0: @ 8369648
+gFieldEffectPic_JumpTallGrass_0:: @ 8369648
.incbin "graphics/field_effect_objects/pics/jump_tall_grass/0.4bpp"
.align 2
-gFieldEffectPic_JumpTallGrass_1: @ 8369688
+gFieldEffectPic_JumpTallGrass_1:: @ 8369688
.incbin "graphics/field_effect_objects/pics/jump_tall_grass/1.4bpp"
.align 2
-gFieldEffectPic_JumpTallGrass_2: @ 83696C8
+gFieldEffectPic_JumpTallGrass_2:: @ 83696C8
.incbin "graphics/field_effect_objects/pics/jump_tall_grass/2.4bpp"
.align 2
-gFieldEffectPic_JumpTallGrass_3: @ 8369708
+gFieldEffectPic_JumpTallGrass_3:: @ 8369708
.incbin "graphics/field_effect_objects/pics/jump_tall_grass/3.4bpp"
.incbin "graphics/field_effect_objects/pics/unused_grass/0.4bpp"
@@ -142,415 +142,415 @@ gFieldEffectPic_JumpTallGrass_3: @ 8369708
.incbin "graphics/field_effect_objects/pics/unused_grass/3.4bpp"
.align 2
-gFieldEffectPic_JumpLongGrass_0: @ 8369948
+gFieldEffectPic_JumpLongGrass_0:: @ 8369948
.incbin "graphics/field_effect_objects/pics/jump_long_grass/0.4bpp"
.align 2
-gFieldEffectPic_JumpLongGrass_1: @ 83699C8
+gFieldEffectPic_JumpLongGrass_1:: @ 83699C8
.incbin "graphics/field_effect_objects/pics/jump_long_grass/1.4bpp"
.align 2
-gFieldEffectPic_JumpLongGrass_2: @ 8369A48
+gFieldEffectPic_JumpLongGrass_2:: @ 8369A48
.incbin "graphics/field_effect_objects/pics/jump_long_grass/2.4bpp"
.align 2
-gFieldEffectPic_JumpLongGrass_3: @ 8369AC8
+gFieldEffectPic_JumpLongGrass_3:: @ 8369AC8
.incbin "graphics/field_effect_objects/pics/jump_long_grass/3.4bpp"
.align 2
-gFieldEffectPic_JumpLongGrass_4: @ 8369B48
+gFieldEffectPic_JumpLongGrass_4:: @ 8369B48
.incbin "graphics/field_effect_objects/pics/jump_long_grass/4.4bpp"
.incbin "graphics/field_effect_objects/pics/jump_long_grass/unused.4bpp"
.align 2
-gFieldEffectPic_JumpLongGrass_5: @ 8369C48
+gFieldEffectPic_JumpLongGrass_5:: @ 8369C48
.incbin "graphics/field_effect_objects/pics/jump_long_grass/5.4bpp"
.align 2
-gFieldEffectPic_Unknown17_0: @ 8369CC8
+gFieldEffectPic_Unknown17_0:: @ 8369CC8
.incbin "graphics/field_effect_objects/pics/unknown_17/0.4bpp"
.align 2
-gFieldEffectPic_Unknown17_1: @ 8369D48
+gFieldEffectPic_Unknown17_1:: @ 8369D48
.incbin "graphics/field_effect_objects/pics/unknown_17/1.4bpp"
.align 2
-gFieldEffectPic_Unknown17_2: @ 8369DC8
+gFieldEffectPic_Unknown17_2:: @ 8369DC8
.incbin "graphics/field_effect_objects/pics/unknown_17/2.4bpp"
.align 2
-gFieldEffectPic_Unknown17_3: @ 8369E48
+gFieldEffectPic_Unknown17_3:: @ 8369E48
.incbin "graphics/field_effect_objects/pics/unknown_17/3.4bpp"
.align 2
-gFieldEffectPic_Unknown17_4: @ 8369EC8
+gFieldEffectPic_Unknown17_4:: @ 8369EC8
.incbin "graphics/field_effect_objects/pics/unknown_17/4.4bpp"
.align 2
-gFieldEffectPic_Unknown17_5: @ 8369F48
+gFieldEffectPic_Unknown17_5:: @ 8369F48
.incbin "graphics/field_effect_objects/pics/unknown_17/5.4bpp"
.align 2
-gFieldEffectPic_Unknown17_6: @ 8369FC8
+gFieldEffectPic_Unknown17_6:: @ 8369FC8
.incbin "graphics/field_effect_objects/pics/unknown_17/6.4bpp"
.align 2
-gFieldEffectPic_Unknown17_7: @ 836A048
+gFieldEffectPic_Unknown17_7:: @ 836A048
.incbin "graphics/field_effect_objects/pics/unknown_17/7.4bpp"
.align 2
-gFieldEffectPic_Unknown18_0: @ 836A0C8
+gFieldEffectPic_Unknown18_0:: @ 836A0C8
.incbin "graphics/field_effect_objects/pics/unknown_18/0.4bpp"
.align 2
-gFieldEffectPic_Unknown18_1: @ 836A148
+gFieldEffectPic_Unknown18_1:: @ 836A148
.incbin "graphics/field_effect_objects/pics/unknown_18/1.4bpp"
.align 2
-gFieldEffectPic_Unknown18_2: @ 836A1C8
+gFieldEffectPic_Unknown18_2:: @ 836A1C8
.incbin "graphics/field_effect_objects/pics/unknown_18/2.4bpp"
.align 2
-gFieldEffectPic_Unknown18_3: @ 836A248
+gFieldEffectPic_Unknown18_3:: @ 836A248
.incbin "graphics/field_effect_objects/pics/unknown_18/3.4bpp"
.align 2
-gFieldEffectPic_LongGrass_0: @ 836A2C8
+gFieldEffectPic_LongGrass_0:: @ 836A2C8
.incbin "graphics/field_effect_objects/pics/long_grass/0.4bpp"
.align 2
-gFieldEffectPic_LongGrass_1: @ 836A348
+gFieldEffectPic_LongGrass_1:: @ 836A348
.incbin "graphics/field_effect_objects/pics/long_grass/1.4bpp"
.align 2
-gFieldEffectPic_LongGrass_2: @ 836A3C8
+gFieldEffectPic_LongGrass_2:: @ 836A3C8
.incbin "graphics/field_effect_objects/pics/long_grass/2.4bpp"
.align 2
-gFieldEffectPic_LongGrass_3: @ 836A448
+gFieldEffectPic_LongGrass_3:: @ 836A448
.incbin "graphics/field_effect_objects/pics/long_grass/3.4bpp"
.align 2
-gFieldEffectPic_TallGrass_0: @ 836A4C8
+gFieldEffectPic_TallGrass_0:: @ 836A4C8
.incbin "graphics/field_effect_objects/pics/tall_grass/0.4bpp"
.align 2
-gFieldEffectPic_TallGrass_1: @ 836A548
+gFieldEffectPic_TallGrass_1:: @ 836A548
.incbin "graphics/field_effect_objects/pics/tall_grass/1.4bpp"
.align 2
-gFieldEffectPic_TallGrass_2: @ 836A5C8
+gFieldEffectPic_TallGrass_2:: @ 836A5C8
.incbin "graphics/field_effect_objects/pics/tall_grass/2.4bpp"
.align 2
-gFieldEffectPic_TallGrass_3: @ 836A648
+gFieldEffectPic_TallGrass_3:: @ 836A648
.incbin "graphics/field_effect_objects/pics/tall_grass/3.4bpp"
.align 2
-gFieldEffectPic_TallGrass_4: @ 836A6C8
+gFieldEffectPic_TallGrass_4:: @ 836A6C8
.incbin "graphics/field_effect_objects/pics/tall_grass/4.4bpp"
.align 2
-gFieldEffectPic_ShortGrass_0: @ 836A748
+gFieldEffectPic_ShortGrass_0:: @ 836A748
.incbin "graphics/field_effect_objects/pics/short_grass/0.4bpp"
.align 2
-gFieldEffectPic_ShortGrass_1: @ 836A7C8
+gFieldEffectPic_ShortGrass_1:: @ 836A7C8
.incbin "graphics/field_effect_objects/pics/short_grass/1.4bpp"
.align 2
-gFieldEffectPic_SandFootprints_0: @ 836A848
+gFieldEffectPic_SandFootprints_0:: @ 836A848
.incbin "graphics/field_effect_objects/pics/sand_footprints/0.4bpp"
.align 2
-gFieldEffectPic_SandFootprints_1: @ 836A8C8
+gFieldEffectPic_SandFootprints_1:: @ 836A8C8
.incbin "graphics/field_effect_objects/pics/sand_footprints/1.4bpp"
.align 2
-gFieldEffectPic_DeepSandFootprints_0: @ 836A948
+gFieldEffectPic_DeepSandFootprints_0:: @ 836A948
.incbin "graphics/field_effect_objects/pics/deep_sand_footprints/0.4bpp"
.align 2
-gFieldEffectPic_DeepSandFootprints_1: @ 836A9C8
+gFieldEffectPic_DeepSandFootprints_1:: @ 836A9C8
.incbin "graphics/field_effect_objects/pics/deep_sand_footprints/1.4bpp"
.align 2
-gFieldEffectPic_BikeTireTracks_0: @ 836AA48
+gFieldEffectPic_BikeTireTracks_0:: @ 836AA48
.incbin "graphics/field_effect_objects/pics/bike_tire_tracks/0.4bpp"
.align 2
-gFieldEffectPic_BikeTireTracks_1: @ 836AAC8
+gFieldEffectPic_BikeTireTracks_1:: @ 836AAC8
.incbin "graphics/field_effect_objects/pics/bike_tire_tracks/1.4bpp"
.align 2
-gFieldEffectPic_BikeTireTracks_2: @ 836AB48
+gFieldEffectPic_BikeTireTracks_2:: @ 836AB48
.incbin "graphics/field_effect_objects/pics/bike_tire_tracks/2.4bpp"
.align 2
-gFieldEffectPic_BikeTireTracks_3: @ 836ABC8
+gFieldEffectPic_BikeTireTracks_3:: @ 836ABC8
.incbin "graphics/field_effect_objects/pics/bike_tire_tracks/3.4bpp"
.align 2
-gFieldEffectPic_Unknown19_0: @ 836AC48
+gFieldEffectPic_Unknown19_0:: @ 836AC48
.incbin "graphics/field_effect_objects/pics/unknown_19/0.4bpp"
.align 2
-gFieldEffectPic_Unknown19_1: @ 836ACC8
+gFieldEffectPic_Unknown19_1:: @ 836ACC8
.incbin "graphics/field_effect_objects/pics/unknown_19/1.4bpp"
.align 2
-gFieldEffectPic_Unknown19_2: @ 836AD48
+gFieldEffectPic_Unknown19_2:: @ 836AD48
.incbin "graphics/field_effect_objects/pics/unknown_19/2.4bpp"
.align 2
-gFieldEffectPic_Unknown19_3: @ 836ADC8
+gFieldEffectPic_Unknown19_3:: @ 836ADC8
.incbin "graphics/field_effect_objects/pics/unknown_19/3.4bpp"
.align 2
-gFieldEffectPic_SandPile_0: @ 836AE48
+gFieldEffectPic_SandPile_0:: @ 836AE48
.incbin "graphics/field_effect_objects/pics/sand_pile/0.4bpp"
.align 2
-gFieldEffectPic_SandPile_1: @ 836AE88
+gFieldEffectPic_SandPile_1:: @ 836AE88
.incbin "graphics/field_effect_objects/pics/sand_pile/1.4bpp"
.align 2
-gFieldEffectPic_SandPile_2: @ 836AEC8
+gFieldEffectPic_SandPile_2:: @ 836AEC8
.incbin "graphics/field_effect_objects/pics/sand_pile/2.4bpp"
.align 2
-gFieldEffectPic_JumpBigSplash_0: @ 836AF08
+gFieldEffectPic_JumpBigSplash_0:: @ 836AF08
.incbin "graphics/field_effect_objects/pics/jump_big_splash/0.4bpp"
.align 2
-gFieldEffectPic_JumpBigSplash_1: @ 836AF88
+gFieldEffectPic_JumpBigSplash_1:: @ 836AF88
.incbin "graphics/field_effect_objects/pics/jump_big_splash/1.4bpp"
.align 2
-gFieldEffectPic_JumpBigSplash_2: @ 836B008
+gFieldEffectPic_JumpBigSplash_2:: @ 836B008
.incbin "graphics/field_effect_objects/pics/jump_big_splash/2.4bpp"
.align 2
-gFieldEffectPic_JumpBigSplash_3: @ 836B088
+gFieldEffectPic_JumpBigSplash_3:: @ 836B088
.incbin "graphics/field_effect_objects/pics/jump_big_splash/3.4bpp"
.align 2
-gFieldEffectPic_Splash_0: @ 836B108
+gFieldEffectPic_Splash_0:: @ 836B108
.incbin "graphics/field_effect_objects/pics/splash/0.4bpp"
.align 2
-gFieldEffectPic_Splash_1: @ 836B148
+gFieldEffectPic_Splash_1:: @ 836B148
.incbin "graphics/field_effect_objects/pics/splash/1.4bpp"
.align 2
-gFieldEffectPic_JumpSmallSplash_0: @ 836B188
+gFieldEffectPic_JumpSmallSplash_0:: @ 836B188
.incbin "graphics/field_effect_objects/pics/jump_small_splash/0.4bpp"
.align 2
-gFieldEffectPic_JumpSmallSplash_1: @ 836B1C8
+gFieldEffectPic_JumpSmallSplash_1:: @ 836B1C8
.incbin "graphics/field_effect_objects/pics/jump_small_splash/1.4bpp"
.align 2
-gFieldEffectPic_JumpSmallSplash_2: @ 836B208
+gFieldEffectPic_JumpSmallSplash_2:: @ 836B208
.incbin "graphics/field_effect_objects/pics/jump_small_splash/2.4bpp"
.align 2
-gFieldEffectPic_Unknown20_0: @ 836B248
+gFieldEffectPic_Unknown20_0:: @ 836B248
.incbin "graphics/field_effect_objects/pics/unknown_20/0.4bpp"
.align 2
-gFieldEffectPic_Unknown20_1: @ 836B2C8
+gFieldEffectPic_Unknown20_1:: @ 836B2C8
.incbin "graphics/field_effect_objects/pics/unknown_20/1.4bpp"
.align 2
-gFieldEffectPic_Unknown20_2: @ 836B348
+gFieldEffectPic_Unknown20_2:: @ 836B348
.incbin "graphics/field_effect_objects/pics/unknown_20/2.4bpp"
.align 2
-gFieldEffectPic_Unknown20_3: @ 836B3C8
+gFieldEffectPic_Unknown20_3:: @ 836B3C8
.incbin "graphics/field_effect_objects/pics/unknown_20/3.4bpp"
.align 2
-gFieldEffectPic_Unknown20_4: @ 836B448
+gFieldEffectPic_Unknown20_4:: @ 836B448
.incbin "graphics/field_effect_objects/pics/unknown_20/4.4bpp"
.align 2
-gFieldEffectPic_TreeDisguise_0: @ 836B4C8
+gFieldEffectPic_TreeDisguise_0:: @ 836B4C8
.incbin "graphics/field_effect_objects/pics/tree_disguise/0.4bpp"
.align 2
-gFieldEffectPic_TreeDisguise_1: @ 836B5C8
+gFieldEffectPic_TreeDisguise_1:: @ 836B5C8
.incbin "graphics/field_effect_objects/pics/tree_disguise/1.4bpp"
.align 2
-gFieldEffectPic_TreeDisguise_2: @ 836B6C8
+gFieldEffectPic_TreeDisguise_2:: @ 836B6C8
.incbin "graphics/field_effect_objects/pics/tree_disguise/2.4bpp"
.align 2
-gFieldEffectPic_TreeDisguise_3: @ 836B7C8
+gFieldEffectPic_TreeDisguise_3:: @ 836B7C8
.incbin "graphics/field_effect_objects/pics/tree_disguise/3.4bpp"
.align 2
-gFieldEffectPic_TreeDisguise_4: @ 836B8C8
+gFieldEffectPic_TreeDisguise_4:: @ 836B8C8
.incbin "graphics/field_effect_objects/pics/tree_disguise/4.4bpp"
.align 2
-gFieldEffectPic_TreeDisguise_5: @ 836B9C8
+gFieldEffectPic_TreeDisguise_5:: @ 836B9C8
.incbin "graphics/field_effect_objects/pics/tree_disguise/5.4bpp"
.align 2
-gFieldEffectPic_TreeDisguise_6: @ 836BAC8
+gFieldEffectPic_TreeDisguise_6:: @ 836BAC8
.incbin "graphics/field_effect_objects/pics/tree_disguise/6.4bpp"
.align 2
-gFieldEffectPic_MountainDisguise_0: @ 836BBC8
+gFieldEffectPic_MountainDisguise_0:: @ 836BBC8
.incbin "graphics/field_effect_objects/pics/mountain_disguise/0.4bpp"
.align 2
-gFieldEffectPic_MountainDisguise_1: @ 836BCC8
+gFieldEffectPic_MountainDisguise_1:: @ 836BCC8
.incbin "graphics/field_effect_objects/pics/mountain_disguise/1.4bpp"
.align 2
-gFieldEffectPic_MountainDisguise_2: @ 836BDC8
+gFieldEffectPic_MountainDisguise_2:: @ 836BDC8
.incbin "graphics/field_effect_objects/pics/mountain_disguise/2.4bpp"
.align 2
-gFieldEffectPic_MountainDisguise_3: @ 836BEC8
+gFieldEffectPic_MountainDisguise_3:: @ 836BEC8
.incbin "graphics/field_effect_objects/pics/mountain_disguise/3.4bpp"
.align 2
-gFieldEffectPic_MountainDisguise_4: @ 836BFC8
+gFieldEffectPic_MountainDisguise_4:: @ 836BFC8
.incbin "graphics/field_effect_objects/pics/mountain_disguise/4.4bpp"
.align 2
-gFieldEffectPic_MountainDisguise_5: @ 836C0C8
+gFieldEffectPic_MountainDisguise_5:: @ 836C0C8
.incbin "graphics/field_effect_objects/pics/mountain_disguise/5.4bpp"
.align 2
-gFieldEffectPic_MountainDisguise_6: @ 836C1C8
+gFieldEffectPic_MountainDisguise_6:: @ 836C1C8
.incbin "graphics/field_effect_objects/pics/mountain_disguise/6.4bpp"
.align 2
-gFieldEffectPic_SandDisguise_0: @ 836C2C8
+gFieldEffectPic_SandDisguise_0:: @ 836C2C8
.incbin "graphics/field_effect_objects/pics/sand_disguise/0.4bpp"
.align 2
-gFieldEffectPic_SandDisguise_1: @ 836C3C8
+gFieldEffectPic_SandDisguise_1:: @ 836C3C8
.incbin "graphics/field_effect_objects/pics/sand_disguise/1.4bpp"
.align 2
-gFieldEffectPic_SandDisguise_2: @ 836C4C8
+gFieldEffectPic_SandDisguise_2:: @ 836C4C8
.incbin "graphics/field_effect_objects/pics/sand_disguise/2.4bpp"
.align 2
-gFieldEffectPic_SandDisguise_3: @ 836C5C8
+gFieldEffectPic_SandDisguise_3:: @ 836C5C8
.incbin "graphics/field_effect_objects/pics/sand_disguise/3.4bpp"
.align 2
-gFieldEffectPic_SandDisguise_4: @ 836C6C8
+gFieldEffectPic_SandDisguise_4:: @ 836C6C8
.incbin "graphics/field_effect_objects/pics/sand_disguise/4.4bpp"
.align 2
-gFieldEffectPic_SandDisguise_5: @ 836C7C8
+gFieldEffectPic_SandDisguise_5:: @ 836C7C8
.incbin "graphics/field_effect_objects/pics/sand_disguise/5.4bpp"
.align 2
-gFieldEffectPic_SandDisguise_6: @ 836C8C8
+gFieldEffectPic_SandDisguise_6:: @ 836C8C8
.incbin "graphics/field_effect_objects/pics/sand_disguise/6.4bpp"
.align 2
-gFieldEffectPic_HotSpringsWater: @ 836C9C8
+gFieldEffectPic_HotSpringsWater:: @ 836C9C8
.incbin "graphics/field_effect_objects/pics/hot_springs_water.4bpp"
.align 2
-gFieldEffectObjectPalette2: @ 836CA48
+gFieldEffectObjectPalette2:: @ 836CA48
.incbin "graphics/field_effect_objects/palettes/02.gbapal"
.align 2
-gFieldEffectPic_PopOutOfAsh_0: @ 836CA68
+gFieldEffectPic_PopOutOfAsh_0:: @ 836CA68
.incbin "graphics/field_effect_objects/pics/pop_out_of_ash/0.4bpp"
.align 2
-gFieldEffectPic_PopOutOfAsh_1: @ 836CAE8
+gFieldEffectPic_PopOutOfAsh_1:: @ 836CAE8
.incbin "graphics/field_effect_objects/pics/pop_out_of_ash/1.4bpp"
.align 2
-gFieldEffectPic_PopOutOfAsh_2: @ 836CB68
+gFieldEffectPic_PopOutOfAsh_2:: @ 836CB68
.incbin "graphics/field_effect_objects/pics/pop_out_of_ash/2.4bpp"
.align 2
-gFieldEffectPic_PopOutOfAsh_3: @ 836CBE8
+gFieldEffectPic_PopOutOfAsh_3:: @ 836CBE8
.incbin "graphics/field_effect_objects/pics/pop_out_of_ash/3.4bpp"
.align 2
-gFieldEffectPic_PopOutOfAsh_4: @ 836CC68
+gFieldEffectPic_PopOutOfAsh_4:: @ 836CC68
.incbin "graphics/field_effect_objects/pics/pop_out_of_ash/4.4bpp"
.align 2
-gFieldEffectPic_LavaridgeGymWarp_0: @ 836CCE8
+gFieldEffectPic_LavaridgeGymWarp_0:: @ 836CCE8
.incbin "graphics/field_effect_objects/pics/lavaridge_gym_warp/0.4bpp"
.align 2
-gFieldEffectPic_LavaridgeGymWarp_1: @ 836CD68
+gFieldEffectPic_LavaridgeGymWarp_1:: @ 836CD68
.incbin "graphics/field_effect_objects/pics/lavaridge_gym_warp/1.4bpp"
.align 2
-gFieldEffectPic_LavaridgeGymWarp_2: @ 836CDE8
+gFieldEffectPic_LavaridgeGymWarp_2:: @ 836CDE8
.incbin "graphics/field_effect_objects/pics/lavaridge_gym_warp/2.4bpp"
.align 2
-gFieldEffectPic_LavaridgeGymWarp_3: @ 836CE68
+gFieldEffectPic_LavaridgeGymWarp_3:: @ 836CE68
.incbin "graphics/field_effect_objects/pics/lavaridge_gym_warp/3.4bpp"
.align 2
-gFieldEffectPic_LavaridgeGymWarp_4: @ 836CEE8
+gFieldEffectPic_LavaridgeGymWarp_4:: @ 836CEE8
.incbin "graphics/field_effect_objects/pics/lavaridge_gym_warp/4.4bpp"
.align 2
-gFieldEffectPic_Bubbles_0: @ 836CF68
+gFieldEffectPic_Bubbles_0:: @ 836CF68
.incbin "graphics/field_effect_objects/pics/bubbles/0.4bpp"
.align 2
-gFieldEffectPic_Bubbles_1: @ 836D068
+gFieldEffectPic_Bubbles_1:: @ 836D068
.incbin "graphics/field_effect_objects/pics/bubbles/1.4bpp"
.align 2
-gFieldEffectPic_Bubbles_2: @ 836D168
+gFieldEffectPic_Bubbles_2:: @ 836D168
.incbin "graphics/field_effect_objects/pics/bubbles/2.4bpp"
.align 2
-gFieldEffectPic_Bubbles_3: @ 836D268
+gFieldEffectPic_Bubbles_3:: @ 836D268
.incbin "graphics/field_effect_objects/pics/bubbles/3.4bpp"
.align 2
-gFieldEffectPic_Bubbles_4: @ 836D368
+gFieldEffectPic_Bubbles_4:: @ 836D368
.incbin "graphics/field_effect_objects/pics/bubbles/4.4bpp"
.align 2
-gFieldEffectPic_Bubbles_5: @ 836D468
+gFieldEffectPic_Bubbles_5:: @ 836D468
.incbin "graphics/field_effect_objects/pics/bubbles/5.4bpp"
.align 2
-gFieldEffectPic_Bubbles_6: @ 836D568
+gFieldEffectPic_Bubbles_6:: @ 836D568
.incbin "graphics/field_effect_objects/pics/bubbles/6.4bpp"
.align 2
-gFieldEffectPic_Bubbles_7: @ 836D668
+gFieldEffectPic_Bubbles_7:: @ 836D668
.incbin "graphics/field_effect_objects/pics/bubbles/7.4bpp"
.align 2
-gFieldEffectPic_Sparkle_0: @ 836D768
+gFieldEffectPic_Sparkle_0:: @ 836D768
.incbin "graphics/field_effect_objects/pics/sparkle/0.4bpp"
.align 2
-gFieldEffectPic_Sparkle_1: @ 836D7E8
+gFieldEffectPic_Sparkle_1:: @ 836D7E8
.incbin "graphics/field_effect_objects/pics/sparkle/1.4bpp"
.align 2
-gFieldEffectObjectPalette3: @ 836D868
+gFieldEffectObjectPalette3:: @ 836D868
.incbin "graphics/field_effect_objects/palettes/03.gbapal"
.align 2
-gFieldEffectPic_Bird: @ 836D888
+gFieldEffectPic_Bird:: @ 836D888
.incbin "graphics/field_effect_objects/pics/bird.4bpp"
diff --git a/data/hall_of_fame.s b/data/hall_of_fame.s
new file mode 100644
index 000000000..faf9c4fef
--- /dev/null
+++ b/data/hall_of_fame.s
@@ -0,0 +1,221 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+ .align 2
+gUnknown_0840B514:: @ 840B514
+ obj_tiles gContestConfetti_Gfx, 0x220, 1001
+ .space 8
+
+gUnknown_0840B524:: @ 840B524
+ obj_pal gContestConfetti_Pal, 1001
+ .space 8
+
+gUnknown_0840B534:: @ 840B534
+ .incbin "baserom.gba", 0x0040b534, 0x6
+
+gUnknown_0840B53A:: @ 840B53A
+ .incbin "baserom.gba", 0x0040b53a, 0x2a
+
+gUnknown_0840B564:: @ 840B564
+ .incbin "baserom.gba", 0x0040b564, 0x6
+
+gUnknown_0840B56A:: @ 840B56A
+ .incbin "baserom.gba", 0x0040b56a, 0x12
+
+gUnknown_0840B57C:: @ 840B57C
+ .incbin "baserom.gba", 0x0040b57c, 0x1c
+
+ .align 2
+gOamData_840B598:: @ 840B598
+ .2byte 0x0000
+ .2byte 0xC000
+ .2byte 0x0000
+
+ .align 2
+gUnknown_0840B5A0:: @ 840B5A0
+ .4byte 0x02008000
+ .4byte 0x0200A000
+ .4byte 0x0200C000
+ .4byte 0x0200E000
+ .4byte 0x02010000
+ .4byte 0x02014000
+ .4byte 0x02018000
+
+ .align 2
+gSpriteImageTable_840B5BC:: @ 840B5BC
+ obj_frame_tiles 0x02008000, 0x800
+ obj_frame_tiles 0x02008800, 0x800
+ obj_frame_tiles 0x02009000, 0x800
+ obj_frame_tiles 0x02009800, 0x800
+
+ .align 2
+gSpriteImageTable_840B5DC:: @ 840B5DC
+ obj_frame_tiles 0x0200A000, 0x800
+ obj_frame_tiles 0x0200A800, 0x800
+ obj_frame_tiles 0x0200B000, 0x800
+ obj_frame_tiles 0x0200B800, 0x800
+
+ .align 2
+gSpriteImageTable_840B5FC:: @ 840B5FC
+ obj_frame_tiles 0x0200C000, 0x800
+ obj_frame_tiles 0x0200C800, 0x800
+ obj_frame_tiles 0x0200D000, 0x800
+ obj_frame_tiles 0x0200D800, 0x800
+
+ .align 2
+gSpriteImageTable_840B61C:: @ 840B61C
+ obj_frame_tiles 0x0200E000, 0x800
+ obj_frame_tiles 0x0200E800, 0x800
+ obj_frame_tiles 0x0200F000, 0x800
+ obj_frame_tiles 0x0200F800, 0x800
+
+ .align 2
+gSpriteImageTable_840B63C:: @ 840B63C
+ obj_frame_tiles 0x02010000, 0x800
+ obj_frame_tiles 0x02010800, 0x800
+ obj_frame_tiles 0x02011000, 0x800
+ obj_frame_tiles 0x02011800, 0x800
+
+ .align 2
+gSpriteImageTable_840B65C:: @ 840B65C
+ obj_frame_tiles 0x02014000, 0x800
+ obj_frame_tiles 0x02014800, 0x800
+ obj_frame_tiles 0x02015000, 0x800
+ obj_frame_tiles 0x02015800, 0x800
+
+ .align 2
+gSpriteImageTable_840B67C:: @ 840B67C
+ obj_frame_tiles 0x02018000, 0x800
+ obj_frame_tiles 0x02018800, 0x800
+ obj_frame_tiles 0x02019000, 0x800
+ obj_frame_tiles 0x02019800, 0x800
+
+ .align 2
+gUnknown_0840B69C:: @ 840B69C
+ .4byte gSpriteImageTable_840B5BC
+ .4byte gSpriteImageTable_840B5DC
+ .4byte gSpriteImageTable_840B5FC
+ .4byte gSpriteImageTable_840B61C
+ .4byte gSpriteImageTable_840B63C
+ .4byte gSpriteImageTable_840B65C
+ .4byte gSpriteImageTable_840B67C
+
+gUnknown_0840B6B8:: @ 840B6B8
+ spr_template -1, -1, gOamData_840B598, NULL, gSpriteImageTable_840B5BC, gDummySpriteAffineAnimTable, nullsub_81
+
+ .align 2
+gOamData_840B6D0:: @ 840B6D0
+ .2byte 0x0000
+ .2byte 0x0000
+ .2byte 0x0000
+
+ .align 2
+gSpriteAnim_840B6D8:: @ 840B6D8
+ obj_image_anim_frame 0, 30
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_840B6E0:: @ 840B6E0
+ obj_image_anim_frame 1, 30
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_840B6E8:: @ 840B6E8
+ obj_image_anim_frame 2, 30
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_840B6F0:: @ 840B6F0
+ obj_image_anim_frame 3, 30
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_840B6F8:: @ 840B6F8
+ obj_image_anim_frame 4, 30
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_840B700:: @ 840B700
+ obj_image_anim_frame 5, 30
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_840B708:: @ 840B708
+ obj_image_anim_frame 6, 30
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_840B710:: @ 840B710
+ obj_image_anim_frame 7, 30
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_840B718:: @ 840B718
+ obj_image_anim_frame 8, 30
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_840B720:: @ 840B720
+ obj_image_anim_frame 9, 30
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_840B728:: @ 840B728
+ obj_image_anim_frame 10, 30
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_840B730:: @ 840B730
+ obj_image_anim_frame 11, 30
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_840B738:: @ 840B738
+ obj_image_anim_frame 12, 30
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_840B740:: @ 840B740
+ obj_image_anim_frame 13, 30
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_840B748:: @ 840B748
+ obj_image_anim_frame 14, 30
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_840B750:: @ 840B750
+ obj_image_anim_frame 15, 30
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_840B758:: @ 840B758
+ obj_image_anim_frame 16, 30
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_840B760:: @ 840B760
+ .4byte gSpriteAnim_840B6D8
+ .4byte gSpriteAnim_840B6E0
+ .4byte gSpriteAnim_840B6E8
+ .4byte gSpriteAnim_840B6F0
+ .4byte gSpriteAnim_840B6F8
+ .4byte gSpriteAnim_840B700
+ .4byte gSpriteAnim_840B708
+ .4byte gSpriteAnim_840B710
+ .4byte gSpriteAnim_840B718
+ .4byte gSpriteAnim_840B720
+ .4byte gSpriteAnim_840B728
+ .4byte gSpriteAnim_840B730
+ .4byte gSpriteAnim_840B738
+ .4byte gSpriteAnim_840B740
+ .4byte gSpriteAnim_840B748
+ .4byte gSpriteAnim_840B750
+ .4byte gSpriteAnim_840B758
+
+ .align 2
+gSpriteTemplate_840B7A4:: @ 840B7A4
+ spr_template 1001, 1001, gOamData_840B6D0, gSpriteAnimTable_840B760, NULL, gDummySpriteAffineAnimTable, sub_814386C
diff --git a/data/heal_location.s b/data/heal_location.s
new file mode 100644
index 000000000..101bec24f
--- /dev/null
+++ b/data/heal_location.s
@@ -0,0 +1,29 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+ .align 2
+gHealLocations:: @ 83E5A20
+ heal_location LittlerootTown_BrendansHouse_2F, 4, 2
+ heal_location LittlerootTown_MaysHouse_2F, 4, 2
+ heal_location PetalburgCity, 20, 17
+ heal_location SlateportCity, 19, 20
+ heal_location MauvilleCity, 22, 6
+ heal_location RustboroCity, 16, 39
+ heal_location FortreeCity, 5, 7
+ heal_location LilycoveCity, 24, 15
+ heal_location MossdeepCity, 28, 17
+ heal_location SootopolisCity, 43, 32
+ heal_location EverGrandeCity, 27, 49
+ heal_location LittlerootTown, 5, 9
+ heal_location LittlerootTown, 14, 9
+ heal_location OldaleTown, 6, 17
+ heal_location DewfordTown, 2, 11
+ heal_location LavaridgeTown, 9, 7
+ heal_location FallarborTown, 14, 8
+ heal_location VerdanturfTown, 16, 4
+ heal_location PacifidlogTown, 8, 16
+ heal_location EverGrandeCity, 18, 6
+ heal_location BattleTower_Outside, 14, 9
+ heal_location SouthernIsland_Exterior, 15, 20
diff --git a/data/intro.s b/data/intro.s
new file mode 100644
index 000000000..11cf7d2e5
--- /dev/null
+++ b/data/intro.s
@@ -0,0 +1,514 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+ .align 2
+Palette_406340:: @ 8406340
+ .incbin "baserom.gba", 0x406340, 0x20
+
+ .align 2
+Palette_406360:: @ 8406360
+ .incbin "baserom.gba", 0x406360, 0x20
+
+ .align 2
+gIntroTiles::
+ .incbin "graphics/intro/intro.4bpp.lz"
+
+ .align 2
+gIntro1BGPals:: @ 8406974
+ .incbin "graphics/intro/intro1_bgpal1.gbapal"
+ .incbin "graphics/intro/intro1_bgpal2.gbapal"
+ .incbin "graphics/intro/intro1_bgpal3.gbapal"
+ .incbin "graphics/intro/intro1_bgpal4.gbapal"
+ .incbin "graphics/intro/intro1_bgpal5.gbapal"
+ .incbin "graphics/intro/intro1_bgpal6.gbapal"
+ .incbin "graphics/intro/intro1_bgpal7.gbapal"
+ .incbin "graphics/intro/intro1_bgpal8.gbapal"
+ .incbin "graphics/intro/intro1_bgpal9.gbapal"
+ .incbin "graphics/intro/intro1_bgpal10.gbapal"
+ .incbin "graphics/intro/intro1_bgpal11.gbapal"
+ .incbin "graphics/intro/intro1_bgpal12.gbapal"
+ .incbin "graphics/intro/intro1_bgpal13.gbapal"
+ .incbin "graphics/intro/intro1_bgpal14.gbapal"
+ .incbin "graphics/intro/intro1_bgpal15.gbapal"
+ .incbin "graphics/intro/intro1_bgpal16.gbapal"
+
+ .align 2
+gIntro1BG0_Tilemap:: @ 8406B74
+ .incbin "graphics/intro/intro1_bg0_map.bin.lz"
+
+ .align 2
+gIntro1BG1_Tilemap:: @ 8406F28
+ .incbin "graphics/intro/intro1_bg1_map.bin.lz"
+
+ .align 2
+gIntro1BG2_Tilemap:: @ 840725C
+ .incbin "graphics/intro/intro1_bg2_map.bin.lz"
+
+ .align 2
+gIntro1BG3_Tilemap:: @ 840754C
+ .incbin "graphics/intro/intro1_bg3_map.bin.lz"
+
+ .align 2
+gIntro1BGLeavesGfx:: @ 8407764
+ .incbin "graphics/intro/introgfx.4bpp.lz"
+
+ .align 2
+gIntro3PokeballPal:: @ 84098D4
+ .incbin "graphics/intro/intro3_pokeball.gbapal"
+
+ .align 2
+gIntro3Pokeball_Tilemap:: @ 8409AD4
+ .incbin "graphics/intro/intro3_pokeball_map.bin.lz"
+
+ .align 2
+gIntro3Pokeball_Gfx:: @ 8409C04
+ .incbin "graphics/intro/intro3_pokeball.8bpp.lz"
+
+ .align 2
+gIntro3Streaks_Pal:: @ 840A758
+ .incbin "graphics/intro/intro3_streaks.gbapal"
+
+ .align 2
+gIntro3Streaks_Gfx:: @ 840A778
+ .incbin "graphics/intro/intro3_streaks.4bpp.lz"
+
+ .align 2
+gIntro3Streaks_Tilemap:: @ 840A7E4
+ .incbin "graphics/intro/intro3_streaks_map.bin.lz"
+
+ .align 2
+gIntro3Misc1Palette::
+ .incbin "graphics/intro/intro3_misc1.gbapal"
+
+ .align 2
+gIntro3Misc2Palette::
+ .incbin "graphics/intro/intro3_misc2.gbapal"
+
+ .align 2
+gIntro3MiscTiles::
+ .incbin "graphics/intro/intro3_misc.4bpp.lz"
+
+ .align 2
+gIntro1EonPalette::
+ .incbin "graphics/intro/intro1_eon.gbapal"
+
+ .align 2
+gIntro1EonTiles::
+ .incbin "graphics/intro/intro1_eon.4bpp.lz"
+
+ .align 2
+gOamData_840ADE8:: @ 840ADE8
+ .2byte 0x00A0
+ .2byte 0x8000
+ .2byte 0x0000
+
+ .align 2
+gSpriteAnim_840ADF0:: @ 840ADF0
+ obj_image_anim_frame 16, 8
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_840ADF8:: @ 840ADF8
+ obj_image_anim_frame 24, 8
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_840AE00:: @ 840AE00
+ obj_image_anim_frame 0, 8
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_840AE08:: @ 840AE08
+ obj_image_anim_frame 48, 8
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_840AE10:: @ 840AE10
+ .4byte gSpriteAnim_840ADF0
+ .4byte gSpriteAnim_840ADF8
+ .4byte gSpriteAnim_840AE00
+ .4byte gSpriteAnim_840AE08
+
+ .align 2
+gSpriteTemplate_840AE20:: @ 840AE20
+ spr_template 2000, 2000, gOamData_840ADE8, gSpriteAnimTable_840AE10, NULL, gDummySpriteAffineAnimTable, sub_813D208
+
+ .align 2
+Unknown_40AE38: @ 840AE38
+ .incbin "baserom.gba", 0x40ae38, 0x14
+
+ .align 2
+Unknown_40AE4C: @ 840AE4C
+ .incbin "baserom.gba", 0x40ae4c, 0x14
+
+ .align 2
+Unknown_40AE60: @ 840AE60
+ .incbin "baserom.gba", 0x40ae60, 0x10
+
+ .align 2
+Unknown_40AE70: @ 840AE70
+ .incbin "baserom.gba", 0x40ae70, 0x10
+
+ .align 2
+gUnknown_0840AE80:: @ 840AE80
+ .4byte Unknown_40AE38
+ .4byte Unknown_40AE4C
+ .4byte Unknown_40AE60
+ .4byte Unknown_40AE70
+
+ .align 2
+gOamData_840AE90:: @ 840AE90
+ .2byte 0x00A0
+ .2byte 0x4000
+ .2byte 0x0000
+
+ .align 2
+gOamData_840AE98:: @ 840AE98
+ .2byte 0x00A0
+ .2byte 0x0000
+ .2byte 0x0000
+
+ .align 2
+gOamData_840AEA0:: @ 840AEA0
+ .2byte 0x80A0
+ .2byte 0xC000
+ .2byte 0x0000
+
+ .align 2
+gSpriteAnim_840AEA8:: @ 840AEA8
+ obj_image_anim_frame 80, 8
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_840AEB0:: @ 840AEB0
+ obj_image_anim_frame 84, 8
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_840AEB8:: @ 840AEB8
+ obj_image_anim_frame 88, 8
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_840AEC0:: @ 840AEC0
+ obj_image_anim_frame 92, 8
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_840AEC8:: @ 840AEC8
+ obj_image_anim_frame 96, 8
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_840AED0:: @ 840AED0
+ obj_image_anim_frame 100, 8
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_840AED8:: @ 840AED8
+ obj_image_anim_frame 104, 8
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_840AEE0:: @ 840AEE0
+ obj_image_anim_frame 112, 8
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_840AEE8:: @ 840AEE8
+ obj_image_anim_frame 113, 8
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_840AEF0:: @ 840AEF0
+ obj_image_anim_frame 114, 8
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_840AEF8:: @ 840AEF8
+ obj_image_anim_frame 115, 8
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_840AF00:: @ 840AF00
+ obj_image_anim_frame 116, 8
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_840AF08:: @ 840AF08
+ obj_image_anim_frame 117, 8
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_840AF10:: @ 840AF10
+ obj_image_anim_frame 128, 8
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_840AF18:: @ 840AF18
+ .4byte gSpriteAnim_840AEA8
+ .4byte gSpriteAnim_840AEB0
+ .4byte gSpriteAnim_840AEB8
+ .4byte gSpriteAnim_840AEC0
+ .4byte gSpriteAnim_840AEC8
+ .4byte gSpriteAnim_840AED0
+ .4byte gSpriteAnim_840AED8
+
+ .align 2
+gSpriteAnimTable_840AF34:: @ 840AF34
+ .4byte gSpriteAnim_840AEE0
+ .4byte gSpriteAnim_840AEE8
+ .4byte gSpriteAnim_840AEF0
+ .4byte gSpriteAnim_840AEF8
+ .4byte gSpriteAnim_840AF00
+ .4byte gSpriteAnim_840AF08
+
+ .align 2
+gSpriteAnimTable_840AF4C:: @ 840AF4C
+ .4byte gSpriteAnim_840AF10
+
+gUnknown_0840AF50:: @ 840AF50
+ .incbin "baserom.gba", 0x0040af50, 0x24
+
+gUnknown_0840AF74:: @ 840AF74
+ .incbin "baserom.gba", 0x0040af74, 0x20
+
+ .align 2
+gSpriteTemplate_840AF94:: @ 840AF94
+ spr_template 2000, 2001, gOamData_840AE90, gSpriteAnimTable_840AF18, NULL, gDummySpriteAffineAnimTable, sub_813D908
+
+ .align 2
+gSpriteTemplate_840AFAC:: @ 840AFAC
+ spr_template 2000, 2001, gOamData_840AE98, gSpriteAnimTable_840AF34, NULL, gDummySpriteAffineAnimTable, sub_813D908
+
+ .align 2
+gSpriteTemplate_840AFC4:: @ 840AFC4
+ spr_template 2000, 2001, gOamData_840AEA0, gSpriteAnimTable_840AF4C, NULL, gDummySpriteAffineAnimTable, sub_813D908
+
+ .align 2
+gOamData_840AFDC:: @ 840AFDC
+ .2byte 0x40A0
+ .2byte 0xC000
+ .2byte 0x0000
+
+ .align 2
+gSpriteAnim_840AFE4:: @ 840AFE4
+ obj_image_anim_frame 0, 10
+ obj_image_anim_jump 0
+
+ .align 2
+gSpriteAnimTable_840AFEC:: @ 840AFEC
+ .4byte gSpriteAnim_840AFE4
+
+ .align 2
+gSpriteTemplate_840AFF0:: @ 840AFF0
+ spr_template 2002, 2002, gOamData_840AFDC, gSpriteAnimTable_840AFEC, NULL, gDummySpriteAffineAnimTable, sub_813DA64
+
+ .align 2
+gUnknown_0840B008:: @ 840B008
+ obj_tiles gIntroTiles, 0x1400, 2000
+ .space 8
+
+ .align 2
+gUnknown_0840B018:: @ 840B018
+ obj_tiles gIntro1EonTiles, 0x400, 2002
+ .space 8
+
+ .align 2
+gUnknown_0840B028:: @ 840B028
+ obj_pal Palette_406340, 2000
+ obj_pal Palette_406360, 2001
+ obj_pal gIntro1EonPalette, 2002
+ .space 8
+
+gUnknown_0840B048:: @ 840B048
+ .incbin "baserom.gba", 0x40b048, 0x8
+
+gUnknown_0840B050:: @ 840B050
+ .incbin "baserom.gba", 0x40b050, 0x8
+
+gUnknown_0840B058:: @ 840B058
+ .incbin "baserom.gba", 0x40b058, 0xc
+
+ .align 2
+gUnknown_0840B064:: @ 840B064
+ .4byte gUnknown_0840B048
+ .4byte gUnknown_0840B050
+ .4byte gUnknown_0840B058
+
+ .align 2
+gOamData_840B070:: @ 840B070
+ .2byte 0x00A0
+ .2byte 0x4000
+ .2byte 0x0400
+
+ .align 2
+gSpriteAnim_840B078:: @ 840B078
+ obj_image_anim_frame 0, 8
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_840B080:: @ 840B080
+ .4byte gSpriteAnim_840B078
+
+ .align 2
+gSpriteTemplate_840B084:: @ 840B084
+ spr_template 2002, 2002, gOamData_840B070, gSpriteAnimTable_840B080, NULL, gDummySpriteAffineAnimTable, sub_813E30C
+
+ .align 2
+gOamData_840B09C:: @ 840B09C
+ .2byte 0x00A0
+ .2byte 0x0000
+ .2byte 0x0400
+
+ .align 2
+gSpriteAnim_840B0A4:: @ 840B0A4
+ obj_image_anim_frame 1, 8
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_840B0AC:: @ 840B0AC
+ .4byte gSpriteAnim_840B0A4
+
+ .align 2
+gSpriteTemplate_840B0B0:: @ 840B0B0
+ spr_template 2003, 2003, gOamData_840B09C, gSpriteAnimTable_840B0AC, NULL, gDummySpriteAffineAnimTable, sub_813E4B8
+
+ .align 2
+gOamData_840B0C8:: @ 840B0C8
+ .2byte 0x00A0
+ .2byte 0x0000
+ .2byte 0x0400
+
+ .align 2
+gSpriteAnim_840B0D0:: @ 840B0D0
+ obj_image_anim_frame 14, 8
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_840B0D8:: @ 840B0D8
+ .4byte gSpriteAnim_840B0D0
+
+ .align 2
+gSpriteTemplate_840B0DC:: @ 840B0DC
+ spr_template 2003, 2004, gOamData_840B0C8, gSpriteAnimTable_840B0D8, NULL, gDummySpriteAffineAnimTable, sub_813E5E0
+
+ .align 2
+gSpriteTemplate_840B0F4:: @ 840B0F4
+ spr_template 2003, 2004, gOamData_840B0C8, gSpriteAnimTable_840B0D8, NULL, gDummySpriteAffineAnimTable, sub_813E6C0
+
+ .align 2
+gOamData_840B10C:: @ 840B10C
+ .2byte 0x00A0
+ .2byte 0x4000
+ .2byte 0x0400
+
+ .align 2
+gSpriteAnim_840B114:: @ 840B114
+ obj_image_anim_frame 6, 8
+ obj_image_anim_frame 6, 8, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_jump 0
+
+ .align 2
+gSpriteAnimTable_840B120:: @ 840B120
+ .4byte gSpriteAnim_840B114
+
+ .align 2
+gSpriteTemplate_840B124:: @ 840B124
+ spr_template 2003, 2004, gOamData_840B10C, gSpriteAnimTable_840B120, NULL, gDummySpriteAffineAnimTable, sub_813E804
+
+ .align 2
+gOamData_840B13C:: @ 840B13C
+ .2byte 0x00A0
+ .2byte 0x4000
+ .2byte 0x0400
+
+ .align 2
+gSpriteAnim_840B144:: @ 840B144
+ obj_image_anim_frame 10, 8
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_840B14C:: @ 840B14C
+ .4byte gSpriteAnim_840B144
+
+ .align 2
+gSpriteTemplate_840B150:: @ 840B150
+ spr_template 2003, 2004, gOamData_840B13C, gSpriteAnimTable_840B14C, NULL, gDummySpriteAffineAnimTable, sub_813E980
+
+gUnknown_0840B168:: @ 840B168
+ .incbin "baserom.gba", 0x0040b168, 0x8
+
+ .align 2
+gSpriteTemplate_840B170:: @ 840B170
+ spr_template 2003, 2004, gOamData_840B13C, gSpriteAnimTable_840B14C, NULL, gDummySpriteAffineAnimTable, sub_813EA60
+
+gUnknown_0840B188:: @ 840B188
+ .incbin "baserom.gba", 0x0040b188, 0x14
+
+ .align 2
+gOamData_840B19C:: @ 840B19C
+ .2byte 0x00A0
+ .2byte 0x4000
+ .2byte 0x0400
+
+ .align 2
+gSpriteAnim_840B1A4:: @ 840B1A4
+ obj_image_anim_frame 2, 8
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_840B1AC:: @ 840B1AC
+ .4byte gSpriteAnim_840B1A4
+
+ .align 2
+gSpriteTemplate_840B1B0:: @ 840B1B0
+ spr_template 2003, 2004, gOamData_840B19C, gSpriteAnimTable_840B1AC, NULL, gDummySpriteAffineAnimTable, sub_813EBBC
+
+ .align 2
+gSpriteTemplate_840B1C8:: @ 840B1C8
+ spr_template 2003, 2004, gOamData_840B19C, gSpriteAnimTable_840B1AC, NULL, gDummySpriteAffineAnimTable, sub_813EC90
+
+ .align 2
+gOamData_840B1E0:: @ 840B1E0
+ .2byte 0x00A0
+ .2byte 0xC000
+ .2byte 0x0400
+
+ .align 2
+gSpriteAnim_840B1E8:: @ 840B1E8
+ obj_image_anim_frame 16, 8
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_840B1F0:: @ 840B1F0
+ .4byte gSpriteAnim_840B1E8
+
+ .align 2
+gSpriteTemplate_840B1F4:: @ 840B1F4
+ spr_template 2003, 2003, gOamData_840B1E0, gSpriteAnimTable_840B1F0, NULL, gDummySpriteAffineAnimTable, sub_813EDFC
+
+ .align 2
+gIntro3PokeballGfx_Table:: @ 840B20C
+ obj_tiles gInterfaceGfx_PokeBall, 0x100, 2002
+ .space 8
+
+ .align 2
+gIntro3MiscGfx_Table:: @ 840B21C
+ obj_tiles gIntro3MiscTiles, 0xa00, 2003
+ .space 8
+
+ .align 2
+gInterfacePokeballPal_Table:: @ 840B22C
+ obj_pal gInterfacePal_PokeBall, 2002
+ .space 8
+
+ .align 2
+gIntro3MiscPal_Table:: @ 840B23C
+ obj_pal gIntro3Misc1Palette, 2003
+ obj_pal gIntro3Misc2Palette, 2004
+ .space 8
+
+ .incbin "baserom.gba", 0x0040b254, 0x4
diff --git a/data/intro_credits_graphics.s b/data/intro_credits_graphics.s
new file mode 100644
index 000000000..6320bc332
--- /dev/null
+++ b/data/intro_credits_graphics.s
@@ -0,0 +1,332 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+gUnknown_084121FC:: @ 84121FC
+ .incbin "graphics/intro/intro2_grass.gbapal"
+
+gUnknown_0841221C:: @ 841221C
+ .incbin "baserom.gba", 0x0041221c, 0x20
+
+gUnknown_0841223C:: @ 841223C
+ .incbin "baserom.gba", 0x0041223c, 0x20
+
+ .align 2
+gUnknown_0841225C:: @ 841225C
+ .incbin "graphics/intro/intro2_grass.4bpp.lz"
+
+ .align 2
+gUnknown_084126DC:: @ 84126DC
+ .incbin "graphics/intro/intro2_grass_map.bin.lz"
+
+gUnknown_08412818:: @ 8412818
+ .incbin "baserom.gba", 0x00412818, 0x60
+
+gUnknown_08412878:: @ 8412878
+ .incbin "baserom.gba", 0x00412878, 0x60
+
+ .align 2
+gUnknown_084128D8:: @ 84128D8
+ .incbin "graphics/intro/intro2_bgclouds.4bpp.lz"
+
+ .align 2
+gUnknown_08412EB4:: @ 8412EB4
+ .incbin "graphics/intro/intro2_bgclouds_map.bin.lz"
+
+gUnknown_08413184:: @ 8413184
+ .incbin "graphics/intro/intro2_bgclouds.gbapal"
+
+gUnknown_084131A4:: @ 84131A4
+ .incbin "baserom.gba", 0x004131a4, 0x20
+
+gUnknown_084131C4:: @ 84131C4
+ .incbin "graphics/intro/intro2_bgclouds2.4bpp.lz"
+
+gUnknown_08413300:: @ 8413300
+ .incbin "baserom.gba", 0x00413300, 0x20
+
+gUnknown_08413320:: @ 8413320
+ .incbin "baserom.gba", 0x00413320, 0x20
+
+ .align 2
+gUnknown_08413340:: @ 8413340
+ .incbin "graphics/intro/intro2_bgtrees.4bpp.lz"
+
+ .align 2
+gUnknown_084139C8:: @ 84139C8
+ .incbin "graphics/intro/intro2_bgtrees_map.bin.lz"
+
+ .align 2
+gUnknown_08413CCC:: @ 8413CCC
+ .incbin "graphics/intro/intro2_bgtrees.gbapal"
+
+ .align 2
+gIntro2TreeTiles:: @ 8413CEC
+ .incbin "graphics/intro/intro2_bgtreessmall.4bpp.lz"
+
+gUnknown_08413E38:: @ 8413E38
+ .incbin "baserom.gba", 0x00413e38, 0x40 @ two palettes?
+
+ .align 2
+gUnknown_08413E78:: @ 8413E78
+ .incbin "graphics/intro/intro2_bgnight.4bpp.lz" @ only used in credits, coupled with intro because bicycle sequence
+
+ .align 2
+gUnknown_08414064:: @ 8414064
+ .incbin "graphics/intro/intro2_bgnight.gbapal"
+
+ .align 2
+gUnknown_08414084:: @ 8414084
+ .incbin "graphics/intro/intro2_bgnight_map.bin.lz"
+
+ .align 2
+gIntro2NightTiles:: @ 8414330
+ .incbin "graphics/intro/intro2_night.4bpp.lz"
+
+ .align 1
+gIntro2BrendanPalette:: @ 84143B4
+ .incbin "graphics/intro/intro2_brendan.gbapal"
+
+ .align 2
+gIntro2BrendanTiles:: @ 84143D4
+ .incbin "graphics/intro/intro2_brendan.4bpp.lz"
+
+ .align 1
+gIntro2MayPalette:: @ 8414F70
+ .incbin "graphics/intro/intro2_may.gbapal"
+
+ .align 2
+gUnknown_08414F90:: @ 8414F90
+ .space 0x1E0
+
+ .align 2
+gIntro2MayTiles:: @ 8415170
+ .incbin "graphics/intro/intro2_may.4bpp.lz"
+
+ .align 2
+gIntro2BicycleTiles:: @ 8415E08
+ .incbin "graphics/intro/intro2_bicycle.4bpp.lz"
+
+ .align 1
+gIntro2LatiosPalette:: @ 8416234
+ .incbin "graphics/intro/intro2_latios.gbapal"
+
+ .align 2
+gIntro2LatiosTiles:: @ 8416254
+ .incbin "graphics/intro/intro2_latios.4bpp.lz"
+
+ .align 1
+gIntro2LatiasPalette:: @ 84166F8
+ .incbin "graphics/intro/intro2_latias.gbapal"
+
+ .align 2
+gIntro2LatiasTiles:: @ 8416718
+ .incbin "graphics/intro/intro2_latias.4bpp.lz"
+
+ .align 2
+gSpriteTemplate_8416B3C:: @ 8416B3C
+ spr_template 2000, 0xFFFF, gDummyOamData, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_814910C
+
+ .align 2
+gUnknown_08416B54:: @ 8416B54
+ obj_tiles gUnknown_084131C4, 0x400, 2000
+ null_obj_tiles
+
+ .align 2
+gSpriteAnim_8416B64:: @ 8416B64
+ obj_image_anim_frame 0, 30
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_8416B6C:: @ 8416B6C
+ obj_image_anim_frame 16, 30
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_8416B74:: @ 8416B74
+ obj_image_anim_frame 20, 30
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_8416B7C:: @ 8416B7C
+ obj_image_anim_frame 22, 30
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_8416B84:: @ 8416B84
+ .4byte gSpriteAnim_8416B64
+ .4byte gSpriteAnim_8416B6C
+ .4byte gSpriteAnim_8416B74
+ .4byte gSpriteAnim_8416B7C
+
+gUnknown_08416B94:: @ 8416B94
+ .incbin "baserom.gba", 0x00416b94, 0x48
+
+ .align 2
+gUnknown_08416BDC:: @ 8416BDC
+ obj_tiles gIntro2TreeTiles, 0x400, 2000
+ null_obj_tiles
+
+ .align 2
+gSpriteAnim_8416BEC:: @ 8416BEC
+ obj_image_anim_frame 0, 30
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_8416BF4:: @ 8416BF4
+ obj_image_anim_frame 16, 30
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_8416BFC:: @ 8416BFC
+ obj_image_anim_frame 24, 30
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_8416C04:: @ 8416C04
+ .4byte gSpriteAnim_8416BEC
+ .4byte gSpriteAnim_8416BF4
+ .4byte gSpriteAnim_8416BFC
+
+gUnknown_08416C10:: @ 8416C10
+ .incbin "baserom.gba", 0x00416c10, 0x60
+
+ .align 2
+gUnknown_08416C70:: @ 8416C70
+ obj_tiles gIntro2NightTiles, 0x400, 2000
+ null_obj_tiles
+
+ .align 2
+gSpriteAnim_8416C80:: @ 8416C80
+ obj_image_anim_frame 0, 30
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_8416C88:: @ 8416C88
+ .4byte gSpriteAnim_8416C80
+
+gUnknown_08416C8C:: @ 8416C8C
+ .incbin "baserom.gba", 0x00416c8c, 0x30
+
+ .align 2
+gOamData_8416CBC:: @ 8416CBC
+ .2byte 0x00A0
+ .2byte 0xC000
+ .2byte 0x0400
+
+ .align 2
+gSpriteAnim_8416CC4:: @ 8416CC4
+ obj_image_anim_frame 0, 8
+ obj_image_anim_frame 64, 8
+ obj_image_anim_frame 128, 8
+ obj_image_anim_frame 192, 8
+ obj_image_anim_jump 0
+
+ .align 2
+gSpriteAnimTable_8416CD8:: @ 8416CD8
+ .4byte gSpriteAnim_8416CC4
+
+ .align 2
+gSpriteTemplate_8416CDC:: @ 8416CDC
+ spr_template 1002, 1002, gOamData_8416CBC, gSpriteAnimTable_8416CD8, NULL, gDummySpriteAffineAnimTable, nullsub_82
+
+ .align 2
+gSpriteTemplate_8416CF4:: @ 8416CF4
+ spr_template 1003, 1003, gOamData_8416CBC, gSpriteAnimTable_8416CD8, NULL, gDummySpriteAffineAnimTable, nullsub_82
+
+ .align 2
+gOamData_8416D0C:: @ 8416D0C
+ .2byte 0x40A0
+ .2byte 0xC000
+ .2byte 0x0400
+
+ .align 2
+gSpriteAnim_8416D14:: @ 8416D14
+ obj_image_anim_frame 0, 8
+ obj_image_anim_frame 32, 8
+ obj_image_anim_frame 64, 8
+ obj_image_anim_frame 96, 8
+ obj_image_anim_jump 0
+
+ .align 2
+gSpriteAnimTable_8416D28:: @ 8416D28
+ .4byte gSpriteAnim_8416D14
+
+ .align 2
+gSpriteTemplate_8416D2C:: @ 8416D2C
+ spr_template 1001, 1002, gOamData_8416D0C, gSpriteAnimTable_8416D28, NULL, gDummySpriteAffineAnimTable, sub_81492A0
+
+ .align 2
+gSpriteTemplate_8416D44:: @ 8416D44
+ spr_template 1001, 1003, gOamData_8416D0C, gSpriteAnimTable_8416D28, NULL, gDummySpriteAffineAnimTable, sub_81492A0
+
+ .align 2
+gOamData_8416D5C:: @ 8416D5C
+ .2byte 0x00A0
+ .2byte 0xC000
+ .2byte 0x0400
+
+ .align 2
+gSpriteAnim_8416D64:: @ 8416D64
+ obj_image_anim_frame 0, 16
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_8416D6C:: @ 8416D6C
+ obj_image_anim_frame 64, 16
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_8416D74:: @ 8416D74
+ .4byte gSpriteAnim_8416D64
+ .4byte gSpriteAnim_8416D6C
+
+ .align 2
+gSpriteTemplate_8416D7C:: @ 8416D7C
+ spr_template 1004, 1004, gOamData_8416D5C, gSpriteAnimTable_8416D74, NULL, gDummySpriteAffineAnimTable, nullsub_83
+
+ .align 2
+gSpriteTemplate_8416D94:: @ 8416D94
+ spr_template 1005, 1005, gOamData_8416D5C, gSpriteAnimTable_8416D74, NULL, gDummySpriteAffineAnimTable, nullsub_83
+
+ .align 2
+gIntro2BrendanSpriteSheet:: @ 8416DAC
+ obj_tiles gIntro2BrendanTiles, 0x3800, 1002
+ .space 8
+
+ .align 2
+gIntro2MaySpriteSheet:: @ 8416DBC
+ obj_tiles gIntro2MayTiles, 0x3800, 1003
+ .space 8
+
+ .align 2
+gIntro2BicycleSpriteSheet:: @ 8416DCC
+ obj_tiles gIntro2BicycleTiles, 0x1000, 1001
+ .space 8
+
+ .align 2
+gIntro2LatiosSpriteSheet:: @ 8416DDC
+ obj_tiles gIntro2LatiosTiles, 0x1000, 1004
+ .space 8
+
+ .align 2
+gIntro2LatiasSpriteSheet:: @ 8416DEC
+ obj_tiles gIntro2LatiasTiles, 0x1000, 1005
+ .space 8
+
+ .align 2
+gIntro2SpritePalettes:: @ 8416DFC
+ obj_pal gIntro2BrendanPalette, 1002
+ obj_pal gIntro2MayPalette, 1003
+ obj_pal gIntro2LatiosPalette, 1004
+ obj_pal gIntro2LatiasPalette, 1005
+ .space 8
+
+gUnknown_08416E24:: @ 8416E24
+ obj_tiles gIntro2BrendanTiles, 0x2000, 1002
+ .space 8
+
+gUnknown_08416E34:: @ 8416E34
+ obj_tiles gIntro2MayTiles, 0x2000, 1003
+ .space 8
diff --git a/data/item.s b/data/item.s
new file mode 100644
index 000000000..0c2aa8593
--- /dev/null
+++ b/data/item.s
@@ -0,0 +1,10 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+@ 83C2028
+ .include "data/text/item_descriptions.inc"
+
+@ 83C5564
+ .include "data/items.inc"
diff --git a/data/item_menu.s b/data/item_menu.s
new file mode 100644
index 000000000..141caa1bd
--- /dev/null
+++ b/data/item_menu.s
@@ -0,0 +1,288 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+@ pointer to items, capacity
+ .align 2
+gBagPockets:: @ 83C1618
+ .4byte gSaveBlock1 + 0x560, 20 @ Items
+ .4byte gSaveBlock1 + 0x600, 16 @ Poké Balls
+ .4byte gSaveBlock1 + 0x640, 64 @ TMs & HMs
+ .4byte gSaveBlock1 + 0x740, 46 @ Berries
+ .4byte gSaveBlock1 + 0x5B0, 20 @ Key Items
+
+ .align 2
+gUnknown_083C1640:: @ 83C1640
+ .4byte OtherText_Use, sub_80A5B78
+ .4byte OtherText_Toss, sub_80A5F14
+ .4byte gOtherText_CancelNoTerminator, sub_80A5F80
+ .4byte OtherText_Register, sub_80A5FAC
+ .4byte OtherText_Use, ItemMenu_UseInBattle
+ .4byte gOtherText_CancelNoTerminator, sub_80A7124
+ .4byte OtherText_Give2, ItemMenu_Give
+ .4byte OtherText_CheckTag, sub_80A6178
+ .4byte gOtherText_CancelWithTerminator, 0x0
+ .4byte OtherText_Confirm, sub_80A69E0
+
+@ 6-byte entries; format of entry is unknown
+gUnknown_083C1690:: @ 83C1690
+ .byte 0, 1, 6, 2, 0, 0
+ .byte 6, 1, 8, 2, 0, 0
+ .byte 0, 8, 6, 2, 0, 0
+ .byte 7, 0, 1, 8, 6, 2
+ .byte 0, 8, 3, 2, 0, 0
+
+gUnknown_083C16AE:: @ 83C16AE
+ .byte 6, 2
+ .byte 6, 2
+ .byte 6, 2
+ .byte 6, 2
+ .byte 2, 0
+
+gUnknown_083C16B8:: @ 83C16B8
+ .byte 7, 9, 8, 2
+
+ .align 2
+gUnknown_083C16BC:: @ 83C16BC
+ .4byte sub_80A59D0
+ .4byte sub_80A599C
+ .4byte sub_80A7024
+ .4byte sub_80A70D8
+ .4byte sub_80A6214
+ .4byte sub_80A61EC
+ .4byte sub_80A6354
+ .4byte sub_80A631C
+ .4byte sub_80A6918
+ .4byte sub_80A68F0
+ .4byte sub_80A59D0
+ .4byte sub_80A69B8
+ .4byte sub_80A6C6C
+ .4byte sub_80A6A4C
+
+ .align 2
+gUnknown_083C16F4:: @ 83C16F4
+ .4byte sub_80A5E60
+ .4byte sub_80A5E90
+
+ .align 2
+gUnknown_083C16FC:: @ 83C16FC
+ .4byte sub_80A65AC
+ .4byte sub_80A6618
+
+gUnknown_083C1704:: @ 83C1704
+ .incbin "baserom.gba", 0x003c1704, 0x4
+
+gUnknown_083C1708:: @ 83C1708
+ .byte 4, 5
+
+gUnknown_083C170A:: @ 83C170A
+ .byte 5, 0
+
+ .align 2
+gPalette_83C170C:: @ 83C170C
+ .incbin "baserom.gba", 0x003c170c, 0x20
+
+ .align 2
+gSpriteImage_83C172C:: @ 83C172C
+ .incbin "graphics/unknown_sprites/83C172C.4bpp"
+
+ .align 2
+ .incbin "graphics/unused/cherry.4bpp"
+
+ .align 2
+ .incbin "graphics/unused/cherry.gbapal"
+
+ .align 2
+gOamData_83C1C4C:: @ 83C1C4C
+ .2byte 0x0000
+ .2byte 0xC000
+ .2byte 0x7800
+
+ .align 2
+gSpriteAnim_83C1C54:: @ 83C1C54
+ obj_image_anim_frame 0, 4
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83C1C5C:: @ 83C1C5C
+ obj_image_anim_frame 64, 4
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83C1C64:: @ 83C1C64
+ obj_image_anim_frame 128, 4
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83C1C6C:: @ 83C1C6C
+ obj_image_anim_frame 192, 4
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83C1C74:: @ 83C1C74
+ obj_image_anim_frame 256, 4
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83C1C7C:: @ 83C1C7C
+ obj_image_anim_frame 320, 4
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_83C1C84:: @ 83C1C84
+ .4byte gSpriteAnim_83C1C54
+ .4byte gSpriteAnim_83C1C5C
+ .4byte gSpriteAnim_83C1C6C
+ .4byte gSpriteAnim_83C1C74
+ .4byte gSpriteAnim_83C1C7C
+ .4byte gSpriteAnim_83C1C64
+
+ .align 2
+gSpriteAffineAnim_83C1C9C:: @ 83C1C9C
+ 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_83C1CC4:: @ 83C1CC4
+ .4byte gSpriteAffineAnim_83C1C9C
+
+ .align 2
+gUnknown_083C1CC8:: @ 83C1CC8
+ obj_tiles gBagMaleTiles, 0x3000, 30000
+
+ .align 2
+gUnknown_083C1CD0:: @ 83C1CD0
+ obj_tiles gBagFemaleTiles, 0x3000, 30000
+
+ .align 2
+gUnknown_083C1CD8:: @ 83C1CD8
+ obj_pal gBagPalette, 30000
+
+ .align 2
+gSpriteTemplate_83C1CE0:: @ 83C1CE0
+ spr_template 30000, 30000, gOamData_83C1C4C, gSpriteAnimTable_83C1C84, NULL, gSpriteAffineAnimTable_83C1CC4, sub_80A7998
+
+ .align 2
+gOamData_83C1CF8:: @ 83C1CF8
+ .2byte 0x0000
+ .2byte 0x4800
+ .2byte 0x8800
+
+ .align 2
+gSpriteAffineAnim_83C1D00:: @ 83C1D00
+ obj_rot_scal_anim_frame 0x0, 0x0, 8, 32
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnim_83C1D10:: @ 83C1D10
+ obj_rot_scal_anim_frame 0x0, 0x0, -8, 32
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnimTable_83C1D20:: @ 83C1D20
+ .4byte gSpriteAffineAnim_83C1D00
+ .4byte gSpriteAffineAnim_83C1D10
+
+ .align 2
+gSpriteImageTable_83C1D28:: @ 83C1D28
+ obj_frame_tiles gSpriteImage_83C172C, 0x80
+
+ .align 2
+gUnknown_083C1D30:: @ 83C1D30
+ obj_pal gPalette_83C170C, 8
+
+ .align 2
+gSpriteTemplate_83C1D38:: @ 83C1D38
+ spr_template 0xFFFF, 8, gOamData_83C1CF8, gSpriteAnimTable_83C1C84, gSpriteImageTable_83C1D28, gSpriteAffineAnimTable_83C1D20, sub_80A7B28
+
+ .align 2
+gOamData_83C1D50:: @ 83C1D50
+ .2byte 0x0000
+ .2byte 0xC000
+ .2byte 0x7400
+
+ .align 2
+gOamData_83C1D58:: @ 83C1D58
+ .2byte 0x0300
+ .2byte 0xC000
+ .2byte 0x7000
+
+ .align 2
+gSpriteAnim_83C1D60:: @ 83C1D60
+ obj_image_anim_frame 0, 0
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_83C1D68:: @ 83C1D68
+ .4byte gSpriteAnim_83C1D60
+
+ .align 2
+gSpriteImageTable_83C1D6C:: @ 83C1D6C
+ obj_frame_tiles 0x02000000, 0x800
+
+ .align 2
+gSpriteTemplate_83C1D74:: @ 83C1D74
+ spr_template 0xFFFF, 30020, gOamData_83C1D50, gSpriteAnimTable_83C1D68, gSpriteImageTable_83C1D6C, gDummySpriteAffineAnimTable, sub_80A7DC4
+
+ .align 2
+gSpriteAffineAnim_83C1D8C:: @ 83C1D8C
+ obj_rot_scal_anim_frame 0xFFFF, 0xFFFF, -3, 96
+ obj_rot_scal_anim_frame 0x0, 0x0, 0, 16
+ obj_rot_scal_anim_frame 0xFFFE, 0xFFFE, -1, 64
+ obj_rot_scal_anim_frame 0xFFF8, 0x0, 0, 16
+ obj_rot_scal_anim_frame 0x0, 0xFFF8, 0, 16
+ obj_rot_scal_anim_frame 0x100, 0x100, 0, 0
+ obj_rot_scal_anim_jump 0
+
+ .align 2
+gSpriteAffineAnim_83C1DC4:: @ 83C1DC4
+ obj_rot_scal_anim_frame 0xFFFF, 0xFFFF, 3, 96
+ obj_rot_scal_anim_frame 0x0, 0x0, 0, 16
+ obj_rot_scal_anim_frame 0xFFFE, 0xFFFE, 1, 64
+ obj_rot_scal_anim_frame 0xFFF8, 0x0, 0, 16
+ obj_rot_scal_anim_frame 0x0, 0xFFF8, 0, 16
+ obj_rot_scal_anim_frame 0x100, 0x100, 0, 0
+ obj_rot_scal_anim_jump 0
+
+ .align 2
+gSpriteAffineAnimTable_83C1DFC:: @ 83C1DFC
+ .4byte gSpriteAffineAnim_83C1D8C
+ .4byte gSpriteAffineAnim_83C1DC4
+
+ .align 2
+gSpriteTemplate_83C1E04:: @ 83C1E04
+ spr_template 0xFFFF, 30020, gOamData_83C1D58, gSpriteAnimTable_83C1D68, gSpriteImageTable_83C1D6C, gSpriteAffineAnimTable_83C1DFC, SpriteCallbackDummy
+
+@ 83C1E1C
+ .include "data/graphics/berries/graphics_table.inc"
+
+ .align 2
+gUnknown_083C1F74:: @ 83C1F74
+ obj_tiles gBerryCheckCircle_Gfx, 2048, 0x2710
+
+ .align 2
+gUnknown_083C1F7C:: @ 83C1F7C
+ obj_pal gBerryCheck_Pal, 0x2710
+
+ .align 2
+gOamData_83C1F84:: @ 83C1F84
+ .2byte 0x0000
+ .2byte 0x8000
+ .2byte 0x0400
+
+ .align 2
+gSpriteAnim_83C1F8C:: @ 83C1F8C
+ obj_image_anim_frame 0, 0
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_83C1F94:: @ 83C1F94
+ .4byte gSpriteAnim_83C1F8C
+
+ .align 2
+gSpriteTemplate_83C1F98:: @ 83C1F98
+ spr_template 10000, 10000, gOamData_83C1F84, gSpriteAnimTable_83C1F94, NULL, gDummySpriteAffineAnimTable, sub_80A7DC4
diff --git a/data/item_use.s b/data/item_use.s
new file mode 100644
index 000000000..7e03e54d8
--- /dev/null
+++ b/data/item_use.s
@@ -0,0 +1,31 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+gUnknown_083D613C:: @ 83D613C
+ .incbin "baserom.gba", 0x003d613c, 0x60
+
+Unknown_83D619C::
+ .incbin "baserom.gba", 0x003d619c, 0x20
+Unknown_83D61BC::
+ .incbin "baserom.gba", 0x003d61bc, 0x20
+
+ .align 2
+gUnknown_083D61DC:: @ 83D61DC
+ .4byte Unknown_83D619C
+ .4byte Unknown_83D61BC
+
+ .align 2
+gExitToOverworldFuncList:: @ 83D61E4
+ .4byte sub_808B020
+ .4byte c2_exit_to_overworld_2_switch
+ .4byte sub_810B96C
+
+gItemFinderDirections:: @ 83D61F0
+ .byte DIR_NORTH, DIR_EAST, DIR_SOUTH, DIR_WEST
+
+ .align 2
+gUnknown_083D61F4:: @ 83D61F4
+ .4byte sub_80C9FC0
+ .4byte CleanUpItemMenuMessage
diff --git a/data/landmarks.inc b/data/landmark.s
index fb7df5736..3583365cb 100644
--- a/data/landmarks.inc
+++ b/data/landmark.s
@@ -1,3 +1,8 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
.align 2
Landmark_FlowerShop:
.4byte gLandmarkName_FlowerShop
diff --git a/data/mail.s b/data/mail.s
new file mode 100644
index 000000000..6bfc29c49
--- /dev/null
+++ b/data/mail.s
@@ -0,0 +1,177 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+ .align 1
+gUnknown_083E562C:: @ 83E562C
+ .2byte 0x6ACD, 0x51A5
+ .2byte 0x45FC, 0x38D4
+
+ .align 2
+gMailGraphicsTable:: @ 83E5634
+ .4byte gMailPalette_Orange
+ .4byte gMailTiles_Orange
+ .4byte gMailTilemap_Orange
+ .2byte 0x2C0
+ .2byte 0
+ .2byte 0x294A
+ .2byte 0x6739
+
+ .4byte gMailPalette_Harbor
+ .4byte gMailTiles_Harbor
+ .4byte gMailTilemap_Harbor
+ .2byte 0x2E0
+ .2byte 0
+ .2byte 0x7FFF
+ .2byte 0x4631
+
+ .4byte gMailPalette_Glitter
+ .4byte gMailTiles_Glitter
+ .4byte gMailTilemap_Glitter
+ .2byte 0x400
+ .2byte 0
+ .2byte 0x294A
+ .2byte 0x6739
+
+ .4byte gMailPalette_Mech
+ .4byte gMailTiles_Mech
+ .4byte gMailTilemap_Mech
+ .2byte 0x1E0
+ .2byte 0
+ .2byte 0x7FFF
+ .2byte 0x4631
+
+ .4byte gMailPalette_Wood
+ .4byte gMailTiles_Wood
+ .4byte gMailTilemap_Wood
+ .2byte 0x2E0
+ .2byte 0
+ .2byte 0x7FFF
+ .2byte 0x4631
+
+ .4byte gMailPalette_Wave
+ .4byte gMailTiles_Wave
+ .4byte gMailTilemap_Wave
+ .2byte 0x300
+ .2byte 0
+ .2byte 0x294A
+ .2byte 0x6739
+
+ .4byte gMailPalette_Bead
+ .4byte gMailTiles_Bead
+ .4byte gMailTilemap_Bead
+ .2byte 0x140
+ .2byte 0
+ .2byte 0x7FFF
+ .2byte 0x4631
+
+ .4byte gMailPalette_Shadow
+ .4byte gMailTiles_Shadow
+ .4byte gMailTilemap_Shadow
+ .2byte 0x300
+ .2byte 0
+ .2byte 0x7FFF
+ .2byte 0x4631
+
+ .4byte gMailPalette_Tropic
+ .4byte gMailTiles_Tropic
+ .4byte gMailTilemap_Tropic
+ .2byte 0x220
+ .2byte 0
+ .2byte 0x294A
+ .2byte 0x6739
+
+ .4byte gMailPalette_Dream
+ .4byte gMailTiles_Dream
+ .4byte gMailTilemap_Dream
+ .2byte 0x340
+ .2byte 0
+ .2byte 0x294A
+ .2byte 0x6739
+
+ .4byte gMailPalette_Fab
+ .4byte gMailTiles_Fab
+ .4byte gMailTilemap_Fab
+ .2byte 0x2A0
+ .2byte 0
+ .2byte 0x294A
+ .2byte 0x6739
+
+ .4byte gMailPalette_Retro
+ .4byte gMailTiles_Retro
+ .4byte gMailTilemap_Retro
+ .2byte 0x520
+ .2byte 0
+ .2byte 0x294A
+ .2byte 0x6739
+
+ .align 2
+Unknown_3E5724: @ 83E5724
+ .4byte 0xC
+ .4byte 0xC
+ .4byte 0xC
+
+gUnknown_083E5730:: @ 83E5730
+ .byte 3, 15, 27, 52
+ .4byte Unknown_3E5724
+ .byte 3, 15, 27, 52
+ .4byte Unknown_3E5724
+ .byte 3, 15, 27, 52
+ .4byte Unknown_3E5724
+ .byte 3, 15, 27, 52
+ .4byte Unknown_3E5724
+ .byte 3, 15, 27, 52
+ .4byte Unknown_3E5724
+ .byte 3, 15, 27, 52
+ .4byte Unknown_3E5724
+ .byte 3, 15, 27, 52
+ .4byte Unknown_3E5724
+ .byte 3, 15, 27, 52
+ .4byte Unknown_3E5724
+ .byte 3, 15, 27, 52
+ .4byte Unknown_3E5724
+ .byte 3, 15, 27, 52
+ .4byte Unknown_3E5724
+ .byte 3, 16, 27, 52
+ .4byte Unknown_3E5724
+ .byte 3, 15, 27, 52
+ .4byte Unknown_3E5724
+
+ .align 2
+Unknown_3E5790: @ 83E5790
+ .4byte 0x8
+ .4byte 0x8
+ .4byte 0x8
+ .4byte 0x8
+ .4byte 0x4
+
+ .align 2
+gUnknown_083E57A4:: @ 83E57A4
+ .byte 5, 15, 15, 52
+ .4byte Unknown_3E5790
+ .byte 5, 15, 15, 52
+ .4byte Unknown_3E5790
+ .byte 5, 15, 16, 52
+ .4byte Unknown_3E5790
+ .byte 5, 15, 15, 52
+ .4byte Unknown_3E5790
+ .byte 5, 15, 15, 52
+ .4byte Unknown_3E5790
+ .byte 5, 15, 16, 52
+ .4byte Unknown_3E5790
+ .byte 5, 15, 16, 52
+ .4byte Unknown_3E5790
+ .byte 5, 15, 15, 52
+ .4byte Unknown_3E5790
+ .byte 5, 15, 15, 52
+ .4byte Unknown_3E5790
+ .byte 5, 15, 15, 52
+ .4byte Unknown_3E5790
+ .byte 5, 16, 15, 52
+ .4byte Unknown_3E5790
+ .byte 5, 15, 15, 52
+ .4byte Unknown_3E5790
+
+ .align 2
+ .incbin "baserom.gba", 0x3e5804, 0x4
diff --git a/data/map_events.s b/data/map_events.s
new file mode 100644
index 000000000..68c8e510e
--- /dev/null
+++ b/data/map_events.s
@@ -0,0 +1,410 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+ .include "data/maps/events/PetalburgCity.inc"
+ .include "data/maps/events/SlateportCity.inc"
+ .include "data/maps/events/MauvilleCity.inc"
+ .include "data/maps/events/RustboroCity.inc"
+ .include "data/maps/events/FortreeCity.inc"
+ .include "data/maps/events/LilycoveCity.inc"
+ .include "data/maps/events/MossdeepCity.inc"
+ .include "data/maps/events/SootopolisCity.inc"
+ .include "data/maps/events/EverGrandeCity.inc"
+ .include "data/maps/events/LittlerootTown.inc"
+ .include "data/maps/events/OldaleTown.inc"
+ .include "data/maps/events/DewfordTown.inc"
+ .include "data/maps/events/LavaridgeTown.inc"
+ .include "data/maps/events/FallarborTown.inc"
+ .include "data/maps/events/VerdanturfTown.inc"
+ .include "data/maps/events/PacifidlogTown.inc"
+ .include "data/maps/events/Route101.inc"
+ .include "data/maps/events/Route102.inc"
+ .include "data/maps/events/Route103.inc"
+ .include "data/maps/events/Route104.inc"
+ .include "data/maps/events/Route105.inc"
+ .include "data/maps/events/Route106.inc"
+ .include "data/maps/events/Route107.inc"
+ .include "data/maps/events/Route108.inc"
+ .include "data/maps/events/Route109.inc"
+ .include "data/maps/events/Route110.inc"
+ .include "data/maps/events/Route111.inc"
+ .include "data/maps/events/Route112.inc"
+ .include "data/maps/events/Route113.inc"
+ .include "data/maps/events/Route114.inc"
+ .include "data/maps/events/Route115.inc"
+ .include "data/maps/events/Route116.inc"
+ .include "data/maps/events/Route117.inc"
+ .include "data/maps/events/Route118.inc"
+ .include "data/maps/events/Route119.inc"
+ .include "data/maps/events/Route120.inc"
+ .include "data/maps/events/Route121.inc"
+ .include "data/maps/events/Route122.inc"
+ .include "data/maps/events/Route123.inc"
+ .include "data/maps/events/Route124.inc"
+ .include "data/maps/events/Route125.inc"
+ .include "data/maps/events/Route126.inc"
+ .include "data/maps/events/Route127.inc"
+ .include "data/maps/events/Route128.inc"
+ .include "data/maps/events/Route129.inc"
+ .include "data/maps/events/Route130.inc"
+ .include "data/maps/events/Route131.inc"
+ .include "data/maps/events/Route132.inc"
+ .include "data/maps/events/Route133.inc"
+ .include "data/maps/events/Route134.inc"
+ .include "data/maps/events/Underwater1.inc"
+ .include "data/maps/events/Underwater2.inc"
+ .include "data/maps/events/Underwater3.inc"
+ .include "data/maps/events/Underwater4.inc"
+ .include "data/maps/events/LittlerootTown_BrendansHouse_1F.inc"
+ .include "data/maps/events/LittlerootTown_BrendansHouse_2F.inc"
+ .include "data/maps/events/LittlerootTown_MaysHouse_1F.inc"
+ .include "data/maps/events/LittlerootTown_MaysHouse_2F.inc"
+ .include "data/maps/events/LittlerootTown_ProfessorBirchsLab.inc"
+ .include "data/maps/events/OldaleTown_House1.inc"
+ .include "data/maps/events/OldaleTown_House2.inc"
+ .include "data/maps/events/OldaleTown_PokemonCenter_1F.inc"
+ .include "data/maps/events/OldaleTown_PokemonCenter_2F.inc"
+ .include "data/maps/events/OldaleTown_Mart.inc"
+ .include "data/maps/events/DewfordTown_House1.inc"
+ .include "data/maps/events/DewfordTown_PokemonCenter_1F.inc"
+ .include "data/maps/events/DewfordTown_PokemonCenter_2F.inc"
+ .include "data/maps/events/DewfordTown_Gym.inc"
+ .include "data/maps/events/DewfordTown_Hall.inc"
+ .include "data/maps/events/DewfordTown_House2.inc"
+ .include "data/maps/events/LavaridgeTown_HerbShop.inc"
+ .include "data/maps/events/LavaridgeTown_Gym_1F.inc"
+ .include "data/maps/events/LavaridgeTown_Gym_B1F.inc"
+ .include "data/maps/events/LavaridgeTown_House.inc"
+ .include "data/maps/events/LavaridgeTown_Mart.inc"
+ .include "data/maps/events/LavaridgeTown_PokemonCenter_1F.inc"
+ .include "data/maps/events/LavaridgeTown_PokemonCenter_2F.inc"
+ .include "data/maps/events/FallarborTown_Mart.inc"
+ .include "data/maps/events/FallarborTown_ContestLobby.inc"
+ .include "data/maps/events/FallarborTown_ContestHall.inc"
+ .include "data/maps/events/FallarborTown_PokemonCenter_1F.inc"
+ .include "data/maps/events/FallarborTown_PokemonCenter_2F.inc"
+ .include "data/maps/events/FallarborTown_House1.inc"
+ .include "data/maps/events/FallarborTown_House2.inc"
+ .include "data/maps/events/VerdanturfTown_ContestLobby.inc"
+ .include "data/maps/events/VerdanturfTown_ContestHall.inc"
+ .include "data/maps/events/VerdanturfTown_Mart.inc"
+ .include "data/maps/events/VerdanturfTown_PokemonCenter_1F.inc"
+ .include "data/maps/events/VerdanturfTown_PokemonCenter_2F.inc"
+ .include "data/maps/events/VerdanturfTown_WandasHouse.inc"
+ .include "data/maps/events/VerdanturfTown_FriendshipRatersHouse.inc"
+ .include "data/maps/events/VerdanturfTown_House.inc"
+ .include "data/maps/events/PacifidlogTown_PokemonCenter_1F.inc"
+ .include "data/maps/events/PacifidlogTown_PokemonCenter_2F.inc"
+ .include "data/maps/events/PacifidlogTown_House1.inc"
+ .include "data/maps/events/PacifidlogTown_House2.inc"
+ .include "data/maps/events/PacifidlogTown_House3.inc"
+ .include "data/maps/events/PacifidlogTown_House4.inc"
+ .include "data/maps/events/PacifidlogTown_House5.inc"
+ .include "data/maps/events/PetalburgCity_WallysHouse.inc"
+ .include "data/maps/events/PetalburgCity_Gym.inc"
+ .include "data/maps/events/PetalburgCity_House1.inc"
+ .include "data/maps/events/PetalburgCity_House2.inc"
+ .include "data/maps/events/PetalburgCity_PokemonCenter_1F.inc"
+ .include "data/maps/events/PetalburgCity_PokemonCenter_2F.inc"
+ .include "data/maps/events/PetalburgCity_Mart.inc"
+ .include "data/maps/events/SlateportCity_SternsShipyard_1F.inc"
+ .include "data/maps/events/SlateportCity_SternsShipyard_2F.inc"
+ .include "data/maps/events/SlateportCity_ContestLobby.inc"
+ .include "data/maps/events/SlateportCity_ContestHall.inc"
+ .include "data/maps/events/SlateportCity_House1.inc"
+ .include "data/maps/events/SlateportCity_PokemonFanClub.inc"
+ .include "data/maps/events/SlateportCity_OceanicMuseum_1F.inc"
+ .include "data/maps/events/SlateportCity_OceanicMuseum_2F.inc"
+ .include "data/maps/events/SlateportCity_Harbor.inc"
+ .include "data/maps/events/SlateportCity_House2.inc"
+ .include "data/maps/events/SlateportCity_PokemonCenter_1F.inc"
+ .include "data/maps/events/SlateportCity_PokemonCenter_2F.inc"
+ .include "data/maps/events/SlateportCity_Mart.inc"
+ .include "data/maps/events/MauvilleCity_Gym.inc"
+ .include "data/maps/events/MauvilleCity_BikeShop.inc"
+ .include "data/maps/events/MauvilleCity_House1.inc"
+ .include "data/maps/events/MauvilleCity_GameCorner.inc"
+ .include "data/maps/events/MauvilleCity_House2.inc"
+ .include "data/maps/events/MauvilleCity_PokemonCenter_1F.inc"
+ .include "data/maps/events/MauvilleCity_PokemonCenter_2F.inc"
+ .include "data/maps/events/MauvilleCity_Mart.inc"
+ .include "data/maps/events/RustboroCity_DevonCorp_1F.inc"
+ .include "data/maps/events/RustboroCity_DevonCorp_2F.inc"
+ .include "data/maps/events/RustboroCity_DevonCorp_3F.inc"
+ .include "data/maps/events/RustboroCity_Gym.inc"
+ .include "data/maps/events/RustboroCity_PokemonSchool.inc"
+ .include "data/maps/events/RustboroCity_PokemonCenter_1F.inc"
+ .include "data/maps/events/RustboroCity_PokemonCenter_2F.inc"
+ .include "data/maps/events/RustboroCity_Mart.inc"
+ .include "data/maps/events/RustboroCity_Flat1_1F.inc"
+ .include "data/maps/events/RustboroCity_Flat1_2F.inc"
+ .include "data/maps/events/RustboroCity_House1.inc"
+ .include "data/maps/events/RustboroCity_CuttersHouse.inc"
+ .include "data/maps/events/RustboroCity_House2.inc"
+ .include "data/maps/events/RustboroCity_Flat2_1F.inc"
+ .include "data/maps/events/RustboroCity_Flat2_2F.inc"
+ .include "data/maps/events/RustboroCity_Flat2_3F.inc"
+ .include "data/maps/events/RustboroCity_House3.inc"
+ .include "data/maps/events/FortreeCity_House1.inc"
+ .include "data/maps/events/FortreeCity_Gym.inc"
+ .include "data/maps/events/FortreeCity_PokemonCenter_1F.inc"
+ .include "data/maps/events/FortreeCity_PokemonCenter_2F.inc"
+ .include "data/maps/events/FortreeCity_Mart.inc"
+ .include "data/maps/events/FortreeCity_House2.inc"
+ .include "data/maps/events/FortreeCity_House3.inc"
+ .include "data/maps/events/FortreeCity_House4.inc"
+ .include "data/maps/events/FortreeCity_House5.inc"
+ .include "data/maps/events/FortreeCity_DecorationShop.inc"
+ .include "data/maps/events/LilycoveCity_CoveLilyMotel_1F.inc"
+ .include "data/maps/events/LilycoveCity_CoveLilyMotel_2F.inc"
+ .include "data/maps/events/LilycoveCity_LilycoveMuseum_1F.inc"
+ .include "data/maps/events/LilycoveCity_LilycoveMuseum_2F.inc"
+ .include "data/maps/events/LilycoveCity_ContestLobby.inc"
+ .include "data/maps/events/LilycoveCity_ContestHall.inc"
+ .include "data/maps/events/LilycoveCity_PokemonCenter_1F.inc"
+ .include "data/maps/events/LilycoveCity_PokemonCenter_2F.inc"
+ .include "data/maps/events/LilycoveCity_UnusedMart.inc"
+ .include "data/maps/events/LilycoveCity_PokemonTrainerFanClub.inc"
+ .include "data/maps/events/LilycoveCity_Harbor.inc"
+ .include "data/maps/events/LilycoveCity_EmptyMap.inc"
+ .include "data/maps/events/LilycoveCity_MoveDeletersHouse.inc"
+ .include "data/maps/events/LilycoveCity_House1.inc"
+ .include "data/maps/events/LilycoveCity_House2.inc"
+ .include "data/maps/events/LilycoveCity_House3.inc"
+ .include "data/maps/events/LilycoveCity_House4.inc"
+ .include "data/maps/events/LilycoveCity_DepartmentStore_1F.inc"
+ .include "data/maps/events/LilycoveCity_DepartmentStore_2F.inc"
+ .include "data/maps/events/LilycoveCity_DepartmentStore_3F.inc"
+ .include "data/maps/events/LilycoveCity_DepartmentStore_4F.inc"
+ .include "data/maps/events/LilycoveCity_DepartmentStore_5F.inc"
+ .include "data/maps/events/LilycoveCity_DepartmentStoreRooftop.inc"
+ .include "data/maps/events/LilycoveCity_DepartmentStoreElevator.inc"
+ .include "data/maps/events/MossdeepCity_Gym.inc"
+ .include "data/maps/events/MossdeepCity_House1.inc"
+ .include "data/maps/events/MossdeepCity_House2.inc"
+ .include "data/maps/events/MossdeepCity_PokemonCenter_1F.inc"
+ .include "data/maps/events/MossdeepCity_PokemonCenter_2F.inc"
+ .include "data/maps/events/MossdeepCity_Mart.inc"
+ .include "data/maps/events/MossdeepCity_House3.inc"
+ .include "data/maps/events/MossdeepCity_StevensHouse.inc"
+ .include "data/maps/events/MossdeepCity_House4.inc"
+ .include "data/maps/events/MossdeepCity_SpaceCenter_1F.inc"
+ .include "data/maps/events/MossdeepCity_SpaceCenter_2F.inc"
+ .include "data/maps/events/MossdeepCity_GameCorner_1F.inc"
+ .include "data/maps/events/MossdeepCity_GameCorner_B1F.inc"
+ .include "data/maps/events/SootopolisCity_Gym_1F.inc"
+ .include "data/maps/events/SootopolisCity_Gym_B1F.inc"
+ .include "data/maps/events/SootopolisCity_PokemonCenter_1F.inc"
+ .include "data/maps/events/SootopolisCity_PokemonCenter_2F.inc"
+ .include "data/maps/events/SootopolisCity_Mart.inc"
+ .include "data/maps/events/SootopolisCity_House1.inc"
+ .include "data/maps/events/SootopolisCity_House2.inc"
+ .include "data/maps/events/SootopolisCity_House3.inc"
+ .include "data/maps/events/SootopolisCity_House4.inc"
+ .include "data/maps/events/SootopolisCity_House5.inc"
+ .include "data/maps/events/SootopolisCity_House6.inc"
+ .include "data/maps/events/SootopolisCity_House7.inc"
+ .include "data/maps/events/SootopolisCity_House8.inc"
+ .include "data/maps/events/EverGrandeCity_SidneysRoom.inc"
+ .include "data/maps/events/EverGrandeCity_PhoebesRoom.inc"
+ .include "data/maps/events/EverGrandeCity_GlaciasRoom.inc"
+ .include "data/maps/events/EverGrandeCity_DrakesRoom.inc"
+ .include "data/maps/events/EverGrandeCity_ChampionsRoom.inc"
+ .include "data/maps/events/EverGrandeCity_Corridor1.inc"
+ .include "data/maps/events/EverGrandeCity_Corridor2.inc"
+ .include "data/maps/events/EverGrandeCity_Corridor3.inc"
+ .include "data/maps/events/EverGrandeCity_Corridor4.inc"
+ .include "data/maps/events/EverGrandeCity_Corridor5.inc"
+ .include "data/maps/events/EverGrandeCity_PokemonLeague.inc"
+ .include "data/maps/events/EverGrandeCity_HallOfFame.inc"
+ .include "data/maps/events/EverGrandeCity_PokemonCenter_1F.inc"
+ .include "data/maps/events/EverGrandeCity_PokemonCenter_2F.inc"
+ .include "data/maps/events/Route104_MrBrineysHouse.inc"
+ .include "data/maps/events/Route104_PrettyPetalFlowerShop.inc"
+ .include "data/maps/events/Route111_WinstrateFamilysHouse.inc"
+ .include "data/maps/events/Route111_OldLadysRestStop.inc"
+ .include "data/maps/events/Route112_CableCarStation.inc"
+ .include "data/maps/events/MtChimney_CableCarStation.inc"
+ .include "data/maps/events/Route114_FossilManiacsHouse.inc"
+ .include "data/maps/events/Route114_FossilManiacsTunnel.inc"
+ .include "data/maps/events/Route114_LanettesHouse.inc"
+ .include "data/maps/events/Route116_TunnelersRestHouse.inc"
+ .include "data/maps/events/Route117_PokemonDayCare.inc"
+ .include "data/maps/events/Route121_SafariZoneEntrance.inc"
+ .include "data/maps/events/MeteorFalls_1F_1R.inc"
+ .include "data/maps/events/MeteorFalls_1F_2R.inc"
+ .include "data/maps/events/MeteorFalls_B1F_1R.inc"
+ .include "data/maps/events/MeteorFalls_B1F_2R.inc"
+ .include "data/maps/events/RusturfTunnel.inc"
+ .include "data/maps/events/Underwater_SootopolisCity.inc"
+ .include "data/maps/events/DesertRuins.inc"
+ .include "data/maps/events/GraniteCave_1F.inc"
+ .include "data/maps/events/GraniteCave_B1F.inc"
+ .include "data/maps/events/GraniteCave_B2F.inc"
+ .include "data/maps/events/GraniteCave_StevensRoom.inc"
+ .include "data/maps/events/PetalburgWoods.inc"
+ .include "data/maps/events/MtChimney.inc"
+ .include "data/maps/events/JaggedPass.inc"
+ .include "data/maps/events/FieryPath.inc"
+ .include "data/maps/events/MtPyre_1F.inc"
+ .include "data/maps/events/MtPyre_2F.inc"
+ .include "data/maps/events/MtPyre_3F.inc"
+ .include "data/maps/events/MtPyre_4F.inc"
+ .include "data/maps/events/MtPyre_5F.inc"
+ .include "data/maps/events/MtPyre_6F.inc"
+ .include "data/maps/events/MtPyre_Exterior.inc"
+ .include "data/maps/events/MtPyre_Summit.inc"
+ .include "data/maps/events/AquaHideout_1F.inc"
+ .include "data/maps/events/AquaHideout_B1F.inc"
+ .include "data/maps/events/AquaHideout_B2F.inc"
+ .include "data/maps/events/Underwater_SeafloorCavern.inc"
+ .include "data/maps/events/SeafloorCavern_Entrance.inc"
+ .include "data/maps/events/SeafloorCavern_Room1.inc"
+ .include "data/maps/events/SeafloorCavern_Room2.inc"
+ .include "data/maps/events/SeafloorCavern_Room3.inc"
+ .include "data/maps/events/SeafloorCavern_Room4.inc"
+ .include "data/maps/events/SeafloorCavern_Room5.inc"
+ .include "data/maps/events/SeafloorCavern_Room6.inc"
+ .include "data/maps/events/SeafloorCavern_Room7.inc"
+ .include "data/maps/events/SeafloorCavern_Room8.inc"
+ .include "data/maps/events/SeafloorCavern_Room9.inc"
+ .include "data/maps/events/CaveOfOrigin_Entrance.inc"
+ .include "data/maps/events/CaveOfOrigin_1F.inc"
+ .include "data/maps/events/CaveOfOrigin_B1F.inc"
+ .include "data/maps/events/CaveOfOrigin_B2F.inc"
+ .include "data/maps/events/CaveOfOrigin_B3F.inc"
+ .include "data/maps/events/CaveOfOrigin_B4F.inc"
+ .include "data/maps/events/VictoryRoad_1F.inc"
+ .include "data/maps/events/VictoryRoad_B1F.inc"
+ .include "data/maps/events/VictoryRoad_B2F.inc"
+ .include "data/maps/events/ShoalCave_LowTideEntranceRoom.inc"
+ .include "data/maps/events/ShoalCave_LowTideInnerRoom.inc"
+ .include "data/maps/events/ShoalCave_LowTideStairsRoom.inc"
+ .include "data/maps/events/ShoalCave_LowTideLowerRoom.inc"
+ .include "data/maps/events/ShoalCave_HighTideEntranceRoom.inc"
+ .include "data/maps/events/ShoalCave_HighTideInnerRoom.inc"
+ .include "data/maps/events/NewMauville_Entrance.inc"
+ .include "data/maps/events/NewMauville_Inside.inc"
+ .include "data/maps/events/AbandonedShip_Deck.inc"
+ .include "data/maps/events/AbandonedShip_Corridors_1F.inc"
+ .include "data/maps/events/AbandonedShip_Rooms_1F.inc"
+ .include "data/maps/events/AbandonedShip_Corridors_B1F.inc"
+ .include "data/maps/events/AbandonedShip_Rooms_B1F.inc"
+ .include "data/maps/events/AbandonedShip_Rooms2_B1F.inc"
+ .include "data/maps/events/AbandonedShip_Underwater1.inc"
+ .include "data/maps/events/AbandonedShip_Room_B1F.inc"
+ .include "data/maps/events/AbandonedShip_Rooms2_1F.inc"
+ .include "data/maps/events/AbandonedShip_CaptainsOffice.inc"
+ .include "data/maps/events/AbandonedShip_Underwater2.inc"
+ .include "data/maps/events/AbandonedShip_HiddenFloorCorridors.inc"
+ .include "data/maps/events/AbandonedShip_HiddenFloorRooms.inc"
+ .include "data/maps/events/IslandCave.inc"
+ .include "data/maps/events/AncientTomb.inc"
+ .include "data/maps/events/Underwater_Route134.inc"
+ .include "data/maps/events/Underwater_SealedChamber.inc"
+ .include "data/maps/events/SealedChamber_OuterRoom.inc"
+ .include "data/maps/events/SealedChamber_InnerRoom.inc"
+ .include "data/maps/events/ScorchedSlab.inc"
+ .include "data/maps/events/MagmaHideout_1F.inc"
+ .include "data/maps/events/MagmaHideout_B1F.inc"
+ .include "data/maps/events/MagmaHideout_B2F.inc"
+ .include "data/maps/events/SkyPillar_Entrance.inc"
+ .include "data/maps/events/SkyPillar_Outside.inc"
+ .include "data/maps/events/SkyPillar_1F.inc"
+ .include "data/maps/events/SkyPillar_2F.inc"
+ .include "data/maps/events/SkyPillar_3F.inc"
+ .include "data/maps/events/SkyPillar_4F.inc"
+ .include "data/maps/events/ShoalCave_LowTideIceRoom.inc"
+ .include "data/maps/events/SkyPillar_5F.inc"
+ .include "data/maps/events/SkyPillar_Top.inc"
+ .include "data/maps/events/SecretBase_RedCave1.inc"
+ .include "data/maps/events/SecretBase_BrownCave1.inc"
+ .include "data/maps/events/SecretBase_BlueCave1.inc"
+ .include "data/maps/events/SecretBase_YellowCave1.inc"
+ .include "data/maps/events/SecretBase_Tree1.inc"
+ .include "data/maps/events/SecretBase_Shrub1.inc"
+ .include "data/maps/events/SecretBase_RedCave2.inc"
+ .include "data/maps/events/SecretBase_BrownCave2.inc"
+ .include "data/maps/events/SecretBase_BlueCave2.inc"
+ .include "data/maps/events/SecretBase_YellowCave2.inc"
+ .include "data/maps/events/SecretBase_Tree2.inc"
+ .include "data/maps/events/SecretBase_Shrub2.inc"
+ .include "data/maps/events/SecretBase_RedCave3.inc"
+ .include "data/maps/events/SecretBase_BrownCave3.inc"
+ .include "data/maps/events/SecretBase_BlueCave3.inc"
+ .include "data/maps/events/SecretBase_YellowCave3.inc"
+ .include "data/maps/events/SecretBase_Tree3.inc"
+ .include "data/maps/events/SecretBase_Shrub3.inc"
+ .include "data/maps/events/SecretBase_RedCave4.inc"
+ .include "data/maps/events/SecretBase_BrownCave4.inc"
+ .include "data/maps/events/SecretBase_BlueCave4.inc"
+ .include "data/maps/events/SecretBase_YellowCave4.inc"
+ .include "data/maps/events/SecretBase_Tree4.inc"
+ .include "data/maps/events/SecretBase_Shrub4.inc"
+ .include "data/maps/events/SingleBattleColosseum.inc"
+ .include "data/maps/events/TradeCenter.inc"
+ .include "data/maps/events/RecordCorner.inc"
+ .include "data/maps/events/DoubleBattleColosseum.inc"
+ .include "data/maps/events/LinkContestRoom1.inc"
+ .include "data/maps/events/LinkContestRoom2.inc"
+ .include "data/maps/events/LinkContestRoom3.inc"
+ .include "data/maps/events/LinkContestRoom4.inc"
+ .include "data/maps/events/LinkContestRoom5.inc"
+ .include "data/maps/events/LinkContestRoom6.inc"
+ .include "data/maps/events/UnknownMap_25_29.inc"
+ .include "data/maps/events/UnknownMap_25_30.inc"
+ .include "data/maps/events/UnknownMap_25_31.inc"
+ .include "data/maps/events/UnknownMap_25_32.inc"
+ .include "data/maps/events/UnknownMap_25_33.inc"
+ .include "data/maps/events/UnknownMap_25_34.inc"
+ .include "data/maps/events/InsideOfTruck.inc"
+ .include "data/maps/events/SSTidalCorridor.inc"
+ .include "data/maps/events/SSTidalLowerDeck.inc"
+ .include "data/maps/events/SSTidalRooms.inc"
+ .include "data/maps/events/SafariZone_Northwest.inc"
+ .include "data/maps/events/SafariZone_Northeast.inc"
+ .include "data/maps/events/SafariZone_Southwest.inc"
+ .include "data/maps/events/SafariZone_Southeast.inc"
+ .include "data/maps/events/BattleTower_Outside.inc"
+ .include "data/maps/events/BattleTower_Lobby.inc"
+ .include "data/maps/events/BattleTower_Elevator.inc"
+ .include "data/maps/events/BattleTower_Corridor.inc"
+ .include "data/maps/events/BattleTower_BattleRoom.inc"
+ .include "data/maps/events/SouthernIsland_Exterior.inc"
+ .include "data/maps/events/SouthernIsland_Interior.inc"
+ .include "data/maps/events/SafariZone_RestHouse.inc"
+ .include "data/maps/events/Route104_Prototype.inc"
+ .include "data/maps/events/Route104_PrototypePrettyPetalFlowerShop.inc"
+ .include "data/maps/events/Route109_SeashoreHouse.inc"
+ .include "data/maps/events/Route110_TrickHouseEntrance.inc"
+ .include "data/maps/events/Route110_TrickHouseEnd.inc"
+ .include "data/maps/events/Route110_TrickHouseCorridor.inc"
+ .include "data/maps/events/Route110_TrickHousePuzzle1.inc"
+ .include "data/maps/events/Route110_TrickHousePuzzle2.inc"
+ .include "data/maps/events/Route110_TrickHousePuzzle3.inc"
+ .include "data/maps/events/Route110_TrickHousePuzzle4.inc"
+ .include "data/maps/events/Route110_TrickHousePuzzle5.inc"
+ .include "data/maps/events/Route110_TrickHousePuzzle6.inc"
+ .include "data/maps/events/Route110_TrickHousePuzzle7.inc"
+ .include "data/maps/events/Route110_TrickHousePuzzle8.inc"
+ .include "data/maps/events/Route110_SeasideCyclingRoadSouthEntrance.inc"
+ .include "data/maps/events/Route110_SeasideCyclingRoadNorthEntrance.inc"
+ .include "data/maps/events/Route113_GlassWorkshop.inc"
+ .include "data/maps/events/Route123_BerryMastersHouse.inc"
+ .include "data/maps/events/Route119_WeatherInstitute_1F.inc"
+ .include "data/maps/events/Route119_WeatherInstitute_2F.inc"
+ .include "data/maps/events/Route119_House.inc"
+Route124_DivingTreasureHuntersHouse_MapObjects:: @ 839300C
+ object_event 1, MAP_OBJ_GFX_MAN_6, 0, 5, 0, 4, 0, 0, 9, 0, 0, 0, 0, 0, 0, Route124_DivingTreasureHuntersHouse_EventScript_163E04, 0, 0, 0
+
+Route124_DivingTreasureHuntersHouse_MapWarps:: @ 8393024
+ warp_def 3, 8, 0, 0, Route124
+ warp_def 4, 8, 0, 0, Route124
+
+Route124_DivingTreasureHuntersHouse_MapBGEvents:: @ 8393034
+ bg_event 7, 1, 0, 0, 0, Route124_DivingTreasureHuntersHouse_EventScript_164335
+
+Route124_DivingTreasureHuntersHouse_MapEvents:: @ 8393040
+ map_events Route124_DivingTreasureHuntersHouse_MapObjects, Route124_DivingTreasureHuntersHouse_MapWarps, 0x0, Route124_DivingTreasureHuntersHouse_MapBGEvents
diff --git a/data/maps.s b/data/maps.s
new file mode 100644
index 000000000..a8074c02a
--- /dev/null
+++ b/data/maps.s
@@ -0,0 +1,10 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+ .include "data/maps/_assets.inc"
+ .include "data/maps/attributes_table.inc"
+ .include "data/maps/headers.inc"
+ .include "data/maps/_groups.inc"
+ .include "data/maps/connections.inc"
diff --git a/data/matsuda_debug_menu.s b/data/matsuda_debug_menu.s
new file mode 100644
index 000000000..b7da90fd4
--- /dev/null
+++ b/data/matsuda_debug_menu.s
@@ -0,0 +1,182 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+@ 83C9150
+ .string "テストです$" @ "test"
+
+gMatsudaDebugMenu_ActionContestText:
+ .string "Contest$"
+
+gMatsudaDebugMenu_ActionContestResultsText:
+ .string "Contest results$"
+ .string "パラメータへんこう$" @ "Change parameter"
+ .string "わざ へんこう$" @ "Change move"
+
+gMatsudaDebugMenu_ActionContestCommText:
+ .string "Contest (comm.)$"
+
+gMatsudaDebugMenu_ActionCommTestText:
+ .string "Init comm. data$"
+
+gMatsudaDebugMenu_ActionSetHighScoreText:
+ .string "Set highest score$"
+
+gMatsudaDebugMenu_ActionResetHighScoreText:
+ .string "Reset highest score$"
+
+gMatsudaDebugMenu_ActionSetAllArtMuseumText:
+ .string "Set all art museum items$"
+
+ .align 2
+gMatsudaDebugMenuActions:: @ 83C91F0
+ .4byte gMatsudaDebugMenu_ActionContestText, MatsudaDebugMenu_Contest
+ .4byte gMatsudaDebugMenu_ActionContestResultsText, MatsudaDebugMenu_ContestResults
+ .4byte gMatsudaDebugMenu_ActionContestCommText, MatsudaDebugMenu_ContestComm
+ .4byte gMatsudaDebugMenu_ActionCommTestText, MatsudaDebugMenu_CommTest
+ .4byte gMatsudaDebugMenu_ActionSetHighScoreText, MatsudaDebugMenu_SetHighScore
+ .4byte gMatsudaDebugMenu_ActionResetHighScoreText, MatsudaDebugMenu_ResetHighScore
+ .4byte gMatsudaDebugMenu_ActionSetAllArtMuseumText, MatsudaDebugMenu_SetArtMuseumItems
+
+gMatsudaDebugMenu_UnknownByteArray:: @ 83C9228
+ .byte 0xFC, 0x02, 0x0F, 0x00, 0xFF
+
+Unknown_083C922D:
+ .incbin "graphics/unknown/ball.4bpp"
+
+ .align 1
+Unknown_083C924E:
+ .incbin "graphics/unknown/ball.gbapal"
+
+gUnknown_083C926E:: @ 83C926E
+ .incbin "baserom.gba", 0x003c926e, 0x8
+
+gMatsudaDebugMenuContestTopLeft:: @ 83C9276
+ .byte 0, 6
+ .byte 15, 6
+ .byte 0, 8
+ .byte 15, 8
+ .byte 0, 10
+ .byte 15, 10
+
+gUnknown_083C9282:: @ 83C9282
+ .incbin "baserom.gba", 0x003c9282, 0xc
+
+gUnknown_083C928E:: @ 83C928E
+ .incbin "baserom.gba", 0x003c928e, 0x8
+
+gUnknown_083C9296:: @ 83C9296
+ .byte 0x08, 0x80, 0x08, 0x80, 0x10, 0x10, 0x30, 0xA8, 0x30, 0xA8, 0x30, 0xA8, 0x08, 0x80, 0x08, 0x80, 0x10, 0x88
+
+gUnknown_083C92A8:: @ 83C92A8
+ .byte 0x08, 0x18, 0x28, 0x38, 0x48, 0x58, 0x78, 0x88, 0x98
+
+ .align 2
+gUnknown_083C92B4:: @ 83C92B4
+ obj_tiles Unknown_083C922D, 32, 0x04b0
+
+ .align 2
+gUnknown_083C92BC:: @ 83C92BC
+ obj_pal Unknown_083C924E, 0x04B0
+
+ .align 2
+gOamData_83C92C4:: @ 83C92C4
+ .2byte 0x0000
+ .2byte 0x0000
+ .2byte 0x0000
+
+ .align 2
+gSpriteTemplate_83C92CC:: @ 83C92CC
+ spr_template 1200, 1200, gOamData_83C92C4, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80AA754
+
+ .align 2
+gUnknown_083C92E4:: @ 83C92E4
+ .4byte sub_80AA8C8
+ .4byte sub_80AA8D8
+ .4byte sub_80AA8E8
+ .4byte sub_80AA8F8
+ .4byte sub_80AAC5C
+ .4byte sub_80AAC5C
+ .4byte sub_80AA930
+ .4byte sub_80AA974
+ .4byte sub_80AA9B8
+ .4byte sub_80AA9FC
+ .4byte sub_80AAA40
+ .4byte sub_80AAA84
+ .4byte sub_80AAAF0
+ .4byte sub_80AAB30
+ .4byte sub_80AAB70
+ .4byte sub_80AABB0
+ .4byte sub_80AABF0
+ .4byte sub_80AAD44
+
+gMatsudaDebugMenu_StartText:: @ 83C932C
+ .string "{COLOR CYAN}{HIGHLIGHT RED}$"
+ .string "かいし$" @ Start
+
+gMatsudaDebugMenu_GoBackText:: @ 83C9337
+ .string "もどる$" @ Go Back
+
+gMatsudaDebugMenu_BattlePointsText:: @ 83C933B
+ .string "{COLOR MAGENTA}BP.$"
+
+MatsudaDebugMenuText_Cool:
+ .string "かっこよさ$" @ coolness
+MatsudaDebugMenuText_Cute:
+ .string "かわいさ$" @ cuteness
+MatsudaDebugMenuText_Beauty:
+ .string "うつくしさ$" @ beauty
+MatsudaDebugMenuText_Smart:
+ .string "かしこさ$" @ smartness
+MatsudaDebugMenuText_Tough:
+ .string "たくましさ$" @ toughness
+MatsudaDebugMenuText_Sheen:
+ .string "けづや$" @ sheen
+
+ .align 2
+gMatsudaDebugMenuTextList1:: @ 83C9364
+ .4byte MatsudaDebugMenuText_Cool
+ .4byte MatsudaDebugMenuText_Cute
+ .4byte MatsudaDebugMenuText_Beauty
+ .4byte MatsudaDebugMenuText_Smart
+ .4byte MatsudaDebugMenuText_Tough
+ .4byte MatsudaDebugMenuText_Sheen
+
+MatsudaDebugMenuText_CoolContest:
+ .string "かっこよさコンテスト$" @ Cool Contest
+MatsudaDebugMenuText_BeautyContest:
+ .string "うつくしさコンテスト$" @ Beauty Contest
+MatsudaDebugMenuText_CuteContest:
+ .string "かわいさコンテスト $" @ Cute Contest
+MatsudaDebugMenuText_SmartContest:
+ .string "かしこさコンテスト $" @ Smart Contest
+MatsudaDebugMenuText_ToughContest:
+ .string "たくましさコンテスト$" @ Tough Contest
+
+ .align 2
+gMatsudaDebugMenuTextList2:: @ 83C93B4
+ .4byte MatsudaDebugMenuText_CoolContest
+ .4byte MatsudaDebugMenuText_BeautyContest
+ .4byte MatsudaDebugMenuText_CuteContest
+ .4byte MatsudaDebugMenuText_SmartContest
+ .4byte MatsudaDebugMenuText_ToughContest
+
+MatsudaDebugMenuText_Fallarbor:
+ .string "ハジツゲ/ノーマル$" @ Fallarbor / Normal
+MatsudaDebugMenuText_Verdanturf:
+ .string "シダケ/スーパー $" @ Verdanturf / Super
+MatsudaDebugMenuText_Slateport:
+ .string "カイナ/ハイパー $" @ Slateport / Hyper
+MatsudaDebugMenuText_Lilycove:
+ .string "ミナモ/マスター $" @ Lilycove / Master
+
+ .align 2
+gMatsudaDebugMenuTextList3:: @ 83C93F0
+ .4byte MatsudaDebugMenuText_Fallarbor @ Normal
+ .4byte MatsudaDebugMenuText_Verdanturf @ Super
+ .4byte MatsudaDebugMenuText_Slateport @ Hyper
+ .4byte MatsudaDebugMenuText_Lilycove @ Master
+
+gUnknown_083C9400:: @ 83C9400
+ .incbin "baserom.gba", 0x003c9400, 0x8
diff --git a/data/mauville_old_man.s b/data/mauville_old_man.s
new file mode 100644
index 000000000..27ea5f311
--- /dev/null
+++ b/data/mauville_old_man.s
@@ -0,0 +1,76 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+gUnknown_083E537C:: @ 83E537C
+ .incbin "baserom.gba", 0x003e537c, 0xc
+
+ .align 2
+gUnknown_083E5388:: @ 83E5388
+ .4byte OtherText_SoPretty
+ .4byte OtherText_SoDarling
+ .4byte OtherText_SoRelaxed
+ .4byte OtherText_SoSunny
+ .4byte OtherText_SoDesirable
+ .4byte OtherText_SoExciting
+ .4byte OtherText_SoAmusing
+ .4byte OtherText_SoMagical
+
+ .align 2
+gUnknown_083E53A8:: @ 83E53A8
+ .4byte OtherText_WantVacationNicePlace
+ .4byte OtherText_BoughtCrayonsIsNice
+ .4byte OtherText_IfWeCouldFloat
+ .4byte OtherText_SandWashesAwayMakeSad
+ .4byte OtherText_WhatsBottomSeaLike
+ .4byte OtherText_SeeSettingSun
+ .4byte OtherText_LyingInGreenGrass
+ .4byte OtherText_SecretBasesWonderful
+
+gUnknown_083E53C8:: @ 83E53C8
+ .incbin "baserom.gba", 0x003e53c8, 0x18
+
+ .align 2
+gUnknown_083E53E0:: @ 83E53E0
+ .4byte 0x132, UnknownString_81AEFFC, UnknownString_81AF013, UnknownString_81AF022
+ .4byte 0x102, UnknownString_81AF0A3, UnknownString_81AF0BB, UnknownString_81AF0CA
+ .4byte 0x103, UnknownString_81AF149, UnknownString_81AF164, UnknownString_81AF174
+ .4byte 0x104, UnknownString_81AF1E5, UnknownString_81AF1FD, UnknownString_81AF20A
+ .4byte 0x106, UnknownString_81AF281, UnknownString_81AF299, UnknownString_81AF2A9
+ .4byte 0x109, UnknownString_81AF32C, UnknownString_81AF345, UnknownString_81AF34D
+ .4byte 0x10b, UnknownString_81AF3D0, UnknownString_81AF3ED, UnknownString_81AF3FC
+ .4byte 0x10c, UnknownString_81AF46D, UnknownString_81AF481, UnknownString_81AF49B
+ .4byte 0x10d, UnknownString_81AF511, UnknownString_81AF529, UnknownString_81AF536
+ .4byte 0x10e, UnknownString_81AF5A9, UnknownString_81AF5BD, UnknownString_81AF5CD
+ .4byte 0x10f, UnknownString_81AF63F, UnknownString_81AF661, UnknownString_81AF676
+ .4byte 0x110, UnknownString_81AF711, UnknownString_81AF726, UnknownString_81AF73D
+ .4byte 0x111, UnknownString_81AF7BF, UnknownString_81AF7D9, UnknownString_81AF7F1
+ .4byte 0x112, UnknownString_81AF88A, UnknownString_81AF8A1, UnknownString_81AF8AA
+ .4byte 0x113, UnknownString_81AF91B, UnknownString_81AF935, UnknownString_81AF943
+ .4byte 0x114, UnknownString_81AF9C8, UnknownString_81AF9E0, UnknownString_81AF9F6
+ .4byte 0x11a, UnknownString_81AFA79, UnknownString_81AFA92, UnknownString_81AFA9E
+ .4byte 0x11b, UnknownString_81AFB17, UnknownString_81AFB2D, UnknownString_81AFB48
+ .4byte 0x11c, UnknownString_81AFBD8, UnknownString_81AFBE7, UnknownString_81AFC04
+ .4byte 0x21d, UnknownString_81AFC8A, UnknownString_81AFC9D, UnknownString_81AFCBE
+ .4byte 0x11e, UnknownString_81AFD44, UnknownString_81AFD60, UnknownString_81AFD80
+ .4byte 0x121, UnknownString_81AFE1D, UnknownString_81AFE36, UnknownString_81AFE42
+ .4byte 0x124, UnknownString_81AFEC2, UnknownString_81AFEDD, UnknownString_81AFEEE
+ .4byte 0x125, UnknownString_81AFF68, UnknownString_81AFF7B, UnknownString_81AFF88
+ .4byte 0x126, UnknownString_81AFFFB, UnknownString_81B000D, UnknownString_81B0015
+ .4byte 0x127, UnknownString_81B009D, UnknownString_81B00B6, UnknownString_81B00C9
+ .4byte 0x128, UnknownString_81B014D, UnknownString_81B0165, UnknownString_81B0173
+ .4byte 0x129, UnknownString_81B01E9, UnknownString_81B0201, UnknownString_81B0213
+ .4byte 0x12a, UnknownString_81B0290, UnknownString_81B02A5, UnknownString_81B02B6
+ .4byte 0x12b, UnknownString_81B0337, UnknownString_81B0351, UnknownString_81B0364
+ .4byte 0x12c, UnknownString_81B03E9, UnknownString_81B0401, UnknownString_81B040C
+ .4byte 0x12d, UnknownString_81B046E, UnknownString_81B0489, UnknownString_81B049A
+ .4byte 0x12e, UnknownString_81B0523, UnknownString_81B053E, UnknownString_81B0554
+ .4byte 0x12f, UnknownString_81B05D8, UnknownString_81B05F3, UnknownString_81B0610
+ .4byte 0x130, UnknownString_81B06A9, UnknownString_81B06C6, UnknownString_81B06D9
+
+gUnknown_083E5610:: @ 83E5610
+ .4byte 0x131, UnknownString_81B0763, UnknownString_81B0781, UnknownString_81B0797
+
+gUnknown_083E5620:: @ 83E5620
+ .incbin "baserom.gba", 0x003e5620, 0xc
diff --git a/data/menu_cursor.s b/data/menu_cursor.s
new file mode 100644
index 000000000..80d7e1210
--- /dev/null
+++ b/data/menu_cursor.s
@@ -0,0 +1,302 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+ .align 2
+OutlineCursorTiles_00:
+ .incbin "graphics/interface/outline_cursor_00.4bpp"
+
+ .align 2
+OutlineCursorTiles_01:
+ .incbin "graphics/interface/outline_cursor_01.4bpp"
+
+ .align 2
+OutlineCursorTiles_02:
+ .incbin "graphics/interface/outline_cursor_02.4bpp"
+
+ .align 2
+OutlineCursorTiles_03:
+ .incbin "graphics/interface/outline_cursor_03.4bpp"
+
+ .align 2
+OutlineCursorTiles_04:
+ .incbin "graphics/interface/outline_cursor_04.4bpp"
+
+ .align 2
+OutlineCursorTiles_05:
+ .incbin "graphics/interface/outline_cursor_05.4bpp"
+
+ .align 2
+OutlineCursorTiles_06:
+ .incbin "graphics/interface/outline_cursor_06.4bpp"
+
+ .align 2
+OutlineCursorTiles_07:
+ .incbin "graphics/interface/outline_cursor_07.4bpp"
+
+ .align 2
+OutlineCursorTiles_08:
+ .incbin "graphics/interface/outline_cursor_08.4bpp"
+
+ .align 2
+OutlineCursorTiles_09:
+ .incbin "graphics/interface/outline_cursor_09.4bpp"
+
+ .align 2
+OutlineCursorTiles_10:
+ .incbin "graphics/interface/outline_cursor_10.4bpp"
+
+ .align 2
+OutlineCursorTiles_11:
+ .incbin "graphics/interface/outline_cursor_11.4bpp"
+
+ .align 2
+OutlineCursorTiles_12:
+ .incbin "graphics/interface/outline_cursor_12.4bpp"
+
+ .align 2
+OutlineCursorTiles_13:
+ .incbin "graphics/interface/outline_cursor_13.4bpp"
+
+ .align 2
+OutlineCursorTiles_14:
+ .incbin "graphics/interface/outline_cursor_14.4bpp"
+
+ .align 2
+OutlineCursorTiles_15:
+ .incbin "graphics/interface/outline_cursor_15.4bpp"
+
+ .align 2
+gOamData_842F11C:: @ 842F11C
+ .2byte 0x8000
+ .2byte 0x0000
+ .2byte 0x0000
+
+ .align 2
+gOamData_842F124:: @ 842F124
+ .2byte 0x8800
+ .2byte 0x0000
+ .2byte 0x0000
+
+ .align 2
+gOamData_842F12C:: @ 842F12C
+ .2byte 0x8000
+ .2byte 0x0000
+ .2byte 0x0000
+
+ .align 2
+gSpriteAnim_842F134:: @ 842F134
+ obj_image_anim_frame 0, 63
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_842F13C:: @ 842F13C
+ .4byte gSpriteAnim_842F134
+
+ .align 2
+gUnknown_0842F140:: @ 842F140
+ obj_tiles OutlineCursorTiles_00, 0x1C0, 0xFFF0
+ obj_tiles OutlineCursorTiles_01, 0x1C0, 0xFFF0
+ obj_tiles OutlineCursorTiles_02, 0x1C0, 0xFFF0
+ obj_tiles OutlineCursorTiles_03, 0x1C0, 0xFFF0
+ obj_tiles OutlineCursorTiles_04, 0x1C0, 0xFFF0
+ obj_tiles OutlineCursorTiles_05, 0x1C0, 0xFFF0
+ obj_tiles OutlineCursorTiles_06, 0x1C0, 0xFFF0
+ obj_tiles OutlineCursorTiles_07, 0x1C0, 0xFFF0
+ obj_tiles OutlineCursorTiles_08, 0x1C0, 0xFFF0
+ obj_tiles OutlineCursorTiles_09, 0x1C0, 0xFFF0
+ obj_tiles OutlineCursorTiles_10, 0x1C0, 0xFFF0
+ obj_tiles OutlineCursorTiles_11, 0x1C0, 0xFFF0
+ obj_tiles OutlineCursorTiles_12, 0x1C0, 0xFFF0
+ obj_tiles OutlineCursorTiles_13, 0x1C0, 0xFFF0
+ obj_tiles OutlineCursorTiles_14, 0x1C0, 0xFFF0
+ obj_tiles OutlineCursorTiles_15, 0x1C0, 0xFFF0
+
+ .align 2
+gUnknown_0842F1C0:: @ 842F1C0
+ obj_tiles OutlineCursorTiles_00, 0x1C0, 0xFFF1
+ obj_tiles OutlineCursorTiles_01, 0x1C0, 0xFFF1
+ obj_tiles OutlineCursorTiles_02, 0x1C0, 0xFFF1
+ obj_tiles OutlineCursorTiles_03, 0x1C0, 0xFFF1
+ obj_tiles OutlineCursorTiles_04, 0x1C0, 0xFFF1
+ obj_tiles OutlineCursorTiles_05, 0x1C0, 0xFFF1
+ obj_tiles OutlineCursorTiles_06, 0x1C0, 0xFFF1
+ obj_tiles OutlineCursorTiles_07, 0x1C0, 0xFFF1
+ obj_tiles OutlineCursorTiles_08, 0x1C0, 0xFFF1
+ obj_tiles OutlineCursorTiles_09, 0x1C0, 0xFFF1
+ obj_tiles OutlineCursorTiles_10, 0x1C0, 0xFFF1
+ obj_tiles OutlineCursorTiles_11, 0x1C0, 0xFFF1
+ obj_tiles OutlineCursorTiles_12, 0x1C0, 0xFFF1
+ obj_tiles OutlineCursorTiles_13, 0x1C0, 0xFFF1
+ obj_tiles OutlineCursorTiles_14, 0x1C0, 0xFFF1
+ obj_tiles OutlineCursorTiles_15, 0x1C0, 0xFFF1
+
+ .align 2
+gUnknown_0842F240:: @ 842F240
+ obj_pal 0x0203a360, 0xfff0
+
+ .align 2
+gUnknown_0842F248:: @ 842F248
+ obj_pal 0x0203a360, 0xfff1
+
+ .align 2
+gSpriteTemplate_842F250:: @ 842F250
+ spr_template 65520, 65520, gOamData_842F11C, gSpriteAnimTable_842F13C, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
+
+ .align 2
+gSpriteTemplate_842F268:: @ 842F268
+ spr_template 65520, 0xFFFF, gOamData_842F11C, gSpriteAnimTable_842F13C, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
+
+ .align 2
+gSpriteTemplate_842F280:: @ 842F280
+ spr_template 65520, 0xFFFF, gOamData_842F124, gSpriteAnimTable_842F13C, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
+
+ .align 2
+gSpriteTemplate_842F298:: @ 842F298
+ spr_template 65521, 65521, gOamData_842F12C, gSpriteAnimTable_842F13C, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
+
+ .align 2
+gSpriteTemplate_842F2B0:: @ 842F2B0
+ spr_template 65521, 0xFFFF, gOamData_842F12C, gSpriteAnimTable_842F13C, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
+
+ .align 2
+Unknown_842F2C8: @ 842F2C8
+ .incbin "baserom.gba", 0x0042f2c8, 0x10
+Unknown_842F2D8: @ 842F2D8
+ .incbin "baserom.gba", 0x0042f2d8, 0x18
+Unknown_842F2F0: @ 842F2F0
+ .incbin "baserom.gba", 0x0042f2f0, 0x20
+Unknown_842F310: @ 842F310
+ .incbin "baserom.gba", 0x0042f310, 0x18
+Unknown_842F328: @ 842F328
+ .incbin "baserom.gba", 0x0042f328, 0x18
+Unknown_842F340: @ 842F340
+ .incbin "baserom.gba", 0x0042f340, 0x20
+Unknown_842F360: @ 842F360
+ .incbin "baserom.gba", 0x0042f360, 0x20
+Unknown_842F380: @ 842F380
+ .incbin "baserom.gba", 0x0042f380, 0x20
+Unknown_842F3A0: @ 842F3A0
+ .incbin "baserom.gba", 0x0042f3a0, 0x20
+Unknown_842F3C0: @ 842F3C0
+ .incbin "baserom.gba", 0x0042f3c0, 0x28
+Unknown_842F3E8: @ 842F3E8
+ .incbin "baserom.gba", 0x0042f3e8, 0x28
+Unknown_842F410: @ 842F410
+ .incbin "baserom.gba", 0x0042f410, 0x28
+Unknown_842F438: @ 842F438
+ .incbin "baserom.gba", 0x0042f438, 0x28
+Unknown_842F460: @ 842F460
+ .incbin "baserom.gba", 0x0042f460, 0x30
+Unknown_842F490: @ 842F490
+ .incbin "baserom.gba", 0x0042f490, 0x30
+Unknown_842F4C0: @ 842F4C0
+ .incbin "baserom.gba", 0x0042f4c0, 0x30
+Unknown_842F4F0: @ 842F4F0
+ .incbin "baserom.gba", 0x0042f4f0, 0x30
+Unknown_842F520: @ 842F520
+ .incbin "baserom.gba", 0x0042f520, 0x38
+Unknown_842F558: @ 842F558
+ .incbin "baserom.gba", 0x0042f558, 0x18
+
+ .4byte Unknown_842F2C8
+ .4byte Unknown_842F2C8
+ .4byte Unknown_842F2D8
+ .4byte Unknown_842F2F0
+ .4byte Unknown_842F310
+ .4byte Unknown_842F328
+ .4byte Unknown_842F340
+ .4byte Unknown_842F360
+ .4byte Unknown_842F380
+ .4byte Unknown_842F3A0
+ .4byte Unknown_842F3C0
+ .4byte Unknown_842F3E8
+ .4byte Unknown_842F410
+ .4byte Unknown_842F438
+ .4byte Unknown_842F460
+ .4byte Unknown_842F490
+ .4byte Unknown_842F4C0
+ .4byte Unknown_842F4F0
+ .4byte Unknown_842F520
+
+ .align 2
+gUnknown_0842F5BC:: @ 842F5BC
+ .4byte Unknown_842F558
+
+ .align 2
+gSubspriteTables_842F5C0:: @ 842F5C0
+ .4byte 1, gMenuCursorSubsprites
+ .4byte 1, gMenuCursorSubsprites
+ .4byte 2, gMenuCursorSubsprites
+ .4byte 3, gMenuCursorSubsprites
+ .4byte 4, gMenuCursorSubsprites
+ .4byte 5, gMenuCursorSubsprites
+ .4byte 6, gMenuCursorSubsprites
+ .4byte 7, gMenuCursorSubsprites
+ .4byte 8, gMenuCursorSubsprites
+ .4byte 9, gMenuCursorSubsprites
+ .4byte 10, gMenuCursorSubsprites
+ .4byte 11, gMenuCursorSubsprites
+ .4byte 12, gMenuCursorSubsprites
+ .4byte 13, gMenuCursorSubsprites
+ .4byte 14, gMenuCursorSubsprites
+ .4byte 15, gMenuCursorSubsprites
+ .4byte 1, gMenuCursorSubsprites
+ .4byte 17, gMenuCursorSubsprites
+ .4byte 18, gMenuCursorSubsprites
+ .4byte 19, gMenuCursorSubsprites
+ .4byte 20, gMenuCursorSubsprites
+ .4byte 21, gMenuCursorSubsprites
+ .4byte 22, gMenuCursorSubsprites
+ .4byte 23, gMenuCursorSubsprites
+ .4byte 24, gMenuCursorSubsprites
+ .4byte 25, gMenuCursorSubsprites
+ .4byte 26, gMenuCursorSubsprites
+ .4byte 27, gMenuCursorSubsprites
+ .4byte 28, gMenuCursorSubsprites
+ .4byte 29, gMenuCursorSubsprites
+ .4byte 30, gMenuCursorSubsprites
+ .4byte 31, gMenuCursorSubsprites
+
+ .align 2
+gUnknown_0842F6C0:: @ 842F6C0
+ .4byte 0x2, Unknown_842F2C8
+ .4byte 0x2, Unknown_842F2C8
+ .4byte 0x3, Unknown_842F2D8
+ .4byte 0x4, Unknown_842F2F0
+ .4byte 0x3, Unknown_842F310
+ .4byte 0x3, Unknown_842F328
+ .4byte 0x4, Unknown_842F340
+ .4byte 0x4, Unknown_842F360
+ .4byte 0x4, Unknown_842F380
+ .4byte 0x4, Unknown_842F3A0
+ .4byte 0x5, Unknown_842F3C0
+ .4byte 0x5, Unknown_842F3E8
+ .4byte 0x5, Unknown_842F410
+ .4byte 0x5, Unknown_842F438
+ .4byte 0x6, Unknown_842F460
+ .4byte 0x6, Unknown_842F490
+ .4byte 0x6, Unknown_842F4C0
+ .4byte 0x6, Unknown_842F4F0
+ .4byte 0x7, Unknown_842F520
+
+ .align 2
+gUnknown_0842F758:: @ 842F758
+ .4byte 3, gMenuCursorSubsprites
+ .4byte 0, 2
+ .4byte 0, 66
+ .4byte 0, 105
+ .4byte 0, 34
+
+ .align 2
+gUnknown_0842F780:: @ 842F780
+ .4byte 0, 105
+
+ .align 2
+gUnknown_0842F788:: @ 842F788
+ .4byte 0, 34
+
+ .align 2
+gUnknown_0842F790:: @ 842F790
+ .4byte 0, 66
diff --git a/data/menu_helpers.s b/data/menu_helpers.s
new file mode 100644
index 000000000..b4665af1f
--- /dev/null
+++ b/data/menu_helpers.s
@@ -0,0 +1,102 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+ .align 2
+gSpriteImage_83E5808:: @ 83E5808
+ .incbin "graphics/unknown_sprites/83E59A0/0.4bpp"
+
+ .align 2
+gSpriteImage_83E5848:: @ 83E5848
+ .incbin "graphics/unknown_sprites/83E59A0/1.4bpp"
+
+ .align 2
+gSpriteImage_83E5888:: @ 83E5888
+ .incbin "graphics/unknown_sprites/83E59B0/0.4bpp"
+
+ .align 2
+gSpriteImage_83E58C8:: @ 83E58C8
+ .incbin "graphics/unknown_sprites/83E59B0/1.4bpp"
+
+ .align 2
+gSpriteImage_83E5908:: @ 83E5908
+ .incbin "graphics/unknown_sprites/83E59C0/0.4bpp"
+
+ .align 2
+gSpriteImage_83E5928:: @ 83E5928
+ .incbin "graphics/unknown_sprites/83E59C0/1.4bpp"
+
+ .align 2
+Palette_3E5948: @ 83E5948
+ .incbin "baserom.gba", 0x3e5948, 0x20
+
+ .align 2
+gUnknown_083E5968:: @ 83E5968
+ obj_pal Palette_3E5948, 6
+
+ .align 2
+gOamData_83E5970:: @ 83E5970
+ .2byte 0x0000
+ .2byte 0x0000
+ .2byte 0x0001
+
+ .align 2
+gOamData_83E5978:: @ 83E5978
+ .2byte 0x4000
+ .2byte 0x0000
+ .2byte 0x0001
+
+ .align 2
+gOamData_83E5980:: @ 83E5980
+ .2byte 0x8000
+ .2byte 0x0000
+ .2byte 0x0001
+
+ .align 2
+gSpriteAnim_83E5988:: @ 83E5988
+ obj_image_anim_frame 0, 0
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83E5990:: @ 83E5990
+ obj_image_anim_frame 1, 0
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_83E5998:: @ 83E5998
+ .4byte gSpriteAnim_83E5988
+ .4byte gSpriteAnim_83E5990
+
+ .align 2
+gSpriteImageTable_83E59A0:: @ 83E59A0
+ obj_frame_tiles gSpriteImage_83E5808, 0x40
+ obj_frame_tiles gSpriteImage_83E5848, 0x40
+
+ .align 2
+gSpriteImageTable_83E59B0:: @ 83E59B0
+ obj_frame_tiles gSpriteImage_83E5888, 0x40
+ obj_frame_tiles gSpriteImage_83E58C8, 0x40
+
+ .align 2
+gSpriteImageTable_83E59C0:: @ 83E59C0
+ obj_frame_tiles gSpriteImage_83E5908, 0x20
+ obj_frame_tiles gSpriteImage_83E5928, 0x20
+
+ .align 2
+gSpriteTemplate_83E59D0:: @ 83E59D0
+ spr_template 0xFFFF, 6, gOamData_83E5978, gSpriteAnimTable_83E5998, gSpriteImageTable_83E59A0, gDummySpriteAffineAnimTable, sub_80F9834
+
+ .align 2
+gSpriteTemplate_83E59E8:: @ 83E59E8
+ spr_template 0xFFFF, 6, gOamData_83E5980, gSpriteAnimTable_83E5998, gSpriteImageTable_83E59B0, gDummySpriteAffineAnimTable, sub_80F9834
+
+ .align 2
+gSpriteTemplate_83E5A00:: @ 83E5A00
+ spr_template 0xFFFF, 6, gOamData_83E5970, gSpriteAnimTable_83E5998, gSpriteImageTable_83E59C0, gDummySpriteAffineAnimTable, SpriteCallbackDummy
+
+gUnknown_083E5A18:: @ 83E5A18
+ .string "{PALETTE 0}$"
+
+gUnknown_083E5A1C:: @ 83E5A1C
+ .string "▶$"
diff --git a/data/metatile_behavior.s b/data/metatile_behavior.s
new file mode 100644
index 000000000..6588828d0
--- /dev/null
+++ b/data/metatile_behavior.s
@@ -0,0 +1,246 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+gUnknown_08308E2C:: @ 8308E2C
+ .byte 0b100
+ .byte 0b000
+ .byte 0b101
+ .byte 0b101
+ .byte 0b000
+ .byte 0b001
+ .byte 0b101
+ .byte 0b100
+ .byte 0b101
+ .byte 0b100
+ .byte 0b100
+ .byte 0b101
+ .byte 0b100
+ .byte 0b000
+ .byte 0b000
+ .byte 0b100
+ .byte 0b111
+ .byte 0b111
+ .byte 0b111
+ .byte 0b110
+ .byte 0b110
+ .byte 0b111
+ .byte 0b100
+ .byte 0b100
+ .byte 0b000
+ .byte 0b110
+ .byte 0b000
+ .byte 0b100
+ .byte 0b100
+ .byte 0b000
+ .byte 0b000
+ .byte 0b000
+ .byte 0b100
+ .byte 0b100
+ .byte 0b111
+ .byte 0b100
+ .byte 0b101
+ .byte 0b101
+ .byte 0b100
+ .byte 0b100
+ .byte 0b100
+ .byte 0b100
+ .byte 0b111
+ .byte 0b100
+ .byte 0b000
+ .byte 0b000
+ .byte 0b000
+ .byte 0b000
+ .byte 0b100
+ .byte 0b100
+ .byte 0b100
+ .byte 0b100
+ .byte 0b100
+ .byte 0b100
+ .byte 0b100
+ .byte 0b100
+ .byte 0b000
+ .byte 0b000
+ .byte 0b000
+ .byte 0b000
+ .byte 0b100
+ .byte 0b100
+ .byte 0b100
+ .byte 0b100
+ .byte 0b100
+ .byte 0b100
+ .byte 0b100
+ .byte 0b100
+ .byte 0b100
+ .byte 0b100
+ .byte 0b100
+ .byte 0b100
+ .byte 0b100
+ .byte 0b100
+ .byte 0b100
+ .byte 0b000
+ .byte 0b000
+ .byte 0b000
+ .byte 0b000
+ .byte 0b000
+ .byte 0b110
+ .byte 0b110
+ .byte 0b110
+ .byte 0b110
+ .byte 0b000
+ .byte 0b000
+ .byte 0b000
+ .byte 0b000
+ .byte 0b000
+ .byte 0b000
+ .byte 0b000
+ .byte 0b000
+ .byte 0b000
+ .byte 0b000
+ .byte 0b000
+ .byte 0b000
+ .byte 0b100
+ .byte 0b100
+ .byte 0b100
+ .byte 0b100
+ .byte 0b100
+ .byte 0b100
+ .byte 0b100
+ .byte 0b100
+ .byte 0b100
+ .byte 0b100
+ .byte 0b100
+ .byte 0b100
+ .byte 0b110
+ .byte 0b110
+ .byte 0b100
+ .byte 0b110
+ .byte 0b000
+ .byte 0b100
+ .byte 0b100
+ .byte 0b100
+ .byte 0b100
+ .byte 0b100
+ .byte 0b100
+ .byte 0b100
+ .byte 0b100
+ .byte 0b000
+ .byte 0b000
+ .byte 0b000
+ .byte 0b000
+ .byte 0b000
+ .byte 0b000
+ .byte 0b000
+ .byte 0b000
+ .byte 0b000
+ .byte 0b000
+ .byte 0b000
+ .byte 0b000
+ .byte 0b000
+ .byte 0b000
+ .byte 0b000
+ .byte 0b000
+ .byte 0b000
+ .byte 0b000
+ .byte 0b000
+ .byte 0b000
+ .byte 0b000
+ .byte 0b000
+ .byte 0b000
+ .byte 0b000
+ .byte 0b000
+ .byte 0b000
+ .byte 0b000
+ .byte 0b000
+ .byte 0b000
+ .byte 0b000
+ .byte 0b000
+ .byte 0b000
+ .byte 0b000
+ .byte 0b000
+ .byte 0b000
+ .byte 0b000
+ .byte 0b000
+ .byte 0b000
+ .byte 0b000
+ .byte 0b000
+ .byte 0b000
+ .byte 0b000
+ .byte 0b000
+ .byte 0b000
+ .byte 0b000
+ .byte 0b000
+ .byte 0b000
+ .byte 0b000
+ .byte 0b000
+ .byte 0b000
+ .byte 0b000
+ .byte 0b000
+ .byte 0b000
+ .byte 0b000
+ .byte 0b000
+ .byte 0b000
+ .byte 0b000
+ .byte 0b100
+ .byte 0b100
+ .byte 0b000
+ .byte 0b100
+ .byte 0b000
+ .byte 0b000
+ .byte 0b100
+ .byte 0b100
+ .byte 0b100
+ .byte 0b100
+ .byte 0b100
+ .byte 0b100
+ .byte 0b100
+ .byte 0b000
+ .byte 0b100
+ .byte 0b100
+ .byte 0b100
+ .byte 0b100
+ .byte 0b100
+ .byte 0b100
+ .byte 0b000
+ .byte 0b000
+ .byte 0b000
+ .byte 0b000
+ .byte 0b000
+ .byte 0b000
+ .byte 0b000
+ .byte 0b000
+ .byte 0b000
+ .byte 0b000
+ .byte 0b100
+ .byte 0b100
+ .byte 0b100
+ .byte 0b100
+ .byte 0b100
+ .byte 0b100
+ .byte 0b100
+ .byte 0b000
+ .byte 0b000
+ .byte 0b000
+ .byte 0b000
+ .byte 0b000
+ .byte 0b000
+ .byte 0b000
+ .byte 0b000
+ .byte 0b000
+ .byte 0b000
+ .byte 0b000
+ .byte 0b000
+ .byte 0b000
+ .byte 0b000
+ .byte 0b000
+ .byte 0b000
+ .byte 0b000
+ .byte 0b000
+ .byte 0b000
+ .byte 0b000
+ .byte 0b000
+ .byte 0b000
+ .byte 0b000
+ .byte 0b000
+ .byte 0b000
diff --git a/data/mon_markings.s b/data/mon_markings.s
new file mode 100644
index 000000000..710f37a51
--- /dev/null
+++ b/data/mon_markings.s
@@ -0,0 +1,198 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+ .align 2
+gUnknown_083E49F4:: @ 83E49F4
+ .incbin "graphics/misc/mon_markings.gbapal"
+
+ .align 2
+gUnknown_083E4A14:: @ 83E4A14
+ .incbin "graphics/misc/mon_markings.4bpp"
+
+gUnknown_083E5214:: @ 83E5214
+ .incbin "baserom.gba", 0x003e5214, 0x8
+
+gUnknown_083E521C:: @ 83E521C
+ .space 8
+
+ .align 2
+gSpriteAnim_83E5224:: @ 83E5224
+ obj_image_anim_frame 0, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83E522C:: @ 83E522C
+ obj_image_anim_frame 1, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83E5234:: @ 83E5234
+ obj_image_anim_frame 2, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83E523C:: @ 83E523C
+ obj_image_anim_frame 3, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83E5244:: @ 83E5244
+ obj_image_anim_frame 4, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83E524C:: @ 83E524C
+ obj_image_anim_frame 5, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83E5254:: @ 83E5254
+ obj_image_anim_frame 6, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83E525C:: @ 83E525C
+ obj_image_anim_frame 7, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83E5264:: @ 83E5264
+ obj_image_anim_frame 8, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83E526C:: @ 83E526C
+ obj_image_anim_frame 9, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_83E5274:: @ 83E5274
+ .4byte gSpriteAnim_83E5224
+ .4byte gSpriteAnim_83E522C
+ .4byte gSpriteAnim_83E5234
+ .4byte gSpriteAnim_83E523C
+ .4byte gSpriteAnim_83E5244
+ .4byte gSpriteAnim_83E524C
+ .4byte gSpriteAnim_83E5254
+ .4byte gSpriteAnim_83E525C
+ .4byte gSpriteAnim_83E5264
+ .4byte gSpriteAnim_83E526C
+
+ .align 2
+gSpriteAnim_83E529C:: @ 83E529C
+ obj_image_anim_frame 0, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83E52A4:: @ 83E52A4
+ obj_image_anim_frame 64, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_83E52AC:: @ 83E52AC
+ .4byte gSpriteAnim_83E529C
+ .4byte gSpriteAnim_83E52A4
+
+gUnknown_083E52B4:: @ 83E52B4
+ .incbin "baserom.gba", 0x003E52B4, 0x8
+
+ .align 2
+gSpriteAnim_83E52BC:: @ 83E52BC
+ obj_image_anim_frame 0, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83E52C4:: @ 83E52C4
+ obj_image_anim_frame 4, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83E52CC:: @ 83E52CC
+ obj_image_anim_frame 8, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83E52D4:: @ 83E52D4
+ obj_image_anim_frame 12, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83E52DC:: @ 83E52DC
+ obj_image_anim_frame 16, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83E52E4:: @ 83E52E4
+ obj_image_anim_frame 20, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83E52EC:: @ 83E52EC
+ obj_image_anim_frame 24, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83E52F4:: @ 83E52F4
+ obj_image_anim_frame 28, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83E52FC:: @ 83E52FC
+ obj_image_anim_frame 32, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83E5304:: @ 83E5304
+ obj_image_anim_frame 36, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83E530C:: @ 83E530C
+ obj_image_anim_frame 40, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83E5314:: @ 83E5314
+ obj_image_anim_frame 44, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83E531C:: @ 83E531C
+ obj_image_anim_frame 48, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83E5324:: @ 83E5324
+ obj_image_anim_frame 52, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83E532C:: @ 83E532C
+ obj_image_anim_frame 56, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83E5334:: @ 83E5334
+ obj_image_anim_frame 60, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_83E533C:: @ 83E533C
+ .4byte gSpriteAnim_83E52BC
+ .4byte gSpriteAnim_83E52C4
+ .4byte gSpriteAnim_83E52CC
+ .4byte gSpriteAnim_83E52D4
+ .4byte gSpriteAnim_83E52DC
+ .4byte gSpriteAnim_83E52E4
+ .4byte gSpriteAnim_83E52EC
+ .4byte gSpriteAnim_83E52F4
+ .4byte gSpriteAnim_83E52FC
+ .4byte gSpriteAnim_83E5304
+ .4byte gSpriteAnim_83E530C
+ .4byte gSpriteAnim_83E5314
+ .4byte gSpriteAnim_83E531C
+ .4byte gSpriteAnim_83E5324
+ .4byte gSpriteAnim_83E532C
+ .4byte gSpriteAnim_83E5334
diff --git a/data/money.s b/data/money.s
new file mode 100644
index 000000000..04e54a836
--- /dev/null
+++ b/data/money.s
@@ -0,0 +1,31 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+ .align 2
+gOamData_83CF558:: @ 83CF558
+ .2byte 0x4000
+ .2byte 0x8000
+ .2byte 0x0000
+
+ .align 2
+gSpriteAnim_83CF560:: @ 83CF560
+ obj_image_anim_frame 0, 0
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_83CF568:: @ 83CF568
+ .4byte gSpriteAnim_83CF560
+
+ .align 2
+gSpriteTemplate_83CF56C:: @ 83CF56C
+ spr_template 10018, 10018, gOamData_83CF558, gSpriteAnimTable_83CF568, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
+
+ .align 2
+gUnknown_083CF584:: @ 83CF584
+ obj_tiles gMenuMoneyGfx, 256, 0x2722
+
+ .align 2
+gUnknown_083CF58C:: @ 83CF58C
+ obj_pal gMenuMoneyPal, 0x2722
diff --git a/data/mori_debug_menu.s b/data/mori_debug_menu.s
new file mode 100644
index 000000000..f9b249587
--- /dev/null
+++ b/data/mori_debug_menu.s
@@ -0,0 +1,68 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+@ These seem to be strings for keypad test code.
+gUnknown_0839B22C:: @ 839B22C
+ .string " A$" @ A
+ .string " B$" @ B
+ .string "SL$" @ SELECT
+ .string "ST$" @ START
+ .string "RK$" @ right
+ .string "LK$" @ left
+ .string "UK$" @ up
+ .string "DK$" @ down
+ .string "RT$" @ R
+ .string "LT$" @ L
+
+gUnknown_0839B24A:: @ 839B24A
+ .string "ND$"
+
+gUnknown_0839B24D:: @ 839B24D
+ .string "の こどもは\n$" @ "'s child <topic-particle>"
+
+gUnknown_0839B255:: @ 839B255
+ .string " $"
+
+gUnknown_0839B257:: @ 839B257
+ .string "ながいなまえぽけもん$" @ "long name pokemon" (used as test name)
+
+Text_39B262: @ 839B262
+ .string "Search a child$"
+
+Text_39B271: @ 839B271
+ .string "Egg$"
+
+Text_39B275: @ 839B275
+ .string "Egg (male)$"
+
+Text_39B280: @ 839B280
+ .string "1000 steps$"
+
+Text_39B28B: @ 839B28B
+ .string "10000 steps$"
+
+Text_39B297: @ 839B297
+ .string "MOVE TUTOR$"
+
+Text_39B2A2: @ 839B2A2
+ .string "Breed an egg$"
+
+Text_39B2AF: @ 839B2AF
+ .string "Long name$"
+
+Text_39B2B9: @ 839B2B9
+ .string "ポロックけす$" @ "{POKEBLOCK} CASE$"
+
+ .align 2
+gMoriDebugMenuActions:: @ 839B2C0
+ .4byte Text_39B262, MoriDebugMenu_SearchChild
+ .4byte Text_39B271, MoriDebugMenu_Egg
+ .4byte Text_39B275, MoriDebugMenu_MaleEgg
+ .4byte Text_39B280, MoriDebugMenu_1000Steps
+ .4byte Text_39B28B, MoriDebugMenu_10000Steps
+ .4byte Text_39B297, MoriDebugMenu_MoveTutor
+ .4byte Text_39B2A2, MoriDebugMenu_BreedEgg
+ .4byte Text_39B2AF, MoriDebugMenu_LongName
+ .4byte Text_39B2B9, MoriDebugMenu_PokeblockCase
diff --git a/data/mystery_event_msg.s b/data/mystery_event_msg.s
new file mode 100644
index 000000000..26e6a9e06
--- /dev/null
+++ b/data/mystery_event_msg.s
@@ -0,0 +1,35 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+gOtherText_BerryObtainedDadHasIt:: @ 842F798
+ .string "Obtained a {STR_VAR_2} BERRY!\nDad has it at PETALBURG GYM.$"
+
+gOtherText_BerryTransformed:: @ 842F7CA
+ .string "The {STR_VAR_1} BERRY transformed into\none {STR_VAR_2} BERRY.$"
+
+gOtherText_BerryAlreadyObtained:: @ 842F7F6
+ .string "The {STR_VAR_1} BERRY has already been\nobtained.$"
+
+gOtherText_SpecialRibbonReceived:: @ 842F81E
+ .string "A special RIBBON was awarded to your\nparty POKéMON.$"
+
+gOtherText_DexUpgraded:: @ 842F852
+ .string "The POKéDEX has been upgraded with\nthe NATIONAL MODE.$"
+
+gOtherText_RareWordAdded:: @ 842F888
+ .string "A rare word has been added.$"
+
+gOtherText_PokeWasSentOver:: @ 842F8A4
+ .string "{STR_VAR_1} was sent over!$"
+
+gOtherText_PartyIsFull:: @ 842F8B6
+ .string "Your party is full.\n{STR_VAR_1} could not be sent over.$"
+
+gOtherText_NewTrainerInHoenn:: @ 842F8E5
+ .string "A new TRAINER has arrived in HOENN.$"
+ .string "A new adversary has arrived in the\nBATTLE TOWER.$"
+
+gOtherText_DataCannotUseVersion:: @ 842F93A
+ .string "This data cannot be used in\nthis version.$"
diff --git a/data/naming_screen.s b/data/naming_screen.s
new file mode 100644
index 000000000..c9196c66a
--- /dev/null
+++ b/data/naming_screen.s
@@ -0,0 +1,346 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+ .align 2
+gSpriteImage_83CE094:: @ 83CE094
+ .incbin "graphics/naming_screen/pc_icon/0.4bpp"
+
+ .align 2
+gSpriteImage_83CE154:: @ 83CE154
+ .incbin "graphics/naming_screen/pc_icon/1.4bpp"
+
+ .align 2
+ .incbin "baserom.gba", 0x003ce214, 0x4
+
+ .align 2
+gUnknown_083CE218:: @ 83CE218
+ .4byte sub_80B5EA8
+ .4byte sub_80B5ED0
+ .4byte sub_80B5F00
+ .4byte sub_80B5F10
+ .4byte sub_80B5F38
+ .4byte sub_80B5F70
+ .4byte pokemon_store
+ .4byte sub_80B604C
+ .4byte sub_80B606C
+ .4byte sub_80B6094
+
+ .align 2
+gUnknown_083CE240:: @ 83CE240
+ .4byte sub_80B6108
+ .4byte sub_80B6148
+ .4byte sub_80B6170
+ .4byte sub_80B6194
+
+ .align 2
+gUnknown_083CE250:: @ 83CE250
+ .4byte sub_80B626C
+ .4byte sub_80B6274
+
+gUnknown_083CE258:: @ 83CE258
+ .incbin "baserom.gba", 0x003ce258, 0xa
+
+gUnknown_083CE262:: @ 83CE262
+ .incbin "baserom.gba", 0x003ce262, 0xa
+
+gUnknown_083CE26C:: @ 83CE26C
+ .incbin "baserom.gba", 0x003ce26c, 0x8
+
+gUnknown_083CE274:: @ 83CE274
+ .incbin "baserom.gba", 0x003ce274, 0x8
+
+ .align 2
+gUnknown_083CE27C:: @ 83CE27C
+ .4byte sub_80B6668
+ .4byte sub_80B6680
+ .4byte sub_80B66EC
+ .4byte sub_80B6758
+
+ .align 2
+gUnknown_083CE28C:: @ 83CE28C
+ .4byte 0x02000006
+ .4byte 0x02000004
+
+gUnknown_083CE294:: @ 83CE294
+ .incbin "baserom.gba", 0x003ce294, 0x1b
+
+gUnknown_083CE2AF:: @ 83CE2AF
+ .incbin "baserom.gba", 0x003ce2af, 0x5
+
+ .align 2
+gUnknown_083CE2B4:: @ 83CE2B4
+ .4byte sub_80B6B5C
+ .4byte sub_80B6B98
+ .4byte sub_80B6B9C
+ .4byte sub_80B6C08
+
+gUnknown_083CE2C4:: @ 83CE2C4
+ .incbin "baserom.gba", 0x003ce2c4, 0x6
+
+gUnknown_083CE2CA:: @ 83CE2CA
+ .incbin "baserom.gba", 0x003ce2ca, 0x6
+
+gUnknown_083CE2D0:: @ 83CE2D0
+ .incbin "baserom.gba", 0x003ce2d0, 0x8
+
+gUnknown_083CE2D8:: @ 83CE2D8
+ .incbin "baserom.gba", 0x003ce2d8, 0x8
+
+ .align 2
+gUnknown_083CE2E0:: @ 83CE2E0
+ .4byte nullsub_40
+ .4byte sub_80B6E68
+ .4byte sub_80B6EBC
+ .4byte sub_80B6EFC
+
+ .align 2
+gUnknown_083CE2F0:: @ 83CE2F0
+ .4byte sub_80B7660
+ .4byte sub_80B7650
+ .4byte sub_80B7650
+ .4byte sub_80B7670
+ .4byte sub_80B7670
+ .4byte sub_80B7660
+
+gUnknown_083CE308:: @ 83CE308
+ .incbin "baserom.gba", 0x003ce308, 0x8
+
+ .align 2
+gUnknown_083CE310:: @ 83CE310
+ .4byte sub_80B7844
+ .4byte sub_80B7838
+ .4byte sub_80B7838
+ .4byte sub_80B7850
+ .4byte sub_80B7850
+ .4byte sub_80B7844
+
+ .align 2
+gUnknown_083CE328:: @ 83CE328
+ .4byte gWindowConfig_81E6EDC
+ .4byte gWindowConfig_81E6EF8
+ .4byte gWindowConfig_81E6EA4
+ .4byte gWindowConfig_81E6EC0
+ .4byte gWindowConfig_81E6EA4
+ .4byte gWindowConfig_81E6EC0
+ .4byte gWindowConfig_81E6F14
+ .4byte gWindowConfig_81E6F30
+ .4byte gWindowConfig_81E6F14
+ .4byte gWindowConfig_81E6F30
+ .4byte gWindowConfig_81E6EDC
+ .4byte gWindowConfig_81E6EF8
+
+ .align 2
+gUnknown_083CE358:: @ 83CE358
+ .4byte nullsub_61
+ .4byte nullsub_61
+ .4byte sub_80B78F8
+ .4byte sub_80B78F8
+
+ .align 2
+gUnknown_083CE368:: @ 83CE368
+ .4byte nullsub_62
+ .4byte sub_80B7924
+
+ .align 2
+gUnknown_083CE370:: @ 83CE370
+ .incbin "baserom.gba", 0x003ce370, 0x4
+
+ .align 2
+Unknown_83CE374:
+ .byte 0, 7, 1, 0, 0, 0, 0, 0
+ .4byte OtherText_YourName
+
+ .align 2
+Unknown_83CE380:
+ .byte 0, 8, 2, 0, 0, 0, 0, 0
+ .4byte OtherText_BoxName
+
+ .align 2
+Unknown_83CE38C:
+ .byte 0, 10, 3, 1, 0, 0, 0, 0
+ .4byte OtherText_PokeName
+
+ .align 2
+gUnknown_083CE398:: @ 83CE398
+ .4byte Unknown_83CE374
+ .4byte Unknown_83CE380
+ .4byte Unknown_83CE38C
+ .4byte Unknown_83CE38C
+
+gUnknown_083CE3A8:: @ 83CE3A8
+ .string " A B C D E F . $"
+ .string " G H I J K L , $"
+ .string " M N O P Q R S $"
+ .string " T U V W X Y Z $"
+ .string " a b c d e f . $"
+ .string " g h i j k l , $"
+ .string " m n o p q r s $"
+ .string " t u v w x y z $"
+ .string " 0 1 2 3 4 $"
+ .string " 5 6 7 8 9 $"
+ .string " ! ? ♂ ♀ / - $"
+ .string " … “ ” ‘ ’ $"
+
+ .align 2
+gOamData_83CE498:: @ 83CE498
+ .2byte 0x0000
+ .2byte 0x0000
+ .2byte 0x0000
+
+ .align 2
+gOamData_83CE4A0:: @ 83CE4A0
+ .2byte 0x0000
+ .2byte 0x4000
+ .2byte 0x0000
+
+ .align 2
+gOamData_83CE4A8:: @ 83CE4A8
+ .2byte 0x4000
+ .2byte 0x8000
+ .2byte 0x0000
+
+ .align 2
+Unknown_3CE4B0:: @ 83CE4B0
+ .incbin "baserom.gba", 0x3ce4b0, 0x50
+
+ .align 2
+Unknown_3CE500:: @ 83CE500
+ .incbin "baserom.gba", 0x3ce500, 0x10
+
+ .align 2
+Unknown_3CE510:: @ 83CE510
+ .incbin "baserom.gba", 0x3ce510, 0x30
+
+ .align 2
+Unknown_3CE540:: @ 83CE540
+ .incbin "baserom.gba", 0x3ce540, 0x18
+
+ .align 2
+gUnknown_083CE558:: @ 83CE558
+ .4byte 0x8, Unknown_3CE4B0
+
+ .align 2
+gUnknown_083CE560:: @ 83CE560
+ .4byte 0x2, Unknown_3CE500
+ .4byte 0x2, Unknown_3CE500
+ .4byte 0x2, Unknown_3CE500
+
+ .align 2
+gUnknown_083CE578:: @ 83CE578
+ .4byte 0x6, Unknown_3CE510
+
+ .align 2
+gUnknown_083CE580:: @ 83CE580
+ .4byte 0x3, Unknown_3CE540
+
+ .align 2
+gSpriteImageTable_83CE588:: @ 83CE588
+ obj_frame_tiles gSpriteImage_83CE094, 0xc0
+ obj_frame_tiles gSpriteImage_83CE154, 0xc0
+
+ .align 2
+gSpriteAnim_83CE598:: @ 83CE598
+ obj_image_anim_frame 0, 1
+ obj_image_anim_jump 0
+
+ .align 2
+gSpriteAnim_83CE5A0:: @ 83CE5A0
+ obj_image_anim_frame 4, 8
+ obj_image_anim_frame 8, 8
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83CE5AC:: @ 83CE5AC
+ obj_image_anim_frame 0, 2
+ obj_image_anim_frame 1, 2
+ obj_image_anim_jump 0
+
+ .align 2
+gSpriteAnimTable_83CE5B8:: @ 83CE5B8
+ .4byte gSpriteAnim_83CE598
+
+ .align 2
+gSpriteAnimTable_83CE5BC:: @ 83CE5BC
+ .4byte gSpriteAnim_83CE598
+ .4byte gSpriteAnim_83CE5A0
+
+ .align 2
+gSpriteAnimTable_83CE5C4:: @ 83CE5C4
+ .4byte gSpriteAnim_83CE5AC
+
+ .align 2
+gSpriteTemplate_83CE5C8:: @ 83CE5C8
+ spr_template 2, 4, gOamData_83CE498, gSpriteAnimTable_83CE5B8, NULL, gDummySpriteAffineAnimTable, sub_80B6B34
+
+ .align 2
+gSpriteTemplate_83CE5E0:: @ 83CE5E0
+ spr_template 3, 1, gOamData_83CE4A8, gSpriteAnimTable_83CE5B8, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
+
+ .align 2
+gSpriteTemplate_83CE5F8:: @ 83CE5F8
+ spr_template 4, 4, gOamData_83CE498, gSpriteAnimTable_83CE5B8, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
+
+ .align 2
+gSpriteTemplate_83CE610:: @ 83CE610
+ spr_template 0, 6, gOamData_83CE498, gSpriteAnimTable_83CE5B8, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
+
+ .align 2
+gSpriteTemplate_83CE628:: @ 83CE628
+ spr_template 1, 6, gOamData_83CE498, gSpriteAnimTable_83CE5B8, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
+
+ .align 2
+gSpriteTemplate_83CE640:: @ 83CE640
+ spr_template 7, 5, gOamData_83CE4A0, gSpriteAnimTable_83CE5BC, NULL, gDummySpriteAffineAnimTable, sub_80B6998
+
+ .align 2
+gSpriteTemplate_83CE658:: @ 83CE658
+ spr_template 10, 3, gOamData_83CE498, gSpriteAnimTable_83CE5B8, NULL, gDummySpriteAffineAnimTable, sub_80B6D9C
+
+ .align 2
+gSpriteTemplate_83CE670:: @ 83CE670
+ spr_template 11, 3, gOamData_83CE498, gSpriteAnimTable_83CE5B8, NULL, gDummySpriteAffineAnimTable, sub_80B6DE8
+
+ .align 2
+gSpriteTemplate_83CE688:: @ 83CE688
+ spr_template 0xFFFF, 0, gOamData_83CE498, gSpriteAnimTable_83CE5C4, gSpriteImageTable_83CE588, gDummySpriteAffineAnimTable, SpriteCallbackDummy
+
+ .align 2
+gUnknown_083CE6A0:: @ 83CE6A0
+ obj_tiles gNamingScreenBackButtonTiles, 0x1E0, 0
+ obj_tiles gNamingScreenOKButtonTiles, 0x1E0, 1
+ obj_tiles gNamingScreenChangeKeyboardBoxTiles, 0x280, 2
+ obj_tiles gNamingScreenChangeKeyboardButtonTiles, 0x100, 3
+ obj_tiles gNamingScreenLowerTextTiles, 0x60, 4
+ obj_tiles gNamingScreenUpperTextTiles, 0x60, 5
+ obj_tiles gNamingScreenOthersTextTiles, 0x60, 6
+ obj_tiles gNamingScreenCursorTiles, 0x80, 7
+ obj_tiles gNamingScreenActiveCursorSmallTiles, 0x80, 8
+ obj_tiles gNamingScreenActiveCursorBigTiles, 0x80, 9
+ obj_tiles gNamingScreenRightPointingTriangleTiles, 0x20, 10
+ obj_tiles gNamingScreenUnderscoreTiles, 0x20, 11
+ null_obj_tiles
+
+ .align 2
+gUnknown_083CE708:: @ 83CE708
+ obj_pal gNamingScreenPalettes + 0x20 * 0, 0
+ obj_pal gNamingScreenPalettes + 0x20 * 1, 1
+ obj_pal gNamingScreenPalettes + 0x20 * 2, 2
+ obj_pal gNamingScreenPalettes + 0x20 * 3, 3
+ obj_pal gNamingScreenPalettes + 0x20 * 4, 4
+ obj_pal gNamingScreenPalettes + 0x20 * 5, 5
+ obj_pal gNamingScreenPalettes + 0x20 * 4, 6
+ null_obj_pal
+
+ .align 2
+gUnknown_083CE748:: @ 83CE748
+ .incbin "graphics/naming_screen/lower_keyboard_map.bin"
+
+ .align 2
+gUnknown_083CEBF8:: @ 83CEBF8
+ .incbin "graphics/naming_screen/upper_keyboard_map.bin"
+
+ .align 2
+gUnknown_083CF0A8:: @ 83CF0A8
+ .incbin "graphics/naming_screen/others_keyboard_map.bin"
diff --git a/data/option_menu.s b/data/option_menu.s
new file mode 100644
index 000000000..eaf0f82b8
--- /dev/null
+++ b/data/option_menu.s
@@ -0,0 +1,12 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+ .align 2
+gUnknown_0839F5FC:: @ 839F5FC
+ .incbin "baserom.gba", 0x0039f5fc, 0x40
+
+ .align 2
+gUnknown_0839F63C:: @ 839F63C
+ .incbin "baserom.gba", 0x0039f63c, 0x40
diff --git a/data/party_menu.s b/data/party_menu.s
new file mode 100644
index 000000000..5596ff2ed
--- /dev/null
+++ b/data/party_menu.s
@@ -0,0 +1,744 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+ .align 1
+gUnknown_08376504:: @ 8376504
+ .2byte MOVE_FOCUS_PUNCH
+ .2byte MOVE_DRAGON_CLAW
+ .2byte MOVE_WATER_PULSE
+ .2byte MOVE_CALM_MIND
+ .2byte MOVE_ROAR
+ .2byte MOVE_TOXIC
+ .2byte MOVE_HAIL
+ .2byte MOVE_BULK_UP
+ .2byte MOVE_BULLET_SEED
+ .2byte MOVE_HIDDEN_POWER
+ .2byte MOVE_SUNNY_DAY
+ .2byte MOVE_TAUNT
+ .2byte MOVE_ICE_BEAM
+ .2byte MOVE_BLIZZARD
+ .2byte MOVE_HYPER_BEAM
+ .2byte MOVE_LIGHT_SCREEN
+ .2byte MOVE_PROTECT
+ .2byte MOVE_RAIN_DANCE
+ .2byte MOVE_GIGA_DRAIN
+ .2byte MOVE_SAFEGUARD
+ .2byte MOVE_FRUSTRATION
+ .2byte MOVE_SOLAR_BEAM
+ .2byte MOVE_IRON_TAIL
+ .2byte MOVE_THUNDERBOLT
+ .2byte MOVE_THUNDER
+ .2byte MOVE_EARTHQUAKE
+ .2byte MOVE_RETURN
+ .2byte MOVE_DIG
+ .2byte MOVE_PSYCHIC
+ .2byte MOVE_SHADOW_BALL
+ .2byte MOVE_BRICK_BREAK
+ .2byte MOVE_DOUBLE_TEAM
+ .2byte MOVE_REFLECT
+ .2byte MOVE_SHOCK_WAVE
+ .2byte MOVE_FLAMETHROWER
+ .2byte MOVE_SLUDGE_BOMB
+ .2byte MOVE_SANDSTORM
+ .2byte MOVE_FIRE_BLAST
+ .2byte MOVE_ROCK_TOMB
+ .2byte MOVE_AERIAL_ACE
+ .2byte MOVE_TORMENT
+ .2byte MOVE_FACADE
+ .2byte MOVE_SECRET_POWER
+ .2byte MOVE_REST
+ .2byte MOVE_ATTRACT
+ .2byte MOVE_THIEF
+ .2byte MOVE_STEEL_WING
+ .2byte MOVE_SKILL_SWAP
+ .2byte MOVE_SNATCH
+ .2byte MOVE_OVERHEAT
+ .2byte MOVE_CUT
+ .2byte MOVE_FLY
+ .2byte MOVE_SURF
+ .2byte MOVE_STRENGTH
+ .2byte MOVE_FLASH
+ .2byte MOVE_ROCK_SMASH
+ .2byte MOVE_WATERFALL
+ .2byte MOVE_DIVE
+
+ .4byte gTileBuffer @ unreferenced?
+
+MenuGfx_HoldIcons:
+ .incbin "graphics/interface/hold_icons.4bpp"
+MenuPal_HoldIcons:
+ .incbin "graphics/interface/hold_icons.gbapal"
+
+ .align 2
+gUnknown_083765DC:: @ 83765DC
+ obj_tiles MenuGfx_HoldIcons, 64, 0xd750
+
+ .align 2
+gUnknown_083765E4:: @ 83765E4
+ obj_pal MenuPal_HoldIcons, 0xd750
+
+ .align 2
+gOamData_83765EC:: @ 83765EC
+ .2byte 0x0000
+ .2byte 0x0000
+ .2byte 0x0400
+
+ .align 2
+gSpriteAnim_83765F4:: @ 83765F4
+ obj_image_anim_frame 0, 1
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83765FC:: @ 83765FC
+ obj_image_anim_frame 1, 1
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_8376604:: @ 8376604
+ .4byte gSpriteAnim_83765F4
+ .4byte gSpriteAnim_83765FC
+
+ .align 2
+gSpriteTemplate_837660C:: @ 837660C
+ spr_template 55120, 55120, gOamData_83765EC, gSpriteAnimTable_8376604, NULL, gDummySpriteAffineAnimTable, SpriteCB_HeldItemIcon_806DD7C
+
+ .align 2
+gUnknown_08376624:: @ 8376624
+ .4byte OtherText_ChoosePoke
+ .4byte OtherText_MovePokeTo
+ .4byte OtherText_TeachWhat
+ .4byte OtherText_UseWhat
+ .4byte OtherText_GiveWhat
+ .4byte OtherText_DoWhat
+ .4byte OtherText_NothingToCut
+ .4byte OtherText_CantSurf
+ .4byte OtherText_AlreadySurfing
+ .4byte OtherText_CantUseThatHere
+ .4byte OtherText_RestoreWhatMove
+ .4byte OtherText_BoostPP
+ .4byte gOtherText_CancelWithTerminator
+ .4byte OtherText_DoWhatWithItem
+ .4byte OtherText_NoPokeForBattle
+ .4byte OtherText_ChoosePoke2
+ .4byte OtherText_NotEnoughHP
+ .4byte OtherText_ThreePokeNeeded
+ .4byte OtherText_PokeCantBeSame
+ .4byte OtherText_NoIdenticalHoldItems
+ .4byte OtherText_TeachWhichPoke
+
+ .align 2
+gUnknown_08376678:: @ 8376678
+ .byte 16, 40, 0, 0
+ .byte 104, 18, 0, 0
+ .byte 104, 42, 0, 0
+ .byte 104, 66, 0, 0
+ .byte 104, 90, 0, 0
+ .byte 104, 114, 0, 0
+ .byte 16, 24, 0, 0
+ .byte 16, 80, 0, 0
+ .byte 104, 18, 0, 0
+ .byte 104, 50, 0, 0
+ .byte 104, 82, 0, 0
+ .byte 104, 114, 0, 0
+ .byte 16, 24, 0, 0
+ .byte 16, 80, 0, 0
+ .byte 104, 26, 0, 0
+ .byte 104, 50, 0, 0
+ .byte 104, 82, 0, 0
+ .byte 104, 106, 0, 0
+ .byte 16, 24, 0, 0
+ .byte 104, 26, 0, 0
+ .byte 104, 50, 0, 0
+ .byte 16, 80, 0, 0
+ .byte 104, 82, 0, 0
+ .byte 104, 106, 0, 0
+ .byte 5, 4, 0, 0
+ .byte 16, 1, 0, 0
+ .byte 16, 4, 0, 0
+ .byte 16, 7, 0, 0
+ .byte 16, 10, 0, 0
+ .byte 16, 13, 0, 0
+ .byte 5, 2, 0, 0
+ .byte 5, 9, 0, 0
+ .byte 16, 1, 0, 0
+ .byte 16, 5, 0, 0
+ .byte 16, 9, 0, 0
+ .byte 16, 13, 0, 0
+ .byte 5, 2, 0, 0
+ .byte 5, 9, 0, 0
+ .byte 16, 2, 0, 0
+ .byte 16, 5, 0, 0
+ .byte 16, 9, 0, 0
+ .byte 16, 12, 0, 0
+ .byte 5, 2, 0, 0
+ .byte 16, 2, 0, 0
+ .byte 16, 5, 0, 0
+ .byte 5, 9, 0, 0
+ .byte 16, 9, 0, 0
+ .byte 16, 12, 0, 0
+
+ .align 2
+gUnknown_08376738:: @ 8376738
+ .byte 6, 5, 0, 0
+ .byte 17, 2, 0, 0
+ .byte 17, 5, 0, 0
+ .byte 17, 8, 0, 0
+ .byte 17, 11, 0, 0
+ .byte 17, 14, 0, 0
+ .byte 6, 3, 0, 0
+ .byte 6, 10, 0, 0
+ .byte 17, 2, 0, 0
+ .byte 17, 6, 0, 0
+ .byte 17, 10, 0, 0
+ .byte 17, 14, 0, 0
+ .byte 6, 3, 0, 0
+ .byte 6, 10, 0, 0
+ .byte 17, 3, 0, 0
+ .byte 17, 6, 0, 0
+ .byte 17, 10, 0, 0
+ .byte 17, 13, 0, 0
+ .byte 6, 3, 0, 0
+ .byte 17, 3, 0, 0
+ .byte 17, 6, 0, 0
+ .byte 6, 10, 0, 0
+ .byte 17, 10, 0, 0
+ .byte 17, 13, 0, 0
+ .byte 3, 7, 0, 0
+ .byte 22, 2, 0, 0
+ .byte 22, 5, 0, 0
+ .byte 22, 8, 0, 0
+ .byte 22, 11, 0, 0
+ .byte 22, 14, 0, 0
+ .byte 3, 5, 0, 0
+ .byte 3, 12, 0, 0
+ .byte 22, 2, 0, 0
+ .byte 22, 6, 0, 0
+ .byte 22, 10, 0, 0
+ .byte 22, 14, 0, 0
+ .byte 3, 5, 0, 0
+ .byte 3, 12, 0, 0
+ .byte 22, 3, 0, 0
+ .byte 22, 6, 0, 0
+ .byte 22, 10, 0, 0
+ .byte 22, 13, 0, 0
+ .byte 3, 5, 0, 0
+ .byte 22, 3, 0, 0
+ .byte 22, 6, 0, 0
+ .byte 3, 12, 0, 0
+ .byte 22, 10, 0, 0
+ .byte 22, 13, 0, 0
+ .byte 7, 7, 0, 0
+ .byte 26, 2, 0, 0
+ .byte 26, 5, 0, 0
+ .byte 26, 8, 0, 0
+ .byte 26, 11, 0, 0
+ .byte 26, 14, 0, 0
+ .byte 7, 5, 0, 0
+ .byte 7, 12, 0, 0
+ .byte 26, 2, 0, 0
+ .byte 26, 6, 0, 0
+ .byte 26, 10, 0, 0
+ .byte 26, 14, 0, 0
+ .byte 7, 5, 0, 0
+ .byte 7, 12, 0, 0
+ .byte 26, 3, 0, 0
+ .byte 26, 6, 0, 0
+ .byte 26, 10, 0, 0
+ .byte 26, 13, 0, 0
+ .byte 7, 5, 0, 0
+ .byte 26, 3, 0, 0
+ .byte 26, 6, 0, 0
+ .byte 7, 12, 0, 0
+ .byte 26, 10, 0, 0
+ .byte 26, 13, 0, 0
+
+ .align 2
+gUnknown_08376858:: @ 8376858
+ .4byte BG_VRAM + 0xF1C8
+ .4byte BG_VRAM + 0xF0AE
+ .4byte BG_VRAM + 0xF16E
+ .4byte BG_VRAM + 0xF22E
+ .4byte BG_VRAM + 0xF2EE
+ .4byte BG_VRAM + 0xF3AE
+ .4byte BG_VRAM + 0xF148
+ .4byte BG_VRAM + 0xF308
+ .4byte BG_VRAM + 0xF0AE
+ .4byte BG_VRAM + 0xF1AE
+ .4byte BG_VRAM + 0xF2AE
+ .4byte BG_VRAM + 0xF3AE
+ .4byte BG_VRAM + 0xF148
+ .4byte BG_VRAM + 0xF308
+ .4byte BG_VRAM + 0xF0EE
+ .4byte BG_VRAM + 0xF1AE
+ .4byte BG_VRAM + 0xF2AE
+ .4byte BG_VRAM + 0xF36E
+ .4byte BG_VRAM + 0xF148
+ .4byte BG_VRAM + 0xF0EE
+ .4byte BG_VRAM + 0xF1AE
+ .4byte BG_VRAM + 0xF308
+ .4byte BG_VRAM + 0xF2AE
+ .4byte BG_VRAM + 0xF36E
+
+ .align 2
+gUnknown_083768B8:: @ 83768B8
+ .byte 8, 44, 0, 0
+ .byte 92, 22, 0, 0
+ .byte 92, 46, 0, 0
+ .byte 92, 70, 0, 0
+ .byte 92, 94, 0, 0
+ .byte 92, 118, 0, 0
+ .byte 196, 136, 0, 0
+ .byte 196, 152, 0, 0
+ .byte 8, 28, 0, 0
+ .byte 8, 84, 0, 0
+ .byte 92, 22, 0, 0
+ .byte 92, 54, 0, 0
+ .byte 92, 86, 0, 0
+ .byte 92, 118, 0, 0
+ .byte 196, 136, 0, 0
+ .byte 196, 152, 0, 0
+ .byte 8, 28, 0, 0
+ .byte 8, 84, 0, 0
+ .byte 92, 30, 0, 0
+ .byte 92, 54, 0, 0
+ .byte 92, 86, 0, 0
+ .byte 92, 110, 0, 0
+ .byte 196, 136, 0, 0
+ .byte 196, 152, 0, 0
+
+ .align 2
+gUnknown_08376918:: @ 8376918
+ .4byte BG_VRAM + 0xF1C6
+ .4byte BG_VRAM + 0xF06C
+ .4byte BG_VRAM + 0xF12C
+ .4byte BG_VRAM + 0xF1EC
+ .4byte BG_VRAM + 0xF2AC
+ .4byte BG_VRAM + 0xF36C
+ .4byte BG_VRAM + 0xF148
+ .4byte BG_VRAM + 0xF308
+ .4byte BG_VRAM + 0xF0AE
+ .4byte BG_VRAM + 0xF1AE
+ .4byte BG_VRAM + 0xF2AE
+ .4byte BG_VRAM + 0xF3AE
+
+ .align 2
+gUnknown_08376948:: @ 8376948
+ .byte 2, 4, 10, 9
+ .byte 16, 1, 29, 3
+ .byte 16, 4, 29, 6
+ .byte 16, 7, 29, 9
+ .byte 16, 10, 29, 12
+ .byte 16, 13, 29, 15
+ .byte 2, 2, 10, 7
+ .byte 2, 9, 10, 14
+ .byte 16, 1, 29, 3
+ .byte 16, 5, 29, 7
+ .byte 16, 9, 29, 11
+ .byte 16, 13, 29, 15
+
+ .align 2
+gUnknown_08376978:: @ 8376978
+ .byte 2, 7, 10, 9
+ .byte 21, 1, 29, 3
+ .byte 21, 4, 29, 6
+ .byte 21, 7, 29, 9
+ .byte 21, 10, 29, 12
+ .byte 21, 13, 29, 15
+ .byte 2, 2, 10, 7
+ .byte 2, 9, 10, 14
+ .byte 16, 1, 29, 3
+ .byte 16, 5, 29, 7
+ .byte 16, 9, 29, 11
+ .byte 16, 13, 29, 15
+
+ .align 2
+gUnknown_083769A8:: @ 83769A8
+ .byte 0, 3, 11, 1, 11, 4, 11, 7, 11, 10, 11, 13
+ .byte 0, 1, 0, 8, 11, 1, 11, 5, 11, 9, 11, 13
+
+ .align 2
+gUnknown_083769C0:: @ 83769C0
+ .byte 0, 1
+ .byte 0, 8
+ .byte 11, 2
+ .byte 11, 5
+ .byte 11, 9
+ .byte 11, 12
+ .byte 0, 1
+ .byte 0, 8
+ .byte 11, 2
+ .byte 11, 5
+ .byte 11, 9
+ .byte 11, 12
+
+gUnknown_083769D8:: @ 83769D8
+ .byte 0x24,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x27
+ .byte 0x34,0x35,0x35,0x35,0x35,0x35,0x35,0x35,0x35,0x35,0x37
+ .byte 0x34,0x35,0x35,0x35,0x35,0x35,0x35,0x35,0x35,0x35,0x37
+ .byte 0x34,0x35,0x35,0x35,0x35,0x35,0x35,0x35,0x35,0x35,0x37
+ .byte 0x44,0x45,0x45,0x45,0x45,0x45,0x45,0x45,0x45,0x45,0x47
+ .byte 0x44,0x45,0x45,0x45,0x45,0x45,0x45,0x45,0x45,0x45,0x47
+ .byte 0x54,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x57
+
+gUnknown_08376A25:: @ 8376A25
+ .byte 0x50,0x51,0x51,0x51,0x51,0x51,0x51,0x51,0x51,0x51,0x51,0x51,0x51,0x51,0x51,0x51,0x51,0x51,0x53
+ .byte 0x60,0x61,0x61,0x61,0x61,0x61,0x61,0x61,0x61,0x61,0x61,0x61,0x61,0x61,0x61,0x61,0x61,0x61,0x63
+ .byte 0x70,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x73
+
+gUnknown_08376A5E:: @ 8376A5E
+ .byte 0x20,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x23
+ .byte 0x30,0x31,0x31,0x31,0x31,0x31,0x31,0x31,0x31,0x31,0x31,0x31,0x31,0x31,0x31,0x31,0x31,0x31,0x33
+ .byte 0x40,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x43
+
+@ unknown, unreferenced data
+ .byte 0x0C
+ .byte 0x0D
+ .byte 0x0E
+ .byte 0x0F
+ .byte 0x00
+ .byte 0x01
+ .byte 0x02
+ .byte 0x03
+ .byte 0x04
+ .byte 0x05
+ .byte 0x0F
+ .byte 0x10
+ .byte 0x11
+ .byte 0x12
+ .byte 0x13
+ .byte 0x14
+ .byte 0x15
+ .byte 0x0F
+ .byte 0x06
+ .byte 0x05
+ .byte 0x01
+ .byte 0x07
+ .byte 0x08
+ .byte 0x09
+ .byte 0x0F
+ .byte 0x16
+ .byte 0x15
+ .byte 0x11
+ .byte 0x17
+ .byte 0x18
+ .byte 0x19
+ .byte 0x0F
+ .byte 0x09
+ .byte 0x0A
+ .byte 0x0B
+ .byte 0x05
+ .byte 0x0C
+ .byte 0x0F
+ .byte 0x0F
+ .byte 0x19
+ .byte 0x1A
+ .byte 0x1B
+ .byte 0x15
+ .byte 0x1C
+ .byte 0x0F
+ .byte 0x0F
+ .byte 0x0D
+ .byte 0x0B
+ .byte 0x05
+ .byte 0x0C
+ .byte 0x0F
+ .byte 0x0F
+ .byte 0x0F
+ .byte 0x1D
+ .byte 0x1B
+ .byte 0x15
+ .byte 0x1C
+ .byte 0x0F
+ .byte 0x0F
+ .byte 0x0F
+ .byte 0x06
+ .byte 0x05
+ .byte 0x0B
+ .byte 0x05
+ .byte 0x0C
+ .byte 0x0F
+ .byte 0x0F
+ .byte 0x16
+ .byte 0x15
+ .byte 0x1B
+ .byte 0x15
+ .byte 0x1C
+ .byte 0x0F
+ .byte 0x0F
+ .byte 0x0F
+ .byte 0x0F
+ .byte 0x20
+ .byte 0x0C
+ .byte 0x09
+ .byte 0x0F
+ .byte 0x0F
+ .byte 0x0F
+ .byte 0x1F
+ .byte 0x30
+ .byte 0x1C
+ .byte 0x19
+ .byte 0x0F
+ .byte 0x0F
+ .byte 0x0F
+ .byte 0x25
+ .byte 0x0F
+ .byte 0x22
+ .byte 0x24
+ .byte 0x0F
+ .byte 0x0F
+ .byte 0x0F
+ .byte 0x35
+ .byte 0x41
+ .byte 0x32
+ .byte 0x34
+ .byte 0x0F
+ .byte 0x0F
+ .byte 0x0F
+ .byte 0x26
+ .byte 0x0F
+ .byte 0x23
+ .byte 0x0E
+ .byte 0x0F
+ .byte 0x0F
+ .byte 0x0F
+ .byte 0x36
+ .byte 0x43
+ .byte 0x33
+ .byte 0x1E
+ .byte 0x0F
+ .byte 0x0F
+ .byte 0x27
+ .byte 0x28
+ .byte 0x29
+ .byte 0x03
+ .byte 0x2A
+ .byte 0x0F
+ .byte 0x0F
+ .byte 0x37
+ .byte 0x38
+ .byte 0x39
+ .byte 0x13
+ .byte 0x3A
+ .byte 0x0F
+ .byte 0x0F
+ .byte 0x27
+ .byte 0x28
+ .byte 0x29
+ .byte 0x03
+ .byte 0x04
+ .byte 0x05
+ .byte 0x0F
+ .byte 0x37
+ .byte 0x38
+ .byte 0x39
+ .byte 0x13
+ .byte 0x14
+ .byte 0x15
+ .byte 0x0F
+ .byte 0x2B
+ .byte 0x2C
+ .byte 0x02
+ .byte 0x28
+ .byte 0x29
+ .byte 0x2D
+ .byte 0x21
+ .byte 0x3B
+ .byte 0x3C
+ .byte 0x12
+ .byte 0x38
+ .byte 0x39
+ .byte 0x3D
+ .byte 0x31
+ .byte 0x2B
+ .byte 0x2C
+ .byte 0x02
+ .byte 0x28
+ .byte 0x29
+ .byte 0x08
+ .byte 0x09
+ .byte 0x3B
+ .byte 0x3C
+ .byte 0x12
+ .byte 0x38
+ .byte 0x39
+ .byte 0x18
+ .byte 0x19
+ .byte 0x2E
+ .byte 0x2F
+ .byte 0x2B
+ .byte 0x2C
+ .byte 0x02
+ .byte 0x27
+ .byte 0x2D
+ .byte 0x3E
+ .byte 0x3F
+ .byte 0x3B
+ .byte 0x3C
+ .byte 0x12
+ .byte 0x45
+ .byte 0x3D
+
+ .align 2
+gUnknown_08376B54:: @ 8376B54
+ .4byte ItemUseMoveMenu_HandleMoveSelection
+ .4byte ItemUseMoveMenu_HandleCancel
+
+ .align 1
+Unknown_08376B5C:
+ .2byte 0x4000, 0x4018, 0xF400
+ .2byte 0x4000, 0x4038, 0xF404
+ .2byte 0x4008, 0x4018, 0xF408
+ .2byte 0x4008, 0x4038, 0xF40C
+ .2byte 0x4010, 0x4020, 0xF410
+ .2byte 0x4020, 0x4025, 0xF418
+ .2byte 0x4020, 0x4045, 0xF41C
+ .2byte -1
+
+ .align 1
+Unknown_08376B88:
+ .2byte 0x4000, 0x4018, 0xF400
+ .2byte 0x4000, 0x4038, 0xF404
+ .2byte 0x4008, 0x4018, 0xF408
+ .2byte 0x4008, 0x4038, 0xF40C
+ .2byte 0x4010, 0x4020, 0xF410
+ .2byte 0x4010, 0x4065, 0xF418
+ .2byte 0x4010, 0x4085, 0xF41C
+ .2byte -1
+
+ .align 2
+gUnknown_08376BB4:: @ 8376BB4
+ .byte 0x1, 0x4
+ .space 2
+ .4byte Unknown_08376B5C
+
+ .byte 0xC, 0x1
+ .space 2
+ .4byte Unknown_08376B88
+
+ .byte 0xC, 0x4
+ .space 2
+ .4byte Unknown_08376B88
+
+ .byte 0xC, 0x7
+ .space 2
+ .4byte Unknown_08376B88
+
+ .byte 0xC, 0xA
+ .space 2
+ .4byte Unknown_08376B88
+
+ .byte 0xC, 0xD
+ .space 2
+ .4byte Unknown_08376B88
+
+ .byte 0x1, 0x2
+ .space 2
+ .4byte Unknown_08376B5C
+
+ .byte 0x1, 0x9
+ .space 2
+ .4byte Unknown_08376B5C
+
+ .byte 0xC, 0x1
+ .space 2
+ .4byte Unknown_08376B88
+
+ .byte 0xC, 0x5
+ .space 2
+ .4byte Unknown_08376B88
+
+ .byte 0xC, 0x9
+ .space 2
+ .4byte Unknown_08376B88
+
+ .byte 0xC, 0xD
+ .space 2
+ .4byte Unknown_08376B88
+
+ .byte 0x1, 0x2
+ .space 2
+ .4byte Unknown_08376B5C
+
+ .byte 0x1, 0x9
+ .space 2
+ .4byte Unknown_08376B5C
+
+ .byte 0xC, 0x2
+ .space 2
+ .4byte Unknown_08376B88
+
+ .byte 0xC, 0x5
+ .space 2
+ .4byte Unknown_08376B88
+
+ .byte 0xC, 0x9
+ .space 2
+ .4byte Unknown_08376B88
+
+ .byte 0xC, 0xC
+ .space 2
+ .4byte Unknown_08376B88
+
+ .byte 0x1, 0x2
+ .space 2
+ .4byte Unknown_08376B5C
+
+ .byte 0xC, 0x2
+ .space 2
+ .4byte Unknown_08376B88
+
+ .byte 0xC, 0x5
+ .space 2
+ .4byte Unknown_08376B88
+
+ .byte 0x1, 0x9
+ .space 2
+ .4byte Unknown_08376B5C
+
+ .byte 0xC, 0x9
+ .space 2
+ .4byte Unknown_08376B88
+
+ .byte 0xC, 0xC
+ .space 2
+ .4byte Unknown_08376B88
+
+ .align 2
+gUnknown_08376C74:: @ 8376C74
+ .4byte sub_8089CD4, sub_806AFD0, 0
+ .4byte SetUpBattlePokemonMenu, SetUpBattlePartyMenu, 0
+ .4byte sub_80F9C6C, sub_80F9ACC, 0
+ .4byte sub_80F9C6C, sub_806AFD0, 0
+ .4byte sub_81222B0, sub_8121E78, 0
+ .4byte sub_8122A48, sub_8122854, 0xFF
+ .4byte sub_8122E0C, sub_806AFD0, 0x0F
+ .4byte sub_80F9E64, sub_80F9CE8, 0
+
+ .align 2
+gUnknown_08376CD4:: @ 8376CD4
+ .2byte 0x2A, 0x2B, 0x2C, 0x2D, 0x2E, 0x2F
+ .2byte 0x3A, 0x3B, 0x3C, 0x3D, 0x3E, 0x3F
+
+ .align 2
+gUnknown_08376CEC:: @ 8376CEC
+ .2byte 0x2A, 0x0B, 0x0C, 0x0D, 0x0E, 0x2F
+ .2byte 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F
+
+ .align 2
+gUnknown_08376D04:: @ 8376D04
+ .4byte gOtherText_HP
+ .4byte gOtherText_Attack
+ .4byte gOtherText_Defense
+ .4byte gOtherText_SpAtk
+ .4byte gOtherText_SpDef
+ .4byte gOtherText_Speed
+
+gUnknown_08376D1C:: @ 8376D1C
+ .byte 0x3A @ HP
+ .byte 0x3B @ Attack
+ .byte 0x3C @ Defense
+ .byte 0x3E @ Sp. Attack
+ .byte 0x3F @ Sp. Defense
+ .byte 0x3D @ Speed
diff --git a/data/player_pc.s b/data/player_pc.s
new file mode 100644
index 000000000..199411221
--- /dev/null
+++ b/data/player_pc.s
@@ -0,0 +1,74 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+ .align 2
+gUnknown_08406288:: @ 8406288
+ .4byte PCText_TakeOutItems
+ .4byte PCText_StoreItems
+ .4byte PCText_ThrowAwayItems
+ .4byte gMenuText_GoBackToPrev
+
+ .align 2
+gUnknown_08406298:: @ 8406298
+ .4byte SecretBaseText_ItemStorage, PlayerPC_ItemStorage
+ .4byte gPCText_Mailbox, PlayerPC_Mailbox
+ .4byte SecretBaseText_Decoration, PlayerPC_Decoration
+ .4byte SecretBaseText_TurnOff, PlayerPC_TurnOff
+
+gUnknown_084062B8:: @ 84062B8
+ .incbin "baserom.gba", 0x004062b8, 0x4
+
+gUnknown_084062BC:: @ 84062BC
+ .incbin "baserom.gba", 0x004062bc, 0x4
+
+ .align 2
+gUnknown_084062C0:: @ 84062C0
+ .4byte PCText_WithdrawItem, ItemStorage_Withdraw
+ .4byte PCText_DepositItem, ItemStorage_Deposit
+ .4byte PCText_TossItem, ItemStorage_Toss
+ .4byte gUnknownText_Exit, ItemStorage_Exit
+
+ .align 2
+gUnknown_084062E0:: @ 84062E0
+ .4byte sub_813A83C
+ .4byte sub_813A878
+
+ .align 2
+gUnknown_084062E8:: @ 84062E8
+ .4byte sub_813B578
+ .4byte sub_813B610
+
+ .align 2
+gNewGamePCItems:: @ 84062F0
+ .2byte ITEM_POTION, 1
+ .2byte 0, 0
+
+ .align 2
+gUnknown_084062F8:: @ 84062F8
+ .4byte OtherText_Read, Mailbox_Read
+ .4byte gOtherText_MoveToBag, Mailbox_MoveToBag
+ .4byte OtherText_Give, Mailbox_Give
+ .4byte gOtherText_CancelNoTerminator, Mailbox_Cancel
+
+gUnknown_08406318:: @ 8406318
+ .string "{STR_VAR_1}{CLEAR_TO 80}$"
+
+gUnknown_0840631E:: @ 840631E
+ .string "{COLOR RED}{STR_VAR_1}{CLEAR_TO 80}$"
+
+gUnknown_08406327:: @ 8406327
+ .string "{STR_VAR_1}$"
+
+gUnknown_0840632A:: @ 840632A
+ .string "{COLOR RED}{STR_VAR_1}$"
+
+gUnknown_08406330:: @ 8406330
+ .string "{CLEAR_TO 32}$"
+
+gUnknown_08406334:: @ 8406334
+ .incbin "baserom.gba", 0x00406334, 0x6
+
+gUnknown_0840633A:: @ 840633A
+ .string "{COLOR RED}{STR_VAR_1}$"
diff --git a/data/pokeball.s b/data/pokeball.s
new file mode 100644
index 000000000..788f8bdb7
--- /dev/null
+++ b/data/pokeball.s
@@ -0,0 +1,137 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+ .align 2
+gUnknown_0820A92C:: @ 820A92C
+ obj_tiles gInterfaceGfx_PokeBall, 384, 0xd6d8 @ poke
+ obj_tiles gInterfaceGfx_GreatBall, 384, 0xd6d9 @ great
+ obj_tiles gInterfaceGfx_SafariBall, 384, 0xd6da @ safari
+ obj_tiles gInterfaceGfx_UltraBall, 384, 0xd6db @ ultra
+ obj_tiles gInterfaceGfx_MasterBall, 384, 0xd6dc @ master
+ obj_tiles gInterfaceGfx_NetBall, 384, 0xd6dd @ net
+ obj_tiles gInterfaceGfx_DiveBall, 384, 0xd6de @ dive
+ obj_tiles gInterfaceGfx_NestBall, 384, 0xd6df @ nest
+ obj_tiles gInterfaceGfx_RepeatBall, 384, 0xd6e0 @ repeat
+ obj_tiles gInterfaceGfx_TimerBall, 384, 0xd6e1 @ timer
+ obj_tiles gInterfaceGfx_LuxuryBall, 384, 0xd6e2 @ luxury
+ obj_tiles gInterfaceGfx_PremierBall, 384, 0xd6e3 @ premier
+
+ .align 2
+gUnknown_0820A98C:: @ 820A98C
+ obj_pal gInterfacePal_PokeBall, 0xD6D8 @ poke
+ obj_pal gInterfacePal_GreatBall, 0xD6D9 @ great
+ obj_pal gInterfacePal_SafariBall, 0xD6DA @ safari
+ obj_pal gInterfacePal_UltraBall, 0xD6DB @ ultra
+ obj_pal gInterfacePal_MasterBall, 0xD6DC @ master
+ obj_pal gInterfacePal_NetBall, 0xD6DD @ net
+ obj_pal gInterfacePal_DiveBall, 0xD6DE @ dive
+ obj_pal gInterfacePal_NestBall, 0xD6DF @ nest
+ obj_pal gInterfacePal_RepeatBall, 0xD6E0 @ repeat
+ obj_pal gInterfacePal_TimerBall, 0xD6E1 @ timer
+ obj_pal gInterfacePal_LuxuryBall, 0xD6E2 @ luxury
+ obj_pal gInterfacePal_PremierBall, 0xD6E3 @ premier
+
+ .align 2
+gOamData_820A9EC:: @ 820A9EC
+ .2byte 0x0300
+ .2byte 0x4000
+ .2byte 0x0800
+
+ .align 2
+gSpriteAnim_820A9F4: @ 820A9F4
+ obj_image_anim_frame 0, 5
+ obj_image_anim_jump 0
+
+ .align 2
+gSpriteAnim_820A9FC: @ 820A9FC
+ obj_image_anim_frame 4, 1
+ obj_image_anim_jump 0
+
+ .align 2
+gSpriteAnim_820AA04: @ 820AA04
+ obj_image_anim_frame 8, 5
+ obj_image_anim_jump 0
+
+ .align 2
+gSpriteAnim_820AA0C: @ 820AA0C
+ obj_image_anim_frame 12, 1
+ obj_image_anim_jump 0
+
+ .align 2
+gSpriteAnim_820AA14:: @ 820AA14
+ obj_image_anim_frame 0, 1
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_820AA1C:: @ 820AA1C
+ obj_image_anim_frame 4, 5
+ obj_image_anim_frame 8, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_820AA28:: @ 820AA28
+ obj_image_anim_frame 4, 5
+ obj_image_anim_frame 0, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_820AA34:: @ 820AA34
+ .4byte gSpriteAnim_820AA14
+ .4byte gSpriteAnim_820AA1C
+ .4byte gSpriteAnim_820AA28
+
+ @ unused?
+ .4byte gSpriteAnim_820A9F4
+ .4byte gSpriteAnim_820AA04
+ .4byte gSpriteAnim_820A9FC
+ .4byte gSpriteAnim_820AA0C
+
+ .align 2
+gSpriteAffineAnim_820AA50:: @ 820AA50
+ obj_rot_scal_anim_frame 0x0, 0x0, 0, 1
+ obj_rot_scal_anim_jump 0
+
+ .align 2
+gSpriteAffineAnim_820AA60:: @ 820AA60
+ obj_rot_scal_anim_frame 0x0, 0x0, -3, 1
+ obj_rot_scal_anim_jump 0
+
+ .align 2
+gSpriteAffineAnim_820AA70:: @ 820AA70
+ obj_rot_scal_anim_frame 0x0, 0x0, 3, 1
+ obj_rot_scal_anim_jump 0
+
+ .align 2
+gSpriteAffineAnim_820AA80:: @ 820AA80
+ obj_rot_scal_anim_frame 0x100, 0x100, 0, 0
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnim_820AA90:: @ 820AA90
+ obj_rot_scal_anim_frame 0x0, 0x0, 25, 1
+ obj_rot_scal_anim_jump 0
+
+ .align 2
+gSpriteAffineAnimTable_820AAA0:: @ 820AAA0
+ .4byte gSpriteAffineAnim_820AA50
+ .4byte gSpriteAffineAnim_820AA60
+ .4byte gSpriteAffineAnim_820AA70
+ .4byte gSpriteAffineAnim_820AA80
+ .4byte gSpriteAffineAnim_820AA90
+
+ .align 2
+gSpriteTemplate_820AAB4:: @ 820AAB4
+ spr_template 55000, 55000, gOamData_820A9EC, gSpriteAnimTable_820AA34, NULL, gSpriteAffineAnimTable_820AAA0, objc_0804ABD4
+ spr_template 55001, 55001, gOamData_820A9EC, gSpriteAnimTable_820AA34, NULL, gSpriteAffineAnimTable_820AAA0, objc_0804ABD4
+ spr_template 55002, 55002, gOamData_820A9EC, gSpriteAnimTable_820AA34, NULL, gSpriteAffineAnimTable_820AAA0, objc_0804ABD4
+ spr_template 55003, 55003, gOamData_820A9EC, gSpriteAnimTable_820AA34, NULL, gSpriteAffineAnimTable_820AAA0, objc_0804ABD4
+ spr_template 55004, 55004, gOamData_820A9EC, gSpriteAnimTable_820AA34, NULL, gSpriteAffineAnimTable_820AAA0, objc_0804ABD4
+ spr_template 55005, 55005, gOamData_820A9EC, gSpriteAnimTable_820AA34, NULL, gSpriteAffineAnimTable_820AAA0, objc_0804ABD4
+ spr_template 55006, 55006, gOamData_820A9EC, gSpriteAnimTable_820AA34, NULL, gSpriteAffineAnimTable_820AAA0, objc_0804ABD4
+ spr_template 55007, 55007, gOamData_820A9EC, gSpriteAnimTable_820AA34, NULL, gSpriteAffineAnimTable_820AAA0, objc_0804ABD4
+ spr_template 55008, 55008, gOamData_820A9EC, gSpriteAnimTable_820AA34, NULL, gSpriteAffineAnimTable_820AAA0, objc_0804ABD4
+ spr_template 55009, 55009, gOamData_820A9EC, gSpriteAnimTable_820AA34, NULL, gSpriteAffineAnimTable_820AAA0, objc_0804ABD4
+ spr_template 55010, 55010, gOamData_820A9EC, gSpriteAnimTable_820AA34, NULL, gSpriteAffineAnimTable_820AAA0, objc_0804ABD4
+ spr_template 55011, 55011, gOamData_820A9EC, gSpriteAnimTable_820AA34, NULL, gSpriteAffineAnimTable_820AAA0, objc_0804ABD4
diff --git a/data/pokeblock.s b/data/pokeblock.s
new file mode 100644
index 000000000..a200edfb6
--- /dev/null
+++ b/data/pokeblock.s
@@ -0,0 +1,92 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+gUnknown_083F7E28:: @ 83F7E28
+ .incbin "baserom.gba", 0x003f7e28, 0x80
+
+ .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
+
+Unknown_83F7F48:
+ .incbin "baserom.gba", 0x003f7f48, 0x28
+
+ .align 2
+gUnknown_083F7F70:: @ 83F7F70
+ .4byte Unknown_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
+ .incbin "baserom.gba", 0x003f7f9c, 0x28
diff --git a/data/pokeblock_feed.s b/data/pokeblock_feed.s
new file mode 100644
index 000000000..ae5b17d12
--- /dev/null
+++ b/data/pokeblock_feed.s
@@ -0,0 +1,225 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+@ 8411A10
+ .include "data/mon_pokeblock_anims.inc"
+
+ .align 2
+gSpriteAffineAnim_8411E90:: @ 8411E90
+ obj_rot_scal_anim_frame 0xFF00, 0x100, 0, 0
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnim_8411EA0:: @ 8411EA0
+ obj_rot_scal_anim_frame 0x0, 0x0, 12, 1
+ obj_rot_scal_anim_frame 0x0, 0x0, 0, 30
+ obj_rot_scal_anim_frame 0x0, 0x0, -12, 1
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnim_8411EC0:: @ 8411EC0
+ obj_rot_scal_anim_frame 0xFF00, 0x100, 0, 0
+ obj_rot_scal_anim_frame 0x0, 0x0, 12, 1
+ obj_rot_scal_anim_frame 0x0, 0x0, 0, 28
+ obj_rot_scal_anim_frame 0x0, 0x0, -4, 3
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnim_8411EE8:: @ 8411EE8
+ obj_rot_scal_anim_frame 0x0, 0x0, 1, 16
+ obj_rot_scal_anim_frame 0x0, 0x0, -1, 32
+ obj_rot_scal_anim_frame 0x0, 0x0, 1, 16
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnim_8411F08:: @ 8411F08
+ obj_rot_scal_anim_frame 0xFF00, 0x100, 0, 0
+ obj_rot_scal_anim_frame 0x0, 0x0, 1, 16
+ obj_rot_scal_anim_frame 0x0, 0x0, -1, 32
+ obj_rot_scal_anim_frame 0x0, 0x0, 1, 16
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnim_8411F30:: @ 8411F30
+ obj_rot_scal_anim_frame 0x0, 0x0, -1, 8
+ obj_rot_scal_anim_frame 0x0, 0x0, 0, 16
+ obj_rot_scal_anim_frame 0x0, 0x0, 1, 8
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnim_8411F50:: @ 8411F50
+ obj_rot_scal_anim_frame 0xFF00, 0x100, 0, 0
+ obj_rot_scal_anim_frame 0x0, 0x0, -1, 8
+ obj_rot_scal_anim_frame 0x0, 0x0, 0, 16
+ obj_rot_scal_anim_frame 0x0, 0x0, 1, 8
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnim_8411F78:: @ 8411F78
+ obj_rot_scal_anim_frame 0x0, 0x0, -1, 8
+ obj_rot_scal_anim_frame 0x0, 0x0, 0, 32
+ obj_rot_scal_anim_frame 0x0, 0x0, 1, 8
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnim_8411F98:: @ 8411F98
+ obj_rot_scal_anim_frame 0xFF00, 0x100, 0, 0
+ obj_rot_scal_anim_frame 0x0, 0x0, -1, 8
+ obj_rot_scal_anim_frame 0x0, 0x0, 0, 32
+ obj_rot_scal_anim_frame 0x0, 0x0, 1, 8
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnim_8411FC0:: @ 8411FC0
+ obj_rot_scal_anim_frame 0x0, 0x0, -1, 4
+ obj_rot_scal_anim_frame 0x0, 0x0, 0, 24
+ obj_rot_scal_anim_frame 0x0, 0x0, 1, 4
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnim_8411FE0:: @ 8411FE0
+ obj_rot_scal_anim_frame 0xFF00, 0x100, 0, 0
+ obj_rot_scal_anim_frame 0x0, 0x0, -1, 4
+ obj_rot_scal_anim_frame 0x0, 0x0, 0, 24
+ obj_rot_scal_anim_frame 0x0, 0x0, 1, 4
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnim_8412008:: @ 8412008
+ obj_rot_scal_anim_frame 0x0, 0x0, 1, 24
+ obj_rot_scal_anim_frame 0x0, 0x0, 0, 16
+ obj_rot_scal_anim_frame 0x0, 0x0, -12, 2
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnim_8412028:: @ 8412028
+ obj_rot_scal_anim_frame 0xFF00, 0x100, 0, 0
+ obj_rot_scal_anim_frame 0x0, 0x0, 1, 24
+ obj_rot_scal_anim_frame 0x0, 0x0, 0, 16
+ obj_rot_scal_anim_frame 0x0, 0x0, -12, 2
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnimTable_8412050:: @ 8412050
+ .4byte gSpriteAffineAnim_8411E90
+ .4byte gSpriteAffineAnim_8411EA0
+ .4byte gSpriteAffineAnim_8411EE8
+ .4byte gSpriteAffineAnim_8411F30
+ .4byte gSpriteAffineAnim_8411F78
+ .4byte gSpriteAffineAnim_8411FC0
+ .4byte gSpriteAffineAnim_8412008
+ .4byte gSpriteAffineAnim_8411E90
+ .4byte gSpriteAffineAnim_8411E90
+ .4byte gSpriteAffineAnim_8411E90
+ .4byte gSpriteAffineAnim_8411E90
+ .4byte gSpriteAffineAnim_8411EC0
+ .4byte gSpriteAffineAnim_8411F08
+ .4byte gSpriteAffineAnim_8411F50
+ .4byte gSpriteAffineAnim_8411F98
+ .4byte gSpriteAffineAnim_8411FE0
+ .4byte gSpriteAffineAnim_8412028
+ .4byte gSpriteAffineAnim_8411E90
+ .4byte gSpriteAffineAnim_8411E90
+ .4byte gSpriteAffineAnim_8411E90
+ .4byte gSpriteAffineAnim_8411E90
+
+ .align 2
+gUnknown_084120A4:: @ 84120A4
+ .4byte gPokeblockRed_Pal
+ .4byte gPokeblockBlue_Pal
+ .4byte gPokeblockPink_Pal
+ .4byte gPokeblockGreen_Pal
+ .4byte gPokeblockYellow_Pal
+ .4byte gPokeblockPurple_Pal
+ .4byte gPokeblockIndigo_Pal
+ .4byte gPokeblockBrown_Pal
+ .4byte gPokeblockLiteBlue_Pal
+ .4byte gPokeblockOlive_Pal
+ .4byte gPokeblockGray_Pal
+ .4byte gPokeblockBlack_Pal
+ .4byte gPokeblockWhite_Pal
+ .4byte gPokeblockGold_Pal
+
+ .align 2
+gSpriteAffineAnim_84120DC:: @ 84120DC
+ obj_rot_scal_anim_frame 0xFF00, 0x100, 0, 0
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnimTable_84120EC:: @ 84120EC
+ .4byte gSpriteAffineAnim_84120DC
+
+ .align 2
+gSpriteAffineAnim_84120F0:: @ 84120F0
+ obj_rot_scal_anim_frame 0xFF00, 0x100, 0, 0
+ obj_rot_scal_anim_frame 0x0, 0x0, -8, 1
+ obj_rot_scal_anim_frame 0x0, 0x0, -8, 1
+ obj_rot_scal_anim_frame 0x0, 0x0, -8, 1
+ obj_rot_scal_anim_frame 0x0, 0x0, -8, 1
+ obj_rot_scal_anim_frame 0x0, 0x0, 0, 8
+ obj_rot_scal_anim_frame 0x0, 0x0, 16, 1
+ obj_rot_scal_anim_frame 0x0, 0x0, 16, 1
+ obj_rot_scal_anim_frame 0x0, 0x0, 16, 1
+ obj_rot_scal_anim_frame 0xFF00, 0x100, 0, 0
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnim_8412148:: @ 8412148
+ obj_rot_scal_anim_frame 0xFF00, 0x100, 0, 0
+ obj_rot_scal_anim_frame 0x0, 0x0, 8, 1
+ obj_rot_scal_anim_frame 0x0, 0x0, 8, 1
+ obj_rot_scal_anim_frame 0x0, 0x0, 8, 1
+ obj_rot_scal_anim_frame 0x0, 0x0, 8, 1
+ obj_rot_scal_anim_frame 0x0, 0x0, 0, 8
+ obj_rot_scal_anim_frame 0x0, 0x0, -16, 1
+ obj_rot_scal_anim_frame 0x0, 0x0, -16, 1
+ obj_rot_scal_anim_frame 0x0, 0x0, -16, 1
+ obj_rot_scal_anim_frame 0xFF00, 0x100, 0, 0
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnimTable_84121A0:: @ 84121A0
+ .4byte gSpriteAffineAnim_84120DC
+
+ .align 2
+gSpriteAffineAnimTable_84121A4:: @ 84121A4
+ .4byte gSpriteAffineAnim_84120F0
+
+ .align 2
+gSpriteAffineAnimTable_84121A8:: @ 84121A8
+ .4byte gSpriteAffineAnim_8412148
+
+ .align 2
+gOamData_84121AC:: @ 84121AC
+ .2byte 0x0300
+ .2byte 0x0000
+ .2byte 0x0400
+
+ .align 2
+gSpriteAnim_84121B4:: @ 84121B4
+ obj_image_anim_frame 0, 0
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_84121BC:: @ 84121BC
+ .4byte gSpriteAnim_84121B4
+
+ .align 2
+gSpriteAffineAnim_84121C0:: @ 84121C0
+ obj_rot_scal_anim_frame 0x100, 0x100, 0, 0
+ obj_rot_scal_anim_frame 0xFFF8, 0xFFF8, 0, 1
+ obj_rot_scal_anim_jump 1
+
+ .align 2
+gSpriteAffineAnimTable_84121D8:: @ 84121D8
+ .4byte gSpriteAffineAnim_84121C0
+
+ .align 2
+gUnknown_084121DC:: @ 84121DC
+ obj_tiles gPokeblock_Gfx, 0x20, 14818
+
+ .align 2
+gSpriteTemplate_84121E4:: @ 84121E4
+ spr_template 14818, 14818, gOamData_84121AC, gSpriteAnimTable_84121BC, NULL, gSpriteAffineAnimTable_84121D8, sub_81481B0
diff --git a/data/pokedex.s b/data/pokedex.s
new file mode 100644
index 000000000..9e6300945
--- /dev/null
+++ b/data/pokedex.s
@@ -0,0 +1,503 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+ .align 2
+gUnknown_0839F67C:: @ 839F67C
+ .incbin "graphics/pokedex/search.gbapal"
+
+ .align 2
+gUnknown_0839F73C:: @ 839F73C
+ .incbin "graphics/pokedex/national.gbapal"
+
+ .space 0xA4
+
+ .align 2
+gUnknown_0839F8A0:: @ 839F8A0
+ .incbin "baserom.gba", 0x0039f8a0, 0xe8
+
+ .align 2
+gUnknown_0839F988:: @ 839F988
+ .incbin "baserom.gba", 0x0039f988, 0xf4
+
+gUnknown_0839FA7C:: @ 839FA7C
+ .incbin "graphics/pokedex/noball.4bpp.lz"
+
+@ 839FAC4
+ .include "data/pokedex_orders.inc"
+
+ .align 2
+gOamData_83A0404:: @ 83A0404
+ .2byte 0x00A0
+ .2byte 0x0000
+ .2byte 0x0400
+
+ .align 2
+gOamData_83A040C:: @ 83A040C
+ .2byte 0x40A0
+ .2byte 0x0000
+ .2byte 0x0000
+
+ .align 2
+gOamData_83A0414:: @ 83A0414
+ .2byte 0x40A0
+ .2byte 0xC000
+ .2byte 0x0000
+
+ .align 2
+gOamData_83A041C:: @ 83A041C
+ .2byte 0x08A0
+ .2byte 0x8000
+ .2byte 0x0400
+
+ .align 2
+gOamData_83A0424:: @ 83A0424
+ .2byte 0x40A0
+ .2byte 0xC000
+ .2byte 0x0000
+
+ .align 2
+gOamData_83A042C:: @ 83A042C
+ .2byte 0x80A0
+ .2byte 0x0000
+ .2byte 0x0000
+
+ .align 2
+gSpriteAnim_83A0434:: @ 83A0434
+ obj_image_anim_frame 3, 30
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83A043C:: @ 83A043C
+ obj_image_anim_frame 1, 30
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83A0444:: @ 83A0444
+ obj_image_anim_frame 16, 30
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83A044C:: @ 83A044C
+ obj_image_anim_frame 32, 30
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83A0454:: @ 83A0454
+ obj_image_anim_frame 64, 30
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83A045C:: @ 83A045C
+ obj_image_anim_frame 96, 30
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83A0464:: @ 83A0464
+ obj_image_anim_frame 128, 30
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83A046C:: @ 83A046C
+ obj_image_anim_frame 160, 30
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83A0474:: @ 83A0474
+ obj_image_anim_frame 192, 30
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83A047C:: @ 83A047C
+ obj_image_anim_frame 224, 30
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83A0484:: @ 83A0484
+ obj_image_anim_frame 226, 30
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83A048C:: @ 83A048C
+ obj_image_anim_frame 228, 30
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83A0494:: @ 83A0494
+ obj_image_anim_frame 230, 30
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83A049C:: @ 83A049C
+ obj_image_anim_frame 232, 30
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83A04A4:: @ 83A04A4
+ obj_image_anim_frame 234, 30
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83A04AC:: @ 83A04AC
+ obj_image_anim_frame 236, 30
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83A04B4:: @ 83A04B4
+ obj_image_anim_frame 238, 30
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83A04BC:: @ 83A04BC
+ obj_image_anim_frame 240, 30
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83A04C4:: @ 83A04C4
+ obj_image_anim_frame 242, 30
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83A04CC:: @ 83A04CC
+ obj_image_anim_frame 4, 30
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_83A04D4:: @ 83A04D4
+ .4byte gSpriteAnim_83A0434
+
+ .align 2
+gSpriteAnimTable_83A04D8:: @ 83A04D8
+ .4byte gSpriteAnim_83A043C
+
+ .align 2
+gSpriteAnimTable_83A04DC:: @ 83A04DC
+ .4byte gSpriteAnim_83A0444
+
+ .align 2
+gSpriteAnimTable_83A04E0:: @ 83A04E0
+ .4byte gSpriteAnim_83A044C
+ .4byte gSpriteAnim_83A0454
+ .4byte gSpriteAnim_83A045C
+ .4byte gSpriteAnim_83A0464
+
+ .align 2
+gSpriteAnimTable_83A04F0:: @ 83A04F0
+ .4byte gSpriteAnim_83A046C
+ .4byte gSpriteAnim_83A0474
+
+ .align 2
+gSpriteAnimTable_83A04F8:: @ 83A04F8
+ .4byte gSpriteAnim_83A047C
+ .4byte gSpriteAnim_83A0484
+ .4byte gSpriteAnim_83A048C
+ .4byte gSpriteAnim_83A0494
+ .4byte gSpriteAnim_83A049C
+ .4byte gSpriteAnim_83A04A4
+ .4byte gSpriteAnim_83A04AC
+ .4byte gSpriteAnim_83A04B4
+ .4byte gSpriteAnim_83A04BC
+ .4byte gSpriteAnim_83A04C4
+
+ .align 2
+gSpriteAnimTable_83A0520:: @ 83A0520
+ .4byte gSpriteAnim_83A04CC
+
+ .align 2
+gSpriteTemplate_83A0524:: @ 83A0524
+ spr_template 4096, 4096, gOamData_83A0404, gSpriteAnimTable_83A04D4, NULL, gDummySpriteAffineAnimTable, sub_808EF38
+
+ .align 2
+gSpriteTemplate_83A053C:: @ 83A053C
+ spr_template 4096, 4096, gOamData_83A040C, gSpriteAnimTable_83A04D8, NULL, gDummySpriteAffineAnimTable, sub_808EF8C
+
+ .align 2
+gSpriteTemplate_83A0554:: @ 83A0554
+ spr_template 4096, 4096, gOamData_83A0414, gSpriteAnimTable_83A04E0, NULL, gDummySpriteAffineAnimTable, sub_808F08C
+
+ .align 2
+gSpriteTemplate_83A056C:: @ 83A056C
+ spr_template 4096, 4096, gOamData_83A041C, gSpriteAnimTable_83A04DC, NULL, gDummySpriteAffineAnimTable, sub_808F0B4
+
+ .align 2
+gSpriteTemplate_83A0584:: @ 83A0584
+ spr_template 4096, 4096, gOamData_83A0424, gSpriteAnimTable_83A04F0, NULL, gDummySpriteAffineAnimTable, sub_808ED94
+
+ .align 2
+gSpriteTemplate_83A059C:: @ 83A059C
+ spr_template 4096, 4096, gOamData_83A042C, gSpriteAnimTable_83A04F8, NULL, gDummySpriteAffineAnimTable, sub_808ED94
+
+ .align 2
+gSpriteTemplate_83A05B4:: @ 83A05B4
+ spr_template 4096, 4096, gOamData_83A042C, gSpriteAnimTable_83A0520, NULL, gDummySpriteAffineAnimTable, sub_808F168
+
+ .align 2
+gUnknown_083A05CC:: @ 83A05CC
+ obj_tiles gPokedexMenu2_Gfx, 0x1F00, 0x1000
+ null_obj_tiles
+
+ .align 2
+gUnknown_083A05DC:: @ 83A05DC
+ obj_pal gPokedexMenu_Pal, 0x1000
+ null_obj_pal
+
+gUnknown_083A05EC:: @ 83A05EC
+ .byte 2, 4, 8, 16, 32
+
+gUnknown_083A05F1:: @ 83A05F1
+ .byte 16, 8, 4, 2, 1
+
+ .align 2
+gUnknown_083A05F8:: @ 83A05F8
+ .string "$"
+
+@ 83A05F9
+ .include "data/pokedex_entries.inc"
+
+gUnknown_083B4EC4:: @ 83B4EC4
+ .space 32
+
+@ 83B4EE4
+ .include "data/graphics/pokemon/footprint_table.inc"
+
+gUnknown_083B5558:: @ 83B5558
+ .incbin "baserom.gba", 0x3b5558, 0x24
+
+ .align 2
+gOamData_83B557C:: @ 83B557C
+ .2byte 0x0000
+ .2byte 0xC000
+ .2byte 0x0400
+
+ .align 2
+gUnknown_083B5584:: @ 83B5584
+ .4byte 0x02008000
+ .4byte 0x0200c000
+ .4byte 0x02010000
+ .4byte 0x02014000
+
+ .align 2
+gSpriteImageTable_83B5594:: @ 83B5594
+ obj_frame_tiles 0x02008000, 0x800
+ obj_frame_tiles 0x02008800, 0x800
+ obj_frame_tiles 0x02009000, 0x800
+ obj_frame_tiles 0x02009800, 0x800
+ obj_frame_tiles 0x0200A000, 0x800
+ obj_frame_tiles 0x0200A800, 0x800
+ obj_frame_tiles 0x0200B000, 0x800
+ obj_frame_tiles 0x0200B800, 0x800
+ obj_frame_tiles 0x0200C000, 0x800
+ obj_frame_tiles 0x0200C800, 0x800
+ obj_frame_tiles 0x0200D000, 0x800
+ obj_frame_tiles 0x0200D800, 0x800
+ obj_frame_tiles 0x0200E000, 0x800
+ obj_frame_tiles 0x0200E800, 0x800
+ obj_frame_tiles 0x0200F000, 0x800
+ obj_frame_tiles 0x0200F800, 0x800
+
+ .align 2
+gSpriteImageTable_83B5614:: @ 83B5614
+ obj_frame_tiles 0x0200C000, 0x800
+ obj_frame_tiles 0x0200C800, 0x800
+ obj_frame_tiles 0x0200D000, 0x800
+ obj_frame_tiles 0x0200D800, 0x800
+ obj_frame_tiles 0x0200E000, 0x800
+ obj_frame_tiles 0x0200E800, 0x800
+ obj_frame_tiles 0x0200F000, 0x800
+ obj_frame_tiles 0x0200F800, 0x800
+ obj_frame_tiles 0x02010000, 0x800
+ obj_frame_tiles 0x02010800, 0x800
+ obj_frame_tiles 0x02011000, 0x800
+ obj_frame_tiles 0x02011800, 0x800
+ obj_frame_tiles 0x02012000, 0x800
+ obj_frame_tiles 0x02012800, 0x800
+ obj_frame_tiles 0x02013000, 0x800
+ obj_frame_tiles 0x02013800, 0x800
+
+ .align 2
+gSpriteImageTable_83B5694:: @ 83B5694
+ obj_frame_tiles 0x02010000, 0x800
+ obj_frame_tiles 0x02010800, 0x800
+ obj_frame_tiles 0x02011000, 0x800
+ obj_frame_tiles 0x02011800, 0x800
+ obj_frame_tiles 0x02012000, 0x800
+ obj_frame_tiles 0x02012800, 0x800
+ obj_frame_tiles 0x02013000, 0x800
+ obj_frame_tiles 0x02013800, 0x800
+ obj_frame_tiles 0x02014000, 0x800
+ obj_frame_tiles 0x02014800, 0x800
+ obj_frame_tiles 0x02015000, 0x800
+ obj_frame_tiles 0x02015800, 0x800
+ obj_frame_tiles 0x02016000, 0x800
+ obj_frame_tiles 0x02016800, 0x800
+ obj_frame_tiles 0x02017000, 0x800
+ obj_frame_tiles 0x02017800, 0x800
+
+ .align 2
+gSpriteImageTable_83B5714:: @ 83B5714
+ obj_frame_tiles 0x02014000, 0x800
+ obj_frame_tiles 0x02014800, 0x800
+ obj_frame_tiles 0x02015000, 0x800
+ obj_frame_tiles 0x02015800, 0x800
+ obj_frame_tiles 0x02016000, 0x800
+ obj_frame_tiles 0x02016800, 0x800
+ obj_frame_tiles 0x02017000, 0x800
+ obj_frame_tiles 0x02017800, 0x800
+ obj_frame_tiles 0x02018000, 0x800
+ obj_frame_tiles 0x02018800, 0x800
+ obj_frame_tiles 0x02019000, 0x800
+ obj_frame_tiles 0x02019800, 0x800
+ obj_frame_tiles 0x0201A000, 0x800
+ obj_frame_tiles 0x0201A800, 0x800
+ obj_frame_tiles 0x0201B000, 0x800
+ obj_frame_tiles 0x0201B800, 0x800
+
+ .align 2
+gUnknown_083B5794:: @ 83B5794
+ .4byte gSpriteImageTable_83B5594
+ .4byte gSpriteImageTable_83B5614
+ .4byte gSpriteImageTable_83B5694
+ .4byte gSpriteImageTable_83B5714
+
+ .align 2
+gUnknown_083B57A4:: @ 83B57A4
+ spr_template 0xFFFF, 0, gOamData_83B557C, NULL, gSpriteImageTable_83B5594, gDummySpriteAffineAnimTable, nullsub_59
+
+gUnknown_083B57BC:: @ 83B57BC
+ .incbin "baserom.gba", 0x003b57bc, 0x28
+
+ .align 2
+gUnknown_083B57E4:: @ 83B57E4
+ .4byte DexText_SearchForPoke
+ .2byte 0, 5
+ .4byte DexText_SwitchDex
+ .2byte 6, 5
+ .4byte DexText_ReturnToDex
+ .2byte 12, 5
+
+ .align 2
+gUnknown_083B57FC:: @ 83B57FC
+ .4byte DexText_ListByABC
+ .byte 0, 2, 5, 5, 2, 12, 0, 0
+ .4byte DexText_ListByColor
+ .byte 0, 4, 5, 5, 4, 12, 0, 0
+ .4byte DexText_ListByType
+ .byte 0, 6, 5, 5, 6, 6, 0, 0
+ .4byte DexText_ListByType
+ .byte 0, 6, 5, 11, 6, 6, 0, 0
+ .4byte DexText_SelectDexList
+ .byte 0, 8, 5, 5, 8, 12, 0, 0
+ .4byte DexText_SelectDexMode
+ .byte 0, 10, 5, 5, 10, 12, 0, 0
+ .4byte DexText_ExecuteSearchSwitch
+ .byte 0, 12, 5, 0, 0, 0, 0, 0
+
+gUnknown_083B5850:: @ 83B5850
+ .incbin "baserom.gba", 0x003b5850, 0x1c
+
+gUnknown_083B586C:: @ 83B586C
+ .incbin "baserom.gba", 0x003b586c, 0x1c
+
+gUnknown_083B5888:: @ 83B5888
+ .incbin "baserom.gba", 0x003b5888, 0x1c
+
+gUnknown_083B58A4:: @ 83B58A4
+ .incbin "baserom.gba", 0x003b58a4, 0x1c
+
+ .align 2
+gUnknown_083B58C0:: @ 83B58C0
+ .4byte DexText_HoennDex2, DexText_HoennDex
+ .4byte DexText_NationalDex2, DexText_NationalDex
+ .4byte 0x0, 0x0
+
+ .align 2
+gUnknown_083B58D8:: @ 83B58D8
+ .4byte DexText_ListByNumber, DexText_NumericalMode
+ .4byte DexText_ListByABC2, DexText_ABCMode
+ .4byte DexText_ListByHeavyToLightest, DexText_HeaviestMode
+ .4byte DexText_ListByLightToHeaviest, DexText_LightestMode
+ .4byte DexText_ListByTallToSmallest, DexText_TallestMode
+ .4byte DexText_ListBySmallToTallest, DexText_SmallestMode
+ .4byte 0x0, 0x0
+
+ .align 2
+gUnknown_083B5910:: @ 83B5910
+ .4byte DexText_Terminator5, DexText_DontSpecify
+ .4byte DexText_Terminator5, DexText_ABC
+ .4byte DexText_Terminator5, DexText_DEF
+ .4byte DexText_Terminator5, DexText_GHI
+ .4byte DexText_Terminator5, DexText_JKL
+ .4byte DexText_Terminator5, DexText_MNO
+ .4byte DexText_Terminator5, DexText_PQR
+ .4byte DexText_Terminator5, DexText_STU
+ .4byte DexText_Terminator5, DexText_VWX
+ .4byte DexText_Terminator5, DexText_YZ
+ .4byte 0x0, 0x0
+
+ .align 2
+gUnknown_083B5968:: @ 83B5968
+ .4byte DexText_Terminator5, DexText_DontSpecify
+ .4byte DexText_Terminator5, DexText_Red
+ .4byte DexText_Terminator5, DexText_Blue
+ .4byte DexText_Terminator5, DexText_Yellow
+ .4byte DexText_Terminator5, DexText_Green
+ .4byte DexText_Terminator5, DexText_Black
+ .4byte DexText_Terminator5, DexText_Brown
+ .4byte DexText_Terminator5, DexText_Purple
+ .4byte DexText_Terminator5, DexText_Gray
+ .4byte DexText_Terminator5, DexText_White
+ .4byte DexText_Terminator5, DexText_Pink
+ .4byte 0x0, 0x0
+
+ .align 2
+gUnknown_083B59C8:: @ 83B59C8
+ .4byte DexText_Terminator5, DexText_None
+ .4byte DexText_Terminator5, gTypeNames + TYPE_NORMAL * 7
+ .4byte DexText_Terminator5, gTypeNames + TYPE_FIGHTING * 7
+ .4byte DexText_Terminator5, gTypeNames + TYPE_FLYING * 7
+ .4byte DexText_Terminator5, gTypeNames + TYPE_POISON * 7
+ .4byte DexText_Terminator5, gTypeNames + TYPE_GROUND * 7
+ .4byte DexText_Terminator5, gTypeNames + TYPE_ROCK * 7
+ .4byte DexText_Terminator5, gTypeNames + TYPE_BUG * 7
+ .4byte DexText_Terminator5, gTypeNames + TYPE_GHOST * 7
+ .4byte DexText_Terminator5, gTypeNames + TYPE_STEEL * 7
+ .4byte DexText_Terminator5, gTypeNames + TYPE_FIRE * 7
+ .4byte DexText_Terminator5, gTypeNames + TYPE_WATER * 7
+ .4byte DexText_Terminator5, gTypeNames + TYPE_GRASS * 7
+ .4byte DexText_Terminator5, gTypeNames + TYPE_ELECTRIC * 7
+ .4byte DexText_Terminator5, gTypeNames + TYPE_PSYCHIC * 7
+ .4byte DexText_Terminator5, gTypeNames + TYPE_ICE * 7
+ .4byte DexText_Terminator5, gTypeNames + TYPE_DRAGON * 7
+ .4byte DexText_Terminator5, gTypeNames + TYPE_DARK * 7
+ .4byte 0x0, 0x0
+
+gUnknown_083B5A60:: @ 83B5A60
+ .byte 0, 1
+
+gUnknown_083B5A62:: @ 83B5A62
+ .byte 0, 1, 2, 3, 4, 5
+
+gUnknown_083B5A68:: @ 83B5A68
+ .byte -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16, 17
+
+ .align 2
+gUnknown_083B5A7C:: @ 83B5A7C
+ .4byte gUnknown_083B5910
+ .byte 6, 7, 10, 0
+ .4byte gUnknown_083B5968
+ .byte 8, 9, 11, 0
+ .4byte gUnknown_083B59C8
+ .byte 10, 11, 18, 0
+ .4byte gUnknown_083B59C8
+ .byte 12, 13, 18, 0
+ .4byte gUnknown_083B58D8
+ .byte 4, 5, 6, 0
+ .4byte gUnknown_083B58C0
+ .byte 2, 3, 2, 0
+
+gUnknown_083B5AAC:: @ 83B5AAC
+ .incbin "baserom.gba", 0x003b5aac, 0x6
+
+gUnknown_083B5AB2:: @ 83B5AB2
+ .incbin "baserom.gba", 0x003b5ab2, 0x6
diff --git a/data/pokedex_area_screen.s b/data/pokedex_area_screen.s
new file mode 100644
index 000000000..ac24f8653
--- /dev/null
+++ b/data/pokedex_area_screen.s
@@ -0,0 +1,66 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+gUnknown_083F8418:: @ 83F8418
+ .incbin "graphics/pokedex/area_glow.gbapal"
+
+gUnknown_083F8438:: @ 83F8438
+ .incbin "graphics/pokedex/area_glow.4bpp.lz"
+
+ .align 1
+gUnknown_083F856C:: @ 83F856C
+ .2byte 360
+
+ .align 1
+gUnknown_083F856E:: @ 83F856E
+ .2byte 328, 0, 34
+ .2byte 412, 0, 0
+
+gUnknown_083F857A:: @ 83F857A
+ .incbin "baserom.gba", 0x003f857a, 0x12
+
+ .align 2
+gUnknown_083F858C:: @ 83F858C
+ obj_tiles AreaMarkerTiles, 0x80, 2
+
+ .align 2
+gUnknown_083F8594:: @ 83F8594
+ obj_pal AreaMarkerPalette, 2
+
+ .align 2
+gOamData_83F859C:: @ 83F859C
+ .2byte 0x0000
+ .2byte 0x4000
+ .2byte 0x0400
+
+ .align 2
+gSpriteTemplate_83F85A4:: @ 83F85A4
+ spr_template 2, 2, gOamData_83F859C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
+
+ .align 2
+AreaMarkerPalette:
+ .incbin "graphics/pokedex/area_marker.gbapal"
+
+ .align 2
+AreaMarkerTiles:
+ .incbin "graphics/pokedex/area_marker.4bpp"
+
+ .align 2
+gUnknown_083F865C:: @ 83F865C
+ obj_pal gAreaUnknownPalette, 3
+
+ .align 2
+gUnknown_083F8664:: @ 83F8664
+ obj_tiles 0x02000FB4, 0x600, 3
+
+ .align 2
+gOamData_83F866C:: @ 83F866C
+ .2byte 0x0000
+ .2byte 0x8000
+ .2byte 0x0400
+
+ .align 2
+gSpriteTemplate_83F8674:: @ 83F8674
+ spr_template 3, 3, gOamData_83F866C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
diff --git a/data/pokedex_cry_screen.s b/data/pokedex_cry_screen.s
new file mode 100644
index 000000000..70e356410
--- /dev/null
+++ b/data/pokedex_cry_screen.s
@@ -0,0 +1,76 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+ .align 2
+CryMeterNeedlePalette: @ 83FA65C
+ .incbin "graphics/pokedex/cry_meter_needle.gbapal"
+
+ .align 2
+CryMeterNeedleTiles: @ 83FA67C
+ .incbin "graphics/pokedex/cry_meter_needle.4bpp"
+
+gUnknown_083FAE7C:: @ 83FAE7C
+ .incbin "baserom.gba", 0x003fae7c, 0xa0
+
+gUnknown_083FAF1C:: @ 83FAF1C
+ .incbin "graphics/pokedex/cry_meter.gbapal"
+
+gUnknown_083FAF3C:: @ 83FAF3C
+ .incbin "graphics/pokedex/cry_meter.4bpp.lz"
+
+ .align 1
+gUnknown_083FB274:: @ 83FB274
+ .2byte 0x0,0x4,0x8,0xC,0x10,0x14,0x18,0x1C,0x400,0x404,0x408,0x40C,0x410,0x414,0x418,0x41C,0x800,0x804,0x808,0x80C,0x810,0x814,0x818,0x81C,0xC00,0xC04,0xC08,0xC0C,0xC10,0xC14,0xC18,0xC1C,0x1000,0x1004,0x1008,0x100C,0x1010,0x1014,0x1018,0x101C,0x1400,0x1404,0x1408,0x140C,0x1410,0x1414,0x1418,0x141C,0x1800,0x1804,0x1808,0x180C,0x1810,0x1814,0x1818,0x181C,0x1C00,0x1C04,0x1C08,0x1C0C,0x1C10,0x1C14,0x1C18,0x1C1C,0x2000,0x2004,0x2008,0x200C,0x2010,0x2014,0x2018,0x201C
+ .2byte 0x0,0x4,0x8,0xC,0x10,0x14,0x18,0x1C,0x400,0x404,0x408,0x40C,0x410,0x414,0x418,0x41C,0x800,0x804,0x808,0x80C,0x810,0x814,0x818,0x81C,0xC00,0xC04,0xC08,0xC0C,0xC10,0xC14,0xC18,0xC1C,0x1000,0x1004,0x1008,0x100C,0x1010,0x1014,0x1018,0x101C,0x1400,0x1404,0x1408,0x140C,0x1410,0x1414,0x1418,0x141C,0x1800,0x1804,0x1808,0x180C,0x1810,0x1814,0x1818,0x181C,0x1C00,0x1C04,0x1C08,0x1C0C,0x1C10,0x1C14,0x1C18,0x1C1C,0x2000,0x2004,0x2008,0x200C,0x2010,0x2014,0x2018,0x201C
+ .2byte 0x1,0x5,0x9,0xD,0x11,0x15,0x19,0x1D,0x401,0x405,0x409,0x40D,0x411,0x415,0x419,0x41D,0x801,0x805,0x809,0x80D,0x811,0x815,0x819,0x81D,0xC01,0xC05,0xC09,0xC0D,0xC11,0xC15,0xC19,0xC1D,0x1001,0x1005,0x1009,0x100D,0x1011,0x1015,0x1019,0x101D,0x1401,0x1405,0x1409,0x140D,0x1411,0x1415,0x1419,0x141D,0x1801,0x1805,0x1809,0x180D,0x1811,0x1815,0x1819,0x181D,0x1C01,0x1C05,0x1C09,0x1C0D,0x1C11,0x1C15,0x1C19,0x1C1D,0x2001,0x2005,0x2009,0x200D,0x2011,0x2015,0x2019,0x201D
+ .2byte 0x1,0x5,0x9,0xD,0x11,0x15,0x19,0x1D,0x401,0x405,0x409,0x40D,0x411,0x415,0x419,0x41D,0x801,0x805,0x809,0x80D,0x811,0x815,0x819,0x81D,0xC01,0xC05,0xC09,0xC0D,0xC11,0xC15,0xC19,0xC1D,0x1001,0x1005,0x1009,0x100D,0x1011,0x1015,0x1019,0x101D,0x1401,0x1405,0x1409,0x140D,0x1411,0x1415,0x1419,0x141D,0x1801,0x1805,0x1809,0x180D,0x1811,0x1815,0x1819,0x181D,0x1C01,0x1C05,0x1C09,0x1C0D,0x1C11,0x1C15,0x1C19,0x1C1D,0x2001,0x2005,0x2009,0x200D,0x2011,0x2015,0x2019,0x201D
+ .2byte 0x2,0x6,0xA,0xE,0x12,0x16,0x1A,0x1E,0x402,0x406,0x40A,0x40E,0x412,0x416,0x41A,0x41E,0x802,0x806,0x80A,0x80E,0x812,0x816,0x81A,0x81E,0xC02,0xC06,0xC0A,0xC0E,0xC12,0xC16,0xC1A,0xC1E,0x1002,0x1006,0x100A,0x100E,0x1012,0x1016,0x101A,0x101E,0x1402,0x1406,0x140A,0x140E,0x1412,0x1416,0x141A,0x141E,0x1802,0x1806,0x180A,0x180E,0x1812,0x1816,0x181A,0x181E,0x1C02,0x1C06,0x1C0A,0x1C0E,0x1C12,0x1C16,0x1C1A,0x1C1E,0x2002,0x2006,0x200A,0x200E,0x2012,0x2016,0x201A,0x201E
+ .2byte 0x2,0x6,0xA,0xE,0x12,0x16,0x1A,0x1E,0x402,0x406,0x40A,0x40E,0x412,0x416,0x41A,0x41E,0x802,0x806,0x80A,0x80E,0x812,0x816,0x81A,0x81E,0xC02,0xC06,0xC0A,0xC0E,0xC12,0xC16,0xC1A,0xC1E,0x1002,0x1006,0x100A,0x100E,0x1012,0x1016,0x101A,0x101E,0x1402,0x1406,0x140A,0x140E,0x1412,0x1416,0x141A,0x141E,0x1802,0x1806,0x180A,0x180E,0x1812,0x1816,0x181A,0x181E,0x1C02,0x1C06,0x1C0A,0x1C0E,0x1C12,0x1C16,0x1C1A,0x1C1E,0x2002,0x2006,0x200A,0x200E,0x2012,0x2016,0x201A,0x201E
+ .2byte 0x3,0x7,0xB,0xF,0x13,0x17,0x1B,0x1F,0x403,0x407,0x40B,0x40F,0x413,0x417,0x41B,0x41F,0x803,0x807,0x80B,0x80F,0x813,0x817,0x81B,0x81F,0xC03,0xC07,0xC0B,0xC0F,0xC13,0xC17,0xC1B,0xC1F,0x1003,0x1007,0x100B,0x100F,0x1013,0x1017,0x101B,0x101F,0x1403,0x1407,0x140B,0x140F,0x1413,0x1417,0x141B,0x141F,0x1803,0x1807,0x180B,0x180F,0x1813,0x1817,0x181B,0x181F,0x1C03,0x1C07,0x1C0B,0x1C0F,0x1C13,0x1C17,0x1C1B,0x1C1F,0x2003,0x2007,0x200B,0x200F,0x2013,0x2017,0x201B,0x201F
+ .2byte 0x3,0x7,0xB,0xF,0x13,0x17,0x1B,0x1F,0x403,0x407,0x40B,0x40F,0x413,0x417,0x41B,0x41F,0x803,0x807,0x80B,0x80F,0x813,0x817,0x81B,0x81F,0xC03,0xC07,0xC0B,0xC0F,0xC13,0xC17,0xC1B,0xC1F,0x1003,0x1007,0x100B,0x100F,0x1013,0x1017,0x101B,0x101F,0x1403,0x1407,0x140B,0x140F,0x1413,0x1417,0x141B,0x141F,0x1803,0x1807,0x180B,0x180F,0x1813,0x1817,0x181B,0x181F,0x1C03,0x1C07,0x1C0B,0x1C0F,0x1C13,0x1C17,0x1C1B,0x1C1F,0x2003,0x2007,0x200B,0x200F,0x2013,0x2017,0x201B,0x201F
+
+ .align 2
+ .4byte 0x201C000
+
+gUnknown_083FB6F8:: @ 83FB6F8
+ .incbin "baserom.gba", 0x003fb6f8, 0x20
+
+gUnknown_083FB718:: @ 83FB718
+ .incbin "baserom.gba", 0x003fb718, 0x20
+
+gUnknown_083FB738:: @ 83FB738
+ .byte 0xF0, 0x0F
+
+gUnknown_083FB73A:: @ 83FB73A
+ .incbin "baserom.gba", 0x003fb73a, 0x26
+
+ .align 2
+gSpriteAnim_83FB760:: @ 83FB760
+ obj_image_anim_frame 0, 30
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_83FB768:: @ 83FB768
+ .4byte gSpriteAnim_83FB760
+
+ .align 2
+gOamData_83FB76C:: @ 83FB76C
+ .2byte 0x01A0
+ .2byte 0xC000
+ .2byte 0x0400
+
+ .align 2
+gSpriteTemplate_83FB774:: @ 83FB774
+ spr_template 8192, 8192, gOamData_83FB76C, gSpriteAnimTable_83FB768, NULL, gDummySpriteAffineAnimTable, sub_811A534
+
+ .align 2
+gCryMeterNeedleSpriteSheets:: @ 83FB78C
+ obj_tiles CryMeterNeedleTiles, 0x800, 8192
+ null_obj_tiles
+
+ .align 2
+gCryMeterNeedleSpritePalettes:: @ 83FB79C
+ obj_pal CryMeterNeedlePalette, 8192
+ null_obj_pal
diff --git a/data/pokemon_icon.s b/data/pokemon_icon.s
new file mode 100644
index 000000000..ff5aa33dc
--- /dev/null
+++ b/data/pokemon_icon.s
@@ -0,0 +1,92 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+@ 83BBD20
+ .include "data/graphics/pokemon/icon_table.inc"
+
+@ 83BC400
+ .include "data/graphics/pokemon/icon_palette_indices.inc"
+
+@ 83BC5B8
+ .include "data/graphics/pokemon/icon_palette_table.inc"
+
+ .align 2
+gOamData_83BC5E8:: @ 83BC5E8
+ .2byte 0x0000
+ .2byte 0x8000
+ .2byte 0x0400
+
+ .align 2
+gSpriteAnim_83BC5F0:: @ 83BC5F0
+ obj_image_anim_frame 0, 6
+ obj_image_anim_frame 1, 6
+ obj_image_anim_jump 0
+
+ .align 2
+gSpriteAnim_83BC5FC:: @ 83BC5FC
+ obj_image_anim_frame 0, 8
+ obj_image_anim_frame 1, 8
+ obj_image_anim_jump 0
+
+ .align 2
+gSpriteAnim_83BC608:: @ 83BC608
+ obj_image_anim_frame 0, 14
+ obj_image_anim_frame 1, 14
+ obj_image_anim_jump 0
+
+ .align 2
+gSpriteAnim_83BC614:: @ 83BC614
+ obj_image_anim_frame 0, 22
+ obj_image_anim_frame 1, 22
+ obj_image_anim_jump 0
+
+ .align 2
+gSpriteAnim_83BC620:: @ 83BC620
+ obj_image_anim_frame 0, 29
+ obj_image_anim_frame 0, 29
+ obj_image_anim_jump 0
+
+ .align 2
+gSpriteAnimTable_83BC62C:: @ 83BC62C
+ .4byte gSpriteAnim_83BC5F0
+ .4byte gSpriteAnim_83BC5FC
+ .4byte gSpriteAnim_83BC608
+ .4byte gSpriteAnim_83BC614
+ .4byte gSpriteAnim_83BC620
+
+ .align 2
+gSpriteAffineAnim_83BC640:: @ 83BC640
+ obj_rot_scal_anim_frame 0x0, 0x0, 0, 10
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnim_83BC650:: @ 83BC650
+ obj_rot_scal_anim_frame 0xFFFE, 0xFFFE, 0, 122
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnimTable_83BC660:: @ 83BC660
+ .4byte gSpriteAffineAnim_83BC640
+ .4byte gSpriteAffineAnim_83BC650
+
+ .align 1
+gSpriteImageSizes:: @ 83BC668
+ @ square
+ .2byte 0x20 @ 1×1
+ .2byte 0x80 @ 2×2
+ .2byte 0x200 @ 4×4
+ .2byte 0x800 @ 8×8
+
+ @ horizontal rectangle
+ .2byte 0x40 @ 2×1
+ .2byte 0x80 @ 4×1
+ .2byte 0x100 @ 4×2
+ .2byte 0x400 @ 8×4
+
+ @ vertical rectangle
+ .2byte 0x40 @ 1×2
+ .2byte 0x80 @ 1×4
+ .2byte 0x100 @ 2×4
+ .2byte 0x400 @ 4×8
diff --git a/data/pokemon_menu.s b/data/pokemon_menu.s
new file mode 100644
index 000000000..1781e8df7
--- /dev/null
+++ b/data/pokemon_menu.s
@@ -0,0 +1,67 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+ .align 2
+gPokemonMenuActions:: @ 839F494
+ .4byte OtherText_Summary, PokemonMenu_Summary
+ .4byte OtherText_Switch2, PokemonMenu_Switch
+ .4byte OtherText_Item, PokemonMenu_Item
+ .4byte gOtherText_CancelNoTerminator, PokemonMenu_Cancel
+ .4byte OtherText_Give2, PokemonMenu_GiveItem
+ .4byte OtherText_Take2, PokemonMenu_TakeItem
+ .4byte OtherText_Take, PokemonMenu_TakeMail
+ .4byte OtherText_Mail, PokemonMenu_Mail
+ .4byte OtherText_Read2, PokemonMenu_ReadMail
+ .4byte gOtherText_CancelNoTerminator, PokemonMenu_CancelSubmenu
+ .4byte gMoveNames + 13 * MOVE_CUT, PokemonMenu_FieldMove
+ .4byte gMoveNames + 13 * MOVE_FLASH, PokemonMenu_FieldMove
+ .4byte gMoveNames + 13 * MOVE_ROCK_SMASH, PokemonMenu_FieldMove
+ .4byte gMoveNames + 13 * MOVE_STRENGTH, PokemonMenu_FieldMove
+ .4byte gMoveNames + 13 * MOVE_SURF, PokemonMenu_FieldMove
+ .4byte gMoveNames + 13 * MOVE_FLY, PokemonMenu_FieldMove
+ .4byte gMoveNames + 13 * MOVE_DIVE, PokemonMenu_FieldMove
+ .4byte gMoveNames + 13 * MOVE_WATERFALL, PokemonMenu_FieldMove
+ .4byte gMoveNames + 13 * MOVE_TELEPORT, PokemonMenu_FieldMove
+ .4byte gMoveNames + 13 * MOVE_DIG, PokemonMenu_FieldMove
+ .4byte gMoveNames + 13 * MOVE_SECRET_POWER, PokemonMenu_FieldMove
+ .4byte gMoveNames + 13 * MOVE_MILK_DRINK, PokemonMenu_FieldMove
+ .4byte gMoveNames + 13 * MOVE_SOFT_BOILED, PokemonMenu_FieldMove
+ .4byte gMoveNames + 13 * MOVE_SWEET_SCENT, PokemonMenu_FieldMove
+
+gUnknown_0839F554:: @ 839F554
+ .incbin "baserom.gba", 0x39f554, 0x1e
+
+Unknown_39F572: @ 839F572
+ .byte 4, 5, 9, 0
+
+ .align 2
+gUnknown_0839F578:: @ 839F578
+ .byte 3, 6, 0, 0
+ .4byte Unknown_39F572
+
+Unknown_39F580: @ 839F580
+ .byte 8, 6, 9, 0
+
+ .align 2
+gUnknown_0839F584:: @ 839F584
+ .byte 3, 9, 0, 0
+ .4byte Unknown_39F580
+
+ .align 2
+gFieldMoveFuncs:: @ 839F58C
+ .4byte SetUpFieldMove_Cut, 0x6
+ .4byte SetUpFieldMove_Flash, 0x9
+ .4byte SetUpFieldMove_RockSmash, 0x9
+ .4byte SetUpFieldMove_Strength, 0x9
+ .4byte SetUpFieldMove_Surf, 0x7
+ .4byte SetUpFieldMove_Fly, 0x9
+ .4byte SetUpFieldMove_Dive, 0x9
+ .4byte SetUpFieldMove_Waterfall, 0x9
+ .4byte SetUpFieldMove_Teleport, 0x9
+ .4byte SetUpFieldMove_Dig, 0x9
+ .4byte SetUpFieldMove_SecretPower, 0x9
+ .4byte SetUpFieldMove_SoftBoiled, 0x10
+ .4byte SetUpFieldMove_SoftBoiled, 0x10
+ .4byte SetUpFieldMove_SweetScent, 0x9
diff --git a/data/pokemon_storage_system.s b/data/pokemon_storage_system.s
new file mode 100644
index 000000000..584b818cd
--- /dev/null
+++ b/data/pokemon_storage_system.s
@@ -0,0 +1,731 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+ .align 2
+gUnknown_083B600C:: @ 83B600C
+ .4byte PCText_WithdrawPoke, PCText_MovePokeToParty
+ .4byte PCText_DepositPoke, PCText_StorePokeInBox
+ .4byte PCText_MovePoke, PCText_OrganizeBoxesParty
+ .4byte PCText_SeeYa, PCText_ReturnToPrevMenu
+
+ .align 2
+gSpriteAnim_83B602C:: @ 83B602C
+ obj_image_anim_frame 0, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83B6034:: @ 83B6034
+ obj_image_anim_frame 4, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83B603C:: @ 83B603C
+ obj_image_anim_frame 6, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83B6044:: @ 83B6044
+ obj_image_anim_frame 10, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_83B604C:: @ 83B604C
+ .4byte gSpriteAnim_83B602C
+ .4byte gSpriteAnim_83B6034
+ .4byte gSpriteAnim_83B603C
+ .4byte gSpriteAnim_83B6044
+
+ .align 2
+gSpriteAffineAnim_83B605C:: @ 83B605C
+ obj_rot_scal_anim_frame 0xE0, 0xE0, 0, 0
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnimTable_83B606C:: @ 83B606C
+ .4byte gSpriteAffineAnim_83B605C
+
+ .align 2
+gBoxSelectionPopupPalette:: @ 83B6070
+ .incbin "graphics/pokemon_storage/box_selection_popup.gbapal"
+
+ .align 2
+gBoxSelectionPopupCenterTiles:: @ 83B6090
+ .incbin "graphics/pokemon_storage/box_selection_popup_center.4bpp"
+
+ .align 2
+gBoxSelectionPopupSidesTiles:: @ 83B6890
+ .incbin "graphics/pokemon_storage/box_selection_popup_sides.4bpp"
+
+ .align 2
+gPokemonStorageScrollingBGPalette:: @ 83B6A10
+ .incbin "graphics/pokemon_storage/scrolling_bg.gbapal"
+
+ .align 2
+gPokemonStorageScrollingBGTile:: @ 83B6A30
+ .incbin "graphics/pokemon_storage/scrolling_bg.4bpp"
+
+ .align 2
+gPokemonStorageScrollingBGTilemap:: @ 83B6A50
+ .incbin "graphics/pokemon_storage/scrolling_bg_map.bin.lz"
+
+ .incbin "baserom.gba", 0x003b6b4c, 0x48
+
+ .align 2
+WaveformPalette: @ 83B6B94
+ .incbin "graphics/pokemon_storage/waveform.gbapal"
+
+ .align 2
+WaveformTiles: @ 83B6BB4
+ .incbin "graphics/pokemon_storage/waveform.4bpp"
+
+ .align 2
+gUnknown_083B6D74:: @ 83B6D74
+ .incbin "baserom.gba", 0x003b6d74, 0x20
+
+ .align 2
+gUnknown_083B6D94:: @ 83B6D94
+ .incbin "baserom.gba", 0x003b6d94, 0x20
+
+ .align 2
+gUnknown_083B6DB4:: @ 83B6DB4
+ .4byte 0x02000000
+
+ .align 2
+gUnknown_083B6DB8:: @ 83B6DB8
+ .4byte gTileBuffer
+
+ .align 2
+gWaveformSpritePalette:: @ 83B6DBC
+ obj_pal WaveformPalette, 56013
+
+ .align 2
+gWaveformSpriteSheet:: @ 83B6DC4
+ obj_tiles WaveformTiles, 0x1C0, 5
+
+ .align 2
+gUnknown_083B6DCC:: @ 83B6DCC
+ obj_tiles 0x02002784, 0x800, 2
+
+ .align 2
+gUnknown_083B6DD4:: @ 83B6DD4
+ obj_pal 0x02002704, 56007
+
+ .align 2
+gSpriteTemplate_83B6DDC:: @ 83B6DDC
+ spr_template 2, 56007, gOamData_83B6EAC, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
+
+ .align 2
+gUnknown_083B6DF4:: @ 83B6DF4
+ .4byte PCText_ExitBox, 0
+ .4byte PCText_WhatYouDo, 0
+ .4byte PCText_PickATheme, 0
+ .4byte PCText_PickAWallpaper, 0
+ .4byte PCText_IsSelected, 1
+ .4byte PCText_JumpToWhichBox, 0
+ .4byte PCText_DepositInWhichBox, 0
+ .4byte PCText_WasDeposited, 1
+ .4byte PCText_BoxIsFull, 0
+ .4byte PCText_ReleasePoke, 0
+ .4byte PCText_WasReleased, 4
+ .4byte PCText_ByeBye, 6
+ .4byte PCText_MarkPoke, 0
+ .4byte PCText_LastPoke, 0
+ .4byte PCText_PartyFull, 0
+ .4byte PCText_HoldingPoke, 0
+ .4byte PCText_WhichOneWillTake, 0
+ .4byte PCText_CantReleaseEgg, 0
+ .4byte PCText_ContinueBox, 0
+ .4byte PCText_CameBack, 1
+ .4byte PCText_Worried, 0
+ .4byte PCText_Surprise, 0
+ .4byte PCText_PleaseRemoveMail, 0
+
+ .align 2
+gOamData_83B6EAC:: @ 83B6EAC
+ .2byte 0x0000
+ .2byte 0xC000
+ .2byte 0x0000
+
+ .align 2
+gOamData_83B6EB4:: @ 83B6EB4
+ .2byte 0x4000
+ .2byte 0x0000
+ .2byte 0x0000
+
+ .align 2
+gSpriteAnim_83B6EBC:: @ 83B6EBC
+ obj_image_anim_frame 0, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83B6EC4:: @ 83B6EC4
+ obj_image_anim_frame 2, 8
+ obj_image_anim_frame 4, 8
+ obj_image_anim_frame 6, 8
+ obj_image_anim_jump 0
+
+ .align 2
+gSpriteAnim_83B6ED4:: @ 83B6ED4
+ obj_image_anim_frame 8, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83B6EDC:: @ 83B6EDC
+ obj_image_anim_frame 10, 8
+ obj_image_anim_frame 4, 8
+ obj_image_anim_frame 12, 8
+ obj_image_anim_jump 0
+
+ .align 2
+gSpriteAnimTable_83B6EEC:: @ 83B6EEC
+ .4byte gSpriteAnim_83B6EBC
+ .4byte gSpriteAnim_83B6EC4
+ .4byte gSpriteAnim_83B6ED4
+ .4byte gSpriteAnim_83B6EDC
+
+ .align 2
+gSpriteTemplate_83B6EFC:: @ 83B6EFC
+ spr_template 5, 56013, gOamData_83B6EB4, gSpriteAnimTable_83B6EEC, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
+
+ .align 2
+gSpriteTemplate_83B6F14:: @ 83B6F14
+ spr_template 15, 56000, gOamData_83B6F2C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
+
+ .align 2
+gOamData_83B6F2C:: @ 83B6F2C
+ .2byte 0x0000
+ .2byte 0x8000
+ .2byte 0x0000
+
+ .align 2
+Unknown_83B6F34: @ 83B6F34
+ .incbin "baserom.gba", 0x003b6f34, 0x10
+
+ .align 2
+Unknown_83B6F44: @ 83B6F44
+ .incbin "baserom.gba", 0x003b6f44, 0x18
+
+ .align 2
+gUnknown_083B6F5C:: @ 83B6F5C
+ .4byte Unknown_83B6F34
+ .4byte Unknown_83B6F44
+
+ .align 2
+gWallpaperPalettes_Forest: @ 83B6F64
+ .incbin "graphics/pokemon_storage/box_bg1.gbapal"
+ .incbin "graphics/pokemon_storage/forest_frame.gbapal"
+ .incbin "graphics/pokemon_storage/forest_bg.gbapal"
+
+ .align 2
+gWallpaperTiles_Forest: @ 83B6FC4
+ .incbin "graphics/pokemon_storage/forest.4bpp.lz"
+
+ .align 2
+gWallpaperTilemap_Forest: @ 83B7394
+ .incbin "graphics/pokemon_storage/forest.bin.lz"
+
+ .align 2
+gWallpaperPalettes_City: @ 83B7470
+ .incbin "graphics/pokemon_storage/box_bg1.gbapal"
+ .incbin "graphics/pokemon_storage/city_frame.gbapal"
+ .incbin "graphics/pokemon_storage/city_bg.gbapal"
+
+ .align 2
+gWallpaperTiles_City: @ 83B74D0
+ .incbin "graphics/pokemon_storage/city.4bpp.lz"
+
+ .align 2
+gWallpaperTilemap_City: @ 83B76D8
+ .incbin "graphics/pokemon_storage/city.bin.lz"
+
+ .align 2
+gWallpaperPalettes_Desert: @ 83B7788
+ .incbin "graphics/pokemon_storage/box_bg1.gbapal"
+ .incbin "graphics/pokemon_storage/desert_frame.gbapal"
+ .incbin "graphics/pokemon_storage/desert_bg.gbapal"
+
+ .align 2
+gWallpaperTiles_Desert: @ 83B77E8
+ .incbin "graphics/pokemon_storage/desert.4bpp.lz"
+
+ .align 2
+gWallpaperTilemap_Desert: @ 83B7AD4
+ .incbin "graphics/pokemon_storage/desert.bin.lz"
+
+ .align 2
+gWallpaperPalettes_Savanna: @ 83B7BB8
+ .incbin "graphics/pokemon_storage/box_bg1.gbapal"
+ .incbin "graphics/pokemon_storage/savanna_frame.gbapal"
+ .incbin "graphics/pokemon_storage/savanna_bg.gbapal"
+
+ .align 2
+gWallpaperTiles_Savanna: @ 83B7C18
+ .incbin "graphics/pokemon_storage/savanna.4bpp.lz"
+
+ .align 2
+gWallpaperTilemap_Savanna: @ 83B7E38
+ .incbin "graphics/pokemon_storage/savanna.bin.lz"
+
+ .align 2
+gWallpaperPalettes_Crag: @ 83B7F04
+ .incbin "graphics/pokemon_storage/box_bg1.gbapal"
+ .incbin "graphics/pokemon_storage/crag_frame.gbapal"
+ .incbin "graphics/pokemon_storage/crag_bg.gbapal"
+
+ .align 2
+gWallpaperTiles_Crag: @ 83B7F64
+ .incbin "graphics/pokemon_storage/crag.4bpp.lz"
+
+ .align 2
+gWallpaperTilemap_Crag: @ 83B82B4
+ .incbin "graphics/pokemon_storage/crag.bin.lz"
+
+ .align 2
+gWallpaperPalettes_Volcano: @ 83B838C
+ .incbin "graphics/pokemon_storage/box_bg1.gbapal"
+ .incbin "graphics/pokemon_storage/volcano_frame.gbapal"
+ .incbin "graphics/pokemon_storage/volcano_bg.gbapal"
+
+ .align 2
+gWallpaperTiles_Volcano: @ 83B83EC
+ .incbin "graphics/pokemon_storage/volcano.4bpp.lz"
+
+ .space 4
+
+ .align 2
+gWallpaperTilemap_Volcano: @ 83B8720
+ .incbin "graphics/pokemon_storage/volcano.bin.lz"
+
+ .align 2
+gWallpaperPalettes_Snow: @ 83B87F8
+ .incbin "graphics/pokemon_storage/box_bg1.gbapal"
+ .incbin "graphics/pokemon_storage/snow_frame.gbapal"
+ .incbin "graphics/pokemon_storage/snow_bg.gbapal"
+
+ .align 2
+gWallpaperTiles_Snow: @ 83B8858
+ .incbin "graphics/pokemon_storage/snow.4bpp.lz"
+
+ .align 2
+gWallpaperTilemap_Snow: @ 83B8B10
+ .incbin "graphics/pokemon_storage/snow.bin.lz"
+
+ .align 2
+gWallpaperPalettes_Cave: @ 83B8BDC
+ .incbin "graphics/pokemon_storage/box_bg1.gbapal"
+ .incbin "graphics/pokemon_storage/cave_frame.gbapal"
+ .incbin "graphics/pokemon_storage/cave_bg.gbapal"
+
+ .align 2
+gWallpaperTiles_Cave: @ 83B8C3C
+ .incbin "graphics/pokemon_storage/cave.4bpp.lz"
+
+ .align 2
+gWallpaperTilemap_Cave: @ 83B8F80
+ .incbin "graphics/pokemon_storage/cave.bin.lz"
+
+ .align 2
+gWallpaperPalettes_Beach: @ 83B905C
+ .incbin "graphics/pokemon_storage/box_bg1.gbapal"
+ .incbin "graphics/pokemon_storage/beach_frame.gbapal"
+ .incbin "graphics/pokemon_storage/beach_bg.gbapal"
+
+ .align 2
+gWallpaperTiles_Beach: @ 83B90BC
+ .incbin "graphics/pokemon_storage/beach.4bpp.lz"
+
+ .align 2
+gWallpaperTilemap_Beach: @ 83B9440
+ .incbin "graphics/pokemon_storage/beach.bin.lz"
+
+ .align 2
+gWallpaperPalettes_Seafloor: @ 83B9528
+ .incbin "graphics/pokemon_storage/box_bg1.gbapal"
+ .incbin "graphics/pokemon_storage/seafloor_frame.gbapal"
+ .incbin "graphics/pokemon_storage/seafloor_bg.gbapal"
+
+ .align 2
+gWallpaperTiles_Seafloor: @ 83B9588
+ .incbin "graphics/pokemon_storage/seafloor.4bpp.lz"
+
+ .align 2
+gWallpaperTilemap_Seafloor: @ 83B983C
+ .incbin "graphics/pokemon_storage/seafloor.bin.lz"
+
+ .align 2
+gWallpaperPalettes_River: @ 83B9918
+ .incbin "graphics/pokemon_storage/box_bg1.gbapal"
+ .incbin "graphics/pokemon_storage/river_frame.gbapal"
+ .incbin "graphics/pokemon_storage/river_bg.gbapal"
+
+ .align 2
+gWallpaperTiles_River: @ 83B9978
+ .incbin "graphics/pokemon_storage/river.4bpp.lz"
+
+ .align 2
+gWallpaperTilemap_River: @ 83B9C0C
+ .incbin "graphics/pokemon_storage/river.bin.lz"
+
+ .align 2
+gWallpaperPalettes_Sky: @ 83B9CF8
+ .incbin "graphics/pokemon_storage/box_bg1.gbapal"
+ .incbin "graphics/pokemon_storage/sky_frame.gbapal"
+ .incbin "graphics/pokemon_storage/sky_bg.gbapal"
+
+ .align 2
+gWallpaperTiles_Sky: @ 83B9D58
+ .incbin "graphics/pokemon_storage/sky.4bpp.lz"
+
+ .align 2
+gWallpaperTilemap_Sky: @ 83B9FF0
+ .incbin "graphics/pokemon_storage/sky.bin.lz"
+
+ .align 2
+gWallpaperPalettes_Polkadot: @ 83BA0D0
+ .incbin "graphics/pokemon_storage/box_bg2.gbapal"
+ .incbin "graphics/pokemon_storage/polkadot_frame.gbapal"
+ .incbin "graphics/pokemon_storage/polkadot_bg.gbapal"
+
+ .align 2
+gWallpaperTiles_Polkadot: @ 83BA130
+ .incbin "graphics/pokemon_storage/polkadot.4bpp.lz"
+
+ .align 2
+gWallpaperTilemap_Polkadot: @ 83BA32C
+ .incbin "graphics/pokemon_storage/polkadot.bin.lz"
+
+ .align 2
+gWallpaperPalettes_Pokecenter: @ 83BA3E4
+ .incbin "graphics/pokemon_storage/box_bg2.gbapal"
+ .incbin "graphics/pokemon_storage/pokecenter_frame.gbapal"
+ .incbin "graphics/pokemon_storage/pokecenter_bg.gbapal"
+
+ .align 2
+gWallpaperTiles_Pokecenter: @ 83BA444
+ .incbin "graphics/pokemon_storage/pokecenter.4bpp.lz"
+
+ .align 2
+gWallpaperTilemap_Pokecenter: @ 83BA7E8
+ .incbin "graphics/pokemon_storage/pokecenter.bin.lz"
+
+ .align 2
+gWallpaperPalettes_Machine: @ 83BA8FC
+ .incbin "graphics/pokemon_storage/box_bg3.gbapal"
+ .incbin "graphics/pokemon_storage/machine_frame.gbapal"
+ .incbin "graphics/pokemon_storage/machine_bg.gbapal"
+
+ .align 2
+gWallpaperTiles_Machine: @ 83BA95C
+ .incbin "graphics/pokemon_storage/machine.4bpp.lz"
+
+ .align 2
+gWallpaperTilemap_Machine: @ 83BAC4C
+ .incbin "graphics/pokemon_storage/machine.bin.lz"
+
+ .align 2
+gWallpaperPalettes_Plain: @ 83BAD18
+ .incbin "graphics/pokemon_storage/box_bg4.gbapal"
+ .incbin "graphics/pokemon_storage/plain_frame.gbapal"
+ .incbin "graphics/pokemon_storage/plain_bg.gbapal"
+
+ .align 2
+gWallpaperTiles_Plain: @ 83BAD78
+ .incbin "graphics/pokemon_storage/plain.4bpp.lz"
+
+ .align 2
+gWallpaperTilemap_Plain: @ 83BAE74
+ .incbin "graphics/pokemon_storage/plain.bin.lz"
+
+@ 12×18 tilemap
+ .incbin "graphics/unused/tilemap_3BAEF8.bin"
+
+gUnknown_083BB0A8:: @ 83BB0A8
+ .incbin "baserom.gba", 0x003bb0a8, 0x40
+
+ .align 2
+gWallpaperTable:: @ 83BB0E8
+ @ Forest
+ .4byte gWallpaperTiles_Forest
+ .4byte 0x3D0
+ .4byte gWallpaperTilemap_Forest
+ .4byte gWallpaperPalettes_Forest
+
+ @ City
+ .4byte gWallpaperTiles_City
+ .4byte 0x208
+ .4byte gWallpaperTilemap_City
+ .4byte gWallpaperPalettes_City
+
+ @ Desert
+ .4byte gWallpaperTiles_Desert
+ .4byte 0x2EC
+ .4byte gWallpaperTilemap_Desert
+ .4byte gWallpaperPalettes_Desert
+
+ @ Savanna
+ .4byte gWallpaperTiles_Savanna
+ .4byte 0x220
+ .4byte gWallpaperTilemap_Savanna
+ .4byte gWallpaperPalettes_Savanna
+
+ @ Crag
+ .4byte gWallpaperTiles_Crag
+ .4byte 0x350
+ .4byte gWallpaperTilemap_Crag
+ .4byte gWallpaperPalettes_Crag
+
+ @ Volcano
+ .4byte gWallpaperTiles_Volcano
+ .4byte 0x334
+ .4byte gWallpaperTilemap_Volcano
+ .4byte gWallpaperPalettes_Volcano
+
+ @ Snow
+ .4byte gWallpaperTiles_Snow
+ .4byte 0x2B8
+ .4byte gWallpaperTilemap_Snow
+ .4byte gWallpaperPalettes_Snow
+
+ @ Cave
+ .4byte gWallpaperTiles_Cave
+ .4byte 0x344
+ .4byte gWallpaperTilemap_Cave
+ .4byte gWallpaperPalettes_Cave
+
+ @ Beach
+ .4byte gWallpaperTiles_Beach
+ .4byte 0x384
+ .4byte gWallpaperTilemap_Beach
+ .4byte gWallpaperPalettes_Beach
+
+ @ Seafloor
+ .4byte gWallpaperTiles_Seafloor
+ .4byte 0x2B4
+ .4byte gWallpaperTilemap_Seafloor
+ .4byte gWallpaperPalettes_Seafloor
+
+ @ River
+ .4byte gWallpaperTiles_River
+ .4byte 0x294
+ .4byte gWallpaperTilemap_River
+ .4byte gWallpaperPalettes_River
+
+ @ Sky
+ .4byte gWallpaperTiles_Sky
+ .4byte 0x298
+ .4byte gWallpaperTilemap_Sky
+ .4byte gWallpaperPalettes_Sky
+
+ @ Polkadot
+ .4byte gWallpaperTiles_Polkadot
+ .4byte 0x1FC
+ .4byte gWallpaperTilemap_Polkadot
+ .4byte gWallpaperPalettes_Polkadot
+
+ @ Pokecenter
+ .4byte gWallpaperTiles_Pokecenter
+ .4byte 0x3A4
+ .4byte gWallpaperTilemap_Pokecenter
+ .4byte gWallpaperPalettes_Pokecenter
+
+ @ Machine
+ .4byte gWallpaperTiles_Machine
+ .4byte 0x2F0
+ .4byte gWallpaperTilemap_Machine
+ .4byte gWallpaperPalettes_Machine
+
+ @ Plain
+ .4byte gWallpaperTiles_Plain
+ .4byte 0xFC
+ .4byte gWallpaperTilemap_Plain
+ .4byte gWallpaperPalettes_Plain
+
+PCPal_Arrow:
+ .incbin "graphics/pokemon_storage/arrow.gbapal"
+PCGfx_Arrow:
+ .incbin "graphics/pokemon_storage/arrow.4bpp"
+
+ .align 2
+gUnknown_083BB288:: @ 83BB288
+ obj_tiles PCGfx_Arrow, 128, 0x0006
+
+ .align 2
+gUnknown_083BB290:: @ 83BB290
+ obj_pal PCPal_Arrow, 0xDACF
+
+ .align 2
+gOamData_83BB298:: @ 83BB298
+ .2byte 0x4000
+ .2byte 0x8000
+ .2byte 0x0800
+
+ .align 2
+gSpriteAnim_83BB2A0:: @ 83BB2A0
+ obj_image_anim_frame 0, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83BB2A8:: @ 83BB2A8
+ obj_image_anim_frame 8, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_83BB2B0:: @ 83BB2B0
+ .4byte gSpriteAnim_83BB2A0
+ .4byte gSpriteAnim_83BB2A8
+
+ .align 2
+gSpriteTemplate_83BB2B8:: @ 83BB2B8
+ spr_template 3, 56008, gOamData_83BB298, gSpriteAnimTable_83BB2B0, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
+
+ .align 2
+gOamData_83BB2D0:: @ 83BB2D0
+ .2byte 0x8000
+ .2byte 0x0000
+ .2byte 0x0800
+
+ .align 2
+gSpriteAnim_83BB2D8:: @ 83BB2D8
+ obj_image_anim_frame 0, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83BB2E0:: @ 83BB2E0
+ obj_image_anim_frame 2, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_83BB2E8:: @ 83BB2E8
+ .4byte gSpriteAnim_83BB2D8
+ .4byte gSpriteAnim_83BB2E0
+
+ .align 2
+gSpriteTemplate_83BB2F0:: @ 83BB2F0
+ spr_template 6, 56015, gOamData_83BB2D0, gSpriteAnimTable_83BB2E8, NULL, gDummySpriteAffineAnimTable, sub_809A8C8
+
+ .align 2
+HandCursorPalette: @ 83BB308
+ .incbin "graphics/pokemon_storage/hand_cursor_pal.bin"
+
+ .align 2
+HandCursorAltPalette: @ 83BB328
+ .incbin "graphics/pokemon_storage/hand_cursor_alt_pal.bin"
+
+ .align 2
+HandCursorTiles: @ 83BB348
+ .incbin "graphics/pokemon_storage/hand_cursor.4bpp"
+
+ .align 2
+HandCursorShadowTiles: @ 83BBB48
+ .incbin "graphics/pokemon_storage/hand_cursor_shadow.4bpp"
+
+ .align 2
+gUnknown_083BBBC8:: @ 83BBBC8
+ .4byte sub_809B150
+ .4byte sub_809B1D8
+ .4byte sub_809B24C
+
+ .align 2
+gUnknown_083BBBD4:: @ 83BBBD4
+ .4byte sub_809C464, 0
+ .4byte sub_809C664, 1
+ .4byte sub_809C85C, 2
+ .4byte sub_809C944, 3
+ .4byte NULL, 0
+
+ .align 2
+gHandCursorSpriteSheets:: @ 83BBBFC
+ obj_tiles HandCursorTiles, 0x800, 0
+ obj_tiles HandCursorShadowTiles, 0x80, 1
+ null_obj_tiles
+
+ .align 2
+gHandCursorSpritePalettes:: @ 83BBC14
+ obj_pal HandCursorPalette, 56006
+ obj_pal HandCursorAltPalette, 56017
+ null_obj_pal
+
+ .align 2
+gOamData_83BBC2C:: @ 83BBC2C
+ .2byte 0x0000
+ .2byte 0x8000
+ .2byte 0x0400
+
+ .align 2
+gOamData_83BBC34:: @ 83BBC34
+ .2byte 0x0000
+ .2byte 0x4000
+ .2byte 0x0800
+
+ .align 2
+gSpriteAnim_83BBC3C:: @ 83BBC3C
+ obj_image_anim_frame 0, 30
+ obj_image_anim_frame 16, 30
+ obj_image_anim_jump 0
+
+ .align 2
+gSpriteAnim_83BBC48:: @ 83BBC48
+ obj_image_anim_frame 0, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83BBC50:: @ 83BBC50
+ obj_image_anim_frame 32, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83BBC58:: @ 83BBC58
+ obj_image_anim_frame 48, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_83BBC60:: @ 83BBC60
+ .4byte gSpriteAnim_83BBC3C
+ .4byte gSpriteAnim_83BBC48
+ .4byte gSpriteAnim_83BBC50
+ .4byte gSpriteAnim_83BBC58
+
+ .align 2
+gSpriteTemplate_83BBC70:: @ 83BBC70
+ spr_template 0, 56006, gOamData_83BBC2C, gSpriteAnimTable_83BBC60, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
+
+ .align 2
+gSpriteTemplate_83BBC88:: @ 83BBC88
+ spr_template 1, 56006, gOamData_83BBC34, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_809CB74
+
+ .align 2
+gUnknown_083BBCA0:: @ 83BBCA0
+ .4byte PCText_Cancel2
+ .4byte PCText_Deposit
+ .4byte PCText_Withdraw
+ .4byte PCText_Move
+ .4byte PCText_Switch
+ .4byte PCText_Place
+ .4byte PCText_Summary
+ .4byte PCText_Release
+ .4byte PCText_Mark
+ .4byte PCText_Jump
+ .4byte PCText_Wallpaper
+ .4byte PCText_Name
+ .4byte PCText_Scenery1
+ .4byte PCText_Scenery2
+ .4byte PCText_Scenery3
+ .4byte PCText_Etc
+ .4byte PCText_Forest
+ .4byte PCText_City
+ .4byte PCText_Desert
+ .4byte PCText_Savanna
+ .4byte PCText_Crag
+ .4byte PCText_Volcano
+ .4byte PCText_Snow
+ .4byte PCText_Cave
+ .4byte PCText_Beach
+ .4byte PCText_Seafloor
+ .4byte PCText_River
+ .4byte PCText_Sky
+ .4byte PCText_Polka
+ .4byte PCText_PokeCenter
+ .4byte PCText_Machine
+ .4byte PCText_Plain
diff --git a/data/pokemon_summary_screen.s b/data/pokemon_summary_screen.s
new file mode 100644
index 000000000..31457e382
--- /dev/null
+++ b/data/pokemon_summary_screen.s
@@ -0,0 +1,391 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+@ 83BC680
+ .include "data/text/move_descriptions.inc"
+
+@ 83C0F60
+ .include "data/text/nature_names.inc"
+
+ .align 2
+gUnknown_083C1068:: @ 83C1068
+ .4byte gEmptyString_81E72B0
+ .4byte OtherText_PokeInfo
+ .4byte OtherText_PokeSkills
+ .4byte OtherText_BattleMoves
+ .4byte OtherText_ContestMoves
+ .4byte OtherText_Switch
+ .4byte OtherText_Info
+ .4byte gOtherText_CancelNoTerminator
+
+ .align 2
+gSpriteAffineAnim_83C1088:: @ 83C1088
+ obj_rot_scal_anim_frame 0xFF00, 0x100, 0, 0
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnimTable_83C1098:: @ 83C1098
+ .4byte gSpriteAffineAnim_83C1088
+
+ .align 2
+gOamData_83C109C:: @ 83C109C
+ .2byte 0x4000
+ .2byte 0x8000
+ .2byte 0x0400
+
+ .align 2
+gSpriteAnim_83C10A4:: @ 83C10A4
+ obj_image_anim_frame 0, 0
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83C10AC:: @ 83C10AC
+ obj_image_anim_frame 8, 0
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83C10B4:: @ 83C10B4
+ obj_image_anim_frame 16, 0
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83C10BC:: @ 83C10BC
+ obj_image_anim_frame 24, 0
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83C10C4:: @ 83C10C4
+ obj_image_anim_frame 32, 0
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83C10CC:: @ 83C10CC
+ obj_image_anim_frame 40, 0
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83C10D4:: @ 83C10D4
+ obj_image_anim_frame 48, 0
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83C10DC:: @ 83C10DC
+ obj_image_anim_frame 56, 0
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83C10E4:: @ 83C10E4
+ obj_image_anim_frame 64, 0
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83C10EC:: @ 83C10EC
+ obj_image_anim_frame 72, 0
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83C10F4:: @ 83C10F4
+ obj_image_anim_frame 80, 0
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83C10FC:: @ 83C10FC
+ obj_image_anim_frame 88, 0
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83C1104:: @ 83C1104
+ obj_image_anim_frame 96, 0
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83C110C:: @ 83C110C
+ obj_image_anim_frame 104, 0
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83C1114:: @ 83C1114
+ obj_image_anim_frame 112, 0
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83C111C:: @ 83C111C
+ obj_image_anim_frame 120, 0
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83C1124:: @ 83C1124
+ obj_image_anim_frame 128, 0
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83C112C:: @ 83C112C
+ obj_image_anim_frame 136, 0
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83C1134:: @ 83C1134
+ obj_image_anim_frame 144, 0
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83C113C:: @ 83C113C
+ obj_image_anim_frame 152, 0
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83C1144:: @ 83C1144
+ obj_image_anim_frame 160, 0
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83C114C:: @ 83C114C
+ obj_image_anim_frame 168, 0
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83C1154:: @ 83C1154
+ obj_image_anim_frame 176, 0
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_83C115C:: @ 83C115C
+ .4byte gSpriteAnim_83C10A4
+ .4byte gSpriteAnim_83C10AC
+ .4byte gSpriteAnim_83C10B4
+ .4byte gSpriteAnim_83C10BC
+ .4byte gSpriteAnim_83C10C4
+ .4byte gSpriteAnim_83C10CC
+ .4byte gSpriteAnim_83C10D4
+ .4byte gSpriteAnim_83C10DC
+ .4byte gSpriteAnim_83C10E4
+ .4byte gSpriteAnim_83C10EC
+ .4byte gSpriteAnim_83C10F4
+ .4byte gSpriteAnim_83C10FC
+ .4byte gSpriteAnim_83C1104
+ .4byte gSpriteAnim_83C110C
+ .4byte gSpriteAnim_83C1114
+ .4byte gSpriteAnim_83C111C
+ .4byte gSpriteAnim_83C1124
+ .4byte gSpriteAnim_83C112C
+ .4byte gSpriteAnim_83C1134
+ .4byte gSpriteAnim_83C113C
+ .4byte gSpriteAnim_83C1144
+ .4byte gSpriteAnim_83C114C
+ .4byte gSpriteAnim_83C1154
+
+ .align 2
+gUnknown_083C11B8:: @ 83C11B8
+ obj_tiles gMoveTypes_Gfx, 5888, 0x7532
+
+ .align 2
+gSpriteTemplate_83C11C0:: @ 83C11C0
+ spr_template 30002, 30002, gOamData_83C109C, gSpriteAnimTable_83C115C, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
+
+gUnknown_083C11D8:: @ 83C11D8
+ .incbin "baserom.gba", 0x003c11d8, 0x18
+
+ .align 2
+gOamData_83C11F0:: @ 83C11F0
+ .2byte 0x0000
+ .2byte 0x4000
+ .2byte 0x0400
+
+ .align 2
+gSpriteAnim_83C11F8:: @ 83C11F8
+ obj_image_anim_frame 0, 0
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83C1200:: @ 83C1200
+ obj_image_anim_frame 4, 0
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83C1208:: @ 83C1208
+ obj_image_anim_frame 8, 0
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83C1210:: @ 83C1210
+ obj_image_anim_frame 12, 0
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83C1218:: @ 83C1218
+ obj_image_anim_frame 16, 0
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83C1220:: @ 83C1220
+ obj_image_anim_frame 16, 0, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83C1228:: @ 83C1228
+ obj_image_anim_frame 20, 0
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83C1230:: @ 83C1230
+ obj_image_anim_frame 24, 0
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83C1238:: @ 83C1238
+ obj_image_anim_frame 24, 0, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83C1240:: @ 83C1240
+ obj_image_anim_frame 28, 0
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_83C1248:: @ 83C1248
+ .4byte gSpriteAnim_83C11F8
+ .4byte gSpriteAnim_83C1200
+ .4byte gSpriteAnim_83C1208
+ .4byte gSpriteAnim_83C1210
+ .4byte gSpriteAnim_83C1218
+ .4byte gSpriteAnim_83C1220
+ .4byte gSpriteAnim_83C1228
+ .4byte gSpriteAnim_83C1230
+ .4byte gSpriteAnim_83C1238
+ .4byte gSpriteAnim_83C1240
+
+ .align 2
+gUnknown_083C1270:: @ 83C1270
+ obj_tiles gMenuSummaryGfx, 1024, 0x7530
+
+ .align 2
+gUnknown_083C1278:: @ 83C1278
+ obj_pal gMenuSummaryPal, 0x7530
+
+ .align 2
+gSpriteTemplate_83C1280:: @ 83C1280
+ spr_template 30000, 30000, gOamData_83C11F0, gSpriteAnimTable_83C1248, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
+
+ .align 2
+gOamData_83C1298:: @ 83C1298
+ .2byte 0x4000
+ .2byte 0x4000
+ .2byte 0x0C00
+
+ .align 2
+gSpriteAnim_83C12A0:: @ 83C12A0
+ obj_image_anim_frame 0, 0
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83C12A8:: @ 83C12A8
+ obj_image_anim_frame 4, 0
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83C12B0:: @ 83C12B0
+ obj_image_anim_frame 8, 0
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83C12B8:: @ 83C12B8
+ obj_image_anim_frame 12, 0
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83C12C0:: @ 83C12C0
+ obj_image_anim_frame 16, 0
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83C12C8:: @ 83C12C8
+ obj_image_anim_frame 20, 0
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83C12D0:: @ 83C12D0
+ obj_image_anim_frame 24, 0
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_83C12D8:: @ 83C12D8
+ .4byte gSpriteAnim_83C12A0
+ .4byte gSpriteAnim_83C12A8
+ .4byte gSpriteAnim_83C12B0
+ .4byte gSpriteAnim_83C12B8
+ .4byte gSpriteAnim_83C12C0
+ .4byte gSpriteAnim_83C12C8
+ .4byte gSpriteAnim_83C12D0
+
+ .align 2
+gUnknown_083C12F4:: @ 83C12F4
+ obj_tiles gStatusGfx_Icons, 896, 0x7531
+
+ .align 2
+gUnknown_083C12FC:: @ 83C12FC
+ obj_pal gStatusPal_Icons, 0x7531
+
+ .align 2
+gSpriteTemplate_83C1304:: @ 83C1304
+ spr_template 30001, 30001, gOamData_83C1298, gSpriteAnimTable_83C12D8, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
+
+ .align 2
+gSummaryScreenMonMarkingsPalette:: @ 83C131C
+ .incbin "graphics/summary_screen/mon_markings.gbapal"
+
+ .align 2
+gSummaryScreenTextTiles:: @ 83C133C
+ .incbin "graphics/summary_screen/text.4bpp"
+
+ .align 2
+gSummaryScreenButtonTiles:: @ 83C147C
+ .incbin "graphics/summary_screen/buttons.4bpp"
+
+ .align 1
+gUnknown_083C157C:: @ 83C157C
+ .2byte 0x5F5A @ palette color
+
+ .align 1
+gUnknown_083C157E:: @ 83C157E
+ .2byte 0x6FDE @ palette color
+
+ .align 2
+gUnknown_083C1580:: @ 83C1580
+ .4byte sub_809FC0C
+ .4byte sub_809FEB8
+
+ .align 2
+gUnknown_083C1588:: @ 83C1588
+ .4byte sub_809F63C
+ .4byte sub_809F650
+ .4byte sub_809F664
+ .4byte sub_809F664
+
+ .align 2
+gUnknown_083C1598:: @ 83C1598
+ .4byte sub_809FE6C
+ .4byte sub_80A0090
+ .4byte sub_80A015C
+ .4byte sub_80A015C
+
+gUnknown_083C15A8:: @ 83C15A8
+ .byte 0, 2, 3, 1, 4, 5
+
+gUnknown_083C15AE:: @ 83C15AE
+ .string "{STR_VAR_1}{CLEAR_TO 64}$"
+
+gUnknown_083C15B4:: @ 83C15B4
+ .string "{STR_VAR_1}{CLEAR_TO 72}$"
+
+ .align 2
+gUnknown_083C15BC:: @ 83C15BC
+ .byte 9, 1, 0, 2
+ .byte 10, 3, 0, 4
+ .byte 8, 5, 0, 6
+ .byte 11, 7, 0, 8
+ .byte 14, 9, 0, 10
+ .byte 12, 11, 0, 12
+ .byte 13, 13, 0, 14
+ .byte -1, 15, 0, 10
diff --git a/data/pokenav.s b/data/pokenav.s
new file mode 100644
index 000000000..3ea704c03
--- /dev/null
+++ b/data/pokenav.s
@@ -0,0 +1,1166 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+ .align 2
+gUnknown_083DFEC4:: @ 83DFEC4
+ .4byte 0x2000000
+
+ .align 2
+gUnknown_083DFEC8:: @ 83DFEC8
+ .4byte gTileBuffer
+
+ .align 1
+gUnknown_083DFECC:: @ 83DFECC
+ .incbin "graphics/pokenav/83DFECC.gbapal"
+
+ .align 1
+gUnknown_083DFEEC:: @ 83DFEEC
+ .incbin "graphics/pokenav/83DFEEC.4bpp"
+
+ .align 2
+gUnknown_083DFF8C:: @ 83DFF8C
+ .incbin "graphics/pokenav/83DFF8C.bin.lz"
+
+ .align 1
+gUnknown_083E003C:: @ 83E003C
+ .incbin "graphics/pokenav/83E003C.gbapal"
+
+ .align 1
+gUnknown_083E005C:: @ 83E005C
+ .incbin "graphics/pokenav/83E005C.4bpp"
+
+ .align 2
+gUnknown_083E007C:: @ 83E007C
+ .incbin "graphics/pokenav/83E007C.bin.lz"
+
+ .align 1
+gUnknown_083E0124:: @ 83E0124
+ .incbin "graphics/pokenav/83E0124_pal.bin"
+
+ .align 1
+gUnknown_083E0144:: @ 83E0144
+ .incbin "graphics/pokenav/83E0144_pal.bin"
+
+ .align 1
+ .incbin "graphics/pokenav/83E0164.bin"
+
+ .align 1
+gUnknown_083E01AC:: @ 83E01AC
+ .incbin "graphics/pokenav/83E01AC.bin"
+
+ .align 1
+gUnknown_083E01F4:: @ 83E01F4
+ .incbin "graphics/pokenav/83E01F4.bin"
+
+ .align 1
+gUnknown_083E0254:: @ 83E0254
+ .incbin "graphics/pokenav/83E0254.gbapal"
+
+ .align 1
+gUnknown_083E0274:: @ 83E0274
+ .incbin "graphics/pokenav/83E0274.gbapal"
+
+ .align 2
+gPokenavConditionSearch2_Pal:: @ 83E0294
+ .incbin "graphics/pokenav/condition_search2.gbapal"
+
+ .align 1
+gUnknown_083E02B4:: @ 83E02B4
+ .incbin "graphics/pokenav/83E02B4.gbapal"
+
+ .align 1
+ .incbin "graphics/pokenav/83E02D4.bin"
+
+ .align 1
+gUnknown_083E0314:: @ 83E0314
+ .incbin "graphics/pokenav/83E0314.gbapal"
+
+ .align 1
+gUnknown_083E0334:: @ 83E0334
+ .incbin "graphics/pokenav/trainereyes_misc_pal.bin" @ the original bytes have an "FF FF" instance which is incompatible with gbagfx to produce the bytes needed to match the original ROM, so I am forced to include it as a .bin until the lowest bit is properly handled or a better workaround is produced
+
+ .align 2
+gUnknown_083E0354:: @ 83E0354
+ .incbin "graphics/pokenav/trainereyes_misc.4bpp.lz"
+
+ .align 1
+gUnknown_083E039C:: @ 83E039C
+ .2byte 0x4280, 0x4282
+
+ .align 1
+gUnknown_083E03A0:: @ 83E03A0
+ .2byte 0x4000, 0x4000, 0x4281, 0x4283
+
+ .align 1
+gUnknown_083E03A8:: @ 83E03A8
+ .incbin "graphics/pokenav/83E03A8.gbapal"
+
+ .align 1
+ .incbin "graphics/pokenav/83E03C8.bin"
+
+gUnknown_083E040C:: @ 83E040C
+ .incbin "graphics/misc/ribbons_half.4bpp.lz"
+
+ .align 2
+gPokenavOutlinePalette:: @ 83E05D4
+ .incbin "graphics/pokenav/outline.gbapal"
+
+ .align 2
+gPokenavOutlineTiles:: @ 83E05F4
+ .incbin "graphics/pokenav/outline.4bpp.lz"
+
+ .align 2
+gPokenavOutlineTilemap:: @ 83E0804
+ .incbin "graphics/pokenav/outline_map.bin.lz"
+
+ .align 2
+gPokenavCityMap_Lavaridge_0:: @ 83E096C
+ .incbin "graphics/pokenav/city_maps/lavaridge_0.bin.lz"
+
+ .align 2
+gPokenavCityMap_Fallarbor_0:: @ 83E09B0
+ .incbin "graphics/pokenav/city_maps/fallarbor_0.bin.lz"
+
+ .align 2
+gPokenavCityMap_Fortree_0:: @ 83E09F8
+ .incbin "graphics/pokenav/city_maps/fortree_0.bin.lz"
+
+ .align 2
+gPokenavCityMap_Slateport_0:: @ 83E0A48
+ .incbin "graphics/pokenav/city_maps/slateport_0.bin.lz"
+
+ .align 2
+gPokenavCityMap_Slateport_1:: @ 83E0AA8
+ .incbin "graphics/pokenav/city_maps/slateport_1.bin.lz"
+
+ .align 2
+gPokenavCityMap_Rustboro_0:: @ 83E0AF4
+ .incbin "graphics/pokenav/city_maps/rustboro_0.bin.lz"
+
+ .align 2
+gPokenavCityMap_Rustboro_1:: @ 83E0B48
+ .incbin "graphics/pokenav/city_maps/rustboro_1.bin.lz"
+
+ .align 2
+gPokenavCityMap_Pacifidlog_0:: @ 83E0B9C
+ .incbin "graphics/pokenav/city_maps/pacifidlog_0.bin.lz"
+
+ .align 2
+gPokenavCityMap_Mauville_1:: @ 83E0BDC
+ .incbin "graphics/pokenav/city_maps/mauville_1.bin.lz"
+
+ .align 2
+gPokenavCityMap_Mauville_0:: @ 83E0C34
+ .incbin "graphics/pokenav/city_maps/mauville_0.bin.lz"
+
+ .align 2
+gPokenavCityMap_Oldale_0:: @ 83E0C88
+ .incbin "graphics/pokenav/city_maps/oldale_0.bin.lz"
+
+ .align 2
+gPokenavCityMap_Lilycove_1:: @ 83E0CB8
+ .incbin "graphics/pokenav/city_maps/lilycove_1.bin.lz"
+
+ .align 2
+gPokenavCityMap_Lilycove_0:: @ 83E0D04
+ .incbin "graphics/pokenav/city_maps/lilycove_0.bin.lz"
+
+ .align 2
+gPokenavCityMap_Littleroot_0:: @ 83E0D5C
+ .incbin "graphics/pokenav/city_maps/littleroot_0.bin.lz"
+
+ .align 2
+gPokenavCityMap_Dewford_0:: @ 83E0D8C
+ .incbin "graphics/pokenav/city_maps/dewford_0.bin.lz"
+
+ .align 2
+gPokenavCityMap_Sootopolis_0:: @ 83E0DC4
+ .incbin "graphics/pokenav/city_maps/sootopolis_0.bin.lz"
+
+ .align 2
+gPokenavCityMap_EverGrande_0:: @ 83E0E04
+ .incbin "graphics/pokenav/city_maps/ever_grande_0.bin.lz"
+
+ .align 2
+gPokenavCityMap_EverGrande_1:: @ 83E0E4C
+ .incbin "graphics/pokenav/city_maps/ever_grande_1.bin.lz"
+
+ .align 2
+gPokenavCityMap_Verdanturf_0:: @ 83E0E90
+ .incbin "graphics/pokenav/city_maps/verdanturf_0.bin.lz"
+
+ .align 2
+gPokenavCityMap_Mossdeep_1:: @ 83E0EC8
+ .incbin "graphics/pokenav/city_maps/mossdeep_1.bin.lz"
+
+ .align 2
+gPokenavCityMap_Mossdeep_0:: @ 83E0F10
+ .incbin "graphics/pokenav/city_maps/mossdeep_0.bin.lz"
+
+ .align 2
+gPokenavCityMap_Petalburg_0:: @ 83E0F6C
+ .incbin "graphics/pokenav/city_maps/petalburg_0.bin.lz"
+
+@ 83E0FC8
+ .include "data/text/ribbon_descriptions.inc"
+
+@ 83E1204
+ .include "data/text/gift_ribbon_descriptions.inc"
+
+@ 83E178C
+ .include "data/text/trainer_eye_descriptions.inc"
+
+ .align 2
+gUnknown_083E31B0:: @ 83E31B0
+ .4byte PCText_CheckMap
+ .4byte PCText_CheckPoke
+ .4byte PCText_CheckTrainer
+ .4byte PCText_CheckRibbons
+ .4byte PCText_PutAwayNav
+ .4byte PCText_NoRibbonWin
+ .4byte PCText_NoTrainers
+
+ .align 2
+gUnknown_083E31CC:: @ 83E31CC
+ .4byte PCText_CheckParty
+ .4byte PCText_CheckPokeAll
+ .4byte PCText_ReturnToNav
+
+ .align 2
+gUnknown_083E31D8:: @ 83E31D8
+ .4byte PCText_FindCool
+ .4byte PCText_FindBeauty
+ .4byte PCText_FindCute
+ .4byte PCText_FindSmart
+ .4byte PCText_FindTough
+ .4byte PCText_ReturnToCondition
+
+ .align 2
+gPokenavCityMaps:: @ 83E31F0
+ .4byte gPokenavCityMap_Littleroot_0, NULL
+ .4byte gPokenavCityMap_Oldale_0, NULL
+ .4byte gPokenavCityMap_Dewford_0, NULL
+ .4byte gPokenavCityMap_Lavaridge_0, NULL
+ .4byte gPokenavCityMap_Fallarbor_0, NULL
+ .4byte gPokenavCityMap_Verdanturf_0, NULL
+ .4byte gPokenavCityMap_Pacifidlog_0, NULL
+ .4byte gPokenavCityMap_Petalburg_0, NULL
+ .4byte gPokenavCityMap_Slateport_0, gPokenavCityMap_Slateport_1
+ .4byte gPokenavCityMap_Mauville_0, gPokenavCityMap_Mauville_1
+ .4byte gPokenavCityMap_Rustboro_0, gPokenavCityMap_Rustboro_1
+ .4byte gPokenavCityMap_Fortree_0, NULL
+ .4byte gPokenavCityMap_Lilycove_0, gPokenavCityMap_Lilycove_1
+ .4byte gPokenavCityMap_Mossdeep_0, gPokenavCityMap_Mossdeep_1
+ .4byte gPokenavCityMap_Sootopolis_0, NULL
+ .4byte gPokenavCityMap_EverGrande_0, gPokenavCityMap_EverGrande_1
+
+ .align 2
+gUnknown_083E3270:: @ 83E3270
+ .4byte sub_80F0A24
+ .4byte sub_80F0A24
+ .4byte sub_80F0A74
+
+ .align 2
+gPokenavIconPalette::
+ .incbin "graphics/pokenav/icon.gbapal"
+
+ .align 2
+gUnknown_083E329C:: @ 83E329C
+ .incbin "graphics/pokenav/icon.4bpp.lz"
+
+ .align 2
+gPokenavPokeballTiles::
+ .incbin "graphics/pokenav/pokeball.4bpp"
+
+ .align 2
+gUnknown_083E3780: @ 83E3780
+ .incbin "graphics/pokenav/83E3780.4bpp"
+
+ .align 2
+gPokenavSparkle_Pal::
+ .incbin "graphics/pokenav/sparkle.gbapal"
+
+ .align 2
+gPokenavSparkle_Gfx::
+ .incbin "graphics/pokenav/sparkle.4bpp"
+
+ .align 2
+gPokenavUpDownArrows_Gfx::
+ .incbin "graphics/pokenav/arrows.4bpp"
+
+ .align 2
+gUnknown_083E3BC0:: @ 83E3BC0
+ .incbin "graphics/pokenav/83E3BC0.bin"
+
+ .align 2
+gTiles_083E3BE0::
+ .incbin "graphics/unknown/unknown_3E3BE0.4bpp"
+
+ .align 2
+gUnknown_083E3C60:: @ 83E3C60
+ .incbin "graphics/misc/ribbons_cool.gbapal"
+ .incbin "graphics/misc/ribbons_beauty.gbapal"
+ .incbin "graphics/misc/ribbons_cute.gbapal"
+ .incbin "graphics/misc/ribbons_smart.gbapal"
+ .incbin "graphics/misc/ribbons_tough.gbapal"
+
+ .align 2
+gUnknown_083E3D00:: @ 83E3D00
+ .incbin "graphics/misc/ribbons_full.4bpp.lz"
+
+ .align 2
+PokenavBlueLightPalette:
+ .incbin "graphics/pokenav/blue_light.gbapal"
+
+ .align 2
+PokenavBlueLightTiles:
+ .incbin "graphics/pokenav/blue_light.4bpp"
+
+ .align 2
+Palette_3E42D8: @ 83E42D8
+ .incbin "graphics/pokenav/83E42D8.gbapal"
+
+ .align 1
+gUnknown_083E42F8:: @ 83E42F8
+ .2byte 0x408
+ .2byte 0x408
+ .2byte 0x507
+ .2byte 0x507
+ .2byte 0x606
+ .2byte 0x606
+ .2byte 0x805
+ .2byte 0x805
+ .2byte 0xA04
+ .2byte 0xA04
+ .2byte 0xC03
+ .2byte 0xC03
+ .2byte 0xE02
+ .2byte 0xE02
+ .2byte 0x1000
+ .2byte 0x1000
+
+ .align 2
+gOamData_83E4318:: @ 83E4318
+ .2byte 0x4000
+ .2byte 0x8000
+ .2byte 0x0400
+
+ .align 2
+gSpriteAnim_83E4320:: @ 83E4320
+ obj_image_anim_frame 0, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83E4328:: @ 83E4328
+ obj_image_anim_frame 8, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83E4330:: @ 83E4330
+ obj_image_anim_frame 16, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83E4338:: @ 83E4338
+ obj_image_anim_frame 24, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83E4340:: @ 83E4340
+ obj_image_anim_frame 32, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83E4348:: @ 83E4348
+ obj_image_anim_frame 40, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83E4350:: @ 83E4350
+ obj_image_anim_frame 48, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83E4358:: @ 83E4358
+ obj_image_anim_frame 56, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83E4360:: @ 83E4360
+ obj_image_anim_frame 64, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83E4368:: @ 83E4368
+ obj_image_anim_frame 72, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83E4370:: @ 83E4370
+ obj_image_anim_frame 80, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83E4378:: @ 83E4378
+ obj_image_anim_frame 88, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83E4380:: @ 83E4380
+ obj_image_anim_frame 96, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83E4388:: @ 83E4388
+ obj_image_anim_frame 104, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83E4390:: @ 83E4390
+ obj_image_anim_frame 112, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83E4398:: @ 83E4398
+ obj_image_anim_frame 120, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83E43A0:: @ 83E43A0
+ obj_image_anim_frame 128, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83E43A8:: @ 83E43A8
+ obj_image_anim_frame 136, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83E43B0:: @ 83E43B0
+ obj_image_anim_frame 144, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83E43B8:: @ 83E43B8
+ obj_image_anim_frame 152, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83E43C0:: @ 83E43C0
+ obj_image_anim_frame 160, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83E43C8:: @ 83E43C8
+ obj_image_anim_frame 168, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83E43D0:: @ 83E43D0
+ obj_image_anim_frame 176, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83E43D8:: @ 83E43D8
+ obj_image_anim_frame 184, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_83E43E0:: @ 83E43E0
+ .4byte gSpriteAnim_83E4320
+ .4byte gSpriteAnim_83E4328
+ .4byte gSpriteAnim_83E4330
+ .4byte gSpriteAnim_83E4338
+ .4byte gSpriteAnim_83E4340
+ .4byte gSpriteAnim_83E4348
+ .4byte gSpriteAnim_83E4350
+ .4byte gSpriteAnim_83E4358
+ .4byte gSpriteAnim_83E4360
+ .4byte gSpriteAnim_83E4368
+ .4byte gSpriteAnim_83E4370
+ .4byte gSpriteAnim_83E4378
+ .4byte gSpriteAnim_83E4380
+ .4byte gSpriteAnim_83E4388
+ .4byte gSpriteAnim_83E4390
+ .4byte gSpriteAnim_83E4398
+ .4byte gSpriteAnim_83E43A0
+ .4byte gSpriteAnim_83E43A8
+ .4byte gSpriteAnim_83E43B0
+ .4byte gSpriteAnim_83E43B8
+ .4byte gSpriteAnim_83E43C0
+ .4byte gSpriteAnim_83E43C8
+ .4byte gSpriteAnim_83E43D0
+ .4byte gSpriteAnim_83E43D8
+
+ .align 2
+gSpriteAffineAnim_83E4440:: @ 83E4440
+ obj_rot_scal_anim_frame 0x10, 0x10, 0, 16
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnimTable_83E4450:: @ 83E4450
+ .4byte gSpriteAffineAnim_83E4440
+
+ .align 2
+gSpriteTemplate_83E4454:: @ 83E4454
+ spr_template 0, 0, gOamData_83E4318, gSpriteAnimTable_83E43E0, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
+
+ .align 2
+gSpriteSheet_PokenavBlueLight:: @ 83E446C
+ obj_tiles PokenavBlueLightTiles, 0x100, 25
+
+ .align 2
+gSpritePalette_PokenavBlueLight:: @ 83E4474
+ obj_pal PokenavBlueLightPalette, 17
+
+ .align 2
+gOamData_83E447C:: @ 83E447C
+ .2byte 0x4000
+ .2byte 0x8000
+ .2byte 0x0400
+
+ .align 2
+gSpriteTemplate_83E4484:: @ 83E4484
+ spr_template 25, 17, gOamData_83E447C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80F2654
+
+gUnknown_083E449C:: @ 83E449C
+ obj_pal gPokenavMenuOptions3_Pal, 2
+ obj_pal gPokenavCondition5_Pal, 3
+ obj_pal 0x0, 0
+
+ .align 2
+gOamData_83E44B4:: @ 83E44B4
+ .2byte 0x4000
+ .2byte 0xC000
+ .2byte 0x0400
+
+ .align 2
+gSpriteAnim_83E44BC:: @ 83E44BC
+ obj_image_anim_frame 0, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83E44C4:: @ 83E44C4
+ obj_image_anim_frame 32, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83E44CC:: @ 83E44CC
+ obj_image_anim_frame 64, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_83E44D4:: @ 83E44D4
+ .4byte gSpriteAnim_83E44BC
+ .4byte gSpriteAnim_83E44C4
+ .4byte gSpriteAnim_83E44CC
+
+ .align 2
+gSpriteTemplate_83E44E0:: @ 83E44E0
+ spr_template 1, 2, gOamData_83E44B4, gSpriteAnimTable_83E44D4, NULL, gDummySpriteAffineAnimTable, sub_80F2BBC
+
+ .align 2
+gSpriteTemplate_83E44F8:: @ 83E44F8
+ spr_template 1, 3, gOamData_83E44B4, gSpriteAnimTable_83E44D4, NULL, gDummySpriteAffineAnimTable, sub_80F2BBC
+
+ .align 2
+gOamData_83E4510:: @ 83E4510
+ .2byte 0x4000
+ .2byte 0x8000
+ .2byte 0x0400
+
+ .align 2
+gSpriteAnim_83E4518:: @ 83E4518
+ obj_image_anim_frame 0, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83E4520:: @ 83E4520
+ obj_image_anim_frame 8, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_83E4528:: @ 83E4528
+ .4byte gSpriteAnim_83E4518
+ .4byte gSpriteAnim_83E4520
+
+ .align 2
+gSpriteTemplate_83E4530:: @ 83E4530
+ spr_template 2, 2, gOamData_83E4510, gSpriteAnimTable_83E4528, NULL, gDummySpriteAffineAnimTable, sub_80F2BBC
+
+ .align 2
+gSpriteTemplate_83E4548:: @ 83E4548
+ spr_template 2, 3, gOamData_83E4510, gSpriteAnimTable_83E4528, NULL, gDummySpriteAffineAnimTable, sub_80F2BBC
+
+ .align 2
+gOamData_83E4560:: @ 83E4560
+ .2byte 0x0000
+ .2byte 0xC000
+ .2byte 0x0400
+
+ .align 2
+gUnknown_083E4568:: @ 83E4568
+ obj_tiles NULL, 0x800, 6
+
+ .align 2
+gSpriteTemplate_83E4570:: @ 83E4570
+ spr_template 6, 6, gOamData_83E4560, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80F2E00
+
+ .align 2
+gUnknown_083E4588:: @ 83E4588
+ obj_pal NULL, 6
+
+ .align 2
+gUnknown_083E4590:: @ 83E4590
+ obj_tiles gPokenavArrow_Gfx, 0x40, 9
+ obj_tiles gPokenavUpDownArrows_Gfx, 0x80, 10
+ null_obj_tiles
+
+ .align 2
+gUnknown_083E45A8:: @ 83E45A8
+ obj_pal gPokenavArrowsPalette, 9
+
+ .align 2
+gOamData_83E45B0:: @ 83E45B0
+ .2byte 0x8000
+ .2byte 0x0000
+ .2byte 0x0800
+
+ .align 2
+gSpriteTemplate_83E45B8:: @ 83E45B8
+ spr_template 9, 9, gOamData_83E45B0, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80F3190
+
+ .align 2
+gSpriteAnim_83E45D0:: @ 83E45D0
+ obj_image_anim_frame 0, 3
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83E45D8:: @ 83E45D8
+ obj_image_anim_frame 2, 3
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_83E45E0:: @ 83E45E0
+ .4byte gSpriteAnim_83E45D0
+ .4byte gSpriteAnim_83E45D8
+
+ .align 2
+gOamData_83E45E8:: @ 83E45E8
+ .2byte 0x4000
+ .2byte 0x0000
+ .2byte 0x0800
+
+ .align 2
+gSpriteTemplate_83E45F0:: @ 83E45F0
+ spr_template 10, 9, gOamData_83E45E8, gSpriteAnimTable_83E45E0, NULL, gDummySpriteAffineAnimTable, sub_80F31AC
+
+ .align 2
+gOamData_83E4608:: @ 83E4608
+ .2byte 0x0000
+ .2byte 0x4000
+ .2byte 0x0800
+
+ .align 2
+gSpriteAnim_83E4610:: @ 83E4610
+ obj_image_anim_frame 0, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83E4618:: @ 83E4618
+ obj_image_anim_frame 4, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_83E4620:: @ 83E4620
+ .4byte gSpriteAnim_83E4610
+ .4byte gSpriteAnim_83E4618
+
+ .align 2
+gUnknown_083E4628:: @ 83E4628
+ obj_tiles gPokenavPokeballTiles, 0x100, 3
+ obj_tiles gUnknown_083E3780, 0x20, 4
+ obj_tiles gPokenavConditionMenuCancel_Gfx, 0x100, 5
+ null_obj_tiles
+
+ .align 2
+gUnknown_083E4648:: @ 83E4648
+ obj_pal gPokenavConditionPokeball_Pal, 4
+ obj_pal gPokenavCondition4_Pal, 5
+ .space 8
+
+ .align 2
+gSpriteTemplate_83E4660:: @ 83E4660
+ spr_template 3, 4, gOamData_83E4608, gSpriteAnimTable_83E4620, NULL, gDummySpriteAffineAnimTable, sub_80F3328
+
+ .align 1
+gUnknown_083E4678:: @ 83E4678
+ .incbin "graphics/pokenav/83E4678.gbapal"
+
+ .align 2
+gUnknown_083E4698:: @ 83E4698
+ .2byte 0, 0
+ .2byte 1, 0
+ .2byte 2, 0
+ .2byte 3, 0
+ .2byte 4, 0
+ .2byte 1, 1
+ .2byte 2, 1
+ .2byte 3, 1
+ .2byte 4, 1
+ .2byte 1, 2
+ .2byte 2, 2
+ .2byte 3, 2
+ .2byte 4, 2
+ .2byte 1, 3
+ .2byte 2, 3
+ .2byte 3, 3
+ .2byte 4, 3
+ .2byte 1, 4
+ .2byte 2, 4
+ .2byte 3, 4
+ .2byte 4, 4
+ .2byte 5, 0
+ .2byte 6, 0
+ .2byte 7, 1
+ .2byte 8, 2
+ .2byte 9, 1
+ .2byte 9, 3
+ .2byte 9, 4
+ .2byte 10, 3
+ .2byte 10, 4
+ .2byte 11, 0
+ .2byte 11, 1
+
+ .align 2
+gOamData_83E4718:: @ 83E4718
+ .2byte 0x0100
+ .2byte 0x8000
+ .2byte 0x0000
+
+ .align 2
+gSpriteAffineAnim_83E4720:: @ 83E4720
+ obj_rot_scal_anim_frame 0x80, 0x80, 0, 0
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnim_83E4730:: @ 83E4730
+ obj_rot_scal_anim_frame 0x80, 0x80, 0, 0
+ obj_rot_scal_anim_frame 0x20, 0x20, 0, 4
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnim_83E4748:: @ 83E4748
+ obj_rot_scal_anim_frame 0x100, 0x100, 0, 0
+ obj_rot_scal_anim_frame 0xFFE0, 0xFFE0, 0, 4
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnimTable_83E4760:: @ 83E4760
+ .4byte gSpriteAffineAnim_83E4720
+ .4byte gSpriteAffineAnim_83E4730
+ .4byte gSpriteAffineAnim_83E4748
+
+ .align 2
+gSpriteTemplate_83E476C:: @ 83E476C
+ spr_template 11, 10, gOamData_83E4718, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83E4760, SpriteCallbackDummy
+
+ .align 2
+gUnknown_083E4784:: @ 83E4784
+ obj_tiles gPokenavSparkle_Gfx, 896, 0x0017
+
+ .align 2
+gUnknown_083E478C:: @ 83E478C
+ obj_pal gPokenavSparkle_Pal, 0x000f
+
+ .align 2
+gUnknown_083E4794:: @ 83E4794
+ .2byte 0, -35
+ .2byte 20, -28
+ .2byte 33, -10
+ .2byte 33, 10
+ .2byte 20, 28
+ .2byte 0, 35
+ .2byte -20, 28
+ .2byte -33, 10
+ .2byte -33, -10
+ .2byte -20, -28
+
+ .align 2
+gOamData_83E47BC:: @ 83E47BC
+ .2byte 0x0000
+ .2byte 0x4000
+ .2byte 0x0000
+
+ .align 2
+gSpriteAnim_83E47C4:: @ 83E47C4
+ obj_image_anim_frame 0, 5
+ obj_image_anim_frame 4, 5
+ obj_image_anim_frame 8, 5
+ obj_image_anim_frame 12, 5
+ obj_image_anim_frame 16, 5
+ obj_image_anim_frame 20, 5
+ obj_image_anim_frame 24, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_83E47E4:: @ 83E47E4
+ .4byte gSpriteAnim_83E47C4
+ .4byte gSpriteAnim_83E47C4 + 0x8
+ .4byte gSpriteAnim_83E47C4 + 0x10
+ .4byte gSpriteAnim_83E47C4 + 0x18
+
+ @ unused?
+ .4byte gSpriteAnim_83E47C4 + 0x20
+ .4byte gSpriteAnim_83E47C4 + 0x28
+ .4byte gSpriteAnim_83E47C4 + 0x30
+
+ .align 2
+gSpriteTemplate_83E4800:: @ 83E4800
+ spr_template 23, 15, gOamData_83E47BC, gSpriteAnimTable_83E47E4, NULL, gDummySpriteAffineAnimTable, sub_80F3E9C
+
+ .align 2
+gUnknown_083E4818:: @ 83E4818
+ obj_pal gPokenavIconPalette, 16
+
+ .align 2
+gSpriteAnim_83E4820:: @ 83E4820
+ obj_image_anim_frame 0, 12
+ obj_image_anim_frame 16, 12
+ obj_image_anim_frame 32, 12
+ obj_image_anim_frame 48, 12
+ obj_image_anim_frame 64, 12
+ obj_image_anim_frame 80, 12
+ obj_image_anim_frame 96, 12
+ obj_image_anim_frame 112, 12
+ obj_image_anim_jump 0
+
+ .align 2
+gSpriteAnimTable_83E4844:: @ 83E4844
+ .4byte gSpriteAnim_83E4820
+
+ .align 2
+gOamData_83E4848:: @ 83E4848
+ .2byte 0x0000
+ .2byte 0x8000
+ .2byte 0x0000
+
+ .align 2
+gSpriteTemplate_83E4850:: @ 83E4850
+ spr_template 24, 16, gOamData_83E4848, gSpriteAnimTable_83E4844, NULL, gDummySpriteAffineAnimTable, sub_80F4138
+
+ .align 2
+gUnknown_083E4868:: @ 83E4868
+ obj_pal Palette_3E42D8, 18
+
+ .align 2
+gOamData_83E4870:: @ 83E4870
+ .2byte 0x4000
+ .2byte 0x8000
+ .2byte 0x0C00
+
+ .align 2
+gSpriteTemplate_83E4878:: @ 83E4878
+ spr_template 26, 18, gOamData_83E4870, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
+
+gUnknown_083E4890:: @ 83E4890
+ .byte 4
+ .byte 5
+ .byte 6
+ .byte 7
+ .byte 8
+ .byte 9
+ .byte 9
+ .byte 10
+ .byte 10
+ .byte 11
+ .byte 11
+ .byte 12
+ .byte 12
+ .byte 13
+ .byte 13
+ .byte 13
+ .byte 13
+ .byte 14
+ .byte 14
+ .byte 14
+ .byte 14
+ .byte 15
+ .byte 15
+ .byte 15
+ .byte 15
+ .byte 16
+ .byte 16
+ .byte 16
+ .byte 16
+ .byte 16
+ .byte 16
+ .byte 17
+ .byte 17
+ .byte 17
+ .byte 17
+ .byte 17
+ .byte 17
+ .byte 18
+ .byte 18
+ .byte 18
+ .byte 18
+ .byte 18
+ .byte 18
+ .byte 19
+ .byte 19
+ .byte 19
+ .byte 19
+ .byte 19
+ .byte 19
+ .byte 19
+ .byte 19
+ .byte 20
+ .byte 20
+ .byte 20
+ .byte 20
+ .byte 20
+ .byte 20
+ .byte 20
+ .byte 20
+ .byte 21
+ .byte 21
+ .byte 21
+ .byte 21
+ .byte 21
+ .byte 21
+ .byte 21
+ .byte 21
+ .byte 22
+ .byte 22
+ .byte 22
+ .byte 22
+ .byte 22
+ .byte 22
+ .byte 22
+ .byte 22
+ .byte 22
+ .byte 22
+ .byte 23
+ .byte 23
+ .byte 23
+ .byte 23
+ .byte 23
+ .byte 23
+ .byte 23
+ .byte 23
+ .byte 23
+ .byte 23
+ .byte 24
+ .byte 24
+ .byte 24
+ .byte 24
+ .byte 24
+ .byte 24
+ .byte 24
+ .byte 24
+ .byte 24
+ .byte 24
+ .byte 25
+ .byte 25
+ .byte 25
+ .byte 25
+ .byte 25
+ .byte 25
+ .byte 25
+ .byte 25
+ .byte 25
+ .byte 25
+ .byte 25
+ .byte 25
+ .byte 26
+ .byte 26
+ .byte 26
+ .byte 26
+ .byte 26
+ .byte 26
+ .byte 26
+ .byte 26
+ .byte 26
+ .byte 26
+ .byte 26
+ .byte 26
+ .byte 27
+ .byte 27
+ .byte 27
+ .byte 27
+ .byte 27
+ .byte 27
+ .byte 27
+ .byte 27
+ .byte 27
+ .byte 27
+ .byte 27
+ .byte 27
+ .byte 27
+ .byte 27
+ .byte 28
+ .byte 28
+ .byte 28
+ .byte 28
+ .byte 28
+ .byte 28
+ .byte 28
+ .byte 28
+ .byte 28
+ .byte 28
+ .byte 28
+ .byte 28
+ .byte 28
+ .byte 28
+ .byte 29
+ .byte 29
+ .byte 29
+ .byte 29
+ .byte 29
+ .byte 29
+ .byte 29
+ .byte 29
+ .byte 29
+ .byte 29
+ .byte 29
+ .byte 29
+ .byte 29
+ .byte 29
+ .byte 29
+ .byte 29
+ .byte 30
+ .byte 30
+ .byte 30
+ .byte 30
+ .byte 30
+ .byte 30
+ .byte 30
+ .byte 30
+ .byte 30
+ .byte 30
+ .byte 30
+ .byte 30
+ .byte 30
+ .byte 30
+ .byte 30
+ .byte 30
+ .byte 31
+ .byte 31
+ .byte 31
+ .byte 31
+ .byte 31
+ .byte 31
+ .byte 31
+ .byte 31
+ .byte 31
+ .byte 31
+ .byte 31
+ .byte 31
+ .byte 31
+ .byte 31
+ .byte 31
+ .byte 31
+ .byte 31
+ .byte 32
+ .byte 32
+ .byte 32
+ .byte 32
+ .byte 32
+ .byte 32
+ .byte 32
+ .byte 32
+ .byte 32
+ .byte 32
+ .byte 32
+ .byte 32
+ .byte 32
+ .byte 32
+ .byte 32
+ .byte 32
+ .byte 32
+ .byte 32
+ .byte 33
+ .byte 33
+ .byte 33
+ .byte 33
+ .byte 33
+ .byte 33
+ .byte 33
+ .byte 33
+ .byte 33
+ .byte 33
+ .byte 33
+ .byte 33
+ .byte 33
+ .byte 33
+ .byte 33
+ .byte 33
+ .byte 33
+ .byte 33
+ .byte 33
+ .byte 34
+ .byte 34
+ .byte 34
+ .byte 34
+ .byte 34
+ .byte 34
+ .byte 34
+ .byte 34
+ .byte 34
+ .byte 34
+ .byte 34
+ .byte 34
+ .byte 34
+ .byte 34
+ .byte 34
+ .byte 34
+ .byte 34
+ .byte 34
+ .byte 34
+ .byte 34
+ .byte 35
+
+ .align 2
+gUnknown_083E4990:: @ 83E4990
+ .4byte REG_WIN0H
+ .4byte ((DMA_ENABLE | DMA_START_HBLANK | DMA_32BIT | DMA_REPEAT | DMA_DEST_RELOAD) << 16) | 1
+ .4byte 1
+
+ .align 1
+gUnknown_083E499C:: @ 83E499C
+ .2byte 0x43
+ .2byte 0x32
+ .2byte 0x33
+ .2byte 0x34
+ .2byte 0x35
+ .2byte 0x36
+ .2byte 0x44
+ .2byte 0x45
+ .2byte 0x46
+ .2byte 0x47
+ .2byte 0x48
+ .2byte 0x49
+ .2byte 0x4A
+ .2byte 0x4B
+ .2byte 0x4C
+ .2byte 0x4D
+ .2byte 0x4E
+
+ .align 2
+gUnknown_083E49C0:: @ 83E49C0
+ .2byte 0x109, 0xA
+ .2byte 0x10A, 0x2
+ .2byte 0x10B, 0x9
+ .2byte 0x10C, 0x3
+ .2byte 0x10D, 0x7
+ .2byte 0x10E, 0xB
+ .2byte 0x10F, 0xD
+ .2byte 0x110, 0xE
+ .2byte 0x105, 0xF
+ .2byte 0x106, 0xF
+ .2byte 0x107, 0xF
+ .2byte 0x108, 0xF
+ .2byte 0x14F, 0xF
diff --git a/data/record_mixing.s b/data/record_mixing.s
new file mode 100644
index 000000000..329651039
--- /dev/null
+++ b/data/record_mixing.s
@@ -0,0 +1,68 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+ .align 2
+recordMixingSecretBases:: @ 83D026C
+ @ gSaveBlock1.secretBases
+ .4byte gSaveBlock1 + 0x1A08
+
+ .align 2
+recordMixingTvShows:: @ 83D0270
+ @ gSaveBlock1.tvShows
+ .4byte gSaveBlock1 + 0x2738
+
+ .align 2
+gUnknown_083D0274:: @ 83D0274
+ .4byte gSaveBlock1 + 0x2ABC
+
+ .align 2
+gUnknown_083D0278:: @ 83D0278
+ .4byte gSaveBlock1 + 0x2D94
+
+ .align 2
+recordMixingEasyChatPairs:: @ 83D027C
+ @ gSaveBlock1.easyChatPairs
+ .4byte gSaveBlock1 + 0x2DD4
+
+ .align 2
+gUnknown_083D0280:: @ 83D0280
+ .4byte 0x02038738
+
+ .align 2
+gUnknown_083D0284:: @ 83D0284
+ .4byte 0x02024f4c
+
+gUnknown_083D0288:: @ 83D0288
+ .byte 1, 0
+
+gUnknown_083D028A:: @ 83D028A
+ .byte 1, 2, 0
+ .byte 2, 0, 1
+
+gUnknown_083D0290:: @ 83D0290
+ .byte 1, 0, 3, 2
+ .byte 3, 0, 1, 2
+ .byte 2, 0, 3, 1
+ .byte 1, 3, 0, 2
+ .byte 2, 3, 0, 1
+ .byte 3, 2, 0, 1
+ .byte 1, 2, 3, 0
+ .byte 2, 3, 1, 0
+ .byte 3, 2, 1, 0
+
+gUnknown_083D02B4:: @ 83D02B4
+ .byte 0, 1
+ .byte 1, 2
+ .byte 2, 0
+
+gUnknown_083D02BA:: @ 83D02BA
+ .byte 0, 1
+ .byte 2, 3
+
+ .byte 0, 2
+ .byte 1, 3
+
+ .byte 0, 3
+ .byte 2, 1
diff --git a/data/region_map.s b/data/region_map.s
new file mode 100644
index 000000000..2b81b344f
--- /dev/null
+++ b/data/region_map.s
@@ -0,0 +1,187 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+ .align 2
+gPokenavCursor_Pal::
+ .incbin "graphics/pokenav/cursor.gbapal"
+
+ .align 2
+gUnknown_083E5AF0:: @ 83E5AF0
+ .incbin "graphics/pokenav/cursor_small.4bpp.lz"
+
+ .align 2
+gUnknown_083E5B34:: @ 83E5B34
+ .incbin "graphics/pokenav/cursor_large.4bpp.lz"
+
+ .align 2
+gRegionMapBrendanIconPalette:: @ 83E5C20
+ .incbin "graphics/pokenav/brendan_icon.gbapal"
+
+ .align 2
+gRegionMapBrendanIconTiles:: @ 83E5C40
+ .incbin "graphics/pokenav/brendan_icon.4bpp"
+
+ .align 2
+gRegionMapMayIconPalette:: @ 83E5CC0
+ .incbin "graphics/pokenav/may_icon.gbapal"
+
+ .align 2
+gRegionMapMayIconTiles:: @ 83E5CE0
+ .incbin "graphics/pokenav/may_icon.4bpp"
+
+ .align 2
+gUnknown_083E5D60:: @ 83E5D60
+ .incbin "graphics/pokenav/region_map.gbapal", 0xE0, 0x40
+
+ .align 2
+gUnknown_083E5DA0:: @ 83E5DA0
+ .incbin "graphics/pokenav/region_map.8bpp.lz"
+
+ .align 2
+gUnknown_083E6B04:: @ 83E6B04
+ .incbin "graphics/pokenav/region_map_map.bin.lz"
+
+@ 83E6E50
+ .include "data/region_map_sections.inc"
+
+@ 83E6FF4
+ .include "data/region_map_locations.inc"
+
+gUnknown_083E7684:: @ 83E7684
+ .incbin "baserom.gba", 0x003e7684, 0x34
+
+ .align 2
+gOamData_83E76B8:: @ 83E76B8
+ .2byte 0x0000
+ .2byte 0x4000
+ .2byte 0x0400
+
+ .align 2
+gSpriteAnim_83E76C0:: @ 83E76C0
+ obj_image_anim_frame 0, 20
+ obj_image_anim_frame 4, 20
+ obj_image_anim_jump 0
+
+ .align 2
+gSpriteAnim_83E76CC:: @ 83E76CC
+ obj_image_anim_frame 0, 10
+ obj_image_anim_frame 16, 10
+ obj_image_anim_frame 32, 10
+ obj_image_anim_frame 16, 10
+ obj_image_anim_jump 0
+
+ .align 2
+gSpriteAnimTable_83E76E0:: @ 83E76E0
+ .4byte gSpriteAnim_83E76C0
+ .4byte gSpriteAnim_83E76CC
+
+ .align 2
+gUnknown_083E76E8:: @ 83E76E8
+ obj_pal gPokenavCursor_Pal, 0x0000
+
+ .align 2
+gSpriteTemplate_83E76F0:: @ 83E76F0
+ spr_template 0, 0, gOamData_83E76B8, gSpriteAnimTable_83E76E0, NULL, gDummySpriteAffineAnimTable, sub_80FBAF0
+
+gUnknown_083E7708:: @ 83E7708
+ .incbin "baserom.gba", 0x003e7708, 0x8
+
+Unknown_83E7710:
+ .incbin "baserom.gba", 0x003e7710, 0x8
+
+gUnknown_083E7718:: @ 83E7718
+ .4byte Unknown_83E7710
+
+gUnknown_083E771C:: @ 83E771C
+ .incbin "graphics/pokenav/map_frame.gbapal"
+
+gUnknown_083E773C:: @ 83E773C
+ .incbin "graphics/pokenav/map_frame.4bpp.lz"
+
+gUnknown_083E7774:: @ 83E7774
+ .incbin "baserom.gba", 0x003e7774, 0xb8
+
+ .align 2
+gPokenavMapMisc_Pal::
+ .incbin "graphics/pokenav/map_misc.gbapal"
+
+gUnknown_083E784C:: @ 83E784C
+ .incbin "graphics/pokenav/map_misc.4bpp.lz"
+
+gUnknown_083E7920:: @ 83E7920
+ .incbin "baserom.gba", 0x3e7920, 0x98
+
+ .align 2
+Unknown_3E79B8: @ 83E79B8
+ .4byte OtherText_PokeLeague
+ .4byte OtherText_PokeCenter
+
+ .align 2
+gUnknown_083E79C0:: @ 83E79C0
+ .4byte Unknown_3E79B8
+ .incbin "baserom.gba", 0x3e79c4, 0x8
+
+ .align 2
+gUnknown_083E79CC:: @ 83E79CC
+ obj_pal gPokenavMapMisc_Pal, 0x0002
+
+ .align 2
+gUnknown_083E79D4:: @ 83E79D4
+ .incbin "baserom.gba", 0x003e79d4, 0x8
+
+ .align 2
+gOamData_83E79DC:: @ 83E79DC
+ .2byte 0x0000
+ .2byte 0x0000
+ .2byte 0x0800
+
+ .align 2
+gSpriteAnim_83E79E4:: @ 83E79E4
+ obj_image_anim_frame 0, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83E79EC:: @ 83E79EC
+ obj_image_anim_frame 1, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83E79F4:: @ 83E79F4
+ obj_image_anim_frame 3, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83E79FC:: @ 83E79FC
+ obj_image_anim_frame 5, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83E7A04:: @ 83E7A04
+ obj_image_anim_frame 6, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83E7A0C:: @ 83E7A0C
+ obj_image_anim_frame 8, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83E7A14:: @ 83E7A14
+ obj_image_anim_frame 10, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_83E7A1C:: @ 83E7A1C
+ .4byte gSpriteAnim_83E79E4
+ .4byte gSpriteAnim_83E79EC
+ .4byte gSpriteAnim_83E79F4
+ .4byte gSpriteAnim_83E79FC
+ .4byte gSpriteAnim_83E7A04
+ .4byte gSpriteAnim_83E7A0C
+ .4byte gSpriteAnim_83E7A14
+
+ .align 2
+gSpriteTemplate_83E7A38:: @ 83E7A38
+ spr_template 2, 2, gOamData_83E79DC, gSpriteAnimTable_83E7A1C, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
diff --git a/data/reset_rtc_screen.s b/data/reset_rtc_screen.s
new file mode 100644
index 000000000..a50f5c07b
--- /dev/null
+++ b/data/reset_rtc_screen.s
@@ -0,0 +1,63 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+ .align 2
+gUnknown_08376420:: @ 8376420
+ .incbin "baserom.gba", 0x00376420, 0x3C
+
+ .align 2
+gOamData_837645C:: @ 837645C
+ .2byte 0x0000
+ .2byte 0x0000
+ .2byte 0x0000
+
+ .align 2
+gSpriteImage_8376464:: @ 8376464
+ .incbin "graphics/unknown_sprites/83764AC/0.4bpp"
+
+ .align 2
+gSpriteImage_8376484:: @ 8376484
+ .incbin "graphics/unknown_sprites/83764AC/1.4bpp"
+
+ .align 2
+Palette_3764A4: @ 83764A4
+ .incbin "baserom.gba", 0x3764a4, 0x8
+
+ .align 2
+gSpriteImageTable_83764AC:: @ 83764AC
+ obj_frame_tiles gSpriteImage_8376464, 0x20
+ obj_frame_tiles gSpriteImage_8376484, 0x20
+
+ .align 2
+gUnknown_083764BC:: @ 83764BC
+ obj_pal Palette_3764A4, 0x1000
+
+ .align 2
+gSpriteAnim_83764C4:: @ 83764C4
+ obj_image_anim_frame 0, 30
+ obj_image_anim_jump 0
+
+ .align 2
+gSpriteAnim_83764CC:: @ 83764CC
+ obj_image_anim_frame 0, 30, OBJ_IMAGE_ANIM_V_FLIP
+ obj_image_anim_jump 0
+
+ .align 2
+gSpriteAnim_83764D4:: @ 83764D4
+ obj_image_anim_frame 1, 30
+ obj_image_anim_jump 0
+
+ .align 2
+gSpriteAnimTable_83764DC:: @ 83764DC
+ .4byte gSpriteAnim_83764C4
+ .4byte gSpriteAnim_83764CC
+ .4byte gSpriteAnim_83764D4
+
+ .align 2
+gSpriteTemplate_83764E8:: @ 83764E8
+ spr_template 0xFFFF, 0x1000, gOamData_837645C, gSpriteAnimTable_83764DC, gSpriteImageTable_83764AC, gDummySpriteAffineAnimTable, SpriteCallbackDummy
+
+gUnknown_08376500:: @ 8376500
+ .string " : $"
diff --git a/data/rom4.s b/data/rom4.s
new file mode 100644
index 000000000..6f883c64c
--- /dev/null
+++ b/data/rom4.s
@@ -0,0 +1,66 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+ .align 2
+gDummyWarpData:: @ 8216624
+ .byte -1
+ .byte -1
+ .byte -1
+ .space 1
+ .2byte -1
+ .2byte -1
+
+@ unused, unknown data
+ .byte 0xB0, 0x04, 0x00, 0x00
+ .byte 0x10, 0x0E, 0x00, 0x00
+ .byte 0xB0, 0x04, 0x00, 0x00
+ .byte 0x60, 0x09, 0x00, 0x00
+ .byte 0x32, 0x00, 0x00, 0x00
+ .byte 0x50, 0x00, 0x00, 0x00
+ .byte 0xD4, 0xFF, 0xFF, 0xFF
+ .byte 0x2C, 0x00, 0x00, 0x00
+
+ .align 2
+gUnknown_0821664C:: @ 821664C
+ .4byte 0, 0
+ .4byte 0, 1
+ .4byte 0, -1
+ .4byte -1, 0
+ .4byte 1, 0
+ .4byte -1, 1
+ .4byte 1, 1
+ .4byte -1, -1
+ .4byte 1, -1
+
+ .align 2
+gUnknown_08216694:: @ 8216694
+ .4byte REG_WIN0H
+ .4byte ((DMA_ENABLE | DMA_START_HBLANK | DMA_REPEAT | DMA_DEST_RELOAD) << 16) | 1
+ .4byte 1
+
+ .align 2
+gUnknown_082166A0:: @ 82166A0
+ .4byte sub_8055C68
+ .4byte sub_8055C88
+ .4byte sub_8055C8C
+
+ .align 2
+gUnknown_082166AC:: @ 82166AC
+ .4byte sub_8055CAC
+ .4byte sub_8055CB0
+ .4byte sub_8055CB0
+ .4byte sub_8055CB0
+ .4byte sub_8055CB0
+ .4byte sub_8055CAC
+ .4byte sub_8055CAC
+ .4byte sub_8055D18
+ .4byte sub_8055D18
+ .4byte sub_8055D18
+ .4byte sub_8055D18
+
+ .align 2
+gUnknown_082166D8:: @ 82166D8
+ .4byte sub_8055D30
+ .4byte sub_8055D38
diff --git a/data/rom_8077ABC.s b/data/rom_8077ABC.s
new file mode 100644
index 000000000..dc9074cee
--- /dev/null
+++ b/data/rom_8077ABC.s
@@ -0,0 +1,37 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+gUnknown_0837F578:: @ 837F578
+ .incbin "baserom.gba", 0x0037f578, 0x20
+
+@ One entry for each of the four Castform forms.
+@ Coords are probably front pic coords or back pic coords, but this data does not seem to be
+@ used during battle, party summary, or pokedex screens.
+ .align 2
+gUnknownCastformCoords_0837F598:: @ 837F598
+ .byte 68, 17, 0, 0
+ .byte 102, 9, 0, 0
+ .byte 70, 9, 0, 0
+ .byte 134, 8, 0, 0
+
+@ One entry for each of the four Castform forms. Probably a palette index.
+gUnknownCastformData_0837F5A8:: @ 837F5A8
+ .byte 0xD, 0xE, 0xD, 0xD
+
+gUnknown_0837F5AC:: @ 837F5AC
+ .byte 0, 0, 0, 0
+
+ .align 2
+gSpriteTemplate_837F5B0:: @ 837F5B0
+ spr_template 55125, 55125, gOamData_837DF9C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
+
+ .align 2
+gSpriteTemplate_837F5C8:: @ 837F5C8
+ spr_template 55126, 55126, gOamData_837DF9C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
+
+ .align 2
+gUnknown_0837F5E0:: @ 837F5E0
+ obj_tiles gMiscBlank_Gfx, 2048, 0xd755
+ obj_tiles gMiscBlank_Gfx, 2048, 0xd756
diff --git a/data/rom_8080874.s b/data/rom_8080874.s
new file mode 100644
index 000000000..f91dd02fc
--- /dev/null
+++ b/data/rom_8080874.s
@@ -0,0 +1,17 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+gUnknown_0839ACDC:: @ 839ACDC
+ .incbin "baserom.gba", 0x0039acdc, 0xc
+
+ .align 2
+gUnknown_0839ACE8:: @ 839ACE8
+ .byte 4
+
+ .align 2
+gUnknown_0839ACEC:: @ 839ACEC
+ .4byte REG_WIN0H
+ .4byte ((DMA_ENABLE | DMA_START_HBLANK | DMA_REPEAT | DMA_DEST_RELOAD) << 16) | 1
+ .4byte 1
diff --git a/data/rom_810CBB4.s b/data/rom_810CBB4.s
new file mode 100644
index 000000000..0eefbaeb9
--- /dev/null
+++ b/data/rom_810CBB4.s
@@ -0,0 +1,135 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+ .align 2
+gUnknown_083F7FC4:: @ 83F7FC4
+ .byte 1, 4, 1, 0
+ .4byte sub_810CFF8
+ .byte 2, 4, 1, 0
+ .4byte sub_810CFF8
+ .byte 3, 4, 1, 0
+ .4byte sub_810CFF8
+ .byte 5, 4, 1, 0
+ .4byte sub_810CFF8
+ .byte 6, 4, 1, 0
+ .4byte sub_810CFF8
+ .byte 7, 4, 1, 0
+ .4byte sub_810CFF8
+ .byte 8, 4, 1, 0
+ .4byte sub_810CFF8
+ .byte 9, 4, 1, 0
+ .4byte sub_810CFF8
+
+ .byte 4, 1, 0, 1
+ .4byte sub_810CE48
+ .byte 4, 2, 0, 1
+ .4byte sub_810CE48
+ .byte 4, 3, 0, 1
+ .4byte sub_810CE48
+ .byte 4, 5, 0, 1
+ .4byte sub_810CE48
+ .byte 4, 6, 0, 1
+ .4byte sub_810CE48
+ .byte 4, 7, 0, 1
+ .4byte sub_810CE48
+ .byte 4, 8, 0, 1
+ .4byte sub_810CE48
+ .byte 4, 9, 0, 1
+ .4byte sub_810CE48
+
+ .byte 0, 0, 0, 0
+ .4byte NULL
+
+ .align 2
+gCaveTransitionPalette_White:: @ 83F804C
+ .rept 16
+ .2byte 0x7FFF
+ .endr
+
+ .align 2
+gCaveTransitionPalette_Black:: @ 83F806C
+ .rept 16
+ .2byte 0x0000
+ .endr
+
+gUnknown_083F808C:: @ 83F808C
+ .incbin "baserom.gba", 0x003f808c, 0x10
+
+gUnknown_083F809C:: @ 83F809C
+ .incbin "baserom.gba", 0x003f809c, 0x10
+
+ .align 2
+gCaveTransitionTilemap:: @ 83F80AC
+ .incbin "graphics/misc/cave_transition_map.bin.lz"
+
+ .align 2
+gCaveTransitionTiles:: @ 83F828C
+ .incbin "graphics/misc/cave_transition.4bpp.lz"
+
+gUnknown_083F8340:: @ 83F8340
+ .incbin "baserom.gba", 0x003f8340, 0x18
+
+gUnknown_083F8358:: @ 83F8358
+ .incbin "baserom.gba", 0x003f8358, 0x4
+
+gUnknown_083F835C:: @ 83F835C
+ .incbin "baserom.gba", 0x003f835c, 0x8
+
+gUnknown_083F8364:: @ 83F8364
+ .incbin "baserom.gba", 0x003f8364, 0xc
+
+gUnknown_083F8370:: @ 83F8370
+ .incbin "baserom.gba", 0x003f8370, 0x6
+
+gUnknown_083F8376:: @ 83F8376
+ .incbin "baserom.gba", 0x003f8376, 0xa
+
+ .align 2
+gUnknown_083F8380:: @ 83F8380
+ .4byte OtherText_1F
+ .4byte OtherText_2F
+ .4byte OtherText_3F
+ .4byte OtherText_4F
+ .4byte OtherText_5F
+ .4byte OtherText_6F
+ .4byte OtherText_7F
+ .4byte OtherText_8F
+ .4byte OtherText_9F
+ .4byte OtherText_10F
+ .4byte OtherText_11F
+ .4byte OtherText_B1F
+ .4byte OtherText_B2F
+ .4byte OtherText_B3F
+ .4byte OtherText_B4F
+ .4byte OtherText_Rooftop
+
+ .align 2
+gUnknown_083F83C0:: @ 83F83C0
+ .4byte OtherText_BlueFlute
+ .4byte OtherText_YellowFlute
+ .4byte OtherText_RedFlute
+ .4byte OtherText_WhiteFlute
+ .4byte OtherText_BlackFlute
+ .4byte OtherText_PrettyChair
+ .4byte OtherText_PrettyDesk
+ .4byte gOtherText_CancelNoTerminator
+
+gUnknown_083F83E0:: @ 83F83E0
+ .incbin "baserom.gba", 0x003f83e0, 0xc
+
+gUnknown_083F83EC:: @ 83F83EC
+ .incbin "baserom.gba", 0x003f83ec, 0xc
+
+gUnknown_083F83F8:: @ 83F83F8
+ .incbin "baserom.gba", 0x003f83f8, 0xc
+
+gUnknown_083F8404:: @ 83F8404
+ .incbin "baserom.gba", 0x003f8404, 0x4
+
+gUnknown_083F8408:: @ 83F8408
+ .incbin "baserom.gba", 0x003f8408, 0x8
+
+gUnknown_083F8410:: @ 83F8410
+ .incbin "baserom.gba", 0x003f8410, 0x8
diff --git a/data/rom_81258BC.s b/data/rom_81258BC.s
new file mode 100644
index 000000000..b07fdddf1
--- /dev/null
+++ b/data/rom_81258BC.s
@@ -0,0 +1,997 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+ .align 2
+gUnknown_08402080:: @ 8402080
+ .4byte sub_812B864
+ .4byte sub_812B870
+ .4byte sub_812B87C
+ .4byte sub_812B888
+ .4byte sub_812B894
+ .4byte sub_812B8A0
+ .4byte sub_812B8AC
+ .4byte sub_812B8B8
+ .4byte sub_812B994
+ .4byte sub_812B9A0
+ .4byte sub_812B9AC
+ .4byte sub_812B9B8
+ .4byte sub_812B9C4
+ .4byte sub_812BA14
+ .4byte sub_812BA70
+ .4byte sub_812BA7C
+ .4byte dp01t_10_6_message
+ .4byte dp01t_11_6_message_for_player_only
+ .4byte sub_812BB10
+ .4byte sub_812BBFC
+ .4byte sub_812BC08
+ .4byte sub_812BC14
+ .4byte sub_812BC54
+ .4byte sub_812BC60
+ .4byte sub_812BC6C
+ .4byte sub_812BC78
+ .4byte sub_812BC84
+ .4byte sub_812BCC0
+ .4byte sub_812BCCC
+ .4byte sub_812BCD8
+ .4byte sub_812BCE4
+ .4byte sub_812BCF0
+ .4byte sub_812BCFC
+ .4byte sub_812BD08
+ .4byte sub_812BD14
+ .4byte sub_812BD20
+ .4byte sub_812BD2C
+ .4byte sub_812BD38
+ .4byte sub_812BD44
+ .4byte sub_812BD50
+ .4byte sub_812BD5C
+ .4byte sub_812BD68
+ .4byte sub_812BD74
+ .4byte sub_812BD80
+ .4byte sub_812BDC4
+ .4byte sub_812BDF4
+ .4byte dp01t_2E_6_battle_intro
+ .4byte sub_812BE64
+ .4byte sub_812BEB0
+ .4byte sub_812BEBC
+ .4byte sub_812BEC8
+ .4byte sub_812BED4
+ .4byte sub_812BEE0
+ .4byte sub_812BF3C
+ .4byte sub_812BF48
+ .4byte sub_812BF54
+ .4byte nullsub_78
+
+ .align 2
+gSpriteAnim_8402164:: @ 8402164
+ obj_image_anim_frame 0, 4
+ obj_image_anim_frame 16, 4
+ obj_image_anim_frame 32, 4
+ obj_image_anim_frame 48, 4
+ obj_image_anim_frame 64, 4
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_840217C:: @ 840217C
+ .4byte gSpriteAnim_8402164
+
+ .align 2
+gBattleAnimSpriteTemplate_8402180:: @ 8402180
+ spr_template 10137, 10137, gOamData_837E054, gSpriteAnimTable_840217C, NULL, gDummySpriteAffineAnimTable, sub_80793C4
+
+ .align 2
+gBattleAnimSpriteTemplate_8402198:: @ 8402198
+ spr_template 10016, 10016, gOamData_837DF54, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_812C144
+
+ .align 2
+gBattleAnimSpriteTemplate_84021B0:: @ 84021B0
+ spr_template 10017, 10017, gOamData_837DF24, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80794A8
+
+ .align 2
+gSpriteAnim_84021C8:: @ 84021C8
+ obj_image_anim_frame 0, 40
+ obj_image_anim_frame 16, 8
+ obj_image_anim_frame 32, 40
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_84021D8:: @ 84021D8
+ .4byte gSpriteAnim_84021C8
+
+ .align 2
+gBattleAnimSpriteTemplate_84021DC:: @ 84021DC
+ spr_template 10190, 10190, gOamData_837DF34, gSpriteAnimTable_84021D8, NULL, gDummySpriteAffineAnimTable, sub_80793C4
+
+ .align 2
+gBattleAnimSpriteTemplate_84021F4:: @ 84021F4
+ spr_template 10191, 10191, gOamData_837E05C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_812C220
+
+ .align 2
+gBattleAnimSpriteTemplate_840220C:: @ 840220C
+ spr_template 10189, 10189, gOamData_837DF94, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_812C2BC
+
+ .align 2
+gSpriteAffineAnim_8402224:: @ 8402224
+ obj_rot_scal_anim_frame 0x180, 0x180, 0, 0
+ obj_rot_scal_anim_frame 0xFFE0, 0x18, 0, 5
+ obj_rot_scal_anim_frame 0x18, 0xFFE0, 0, 5
+ obj_rot_scal_anim_jump 1
+
+ .align 2
+gSpriteAffineAnim_8402244:: @ 8402244
+ obj_rot_scal_anim_frame 0x30, 0x30, 0, 0
+ obj_rot_scal_anim_frame 0x20, 0x20, 0, 6
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnimTable_840225C:: @ 840225C
+ .4byte gSpriteAffineAnim_8402224
+ .4byte gSpriteAffineAnim_8402244
+
+ .align 2
+gBattleAnimSpriteTemplate_8402264:: @ 8402264
+ spr_template 10187, 10187, gOamData_837E11C, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_840225C, sub_812C358
+
+ .align 2
+gBattleAnimSpriteTemplate_840227C:: @ 840227C
+ spr_template 10152, 10152, gOamData_837DF2C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_812C720
+
+ .align 2
+gSpriteAnim_8402294:: @ 8402294
+ obj_image_anim_frame 0, 3
+ obj_image_anim_frame 16, 3
+ obj_image_anim_frame 32, 3
+ obj_image_anim_frame 48, 3
+ obj_image_anim_frame 64, 3
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_84022AC:: @ 84022AC
+ .4byte gSpriteAnim_8402294
+
+ .align 2
+gBattleAnimSpriteTemplate_84022B0:: @ 84022B0
+ spr_template 10027, 10027, gOamData_837DF34, gSpriteAnimTable_84022AC, NULL, gDummySpriteAffineAnimTable, sub_812C80C
+
+ .align 2
+gSpriteAnim_84022C8:: @ 84022C8
+ obj_image_anim_frame 0, 3
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_84022D0:: @ 84022D0
+ .4byte gSpriteAnim_84022C8
+
+ .align 2
+gSpriteAffineAnim_84022D4:: @ 84022D4
+ obj_rot_scal_anim_frame 0xFFF9, 0xFFF9, -3, 16
+ obj_rot_scal_anim_frame 0x7, 0x7, 3, 16
+ obj_rot_scal_anim_jump 0
+
+ .align 2
+gSpriteAffineAnimTable_84022EC:: @ 84022EC
+ .4byte gSpriteAffineAnim_84022D4
+
+ .align 2
+gBattleAnimSpriteTemplate_84022F0:: @ 84022F0
+ spr_template 10228, 10228, gOamData_837DF94, gSpriteAnimTable_84022D0, NULL, gSpriteAffineAnimTable_84022EC, sub_812C848
+
+ .align 2
+gSpriteAnim_8402308:: @ 8402308
+ obj_image_anim_frame 0, 8
+ obj_image_anim_frame 16, 16
+ obj_image_anim_frame 32, 4
+ obj_image_anim_frame 48, 4
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_840231C:: @ 840231C
+ .4byte gSpriteAnim_8402308
+
+ .align 2
+gSpriteAffineAnim_8402320:: @ 8402320
+ obj_rot_scal_anim_frame 0x200, 0x200, 0, 0
+ obj_rot_scal_anim_frame 0xFFE0, 0xFFE0, 0, 8
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnimTable_8402338:: @ 8402338
+ .4byte gSpriteAffineAnim_8402320
+
+ .align 2
+gBattleAnimSpriteTemplate_840233C:: @ 840233C
+ spr_template 10192, 10192, gOamData_837DFF4, gSpriteAnimTable_840231C, NULL, gSpriteAffineAnimTable_8402338, sub_812C908
+
+ .align 2
+gSpriteAffineAnim_8402354:: @ 8402354
+ obj_rot_scal_anim_frame 0x0, 0x180, 0, 0
+ obj_rot_scal_anim_frame 0x10, 0x0, 0, 20
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnim_840236C:: @ 840236C
+ obj_rot_scal_anim_frame 0x140, 0x180, 0, 0
+ obj_rot_scal_anim_frame 0xFFF0, 0x0, 0, 19
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnimTable_8402384:: @ 8402384
+ .4byte gSpriteAffineAnim_8402354
+ .4byte gSpriteAffineAnim_840236C
+
+ .align 2
+gBattleAnimSpriteTemplate_840238C:: @ 840238C
+ spr_template 10227, 10227, gOamData_837DFFC, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_8402384, sub_812C990
+
+ .align 2
+gBattleAnimSpriteTemplate_84023A4:: @ 84023A4
+ spr_template 10247, 10247, gOamData_837DF34, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_812CAFC
+
+ .align 2
+gBattleAnimSpriteTemplate_84023BC:: @ 84023BC
+ spr_template 10247, 10247, gOamData_837DF34, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_812CC28
+
+ .align 2
+gSpriteAnim_84023D4:: @ 84023D4
+ obj_image_anim_frame 0, 2
+ obj_image_anim_frame 8, 2
+ obj_image_anim_frame 16, 2
+ obj_image_anim_jump 0
+
+ .align 2
+gSpriteAnimTable_84023E4:: @ 84023E4
+ .4byte gSpriteAnim_84023D4
+
+ .align 2
+gBattleAnimSpriteTemplate_84023E8:: @ 84023E8
+ spr_template 10229, 10229, gOamData_837DF54, gSpriteAnimTable_84023E4, NULL, gDummySpriteAffineAnimTable, sub_812CCE8
+
+ .align 2
+gUnknown_08402400:: @ 8402400
+ .incbin "baserom.gba", 0x00402400, 0x20
+
+ .align 2
+gSpriteAnim_8402420:: @ 8402420
+ obj_image_anim_frame 0, 8
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_8402428:: @ 8402428
+ .4byte gSpriteAnim_8402420
+
+ .align 2
+gSpriteAffineAnim_840242C:: @ 840242C
+ obj_rot_scal_anim_frame 0x0, 0x0, 5, 40
+ obj_rot_scal_anim_frame 0x0, 0x0, 10, 10
+ obj_rot_scal_anim_frame 0x0, 0x0, 15, 10
+ obj_rot_scal_anim_frame 0x0, 0x0, 20, 40
+ obj_rot_scal_anim_jump 0
+
+ .align 2
+gSpriteAffineAnimTable_8402454:: @ 8402454
+ .4byte gSpriteAffineAnim_840242C
+
+ .align 2
+gBattleAnimSpriteTemplate_8402458:: @ 8402458
+ spr_template 10230, 10230, gOamData_837DFFC, gSpriteAnimTable_8402428, NULL, gSpriteAffineAnimTable_8402454, sub_812D294
+
+ .align 2
+gSpriteAnim_8402470:: @ 8402470
+ obj_image_anim_frame 0, 3
+ obj_image_anim_frame 16, 3
+ obj_image_anim_frame 32, 3
+ obj_image_anim_frame 48, 3
+ obj_image_anim_frame 32, 3, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_frame 16, 3, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_frame 0, 3, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_loop 1
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_8402494:: @ 8402494
+ .4byte gSpriteAnim_8402470
+
+ .align 2
+gBattleAnimSpriteTemplate_8402498:: @ 8402498
+ spr_template 10234, 10234, gOamData_837DF34, gSpriteAnimTable_8402494, NULL, gDummySpriteAffineAnimTable, sub_80793C4
+
+ .align 2
+gUnknown_084024B0:: @ 84024B0
+ .incbin "baserom.gba", 0x004024b0, 0x20
+
+ .align 2
+gBattleAnimSpriteTemplate_84024D0:: @ 84024D0
+ spr_template 10226, 10226, gOamData_837DF2C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_812D3AC
+
+ .align 2
+gBattleAnimSpriteTemplate_84024E8:: @ 84024E8
+ spr_template 10233, 10233, gOamData_837DF2C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_812D4B4
+
+ .align 2
+gSpriteTemplate_8402500:: @ 8402500
+ spr_template 10233, 10233, gOamData_837DF24, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_812D588
+
+ .align 2
+gUnknown_08402518:: @ 8402518
+ .incbin "baserom.gba", 0x00402518, 0x28
+
+ .align 2
+gUnknown_08402540:: @ 8402540
+ .incbin "baserom.gba", 0x00402540, 0x38
+
+ .align 2
+gBattleAnimSpriteTemplate_8402578:: @ 8402578
+ spr_template 10236, 10236, gOamData_837DF24, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_812D724
+
+ .align 2
+gUnknown_08402590:: @ 8402590
+ .incbin "baserom.gba", 0x00402590, 0x30
+
+ .align 2
+gUnknown_084025C0:: @ 84025C0
+ .incbin "baserom.gba", 0x004025c0, 0x4
+
+ .align 2
+gSpriteAnim_84025C4:: @ 84025C4
+ obj_image_anim_frame 0, 6
+ obj_image_anim_frame 4, 6
+ obj_image_anim_jump 0
+
+ .align 2
+gSpriteAnim_84025D0:: @ 84025D0
+ obj_image_anim_frame 8, 6
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_84025D8:: @ 84025D8
+ obj_image_anim_frame 12, 6
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_84025E0:: @ 84025E0
+ .4byte gSpriteAnim_84025C4
+ .4byte gSpriteAnim_84025D0
+ .4byte gSpriteAnim_84025D8
+
+ .align 2
+gBattleAnimSpriteTemplate_84025EC:: @ 84025EC
+ spr_template 10241, 10241, gOamData_837DF2C, gSpriteAnimTable_84025E0, NULL, gDummySpriteAffineAnimTable, sub_812DEAC
+
+ .align 2
+gUnknown_08402604:: @ 8402604
+ .incbin "baserom.gba", 0x00402604, 0x4
+
+gUnknown_08402608:: @ 8402608
+ .incbin "baserom.gba", 0x00402608, 0x8
+
+gUnknown_08402610:: @ 8402610
+ .incbin "baserom.gba", 0x00402610, 0x20
+
+ .align 2
+gBattleAnimSpriteTemplate_8402630:: @ 8402630
+ spr_template 10087, 10087, gOamData_837DF2C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_812E4F0
+
+ .align 2
+gSpriteAnim_8402648:: @ 8402648
+ obj_image_anim_frame 0, 8
+ obj_image_anim_frame 1, 8
+ obj_image_anim_frame 2, 8
+ obj_image_anim_frame 3, 8
+ obj_image_anim_frame 3, 8, OBJ_IMAGE_ANIM_V_FLIP
+ obj_image_anim_frame 2, 8, OBJ_IMAGE_ANIM_V_FLIP
+ obj_image_anim_frame 0, 8, OBJ_IMAGE_ANIM_V_FLIP
+ obj_image_anim_frame 1, 8, OBJ_IMAGE_ANIM_V_FLIP
+ obj_image_anim_jump 0
+
+ .align 2
+gSpriteAnim_840266C:: @ 840266C
+ obj_image_anim_frame 0, 8, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_frame 1, 8, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_frame 2, 8, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_frame 3, 8, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_frame 3, 8, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_frame 2, 8, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_frame 0, 8, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_frame 1, 8, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_jump 0
+
+ .align 2
+gSpriteAnim_8402690:: @ 8402690
+ obj_image_anim_frame 0, 8
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_8402698:: @ 8402698
+ .4byte gSpriteAnim_8402648
+ .4byte gSpriteAnim_840266C
+ .4byte gSpriteAnim_8402690
+
+ .align 2
+gBattleAnimSpriteTemplate_84026A4:: @ 84026A4
+ spr_template 10238, 10238, gOamData_837DF24, gSpriteAnimTable_8402698, NULL, gDummySpriteAffineAnimTable, sub_812E7A0
+
+ .align 2
+ .incbin "baserom.gba", 0x004026bc, 0x20
+
+ .align 2
+gSpriteAnim_84026DC:: @ 84026DC
+ obj_image_anim_frame 0, 5
+ obj_image_anim_frame 4, 9
+ obj_image_anim_frame 8, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_84026EC:: @ 84026EC
+ .4byte gSpriteAnim_84026DC
+
+ .align 2
+gBattleAnimSpriteTemplate_84026F0:: @ 84026F0
+ spr_template 10239, 10239, gOamData_837DF2C, gSpriteAnimTable_84026EC, NULL, gDummySpriteAffineAnimTable, sub_812EA4C
+
+ .align 2
+gBattleAnimSpriteTemplate_8402708:: @ 8402708
+ spr_template 10240, 10240, gOamData_837DF24, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_812EC78
+
+ .align 2
+gBattleAnimSpriteTemplate_8402720:: @ 8402720
+ spr_template 10227, 10227, gOamData_837DFFC, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_8402384, sub_812ED84
+
+ .align 2
+gBattleAnimSpriteTemplate_8402738:: @ 8402738
+ spr_template 10236, 10236, gOamData_837DF24, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_812EEA4
+
+ .align 2
+gUnknown_08402750:: @ 8402750
+ .incbin "baserom.gba", 0x00402750, 0x30
+
+ .align 2
+gSpriteAffineAnim_8402780:: @ 8402780
+ obj_rot_scal_anim_frame 0x80, 0x80, 0, 0
+ obj_rot_scal_anim_frame 0xFFF8, 0xFFF8, 0, 8
+ obj_rot_scal_anim_frame 0x8, 0x8, 0, 8
+ obj_rot_scal_anim_jump 0
+
+ .align 2
+gSpriteAffineAnim_84027A0:: @ 84027A0
+ obj_rot_scal_anim_frame 0xC0, 0xC0, 0, 0
+ obj_rot_scal_anim_frame 0x8, 0x8, 0, 8
+ obj_rot_scal_anim_frame 0xFFF8, 0xFFF8, 0, 8
+ obj_rot_scal_anim_jump 0
+
+ .align 2
+gSpriteAffineAnim_84027C0:: @ 84027C0
+ obj_rot_scal_anim_frame 0x100, 0x100, 0, 0
+ obj_rot_scal_anim_frame 0x8, 0x8, 0, 8
+ obj_rot_scal_anim_frame 0xFFF8, 0xFFF8, 0, 8
+ obj_rot_scal_anim_jump 0
+
+ .align 2
+gSpriteAffineAnimTable_84027E0:: @ 84027E0
+ .4byte gSpriteAffineAnim_8402780
+ .4byte gSpriteAffineAnim_84027A0
+ .4byte gSpriteAffineAnim_84027C0
+
+ .align 2
+gBattleAnimSpriteTemplate_84027EC:: @ 84027EC
+ spr_template 10242, 10242, gOamData_837DF94, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_84027E0, sub_812F88C
+
+ .align 2
+gSpriteAffineAnim_8402804:: @ 8402804
+ obj_rot_scal_anim_frame 0x80, 0x80, 0, 0
+ obj_rot_scal_anim_frame 0xFFFC, 0xFFFA, 0, 16
+ obj_rot_scal_anim_frame 0x4, 0x6, 0, 16
+ obj_rot_scal_anim_jump 0
+
+ .align 2
+gSpriteAffineAnim_8402824:: @ 8402824
+ obj_rot_scal_anim_frame 0xC0, 0xC0, 0, 0
+ obj_rot_scal_anim_frame 0x4, 0x6, 0, 16
+ obj_rot_scal_anim_frame 0xFFFC, 0xFFFA, 0, 16
+ obj_rot_scal_anim_jump 0
+
+ .align 2
+gSpriteAffineAnim_8402844:: @ 8402844
+ obj_rot_scal_anim_frame 0x100, 0x100, 0, 0
+ obj_rot_scal_anim_frame 0x4, 0x6, 0, 16
+ obj_rot_scal_anim_frame 0xFFFC, 0xFFFA, 0, 16
+ obj_rot_scal_anim_jump 0
+
+ .align 2
+gSpriteAffineAnim_8402864:: @ 8402864
+ obj_rot_scal_anim_frame 0x100, 0x100, 0, 0
+ obj_rot_scal_anim_frame 0x8, 0xA, 0, 30
+ obj_rot_scal_anim_frame 0xFFF8, 0xFFF6, 0, 16
+ obj_rot_scal_anim_jump 0
+
+ .align 2
+gSpriteAffineAnimTable_8402884:: @ 8402884
+ .4byte gSpriteAffineAnim_8402804
+ .4byte gSpriteAffineAnim_8402824
+ .4byte gSpriteAffineAnim_8402844
+ .4byte gSpriteAffineAnim_8402864
+
+ .align 2
+gBattleAnimSpriteTemplate_8402894:: @ 8402894
+ spr_template 10242, 10242, gOamData_837DFF4, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_8402884, sub_812F948
+
+ .align 2
+gUnknown_084028AC:: @ 84028AC
+ .incbin "baserom.gba", 0x004028ac, 0x20
+
+ .align 2
+gSpriteTemplate_84028CC:: @ 84028CC
+ spr_template 10243, 10243, gOamData_837DF24, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_812FF94
+
+gUnknown_084028E4:: @ 84028E4
+ .incbin "baserom.gba", 0x004028e4, 0x30
+
+ .align 2
+gSpriteAnim_8402914:: @ 8402914
+ obj_image_anim_frame 0, 3
+ obj_image_anim_frame 16, 3
+ obj_image_anim_jump 0
+
+ .align 2
+gSpriteAnim_8402920:: @ 8402920
+ obj_image_anim_frame 32, 3
+ obj_image_anim_frame 48, 3
+ obj_image_anim_jump 0
+
+ .align 2
+gSpriteAnimTable_840292C:: @ 840292C
+ .4byte gSpriteAnim_8402914
+ .4byte gSpriteAnim_8402920
+
+ .align 2
+gBattleAnimSpriteTemplate_8402934:: @ 8402934
+ spr_template 10053, 10053, gOamData_837DF34, gSpriteAnimTable_840292C, NULL, gDummySpriteAffineAnimTable, sub_81300F4
+
+ .align 2
+gSpriteTemplate_840294C:: @ 840294C
+ spr_template 10248, 10248, gOamData_837DF24, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_81304DC
+
+ .align 2
+gBattleAnimSpriteTemplate_8402964:: @ 8402964
+ spr_template 10252, 10252, gOamData_837DF34, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_813051C
+
+ .align 2
+gSpriteAffineAnim_840297C:: @ 840297C
+ obj_rot_scal_anim_frame 0x0, 0x0, -4, 24
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnim_840298C:: @ 840298C
+ obj_rot_scal_anim_frame 0x100, 0x100, -64, 0
+ obj_rot_scal_anim_frame 0x0, 0x0, 4, 24
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnimTable_84029A4:: @ 84029A4
+ .4byte gSpriteAffineAnim_840297C
+ .4byte gSpriteAffineAnim_840298C
+
+ .align 2
+gSpriteTemplate_84029AC:: @ 84029AC
+ spr_template 10254, 10254, gOamData_837DF94, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_84029A4, SpriteCallbackDummy
+
+ .align 2
+gBattleAnimSpriteTemplate_84029C4:: @ 84029C4
+ spr_template 10247, 10247, gOamData_837DF34, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_81307B0
+
+ .align 2
+gUnknown_084029DC:: @ 84029DC
+ .incbin "baserom.gba", 0x004029dc, 0x18
+
+ .align 2
+gBattleAnimSpriteTemplate_84029F4:: @ 84029F4
+ spr_template 10255, 10255, gOamData_837DF34, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_8130A2C
+
+ .align 2
+gBattleAnimSpriteTemplate_8402A0C:: @ 8402A0C
+ spr_template 10247, 10247, gOamData_837DF34, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_8130AEC
+
+ .align 2
+gBattleAnimSpriteTemplate_8402A24:: @ 8402A24
+ spr_template 10258, 10258, gOamData_837E054, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_8130F5C
+
+ .align 2
+gBattleAnimSpriteTemplate_8402A3C:: @ 8402A3C
+ spr_template 10233, 10233, gOamData_837DF2C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_8131264
+
+ .align 2
+gSpriteTemplate_8402A54:: @ 8402A54
+ spr_template 10233, 10233, gOamData_837DF2C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80D1FDC
+
+ .align 2
+gBattleAnimSpriteTemplate_8402A6C:: @ 8402A6C
+ spr_template 10250, 10250, gOamData_837DF3C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_8131564
+
+ .align 2
+gSpriteTemplate_8402A84:: @ 8402A84
+ spr_template 10224, 10224, gOamData_837DF34, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_8131EB8
+
+ .align 2
+gSpriteAnim_8402A9C:: @ 8402A9C
+ obj_image_anim_frame 0, 4
+ obj_image_anim_frame 64, 4
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_8402AA8:: @ 8402AA8
+ .4byte gSpriteAnim_8402A9C
+
+ .align 2
+gSpriteAffineAnim_8402AAC:: @ 8402AAC
+ obj_rot_scal_anim_frame 0x100, 0x100, 0, 0
+ obj_rot_scal_anim_frame 0x0, 0x0, -4, 8
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnim_8402AC4:: @ 8402AC4
+ obj_rot_scal_anim_frame 0xFF00, 0x100, 0, 0
+ obj_rot_scal_anim_frame 0x0, 0x0, 4, 8
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnimTable_8402ADC:: @ 8402ADC
+ .4byte gSpriteAffineAnim_8402AAC
+ .4byte gSpriteAffineAnim_8402AC4
+
+ .align 2
+gBattleAnimSpriteTemplate_8402AE4:: @ 8402AE4
+ spr_template 10277, 10277, gOamData_837DF9C, gSpriteAnimTable_8402AA8, NULL, gSpriteAffineAnimTable_8402ADC, sub_8132370
+
+ .align 2
+gSpriteAffineAnim_8402AFC:: @ 8402AFC
+ obj_rot_scal_anim_frame 0x0, 0x0, -4, 64
+ obj_rot_scal_anim_jump 0
+
+ .align 2
+gSpriteAffineAnimTable_8402B0C:: @ 8402B0C
+ .4byte gSpriteAffineAnim_8402AFC
+
+ .align 2
+gBattleAnimSpriteTemplate_8402B10:: @ 8402B10
+ spr_template 10278, 10278, gOamData_837E0BC, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_8402B0C, sub_81323E0
+
+ .align 2
+gUnknown_08402B28:: @ 8402B28
+ .incbin "baserom.gba", 0x00402b28, 0x30
+
+ .align 2
+gDexArrows_Pal::
+ .incbin "graphics/pokedex/arrows.gbapal"
+
+ .align 2
+gDexArrows_Gfx::
+ .incbin "graphics/pokedex/arrows.4bpp"
+
+ .incbin "baserom.gba", 0x00402c78, 0x80
+
+gUnknown_08402CF8:: @ 8402CF8
+ .incbin "baserom.gba", 0x00402cf8, 0x10
+
+gUnknown_08402D08:: @ 8402D08
+ .4byte OtherText_Battle
+ .byte 1, 1, 0, 0
+ .4byte OtherText_Power
+ .byte 1, 4, 1, 0
+ .4byte OtherText_Accuracy
+ .byte 1, 9, 2, 0
+ .space 8
+
+ .4byte OtherText_Contest
+ .byte 1, 1, 0, 0
+ .4byte OtherText_Appeal
+ .byte 1, 4, 1, 0
+ .4byte OtherText_Jam
+ .byte 1, 9, 2, 0
+ .space 8
+
+ .incbin "baserom.gba", 0x402d48, 0x8
+
+ .align 2
+gOamData_8402D50:: @ 8402D50
+ .2byte 0x0000
+ .2byte 0x0000
+ .2byte 0x0000
+
+ .align 2
+gOamData_8402D58:: @ 8402D58
+ .2byte 0x8000
+ .2byte 0x0000
+ .2byte 0x0000
+
+ .align 2
+gOamData_8402D60:: @ 8402D60
+ .2byte 0x4000
+ .2byte 0x0000
+ .2byte 0x0000
+
+ .align 2
+gSpriteAnim_8402D68:: @ 8402D68
+ obj_image_anim_frame 2, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_8402D70:: @ 8402D70
+ obj_image_anim_frame 0, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_8402D78:: @ 8402D78
+ .4byte gSpriteAnim_8402D68
+ .4byte gSpriteAnim_8402D70
+
+ .align 2
+gUnknown_08402D80:: @ 8402D80
+ obj_tiles gDexArrows_Gfx, 384, 0x1595
+
+ .align 2
+gUnknown_08402D88:: @ 8402D88
+ obj_pal gDexArrows_Pal, 0x1596
+
+ .align 2
+gSpriteTemplate_8402D90:: @ 8402D90
+ spr_template 5525, 5526, gOamData_8402D58, gSpriteAnimTable_8402D78, NULL, gDummySpriteAffineAnimTable, sub_8133300
+
+ .align 2
+gSpriteAnim_8402DA8:: @ 8402DA8
+ obj_image_anim_frame 4, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_8402DB0:: @ 8402DB0
+ obj_image_anim_frame 6, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_8402DB8:: @ 8402DB8
+ .4byte gSpriteAnim_8402DA8
+ .4byte gSpriteAnim_8402DB0
+
+ .align 2
+gSpriteTemplate_8402DC0:: @ 8402DC0
+ spr_template 5525, 5526, gOamData_8402D60, gSpriteAnimTable_8402DB8, NULL, gDummySpriteAffineAnimTable, sub_8133300
+
+ .align 2
+gSpriteAnim_8402DD8:: @ 8402DD8
+ obj_image_anim_frame 8, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_8402DE0:: @ 8402DE0
+ obj_image_anim_frame 9, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_8402DE8:: @ 8402DE8
+ obj_image_anim_frame 10, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_8402DF0:: @ 8402DF0
+ obj_image_anim_frame 11, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_8402DF8:: @ 8402DF8
+ .4byte gSpriteAnim_8402DD8
+ .4byte gSpriteAnim_8402DE0
+ .4byte gSpriteAnim_8402DE8
+ .4byte gSpriteAnim_8402DF0
+
+ .align 2
+gSpriteTemplate_8402E08:: @ 8402E08
+ spr_template 5525, 5526, gOamData_8402D50, gSpriteAnimTable_8402DF8, NULL, gDummySpriteAffineAnimTable, sub_8133300
+
+ .align 2
+ .incbin "baserom.gba", 0x00402e20, 0x4
+
+gUnknown_08402E24:: @ 8402E24
+ .incbin "baserom.gba", 0x00402e24, 0x15
+
+gUnknown_08402E39:: @ 8402E39
+ .byte 0, 1, 2, 3
+
+gUnknown_08402E3D:: @ 8402E3D
+ .byte 4, 5, 6
+
+@ pointer to decorations, capacity
+ .align 2
+gDecorationInventories:: @ 8402E40
+ .4byte gSaveBlock1 + 0x26A0, 10 @ DESK
+ .4byte gSaveBlock1 + 0x26AA, 10 @ CHAIR
+ .4byte gSaveBlock1 + 0x26B4, 10 @ PLANT
+ .4byte gSaveBlock1 + 0x26BE, 30 @ ORNAMENT
+ .4byte gSaveBlock1 + 0x26DC, 30 @ MAT
+ .4byte gSaveBlock1 + 0x26FA, 10 @ POSTER
+ .4byte gSaveBlock1 + 0x2704, 40 @ DOLL
+ .4byte gSaveBlock1 + 0x272C, 10 @ CUSHION
+
+gRoamerLocations:: @ 8402E80
+ .byte 0x19,0x1A,0x20,0x21,0x31,0xFF
+ .byte 0x1A,0x19,0x20,0x21,0xFF,0xFF
+ .byte 0x20,0x1A,0x19,0x21,0xFF,0xFF
+ .byte 0x21,0x20,0x19,0x1A,0x22,0x26
+ .byte 0x22,0x21,0x23,0xFF,0xFF,0xFF
+ .byte 0x23,0x22,0x24,0xFF,0xFF,0xFF
+ .byte 0x24,0x23,0x25,0x26,0xFF,0xFF
+ .byte 0x25,0x24,0x26,0xFF,0xFF,0xFF
+ .byte 0x26,0x25,0x21,0xFF,0xFF,0xFF
+ .byte 0x27,0x24,0x28,0x29,0xFF,0xFF
+ .byte 0x28,0x27,0x2A,0xFF,0xFF,0xFF
+ .byte 0x29,0x27,0x2A,0xFF,0xFF,0xFF
+ .byte 0x2A,0x28,0x29,0x2B,0xFF,0xFF
+ .byte 0x2B,0x2A,0x2C,0xFF,0xFF,0xFF
+ .byte 0x2C,0x2B,0x2D,0xFF,0xFF,0xFF
+ .byte 0x2D,0x2C,0x2E,0xFF,0xFF,0xFF
+ .byte 0x2E,0x2D,0x2F,0xFF,0xFF,0xFF
+ .byte 0x2F,0x2E,0x30,0xFF,0xFF,0xFF
+ .byte 0x30,0x2F,0x31,0xFF,0xFF,0xFF
+ .byte 0x31,0x30,0x19,0xFF,0xFF,0xFF
+ .byte 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF
+
+@ 8402F00
+ .include "data/battle_tower/trainers.inc"
+
+@ 8403860
+ .include "data/battle_tower/held_items.inc"
+
+@ 84038E0
+ .include "data/battle_tower/level_50_mons.inc"
+
+@ 8404BA0
+ .include "data/battle_tower/level_100_mons.inc"
+
+gUnknown_08405E60:: @ 8405E60
+ .incbin "baserom.gba", 0x00405e60, 0x1e
+
+gUnknown_08405E7E:: @ 8405E7E
+ .incbin "baserom.gba", 0x00405e7e, 0x14
+
+gUnknown_08405E92:: @ 8405E92
+ .incbin "baserom.gba", 0x00405e92, 0x1e
+
+gUnknown_08405EB0:: @ 8405EB0
+ .incbin "baserom.gba", 0x00405eb0, 0x14
+
+ .align 1
+gBattleTowerBanlist:: @ 8405EC4
+ .2byte SPECIES_MEW
+ .2byte SPECIES_MEWTWO
+ .2byte SPECIES_HO_OH
+ .2byte SPECIES_LUGIA
+ .2byte SPECIES_CELEBI
+ .2byte SPECIES_KYOGRE
+ .2byte SPECIES_GROUDON
+ .2byte SPECIES_RAYQUAZA
+ .2byte SPECIES_JIRACHI
+ .2byte SPECIES_DEOXYS
+ .2byte -1
+
+gUnknown_08405EDA:: @ 8405EDA
+ .incbin "baserom.gba", 0x00405eda, 0xc
+
+gUnknown_08405EE6:: @ 8405EE6
+ .incbin "baserom.gba", 0x00405ee6, 0x12
+
+ .align 2
+ConditionUpDownPalette:
+ .incbin "graphics/misc/condition_up_down.gbapal"
+
+ .align 2
+ConditionUpDownTiles:
+ .incbin "graphics/misc/condition_up_down.4bpp"
+
+gUnknown_08406118:: @ 8406118
+ .incbin "baserom.gba", 0x00406118, 0x14
+
+ .align 2
+gUnknown_0840612C:: @ 840612C
+ obj_pal 0x02030400, 0x0001
+
+ .align 2
+gUnknown_08406134:: @ 8406134
+ .4byte OtherText_Coolness
+ .4byte OtherText_Toughness
+ .4byte OtherText_Smartness
+ .4byte OtherText_Cuteness
+ .4byte OtherText_Beauty
+
+ .align 2
+gSpriteSheet_ConditionUpDown:: @ 8406148
+ obj_tiles ConditionUpDownTiles, 0x200, 0
+
+ .align 2
+gSpritePalette_ConditionUpDown:: @ 8406150
+ obj_pal ConditionUpDownPalette, 0
+
+gUnknown_08406158:: @ 8406158
+ .incbin "baserom.gba", 0x00406158, 0x14
+
+ .align 2
+gOamData_840616C:: @ 840616C
+ .2byte 0x4000
+ .2byte 0x8000
+ .2byte 0x0400
+
+ .align 2
+gSpriteAnim_8406174:: @ 8406174
+ obj_image_anim_frame 0, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_840617C:: @ 840617C
+ obj_image_anim_frame 8, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_8406184:: @ 8406184
+ .4byte gSpriteAnim_8406174
+ .4byte gSpriteAnim_840617C
+
+ .align 2
+gSpriteTemplate_840618C:: @ 840618C
+ spr_template 0, 0, gOamData_840616C, gSpriteAnimTable_8406184, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
+
+ .align 2
+gUnknown_084061A4:: @ 84061A4
+ .4byte dp01t_00_5_getattr
+ .4byte sub_8138230
+ .4byte sub_813823C
+ .4byte sub_8138C90
+ .4byte sub_8138C9C
+ .4byte sub_8138CA8
+ .4byte sub_8138CB4
+ .4byte sub_8138D38
+ .4byte sub_8138E04
+ .4byte sub_8138ED0
+ .4byte sub_8138EDC
+ .4byte sub_8138EE8
+ .4byte sub_8138EF4
+ .4byte sub_8138F44
+ .4byte sub_8138FA0
+ .4byte sub_8138FAC
+ .4byte sub_8139208
+ .4byte dp01t_11_5_message_for_player_only
+ .4byte sub_8139298
+ .4byte sub_8139378
+ .4byte sub_8139384
+ .4byte sub_81393EC
+ .4byte sub_813942C
+ .4byte sub_8139438
+ .4byte sub_8139444
+ .4byte sub_8139544
+ .4byte sub_8139550
+ .4byte sub_813955C
+ .4byte sub_8139568
+ .4byte sub_8139574
+ .4byte sub_8139580
+ .4byte sub_813958C
+ .4byte sub_8139598
+ .4byte sub_81395A4
+ .4byte sub_81395B0
+ .4byte sub_81395BC
+ .4byte sub_81395C8
+ .4byte sub_81395D4
+ .4byte sub_81395E0
+ .4byte sub_81395EC
+ .4byte sub_81395F8
+ .4byte sub_8139604
+ .4byte sub_8139674
+ .4byte sub_8139680
+ .4byte sub_81396B0
+ .4byte sub_81396E0
+ .4byte dp01t_2E_5_battle_intro
+ .4byte sub_8139750
+ .4byte sub_8139AA0
+ .4byte sub_8139B20
+ .4byte sub_8139B2C
+ .4byte sub_8139B38
+ .4byte sub_8139B44
+ .4byte sub_8139BA0
+ .4byte sub_8139BAC
+ .4byte sub_8139BB8
+ .4byte nullsub_80
diff --git a/data/rotating_gate.s b/data/rotating_gate.s
new file mode 100644
index 000000000..377898327
--- /dev/null
+++ b/data/rotating_gate.s
@@ -0,0 +1,270 @@
+ .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
+ .incbin "baserom.gba", 0x003d60bc, 0x10
+
+gUnknown_083D60CC:: @ 83D60CC
+ .incbin "baserom.gba", 0x003d60cc, 0x10
+
+gUnknown_083D60DC:: @ 83D60DC
+ .incbin "baserom.gba", 0x003d60dc, 0x10
+
+gUnknown_083D60EC:: @ 83D60EC
+ .incbin "baserom.gba", 0x003d60ec, 0x10
+
+gUnknown_083D60FC:: @ 83D60FC
+ .incbin "baserom.gba", 0x003d60fc, 0x20
+
+gUnknown_083D611C:: @ 83D611C
+ .incbin "baserom.gba", 0x003d611c, 0x20
diff --git a/data/roulette.s b/data/roulette.s
new file mode 100644
index 000000000..9f6c8ac15
--- /dev/null
+++ b/data/roulette.s
@@ -0,0 +1,817 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+gUnknown_083F86BC:: @ 83F86BC
+ .incbin "baserom.gba", 0x003f86bc, 0x40
+
+ .align 2
+gRouletteCenter_Pal::
+ .incbin "graphics/roulette/center.gbapal"
+
+ .incbin "baserom.gba", 0x003f871c, 0x1A0
+
+gUnknown_083F88BC:: @ 83F88BC
+ .incbin "baserom.gba", 0x003f88bc, 0x1a4
+
+gUnknown_083F8A60:: @ 83F8A60
+ .incbin "baserom.gba", 0x003f8a60, 0x1a0
+
+gUnknown_083F8C00:: @ 83F8C00
+ .incbin "baserom.gba", 0x003f8c00, 0xc
+
+gUnknown_083F8C0C:: @ 83F8C0C
+ .incbin "baserom.gba", 0x003f8c0c, 0x184
+
+gUnknown_083F8D90:: @ 83F8D90
+ .incbin "baserom.gba", 0x003f8d90, 0x4
+
+gUnknown_083F8D94:: @ 83F8D94
+ .incbin "baserom.gba", 0x003f8d94, 0x5c
+
+gUnknown_083F8DF0:: @ 83F8DF0
+ .incbin "baserom.gba", 0x003f8df0, 0x4
+
+gUnknown_083F8DF4:: @ 83F8DF4
+ .incbin "baserom.gba", 0x003f8df4, 0x40
+
+gUnknown_083F8E34:: @ 83F8E34
+ .incbin "baserom.gba", 0x003f8e34, 0x68
+
+gUnknown_083F8E9C:: @ 83F8E9C
+ .incbin "baserom.gba", 0x003f8e9c, 0x18
+
+ .align 2
+gUnknown_083F8EB4:: @ 83F8EB4
+ .4byte sub_811755C
+ .4byte sub_81175C0
+
+ .align 2
+gUnknown_083F8EBC:: @ 83F8EBC
+ .4byte sub_811577C
+ .4byte sub_81157AC
+
+gUnknown_083F8EC4:: @ 83F8EC4
+ .incbin "baserom.gba", 0x003f8ec4, 0x6
+
+gUnknown_083F8ECA:: @ 83F8ECA
+ .incbin "baserom.gba", 0x003f8eca, 0x4
+
+gUnknown_083F8ECE:: @ 83F8ECE
+ .incbin "baserom.gba", 0x003f8ece, 0xa
+
+gUnknown_083F8ED8:: @ 83F8ED8
+ .incbin "baserom.gba", 0x003f8ed8, 0x10
+
+gUnknown_083F8EE8:: @ 83F8EE8
+ .incbin "baserom.gba", 0x003f8ee8, 0xc
+
+gUnknown_083F8EF4:: @ 83F8EF4
+ .byte 0, 3, 4, 6, 12
+
+ .align 2
+RouletteSpritePalette_01:
+ .incbin "graphics/roulette/shadow.gbapal"
+
+ .align 2
+RouletteSpritePalette_02:
+ .incbin "graphics/roulette/ball.gbapal"
+
+ .align 2
+RouletteSpritePalette_03:
+ .incbin "graphics/roulette/ball_counter.gbapal"
+
+ .align 2
+RouletteSpritePalette_04:
+ .incbin "graphics/roulette/cursor.gbapal"
+
+ .align 2
+RouletteSpritePalette_05:
+ .incbin "graphics/roulette/credit.gbapal"
+
+ .align 2
+RouletteSpritePalette_06:
+ .incbin "graphics/roulette/shroomish.gbapal"
+
+ .align 2
+RouletteSpritePalette_07:
+ .incbin "graphics/roulette/tailow.gbapal"
+
+ .align 2
+RouletteSpritePalette_08:
+ .incbin "graphics/roulette/poke_icons.gbapal"
+
+ .align 2
+RouletteSpritePalette_09:
+ .incbin "graphics/roulette/wynaut.gbapal"
+
+ .align 2
+RouletteSpritePalette_10:
+ .incbin "graphics/roulette/azurill.gbapal"
+
+ .align 2
+RouletteSpritePalette_11:
+ .incbin "graphics/roulette/skitty.gbapal"
+
+ .align 2
+RouletteSpritePalette_12:
+ .incbin "graphics/roulette/makuhita.gbapal"
+
+ .align 2
+RouletteSpritePalette_13:
+ .incbin "baserom.gba", 0x003F907C, 0x20
+
+ .align 2
+RouletteSpritePalette_14:
+ .incbin "baserom.gba", 0x003F909C, 0x20
+
+ .align 2
+RouletteSpritePalette_15:
+ .incbin "baserom.gba", 0x003F90BC, 0x20
+
+ .align 2
+RouletteSpritePalette_16:
+ .incbin "baserom.gba", 0x003F90DC, 0x20
+
+ .align 2
+gUnknown_083F90FC:: @ 83F90FC
+ .incbin "graphics/roulette/ball.4bpp.lz"
+
+ .align 2
+RouletteBallCounterTiles: @ 83F9244
+ .incbin "graphics/roulette/ball_counter.4bpp.lz"
+
+ .align 2
+gUnknown_083F92A8:: @ 83F92A8
+ .incbin "graphics/roulette/roulette_tilt.4bpp.lz"
+
+ .align 2
+RoulettePokeIconsTiles: @ 83F9698
+ .incbin "graphics/roulette/poke_icons.4bpp.lz"
+
+ .align 2
+RoulettePokeIcons2Tiles: @ 83F983C
+ .incbin "graphics/roulette/poke_icons2.4bpp.lz"
+
+ .align 2
+gUnknown_083F9D3C:: @ 83F9D3C
+ .incbin "graphics/roulette/shadow.4bpp.lz"
+
+ .align 2
+RouletteCursorTiles: @ 83F9DD4
+ .incbin "graphics/roulette/cursor.4bpp.lz"
+
+ .align 2
+gUnknown_083F9E30:: @ 83F9E30
+ obj_pal RouletteSpritePalette_01, 1
+ obj_pal RouletteSpritePalette_02, 2
+ obj_pal RouletteSpritePalette_03, 3
+ obj_pal RouletteSpritePalette_04, 4
+ obj_pal RouletteSpritePalette_05, 5
+ obj_pal RouletteSpritePalette_06, 6
+ obj_pal RouletteSpritePalette_07, 7
+ obj_pal RouletteSpritePalette_08, 8
+ obj_pal RouletteSpritePalette_09, 9
+ obj_pal RouletteSpritePalette_10, 10
+ obj_pal RouletteSpritePalette_11, 11
+ obj_pal RouletteSpritePalette_12, 12
+ obj_pal RouletteSpritePalette_13, 13
+ obj_pal RouletteSpritePalette_14, 14
+ obj_pal RouletteSpritePalette_15, 15
+ obj_pal RouletteSpritePalette_16, 16
+ null_obj_pal
+
+ .align 2
+gOamData_83F9EB8:: @ 83F9EB8
+ .2byte 0x0000
+ .2byte 0x8000
+ .2byte 0x0400
+
+ .align 2
+gOamData_83F9EC0:: @ 83F9EC0
+ .2byte 0x0000
+ .2byte 0x4000
+ .2byte 0x0400
+
+ .align 2
+gOamData_83F9EC8:: @ 83F9EC8
+ .2byte 0x833C
+ .2byte 0x8000
+ .2byte 0x0800
+
+ .align 2
+gSpriteAnim_83F9ED0:: @ 83F9ED0
+ obj_image_anim_frame 0, 0
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_83F9ED8:: @ 83F9ED8
+ .4byte gSpriteAnim_83F9ED0
+
+ .align 2
+gSpriteAffineAnim_83F9EDC:: @ 83F9EDC
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnimTable_83F9EE4:: @ 83F9EE4
+ .4byte gSpriteAffineAnim_83F9EDC
+
+ .align 2
+gUnknown_083F9EE8:: @ 83F9EE8
+ obj_tiles RoulettePokeIcons2Tiles, 0xC00, 0
+
+ .align 2
+gSpriteAnim_83F9EF0:: @ 83F9EF0
+ obj_image_anim_frame 0, 0
+ obj_image_anim_frame 32, 0
+ obj_image_anim_frame 64, 0
+ obj_image_anim_frame 72, 0
+ obj_image_anim_frame 8, 0
+ obj_image_anim_frame 40, 0
+ obj_image_anim_frame 48, 0
+ obj_image_anim_frame 80, 0
+ obj_image_anim_frame 16, 0
+ obj_image_anim_frame 24, 0
+ obj_image_anim_frame 56, 0
+ obj_image_anim_frame 88, 0
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_83F9F24:: @ 83F9F24
+ .4byte gSpriteAnim_83F9EF0
+
+ .align 2
+gSpriteAnimTable_83F9F28:: @ 83F9F28
+ .4byte gSpriteAnim_83F9EF0 + 0x4
+
+ .align 2
+gSpriteAnimTable_83F9F2C:: @ 83F9F2C
+ .4byte gSpriteAnim_83F9EF0 + 0x8
+
+ .align 2
+gSpriteAnimTable_83F9F30:: @ 83F9F30
+ .4byte gSpriteAnim_83F9EF0 + 0xC
+
+ .align 2
+gSpriteAnimTable_83F9F34:: @ 83F9F34
+ .4byte gSpriteAnim_83F9EF0 + 0x10
+
+ .align 2
+gSpriteAnimTable_83F9F38:: @ 83F9F38
+ .4byte gSpriteAnim_83F9EF0 + 0x14
+
+ .align 2
+gSpriteAnimTable_83F9F3C:: @ 83F9F3C
+ .4byte gSpriteAnim_83F9EF0 + 0x18
+
+ .align 2
+gSpriteAnimTable_83F9F40:: @ 83F9F40
+ .4byte gSpriteAnim_83F9EF0 + 0x1C
+
+ .align 2
+gSpriteAnimTable_83F9F44:: @ 83F9F44
+ .4byte gSpriteAnim_83F9EF0 + 0x20
+
+ .align 2
+gSpriteAnimTable_83F9F48:: @ 83F9F48
+ .4byte gSpriteAnim_83F9EF0 + 0x24
+
+ .align 2
+gSpriteAnimTable_83F9F4C:: @ 83F9F4C
+ .4byte gSpriteAnim_83F9EF0 + 0x28
+
+ .align 2
+gSpriteAnimTable_83F9F50:: @ 83F9F50
+ .4byte gSpriteAnim_83F9EF0 + 0x2C
+
+ .align 2
+gUnknown_083F9F54:: @ 83F9F54
+ obj_tiles gRouletteHeadersTiles, 0x1600, 4
+
+ .align 2
+gUnknown_083F9F5C:: @ 83F9F5C
+ obj_tiles RoulettePokeIconsTiles, 0x400, 5
+
+ .align 2
+gSpriteAnim_83F9F64:: @ 83F9F64
+ obj_image_anim_frame 0, 0
+ obj_image_anim_frame 16, 0
+ obj_image_anim_frame 32, 0
+ obj_image_anim_frame 48, 0
+ obj_image_anim_frame 64, 0
+ obj_image_anim_frame 80, 0
+ obj_image_anim_frame 96, 0
+ obj_image_anim_frame 112, 0
+ obj_image_anim_frame 128, 0
+ obj_image_anim_frame 144, 0
+ obj_image_anim_frame 160, 0
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83F9F94:: @ 83F9F94
+ obj_image_anim_frame 0, 0
+ obj_image_anim_frame 4, 0
+ obj_image_anim_frame 8, 0
+ obj_image_anim_frame 12, 0
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_83F9FA8:: @ 83F9FA8
+ .4byte gSpriteAnim_83F9F64
+
+ .align 2
+gSpriteAnimTable_83F9FAC:: @ 83F9FAC
+ .4byte gSpriteAnim_83F9F64 + 0x8
+
+ .align 2
+gSpriteAnimTable_83F9FB0:: @ 83F9FB0
+ .4byte gSpriteAnim_83F9F64 + 0x10
+
+ .align 2
+gSpriteAnimTable_83F9FB4:: @ 83F9FB4
+ .4byte gSpriteAnim_83F9F64 + 0x18
+
+ .align 2
+gSpriteAnimTable_83F9FB8:: @ 83F9FB8
+ .4byte gSpriteAnim_83F9F64 + 0x20
+
+ .align 2
+gSpriteAnimTable_83F9FBC:: @ 83F9FBC
+ .4byte gSpriteAnim_83F9F64 + 0x24
+
+ .align 2
+gSpriteAnimTable_83F9FC0:: @ 83F9FC0
+ .4byte gSpriteAnim_83F9F64 + 0x28
+
+ .align 2
+gSpriteAnimTable_83F9FC4:: @ 83F9FC4
+ .4byte gSpriteAnim_83F9F94
+
+ .align 2
+gSpriteAnimTable_83F9FC8:: @ 83F9FC8
+ .4byte gSpriteAnim_83F9F94 + 0x4
+
+ .align 2
+gSpriteAnimTable_83F9FCC:: @ 83F9FCC
+ .4byte gSpriteAnim_83F9F94 + 0x8
+
+ .align 2
+gSpriteAnimTable_83F9FD0:: @ 83F9FD0
+ .4byte gSpriteAnim_83F9F94 + 0xC
+
+ .align 2
+gSpriteTemplate_83F9FD4:: @ 83F9FD4
+ spr_template 4, 8, gOamData_83F9EB8, gSpriteAnimTable_83F9FA8, NULL, gDummySpriteAffineAnimTable, sub_81184CC
+
+ .align 2
+gSpriteTemplate_83F9FEC:: @ 83F9FEC
+ spr_template 4, 8, gOamData_83F9EB8, gSpriteAnimTable_83F9FAC, NULL, gDummySpriteAffineAnimTable, sub_81184CC
+
+ .align 2
+gSpriteTemplate_83FA004:: @ 83FA004
+ spr_template 4, 8, gOamData_83F9EB8, gSpriteAnimTable_83F9FB0, NULL, gDummySpriteAffineAnimTable, sub_81184CC
+
+ .align 2
+gSpriteTemplate_83FA01C:: @ 83FA01C
+ spr_template 4, 8, gOamData_83F9EB8, gSpriteAnimTable_83F9FB4, NULL, gDummySpriteAffineAnimTable, sub_81184CC
+
+ .align 2
+gSpriteTemplate_83FA034:: @ 83FA034
+ spr_template 4, 8, gOamData_83F9EB8, gSpriteAnimTable_83F9FB8, NULL, gDummySpriteAffineAnimTable, sub_81184CC
+
+ .align 2
+gSpriteTemplate_83FA04C:: @ 83FA04C
+ spr_template 4, 8, gOamData_83F9EB8, gSpriteAnimTable_83F9FBC, NULL, gDummySpriteAffineAnimTable, sub_81184CC
+
+ .align 2
+gSpriteTemplate_83FA064:: @ 83FA064
+ spr_template 4, 8, gOamData_83F9EB8, gSpriteAnimTable_83F9FC0, NULL, gDummySpriteAffineAnimTable, sub_81184CC
+
+ .align 2
+gSpriteTemplate_83FA07C:: @ 83FA07C
+ spr_template 5, 8, gOamData_83F9EC0, gSpriteAnimTable_83F9FC4, NULL, gDummySpriteAffineAnimTable, sub_81184CC
+
+ .align 2
+gSpriteTemplate_83FA094:: @ 83FA094
+ spr_template 5, 8, gOamData_83F9EC0, gSpriteAnimTable_83F9FC8, NULL, gDummySpriteAffineAnimTable, sub_81184CC
+
+ .align 2
+gSpriteTemplate_83FA0AC:: @ 83FA0AC
+ spr_template 5, 8, gOamData_83F9EC0, gSpriteAnimTable_83F9FCC, NULL, gDummySpriteAffineAnimTable, sub_81184CC
+
+ .align 2
+gSpriteTemplate_83FA0C4:: @ 83FA0C4
+ spr_template 5, 8, gOamData_83F9EC0, gSpriteAnimTable_83F9FD0, NULL, gDummySpriteAffineAnimTable, sub_81184CC
+
+ .align 2
+gSpriteTemplate_83FA0DC:: @ 83FA0DC
+ spr_template 0, 9, gOamData_83F9EC8, gSpriteAnimTable_83F9F24, NULL, gDummySpriteAffineAnimTable, sub_8117E98
+
+ .align 2
+gSpriteTemplate_83FA0F4:: @ 83FA0F4
+ spr_template 0, 10, gOamData_83F9EC8, gSpriteAnimTable_83F9F28, NULL, gDummySpriteAffineAnimTable, sub_8117E98
+
+ .align 2
+gSpriteTemplate_83FA10C:: @ 83FA10C
+ spr_template 0, 11, gOamData_83F9EC8, gSpriteAnimTable_83F9F2C, NULL, gDummySpriteAffineAnimTable, sub_8117E98
+
+ .align 2
+gSpriteTemplate_83FA124:: @ 83FA124
+ spr_template 0, 12, gOamData_83F9EC8, gSpriteAnimTable_83F9F30, NULL, gDummySpriteAffineAnimTable, sub_8117E98
+
+ .align 2
+gSpriteTemplate_83FA13C:: @ 83FA13C
+ spr_template 0, 9, gOamData_83F9EC8, gSpriteAnimTable_83F9F34, NULL, gDummySpriteAffineAnimTable, sub_8117E98
+
+ .align 2
+gSpriteTemplate_83FA154:: @ 83FA154
+ spr_template 0, 10, gOamData_83F9EC8, gSpriteAnimTable_83F9F38, NULL, gDummySpriteAffineAnimTable, sub_8117E98
+
+ .align 2
+gSpriteTemplate_83FA16C:: @ 83FA16C
+ spr_template 0, 11, gOamData_83F9EC8, gSpriteAnimTable_83F9F3C, NULL, gDummySpriteAffineAnimTable, sub_8117E98
+
+ .align 2
+gSpriteTemplate_83FA184:: @ 83FA184
+ spr_template 0, 12, gOamData_83F9EC8, gSpriteAnimTable_83F9F40, NULL, gDummySpriteAffineAnimTable, sub_8117E98
+
+ .align 2
+gSpriteTemplate_83FA19C:: @ 83FA19C
+ spr_template 0, 9, gOamData_83F9EC8, gSpriteAnimTable_83F9F44, NULL, gDummySpriteAffineAnimTable, sub_8117E98
+
+ .align 2
+gSpriteTemplate_83FA1B4:: @ 83FA1B4
+ spr_template 0, 10, gOamData_83F9EC8, gSpriteAnimTable_83F9F48, NULL, gDummySpriteAffineAnimTable, sub_8117E98
+
+ .align 2
+gSpriteTemplate_83FA1CC:: @ 83FA1CC
+ spr_template 0, 11, gOamData_83F9EC8, gSpriteAnimTable_83F9F4C, NULL, gDummySpriteAffineAnimTable, sub_8117E98
+
+ .align 2
+gSpriteTemplate_83FA1E4:: @ 83FA1E4
+ spr_template 0, 12, gOamData_83F9EC8, gSpriteAnimTable_83F9F50, NULL, gDummySpriteAffineAnimTable, sub_8117E98
+
+ .align 2
+gOamData_83FA1FC:: @ 83FA1FC
+ .2byte 0x4000
+ .2byte 0xC000
+ .2byte 0x0400
+
+ .align 2
+gOamData_83FA204:: @ 83FA204
+ .2byte 0x8000
+ .2byte 0x0000
+ .2byte 0x0400
+
+ .align 2
+gOamData_83FA20C:: @ 83FA20C
+ .2byte 0x4000
+ .2byte 0x8000
+ .2byte 0x0400
+
+ .align 2
+gOamData_83FA214:: @ 83FA214
+ .2byte 0x4000
+ .2byte 0x0000
+ .2byte 0x0400
+
+ .align 2
+gUnknown_083FA21C:: @ 83FA21C
+ obj_tiles gRouletteCreditTiles, 0x400, 7
+ obj_tiles gRouletteNumbersTiles, 0x280, 8
+ obj_tiles gRouletteMultiplierTiles, 0x500, 9
+ obj_tiles RouletteBallCounterTiles, 0x140, 10
+ obj_tiles RouletteCursorTiles, 0x200, 11
+ null_obj_tiles
+
+ .align 2
+gSpriteAnim_83FA24C:: @ 83FA24C
+ obj_image_anim_frame 0, 0
+ obj_image_anim_frame 2, 0
+ obj_image_anim_frame 4, 0
+ obj_image_anim_frame 6, 0
+ obj_image_anim_frame 8, 0
+ obj_image_anim_frame 10, 0
+ obj_image_anim_frame 12, 0
+ obj_image_anim_frame 14, 0
+ obj_image_anim_frame 16, 0
+ obj_image_anim_frame 18, 0
+
+ .align 2
+gSpriteAnimTable_83FA274:: @ 83FA274
+ .4byte gSpriteAnim_83FA24C
+
+ .align 2
+gSpriteAnim_83FA278:: @ 83FA278
+ obj_image_anim_frame 0, 0
+ obj_image_anim_frame 8, 0
+ obj_image_anim_frame 16, 0
+ obj_image_anim_frame 24, 0
+ obj_image_anim_frame 32, 0
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_83FA290:: @ 83FA290
+ .4byte gSpriteAnim_83FA278
+
+ .align 2
+gSpriteAnim_83FA294:: @ 83FA294
+ obj_image_anim_frame 0, 0
+ obj_image_anim_frame 2, 0
+ obj_image_anim_frame 4, 0
+ obj_image_anim_frame 6, 0
+ obj_image_anim_frame 8, 0
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_83FA2AC:: @ 83FA2AC
+ .4byte gSpriteAnim_83FA294
+
+ .align 2
+gSpriteTemplate_83FA2B0:: @ 83FA2B0
+ spr_template 7, 5, gOamData_83FA1FC, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
+
+ .align 2
+gSpriteTemplate_83FA2C8:: @ 83FA2C8
+ spr_template 8, 5, gOamData_83FA204, gSpriteAnimTable_83FA274, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
+
+ .align 2
+gSpriteTemplate_83FA2E0:: @ 83FA2E0
+ spr_template 9, 5, gOamData_83FA20C, gSpriteAnimTable_83FA290, NULL, gDummySpriteAffineAnimTable, sub_81184CC
+
+ .align 2
+gSpriteTemplate_83FA2F8:: @ 83FA2F8
+ spr_template 10, 3, gOamData_83FA214, gSpriteAnimTable_83FA2AC, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
+
+ .align 2
+gSpriteTemplate_83FA310:: @ 83FA310
+ spr_template 11, 5, gOamData_83F9EB8, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
+
+ .align 2
+gOamData_83FA328:: @ 83FA328
+ .2byte 0x0000
+ .2byte 0x4000
+ .2byte 0x0800
+
+ .align 2
+gSpriteImageTable_83FA330:: @ 83FA330
+ obj_frame_tiles 0x02017E00, 0x80
+ obj_frame_tiles 0x02017E80, 0x80
+ obj_frame_tiles 0x02017F00, 0x80
+ obj_frame_tiles 0x02017F80, 0x80
+
+ .align 2
+gSpriteAnim_83FA350:: @ 83FA350
+ obj_image_anim_frame 0, 5
+ obj_image_anim_frame 1, 5
+ obj_image_anim_frame 2, 5
+ obj_image_anim_frame 1, 5
+ obj_image_anim_jump 0
+
+ .align 2
+gSpriteAnim_83FA364:: @ 83FA364
+ obj_image_anim_frame 0, 10
+ obj_image_anim_frame 1, 10
+ obj_image_anim_frame 2, 10
+ obj_image_anim_frame 1, 10
+ obj_image_anim_jump 0
+
+ .align 2
+gSpriteAnim_83FA378:: @ 83FA378
+ obj_image_anim_frame 0, 15
+ obj_image_anim_frame 1, 15
+ obj_image_anim_frame 2, 15
+ obj_image_anim_frame 1, 15
+ obj_image_anim_jump 0
+
+ .align 2
+gSpriteAnim_83FA38C:: @ 83FA38C
+ obj_image_anim_frame 1, 2
+ obj_image_anim_frame 2, 5
+ obj_image_anim_frame 1, 5
+ obj_image_anim_frame 3, 5
+ obj_image_anim_end
+
+ .align 2
+Unknown_083FA3A0:
+ .incbin "baserom.gba", 0x003fa3a0, 0x18
+Unknown_083FA3B8:
+ .incbin "baserom.gba", 0x003fa3b8, 0x14
+Unknown_083FA3CC:
+ .incbin "baserom.gba", 0x003fa3cc, 0x8
+
+ .align 2
+gSpriteAnim_83FA3D4:: @ 83FA3D4
+ obj_image_anim_frame 2, 2
+ obj_image_anim_frame 1, 5
+ obj_image_anim_frame 0, 5
+ obj_image_anim_frame 3, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_83FA3E8:: @ 83FA3E8
+ .4byte gSpriteAnim_83FA350
+ .4byte gSpriteAnim_83FA364
+ .4byte gSpriteAnim_83FA378
+ .4byte gSpriteAnim_83FA38C
+ .4byte gSpriteAnim_83FA3D4
+
+ .align 2
+ .4byte Unknown_083FA3A0
+ .4byte Unknown_083FA3B8
+ .4byte Unknown_083FA3B8
+ .4byte Unknown_083FA3CC
+
+ .align 2
+gSpriteTemplate_83FA40C:: @ 83FA40C
+ spr_template 0xFFFF, 2, gOamData_83FA328, gSpriteAnimTable_83FA3E8, gSpriteImageTable_83FA330, gDummySpriteAffineAnimTable, SpriteCallbackDummy
+
+ .align 2
+gOamData_83FA424:: @ 83FA424
+ .2byte 0x0351
+ .2byte 0xC000
+ .2byte 0x0800
+
+ .align 2
+gUnknown_083FA42C:: @ 83FA42C
+ obj_tiles gRouletteCenter_Gfx, 2048, 0x0006
+
+ .align 2
+gSpriteTemplate_83FA434:: @ 83FA434
+ spr_template 6, 2, gOamData_83FA424, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_8118554
+
+ .align 2
+gOamData_83FA44C:: @ 83FA44C
+ .2byte 0x0000
+ .2byte 0x8000
+ .2byte 0x0800
+
+ .align 2
+gOamData_83FA454:: @ 83FA454
+ .2byte 0x0000
+ .2byte 0x8000
+ .2byte 0x0800
+
+ .align 2
+gSpriteImageTable_83FA45C:: @ 83FA45C
+ obj_frame_tiles 0x02017000, 0x200
+ obj_frame_tiles 0x02017200, 0x200
+ obj_frame_tiles 0x02017400, 0x200
+ obj_frame_tiles 0x02017600, 0x200
+ obj_frame_tiles 0x02017800, 0x200
+ obj_frame_tiles 0x02017A00, 0x200
+ obj_frame_tiles 0x02017C00, 0x200
+
+ .align 2
+gSpriteAnim_83FA494:: @ 83FA494
+ obj_image_anim_frame 0, 6
+ obj_image_anim_frame 1, 6
+ obj_image_anim_frame 2, 6
+ obj_image_anim_frame 3, 6
+ obj_image_anim_frame 2, 6
+ obj_image_anim_frame 4, 6
+ obj_image_anim_jump 2
+
+ .align 2
+gSpriteAnim_83FA4B0:: @ 83FA4B0
+ obj_image_anim_frame 5, 10
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83FA4B8:: @ 83FA4B8
+ obj_image_anim_frame 5, 10, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83FA4C0:: @ 83FA4C0
+ obj_image_anim_frame 5, 20
+ obj_image_anim_frame 6, 20
+ obj_image_anim_jump 0
+
+ .align 2
+gSpriteAnim_83FA4CC:: @ 83FA4CC
+ obj_image_anim_frame 5, 20, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_frame 6, 20, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_jump 0
+
+ .align 2
+gSpriteAnim_83FA4D8:: @ 83FA4D8
+ obj_image_anim_frame 5, 10
+ obj_image_anim_frame 6, 10
+ obj_image_anim_jump 0
+
+ .align 2
+gSpriteAnim_83FA4E4:: @ 83FA4E4
+ obj_image_anim_frame 5, 10, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_frame 6, 10, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_jump 0
+
+ .align 2
+gSpriteAnimTable_83FA4F0:: @ 83FA4F0
+ .4byte gSpriteAnim_83FA494
+
+ .align 2
+gSpriteAnimTable_83FA4F4:: @ 83FA4F4
+ .4byte gSpriteAnim_83FA4B0
+ .4byte gSpriteAnim_83FA4B8
+ .4byte gSpriteAnim_83FA4C0
+ .4byte gSpriteAnim_83FA4CC
+ .4byte gSpriteAnim_83FA4D8
+ .4byte gSpriteAnim_83FA4E4
+
+ .align 2
+gSpriteTemplate_83FA50C:: @ 83FA50C
+ spr_template 0xFFFF, 6, gOamData_83FA44C, gSpriteAnimTable_83FA4F0, gSpriteImageTable_83FA45C, gDummySpriteAffineAnimTable, SpriteCallbackDummy
+
+ .align 2
+gSpriteTemplate_83FA524:: @ 83FA524
+ spr_template 0xFFFF, 7, gOamData_83FA454, gSpriteAnimTable_83FA4F4, gSpriteImageTable_83FA45C, gDummySpriteAffineAnimTable, sub_8119D80
+
+ .align 2
+gOamData_83FA53C:: @ 83FA53C
+ .2byte 0x0000
+ .2byte 0x4000
+ .2byte 0x0800
+
+ .align 2
+gOamData_83FA544:: @ 83FA544
+ .2byte 0x4000
+ .2byte 0x8000
+ .2byte 0x0800
+
+ .align 2
+gOamData_83FA54C:: @ 83FA54C
+ .2byte 0x4100
+ .2byte 0x8000
+ .2byte 0x0800
+
+ .align 2
+gSpriteImageTable_83FA554: @ 83FA554
+ obj_frame_tiles 0x02018000, 0x80
+
+ .align 2
+gSpriteImageTable_83FA55C: @ 83FA55C
+ obj_frame_tiles 0x02018080, 0x100
+
+ .align 2
+gUnknown_083FA564: @ 83FA564
+ .incbin "baserom.gba", 0x003fa564, 0x18
+
+ .align 2
+gSpriteAffineAnim_83FA57C:: @ 83FA57C
+ obj_rot_scal_anim_frame 0x100, 0x100, 0, 0
+ obj_rot_scal_anim_frame 0xFFFE, 0x0, 0, 15
+ obj_rot_scal_anim_frame 0xFFFF, 0xFFFE, 0, 15
+ obj_rot_scal_anim_frame 0xFFFF, 0xFFFB, 0, 24
+ obj_rot_scal_anim_end
+
+ .align 2
+ .4byte gUnknown_083FA564
+
+ .align 2
+gSpriteAffineAnimTable_83FA5A8:: @ 83FA5A8
+ .4byte gSpriteAffineAnim_83FA57C
+
+ .align 2
+gUnknown_083FA5AC:: @ 83FA5AC
+ .incbin "baserom.gba", 0x003fa5ac, 0x10
+
+ .align 2
+@ unreferenced
+ .4byte gUnknown_083FA5AC
+
+ .align 2
+gSpriteTemplate_83FA5C0:: @ 83FA5C0
+ spr_template 0xFFFF, 1, gOamData_83FA53C, gSpriteAnimTable_83F9ED8, gSpriteImageTable_83FA554, gDummySpriteAffineAnimTable, SpriteCallbackDummy
+
+ .align 2
+gSpriteTemplate_83FA5D8:: @ 83FA5D8
+ spr_template 0xFFFF, 1, gOamData_83FA544, gSpriteAnimTable_83F9ED8, gSpriteImageTable_83FA55C, gDummySpriteAffineAnimTable, sub_8119964
+
+ .align 2
+gSpriteTemplate_83FA5F0:: @ 83FA5F0
+ spr_template 0xFFFF, 1, gOamData_83FA54C, gSpriteAnimTable_83F9ED8, gSpriteImageTable_83FA55C, gSpriteAffineAnimTable_83FA5A8, sub_8119D80
+
+gUnknown_083FA608:: @ 83FA608
+ .incbin "baserom.gba", 0x003fa608, 0x6
+
+ .align 1
+gUnknown_083FA60E:: @ 83FA60E
+ .2byte 0x74, 0x2C
+ .2byte 0x74, 0x70
+
+gUnknown_083FA616:: @ 83FA616
+ .incbin "baserom.gba", 0x003fa616, 0x8
+
+gUnknown_083FA61E:: @ 83FA61E
+ .incbin "baserom.gba", 0x003fa61e, 0x14
+
+gUnknown_083FA632:: @ 83FA632
+ .incbin "baserom.gba", 0x003fa632, 0x18
+
+gUnknown_083FA64A:: @ 83FA64A
+ .byte -1, 1
+
+gUnknown_083FA64C:: @ 83FA64C
+ .incbin "baserom.gba", 0x003fa64c, 0x10
diff --git a/data/save.s b/data/save.s
new file mode 100644
index 000000000..bcb08e0ca
--- /dev/null
+++ b/data/save.s
@@ -0,0 +1,29 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+ .align 2
+gSaveSectionLocations:: @ 8401DA4
+ .4byte gSaveBlock2, 0x890
+ .4byte gSaveBlock1 + 0xF80 * 0, 0xF80
+ .4byte gSaveBlock1 + 0xF80 * 1, 0xF80
+ .4byte gSaveBlock1 + 0xF80 * 2, 0xF80
+ .4byte gSaveBlock1 + 0xF80 * 3, 0xC40
+ .4byte gPokemonStorage + 0xF80 * 0, 0xF80
+ .4byte gPokemonStorage + 0xF80 * 1, 0xF80
+ .4byte gPokemonStorage + 0xF80 * 2, 0xF80
+ .4byte gPokemonStorage + 0xF80 * 3, 0xF80
+ .4byte gPokemonStorage + 0xF80 * 4, 0xF80
+ .4byte gPokemonStorage + 0xF80 * 5, 0xF80
+ .4byte gPokemonStorage + 0xF80 * 6, 0xF80
+ .4byte gPokemonStorage + 0xF80 * 7, 0xF80
+ .4byte gPokemonStorage + 0xF80 * 8, 0x7D0
+
+ .align 2
+gHallOfFameSaveSectionLocations:: @ 8401E14
+ .4byte gHallOfFame + 0xF80 * 0, 0xF80
+ .4byte gHallOfFame + 0xF80 * 1, 0xF80
+
+gUnknown_08401E24:: @ 8401E24
+ .byte 0x1E, 0x1F @ flash sectors
diff --git a/data/save_failed_screen.s b/data/save_failed_screen.s
new file mode 100644
index 000000000..70cc27fa8
--- /dev/null
+++ b/data/save_failed_screen.s
@@ -0,0 +1,16 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+gUnknown_08411940:: @ 8411940
+ .incbin "baserom.gba", 0x00411940, 0x8
+
+gUnknown_08411948:: @ 8411948
+ .incbin "baserom.gba", 0x00411948, 0x18
+
+gSaveFailedClockPal:: @ 8411960
+ .incbin "graphics/misc/clock_small.gbapal"
+
+gSaveFailedClockGfx:: @ 8411980
+ .incbin "graphics/misc/clock_small.4bpp.lz"
diff --git a/data/script_menu.s b/data/script_menu.s
new file mode 100644
index 000000000..e28616300
--- /dev/null
+++ b/data/script_menu.s
@@ -0,0 +1,29 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+@ 83CD788
+ .include "data/multichoice.inc"
+
+ .align 2
+gUnknown_083CE048:: @ 83CE048
+ .4byte OtherText_Cool2
+ .4byte OtherText_Beauty3
+ .4byte OtherText_Cute2
+ .4byte OtherText_Smart2
+ .4byte OtherText_Tough2
+ .4byte OtherText_Normal
+ .4byte OtherText_Super
+ .4byte OtherText_Hyper
+ .4byte OtherText_Master
+ .4byte OtherText_Cool3
+ .4byte OtherText_Beauty4
+ .4byte OtherText_Cute3
+ .4byte OtherText_Smart3
+ .4byte OtherText_Tough3
+ .4byte OtherText_Items
+ .4byte OtherText_KeyItems
+ .4byte OtherText_Balls
+ .4byte OtherText_TMsHMs
+ .4byte OtherText_Berries
diff --git a/data/scripts/cable_club.inc b/data/scripts/cable_club.inc
index 32bb55a08..c8f701d95 100644
--- a/data/scripts/cable_club.inc
+++ b/data/scripts/cable_club.inc
@@ -603,21 +603,18 @@ gUnknown_081A4363:: @ 81A4363
releaseall
end
-gUnknown_081A436F:: @ 81A436F
SingleBattleColosseum_EventScript_1A436F:: @ 81A436F
setvar 0x8005, 0
special 32
waitstate
end
-gUnknown_081A4379:: @ 81A4379
SingleBattleColosseum_EventScript_1A4379:: @ 81A4379
setvar 0x8005, 1
special 32
waitstate
end
-gUnknown_081A4383:: @ 81A4383
DoubleBattleColosseum_EventScript_1A4383:: @ 81A4383
fadescreen 1
special 41
@@ -629,7 +626,6 @@ DoubleBattleColosseum_EventScript_1A4383:: @ 81A4383
waitstate
end
-gUnknown_081A439E:: @ 81A439E
DoubleBattleColosseum_EventScript_1A439E:: @ 81A439E
fadescreen 1
special 41
@@ -641,7 +637,6 @@ DoubleBattleColosseum_EventScript_1A439E:: @ 81A439E
waitstate
end
-gUnknown_081A43B9:: @ 81A43B9
DoubleBattleColosseum_EventScript_1A43B9:: @ 81A43B9
fadescreen 1
special 41
@@ -653,7 +648,6 @@ DoubleBattleColosseum_EventScript_1A43B9:: @ 81A43B9
waitstate
end
-gUnknown_081A43D4:: @ 81A43D4
DoubleBattleColosseum_EventScript_1A43D4:: @ 81A43D4
fadescreen 1
special 41
@@ -668,14 +662,12 @@ DoubleBattleColosseum_EventScript_1A43D4:: @ 81A43D4
DoubleBattleColosseum_EventScript_1A43EF:: @ 81A43EF
end
-gUnknown_081A43F0:: @ 81A43F0
TradeCenter_EventScript_1A43F0:: @ 81A43F0
setvar 0x8005, 0
special 33
waitstate
end
-gUnknown_081A43FA:: @ 81A43FA
TradeCenter_EventScript_1A43FA:: @ 81A43FA
setvar 0x8005, 1
special 33
@@ -694,7 +686,6 @@ TradeCenter_EventScript_1A43FA:: @ 81A43FA
waitstate
end
-gUnknown_081A4418:: @ 81A4418
RecordCorner_EventScript_1A4418:: @ 81A4418
setvar 0x8005, 0
special 27
@@ -703,7 +694,6 @@ RecordCorner_EventScript_1A4418:: @ 81A4418
jumpif 5, RecordCorner_EventScript_1A446C
end
-gUnknown_081A442D:: @ 81A442D
RecordCorner_EventScript_1A442D:: @ 81A442D
setvar 0x8005, 1
special 27
@@ -712,7 +702,6 @@ RecordCorner_EventScript_1A442D:: @ 81A442D
jumpif 5, RecordCorner_EventScript_1A446C
end
-gUnknown_081A4442:: @ 81A4442
RecordCorner_EventScript_1A4442:: @ 81A4442
setvar 0x8005, 2
special 27
@@ -721,7 +710,6 @@ RecordCorner_EventScript_1A4442:: @ 81A4442
jumpif 5, RecordCorner_EventScript_1A446C
end
-gUnknown_081A4457:: @ 81A4457
RecordCorner_EventScript_1A4457:: @ 81A4457
setvar 0x8005, 3
special 27
@@ -738,8 +726,8 @@ RecordCorner_EventScript_1A446C:: @ 81A446C
releaseall
end
-gUnknown_081A4479:: @ 81A4479
- message UnknownString_81A4D1C
+TradeRoom_ReadTrainerCard1:: @ 81A4479
+ message CableClub_LookAtTrainerCard1
waittext
waitbutton
fadescreen 1
@@ -747,8 +735,8 @@ gUnknown_081A4479:: @ 81A4479
waitstate
end
-gUnknown_081A4487:: @ 81A4487
- message UnknownString_81A4D45
+TradeRoom_ReadTrainerCard2:: @ 81A4487
+ message CableClub_LookAtTrainerCard2
waittext
waitbutton
fadescreen 1
@@ -756,8 +744,8 @@ gUnknown_081A4487:: @ 81A4487
waitstate
end
-gUnknown_081A4495:: @ 81A4495
- message UnknownString_81A4CF6
+TradeRoom_TooBusyToNotice:: @ 81A4495
+ message CableClub_TooBusyToNotice
waittext
waitbutton
closebutton
@@ -801,15 +789,15 @@ RecordCorner_EventScript_1A44D6:: @ 81A44D6
closebutton
end
-gUnknown_081A44E5:: @ 81A44E5
- msgbox UnknownString_81A4C6E, 5
+TradeRoom_PromptToCancelLink:: @ 81A44E5
+ msgbox TradeRoom_WillLinkBeTerminated, 5
compare RESULT, 1
- jumpeq gUnknown_081A44FE
+ jumpeq TradeRoom_TerminateLink
hidebox 0, 0, 29, 19
end
-gUnknown_081A44FE:: @ 81A44FE
- message2 UnknownString_81A4CAF
+TradeRoom_TerminateLink:: @ 81A44FE
+ message2 TradeRoom_TerminatingLink
waittext
special 5
end
diff --git a/data/secret_base.s b/data/secret_base.s
new file mode 100644
index 000000000..733259b3e
--- /dev/null
+++ b/data/secret_base.s
@@ -0,0 +1,23 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+gUnknown_083D1358:: @ 83D1358
+ .incbin "baserom.gba", 0x003d1358, 0x1c
+
+gUnknown_083D1374:: @ 83D1374
+ .incbin "baserom.gba", 0x003d1374, 0x60
+
+ .align 2
+gUnknown_083D13D4:: @ 83D13D4
+ .4byte SecretBaseText_DelRegist, sub_80BCA84
+ .4byte gUnknownText_Exit, sub_80BCBF8
+
+ .align 2
+gUnknown_083D13E4:: @ 83D13E4
+ .4byte sub_80BCB90
+ .4byte sub_80BCBC0
+
+gUnknown_083D13EC:: @ 83D13EC
+ .incbin "baserom.gba", 0x003d13ec, 0xc
diff --git a/data/shop.s b/data/shop.s
new file mode 100644
index 000000000..1974786cf
--- /dev/null
+++ b/data/shop.s
@@ -0,0 +1,61 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+ .align 2
+gUnknown_083CC6D0:: @ 83CC6D0
+ .4byte MartText_Buy, sub_80B2EFC
+ .4byte MartText_Sell, sub_80B2F30
+ .4byte MartText_Quit2, HandleShopMenuQuit
+
+gUnknown_083CC6E8:: @ 83CC6E8
+ .byte 0, 1, 2
+
+gUnknown_083CC6EB:: @ 83CC6EB
+ .byte 0, 2
+
+@ unknown, unreferenced data
+ .align 1
+ .2byte 0x2
+ .2byte 0x3
+ .2byte 0x4
+ .2byte 0xD
+ .2byte 0x121
+ .2byte 0xE
+ .2byte 0xE
+ .2byte 0xE
+ .2byte 0xE
+ .2byte 0xE
+ .2byte 0xE
+ .2byte 0x0
+ .2byte 0x0
+
+ .align 2
+gUnknown_083CC708:: @ 83CC708
+ .4byte sub_80B3BF4
+ .4byte sub_80B3D7C
+
+gUnknown_083CC710:: @ 83CC710
+ .incbin "baserom.gba", 0x003cc710, 0x4
+
+gUnknown_083CC714:: @ 83CC714
+ .incbin "baserom.gba", 0x003cc714, 0x6
+
+gUnknown_083CC71A:: @ 83CC71A
+ .incbin "baserom.gba", 0x003cc71a, 0x6
+
+gUnknown_083CC720:: @ 83CC720
+ .incbin "baserom.gba", 0x003cc720, 0x6
+
+gUnknown_083CC726:: @ 83CC726
+ .incbin "baserom.gba", 0x003cc726, 0x6
+
+gUnknown_083CC72C:: @ 83CC72C
+ .incbin "baserom.gba", 0x003cc72c, 0x6
+
+gUnknown_083CC732:: @ 83CC732
+ .incbin "baserom.gba", 0x003cc732, 0x6
+
+gUnknown_083CC738:: @ 83CC738
+ .incbin "baserom.gba", 0x003cc738, 0x8
diff --git a/data/slot_machine.s b/data/slot_machine.s
new file mode 100644
index 000000000..5f97c1f5e
--- /dev/null
+++ b/data/slot_machine.s
@@ -0,0 +1,1530 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+ .align 2
+gUnknown_083ECAAC:: @ 83ECAAC
+ .4byte sub_8101D5C
+ .4byte sub_8101D8C
+ .4byte sub_8101DB0
+ .4byte sub_8101DF4
+ .4byte sub_8101E10
+ .4byte sub_8101E3C
+ .4byte sub_8101F44
+ .4byte sub_8101F60
+ .4byte sub_8101F88
+ .4byte sub_8101FA4
+ .4byte sub_8102008
+ .4byte sub_8102034
+ .4byte sub_8102058
+ .4byte sub_8102090
+ .4byte sub_81020C8
+ .4byte sub_81021E0
+ .4byte sub_81021FC
+ .4byte sub_8102264
+ .4byte sub_81022A0
+ .4byte sub_81022CC
+ .4byte sub_81022F0
+ .4byte sub_8102318
+ .4byte sub_8102344
+ .4byte sub_810239C
+ .4byte sub_81023B8
+ .4byte sub_81023E0
+ .4byte sub_81023FC
+ .4byte sub_8102424
+ .4byte sub_8102460
+
+ .align 2
+gUnknown_083ECB20:: @ 83ECB20
+ .4byte sub_8102A9C
+ .4byte sub_8102AD0
+ .4byte sub_8102B80
+
+ .align 2
+gUnknown_083ECB2C:: @ 83ECB2C
+ .4byte sub_8102EA0
+ .4byte sub_8102EA4
+ .4byte sub_8102EC0
+ .4byte sub_8102F4C
+ .4byte sub_8103008
+
+ .align 2
+gUnknown_083ECB40:: @ 83ECB40
+ .4byte sub_810305C
+ .4byte sub_81032C0
+ .4byte sub_81033DC
+
+ .align 2
+gUnknown_083ECB4C:: @ 83ECB4C
+ .4byte sub_81034F4
+ .4byte sub_8103540
+ .4byte sub_810380C
+
+ .align 1
+gUnknown_083ECB58:: @ 83ECB58
+ .2byte 2, 4, 4, 4, 8
+
+ .align 2
+gUnknown_083ECB64:: @ 83ECB64
+ .4byte sub_8103154
+ .4byte sub_81031B4
+ .4byte sub_81031B4
+
+ .align 2
+gUnknown_083ECB70:: @ 83ECB70
+ .4byte sub_81032E8
+ .4byte sub_81032E8
+ .4byte sub_810333C
+
+ .align 2
+gUnknown_083ECB7C:: @ 83ECB7C
+ .4byte sub_810341C
+ .4byte sub_810341C
+ .4byte sub_810347C
+
+ .align 2
+gUnknown_083ECB88:: @ 83ECB88
+ .4byte sub_8103564
+ .4byte j5_08111E84
+ .4byte sub_8103668
+
+ .align 2
+gUnknown_083ECB94:: @ 83ECB94
+ .4byte sub_8103830
+ .4byte sub_8103910
+ .4byte sub_8103A78
+
+ .align 2
+gUnknown_083ECBA0:: @ 83ECBA0
+ .4byte sub_8103C78
+ .4byte sub_8103CAC
+ .4byte sub_8103CC8
+
+ .align 1
+gUnknown_083ECBAC:: @ 83ECBAC
+ .2byte 5, 10, 15
+
+ .align 2
+gUnknown_083ECBB4:: @ 83ECBB4
+ .4byte nullsub_68
+ .4byte sub_810411C
+ .4byte sub_8104144
+ .4byte sub_81041AC
+
+ .align 1
+gUnknown_083ECBC4:: @ 83ECBC4
+ .2byte 0x9E, 0x6E, 0x9F, 0x6F, 0xAF, 0x7F
+
+ .align 2
+gUnknown_083ECBD0:: @ 83ECBD0
+ .4byte sub_810437C
+ .4byte sub_81043EC
+ .4byte sub_8104468
+ .4byte sub_8104498
+ .4byte sub_8104548
+ .4byte sub_8104598
+ .4byte sub_81045CC
+ .4byte sub_810463C
+ .4byte sub_81046C0
+ .4byte sub_8104764
+ .4byte sub_8104794
+ .4byte sub_81047EC
+ .4byte sub_8104860
+ .4byte sub_81048A8
+ .4byte sub_81048CC
+ .4byte sub_8104940
+ .4byte sub_81049C8
+ .4byte sub_8104794
+ .4byte sub_81049F8
+
+gUnknown_083ECC1C:: @ 83ECC1C
+ .byte 1, 1, 2, 2
+
+ .align 1
+gUnknown_083ECC20:: @ 83ECC20
+ .2byte 0x40, 0x30, 0x18, 0x8
+
+ .align 1
+gUnknown_083ECC28:: @ 83ECC28
+ .2byte 10, 8, 6, 4
+
+ .align 2
+gUnknown_083ECC30:: @ 83ECC30
+ .4byte sub_8104B3C
+ .4byte sub_8104B60
+ .4byte sub_8104B80
+ .4byte sub_8104B60
+ .4byte sub_8104BC8
+ .4byte sub_8104B60
+ .4byte sub_8104BFC
+ .4byte sub_8104B60
+ .4byte sub_8104C44
+
+gUnknown_083ECC54:: @ 83ECC54
+ .4byte nullsub_69
+
+gUnknown_083ECC58:: @ 83ECC58
+ .byte 16, 0
+
+ .align 1
+gUnknown_083ECC5A:: @ 83ECC5A
+ .2byte 0x0, 0x40, 0x80, 0xC0
+
+ .align 1
+gUnknown_083ECC62:: @ 83ECC62
+ .2byte 4, -4, 4, -4
+
+ .align 1
+gUnknown_083ECC6A:: @ 83ECC6A
+ .2byte 4, 4, -4, -4
+
+ .align 1
+gUnknown_083ECC72:: @ 83ECC72
+ .2byte 0, -40, 0, 0, 48, 0, 24, 0
+
+ .align 1
+gUnknown_083ECC82:: @ 83ECC82
+ .2byte -32, 0, -32, -48, 0, -48, 0, -48
+
+ .align 1
+gUnknown_083ECC92:: @ 83ECC92
+ .2byte 16, 12, 16, 0, 0, 4, 8, 8
+
+ .align 1
+gUnknown_083ECCA2:: @ 83ECCA2
+ .2byte 160, 192, 224, 104, 80, 64, 48, 24
+
+gUnknown_083ECCB2:: @ 83ECCB2
+ .byte 0, 4, 2, 6, 5, 3, 1, 3, 4, 5, 6, 2, 0, 5, 3, 6, 2, 1, 5, 3, 6
+ .byte 0, 4, 6, 3, 2, 4, 6, 5, 5, 3, 1, 3, 6, 4, 2, 3, 6, 4, 3, 6, 4
+ .byte 0, 5, 1, 6, 3, 2, 6, 3, 5, 2, 6, 3, 2, 5, 6, 3, 2, 5, 6, 3, 4
+
+gUnknown_083ECCF1:: @ 83ECCF1
+ .byte 1, 0, 5, 4, 3, 2, 0
+
+ .align 1
+gUnknown_083ECCF8:: @ 83ECCF8
+ .2byte 0, 6, 0, 10, 0, 2
+
+gUnknown_083ECD04:: @ 83ECD04
+ .byte 1, 1, 12
+ .byte 1, 1, 14
+ .byte 2, 2, 14
+ .byte 2, 2, 14
+ .byte 2, 3, 16
+ .byte 3, 3, 16
+
+gUnknown_083ECD16:: @ 83ECD16
+ .byte 25, 25, 30, 40, 40, 50
+ .byte 25, 25, 30, 30, 35, 35
+ .byte 25, 25, 30, 25, 25, 30
+
+gUnknown_083ECD28:: @ 83ECD28
+ .byte 20, 25, 25, 20, 25, 25
+ .byte 12, 15, 15, 18, 19, 22
+ .byte 25, 25, 25, 30, 30, 40
+ .byte 25, 25, 20, 20, 15, 15
+ .byte 40, 40, 35, 35, 40, 40
+
+gUnknown_083ECD46:: @ 83ECD46
+ .byte -13, -13, -13, 80, 80, 80, 80, 40, 40, 40, 40, 40, 40, 5, 5, 5, 5
+ .byte 5, 5, 5,-106,-106,-106,-106,-126,-126,-126,-126,-126,-126, 100, 100, 100, 5
+ .byte 4, 4, 4, 20, 20, 20, 20, 80, 80, 80, 80, 80, 80, 100, 100, 100, 40
+ .byte 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 45, 45, 45, 100
+ .byte 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 5, 5, 100
+ .byte 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 6
+
+gUnknown_083ECDAC:: @ 83ECDAC
+ .byte -13, -13, -13, -56, -56, -56, -56, -96, -96, -96, -96, -96, -96, 70, 70, 70, 5
+ .byte 5, 5, 5, 25, 25, 25, 25, 5, 5, 5, 5, 5, 5, 2, 2, 2, 6
+ .byte 4, 4, 4, 25, 25, 25, 25, 30, 30, 30, 30, 30, 30, 40, 40, 40, 35
+ .byte 2, 2, 2, 3, 3, 3, 3, 30, 30, 30, 30, 30, 30, 100, 100, 100, 50
+ .byte 1, 1, 1, 2, 2, 2, 2, 30, 30, 30, 30, 30, 30, 40, 40, 40, 100
+ .byte 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 4, 4, 60
+
+ .align 1
+gUnknown_083ECE12:: @ 83ECE12
+ .2byte 128, 175, 200, 225, 256
+
+gUnknown_083ECE1C:: @ 83ECE1C
+ .byte 10, 0, 5, 0, 10, 0, 10, 0, 10, 0, 15, 0, 10, 0, 25, 0, 10, 0, 35, 0
+
+gUnknown_083ECE30:: @ 83ECE30
+ .byte 0, 0, 5, 0, 10, 0, 15, 0, 20, 0
+
+gUnknown_083ECE3A:: @ 83ECE3A
+ .byte 6, 4, 3, 2, 5, 0, 0, 0
+
+gUnknown_083ECE42:: @ 83ECE42
+ .byte 0x80, 0
+ .byte 0x20, 0
+ .byte 0x40, 0
+
+gUnknown_083ECE48:: @ 83ECE48
+ .byte 0x10, 0
+ .byte 0x08, 0
+ .byte 0x04, 0
+ .byte 0x02, 0
+ .byte 0x01, 0
+
+gUnknown_083ECE52:: @ 83ECE52
+ .byte 7, 8, 4, 3, 0, 5, 2, 0
+
+ .align 1
+gUnknown_083ECE5A:: @ 83ECE5A
+ .2byte 1, 2, 4, 8, 16, 32, 64, 128, 256
+
+ .align 1
+gUnknown_083ECE6C:: @ 83ECE6C
+ .2byte 2, 4, 0, 6, 12, 3, 90, 300, 300
+
+ .align 1
+gUnknown_083ECE7E:: @ 83ECE7E
+ .2byte 208, 56
+ .2byte 184, 0
+ .2byte 200, 8
+ .2byte 216, 16
+ .2byte 232, 24
+ .2byte 208, 72
+ .2byte 208, 8
+ .2byte 208, 64
+ .2byte 208, 56
+ .2byte 192, 88
+ .2byte 224, 88
+ .2byte 192, 120
+ .2byte 224, 120
+ .2byte 144, 56
+ .2byte 272, 88
+ .2byte 168, 112
+ .2byte 208, 84
+ .2byte 208, 112
+ .2byte 188, 52
+ .2byte 208, 52
+ .2byte 228, 52
+ .2byte 184, 72
+ .2byte 196, 72
+ .2byte 208, 72
+ .2byte 220, 72
+ .2byte 232, 72
+ .2byte 188, 52
+ .2byte 208, 52
+ .2byte 228, 52
+ .2byte 184, 72
+ .2byte 196, 72
+ .2byte 208, 72
+ .2byte 220, 72
+ .2byte 232, 72
+ .2byte 0, 0
+
+ .align 2
+gUnknown_083ECF0C:: @ 83ECF0C
+ .4byte sub_8105C64
+ .4byte sub_8105F54
+ .4byte sub_8105F54
+ .4byte sub_8105F54
+ .4byte sub_8105F54
+ .4byte sub_8105F9C
+ .4byte sub_8105EB4
+ .4byte sub_8105C64
+ .4byte sub_8105C64
+ .4byte sub_8105C6C
+ .4byte sub_8105CF0
+ .4byte sub_8105D08
+ .4byte sub_8105D20
+ .4byte sub_8105D3C
+ .4byte sub_8105DA4
+ .4byte sub_8105E08
+ .4byte sub_8105C64
+ .4byte sub_8106058
+ .4byte sub_81060FC
+ .4byte sub_81060FC
+ .4byte sub_81060FC
+ .4byte sub_81060FC
+ .4byte sub_81060FC
+ .4byte sub_81060FC
+ .4byte sub_81060FC
+ .4byte sub_81060FC
+ .4byte sub_81061C8
+ .4byte sub_81061C8
+ .4byte sub_81061C8
+ .4byte sub_81061C8
+ .4byte sub_81061C8
+ .4byte sub_81061C8
+ .4byte sub_81061C8
+ .4byte sub_81061C8
+ .4byte sub_8106230
+
+ .align 2
+Unknown_83ECF98:
+ .byte 25, 34
+ .2byte 0
+ .byte 2, 0
+ .2byte 0
+ .byte 9, 16
+ .2byte 0
+ .byte 255, 0
+ .2byte 0
+
+ .align 2
+Unknown_83ECFA8:
+ .byte 10, 1
+ .2byte 0
+ .byte 11, 2
+ .2byte 0
+ .byte 12, 3
+ .2byte 0
+ .byte 13, 4
+ .2byte 0
+ .byte 5, 5
+ .2byte 0
+ .byte 8, 6
+ .2byte 0
+ .byte 255, 0
+ .2byte 0
+
+ .align 2
+Unknown_83ECFC4:
+ .byte 3, 7
+ .2byte 0
+ .byte 8, 17
+ .2byte 0
+ .byte 255, 0
+ .2byte 0
+
+ .align 2
+Unknown_83ECFD0:
+ .byte 4, 8
+ .2byte 0
+ .byte 6, 9
+ .2byte 0
+ .byte 6, 10
+ .2byte 1
+ .byte 6, 11
+ .2byte 2
+ .byte 6, 12
+ .2byte 3
+ .byte 255, 0
+ .2byte 0
+
+ .align 2
+Unknown_83ECFE8:
+ .byte 0, 13
+ .2byte 0
+ .byte 1, 14
+ .2byte 0
+ .byte 7, 15
+ .2byte 0
+ .byte 255, 0
+ .2byte 0
+
+ .align 2
+Unknown_83ECFF8:
+ .byte 19, 26
+ .2byte 0
+ .byte 20, 27
+ .2byte 1
+ .byte 21, 28
+ .2byte 2
+ .byte 14, 29
+ .2byte 3
+ .byte 15, 30
+ .2byte 4
+ .byte 16, 31
+ .2byte 5
+ .byte 17, 32
+ .2byte 6
+ .byte 18, 33
+ .2byte 7
+ .byte 8, 17
+ .2byte 0
+ .byte 255, 0
+ .2byte 0
+
+ .align 2
+Unknown_83ED020:
+ .byte 22, 18
+ .2byte 0
+ .byte 23, 19
+ .2byte 1
+ .byte 24, 20
+ .2byte 2
+ .byte 14, 21
+ .2byte 3
+ .byte 15, 22
+ .2byte 4
+ .byte 16, 23
+ .2byte 5
+ .byte 17, 24
+ .2byte 6
+ .byte 18, 25
+ .2byte 7
+ .byte 8, 17
+ .2byte 0
+ .byte 255, 0
+ .2byte 0
+
+ .align 2
+gUnknown_083ED048:: @ 83ED048
+ .4byte Unknown_83ECF98
+ .4byte Unknown_83ECFA8
+ .4byte Unknown_83ECFC4
+ .4byte Unknown_83ECFD0
+ .4byte Unknown_83ECFE8
+ .4byte Unknown_83ED020
+ .4byte Unknown_83ECFF8
+
+ .align 2
+gUnknown_083ED064:: @ 83ED064
+ .4byte sub_810639C
+ .4byte sub_8106364
+ .4byte sub_8106370
+ .4byte nullsub_70
+ .4byte nullsub_70
+ .4byte sub_8106370
+ .4byte sub_8106370
+
+ .align 2
+gOamData_83ED080:: @ 83ED080
+ .2byte 0x0000
+ .2byte 0x0000
+ .2byte 0x0000
+
+ .align 2
+gOamData_83ED088:: @ 83ED088
+ .2byte 0x8000
+ .2byte 0x0000
+ .2byte 0x0000
+
+ .align 2
+gOamData_83ED090:: @ 83ED090
+ .2byte 0x0000
+ .2byte 0x4000
+ .2byte 0x0000
+
+ .align 2
+gOamData_83ED098:: @ 83ED098
+ .2byte 0x8000
+ .2byte 0x8000
+ .2byte 0x0000
+
+ .align 2
+gOamData_83ED0A0:: @ 83ED0A0
+ .2byte 0x0000
+ .2byte 0x8000
+ .2byte 0x0000
+
+ .align 2
+gOamData_83ED0A8:: @ 83ED0A8
+ .2byte 0x8000
+ .2byte 0xC000
+ .2byte 0x0000
+
+ .align 2
+gOamData_83ED0B0:: @ 83ED0B0
+ .2byte 0x4000
+ .2byte 0xC000
+ .2byte 0x0000
+
+ .align 2
+gOamData_83ED0B8:: @ 83ED0B8
+ .2byte 0x0000
+ .2byte 0xC000
+ .2byte 0x0000
+
+ .align 2
+gSpriteImageTable_83ED0C0:: @ 83ED0C0
+ obj_frame_tiles 0x02013200, 0x800
+ obj_frame_tiles 0x02013A00, 0x800
+ obj_frame_tiles 0x02014200, 0x800
+ obj_frame_tiles 0x02014A00, 0x800
+ obj_frame_tiles 0x02015200, 0x800
+
+ .align 2
+gSpriteImageTable_83ED0E8:: @ 83ED0E8
+ obj_frame_tiles 0x02015A00, 0x300
+
+ .align 2
+gSpriteImageTable_83ED0F0:: @ 83ED0F0
+ obj_frame_tiles 0x02015D00, 0x500
+
+ .align 2
+gSpriteImageTable_83ED0F8:: @ 83ED0F8
+ obj_frame_tiles 0x02016200, 0x600
+
+ .align 2
+gSpriteImageTable_83ED100:: @ 83ED100
+ obj_frame_tiles gSpriteImage_8E988E8, 0x80
+ obj_frame_tiles gSpriteImage_8E98968, 0x80
+ obj_frame_tiles gSpriteImage_8E989E8, 0x80
+ obj_frame_tiles gSpriteImage_8E98A68, 0x80
+ obj_frame_tiles gSpriteImage_8E98AE8, 0x80
+ obj_frame_tiles gSpriteImage_8E98B68, 0x80
+
+ .align 2
+gSpriteImageTable_83ED130:: @ 83ED130
+ obj_frame_tiles gSpriteImage_8E991E8, 0x200
+
+ .align 2
+gSpriteImageTable_83ED138:: @ 83ED138
+ obj_frame_tiles gSpriteImage_8E99808, 0x40
+
+ .align 2
+gSpriteImageTable_83ED140:: @ 83ED140
+ obj_frame_tiles gSpriteImage_8E98BE8, 0x100
+ obj_frame_tiles gSpriteImage_8E98CE8, 0x100
+
+ .align 2
+gSpriteImageTable_83ED150:: @ 83ED150
+ obj_frame_tiles gSpriteImage_8E993E8, 0x400
+
+ .align 2
+gSpriteImageTable_83ED158:: @ 83ED158
+ obj_frame_tiles gSpriteImage_8E98DE8, 0x200
+ obj_frame_tiles gSpriteImage_8E98FE8, 0x200
+
+ .align 2
+gSpriteImageTable_83ED168:: @ 83ED168
+ obj_frame_tiles gSpriteImage_8E98848, 0x20
+
+ .align 2
+gSpriteImageTable_83ED170:: @ 83ED170
+ obj_frame_tiles gSpriteImage_8E98868, 0x80
+
+ .align 2
+gSpriteImageTable_83ED178:: @ 83ED178
+ obj_frame_tiles 0x02010000, 0x600
+
+ .align 2
+gSpriteImageTable_83ED180:: @ 83ED180
+ obj_frame_tiles 0x02010600, 0x200
+
+ .align 2
+gSpriteImageTable_83ED188:: @ 83ED188
+ obj_frame_tiles 0x02010800, 0x200
+
+ .align 2
+gSpriteImageTable_83ED190:: @ 83ED190
+ obj_frame_tiles 0x02010A00, 0x200
+
+ .align 2
+gSpriteImageTable_83ED198:: @ 83ED198
+ obj_frame_tiles 0x02010C00, 0x300
+
+ .align 2
+gSpriteImageTable_83ED1A0:: @ 83ED1A0
+ obj_frame_tiles 0x02011000, 0x400
+
+ .align 2
+gSpriteImageTable_83ED1A8:: @ 83ED1A8
+ obj_frame_tiles 0x02011400, 0x200
+
+ .align 2
+gSpriteImageTable_83ED1B0:: @ 83ED1B0
+ obj_frame_tiles 0x02011600, 0x300
+
+ .align 2
+gSpriteImageTable_83ED1B8:: @ 83ED1B8
+ obj_frame_tiles 0x02011900, 0x300
+
+ .align 2
+gSpriteImageTable_83ED1C0:: @ 83ED1C0
+ obj_frame_tiles 0x02011C00, 0x200
+ obj_frame_tiles 0x02011E00, 0x200
+ obj_frame_tiles 0x02011E00, 0x200
+
+ .align 2
+gSpriteImageTable_83ED1D8:: @ 83ED1D8
+ obj_frame_tiles 0x02012000, 0x280
+
+ .align 2
+gSpriteImageTable_83ED1E0:: @ 83ED1E0
+ obj_frame_tiles 0x02012280, 0x80
+ obj_frame_tiles 0x02012300, 0x80
+ obj_frame_tiles 0x02012380, 0x80
+ obj_frame_tiles 0x02012400, 0x80
+ obj_frame_tiles 0x02012480, 0x80
+
+ .align 2
+gSpriteImageTable_83ED208:: @ 83ED208
+ obj_frame_tiles 0x02012600, 0x480
+ obj_frame_tiles 0x02012A80, 0x480
+
+ .align 2
+gSpriteImageTable_83ED218:: @ 83ED218
+ obj_frame_tiles 0x02012F00, 0x180
+ obj_frame_tiles 0x02013080, 0x180
+
+ .align 2
+gSpriteImageTable_83ED228:: @ 83ED228
+ obj_frame_tiles gSpriteImage_8E98828, 0x20
+
+ .align 2
+gSpriteAnim_83ED230:: @ 83ED230
+ obj_image_anim_frame 0, 1
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83ED238:: @ 83ED238
+ obj_image_anim_frame 0, 1
+ obj_image_anim_jump 0
+
+ .align 2
+gSpriteAnim_83ED240:: @ 83ED240
+ obj_image_anim_frame 0, 16
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83ED248:: @ 83ED248
+ obj_image_anim_frame 1, 16
+ obj_image_anim_frame 0, 16
+ obj_image_anim_jump 0
+
+ .align 2
+gSpriteAnim_83ED254:: @ 83ED254
+ obj_image_anim_frame 1, 8
+ obj_image_anim_frame 0, 8
+ obj_image_anim_jump 0
+
+ .align 2
+gSpriteAnim_83ED260:: @ 83ED260
+ obj_image_anim_frame 1, 4
+ obj_image_anim_frame 0, 4
+ obj_image_anim_jump 0
+
+ .align 2
+gSpriteAnim_83ED26C:: @ 83ED26C
+ obj_image_anim_frame 2, 32
+ obj_image_anim_frame 3, 32
+ obj_image_anim_jump 0
+
+ .align 2
+gSpriteAnim_83ED278:: @ 83ED278
+ obj_image_anim_frame 4, 1
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83ED280:: @ 83ED280
+ obj_image_anim_frame 0, 1
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83ED288:: @ 83ED288
+ obj_image_anim_frame 1, 1
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83ED290:: @ 83ED290
+ obj_image_anim_frame 2, 1
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83ED298:: @ 83ED298
+ obj_image_anim_frame 3, 1
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83ED2A0:: @ 83ED2A0
+ obj_image_anim_frame 4, 1
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83ED2A8:: @ 83ED2A8
+ obj_image_anim_frame 5, 1
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83ED2B0:: @ 83ED2B0
+ obj_image_anim_frame 0, 4
+ obj_image_anim_frame 1, 4
+ obj_image_anim_jump 0
+
+ .align 2
+gSpriteAnim_83ED2BC:: @ 83ED2BC
+ obj_image_anim_frame 0, 16
+ obj_image_anim_frame 1, 16
+ obj_image_anim_jump 0
+
+ .align 2
+gSpriteAnim_83ED2C8:: @ 83ED2C8
+ obj_image_anim_frame 0, 30
+ obj_image_anim_frame 1, 30
+ obj_image_anim_jump 0
+
+ .align 2
+gSpriteAnim_83ED2D4:: @ 83ED2D4
+ obj_image_anim_frame 1, 1
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83ED2DC:: @ 83ED2DC
+ obj_image_anim_frame 0, 30
+ obj_image_anim_frame 1, 30
+ obj_image_anim_jump 0
+
+ .align 2
+gSpriteAnim_83ED2E8:: @ 83ED2E8
+ obj_image_anim_frame 0, 16
+ obj_image_anim_frame 1, 16
+ obj_image_anim_frame 0, 16
+ obj_image_anim_frame 1, 16, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_jump 0
+
+ .align 2
+gSpriteAnim_83ED2FC:: @ 83ED2FC
+ obj_image_anim_frame 0, 1
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83ED304:: @ 83ED304
+ obj_image_anim_frame 0, 1
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83ED30C:: @ 83ED30C
+ obj_image_anim_frame 1, 1
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83ED314:: @ 83ED314
+ obj_image_anim_frame 2, 1
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83ED31C:: @ 83ED31C
+ obj_image_anim_frame 3, 1
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83ED324:: @ 83ED324
+ obj_image_anim_frame 4, 1
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_83ED32C:: @ 83ED32C
+ .4byte gSpriteAnim_83ED230
+
+ .align 2
+gSpriteAnimTable_83ED330:: @ 83ED330
+ .4byte gSpriteAnim_83ED238
+
+ .align 2
+gSpriteAnimTable_83ED334:: @ 83ED334
+ .4byte gSpriteAnim_83ED240
+ .4byte gSpriteAnim_83ED248
+ .4byte gSpriteAnim_83ED254
+ .4byte gSpriteAnim_83ED260
+ .4byte gSpriteAnim_83ED26C
+ .4byte gSpriteAnim_83ED278
+
+ .align 2
+gSpriteAnimTable_83ED34C:: @ 83ED34C
+ .4byte gSpriteAnim_83ED280
+ .4byte gSpriteAnim_83ED288
+ .4byte gSpriteAnim_83ED290
+ .4byte gSpriteAnim_83ED298
+ .4byte gSpriteAnim_83ED2A0
+ .4byte gSpriteAnim_83ED2A8
+
+ .align 2
+gSpriteAnimTable_83ED364:: @ 83ED364
+ .4byte gSpriteAnim_83ED2B0
+
+ .align 2
+gSpriteAnimTable_83ED368:: @ 83ED368
+ .4byte gSpriteAnim_83ED2BC
+
+ .align 2
+gSpriteAnimTable_83ED36C:: @ 83ED36C
+ .4byte gSpriteAnim_83ED2C8
+ .4byte gSpriteAnim_83ED2D4
+
+ .align 2
+gSpriteAnimTable_83ED374:: @ 83ED374
+ .4byte gSpriteAnim_83ED2DC
+
+ .align 2
+gSpriteAnimTable_83ED378:: @ 83ED378
+ .4byte gSpriteAnim_83ED2E8
+ .4byte gSpriteAnim_83ED2FC
+
+ .align 2
+gSpriteAnimTable_83ED380:: @ 83ED380
+ .4byte gSpriteAnim_83ED304
+ .4byte gSpriteAnim_83ED30C
+ .4byte gSpriteAnim_83ED314
+ .4byte gSpriteAnim_83ED31C
+ .4byte gSpriteAnim_83ED324
+
+ .align 2
+gSpriteAffineAnim_83ED394:: @ 83ED394
+ obj_rot_scal_anim_frame 0x10, 0x10, 0, 0
+ obj_rot_scal_anim_loop 0
+ obj_rot_scal_anim_frame 0x1, 0x1, 0, 1
+ obj_rot_scal_anim_loop 255
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnimTable_83ED3BC:: @ 83ED3BC
+ .4byte gSpriteAffineAnim_83ED394
+
+ .align 2
+gSpriteAffineAnim_83ED3C0:: @ 83ED3C0
+ obj_rot_scal_anim_frame 0x0, 0x0, 8, 32
+ obj_rot_scal_anim_frame 0x0, 0x0, 6, 32
+ obj_rot_scal_anim_frame 0x0, 0x0, 4, 16
+ obj_rot_scal_anim_frame 0x0, 0x0, 12, 2
+ obj_rot_scal_anim_frame 0x0, 0x0, -12, 4
+ obj_rot_scal_anim_frame 0x0, 0x0, 12, 2
+ obj_rot_scal_anim_frame 0x0, 0x0, 12, 2
+ obj_rot_scal_anim_frame 0x0, 0x0, -12, 4
+ obj_rot_scal_anim_frame 0x0, 0x0, 12, 2
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnimTable_83ED410:: @ 83ED410
+ .4byte gSpriteAffineAnim_83ED3C0
+
+ .align 2
+gSpriteTemplate_83ED414:: @ 83ED414
+ spr_template 0, 0, gOamData_83ED0A0, gSpriteAnimTable_83ED32C, NULL, gDummySpriteAffineAnimTable, sub_8104F18
+
+ .align 2
+gSpriteTemplate_83ED42C:: @ 83ED42C
+ spr_template 7, 4, gOamData_83ED088, gSpriteAnimTable_83ED32C, NULL, gDummySpriteAffineAnimTable, sub_810506C
+
+ .align 2
+gSpriteTemplate_83ED444:: @ 83ED444
+ spr_template 17, 0, gOamData_83ED0B8, gSpriteAnimTable_83ED32C, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
+
+ .align 2
+gSpriteTemplate_83ED45C:: @ 83ED45C
+ spr_template 0xFFFF, 1, gOamData_83ED0B8, gSpriteAnimTable_83ED334, gSpriteImageTable_83ED0C0, gDummySpriteAffineAnimTable, sub_8105170
+
+ .align 2
+gSpriteTemplate_83ED474:: @ 83ED474
+ spr_template 0xFFFF, 2, gOamData_83ED088, gSpriteAnimTable_83ED32C, gSpriteImageTable_83ED0E8, gDummySpriteAffineAnimTable, SpriteCallbackDummy
+
+ .align 2
+gSpriteTemplate_83ED48C:: @ 83ED48C
+ spr_template 0xFFFF, 3, gOamData_83ED088, gSpriteAnimTable_83ED32C, gSpriteImageTable_83ED0F0, gDummySpriteAffineAnimTable, SpriteCallbackDummy
+
+ .align 2
+gSpriteTemplate_83ED4A4:: @ 83ED4A4
+ spr_template 0xFFFF, 3, gOamData_83ED088, gSpriteAnimTable_83ED32C, gSpriteImageTable_83ED0F8, gDummySpriteAffineAnimTable, SpriteCallbackDummy
+
+ .align 2
+gSpriteTemplate_83ED4BC:: @ 83ED4BC
+ spr_template 0xFFFF, 4, gOamData_83ED090, gSpriteAnimTable_83ED34C, gSpriteImageTable_83ED100, gDummySpriteAffineAnimTable, sub_810535C
+
+ .align 2
+gSpriteTemplate_83ED4D4:: @ 83ED4D4
+ spr_template 0xFFFF, 4, gOamData_83ED090, gSpriteAnimTable_83ED32C, gSpriteImageTable_83ED130, gDummySpriteAffineAnimTable, SpriteCallbackDummy
+
+ .align 2
+gSpriteTemplate_83ED4EC:: @ 83ED4EC
+ spr_template 0xFFFF, 4, gOamData_83ED090, gSpriteAnimTable_83ED32C, gSpriteImageTable_83ED138, gDummySpriteAffineAnimTable, SpriteCallbackDummy
+
+ .align 2
+gSpriteTemplate_83ED504:: @ 83ED504
+ spr_template 0xFFFF, 4, gOamData_83ED098, gSpriteAnimTable_83ED364, gSpriteImageTable_83ED140, gDummySpriteAffineAnimTable, sub_810562C
+
+ .align 2
+gSpriteTemplate_83ED51C:: @ 83ED51C
+ spr_template 0xFFFF, 7, gOamData_83ED0A8, gSpriteAnimTable_83ED32C, gSpriteImageTable_83ED150, gDummySpriteAffineAnimTable, sub_8105784
+
+ .align 2
+gSpriteTemplate_83ED534:: @ 83ED534
+ spr_template 0xFFFF, 5, gOamData_83ED0A0, gSpriteAnimTable_83ED368, gSpriteImageTable_83ED158, gDummySpriteAffineAnimTable, sub_8105894
+
+ .align 2
+gSpriteTemplate_83ED54C:: @ 83ED54C
+ spr_template 0xFFFF, 4, gOamData_83ED080, gSpriteAnimTable_83ED330, gSpriteImageTable_83ED168, gDummySpriteAffineAnimTable, sub_810594C
+
+ .align 2
+gSpriteTemplate_83ED564:: @ 83ED564
+ spr_template 0xFFFF, 4, gOamData_83ED090, gSpriteAnimTable_83ED32C, gSpriteImageTable_83ED170, gSpriteAffineAnimTable_83ED3BC, sub_8105A38
+
+ .align 2
+gSpriteTemplate_83ED57C:: @ 83ED57C
+ spr_template 0xFFFF, 6, gOamData_83ED080, gSpriteAnimTable_83ED32C, gSpriteImageTable_83ED178, gDummySpriteAffineAnimTable, SpriteCallbackDummy
+
+ .align 2
+gSpriteTemplate_83ED594:: @ 83ED594
+ spr_template 0xFFFF, 6, gOamData_83ED080, gSpriteAnimTable_83ED32C, gSpriteImageTable_83ED180, gDummySpriteAffineAnimTable, SpriteCallbackDummy
+
+ .align 2
+gSpriteTemplate_83ED5AC:: @ 83ED5AC
+ spr_template 0xFFFF, 6, gOamData_83ED080, gSpriteAnimTable_83ED32C, gSpriteImageTable_83ED188, gDummySpriteAffineAnimTable, SpriteCallbackDummy
+
+ .align 2
+gSpriteTemplate_83ED5C4:: @ 83ED5C4
+ spr_template 18, 6, gOamData_83ED080, gSpriteAnimTable_83ED32C, gSpriteImageTable_83ED190, gDummySpriteAffineAnimTable, SpriteCallbackDummy
+
+ .align 2
+gSpriteTemplate_83ED5DC:: @ 83ED5DC
+ spr_template 0xFFFF, 6, gOamData_83ED0B0, gSpriteAnimTable_83ED32C, gSpriteImageTable_83ED198, gDummySpriteAffineAnimTable, SpriteCallbackDummy
+
+ .align 2
+gSpriteTemplate_83ED5F4:: @ 83ED5F4
+ spr_template 0xFFFF, 6, gOamData_83ED0B0, gSpriteAnimTable_83ED32C, gSpriteImageTable_83ED1A0, gDummySpriteAffineAnimTable, SpriteCallbackDummy
+
+ .align 2
+gSpriteTemplate_83ED60C:: @ 83ED60C
+ spr_template 19, 6, gOamData_83ED080, gSpriteAnimTable_83ED32C, gSpriteImageTable_83ED1A8, gDummySpriteAffineAnimTable, SpriteCallbackDummy
+
+ .align 2
+gSpriteTemplate_83ED624:: @ 83ED624
+ spr_template 20, 6, gOamData_83ED080, gSpriteAnimTable_83ED32C, gSpriteImageTable_83ED1B0, gDummySpriteAffineAnimTable, SpriteCallbackDummy
+
+ .align 2
+gSpriteTemplate_83ED63C:: @ 83ED63C
+ spr_template 21, 6, gOamData_83ED080, gSpriteAnimTable_83ED32C, gSpriteImageTable_83ED1B8, gDummySpriteAffineAnimTable, SpriteCallbackDummy
+
+ .align 2
+gSpriteTemplate_83ED654:: @ 83ED654
+ spr_template 0xFFFF, 6, gOamData_83ED0A0, gSpriteAnimTable_83ED36C, gSpriteImageTable_83ED1C0, gDummySpriteAffineAnimTable, SpriteCallbackDummy
+
+ .align 2
+gSpriteTemplate_83ED66C:: @ 83ED66C
+ spr_template 0xFFFF, 6, gOamData_83ED080, gSpriteAnimTable_83ED32C, gSpriteImageTable_83ED1D8, gDummySpriteAffineAnimTable, SpriteCallbackDummy
+
+ .align 2
+gSpriteTemplate_83ED684:: @ 83ED684
+ spr_template 0xFFFF, 6, gOamData_83ED090, gSpriteAnimTable_83ED380, gSpriteImageTable_83ED1E0, gDummySpriteAffineAnimTable, SpriteCallbackDummy
+
+ .align 2
+gSpriteTemplate_83ED69C:: @ 83ED69C
+ spr_template 0xFFFF, 6, gOamData_83ED080, gSpriteAnimTable_83ED378, gSpriteImageTable_83ED208, gDummySpriteAffineAnimTable, SpriteCallbackDummy
+
+ .align 2
+gSpriteTemplate_83ED6B4:: @ 83ED6B4
+ spr_template 0xFFFF, 6, gOamData_83ED080, gSpriteAnimTable_83ED374, gSpriteImageTable_83ED218, gDummySpriteAffineAnimTable, SpriteCallbackDummy
+
+ .align 2
+gSpriteTemplate_83ED6CC:: @ 83ED6CC
+ spr_template 0xFFFF, 4, gOamData_83ED080, gSpriteAnimTable_83ED32C, gSpriteImageTable_83ED228, gSpriteAffineAnimTable_83ED410, sub_8105B70
+
+ .align 2
+gSubspriteTable_83ED6E4:: @ 83ED6E4
+ subsprite -64, -64, 3, 0, 64x64
+ subsprite 0, -64, 3, 0, 64x64
+ subsprite -64, 0, 3, 0, 64x64
+ subsprite 0, 0, 3, 0, 64x64
+
+ .align 2
+gSubspriteTables_83ED704:: @ 83ED704
+ .4byte 4, gSubspriteTable_83ED6E4
+
+ .align 2
+gSubspriteTable_83ED70C:: @ 83ED70C
+ subsprite -32, -12, 1, 0, 32x8
+ subsprite 0, -12, 1, 4, 32x8
+ subsprite -32, -4, 1, 8, 32x8
+ subsprite 0, -4, 1, 12, 32x8
+ subsprite -32, 4, 1, 16, 32x8
+ subsprite 0, 4, 1, 20, 32x8
+
+ .align 2
+gSubspriteTables_83ED73C:: @ 83ED73C
+ .4byte 6, gSubspriteTable_83ED70C
+
+ .align 2
+gSubspriteTable_83ED744:: @ 83ED744
+ subsprite -32, -20, 1, 0, 64x32
+ subsprite -32, 12, 1, 32, 32x8
+ subsprite 0, 12, 1, 36, 32x8
+
+ .align 2
+gSubspriteTables_83ED75C:: @ 83ED75C
+ .4byte 3, gSubspriteTable_83ED744
+
+ .align 2
+gSubspriteTable_83ED764:: @ 83ED764
+ subsprite -32, -24, 1, 0, 64x32
+ subsprite -32, 8, 1, 32, 32x8
+ subsprite 0, 8, 1, 36, 32x8
+ subsprite -32, 16, 1, 40, 32x8
+ subsprite 0, 16, 1, 44, 32x8
+
+ .align 2
+gSubspriteTables_83ED78C:: @ 83ED78C
+ .4byte 5, gSubspriteTable_83ED764
+
+ .align 2
+gSubspriteTable_83ED794:: @ 83ED794
+ subsprite -32, -8, 1, 0, 32x8
+ subsprite 0, -8, 1, 4, 32x8
+ subsprite -32, 0, 1, 8, 32x8
+ subsprite 0, 0, 1, 12, 32x8
+
+ .align 2
+gSubspriteTables_83ED7B4:: @ 83ED7B4
+ .4byte 4, gSubspriteTable_83ED794
+
+ .align 2
+gSubspriteTable_83ED7BC:: @ 83ED7BC
+ subsprite -8, -12, 1, 0, 16x8
+ subsprite -8, -4, 1, 0, 16x8
+ subsprite -8, 4, 1, 0, 16x8
+
+ .align 2
+gSubspriteTables_83ED7D4:: @ 83ED7D4
+ .4byte 3, gSubspriteTable_83ED7BC
+
+ .align 2
+gSubspriteTable_83ED7DC:: @ 83ED7DC
+ subsprite -32, -24, 3, 0, 64x32
+ subsprite -32, 8, 3, 32, 32x8
+ subsprite 0, 8, 3, 36, 32x8
+ subsprite -32, 16, 3, 40, 32x8
+ subsprite 0, 16, 3, 44, 32x8
+
+ .align 2
+gSubspriteTables_83ED804:: @ 83ED804
+ .4byte 5, gSubspriteTable_83ED7DC
+
+ .align 2
+gSubspriteTable_83ED80C:: @ 83ED80C
+ subsprite -32, -8, 3, 0, 32x8
+ subsprite 0, -8, 3, 4, 32x8
+ subsprite -32, 0, 3, 8, 32x8
+ subsprite 0, 0, 3, 12, 32x8
+
+ .align 2
+gSubspriteTables_83ED82C:: @ 83ED82C
+ .4byte 4, gSubspriteTable_83ED80C
+
+ .align 2
+gSubspriteTable_83ED834:: @ 83ED834
+ subsprite -32, -8, 3, 0, 32x8
+ subsprite 0, -8, 3, 4, 32x8
+ subsprite -32, 0, 3, 8, 32x8
+ subsprite 0, 0, 3, 12, 32x8
+
+ .align 2
+gSubspriteTables_83ED854:: @ 83ED854
+ .4byte 4, gSubspriteTable_83ED834
+
+ .align 2
+gSubspriteTable_83ED85C:: @ 83ED85C
+ subsprite -32, -8, 3, 0, 32x8
+ subsprite 0, -8, 3, 4, 32x8
+ subsprite -32, 0, 3, 8, 32x8
+ subsprite 0, 0, 3, 12, 32x8
+
+ .align 2
+gSubspriteTables_83ED87C:: @ 83ED87C
+ .4byte 4, gSubspriteTable_83ED85C
+
+ .align 2
+gSubspriteTable_83ED884:: @ 83ED884
+ subsprite -32, -12, 3, 0, 32x8
+ subsprite 0, -12, 3, 4, 32x8
+ subsprite -32, -4, 3, 8, 32x8
+ subsprite 0, -4, 3, 12, 32x8
+ subsprite -32, 4, 3, 16, 32x8
+ subsprite 0, 4, 3, 20, 32x8
+
+ .align 2
+gSubspriteTables_83ED8B4:: @ 83ED8B4
+ .4byte 6, gSubspriteTable_83ED884
+
+ .align 2
+gSubspriteTable_83ED8BC:: @ 83ED8BC
+ subsprite -16, -16, 3, 0, 32x32
+
+ .align 2
+gSubspriteTable_83ED8C4:: @ 83ED8C4
+ subsprite -8, -8, 3, 16, 16x16
+
+ .align 2
+gSubspriteTables_83ED8CC:: @ 83ED8CC
+ .4byte 1, gSubspriteTable_83ED8BC
+ .4byte 1, gSubspriteTable_83ED8C4
+
+ .align 2
+gSubspriteTable_83ED8DC:: @ 83ED8DC
+ subsprite -24, -24, 3, 0, 32x8
+ subsprite 8, -24, 3, 4, 16x8
+ subsprite -24, -16, 3, 6, 32x8
+ subsprite 8, -16, 3, 10, 16x8
+ subsprite -24, -8, 3, 12, 32x8
+ subsprite 8, -8, 3, 16, 16x8
+ subsprite -24, 0, 3, 18, 32x8
+ subsprite 8, 0, 3, 22, 16x8
+ subsprite -24, 8, 3, 24, 32x8
+ subsprite 8, 8, 3, 28, 16x8
+ subsprite -24, 16, 3, 30, 32x8
+ subsprite 8, 16, 3, 34, 16x8
+
+ .align 2
+gSubspriteTables_83ED93C:: @ 83ED93C
+ .4byte 12, gSubspriteTable_83ED8DC
+
+ .align 2
+gSubspriteTable_83ED944:: @ 83ED944
+ subsprite -16, -12, 3, 0, 32x16
+ subsprite -16, 4, 3, 8, 16x8
+ subsprite 0, 4, 3, 10, 16x8
+
+ .align 2
+gSubspriteTables_83ED95C:: @ 83ED95C
+ .4byte 3, gSubspriteTable_83ED944
+
+ .align 2
+gSubspriteTable_83ED964:: @ 83ED964
+ subsprite -8, -8, 3, 0, 16x8
+ subsprite -8, 0, 3, 8, 16x8
+
+ .align 2
+gSubspriteTables_83ED974:: @ 83ED974
+ .4byte 2, gSubspriteTable_83ED964
+
+ .align 2
+gSubspriteTable_83ED97C:: @ 83ED97C
+ subsprite -8, -8, 3, 2, 16x8
+ subsprite -8, 0, 3, 10, 16x8
+
+ .align 2
+gSubspriteTables_83ED98C:: @ 83ED98C
+ .4byte 2, gSubspriteTable_83ED97C
+
+ .align 2
+gSubspriteTable_83ED994:: @ 83ED994
+ subsprite -8, -8, 3, 4, 16x8
+ subsprite -8, 0, 3, 12, 16x8
+
+ .align 2
+gSubspriteTables_83ED9A4:: @ 83ED9A4
+ .4byte 2, gSubspriteTable_83ED994
+
+ .align 2
+gSubspriteTable_83ED9AC:: @ 83ED9AC
+ subsprite -8, -8, 3, 6, 16x8
+ subsprite -8, 0, 3, 14, 16x8
+
+ .align 2
+gSubspriteTables_83ED9BC:: @ 83ED9BC
+ .4byte 2, gSubspriteTable_83ED9AC
+
+ .align 2
+gSubspriteTable_83ED9C4:: @ 83ED9C4
+ subsprite -8, -8, 3, 0, 16x8
+ subsprite -8, 0, 3, 8, 16x8
+
+ .align 2
+gSubspriteTables_83ED9D4:: @ 83ED9D4
+ .4byte 2, gSubspriteTable_83ED9C4
+
+ .align 2
+gSubspriteTable_83ED9DC:: @ 83ED9DC
+ subsprite -4, -8, 3, 2, 8x8
+ subsprite -4, 0, 3, 10, 8x8
+
+ .align 2
+gSubspriteTables_83ED9EC:: @ 83ED9EC
+ .4byte 2, gSubspriteTable_83ED9DC
+
+ .align 2
+gSubspriteTable_83ED9F4:: @ 83ED9F4
+ subsprite -8, -8, 3, 3, 16x8
+ subsprite -8, 0, 3, 11, 16x8
+
+ .align 2
+gSubspriteTables_83EDA04:: @ 83EDA04
+ .4byte 2, gSubspriteTable_83ED9F4
+
+ .align 2
+gSubspriteTable_83EDA0C:: @ 83EDA0C
+ subsprite -4, -8, 3, 5, 8x8
+ subsprite -4, 0, 3, 13, 8x8
+
+ .align 2
+gSubspriteTables_83EDA1C:: @ 83EDA1C
+ .4byte 2, gSubspriteTable_83EDA0C
+
+ .align 2
+gSubspriteTable_83EDA24:: @ 83EDA24
+ subsprite -8, -8, 3, 6, 16x8
+ subsprite -8, 0, 3, 14, 16x8
+
+ .align 2
+gSubspriteTables_83EDA34:: @ 83EDA34
+ .4byte 2, gSubspriteTable_83EDA24
+
+ .align 2
+gSubspriteTable_83EDA3C:: @ 83EDA3C
+ subsprite -12, -12, 3, 0, 16x8
+ subsprite 4, -12, 3, 2, 8x8
+ subsprite -12, -4, 3, 8, 16x8
+ subsprite 4, -4, 3, 10, 8x8
+ subsprite -12, 4, 3, 16, 16x8
+ subsprite 4, 4, 3, 18, 8x8
+
+ .align 2
+gSubspriteTables_83EDA6C:: @ 83EDA6C
+ .4byte 6, gSubspriteTable_83EDA3C
+
+ .align 2
+gSubspriteTable_83EDA74:: @ 83EDA74
+ subsprite -8, -12, 3, 3, 16x8
+ subsprite -8, -4, 3, 11, 16x8
+ subsprite -8, 4, 3, 19, 16x8
+
+ .align 2
+gSubspriteTables_83EDA8C:: @ 83EDA8C
+ .4byte 3, gSubspriteTable_83EDA74
+
+ .align 2
+gSubspriteTable_83EDA94:: @ 83EDA94
+ subsprite -12, -12, 3, 5, 16x8
+ subsprite 4, -12, 3, 7, 8x8
+ subsprite -12, -4, 3, 13, 16x8
+ subsprite 4, -4, 3, 15, 8x8
+ subsprite -12, 4, 3, 21, 16x8
+ subsprite 4, 4, 3, 23, 8x8
+
+ .align 2
+gSubspriteTables_83EDAC4:: @ 83EDAC4
+ .4byte 6, gSubspriteTable_83EDA94
+
+ .align 2
+gSubspriteTable_83EDACC:: @ 83EDACC
+ subsprite -12, -12, 3, 0, 16x8
+ subsprite 4, -12, 3, 2, 8x8
+ subsprite -12, -4, 3, 8, 16x8
+ subsprite 4, -4, 3, 10, 8x8
+ subsprite -12, 4, 3, 16, 16x8
+ subsprite 4, 4, 3, 18, 8x8
+
+ .align 2
+gSubspriteTables_83EDAFC:: @ 83EDAFC
+ .4byte 6, gSubspriteTable_83EDACC
+
+ .align 2
+gSubspriteTable_83EDB04:: @ 83EDB04
+ subsprite -8, -12, 3, 3, 16x8
+ subsprite -8, -4, 3, 11, 16x8
+ subsprite -8, 4, 3, 19, 16x8
+
+ .align 2
+gSubspriteTables_83EDB1C:: @ 83EDB1C
+ .4byte 3, gSubspriteTable_83EDB04
+
+ .align 2
+gSubspriteTable_83EDB24:: @ 83EDB24
+ subsprite -12, -12, 3, 5, 16x8
+ subsprite 4, -12, 3, 7, 8x8
+ subsprite -12, -4, 3, 13, 16x8
+ subsprite 4, -4, 3, 15, 8x8
+ subsprite -12, 4, 3, 21, 16x8
+ subsprite 4, 4, 3, 23, 8x8
+
+ .align 2
+gSubspriteTables_83EDB54:: @ 83EDB54
+ .4byte 6, gSubspriteTable_83EDB24
+
+ .align 2
+gUnknown_083EDB5C:: @ 83EDB5C
+ .4byte gSpriteTemplate_83ED57C
+ .4byte gSpriteTemplate_83ED594
+ .4byte gSpriteTemplate_83ED5AC
+ .4byte gSpriteTemplate_83ED5DC
+ .4byte gSpriteTemplate_83ED5F4
+ .4byte gSpriteTemplate_83ED654
+ .4byte gSpriteTemplate_83ED66C
+ .4byte gSpriteTemplate_83ED684
+ .4byte gSpriteTemplate_83ED69C
+ .4byte gSpriteTemplate_83ED6B4
+ .4byte gSpriteTemplate_83ED5C4
+ .4byte gSpriteTemplate_83ED5C4
+ .4byte gSpriteTemplate_83ED5C4
+ .4byte gSpriteTemplate_83ED5C4
+ .4byte gSpriteTemplate_83ED60C
+ .4byte gSpriteTemplate_83ED60C
+ .4byte gSpriteTemplate_83ED60C
+ .4byte gSpriteTemplate_83ED60C
+ .4byte gSpriteTemplate_83ED60C
+ .4byte gSpriteTemplate_83ED624
+ .4byte gSpriteTemplate_83ED624
+ .4byte gSpriteTemplate_83ED624
+ .4byte gSpriteTemplate_83ED63C
+ .4byte gSpriteTemplate_83ED63C
+ .4byte gSpriteTemplate_83ED63C
+ .4byte gDummySpriteTemplate
+
+ .align 2
+gUnknown_083EDBC4:: @ 83EDBC4
+ .4byte gSubspriteTables_83ED804
+ .4byte gSubspriteTables_83ED82C
+ .4byte gSubspriteTables_83ED854
+ .4byte gSubspriteTables_83ED8B4
+ .4byte NULL
+ .4byte NULL
+ .4byte gSubspriteTables_83ED8CC
+ .4byte NULL
+ .4byte gSubspriteTables_83ED93C
+ .4byte gSubspriteTables_83ED95C
+ .4byte gSubspriteTables_83ED974
+ .4byte gSubspriteTables_83ED98C
+ .4byte gSubspriteTables_83ED9A4
+ .4byte gSubspriteTables_83ED9BC
+ .4byte gSubspriteTables_83ED9D4
+ .4byte gSubspriteTables_83ED9EC
+ .4byte gSubspriteTables_83EDA04
+ .4byte gSubspriteTables_83EDA1C
+ .4byte gSubspriteTables_83EDA34
+ .4byte gSubspriteTables_83EDA6C
+ .4byte gSubspriteTables_83EDA8C
+ .4byte gSubspriteTables_83EDAC4
+ .4byte gSubspriteTables_83EDAFC
+ .4byte gSubspriteTables_83EDB1C
+ .4byte gSubspriteTables_83EDB54
+ .4byte NULL
+
+ .align 2
+gUnknown_083EDC2C:: @ 83EDC2C
+ obj_tiles gSlotMachineReelSymbol1Tiles, 0x200, 0
+ obj_tiles gSlotMachineReelSymbol2Tiles, 0x200, 1
+ obj_tiles gSlotMachineReelSymbol3Tiles, 0x200, 2
+ obj_tiles gSlotMachineReelSymbol4Tiles, 0x200, 3
+ obj_tiles gSlotMachineReelSymbol5Tiles, 0x200, 4
+ obj_tiles gSlotMachineReelSymbol6Tiles, 0x200, 5
+ obj_tiles gSlotMachineReelSymbol7Tiles, 0x200, 6
+ obj_tiles gSlotMachineNumber0Tiles, 0x40, 7
+ obj_tiles gSlotMachineNumber1Tiles, 0x40, 8
+ obj_tiles gSlotMachineNumber2Tiles, 0x40, 9
+ obj_tiles gSlotMachineNumber3Tiles, 0x40, 10
+ obj_tiles gSlotMachineNumber4Tiles, 0x40, 11
+ obj_tiles gSlotMachineNumber5Tiles, 0x40, 12
+ obj_tiles gSlotMachineNumber6Tiles, 0x40, 13
+ obj_tiles gSlotMachineNumber7Tiles, 0x40, 14
+ obj_tiles gSlotMachineNumber8Tiles, 0x40, 15
+ obj_tiles gSlotMachineNumber9Tiles, 0x40, 16
+ obj_tiles 0x2010a00, 0x200, 18
+ obj_tiles 0x2011400, 0x200, 19
+ obj_tiles 0x2011600, 0x300, 20
+ obj_tiles 0x2011900, 0x300, 21
+ null_obj_tiles
+
+ .align 2
+gUnknown_083EDCDC:: @ 83EDCDC
+ obj_tiles 0x02010000, 2048, 0x0011
+
+ .align 2
+gUnknown_083EDCE4:: @ 83EDCE4
+ .4byte gUnknownPalette_08E997E8
+
+UnknownPalette_83EDCE8:
+ .ifdef SAPPHIRE
+ .incbin "graphics/unknown/sapphire_83EDD40.gbapal"
+ .else
+ .incbin "graphics/unknown/ruby_83EDCE8.gbapal"
+ .endif
+
+ .align 2
+gUnknown_083EDD08:: @ 83EDD08
+ .4byte UnknownPalette_83EDCE8 + 10 * 2
+ .4byte UnknownPalette_83EDCE8 + 11 * 2
+ .4byte UnknownPalette_83EDCE8 + 12 * 2
+ .4byte UnknownPalette_83EDCE8 + 13 * 2
+ .4byte UnknownPalette_83EDCE8 + 14 * 2
+
+ .align 2
+gUnknown_083EDD1C:: @ 83EDD1C
+ .4byte gUnknown_08E95A18 + 148
+ .4byte gUnknown_08E95A18 + 150
+ .4byte gUnknown_08E95A18 + 152
+ .4byte gUnknown_08E95A18 + 154
+ .4byte gUnknown_08E95A18 + 156
+
+gUnknown_083EDD30:: @ 83EDD30
+ .byte 0x4A, 0x4B, 0x4C, 0x4E, 0x4D
+
+gUnknown_083EDD35:: @ 83EDD35
+ .byte 0, 0, 1, 2, 3, 4
+
+gUnknown_083EDD3B:: @ 83EDD3B
+ .byte 1, 2, 2
+
+ .align 1
+Unknown_83EDD3E:
+ .ifdef SAPPHIRE
+ .incbin "graphics/unknown/sapphire_83EDD96.gbapal"
+ .else
+ .incbin "graphics/unknown/ruby_83EDD3E.gbapal"
+ .endif
+
+ .align 1
+Unknown_83EDD5E:
+ .ifdef SAPPHIRE
+ .incbin "graphics/unknown/sapphire_83EDDB6.gbapal"
+ .else
+ .incbin "graphics/unknown/ruby_83EDD5E.gbapal"
+ .endif
+
+ .align 1
+Unknown_83EDD7E:
+ .ifdef SAPPHIRE
+ .incbin "graphics/unknown/sapphire_83EDDD6.gbapal"
+ .else
+ .incbin "graphics/unknown/ruby_83EDD7E.gbapal"
+ .endif
+
+ .align 2
+gUnknown_083EDDA0:: @ 83EDDA0
+ .4byte Unknown_83EDD3E
+ .4byte Unknown_83EDD5E
+ .4byte Unknown_83EDD7E
+
+ .align 2
+gUnknown_083EDDAC:: @ 83EDDAC
+ .4byte gUnknown_08E95A18 + 32
+
+ .align 1
+Palette_83EDDB0:
+ .incbin "graphics/slot_machine/83EDDB0.gbapal"
+
+ .align 1
+Palette_83EDDD0:
+ .incbin "graphics/slot_machine/83EDDD0.gbapal"
+
+ .align 1
+Palette_83EDDF0:
+ .incbin "graphics/slot_machine/83EDDF0.gbapal"
+
+ .align 2
+gUnknown_083EDE10:: @ 83EDE10
+ .4byte Palette_83EDDB0
+ .4byte Palette_83EDDD0
+ .4byte Palette_83EDDF0
+ .4byte gSlotMachineSpritePalette6
+
+ .align 2
+gUnknown_083EDE20:: @ 83EDE20
+ .4byte gSlotMachineSpritePalette6
+
+ .align 1
+gPalette_83EDE24:: @ 83EDE24
+ .incbin "graphics/slot_machine/83EDE24_pal.bin"
+
+ .align 2
+gSlotMachineSpritePalettes:: @ 83EDE44
+ obj_pal gSlotMachineSpritePalette0, 0
+ obj_pal gSlotMachineSpritePalette1, 1
+ obj_pal gSlotMachineSpritePalette2, 2
+ obj_pal gSlotMachineSpritePalette3, 3
+ obj_pal gSlotMachineSpritePalette4, 4
+ obj_pal gSlotMachineSpritePalette5, 5
+ obj_pal gSlotMachineSpritePalette6, 6
+ obj_pal gSlotMachineSpritePalette4, 7
+ null_obj_pal
+
+ .align 2
+gUnknown_083EDE8C:: @ 83EDE8C
+ .incbin "graphics/slot_machine/reel_time.4bpp.lz"
+
+ .align 2
+gReelTimeWindowTilemap:: @ 83EEFE0
+ .incbin "graphics/slot_machine/reel_time_window_map.bin"
diff --git a/data/sound_check_menu.s b/data/sound_check_menu.s
new file mode 100644
index 000000000..48a24a0d0
--- /dev/null
+++ b/data/sound_check_menu.s
@@ -0,0 +1,99 @@
+ .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
+ .incbin "baserom.gba", 0x003d02d9, 0xd
+
+gDebugText_UpDown:: @ 83D02E6
+ .string "L‥UP R‥DOWN$"
+
+gDebugText_DriverTest:: @ 83D02F2
+ .string "R‥DRIVER-TEST$"
+
+gUnknown_083D0300:: @ 83D0300
+ .incbin "baserom.gba", 0x003d0300, 0x12
+
+gUnknown_083D0312:: @ 83D0312
+ .incbin "baserom.gba", 0x003d0312, 0xa
+
+gUnknown_083D031C:: @ 83D031C
+ .incbin "baserom.gba", 0x003d031c, 0xb
+
+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
+
+gUnknown_083D039C:: @ 83D039C
+ .incbin "baserom.gba", 0x003d039c, 0x40
+
+gUnknown_083D03DC:: @ 83D03DC
+ .string "▶$"
+
+gUnknown_083D03DE:: @ 83D03DE
+ .string " $"
+
+gUnknown_083D03E0:: @ 83D03E0
+ .incbin "baserom.gba", 0x003d03e0, 0x18
+
+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 852372ce0..46fb14058 100644
--- a/data/specials.inc
+++ b/data/specials.inc
@@ -39,8 +39,8 @@ gSpecials::
.4byte sub_8083614
.4byte GetLinkPartnerNames
.4byte sub_810DB28
- .4byte sub_8047A40
- .4byte copy_player_party_from_sav1
+ .4byte SavePlayerParty
+ .4byte LoadPlayerParty
.4byte sub_80C5568
.4byte sub_8083BDC
.4byte FieldObjectInteractionGetBerryTreeData
@@ -50,7 +50,7 @@ gSpecials::
.4byte FieldObjectInteractionRemoveBerryTree
.4byte FieldObjectInteractionWaterBerryTree
.4byte PlayerHasBerries
- .4byte sub_80B4940
+ .4byte IsEnigmaBerryValid
.4byte sub_8082558
.4byte sub_80826D8
.4byte sub_8082718
@@ -60,7 +60,7 @@ gSpecials::
.4byte sub_8082C68
.4byte sub_8082C9C
.4byte sub_80826B0
- .4byte sub_8096100
+ .4byte ShowPokemonStorageSystem
.4byte CheckForAlivePartyMons
.4byte TurnOffTVScreen
.4byte DoTVShow
@@ -154,10 +154,10 @@ gSpecials::
.4byte CableCarWarp
.4byte sub_8123218
.4byte sub_8053E90
- .4byte sub_806A460
+ .4byte StartWallClock
.4byte sub_810D6B8
- .4byte sub_8082168
- .4byte sub_8081AFC
+ .4byte ChooseStarter
+ .4byte StartBattle_WallyTutorial
.4byte sub_80BF9F8
.4byte sub_80F9A0C
.4byte sub_810CA00
@@ -199,7 +199,7 @@ gSpecials::
.4byte ShowLinkBattleRecords
.4byte sub_80B7CE8
.4byte sub_80B7D0C
- .4byte DoWhiteOut
+ .4byte ExecuteWhiteOut
.4byte sp0C8_whiteout_maybe
.4byte sub_80C8040
.4byte sub_80C8080
@@ -257,12 +257,12 @@ gSpecials::
.4byte sub_804E174
.4byte sub_804DB2C
.4byte GetWeekCount
- .4byte sub_8145AEC
+ .4byte RetrieveLotteryNumber
.4byte PickLotteryCornerTicket
.4byte ShowBerryBlenderRecordWindow
.4byte ResetTrickHouseEndRoomFlag
.4byte SetTrickHouseEndRoomFlag
- .4byte sp109_CreatePCMenu
+ .4byte TryCreatePCMenu
.4byte AccessHallOfFamePC
.4byte sub_810D6A4
.4byte CheckLeadMonCool
@@ -279,8 +279,8 @@ gSpecials::
.4byte RemoveCameraDummy
.4byte GetPokeblockNameByMonNature
.4byte GetSecretBaseNearbyMapName
- .4byte sub_8147478
- .4byte sub_814768C
+ .4byte CheckRelicanthWailord
+ .4byte DoBrailleWait
.4byte sub_80818A4
.4byte sub_80818FC
.4byte ShowBattleTowerRecords
@@ -305,17 +305,17 @@ gSpecials::
.4byte IsStarterInParty
.4byte sub_80BC224
.4byte CheckFreePokemonStorageSpace
- .4byte sub_81477B4
+ .4byte DoSealedChamberShakingEffect1
.4byte sub_810E944
.4byte GetShieldToyTVDecorationInfo
.4byte IsPokerusInParty
.4byte sub_8069D78
.4byte sub_810F758
- .4byte sub_8081BF8
- .4byte sub_8081BB8
- .4byte sub_8081C50
+ .4byte StartBattle_GroudonKyogre
+ .4byte StartBattle_Rayquaza
+ .4byte StartBattle_Regi
.4byte sub_8082524
- .4byte sub_81477F0
+ .4byte DoSealedChamberShakingEffect2
.4byte sub_810F828
.4byte sub_807E25C
.4byte sp13E_warp_to_last_warp
@@ -323,7 +323,7 @@ gSpecials::
.4byte ShowContestEntryMonPic
.4byte sub_80C5164
.4byte sub_8134AB4
- .4byte sub_8081B78
+ .4byte StartBattle_SouthernIsland
.4byte SetRoute119Weather
.4byte SetRoute123Weather
.4byte ScriptGetMultiplayerId
@@ -331,7 +331,7 @@ gSpecials::
.4byte sub_80FA148
.4byte sub_810F8FC
.4byte sub_80BC50C
- .4byte copy_bags_and_unk_data_from_save_blocks
+ .4byte LoadPlayerBag
.4byte sub_8081924
.4byte sub_810F950
.4byte sub_810F908
diff --git a/data/starter_choose.s b/data/starter_choose.s
new file mode 100644
index 000000000..679f0f4d0
--- /dev/null
+++ b/data/starter_choose.s
@@ -0,0 +1,167 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+ .align 2
+gBirchBagGrassPal:: @ 83F62EC
+ .incbin "graphics/misc/birch_bag.gbapal"
+ .incbin "graphics/misc/birch_grass.gbapal"
+
+ .align 2
+gBirchBallarrow_Pal::
+ .incbin "graphics/misc/birch_ballarrow.gbapal"
+
+ .align 2
+gBirchCircle_Pal::
+ .incbin "graphics/misc/birch_circle.gbapal"
+
+ .align 2
+gBirchBagTilemap:: @ 83F636C
+ .incbin "graphics/misc/birch_bag_map.bin.lz"
+
+ .align 2
+gBirchGrassTilemap:: @ 83F64F8
+ .incbin "graphics/misc/birch_grass_map.bin.lz"
+
+ .align 2
+gBirchHelpGfx:: @ 83F66F0
+ .incbin "graphics/misc/birch_help.4bpp.lz"
+
+ .align 2
+gBirchBallarrow_Gfx::
+ .incbin "graphics/misc/birch_ballarrow.4bpp.lz"
+
+ .align 2
+gBirchCircle_Gfx::
+ .incbin "graphics/misc/birch_circle.4bpp.lz"
+
+gStarterChoose_PokeballCoords:: @ 83F76B8
+ .byte 60, 64
+ .byte 120, 88
+ .byte 180, 64
+
+gStarterChoose_LabelCoords:: @ 83F76BE
+ .byte 0, 9
+ .byte 16, 10
+ .byte 8, 4
+
+ .align 1
+gStarterMons:: @ 83F76C4
+ .2byte SPECIES_TREECKO
+ .2byte SPECIES_TORCHIC
+ .2byte SPECIES_MUDKIP
+ .2byte 0
+
+ .align 2
+gOamData_83F76CC:: @ 83F76CC
+ .2byte 0x00A0
+ .2byte 0x8000
+ .2byte 0x0400
+
+ .align 2
+gOamData_83F76D4:: @ 83F76D4
+ .2byte 0x00A0
+ .2byte 0x8000
+ .2byte 0x0400
+
+ .align 2
+gOamData_83F76DC:: @ 83F76DC
+ .2byte 0x03A0
+ .2byte 0xC000
+ .2byte 0x0400
+
+ .align 2
+gUnknown_083F76E4:: @ 83F76E4
+ .incbin "baserom.gba", 0x003f76e4, 0x8
+
+ .align 2
+gSpriteAnim_83F76EC:: @ 83F76EC
+ obj_image_anim_frame 48, 30
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83F76F4:: @ 83F76F4
+ obj_image_anim_frame 0, 30
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83F76FC:: @ 83F76FC
+ obj_image_anim_frame 16, 4
+ obj_image_anim_frame 0, 4
+ obj_image_anim_frame 32, 4
+ obj_image_anim_frame 0, 4
+ obj_image_anim_frame 16, 4
+ obj_image_anim_frame 0, 4
+ obj_image_anim_frame 32, 4
+ obj_image_anim_frame 0, 4
+ obj_image_anim_frame 0, 32
+ obj_image_anim_frame 16, 8
+ obj_image_anim_frame 0, 8
+ obj_image_anim_frame 32, 8
+ obj_image_anim_frame 0, 8
+ obj_image_anim_frame 16, 8
+ obj_image_anim_frame 0, 8
+ obj_image_anim_frame 32, 8
+ obj_image_anim_frame 0, 8
+ obj_image_anim_jump 0
+
+ .align 2
+gSpriteAnim_83F7744:: @ 83F7744
+ obj_image_anim_frame 0, 8
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_83F774C:: @ 83F774C
+ .4byte gSpriteAnim_83F76EC
+
+ .align 2
+gSpriteAnimTable_83F7750:: @ 83F7750
+ .4byte gSpriteAnim_83F76F4
+ .4byte gSpriteAnim_83F76FC
+
+ .align 2
+gSpriteAnimTable_83F7758:: @ 83F7758
+ .4byte gSpriteAnim_83F7744
+
+Unknown_83F775C:
+ .incbin "baserom.gba", 0x003f775c, 0x18
+
+ .align 2
+gSpriteAffineAnim_83F7774:: @ 83F7774
+ obj_rot_scal_anim_frame 0x14, 0x14, 0, 0
+ obj_rot_scal_anim_frame 0x14, 0x14, 0, 15
+ obj_rot_scal_anim_end
+
+ .align 2
+gUnknown_083F778C:: @ 83F778C
+ .4byte Unknown_83F775C
+
+ .align 2
+gSpriteAffineAnimTable_83F7790:: @ 83F7790
+ .4byte gSpriteAffineAnim_83F7774
+
+gUnknown_083F7794:: @ 83F7794
+ obj_tiles gBirchBallarrow_Gfx, 0x0800, 0x1000
+ .space 8
+
+gUnknown_083F77A4:: @ 83F77A4
+ obj_tiles gBirchCircle_Gfx, 0x0800, 0x1001
+ .space 8
+
+gUnknown_083F77B4:: @ 83F77B4
+ obj_pal gBirchBallarrow_Pal, 0x1000
+ obj_pal gBirchCircle_Pal, 0x1001
+ .space 8
+
+ .align 2
+gSpriteTemplate_83F77CC:: @ 83F77CC
+ spr_template 4096, 4096, gOamData_83F76CC, gSpriteAnimTable_83F774C, NULL, gDummySpriteAffineAnimTable, sub_810A62C
+
+ .align 2
+gSpriteTemplate_83F77E4:: @ 83F77E4
+ spr_template 4096, 4096, gOamData_83F76D4, gSpriteAnimTable_83F7750, NULL, gDummySpriteAffineAnimTable, sub_810A68C
+
+ .align 2
+gSpriteTemplate_83F77FC:: @ 83F77FC
+ spr_template 4097, 4097, gOamData_83F76DC, gSpriteAnimTable_83F7758, NULL, gSpriteAffineAnimTable_83F7790, StarterPokemonSpriteAnimCallback
diff --git a/data/strings.s b/data/strings.s
new file mode 100644
index 000000000..f83ad62d0
--- /dev/null
+++ b/data/strings.s
@@ -0,0 +1,2041 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+gExpandedPlaceholder_Empty:: @ 840DC80
+ .string "$"
+
+gExpandedPlaceholder_Kun:: @ 840DC81
+ .string "$"
+
+gExpandedPlaceholder_Chan:: @ 840DC82
+ .string "$"
+
+gExpandedPlaceholder_Sapphire:: @ 840DC83
+ .string "SAPPHIRE$"
+
+gExpandedPlaceholder_Ruby:: @ 840DC8C
+ .string "RUBY$"
+
+gExpandedPlaceholder_Aqua:: @ 840DC91
+ .string "AQUA$"
+
+gExpandedPlaceholder_Magma:: @ 840DC96
+ .string "MAGMA$"
+
+gExpandedPlaceholder_Archie:: @ 840DC9C
+ .string "ARCHIE$"
+
+gExpandedPlaceholder_Maxie:: @ 840DCA3
+ .string "MAXIE$"
+
+gExpandedPlaceholder_Kyogre:: @ 840DCA9
+ .string "KYOGRE$"
+
+gExpandedPlaceholder_Groudon:: @ 840DCB0
+ .string "GROUDON$"
+
+gExpandedPlaceholder_Brendan:: @ 840DCB8
+ .string "BRENDAN$"
+
+gExpandedPlaceholder_May:: @ 840DCC0
+ .string "MAY$"
+
+gSystemText_Egg:: @ 840DCC4
+ .string "EGG$"
+
+gSystemText_Pokemon2:: @ 840DCC8
+ .string "POKéMON$"
+
+gMainMenuString_NewGame:: @ 840DCD0
+ .string "NEW GAME$"
+
+gMainMenuString_Continue:: @ 840DCD9
+ .string "CONTINUE$"
+
+gMainMenuString_Option:: @ 840DCE2
+ .string "OPTION$"
+
+gMainMenuString_MysteryEvents:: @ 840DCE9
+ .string "MYSTERY EVENTS$"
+
+SystemText_UpdatingSaveExternal::
+ .string "Updating save file using external\ndata. Please wait.$"
+
+SystemText_SaveUpdated::
+ .string "The save file has been updated.$"
+
+SystemText_SaveUpdatedExchangeBackup::
+ .string "The save file has been updated.\pFurther game data cannot be saved\nto the backup memory.\pPlease exchange the backup memory.\pFor details, please contact the\nNintendo Service Center.$"
+
+SystemText_SaveNotUpdated::
+ .string "The save file could not be updated.\pPlease exchange the backup\nmemory.\pFor details, please contact the\nNintendo Service Center.$"
+
+gSaveFileCorruptMessage:: @ 840DE81
+ .string "The save file is corrupt. The\nprevious save file will be loaded.$"
+
+gSaveFileDeletedMessage:: @ 840DEC2
+ .string " The save file has been deleted...$"
+
+gBoardNotInstalledMessage:: @ 840DEE5
+ .string "The 1M sub-circuit board is\nnot installed.$"
+
+gBatteryDryMessage:: @ 840DF10
+ .string "The internal battery has run dry.\nThe game can be played.\pHowever, clock-based events will\nno longer occur.$"
+
+gMainMenuString_Player:: @ 840DF7C
+ .string "PLAYER$"
+
+gMainMenuString_Pokedex:: @ 840DF83
+ .string "POKéDEX$"
+
+gMainMenuString_Time:: @ 840DF8B
+ .string "TIME$"
+
+gMainMenuString_Badges:: @ 840DF90
+ .string "BADGES$"
+
+gBirchText_Boy::
+ .string "BOY$"
+gBirchText_Girl::
+ .string "GIRL$"
+gBirchText_NewName::
+ .string "NEW NAME$"
+
+gDefaultBoyName1::
+ .ifdef SAPPHIRE
+ .string "SEAN$"
+ .else
+ .string "LANDON$"
+ .endif
+gDefaultBoyName2::
+ .string "TERRY$"
+gDefaultBoyName3::
+ .string "SETH$"
+gDefaultBoyName4::
+ .string "TOM$"
+
+gDefaultGirlName1::
+ .ifdef SAPPHIRE
+ .string "MARINA$"
+ .else
+ .string "TERRA$"
+ .endif
+gDefaultGirlName2::
+ .string "KIMMY$"
+gDefaultGirlName3::
+ .string "NICOLA$"
+gDefaultGirlName4::
+ .string "SARA$"
+
+gSystemText_IntroWeCall::
+ .string "This is what we call\na POKéMON.$"
+
+gSystemText_NewPara:: @ 840DFF7
+ .string "\p$"
+
+gDexText_UnknownPoke:: @ 840DFF9
+ .string " ????? POKéMON$" @ why 12 spaces?
+
+gDexText_UnknownHeight:: @ 840E013
+ .string "{CLEAR_TO 0x0C}??’??”$"
+
+gDexText_UnknownWeight:: @ 840E01D
+ .string "????.? lbs.$"
+ .string "$"
+
+gDexText_CryOf:: @ 840E02A
+ .string "{CLEAR_TO 2}CRY OF$"
+ .string "$"
+
+gDexText_SizeComparedTo:: @ 840E035
+ .string "SIZE COMPARED TO $"
+
+gDexText_RegisterComplete:: @ 840E047
+ .string "POKéDEX registration completed.$"
+
+gDexText_Searching:: @ 840E067
+ .string "Searching...\nPlease wait.$"
+
+gDexText_SearchComplete:: @ 840E081
+ .string "Search completed.$"
+
+gDexText_NoMatching:: @ 840E093
+ .string "No matching POKéMON were found.$"
+
+DexText_SearchForPoke::
+ .string "Search for POKéMON based on\nselected parameters.$"
+DexText_SwitchDex::
+ .string "Switch POKéDEX listings.$"
+DexText_ReturnToDex::
+ .string "Return to the POKéDEX.$"
+DexText_SelectDexMode::
+ .string "Select the POKéDEX mode.$"
+DexText_SelectDexList::
+ .string "Select the POKéDEX listing mode.$"
+DexText_ListByABC::
+ .string "List by the first letter in the name.\n/Spotted POKéMON only.$"
+DexText_ListByColor::
+ .string "List by body color.\n/Spotted POKéMON only.$"
+DexText_ListByType::
+ .string "List by type.\n/Owned POKéMON only.$"
+DexText_ExecuteSearchSwitch::
+ .string "Execute search/switch.$"
+DexText_HoennDex::
+ .string "HOENN DEX$"
+DexText_NationalDex::
+ .string "NATIONAL DEX$"
+DexText_NumericalMode::
+ .string "NUMERICAL MODE$"
+DexText_ABCMode::
+ .string "A TO Z MODE$"
+DexText_HeaviestMode::
+ .string "HEAVIEST MODE$"
+DexText_LightestMode::
+ .string "LIGHTEST MODE$"
+DexText_TallestMode::
+ .string "TALLEST MODE$"
+DexText_SmallestMode::
+ .string "SMALLEST MODE$"
+DexText_ABC::
+ .string "ABC$"
+DexText_DEF::
+ .string "DEF$"
+DexText_GHI::
+ .string "GHI$"
+DexText_JKL::
+ .string "JKL$"
+DexText_MNO::
+ .string "MNO$"
+DexText_PQR::
+ .string "PQR$"
+DexText_STU::
+ .string "STU$"
+DexText_VWX::
+ .string "VWX$"
+DexText_YZ::
+ .string "YZ$"
+DexText_Red::
+ .string "RED$"
+DexText_Blue::
+ .string "BLUE$"
+DexText_Yellow::
+ .string "YELLOW$"
+DexText_Green::
+ .string "GREEN$"
+DexText_Black::
+ .string "BLACK$"
+DexText_Brown::
+ .string "BROWN$"
+DexText_Purple::
+ .string "PURPLE$"
+DexText_Gray::
+ .string "GRAY$"
+DexText_White::
+ .string "WHITE$"
+DexText_Pink::
+ .string "PINK$"
+DexText_HoennDex2::
+ .string "HOENN region’s POKéDEX$"
+DexText_NationalDex2::
+ .string "National edition POKéDEX$"
+DexText_ListByNumber::
+ .string "POKéMON are listed according to their\nnumber.$"
+DexText_ListByABC2::
+ .string "Spotted and owned POKéMON are listed\nalphabetically.$"
+DexText_ListByHeavyToLightest::
+ .string "Owned POKéMON are listed from the\nheaviest to the lightest.$"
+DexText_ListByLightToHeaviest::
+ .string "Owned POKéMON are listed from the\nlightest to the heaviest.$"
+DexText_ListByTallToSmallest::
+ .string "Owned POKéMON are listed from the\ntallest to the smallest.$"
+DexText_ListBySmallToTallest::
+ .string "Owned POKéMON are listed from the\nsmallest to the tallest.$"
+DexText_Terminator5::
+ .string "$"
+DexText_DontSpecify::
+ .string "DON’T SPECIFY.$"
+DexText_None::
+ .string "NONE$"
+DexText_RightPointingTriangle::
+ .string "▶$" @ right-pointing triangle
+DexText_Terminator6::
+ .string " $"
+
+gMenuText_WelcomeToHOFAndDexRating:: @ 840E44F
+ .string "Welcome to the HALL OF FAME!$"
+ .string "Spotted POKéMON: {STR_VAR_1}!\nOwned POKéMON: {STR_VAR_2}!\pPROF. BIRCH’s POKéDEX rating!\pPROF. BIRCH: Let’s see...\p$"
+
+gMenuText_HOFSaving:: @ 840E4CD
+ .string "SAVING...\nDON’T TURN OFF THE POWER.$"
+
+gMenuText_HOFCorrupt:: @ 840E4F1
+ .string "The HALL OF FAME data is corrupt.$"
+
+gMenuText_HOFNumber:: @ 840E513
+ .string "HALL OF FAME No. $"
+
+gMenuText_HOFCongratulations:: @ 840E525
+ .string "LEAGUE CHAMPION!\nCONGRATULATIONS!$"
+
+gOtherText_Number2:: @ 840E547
+ .string "No. $"
+
+gOtherText_Level3:: @ 840E54C
+ .string "Lv. $"
+
+gOtherText_IDNumber:: @ 840E551
+ .string "IDNo. /$"
+
+gOtherText_Name:: @ 840E559
+ .string "NAME /$"
+
+gOtherText_IDNumber2:: @ 840E560
+ .string "IDNo. /$"
+
+gOtherText_BirchInTrouble:: @ 840E568
+ .string "{HIGHLIGHT WHITE2}{COLOR DARK_GREY}PROF. BIRCH is in trouble!\nRelease a POKéMON and rescue him!$"
+
+gOtherText_DoYouChoosePoke:: @ 840E5AB
+ .string "{HIGHLIGHT WHITE2}{COLOR DARK_GREY}Do you choose this POKéMON?$"
+
+gOtherText_Poke:: @ 840E5CD
+ .string "POKéMON$"
+
+gSystemText_SaveErrorExchangeBackup:: @ 840E5D5
+ .string "Save error.\pPlease exchange the\nbackup memory.$"
+
+gOtherText_FlyToWhere:: @ 840E604
+ .string "FLY to where?$"
+
+OtherText_Use::
+ .string "USE$"
+OtherText_Toss::
+ .string "TOSS$"
+OtherText_Register::
+ .string "REGISTER$"
+OtherText_Give2::
+ .string "GIVE$"
+OtherText_CheckTag::
+ .string "CHECK TAG$"
+OtherText_Confirm::
+ .string "CONFIRM$"
+
+gOtherText_Walk:: @ 840E63B
+ .string "WALK$"
+
+gUnknownText_Exit:: @ 840E640
+ .string "EXIT$"
+
+gOtherText_CancelNoTerminator:: @ 840E645
+ .string "CANCEL$"
+
+gOtherText_CancelWithTerminator:: @ 840E64C
+ .string "$CANCEL$"
+
+OtherText_Item::
+ .string "ITEM$"
+OtherText_Mail::
+ .string "MAIL$"
+OtherText_Take2::
+ .string "TAKE$"
+OtherText_Store::
+ .string "STORE$"
+
+gOtherText_Check:: @ 840E669
+ .string "CHECK$"
+
+gOtherText_None:: @ 840E66F
+ .string "NONE$"
+
+gOtherText_ThreeQuestions2:: @ 840E674
+ .string "???$"
+
+gOtherText_FiveQuestionsAndSlash:: @ 840E678
+ .string "?????$"
+ .string "/$"
+
+gOtherText_OneDash:: @ 840E680
+ .string "-$"
+
+gOtherText_TwoDashes:: @ 840E682
+ .string "--$"
+
+gOtherText_ThreeDashes2:: @ 840E685
+ .string "---$"
+
+gOtherText_MaleSymbol2:: @ 840E689
+ .string "♂$"
+
+gOtherText_FemaleSymbolAndLv:: @ 840E68B
+ .string "♀$"
+ .string "Lv.$"
+
+gOtherText_TallPlusAndRightArrow:: @ 840E691
+ .string "{TALL_PLUS}$"
+ .string "{RIGHT_ARROW}$"
+
+gMenuText_GoBackToPrev:: @ 840E697
+ .string "Go back to the\nprevious menu.$"
+
+gOtherText_WhatWillYouDo:: @ 840E6B5
+ .string "What would you like to do?$"
+
+gOtherText_xString1:: @ 840E6D0
+ .string "×{STR_VAR_1}$"
+
+gOtherText_Berry2:: @ 840E6D4
+ .string " BERRY$"
+
+gOtherText_Coins2:: @ 840E6DB
+ .string "{STR_VAR_1} COINS$"
+
+gOtherText_CloseBag:: @ 840E6E4
+ .string "CLOSE BAG$"
+
+OtherText_TheField3::
+ .string "the field.$"
+OtherText_TheBattle::
+ .string "the battle.$"
+OtherText_ThePokeList::
+ .string "the POKéMON LIST.$"
+OtherText_TheShop::
+ .string "the shop.$"
+OtherText_TheField::
+ .string "the field.$"
+OtherText_TheField2::
+ .string "the field.$"
+OtherText_ThePC::
+ .string "the PC.$"
+
+ .align 2
+gUnknown_0840E740:: @ 840E740
+ .4byte OtherText_TheField3
+ .4byte OtherText_TheBattle
+ .4byte OtherText_ThePokeList
+ .4byte OtherText_TheShop
+ .4byte OtherText_TheField
+ .4byte OtherText_TheField2
+ .4byte OtherText_ThePC
+
+gOtherText_ReturnTo:: @ 840E75C
+ .string "Return to$"
+
+gOtherText_WhatWillYouDo2:: @ 840E766
+ .string "What would you\nlike to do?$"
+
+gOtherText_CantWriteMail:: @ 840E781
+ .string "You can’t write\nMAIL here.$"
+
+gOtherText_NoPokemon:: @ 840E79C
+ .string "There is no\nPOKéMON.{PAUSE_UNTIL_PRESS}$"
+
+gOtherText_SwitchWhichItem:: @ 840E7B3
+ .string "Switch with which\nitem?$"
+
+gOtherText_CantBeHeld:: @ 840E7CB
+ .string "{STR_VAR_1} can’t be held.$"
+
+gOtherText_CantBeHeldHere:: @ 840E7DD
+ .string "{STR_VAR_1} can’t be held here.$"
+
+gOtherText_HowManyToDeposit:: @ 840E7F4
+ .string "How many do you\nwant to deposit?$"
+
+gOtherText_DepositedItems:: @ 840E815
+ .string "Deposited {STR_VAR_2}\n{STR_VAR_1}(s).$"
+
+gOtherText_NoRoomForItems:: @ 840E829
+ .string "There’s no room to\nstore items.$"
+
+gOtherText_CantStoreSomeoneItem:: @ 840E849
+ .string "You can’t store\nsomeone else’s item\nin the PC.$"
+
+gOtherText_TooImportant:: @ 840E878
+ .string "That’s much too\nimportant to toss\nout!$"
+
+gOtherText_HowManyToToss:: @ 840E89F
+ .string "Toss out how many?$"
+
+gOtherText_ThrewAwayItem:: @ 840E8B2
+ .string "Threw away {STR_VAR_2}\n{STR_VAR_1}(s).$"
+
+gOtherText_OkayToThrowAwayPrompt:: @ 840E8C7
+ .string "Is it okay to\nthrow away {STR_VAR_2}\n{STR_VAR_1}(s)?$"
+
+gOtherText_DadsAdvice:: @ 840E8EA
+ .string "DAD’s advice...\n{PLAYER}, there’s a time and place for\leverything!{PAUSE_UNTIL_PRESS}$"
+
+gOtherText_CantGetOffBike:: @ 840E929
+ .string "You can’t dismount your BIKE here.{PAUSE_UNTIL_PRESS}$"
+
+gOtherText_ItemfinderResponding:: @ 840E94E
+ .string "Oh!\nThe machine’s responding!\pThere’s an item buried around here!{PAUSE_UNTIL_PRESS}$"
+
+gOtherText_ItemfinderItemUnderfoot:: @ 840E992
+ .string "The machine’s indicating something\nright underfoot!{PAUSE_UNTIL_PRESS}$"
+
+gOtherText_NoResponse:: @ 840E9C8
+ .string "... ... ... ... Nope!\nThere’s no response.{PAUSE_UNTIL_PRESS}$"
+
+gOtherText_Coins3:: @ 840E9F5
+ .string "Your COINS:\n{STR_VAR_1}{PAUSE_UNTIL_PRESS}$"
+
+gOtherText_BootedTM:: @ 840EA06
+ .string "Booted up a TM.$"
+
+gOtherText_BootedHM:: @ 840EA16
+ .string "Booted up an HM.$"
+
+gOtherText_ContainsMove:: @ 840EA27
+ .string "It contained\n{STR_VAR_1}.\pTeach {STR_VAR_1}\nto a POKéMON?$"
+
+gOtherText_UsedItem:: @ 840EA4F
+ .string "{PLAYER} used the\n{STR_VAR_2}.{PAUSE_UNTIL_PRESS}$"
+
+gOtherText_RepelLingers:: @ 840EA61
+ .string "But the effects of a REPEL lingered\nfrom earlier.{PAUSE_UNTIL_PRESS}$"
+
+gOtherText_UsedFlute:: @ 840EA95
+ .string "{PLAYER} used the\n{STR_VAR_2}.\pWild POKéMON will be lured.{PAUSE_UNTIL_PRESS}$"
+
+gOtherText_UsedRepel:: @ 840EAC3
+ .string "{PLAYER} used the\n{STR_VAR_2}.\pWild POKéMON will be repelled.{PAUSE_UNTIL_PRESS}$"
+
+gOtherText_BoxIsFull:: @ 840EAF4
+ .string "The BOX is full.{PAUSE_UNTIL_PRESS}$"
+
+gOtherText_Size:: @ 840EB07
+ .string "SIZE /$"
+
+gOtherText_Firm:: @ 840EB0E
+ .string "FIRM /$"
+
+gContestStatsText_Unknown1:: @ 840EB15
+ .string "{STR_VAR_1}.{STR_VAR_2}”$"
+
+ContestStatsText_VerySoft::
+ .string "Very soft$"
+ContestStatsText_Soft::
+ .string "Soft$"
+ContestStatsText_Hard::
+ .string "Hard$"
+ContestStatsText_VeryHard::
+ .string "Very hard$"
+ContestStatsText_SuperHard::
+ .string "Super hard$"
+ContestStatsText_RedPokeBlock::
+ .string "RED {POKEBLOCK}$"
+ContestStatsText_BluePokeBlock::
+ .string "BLUE {POKEBLOCK}$"
+ContestStatsText_PinkPokeBlock::
+ .string "PINK {POKEBLOCK}$"
+ContestStatsText_GreenPokeBlock::
+ .string "GREEN {POKEBLOCK}$"
+ContestStatsText_YellowPokeBlock::
+ .string "YELLOW {POKEBLOCK}$"
+ContestStatsText_PurplePokeBlock::
+ .string "PURPLE {POKEBLOCK}$"
+ContestStatsText_IndigoPokeBlock::
+ .string "INDIGO {POKEBLOCK}$"
+ContestStatsText_BrownPokeBlock::
+ .string "BROWN {POKEBLOCK}$"
+ContestStatsText_LiteBluePokeBlock::
+ .string "LITEBLUE {POKEBLOCK}$"
+ContestStatsText_OlivePokeBlock::
+ .string "OLIVE {POKEBLOCK}$"
+ContestStatsText_GrayPokeBlock::
+ .string "GRAY {POKEBLOCK}$"
+ContestStatsText_BlackPokeBlock::
+ .string "BLACK {POKEBLOCK}$"
+ContestStatsText_WhitePokeBlock::
+ .string "WHITE {POKEBLOCK}$"
+ContestStatsText_GoldPokeBlock::
+ .string "GOLD {POKEBLOCK}$"
+
+gContestStatsText_Spicy:: @ 840EBED
+ .string "SPICY$"
+
+gContestStatsText_Dry:: @ 840EBF3
+ .string "DRY$"
+
+gContestStatsText_Sweet:: @ 840EBF7
+ .string "SWEET$"
+
+gContestStatsText_Bitter:: @ 840EBFD
+ .string "BITTER$"
+
+gContestStatsText_Sour:: @ 840EC04
+ .string "SOUR$"
+ .string "TASTY$" @ tasty is probably unused, but feel isn't.
+ .string "FEEL$"
+
+gContestStatsText_StowCase:: @ 840EC14
+ .string "Stow CASE.$"
+
+gContestStatsText_ThrowAwayPrompt:: @ 840EC1F
+ .string "Throw away this\n{STR_VAR_1}?$"
+
+gContestStatsText_WasThrownAway:: @ 840EC33
+ .string "The {STR_VAR_1}\nwas thrown away.$"
+
+gContestStatsText_NormallyAte:: @ 840EC4B
+ .string "{STR_VAR_1} ate the\n{STR_VAR_2}.{PAUSE_UNTIL_PRESS}$"
+
+gContestStatsText_HappilyAte:: @ 840EC5C
+ .string "{STR_VAR_1} happily ate the\n{STR_VAR_2}.{PAUSE_UNTIL_PRESS}$"
+
+gContestStatsText_DisdainfullyAte:: @ 840EC75
+ .string "{STR_VAR_1} disdainfully ate the\n{STR_VAR_2}.{PAUSE_UNTIL_PRESS}$"
+
+MartText_Buy::
+ .string "BUY$"
+MartText_Sell::
+ .string "SELL$"
+MartText_Quit2::
+ .string "QUIT$"
+
+gOtherText_QuitShopping:: @ 840ECA1
+ .string "Quit shopping.$"
+
+gOtherText_HowManyYouWant:: @ 840ECB0
+ .string "{STR_VAR_1}? Certainly.\nHow many would you like?$"
+
+gOtherText_ThatWillBe:: @ 840ECD8
+ .string "{STR_VAR_1}? And you wanted {STR_VAR_2}?\nThat will be ¥{STR_VAR_3}.$"
+
+gOtherText_ThatWillBe2:: @ 840ED01
+ .string "{STR_VAR_1}, is it?\nThat’ll be ¥{STR_VAR_2}. Do you want it?$"
+
+gOtherText_ThatWillBe3:: @ 840ED2C
+ .string "You wanted {STR_VAR_1}?\nThat’ll be ¥{STR_VAR_2}. Will that be okay?$"
+
+gOtherText_HereYouGo:: @ 840ED5E
+ .string "Here you go!\nThank you very much.$"
+
+gOtherText_HereYouGo2:: @ 840ED80
+ .string "Thank you!\nI’ll send it to your home PC.$"
+
+gOtherText_HereYouGo3:: @ 840EDA9
+ .string "Thanks!\nI’ll send it to your PC at home.$"
+
+gOtherText_NotEnoughMoney:: @ 840EDD2
+ .string "You don’t have enough money.{PAUSE_UNTIL_PRESS}$"
+
+gOtherText_NoRoomFor:: @ 840EDF1
+ .string "You have no more room for items.{PAUSE_UNTIL_PRESS}$"
+
+gOtherText_SpaceForIsFull:: @ 840EE14
+ .string "The space for {STR_VAR_1} is full.{PAUSE_UNTIL_PRESS}$"
+
+gOtherText_AnythingElse:: @ 840EE30
+ .string "Is there anything else I can help\nyou with?$"
+
+gOtherText_CanIHelpYou:: @ 840EE5C
+ .string "Can I help you with anything else?$"
+
+gOtherText_FreePremierBall:: @ 840EE7F
+ .string "I’ll throw in a PREMIER BALL, too.{PAUSE_UNTIL_PRESS}$"
+
+gOtherText_CantBuyThat:: @ 840EEA4
+ .string "{STR_VAR_2}? Oh, no.\nI can’t buy that.{PAUSE_UNTIL_PRESS}$"
+
+gOtherText_HowManyToSell:: @ 840EEC4
+ .string "{STR_VAR_2}?\nHow many would you like to sell?$"
+
+gOtherText_CanPay:: @ 840EEE9
+ .string "I can pay ¥{STR_VAR_1}.\nWould that be okay?$"
+
+gOtherText_SoldItem:: @ 840EF0C
+ .string "Turned over the {STR_VAR_2}\nand received ¥{STR_VAR_1}.$"
+
+OtherText_Money::
+ .string "¥{STR_VAR_1}$"
+OtherText_Shift::
+ .string "SHIFT$"
+OtherText_SendOut::
+ .string "SEND OUT$"
+OtherText_Switch2::
+ .string "SWITCH$"
+OtherText_Summary::
+ .string "SUMMARY$"
+OtherText_Moves::
+ .string "MOVES$"
+OtherText_Enter2::
+ .string "ENTER$"
+OtherText_NoEntry::
+ .string "NO ENTRY$"
+OtherText_Take::
+ .string "TAKE$"
+OtherText_Read2::
+ .string "READ$"
+
+gOtherText_Hp2:: @ 840EF72
+ .string "HP$"
+
+gOtherText_SpAtk2:: @ 840EF75
+ .string "SP. ATK$"
+
+gOtherText_SpDef2:: @ 840EF7D
+ .string "SP. DEF$"
+
+gOtherText_WontHaveAnyEffect:: @ 840EF85
+ .string "It won’t have any effect.{PAUSE_UNTIL_PRESS}$"
+
+gOtherText_CantUseOnPoke:: @ 840EFA1
+ .if REVISION >= 1
+ .string "This can’t be used on\nthat POKéMON.{PAUSE_UNTIL_PRESS}$"
+ .else
+ .string "This item can’t be used on\nthat POKéMON.{PAUSE_UNTIL_PRESS}$"
+ .endif
+
+gOtherText_CantBeSwitched:: @ 840EFCC
+ .string "{STR_VAR_1} can’t be switched\nout!{PAUSE_UNTIL_PRESS}$"
+
+gOtherText_AlreadyBattle:: @ 840EFE8
+ .string "{STR_VAR_1} is already\nin battle!{PAUSE_UNTIL_PRESS}$"
+
+gOtherText_AlreadySelected:: @ 840F003
+ .string "{STR_VAR_1} has already been\nselected.{PAUSE_UNTIL_PRESS}$"
+
+gOtherText_NoEnergyLeft:: @ 840F023
+ .string "{STR_VAR_1} has no energy\nleft to battle!{PAUSE_UNTIL_PRESS}$"
+
+gOtherText_CantSwitchPokeWithYours:: @ 840F046
+ .string "You can’t switch {STR_VAR_1}’s\nPOKéMON with one of yours!{PAUSE_UNTIL_PRESS}$"
+
+gOtherText_EGGCantBattle:: @ 840F079
+ .string "An EGG can’t battle!{PAUSE_UNTIL_PRESS}$"
+
+gOtherText_CantBeUsedBadge:: @ 840F090
+ .string "This can’t be used until a new\nBADGE is obtained.$"
+
+gOtherText_NoMoreThreePoke:: @ 840F0C2
+ .string "No more than three POKéMON\nmay enter.$"
+
+gOtherText_SendRemovedMailPrompt:: @ 840F0E8
+ .string "Send the removed MAIL to\nyour PC?$"
+
+gOtherText_MailWasSent:: @ 840F10A
+ .string "The MAIL was sent to your PC.{PAUSE_UNTIL_PRESS}$"
+
+gOtherText_MailboxIsFull:: @ 840F12A
+ .string "Your PC’s MAILBOX is full.{PAUSE_UNTIL_PRESS}$"
+
+gOtherText_MailRemovedMessageLost:: @ 840F147
+ .string "If the MAIL is removed, the\nmessage will be lost. Okay?$"
+
+gOtherText_MailMustBeRemoved:: @ 840F17F
+ .string "MAIL must be removed before\nholding an item.{PAUSE_UNTIL_PRESS}$"
+
+gOtherText_WasGivenToHold:: @ 840F1AE
+ .string "{STR_VAR_1} was given the\n{STR_VAR_2} to hold.{PAUSE_UNTIL_PRESS}$"
+
+gOtherText_AlreadyHolding:: @ 840F1CD
+ .string "{STR_VAR_1} is already holding\none {STR_VAR_2}.\pWould you like to switch the\ntwo items?$"
+
+gOtherText_NotHoldingAnything:: @ 840F213
+ .string "{STR_VAR_1} isn’t\nholding anything.{PAUSE_UNTIL_PRESS}$"
+
+gOtherText_ReceivedTheThingFrom:: @ 840F230
+ .string "Received the {STR_VAR_2}\nfrom {STR_VAR_1}.{PAUSE_UNTIL_PRESS}$"
+
+gOtherText_MailTaken:: @ 840F24B
+ .string "MAIL was taken from the\nPOKéMON.{PAUSE_UNTIL_PRESS}$"
+
+gOtherText_TakenAndReplaced:: @ 840F26E
+ .string "The {STR_VAR_2} was taken and\nreplaced with the {STR_VAR_1}.{PAUSE_UNTIL_PRESS}$"
+
+gOtherText_PokeHoldingItemCantMail:: @ 840F29B
+ .string "This POKéMON is holding an item.\nIt cannot hold MAIL.{PAUSE_UNTIL_PRESS}$"
+
+gOtherText_MailTransferredMailbox:: @ 840F2D3
+ .string "MAIL was transferred from\nthe MAILBOX.{PAUSE_UNTIL_PRESS}$"
+
+gOtherText_BagFullCannotRemoveItem:: @ 840F2FC
+ .string "The BAG is full. The POKéMON’s\nitem could not be removed.{PAUSE_UNTIL_PRESS}$"
+
+gOtherText_LearnedMove:: @ 840F338
+ .string "{STR_VAR_1} learned\n{STR_VAR_2}!$"
+
+gOtherText_NotCompatible:: @ 840F347
+ .string "{STR_VAR_1} and {STR_VAR_2}\nare not compatible.\p{STR_VAR_2} can’t be learned.{PAUSE_UNTIL_PRESS}$"
+
+gOtherText_WantsToLearn:: @ 840F37C
+ .string "{STR_VAR_1} wants to learn the\nmove {STR_VAR_2}.\pHowever, {STR_VAR_1} already\nknows four moves.\pShould a move be deleted and\nreplaced with {STR_VAR_2}?$"
+
+gOtherText_StopTryingTo:: @ 840F3F0
+ .string "Stop trying to teach\n{STR_VAR_2}?$"
+
+gOtherText_DidNotLearnMove2:: @ 840F409
+ .string "{STR_VAR_1} did not learn the\nmove {STR_VAR_2}.{PAUSE_UNTIL_PRESS}$"
+
+gOtherText_WhichMoveToForget2:: @ 840F429
+ .string "Which move should be forgotten?{PAUSE_UNTIL_PRESS}$"
+
+gOtherText_ForgetMove123_2:: @ 840F44B
+ .string "{PAUSE 32}1, {PAUSE 15}2, and{PAUSE 15}... {PAUSE 15}... {PAUSE 15}... {PAUSE 15}{PLAY_SE SE_KON}Poof!\p{STR_VAR_1} forgot how to\nuse {STR_VAR_2}.\pAnd...{PAUSE_UNTIL_PRESS}$"
+
+gOtherText_AlreadyKnows:: @ 840F49E
+ .string "{STR_VAR_1} already knows\n{STR_VAR_2}.{PAUSE_UNTIL_PRESS}$"
+
+gOtherText_HPRestoredBy:: @ 840F4B5
+ .string "{STR_VAR_1}’s HP was restored by\n{STR_VAR_2} points.{PAUSE_UNTIL_PRESS}$"
+
+gOtherText_CuredPoisoning:: @ 840F4DA
+ .string "{STR_VAR_1} was cured of its\npoisoning.{PAUSE_UNTIL_PRESS}$"
+
+gOtherText_CuredParalysis:: @ 840F4FB
+ .string "{STR_VAR_1} was cured of\nparalysis.{PAUSE_UNTIL_PRESS}$"
+
+gOtherText_WokeUp:: @ 840F518
+ .string "{STR_VAR_1} woke up.{PAUSE_UNTIL_PRESS}$"
+
+gOtherText_BurnHealed:: @ 840F526
+ .string "{STR_VAR_1}’s burn was healed.{PAUSE_UNTIL_PRESS}$"
+
+gOtherText_ThawedOut:: @ 840F53E
+ .string "{STR_VAR_1} was thawed out.{PAUSE_UNTIL_PRESS}$"
+
+gOtherText_PPRestored:: @ 840F553
+ .string "PP was restored.{PAUSE_UNTIL_PRESS}$"
+
+gOtherText_RegainedHealth:: @ 840F566
+ .string "{STR_VAR_1} regained health.{PAUSE_UNTIL_PRESS}$"
+
+gOtherText_BecameHealthy:: @ 840F57C
+ .string "{STR_VAR_1} became healthy.{PAUSE_UNTIL_PRESS}$"
+
+gOtherText_PPIncreased:: @ 840F591
+ .string "{STR_VAR_1}’s PP increased.{PAUSE_UNTIL_PRESS}$"
+
+gOtherText_ElevatedTo:: @ 840F5A6
+ .string "{STR_VAR_1} was elevated to\nLv. {STR_VAR_2}.$"
+
+gOtherText_WasRaised:: @ 840F5C1
+ .string "{STR_VAR_1}’s {STR_VAR_2} was\nraised.{PAUSE_UNTIL_PRESS}$"
+
+gOtherText_SnapConfusion:: @ 840F5D7
+ .string "{STR_VAR_1} snapped out of its\nconfusion.{PAUSE_UNTIL_PRESS}$"
+
+gOtherText_GotOverLove:: @ 840F5FA
+ .string "{STR_VAR_1} got over its\ninfatuation.{PAUSE_UNTIL_PRESS}$"
+
+OtherText_ChoosePoke::
+ .string "Choose a POKéMON.$"
+OtherText_MovePokeTo::
+ .string "Move to where?$"
+OtherText_TeachWhat::
+ .string "Teach which POKéMON?$"
+OtherText_UseWhat::
+ .string "Use on which POKéMON?$"
+OtherText_GiveWhat::
+ .string "Give to which POKéMON?$"
+OtherText_DoWhat::
+ .string "Do what with {STR_VAR_1}?$"
+OtherText_NothingToCut::
+ .string "There’s nothing to CUT.$"
+OtherText_CantSurf::
+ .string "You can’t SURF here.$"
+OtherText_AlreadySurfing::
+ .string "You’re already SURFING.$"
+OtherText_CantUseThatHere::
+ .string "Can’t use that here.$"
+OtherText_RestoreWhatMove::
+ .string "Restore which move?$"
+OtherText_BoostPP::
+ .string "Boost PP of which move?$"
+OtherText_DoWhatWithItem::
+ .string "Do what with an item?$"
+OtherText_NoPokeForBattle::
+ .string "No POKéMON for battle!$"
+OtherText_ChoosePoke2::
+ .string "Choose a POKéMON.$"
+OtherText_NotEnoughHP::
+ .string "Not enough HP...$"
+OtherText_ThreePokeNeeded::
+ .string "Three POKéMON are needed.$"
+OtherText_PokeCantBeSame::
+ .string "POKéMON can’t be the same.$"
+OtherText_NoIdenticalHoldItems::
+ .string "No identical hold items.$"
+OtherText_TeachWhichPoke::
+ .string "Teach which POKéMON?$"
+
+gOtherText_Attack:: @ 840F7C6
+ .string "ATTACK$"
+
+gOtherText_Defense:: @ 840F7CD
+ .string "DEFENSE$"
+
+gOtherText_SpAtk:: @ 840F7D5
+ .string "SP. ATK$"
+
+gOtherText_SpDef:: @ 840F7DD
+ .string "SP. DEF$"
+
+gOtherText_Speed:: @ 840F7E5
+ .string "SPEED$"
+
+gOtherText_HP:: @ 840F7EB
+ .string "HP$"
+
+gOtherText_Terminator18:: @ 840F7EE
+ .string "$"
+
+gOtherText_OriginalTrainer:: @ 840F7EF
+ .string "OT/$"
+
+gOtherText_Type2:: @ 840F7F3
+ .string "TYPE/$"
+
+gOtherText_Power2:: @ 840F7F9
+ .string "POWER$"
+
+gOtherText_Accuracy2:: @ 840F7FF
+ .string "ACCURACY$"
+
+gOtherText_Appeal2:: @ 840F808
+ .string "APPEAL$"
+
+gOtherText_Jam2:: @ 840F80F
+ .string "JAM$"
+
+gOtherText_Status:: @ 840F813
+ .string "STATUS$"
+
+gOtherText_ExpPoints:: @ 840F81A
+ .string "EXP. POINTS$"
+
+gOtherText_NextLv:: @ 840F826
+ .string "NEXT LV.$"
+
+gOtherText_Ribbons00:: @ 840F82F
+ .string "RIBBONS: 00$"
+
+OtherText_Event::
+ .string "EVENT$"
+OtherText_Switch::
+ .string "SWITCH$"
+OtherText_PokeInfo::
+ .string "POKéMON INFO$"
+OtherText_PokeSkills::
+ .string "POKéMON SKILLS$"
+OtherText_BattleMoves::
+ .string "BATTLE MOVES$"
+OtherText_ContestMoves::
+ .string "C0NTEST MOVES$" @why the l33t 0, that's stupid
+OtherText_Info::
+ .string "INFO$"
+
+gOtherText_EggLongTime:: @ 840F884
+ .string "It looks like this EGG will\ntake a long time to hatch.$"
+
+gOtherText_EggSomeTime:: @ 840F8BB
+ .string "What will hatch from this?\nIt will take some time.$"
+
+gOtherText_EggSoon:: @ 840F8EE
+ .string "It moves occasionally.\nIt should hatch soon.$"
+
+gOtherText_EggAbout:: @ 840F91B
+ .string "It’s making sounds.\nIt’s about to hatch!$"
+
+gOtherText_CantForgetHMs:: @ 840F944
+ .string "HM moves can’t be\nforgotten now.$"
+
+gOtherText_PlayersBase:: @ 840F965
+ .string "’s BASE$"
+
+gOtherText_OkayToDeleteFromRegistry:: @ 840F96D
+ .string "Is it okay to delete {STR_VAR_1}\nfrom the REGISTRY?$"
+
+gOtherText_RegisteredDataDeleted:: @ 840F998
+ .string "The registered data was deleted.{PAUSE_UNTIL_PRESS}$"
+
+gSecretBaseText_NoRegistry:: @ 840F9BB
+ .string "There is no REGISTRY.{PAUSE_UNTIL_PRESS}$"
+
+SecretBaseText_DelRegist::
+ .string "DEL REGIST.$"
+SecretBaseText_Decorate::
+ .string "DECORATE$"
+SecretBaseText_PutAway::
+ .string "PUT AWAY$"
+SecretBaseText_Toss::
+ .string "TOSS$"
+SecretBaseText_PutOutDecor::
+ .string "Put out the selected decoration item.$"
+SecretBaseText_StoreChosenDecor::
+ .string "Store the chosen decoration in the PC.$"
+SecretBaseText_ThrowAwayDecor::
+ .string "Throw away unwanted decorations.$"
+
+gSecretBaseText_NoDecors:: @ 840FA64
+ .string "There are no decorations.{PAUSE_UNTIL_PRESS}$"
+
+SecretBaseText_Desk::
+ .string "DESK$"
+SecretBaseText_Chair::
+ .string "CHAIR$"
+SecretBaseText_Plant::
+ .string "PLANT$"
+SecretBaseText_Ornament::
+ .string "ORNAMENT$"
+SecretBaseText_Mat::
+ .string "MAT$"
+SecretBaseText_Poster::
+ .string "POSTER$"
+SecretBaseText_Doll::
+ .string "DOLL$"
+SecretBaseText_Cushion::
+ .string "CUSHION$"
+
+gSecretBaseText_GoldRank:: @ 840FAB2
+ .string "GOLD$"
+
+gSecretBaseText_SilverRank:: @ 840FAB7
+ .string "SILVER$"
+
+gSecretBaseText_PlaceItHere:: @ 840FABE
+ .string "Place it here?$"
+
+gSecretBaseText_CantBePlacedHere:: @ 840FACD
+ .string "It can’t be placed here.$"
+
+gSecretBaseText_CancelDecorating:: @ 840FAE6
+ .string "Cancel decorating?$"
+
+gSecretBaseText_InUseAlready:: @ 840FAF9
+ .string "This is in use already.$"
+
+gSecretBaseText_NoMoreDecor:: @ 840FB11
+ .string "No more decorations can be placed.\nThe most that can be placed is {STR_VAR_1}.$"
+
+gSecretBaseText_NoMoreDecor2:: @ 840FB57
+ .string "No more decorations can be placed.\nThe most that can be placed is {STR_VAR_1}.$"
+ .string "This can’t be placed here.\nIt must be on a DESK, etc.$"
+
+gSecretBaseText_DecorCantPlace:: @ 840FBD3
+ .string "This decoration can’t be placed in\nyour own room.$"
+
+gSecretBaseText_DecorInUse:: @ 840FC05
+ .string "This decoration is in use.\nIt can’t be thrown away.$"
+
+gSecretBaseText_WillBeDiscarded:: @ 840FC39
+ .string "This {STR_VAR_1} will be discarded.\nIs that okay?$"
+
+gSecretBaseText_DecorThrownAway:: @ 840FC62
+ .string "The decoration item was thrown away.$"
+
+gSecretBaseText_StopPuttingAwayDecor:: @ 840FC87
+ .string "Stop putting away decorations?$"
+
+gSecretBaseText_NoDecor:: @ 840FCA6
+ .string "There is no decoration item here.$"
+
+gSecretBaseText_ReturnDecor:: @ 840FCC8
+ .string "Return this decoration to the PC?$"
+
+gSecretBaseText_DecorReturned:: @ 840FCEA
+ .string "The decoration was returned to the PC.$"
+
+gSecretBaseText_NoDecorInUse:: @ 840FD11
+ .string "There are no decorations in use.{PAUSE_UNTIL_PRESS}$"
+
+SecretBaseText_Tristan::
+ .string "TRISTAN$"
+SecretBaseText_Philip::
+ .string "PHILIP$"
+SecretBaseText_Dennis::
+ .string "DENNIS$"
+SecretBaseText_Roberto::
+ .string "ROBERTO$"
+SecretBaseText_TurnOff::
+ .string "TURN OFF$"
+SecretBaseText_Decoration::
+ .string "DECORATION$"
+SecretBaseText_ItemStorage::
+ .string "ITEM STORAGE$"
+
+gPCText_Mailbox:: @ 840FD73
+ .string "MAILBOX$"
+
+PCText_DepositItem::
+ .string "DEPOSIT ITEM$"
+PCText_WithdrawItem::
+ .string "WITHDRAW ITEM$"
+PCText_TossItem::
+ .string "TOSS ITEM$"
+PCText_StoreItems::
+ .string "Store items in the PC.$"
+PCText_TakeOutItems::
+ .string "Take out items from the PC.$"
+PCText_ThrowAwayItems::
+ .string "Throw away items stored in the PC.$"
+
+gOtherText_NoItems:: @ 840FDF6
+ .string "There are no items.{PAUSE_UNTIL_PRESS}$"
+
+gOtherText_NoMoreRoom:: @ 840FE0C
+ .string "There is no more\nroom in the BAG.$"
+
+gOtherText_HowManyToWithdraw:: @ 840FE2E
+ .string "How many do you\nwant to withdraw?$"
+
+gOtherText_WithdrewThing:: @ 840FE50
+ .string "Withdrew {STR_VAR_2}\n{STR_VAR_1}(s).$"
+
+OtherText_Read::
+ .string "READ$"
+
+gOtherText_MoveToBag:: @ 840FE68
+ .string "MOVE TO BAG$"
+
+OtherText_Give::
+ .string "GIVE$"
+
+gOtherText_NoMailHere:: @ 840FE79
+ .string "There’s no MAIL here.{PAUSE_UNTIL_PRESS}$"
+
+gOtherText_WhatWillYouDoMail:: @ 840FE91
+ .string "What would you like to do with\n{STR_VAR_1}’s MAIL?$"
+
+gOtherText_MessageWillBeLost:: @ 840FEBB
+ .string "The message will be lost.\nIs that okay?$"
+
+gOtherText_BagIsFull:: @ 840FEE3
+ .string "The BAG is full.{PAUSE_UNTIL_PRESS}$"
+
+gOtherText_MailWasReturned:: @ 840FEF6
+ .string "The MAIL was returned to the BAG\nwith its message erased.{PAUSE_UNTIL_PRESS}$"
+
+gOtherText_Dad:: @ 840FF32
+ .string "DAD$"
+
+gOtherText_Mom:: @ 840FF36
+ .string "MOM$"
+
+gOtherText_Wallace:: @ 840FF3A
+ .string "WALLACE$"
+
+gOtherText_Steven:: @ 840FF42
+ .string "STEVEN$"
+
+gOtherText_Brawly:: @ 840FF49
+ .string "BRAWLY$"
+
+gOtherText_Winona:: @ 840FF50
+ .string "WINONA$"
+
+gOtherText_Phoebe:: @ 840FF57
+ .string "PHOEBE$"
+
+gOtherText_Glacia:: @ 840FF5E
+ .string "GLACIA$"
+
+gContestText_ContestWinner:: @ 840FF65
+ .string "CONTEST WINNER\n$"
+
+gOtherText_Unknown1:: @ 840FF75
+ .string "’s $"
+
+OtherText_Cool::
+ .string "COOL $"
+OtherText_Beauty2::
+ .string "BEAUTY $"
+OtherText_Cute::
+ .string "CUTE $"
+OtherText_Smart::
+ .string "SMART $"
+OtherText_Tough::
+ .string "TOUGH $"
+OtherText_NonstopSuperCool::
+ .string "Nonstop super-cool -\nthe inestimable $"
+OtherText_Terminator6::
+ .string "$"
+OtherText_GoodLookingPoke::
+ .string "Hey, there!\nThe good-looking POKéMON $"
+OtherText_Terminator7::
+ .string "$"
+OtherText_MarvelousGreat::
+ .string "The marvelous, wonderful, and\nvery great $"
+OtherText_Terminator8::
+ .string "$"
+OtherText_CenturyLastVenus::
+ .string "This century’s last Venus -\nthe beautiful $"
+OtherText_Terminator9::
+ .string "$"
+OtherText_Terminator10::
+ .string "$"
+OtherText_DazzlingSlime::
+ .string "’s dazzling,\nglittering smile$"
+OtherText_PokeCenterIdol::
+ .string "POKéMON CENTER’s super idol -\nthe incomparable $"
+OtherText_Terminator11::
+ .string "$"
+OtherText_LovelyAndSweet::
+ .string "The lovely and sweet $"
+OtherText_Terminator12::
+ .string "$"
+OtherText_ThePretty::
+ .string "The pretty $"
+OtherText_WinningPortrait::
+ .string "’s\nwinning portrait$"
+OtherText_GiveUsWink::
+ .string "Give us a wink!\nThe cutie POKéMON $"
+OtherText_Terminator13::
+ .string "$"
+OtherText_SmartnessMaestro::
+ .string "The smartness maestro -\nThe wise POKéMON $"
+OtherText_Terminator14::
+ .string "$"
+OtherText_ChosenPokeAmong::
+ .string "The chosen POKéMON -\nThe one among POKéMON $"
+OtherText_Terminator15::
+ .string "$"
+OtherText_TheExcellent::
+ .string "The excellent $"
+OtherText_ItsMomentOfElegance::
+ .string "’s\nmoment of elegance$"
+OtherText_PowerfullyMuscular::
+ .string "The powerfully muscular\nspeedster $"
+OtherText_Terminator16::
+ .string "$"
+OtherText_StrongErEst::
+ .string "The strong, stronger, and\nstrongest $"
+OtherText_Terminator17::
+ .string "$"
+OtherText_MightyTough::
+ .string "The mighty tough\nhyper POKéMON $"
+OtherText_Exclamation::
+ .string "!$"
+OtherText_Petalburg::
+ .string "PETALBURG$"
+OtherText_Slateport::
+ .string "SLATEPORT$"
+OtherText_Littleroot::
+ .string "LITTLEROOT$"
+OtherText_Lilycove::
+ .string "LILYCOVE$"
+OtherText_Dewford::
+ .string "DEWFORD$"
+OtherText_Enter::
+ .string "ENTER$"
+OtherText_Info3::
+ .string "INFO$"
+OtherText_WhatsAContest::
+ .string "What’s a CONTEST?$"
+OtherText_TypesOfContest::
+ .string "Types of CONTESTS$"
+OtherText_Ranks::
+ .string "Ranks$"
+OtherText_Judging::
+ .string "Judging$"
+OtherText_CoolContest::
+ .string "COOL CONTEST$"
+OtherText_BeautyContest::
+ .string "BEAUTY CONTEST$"
+OtherText_CuteContest::
+ .string "CUTE CONTEST$"
+OtherText_SmartContest::
+ .string "SMART CONTEST$"
+OtherText_ToughContest::
+ .string "TOUGH CONTEST$"
+OtherText_Decoration::
+ .string "DECORATION$"
+OtherText_PackUp::
+ .string "PACK UP$"
+OtherText_Count::
+ .string "COUNT$"
+OtherText_Registry::
+ .string "REGISTRY$"
+OtherText_Information::
+ .string "INFORMATION$"
+OtherText_Mach::
+ .string "MACH$"
+OtherText_Acro::
+ .string "ACRO$"
+OtherText_Poison::
+ .string "PSN$"
+OtherText_Paralysis::
+ .string "PAR$"
+OtherText_Sleep::
+ .string "SLP$"
+OtherText_Burn::
+ .string "BRN$"
+OtherText_Frozen::
+ .string "FRZ$"
+OtherText_Quit::
+ .string "QUIT$"
+OtherText_SawIt::
+ .string "Saw it$"
+OtherText_NotYet::
+ .string "Not yet$"
+OtherText_Yes::
+ .string "YES$"
+OtherText_No::
+ .string "NO$"
+OtherText_Info2::
+ .string "INFO$"
+OtherText_SingleBattle::
+ .string "SINGLE BATTLE$"
+OtherText_DoubleBattle::
+ .string "DOUBLE BATTLE$"
+OtherText_MultiBattle::
+ .string "MULTI BATTLE$"
+OtherText_MrBriney::
+ .string "MR. BRINEY$"
+OtherText_MakeAChallenge::
+ .string "Make a challenge.$"
+OtherText_ObtainInformation::
+ .string "Obtain information.$"
+OtherText_Lv50_2::
+ .string "LV. 50$"
+OtherText_Lv100_2::
+ .string "LV. 100$"
+OtherText_Zigzagoon::
+ .string "ZIGZAGOON$"
+OtherText_Nincada::
+ .string "NINCADA$"
+OtherText_Poochyena::
+ .string "POOCHYENA$"
+OtherText_Nincada2::
+ .string "NINCADA$"
+OtherText_Lotad::
+ .string "LOTAD$"
+OtherText_Roselia::
+ .string "ROSELIA$"
+OtherText_Shroomish::
+ .string "SHROOMISH$"
+OtherText_Nincada3::
+ .string "NINCADA$"
+OtherText_Surskit::
+ .string "SURSKIT$"
+OtherText_Treecko::
+ .string "TREECKO$"
+OtherText_Torchic::
+ .string "TORCHIC$"
+OtherText_Mudkip::
+ .string "MUDKIP$"
+OtherText_Seedot::
+ .string "SEEDOT$"
+OtherText_Shroomish2::
+ .string "SHROOMISH$"
+OtherText_Spinda::
+ .string "SPINDA$"
+OtherText_Shroomish3::
+ .string "SHROOMISH$"
+OtherText_Zigzagoon2::
+ .string "ZIGZAGOON$"
+OtherText_Wurmple::
+ .string "WURMPLE$"
+OtherText_PokeBall::
+ .string "POKé BALL$"
+OtherText_SuperPotion::
+ .string "SUPER POTION$"
+OtherText_SamePrice::
+ .string "Same price$"
+OtherText_Yen135::
+ .string "¥135$"
+OtherText_Yen155::
+ .string "¥155$"
+OtherText_Yen175::
+ .string "¥175$"
+OtherText_CostMore::
+ .string "They will cost more.$"
+OtherText_CostLess::
+ .string "They will cost less.$"
+OtherText_SamePrice2::
+ .string "Same price$"
+OtherText_MaleSymbol::
+ .string "♂$"
+OtherText_FemaleSymbol::
+ .string "♀$"
+OtherText_Neither::
+ .string "Neither$"
+OtherText_Males::
+ .string "Males$"
+OtherText_Females::
+ .string "Females$"
+OtherText_SameNumber::
+ .string "Same number$"
+OtherText_Male::
+ .string "Male$"
+OtherText_Female::
+ .string "Female$"
+OtherText_ItDepends::
+ .string "It depends$"
+OtherText_Six2::
+ .string "6$"
+OtherText_Eight2::
+ .string "8$"
+OtherText_Ten::
+ .string "10$"
+OtherText_One::
+ .string "1$"
+OtherText_Two::
+ .string "2$"
+OtherText_Three::
+ .string "3$"
+OtherText_Six::
+ .string "6$"
+OtherText_Seven::
+ .string "7$"
+OtherText_Eight::
+ .string "8$"
+OtherText_FreshWater::
+ .string "FRESH WATER{CLEAR_TO 0x48}¥200$"
+OtherText_SodaPop::
+ .string "SODA POP{CLEAR_TO 0x48}¥300$"
+OtherText_Lemonade::
+ .string "LEMONADE{CLEAR_TO 0x48}¥350$"
+OtherText_HowToRide::
+ .string "HOW TO RIDE$"
+OtherText_HowToTurn::
+ .string "HOW TO TURN$"
+OtherText_SandySlopes::
+ .string "SANDY SLOPES$"
+OtherText_Wheelies::
+ .string "WHEELIES$"
+OtherText_BunnyHops::
+ .string "BUNNY-HOPS$"
+OtherText_Jumping::
+ .string "JUMPING$"
+OtherText_Satisfied::
+ .string "Satisfied$"
+OtherText_Dissatisfied::
+ .string "Dissatisfied$"
+OtherText_Deepseatooth::
+ .string "DEEPSEATOOTH$"
+OtherText_Deepseascale::
+ .string "DEEPSEASCALE$"
+OtherText_BlueFlute2::
+ .string "BLUE FLUTE$"
+OtherText_YellowFlute2::
+ .string "YELLOW FLUTE$"
+OtherText_RedFlute2::
+ .string "RED FLUTE$"
+OtherText_WhiteFlute2::
+ .string "WHITE FLUTE$"
+OtherText_BlackFlute2::
+ .string "BLACK FLUTE$"
+OtherText_GlassChair::
+ .string "GLASS CHAIR$"
+OtherText_GlassDesk::
+ .string "GLASS DESK$"
+OtherText_TreeckoDoll::
+ .string "TREECKO DOLL 1,000 COINS$"
+OtherText_TorchicDoll::
+ .string "TORCHIC DOLL 1,000 COINS$"
+OtherText_MudkipDoll::
+ .string "MUDKIP DOLL 1,000 COINS$"
+OtherText_50Coins::
+ .string " 50 COINS ¥1,000$"
+OtherText_500Coins::
+ .string "500 COINS ¥10,000$"
+OtherText_Excellent::
+ .string "Excellent!$"
+OtherText_NotSoHot::
+ .string "Not so hot$"
+OtherText_RedShard::
+ .string "RED SHARD$"
+OtherText_YellowShard::
+ .string "YELLOW SHARD$"
+OtherText_BlueShard::
+ .string "BLUE SHARD$"
+OtherText_GreenShard::
+ .string "GREEN SHARD$"
+OtherText_BattleTower::
+ .string "BATTLE TOWER$"
+OtherText_Right::
+ .string "Right$"
+OtherText_Left::
+ .string "Left$"
+OtherText_TM32::
+ .string "TM32 1,500 COINS$"
+OtherText_TM29::
+ .string "TM29 3,500 COINS$"
+OtherText_TM35::
+ .string "TM35 4,000 COINS$"
+OtherText_TM24::
+ .string "TM24 4,000 COINS$"
+OtherText_TM13::
+ .string "TM13 4,000 COINS$"
+OtherText_1F_2::
+ .string "1F$"
+OtherText_2F_2::
+ .string "2F$"
+OtherText_3F_2::
+ .string "3F$"
+OtherText_4F_2::
+ .string "4F$"
+OtherText_5F_2::
+ .string "5F$"
+OtherText_Cool2::
+ .string "COOL$"
+OtherText_Beauty3::
+ .string "BEAUTY$"
+OtherText_Cute2::
+ .string "CUTE$"
+OtherText_Smart2::
+ .string "SMART$"
+OtherText_Tough2::
+ .string "TOUGH$"
+OtherText_Normal::
+ .string "NORMAL$"
+OtherText_Super::
+ .string "SUPER$"
+OtherText_Hyper::
+ .string "HYPER$"
+OtherText_Master::
+ .string "MASTER$"
+OtherText_Cool3::
+ .string "COOL$"
+OtherText_Beauty4::
+ .string "BEAUTY$"
+OtherText_Cute3::
+ .string "CUTE$"
+OtherText_Smart3::
+ .string "SMART$"
+OtherText_Tough3::
+ .string "TOUGH$"
+OtherText_Items::
+ .string "ITEMS$"
+OtherText_KeyItems::
+ .string "KEY ITEMS$"
+OtherText_Balls::
+ .string "BALLS$"
+OtherText_TMsHMs::
+ .string "TMs & HMs$"
+OtherText_Berries::
+ .string "BERRIES$"
+
+gPCText_SomeonesPC:: @ 8410753
+ .string "SOMEONE’S PC$"
+
+gPCText_LanettesPC:: @ 8410760
+ .string "LANETTE’S PC$"
+
+gPCText_PlayersPC:: @ 841076D
+ .string "{PLAYER}’s PC$"
+
+gPCText_HallOfFame:: @ 8410775
+ .string "HALL OF FAME$"
+
+gPCText_LogOff:: @ 8410782
+ .string "LOG OFF$"
+
+gOtherText_99Times:: @ 841078A
+ .string "99 times +$"
+
+gOtherText_1Minute:: @ 8410795
+ .string "1 minute +$"
+
+gOtherText_Seconds:: @ 84107A0
+ .string " seconds$"
+
+gOtherText_Times:: @ 84107A9
+ .string " times$"
+ .string ".$"
+
+gOtherText_BigGuy:: @ 84107B2
+ .string "Big guy$"
+
+gOtherText_BigGirl:: @ 84107BA
+ .string "Big girl$"
+
+gOtherText_Son:: @ 84107C3
+ .string "son$"
+
+gOtherText_Daughter:: @ 84107C7
+ .string "daughter$"
+
+OtherText_BlueFlute::
+ .string "BLUE FLUTE$"
+OtherText_YellowFlute::
+ .string "YELLOW FLUTE$"
+OtherText_RedFlute::
+ .string "RED FLUTE$"
+OtherText_WhiteFlute::
+ .string "WHITE FLUTE$"
+OtherText_BlackFlute::
+ .string "BLACK FLUTE$"
+OtherText_PrettyChair::
+ .string "PRETTY CHAIR$"
+OtherText_PrettyDesk::
+ .string "PRETTY DESK$"
+OtherText_1F::
+ .string "1F$"
+OtherText_2F::
+ .string "2F$"
+OtherText_3F::
+ .string "3F$"
+OtherText_4F::
+ .string "4F$"
+OtherText_5F::
+ .string "5F$"
+OtherText_6F::
+ .string "6F$"
+OtherText_7F::
+ .string "7F$"
+OtherText_8F::
+ .string "8F$"
+OtherText_9F::
+ .string "9F$"
+OtherText_10F::
+ .string "10F$"
+OtherText_11F::
+ .string "11F$"
+OtherText_B1F::
+ .string "B1F$"
+OtherText_B2F::
+ .string "B2F$"
+OtherText_B3F::
+ .string "B3F$"
+OtherText_B4F::
+ .string "B4F$"
+OtherText_Rooftop::
+ .string "ROOFTOP$"
+
+gOtherText_NowOn:: @ 841085E
+ .string "Now on:$"
+
+gPCText_Cancel:: @ 8410866
+ .string "CANCEL$"
+
+PCText_ExitBox::
+ .string "Exit from the BOX.$"
+PCText_WhatYouDo::
+ .string "What would you like to do?$"
+PCText_PickATheme::
+ .string "Please pick a theme.$"
+PCText_PickAWallpaper::
+ .string "Please pick out wallpaper.$"
+PCText_IsSelected::
+ .string " is selected.$"
+PCText_JumpToWhichBox::
+ .string "Jump to which BOX?$"
+PCText_DepositInWhichBox::
+ .string "Deposit in which BOX?$"
+PCText_WasDeposited::
+ .string " was deposited.$"
+PCText_BoxIsFull::
+ .string "The BOX is full.$"
+PCText_ReleasePoke::
+ .string "Release this POKéMON?$"
+PCText_WasReleased::
+ .string " was released.$"
+PCText_ByeBye::
+ .string "Bye-bye, !$"
+PCText_MarkPoke::
+ .string "Mark your POKéMON.$"
+PCText_LastPoke::
+ .string "That’s your last POKéMON!$"
+PCText_PartyFull::
+ .string "Your party’s full!$"
+PCText_HoldingPoke::
+ .string "You’re holding a POKéMON!$"
+PCText_WhichOneWillTake::
+ .string "Which one will you take?$"
+PCText_CantReleaseEgg::
+ .string "You can’t release an EGG.$"
+PCText_ContinueBox::
+ .string "Continue BOX operations?$"
+PCText_CameBack::
+ .string " came back!$"
+PCText_Worried::
+ .string "Was it worried about you?$"
+PCText_Surprise::
+ .string "... ... ... ... ...!$"
+PCText_PleaseRemoveMail::
+ .string "Please remove the MAIL.$"
+PCText_Cancel2::
+ .string "CANCEL$"
+PCText_Deposit::
+ .string "DEPOSIT$"
+PCText_Withdraw::
+ .string "WITHDRAW$"
+PCText_Switch::
+ .string "SWITCH$"
+PCText_Move::
+ .string "MOVE$"
+PCText_Place::
+ .string "PLACE$"
+PCText_Summary::
+ .string "SUMMARY$"
+PCText_Release::
+ .string "RELEASE$"
+PCText_Mark::
+ .string "MARK$"
+PCText_Name::
+ .string "NAME$"
+PCText_Jump::
+ .string "JUMP$"
+PCText_Wallpaper::
+ .string "WALLPAPER$"
+PCText_Scenery1::
+ .string "SCENERY 1$"
+PCText_Scenery2::
+ .string "SCENERY 2$"
+PCText_Scenery3::
+ .string "SCENERY 3$"
+PCText_Etc::
+ .string "ETCETERA$"
+PCText_Forest::
+ .string "FOREST$"
+PCText_City::
+ .string "CITY$"
+PCText_Desert::
+ .string "DESERT$"
+PCText_Savanna::
+ .string "SAVANNA$"
+PCText_Crag::
+ .string "CRAG$"
+PCText_Volcano::
+ .string "VOLCANO$"
+PCText_Snow::
+ .string "SNOW$"
+PCText_Cave::
+ .string "CAVE$"
+PCText_Beach::
+ .string "BEACH$"
+PCText_Seafloor::
+ .string "SEAFLOOR$"
+PCText_River::
+ .string "RIVER$"
+PCText_Sky::
+ .string "SKY$"
+PCText_Polka::
+ .string "POLKA-DOT$"
+PCText_PokeCenter::
+ .string "POKéCENTER$"
+PCText_Machine::
+ .string "MACHINE$"
+PCText_Plain::
+ .string "PLAIN$"
+PCText_WhatDoYouWant::
+ .string "What do you want?$"
+PCText_WithdrawPoke::
+ .string "WITHDRAW POKéMON$"
+PCText_DepositPoke::
+ .string "DEPOSIT POKéMON$"
+PCText_MovePoke::
+ .string "MOVE POKéMON$"
+PCText_SeeYa::
+ .string "SEE YA!$"
+PCText_MovePokeToParty::
+ .string "Move POKéMON stored in BOXES to\nyour party.$"
+PCText_StorePokeInBox::
+ .string "Store POKéMON in your party in BOXES.$"
+PCText_OrganizeBoxesParty::
+ .string "Organize the POKéMON in BOXES and\nin your party.$"
+PCText_ReturnToPrevMenu::
+ .string "Return to the previous menu.$"
+
+gPCText_OnlyOne:: @ 8410C1C
+ .string "There is just one POKéMON with you.$"
+
+gPCText_PartyFull2:: @ 8410C40
+ .string "Your party is full!$"
+
+gPCText_BOX:: @ 8410C54
+ .string "BOX$"
+
+PCText_CheckMap::
+ .string "{CLEAR 0}Check the map of the HOENN region.$"
+PCText_CheckPoke::
+ .string "{CLEAR 0}Check POKéMON in detail.$"
+PCText_CheckTrainer::
+ .string "{CLEAR 0}Check TRAINER information.$"
+PCText_CheckRibbons::
+ .string "{CLEAR 0}Check obtained RIBBONS.$"
+PCText_PutAwayNav::
+ .string "{CLEAR 0}Put away the POKéNAV.$"
+PCText_NoRibbonWin::
+ .string "{CLEAR 0}There are no RIBBON winners.$"
+PCText_NoTrainers::
+ .string "{CLEAR 0}No TRAINERS are registered.$"
+PCText_CheckParty::
+ .string "{CLEAR 0}Check party POKéMON in detail.$"
+PCText_CheckPokeAll::
+ .string "{CLEAR 0}Check all POKéMON in detail.$"
+PCText_ReturnToNav::
+ .string "{CLEAR 0}Return to the POKéNAV menu.$"
+PCText_FindCool::
+ .string "{CLEAR 0}Find cool POKéMON.$"
+PCText_FindBeauty::
+ .string "{CLEAR 0}Find beautiful POKéMON.$"
+PCText_FindCute::
+ .string "{CLEAR 0}Find cute POKéMON.$"
+PCText_FindSmart::
+ .string "{CLEAR 0}Find smart POKéMON.$"
+PCText_FindTough::
+ .string "{CLEAR 0}Find tough POKéMON.$"
+PCText_ReturnToCondition::
+ .string "{CLEAR 0}Return to the CONDITION menu.$"
+
+gOtherText_NumberRegistered:: @ 8410E22
+ .string "No. registered$"
+
+gOtherText_NumberBattles:: @ 8410E31
+ .string "No. of battles$"
+
+gOtherText_Strategy:: @ 8410E40
+ .string "{PALETTE 5}STRATEGY$"
+
+gOtherText_TrainersPokemon:: @ 8410E4C
+ .string "{PALETTE 5}TRAINER’S POKéMON$"
+
+gOtherText_SelfIntroduction:: @ 8410E61
+ .string "{PALETTE 5}SELF-INTRODUCTION$"
+
+gOtherText_Nature2:: @ 8410E76
+ .string "NATURE/$"
+
+gOtherText_InParty:: @ 8410E7E
+ .string "IN PARTY$"
+
+gOtherText_Number:: @ 8410E87
+ .string "No. $"
+
+gOtherText_Ribbons:: @ 8410E8C
+ .string "RIBBONS$"
+
+OtherText_MakeProfilePage1::
+ .string "Make your profile by combining$"
+OtherText_MakeProfilePage2::
+ .string "four words or phrases.$"
+OtherText_MakeMessagePage1::
+ .string "Make a message with 6 phrases.$"
+OtherText_MakeMessagePage2::
+ .string "Max. two 12-letter phrases/line.$"
+OtherText_DescribeFeelingsPage1::
+ .string "Find words that describe your$"
+OtherText_DescribeFeelingsPage2::
+ .string "feelings right now.$"
+OtherText_WithFourPhrases::
+ .string "With four phrases,$"
+OtherText_CombineNinePhrasesPage1::
+ .string "Combine nine phrases and$"
+OtherText_CombineNinePhrasesPage2::
+ .string "make a message.$"
+OtherText_ImproveBardSongPage1::
+ .string "Change just one word or phrase$"
+OtherText_ImproveBardSongPage2::
+ .string "and improve the BARD’s song.$"
+OtherText_YourProfile::
+ .string "Your profile $"
+OtherText_YourFeelingBattle::
+ .string "Your feeling at the battle’s start$"
+OtherText_SetWinMessage::
+ .string "What you say if you win a battle$"
+OtherText_SetLossMessage::
+ .string "What you say if you lose a battle$"
+OtherText_TheAnswer::
+ .string "The answer$"
+OtherText_MailMessage::
+ .string "The MAIL message$"
+OtherText_MailSalutation::
+ .string "The MAIL salutation$"
+OtherText_NewSong::
+ .string "The new song$"
+OtherText_CombineTwoPhrasesPage1::
+ .string "Combine two phrases and$"
+OtherText_CombineTwoPhrasesPage2::
+ .string "make a trendy saying.$"
+OtherText_ConfirmTrendyPage1::
+ .string "The trendy saying$"
+OtherText_ConfirmTrendyPage2::
+ .string "is as shown. Okay?$"
+OtherText_HipsterPage1::
+ .string "I’ll combine two phrases and$"
+OtherText_HipsterPage2::
+ .string "teach you a good saying.$"
+
+gOtherText_TextDeletedConfirmPage1:: @ 84110EE
+ .string "All the text being edited will$"
+
+gOtherText_TextDeletedConfirmPage2:: @ 841110D
+ .string "be deleted. Is that okay?$"
+
+gOtherText_QuitEditing:: @ 8411127
+ .string "Quit editing?$"
+
+gOtherText_EditedTextNoSavePage1:: @ 8411135
+ .string "The edited text will not be saved.$"
+
+gOtherText_EditedTextNoSavePage2:: @ 8411158
+ .string "Is that okay?$"
+
+gOtherText_EnterAPhraseOrWord:: @ 8411166
+ .string "Please enter a phrase or word.$"
+
+gOtherText_TextNoDelete:: @ 8411185
+ .string "The entire text can’t be deleted.$"
+
+gOtherText_OnlyOnePhrase:: @ 84111A7
+ .string "Only one phrase may be changed.$"
+
+gOtherText_OriginalSongRestored:: @ 84111C7
+ .string "The original song will be restored.$"
+
+gOtherText_TrendyAlready:: @ 84111EB
+ .string "That’s trendy already!$"
+
+gOtherText_CombineTwoPhrases:: @ 8411202
+ .string "Combine two words or phrases.$"
+
+gOtherText_QuitGivingInfo:: @ 8411220
+ .string "Quit giving information?$"
+
+gOtherText_StopGivingMail:: @ 8411239
+ .string "Stop giving the POKéMON MAIL?$"
+
+gOtherText_Profile:: @ 8411257
+ .string "PROFILE$"
+
+gOtherText_AtBattleStart:: @ 841125F
+ .string "At the battle’s start.$"
+
+gOtherText_UponWinningBattle:: @ 8411276
+ .string "Upon winning a battle.$"
+
+gOtherText_UponLosingBattle:: @ 841128D
+ .string "Upon losing a battle.$"
+
+gOtherText_TheBardsSong:: @ 84112A3
+ .string "The BARD’s Song$"
+
+gOtherText_WhatsHipHappening:: @ 84112B3
+ .string "What’s hip and happening?$"
+
+gOtherText_Interview:: @ 84112CD
+ .string "Interview$"
+
+gOtherText_GoodSaying:: @ 84112D7
+ .string "Good saying$"
+
+OtherText_SoPretty::
+ .string " so pretty!$"
+OtherText_SoDarling::
+ .string " so darling!$"
+OtherText_SoRelaxed::
+ .string " so relaxed!$"
+OtherText_SoSunny::
+ .string " so sunny!$"
+OtherText_SoDesirable::
+ .string " so desirable!$"
+OtherText_SoExciting::
+ .string " so exciting!$"
+OtherText_SoAmusing::
+ .string " so amusing!$"
+OtherText_SoMagical::
+ .string " so magical!$"
+
+gOtherText_Is:: @ 841134B
+ .string " is$"
+
+gOtherText_DontYouAgree:: @ 841134F
+ .string "\nDon’t you agree?$"
+
+OtherText_WantVacationNicePlace::
+ .string "I so want to go on a vacation.\nWould you happen to know a nice place?$"
+OtherText_BoughtCrayonsIsNice::
+ .string "I bought crayons with 120 colors!\nDon’t you think that’s nice?$"
+OtherText_IfWeCouldFloat::
+ .string "Wouldn’t it be nice if we could float\naway on a cloud of bubbles?$"
+OtherText_SandWashesAwayMakeSad::
+ .string "When you write on a sandy beach,\nthey wash away. It makes me sad.$"
+OtherText_WhatsBottomSeaLike::
+ .string "What’s the bottom of the sea like?\nJust once I would so love to go!$"
+OtherText_SeeSettingSun::
+ .string "When you see the setting sun, does it\nmake you want to go home?$"
+OtherText_LyingInGreenGrass::
+ .string "Lying back in the green grass...\nOh, it’s so, so nice!$"
+OtherText_SecretBasesWonderful::
+ .string "SECRET BASES are so wonderful!\nCan’t you feel the excitement?$"
+OtherText_PokeLeague::
+ .string "POKéMON LEAGUE$"
+OtherText_PokeCenter::
+ .string "POKéMON CENTER$"
+
+gOtherText_GetsAPokeBlock:: @ 8411581
+ .string " gets a {POKEBLOCK}?$"
+
+OtherText_Coolness::
+ .string "Coolness $"
+OtherText_Beauty::
+ .string "Beauty $"
+OtherText_Cuteness::
+ .string "Cuteness $"
+OtherText_Smartness::
+ .string "Smartness $"
+OtherText_Toughness::
+ .string "Toughness $"
+
+gOtherText_WasEnhanced:: @ 84115C2
+ .string "was enhanced!$"
+
+gOtherText_NothingChanged:: @ 84115D0
+ .string "Nothing changed!$"
+
+gOtherText_WontEat:: @ 84115E1
+ .string "It won’t eat anymore...$"
+
+gSystemText_SaveFailedBackupCheck:: @ 84115F9
+ .string "Save failed.\nChecking the backup memory...\nPlease wait.\n{COLOR RED}“Time required: 1 minute”$"
+
+gSystemText_BackupDamagedGameContinue:: @ 841164E
+ .string "The backup memory is damaged or\nthe internal battery has run dry.\nThe game can be played. However,\nprogress cannot be saved.$"
+
+gSystemText_GameplayEnded:: @ 84116CB
+ .string "{COLOR RED}“Gameplay cannot be continued.\nReturning to the title screen...”$"
+
+gSystemText_CheckCompleteSaveAttempt:: @ 841170F
+ .string "Check completed.\nAttempting to save again.\nPlease wait.$"
+
+gSystemText_SaveCompletedGameEnd:: @ 8411747
+ .string "Save completed.\n{COLOR RED}“Gameplay cannot be continued.\nReturning to the title screen.”$"
+
+gSystemText_SaveCompletedPressA:: @ 8411799
+ .string "Save completed.\n{COLOR RED}“Please press the A Button.”$"
+
+gOtherText_Ferry:: @ 84117C9
+ .string "FERRY$"
+
+gOtherText_SecretBase:: @ 84117CF
+ .string "SECRET BASE$"
+
+gOtherText_Hideout:: @ 84117DB
+ .string "HIDEOUT$"
+
+gSystemText_ResetRTCPrompt:: @ 84117E3
+ .string "Reset RTC?\nA: Confirm, B: Cancel$"
+
+gSystemText_PresentTime:: @ 8411804
+ .string "Present time in game$"
+
+gSystemText_PreviousTime:: @ 8411819
+ .string "Previous time in game$"
+
+gSystemText_PleaseResetTime:: @ 841182F
+ .string "Please reset the time.$"
+
+gSystemText_ClockResetDataSave:: @ 8411846
+ .string "The clock has been reset.\nData will be saved. Please wait.$"
+
+gSystemText_SaveCompleted:: @ 8411881
+ .string "Save completed.$"
+
+gSystemText_SaveFailed:: @ 8411891
+ .string "Save failed...$"
+
+gSystemText_NoSaveFileNoTime:: @ 84118A0
+ .string "There is no save file, so the time\ncan’t be set.$"
+
+gSystemText_ClockAdjustmentUsable:: @ 84118D1
+ .string "The in-game clock adjustment system\nis now useable.$"
+
+gSystemText_Saving:: @ 8411905
+ .string "SAVING...\nDON’T TURN OFF THE POWER.$"
diff --git a/data/strings2.s b/data/strings2.s
new file mode 100644
index 000000000..cece71645
--- /dev/null
+++ b/data/strings2.s
@@ -0,0 +1,554 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+ @ unused
+gOtherText_TopSpeed::
+ .string "TOP SPEED$"
+
+gMultiText_BerryBlenderMaxSpeedRecord:: @ 842C2E6
+ .string "BERRY BLENDER\nMAXIMUM SPEED RECORD!$"
+
+gMultiText_2P3P4P:: @ 842C30A
+ .string "2 PLAYERS\n3 PLAYERS\n4 PLAYERS$"
+
+gMultiText_Saving:: @ 842C328
+ .string "SAVING...\nDON’T TURN OFF THE POWER.$"
+
+gMultiText_LinkError:: @ 842C34C
+ .string "{HIGHLIGHT TRANSPARENT}{COLOR WHITE2}Link error...\nCheck your Game Link cable connection,\nand turn the power off and on.$"
+
+gSystemText_OptionMenu:: @ 842C3A6
+ .string "{PALETTE 9}OPTION$"
+
+gSystemText_TextSpeed:: @ 842C3B0
+ .string "{PALETTE 9}TEXT SPEED$"
+
+gSystemText_BattleScene:: @ 842C3BE
+ .string "{PALETTE 9}BATTLE SCENE$"
+
+gSystemText_BattleStyle:: @ 842C3CE
+ .string "{PALETTE 9}BATTLE STYLE$"
+
+gSystemText_Sound:: @ 842C3DE
+ .string "{PALETTE 9}SOUND$"
+
+gSystemText_Frame:: @ 842C3E7
+ .string "{PALETTE 9}FRAME$"
+
+gSystemText_Cancel:: @ 842C3F0
+ .string "{PALETTE 9}CANCEL$"
+
+gSystemText_ButtonMode:: @ 842C3FA
+ .string "{PALETTE 9}BUTTON MODE$"
+
+gSystemText_Slow:: @ 842C409
+ .string "{PALETTE 15}SLOW$"
+
+gSystemText_Mid:: @ 842C411
+ .string "{PALETTE 15}MID$"
+
+gSystemText_Fast:: @ 842C418
+ .string "{PALETTE 15}FAST$"
+
+gSystemText_On:: @ 842C420
+ .string "{PALETTE 15}ON$"
+
+gSystemText_Off:: @ 842C426
+ .string "{PALETTE 15}OFF$"
+
+gSystemText_Shift:: @ 842C42D
+ .string "{PALETTE 15}SHIFT$"
+
+gSystemText_Set:: @ 842C436
+ .string "{PALETTE 15}SET$"
+
+gSystemText_Mono:: @ 842C43D
+ .string "{PALETTE 15}MONO$"
+
+gSystemText_Stereo:: @ 842C445
+ .string "{PALETTE 15}STEREO$"
+
+gSystemText_Type:: @ 842C44F
+ .string "{PALETTE 15}TYPE$"
+
+gSystemText_Terminator:: @ 842C457
+ .string "{PALETTE 8}$"
+
+gSystemText_Normal:: @ 842C45B
+ .string "{PALETTE 15}NORMAL$"
+
+gSystemText_LR:: @ 842C465
+ .string "{PALETTE 15}LR$"
+
+gSystemText_LA:: @ 842C46B
+ .string "{PALETTE 15}L=A$"
+
+SystemText_Pokedex::
+ .string "POKéDEX$"
+SystemText_Pokemon::
+ .string "POKéMON$"
+SystemText_BAG::
+ .string "BAG$"
+SystemText_Pokenav::
+ .string "POKéNAV$"
+SystemText_Player::
+ .string "{PLAYER}$"
+SystemText_Save::
+ .string "SAVE$"
+SystemText_Option::
+ .string "OPTION$"
+SystemText_Exit::
+ .string "EXIT$"
+SystemText_Retire:: @ safari zone?
+ .string "RETIRE$"
+
+gOtherText_SafariStock:: @ 842C4A9
+ .string "SAFARI BALLS\nStock: {STR_VAR_1}$"
+
+gSystemText_LinkStandby:: @ 842C4C0
+ .string "Link standby...\n... ... B Button: Cancel$"
+
+gSystemText_LoadEventPressA:: @ 842C4E9
+ .string "Press the A Button to load event.\n... ... B Button: Cancel$"
+
+gSystemText_LoadingEvent:: @ 842C524
+ .string "Loading event...$"
+
+gSystemText_DontCutLink:: @ 842C535
+ .string "Don’t remove the Game Link cable.\nDon’t turn off the power.$"
+
+gSystemText_EventLoadSuccess:: @ 842C571
+ .string "The event was safely loaded.$$"
+
+gSystemText_LoadingError:: @ 842C58F
+ .string "Loading error.\nEnding session.$$$$$$$$"
+
+gOtherText_Hoenn:: @ 842C5B5
+ .string "HOENN$"
+
+gOtherText_OhABite:: @ 842C5BB
+ .string "Oh! A bite!$"
+
+gOtherText_PokeOnHook:: @ 842C5C7
+ .string "A POKéMON’s on the hook!{PAUSE_UNTIL_PRESS}$"
+
+gOtherText_NotEvenANibble:: @ 842C5E2
+ .string "Not even a nibble...{PAUSE_UNTIL_PRESS}$"
+
+gOtherText_ItGotAway:: @ 842C5F9
+ .string "It got away...{PAUSE_UNTIL_PRESS}$$"
+
+gTradeText_WillBeSent:: @ 842C60B
+ .string "{STR_VAR_2} will be sent to {STR_VAR_1}.$"
+
+gTradeText_ByeBye:: @ 842C622
+ .string "Bye-bye, {STR_VAR_2}!$"
+
+gTradeText_SentOverPoke:: @ 842C62F
+ .string "{STR_VAR_1} sent over {STR_VAR_3}.$"
+
+gTradeText_TakeGoodCare:: @ 842C640
+ .string "Take good care of {STR_VAR_3}!$"
+
+TradeText_Cancel::
+ .string "CANCEL$"
+TradeText_ChoosePoke::
+ .string "Choose a POKéMON.$"
+TradeText_Summary1::
+ .string "SUMMARY$"
+TradeText_Trade1::
+ .string "TRADE$"
+TradeText_CancelTradePrompt::
+ .string "Cancel trade?$"
+TradeText_PressBToExit::
+ .string "Press the B Button to exit.$"
+TradeText_Summary2::
+ .string "SUMMARY$"
+TradeText_Trade2::
+ .string "TRADE$"
+TradeText_LinkStandby::
+ .string "{COLOR DARK_GREY}{HIGHLIGHT WHITE2}{SHADOW LIGHT_GREY}Link standby...\nPlease wait.$"
+TradeText_TradeCancelled::
+ .string "{COLOR DARK_GREY}{HIGHLIGHT WHITE2}{SHADOW LIGHT_GREY}The trade has\nbeen canceled.$"
+TradeText_OnlyPoke::
+ .string "{COLOR DARK_GREY}{HIGHLIGHT WHITE2}{SHADOW LIGHT_GREY}That’s your only\nPOKéMON for battle.$"
+TradeText_NonTradablePoke::
+ .string "{COLOR DARK_GREY}{HIGHLIGHT WHITE2}{SHADOW LIGHT_GREY}Your friend can’t\ntrade that one.$"
+TradeText_WaitingForFriend::
+ .string "{COLOR DARK_GREY}{HIGHLIGHT WHITE2}{SHADOW LIGHT_GREY}Waiting for your\nfriend to finish...$"
+TradeText_WantToTrade::
+ .string "{COLOR DARK_GREY}{HIGHLIGHT WHITE2}{SHADOW LIGHT_GREY}Your friend wants\nto trade POKéMON.$"
+ .string "$"
+
+gTradeText_TradeOkayPrompt:: @ 842C7B6
+ .string "Is this trade okay?$"
+
+gOtherText_Terminator2:: @ 842C7CA
+ .string "$"
+
+gOtherText_ControlAndMiscText:: @ 842C7CB
+ .string "\n$"
+ .string "/$"
+ .string "Lv$"
+ .string "---$"
+
+gOtherText_FourQuestions:: @ 842C7D6
+ .string "????$"
+
+@ 842C7DB
+ .include "data/text/easy_chat/group_name_strings.inc"
+
+gOtherText_ThreeQuestions:: @ 842C890
+ .string "???$"
+
+gOtherText_From:: @ 842C894
+ .string "From $"
+
+gOtherText_MixingRecordsWithFriend:: @ 842C89A
+ .string "Mixing records...$"
+
+gOtherText_MixingComplete:: @ 842C8AC
+ .string "Record mixing completed.\nThank you for waiting.$"
+
+gOtherText_TrainersTrainerCard:: @ 842C8DC
+ .string "’s TRAINER CARD$"
+
+gOtherText_FirstHOF:: @ 842C8EC
+ .string "FIRST HALL OF FAME$"
+
+gOtherText_LinkCableBattles:: @ 842C8FF
+ .string "LINK CABLE BATTLES W/ L/$"
+
+gOtherText_BattleTowerWinRecord:: @ 842C924
+ .string "BATTLE TOWER W/{CLEAR_TO 0x72}&{CLEAR_TO 0x98}STRAIGHT$"
+
+gOtherText_ContestRecord:: @ 842C943
+ .string "CONTESTS W/FRIENDS W/$"
+
+gOtherText_MixingRecord:: @ 842C959
+ .string "{POKEBLOCK}S W/FRIENDS$"
+
+gOtherText_TradeRecord:: @ 842C96A
+ .string "POKéMON TRADES$"
+
+gOtherText_Boy:: @ 842C979
+ .string "BOY$"
+
+gOtherText_Girl:: @ 842C97D
+ .string "GIRL$"
+ .string "$"
+
+gOtherText_Player:: @ 842C983
+ .string "PLAYER$"
+
+gOtherText_Badges:: @ 842C98A
+ .string "BADGES$"
+ .string "$"
+
+gOtherText_Pokedex:: @ 842C992
+ .string "POKéDEX$"
+
+gOtherText_PlayTime:: @ 842C99A
+ .string "PLAY TIME$"
+
+gOtherText_SentToPC:: @ 842C9A4
+ .string "{STR_VAR_1} was sent to\nthe PC.{PAUSE_UNTIL_PRESS}$"
+
+OtherText_YourName::
+ .string "YOUR NAME?$"
+OtherText_BoxName::
+ .string "BOX NAME?$"
+OtherText_PokeName::
+ .string "{STR_VAR_1}’s nickname?$"
+
+gOtherText_Marco:: @ 842C9E1
+ .string "MARCO$" @ polo
+
+gOtherText_Coins:: @ 842C9E7
+ .string "{STR_VAR_1} COINS$"
+
+gOtherText_BattleResults:: @ 842C9F0
+ .string "{PLAYER}’s BATTLE RESULTS$"
+
+gOtherText_WinRecord:: @ 842CA04
+ .string "TOTAL RECORD W/{STR_VAR_1} L/{STR_VAR_2} D/{STR_VAR_3}$"
+
+gOtherText_WinLoseDraw:: @ 842CA20
+ .string "WIN LOSE DRAW$"
+
+gOtherText_SevenDashes:: @ 842CA3C
+ .string "-------$"
+
+gOtherText_FourDashes:: @ 842CA44
+ .string "----$"
+
+gOtherText_BattleTowerResults:: @ 842CA49
+ .string "{PLAYER}’s BATTLE TOWER RESULTS$"
+
+gOtherText_Lv50:: @ 842CA63
+ .string "LV 50$"
+
+gOtherText_Lv100:: @ 842CA69
+ .string "LV 100$"
+
+gOtherText_WinStreak:: @ 842CA70
+ .string "{STR_VAR_1}W STREAK$"
+
+gOtherText_Current:: @ 842CA7B
+ .string "CURRENT$"
+
+gOtherText_Record:: @ 842CA83
+ .string "RECORD$"
+
+gOtherText_Prev:: @ 842CA8A
+ .string "PREV.$"
+
+gOtherText_QuitGamePrompt:: @ 842CA90
+ .string "Quit the game?$"
+
+gOtherText_MaxCoins:: @ 842CA9F
+ .string "You’ve got 9,999 COINS.$"
+
+gOtherText_OutOfCoins:: @ 842CAB7
+ .string "You’ve run out of COINS.\nGame over!$"
+
+gOtherText_DontHaveThreeCoins:: @ 842CADB
+ .string "You don’t have three COINS.$"
+
+gOtherText_ReelTime:: @ 842CAF7
+ .string "REEL TIME\nHere’s your chance to take\naim and nail marks!\nThe Reel Time continues for\nas often as the drawn number.\nIt all ends on a Big Bonus.$"
+
+DaycareText_GetAlongVeryWell::
+ .string "The two seem to get along very well.$"
+DaycareText_GetAlong::
+ .string "The two seem to get along.$"
+DaycareText_DontLikeOther::
+ .string "The two don’t seem to like each other.$"
+DaycareText_PlayOther::
+ .string "The two prefer to play with other\nPOKéMON than each other.$"
+
+gOtherText_NewLine2:: @ 842CC28
+ .string "\n$"
+
+gOtherText_CancelAndLv:: @ 842CC2A
+ .string "CANCEL$"
+ .string "LV$"
+
+gEggNickname:: @ 842CC34
+ .string "EGG$"
+
+gOtherText_HatchedFromEgg:: @ 842CC38
+ .string "{COLOR WHITE2}{HIGHLIGHT TRANSPARENT}{SHADOW DARK_GREY}{STR_VAR_1} hatched from the EGG!$"
+
+gOtherText_NickHatchPrompt:: @ 842CC5A
+ .string "{COLOR WHITE2}{HIGHLIGHT TRANSPARENT}{SHADOW DARK_GREY}Would you like to nickname the newly\nhatched {STR_VAR_1}?$"
+
+OtherText_Battle::
+ .string "BATTLE$"
+OtherText_Contest::
+ .string "CONTEST$"
+OtherText_Type::
+ .string "TYPE/$"
+OtherText_PP::
+ .string "PP/$"
+OtherText_Power::
+ .string "POWER$"
+OtherText_Accuracy::
+ .string "ACCURACY$"
+OtherText_Appeal::
+ .string "APPEAL$"
+OtherText_Jam::
+ .string "JAM$"
+
+gOtherText_TeachWhichMove:: @ 842CCC7
+ .string "Teach which move to {STR_VAR_1}?$"
+
+gOtherText_TeachSpecificMove:: @ 842CCDF
+ .string "Teach {STR_VAR_2}?$"
+
+gOtherText_PokeLearnedMove:: @ 842CCE9
+ .string "{STR_VAR_1} learned {STR_VAR_2}.$"
+
+gOtherText_DeleteOlderMove:: @ 842CCF8
+ .string "{STR_VAR_1} is trying to learn\n{STR_VAR_2}.\pBut {STR_VAR_1} can’t learn more\nthan four moves.\pDelete an older move to make\nroom for {STR_VAR_2}?$"
+
+gOtherText_StopLearningMove:: @ 842CD65
+ .string "Stop learning {STR_VAR_2}?$"
+
+gOtherText_ForgotMove123:: @ 842CD77
+ .string "{PAUSE 32}1, {PAUSE 15}2 {PAUSE 15}...{PAUSE 15}...{PAUSE 15}...{PAUSE 15} {PLAY_SE 0x0038}Poof!\p$"
+
+gOtherText_ForgotOrDidNotLearnMove:: @ 842CDA3
+ .string "{STR_VAR_1} forgot {STR_VAR_3}.\pAnd...\p{STR_VAR_1} learned {STR_VAR_2}.$"
+ .string "{STR_VAR_1} did not learn\n{STR_VAR_2}.$"
+
+gOtherText_GiveUpTeachingMove:: @ 842CDDC
+ .string "Give up trying to teach a new move\nto {STR_VAR_1}?$"
+
+gOtherText_WhichMoveToForget:: @ 842CE06
+ .string "Which move should be forgotten?\p$"
+
+gSystemText_ClearAllSaveDataPrompt:: @ 842CE27
+ .string "Clear all save data areas?$"
+
+gSystemText_ClearingData:: @ 842CE42
+ .string "Clearing data...\nPlease wait.$"
+
+gContestText_AnnounceResults:: @ 842CE60
+ .string "Announcing the results!$"
+
+gContestText_PreliminaryResults:: @ 842CE78
+ .string "The preliminary results!$"
+
+gContestText_Round2Results:: @ 842CE91
+ .string "Round 2 results!$"
+
+gContestText_PokeWon:: @ 842CEA2
+ .string "{STR_VAR_1}’s {STR_VAR_2} won!$"
+
+gOtherText_LinkStandby:: @ 842CEAF
+ .string "Link standby...$"
+
+@ 842CEBF
+ .include "data/text/landmarks.inc"
+
+gOtherText_Terminator4:: @ 842D0E6
+ .string "$"
+
+gOtherText_Nature:: @ 842D0E7
+ .string " nature, $"
+
+gOtherText_Comma:: @ 842D0F1
+ .string ",$"
+
+gOtherText_Met:: @ 842D0F3
+ .string " (met).$"
+
+gOtherText_Egg2:: @ 842D0FB
+ .string " (EGG).$"
+
+gOtherText_ObtainedInTrade:: @ 842D103
+ .string "obtained in a trade.$"
+
+gOtherText_FatefulEncounter:: @ 842D118
+ .string "fateful encounter.$"
+
+gOtherText_Met2:: @ 842D12B
+ .string " (met).$"
+
+gOtherText_EggDayCare:: @ 842D133
+ .string "An odd POKéMON EGG found\nby the DAY CARE couple.$"
+
+gOtherText_EggNicePlace:: @ 842D164
+ .string "A peculiar POKéMON EGG\nobtained at the nice place.$"
+
+gOtherText_EggObtainedInTrade:: @ 842D197
+ .string "A peculiar POKéMON EGG\nobtained in a trade.$"
+
+gOtherText_EggHotSprings:: @ 842D1C3
+ .string "A POKéMON EGG obtained\nat the hot springs.$"
+
+gOtherText_LinkStandby2:: @ 842D1EE
+ .string "Link standby...$"
+
+gOtherText_YesNoAndPlayer:: @ 842D1FE
+ .string "{COLOR DARK_GREY}{HIGHLIGHT WHITE2}{SHADOW LIGHT_GREY}YES\nNO$"
+ .string "{HIGHLIGHT TRANSPARENT}PLAYER$"
+ .string "{HIGHLIGHT TRANSPARENT}$"
+
+gOtherText_HoennDex:: @ 842D21C
+ .string "HOENN$"
+
+gOtherText_NationalDex:: @ 842D222
+ .string "NATIONAL$"
+
+gOtherText_DiplomaCertificationGameFreak:: @ 842D22B
+ .string "{HIGHLIGHT TRANSPARENT}Player: {CLEAR 0x10}{COLOR RED}{PLAYER}\n\n{COLOR DARK_GREY}{STR_VAR_1} POKéDEX\nThis document certifies\nthat you have successfully\ncompleted your POKéDEX.\n\n{CLEAR_TO 0x42}{COLOR RED}GAME FREAK$"
+ .string "{COLOR RED}{HIGHLIGHT TRANSPARENT}GAME FREAK$"
+
+gOtherText_PLink:: @ 842D2BC
+ .string "{STR_VAR_1}P LINK$"
+
+gOtherText_YesNoTerminating:: @ 842D2C5
+ .string "YES\nNO$"
+ .string "Terminating.$"
+
+gOtherText_LinkNotFound:: @ 842D2D9
+ .string "Link partner(s) not found.\nPlease try again.\p$"
+
+gOtherText_BlenderChooseBerry:: @ 842D307
+ .string "Starting up the BERRY BLENDER.\pPlease select a BERRY from your BAG\nto put in the BERRY BLENDER.\p$"
+
+gOtherText_PokeBlockMade:: @ 842D368
+ .string " was made!$"
+
+gOtherText_PressAToStart:: @ 842D373
+ .string "Press the A Button to start.$"
+
+gOtherText_PleaseWait:: @ 842D390
+ .string "Please wait a while.$"
+
+gOtherText_LinkStandby3:: @ 842D3A5
+ .string "Link standby...$"
+
+gOtherText_BlendAnotherBerryPrompt:: @ 842D3B5
+ .string "Would you like to blend another BERRY?$"
+
+gOtherText_OutOfBerries:: @ 842D3DC
+ .string "You’ve run out of BERRIES for\nblending in the BERRY BLENDER.\p$"
+
+gOtherText_CaseIsFull:: @ 842D41A
+ .string "Your {POKEBLOCK} CASE is full.\p$"
+
+gOtherText_NoBerriesForBlend:: @ 842D434
+ .string " has no BERRIES to put in\nthe BERRY BLENDER.$"
+
+gOtherText_OtherCaseIsFull:: @ 842D461
+ .string "’s {POKEBLOCK} CASE is full.\p$"
+
+gOtherText_ResultsOfBlending:: @ 842D479
+ .string "RESULTS OF BLENDING$"
+ .string "BERRY USED$"
+
+gOtherText_Berry:: @ 842D498
+ .string " BERRY$"
+
+gOtherText_RequiredTime:: @ 842D49F
+ .string "REQUIRED TIME$"
+
+gOtherText_Min:: @ 842D4AD
+ .string "MIN.$"
+
+gOtherText_Sec:: @ 842D4B2
+ .string "SEC.$"
+
+gOtherText_MaxSpeed:: @ 842D4B7
+ .string "MAXIMUM SPEED$"
+
+gOtherText_RPM:: @ 842D4C5
+ .string "RPM$"
+ .string ".$"
+
+gOtherText_Ranking:: @ 842D4CB
+ .string "RANKING$"
+
+gOtherText_BlockLevelIs:: @ 842D4D3
+ .string "The level is $"
+
+gOtherText_BlockFeelIs:: @ 842D4E1
+ .string ", and the feel is $"
+
+gOtherText_Period:: @ 842D4F4
+ .string ".$"
+
+gOtherText_Day:: @ 842D4F6
+ .string "DAY$"
+ .string ":$"
+
+gOtherText_OK:: @ 842D4FC
+ .string "OK$"
+
+gOtherText_CorrectTimePrompt:: @ 842D4FF
+ .string "Is this the correct time?$"
diff --git a/data/task.s b/data/task.s
new file mode 100644
index 000000000..e87c5b1fc
--- /dev/null
+++ b/data/task.s
@@ -0,0 +1,7 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+ .string "TASK OVER\n"
+ .string "タスクがオーバーしました$"
diff --git a/data/text/battle_strings.inc b/data/text/battle_strings.inc
index b4542b1b9..12ccf0fad 100644
--- a/data/text/battle_strings.inc
+++ b/data/text/battle_strings.inc
@@ -1,63 +1,3 @@
- .align 2
-gUnknown_083FE4F4:: @ 83FE4F4
- .4byte dp01t_00_3_getattr
- .4byte sub_811EC04
- .4byte sub_811EC10
- .4byte sub_811F664
- .4byte sub_811F6D8
- .4byte sub_811F7F4
- .4byte sub_811F9D0
- .4byte sub_811FAE4
- .4byte sub_811FC30
- .4byte sub_811FC3C
- .4byte sub_811FCE8
- .4byte sub_811FDCC
- .4byte sub_811FDD8
- .4byte sub_811FDE4
- .4byte sub_811FDF0
- .4byte sub_811FDFC
- .4byte sub_8120094
- .4byte sub_81200F8
- .4byte sub_8120104
- .4byte sub_8120110
- .4byte sub_812011C
- .4byte sub_8120128
- .4byte sub_8120134
- .4byte sub_8120140
- .4byte sub_812014C
- .4byte sub_812023C
- .4byte sub_8120248
- .4byte sub_81202BC
- .4byte sub_8120324
- .4byte sub_8120330
- .4byte sub_812033C
- .4byte sub_8120348
- .4byte sub_8120354
- .4byte sub_8120360
- .4byte sub_812036C
- .4byte sub_8120378
- .4byte sub_8120384
- .4byte sub_8120390
- .4byte sub_81203AC
- .4byte sub_81203E4
- .4byte sub_81203FC
- .4byte dp01t_29_3_blink
- .4byte sub_8120494
- .4byte sub_81204A0
- .4byte sub_81204E4
- .4byte sub_8120514
- .4byte dp01t_2E_3_battle_intro
- .4byte sub_8120588
- .4byte dp01t_30_3_80EB11C
- .4byte sub_8120920
- .4byte sub_812096C
- .4byte sub_8120978
- .4byte sub_81209D8
- .4byte sub_8120A40
- .4byte sub_8120A4C
- .4byte sub_8120A58
- .4byte nullsub_75
-
BattleText_UnknownString:
.string "{STRING 33}$"
BattleText_GainExpPoints:
@@ -1113,19 +1053,20 @@ BattleText_SafariBallsLeft:
gUnknown_08400DF0:: @ 8400DF0
BattleText_HighlightRed:
.string "{HIGHLIGHT RED}$"
-BattleText_Sleep:
+
+BattleText_Sleep::
.string "sleep$"
-BattleText_PoisonStatus:
+BattleText_PoisonStatus::
.string "poison$"
-BattleText_Burn:
+BattleText_Burn::
.string "burn$"
-BattleText_Paralysis:
+BattleText_Paralysis::
.string "paralysis$"
-BattleText_IceStatus:
+BattleText_IceStatus::
.string "ice$"
-BattleText_Confusion:
+BattleText_Confusion::
.string "confusion$"
-BattleText_Love:
+BattleText_Love::
.string "love$"
gUnknown_08400E23:: @ 8400E23
@@ -1163,16 +1104,13 @@ gUnknown_08400E42:: @ 8400E42
BattleText_Wally:
.string "WALLY$"
-gUnknown_08400E48:: @ 8400E48
-BattleText_Win:
+BattleText_Win:: @ 8400E48
.string "{HIGHLIGHT TRANSPARENT}Win$"
-gUnknown_08400E4F:: @ 8400E4F
-BattleText_Loss:
+BattleText_Loss:: @ 8400E4F
.string "{HIGHLIGHT TRANSPARENT}Loss$"
-gUnknown_08400E57:: @ 8400E57
-BattleText_Tie:
+BattleText_Tie:: @ 8400E57
.string "{HIGHLIGHT TRANSPARENT}Tie$"
gUnknown_08400E5E:: @ 8400E5E
diff --git a/data/text/cable_club.inc b/data/text/cable_club.inc
index 1d3c7fd92..a4c8bc7c0 100644
--- a/data/text/cable_club.inc
+++ b/data/text/cable_club.inc
@@ -127,22 +127,22 @@ OldaleTown_PokemonCenter_2F_Text_1A4C38:: @ 81A4C38
.string "Please confirm the number of players\n"
.string "and start again.$"
-UnknownString_81A4C6E: @ 81A4C6E
+TradeRoom_WillLinkBeTerminated: @ 81A4C6E
.string "The link will be terminated if you\n"
.string "leave the room. Is that okay?$"
-UnknownString_81A4CAF: @ 81A4CAF
+TradeRoom_TerminatingLink: @ 81A4CAF
.string "Terminating link... You will be\n"
.string "escorted out of the room. Please wait.$"
-UnknownString_81A4CF6: @ 81A4CF6
+CableClub_TooBusyToNotice: @ 81A4CF6
.string "This TRAINER is too busy to notice...$"
-UnknownString_81A4D1C: @ 81A4D1C
+CableClub_LookAtTrainerCard1: @ 81A4D1C
.string "Score! Got to look at {STR_VAR_1}’s\n"
.string "TRAINER CARD!$"
-UnknownString_81A4D45: @ 81A4D45
+CableClub_LookAtTrainerCard2: @ 81A4D45
.string "Score! Got to look at {STR_VAR_1}’s\n"
.string "TRAINER CARD! It’s a {STR_VAR_2} card!$"
diff --git a/data/text/credits.inc b/data/text/credits.inc
index 2f7aa5478..29abccf91 100644
--- a/data/text/credits.inc
+++ b/data/text/credits.inc
@@ -703,256 +703,307 @@ gCreditsEntryPointerTable:: @ 840C5F0
.4byte CreditsCredits
.4byte CreditsTerminator
.4byte CreditsTerminator
+
.4byte CreditsTerminator
.4byte CreditsDirector
.4byte CreditsMasuda
.4byte CreditsTerminator
.4byte CreditsTerminator
+
.4byte CreditsTerminator
.4byte CreditsArtDirector
.4byte CreditsSugimori
.4byte CreditsTerminator
.4byte CreditsTerminator
+
.4byte CreditsTerminator
.4byte CreditsBattleDirector
.4byte CreditsMorimoto
.4byte CreditsTerminator
.4byte CreditsTerminator
+
.4byte CreditsTerminator
.4byte CreditsMainProgrammer
.4byte CreditsTetsuyaWatanabe
.4byte CreditsTerminator
.4byte CreditsTerminator
+
.4byte CreditsBattleSystemProgrammer
.4byte CreditsSogabe
.4byte CreditsFieldSystemProgrammer
.4byte CreditsTamada
.4byte CreditsTerminator
+
.4byte CreditsProgrammers
.4byte CreditsMori
.4byte CreditsKagaya
.4byte CreditsMatsuda
.4byte CreditsTerminator
+
.4byte CreditsProgrammers
.4byte CreditsHiroyukiNakamura
.4byte CreditsTaya
.4byte CreditsNohara
.4byte CreditsTerminator
+
.4byte CreditsProgrammers
.4byte CreditsTomomichiOhta
.4byte CreditsIwasawa
.4byte CreditsTakenoriOhta
.4byte CreditsTerminator
+
.4byte CreditsTerminator
.4byte CreditsMainGraphicDesigner
.4byte CreditsYoshida
.4byte CreditsTerminator
.4byte CreditsTerminator
+
.4byte CreditsPOKeMONGraphicDesigners
.4byte CreditsSugimori
.4byte CreditsYoshida
.4byte CreditsTerminator
.4byte CreditsTerminator
+
.4byte CreditsPOKeMONGraphicDesigners
.4byte CreditsFujiwara
.4byte CreditsSatoshiOhta
.4byte CreditsIwashita
.4byte CreditsTerminator
+
.4byte CreditsPOKeMONGraphicDesigners
.4byte CreditsTomita
.4byte CreditsUnno
.4byte CreditsEo
.4byte CreditsTerminator
+
.4byte CreditsPOKeMONDesigners
.4byte CreditsMorimoto
.4byte CreditsOkutani
.4byte CreditsNishida
.4byte CreditsTerminator
+
.4byte CreditsPOKeMONDesigners
.4byte CreditsSaito
.4byte CreditsYoshikawa
.4byte CreditsTerminator
.4byte CreditsTerminator
+
.4byte CreditsMusicComposition
.4byte CreditsIchinose
.4byte CreditsAoki
.4byte CreditsMasuda
.4byte CreditsTerminator
+
.4byte CreditsTerminator
.4byte CreditsSoundEffectsPOKeMONVoices
.4byte CreditsAoki
.4byte CreditsTerminator
.4byte CreditsTerminator
+
.4byte CreditsGameDesigners
.4byte CreditsMasuda
.4byte CreditsMorimoto
.4byte CreditsNishino
.4byte CreditsTerminator
+
.4byte CreditsGameDesigners
.4byte CreditsMatsushima
.4byte CreditsTetsujiOhta
.4byte CreditsSato
.4byte CreditsKawachimaru
+
.4byte CreditsGameDesigners
.4byte CreditsShimoyamada
.4byte CreditsOhmori
.4byte CreditsTakahashi
.4byte CreditsTerminator
+
.4byte CreditsPlotScenario
.4byte CreditsMasuda
.4byte CreditsTomisawa
.4byte CreditsNishino
.4byte CreditsTerminator
+
.4byte CreditsGameScenario
.4byte CreditsToshinobuMatsumiya
.4byte CreditsTomisawa
.4byte CreditsTerminator
.4byte CreditsTerminator
+
.4byte CreditsScriptDesigners
.4byte CreditsNohara
.4byte CreditsTetsujiOhta
.4byte CreditsTomomichiOhta
.4byte CreditsTerminator
+
.4byte CreditsMapDesigners
.4byte CreditsOhmori
.4byte CreditsTetsujiOhta
.4byte CreditsNishino
.4byte CreditsTerminator
+
.4byte CreditsMapDataDesigners
.4byte CreditsTetsujiOhta
.4byte CreditsTakahashi
.4byte CreditsTerminator
.4byte CreditsTerminator
+
.4byte CreditsParametricDesigners
.4byte CreditsNishino
.4byte CreditsMorimoto
.4byte CreditsTetsujiOhta
.4byte CreditsShimoyamada
+
.4byte CreditsTerminator
.4byte CreditsPOKeDEXText
.4byte CreditsMatsushima
.4byte CreditsTerminator
.4byte CreditsTerminator
+
.4byte CreditsEnvironmentToolProgrammers
.4byte CreditsSogabe
.4byte CreditsTamada
.4byte CreditsHiroyukiNakamura
.4byte CreditsMori
+
.4byte CreditsProductTesting
.4byte CreditsSuperMarioClub
.4byte CreditsTada
.4byte CreditsOhnishi
.4byte CreditsOkamura
+
.4byte CreditsSpecialThanks
.4byte CreditsTominaga
.4byte CreditsYoshiroTajiri
.4byte CreditsSasaki
.4byte CreditsTerminator
+
.4byte CreditsSpecialThanks
.4byte CreditsHamano
.4byte CreditsChieMatsumiya
.4byte CreditsShinozaki
.4byte CreditsFujii
+
.4byte CreditsSpecialThanks
.4byte CreditsSuyama
.4byte CreditsMitsuhara
.4byte CreditsKomura
.4byte CreditsOhashi
+
.4byte CreditsSpecialThanks
.4byte CreditsTakizawa
.4byte CreditsTakada
.4byte CreditsKondo
.4byte CreditsMashima
+
.4byte CreditsInformationSupervisors
.4byte CreditsEnomoto
.4byte CreditsTerada
.4byte CreditsSakurai
.4byte CreditsSagawa
+
.4byte CreditsCoordinators
.4byte CreditsKyokoWatanabe
.4byte CreditsNakano
.4byte CreditsTerminator
.4byte CreditsTerminator
+
.4byte CreditsTaskManagers
.4byte CreditsYamagami
.4byte CreditsNomoto
.4byte CreditsTerminator
.4byte CreditsTerminator
+
.4byte CreditsProducers
.4byte CreditsJinnai
.4byte CreditsIzushi
.4byte CreditsTsuru
.4byte CreditsTerminator
+
.4byte CreditsTerminator
.4byte CreditsExecutiveDirector
.4byte CreditsSatoshiTajiri
.4byte CreditsTerminator
.4byte CreditsTerminator
+
.4byte CreditsTerminator
.4byte CreditsExecutiveProducers
.4byte CreditsIwata
.4byte CreditsTerminator
.4byte CreditsTerminator
+
.4byte CreditsTerminator
.4byte CreditsExecutiveProducers
.4byte CreditsIshihara
.4byte CreditsTerminator
.4byte CreditsTerminator
+
.4byte CreditsEnglishVersionCoordinators
.4byte CreditsHiroNakamura
.4byte CreditsMcMahill
.4byte CreditsTerminator
.4byte CreditsTerminator
+
.4byte CreditsTerminator
.4byte CreditsTranslator
.4byte CreditsOgasawara
.4byte CreditsTerminator
.4byte CreditsTerminator
+
.4byte CreditsProgrammers
.4byte CreditsMurakawa
.4byte CreditsYamamoto
.4byte CreditsFunakoshi
.4byte CreditsKinashi
+
.4byte CreditsGraphicDesigners
.4byte CreditsYamamoto
.4byte CreditsKinashi
.4byte CreditsTerminator
.4byte CreditsTerminator
+
.4byte CreditsProductSupport
.4byte CreditsNakamichi
.4byte CreditsHara
.4byte CreditsTerminator
.4byte CreditsTerminator
+
.4byte CreditsTerminator
.4byte CreditsArtwork
.4byte CreditsOkada
.4byte CreditsTerminator
.4byte CreditsTerminator
+
.4byte CreditsTerminator
.4byte CreditsTextEditor
.4byte CreditsLillygren
.4byte CreditsTerminator
.4byte CreditsTerminator
+
.4byte CreditsNOAProductTesting
.4byte CreditsHertzog
.4byte CreditsRidgeway
.4byte CreditsTerminator
.4byte CreditsTerminator
+
.4byte CreditsBrailleCodeCheck
.4byte CreditsNFotB
.4byte CreditsMaurer
.4byte CreditsJapanBrailleLibrary
.4byte CreditsEBU
+
.4byte CreditsBrailleCodeCheck
.4byte CreditsABA
.4byte CreditsRNZFotB
.4byte CreditsTerminator
.4byte CreditsTerminator
+
.4byte CreditsSpecialThanks
.4byte CreditsFord
.4byte CreditsBarlow
.4byte CreditsUesugi
.4byte CreditsUyama
+
.4byte CreditsSpecialThanks
.4byte CreditsHowitt
.4byte CreditsTilden
diff --git a/data/text/easy_chat/group_name_strings.inc b/data/text/easy_chat/group_name_strings.inc
index 1113c4072..3d5e3a158 100644
--- a/data/text/easy_chat/group_name_strings.inc
+++ b/data/text/easy_chat/group_name_strings.inc
@@ -1,65 +1,65 @@
-gEasyChatGroupName_Pokemon: @ 842C7DB
+gEasyChatGroupName_Pokemon:: @ 842C7DB
.string "POKéMON$"
-gEasyChatGroupName_Trainer: @ 842C7E3
+gEasyChatGroupName_Trainer:: @ 842C7E3
.string "TRAINER$"
-gEasyChatGroupName_Status: @ 842C7EB
+gEasyChatGroupName_Status:: @ 842C7EB
.string "STATUS$"
-gEasyChatGroupName_Battle: @ 842C7F2
+gEasyChatGroupName_Battle:: @ 842C7F2
.string "BATTLE$"
-gEasyChatGroupName_Greetings: @ 842C7F9
+gEasyChatGroupName_Greetings:: @ 842C7F9
.string "GREETINGS$"
-gEasyChatGroupName_People: @ 842C803
+gEasyChatGroupName_People:: @ 842C803
.string "PEOPLE$"
-gEasyChatGroupName_Voices: @ 842C80A
+gEasyChatGroupName_Voices:: @ 842C80A
.string "VOICES$"
-gEasyChatGroupName_Speech: @ 842C811
+gEasyChatGroupName_Speech:: @ 842C811
.string "SPEECH$"
-gEasyChatGroupName_Endings: @ 842C818
+gEasyChatGroupName_Endings:: @ 842C818
.string "ENDINGS$"
-gEasyChatGroupName_Feelings: @ 842C820
+gEasyChatGroupName_Feelings:: @ 842C820
.string "FEELINGS$"
-gEasyChatGroupName_Conditions: @ 842C829
+gEasyChatGroupName_Conditions:: @ 842C829
.string "CONDITIONS$"
-gEasyChatGroupName_Actions: @ 842C834
+gEasyChatGroupName_Actions:: @ 842C834
.string "ACTIONS$"
-gEasyChatGroupName_Lifestyle: @ 842C83C
+gEasyChatGroupName_Lifestyle:: @ 842C83C
.string "LIFESTYLE$"
-gEasyChatGroupName_Hobbies: @ 842C846
+gEasyChatGroupName_Hobbies:: @ 842C846
.string "HOBBIES$"
-gEasyChatGroupName_Time: @ 842C84E
+gEasyChatGroupName_Time:: @ 842C84E
.string "TIME$"
-gEasyChatGroupName_Misc: @ 842C853
+gEasyChatGroupName_Misc:: @ 842C853
.string "MISC.$"
-gEasyChatGroupName_Adjectives: @ 842C859
+gEasyChatGroupName_Adjectives:: @ 842C859
.string "ADJECTIVES$"
-gEasyChatGroupName_Events: @ 842C864
+gEasyChatGroupName_Events:: @ 842C864
.string "EVENT.$"
-gEasyChatGroupName_Move1: @ 842C86B
+gEasyChatGroupName_Move1:: @ 842C86B
.string "MOVE 1$"
-gEasyChatGroupName_Move2: @ 842C872
+gEasyChatGroupName_Move2:: @ 842C872
.string "MOVE 2$"
-gEasyChatGroupName_TrendySaying: @ 842C879
+gEasyChatGroupName_TrendySaying:: @ 842C879
.string "TRENDY SAYING$"
-gEasyChatGroupName_Pokemon2: @ 842C887
+gEasyChatGroupName_Pokemon2:: @ 842C887
.string "POKéMON2$"
diff --git a/data/text/gabby_and_ty.s b/data/text/gabby_and_ty.s
index 14f2cc3c9..d0eb413be 100644
--- a/data/text/gabby_and_ty.s
+++ b/data/text/gabby_and_ty.s
@@ -150,7 +150,7 @@ Route120_Text_1AC8D7:: @ 81AC8D7
.string "TY: Yep, I got it all.\n"
.string "That whole battle’s on camera.$"
-UnknownString_81AC90D:: @ 81AC90D
+gTVGabbyAndTyText1:: @ 81AC90D
.string "IN SEARCH OF TRAINERS...\p"
.string "GABBY: Hi! Today I’m visiting an area\n"
.string "near {STR_VAR_1}.\p"
@@ -161,14 +161,14 @@ UnknownString_81AC90D:: @ 81AC90D
.string "There’s something about this TRAINER\n"
.string "that piqued our interest.$"
-UnknownString_81ACA02:: @ 81ACA02
+gTVGabbyAndTyText2:: @ 81ACA02
.string "We’ve battled {PLAYER} before, but we\n"
.string "can attest that the TRAINER has most\l"
.string "definitely improved from before.\p"
.string "I knew we were onto someone special\n"
.string "when we spotted this TRAINER!$"
-UnknownString_81ACAAA:: @ 81ACAAA
+gTVGabbyAndTyText3:: @ 81ACAAA
.string "The best way to determine how strong\n"
.string "a TRAINER is...\p"
.string "Well, the fastest way is to battle.\n"
@@ -182,7 +182,7 @@ UnknownString_81ACAAA:: @ 81ACAAA
.string "We asked the TRAINER for a succinct\n"
.string "summation of the battle we shared.$"
-UnknownString_81ACC07:: @ 81ACC07
+gTVGabbyAndTyText4:: @ 81ACC07
.string "The combination of {STR_VAR_1} and\n"
.string "{STR_VAR_3} was divine!\p"
.string "The sight of them - {STR_VAR_1} and\n"
@@ -194,7 +194,7 @@ UnknownString_81ACC07:: @ 81ACC07
.string "The move {STR_VAR_2} is {STR_VAR_1}\n"
.string "and {STR_VAR_3}’s sign of friendship!$"
-UnknownString_81ACD13:: @ 81ACD13
+gTVGabbyAndTyText5:: @ 81ACD13
.string "...I lost confidence in myself as\n"
.string "a result of our encounter.\p"
.string "We were beaten before we could launch\n"
@@ -205,7 +205,7 @@ UnknownString_81ACD13:: @ 81ACD13
.string "I recommend confident TRAINERS to\n"
.string "challenge {PLAYER}.$"
-UnknownString_81ACDFA:: @ 81ACDFA
+gTVGabbyAndTyText6:: @ 81ACDFA
.string "There’s only one thing to be said.\n"
.string "Don’t you dare throw a POKé BALL during\l"
.string "a TRAINER battle!\p"
@@ -215,13 +215,13 @@ UnknownString_81ACDFA:: @ 81ACDFA
.string "If you see {PLAYER}, please caution\n"
.string "the TRAINER!$"
-UnknownString_81ACEE7:: @ 81ACEE7
+gTVGabbyAndTyText7:: @ 81ACEE7
.string "{PLAYER} is adept at reading the\n"
.string "opponent’s actions.\p"
.string "The timing of item usage was remarkably\n"
.string "effective!$"
-UnknownString_81ACF49:: @ 81ACF49
+gTVGabbyAndTyText8:: @ 81ACF49
.string "Honestly speaking, I thought that\n"
.string "I might even be pretty good.\p"
.string "While we did end up losing, we did have\n"
@@ -229,7 +229,7 @@ UnknownString_81ACF49:: @ 81ACF49
.string "But if you’re struggling against me,\n"
.string "you have a ways to go, {PLAYER}!$"
-UnknownString_81AD00A:: @ 81AD00A
+gTVGabbyAndTyText9:: @ 81AD00A
.string "After our battle, we asked {PLAYER} for\n"
.string "a succinct summary.\p"
.string "The TRAINER replied, “{STR_VAR_1}.”\p"
diff --git a/data/text/pokemon_news.s b/data/text/pokemon_news.s
index 79bf0f81c..95bb0888a 100644
--- a/data/text/pokemon_news.s
+++ b/data/text/pokemon_news.s
@@ -1,4 +1,4 @@
-UnknownString_81AD135:: @ 81AD135
+gTVNewsText_EnergyGuru1:: @ 81AD135
.string "Greetings!\n"
.string "It’s time for POKéMON NEWS.\p"
.string "SLATEPORT’s most popular kind of guy,\n"
@@ -13,7 +13,7 @@ UnknownString_81AD135:: @ 81AD135
.string "would be well worth your while that day.\p"
.string "That’s the news on POKéMON NEWS.$"
-UnknownString_81AD2E0:: @ 81AD2E0
+gTVNewsText_EnergyGuru2:: @ 81AD2E0
.string "Greetings!\n"
.string "It’s time for POKéMON NEWS.\p"
.string "This is the news you’ve all been\n"
@@ -27,7 +27,7 @@ UnknownString_81AD2E0:: @ 81AD2E0
.string "to your heart’s content?\p"
.string "That’s the news on POKéMON NEWS.$"
-UnknownString_81AD434:: @ 81AD434
+gTVNewsText_EnergyGuru3:: @ 81AD434
.string "Greetings!\n"
.string "It’s time for POKéMON NEWS.\p"
.string "This is the news you’ve all been\n"
@@ -42,7 +42,7 @@ UnknownString_81AD434:: @ 81AD434
.string "a most enjoyable shopping trip?\p"
.string "That’s the news on POKéMON NEWS.$"
-UnknownString_81AD5B0:: @ 81AD5B0
+gTVNewsText_GameCorner1:: @ 81AD5B0
.string "Greetings!\n"
.string "It’s time for POKéMON NEWS.\p"
.string "It’s approaching!\n"
@@ -53,7 +53,7 @@ UnknownString_81AD5B0:: @ 81AD5B0
.string "may be lucky on this particular day!\p"
.string "That’s the news on POKéMON NEWS.$"
-UnknownString_81AD6AE:: @ 81AD6AE
+gTVNewsText_GameCorner2:: @ 81AD6AE
.string "Greetings!\n"
.string "It’s time for POKéMON NEWS.\p"
.string "It’s here!\n"
@@ -66,7 +66,7 @@ UnknownString_81AD6AE:: @ 81AD6AE
.string "This is the place!\p"
.string "That’s the news on POKéMON NEWS.$"
-UnknownString_81AD7A7:: @ 81AD7A7
+gTVNewsText_GameCorner3:: @ 81AD7A7
.string "Greetings!\n"
.string "It’s time for POKéMON NEWS.\p"
.string "It’s here!\n"
@@ -79,7 +79,7 @@ UnknownString_81AD7A7:: @ 81AD7A7
.string "The location is MAUVILLE CITY.\p"
.string "That’s the news on POKéMON NEWS.$"
-UnknownString_81AD8B4:: @ 81AD8B4
+gTVNewsText_LilycoveDepartment1:: @ 81AD8B4
.string "Greetings!\n"
.string "It’s time for POKéMON NEWS.\p"
.string "We’ve just received wonderful news\n"
@@ -90,7 +90,7 @@ UnknownString_81AD8B4:: @ 81AD8B4
.string "you’ve always wanted could be yours!\p"
.string "That’s the news on POKéMON NEWS.$"
-UnknownString_81AD9D3:: @ 81AD9D3
+gTVNewsText_LilycoveDepartment2:: @ 81AD9D3
.string "Greetings!\n"
.string "It’s time for POKéMON NEWS.\p"
.string "This is the news you’ve all been\n"
@@ -103,7 +103,7 @@ UnknownString_81AD9D3:: @ 81AD9D3
.string "with them all!\p"
.string "That’s the news on POKéMON NEWS.$"
-UnknownString_81ADB01:: @ 81ADB01
+gTVNewsText_LilycoveDepartment3:: @ 81ADB01
.string "Greetings!\n"
.string "It’s time for POKéMON NEWS.\p"
.string "This is the news you’ve all been\n"
@@ -116,27 +116,28 @@ UnknownString_81ADB01:: @ 81ADB01
.string "with them all!\p"
.string "That’s the news on POKéMON NEWS.$"
-UnknownString_81ADC2F:: @ 81ADC2F
+ @ all text advertisements below are unused.
+gTVUnusedText_DevonCorporation:: @ 81ADC2F
.string "This program has been brought to you\n"
.string "by the DEVON CORPORATION.$"
-UnknownString_81ADC6E:: @ 81ADC6E
+gTVUnusedText_Contests:: @ 81ADC6E
.string "What’s important is love for POKéMON.\p"
.string "What you need is a little courage.\p"
.string "Let your cherished POKéMON take\n"
.string "center stage! POKéMON CONTESTS!$"
-UnknownString_81ADCF7:: @ 81ADCF7
+gTVUnusedText_DayCare:: @ 81ADCF7
.string "We raise your beloved POKéMON with\n"
.string "all of our love!\p"
.string "For all your POKéMON-training needs,\n"
.string "visit our DAY CARE on ROUTE 117.$"
-UnknownString_81ADD71:: @ 81ADD71
+gTVUnusedText_LavaridgeSpa:: @ 81ADD71
.string "The cauldron of good times and laughs!\n"
.string "LAVARIDGE SPA.$"
-UnknownString_81ADDA7:: @ 81ADDA7
+gTVUnusedText_LilycoveDepartment:: @ 81ADDA7
.string "Overflowing with great merchandise\n"
.string "and excitement!\p"
.string "A great place to find that something\n"
diff --git a/data/text/tv.inc b/data/text/tv.inc
index d2cc1a6fa..f1f078405 100644
--- a/data/text/tv.inc
+++ b/data/text/tv.inc
@@ -43,7 +43,7 @@ FallarborTown_ContestLobby_Text_1A72A8:: @ 81A72A8
.string "I’ll be looking forward to your next\n"
.string "POKéMON CONTEST.$"
-UnknownString_81A72DE:: @ 81A72DE
+gTVBravoTrainerText1:: @ 81A72DE
.string "Yeah!\n"
.string "It’s BRAVO TRAINER time!\p"
.string "Today, we’re going to profile a POKéMON\n"
@@ -51,20 +51,20 @@ UnknownString_81A72DE:: @ 81A72DE
.string "Now, this POKéMON boasts a {STR_VAR_2}\n"
.string "rating in the {STR_VAR_3} Rank.$"
-UnknownString_81A736B:: @ 81A736B
+gTVBravoTrainerText2:: @ 81A736B
.string "Introducing {STR_VAR_2} the\n"
.string "{STR_VAR_1}!\p"
.string "The nickname {STR_VAR_2}...\p"
.string "Even the nickname exudes an air that\n"
.string "proclaims “{STR_VAR_3}”!$"
-UnknownString_81A73CA:: @ 81A73CA
+gTVBravoTrainerText3:: @ 81A73CA
.string "Anyway, when the TRAINER {STR_VAR_1}\n"
.string "entered the POKéMON in a CONTEST,\l"
.string "we managed to get a few impassioned\l"
.string "quotes about the trusty partner.$"
-UnknownString_81A744D:: @ 81A744D
+gTVBravoTrainerText4:: @ 81A744D
.string "Asked about the CONTEST afterwards,\n"
.string "{STR_VAR_1} happily replied with a huge\l"
.string "grin, “{STR_VAR_2}!”\p"
@@ -73,7 +73,7 @@ UnknownString_81A744D:: @ 81A744D
.string "That line perfectly suits {STR_VAR_1}\n"
.string "right now, I’d say!$"
-UnknownString_81A7508:: @ 81A7508
+gTVBravoTrainerText5:: @ 81A7508
.string "Asked about the CONTEST afterwards,\n"
.string "{STR_VAR_1} replied with a tinge of\l"
.string "bitterness, “{STR_VAR_2}.”\p"
@@ -82,7 +82,7 @@ UnknownString_81A7508:: @ 81A7508
.string "{STR_VAR_1}’s disappointment comes across\n"
.string "loud and clear, I’d say!$"
-UnknownString_81A75CE:: @ 81A75CE
+gTVBravoTrainerText6:: @ 81A75CE
.string "Wouldn’t you also like to know what\n"
.string "{STR_VAR_1} imagines {STR_VAR_2} to be?\p"
.string "You bet we did!\n"
@@ -92,12 +92,12 @@ UnknownString_81A75CE:: @ 81A75CE
.string "That’s what the concept of {STR_VAR_2}\n"
.string "represents to {STR_VAR_1}!$"
-UnknownString_81A768D:: @ 81A768D
+gTVBravoTrainerText7:: @ 81A768D
.string "The last move {STR_VAR_2} used by\n"
.string "the {STR_VAR_1} is entirely about\l"
.string "“{STR_VAR_3}”!$"
-UnknownString_81A76C5:: @ 81A76C5
+gTVBravoTrainerText8:: @ 81A76C5
.string "Bravo, {STR_VAR_1}!\n"
.string "Bravo, {STR_VAR_2}!\p"
.string "I hope we can count on seeing\n"
@@ -105,7 +105,7 @@ UnknownString_81A76C5:: @ 81A76C5
.string "That’s all the time we have!\n"
.string "Until next time, see you!$"
-UnknownString_81A774F:: @ 81A774F
+gTVBravoTrainerText9:: @ 81A774F
.string "Introducing the TRAINER’s {STR_VAR_1}!$"
BattleTower_Lobby_Text_1A776D:: @ 81A776D
@@ -166,7 +166,7 @@ BattleTower_Lobby_Text_1A7B66:: @ 81A7B66
.string "I’ll be looking forward to your next\n"
.string "battle!$"
-UnknownString_81A7B93:: @ 81A7B93
+gTVBravoTrainerBattleTowerText1:: @ 81A7B93
.string "Yeah!\n"
.string "It’s BRAVO TRAINER time!\p"
.string "Today, we’re going to profile {STR_VAR_1},\n"
@@ -174,12 +174,12 @@ UnknownString_81A7B93:: @ 81A7B93
.string "For the challenge, {STR_VAR_1} entered one\n"
.string "wicked {STR_VAR_2}.$"
-UnknownString_81A7C26:: @ 81A7C26
+gTVBravoTrainerBattleTowerText2:: @ 81A7C26
.string "The pair set a new record of {STR_VAR_2} wins\n"
.string "in a row in Level {STR_VAR_1} competition!\l"
.string "Bravo, TRAINER!$"
-UnknownString_81A7C7D:: @ 81A7C7D
+gTVBravoTrainerBattleTowerText3:: @ 81A7C7D
.string "The twosome finally succumbed to\n"
.string "{STR_VAR_1} in match number {STR_VAR_2}.\l"
.string "Nice try, TRAINER!\p"
@@ -188,7 +188,7 @@ UnknownString_81A7C7D:: @ 81A7C7D
.string "We asked the TRAINER for impressions\n"
.string "on the match with {STR_VAR_1}.$"
-UnknownString_81A7D4A:: @ 81A7D4A
+gTVBravoTrainerBattleTowerText4:: @ 81A7D4A
.string "The twosome won it all by defeating\n"
.string "{STR_VAR_1}’s {STR_VAR_2} thoroughly.\l"
.string "Bravo, TRAINER!\p"
@@ -197,7 +197,7 @@ UnknownString_81A7D4A:: @ 81A7D4A
.string "We asked the TRAINER for impressions\n"
.string "on the moment of glory.$"
-UnknownString_81A7E0C:: @ 81A7E0C
+gTVBravoTrainerBattleTowerText5:: @ 81A7E0C
.string "After a string of wins, the pair finally\n"
.string "succumbed to {STR_VAR_1}’s {STR_VAR_2},\l"
.string "their final hurdle.\p"
@@ -208,7 +208,7 @@ UnknownString_81A7E0C:: @ 81A7E0C
.string "We asked the TRAINER for impressions\n"
.string "on battling the celebrity pair.$"
-UnknownString_81A7F0E:: @ 81A7F0E
+gTVBravoTrainerBattleTowerText6:: @ 81A7F0E
.string "This is what the TRAINER had to say:\n"
.string "“I’m satisfied!”\p"
.string "Now isn’t that a refreshing reply?\n"
@@ -218,7 +218,7 @@ UnknownString_81A7F0E:: @ 81A7F0E
.string "I found out exactly how satisfied\n"
.string "when I heard the TRAINER say this:$"
-UnknownString_81A8004:: @ 81A8004
+gTVBravoTrainerBattleTowerText7:: @ 81A8004
.string "This is what the TRAINER had to say:\n"
.string "“I’m not satisfied...”\p"
.string "Our TRAINER was obviously a little down\n"
@@ -228,22 +228,22 @@ UnknownString_81A8004:: @ 81A8004
.string "Anyway, I found out how dissatisfied\n"
.string "our TRAINER was when I heard this:$"
-UnknownString_81A8119:: @ 81A8119
+gTVBravoTrainerBattleTowerText8:: @ 81A8119
.string "None$"
-UnknownString_81A811E:: @ 81A811E
+gTVBravoTrainerBattleTowerText9:: @ 81A811E
.string "None$"
-UnknownString_81A8123:: @ 81A8123
+gTVBravoTrainerBattleTowerText10:: @ 81A8123
.string "None$"
-UnknownString_81A8128:: @ 81A8128
+gTVBravoTrainerBattleTowerText11:: @ 81A8128
.string "None$"
-UnknownString_81A812D:: @ 81A812D
+gTVBravoTrainerBattleTowerText12:: @ 81A812D
.string "“{STR_VAR_1}.”$"
-UnknownString_81A8133:: @ 81A8133
+gTVBravoTrainerBattleTowerText13:: @ 81A8133
.string "“{STR_VAR_1}.”\n"
.string "Now isn’t that great?\p"
.string "It really expresses {STR_VAR_2}’s joy,\n"
@@ -252,7 +252,7 @@ UnknownString_81A8133:: @ 81A8133
.string "end... It really was what you’d call\l"
.string "“{STR_VAR_1}”!$"
-UnknownString_81A81BC:: @ 81A81BC
+gTVBravoTrainerBattleTowerText14:: @ 81A81BC
.string "“{STR_VAR_1}.”\n"
.string "Now isn’t that fitting?\p"
.string "That battle with {STR_VAR_3} at the\n"
@@ -261,7 +261,7 @@ UnknownString_81A81BC:: @ 81A81BC
.string "{STR_VAR_2}’s disappointment comes across\n"
.string "loud and clear, I’d say!$"
-UnknownString_81A8267:: @ 81A8267
+gTVBravoTrainerBattleTowerText15:: @ 81A8267
.string "Bravo, {STR_VAR_1}!\n"
.string "Bravo, {STR_VAR_2}!\p"
.string "I hope we can count on seeing\n"
@@ -360,7 +360,7 @@ SlateportCity_PokemonFanClub_Text_1A8818:: @ 81A8818
.string "Okay, that’s all.\n"
.string "Bye-bye!$"
-UnknownString_81A8917:: @ 81A8917
+gTVFanClubOpinionsText1:: @ 81A8917
.string "WE ARE THE POKéMON FAN CLUB!\p"
.string "We’re on the air!\p"
.string "On this program, we get your opinions,\n"
@@ -380,7 +380,7 @@ UnknownString_81A8917:: @ 81A8917
.string "Hoo-hah!\p"
.string "Let’s shout!$"
-UnknownString_81A8AE5:: @ 81A8AE5
+gTVFanClubOpinionsText2:: @ 81A8AE5
.string "We asked {STR_VAR_1}, “When you first\n"
.string "laid eyes on your {STR_VAR_2}, what was\l"
.string "your initial thought?“\p"
@@ -389,7 +389,7 @@ UnknownString_81A8AE5:: @ 81A8AE5
.string "Doesn’t it bring back memories of those\n"
.string "days long gone by?$"
-UnknownString_81A8B9D:: @ 81A8B9D
+gTVFanClubOpinionsText3:: @ 81A8B9D
.string "We asked {STR_VAR_1}, “If you were to\n"
.string "liken your {STR_VAR_2} to something,\l"
.string "it would be...”\p"
@@ -400,7 +400,7 @@ UnknownString_81A8B9D:: @ 81A8B9D
.string "feeling the TRAINER has for\l"
.string "{STR_VAR_2}.$"
-UnknownString_81A8C77:: @ 81A8C77
+gTVFanClubOpinionsText4:: @ 81A8C77
.string "And let’s see...\n"
.string "What was it about that {STR_VAR_2}\l"
.string "that so attracted {STR_VAR_1}?\p"
@@ -410,7 +410,7 @@ UnknownString_81A8C77:: @ 81A8C77
.string "The love of this TRAINER for the\n"
.string "{STR_VAR_2} comes across loud and clear!$"
-UnknownString_81A8D45:: @ 81A8D45
+gTVFanClubOpinionsText5:: @ 81A8D45
.string "Hm? Oh, there’s still more.\n"
.string "Let’s check it out!\p"
.string "Let me see, now...\p"
@@ -429,7 +429,7 @@ UnknownString_81A8D45:: @ 81A8D45
.string "All together now...\p"
.string "“{STR_VAR_3}!”$"
-UnknownString_81A8EC9:: @ 81A8EC9
+gTVFanClubText1:: @ 81A8EC9
.string "WE ARE THE POKéMON FAN CLUB!\p"
.string "We’re on the air!\p"
.string "Today, we’ll get rolling with the POKéMON\n"
@@ -446,34 +446,34 @@ UnknownString_81A8EC9:: @ 81A8EC9
.string "can express love for the {STR_VAR_2}!\l"
.string "Hmhm...$"
-UnknownString_81A9048:: @ 81A9048
+gTVFanClubText2:: @ 81A9048
.string "Whoah!\n"
.string "What an amazing letter!$"
-UnknownString_81A9067:: @ 81A9067
+gTVFanClubText3:: @ 81A9067
.string "I loved it, so here it is again!$"
-UnknownString_81A9088:: @ 81A9088
+gTVFanClubText4:: @ 81A9088
.string "A great letter bears reading over\n"
.string "and over!$"
-UnknownString_81A90B4:: @ 81A90B4
+gTVFanClubText5:: @ 81A90B4
.string "The bit “{STR_VAR_3},” that really\n"
.string "accentuates emotional impact!\p"
.string "It’s a great letter that has real\n"
.string "heartfelt depth!$"
-UnknownString_81A911F:: @ 81A911F
+gTVFanClubText6:: @ 81A911F
.string "Especially that “{STR_VAR_3}” bit!\p"
.string "I love how “{STR_VAR_3}” is used!$"
-UnknownString_81A9152:: @ 81A9152
+gTVFanClubText7:: @ 81A9152
.string "By the way, and it’s not important,\n"
.string "but “{STR_VAR_3}” is a great saying.\p"
.string "I’ve been using “{STR_VAR_3}” a lot\n"
.string "in conversations lately.$"
-UnknownString_81A91C6:: @ 81A91C6
+gTVFanClubText8:: @ 81A91C6
.string "If I had to score this letter,\n"
.string "I’d give it {STR_VAR_3} points.\p"
.string "Next time, I’ll be expecting an even\n"
@@ -481,7 +481,6 @@ UnknownString_81A91C6:: @ 81A91C6
.string "A-whoops, will you look at the time?\n"
.string "Time to say good-bye until next time!$"
-
SlateportCity_OceanicMuseum_1F_Text_1A927F:: @ 81A927F
.string "Oh?\n"
.string "Do you perhaps like POKéMON?\p"
@@ -521,7 +520,7 @@ SlateportCity_OceanicMuseum_1F_Text_1A952E:: @ 81A952E
.string "I’ve got a good story for a TV program.\p"
.string "I’d better write it up in a hurry!$"
-UnknownString_81A9581:: @ 81A9581
+gTVRecentHappeningsText1:: @ 81A9581
.string "Hello, it’s time for RECENT HAPPENINGS.\p"
.string "For POKéMON TRAINERS, every day is\n"
.string "a storybook tale.\p"
@@ -533,26 +532,26 @@ UnknownString_81A9581:: @ 81A9581
.string "Let’s find out.\p"
.string "Let’s see...$"
-UnknownString_81A9694:: @ 81A9694
+gTVRecentHappeningsText2:: @ 81A9694
.string "Wasn’t that enlightening?\p"
.string "The story gives you a clear idea of what\n"
.string "{STR_VAR_1} has experienced recently.\l"
.string "It’s as if we were there as witnesses!$"
-UnknownString_81A971B:: @ 81A971B
+gTVRecentHappeningsText3:: @ 81A971B
.string "“{STR_VAR_3}.” That\n"
.string "accents the tale and gives it depth.$"
-UnknownString_81A974B:: @ 81A974B
+gTVRecentHappeningsText4:: @ 81A974B
.string "“{STR_VAR_3}.”\n"
.string "That gives the tale a sense of place.\l"
.string "It lets us envision the tale’s setting.$"
-UnknownString_81A979F:: @ 81A979F
+gTVRecentHappeningsText5:: @ 81A979F
.string "The “{STR_VAR_3}”\n"
.string "section of the tale is very expressive.$"
-UnknownString_81A97D0:: @ 81A97D0
+gTVRecentHappeningsText6:: @ 81A97D0
.string "{STR_VAR_1} has recounted a wonderful\n"
.string "tale involving POKéMON.\p"
.string "And now {STR_VAR_1}’s tale is indelibly\n"
@@ -561,7 +560,7 @@ UnknownString_81A97D0:: @ 81A97D0
.string "Please tune in next time.$"
-UnknownString_81A986F:: @ 81A986F
+gTVPokemonOutbreakText:: @ 81A986F
.string "Greetings!\n"
.string "It’s time for POKéMON NEWS.\p"
.string "We’ve just received word of a very\n"
@@ -577,7 +576,7 @@ UnknownString_81A986F:: @ 81A986F
.string "{STR_VAR_2} in the wild.\p"
.string "That’s the news on POKéMON NEWS.$"
-UnknownString_81A99D9:: @ 81A99D9
+gTVNameRaterText1:: @ 81A99D9
.string "And now, it’s time for...\n"
.string "THE NAME RATER SHOW.\p"
.string "I tell your POKéMON’s fortune from\n"
@@ -591,103 +590,103 @@ UnknownString_81A99D9:: @ 81A99D9
.string "Hmm...\n"
.string "This nickname is...$"
-UnknownString_81A9AF0:: @ 81A9AF0
+gTVNameRaterText2:: @ 81A9AF0
.string "A nickname that hints at talent in many\n"
.string "different ways.\p"
.string "I urge this TRAINER to take courage\n"
.string "and take on many challenges.$"
-UnknownString_81A9B69:: @ 81A9B69
+gTVNameRaterText3:: @ 81A9B69
.string "A nickname that perfectly complements\n"
.string "{STR_VAR_1}, the TRAINER’s name.\p"
.string "It suggests that you will forge a fine\n"
.string "partnership with precise timing.$"
-UnknownString_81A9BEF:: @ 81A9BEF
+gTVNameRaterText4:: @ 81A9BEF
.string "A nickname fit for a unique individual\n"
.string "of a POKéMON!\p"
.string "If raised properly, this POKéMON’s\n"
.string "uniqueness will bloom excessively!$"
-UnknownString_81A9C6A:: @ 81A9C6A
+gTVNameRaterText5:: @ 81A9C6A
.string "A nickname that will nurture the caring\n"
.string "and compassionate side of POKéMON.\p"
.string "If raised properly, this POKéMON will\n"
.string "come to exhibit real warmth!$"
-UnknownString_81A9CF8:: @ 81A9CF8
+gTVNameRaterText6:: @ 81A9CF8
.string "A very fine nickname that hints at\n"
.string "greatness to come.\p"
.string "I am intrigued about what the future\n"
.string "holds in store for this POKéMON.$"
-UnknownString_81A9D74:: @ 81A9D74
+gTVNameRaterText7:: @ 81A9D74
.string "A good nickname that should make the\n"
.string "POKéMON hale and hearty!\p"
.string "That POKéMON should remain fit and\n"
.string "robust for a long, long time.$"
-UnknownString_81A9DF3:: @ 81A9DF3
+gTVNameRaterText8:: @ 81A9DF3
.string "A good nickname that should make the\n"
.string "POKéMON very active!\p"
.string "I should think that this POKéMON will be\n"
.string "a strong performer in battles.$"
-UnknownString_81A9E75:: @ 81A9E75
+gTVNameRaterText9:: @ 81A9E75
.string "An appealing nickname that should make\n"
.string "the POKéMON very charming!\p"
.string "I don’t doubt that this POKéMON will be\n"
.string "quite the charmer in POKéMON CONTESTS.$"
-UnknownString_81A9F06:: @ 81A9F06
+gTVNameRaterText10:: @ 81A9F06
.string "The nickname {STR_VAR_1} is rooted by\n"
.string "the letter “{STR_VAR_3}.”\p"
.string "That letter is supported by the first\n"
.string "letter “{STR_VAR_2},” which gives it a solid sense\l"
.string "of presence as a nickname.$"
-UnknownString_81A9F9F:: @ 81A9F9F
+gTVNameRaterText11:: @ 81A9F9F
.string "The nickname {STR_VAR_1} is very\n"
.string "shapely in a pleasing manner.\p"
.string "The presence of the letters “{STR_VAR_2}” and\n"
.string "“{STR_VAR_3}” - now that is remarkably good!$"
-UnknownString_81AA01E:: @ 81AA01E
+gTVNameRaterText12:: @ 81AA01E
.string "The nickname {STR_VAR_1} - it has a\n"
.string "sublime, flowing feel to it.\p"
.string "The flow from the initial letter “{STR_VAR_2}” to\n"
.string "“{STR_VAR_3}” is especially wonderful.$"
-UnknownString_81AA09D:: @ 81AA09D
+gTVNameRaterText13:: @ 81AA09D
.string "Let’s examine other examples of fine\n"
.string "nicknames, shall we?$"
-UnknownString_81AA0D7:: @ 81AA0D7
+gTVNameRaterText14:: @ 81AA0D7
.string "Try this example. Take a part of the\n"
.string "TRAINER name of {STR_VAR_1}, and end\l"
.string "up with the fine nickname {STR_VAR_2}{STR_VAR_3}.$"
-UnknownString_81AA138:: @ 81AA138
+gTVNameRaterText15:: @ 81AA138
.string "The nickname {STR_VAR_2}{STR_VAR_3} would also work\n"
.string "quite well.$"
-UnknownString_81AA166:: @ 81AA166
+gTVNameRaterText16:: @ 81AA166
.string "The POKéMON’s species name of\n"
.string "{STR_VAR_2} could be used as the basis\l"
.string "for making the nickname {STR_VAR_1}{STR_VAR_3}.$"
-UnknownString_81AA1C0:: @ 81AA1C0
+gTVNameRaterText17:: @ 81AA1C0
.string "{STR_VAR_1}{STR_VAR_3} would also be an effective\n"
.string "nickname.$"
-UnknownString_81AA1EA:: @ 81AA1EA
+gTVNameRaterText18:: @ 81AA1EA
.string "What should always be avoided is using\n"
.string "another POKéMON species name.\p"
.string "For instance, avoid taking the name of\n"
.string "{STR_VAR_2} to make the nickname {STR_VAR_1}{STR_VAR_3}.\l"
.string "That is unacceptable.$"
-UnknownString_81AA28A:: @ 81AA28A
+gTVNameRaterText19:: @ 81AA28A
.string "But I must say, {STR_VAR_2} has a most\n"
.string "remarkable flair for devising nicknames.\p"
.string "It is my hope that the TRAINER will\n"
@@ -696,7 +695,7 @@ UnknownString_81AA28A:: @ 81AA28A
.string "May we meet again.$"
-UnknownString_81AA344:: @ 81AA344
+gTVFishingGuruAdviceText1:: @ 81AA344
.string "{STR_VAR_2} ANGLER\p"
.string "ANNOUNCER: Hello! Today, we’ll get tips\n"
.string "on fishing for {STR_VAR_2}.\p"
@@ -724,7 +723,7 @@ UnknownString_81AA344:: @ 81AA344
.string "good fishing to you all!$"
-UnknownString_81AA5F3:: @ 81AA5F3
+gTVFishingGuruAdviceText2:: @ 81AA5F3
.string "{STR_VAR_2} ANGLER\p"
.string "ANNOUNCER: Hello! Today, we’ll get tips\n"
.string "on fishing for {STR_VAR_2}.\p"
@@ -747,7 +746,7 @@ UnknownString_81AA5F3:: @ 81AA5F3
.string "good fishing to you all!$"
-UnknownString_81AA814:: @ 81AA814
+gTVPokemonTodayFailedCaptureText1:: @ 81AA814
.string "Hello!\p"
.string "It’s time for POKéMON TODAY!\p"
.string "BIG SIS: Hi! Is everyone peachy and\n"
@@ -757,7 +756,7 @@ UnknownString_81AA814:: @ 81AA814
.string "BIG BRO: Yeah! That’s what we’re going\n"
.string "to do!$"
-UnknownString_81AA8C6:: @ 81AA8C6
+gTVPokemonTodayFailedCaptureText2:: @ 81AA8C6
.string "Oh!\n"
.string "Speaking of {STR_VAR_1}...\p"
.string "BIG SIS, I saw the TRAINER with my very\n"
@@ -769,7 +768,7 @@ UnknownString_81AA8C6:: @ 81AA8C6
.string "{STR_VAR_1}, who was trying to catch the\l"
.string "POKéMON {STR_VAR_3}, but...$"
-UnknownString_81AA9B2:: @ 81AA9B2
+gTVPokemonTodayFailedCaptureText3:: @ 81AA9B2
.string "The POKéMON managed to get away!\p"
.string "It ended up wasting this many\n"
.string "POKé BALLS: {STR_VAR_2}!\p"
@@ -777,7 +776,7 @@ UnknownString_81AA9B2:: @ 81AA9B2
.string "of frustration on {STR_VAR_1}’s face when\l"
.string "the POKéMON took off!$"
-UnknownString_81AAA5C:: @ 81AAA5C
+gTVPokemonTodayFailedCaptureText4:: @ 81AAA5C
.string "But {STR_VAR_1} goofed and made the\n"
.string "POKéMON faint!\p"
.string "It ended up wasting this many\n"
@@ -786,7 +785,7 @@ UnknownString_81AAA5C:: @ 81AAA5C
.string "of stunned dismay on {STR_VAR_1}’s face\l"
.string "when the POKéMON fainted!$"
-UnknownString_81AAB11:: @ 81AAB11
+gTVPokemonTodayFailedCaptureText5:: @ 81AAB11
.string "BIG SIS: Hey, there!\n"
.string "That’s not nice!\p"
.string "You shouldn’t be laughing at other\n"
@@ -796,7 +795,7 @@ UnknownString_81AAB11:: @ 81AAB11
.string "BIG BRO: That’s true!\n"
.string "Sorry for laughing.$"
-UnknownString_81AABB4:: @ 81AABB4
+gTVPokemonTodayFailedCaptureText6:: @ 81AABB4
.string "BIG SIS: Bufufu...\p"
.string "BIG BRO: Hey!\n"
.string "You just laughed, too!\p"
@@ -807,7 +806,7 @@ UnknownString_81AABB4:: @ 81AABB4
.string "What a shame!\p"
.string "BIG BRO: ...$"
-UnknownString_81AAC47:: @ 81AAC47
+gTVPokemonTodayFailedCaptureText7:: @ 81AAC47
.string "BIG SIS: That’s enough silliness!\n"
.string "Let’s look at today’s POKéMON...\p"
.string "Huh?\n"
@@ -818,7 +817,7 @@ UnknownString_81AAC47:: @ 81AAC47
.string "BIG SIS: Hey, don’t end the show\n"
.string "without me!$"
-UnknownString_81AAD23:: @ 81AAD23
+gTVPokemonTodayText1:: @ 81AAD23
.string "Hello!\p"
.string "It’s time for POKéMON TODAY!\p"
.string "BIG SIS: Hi! Is everyone peachy and\n"
@@ -828,30 +827,30 @@ UnknownString_81AAD23:: @ 81AAD23
.string "BIG BRO: Yeah! That’s what we’re going\n"
.string "to do!$"
-UnknownString_81AADD5:: @ 81AADD5
+gTVPokemonTodayText2:: @ 81AADD5
.string "BIG SIS: {STR_VAR_1} gave the nickname\n"
.string "{STR_VAR_3} to the {STR_VAR_2}!\p"
.string "It sounds like {STR_VAR_3} is getting\n"
.string "good, loving care!$"
-UnknownString_81AAE31:: @ 81AAE31
+gTVPokemonTodayText3:: @ 81AAE31
.string "BIG BRO: The TRAINER had to throw this\n"
.string "many BALLS to catch it: {STR_VAR_3}!\p"
.string "It finally took a single {STR_VAR_2}\n"
.string "to catch it!$"
-UnknownString_81AAE9D:: @ 81AAE9D
+gTVPokemonTodayText4:: @ 81AAE9D
.string "BIG SIS: If it was that easy to catch,\n"
.string "it must have been destiny that brought\l"
.string "{STR_VAR_1} and the {STR_VAR_2} together!$"
-UnknownString_81AAF03:: @ 81AAF03
+gTVPokemonTodayText5:: @ 81AAF03
.string "BIG SIS: Wow! That’s so neat!\p"
.string "But you know what they say, a POKéMON\n"
.string "that takes a lot of effort to catch\l"
.string "earns the love of its TRAINER!$"
-UnknownString_81AAF8A:: @ 81AAF8A
+gTVPokemonTodayText6:: @ 81AAF8A
.string "BIG SIS: {STR_VAR_1}’s {STR_VAR_2} is a\n"
.string "memorable POKéMON because it took an\l"
.string "invaluable MASTER BALL to catch!\p"
@@ -859,27 +858,27 @@ UnknownString_81AAF8A:: @ 81AAF8A
.string "BIG SIS: {STR_VAR_1} must have really\n"
.string "wanted that {STR_VAR_2}, for sure!$"
-UnknownString_81AB040:: @ 81AB040
+gTVPokemonTodayText7:: @ 81AB040
.string "BIG BRO: Then to give the nickname\n"
.string "{STR_VAR_3} to that {STR_VAR_2}...\p"
.string "You really get a good idea about\n"
.string "{STR_VAR_1}’s TRAINER sense.\p"
.string "BIG SIS: I second that notion!$"
-UnknownString_81AB0C8:: @ 81AB0C8
+gTVPokemonTodayText8:: @ 81AB0C8
.string "If it were me, I’d give that\n"
.string "nickname to something like {STR_VAR_3}!\p"
.string "BIG BRO: Whoa! That could be the start\n"
.string "of something new!$"
-UnknownString_81AB13D:: @ 81AB13D
+gTVPokemonTodayText9:: @ 81AB13D
.string "{STR_VAR_2} the {STR_VAR_1}?\n"
.string "Doesn’t that sound perfect?\p"
.string "The letters and everything - they sound\n"
.string "just right for the POKéMON {STR_VAR_1}!\p"
.string "BIG BRO: Yeah, true, that!$"
-UnknownString_81AB1C6:: @ 81AB1C6
+gTVPokemonTodayText10:: @ 81AB1C6
.string "As far as I know, no TRAINER has ever\n"
.string "given the nickname {STR_VAR_2} to their\l"
.string "{STR_VAR_1}!\p"
@@ -887,13 +886,13 @@ UnknownString_81AB1C6:: @ 81AB1C6
.string "great taste the TRAINER has in picking\l"
.string "nicknames!$"
-UnknownString_81AB266:: @ 81AB266
+gTVPokemonTodayText11:: @ 81AB266
.string "The next time I catch a POKéMON,\n"
.string "I should give it the name {STR_VAR_2}.\p"
.string "BIG BRO: Huh? Me, too!\n"
.string "I’ll use the nickname {STR_VAR_2}, too!$"
-UnknownString_81AB2DB:: @ 81AB2DB
+gTVPokemonTodayText12:: @ 81AB2DB
.string "BIG SIS: Oh, no!\n"
.string "Look at the time!\p"
.string "Well, gang, this is it for today.\n"
@@ -902,7 +901,7 @@ UnknownString_81AB2DB:: @ 81AB2DB
.string "POKéMON in the spotlight next time!$"
-UnknownString_81AB381:: @ 81AB381
+gTVSmartShopperText1:: @ 81AB381
.string "Hello!\p"
.string "It’s time for TODAY’S SMART SHOPPER.\p"
.string "INTERVIEWER: How are you, viewers?\p"
@@ -915,7 +914,7 @@ UnknownString_81AB381:: @ 81AB381
.string "Let’s check on what the hot sellers\n"
.string "have been recently.$"
-UnknownString_81AB435:: @ 81AB435
+gTVSmartShopperText2:: @ 81AB435
.string "Let’s interview the clerk to get the\n"
.string "lowdown.\p"
.string "Hi, how’s your business?\p"
@@ -925,7 +924,7 @@ UnknownString_81AB435:: @ 81AB435
.string "Why, just the other day a TRAINER\n"
.string "named {STR_VAR_1} bought {STR_VAR_3}.$"
-UnknownString_81AB507:: @ 81AB507
+gTVSmartShopperText3:: @ 81AB507
.string "INTERVIEWER: The TRAINER bought\n"
.string "{STR_VAR_3} {STR_VAR_2}S? That’s a haul!\p"
.string "If I may say so, {STR_VAR_1} must have\n"
@@ -934,13 +933,13 @@ UnknownString_81AB507:: @ 81AB507
.string "For traveling, {STR_VAR_2}S are so\n"
.string "important!$"
-UnknownString_81AB5B8:: @ 81AB5B8
+gTVSmartShopperText4:: @ 81AB5B8
.string "INTERVIEWER: Speaking of the item\n"
.string "{STR_VAR_2}, I just bought {STR_VAR_3} of\l"
.string "them recently.\p"
.string "After all, {STR_VAR_2}’s a great item!$"
-UnknownString_81AB61F:: @ 81AB61F
+gTVSmartShopperText5:: @ 81AB61F
.string "INTERVIEWER: {STR_VAR_2}?!\n"
.string "But {STR_VAR_3} of them?!\p"
.string "I didn’t think there would be anyone\n"
@@ -948,7 +947,7 @@ UnknownString_81AB61F:: @ 81AB61F
.string "My goodness, I can only afford one or\n"
.string "two at a time...$"
-UnknownString_81AB6B0:: @ 81AB6B0
+gTVSmartShopperText6:: @ 81AB6B0
.string "INTERVIEWER: One time, I bought\n"
.string "a whole lot of the item {STR_VAR_2}.\p"
.string "But it turned out to be too many.\n"
@@ -958,21 +957,21 @@ UnknownString_81AB6B0:: @ 81AB6B0
.string "Oops!\p"
.string "There’s no point talking about me!$"
-UnknownString_81AB78D:: @ 81AB78D
+gTVSmartShopperText7:: @ 81AB78D
.string "CLERK: {STR_VAR_1} also bought the item\n"
.string "{STR_VAR_2} in bulk, taking {STR_VAR_3}.\p"
.string "INTERVIEWER: Oh, that’s smart.\n"
.string "{STR_VAR_2}’s a very good item, too.$"
-UnknownString_81AB7FE:: @ 81AB7FE
+gTVSmartShopperText8:: @ 81AB7FE
.string "CLERK: And, the TRAINER also bought\n"
.string "{STR_VAR_3} of the item {STR_VAR_2}.$"
-UnknownString_81AB835:: @ 81AB835
+gTVSmartShopperText9:: @ 81AB835
.string "CLERK: Plus, it was during a big sale.\n"
.string "That’s smart shopping.$"
-UnknownString_81AB873:: @ 81AB873
+gTVSmartShopperText10:: @ 81AB873
.string "INTERVIEWER: Hmm... {STR_VAR_1} sounds like\n"
.string "quite the shrewd bargain hunter!\p"
.string "In total, {STR_VAR_1}’s purchases came to...\p"
@@ -981,11 +980,11 @@ UnknownString_81AB873:: @ 81AB873
.string "Oops! We’re out of time!\n"
.string "See you on our next broadcast!$"
-UnknownString_81AB92E:: @ 81AB92E
+gTVSmartShopperText11:: @ 81AB92E
.string "CLERK: {STR_VAR_1} is a VIP customer,\n"
.string "no doubt about it.$"
-UnknownString_81AB95E:: @ 81AB95E
+gTVSmartShopperText12:: @ 81AB95E
.string "Let’s interview the clerk to get the\n"
.string "lowdown.\p"
.string "Hi, how’s your business?\p"
@@ -1006,7 +1005,7 @@ UnknownString_81AB95E:: @ 81AB95E
.string "CLERK: {STR_VAR_1} is a VIP customer,\n"
.string "no doubt about it.$"
-UnknownString_81ABB75:: @ 81ABB75
+gTVSmartShopperText13:: @ 81ABB75
.string "INTERVIEWER: Hmm...\n"
.string "That is amazing.\p"
.string "But why would the TRAINER need to buy\n"
@@ -1018,7 +1017,7 @@ UnknownString_81ABB75:: @ 81ABB75
.string "Still, {STR_VAR_1} is certainly an enigma...$"
-UnknownString_81ABC51:: @ 81ABC51
+gTVWorldOfMastersText1:: @ 81ABC51
.string "THE WORLD OF MASTERS\p"
.string "Hello, viewers.\p"
.string "Perhaps you are aware of a TRAINER\n"
@@ -1032,12 +1031,12 @@ UnknownString_81ABC51:: @ 81ABC51
.string "The total number of POKéMON caught\n"
.string "that day reached an impressive {STR_VAR_3}!$"
-UnknownString_81ABD94:: @ 81ABD94
+gTVWorldOfMastersText2:: @ 81ABD94
.string "That remarkable feat must have been\n"
.string "possible because of the trust between\l"
.string "the TRAINER and {STR_VAR_1}.$"
-UnknownString_81ABDF2:: @ 81ABDF2
+gTVWorldOfMastersText3:: @ 81ABDF2
.string "The master caught the day’s last\n"
.string "{STR_VAR_3} near {STR_VAR_2}.\p"
.string "That POKéMON apparently enjoys\n"
diff --git a/data/text_window.s b/data/text_window.s
new file mode 100644
index 000000000..d8a3dbb38
--- /dev/null
+++ b/data/text_window.s
@@ -0,0 +1,31 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+ .align 2
+gUnknown_083761F0:: @ 83761F0
+ .4byte gTextWindowFrame1_Gfx, gTextWindowFrame1_Pal
+ .4byte gTextWindowFrame2_Gfx, gTextWindowFrame2_Pal
+ .4byte gTextWindowFrame3_Gfx, gTextWindowFrame3_Pal
+ .4byte gTextWindowFrame4_Gfx, gTextWindowFrame4_Pal
+ .4byte gTextWindowFrame5_Gfx, gTextWindowFrame5_Pal
+ .4byte gTextWindowFrame6_Gfx, gTextWindowFrame6_Pal
+ .4byte gTextWindowFrame7_Gfx, gTextWindowFrame7_Pal
+ .4byte gTextWindowFrame8_Gfx, gTextWindowFrame8_Pal
+ .4byte gTextWindowFrame9_Gfx, gTextWindowFrame9_Pal
+ .4byte gTextWindowFrame10_Gfx, gTextWindowFrame10_Pal
+ .4byte gTextWindowFrame11_Gfx, gTextWindowFrame11_Pal
+ .4byte gTextWindowFrame12_Gfx, gTextWindowFrame12_Pal
+ .4byte gTextWindowFrame13_Gfx, gTextWindowFrame13_Pal
+ .4byte gTextWindowFrame14_Gfx, gTextWindowFrame14_Pal
+ .4byte gTextWindowFrame15_Gfx, gTextWindowFrame15_Pal
+ .4byte gTextWindowFrame16_Gfx, gTextWindowFrame16_Pal
+ .4byte gTextWindowFrame17_Gfx, gTextWindowFrame17_Pal
+ .4byte gTextWindowFrame18_Gfx, gTextWindowFrame18_Pal
+ .4byte gTextWindowFrame19_Gfx, gTextWindowFrame19_Pal
+ .4byte gTextWindowFrame20_Gfx, gTextWindowFrame20_Pal
+
+ .align 1
+gMessageBoxTilemap:: @ 8376290
+ .incbin "graphics/text_window/message_box_map.bin"
diff --git a/data/tileset_anim.s b/data/tileset_anim.s
new file mode 100644
index 000000000..e34d50953
--- /dev/null
+++ b/data/tileset_anim.s
@@ -0,0 +1,637 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+ .align 2
+TilesetAnimTiles_General_0_1: @ 8376D84
+ .incbin "data/tilesets/primary/general/anim/0/1.4bpp"
+
+ .align 2
+TilesetAnimTiles_General_0_0: @ 8376E04
+ .incbin "data/tilesets/primary/general/anim/0/0.4bpp"
+
+ .align 2
+TilesetAnimTiles_General_0_2: @ 8376E84
+ .incbin "data/tilesets/primary/general/anim/0/2.4bpp"
+
+ .space 32
+
+ .align 2
+gTilesetAnimTable_General_0:: @ 8376F24
+ .4byte TilesetAnimTiles_General_0_0
+ .4byte TilesetAnimTiles_General_0_1
+ .4byte TilesetAnimTiles_General_0_0
+ .4byte TilesetAnimTiles_General_0_2
+
+ .align 2
+TilesetAnimTiles_General_1_0: @ 8376F34
+ .incbin "data/tilesets/primary/general/anim/1/0.4bpp"
+
+ .align 2
+TilesetAnimTiles_General_1_1: @ 83772F4
+ .incbin "data/tilesets/primary/general/anim/1/1.4bpp"
+
+ .align 2
+TilesetAnimTiles_General_1_2: @ 83776B4
+ .incbin "data/tilesets/primary/general/anim/1/2.4bpp"
+
+ .align 2
+TilesetAnimTiles_General_1_3: @ 8377A74
+ .incbin "data/tilesets/primary/general/anim/1/3.4bpp"
+
+ .align 2
+TilesetAnimTiles_General_1_4: @ 8377E34
+ .incbin "data/tilesets/primary/general/anim/1/4.4bpp"
+
+ .align 2
+TilesetAnimTiles_General_1_5: @ 83781F4
+ .incbin "data/tilesets/primary/general/anim/1/5.4bpp"
+
+ .align 2
+TilesetAnimTiles_General_1_6: @ 83785B4
+ .incbin "data/tilesets/primary/general/anim/1/6.4bpp"
+
+ .align 2
+TilesetAnimTiles_General_1_7: @ 8378974
+ .incbin "data/tilesets/primary/general/anim/1/7.4bpp"
+
+ .align 2
+gTilesetAnimTable_General_1:: @ 8378D34
+ .4byte TilesetAnimTiles_General_1_0
+ .4byte TilesetAnimTiles_General_1_1
+ .4byte TilesetAnimTiles_General_1_2
+ .4byte TilesetAnimTiles_General_1_3
+ .4byte TilesetAnimTiles_General_1_4
+ .4byte TilesetAnimTiles_General_1_5
+ .4byte TilesetAnimTiles_General_1_6
+ .4byte TilesetAnimTiles_General_1_7
+
+ .align 2
+TilesetAnimTiles_General_2_0: @ 8378D54
+ .incbin "data/tilesets/primary/general/anim/2/0.4bpp"
+
+ .align 2
+TilesetAnimTiles_General_2_1: @ 8378E94
+ .incbin "data/tilesets/primary/general/anim/2/1.4bpp"
+
+ .align 2
+TilesetAnimTiles_General_2_2: @ 8378FD4
+ .incbin "data/tilesets/primary/general/anim/2/2.4bpp"
+
+ .align 2
+TilesetAnimTiles_General_2_3: @ 8379114
+ .incbin "data/tilesets/primary/general/anim/2/3.4bpp"
+
+ .align 2
+TilesetAnimTiles_General_2_4: @ 8379254
+ .incbin "data/tilesets/primary/general/anim/2/4.4bpp"
+
+ .align 2
+TilesetAnimTiles_General_2_5: @ 8379394
+ .incbin "data/tilesets/primary/general/anim/2/5.4bpp"
+
+ .align 2
+TilesetAnimTiles_General_2_6: @ 83794D4
+ .incbin "data/tilesets/primary/general/anim/2/6.4bpp"
+
+ .align 2
+gTilesetAnimTable_General_2:: @ 8379614
+ .4byte TilesetAnimTiles_General_2_0
+ .4byte TilesetAnimTiles_General_2_1
+ .4byte TilesetAnimTiles_General_2_2
+ .4byte TilesetAnimTiles_General_2_3
+ .4byte TilesetAnimTiles_General_2_4
+ .4byte TilesetAnimTiles_General_2_5
+ .4byte TilesetAnimTiles_General_2_6
+ .4byte TilesetAnimTiles_General_2_0
+
+ .align 2
+TilesetAnimTiles_General_3_0: @ 8379634
+ .incbin "data/tilesets/primary/general/anim/3/0.4bpp"
+
+ .align 2
+TilesetAnimTiles_General_3_1: @ 83796F4
+ .incbin "data/tilesets/primary/general/anim/3/1.4bpp"
+
+ .align 2
+TilesetAnimTiles_General_3_2: @ 83797B4
+ .incbin "data/tilesets/primary/general/anim/3/2.4bpp"
+
+ .align 2
+TilesetAnimTiles_General_3_3: @ 8379874
+ .incbin "data/tilesets/primary/general/anim/3/3.4bpp"
+
+ .align 2
+gTilesetAnimTable_General_3:: @ 8379934
+ .4byte TilesetAnimTiles_General_3_0
+ .4byte TilesetAnimTiles_General_3_1
+ .4byte TilesetAnimTiles_General_3_2
+ .4byte TilesetAnimTiles_General_3_3
+
+ .align 2
+TilesetAnimTiles_General_4_0: @ 8379944
+ .incbin "data/tilesets/primary/general/anim/4/0.4bpp"
+
+ .align 2
+TilesetAnimTiles_General_4_1: @ 8379A84
+ .incbin "data/tilesets/primary/general/anim/4/1.4bpp"
+
+ .align 2
+TilesetAnimTiles_General_4_2: @ 8379BC4
+ .incbin "data/tilesets/primary/general/anim/4/2.4bpp"
+
+ .align 2
+TilesetAnimTiles_General_4_3: @ 8379D04
+ .incbin "data/tilesets/primary/general/anim/4/3.4bpp"
+
+ .align 2
+gTilesetAnimTable_General_4:: @ 8379E44
+ .4byte TilesetAnimTiles_General_4_0
+ .4byte TilesetAnimTiles_General_4_1
+ .4byte TilesetAnimTiles_General_4_2
+ .4byte TilesetAnimTiles_General_4_3
+
+ .align 2
+TilesetAnimTiles_Lavaridge_0: @ 8379E54
+ .incbin "data/tilesets/secondary/lavaridge/anim/0.4bpp"
+
+ .align 2
+TilesetAnimTiles_Lavaridge_1: @ 8379ED4
+ .incbin "data/tilesets/secondary/lavaridge/anim/1.4bpp"
+
+ .align 2
+TilesetAnimTiles_Lavaridge_2: @ 8379F54
+ .incbin "data/tilesets/secondary/lavaridge/anim/2.4bpp"
+
+ .align 2
+TilesetAnimTiles_Lavaridge_3: @ 8379FD4
+ .incbin "data/tilesets/secondary/lavaridge/anim/3.4bpp"
+
+ .align 2
+gTilesetAnimTable_Lavaridge:: @ 837A054
+ .4byte TilesetAnimTiles_Lavaridge_0
+ .4byte TilesetAnimTiles_Lavaridge_1
+ .4byte TilesetAnimTiles_Lavaridge_2
+ .4byte TilesetAnimTiles_Lavaridge_3
+
+ .align 2
+TilesetAnimTiles_Pacifidlog_0_0: @ 837A064
+ .incbin "data/tilesets/secondary/pacifidlog/anim/0/0.4bpp"
+
+ .align 2
+TilesetAnimTiles_Pacifidlog_0_1: @ 837A424
+ .incbin "data/tilesets/secondary/pacifidlog/anim/0/1.4bpp"
+
+ .align 2
+TilesetAnimTiles_Pacifidlog_0_2: @ 837A7E4
+ .incbin "data/tilesets/secondary/pacifidlog/anim/0/2.4bpp"
+
+ .align 2
+gTilesetAnimTable_Pacifidlog_0:: @ 837ABA4
+ .4byte TilesetAnimTiles_Pacifidlog_0_0
+ .4byte TilesetAnimTiles_Pacifidlog_0_1
+ .4byte TilesetAnimTiles_Pacifidlog_0_2
+ .4byte TilesetAnimTiles_Pacifidlog_0_1
+
+ .align 2
+TilesetAnimTiles_Underwater_0: @ 837ABB4
+ .incbin "data/tilesets/secondary/underwater/anim/0.4bpp"
+
+ .align 2
+TilesetAnimTiles_Underwater_1: @ 837AC34
+ .incbin "data/tilesets/secondary/underwater/anim/1.4bpp"
+
+ .align 2
+TilesetAnimTiles_Underwater_2: @ 837ACB4
+ .incbin "data/tilesets/secondary/underwater/anim/2.4bpp"
+
+ .align 2
+TilesetAnimTiles_Underwater_3: @ 837AD34
+ .incbin "data/tilesets/secondary/underwater/anim/3.4bpp"
+
+ .align 2
+gTilesetAnimTable_Underwater:: @ 837ADB4
+ .4byte TilesetAnimTiles_Underwater_0
+ .4byte TilesetAnimTiles_Underwater_1
+ .4byte TilesetAnimTiles_Underwater_2
+ .4byte TilesetAnimTiles_Underwater_3
+
+ .align 2
+TilesetAnimTiles_Pacifidlog_1_0: @ 837ADC4
+ .incbin "data/tilesets/secondary/pacifidlog/anim/1/0.4bpp"
+
+ .align 2
+TilesetAnimTiles_Pacifidlog_1_1: @ 837AEC4
+ .incbin "data/tilesets/secondary/pacifidlog/anim/1/1.4bpp"
+
+ .align 2
+TilesetAnimTiles_Pacifidlog_1_2: @ 837AFC4
+ .incbin "data/tilesets/secondary/pacifidlog/anim/1/2.4bpp"
+
+ .align 2
+TilesetAnimTiles_Pacifidlog_1_3: @ 837B0C4
+ .incbin "data/tilesets/secondary/pacifidlog/anim/1/3.4bpp"
+
+ .align 2
+TilesetAnimTiles_Pacifidlog_1_4: @ 837B1C4
+ .incbin "data/tilesets/secondary/pacifidlog/anim/1/4.4bpp"
+
+ .align 2
+TilesetAnimTiles_Pacifidlog_1_5: @ 837B2C4
+ .incbin "data/tilesets/secondary/pacifidlog/anim/1/5.4bpp"
+
+ .align 2
+TilesetAnimTiles_Pacifidlog_1_6: @ 837B3C4
+ .incbin "data/tilesets/secondary/pacifidlog/anim/1/6.4bpp"
+
+ .align 2
+TilesetAnimTiles_Pacifidlog_1_7: @ 837B4C4
+ .incbin "data/tilesets/secondary/pacifidlog/anim/1/7.4bpp"
+
+ .align 2
+gTilesetAnimTable_Pacifidlog_1:: @ 837B5C4
+ .4byte TilesetAnimTiles_Pacifidlog_1_0
+ .4byte TilesetAnimTiles_Pacifidlog_1_1
+ .4byte TilesetAnimTiles_Pacifidlog_1_2
+ .4byte TilesetAnimTiles_Pacifidlog_1_3
+ .4byte TilesetAnimTiles_Pacifidlog_1_4
+ .4byte TilesetAnimTiles_Pacifidlog_1_5
+ .4byte TilesetAnimTiles_Pacifidlog_1_6
+ .4byte TilesetAnimTiles_Pacifidlog_1_7
+
+ .align 2
+TilesetAnimTiles_Mauville_0_0: @ 837B5E4
+ .incbin "data/tilesets/secondary/mauville/anim/0/0.4bpp"
+
+ .align 2
+TilesetAnimTiles_Mauville_0_1: @ 837B664
+ .incbin "data/tilesets/secondary/mauville/anim/0/1.4bpp"
+
+ .align 2
+TilesetAnimTiles_Mauville_0_2: @ 837B6E4
+ .incbin "data/tilesets/secondary/mauville/anim/0/2.4bpp"
+
+ .align 2
+TilesetAnimTiles_Mauville_0_3: @ 837B764
+ .incbin "data/tilesets/secondary/mauville/anim/0/3.4bpp"
+
+ .align 2
+TilesetAnimTiles_Mauville_0_4: @ 837B7E4
+ .incbin "data/tilesets/secondary/mauville/anim/0/4.4bpp"
+
+ .align 2
+TilesetAnimTiles_Mauville_1_0: @ 837B864
+ .incbin "data/tilesets/secondary/mauville/anim/1/0.4bpp"
+
+ .align 2
+TilesetAnimTiles_Mauville_1_1: @ 837B8E4
+ .incbin "data/tilesets/secondary/mauville/anim/1/1.4bpp"
+
+ .align 2
+TilesetAnimTiles_Mauville_1_2: @ 837B964
+ .incbin "data/tilesets/secondary/mauville/anim/1/2.4bpp"
+
+ .align 2
+TilesetAnimTiles_Mauville_1_3: @ 837B9E4
+ .incbin "data/tilesets/secondary/mauville/anim/1/3.4bpp"
+
+ .align 2
+TilesetAnimTiles_Mauville_1_4: @ 837BA64
+ .incbin "data/tilesets/secondary/mauville/anim/1/4.4bpp"
+
+ .align 2
+gUnknown_0837BAE4:: @ 837BAE4
+ .4byte 0x06004C00
+ .4byte 0x06004C80
+ .4byte 0x06004D00
+ .4byte 0x06004D80
+ .4byte 0x06004E00
+ .4byte 0x06004E80
+ .4byte 0x06004F00
+ .4byte 0x06004F80
+
+ .align 2
+gUnknown_0837BB04:: @ 837BB04
+ .4byte 0x06005000
+ .4byte 0x06005080
+ .4byte 0x06005100
+ .4byte 0x06005180
+ .4byte 0x06005200
+ .4byte 0x06005280
+ .4byte 0x06005300
+ .4byte 0x06005380
+
+ .align 2
+gTilesetAnimTable_Mauville_0A:: @ 837BB24
+ .4byte TilesetAnimTiles_Mauville_0_0
+ .4byte TilesetAnimTiles_Mauville_0_0
+ .4byte TilesetAnimTiles_Mauville_0_1
+ .4byte TilesetAnimTiles_Mauville_0_2
+ .4byte TilesetAnimTiles_Mauville_0_3
+ .4byte TilesetAnimTiles_Mauville_0_3
+ .4byte TilesetAnimTiles_Mauville_0_3
+ .4byte TilesetAnimTiles_Mauville_0_3
+ .4byte TilesetAnimTiles_Mauville_0_3
+ .4byte TilesetAnimTiles_Mauville_0_3
+ .4byte TilesetAnimTiles_Mauville_0_2
+ .4byte TilesetAnimTiles_Mauville_0_1
+
+ .align 2
+gTilesetAnimTable_Mauville_1A:: @ 837BB54
+ .4byte TilesetAnimTiles_Mauville_1_0
+ .4byte TilesetAnimTiles_Mauville_1_0
+ .4byte TilesetAnimTiles_Mauville_1_1
+ .4byte TilesetAnimTiles_Mauville_1_2
+ .4byte TilesetAnimTiles_Mauville_1_3
+ .4byte TilesetAnimTiles_Mauville_1_3
+ .4byte TilesetAnimTiles_Mauville_1_3
+ .4byte TilesetAnimTiles_Mauville_1_3
+ .4byte TilesetAnimTiles_Mauville_1_3
+ .4byte TilesetAnimTiles_Mauville_1_3
+ .4byte TilesetAnimTiles_Mauville_1_2
+ .4byte TilesetAnimTiles_Mauville_1_1
+
+ .align 2
+gTilesetAnimTable_Mauville_0B:: @ 837BB84
+ .4byte TilesetAnimTiles_Mauville_0_0
+ .4byte TilesetAnimTiles_Mauville_0_0
+ .4byte TilesetAnimTiles_Mauville_0_4
+ .4byte TilesetAnimTiles_Mauville_0_4
+
+ .align 2
+gTilesetAnimTable_Mauville_1B:: @ 837BB94
+ .4byte TilesetAnimTiles_Mauville_1_0
+ .4byte TilesetAnimTiles_Mauville_1_0
+ .4byte TilesetAnimTiles_Mauville_1_4
+ .4byte TilesetAnimTiles_Mauville_1_4
+
+ .align 2
+TilesetAnimTiles_Rustboro_0_0: @ 837BBA4
+ .incbin "data/tilesets/secondary/rustboro/anim/0/0.4bpp"
+
+ .align 2
+TilesetAnimTiles_Rustboro_0_1: @ 837BC24
+ .incbin "data/tilesets/secondary/rustboro/anim/0/1.4bpp"
+
+ .align 2
+TilesetAnimTiles_Rustboro_0_2: @ 837BCA4
+ .incbin "data/tilesets/secondary/rustboro/anim/0/2.4bpp"
+
+ .align 2
+TilesetAnimTiles_Rustboro_0_3: @ 837BD24
+ .incbin "data/tilesets/secondary/rustboro/anim/0/3.4bpp"
+
+ .align 2
+TilesetAnimTiles_Rustboro_0_4: @ 837BDA4
+ .incbin "data/tilesets/secondary/rustboro/anim/0/4.4bpp"
+
+ .align 2
+TilesetAnimTiles_Rustboro_0_5: @ 837BE24
+ .incbin "data/tilesets/secondary/rustboro/anim/0/5.4bpp"
+
+ .align 2
+TilesetAnimTiles_Rustboro_0_6: @ 837BEA4
+ .incbin "data/tilesets/secondary/rustboro/anim/0/6.4bpp"
+
+ .align 2
+TilesetAnimTiles_Rustboro_0_7: @ 837BF24
+ .incbin "data/tilesets/secondary/rustboro/anim/0/7.4bpp"
+
+ .align 2
+gUnknown_0837BFA4:: @ 837BFA4
+ .4byte 0x06005000
+ .4byte 0x06005080
+ .4byte 0x06005100
+ .4byte 0x06005180
+ .4byte 0x06005200
+ .4byte 0x06005280
+ .4byte 0x06005300
+ .4byte 0x06005380
+
+ .align 2
+gTilesetAnimTable_Rustboro_0:: @ 837BFC4
+ .4byte TilesetAnimTiles_Rustboro_0_0
+ .4byte TilesetAnimTiles_Rustboro_0_1
+ .4byte TilesetAnimTiles_Rustboro_0_2
+ .4byte TilesetAnimTiles_Rustboro_0_3
+ .4byte TilesetAnimTiles_Rustboro_0_4
+ .4byte TilesetAnimTiles_Rustboro_0_5
+ .4byte TilesetAnimTiles_Rustboro_0_6
+ .4byte TilesetAnimTiles_Rustboro_0_7
+
+ .align 2
+TilesetAnimTiles_Rustboro_1_0: @ 837BFE4
+ .incbin "data/tilesets/secondary/rustboro/anim/1/0.4bpp"
+
+ .align 2
+TilesetAnimTiles_Rustboro_1_1: @ 837C064
+ .incbin "data/tilesets/secondary/rustboro/anim/1/1.4bpp"
+
+ .align 2
+gTilesetAnimTable_Rustboro_1:: @ 837C0E4
+ .4byte TilesetAnimTiles_Rustboro_1_0
+ .4byte TilesetAnimTiles_Rustboro_1_1
+
+ .align 2
+TilesetAnimTiles_Cave_0: @ 837C0EC
+ .incbin "data/tilesets/secondary/cave/anim/0.4bpp"
+
+ .align 2
+TilesetAnimTiles_Cave_1: @ 837C16C
+ .incbin "data/tilesets/secondary/cave/anim/1.4bpp"
+
+ .align 2
+TilesetAnimTiles_Cave_2: @ 837C1EC
+ .incbin "data/tilesets/secondary/cave/anim/2.4bpp"
+
+ .align 2
+TilesetAnimTiles_Cave_3: @ 837C26C
+ .incbin "data/tilesets/secondary/cave/anim/3.4bpp"
+
+ .incbin "data/tilesets/secondary/cave/anim/unused/0.4bpp"
+ .incbin "data/tilesets/secondary/cave/anim/unused/1.4bpp"
+ .incbin "data/tilesets/secondary/cave/anim/unused/2.4bpp"
+ .incbin "data/tilesets/secondary/cave/anim/unused/3.4bpp"
+
+ .space 32
+
+ .align 2
+gTilesetAnimTable_Cave:: @ 837C50C
+ .4byte TilesetAnimTiles_Cave_0
+ .4byte TilesetAnimTiles_Cave_1
+ .4byte TilesetAnimTiles_Cave_2
+ .4byte TilesetAnimTiles_Cave_3
+
+ .align 2
+TilesetAnimTiles_EverGrande_0: @ 837C51C
+ .incbin "data/tilesets/secondary/ever_grande/anim/0.4bpp"
+
+ .align 2
+TilesetAnimTiles_EverGrande_1: @ 837C59C
+ .incbin "data/tilesets/secondary/ever_grande/anim/1.4bpp"
+
+ .align 2
+TilesetAnimTiles_EverGrande_2: @ 837C61C
+ .incbin "data/tilesets/secondary/ever_grande/anim/2.4bpp"
+
+ .align 2
+TilesetAnimTiles_EverGrande_3: @ 837C69C
+ .incbin "data/tilesets/secondary/ever_grande/anim/3.4bpp"
+
+ .align 2
+TilesetAnimTiles_EverGrande_4: @ 837C71C
+ .incbin "data/tilesets/secondary/ever_grande/anim/4.4bpp"
+
+ .align 2
+TilesetAnimTiles_EverGrande_5: @ 837C79C
+ .incbin "data/tilesets/secondary/ever_grande/anim/5.4bpp"
+
+ .align 2
+TilesetAnimTiles_EverGrande_6: @ 837C81C
+ .incbin "data/tilesets/secondary/ever_grande/anim/6.4bpp"
+
+ .align 2
+TilesetAnimTiles_EverGrande_7: @ 837C89C
+ .incbin "data/tilesets/secondary/ever_grande/anim/7.4bpp"
+
+ .space 32
+
+ .align 2
+gUnknown_0837C93C:: @ 837C93C
+ .4byte 0x06005C00
+ .4byte 0x06005C80
+ .4byte 0x06005D00
+ .4byte 0x06005D80
+ .4byte 0x06005E00
+ .4byte 0x06005E80
+ .4byte 0x06005F00
+ .4byte 0x06005F80
+
+ .align 2
+gTilesetAnimTable_EverGrande:: @ 837C95C
+ .4byte TilesetAnimTiles_EverGrande_0
+ .4byte TilesetAnimTiles_EverGrande_1
+ .4byte TilesetAnimTiles_EverGrande_2
+ .4byte TilesetAnimTiles_EverGrande_3
+ .4byte TilesetAnimTiles_EverGrande_4
+ .4byte TilesetAnimTiles_EverGrande_5
+ .4byte TilesetAnimTiles_EverGrande_6
+ .4byte TilesetAnimTiles_EverGrande_7
+
+ .align 2
+TilesetAnimTiles_Building_0: @ 837C97C
+ .incbin "data/tilesets/primary/building/anim/0.4bpp"
+
+ .align 2
+TilesetAnimTiles_Building_1: @ 837C9FC
+ .incbin "data/tilesets/primary/building/anim/1.4bpp"
+
+ .align 2
+gTilesetAnimTable_Building:: @ 837CA7C
+ .4byte TilesetAnimTiles_Building_0
+ .4byte TilesetAnimTiles_Building_1
+
+ .align 2
+TilesetAnimTiles_SootopolisGym_0_0: @ 837CA84
+ .incbin "data/tilesets/secondary/sootopolis_gym/anim/0/0.4bpp"
+
+ .align 2
+TilesetAnimTiles_SootopolisGym_0_1: @ 837CC04
+ .incbin "data/tilesets/secondary/sootopolis_gym/anim/0/1.4bpp"
+
+ .align 2
+TilesetAnimTiles_SootopolisGym_0_2: @ 837CD84
+ .incbin "data/tilesets/secondary/sootopolis_gym/anim/0/2.4bpp"
+
+ .align 2
+TilesetAnimTiles_SootopolisGym_1_0: @ 837CF04
+ .incbin "data/tilesets/secondary/sootopolis_gym/anim/1/0.4bpp"
+
+ .align 2
+TilesetAnimTiles_SootopolisGym_1_1: @ 837D184
+ .incbin "data/tilesets/secondary/sootopolis_gym/anim/1/1.4bpp"
+
+ .align 2
+TilesetAnimTiles_SootopolisGym_1_2: @ 837D404
+ .incbin "data/tilesets/secondary/sootopolis_gym/anim/1/2.4bpp"
+
+ .align 2
+gTilesetAnimTable_SootopolisGym_0:: @ 837D684
+ .4byte TilesetAnimTiles_SootopolisGym_0_0
+ .4byte TilesetAnimTiles_SootopolisGym_0_1
+ .4byte TilesetAnimTiles_SootopolisGym_0_2
+
+ .align 2
+gTilesetAnimTable_SootopolisGym_1:: @ 837D690
+ .4byte TilesetAnimTiles_SootopolisGym_1_0
+ .4byte TilesetAnimTiles_SootopolisGym_1_1
+ .4byte TilesetAnimTiles_SootopolisGym_1_2
+
+ .align 2
+TilesetAnimTiles_EliteFour_1_0: @ 837D69C
+ .incbin "data/tilesets/secondary/elite_four/anim/1/0.4bpp"
+
+ .align 2
+TilesetAnimTiles_EliteFour_1_1: @ 837D71C
+ .incbin "data/tilesets/secondary/elite_four/anim/1/1.4bpp"
+
+ .align 2
+TilesetAnimTiles_EliteFour_0_0: @ 837D79C
+ .incbin "data/tilesets/secondary/elite_four/anim/0/0.4bpp"
+
+ .align 2
+TilesetAnimTiles_EliteFour_0_1: @ 837D7BC
+ .incbin "data/tilesets/secondary/elite_four/anim/0/1.4bpp"
+
+ .align 2
+TilesetAnimTiles_EliteFour_0_2: @ 837D7DC
+ .incbin "data/tilesets/secondary/elite_four/anim/0/2.4bpp"
+
+ .align 2
+TilesetAnimTiles_EliteFour_0_3: @ 837D7FC
+ .incbin "data/tilesets/secondary/elite_four/anim/0/3.4bpp"
+
+ .space 32
+
+ .align 2
+gTilesetAnimTable_EliteFour_0:: @ 837D83C
+ .4byte TilesetAnimTiles_EliteFour_0_0
+ .4byte TilesetAnimTiles_EliteFour_0_1
+ .4byte TilesetAnimTiles_EliteFour_0_2
+ .4byte TilesetAnimTiles_EliteFour_0_3
+
+ .align 2
+gTilesetAnimTable_EliteFour_1:: @ 837D84C
+ .4byte TilesetAnimTiles_EliteFour_1_0
+ .4byte TilesetAnimTiles_EliteFour_1_1
+
+ .align 2
+TilesetAnimTiles_MauvilleGym_0: @ 837D854
+ .incbin "data/tilesets/secondary/mauville_gym/anim/0.4bpp"
+
+ .align 2
+TilesetAnimTiles_MauvilleGym_1: @ 837DA54
+ .incbin "data/tilesets/secondary/mauville_gym/anim/1.4bpp"
+
+ .space 32
+
+ .align 2
+gTilesetAnimTable_MauvilleGym:: @ 837DC74
+ .4byte TilesetAnimTiles_MauvilleGym_0
+ .4byte TilesetAnimTiles_MauvilleGym_1
+
+ .align 2
+TilesetAnimTiles_BikeShop_0: @ 837DC7C
+ .incbin "data/tilesets/secondary/bike_shop/anim/0.4bpp"
+
+ .align 2
+TilesetAnimTiles_BikeShop_1: @ 837DD9C
+ .incbin "data/tilesets/secondary/bike_shop/anim/1.4bpp"
+
+ .space 32
+
+ .align 2
+gTilesetAnimTable_BikeShop:: @ 837DEDC
+ .4byte TilesetAnimTiles_BikeShop_0
+ .4byte TilesetAnimTiles_BikeShop_1
diff --git a/data/tilesets.s b/data/tilesets.s
new file mode 100644
index 000000000..443686234
--- /dev/null
+++ b/data/tilesets.s
@@ -0,0 +1,8 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+ .include "data/tilesets/graphics.inc"
+ .include "data/tilesets/metatiles.inc"
+ .include "data/tilesets/headers.inc"
diff --git a/data/tilesets/graphics.inc b/data/tilesets/graphics.inc
index 17f59459b..eb9d02c5e 100644
--- a/data/tilesets/graphics.inc
+++ b/data/tilesets/graphics.inc
@@ -1,11 +1,11 @@
.align 2
-gTilesetTiles_Petalburg: @ 82166E0
+gTilesetTiles_Petalburg:: @ 82166E0
.incbin "data/tilesets/secondary/petalburg/tiles.4bpp.lz"
.align 2
-gTilesetPalettes_Petalburg: @ 8216ED4
+gTilesetPalettes_Petalburg:: @ 8216ED4
.incbin "data/tilesets/secondary/petalburg/palettes/00.gbapal"
.incbin "data/tilesets/secondary/petalburg/palettes/01.gbapal"
.incbin "data/tilesets/secondary/petalburg/palettes/02.gbapal"
@@ -25,12 +25,12 @@ gTilesetPalettes_Petalburg: @ 8216ED4
.align 2
-gTilesetTiles_Rustboro: @ 82170D4
+gTilesetTiles_Rustboro:: @ 82170D4
.incbin "data/tilesets/secondary/rustboro/tiles.4bpp.lz"
.align 2
-gTilesetPalettes_Rustboro: @ 8218484
+gTilesetPalettes_Rustboro:: @ 8218484
.incbin "data/tilesets/secondary/rustboro/palettes/00.gbapal"
.incbin "data/tilesets/secondary/rustboro/palettes/01.gbapal"
.incbin "data/tilesets/secondary/rustboro/palettes/02.gbapal"
@@ -50,12 +50,12 @@ gTilesetPalettes_Rustboro: @ 8218484
.align 2
-gTilesetTiles_Dewford: @ 8218684
+gTilesetTiles_Dewford:: @ 8218684
.incbin "data/tilesets/secondary/dewford/tiles.4bpp.lz"
.align 2
-gTilesetPalettes_Dewford: @ 8219120
+gTilesetPalettes_Dewford:: @ 8219120
.incbin "data/tilesets/secondary/dewford/palettes/00.gbapal"
.incbin "data/tilesets/secondary/dewford/palettes/01.gbapal"
.incbin "data/tilesets/secondary/dewford/palettes/02.gbapal"
@@ -75,12 +75,12 @@ gTilesetPalettes_Dewford: @ 8219120
.align 2
-gTilesetTiles_Slateport: @ 8219320
+gTilesetTiles_Slateport:: @ 8219320
.incbin "data/tilesets/secondary/slateport/tiles.4bpp.lz"
.align 2
-gTilesetPalettes_Slateport: @ 821AB54
+gTilesetPalettes_Slateport:: @ 821AB54
.incbin "data/tilesets/secondary/slateport/palettes/00.gbapal"
.incbin "data/tilesets/secondary/slateport/palettes/01.gbapal"
.incbin "data/tilesets/secondary/slateport/palettes/02.gbapal"
@@ -100,12 +100,12 @@ gTilesetPalettes_Slateport: @ 821AB54
.align 2
-gTilesetTiles_Mauville: @ 821AD54
+gTilesetTiles_Mauville:: @ 821AD54
.incbin "data/tilesets/secondary/mauville/tiles.4bpp.lz"
.align 2
-gTilesetPalettes_Mauville: @ 821C12C
+gTilesetPalettes_Mauville:: @ 821C12C
.incbin "data/tilesets/secondary/mauville/palettes/00.gbapal"
.incbin "data/tilesets/secondary/mauville/palettes/01.gbapal"
.incbin "data/tilesets/secondary/mauville/palettes/02.gbapal"
@@ -125,12 +125,12 @@ gTilesetPalettes_Mauville: @ 821C12C
.align 2
-gTilesetTiles_Lavaridge: @ 821C32C
+gTilesetTiles_Lavaridge:: @ 821C32C
.incbin "data/tilesets/secondary/lavaridge/tiles.4bpp.lz"
.align 2
-gTilesetPalettes_Lavaridge: @ 821D190
+gTilesetPalettes_Lavaridge:: @ 821D190
.incbin "data/tilesets/secondary/lavaridge/palettes/00.gbapal"
.incbin "data/tilesets/secondary/lavaridge/palettes/01.gbapal"
.incbin "data/tilesets/secondary/lavaridge/palettes/02.gbapal"
@@ -150,12 +150,12 @@ gTilesetPalettes_Lavaridge: @ 821D190
.align 2
-gTilesetTiles_Fallarbor: @ 821D390
+gTilesetTiles_Fallarbor:: @ 821D390
.incbin "data/tilesets/secondary/fallarbor/tiles.4bpp.lz"
.align 2
-gTilesetPalettes_Fallarbor: @ 821E630
+gTilesetPalettes_Fallarbor:: @ 821E630
.incbin "data/tilesets/secondary/fallarbor/palettes/00.gbapal"
.incbin "data/tilesets/secondary/fallarbor/palettes/01.gbapal"
.incbin "data/tilesets/secondary/fallarbor/palettes/02.gbapal"
@@ -175,12 +175,12 @@ gTilesetPalettes_Fallarbor: @ 821E630
.align 2
-gTilesetTiles_Fortree: @ 821E830
+gTilesetTiles_Fortree:: @ 821E830
.incbin "data/tilesets/secondary/fortree/tiles.4bpp.lz"
.align 2
-gTilesetPalettes_Fortree: @ 821FB9C
+gTilesetPalettes_Fortree:: @ 821FB9C
.incbin "data/tilesets/secondary/fortree/palettes/00.gbapal"
.incbin "data/tilesets/secondary/fortree/palettes/01.gbapal"
.incbin "data/tilesets/secondary/fortree/palettes/02.gbapal"
@@ -200,12 +200,12 @@ gTilesetPalettes_Fortree: @ 821FB9C
.align 2
-gTilesetTiles_Lilycove: @ 821FD9C
+gTilesetTiles_Lilycove:: @ 821FD9C
.incbin "data/tilesets/secondary/lilycove/tiles.4bpp.lz"
.align 2
-gTilesetPalettes_Lilycove: @ 82210B4
+gTilesetPalettes_Lilycove:: @ 82210B4
.incbin "data/tilesets/secondary/lilycove/palettes/00.gbapal"
.incbin "data/tilesets/secondary/lilycove/palettes/01.gbapal"
.incbin "data/tilesets/secondary/lilycove/palettes/02.gbapal"
@@ -225,12 +225,12 @@ gTilesetPalettes_Lilycove: @ 82210B4
.align 2
-gTilesetTiles_Mossdeep: @ 82212B4
+gTilesetTiles_Mossdeep:: @ 82212B4
.incbin "data/tilesets/secondary/mossdeep/tiles.4bpp.lz"
.align 2
-gTilesetPalettes_Mossdeep: @ 82222BC
+gTilesetPalettes_Mossdeep:: @ 82222BC
.incbin "data/tilesets/secondary/mossdeep/palettes/00.gbapal"
.incbin "data/tilesets/secondary/mossdeep/palettes/01.gbapal"
.incbin "data/tilesets/secondary/mossdeep/palettes/02.gbapal"
@@ -250,12 +250,12 @@ gTilesetPalettes_Mossdeep: @ 82222BC
.align 2
-gTilesetTiles_EverGrande: @ 82224BC
+gTilesetTiles_EverGrande:: @ 82224BC
.incbin "data/tilesets/secondary/ever_grande/tiles.4bpp.lz"
.align 2
-gTilesetPalettes_EverGrande: @ 82230D4
+gTilesetPalettes_EverGrande:: @ 82230D4
.incbin "data/tilesets/secondary/ever_grande/palettes/00.gbapal"
.incbin "data/tilesets/secondary/ever_grande/palettes/01.gbapal"
.incbin "data/tilesets/secondary/ever_grande/palettes/02.gbapal"
@@ -275,12 +275,12 @@ gTilesetPalettes_EverGrande: @ 82230D4
.align 2
-gTilesetTiles_Pacifidlog: @ 82232D4
+gTilesetTiles_Pacifidlog:: @ 82232D4
.incbin "data/tilesets/secondary/pacifidlog/tiles.4bpp.lz"
.align 2
-gTilesetPalettes_Pacifidlog: @ 82249CC
+gTilesetPalettes_Pacifidlog:: @ 82249CC
.incbin "data/tilesets/secondary/pacifidlog/palettes/00.gbapal"
.incbin "data/tilesets/secondary/pacifidlog/palettes/01.gbapal"
.incbin "data/tilesets/secondary/pacifidlog/palettes/02.gbapal"
@@ -300,12 +300,12 @@ gTilesetPalettes_Pacifidlog: @ 82249CC
.align 2
-gTilesetTiles_Sootopolis: @ 8224BCC
+gTilesetTiles_Sootopolis:: @ 8224BCC
.incbin "data/tilesets/secondary/sootopolis/tiles.4bpp.lz"
.align 2
-gTilesetPalettes_Sootopolis: @ 8225420
+gTilesetPalettes_Sootopolis:: @ 8225420
.incbin "data/tilesets/secondary/sootopolis/palettes/00.gbapal"
.incbin "data/tilesets/secondary/sootopolis/palettes/01.gbapal"
.incbin "data/tilesets/secondary/sootopolis/palettes/02.gbapal"
@@ -325,12 +325,12 @@ gTilesetPalettes_Sootopolis: @ 8225420
.align 2
-gTilesetTiles_Building: @ 8225620
+gTilesetTiles_Building:: @ 8225620
.incbin "data/tilesets/primary/building/tiles.4bpp.lz"
.align 2
-gTilesetPalettes_Building: @ 8225FA4
+gTilesetPalettes_Building:: @ 8225FA4
.incbin "data/tilesets/primary/building/palettes/00.gbapal"
.incbin "data/tilesets/primary/building/palettes/01.gbapal"
.incbin "data/tilesets/primary/building/palettes/02.gbapal"
@@ -350,12 +350,12 @@ gTilesetPalettes_Building: @ 8225FA4
.align 2
-gTilesetTiles_Shop: @ 82261A4
+gTilesetTiles_Shop:: @ 82261A4
.incbin "data/tilesets/secondary/shop/tiles.4bpp.lz"
.align 2
-gTilesetPalettes_Shop: @ 8227788
+gTilesetPalettes_Shop:: @ 8227788
.incbin "data/tilesets/secondary/shop/palettes/00.gbapal"
.incbin "data/tilesets/secondary/shop/palettes/01.gbapal"
.incbin "data/tilesets/secondary/shop/palettes/02.gbapal"
@@ -375,12 +375,12 @@ gTilesetPalettes_Shop: @ 8227788
.align 2
-gTilesetTiles_PokemonCenter: @ 8227988
+gTilesetTiles_PokemonCenter:: @ 8227988
.incbin "data/tilesets/secondary/pokemon_center/tiles.4bpp.lz"
.align 2
-gTilesetPalettes_PokemonCenter: @ 8228AAC
+gTilesetPalettes_PokemonCenter:: @ 8228AAC
.incbin "data/tilesets/secondary/pokemon_center/palettes/00.gbapal"
.incbin "data/tilesets/secondary/pokemon_center/palettes/01.gbapal"
.incbin "data/tilesets/secondary/pokemon_center/palettes/02.gbapal"
@@ -400,12 +400,12 @@ gTilesetPalettes_PokemonCenter: @ 8228AAC
.align 2
-gTilesetTiles_Cave: @ 8228CAC
+gTilesetTiles_Cave:: @ 8228CAC
.incbin "data/tilesets/secondary/cave/tiles.4bpp.lz"
.align 2
-gTilesetPalettes_Cave: @ 822A814
+gTilesetPalettes_Cave:: @ 822A814
.incbin "data/tilesets/secondary/cave/palettes/00.gbapal"
.incbin "data/tilesets/secondary/cave/palettes/01.gbapal"
.incbin "data/tilesets/secondary/cave/palettes/02.gbapal"
@@ -425,12 +425,12 @@ gTilesetPalettes_Cave: @ 822A814
.align 2
-gTilesetTiles_PokemonSchool: @ 822AA14
+gTilesetTiles_PokemonSchool:: @ 822AA14
.incbin "data/tilesets/secondary/pokemon_school/tiles.4bpp.lz"
.align 2
-gTilesetPalettes_PokemonSchool: @ 822B15C
+gTilesetPalettes_PokemonSchool:: @ 822B15C
.incbin "data/tilesets/secondary/pokemon_school/palettes/00.gbapal"
.incbin "data/tilesets/secondary/pokemon_school/palettes/01.gbapal"
.incbin "data/tilesets/secondary/pokemon_school/palettes/02.gbapal"
@@ -450,12 +450,12 @@ gTilesetPalettes_PokemonSchool: @ 822B15C
.align 2
-gTilesetTiles_PokemonFanClub: @ 822B35C
+gTilesetTiles_PokemonFanClub:: @ 822B35C
.incbin "data/tilesets/secondary/pokemon_fan_club/tiles.4bpp.lz"
.align 2
-gTilesetPalettes_PokemonFanClub: @ 822BC88
+gTilesetPalettes_PokemonFanClub:: @ 822BC88
.incbin "data/tilesets/secondary/pokemon_fan_club/palettes/00.gbapal"
.incbin "data/tilesets/secondary/pokemon_fan_club/palettes/01.gbapal"
.incbin "data/tilesets/secondary/pokemon_fan_club/palettes/02.gbapal"
@@ -475,12 +475,12 @@ gTilesetPalettes_PokemonFanClub: @ 822BC88
.align 2
-gTilesetTiles_Unused1: @ 822BE88
+gTilesetTiles_Unused1:: @ 822BE88
.incbin "data/tilesets/secondary/unused_1/tiles.4bpp.lz"
.align 2
-gTilesetPalettes_Unused1: @ 822BED4
+gTilesetPalettes_Unused1:: @ 822BED4
.incbin "data/tilesets/secondary/unused_1/palettes/00.gbapal"
.incbin "data/tilesets/secondary/unused_1/palettes/01.gbapal"
.incbin "data/tilesets/secondary/unused_1/palettes/02.gbapal"
@@ -500,12 +500,12 @@ gTilesetPalettes_Unused1: @ 822BED4
.align 2
-gTilesetTiles_MeteorFalls: @ 822C0D4
+gTilesetTiles_MeteorFalls:: @ 822C0D4
.incbin "data/tilesets/secondary/meteor_falls/tiles.4bpp.lz"
.align 2
-gTilesetPalettes_MeteorFalls: @ 822DC1C
+gTilesetPalettes_MeteorFalls:: @ 822DC1C
.incbin "data/tilesets/secondary/meteor_falls/palettes/00.gbapal"
.incbin "data/tilesets/secondary/meteor_falls/palettes/01.gbapal"
.incbin "data/tilesets/secondary/meteor_falls/palettes/02.gbapal"
@@ -525,12 +525,12 @@ gTilesetPalettes_MeteorFalls: @ 822DC1C
.align 2
-gTilesetTiles_OceanicMuseum: @ 822DE1C
+gTilesetTiles_OceanicMuseum:: @ 822DE1C
.incbin "data/tilesets/secondary/oceanic_museum/tiles.4bpp.lz"
.align 2
-gTilesetPalettes_OceanicMuseum: @ 822EDA8
+gTilesetPalettes_OceanicMuseum:: @ 822EDA8
.incbin "data/tilesets/secondary/oceanic_museum/palettes/00.gbapal"
.incbin "data/tilesets/secondary/oceanic_museum/palettes/01.gbapal"
.incbin "data/tilesets/secondary/oceanic_museum/palettes/02.gbapal"
@@ -550,7 +550,7 @@ gTilesetPalettes_OceanicMuseum: @ 822EDA8
.align 2
-gTilesetTiles_CableClub: @ 822EFA8
+gTilesetTiles_CableClub:: @ 822EFA8
.incbin "data/tilesets/secondary/cable_club/tiles.4bpp"
.align 2
@@ -559,7 +559,7 @@ gTilesetTiles_CableClub: @ 822EFA8
.align 2
-gTilesetPalettes_CableClub: @ 8233EA8
+gTilesetPalettes_CableClub:: @ 8233EA8
.incbin "data/tilesets/secondary/cable_club/palettes/00.gbapal"
.incbin "data/tilesets/secondary/cable_club/palettes/01.gbapal"
.incbin "data/tilesets/secondary/cable_club/palettes/02.gbapal"
@@ -579,12 +579,12 @@ gTilesetPalettes_CableClub: @ 8233EA8
.align 2
-gTilesetTiles_SeashoreHouse: @ 82340A8
+gTilesetTiles_SeashoreHouse:: @ 82340A8
.incbin "data/tilesets/secondary/seashore_house/tiles.4bpp.lz"
.align 2
-gTilesetPalettes_SeashoreHouse: @ 8234984
+gTilesetPalettes_SeashoreHouse:: @ 8234984
.incbin "data/tilesets/secondary/seashore_house/palettes/00.gbapal"
.incbin "data/tilesets/secondary/seashore_house/palettes/01.gbapal"
.incbin "data/tilesets/secondary/seashore_house/palettes/02.gbapal"
@@ -604,12 +604,12 @@ gTilesetPalettes_SeashoreHouse: @ 8234984
.align 2
-gTilesetTiles_PrettyPetalFlowerShop: @ 8234B84
+gTilesetTiles_PrettyPetalFlowerShop:: @ 8234B84
.incbin "data/tilesets/secondary/pretty_petal_flower_shop/tiles.4bpp.lz"
.align 2
-gTilesetPalettes_PrettyPetalFlowerShop: @ 823577C
+gTilesetPalettes_PrettyPetalFlowerShop:: @ 823577C
.incbin "data/tilesets/secondary/pretty_petal_flower_shop/palettes/00.gbapal"
.incbin "data/tilesets/secondary/pretty_petal_flower_shop/palettes/01.gbapal"
.incbin "data/tilesets/secondary/pretty_petal_flower_shop/palettes/02.gbapal"
@@ -629,12 +629,12 @@ gTilesetPalettes_PrettyPetalFlowerShop: @ 823577C
.align 2
-gTilesetTiles_PokemonDayCare: @ 823597C
+gTilesetTiles_PokemonDayCare:: @ 823597C
.incbin "data/tilesets/secondary/pokemon_day_care/tiles.4bpp.lz"
.align 2
-gTilesetPalettes_PokemonDayCare: @ 82363B8
+gTilesetPalettes_PokemonDayCare:: @ 82363B8
.incbin "data/tilesets/secondary/pokemon_day_care/palettes/00.gbapal"
.incbin "data/tilesets/secondary/pokemon_day_care/palettes/01.gbapal"
.incbin "data/tilesets/secondary/pokemon_day_care/palettes/02.gbapal"
@@ -654,12 +654,12 @@ gTilesetPalettes_PokemonDayCare: @ 82363B8
.align 2
-gTilesetTiles_Facility: @ 82365B8
+gTilesetTiles_Facility:: @ 82365B8
.incbin "data/tilesets/secondary/facility/tiles.4bpp.lz"
.align 2
-gTilesetPalettes_Facility: @ 8238140
+gTilesetPalettes_Facility:: @ 8238140
.incbin "data/tilesets/secondary/facility/palettes/00.gbapal"
.incbin "data/tilesets/secondary/facility/palettes/01.gbapal"
.incbin "data/tilesets/secondary/facility/palettes/02.gbapal"
@@ -679,12 +679,12 @@ gTilesetPalettes_Facility: @ 8238140
.align 2
-gTilesetTiles_BikeShop: @ 8238340
+gTilesetTiles_BikeShop:: @ 8238340
.incbin "data/tilesets/secondary/bike_shop/tiles.4bpp.lz"
.align 2
-gTilesetPalettes_BikeShop: @ 8239670
+gTilesetPalettes_BikeShop:: @ 8239670
.incbin "data/tilesets/secondary/bike_shop/palettes/00.gbapal"
.incbin "data/tilesets/secondary/bike_shop/palettes/01.gbapal"
.incbin "data/tilesets/secondary/bike_shop/palettes/02.gbapal"
@@ -704,12 +704,12 @@ gTilesetPalettes_BikeShop: @ 8239670
.align 2
-gTilesetTiles_RusturfTunnel: @ 8239870
+gTilesetTiles_RusturfTunnel:: @ 8239870
.incbin "data/tilesets/secondary/rusturf_tunnel/tiles.4bpp.lz"
.align 2
-gTilesetPalettes_RusturfTunnel: @ 823A264
+gTilesetPalettes_RusturfTunnel:: @ 823A264
.incbin "data/tilesets/secondary/rusturf_tunnel/palettes/00.gbapal"
.incbin "data/tilesets/secondary/rusturf_tunnel/palettes/01.gbapal"
.incbin "data/tilesets/secondary/rusturf_tunnel/palettes/02.gbapal"
@@ -734,7 +734,7 @@ gTilesetPalettes_RusturfTunnel: @ 823A264
.align 2
-gTilesetPalettes_SecretBaseBrownCave: @ 823A9E4
+gTilesetPalettes_SecretBaseBrownCave:: @ 823A9E4
.incbin "data/tilesets/secondary/secret_base/brown_cave/palettes/00.gbapal"
.incbin "data/tilesets/secondary/secret_base/brown_cave/palettes/01.gbapal"
.incbin "data/tilesets/secondary/secret_base/brown_cave/palettes/02.gbapal"
@@ -759,7 +759,7 @@ gTilesetPalettes_SecretBaseBrownCave: @ 823A9E4
.align 2
-gTilesetPalettes_SecretBaseTree: @ 823B108
+gTilesetPalettes_SecretBaseTree:: @ 823B108
.incbin "data/tilesets/secondary/secret_base/tree/palettes/00.gbapal"
.incbin "data/tilesets/secondary/secret_base/tree/palettes/01.gbapal"
.incbin "data/tilesets/secondary/secret_base/tree/palettes/02.gbapal"
@@ -784,7 +784,7 @@ gTilesetPalettes_SecretBaseTree: @ 823B108
.align 2
-gTilesetPalettes_SecretBaseShrub: @ 823B870
+gTilesetPalettes_SecretBaseShrub:: @ 823B870
.incbin "data/tilesets/secondary/secret_base/shrub/palettes/00.gbapal"
.incbin "data/tilesets/secondary/secret_base/shrub/palettes/01.gbapal"
.incbin "data/tilesets/secondary/secret_base/shrub/palettes/02.gbapal"
@@ -809,7 +809,7 @@ gTilesetPalettes_SecretBaseShrub: @ 823B870
.align 2
-gTilesetPalettes_SecretBaseBlueCave: @ 823BE8C
+gTilesetPalettes_SecretBaseBlueCave:: @ 823BE8C
.incbin "data/tilesets/secondary/secret_base/blue_cave/palettes/00.gbapal"
.incbin "data/tilesets/secondary/secret_base/blue_cave/palettes/01.gbapal"
.incbin "data/tilesets/secondary/secret_base/blue_cave/palettes/02.gbapal"
@@ -834,7 +834,7 @@ gTilesetPalettes_SecretBaseBlueCave: @ 823BE8C
.align 2
-gTilesetPalettes_SecretBaseYellowCave: @ 823C5C4
+gTilesetPalettes_SecretBaseYellowCave:: @ 823C5C4
.incbin "data/tilesets/secondary/secret_base/yellow_cave/palettes/00.gbapal"
.incbin "data/tilesets/secondary/secret_base/yellow_cave/palettes/01.gbapal"
.incbin "data/tilesets/secondary/secret_base/yellow_cave/palettes/02.gbapal"
@@ -859,7 +859,7 @@ gTilesetPalettes_SecretBaseYellowCave: @ 823C5C4
.align 2
-gTilesetPalettes_SecretBaseRedCave: @ 823CBFC
+gTilesetPalettes_SecretBaseRedCave:: @ 823CBFC
.incbin "data/tilesets/secondary/secret_base/red_cave/palettes/00.gbapal"
.incbin "data/tilesets/secondary/secret_base/red_cave/palettes/01.gbapal"
.incbin "data/tilesets/secondary/secret_base/red_cave/palettes/02.gbapal"
@@ -879,42 +879,42 @@ gTilesetPalettes_SecretBaseRedCave: @ 823CBFC
.align 2
-gTilesetTiles_SecretBaseBrownCave: @ 823CDFC
+gTilesetTiles_SecretBaseBrownCave:: @ 823CDFC
.incbin "data/tilesets/secondary/secret_base/brown_cave/tiles.4bpp"
.align 2
-gTilesetTiles_SecretBaseTree: @ 823D85C
+gTilesetTiles_SecretBaseTree:: @ 823D85C
.incbin "data/tilesets/secondary/secret_base/tree/tiles.4bpp"
.align 2
-gTilesetTiles_SecretBaseShrub: @ 823E2BC
+gTilesetTiles_SecretBaseShrub:: @ 823E2BC
.incbin "data/tilesets/secondary/secret_base/shrub/tiles.4bpp"
.align 2
-gTilesetTiles_SecretBaseBlueCave: @ 823ED1C
+gTilesetTiles_SecretBaseBlueCave:: @ 823ED1C
.incbin "data/tilesets/secondary/secret_base/blue_cave/tiles.4bpp"
.align 2
-gTilesetTiles_SecretBaseYellowCave: @ 823F77C
+gTilesetTiles_SecretBaseYellowCave:: @ 823F77C
.incbin "data/tilesets/secondary/secret_base/yellow_cave/tiles.4bpp"
.align 2
-gTilesetTiles_SecretBaseRedCave: @ 82401DC
+gTilesetTiles_SecretBaseRedCave:: @ 82401DC
.incbin "data/tilesets/secondary/secret_base/red_cave/tiles.4bpp"
.align 2
-gTilesetTiles_InsideOfTruck: @ 8240C3C
+gTilesetTiles_InsideOfTruck:: @ 8240C3C
.incbin "data/tilesets/secondary/inside_of_truck/tiles.4bpp.lz"
.align 2
-gTilesetPalettes_InsideOfTruck: @ 8240E98
+gTilesetPalettes_InsideOfTruck:: @ 8240E98
.incbin "data/tilesets/secondary/inside_of_truck/palettes/00.gbapal"
.incbin "data/tilesets/secondary/inside_of_truck/palettes/01.gbapal"
.incbin "data/tilesets/secondary/inside_of_truck/palettes/02.gbapal"
@@ -934,12 +934,12 @@ gTilesetPalettes_InsideOfTruck: @ 8240E98
.align 2
-gTilesetTiles_Contest: @ 8241098
+gTilesetTiles_Contest:: @ 8241098
.incbin "data/tilesets/secondary/contest/tiles.4bpp.lz"
.align 2
-gTilesetPalettes_Contest: @ 8241BEC
+gTilesetPalettes_Contest:: @ 8241BEC
.incbin "data/tilesets/secondary/contest/palettes/00.gbapal"
.incbin "data/tilesets/secondary/contest/palettes/01.gbapal"
.incbin "data/tilesets/secondary/contest/palettes/02.gbapal"
@@ -959,12 +959,12 @@ gTilesetPalettes_Contest: @ 8241BEC
.align 2
-gTilesetTiles_LilycoveMuseum: @ 8241DEC
+gTilesetTiles_LilycoveMuseum:: @ 8241DEC
.incbin "data/tilesets/secondary/lilycove_museum/tiles.4bpp.lz"
.align 2
-gTilesetPalettes_LilycoveMuseum: @ 8243108
+gTilesetPalettes_LilycoveMuseum:: @ 8243108
.incbin "data/tilesets/secondary/lilycove_museum/palettes/00.gbapal"
.incbin "data/tilesets/secondary/lilycove_museum/palettes/01.gbapal"
.incbin "data/tilesets/secondary/lilycove_museum/palettes/02.gbapal"
@@ -984,12 +984,12 @@ gTilesetPalettes_LilycoveMuseum: @ 8243108
.align 2
-gTilesetTiles_BrendansMaysHouse: @ 8243308
+gTilesetTiles_BrendansMaysHouse:: @ 8243308
.incbin "data/tilesets/secondary/brendans_mays_house/tiles.4bpp.lz"
.align 2
-gTilesetPalettes_BrendansMaysHouse: @ 82442BC
+gTilesetPalettes_BrendansMaysHouse:: @ 82442BC
.incbin "data/tilesets/secondary/brendans_mays_house/palettes/00.gbapal"
.incbin "data/tilesets/secondary/brendans_mays_house/palettes/01.gbapal"
.incbin "data/tilesets/secondary/brendans_mays_house/palettes/02.gbapal"
@@ -1009,12 +1009,12 @@ gTilesetPalettes_BrendansMaysHouse: @ 82442BC
.align 2
-gTilesetTiles_Lab: @ 82444BC
+gTilesetTiles_Lab:: @ 82444BC
.incbin "data/tilesets/secondary/lab/tiles.4bpp.lz"
.align 2
-gTilesetPalettes_Lab: @ 8245510
+gTilesetPalettes_Lab:: @ 8245510
.incbin "data/tilesets/secondary/lab/palettes/00.gbapal"
.incbin "data/tilesets/secondary/lab/palettes/01.gbapal"
.incbin "data/tilesets/secondary/lab/palettes/02.gbapal"
@@ -1034,12 +1034,12 @@ gTilesetPalettes_Lab: @ 8245510
.align 2
-gTilesetTiles_Underwater: @ 8245710
+gTilesetTiles_Underwater:: @ 8245710
.incbin "data/tilesets/secondary/underwater/tiles.4bpp.lz"
.align 2
-gTilesetPalettes_Underwater: @ 82468CC
+gTilesetPalettes_Underwater:: @ 82468CC
.incbin "data/tilesets/secondary/underwater/palettes/00.gbapal"
.incbin "data/tilesets/secondary/underwater/palettes/01.gbapal"
.incbin "data/tilesets/secondary/underwater/palettes/02.gbapal"
@@ -1059,12 +1059,12 @@ gTilesetPalettes_Underwater: @ 82468CC
.align 2
-gTilesetTiles_GenericBuilding: @ 8246ACC
+gTilesetTiles_GenericBuilding:: @ 8246ACC
.incbin "data/tilesets/secondary/generic_building/tiles.4bpp.lz"
.align 2
-gTilesetPalettes_GenericBuilding: @ 8248494
+gTilesetPalettes_GenericBuilding:: @ 8248494
.incbin "data/tilesets/secondary/generic_building/palettes/00.gbapal"
.incbin "data/tilesets/secondary/generic_building/palettes/01.gbapal"
.incbin "data/tilesets/secondary/generic_building/palettes/02.gbapal"
@@ -1084,12 +1084,12 @@ gTilesetPalettes_GenericBuilding: @ 8248494
.align 2
-gTilesetTiles_MauvilleGameCorner: @ 8248694
+gTilesetTiles_MauvilleGameCorner:: @ 8248694
.incbin "data/tilesets/secondary/mauville_game_corner/tiles.4bpp.lz"
.align 2
-gTilesetPalettes_MauvilleGameCorner: @ 8249358
+gTilesetPalettes_MauvilleGameCorner:: @ 8249358
.incbin "data/tilesets/secondary/mauville_game_corner/palettes/00.gbapal"
.incbin "data/tilesets/secondary/mauville_game_corner/palettes/01.gbapal"
.incbin "data/tilesets/secondary/mauville_game_corner/palettes/02.gbapal"
@@ -1109,12 +1109,12 @@ gTilesetPalettes_MauvilleGameCorner: @ 8249358
.align 2
-gTilesetTiles_Unused2: @ 8249558
+gTilesetTiles_Unused2:: @ 8249558
.incbin "data/tilesets/secondary/unused_2/tiles.4bpp.lz"
.align 2
-gTilesetPalettes_Unused2: @ 8249A80
+gTilesetPalettes_Unused2:: @ 8249A80
.incbin "data/tilesets/secondary/unused_2/palettes/00.gbapal"
.incbin "data/tilesets/secondary/unused_2/palettes/01.gbapal"
.incbin "data/tilesets/secondary/unused_2/palettes/02.gbapal"
@@ -1134,12 +1134,12 @@ gTilesetPalettes_Unused2: @ 8249A80
.align 2
-gTilesetTiles_RustboroGym: @ 8249C80
+gTilesetTiles_RustboroGym:: @ 8249C80
.incbin "data/tilesets/secondary/rustboro_gym/tiles.4bpp.lz"
.align 2
-gTilesetPalettes_RustboroGym: @ 824A114
+gTilesetPalettes_RustboroGym:: @ 824A114
.incbin "data/tilesets/secondary/rustboro_gym/palettes/00.gbapal"
.incbin "data/tilesets/secondary/rustboro_gym/palettes/01.gbapal"
.incbin "data/tilesets/secondary/rustboro_gym/palettes/02.gbapal"
@@ -1159,12 +1159,12 @@ gTilesetPalettes_RustboroGym: @ 824A114
.align 2
-gTilesetTiles_DewfordGym: @ 824A314
+gTilesetTiles_DewfordGym:: @ 824A314
.incbin "data/tilesets/secondary/dewford_gym/tiles.4bpp.lz"
.align 2
-gTilesetPalettes_DewfordGym: @ 824A570
+gTilesetPalettes_DewfordGym:: @ 824A570
.incbin "data/tilesets/secondary/dewford_gym/palettes/00.gbapal"
.incbin "data/tilesets/secondary/dewford_gym/palettes/01.gbapal"
.incbin "data/tilesets/secondary/dewford_gym/palettes/02.gbapal"
@@ -1184,12 +1184,12 @@ gTilesetPalettes_DewfordGym: @ 824A570
.align 2
-gTilesetTiles_MauvilleGym: @ 824A770
+gTilesetTiles_MauvilleGym:: @ 824A770
.incbin "data/tilesets/secondary/mauville_gym/tiles.4bpp.lz"
.align 2
-gTilesetPalettes_MauvilleGym: @ 824AD9C
+gTilesetPalettes_MauvilleGym:: @ 824AD9C
.incbin "data/tilesets/secondary/mauville_gym/palettes/00.gbapal"
.incbin "data/tilesets/secondary/mauville_gym/palettes/01.gbapal"
.incbin "data/tilesets/secondary/mauville_gym/palettes/02.gbapal"
@@ -1209,12 +1209,12 @@ gTilesetPalettes_MauvilleGym: @ 824AD9C
.align 2
-gTilesetTiles_LavaridgeGym: @ 824AF9C
+gTilesetTiles_LavaridgeGym:: @ 824AF9C
.incbin "data/tilesets/secondary/lavaridge_gym/tiles.4bpp.lz"
.align 2
-gTilesetPalettes_LavaridgeGym: @ 824B2A8
+gTilesetPalettes_LavaridgeGym:: @ 824B2A8
.incbin "data/tilesets/secondary/lavaridge_gym/palettes/00.gbapal"
.incbin "data/tilesets/secondary/lavaridge_gym/palettes/01.gbapal"
.incbin "data/tilesets/secondary/lavaridge_gym/palettes/02.gbapal"
@@ -1234,12 +1234,12 @@ gTilesetPalettes_LavaridgeGym: @ 824B2A8
.align 2
-gTilesetTiles_PetalburgGym: @ 824B4A8
+gTilesetTiles_PetalburgGym:: @ 824B4A8
.incbin "data/tilesets/secondary/petalburg_gym/tiles.4bpp.lz"
.align 2
-gTilesetPalettes_PetalburgGym: @ 824BE08
+gTilesetPalettes_PetalburgGym:: @ 824BE08
.incbin "data/tilesets/secondary/petalburg_gym/palettes/00.gbapal"
.incbin "data/tilesets/secondary/petalburg_gym/palettes/01.gbapal"
.incbin "data/tilesets/secondary/petalburg_gym/palettes/02.gbapal"
@@ -1259,12 +1259,12 @@ gTilesetPalettes_PetalburgGym: @ 824BE08
.align 2
-gTilesetTiles_FortreeGym: @ 824C008
+gTilesetTiles_FortreeGym:: @ 824C008
.incbin "data/tilesets/secondary/fortree_gym/tiles.4bpp.lz"
.align 2
-gTilesetPalettes_FortreeGym: @ 824C2C8
+gTilesetPalettes_FortreeGym:: @ 824C2C8
.incbin "data/tilesets/secondary/fortree_gym/palettes/00.gbapal"
.incbin "data/tilesets/secondary/fortree_gym/palettes/01.gbapal"
.incbin "data/tilesets/secondary/fortree_gym/palettes/02.gbapal"
@@ -1284,12 +1284,12 @@ gTilesetPalettes_FortreeGym: @ 824C2C8
.align 2
-gTilesetTiles_MossdeepGym: @ 824C4C8
+gTilesetTiles_MossdeepGym:: @ 824C4C8
.incbin "data/tilesets/secondary/mossdeep_gym/tiles.4bpp.lz"
.align 2
-gTilesetPalettes_MossdeepGym: @ 824CA00
+gTilesetPalettes_MossdeepGym:: @ 824CA00
.incbin "data/tilesets/secondary/mossdeep_gym/palettes/00.gbapal"
.incbin "data/tilesets/secondary/mossdeep_gym/palettes/01.gbapal"
.incbin "data/tilesets/secondary/mossdeep_gym/palettes/02.gbapal"
@@ -1309,12 +1309,12 @@ gTilesetPalettes_MossdeepGym: @ 824CA00
.align 2
-gTilesetTiles_SootopolisGym: @ 824CC00
+gTilesetTiles_SootopolisGym:: @ 824CC00
.incbin "data/tilesets/secondary/sootopolis_gym/tiles.4bpp.lz"
.align 2
-gTilesetPalettes_SootopolisGym: @ 824E030
+gTilesetPalettes_SootopolisGym:: @ 824E030
.incbin "data/tilesets/secondary/sootopolis_gym/palettes/00.gbapal"
.incbin "data/tilesets/secondary/sootopolis_gym/palettes/01.gbapal"
.incbin "data/tilesets/secondary/sootopolis_gym/palettes/02.gbapal"
@@ -1334,12 +1334,12 @@ gTilesetPalettes_SootopolisGym: @ 824E030
.align 2
-gTilesetTiles_TrickHousePuzzle: @ 824E230
+gTilesetTiles_TrickHousePuzzle:: @ 824E230
.incbin "data/tilesets/secondary/trick_house_puzzle/tiles.4bpp.lz"
.align 2
-gTilesetPalettes_TrickHousePuzzle: @ 824EEA8
+gTilesetPalettes_TrickHousePuzzle:: @ 824EEA8
.incbin "data/tilesets/secondary/trick_house_puzzle/palettes/00.gbapal"
.incbin "data/tilesets/secondary/trick_house_puzzle/palettes/01.gbapal"
.incbin "data/tilesets/secondary/trick_house_puzzle/palettes/02.gbapal"
@@ -1359,12 +1359,12 @@ gTilesetPalettes_TrickHousePuzzle: @ 824EEA8
.align 2
-gTilesetTiles_Ship: @ 824F0A8
+gTilesetTiles_Ship:: @ 824F0A8
.incbin "data/tilesets/secondary/ship/tiles.4bpp.lz"
.align 2
-gTilesetPalettes_Ship: @ 824FC78
+gTilesetPalettes_Ship:: @ 824FC78
.incbin "data/tilesets/secondary/ship/palettes/00.gbapal"
.incbin "data/tilesets/secondary/ship/palettes/01.gbapal"
.incbin "data/tilesets/secondary/ship/palettes/02.gbapal"
@@ -1384,7 +1384,7 @@ gTilesetPalettes_Ship: @ 824FC78
.align 2
-gTilesetTiles_SecretBase: @ 824FE78
+gTilesetTiles_SecretBase:: @ 824FE78
.incbin "data/tilesets/primary/secret_base/tiles.4bpp"
.align 2
@@ -1393,7 +1393,7 @@ gTilesetTiles_SecretBase: @ 824FE78
.align 2
-gTilesetPalettes_SecretBase: @ 8257E78
+gTilesetPalettes_SecretBase:: @ 8257E78
.incbin "data/tilesets/primary/secret_base/palettes/00.gbapal"
.incbin "data/tilesets/primary/secret_base/palettes/01.gbapal"
.incbin "data/tilesets/primary/secret_base/palettes/02.gbapal"
@@ -1413,12 +1413,12 @@ gTilesetPalettes_SecretBase: @ 8257E78
.align 2
-gTilesetTiles_EliteFour: @ 8258078
+gTilesetTiles_EliteFour:: @ 8258078
.incbin "data/tilesets/secondary/elite_four/tiles.4bpp.lz"
.align 2
-gTilesetPalettes_EliteFour: @ 82590F4
+gTilesetPalettes_EliteFour:: @ 82590F4
.incbin "data/tilesets/secondary/elite_four/palettes/00.gbapal"
.incbin "data/tilesets/secondary/elite_four/palettes/01.gbapal"
.incbin "data/tilesets/secondary/elite_four/palettes/02.gbapal"
@@ -1438,12 +1438,12 @@ gTilesetPalettes_EliteFour: @ 82590F4
.align 2
-gTilesetTiles_BattleTower: @ 82592F4
+gTilesetTiles_BattleTower:: @ 82592F4
.incbin "data/tilesets/secondary/battle_tower/tiles.4bpp.lz"
.align 2
-gTilesetPalettes_BattleTower: @ 8259A1C
+gTilesetPalettes_BattleTower:: @ 8259A1C
.incbin "data/tilesets/secondary/battle_tower/palettes/00.gbapal"
.incbin "data/tilesets/secondary/battle_tower/palettes/01.gbapal"
.incbin "data/tilesets/secondary/battle_tower/palettes/02.gbapal"
diff --git a/data/tilesets/headers.inc b/data/tilesets/headers.inc
index 69e11ac20..8965b1025 100644
--- a/data/tilesets/headers.inc
+++ b/data/tilesets/headers.inc
@@ -1,6 +1,6 @@
.align 2
-gTileset_General: @ 8286CF4
+gTileset_General:: @ 8286CF4
.byte TRUE @ is compressed
.byte FALSE @ is secondary tileset
.2byte 0 @ padding
@@ -12,7 +12,7 @@ gTileset_General: @ 8286CF4
.align 2
-gTileset_Petalburg: @ 8286D0C
+gTileset_Petalburg:: @ 8286D0C
.byte TRUE @ is compressed
.byte TRUE @ is secondary tileset
.2byte 0 @ padding
@@ -24,7 +24,7 @@ gTileset_Petalburg: @ 8286D0C
.align 2
-gTileset_Rustboro: @ 8286D24
+gTileset_Rustboro:: @ 8286D24
.byte TRUE @ is compressed
.byte TRUE @ is secondary tileset
.2byte 0 @ padding
@@ -36,7 +36,7 @@ gTileset_Rustboro: @ 8286D24
.align 2
-gTileset_Dewford: @ 8286D3C
+gTileset_Dewford:: @ 8286D3C
.byte TRUE @ is compressed
.byte TRUE @ is secondary tileset
.2byte 0 @ padding
@@ -48,7 +48,7 @@ gTileset_Dewford: @ 8286D3C
.align 2
-gTileset_Slateport: @ 8286D54
+gTileset_Slateport:: @ 8286D54
.byte TRUE @ is compressed
.byte TRUE @ is secondary tileset
.2byte 0 @ padding
@@ -60,7 +60,7 @@ gTileset_Slateport: @ 8286D54
.align 2
-gTileset_Mauville: @ 8286D6C
+gTileset_Mauville:: @ 8286D6C
.byte TRUE @ is compressed
.byte TRUE @ is secondary tileset
.2byte 0 @ padding
@@ -72,7 +72,7 @@ gTileset_Mauville: @ 8286D6C
.align 2
-gTileset_Lavaridge: @ 8286D84
+gTileset_Lavaridge:: @ 8286D84
.byte TRUE @ is compressed
.byte TRUE @ is secondary tileset
.2byte 0 @ padding
@@ -84,7 +84,7 @@ gTileset_Lavaridge: @ 8286D84
.align 2
-gTileset_Fallarbor: @ 8286D9C
+gTileset_Fallarbor:: @ 8286D9C
.byte TRUE @ is compressed
.byte TRUE @ is secondary tileset
.2byte 0 @ padding
@@ -96,7 +96,7 @@ gTileset_Fallarbor: @ 8286D9C
.align 2
-gTileset_Fortree: @ 8286DB4
+gTileset_Fortree:: @ 8286DB4
.byte TRUE @ is compressed
.byte TRUE @ is secondary tileset
.2byte 0 @ padding
@@ -108,7 +108,7 @@ gTileset_Fortree: @ 8286DB4
.align 2
-gTileset_Lilycove: @ 8286DCC
+gTileset_Lilycove:: @ 8286DCC
.byte TRUE @ is compressed
.byte TRUE @ is secondary tileset
.2byte 0 @ padding
@@ -120,7 +120,7 @@ gTileset_Lilycove: @ 8286DCC
.align 2
-gTileset_Mossdeep: @ 8286DE4
+gTileset_Mossdeep:: @ 8286DE4
.byte TRUE @ is compressed
.byte TRUE @ is secondary tileset
.2byte 0 @ padding
@@ -132,7 +132,7 @@ gTileset_Mossdeep: @ 8286DE4
.align 2
-gTileset_EverGrande: @ 8286DFC
+gTileset_EverGrande:: @ 8286DFC
.byte TRUE @ is compressed
.byte TRUE @ is secondary tileset
.2byte 0 @ padding
@@ -144,7 +144,7 @@ gTileset_EverGrande: @ 8286DFC
.align 2
-gTileset_Pacifidlog: @ 8286E14
+gTileset_Pacifidlog:: @ 8286E14
.byte TRUE @ is compressed
.byte TRUE @ is secondary tileset
.2byte 0 @ padding
@@ -156,7 +156,7 @@ gTileset_Pacifidlog: @ 8286E14
.align 2
-gTileset_Sootopolis: @ 8286E2C
+gTileset_Sootopolis:: @ 8286E2C
.byte TRUE @ is compressed
.byte TRUE @ is secondary tileset
.2byte 0 @ padding
@@ -168,7 +168,7 @@ gTileset_Sootopolis: @ 8286E2C
.align 2
-gTileset_Building: @ 8286E44
+gTileset_Building:: @ 8286E44
.byte TRUE @ is compressed
.byte FALSE @ is secondary tileset
.2byte 0 @ padding
@@ -180,7 +180,7 @@ gTileset_Building: @ 8286E44
.align 2
-gTileset_Shop: @ 8286E5C
+gTileset_Shop:: @ 8286E5C
.byte TRUE @ is compressed
.byte TRUE @ is secondary tileset
.2byte 0 @ padding
@@ -192,7 +192,7 @@ gTileset_Shop: @ 8286E5C
.align 2
-gTileset_PokemonCenter: @ 8286E74
+gTileset_PokemonCenter:: @ 8286E74
.byte TRUE @ is compressed
.byte TRUE @ is secondary tileset
.2byte 0 @ padding
@@ -204,7 +204,7 @@ gTileset_PokemonCenter: @ 8286E74
.align 2
-gTileset_Cave: @ 8286E8C
+gTileset_Cave:: @ 8286E8C
.byte TRUE @ is compressed
.byte TRUE @ is secondary tileset
.2byte 0 @ padding
@@ -216,7 +216,7 @@ gTileset_Cave: @ 8286E8C
.align 2
-gTileset_PokemonSchool: @ 8286EA4
+gTileset_PokemonSchool:: @ 8286EA4
.byte TRUE @ is compressed
.byte TRUE @ is secondary tileset
.2byte 0 @ padding
@@ -228,7 +228,7 @@ gTileset_PokemonSchool: @ 8286EA4
.align 2
-gTileset_PokemonFanClub: @ 8286EBC
+gTileset_PokemonFanClub:: @ 8286EBC
.byte TRUE @ is compressed
.byte TRUE @ is secondary tileset
.2byte 0 @ padding
@@ -240,7 +240,7 @@ gTileset_PokemonFanClub: @ 8286EBC
.align 2
-gTileset_Unused1: @ 8286ED4
+gTileset_Unused1:: @ 8286ED4
.byte TRUE @ is compressed
.byte TRUE @ is secondary tileset
.2byte 0 @ padding
@@ -252,7 +252,7 @@ gTileset_Unused1: @ 8286ED4
.align 2
-gTileset_MeteorFalls: @ 8286EEC
+gTileset_MeteorFalls:: @ 8286EEC
.byte TRUE @ is compressed
.byte TRUE @ is secondary tileset
.2byte 0 @ padding
@@ -264,7 +264,7 @@ gTileset_MeteorFalls: @ 8286EEC
.align 2
-gTileset_OceanicMuseum: @ 8286F04
+gTileset_OceanicMuseum:: @ 8286F04
.byte TRUE @ is compressed
.byte TRUE @ is secondary tileset
.2byte 0 @ padding
@@ -276,7 +276,7 @@ gTileset_OceanicMuseum: @ 8286F04
.align 2
-gTileset_CableClub: @ 8286F1C
+gTileset_CableClub:: @ 8286F1C
.byte FALSE @ is compressed
.byte TRUE @ is secondary tileset
.2byte 0 @ padding
@@ -288,7 +288,7 @@ gTileset_CableClub: @ 8286F1C
.align 2
-gTileset_SeashoreHouse: @ 8286F34
+gTileset_SeashoreHouse:: @ 8286F34
.byte TRUE @ is compressed
.byte TRUE @ is secondary tileset
.2byte 0 @ padding
@@ -300,7 +300,7 @@ gTileset_SeashoreHouse: @ 8286F34
.align 2
-gTileset_PrettyPetalFlowerShop: @ 8286F4C
+gTileset_PrettyPetalFlowerShop:: @ 8286F4C
.byte TRUE @ is compressed
.byte TRUE @ is secondary tileset
.2byte 0 @ padding
@@ -312,7 +312,7 @@ gTileset_PrettyPetalFlowerShop: @ 8286F4C
.align 2
-gTileset_PokemonDayCare: @ 8286F64
+gTileset_PokemonDayCare:: @ 8286F64
.byte TRUE @ is compressed
.byte TRUE @ is secondary tileset
.2byte 0 @ padding
@@ -324,7 +324,7 @@ gTileset_PokemonDayCare: @ 8286F64
.align 2
-gTileset_Facility: @ 8286F7C
+gTileset_Facility:: @ 8286F7C
.byte TRUE @ is compressed
.byte TRUE @ is secondary tileset
.2byte 0 @ padding
@@ -336,7 +336,7 @@ gTileset_Facility: @ 8286F7C
.align 2
-gTileset_BikeShop: @ 8286F94
+gTileset_BikeShop:: @ 8286F94
.byte TRUE @ is compressed
.byte TRUE @ is secondary tileset
.2byte 0 @ padding
@@ -348,7 +348,7 @@ gTileset_BikeShop: @ 8286F94
.align 2
-gTileset_RusturfTunnel: @ 8286FAC
+gTileset_RusturfTunnel:: @ 8286FAC
.byte TRUE @ is compressed
.byte TRUE @ is secondary tileset
.2byte 0 @ padding
@@ -360,7 +360,7 @@ gTileset_RusturfTunnel: @ 8286FAC
.align 2
-gTileset_SecretBaseBrownCave: @ 8286FC4
+gTileset_SecretBaseBrownCave:: @ 8286FC4
.byte FALSE @ is compressed
.byte TRUE @ is secondary tileset
.2byte 0 @ padding
@@ -372,7 +372,7 @@ gTileset_SecretBaseBrownCave: @ 8286FC4
.align 2
-gTileset_SecretBaseTree: @ 8286FDC
+gTileset_SecretBaseTree:: @ 8286FDC
.byte FALSE @ is compressed
.byte TRUE @ is secondary tileset
.2byte 0 @ padding
@@ -384,7 +384,7 @@ gTileset_SecretBaseTree: @ 8286FDC
.align 2
-gTileset_SecretBaseShrub: @ 8286FF4
+gTileset_SecretBaseShrub:: @ 8286FF4
.byte FALSE @ is compressed
.byte TRUE @ is secondary tileset
.2byte 0 @ padding
@@ -396,7 +396,7 @@ gTileset_SecretBaseShrub: @ 8286FF4
.align 2
-gTileset_SecretBaseBlueCave: @ 828700C
+gTileset_SecretBaseBlueCave:: @ 828700C
.byte FALSE @ is compressed
.byte TRUE @ is secondary tileset
.2byte 0 @ padding
@@ -408,7 +408,7 @@ gTileset_SecretBaseBlueCave: @ 828700C
.align 2
-gTileset_SecretBaseYellowCave: @ 8287024
+gTileset_SecretBaseYellowCave:: @ 8287024
.byte FALSE @ is compressed
.byte TRUE @ is secondary tileset
.2byte 0 @ padding
@@ -420,7 +420,7 @@ gTileset_SecretBaseYellowCave: @ 8287024
.align 2
-gTileset_SecretBaseRedCave: @ 828703C
+gTileset_SecretBaseRedCave:: @ 828703C
.byte FALSE @ is compressed
.byte TRUE @ is secondary tileset
.2byte 0 @ padding
@@ -432,7 +432,7 @@ gTileset_SecretBaseRedCave: @ 828703C
.align 2
-gTileset_InsideOfTruck: @ 8287054
+gTileset_InsideOfTruck:: @ 8287054
.byte TRUE @ is compressed
.byte TRUE @ is secondary tileset
.2byte 0 @ padding
@@ -444,7 +444,7 @@ gTileset_InsideOfTruck: @ 8287054
.align 2
-gTileset_Unused2: @ 828706C
+gTileset_Unused2:: @ 828706C
.byte TRUE @ is compressed
.byte TRUE @ is secondary tileset
.2byte 0 @ padding
@@ -456,7 +456,7 @@ gTileset_Unused2: @ 828706C
.align 2
-gTileset_Contest: @ 8287084
+gTileset_Contest:: @ 8287084
.byte TRUE @ is compressed
.byte TRUE @ is secondary tileset
.2byte 0 @ padding
@@ -468,7 +468,7 @@ gTileset_Contest: @ 8287084
.align 2
-gTileset_LilycoveMuseum: @ 828709C
+gTileset_LilycoveMuseum:: @ 828709C
.byte TRUE @ is compressed
.byte TRUE @ is secondary tileset
.2byte 0 @ padding
@@ -480,7 +480,7 @@ gTileset_LilycoveMuseum: @ 828709C
.align 2
-gTileset_BrendansMaysHouse: @ 82870B4
+gTileset_BrendansMaysHouse:: @ 82870B4
.byte TRUE @ is compressed
.byte TRUE @ is secondary tileset
.2byte 0 @ padding
@@ -492,7 +492,7 @@ gTileset_BrendansMaysHouse: @ 82870B4
.align 2
-gTileset_Lab: @ 82870CC
+gTileset_Lab:: @ 82870CC
.byte TRUE @ is compressed
.byte TRUE @ is secondary tileset
.2byte 0 @ padding
@@ -504,7 +504,7 @@ gTileset_Lab: @ 82870CC
.align 2
-gTileset_Underwater: @ 82870E4
+gTileset_Underwater:: @ 82870E4
.byte TRUE @ is compressed
.byte TRUE @ is secondary tileset
.2byte 0 @ padding
@@ -516,7 +516,7 @@ gTileset_Underwater: @ 82870E4
.align 2
-gTileset_PetalburgGym: @ 82870FC
+gTileset_PetalburgGym:: @ 82870FC
.byte TRUE @ is compressed
.byte TRUE @ is secondary tileset
.2byte 0 @ padding
@@ -528,7 +528,7 @@ gTileset_PetalburgGym: @ 82870FC
.align 2
-gTileset_SootopolisGym: @ 8287114
+gTileset_SootopolisGym:: @ 8287114
.byte TRUE @ is compressed
.byte TRUE @ is secondary tileset
.2byte 0 @ padding
@@ -540,7 +540,7 @@ gTileset_SootopolisGym: @ 8287114
.align 2
-gTileset_GenericBuilding: @ 828712C
+gTileset_GenericBuilding:: @ 828712C
.byte TRUE @ is compressed
.byte TRUE @ is secondary tileset
.2byte 0 @ padding
@@ -552,7 +552,7 @@ gTileset_GenericBuilding: @ 828712C
.align 2
-gTileset_MauvilleGameCorner: @ 8287144
+gTileset_MauvilleGameCorner:: @ 8287144
.byte TRUE @ is compressed
.byte TRUE @ is secondary tileset
.2byte 0 @ padding
@@ -564,7 +564,7 @@ gTileset_MauvilleGameCorner: @ 8287144
.align 2
-gTileset_RustboroGym: @ 828715C
+gTileset_RustboroGym:: @ 828715C
.byte TRUE @ is compressed
.byte TRUE @ is secondary tileset
.2byte 0 @ padding
@@ -576,7 +576,7 @@ gTileset_RustboroGym: @ 828715C
.align 2
-gTileset_DewfordGym: @ 8287174
+gTileset_DewfordGym:: @ 8287174
.byte TRUE @ is compressed
.byte TRUE @ is secondary tileset
.2byte 0 @ padding
@@ -588,7 +588,7 @@ gTileset_DewfordGym: @ 8287174
.align 2
-gTileset_MauvilleGym: @ 828718C
+gTileset_MauvilleGym:: @ 828718C
.byte TRUE @ is compressed
.byte TRUE @ is secondary tileset
.2byte 0 @ padding
@@ -600,7 +600,7 @@ gTileset_MauvilleGym: @ 828718C
.align 2
-gTileset_LavaridgeGym: @ 82871A4
+gTileset_LavaridgeGym:: @ 82871A4
.byte TRUE @ is compressed
.byte TRUE @ is secondary tileset
.2byte 0 @ padding
@@ -612,7 +612,7 @@ gTileset_LavaridgeGym: @ 82871A4
.align 2
-gTileset_TrickHousePuzzle: @ 82871BC
+gTileset_TrickHousePuzzle:: @ 82871BC
.byte TRUE @ is compressed
.byte TRUE @ is secondary tileset
.2byte 0 @ padding
@@ -624,7 +624,7 @@ gTileset_TrickHousePuzzle: @ 82871BC
.align 2
-gTileset_FortreeGym: @ 82871D4
+gTileset_FortreeGym:: @ 82871D4
.byte TRUE @ is compressed
.byte TRUE @ is secondary tileset
.2byte 0 @ padding
@@ -636,7 +636,7 @@ gTileset_FortreeGym: @ 82871D4
.align 2
-gTileset_MossdeepGym: @ 82871EC
+gTileset_MossdeepGym:: @ 82871EC
.byte TRUE @ is compressed
.byte TRUE @ is secondary tileset
.2byte 0 @ padding
@@ -648,7 +648,7 @@ gTileset_MossdeepGym: @ 82871EC
.align 2
-gTileset_Ship: @ 8287204
+gTileset_Ship:: @ 8287204
.byte TRUE @ is compressed
.byte TRUE @ is secondary tileset
.2byte 0 @ padding
@@ -660,7 +660,7 @@ gTileset_Ship: @ 8287204
.align 2
-gTileset_SecretBase: @ 828721C
+gTileset_SecretBase:: @ 828721C
.byte FALSE @ is compressed
.byte FALSE @ is secondary tileset
.2byte 0 @ padding
@@ -672,7 +672,7 @@ gTileset_SecretBase: @ 828721C
.align 2
-gTileset_EliteFour: @ 8287234
+gTileset_EliteFour:: @ 8287234
.byte TRUE @ is compressed
.byte TRUE @ is secondary tileset
.2byte 0 @ padding
@@ -684,7 +684,7 @@ gTileset_EliteFour: @ 8287234
.align 2
-gTileset_BattleTower: @ 828724C
+gTileset_BattleTower:: @ 828724C
.byte TRUE @ is compressed
.byte TRUE @ is secondary tileset
.2byte 0 @ padding
diff --git a/data/title_screen.s b/data/title_screen.s
new file mode 100644
index 000000000..b5e791273
--- /dev/null
+++ b/data/title_screen.s
@@ -0,0 +1,183 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+ .align 2
+gUnknown_08393210:: @ 8393210
+ .ifdef SAPPHIRE
+ .incbin "graphics/title_screen/kyogre_dark.gbapal"
+ .incbin "graphics/title_screen/kyogre_glow.gbapal"
+ .else
+ .incbin "graphics/title_screen/groudon_dark.gbapal"
+ .incbin "graphics/title_screen/groudon_glow.gbapal"
+ .endif
+
+ .align 2
+gUnknown_08393250:: @ 8393250
+ .ifdef SAPPHIRE
+ .incbin "graphics/title_screen/kyogre.4bpp.lz"
+ .else
+ .incbin "graphics/title_screen/groudon.4bpp.lz"
+ .endif
+
+ .align 2
+gUnknown_083939EC:: @ 83939EC
+ .ifdef SAPPHIRE
+ .incbin "graphics/title_screen/kyogre_map.bin.lz"
+ .else
+ .incbin "graphics/title_screen/groudon_map.bin.lz"
+ .endif
+
+ .align 2
+gUnknown_08393BF8:: @ 8393BF8
+ .ifdef SAPPHIRE
+ .incbin "graphics/title_screen/water_map.bin.lz"
+ .else
+ .incbin "graphics/title_screen/lava_map.bin.lz"
+ .endif
+
+ .align 2
+LogoShineTiles: @ 8393D14
+ .incbin "graphics/title_screen/logo_shine.4bpp.lz"
+
+gUnknown_08393E64:: @ 8393E64
+ .incbin "baserom.gba", 0x00393e64, 0x40
+
+ .align 2
+gOamData_8393EA4:: @ 8393EA4
+ .2byte 0x60A0
+ .2byte 0xC000
+ .2byte 0x0000
+
+ .align 2
+gOamData_8393EAC:: @ 8393EAC
+ .2byte 0x60A0
+ .2byte 0xC000
+ .2byte 0x0000
+
+ .align 2
+gSpriteAnim_8393EB4:: @ 8393EB4
+ obj_image_anim_frame 0, 30
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_8393EBC:: @ 8393EBC
+ obj_image_anim_frame 64, 30
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_8393EC4:: @ 8393EC4
+ .4byte gSpriteAnim_8393EB4
+
+ .align 2
+gSpriteAnimTable_8393EC8:: @ 8393EC8
+ .4byte gSpriteAnim_8393EBC
+
+ .align 2
+gSpriteTemplate_8393ECC:: @ 8393ECC
+ spr_template 1000, 1000, gOamData_8393EA4, gSpriteAnimTable_8393EC4, NULL, gDummySpriteAffineAnimTable, SpriteCallback_VersionBannerLeft
+
+ .align 2
+gSpriteTemplate_8393EE4:: @ 8393EE4
+ spr_template 1000, 1000, gOamData_8393EAC, gSpriteAnimTable_8393EC8, NULL, gDummySpriteAffineAnimTable, SpriteCallback_VersionBannerRight
+
+ .align 2
+gUnknown_08393EFC:: @ 8393EFC
+ obj_tiles gVersionTiles, 0x1000, 1000
+ null_obj_tiles
+
+ .align 2
+gOamData_8393F0C:: @ 8393F0C
+ .2byte 0x40A0
+ .2byte 0x4000
+ .2byte 0x0000
+
+ .align 2
+gSpriteAnim_8393F14:: @ 8393F14
+ obj_image_anim_frame 0, 4
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_8393F1C:: @ 8393F1C
+ obj_image_anim_frame 4, 4
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_8393F24:: @ 8393F24
+ obj_image_anim_frame 8, 4
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_8393F2C:: @ 8393F2C
+ obj_image_anim_frame 12, 4
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_8393F34:: @ 8393F34
+ obj_image_anim_frame 16, 4
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_8393F3C:: @ 8393F3C
+ obj_image_anim_frame 20, 4
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_8393F44:: @ 8393F44
+ obj_image_anim_frame 24, 4
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_8393F4C:: @ 8393F4C
+ obj_image_anim_frame 28, 4
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_8393F54:: @ 8393F54
+ .4byte gSpriteAnim_8393F14
+ .4byte gSpriteAnim_8393F1C
+ .4byte gSpriteAnim_8393F24
+ .4byte gSpriteAnim_8393F2C
+ .4byte gSpriteAnim_8393F34
+ .4byte gSpriteAnim_8393F3C
+ .4byte gSpriteAnim_8393F44
+ .4byte gSpriteAnim_8393F4C
+
+ .align 2
+gSpriteTemplate_8393F74:: @ 8393F74
+ spr_template 1001, 1001, gOamData_8393F0C, gSpriteAnimTable_8393F54, NULL, gDummySpriteAffineAnimTable, SpriteCallback_PressStartCopyrightBanner
+
+ .align 2
+gUnknown_08393F8C:: @ 8393F8C
+ obj_tiles gTitleScreenPressStart_Gfx, 0x520, 1001
+ null_obj_tiles
+
+ .align 2
+gUnknown_08393F9C:: @ 8393F9C
+ obj_pal gTitleScreenLogoShinePalette, 1001
+ obj_pal 0x0, 0x0
+
+ .align 2
+gOamData_8393FAC:: @ 8393FAC
+ .2byte 0x00A0
+ .2byte 0xC000
+ .2byte 0x0000
+
+ .align 2
+gSpriteAnim_8393FB4:: @ 8393FB4
+ obj_image_anim_frame 0, 4
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_8393FBC:: @ 8393FBC
+ .4byte gSpriteAnim_8393FB4
+
+ .align 2
+gSpriteTemplate_8393FC0:: @ 8393FC0
+ spr_template 1002, 1001, gOamData_8393FAC, gSpriteAnimTable_8393FBC, NULL, gDummySpriteAffineAnimTable, SpriteCallback_PokemonLogoShine
+
+ .align 2
+gUnknown_08393FD8:: @ 8393FD8
+ obj_tiles LogoShineTiles, 0x800, 1002
+ null_obj_tiles
diff --git a/data/trade.s b/data/trade.s
new file mode 100644
index 000000000..8f96a72b1
--- /dev/null
+++ b/data/trade.s
@@ -0,0 +1,774 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+ .align 2
+ .byte 0x90, 0x08, 0x00, 0x00
+ .byte 0xC0, 0x3A, 0x00, 0x00
+ .byte 0x1C, 0x00, 0x00, 0x00
+ .byte 0x30, 0x05, 0x00, 0x00
+ .byte 0x24, 0x00, 0x00, 0x00
+ .byte 0x64, 0x00, 0x00, 0x00
+ .byte 0xD8, 0x04, 0x00, 0x00
+
+ .align 1
+gTradeMovesBoxTilemap:: @ 820ABF0
+ .incbin "graphics/trade/moves_box_map.bin"
+
+ .align 1
+gTradePartyBoxTilemap:: @ 820ADEE
+ .incbin "graphics/trade/party_box_map.bin"
+
+ .align 2
+gTradeStripesBG2Tilemap:: @ 820AFEC
+ .incbin "graphics/trade/stripes_bg2_map.bin"
+
+ .align 2
+gTradeStripesBG3Tilemap:: @ 820B7EC
+ .incbin "graphics/trade/stripes_bg3_map.bin"
+
+ .align 2
+gOamData_820BFEC:: @ 820BFEC
+ .2byte 0x4000
+ .2byte 0x8000
+ .2byte 0x0400
+
+ .align 2
+gSpriteAnim_820BFF4:: @ 820BFF4
+ obj_image_anim_frame 0, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_820BFFC:: @ 820BFFC
+ obj_image_anim_frame 8, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_820C004:: @ 820C004
+ obj_image_anim_frame 16, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_820C00C:: @ 820C00C
+ obj_image_anim_frame 24, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_820C014:: @ 820C014
+ obj_image_anim_frame 32, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_820C01C:: @ 820C01C
+ obj_image_anim_frame 40, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_820C024:: @ 820C024
+ .4byte gSpriteAnim_820BFF4
+ .4byte gSpriteAnim_820BFFC
+ .4byte gSpriteAnim_820C004
+ .4byte gSpriteAnim_820C00C
+ .4byte gSpriteAnim_820C014
+ .4byte gSpriteAnim_820C01C
+
+ .align 2
+TradeScreenTextPalette: @ 820C03C
+ .incbin "graphics/trade/text1.gbapal"
+ .incbin "graphics/trade/text2.gbapal" @ unused?
+
+ .align 2
+gUnknown_0820C07C:: @ 820C07C
+ obj_tiles 0x0201d000, 256, 0x00c8
+ obj_tiles 0x0201d100, 256, 0x00c9
+ obj_tiles 0x0201d200, 256, 0x00ca
+ obj_tiles 0x0201d300, 256, 0x00cb
+ obj_tiles 0x0201d400, 256, 0x00cc
+ obj_tiles 0x0201d500, 256, 0x00cd
+ obj_tiles 0x0201d600, 256, 0x00ce
+ obj_tiles 0x0201d700, 256, 0x00cf
+ obj_tiles 0x0201d800, 256, 0x00d0
+ obj_tiles 0x0201d900, 256, 0x00d1
+ obj_tiles 0x0201da00, 256, 0x00d2
+ obj_tiles 0x0201db00, 256, 0x00d3
+ obj_tiles 0x0201dc00, 256, 0x00d4
+
+ .align 2
+gSpritePalette_TradeScreenText:: @ 820C0E4
+ obj_pal TradeScreenTextPalette, 4925
+
+ .align 2
+gSpriteTemplate_820C0EC:: @ 820C0EC
+ spr_template 200, 4925, gOamData_820BFEC, gSpriteAnimTable_820C024, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
+
+ .align 2
+gOamData_820C104:: @ 820C104
+ .2byte 0x4000
+ .2byte 0xC000
+ .2byte 0x0400
+
+ .align 2
+gSpriteAnim_820C10C:: @ 820C10C
+ obj_image_anim_frame 0, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_820C114:: @ 820C114
+ obj_image_anim_frame 32, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_820C11C:: @ 820C11C
+ .4byte gSpriteAnim_820C10C
+ .4byte gSpriteAnim_820C114
+
+ .align 2
+gUnknown_0820C124:: @ 820C124
+ obj_tiles gUnknown_08EA1DEC, 0x800, 300
+
+ .align 2
+gUnknown_0820C12C:: @ 820C12C
+ obj_pal gUnknown_08EA0328, 2345
+
+ .align 2
+gSpriteTemplate_820C134:: @ 820C134
+ spr_template 300, 2345, gOamData_820C104, gSpriteAnimTable_820C11C, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
+
+ .align 2
+gUnknown_0820C14C:: @ 820C14C
+ .4byte TradeText_Cancel
+ .4byte TradeText_ChoosePoke
+ .4byte TradeText_Summary1
+ .4byte TradeText_Trade1
+ .4byte TradeText_CancelTradePrompt
+ .4byte TradeText_PressBToExit
+
+@ This is used to determine the next mon to select when the D-Pad is
+@ pressed in a given direction.
+@ Note that the mons are laid out like this.
+@ 0-5 are the player's party and 6-11 are the trading partner's party.
+@ 12 is the cancel button.
+@ 0 1 6 7
+@ 2 3 8 9
+@ 4 5 10 11
+@ 12
+gTradeNextSelectedMonTable:: @ 820C164
+ @ 0
+ .byte 4, 2, 12, 12, 0, 0 @ up
+ .byte 2, 4, 12, 12, 0, 0 @ down
+ .byte 7, 6, 1, 0, 0, 0 @ left
+ .byte 1, 6, 7, 0, 0, 0 @ right
+ @ 1
+ .byte 5, 3, 12, 12, 0, 0 @ up
+ .byte 3, 5, 12, 12, 0, 0 @ down
+ .byte 0, 7, 6, 1, 0, 0 @ left
+ .byte 6, 7, 0, 1, 0, 0 @ right
+ @ 2
+ .byte 0, 0, 0, 0, 0, 0 @ up
+ .byte 4, 0, 0, 0, 0, 0 @ down
+ .byte 9, 8, 7, 6, 0, 0 @ left
+ .byte 3, 1, 0, 0, 0, 0 @ right
+ @ 3
+ .byte 1, 1, 1, 1, 0, 0 @ up
+ .byte 5, 1, 1, 1, 0, 0 @ down
+ .byte 2, 9, 8, 7, 0, 0 @ left
+ .byte 8, 9, 6, 6, 0, 0 @ right
+ @ 4
+ .byte 2, 2, 2, 2, 0, 0 @ up
+ .byte 0, 0, 0, 0, 0, 0 @ down
+ .byte 11, 10, 9, 8, 7, 6 @ left
+ .byte 5, 3, 1, 0, 0, 0 @ right
+ @ 5
+ .byte 3, 3, 3, 3, 0, 0 @ up
+ .byte 1, 1, 1, 1, 0, 0 @ down
+ .byte 4, 4, 4, 4, 0, 0 @ left
+ .byte 10, 8, 6, 0, 0, 0 @ right
+ @ 6
+ .byte 10, 8, 12, 0, 0, 0 @ up
+ .byte 8, 10, 12, 0, 0, 0 @ down
+ .byte 1, 0, 0, 0, 0, 0 @ left
+ .byte 7, 0, 1, 0, 0, 0 @ right
+ @ 7
+ .byte 12, 0, 0, 0, 0, 0 @ up
+ .byte 9, 12, 0, 0, 0, 0 @ down
+ .byte 6, 0, 0, 0, 0, 0 @ left
+ .byte 0, 0, 0, 0, 0, 0 @ right
+ @ 8
+ .byte 6, 0, 0, 0, 0, 0 @ up
+ .byte 10, 6, 0, 0, 0, 0 @ down
+ .byte 3, 2, 1, 0, 0, 0 @ left
+ .byte 9, 7, 0, 0, 0, 0 @ right
+ @ 9
+ .byte 7, 0, 0, 0, 0, 0 @ up
+ .byte 11, 12, 0, 0, 0, 0 @ down
+ .byte 8, 0, 0, 0, 0, 0 @ left
+ .byte 2, 1, 0, 0, 0, 0 @ right
+ @ 10
+ .byte 8, 0, 0, 0, 0, 0 @ up
+ .byte 6, 0, 0, 0, 0, 0 @ down
+ .byte 5, 4, 3, 2, 1, 0 @ left
+ .byte 11, 9, 7, 0, 0, 0 @ right
+ @ 11
+ .byte 9, 0, 0, 0, 0, 0 @ up
+ .byte 12, 0, 0, 0, 0, 0 @ down
+ .byte 10, 0, 0, 0, 0, 0 @ left
+ .byte 4, 2, 0, 0, 0, 0 @ right
+ @ 12
+ .byte 11, 9, 7, 6, 0, 0 @ up
+ .byte 7, 6, 0, 0, 0, 0 @ down
+ .byte 12, 0, 0, 0, 0, 0 @ left
+ .byte 12, 0, 0, 0, 0, 0 @ right
+
+@ The coordinates are in units of tiles.
+@ These are used for both mon icons and the selected mon cursor,
+@ but the origins of the coordinates differ.
+gTradeMonSpriteCoords:: @ 820C29C
+ @ left-side party
+ .byte 1, 5
+ .byte 8, 5
+ .byte 1, 10
+ .byte 8, 10
+ .byte 1, 15
+ .byte 8, 15
+
+ @ right-side party
+ .byte 16, 5
+ .byte 23, 5
+ .byte 16, 10
+ .byte 23, 10
+ .byte 16, 15
+ .byte 23, 15
+
+ @ cancel button
+ .byte 23, 18
+
+gTradeLevelDisplayCoords:: @ 820C2B6
+ @ left-side party
+ .byte 5, 4
+ .byte 12, 4
+ .byte 5, 9
+ .byte 12, 9
+ .byte 5, 14
+ .byte 12, 14
+
+ @ right-side party
+ .byte 20, 4
+ .byte 27, 4
+ .byte 20, 9
+ .byte 27, 9
+ .byte 20, 14
+ .byte 27, 14
+
+gTradeMonBoxCoords:: @ 820C2CE
+ @ left-side party
+ .byte 1, 3
+ .byte 8, 3
+ .byte 1, 8
+ .byte 8, 8
+ .byte 1, 13
+ .byte 8, 13
+
+ @ right-side party
+ .byte 16, 3
+ .byte 23, 3
+ .byte 16, 8
+ .byte 23, 8
+ .byte 16, 13
+ .byte 23, 13
+
+gTradeUnknownSpriteCoords:: @ 820C2E6
+ .byte 59, 10
+ .byte 179, 10
+ .byte 59, 10
+ .byte 179, 10
+
+ .align 2
+gUnknown_0820C2F0:: @ 820C2F0
+ .4byte TradeText_LinkStandby
+ .4byte TradeText_TradeCancelled
+ .4byte TradeText_OnlyPoke
+ .4byte TradeText_NonTradablePoke
+ .4byte TradeText_WaitingForFriend
+ .4byte TradeText_WantToTrade
+
+gTradeMessageWindowRects:: @ 820C308
+ .byte 8, 7, 22, 12
+ .byte 8, 7, 22, 12
+ .byte 6, 7, 24, 12
+ .byte 6, 7, 24, 12
+ .byte 8, 7, 22, 12
+ .byte 7, 7, 23, 12
+
+ .align 2
+gUnknown_0820C320:: @ 820C320
+ .4byte TradeText_Summary2, sub_804A9F4 @unknown
+ .4byte TradeText_Trade2, sub_804AA00
+
+gUnknown_0820C330:: @ 820C330
+ .byte 0, 14
+ .byte 15, 29
+
+gUnknown_0820C334:: @ 820C334
+ .byte 3, 5
+ .byte 3, 7
+ .byte 18, 5
+ .byte 18, 7
+
+gOtherText_Terminator::
+ .string "$"
+
+gOtherText_MaleSymbol3:: @ 820C33D
+ .string "♂$"
+
+gOtherText_FemaleSymbol3:: @ 820C33F
+ .string "♀$"
+
+gOtherText_GenderlessSymbol:: @ 820C341
+ .string "$$"
+
+ .align 2
+ .4byte gTileBuffer
+
+@ Unused debug strings?
+ .string "かいめの そうしん$", 13
+ .string "かいめの じゅしん$", 13
+ .string "ポケモンアイコンセット$", 13
+ .string "OBJテキストセット$", 13
+ .string "セルセット$", 13
+ .string "OBJテキストADD$", 13
+ .string "システムメッセージADD$", 13
+ .string "はいけいセット$", 13
+
+@ Shedinja's Japanese name
+@ sub_8048D44 compares a pokemon name with this string
+gUnknown_0820C3B0:: @ 820C3B0
+ .string "ヌケニン$"
+
+ .string "こうかんせいりつ $" @ trade completed
+ .string "だめだたらしいよ $" @ it's no good (trade failed maybe?)
+
+gUnknown_0820C3D1:: @ 820C3D1
+ .byte 4, 3
+ .byte 19, 3
+
+ .align 2
+gTradeBallPalette:: @ 820C3D8
+ .incbin "graphics/trade/ball.gbapal"
+
+ .align 2
+gTradeBallTiles:: @ 820C3F8
+ .incbin "graphics/trade/ball.4bpp"
+
+ .align 2
+gUnknown_0820C9F8:: @ 820C9F8
+ .incbin "graphics/trade/unknown.gbapal"
+ .incbin "graphics/trade/gba.gbapal"
+ .incbin "graphics/trade/shadow.gbapal"
+ .space 32
+ .incbin "graphics/trade/misc.gbapal"
+
+ .align 2
+gUnknown_0820CA98:: @ 820CA98
+ .incbin "graphics/trade/gba.4bpp"
+ .incbin "graphics/trade/shadow.4bpp"
+
+ .align 2
+gUnknown_0820DD98:: @ 820DD98
+ .incbin "graphics/trade/pokeball_symbol.8bpp"
+
+ .align 2
+gUnknown_0820F798:: @ 820F798
+ .incbin "graphics/trade/shadow_map.bin"
+
+ .align 2
+gUnknown_08210798:: @ 8210798
+ .incbin "graphics/trade/gba_map.bin"
+
+ .align 2
+gUnknown_08211798:: @ 8211798
+ .incbin "graphics/trade/cable_closeup_map.bin"
+
+ .align 2
+gUnknown_08211F98:: @ 8211F98
+ .incbin "graphics/trade/pokeball_symbol_map.bin"
+
+ .incbin "graphics/unused/unknown/8212098.gbapal"
+
+ .align 2
+gTradeCableEndPalette:: @ 82120B8
+ .incbin "graphics/trade/cable_end.gbapal"
+
+ .incbin "graphics/unused/unknown/82120D8.gbapal"
+
+ .space 32
+
+ .align 2
+gTradeGlowPalette:: @ 8212118
+ .incbin "graphics/trade/glow.gbapal"
+
+ .align 2
+gTradeGlow1Tiles:: @ 8212138
+ .incbin "graphics/trade/glow1.4bpp"
+
+ .align 2
+gTradeGlow2Tiles:: @ 8212338
+ .incbin "graphics/trade/glow2.4bpp"
+
+ .align 2
+gTradeCableEndTiles:: @ 8212538
+ .incbin "graphics/trade/cable_end.4bpp"
+
+ .align 2
+gTradeGBAScreenTiles:: @ 8212738
+ .incbin "graphics/trade/gba_screen.4bpp"
+
+ .align 2
+gUnknown_08213738:: @ 8213738
+ .incbin "graphics/trade/gba_affine.8bpp"
+
+ .align 2
+gUnknown_08215778:: @ 8215778
+ .incbin "graphics/trade/gba_affine_map.bin"
+
+ .align 2
+gOamData_8215878:: @ 8215878
+ .2byte 0x0100
+ .2byte 0x4000
+ .2byte 0x0000
+
+ .align 2
+gSpriteAnim_8215880:: @ 8215880
+ obj_image_anim_frame 0, 3
+ obj_image_anim_frame 4, 3
+ obj_image_anim_frame 8, 3
+ obj_image_anim_frame 12, 3
+ obj_image_anim_frame 16, 3
+ obj_image_anim_frame 20, 3
+ obj_image_anim_frame 24, 3
+ obj_image_anim_frame 28, 3
+ obj_image_anim_frame 32, 3
+ obj_image_anim_frame 36, 3
+ obj_image_anim_frame 40, 3
+ obj_image_anim_frame 44, 3
+ obj_image_anim_loop 1
+ obj_image_anim_frame 0, 3
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_82158BC:: @ 82158BC
+ obj_image_anim_frame 0, 3
+ obj_image_anim_frame 4, 3
+ obj_image_anim_frame 8, 3
+ obj_image_anim_frame 12, 3
+ obj_image_anim_frame 16, 3
+ obj_image_anim_frame 20, 3
+ obj_image_anim_frame 24, 3
+ obj_image_anim_frame 28, 3
+ obj_image_anim_frame 32, 3
+ obj_image_anim_frame 36, 3
+ obj_image_anim_frame 40, 3
+ obj_image_anim_frame 44, 3
+ obj_image_anim_loop 2
+ obj_image_anim_frame 0, 3
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_82158F8:: @ 82158F8
+ .4byte gSpriteAnim_8215880
+ .4byte gSpriteAnim_82158BC
+
+ .align 2
+gSpriteAffineAnim_8215900:: @ 8215900
+ obj_rot_scal_anim_frame 0x0, 0x0, 0, 1
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnim_8215910:: @ 8215910
+ obj_rot_scal_anim_frame 0xFFF8, 0x0, 0, 20
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnim_8215920:: @ 8215920
+ obj_rot_scal_anim_frame 0x60, 0x100, 0, 0
+ obj_rot_scal_anim_frame 0x0, 0x0, 0, 5
+ obj_rot_scal_anim_frame 0x8, 0x0, 0, 20
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnimTable_8215940:: @ 8215940
+ .4byte gSpriteAffineAnim_8215900
+ .4byte gSpriteAffineAnim_8215910
+ .4byte gSpriteAffineAnim_8215920
+
+ .align 2
+gUnknown_0821594C:: @ 821594C
+ obj_tiles gTradeBallTiles, 0x600, 5557
+
+ .align 2
+gUnknown_08215954:: @ 8215954
+ obj_pal gTradeBallPalette, 5558
+
+ .align 2
+gSpriteTemplate_821595C:: @ 821595C
+ spr_template 5557, 5558, gOamData_8215878, gSpriteAnimTable_82158F8, NULL, gSpriteAffineAnimTable_8215940, sub_804D6BC
+
+ .align 2
+gOamData_8215974:: @ 8215974
+ .2byte 0x0500
+ .2byte 0x8000
+ .2byte 0x0400
+
+ .align 2
+gSpriteAnim_821597C:: @ 821597C
+ obj_image_anim_frame 0, 5, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_8215984:: @ 8215984
+ .4byte gSpriteAnim_821597C
+
+ .align 2
+gSpriteAffineAnim_8215988:: @ 8215988
+ obj_rot_scal_anim_frame 0xFFF6, 0xFFF6, 0, 5
+ obj_rot_scal_anim_frame 0xA, 0xA, 0, 5
+ obj_rot_scal_anim_jump 0
+
+ .align 2
+gSpriteAffineAnimTable_82159A0:: @ 82159A0
+ .4byte gSpriteAffineAnim_8215988
+
+ .align 2
+gUnknown_082159A4:: @ 82159A4
+ obj_tiles gTradeGlow1Tiles, 0x200, 5550
+
+ .align 2
+gUnknown_082159AC:: @ 82159AC
+ obj_pal gTradeGlowPalette, 5551
+
+ .align 2
+gUnknown_082159B4:: @ 82159B4
+ obj_pal gTradeCableEndPalette, 5555
+
+ .align 2
+gSpriteTemplate_82159BC:: @ 82159BC
+ spr_template 5550, 5551, gOamData_8215974, gSpriteAnimTable_8215984, NULL, gSpriteAffineAnimTable_82159A0, sub_804B058
+
+ .align 2
+gOamData_82159D4:: @ 82159D4
+ .2byte 0x8000
+ .2byte 0x8000
+ .2byte 0x0400
+
+ .align 2
+gSpriteAnim_82159DC:: @ 82159DC
+ obj_image_anim_frame 0, 5, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_82159E4:: @ 82159E4
+ obj_image_anim_frame 8, 5, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_82159EC:: @ 82159EC
+ .4byte gSpriteAnim_82159DC
+ .4byte gSpriteAnim_82159E4
+
+ .align 2
+gUnknown_082159F4:: @ 82159F4
+ obj_tiles gTradeGlow2Tiles, 0x300, 5552
+
+ .align 2
+gSpriteTemplate_82159FC:: @ 82159FC
+ spr_template 5552, 5551, gOamData_82159D4, gSpriteAnimTable_82159EC, NULL, gDummySpriteAffineAnimTable, sub_804B07C
+
+ .align 2
+gOamData_8215A14:: @ 8215A14
+ .2byte 0x8000
+ .2byte 0x8000
+ .2byte 0x0400
+
+ .align 2
+gSpriteAnim_8215A1C:: @ 8215A1C
+ obj_image_anim_frame 0, 10
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_8215A24:: @ 8215A24
+ .4byte gSpriteAnim_8215A1C
+
+ .align 2
+gUnknown_08215A28:: @ 8215A28
+ obj_tiles gTradeCableEndTiles, 0x100, 5554
+
+ .align 2
+gSpriteTemplate_8215A30:: @ 8215A30
+ spr_template 5554, 5555, gOamData_8215A14, gSpriteAnimTable_8215A24, NULL, gDummySpriteAffineAnimTable, sub_804B0BC
+
+ .align 2
+gOamData_8215A48:: @ 8215A48
+ .2byte 0x4000
+ .2byte 0xC000
+ .2byte 0x0400
+
+ .align 2
+gSpriteAnim_8215A50:: @ 8215A50
+ obj_image_anim_frame 0, 2, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_frame 32, 2, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_frame 64, 2, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_frame 96, 2, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_frame 64, 2, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_frame 32, 2, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_frame 0, 2, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_loop 8
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_8215A74:: @ 8215A74
+ .4byte gSpriteAnim_8215A50
+
+ .align 2
+gUnknown_08215A78:: @ 8215A78
+ obj_tiles gTradeGBAScreenTiles, 0x1000, 5556
+
+ .align 2
+gSpriteTemplate_8215A80:: @ 8215A80
+ spr_template 5556, 5555, gOamData_8215A48, gSpriteAnimTable_8215A74, NULL, gDummySpriteAffineAnimTable, sub_804B104
+
+ .align 1
+gTradeGlow2PaletteAnimTable:: @ 8215A98
+ .2byte 0x7F12
+ .2byte 0x7F12
+ .2byte 0x7F12
+ .2byte 0x7FFF
+ .2byte 0x7FFF
+ .2byte 0x7FFF
+ .2byte 0x7F12
+ .2byte 0x7F12
+ .2byte 0x7F12
+ .2byte 0x7FFF
+ .2byte 0x7FFF
+ .2byte 0x7FFF
+
+ .align 2
+gSpriteAffineAnim_8215AB0:: @ 8215AB0
+ obj_rot_scal_anim_frame 0xFF00, 0x100, 0, 0
+ obj_rot_scal_anim_jump 0
+
+ .align 2
+gSpriteAffineAnimTable_8215AC0:: @ 8215AC0
+ .4byte gSpriteAffineAnim_8215AB0
+
+@ 8215AC4
+ .include "data/ingame_trades.inc"
+
+gTradeBallVerticalVelocityTable:: @ 8215BA0
+ .byte 0
+ .byte 0
+ .byte 1
+ .byte 0
+ .byte 1
+ .byte 0
+ .byte 1
+ .byte 1
+ .byte 1
+ .byte 1
+ .byte 2
+ .byte 2
+ .byte 2
+ .byte 2
+ .byte 3
+ .byte 3
+ .byte 3
+ .byte 3
+ .byte 4
+ .byte 4
+ .byte 4
+ .byte 4
+ .byte -4
+ .byte -4
+ .byte -4
+ .byte -3
+ .byte -3
+ .byte -3
+ .byte -3
+ .byte -2
+ .byte -2
+ .byte -2
+ .byte -2
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte -1
+ .byte 0
+ .byte -1
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 1
+ .byte 0
+ .byte 1
+ .byte 0
+ .byte 1
+ .byte 1
+ .byte 1
+ .byte 1
+ .byte 2
+ .byte 2
+ .byte 2
+ .byte 2
+ .byte 3
+ .byte 3
+ .byte 3
+ .byte 3
+ .byte 4
+ .byte 4
+ .byte 4
+ .byte 4
+ .byte -4
+ .byte -3
+ .byte -3
+ .byte -2
+ .byte -2
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte -1
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 1
+ .byte 0
+ .byte 1
+ .byte 1
+ .byte 1
+ .byte 2
+ .byte 2
+ .byte 3
+ .byte 3
+ .byte 4
+ .byte -4
+ .byte -3
+ .byte -2
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 1
+ .byte 0
+ .byte 1
+ .byte 1
+ .byte 2
+ .byte 3
diff --git a/data/trader.s b/data/trader.s
new file mode 100644
index 000000000..5029338d2
--- /dev/null
+++ b/data/trader.s
@@ -0,0 +1,17 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+ .align 2
+gUnknown_083F62D8:: @ 83F62D8
+ .4byte SecretBaseText_Tristan
+ .4byte SecretBaseText_Philip
+ .4byte SecretBaseText_Dennis
+ .4byte SecretBaseText_Roberto
+
+gTraderDecorations:: @ 83F62E8
+ .byte DECOR_DUSKULL_DOLL
+ .byte DECOR_BALL_CUSHION
+ .byte DECOR_TIRE
+ .byte DECOR_PRETTY_FLOWERS
diff --git a/data/trainer_card.s b/data/trainer_card.s
new file mode 100644
index 000000000..d7d71fb68
--- /dev/null
+++ b/data/trainer_card.s
@@ -0,0 +1,61 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+ .align 2
+gBadgesTiles:: @ 83B5AB8
+ .incbin "graphics/trainer_card/badges.4bpp"
+
+ .align 2
+ .4byte 0x02000000 @ XXX
+
+ .align 2
+gUnknown_083B5EBC:: @ 83B5EBC
+ .4byte sub_8093864
+ .4byte sub_80938A8
+ .4byte sub_80938CC
+ .4byte sub_8093918
+ .4byte sub_8093938
+ .4byte sub_8093954
+ .4byte sub_8093980
+
+ .align 2
+gUnknown_083B5ED8:: @ 83B5ED8
+ .4byte sub_8093AA0
+ .4byte sub_8093AF0
+ .4byte sub_8093C0C
+ .4byte sub_8093C38
+ .4byte sub_8093D50
+
+ .align 2
+gUnknown_083B5EEC:: @ 83B5EEC
+ .4byte gUnknown_08E8CAC0
+ .4byte gUnknown_08E8D4C0
+
+gUnknown_083B5EF4:: @ 83B5EF4
+ .string " : $"
+
+ .align 2
+gUnknown_083B5EF8:: @ 83B5EF8
+ .4byte gMenuTrainerCard0Star_Pal
+ .4byte gMenuTrainerCard1Star_Pal
+ .4byte gMenuTrainerCard2Star_Pal
+ .4byte gMenuTrainerCard3Star_Pal
+ .4byte gMenuTrainerCard4Star_Pal
+
+gUnknown_083B5F0C:: @ 83B5F0C
+ .incbin "baserom.gba", 0x003b5f0c, 0x20
+
+ .align 2
+gBadgesPalette:: @ 83B5F2C
+ .incbin "graphics/trainer_card/badges.gbapal"
+
+gUnknown_083B5F4C:: @ 83B5F4C
+ .incbin "baserom.gba", 0x003b5f4c, 0x20
+
+gUnknown_083B5F6C:: @ 83B5F6C
+ .incbin "baserom.gba", 0x003b5f6c, 0x20
+
+gUnknown_083B5F8C:: @ 83B5F8C
+ .incbin "baserom.gba", 0x003b5f8c, 0x40
diff --git a/data/trainer_see.s b/data/trainer_see.s
new file mode 100644
index 000000000..57eeae061
--- /dev/null
+++ b/data/trainer_see.s
@@ -0,0 +1,83 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+ .align 2
+gSpriteImage_839B308:: @ 839B308
+ .incbin "graphics/unknown_sprites/839B4E0/0.4bpp"
+
+ .align 2
+gSpriteImage_839B388:: @ 839B388
+ .incbin "graphics/unknown_sprites/839B4E0/1.4bpp"
+
+ .align 2
+gSpriteImage_839B408:: @ 839B408
+ .incbin "graphics/unknown_sprites/839B408.4bpp"
+
+ .align 2
+gIsTrainerInRange:: @ 839B488
+ .4byte IsTrainerInRangeSouth
+ .4byte IsTrainerInRangeNorth
+ .4byte IsTrainerInRangeWest
+ .4byte IsTrainerInRangeEast
+
+ .align 2
+gTrainerSeeFuncList:: @ 839B498
+ .4byte sub_8084394
+ .4byte sub_8084398
+ .4byte sub_80843DC
+ .4byte sub_808441C
+ .4byte sub_8084478
+ .4byte sub_8084534
+ .4byte sub_8084578
+ .4byte sub_80845AC
+ .4byte sub_80845C8
+ .4byte sub_80845FC
+ .4byte sub_8084654
+ .4byte sub_80846C8
+
+ .align 2
+gTrainerSeeFuncList2:: @ 839B4C8
+ .4byte sub_80845C8
+ .4byte sub_80845FC
+ .4byte sub_8084654
+ .4byte sub_80846C8
+
+ .align 2
+gOamData_839B4D8:: @ 839B4D8
+ .2byte 0x0000
+ .2byte 0x4000
+ .2byte 0x0400
+
+ .align 2
+gSpriteImageTable_839B4E0:: @ 839B4E0
+ obj_frame_tiles gSpriteImage_839B308, 0x80
+ obj_frame_tiles gSpriteImage_839B388, 0x80
+
+ .align 2
+gSpriteImageTable_839B4F0:: @ 839B4F0
+ obj_frame_tiles gSpriteImage_839B408, 0x80
+
+ .align 2
+gSpriteAnim_839B4F8:: @ 839B4F8
+ obj_image_anim_frame 0, 60
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_839B500:: @ 839B500
+ obj_image_anim_frame 1, 60
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_839B508:: @ 839B508
+ .4byte gSpriteAnim_839B4F8
+ .4byte gSpriteAnim_839B500
+
+ .align 2
+gSpriteTemplate_839B510:: @ 839B510
+ spr_template 0xFFFF, 0xFFFF, gOamData_839B4D8, gSpriteAnimTable_839B508, gSpriteImageTable_839B4E0, gDummySpriteAffineAnimTable, objc_exclamation_mark_probably
+
+ .align 2
+gSpriteTemplate_839B528:: @ 839B528
+ spr_template 0xFFFF, 4100, gOamData_839B4D8, gSpriteAnimTable_839B508, gSpriteImageTable_839B4F0, gDummySpriteAffineAnimTable, objc_exclamation_mark_probably
diff --git a/data/truck_scene.s b/data/truck_scene.s
new file mode 100644
index 000000000..9d3958924
--- /dev/null
+++ b/data/truck_scene.s
@@ -0,0 +1,41 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+ .align 2
+gMapObjectPic_MovingBox:: @ 83D28AC
+ .incbin "graphics/map_objects/pics/misc/moving_box.4bpp"
+
+ .align 2
+gMapObjectPalette19:: @ 83D292C
+ .incbin "graphics/map_objects/palettes/19.gbapal"
+
+gTruckCamera_HorizontalTable:: @ 83D294C
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 1
+ .byte 2
+ .byte 2
+ .byte 2
+ .byte 2
+ .byte 2
+ .byte 2
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+
+gUnknown_083D295F:: @ 83D295F
+ step_18
+ step_end
+
+gUnknown_083D2961:: @ 83D2961
+ step_17
+ step_end
diff --git a/data/tv.s b/data/tv.s
new file mode 100644
index 000000000..293f84217
--- /dev/null
+++ b/data/tv.s
@@ -0,0 +1,205 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+gPokeOutbreakSpeciesList:: @ 83D13F8
+ .2byte SPECIES_SURSKIT
+ .2byte MOVE_BUBBLE, MOVE_QUICK_ATTACK, MOVE_NONE, MOVE_NONE
+ .byte 3
+ .byte MAPSEC_Route102
+
+ .2byte SPECIES_SURSKIT
+ .2byte MOVE_BUBBLE, MOVE_QUICK_ATTACK, MOVE_NONE, MOVE_NONE
+ .byte 15
+ .byte MAPSEC_Route114
+
+ .2byte SPECIES_SURSKIT
+ .2byte MOVE_BUBBLE, MOVE_QUICK_ATTACK, MOVE_NONE, MOVE_NONE
+ .byte 15
+ .byte MAPSEC_Route117
+
+ .2byte SPECIES_SURSKIT
+ .2byte MOVE_BUBBLE, MOVE_QUICK_ATTACK, MOVE_NONE, MOVE_NONE
+ .byte 28
+ .byte MAPSEC_Route120
+
+ .2byte SPECIES_SKITTY
+ .2byte MOVE_GROWL, MOVE_TACKLE, MOVE_NONE, MOVE_NONE
+ .byte 15
+ .byte MAPSEC_Route116
+
+ .align 2
+gTVNewsTextGroup1:: @ 83D1434
+ .4byte 0x0
+ .4byte gTVNewsText_EnergyGuru1
+ .4byte gTVNewsText_GameCorner1
+ .4byte gTVNewsText_LilycoveDepartment1
+
+ .align 2
+gTVNewsTextGroup2:: @ 83D1444
+ .4byte 0x0
+ .4byte gTVNewsText_EnergyGuru2
+ .4byte gTVNewsText_GameCorner2
+ .4byte gTVNewsText_LilycoveDepartment2
+
+ .align 2
+gTVNewsTextGroup3:: @ 83D1454
+ .4byte 0x0
+ .4byte gTVNewsText_EnergyGuru3
+ .4byte gTVNewsText_GameCorner3
+ .4byte gTVNewsText_LilycoveDepartment3
+
+ .align 2
+gUnknown_083D1464:: @ 83D1464
+ .4byte gStringVar1
+ .4byte gStringVar2
+ .4byte gStringVar3
+
+ .align 2
+gTVFanClubTextGroup:: @ 83D1470
+ .4byte gTVFanClubText1
+ .4byte gTVFanClubText2
+ .4byte gTVFanClubText3
+ .4byte gTVFanClubText4
+ .4byte gTVFanClubText5
+ .4byte gTVFanClubText6
+ .4byte gTVFanClubText7
+ .4byte gTVFanClubText8
+
+ .align 2
+gTVRecentHappeningsTextGroup:: @ 83D1490
+ .4byte gTVRecentHappeningsText1
+ .4byte gTVRecentHappeningsText2
+ .4byte gTVRecentHappeningsText3
+ .4byte gTVRecentHappeningsText4
+ .4byte gTVRecentHappeningsText5
+ .4byte gTVRecentHappeningsText6
+
+ .align 2
+gTVFanClubOpinionsTextGroup:: @ 83D14A8
+ .4byte gTVFanClubOpinionsText1
+ .4byte gTVFanClubOpinionsText2
+ .4byte gTVFanClubOpinionsText3
+ .4byte gTVFanClubOpinionsText4
+ .4byte gTVFanClubOpinionsText5
+
+ .align 2
+gTVPokemonOutbreakTextGroup:: @ 83D14BC
+ .4byte gTVPokemonOutbreakText
+
+ .align 2
+gTVPokemonTodayTextGroup:: @ 83D14C0
+ .4byte gTVPokemonTodayText1
+ .4byte gTVPokemonTodayText2
+ .4byte gTVPokemonTodayText3
+ .4byte gTVPokemonTodayText4
+ .4byte gTVPokemonTodayText5
+ .4byte gTVPokemonTodayText6
+ .4byte gTVPokemonTodayText7
+ .4byte gTVPokemonTodayText8
+ .4byte gTVPokemonTodayText9
+ .4byte gTVPokemonTodayText10
+ .4byte gTVPokemonTodayText11
+ .4byte gTVPokemonTodayText12
+
+ .align 2
+gTVSmartShopperTextGroup:: @ 83D14F0
+ .4byte gTVSmartShopperText1
+ .4byte gTVSmartShopperText2
+ .4byte gTVSmartShopperText3
+ .4byte gTVSmartShopperText4
+ .4byte gTVSmartShopperText5
+ .4byte gTVSmartShopperText6
+ .4byte gTVSmartShopperText7
+ .4byte gTVSmartShopperText8
+ .4byte gTVSmartShopperText9
+ .4byte gTVSmartShopperText10
+ .4byte gTVSmartShopperText11
+ .4byte gTVSmartShopperText12
+ .4byte gTVSmartShopperText13
+
+ .align 2
+gTVBravoTrainerTextGroup:: @ 83D1524
+ .4byte gTVBravoTrainerText1
+ .4byte gTVBravoTrainerText2
+ .4byte gTVBravoTrainerText3
+ .4byte gTVBravoTrainerText4
+ .4byte gTVBravoTrainerText5
+ .4byte gTVBravoTrainerText6
+ .4byte gTVBravoTrainerText7
+ .4byte gTVBravoTrainerText8
+ .4byte gTVBravoTrainerText9
+
+ .align 2
+gTVBravoTrainerBattleTowerTextGroup:: @ 83D1548
+ .4byte gTVBravoTrainerBattleTowerText1
+ .4byte gTVBravoTrainerBattleTowerText2
+ .4byte gTVBravoTrainerBattleTowerText3
+ .4byte gTVBravoTrainerBattleTowerText4
+ .4byte gTVBravoTrainerBattleTowerText5
+ .4byte gTVBravoTrainerBattleTowerText6
+ .4byte gTVBravoTrainerBattleTowerText7
+ .4byte gTVBravoTrainerBattleTowerText8
+ .4byte gTVBravoTrainerBattleTowerText9
+ .4byte gTVBravoTrainerBattleTowerText10
+ .4byte gTVBravoTrainerBattleTowerText11
+ .4byte gTVBravoTrainerBattleTowerText12
+ .4byte gTVBravoTrainerBattleTowerText13
+ .4byte gTVBravoTrainerBattleTowerText14
+ .4byte gTVBravoTrainerBattleTowerText15
+
+ .align 2
+gTVNameRaterTextGroup:: @ 83D1584
+ .4byte gTVNameRaterText1
+ .4byte gTVNameRaterText2
+ .4byte gTVNameRaterText3
+ .4byte gTVNameRaterText4
+ .4byte gTVNameRaterText5
+ .4byte gTVNameRaterText6
+ .4byte gTVNameRaterText7
+ .4byte gTVNameRaterText8
+ .4byte gTVNameRaterText9
+ .4byte gTVNameRaterText10
+ .4byte gTVNameRaterText11
+ .4byte gTVNameRaterText12
+ .4byte gTVNameRaterText13
+ .4byte gTVNameRaterText14
+ .4byte gTVNameRaterText15
+ .4byte gTVNameRaterText16
+ .4byte gTVNameRaterText17
+ .4byte gTVNameRaterText18
+ .4byte gTVNameRaterText19
+
+ .align 2
+gTVPokemonTodayFailedCaptureTextGroup:: @ 83D15D0
+ .4byte gTVPokemonTodayFailedCaptureText1
+ .4byte gTVPokemonTodayFailedCaptureText2
+ .4byte gTVPokemonTodayFailedCaptureText3
+ .4byte gTVPokemonTodayFailedCaptureText4
+ .4byte gTVPokemonTodayFailedCaptureText5
+ .4byte gTVPokemonTodayFailedCaptureText6
+ .4byte gTVPokemonTodayFailedCaptureText7
+
+ .align 2
+gTVFishingGuruAdviceTextGroup:: @ 83D15EC
+ .4byte gTVFishingGuruAdviceText1
+ .4byte gTVFishingGuruAdviceText2
+
+ .align 2
+gTVWorldOfMastersTextGroup:: @ 83D15F4
+ .4byte gTVWorldOfMastersText1
+ .4byte gTVWorldOfMastersText2
+ .4byte gTVWorldOfMastersText3
+
+ .align 2
+gTVGabbyAndTyTextGroup:: @ 83D1600
+ .4byte gTVGabbyAndTyText1
+ .4byte gTVGabbyAndTyText2
+ .4byte gTVGabbyAndTyText3
+ .4byte gTVGabbyAndTyText4
+ .4byte gTVGabbyAndTyText5
+ .4byte gTVGabbyAndTyText6
+ .4byte gTVGabbyAndTyText7
+ .4byte gTVGabbyAndTyText8
+ .4byte gTVGabbyAndTyText9
diff --git a/data/unknown_debug_menu.s b/data/unknown_debug_menu.s
new file mode 100644
index 000000000..eaa635fa4
--- /dev/null
+++ b/data/unknown_debug_menu.s
@@ -0,0 +1,32 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+UnknownString_1stRound:
+ .string "1st round$"
+UnknownString_2ndRound:
+ .string "2nd round$"
+UnknownString_3rdRound:
+ .string "3rd round$"
+UnknownString_4thRound:
+ .string "4th round$"
+UnknownString_5thRound:
+ .string "5th round$"
+UnknownString_6thRound:
+ .string "6th round$"
+UnknownString_7thRound:
+ .string "7th round$"
+UnknownString_8thRound:
+ .string "8th round$"
+
+ .align 2
+gUnknown_0842C29C:: @ 842C29C
+ .4byte UnknownString_1stRound, sub_814A4B8
+ .4byte UnknownString_2ndRound, sub_814A4B8
+ .4byte UnknownString_3rdRound, sub_814A4B8
+ .4byte UnknownString_4thRound, sub_814A4B8
+ .4byte UnknownString_5thRound, sub_814A4B8
+ .4byte UnknownString_6thRound, sub_814A4B8
+ .4byte UnknownString_7thRound, sub_814A4B8
+ .4byte UnknownString_8thRound, sub_814A4B8
diff --git a/data/wallclock.s b/data/wallclock.s
new file mode 100644
index 000000000..15ab36097
--- /dev/null
+++ b/data/wallclock.s
@@ -0,0 +1,86 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+ .align 2
+ClockGfx_Misc: @ 83F7814
+ .incbin "graphics/misc/clock_misc.4bpp.lz"
+
+ .align 2
+gUnknown_083F7A90:: @ 83F7A90
+ obj_tiles ClockGfx_Misc, 0x2000, 0x1000
+ .space 8
+
+ .align 2
+gUnknown_083F7AA0:: @ 83F7AA0
+ obj_pal gMiscClockMale_Pal, 0x1000
+ obj_pal gMiscClockFemale_Pal, 0x1001
+ .space 8
+
+ .align 2
+gOamData_83F7AB8:: @ 83F7AB8
+ .2byte 0x00A0
+ .2byte 0xC000
+ .2byte 0x0400
+
+ .align 2
+gSpriteAnim_83F7AC0:: @ 83F7AC0
+ obj_image_anim_frame 0, 30
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83F7AC8:: @ 83F7AC8
+ obj_image_anim_frame 64, 30
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_83F7AD0:: @ 83F7AD0
+ .4byte gSpriteAnim_83F7AC0
+
+ .align 2
+gSpriteAnimTable_83F7AD4:: @ 83F7AD4
+ .4byte gSpriteAnim_83F7AC8
+
+ .align 2
+gSpriteTemplate_83F7AD8:: @ 83F7AD8
+ spr_template 4096, 4096, gOamData_83F7AB8, gSpriteAnimTable_83F7AD0, NULL, gDummySpriteAffineAnimTable, sub_810B05C
+
+ .align 2
+gSpriteTemplate_83F7AF0:: @ 83F7AF0
+ spr_template 4096, 4096, gOamData_83F7AB8, gSpriteAnimTable_83F7AD4, NULL, gDummySpriteAffineAnimTable, sub_810B0F4
+
+ .align 2
+gOamData_83F7B08:: @ 83F7B08
+ .2byte 0x00A0
+ .2byte 0x4000
+ .2byte 0x0800
+
+ .align 2
+gSpriteAnim_83F7B10:: @ 83F7B10
+ obj_image_anim_frame 132, 30
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83F7B18:: @ 83F7B18
+ obj_image_anim_frame 128, 30
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_83F7B20:: @ 83F7B20
+ .4byte gSpriteAnim_83F7B10
+
+ .align 2
+gSpriteAnimTable_83F7B24:: @ 83F7B24
+ .4byte gSpriteAnim_83F7B18
+
+ .align 2
+gSpriteTemplate_83F7B28:: @ 83F7B28
+ spr_template 4096, 4096, gOamData_83F7B08, gSpriteAnimTable_83F7B20, NULL, gDummySpriteAffineAnimTable, sub_810B18C
+
+ .align 2
+gSpriteTemplate_83F7B40:: @ 83F7B40
+ spr_template 4096, 4096, gOamData_83F7B08, gSpriteAnimTable_83F7B24, NULL, gDummySpriteAffineAnimTable, sub_810B230
+
+@ 83F7B58
+ .include "data/clock_hand_coords.inc"
diff --git a/data/weather.s b/data/weather.s
new file mode 100644
index 000000000..814030248
--- /dev/null
+++ b/data/weather.s
@@ -0,0 +1,437 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+ .align 2
+DroughtPaletteData_0: @ 8393FE8
+ .incbin "graphics/weather/drought0.bin.lz"
+
+ .align 2
+DroughtPaletteData_1: @ 839480C
+ .incbin "graphics/weather/drought1.bin.lz"
+
+ .align 2
+DroughtPaletteData_2: @ 8395004
+ .incbin "graphics/weather/drought2.bin.lz"
+
+ .align 2
+DroughtPaletteData_3: @ 83957A0
+ .incbin "graphics/weather/drought3.bin.lz"
+
+ .align 2
+DroughtPaletteData_4: @ 8395FBC
+ .incbin "graphics/weather/drought4.bin.lz"
+
+ .align 2
+DroughtPaletteData_5: @ 8396784
+ .incbin "graphics/weather/drought5.bin.lz"
+
+ .align 2
+gUnknown_08396FA8:: @ 8396FA8
+ .4byte DroughtPaletteData_0
+ .4byte DroughtPaletteData_1
+ .4byte DroughtPaletteData_2
+ .4byte DroughtPaletteData_3
+ .4byte DroughtPaletteData_4
+ .4byte DroughtPaletteData_5
+ @.4byte unk_20000000
+ .incbin "baserom.gba", 0x00396fc0, 0x4 @ pointer to unk_2000000?
+
+ .align 2
+gUnknown_08396FC4:: @ 8396FC4
+ .4byte 0x0202f7e8
+
+ .align 2
+gUnknown_08396FC8:: @ 8396FC8
+ .4byte sub_807CAE8, nullsub_38, sub_807CAE8, sub_807CB0C
+ .4byte sub_807DE78, sub_807DEF4, sub_807DEC4, sub_807DF54
+ .4byte sub_807DF9C, nullsub_55, sub_807DFC0, sub_807DFD0
+ .4byte sub_807E364, sub_807E400, sub_807E3D0, sub_807E460
+ .4byte sub_807E9C8, snowflakes_progress2, sub_807EA18, sub_807EAC0
+ .4byte sub_807EE80, sub_807EFC0, sub_807EEF4, sub_807F34C
+ .4byte sub_807F49C, sub_807F52C, sub_807F4FC, sub_807F5EC
+ .4byte sub_807F7F8, sub_807F888, sub_807F858, sub_807F934
+ .4byte sub_807FE9C, sub_807FF4C, sub_807FF1C, sub_807FFC8
+ .4byte sub_807FB24, sub_807FBD8, sub_807FBA8, sub_807FC3C
+ .4byte sub_807F49C, sub_807F52C, sub_807F4FC, sub_807F5EC
+ .4byte sub_8080430, nullsub_56, sub_8080460, sub_8080470
+ .4byte sub_807E110, sub_807E174, sub_807E144, sub_807E258
+ .4byte sub_807EF24, sub_807EFC0, sub_807EF90, sub_807F34C
+ .4byte sub_8080474, sub_80804F8, sub_80804C8, sub_808056C
+
+ .align 2
+gUnknown_083970B8:: @ 83970B8
+ .4byte sub_807CC24
+ .4byte sub_807CCAC
+ .4byte nullsub_39
+ .4byte nullsub_39
+
+gUnknown_083970C8:: @ 83970C8
+ .incbin "baserom.gba", 0x003970c8, 0x20
+
+ .align 2
+gUnknown_083970E8:: @ 83970E8
+ .incbin "graphics/weather/0.gbapal"
+
+ .align 2
+gUnknown_08397108:: @ 8397108
+ .incbin "graphics/weather/1.gbapal"
+
+ .align 2
+gUnknown_08397128:: @ 8397128
+ .incbin "graphics/weather/2.gbapal"
+
+ .align 2
+WeatherFog0Tiles: @ 8397148
+ .incbin "graphics/weather/fog0.4bpp"
+
+ .align 2
+gWeatherFog1Tiles:: @ 8397948
+ .incbin "graphics/weather/fog1.4bpp"
+
+ .align 2
+WeatherCloudTiles: @ 8398148
+ .incbin "graphics/weather/cloud.4bpp"
+
+ .align 2
+gSpriteImage_8398948:: @ 8398948
+ .incbin "graphics/weather/snow0.4bpp"
+
+ .align 2
+gSpriteImage_8398968:: @ 8398968
+ .incbin "graphics/weather/snow1.4bpp"
+
+ .align 2
+WeatherBubbleTiles: @ 8398988
+ .incbin "graphics/weather/bubble.4bpp"
+
+ .align 2
+WeatherAshTiles: @ 83989C8
+ .incbin "graphics/weather/ash.4bpp"
+
+ .align 2
+WeatherRainTiles: @ 83999C8
+ .incbin "graphics/weather/rain.4bpp"
+
+ .align 2
+WeatherSandstormTiles: @ 8399FC8
+ .incbin "graphics/weather/sandstorm.4bpp"
+
+ .align 1
+gUnknown_0839A9C8:: @ 839A9C8
+ .2byte 0, 66
+ .2byte 5, 73
+ .2byte 10, 78
+
+ .align 2
+gUnknown_0839A9D4:: @ 839A9D4
+ obj_tiles WeatherCloudTiles, 0x800, 0x1200
+
+ .align 2
+gOamData_839A9DC:: @ 839A9DC
+ .2byte 0x0400
+ .2byte 0xC000
+ .2byte 0x0C00
+
+ .align 2
+gSpriteAnim_839A9E4:: @ 839A9E4
+ obj_image_anim_frame 0, 16
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_839A9EC:: @ 839A9EC
+ .4byte gSpriteAnim_839A9E4
+
+ .align 2
+gSpriteTemplate_839A9F0:: @ 839A9F0
+ spr_template 4608, 4609, gOamData_839A9DC, gSpriteAnimTable_839A9EC, NULL, gDummySpriteAffineAnimTable, sub_807E0F4
+
+ .align 1
+gUnknown_0839AA08:: @ 839AA08
+ .2byte 0, 0
+ .2byte 0, 160
+ .2byte 0, 64
+ .2byte 144, 224
+ .2byte 144, 128
+ .2byte 32, 32
+ .2byte 32, 192
+ .2byte 32, 96
+ .2byte 72, 128
+ .2byte 72, 32
+ .2byte 72, 192
+ .2byte 216, 96
+ .2byte 216, 0
+ .2byte 104, 160
+ .2byte 104, 64
+ .2byte 104, 224
+ .2byte 144, 0
+ .2byte 144, 160
+ .2byte 144, 64
+ .2byte 32, 224
+ .2byte 32, 128
+ .2byte 72, 32
+ .2byte 72, 192
+ .2byte 48, 96
+
+ .align 2
+gOamData_839AA68:: @ 839AA68
+ .2byte 0x8000
+ .2byte 0x8000
+ .2byte 0x2400
+
+ .align 2
+gSpriteAnim_839AA70:: @ 839AA70
+ obj_image_anim_frame 0, 16
+ obj_image_anim_jump 0
+
+ .align 2
+gSpriteAnim_839AA78:: @ 839AA78
+ obj_image_anim_frame 8, 3
+ obj_image_anim_frame 32, 2
+ obj_image_anim_frame 40, 2
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_839AA88:: @ 839AA88
+ obj_image_anim_frame 8, 3
+ obj_image_anim_frame 16, 3
+ obj_image_anim_frame 24, 4
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_839AA98:: @ 839AA98
+ .4byte gSpriteAnim_839AA70
+ .4byte gSpriteAnim_839AA78
+ .4byte gSpriteAnim_839AA88
+
+ .align 2
+gSpriteTemplate_839AAA4:: @ 839AAA4
+ spr_template 4614, 4608, gOamData_839AA68, gSpriteAnimTable_839AA98, NULL, gDummySpriteAffineAnimTable, sub_807E5C0
+
+gUnknown_0839AABC:: @ 839AABC
+ .incbin "baserom.gba", 0x0039aabc, 0x8
+
+gUnknown_0839AAC4:: @ 839AAC4
+ .incbin "baserom.gba", 0x0039aac4, 0x8
+
+ .align 2
+gUnknown_0839AACC:: @ 839AACC
+ obj_tiles WeatherRainTiles, 0x600, 0x1206
+
+ .align 2
+gOamData_839AAD4:: @ 839AAD4
+ .2byte 0x0000
+ .2byte 0x0000
+ .2byte 0x0400
+
+ .align 2
+gSpriteImageTable_839AADC:: @ 839AADC
+ obj_frame_tiles gSpriteImage_8398948, 0x20
+ obj_frame_tiles gSpriteImage_8398968, 0x20
+
+ .align 2
+gSpriteAnim_839AAEC:: @ 839AAEC
+ obj_image_anim_frame 0, 16
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_839AAF4:: @ 839AAF4
+ obj_image_anim_frame 1, 16
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_839AAFC:: @ 839AAFC
+ .4byte gSpriteAnim_839AAEC
+ .4byte gSpriteAnim_839AAF4
+
+ .align 2
+gSpriteTemplate_839AB04:: @ 839AB04
+ spr_template 0xFFFF, 4608, gOamData_839AAD4, gSpriteAnimTable_839AAFC, gSpriteImageTable_839AADC, gDummySpriteAffineAnimTable, sub_807ED48
+
+ .align 2
+ .incbin "baserom.gba", 0x0039ab1c, 0x10
+
+ .align 2
+gOamData_839AB2C:: @ 839AB2C
+ .2byte 0x0400
+ .2byte 0xC000
+ .2byte 0x0800
+
+ .align 2
+gSpriteAnim_839AB34:: @ 839AB34
+ obj_image_anim_frame 0, 16
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_839AB3C:: @ 839AB3C
+ obj_image_anim_frame 32, 16
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_839AB44:: @ 839AB44
+ obj_image_anim_frame 64, 16
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_839AB4C:: @ 839AB4C
+ obj_image_anim_frame 96, 16
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_839AB54:: @ 839AB54
+ obj_image_anim_frame 128, 16
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_839AB5C:: @ 839AB5C
+ obj_image_anim_frame 160, 16
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_839AB64:: @ 839AB64
+ .4byte gSpriteAnim_839AB34
+ .4byte gSpriteAnim_839AB3C
+ .4byte gSpriteAnim_839AB44
+ .4byte gSpriteAnim_839AB4C
+ .4byte gSpriteAnim_839AB54
+ .4byte gSpriteAnim_839AB5C
+
+ .align 2
+gSpriteAffineAnim_839AB7C:: @ 839AB7C
+ obj_rot_scal_anim_frame 0x200, 0x200, 0, 0
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnimTable_839AB8C:: @ 839AB8C
+ .4byte gSpriteAffineAnim_839AB7C
+
+ .align 2
+gSpriteTemplate_839AB90:: @ 839AB90
+ spr_template 4609, 4608, gOamData_839AB2C, gSpriteAnimTable_839AB64, NULL, gSpriteAffineAnimTable_839AB8C, sub_807F688
+
+ .align 2
+gUnknown_0839ABA8:: @ 839ABA8
+ obj_tiles gWeatherFog1Tiles, 0x800, 0x1201
+
+ .align 2
+gUnknown_0839ABB0:: @ 839ABB0
+ obj_tiles WeatherAshTiles, 0x1000, 0x1202
+
+ .align 2
+gOamData_839ABB8:: @ 839ABB8
+ .2byte 0x0400
+ .2byte 0xC000
+ .2byte 0xF400
+
+ .align 2
+gSpriteAnim_839ABC0:: @ 839ABC0
+ obj_image_anim_frame 0, 60
+ obj_image_anim_frame 64, 60
+ obj_image_anim_jump 0
+
+ .align 2
+gSpriteAnimTable_839ABCC:: @ 839ABCC
+ .4byte gSpriteAnim_839ABC0
+
+ .align 2
+gSpriteTemplate_839ABD0:: @ 839ABD0
+ spr_template 4610, 4608, gOamData_839ABB8, gSpriteAnimTable_839ABCC, NULL, gDummySpriteAffineAnimTable, sub_807FAA8
+
+ .align 2
+gUnknown_0839ABE8:: @ 839ABE8
+ obj_tiles WeatherFog0Tiles, 0x800, 0x1203
+
+ .align 2
+gOamData_839ABF0:: @ 839ABF0
+ .2byte 0x0400
+ .2byte 0xC000
+ .2byte 0x0800
+
+ .align 2
+gSpriteAnim_839ABF8:: @ 839ABF8
+ obj_image_anim_frame 0, 16
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_839AC00:: @ 839AC00
+ .4byte gSpriteAnim_839ABF8
+
+ .align 2
+gSpriteTemplate_839AC04:: @ 839AC04
+ spr_template 4611, 4608, gOamData_839ABF0, gSpriteAnimTable_839AC00, NULL, gDummySpriteAffineAnimTable, sub_807FE3C
+
+ .align 2
+gOamData_839AC1C:: @ 839AC1C
+ .2byte 0x0400
+ .2byte 0xC000
+ .2byte 0x0400
+
+ .align 2
+gSpriteAnim_839AC24:: @ 839AC24
+ obj_image_anim_frame 0, 3
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_839AC2C:: @ 839AC2C
+ obj_image_anim_frame 64, 3
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_839AC34:: @ 839AC34
+ .4byte gSpriteAnim_839AC24
+ .4byte gSpriteAnim_839AC2C
+
+ .align 2
+gSpriteTemplate_839AC3C:: @ 839AC3C
+ spr_template 4612, 4609, gOamData_839AC1C, gSpriteAnimTable_839AC34, NULL, gDummySpriteAffineAnimTable, sub_8080338
+
+ .align 2
+gUnknown_0839AC54:: @ 839AC54
+ obj_tiles WeatherSandstormTiles, 0xA00, 0x1204
+
+gUnknown_0839AC5C:: @ 839AC5C
+ .incbin "baserom.gba", 0x0039ac5c, 0xc
+
+gUnknown_0839AC68:: @ 839AC68
+ .incbin "baserom.gba", 0x0039ac68, 0x8
+
+ .align 2
+gUnknown_0839AC70:: @ 839AC70
+ obj_tiles WeatherBubbleTiles, 0x40, 0x1205
+
+ .align 1
+gUnknown_0839AC78:: @ 839AC78
+ .2byte 120, 160
+ .2byte 376, 160
+ .2byte 40, 140
+ .2byte 296, 140
+ .2byte 180, 130
+ .2byte 436, 130
+ .2byte 60, 160
+ .2byte 436, 160
+ .2byte 220, 180
+ .2byte 476, 180
+ .2byte 10, 90
+ .2byte 266, 90
+ .2byte 256, 160
+
+ .align 2
+gSpriteAnim_839ACAC:: @ 839ACAC
+ obj_image_anim_frame 0, 16
+ obj_image_anim_frame 1, 16
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_839ACB8:: @ 839ACB8
+ .4byte gSpriteAnim_839ACAC
+
+ .align 2
+gSpriteTemplate_839ACBC:: @ 839ACBC
+ spr_template 4613, 4608, gOamData_837DF24, gSpriteAnimTable_839ACB8, NULL, gDummySpriteAffineAnimTable, unc_0807DAB4
+
+gUnknown_0839ACD4:: @ 839ACD4
+ .byte 2, 3, 5, 3
+
+gUnknown_0839ACD8:: @ 839ACD8
+ .byte 2, 2, 3, 2
diff --git a/data/wild_encounter.s b/data/wild_encounter.s
new file mode 100644
index 000000000..317502aa9
--- /dev/null
+++ b/data/wild_encounter.s
@@ -0,0 +1,18 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+@ 839B540
+ .include "data/wild_mons.inc"
+
+ .align 2
+gWildFeebasRoute119Data:: @ 839DBFC
+ .byte 20, 25 @ Min/Max level
+ .2byte SPECIES_FEEBAS
+
+ .align 2
+gRoute119WaterTileData:: @ 839DC00
+ .2byte 0x0, 0x2D, 0x0
+ .2byte 0x2E, 0x5B, 0x83
+ .2byte 0x5C, 0x8B, 0x12A
diff --git a/graphics/contest/contest_words.bin b/graphics/contest/contest_words.bin
new file mode 100644
index 000000000..518b608c0
--- /dev/null
+++ b/graphics/contest/contest_words.bin
Binary files differ
diff --git a/graphics/credits/ampersand.png b/graphics/credits/ampersand.png
new file mode 100644
index 000000000..cddc416cf
--- /dev/null
+++ b/graphics/credits/ampersand.png
Binary files differ
diff --git a/graphics/credits/palette_1.pal b/graphics/credits/palette_1.pal
new file mode 100644
index 000000000..b8e71c57f
--- /dev/null
+++ b/graphics/credits/palette_1.pal
@@ -0,0 +1,35 @@
+JASC-PAL
+0100
+32
+0 0 0
+255 255 255
+164 164 164
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+255 230 123
+255 82 41
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
diff --git a/graphics/interface/berry_tag.bin b/graphics/interface/berry_tag.bin
new file mode 100644
index 000000000..1b75a6b1e
--- /dev/null
+++ b/graphics/interface/berry_tag.bin
Binary files differ
diff --git a/graphics/interface/berry_tag_title.bin b/graphics/interface/berry_tag_title.bin
new file mode 100644
index 000000000..ec0ab2643
--- /dev/null
+++ b/graphics/interface/berry_tag_title.bin
Binary files differ
diff --git a/graphics/interface/pokeblock_feeding_bg_map.bin b/graphics/interface/pokeblock_feeding_bg_map.bin
new file mode 100644
index 000000000..9feebf8bc
--- /dev/null
+++ b/graphics/interface/pokeblock_feeding_bg_map.bin
Binary files differ
diff --git a/graphics/interface/pokemon_info.bin b/graphics/interface/pokemon_info.bin
new file mode 100644
index 000000000..a73c0fe94
--- /dev/null
+++ b/graphics/interface/pokemon_info.bin
Binary files differ
diff --git a/graphics/interface/status_screen.bin b/graphics/interface/status_screen.bin
index 745f3d2de..e5387571c 100755..100644
--- a/graphics/interface/status_screen.bin
+++ b/graphics/interface/status_screen.bin
Binary files differ
diff --git a/graphics/interface/status_screen_battle_moves.bin b/graphics/interface/status_screen_battle_moves.bin
new file mode 100644
index 000000000..46a3e9e55
--- /dev/null
+++ b/graphics/interface/status_screen_battle_moves.bin
Binary files differ
diff --git a/graphics/interface/status_screen_contest_moves.bin b/graphics/interface/status_screen_contest_moves.bin
new file mode 100644
index 000000000..cbb339c13
--- /dev/null
+++ b/graphics/interface/status_screen_contest_moves.bin
Binary files differ
diff --git a/graphics/interface/status_screen_pokemon_skills.bin b/graphics/interface/status_screen_pokemon_skills.bin
new file mode 100644
index 000000000..745f3d2de
--- /dev/null
+++ b/graphics/interface/status_screen_pokemon_skills.bin
Binary files differ
diff --git a/graphics/interface/wordgroup_layout.bin b/graphics/interface/wordgroup_layout.bin
new file mode 100644
index 000000000..d9fd80e43
--- /dev/null
+++ b/graphics/interface/wordgroup_layout.bin
Binary files differ
diff --git a/graphics/misc/wallclock_edit.bin b/graphics/misc/wallclock_edit.bin
new file mode 100644
index 000000000..1c655c97b
--- /dev/null
+++ b/graphics/misc/wallclock_edit.bin
Binary files differ
diff --git a/graphics/misc/wallclock_view.bin b/graphics/misc/wallclock_view.bin
new file mode 100644
index 000000000..f75a23c80
--- /dev/null
+++ b/graphics/misc/wallclock_view.bin
Binary files differ
diff --git a/graphics/pokedex/pokedex_detail_layout.bin b/graphics/pokedex/pokedex_detail_layout.bin
new file mode 100644
index 000000000..debd15a94
--- /dev/null
+++ b/graphics/pokedex/pokedex_detail_layout.bin
Binary files differ
diff --git a/graphics/pokedex/pokedex_list_menu.bin b/graphics/pokedex/pokedex_list_menu.bin
new file mode 100644
index 000000000..9cc6acb41
--- /dev/null
+++ b/graphics/pokedex/pokedex_list_menu.bin
Binary files differ
diff --git a/graphics/pokedex/pokedex_listing_menu.bin b/graphics/pokedex/pokedex_listing_menu.bin
new file mode 100644
index 000000000..00e63f3a9
--- /dev/null
+++ b/graphics/pokedex/pokedex_listing_menu.bin
Binary files differ
diff --git a/graphics/pokedex/pokedex_navbar.bin b/graphics/pokedex/pokedex_navbar.bin
new file mode 100644
index 000000000..58da7b7b5
--- /dev/null
+++ b/graphics/pokedex/pokedex_navbar.bin
Binary files differ
diff --git a/graphics/pokedex/pokedex_navbar_3.bin b/graphics/pokedex/pokedex_navbar_3.bin
new file mode 100644
index 000000000..e32733737
--- /dev/null
+++ b/graphics/pokedex/pokedex_navbar_3.bin
Binary files differ
diff --git a/graphics/pokenav/83DFECC.pal b/graphics/pokenav/83DFECC.pal
new file mode 100644
index 000000000..16e02a3c9
--- /dev/null
+++ b/graphics/pokenav/83DFECC.pal
@@ -0,0 +1,19 @@
+JASC-PAL
+0100
+16
+98 0 0
+0 0 0
+82 106 106
+213 213 172
+57 65 74
+0 0 0
+0 0 0
+0 0 0
+197 197 197
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+255 246 213
diff --git a/graphics/pokenav/83DFEEC.png b/graphics/pokenav/83DFEEC.png
new file mode 100644
index 000000000..8b3a39ed5
--- /dev/null
+++ b/graphics/pokenav/83DFEEC.png
Binary files differ
diff --git a/graphics/pokenav/83DFF8C.bin b/graphics/pokenav/83DFF8C.bin
new file mode 100644
index 000000000..9f0d9eb2f
--- /dev/null
+++ b/graphics/pokenav/83DFF8C.bin
Binary files differ
diff --git a/graphics/pokenav/83E003C.pal b/graphics/pokenav/83E003C.pal
new file mode 100644
index 000000000..8d1f2cb75
--- /dev/null
+++ b/graphics/pokenav/83E003C.pal
@@ -0,0 +1,19 @@
+JASC-PAL
+0100
+16
+0 0 0
+255 255 255
+238 238 230
+238 230 255
+213 197 255
+255 222 213
+255 189 180
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
diff --git a/graphics/pokenav/83E005C.png b/graphics/pokenav/83E005C.png
new file mode 100644
index 000000000..b34d17411
--- /dev/null
+++ b/graphics/pokenav/83E005C.png
Binary files differ
diff --git a/graphics/pokenav/83E007C.bin b/graphics/pokenav/83E007C.bin
new file mode 100644
index 000000000..c2ba207a4
--- /dev/null
+++ b/graphics/pokenav/83E007C.bin
Binary files differ
diff --git a/graphics/pokenav/83E0124_pal.bin b/graphics/pokenav/83E0124_pal.bin
new file mode 100644
index 000000000..b1a4230d4
--- /dev/null
+++ b/graphics/pokenav/83E0124_pal.bin
Binary files differ
diff --git a/graphics/pokenav/83E0144_pal.bin b/graphics/pokenav/83E0144_pal.bin
new file mode 100644
index 000000000..6ea1b763c
--- /dev/null
+++ b/graphics/pokenav/83E0144_pal.bin
Binary files differ
diff --git a/graphics/pokenav/83E0164.bin b/graphics/pokenav/83E0164.bin
new file mode 100644
index 000000000..d5b3d5a18
--- /dev/null
+++ b/graphics/pokenav/83E0164.bin
Binary files differ
diff --git a/graphics/pokenav/83E01AC.bin b/graphics/pokenav/83E01AC.bin
new file mode 100644
index 000000000..6dffc2ac5
--- /dev/null
+++ b/graphics/pokenav/83E01AC.bin
@@ -0,0 +1 @@
+""""""""&""""""""""""""""""""""""""& \ No newline at end of file
diff --git a/graphics/pokenav/83E01F4.bin b/graphics/pokenav/83E01F4.bin
new file mode 100644
index 000000000..7928705a9
--- /dev/null
+++ b/graphics/pokenav/83E01F4.bin
@@ -0,0 +1 @@
+"""""""""""&"""""""""""""""""""""""""""""""""""& \ No newline at end of file
diff --git a/graphics/pokenav/83E0254.pal b/graphics/pokenav/83E0254.pal
new file mode 100644
index 000000000..98c309d52
--- /dev/null
+++ b/graphics/pokenav/83E0254.pal
@@ -0,0 +1,19 @@
+JASC-PAL
+0100
+16
+0 255 0
+0 255 0
+0 255 0
+0 255 0
+0 255 0
+0 255 0
+0 255 0
+0 255 0
+0 255 0
+0 255 0
+0 255 0
+0 255 0
+0 255 0
+0 255 0
+0 255 0
+0 255 0
diff --git a/graphics/pokenav/83E0274.pal b/graphics/pokenav/83E0274.pal
new file mode 100644
index 000000000..4755184e2
--- /dev/null
+++ b/graphics/pokenav/83E0274.pal
@@ -0,0 +1,19 @@
+JASC-PAL
+0100
+16
+65 65 65
+49 65 74
+106 115 123
+255 255 255
+189 106 115
+255 156 156
+255 222 205
+180 131 156
+189 139 156
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+255 255 255
+255 139 0
diff --git a/graphics/pokenav/83E02B4.pal b/graphics/pokenav/83E02B4.pal
new file mode 100644
index 000000000..7af9ff8e1
--- /dev/null
+++ b/graphics/pokenav/83E02B4.pal
@@ -0,0 +1,19 @@
+JASC-PAL
+0100
+16
+0 0 0
+255 255 255
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+82 82 74
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+255 156 156
diff --git a/graphics/pokenav/83E02D4.bin b/graphics/pokenav/83E02D4.bin
new file mode 100644
index 000000000..dc7b2901f
--- /dev/null
+++ b/graphics/pokenav/83E02D4.bin
Binary files differ
diff --git a/graphics/pokenav/83E0314.pal b/graphics/pokenav/83E0314.pal
new file mode 100644
index 000000000..3b2faa935
--- /dev/null
+++ b/graphics/pokenav/83E0314.pal
@@ -0,0 +1,19 @@
+JASC-PAL
+0100
+16
+0 0 0
+255 8 65
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+57 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+255 156 156
diff --git a/graphics/pokenav/83E03A8.pal b/graphics/pokenav/83E03A8.pal
new file mode 100644
index 000000000..ba97343c5
--- /dev/null
+++ b/graphics/pokenav/83E03A8.pal
@@ -0,0 +1,19 @@
+JASC-PAL
+0100
+16
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+197 197 197
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+255 205 222
diff --git a/graphics/pokenav/83E03C8.bin b/graphics/pokenav/83E03C8.bin
new file mode 100644
index 000000000..20e73b807
--- /dev/null
+++ b/graphics/pokenav/83E03C8.bin
Binary files differ
diff --git a/graphics/pokenav/83E3780.png b/graphics/pokenav/83E3780.png
new file mode 100644
index 000000000..84c74462d
--- /dev/null
+++ b/graphics/pokenav/83E3780.png
Binary files differ
diff --git a/graphics/pokenav/83E3BC0.bin b/graphics/pokenav/83E3BC0.bin
new file mode 100644
index 000000000..161928e5c
--- /dev/null
+++ b/graphics/pokenav/83E3BC0.bin
Binary files differ
diff --git a/graphics/pokenav/83E42D8.pal b/graphics/pokenav/83E42D8.pal
new file mode 100644
index 000000000..f30ee169b
--- /dev/null
+++ b/graphics/pokenav/83E42D8.pal
@@ -0,0 +1,19 @@
+JASC-PAL
+0100
+16
+0 0 0
+255 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+255 255 255
diff --git a/graphics/pokenav/83E4678.pal b/graphics/pokenav/83E4678.pal
new file mode 100644
index 000000000..9b39ac8cf
--- /dev/null
+++ b/graphics/pokenav/83E4678.pal
@@ -0,0 +1,19 @@
+JASC-PAL
+0100
+16
+189 222 246
+164 197 230
+172 205 230
+255 255 255
+230 238 246
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
diff --git a/graphics/pokenav/bottom_toolbar.bin b/graphics/pokenav/bottom_toolbar.bin
new file mode 100644
index 000000000..84261404b
--- /dev/null
+++ b/graphics/pokenav/bottom_toolbar.bin
Binary files differ
diff --git a/graphics/pokenav/condition_screen.bin b/graphics/pokenav/condition_screen.bin
new file mode 100644
index 000000000..7dc6d6c32
--- /dev/null
+++ b/graphics/pokenav/condition_screen.bin
@@ -0,0 +1 @@
+"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""&"""""""""""""""""""""""""""""""&"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" \ No newline at end of file
diff --git a/graphics/slot_machine/83EDDB0.pal b/graphics/slot_machine/83EDDB0.pal
new file mode 100644
index 000000000..3e1dbc024
--- /dev/null
+++ b/graphics/slot_machine/83EDDB0.pal
@@ -0,0 +1,19 @@
+JASC-PAL
+0100
+16
+98 98 90
+255 189 16
+131 0 0
+255 189 16
+197 65 16
+197 65 16
+197 65 16
+255 0 255
+255 0 255
+255 0 255
+255 0 255
+255 0 255
+255 0 255
+255 0 255
+255 0 255
+0 0 0
diff --git a/graphics/slot_machine/83EDDD0.pal b/graphics/slot_machine/83EDDD0.pal
new file mode 100644
index 000000000..38b1c125d
--- /dev/null
+++ b/graphics/slot_machine/83EDDD0.pal
@@ -0,0 +1,19 @@
+JASC-PAL
+0100
+16
+98 98 90
+255 189 16
+131 0 0
+197 65 16
+255 189 16
+197 65 16
+197 65 16
+255 0 255
+255 0 255
+255 0 255
+255 0 255
+255 0 255
+255 0 255
+255 0 255
+255 0 255
+0 0 0
diff --git a/graphics/slot_machine/83EDDF0.pal b/graphics/slot_machine/83EDDF0.pal
new file mode 100644
index 000000000..f4abe23f1
--- /dev/null
+++ b/graphics/slot_machine/83EDDF0.pal
@@ -0,0 +1,19 @@
+JASC-PAL
+0100
+16
+98 98 90
+255 189 16
+131 0 0
+197 65 16
+197 65 16
+255 189 16
+197 65 16
+255 0 255
+255 0 255
+255 0 255
+255 0 255
+255 0 255
+255 0 255
+255 0 255
+255 0 255
+0 0 0
diff --git a/graphics/slot_machine/83EDE24_pal.bin b/graphics/slot_machine/83EDE24_pal.bin
new file mode 100644
index 000000000..031a3914c
--- /dev/null
+++ b/graphics/slot_machine/83EDE24_pal.bin
Binary files differ
diff --git a/graphics/slot_machine/slots_layout.bin b/graphics/slot_machine/slots_layout.bin
new file mode 100644
index 000000000..e7bc27a70
--- /dev/null
+++ b/graphics/slot_machine/slots_layout.bin
Binary files differ
diff --git a/graphics/unknown/83EC98C.pal b/graphics/unknown/83EC98C.pal
new file mode 100644
index 000000000..e7717d74e
--- /dev/null
+++ b/graphics/unknown/83EC98C.pal
@@ -0,0 +1,19 @@
+JASC-PAL
+0100
+16
+115 197 164
+255 213 180
+255 197 148
+222 148 115
+123 65 65
+57 74 123
+41 57 98
+24 41 82
+16 32 57
+222 230 238
+255 197 90
+189 156 90
+255 98 90
+197 65 65
+255 255 255
+0 0 0
diff --git a/graphics/unknown/83EC9AC.pal b/graphics/unknown/83EC9AC.pal
new file mode 100644
index 000000000..e106ce693
--- /dev/null
+++ b/graphics/unknown/83EC9AC.pal
@@ -0,0 +1,19 @@
+JASC-PAL
+0100
+16
+115 197 164
+255 222 205
+222 164 148
+205 131 115
+123 90 82
+98 98 115
+41 57 65
+164 106 82
+74 49 57
+205 205 222
+255 197 90
+189 156 90
+255 98 90
+197 65 65
+255 255 255
+0 0 0
diff --git a/graphics/unknown/unknown_D15D64.bin b/graphics/unknown/unknown_D15D64.bin
new file mode 100755
index 000000000..40de9e529
--- /dev/null
+++ b/graphics/unknown/unknown_D15D64.bin
Binary files differ
diff --git a/graphics/unknown/unknown_D17424.bin b/graphics/unknown/unknown_D17424.bin
new file mode 100755
index 000000000..ce20ff15a
--- /dev/null
+++ b/graphics/unknown/unknown_D17424.bin
Binary files differ
diff --git a/graphics/unknown/unknown_D176CC.bin b/graphics/unknown/unknown_D176CC.bin
new file mode 100755
index 000000000..b2567ca7c
--- /dev/null
+++ b/graphics/unknown/unknown_D176CC.bin
Binary files differ
diff --git a/graphics/unknown/unknown_D177D8.bin b/graphics/unknown/unknown_D177D8.bin
new file mode 100755
index 000000000..e8a506838
--- /dev/null
+++ b/graphics/unknown/unknown_D177D8.bin
Binary files differ
diff --git a/graphics/unknown/unknown_D17C3C.bin b/graphics/unknown/unknown_D17C3C.bin
new file mode 100755
index 000000000..77e35348a
--- /dev/null
+++ b/graphics/unknown/unknown_D17C3C.bin
Binary files differ
diff --git a/graphics/unknown/unknown_E6BC04.bin b/graphics/unknown/unknown_E6BC04.bin
new file mode 100755
index 000000000..91230cb01
--- /dev/null
+++ b/graphics/unknown/unknown_E6BC04.bin
Binary files differ
diff --git a/sound/programmable_wave_samples/845541C.aif b/graphics/unknown/unknown_E70968.bin
index c748efda8..d48de1d6f 100644..100755
--- a/sound/programmable_wave_samples/845541C.aif
+++ b/graphics/unknown/unknown_E70968.bin
Binary files differ
diff --git a/graphics/unknown/unknown_E70C38.bin b/graphics/unknown/unknown_E70C38.bin
new file mode 100755
index 000000000..6a6f7c049
--- /dev/null
+++ b/graphics/unknown/unknown_E70C38.bin
@@ -0,0 +1 @@
+00000000000000000000000000000000000000000000000000000000000000000000000000000000000000€ÀĀŀƀǀȀɀʀˀ̀̀000000000000000000ЀрҀӀԀՀր׀؀ـڀۀ܀݀ހ߀0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 \ No newline at end of file
diff --git a/graphics/unknown/unknown_E70F0C.bin b/graphics/unknown/unknown_E70F0C.bin
new file mode 100755
index 000000000..6312b8645
--- /dev/null
+++ b/graphics/unknown/unknown_E70F0C.bin
@@ -0,0 +1 @@
+τ΄̈́̄˄ʄɄȄDŽƄńĄÄ„߄ބ݄܄ۄڄل؄ׄքՄԄӄ҄фЄ \ No newline at end of file
diff --git a/graphics/unknown/unknown_E77004.bin b/graphics/unknown/unknown_E77004.bin
new file mode 100644
index 000000000..0342aac39
--- /dev/null
+++ b/graphics/unknown/unknown_E77004.bin
Binary files differ
diff --git a/graphics/unknown/unknown_E8096C.png b/graphics/unknown/unknown_E8096C.png
new file mode 100755
index 000000000..92fe2da3a
--- /dev/null
+++ b/graphics/unknown/unknown_E8096C.png
Binary files differ
diff --git a/graphics/unknown/unknown_E81098.bin b/graphics/unknown/unknown_E81098.bin
new file mode 100755
index 000000000..4cc6a9b90
--- /dev/null
+++ b/graphics/unknown/unknown_E81098.bin
@@ -0,0 +1,189 @@
+QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ'''QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ'''''''''''''''''''''''&&QQQQQQQQQQQQQQ'''''''''''''''''''''''&&&'&&&&&&&&&&&&&%%QQQ'))))''''))))''''))))''''&&&&&&&&&&&&&&&&%%%%%%%%%%%%))))))))))))))))))))))))&&&&&&&&&&&&&&&&%%%%%%%%%%%%%%%%QQQ))))'))))''''))))''''&&&&''''&&&&&&&&%%%%&&&&%%%%%%%%QQQQQQQQQQQQQ'''Q'''''''''''''''&&&'''''&&&&&&&'%%&&&&&&QQQQQQQQQQQQQQQQQQQQQQQQQQQQQ'''QQ''''''''''''''&&''''''QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ'''QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ'QQQQ''QQ''''Q'''''''''''&'''''&&&Q''''''''''''''''''&&''''&&&&''&&&&&%&&&&%%%%&&&%%%%%&%%%%%%%'''&&&&&&&&&&&%%&&&%%%%%&%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&'''%%&&&&&&%%%%%&&&%%%%%%%&%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%'''''Q'''''''&&''''''&&&&''''%&&&&&''%%%%&&&&%%%%%&&&%%%%%%%&QQQQQQQQQQQQQQQ'QQQQQ''QQQQ''''QQ'''''Q&''''''&&&'''''QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ)QQQQQ))QQQQQ''QQQ'''QQ))'''Q))))'&)))))&&)))))&&&))))&&&%)))&&&%%'''&&&&%''&&&&%%'&&&%%%%&&&%%%%%&%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+%%&&&&'''%%&&&&''%%%%&&&'%%%%%&&&%%%%%%%&%%%%%%%%%%%%%%%%%%%%%%%%''QQQQQ'''QQQ'''))QQ&'))))Q&&)))))&&&)))))%&&&))))%%&&&)))QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ'QQQQ)))QQQ))))QQ)))))Q)))))&Q))))&&''))&&&''''&&&%'''&&&%%))&&&%%%)&&&%%%%&&&%%%%%&&%%%%%%&%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& && %%
+
+
+
+
+%%%
+
+
+
+
+%%
+
+
+
+
+
+&
+
+
+
+
+
+
+&
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+%%%%%%%%
+
+%%%%%%
+
+
+%%%%%
+
+
+
+%%%%
+
+
+
+
+%%%
+
+
+
+
+
+
+%
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+%%%&&&))%%%%&&&)%%%%%&&&%%%%%%&&%%%%%%%&%%%%%%%%%%%%%%%%
+%%%%%%%QQQQQQ'QQQQQ''QQQQ'''QQQQ'''QQQ''''QQ''''&QQ''''&Q''''&&'''&&%%%''&&%%%%'&&&%%%%&&&%%%%%&&%%%%%%&&%%%%%%&%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% &&&&&&&&&&&               && && && && && &  
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+%%%%%%
+
+
+%%%%%
+
+
+%%%%%
+
+
+
+%%%%
+
+
+
+
+%%%
+
+
+
+
+
+%%
+
+
+
+
+
+
+%
+
+
+
+
+
+
+%QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ'QQQQQQ'QQQQQQ'Q'''&&&''''&&%'''&&&%''''&&%%'''&&%%%'''&&%%%''&&&%%%''&&%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&                          
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+%%
+%%%% &%% &&&&QQQQQ''QQQQQ''QQQQ'''QQQQ'''QQQQ'''QQQ''''QQQ'''&QQQ'''&'&&&%%%%'&&%%%%%'&&%%%%%&&%%%%%%&&%%%%%%&&%%%%%%&%%%%%%%&%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&                           && &&& &&& &&&&&&&&QQQ'''&QQ'''&&QQ'''&&QQ'''&&QQ'''&&Q'''&&&Q'''&&%Q'''&&%&%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%        Q'''&&%Q'''&&%Q'''&&%''''&&%)))&&%%)))&&%%)))&&%%)))&&%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%        )))&&%%)))&&%%)))&&%%)))&&%%)))&&%%)))&&%%)))&&%%)))&&%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&%%%%&&&&&&&&&&&&&&&&&&&&      &&&&&&&&&&&&&&&&XXXXXXXXXXXXXXXXXXXXXXXX)))&&%%)))&&%%)))&&%%)))&&%%''''&&%Q'''&&%Q'''&&%Q'''&&%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%      X X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXQ'''&&%Q'''&&%Q'''&&&QQ'''&&QQ'''&&QQ'''&&QQ'''&&QQQ'''&%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&%%%%%%%     X XX XX XX XXX XXX XXXX XXXXQQQ'''&QQQ'''&QQQ''''QQQQ'''QQQQ'''QQQQ'''QQQQQ''QQQQQ''&%%%%%%%&%%%%%%%&&%%%%%%&&%%%%%%&&%%%%%%'&&%%%%%'&&%%%%%'&&&%%%%%%%%%%%%%%%%%%&&&&&&&&}&&&}}&&&}}}}}&&}}}}}}}}}}}}}}          } }            ] ] XXXXX XXXXX&XXXXX]&&&XXX]]&&&XX]]]]]&&&]]]]]]&&]]]]]]]]XXXXXXXXXXXXXXXXXXXXXXXWXXXXXXXUXXXXXXWUXXXXXXUU&XXXXWUU&&&XXUUUQQQQQQ'QQQQQQ'QQQQQQ'QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ''&&%%%%''&&&%%%'''&&%%%'''&&%%%''''&&%%'''&&&%''''&&%Q'''&&&%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%z%%%%%%%z%%%%%%%%&&&&}%%&}}}%%%%z}}}%%zzzz}}zzzzzz|}zzzzzzz}zzzzzzzzzzzzzzzz}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}         }}}           ]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]] ]&&&&UUU]]]&%%UU]]]Z%%%%]]ZZZZ%%]\ZZZZZZ]ZZZZZZZZZZZZZZZZZZZZZZZQ''''&&QQ''''&QQ''''&QQQ''''QQQQ'''QQQQ'''QQQQQ''QQQQQQ'%%%%%%%%&%%%%%%%&&%%%%%%&&%%%%%%&&&%%%%%'&&&%%%%''&&%%%%'''&&%%%%zzzzzzz%zzzzzzz%%zzzzzz%%%zzzzz%%%%zzzz%%%%%zzz%%%%%zzz%%%%%%zzz|}}}}}}zz}}}}}}zzz}}}}}zzzz}}}}zzzzz}}}zzzzzz}}zzzzzzz|zzzzzzzz}}}}}}}}}& }}}}}&& }}}}&&xx}}}}&&xx}}}&&xxx}}&&xxxx}}&&xxxx   x xxx xxxxxx xxxxxxxxxxxxxxxx   x xxxxxx     hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh]]]]&]]]]]&&]]]]]hh&&]]]]hh&&]]]]hhh&&]]]hhhh&&]]hhhh&&]]]]]]]]\Z]]]]]]ZZ]]]]]ZZZ]]]]ZZZZ]]]ZZZZZ]]ZZZZZZ\ZZZZZZZZZZZZZZZZZZZZZZ%ZZZZZZZ%ZZZZZZ%%ZZZZZ%%%ZZZZ%%%%ZZZ%%%%%ZZZ%%%%%ZZ%%%%%%QQQQQQ'QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ'''&&&%%''''&&&%''))&&&Q))))&&Q)))))&QQ)))))QQQ))))QQQQ)))%%%%%%%z%%%%%%%%%%%%%%%%&%%%%%%%&&%%%%%%&&&%%%%%)&&&%%%%))&&&%%%zzzzzzzzzzzzzzzz%zzzzzzz%%%zzzzz%%%%zzzz%%%%%zzz%%%%%%zz%%%%%%%%zz}}}}}}zzz}}}}}zzzz|}}}zzzzzz}&zzzzzzz&zzzzzz%%zzzzz%%%zzzzz%%u}&&xxxxx}&&xxxxx&&xxxxxx&xxxxxxx&xxxxxxxuwxxxxxxuuuwxxxxuuuuuwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&&hhhxxx&&hhhxxx&&hhhxxx&&hhhxxx&&hhhxxx&&hhhxxx&&hhhxxx&&hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh&&]hhhhh&&]hhhhhh&&hhhhhhh&hhhhhhh&hhhhhhgehhhhgeeehhgeeeee]]]]]]ZZ]]]]]ZZZ]]]\ZZZZ&]ZZZZZZ&ZZZZZZZ%%ZZZZZZ%%%ZZZZZe%%ZZZZZZZZZZZZZZZZZZZZZZZZZZZZ%ZZZZZ%%%ZZZZ%%%%ZZZ%%%%%ZZ%%%%%%%%%%%%%%Z%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&%%%%%%&&%%%%%&&&%%%%&&&)%%%&&&))QQQQQ))QQQQQQ)QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ)))&&&%%))))&&&%)))))&&&)))))&&Q))))'&QQ))'''QQQ'''QQQQQ''%%%%%%%%%%%%%%%%%%%%%%%%&%%%%%%%&&&%%%%%'&&&%%%%''&&&&%%'''&&&&%%zzz%%%u%%%%%%uu%%%%%uuu%%%%%%uu%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%uuuuuuuwuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu%%uuuuuu%%%%%uuu%%%%%%%uxxxxxxxxuuwxxxxxuuuuuuwxuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuxxxxxxxxxxxxxxxxxxxxxxxxuuuwxxxxuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuxxx&&hhhxxx&&hhhxxx&&hhhxxx&&hhhuuu%%eeeuuu%%eeeuuu%%eeeuuu%%eeehhhhhhhhhhhhhhhhhhhhhhhhhhhhgeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeehhhhhhhhhhhhhgeehgeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeegeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee%%eee%%%%%e%%%%%%%e%%%ZZZ%ee%%%%%%eee%%%%%ee%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&%%%%%&&&%%%%&&&'%%&&&&''%&&&&'''%%&&&)))%&&&))))&&&)))))&&)))))&'))))Q'''))QQ'''QQQ''QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ'''''&&&''''''&Q'''''QQ''''QQQQ''QQQQQ'QQQQQQQQQQQQQQQ&%%%%%%%&&&%%%%%&&&&%%%%''&&&&&%''''&&&&''''''&&'''''''Q'''''%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&%%%%%%%&&&%%%%%&&&&&&%%'''&&&&&%%uuuuuu%%%%%%uu%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&%%%%%%%uuuuuuuuuuuuuuuu%%%%uuuu%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%uuu%%eeeuuu%%eeeuuu%%eee%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%eeeeeeeeeeeeeeeeeeee%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%eeeeee%%ee%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&%%%%%&&&%%&&&&&&&&&&&'''%%%%%%%&%%%%%&&&%%%%&&&&%&&&&&''&&&&''''&&''''''''''''''''''Q&&&'''''&'''''''''''Q''''QQ''QQQQ'QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ'''QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ''''''&&''''''''''''''QQ'''QQQQQQQQQQQQQQQQQQQQQQQQQQQQQ&&&&&&%%'&&&&&&&'''''&&&'''''''''''''''Q'''QQQQQQQQQQQQQ%%%%%%%%&&&&%%%%&&&&&&&&''''&&&&''''))))''''))))'))))QQQ%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&))))))))))))))))))))))))%%%%%%%%%%%%&&&&&&&&&&&&&&&&''''))))''''))))''''))))'QQQ%%&&&&&&&&&&&&&'&&&'''''''''''''''''''''''QQQQQQQQQQQQQQ&&'''''''''''''''''''''''QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ'''QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ)QQQQQQ))QQQQQ)))QQQQ))))QQQ)))))QQ&)))))Q&&))))Q&&&))''%&&&''''%%&&&'''QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ'QQQQQQ%%%&&'''%%%%&&''%%%%&&&'%%%%%&&&%%%%%%&&%%%%%%&&%%%%%%%&%%%%%%%%'QQQQQQ''QQQQQ'''QQQQ'''QQQQ''''QQQ&''''QQ&''''QQ&&''''Q%%%%%%%%
+%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&'''Q%&&''''%&&&'''%%&&''''%%%&&'''%%%&&'''%%%&&&''%%%%&&''QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ'QQQQQQ'QQQQQQ'QQQQQQ%%%%%%%%%%%%%%%%%%&&&'%%%%%&&'%%%%%&&'%%%%%%&&%%%%%%&&%%%%%%&&%%%%%%%&%%%%%%%&''QQQQQ''QQQQQ'''QQQQ'''QQQQ'''QQQQ''''QQQ&'''QQQ&'''QQQ%%%%%%%&%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&'''QQQ&&'''QQ&&'''QQ&&'''QQ&&'''QQ&&&'''Q%&&'''Q%&&'''Q%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&'''Q%&&'''Q%&&'''Q%&&''''%%&&)))%%&&)))%%&&)))%%&&)))&&&&%%%%&&&&%%%%XXXXUUUUXXXXUUUUXXXXUUUU%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%UUU%%%%%UUU%%%%%UUU%%%%%%%&&)))%%&&)))%%&&)))%%&&)))%%&&)))%%&&)))%%&&)))%%&&)))XXXXUUUUXXXXUUUUXXXXUUUUXXXWUUUUXXXUUUUUXXXUUUUUXXXUUUUUXXXUUUUUUUU%%%%%UUU%%%%%UUU%%%%%UUU%%%%%UU%%%%%%UU%%%%%%UU%%%%%%UU%%%%%%%%&&)))%%&&)))%%&&)))%%&&)))%&&''''%&&'''Q%&&'''Q%&&'''QXXXUUUUUXXWUUUUUXXUUUUUUXXUUUUUUXXUUUUUUXWUUUUUUXUUUUUUUWUUUUUUUUU%%%%%%UU%%%%%%U%%%%%%%U%%%%%%%U%%%%%%%U%%%%%%%%%%%%%%%%%%%%%%&%&&'''Q%&&'''Q&&&'''Q&&'''QQ&&'''QQ&&'''QQ&&'''QQ&'''QQQUUUUUUUUUUUUUUU%UUUUUUU%UUUUUU%%UUUUUU%%UUUUUU%%UUUUU%%%UUUUU%%%%%%%%%%&%%%%%%%&%%%%%%&&%%%%%%&&%%%%%%&&%%%%%&&'%%%%%&&'%%%%&&&'&'''QQQ&'''QQQ''''QQQ'''QQQQ'''QQQQ'''QQQQ''QQQQQ''QQQQQUUUU%%%%UUUU%%%%UUU%%%%%%%U%%%%%%%%%%%%%Z%%%%%%%Z%%%%%%%%%%%%%%%%%%%&&''%%%&&&''%%%&&'''%%%&&'''%%&&''''%&&&'''%&&''''&&&'''Q'QQQQQQ'QQQQQQ'QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ%%%%%%%%%%%%%%%&%%%%%%&&%%%%%%&&%%%%%&&&%%%%&&&'%%%%&&''%%%&&'''&&''''Q&''''QQ&''''QQ''''QQQ'''QQQQ'''QQQQ''QQQQQ'QQQQQQ%%&&&'''%&&&''''&&&))''&&))))Q&)))))Q)))))QQ))))QQQ)))QQQQ'QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ))QQQQQ)QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ
diff --git a/graphics/unknown/unknown_E86258.bin b/graphics/unknown/unknown_E86258.bin
new file mode 100644
index 000000000..d7deb1fbd
--- /dev/null
+++ b/graphics/unknown/unknown_E86258.bin
Binary files differ
diff --git a/graphics/unknown/unknown_E8CAC0.bin b/graphics/unknown/unknown_E8CAC0.bin
new file mode 100644
index 000000000..452e72026
--- /dev/null
+++ b/graphics/unknown/unknown_E8CAC0.bin
Binary files differ
diff --git a/graphics/unknown/unknown_E8CFC0.bin b/graphics/unknown/unknown_E8CFC0.bin
new file mode 100644
index 000000000..0892a9a05
--- /dev/null
+++ b/graphics/unknown/unknown_E8CFC0.bin
Binary files differ
diff --git a/graphics/unknown/unknown_E8D4C0.bin b/graphics/unknown/unknown_E8D4C0.bin
new file mode 100644
index 000000000..500150057
--- /dev/null
+++ b/graphics/unknown/unknown_E8D4C0.bin
Binary files differ
diff --git a/graphics/unknown/unknown_E8D9C0.bin b/graphics/unknown/unknown_E8D9C0.bin
new file mode 100644
index 000000000..b4090f540
--- /dev/null
+++ b/graphics/unknown/unknown_E8D9C0.bin
Binary files differ
diff --git a/graphics/unknown/unknown_E94510.bin b/graphics/unknown/unknown_E94510.bin
new file mode 100644
index 000000000..b3bbc8f64
--- /dev/null
+++ b/graphics/unknown/unknown_E94510.bin
Binary files differ
diff --git a/graphics/unknown/unknown_E94550.bin b/graphics/unknown/unknown_E94550.bin
new file mode 100644
index 000000000..ba6830b73
--- /dev/null
+++ b/graphics/unknown/unknown_E94550.bin
Binary files differ
diff --git a/graphics/unknown/unknown_E94AD0.bin b/graphics/unknown/unknown_E94AD0.bin
new file mode 100644
index 000000000..03d799eeb
--- /dev/null
+++ b/graphics/unknown/unknown_E94AD0.bin
Binary files differ
diff --git a/graphics/unknown/unknown_E953D0.bin b/graphics/unknown/unknown_E953D0.bin
new file mode 100755
index 000000000..1c4ec2567
--- /dev/null
+++ b/graphics/unknown/unknown_E953D0.bin
Binary files differ
diff --git a/graphics/unknown/unknown_E95AB8.bin b/graphics/unknown/unknown_E95AB8.bin
new file mode 100644
index 000000000..c7cb8674c
--- /dev/null
+++ b/graphics/unknown/unknown_E95AB8.bin
Binary files differ
diff --git a/graphics/unknown/unknown_E966B8.pal b/graphics/unknown/unknown_E966B8.pal
new file mode 100755
index 000000000..c4fbe6b86
--- /dev/null
+++ b/graphics/unknown/unknown_E966B8.pal
@@ -0,0 +1,19 @@
+JASC-PAL
+0100
+16
+0 0 164
+255 255 255
+0 0 0
+222 213 222
+0 0 0
+180 189 180
+238 230 238
+123 123 123
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+255 0 0
diff --git a/graphics/unknown/unknown_E96738.bin b/graphics/unknown/unknown_E96738.bin
new file mode 100755
index 000000000..154db8924
--- /dev/null
+++ b/graphics/unknown/unknown_E96738.bin
Binary files differ
diff --git a/graphics/unknown/unknown_E96D2C.bin b/graphics/unknown/unknown_E96D2C.bin
new file mode 100755
index 000000000..83bf29bec
--- /dev/null
+++ b/graphics/unknown/unknown_E96D2C.bin
Binary files differ
diff --git a/graphics/unknown/unknown_E96EC8.bin b/graphics/unknown/unknown_E96EC8.bin
new file mode 100644
index 000000000..eaaed586e
--- /dev/null
+++ b/graphics/unknown/unknown_E96EC8.bin
Binary files differ
diff --git a/graphics/unknown/unknown_E997E8.pal b/graphics/unknown/unknown_E997E8.pal
new file mode 100755
index 000000000..34ce0e2a5
--- /dev/null
+++ b/graphics/unknown/unknown_E997E8.pal
@@ -0,0 +1,19 @@
+JASC-PAL
+0100
+16
+156 205 98
+156 205 98
+156 205 98
+156 205 98
+156 205 98
+156 205 98
+156 205 98
+156 205 98
+156 205 98
+156 205 98
+156 205 98
+156 205 98
+156 205 98
+156 205 98
+156 205 98
+156 205 98
diff --git a/graphics/unknown/unknown_E99FB0.bin b/graphics/unknown/unknown_E99FB0.bin
new file mode 100755
index 000000000..4ad21c463
--- /dev/null
+++ b/graphics/unknown/unknown_E99FB0.bin
Binary files differ
diff --git a/graphics/unknown/unknown_E9A300.bin b/graphics/unknown/unknown_E9A300.bin
new file mode 100644
index 000000000..61867a5ab
--- /dev/null
+++ b/graphics/unknown/unknown_E9A300.bin
Binary files differ
diff --git a/graphics/unknown/unknown_E9AB00.bin b/graphics/unknown/unknown_E9AB00.bin
new file mode 100644
index 000000000..3f5c8469b
--- /dev/null
+++ b/graphics/unknown/unknown_E9AB00.bin
@@ -0,0 +1 @@
+/"" \ No newline at end of file
diff --git a/graphics/unknown/unknown_E9AB40.pal b/graphics/unknown/unknown_E9AB40.pal
new file mode 100755
index 000000000..086bdf503
--- /dev/null
+++ b/graphics/unknown/unknown_E9AB40.pal
@@ -0,0 +1,19 @@
+JASC-PAL
+0100
+16
+0 0 0
+98 98 98
+0 197 255
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+222 213 222
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+255 255 255
diff --git a/graphics/unknown/unknown_E9AB60.bin b/graphics/unknown/unknown_E9AB60.bin
new file mode 100755
index 000000000..713dadb65
--- /dev/null
+++ b/graphics/unknown/unknown_E9AB60.bin
Binary files differ
diff --git a/graphics/unknown/unknown_E9ABB4.bin b/graphics/unknown/unknown_E9ABB4.bin
new file mode 100644
index 000000000..f09bb8ab3
--- /dev/null
+++ b/graphics/unknown/unknown_E9ABB4.bin
@@ -0,0 +1 @@
+222222222222222222222222222222222222222222222222222222222222 \ No newline at end of file
diff --git a/graphics/unknown/unknown_E9AC2C.bin b/graphics/unknown/unknown_E9AC2C.bin
new file mode 100644
index 000000000..25f423a9d
--- /dev/null
+++ b/graphics/unknown/unknown_E9AC2C.bin
@@ -0,0 +1 @@
+222222222222222 \ No newline at end of file
diff --git a/graphics/unknown/unknown_E9C6DC.bin b/graphics/unknown/unknown_E9C6DC.bin
new file mode 100755
index 000000000..a9d1e28fb
--- /dev/null
+++ b/graphics/unknown/unknown_E9C6DC.bin
Binary files differ
diff --git a/graphics/unknown/unknown_E9F7E4.bin b/graphics/unknown/unknown_E9F7E4.bin
new file mode 100755
index 000000000..0e6b7e775
--- /dev/null
+++ b/graphics/unknown/unknown_E9F7E4.bin
Binary files differ
diff --git a/graphics/unknown/unknown_E9F988.pal b/graphics/unknown/unknown_E9F988.pal
new file mode 100755
index 000000000..17cd7b267
--- /dev/null
+++ b/graphics/unknown/unknown_E9F988.pal
@@ -0,0 +1,19 @@
+JASC-PAL
+0100
+16
+0 123 0
+8 255 0
+49 65 74
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
diff --git a/graphics/unknown/unknown_E9F9E8.pal b/graphics/unknown/unknown_E9F9E8.pal
new file mode 100755
index 000000000..6a3616159
--- /dev/null
+++ b/graphics/unknown/unknown_E9F9E8.pal
@@ -0,0 +1,19 @@
+JASC-PAL
+0100
+16
+0 0 0
+49 65 74
+106 115 123
+255 255 255
+205 123 123
+255 180 164
+255 222 205
+180 131 156
+189 139 156
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+255 255 255
+255 139 0
diff --git a/graphics/unknown/unknown_E9FBA0.bin b/graphics/unknown/unknown_E9FBA0.bin
new file mode 100755
index 000000000..74a7dc73a
--- /dev/null
+++ b/graphics/unknown/unknown_E9FBA0.bin
Binary files differ
diff --git a/graphics/unknown/unknown_E9FC64.bin b/graphics/unknown/unknown_E9FC64.bin
new file mode 100755
index 000000000..0864924dc
--- /dev/null
+++ b/graphics/unknown/unknown_E9FC64.bin
Binary files differ
diff --git a/graphics/unknown/unknown_E9FD1C.bin b/graphics/unknown/unknown_E9FD1C.bin
new file mode 100644
index 000000000..c14435a4c
--- /dev/null
+++ b/graphics/unknown/unknown_E9FD1C.bin
@@ -0,0 +1,2 @@
+0 0 0 0 0 0 0 0
+0 00000000 0 00000000 0000000000 \ No newline at end of file
diff --git a/graphics/unknown/unknown_E9FD64.bin b/graphics/unknown/unknown_E9FD64.bin
new file mode 100644
index 000000000..f58e4479b
--- /dev/null
+++ b/graphics/unknown/unknown_E9FD64.bin
@@ -0,0 +1 @@
+ 0 0 0 0 0 0 0 0 0 0 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 \ No newline at end of file
diff --git a/graphics/unknown/unknown_E9FE54.bin b/graphics/unknown/unknown_E9FE54.bin
new file mode 100644
index 000000000..15420a729
--- /dev/null
+++ b/graphics/unknown/unknown_E9FE54.bin
@@ -0,0 +1 @@
+ 0 0 0 0 0 0 0 0 0 0 00000000000000000000000000000000000000 \ No newline at end of file
diff --git a/graphics/unknown/unknown_E9FEB4.bin b/graphics/unknown/unknown_E9FEB4.bin
new file mode 100755
index 000000000..75581f46e
--- /dev/null
+++ b/graphics/unknown/unknown_E9FEB4.bin
Binary files differ
diff --git a/graphics/unknown/unknown_E9FF58.bin b/graphics/unknown/unknown_E9FF58.bin
new file mode 100755
index 000000000..d9dc0b3b8
--- /dev/null
+++ b/graphics/unknown/unknown_E9FF58.bin
Binary files differ
diff --git a/include/asm.h b/include/asm.h
new file mode 100644
index 000000000..ec0516497
--- /dev/null
+++ b/include/asm.h
@@ -0,0 +1,36 @@
+#ifndef PROJECT_ASM_H
+#define PROJECT_ASM_H
+
+#include "task.h"
+#include "main.h"
+#include "sprite.h"
+#include "asm_fieldmap.h"
+
+struct UnkInputStruct
+{
+ u8 input_field_0;
+ u8 input_field_1;
+ u8 input_field_2;
+ u8 input_field_3;
+};
+
+struct UnknownStruct_FPA
+{
+ u8 unk0;
+ u8 unk1;
+ u8 unk2;
+ s16 unk4;
+ s16 unk6;
+ u8 unk8;
+ u8 unk9;
+ u8 unkA_0:4;
+ u8 unkA_4:4;
+ u16 unkC;
+ u16 unkE;
+ u32 unk10;
+ u16 unk14;
+};
+
+#include "asm.inc.h"
+
+#endif //PROJECT_ASM_H
diff --git a/include/asm.inc.h b/include/asm.inc.h
new file mode 100644
index 000000000..3e7c5fa99
--- /dev/null
+++ b/include/asm.inc.h
@@ -0,0 +1,494 @@
+// asm/rom3.o
+void sub_800C35C(void);
+
+// asm/rom_800D42C.o
+void sub_800E7C4(void);
+u8 b_first_side(u8, u8, u8);
+void sub_80157C4(u8 index);
+u8 sub_8015A98(u8, u8, u8);
+u8 sub_8018324(u8, u8, u8, u8, u16);
+void sub_8032AA8(u8 index, int i);
+
+// src/pokemon_3.o
+u16 SpeciesToNationalPokedexNum(u16);
+
+// asm/pokemon_3.o
+void DrawSpindaSpots(u16, u32, void *, u8);
+u8 sub_803FC58(u16);
+void AdjustFriendship(struct Pokemon *, u8);
+void sub_80408BC();
+void current_map_music_set__default_for_battle(u16);
+
+// asm/util.o
+void StoreWordInTwoHalfwords(u16 *, u32);
+void LoadWordFromTwoHalfwords(u16 *, u32 *);
+
+// asm/daycare.o
+u8 daycare_count_pokemon(u8 *);
+void sub_8041324(struct BoxPokemon *, void *);
+void sub_8041790(int i);
+u16 sub_8041870(u16);
+void sub_8041940(void);
+void sub_8041950(void);
+u8 daycare_relationship_score_from_savegame(void);
+
+// asm/pokeball.o
+void CreatePokeballSprite(u8 r0, u8 r1, u8 r2, u8 r3, u8 s1, u8 s2, u8 s3, u16 s4);
+
+// asm/berry_blender.o
+void sub_80516C4(u8, u16);
+
+// src/field_door.o
+void FieldSetDoorOpened(u32, u32);
+void FieldSetDoorClosed(u32, u32);
+s8 FieldAnimateDoorClose(u32, u32);
+s8 FieldAnimateDoorOpen(u32, u32);
+bool8 FieldIsDoorAnimationRunning(void);
+u32 sub_8058790(u32 x, u32 y);
+
+// asm/field_map_obj.o
+void sub_805AA98();
+u8 sub_805AB54(void);
+u8 GetFieldObjectIdByLocalIdAndMap(u8, u8, u8);
+bool8 TryGetFieldObjectIdByLocalIdAndMap(u8, u8, u8, u8 *);
+u8 GetFieldObjectIdByXY(s16, s16);
+void RemoveFieldObjectByLocalIdAndMap(u8, u8, u8);
+u8 SpawnSpecialFieldObject(struct UnknownStruct_FPA *);
+u8 show_sprite(u8, u8, u8);
+u8 AddPseudoFieldObject(u8 val, void (*player)(struct Sprite *), int i, int i1, int i2);
+u8 sub_805B410(u8, u8, s16, s16, u8, u8);
+void sub_805B55C(int i, int i1);
+void sub_805B710(int i, int i1);
+void sub_805B980(struct MapObject *, u8);
+void FieldObjectTurn(struct MapObject *, u8);
+void FieldObjectTurnByLocalIdAndMap(u8, u8, u8, u8);
+struct MapObjectGraphicsInfo *GetFieldObjectGraphicsInfo(u8);
+void npc_by_local_id_and_map_set_field_1_bit_x20(u8, u8, u8, u8);
+void FieldObjectGetLocalIdAndMap(struct MapObject *, u8 *, u8 *, u8 *);
+void sub_805BCF0(u8, u8, u8, u8);
+void sub_805BD48(u8, u8, u8);
+void sub_805BD90(u8 localId, u8 mapNum, u8 mapGroup, s16 x, s16 y);
+void gpu_pal_allocator_reset__manage_upper_four(void);
+void npc_coords_shift(struct MapObject *pObject, s16 x, s16 y);
+void sub_805C0F8(u8, u8, u8, s16, s16);
+void npc_coords_shift_still(struct MapObject *pObject);
+u8 GetFieldObjectIdByXYZ(u16, u16, int);
+void UpdateFieldObjectsForCameraUpdate(s16, s16);
+u8 AddCameraObject(u8);
+u8 * GetFieldObjectScriptPointerByFieldObjectId(u8);
+u8 FieldObjectGetBerryTreeId(u8);
+void sub_805C754(struct MapObject *pObject);
+void sub_805C774(struct MapObject *, u8 );
+void sub_805C78C(u8, u8, u8);
+void sub_805C7C4(int i);
+u8 FieldObjectDirectionToImageAnimId(u8);
+u8 get_go_image_anim_num(u8 unk_19);
+u8 sub_805FD98(u8);
+u8 sub_805FDE8(u8);
+u8 sub_805FDF8(u8);
+u8 sub_805FE08(u8);
+void npc_set_running_behaviour_etc(struct MapObject *, u8);
+u8 npc_running_behaviour_by_direction(u8);
+u8 npc_block_way(struct MapObject *, s16, s16, u8);
+u8 sub_8060024(struct MapObject *, s16, s16, u8);
+u8 sub_8060234(u8, u8, u8);
+void sub_8060288(u8, u8, u8);
+void sub_80603CC(s16 x, s16 y, s16 *pInt, s16 *pInt1);
+void FieldObjectMoveDestCoords(struct MapObject *pObject, u8 unk_19, s16 *pInt, s16 *pInt1);
+bool8 FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive(struct MapObject *);
+void FieldObjectSetSpecialAnim(struct MapObject *, u8);
+void FieldObjectForceSetSpecialAnim(struct MapObject *pObject, u8 a);
+void FieldObjectClearAnimIfSpecialAnimActive(struct MapObject *);
+void FieldObjectClearAnim(struct MapObject *);
+bool8 FieldObjectCheckIfSpecialAnimFinishedOrInactive(struct MapObject *);
+u8 FieldObjectClearAnimIfSpecialAnimFinished(struct MapObject *);
+u8 FieldObjectGetSpecialAnim(struct MapObject *);
+u8 GetFaceDirectionAnimId(u8);
+u8 GetSimpleGoAnimId(u8);
+u8 GetGoSpeed0AnimId(u8 a);
+u8 sub_8060744(u8 a);
+u8 d2s_08064034(u8 a);
+u8 sub_806079C(u8 a);
+u8 sub_80607F4(u8 a);
+u8 GetJumpLedgeAnimId(u8 a);
+u8 sub_806084C(u8);
+u8 sub_8060878(u8);
+u8 sub_80608D0(u8);
+u8 GetStepInPlaceDelay32AnimId(u8 a);
+u8 GetStepInPlaceDelay16AnimId(u8);
+u8 GetStepInPlaceDelay8AnimId(u8 a);
+u8 FieldObjectFaceOppositeDirection(void *, u8);
+u8 sub_80609D8(u8);
+u8 sub_8060A04(u8);
+u8 sub_8060A30(u8);
+u8 sub_8060A5C(u8);
+u8 sub_8060A88(u8);
+u8 sub_8060AB4(u8);
+u8 sub_8060AE0(u8);
+u8 sub_8060B0C(u8);
+u8 sub_8060B38(u8);
+u8 sub_8060B64(u8);
+u8 GetOppositeDirection(u8);
+
+// asm/field_ground_effect.o
+u8 GetLedgeJumpDirection(s16, s16, u8);
+u8 ZCoordToPriority(u8);
+void FieldObjectUpdateZCoord(struct MapObject *pObject);
+void SetObjectSubpriorityByZCoord(u8, struct Sprite *, u8);
+
+// src/field_map_obj_helpers.o
+bool8 FreezeMapObject(struct MapObject *);
+void FreezeMapObjects(void);
+void FreezeMapObjectsExceptOne(u8);
+void UnfreezeMapObjects(void);
+void sub_806487C(struct Sprite *sprite, bool8 invisible);
+void sub_8064990(u8, u8);
+
+// asm/field_control_avatar.o
+void sub_8067EEC(struct UnkInputStruct *pStruct);
+void process_overworld_input(struct UnkInputStruct *pStruct, u16 keys, u16 heldKeys);
+int sub_8068024(struct UnkInputStruct *pStruct);
+u8 *sub_80682A8(void *, u8, u8);
+void overworld_poison_timer_set(void);
+void prev_quest_postbuffer_cursor_backup_reset(void);
+u8 *sub_8068E24(struct UnkStruct_8054FF8_Substruct *);
+u8 *GetFieldObjectScriptPointerForComparison();
+
+// asm/field_tasks.o
+void SetUpFieldTasks();
+void ActivatePerStepCallback(u8);
+void ResetFieldTasksArgs(void);
+
+// asm/clock.o
+void DoTimeBasedEvents(void);
+
+// asm/reset_rtc_screen.o
+void CB2_InitResetRtcScreen(void);
+
+// asm/party_menu.o
+void GetMonNickname(struct Pokemon *mon, u8 *nickname);
+bool8 pokemon_has_move(struct Pokemon *, u16);
+
+// asm/rom_8077ABC.o
+u8 battle_side_get_owner(u8);
+u8 battle_get_per_side_status(u8);
+u8 battle_get_side_with_given_state(u8);
+bool8 IsDoubleBattle();
+
+// asm/weather.o
+void SetWeather(u32);
+
+// asm/rom_8080874.o
+void pal_fill_black();
+void sub_8080990(void);
+void sub_80809B0(void);
+void sub_8080A3C(void);
+void sub_8080AC4(void);
+void mapldr_default();
+void sub_8080B60(void);
+void atk17_seteffectuser(void);
+void sub_8080E44(void);
+void sub_8080E88(void);
+void sp13E_warp_to_last_warp(void);
+void sub_8080EF0(void);
+void sp13F_fall_to_last_warp(void);
+void sub_8080F68(void);
+void sub_8081594(u8);
+void sub_80815E0(u8 val);
+
+// asm/cable_club.o
+u8 sub_8083664(void);
+void sub_8083A84(TaskFunc);
+s32 sub_8083BF4(u8 id);
+
+// src/fldeff_emotion.o
+void sub_8084894(struct Sprite *sprite, u16 a2, u8 a3);
+void objc_exclamation_mark_probably(struct Sprite *sprite);
+
+// asm/rom_80859BC.o
+u8 CreateTrainerSprite_BirchSpeech(u8, u16, u16, u8, void *);
+void LoadTrainerGfx_TrainerCard(u8 gender, int, void *);
+u8 CreateBirchSprite(u8, u8, u8);
+
+// asm/unknown_task.o
+void remove_some_task(void);
+void dp12_8087EA4(void);
+void sub_80895F8(u32 i, u32 i1, u32 i2);
+void sub_8089668(void);
+void sub_8089944(int i, int i1, int i2, int i3, int i4, int i5, int i6);
+
+// asm/pokemon_menu.o
+void sub_8089A70(void);
+void sub_808AB90(void);
+
+// asm/pokemon_storage_system.o
+void sub_80961D8(void);
+
+// asm/pokemon_icon.o
+u8 sub_809D3A4(u16 arg0, void (*)(struct Sprite *), int, u8 arg3, u32 arg4);
+u16 sub_809D4A8(u16);
+void sub_809D510(struct Sprite *);
+void sub_809D580(u16);
+void sub_809D608(u16);
+
+// asm/pokemon_summary_screen.o
+u8 pokemon_ailments_get_primary(u32);
+
+// asm/script_movement.o
+u8 exec_movement(u8, u8, u8, void *);
+bool8 sub_80A212C(u8, u8, u8);
+void sub_80A2178(void);
+
+// asm/mail_data.o
+void sub_80A2B18(void);
+u16 sub_80A2D64(u16, u8 *);
+
+// asm/map_name_popup.o
+void AddMapNamePopUpWindowTask(void);
+void HideMapNamePopUpWindow();
+
+// asm/item_menu.o
+void sub_80A3684(void);
+void sub_80A3714(void);
+void sub_80A53F8(void);
+void sub_80A5B40(void);
+void sub_80A68CC();
+u8 sub_80A7D8C(u8 berry, int i, int i1);
+void sub_80A7DD4(void);
+u8 sub_80A7E5C(u8);
+
+// src/matsuda_debug_menu.o
+void sub_80AA280(u8);
+void sub_80AA5E8(u8);
+void sub_80AA658(u8);
+
+// asm/contest.o
+void sub_80AB1B0(void);
+void sub_80AE098(u8);
+void sub_80AE398(u8, u8);
+u32 sub_80AE770(u8, u8);
+void sub_80AE82C(u8);
+void sub_80AF668(void);
+void sub_80B0F28(u8);
+void sub_80B2D1C(void);
+
+// asm/shop.o
+void CreatePokemartMenu(void *);
+void CreateDecorationShop1Menu(void *);
+void CreateDecorationShop2Menu(void *);
+
+// src/script_menu.o
+bool8 sub_80B5054(u8, u8, u8, u8);
+bool8 sub_80B50B0(u8, u8, u8, u8, u8);
+bool8 Multichoice(u8, u8, u8, u8);
+bool8 yes_no_box(u8, u8);
+bool8 sub_80B5578(u8, u8, u8, u8, u8);
+bool8 sub_80B58C4(u16, u8, u8);
+void *picbox_close(void);
+
+// asm/naming_screen.o
+void DoNamingScreen(u8 r0, struct SaveBlock2 *r1, u16 r2, u16 r3, u8 s0, MainCallback s4);
+
+// asm/secret_base.o
+void sub_80BB5B4(void);
+u8 sub_80BBB24(void);
+void sub_80BBCCC(u8);
+u8 *sub_80BCCE8(void);
+void sub_80BD674(void *, u32, u8);
+
+// asm/tv.o
+void sub_80BD7A8(void);
+void UpdateTVScreensOnMap(u32, u32);
+void sub_80BDAB4(void);
+u8 sub_80BDEAC(u8 *);
+void sub_80BE160(TVShow *);
+void sub_80BE8EC(u16);
+void UpdateMassOutbreakTimeLeft(u16);
+void sub_80BE97C(u8);
+void sub_80BEA50(u16);
+void sub_80BEA5C(u16);
+bool8 GetPriceReduction(u8);
+void sub_80BEE84(u16);
+u8 sub_80BF0B8(u32);
+void sub_80BF478(void);
+u16 sub_80BF674(u16 species);
+s8 sub_80BF720(TVShow *);
+u8 sub_80BF77C(u32);
+void sub_80BFD44(void *, u32, u8);
+void sub_80C0514(void *, u32, u8);
+
+// src/tv.o
+void StartMassOutbreak(void);
+void TVShowDone(void);
+
+// asm/contest_link_80C2020.o
+void sub_80C2358(void);
+void sub_80C48C8(void);
+void sub_80C4940(void);
+void sub_80C4980(u8);
+u8 sub_80C4B34(u8 *);
+
+// asm/script_pokemon_util_80C4BF0.o
+u8 sub_80C4D50(void);
+void ShowContestWinner(void);
+void HealPlayerParty();
+u8 ScriptGiveMon(u16, u8, u16, u32, u32, u8);
+u8 ScriptGiveEgg(u16);
+void ScriptWildBattle(u16, u8, u16);
+void ScriptSetMonMoveSlot(u8, u16, u8);
+
+// asm/fldeff_80C5CD4.o
+void DoFieldPoisonEffect(void);
+bool32 FieldPoisonEffectIsRunning(void);
+void CreateRecordMixingSprite(void);
+void DestroyRecordMixingSprite(void);
+
+// asm/rotating_gate.o
+void RotatingGatePuzzleCameraUpdate(s16, s16);
+void sub_80C8080();
+u32 CheckForRotatingGatePuzzleCollision(u8, s16, s16);
+
+// asm/contest_link_80C857C.o
+void sub_80C8734(u8);
+void sub_80C88AC(u8);
+void sub_80C8E1C(u8);
+void sub_80C8EBC(u8);
+void sub_80C8F34(u8);
+
+// asm/bike.o
+void MovePlayerOnBike(u8, u16, u16);
+void sub_80E5B38(u16 i, u16 c);
+u8 sub_80E5DEC(u8);
+bool8 player_should_look_direction_be_enforced_upon_movement(void);
+void sub_80E5FCC(int i, int i1);
+void sub_80E6010(int i);
+s16 sub_80E6034(void);
+void sub_80E6084();
+
+// asm/easy_chat.o
+void sub_80E6764(void);
+void sub_80EB3FC(u8 *, u16);
+u8 ConvertEasyChatWordsToString(u8 *dst, u16 *words, u16, u16);
+u16 sub_80EB72C(u16);
+
+// asm/pokenav.o
+void sub_80EBA5C(void);
+
+// asm/mauville_old_man.o
+void sub_80F7AA4(void);
+void sub_80F7F30(void);
+
+// asm/menu_helpers.o
+bool8 sub_80F9344(void);
+void sub_80F9368(void);
+void sub_80F9438(void);
+
+// asm/script_pokemon_util_80F99CC.o
+void sub_80F99CC(void);
+
+// src/dewford_trend.o
+void sub_80FA17C(void);
+void sub_80FA46C(struct EasyChatPair *, u16, u8);
+void sub_80FA4E4(struct EasyChatPair *, u32, u8);
+bool8 sub_80FA670(struct EasyChatPair *, struct EasyChatPair *, u8);
+void sub_80FA740(struct EasyChatPair *);
+bool8 SB1ContainsWords(u16 *);
+bool8 IsEasyChatPairEqual(u16 *, u16 *);
+
+// asm/region_map.o
+void sub_80FBFB4(u8 *str, u8 region, u8);
+void CopyMapName();
+u8 *CopyLocationName(u8 *dest, u8 location);
+
+// asm/slot_machine.o
+void PlaySlotMachine(u8, void *);
+
+// asm/contest_painting.o
+void sub_8106630(u32);
+
+// asm/rom6.o
+bool8 npc_before_player_of_type(u8);
+u8 oei_task_add(void);
+
+// asm/pokeblock.o
+void sub_810C994(void);
+void sub_810CA6C(s32);
+s16 sub_810CAE4(u8, struct Pokeblock *);
+
+// asm/rom_810CBB4.o
+void sub_810CC80(void);
+u8 sub_810D32C(void);
+void ResetCyclingRoadChallengeData(void);
+void ScriptAddElevatorMenuItem(u8, u8, u8, u8);
+void ScriptShowElevatorMenu(void);
+u8 GetLeadMonIndex(void);
+void sub_810FA54(void);
+
+// asm/battle_records.o
+void InitLinkBattleRecords(void);
+
+// asm/battle_transition.o
+void sub_811AABC(u8);
+void sub_811AAD8(u8);
+u8 sub_811AAE8(void);
+
+// src/mystery_event_script.o
+u32 sub_812613C(u8 *);
+void sub_8126160(u8);
+
+// asm/mystery_event_script.o
+u16 sub_8126338(void);
+
+// asm/field_effect_helpers.o
+u8 sub_8126B54(void);
+void objid_set_invisible(u8);
+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);
+
+// asm/rom_81258BC.o
+void sub_8132670(void);
+void sub_8133F80(void);
+u8 sub_8133FE4(u8);
+u8 IsThereStorageSpaceForDecoration(u8);
+u8 sub_8134074(u8);
+s8 sub_81340A8(u8);
+void sub_81341F8(void);
+void sub_813420C(void);
+void mapnumbers_history_shift_sav1_0_2_4_out(void);
+void sub_8134348(void);
+void sub_8134394();
+u8 sub_81344CC(void);
+void sub_8134AC0(void *);
+
+// src/player_pc.o
+void NewGameInitPCItems(void);
+
+// src/intro.o
+void sub_813CE30(u16, u16, u16, u16);
+
+// asm/braille_puzzles.o
+bool8 ShouldDoBrailleStrengthEffect(void);
+void DoBrailleStrengthEffect(void);
+
+// asm/intro_credits_graphics.o
+void load_intro_part2_graphics(/*TODO: arg types*/);
+void sub_8148C78(/*TODO: arg types*/);
+u8 sub_8148EC0(/*TODO: arg types*/);
+void sub_8149020(/*TODO: arg types*/);
+u8 intro_create_brendan_sprite(/*TODO: arg types*/);
+u8 intro_create_may_sprite(/*TODO: arg types*/);
+u8 intro_create_latios_sprite(/*TODO: arg types*/);
+u8 intro_create_latias_sprite(/*TODO: arg types*/);
+
+// asm/name_string_util.o
+void SanitizeNameString(u8*);
+
+// src/agb_flash.o
+u16 ReadFlashId(void);
+u16 SetFlashTimerIntr(u8 timerNum, void (**intrFunc)(void));
+void ReadFlash(u16 sectorNum, u32 offset, u8 *dest, u32 size);
+u32 ProgramFlashSectorAndVerify();
+u32 ProgramFlashSectorAndVerifyNBytes(u16 sectorNum, u8 *src, u32 n);
+u16 IdentifyFlash(void);
diff --git a/include/asm_fieldmap.h b/include/asm_fieldmap.h
new file mode 100644
index 000000000..10d8c8f6d
--- /dev/null
+++ b/include/asm_fieldmap.h
@@ -0,0 +1,23 @@
+#ifndef GUARD_FIELDMAP_H
+#define GUARD_FIELDMAP_H
+
+void not_trainer_hill_battle_pyramid(void);
+void sub_8055FC0(void);
+u8 MapGridGetZCoordAt();
+bool8 MapGridIsImpassableAt(s16, s16);
+int MapGridGetMetatileIdAt(int, int);
+u32 MapGridGetMetatileBehaviorAt(int x, int y); // return: (u8|u16|int) args: (int|s16|s32)
+u8 MapGridGetMetatileLayerTypeAt(/*TODO: arg types*/);
+void MapGridSetMetatileIdAt(u32, u32, u16);
+void save_serialize_map(void);
+int CameraMove(int, int);
+void sub_8056C50(u16, u16);
+void sav1_camera_get_focus_coords(s16 *x, s16 *y);
+void GetCameraCoords(s16*, s16*);
+void sub_8056D28(struct MapData *pData);
+void sub_8056D38(struct MapData *pData);
+void apply_map_tileset2_palette(struct MapData *pData);
+void copy_map_tileset1_tileset2_to_vram(/*TODO: arg types*/);
+void apply_map_tileset1_tileset2_palette(/*TODO: arg types*/);
+
+#endif // GUARD_FIELDMAP_H
diff --git a/include/battle.h b/include/battle.h
index 06daeb081..d58b234e3 100644
--- a/include/battle.h
+++ b/include/battle.h
@@ -1,6 +1,22 @@
#ifndef GUARD_BATTLE_H
#define GUARD_BATTLE_H
+#define BATTLE_TYPE_DOUBLE 0x0001
+#define BATTLE_TYPE_LINK 0x0002
+#define BATTLE_TYPE_WILD 0x0004
+#define BATTLE_TYPE_TRAINER 0x0008
+#define BATTLE_TYPE_FIRST_BATTLE 0x0010
+#define BATTLE_TYPE_20 0x0020
+#define BATTLE_TYPE_40 0x0040
+#define BATTLE_TYPE_SAFARI 0x0080
+#define BATTLE_TYPE_BATTLE_TOWER 0x0100
+#define BATTLE_TYPE_WALLY_TUTORIAL 0x0200
+#define BATTLE_TYPE_ROAMER 0x0400
+#define BATTLE_TYPE_EREADER_TRAINER 0x0800
+#define BATTLE_TYPE_KYOGRE_GROUDON 0x1000
+#define BATTLE_TYPE_LEGENDARY 0x2000
+#define BATTLE_TYPE_REGI 0x4000
+
struct Trainer
{
/*0x00*/ u8 partyFlags;
@@ -16,4 +32,39 @@ struct Trainer
/*0x24*/ void *party;
};
+struct AI_ThinkingStruct /* 0x2016800 */
+{
+/* 0x00 */ u8 unk0;
+/* 0x01 */ u8 moveConsidered;
+/* 0x02 */ u16 unk2;
+/* 0x04 */ s8 score[4]; // score?
+/* 0x08 */ u32 unk8;
+/* 0x0C */ u32 aiFlags;
+/* 0x10 */ u8 unk10;
+/* 0x11 */ u8 aiLogicId;
+/* 0x12 */ u8 filler12[6];
+/* 0x18 */ u8 unk18[4];
+};
+
+struct SmallBattleStruct1
+{
+ u8 unk1;
+ u8 unk2;
+ u8 unk3;
+ u8 unk4;
+};
+
+struct BattleStruct /* 0x2000000 */
+{
+ u8 filler0[0x1601C];
+ struct SmallBattleStruct1 unk;
+ u8 filler1[0xAB]; // 0x2016020
+ /* 0x160CB */ u8 linkPlayerIndex;
+ u8 filler2[0x734];
+ struct AI_ThinkingStruct ai;
+};
+
+extern struct BattleStruct battle_2000000;
+extern struct AI_ThinkingStruct gAIThinkingSpace;
+
#endif // GUARD_BATTLE_H
diff --git a/include/battle_setup.h b/include/battle_setup.h
new file mode 100644
index 000000000..6271a3cc5
--- /dev/null
+++ b/include/battle_setup.h
@@ -0,0 +1,84 @@
+#ifndef GUARD_BATTLE_SETUP_H
+#define GUARD_BATTLE_SETUP_H
+
+// task01_battle_start
+// task_add_01_battle_start
+void CheckForSafariZoneAndProceed(void);
+void StartBattle_StandardWild(void);
+void StartBattle_Roamer(void);
+void StartBattle_Safari(void);
+// task_add_01_battle_start_with_music_and_stats
+// StartBattle_WallyTutorial
+void StartBattle_ScriptedWild(void);
+// StartBattle_SouthernIsland
+// StartBattle_Rayquaza
+// StartBattle_GroudonKyogre
+// StartBattle_Regi
+void HandleWildBattleEnd(void);
+void HandleScriptedWildBattleEnd(void);
+// GetBattleTerrain
+// GetBattleTransitionTypeByMap
+// GetSumOfPartyMonLevel
+// GetSumOfEnemyPartyLevel
+u8 GetWildBattleTransition(void);
+u8 GetTrainerBattleTransition(void);
+// GetBattleTowerBattleTransition
+// ChooseStarter
+void CB2_GiveStarter(void);
+void CB2_StartFirstBattle(void);
+void HandleFirstBattleEnd(void);
+// TrainerBattleLoadArg32
+// TrainerBattleLoadArg16
+// TrainerBattleLoadArg8
+// trainerflag_opponent
+bool32 battle_exit_is_player_defeat(u32 a1);
+// sub_80822BC
+// TrainerBattleLoadArgs
+// battle_80801F0
+u8 *TrainerBattleConfigure(u8 *data);
+void TrainerWantsBattle(u8, u8 *);
+bool32 GetTrainerFlagFromScriptPointer(u8 *data);
+// sub_8082524
+// sub_8082558
+// sub_8082564
+// sub_808257C
+// unref_sub_8082590
+u8 trainer_flag_check(u16);
+void trainer_flag_set(u16);
+void trainer_flag_clear(u16);
+void sub_80825E4(void);
+void sub_808260C(void);
+// do_choose_name_or_words_screen
+// sub_80826B0
+// sub_80826D8
+u8 *sub_80826E8(void);
+u8 *sub_8082700(void);
+// sub_8082718
+// PlayTrainerEncounterMusic
+// SanitizeString
+u8 *sub_808281C(void);
+// sub_8082830
+// unref_sub_808286C
+u8 *sub_8082880(void);
+// sub_8082894
+// sub_80828B8
+// sub_80828FC
+// sub_80829A8
+// sub_80829E8
+// sub_8082A18
+// sub_8082A54
+// sub_8082A90
+// sub_8082AE4
+// sub_8082B10
+// sub_8082B44
+// sub_8082B78
+// sub_8082BA4
+void sub_8082BD0(u16, u16);
+// sub_8082C0C
+// unref_sub_8082C2C
+u16 sub_8082C4C(u16 a1);
+// sub_8082C68
+// sub_8082C9C
+void sub_8082CB8(void);
+
+#endif // GUARD_BATTLE_SETUP_H
diff --git a/include/berry.h b/include/berry.h
index a80e77512..152f92e38 100644
--- a/include/berry.h
+++ b/include/berry.h
@@ -1,57 +1,38 @@
#ifndef GUARD_BERRY_H
#define GUARD_BERRY_H
-struct Berry
-{
- u8 name[7];
- u8 firmness;
- u16 size;
- u8 maxYield;
- u8 minYield;
- u8 *description1;
- u8 *description2;
- u8 stageDuration;
- u8 spicy;
- u8 dry;
- u8 sweet;
- u8 bitter;
- u8 sour;
- u8 smoothness;
-};
-
-struct EnigmaBerry
-{
- struct Berry berry;
- u8 pic[(6 * 6) * TILE_SIZE_4BPP];
- u16 palette[16];
- u8 description1[45];
- u8 description2[45];
- u8 itemEffect[18];
- u8 holdEffect;
- u8 holdEffectParam;
- u32 checksum;
-};
-
-struct BattleEnigmaBerry
-{
- u8 name[7];
- u8 holdEffect;
- u8 itemEffect[18];
- u8 holdEffectParam;
-};
-
-struct BerryTree
-{
- u8 berry;
- u8 stage:7;
- u8 growthSparkle:1;
- u16 secondsUntilNextStage;
- u8 berryYield;
- u8 regrowthCount:4;
- u8 watered1:1;
- u8 watered2:1;
- u8 watered3:1;
- u8 watered4:1;
-};
+void ClearEnigmaBerries(void);
+void SetEnigmaBerry(u8 *src);
+u32 GetEnigmaBerryChecksum(struct EnigmaBerry *enigmaBerry);
+bool32 IsEnigmaBerryValid(void);
+struct Berry *GetBerryInfo(u8 berry);
+struct BerryTree *GetBerryTreeInfo(u8 id);
+bool32 FieldObjectInteractionWaterBerryTree(void);
+bool32 IsPlayerFacingPlantedBerryTree(void);
+u8 TryToWaterBerryTree(void);
+void ClearBerryTrees(void);
+bool32 BerryTreeGrow(struct BerryTree *tree);
+void BerryTreeTimeUpdate(int time);
+void PlantBerryTree(u8 id, u8 berry, u8 stage, bool8 sparkle);
+void RemoveBerryTree(u8 id);
+u8 GetBerryTypeByBerryTreeId(u8 id);
+u8 GetStageByBerryTreeId(u8);
+u8 ItemIdToBerryType(u16 item);
+u16 BerryTypeToItemId(u16 berry);
+void GetBerryNameByBerryType(u8 berry, u8 *string);
+void ResetBerryTreeSparkleFlag(u8 id);
+u8 BerryTreeGetNumStagesWatered(struct BerryTree *tree);
+u8 GetNumStagesWateredByBerryTreeId(u8 id);
+u8 CalcBerryYieldInternal(u16 max, u16 min, u8 water);
+u8 CalcBerryYield(struct BerryTree *tree);
+u8 GetBerryCountByBerryTreeId(u8 id);
+u16 GetStageDurationByBerryType(u8);
+void FieldObjectInteractionGetBerryTreeData(void);
+void sub_80B4EE4(void);
+void FieldObjectInteractionPlantBerryTree(void);
+void FieldObjectInteractionPickBerryTree(void);
+void FieldObjectInteractionRemoveBerryTree(void);
+u8 PlayerHasBerries(void);
+void ResetBerryTreeSparkleFlags(void);
#endif // GUARD_BERRY_H
diff --git a/include/berry_tag_screen.h b/include/berry_tag_screen.h
new file mode 100644
index 000000000..60932ff80
--- /dev/null
+++ b/include/berry_tag_screen.h
@@ -0,0 +1,6 @@
+#ifndef GUARD_BERRY_TAG_SCREEN_H
+#define GUARD_BERRY_TAG_SCREEN_H
+
+void BerryTagScreen_814625C(u8 taskId);
+
+#endif // GUARD_BERRY_TAG_SCREEN_H
diff --git a/include/blend_palette.h b/include/blend_palette.h
new file mode 100644
index 000000000..a00847bc3
--- /dev/null
+++ b/include/blend_palette.h
@@ -0,0 +1,6 @@
+#ifndef GUARD_BLEND_PALETTE_H
+#define GUARD_BLEND_PALETTE_H
+
+void BlendPalette(u16 palOffset, u16 numEntries, u8 coeff, u16 blendColor);
+
+#endif // GUARD_BLEND_PALETTE_H
diff --git a/include/coins.h b/include/coins.h
new file mode 100644
index 000000000..d066c2422
--- /dev/null
+++ b/include/coins.h
@@ -0,0 +1,12 @@
+#ifndef GUARD_COINS_H
+#define GUARD_COINS_H
+
+void UpdateCoinsWindow(s32 a, u8 b, u8 c);
+void ShowCoinsWindow(u32 a, u8 b, u8 c);
+void HideCoinsWindow(u8 a, u8 b);
+void PrintCoins(s32 a, u8 b, u8 c, u8 d);
+u16 GetCoins(void);
+bool8 GiveCoins(u16 coins);
+bool8 TakeCoins(u16 coins);
+
+#endif // GUARD_COINS_H
diff --git a/include/config.h b/include/config.h
new file mode 100644
index 000000000..5ee062006
--- /dev/null
+++ b/include/config.h
@@ -0,0 +1,25 @@
+#ifndef GUARD_CONFIG_H
+#define GUARD_CONFIG_H
+
+#ifndef REVISION
+#define REVISION 0
+#endif
+
+#if REVISION == 2
+#define BUGFIX_BERRY
+#endif
+
+#if REVISION >= 1
+#define BUGFIX_GLYPHWIDTH
+#define BUGFIX_SAVEFAILEDSCREEN1
+#endif
+
+// #define BUGFIX_SAVEFAILEDSCREEN2
+
+// European editions of Ruby/Sapphire and all editions of Emerald have this fix.
+// #define BUGFIX_TRAINERAPPROACH
+
+// Fixed in Emerald.
+// #define BUGFIX_SETMONIVS
+
+#endif // GUARD_CONFIG_H
diff --git a/include/decompress.h b/include/decompress.h
new file mode 100644
index 000000000..28570afdd
--- /dev/null
+++ b/include/decompress.h
@@ -0,0 +1,17 @@
+#ifndef GUARD_DECOMPRESS_H
+#define GUARD_DECOMPRESS_H
+
+#include "sprite.h"
+
+void sub_800D238(const void *src, void *dest);
+void LZDecompressVram(const void *src, void *dest);
+void LoadCompressedObjectPic(const struct SpriteSheet *a);
+void LoadCompressedObjectPicOverrideBuffer(const struct SpriteSheet *a, void *buffer);
+void LoadCompressedObjectPalette(const struct SpritePalette *a);
+void LoadCompressedObjectPaletteOverrideBuffer(const struct SpritePalette *a, void *buffer);
+void DecompressPicFromTable_2(const struct SpriteSheet *a, u8 b, u8 c, void *d, void *e, s32 f);
+void HandleLoadSpecialPokePic(const struct SpriteSheet *spriteSheet, u32 b, u32 c, u32 d, void *dest, s32 species, u32 g);
+void LoadSpecialPokePic(const struct SpriteSheet *spriteSheet, u32 b, u32 c, u32 d, void *dest, s32 species, u32 g, u32 h);
+void Unused_LZDecompressWramIndirect(const void **src, void *dest);
+
+#endif // GUARD_DECOMPRESS_H
diff --git a/include/event_data.h b/include/event_data.h
new file mode 100644
index 000000000..5cac27cc8
--- /dev/null
+++ b/include/event_data.h
@@ -0,0 +1,28 @@
+#ifndef GUARD_EVENT_DATA_H
+#define GUARD_EVENT_DATA_H
+
+#include "flags.h"
+#include "vars.h"
+
+void InitEventData(void);
+void ClearTempFieldEventData(void);
+void ClearUpperFlags(void);
+void DisableNationalPokedex(void);
+void EnableNationalPokedex(void);
+bool32 IsNationalPokedexEnabled(void);
+void DisableMysteryGift(void);
+void EnableMysteryGift(void);
+bool32 IsMysteryGiftEnabled(void);
+void DisableResetRTC(void);
+void EnableResetRTC(void);
+bool32 CanResetRTC(void);
+u16 *GetVarPointer(u16 id);
+u16 VarGet(u16 id);
+bool8 VarSet(u16 id, u16 value);
+u8 VarGetFieldObjectGraphicsId(u8 id);
+u8 *GetFlagPointer(u16 id);
+u8 FlagSet(u16 id);
+u8 FlagReset(u16 id);
+bool8 FlagGet(u16 id);
+
+#endif // GUARD_EVENT_DATA_H
diff --git a/include/field_camera.h b/include/field_camera.h
new file mode 100644
index 000000000..51c370d0a
--- /dev/null
+++ b/include/field_camera.h
@@ -0,0 +1,18 @@
+#ifndef GUARD_FIELD_CAMERA_H
+#define GUARD_FIELD_CAMERA_H
+
+void move_tilemap_camera_to_upper_left_corner(void);
+void sub_8057A58(void);
+void sub_8057B14(u16 *a, u16 *b);
+void DrawWholeMapView(void);
+void CurrentMapDrawMetatileAt(int a, int b);
+void DrawDoorMetatileAt(int x, int y, u16 *arr);
+void ResetCameraUpdateInfo(void);
+u32 InitCameraUpdateCallback(u8 a);
+void CameraUpdate(void);
+void SetCameraPanningCallback(void (*a)(void));
+void SetCameraPanning(s16 a, s16 b);
+void InstallCameraPanAheadCallback(void);
+void UpdateCameraPanning(void);
+
+#endif // GUARD_FIELD_CAMERA_H
diff --git a/include/field_effect.h b/include/field_effect.h
new file mode 100644
index 000000000..a46c048cb
--- /dev/null
+++ b/include/field_effect.h
@@ -0,0 +1,29 @@
+#ifndef GUARD_FIELD_EFFECT_H
+#define GUARD_FIELD_EFFECT_H
+
+#include "sprite.h"
+
+u32 FieldEffectStart(u8 id);
+bool8 FieldEffectCmd_loadtiles(u8 **script, u32 *val);
+bool8 FieldEffectCmd_loadfadedpal(u8 **script, u32 *val);
+bool8 FieldEffectCmd_loadpal(u8 **script, u32 *val);
+bool8 FieldEffectCmd_callnative(u8 **script, u32 *val);
+bool8 FieldEffectCmd_end(u8 **script, u32 *val);
+bool8 FieldEffectCmd_loadgfx_callnative(u8 **script, u32 *val);
+bool8 FieldEffectCmd_loadtiles_callnative(u8 **script, u32 *val);
+bool8 FieldEffectCmd_loadfadedpal_callnative(u8 **script, u32 *val);
+u32 FieldEffectScript_ReadWord(u8 **script);
+void FieldEffectScript_LoadTiles(u8 **script);
+void FieldEffectScript_LoadFadedPalette(u8 **script);
+void FieldEffectScript_LoadPalette(u8 **script);
+void FieldEffectScript_CallNative(u8 **script, u32 *val);
+void FieldEffectFreeGraphicsResources(struct Sprite *sprite);
+void FieldEffectStop(struct Sprite *sprite, u8 id);
+void FieldEffectFreeTilesIfUnused(u16 tileStart);
+void FieldEffectFreePaletteIfUnused(u8 paletteNum);
+void FieldEffectActiveListClear(void);
+void FieldEffectActiveListAdd(u8 id);
+void FieldEffectActiveListRemove(u8 id);
+bool8 FieldEffectActiveListContains(u8 id);
+
+#endif // GUARD_FIELD_EFFECT_H
diff --git a/include/field_map_obj.h b/include/field_map_obj.h
new file mode 100644
index 000000000..c31b0fc2a
--- /dev/null
+++ b/include/field_map_obj.h
@@ -0,0 +1,11 @@
+#ifndef GUARD_FIELD_MAP_OBJ_H
+#define GUARD_FIELD_MAP_OBJ_H
+
+#include "sprite.h"
+
+void sub_805C058(struct MapObject *mapObject, s16 a, s16 b);
+void FieldObjectSetDirection(struct MapObject *pObject, u8 unk_18);
+void MoveCoords(u8 direction, s16 *x, s16 *y);
+void meta_step(struct MapObject *pObject, struct Sprite *pSprite, u32 (*d8)(void));
+
+#endif // GUARD_FIELD_MAP_OBJ_H
diff --git a/include/field_message_box.h b/include/field_message_box.h
index 072a9fd66..50d96ccd1 100644
--- a/include/field_message_box.h
+++ b/include/field_message_box.h
@@ -12,8 +12,11 @@ enum
void InitFieldMessageBox(void);
bool8 ShowFieldMessage(u8 *message);
bool8 ShowFieldAutoScrollMessage(u8 *message);
+bool8 unref_sub_8064BB8(u8 *message);
+bool8 unref_sub_8064BD0(u8 *message);
void HideFieldMessageBox(void);
u8 GetFieldMessageBoxMode(void);
bool8 IsFieldMessageBoxHidden(void);
+void unref_sub_8064CA0(void);
#endif // GUARD_FIELD_MESSAGE_BOX_H
diff --git a/include/field_player_avatar.h b/include/field_player_avatar.h
new file mode 100644
index 000000000..0095c229f
--- /dev/null
+++ b/include/field_player_avatar.h
@@ -0,0 +1,112 @@
+#ifndef GUARD_FIELD_PLAYER_AVATAR_H
+#define GUARD_FIELD_PLAYER_AVATAR_H
+
+// sub_80587B4
+void player_step(u8 a, u16 b, u16 c);
+// ForcedMovement_None
+// ForcedMovement_Slip
+// sub_8058AAC
+// sub_8058AC4
+// sub_8058ADC
+// sub_8058AF4
+// sub_8058B0C
+// sub_8058B24
+// sub_8058B3C
+// sub_8058B54
+// ForcedMovement_SlideSouth
+// ForcedMovement_SlideNorth
+// ForcedMovement_SlideWest
+// ForcedMovement_SlideEast
+// sub_8058C04
+// sub_8058C10
+// ForcedMovement_MuddySlope
+// PlayerNotOnBikeNotMoving
+// PlayerNotOnBikeTurningInPlace
+// sub_8058D0C
+u8 CheckForFieldObjectCollision(struct MapObject *a, s16 b, s16 c, u8 d, u8 e);
+void SetPlayerAvatarTransitionFlags(u16 a);
+// nullsub_49
+// PlayerAvatarTransition_Normal
+// PlayerAvatarTransition_MachBike
+// PlayerAvatarTransition_AcroBike
+// PlayerAvatarTransition_Surfing
+// PlayerAvatarTransition_Underwater
+// sub_80591F4
+void sub_8059204(void);
+// player_get_x22
+// player_npc_set_state_and_x22_etc
+void PlayerGoSpeed0(u8 a);
+void sub_80593C4(u8 a);
+void npc_use_some_d2s(u8 a);
+// sub_80593F4
+void sub_805940C(u8 a);
+// PlayerOnBikeCollide
+void PlayerFaceDirection(u8 a);
+void PlayerTurnInPlace(u8 a);
+void PlayerJumpLedge(u8 a);
+void sub_80594C0(void);
+// sub_8059504
+// sub_805951C
+// sub_8059534
+// sub_805954C
+// sub_8059570
+// sub_8059594
+// sub_80595B8
+// sub_80595DC
+// sub_8059600
+// sub_8059618
+// sub_8059630
+void GetXYCoordsOneStepInFrontOfPlayer(s16 *x, s16 *y);
+void PlayerGetDestCoords(s16 *, s16 *);
+u8 player_get_direction_lower_nybble(void);
+u8 player_get_direction_upper_nybble(void);
+// PlayerGetZCoord
+u8 TestPlayerAvatarFlags(u8);
+// sub_80597D0
+// GetPlayerAvatarObjectId
+void sub_80597E8(void);
+void sub_80597F4(void);
+u8 sub_805983C(u8 a, u8 b);
+u8 GetPlayerAvatarGraphicsIdByStateId(u8 a);
+// GetPlayerAvatarGenderByGraphicsId
+// PartyHasMonWithSurf
+// IsPlayerSurfingNorth
+bool8 IsPlayerFacingSurfableFishableWater(void);
+// ClearPlayerAvatarInfo
+void SetPlayerAvatarStateMask(u8 a);
+// GetPlayerAvatarGraphicsIdByCurrentState
+// SetPlayerAvatarExtraStateTransition
+void InitPlayerAvatar(s16 a, s16 b, u8 c, u8 d);
+// sub_8059B88
+// sub_8059BF4
+// sub_8059C3C
+// sub_8059C94
+// sub_8059D08
+// sub_8059E84
+// sub_8059EA4
+// sub_8059F40
+// sub_805A000
+// sub_805A0D8
+// sub_805A100
+// sub_805A178
+// sub_805A1B8
+void sub_805A20C(u8 a);
+void StartFishing(u8 a);
+// Fishing1
+// Fishing2
+// Fishing3
+// Fishing4
+// Fishing5
+// Fishing6
+// Fishing7
+// Fishing8
+// Fishing9
+// Fishing10
+// Fishing11
+// Fishing12
+// Fishing13
+// Fishing14
+// Fishing15
+// Fishing16
+
+#endif
diff --git a/include/flag.h b/include/flag.h
deleted file mode 100644
index 8f4c01b02..000000000
--- a/include/flag.h
+++ /dev/null
@@ -1,11 +0,0 @@
-#ifndef GUARD_FLAG_H
-#define GUARD_FLAG_H
-
-#include "flags.h"
-
-u8 *GetFlagPointer(u16 id);
-u8 FlagSet(u16 id);
-u8 FlagReset(u16 id);
-bool8 FlagGet(u16 id);
-
-#endif // GUARD_FLAG_H
diff --git a/include/flags.h b/include/flags.h
index e2b14b16b..0c0cebc5f 100644
--- a/include/flags.h
+++ b/include/flags.h
@@ -5,9 +5,12 @@
// SYSTEM FLAGS
-#define SYS_POKEMON_GET 0x800
-#define SYS_POKEDEX_GET 0x801
-#define SYS_POKENAV_GET 0x802
+#define SYS_POKEMON_GET 0x800
+#define SYS_POKEDEX_GET 0x801
+#define SYS_POKENAV_GET 0x802
+#define SYS_GAME_CLEAR 0x804
+#define SYS_CHAT_USED 0x805
+#define SYS_HIPSTER_MEET 0x806
// badges
#define BADGE01_GET 0x807
@@ -19,20 +22,38 @@
#define BADGE07_GET 0x80D
#define BADGE08_GET 0x80E
-#define SYS_USE_FLASH 0x828
-#define SYS_USE_STRENGTH 0x829
-#define SYS_WEATHER_CTRL 0x82A
-#define SYS_CYCLING_ROAD 0x82B
-#define SYS_SAFARI_MODE 0x82C
-#define SYS_CRUISE_MODE 0x82D
-
-#define SYS_POPWORD_INPUT 0x833
-#define SYS_MIX_RECORD 0x834
-
-#define SYS_RIBBON_GET 0x83B
-
-#define SYS_ENC_UP_ITEM 0x84D
-#define SYS_ENC_DOWN_ITEM 0x84E
+#define SYS_USE_FLASH 0x828
+#define SYS_USE_STRENGTH 0x829
+#define SYS_WEATHER_CTRL 0x82A
+#define SYS_CYCLING_ROAD 0x82B
+#define SYS_SAFARI_MODE 0x82C
+#define SYS_CRUISE_MODE 0x82D
+
+#define SYS_TV_HOME 0x830
+#define SYS_TV_WATCH 0x831
+#define SYS_TV_START 0x832
+#define SYS_POPWORD_INPUT 0x833
+#define SYS_MIX_RECORD 0x834
+#define SYS_CLOCK_SET 0x835
+#define SYS_NATIONAL_DEX 0x836
+#define SYS_CAVE_SHIP 0x837
+#define SYS_CAVE_WONDER 0x838
+#define SYS_CAVE_BATTLE 0x839
+#define SYS_SHOAL_TIDE 0x83A
+#define SYS_RIBBON_GET 0x83B
+
+#define SYS_PC_LANETTE 0x84B
+#define SYS_EXDATA_ENABLE 0x84C
+#define SYS_ENC_UP_ITEM 0x84D
+#define SYS_ENC_DOWN_ITEM 0x84E
+#define SYS_BRAILLE_DIG 0x84F
+#define SYS_BRAILLE_STRENGTH 0x850
+#define SYS_BRAILLE_WAIT 0x851
+#define SYS_BRAILLE_FLY 0x852
+
+#define SYS_B_DASH 0x860 // got Running Shoes
+#define SYS_CTRL_OBJ_DELETE 0x861
+#define SYS_RESET_RTC_ENABLE 0x862
// SPECIAL FLAGS (unknown purpose)
diff --git a/include/gba/m4a_internal.h b/include/gba/m4a_internal.h
index f5d44de99..572b77711 100644
--- a/include/gba/m4a_internal.h
+++ b/include/gba/m4a_internal.h
@@ -1,3 +1,6 @@
+#ifndef GUARD_M4A_INTERNAL_H
+#define GUARD_M4A_INTERNAL_H
+
#include "gba/gba.h"
// ASCII encoding of 'Smsh' in reverse
@@ -460,3 +463,5 @@ void ply_xleng(struct MusicPlayerInfo *, struct MusicPlayerTrack *);
void ply_xswee(struct MusicPlayerInfo *, struct MusicPlayerTrack *);
void ply_xcmd_0C(struct MusicPlayerInfo *, struct MusicPlayerTrack *);
void ply_xcmd_0D(struct MusicPlayerInfo *, struct MusicPlayerTrack *);
+
+#endif // GUARD_M4A_INTERNAL_H
diff --git a/include/gba/macro.h b/include/gba/macro.h
index 62d3e73fa..230fb4383 100644
--- a/include/gba/macro.h
+++ b/include/gba/macro.h
@@ -25,6 +25,8 @@
CPU_FAST_SET_SRC_FIXED | ((size)/(32/8) & 0x1FFFFF)); \
}
+#define CpuFastFill16(value, dest, size) CpuFastFill(((value) << 16) | (value), (dest), (size))
+
#define CpuFastCopy(src, dest, size) CpuFastSet(src, dest, ((size)/(32/8) & 0x1FFFFF))
#define DmaSet(dmaNum, src, dest, control) \
diff --git a/include/gba/syscall.h b/include/gba/syscall.h
index 9576f7e99..e47f964d1 100644
--- a/include/gba/syscall.h
+++ b/include/gba/syscall.h
@@ -31,6 +31,8 @@ void CpuSet(const void *src, void *dest, u32 control);
void CpuFastSet(const void *src, void *dest, u32 control);
+void BgAffineSet(struct BgAffineSrcData *src, struct BgAffineDstData *dest, s32 count);
+
void ObjAffineSet(struct ObjAffineSrcData *src, void *dest, s32 count, s32 offset);
void LZ77UnCompWram(const void *src, void *dest);
diff --git a/include/gba/types.h b/include/gba/types.h
index be7390d5a..fd8a20a4c 100644
--- a/include/gba/types.h
+++ b/include/gba/types.h
@@ -74,6 +74,27 @@ struct OamData
#define ST_OAM_H_RECTANGLE 1
#define ST_OAM_V_RECTANGLE 2
+struct BgAffineSrcData
+{
+ s32 texX;
+ s32 texY;
+ s16 scrX;
+ s16 scrY;
+ s16 sx;
+ s16 sy;
+ u16 alpha;
+};
+
+struct BgAffineDstData
+{
+ s16 pa;
+ s16 pb;
+ s16 pc;
+ s16 pd;
+ s32 dx;
+ s32 dy;
+};
+
struct ObjAffineSrcData
{
s16 xScale;
diff --git a/include/global.berry.h b/include/global.berry.h
new file mode 100644
index 000000000..8b98a5f58
--- /dev/null
+++ b/include/global.berry.h
@@ -0,0 +1,57 @@
+#ifndef GUARD_GLOBAL_BERRY_H
+#define GUARD_GLOBAL_BERRY_H
+
+struct Berry
+{
+ u8 name[7];
+ u8 firmness;
+ u16 size;
+ u8 maxYield;
+ u8 minYield;
+ u8 *description1;
+ u8 *description2;
+ u8 stageDuration;
+ u8 spicy;
+ u8 dry;
+ u8 sweet;
+ u8 bitter;
+ u8 sour;
+ u8 smoothness;
+};
+
+struct EnigmaBerry
+{
+ struct Berry berry;
+ u8 pic[(6 * 6) * TILE_SIZE_4BPP];
+ u16 palette[16];
+ u8 description1[45];
+ u8 description2[45];
+ u8 itemEffect[18];
+ u8 holdEffect;
+ u8 holdEffectParam;
+ u32 checksum;
+};
+
+struct BattleEnigmaBerry
+{
+ u8 name[7];
+ u8 holdEffect;
+ u8 itemEffect[18];
+ u8 holdEffectParam;
+};
+
+struct BerryTree
+{
+ u8 berry;
+ u8 stage:7;
+ u8 growthSparkle:1;
+ u16 secondsUntilNextStage;
+ u8 berryYield;
+ u8 regrowthCount:4;
+ u8 watered1:1;
+ u8 watered2:1;
+ u8 watered3:1;
+ u8 watered4:1;
+};
+
+#endif // GUARD_GLOBAL_BERRY_H
diff --git a/include/fieldmap.h b/include/global.fieldmap.h
index 9e841a3f3..95ccf2614 100644
--- a/include/fieldmap.h
+++ b/include/global.fieldmap.h
@@ -1,16 +1,45 @@
-#ifndef GUARD_FIELDMAP_H
-#define GUARD_FIELDMAP_H
+#ifndef GUARD_GLOBAL_FIELDMAP_H
+#define GUARD_GLOBAL_FIELDMAP_H
enum
{
- CONNECTION_DOWN = 1,
- CONNECTION_UP,
- CONNECTION_LEFT,
- CONNECTION_RIGHT,
+ CONNECTION_SOUTH = 1,
+ CONNECTION_NORTH,
+ CONNECTION_WEST,
+ CONNECTION_EAST,
CONNECTION_DIVE,
CONNECTION_EMERGE
};
+// map types
+enum
+{
+ MAP_TYPE_0,
+ MAP_TYPE_TOWN,
+ MAP_TYPE_CITY,
+ MAP_TYPE_ROUTE,
+ MAP_TYPE_UNDERGROUND,
+ MAP_TYPE_UNDERWATER,
+ MAP_TYPE_6,
+ MAP_TYPE_7,
+ MAP_TYPE_INDOOR,
+ MAP_TYPE_SECRET_BASE
+};
+
+// map battle scenes
+enum
+{
+ MAP_BATTLE_SCENE_NORMAL, // 0
+ MAP_BATTLE_SCENE_GYM, // 1
+ MAP_BATTLE_SCENE_MAGMA, // 2
+ MAP_BATTLE_SCENE_AQUA, // 3
+ MAP_BATTLE_SCENE_SIDNEY, // 4
+ MAP_BATTLE_SCENE_PHOEBE, // 5
+ MAP_BATTLE_SCENE_GLACIA, // 6
+ MAP_BATTLE_SCENE_DRAKE, // 7
+ MAP_BATTLE_SCENE_BATTLE_TOWER, // 8
+};
+
typedef void (*TilesetCB)(void);
struct Tileset
@@ -28,8 +57,8 @@ struct MapData
{
s32 width;
s32 height;
- void *border;
- void *map;
+ u16 *border;
+ u16 *map;
struct Tileset *primaryTileset;
struct Tileset *secondaryTileset;
};
@@ -58,7 +87,8 @@ struct WarpEvent
struct CoordEvent
{
s16 x, y;
- u8 filler_4[0x2];
+ u8 filler_4;
+ u8 filler_5;
u16 trigger;
u16 index;
u8 filler_A[0x2];
@@ -91,8 +121,8 @@ struct MapConnection
{
u8 direction;
u32 offset;
- s8 mapGroup;
- s8 mapNum;
+ u8 mapGroup;
+ u8 mapNum;
};
struct MapConnections
@@ -112,7 +142,7 @@ struct MapHeader
u8 name;
u8 cave;
u8 weather;
- /* 0x17 */ u8 light;
+ /* 0x17 */ u8 mapType;
u8 filler_18;
u8 escapeRope;
u8 flags;
@@ -172,10 +202,11 @@ struct MapObject
/*0x1B*/ u8 mapobj_unk_1B;
/*0x1C*/ u8 mapobj_unk_1C;
/*0x1D*/ u8 trainerRange_berryTreeId;
- /*0x1E */ u8 mapobj_unk_1E;
+ /*0x1E*/ u8 mapobj_unk_1E;
/*0x1F*/ u8 mapobj_unk_1F;
/*0x20*/ u8 mapobj_unk_20;
/*0x21*/ u8 mapobj_unk_21;
+ /*0x22*/ u8 mapobj_unk_22;
/*size = 0x24*/
};
@@ -234,7 +265,7 @@ struct MapObject2
/*0x1B*/ u8 mapobj_unk_1B;
/*0x1C*/ u8 mapobj_unk_1C;
/*0x1D*/ u8 trainerRange_berryTreeId;
- /*0x1E */ u8 mapobj_unk_1E;
+ /*0x1E*/ u8 mapobj_unk_1E;
/*0x1F*/ u8 mapobj_unk_1F;
/*0x20*/ u8 mapobj_unk_20;
/*0x21*/ u8 mapobj_unk_21;
@@ -261,14 +292,25 @@ struct MapObjectGraphicsInfo
union AffineAnimCmd **affineAnims;
};
+#define PLAYER_AVATAR_FLAG_ON_FOOT (1 << 0)
+#define PLAYER_AVATAR_FLAG_MACH_BIKE (1 << 1)
+#define PLAYER_AVATAR_FLAG_ACRO_BIKE (1 << 2)
+#define PLAYER_AVATAR_FLAG_SURFING (1 << 3)
+#define PLAYER_AVATAR_FLAG_4 (1 << 4)
+#define PLAYER_AVATAR_FLAG_5 (1 << 5)
+#define PLAYER_AVATAR_FLAG_6 (1 << 6)
+#define PLAYER_AVATAR_FLAG_DASH (1 << 7)
+
struct PlayerAvatar
{
- /* 0x00 */ u8 bitfield;
- /* 0x01 */ u8 bike;
- /* 0x02 */ u8 running2;
- /* 0x03 */ u8 running1;
- /* 0x04 */ u8 spriteId;
- /* 0x05 */ u8 mapObjectId;
+ /*0x00*/ u8 flags;
+ /*0x01*/ u8 bike;
+ /*0x02*/ u8 running2;
+ /*0x03*/ u8 running1;
+ /*0x04*/ u8 spriteId;
+ /*0x05*/ u8 mapObjectId;
+ /*0x06*/ u8 unk6;
+ /*0x07*/ u8 gender;
// TODO: rest of struct
};
@@ -277,4 +319,4 @@ extern u8 gSelectedMapObject;
extern struct MapHeader gMapHeader;
extern struct PlayerAvatar gPlayerAvatar;
-#endif // GUARD_FIELDMAP_H
+#endif // GUARD_GLOBAL_FIELDMAP_H
diff --git a/include/global.h b/include/global.h
index b1bfa25ad..a5932d175 100644
--- a/include/global.h
+++ b/include/global.h
@@ -2,10 +2,7 @@
#define GUARD_GLOBAL_H
#include "gba/gba.h"
-
-#ifndef REVISION
-#define REVISION 0
-#endif
+#include "config.h"
// Prevent cross-jump optimization.
#define BLOCK_CROSS_JUMP asm("");
@@ -27,8 +24,17 @@ enum
{
VERSION_SAPPHIRE = 1,
VERSION_RUBY = 2,
+ VERSION_EMERALD = 3,
+};
+
+enum LanguageId {
+ LANGUAGE_JAPANESE = 1,
+ LANGUAGE_ENGLISH = 2,
+ LANGUAGE_GERMAN = 5,
};
+#define GAME_LANGUAGE (LANGUAGE_ENGLISH)
+
enum
{
MALE,
@@ -61,6 +67,15 @@ enum
OPTIONS_BATTLE_STYLE_SET
};
+enum
+{
+ BAG_ITEMS = 1,
+ BAG_POKEBALLS,
+ BAG_TMsHMs,
+ BAG_BERRIES,
+ BAG_KEYITEMS
+};
+
struct Coords16
{
s16 x;
@@ -95,8 +110,8 @@ struct SecretBaseRecord
};
#include "game_stat.h"
-#include "fieldmap.h"
-#include "berry.h"
+#include "global.fieldmap.h"
+#include "global.berry.h"
#include "pokemon.h"
struct WarpData
@@ -169,6 +184,93 @@ struct EasyChatPair
u16 words[2];
}; /*size = 0x8*/
+struct TVShowCommon {
+ /*0x00*/ u8 var00;
+ /*0x01*/ u8 var01;
+};
+
+struct TVShowFanClubLetter {
+ /*0x00*/ u8 var00;
+ /*0x01*/ u8 var01;
+ /*0x02*/ u16 species;
+ u8 pad04[12];
+ /*0x10*/ u8 playerName[8];
+ /*0x18*/ u8 var18;
+};
+
+struct TVShowRecentHappenings {
+ /*0x00*/ u8 var00;
+ /*0x01*/ u8 var01;
+ /*0x02*/ u16 var02;
+ u8 pad04[12];
+ /*0x10*/ u8 var10[8];
+ /*0x18*/ u8 var18;
+ u8 pad19[10];
+};
+
+struct TVShowFanclubOpinions {
+ /*0x00*/ u8 var00;
+ /*0x01*/ u8 var01;
+ /*0x02*/ u16 var02;
+ /*0x04*/ u8 var04A:4;
+ u8 var04B:4;
+ /*0x04*/ u8 var05[8];
+ /*0x0D*/ u8 var0D;
+ /*0x0E*/ u8 var0E;
+ /*0x0F*/ u8 var0F;
+ /*0x10*/ u8 var10[8];
+};
+
+struct TVShowNameRaterShow {
+ /*0x00*/ u8 var00;
+ /*0x01*/ u8 var01;
+ /*0x02*/ u16 species;
+ /*0x04*/ u8 pokemonName[11];
+ /*0x0F*/ u8 trainerName[11];
+ /*0x1A*/ u8 random;
+ /*0x1B*/ u8 random2;
+ /*0x1C*/ u16 var1C;
+ /*0x1E*/ u8 language;
+ /*0x1F*/ u8 var1F;
+};
+
+struct TVShowMassOutbreak {
+ /*0x00*/ u8 var00;
+ /*0x01*/ u8 var01;
+ /*0x02*/ u8 var02;
+ /*0x03*/ u8 var03;
+ /*0x04*/ u16 moves[4];
+ /*0x0C*/ u16 species;
+ /*0x0E*/ u16 var0E;
+ /*0x10*/ u8 locationMapNum;
+ /*0x11*/ u8 locationMapGroup;
+ /*0x12*/ u8 var12;
+ /*0x13*/ u8 probability;
+ /*0x14*/ u8 level;
+ /*0x15*/ u8 var15;
+ /*0x16*/ u16 var16;
+ /*0x18*/ u8 var18;
+ u8 pad19[11];
+};
+
+typedef union TVShow {
+ struct TVShowCommon common;
+ struct TVShowFanClubLetter fanclubLetter;
+ struct TVShowRecentHappenings recentHappenings;
+ struct TVShowFanclubOpinions fanclubOpinions;
+ struct TVShowNameRaterShow nameRaterShow;
+ struct TVShowMassOutbreak massOutbreak;
+} TVShow;
+
+struct MailStruct
+{
+ /*0x00*/ u16 words[9];
+ /*0x12*/ u8 playerName[8];
+ /*0x1A*/ u8 trainerId[4];
+ /*0x1E*/ u16 species;
+ /*0x20*/ u16 itemId;
+};
+
struct SaveBlock1
{
/*0x00*/ struct Coords16 pos;
@@ -218,17 +320,23 @@ struct SaveBlock1
/*0x2704*/ u8 decorDoll[40];
/*0x272C*/ u8 decorCushion[10];
/*0x2736*/ u8 padding_2736[2];
- /*0x2738*/ u8 tvShows[24][36]; // TODO: TV show struct
+ /*0x2738*/ TVShow tvShows[24];
/*0x2A98*/ u8 filler_2A98[0x64];
/*0x2AFC*/ u16 outbreakPokemonSpecies;
/*0x2AFE*/ u8 outbreakLocationMapNum;
/*0x2AFF*/ u8 outbreakLocationMapGroup;
/*0x2B00*/ u8 outbreakPokemonLevel;
- /*0x2B01*/ u8 filler_2B01[3];
+ /*0x2B01*/ u8 outbreakUnk1;
+ /*0x2B02*/ u16 outbreakUnk2;
/*0x2B04*/ u16 outbreakPokemonMoves[4];
- /*0x2B0C*/ u8 unk2B0C;
+ /*0x2B0C*/ u8 outbreakUnk4;
/*0x2B0D*/ u8 outbreakPokemonProbability;
- /*0x2B0E*/ u8 filler_2B0E[0x2C6];
+ /*0x2B0E*/ u16 outbreakUnk5;
+ /*0x2B10*/ u8 filler_2B0E[0xC];
+ /*0x2B1C*/ u16 unk2B1C[4];
+ /*0x2B24*/ u8 filler_2B24[0x28];
+ /*0x2B4C*/ struct MailStruct mail[16];
+ /*0x2D8C*/ u8 filler_2D8C[0x48];
/*0x2DD4*/ struct EasyChatPair easyChatPairs[5]; //Dewford trend [0] and some other stuff
/*0x2DFC*/ u8 filler_2DFC[0x100];
/*0x2EFC*/ struct SB1_2EFC_Struct sb1_2EFC_struct[5];
@@ -251,10 +359,10 @@ extern struct SaveBlock1 gSaveBlock1;
struct Time
{
- s16 days;
- s8 hours;
- s8 minutes;
- s8 seconds;
+ /*0x00*/ s16 days;
+ /*0x02*/ s8 hours;
+ /*0x03*/ s8 minutes;
+ /*0x04*/ s8 seconds;
};
struct Pokedex
@@ -270,18 +378,26 @@ struct Pokedex
/*0x44*/ u8 seen[52];
};
-struct SaveBlock2
+struct SaveBlock2_Sub
+{
+ /*0x0000, 0x00A8*/ u8 filler_000[0x4C8];
+ /*0x04C8, 0x0570*/ u16 var_4C8;
+ /*0x04CA, 0x0572*/ u16 var_4CA;
+ /*0x04CC, 0x0574*/ u8 filler_4CC[0x31C];
+};
+
+struct SaveBlock2 /* 0x02024EA4 */
{
/*0x00*/ u8 playerName[8];
/*0x08*/ u8 playerGender; // MALE, FEMALE
- /*0x09*/ u8 sb2_field_9;
+ /*0x09*/ u8 specialSaveWarp;
/*0x0A*/ u8 playerTrainerId[4];
/*0x0E*/ u16 playTimeHours;
/*0x10*/ u8 playTimeMinutes;
/*0x11*/ u8 playTimeSeconds;
/*0x12*/ u8 playTimeVBlanks;
/*0x13*/ u8 optionsButtonMode; // OPTIONS_BUTTON_MODE_[NORMAL/LR/L_EQUALS_A]
- u16 optionsTextSpeed:3; // OPTIONS_TEXT_SPEED_[SLOW/MID/FAST]
+ /*0x14*/ u16 optionsTextSpeed:3; // OPTIONS_TEXT_SPEED_[SLOW/MID/FAST]
u16 optionsWindowFrameType:5; // Specifies one of the 20 decorative borders for text boxes
u16 optionsSound:1; // OPTIONS_SOUND_[MONO/STEREO]
u16 optionsBattleStyle:1; // OPTIONS_BATTLE_STYLE_[SHIFT/SET]
@@ -291,7 +407,24 @@ struct SaveBlock2
/*0x90*/ u8 filler_90[0x8];
/*0x98*/ struct Time localTimeOffset;
/*0xA0*/ struct Time lastBerryTreeUpdate;
- /*0xA8*/ u8 filler_A8[0x7E8];
+ /*0xA8*/ struct SaveBlock2_Sub filler_A8;
+};
+
+struct UnkStruct_8054FF8_Substruct
+{
+ s16 x;
+ s16 y;
+ u8 field_8;
+};
+
+struct UnkStruct_8054FF8
+{
+ u8 a;
+ u8 b;
+ u8 c;
+ u8 d;
+ struct UnkStruct_8054FF8_Substruct sub;
+ u16 field_C;
};
extern struct SaveBlock2 gSaveBlock2;
diff --git a/include/heal_location.h b/include/heal_location.h
new file mode 100644
index 000000000..785918bd6
--- /dev/null
+++ b/include/heal_location.h
@@ -0,0 +1,18 @@
+#ifndef GUARD_HEAL_LOCATION_H
+#define GUARD_HEAL_LOCATION_H
+
+#include "sprite.h"
+
+struct HealLocation
+{
+ s8 group;
+ s8 map;
+ u16 x;
+ u16 y;
+};
+
+u32 GetHealLocationIndexByMap(u16 mapGroup, u16 mapNum);
+const struct HealLocation *GetHealLocationByMap(u16 mapGroup, u16 mapNum);
+const struct HealLocation *GetHealLocation(u32 index);
+
+#endif // GUARD_HEAL_LOCATION_H
diff --git a/include/hold_effects.h b/include/hold_effects.h
new file mode 100644
index 000000000..b653f5a92
--- /dev/null
+++ b/include/hold_effects.h
@@ -0,0 +1,72 @@
+#ifndef GUARD_HOLD_EFFECTS_H
+#define GUARD_HOLD_EFFECTS_H
+
+#define HOLD_EFFECT_NONE 0
+#define HOLD_EFFECT_RESTORE_HP 1
+#define HOLD_EFFECT_CURE_PAR 2
+#define HOLD_EFFECT_CURE_SLP 3
+#define HOLD_EFFECT_CURE_PSN 4
+#define HOLD_EFFECT_CURE_BRN 5
+#define HOLD_EFFECT_CURE_FRZ 6
+#define HOLD_EFFECT_RESTORE_PP 7
+#define HOLD_EFFECT_CURE_CONFUSION 8
+#define HOLD_EFFECT_CURE_STATUS 9
+#define HOLD_EFFECT_CONFUSE_SPICY 10
+#define HOLD_EFFECT_CONFUSE_DRY 11
+#define HOLD_EFFECT_CONFUSE_SWEET 12
+#define HOLD_EFFECT_CONFUSE_BITTER 13
+#define HOLD_EFFECT_CONFUSE_SOUR 14
+#define HOLD_EFFECT_ATTACK_UP 15
+#define HOLD_EFFECT_DEFENSE_UP 16
+#define HOLD_EFFECT_SPEED_UP 17
+#define HOLD_EFFECT_SP_ATTACK_UP 18
+#define HOLD_EFFECT_SP_DEFENSE_UP 19
+#define HOLD_EFFECT_CRITICAL_UP 20
+#define HOLD_EFFECT_RANDOM_STAT_UP 21
+#define HOLD_EFFECT_EVASION_UP 22
+#define HOLD_EFFECT_RESTORE_STATS 23
+#define HOLD_EFFECT_MACHO_BRACE 24
+#define HOLD_EFFECT_EXP_SHARE 25
+#define HOLD_EFFECT_QUICK_CLAW 26
+#define HOLD_EFFECT_HAPPINESS_UP 27
+#define HOLD_EFFECT_CURE_ATTRACT 28
+#define HOLD_EFFECT_CHOICE_BAND 29
+#define HOLD_EFFECT_FLINCH 30
+#define HOLD_EFFECT_BUG_POWER 31
+#define HOLD_EFFECT_DOUBLE_PRIZE 32
+#define HOLD_EFFECT_REPEL 33
+#define HOLD_EFFECT_SOUL_DEW 34
+#define HOLD_EFFECT_DEEP_SEA_TOOTH 35
+#define HOLD_EFFECT_DEEP_SEA_SCALE 36
+#define HOLD_EFFECT_CAN_ALWAYS_RUN 37
+#define HOLD_EFFECT_PREVENT_EVOLVE 38
+#define HOLD_EFFECT_FOCUS_BAND 39
+#define HOLD_EFFECT_LUCKY_EGG 40
+#define HOLD_EFFECT_SCOPE_LENS 41
+#define HOLD_EFFECT_STEEL_POWER 42
+#define HOLD_EFFECT_LEFTOVERS 43
+#define HOLD_EFFECT_DRAGON_SCALE 44
+#define HOLD_EFFECT_LIGHT_BALL 45
+#define HOLD_EFFECT_GROUND_POWER 46
+#define HOLD_EFFECT_ROCK_POWER 47
+#define HOLD_EFFECT_GRASS_POWER 48
+#define HOLD_EFFECT_DARK_POWER 49
+#define HOLD_EFFECT_FIGHTING_POWER 50
+#define HOLD_EFFECT_ELECTRIC_POWER 51
+#define HOLD_EFFECT_WATER_POWER 52
+#define HOLD_EFFECT_FLYING_POWER 53
+#define HOLD_EFFECT_POISON_POWER 54
+#define HOLD_EFFECT_ICE_POWER 55
+#define HOLD_EFFECT_GHOST_POWER 56
+#define HOLD_EFFECT_PSYCHIC_POWER 57
+#define HOLD_EFFECT_FIRE_POWER 58
+#define HOLD_EFFECT_DRAGON_POWER 59
+#define HOLD_EFFECT_NORMAL_POWER 60
+#define HOLD_EFFECT_UP_GRADE 61
+#define HOLD_EFFECT_SHELL_BELL 62
+#define HOLD_EFFECT_LUCKY_PUNCH 63
+#define HOLD_EFFECT_METAL_POWDER 64
+#define HOLD_EFFECT_THICK_CLUB 65
+#define HOLD_EFFECT_STICK 66
+
+#endif // GUARD_HOLD_EFFECTS_H
diff --git a/include/intro.h b/include/intro.h
new file mode 100644
index 000000000..a859a9ce4
--- /dev/null
+++ b/include/intro.h
@@ -0,0 +1,7 @@
+#ifndef GUARD_INTRO_H
+#define GUARD_INTRO_H
+
+void c2_copyright_1(void);
+void CB2_InitCopyrightScreen(void);
+
+#endif // GUARD_INTRO_H
diff --git a/include/item.h b/include/item.h
new file mode 100644
index 000000000..cc917dbc8
--- /dev/null
+++ b/include/item.h
@@ -0,0 +1,35 @@
+#ifndef GUARD_ITEM_H
+#define GUARD_ITEM_H
+
+typedef void (*ItemUseFunc)(u8);
+
+void CopyItemName(u16 itemId, u8 *string);
+bool8 IsBagPocketNonEmpty(u8 pocket);
+bool8 CheckBagHasItem(u16 itemId, u16 count);
+bool8 CheckBagHasSpace(u16 itemId, u16 count);
+bool8 AddBagItem(u16 itemId, u16 count);
+bool8 RemoveBagItem(u16 itemId, u16 count);
+u8 GetPocketByItemId(u16 itemId);
+void ClearItemSlots(struct ItemSlot *itemSlots, u8 b);
+u8 CountUsedPCItemSlots(void);
+bool8 CheckPCHasItem(u16 itemId, u16 count);
+bool8 AddPCItem(u16 itemId, u16 count);
+void RemovePCItem(u8 index, u16 count);
+void SwapRegisteredBike(void);
+struct Item *ItemId_GetItem(u16 itemId);
+u16 ItemId_GetId(u16 itemId);
+u16 ItemId_GetPrice(u16 itemId);
+u8 ItemId_GetHoldEffect(u16 itemId);
+u8 ItemId_GetHoldEffectParam(u16 itemId);
+u8 *ItemId_GetDescription(u16 itemId);
+bool8 ItemId_CopyDescription(u8 *a, u32 itemId, u32 c);
+u8 ItemId_GetImportance(u16 itemId);
+u8 ItemId_GetUnknownValue(u16 itemId);
+u8 ItemId_GetPocket(u16 itemId);
+u8 ItemId_GetType(u16 itemId);
+ItemUseFunc ItemId_GetFieldFunc(u16 itemId);
+u8 ItemId_GetBattleUsage(u16 itemId);
+ItemUseFunc ItemId_GetBattleFunc(u16 itemId);
+u8 ItemId_GetSecondaryId(u16 itemId);
+
+#endif // GUARD_ITEM_H
diff --git a/include/items.h b/include/items.h
new file mode 100644
index 000000000..8f6dceb6a
--- /dev/null
+++ b/include/items.h
@@ -0,0 +1,315 @@
+#ifndef GUARD_ITEMS_H
+#define GUARD_ITEMS_H
+
+#define ITEM_NONE 0x000
+#define ITEM_MASTER_BALL 0x001
+#define ITEM_ULTRA_BALL 0x002
+#define ITEM_GREAT_BALL 0x003
+#define ITEM_POKE_BALL 0x004
+#define ITEM_SAFARI_BALL 0x005
+#define ITEM_NET_BALL 0x006
+#define ITEM_DIVE_BALL 0x007
+#define ITEM_NEST_BALL 0x008
+#define ITEM_REPEAT_BALL 0x009
+#define ITEM_TIMER_BALL 0x00a
+#define ITEM_LUXURY_BALL 0x00b
+#define ITEM_PREMIER_BALL 0x00c
+#define ITEM_POTION 0x00d
+#define ITEM_ANTIDOTE 0x00e
+#define ITEM_BURN_HEAL 0x00f
+#define ITEM_ICE_HEAL 0x010
+#define ITEM_AWAKENING 0x011
+#define ITEM_PARALYZE_HEAL 0x012
+#define ITEM_FULL_RESTORE 0x013
+#define ITEM_MAX_POTION 0x014
+#define ITEM_HYPER_POTION 0x015
+#define ITEM_SUPER_POTION 0x016
+#define ITEM_FULL_HEAL 0x017
+#define ITEM_REVIVE 0x018
+#define ITEM_MAX_REVIVE 0x019
+#define ITEM_FRESH_WATER 0x01a
+#define ITEM_SODA_POP 0x01b
+#define ITEM_LEMONADE 0x01c
+#define ITEM_MOOMOO_MILK 0x01d
+#define ITEM_ENERGY_POWDER 0x01e
+#define ITEM_ENERGY_ROOT 0x01f
+#define ITEM_HEAL_POWDER 0x020
+#define ITEM_REVIVAL_HERB 0x021
+#define ITEM_ETHER 0x022
+#define ITEM_MAX_ETHER 0x023
+#define ITEM_ELIXIR 0x024
+#define ITEM_MAX_ELIXIR 0x025
+#define ITEM_LAVA_COOKIE 0x026
+#define ITEM_BLUE_FLUTE 0x027
+#define ITEM_YELLOW_FLUTE 0x028
+#define ITEM_RED_FLUTE 0x029
+#define ITEM_BLACK_FLUTE 0x02a
+#define ITEM_WHITE_FLUTE 0x02b
+#define ITEM_BERRY_JUICE 0x02c
+#define ITEM_SACRED_ASH 0x02d
+#define ITEM_SHOAL_SALT 0x02e
+#define ITEM_SHOAL_SHELL 0x02f
+#define ITEM_RED_SHARD 0x030
+#define ITEM_BLUE_SHARD 0x031
+#define ITEM_YELLOW_SHARD 0x032
+#define ITEM_GREEN_SHARD 0x033
+#define ITEM_HP_UP 0x03f
+#define ITEM_PROTEIN 0x040
+#define ITEM_IRON 0x041
+#define ITEM_CARBOS 0x042
+#define ITEM_CALCIUM 0x043
+#define ITEM_RARE_CANDY 0x044
+#define ITEM_PP_UP 0x045
+#define ITEM_ZINC 0x046
+#define ITEM_PP_MAX 0x047
+#define ITEM_GUARD_SPEC 0x049
+#define ITEM_DIRE_HIT 0x04a
+#define ITEM_X_ATTACK 0x04b
+#define ITEM_X_DEFEND 0x04c
+#define ITEM_X_SPEED 0x04d
+#define ITEM_X_ACCURACY 0x04e
+#define ITEM_X_SPECIAL 0x04f
+#define ITEM_POKE_DOLL 0x050
+#define ITEM_FLUFFY_TAIL 0x051
+#define ITEM_SUPER_REPEL 0x053
+#define ITEM_MAX_REPEL 0x054
+#define ITEM_ESCAPE_ROPE 0x055
+#define ITEM_REPEL 0x056
+#define ITEM_SUN_STONE 0x05d
+#define ITEM_MOON_STONE 0x05e
+#define ITEM_FIRE_STONE 0x05f
+#define ITEM_THUNDER_STONE 0x060
+#define ITEM_WATER_STONE 0x061
+#define ITEM_LEAF_STONE 0x062
+#define ITEM_TINY_MUSHROOM 0x067
+#define ITEM_BIG_MUSHROOM 0x068
+#define ITEM_PEARL 0x06a
+#define ITEM_BIG_PEARL 0x06b
+#define ITEM_STARDUST 0x06c
+#define ITEM_STAR_PIECE 0x06d
+#define ITEM_NUGGET 0x06e
+#define ITEM_HEART_SCALE 0x06f
+#define ITEM_ORANGE_MAIL 0x079
+#define ITEM_HARBOR_MAIL 0x07a
+#define ITEM_GLITTER_MAIL 0x07b
+#define ITEM_MECH_MAIL 0x07c
+#define ITEM_WOOD_MAIL 0x07d
+#define ITEM_WAVE_MAIL 0x07e
+#define ITEM_BEAD_MAIL 0x07f
+#define ITEM_SHADOW_MAIL 0x080
+#define ITEM_TROPIC_MAIL 0x081
+#define ITEM_DREAM_MAIL 0x082
+#define ITEM_FAB_MAIL 0x083
+#define ITEM_RETRO_MAIL 0x084
+#define ITEM_CHERI_BERRY 0x085
+#define ITEM_CHESTO_BERRY 0x086
+#define ITEM_PECHA_BERRY 0x087
+#define ITEM_RAWST_BERRY 0x088
+#define ITEM_ASPEAR_BERRY 0x089
+#define ITEM_LEPPA_BERRY 0x08a
+#define ITEM_ORAN_BERRY 0x08b
+#define ITEM_PERSIM_BERRY 0x08c
+#define ITEM_LUM_BERRY 0x08d
+#define ITEM_SITRUS_BERRY 0x08e
+#define ITEM_FIGY_BERRY 0x08f
+#define ITEM_WIKI_BERRY 0x090
+#define ITEM_MAGO_BERRY 0x091
+#define ITEM_AGUAV_BERRY 0x092
+#define ITEM_IAPAPA_BERRY 0x093
+#define ITEM_RAZZ_BERRY 0x094
+#define ITEM_BLUK_BERRY 0x095
+#define ITEM_NANAB_BERRY 0x096
+#define ITEM_WEPEAR_BERRY 0x097
+#define ITEM_PINAP_BERRY 0x098
+#define ITEM_POMEG_BERRY 0x099
+#define ITEM_KELPSY_BERRY 0x09a
+#define ITEM_QUALOT_BERRY 0x09b
+#define ITEM_HONDEW_BERRY 0x09c
+#define ITEM_GREPA_BERRY 0x09d
+#define ITEM_TAMATO_BERRY 0x09e
+#define ITEM_CORNN_BERRY 0x09f
+#define ITEM_MAGOST_BERRY 0x0a0
+#define ITEM_RABUTA_BERRY 0x0a1
+#define ITEM_NOMEL_BERRY 0x0a2
+#define ITEM_SPELON_BERRY 0x0a3
+#define ITEM_PAMTRE_BERRY 0x0a4
+#define ITEM_WATMEL_BERRY 0x0a5
+#define ITEM_DURIN_BERRY 0x0a6
+#define ITEM_BELUE_BERRY 0x0a7
+#define ITEM_LIECHI_BERRY 0x0a8
+#define ITEM_GANLON_BERRY 0x0a9
+#define ITEM_SALAC_BERRY 0x0aa
+#define ITEM_PETAYA_BERRY 0x0ab
+#define ITEM_APICOT_BERRY 0x0ac
+#define ITEM_LANSAT_BERRY 0x0ad
+#define ITEM_STARF_BERRY 0x0ae
+#define ITEM_ENIGMA_BERRY 0x0af
+#define ITEM_BRIGHT_POWDER 0x0b3
+#define ITEM_WHITE_HERB 0x0b4
+#define ITEM_MACHO_BRACE 0x0b5
+#define ITEM_EXP_SHARE 0x0b6
+#define ITEM_QUICK_CLAW 0x0b7
+#define ITEM_SOOTHE_BELL 0x0b8
+#define ITEM_MENTAL_HERB 0x0b9
+#define ITEM_CHOICE_BAND 0x0ba
+#define ITEM_KINGS_ROCK 0x0bb
+#define ITEM_SILVER_POWDER 0x0bc
+#define ITEM_AMULET_COIN 0x0bd
+#define ITEM_CLEANSE_TAG 0x0be
+#define ITEM_SOUL_DEW 0x0bf
+#define ITEM_DEEP_SEA_TOOTH 0x0c0
+#define ITEM_DEEP_SEA_SCALE 0x0c1
+#define ITEM_SMOKE_BALL 0x0c2
+#define ITEM_EVERSTONE 0x0c3
+#define ITEM_FOCUS_BAND 0x0c4
+#define ITEM_LUCKY_EGG 0x0c5
+#define ITEM_SCOPE_LENS 0x0c6
+#define ITEM_METAL_COAT 0x0c7
+#define ITEM_LEFTOVERS 0x0c8
+#define ITEM_DRAGON_SCALE 0x0c9
+#define ITEM_LIGHT_BALL 0x0ca
+#define ITEM_SOFT_SAND 0x0cb
+#define ITEM_HARD_STONE 0x0cc
+#define ITEM_MIRACLE_SEED 0x0cd
+#define ITEM_BLACK_GLASSES 0x0ce
+#define ITEM_BLACK_BELT 0x0cf
+#define ITEM_MAGNET 0x0d0
+#define ITEM_MYSTIC_WATER 0x0d1
+#define ITEM_SHARP_BEAK 0x0d2
+#define ITEM_POISON_BARB 0x0d3
+#define ITEM_NEVER_MELT_ICE 0x0d4
+#define ITEM_SPELL_TAG 0x0d5
+#define ITEM_TWISTED_SPOON 0x0d6
+#define ITEM_CHARCOAL 0x0d7
+#define ITEM_DRAGON_FANG 0x0d8
+#define ITEM_SILK_SCARF 0x0d9
+#define ITEM_UP_GRADE 0x0da
+#define ITEM_SHELL_BELL 0x0db
+#define ITEM_SEA_INCENSE 0x0dc
+#define ITEM_LAX_INCENSE 0x0dd
+#define ITEM_LUCKY_PUNCH 0x0de
+#define ITEM_METAL_POWDER 0x0df
+#define ITEM_THICK_CLUB 0x0e0
+#define ITEM_STICK 0x0e1
+#define ITEM_RED_SCARF 0x0fe
+#define ITEM_BLUE_SCARF 0x0ff
+#define ITEM_PINK_SCARF 0x100
+#define ITEM_GREEN_SCARF 0x101
+#define ITEM_YELLOW_SCARF 0x102
+#define ITEM_MACH_BIKE 0x103
+#define ITEM_COIN_CASE 0x104
+#define ITEM_ITEMFINDER 0x105
+#define ITEM_OLD_ROD 0x106
+#define ITEM_GOOD_ROD 0x107
+#define ITEM_SUPER_ROD 0x108
+#define ITEM_SS_TICKET 0x109
+#define ITEM_CONTEST_PASS 0x10a
+#define ITEM_WAILMER_PAIL 0x10c
+#define ITEM_DEVON_GOODS 0x10d
+#define ITEM_SOOT_SACK 0x10e
+#define ITEM_BASEMENT_KEY 0x10f
+#define ITEM_ACRO_BIKE 0x110
+#define ITEM_POKEBLOCK_CASE 0x111
+#define ITEM_LETTER 0x112
+#define ITEM_EON_TICKET 0x113
+#define ITEM_RED_ORB 0x114
+#define ITEM_BLUE_ORB 0x115
+#define ITEM_SCANNER 0x116
+#define ITEM_GO_GOGGLES 0x117
+#define ITEM_METEORITE 0x118
+#define ITEM_ROOM_1_KEY 0x119
+#define ITEM_ROOM_2_KEY 0x11a
+#define ITEM_ROOM_4_KEY 0x11b
+#define ITEM_ROOM_6_KEY 0x11c
+#define ITEM_STORAGE_KEY 0x11d
+#define ITEM_ROOT_FOSSIL 0x11e
+#define ITEM_CLAW_FOSSIL 0x11f
+#define ITEM_DEVON_SCOPE 0x120
+#define ITEM_TM01 0x121
+#define ITEM_TM02 0x122
+#define ITEM_TM03 0x123
+#define ITEM_TM04 0x124
+#define ITEM_TM05 0x125
+#define ITEM_TM06 0x126
+#define ITEM_TM07 0x127
+#define ITEM_TM08 0x128
+#define ITEM_TM09 0x129
+#define ITEM_TM10 0x12a
+#define ITEM_TM11 0x12b
+#define ITEM_TM12 0x12c
+#define ITEM_TM13 0x12d
+#define ITEM_TM14 0x12e
+#define ITEM_TM15 0x12f
+#define ITEM_TM16 0x130
+#define ITEM_TM17 0x131
+#define ITEM_TM18 0x132
+#define ITEM_TM19 0x133
+#define ITEM_TM20 0x134
+#define ITEM_TM21 0x135
+#define ITEM_TM22 0x136
+#define ITEM_TM23 0x137
+#define ITEM_TM24 0x138
+#define ITEM_TM25 0x139
+#define ITEM_TM26 0x13a
+#define ITEM_TM27 0x13b
+#define ITEM_TM28 0x13c
+#define ITEM_TM29 0x13d
+#define ITEM_TM30 0x13e
+#define ITEM_TM31 0x13f
+#define ITEM_TM32 0x140
+#define ITEM_TM33 0x141
+#define ITEM_TM34 0x142
+#define ITEM_TM35 0x143
+#define ITEM_TM36 0x144
+#define ITEM_TM37 0x145
+#define ITEM_TM38 0x146
+#define ITEM_TM39 0x147
+#define ITEM_TM40 0x148
+#define ITEM_TM41 0x149
+#define ITEM_TM42 0x14a
+#define ITEM_TM43 0x14b
+#define ITEM_TM44 0x14c
+#define ITEM_TM45 0x14d
+#define ITEM_TM46 0x14e
+#define ITEM_TM47 0x14f
+#define ITEM_TM48 0x150
+#define ITEM_TM49 0x151
+#define ITEM_TM50 0x152
+#define ITEM_HM01 0x153
+#define ITEM_HM02 0x154
+#define ITEM_HM03 0x155
+#define ITEM_HM04 0x156
+#define ITEM_HM05 0x157
+#define ITEM_HM06 0x158
+#define ITEM_HM07 0x159
+#define ITEM_HM08 0x15a
+#define ITEM_OAKS_PARCEL 0x15d
+#define ITEM_POKE_FLUTE 0x15e
+#define ITEM_SECRET_KEY 0x15f
+#define ITEM_BIKE_VOUCHER 0x160
+#define ITEM_GOLD_TEETH 0x161
+#define ITEM_OLD_AMBER 0x162
+#define ITEM_CARD_KEY 0x163
+#define ITEM_LIFT_KEY 0x164
+#define ITEM_HELIX_FOSSIL 0x165
+#define ITEM_DOME_FOSSIL 0x166
+#define ITEM_SILPH_SCOPE 0x167
+#define ITEM_BICYCLE 0x168
+#define ITEM_TOWN_MAP 0x169
+#define ITEM_VS_SEEKER 0x16a
+#define ITEM_FAME_CHECKER 0x16b
+#define ITEM_TM_CASE 0x16c
+#define ITEM_BERRY_POUCH 0x16d
+#define ITEM_TEACHY_TV 0x16e
+#define ITEM_TRI_PASS 0x16f
+#define ITEM_RAINBOW_PASS 0x170
+#define ITEM_TEA 0x171
+#define ITEM_MYSTIC_TICKET 0x172
+#define ITEM_AURORA_TICKET 0x173
+#define ITEM_POWDER_JAR 0x174
+#define ITEM_RUBY 0x175
+#define ITEM_SAPPHIRE 0x176
+#define ITEM_MAGMA_EMBLEM 0x177
+#define ITEM_OLD_SEA_MAP 0x178
+
+#endif // GUARD_ITEMS_H
diff --git a/include/landmark.h b/include/landmark.h
new file mode 100644
index 000000000..eee5ac8c2
--- /dev/null
+++ b/include/landmark.h
@@ -0,0 +1,6 @@
+#ifndef GUARD_LANDMARK_H
+#define GUARD_LANDMARK_H
+
+u8 *GetLandmarkName(u8 mapSection, u8 id, u8 count);
+
+#endif // GUARD_LANDMARK_H
diff --git a/include/libgncmultiboot.h b/include/libgncmultiboot.h
new file mode 100644
index 000000000..b4d1cd231
--- /dev/null
+++ b/include/libgncmultiboot.h
@@ -0,0 +1,16 @@
+#ifndef GUARD_LIBGNCMULTIBOOT_H
+#define GUARD_LIBGNCMULTIBOOT_H
+
+struct GcmbStruct
+{
+ u16 gcmb_field_0;
+ u8 gcmb_field_2;
+};
+
+void GameCubeMultiBoot_Main(struct GcmbStruct *pStruct);
+void GameCubeMultiBoot_ExecuteProgram(struct GcmbStruct *pStruct);
+void GameCubeMultiBoot_Init(struct GcmbStruct *pStruct);
+void GameCubeMultiBoot_HandleSerialInterrupt(struct GcmbStruct *pStruct);
+void GameCubeMultiBoot_Quit(void);
+
+#endif // GUARD_LIBGNCMULTIBOOT_H
diff --git a/include/link.h b/include/link.h
index 550102fb9..49dff6547 100644
--- a/include/link.h
+++ b/include/link.h
@@ -1,8 +1,6 @@
#ifndef GUARD_LINK_H
#define GUARD_LINK_H
-#include "global.h"
-
#define MAX_LINK_PLAYERS 4
#define CMD_LENGTH 8
#define QUEUE_CAPACITY 50
@@ -64,14 +62,14 @@ enum
struct LinkPlayer
{
- u16 version;
- u16 lp_field_2;
- u32 trainerId;
- u8 name[11];
- u8 gender;
- u32 linkType;
- u16 lp_field_18;
- u16 language;
+ /* 0x00 */ u16 version;
+ /* 0x02 */ u16 lp_field_2;
+ /* 0x04 */ u32 trainerId;
+ /* 0x05 */ u8 name[11];
+ /* 0x10 */ u8 gender;
+ /* 0x14 */ u32 linkType;
+ /* 0x18 */ u16 lp_field_18;
+ /* 0x20 */ u16 language;
};
struct LinkPlayerBlock
@@ -126,11 +124,13 @@ struct Link
extern struct Link gLink;
extern u16 gRecvCmds[CMD_LENGTH][MAX_LINK_PLAYERS];
+extern u16 gLinkType;
extern u32 gLinkStatus;
extern u16 gSendCmd[CMD_LENGTH];
extern u8 gShouldAdvanceLinkState;
extern struct LinkPlayer gLinkPlayers[];
extern u16 word_3002910[];
+extern bool8 gReceivedRemoteLinkPlayers;
void Task_DestroySelf(u8);
void sub_8007270(u8);
diff --git a/include/load_save.h b/include/load_save.h
new file mode 100644
index 000000000..a3c2c609c
--- /dev/null
+++ b/include/load_save.h
@@ -0,0 +1,17 @@
+#ifndef GUARD_LOAD_SAVE_H
+#define GUARD_LOAD_SAVE_H
+
+void CheckForFlashMemory(void);
+bool32 GetSecretBase2Field_9(void);
+void ClearSecretBase2Field_9(void);
+void SetSecretBase2Field_9(void);
+void SetSecretBase2Field_9_AndHideBG(void);
+void ClearSecretBase2Field_9_2(void);
+void SavePlayerParty(void);
+void LoadPlayerParty(void);
+void SaveSerializedGame(void);
+void LoadSerializedGame(void);
+void LoadPlayerBag(void);
+void SavePlayerBag(void);
+
+#endif // GUARD_LOAD_SAVE_H
diff --git a/include/lottery_corner.h b/include/lottery_corner.h
new file mode 100644
index 000000000..5e2346d37
--- /dev/null
+++ b/include/lottery_corner.h
@@ -0,0 +1,12 @@
+#ifndef GUARD_LOTTERY_CORNER_H
+#define GUARD_LOTTERY_CORNER_H
+
+void ResetLotteryCorner(void);
+void SetRandomLotteryNumber(u16 i);
+void RetrieveLotteryNumber(void);
+void PickLotteryCornerTicket(void);
+void SetLotteryNumber(u32 lotteryNum);
+u32 GetLotteryNumber(void);
+void SetLotteryNumber16_Unused(u16 lotteryNum);
+
+#endif // GUARD_LOTTERY_CORNER_H
diff --git a/include/m4a.h b/include/m4a.h
new file mode 100644
index 000000000..949403885
--- /dev/null
+++ b/include/m4a.h
@@ -0,0 +1,18 @@
+#ifndef GUARD_M4A_H
+#define GUARD_M4A_H
+
+#include "gba/m4a_internal.h"
+
+void m4aSoundVSync(void);
+
+void m4aSoundInit(void);
+void m4aSoundMain(void);
+void m4aSongNumStart(u16);
+void m4aSongNumStop(u16 n);
+void m4aMPlayContinue(struct MusicPlayerInfo *mplayInfo);
+void m4aMPlayFadeOut(struct MusicPlayerInfo *mplayInfo, u16 speed);
+void m4aMPlayFadeOutTemporarily(struct MusicPlayerInfo *mplayInfo, u16 speed);
+void m4aMPlayFadeIn(struct MusicPlayerInfo *mplayInfo, u16 speed);
+void m4aMPlayImmInit(struct MusicPlayerInfo *mplayInfo);
+
+#endif //GUARD_M4A_H
diff --git a/include/mail.h b/include/mail.h
new file mode 100644
index 000000000..693b0b2dc
--- /dev/null
+++ b/include/mail.h
@@ -0,0 +1,8 @@
+#ifndef GUARD_MAIL_H
+#define GUARD_MAIL_H
+
+#include "main.h"
+
+void HandleReadMail(struct MailStruct *arg0, MainCallback arg1, bool8 arg2);
+
+#endif // GUARD_MAIL_H
diff --git a/include/main.h b/include/main.h
index 67595ac65..aef55a182 100644
--- a/include/main.h
+++ b/include/main.h
@@ -9,47 +9,49 @@ typedef void (*IntrFunc)(void);
struct Main
{
- MainCallback callback1;
- MainCallback callback2;
+ /*0x000*/ MainCallback callback1;
+ /*0x004*/ MainCallback callback2;
- MainCallback field_8;
+ /*0x008*/ MainCallback savedCallback;
- IntrCallback vblankCallback;
- IntrCallback hblankCallback;
- IntrCallback vcountCallback;
- IntrCallback serialCallback;
+ /*0x00C*/ IntrCallback vblankCallback;
+ /*0x010*/ IntrCallback hblankCallback;
+ /*0x014*/ IntrCallback vcountCallback;
+ /*0x018*/ IntrCallback serialCallback;
- vu16 intrCheck;
+ /*0x01C*/ vu16 intrCheck;
- u32 vblankCounter1;
- u32 vblankCounter2;
+ /*0x020*/ u32 vblankCounter1;
+ /*0x024*/ u32 vblankCounter2;
- u16 heldKeysRaw; // held keys without L=A remapping
- u16 newKeysRaw; // newly pressed keys without L=A remapping
- u16 heldKeys; // held keys with L=A remapping
- u16 newKeys; // newly pressed keys with L=A remapping
- u16 newAndRepeatedKeys; // newly pressed keys plus key repeat
- u16 keyRepeatCounter; // counts down to 0, triggering key repeat
- bool16 watchedKeysPressed; // whether one of the watched keys was pressed
- u16 watchedKeysMask; // bit mask for watched keys
+ /*0x028*/ u16 heldKeysRaw; // held keys without L=A remapping
+ /*0x02A*/ u16 newKeysRaw; // newly pressed keys without L=A remapping
+ /*0x02C*/ u16 heldKeys; // held keys with L=A remapping
+ /*0x02E*/ u16 newKeys; // newly pressed keys with L=A remapping
+ /*0x030*/ u16 newAndRepeatedKeys; // newly pressed keys plus key repeat
+ /*0x032*/ u16 keyRepeatCounter; // counts down to 0, triggering key repeat
+ /*0x034*/ bool16 watchedKeysPressed; // whether one of the watched keys was pressed
+ /*0x036*/ u16 watchedKeysMask; // bit mask for watched keys
- u8 objCount;
+ /*0x038*/ u8 objCount;
- struct OamData oamBuffer[128];
+ /*0x03C*/ struct OamData oamBuffer[128];
- u8 state;
+ /*0x43C*/ u8 state;
- u8 oamLoadDisabled:1;
+ /*0x43D*/ u8 oamLoadDisabled:1;
+ /*0x43D*/ u8 inBattle:1;
};
extern u8 gUnknown_3001764;
extern struct Main gMain;
-extern u8 gUnknown_3001BB4;
+extern bool8 gSoftResetDisabled;
extern bool8 gLinkVSyncDisabled;
extern const u8 gGameVersion;
extern const u8 gGameLanguage;
+void AgbMain(void);
void SetMainCallback2(MainCallback callback);
void InitKeys(void);
void SetVBlankCallback(IntrCallback callback);
diff --git a/include/main_menu.h b/include/main_menu.h
new file mode 100644
index 000000000..08cd913dc
--- /dev/null
+++ b/include/main_menu.h
@@ -0,0 +1,6 @@
+#ifndef GUARD_MAIN_MENU_H
+#define GUARD_MAIN_MENU_H
+
+void CB2_InitMainMenu(void);
+
+#endif // GUARD_MAIN_MENU_H
diff --git a/include/map_obj_lock.h b/include/map_obj_lock.h
new file mode 100644
index 000000000..f7352be22
--- /dev/null
+++ b/include/map_obj_lock.h
@@ -0,0 +1,16 @@
+#ifndef GUARD_MAP_OBJ_LOCK_H
+#define GUARD_MAP_OBJ_LOCK_H
+
+bool8 walkrun_is_standing_still(void);
+void sub_8064CDC(u8 taskId);
+bool8 sub_8064CFC(void);
+void ScriptFreezeMapObjects(void);
+void sub_8064D38(u8 taskId);
+bool8 sub_8064DB4(void);
+void sub_8064DD8(void);
+void sub_8064E2C(void);
+void unref_sub_8064E5C(void);
+void sub_8064EAC(void);
+void sub_8064ED4(void);
+
+#endif // GUARD_MAP_OBJ_LOCK_H
diff --git a/include/menu.h b/include/menu.h
index 6df47cf93..0e4860791 100644
--- a/include/menu.h
+++ b/include/menu.h
@@ -3,14 +3,22 @@
#include "text.h"
-void InitMenuWindow(struct WindowConfig *);
-void MultistepInitMenuWindowBegin(struct WindowConfig *);
+struct MenuAction
+{
+ u8 *text;
+ u8 (*func)();
+};
+
+void CloseMenu(void);
+void AppendToList(u8 *list, u8 *pindex, u32 value);
+void InitMenuWindow(const struct WindowConfig *);
+void MultistepInitMenuWindowBegin(const struct WindowConfig *);
bool32 MultistepInitMenuWindowContinue(void);
void unref_sub_8071DA4(struct WindowConfig *, u16);
void MenuLoadTextWindowGraphics_OverrideFrameType(u8);
void MenuLoadTextWindowGraphics(void);
-void BasicInitMenuWindow(struct WindowConfig *);
-void MenuPrint(u8 *, u8, u8);
+void BasicInitMenuWindow(const struct WindowConfig *);
+void MenuPrint(const u8 *, u8, u8);
void MenuZeroFillWindowRect(u8, u8, u8, u8);
void MenuFillWindowRectWithBlankTile(u8, u8, u8, u8);
void MenuZeroFillScreen(void);
@@ -33,11 +41,11 @@ s8 ProcessMenuInput(void);
s8 ProcessMenuInputNoWrap(void);
u8 MoveMenuCursor3(s8);
u8 MoveMenuCursor4(s8);
-void sub_807274C(u8, u8, u8, u8, u8 * const [][2], u8, u32);
+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, u8 * const [][2]);
-void PrintMenuItemsReordered(u8, u8, u8, u8 * const [][2], u8*);
+void PrintMenuItems(u8, u8, u8, const struct MenuAction[]);
+void PrintMenuItemsReordered(u8, u8, u8, const struct MenuAction[], u8*);
void InitYesNoMenu(u8, u8, u8);
void DisplayYesNoMenu(u8, u8, u32);
s8 ProcessMenuInputNoWrap_(void);
diff --git a/include/menu_cursor.h b/include/menu_cursor.h
new file mode 100644
index 000000000..cc6cc16bc
--- /dev/null
+++ b/include/menu_cursor.h
@@ -0,0 +1,24 @@
+#ifndef GUARD_MENU_CURSOR_H
+#define GUARD_MENU_CURSOR_H
+
+#include "sprite.h"
+
+void sub_814A590(void);
+u8 sub_814A5C0(u8 a1, u16 a2, u8 a3, u16 a4, u8 a5);
+u8 sub_814A758(u8 a1, u8 a2, u8 a3, u8 a4);
+u8 unref_sub_814A7AC(u8 a1, u16 a2, u8 a3);
+void sub_814A7FC(void);
+void sub_814A880(u8 a1, u8 a2);
+void sub_814A904(void);
+void sub_814A958(u8 a1);
+void sub_814AABC(void (*callback)(struct Sprite *));
+void sub_814AAF8(u16 a1);
+void sub_814AB84(void);
+void unref_sub_814ABE4(int a1);
+u8 CreateBlendedOutlineCursor(u8 a1, u16 a2, u8 a3, u16 a4, u8 a5);
+void sub_814AD44(void);
+void sub_814AD7C(u8 a1, u8 a2);
+void sub_814ADC8(void);
+void sub_814ADF4(u8 a1);
+
+#endif // GUARD_MENU_CURSOR_H
diff --git a/include/metatile_behavior.h b/include/metatile_behavior.h
new file mode 100644
index 000000000..e7b4adfbd
--- /dev/null
+++ b/include/metatile_behavior.h
@@ -0,0 +1,136 @@
+#ifndef GUARD_METATILE_BEHAVIOR
+#define GUARD_METATILE_BEHAVIOR
+
+bool8 MetatileBehavior_IsATile(u8);
+bool8 MetatileBehavior_IsEncounterTile(u8);
+bool8 MetatileBehavior_IsJumpEast(u8);
+bool8 MetatileBehavior_IsJumpWest(u8);
+bool8 MetatileBehavior_IsJumpNorth(u8);
+bool8 MetatileBehavior_IsJumpSouth(u8);
+bool8 MetatileBehavior_IsPokeGrass(u8);
+bool8 MetatileBehavior_IsSandOrDeepSand(u8);
+bool8 MetatileBehavior_IsDeepSand(u8);
+bool8 MetatileBehavior_IsReflective(u8);
+bool8 MetatileBehavior_IsIce(u8);
+bool8 MetatileBehavior_IsWarpDoor(u8);
+bool8 MetatileBehavior_IsDoor(u8);
+bool8 MetatileBehavior_IsEscalator(u8);
+bool8 unref_sub_8056EE0(u8);
+bool8 MetatileBehavior_IsLadder(u8);
+bool8 MetatileBehavior_IsNonAnimDoor(u8);
+bool8 MetatileBehavior_IsDeepSouthWarp(u8);
+bool8 MetatileBehavior_IsSurfableWaterOrUnderwater(u8);
+bool8 MetatileBehavior_IsEastArrowWarp(u8);
+bool8 MetatileBehavior_IsWestArrowWarp(u8);
+bool8 MetatileBehavior_IsNorthArrowWarp(u8);
+bool8 MetatileBehavior_IsSouthArrowWarp(u8);
+bool8 MetatileBehavior_IsArrowWarp(u8);
+bool8 MetatileBehavior_IsMoveTile(u8);
+bool8 MetatileBehavior_IsIce_2(u8);
+bool8 MetatileBehavior_IsTrickHouseSlipperyFloor(u8);
+bool8 MetatileBehavior_0x05(u8);
+bool8 MetatileBehavior_IsWalkNorth(u8);
+bool8 MetatileBehavior_IsWalkSouth(u8);
+bool8 MetatileBehavior_IsWalkWest(u8);
+bool8 MetatileBehavior_IsWalkEast(u8);
+bool8 MetatileBehavior_IsNorthwardCurrent(u8);
+bool8 MetatileBehavior_IsSouthwardCurrent(u8);
+bool8 MetatileBehavior_IsWestwardCurrent(u8);
+bool8 MetatileBehavior_IsEastwardCurrent(u8);
+bool8 MetatileBehavior_IsSlideNorth(u8);
+bool8 MetatileBehavior_IsSlideSouth(u8);
+bool8 MetatileBehavior_IsSlideWest(u8);
+bool8 MetatileBehavior_IsSlideEast(u8);
+bool8 MetatileBehavior_IsCounter(u8);
+bool8 MetatileBehavior_IsPlayerFacingTVScreen(u8, u8);
+bool8 MetatileBehavior_IsPC(u8);
+bool8 is_tile_x84(u8);
+bool8 sub_80571C0(u8);
+bool8 MetatileBehavior_IsSecretBaseCave(u8);
+bool8 MetatileBehavior_IsSecretBaseTree(u8);
+bool8 MetatileBehavior_IsSecretBaseShrub(u8);
+bool8 MetatileBehavior_IsSecretBasePC(u8);
+bool8 sub_805724C(u8);
+bool8 unref_sub_8057260(u8);
+bool8 sub_8057274(u8);
+bool8 sub_8057288(u8);
+bool8 sub_805729C(u8);
+bool8 sub_80572B0(u8);
+bool8 unref_sub_80572C4(u8);
+bool8 sub_80572D8(u8);
+bool8 sub_80572EC(u8);
+bool8 sub_8057300(u8);
+bool8 sub_8057314(u8);
+bool8 sub_8057328(u8);
+bool8 sub_805733C(u8);
+bool8 sub_8057350(u8);
+bool8 sub_8057364(u8);
+bool8 sub_8057378(u8);
+bool8 sub_805738C(u8);
+bool8 MetatileBehavior_HasRipples(u8);
+bool8 MetatileBehavior_IsPuddle(u8);
+bool8 MetatileBehavior_IsTallGrass(u8);
+bool8 MetatileBehavior_IsLongGrass(u8);
+bool8 MetatileBehavior_IsBerryTreeSoil(u8);
+bool8 MetatileBehavior_IsAsh(u8);
+bool8 MetatileBehavior_IsUnusedFootprintMetatile(u8);
+bool8 MetatileBehavior_IsBridge(u8);
+u8 sub_8057450(u8);
+bool8 MetatileBehavior_IsLandWildEncounter(u8);
+bool8 MetatileBehavior_IsWaterWildEncounter(u8);
+bool8 sub_80574C4(u8);
+bool8 sub_80574D8(u8);
+bool8 sub_80574EC(u8);
+bool8 sub_805750C(u8);
+bool8 MetatileBehavior_IsShallowFlowingWater(u8);
+bool8 MetatileBehavior_IsThinIce(u8);
+bool8 MetatileBehavior_IsCrackedIce(u8);
+bool8 sub_8057568(u8);
+bool8 unref_sub_8057584(u8);
+bool8 sub_805759C(u8);
+bool8 MetatileBehavior_IsEastBlocked(u8);
+bool8 MetatileBehavior_IsWestBlocked(u8);
+bool8 MetatileBehavior_IsNorthBlocked(u8);
+bool8 MetatileBehavior_IsSouthBlocked(u8);
+bool8 MetatileBehavior_IsShortGrass(u8);
+bool8 MetatileBehavior_IsHotSprings(u8);
+bool8 MetatileBehavior_IsWaterfall(u8);
+bool8 MetatileBehavior_IsFortreeBridge(u8);
+bool8 sub_80576A0(u8);
+bool8 sub_80576B4(u8);
+bool8 sub_80576C8(u8);
+bool8 sub_80576DC(u8);
+bool8 MetatileBehavior_IsPacifidlogLog(u8);
+bool8 MetatileBehavior_IsTrickHousePuzzleDoor(u8);
+bool8 MetatileBehavior_IsRegionMap(u8);
+bool8 MetatileBehavior_IsClosedSootpolisGymDoor(u8);
+bool8 MetatileBehavior_IsRoulette(u8);
+bool8 MetatileBehavior_IsPokeblockFeeder(u8);
+bool8 MetatileBehavior_0xBB(u8);
+bool8 MetatileBehavior_0xBC(u8);
+bool8 MetatileBehavior_IsLavaridgeB1FWarp(u8);
+bool8 MetatileBehavior_IsLavaridge1FWarp(u8);
+bool8 MetatileBehavior_IsAquaHideoutWarp(u8);
+bool8 MetatileBehavior_IsSurfableFishableWater(u8);
+bool8 MetatileBehavior_IsMtPyreHole(u8);
+bool8 MetatileBehavior_IsCrackedFloorHole(u8);
+bool8 MetatileBehavior_IsCrackedFloor(u8);
+bool8 MetatileBehavior_IsMuddySlope(u8);
+bool8 MetatileBehavior_IsBumpySlope(u8);
+bool8 MetatileBehavior_IsIsolatedVerticalRail(u8);
+bool8 MetatileBehavior_IsIsolatedHorizontalRail(u8);
+bool8 MetatileBehavior_IsVerticalRail(u8);
+bool8 MetatileBehavior_IsHorizontalRail(u8);
+bool8 MetatileBehavior_IsSeaweed(u8);
+bool8 MetatileBehavior_IsRunningDisallowed(u8);
+bool8 sub_80578F8(u8);
+bool8 sub_805791C(u8);
+bool8 MetatileBehavior_IsPictureBookShelf(u8);
+bool8 MetatileBehavior_IsBookShelf(u8);
+bool8 MetatileBehavior_IsPokeCenterBookShelf(u8);
+bool8 MetatileBehavior_IsVase(u8);
+bool8 MetatileBehavior_IsTrashCan(u8);
+bool8 MetatileBehavior_IsShopShelf(u8);
+bool8 MetatileBehavior_IsBlueprint(u8);
+
+#endif // GUARD_METATILE_BEHAVIOR
diff --git a/include/metatile_behaviors.h b/include/metatile_behaviors.h
new file mode 100644
index 000000000..ea705054e
--- /dev/null
+++ b/include/metatile_behaviors.h
@@ -0,0 +1,173 @@
+#ifndef GUARD_METATILE_BEHAVIORS
+#define GUARD_METATILE_BEHAVIORS
+
+#define MB_NORMAL 0x00
+#define MB_TALL_GRASS 0x02
+#define MB_LONG_GRASS 0x03
+#define MB_04 0x04
+#define MB_05 0x05
+#define MB_DEEP_SAND 0x06
+#define MB_SHORT_GRASS 0x07
+#define MB_CAVE 0x08
+#define MB_LONG_GRASS_SOUTH_EDGE 0x09
+#define MB_NO_RUNNING 0x0A
+#define MB_0B 0x0B
+#define MB_MOUNTAIN_TOP 0x0C
+#define MB_BATTLE_PYRAMID_WARP 0x0D
+#define MB_MOSSDEEP_GYM_WARP 0x0E
+#define MB_MT_PYRE_HOLE 0x0F
+#define MB_POND_WATER 0x10
+#define MB_SEMI_DEEP_WATER 0x11
+#define MB_DEEP_WATER 0x12
+#define MB_WATERFALL 0x13
+#define MB_SOOTOPOLIS_DEEP_WATER 0x14
+#define MB_OCEAN_WATER 0x15
+#define MB_PUDDLE 0x16
+#define MB_SHALLOW_WATER 0x17
+#define MB_18 0x18
+#define MB_NO_SURFACING 0x19
+#define MB_1A 0x1A
+#define MB_STAIRS_OUTSIDE_ABANDONED_SHIP 0x1B
+#define MB_SHOAL_CAVE_ENTRANCE 0x1C
+#define MB_ICE 0x20
+#define MB_SAND 0x21
+#define MB_SEAWEED 0x22
+#define MB_ASH 0x24
+#define MB_25 0x25
+#define MB_THIN_ICE 0x26
+#define MB_CRACKED_ICE 0x27
+#define MB_HOT_SPRINGS 0x28
+#define MB_LAVARIDGE_GYM_B1F_WARP 0x29
+#define MB_SEAWEED_NO_SURFACING 0x2A
+#define MB_REFLECTION_UNDER_BRIDGE 0x2B
+#define MB_IMPASSABLE_EAST 0x30
+#define MB_IMPASSABLE_WEST 0x31
+#define MB_IMPASSABLE_NORTH 0x32
+#define MB_IMPASSABLE_SOUTH 0x33
+#define MB_IMPASSABLE_NORTHEAST 0x34
+#define MB_IMPASSABLE_NORTHWEST 0x35
+#define MB_IMPASSABLE_SOUTHEAST 0x36
+#define MB_IMPASSABLE_SOUTHWEST 0x37
+#define MB_JUMP_EAST 0x38
+#define MB_JUMP_WEST 0x39
+#define MB_JUMP_NORTH 0x3A
+#define MB_JUMP_SOUTH 0x3B
+#define MB_JUMP_SOUTHEAST 0x3E
+#define MB_JUMP_SOUTHWEST 0x3F
+#define MB_WALK_EAST 0x40
+#define MB_WALK_WEST 0x41
+#define MB_WALK_NORTH 0x42
+#define MB_WALK_SOUTH 0x43
+#define MB_SLIDE_EAST 0x44
+#define MB_SLIDE_WEST 0x45
+#define MB_SLIDE_NORTH 0x46
+#define MB_SLIDE_SOUTH 0x47
+#define MB_TRICK_HOUSE_PUZZLE_8_FLOOR 0x48
+#define MB_EASTWARD_CURRENT 0x50
+#define MB_WESTWARD_CURRENT 0x51
+#define MB_NORTHWARD_CURRENT 0x52
+#define MB_SOUTHWARD_CURRENT 0x53
+#define MB_NON_ANIMATED_DOOR 0x60
+#define MB_LADDER 0x61
+#define MB_EAST_ARROW_WARP 0x62
+#define MB_WEST_ARROW_WARP 0x63
+#define MB_NORTH_ARROW_WARP 0x64
+#define MB_SOUTH_ARROW_WARP 0x65
+#define MB_CRACKED_FLOOR_HOLE 0x66
+#define MB_AQUA_HIDEOUT_WARP 0x67
+#define MB_LAVARIDGE_GYM_1F_WARP 0x68
+#define MB_ANIMATED_DOOR 0x69
+#define MB_UP_ESCALATOR 0x6A
+#define MB_DOWN_ESCALATOR 0x6B
+#define MB_WATER_DOOR 0x6C
+#define MB_WATER_SOUTH_ARROW_WARP 0x6D
+#define MB_DEEP_SOUTH_WARP 0x6E
+#define MB_WARP_OR_BRIDGE 0x70
+#define MB_ROUTE120_NORTH_BRIDGE_1 0x72
+#define MB_ROUTE120_NORTH_BRIDGE_2 0x73
+#define MB_PACIFIDLOG_VERTICAL_LOG_1 0x74
+#define MB_PACIFIDLOG_VERTICAL_LOG_2 0x75
+#define MB_PACIFIDLOG_HORIZONTAL_LOG_1 0x76
+#define MB_PACIFIDLOG_HORIZONTAL_LOG_2 0x77
+#define MB_FORTREE_BRIDGE 0x78
+#define MB_ROUTE120_SOUTH_BRIDGE_1 0x7A
+#define MB_ROUTE120_SOUTH_BRIDGE_2 0x7B
+#define MB_ROUTE120_NORTH_BRIDGE_3 0x7C
+#define MB_ROUTE120_NORTH_BRIDGE_4 0x7D
+#define MB_ROUTE110_BRIDGE 0x7F
+#define MB_COUNTER 0x80
+#define MB_PC 0x83
+#define MB_84 0x84
+#define MB_REGION_MAP 0x85
+#define MB_TELEVISION 0x86
+#define MB_POKEBLOCK_FEEDER 0x87
+#define MB_SLOT_MACHINE 0x89
+#define MB_ROULETTE 0x8A
+#define MB_CLOSED_SOOTOPOLIS_GYM_DOOR 0x8B
+#define MB_TRICK_HOUSE_PUZZLE_DOOR 0x8C
+#define MB_8D 0x8D
+#define MB_8E 0x8E
+#define MB_QUESTIONNAIRE 0x8F
+#define MB_SECRET_BASE_SPOT_RED_CAVE 0x90
+#define MB_91 0x91
+#define MB_SECRET_BASE_SPOT_BROWN_CAVE 0x92
+#define MB_93 0x93
+#define MB_SECRET_BASE_SPOT_YELLOW_CAVE 0x94
+#define MB_95 0x95
+#define MB_SECRET_BASE_SPOT_TREE_1 0x96
+#define MB_97 0x97
+#define MB_SECRET_BASE_SPOT_SHRUB 0x98
+#define MB_99 0x99
+#define MB_SECRET_BASE_SPOT_BLUE_CAVE 0x9A
+#define MB_9B 0x9B
+#define MB_SECRET_BASE_SPOT_TREE_2 0x9C
+#define MB_9D 0x9D
+#define MB_BERRY_TREE_SOIL 0xA0
+#define MB_SECRET_BASE_PC 0xB0
+#define MB_B1 0xB1
+#define MB_B2 0xB2
+#define MB_B3 0xB3
+#define MB_B4 0xB4
+#define MB_B5 0xB5
+#define MB_B6 0xB6
+#define MB_B7 0xB7
+#define MB_B8 0xB8
+#define MB_B9 0xB9
+#define MB_BA 0xBA
+#define MB_BB 0xBB
+#define MB_BC 0xBC
+#define MB_BD 0xBD
+#define MB_BE 0xBE
+#define MB_BF 0xBF
+#define MB_BED 0xC0
+#define MB_C1 0xC1
+#define MB_C2 0xC2
+#define MB_C3 0xC3
+#define MB_C4 0xC4
+#define MB_C5 0xC5
+#define MB_C6 0xC6
+#define MB_C7 0xC7
+#define MB_C8 0xC8
+#define MB_C9 0xC9
+#define MB_CA 0xCA
+#define MB_CB 0xCB
+#define MB_CC 0xCC
+#define MB_CD 0xCD
+#define MB_CE 0xCE
+#define MB_CF 0xCF
+#define MB_MUDDY_SLOPE 0xD0
+#define MB_BUMPY_SLOPE 0xD1
+#define MB_CRACKED_FLOOR 0xD2
+#define MB_ISOLATED_VERTICAL_RAIL 0xD3
+#define MB_ISOLATED_HORIZONTAL_RAIL 0xD4
+#define MB_VERTICAL_RAIL 0xD5
+#define MB_HORIZONTAL_RAIL 0xD6
+#define MB_PICTURE_BOOK_SHELF 0xE0
+#define MB_BOOKSHELF 0xE1
+#define MB_POKEMON_CENTER_BOOKSHELF 0xE2
+#define MB_VASE 0xE3
+#define MB_TRASH_CAN 0xE4
+#define MB_SHOP_SHELF 0xE5
+#define MB_BLUEPRINT 0xE6
+
+#endif // GUARD_METATILE_BEHAVIORS
diff --git a/include/money.h b/include/money.h
new file mode 100644
index 000000000..49015ee19
--- /dev/null
+++ b/include/money.h
@@ -0,0 +1,17 @@
+#ifndef GUARD_MONEY_H
+#define GUARD_MONEY_H
+
+bool8 IsEnoughMoney(u32, u32);
+void sub_80B79B8(u32 *, u32);
+void sub_80B79E0(u32 *, u32);
+void sub_80B79F8(u8 *buffer, u32 arg1, u8 arg2);
+void sub_80B7A94(u32 arg0, u8 arg1, u8 x, u8 y);
+void sub_80B7AEC(u32, u8 left, u8 top);
+void sub_80B7B34(void);
+void sub_80B7BEC(u32, u8, u8);
+void sub_80B7C14(u32, u8, u8);
+void RemoveMoneyLabelObject(u8, u8);
+bool8 sub_80B7CE8(void);
+void sub_80B7D0C(void);
+
+#endif // GUARD_MONEY_H
diff --git a/include/mori_debug_menu.h b/include/mori_debug_menu.h
new file mode 100644
index 000000000..f1dc0de93
--- /dev/null
+++ b/include/mori_debug_menu.h
@@ -0,0 +1,17 @@
+#ifndef GUARD_MORI_DEBUG_MENU_H
+#define GUARD_MORI_DEBUG_MENU_H
+
+bool8 sub_8083D4C(void);
+u8 MoriDebugMenu_SearchChild(u8 a1, u8 a2, u8 *ptr);
+s8 MoriDebugMenu_Egg(void);
+s8 MoriDebugMenu_MaleEgg(void);
+s8 MoriDebugMenu_1000Steps(void);
+s8 MoriDebugMenu_10000Steps(void);
+s8 MoriDebugMenu_MoveTutor(void);
+s8 MoriDebugMenu_BreedEgg(void);
+s8 MoriDebugMenu_LongName(void);
+s8 MoriDebugMenu_PokeblockCase(void);
+bool8 MoriDebugMenuProcessInput(void);
+s8 InitMoriDebugMenu(void);
+
+#endif // GUARD_MORI_DEBUG_MENU_H
diff --git a/include/mystery_event_menu.h b/include/mystery_event_menu.h
new file mode 100644
index 000000000..8801789d9
--- /dev/null
+++ b/include/mystery_event_menu.h
@@ -0,0 +1,6 @@
+#ifndef GUARD_MYSTERY_EVENT_MENU_H
+#define GUARD_MYSTERY_EVENT_MENU_H
+
+void CB2_InitMysteryEventMenu(void);
+
+#endif // GUARD_MYSTERY_EVENT_MENU_H
diff --git a/include/new_game.h b/include/new_game.h
new file mode 100644
index 000000000..62e83f8f0
--- /dev/null
+++ b/include/new_game.h
@@ -0,0 +1,16 @@
+#ifndef GUARD_NEW_GAME_H
+#define GUARD_NEW_GAME_H
+
+void write_word_to_mem(u32 var, u8 *dataPtr);
+void copy_word_to_mem(u8 *copyTo, u8 *copyFrom);
+void set_player_trainer_id(void);
+void SetDefaultOptions(void);
+void ClearPokedexFlags(void);
+void sub_8052DA8(void);
+void sub_8052DE4(void);
+void WarpToTruck(void);
+void ClearSav2(void);
+void sub_8052E4C(void);
+void NewGameInitData(void);
+
+#endif // GUARD_NEW_GAME_H
diff --git a/include/option_menu.h b/include/option_menu.h
new file mode 100644
index 000000000..b23a73c4c
--- /dev/null
+++ b/include/option_menu.h
@@ -0,0 +1,6 @@
+#ifndef GUARD_OPTION_MENU_H
+#define GUARD_OPTION_MENU_H
+
+void CB2_InitOptionMenu(void);
+
+#endif // GUARD_OPTION_MENU_H
diff --git a/include/palette.h b/include/palette.h
index de2cf0083..37fcb4d65 100644
--- a/include/palette.h
+++ b/include/palette.h
@@ -1,8 +1,6 @@
#ifndef GUARD_PALETTE_H
#define GUARD_PALETTE_H
-#include "global.h"
-
#define gPaletteFade_selectedPalettes (gPaletteFade.multipurpose1) // normal and fast fade
#define gPaletteFade_blendCnt (gPaletteFade.multipurpose1) // hardware fade
#define gPaletteFade_delay (gPaletteFade.multipurpose2) // normal and hardware fade
@@ -54,7 +52,7 @@ bool8 unref_sub_8073D3C(u32, u8, u8, u8, u16);
void unref_sub_8073D84(u8, u32 *);
void ResetPaletteStructByUid(u16);
void ResetPaletteStruct(u8);
-void ResetPaletteFadeControl();
+void ResetPaletteFadeControl(void);
void unref_sub_8074168(u16);
void unref_sub_8074194(u16);
void InvertPlttBuffer(u32);
diff --git a/include/play_time.h b/include/play_time.h
index ac64b62fb..49091f4b1 100644
--- a/include/play_time.h
+++ b/include/play_time.h
@@ -1,9 +1,10 @@
#ifndef GUARD_PLAY_TIME_H
#define GUARD_PLAY_TIME_H
-void PlayTimeCounter_Reset();
-void PlayTimeCounter_Start();
-void PlayTimeCounter_Stop();
-void PlayTimeCounter_Update();
+void PlayTimeCounter_Reset(void);
+void PlayTimeCounter_Start(void);
+void PlayTimeCounter_Stop(void);
+void PlayTimeCounter_Update(void);
+void PlayTimeCounter_SetToMax(void);
#endif // GUARD_PLAY_TIME_H
diff --git a/include/pokedex.h b/include/pokedex.h
new file mode 100644
index 000000000..1ac4e8c33
--- /dev/null
+++ b/include/pokedex.h
@@ -0,0 +1,158 @@
+#ifndef GUARD_POKEDEX_H
+#define GUARD_POKEDEX_H
+
+#include "sprite.h"
+
+struct PokedexListItem
+{
+ u16 dexNum;
+ u16 seen:1;
+ u16 owned:1;
+};
+
+struct PokedexView
+{
+ struct PokedexListItem unk0[386];
+ u16 unk608;
+ u8 unk60A_1:1;
+ u8 unk60A_2:1;
+ u8 unk60B;
+ u16 unk60C;
+ u16 selectedPokemon;
+ u16 unk610;
+ u16 dexMode; //National or Hoenn
+ u16 unk614;
+ u16 dexOrder;
+ u16 unk618;
+ u16 unk61A;
+ u16 unk61C;
+ u16 unk61E[4];
+ u16 unk626; //sprite id of selected Pokemon
+ u16 unk628;
+ u16 unk62A;
+ u8 unk62C;
+ u8 unk62D;
+ u8 unk62E;
+ u8 unk62F;
+ s16 unk630;
+ s16 unk632;
+ u16 unk634;
+ u16 unk636;
+ u16 unk638;
+ u16 unk63A[4];
+ u8 filler642[8];
+ u8 unk64A;
+ u8 unk64B;
+ u8 unk64C_1:1;
+ u8 selectedScreen;
+ u8 unk64E;
+ u8 unk64F;
+ u8 menuIsOpen; //menuIsOpen
+ u8 unk651;
+ u16 menuCursorPos; //Menu cursor position
+ s16 menuY; //Menu Y position (inverted because we use REG_BG0VOFS for this)
+ u8 unk656[8];
+ u8 unk65E[8];
+};
+
+void sub_808C02C(void);
+void sub_808C0A0(void);
+void sub_808C0B8(void);
+void ClearPokedexView(struct PokedexView *pokedexView);
+void CB2_InitPokedex(void);
+u8 unref_sub_808C540(void (*func)(u8));
+void MainCB(void);
+void Task_PokedexShowMainScreen(u8 taskId);
+void Task_PokedexMainScreen(u8 taskId);
+void sub_808C898(u8 taskId);
+void Task_PokedexMainScreenMenu(u8 taskId);
+void sub_808CA64(u8 taskId);
+void sub_808CAE4(u8 taskId);
+void sub_808CB8C(u8 taskId);
+void Task_ClosePokedex(u8 taskId);
+void sub_808CCC4(u8 taskId);
+void Task_PokedexResultsScreen(u8 taskId);
+void sub_808CEF8(u8 taskId);
+void Task_PokedexResultsScreenMenu(u8 taskId);
+void sub_808D118(u8 taskId);
+void sub_808D198(u8 taskId);
+void Task_PokedexResultsScreenReturnToMainScreen(u8 taskId);
+void Task_PokedexResultsScreenExitPokedex(u8 taskId);
+bool8 sub_808D344(u8 a);
+void sub_808D640(void);
+void SortPokedex(u8 dexMode, u8 sortMode);
+void sub_808DBE8(u8 a, u16 b, u16 c);
+void sub_808DEB0(u16 a, u8 b, u8 c, u16 d);
+void sub_808DF88(u16 a, u8 b, u8 c, u16 d);
+u8 sub_808DFE4(u16 a, u8 b, u8 c);
+void sub_808E090(u8 a, u8 b, u16 c);
+void sub_808E0CC(u16 a, u16 b);
+bool8 sub_808E208(u8 a, u8 b, u8 c);
+void sub_808E398(u8 a, u16 b);
+u16 sub_808E48C(u16 a, u16 b);
+void sub_808E6BC(void);
+u8 sub_808E71C(void);
+u8 sub_808E82C(void);
+u16 sub_808E888(u16 a1);
+u32 sub_808E8C8(u16 a, u16 b, u16 c);
+void sub_808E978(u8 a);
+void nullsub_58(struct Sprite *sprite);
+void sub_808ED94(struct Sprite *sprite);
+void sub_808EDB8(struct Sprite *sprite);
+void sub_808EE28(struct Sprite *sprite);
+void sub_808EF38(struct Sprite *sprite);
+void sub_808EF8C(struct Sprite *sprite);
+void sub_808F08C(struct Sprite *sprite);
+void sub_808F0B4(struct Sprite *sprite);
+void sub_808F168(struct Sprite *sprite);
+u8 sub_808F210(struct PokedexListItem *item, u8 b);
+bool8 sub_808F250(u8 taskId);
+u8 sub_808F284(struct PokedexListItem *item, u8 b);
+void Task_InitPageScreenMultistep(u8 taskId);
+void Task_PageScreenProcessInput(u8 taskId);
+void sub_808F888(u8 taskId);
+void Task_ClosePageScreen(u8 taskId);
+void Task_InitAreaScreenMultistep(u8 taskId);
+void Task_AreaScreenProcessInput(u8 taskId);
+void sub_808FA00(u8 taskId);
+void Task_InitCryScreenMultistep(u8 taskId);
+void Task_CryScreenProcessInput(u8 taskId);
+void sub_808FFBC(u8 taskId);
+void sub_8090040(u8 a);
+void Task_InitSizeScreenMultistep(u8 taskId);
+void Task_SizeScreenProcessInput(u8 taskId);
+void sub_8090498(u8 taskId);
+void sub_80904FC(u16 a);
+void sub_8090540(u16 a);
+void sub_8090584(u8 a, u16 b);
+void sub_8090644(u8 a, u16 b);
+u8 sub_809070C(u16 dexNum, u32 b, u32 c);
+
+// ASM
+void sub_8090750(u8);
+void sub_8090A3C(u8);
+
+void sub_8090C68(void);
+u8 *GetPokemonCategory(u16);
+
+bool8 sub_8090D90(u16, u8);
+u16 GetNationalPokedexCount(u8);
+u16 GetHoennPokedexCount(u8);
+bool8 sub_8090FC0(void);
+u16 sub_8090FF4(void);
+void sub_8091060(u16);
+void sub_8091154(u16 order, int i, int i1);
+void sub_80911C8(u16 num, int i, int i1);
+void sub_8091260(u16 num, int i, int i1, int i2);
+void sub_8091304(u8 name[12], int i, int i1);
+
+void sub_8091458(u16 height, int i, int i1);
+void sub_8091564(u16 weight, int i, int i1);
+void sub_8091738(u16, u16, u16);
+void sub_80917CC(int i, int i1);
+u16 sub_8091818(u8, u16, u16, u16);
+
+u16 sub_80918EC(u16 a, s16 b, s16 c, u16 d); //Not sure of return type
+u8 sub_8091A4C(u8 gender, int i, int i1, int i2);
+
+#endif // GUARD_POKEDEX_H
diff --git a/include/pokemon.h b/include/pokemon.h
index 450a8174f..10eb05757 100644
--- a/include/pokemon.h
+++ b/include/pokemon.h
@@ -1,8 +1,6 @@
#ifndef GUARD_POKEMON_H
#define GUARD_POKEMON_H
-#include "global.h"
-
#define MON_DATA_PERSONALITY 0
#define MON_DATA_OT_ID 1
#define MON_DATA_NICKNAME 2
@@ -97,6 +95,53 @@
#define MON_FEMALE 0xFE
#define MON_GENDERLESS 0xFF
+#define TYPE_NORMAL 0x00
+#define TYPE_FIGHTING 0x01
+#define TYPE_FLYING 0x02
+#define TYPE_POISON 0x03
+#define TYPE_GROUND 0x04
+#define TYPE_ROCK 0x05
+#define TYPE_BUG 0x06
+#define TYPE_GHOST 0x07
+#define TYPE_STEEL 0x08
+#define TYPE_MYSTERY 0x09
+#define TYPE_FIRE 0x0a
+#define TYPE_WATER 0x0b
+#define TYPE_GRASS 0x0c
+#define TYPE_ELECTRIC 0x0d
+#define TYPE_PSYCHIC 0x0e
+#define TYPE_ICE 0x0f
+#define TYPE_DRAGON 0x10
+#define TYPE_DARK 0x11
+
+enum {
+ NATURE_HARDY,
+ NATURE_LONELY,
+ NATURE_BRAVE,
+ NATURE_ADAMANT,
+ NATURE_NAUGHTY,
+ NATURE_BOLD,
+ NATURE_DOCILE,
+ NATURE_RELAXED,
+ NATURE_IMPISH,
+ NATURE_LAX,
+ NATURE_TIMID,
+ NATURE_HASTY,
+ NATURE_SERIOUS,
+ NATURE_JOLLY,
+ NATURE_NAIVE,
+ NATURE_MODEST,
+ NATURE_MILD,
+ NATURE_QUIET,
+ NATURE_BASHFUL,
+ NATURE_RASH,
+ NATURE_CALM,
+ NATURE_GENTLE,
+ NATURE_SASSY,
+ NATURE_CAREFUL,
+ NATURE_QUIRKY,
+};
+
struct PokemonSubstruct0
{
u16 species;
@@ -130,41 +175,41 @@ struct PokemonSubstruct2
struct PokemonSubstruct3
{
- u8 pokerus;
- u8 metLocation;
+ /* 0x00 */ u8 pokerus;
+ /* 0x01 */ u8 metLocation;
- u16 metLevel:7;
- u16 metGame:4;
- u16 pokeball:4;
- u16 otGender:1;
+ /* 0x02 */ u16 metLevel:7;
+ /* 0x02 */ u16 metGame:4;
+ /* 0x03 */ u16 pokeball:4;
+ /* 0x03 */ u16 otGender:1;
- u32 hpIV:5;
- u32 attackIV:5;
- u32 defenseIV:5;
- u32 speedIV:5;
- u32 spAttackIV:5;
- u32 spDefenseIV:5;
- u32 isEgg:1;
- u32 altAbility:1;
+ /* 0x04 */ u32 hpIV:5;
+ /* 0x04 */ u32 attackIV:5;
+ /* 0x05 */ u32 defenseIV:5;
+ /* 0x05 */ u32 speedIV:5;
+ /* 0x05 */ u32 spAttackIV:5;
+ /* 0x06 */ u32 spDefenseIV:5;
+ /* 0x07 */ u32 isEgg:1;
+ /* 0x07 */ u32 altAbility:1;
- u32 coolRibbon:3;
- u32 beautyRibbon:3;
- u32 cuteRibbon:3;
- u32 smartRibbon:3;
- u32 toughRibbon:3;
- u32 championRibbon:1;
- u32 winningRibbon:1;
- u32 victoryRibbon:1;
- u32 artistRibbon:1;
- u32 effortRibbon:1;
- u32 giftRibbon1:1;
- u32 giftRibbon2:1;
- u32 giftRibbon3:1;
- u32 giftRibbon4:1;
- u32 giftRibbon5:1;
- u32 giftRibbon6:1;
- u32 giftRibbon7:1;
- u32 fatefulEncounter:5; // unused in Ruby/Sapphire, but the high bit must be set for Mew/Deoxys to obey in FR/LG/Emerald
+ /* 0x08 */ u32 coolRibbon:3;
+ /* 0x08 */ u32 beautyRibbon:3;
+ /* 0x08 */ u32 cuteRibbon:3;
+ /* 0x09 */ u32 smartRibbon:3;
+ /* 0x09 */ u32 toughRibbon:3;
+ /* 0x09 */ u32 championRibbon:1;
+ /* 0x0A */ u32 winningRibbon:1;
+ /* 0x0A */ u32 victoryRibbon:1;
+ /* 0x0A */ u32 artistRibbon:1;
+ /* 0x0A */ u32 effortRibbon:1;
+ /* 0x0A */ u32 giftRibbon1:1;
+ /* 0x0A */ u32 giftRibbon2:1;
+ /* 0x0A */ u32 giftRibbon3:1;
+ /* 0x0A */ u32 giftRibbon4:1;
+ /* 0x0B */ u32 giftRibbon5:1;
+ /* 0x0B */ u32 giftRibbon6:1;
+ /* 0x0B */ u32 giftRibbon7:1;
+ /* 0x0B */ u32 fatefulEncounter:5; // unused in Ruby/Sapphire, but the high bit must be set for Mew/Deoxys to obey in FR/LG/Emerald
};
union PokemonSubstruct
@@ -327,6 +372,8 @@ struct PokemonStorage
{
u8 currentBox;
struct BoxPokemon boxes[14][30];
+ u8 boxNames[14][9];
+ u8 unkArray[14];
};
extern struct Pokemon gPlayerParty[6];
@@ -362,6 +409,8 @@ u16 sub_803B7C8(struct Pokemon *mon, u8 a2);
void DeleteFirstMoveAndGiveMoveToMon(struct Pokemon *mon, u16 move);
void DeleteFirstMoveAndGiveMoveToBoxMon(struct BoxPokemon *boxMon, u16 move);
+u8 sub_803C348(u8 a1);
+u8 sub_803C434(u8 a1);
u8 GetMonGender(struct Pokemon *mon);
u8 GetBoxMonGender(struct BoxPokemon *boxMon);
u8 GetGenderFromSpeciesAndPersonality(u16 species, u32 personality);
diff --git a/include/pokemon_size_record.h b/include/pokemon_size_record.h
new file mode 100644
index 000000000..3ccc597bb
--- /dev/null
+++ b/include/pokemon_size_record.h
@@ -0,0 +1,14 @@
+#ifndef GUARD_POKEMON_SIZE_RECORD_H
+#define GUARD_POKEMON_SIZE_RECORD_H
+
+void InitShroomishSizeRecord(void);
+void GetShroomishSizeRecordInfo(void);
+void CompareShroomishSize(void);
+
+void InitBarboachSizeRecord(void);
+void GetBarboachSizeRecordInfo(void);
+void CompareBarboachSize(void);
+
+void GiveGiftRibbonToParty(u8 index, u8 ribbonId);
+
+#endif // GUARD_POKEMON_SIZE_RECORD_H
diff --git a/include/record_mixing.h b/include/record_mixing.h
new file mode 100644
index 000000000..39cf5bd43
--- /dev/null
+++ b/include/record_mixing.h
@@ -0,0 +1,34 @@
+#ifndef GUARD_RECORD_MIXING_H
+#define GUARD_RECORD_MIXING_H
+
+#include <stddef.h>
+
+void sub_80B929C(void);
+void sub_80B92AC(void);
+void sub_80B93B0(u32 a);
+void sub_80B9450(u8 taskId);
+void sub_80B9484(u8 taskId);
+void sub_80B95F0(u8 taskId);
+void sub_80B97DC(u8 taskId);
+void Task_CopyRecvBuffer(u8 taskId);
+void sub_80B99B4(u8 taskId);
+void sub_80B99E8(u8 taskId);
+void sub_80B9A1C(u8 taskId);
+void *LoadPtrFromTaskData(u16 *ptr);
+void StorePtrInTaskData(void *ptr, u16 *data);
+u8 GetMultiplayerId_(void);
+u16 *GetPlayerRecvBuffer(u8 player);
+void sub_80B9A78(void);
+void sub_80B9A88(u8 *a);
+void sub_80B9B1C(u8 *a, size_t size, u8 index);
+void sub_80B9B70(u8 *a, size_t size, u8 index);
+u8 sub_80B9BBC(u16 *a);
+void sub_80B9BC4(u32 a, u32 b, u32 c, u32 d);
+u8 sub_80B9C4C(u8 *a);
+
+// ASM
+void sub_80B9C6C(void *, u32, u8, void *);
+void sub_80B9F3C(void *, u8);
+void sub_80BA00C(u8);
+
+#endif // GUARD_RECORD_MIXING_H
diff --git a/include/rom4.h b/include/rom4.h
new file mode 100644
index 000000000..0fe80a82b
--- /dev/null
+++ b/include/rom4.h
@@ -0,0 +1,228 @@
+#ifndef GUARD_ROM4_H
+#define GUARD_ROM4_H
+
+#include "sprite.h"
+
+struct UnkPlayerStruct
+{
+ u8 player_field_0;
+ u8 player_field_1;
+};
+
+struct LinkPlayerMapObject {
+ u8 active;
+ u8 linkPlayerId;
+ u8 mapObjId;
+ u8 mode;
+};
+
+// sub_8052F5C
+// flag_var_implications_of_teleport_
+// new_game
+// sub_8053014
+void sub_8053050(void);
+// sub_805308C
+void ResetGameStats(void);
+void IncrementGameStat(u8 index);
+u32 GetGameStat(u8 index);
+// SetGameStat
+// sub_8053154
+// sub_8053198
+void update_saveblock1_field_object_coords(u8, s16, s16);
+void update_saveblock1_field_object_movement_behavior(u8, u8);
+// mapdata_load_assets_to_gpu_and_full_redraw
+// get_mapdata_header
+// warp_shift
+// warp_set
+// warp_data_is_not_neg_1
+// get_mapheader_by_bank_and_number
+// warp1_get_mapheader
+// set_current_map_header_from_sav1_save_old_name
+// sub_805338C
+// sub_80533CC
+void warp_in(void);
+void warp1_set(s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y);
+// warp1_set_2
+// saved_warp2_set
+void saved_warp2_set_2(int unused, s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y);
+// copy_saved_warp2_bank_and_enter_x_to_warp1
+// sub_8053538
+void sub_8053570(void);
+void sub_8053588(u8);
+// sub_80535C4
+void sub_805363C(s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y);
+// sub_8053678
+void sub_8053690(s8, s8, s8, s8, s8);
+// warp1_set_to_warp2
+void sub_80536E4(s8, s8, s8, s8, s8);
+void sub_8053720(s16, s16);
+// sub_8053778
+// unref_sub_8053790
+// sub_80537CC
+void gpu_sync_bg_hide();
+// sub_8053818
+// sub_8053850
+// sub_80538B0
+// sub_80538D0
+// sub_80538F0
+// sub_8053994
+void player_avatar_init_params_reset(void);
+// walkrun_find_lowest_active_bit_in_bitfield
+// sub_8053AA8
+u8 sub_8053B00(struct UnkPlayerStruct *playerStruct, u16 a2, u8 a3);
+u8 sub_8053B60(struct UnkPlayerStruct *playerStruct, u8, u16, u8);
+u16 cur_mapdata_block_role_at_screen_center_acc_to_sav1(void);
+bool32 IsBikingAllowedByMap(void);
+void sub_8053C98(void);
+void sub_8053CE4(s32 a1);
+u8 sav1_get_flash_used_on_map(void);
+void sub_8053D14(u16);
+// sub_8053D30
+// sub_8053D6C
+// sub_8053D9C
+// sav1_map_get_music
+// warp1_target_get_music
+// call_map_music_set_to_zero
+// sub_8053E90
+void sav1_set_battle_music_maybe(u16);
+void sav1_reset_battle_music_maybe(void);
+void sub_8053F0C(void);
+void sub_8053F84(void);
+void sub_8053FB0(u16);
+// is_warp1_light_level_8_or_9
+// sub_8053FF8
+// sub_8054034
+// sub_8054044
+// sub_8054050
+// sub_80540D0
+void sub_8054164(void);
+u8 get_map_light_level_by_bank_and_number(s8 mapGroup, s8 mapNum);
+// get_map_light_level_from_warp
+u8 sav1_map_get_light_level(void);
+// get_map_light_from_warp0
+bool8 is_light_level_1_2_3_5_or_6(u8 a1);
+// is_light_level_1_2_3_or_6
+u8 is_light_level_8_or_9(u8);
+// unref_sub_8054260
+u8 sav1_map_get_name();
+// sav1_map_get_battletype
+// ResetSafariZoneFlag_
+bool32 is_c1_link_related_active(void);
+// c1_overworld_normal
+// c1_overworld
+// c2_overworld_basic
+// sub_8054398
+void c2_overworld(void);
+// set_callback1
+// sub_80543DC
+// sub_80543E8
+void CB2_NewGame(void);
+void CB2_WhiteOut(void);
+void CB2_LoadMap(void);
+void CB2_LoadMap2(void);
+// sub_8054534
+// sub_8054588
+void c2_80567AC(void);
+void c2_exit_to_overworld_2_switch(void);
+void c2_exit_to_overworld_2_local(void);
+void c2_exit_to_overworld_2_link(void);
+// sub_805465C
+void sub_805469C(void);
+// sub_80546B8
+void c2_exit_to_overworld_1_continue_scripts_restart_music(void);
+void sub_80546F0(void);
+// sub_805470C
+void CB2_ContinueSavedGame(void);
+void FieldClearVBlankHBlankCallbacks(void);
+void SetFieldVBlankCallback(void);
+void VBlankCB_Field(void);
+// sub_8054814
+bool32 sub_805483C(u8 *);
+bool32 sub_805493C(u8 *, u32);
+bool32 sub_8054A4C(u8 *);
+bool32 sub_8054A9C(u8 *a1);
+void do_load_map_stuff_loop(u8 *a1);
+void sub_8054BA8(void);
+void sub_8054C2C(void);
+void sub_8054C54(void);
+void sub_8054D4C(u32 a1);
+void sub_8054D90(void);
+void mli4_mapscripts_and_other(void);
+void sub_8054E20(void);
+void sub_8054E34(void);
+void sub_8054E60(void);
+void sub_8054E7C(void);
+void sub_8054E98(void);
+void sub_8054EC8(void);
+void sub_8054F48(void);
+void sub_8054F70(void);
+// sub_8054F88
+// sub_8054FC0
+// sub_8054FF8
+// sub_8055218
+// sub_8055280
+// sub_80552B0
+u16 sub_805530C(u16);
+void sub_8055340(u16 *);
+void sub_8055354(void);
+u16 sub_8055390(u32);
+// sub_80553E0
+u16 sub_80553E4(u32);
+u16 sub_8055408(u32);
+u16 sub_8055438(u32);
+// sub_8055468
+// sub_805546C
+// sub_80554A4
+// sub_80554B8
+// sub_80554BC
+// sub_80554E4
+// sub_80554F8
+// unref_sub_8055568
+// sub_8055574
+u16 sub_8055588(void);
+// sub_805559C
+void sub_80555B0(int linkPlayerId, int a2, struct UnkStruct_8054FF8 *a3);
+bool32 sub_8055618(struct UnkStruct_8054FF8 *);
+bool32 sub_8055630(struct UnkStruct_8054FF8 *);
+u8 *sub_8055648(struct UnkStruct_8054FF8 *);
+bool32 sub_8055660(struct UnkStruct_8054FF8 *);
+u8 *sub_805568C(struct UnkStruct_8054FF8 *);
+u16 sub_8055758(u8 *);
+void sub_80557E8(void);
+void sub_80557F4(void);
+void sub_8055808(u8 *);
+void sub_8055824(void);
+void sub_8055840(u8 *);
+void sub_805585C(void);
+bool32 sub_8055870(void);
+u32 sub_80558AC(void);
+u32 sub_8055910(void);
+u32 sub_8055940(void);
+// ZeroLinkPlayerMapObject
+// strange_npc_table_clear
+// ZeroMapObject
+void SpawnLinkPlayerMapObject(u8, s16, s16, u8);
+void InitLinkPlayerMapObjectPos(struct MapObject *, s16, s16);
+// unref_sub_8055A6C
+// unref_sub_8055A9C
+u8 sub_8055AE8(u8);
+void sub_8055B08(u8, u16 *, u16 *);
+u8 sub_8055B30(u8);
+u8 sub_8055B50(u8);
+// unref_sub_8055B74
+u8 GetLinkPlayerIdAt(s16, s16);
+void sub_8055BFC(u8, u8);
+// sub_8055C68
+// sub_8055C88
+// sub_8055C8C
+// sub_8055CAC
+// sub_8055CB0
+// sub_8055D18
+// sub_8055D30
+// sub_8055D38
+u8 npc_something3(u8, u8);
+u8 LinkPlayerDetectCollision(u8, u8, s16, s16);
+void CreateLinkPlayerSprite(u8);
+void SpriteCB_LinkPlayer(struct Sprite *);
+
+#endif // GUARD_ROM4_H
diff --git a/include/rtc.h b/include/rtc.h
index 4c9d06d31..fdc5ad709 100644
--- a/include/rtc.h
+++ b/include/rtc.h
@@ -1,7 +1,7 @@
#ifndef GUARD_RTC_UTIL_H
#define GUARD_RTC_UTIL_H
-#include "global.h"
+#include "siirtc.h"
#define RTC_INIT_ERROR 0x0001
#define RTC_INIT_WARNING 0x0002
@@ -19,18 +19,30 @@
extern struct Time gLocalTime;
-void RtcInit();
-u16 RtcGetErrorStatus();
-void RtcReset();
+void RtcDisableInterrupts(void);
+void RtcRestoreInterrupts(void);
+u32 ConvertBcdToBinary(u8 bcd);
+bool8 IsLeapYear(u8 year);
+u16 ConvertDateToDayCount(u8 year, u8 month, u8 day);
+u16 RtcGetDayCount(struct SiiRtcInfo *rtc);
+void RtcInit(void);
+u16 RtcGetErrorStatus(void);
+void RtcGetInfo(struct SiiRtcInfo *rtc);
+void RtcGetDateTime(struct SiiRtcInfo *rtc);
+void RtcGetStatus(struct SiiRtcInfo *rtc);
+void RtcGetRawInfo(struct SiiRtcInfo *rtc);
+u16 RtcCheckInfo(struct SiiRtcInfo *rtc);
+void RtcReset(void);
void FormatDecimalTime(u8 *dest, s32 hour, s32 minute, s32 second);
void FormatHexTime(u8 *dest, s32 hour, s32 minute, s32 second);
void FormatHexRtcTime(u8 *dest);
void FormatDecimalDate(u8 *dest, s32 year, s32 month, s32 day);
void FormatHexDate(u8 *dest, s32 year, s32 month, s32 day);
-void RtcCalcLocalTime();
+void RtcCalcTimeDifference(struct SiiRtcInfo *rtc, struct Time *result, struct Time *t);
+void RtcCalcLocalTime(void);
void RtcInitLocalTimeOffset(s32 hour, s32 minute);
void RtcCalcLocalTimeOffset(s32 days, s32 hours, s32 minutes, s32 seconds);
void CalcTimeDifference(struct Time *result, struct Time *t1, struct Time *t2);
-u32 RtcGetMinuteCount();
+u32 RtcGetMinuteCount(void);
#endif // GUARD_RTC_UTIL_H
diff --git a/include/safari_zone.h b/include/safari_zone.h
new file mode 100644
index 000000000..f491be2f1
--- /dev/null
+++ b/include/safari_zone.h
@@ -0,0 +1,21 @@
+#ifndef GUARD_SAFARI_ZONE_H
+#define GUARD_SAFARI_ZONE_H
+
+bool32 GetSafariZoneFlag(void);
+void SetSafariZoneFlag(void);
+void ResetSafariZoneFlag(void);
+
+void EnterSafariMode(void);
+void ExitSafariMode(void);
+
+bool8 SafariZoneTakeStep(void);
+void SafariZoneRetirePrompt(void);
+void sub_80C824C(void);
+
+void SafariZoneGetPokeblockNameInFeeder(void);
+struct Pokeblock *unref_sub_80C8418(void);
+struct Pokeblock *SafariZoneGetActivePokeblock(void);
+void SafariZoneActivatePokeblockFeeder(u8 pokeblock_index);
+bool8 unref_sub_80C853C(void);
+
+#endif // GUARD_SAFARI_ZONE_H
diff --git a/include/save.h b/include/save.h
new file mode 100644
index 000000000..976af77c6
--- /dev/null
+++ b/include/save.h
@@ -0,0 +1,60 @@
+#ifndef GUARD_SAVE_H
+#define GUARD_SAVE_H
+
+struct SaveSectionLocation
+{
+ void *data;
+ u16 size;
+};
+
+struct SaveSection
+{
+ u8 data[0xFF4];
+ u16 id;
+ u16 checksum;
+ u32 unknown;
+ u32 counter;
+};
+
+struct UnkSaveSection
+{
+ u8 data[0xFF4];
+ u32 unknown;
+};
+
+void ClearSaveData(void);
+void sub_81251B8(void);
+bool32 sub_81251D4(u8 op, u8 bit);
+u8 save_write_to_flash(u16 a1, struct SaveSectionLocation *a2);
+u8 sub_81252D8(u16, struct SaveSectionLocation *);
+u8 sub_81253C8(u8 sector, u8 *data, u16 size);
+u8 sub_8125440(u8, u8 *);
+u32 sub_812546C(struct SaveSectionLocation *a1);
+u32 sub_81254C8(struct SaveSectionLocation *a1);
+u8 sub_812550C(u16 a1, struct SaveSectionLocation *a2);
+u8 sub_812556C(u16 a1, struct SaveSectionLocation *a2);
+u8 sub_81255B8(u16, struct SaveSectionLocation *);
+u8 sub_8125758(u16 a1, struct SaveSectionLocation *a2);
+u8 sub_81257F0(u16 a1, struct SaveSectionLocation *a2);
+u8 sub_812587C(u16 a1, struct SaveSectionLocation *a2);
+u8 sub_81258BC(u16, struct SaveSectionLocation *);
+u8 sub_8125974(struct SaveSectionLocation *);
+u8 sub_8125B88(u8 a1, u8 *data, u16 size);
+u8 sub_8125BF8(u8, struct SaveSection *);
+u16 sub_8125C10(void *, u16);
+u8 sub_8125C3C(u8 a1);
+u8 sub_8125D44(u8 a1);
+u8 sub_8125D80(void);
+bool8 sub_8125DA8(void);
+u8 sub_8125DDC(void);
+u8 sub_8125E04(void);
+u8 sub_8125E2C(void);
+u8 sub_8125E6C(void);
+u8 sub_8125EC8(u8 a1);
+bool8 unref_sub_8125F4C(struct UnkSaveSection *a1);
+u8 unref_sub_8125FA0(void);
+u8 unref_sub_8125FF0(u8 *data, u16 size);
+u8 unref_sub_8126068(u8 sector, u8 *data, u32 size);
+u8 unref_sub_8126080(u8 sector, u8 *data);
+
+#endif // GUARD_SAVE_H
diff --git a/include/save_failed_screen.h b/include/save_failed_screen.h
new file mode 100644
index 000000000..5a097fb3f
--- /dev/null
+++ b/include/save_failed_screen.h
@@ -0,0 +1,6 @@
+#ifndef GUARD_SAVE_FAILED_SCREEN_H
+#define GUARD_SAVE_FAILED_SCREEN_H
+
+void DoSaveFailedScreen(u8);
+
+#endif // GUARD_SAVE_FAILED_SCREEN_H
diff --git a/include/save_menu_util.h b/include/save_menu_util.h
new file mode 100644
index 000000000..560a39d89
--- /dev/null
+++ b/include/save_menu_util.h
@@ -0,0 +1,16 @@
+#ifndef GUARD_SAVE_MENU_UTIL_H
+#define GUARD_SAVE_MENU_UTIL_H
+
+void HandleDrawSaveWindowInfo(s16 left, s16 top);
+void sub_80946C8(u16 left, u16 top);
+u8 sub_809473C(void);
+void PrintSavePlayerName(s16 x, s16 y);
+void PrintSaveMapName(s16 x, s16 y);
+void PrintSaveBadges(s16 x, s16 y);
+void PrintSavePokedexCount(s16 x, s16 y);
+void PrintSavePlayTime(s16 x, s16 y);
+u8 GetBadgeCount(void);
+u16 GetPokedexSeenCount(void);
+void FormatPlayTime(char *playtime, u16 hours, u16 minutes, bool16 colon);
+
+#endif // GUARD_SAVE_MENU_UTIL_H
diff --git a/include/script.h b/include/script.h
index 9b165bed2..a4c7dd575 100644
--- a/include/script.h
+++ b/include/script.h
@@ -39,7 +39,7 @@ void ScriptContext1_Init(void);
bool8 ScriptContext2_RunScript(void);
void ScriptContext1_SetupScript(u8 *ptr);
void ScriptContext1_Stop(void);
-void EnableBothScriptContexts();
+void EnableBothScriptContexts(void);
void ScriptContext2_RunNewScript(u8 *ptr);
u8 *mapheader_get_tagged_pointer(u8 tag);
void mapheader_run_script_by_tag(u8 tag);
diff --git a/include/siirtc.h b/include/siirtc.h
index 5864f95b8..de4fd634d 100644
--- a/include/siirtc.h
+++ b/include/siirtc.h
@@ -39,10 +39,10 @@ struct SiiRtcInfo
u8 alarmMinute;
};
-void SiiRtcUnprotect();
-void SiiRtcProtect();
-u8 SiiRtcProbe();
-bool8 SiiRtcReset();
+void SiiRtcUnprotect(void);
+void SiiRtcProtect(void);
+u8 SiiRtcProbe(void);
+bool8 SiiRtcReset(void);
bool8 SiiRtcGetStatus(struct SiiRtcInfo *rtc);
bool8 SiiRtcSetStatus(struct SiiRtcInfo *rtc);
bool8 SiiRtcGetDateTime(struct SiiRtcInfo *rtc);
diff --git a/include/species.h b/include/species.h
index 5802f782d..e91d9050a 100644
--- a/include/species.h
+++ b/include/species.h
@@ -388,5 +388,6 @@
#define SPECIES_JIRACHI 0x199
#define SPECIES_DEOXYS 0x19a
#define SPECIES_CHIMECHO 0x19b
+#define SPECIES_EGG 0x19c
#endif // GUARD_SPECIES_H
diff --git a/include/sprite.h b/include/sprite.h
index 2da099d59..13d94e9f3 100644
--- a/include/sprite.h
+++ b/include/sprite.h
@@ -130,13 +130,13 @@ struct SpriteTemplate
struct Sprite
{
- struct OamData oam;
- union AnimCmd **anims;
- struct SpriteFrameImage *images;
- union AffineAnimCmd **affineAnims;
- struct SpriteTemplate *template;
- struct SubspriteTable *subspriteTables;
- void (*callback)(struct Sprite *);
+ /*0x00*/ struct OamData oam;
+ /*0x08*/ union AnimCmd **anims;
+ /*0x0C*/ struct SpriteFrameImage *images;
+ /*0x10*/ union AffineAnimCmd **affineAnims;
+ /*0x14*/ const struct SpriteTemplate *template;
+ /*0x18*/ struct SubspriteTable *subspriteTables;
+ /*0x1C*/ void (*callback)(struct Sprite *);
/*0x20*/ struct Coords16 pos1;
/*0x24*/ struct Coords16 pos2;
@@ -179,10 +179,10 @@ struct Sprite
/*0x40*/ u16 sheetTileStart;
- u8 subspriteTableNum:6;
- u8 subspriteMode:2;
+ /*0x42*/ u8 subspriteTableNum:6;
+ u8 subspriteMode:2;
- u8 subpriority;
+ /*0x43*/ u8 subpriority;
};
extern s16 gSpriteCoordOffsetX;
@@ -193,8 +193,8 @@ extern struct Sprite gSprites[];
void ResetSpriteData(void);
void AnimateSprites(void);
void BuildOamBuffer(void);
-u8 CreateSprite(struct SpriteTemplate *template, s16 x, s16 y, u8 subpriority);
-u8 CreateSpriteAtEnd(struct SpriteTemplate *template, u16 x, u16 y, u8 subpriority);
+u8 CreateSprite(const struct SpriteTemplate *template, s16 x, s16 y, u8 subpriority);
+u8 CreateSpriteAtEnd(const struct SpriteTemplate *template, u16 x, u16 y, u8 subpriority);
u8 CreateInvisibleSprite(void (*callback)(struct Sprite *));
u8 CreateSpriteAndAnimate(struct SpriteTemplate *template, s16 x, s16 y, u8 subpriority);
void DestroySprite(struct Sprite *sprite);
@@ -236,8 +236,8 @@ u16 GetSpriteTileTagByTileStart(u16 start);
void RequestSpriteSheetCopy(struct SpriteSheet *sheet);
u16 LoadSpriteSheetDeferred(struct SpriteSheet *sheet);
void FreeAllSpritePalettes(void);
-u8 LoadSpritePalette(struct SpritePalette *palette);
-void LoadSpritePalettes(struct SpritePalette *palettes);
+u8 LoadSpritePalette(const struct SpritePalette *palette);
+void LoadSpritePalettes(const struct SpritePalette *palettes);
u8 AllocSpritePalette(u16 tag);
u8 IndexOfSpritePaletteTag(u16 tag);
u16 GetSpritePaletteTagByPaletteNum(u8 paletteNum);
@@ -245,5 +245,8 @@ void FreeSpritePaletteByTag(u16 tag);
void SetSubspriteTables(struct Sprite *sprite, struct SubspriteTable *subspriteTables);
bool8 AddSpriteToOamBuffer(struct Sprite *object, u8 *oamIndex);
bool8 AddSubspritesToOamBuffer(struct Sprite *sprite, struct OamData *destOam, u8 *oamIndex);
+void CopyToSprites(u8 *src);
+void CopyFromSprites(u8 *dest);
+u8 SpriteTileAllocBitmapOp(u16 bit, u8 op);
#endif // GUARD_SPRITE_H
diff --git a/include/start_menu.h b/include/start_menu.h
new file mode 100644
index 000000000..5169b3bf0
--- /dev/null
+++ b/include/start_menu.h
@@ -0,0 +1,11 @@
+#ifndef GUARD_STARTER_CHOOSE_H
+#define GUARD_STARTER_CHOOSE_H
+
+//Public functions
+void CreateStartMenuTask(void (*func)(u8));
+void sub_80712B4(u8 taskId);
+void sub_8071310(void);
+void InitSaveDialog(void);
+void sub_8071B28(void);
+
+#endif // GUARD_STARTER_CHOOSE_H
diff --git a/include/starter_choose.h b/include/starter_choose.h
new file mode 100644
index 000000000..4a7e0514c
--- /dev/null
+++ b/include/starter_choose.h
@@ -0,0 +1,13 @@
+#ifndef GUARD_STARTER_CHOOSE_H
+#define GUARD_STARTER_CHOOSE_H
+
+#include "sprite.h"
+
+u16 GetStarterPokemon(u16);
+void CB2_ChooseStarter(void);
+void nullsub_72(struct Sprite *sprite);
+void sub_810A62C(struct Sprite *sprite);
+void sub_810A68C(struct Sprite *sprite);
+void StarterPokemonSpriteAnimCallback(struct Sprite *sprite);
+
+#endif // GUARD_STARTER_CHOOSE_H
diff --git a/include/string_util.h b/include/string_util.h
index fd7d39045..c20965380 100644
--- a/include/string_util.h
+++ b/include/string_util.h
@@ -1,8 +1,6 @@
#ifndef GUARD_STRING_UTIL_H
#define GUARD_STRING_UTIL_H
-#include "global.h"
-
enum StringConvertMode
{
STR_CONV_MODE_LEFT_ALIGN,
diff --git a/include/task.h b/include/task.h
index a536bcab5..d2b2302cf 100644
--- a/include/task.h
+++ b/include/task.h
@@ -15,15 +15,15 @@ struct Task
extern struct Task gTasks[];
-void ResetTasks();
+void ResetTasks(void);
u8 CreateTask(TaskFunc func, u8 priority);
void DestroyTask(u8 taskId);
-void RunTasks();
+void RunTasks(void);
void TaskDummy(u8 taskId);
void SetTaskFuncWithFollowupFunc(u8 taskId, TaskFunc func, TaskFunc followupFunc);
void SwitchTaskToFollowupFunc(u8 taskId);
bool8 FuncIsActiveTask(TaskFunc func);
u8 FindTaskIdByFunc(TaskFunc func);
-u8 GetTaskCount();
+u8 GetTaskCount(void);
#endif // GUARD_TASK_H
diff --git a/include/text.h b/include/text.h
index d79611f85..99d346a23 100644
--- a/include/text.h
+++ b/include/text.h
@@ -1,14 +1,14 @@
#ifndef GUARD_TEXT_H
#define GUARD_TEXT_H
-#include "global.h"
-
#define CHAR_SPACE 0x00
#define CHAR_QUESTION_MARK 0xAC
#define CHAR_HYPHEN 0xAE
+#define CHAR_CURRENCY 0xB7
#define CHAR_COLON 0xF0
#define EXT_CTRL_CODE_BEGIN 0xFC // extended control code
#define PLACEHOLDER_BEGIN 0xFD // string placeholder
+#define CHAR_NEWLINE 0xFE
#define EOS 0xFF // end of string
struct WindowConfig
@@ -37,7 +37,7 @@ struct Window
{
u8 textMode;
u8 fontNum;
- u8 charset;
+ u8 language;
u8 foregroundColor;
u8 backgroundColor;
u8 shadowColor;
@@ -88,8 +88,8 @@ extern const struct WindowConfig gWindowConfig_81E6D54;
extern const struct WindowConfig gWindowConfig_81E6D70;
extern const struct WindowConfig gWindowConfig_81E6D8C;
extern const struct WindowConfig gWindowConfig_81E6DA8;
-extern const struct WindowConfig gWindowConfig_81E6DC4;
-extern const struct WindowConfig gWindowConfig_81E6DE0;
+extern const struct WindowConfig WindowConfig_TrainerCard_Back_Values;
+extern const struct WindowConfig WindowConfig_TrainerCard_Back_Labels;
extern const struct WindowConfig gWindowConfig_81E6DFC;
extern const struct WindowConfig gWindowConfig_81E6E18;
extern const struct WindowConfig gWindowConfig_81E6E34;
@@ -139,7 +139,7 @@ void SetUpWindowConfig(const struct WindowConfig *winConfig);
u16 InitWindowTileData(struct Window *win, u16 startOffset);
u32 MultistepInitWindowTileData(struct Window *win, u16 startOffset);
bool32 MultistepLoadFont(void);
-void InitWindowFromConfig(struct Window *win, struct WindowConfig *winConfig);
+void InitWindowFromConfig(struct Window *win, const struct WindowConfig *winConfig);
void InitWindow(struct Window *win, const u8 *text, u16 tileDataStartOffset, u8 left, u8 top);
void sub_8002E4C(struct Window *win, const u8 *text, u16 tileDataStartOffset, u8 left, u16 top, u32 a6);
void sub_8002E90(struct Window *win, const u8 *text);
diff --git a/include/text_window.h b/include/text_window.h
index f68db005a..6df3f7d33 100644
--- a/include/text_window.h
+++ b/include/text_window.h
@@ -1,15 +1,21 @@
#ifndef GUARD_TEXT_WINDOW_H
#define GUARD_TEXT_WINDOW_H
-#include "global.h"
+#include "text.h"
-u16 SetTextWindowBaseTileNum(u16);
-void LoadTextWindowGraphics(struct Window *);
-void LoadTextWindowGraphics_OverridePalSlot(struct Window *, u8);
-void LoadTextWindowGraphics_OverrideFrameType(struct Window *, u8);
+struct FrameGraphics
+{
+ u8 *tiles;
+ u16 *palette;
+};
+
+u16 SetTextWindowBaseTileNum(u16 baseTileNum);
+void LoadTextWindowGraphics(struct Window *win);
+void LoadTextWindowGraphics_OverridePalSlot(struct Window *win, u8 palSlot);
+void LoadTextWindowGraphics_OverrideFrameType(struct Window *win, u8 frameType);
void DrawTextWindow(struct Window *win, u8 left, u8 top, u8 right, u8 bottom);
const struct FrameGraphics *GetTextWindowFrameGraphics(u8 frameType);
-u16 SetMessageBoxBaseTileNum(u16);
+u16 SetMessageBoxBaseTileNum(u16 baseTileNum);
void unref_sub_80651DC(struct Window *, u8 *);
void DisplayMessageBox(struct Window *);
void DrawStandardMessageBox(struct Window *win);
diff --git a/include/tileset_anim.h b/include/tileset_anim.h
new file mode 100644
index 000000000..7556721d8
--- /dev/null
+++ b/include/tileset_anim.h
@@ -0,0 +1,30 @@
+#ifndef GUARD_TITLE_SCREEN_H
+#define GUARD_TITLE_SCREEN_H
+
+void sub_8072E74(void);
+void cur_mapheader_run_tileset_funcs_after_some_cpuset(void);
+void sub_8072ED0(void);
+void sub_8072EDC(void);
+void TilesetCB_General(void);
+void TilesetCB_Building(void);
+void TilesetCB_Petalburg(void);
+void TilesetCB_Rustboro(void);
+void TilesetCB_Dewford(void);
+void TilesetCB_Slateport(void);
+void TilesetCB_Mauville(void);
+void TilesetCB_Lavaridge(void);
+void TilesetCB_Fallarbor(void);
+void TilesetCB_Fortree(void);
+void TilesetCB_Lilycove(void);
+void TilesetCB_Mossdeep(void);
+void TilesetCB_EverGrande(void);
+void TilesetCB_Pacifidlog(void);
+void TilesetCB_Sootopolis(void);
+void TilesetCB_Underwater(void);
+void TilesetCB_SootopolisGym(void);
+void TilesetCB_Cave(void);
+void TilesetCB_EliteFour(void);
+void TilesetCB_MauvilleGym(void);
+void TilesetCB_BikeShop(void);
+
+#endif // GUARD_TITLE_SCREEN_H
diff --git a/include/title_screen.h b/include/title_screen.h
new file mode 100644
index 000000000..304ec0540
--- /dev/null
+++ b/include/title_screen.h
@@ -0,0 +1,13 @@
+#ifndef GUARD_TITLE_SCREEN_H
+#define GUARD_TITLE_SCREEN_H
+
+#include "sprite.h"
+
+void SpriteCallback_VersionBannerLeft(struct Sprite *sprite);
+void SpriteCallback_VersionBannerRight(struct Sprite *sprite);
+void SpriteCallback_PressStartCopyrightBanner(struct Sprite *sprite);
+void SpriteCallback_PokemonLogoShine(struct Sprite *sprite);
+
+void CB2_InitTitleScreen(void);
+
+#endif // GUARD_TITLE_SCREEN_H
diff --git a/include/trainer_card.h b/include/trainer_card.h
new file mode 100644
index 000000000..7269c0b20
--- /dev/null
+++ b/include/trainer_card.h
@@ -0,0 +1,52 @@
+#ifndef GUARD_TRAINER_CARD_H
+#define GUARD_TRAINER_CARD_H
+
+struct TrainerCard {
+ /*0x00*/ u8 gender;
+ /*0x01*/ u8 stars;
+ /*0x02*/ bool8 hasPokedex;
+ /*0x03*/ bool8 var_3;
+ /*0x04*/ bool8 var_4;
+ /*0x05*/ u8 var_5;
+ /*0x06*/ u16 firstHallOfFameA;
+ /*0x08*/ u16 firstHallOfFameB;
+ /*0x0A*/ u16 firstHallOfFameC;
+ /*0x0C*/ u16 pokedexSeen;
+ /*0x0E*/ u16 trainerId;
+ /*0x10*/ u16 playTimeHours;
+ /*0x12*/ u16 playTimeMinutes;
+ /*0x14*/ u16 linkBattleWins;
+ /*0x16*/ u16 linkBattleLosses;
+ /*0x18*/ u16 battleTowerWins;
+ /*0x1A*/ u16 battleTowerLosses;
+ /*0x1C*/ u16 contestsWithFriends;
+ /*0x1E*/ u16 pokeblocksWithFriends;
+ /*0x20*/ u16 pokemonTrades;
+ /*0x22*/ u16 var_22;
+ /*0x24*/ u32 money;
+ /*0x28*/ u16 var_28[4];
+ /*0x30*/ u8 playerName[8];
+};
+
+void sub_8093110(void (*)(void));
+void sub_8093130(u8, void (*)(void));
+void sub_8093390(struct TrainerCard *);
+u8 sub_80934C4(u8 id);
+
+// gUnknown_083B5EBC:: @ 83B5EBC
+bool8 sub_8093864();
+bool8 sub_80938A8();
+bool8 sub_80938CC();
+bool8 sub_8093918();
+bool8 sub_8093938();
+bool8 sub_8093954();
+bool8 sub_8093980();
+
+// gUnknown_083B5ED8:: @ 83B5ED8
+bool8 sub_8093AA0();
+bool8 sub_8093AF0();
+bool8 sub_8093C0C(struct TrainerCard *trainerCard);
+bool8 sub_8093C38();
+bool8 sub_8093D50(void);
+
+#endif // GUARD_TRAINER_CARD_H
diff --git a/include/trainer_see.h b/include/trainer_see.h
new file mode 100644
index 000000000..e4d1fe270
--- /dev/null
+++ b/include/trainer_see.h
@@ -0,0 +1,34 @@
+#ifndef GUARD_TRAINER_SEE_H
+#define GUARD_TRAINER_SEE_H
+
+#include "task.h"
+
+bool8 CheckTrainers(void);
+bool8 CheckTrainer(u8);
+u8 TrainerCanApproachPlayer(struct MapObject *);
+bool8 IsTrainerInRangeSouth(struct MapObject *trainerObj, s16 vision, s16 x, s16 y);
+bool8 IsTrainerInRangeNorth(struct MapObject *trainerObj, s16 vision, s16 x, s16 y);
+bool8 IsTrainerInRangeWest(struct MapObject *trainerObj, s16 vision, s16 x, s16 y);
+bool8 IsTrainerInRangeEast(struct MapObject *trainerObj, s16 vision, s16 x, s16 y);
+bool8 CheckPathBetweenTrainerAndPlayer(struct MapObject2 *, u8, u8);
+void sub_80842C8(struct MapObject *, u8);
+void sub_80842FC(void (*func)(u8));
+void RunTrainerSeeFuncList(u8);
+u8 sub_8084394(void);
+s8 sub_8084398(u8 taskId, struct Task *task, struct MapObject *trainerObj);
+s8 sub_80843DC(u8 taskId, struct Task *task, struct MapObject *trainerObj);
+s8 sub_808441C(u8 taskId, struct Task *task, struct MapObject *trainerObj);
+s8 sub_8084478(u8 taskId, struct Task *task, struct MapObject *trainerObj);
+s8 sub_8084534(u8 taskId, struct Task *task, struct MapObject *trainerObj);
+s8 sub_8084578(u8 taskId, struct Task *task, struct MapObject *trainerObj);
+s8 sub_80845AC(u8 taskId, struct Task *task, struct MapObject *trainerObj);
+s8 sub_80845C8(u8 taskId, struct Task *task, struct MapObject *trainerObj);
+s8 sub_80845FC(u8 taskId, struct Task *task, struct MapObject *trainerObj);
+s8 sub_8084654(u8 taskId, struct Task *task, struct MapObject *trainerObj);
+s8 sub_80846C8(u8 taskId, struct Task *task, struct MapObject *trainerObj);
+void sub_80846E4(u8 taskId);
+void sub_8084794(u32 var);
+void sub_80847C8(void);
+void sub_80847D8(u8);
+
+#endif // GUARD_TRAINER_SEE_H
diff --git a/include/truck_scene.h b/include/truck_scene.h
new file mode 100644
index 000000000..f55a4ced7
--- /dev/null
+++ b/include/truck_scene.h
@@ -0,0 +1,13 @@
+#ifndef GUARD_TRUCK_SCENE_H
+#define GUARD_TRUCK_SCENE_H
+
+s32 GetTruckCameraBobbingY(int a1);
+s32 GetTruckBoxMovement(int a1);
+void Task_Truck1(u8 taskId);
+void Task_Truck2(u8 taskId);
+void Task_Truck3(u8 taskId);
+void Task_HandleTruckSequence(u8 taskId);
+void ExecuteTruckSequence(void);
+void EndTruckSequence(void);
+
+#endif // GUARD_TRUCK_SCENE_H
diff --git a/include/var.h b/include/var.h
deleted file mode 100644
index c76b8c411..000000000
--- a/include/var.h
+++ /dev/null
@@ -1,11 +0,0 @@
-#ifndef GUARD_VAR_H
-#define GUARD_VAR_H
-
-#include "vars.h"
-
-u16 *GetVarPointer(u16 id);
-u16 VarGet(u16 id);
-bool8 VarSet(u16 id, u16 value);
-u8 VarGetFieldObjectGraphicsId(u8 id);
-
-#endif // GUARD_VAR_H
diff --git a/include/vars.h b/include/vars.h
index db6f097b7..4661bbd52 100644
--- a/include/vars.h
+++ b/include/vars.h
@@ -1,6 +1,24 @@
#ifndef GUARD_VARS_H
#define GUARD_VARS_H
-#define VAR_REPEL_STEP_COUNT 0x4021
+#define VAR_RECYCLE_GOODS 0x4020
+#define VAR_REPEL_STEP_COUNT 0x4021
+
+#define VAR_FIRST_POKE 0x4023
+#define VAR_MIRAGE_RND_H 0x4024
+#define VAR_MIRAGE_RND_L 0x4025
+
+#define VAR_RESET_RTC_ENABLE 0x402C
+
+#define VAR_DAYS 0x4040
+
+#define VAR_POKELOT_PRIZE 0x4045
+#define VAR_NATIONAL_DEX 0x4046
+#define VAR_SHROOMISH_SIZE_RECORD 0x4047
+
+#define VAR_POKELOT_RND1 0x404B
+#define VAR_POKELOT_RND2 0x404C
+
+#define VAR_BARBOACH_SIZE_RECORD 0x404F
#endif // GUARD_VARS_H
diff --git a/include/wallclock.h b/include/wallclock.h
new file mode 100644
index 000000000..c869e3941
--- /dev/null
+++ b/include/wallclock.h
@@ -0,0 +1,14 @@
+#ifndef GUARD_WALLCLOCK_H
+#define GUARD_WALLCLOCK_H
+
+#include "sprite.h"
+
+void CB2_StartWallClock(void);
+void CB2_ViewWallClock(void);
+
+void sub_810B05C(struct Sprite *sprite);
+void sub_810B0F4(struct Sprite *sprite);
+void sub_810B18C(struct Sprite *sprite);
+void sub_810B230(struct Sprite *sprite);
+
+#endif // GUARD_WALLCLOCK_H
diff --git a/include/weather.h b/include/weather.h
new file mode 100644
index 000000000..af07c970d
--- /dev/null
+++ b/include/weather.h
@@ -0,0 +1,43 @@
+#ifndef GUARD_WEATHER_H
+#define GUARD_WEATHER_H
+
+void sub_807C828(void);
+void DoWeatherEffect(u8 effect);
+void sub_807C988(u8 effect);
+void sub_807C9B4(u8 effect);
+void sub_807C9E4(u8);
+void sub_807CA34(u8);
+void sub_807CAE8(void);
+void nullsub_38(void);
+u32 sub_807CB0C(void);
+void sub_807CB10(void);
+void sub_807CC24(void);
+void sub_807CCAC(void);
+u8 sub_807CDC4(void);
+u8 sub_807CE24(void);
+u8 sub_807CE7C(void);
+void nullsub_39(void);
+
+// ASM
+void sub_807CEBC(u8, u8, s8);
+void sub_807D1BC(u8, u8, u8, u8, u16);
+void sub_807D304(int, u8, u16);
+void sub_807D424(u8, u16);
+// ...
+void fade_screen(u8, u8);
+// ...
+void sub_807D78C(u8 tag);
+void sub_807D874(u8);
+// ...
+void sub_807DB64(u8, u8);
+// ...
+void PlayRainSoundEffect(void);
+// ...
+void SetSav1Weather(u32);
+u8 GetSav1Weather(void);
+void sub_80806E4(void);
+// ...
+void DoCurrentWeather(void);
+void sub_8080750();
+
+#endif // GUARD_WEATHER_H
diff --git a/include/wild_encounter.h b/include/wild_encounter.h
new file mode 100644
index 000000000..33b7df7b9
--- /dev/null
+++ b/include/wild_encounter.h
@@ -0,0 +1,14 @@
+#ifndef GUARD_WILD_ENCOUNTER_H
+#define GUARD_WILD_ENCOUNTER_H
+
+void DisableWildEncounters(bool8 disabled);
+bool8 StandardWildEncounter(u16 a, u16 b);
+void RockSmashWildEncounter(void);
+bool8 SweetScentWildEncounter(void);
+bool8 GetFishingWildMonListHeader(void);
+void FishingWildEncounter(u8 rod);
+u16 GetLocalWildMon(bool8 *isWaterMon);
+u16 GetMirageIslandMon(void);
+bool8 UpdateRepelCounter(void);
+
+#endif // GUARD_WILD_ENCOUNTER_H
diff --git a/ld_script.txt b/ld_script.txt
index 6d754ef6f..2267ca956 100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -49,84 +49,119 @@ SECTIONS {
asm/rom3.o(.text);
src/decompress.o(.text);
asm/rom_800D42C.o(.text);
+ src/rom_800D42C.o(.text);
+ asm/rom_800D42C.o(.text_800DC24);
src/pokemon_1.o(.text);
- asm/calculate_base_damage.o(.text);
+ src/calculate_base_damage.o(.text);
src/pokemon_2.o(.text);
- asm/rom_803D1FC.o(.text);
+ asm/pokemon_item_effect.o(.text);
+ src/pokemon_3.o(.text);
+ asm/pokemon_3.o(.text);
src/trig.o(.text);
src/rng.o(.text);
- asm/rom_8040EB4.o(.text);
+ asm/util.o(.text);
src/blend_palette.o(.text);
+ src/daycare.o(.text);
asm/daycare.o(.text);
asm/egg_hatch.o(.text);
asm/rom_804373C.o(.text);
- asm/load_save.o(.text);
+ asm/smokescreen.o(.text);
+ asm/pokeball.o(.text);
+ src/load_save.o(.text);
asm/trade.o(.text);
asm/berry_blender.o(.text);
src/play_time.o(.text);
src/new_game.o(.text);
src/rom4.o(.text);
- asm/fieldmap.o(.text);
- asm/metatile_behavior.o(.text);
+ src/fieldmap.o(.text);
+ src/metatile_behavior.o(.text);
src/field_camera.o(.text);
src/field_door.o(.text);
- asm/field_player_avatar.o(.text);
+ src/field_player_avatar.o(.text);
asm/field_map_obj.o(.text);
+ src/field_ground_effect.o(.text);
asm/field_ground_effect.o(.text);
- src/map_obj_80643A4.o(.text);
+ src/field_map_obj_helpers.o(.text);
src/field_message_box.o(.text);
src/map_obj_lock.o(.text);
src/text_window.o(.text);
src/script.o(.text);
src/scrcmd.o(.text);
- asm/rom_8065394.o(.text);
- src/var.o(.text);
- src/flag.o(.text);
- asm/rom_806936C.o(.text);
+ asm/field_control_avatar.o(.text);
+ src/event_data.o(.text);
+ src/coord_event_weather.o(.text);
+ asm/field_tasks.o(.text);
+ src/clock.o(.text);
asm/reset_rtc_screen.o(.text);
asm/party_menu.o(.text);
- asm/rom_806D7F8.o(.text);
+ src/party_menu.o(.text);
+ asm/party_menu.o(.text_806E884);
+ src/party_menu.o(.text_b);
+ asm/party_menu.o(.text_80701DC);
+ src/party_menu.o(.text_c);
+ asm/party_menu.o(.text_8070968);
src/start_menu.o(.text);
src/menu.o(.text);
src/tileset_anim.o(.text);
src/palette.o(.text);
src/sound.o(.text);
- asm/rom_8074BAC.o(.text);
+ asm/battle_anim.o(.text);
+ asm/rom_8077ABC.o(.text);
src/task.o(.text);
asm/rom5.o(.text);
+ asm/battle_anim_807B69C.o(.text);
src/title_screen.o(.text);
+ src/weather.o(.text);
asm/weather.o(.text);
asm/rom_8080874.o(.text);
src/battle_setup.o(.text);
asm/cable_club.o(.text);
src/mori_debug_menu.o(.text);
src/trainer_see.o(.text);
- src/fldeff_emotion.o(.text);
src/wild_encounter.o(.text);
src/field_effect.o(.text);
- asm/rom_80859BC.o(.text);
+ asm/field_effect.o(.text);
+ asm/unknown_task.o(.text);
+ asm/pokemon_menu.o(.text);
src/option_menu.o(.text);
src/pokedex.o(.text);
asm/pokedex.o(.text);
- asm/trainer_card.o(.text);
+ src/trainer_card.o(.text);
src/save_menu_util.o(.text);
asm/rom_8094928.o(.text);
+ asm/battle_party_menu.o(.text);
+ asm/pokemon_storage_system.o(.text);
+ asm/pokemon_icon.o(.text);
+ asm/pokemon_summary_screen.o(.text);
+ src/pokemon_summary_screen.o(.text);
+ asm/pokemon_summary_screen.o(.text_80A0958);
+ asm/script_movement.o(.text);
+ asm/fldeff_cut.o(.text);
+ asm/mail_data.o(.text);
+ asm/map_name_popup.o(.text);
asm/item_menu.o(.text);
- asm/battle_anim_80A7E7C.o(.text);
+ src/battle_anim_80A7E7C.o(.text);
src/item.o(.text);
- asm/matuda_debug_menu.o(.text);
+ src/matsuda_debug_menu.o(.text);
asm/contest.o(.text);
asm/shop.o(.text);
src/berry.o(.text);
- asm/script_menu.o(.text);
+ src/script_menu.o(.text);
asm/naming_screen.o(.text);
- asm/money.o(.text);
+ src/money.o(.text);
asm/contest_effect.o(.text);
src/record_mixing.o(.text);
asm/record_mixing.o(.text);
asm/sound_check_menu.o(.text);
asm/secret_base.o(.text);
asm/tv.o(.text);
+ src/tv.o(.text);
+ asm/tv.o(.text_80BE8EC);
+ src/tv.o(.text_b);
+ asm/tv.o(.text_80BF544);
+ src/tv.o(.text_c);
+ asm/tv.o(.text_80C1C5C);
+ src/tv.o(.text_d);
asm/contest_link_80C2020.o(.text);
asm/script_pokemon_util_80C4BF0.o(.text);
src/field_poison.o(.text);
@@ -137,6 +172,7 @@ SECTIONS {
asm/rotating_gate.o(.text);
src/safari_zone.o(.text);
asm/contest_link_80C857C.o(.text);
+ src/item_use.o(.text);
asm/item_use.o(.text);
asm/battle_anim_80CA710.o(.text);
asm/bike.o(.text);
@@ -144,7 +180,7 @@ SECTIONS {
asm/pokenav.o(.text);
asm/mon_markings.o(.text);
asm/mauville_old_man.o(.text);
- asm/mail.o(.text);
+ src/mail.o(.text);
asm/menu_helpers.o(.text);
asm/script_pokemon_util_80F99CC.o(.text);
src/dewford_trend.o(.text);
@@ -152,14 +188,18 @@ SECTIONS {
asm/region_map.o(.text);
asm/cute_sketch.o(.text);
asm/decoration.o(.text);
+ src/decoration.o(.text);
+ asm/decoration.o(.text_80FE868);
asm/slot_machine.o(.text);
- asm/contest_painting.o(.text);
+ src/contest_painting.o(.text);
src/battle_ai.o(.text);
asm/battle_ai.o(.text);
asm/trader.o(.text);
src/starter_choose.o(.text);
src/wallclock.o(.text);
asm/rom6.o(.text);
+ asm/pokeblock.o(.text);
+ asm/rom_810CBB4.o(.text);
asm/battle_records.o(.text);
asm/pokedex_area_screen.o(.text);
asm/evolution_scene.o(.text);
@@ -167,7 +207,7 @@ SECTIONS {
asm/pokedex_cry_screen.o(.text);
src/coins.o(.text);
src/landmark.o(.text);
- asm/fldeff_strength.o(.text);
+ src/fldeff_strength.o(.text);
asm/battle_transition.o(.text);
asm/battle_811DA74.o(.text);
asm/battle_message.o(.text);
@@ -177,21 +217,33 @@ SECTIONS {
asm/cable_car_util.o(.text);
asm/unused_8124F94.o(.text);
src/save.o(.text);
+ src/mystery_event_script.o(.text);
asm/mystery_event_script.o(.text);
asm/field_effect_helpers.o(.text);
asm/contest_ai.o(.text);
asm/rom_81258BC.o(.text);
+ src/player_pc.o(.text);
asm/player_pc.o(.text);
src/intro.o(.text);
- asm/rom_813BA94.o(.text);
+ asm/field_region_map.o(.text);
+ asm/battle_anim_813F0F4.o(.text);
+ asm/hall_of_fame.o(.text);
+ src/credits.o(.text);
+ asm/credits.o(.text);
src/lottery_corner.o(.text);
src/diploma.o(.text);
- asm/berry_tag_screen.o(.text);
- asm/mystery_event_menu.o(.text);
- asm/save_failed_screen.o(.text);
- asm/rom_81473B8.o(.text);
+ src/berry_tag_screen.o(.text);
+ src/mystery_event_menu.o(.text);
+ src/save_failed_screen.o(.text);
+ asm/braille_puzzles.o(.text);
+ asm/pokeblock_feed.o(.text);
src/clear_save_data_menu.o(.text);
- asm/rom_8148B8C.o(.text);
+ asm/intro_credits_graphics.o(.text);
+ asm/evolution_graphics.o(.text);
+ src/bard_music.o(.text);
+ asm/fldeff_teleport.o(.text);
+ asm/unknown_debug_menu.o(.text);
+ asm/name_string_util.o(.text);
src/menu_cursor.o(.text);
} =0
@@ -250,6 +302,130 @@ SECTIONS {
src/link.o(.rodata);
src/rtc.o(.rodata);
data/data2.o(.rodata);
+ data/pokeball.o(.rodata);
+ data/trade.o(.rodata);
+ data/berry_blender.o(.rodata);
+ src/new_game.o(.rodata);
+ data/rom4.o(.rodata);
+ data/tilesets.o(.rodata);
+ data/maps.o(.rodata);
+ src/fieldmap.o(.rodata);
+ data/metatile_behavior.o(.rodata);
+ data/field_door.o(.rodata);
+ data/field_player_avatar.o(.rodata);
+ data/field_map_obj.o(.rodata);
+ src/field_ground_effect.o(.rodata);
+ data/field_ground_effect.o(.rodata);
+ data/field_map_obj_helpers.o(.rodata);
+ data/text_window.o(.rodata);
+ src/script.o(.rodata);
+ src/scrcmd.o(.rodata);
+ src/coord_event_weather.o(.rodata);
+ data/field_tasks.o(.rodata);
+ data/reset_rtc_screen.o(.rodata);
+ data/party_menu.o(.rodata);
+ src/start_menu.o(.rodata);
+ src/menu.o(.rodata);
+ data/tileset_anim.o(.rodata);
+ src/palette.o(.rodata);
+ src/sound.o(.rodata);
+ data/battle_anim.o(.rodata);
+ data/rom_8077ABC.o(.rodata);
+ data/map_events.o(.rodata);
+ data/data_8393054.o(.rodata);
+ data/task.o(.rodata);
+ data/battle_anim_807B69C.o(.rodata);
+ data/title_screen.o(.rodata);
+ data/weather.o(.rodata);
+ data/rom_8080874.o(.rodata);
+ data/battle_setup.o(.rodata);
+ data/cable_club.o(.rodata);
+ data/mori_debug_menu.o(.rodata);
+ data/trainer_see.o(.rodata);
+ data/wild_encounter.o(.rodata);
+ data/field_effect.o(.rodata);
+ data/pokemon_menu.o(.rodata);
+ data/option_menu.o(.rodata);
+ data/pokedex.o(.rodata);
+ data/trainer_card.o(.rodata);
+ data/battle_party_menu.o(.rodata);
+ data/pokemon_storage_system.o(.rodata);
+ data/pokemon_icon.o(.rodata);
+ data/pokemon_summary_screen.o(.rodata);
+ data/fldeff_cut.o(.rodata);
+ data/item_menu.o(.rodata);
+ data/battle_anim_80A7E7C.o(.rodata);
+ data/item.o(.rodata);
+ data/matsuda_debug_menu.o(.rodata);
+ data/contest.o(.rodata);
+ data/shop.o(.rodata);
+ data/berry.o(.rodata);
+ data/script_menu.o(.rodata);
+ data/naming_screen.o(.rodata);
+ data/money.o(.rodata);
+ data/contest_effect.o(.rodata);
+ data/record_mixing.o(.rodata);
+ data/sound_check_menu.o(.rodata);
+ data/secret_base.o(.rodata);
+ data/tv.o(.rodata);
+ data/contest_link_80C2020.o(.rodata);
+ src/pokemon_size_record.o(.rodata);
+ data/fldeff_80C5CD4.o(.rodata);
+ data/truck_scene.o(.rodata);
+ data/rotating_gate.o(.rodata);
+ data/item_use.o(.rodata);
+ data/battle_anim_80CA710.o(.rodata);
+ data/bike.o(.rodata);
+ data/easy_chat.o(.rodata);
+ data/pokenav.o(.rodata);
+ data/mon_markings.o(.rodata);
+ data/mauville_old_man.o(.rodata);
+ data/mail.o(.rodata);
+ data/menu_helpers.o(.rodata);
+ data/heal_location.o(.rodata);
+ data/region_map.o(.rodata);
+ data/cute_sketch.o(.rodata);
+ data/decoration.o(.rodata);
+ data/slot_machine.o(.rodata);
+ data/contest_painting.o(.rodata);
+ data/battle_ai.o(.rodata);
+ data/trader.o(.rodata);
+ data/starter_choose.o(.rodata);
+ data/wallclock.o(.rodata);
+ data/pokeblock.o(.rodata);
+ data/rom_810CBB4.o(.rodata);
+ data/pokedex_area_screen.o(.rodata);
+ data/evolution_scene.o(.rodata);
+ data/roulette.o(.rodata);
+ data/pokedex_cry_screen.o(.rodata);
+ data/landmark.o(.rodata);
+ data/battle_transition.o(.rodata);
+ data/battle_811DA74.o(.rodata);
+ data/battle_message.o(.rodata);
+ data/choose_party.o(.rodata);
+ data/cable_car.o(.rodata);
+ data/save.o(.rodata);
+ data/field_effect_helpers.o(.rodata);
+ data/contest_ai.o(.rodata);
+ data/rom_81258BC.o(.rodata);
+ data/player_pc.o(.rodata);
+ data/intro.o(.rodata);
+ data/battle_anim_813F0F4.o(.rodata);
+ data/hall_of_fame.o(.rodata);
+ data/credits.o(.rodata);
+ src/lottery_corner.o(.rodata);
+ data/diploma.o(.rodata);
+ data/strings.o(.rodata);
+ data/berry_tag_screen.o(.rodata);
+ data/save_failed_screen.o(.rodata);
+ data/pokeblock_feed.o(.rodata);
+ data/intro_credits_graphics.o(.rodata);
+ data/evolution_graphics.o(.rodata);
+ data/bard_music.o(.rodata);
+ data/unknown_debug_menu.o(.rodata);
+ data/strings2.o(.rodata);
+ data/menu_cursor.o(.rodata);
+ data/mystery_event_msg.o(.rodata);
src/m4a_tables.o(.rodata);
data/sound_data.o(.rodata);
} =0
diff --git a/shared_syms.txt b/shared_syms.txt
index b85cd1f76..b44d54835 100644
--- a/shared_syms.txt
+++ b/shared_syms.txt
@@ -1,3 +1,4 @@
+battle_2000000 = 0x2000000;
unk_2000000 = 0x2000000;
ewram = 0x2000000;
@@ -8,18 +9,26 @@ unk_2007900 = 0x2007900;
unk_2008000 = 0x2008000;
+unk_2015de0 = 0x2015de0;
unk_2016000 = 0x2016000;
unk_20160BC = 0x20160BC;
-unk_2016800 = 0x2016800;
+gAIThinkingSpace = 0x2016800;
unk_2016A00 = 0x2016A00;
unk_2016C00 = 0x2016C00;
+unk_201FE00 = 0x201FE00;
+
gSecretBaseRecord = 0x2017000;
dword_2017100 = 0x2017100;
unk_2018000 = 0x2018000;
+unk_201B260 = 0x201b260;
+unk_201B264 = 0x201B264;
+unk_201C000 = 0x201C000;
+
gHallOfFame = 0x201E000;
+unk_201f800 = 0x201F800;
diff --git a/sound/direct_sound_data.inc b/sound/direct_sound_data.inc
index 71e92f9ee..d4c39b2f8 100644
--- a/sound/direct_sound_data.inc
+++ b/sound/direct_sound_data.inc
@@ -1,2259 +1,2023 @@
.align 2
DirectSoundWaveData_8456330:: @ 8456330
- .4byte 0x40000000 @ looped directsound
.incbin "sound/direct_sound_samples/8456330.bin"
- .incbin "sound/direct_sound_samples/8456330.pcm"
.align 2
DirectSoundWaveData_84569D4:: @ 84569D4
- .4byte 0x40000000 @ looped directsound
.incbin "sound/direct_sound_samples/84569D4.bin"
- .incbin "sound/direct_sound_samples/84569D4.pcm"
.align 2
DirectSoundWaveData_84571CC:: @ 84571CC
- .4byte 0x40000000 @ looped directsound
.incbin "sound/direct_sound_samples/84571CC.bin"
- .incbin "sound/direct_sound_samples/84571CC.pcm"
.align 2
DirectSoundWaveData_8457D98:: @ 8457D98
- .4byte 0x40000000 @ looped directsound
.incbin "sound/direct_sound_samples/8457D98.bin"
- .incbin "sound/direct_sound_samples/8457D98.pcm"
.align 2
DirectSoundWaveData_8458CD0:: @ 8458CD0
- .4byte 0x40000000 @ looped directsound
.incbin "sound/direct_sound_samples/8458CD0.bin"
- .incbin "sound/direct_sound_samples/8458CD0.pcm"
.align 2
DirectSoundWaveData_8459944:: @ 8459944
- .4byte 0x40000000 @ looped directsound
.incbin "sound/direct_sound_samples/8459944.bin"
- .incbin "sound/direct_sound_samples/8459944.pcm"
.align 2
DirectSoundWaveData_845AE14:: @ 845AE14
- .4byte 0
.incbin "sound/direct_sound_samples/845AE14.bin"
- .incbin "sound/direct_sound_samples/845AE14.pcm"
.align 2
DirectSoundWaveData_845B2B4:: @ 845B2B4
- .4byte 0
.incbin "sound/direct_sound_samples/845B2B4.bin"
- .incbin "sound/direct_sound_samples/845B2B4.pcm"
.align 2
DirectSoundWaveData_845B9A8:: @ 845B9A8
- .4byte 0
.incbin "sound/direct_sound_samples/845B9A8.bin"
- .incbin "sound/direct_sound_samples/845B9A8.pcm"
.align 2
DirectSoundWaveData_845C238:: @ 845C238
- .4byte 0
.incbin "sound/direct_sound_samples/845C238.bin"
- .incbin "sound/direct_sound_samples/845C238.pcm"
.align 2
DirectSoundWaveData_845CAB0:: @ 845CAB0
- .4byte 0x40000000 @ looped directsound
.incbin "sound/direct_sound_samples/845CAB0.bin"
- .incbin "sound/direct_sound_samples/845CAB0.pcm"
.align 2
DirectSoundWaveData_845DAF0:: @ 845DAF0
- .4byte 0
.incbin "sound/direct_sound_samples/845DAF0.bin"
- .incbin "sound/direct_sound_samples/845DAF0.pcm"
.align 2
DirectSoundWaveData_845DF04:: @ 845DF04
- .4byte 0x40000000 @ looped directsound
.incbin "sound/direct_sound_samples/845DF04.bin"
- .incbin "sound/direct_sound_samples/845DF04.pcm"
.align 2
DirectSoundWaveData_845ED34:: @ 845ED34
- .4byte 0x40000000 @ looped directsound
.incbin "sound/direct_sound_samples/845ED34.bin"
- .incbin "sound/direct_sound_samples/845ED34.pcm"
.align 2
DirectSoundWaveData_845FCC8:: @ 845FCC8
- .4byte 0
.incbin "sound/direct_sound_samples/845FCC8.bin"
- .incbin "sound/direct_sound_samples/845FCC8.pcm"
.align 2
DirectSoundWaveData_846057C:: @ 846057C
- .4byte 0x40000000 @ looped directsound
.incbin "sound/direct_sound_samples/846057C.bin"
- .incbin "sound/direct_sound_samples/846057C.pcm"
.align 2
DirectSoundWaveData_8460E60:: @ 8460E60
- .4byte 0x40000000 @ looped directsound
.incbin "sound/direct_sound_samples/8460E60.bin"
- .incbin "sound/direct_sound_samples/8460E60.pcm"
.align 2
DirectSoundWaveData_8461D8C:: @ 8461D8C
- .4byte 0
.incbin "sound/direct_sound_samples/8461D8C.bin"
- .incbin "sound/direct_sound_samples/8461D8C.pcm"
.align 2
DirectSoundWaveData_84622A4:: @ 84622A4
- .4byte 0
.incbin "sound/direct_sound_samples/84622A4.bin"
- .incbin "sound/direct_sound_samples/84622A4.pcm"
.align 2
DirectSoundWaveData_846286C:: @ 846286C
- .4byte 0x40000000 @ looped directsound
.incbin "sound/direct_sound_samples/846286C.bin"
- .incbin "sound/direct_sound_samples/846286C.pcm"
.align 2
DirectSoundWaveData_84637CC:: @ 84637CC
- .4byte 0x40000000 @ looped directsound
.incbin "sound/direct_sound_samples/84637CC.bin"
- .incbin "sound/direct_sound_samples/84637CC.pcm"
.align 2
DirectSoundWaveData_8464E2C:: @ 8464E2C
- .4byte 0x40000000 @ looped directsound
.incbin "sound/direct_sound_samples/8464E2C.bin"
- .incbin "sound/direct_sound_samples/8464E2C.pcm"
.align 2
DirectSoundWaveData_8466388:: @ 8466388
- .4byte 0x40000000 @ looped directsound
.incbin "sound/direct_sound_samples/8466388.bin"
- .incbin "sound/direct_sound_samples/8466388.pcm"
.align 2
DirectSoundWaveData_8466F14:: @ 8466F14
- .4byte 0x40000000 @ looped directsound
.incbin "sound/direct_sound_samples/8466F14.bin"
- .incbin "sound/direct_sound_samples/8466F14.pcm"
.align 2
DirectSoundWaveData_846A4B8:: @ 846A4B8
- .4byte 0x40000000 @ looped directsound
.incbin "sound/direct_sound_samples/846A4B8.bin"
- .incbin "sound/direct_sound_samples/846A4B8.pcm"
.align 2
DirectSoundWaveData_846C7D4:: @ 846C7D4
- .4byte 0x40000000 @ looped directsound
.incbin "sound/direct_sound_samples/846C7D4.bin"
- .incbin "sound/direct_sound_samples/846C7D4.pcm"
.align 2
DirectSoundWaveData_846FEA0:: @ 846FEA0
- .4byte 0x40000000 @ looped directsound
.incbin "sound/direct_sound_samples/846FEA0.bin"
- .incbin "sound/direct_sound_samples/846FEA0.pcm"
.align 2
DirectSoundWaveData_84711F0:: @ 84711F0
- .4byte 0x40000000 @ looped directsound
.incbin "sound/direct_sound_samples/84711F0.bin"
- .incbin "sound/direct_sound_samples/84711F0.pcm"
.align 2
DirectSoundWaveData_8472700:: @ 8472700
- .4byte 0x40000000 @ looped directsound
.incbin "sound/direct_sound_samples/8472700.bin"
- .incbin "sound/direct_sound_samples/8472700.pcm"
.align 2
DirectSoundWaveData_8473B20:: @ 8473B20
- .4byte 0x40000000 @ looped directsound
.incbin "sound/direct_sound_samples/8473B20.bin"
- .incbin "sound/direct_sound_samples/8473B20.pcm"
.align 2
DirectSoundWaveData_8474BBC:: @ 8474BBC
- .4byte 0x40000000 @ looped directsound
.incbin "sound/direct_sound_samples/8474BBC.bin"
- .incbin "sound/direct_sound_samples/8474BBC.pcm"
.align 2
DirectSoundWaveData_8475C18:: @ 8475C18
- .4byte 0x40000000 @ looped directsound
.incbin "sound/direct_sound_samples/8475C18.bin"
- .incbin "sound/direct_sound_samples/8475C18.pcm"
.align 2
DirectSoundWaveData_847CBAC:: @ 847CBAC
- .4byte 0x40000000 @ looped directsound
.incbin "sound/direct_sound_samples/847CBAC.bin"
- .incbin "sound/direct_sound_samples/847CBAC.pcm"
.align 2
DirectSoundWaveData_8481130:: @ 8481130
- .4byte 0x40000000 @ looped directsound
.incbin "sound/direct_sound_samples/8481130.bin"
- .incbin "sound/direct_sound_samples/8481130.pcm"
.align 2
DirectSoundWaveData_84830A0:: @ 84830A0
- .4byte 0x40000000 @ looped directsound
.incbin "sound/direct_sound_samples/84830A0.bin"
- .incbin "sound/direct_sound_samples/84830A0.pcm"
.align 2
DirectSoundWaveData_8483804:: @ 8483804
- .4byte 0x40000000 @ looped directsound
.incbin "sound/direct_sound_samples/8483804.bin"
- .incbin "sound/direct_sound_samples/8483804.pcm"
.align 2
DirectSoundWaveData_8485454:: @ 8485454
- .4byte 0x40000000 @ looped directsound
.incbin "sound/direct_sound_samples/8485454.bin"
- .incbin "sound/direct_sound_samples/8485454.pcm"
.align 2
DirectSoundWaveData_8486924:: @ 8486924
- .4byte 0x40000000 @ looped directsound
.incbin "sound/direct_sound_samples/8486924.bin"
- .incbin "sound/direct_sound_samples/8486924.pcm"
.align 2
DirectSoundWaveData_8487330:: @ 8487330
- .4byte 0x40000000 @ looped directsound
.incbin "sound/direct_sound_samples/8487330.bin"
- .incbin "sound/direct_sound_samples/8487330.pcm"
.align 2
DirectSoundWaveData_8488F44:: @ 8488F44
- .4byte 0
.incbin "sound/direct_sound_samples/8488F44.bin"
- .incbin "sound/direct_sound_samples/8488F44.pcm"
.align 2
DirectSoundWaveData_848A8A4:: @ 848A8A4
- .4byte 0
.incbin "sound/direct_sound_samples/848A8A4.bin"
- .incbin "sound/direct_sound_samples/848A8A4.pcm"
.align 2
DirectSoundWaveData_848BD68:: @ 848BD68
- .4byte 0x40000000 @ looped directsound
.incbin "sound/direct_sound_samples/848BD68.bin"
- .incbin "sound/direct_sound_samples/848BD68.pcm"
.align 2
DirectSoundWaveData_848C4A4:: @ 848C4A4
- .4byte 0x40000000 @ looped directsound
.incbin "sound/direct_sound_samples/848C4A4.bin"
- .incbin "sound/direct_sound_samples/848C4A4.pcm"
.align 2
DirectSoundWaveData_848E094:: @ 848E094
- .4byte 0x40000000 @ looped directsound
.incbin "sound/direct_sound_samples/848E094.bin"
- .incbin "sound/direct_sound_samples/848E094.pcm"
.align 2
DirectSoundWaveData_848F448:: @ 848F448
- .4byte 0x40000000 @ looped directsound
.incbin "sound/direct_sound_samples/848F448.bin"
- .incbin "sound/direct_sound_samples/848F448.pcm"
.align 2
DirectSoundWaveData_8491ACC:: @ 8491ACC
- .4byte 0x40000000 @ looped directsound
.incbin "sound/direct_sound_samples/8491ACC.bin"
- .incbin "sound/direct_sound_samples/8491ACC.pcm"
.align 2
DirectSoundWaveData_8492D10:: @ 8492D10
- .4byte 0
.incbin "sound/direct_sound_samples/8492D10.bin"
- .incbin "sound/direct_sound_samples/8492D10.pcm"
.align 2
DirectSoundWaveData_8493D20:: @ 8493D20
- .4byte 0x40000000 @ looped directsound
.incbin "sound/direct_sound_samples/8493D20.bin"
- .incbin "sound/direct_sound_samples/8493D20.pcm"
.align 2
DirectSoundWaveData_8495028:: @ 8495028
- .4byte 0x40000000 @ looped directsound
.incbin "sound/direct_sound_samples/8495028.bin"
- .incbin "sound/direct_sound_samples/8495028.pcm"
.align 2
DirectSoundWaveData_8497134:: @ 8497134
- .4byte 0x40000000 @ looped directsound
.incbin "sound/direct_sound_samples/8497134.bin"
- .incbin "sound/direct_sound_samples/8497134.pcm"
.align 2
DirectSoundWaveData_8499110:: @ 8499110
- .4byte 0x40000000 @ looped directsound
.incbin "sound/direct_sound_samples/8499110.bin"
- .incbin "sound/direct_sound_samples/8499110.pcm"
.align 2
DirectSoundWaveData_849B320:: @ 849B320
- .4byte 0x40000000 @ looped directsound
.incbin "sound/direct_sound_samples/849B320.bin"
- .incbin "sound/direct_sound_samples/849B320.pcm"
.align 2
DirectSoundWaveData_849BAEC:: @ 849BAEC
- .4byte 0x40000000 @ looped directsound
.incbin "sound/direct_sound_samples/849BAEC.bin"
- .incbin "sound/direct_sound_samples/849BAEC.pcm"
.align 2
DirectSoundWaveData_849D45C:: @ 849D45C
- .4byte 0x40000000 @ looped directsound
.incbin "sound/direct_sound_samples/849D45C.bin"
- .incbin "sound/direct_sound_samples/849D45C.pcm"
.align 2
DirectSoundWaveData_849F40C:: @ 849F40C
- .4byte 0x40000000 @ looped directsound
.incbin "sound/direct_sound_samples/849F40C.bin"
- .incbin "sound/direct_sound_samples/849F40C.pcm"
.align 2
DirectSoundWaveData_84A26EC:: @ 84A26EC
- .4byte 0x40000000 @ looped directsound
.incbin "sound/direct_sound_samples/84A26EC.bin"
- .incbin "sound/direct_sound_samples/84A26EC.pcm"
.align 2
DirectSoundWaveData_84A311C:: @ 84A311C
- .4byte 0x40000000 @ looped directsound
.incbin "sound/direct_sound_samples/84A311C.bin"
- .incbin "sound/direct_sound_samples/84A311C.pcm"
.align 2
DirectSoundWaveData_84A3B50:: @ 84A3B50
- .4byte 0x40000000 @ looped directsound
.incbin "sound/direct_sound_samples/84A3B50.bin"
- .incbin "sound/direct_sound_samples/84A3B50.pcm"
.align 2
DirectSoundWaveData_84A5690:: @ 84A5690
- .4byte 0x40000000 @ looped directsound
.incbin "sound/direct_sound_samples/84A5690.bin"
- .incbin "sound/direct_sound_samples/84A5690.pcm"
.align 2
DirectSoundWaveData_84A5F58:: @ 84A5F58
- .4byte 0x40000000 @ looped directsound
.incbin "sound/direct_sound_samples/84A5F58.bin"
- .incbin "sound/direct_sound_samples/84A5F58.pcm"
.align 2
DirectSoundWaveData_84A7328:: @ 84A7328
- .4byte 0x40000000 @ looped directsound
.incbin "sound/direct_sound_samples/84A7328.bin"
- .incbin "sound/direct_sound_samples/84A7328.pcm"
.align 2
DirectSoundWaveData_84A7F38:: @ 84A7F38
- .4byte 0x40000000 @ looped directsound
.incbin "sound/direct_sound_samples/84A7F38.bin"
- .incbin "sound/direct_sound_samples/84A7F38.pcm"
.align 2
DirectSoundWaveData_84A8AC8:: @ 84A8AC8
- .4byte 0x40000000 @ looped directsound
.incbin "sound/direct_sound_samples/84A8AC8.bin"
- .incbin "sound/direct_sound_samples/84A8AC8.pcm"
.align 2
DirectSoundWaveData_84A9564:: @ 84A9564
- .4byte 0x40000000 @ looped directsound
.incbin "sound/direct_sound_samples/84A9564.bin"
- .incbin "sound/direct_sound_samples/84A9564.pcm"
.align 2
DirectSoundWaveData_84A9EAC:: @ 84A9EAC
- .4byte 0x40000000 @ looped directsound
.incbin "sound/direct_sound_samples/84A9EAC.bin"
- .incbin "sound/direct_sound_samples/84A9EAC.pcm"
.align 2
DirectSoundWaveData_84AA8F4:: @ 84AA8F4
- .4byte 0x40000000 @ looped directsound
.incbin "sound/direct_sound_samples/84AA8F4.bin"
- .incbin "sound/direct_sound_samples/84AA8F4.pcm"
.align 2
-CryDirectSound_4AB57C:: @ 84AB57C
- .incbin "baserom.gba", 0x4ab57c, 0x108c
+Cry_Bulbasaur:: @ 84AB57C
+ .incbin "sound/direct_sound_samples/cry_bulbasaur.bin"
.align 2
-CryDirectSound_4AC608:: @ 84AC608
- .incbin "baserom.gba", 0x4ac608, 0x1090
+Cry_Ivysaur:: @ 84AC608
+ .incbin "sound/direct_sound_samples/cry_ivysaur.bin"
.align 2
-CryDirectSound_4AD698:: @ 84AD698
- .incbin "baserom.gba", 0x4ad698, 0x1358
+Cry_Venusaur:: @ 84AD698
+ .incbin "sound/direct_sound_samples/cry_venusaur.bin"
.align 2
-CryDirectSound_4AE9F0:: @ 84AE9F0
- .incbin "baserom.gba", 0x4ae9f0, 0xe70
+Cry_Charmander:: @ 84AE9F0
+ .incbin "sound/direct_sound_samples/cry_charmander.bin"
.align 2
-CryDirectSound_4AF860:: @ 84AF860
- .incbin "baserom.gba", 0x4af860, 0xe80
+Cry_Charmeleon:: @ 84AF860
+ .incbin "sound/direct_sound_samples/cry_charmeleon.bin"
.align 2
-CryDirectSound_4B06E0:: @ 84B06E0
- .incbin "baserom.gba", 0x4b06e0, 0x1348
+Cry_Charizard:: @ 84B06E0
+ .incbin "sound/direct_sound_samples/cry_charizard.bin"
.align 2
-CryDirectSound_4B1A28:: @ 84B1A28
- .incbin "baserom.gba", 0x4b1a28, 0xe74
+Cry_Squirtle:: @ 84B1A28
+ .incbin "sound/direct_sound_samples/cry_squirtle.bin"
.align 2
-CryDirectSound_4B289C:: @ 84B289C
- .incbin "baserom.gba", 0x4b289c, 0x1140
+Cry_Wartortle:: @ 84B289C
+ .incbin "sound/direct_sound_samples/cry_wartortle.bin"
.align 2
-CryDirectSound_4B39DC:: @ 84B39DC
- .incbin "baserom.gba", 0x4b39dc, 0x1348
+Cry_Blastoise:: @ 84B39DC
+ .incbin "sound/direct_sound_samples/cry_blastoise.bin"
.align 2
-CryDirectSound_4B4D24:: @ 84B4D24
- .incbin "baserom.gba", 0x4b4d24, 0x858
+Cry_Caterpie:: @ 84B4D24
+ .incbin "sound/direct_sound_samples/cry_caterpie.bin"
.align 2
-CryDirectSound_4B557C:: @ 84B557C
- .incbin "baserom.gba", 0x4b557c, 0x1750
+Cry_Metapod:: @ 84B557C
+ .incbin "sound/direct_sound_samples/cry_metapod.bin"
.align 2
-CryDirectSound_4B6CCC:: @ 84B6CCC
- .incbin "baserom.gba", 0x4b6ccc, 0xa08
+Cry_Butterfree:: @ 84B6CCC
+ .incbin "sound/direct_sound_samples/cry_butterfree.bin"
.align 2
-CryDirectSound_4B76D4:: @ 84B76D4
- .incbin "baserom.gba", 0x4b76d4, 0x1044
+Cry_Weedle:: @ 84B76D4
+ .incbin "sound/direct_sound_samples/cry_weedle.bin"
.align 2
-CryDirectSound_4B8718:: @ 84B8718
- .incbin "baserom.gba", 0x4b8718, 0x123c
+Cry_Kakuna:: @ 84B8718
+ .incbin "sound/direct_sound_samples/cry_kakuna.bin"
.align 2
-CryDirectSound_4B9954:: @ 84B9954
- .incbin "baserom.gba", 0x4b9954, 0x135c
+Cry_Beedrill:: @ 84B9954
+ .incbin "sound/direct_sound_samples/cry_beedrill.bin"
.align 2
-CryDirectSound_4BACB0:: @ 84BACB0
- .incbin "baserom.gba", 0x4bacb0, 0x3e8
+Cry_Pidgey:: @ 84BACB0
+ .incbin "sound/direct_sound_samples/cry_pidgey.bin"
.align 2
-CryDirectSound_4BB098:: @ 84BB098
- .incbin "baserom.gba", 0x4bb098, 0xf08
+Cry_Pidgeotto:: @ 84BB098
+ .incbin "sound/direct_sound_samples/cry_pidgeotto.bin"
.align 2
-CryDirectSound_4BBFA0:: @ 84BBFA0
- .incbin "baserom.gba", 0x4bbfa0, 0x1134
+Cry_Pidgeot:: @ 84BBFA0
+ .incbin "sound/direct_sound_samples/cry_pidgeot.bin"
.align 2
-CryDirectSound_4BD0D4:: @ 84BD0D4
- .incbin "baserom.gba", 0x4bd0d4, 0x7e0
+Cry_Rattata:: @ 84BD0D4
+ .incbin "sound/direct_sound_samples/cry_rattata.bin"
.align 2
-CryDirectSound_4BD8B4:: @ 84BD8B4
- .incbin "baserom.gba", 0x4bd8b4, 0x984
+Cry_Raticate:: @ 84BD8B4
+ .incbin "sound/direct_sound_samples/cry_raticate.bin"
.align 2
-CryDirectSound_4BE238:: @ 84BE238
- .incbin "baserom.gba", 0x4be238, 0x11a4
+Cry_Spearow:: @ 84BE238
+ .incbin "sound/direct_sound_samples/cry_spearow.bin"
.align 2
-CryDirectSound_4BF3DC:: @ 84BF3DC
- .incbin "baserom.gba", 0x4bf3dc, 0x113c
+Cry_Fearow:: @ 84BF3DC
+ .incbin "sound/direct_sound_samples/cry_fearow.bin"
.align 2
-CryDirectSound_4C0518:: @ 84C0518
- .incbin "baserom.gba", 0x4c0518, 0x134c
+Cry_Ekans:: @ 84C0518
+ .incbin "sound/direct_sound_samples/cry_ekans.bin"
.align 2
-CryDirectSound_4C1864:: @ 84C1864
- .incbin "baserom.gba", 0x4c1864, 0x1358
+Cry_Arbok:: @ 84C1864
+ .incbin "sound/direct_sound_samples/cry_arbok.bin"
.align 2
-CryDirectSound_4C2BBC:: @ 84C2BBC
- .incbin "baserom.gba", 0x4c2bbc, 0x10a8
+Cry_Pikachu:: @ 84C2BBC
+ .incbin "sound/direct_sound_samples/cry_pikachu.bin"
.align 2
-CryDirectSound_4C3C64:: @ 84C3C64
- .incbin "baserom.gba", 0x4c3c64, 0x17c0
+Cry_Raichu:: @ 84C3C64
+ .incbin "sound/direct_sound_samples/cry_raichu.bin"
.align 2
-CryDirectSound_4C5424:: @ 84C5424
- .incbin "baserom.gba", 0x4c5424, 0x954
+Cry_Sandshrew:: @ 84C5424
+ .incbin "sound/direct_sound_samples/cry_sandshrew.bin"
.align 2
-CryDirectSound_4C5D78:: @ 84C5D78
- .incbin "baserom.gba", 0x4c5d78, 0xd90
+Cry_Sandslash:: @ 84C5D78
+ .incbin "sound/direct_sound_samples/cry_sandslash.bin"
.align 2
-CryDirectSound_4C6B08:: @ 84C6B08
- .incbin "baserom.gba", 0x4c6b08, 0x9b0
+Cry_NidoranF:: @ 84C6B08
+ .incbin "sound/direct_sound_samples/cry_nidoran_f.bin"
.align 2
-CryDirectSound_4C74B8:: @ 84C74B8
- .incbin "baserom.gba", 0x4c74b8, 0xcc8
+Cry_Nidorina:: @ 84C74B8
+ .incbin "sound/direct_sound_samples/cry_nidorina.bin"
.align 2
-CryDirectSound_4C8180:: @ 84C8180
- .incbin "baserom.gba", 0x4c8180, 0x10e0
+Cry_Nidoqueen:: @ 84C8180
+ .incbin "sound/direct_sound_samples/cry_nidoqueen.bin"
.align 2
-CryDirectSound_4C9260:: @ 84C9260
- .incbin "baserom.gba", 0x4c9260, 0xa68
+Cry_NidoranM:: @ 84C9260
+ .incbin "sound/direct_sound_samples/cry_nidoran_m.bin"
.align 2
-CryDirectSound_4C9CC8:: @ 84C9CC8
- .incbin "baserom.gba", 0x4c9cc8, 0xc14
+Cry_Nidorino:: @ 84C9CC8
+ .incbin "sound/direct_sound_samples/cry_nidorino.bin"
.align 2
-CryDirectSound_4CA8DC:: @ 84CA8DC
- .incbin "baserom.gba", 0x4ca8dc, 0x186c
+Cry_Nidoking:: @ 84CA8DC
+ .incbin "sound/direct_sound_samples/cry_nidoking.bin"
.align 2
-CryDirectSound_4CC148:: @ 84CC148
- .incbin "baserom.gba", 0x4cc148, 0x870
+Cry_Clefairy:: @ 84CC148
+ .incbin "sound/direct_sound_samples/cry_clefairy.bin"
.align 2
-CryDirectSound_4CC9B8:: @ 84CC9B8
- .incbin "baserom.gba", 0x4cc9b8, 0xa90
+Cry_Clefable:: @ 84CC9B8
+ .incbin "sound/direct_sound_samples/cry_clefable.bin"
.align 2
-CryDirectSound_4CD448:: @ 84CD448
- .incbin "baserom.gba", 0x4cd448, 0x17d0
+Cry_Vulpix:: @ 84CD448
+ .incbin "sound/direct_sound_samples/cry_vulpix.bin"
.align 2
-CryDirectSound_4CEC18:: @ 84CEC18
- .incbin "baserom.gba", 0x4cec18, 0x186c
+Cry_Ninetales:: @ 84CEC18
+ .incbin "sound/direct_sound_samples/cry_ninetales.bin"
.align 2
-CryDirectSound_4D0484:: @ 84D0484
- .incbin "baserom.gba", 0x4d0484, 0x564
+Cry_Jigglypuff:: @ 84D0484
+ .incbin "sound/direct_sound_samples/cry_jigglypuff.bin"
.align 2
-CryDirectSound_4D09E8:: @ 84D09E8
- .incbin "baserom.gba", 0x4d09e8, 0x6c8
+Cry_Wigglytuff:: @ 84D09E8
+ .incbin "sound/direct_sound_samples/cry_wigglytuff.bin"
.align 2
-CryDirectSound_4D10B0:: @ 84D10B0
- .incbin "baserom.gba", 0x4d10b0, 0x136c
+Cry_Zubat:: @ 84D10B0
+ .incbin "sound/direct_sound_samples/cry_zubat.bin"
.align 2
-CryDirectSound_4D241C:: @ 84D241C
- .incbin "baserom.gba", 0x4d241c, 0x1364
+Cry_Golbat:: @ 84D241C
+ .incbin "sound/direct_sound_samples/cry_golbat.bin"
.align 2
-CryDirectSound_4D3780:: @ 84D3780
- .incbin "baserom.gba", 0x4d3780, 0xe9c
+Cry_Oddish:: @ 84D3780
+ .incbin "sound/direct_sound_samples/cry_oddish.bin"
.align 2
-CryDirectSound_4D461C:: @ 84D461C
- .incbin "baserom.gba", 0x4d461c, 0xc7c
+Cry_Gloom:: @ 84D461C
+ .incbin "sound/direct_sound_samples/cry_gloom.bin"
.align 2
-CryDirectSound_4D5298:: @ 84D5298
- .incbin "baserom.gba", 0x4d5298, 0x199c
+Cry_Vileplume:: @ 84D5298
+ .incbin "sound/direct_sound_samples/cry_vileplume.bin"
.align 2
-CryDirectSound_4D6C34:: @ 84D6C34
- .incbin "baserom.gba", 0x4d6c34, 0x1bf4
+Cry_Paras:: @ 84D6C34
+ .incbin "sound/direct_sound_samples/cry_paras.bin"
.align 2
-CryDirectSound_4D8828:: @ 84D8828
- .incbin "baserom.gba", 0x4d8828, 0x1e68
+Cry_Parasect:: @ 84D8828
+ .incbin "sound/direct_sound_samples/cry_parasect.bin"
.align 2
-CryDirectSound_4DA690:: @ 84DA690
- .incbin "baserom.gba", 0x4da690, 0xf80
+Cry_Venonat:: @ 84DA690
+ .incbin "sound/direct_sound_samples/cry_venonat.bin"
.align 2
-CryDirectSound_4DB610:: @ 84DB610
- .incbin "baserom.gba", 0x4db610, 0x1004
+Cry_Venomoth:: @ 84DB610
+ .incbin "sound/direct_sound_samples/cry_venomoth.bin"
.align 2
-CryDirectSound_4DC614:: @ 84DC614
- .incbin "baserom.gba", 0x4dc614, 0x1370
+Cry_Diglett:: @ 84DC614
+ .incbin "sound/direct_sound_samples/cry_diglett.bin"
.align 2
-CryDirectSound_4DD984:: @ 84DD984
- .incbin "baserom.gba", 0x4dd984, 0x136c
+Cry_Dugtrio:: @ 84DD984
+ .incbin "sound/direct_sound_samples/cry_dugtrio.bin"
.align 2
-CryDirectSound_4DECF0:: @ 84DECF0
- .incbin "baserom.gba", 0x4decf0, 0x990
+Cry_Meowth:: @ 84DECF0
+ .incbin "sound/direct_sound_samples/cry_meowth.bin"
.align 2
-CryDirectSound_4DF680:: @ 84DF680
- .incbin "baserom.gba", 0x4df680, 0x12dc
+Cry_Persian:: @ 84DF680
+ .incbin "sound/direct_sound_samples/cry_persian.bin"
.align 2
-CryDirectSound_4E095C:: @ 84E095C
- .incbin "baserom.gba", 0x4e095c, 0xd28
+Cry_Psyduck:: @ 84E095C
+ .incbin "sound/direct_sound_samples/cry_psyduck.bin"
.align 2
-CryDirectSound_4E1684:: @ 84E1684
- .incbin "baserom.gba", 0x4e1684, 0xb48
+Cry_Golduck:: @ 84E1684
+ .incbin "sound/direct_sound_samples/cry_golduck.bin"
.align 2
-CryDirectSound_4E21CC:: @ 84E21CC
- .incbin "baserom.gba", 0x4e21cc, 0x1060
+Cry_Mankey:: @ 84E21CC
+ .incbin "sound/direct_sound_samples/cry_mankey.bin"
.align 2
-CryDirectSound_4E322C:: @ 84E322C
- .incbin "baserom.gba", 0x4e322c, 0x1030
+Cry_Primeape:: @ 84E322C
+ .incbin "sound/direct_sound_samples/cry_primeape.bin"
.align 2
-CryDirectSound_4E425C:: @ 84E425C
- .incbin "baserom.gba", 0x4e425c, 0xd64
+Cry_Growlithe:: @ 84E425C
+ .incbin "sound/direct_sound_samples/cry_growlithe.bin"
.align 2
-CryDirectSound_4E4FC0:: @ 84E4FC0
- .incbin "baserom.gba", 0x4e4fc0, 0x113c
+Cry_Arcanine:: @ 84E4FC0
+ .incbin "sound/direct_sound_samples/cry_arcanine.bin"
.align 2
-CryDirectSound_4E60FC:: @ 84E60FC
- .incbin "baserom.gba", 0x4e60fc, 0xb1c
+Cry_Poliwag:: @ 84E60FC
+ .incbin "sound/direct_sound_samples/cry_poliwag.bin"
.align 2
-CryDirectSound_4E6C18:: @ 84E6C18
- .incbin "baserom.gba", 0x4e6c18, 0x6a8
+Cry_Poliwhirl:: @ 84E6C18
+ .incbin "sound/direct_sound_samples/cry_poliwhirl.bin"
.align 2
-CryDirectSound_4E72C0:: @ 84E72C0
- .incbin "baserom.gba", 0x4e72c0, 0xb24
+Cry_Poliwrath:: @ 84E72C0
+ .incbin "sound/direct_sound_samples/cry_poliwrath.bin"
.align 2
-CryDirectSound_4E7DE4:: @ 84E7DE4
- .incbin "baserom.gba", 0x4e7de4, 0x1764
+Cry_Abra:: @ 84E7DE4
+ .incbin "sound/direct_sound_samples/cry_abra.bin"
.align 2
-CryDirectSound_4E9548:: @ 84E9548
- .incbin "baserom.gba", 0x4e9548, 0x1ae8
+Cry_Kadabra:: @ 84E9548
+ .incbin "sound/direct_sound_samples/cry_kadabra.bin"
.align 2
-CryDirectSound_4EB030:: @ 84EB030
- .incbin "baserom.gba", 0x4eb030, 0x1f9c
+Cry_Alakazam:: @ 84EB030
+ .incbin "sound/direct_sound_samples/cry_alakazam.bin"
.align 2
-CryDirectSound_4ECFCC:: @ 84ECFCC
- .incbin "baserom.gba", 0x4ecfcc, 0xd64
+Cry_Machop:: @ 84ECFCC
+ .incbin "sound/direct_sound_samples/cry_machop.bin"
.align 2
-CryDirectSound_4EDD30:: @ 84EDD30
- .incbin "baserom.gba", 0x4edd30, 0xd90
+Cry_Machoke:: @ 84EDD30
+ .incbin "sound/direct_sound_samples/cry_machoke.bin"
.align 2
-CryDirectSound_4EEAC0:: @ 84EEAC0
- .incbin "baserom.gba", 0x4eeac0, 0x1088
+Cry_Machamp:: @ 84EEAC0
+ .incbin "sound/direct_sound_samples/cry_machamp.bin"
.align 2
-CryDirectSound_4EFB48:: @ 84EFB48
- .incbin "baserom.gba", 0x4efb48, 0x78c
+Cry_Bellsprout:: @ 84EFB48
+ .incbin "sound/direct_sound_samples/cry_bellsprout.bin"
.align 2
-CryDirectSound_4F02D4:: @ 84F02D4
- .incbin "baserom.gba", 0x4f02d4, 0xea0
+Cry_Weepinbell:: @ 84F02D4
+ .incbin "sound/direct_sound_samples/cry_weepinbell.bin"
.align 2
-CryDirectSound_4F1174:: @ 84F1174
- .incbin "baserom.gba", 0x4f1174, 0x134c
+Cry_Victreebel:: @ 84F1174
+ .incbin "sound/direct_sound_samples/cry_victreebel.bin"
.align 2
-CryDirectSound_4F24C0:: @ 84F24C0
- .incbin "baserom.gba", 0x4f24c0, 0xff0
+Cry_Tentacool:: @ 84F24C0
+ .incbin "sound/direct_sound_samples/cry_tentacool.bin"
.align 2
-CryDirectSound_4F34B0:: @ 84F34B0
- .incbin "baserom.gba", 0x4f34b0, 0x16fc
+Cry_Tentacruel:: @ 84F34B0
+ .incbin "sound/direct_sound_samples/cry_tentacruel.bin"
.align 2
-CryDirectSound_4F4BAC:: @ 84F4BAC
- .incbin "baserom.gba", 0x4f4bac, 0x17b4
+Cry_Geodude:: @ 84F4BAC
+ .incbin "sound/direct_sound_samples/cry_geodude.bin"
.align 2
-CryDirectSound_4F6360:: @ 84F6360
- .incbin "baserom.gba", 0x4f6360, 0x1be8
+Cry_Graveler:: @ 84F6360
+ .incbin "sound/direct_sound_samples/cry_graveler.bin"
.align 2
-CryDirectSound_4F7F48:: @ 84F7F48
- .incbin "baserom.gba", 0x4f7f48, 0xe2c
+Cry_Golem:: @ 84F7F48
+ .incbin "sound/direct_sound_samples/cry_golem.bin"
.align 2
-CryDirectSound_4F8D74:: @ 84F8D74
- .incbin "baserom.gba", 0x4f8d74, 0xf10
+Cry_Ponyta:: @ 84F8D74
+ .incbin "sound/direct_sound_samples/cry_ponyta.bin"
.align 2
-CryDirectSound_4F9C84:: @ 84F9C84
- .incbin "baserom.gba", 0x4f9c84, 0x12a0
+Cry_Rapidash:: @ 84F9C84
+ .incbin "sound/direct_sound_samples/cry_rapidash.bin"
.align 2
-CryDirectSound_4FAF24:: @ 84FAF24
- .incbin "baserom.gba", 0x4faf24, 0x768
+Cry_Slowpoke:: @ 84FAF24
+ .incbin "sound/direct_sound_samples/cry_slowpoke.bin"
.align 2
-CryDirectSound_4FB68C:: @ 84FB68C
- .incbin "baserom.gba", 0x4fb68c, 0xd70
+Cry_Slowbro:: @ 84FB68C
+ .incbin "sound/direct_sound_samples/cry_slowbro.bin"
.align 2
-CryDirectSound_4FC3FC:: @ 84FC3FC
- .incbin "baserom.gba", 0x4fc3fc, 0x1344
+Cry_Magnemite:: @ 84FC3FC
+ .incbin "sound/direct_sound_samples/cry_magnemite.bin"
.align 2
-CryDirectSound_4FD740:: @ 84FD740
- .incbin "baserom.gba", 0x4fd740, 0x17e8
+Cry_Magneton:: @ 84FD740
+ .incbin "sound/direct_sound_samples/cry_magneton.bin"
.align 2
-CryDirectSound_4FEF28:: @ 84FEF28
- .incbin "baserom.gba", 0x4fef28, 0x77c
+Cry_Farfetchd:: @ 84FEF28
+ .incbin "sound/direct_sound_samples/cry_farfetchd.bin"
.align 2
-CryDirectSound_4FF6A4:: @ 84FF6A4
- .incbin "baserom.gba", 0x4ff6a4, 0x1344
+Cry_Doduo:: @ 84FF6A4
+ .incbin "sound/direct_sound_samples/cry_doduo.bin"
.align 2
-CryDirectSound_5009E8:: @ 85009E8
- .incbin "baserom.gba", 0x5009e8, 0x1378
+Cry_Dodrio:: @ 85009E8
+ .incbin "sound/direct_sound_samples/cry_dodrio.bin"
.align 2
-CryDirectSound_501D60:: @ 8501D60
- .incbin "baserom.gba", 0x501d60, 0x11f0
+Cry_Seel:: @ 8501D60
+ .incbin "sound/direct_sound_samples/cry_seel.bin"
.align 2
-CryDirectSound_502F50:: @ 8502F50
- .incbin "baserom.gba", 0x502f50, 0x1524
+Cry_Dewgong:: @ 8502F50
+ .incbin "sound/direct_sound_samples/cry_dewgong.bin"
.align 2
-CryDirectSound_504474:: @ 8504474
- .incbin "baserom.gba", 0x504474, 0xa88
+Cry_Grimer:: @ 8504474
+ .incbin "sound/direct_sound_samples/cry_grimer.bin"
.align 2
-CryDirectSound_504EFC:: @ 8504EFC
- .incbin "baserom.gba", 0x504efc, 0xec0
+Cry_Muk:: @ 8504EFC
+ .incbin "sound/direct_sound_samples/cry_muk.bin"
.align 2
-CryDirectSound_505DBC:: @ 8505DBC
- .incbin "baserom.gba", 0x505dbc, 0xf74
+Cry_Shellder:: @ 8505DBC
+ .incbin "sound/direct_sound_samples/cry_shellder.bin"
.align 2
-CryDirectSound_506D30:: @ 8506D30
- .incbin "baserom.gba", 0x506d30, 0x14c4
+Cry_Cloyster:: @ 8506D30
+ .incbin "sound/direct_sound_samples/cry_cloyster.bin"
.align 2
-CryDirectSound_5081F4:: @ 85081F4
- .incbin "baserom.gba", 0x5081f4, 0x1750
+Cry_Gastly:: @ 85081F4
+ .incbin "sound/direct_sound_samples/cry_gastly.bin"
.align 2
-CryDirectSound_509944:: @ 8509944
- .incbin "baserom.gba", 0x509944, 0x1780
+Cry_Haunter:: @ 8509944
+ .incbin "sound/direct_sound_samples/cry_haunter.bin"
.align 2
-CryDirectSound_50B0C4:: @ 850B0C4
- .incbin "baserom.gba", 0x50b0c4, 0xec0
+Cry_Gengar:: @ 850B0C4
+ .incbin "sound/direct_sound_samples/cry_gengar.bin"
.align 2
-CryDirectSound_50BF84:: @ 850BF84
- .incbin "baserom.gba", 0x50bf84, 0x18c4
+Cry_Onix:: @ 850BF84
+ .incbin "sound/direct_sound_samples/cry_onix.bin"
.align 2
-CryDirectSound_50D848:: @ 850D848
- .incbin "baserom.gba", 0x50d848, 0x1d18
+Cry_Drowzee:: @ 850D848
+ .incbin "sound/direct_sound_samples/cry_drowzee.bin"
.align 2
-CryDirectSound_50F560:: @ 850F560
- .incbin "baserom.gba", 0x50f560, 0x1d04
+Cry_Hypno:: @ 850F560
+ .incbin "sound/direct_sound_samples/cry_hypno.bin"
.align 2
-CryDirectSound_511264:: @ 8511264
- .incbin "baserom.gba", 0x511264, 0x184c
+Cry_Krabby:: @ 8511264
+ .incbin "sound/direct_sound_samples/cry_krabby.bin"
.align 2
-CryDirectSound_512AB0:: @ 8512AB0
- .incbin "baserom.gba", 0x512ab0, 0x1858
+Cry_Kingler:: @ 8512AB0
+ .incbin "sound/direct_sound_samples/cry_kingler.bin"
.align 2
-CryDirectSound_514308:: @ 8514308
- .incbin "baserom.gba", 0x514308, 0x18c4
+Cry_Voltorb:: @ 8514308
+ .incbin "sound/direct_sound_samples/cry_voltorb.bin"
.align 2
-CryDirectSound_515BCC:: @ 8515BCC
- .incbin "baserom.gba", 0x515bcc, 0x1938
+Cry_Electrode:: @ 8515BCC
+ .incbin "sound/direct_sound_samples/cry_electrode.bin"
.align 2
-CryDirectSound_517504:: @ 8517504
- .incbin "baserom.gba", 0x517504, 0x12e0
+Cry_Exeggcute:: @ 8517504
+ .incbin "sound/direct_sound_samples/cry_exeggcute.bin"
.align 2
-CryDirectSound_5187E4:: @ 85187E4
- .incbin "baserom.gba", 0x5187e4, 0x1fe4
+Cry_Exeggutor:: @ 85187E4
+ .incbin "sound/direct_sound_samples/cry_exeggutor.bin"
.align 2
-CryDirectSound_51A7C8:: @ 851A7C8
- .incbin "baserom.gba", 0x51a7c8, 0xf20
+Cry_Cubone:: @ 851A7C8
+ .incbin "sound/direct_sound_samples/cry_cubone.bin"
.align 2
-CryDirectSound_51B6E8:: @ 851B6E8
- .incbin "baserom.gba", 0x51b6e8, 0xe70
+Cry_Marowak:: @ 851B6E8
+ .incbin "sound/direct_sound_samples/cry_marowak.bin"
.align 2
-CryDirectSound_51C558:: @ 851C558
- .incbin "baserom.gba", 0x51c558, 0x12ac
+Cry_Hitmonlee:: @ 851C558
+ .incbin "sound/direct_sound_samples/cry_hitmonlee.bin"
.align 2
-CryDirectSound_51D804:: @ 851D804
- .incbin "baserom.gba", 0x51d804, 0x11d8
+Cry_Hitmonchan:: @ 851D804
+ .incbin "sound/direct_sound_samples/cry_hitmonchan.bin"
.align 2
-CryDirectSound_51E9DC:: @ 851E9DC
- .incbin "baserom.gba", 0x51e9dc, 0xf28
+Cry_Lickitung:: @ 851E9DC
+ .incbin "sound/direct_sound_samples/cry_lickitung.bin"
.align 2
-CryDirectSound_51F904:: @ 851F904
- .incbin "baserom.gba", 0x51f904, 0x145c
+Cry_Koffing:: @ 851F904
+ .incbin "sound/direct_sound_samples/cry_koffing.bin"
.align 2
-CryDirectSound_520D60:: @ 8520D60
- .incbin "baserom.gba", 0x520d60, 0x15ac
+Cry_Weezing:: @ 8520D60
+ .incbin "sound/direct_sound_samples/cry_weezing.bin"
.align 2
-CryDirectSound_52230C:: @ 852230C
- .incbin "baserom.gba", 0x52230c, 0x136c
+Cry_Rhyhorn:: @ 852230C
+ .incbin "sound/direct_sound_samples/cry_rhyhorn.bin"
.align 2
-CryDirectSound_523678:: @ 8523678
- .incbin "baserom.gba", 0x523678, 0x146c
+Cry_Rhydon:: @ 8523678
+ .incbin "sound/direct_sound_samples/cry_rhydon.bin"
.align 2
-CryDirectSound_524AE4:: @ 8524AE4
- .incbin "baserom.gba", 0x524ae4, 0xecc
+Cry_Chansey:: @ 8524AE4
+ .incbin "sound/direct_sound_samples/cry_chansey.bin"
.align 2
-CryDirectSound_5259B0:: @ 85259B0
- .incbin "baserom.gba", 0x5259b0, 0xf1c
+Cry_Tangela:: @ 85259B0
+ .incbin "sound/direct_sound_samples/cry_tangela.bin"
.align 2
-CryDirectSound_5268CC:: @ 85268CC
- .incbin "baserom.gba", 0x5268cc, 0x12b4
+Cry_Kangaskhan:: @ 85268CC
+ .incbin "sound/direct_sound_samples/cry_kangaskhan.bin"
.align 2
-CryDirectSound_527B80:: @ 8527B80
- .incbin "baserom.gba", 0x527b80, 0x97c
+Cry_Horsea:: @ 8527B80
+ .incbin "sound/direct_sound_samples/cry_horsea.bin"
.align 2
-CryDirectSound_5284FC:: @ 85284FC
- .incbin "baserom.gba", 0x5284fc, 0x86c
+Cry_Seadra:: @ 85284FC
+ .incbin "sound/direct_sound_samples/cry_seadra.bin"
.align 2
-CryDirectSound_528D68:: @ 8528D68
- .incbin "baserom.gba", 0x528d68, 0x9d8
+Cry_Goldeen:: @ 8528D68
+ .incbin "sound/direct_sound_samples/cry_goldeen.bin"
.align 2
-CryDirectSound_529740:: @ 8529740
- .incbin "baserom.gba", 0x529740, 0x1358
+Cry_Seaking:: @ 8529740
+ .incbin "sound/direct_sound_samples/cry_seaking.bin"
.align 2
-CryDirectSound_52AA98:: @ 852AA98
- .incbin "baserom.gba", 0x52aa98, 0x13e8
+Cry_Staryu:: @ 852AA98
+ .incbin "sound/direct_sound_samples/cry_staryu.bin"
.align 2
-CryDirectSound_52BE80:: @ 852BE80
- .incbin "baserom.gba", 0x52be80, 0x14dc
+Cry_Starmie:: @ 852BE80
+ .incbin "sound/direct_sound_samples/cry_starmie.bin"
.align 2
-CryDirectSound_52D35C:: @ 852D35C
- .incbin "baserom.gba", 0x52d35c, 0x12f0
+Cry_MrMime:: @ 852D35C
+ .incbin "sound/direct_sound_samples/cry_mr_mime.bin"
.align 2
-CryDirectSound_52E64C:: @ 852E64C
- .incbin "baserom.gba", 0x52e64c, 0xd5c
+Cry_Scyther:: @ 852E64C
+ .incbin "sound/direct_sound_samples/cry_scyther.bin"
.align 2
-CryDirectSound_52F3A8:: @ 852F3A8
- .incbin "baserom.gba", 0x52f3a8, 0x2f74
+Cry_Jynx:: @ 852F3A8
+ .incbin "sound/direct_sound_samples/cry_jynx.bin"
.align 2
-CryDirectSound_53231C:: @ 853231C
- .incbin "baserom.gba", 0x53231c, 0x1ee4
+Cry_Electabuzz:: @ 853231C
+ .incbin "sound/direct_sound_samples/cry_electabuzz.bin"
.align 2
-CryDirectSound_534200:: @ 8534200
- .incbin "baserom.gba", 0x534200, 0xf7c
+Cry_Magmar:: @ 8534200
+ .incbin "sound/direct_sound_samples/cry_magmar.bin"
.align 2
-CryDirectSound_53517C:: @ 853517C
- .incbin "baserom.gba", 0x53517c, 0xc5c
+Cry_Pinsir:: @ 853517C
+ .incbin "sound/direct_sound_samples/cry_pinsir.bin"
.align 2
-CryDirectSound_535DD8:: @ 8535DD8
- .incbin "baserom.gba", 0x535dd8, 0x1254
+Cry_Tauros:: @ 8535DD8
+ .incbin "sound/direct_sound_samples/cry_tauros.bin"
.align 2
-CryDirectSound_53702C:: @ 853702C
- .incbin "baserom.gba", 0x53702c, 0x1308
+Cry_Magikarp:: @ 853702C
+ .incbin "sound/direct_sound_samples/cry_magikarp.bin"
.align 2
-CryDirectSound_538334:: @ 8538334
- .incbin "baserom.gba", 0x538334, 0x1434
+Cry_Gyarados:: @ 8538334
+ .incbin "sound/direct_sound_samples/cry_gyarados.bin"
.align 2
-CryDirectSound_539768:: @ 8539768
- .incbin "baserom.gba", 0x539768, 0xed4
+Cry_Lapras:: @ 8539768
+ .incbin "sound/direct_sound_samples/cry_lapras.bin"
.align 2
-CryDirectSound_53A63C:: @ 853A63C
- .incbin "baserom.gba", 0x53a63c, 0xb1c
+Cry_Ditto:: @ 853A63C
+ .incbin "sound/direct_sound_samples/cry_ditto.bin"
.align 2
-CryDirectSound_53B158:: @ 853B158
- .incbin "baserom.gba", 0x53b158, 0xe38
+Cry_Eevee:: @ 853B158
+ .incbin "sound/direct_sound_samples/cry_eevee.bin"
.align 2
-CryDirectSound_53BF90:: @ 853BF90
- .incbin "baserom.gba", 0x53bf90, 0x1618
+Cry_Vaporeon:: @ 853BF90
+ .incbin "sound/direct_sound_samples/cry_vaporeon.bin"
.align 2
-CryDirectSound_53D5A8:: @ 853D5A8
- .incbin "baserom.gba", 0x53d5a8, 0xfd4
+Cry_Jolteon:: @ 853D5A8
+ .incbin "sound/direct_sound_samples/cry_jolteon.bin"
.align 2
-CryDirectSound_53E57C:: @ 853E57C
- .incbin "baserom.gba", 0x53e57c, 0xf84
+Cry_Flareon:: @ 853E57C
+ .incbin "sound/direct_sound_samples/cry_flareon.bin"
.align 2
-CryDirectSound_53F500:: @ 853F500
- .incbin "baserom.gba", 0x53f500, 0x140c
+Cry_Porygon:: @ 853F500
+ .incbin "sound/direct_sound_samples/cry_porygon.bin"
.align 2
-CryDirectSound_54090C:: @ 854090C
- .incbin "baserom.gba", 0x54090c, 0xd58
+Cry_Omanyte:: @ 854090C
+ .incbin "sound/direct_sound_samples/cry_omanyte.bin"
.align 2
-CryDirectSound_541664:: @ 8541664
- .incbin "baserom.gba", 0x541664, 0xd54
+Cry_Omastar:: @ 8541664
+ .incbin "sound/direct_sound_samples/cry_omastar.bin"
.align 2
-CryDirectSound_5423B8:: @ 85423B8
- .incbin "baserom.gba", 0x5423b8, 0xc54
+Cry_Kabuto:: @ 85423B8
+ .incbin "sound/direct_sound_samples/cry_kabuto.bin"
.align 2
-CryDirectSound_54300C:: @ 854300C
- .incbin "baserom.gba", 0x54300c, 0xdbc
+Cry_Kabutops:: @ 854300C
+ .incbin "sound/direct_sound_samples/cry_kabutops.bin"
.align 2
-CryDirectSound_543DC8:: @ 8543DC8
- .incbin "baserom.gba", 0x543dc8, 0x185c
+Cry_Aerodactyl:: @ 8543DC8
+ .incbin "sound/direct_sound_samples/cry_aerodactyl.bin"
.align 2
-CryDirectSound_545624:: @ 8545624
- .incbin "baserom.gba", 0x545624, 0x53c
+Cry_Snorlax:: @ 8545624
+ .incbin "sound/direct_sound_samples/cry_snorlax.bin"
.align 2
-CryDirectSound_545B60:: @ 8545B60
- .incbin "baserom.gba", 0x545b60, 0x17a8
+Cry_Articuno:: @ 8545B60
+ .incbin "sound/direct_sound_samples/cry_articuno.bin"
.align 2
-CryDirectSound_547308:: @ 8547308
- .incbin "baserom.gba", 0x547308, 0xf78
+Cry_Zapdos:: @ 8547308
+ .incbin "sound/direct_sound_samples/cry_zapdos.bin"
.align 2
-CryDirectSound_548280:: @ 8548280
- .incbin "baserom.gba", 0x548280, 0x17ac
+Cry_Moltres:: @ 8548280
+ .incbin "sound/direct_sound_samples/cry_moltres.bin"
.align 2
-CryDirectSound_549A2C:: @ 8549A2C
- .incbin "baserom.gba", 0x549a2c, 0xb9c
+Cry_Dratini:: @ 8549A2C
+ .incbin "sound/direct_sound_samples/cry_dratini.bin"
.align 2
-CryDirectSound_54A5C8:: @ 854A5C8
- .incbin "baserom.gba", 0x54a5c8, 0x10a8
+Cry_Dragonair:: @ 854A5C8
+ .incbin "sound/direct_sound_samples/cry_dragonair.bin"
.align 2
-CryDirectSound_54B670:: @ 854B670
- .incbin "baserom.gba", 0x54b670, 0x130c
+Cry_Dragonite:: @ 854B670
+ .incbin "sound/direct_sound_samples/cry_dragonite.bin"
.align 2
-CryDirectSound_54C97C:: @ 854C97C
- .incbin "baserom.gba", 0x54c97c, 0x1e68
+Cry_Mewtwo:: @ 854C97C
+ .incbin "sound/direct_sound_samples/cry_mewtwo.bin"
.align 2
-CryDirectSound_54E7E4:: @ 854E7E4
- .incbin "baserom.gba", 0x54e7e4, 0x1e68
+Cry_Mew:: @ 854E7E4
+ .incbin "sound/direct_sound_samples/cry_mew.bin"
.align 2
-CryDirectSound_55064C:: @ 855064C
- .incbin "baserom.gba", 0x55064c, 0x540
+Cry_Chikorita:: @ 855064C
+ .incbin "sound/direct_sound_samples/cry_chikorita.bin"
.align 2
-CryDirectSound_550B8C:: @ 8550B8C
- .incbin "baserom.gba", 0x550b8c, 0x8cc
+Cry_Bayleef:: @ 8550B8C
+ .incbin "sound/direct_sound_samples/cry_bayleef.bin"
.align 2
-CryDirectSound_551458:: @ 8551458
- .incbin "baserom.gba", 0x551458, 0x1038
+Cry_Meganium:: @ 8551458
+ .incbin "sound/direct_sound_samples/cry_meganium.bin"
.align 2
-CryDirectSound_552490:: @ 8552490
- .incbin "baserom.gba", 0x552490, 0x704
+Cry_Cyndaquil:: @ 8552490
+ .incbin "sound/direct_sound_samples/cry_cyndaquil.bin"
.align 2
-CryDirectSound_552B94:: @ 8552B94
- .incbin "baserom.gba", 0x552b94, 0xbe8
+Cry_Quilava:: @ 8552B94
+ .incbin "sound/direct_sound_samples/cry_quilava.bin"
.align 2
-CryDirectSound_55377C:: @ 855377C
- .incbin "baserom.gba", 0x55377c, 0x2610
+Cry_Typhlosion:: @ 855377C
+ .incbin "sound/direct_sound_samples/cry_typhlosion.bin"
.align 2
-CryDirectSound_555D8C:: @ 8555D8C
- .incbin "baserom.gba", 0x555d8c, 0x1258
+Cry_Totodile:: @ 8555D8C
+ .incbin "sound/direct_sound_samples/cry_totodile.bin"
.align 2
-CryDirectSound_556FE4:: @ 8556FE4
- .incbin "baserom.gba", 0x556fe4, 0x143c
+Cry_Croconaw:: @ 8556FE4
+ .incbin "sound/direct_sound_samples/cry_croconaw.bin"
.align 2
-CryDirectSound_558420:: @ 8558420
- .incbin "baserom.gba", 0x558420, 0x1984
+Cry_Feraligatr:: @ 8558420
+ .incbin "sound/direct_sound_samples/cry_feraligatr.bin"
.align 2
-CryDirectSound_559DA4:: @ 8559DA4
- .incbin "baserom.gba", 0x559da4, 0x428
+Cry_Sentret:: @ 8559DA4
+ .incbin "sound/direct_sound_samples/cry_sentret.bin"
.align 2
-CryDirectSound_55A1CC:: @ 855A1CC
- .incbin "baserom.gba", 0x55a1cc, 0x648
+Cry_Furret:: @ 855A1CC
+ .incbin "sound/direct_sound_samples/cry_furret.bin"
.align 2
-CryDirectSound_55A814:: @ 855A814
- .incbin "baserom.gba", 0x55a814, 0xae4
+Cry_Hoothoot:: @ 855A814
+ .incbin "sound/direct_sound_samples/cry_hoothoot.bin"
.align 2
-CryDirectSound_55B2F8:: @ 855B2F8
- .incbin "baserom.gba", 0x55b2f8, 0x1530
+Cry_Noctowl:: @ 855B2F8
+ .incbin "sound/direct_sound_samples/cry_noctowl.bin"
.align 2
-CryDirectSound_55C828:: @ 855C828
- .incbin "baserom.gba", 0x55c828, 0x6f8
+Cry_Ledyba:: @ 855C828
+ .incbin "sound/direct_sound_samples/cry_ledyba.bin"
.align 2
-CryDirectSound_55CF20:: @ 855CF20
- .incbin "baserom.gba", 0x55cf20, 0x864
+Cry_Ledian:: @ 855CF20
+ .incbin "sound/direct_sound_samples/cry_ledian.bin"
.align 2
-CryDirectSound_55D784:: @ 855D784
- .incbin "baserom.gba", 0x55d784, 0xd64
+Cry_Spinarak:: @ 855D784
+ .incbin "sound/direct_sound_samples/cry_spinarak.bin"
.align 2
-CryDirectSound_55E4E8:: @ 855E4E8
- .incbin "baserom.gba", 0x55e4e8, 0xc54
+Cry_Ariados:: @ 855E4E8
+ .incbin "sound/direct_sound_samples/cry_ariados.bin"
.align 2
-CryDirectSound_55F13C:: @ 855F13C
- .incbin "baserom.gba", 0x55f13c, 0x1730
+Cry_Crobat:: @ 855F13C
+ .incbin "sound/direct_sound_samples/cry_crobat.bin"
.align 2
-CryDirectSound_56086C:: @ 856086C
- .incbin "baserom.gba", 0x56086c, 0xcb0
+Cry_Chinchou:: @ 856086C
+ .incbin "sound/direct_sound_samples/cry_chinchou.bin"
.align 2
-CryDirectSound_56151C:: @ 856151C
- .incbin "baserom.gba", 0x56151c, 0xa8c
+Cry_Lanturn:: @ 856151C
+ .incbin "sound/direct_sound_samples/cry_lanturn.bin"
.align 2
-CryDirectSound_561FA8:: @ 8561FA8
- .incbin "baserom.gba", 0x561fa8, 0x754
+Cry_Pichu:: @ 8561FA8
+ .incbin "sound/direct_sound_samples/cry_pichu.bin"
.align 2
-CryDirectSound_5626FC:: @ 85626FC
- .incbin "baserom.gba", 0x5626fc, 0x5f0
+Cry_Cleffa:: @ 85626FC
+ .incbin "sound/direct_sound_samples/cry_cleffa.bin"
.align 2
-CryDirectSound_562CEC:: @ 8562CEC
- .incbin "baserom.gba", 0x562cec, 0x6fc
+Cry_Igglybuff:: @ 8562CEC
+ .incbin "sound/direct_sound_samples/cry_igglybuff.bin"
.align 2
-CryDirectSound_5633E8:: @ 85633E8
- .incbin "baserom.gba", 0x5633e8, 0xae8
+Cry_Togepi:: @ 85633E8
+ .incbin "sound/direct_sound_samples/cry_togepi.bin"
.align 2
-CryDirectSound_563ED0:: @ 8563ED0
- .incbin "baserom.gba", 0x563ed0, 0x700
+Cry_Togetic:: @ 8563ED0
+ .incbin "sound/direct_sound_samples/cry_togetic.bin"
.align 2
-CryDirectSound_5645D0:: @ 85645D0
- .incbin "baserom.gba", 0x5645d0, 0xa90
+Cry_Natu:: @ 85645D0
+ .incbin "sound/direct_sound_samples/cry_natu.bin"
.align 2
-CryDirectSound_565060:: @ 8565060
- .incbin "baserom.gba", 0x565060, 0xecc
+Cry_Xatu:: @ 8565060
+ .incbin "sound/direct_sound_samples/cry_xatu.bin"
.align 2
-CryDirectSound_565F2C:: @ 8565F2C
- .incbin "baserom.gba", 0x565f2c, 0x758
+Cry_Mareep:: @ 8565F2C
+ .incbin "sound/direct_sound_samples/cry_mareep.bin"
.align 2
-CryDirectSound_566684:: @ 8566684
- .incbin "baserom.gba", 0x566684, 0xdb4
+Cry_Flaaffy:: @ 8566684
+ .incbin "sound/direct_sound_samples/cry_flaaffy.bin"
.align 2
-CryDirectSound_567438:: @ 8567438
- .incbin "baserom.gba", 0x567438, 0x1080
+Cry_Ampharos:: @ 8567438
+ .incbin "sound/direct_sound_samples/cry_ampharos.bin"
.align 2
-CryDirectSound_5684B8:: @ 85684B8
- .incbin "baserom.gba", 0x5684b8, 0xe18
+Cry_Bellossom:: @ 85684B8
+ .incbin "sound/direct_sound_samples/cry_bellossom.bin"
.align 2
-CryDirectSound_5692D0:: @ 85692D0
- .incbin "baserom.gba", 0x5692d0, 0xd14
+Cry_Marill:: @ 85692D0
+ .incbin "sound/direct_sound_samples/cry_marill.bin"
.align 2
-CryDirectSound_569FE4:: @ 8569FE4
- .incbin "baserom.gba", 0x569fe4, 0x10ec
+Cry_Azumarill:: @ 8569FE4
+ .incbin "sound/direct_sound_samples/cry_azumarill.bin"
.align 2
-CryDirectSound_56B0D0:: @ 856B0D0
- .incbin "baserom.gba", 0x56b0d0, 0x1030
+Cry_Sudowoodo:: @ 856B0D0
+ .incbin "sound/direct_sound_samples/cry_sudowoodo.bin"
.align 2
-CryDirectSound_56C100:: @ 856C100
- .incbin "baserom.gba", 0x56c100, 0x1244
+Cry_Politoed:: @ 856C100
+ .incbin "sound/direct_sound_samples/cry_politoed.bin"
.align 2
-CryDirectSound_56D344:: @ 856D344
- .incbin "baserom.gba", 0x56d344, 0x86c
+Cry_Hoppip:: @ 856D344
+ .incbin "sound/direct_sound_samples/cry_hoppip.bin"
.align 2
-CryDirectSound_56DBB0:: @ 856DBB0
- .incbin "baserom.gba", 0x56dbb0, 0xd08
+Cry_Skiploom:: @ 856DBB0
+ .incbin "sound/direct_sound_samples/cry_skiploom.bin"
.align 2
-CryDirectSound_56E8B8:: @ 856E8B8
- .incbin "baserom.gba", 0x56e8b8, 0x103c
+Cry_Jumpluff:: @ 856E8B8
+ .incbin "sound/direct_sound_samples/cry_jumpluff.bin"
.align 2
-CryDirectSound_56F8F4:: @ 856F8F4
- .incbin "baserom.gba", 0x56f8f4, 0xe20
+Cry_Aipom:: @ 856F8F4
+ .incbin "sound/direct_sound_samples/cry_aipom.bin"
.align 2
-CryDirectSound_570714:: @ 8570714
- .incbin "baserom.gba", 0x570714, 0x814
+Cry_Sunkern:: @ 8570714
+ .incbin "sound/direct_sound_samples/cry_sunkern.bin"
.align 2
-CryDirectSound_570F28:: @ 8570F28
- .incbin "baserom.gba", 0x570f28, 0xfe0
+Cry_Sunflora:: @ 8570F28
+ .incbin "sound/direct_sound_samples/cry_sunflora.bin"
.align 2
-CryDirectSound_571F08:: @ 8571F08
- .incbin "baserom.gba", 0x571f08, 0x1108
+Cry_Yanma:: @ 8571F08
+ .incbin "sound/direct_sound_samples/cry_yanma.bin"
.align 2
-CryDirectSound_573010:: @ 8573010
- .incbin "baserom.gba", 0x573010, 0x760
+Cry_Wooper:: @ 8573010
+ .incbin "sound/direct_sound_samples/cry_wooper.bin"
.align 2
-CryDirectSound_573770:: @ 8573770
- .incbin "baserom.gba", 0x573770, 0xd60
+Cry_Quagsire:: @ 8573770
+ .incbin "sound/direct_sound_samples/cry_quagsire.bin"
.align 2
-CryDirectSound_5744D0:: @ 85744D0
- .incbin "baserom.gba", 0x5744d0, 0x13b4
+Cry_Espeon:: @ 85744D0
+ .incbin "sound/direct_sound_samples/cry_espeon.bin"
.align 2
-CryDirectSound_575884:: @ 8575884
- .incbin "baserom.gba", 0x575884, 0xf80
+Cry_Umbreon:: @ 8575884
+ .incbin "sound/direct_sound_samples/cry_umbreon.bin"
.align 2
-CryDirectSound_576804:: @ 8576804
- .incbin "baserom.gba", 0x576804, 0x10c4
+Cry_Murkrow:: @ 8576804
+ .incbin "sound/direct_sound_samples/cry_murkrow.bin"
.align 2
-CryDirectSound_5778C8:: @ 85778C8
- .incbin "baserom.gba", 0x5778c8, 0x17e4
+Cry_Slowking:: @ 85778C8
+ .incbin "sound/direct_sound_samples/cry_slowking.bin"
.align 2
-CryDirectSound_5790AC:: @ 85790AC
- .incbin "baserom.gba", 0x5790ac, 0xba0
+Cry_Misdreavus:: @ 85790AC
+ .incbin "sound/direct_sound_samples/cry_misdreavus.bin"
.align 2
-CryDirectSound_579C4C:: @ 8579C4C
- .incbin "baserom.gba", 0x579c4c, 0xd28
+Cry_Unown:: @ 8579C4C
+ .incbin "sound/direct_sound_samples/cry_unown.bin"
.align 2
-CryDirectSound_57A974:: @ 857A974
- .incbin "baserom.gba", 0x57a974, 0x149c
+Cry_Wobbuffet:: @ 857A974
+ .incbin "sound/direct_sound_samples/cry_wobbuffet.bin"
.align 2
-CryDirectSound_57BE10:: @ 857BE10
- .incbin "baserom.gba", 0x57be10, 0xeb4
+Cry_Girafarig:: @ 857BE10
+ .incbin "sound/direct_sound_samples/cry_girafarig.bin"
.align 2
-CryDirectSound_57CCC4:: @ 857CCC4
- .incbin "baserom.gba", 0x57ccc4, 0xd60
+Cry_Pineco:: @ 857CCC4
+ .incbin "sound/direct_sound_samples/cry_pineco.bin"
.align 2
-CryDirectSound_57DA24:: @ 857DA24
- .incbin "baserom.gba", 0x57da24, 0x1408
+Cry_Forretress:: @ 857DA24
+ .incbin "sound/direct_sound_samples/cry_forretress.bin"
.align 2
-CryDirectSound_57EE2C:: @ 857EE2C
- .incbin "baserom.gba", 0x57ee2c, 0xfe0
+Cry_Dunsparce:: @ 857EE2C
+ .incbin "sound/direct_sound_samples/cry_dunsparce.bin"
.align 2
-CryDirectSound_57FE0C:: @ 857FE0C
- .incbin "baserom.gba", 0x57fe0c, 0xc20
+Cry_Gligar:: @ 857FE0C
+ .incbin "sound/direct_sound_samples/cry_gligar.bin"
.align 2
-CryDirectSound_580A2C:: @ 8580A2C
- .incbin "baserom.gba", 0x580a2c, 0x2628
+Cry_Steelix:: @ 8580A2C
+ .incbin "sound/direct_sound_samples/cry_steelix.bin"
.align 2
-CryDirectSound_583054:: @ 8583054
- .incbin "baserom.gba", 0x583054, 0xe74
+Cry_Snubbull:: @ 8583054
+ .incbin "sound/direct_sound_samples/cry_snubbull.bin"
.align 2
-CryDirectSound_583EC8:: @ 8583EC8
- .incbin "baserom.gba", 0x583ec8, 0x17a4
+Cry_Granbull:: @ 8583EC8
+ .incbin "sound/direct_sound_samples/cry_granbull.bin"
.align 2
-CryDirectSound_58566C:: @ 858566C
- .incbin "baserom.gba", 0x58566c, 0xb9c
+Cry_Qwilfish:: @ 858566C
+ .incbin "sound/direct_sound_samples/cry_qwilfish.bin"
.align 2
-CryDirectSound_586208:: @ 8586208
- .incbin "baserom.gba", 0x586208, 0x16fc
+Cry_Scizor:: @ 8586208
+ .incbin "sound/direct_sound_samples/cry_scizor.bin"
.align 2
-CryDirectSound_587904:: @ 8587904
- .incbin "baserom.gba", 0x587904, 0xa34
+Cry_Shuckle:: @ 8587904
+ .incbin "sound/direct_sound_samples/cry_shuckle.bin"
.align 2
-CryDirectSound_588338:: @ 8588338
- .incbin "baserom.gba", 0x588338, 0x1254
+Cry_Heracross:: @ 8588338
+ .incbin "sound/direct_sound_samples/cry_heracross.bin"
.align 2
-CryDirectSound_58958C:: @ 858958C
- .incbin "baserom.gba", 0x58958c, 0x924
+Cry_Sneasel:: @ 858958C
+ .incbin "sound/direct_sound_samples/cry_sneasel.bin"
.align 2
-CryDirectSound_589EB0:: @ 8589EB0
- .incbin "baserom.gba", 0x589eb0, 0x108c
+Cry_Teddiursa:: @ 8589EB0
+ .incbin "sound/direct_sound_samples/cry_teddiursa.bin"
.align 2
-CryDirectSound_58AF3C:: @ 858AF3C
- .incbin "baserom.gba", 0x58af3c, 0x1dd8
+Cry_Ursaring:: @ 858AF3C
+ .incbin "sound/direct_sound_samples/cry_ursaring.bin"
.align 2
-CryDirectSound_58CD14:: @ 858CD14
- .incbin "baserom.gba", 0x58cd14, 0x1118
+Cry_Slugma:: @ 858CD14
+ .incbin "sound/direct_sound_samples/cry_slugma.bin"
.align 2
-CryDirectSound_58DE2C:: @ 858DE2C
- .incbin "baserom.gba", 0x58de2c, 0x1508
+Cry_Magcargo:: @ 858DE2C
+ .incbin "sound/direct_sound_samples/cry_magcargo.bin"
.align 2
-CryDirectSound_58F334:: @ 858F334
- .incbin "baserom.gba", 0x58f334, 0xca8
+Cry_Swinub:: @ 858F334
+ .incbin "sound/direct_sound_samples/cry_swinub.bin"
.align 2
-CryDirectSound_58FFDC:: @ 858FFDC
- .incbin "baserom.gba", 0x58ffdc, 0xcf4
+Cry_Piloswine:: @ 858FFDC
+ .incbin "sound/direct_sound_samples/cry_piloswine.bin"
.align 2
-CryDirectSound_590CD0:: @ 8590CD0
- .incbin "baserom.gba", 0x590cd0, 0xce0
+Cry_Corsola:: @ 8590CD0
+ .incbin "sound/direct_sound_samples/cry_corsola.bin"
.align 2
-CryDirectSound_5919B0:: @ 85919B0
- .incbin "baserom.gba", 0x5919b0, 0xa90
+Cry_Remoraid:: @ 85919B0
+ .incbin "sound/direct_sound_samples/cry_remoraid.bin"
.align 2
-CryDirectSound_592440:: @ 8592440
- .incbin "baserom.gba", 0x592440, 0x1a44
+Cry_Octillery:: @ 8592440
+ .incbin "sound/direct_sound_samples/cry_octillery.bin"
.align 2
-CryDirectSound_593E84:: @ 8593E84
- .incbin "baserom.gba", 0x593e84, 0x1034
+Cry_Delibird:: @ 8593E84
+ .incbin "sound/direct_sound_samples/cry_delibird.bin"
.align 2
-CryDirectSound_594EB8:: @ 8594EB8
- .incbin "baserom.gba", 0x594eb8, 0xfc8
+Cry_Mantine:: @ 8594EB8
+ .incbin "sound/direct_sound_samples/cry_mantine.bin"
.align 2
-CryDirectSound_595E80:: @ 8595E80
- .incbin "baserom.gba", 0x595e80, 0x1808
+Cry_Skarmory:: @ 8595E80
+ .incbin "sound/direct_sound_samples/cry_skarmory.bin"
.align 2
-CryDirectSound_597688:: @ 8597688
- .incbin "baserom.gba", 0x597688, 0xca8
+Cry_Houndour:: @ 8597688
+ .incbin "sound/direct_sound_samples/cry_houndour.bin"
.align 2
-CryDirectSound_598330:: @ 8598330
- .incbin "baserom.gba", 0x598330, 0x13b0
+Cry_Houndoom:: @ 8598330
+ .incbin "sound/direct_sound_samples/cry_houndoom.bin"
.align 2
-CryDirectSound_5996E0:: @ 85996E0
- .incbin "baserom.gba", 0x5996e0, 0xdd8
+Cry_Kingdra:: @ 85996E0
+ .incbin "sound/direct_sound_samples/cry_kingdra.bin"
.align 2
-CryDirectSound_59A4B8:: @ 859A4B8
- .incbin "baserom.gba", 0x59a4b8, 0xb50
+Cry_Phanpy:: @ 859A4B8
+ .incbin "sound/direct_sound_samples/cry_phanpy.bin"
.align 2
-CryDirectSound_59B008:: @ 859B008
- .incbin "baserom.gba", 0x59b008, 0x1124
+Cry_Donphan:: @ 859B008
+ .incbin "sound/direct_sound_samples/cry_donphan.bin"
.align 2
-CryDirectSound_59C12C:: @ 859C12C
- .incbin "baserom.gba", 0x59c12c, 0xfb8
+Cry_Porygon2:: @ 859C12C
+ .incbin "sound/direct_sound_samples/cry_porygon2.bin"
.align 2
-CryDirectSound_59D0E4:: @ 859D0E4
- .incbin "baserom.gba", 0x59d0e4, 0x167c
+Cry_Stantler:: @ 859D0E4
+ .incbin "sound/direct_sound_samples/cry_stantler.bin"
.align 2
-CryDirectSound_59E760:: @ 859E760
- .incbin "baserom.gba", 0x59e760, 0xa34
+Cry_Smeargle:: @ 859E760
+ .incbin "sound/direct_sound_samples/cry_smeargle.bin"
.align 2
-CryDirectSound_59F194:: @ 859F194
- .incbin "baserom.gba", 0x59f194, 0x1028
+Cry_Tyrogue:: @ 859F194
+ .incbin "sound/direct_sound_samples/cry_tyrogue.bin"
.align 2
-CryDirectSound_5A01BC:: @ 85A01BC
- .incbin "baserom.gba", 0x5a01bc, 0xde0
+Cry_Hitmontop:: @ 85A01BC
+ .incbin "sound/direct_sound_samples/cry_hitmontop.bin"
.align 2
-CryDirectSound_5A0F9C:: @ 85A0F9C
- .incbin "baserom.gba", 0x5a0f9c, 0xbb4
+Cry_Smoochum:: @ 85A0F9C
+ .incbin "sound/direct_sound_samples/cry_smoochum.bin"
.align 2
-CryDirectSound_5A1B50:: @ 85A1B50
- .incbin "baserom.gba", 0x5a1b50, 0xa8c
+Cry_Elekid:: @ 85A1B50
+ .incbin "sound/direct_sound_samples/cry_elekid.bin"
.align 2
-CryDirectSound_5A25DC:: @ 85A25DC
- .incbin "baserom.gba", 0x5a25dc, 0xe70
+Cry_Magby:: @ 85A25DC
+ .incbin "sound/direct_sound_samples/cry_magby.bin"
.align 2
-CryDirectSound_5A344C:: @ 85A344C
- .incbin "baserom.gba", 0x5a344c, 0xedc
+Cry_Miltank:: @ 85A344C
+ .incbin "sound/direct_sound_samples/cry_miltank.bin"
.align 2
-CryDirectSound_5A4328:: @ 85A4328
- .incbin "baserom.gba", 0x5a4328, 0x1094
+Cry_Blissey:: @ 85A4328
+ .incbin "sound/direct_sound_samples/cry_blissey.bin"
.align 2
-CryDirectSound_5A53BC:: @ 85A53BC
- .incbin "baserom.gba", 0x5a53bc, 0x1170
+Cry_Raikou:: @ 85A53BC
+ .incbin "sound/direct_sound_samples/cry_raikou.bin"
.align 2
-CryDirectSound_5A652C:: @ 85A652C
- .incbin "baserom.gba", 0x5a652c, 0x1474
+Cry_Entei:: @ 85A652C
+ .incbin "sound/direct_sound_samples/cry_entei.bin"
.align 2
-CryDirectSound_5A79A0:: @ 85A79A0
- .incbin "baserom.gba", 0x5a79a0, 0x1248
+Cry_Suicune:: @ 85A79A0
+ .incbin "sound/direct_sound_samples/cry_suicune.bin"
.align 2
-CryDirectSound_5A8BE8:: @ 85A8BE8
- .incbin "baserom.gba", 0x5a8be8, 0xcb0
+Cry_Larvitar:: @ 85A8BE8
+ .incbin "sound/direct_sound_samples/cry_larvitar.bin"
.align 2
-CryDirectSound_5A9898:: @ 85A9898
- .incbin "baserom.gba", 0x5a9898, 0x870
+Cry_Pupitar:: @ 85A9898
+ .incbin "sound/direct_sound_samples/cry_pupitar.bin"
.align 2
-CryDirectSound_5AA108:: @ 85AA108
- .incbin "baserom.gba", 0x5aa108, 0x1760
+Cry_Tyranitar:: @ 85AA108
+ .incbin "sound/direct_sound_samples/cry_tyranitar.bin"
.align 2
-CryDirectSound_5AB868:: @ 85AB868
- .incbin "baserom.gba", 0x5ab868, 0x25f8
+Cry_Lugia:: @ 85AB868
+ .incbin "sound/direct_sound_samples/cry_lugia.bin"
.align 2
-CryDirectSound_5ADE60:: @ 85ADE60
- .incbin "baserom.gba", 0x5ade60, 0x1694
+Cry_HoOh:: @ 85ADE60
+ .incbin "sound/direct_sound_samples/cry_ho_oh.bin"
.align 2
-CryDirectSound_5AF4F4:: @ 85AF4F4
- .incbin "baserom.gba", 0x5af4f4, 0xe78
+Cry_Celebi:: @ 85AF4F4
+ .incbin "sound/direct_sound_samples/cry_celebi.bin"
.align 2
-CryDirectSound_5B036C:: @ 85B036C
- .incbin "baserom.gba", 0x5b036c, 0x860
+Cry_Kecleon:: @ 85B036C
+ .incbin "sound/direct_sound_samples/cry_kecleon.bin"
.align 2
-CryDirectSound_5B0BCC:: @ 85B0BCC
- .incbin "baserom.gba", 0x5b0bcc, 0xac0
+Cry_Roselia:: @ 85B0BCC
+ .incbin "sound/direct_sound_samples/cry_roselia.bin"
.align 2
-CryDirectSound_5B168C:: @ 85B168C
- .incbin "baserom.gba", 0x5b168c, 0x94c
+Cry_Torkoal:: @ 85B168C
+ .incbin "sound/direct_sound_samples/cry_torkoal.bin"
.align 2
-CryDirectSound_5B1FD8:: @ 85B1FD8
- .incbin "baserom.gba", 0x5b1fd8, 0xc5c
+Cry_Electrike:: @ 85B1FD8
+ .incbin "sound/direct_sound_samples/cry_electrike.bin"
.align 2
-CryDirectSound_5B2C34:: @ 85B2C34
- .incbin "baserom.gba", 0x5b2c34, 0x1508
+Cry_Manectric:: @ 85B2C34
+ .incbin "sound/direct_sound_samples/cry_manectric.bin"
.align 2
-CryDirectSound_5B413C:: @ 85B413C
- .incbin "baserom.gba", 0x5b413c, 0xa98
+Cry_Duskull:: @ 85B413C
+ .incbin "sound/direct_sound_samples/cry_duskull.bin"
.align 2
-CryDirectSound_5B4BD4:: @ 85B4BD4
- .incbin "baserom.gba", 0x5b4bd4, 0xc30
+Cry_Latias:: @ 85B4BD4
+ .incbin "sound/direct_sound_samples/cry_latias.bin"
.align 2
-CryDirectSound_5B5804:: @ 85B5804
- .incbin "baserom.gba", 0x5b5804, 0xde0
+Cry_Wynaut:: @ 85B5804
+ .incbin "sound/direct_sound_samples/cry_wynaut.bin"
.align 2
-CryDirectSound_5B65E4:: @ 85B65E4
- .incbin "baserom.gba", 0x5b65e4, 0xba0
+Cry_Seviper:: @ 85B65E4
+ .incbin "sound/direct_sound_samples/cry_seviper.bin"
.align 2
-CryDirectSound_5B7184:: @ 85B7184
- .incbin "baserom.gba", 0x5b7184, 0x170c
+Cry_Sharpedo:: @ 85B7184
+ .incbin "sound/direct_sound_samples/cry_sharpedo.bin"
.align 2
-CryDirectSound_5B8890:: @ 85B8890
- .incbin "baserom.gba", 0x5b8890, 0x990
+Cry_Zangoose:: @ 85B8890
+ .incbin "sound/direct_sound_samples/cry_zangoose.bin"
.align 2
-CryDirectSound_5B9220:: @ 85B9220
- .incbin "baserom.gba", 0x5b9220, 0xa68
+Cry_Azurill:: @ 85B9220
+ .incbin "sound/direct_sound_samples/cry_azurill.bin"
.align 2
-CryDirectSound_5B9C88:: @ 85B9C88
- .incbin "baserom.gba", 0x5b9c88, 0x598
+Cry_Swablu:: @ 85B9C88
+ .incbin "sound/direct_sound_samples/cry_swablu.bin"
.align 2
-CryDirectSound_5BA220:: @ 85BA220
- .incbin "baserom.gba", 0x5ba220, 0xb1c
+Cry_Altaria:: @ 85BA220
+ .incbin "sound/direct_sound_samples/cry_altaria.bin"
.align 2
-CryDirectSound_5BAD3C:: @ 85BAD3C
- .incbin "baserom.gba", 0x5bad3c, 0x954
+Cry_Unused265:: @ 85BAD3C
+ .incbin "sound/direct_sound_samples/cry_unused_265.bin"
.align 2
-CryDirectSound_5BB690:: @ 85BB690
- .incbin "baserom.gba", 0x5bb690, 0x600
+Cry_Taillow:: @ 85BB690
+ .incbin "sound/direct_sound_samples/cry_taillow.bin"
.align 2
-CryDirectSound_5BBC90:: @ 85BBC90
- .incbin "baserom.gba", 0x5bbc90, 0x904
+Cry_Swellow:: @ 85BBC90
+ .incbin "sound/direct_sound_samples/cry_swellow.bin"
.align 2
-CryDirectSound_5BC594:: @ 85BC594
- .incbin "baserom.gba", 0x5bc594, 0x11b0
+Cry_Unused268:: @ 85BC594
+ .incbin "sound/direct_sound_samples/cry_unused_268.bin"
.align 2
-CryDirectSound_5BD744:: @ 85BD744
- .incbin "baserom.gba", 0x5bd744, 0xc6c
+Cry_Spinda:: @ 85BD744
+ .incbin "sound/direct_sound_samples/cry_spinda.bin"
.align 2
-CryDirectSound_5BE3B0:: @ 85BE3B0
- .incbin "baserom.gba", 0x5be3b0, 0x9a8
+Cry_Torchic:: @ 85BE3B0
+ .incbin "sound/direct_sound_samples/cry_torchic.bin"
.align 2
-CryDirectSound_5BED58:: @ 85BED58
- .incbin "baserom.gba", 0x5bed58, 0x1cd4
+Cry_Combusken:: @ 85BED58
+ .incbin "sound/direct_sound_samples/cry_combusken.bin"
.align 2
-CryDirectSound_5C0A2C:: @ 85C0A2C
- .incbin "baserom.gba", 0x5c0a2c, 0x1f80
+Cry_Blaziken:: @ 85C0A2C
+ .incbin "sound/direct_sound_samples/cry_blaziken.bin"
.align 2
-CryDirectSound_5C29AC:: @ 85C29AC
- .incbin "baserom.gba", 0x5c29ac, 0xba8
+Cry_Treecko:: @ 85C29AC
+ .incbin "sound/direct_sound_samples/cry_treecko.bin"
.align 2
-CryDirectSound_5C3554:: @ 85C3554
- .incbin "baserom.gba", 0x5c3554, 0x1474
+Cry_Grovyle:: @ 85C3554
+ .incbin "sound/direct_sound_samples/cry_grovyle.bin"
.align 2
-CryDirectSound_5C49C8:: @ 85C49C8
- .incbin "baserom.gba", 0x5c49c8, 0x1a1c
+Cry_Sceptile:: @ 85C49C8
+ .incbin "sound/direct_sound_samples/cry_sceptile.bin"
.align 2
-CryDirectSound_5C63E4:: @ 85C63E4
- .incbin "baserom.gba", 0x5c63e4, 0x784
+Cry_Mudkip:: @ 85C63E4
+ .incbin "sound/direct_sound_samples/cry_mudkip.bin"
.align 2
-CryDirectSound_5C6B68:: @ 85C6B68
- .incbin "baserom.gba", 0x5c6b68, 0x1104
+Cry_Marshtomp:: @ 85C6B68
+ .incbin "sound/direct_sound_samples/cry_marshtomp.bin"
.align 2
-CryDirectSound_5C7C6C:: @ 85C7C6C
- .incbin "baserom.gba", 0x5c7c6c, 0x1680
+Cry_Swampert:: @ 85C7C6C
+ .incbin "sound/direct_sound_samples/cry_swampert.bin"
.align 2
-CryDirectSound_5C92EC:: @ 85C92EC
- .incbin "baserom.gba", 0x5c92ec, 0xbc8
+Cry_Pelipper:: @ 85C92EC
+ .incbin "sound/direct_sound_samples/cry_pelipper.bin"
.align 2
-CryDirectSound_5C9EB4:: @ 85C9EB4
- .incbin "baserom.gba", 0x5c9eb4, 0xc40
+Cry_Wingull:: @ 85C9EB4
+ .incbin "sound/direct_sound_samples/cry_wingull.bin"
.align 2
-CryDirectSound_5CAAF4:: @ 85CAAF4
- .incbin "baserom.gba", 0x5caaf4, 0xca8
+Cry_Banette:: @ 85CAAF4
+ .incbin "sound/direct_sound_samples/cry_banette.bin"
.align 2
-CryDirectSound_5CB79C:: @ 85CB79C
- .incbin "baserom.gba", 0x5cb79c, 0x840
+Cry_Shuppet:: @ 85CB79C
+ .incbin "sound/direct_sound_samples/cry_shuppet.bin"
.align 2
-CryDirectSound_5CBFDC:: @ 85CBFDC
- .incbin "baserom.gba", 0x5cbfdc, 0x468
+Cry_Lotad:: @ 85CBFDC
+ .incbin "sound/direct_sound_samples/cry_lotad.bin"
.align 2
-CryDirectSound_5CC444:: @ 85CC444
- .incbin "baserom.gba", 0x5cc444, 0xe94
+Cry_Lombre:: @ 85CC444
+ .incbin "sound/direct_sound_samples/cry_lombre.bin"
.align 2
-CryDirectSound_5CD2D8:: @ 85CD2D8
- .incbin "baserom.gba", 0x5cd2d8, 0x10d0
+Cry_Ludicolo:: @ 85CD2D8
+ .incbin "sound/direct_sound_samples/cry_ludicolo.bin"
.align 2
-CryDirectSound_5CE3A8:: @ 85CE3A8
- .incbin "baserom.gba", 0x5ce3a8, 0x82c
+Cry_Seedot:: @ 85CE3A8
+ .incbin "sound/direct_sound_samples/cry_seedot.bin"
.align 2
-CryDirectSound_5CEBD4:: @ 85CEBD4
- .incbin "baserom.gba", 0x5cebd4, 0xb68
+Cry_Nuzleaf:: @ 85CEBD4
+ .incbin "sound/direct_sound_samples/cry_nuzleaf.bin"
.align 2
-CryDirectSound_5CF73C:: @ 85CF73C
- .incbin "baserom.gba", 0x5cf73c, 0x13c4
+Cry_Shiftry:: @ 85CF73C
+ .incbin "sound/direct_sound_samples/cry_shiftry.bin"
.align 2
-CryDirectSound_5D0B00:: @ 85D0B00
- .incbin "baserom.gba", 0x5d0b00, 0xa14
+Cry_Carvanha:: @ 85D0B00
+ .incbin "sound/direct_sound_samples/cry_carvanha.bin"
.align 2
-CryDirectSound_5D1514:: @ 85D1514
- .incbin "baserom.gba", 0x5d1514, 0x8cc
+Cry_Wurmple:: @ 85D1514
+ .incbin "sound/direct_sound_samples/cry_wurmple.bin"
.align 2
-CryDirectSound_5D1DE0:: @ 85D1DE0
- .incbin "baserom.gba", 0x5d1de0, 0x102c
+Cry_Silcoon:: @ 85D1DE0
+ .incbin "sound/direct_sound_samples/cry_silcoon.bin"
.align 2
-CryDirectSound_5D2E0C:: @ 85D2E0C
- .incbin "baserom.gba", 0x5d2e0c, 0x838
+Cry_Beautifly:: @ 85D2E0C
+ .incbin "sound/direct_sound_samples/cry_beautifly.bin"
.align 2
-CryDirectSound_5D3644:: @ 85D3644
- .incbin "baserom.gba", 0x5d3644, 0x1044
+Cry_Cascoon:: @ 85D3644
+ .incbin "sound/direct_sound_samples/cry_cascoon.bin"
.align 2
-CryDirectSound_5D4688:: @ 85D4688
- .incbin "baserom.gba", 0x5d4688, 0xcac
+Cry_Dustox:: @ 85D4688
+ .incbin "sound/direct_sound_samples/cry_dustox.bin"
.align 2
-CryDirectSound_5D5334:: @ 85D5334
- .incbin "baserom.gba", 0x5d5334, 0xa1c
+Cry_Ralts:: @ 85D5334
+ .incbin "sound/direct_sound_samples/cry_ralts.bin"
.align 2
-CryDirectSound_5D5D50:: @ 85D5D50
- .incbin "baserom.gba", 0x5d5d50, 0xc30
+Cry_Kirlia:: @ 85D5D50
+ .incbin "sound/direct_sound_samples/cry_kirlia.bin"
.align 2
-CryDirectSound_5D6980:: @ 85D6980
- .incbin "baserom.gba", 0x5d6980, 0x1864
+Cry_Gardevoir:: @ 85D6980
+ .incbin "sound/direct_sound_samples/cry_gardevoir.bin"
.align 2
-CryDirectSound_5D81E4:: @ 85D81E4
- .incbin "baserom.gba", 0x5d81e4, 0x884
+Cry_Slakoth:: @ 85D81E4
+ .incbin "sound/direct_sound_samples/cry_slakoth.bin"
.align 2
-CryDirectSound_5D8A68:: @ 85D8A68
- .incbin "baserom.gba", 0x5d8a68, 0xe58
+Cry_Vigoroth:: @ 85D8A68
+ .incbin "sound/direct_sound_samples/cry_vigoroth.bin"
.align 2
-CryDirectSound_5D98C0:: @ 85D98C0
- .incbin "baserom.gba", 0x5d98c0, 0x9ec
+Cry_Slaking:: @ 85D98C0
+ .incbin "sound/direct_sound_samples/cry_slaking.bin"
.align 2
-CryDirectSound_5DA2AC:: @ 85DA2AC
- .incbin "baserom.gba", 0x5da2ac, 0x670
+Cry_Nincada:: @ 85DA2AC
+ .incbin "sound/direct_sound_samples/cry_nincada.bin"
.align 2
-CryDirectSound_5DA91C:: @ 85DA91C
- .incbin "baserom.gba", 0x5da91c, 0xc28
+Cry_Ninjask:: @ 85DA91C
+ .incbin "sound/direct_sound_samples/cry_ninjask.bin"
.align 2
-CryDirectSound_5DB544:: @ 85DB544
- .incbin "baserom.gba", 0x5db544, 0x7b8
+Cry_Shedinja:: @ 85DB544
+ .incbin "sound/direct_sound_samples/cry_shedinja.bin"
.align 2
-CryDirectSound_5DBCFC:: @ 85DBCFC
- .incbin "baserom.gba", 0x5dbcfc, 0x75c
+Cry_Makuhita:: @ 85DBCFC
+ .incbin "sound/direct_sound_samples/cry_makuhita.bin"
.align 2
-CryDirectSound_5DC458:: @ 85DC458
- .incbin "baserom.gba", 0x5dc458, 0x10b8
+Cry_Hariyama:: @ 85DC458
+ .incbin "sound/direct_sound_samples/cry_hariyama.bin"
.align 2
-CryDirectSound_5DD510:: @ 85DD510
- .incbin "baserom.gba", 0x5dd510, 0xd64
+Cry_Nosepass:: @ 85DD510
+ .incbin "sound/direct_sound_samples/cry_nosepass.bin"
.align 2
-CryDirectSound_5DE274:: @ 85DE274
- .incbin "baserom.gba", 0x5de274, 0x14e4
+Cry_Glalie:: @ 85DE274
+ .incbin "sound/direct_sound_samples/cry_glalie.bin"
.align 2
-CryDirectSound_5DF758:: @ 85DF758
- .incbin "baserom.gba", 0x5df758, 0x8fc
+Cry_Plusle:: @ 85DF758
+ .incbin "sound/direct_sound_samples/cry_plusle.bin"
.align 2
-CryDirectSound_5E0054:: @ 85E0054
- .incbin "baserom.gba", 0x5e0054, 0x1008
+Cry_Minun:: @ 85E0054
+ .incbin "sound/direct_sound_samples/cry_minun.bin"
.align 2
-CryDirectSound_5E105C:: @ 85E105C
- .incbin "baserom.gba", 0x5e105c, 0xa80
+Cry_Surskit:: @ 85E105C
+ .incbin "sound/direct_sound_samples/cry_surskit.bin"
.align 2
-CryDirectSound_5E1ADC:: @ 85E1ADC
- .incbin "baserom.gba", 0x5e1adc, 0x13b4
+Cry_Masquerain:: @ 85E1ADC
+ .incbin "sound/direct_sound_samples/cry_masquerain.bin"
.align 2
-CryDirectSound_5E2E90:: @ 85E2E90
- .incbin "baserom.gba", 0x5e2e90, 0x714
+Cry_Skitty:: @ 85E2E90
+ .incbin "sound/direct_sound_samples/cry_skitty.bin"
.align 2
-CryDirectSound_5E35A4:: @ 85E35A4
- .incbin "baserom.gba", 0x5e35a4, 0x1518
+Cry_Delcatty:: @ 85E35A4
+ .incbin "sound/direct_sound_samples/cry_delcatty.bin"
.align 2
-CryDirectSound_5E4ABC:: @ 85E4ABC
- .incbin "baserom.gba", 0x5e4abc, 0x804
+Cry_Gulpin:: @ 85E4ABC
+ .incbin "sound/direct_sound_samples/cry_gulpin.bin"
.align 2
-CryDirectSound_5E52C0:: @ 85E52C0
- .incbin "baserom.gba", 0x5e52c0, 0x1160
+Cry_Swalot:: @ 85E52C0
+ .incbin "sound/direct_sound_samples/cry_swalot.bin"
.align 2
-CryDirectSound_5E6420:: @ 85E6420
- .incbin "baserom.gba", 0x5e6420, 0x94c
+Cry_Numel:: @ 85E6420
+ .incbin "sound/direct_sound_samples/cry_numel.bin"
.align 2
-CryDirectSound_5E6D6C:: @ 85E6D6C
- .incbin "baserom.gba", 0x5e6d6c, 0x1720
+Cry_Camerupt:: @ 85E6D6C
+ .incbin "sound/direct_sound_samples/cry_camerupt.bin"
.align 2
-CryDirectSound_5E848C:: @ 85E848C
- .incbin "baserom.gba", 0x5e848c, 0x93c
+Cry_Barboach:: @ 85E848C
+ .incbin "sound/direct_sound_samples/cry_barboach.bin"
.align 2
-CryDirectSound_5E8DC8:: @ 85E8DC8
- .incbin "baserom.gba", 0x5e8dc8, 0x10fc
+Cry_Whiscash:: @ 85E8DC8
+ .incbin "sound/direct_sound_samples/cry_whiscash.bin"
.align 2
-CryDirectSound_5E9EC4:: @ 85E9EC4
- .incbin "baserom.gba", 0x5e9ec4, 0xc04
+Cry_Corphish:: @ 85E9EC4
+ .incbin "sound/direct_sound_samples/cry_corphish.bin"
.align 2
-CryDirectSound_5EAAC8:: @ 85EAAC8
- .incbin "baserom.gba", 0x5eaac8, 0x18b8
+Cry_Crawdaunt:: @ 85EAAC8
+ .incbin "sound/direct_sound_samples/cry_crawdaunt.bin"
.align 2
-CryDirectSound_5EC380:: @ 85EC380
- .incbin "baserom.gba", 0x5ec380, 0x740
+Cry_Spoink:: @ 85EC380
+ .incbin "sound/direct_sound_samples/cry_spoink.bin"
.align 2
-CryDirectSound_5ECAC0:: @ 85ECAC0
- .incbin "baserom.gba", 0x5ecac0, 0xca0
+Cry_Grumpig:: @ 85ECAC0
+ .incbin "sound/direct_sound_samples/cry_grumpig.bin"
.align 2
-CryDirectSound_5ED760:: @ 85ED760
- .incbin "baserom.gba", 0x5ed760, 0xa24
+Cry_Trapinch:: @ 85ED760
+ .incbin "sound/direct_sound_samples/cry_trapinch.bin"
.align 2
-CryDirectSound_5EE184:: @ 85EE184
- .incbin "baserom.gba", 0x5ee184, 0xe04
+Cry_Vibrava:: @ 85EE184
+ .incbin "sound/direct_sound_samples/cry_vibrava.bin"
.align 2
-CryDirectSound_5EEF88:: @ 85EEF88
- .incbin "baserom.gba", 0x5eef88, 0x1a08
+Cry_Flygon:: @ 85EEF88
+ .incbin "sound/direct_sound_samples/cry_flygon.bin"
.align 2
-CryDirectSound_5F0990:: @ 85F0990
- .incbin "baserom.gba", 0x5f0990, 0x8f0
+Cry_Cacnea:: @ 85F0990
+ .incbin "sound/direct_sound_samples/cry_cacnea.bin"
.align 2
-CryDirectSound_5F1280:: @ 85F1280
- .incbin "baserom.gba", 0x5f1280, 0x16b0
+Cry_Cacturne:: @ 85F1280
+ .incbin "sound/direct_sound_samples/cry_cacturne.bin"
.align 2
-CryDirectSound_5F2930:: @ 85F2930
- .incbin "baserom.gba", 0x5f2930, 0xc84
+Cry_Baltoy:: @ 85F2930
+ .incbin "sound/direct_sound_samples/cry_baltoy.bin"
.align 2
-CryDirectSound_5F35B4:: @ 85F35B4
- .incbin "baserom.gba", 0x5f35b4, 0x1360
+Cry_Claydol:: @ 85F35B4
+ .incbin "sound/direct_sound_samples/cry_claydol.bin"
.align 2
-CryDirectSound_5F4914:: @ 85F4914
- .incbin "baserom.gba", 0x5f4914, 0x17fc
+Cry_Lunatone:: @ 85F4914
+ .incbin "sound/direct_sound_samples/cry_lunatone.bin"
.align 2
-CryDirectSound_5F6110:: @ 85F6110
- .incbin "baserom.gba", 0x5f6110, 0x102c
+Cry_Solrock:: @ 85F6110
+ .incbin "sound/direct_sound_samples/cry_solrock.bin"
.align 2
-CryDirectSound_5F713C:: @ 85F713C
- .incbin "baserom.gba", 0x5f713c, 0x7d4
+Cry_Feebas:: @ 85F713C
+ .incbin "sound/direct_sound_samples/cry_feebas.bin"
.align 2
-CryDirectSound_5F7910:: @ 85F7910
- .incbin "baserom.gba", 0x5f7910, 0x2744
+Cry_Milotic:: @ 85F7910
+ .incbin "sound/direct_sound_samples/cry_milotic.bin"
.align 2
-CryDirectSound_5FA054:: @ 85FA054
- .incbin "baserom.gba", 0x5fa054, 0xa7c
+Cry_Absol:: @ 85FA054
+ .incbin "sound/direct_sound_samples/cry_absol.bin"
.align 2
-CryDirectSound_5FAAD0:: @ 85FAAD0
- .incbin "baserom.gba", 0x5faad0, 0x820
+Cry_Meditite:: @ 85FAAD0
+ .incbin "sound/direct_sound_samples/cry_meditite.bin"
.align 2
-CryDirectSound_5FB2F0:: @ 85FB2F0
- .incbin "baserom.gba", 0x5fb2f0, 0x1084
+Cry_Medicham:: @ 85FB2F0
+ .incbin "sound/direct_sound_samples/cry_medicham.bin"
.align 2
-CryDirectSound_5FC374:: @ 85FC374
- .incbin "baserom.gba", 0x5fc374, 0x5b4
+Cry_Spheal:: @ 85FC374
+ .incbin "sound/direct_sound_samples/cry_spheal.bin"
.align 2
-CryDirectSound_5FC928:: @ 85FC928
- .incbin "baserom.gba", 0x5fc928, 0xbd8
+Cry_Sealeo:: @ 85FC928
+ .incbin "sound/direct_sound_samples/cry_sealeo.bin"
.align 2
-CryDirectSound_5FD500:: @ 85FD500
- .incbin "baserom.gba", 0x5fd500, 0x244c
+Cry_Walrein:: @ 85FD500
+ .incbin "sound/direct_sound_samples/cry_walrein.bin"
.align 2
-CryDirectSound_5FF94C:: @ 85FF94C
- .incbin "baserom.gba", 0x5ff94c, 0x1250
+Cry_Clamperl:: @ 85FF94C
+ .incbin "sound/direct_sound_samples/cry_clamperl.bin"
.align 2
-CryDirectSound_600B9C:: @ 8600B9C
- .incbin "baserom.gba", 0x600b9c, 0xfe8
+Cry_Huntail:: @ 8600B9C
+ .incbin "sound/direct_sound_samples/cry_huntail.bin"
.align 2
-CryDirectSound_601B84:: @ 8601B84
- .incbin "baserom.gba", 0x601b84, 0x166c
+Cry_Gorebyss:: @ 8601B84
+ .incbin "sound/direct_sound_samples/cry_gorebyss.bin"
.align 2
-CryDirectSound_6031F0:: @ 86031F0
- .incbin "baserom.gba", 0x6031f0, 0x9a8
+Cry_Lileep:: @ 86031F0
+ .incbin "sound/direct_sound_samples/cry_lileep.bin"
.align 2
-CryDirectSound_603B98:: @ 8603B98
- .incbin "baserom.gba", 0x603b98, 0x1d30
+Cry_Cradily:: @ 8603B98
+ .incbin "sound/direct_sound_samples/cry_cradily.bin"
.align 2
-CryDirectSound_6058C8:: @ 86058C8
- .incbin "baserom.gba", 0x6058c8, 0xbb8
+Cry_Anorith:: @ 86058C8
+ .incbin "sound/direct_sound_samples/cry_anorith.bin"
.align 2
-CryDirectSound_606480:: @ 8606480
- .incbin "baserom.gba", 0x606480, 0x16d4
+Cry_Armaldo:: @ 8606480
+ .incbin "sound/direct_sound_samples/cry_armaldo.bin"
.align 2
-CryDirectSound_607B54:: @ 8607B54
- .incbin "baserom.gba", 0x607b54, 0x9a0
+Cry_Beldum:: @ 8607B54
+ .incbin "sound/direct_sound_samples/cry_beldum.bin"
.align 2
-CryDirectSound_6084F4:: @ 86084F4
- .incbin "baserom.gba", 0x6084f4, 0x12d4
+Cry_Metang:: @ 86084F4
+ .incbin "sound/direct_sound_samples/cry_metang.bin"
.align 2
-CryDirectSound_6097C8:: @ 86097C8
- .incbin "baserom.gba", 0x6097c8, 0x2778
+Cry_Metagross:: @ 86097C8
+ .incbin "sound/direct_sound_samples/cry_metagross.bin"
.align 2
-CryDirectSound_60BF40:: @ 860BF40
- .incbin "baserom.gba", 0x60bf40, 0x7d4
+Cry_Bagon:: @ 860BF40
+ .incbin "sound/direct_sound_samples/cry_bagon.bin"
.align 2
-CryDirectSound_60C714:: @ 860C714
- .incbin "baserom.gba", 0x60c714, 0x1408
+Cry_Shelgon:: @ 860C714
+ .incbin "sound/direct_sound_samples/cry_shelgon.bin"
.align 2
-CryDirectSound_60DB1C:: @ 860DB1C
- .incbin "baserom.gba", 0x60db1c, 0x1fdc
+Cry_Regirock:: @ 860DB1C
+ .incbin "sound/direct_sound_samples/cry_regirock.bin"
.align 2
-CryDirectSound_60FAF8:: @ 860FAF8
- .incbin "baserom.gba", 0x60faf8, 0x2000
+Cry_Regice:: @ 860FAF8
+ .incbin "sound/direct_sound_samples/cry_regice.bin"
.align 2
-CryDirectSound_611AF8:: @ 8611AF8
- .incbin "baserom.gba", 0x611af8, 0x1704
+Cry_Registeel:: @ 8611AF8
+ .incbin "sound/direct_sound_samples/cry_registeel.bin"
.align 2
-CryDirectSound_6131FC:: @ 86131FC
- .incbin "baserom.gba", 0x6131fc, 0xc98
+Cry_Castform:: @ 86131FC
+ .incbin "sound/direct_sound_samples/cry_castform.bin"
.align 2
-CryDirectSound_613E94:: @ 8613E94
- .incbin "baserom.gba", 0x613e94, 0xb88
+Cry_Volbeat:: @ 8613E94
+ .incbin "sound/direct_sound_samples/cry_volbeat.bin"
.align 2
-CryDirectSound_614A1C:: @ 8614A1C
- .incbin "baserom.gba", 0x614a1c, 0x1118
+Cry_Illumise:: @ 8614A1C
+ .incbin "sound/direct_sound_samples/cry_illumise.bin"
.align 2
-CryDirectSound_615B34:: @ 8615B34
- .incbin "baserom.gba", 0x615b34, 0x948
+Cry_Poochyena:: @ 8615B34
+ .incbin "sound/direct_sound_samples/cry_poochyena.bin"
.align 2
-CryDirectSound_61647C:: @ 861647C
- .incbin "baserom.gba", 0x61647c, 0x138c
+Cry_Mightyena:: @ 861647C
+ .incbin "sound/direct_sound_samples/cry_mightyena.bin"
.align 2
-CryDirectSound_617808:: @ 8617808
- .incbin "baserom.gba", 0x617808, 0xdb8
+Cry_Dusclops:: @ 8617808
+ .incbin "sound/direct_sound_samples/cry_dusclops.bin"
.align 2
-CryDirectSound_6185C0:: @ 86185C0
- .incbin "baserom.gba", 0x6185c0, 0xba4
+Cry_Sableye:: @ 86185C0
+ .incbin "sound/direct_sound_samples/cry_sableye.bin"
.align 2
-CryDirectSound_619164:: @ 8619164
- .incbin "baserom.gba", 0x619164, 0xb80
+Cry_Mawile:: @ 8619164
+ .incbin "sound/direct_sound_samples/cry_mawile.bin"
.align 2
-CryDirectSound_619CE4:: @ 8619CE4
- .incbin "baserom.gba", 0x619ce4, 0x92c
+Cry_Aron:: @ 8619CE4
+ .incbin "sound/direct_sound_samples/cry_aron.bin"
.align 2
-CryDirectSound_61A610:: @ 861A610
- .incbin "baserom.gba", 0x61a610, 0x14d8
+Cry_Lairon:: @ 861A610
+ .incbin "sound/direct_sound_samples/cry_lairon.bin"
.align 2
-CryDirectSound_61BAE8:: @ 861BAE8
- .incbin "baserom.gba", 0x61bae8, 0x19a4
+Cry_Aggron:: @ 861BAE8
+ .incbin "sound/direct_sound_samples/cry_aggron.bin"
.align 2
-CryDirectSound_61D48C:: @ 861D48C
- .incbin "baserom.gba", 0x61d48c, 0x1430
+Cry_Relicanth:: @ 861D48C
+ .incbin "sound/direct_sound_samples/cry_relicanth.bin"
.align 2
-CryDirectSound_61E8BC:: @ 861E8BC
- .incbin "baserom.gba", 0x61e8bc, 0x4dc
+Cry_Luvdisc:: @ 861E8BC
+ .incbin "sound/direct_sound_samples/cry_luvdisc.bin"
.align 2
-CryDirectSound_61ED98:: @ 861ED98
- .incbin "baserom.gba", 0x61ed98, 0x250c
+Cry_Groudon:: @ 861ED98
+ .incbin "sound/direct_sound_samples/cry_groudon.bin"
.align 2
-CryDirectSound_6212A4:: @ 86212A4
- .incbin "baserom.gba", 0x6212a4, 0x23b8
+Cry_Kyogre:: @ 86212A4
+ .incbin "sound/direct_sound_samples/cry_kyogre.bin"
.align 2
-CryDirectSound_62365C:: @ 862365C
- .incbin "baserom.gba", 0x62365c, 0x1d2c
+Cry_Rayquaza:: @ 862365C
+ .incbin "sound/direct_sound_samples/cry_rayquaza.bin"
.align 2
-CryDirectSound_625388:: @ 8625388
- .incbin "baserom.gba", 0x625388, 0x191c
+Cry_Salamence:: @ 8625388
+ .incbin "sound/direct_sound_samples/cry_salamence.bin"
.align 2
-CryDirectSound_626CA4:: @ 8626CA4
- .incbin "baserom.gba", 0x626ca4, 0xcc0
+Cry_Breloom:: @ 8626CA4
+ .incbin "sound/direct_sound_samples/cry_breloom.bin"
.align 2
-CryDirectSound_627964:: @ 8627964
- .incbin "baserom.gba", 0x627964, 0x8d8
+Cry_Shroomish:: @ 8627964
+ .incbin "sound/direct_sound_samples/cry_shroomish.bin"
.align 2
-CryDirectSound_62823C:: @ 862823C
- .incbin "baserom.gba", 0x62823c, 0x1e9c
+Cry_Linoone:: @ 862823C
+ .incbin "sound/direct_sound_samples/cry_linoone.bin"
.align 2
-CryDirectSound_62A0D8:: @ 862A0D8
- .incbin "baserom.gba", 0x62a0d8, 0x20c4
+Cry_Tropius:: @ 862A0D8
+ .incbin "sound/direct_sound_samples/cry_tropius.bin"
.align 2
-CryDirectSound_62C19C:: @ 862C19C
- .incbin "baserom.gba", 0x62c19c, 0x1c60
+Cry_Wailmer:: @ 862C19C
+ .incbin "sound/direct_sound_samples/cry_wailmer.bin"
.align 2
-CryDirectSound_62DDFC:: @ 862DDFC
- .incbin "baserom.gba", 0x62ddfc, 0xb90
+Cry_Zigzagoon:: @ 862DDFC
+ .incbin "sound/direct_sound_samples/cry_zigzagoon.bin"
.align 2
-CryDirectSound_62E98C:: @ 862E98C
- .incbin "baserom.gba", 0x62e98c, 0x1c48
+Cry_Exploud:: @ 862E98C
+ .incbin "sound/direct_sound_samples/cry_exploud.bin"
.align 2
-CryDirectSound_6305D4:: @ 86305D4
- .incbin "baserom.gba", 0x6305d4, 0xd28
+Cry_Loudred:: @ 86305D4
+ .incbin "sound/direct_sound_samples/cry_loudred.bin"
.align 2
-CryDirectSound_6312FC:: @ 86312FC
- .incbin "baserom.gba", 0x6312fc, 0x2a10
+Cry_Wailord:: @ 86312FC
+ .incbin "sound/direct_sound_samples/cry_wailord.bin"
.align 2
-CryDirectSound_633D0C:: @ 8633D0C
- .incbin "baserom.gba", 0x633d0c, 0x824
+Cry_Whismur:: @ 8633D0C
+ .incbin "sound/direct_sound_samples/cry_whismur.bin"
.align 2
-CryDirectSound_634530:: @ 8634530
- .incbin "baserom.gba", 0x634530, 0x1108
+Cry_Snorunt:: @ 8634530
+ .incbin "sound/direct_sound_samples/cry_snorunt.bin"
.align 2
-CryDirectSound_635638:: @ 8635638
- .incbin "baserom.gba", 0x635638, 0x15f8
+Cry_Latios:: @ 8635638
+ .incbin "sound/direct_sound_samples/cry_latios.bin"
.align 2
-CryDirectSound_636C30:: @ 8636C30
- .incbin "baserom.gba", 0x636c30, 0xd84
+Cry_Jirachi:: @ 8636C30
+ .incbin "sound/direct_sound_samples/cry_jirachi.bin"
.align 2
-CryDirectSound_6379B4:: @ 86379B4
- .incbin "baserom.gba", 0x6379b4, 0x14d4
+Cry_Deoxys:: @ 86379B4
+ .incbin "sound/direct_sound_samples/cry_deoxys.bin"
.align 2
-CryDirectSound_638E88:: @ 8638E88
- .incbin "baserom.gba", 0x638e88, 0xa10
+Cry_Chimecho:: @ 8638E88
+ .incbin "sound/direct_sound_samples/cry_chimecho.bin"
.align 2
DirectSoundWaveData_8639898:: @ 8639898
- .4byte 0
.incbin "sound/direct_sound_samples/8639898.bin"
- .incbin "sound/direct_sound_samples/8639898.pcm"
.align 2
DirectSoundWaveData_8639EF8:: @ 8639EF8
- .4byte 0x40000000 @ looped directsound
.incbin "sound/direct_sound_samples/8639EF8.bin"
- .incbin "sound/direct_sound_samples/8639EF8.pcm"
.align 2
DirectSoundWaveData_863A3DC:: @ 863A3DC
- .4byte 0
.incbin "sound/direct_sound_samples/863A3DC.bin"
- .incbin "sound/direct_sound_samples/863A3DC.pcm"
.align 2
DirectSoundWaveData_863AD2C:: @ 863AD2C
- .4byte 0
.incbin "sound/direct_sound_samples/863AD2C.bin"
- .incbin "sound/direct_sound_samples/863AD2C.pcm"
.align 2
DirectSoundWaveData_863B79C:: @ 863B79C
- .4byte 0x40000000 @ looped directsound
.incbin "sound/direct_sound_samples/863B79C.bin"
- .incbin "sound/direct_sound_samples/863B79C.pcm"
.align 2
DirectSoundWaveData_863BABC:: @ 863BABC
- .4byte 0
.incbin "sound/direct_sound_samples/863BABC.bin"
- .incbin "sound/direct_sound_samples/863BABC.pcm"
.align 2
DirectSoundWaveData_863C744:: @ 863C744
- .4byte 0
.incbin "sound/direct_sound_samples/863C744.bin"
- .incbin "sound/direct_sound_samples/863C744.pcm"
.align 2
DirectSoundWaveData_863CD64:: @ 863CD64
- .4byte 0x40000000 @ looped directsound
.incbin "sound/direct_sound_samples/863CD64.bin"
- .incbin "sound/direct_sound_samples/863CD64.pcm"
.align 2
DirectSoundWaveData_863D0EC:: @ 863D0EC
- .4byte 0
.incbin "sound/direct_sound_samples/863D0EC.bin"
- .incbin "sound/direct_sound_samples/863D0EC.pcm"
.align 2
DirectSoundWaveData_863DED0:: @ 863DED0
- .4byte 0
.incbin "sound/direct_sound_samples/863DED0.bin"
- .incbin "sound/direct_sound_samples/863DED0.pcm"
.align 2
DirectSoundWaveData_863E840:: @ 863E840
- .4byte 0x40000000 @ looped directsound
.incbin "sound/direct_sound_samples/863E840.bin"
- .incbin "sound/direct_sound_samples/863E840.pcm"
.align 2
DirectSoundWaveData_863EBDC:: @ 863EBDC
- .4byte 0
.incbin "sound/direct_sound_samples/863EBDC.bin"
- .incbin "sound/direct_sound_samples/863EBDC.pcm"
.align 2
DirectSoundWaveData_863F390:: @ 863F390
- .4byte 0
.incbin "sound/direct_sound_samples/863F390.bin"
- .incbin "sound/direct_sound_samples/863F390.pcm"
.align 2
DirectSoundWaveData_86400EC:: @ 86400EC
- .4byte 0x40000000 @ looped directsound
.incbin "sound/direct_sound_samples/86400EC.bin"
- .incbin "sound/direct_sound_samples/86400EC.pcm"
.align 2
DirectSoundWaveData_8640330:: @ 8640330
- .4byte 0
.incbin "sound/direct_sound_samples/8640330.bin"
- .incbin "sound/direct_sound_samples/8640330.pcm"
.align 2
DirectSoundWaveData_8641170:: @ 8641170
- .4byte 0
.incbin "sound/direct_sound_samples/8641170.bin"
- .incbin "sound/direct_sound_samples/8641170.pcm"
.align 2
DirectSoundWaveData_8641AC4:: @ 8641AC4
- .4byte 0x40000000 @ looped directsound
.incbin "sound/direct_sound_samples/8641AC4.bin"
- .incbin "sound/direct_sound_samples/8641AC4.pcm"
.align 2
DirectSoundWaveData_8641E18:: @ 8641E18
- .4byte 0
.incbin "sound/direct_sound_samples/8641E18.bin"
- .incbin "sound/direct_sound_samples/8641E18.pcm"
.align 2
DirectSoundWaveData_864244C:: @ 864244C
- .4byte 0
.incbin "sound/direct_sound_samples/864244C.bin"
- .incbin "sound/direct_sound_samples/864244C.pcm"
.align 2
DirectSoundWaveData_86430B8:: @ 86430B8
- .4byte 0x40000000 @ looped directsound
.incbin "sound/direct_sound_samples/86430B8.bin"
- .incbin "sound/direct_sound_samples/86430B8.pcm"
.align 2
DirectSoundWaveData_8643650:: @ 8643650
- .4byte 0
.incbin "sound/direct_sound_samples/8643650.bin"
- .incbin "sound/direct_sound_samples/8643650.pcm"
.align 2
DirectSoundWaveData_8644154:: @ 8644154
- .4byte 0
.incbin "sound/direct_sound_samples/8644154.bin"
- .incbin "sound/direct_sound_samples/8644154.pcm"
.align 2
DirectSoundWaveData_8644758:: @ 8644758
- .4byte 0x40000000 @ looped directsound
.incbin "sound/direct_sound_samples/8644758.bin"
- .incbin "sound/direct_sound_samples/8644758.pcm"
.align 2
DirectSoundWaveData_8644950:: @ 8644950
- .4byte 0
.incbin "sound/direct_sound_samples/8644950.bin"
- .incbin "sound/direct_sound_samples/8644950.pcm"
.align 2
DirectSoundWaveData_86452B4:: @ 86452B4
- .4byte 0
.incbin "sound/direct_sound_samples/86452B4.bin"
- .incbin "sound/direct_sound_samples/86452B4.pcm"
.align 2
DirectSoundWaveData_8646240:: @ 8646240
- .4byte 0x40000000 @ looped directsound
.incbin "sound/direct_sound_samples/8646240.bin"
- .incbin "sound/direct_sound_samples/8646240.pcm"
.align 2
DirectSoundWaveData_8646878:: @ 8646878
- .4byte 0
.incbin "sound/direct_sound_samples/8646878.bin"
- .incbin "sound/direct_sound_samples/8646878.pcm"
.align 2
DirectSoundWaveData_864734C:: @ 864734C
- .4byte 0
.incbin "sound/direct_sound_samples/864734C.bin"
- .incbin "sound/direct_sound_samples/864734C.pcm"
.align 2
DirectSoundWaveData_8648290:: @ 8648290
- .4byte 0x40000000 @ looped directsound
.incbin "sound/direct_sound_samples/8648290.bin"
- .incbin "sound/direct_sound_samples/8648290.pcm"
.align 2
DirectSoundWaveData_8648808:: @ 8648808
- .4byte 0
.incbin "sound/direct_sound_samples/8648808.bin"
- .incbin "sound/direct_sound_samples/8648808.pcm"
.align 2
DirectSoundWaveData_8649654:: @ 8649654
- .4byte 0
.incbin "sound/direct_sound_samples/8649654.bin"
- .incbin "sound/direct_sound_samples/8649654.pcm"
.align 2
DirectSoundWaveData_864A55C:: @ 864A55C
- .4byte 0x40000000 @ looped directsound
.incbin "sound/direct_sound_samples/864A55C.bin"
- .incbin "sound/direct_sound_samples/864A55C.pcm"
.align 2
DirectSoundWaveData_864B030:: @ 864B030
- .4byte 0
.incbin "sound/direct_sound_samples/864B030.bin"
- .incbin "sound/direct_sound_samples/864B030.pcm"
.align 2
DirectSoundWaveData_864BBC4:: @ 864BBC4
- .4byte 0
.incbin "sound/direct_sound_samples/864BBC4.bin"
- .incbin "sound/direct_sound_samples/864BBC4.pcm"
.align 2
DirectSoundWaveData_864C59C:: @ 864C59C
- .4byte 0x40000000 @ looped directsound
.incbin "sound/direct_sound_samples/864C59C.bin"
- .incbin "sound/direct_sound_samples/864C59C.pcm"
.align 2
DirectSoundWaveData_864CBDC:: @ 864CBDC
- .4byte 0
.incbin "sound/direct_sound_samples/864CBDC.bin"
- .incbin "sound/direct_sound_samples/864CBDC.pcm"
.align 2
DirectSoundWaveData_864D6BC:: @ 864D6BC
- .4byte 0
.incbin "sound/direct_sound_samples/864D6BC.bin"
- .incbin "sound/direct_sound_samples/864D6BC.pcm"
.align 2
DirectSoundWaveData_864DCF8:: @ 864DCF8
- .4byte 0x40000000 @ looped directsound
.incbin "sound/direct_sound_samples/864DCF8.bin"
- .incbin "sound/direct_sound_samples/864DCF8.pcm"
.align 2
DirectSoundWaveData_864E410:: @ 864E410
- .4byte 0
.incbin "sound/direct_sound_samples/864E410.bin"
- .incbin "sound/direct_sound_samples/864E410.pcm"
.align 2
DirectSoundWaveData_864ED4C:: @ 864ED4C
- .4byte 0
.incbin "sound/direct_sound_samples/864ED4C.bin"
- .incbin "sound/direct_sound_samples/864ED4C.pcm"
.align 2
DirectSoundWaveData_864F508:: @ 864F508
- .4byte 0x40000000 @ looped directsound
.incbin "sound/direct_sound_samples/864F508.bin"
- .incbin "sound/direct_sound_samples/864F508.pcm"
.align 2
DirectSoundWaveData_864FA6C:: @ 864FA6C
- .4byte 0
.incbin "sound/direct_sound_samples/864FA6C.bin"
- .incbin "sound/direct_sound_samples/864FA6C.pcm"
.align 2
DirectSoundWaveData_86507E0:: @ 86507E0
- .4byte 0
.incbin "sound/direct_sound_samples/86507E0.bin"
- .incbin "sound/direct_sound_samples/86507E0.pcm"
.align 2
DirectSoundWaveData_8650C5C:: @ 8650C5C
- .4byte 0x40000000 @ looped directsound
.incbin "sound/direct_sound_samples/8650C5C.bin"
- .incbin "sound/direct_sound_samples/8650C5C.pcm"
.align 2
DirectSoundWaveData_8651148:: @ 8651148
- .4byte 0
.incbin "sound/direct_sound_samples/8651148.bin"
- .incbin "sound/direct_sound_samples/8651148.pcm"
.align 2
DirectSoundWaveData_8651910:: @ 8651910
- .4byte 0
.incbin "sound/direct_sound_samples/8651910.bin"
- .incbin "sound/direct_sound_samples/8651910.pcm"
.align 2
DirectSoundWaveData_865250C:: @ 865250C
- .4byte 0x40000000 @ looped directsound
.incbin "sound/direct_sound_samples/865250C.bin"
- .incbin "sound/direct_sound_samples/865250C.pcm"
.align 2
DirectSoundWaveData_8652884:: @ 8652884
- .4byte 0
.incbin "sound/direct_sound_samples/8652884.bin"
- .incbin "sound/direct_sound_samples/8652884.pcm"
.align 2
DirectSoundWaveData_8653040:: @ 8653040
- .4byte 0
.incbin "sound/direct_sound_samples/8653040.bin"
- .incbin "sound/direct_sound_samples/8653040.pcm"
.align 2
DirectSoundWaveData_8653CA4:: @ 8653CA4
- .4byte 0x40000000 @ looped directsound
.incbin "sound/direct_sound_samples/8653CA4.bin"
- .incbin "sound/direct_sound_samples/8653CA4.pcm"
.align 2
DirectSoundWaveData_8654170:: @ 8654170
- .4byte 0
.incbin "sound/direct_sound_samples/8654170.bin"
- .incbin "sound/direct_sound_samples/8654170.pcm"
.align 2
DirectSoundWaveData_8654C20:: @ 8654C20
- .4byte 0x40000000 @ looped directsound
.incbin "sound/direct_sound_samples/8654C20.bin"
- .incbin "sound/direct_sound_samples/8654C20.pcm"
diff --git a/sound/direct_sound_samples/845AE14.aif b/sound/direct_sound_samples/845AE14.aif
index 976210050..a05801158 100644
--- a/sound/direct_sound_samples/845AE14.aif
+++ b/sound/direct_sound_samples/845AE14.aif
Binary files differ
diff --git a/sound/direct_sound_samples/845B2B4.aif b/sound/direct_sound_samples/845B2B4.aif
index 277ff96fc..e65708ff7 100644
--- a/sound/direct_sound_samples/845B2B4.aif
+++ b/sound/direct_sound_samples/845B2B4.aif
Binary files differ
diff --git a/sound/direct_sound_samples/845B9A8.aif b/sound/direct_sound_samples/845B9A8.aif
index 0c7116151..bbb5551a4 100644
--- a/sound/direct_sound_samples/845B9A8.aif
+++ b/sound/direct_sound_samples/845B9A8.aif
Binary files differ
diff --git a/sound/direct_sound_samples/845C238.aif b/sound/direct_sound_samples/845C238.aif
index 6066e2b4e..e2ce5754e 100644
--- a/sound/direct_sound_samples/845C238.aif
+++ b/sound/direct_sound_samples/845C238.aif
Binary files differ
diff --git a/sound/direct_sound_samples/845CAB0.aif b/sound/direct_sound_samples/845CAB0.aif
index b3b6e0b97..04f990b13 100644
--- a/sound/direct_sound_samples/845CAB0.aif
+++ b/sound/direct_sound_samples/845CAB0.aif
Binary files differ
diff --git a/sound/direct_sound_samples/845DAF0.aif b/sound/direct_sound_samples/845DAF0.aif
index 3acfdabee..d70e61174 100644
--- a/sound/direct_sound_samples/845DAF0.aif
+++ b/sound/direct_sound_samples/845DAF0.aif
Binary files differ
diff --git a/sound/direct_sound_samples/845ED34.aif b/sound/direct_sound_samples/845ED34.aif
index e5c1cd54a..7de79e747 100644
--- a/sound/direct_sound_samples/845ED34.aif
+++ b/sound/direct_sound_samples/845ED34.aif
Binary files differ
diff --git a/sound/direct_sound_samples/845FCC8.aif b/sound/direct_sound_samples/845FCC8.aif
index 6cc8a968e..2a3c54de4 100644
--- a/sound/direct_sound_samples/845FCC8.aif
+++ b/sound/direct_sound_samples/845FCC8.aif
Binary files differ
diff --git a/sound/direct_sound_samples/8460E60.aif b/sound/direct_sound_samples/8460E60.aif
index c6827ddee..576e3e19e 100644
--- a/sound/direct_sound_samples/8460E60.aif
+++ b/sound/direct_sound_samples/8460E60.aif
Binary files differ
diff --git a/sound/direct_sound_samples/8461D8C.aif b/sound/direct_sound_samples/8461D8C.aif
index a83f3b0df..93cf811f2 100644
--- a/sound/direct_sound_samples/8461D8C.aif
+++ b/sound/direct_sound_samples/8461D8C.aif
Binary files differ
diff --git a/sound/direct_sound_samples/84622A4.aif b/sound/direct_sound_samples/84622A4.aif
index dfc2746de..89e779850 100644
--- a/sound/direct_sound_samples/84622A4.aif
+++ b/sound/direct_sound_samples/84622A4.aif
Binary files differ
diff --git a/sound/direct_sound_samples/8488F44.aif b/sound/direct_sound_samples/8488F44.aif
index 9a39e4653..a7495513b 100644
--- a/sound/direct_sound_samples/8488F44.aif
+++ b/sound/direct_sound_samples/8488F44.aif
Binary files differ
diff --git a/sound/direct_sound_samples/848A8A4.aif b/sound/direct_sound_samples/848A8A4.aif
index 4902f212f..f88812bb2 100644
--- a/sound/direct_sound_samples/848A8A4.aif
+++ b/sound/direct_sound_samples/848A8A4.aif
Binary files differ
diff --git a/sound/direct_sound_samples/8492D10.aif b/sound/direct_sound_samples/8492D10.aif
index 9b4669696..746c5a64e 100644
--- a/sound/direct_sound_samples/8492D10.aif
+++ b/sound/direct_sound_samples/8492D10.aif
Binary files differ
diff --git a/sound/direct_sound_samples/8639898.aif b/sound/direct_sound_samples/8639898.aif
index f0d38e75a..55c97e88e 100644
--- a/sound/direct_sound_samples/8639898.aif
+++ b/sound/direct_sound_samples/8639898.aif
Binary files differ
diff --git a/sound/direct_sound_samples/863A3DC.aif b/sound/direct_sound_samples/863A3DC.aif
index 9eb517c2c..3ff8a0518 100644
--- a/sound/direct_sound_samples/863A3DC.aif
+++ b/sound/direct_sound_samples/863A3DC.aif
Binary files differ
diff --git a/sound/direct_sound_samples/863AD2C.aif b/sound/direct_sound_samples/863AD2C.aif
index 01cf6d960..a89ce2bb0 100644
--- a/sound/direct_sound_samples/863AD2C.aif
+++ b/sound/direct_sound_samples/863AD2C.aif
Binary files differ
diff --git a/sound/direct_sound_samples/863BABC.aif b/sound/direct_sound_samples/863BABC.aif
index 30b226eed..8fa777eed 100644
--- a/sound/direct_sound_samples/863BABC.aif
+++ b/sound/direct_sound_samples/863BABC.aif
Binary files differ
diff --git a/sound/direct_sound_samples/863C744.aif b/sound/direct_sound_samples/863C744.aif
index 9304e6d3d..a06d73b93 100644
--- a/sound/direct_sound_samples/863C744.aif
+++ b/sound/direct_sound_samples/863C744.aif
Binary files differ
diff --git a/sound/direct_sound_samples/863D0EC.aif b/sound/direct_sound_samples/863D0EC.aif
index 6414161a2..ff39d8c7c 100644
--- a/sound/direct_sound_samples/863D0EC.aif
+++ b/sound/direct_sound_samples/863D0EC.aif
Binary files differ
diff --git a/sound/direct_sound_samples/863DED0.aif b/sound/direct_sound_samples/863DED0.aif
index 334d79558..5512c7d5c 100644
--- a/sound/direct_sound_samples/863DED0.aif
+++ b/sound/direct_sound_samples/863DED0.aif
Binary files differ
diff --git a/sound/direct_sound_samples/863EBDC.aif b/sound/direct_sound_samples/863EBDC.aif
index f417ef4f5..c6e219476 100644
--- a/sound/direct_sound_samples/863EBDC.aif
+++ b/sound/direct_sound_samples/863EBDC.aif
Binary files differ
diff --git a/sound/direct_sound_samples/863F390.aif b/sound/direct_sound_samples/863F390.aif
index e242b6864..17475215a 100644
--- a/sound/direct_sound_samples/863F390.aif
+++ b/sound/direct_sound_samples/863F390.aif
Binary files differ
diff --git a/sound/direct_sound_samples/8640330.aif b/sound/direct_sound_samples/8640330.aif
index 1d3ff6e89..d7ad57610 100644
--- a/sound/direct_sound_samples/8640330.aif
+++ b/sound/direct_sound_samples/8640330.aif
Binary files differ
diff --git a/sound/direct_sound_samples/8641170.aif b/sound/direct_sound_samples/8641170.aif
index 0ca3c2f05..428fdc910 100644
--- a/sound/direct_sound_samples/8641170.aif
+++ b/sound/direct_sound_samples/8641170.aif
Binary files differ
diff --git a/sound/direct_sound_samples/8641E18.aif b/sound/direct_sound_samples/8641E18.aif
index 17db9c813..650450282 100644
--- a/sound/direct_sound_samples/8641E18.aif
+++ b/sound/direct_sound_samples/8641E18.aif
Binary files differ
diff --git a/sound/direct_sound_samples/864244C.aif b/sound/direct_sound_samples/864244C.aif
index a6c492d2a..d1f5ae69e 100644
--- a/sound/direct_sound_samples/864244C.aif
+++ b/sound/direct_sound_samples/864244C.aif
Binary files differ
diff --git a/sound/direct_sound_samples/8643650.aif b/sound/direct_sound_samples/8643650.aif
index f6f7993d9..ab1b2c9ed 100644
--- a/sound/direct_sound_samples/8643650.aif
+++ b/sound/direct_sound_samples/8643650.aif
Binary files differ
diff --git a/sound/direct_sound_samples/8644154.aif b/sound/direct_sound_samples/8644154.aif
index effcd7fc0..438ea6176 100644
--- a/sound/direct_sound_samples/8644154.aif
+++ b/sound/direct_sound_samples/8644154.aif
Binary files differ
diff --git a/sound/direct_sound_samples/8644950.aif b/sound/direct_sound_samples/8644950.aif
index cacf6eca4..06de3bbe5 100644
--- a/sound/direct_sound_samples/8644950.aif
+++ b/sound/direct_sound_samples/8644950.aif
Binary files differ
diff --git a/sound/direct_sound_samples/86452B4.aif b/sound/direct_sound_samples/86452B4.aif
index eccd9467f..f3cb868f4 100644
--- a/sound/direct_sound_samples/86452B4.aif
+++ b/sound/direct_sound_samples/86452B4.aif
Binary files differ
diff --git a/sound/direct_sound_samples/8646878.aif b/sound/direct_sound_samples/8646878.aif
index fdd27e00b..00031ea40 100644
--- a/sound/direct_sound_samples/8646878.aif
+++ b/sound/direct_sound_samples/8646878.aif
Binary files differ
diff --git a/sound/direct_sound_samples/864734C.aif b/sound/direct_sound_samples/864734C.aif
index 1119bd5a8..c86d4c58e 100644
--- a/sound/direct_sound_samples/864734C.aif
+++ b/sound/direct_sound_samples/864734C.aif
Binary files differ
diff --git a/sound/direct_sound_samples/8648808.aif b/sound/direct_sound_samples/8648808.aif
index 6c5cb14b1..23db7e80e 100644
--- a/sound/direct_sound_samples/8648808.aif
+++ b/sound/direct_sound_samples/8648808.aif
Binary files differ
diff --git a/sound/direct_sound_samples/8649654.aif b/sound/direct_sound_samples/8649654.aif
index 8cbe59d3e..bfc674d3f 100644
--- a/sound/direct_sound_samples/8649654.aif
+++ b/sound/direct_sound_samples/8649654.aif
Binary files differ
diff --git a/sound/direct_sound_samples/864B030.aif b/sound/direct_sound_samples/864B030.aif
index 56eec193f..a551b6343 100644
--- a/sound/direct_sound_samples/864B030.aif
+++ b/sound/direct_sound_samples/864B030.aif
Binary files differ
diff --git a/sound/direct_sound_samples/864BBC4.aif b/sound/direct_sound_samples/864BBC4.aif
index d14f83ba7..4f48d6221 100644
--- a/sound/direct_sound_samples/864BBC4.aif
+++ b/sound/direct_sound_samples/864BBC4.aif
Binary files differ
diff --git a/sound/direct_sound_samples/864CBDC.aif b/sound/direct_sound_samples/864CBDC.aif
index e69605825..60a840be8 100644
--- a/sound/direct_sound_samples/864CBDC.aif
+++ b/sound/direct_sound_samples/864CBDC.aif
Binary files differ
diff --git a/sound/direct_sound_samples/864D6BC.aif b/sound/direct_sound_samples/864D6BC.aif
index a584d9dc3..75aa83938 100644
--- a/sound/direct_sound_samples/864D6BC.aif
+++ b/sound/direct_sound_samples/864D6BC.aif
Binary files differ
diff --git a/sound/direct_sound_samples/864E410.aif b/sound/direct_sound_samples/864E410.aif
index d27b41508..768888780 100644
--- a/sound/direct_sound_samples/864E410.aif
+++ b/sound/direct_sound_samples/864E410.aif
Binary files differ
diff --git a/sound/direct_sound_samples/864ED4C.aif b/sound/direct_sound_samples/864ED4C.aif
index 28de72385..1a4c7d61f 100644
--- a/sound/direct_sound_samples/864ED4C.aif
+++ b/sound/direct_sound_samples/864ED4C.aif
Binary files differ
diff --git a/sound/direct_sound_samples/864FA6C.aif b/sound/direct_sound_samples/864FA6C.aif
index 01a7ceed2..4dce97743 100644
--- a/sound/direct_sound_samples/864FA6C.aif
+++ b/sound/direct_sound_samples/864FA6C.aif
Binary files differ
diff --git a/sound/direct_sound_samples/86507E0.aif b/sound/direct_sound_samples/86507E0.aif
index 5ad2c43ee..de2ebb15b 100644
--- a/sound/direct_sound_samples/86507E0.aif
+++ b/sound/direct_sound_samples/86507E0.aif
Binary files differ
diff --git a/sound/direct_sound_samples/8651148.aif b/sound/direct_sound_samples/8651148.aif
index 5c48c39f5..cebdaaf7f 100644
--- a/sound/direct_sound_samples/8651148.aif
+++ b/sound/direct_sound_samples/8651148.aif
Binary files differ
diff --git a/sound/direct_sound_samples/8651910.aif b/sound/direct_sound_samples/8651910.aif
index 800835073..aa4a892e0 100644
--- a/sound/direct_sound_samples/8651910.aif
+++ b/sound/direct_sound_samples/8651910.aif
Binary files differ
diff --git a/sound/direct_sound_samples/8652884.aif b/sound/direct_sound_samples/8652884.aif
index eb49b5de7..fd1b032eb 100644
--- a/sound/direct_sound_samples/8652884.aif
+++ b/sound/direct_sound_samples/8652884.aif
Binary files differ
diff --git a/sound/direct_sound_samples/8653040.aif b/sound/direct_sound_samples/8653040.aif
index ed129e539..2d3a51342 100644
--- a/sound/direct_sound_samples/8653040.aif
+++ b/sound/direct_sound_samples/8653040.aif
Binary files differ
diff --git a/sound/direct_sound_samples/8654170.aif b/sound/direct_sound_samples/8654170.aif
index 0fc92a67c..aee32c0e3 100644
--- a/sound/direct_sound_samples/8654170.aif
+++ b/sound/direct_sound_samples/8654170.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_abra.aif b/sound/direct_sound_samples/cry_abra.aif
new file mode 100644
index 000000000..14abd608d
--- /dev/null
+++ b/sound/direct_sound_samples/cry_abra.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_absol.aif b/sound/direct_sound_samples/cry_absol.aif
new file mode 100644
index 000000000..c55bca8b3
--- /dev/null
+++ b/sound/direct_sound_samples/cry_absol.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_aerodactyl.aif b/sound/direct_sound_samples/cry_aerodactyl.aif
new file mode 100644
index 000000000..99b1db084
--- /dev/null
+++ b/sound/direct_sound_samples/cry_aerodactyl.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_aggron.aif b/sound/direct_sound_samples/cry_aggron.aif
new file mode 100644
index 000000000..10ca842e3
--- /dev/null
+++ b/sound/direct_sound_samples/cry_aggron.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_aipom.aif b/sound/direct_sound_samples/cry_aipom.aif
new file mode 100644
index 000000000..105dfcf15
--- /dev/null
+++ b/sound/direct_sound_samples/cry_aipom.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_alakazam.aif b/sound/direct_sound_samples/cry_alakazam.aif
new file mode 100644
index 000000000..f3d0fb1b1
--- /dev/null
+++ b/sound/direct_sound_samples/cry_alakazam.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_altaria.aif b/sound/direct_sound_samples/cry_altaria.aif
new file mode 100644
index 000000000..70411e01d
--- /dev/null
+++ b/sound/direct_sound_samples/cry_altaria.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_ampharos.aif b/sound/direct_sound_samples/cry_ampharos.aif
new file mode 100644
index 000000000..e368ebfb3
--- /dev/null
+++ b/sound/direct_sound_samples/cry_ampharos.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_anorith.aif b/sound/direct_sound_samples/cry_anorith.aif
new file mode 100644
index 000000000..200163032
--- /dev/null
+++ b/sound/direct_sound_samples/cry_anorith.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_arbok.aif b/sound/direct_sound_samples/cry_arbok.aif
new file mode 100644
index 000000000..af87f46d3
--- /dev/null
+++ b/sound/direct_sound_samples/cry_arbok.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_arcanine.aif b/sound/direct_sound_samples/cry_arcanine.aif
new file mode 100644
index 000000000..662d912b0
--- /dev/null
+++ b/sound/direct_sound_samples/cry_arcanine.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_ariados.aif b/sound/direct_sound_samples/cry_ariados.aif
new file mode 100644
index 000000000..12d688cac
--- /dev/null
+++ b/sound/direct_sound_samples/cry_ariados.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_armaldo.aif b/sound/direct_sound_samples/cry_armaldo.aif
new file mode 100644
index 000000000..9955225f3
--- /dev/null
+++ b/sound/direct_sound_samples/cry_armaldo.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_aron.aif b/sound/direct_sound_samples/cry_aron.aif
new file mode 100644
index 000000000..1fada0c96
--- /dev/null
+++ b/sound/direct_sound_samples/cry_aron.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_articuno.aif b/sound/direct_sound_samples/cry_articuno.aif
new file mode 100644
index 000000000..80f13470e
--- /dev/null
+++ b/sound/direct_sound_samples/cry_articuno.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_azumarill.aif b/sound/direct_sound_samples/cry_azumarill.aif
new file mode 100644
index 000000000..2e2c3d61d
--- /dev/null
+++ b/sound/direct_sound_samples/cry_azumarill.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_azurill.aif b/sound/direct_sound_samples/cry_azurill.aif
new file mode 100644
index 000000000..b7fdf1b5d
--- /dev/null
+++ b/sound/direct_sound_samples/cry_azurill.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_bagon.aif b/sound/direct_sound_samples/cry_bagon.aif
new file mode 100644
index 000000000..f40443859
--- /dev/null
+++ b/sound/direct_sound_samples/cry_bagon.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_baltoy.aif b/sound/direct_sound_samples/cry_baltoy.aif
new file mode 100644
index 000000000..94576437e
--- /dev/null
+++ b/sound/direct_sound_samples/cry_baltoy.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_banette.aif b/sound/direct_sound_samples/cry_banette.aif
new file mode 100644
index 000000000..1006946d5
--- /dev/null
+++ b/sound/direct_sound_samples/cry_banette.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_barboach.aif b/sound/direct_sound_samples/cry_barboach.aif
new file mode 100644
index 000000000..efecf510e
--- /dev/null
+++ b/sound/direct_sound_samples/cry_barboach.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_bayleef.aif b/sound/direct_sound_samples/cry_bayleef.aif
new file mode 100644
index 000000000..fde854f39
--- /dev/null
+++ b/sound/direct_sound_samples/cry_bayleef.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_beautifly.aif b/sound/direct_sound_samples/cry_beautifly.aif
new file mode 100644
index 000000000..eb756fbfd
--- /dev/null
+++ b/sound/direct_sound_samples/cry_beautifly.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_beedrill.aif b/sound/direct_sound_samples/cry_beedrill.aif
new file mode 100644
index 000000000..be80c31bd
--- /dev/null
+++ b/sound/direct_sound_samples/cry_beedrill.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_beldum.aif b/sound/direct_sound_samples/cry_beldum.aif
new file mode 100644
index 000000000..a9007aed7
--- /dev/null
+++ b/sound/direct_sound_samples/cry_beldum.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_bellossom.aif b/sound/direct_sound_samples/cry_bellossom.aif
new file mode 100644
index 000000000..eb1e5cf58
--- /dev/null
+++ b/sound/direct_sound_samples/cry_bellossom.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_bellsprout.aif b/sound/direct_sound_samples/cry_bellsprout.aif
new file mode 100644
index 000000000..1ab0d8972
--- /dev/null
+++ b/sound/direct_sound_samples/cry_bellsprout.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_blastoise.aif b/sound/direct_sound_samples/cry_blastoise.aif
new file mode 100644
index 000000000..d0aefe367
--- /dev/null
+++ b/sound/direct_sound_samples/cry_blastoise.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_blaziken.aif b/sound/direct_sound_samples/cry_blaziken.aif
new file mode 100644
index 000000000..48cf24c5b
--- /dev/null
+++ b/sound/direct_sound_samples/cry_blaziken.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_blissey.aif b/sound/direct_sound_samples/cry_blissey.aif
new file mode 100644
index 000000000..6daf7a6df
--- /dev/null
+++ b/sound/direct_sound_samples/cry_blissey.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_breloom.aif b/sound/direct_sound_samples/cry_breloom.aif
new file mode 100644
index 000000000..1ff88d6ed
--- /dev/null
+++ b/sound/direct_sound_samples/cry_breloom.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_bulbasaur.aif b/sound/direct_sound_samples/cry_bulbasaur.aif
new file mode 100644
index 000000000..44bb79c3c
--- /dev/null
+++ b/sound/direct_sound_samples/cry_bulbasaur.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_butterfree.aif b/sound/direct_sound_samples/cry_butterfree.aif
new file mode 100644
index 000000000..72e86d6f4
--- /dev/null
+++ b/sound/direct_sound_samples/cry_butterfree.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_cacnea.aif b/sound/direct_sound_samples/cry_cacnea.aif
new file mode 100644
index 000000000..bdc7d1de8
--- /dev/null
+++ b/sound/direct_sound_samples/cry_cacnea.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_cacturne.aif b/sound/direct_sound_samples/cry_cacturne.aif
new file mode 100644
index 000000000..1ef3e07c8
--- /dev/null
+++ b/sound/direct_sound_samples/cry_cacturne.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_camerupt.aif b/sound/direct_sound_samples/cry_camerupt.aif
new file mode 100644
index 000000000..f807cecf9
--- /dev/null
+++ b/sound/direct_sound_samples/cry_camerupt.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_carvanha.aif b/sound/direct_sound_samples/cry_carvanha.aif
new file mode 100644
index 000000000..7624e71bd
--- /dev/null
+++ b/sound/direct_sound_samples/cry_carvanha.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_cascoon.aif b/sound/direct_sound_samples/cry_cascoon.aif
new file mode 100644
index 000000000..539e6b1d1
--- /dev/null
+++ b/sound/direct_sound_samples/cry_cascoon.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_castform.aif b/sound/direct_sound_samples/cry_castform.aif
new file mode 100644
index 000000000..2d2ea0455
--- /dev/null
+++ b/sound/direct_sound_samples/cry_castform.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_caterpie.aif b/sound/direct_sound_samples/cry_caterpie.aif
new file mode 100644
index 000000000..fbb86ce20
--- /dev/null
+++ b/sound/direct_sound_samples/cry_caterpie.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_celebi.aif b/sound/direct_sound_samples/cry_celebi.aif
new file mode 100644
index 000000000..a86f2770f
--- /dev/null
+++ b/sound/direct_sound_samples/cry_celebi.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_chansey.aif b/sound/direct_sound_samples/cry_chansey.aif
new file mode 100644
index 000000000..97a568853
--- /dev/null
+++ b/sound/direct_sound_samples/cry_chansey.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_charizard.aif b/sound/direct_sound_samples/cry_charizard.aif
new file mode 100644
index 000000000..6114ed5e6
--- /dev/null
+++ b/sound/direct_sound_samples/cry_charizard.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_charmander.aif b/sound/direct_sound_samples/cry_charmander.aif
new file mode 100644
index 000000000..4fe0e8f96
--- /dev/null
+++ b/sound/direct_sound_samples/cry_charmander.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_charmeleon.aif b/sound/direct_sound_samples/cry_charmeleon.aif
new file mode 100644
index 000000000..1731dcb3f
--- /dev/null
+++ b/sound/direct_sound_samples/cry_charmeleon.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_chikorita.aif b/sound/direct_sound_samples/cry_chikorita.aif
new file mode 100644
index 000000000..1adf2fe3c
--- /dev/null
+++ b/sound/direct_sound_samples/cry_chikorita.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_chimecho.aif b/sound/direct_sound_samples/cry_chimecho.aif
new file mode 100644
index 000000000..9d209c3a8
--- /dev/null
+++ b/sound/direct_sound_samples/cry_chimecho.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_chinchou.aif b/sound/direct_sound_samples/cry_chinchou.aif
new file mode 100644
index 000000000..601ebb29f
--- /dev/null
+++ b/sound/direct_sound_samples/cry_chinchou.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_clamperl.aif b/sound/direct_sound_samples/cry_clamperl.aif
new file mode 100644
index 000000000..9834c48db
--- /dev/null
+++ b/sound/direct_sound_samples/cry_clamperl.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_claydol.aif b/sound/direct_sound_samples/cry_claydol.aif
new file mode 100644
index 000000000..442e63060
--- /dev/null
+++ b/sound/direct_sound_samples/cry_claydol.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_clefable.aif b/sound/direct_sound_samples/cry_clefable.aif
new file mode 100644
index 000000000..a61ce7172
--- /dev/null
+++ b/sound/direct_sound_samples/cry_clefable.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_clefairy.aif b/sound/direct_sound_samples/cry_clefairy.aif
new file mode 100644
index 000000000..6f1c3c6ed
--- /dev/null
+++ b/sound/direct_sound_samples/cry_clefairy.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_cleffa.aif b/sound/direct_sound_samples/cry_cleffa.aif
new file mode 100644
index 000000000..92dae2300
--- /dev/null
+++ b/sound/direct_sound_samples/cry_cleffa.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_cloyster.aif b/sound/direct_sound_samples/cry_cloyster.aif
new file mode 100644
index 000000000..0581ac746
--- /dev/null
+++ b/sound/direct_sound_samples/cry_cloyster.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_combusken.aif b/sound/direct_sound_samples/cry_combusken.aif
new file mode 100644
index 000000000..9aafe5a44
--- /dev/null
+++ b/sound/direct_sound_samples/cry_combusken.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_corphish.aif b/sound/direct_sound_samples/cry_corphish.aif
new file mode 100644
index 000000000..2ba9a08a6
--- /dev/null
+++ b/sound/direct_sound_samples/cry_corphish.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_corsola.aif b/sound/direct_sound_samples/cry_corsola.aif
new file mode 100644
index 000000000..0796fa64a
--- /dev/null
+++ b/sound/direct_sound_samples/cry_corsola.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_cradily.aif b/sound/direct_sound_samples/cry_cradily.aif
new file mode 100644
index 000000000..0b3bcadf6
--- /dev/null
+++ b/sound/direct_sound_samples/cry_cradily.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_crawdaunt.aif b/sound/direct_sound_samples/cry_crawdaunt.aif
new file mode 100644
index 000000000..b7ec28c23
--- /dev/null
+++ b/sound/direct_sound_samples/cry_crawdaunt.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_crobat.aif b/sound/direct_sound_samples/cry_crobat.aif
new file mode 100644
index 000000000..7e5e1d104
--- /dev/null
+++ b/sound/direct_sound_samples/cry_crobat.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_croconaw.aif b/sound/direct_sound_samples/cry_croconaw.aif
new file mode 100644
index 000000000..bcc1e4dc8
--- /dev/null
+++ b/sound/direct_sound_samples/cry_croconaw.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_cubone.aif b/sound/direct_sound_samples/cry_cubone.aif
new file mode 100644
index 000000000..c305aaa0e
--- /dev/null
+++ b/sound/direct_sound_samples/cry_cubone.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_cyndaquil.aif b/sound/direct_sound_samples/cry_cyndaquil.aif
new file mode 100644
index 000000000..fce3c49c7
--- /dev/null
+++ b/sound/direct_sound_samples/cry_cyndaquil.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_delcatty.aif b/sound/direct_sound_samples/cry_delcatty.aif
new file mode 100644
index 000000000..be6fef4f3
--- /dev/null
+++ b/sound/direct_sound_samples/cry_delcatty.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_delibird.aif b/sound/direct_sound_samples/cry_delibird.aif
new file mode 100644
index 000000000..1634ac885
--- /dev/null
+++ b/sound/direct_sound_samples/cry_delibird.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_deoxys.aif b/sound/direct_sound_samples/cry_deoxys.aif
new file mode 100644
index 000000000..fd2245440
--- /dev/null
+++ b/sound/direct_sound_samples/cry_deoxys.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_dewgong.aif b/sound/direct_sound_samples/cry_dewgong.aif
new file mode 100644
index 000000000..6303104bd
--- /dev/null
+++ b/sound/direct_sound_samples/cry_dewgong.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_diglett.aif b/sound/direct_sound_samples/cry_diglett.aif
new file mode 100644
index 000000000..f9424ddda
--- /dev/null
+++ b/sound/direct_sound_samples/cry_diglett.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_ditto.aif b/sound/direct_sound_samples/cry_ditto.aif
new file mode 100644
index 000000000..f28aa3b5b
--- /dev/null
+++ b/sound/direct_sound_samples/cry_ditto.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_dodrio.aif b/sound/direct_sound_samples/cry_dodrio.aif
new file mode 100644
index 000000000..24830824f
--- /dev/null
+++ b/sound/direct_sound_samples/cry_dodrio.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_doduo.aif b/sound/direct_sound_samples/cry_doduo.aif
new file mode 100644
index 000000000..c494aede0
--- /dev/null
+++ b/sound/direct_sound_samples/cry_doduo.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_donphan.aif b/sound/direct_sound_samples/cry_donphan.aif
new file mode 100644
index 000000000..dc4abfc91
--- /dev/null
+++ b/sound/direct_sound_samples/cry_donphan.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_dragonair.aif b/sound/direct_sound_samples/cry_dragonair.aif
new file mode 100644
index 000000000..0a3a6d8e2
--- /dev/null
+++ b/sound/direct_sound_samples/cry_dragonair.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_dragonite.aif b/sound/direct_sound_samples/cry_dragonite.aif
new file mode 100644
index 000000000..84fade856
--- /dev/null
+++ b/sound/direct_sound_samples/cry_dragonite.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_dratini.aif b/sound/direct_sound_samples/cry_dratini.aif
new file mode 100644
index 000000000..b8433c50f
--- /dev/null
+++ b/sound/direct_sound_samples/cry_dratini.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_drowzee.aif b/sound/direct_sound_samples/cry_drowzee.aif
new file mode 100644
index 000000000..67af2a910
--- /dev/null
+++ b/sound/direct_sound_samples/cry_drowzee.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_dugtrio.aif b/sound/direct_sound_samples/cry_dugtrio.aif
new file mode 100644
index 000000000..24f4431f8
--- /dev/null
+++ b/sound/direct_sound_samples/cry_dugtrio.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_dunsparce.aif b/sound/direct_sound_samples/cry_dunsparce.aif
new file mode 100644
index 000000000..03b2d2911
--- /dev/null
+++ b/sound/direct_sound_samples/cry_dunsparce.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_dusclops.aif b/sound/direct_sound_samples/cry_dusclops.aif
new file mode 100644
index 000000000..fab95ffe1
--- /dev/null
+++ b/sound/direct_sound_samples/cry_dusclops.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_duskull.aif b/sound/direct_sound_samples/cry_duskull.aif
new file mode 100644
index 000000000..825fe2c43
--- /dev/null
+++ b/sound/direct_sound_samples/cry_duskull.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_dustox.aif b/sound/direct_sound_samples/cry_dustox.aif
new file mode 100644
index 000000000..1e569b3aa
--- /dev/null
+++ b/sound/direct_sound_samples/cry_dustox.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_eevee.aif b/sound/direct_sound_samples/cry_eevee.aif
new file mode 100644
index 000000000..87635bbf4
--- /dev/null
+++ b/sound/direct_sound_samples/cry_eevee.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_ekans.aif b/sound/direct_sound_samples/cry_ekans.aif
new file mode 100644
index 000000000..796180fc4
--- /dev/null
+++ b/sound/direct_sound_samples/cry_ekans.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_electabuzz.aif b/sound/direct_sound_samples/cry_electabuzz.aif
new file mode 100644
index 000000000..a39392430
--- /dev/null
+++ b/sound/direct_sound_samples/cry_electabuzz.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_electrike.aif b/sound/direct_sound_samples/cry_electrike.aif
new file mode 100644
index 000000000..f5a457a9b
--- /dev/null
+++ b/sound/direct_sound_samples/cry_electrike.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_electrode.aif b/sound/direct_sound_samples/cry_electrode.aif
new file mode 100644
index 000000000..f1c0e4097
--- /dev/null
+++ b/sound/direct_sound_samples/cry_electrode.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_elekid.aif b/sound/direct_sound_samples/cry_elekid.aif
new file mode 100644
index 000000000..807e5749e
--- /dev/null
+++ b/sound/direct_sound_samples/cry_elekid.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_entei.aif b/sound/direct_sound_samples/cry_entei.aif
new file mode 100644
index 000000000..f496b47a3
--- /dev/null
+++ b/sound/direct_sound_samples/cry_entei.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_espeon.aif b/sound/direct_sound_samples/cry_espeon.aif
new file mode 100644
index 000000000..8fa0be30d
--- /dev/null
+++ b/sound/direct_sound_samples/cry_espeon.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_exeggcute.aif b/sound/direct_sound_samples/cry_exeggcute.aif
new file mode 100644
index 000000000..9e86f84af
--- /dev/null
+++ b/sound/direct_sound_samples/cry_exeggcute.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_exeggutor.aif b/sound/direct_sound_samples/cry_exeggutor.aif
new file mode 100644
index 000000000..68e3812d5
--- /dev/null
+++ b/sound/direct_sound_samples/cry_exeggutor.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_exploud.aif b/sound/direct_sound_samples/cry_exploud.aif
new file mode 100644
index 000000000..8f7df1c37
--- /dev/null
+++ b/sound/direct_sound_samples/cry_exploud.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_farfetchd.aif b/sound/direct_sound_samples/cry_farfetchd.aif
new file mode 100644
index 000000000..9a504fb4b
--- /dev/null
+++ b/sound/direct_sound_samples/cry_farfetchd.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_fearow.aif b/sound/direct_sound_samples/cry_fearow.aif
new file mode 100644
index 000000000..55e85bb1b
--- /dev/null
+++ b/sound/direct_sound_samples/cry_fearow.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_feebas.aif b/sound/direct_sound_samples/cry_feebas.aif
new file mode 100644
index 000000000..853614ece
--- /dev/null
+++ b/sound/direct_sound_samples/cry_feebas.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_feraligatr.aif b/sound/direct_sound_samples/cry_feraligatr.aif
new file mode 100644
index 000000000..8fd817bfa
--- /dev/null
+++ b/sound/direct_sound_samples/cry_feraligatr.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_flaaffy.aif b/sound/direct_sound_samples/cry_flaaffy.aif
new file mode 100644
index 000000000..cba3944a1
--- /dev/null
+++ b/sound/direct_sound_samples/cry_flaaffy.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_flareon.aif b/sound/direct_sound_samples/cry_flareon.aif
new file mode 100644
index 000000000..9406e23a4
--- /dev/null
+++ b/sound/direct_sound_samples/cry_flareon.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_flygon.aif b/sound/direct_sound_samples/cry_flygon.aif
new file mode 100644
index 000000000..cbe8bf323
--- /dev/null
+++ b/sound/direct_sound_samples/cry_flygon.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_forretress.aif b/sound/direct_sound_samples/cry_forretress.aif
new file mode 100644
index 000000000..f20173639
--- /dev/null
+++ b/sound/direct_sound_samples/cry_forretress.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_furret.aif b/sound/direct_sound_samples/cry_furret.aif
new file mode 100644
index 000000000..9ccaa8cca
--- /dev/null
+++ b/sound/direct_sound_samples/cry_furret.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_gardevoir.aif b/sound/direct_sound_samples/cry_gardevoir.aif
new file mode 100644
index 000000000..5e8b2fed9
--- /dev/null
+++ b/sound/direct_sound_samples/cry_gardevoir.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_gastly.aif b/sound/direct_sound_samples/cry_gastly.aif
new file mode 100644
index 000000000..a896cc02b
--- /dev/null
+++ b/sound/direct_sound_samples/cry_gastly.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_gengar.aif b/sound/direct_sound_samples/cry_gengar.aif
new file mode 100644
index 000000000..f4b336714
--- /dev/null
+++ b/sound/direct_sound_samples/cry_gengar.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_geodude.aif b/sound/direct_sound_samples/cry_geodude.aif
new file mode 100644
index 000000000..0c2102151
--- /dev/null
+++ b/sound/direct_sound_samples/cry_geodude.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_girafarig.aif b/sound/direct_sound_samples/cry_girafarig.aif
new file mode 100644
index 000000000..0b66bc507
--- /dev/null
+++ b/sound/direct_sound_samples/cry_girafarig.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_glalie.aif b/sound/direct_sound_samples/cry_glalie.aif
new file mode 100644
index 000000000..dc56aed7d
--- /dev/null
+++ b/sound/direct_sound_samples/cry_glalie.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_gligar.aif b/sound/direct_sound_samples/cry_gligar.aif
new file mode 100644
index 000000000..b1014e413
--- /dev/null
+++ b/sound/direct_sound_samples/cry_gligar.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_gloom.aif b/sound/direct_sound_samples/cry_gloom.aif
new file mode 100644
index 000000000..cb90b323f
--- /dev/null
+++ b/sound/direct_sound_samples/cry_gloom.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_golbat.aif b/sound/direct_sound_samples/cry_golbat.aif
new file mode 100644
index 000000000..3a3b4aa9d
--- /dev/null
+++ b/sound/direct_sound_samples/cry_golbat.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_goldeen.aif b/sound/direct_sound_samples/cry_goldeen.aif
new file mode 100644
index 000000000..f957d2245
--- /dev/null
+++ b/sound/direct_sound_samples/cry_goldeen.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_golduck.aif b/sound/direct_sound_samples/cry_golduck.aif
new file mode 100644
index 000000000..b38550273
--- /dev/null
+++ b/sound/direct_sound_samples/cry_golduck.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_golem.aif b/sound/direct_sound_samples/cry_golem.aif
new file mode 100644
index 000000000..ac3760deb
--- /dev/null
+++ b/sound/direct_sound_samples/cry_golem.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_gorebyss.aif b/sound/direct_sound_samples/cry_gorebyss.aif
new file mode 100644
index 000000000..221c1c6e8
--- /dev/null
+++ b/sound/direct_sound_samples/cry_gorebyss.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_granbull.aif b/sound/direct_sound_samples/cry_granbull.aif
new file mode 100644
index 000000000..70d66c23b
--- /dev/null
+++ b/sound/direct_sound_samples/cry_granbull.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_graveler.aif b/sound/direct_sound_samples/cry_graveler.aif
new file mode 100644
index 000000000..811a613a3
--- /dev/null
+++ b/sound/direct_sound_samples/cry_graveler.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_grimer.aif b/sound/direct_sound_samples/cry_grimer.aif
new file mode 100644
index 000000000..077dff764
--- /dev/null
+++ b/sound/direct_sound_samples/cry_grimer.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_groudon.aif b/sound/direct_sound_samples/cry_groudon.aif
new file mode 100644
index 000000000..c72493c16
--- /dev/null
+++ b/sound/direct_sound_samples/cry_groudon.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_grovyle.aif b/sound/direct_sound_samples/cry_grovyle.aif
new file mode 100644
index 000000000..66b5ebaf6
--- /dev/null
+++ b/sound/direct_sound_samples/cry_grovyle.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_growlithe.aif b/sound/direct_sound_samples/cry_growlithe.aif
new file mode 100644
index 000000000..f6968e2b6
--- /dev/null
+++ b/sound/direct_sound_samples/cry_growlithe.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_grumpig.aif b/sound/direct_sound_samples/cry_grumpig.aif
new file mode 100644
index 000000000..c6c4fe5ca
--- /dev/null
+++ b/sound/direct_sound_samples/cry_grumpig.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_gulpin.aif b/sound/direct_sound_samples/cry_gulpin.aif
new file mode 100644
index 000000000..20becb560
--- /dev/null
+++ b/sound/direct_sound_samples/cry_gulpin.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_gyarados.aif b/sound/direct_sound_samples/cry_gyarados.aif
new file mode 100644
index 000000000..8daa129fb
--- /dev/null
+++ b/sound/direct_sound_samples/cry_gyarados.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_hariyama.aif b/sound/direct_sound_samples/cry_hariyama.aif
new file mode 100644
index 000000000..84f99be82
--- /dev/null
+++ b/sound/direct_sound_samples/cry_hariyama.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_haunter.aif b/sound/direct_sound_samples/cry_haunter.aif
new file mode 100644
index 000000000..34d043e2c
--- /dev/null
+++ b/sound/direct_sound_samples/cry_haunter.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_heracross.aif b/sound/direct_sound_samples/cry_heracross.aif
new file mode 100644
index 000000000..82190b672
--- /dev/null
+++ b/sound/direct_sound_samples/cry_heracross.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_hitmonchan.aif b/sound/direct_sound_samples/cry_hitmonchan.aif
new file mode 100644
index 000000000..c15e50612
--- /dev/null
+++ b/sound/direct_sound_samples/cry_hitmonchan.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_hitmonlee.aif b/sound/direct_sound_samples/cry_hitmonlee.aif
new file mode 100644
index 000000000..cc93a755e
--- /dev/null
+++ b/sound/direct_sound_samples/cry_hitmonlee.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_hitmontop.aif b/sound/direct_sound_samples/cry_hitmontop.aif
new file mode 100644
index 000000000..61e05eed1
--- /dev/null
+++ b/sound/direct_sound_samples/cry_hitmontop.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_ho_oh.aif b/sound/direct_sound_samples/cry_ho_oh.aif
new file mode 100644
index 000000000..b7e5b4f36
--- /dev/null
+++ b/sound/direct_sound_samples/cry_ho_oh.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_hoothoot.aif b/sound/direct_sound_samples/cry_hoothoot.aif
new file mode 100644
index 000000000..0b0d06c51
--- /dev/null
+++ b/sound/direct_sound_samples/cry_hoothoot.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_hoppip.aif b/sound/direct_sound_samples/cry_hoppip.aif
new file mode 100644
index 000000000..ed64184f6
--- /dev/null
+++ b/sound/direct_sound_samples/cry_hoppip.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_horsea.aif b/sound/direct_sound_samples/cry_horsea.aif
new file mode 100644
index 000000000..d0ac96bf3
--- /dev/null
+++ b/sound/direct_sound_samples/cry_horsea.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_houndoom.aif b/sound/direct_sound_samples/cry_houndoom.aif
new file mode 100644
index 000000000..749e1a205
--- /dev/null
+++ b/sound/direct_sound_samples/cry_houndoom.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_houndour.aif b/sound/direct_sound_samples/cry_houndour.aif
new file mode 100644
index 000000000..5c61d50e3
--- /dev/null
+++ b/sound/direct_sound_samples/cry_houndour.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_huntail.aif b/sound/direct_sound_samples/cry_huntail.aif
new file mode 100644
index 000000000..580b03a40
--- /dev/null
+++ b/sound/direct_sound_samples/cry_huntail.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_hypno.aif b/sound/direct_sound_samples/cry_hypno.aif
new file mode 100644
index 000000000..4c149aae2
--- /dev/null
+++ b/sound/direct_sound_samples/cry_hypno.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_igglybuff.aif b/sound/direct_sound_samples/cry_igglybuff.aif
new file mode 100644
index 000000000..63df96541
--- /dev/null
+++ b/sound/direct_sound_samples/cry_igglybuff.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_illumise.aif b/sound/direct_sound_samples/cry_illumise.aif
new file mode 100644
index 000000000..c01d9299b
--- /dev/null
+++ b/sound/direct_sound_samples/cry_illumise.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_ivysaur.aif b/sound/direct_sound_samples/cry_ivysaur.aif
new file mode 100644
index 000000000..9118600a7
--- /dev/null
+++ b/sound/direct_sound_samples/cry_ivysaur.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_jigglypuff.aif b/sound/direct_sound_samples/cry_jigglypuff.aif
new file mode 100644
index 000000000..0798cdd0d
--- /dev/null
+++ b/sound/direct_sound_samples/cry_jigglypuff.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_jirachi.aif b/sound/direct_sound_samples/cry_jirachi.aif
new file mode 100644
index 000000000..0c4cd1c6f
--- /dev/null
+++ b/sound/direct_sound_samples/cry_jirachi.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_jolteon.aif b/sound/direct_sound_samples/cry_jolteon.aif
new file mode 100644
index 000000000..06b63eff6
--- /dev/null
+++ b/sound/direct_sound_samples/cry_jolteon.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_jumpluff.aif b/sound/direct_sound_samples/cry_jumpluff.aif
new file mode 100644
index 000000000..be28bd5d6
--- /dev/null
+++ b/sound/direct_sound_samples/cry_jumpluff.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_jynx.aif b/sound/direct_sound_samples/cry_jynx.aif
new file mode 100644
index 000000000..9da011071
--- /dev/null
+++ b/sound/direct_sound_samples/cry_jynx.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_kabuto.aif b/sound/direct_sound_samples/cry_kabuto.aif
new file mode 100644
index 000000000..890c865c9
--- /dev/null
+++ b/sound/direct_sound_samples/cry_kabuto.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_kabutops.aif b/sound/direct_sound_samples/cry_kabutops.aif
new file mode 100644
index 000000000..d83884618
--- /dev/null
+++ b/sound/direct_sound_samples/cry_kabutops.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_kadabra.aif b/sound/direct_sound_samples/cry_kadabra.aif
new file mode 100644
index 000000000..c598f87f5
--- /dev/null
+++ b/sound/direct_sound_samples/cry_kadabra.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_kakuna.aif b/sound/direct_sound_samples/cry_kakuna.aif
new file mode 100644
index 000000000..9ab90720a
--- /dev/null
+++ b/sound/direct_sound_samples/cry_kakuna.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_kangaskhan.aif b/sound/direct_sound_samples/cry_kangaskhan.aif
new file mode 100644
index 000000000..8971d2452
--- /dev/null
+++ b/sound/direct_sound_samples/cry_kangaskhan.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_kecleon.aif b/sound/direct_sound_samples/cry_kecleon.aif
new file mode 100644
index 000000000..17f15a1a6
--- /dev/null
+++ b/sound/direct_sound_samples/cry_kecleon.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_kingdra.aif b/sound/direct_sound_samples/cry_kingdra.aif
new file mode 100644
index 000000000..6ae074937
--- /dev/null
+++ b/sound/direct_sound_samples/cry_kingdra.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_kingler.aif b/sound/direct_sound_samples/cry_kingler.aif
new file mode 100644
index 000000000..078088ea4
--- /dev/null
+++ b/sound/direct_sound_samples/cry_kingler.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_kirlia.aif b/sound/direct_sound_samples/cry_kirlia.aif
new file mode 100644
index 000000000..0d1187752
--- /dev/null
+++ b/sound/direct_sound_samples/cry_kirlia.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_koffing.aif b/sound/direct_sound_samples/cry_koffing.aif
new file mode 100644
index 000000000..eab517bb9
--- /dev/null
+++ b/sound/direct_sound_samples/cry_koffing.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_krabby.aif b/sound/direct_sound_samples/cry_krabby.aif
new file mode 100644
index 000000000..7762968e7
--- /dev/null
+++ b/sound/direct_sound_samples/cry_krabby.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_kyogre.aif b/sound/direct_sound_samples/cry_kyogre.aif
new file mode 100644
index 000000000..b8aaa0643
--- /dev/null
+++ b/sound/direct_sound_samples/cry_kyogre.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_lairon.aif b/sound/direct_sound_samples/cry_lairon.aif
new file mode 100644
index 000000000..c0b5a3d49
--- /dev/null
+++ b/sound/direct_sound_samples/cry_lairon.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_lanturn.aif b/sound/direct_sound_samples/cry_lanturn.aif
new file mode 100644
index 000000000..9440d995e
--- /dev/null
+++ b/sound/direct_sound_samples/cry_lanturn.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_lapras.aif b/sound/direct_sound_samples/cry_lapras.aif
new file mode 100644
index 000000000..137a82f2d
--- /dev/null
+++ b/sound/direct_sound_samples/cry_lapras.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_larvitar.aif b/sound/direct_sound_samples/cry_larvitar.aif
new file mode 100644
index 000000000..598b4b9f8
--- /dev/null
+++ b/sound/direct_sound_samples/cry_larvitar.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_latias.aif b/sound/direct_sound_samples/cry_latias.aif
new file mode 100644
index 000000000..79efcdd19
--- /dev/null
+++ b/sound/direct_sound_samples/cry_latias.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_latios.aif b/sound/direct_sound_samples/cry_latios.aif
new file mode 100644
index 000000000..ca73c4dc2
--- /dev/null
+++ b/sound/direct_sound_samples/cry_latios.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_ledian.aif b/sound/direct_sound_samples/cry_ledian.aif
new file mode 100644
index 000000000..1ce9d7062
--- /dev/null
+++ b/sound/direct_sound_samples/cry_ledian.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_ledyba.aif b/sound/direct_sound_samples/cry_ledyba.aif
new file mode 100644
index 000000000..41b31ef52
--- /dev/null
+++ b/sound/direct_sound_samples/cry_ledyba.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_lickitung.aif b/sound/direct_sound_samples/cry_lickitung.aif
new file mode 100644
index 000000000..a4e26732f
--- /dev/null
+++ b/sound/direct_sound_samples/cry_lickitung.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_lileep.aif b/sound/direct_sound_samples/cry_lileep.aif
new file mode 100644
index 000000000..94b2f40f4
--- /dev/null
+++ b/sound/direct_sound_samples/cry_lileep.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_linoone.aif b/sound/direct_sound_samples/cry_linoone.aif
new file mode 100644
index 000000000..ae62cb562
--- /dev/null
+++ b/sound/direct_sound_samples/cry_linoone.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_lombre.aif b/sound/direct_sound_samples/cry_lombre.aif
new file mode 100644
index 000000000..381f1d3d7
--- /dev/null
+++ b/sound/direct_sound_samples/cry_lombre.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_lotad.aif b/sound/direct_sound_samples/cry_lotad.aif
new file mode 100644
index 000000000..086c7a6fb
--- /dev/null
+++ b/sound/direct_sound_samples/cry_lotad.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_loudred.aif b/sound/direct_sound_samples/cry_loudred.aif
new file mode 100644
index 000000000..386e7b8bb
--- /dev/null
+++ b/sound/direct_sound_samples/cry_loudred.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_ludicolo.aif b/sound/direct_sound_samples/cry_ludicolo.aif
new file mode 100644
index 000000000..b923e2b7f
--- /dev/null
+++ b/sound/direct_sound_samples/cry_ludicolo.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_lugia.aif b/sound/direct_sound_samples/cry_lugia.aif
new file mode 100644
index 000000000..ec43d314e
--- /dev/null
+++ b/sound/direct_sound_samples/cry_lugia.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_lunatone.aif b/sound/direct_sound_samples/cry_lunatone.aif
new file mode 100644
index 000000000..b782983f9
--- /dev/null
+++ b/sound/direct_sound_samples/cry_lunatone.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_luvdisc.aif b/sound/direct_sound_samples/cry_luvdisc.aif
new file mode 100644
index 000000000..6b2d5bd69
--- /dev/null
+++ b/sound/direct_sound_samples/cry_luvdisc.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_machamp.aif b/sound/direct_sound_samples/cry_machamp.aif
new file mode 100644
index 000000000..5959947d1
--- /dev/null
+++ b/sound/direct_sound_samples/cry_machamp.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_machoke.aif b/sound/direct_sound_samples/cry_machoke.aif
new file mode 100644
index 000000000..a3fc366aa
--- /dev/null
+++ b/sound/direct_sound_samples/cry_machoke.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_machop.aif b/sound/direct_sound_samples/cry_machop.aif
new file mode 100644
index 000000000..c76db87a2
--- /dev/null
+++ b/sound/direct_sound_samples/cry_machop.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_magby.aif b/sound/direct_sound_samples/cry_magby.aif
new file mode 100644
index 000000000..bd4c7268f
--- /dev/null
+++ b/sound/direct_sound_samples/cry_magby.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_magcargo.aif b/sound/direct_sound_samples/cry_magcargo.aif
new file mode 100644
index 000000000..0263b83d5
--- /dev/null
+++ b/sound/direct_sound_samples/cry_magcargo.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_magikarp.aif b/sound/direct_sound_samples/cry_magikarp.aif
new file mode 100644
index 000000000..fb310987c
--- /dev/null
+++ b/sound/direct_sound_samples/cry_magikarp.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_magmar.aif b/sound/direct_sound_samples/cry_magmar.aif
new file mode 100644
index 000000000..7c7199322
--- /dev/null
+++ b/sound/direct_sound_samples/cry_magmar.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_magnemite.aif b/sound/direct_sound_samples/cry_magnemite.aif
new file mode 100644
index 000000000..36f124c3e
--- /dev/null
+++ b/sound/direct_sound_samples/cry_magnemite.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_magneton.aif b/sound/direct_sound_samples/cry_magneton.aif
new file mode 100644
index 000000000..14e3067ae
--- /dev/null
+++ b/sound/direct_sound_samples/cry_magneton.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_makuhita.aif b/sound/direct_sound_samples/cry_makuhita.aif
new file mode 100644
index 000000000..54551e898
--- /dev/null
+++ b/sound/direct_sound_samples/cry_makuhita.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_manectric.aif b/sound/direct_sound_samples/cry_manectric.aif
new file mode 100644
index 000000000..c5cdc94a1
--- /dev/null
+++ b/sound/direct_sound_samples/cry_manectric.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_mankey.aif b/sound/direct_sound_samples/cry_mankey.aif
new file mode 100644
index 000000000..16ca95339
--- /dev/null
+++ b/sound/direct_sound_samples/cry_mankey.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_mantine.aif b/sound/direct_sound_samples/cry_mantine.aif
new file mode 100644
index 000000000..695dc93c9
--- /dev/null
+++ b/sound/direct_sound_samples/cry_mantine.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_mareep.aif b/sound/direct_sound_samples/cry_mareep.aif
new file mode 100644
index 000000000..14ecca615
--- /dev/null
+++ b/sound/direct_sound_samples/cry_mareep.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_marill.aif b/sound/direct_sound_samples/cry_marill.aif
new file mode 100644
index 000000000..1fe753911
--- /dev/null
+++ b/sound/direct_sound_samples/cry_marill.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_marowak.aif b/sound/direct_sound_samples/cry_marowak.aif
new file mode 100644
index 000000000..4f389f474
--- /dev/null
+++ b/sound/direct_sound_samples/cry_marowak.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_marshtomp.aif b/sound/direct_sound_samples/cry_marshtomp.aif
new file mode 100644
index 000000000..6fc5c7ff3
--- /dev/null
+++ b/sound/direct_sound_samples/cry_marshtomp.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_masquerain.aif b/sound/direct_sound_samples/cry_masquerain.aif
new file mode 100644
index 000000000..e2b1f732a
--- /dev/null
+++ b/sound/direct_sound_samples/cry_masquerain.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_mawile.aif b/sound/direct_sound_samples/cry_mawile.aif
new file mode 100644
index 000000000..9bcb15930
--- /dev/null
+++ b/sound/direct_sound_samples/cry_mawile.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_medicham.aif b/sound/direct_sound_samples/cry_medicham.aif
new file mode 100644
index 000000000..d8335213d
--- /dev/null
+++ b/sound/direct_sound_samples/cry_medicham.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_meditite.aif b/sound/direct_sound_samples/cry_meditite.aif
new file mode 100644
index 000000000..8b316dc93
--- /dev/null
+++ b/sound/direct_sound_samples/cry_meditite.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_meganium.aif b/sound/direct_sound_samples/cry_meganium.aif
new file mode 100644
index 000000000..fca24962b
--- /dev/null
+++ b/sound/direct_sound_samples/cry_meganium.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_meowth.aif b/sound/direct_sound_samples/cry_meowth.aif
new file mode 100644
index 000000000..618b16431
--- /dev/null
+++ b/sound/direct_sound_samples/cry_meowth.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_metagross.aif b/sound/direct_sound_samples/cry_metagross.aif
new file mode 100644
index 000000000..a8942fb53
--- /dev/null
+++ b/sound/direct_sound_samples/cry_metagross.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_metang.aif b/sound/direct_sound_samples/cry_metang.aif
new file mode 100644
index 000000000..f7f5ab063
--- /dev/null
+++ b/sound/direct_sound_samples/cry_metang.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_metapod.aif b/sound/direct_sound_samples/cry_metapod.aif
new file mode 100644
index 000000000..809666df3
--- /dev/null
+++ b/sound/direct_sound_samples/cry_metapod.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_mew.aif b/sound/direct_sound_samples/cry_mew.aif
new file mode 100644
index 000000000..bdedf1eaa
--- /dev/null
+++ b/sound/direct_sound_samples/cry_mew.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_mewtwo.aif b/sound/direct_sound_samples/cry_mewtwo.aif
new file mode 100644
index 000000000..32f15fc15
--- /dev/null
+++ b/sound/direct_sound_samples/cry_mewtwo.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_mightyena.aif b/sound/direct_sound_samples/cry_mightyena.aif
new file mode 100644
index 000000000..bac7bc079
--- /dev/null
+++ b/sound/direct_sound_samples/cry_mightyena.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_milotic.aif b/sound/direct_sound_samples/cry_milotic.aif
new file mode 100644
index 000000000..2b3a9556b
--- /dev/null
+++ b/sound/direct_sound_samples/cry_milotic.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_miltank.aif b/sound/direct_sound_samples/cry_miltank.aif
new file mode 100644
index 000000000..69b7ae06a
--- /dev/null
+++ b/sound/direct_sound_samples/cry_miltank.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_minun.aif b/sound/direct_sound_samples/cry_minun.aif
new file mode 100644
index 000000000..5d9cc5bd3
--- /dev/null
+++ b/sound/direct_sound_samples/cry_minun.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_misdreavus.aif b/sound/direct_sound_samples/cry_misdreavus.aif
new file mode 100644
index 000000000..5d1a7ff95
--- /dev/null
+++ b/sound/direct_sound_samples/cry_misdreavus.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_moltres.aif b/sound/direct_sound_samples/cry_moltres.aif
new file mode 100644
index 000000000..c59714c5f
--- /dev/null
+++ b/sound/direct_sound_samples/cry_moltres.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_mr_mime.aif b/sound/direct_sound_samples/cry_mr_mime.aif
new file mode 100644
index 000000000..285eaa3f2
--- /dev/null
+++ b/sound/direct_sound_samples/cry_mr_mime.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_mudkip.aif b/sound/direct_sound_samples/cry_mudkip.aif
new file mode 100644
index 000000000..d7b8b4c03
--- /dev/null
+++ b/sound/direct_sound_samples/cry_mudkip.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_muk.aif b/sound/direct_sound_samples/cry_muk.aif
new file mode 100644
index 000000000..1296a61df
--- /dev/null
+++ b/sound/direct_sound_samples/cry_muk.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_murkrow.aif b/sound/direct_sound_samples/cry_murkrow.aif
new file mode 100644
index 000000000..70ef1ec77
--- /dev/null
+++ b/sound/direct_sound_samples/cry_murkrow.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_natu.aif b/sound/direct_sound_samples/cry_natu.aif
new file mode 100644
index 000000000..e433cd2bb
--- /dev/null
+++ b/sound/direct_sound_samples/cry_natu.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_nidoking.aif b/sound/direct_sound_samples/cry_nidoking.aif
new file mode 100644
index 000000000..8318e395b
--- /dev/null
+++ b/sound/direct_sound_samples/cry_nidoking.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_nidoqueen.aif b/sound/direct_sound_samples/cry_nidoqueen.aif
new file mode 100644
index 000000000..ad0e64eb9
--- /dev/null
+++ b/sound/direct_sound_samples/cry_nidoqueen.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_nidoran_f.aif b/sound/direct_sound_samples/cry_nidoran_f.aif
new file mode 100644
index 000000000..0598bbe84
--- /dev/null
+++ b/sound/direct_sound_samples/cry_nidoran_f.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_nidoran_m.aif b/sound/direct_sound_samples/cry_nidoran_m.aif
new file mode 100644
index 000000000..f446e45de
--- /dev/null
+++ b/sound/direct_sound_samples/cry_nidoran_m.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_nidorina.aif b/sound/direct_sound_samples/cry_nidorina.aif
new file mode 100644
index 000000000..cc07bcaf6
--- /dev/null
+++ b/sound/direct_sound_samples/cry_nidorina.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_nidorino.aif b/sound/direct_sound_samples/cry_nidorino.aif
new file mode 100644
index 000000000..5210d39ab
--- /dev/null
+++ b/sound/direct_sound_samples/cry_nidorino.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_nincada.aif b/sound/direct_sound_samples/cry_nincada.aif
new file mode 100644
index 000000000..f40245db1
--- /dev/null
+++ b/sound/direct_sound_samples/cry_nincada.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_ninetales.aif b/sound/direct_sound_samples/cry_ninetales.aif
new file mode 100644
index 000000000..825f0d69d
--- /dev/null
+++ b/sound/direct_sound_samples/cry_ninetales.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_ninjask.aif b/sound/direct_sound_samples/cry_ninjask.aif
new file mode 100644
index 000000000..311ece422
--- /dev/null
+++ b/sound/direct_sound_samples/cry_ninjask.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_noctowl.aif b/sound/direct_sound_samples/cry_noctowl.aif
new file mode 100644
index 000000000..4280bf5af
--- /dev/null
+++ b/sound/direct_sound_samples/cry_noctowl.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_none.aif b/sound/direct_sound_samples/cry_none.aif
new file mode 100644
index 000000000..44bb79c3c
--- /dev/null
+++ b/sound/direct_sound_samples/cry_none.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_nosepass.aif b/sound/direct_sound_samples/cry_nosepass.aif
new file mode 100644
index 000000000..08ea36ff5
--- /dev/null
+++ b/sound/direct_sound_samples/cry_nosepass.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_numel.aif b/sound/direct_sound_samples/cry_numel.aif
new file mode 100644
index 000000000..88d7ad865
--- /dev/null
+++ b/sound/direct_sound_samples/cry_numel.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_nuzleaf.aif b/sound/direct_sound_samples/cry_nuzleaf.aif
new file mode 100644
index 000000000..681b288be
--- /dev/null
+++ b/sound/direct_sound_samples/cry_nuzleaf.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_octillery.aif b/sound/direct_sound_samples/cry_octillery.aif
new file mode 100644
index 000000000..84209f6bd
--- /dev/null
+++ b/sound/direct_sound_samples/cry_octillery.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_oddish.aif b/sound/direct_sound_samples/cry_oddish.aif
new file mode 100644
index 000000000..283dffeaf
--- /dev/null
+++ b/sound/direct_sound_samples/cry_oddish.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_omanyte.aif b/sound/direct_sound_samples/cry_omanyte.aif
new file mode 100644
index 000000000..0b73edf5e
--- /dev/null
+++ b/sound/direct_sound_samples/cry_omanyte.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_omastar.aif b/sound/direct_sound_samples/cry_omastar.aif
new file mode 100644
index 000000000..9d5581c50
--- /dev/null
+++ b/sound/direct_sound_samples/cry_omastar.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_onix.aif b/sound/direct_sound_samples/cry_onix.aif
new file mode 100644
index 000000000..46d566495
--- /dev/null
+++ b/sound/direct_sound_samples/cry_onix.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_paras.aif b/sound/direct_sound_samples/cry_paras.aif
new file mode 100644
index 000000000..89185381e
--- /dev/null
+++ b/sound/direct_sound_samples/cry_paras.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_parasect.aif b/sound/direct_sound_samples/cry_parasect.aif
new file mode 100644
index 000000000..c32d09b26
--- /dev/null
+++ b/sound/direct_sound_samples/cry_parasect.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_pelipper.aif b/sound/direct_sound_samples/cry_pelipper.aif
new file mode 100644
index 000000000..68d2c125c
--- /dev/null
+++ b/sound/direct_sound_samples/cry_pelipper.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_persian.aif b/sound/direct_sound_samples/cry_persian.aif
new file mode 100644
index 000000000..5049c12c6
--- /dev/null
+++ b/sound/direct_sound_samples/cry_persian.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_phanpy.aif b/sound/direct_sound_samples/cry_phanpy.aif
new file mode 100644
index 000000000..e0e648df4
--- /dev/null
+++ b/sound/direct_sound_samples/cry_phanpy.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_pichu.aif b/sound/direct_sound_samples/cry_pichu.aif
new file mode 100644
index 000000000..8aa517cf2
--- /dev/null
+++ b/sound/direct_sound_samples/cry_pichu.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_pidgeot.aif b/sound/direct_sound_samples/cry_pidgeot.aif
new file mode 100644
index 000000000..46ea826cb
--- /dev/null
+++ b/sound/direct_sound_samples/cry_pidgeot.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_pidgeotto.aif b/sound/direct_sound_samples/cry_pidgeotto.aif
new file mode 100644
index 000000000..010b7ff02
--- /dev/null
+++ b/sound/direct_sound_samples/cry_pidgeotto.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_pidgey.aif b/sound/direct_sound_samples/cry_pidgey.aif
new file mode 100644
index 000000000..681a41232
--- /dev/null
+++ b/sound/direct_sound_samples/cry_pidgey.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_pikachu.aif b/sound/direct_sound_samples/cry_pikachu.aif
new file mode 100644
index 000000000..79b9b1913
--- /dev/null
+++ b/sound/direct_sound_samples/cry_pikachu.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_piloswine.aif b/sound/direct_sound_samples/cry_piloswine.aif
new file mode 100644
index 000000000..94637b2ed
--- /dev/null
+++ b/sound/direct_sound_samples/cry_piloswine.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_pineco.aif b/sound/direct_sound_samples/cry_pineco.aif
new file mode 100644
index 000000000..b96b968de
--- /dev/null
+++ b/sound/direct_sound_samples/cry_pineco.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_pinsir.aif b/sound/direct_sound_samples/cry_pinsir.aif
new file mode 100644
index 000000000..1079875d0
--- /dev/null
+++ b/sound/direct_sound_samples/cry_pinsir.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_plusle.aif b/sound/direct_sound_samples/cry_plusle.aif
new file mode 100644
index 000000000..02b1b7885
--- /dev/null
+++ b/sound/direct_sound_samples/cry_plusle.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_politoed.aif b/sound/direct_sound_samples/cry_politoed.aif
new file mode 100644
index 000000000..902d4dbba
--- /dev/null
+++ b/sound/direct_sound_samples/cry_politoed.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_poliwag.aif b/sound/direct_sound_samples/cry_poliwag.aif
new file mode 100644
index 000000000..0adfc3192
--- /dev/null
+++ b/sound/direct_sound_samples/cry_poliwag.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_poliwhirl.aif b/sound/direct_sound_samples/cry_poliwhirl.aif
new file mode 100644
index 000000000..2c04644e6
--- /dev/null
+++ b/sound/direct_sound_samples/cry_poliwhirl.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_poliwrath.aif b/sound/direct_sound_samples/cry_poliwrath.aif
new file mode 100644
index 000000000..8d0d20aaa
--- /dev/null
+++ b/sound/direct_sound_samples/cry_poliwrath.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_ponyta.aif b/sound/direct_sound_samples/cry_ponyta.aif
new file mode 100644
index 000000000..c123f310e
--- /dev/null
+++ b/sound/direct_sound_samples/cry_ponyta.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_poochyena.aif b/sound/direct_sound_samples/cry_poochyena.aif
new file mode 100644
index 000000000..5e3615964
--- /dev/null
+++ b/sound/direct_sound_samples/cry_poochyena.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_porygon.aif b/sound/direct_sound_samples/cry_porygon.aif
new file mode 100644
index 000000000..8745067f8
--- /dev/null
+++ b/sound/direct_sound_samples/cry_porygon.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_porygon2.aif b/sound/direct_sound_samples/cry_porygon2.aif
new file mode 100644
index 000000000..033f21b57
--- /dev/null
+++ b/sound/direct_sound_samples/cry_porygon2.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_primeape.aif b/sound/direct_sound_samples/cry_primeape.aif
new file mode 100644
index 000000000..81124aec8
--- /dev/null
+++ b/sound/direct_sound_samples/cry_primeape.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_psyduck.aif b/sound/direct_sound_samples/cry_psyduck.aif
new file mode 100644
index 000000000..fc0ba0d41
--- /dev/null
+++ b/sound/direct_sound_samples/cry_psyduck.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_pupitar.aif b/sound/direct_sound_samples/cry_pupitar.aif
new file mode 100644
index 000000000..22bf1b2b4
--- /dev/null
+++ b/sound/direct_sound_samples/cry_pupitar.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_quagsire.aif b/sound/direct_sound_samples/cry_quagsire.aif
new file mode 100644
index 000000000..c356380a4
--- /dev/null
+++ b/sound/direct_sound_samples/cry_quagsire.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_quilava.aif b/sound/direct_sound_samples/cry_quilava.aif
new file mode 100644
index 000000000..1635fa530
--- /dev/null
+++ b/sound/direct_sound_samples/cry_quilava.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_qwilfish.aif b/sound/direct_sound_samples/cry_qwilfish.aif
new file mode 100644
index 000000000..8b2c7c488
--- /dev/null
+++ b/sound/direct_sound_samples/cry_qwilfish.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_raichu.aif b/sound/direct_sound_samples/cry_raichu.aif
new file mode 100644
index 000000000..7be5e84d8
--- /dev/null
+++ b/sound/direct_sound_samples/cry_raichu.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_raikou.aif b/sound/direct_sound_samples/cry_raikou.aif
new file mode 100644
index 000000000..976fc064d
--- /dev/null
+++ b/sound/direct_sound_samples/cry_raikou.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_ralts.aif b/sound/direct_sound_samples/cry_ralts.aif
new file mode 100644
index 000000000..925582042
--- /dev/null
+++ b/sound/direct_sound_samples/cry_ralts.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_rapidash.aif b/sound/direct_sound_samples/cry_rapidash.aif
new file mode 100644
index 000000000..7151577a6
--- /dev/null
+++ b/sound/direct_sound_samples/cry_rapidash.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_raticate.aif b/sound/direct_sound_samples/cry_raticate.aif
new file mode 100644
index 000000000..e7a7ad61c
--- /dev/null
+++ b/sound/direct_sound_samples/cry_raticate.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_rattata.aif b/sound/direct_sound_samples/cry_rattata.aif
new file mode 100644
index 000000000..690910030
--- /dev/null
+++ b/sound/direct_sound_samples/cry_rattata.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_rayquaza.aif b/sound/direct_sound_samples/cry_rayquaza.aif
new file mode 100644
index 000000000..0d8854686
--- /dev/null
+++ b/sound/direct_sound_samples/cry_rayquaza.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_regice.aif b/sound/direct_sound_samples/cry_regice.aif
new file mode 100644
index 000000000..1923ae250
--- /dev/null
+++ b/sound/direct_sound_samples/cry_regice.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_regirock.aif b/sound/direct_sound_samples/cry_regirock.aif
new file mode 100644
index 000000000..86548591f
--- /dev/null
+++ b/sound/direct_sound_samples/cry_regirock.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_registeel.aif b/sound/direct_sound_samples/cry_registeel.aif
new file mode 100644
index 000000000..de5bf2967
--- /dev/null
+++ b/sound/direct_sound_samples/cry_registeel.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_relicanth.aif b/sound/direct_sound_samples/cry_relicanth.aif
new file mode 100644
index 000000000..e38cfe50d
--- /dev/null
+++ b/sound/direct_sound_samples/cry_relicanth.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_remoraid.aif b/sound/direct_sound_samples/cry_remoraid.aif
new file mode 100644
index 000000000..8eb732967
--- /dev/null
+++ b/sound/direct_sound_samples/cry_remoraid.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_rhydon.aif b/sound/direct_sound_samples/cry_rhydon.aif
new file mode 100644
index 000000000..12a73b70e
--- /dev/null
+++ b/sound/direct_sound_samples/cry_rhydon.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_rhyhorn.aif b/sound/direct_sound_samples/cry_rhyhorn.aif
new file mode 100644
index 000000000..d77bd714a
--- /dev/null
+++ b/sound/direct_sound_samples/cry_rhyhorn.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_roselia.aif b/sound/direct_sound_samples/cry_roselia.aif
new file mode 100644
index 000000000..dad84a939
--- /dev/null
+++ b/sound/direct_sound_samples/cry_roselia.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_sableye.aif b/sound/direct_sound_samples/cry_sableye.aif
new file mode 100644
index 000000000..c56f77c3a
--- /dev/null
+++ b/sound/direct_sound_samples/cry_sableye.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_salamence.aif b/sound/direct_sound_samples/cry_salamence.aif
new file mode 100644
index 000000000..43f227d73
--- /dev/null
+++ b/sound/direct_sound_samples/cry_salamence.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_sandshrew.aif b/sound/direct_sound_samples/cry_sandshrew.aif
new file mode 100644
index 000000000..e4c2defa2
--- /dev/null
+++ b/sound/direct_sound_samples/cry_sandshrew.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_sandslash.aif b/sound/direct_sound_samples/cry_sandslash.aif
new file mode 100644
index 000000000..332627497
--- /dev/null
+++ b/sound/direct_sound_samples/cry_sandslash.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_sceptile.aif b/sound/direct_sound_samples/cry_sceptile.aif
new file mode 100644
index 000000000..b04110b07
--- /dev/null
+++ b/sound/direct_sound_samples/cry_sceptile.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_scizor.aif b/sound/direct_sound_samples/cry_scizor.aif
new file mode 100644
index 000000000..4a53d74eb
--- /dev/null
+++ b/sound/direct_sound_samples/cry_scizor.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_scyther.aif b/sound/direct_sound_samples/cry_scyther.aif
new file mode 100644
index 000000000..3b0ae51b9
--- /dev/null
+++ b/sound/direct_sound_samples/cry_scyther.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_seadra.aif b/sound/direct_sound_samples/cry_seadra.aif
new file mode 100644
index 000000000..c3391de5e
--- /dev/null
+++ b/sound/direct_sound_samples/cry_seadra.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_seaking.aif b/sound/direct_sound_samples/cry_seaking.aif
new file mode 100644
index 000000000..608252bac
--- /dev/null
+++ b/sound/direct_sound_samples/cry_seaking.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_sealeo.aif b/sound/direct_sound_samples/cry_sealeo.aif
new file mode 100644
index 000000000..d920d4bef
--- /dev/null
+++ b/sound/direct_sound_samples/cry_sealeo.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_seedot.aif b/sound/direct_sound_samples/cry_seedot.aif
new file mode 100644
index 000000000..4c95be3cb
--- /dev/null
+++ b/sound/direct_sound_samples/cry_seedot.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_seel.aif b/sound/direct_sound_samples/cry_seel.aif
new file mode 100644
index 000000000..d1b5017df
--- /dev/null
+++ b/sound/direct_sound_samples/cry_seel.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_sentret.aif b/sound/direct_sound_samples/cry_sentret.aif
new file mode 100644
index 000000000..2b9efe891
--- /dev/null
+++ b/sound/direct_sound_samples/cry_sentret.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_seviper.aif b/sound/direct_sound_samples/cry_seviper.aif
new file mode 100644
index 000000000..e72200a13
--- /dev/null
+++ b/sound/direct_sound_samples/cry_seviper.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_sharpedo.aif b/sound/direct_sound_samples/cry_sharpedo.aif
new file mode 100644
index 000000000..907dd8019
--- /dev/null
+++ b/sound/direct_sound_samples/cry_sharpedo.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_shedinja.aif b/sound/direct_sound_samples/cry_shedinja.aif
new file mode 100644
index 000000000..cabda7f10
--- /dev/null
+++ b/sound/direct_sound_samples/cry_shedinja.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_shelgon.aif b/sound/direct_sound_samples/cry_shelgon.aif
new file mode 100644
index 000000000..62362d326
--- /dev/null
+++ b/sound/direct_sound_samples/cry_shelgon.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_shellder.aif b/sound/direct_sound_samples/cry_shellder.aif
new file mode 100644
index 000000000..74d374d69
--- /dev/null
+++ b/sound/direct_sound_samples/cry_shellder.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_shiftry.aif b/sound/direct_sound_samples/cry_shiftry.aif
new file mode 100644
index 000000000..b8ab5d300
--- /dev/null
+++ b/sound/direct_sound_samples/cry_shiftry.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_shroomish.aif b/sound/direct_sound_samples/cry_shroomish.aif
new file mode 100644
index 000000000..a4fe04c7a
--- /dev/null
+++ b/sound/direct_sound_samples/cry_shroomish.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_shuckle.aif b/sound/direct_sound_samples/cry_shuckle.aif
new file mode 100644
index 000000000..73b526258
--- /dev/null
+++ b/sound/direct_sound_samples/cry_shuckle.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_shuppet.aif b/sound/direct_sound_samples/cry_shuppet.aif
new file mode 100644
index 000000000..c94ef6fdc
--- /dev/null
+++ b/sound/direct_sound_samples/cry_shuppet.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_silcoon.aif b/sound/direct_sound_samples/cry_silcoon.aif
new file mode 100644
index 000000000..c745cf14f
--- /dev/null
+++ b/sound/direct_sound_samples/cry_silcoon.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_skarmory.aif b/sound/direct_sound_samples/cry_skarmory.aif
new file mode 100644
index 000000000..a2feb5c5c
--- /dev/null
+++ b/sound/direct_sound_samples/cry_skarmory.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_skiploom.aif b/sound/direct_sound_samples/cry_skiploom.aif
new file mode 100644
index 000000000..c6764957f
--- /dev/null
+++ b/sound/direct_sound_samples/cry_skiploom.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_skitty.aif b/sound/direct_sound_samples/cry_skitty.aif
new file mode 100644
index 000000000..45413721f
--- /dev/null
+++ b/sound/direct_sound_samples/cry_skitty.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_slaking.aif b/sound/direct_sound_samples/cry_slaking.aif
new file mode 100644
index 000000000..cd5616b20
--- /dev/null
+++ b/sound/direct_sound_samples/cry_slaking.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_slakoth.aif b/sound/direct_sound_samples/cry_slakoth.aif
new file mode 100644
index 000000000..35136c016
--- /dev/null
+++ b/sound/direct_sound_samples/cry_slakoth.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_slowbro.aif b/sound/direct_sound_samples/cry_slowbro.aif
new file mode 100644
index 000000000..0b9aab078
--- /dev/null
+++ b/sound/direct_sound_samples/cry_slowbro.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_slowking.aif b/sound/direct_sound_samples/cry_slowking.aif
new file mode 100644
index 000000000..6c2f72dbf
--- /dev/null
+++ b/sound/direct_sound_samples/cry_slowking.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_slowpoke.aif b/sound/direct_sound_samples/cry_slowpoke.aif
new file mode 100644
index 000000000..3d9cfa630
--- /dev/null
+++ b/sound/direct_sound_samples/cry_slowpoke.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_slugma.aif b/sound/direct_sound_samples/cry_slugma.aif
new file mode 100644
index 000000000..c26b3d858
--- /dev/null
+++ b/sound/direct_sound_samples/cry_slugma.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_smeargle.aif b/sound/direct_sound_samples/cry_smeargle.aif
new file mode 100644
index 000000000..11f554dac
--- /dev/null
+++ b/sound/direct_sound_samples/cry_smeargle.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_smoochum.aif b/sound/direct_sound_samples/cry_smoochum.aif
new file mode 100644
index 000000000..4b12c5920
--- /dev/null
+++ b/sound/direct_sound_samples/cry_smoochum.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_sneasel.aif b/sound/direct_sound_samples/cry_sneasel.aif
new file mode 100644
index 000000000..6e42ef1d8
--- /dev/null
+++ b/sound/direct_sound_samples/cry_sneasel.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_snorlax.aif b/sound/direct_sound_samples/cry_snorlax.aif
new file mode 100644
index 000000000..810fd7a7b
--- /dev/null
+++ b/sound/direct_sound_samples/cry_snorlax.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_snorunt.aif b/sound/direct_sound_samples/cry_snorunt.aif
new file mode 100644
index 000000000..1ba9912e5
--- /dev/null
+++ b/sound/direct_sound_samples/cry_snorunt.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_snubbull.aif b/sound/direct_sound_samples/cry_snubbull.aif
new file mode 100644
index 000000000..2fa4ab108
--- /dev/null
+++ b/sound/direct_sound_samples/cry_snubbull.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_solrock.aif b/sound/direct_sound_samples/cry_solrock.aif
new file mode 100644
index 000000000..c718e6338
--- /dev/null
+++ b/sound/direct_sound_samples/cry_solrock.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_spearow.aif b/sound/direct_sound_samples/cry_spearow.aif
new file mode 100644
index 000000000..189baa6ab
--- /dev/null
+++ b/sound/direct_sound_samples/cry_spearow.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_spheal.aif b/sound/direct_sound_samples/cry_spheal.aif
new file mode 100644
index 000000000..7f6adb78c
--- /dev/null
+++ b/sound/direct_sound_samples/cry_spheal.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_spinarak.aif b/sound/direct_sound_samples/cry_spinarak.aif
new file mode 100644
index 000000000..9dc12f707
--- /dev/null
+++ b/sound/direct_sound_samples/cry_spinarak.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_spinda.aif b/sound/direct_sound_samples/cry_spinda.aif
new file mode 100644
index 000000000..ad04fdc7d
--- /dev/null
+++ b/sound/direct_sound_samples/cry_spinda.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_spoink.aif b/sound/direct_sound_samples/cry_spoink.aif
new file mode 100644
index 000000000..1f76b90b6
--- /dev/null
+++ b/sound/direct_sound_samples/cry_spoink.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_squirtle.aif b/sound/direct_sound_samples/cry_squirtle.aif
new file mode 100644
index 000000000..9f9e42704
--- /dev/null
+++ b/sound/direct_sound_samples/cry_squirtle.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_stantler.aif b/sound/direct_sound_samples/cry_stantler.aif
new file mode 100644
index 000000000..db3985cf8
--- /dev/null
+++ b/sound/direct_sound_samples/cry_stantler.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_starmie.aif b/sound/direct_sound_samples/cry_starmie.aif
new file mode 100644
index 000000000..8ecaf1d1d
--- /dev/null
+++ b/sound/direct_sound_samples/cry_starmie.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_staryu.aif b/sound/direct_sound_samples/cry_staryu.aif
new file mode 100644
index 000000000..b97e5e5dc
--- /dev/null
+++ b/sound/direct_sound_samples/cry_staryu.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_steelix.aif b/sound/direct_sound_samples/cry_steelix.aif
new file mode 100644
index 000000000..9e8297b13
--- /dev/null
+++ b/sound/direct_sound_samples/cry_steelix.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_sudowoodo.aif b/sound/direct_sound_samples/cry_sudowoodo.aif
new file mode 100644
index 000000000..6961d18a5
--- /dev/null
+++ b/sound/direct_sound_samples/cry_sudowoodo.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_suicune.aif b/sound/direct_sound_samples/cry_suicune.aif
new file mode 100644
index 000000000..3b4dd9a51
--- /dev/null
+++ b/sound/direct_sound_samples/cry_suicune.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_sunflora.aif b/sound/direct_sound_samples/cry_sunflora.aif
new file mode 100644
index 000000000..56bddf1d4
--- /dev/null
+++ b/sound/direct_sound_samples/cry_sunflora.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_sunkern.aif b/sound/direct_sound_samples/cry_sunkern.aif
new file mode 100644
index 000000000..fb5973839
--- /dev/null
+++ b/sound/direct_sound_samples/cry_sunkern.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_surskit.aif b/sound/direct_sound_samples/cry_surskit.aif
new file mode 100644
index 000000000..fb3bb5273
--- /dev/null
+++ b/sound/direct_sound_samples/cry_surskit.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_swablu.aif b/sound/direct_sound_samples/cry_swablu.aif
new file mode 100644
index 000000000..a04538e0a
--- /dev/null
+++ b/sound/direct_sound_samples/cry_swablu.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_swalot.aif b/sound/direct_sound_samples/cry_swalot.aif
new file mode 100644
index 000000000..5d7eee8df
--- /dev/null
+++ b/sound/direct_sound_samples/cry_swalot.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_swampert.aif b/sound/direct_sound_samples/cry_swampert.aif
new file mode 100644
index 000000000..2e3fa063a
--- /dev/null
+++ b/sound/direct_sound_samples/cry_swampert.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_swellow.aif b/sound/direct_sound_samples/cry_swellow.aif
new file mode 100644
index 000000000..794485fc2
--- /dev/null
+++ b/sound/direct_sound_samples/cry_swellow.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_swinub.aif b/sound/direct_sound_samples/cry_swinub.aif
new file mode 100644
index 000000000..dfcea7084
--- /dev/null
+++ b/sound/direct_sound_samples/cry_swinub.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_taillow.aif b/sound/direct_sound_samples/cry_taillow.aif
new file mode 100644
index 000000000..1d61ec473
--- /dev/null
+++ b/sound/direct_sound_samples/cry_taillow.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_tangela.aif b/sound/direct_sound_samples/cry_tangela.aif
new file mode 100644
index 000000000..b0242c550
--- /dev/null
+++ b/sound/direct_sound_samples/cry_tangela.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_tauros.aif b/sound/direct_sound_samples/cry_tauros.aif
new file mode 100644
index 000000000..70e6f1420
--- /dev/null
+++ b/sound/direct_sound_samples/cry_tauros.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_teddiursa.aif b/sound/direct_sound_samples/cry_teddiursa.aif
new file mode 100644
index 000000000..8d86c6598
--- /dev/null
+++ b/sound/direct_sound_samples/cry_teddiursa.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_tentacool.aif b/sound/direct_sound_samples/cry_tentacool.aif
new file mode 100644
index 000000000..697a751a6
--- /dev/null
+++ b/sound/direct_sound_samples/cry_tentacool.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_tentacruel.aif b/sound/direct_sound_samples/cry_tentacruel.aif
new file mode 100644
index 000000000..9126eab93
--- /dev/null
+++ b/sound/direct_sound_samples/cry_tentacruel.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_togepi.aif b/sound/direct_sound_samples/cry_togepi.aif
new file mode 100644
index 000000000..0285b78e7
--- /dev/null
+++ b/sound/direct_sound_samples/cry_togepi.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_togetic.aif b/sound/direct_sound_samples/cry_togetic.aif
new file mode 100644
index 000000000..19a5d9da1
--- /dev/null
+++ b/sound/direct_sound_samples/cry_togetic.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_torchic.aif b/sound/direct_sound_samples/cry_torchic.aif
new file mode 100644
index 000000000..479b44072
--- /dev/null
+++ b/sound/direct_sound_samples/cry_torchic.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_torkoal.aif b/sound/direct_sound_samples/cry_torkoal.aif
new file mode 100644
index 000000000..b719b4f72
--- /dev/null
+++ b/sound/direct_sound_samples/cry_torkoal.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_totodile.aif b/sound/direct_sound_samples/cry_totodile.aif
new file mode 100644
index 000000000..83dbc6cc4
--- /dev/null
+++ b/sound/direct_sound_samples/cry_totodile.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_trapinch.aif b/sound/direct_sound_samples/cry_trapinch.aif
new file mode 100644
index 000000000..c2227f4a0
--- /dev/null
+++ b/sound/direct_sound_samples/cry_trapinch.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_treecko.aif b/sound/direct_sound_samples/cry_treecko.aif
new file mode 100644
index 000000000..8a09c3220
--- /dev/null
+++ b/sound/direct_sound_samples/cry_treecko.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_tropius.aif b/sound/direct_sound_samples/cry_tropius.aif
new file mode 100644
index 000000000..2348dbb45
--- /dev/null
+++ b/sound/direct_sound_samples/cry_tropius.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_typhlosion.aif b/sound/direct_sound_samples/cry_typhlosion.aif
new file mode 100644
index 000000000..747617861
--- /dev/null
+++ b/sound/direct_sound_samples/cry_typhlosion.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_tyranitar.aif b/sound/direct_sound_samples/cry_tyranitar.aif
new file mode 100644
index 000000000..f6d0008ed
--- /dev/null
+++ b/sound/direct_sound_samples/cry_tyranitar.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_tyrogue.aif b/sound/direct_sound_samples/cry_tyrogue.aif
new file mode 100644
index 000000000..d5d1c3e24
--- /dev/null
+++ b/sound/direct_sound_samples/cry_tyrogue.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_umbreon.aif b/sound/direct_sound_samples/cry_umbreon.aif
new file mode 100644
index 000000000..25c9dde7b
--- /dev/null
+++ b/sound/direct_sound_samples/cry_umbreon.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_unown.aif b/sound/direct_sound_samples/cry_unown.aif
new file mode 100644
index 000000000..4cf5dab02
--- /dev/null
+++ b/sound/direct_sound_samples/cry_unown.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_unused_265.aif b/sound/direct_sound_samples/cry_unused_265.aif
new file mode 100644
index 000000000..aec8a36ff
--- /dev/null
+++ b/sound/direct_sound_samples/cry_unused_265.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_unused_268.aif b/sound/direct_sound_samples/cry_unused_268.aif
new file mode 100644
index 000000000..99ca8dd93
--- /dev/null
+++ b/sound/direct_sound_samples/cry_unused_268.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_ursaring.aif b/sound/direct_sound_samples/cry_ursaring.aif
new file mode 100644
index 000000000..70d7b3c84
--- /dev/null
+++ b/sound/direct_sound_samples/cry_ursaring.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_vaporeon.aif b/sound/direct_sound_samples/cry_vaporeon.aif
new file mode 100644
index 000000000..8ef490dc7
--- /dev/null
+++ b/sound/direct_sound_samples/cry_vaporeon.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_venomoth.aif b/sound/direct_sound_samples/cry_venomoth.aif
new file mode 100644
index 000000000..8c623b7e2
--- /dev/null
+++ b/sound/direct_sound_samples/cry_venomoth.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_venonat.aif b/sound/direct_sound_samples/cry_venonat.aif
new file mode 100644
index 000000000..58bbdfbc2
--- /dev/null
+++ b/sound/direct_sound_samples/cry_venonat.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_venusaur.aif b/sound/direct_sound_samples/cry_venusaur.aif
new file mode 100644
index 000000000..ccd85fea9
--- /dev/null
+++ b/sound/direct_sound_samples/cry_venusaur.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_vibrava.aif b/sound/direct_sound_samples/cry_vibrava.aif
new file mode 100644
index 000000000..07cb73376
--- /dev/null
+++ b/sound/direct_sound_samples/cry_vibrava.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_victreebel.aif b/sound/direct_sound_samples/cry_victreebel.aif
new file mode 100644
index 000000000..fe156602b
--- /dev/null
+++ b/sound/direct_sound_samples/cry_victreebel.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_vigoroth.aif b/sound/direct_sound_samples/cry_vigoroth.aif
new file mode 100644
index 000000000..d4d09beca
--- /dev/null
+++ b/sound/direct_sound_samples/cry_vigoroth.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_vileplume.aif b/sound/direct_sound_samples/cry_vileplume.aif
new file mode 100644
index 000000000..353830909
--- /dev/null
+++ b/sound/direct_sound_samples/cry_vileplume.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_volbeat.aif b/sound/direct_sound_samples/cry_volbeat.aif
new file mode 100644
index 000000000..b92b761d9
--- /dev/null
+++ b/sound/direct_sound_samples/cry_volbeat.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_voltorb.aif b/sound/direct_sound_samples/cry_voltorb.aif
new file mode 100644
index 000000000..f376380a8
--- /dev/null
+++ b/sound/direct_sound_samples/cry_voltorb.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_vulpix.aif b/sound/direct_sound_samples/cry_vulpix.aif
new file mode 100644
index 000000000..314b81752
--- /dev/null
+++ b/sound/direct_sound_samples/cry_vulpix.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_wailmer.aif b/sound/direct_sound_samples/cry_wailmer.aif
new file mode 100644
index 000000000..e47000acf
--- /dev/null
+++ b/sound/direct_sound_samples/cry_wailmer.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_wailord.aif b/sound/direct_sound_samples/cry_wailord.aif
new file mode 100644
index 000000000..be4b0fd5f
--- /dev/null
+++ b/sound/direct_sound_samples/cry_wailord.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_walrein.aif b/sound/direct_sound_samples/cry_walrein.aif
new file mode 100644
index 000000000..2baf4f985
--- /dev/null
+++ b/sound/direct_sound_samples/cry_walrein.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_wartortle.aif b/sound/direct_sound_samples/cry_wartortle.aif
new file mode 100644
index 000000000..1c846f60a
--- /dev/null
+++ b/sound/direct_sound_samples/cry_wartortle.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_weedle.aif b/sound/direct_sound_samples/cry_weedle.aif
new file mode 100644
index 000000000..4b91e1fc3
--- /dev/null
+++ b/sound/direct_sound_samples/cry_weedle.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_weepinbell.aif b/sound/direct_sound_samples/cry_weepinbell.aif
new file mode 100644
index 000000000..4353d5d25
--- /dev/null
+++ b/sound/direct_sound_samples/cry_weepinbell.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_weezing.aif b/sound/direct_sound_samples/cry_weezing.aif
new file mode 100644
index 000000000..376f1443d
--- /dev/null
+++ b/sound/direct_sound_samples/cry_weezing.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_whiscash.aif b/sound/direct_sound_samples/cry_whiscash.aif
new file mode 100644
index 000000000..72435f691
--- /dev/null
+++ b/sound/direct_sound_samples/cry_whiscash.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_whismur.aif b/sound/direct_sound_samples/cry_whismur.aif
new file mode 100644
index 000000000..4ebb1f2f6
--- /dev/null
+++ b/sound/direct_sound_samples/cry_whismur.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_wigglytuff.aif b/sound/direct_sound_samples/cry_wigglytuff.aif
new file mode 100644
index 000000000..3ffa60e40
--- /dev/null
+++ b/sound/direct_sound_samples/cry_wigglytuff.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_wingull.aif b/sound/direct_sound_samples/cry_wingull.aif
new file mode 100644
index 000000000..55a0d8e82
--- /dev/null
+++ b/sound/direct_sound_samples/cry_wingull.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_wobbuffet.aif b/sound/direct_sound_samples/cry_wobbuffet.aif
new file mode 100644
index 000000000..66c971c4c
--- /dev/null
+++ b/sound/direct_sound_samples/cry_wobbuffet.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_wooper.aif b/sound/direct_sound_samples/cry_wooper.aif
new file mode 100644
index 000000000..bd6592a8a
--- /dev/null
+++ b/sound/direct_sound_samples/cry_wooper.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_wurmple.aif b/sound/direct_sound_samples/cry_wurmple.aif
new file mode 100644
index 000000000..3d800b7bb
--- /dev/null
+++ b/sound/direct_sound_samples/cry_wurmple.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_wynaut.aif b/sound/direct_sound_samples/cry_wynaut.aif
new file mode 100644
index 000000000..a93787e07
--- /dev/null
+++ b/sound/direct_sound_samples/cry_wynaut.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_xatu.aif b/sound/direct_sound_samples/cry_xatu.aif
new file mode 100644
index 000000000..9664d696d
--- /dev/null
+++ b/sound/direct_sound_samples/cry_xatu.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_yanma.aif b/sound/direct_sound_samples/cry_yanma.aif
new file mode 100644
index 000000000..1009e9b11
--- /dev/null
+++ b/sound/direct_sound_samples/cry_yanma.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_zangoose.aif b/sound/direct_sound_samples/cry_zangoose.aif
new file mode 100644
index 000000000..37babd376
--- /dev/null
+++ b/sound/direct_sound_samples/cry_zangoose.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_zapdos.aif b/sound/direct_sound_samples/cry_zapdos.aif
new file mode 100644
index 000000000..f0ea7d070
--- /dev/null
+++ b/sound/direct_sound_samples/cry_zapdos.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_zigzagoon.aif b/sound/direct_sound_samples/cry_zigzagoon.aif
new file mode 100644
index 000000000..9d34637fa
--- /dev/null
+++ b/sound/direct_sound_samples/cry_zigzagoon.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_zubat.aif b/sound/direct_sound_samples/cry_zubat.aif
new file mode 100644
index 000000000..afd6e392e
--- /dev/null
+++ b/sound/direct_sound_samples/cry_zubat.aif
Binary files differ
diff --git a/sound/programmable_wave_samples/84553BC.aif b/sound/programmable_wave_samples/84553BC.aif
deleted file mode 100644
index 301c7cd81..000000000
--- a/sound/programmable_wave_samples/84553BC.aif
+++ /dev/null
Binary files differ
diff --git a/sound/programmable_wave_samples/84553BC.pcm b/sound/programmable_wave_samples/84553BC.pcm
new file mode 100644
index 000000000..a0ca8fed9
--- /dev/null
+++ b/sound/programmable_wave_samples/84553BC.pcm
@@ -0,0 +1 @@
+%c%c \ No newline at end of file
diff --git a/sound/programmable_wave_samples/84553CC.aif b/sound/programmable_wave_samples/84553CC.aif
deleted file mode 100644
index b2e48c383..000000000
--- a/sound/programmable_wave_samples/84553CC.aif
+++ /dev/null
Binary files differ
diff --git a/sound/programmable_wave_samples/84553CC.pcm b/sound/programmable_wave_samples/84553CC.pcm
new file mode 100644
index 000000000..25be9c018
--- /dev/null
+++ b/sound/programmable_wave_samples/84553CC.pcm
@@ -0,0 +1 @@
+Fu1Fu1 \ No newline at end of file
diff --git a/sound/programmable_wave_samples/84553DC.aif b/sound/programmable_wave_samples/84553DC.aif
deleted file mode 100644
index 100baa99c..000000000
--- a/sound/programmable_wave_samples/84553DC.aif
+++ /dev/null
Binary files differ
diff --git a/sound/programmable_wave_samples/84553DC.pcm b/sound/programmable_wave_samples/84553DC.pcm
new file mode 100644
index 000000000..5d9585aca
--- /dev/null
+++ b/sound/programmable_wave_samples/84553DC.pcm
@@ -0,0 +1 @@
+ܺvT2ܺvT2 \ No newline at end of file
diff --git a/sound/programmable_wave_samples/84553EC.aif b/sound/programmable_wave_samples/84553EC.aif
deleted file mode 100644
index 8d3266c0b..000000000
--- a/sound/programmable_wave_samples/84553EC.aif
+++ /dev/null
Binary files differ
diff --git a/sound/programmable_wave_samples/84553EC.pcm b/sound/programmable_wave_samples/84553EC.pcm
new file mode 100644
index 000000000..25ff1b371
--- /dev/null
+++ b/sound/programmable_wave_samples/84553EC.pcm
@@ -0,0 +1 @@
+wwe1wwe1 \ No newline at end of file
diff --git a/sound/programmable_wave_samples/84553FC.aif b/sound/programmable_wave_samples/84553FC.aif
deleted file mode 100644
index 6d08430bb..000000000
--- a/sound/programmable_wave_samples/84553FC.aif
+++ /dev/null
Binary files differ
diff --git a/sound/programmable_wave_samples/84553FC.pcm b/sound/programmable_wave_samples/84553FC.pcm
new file mode 100644
index 000000000..d0b69f04a
--- /dev/null
+++ b/sound/programmable_wave_samples/84553FC.pcm
@@ -0,0 +1 @@
+ʆC!ʆC! \ No newline at end of file
diff --git a/sound/programmable_wave_samples/845540C.aif b/sound/programmable_wave_samples/845540C.aif
deleted file mode 100644
index 3db2b5d74..000000000
--- a/sound/programmable_wave_samples/845540C.aif
+++ /dev/null
Binary files differ
diff --git a/sound/programmable_wave_samples/845540C.pcm b/sound/programmable_wave_samples/845540C.pcm
new file mode 100644
index 000000000..d0fa1932d
--- /dev/null
+++ b/sound/programmable_wave_samples/845540C.pcm
@@ -0,0 +1 @@
+CFCF \ No newline at end of file
diff --git a/sound/programmable_wave_samples/845541C.pcm b/sound/programmable_wave_samples/845541C.pcm
new file mode 100644
index 000000000..81afd79c5
--- /dev/null
+++ b/sound/programmable_wave_samples/845541C.pcm
Binary files differ
diff --git a/sound/programmable_wave_samples/845542C.aif b/sound/programmable_wave_samples/845542C.aif
deleted file mode 100644
index a17403408..000000000
--- a/sound/programmable_wave_samples/845542C.aif
+++ /dev/null
Binary files differ
diff --git a/sound/programmable_wave_samples/845542C.pcm b/sound/programmable_wave_samples/845542C.pcm
new file mode 100644
index 000000000..f5e51d5a9
--- /dev/null
+++ b/sound/programmable_wave_samples/845542C.pcm
@@ -0,0 +1 @@
+gȘVTgȘVT \ No newline at end of file
diff --git a/sound/programmable_wave_samples/845543C.aif b/sound/programmable_wave_samples/845543C.aif
deleted file mode 100644
index 4c15c20e5..000000000
--- a/sound/programmable_wave_samples/845543C.aif
+++ /dev/null
Binary files differ
diff --git a/sound/programmable_wave_samples/845543C.pcm b/sound/programmable_wave_samples/845543C.pcm
new file mode 100644
index 000000000..0d7192617
--- /dev/null
+++ b/sound/programmable_wave_samples/845543C.pcm
Binary files differ
diff --git a/sound/programmable_wave_samples/845544C.aif b/sound/programmable_wave_samples/845544C.aif
deleted file mode 100644
index c7a12fc85..000000000
--- a/sound/programmable_wave_samples/845544C.aif
+++ /dev/null
Binary files differ
diff --git a/sound/programmable_wave_samples/845544C.pcm b/sound/programmable_wave_samples/845544C.pcm
new file mode 100644
index 000000000..2aae22d26
--- /dev/null
+++ b/sound/programmable_wave_samples/845544C.pcm
@@ -0,0 +1 @@
+&8J\ZH6&8J\ZH6 \ No newline at end of file
diff --git a/sound/voice_groups.inc b/sound/voice_groups.inc
index 3ce443a5c..d9e925956 100644
--- a/sound/voice_groups.inc
+++ b/sound/voice_groups.inc
@@ -12134,803 +12134,803 @@ voicegroup_8451F90:: @ 8451F90
.align 2
voicegroup_8452590:: @ 8452590
- cry CryDirectSound_4AB57C
- cry CryDirectSound_4AC608
- cry CryDirectSound_4AD698
- cry CryDirectSound_4AE9F0
- cry CryDirectSound_4AF860
- cry CryDirectSound_4B06E0
- cry CryDirectSound_4B1A28
- cry CryDirectSound_4B289C
- cry CryDirectSound_4B39DC
- cry CryDirectSound_4B4D24
- cry CryDirectSound_4B557C
- cry CryDirectSound_4B6CCC
- cry CryDirectSound_4B76D4
- cry CryDirectSound_4B8718
- cry CryDirectSound_4B9954
- cry CryDirectSound_4BACB0
- cry CryDirectSound_4BB098
- cry CryDirectSound_4BBFA0
- cry CryDirectSound_4BD0D4
- cry CryDirectSound_4BD8B4
- cry CryDirectSound_4BE238
- cry CryDirectSound_4BF3DC
- cry CryDirectSound_4C0518
- cry CryDirectSound_4C1864
- cry CryDirectSound_4C2BBC
- cry CryDirectSound_4C3C64
- cry CryDirectSound_4C5424
- cry CryDirectSound_4C5D78
- cry CryDirectSound_4C6B08
- cry CryDirectSound_4C74B8
- cry CryDirectSound_4C8180
- cry CryDirectSound_4C9260
- cry CryDirectSound_4C9CC8
- cry CryDirectSound_4CA8DC
- cry CryDirectSound_4CC148
- cry CryDirectSound_4CC9B8
- cry CryDirectSound_4CD448
- cry CryDirectSound_4CEC18
- cry CryDirectSound_4D0484
- cry CryDirectSound_4D09E8
- cry CryDirectSound_4D10B0
- cry CryDirectSound_4D241C
- cry CryDirectSound_4D3780
- cry CryDirectSound_4D461C
- cry CryDirectSound_4D5298
- cry CryDirectSound_4D6C34
- cry CryDirectSound_4D8828
- cry CryDirectSound_4DA690
- cry CryDirectSound_4DB610
- cry CryDirectSound_4DC614
- cry CryDirectSound_4DD984
- cry CryDirectSound_4DECF0
- cry CryDirectSound_4DF680
- cry CryDirectSound_4E095C
- cry CryDirectSound_4E1684
- cry CryDirectSound_4E21CC
- cry CryDirectSound_4E322C
- cry CryDirectSound_4E425C
- cry CryDirectSound_4E4FC0
- cry CryDirectSound_4E60FC
- cry CryDirectSound_4E6C18
- cry CryDirectSound_4E72C0
- cry CryDirectSound_4E7DE4
- cry CryDirectSound_4E9548
- cry CryDirectSound_4EB030
- cry CryDirectSound_4ECFCC
- cry CryDirectSound_4EDD30
- cry CryDirectSound_4EEAC0
- cry CryDirectSound_4EFB48
- cry CryDirectSound_4F02D4
- cry CryDirectSound_4F1174
- cry CryDirectSound_4F24C0
- cry CryDirectSound_4F34B0
- cry CryDirectSound_4F4BAC
- cry CryDirectSound_4F6360
- cry CryDirectSound_4F7F48
- cry CryDirectSound_4F8D74
- cry CryDirectSound_4F9C84
- cry CryDirectSound_4FAF24
- cry CryDirectSound_4FB68C
- cry CryDirectSound_4FC3FC
- cry CryDirectSound_4FD740
- cry CryDirectSound_4FEF28
- cry CryDirectSound_4FF6A4
- cry CryDirectSound_5009E8
- cry CryDirectSound_501D60
- cry CryDirectSound_502F50
- cry CryDirectSound_504474
- cry CryDirectSound_504EFC
- cry CryDirectSound_505DBC
- cry CryDirectSound_506D30
- cry CryDirectSound_5081F4
- cry CryDirectSound_509944
- cry CryDirectSound_50B0C4
- cry CryDirectSound_50BF84
- cry CryDirectSound_50D848
- cry CryDirectSound_50F560
- cry CryDirectSound_511264
- cry CryDirectSound_512AB0
- cry CryDirectSound_514308
- cry CryDirectSound_515BCC
- cry CryDirectSound_517504
- cry CryDirectSound_5187E4
- cry CryDirectSound_51A7C8
- cry CryDirectSound_51B6E8
- cry CryDirectSound_51C558
- cry CryDirectSound_51D804
- cry CryDirectSound_51E9DC
- cry CryDirectSound_51F904
- cry CryDirectSound_520D60
- cry CryDirectSound_52230C
- cry CryDirectSound_523678
- cry CryDirectSound_524AE4
- cry CryDirectSound_5259B0
- cry CryDirectSound_5268CC
- cry CryDirectSound_527B80
- cry CryDirectSound_5284FC
- cry CryDirectSound_528D68
- cry CryDirectSound_529740
- cry CryDirectSound_52AA98
- cry CryDirectSound_52BE80
- cry CryDirectSound_52D35C
- cry CryDirectSound_52E64C
- cry CryDirectSound_52F3A8
- cry CryDirectSound_53231C
- cry CryDirectSound_534200
- cry CryDirectSound_53517C
- cry CryDirectSound_535DD8
+ cry Cry_Bulbasaur
+ cry Cry_Ivysaur
+ cry Cry_Venusaur
+ cry Cry_Charmander
+ cry Cry_Charmeleon
+ cry Cry_Charizard
+ cry Cry_Squirtle
+ cry Cry_Wartortle
+ cry Cry_Blastoise
+ cry Cry_Caterpie
+ cry Cry_Metapod
+ cry Cry_Butterfree
+ cry Cry_Weedle
+ cry Cry_Kakuna
+ cry Cry_Beedrill
+ cry Cry_Pidgey
+ cry Cry_Pidgeotto
+ cry Cry_Pidgeot
+ cry Cry_Rattata
+ cry Cry_Raticate
+ cry Cry_Spearow
+ cry Cry_Fearow
+ cry Cry_Ekans
+ cry Cry_Arbok
+ cry Cry_Pikachu
+ cry Cry_Raichu
+ cry Cry_Sandshrew
+ cry Cry_Sandslash
+ cry Cry_NidoranF
+ cry Cry_Nidorina
+ cry Cry_Nidoqueen
+ cry Cry_NidoranM
+ cry Cry_Nidorino
+ cry Cry_Nidoking
+ cry Cry_Clefairy
+ cry Cry_Clefable
+ cry Cry_Vulpix
+ cry Cry_Ninetales
+ cry Cry_Jigglypuff
+ cry Cry_Wigglytuff
+ cry Cry_Zubat
+ cry Cry_Golbat
+ cry Cry_Oddish
+ cry Cry_Gloom
+ cry Cry_Vileplume
+ cry Cry_Paras
+ cry Cry_Parasect
+ cry Cry_Venonat
+ cry Cry_Venomoth
+ cry Cry_Diglett
+ cry Cry_Dugtrio
+ cry Cry_Meowth
+ cry Cry_Persian
+ cry Cry_Psyduck
+ cry Cry_Golduck
+ cry Cry_Mankey
+ cry Cry_Primeape
+ cry Cry_Growlithe
+ cry Cry_Arcanine
+ cry Cry_Poliwag
+ cry Cry_Poliwhirl
+ cry Cry_Poliwrath
+ cry Cry_Abra
+ cry Cry_Kadabra
+ cry Cry_Alakazam
+ cry Cry_Machop
+ cry Cry_Machoke
+ cry Cry_Machamp
+ cry Cry_Bellsprout
+ cry Cry_Weepinbell
+ cry Cry_Victreebel
+ cry Cry_Tentacool
+ cry Cry_Tentacruel
+ cry Cry_Geodude
+ cry Cry_Graveler
+ cry Cry_Golem
+ cry Cry_Ponyta
+ cry Cry_Rapidash
+ cry Cry_Slowpoke
+ cry Cry_Slowbro
+ cry Cry_Magnemite
+ cry Cry_Magneton
+ cry Cry_Farfetchd
+ cry Cry_Doduo
+ cry Cry_Dodrio
+ cry Cry_Seel
+ cry Cry_Dewgong
+ cry Cry_Grimer
+ cry Cry_Muk
+ cry Cry_Shellder
+ cry Cry_Cloyster
+ cry Cry_Gastly
+ cry Cry_Haunter
+ cry Cry_Gengar
+ cry Cry_Onix
+ cry Cry_Drowzee
+ cry Cry_Hypno
+ cry Cry_Krabby
+ cry Cry_Kingler
+ cry Cry_Voltorb
+ cry Cry_Electrode
+ cry Cry_Exeggcute
+ cry Cry_Exeggutor
+ cry Cry_Cubone
+ cry Cry_Marowak
+ cry Cry_Hitmonlee
+ cry Cry_Hitmonchan
+ cry Cry_Lickitung
+ cry Cry_Koffing
+ cry Cry_Weezing
+ cry Cry_Rhyhorn
+ cry Cry_Rhydon
+ cry Cry_Chansey
+ cry Cry_Tangela
+ cry Cry_Kangaskhan
+ cry Cry_Horsea
+ cry Cry_Seadra
+ cry Cry_Goldeen
+ cry Cry_Seaking
+ cry Cry_Staryu
+ cry Cry_Starmie
+ cry Cry_MrMime
+ cry Cry_Scyther
+ cry Cry_Jynx
+ cry Cry_Electabuzz
+ cry Cry_Magmar
+ cry Cry_Pinsir
+ cry Cry_Tauros
.align 2
voicegroup_8452B90:: @ 8452B90
- cry CryDirectSound_53702C
- cry CryDirectSound_538334
- cry CryDirectSound_539768
- cry CryDirectSound_53A63C
- cry CryDirectSound_53B158
- cry CryDirectSound_53BF90
- cry CryDirectSound_53D5A8
- cry CryDirectSound_53E57C
- cry CryDirectSound_53F500
- cry CryDirectSound_54090C
- cry CryDirectSound_541664
- cry CryDirectSound_5423B8
- cry CryDirectSound_54300C
- cry CryDirectSound_543DC8
- cry CryDirectSound_545624
- cry CryDirectSound_545B60
- cry CryDirectSound_547308
- cry CryDirectSound_548280
- cry CryDirectSound_549A2C
- cry CryDirectSound_54A5C8
- cry CryDirectSound_54B670
- cry CryDirectSound_54C97C
- cry CryDirectSound_54E7E4
- cry CryDirectSound_55064C
- cry CryDirectSound_550B8C
- cry CryDirectSound_551458
- cry CryDirectSound_552490
- cry CryDirectSound_552B94
- cry CryDirectSound_55377C
- cry CryDirectSound_555D8C
- cry CryDirectSound_556FE4
- cry CryDirectSound_558420
- cry CryDirectSound_559DA4
- cry CryDirectSound_55A1CC
- cry CryDirectSound_55A814
- cry CryDirectSound_55B2F8
- cry CryDirectSound_55C828
- cry CryDirectSound_55CF20
- cry CryDirectSound_55D784
- cry CryDirectSound_55E4E8
- cry CryDirectSound_55F13C
- cry CryDirectSound_56086C
- cry CryDirectSound_56151C
- cry CryDirectSound_561FA8
- cry CryDirectSound_5626FC
- cry CryDirectSound_562CEC
- cry CryDirectSound_5633E8
- cry CryDirectSound_563ED0
- cry CryDirectSound_5645D0
- cry CryDirectSound_565060
- cry CryDirectSound_565F2C
- cry CryDirectSound_566684
- cry CryDirectSound_567438
- cry CryDirectSound_5684B8
- cry CryDirectSound_5692D0
- cry CryDirectSound_569FE4
- cry CryDirectSound_56B0D0
- cry CryDirectSound_56C100
- cry CryDirectSound_56D344
- cry CryDirectSound_56DBB0
- cry CryDirectSound_56E8B8
- cry CryDirectSound_56F8F4
- cry CryDirectSound_570714
- cry CryDirectSound_570F28
- cry CryDirectSound_571F08
- cry CryDirectSound_573010
- cry CryDirectSound_573770
- cry CryDirectSound_5744D0
- cry CryDirectSound_575884
- cry CryDirectSound_576804
- cry CryDirectSound_5778C8
- cry CryDirectSound_5790AC
- cry CryDirectSound_579C4C
- cry CryDirectSound_57A974
- cry CryDirectSound_57BE10
- cry CryDirectSound_57CCC4
- cry CryDirectSound_57DA24
- cry CryDirectSound_57EE2C
- cry CryDirectSound_57FE0C
- cry CryDirectSound_580A2C
- cry CryDirectSound_583054
- cry CryDirectSound_583EC8
- cry CryDirectSound_58566C
- cry CryDirectSound_586208
- cry CryDirectSound_587904
- cry CryDirectSound_588338
- cry CryDirectSound_58958C
- cry CryDirectSound_589EB0
- cry CryDirectSound_58AF3C
- cry CryDirectSound_58CD14
- cry CryDirectSound_58DE2C
- cry CryDirectSound_58F334
- cry CryDirectSound_58FFDC
- cry CryDirectSound_590CD0
- cry CryDirectSound_5919B0
- cry CryDirectSound_592440
- cry CryDirectSound_593E84
- cry CryDirectSound_594EB8
- cry CryDirectSound_595E80
- cry CryDirectSound_597688
- cry CryDirectSound_598330
- cry CryDirectSound_5996E0
- cry CryDirectSound_59A4B8
- cry CryDirectSound_59B008
- cry CryDirectSound_59C12C
- cry CryDirectSound_59D0E4
- cry CryDirectSound_59E760
- cry CryDirectSound_59F194
- cry CryDirectSound_5A01BC
- cry CryDirectSound_5A0F9C
- cry CryDirectSound_5A1B50
- cry CryDirectSound_5A25DC
- cry CryDirectSound_5A344C
- cry CryDirectSound_5A4328
- cry CryDirectSound_5A53BC
- cry CryDirectSound_5A652C
- cry CryDirectSound_5A79A0
- cry CryDirectSound_5A8BE8
- cry CryDirectSound_5A9898
- cry CryDirectSound_5AA108
- cry CryDirectSound_5AB868
- cry CryDirectSound_5ADE60
- cry CryDirectSound_5AF4F4
- cry CryDirectSound_5B036C
- cry CryDirectSound_5B0BCC
- cry CryDirectSound_5B168C
- cry CryDirectSound_5B1FD8
- cry CryDirectSound_5B2C34
+ cry Cry_Magikarp
+ cry Cry_Gyarados
+ cry Cry_Lapras
+ cry Cry_Ditto
+ cry Cry_Eevee
+ cry Cry_Vaporeon
+ cry Cry_Jolteon
+ cry Cry_Flareon
+ cry Cry_Porygon
+ cry Cry_Omanyte
+ cry Cry_Omastar
+ cry Cry_Kabuto
+ cry Cry_Kabutops
+ cry Cry_Aerodactyl
+ cry Cry_Snorlax
+ cry Cry_Articuno
+ cry Cry_Zapdos
+ cry Cry_Moltres
+ cry Cry_Dratini
+ cry Cry_Dragonair
+ cry Cry_Dragonite
+ cry Cry_Mewtwo
+ cry Cry_Mew
+ cry Cry_Chikorita
+ cry Cry_Bayleef
+ cry Cry_Meganium
+ cry Cry_Cyndaquil
+ cry Cry_Quilava
+ cry Cry_Typhlosion
+ cry Cry_Totodile
+ cry Cry_Croconaw
+ cry Cry_Feraligatr
+ cry Cry_Sentret
+ cry Cry_Furret
+ cry Cry_Hoothoot
+ cry Cry_Noctowl
+ cry Cry_Ledyba
+ cry Cry_Ledian
+ cry Cry_Spinarak
+ cry Cry_Ariados
+ cry Cry_Crobat
+ cry Cry_Chinchou
+ cry Cry_Lanturn
+ cry Cry_Pichu
+ cry Cry_Cleffa
+ cry Cry_Igglybuff
+ cry Cry_Togepi
+ cry Cry_Togetic
+ cry Cry_Natu
+ cry Cry_Xatu
+ cry Cry_Mareep
+ cry Cry_Flaaffy
+ cry Cry_Ampharos
+ cry Cry_Bellossom
+ cry Cry_Marill
+ cry Cry_Azumarill
+ cry Cry_Sudowoodo
+ cry Cry_Politoed
+ cry Cry_Hoppip
+ cry Cry_Skiploom
+ cry Cry_Jumpluff
+ cry Cry_Aipom
+ cry Cry_Sunkern
+ cry Cry_Sunflora
+ cry Cry_Yanma
+ cry Cry_Wooper
+ cry Cry_Quagsire
+ cry Cry_Espeon
+ cry Cry_Umbreon
+ cry Cry_Murkrow
+ cry Cry_Slowking
+ cry Cry_Misdreavus
+ cry Cry_Unown
+ cry Cry_Wobbuffet
+ cry Cry_Girafarig
+ cry Cry_Pineco
+ cry Cry_Forretress
+ cry Cry_Dunsparce
+ cry Cry_Gligar
+ cry Cry_Steelix
+ cry Cry_Snubbull
+ cry Cry_Granbull
+ cry Cry_Qwilfish
+ cry Cry_Scizor
+ cry Cry_Shuckle
+ cry Cry_Heracross
+ cry Cry_Sneasel
+ cry Cry_Teddiursa
+ cry Cry_Ursaring
+ cry Cry_Slugma
+ cry Cry_Magcargo
+ cry Cry_Swinub
+ cry Cry_Piloswine
+ cry Cry_Corsola
+ cry Cry_Remoraid
+ cry Cry_Octillery
+ cry Cry_Delibird
+ cry Cry_Mantine
+ cry Cry_Skarmory
+ cry Cry_Houndour
+ cry Cry_Houndoom
+ cry Cry_Kingdra
+ cry Cry_Phanpy
+ cry Cry_Donphan
+ cry Cry_Porygon2
+ cry Cry_Stantler
+ cry Cry_Smeargle
+ cry Cry_Tyrogue
+ cry Cry_Hitmontop
+ cry Cry_Smoochum
+ cry Cry_Elekid
+ cry Cry_Magby
+ cry Cry_Miltank
+ cry Cry_Blissey
+ cry Cry_Raikou
+ cry Cry_Entei
+ cry Cry_Suicune
+ cry Cry_Larvitar
+ cry Cry_Pupitar
+ cry Cry_Tyranitar
+ cry Cry_Lugia
+ cry Cry_HoOh
+ cry Cry_Celebi
+ cry Cry_Kecleon
+ cry Cry_Roselia
+ cry Cry_Torkoal
+ cry Cry_Electrike
+ cry Cry_Manectric
.align 2
voicegroup_8453190:: @ 8453190
- cry CryDirectSound_5B413C
- cry CryDirectSound_5B4BD4
- cry CryDirectSound_5B5804
- cry CryDirectSound_5B65E4
- cry CryDirectSound_5B7184
- cry CryDirectSound_5B8890
- cry CryDirectSound_5B9220
- cry CryDirectSound_5B9C88
- cry CryDirectSound_5BA220
- cry CryDirectSound_5BAD3C
- cry CryDirectSound_5BB690
- cry CryDirectSound_5BBC90
- cry CryDirectSound_5BC594
- cry CryDirectSound_5BD744
- cry CryDirectSound_5BE3B0
- cry CryDirectSound_5BED58
- cry CryDirectSound_5C0A2C
- cry CryDirectSound_5C29AC
- cry CryDirectSound_5C3554
- cry CryDirectSound_5C49C8
- cry CryDirectSound_5C63E4
- cry CryDirectSound_5C6B68
- cry CryDirectSound_5C7C6C
- cry CryDirectSound_5C92EC
- cry CryDirectSound_5C9EB4
- cry CryDirectSound_5CAAF4
- cry CryDirectSound_5CB79C
- cry CryDirectSound_5CBFDC
- cry CryDirectSound_5CC444
- cry CryDirectSound_5CD2D8
- cry CryDirectSound_5CE3A8
- cry CryDirectSound_5CEBD4
- cry CryDirectSound_5CF73C
- cry CryDirectSound_5D0B00
- cry CryDirectSound_5D1514
- cry CryDirectSound_5D1DE0
- cry CryDirectSound_5D2E0C
- cry CryDirectSound_5D3644
- cry CryDirectSound_5D4688
- cry CryDirectSound_5D5334
- cry CryDirectSound_5D5D50
- cry CryDirectSound_5D6980
- cry CryDirectSound_5D81E4
- cry CryDirectSound_5D8A68
- cry CryDirectSound_5D98C0
- cry CryDirectSound_5DA2AC
- cry CryDirectSound_5DA91C
- cry CryDirectSound_5DB544
- cry CryDirectSound_5DBCFC
- cry CryDirectSound_5DC458
- cry CryDirectSound_5DD510
- cry CryDirectSound_5DE274
- cry CryDirectSound_5DF758
- cry CryDirectSound_5E0054
- cry CryDirectSound_5E105C
- cry CryDirectSound_5E1ADC
- cry CryDirectSound_5E2E90
- cry CryDirectSound_5E35A4
- cry CryDirectSound_5E4ABC
- cry CryDirectSound_5E52C0
- cry CryDirectSound_5E6420
- cry CryDirectSound_5E6D6C
- cry CryDirectSound_5E848C
- cry CryDirectSound_5E8DC8
- cry CryDirectSound_5E9EC4
- cry CryDirectSound_5EAAC8
- cry CryDirectSound_5EC380
- cry CryDirectSound_5ECAC0
- cry CryDirectSound_5ED760
- cry CryDirectSound_5EE184
- cry CryDirectSound_5EEF88
- cry CryDirectSound_5F0990
- cry CryDirectSound_5F1280
- cry CryDirectSound_5F2930
- cry CryDirectSound_5F35B4
- cry CryDirectSound_5F4914
- cry CryDirectSound_5F6110
- cry CryDirectSound_5F713C
- cry CryDirectSound_5F7910
- cry CryDirectSound_5FA054
- cry CryDirectSound_5FAAD0
- cry CryDirectSound_5FB2F0
- cry CryDirectSound_5FC374
- cry CryDirectSound_5FC928
- cry CryDirectSound_5FD500
- cry CryDirectSound_5FF94C
- cry CryDirectSound_600B9C
- cry CryDirectSound_601B84
- cry CryDirectSound_6031F0
- cry CryDirectSound_603B98
- cry CryDirectSound_6058C8
- cry CryDirectSound_606480
- cry CryDirectSound_607B54
- cry CryDirectSound_6084F4
- cry CryDirectSound_6097C8
- cry CryDirectSound_60BF40
- cry CryDirectSound_60C714
- cry CryDirectSound_60DB1C
- cry CryDirectSound_60FAF8
- cry CryDirectSound_611AF8
- cry CryDirectSound_6131FC
- cry CryDirectSound_613E94
- cry CryDirectSound_614A1C
- cry CryDirectSound_615B34
- cry CryDirectSound_61647C
- cry CryDirectSound_617808
- cry CryDirectSound_6185C0
- cry CryDirectSound_619164
- cry CryDirectSound_619CE4
- cry CryDirectSound_61A610
- cry CryDirectSound_61BAE8
- cry CryDirectSound_61D48C
- cry CryDirectSound_61E8BC
- cry CryDirectSound_61ED98
- cry CryDirectSound_6212A4
- cry CryDirectSound_62365C
- cry CryDirectSound_625388
- cry CryDirectSound_626CA4
- cry CryDirectSound_627964
- cry CryDirectSound_62823C
- cry CryDirectSound_62A0D8
- cry CryDirectSound_62C19C
- cry CryDirectSound_62DDFC
- cry CryDirectSound_62E98C
- cry CryDirectSound_6305D4
- cry CryDirectSound_6312FC
- cry CryDirectSound_633D0C
- cry CryDirectSound_634530
+ cry Cry_Duskull
+ cry Cry_Latias
+ cry Cry_Wynaut
+ cry Cry_Seviper
+ cry Cry_Sharpedo
+ cry Cry_Zangoose
+ cry Cry_Azurill
+ cry Cry_Swablu
+ cry Cry_Altaria
+ cry Cry_Unused265
+ cry Cry_Taillow
+ cry Cry_Swellow
+ cry Cry_Unused268
+ cry Cry_Spinda
+ cry Cry_Torchic
+ cry Cry_Combusken
+ cry Cry_Blaziken
+ cry Cry_Treecko
+ cry Cry_Grovyle
+ cry Cry_Sceptile
+ cry Cry_Mudkip
+ cry Cry_Marshtomp
+ cry Cry_Swampert
+ cry Cry_Pelipper
+ cry Cry_Wingull
+ cry Cry_Banette
+ cry Cry_Shuppet
+ cry Cry_Lotad
+ cry Cry_Lombre
+ cry Cry_Ludicolo
+ cry Cry_Seedot
+ cry Cry_Nuzleaf
+ cry Cry_Shiftry
+ cry Cry_Carvanha
+ cry Cry_Wurmple
+ cry Cry_Silcoon
+ cry Cry_Beautifly
+ cry Cry_Cascoon
+ cry Cry_Dustox
+ cry Cry_Ralts
+ cry Cry_Kirlia
+ cry Cry_Gardevoir
+ cry Cry_Slakoth
+ cry Cry_Vigoroth
+ cry Cry_Slaking
+ cry Cry_Nincada
+ cry Cry_Ninjask
+ cry Cry_Shedinja
+ cry Cry_Makuhita
+ cry Cry_Hariyama
+ cry Cry_Nosepass
+ cry Cry_Glalie
+ cry Cry_Plusle
+ cry Cry_Minun
+ cry Cry_Surskit
+ cry Cry_Masquerain
+ cry Cry_Skitty
+ cry Cry_Delcatty
+ cry Cry_Gulpin
+ cry Cry_Swalot
+ cry Cry_Numel
+ cry Cry_Camerupt
+ cry Cry_Barboach
+ cry Cry_Whiscash
+ cry Cry_Corphish
+ cry Cry_Crawdaunt
+ cry Cry_Spoink
+ cry Cry_Grumpig
+ cry Cry_Trapinch
+ cry Cry_Vibrava
+ cry Cry_Flygon
+ cry Cry_Cacnea
+ cry Cry_Cacturne
+ cry Cry_Baltoy
+ cry Cry_Claydol
+ cry Cry_Lunatone
+ cry Cry_Solrock
+ cry Cry_Feebas
+ cry Cry_Milotic
+ cry Cry_Absol
+ cry Cry_Meditite
+ cry Cry_Medicham
+ cry Cry_Spheal
+ cry Cry_Sealeo
+ cry Cry_Walrein
+ cry Cry_Clamperl
+ cry Cry_Huntail
+ cry Cry_Gorebyss
+ cry Cry_Lileep
+ cry Cry_Cradily
+ cry Cry_Anorith
+ cry Cry_Armaldo
+ cry Cry_Beldum
+ cry Cry_Metang
+ cry Cry_Metagross
+ cry Cry_Bagon
+ cry Cry_Shelgon
+ cry Cry_Regirock
+ cry Cry_Regice
+ cry Cry_Registeel
+ cry Cry_Castform
+ cry Cry_Volbeat
+ cry Cry_Illumise
+ cry Cry_Poochyena
+ cry Cry_Mightyena
+ cry Cry_Dusclops
+ cry Cry_Sableye
+ cry Cry_Mawile
+ cry Cry_Aron
+ cry Cry_Lairon
+ cry Cry_Aggron
+ cry Cry_Relicanth
+ cry Cry_Luvdisc
+ cry Cry_Groudon
+ cry Cry_Kyogre
+ cry Cry_Rayquaza
+ cry Cry_Salamence
+ cry Cry_Breloom
+ cry Cry_Shroomish
+ cry Cry_Linoone
+ cry Cry_Tropius
+ cry Cry_Wailmer
+ cry Cry_Zigzagoon
+ cry Cry_Exploud
+ cry Cry_Loudred
+ cry Cry_Wailord
+ cry Cry_Whismur
+ cry Cry_Snorunt
.align 2
voicegroup_8453790:: @ 8453790
- cry CryDirectSound_635638
- cry CryDirectSound_636C30
- cry CryDirectSound_6379B4
- cry CryDirectSound_638E88
+ cry Cry_Latios
+ cry Cry_Jirachi
+ cry Cry_Deoxys
+ cry Cry_Chimecho
.align 2
voicegroup_84537C0:: @ 84537C0
- cry2 CryDirectSound_4AB57C
- cry2 CryDirectSound_4AC608
- cry2 CryDirectSound_4AD698
- cry2 CryDirectSound_4AE9F0
- cry2 CryDirectSound_4AF860
- cry2 CryDirectSound_4B06E0
- cry2 CryDirectSound_4B1A28
- cry2 CryDirectSound_4B289C
- cry2 CryDirectSound_4B39DC
- cry2 CryDirectSound_4B4D24
- cry2 CryDirectSound_4B557C
- cry2 CryDirectSound_4B6CCC
- cry2 CryDirectSound_4B76D4
- cry2 CryDirectSound_4B8718
- cry2 CryDirectSound_4B9954
- cry2 CryDirectSound_4BACB0
- cry2 CryDirectSound_4BB098
- cry2 CryDirectSound_4BBFA0
- cry2 CryDirectSound_4BD0D4
- cry2 CryDirectSound_4BD8B4
- cry2 CryDirectSound_4BE238
- cry2 CryDirectSound_4BF3DC
- cry2 CryDirectSound_4C0518
- cry2 CryDirectSound_4C1864
- cry2 CryDirectSound_4C2BBC
- cry2 CryDirectSound_4C3C64
- cry2 CryDirectSound_4C5424
- cry2 CryDirectSound_4C5D78
- cry2 CryDirectSound_4C6B08
- cry2 CryDirectSound_4C74B8
- cry2 CryDirectSound_4C8180
- cry2 CryDirectSound_4C9260
- cry2 CryDirectSound_4C9CC8
- cry2 CryDirectSound_4CA8DC
- cry2 CryDirectSound_4CC148
- cry2 CryDirectSound_4CC9B8
- cry2 CryDirectSound_4CD448
- cry2 CryDirectSound_4CEC18
- cry2 CryDirectSound_4D0484
- cry2 CryDirectSound_4D09E8
- cry2 CryDirectSound_4D10B0
- cry2 CryDirectSound_4D241C
- cry2 CryDirectSound_4D3780
- cry2 CryDirectSound_4D461C
- cry2 CryDirectSound_4D5298
- cry2 CryDirectSound_4D6C34
- cry2 CryDirectSound_4D8828
- cry2 CryDirectSound_4DA690
- cry2 CryDirectSound_4DB610
- cry2 CryDirectSound_4DC614
- cry2 CryDirectSound_4DD984
- cry2 CryDirectSound_4DECF0
- cry2 CryDirectSound_4DF680
- cry2 CryDirectSound_4E095C
- cry2 CryDirectSound_4E1684
- cry2 CryDirectSound_4E21CC
- cry2 CryDirectSound_4E322C
- cry2 CryDirectSound_4E425C
- cry2 CryDirectSound_4E4FC0
- cry2 CryDirectSound_4E60FC
- cry2 CryDirectSound_4E6C18
- cry2 CryDirectSound_4E72C0
- cry2 CryDirectSound_4E7DE4
- cry2 CryDirectSound_4E9548
- cry2 CryDirectSound_4EB030
- cry2 CryDirectSound_4ECFCC
- cry2 CryDirectSound_4EDD30
- cry2 CryDirectSound_4EEAC0
- cry2 CryDirectSound_4EFB48
- cry2 CryDirectSound_4F02D4
- cry2 CryDirectSound_4F1174
- cry2 CryDirectSound_4F24C0
- cry2 CryDirectSound_4F34B0
- cry2 CryDirectSound_4F4BAC
- cry2 CryDirectSound_4F6360
- cry2 CryDirectSound_4F7F48
- cry2 CryDirectSound_4F8D74
- cry2 CryDirectSound_4F9C84
- cry2 CryDirectSound_4FAF24
- cry2 CryDirectSound_4FB68C
- cry2 CryDirectSound_4FC3FC
- cry2 CryDirectSound_4FD740
- cry2 CryDirectSound_4FEF28
- cry2 CryDirectSound_4FF6A4
- cry2 CryDirectSound_5009E8
- cry2 CryDirectSound_501D60
- cry2 CryDirectSound_502F50
- cry2 CryDirectSound_504474
- cry2 CryDirectSound_504EFC
- cry2 CryDirectSound_505DBC
- cry2 CryDirectSound_506D30
- cry2 CryDirectSound_5081F4
- cry2 CryDirectSound_509944
- cry2 CryDirectSound_50B0C4
- cry2 CryDirectSound_50BF84
- cry2 CryDirectSound_50D848
- cry2 CryDirectSound_50F560
- cry2 CryDirectSound_511264
- cry2 CryDirectSound_512AB0
- cry2 CryDirectSound_514308
- cry2 CryDirectSound_515BCC
- cry2 CryDirectSound_517504
- cry2 CryDirectSound_5187E4
- cry2 CryDirectSound_51A7C8
- cry2 CryDirectSound_51B6E8
- cry2 CryDirectSound_51C558
- cry2 CryDirectSound_51D804
- cry2 CryDirectSound_51E9DC
- cry2 CryDirectSound_51F904
- cry2 CryDirectSound_520D60
- cry2 CryDirectSound_52230C
- cry2 CryDirectSound_523678
- cry2 CryDirectSound_524AE4
- cry2 CryDirectSound_5259B0
- cry2 CryDirectSound_5268CC
- cry2 CryDirectSound_527B80
- cry2 CryDirectSound_5284FC
- cry2 CryDirectSound_528D68
- cry2 CryDirectSound_529740
- cry2 CryDirectSound_52AA98
- cry2 CryDirectSound_52BE80
- cry2 CryDirectSound_52D35C
- cry2 CryDirectSound_52E64C
- cry2 CryDirectSound_52F3A8
- cry2 CryDirectSound_53231C
- cry2 CryDirectSound_534200
- cry2 CryDirectSound_53517C
- cry2 CryDirectSound_535DD8
+ cry2 Cry_Bulbasaur
+ cry2 Cry_Ivysaur
+ cry2 Cry_Venusaur
+ cry2 Cry_Charmander
+ cry2 Cry_Charmeleon
+ cry2 Cry_Charizard
+ cry2 Cry_Squirtle
+ cry2 Cry_Wartortle
+ cry2 Cry_Blastoise
+ cry2 Cry_Caterpie
+ cry2 Cry_Metapod
+ cry2 Cry_Butterfree
+ cry2 Cry_Weedle
+ cry2 Cry_Kakuna
+ cry2 Cry_Beedrill
+ cry2 Cry_Pidgey
+ cry2 Cry_Pidgeotto
+ cry2 Cry_Pidgeot
+ cry2 Cry_Rattata
+ cry2 Cry_Raticate
+ cry2 Cry_Spearow
+ cry2 Cry_Fearow
+ cry2 Cry_Ekans
+ cry2 Cry_Arbok
+ cry2 Cry_Pikachu
+ cry2 Cry_Raichu
+ cry2 Cry_Sandshrew
+ cry2 Cry_Sandslash
+ cry2 Cry_NidoranF
+ cry2 Cry_Nidorina
+ cry2 Cry_Nidoqueen
+ cry2 Cry_NidoranM
+ cry2 Cry_Nidorino
+ cry2 Cry_Nidoking
+ cry2 Cry_Clefairy
+ cry2 Cry_Clefable
+ cry2 Cry_Vulpix
+ cry2 Cry_Ninetales
+ cry2 Cry_Jigglypuff
+ cry2 Cry_Wigglytuff
+ cry2 Cry_Zubat
+ cry2 Cry_Golbat
+ cry2 Cry_Oddish
+ cry2 Cry_Gloom
+ cry2 Cry_Vileplume
+ cry2 Cry_Paras
+ cry2 Cry_Parasect
+ cry2 Cry_Venonat
+ cry2 Cry_Venomoth
+ cry2 Cry_Diglett
+ cry2 Cry_Dugtrio
+ cry2 Cry_Meowth
+ cry2 Cry_Persian
+ cry2 Cry_Psyduck
+ cry2 Cry_Golduck
+ cry2 Cry_Mankey
+ cry2 Cry_Primeape
+ cry2 Cry_Growlithe
+ cry2 Cry_Arcanine
+ cry2 Cry_Poliwag
+ cry2 Cry_Poliwhirl
+ cry2 Cry_Poliwrath
+ cry2 Cry_Abra
+ cry2 Cry_Kadabra
+ cry2 Cry_Alakazam
+ cry2 Cry_Machop
+ cry2 Cry_Machoke
+ cry2 Cry_Machamp
+ cry2 Cry_Bellsprout
+ cry2 Cry_Weepinbell
+ cry2 Cry_Victreebel
+ cry2 Cry_Tentacool
+ cry2 Cry_Tentacruel
+ cry2 Cry_Geodude
+ cry2 Cry_Graveler
+ cry2 Cry_Golem
+ cry2 Cry_Ponyta
+ cry2 Cry_Rapidash
+ cry2 Cry_Slowpoke
+ cry2 Cry_Slowbro
+ cry2 Cry_Magnemite
+ cry2 Cry_Magneton
+ cry2 Cry_Farfetchd
+ cry2 Cry_Doduo
+ cry2 Cry_Dodrio
+ cry2 Cry_Seel
+ cry2 Cry_Dewgong
+ cry2 Cry_Grimer
+ cry2 Cry_Muk
+ cry2 Cry_Shellder
+ cry2 Cry_Cloyster
+ cry2 Cry_Gastly
+ cry2 Cry_Haunter
+ cry2 Cry_Gengar
+ cry2 Cry_Onix
+ cry2 Cry_Drowzee
+ cry2 Cry_Hypno
+ cry2 Cry_Krabby
+ cry2 Cry_Kingler
+ cry2 Cry_Voltorb
+ cry2 Cry_Electrode
+ cry2 Cry_Exeggcute
+ cry2 Cry_Exeggutor
+ cry2 Cry_Cubone
+ cry2 Cry_Marowak
+ cry2 Cry_Hitmonlee
+ cry2 Cry_Hitmonchan
+ cry2 Cry_Lickitung
+ cry2 Cry_Koffing
+ cry2 Cry_Weezing
+ cry2 Cry_Rhyhorn
+ cry2 Cry_Rhydon
+ cry2 Cry_Chansey
+ cry2 Cry_Tangela
+ cry2 Cry_Kangaskhan
+ cry2 Cry_Horsea
+ cry2 Cry_Seadra
+ cry2 Cry_Goldeen
+ cry2 Cry_Seaking
+ cry2 Cry_Staryu
+ cry2 Cry_Starmie
+ cry2 Cry_MrMime
+ cry2 Cry_Scyther
+ cry2 Cry_Jynx
+ cry2 Cry_Electabuzz
+ cry2 Cry_Magmar
+ cry2 Cry_Pinsir
+ cry2 Cry_Tauros
.align 2
voicegroup_8453DC0:: @ 8453DC0
- cry2 CryDirectSound_53702C
- cry2 CryDirectSound_538334
- cry2 CryDirectSound_539768
- cry2 CryDirectSound_53A63C
- cry2 CryDirectSound_53B158
- cry2 CryDirectSound_53BF90
- cry2 CryDirectSound_53D5A8
- cry2 CryDirectSound_53E57C
- cry2 CryDirectSound_53F500
- cry2 CryDirectSound_54090C
- cry2 CryDirectSound_541664
- cry2 CryDirectSound_5423B8
- cry2 CryDirectSound_54300C
- cry2 CryDirectSound_543DC8
- cry2 CryDirectSound_545624
- cry2 CryDirectSound_545B60
- cry2 CryDirectSound_547308
- cry2 CryDirectSound_548280
- cry2 CryDirectSound_549A2C
- cry2 CryDirectSound_54A5C8
- cry2 CryDirectSound_54B670
- cry2 CryDirectSound_54C97C
- cry2 CryDirectSound_54E7E4
- cry2 CryDirectSound_55064C
- cry2 CryDirectSound_550B8C
- cry2 CryDirectSound_551458
- cry2 CryDirectSound_552490
- cry2 CryDirectSound_552B94
- cry2 CryDirectSound_55377C
- cry2 CryDirectSound_555D8C
- cry2 CryDirectSound_556FE4
- cry2 CryDirectSound_558420
- cry2 CryDirectSound_559DA4
- cry2 CryDirectSound_55A1CC
- cry2 CryDirectSound_55A814
- cry2 CryDirectSound_55B2F8
- cry2 CryDirectSound_55C828
- cry2 CryDirectSound_55CF20
- cry2 CryDirectSound_55D784
- cry2 CryDirectSound_55E4E8
- cry2 CryDirectSound_55F13C
- cry2 CryDirectSound_56086C
- cry2 CryDirectSound_56151C
- cry2 CryDirectSound_561FA8
- cry2 CryDirectSound_5626FC
- cry2 CryDirectSound_562CEC
- cry2 CryDirectSound_5633E8
- cry2 CryDirectSound_563ED0
- cry2 CryDirectSound_5645D0
- cry2 CryDirectSound_565060
- cry2 CryDirectSound_565F2C
- cry2 CryDirectSound_566684
- cry2 CryDirectSound_567438
- cry2 CryDirectSound_5684B8
- cry2 CryDirectSound_5692D0
- cry2 CryDirectSound_569FE4
- cry2 CryDirectSound_56B0D0
- cry2 CryDirectSound_56C100
- cry2 CryDirectSound_56D344
- cry2 CryDirectSound_56DBB0
- cry2 CryDirectSound_56E8B8
- cry2 CryDirectSound_56F8F4
- cry2 CryDirectSound_570714
- cry2 CryDirectSound_570F28
- cry2 CryDirectSound_571F08
- cry2 CryDirectSound_573010
- cry2 CryDirectSound_573770
- cry2 CryDirectSound_5744D0
- cry2 CryDirectSound_575884
- cry2 CryDirectSound_576804
- cry2 CryDirectSound_5778C8
- cry2 CryDirectSound_5790AC
- cry2 CryDirectSound_579C4C
- cry2 CryDirectSound_57A974
- cry2 CryDirectSound_57BE10
- cry2 CryDirectSound_57CCC4
- cry2 CryDirectSound_57DA24
- cry2 CryDirectSound_57EE2C
- cry2 CryDirectSound_57FE0C
- cry2 CryDirectSound_580A2C
- cry2 CryDirectSound_583054
- cry2 CryDirectSound_583EC8
- cry2 CryDirectSound_58566C
- cry2 CryDirectSound_586208
- cry2 CryDirectSound_587904
- cry2 CryDirectSound_588338
- cry2 CryDirectSound_58958C
- cry2 CryDirectSound_589EB0
- cry2 CryDirectSound_58AF3C
- cry2 CryDirectSound_58CD14
- cry2 CryDirectSound_58DE2C
- cry2 CryDirectSound_58F334
- cry2 CryDirectSound_58FFDC
- cry2 CryDirectSound_590CD0
- cry2 CryDirectSound_5919B0
- cry2 CryDirectSound_592440
- cry2 CryDirectSound_593E84
- cry2 CryDirectSound_594EB8
- cry2 CryDirectSound_595E80
- cry2 CryDirectSound_597688
- cry2 CryDirectSound_598330
- cry2 CryDirectSound_5996E0
- cry2 CryDirectSound_59A4B8
- cry2 CryDirectSound_59B008
- cry2 CryDirectSound_59C12C
- cry2 CryDirectSound_59D0E4
- cry2 CryDirectSound_59E760
- cry2 CryDirectSound_59F194
- cry2 CryDirectSound_5A01BC
- cry2 CryDirectSound_5A0F9C
- cry2 CryDirectSound_5A1B50
- cry2 CryDirectSound_5A25DC
- cry2 CryDirectSound_5A344C
- cry2 CryDirectSound_5A4328
- cry2 CryDirectSound_5A53BC
- cry2 CryDirectSound_5A652C
- cry2 CryDirectSound_5A79A0
- cry2 CryDirectSound_5A8BE8
- cry2 CryDirectSound_5A9898
- cry2 CryDirectSound_5AA108
- cry2 CryDirectSound_5AB868
- cry2 CryDirectSound_5ADE60
- cry2 CryDirectSound_5AF4F4
- cry2 CryDirectSound_5B036C
- cry2 CryDirectSound_5B0BCC
- cry2 CryDirectSound_5B168C
- cry2 CryDirectSound_5B1FD8
- cry2 CryDirectSound_5B2C34
+ cry2 Cry_Magikarp
+ cry2 Cry_Gyarados
+ cry2 Cry_Lapras
+ cry2 Cry_Ditto
+ cry2 Cry_Eevee
+ cry2 Cry_Vaporeon
+ cry2 Cry_Jolteon
+ cry2 Cry_Flareon
+ cry2 Cry_Porygon
+ cry2 Cry_Omanyte
+ cry2 Cry_Omastar
+ cry2 Cry_Kabuto
+ cry2 Cry_Kabutops
+ cry2 Cry_Aerodactyl
+ cry2 Cry_Snorlax
+ cry2 Cry_Articuno
+ cry2 Cry_Zapdos
+ cry2 Cry_Moltres
+ cry2 Cry_Dratini
+ cry2 Cry_Dragonair
+ cry2 Cry_Dragonite
+ cry2 Cry_Mewtwo
+ cry2 Cry_Mew
+ cry2 Cry_Chikorita
+ cry2 Cry_Bayleef
+ cry2 Cry_Meganium
+ cry2 Cry_Cyndaquil
+ cry2 Cry_Quilava
+ cry2 Cry_Typhlosion
+ cry2 Cry_Totodile
+ cry2 Cry_Croconaw
+ cry2 Cry_Feraligatr
+ cry2 Cry_Sentret
+ cry2 Cry_Furret
+ cry2 Cry_Hoothoot
+ cry2 Cry_Noctowl
+ cry2 Cry_Ledyba
+ cry2 Cry_Ledian
+ cry2 Cry_Spinarak
+ cry2 Cry_Ariados
+ cry2 Cry_Crobat
+ cry2 Cry_Chinchou
+ cry2 Cry_Lanturn
+ cry2 Cry_Pichu
+ cry2 Cry_Cleffa
+ cry2 Cry_Igglybuff
+ cry2 Cry_Togepi
+ cry2 Cry_Togetic
+ cry2 Cry_Natu
+ cry2 Cry_Xatu
+ cry2 Cry_Mareep
+ cry2 Cry_Flaaffy
+ cry2 Cry_Ampharos
+ cry2 Cry_Bellossom
+ cry2 Cry_Marill
+ cry2 Cry_Azumarill
+ cry2 Cry_Sudowoodo
+ cry2 Cry_Politoed
+ cry2 Cry_Hoppip
+ cry2 Cry_Skiploom
+ cry2 Cry_Jumpluff
+ cry2 Cry_Aipom
+ cry2 Cry_Sunkern
+ cry2 Cry_Sunflora
+ cry2 Cry_Yanma
+ cry2 Cry_Wooper
+ cry2 Cry_Quagsire
+ cry2 Cry_Espeon
+ cry2 Cry_Umbreon
+ cry2 Cry_Murkrow
+ cry2 Cry_Slowking
+ cry2 Cry_Misdreavus
+ cry2 Cry_Unown
+ cry2 Cry_Wobbuffet
+ cry2 Cry_Girafarig
+ cry2 Cry_Pineco
+ cry2 Cry_Forretress
+ cry2 Cry_Dunsparce
+ cry2 Cry_Gligar
+ cry2 Cry_Steelix
+ cry2 Cry_Snubbull
+ cry2 Cry_Granbull
+ cry2 Cry_Qwilfish
+ cry2 Cry_Scizor
+ cry2 Cry_Shuckle
+ cry2 Cry_Heracross
+ cry2 Cry_Sneasel
+ cry2 Cry_Teddiursa
+ cry2 Cry_Ursaring
+ cry2 Cry_Slugma
+ cry2 Cry_Magcargo
+ cry2 Cry_Swinub
+ cry2 Cry_Piloswine
+ cry2 Cry_Corsola
+ cry2 Cry_Remoraid
+ cry2 Cry_Octillery
+ cry2 Cry_Delibird
+ cry2 Cry_Mantine
+ cry2 Cry_Skarmory
+ cry2 Cry_Houndour
+ cry2 Cry_Houndoom
+ cry2 Cry_Kingdra
+ cry2 Cry_Phanpy
+ cry2 Cry_Donphan
+ cry2 Cry_Porygon2
+ cry2 Cry_Stantler
+ cry2 Cry_Smeargle
+ cry2 Cry_Tyrogue
+ cry2 Cry_Hitmontop
+ cry2 Cry_Smoochum
+ cry2 Cry_Elekid
+ cry2 Cry_Magby
+ cry2 Cry_Miltank
+ cry2 Cry_Blissey
+ cry2 Cry_Raikou
+ cry2 Cry_Entei
+ cry2 Cry_Suicune
+ cry2 Cry_Larvitar
+ cry2 Cry_Pupitar
+ cry2 Cry_Tyranitar
+ cry2 Cry_Lugia
+ cry2 Cry_HoOh
+ cry2 Cry_Celebi
+ cry2 Cry_Kecleon
+ cry2 Cry_Roselia
+ cry2 Cry_Torkoal
+ cry2 Cry_Electrike
+ cry2 Cry_Manectric
.align 2
voicegroup_84543C0:: @ 84543C0
- cry2 CryDirectSound_5B413C
- cry2 CryDirectSound_5B4BD4
- cry2 CryDirectSound_5B5804
- cry2 CryDirectSound_5B65E4
- cry2 CryDirectSound_5B7184
- cry2 CryDirectSound_5B8890
- cry2 CryDirectSound_5B9220
- cry2 CryDirectSound_5B9C88
- cry2 CryDirectSound_5BA220
- cry2 CryDirectSound_5BAD3C
- cry2 CryDirectSound_5BB690
- cry2 CryDirectSound_5BBC90
- cry2 CryDirectSound_5BC594
- cry2 CryDirectSound_5BD744
- cry2 CryDirectSound_5BE3B0
- cry2 CryDirectSound_5BED58
- cry2 CryDirectSound_5C0A2C
- cry2 CryDirectSound_5C29AC
- cry2 CryDirectSound_5C3554
- cry2 CryDirectSound_5C49C8
- cry2 CryDirectSound_5C63E4
- cry2 CryDirectSound_5C6B68
- cry2 CryDirectSound_5C7C6C
- cry2 CryDirectSound_5C92EC
- cry2 CryDirectSound_5C9EB4
- cry2 CryDirectSound_5CAAF4
- cry2 CryDirectSound_5CB79C
- cry2 CryDirectSound_5CBFDC
- cry2 CryDirectSound_5CC444
- cry2 CryDirectSound_5CD2D8
- cry2 CryDirectSound_5CE3A8
- cry2 CryDirectSound_5CEBD4
- cry2 CryDirectSound_5CF73C
- cry2 CryDirectSound_5D0B00
- cry2 CryDirectSound_5D1514
- cry2 CryDirectSound_5D1DE0
- cry2 CryDirectSound_5D2E0C
- cry2 CryDirectSound_5D3644
- cry2 CryDirectSound_5D4688
- cry2 CryDirectSound_5D5334
- cry2 CryDirectSound_5D5D50
- cry2 CryDirectSound_5D6980
- cry2 CryDirectSound_5D81E4
- cry2 CryDirectSound_5D8A68
- cry2 CryDirectSound_5D98C0
- cry2 CryDirectSound_5DA2AC
- cry2 CryDirectSound_5DA91C
- cry2 CryDirectSound_5DB544
- cry2 CryDirectSound_5DBCFC
- cry2 CryDirectSound_5DC458
- cry2 CryDirectSound_5DD510
- cry2 CryDirectSound_5DE274
- cry2 CryDirectSound_5DF758
- cry2 CryDirectSound_5E0054
- cry2 CryDirectSound_5E105C
- cry2 CryDirectSound_5E1ADC
- cry2 CryDirectSound_5E2E90
- cry2 CryDirectSound_5E35A4
- cry2 CryDirectSound_5E4ABC
- cry2 CryDirectSound_5E52C0
- cry2 CryDirectSound_5E6420
- cry2 CryDirectSound_5E6D6C
- cry2 CryDirectSound_5E848C
- cry2 CryDirectSound_5E8DC8
- cry2 CryDirectSound_5E9EC4
- cry2 CryDirectSound_5EAAC8
- cry2 CryDirectSound_5EC380
- cry2 CryDirectSound_5ECAC0
- cry2 CryDirectSound_5ED760
- cry2 CryDirectSound_5EE184
- cry2 CryDirectSound_5EEF88
- cry2 CryDirectSound_5F0990
- cry2 CryDirectSound_5F1280
- cry2 CryDirectSound_5F2930
- cry2 CryDirectSound_5F35B4
- cry2 CryDirectSound_5F4914
- cry2 CryDirectSound_5F6110
- cry2 CryDirectSound_5F713C
- cry2 CryDirectSound_5F7910
- cry2 CryDirectSound_5FA054
- cry2 CryDirectSound_5FAAD0
- cry2 CryDirectSound_5FB2F0
- cry2 CryDirectSound_5FC374
- cry2 CryDirectSound_5FC928
- cry2 CryDirectSound_5FD500
- cry2 CryDirectSound_5FF94C
- cry2 CryDirectSound_600B9C
- cry2 CryDirectSound_601B84
- cry2 CryDirectSound_6031F0
- cry2 CryDirectSound_603B98
- cry2 CryDirectSound_6058C8
- cry2 CryDirectSound_606480
- cry2 CryDirectSound_607B54
- cry2 CryDirectSound_6084F4
- cry2 CryDirectSound_6097C8
- cry2 CryDirectSound_60BF40
- cry2 CryDirectSound_60C714
- cry2 CryDirectSound_60DB1C
- cry2 CryDirectSound_60FAF8
- cry2 CryDirectSound_611AF8
- cry2 CryDirectSound_6131FC
- cry2 CryDirectSound_613E94
- cry2 CryDirectSound_614A1C
- cry2 CryDirectSound_615B34
- cry2 CryDirectSound_61647C
- cry2 CryDirectSound_617808
- cry2 CryDirectSound_6185C0
- cry2 CryDirectSound_619164
- cry2 CryDirectSound_619CE4
- cry2 CryDirectSound_61A610
- cry2 CryDirectSound_61BAE8
- cry2 CryDirectSound_61D48C
- cry2 CryDirectSound_61E8BC
- cry2 CryDirectSound_61ED98
- cry2 CryDirectSound_6212A4
- cry2 CryDirectSound_62365C
- cry2 CryDirectSound_625388
- cry2 CryDirectSound_626CA4
- cry2 CryDirectSound_627964
- cry2 CryDirectSound_62823C
- cry2 CryDirectSound_62A0D8
- cry2 CryDirectSound_62C19C
- cry2 CryDirectSound_62DDFC
- cry2 CryDirectSound_62E98C
- cry2 CryDirectSound_6305D4
- cry2 CryDirectSound_6312FC
- cry2 CryDirectSound_633D0C
- cry2 CryDirectSound_634530
+ cry2 Cry_Duskull
+ cry2 Cry_Latias
+ cry2 Cry_Wynaut
+ cry2 Cry_Seviper
+ cry2 Cry_Sharpedo
+ cry2 Cry_Zangoose
+ cry2 Cry_Azurill
+ cry2 Cry_Swablu
+ cry2 Cry_Altaria
+ cry2 Cry_Unused265
+ cry2 Cry_Taillow
+ cry2 Cry_Swellow
+ cry2 Cry_Unused268
+ cry2 Cry_Spinda
+ cry2 Cry_Torchic
+ cry2 Cry_Combusken
+ cry2 Cry_Blaziken
+ cry2 Cry_Treecko
+ cry2 Cry_Grovyle
+ cry2 Cry_Sceptile
+ cry2 Cry_Mudkip
+ cry2 Cry_Marshtomp
+ cry2 Cry_Swampert
+ cry2 Cry_Pelipper
+ cry2 Cry_Wingull
+ cry2 Cry_Banette
+ cry2 Cry_Shuppet
+ cry2 Cry_Lotad
+ cry2 Cry_Lombre
+ cry2 Cry_Ludicolo
+ cry2 Cry_Seedot
+ cry2 Cry_Nuzleaf
+ cry2 Cry_Shiftry
+ cry2 Cry_Carvanha
+ cry2 Cry_Wurmple
+ cry2 Cry_Silcoon
+ cry2 Cry_Beautifly
+ cry2 Cry_Cascoon
+ cry2 Cry_Dustox
+ cry2 Cry_Ralts
+ cry2 Cry_Kirlia
+ cry2 Cry_Gardevoir
+ cry2 Cry_Slakoth
+ cry2 Cry_Vigoroth
+ cry2 Cry_Slaking
+ cry2 Cry_Nincada
+ cry2 Cry_Ninjask
+ cry2 Cry_Shedinja
+ cry2 Cry_Makuhita
+ cry2 Cry_Hariyama
+ cry2 Cry_Nosepass
+ cry2 Cry_Glalie
+ cry2 Cry_Plusle
+ cry2 Cry_Minun
+ cry2 Cry_Surskit
+ cry2 Cry_Masquerain
+ cry2 Cry_Skitty
+ cry2 Cry_Delcatty
+ cry2 Cry_Gulpin
+ cry2 Cry_Swalot
+ cry2 Cry_Numel
+ cry2 Cry_Camerupt
+ cry2 Cry_Barboach
+ cry2 Cry_Whiscash
+ cry2 Cry_Corphish
+ cry2 Cry_Crawdaunt
+ cry2 Cry_Spoink
+ cry2 Cry_Grumpig
+ cry2 Cry_Trapinch
+ cry2 Cry_Vibrava
+ cry2 Cry_Flygon
+ cry2 Cry_Cacnea
+ cry2 Cry_Cacturne
+ cry2 Cry_Baltoy
+ cry2 Cry_Claydol
+ cry2 Cry_Lunatone
+ cry2 Cry_Solrock
+ cry2 Cry_Feebas
+ cry2 Cry_Milotic
+ cry2 Cry_Absol
+ cry2 Cry_Meditite
+ cry2 Cry_Medicham
+ cry2 Cry_Spheal
+ cry2 Cry_Sealeo
+ cry2 Cry_Walrein
+ cry2 Cry_Clamperl
+ cry2 Cry_Huntail
+ cry2 Cry_Gorebyss
+ cry2 Cry_Lileep
+ cry2 Cry_Cradily
+ cry2 Cry_Anorith
+ cry2 Cry_Armaldo
+ cry2 Cry_Beldum
+ cry2 Cry_Metang
+ cry2 Cry_Metagross
+ cry2 Cry_Bagon
+ cry2 Cry_Shelgon
+ cry2 Cry_Regirock
+ cry2 Cry_Regice
+ cry2 Cry_Registeel
+ cry2 Cry_Castform
+ cry2 Cry_Volbeat
+ cry2 Cry_Illumise
+ cry2 Cry_Poochyena
+ cry2 Cry_Mightyena
+ cry2 Cry_Dusclops
+ cry2 Cry_Sableye
+ cry2 Cry_Mawile
+ cry2 Cry_Aron
+ cry2 Cry_Lairon
+ cry2 Cry_Aggron
+ cry2 Cry_Relicanth
+ cry2 Cry_Luvdisc
+ cry2 Cry_Groudon
+ cry2 Cry_Kyogre
+ cry2 Cry_Rayquaza
+ cry2 Cry_Salamence
+ cry2 Cry_Breloom
+ cry2 Cry_Shroomish
+ cry2 Cry_Linoone
+ cry2 Cry_Tropius
+ cry2 Cry_Wailmer
+ cry2 Cry_Zigzagoon
+ cry2 Cry_Exploud
+ cry2 Cry_Loudred
+ cry2 Cry_Wailord
+ cry2 Cry_Whismur
+ cry2 Cry_Snorunt
.align 2
voicegroup_84549C0:: @ 84549C0
- cry2 CryDirectSound_635638
- cry2 CryDirectSound_636C30
- cry2 CryDirectSound_6379B4
- cry2 CryDirectSound_638E88
+ cry2 Cry_Latios
+ cry2 Cry_Jirachi
+ cry2 Cry_Deoxys
+ cry2 Cry_Chimecho
.align 2
voicegroup_84549F0:: @ 84549F0
diff --git a/src/bard_music.c b/src/bard_music.c
new file mode 100644
index 000000000..ee70f5319
--- /dev/null
+++ b/src/bard_music.c
@@ -0,0 +1,84 @@
+#include "global.h"
+#include "asm.h"
+
+struct BardSound
+{
+ u8 pad_00[48];
+};
+
+struct UnkBard
+{
+ /*0x00*/ u8 var00;
+ /*0x01*/ s8 var01;
+ /*0x02*/ u16 var02;
+ /*0x04*/ u16 var04;
+ /*0x06*/ u16 var06;
+};
+
+struct UnkBard3
+{
+ /*0x00*/ u16 var00;
+ /*0x02*/ u16 var02;
+ /*0x04*/ s16 var04;
+ /*0x06*/ u16 var06;
+};
+
+struct UnkBard2
+{
+ /*0x00*/ u8 var00;
+ /*0x01*/ u8 var01;
+ /*0x02*/ u8 var02;
+ /*0x03*/ u8 var03;
+ /*0x04*/ u16 var04;
+ u8 pad06[4];
+ /*0x0A*/ u16 var0A;
+ u8 pad0C[12];
+ /*0x18*/ struct UnkBard3 var18[6];
+};
+
+extern struct BardSound *gBardMusicTable[];
+extern s16 *gUnknown_08417068[];
+extern u32 gUnknown_084170F4[];
+
+static s16 sub_814A2B8(u32 arg0, u32 arg1)
+{
+ return gUnknown_08417068[arg0][arg1];
+}
+
+struct BardSound *sub_814A2D0(u16 arg0, u16 arg1)
+{
+ struct BardSound *sounds = gBardMusicTable[arg0];
+
+ return &sounds[arg1];
+}
+
+s32 sub_814A2EC(struct UnkBard2 *dest, struct UnkBard *src, u16 arg2)
+{
+ s32 i;
+ s32 j;
+ s32 thirty;
+
+ for (i = 0; i < 6; i++)
+ {
+ dest->var18[i].var00 = src[i].var00;
+ if (src[i].var00 != 0xFF)
+ {
+ s32 r1 = src[i].var01 +gUnknown_084170F4[src[i].var00];
+
+ dest->var18[i].var02 = r1;
+ dest->var18[i].var06 = src[i].var04;
+ dest->var04 += r1;
+ }
+ }
+
+ for (j = 0, thirty = 30; j < i; j++)
+ dest->var18[j].var04 = sub_814A2B8(thirty + arg2, j);
+
+ dest->var00++;
+ dest->var01 = 0;
+ dest->var02 = 0;
+ dest->var03 = 0;
+ dest->var0A = 0;
+
+ //warning: no return statement in function returning non-void
+}
diff --git a/src/battle_ai.c b/src/battle_ai.c
index 945176b64..e60bf478f 100644
--- a/src/battle_ai.c
+++ b/src/battle_ai.c
@@ -1,42 +1,39 @@
#include "global.h"
#include "battle.h"
+#include "asm.h"
#include "pokemon.h"
#include "rng.h"
+#include "abilities.h"
#define AIScriptRead32(ptr) ((ptr)[0] | (ptr)[1] << 8 | (ptr)[2] << 16 | (ptr)[3] << 24)
#define AIScriptRead16(ptr) ((ptr)[0] | (ptr)[1] << 8)
#define AIScriptRead8(ptr) ((ptr)[0])
+#define AIScriptReadPtr(ptr) (u8*) AIScriptRead32(ptr)
-/*
-this file is a mess. I stopped part way because it starts to involve a huge struct that begins at 0x2000000 and goes
-all the way to at least 0x2016800, in addition to extremely hard functions that I can't seem to get right. I am leaving this file
-as it currently is until someone bothers to document this huge struct.
-*/
+enum
+{
+ TARGET,
+ USER
+};
-extern u8 sub_8015A98(u8, u8, u8);
-extern u8 battle_side_get_owner(u8);
-extern s16 battle_get_per_side_status(u8);
-extern u8 b_first_side(u8, u8, u8);
+extern void move_effectiveness_something(u16, u8, u8);
-extern u16 gUnknown_020239F8;
+extern u16 gBattleTypeFlags;
extern u8 gUnknown_02024A60;
-extern u8 gUnknown_02024C07;
-extern u8 gUnknown_02024C08;
+extern u16 gUnknown_02024BE6;
+extern u32 gUnknown_02024BEC;
+extern u8 gUnknown_02024C07; // something player?
+extern u8 gUnknown_02024C08; // something opponent?
extern u8 gUnknown_02024C0C;
-extern u16 gUnknown_02024DEC;
extern u8 gUnknown_02024C68;
-extern u32 gUnknown_02024BEC;
-extern u8 gUnknown_0201601C;
-extern u8 gUnknown_0201601F;
-extern u16 gUnknown_02024BE6;
-extern u8 gCritMultiplier;
+extern u16 gUnknown_02024DEC;
extern u16 gUnknown_02024C34[];
extern u32 gUnknown_02024ACC[];
extern u32 gUnknown_02024C98[];
extern u16 gUnknown_02024C7A[];
extern struct BattlePokemon gUnknown_02024A8C[];
extern u8 gUnknown_030042E0[];
-extern u8 *gAIScriptPtr;
+extern u8 gCritMultiplier;
extern u16 gTrainerBattleOpponent;
extern u32 gBitTable[];
extern u8 *BattleAIs[];
@@ -46,6 +43,15 @@ extern struct BattleMove gBattleMoves[];
extern struct BaseStats gBaseStats[];
extern void (*gBattleAICmdTable[])(void);
+/*
+gAIScriptPtr is a pointer to the next battle AI cmd command to read.
+when a command finishes processing, gAIScriptPtr is incremented by
+the number of bytes that the current command had reserved for arguments
+in order to read the next command correctly. refer to battle_ai_scripts.s for the
+AI scripts.
+*/
+extern u8 *gAIScriptPtr;
+
struct UnknownStruct1
{
/* 0x00 */ u16 unk0[2][8];
@@ -55,261 +61,196 @@ struct UnknownStruct1
/* 0x2C */ u8 unk8;
};
-struct UnknownStruct2 /* 0x2016800 */
-{
-/* 0x00 */ u8 unk0;
-/* 0x01 */ u8 moveConsidered;
-/* 0x02 */ u16 unk2;
-/* 0x04 */ s8 score[4]; // score?
-/* 0x08 */ u32 unk8;
-/* 0x0C */ u32 aiFlags;
-/* 0x10 */ u8 unk10;
-/* 0x11 */ u8 unk11;
-/* 0x12 */ u8 filler12[6];
-/* 0x18 */ u8 unk18[4];
-};
-
struct UnknownStruct3
{
u8 filler0[0x20];
u8 unk20;
};
-struct SmallBattleStruct1
-{
- u8 unk1;
- u8 unk2;
- u8 unk3;
- u8 unk4;
-};
-
-// move to battle.h before PR.
-struct BattleStruct /* 0x2000000 */
-{
- u8 filler0[0x1601C];
- struct SmallBattleStruct1 unk;
-};
-
-extern struct BattleStruct unk_2000000;
-extern struct UnknownStruct2 unk_2016800;
extern struct UnknownStruct1 unk_2016A00;
extern struct UnknownStruct3 unk_2016C00;
-void sub_810715C(void);
-void sub_8107374(void);
+void BattleAI_SetupAIData(void);
+void BattleAI_DoAIProcessing(void);
void sub_810745C(void);
-void sub_81070D4(void)
+// if the AI is a Link battle, safari, battle tower, or ereader, it will ignore considering item uses.
+void BattleAI_HandleItemUseBeforeAISetup(void)
{
s32 i;
u8 *data = (u8 *)&unk_2016A00;
-
- for(i = 0; (u32)i < 48; i++)
+
+ for (i = 0; (u32)i < 48; i++)
data[i] = 0;
- if((gUnknown_020239F8 & 8) && gTrainerBattleOpponent != 0x400 && !(gUnknown_020239F8 & 0x982))
+ if ((gBattleTypeFlags & BATTLE_TYPE_TRAINER)
+ && gTrainerBattleOpponent != 0x400
+ && !(gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_SAFARI | BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_EREADER_TRAINER)))
{
- for(i = 0; i < 4; i++)
+ for (i = 0; i < 4; i++)
{
- if(gTrainers[gTrainerBattleOpponent].items[i] != 0)
+ if (gTrainers[gTrainerBattleOpponent].items[i] != 0)
{
unk_2016A00.items[unk_2016A00.unk8] = gTrainers[gTrainerBattleOpponent].items[i];
unk_2016A00.unk8++;
}
}
}
- sub_810715C();
+
+ BattleAI_SetupAIData();
}
-void sub_810715C(void)
+void BattleAI_SetupAIData(void)
{
s32 i;
- u8 *data = (u8 *)&unk_2016800;
+ u8 *data = (u8 *)&gAIThinkingSpace;
u8 r7;
-
+
+ // clear AI data and set default move score to 100.
for(i = 0; (u32)i < 28; i++)
data[i] = 0;
for(i = 0; i < 4; i++)
- unk_2016800.score[i] = 100;
+ gAIThinkingSpace.score[i] = 100;
+
r7 = sub_8015A98(gUnknown_02024A60, 0, 0xFF);
+
for(i = 0; i < 4; i++)
{
u16 rand;
-
+
if(gBitTable[i] & r7)
- unk_2016800.score[i] = 0;
+ gAIThinkingSpace.score[i] = 0;
rand = Random();
- unk_2016800.unk18[i] = 100 - (rand & 0xF);
+ gAIThinkingSpace.unk18[i] = 100 - (rand & 0xF);
}
+
unk_2016C00.unk20 = 0;
gUnknown_02024C07 = gUnknown_02024A60;
-
- if(gUnknown_020239F8 & 1)
+
+ if(gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
{
gUnknown_02024C08 = Random() & 2;
-
+
if(gUnknown_02024C0C & gBitTable[gUnknown_02024C08])
gUnknown_02024C08 ^= 2;
}
else
gUnknown_02024C08 = gUnknown_02024A60 ^ 1;
-
- if(gUnknown_020239F8 & 0x80)
- unk_2016800.aiFlags = 0x40000000;
- else if(gUnknown_020239F8 & 0x400)
- unk_2016800.aiFlags = 0x20000000;
- else if(gUnknown_020239F8 & 0x10)
- unk_2016800.aiFlags = 0x80000000;
- else
- unk_2016800.aiFlags = gTrainers[gTrainerBattleOpponent].aiFlags;
+
+ // special AI flag cases.
+ if(gBattleTypeFlags & BATTLE_TYPE_SAFARI)
+ gAIThinkingSpace.aiFlags = 0x40000000;
+ else if(gBattleTypeFlags & BATTLE_TYPE_ROAMER)
+ gAIThinkingSpace.aiFlags = 0x20000000;
+ else if(gBattleTypeFlags & BATTLE_TYPE_FIRST_BATTLE)
+ gAIThinkingSpace.aiFlags = 0x80000000;
+ else // otherwise, just set aiFlags to whatever flags the trainer has set in their data.
+ gAIThinkingSpace.aiFlags = gTrainers[gTrainerBattleOpponent].aiFlags;
}
-u8 sub_81072A8(void)
+u8 BattleAI_GetAIActionToUse(void)
{
u8 arr1[4];
u8 arr2[4];
u8 r5;
s32 i;
-
+
sub_810745C();
- while(unk_2016800.aiFlags != 0)
+ while(gAIThinkingSpace.aiFlags != 0)
{
- if(unk_2016800.aiFlags & 1)
+ if(gAIThinkingSpace.aiFlags & 1)
{
- unk_2016800.unk0 = 0;
- sub_8107374();
+ gAIThinkingSpace.unk0 = 0;
+ BattleAI_DoAIProcessing();
}
- unk_2016800.aiFlags >>= 1;
- unk_2016800.unk11++;
- unk_2016800.moveConsidered = 0;
+ gAIThinkingSpace.aiFlags >>= 1;
+ gAIThinkingSpace.aiLogicId++;
+ gAIThinkingSpace.moveConsidered = 0;
}
- if(unk_2016800.unk10 & 2)
+ if(gAIThinkingSpace.unk10 & 2)
return 4;
- if(unk_2016800.unk10 & 4)
+ if(gAIThinkingSpace.unk10 & 4)
return 5;
r5 = 1;
- arr1[0] = unk_2016800.score[0];
+ arr1[0] = gAIThinkingSpace.score[0];
arr2[0] = 0;
for(i = 1; i < 4; i++)
{
- if(arr1[0] < (s8)unk_2016800.score[i])
+ if(arr1[0] < (s8)gAIThinkingSpace.score[i])
{
r5 = 1;
- arr1[0] = unk_2016800.score[i];
+ arr1[0] = gAIThinkingSpace.score[i];
arr2[0] = i;
}
- if(arr1[0] == (s8)unk_2016800.score[i])
+ if(arr1[0] == (s8)gAIThinkingSpace.score[i])
{
- arr1[r5] = unk_2016800.score[i];
+ arr1[r5] = gAIThinkingSpace.score[i];
arr2[r5++] = i;
}
}
return arr2[Random() % r5];
}
-void sub_8107374(void)
+void BattleAI_DoAIProcessing(void)
{
- while(unk_2016800.unk0 != 2)
+ while(gAIThinkingSpace.unk0 != 2)
{
- switch(unk_2016800.unk0)
+ switch(gAIThinkingSpace.unk0)
{
case 3: //Needed to match.
break;
case 0:
- gAIScriptPtr = BattleAIs[unk_2016800.unk11];
- if(gBattleMons[gUnknown_02024C07].pp[unk_2016800.moveConsidered] == 0)
+ gAIScriptPtr = BattleAIs[gAIThinkingSpace.aiLogicId];
+ if(gBattleMons[gUnknown_02024C07].pp[gAIThinkingSpace.moveConsidered] == 0)
{
- unk_2016800.unk2 = 0;
+ gAIThinkingSpace.unk2 = 0;
}
else
{
- unk_2016800.unk2 = gBattleMons[gUnknown_02024C07].moves[unk_2016800.moveConsidered];
+ gAIThinkingSpace.unk2 = gBattleMons[gUnknown_02024C07].moves[gAIThinkingSpace.moveConsidered];
}
- unk_2016800.unk0++;
+ gAIThinkingSpace.unk0++;
break;
case 1:
- if(unk_2016800.unk2 != 0)
- gBattleAICmdTable[*(u8 *)gAIScriptPtr](); //weird...
+ if(gAIThinkingSpace.unk2 != 0)
+ gBattleAICmdTable[*(u8 *)gAIScriptPtr](); // run AI command.
else
{
- unk_2016800.score[unk_2016800.moveConsidered] = 0;
- unk_2016800.unk10 |= 1;
+ gAIThinkingSpace.score[gAIThinkingSpace.moveConsidered] = 0;
+ gAIThinkingSpace.unk10 |= 1;
}
- if(unk_2016800.unk10 & 1)
+ if(gAIThinkingSpace.unk10 & 1)
{
- unk_2016800.moveConsidered++;
- if(unk_2016800.moveConsidered < 4 && !(unk_2016800.unk10 & 8))
- unk_2016800.unk0 = 0;
+ gAIThinkingSpace.moveConsidered++;
+ if(gAIThinkingSpace.moveConsidered < 4 && !(gAIThinkingSpace.unk10 & 8))
+ gAIThinkingSpace.unk0 = 0;
else
- unk_2016800.unk0++;
- unk_2016800.unk10 &= 0xFE;
+ gAIThinkingSpace.unk0++;
+ gAIThinkingSpace.unk10 &= 0xFE;
}
break;
}
}
}
-#ifdef NONMATCHING
void sub_810745C(void)
{
s32 i;
-
+
for(i = 0; i < 8; i++)
{
- if(unk_2016A00.unk0[gUnknown_02024C08 / 2][i] == 0)
+ // this is the same as dividing it by 2, but for some reason, >> 1 is needed to match the asm.
+ if(unk_2016A00.unk0[gUnknown_02024C08 >> 1][i] == 0)
{
- //gUnknown_02024C34[gUnknown_02024C08] += 0;
- unk_2016A00.unk0[gUnknown_02024C08 / 2][i] = gUnknown_02024C34[gUnknown_02024C08];
+ unk_2016A00.unk0[gUnknown_02024C08 >> 1][i] = gUnknown_02024C34[gUnknown_02024C08];
return;
}
}
}
-#else
-__attribute__((naked))
-void sub_810745C(void)
-{
- asm(".syntax unified\n\
- push {r4-r6,lr}\n\
- movs r2, 0\n\
- ldr r3, _08107488 @ =gUnknown_02024C08\n\
- ldr r5, _0810748C @ =0x02016a00\n\
- ldr r6, _08107490 @ =gUnknown_02024C34\n\
- adds r4, r3, 0\n\
-_08107468:\n\
- lsls r0, r2, 1\n\
- ldrb r1, [r4]\n\
- lsrs r1, 1\n\
- lsls r1, 4\n\
- adds r0, r1\n\
- adds r1, r0, r5\n\
- ldrh r0, [r1]\n\
- cmp r0, 0\n\
- bne _08107494\n\
- ldrb r0, [r3]\n\
- lsls r0, 1\n\
- adds r0, r6\n\
- ldrh r0, [r0]\n\
- strh r0, [r1]\n\
- b _0810749A\n\
- .align 2, 0\n\
-_08107488: .4byte gUnknown_02024C08\n\
-_0810748C: .4byte 0x02016a00\n\
-_08107490: .4byte gUnknown_02024C34\n\
-_08107494:\n\
- adds r2, 0x1\n\
- cmp r2, 0x7\n\
- ble _08107468\n\
-_0810749A:\n\
- pop {r4-r6}\n\
- pop {r0}\n\
- bx r0\n\
- .syntax divided");
-}
-#endif
void unref_sub_81074A0(u8 a)
{
s32 i;
-
+
for(i = 0; i < 8; i++)
unk_2016A00.unk0[a / 2][i] = 0;
}
@@ -328,363 +269,363 @@ void sub_81074F8(u8 a, u8 b)
void BattleAICmd_if_random(void)
{
- u16 random = Random();
-
- if (!(random % 256 >= gAIScriptPtr[1])) // roll a random value. is it less than the parameter of the if_random call? (96 on if_random 80 will return true)
- gAIScriptPtr = AIScriptRead32(gAIScriptPtr + 2);
- else
- gAIScriptPtr += 6;
+ u16 random = Random();
+
+ if (!(random % 256 >= gAIScriptPtr[1])) // roll a random value. is it less than the parameter of the if_random call? (96 on if_random 80 will return true)
+ gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2);
+ else
+ gAIScriptPtr += 6;
}
void BattleAICmd_if_not_random(void)
{
- u16 random = Random();
-
- if (!(random % 256 <= gAIScriptPtr[1])) // roll a random value. is it greater than the parameter of the if_random call? (96 on if_random 80 will return true)
- gAIScriptPtr = AIScriptRead32(gAIScriptPtr + 2);
- else
- gAIScriptPtr += 6;
+ u16 random = Random();
+
+ if (!(random % 256 <= gAIScriptPtr[1])) // roll a random value. is it greater than the parameter of the if_random call? (96 on if_random 80 will return true)
+ gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2);
+ else
+ gAIScriptPtr += 6;
}
void BattleAICmd_if_random_1(void) // if RNG Value equal to
{
- u16 random = Random();
-
- if (random % 256 == gAIScriptPtr[1]) // roll a random value. is it greater than the parameter of the if_random call? (96 on if_random 80 will return true)
- gAIScriptPtr = AIScriptRead32(gAIScriptPtr + 2);
- else
- gAIScriptPtr += 6;
+ u16 random = Random();
+
+ if (random % 256 == gAIScriptPtr[1]) // roll a random value. is it greater than the parameter of the if_random call? (96 on if_random 80 will return true)
+ gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2);
+ else
+ gAIScriptPtr += 6;
}
void BattleAICmd_if_not_random_1(void) // if RNG value not equal to
{
- u16 random = Random();
-
- if (random % 256 != gAIScriptPtr[1]) // roll a random value. is it greater than the parameter of the if_random call? (96 on if_random 80 will return true)
- gAIScriptPtr = AIScriptRead32(gAIScriptPtr + 2);
- else
- gAIScriptPtr += 6;
+ u16 random = Random();
+
+ if (random % 256 != gAIScriptPtr[1]) // roll a random value. is it greater than the parameter of the if_random call? (96 on if_random 80 will return true)
+ gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2);
+ else
+ gAIScriptPtr += 6;
}
void BattleAICmd_score(void)
{
- unk_2016800.score[unk_2016800.moveConsidered] += gAIScriptPtr[1]; // add the result to the array of the move consider's score.
-
- if(unk_2016800.score[unk_2016800.moveConsidered] < 0) // if the score is negative, flatten it to 0.
- unk_2016800.score[unk_2016800.moveConsidered] = 0;
+ gAIThinkingSpace.score[gAIThinkingSpace.moveConsidered] += gAIScriptPtr[1]; // add the result to the array of the move consider's score.
- gAIScriptPtr += 2; // AI return.
+ if(gAIThinkingSpace.score[gAIThinkingSpace.moveConsidered] < 0) // if the score is negative, flatten it to 0.
+ gAIThinkingSpace.score[gAIThinkingSpace.moveConsidered] = 0;
+
+ gAIScriptPtr += 2; // AI return.
}
void BattleAICmd_if_hp_less_than(void)
{
- u16 var;
-
- if ( gAIScriptPtr[1] == 1 )
- var = gUnknown_02024C07;
- else
- var = gUnknown_02024C08;
-
- if ((u32)(100 * gBattleMons[var].hp / gBattleMons[var].maxHP) < gAIScriptPtr[2])
- gAIScriptPtr = AIScriptRead32(gAIScriptPtr + 3);
- else
- gAIScriptPtr += 7;
+ u16 var;
+
+ if (gAIScriptPtr[1] == USER)
+ var = gUnknown_02024C07;
+ else
+ var = gUnknown_02024C08;
+
+ if ((u32)(100 * gBattleMons[var].hp / gBattleMons[var].maxHP) < gAIScriptPtr[2])
+ gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 3);
+ else
+ gAIScriptPtr += 7;
}
void BattleAICmd_if_hp_more_than(void)
{
- u16 var;
-
- if ( gAIScriptPtr[1] == 1 )
- var = gUnknown_02024C07;
- else
- var = gUnknown_02024C08;
-
- if ((u32)(100 * gBattleMons[var].hp / gBattleMons[var].maxHP) > gAIScriptPtr[2])
- gAIScriptPtr = AIScriptRead32(gAIScriptPtr + 3);
- else
- gAIScriptPtr += 7;
+ u16 var;
+
+ if (gAIScriptPtr[1] == USER)
+ var = gUnknown_02024C07;
+ else
+ var = gUnknown_02024C08;
+
+ if ((u32)(100 * gBattleMons[var].hp / gBattleMons[var].maxHP) > gAIScriptPtr[2])
+ gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 3);
+ else
+ gAIScriptPtr += 7;
}
void BattleAICmd_if_hp_equal(void)
{
- u16 var;
-
- if ( gAIScriptPtr[1] == 1 )
- var = gUnknown_02024C07;
- else
- var = gUnknown_02024C08;
-
- if ((u32)(100 * gBattleMons[var].hp / gBattleMons[var].maxHP) == gAIScriptPtr[2])
- gAIScriptPtr = AIScriptRead32(gAIScriptPtr + 3);
- else
- gAIScriptPtr += 7;
+ u16 var;
+
+ if (gAIScriptPtr[1] == USER)
+ var = gUnknown_02024C07;
+ else
+ var = gUnknown_02024C08;
+
+ if ((u32)(100 * gBattleMons[var].hp / gBattleMons[var].maxHP) == gAIScriptPtr[2])
+ gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 3);
+ else
+ gAIScriptPtr += 7;
}
void BattleAICmd_if_hp_not_equal(void)
{
- u16 var;
-
- if ( gAIScriptPtr[1] == 1 )
- var = gUnknown_02024C07;
- else
- var = gUnknown_02024C08;
-
- if ((u32)(100 * gBattleMons[var].hp / gBattleMons[var].maxHP) != gAIScriptPtr[2])
- gAIScriptPtr = AIScriptRead32(gAIScriptPtr + 3);
- else
- gAIScriptPtr += 7;
+ u16 var;
+
+ if (gAIScriptPtr[1] == USER)
+ var = gUnknown_02024C07;
+ else
+ var = gUnknown_02024C08;
+
+ if ((u32)(100 * gBattleMons[var].hp / gBattleMons[var].maxHP) != gAIScriptPtr[2])
+ gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 3);
+ else
+ gAIScriptPtr += 7;
}
void BattleAICmd_if_status(void)
{
- u16 var;
- u32 temp;
-
- if ( gAIScriptPtr[1] == 1 )
- var = gUnknown_02024C07;
- else
- var = gUnknown_02024C08;
-
- temp = AIScriptRead32(gAIScriptPtr + 2);
-
- if (gBattleMons[var].status1 & temp)
- gAIScriptPtr = AIScriptRead32(gAIScriptPtr + 6);
- else
- gAIScriptPtr += 10;
+ u16 var;
+ u32 temp;
+
+ if (gAIScriptPtr[1] == USER)
+ var = gUnknown_02024C07;
+ else
+ var = gUnknown_02024C08;
+
+ temp = AIScriptRead32(gAIScriptPtr + 2);
+
+ if (gBattleMons[var].status1 & temp)
+ gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 6);
+ else
+ gAIScriptPtr += 10;
}
void BattleAICmd_if_not_status(void)
{
- u16 var;
- u32 temp;
-
- if ( gAIScriptPtr[1] == 1 )
- var = gUnknown_02024C07;
- else
- var = gUnknown_02024C08;
-
- temp = AIScriptRead32(gAIScriptPtr + 2);
-
- if (!(gBattleMons[var].status1 & temp))
- gAIScriptPtr = AIScriptRead32(gAIScriptPtr + 6);
- else
- gAIScriptPtr += 10;
+ u16 var;
+ u32 temp;
+
+ if (gAIScriptPtr[1] == USER)
+ var = gUnknown_02024C07;
+ else
+ var = gUnknown_02024C08;
+
+ temp = AIScriptRead32(gAIScriptPtr + 2);
+
+ if (!(gBattleMons[var].status1 & temp))
+ gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 6);
+ else
+ gAIScriptPtr += 10;
}
void BattleAICmd_if_status2(void)
{
- u8 var;
- u32 temp;
-
- if ( gAIScriptPtr[1] == 1 )
- var = gUnknown_02024C07;
- else
- var = gUnknown_02024C08;
-
- temp = AIScriptRead32(gAIScriptPtr + 2);
-
- if (gBattleMons[var].status2 & temp)
- gAIScriptPtr = AIScriptRead32(gAIScriptPtr + 6);
- else
- gAIScriptPtr += 10;
+ u8 var;
+ u32 temp;
+
+ if (gAIScriptPtr[1] == USER)
+ var = gUnknown_02024C07;
+ else
+ var = gUnknown_02024C08;
+
+ temp = AIScriptRead32(gAIScriptPtr + 2);
+
+ if (gBattleMons[var].status2 & temp)
+ gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 6);
+ else
+ gAIScriptPtr += 10;
}
void BattleAICmd_if_not_status2(void)
{
- u8 var;
- u32 temp;
-
- if ( gAIScriptPtr[1] == 1 )
- var = gUnknown_02024C07;
- else
- var = gUnknown_02024C08;
-
- temp = AIScriptRead32(gAIScriptPtr + 2);
-
- if (!(gBattleMons[var].status2 & temp))
- gAIScriptPtr = AIScriptRead32(gAIScriptPtr + 6);
- else
- gAIScriptPtr += 10;
+ u8 var;
+ u32 temp;
+
+ if (gAIScriptPtr[1] == USER)
+ var = gUnknown_02024C07;
+ else
+ var = gUnknown_02024C08;
+
+ temp = AIScriptRead32(gAIScriptPtr + 2);
+
+ if (!(gBattleMons[var].status2 & temp))
+ gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 6);
+ else
+ gAIScriptPtr += 10;
}
void BattleAICmd_if_status3(void)
{
- u8 var;
- u32 temp;
-
- if ( gAIScriptPtr[1] == 1 )
- var = gUnknown_02024C07;
- else
- var = gUnknown_02024C08;
-
- temp = AIScriptRead32(gAIScriptPtr + 2);
-
- if ( gUnknown_02024C98[var] & temp )
- gAIScriptPtr = AIScriptRead32(gAIScriptPtr + 6);
- else
- gAIScriptPtr += 10;
+ u8 var;
+ u32 temp;
+
+ if (gAIScriptPtr[1] == USER)
+ var = gUnknown_02024C07;
+ else
+ var = gUnknown_02024C08;
+
+ temp = AIScriptRead32(gAIScriptPtr + 2);
+
+ if ( gUnknown_02024C98[var] & temp )
+ gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 6);
+ else
+ gAIScriptPtr += 10;
}
void BattleAICmd_if_not_status3(void)
{
- u8 var;
- u32 temp;
-
- if ( gAIScriptPtr[1] == 1 )
- var = gUnknown_02024C07;
- else
- var = gUnknown_02024C08;
-
- temp = AIScriptRead32(gAIScriptPtr + 2);
-
- if (!(gUnknown_02024C98[var] & temp))
- gAIScriptPtr = AIScriptRead32(gAIScriptPtr + 6);
- else
- gAIScriptPtr += 10;
+ u8 var;
+ u32 temp;
+
+ if (gAIScriptPtr[1] == USER)
+ var = gUnknown_02024C07;
+ else
+ var = gUnknown_02024C08;
+
+ temp = AIScriptRead32(gAIScriptPtr + 2);
+
+ if (!(gUnknown_02024C98[var] & temp))
+ gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 6);
+ else
+ gAIScriptPtr += 10;
}
void BattleAICmd_if_status4(void)
{
- u8 var;
- u32 temp;
- u32 temp2;
-
- if ( gAIScriptPtr[1] == 1 )
- var = gUnknown_02024C07;
- else
- var = gUnknown_02024C08;
-
- temp = battle_get_per_side_status(var) & 1;
- temp2 = AIScriptRead32(gAIScriptPtr + 2);
-
- if ( gUnknown_02024C7A[temp] & temp2 )
- gAIScriptPtr = AIScriptRead32(gAIScriptPtr + 6);
- else
- gAIScriptPtr += 10;
+ u8 var;
+ u32 temp;
+ u32 temp2;
+
+ if (gAIScriptPtr[1] == USER)
+ var = gUnknown_02024C07;
+ else
+ var = gUnknown_02024C08;
+
+ temp = battle_get_per_side_status(var) & 1;
+ temp2 = AIScriptRead32(gAIScriptPtr + 2);
+
+ if ( gUnknown_02024C7A[temp] & temp2 )
+ gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 6);
+ else
+ gAIScriptPtr += 10;
}
void BattleAICmd_if_not_status4(void)
{
- u8 var;
- u32 temp;
- u32 temp2;
-
- if (gAIScriptPtr[1] == 1)
- var = gUnknown_02024C07;
- else
- var = gUnknown_02024C08;
-
- temp = battle_get_per_side_status(var) & 1;
- temp2 = AIScriptRead32(gAIScriptPtr + 2);
-
- if (!(gUnknown_02024C7A[temp] & temp2))
- gAIScriptPtr = AIScriptRead32(gAIScriptPtr + 6);
- else
- gAIScriptPtr += 10;
+ u8 var;
+ u32 temp;
+ u32 temp2;
+
+ if (gAIScriptPtr[1] == USER)
+ var = gUnknown_02024C07;
+ else
+ var = gUnknown_02024C08;
+
+ temp = battle_get_per_side_status(var) & 1;
+ temp2 = AIScriptRead32(gAIScriptPtr + 2);
+
+ if (!(gUnknown_02024C7A[temp] & temp2))
+ gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 6);
+ else
+ gAIScriptPtr += 10;
}
void BattleAICmd_if_less_than(void)
{
- if (unk_2016800.unk8 < gAIScriptPtr[1])
- gAIScriptPtr = AIScriptRead32(gAIScriptPtr + 2);
- else
- gAIScriptPtr += 6;
+ if (gAIThinkingSpace.unk8 < gAIScriptPtr[1])
+ gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2);
+ else
+ gAIScriptPtr += 6;
}
void BattleAICmd_if_more_than(void)
{
- if (unk_2016800.unk8 > gAIScriptPtr[1])
- gAIScriptPtr = AIScriptRead32(gAIScriptPtr + 2);
- else
- gAIScriptPtr += 6;
+ if (gAIThinkingSpace.unk8 > gAIScriptPtr[1])
+ gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2);
+ else
+ gAIScriptPtr += 6;
}
void BattleAICmd_if_equal(void)
{
- if (unk_2016800.unk8 == gAIScriptPtr[1])
- gAIScriptPtr = AIScriptRead32(gAIScriptPtr + 2);
- else
- gAIScriptPtr += 6;
+ if (gAIThinkingSpace.unk8 == gAIScriptPtr[1])
+ gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2);
+ else
+ gAIScriptPtr += 6;
}
void BattleAICmd_if_not_equal(void)
{
- if (unk_2016800.unk8 != gAIScriptPtr[1])
- gAIScriptPtr = AIScriptRead32(gAIScriptPtr + 2);
- else
- gAIScriptPtr += 6;
+ if (gAIThinkingSpace.unk8 != gAIScriptPtr[1])
+ gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2);
+ else
+ gAIScriptPtr += 6;
}
void BattleAICmd_if_less_than_32(void)
{
- u8 *temp = AIScriptRead32(gAIScriptPtr + 1);
+ u8 *temp = AIScriptReadPtr(gAIScriptPtr + 1);
- if (unk_2016800.unk8 < *temp)
- gAIScriptPtr = AIScriptRead32(gAIScriptPtr + 5);
- else
- gAIScriptPtr += 9;
+ if (gAIThinkingSpace.unk8 < *temp)
+ gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 5);
+ else
+ gAIScriptPtr += 9;
}
void BattleAICmd_if_more_than_32(void)
{
- u8 *temp = AIScriptRead32(gAIScriptPtr + 1);
+ u8 *temp = AIScriptReadPtr(gAIScriptPtr + 1);
- if (unk_2016800.unk8 > *temp)
- gAIScriptPtr = AIScriptRead32(gAIScriptPtr + 5);
- else
- gAIScriptPtr += 9;
+ if (gAIThinkingSpace.unk8 > *temp)
+ gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 5);
+ else
+ gAIScriptPtr += 9;
}
void BattleAICmd_if_equal_32(void)
{
- u8 *temp = AIScriptRead32(gAIScriptPtr + 1);
+ u8 *temp = AIScriptReadPtr(gAIScriptPtr + 1);
- if (unk_2016800.unk8 == *temp)
- gAIScriptPtr = AIScriptRead32(gAIScriptPtr + 5);
- else
- gAIScriptPtr += 9;
+ if (gAIThinkingSpace.unk8 == *temp)
+ gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 5);
+ else
+ gAIScriptPtr += 9;
}
void BattleAICmd_if_not_equal_32(void)
{
- u8 *temp = AIScriptRead32(gAIScriptPtr + 1);
+ u8 *temp = AIScriptReadPtr(gAIScriptPtr + 1);
- if (unk_2016800.unk8 != *temp)
- gAIScriptPtr = AIScriptRead32(gAIScriptPtr + 5);
- else
- gAIScriptPtr += 9;
+ if (gAIThinkingSpace.unk8 != *temp)
+ gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 5);
+ else
+ gAIScriptPtr += 9;
}
void BattleAICmd_if_move(void)
{
- u16 move = AIScriptRead16(gAIScriptPtr + 1);
+ u16 move = AIScriptRead16(gAIScriptPtr + 1);
- if (unk_2016800.unk2 == move)
- gAIScriptPtr = AIScriptRead32(gAIScriptPtr + 3);
- else
- gAIScriptPtr += 7;
+ if (gAIThinkingSpace.unk2 == move)
+ gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 3);
+ else
+ gAIScriptPtr += 7;
}
void BattleAICmd_if_not_move(void)
{
- u16 move = AIScriptRead16(gAIScriptPtr + 1);
+ u16 move = AIScriptRead16(gAIScriptPtr + 1);
- if (unk_2016800.unk2 != move)
- gAIScriptPtr = AIScriptRead32(gAIScriptPtr + 3);
- else
- gAIScriptPtr += 7;
+ if (gAIThinkingSpace.unk2 != move)
+ gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 3);
+ else
+ gAIScriptPtr += 7;
}
void BattleAICmd_if_in_bytes(void)
{
- u8 *ptr = AIScriptRead32(gAIScriptPtr + 1);
-
+ u8 *ptr = AIScriptReadPtr(gAIScriptPtr + 1);
+
while(*ptr != 0xFF)
{
- if(unk_2016800.unk8 == *ptr)
+ if(gAIThinkingSpace.unk8 == *ptr)
{
- gAIScriptPtr = AIScriptRead32(gAIScriptPtr + 5);
+ gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 5);
return;
}
ptr++;
@@ -694,29 +635,29 @@ void BattleAICmd_if_in_bytes(void)
void BattleAICmd_if_not_in_bytes(void)
{
- u8 *ptr = AIScriptRead32(gAIScriptPtr + 1);
-
+ u8 *ptr = AIScriptReadPtr(gAIScriptPtr + 1);
+
while(*ptr != 0xFF)
{
- if(unk_2016800.unk8 == *ptr)
+ if(gAIThinkingSpace.unk8 == *ptr)
{
gAIScriptPtr += 9;
return;
}
ptr++;
}
- gAIScriptPtr = AIScriptRead32(gAIScriptPtr + 5);
+ gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 5);
}
void BattleAICmd_if_in_words(void)
{
- u16 *ptr = AIScriptRead32(gAIScriptPtr + 1);
-
+ u16 *ptr = (u16 *)AIScriptReadPtr(gAIScriptPtr + 1);
+
while(*ptr != 0xFFFF)
{
- if(unk_2016800.unk8 == *ptr)
+ if(gAIThinkingSpace.unk8 == *ptr)
{
- gAIScriptPtr = AIScriptRead32(gAIScriptPtr + 5);
+ gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 5);
return;
}
ptr++;
@@ -726,24 +667,24 @@ void BattleAICmd_if_in_words(void)
void BattleAICmd_if_not_in_words(void)
{
- u16 *ptr = AIScriptRead32(gAIScriptPtr + 1);
-
+ u16 *ptr = (u16 *)AIScriptReadPtr(gAIScriptPtr + 1);
+
while(*ptr != 0xFFFF)
{
- if(unk_2016800.unk8 == *ptr)
+ if(gAIThinkingSpace.unk8 == *ptr)
{
gAIScriptPtr += 9;
return;
}
ptr++;
}
- gAIScriptPtr = AIScriptRead32(gAIScriptPtr + 5);
+ gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 5);
}
void BattleAICmd_if_user_can_damage(void)
{
s32 i;
-
+
for(i = 0; i < 4; i++)
{
if (gBattleMons[gUnknown_02024C07].moves[i] != 0
@@ -753,13 +694,13 @@ void BattleAICmd_if_user_can_damage(void)
if(i == 4)
gAIScriptPtr += 5;
else
- gAIScriptPtr = AIScriptRead32(gAIScriptPtr + 1);
+ gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 1);
}
void BattleAICmd_if_user_cant_damage(void)
{
s32 i;
-
+
for(i = 0; i < 4; i++)
{
if (gBattleMons[gUnknown_02024C07].moves[i] != 0
@@ -769,209 +710,209 @@ void BattleAICmd_if_user_cant_damage(void)
if(i != 4)
gAIScriptPtr += 5;
else
- gAIScriptPtr = AIScriptRead32(gAIScriptPtr + 1);
+ gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 1);
}
void BattleAICmd_unk_21(void)
{
- unk_2016800.unk8 = gUnknown_030042E0[19];
- gAIScriptPtr += 1;
+ gAIThinkingSpace.unk8 = gUnknown_030042E0[19];
+ gAIScriptPtr += 1;
}
void BattleAICmd_get_type(void)
{
- u8 typeVar = gAIScriptPtr[1];
-
- switch(typeVar)
- {
- case 1:
- unk_2016800.unk8 = gBattleMons[gUnknown_02024C07].type1;
- break;
- case 0:
- unk_2016800.unk8 = gBattleMons[gUnknown_02024C08].type1;
- break;
- case 3:
- unk_2016800.unk8 = gBattleMons[gUnknown_02024C07].type2;
- break;
- case 2:
- unk_2016800.unk8 = gBattleMons[gUnknown_02024C08].type2;
- break;
- case 4:
- unk_2016800.unk8 = gBattleMoves[unk_2016800.unk2].type;
- break;
- }
- gAIScriptPtr += 2;
+ u8 typeVar = gAIScriptPtr[1];
+
+ switch(typeVar)
+ {
+ case 1:
+ gAIThinkingSpace.unk8 = gBattleMons[gUnknown_02024C07].type1;
+ break;
+ case 0:
+ gAIThinkingSpace.unk8 = gBattleMons[gUnknown_02024C08].type1;
+ break;
+ case 3:
+ gAIThinkingSpace.unk8 = gBattleMons[gUnknown_02024C07].type2;
+ break;
+ case 2:
+ gAIThinkingSpace.unk8 = gBattleMons[gUnknown_02024C08].type2;
+ break;
+ case 4:
+ gAIThinkingSpace.unk8 = gBattleMoves[gAIThinkingSpace.unk2].type;
+ break;
+ }
+ gAIScriptPtr += 2;
}
void BattleAICmd_unk_23(void)
{
- unk_2016800.unk8 = gBattleMoves[unk_2016800.unk2].power;
- gAIScriptPtr += 1;
+ gAIThinkingSpace.unk8 = gBattleMoves[gAIThinkingSpace.unk2].power;
+ gAIScriptPtr += 1;
}
__attribute__((naked))
void BattleAICmd_unk_24(void)
{
- 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, 0x14\n\
- movs r3, 0\n\
- ldr r0, _08108328 @ =gUnknown_083F62BC\n\
- ldrh r1, [r0]\n\
- ldr r4, _0810832C @ =0x0000ffff\n\
- ldr r6, _08108330 @ =gBattleMoves\n\
- ldr r5, _08108334 @ =0x02016800\n\
- cmp r1, r4\n\
- beq _0810822E\n\
- ldrh r1, [r5, 0x2]\n\
- lsls r0, r1, 1\n\
- adds r0, r1\n\
- lsls r0, 2\n\
- adds r0, r6\n\
- ldrb r2, [r0]\n\
- ldr r1, _08108328 @ =gUnknown_083F62BC\n\
+ 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, 0x14\n\
+ movs r3, 0\n\
+ ldr r0, _08108328 @ =gUnknown_083F62BC\n\
+ ldrh r1, [r0]\n\
+ ldr r4, _0810832C @ =0x0000ffff\n\
+ ldr r6, _08108330 @ =gBattleMoves\n\
+ ldr r5, _08108334 @ =0x02016800\n\
+ cmp r1, r4\n\
+ beq _0810822E\n\
+ ldrh r1, [r5, 0x2]\n\
+ lsls r0, r1, 1\n\
+ adds r0, r1\n\
+ lsls r0, 2\n\
+ adds r0, r6\n\
+ ldrb r2, [r0]\n\
+ ldr r1, _08108328 @ =gUnknown_083F62BC\n\
_0810821E:\n\
- ldrh r0, [r1]\n\
- cmp r2, r0\n\
- beq _0810822E\n\
- adds r1, 0x2\n\
- adds r3, 0x1\n\
- ldrh r0, [r1]\n\
- cmp r0, r4\n\
- bne _0810821E\n\
+ ldrh r0, [r1]\n\
+ cmp r2, r0\n\
+ beq _0810822E\n\
+ adds r1, 0x2\n\
+ adds r3, 0x1\n\
+ ldrh r0, [r1]\n\
+ cmp r0, r4\n\
+ bne _0810821E\n\
_0810822E:\n\
- ldrh r0, [r5, 0x2]\n\
- lsls r1, r0, 1\n\
- adds r1, r0\n\
- lsls r1, 2\n\
- adds r1, r6\n\
- ldrb r0, [r1, 0x1]\n\
- cmp r0, 0x1\n\
- bhi _08108240\n\
- b _081083B2\n\
+ ldrh r0, [r5, 0x2]\n\
+ lsls r1, r0, 1\n\
+ adds r1, r0\n\
+ lsls r1, 2\n\
+ adds r1, r6\n\
+ ldrb r0, [r1, 0x1]\n\
+ cmp r0, 0x1\n\
+ bhi _08108240\n\
+ b _081083B2\n\
_08108240:\n\
- lsls r0, r3, 1\n\
- ldr r1, _08108328 @ =gUnknown_083F62BC\n\
- adds r0, r1\n\
- ldrh r3, [r0]\n\
- ldr r0, _0810832C @ =0x0000ffff\n\
- cmp r3, r0\n\
- beq _08108250\n\
- b _081083B2\n\
+ lsls r0, r3, 1\n\
+ ldr r1, _08108328 @ =gUnknown_083F62BC\n\
+ adds r0, r1\n\
+ ldrh r3, [r0]\n\
+ ldr r0, _0810832C @ =0x0000ffff\n\
+ cmp r3, r0\n\
+ beq _08108250\n\
+ b _081083B2\n\
_08108250:\n\
- ldr r0, _08108338 @ =gUnknown_02024DEC\n\
- movs r1, 0\n\
- strh r1, [r0]\n\
- ldr r2, _0810833C @ =0xfffff81c\n\
- adds r0, r5, r2\n\
- strb r1, [r0]\n\
- adds r2, 0x3\n\
- adds r0, r5, r2\n\
- movs r2, 0x1\n\
- strb r2, [r0]\n\
- ldr r0, _08108340 @ =gUnknown_02024C68\n\
- strb r1, [r0]\n\
- ldr r0, _08108344 @ =gCritMultiplier\n\
- strb r2, [r0]\n\
- movs r6, 0\n\
- mov r9, r3\n\
- ldr r0, _08108328 @ =gUnknown_083F62BC\n\
- ldrh r0, [r0]\n\
- str r0, [sp, 0x10]\n\
+ ldr r0, _08108338 @ =gUnknown_02024DEC\n\
+ movs r1, 0\n\
+ strh r1, [r0]\n\
+ ldr r2, _0810833C @ =0xfffff81c\n\
+ adds r0, r5, r2\n\
+ strb r1, [r0]\n\
+ adds r2, 0x3\n\
+ adds r0, r5, r2\n\
+ movs r2, 0x1\n\
+ strb r2, [r0]\n\
+ ldr r0, _08108340 @ =gUnknown_02024C68\n\
+ strb r1, [r0]\n\
+ ldr r0, _08108344 @ =gCritMultiplier\n\
+ strb r2, [r0]\n\
+ movs r6, 0\n\
+ mov r9, r3\n\
+ ldr r0, _08108328 @ =gUnknown_083F62BC\n\
+ ldrh r0, [r0]\n\
+ str r0, [sp, 0x10]\n\
_08108276:\n\
- movs r3, 0\n\
- ldr r5, _08108348 @ =gBattleMons\n\
- lsls r4, r6, 1\n\
- ldr r7, _0810834C @ =gUnknown_02024C07\n\
- lsls r1, r6, 2\n\
- mov r8, r1\n\
- adds r2, r6, 0x1\n\
- mov r10, r2\n\
- ldr r0, [sp, 0x10]\n\
- cmp r0, r9\n\
- beq _081082BA\n\
- ldr r2, _08108330 @ =gBattleMoves\n\
- ldrb r1, [r7]\n\
- movs r0, 0x58\n\
- muls r0, r1\n\
- adds r0, r4, r0\n\
- adds r1, r5, 0\n\
- adds r1, 0xC\n\
- adds r0, r1\n\
- ldrh r1, [r0]\n\
- lsls r0, r1, 1\n\
- adds r0, r1\n\
- lsls r0, 2\n\
- adds r0, r2\n\
- ldrb r2, [r0]\n\
- ldr r1, _08108328 @ =gUnknown_083F62BC\n\
+ movs r3, 0\n\
+ ldr r5, _08108348 @ =gBattleMons\n\
+ lsls r4, r6, 1\n\
+ ldr r7, _0810834C @ =gUnknown_02024C07\n\
+ lsls r1, r6, 2\n\
+ mov r8, r1\n\
+ adds r2, r6, 0x1\n\
+ mov r10, r2\n\
+ ldr r0, [sp, 0x10]\n\
+ cmp r0, r9\n\
+ beq _081082BA\n\
+ ldr r2, _08108330 @ =gBattleMoves\n\
+ ldrb r1, [r7]\n\
+ movs r0, 0x58\n\
+ muls r0, r1\n\
+ adds r0, r4, r0\n\
+ adds r1, r5, 0\n\
+ adds r1, 0xC\n\
+ adds r0, r1\n\
+ ldrh r1, [r0]\n\
+ lsls r0, r1, 1\n\
+ adds r0, r1\n\
+ lsls r0, 2\n\
+ adds r0, r2\n\
+ ldrb r2, [r0]\n\
+ ldr r1, _08108328 @ =gUnknown_083F62BC\n\
_081082AA:\n\
- ldrh r0, [r1]\n\
- cmp r2, r0\n\
- beq _081082BA\n\
- adds r1, 0x2\n\
- adds r3, 0x1\n\
- ldrh r0, [r1]\n\
- cmp r0, r9\n\
- bne _081082AA\n\
+ ldrh r0, [r1]\n\
+ cmp r2, r0\n\
+ beq _081082BA\n\
+ adds r1, 0x2\n\
+ adds r3, 0x1\n\
+ ldrh r0, [r1]\n\
+ cmp r0, r9\n\
+ bne _081082AA\n\
_081082BA:\n\
- ldrb r1, [r7]\n\
- movs r0, 0x58\n\
- muls r0, r1\n\
- adds r0, r4, r0\n\
- adds r1, r5, 0\n\
- adds r1, 0xC\n\
- adds r1, r0, r1\n\
- ldrh r0, [r1]\n\
- cmp r0, 0\n\
- beq _0810835C\n\
- lsls r0, r3, 1\n\
- ldr r2, _08108328 @ =gUnknown_083F62BC\n\
- adds r0, r2\n\
- ldrh r0, [r0]\n\
- cmp r0, r9\n\
- bne _0810835C\n\
- ldr r0, _08108330 @ =gBattleMoves\n\
- ldrh r2, [r1]\n\
- lsls r1, r2, 1\n\
- adds r1, r2\n\
- lsls r1, 2\n\
- adds r1, r0\n\
- ldrb r0, [r1, 0x1]\n\
- cmp r0, 0x1\n\
- bls _0810835C\n\
- ldr r5, _08108350 @ =gUnknown_02024BE6\n\
- strh r2, [r5]\n\
- ldrb r0, [r7]\n\
- ldr r4, _08108354 @ =gUnknown_02024C08\n\
- ldrb r1, [r4]\n\
- bl sub_801CAF8\n\
- ldrh r0, [r5]\n\
- ldrb r1, [r7]\n\
- ldrb r2, [r4]\n\
- bl move_effectiveness_something\n\
- mov r4, sp\n\
- add r4, r8\n\
- ldr r2, _08108358 @ =gUnknown_02024BEC\n\
- ldr r0, _08108334 @ =0x02016800\n\
- adds r0, 0x18\n\
- adds r0, r6, r0\n\
- ldrb r1, [r0]\n\
- ldr r0, [r2]\n\
- muls r0, r1\n\
- movs r1, 0x64\n\
- bl __divsi3\n\
- str r0, [r4]\n\
- cmp r0, 0\n\
- bne _08108364\n\
- movs r0, 0x1\n\
- str r0, [r4]\n\
- b _08108364\n\
- .align 2, 0\n\
+ ldrb r1, [r7]\n\
+ movs r0, 0x58\n\
+ muls r0, r1\n\
+ adds r0, r4, r0\n\
+ adds r1, r5, 0\n\
+ adds r1, 0xC\n\
+ adds r1, r0, r1\n\
+ ldrh r0, [r1]\n\
+ cmp r0, 0\n\
+ beq _0810835C\n\
+ lsls r0, r3, 1\n\
+ ldr r2, _08108328 @ =gUnknown_083F62BC\n\
+ adds r0, r2\n\
+ ldrh r0, [r0]\n\
+ cmp r0, r9\n\
+ bne _0810835C\n\
+ ldr r0, _08108330 @ =gBattleMoves\n\
+ ldrh r2, [r1]\n\
+ lsls r1, r2, 1\n\
+ adds r1, r2\n\
+ lsls r1, 2\n\
+ adds r1, r0\n\
+ ldrb r0, [r1, 0x1]\n\
+ cmp r0, 0x1\n\
+ bls _0810835C\n\
+ ldr r5, _08108350 @ =gUnknown_02024BE6\n\
+ strh r2, [r5]\n\
+ ldrb r0, [r7]\n\
+ ldr r4, _08108354 @ =gUnknown_02024C08\n\
+ ldrb r1, [r4]\n\
+ bl sub_801CAF8\n\
+ ldrh r0, [r5]\n\
+ ldrb r1, [r7]\n\
+ ldrb r2, [r4]\n\
+ bl move_effectiveness_something\n\
+ mov r4, sp\n\
+ add r4, r8\n\
+ ldr r2, _08108358 @ =gUnknown_02024BEC\n\
+ ldr r0, _08108334 @ =0x02016800\n\
+ adds r0, 0x18\n\
+ adds r0, r6, r0\n\
+ ldrb r1, [r0]\n\
+ ldr r0, [r2]\n\
+ muls r0, r1\n\
+ movs r1, 0x64\n\
+ bl __divsi3\n\
+ str r0, [r4]\n\
+ cmp r0, 0\n\
+ bne _08108364\n\
+ movs r0, 0x1\n\
+ str r0, [r4]\n\
+ b _08108364\n\
+ .align 2, 0\n\
_08108328: .4byte gUnknown_083F62BC\n\
_0810832C: .4byte 0x0000ffff\n\
_08108330: .4byte gBattleMoves\n\
@@ -986,113 +927,113 @@ _08108350: .4byte gUnknown_02024BE6\n\
_08108354: .4byte gUnknown_02024C08\n\
_08108358: .4byte gUnknown_02024BEC\n\
_0810835C:\n\
- mov r1, sp\n\
- add r1, r8\n\
- movs r0, 0\n\
- str r0, [r1]\n\
+ mov r1, sp\n\
+ add r1, r8\n\
+ movs r0, 0\n\
+ str r0, [r1]\n\
_08108364:\n\
- mov r6, r10\n\
- cmp r6, 0x3\n\
- ble _08108276\n\
- movs r6, 0\n\
- ldr r1, _081083A4 @ =0x02016800\n\
- ldrb r0, [r1, 0x1]\n\
- lsls r0, 2\n\
- add r0, sp\n\
- ldr r2, [sp]\n\
- ldr r0, [r0]\n\
- adds r5, r1, 0\n\
- ldr r4, _081083A8 @ =gAIScriptPtr\n\
- cmp r2, r0\n\
- bgt _0810839A\n\
- adds r3, r5, 0\n\
- mov r2, sp\n\
+ mov r6, r10\n\
+ cmp r6, 0x3\n\
+ ble _08108276\n\
+ movs r6, 0\n\
+ ldr r1, _081083A4 @ =0x02016800\n\
+ ldrb r0, [r1, 0x1]\n\
+ lsls r0, 2\n\
+ add r0, sp\n\
+ ldr r2, [sp]\n\
+ ldr r0, [r0]\n\
+ adds r5, r1, 0\n\
+ ldr r4, _081083A8 @ =gAIScriptPtr\n\
+ cmp r2, r0\n\
+ bgt _0810839A\n\
+ adds r3, r5, 0\n\
+ mov r2, sp\n\
_08108384:\n\
- adds r2, 0x4\n\
- adds r6, 0x1\n\
- cmp r6, 0x3\n\
- bgt _0810839A\n\
- ldrb r0, [r3, 0x1]\n\
- lsls r0, 2\n\
- add r0, sp\n\
- ldr r1, [r2]\n\
- ldr r0, [r0]\n\
- cmp r1, r0\n\
- ble _08108384\n\
+ adds r2, 0x4\n\
+ adds r6, 0x1\n\
+ cmp r6, 0x3\n\
+ bgt _0810839A\n\
+ ldrb r0, [r3, 0x1]\n\
+ lsls r0, 2\n\
+ add r0, sp\n\
+ ldr r1, [r2]\n\
+ ldr r0, [r0]\n\
+ cmp r1, r0\n\
+ ble _08108384\n\
_0810839A:\n\
- cmp r6, 0x4\n\
- bne _081083AC\n\
- movs r0, 0x2\n\
- str r0, [r5, 0x8]\n\
- b _081083B8\n\
- .align 2, 0\n\
+ cmp r6, 0x4\n\
+ bne _081083AC\n\
+ movs r0, 0x2\n\
+ str r0, [r5, 0x8]\n\
+ b _081083B8\n\
+ .align 2, 0\n\
_081083A4: .4byte 0x02016800\n\
_081083A8: .4byte gAIScriptPtr\n\
_081083AC:\n\
- movs r0, 0x1\n\
- str r0, [r5, 0x8]\n\
- b _081083B8\n\
+ movs r0, 0x1\n\
+ str r0, [r5, 0x8]\n\
+ b _081083B8\n\
_081083B2:\n\
- movs r0, 0\n\
- str r0, [r5, 0x8]\n\
- ldr r4, _081083D0 @ =gAIScriptPtr\n\
+ movs r0, 0\n\
+ str r0, [r5, 0x8]\n\
+ ldr r4, _081083D0 @ =gAIScriptPtr\n\
_081083B8:\n\
- ldr r0, [r4]\n\
- adds r0, 0x1\n\
- str r0, [r4]\n\
- add sp, 0x14\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\
+ ldr r0, [r4]\n\
+ adds r0, 0x1\n\
+ str r0, [r4]\n\
+ add sp, 0x14\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\
_081083D0: .4byte gAIScriptPtr\n\
- .syntax divided\n");
+ .syntax divided\n");
}
void BattleAICmd_get_move(void)
{
- if ( gAIScriptPtr[1] == 1 )
- unk_2016800.unk8 = gUnknown_02024C34[gUnknown_02024C07];
- else
- unk_2016800.unk8 = gUnknown_02024C34[gUnknown_02024C08];
+ if (gAIScriptPtr[1] == USER)
+ gAIThinkingSpace.unk8 = gUnknown_02024C34[gUnknown_02024C07];
+ else
+ gAIThinkingSpace.unk8 = gUnknown_02024C34[gUnknown_02024C08];
- gAIScriptPtr += 2;
+ gAIScriptPtr += 2;
}
void BattleAICmd_if_type(void)
{
- if ( gAIScriptPtr[1] == unk_2016800.unk8 )
- gAIScriptPtr = AIScriptRead32(gAIScriptPtr + 2);
- else
- gAIScriptPtr += 6;
+ if ( gAIScriptPtr[1] == gAIThinkingSpace.unk8 )
+ gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2);
+ else
+ gAIScriptPtr += 6;
}
void BattleAICmd_unk_27(void) // if_not_type
{
- if ( gAIScriptPtr[1] != unk_2016800.unk8 )
- gAIScriptPtr = AIScriptRead32(gAIScriptPtr + 2);
- else
- gAIScriptPtr += 6;
+ if ( gAIScriptPtr[1] != gAIThinkingSpace.unk8 )
+ gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2);
+ else
+ gAIScriptPtr += 6;
}
void BattleAICmd_if_would_go_first(void)
{
- if ( b_first_side(gUnknown_02024C07, gUnknown_02024C08, 1) == gAIScriptPtr[1] )
- gAIScriptPtr = AIScriptRead32(gAIScriptPtr + 2);
- else
- gAIScriptPtr += 6;
+ if ( b_first_side(gUnknown_02024C07, gUnknown_02024C08, 1) == gAIScriptPtr[1] )
+ gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2);
+ else
+ gAIScriptPtr += 6;
}
void BattleAICmd_if_would_not_go_first(void)
{
- if ( b_first_side(gUnknown_02024C07, gUnknown_02024C08, 1) != gAIScriptPtr[1] )
- gAIScriptPtr = AIScriptRead32(gAIScriptPtr + 2);
- else
- gAIScriptPtr += 6;
+ if ( b_first_side(gUnknown_02024C07, gUnknown_02024C08, 1) != gAIScriptPtr[1] )
+ gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2);
+ else
+ gAIScriptPtr += 6;
}
void BattleAICmd_unk_2A(void)
@@ -1104,470 +1045,339 @@ void BattleAICmd_unk_2B(void)
__attribute__((naked))
void BattleAICmd_count_alive_pokemon(void)
{
- asm(".syntax unified\n\
- push {r4-r7,lr}\n\
- mov r7, r9\n\
- mov r6, r8\n\
- push {r6,r7}\n\
- ldr r1, _08108550 @ =0x02016800\n\
- movs r0, 0\n\
- str r0, [r1, 0x8]\n\
- ldr r0, _08108554 @ =gAIScriptPtr\n\
- ldr r0, [r0]\n\
- ldrb r0, [r0, 0x1]\n\
- cmp r0, 0x1\n\
- bne _0810855C\n\
- ldr r0, _08108558 @ =gUnknown_02024C07\n\
- b _0810855E\n\
- .align 2, 0\n\
+ asm(".syntax unified\n\
+ push {r4-r7,lr}\n\
+ mov r7, r9\n\
+ mov r6, r8\n\
+ push {r6,r7}\n\
+ ldr r1, _08108550 @ =0x02016800\n\
+ movs r0, 0\n\
+ str r0, [r1, 0x8]\n\
+ ldr r0, _08108554 @ =gAIScriptPtr\n\
+ ldr r0, [r0]\n\
+ ldrb r0, [r0, 0x1]\n\
+ cmp r0, 0x1\n\
+ bne _0810855C\n\
+ ldr r0, _08108558 @ =gUnknown_02024C07\n\
+ b _0810855E\n\
+ .align 2, 0\n\
_08108550: .4byte 0x02016800\n\
_08108554: .4byte gAIScriptPtr\n\
_08108558: .4byte gUnknown_02024C07\n\
_0810855C:\n\
- ldr r0, _081085A8 @ =gUnknown_02024C08\n\
+ ldr r0, _081085A8 @ =gUnknown_02024C08\n\
_0810855E:\n\
- ldrb r5, [r0]\n\
- adds r0, r5, 0\n\
- bl battle_side_get_owner\n\
- lsls r0, 24\n\
- ldr r1, _081085AC @ =gEnemyParty\n\
- mov r9, r1\n\
- cmp r0, 0\n\
- bne _08108574\n\
- ldr r0, _081085B0 @ =gPlayerParty\n\
- mov r9, r0\n\
+ ldrb r5, [r0]\n\
+ adds r0, r5, 0\n\
+ bl battle_side_get_owner\n\
+ lsls r0, 24\n\
+ ldr r1, _081085AC @ =gEnemyParty\n\
+ mov r9, r1\n\
+ cmp r0, 0\n\
+ bne _08108574\n\
+ ldr r0, _081085B0 @ =gPlayerParty\n\
+ mov r9, r0\n\
_08108574:\n\
- ldr r0, _081085B4 @ =gUnknown_020239F8\n\
- ldrh r1, [r0]\n\
- movs r0, 0x1\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- beq _081085BC\n\
- ldr r4, _081085B8 @ =gUnknown_02024A6A\n\
- lsls r0, r5, 1\n\
- adds r0, r4\n\
- ldrb r0, [r0]\n\
- mov r8, r0\n\
- adds r0, r5, 0\n\
- bl battle_get_per_side_status\n\
- movs r1, 0x2\n\
- eors r0, r1\n\
- lsls r0, 24\n\
- lsrs r0, 24\n\
- bl battle_get_side_with_given_state\n\
- lsls r0, 24\n\
- lsrs r0, 23\n\
- adds r0, r4\n\
- ldrb r6, [r0]\n\
- b _081085C6\n\
- .align 2, 0\n\
+ ldr r0, _081085B4 @ =gBattleTypeFlags\n\
+ ldrh r1, [r0]\n\
+ movs r0, 0x1\n\
+ ands r0, r1\n\
+ cmp r0, 0\n\
+ beq _081085BC\n\
+ ldr r4, _081085B8 @ =gUnknown_02024A6A\n\
+ lsls r0, r5, 1\n\
+ adds r0, r4\n\
+ ldrb r0, [r0]\n\
+ mov r8, r0\n\
+ adds r0, r5, 0\n\
+ bl battle_get_per_side_status\n\
+ movs r1, 0x2\n\
+ eors r0, r1\n\
+ lsls r0, 24\n\
+ lsrs r0, 24\n\
+ bl battle_get_side_with_given_state\n\
+ lsls r0, 24\n\
+ lsrs r0, 23\n\
+ adds r0, r4\n\
+ ldrb r6, [r0]\n\
+ b _081085C6\n\
+ .align 2, 0\n\
_081085A8: .4byte gUnknown_02024C08\n\
_081085AC: .4byte gEnemyParty\n\
_081085B0: .4byte gPlayerParty\n\
-_081085B4: .4byte gUnknown_020239F8\n\
+_081085B4: .4byte gBattleTypeFlags\n\
_081085B8: .4byte gUnknown_02024A6A\n\
_081085BC:\n\
- ldr r1, _08108624 @ =gUnknown_02024A6A\n\
- lsls r0, r5, 1\n\
- adds r0, r1\n\
- ldrb r6, [r0]\n\
- mov r8, r6\n\
+ ldr r1, _08108624 @ =gUnknown_02024A6A\n\
+ lsls r0, r5, 1\n\
+ adds r0, r1\n\
+ ldrb r6, [r0]\n\
+ mov r8, r6\n\
_081085C6:\n\
- movs r5, 0\n\
- ldr r7, _08108628 @ =0x02016800\n\
+ movs r5, 0\n\
+ ldr r7, _08108628 @ =0x02016800\n\
_081085CA:\n\
- cmp r5, r8\n\
- beq _08108608\n\
- cmp r5, r6\n\
- beq _08108608\n\
- movs r0, 0x64\n\
- muls r0, r5\n\
- mov r1, r9\n\
- adds r4, r1, r0\n\
- adds r0, r4, 0\n\
- movs r1, 0x39\n\
- bl GetMonData\n\
- cmp r0, 0\n\
- beq _08108608\n\
- adds r0, r4, 0\n\
- movs r1, 0x41\n\
- bl GetMonData\n\
- cmp r0, 0\n\
- beq _08108608\n\
- adds r0, r4, 0\n\
- movs r1, 0x41\n\
- bl GetMonData\n\
- movs r1, 0xCE\n\
- lsls r1, 1\n\
- cmp r0, r1\n\
- beq _08108608\n\
- ldr r0, [r7, 0x8]\n\
- adds r0, 0x1\n\
- str r0, [r7, 0x8]\n\
+ cmp r5, r8\n\
+ beq _08108608\n\
+ cmp r5, r6\n\
+ beq _08108608\n\
+ movs r0, 0x64\n\
+ muls r0, r5\n\
+ mov r1, r9\n\
+ adds r4, r1, r0\n\
+ adds r0, r4, 0\n\
+ movs r1, 0x39\n\
+ bl GetMonData\n\
+ cmp r0, 0\n\
+ beq _08108608\n\
+ adds r0, r4, 0\n\
+ movs r1, 0x41\n\
+ bl GetMonData\n\
+ cmp r0, 0\n\
+ beq _08108608\n\
+ adds r0, r4, 0\n\
+ movs r1, 0x41\n\
+ bl GetMonData\n\
+ movs r1, 0xCE\n\
+ lsls r1, 1\n\
+ cmp r0, r1\n\
+ beq _08108608\n\
+ ldr r0, [r7, 0x8]\n\
+ adds r0, 0x1\n\
+ str r0, [r7, 0x8]\n\
_08108608:\n\
- adds r5, 0x1\n\
- cmp r5, 0x5\n\
- ble _081085CA\n\
- ldr r1, _0810862C @ =gAIScriptPtr\n\
- ldr r0, [r1]\n\
- adds r0, 0x2\n\
- str r0, [r1]\n\
- pop {r3,r4}\n\
- mov r8, r3\n\
- mov r9, r4\n\
- pop {r4-r7}\n\
- pop {r0}\n\
- bx r0\n\
- .align 2, 0\n\
+ adds r5, 0x1\n\
+ cmp r5, 0x5\n\
+ ble _081085CA\n\
+ ldr r1, _0810862C @ =gAIScriptPtr\n\
+ ldr r0, [r1]\n\
+ adds r0, 0x2\n\
+ str r0, [r1]\n\
+ pop {r3,r4}\n\
+ mov r8, r3\n\
+ mov r9, r4\n\
+ pop {r4-r7}\n\
+ pop {r0}\n\
+ bx r0\n\
+ .align 2, 0\n\
_08108624: .4byte gUnknown_02024A6A\n\
_08108628: .4byte 0x02016800\n\
_0810862C: .4byte gAIScriptPtr\n\
- .syntax divided");
+ .syntax divided");
}
void BattleAICmd_unk_2D(void)
{
- unk_2016800.unk8 = unk_2016800.unk2;
- gAIScriptPtr += 1;
+ gAIThinkingSpace.unk8 = gAIThinkingSpace.unk2;
+ gAIScriptPtr += 1;
}
void BattleAICmd_unk_2E(void)
{
- unk_2016800.unk8 = gBattleMoves[unk_2016800.unk2].effect;
- gAIScriptPtr += 1;
+ gAIThinkingSpace.unk8 = gBattleMoves[gAIThinkingSpace.unk2].effect;
+ gAIScriptPtr += 1;
}
void BattleAICmd_get_ability(void)
{
u8 var;
-
- if(gAIScriptPtr[1] == 1)
+
+ if(gAIScriptPtr[1] == USER)
var = gUnknown_02024C07;
else
var = gUnknown_02024C08;
- if(battle_side_get_owner(var) == 0)
+
+ if(battle_side_get_owner(var) == TARGET)
{
- //register u8 unk asm("r1") = battle_get_per_side_status(var) & 1;
- s32 unk = battle_get_per_side_status(var) & 1;
-
+ u16 unk = battle_get_per_side_status(var) & 1;
+
if(unk_2016A00.unk20[unk] != 0)
{
- ((struct UnknownStruct2 *)((u8 *)&unk_2016A00 - 512))->unk8 = unk_2016A00.unk20[unk];
+ ((struct AI_ThinkingStruct *)((u8 *)&unk_2016A00 - 512))->unk8 = unk_2016A00.unk20[unk];
gAIScriptPtr += 2;
return;
}
- //_081086C8
- if(gBattleMons[var].ability == 0x17 || gBattleMons[var].ability == 0x2A || gBattleMons[var].ability == 0x47)
+
+ // abilities that prevent fleeing.
+ if(gBattleMons[var].ability == ABILITY_SHADOW_TAG || gBattleMons[var].ability == ABILITY_MAGNET_PULL || gBattleMons[var].ability == ABILITY_ARENA_TRAP)
{
- //_081086E4
- unk_2016800.unk8 = gBattleMons[var].ability;
+ gAIThinkingSpace.unk8 = gBattleMons[var].ability;
gAIScriptPtr += 2;
return;
}
- //_081086FC
- if(gBaseStats[gBattleMons[var].species].ability1 != 0)
+
+ if(gBaseStats[gBattleMons[var].species].ability1 != ABILITY_NONE)
{
- if(gBaseStats[gBattleMons[var].species].ability2 != 0)
+ if(gBaseStats[gBattleMons[var].species].ability2 != ABILITY_NONE)
{
+ // AI is guessing what ability?
if(Random() & 1)
{
- ((struct UnknownStruct2 *)((u8 *)&unk_2016A00 - 512))->unk8 = gBaseStats[gBattleMons[var].species].ability1;
+ ((struct AI_ThinkingStruct *)((u8 *)&unk_2016A00 - 0x200))->unk8 = gBaseStats[gBattleMons[var].species].ability1;
gAIScriptPtr += 2;
return;
}
- //_0810873C
else
{
- ((struct UnknownStruct2 *)((u8 *)&unk_2016A00 - 512))->unk8 = gBaseStats[gBattleMons[var].species].ability2;
+ ((struct AI_ThinkingStruct *)((u8 *)&unk_2016A00 - 0x200))->unk8 = gBaseStats[gBattleMons[var].species].ability2;
gAIScriptPtr += 2;
return;
}
}
- //_08108754
else
{
- ((struct UnknownStruct2 *)((u8 *)&unk_2016A00 - 512))->unk8 = gBaseStats[gBattleMons[var].species].ability1;
+ ((struct AI_ThinkingStruct *)((u8 *)&unk_2016A00 - 0x200))->unk8 = gBaseStats[gBattleMons[var].species].ability1; // it's definitely ability 1.
gAIScriptPtr += 2;
return;
}
}
- //_08108764
else
{
- ((struct UnknownStruct2 *)((u8 *)&unk_2016A00 - 512))->unk8 = gBaseStats[gBattleMons[var].species].ability2;
+ ((struct AI_ThinkingStruct *)((u8 *)&unk_2016A00 - 0x200))->unk8 = gBaseStats[gBattleMons[var].species].ability2; // AI cant actually reach this part since every mon has at least 1 ability.
gAIScriptPtr += 2;
return;
}
}
- //_08108774
- unk_2016800.unk8 = gBattleMons[var].ability;
- gAIScriptPtr += 2;
-}
-
-// this should probably be in battle.h after this file is fully decompiled.
-extern struct
-{
- u8 unknownStuff[0x16000];
- struct
+ else
{
- u8 filler0[0x1C];
- u8 unk1C;
- u8 filler1D[2];
- u8 unk1F;
- u8 filler16020[0x7E0];
- } unk_2016000;
- struct UnknownStruct2 unk_2016800;
-} ewram; //0x02000000
-
-#ifdef NONMATCHING
-void BattleAICmd_unk_30(void)
-{
- s32 loopCounter;
-
- gUnknown_02024DEC = 0;
- ewram.unk_2016000.unk1C = 0;
- ewram.unk_2016000.unk1F = 1;
- gUnknown_02024C68 = 0;
- gCritMultiplier = 1;
- ewram.unk_2016800.unk8 = 0;
-
- for(loopCounter = 0; loopCounter <= 3; loopCounter++)
- {
- gUnknown_02024BEC = 40;
- gUnknown_02024BE6 = gBattleMons[gUnknown_02024C07].moves[loopCounter];
-
- if (gUnknown_02024BE6)
- {
- move_effectiveness_something(gUnknown_02024BE6, gUnknown_02024C07, gUnknown_02024C08);
-
- // reduce by 1/3.
- if (gUnknown_02024BEC == 120)
- gUnknown_02024BEC = 80;
- if(gUnknown_02024BEC == 240)
- gUnknown_02024BEC = 160;
- if(gUnknown_02024BEC == 30)
- gUnknown_02024BEC = 20;
- if(gUnknown_02024BEC == 15)
- gUnknown_02024BEC = 10;
-
- if(gUnknown_02024C68 & 8)
- gUnknown_02024BEC = 0;
-
- if (ewram.unk_2016800.unk8 < gUnknown_02024BEC)
- ewram.unk_2016800.unk8 = gUnknown_02024BEC;
- }
- }
- gAIScriptPtr += 1;
+ // The AI knows its own ability.
+ gAIThinkingSpace.unk8 = gBattleMons[var].ability;
+ gAIScriptPtr += 2;
+ return;
+ }
}
-#else
-__attribute__((naked))
+
void BattleAICmd_unk_30(void)
{
- asm(".syntax unified\n\
- push {r4-r7,lr}\n\
- mov r7, r8\n\
- push {r7}\n\
- ldr r0, _0810885C @ =gUnknown_02024DEC\n\
- movs r2, 0\n\
- strh r2, [r0]\n\
- ldr r1, _08108860 @ =0x02000000\n\
- ldr r3, _08108864 @ =0x0001601c\n\
- adds r0, r1, r3\n\
- movs r4, 0\n\
- strb r2, [r0]\n\
- adds r3, 0x3\n\
- adds r0, r1, r3\n\
- movs r3, 0x1\n\
- strb r3, [r0]\n\
- ldr r0, _08108868 @ =gUnknown_02024C68\n\
- strb r2, [r0]\n\
- ldr r0, _0810886C @ =gCritMultiplier\n\
- strb r3, [r0]\n\
- movs r0, 0xB4\n\
- lsls r0, 9\n\
- adds r1, r0\n\
- str r4, [r1, 0x8]\n\
- movs r5, 0\n\
- ldr r4, _08108870 @ =gUnknown_02024BEC\n\
- ldr r7, _08108874 @ =gUnknown_02024BE6\n\
- ldr r3, _08108878 @ =gUnknown_02024A8C\n\
- mov r8, r3\n\
- ldr r6, _0810887C @ =gUnknown_02024C07\n\
-_081087DA:\n\
- movs r0, 0x28\n\
- str r0, [r4]\n\
- lsls r1, r5, 1\n\
- ldrb r2, [r6]\n\
- movs r0, 0x58\n\
- muls r0, r2\n\
- adds r1, r0\n\
- add r1, r8\n\
- ldrh r0, [r1]\n\
- strh r0, [r7]\n\
- lsls r0, 16\n\
- cmp r0, 0\n\
- beq _08108844\n\
- ldrh r0, [r7]\n\
- ldrb r1, [r6]\n\
- ldr r2, _08108880 @ =gUnknown_02024C08\n\
- ldrb r2, [r2]\n\
- bl move_effectiveness_something\n\
- ldr r0, [r4]\n\
- cmp r0, 0x78\n\
- bne _0810880A\n\
- movs r0, 0x50\n\
- str r0, [r4]\n\
-_0810880A:\n\
- ldr r0, [r4]\n\
- cmp r0, 0xF0\n\
- bne _08108814\n\
- movs r0, 0xA0\n\
- str r0, [r4]\n\
-_08108814:\n\
- ldr r0, [r4]\n\
- cmp r0, 0x1E\n\
- bne _0810881E\n\
- movs r0, 0x14\n\
- str r0, [r4]\n\
-_0810881E:\n\
- ldr r0, [r4]\n\
- cmp r0, 0xF\n\
- bne _08108828\n\
- movs r0, 0xA\n\
- str r0, [r4]\n\
-_08108828:\n\
- ldr r0, _08108868 @ =gUnknown_02024C68\n\
- ldrb r1, [r0]\n\
- movs r0, 0x8\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- beq _08108838\n\
- movs r0, 0\n\
- str r0, [r4]\n\
-_08108838:\n\
- ldr r2, _08108884 @ =0x02016800\n\
- ldr r0, [r2, 0x8]\n\
- ldr r1, [r4]\n\
- cmp r0, r1\n\
- bcs _08108844\n\
- str r1, [r2, 0x8]\n\
-_08108844:\n\
- adds r5, 0x1\n\
- cmp r5, 0x3\n\
- ble _081087DA\n\
- ldr r1, _08108888 @ =gAIScriptPtr\n\
- ldr r0, [r1]\n\
- adds r0, 0x1\n\
- str r0, [r1]\n\
- pop {r3}\n\
- mov r8, r3\n\
- pop {r4-r7}\n\
- pop {r0}\n\
- bx r0\n\
- .align 2, 0\n\
-_0810885C: .4byte gUnknown_02024DEC\n\
-_08108860: .4byte 0x02000000\n\
-_08108864: .4byte 0x0001601c\n\
-_08108868: .4byte gUnknown_02024C68\n\
-_0810886C: .4byte gCritMultiplier\n\
-_08108870: .4byte gUnknown_02024BEC\n\
-_08108874: .4byte gUnknown_02024BE6\n\
-_08108878: .4byte gUnknown_02024A8C\n\
-_0810887C: .4byte gUnknown_02024C07\n\
-_08108880: .4byte gUnknown_02024C08\n\
-_08108884: .4byte 0x02016800\n\
-_08108888: .4byte gAIScriptPtr\n\
- .syntax divided\n");
+ s32 i;
+ struct AI_ThinkingStruct *ai;
+ struct AI_ThinkingStruct *ai2;
+
+ gUnknown_02024DEC = 0;
+ battle_2000000.unk.unk1 = 0;
+ battle_2000000.unk.unk4 = 1;
+ gUnknown_02024C68 = 0;
+ gCritMultiplier = 1;
+ ai = &battle_2000000.ai;
+ ai->unk8 = 0;
+
+ for(i = 0; i < 4; i++)
+ {
+ gUnknown_02024BEC = 40;
+ gUnknown_02024BE6 = gBattleMons[gUnknown_02024C07].moves[i];
+
+ if (gUnknown_02024BE6)
+ {
+ move_effectiveness_something(gUnknown_02024BE6, gUnknown_02024C07, gUnknown_02024C08);
+
+ // reduce by 1/3.
+ if (gUnknown_02024BEC == 120)
+ gUnknown_02024BEC = 80;
+ if(gUnknown_02024BEC == 240)
+ gUnknown_02024BEC = 160;
+ if(gUnknown_02024BEC == 30)
+ gUnknown_02024BEC = 20;
+ if(gUnknown_02024BEC == 15)
+ gUnknown_02024BEC = 10;
+
+ if(gUnknown_02024C68 & 8)
+ gUnknown_02024BEC = 0;
+
+ ai2 = &battle_2000000.ai;
+ if (ai2->unk8 < gUnknown_02024BEC)
+ ai2->unk8 = gUnknown_02024BEC;
+ }
+ }
+ gAIScriptPtr += 1;
}
-#endif
// same function as above but no for loop.
__attribute__((naked))
void BattleAICmd_if_damage_bonus(void)
{
- asm(".syntax unified\n\
- push {r4,r5,lr}\n\
- ldr r0, _08108928 @ =gUnknown_02024DEC\n\
- movs r1, 0\n\
- strh r1, [r0]\n\
- ldr r2, _0810892C @ =0x02000000\n\
- ldr r3, _08108930 @ =0x0001601c\n\
- adds r0, r2, r3\n\
- strb r1, [r0]\n\
- adds r3, 0x3\n\
- adds r0, r2, r3\n\
- movs r3, 0x1\n\
- strb r3, [r0]\n\
- ldr r5, _08108934 @ =gUnknown_02024C68\n\
- strb r1, [r5]\n\
- ldr r0, _08108938 @ =gCritMultiplier\n\
- strb r3, [r0]\n\
- ldr r4, _0810893C @ =gUnknown_02024BEC\n\
- movs r0, 0x28\n\
- str r0, [r4]\n\
- ldr r1, _08108940 @ =gUnknown_02024BE6\n\
- movs r0, 0xB4\n\
- lsls r0, 9\n\
- adds r2, r0\n\
- ldrh r0, [r2, 0x2]\n\
- strh r0, [r1]\n\
- ldrh r0, [r1]\n\
- ldr r1, _08108944 @ =gUnknown_02024C07\n\
- ldrb r1, [r1]\n\
- ldr r2, _08108948 @ =gUnknown_02024C08\n\
- ldrb r2, [r2]\n\
- bl move_effectiveness_something\n\
- ldr r0, [r4]\n\
- cmp r0, 0x78\n\
- bne _081088D6\n\
- movs r0, 0x50\n\
- str r0, [r4]\n\
+ asm(".syntax unified\n\
+ push {r4,r5,lr}\n\
+ ldr r0, _08108928 @ =gUnknown_02024DEC\n\
+ movs r1, 0\n\
+ strh r1, [r0]\n\
+ ldr r2, _0810892C @ =0x02000000\n\
+ ldr r3, _08108930 @ =0x0001601c\n\
+ adds r0, r2, r3\n\
+ strb r1, [r0]\n\
+ adds r3, 0x3\n\
+ adds r0, r2, r3\n\
+ movs r3, 0x1\n\
+ strb r3, [r0]\n\
+ ldr r5, _08108934 @ =gUnknown_02024C68\n\
+ strb r1, [r5]\n\
+ ldr r0, _08108938 @ =gCritMultiplier\n\
+ strb r3, [r0]\n\
+ ldr r4, _0810893C @ =gUnknown_02024BEC\n\
+ movs r0, 0x28\n\
+ str r0, [r4]\n\
+ ldr r1, _08108940 @ =gUnknown_02024BE6\n\
+ movs r0, 0xB4\n\
+ lsls r0, 9\n\
+ adds r2, r0\n\
+ ldrh r0, [r2, 0x2]\n\
+ strh r0, [r1]\n\
+ ldrh r0, [r1]\n\
+ ldr r1, _08108944 @ =gUnknown_02024C07\n\
+ ldrb r1, [r1]\n\
+ ldr r2, _08108948 @ =gUnknown_02024C08\n\
+ ldrb r2, [r2]\n\
+ bl move_effectiveness_something\n\
+ ldr r0, [r4]\n\
+ cmp r0, 0x78\n\
+ bne _081088D6\n\
+ movs r0, 0x50\n\
+ str r0, [r4]\n\
_081088D6:\n\
- ldr r0, [r4]\n\
- cmp r0, 0xF0\n\
- bne _081088E0\n\
- movs r0, 0xA0\n\
- str r0, [r4]\n\
+ ldr r0, [r4]\n\
+ cmp r0, 0xF0\n\
+ bne _081088E0\n\
+ movs r0, 0xA0\n\
+ str r0, [r4]\n\
_081088E0:\n\
- ldr r0, [r4]\n\
- cmp r0, 0x1E\n\
- bne _081088EA\n\
- movs r0, 0x14\n\
- str r0, [r4]\n\
+ ldr r0, [r4]\n\
+ cmp r0, 0x1E\n\
+ bne _081088EA\n\
+ movs r0, 0x14\n\
+ str r0, [r4]\n\
_081088EA:\n\
- ldr r0, [r4]\n\
- cmp r0, 0xF\n\
- bne _081088F4\n\
- movs r0, 0xA\n\
- str r0, [r4]\n\
+ ldr r0, [r4]\n\
+ cmp r0, 0xF\n\
+ bne _081088F4\n\
+ movs r0, 0xA\n\
+ str r0, [r4]\n\
_081088F4:\n\
- ldrb r1, [r5]\n\
- movs r0, 0x8\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- beq _08108902\n\
- movs r0, 0\n\
- str r0, [r4]\n\
+ ldrb r1, [r5]\n\
+ movs r0, 0x8\n\
+ ands r0, r1\n\
+ cmp r0, 0\n\
+ beq _08108902\n\
+ movs r0, 0\n\
+ str r0, [r4]\n\
_08108902:\n\
- ldrb r0, [r4]\n\
- ldr r3, _0810894C @ =gAIScriptPtr\n\
- ldr r2, [r3]\n\
- ldrb r1, [r2, 0x1]\n\
- cmp r0, r1\n\
- bne _08108950\n\
- ldrb r1, [r2, 0x2]\n\
- ldrb r0, [r2, 0x3]\n\
- lsls r0, 8\n\
- orrs r1, r0\n\
- ldrb r0, [r2, 0x4]\n\
- lsls r0, 16\n\
- orrs r1, r0\n\
- ldrb r0, [r2, 0x5]\n\
- lsls r0, 24\n\
- orrs r1, r0\n\
- str r1, [r3]\n\
- b _08108954\n\
- .align 2, 0\n\
+ ldrb r0, [r4]\n\
+ ldr r3, _0810894C @ =gAIScriptPtr\n\
+ ldr r2, [r3]\n\
+ ldrb r1, [r2, 0x1]\n\
+ cmp r0, r1\n\
+ bne _08108950\n\
+ ldrb r1, [r2, 0x2]\n\
+ ldrb r0, [r2, 0x3]\n\
+ lsls r0, 8\n\
+ orrs r1, r0\n\
+ ldrb r0, [r2, 0x4]\n\
+ lsls r0, 16\n\
+ orrs r1, r0\n\
+ ldrb r0, [r2, 0x5]\n\
+ lsls r0, 24\n\
+ orrs r1, r0\n\
+ str r1, [r3]\n\
+ b _08108954\n\
+ .align 2, 0\n\
_08108928: .4byte gUnknown_02024DEC\n\
_0810892C: .4byte 0x02000000\n\
_08108930: .4byte 0x0001601c\n\
@@ -1579,13 +1389,13 @@ _08108944: .4byte gUnknown_02024C07\n\
_08108948: .4byte gUnknown_02024C08\n\
_0810894C: .4byte gAIScriptPtr\n\
_08108950:\n\
- adds r0, r2, 0x6\n\
- str r0, [r3]\n\
+ adds r0, r2, 0x6\n\
+ str r0, [r3]\n\
_08108954:\n\
- pop {r4,r5}\n\
- pop {r0}\n\
- bx r0\n\
- .syntax divided\n");
+ pop {r4,r5}\n\
+ pop {r0}\n\
+ bx r0\n\
+ .syntax divided\n");
}
void BattleAICmd_unk_32(void)
diff --git a/src/battle_anim_80A7E7C.c b/src/battle_anim_80A7E7C.c
new file mode 100644
index 000000000..2c7a10be5
--- /dev/null
+++ b/src/battle_anim_80A7E7C.c
@@ -0,0 +1,777 @@
+#include "global.h"
+#include "task.h"
+#include "sprite.h"
+#include "trig.h"
+
+#define TASK gTasks[task]
+#define SPRITE gSprites[TASK.data[0]]
+
+extern s16 gBattleAnimArgs[8];
+
+extern u8 gUnknown_02024BE0[];
+extern s32 gUnknown_0202F7B8;
+extern u16 gUnknown_0202F7BC;
+extern u8 gUnknown_0202F7C8;
+extern u8 gUnknown_0202F7C9;
+
+extern u8 obj_id_for_side_relative_to_move(u8 side);
+extern void move_anim_task_del(u8 task);
+extern bool8 b_side_obj__get_some_boolean(u8 side);
+extern u8 battle_get_side_with_given_state(u8 state);
+extern u8 battle_side_get_owner(u8 side);
+extern void oamt_set_x3A_32(struct Sprite *sprite, void (*callback)(struct Sprite*));
+extern void sub_8078458(struct Sprite *sprite);
+extern void move_anim_8072740(struct Sprite *sprite);
+extern void sub_8078A5C(struct Sprite *sprite);
+extern void sub_80784A8(struct Sprite *sprite);
+extern void sub_8078E70(u8 sprite, u8);
+extern void obj_id_set_rotscale(u8 sprite, int, int, u16);
+extern void sub_8078F40(u8 sprite);
+extern bool8 sub_8076BE0();
+extern void sub_8078F9C(u8 sprite);
+
+static void sub_80A7EF0(u8 task);
+static void sub_80A808C(u8 task);
+static void sub_80A81D8(u8 task);
+static void sub_80A8374(u8 task);
+static void sub_80A8488(u8 task);
+static void sub_80A85A4(struct Sprite *sprite);
+void sub_80A8614(struct Sprite* sprite);
+static void sub_80A86F4(struct Sprite *sprite);
+static void sub_80A88F0(struct Sprite *sprite);
+static void sub_80A89B4(u8 task);
+static void sub_80A8A18(u8 task);
+static void sub_80A8C0C(u8 task);
+static void sub_80A8D8C(u8 task);
+void sub_80A8FD8(u8 task);
+static void sub_80A913C(u8 taskId);
+
+void sub_80A7E7C(u8 task) {
+ u8 sprite;
+ sprite = obj_id_for_side_relative_to_move(gBattleAnimArgs[0]);
+ if (sprite == 0xff) {
+ move_anim_task_del(task);
+ return;
+ }
+ gSprites[sprite].pos2.x = gBattleAnimArgs[1];
+ gSprites[sprite].pos2.y = gBattleAnimArgs[2];
+ TASK.data[0] = sprite;
+ TASK.data[1] = gBattleAnimArgs[3];
+ TASK.data[2] = gBattleAnimArgs[4];
+ TASK.data[3] = gBattleAnimArgs[4];
+ TASK.data[4] = gBattleAnimArgs[1];
+ TASK.data[5] = gBattleAnimArgs[2];
+ TASK.func = sub_80A7EF0;
+ sub_80A7EF0(task);
+}
+
+static void sub_80A7EF0(u8 task) {
+ if (TASK.data[3] == 0) {
+ if (SPRITE.pos2.x == 0) {
+ SPRITE.pos2.x = TASK.data[4];
+ } else {
+ SPRITE.pos2.x = 0;
+ }
+ if (SPRITE.pos2.y == 0) {
+ SPRITE.pos2.y = TASK.data[5];
+ } else {
+ SPRITE.pos2.y = 0;
+ }
+ TASK.data[3] = TASK.data[2];
+ if (--TASK.data[1] == 0) {
+ SPRITE.pos2.x = 0;
+ SPRITE.pos2.y = 0;
+ move_anim_task_del(task);
+ return;
+ }
+ } else {
+ TASK.data[3]--;
+ }
+}
+
+
+void sub_80A7FA0(u8 task) {
+ u8 sprite;
+ bool8 r6;
+ u8 side;
+ r6 = 0;
+ if (gBattleAnimArgs[0] < 4) {
+ sprite = obj_id_for_side_relative_to_move(gBattleAnimArgs[0]);
+ if (sprite == 0xff) {
+ move_anim_task_del(task);
+ return;
+ }
+ } else if (gBattleAnimArgs[0] != 8) {
+ switch (gBattleAnimArgs[0]) {
+ case 4:
+ side = battle_get_side_with_given_state(0);
+ break;
+ case 5:
+ side = battle_get_side_with_given_state(2);
+ break;
+ case 6:
+ side = battle_get_side_with_given_state(1);
+ break;
+ case 7:
+ default:
+ side = battle_get_side_with_given_state(3);
+ break;
+ }
+ if (b_side_obj__get_some_boolean(side) == FALSE) {
+ r6 = 1;
+ }
+ sprite = gUnknown_02024BE0[side];
+ } else {
+ sprite = gUnknown_02024BE0[gUnknown_0202F7C8];
+ }
+ if (r6) {
+ move_anim_task_del(task);
+ return;
+ }
+ gSprites[sprite].pos2.x = gBattleAnimArgs[1];
+ gSprites[sprite].pos2.y = gBattleAnimArgs[2];
+ TASK.data[0] = sprite;
+ TASK.data[1] = gBattleAnimArgs[3];
+ TASK.data[2] = gBattleAnimArgs[4];
+ TASK.data[3] = gBattleAnimArgs[4];
+ TASK.data[4] = gBattleAnimArgs[1];
+ TASK.data[5] = gBattleAnimArgs[2];
+ TASK.func = sub_80A808C;
+ sub_80A808C(task);
+}
+
+static void sub_80A808C(u8 task) {
+ if (TASK.data[3] == 0) {
+ if (SPRITE.pos2.x == TASK.data[4]) {
+ SPRITE.pos2.x = -TASK.data[4];
+ } else {
+ SPRITE.pos2.x = TASK.data[4];
+ }
+ if (SPRITE.pos2.y == TASK.data[5]) {
+ SPRITE.pos2.y = -TASK.data[5];
+ } else {
+ SPRITE.pos2.y = TASK.data[5];
+ }
+ TASK.data[3] = TASK.data[2];
+ if (--TASK.data[1] == 0) {
+ SPRITE.pos2.x = 0;
+ SPRITE.pos2.y = 0;
+ move_anim_task_del(task);
+ return;
+ }
+ } else {
+ TASK.data[3]--;
+ }
+}
+
+void sub_80A8154(u8 task) {
+ u8 sprite;
+ sprite = obj_id_for_side_relative_to_move(gBattleAnimArgs[0]);
+ if (sprite == 0xff) {
+ move_anim_task_del(task);
+ return;
+ }
+ gSprites[sprite].pos2.x += gBattleAnimArgs[1];
+ gSprites[sprite].pos2.y += gBattleAnimArgs[2];
+ TASK.data[0] = sprite;
+ TASK.data[1] = 0;
+ TASK.data[2] = gBattleAnimArgs[3];
+ TASK.data[3] = 0;
+ TASK.data[4] = gBattleAnimArgs[4];
+ TASK.data[5] = gBattleAnimArgs[1] * 2;
+ TASK.data[6] = gBattleAnimArgs[2] * 2;
+ TASK.func = sub_80A81D8;
+ sub_80A81D8(task);
+}
+
+static void sub_80A81D8(u8 task) {
+ if (TASK.data[3] == 0) {
+ if (TASK.data[1] & 1) {
+ SPRITE.pos2.x += TASK.data[5];
+ SPRITE.pos2.y += TASK.data[6];
+ } else {
+ SPRITE.pos2.x -= TASK.data[5];
+ SPRITE.pos2.y -= TASK.data[6];
+ }
+ TASK.data[3] = TASK.data[4];
+ if (++TASK.data[1] >= TASK.data[2]) {
+ if (TASK.data[1] & 1) {
+ SPRITE.pos2.x += TASK.data[5] / 2;
+ SPRITE.pos2.y += TASK.data[6] / 2;
+ } else {
+ SPRITE.pos2.x -= TASK.data[5] / 2;
+ SPRITE.pos2.y -= TASK.data[6] / 2;
+ }
+ move_anim_task_del(task);
+ return;
+ }
+ } else {
+ TASK.data[3]--;
+ }
+}
+
+void sub_80A8314(u8 task) {
+ u8 sprite = obj_id_for_side_relative_to_move(gBattleAnimArgs[0]);
+ gSprites[sprite].pos2.x = gBattleAnimArgs[1];
+ TASK.data[0] = sprite;
+ TASK.data[1] = gBattleAnimArgs[1];
+ TASK.data[2] = gBattleAnimArgs[2];
+ TASK.data[3] = gBattleAnimArgs[3];
+ TASK.data[4] = gBattleAnimArgs[4];
+ TASK.func = sub_80A8374;
+ sub_80A8374(task);
+}
+
+static void sub_80A8374(u8 task) {
+ s16 x;
+ u8 sprite;
+ sprite = TASK.data[0];
+ x = TASK.data[1];
+ if (TASK.data[2] == TASK.data[8]++) {
+ TASK.data[8] = 0;
+ if (gSprites[sprite].pos2.x == x) {
+ x = -x;
+ }
+ gSprites[sprite].pos2.x += x;
+ }
+ TASK.data[1] = x;
+ TASK.data[9] += TASK.data[3];
+ gSprites[sprite].pos2.y = TASK.data[9] >> 8;
+ if (--TASK.data[4] == 0) {
+ move_anim_task_del(task);
+ return;
+ }
+}
+
+void sub_80A8408(u8 task) {
+ u8 i;
+ u8 sprite;
+ u8 v1;
+ v1 = 1;
+ sprite = obj_id_for_side_relative_to_move(gBattleAnimArgs[0]);
+ if (gBattleAnimArgs[4] > 5) {
+ gBattleAnimArgs[4] = 5;
+ }
+ for (i = 0; i < gBattleAnimArgs[4]; i++) {
+ v1 <<= 1;
+ }
+ TASK.data[0] = sprite;
+ TASK.data[1] = gBattleAnimArgs[1];
+ TASK.data[2] = gBattleAnimArgs[2];
+ TASK.data[3] = gBattleAnimArgs[3];
+ TASK.data[4] = v1;
+ TASK.func = sub_80A8488;
+ sub_80A8488(task);
+}
+
+static void sub_80A8488(u8 task) {
+ u8 sprite;
+ sprite = TASK.data[0];
+ gSprites[sprite].pos2.x = Sin(TASK.data[5], TASK.data[1]);
+ gSprites[sprite].pos2.y = -Cos(TASK.data[5], TASK.data[2]);
+ gSprites[sprite].pos2.y += TASK.data[2];
+ TASK.data[5] += TASK.data[4];
+ TASK.data[5] &= 0xff;
+ if (TASK.data[5] == 0) {
+ TASK.data[3]--;
+ }
+ if (TASK.data[3] == 0) {
+ gSprites[sprite].pos2.x = 0;
+ gSprites[sprite].pos2.y = 0;
+ move_anim_task_del(task);
+ return;
+ }
+}
+
+void sub_80A8500(u8 task) {
+ if (battle_side_get_owner(gUnknown_0202F7C8)) {
+ gBattleAnimArgs[1] = -gBattleAnimArgs[1];
+ }
+ sub_80A8408(task);
+}
+
+void sub_80A8530(struct Sprite *sprite) {
+ sprite->invisible = TRUE;
+ if (battle_side_get_owner(gUnknown_0202F7C8)) {
+ sprite->data1 = -gBattleAnimArgs[1];
+ } else {
+ sprite->data1 = gBattleAnimArgs[1];
+ }
+ sprite->data0 = gBattleAnimArgs[0];
+ sprite->data2 = 0;
+ sprite->data3 = gUnknown_02024BE0[gUnknown_0202F7C8];
+ sprite->data4 = gBattleAnimArgs[0];
+ oamt_set_x3A_32(sprite, sub_80A85A4);
+ sprite->callback = sub_8078458;
+}
+
+static void sub_80A85A4(struct Sprite *sprite) {
+ sprite->data0 = sprite->data4;
+ sprite->data1 = -sprite->data1;
+ sprite->callback = sub_8078458;
+ oamt_set_x3A_32(sprite, move_anim_8072740);
+}
+
+void sub_80A85C8(struct Sprite *sprite) {
+ u8 spriteId;
+ sprite->invisible = TRUE;
+ spriteId = obj_id_for_side_relative_to_move(gBattleAnimArgs[2]);
+ sprite->data0 = gBattleAnimArgs[0];
+ sprite->data1 = 0;
+ sprite->data2 = gBattleAnimArgs[1];
+ sprite->data3 = spriteId;
+ sprite->data4 = gBattleAnimArgs[0];
+ oamt_set_x3A_32(sprite, sub_80A8614);
+ sprite->callback = sub_8078458;
+}
+
+void sub_80A8614(struct Sprite *sprite) {
+ sprite->data0 = sprite->data4;
+ sprite->data2 = -sprite->data2;
+ sprite->callback = sub_8078458;
+ oamt_set_x3A_32(sprite, move_anim_8072740);
+}
+
+void sub_80A8638(struct Sprite *sprite) {
+ int something;
+ int spriteId;
+ if (!gBattleAnimArgs[0]) {
+ spriteId = gUnknown_02024BE0[gUnknown_0202F7C8];
+ } else {
+ spriteId = gUnknown_02024BE0[gUnknown_0202F7C9];
+ }
+ sprite->data0 = gBattleAnimArgs[2];
+ sprite->data1 = gSprites[spriteId].pos1.x + gSprites[spriteId].pos2.x;
+ sprite->data2 = gSprites[spriteId].pos1.x;
+ sprite->data3 = gSprites[spriteId].pos1.y + gSprites[spriteId].pos2.y;
+ sprite->data4 = gSprites[spriteId].pos1.y;
+ something = 0;
+ sub_8078A5C(sprite);
+ sprite->data3 = something;
+ sprite->data4 = something;
+ sprite->data5 = gSprites[spriteId].pos2.x;
+ sprite->data6 = gSprites[spriteId].pos2.y;
+ sprite->invisible = TRUE;
+ if (gBattleAnimArgs[1] == 1) {
+ sprite->data2 = something;
+ } else if (gBattleAnimArgs[1] == 2) {
+ sprite->data1 = something;
+ }
+ sprite->data7 = gBattleAnimArgs[1];
+ sprite->data7 |= spriteId << 8;
+ sprite->callback = sub_80A86F4;
+}
+
+static void sub_80A86F4(struct Sprite *sprite) {
+ s8 spriteId;
+ u8 lo;
+ struct Sprite *sprite2;
+ lo = sprite->data7 & 0xff;
+ spriteId = sprite->data7 >> 8;
+ sprite2 = &gSprites[spriteId];
+ if (sprite->data0 == 0) {
+ if (lo < 2) {
+ sprite2->pos2.x = 0;
+ }
+ if (lo == 2 || lo == 0) {
+ sprite2->pos2.y = 0;
+ }
+ move_anim_8072740(sprite);
+ } else {
+ sprite->data0--;
+ sprite->data3 += sprite->data1;
+ sprite->data4 += sprite->data2;
+ sprite2->pos2.x = (s8)(sprite->data3 >> 8) + sprite->data5;
+ sprite2->pos2.y = (s8)(sprite->data4 >> 8) + sprite->data6;
+ }
+}
+
+void sub_80A8764(struct Sprite *sprite) {
+ u8 v1;
+ u8 spriteId;
+ if (!gBattleAnimArgs[0]) {
+ v1 = gUnknown_0202F7C8;
+ } else {
+ v1 = gUnknown_0202F7C9;
+ }
+ spriteId = gUnknown_02024BE0[v1];
+ if (battle_side_get_owner(v1)) {
+ gBattleAnimArgs[1] = -gBattleAnimArgs[1];
+ if (gBattleAnimArgs[3] == 1) {
+ gBattleAnimArgs[2] = -gBattleAnimArgs[2];
+ }
+ }
+ sprite->data0 = gBattleAnimArgs[4];
+ sprite->data1 = gSprites[spriteId].pos1.x;
+ sprite->data2 = gSprites[spriteId].pos1.x + gBattleAnimArgs[1];
+ sprite->data3 = gSprites[spriteId].pos1.y;
+ sprite->data4 = gSprites[spriteId].pos1.y + gBattleAnimArgs[2];
+ sub_8078A5C(sprite);
+ sprite->data3 = 0;
+ sprite->data4 = 0;
+ sprite->data5 = spriteId;
+ sprite->invisible = TRUE;
+ oamt_set_x3A_32(sprite, move_anim_8072740);
+ sprite->callback = sub_80784A8;
+}
+
+void sub_80A8818(struct Sprite *sprite) {
+ u8 spriteId;
+ u8 v1;
+ sprite->invisible = TRUE;
+ if (!gBattleAnimArgs[0]) {
+ v1 = gUnknown_0202F7C8;
+ } else {
+ v1 = gUnknown_0202F7C9;
+ }
+ spriteId = gUnknown_02024BE0[v1];
+ if (battle_side_get_owner(v1)) {
+ gBattleAnimArgs[1] = -gBattleAnimArgs[1];
+ if (gBattleAnimArgs[3] == 1) {
+ gBattleAnimArgs[2] = -gBattleAnimArgs[2];
+ }
+ }
+ sprite->data0 = gBattleAnimArgs[4];
+ sprite->data1 = gSprites[spriteId].pos1.x + gSprites[spriteId].pos2.x;
+ sprite->data2 = sprite->data1 + gBattleAnimArgs[1];
+ sprite->data3 = gSprites[spriteId].pos1.y + gSprites[spriteId].pos2.y;
+ sprite->data4 = sprite->data3 + gBattleAnimArgs[2];
+ sub_8078A5C(sprite);
+ sprite->data3 = gSprites[spriteId].pos2.x << 8;
+ sprite->data4 = gSprites[spriteId].pos2.y << 8;
+ sprite->data5 = spriteId;
+ sprite->data6 = gBattleAnimArgs[5];
+ if (!gBattleAnimArgs[5]) {
+ oamt_set_x3A_32(sprite, move_anim_8072740);
+ } else {
+ oamt_set_x3A_32(sprite, sub_80A88F0);
+ }
+ sprite->callback = sub_80784A8;
+}
+
+
+static void sub_80A88F0(struct Sprite *sprite) {
+ gSprites[sprite->data5].pos2.x = 0;
+ gSprites[sprite->data5].pos2.y = 0;
+ move_anim_8072740(sprite);
+}
+
+void sub_80A8920(u8 task) {
+ s16 r7;
+ r7 = 0x8000 / gBattleAnimArgs[3];
+ if (battle_side_get_owner(gUnknown_0202F7C8)) {
+ gBattleAnimArgs[1] = -gBattleAnimArgs[1];
+ gBattleAnimArgs[5] = -gBattleAnimArgs[5];
+ }
+ TASK.data[0] = obj_id_for_side_relative_to_move(gBattleAnimArgs[0]);
+ TASK.data[1] = (gBattleAnimArgs[1] << 8) / gBattleAnimArgs[3];
+ TASK.data[2] = gBattleAnimArgs[2];
+ TASK.data[3] = gBattleAnimArgs[3];
+ TASK.data[4] = gBattleAnimArgs[4];
+ TASK.data[5] = (gBattleAnimArgs[5] << 8) / gBattleAnimArgs[6];
+ TASK.data[6] = gBattleAnimArgs[6];
+ TASK.data[7] = r7;
+ TASK.func = sub_80A89B4;
+}
+
+static void sub_80A89B4(u8 task) {
+ u8 spriteId;
+ spriteId = TASK.data[0];
+ TASK.data[11] += TASK.data[1];
+ gSprites[spriteId].pos2.x = TASK.data[11] >> 8;
+ gSprites[spriteId].pos2.y = Sin((u8)(TASK.data[10] >> 8), TASK.data[2]);
+ TASK.data[10] += TASK.data[7];
+ if (--TASK.data[3] == 0) {
+ TASK.func = sub_80A8A18;
+ }
+}
+
+static void sub_80A8A18(u8 task) {
+ u8 spriteId;
+ if (TASK.data[4] > 0) {
+ TASK.data[4]--;
+ } else {
+ spriteId = TASK.data[0];
+ TASK.data[12] += TASK.data[5];
+ gSprites[spriteId].pos2.x = (TASK.data[12] >> 8) + (TASK.data[11] >> 8);
+ if (--TASK.data[6] == 0) {
+ move_anim_task_del(task);
+ return;
+ }
+ }
+}
+
+static void sub_80A8B3C(u8 task);
+
+void sub_80A8A80(u8 task) {
+ u8 spriteId;
+ switch (gBattleAnimArgs[0]) {
+ case 0:
+ case 1:
+ spriteId = obj_id_for_side_relative_to_move(gBattleAnimArgs[0]);
+ break;
+ case 2:
+ if (!b_side_obj__get_some_boolean(gUnknown_0202F7C8 ^ 2)) {
+ move_anim_task_del(task);
+ return;
+ }
+ spriteId = gUnknown_02024BE0[gUnknown_0202F7C8 ^ 2];
+ break;
+ case 3:
+ if (!b_side_obj__get_some_boolean(gUnknown_0202F7C9 ^ 2)) {
+ move_anim_task_del(task);
+ return;
+ }
+ spriteId = gUnknown_02024BE0[gUnknown_0202F7C9 ^ 2];
+ break;
+ default:
+ move_anim_task_del(task);
+ return;
+ }
+ TASK.data[0] = spriteId;
+ if (battle_side_get_owner(gUnknown_0202F7C9)) {
+ TASK.data[1] = gBattleAnimArgs[1];
+ } else {
+ TASK.data[1] = -gBattleAnimArgs[1];
+ }
+ TASK.func = sub_80A8B3C;
+}
+
+static void sub_80A8B3C(u8 task) {
+ u8 spriteId = TASK.data[0];
+ gSprites[spriteId].pos2.x += TASK.data[1];
+ if (gSprites[spriteId].pos2.x + gSprites[spriteId].pos1.x + 0x20 > 0x130u) {
+ move_anim_task_del(task);
+ return;
+ }
+}
+
+void sub_80A8B88(u8 task) {
+ u8 spriteId;
+ if (battle_side_get_owner(gUnknown_0202F7C8)) {
+ gBattleAnimArgs[1] = -gBattleAnimArgs[1];
+ }
+ spriteId = obj_id_for_side_relative_to_move(gBattleAnimArgs[4]);
+ TASK.data[0] = gBattleAnimArgs[0];
+ TASK.data[1] = gBattleAnimArgs[1];
+ TASK.data[2] = gBattleAnimArgs[2];
+ TASK.data[3] = gBattleAnimArgs[3];
+ TASK.data[4] = spriteId;
+ if (gBattleAnimArgs[4] == 0) {
+ TASK.data[5] = gUnknown_0202F7C8;
+ } else {
+ TASK.data[5] = gUnknown_0202F7C9;
+ }
+ TASK.data[12] = 1;
+ TASK.func = sub_80A8C0C;
+}
+
+static void sub_80A8C0C(u8 task) {
+ s16 y;
+ u8 spriteId;
+ int index;
+ u16 val;
+ spriteId = TASK.data[4];
+ val = TASK.data[10] + TASK.data[2];
+ TASK.data[10] = val;
+ index = val >> 8;
+ y = Sin(index, TASK.data[1]);
+ if (TASK.data[0] == 0) {
+ gSprites[spriteId].pos2.x = y;
+ } else {
+ if (battle_side_get_owner(TASK.data[5]) == 0) {
+ gSprites[spriteId].pos2.y = (y >= 0) ? y : -y;
+ } else {
+ gSprites[spriteId].pos2.y = (y >= 0) ? -y : y;
+ }
+ }
+ if (((index >= 0x80u) && (TASK.data[11] == 0) && (TASK.data[12] == 1))
+ || ((index < 0x7fu) && (TASK.data[11] == 1) && (TASK.data[12] == 0))) {
+ TASK.data[11] ^= 1;
+ TASK.data[12] ^= 1;
+ if (--TASK.data[3] == 0) {
+ gSprites[spriteId].pos2.x = 0;
+ gSprites[spriteId].pos2.y = 0;
+ move_anim_task_del(task);
+ return;
+ }
+ }
+}
+
+void sub_80A8D34(u8 task) {
+ u8 spriteId;
+ spriteId = obj_id_for_side_relative_to_move(gBattleAnimArgs[3]);
+ sub_8078E70(spriteId, gBattleAnimArgs[4]);
+ TASK.data[0] = gBattleAnimArgs[0];
+ TASK.data[1] = gBattleAnimArgs[1];
+ TASK.data[2] = gBattleAnimArgs[2];
+ TASK.data[3] = gBattleAnimArgs[2];
+ TASK.data[4] = spriteId;
+ TASK.data[10] = 0x100;
+ TASK.data[11] = 0x100;
+ TASK.func = sub_80A8D8C;
+}
+
+static void sub_80A8D8C(u8 task) {
+ u8 spriteId;
+ TASK.data[10] += TASK.data[0];
+ TASK.data[11] += TASK.data[1];
+ spriteId = TASK.data[4];
+ obj_id_set_rotscale(spriteId, TASK.data[10], TASK.data[11], 0);
+ if (--TASK.data[2] == 0) {
+ if (TASK.data[3] > 0) {
+ TASK.data[0] = -TASK.data[0];
+ TASK.data[1] = -TASK.data[1];
+ TASK.data[2] = TASK.data[3];
+ TASK.data[3] = 0;
+ } else {
+ sub_8078F40(spriteId);
+ move_anim_task_del(task);
+ return;
+ }
+ }
+}
+
+void sub_80A8E04(u8 task) {
+ u8 spriteId;
+ spriteId = obj_id_for_side_relative_to_move(gBattleAnimArgs[2]);
+ sub_8078E70(spriteId, 0);
+ TASK.data[1] = 0;
+ TASK.data[2] = gBattleAnimArgs[0];
+ if (gBattleAnimArgs[3] != 1) {
+ TASK.data[3] = 0;
+ } else {
+ TASK.data[3] = gBattleAnimArgs[0] * gBattleAnimArgs[1];
+ }
+ TASK.data[4] = gBattleAnimArgs[1];
+ TASK.data[5] = spriteId;
+ TASK.data[6] = gBattleAnimArgs[3];
+ if (sub_8076BE0()) {
+ TASK.data[7] = 1;
+ } else {
+ if (gBattleAnimArgs[2] == 0) {
+ TASK.data[7] = !battle_side_get_owner(gUnknown_0202F7C8);
+ } else {
+ TASK.data[7] = !battle_side_get_owner(gUnknown_0202F7C9);
+ }
+ }
+ if (TASK.data[7]) {
+ if (!sub_8076BE0()) {
+ TASK.data[3] *= -1;
+ TASK.data[4] *= -1;
+ }
+ }
+ TASK.func = sub_80A8FD8;
+}
+
+void sub_80A8EFC(u8 task) {
+ u8 spriteId;
+ spriteId = obj_id_for_side_relative_to_move(gBattleAnimArgs[2]);
+ sub_8078E70(spriteId, 0);
+ TASK.data[1] = 0;
+ TASK.data[2] = gBattleAnimArgs[0];
+ if (gBattleAnimArgs[2] == 0) {
+ if (battle_side_get_owner(gUnknown_0202F7C8)) {
+ gBattleAnimArgs[1] = -gBattleAnimArgs[1];
+ }
+ } else {
+ if (battle_side_get_owner(gUnknown_0202F7C9)) {
+ gBattleAnimArgs[1] = -gBattleAnimArgs[1];
+ }
+ }
+ if (gBattleAnimArgs[3] != 1) {
+ TASK.data[3] = 0;
+ } else {
+ TASK.data[3] = gBattleAnimArgs[0] * gBattleAnimArgs[1];
+ }
+ TASK.data[4] = gBattleAnimArgs[1];
+ TASK.data[5] = spriteId;
+ TASK.data[6] = gBattleAnimArgs[3];
+ TASK.data[7] = 1;
+ TASK.data[3] *= -1;
+ TASK.data[4] *= -1;
+ TASK.func = sub_80A8FD8;
+}
+
+void sub_80A8FD8(u8 task) {
+ TASK.data[3] += TASK.data[4];
+ obj_id_set_rotscale(TASK.data[5], 0x100, 0x100, TASK.data[3]);
+ if (TASK.data[7]) {
+ sub_8078F9C(TASK.data[5]);
+ }
+ if (++TASK.data[1] >= TASK.data[2]) {
+ switch (TASK.data[6]) {
+ case 1:
+ sub_8078F40(TASK.data[5]);
+ case 0:
+ default:
+ move_anim_task_del(task);
+ return;
+ case 2:
+ TASK.data[1] = 0;
+ TASK.data[4] *= -1;
+ TASK.data[6] = 1;
+ break;
+ }
+ }
+}
+
+void sub_80A9058(u8 task) {
+ if (!gBattleAnimArgs[0]) {
+ TASK.data[15] = gUnknown_0202F7BC / 12;
+ if (TASK.data[15] < 1) {
+ TASK.data[15] = 1;
+ }
+ if (TASK.data[15] > 16) {
+ TASK.data[15] = 16;
+ }
+ } else {
+ TASK.data[15] = gUnknown_0202F7B8 / 12;
+ if (TASK.data[15] < 1) {
+ TASK.data[15] = 1;
+ }
+ if (TASK.data[15] > 16) {
+ TASK.data[15] = 16;
+ }
+ }
+ TASK.data[14] = TASK.data[15] / 2;
+ TASK.data[13] = TASK.data[14] + (TASK.data[15] & 1);
+ TASK.data[12] = 0;
+ TASK.data[10] = gBattleAnimArgs[3];
+ TASK.data[11] = gBattleAnimArgs[4];
+ TASK.data[7] = obj_id_for_side_relative_to_move(1);
+ TASK.data[8] = gSprites[TASK.data[7]].pos2.x;
+ TASK.data[9] = gSprites[TASK.data[7]].pos2.y;
+ TASK.data[0] = 0;
+ TASK.data[1] = gBattleAnimArgs[1];
+ TASK.data[2] = gBattleAnimArgs[2];
+ TASK.func = sub_80A913C;
+}
+
+static void sub_80A913C(u8 taskId) {
+ struct Task *task = &gTasks[taskId];
+ if (++task->data[0] > task->data[1]) {
+ task->data[0] = 0;
+ task->data[12] = (task->data[12] + 1) & 1;
+ if (task->data[10]) {
+ if (task->data[12]) {
+ gSprites[task->data[7]].pos2.x = task->data[8] + task->data[13];
+ } else {
+ gSprites[task->data[7]].pos2.x = task->data[8] - task->data[14];
+ }
+ }
+ if (task->data[11]) {
+ if (task->data[12]) {
+ gSprites[task->data[7]].pos2.y = task->data[15];
+ } else {
+ gSprites[task->data[7]].pos2.y = 0;
+ }
+ }
+ if (!--task->data[2]) {
+ gSprites[task->data[7]].pos2.x = 0;
+ gSprites[task->data[7]].pos2.y = 0;
+ move_anim_task_del(taskId);
+ return;
+ }
+ }
+}
diff --git a/src/battle_setup.c b/src/battle_setup.c
index 15b09645f..1c3e8e836 100644
--- a/src/battle_setup.c
+++ b/src/battle_setup.c
@@ -1,59 +1,32 @@
#include "global.h"
+#include "battle_setup.h"
+#include "asm.h"
+#include "safari_zone.h"
+#include "weather.h"
+#include "palette.h"
+#include "field_player_avatar.h"
+#include "rom4.h"
#include "battle.h"
#include "main.h"
#include "species.h"
-#include "pokemon.h"
#include "songs.h"
+#include "sound.h"
#include "task.h"
-#include "fieldmap.h"
#include "string_util.h"
#include "rng.h"
-#include "flag.h"
-#include "var.h"
+#include "event_data.h"
#include "script.h"
#include "field_message_box.h"
#include "trainer.h"
+#include "starter_choose.h"
+#include "metatile_behavior.h"
#define NUM_TRAINER_EYE_TRAINERS 56
#define TRAINER_REMATCH_STEPS 255
-extern void prev_quest_postbuffer_cursor_backup_reset(void);
-extern void overworld_poison_timer_set(void);
-extern void current_map_music_set__default_for_battle(u16);
-extern void c2_exit_to_overworld_1_continue_scripts_restart_music(void);
-extern void c2_exit_to_overworld_2_switch(void);
-extern void npc_set_running_behaviour_etc(struct MapObject *, u8);
-extern void c2_whiteout(void);
-extern void sub_800E7C4(void);
-extern void sub_8081AA4(void);
-extern void sub_8081A18(void);
-extern void sub_8081C8C(void);
-extern void sub_80C824C(void);
-extern void sub_8081CEC(void);
-extern void sub_8080E44(void);
-extern void sub_80821D8(void);
-extern void sub_8082228(void);
-extern void sub_808260C(void);
-extern void sub_8082CB8(void);
-extern u8 *sub_80BCCE8(void);
-extern void CB2_ChooseStarter(void);
-extern void sub_811AABC(u8);
-extern u8 sub_811AAE8(void);
-extern u8 GetFieldObjectIdByLocalIdAndMap(u8, u8, u8);
-extern u8 *sub_8082880(void);
-extern u8 sub_803FC58(u16);
-extern bool32 FieldPoisonEffectIsRunning(void);
-extern bool32 GetSafariZoneFlag(void);
-extern void player_bitmagic(void);
-
-u8 GetWildBattleTransition(void);
-u8 GetTrainerBattleTransition(void);
-bool32 battle_exit_is_player_defeat(u32 a1);
-u8 *sub_808281C(void);
-u16 sub_8082C4C(u16 a1);
-
extern u16 gScriptResult;
+// IV + LEVEL + SPECIES
struct TrainerPartyMember0
{
u16 iv;
@@ -61,6 +34,7 @@ struct TrainerPartyMember0
u16 species;
};
+// IV + LEVEL + SPECIES + MOVES
struct TrainerPartyMember1
{
u16 iv;
@@ -69,6 +43,7 @@ struct TrainerPartyMember1
u16 moves[4];
};
+// IV + LEVEL + SPECIES + ITEMS
struct TrainerPartyMember2
{
u16 iv;
@@ -77,6 +52,7 @@ struct TrainerPartyMember2
u16 heldItem;
};
+// IV + LEVEL + SPECIES + ITEMS + MOVES
struct TrainerPartyMember3
{
u16 iv;
@@ -99,22 +75,6 @@ struct TrainerEyeTrainer
u16 mapNum;
};
-extern u16 MapGridGetMetatileBehaviorAt(s16, s16);
-extern bool8 MetatileBehavior_IsTallGrass(char);
-extern bool8 MetatileBehavior_IsLongGrass(char);
-extern bool8 MetatileBehavior_IsSandOrDeepSand(char);
-extern bool8 MetatileBehavior_IsSurfableWaterOrUnderwater(char);
-extern bool8 MetatileBehavior_IsBridge(char);
-extern bool8 sub_80574C4(char);
-extern bool8 sub_80574D8(char);
-extern bool8 sub_8057568(char);
-extern u8 TestPlayerAvatarFlags(u8);
-extern u8 sub_8057450(u8);
-extern u8 GetSav1Weather(void);
-extern void PlayNewMapMusic(u16);
-
-extern u8 ScriptGiveMon(u16, u8, u16, u32, u32, u8);
-
extern void (*gUnknown_0300485C)(void);
extern struct Pokemon gEnemyParty[];
@@ -135,7 +95,7 @@ extern struct TrainerEyeTrainer gTrainerEyeTrainers[];
extern u8 gOtherText_CancelWithTerminator[];
-extern u16 gUnknown_020239F8;
+extern u16 gBattleTypeFlags;
extern u16 gScriptLastTalked;
extern u8 gUnknown_02024D26;
extern u16 gBadgeFlags[];
@@ -162,8 +122,6 @@ extern u8 gStringVar4[];
extern u8 gBattleTransitionTable_Wild[][2];
extern u8 gBattleTransitionTable_Trainer[][2];
-void sub_8082188(void);
-
void task01_battle_start(u8 taskId)
{
s16 *data = gTasks[taskId].data;
@@ -200,123 +158,123 @@ void task_add_01_battle_start(u8 transition, u16 song)
void CheckForSafariZoneAndProceed(void)
{
if (GetSafariZoneFlag())
- sub_8081AA4();
+ StartBattle_Safari();
else
- sub_8081A18();
+ StartBattle_StandardWild();
}
-void sub_8081A18(void)
+void StartBattle_StandardWild(void)
{
ScriptContext2_Enable();
- player_bitmagic();
+ FreezeMapObjects();
sub_80597F4();
- gMain.field_8 = sub_8081C8C;
- gUnknown_020239F8 = 0;
+ gMain.savedCallback = HandleWildBattleEnd;
+ gBattleTypeFlags = 0;
task_add_01_battle_start(GetWildBattleTransition(), 0);
- sav12_xor_increment(7);
- sav12_xor_increment(8);
+ IncrementGameStat(7);
+ IncrementGameStat(8);
}
-void sub_8081A5C(void)
+void StartBattle_Roamer(void)
{
ScriptContext2_Enable();
- player_bitmagic();
+ FreezeMapObjects();
sub_80597F4();
- gMain.field_8 = sub_8081C8C;
- gUnknown_020239F8 = 1024;
+ gMain.savedCallback = HandleWildBattleEnd;
+ gBattleTypeFlags = BATTLE_TYPE_ROAMER;
task_add_01_battle_start(GetWildBattleTransition(), 0);
- sav12_xor_increment(7);
- sav12_xor_increment(8);
+ IncrementGameStat(7);
+ IncrementGameStat(8);
}
-void sub_8081AA4(void)
+void StartBattle_Safari(void)
{
ScriptContext2_Enable();
- player_bitmagic();
+ FreezeMapObjects();
sub_80597F4();
- gMain.field_8 = sub_80C824C;
- gUnknown_020239F8 = 128;
+ gMain.savedCallback = sub_80C824C;
+ gBattleTypeFlags = BATTLE_TYPE_SAFARI;
task_add_01_battle_start(GetWildBattleTransition(), 0);
}
void task_add_01_battle_start_with_music_and_stats(void)
{
task_add_01_battle_start(GetTrainerBattleTransition(), 0);
- sav12_xor_increment(7);
- sav12_xor_increment(9);
+ IncrementGameStat(7);
+ IncrementGameStat(9);
}
//Initiates battle where Wally catches Ralts
-void sub_8081AFC(void)
+void StartBattle_WallyTutorial(void)
{
CreateMaleMon(&gEnemyParty[0], SPECIES_RALTS, 5);
ScriptContext2_Enable();
- gMain.field_8 = c2_exit_to_overworld_1_continue_scripts_restart_music;
- gUnknown_020239F8 = 512;
+ gMain.savedCallback = c2_exit_to_overworld_1_continue_scripts_restart_music;
+ gBattleTypeFlags = BATTLE_TYPE_WALLY_TUTORIAL;
task_add_01_battle_start(8, 0);
}
-void sub_8081B3C(void)
+void StartBattle_ScriptedWild(void)
{
ScriptContext2_Enable();
- gMain.field_8 = sub_8081CEC;
- gUnknown_020239F8 = 0;
+ gMain.savedCallback = HandleScriptedWildBattleEnd;
+ gBattleTypeFlags = 0;
task_add_01_battle_start(GetWildBattleTransition(), 0);
- sav12_xor_increment(7);
- sav12_xor_increment(8);
+ IncrementGameStat(7);
+ IncrementGameStat(8);
}
-void sub_8081B78(void)
+void StartBattle_SouthernIsland(void)
{
ScriptContext2_Enable();
- gMain.field_8 = sub_8081CEC;
- gUnknown_020239F8 = 0x2000;
+ gMain.savedCallback = HandleScriptedWildBattleEnd;
+ gBattleTypeFlags = BATTLE_TYPE_LEGENDARY;
task_add_01_battle_start(GetWildBattleTransition(), 0);
- sav12_xor_increment(7);
- sav12_xor_increment(8);
+ IncrementGameStat(7);
+ IncrementGameStat(8);
}
-void sub_8081BB8(void)
+void StartBattle_Rayquaza(void)
{
ScriptContext2_Enable();
- gMain.field_8 = sub_8081CEC;
- gUnknown_020239F8 = 0x2000;
+ gMain.savedCallback = HandleScriptedWildBattleEnd;
+ gBattleTypeFlags = BATTLE_TYPE_LEGENDARY;
task_add_01_battle_start(0, BGM_BATTLE34);
- sav12_xor_increment(7);
- sav12_xor_increment(8);
+ IncrementGameStat(7);
+ IncrementGameStat(8);
}
-void sub_8081BF8(void)
+void StartBattle_GroudonKyogre(void)
{
ScriptContext2_Enable();
- gMain.field_8 = sub_8081CEC;
- gUnknown_020239F8 = 12288;
+ gMain.savedCallback = HandleScriptedWildBattleEnd;
+ gBattleTypeFlags = BATTLE_TYPE_LEGENDARY | BATTLE_TYPE_KYOGRE_GROUDON;
if (gGameVersion == 2)
task_add_01_battle_start(0xB, BGM_BATTLE34); // KYOGRE
else
task_add_01_battle_start(0x6, BGM_BATTLE34); // GROUDON
- sav12_xor_increment(7);
- sav12_xor_increment(8);
+ IncrementGameStat(7);
+ IncrementGameStat(8);
}
-void sub_8081C50(void)
+void StartBattle_Regi(void)
{
ScriptContext2_Enable();
- gMain.field_8 = sub_8081CEC;
- gUnknown_020239F8 = 24576;
+ gMain.savedCallback = HandleScriptedWildBattleEnd;
+ gBattleTypeFlags = BATTLE_TYPE_LEGENDARY | BATTLE_TYPE_REGI;
task_add_01_battle_start(0xA, BGM_BATTLE36);
- sav12_xor_increment(7);
- sav12_xor_increment(8);
+ IncrementGameStat(7);
+ IncrementGameStat(8);
}
-void sub_8081C8C(void)
+void HandleWildBattleEnd(void)
{
CpuFill16(0, (void *)BG_PLTT, BG_PLTT_SIZE);
ResetOamRange(0, 128);
if (battle_exit_is_player_defeat(gUnknown_02024D26) == TRUE)
{
- SetMainCallback2(c2_whiteout);
+ SetMainCallback2(CB2_WhiteOut);
}
else
{
@@ -325,18 +283,18 @@ void sub_8081C8C(void)
}
}
-void sub_8081CEC(void)
+void HandleScriptedWildBattleEnd(void)
{
CpuFill16(0, (void *)BG_PLTT, BG_PLTT_SIZE);
ResetOamRange(0, 128);
if (battle_exit_is_player_defeat(gUnknown_02024D26) == TRUE)
- SetMainCallback2(c2_whiteout);
+ SetMainCallback2(CB2_WhiteOut);
else
SetMainCallback2(c2_exit_to_overworld_1_continue_scripts_restart_music);
}
-s8 sub_8081D3C(void)
+s8 GetBattleTerrain(void)
{
u16 tileBehavior;
s16 x, y;
@@ -350,24 +308,24 @@ s8 sub_8081D3C(void)
return 1;
if (MetatileBehavior_IsSandOrDeepSand(tileBehavior))
return 2;
- switch (gMapHeader.light)
+ switch (gMapHeader.mapType)
{
- case 1:
- case 2:
- case 3:
+ case MAP_TYPE_TOWN:
+ case MAP_TYPE_CITY:
+ case MAP_TYPE_ROUTE:
break;
- case 4:
+ case MAP_TYPE_UNDERGROUND:
if (sub_80574C4(tileBehavior))
return 8;
if (MetatileBehavior_IsSurfableWaterOrUnderwater(tileBehavior))
return 5;
return 7;
- case 8:
- case 9:
+ case MAP_TYPE_INDOOR:
+ case MAP_TYPE_SECRET_BASE:
return 8;
- case 5:
+ case MAP_TYPE_UNDERWATER:
return 3;
- case 6:
+ case MAP_TYPE_6:
if (MetatileBehavior_IsSurfableWaterOrUnderwater(tileBehavior))
return 4;
return 9;
@@ -378,7 +336,7 @@ s8 sub_8081D3C(void)
return 5;
if (sub_80574D8(tileBehavior))
return 6;
- if (TestPlayerAvatarFlags(8))
+ if (TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_SURFING))
{
if (sub_8057450(tileBehavior))
return 5;
@@ -392,7 +350,7 @@ s8 sub_8081D3C(void)
return 9;
}
-s8 sub_8081E90(void)
+s8 GetBattleTransitionTypeByMap(void)
{
u8 flashUsed;
u16 tileBehavior;
@@ -408,11 +366,11 @@ s8 sub_8081E90(void)
if (!MetatileBehavior_IsSurfableWaterOrUnderwater(tileBehavior))
{
- switch (gMapHeader.light)
+ switch (gMapHeader.mapType)
{
- case 4:
+ case MAP_TYPE_UNDERGROUND:
return 1;
- case 5:
+ case MAP_TYPE_UNDERWATER:
return 3;
default:
return 0;
@@ -430,7 +388,7 @@ u16 GetSumOfPartyMonLevel(u8 numMons)
{
u32 species = GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2);
- if (species != 412 && species != 0 && GetMonData(&gPlayerParty[i], MON_DATA_HP) != 0)
+ if (species != SPECIES_EGG && species != SPECIES_NONE && GetMonData(&gPlayerParty[i], MON_DATA_HP) != 0)
{
sum += GetMonData(&gPlayerParty[i], MON_DATA_LEVEL);
numMons--;
@@ -482,7 +440,7 @@ u8 GetSumOfEnemyPartyLevel(u16 trainerNum, u8 numMons)
u8 GetWildBattleTransition(void)
{
- u8 flashVar = sub_8081E90();
+ u8 flashVar = GetBattleTransitionTypeByMap();
u8 level = GetMonData(&gEnemyParty[0], MON_DATA_LEVEL);
if (level < (u8)GetSumOfPartyMonLevel(1)) // is wild mon level than the player's mon level?
@@ -494,8 +452,7 @@ u8 GetWildBattleTransition(void)
u8 GetTrainerBattleTransition(void)
{
struct Trainer *trainer;
- u8 trainerClass;
- u8 partyCount;
+ u8 minPartyCount;
u8 flashVar;
u8 level;
@@ -521,14 +478,14 @@ u8 GetTrainerBattleTransition(void)
return 16;
if (trainer[gTrainerBattleOpponent].doubleBattle == TRUE)
- partyCount = 2; // double battles always at least have 2 pokemon.
+ minPartyCount = 2; // double battles always at least have 2 pokemon.
else
- partyCount = 1;
+ minPartyCount = 1;
- flashVar = sub_8081E90();
- level = GetSumOfEnemyPartyLevel(gTrainerBattleOpponent, partyCount);
+ flashVar = GetBattleTransitionTypeByMap();
+ level = GetSumOfEnemyPartyLevel(gTrainerBattleOpponent, minPartyCount);
- if (level < (u8)GetSumOfPartyMonLevel(partyCount)) // is wild mon level than the player's mon level?
+ if (level < (u8)GetSumOfPartyMonLevel(minPartyCount)) // is wild mon level than the player's mon level?
return gBattleTransitionTable_Trainer[flashVar][0];
else
return gBattleTransitionTable_Trainer[flashVar][1];
@@ -544,13 +501,13 @@ u8 GetBattleTowerBattleTransition(void)
return 3;
}
-void sub_8082168(void)
+void ChooseStarter(void)
{
SetMainCallback2(CB2_ChooseStarter);
- gMain.field_8 = sub_8082188;
+ gMain.savedCallback = CB2_GiveStarter;
}
-void sub_8082188(void)
+void CB2_GiveStarter(void)
{
u16 starterPoke;
@@ -559,28 +516,28 @@ void sub_8082188(void)
ScriptGiveMon(starterPoke, 5, 0, 0, 0, 0);
ResetTasks();
sub_80408BC();
- SetMainCallback2(sub_80821D8);
+ SetMainCallback2(CB2_StartFirstBattle);
sub_811AAD8(0);
}
-void sub_80821D8(void)
+void CB2_StartFirstBattle(void)
{
UpdatePaletteFade();
RunTasks();
if (sub_811AAE8() == TRUE)
{
- gUnknown_020239F8 = 16;
- gMain.field_8 = sub_8082228;
+ gBattleTypeFlags = BATTLE_TYPE_FIRST_BATTLE;
+ gMain.savedCallback = HandleFirstBattleEnd;
SetMainCallback2(sub_800E7C4);
prev_quest_postbuffer_cursor_backup_reset();
overworld_poison_timer_set();
- sav12_xor_increment(7);
- sav12_xor_increment(8);
+ IncrementGameStat(7);
+ IncrementGameStat(8);
}
}
-void sub_8082228(void)
+void HandleFirstBattleEnd(void)
{
sav1_reset_battle_music_maybe();
SetMainCallback2(c2_exit_to_overworld_1_continue_scripts_restart_music);
@@ -730,7 +687,7 @@ void TrainerWantsBattle(u8 trainerMapObjId, u8 *trainerScript)
ScriptContext2_Enable();
}
-u8 GetTrainerFlagFromScriptPointer(u8 *data)
+bool32 GetTrainerFlagFromScriptPointer(u8 *data)
{
u32 flag = TrainerBattleLoadArg16(data + 2);
return FlagGet(TRAINER_FLAG_START + flag);
@@ -780,8 +737,8 @@ void trainer_flag_clear(u16 flag)
void sub_80825E4(void)
{
- gUnknown_020239F8 = 8;
- gMain.field_8 = sub_808260C;
+ gBattleTypeFlags = BATTLE_TYPE_TRAINER;
+ gMain.savedCallback = sub_808260C;
task_add_01_battle_start_with_music_and_stats();
ScriptContext1_Stop();
}
@@ -794,7 +751,7 @@ void sub_808260C(void)
}
else if (battle_exit_is_player_defeat(gUnknown_02024D26) == TRUE)
{
- SetMainCallback2(c2_whiteout);
+ SetMainCallback2(CB2_WhiteOut);
}
else
{
@@ -811,7 +768,7 @@ void do_choose_name_or_words_screen(void)
}
else if (battle_exit_is_player_defeat(gUnknown_02024D26) == TRUE)
{
- SetMainCallback2(c2_whiteout);
+ SetMainCallback2(CB2_WhiteOut);
}
else
{
@@ -823,8 +780,8 @@ void do_choose_name_or_words_screen(void)
void sub_80826B0(void)
{
- gUnknown_020239F8 = 8;
- gMain.field_8 = do_choose_name_or_words_screen;
+ gBattleTypeFlags = BATTLE_TYPE_TRAINER;
+ gMain.savedCallback = do_choose_name_or_words_screen;
task_add_01_battle_start_with_music_and_stats();
ScriptContext1_Stop();
}
diff --git a/src/berry.c b/src/berry.c
index e00015477..84db22a27 100644
--- a/src/berry.c
+++ b/src/berry.c
@@ -1,56 +1,47 @@
#include "global.h"
+#include "berry.h"
+#include "asm.h"
+#include "item.h"
+#include "main.h"
#include "text.h"
+#include "rng.h"
+#include "items.h"
-#define FIRST_BERRY 0x85 // ITEM_CHERI_BERRY
-#define LAST_BERRY 0xaf // ITEM_ENIGMA_BERRY
-
-extern u8 GetStageByBerryTreeId(u8);
-extern u16 GetStageDurationByBerryType(u8);
-extern void SetMainCallback2(void*);
-extern void sub_80A68CC();
-extern u16 Random(void);
-extern u8 sub_8060234(u8, u8, u8);
-extern u8 AddBagItem(u16, u8);
-extern void sub_8060288(u8, u8, u8);
-extern u8 IsBagPocketNonEmpty(u8);
-extern void GetCameraCoords(s16*, s16*);
-extern u8 FieldObjectGetBerryTreeId(u8);
-extern u8 *GetFieldObjectScriptPointerForComparison();
+#define FIRST_BERRY ITEM_CHERI_BERRY
+#define LAST_BERRY ITEM_ENIGMA_BERRY
extern struct Berry gBerries[];
extern u8 BerryTreeScript;
-extern struct BerryTree gUnknown_083CD780;
+extern struct BerryTree gBlankBerryTree;
extern u16 gScriptItemId;
extern u16 gScriptLastTalked;
extern u16 gSpecialVar_0x8004;
extern u16 gSpecialVar_0x8005;
extern u16 gSpecialVar_0x8006;
-u8 CalcBerryYield(struct BerryTree *tree);
-
-void unref_sub_80B4884(void)
+// unused
+void ClearEnigmaBerries(void)
{
CpuFill16(0, &gSaveBlock1.enigmaBerry, sizeof(gSaveBlock1.enigmaBerry));
}
-// setEnigmaBerry
-void sub_80B48A8(u8 *src)
+void SetEnigmaBerry(u8 *src)
{
- unsigned int i;
+ u32 i;
u8 *dest = (u8*)&gSaveBlock1.enigmaBerry;
for (i = 0; i < sizeof(gSaveBlock1.enigmaBerry); i++)
dest[i] = src[i];
+
gSaveBlock1.enigmaBerry.berry.description1 = gSaveBlock1.enigmaBerry.description1;
gSaveBlock1.enigmaBerry.berry.description2 = gSaveBlock1.enigmaBerry.description2;
}
-// checksum
-u32 sub_80B48F8(struct EnigmaBerry *enigmaBerry)
+u32 GetEnigmaBerryChecksum(struct EnigmaBerry *enigmaBerry)
{
u8 *description1;
u8 *description2;
- unsigned int i;
+ u32 i;
u32 checksum;
u8 *dest;
@@ -61,7 +52,7 @@ u32 sub_80B48F8(struct EnigmaBerry *enigmaBerry)
dest = (u8*)enigmaBerry;
checksum = 0;
- for (i = 0; i < ((int)&gSaveBlock1.enigmaBerry.checksum - (int)&gSaveBlock1.enigmaBerry); i++)
+ for (i = 0; i < ((u32)&gSaveBlock1.enigmaBerry.checksum - (u32)&gSaveBlock1.enigmaBerry); i++)
{
checksum += dest[i];
}
@@ -72,20 +63,20 @@ u32 sub_80B48F8(struct EnigmaBerry *enigmaBerry)
return checksum;
}
-bool32 sub_80B4940(void)
+bool32 IsEnigmaBerryValid(void)
{
if (!gSaveBlock1.enigmaBerry.berry.stageDuration)
return FALSE;
if (!gSaveBlock1.enigmaBerry.berry.maxYield)
return FALSE;
- if (sub_80B48F8(&gSaveBlock1.enigmaBerry) != gSaveBlock1.enigmaBerry.checksum)
+ if (GetEnigmaBerryChecksum(&gSaveBlock1.enigmaBerry) != gSaveBlock1.enigmaBerry.checksum)
return FALSE;
return TRUE;
}
struct Berry *GetBerryInfo(u8 berry)
{
- if (berry == 0x2B && sub_80B4940())
+ if (berry == 0x2B && IsEnigmaBerryValid())
return &gSaveBlock1.enigmaBerry.berry;
else
{
@@ -133,7 +124,7 @@ bool32 IsPlayerFacingPlantedBerryTree(void)
return FALSE;
}
-u8 WaterBerryTree(void)
+u8 TryToWaterBerryTree(void)
{
if (GetFieldObjectScriptPointerForComparison() != &BerryTreeScript)
return 0;
@@ -141,11 +132,11 @@ u8 WaterBerryTree(void)
return FieldObjectInteractionWaterBerryTree();
}
-void sub_80B4A90(void)
+void ClearBerryTrees(void)
{
int i;
struct SaveBlock1 *saveBlock1 = &gSaveBlock1;
- struct BerryTree berryTree = gUnknown_083CD780;
+ struct BerryTree berryTree = gBlankBerryTree;
for (i = 0; i < 128; i++)
saveBlock1->berryTrees[i] = berryTree;
@@ -174,7 +165,7 @@ bool32 BerryTreeGrow(struct BerryTree *tree)
tree->berryYield = 0;
tree->stage = 2;
if (++tree->regrowthCount == 10)
- *tree = gUnknown_083CD780;
+ *tree = gBlankBerryTree;
break;
}
return TRUE;
@@ -193,7 +184,7 @@ void BerryTreeTimeUpdate(int time)
{
if (time >= GetStageDurationByBerryType(tree->berry) * 71)
{
- *tree = gUnknown_083CD780;
+ *tree = gBlankBerryTree;
}
else
{
@@ -222,7 +213,7 @@ void PlantBerryTree(u8 id, u8 berry, u8 stage, bool8 sparkle)
{
struct BerryTree *tree = GetBerryTreeInfo(id);
- *tree = gUnknown_083CD780;
+ *tree = gBlankBerryTree;
tree->berry = berry;
tree->secondsUntilNextStage = GetStageDurationByBerryType(berry);
tree->stage = stage;
@@ -239,7 +230,7 @@ void PlantBerryTree(u8 id, u8 berry, u8 stage, bool8 sparkle)
void RemoveBerryTree(u8 id)
{
- gSaveBlock1.berryTrees[id] = gUnknown_083CD780;
+ gSaveBlock1.berryTrees[id] = gBlankBerryTree;
}
u8 GetBerryTypeByBerryTreeId(u8 id)
@@ -397,7 +388,7 @@ void FieldObjectInteractionRemoveBerryTree(void)
u8 PlayerHasBerries(void)
{
- return IsBagPocketNonEmpty(4);
+ return IsBagPocketNonEmpty(BAG_BERRIES);
}
void ResetBerryTreeSparkleFlags(void)
diff --git a/src/berry_tag_screen.c b/src/berry_tag_screen.c
new file mode 100644
index 000000000..1b432fe70
--- /dev/null
+++ b/src/berry_tag_screen.c
@@ -0,0 +1,878 @@
+#include "global.h"
+#include "berry_tag_screen.h"
+#include "asm.h"
+#include "berry.h"
+#include "decompress.h"
+#include "main.h"
+#include "menu.h"
+#include "palette.h"
+#include "rom4.h"
+#include "songs.h"
+#include "sound.h"
+#include "sprite.h"
+#include "string_util.h"
+#include "task.h"
+#include "text.h"
+#include "items.h"
+
+#define OFFSET_7B (123)
+#define FIRST_BERRY ITEM_CHERI_BERRY
+
+struct Struct2000000 {
+ /*0x00*/ u8 filler_0[0x1FFFF];
+ /*0x1FFFF*/ bool8 var_1FFFF;
+};
+
+struct BerryTagStatus {
+ s16 circles[5];
+};
+
+extern struct Struct2000000 unk_2000000;
+extern u16 gBGTilemapBuffers[4][0x400];
+extern u8 gUnknown_0203932C;
+extern struct BerryTagStatus gUnknown_0203932E;
+extern u16 gScriptItemId;
+extern u16 gUnknown_030041B4;
+
+extern const struct SpriteSheet gUnknown_083C1F74;
+extern const struct SpritePalette gUnknown_083C1F7C;
+
+extern u8 gOtherText_ThreeQuestions2[];
+extern u8 gOtherText_Size[];
+extern u8 gOtherText_Firm[];
+extern u8 gContestStatsText_Unknown1[];
+extern u8 *gUnknown_0841192C[];
+
+extern u8 gBerryCheck_Gfx[];
+extern u8 gBerryCheck_Pal[];
+extern u8 gUnknown_08E788E4[];
+extern u8 gUnknown_08E78A84[];
+
+static void sub_8146014(void);
+static void sub_814602C(void);
+static bool8 sub_8146058(void);
+static void sub_8146288(void);
+static bool8 sub_81462B8(void);
+static void sub_814640C(u8 taskId);
+static void sub_8146440(u8 taskId);
+static void sub_8146480(u8 taskid);
+static void sub_81464E4(void);
+static void sub_8146600(u8 berry);
+// static void sub_81466A0(void);
+static void sub_81466E8(u8 taskId, s32 direction);
+// static void sub_8146798(u8 berry);
+// static void sub_8146810(u8 berry);
+// static void sub_81468BC(void);
+
+static void sub_8146014(void) {
+ AnimateSprites();
+ BuildOamBuffer();
+ RunTasks();
+ UpdatePaletteFade();
+}
+
+static void sub_814602C(void) {
+ REG_BG0VOFS = gUnknown_030041B4;
+ REG_BG1VOFS = gUnknown_030041B4;
+
+ LoadOam();
+ ProcessSpriteCopyRequests();
+ TransferPlttBuffer();
+}
+
+static bool8 sub_8146058(void) {
+ u8 berry;
+ u16 backup;
+
+ switch (gMain.state) {
+ case 0:
+ sub_80F9438();
+ sub_80F9368();
+ sub_8146288();
+ REG_BLDCNT = 0;
+ gMain.state += 1;
+ break;
+
+ case 1:
+ ResetPaletteFade();
+ gPaletteFade.bufferTransferDisabled = 1;
+ gMain.state += 1;
+ break;
+
+ case 2:
+ ResetSpriteData();
+ gMain.state += 1;
+ break;
+
+ case 3:
+ SetUpWindowConfig(&gWindowConfig_81E6E18);
+ gMain.state += 1;
+ break;
+
+ case 4:
+ MultistepInitMenuWindowBegin(&gWindowConfig_81E6E18);
+ gMain.state += 1;
+ break;
+
+ case 5:
+ if (!MultistepInitMenuWindowContinue()) {
+ return FALSE;
+ }
+ unk_2000000.var_1FFFF = 0;
+ gMain.state += 1;
+ break;
+
+ case 6:
+ if (!sub_81462B8()) {
+ break;
+ }
+
+ unk_2000000.var_1FFFF = 0;
+ gMain.state += 1;
+ break;
+
+ case 7:
+ sub_81464E4();
+ gMain.state += 1;
+ break;
+
+ case 8:
+ berry = gScriptItemId + OFFSET_7B;
+ gUnknown_0203932C = sub_80A7D8C(berry, 56, 64);
+ gMain.state += 1;
+ break;
+
+ case 9:
+ sub_8146600(gScriptItemId + OFFSET_7B);
+ gMain.state += 1;
+ break;
+
+ case 10:
+ backup = REG_IME;
+ REG_IME = 0;
+ REG_IE |= INTR_FLAG_VBLANK;
+ REG_IME = backup;
+
+ REG_DISPSTAT |= DISPSTAT_VBLANK_INTR;
+ SetVBlankCallback(sub_814602C);
+ REG_DISPCNT = DISPCNT_OBJ_ON | DISPCNT_BG_ALL_ON | DISPCNT_OBJ_1D_MAP;
+ gMain.state += 1;
+ break;
+
+ case 11:
+ if (sub_8055870() == TRUE) {
+ break;
+ }
+ gMain.state += 1;
+ break;
+
+ case 12:
+ BeginNormalPaletteFade(-1, 0, 0x10, 0, 0);
+ gPaletteFade.bufferTransferDisabled = 0;
+ SetMainCallback2(sub_8146014);
+ return TRUE;
+
+ }
+
+ return FALSE;
+}
+
+void BerryTagScreen_814625C(u8 taskId) {
+ do {
+ if (sub_8146058() == TRUE) {
+ CreateTask(sub_8146480, 0);
+ return;
+ }
+
+ } while (sub_80F9344() != TRUE);
+}
+
+static void sub_8146288(void) {
+ REG_BG1CNT = 0x502;
+ REG_BG2CNT = 0x600;
+ REG_BG3CNT = 0x703;
+ gUnknown_030041B4 = 0;
+}
+
+#ifdef NONMATCHING
+bool8 sub_81462B8(void) {
+ u16 i;
+
+ switch (unk_2000000.var_1FFFF) {
+ case 0:
+ LZDecompressVram(gBerryCheck_Gfx, (void *) VRAM);
+ unk_2000000.var_1FFFF += 1;
+ break;
+
+ case 1:
+ LZDecompressVram(gUnknown_08E788E4, (void *) VRAM + 0x2800);
+ unk_2000000.var_1FFFF += 1;
+ break;
+
+ case 2:
+ LZDecompressVram(gUnknown_08E78A84, (void *) VRAM + 0x3000);
+ unk_2000000.var_1FFFF += 1;
+ break;
+
+ case 3:
+ for (i = 0; i < 0x400; i++) {
+ u16 (*buffer)[0x400] = &gBGTilemapBuffers[3];
+ if (gSaveBlock2.playerGender == MALE) {
+ (*buffer)[i] = 0x4042;
+ } else {
+ (*buffer)[i] = 0x5042;
+ }
+ }
+ unk_2000000.var_1FFFF += 1;
+ break;
+
+ case 4:
+ LoadCompressedPalette(gBerryCheck_Pal, 0, 96 * 2);
+ unk_2000000.var_1FFFF += 1;
+ break;
+
+ case 5:
+ LoadCompressedObjectPic(&gUnknown_083C1F74);
+ unk_2000000.var_1FFFF += 1;
+ break;
+
+ case 6:
+ LoadCompressedObjectPalette(&gUnknown_083C1F7C);
+ unk_2000000.var_1FFFF = 0;
+ return TRUE;
+ }
+
+ return FALSE;
+}
+#else
+__attribute__((naked))
+static bool8 sub_81462B8(void) {
+ asm(".syntax unified\n\
+ push {r4-r7,lr}\n\
+ ldr r1, _081462D4 @ =0x02000000\n\
+ ldr r2, _081462D8 @ =0x0001ffff\n\
+ adds r0, r1, r2\n\
+ ldrb r0, [r0]\n\
+ mov r12, r1\n\
+ cmp r0, 0x6\n\
+ bls _081462CA\n\
+ b _08146404\n\
+_081462CA:\n\
+ lsls r0, 2\n\
+ ldr r1, _081462DC @ =_081462E0\n\
+ adds r0, r1\n\
+ ldr r0, [r0]\n\
+ mov pc, r0\n\
+ .align 2, 0\n\
+_081462D4: .4byte 0x02000000\n\
+_081462D8: .4byte 0x0001ffff\n\
+_081462DC: .4byte _081462E0\n\
+ .align 2, 0\n\
+_081462E0:\n\
+ .4byte _081462FC\n\
+ .4byte _0814630C\n\
+ .4byte _0814632C\n\
+ .4byte _08146340\n\
+ .4byte _081463A4\n\
+ .4byte _081463C4\n\
+ .4byte _081463E4\n\
+_081462FC:\n\
+ ldr r0, _08146308 @ =gBerryCheck_Gfx\n\
+ movs r1, 0xC0\n\
+ lsls r1, 19\n\
+ bl LZDecompressVram\n\
+ b _081463CA\n\
+ .align 2, 0\n\
+_08146308: .4byte gBerryCheck_Gfx\n\
+_0814630C:\n\
+ ldr r0, _0814631C @ =gUnknown_08E788E4\n\
+ ldr r1, _08146320 @ =0x06002800\n\
+ bl LZDecompressVram\n\
+ ldr r1, _08146324 @ =0x02000000\n\
+ ldr r2, _08146328 @ =0x0001ffff\n\
+ adds r1, r2\n\
+ b _081463D0\n\
+ .align 2, 0\n\
+_0814631C: .4byte gUnknown_08E788E4\n\
+_08146320: .4byte 0x06002800\n\
+_08146324: .4byte 0x02000000\n\
+_08146328: .4byte 0x0001ffff\n\
+_0814632C:\n\
+ ldr r0, _08146338 @ =gUnknown_08E78A84\n\
+ ldr r1, _0814633C @ =0x06003000\n\
+ bl LZDecompressVram\n\
+ b _081463CA\n\
+ .align 2, 0\n\
+_08146338: .4byte gUnknown_08E78A84\n\
+_0814633C: .4byte 0x06003000\n\
+_08146340:\n\
+ movs r1, 0\n\
+ ldr r7, _0814635C @ =gBGTilemapBuffers + 0x1000\n\
+ adds r2, r7, 0\n\
+ ldr r6, _08146360 @ =0x00004042\n\
+ ldr r5, _08146364 @ =gSaveBlock2\n\
+ ldr r4, _08146368 @ =0x00005042\n\
+ ldr r3, _0814636C @ =0x000003ff\n\
+_0814634E:\n\
+ ldrb r0, [r5, 0x8]\n\
+ cmp r0, 0\n\
+ bne _08146370\n\
+ lsls r0, r1, 1\n\
+ adds r0, r2\n\
+ strh r6, [r0]\n\
+ b _08146376\n\
+ .align 2, 0\n\
+_0814635C: .4byte gBGTilemapBuffers + 0x1000\n\
+_08146360: .4byte 0x00004042\n\
+_08146364: .4byte gSaveBlock2\n\
+_08146368: .4byte 0x00005042\n\
+_0814636C: .4byte 0x000003ff\n\
+_08146370:\n\
+ lsls r0, r1, 1\n\
+ adds r0, r2\n\
+ strh r4, [r0]\n\
+_08146376:\n\
+ adds r0, r1, 0x1\n\
+ lsls r0, 16\n\
+ lsrs r1, r0, 16\n\
+ cmp r1, r3\n\
+ bls _0814634E\n\
+ ldr r1, _08146394 @ =0x06003800\n\
+ ldr r0, _08146398 @ =0x040000d4\n\
+ str r7, [r0]\n\
+ str r1, [r0, 0x4]\n\
+ ldr r1, _0814639C @ =0x80000400\n\
+ str r1, [r0, 0x8]\n\
+ ldr r0, [r0, 0x8]\n\
+ ldr r1, _081463A0 @ =0x0001ffff\n\
+ add r1, r12\n\
+ b _081463D0\n\
+ .align 2, 0\n\
+_08146394: .4byte 0x06003800\n\
+_08146398: .4byte 0x040000d4\n\
+_0814639C: .4byte 0x80000400\n\
+_081463A0: .4byte 0x0001ffff\n\
+_081463A4:\n\
+ ldr r0, _081463B8 @ =gBerryCheck_Pal\n\
+ movs r1, 0\n\
+ movs r2, 0xC0\n\
+ bl LoadCompressedPalette\n\
+ ldr r1, _081463BC @ =0x02000000\n\
+ ldr r2, _081463C0 @ =0x0001ffff\n\
+ adds r1, r2\n\
+ b _081463D0\n\
+ .align 2, 0\n\
+_081463B8: .4byte gBerryCheck_Pal\n\
+_081463BC: .4byte 0x02000000\n\
+_081463C0: .4byte 0x0001ffff\n\
+_081463C4:\n\
+ ldr r0, _081463D8 @ =gUnknown_083C1F74\n\
+ bl LoadCompressedObjectPic\n\
+_081463CA:\n\
+ ldr r1, _081463DC @ =0x02000000\n\
+ ldr r0, _081463E0 @ =0x0001ffff\n\
+ adds r1, r0\n\
+_081463D0:\n\
+ ldrb r0, [r1]\n\
+ adds r0, 0x1\n\
+ strb r0, [r1]\n\
+ b _08146404\n\
+ .align 2, 0\n\
+_081463D8: .4byte gUnknown_083C1F74\n\
+_081463DC: .4byte 0x02000000\n\
+_081463E0: .4byte 0x0001ffff\n\
+_081463E4:\n\
+ ldr r0, _081463F8 @ =gUnknown_083C1F7C\n\
+ bl LoadCompressedObjectPalette\n\
+ ldr r0, _081463FC @ =0x02000000\n\
+ ldr r1, _08146400 @ =0x0001ffff\n\
+ adds r0, r1\n\
+ movs r1, 0\n\
+ strb r1, [r0]\n\
+ movs r0, 0x1\n\
+ b _08146406\n\
+ .align 2, 0\n\
+_081463F8: .4byte gUnknown_083C1F7C\n\
+_081463FC: .4byte 0x02000000\n\
+_08146400: .4byte 0x0001ffff\n\
+_08146404:\n\
+ movs r0, 0\n\
+_08146406:\n\
+ pop {r4-r7}\n\
+ pop {r1}\n\
+ bx r1\n\
+ .syntax divided\n");
+}
+#endif
+
+static void sub_814640C(u8 taskId) {
+ if (gPaletteFade.active) {
+ return;
+ }
+
+ SetMainCallback2(sub_80A5B40);
+ sub_80A7DD4();
+ gpu_pal_allocator_reset__manage_upper_four();
+ DestroyTask(taskId);
+}
+
+static void sub_8146440(u8 taskId) {
+ PlaySE(SE_SELECT);
+ BeginNormalPaletteFade(-1, 0, 0, 0x10, 0);
+
+ gTasks[taskId].func = sub_814640C;
+}
+
+static void sub_8146480(u8 taskid) {
+ register u16 keys asm("r1");
+
+ if (gPaletteFade.active) {
+ return;
+ }
+
+ keys = gMain.newAndRepeatedKeys & (DPAD_RIGHT | DPAD_LEFT | DPAD_UP | DPAD_DOWN);
+ if (keys == DPAD_UP) {
+ sub_81466E8(taskid, -1);
+ }
+
+ keys = gMain.newAndRepeatedKeys & (DPAD_RIGHT | DPAD_LEFT | DPAD_UP | DPAD_DOWN);
+ if (keys == DPAD_DOWN) {
+ sub_81466E8(taskid, 1);
+ }
+
+ if (gMain.newKeys & A_BUTTON || gMain.newKeys & B_BUTTON) {
+ sub_8146440(taskid);
+ }
+}
+
+static void sub_81464E4(void) {
+ struct Berry *berryInfo;
+ u32 size;
+ s32 sizeMajor;
+ s32 sizeMinor;
+
+ berryInfo = GetBerryInfo(gScriptItemId + OFFSET_7B + 1);
+
+ ConvertIntToDecimalStringN(gStringVar1, gScriptItemId - FIRST_BERRY + 1, STR_CONV_MODE_LEADING_ZEROS, 2);
+ MenuPrint(gStringVar1, 12, 4);
+
+ MenuPrint(berryInfo->name, 14, 4);
+ MenuPrint(berryInfo->description1, 4, 14);
+ MenuPrint(berryInfo->description2, 4, 16);
+
+ size = (berryInfo->size * 1000) / 254;
+ if (size % 10 >= 5) {
+ size += 10;
+ }
+ sizeMinor = (size % 100) / 10;
+ sizeMajor = size / 100;
+
+ MenuPrint(gOtherText_Size, 11, 7);
+ if (berryInfo->size != 0) {
+ ConvertIntToDecimalStringN(gStringVar1, sizeMajor, STR_CONV_MODE_LEFT_ALIGN, 2);
+ ConvertIntToDecimalStringN(gStringVar2, sizeMinor, STR_CONV_MODE_LEFT_ALIGN, 2);
+ MenuPrint(gContestStatsText_Unknown1, 16, 7);
+ } else {
+ MenuPrint(gOtherText_ThreeQuestions2, 16, 7);
+ }
+
+ MenuPrint(gOtherText_Firm, 11, 9);
+ if (berryInfo->firmness != 0) {
+ MenuPrint(gUnknown_0841192C[berryInfo->firmness - 1], 16, 9);
+ } else {
+ MenuPrint(gOtherText_ThreeQuestions2, 16, 9);
+ }
+}
+
+#ifdef NONMATCHING
+static void sub_8146600(u8 berry) {
+ struct Berry *berryInfo;
+ u16 i;
+
+ berryInfo = GetBerryInfo(berry +1);
+
+ for (i = 0; i < 5; i++) {
+ gUnknown_0203932E.circles[i] |= 0xFFFF;
+ }
+
+ if (berryInfo->spicy) {
+ // argument is the center of the circle
+ gUnknown_0203932E.circles[0] = sub_80A7E5C(48);
+ }
+
+ if (berryInfo->dry) {
+ gUnknown_0203932E.circles[1] = sub_80A7E5C(88);
+ }
+
+ if (berryInfo->sweet) {
+ gUnknown_0203932E.circles[2] = sub_80A7E5C(128);
+ }
+
+ if (berryInfo->bitter) {
+ gUnknown_0203932E.circles[3] = sub_80A7E5C(168);
+ }
+
+ if (berryInfo->sour) {
+ gUnknown_0203932E.circles[4] = sub_80A7E5C(208);
+ }
+}
+#else
+__attribute__((naked))
+static void sub_8146600(u8 berry) {
+ asm(".syntax unified\n\
+ push {r4,r5,lr}\n\
+ lsls r0, 24\n\
+ movs r1, 0x80\n\
+ lsls r1, 17\n\
+ adds r0, r1\n\
+ lsrs r0, 24\n\
+ bl GetBerryInfo\n\
+ adds r4, r0, 0\n\
+ movs r2, 0\n\
+ ldr r5, _08146698 @ =gUnknown_0203932E\n\
+ ldr r0, _0814669C @ =0x0000ffff\n\
+ adds r3, r0, 0\n\
+_0814661A:\n\
+ lsls r0, r2, 1\n\
+ adds r0, r5\n\
+ ldrh r1, [r0]\n\
+ orrs r1, r3\n\
+ strh r1, [r0]\n\
+ adds r0, r2, 0x1\n\
+ lsls r0, 16\n\
+ lsrs r2, r0, 16\n\
+ cmp r2, 0x4\n\
+ bls _0814661A\n\
+ ldrb r0, [r4, 0x15]\n\
+ cmp r0, 0\n\
+ beq _08146642\n\
+ movs r0, 0x30\n\
+ bl sub_80A7E5C\n\
+ ldr r1, _08146698 @ =gUnknown_0203932E\n\
+ lsls r0, 24\n\
+ lsrs r0, 24\n\
+ strh r0, [r1]\n\
+_08146642:\n\
+ ldrb r0, [r4, 0x16]\n\
+ cmp r0, 0\n\
+ beq _08146656\n\
+ movs r0, 0x58\n\
+ bl sub_80A7E5C\n\
+ ldr r1, _08146698 @ =gUnknown_0203932E\n\
+ lsls r0, 24\n\
+ lsrs r0, 24\n\
+ strh r0, [r1, 0x2]\n\
+_08146656:\n\
+ ldrb r0, [r4, 0x17]\n\
+ cmp r0, 0\n\
+ beq _0814666A\n\
+ movs r0, 0x80\n\
+ bl sub_80A7E5C\n\
+ ldr r1, _08146698 @ =gUnknown_0203932E\n\
+ lsls r0, 24\n\
+ lsrs r0, 24\n\
+ strh r0, [r1, 0x4]\n\
+_0814666A:\n\
+ ldrb r0, [r4, 0x18]\n\
+ cmp r0, 0\n\
+ beq _0814667E\n\
+ movs r0, 0xA8\n\
+ bl sub_80A7E5C\n\
+ ldr r1, _08146698 @ =gUnknown_0203932E\n\
+ lsls r0, 24\n\
+ lsrs r0, 24\n\
+ strh r0, [r1, 0x6]\n\
+_0814667E:\n\
+ ldrb r0, [r4, 0x19]\n\
+ cmp r0, 0\n\
+ beq _08146692\n\
+ movs r0, 0xD0\n\
+ bl sub_80A7E5C\n\
+ ldr r1, _08146698 @ =gUnknown_0203932E\n\
+ lsls r0, 24\n\
+ lsrs r0, 24\n\
+ strh r0, [r1, 0x8]\n\
+_08146692:\n\
+ pop {r4,r5}\n\
+ pop {r0}\n\
+ bx r0\n\
+ .align 2, 0\n\
+_08146698: .4byte gUnknown_0203932E\n\
+_0814669C: .4byte 0x0000ffff\n\
+ .syntax divided\n");
+}
+#endif
+
+
+void sub_81466A0(void) {
+ u16 i;
+
+ for (i = 0; i < 5; i++) {
+ if (gUnknown_0203932E.circles[i] != -1) {
+ DestroySprite(&gSprites[gUnknown_0203932E.circles[i]]);
+ gUnknown_0203932E.circles[i] = -1;
+ }
+ }
+}
+
+
+__attribute__((naked))
+static void sub_81466E8(u8 taskId, s32 direction) {
+ asm(".syntax unified\n\
+ push {r4-r7,lr}\n\
+ mov r7, r8\n\
+ push {r7}\n\
+ lsls r0, 24\n\
+ lsrs r7, r0, 24\n\
+ lsls r1, 24\n\
+ lsrs r2, r1, 24\n\
+ lsls r0, r7, 2\n\
+ adds r0, r7\n\
+ lsls r0, 3\n\
+ ldr r1, _08146748 @ =gTasks + 0x8\n\
+ adds r6, r0, r1\n\
+ ldr r4, _0814674C @ =gUnknown_03005D10\n\
+ movs r0, 0xC\n\
+ adds r0, r4\n\
+ mov r8, r0\n\
+ ldrb r1, [r0, 0x1]\n\
+ ldrb r0, [r4, 0xC]\n\
+ adds r1, r0\n\
+ cmp r1, 0\n\
+ bne _08146718\n\
+ lsls r0, r2, 24\n\
+ cmp r0, 0\n\
+ blt _0814678C\n\
+_08146718:\n\
+ adds r0, r1, 0x1\n\
+ lsls r5, r2, 24\n\
+ mov r1, r8\n\
+ ldrb r1, [r1, 0x2]\n\
+ cmp r0, r1\n\
+ bne _08146728\n\
+ cmp r5, 0\n\
+ bgt _0814678C\n\
+_08146728:\n\
+ movs r0, 0x5\n\
+ bl PlaySE\n\
+ mov r2, r8\n\
+ ldrb r3, [r2, 0x1]\n\
+ ldrb r4, [r4, 0xC]\n\
+ mov r12, r4\n\
+ adds r0, r3, r4\n\
+ asrs r2, r5, 24\n\
+ adds r1, r0, r2\n\
+ cmp r1, 0\n\
+ bge _08146750\n\
+ negs r0, r0\n\
+ strh r0, [r6, 0x2]\n\
+ b _08146766\n\
+ .align 2, 0\n\
+_08146748: .4byte gTasks + 0x8\n\
+_0814674C: .4byte gUnknown_03005D10\n\
+_08146750:\n\
+ mov r4, r8\n\
+ ldrb r0, [r4, 0x2]\n\
+ cmp r1, r0\n\
+ blt _08146764\n\
+ subs r0, r3\n\
+ mov r1, r12\n\
+ subs r0, r1\n\
+ subs r0, 0x1\n\
+ strh r0, [r6, 0x2]\n\
+ b _08146766\n\
+_08146764:\n\
+ strh r2, [r6, 0x2]\n\
+_08146766:\n\
+ ldr r0, _08146780 @ =gTasks\n\
+ lsls r1, r7, 2\n\
+ adds r1, r7\n\
+ lsls r1, 3\n\
+ adds r1, r0\n\
+ ldr r0, _08146784 @ =sub_8146798\n\
+ str r0, [r1]\n\
+ cmp r5, 0\n\
+ bge _08146788\n\
+ movs r2, 0x10\n\
+ negs r2, r2\n\
+ adds r0, r2, 0\n\
+ b _0814678A\n\
+ .align 2, 0\n\
+_08146780: .4byte gTasks\n\
+_08146784: .4byte sub_8146798\n\
+_08146788:\n\
+ movs r0, 0x10\n\
+_0814678A:\n\
+ strh r0, [r6]\n\
+_0814678C:\n\
+ pop {r3}\n\
+ mov r8, r3\n\
+ pop {r4-r7}\n\
+ pop {r0}\n\
+ bx r0\n\
+ .syntax divided\n");
+}
+
+__attribute__((naked))
+void sub_8146798(u8 berry) {
+ asm(".syntax unified\n\
+ push {r4,r5,lr}\n\
+ lsls r0, 24\n\
+ lsrs r4, r0, 24\n\
+ lsls r0, r4, 2\n\
+ adds r0, r4\n\
+ lsls r0, 3\n\
+ ldr r1, _08146800 @ =gTasks + 0x8\n\
+ adds r0, r1\n\
+ ldr r2, _08146804 @ =gUnknown_030041B4\n\
+ ldrh r1, [r0]\n\
+ ldrh r5, [r2]\n\
+ adds r3, r1, r5\n\
+ movs r1, 0xFF\n\
+ ands r3, r1\n\
+ strh r3, [r2]\n\
+ movs r1, 0\n\
+ ldrsh r0, [r0, r1]\n\
+ cmp r0, 0\n\
+ ble _081467C2\n\
+ cmp r3, 0x90\n\
+ beq _081467CA\n\
+_081467C2:\n\
+ cmp r0, 0\n\
+ bge _081467E0\n\
+ cmp r3, 0x70\n\
+ bne _081467E0\n\
+_081467CA:\n\
+ ldr r0, _08146808 @ =gTasks\n\
+ lsls r1, r4, 2\n\
+ adds r1, r4\n\
+ lsls r1, 3\n\
+ adds r1, r0\n\
+ movs r0, 0xA\n\
+ ldrsb r0, [r1, r0]\n\
+ bl sub_8146810\n\
+ bl sub_81468BC\n\
+_081467E0:\n\
+ ldr r0, _08146804 @ =gUnknown_030041B4\n\
+ ldrh r2, [r0]\n\
+ cmp r2, 0\n\
+ bne _081467FA\n\
+ ldr r0, _08146808 @ =gTasks\n\
+ lsls r1, r4, 2\n\
+ adds r1, r4\n\
+ lsls r1, 3\n\
+ adds r1, r0\n\
+ strh r2, [r1, 0x8]\n\
+ strh r2, [r1, 0xA]\n\
+ ldr r0, _0814680C @ =sub_8146480\n\
+ str r0, [r1]\n\
+_081467FA:\n\
+ pop {r4,r5}\n\
+ pop {r0}\n\
+ bx r0\n\
+ .align 2, 0\n\
+_08146800: .4byte gTasks + 0x8\n\
+_08146804: .4byte gUnknown_030041B4\n\
+_08146808: .4byte gTasks\n\
+_0814680C: .4byte sub_8146480\n\
+ .syntax divided\n");
+}
+
+__attribute__((naked))
+void sub_8146810(u8 berry) {
+ asm(".syntax unified\n\
+ push {r4-r6,lr}\n\
+ lsls r0, 24\n\
+ lsrs r3, r0, 24\n\
+ adds r4, r3, 0\n\
+ lsls r0, r3, 24\n\
+ asrs r1, r0, 24\n\
+ cmp r1, 0\n\
+ ble _08146848\n\
+ ldr r0, _08146840 @ =gUnknown_03005D10\n\
+ adds r4, r0, 0\n\
+ adds r4, 0xC\n\
+ ldrb r2, [r0, 0xC]\n\
+ adds r1, r2, r1\n\
+ adds r6, r0, 0\n\
+ cmp r1, 0x7\n\
+ ble _08146844\n\
+ adds r0, r3, 0\n\
+ adds r0, 0xF9\n\
+ adds r0, r2, r0\n\
+ ldrb r1, [r4, 0x1]\n\
+ adds r0, r1\n\
+ strb r0, [r4, 0x1]\n\
+ movs r0, 0x7\n\
+ b _0814686E\n\
+ .align 2, 0\n\
+_08146840: .4byte gUnknown_03005D10\n\
+_08146844:\n\
+ adds r0, r2, r3\n\
+ b _0814686E\n\
+_08146848:\n\
+ ldr r0, _08146868 @ =gUnknown_03005D10\n\
+ adds r5, r0, 0\n\
+ adds r5, 0xC\n\
+ ldrb r2, [r0, 0xC]\n\
+ adds r1, r2, r1\n\
+ adds r6, r0, 0\n\
+ cmp r1, 0\n\
+ bge _0814686C\n\
+ adds r0, r2, r3\n\
+ ldrb r1, [r5, 0x1]\n\
+ adds r0, r1\n\
+ movs r1, 0\n\
+ strb r0, [r5, 0x1]\n\
+ strb r1, [r6, 0xC]\n\
+ b _08146870\n\
+ .align 2, 0\n\
+_08146868: .4byte gUnknown_03005D10\n\
+_0814686C:\n\
+ adds r0, r2, r4\n\
+_0814686E:\n\
+ strb r0, [r6, 0xC]\n\
+_08146870:\n\
+ ldr r2, _081468AC @ =gScriptItemId\n\
+ movs r0, 0x3\n\
+ lsls r0, 2\n\
+ adds r0, r6\n\
+ ldrb r1, [r0, 0x1]\n\
+ ldrb r0, [r0]\n\
+ adds r1, r0\n\
+ ldr r0, _081468B0 @ =gUnknown_03005D24\n\
+ ldr r0, [r0]\n\
+ lsls r1, 2\n\
+ adds r1, r0\n\
+ ldrh r0, [r1]\n\
+ strh r0, [r2]\n\
+ ldr r0, _081468B4 @ =gUnknown_0203932C\n\
+ ldrb r1, [r0]\n\
+ lsls r0, r1, 4\n\
+ adds r0, r1\n\
+ lsls r0, 2\n\
+ ldr r1, _081468B8 @ =gSprites\n\
+ adds r0, r1\n\
+ bl DestroySprite\n\
+ bl sub_81466A0\n\
+ bl sub_80A7DD4\n\
+ pop {r4-r6}\n\
+ pop {r0}\n\
+ bx r0\n\
+ .align 2, 0\n\
+_081468AC: .4byte gScriptItemId\n\
+_081468B0: .4byte gUnknown_03005D24\n\
+_081468B4: .4byte gUnknown_0203932C\n\
+_081468B8: .4byte gSprites\n\
+ .syntax divided\n");
+}
+
+void sub_81468BC(void) {
+ MenuZeroFillWindowRect(0, 4, 29, 19);
+ sub_81464E4();
+
+ // center of berry sprite
+ gUnknown_0203932C = sub_80A7D8C(gScriptItemId + OFFSET_7B, 56, 64);
+
+ sub_8146600(gScriptItemId + OFFSET_7B);
+}
diff --git a/src/blend_palette.c b/src/blend_palette.c
index c9503388f..843c50ac1 100644
--- a/src/blend_palette.c
+++ b/src/blend_palette.c
@@ -1,4 +1,5 @@
#include "global.h"
+#include "blend_palette.h"
#include "palette.h"
void BlendPalette(u16 palOffset, u16 numEntries, u8 coeff, u16 blendColor)
diff --git a/src/calculate_base_damage.c b/src/calculate_base_damage.c
new file mode 100644
index 000000000..86446e588
--- /dev/null
+++ b/src/calculate_base_damage.c
@@ -0,0 +1,1487 @@
+#include "global.h"
+#include "text.h"
+#include "string_util.h"
+#include "pokemon.h"
+#include "species.h"
+#include "main.h"
+#include "sprite.h"
+#include "berry.h"
+#include "item.h"
+#include "abilities.h"
+#include "hold_effects.h"
+#include "event_data.h"
+#include "battle.h"
+#include "items.h"
+
+extern u8 gPlayerPartyCount;
+extern struct Pokemon gPlayerParty[6];
+extern u8 gEnemyPartyCount;
+extern struct Pokemon gEnemyParty[6];
+
+extern u16 unk_20160BC[];
+extern struct SecretBaseRecord gSecretBaseRecord;
+extern u32 dword_2017100[];
+extern u16 gBattleTypeFlags;
+extern struct BattlePokemon gBattleMons[4];
+extern u16 gUnknown_02024BE6;
+extern u8 byte_2024C06;
+extern u8 gCritMultiplier;
+extern u16 gBattleWeather;
+extern struct BattleEnigmaBerry gEnigmaBerries[];
+extern u16 gBattleMovePower;
+extern struct SpriteTemplate gUnknown_02024E8C;
+extern u16 gTrainerBattleOpponent;
+extern struct PokemonStorage gPokemonStorage;
+
+extern u8 gBadEggNickname[];
+extern u8 gEggNickname[];
+extern u32 gBitTable[];
+extern struct BaseStats gBaseStats[];
+extern u8 gSpeciesNames[][11];
+extern struct BattleMove gBattleMoves[];
+extern struct SpriteTemplate gSpriteTemplate_8208288[];
+extern union AmimCmd *gSpriteAnimTable_81E7C64[];
+extern union AnimCmd **gUnknown_081EC2A4[];
+extern union AnimCmd **gUnknown_081ECACC[];
+extern u8 gTrainerClassToPicIndex[];
+extern u8 gTrainerClassToNameIndex[];
+extern u8 gSecretBaseTrainerClasses[];
+extern u8 gUnknown_08208238[];
+extern u8 gUnknown_0820823C[];
+extern u8 gStatStageRatios[];
+extern u8 gHoldEffectToType[][2];
+
+extern u8 battle_side_get_owner(u8);
+extern u8 sub_8018324(u8, u8, u8, u8, u16);
+extern u8 sub_803C348(u8);
+
+#define APPLY_STAT_MOD(var, mon, stat, statIndex) \
+{ \
+ (var) = (stat) * (gStatStageRatios)[(mon)->statStages[(statIndex)] * 2]; \
+ (var) /= (gStatStageRatios + 1)[(mon)->statStages[(statIndex)] * 2]; \
+}
+
+#ifdef NONMATCHING
+s32 CalculateBaseDamage(struct BattlePokemon *attacker, struct BattlePokemon *defender, u32 move, u16 a4, u16 powerOverride, u8 typeOverride, u8 a7, u8 a8)
+{
+ s32 i;
+ s32 damage = 0;
+ u8 type;
+ u16 attack, defense;
+ u16 spAttack, spDefense;
+ u8 defenderHoldEffect;
+ u8 defenderHoldEffectParam;
+ u8 attackerHoldEffect;
+ u8 attackerHoldEffectParam;
+ s32 a, b;
+
+ if (!powerOverride)
+ gBattleMovePower = gBattleMoves[move].power;
+ else
+ gBattleMovePower = powerOverride;
+
+ if (!typeOverride)
+ type = gBattleMoves[move].type;
+ else
+ type = typeOverride & 0x3F;
+
+ attack = attacker->attack;
+ defense = defender->defense;
+ spAttack = attacker->spAttack;
+ spDefense = defender->spDefense;
+
+ if (attacker->item == ITEM_ENIGMA_BERRY)
+ {
+ attackerHoldEffect = gEnigmaBerries[a7].holdEffect;
+ attackerHoldEffectParam = gEnigmaBerries[a7].holdEffectParam;
+ }
+ else
+ {
+ attackerHoldEffect = ItemId_GetHoldEffect(attacker->item);
+ attackerHoldEffectParam = ItemId_GetHoldEffectParam(attacker->item);
+ }
+
+ if (defender->item == ITEM_ENIGMA_BERRY)
+ {
+ defenderHoldEffect = gEnigmaBerries[a8].holdEffect;
+ defenderHoldEffectParam = gEnigmaBerries[a8].holdEffectParam;
+ }
+ else
+ {
+ defenderHoldEffect = ItemId_GetHoldEffect(defender->item);
+ defenderHoldEffectParam = ItemId_GetHoldEffectParam(defender->item);
+ }
+
+ if (attacker->ability == ABILITY_HUGE_POWER || attacker->ability == ABILITY_PURE_POWER)
+ attack *= 2;
+
+ if (!(gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_EREADER_TRAINER)))
+ {
+ if ((gBattleTypeFlags & BATTLE_TYPE_TRAINER)
+ && gTrainerBattleOpponent != 1024
+ && FlagGet(BADGE01_GET)
+ && !battle_side_get_owner(a7))
+ attack = (110 * attack) / 100;
+
+ if (!(gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_EREADER_TRAINER)))
+ {
+ if ((gBattleTypeFlags & BATTLE_TYPE_TRAINER)
+ && gTrainerBattleOpponent != 1024
+ && FlagGet(BADGE05_GET)
+ && !battle_side_get_owner(a8))
+ defense = (110 * defense) / 100;
+
+ if (!(gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_EREADER_TRAINER)))
+ {
+ if ((gBattleTypeFlags & BATTLE_TYPE_TRAINER)
+ && gTrainerBattleOpponent != 1024
+ && FlagGet(BADGE07_GET)
+ && !battle_side_get_owner(a7))
+ spAttack = (110 * spAttack) / 100;
+
+ if (!(gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_EREADER_TRAINER)))
+ {
+ if ((gBattleTypeFlags & BATTLE_TYPE_TRAINER)
+ && gTrainerBattleOpponent != 1024
+ && FlagGet(BADGE07_GET)
+ && !battle_side_get_owner(a8))
+ spDefense = (110 * spDefense) / 100;
+ }
+ }
+ }
+ }
+
+ for (i = 0; i < 17; i++)
+ {
+ if (attackerHoldEffect == gHoldEffectToType[i][0]
+ && type == gHoldEffectToType[i][1])
+ {
+ if (type <= 8)
+ attack = (attack * (attackerHoldEffectParam + 100)) / 100;
+ else
+ spAttack = (spAttack * (attackerHoldEffectParam + 100)) / 100;
+ break;
+ }
+ }
+
+ if (attackerHoldEffect == HOLD_EFFECT_CHOICE_BAND)
+ attack = (150 * attack) / 100;
+ if (attackerHoldEffect == HOLD_EFFECT_SOUL_DEW && !(gBattleTypeFlags & BATTLE_TYPE_BATTLE_TOWER) && (attacker->species == SPECIES_LATIAS || attacker->species == SPECIES_LATIOS))
+ spAttack = (150 * spAttack) / 100;
+ if (defenderHoldEffect == HOLD_EFFECT_SOUL_DEW && !(gBattleTypeFlags & BATTLE_TYPE_BATTLE_TOWER) && (defender->species == SPECIES_LATIAS || defender->species == SPECIES_LATIOS))
+ spDefense = (150 * spDefense) / 100;
+ if (attackerHoldEffect == HOLD_EFFECT_DEEP_SEA_TOOTH && attacker->species == SPECIES_CLAMPERL)
+ spAttack *= 2;
+ if (defenderHoldEffect == HOLD_EFFECT_DEEP_SEA_SCALE && defender->species == SPECIES_CLAMPERL)
+ spDefense *= 2;
+ if (attackerHoldEffect == HOLD_EFFECT_LIGHT_BALL && attacker->species == SPECIES_PIKACHU)
+ spAttack *= 2;
+ if (defenderHoldEffect == HOLD_EFFECT_METAL_POWDER && defender->species == SPECIES_DITTO)
+ defense *= 2;
+ if (attackerHoldEffect == HOLD_EFFECT_THICK_CLUB && (attacker->species == SPECIES_CUBONE || attacker->species == SPECIES_MAROWAK))
+ attack *= 2;
+ if (defender->ability == ABILITY_THICK_FAT && (type == TYPE_FIRE || type == TYPE_ICE))
+ spAttack /= 2;
+ if (attacker->ability == ABILITY_HUSTLE)
+ attack = (150 * attack) / 100;
+ if (attacker->ability == ABILITY_PLUS && sub_8018324(0xE, 0, ABILITY_MINUS, 0, 0))
+ spAttack = (150 * spAttack) / 100;
+ if (attacker->ability == ABILITY_MINUS && sub_8018324(0xE, 0, ABILITY_PLUS, 0, 0))
+ spAttack = (150 * spAttack) / 100;
+ if (attacker->ability == ABILITY_GUTS && attacker->status1)
+ attack = (150 * attack) / 100;
+ if (defender->ability == ABILITY_MARVEL_SCALE && defender->status1)
+ defense = (150 * defense) / 100;
+ if (type == TYPE_ELECTRIC && sub_8018324(0xE, 0, 0, 0xFD, 0))
+ gBattleMovePower /= 2;
+ if (type == TYPE_FIRE && sub_8018324(0xE, 0, 0, 0xFE, 0))
+ gBattleMovePower /= 2;
+ if (type == TYPE_GRASS && attacker->ability == ABILITY_OVERGROW && attacker->hp <= (attacker->maxHP / 3))
+ gBattleMovePower = (150 * gBattleMovePower) / 100;
+ if (type == TYPE_FIRE && attacker->ability == ABILITY_BLAZE && attacker->hp <= (attacker->maxHP / 3))
+ gBattleMovePower = (150 * gBattleMovePower) / 100;
+ if (type == TYPE_WATER && attacker->ability == ABILITY_TORRENT && attacker->hp <= (attacker->maxHP / 3))
+ gBattleMovePower = (150 * gBattleMovePower) / 100;
+ if (type == TYPE_BUG && attacker->ability == ABILITY_SWARM && attacker->hp <= (attacker->maxHP / 3))
+ gBattleMovePower = (150 * gBattleMovePower) / 100;
+ if (gBattleMoves[gUnknown_02024BE6].effect == 7)
+ defense /= 2;
+
+ if (type < TYPE_MYSTERY) // is physical?
+ {
+ if (gCritMultiplier == 2)
+ {
+ if (attacker->statStages[1] > 6)
+ APPLY_STAT_MOD(a, attacker, attack, 1)
+ else
+ a = attack;
+ }
+ else
+ APPLY_STAT_MOD(a, attacker, attack, 1)
+
+ a = a * gBattleMovePower * (2 * attacker->level / 5 + 2);
+
+ if (gCritMultiplier == 2)
+ {
+ if (defender->statStages[2] < 6)
+ APPLY_STAT_MOD(b, defender, defense, 2)
+ else
+ b = defense;
+ }
+ else
+ APPLY_STAT_MOD(b, defender, defense, 2)
+
+ damage = (a / b) / 50;
+
+ if ((attacker->status1 & 0x10) && attacker->ability != ABILITY_GUTS)
+ damage /= 2;
+
+ if ((a4 & 1) && gCritMultiplier == 1)
+ {
+ if ((gBattleTypeFlags & BATTLE_TYPE_DOUBLE) && sub_803C348(2) == 2)
+ damage = 2 * (damage / 3);
+ else
+ damage /= 2;
+ }
+
+ if ((gBattleTypeFlags & BATTLE_TYPE_DOUBLE) && gBattleMoves[move].target == 8 && sub_803C348(2) == 2)
+ damage /= 2;
+
+ // moves always do at least 1 damage.
+ if (damage == 0)
+ damage = 1;
+ }
+
+ if (type == TYPE_MYSTERY)
+ damage = 0; // is ??? type. does 0 damage.
+
+ if (type > TYPE_MYSTERY) // is special?
+ {
+ if (gCritMultiplier == 2)
+ {
+ if (attacker->statStages[4] > 6)
+ APPLY_STAT_MOD(a, attacker, spAttack, 4)
+ else
+ a = spAttack;
+ }
+ else
+ APPLY_STAT_MOD(a, attacker, spAttack, 4)
+
+ a = a * gBattleMovePower * (2 * attacker->level / 5 + 2);
+
+ if (gCritMultiplier == 2)
+ {
+ if (defender->statStages[5] < 6)
+ APPLY_STAT_MOD(b, defender, spDefense, 5)
+ else
+ b = spDefense;
+ }
+ else
+ APPLY_STAT_MOD(b, defender, spDefense, 5)
+
+ damage = (a / b) / 50;
+
+ if ((a4 & 2) && gCritMultiplier == 1)
+ {
+ if ((gBattleTypeFlags & BATTLE_TYPE_DOUBLE) && sub_803C348(2) == 2)
+ damage = 2 * (damage / 3);
+ else
+ damage /= 2;
+ }
+
+ if ((gBattleTypeFlags & BATTLE_TYPE_DOUBLE) && gBattleMoves[move].target == 8 && sub_803C348(2) == 2)
+ damage /= 2;
+
+ // are effects of weather negated with cloud nine or air lock?
+ if (!sub_8018324(0xE, 0, ABILITY_CLOUD_NINE, 0, 0) && !sub_8018324(0xE, 0, ABILITY_AIR_LOCK, 0, 0))
+ {
+ // rain?
+ if (gBattleWeather & 1)
+ {
+ if (type == TYPE_FIRE)
+ damage /= 2;
+ else if (type == TYPE_WATER)
+ damage = (15 * damage) / 10;
+ }
+
+ // does lack of sun half solar beam damage?
+ if ((gBattleWeather & 0x9F) && gUnknown_02024BE6 == 76)
+ damage /= 2;
+
+ // sunny?
+ if (gBattleWeather & 0x60)
+ {
+ if (type == TYPE_FIRE)
+ damage = (15 * damage) / 10;
+ else if (type == TYPE_WATER)
+ damage /= 2;
+ }
+ }
+
+ // flash fire triggered?
+ if ((dword_2017100[a7] & 1) && type == TYPE_FIRE)
+ damage = (15 * damage) / 10;
+ }
+
+ return damage + 2;
+}
+#else
+__attribute__((naked))
+s32 CalculateBaseDamage(struct BattlePokemon *attacker, struct BattlePokemon *defender, u32 move, u16 a4, u16 powerOverride, u8 typeOverride, u8 a7, u8 a8)
+{
+ 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\
+ adds r7, r0, 0\n\
+ str r1, [sp, 0x4]\n\
+ str r2, [sp, 0x8]\n\
+ ldr r0, [sp, 0x4C]\n\
+ ldr r1, [sp, 0x50]\n\
+ ldr r2, [sp, 0x54]\n\
+ ldr r4, [sp, 0x58]\n\
+ lsls r3, 16\n\
+ lsrs r3, 16\n\
+ str r3, [sp, 0xC]\n\
+ lsls r0, 16\n\
+ lsrs r3, r0, 16\n\
+ lsls r1, 24\n\
+ lsrs r6, r1, 24\n\
+ lsls r2, 24\n\
+ lsrs r2, 24\n\
+ str r2, [sp, 0x10]\n\
+ lsls r4, 24\n\
+ lsrs r4, 24\n\
+ movs r5, 0\n\
+ cmp r3, 0\n\
+ bne _0803BA80\n\
+ ldr r2, _0803BA78 @ =gBattleMovePower\n\
+ ldr r1, _0803BA7C @ =gBattleMoves\n\
+ ldr r3, [sp, 0x8]\n\
+ lsls r0, r3, 1\n\
+ adds r0, r3\n\
+ lsls r0, 2\n\
+ adds r0, r1\n\
+ ldrb r0, [r0, 0x1]\n\
+ strh r0, [r2]\n\
+ b _0803BA84\n\
+ .align 2, 0\n\
+_0803BA78: .4byte gBattleMovePower\n\
+_0803BA7C: .4byte gBattleMoves\n\
+_0803BA80:\n\
+ ldr r0, _0803BA9C @ =gBattleMovePower\n\
+ strh r3, [r0]\n\
+_0803BA84:\n\
+ cmp r6, 0\n\
+ bne _0803BAA4\n\
+ ldr r1, _0803BAA0 @ =gBattleMoves\n\
+ ldr r6, [sp, 0x8]\n\
+ lsls r0, r6, 1\n\
+ adds r0, r6\n\
+ lsls r0, 2\n\
+ adds r0, r1\n\
+ ldrb r0, [r0, 0x2]\n\
+ mov r9, r0\n\
+ b _0803BAAE\n\
+ .align 2, 0\n\
+_0803BA9C: .4byte gBattleMovePower\n\
+_0803BAA0: .4byte gBattleMoves\n\
+_0803BAA4:\n\
+ movs r0, 0x3F\n\
+ mov r9, r0\n\
+ mov r1, r9\n\
+ ands r1, r6\n\
+ mov r9, r1\n\
+_0803BAAE:\n\
+ ldrh r6, [r7, 0x2]\n\
+ ldr r2, [sp, 0x4]\n\
+ ldrh r2, [r2, 0x4]\n\
+ str r2, [sp, 0x14]\n\
+ ldrh r3, [r7, 0x8]\n\
+ mov r8, r3\n\
+ ldr r0, [sp, 0x4]\n\
+ ldrh r0, [r0, 0xA]\n\
+ str r0, [sp, 0x18]\n\
+ ldrh r0, [r7, 0x2E]\n\
+ cmp r0, 0xAF\n\
+ bne _0803BAE0\n\
+ ldr r1, _0803BADC @ =gEnigmaBerries\n\
+ ldr r2, [sp, 0x10]\n\
+ lsls r0, r2, 3\n\
+ subs r0, r2\n\
+ lsls r0, 2\n\
+ adds r0, r1\n\
+ ldrb r3, [r0, 0x7]\n\
+ mov r10, r3\n\
+ ldrb r0, [r0, 0x1A]\n\
+ b _0803BAF6\n\
+ .align 2, 0\n\
+_0803BADC: .4byte gEnigmaBerries\n\
+_0803BAE0:\n\
+ ldrh r0, [r7, 0x2E]\n\
+ bl ItemId_GetHoldEffect\n\
+ lsls r0, 24\n\
+ lsrs r0, 24\n\
+ mov r10, r0\n\
+ ldrh r0, [r7, 0x2E]\n\
+ bl ItemId_GetHoldEffectParam\n\
+ lsls r0, 24\n\
+ lsrs r0, 24\n\
+_0803BAF6:\n\
+ str r0, [sp, 0x20]\n\
+ ldr r1, [sp, 0x4]\n\
+ ldrh r0, [r1, 0x2E]\n\
+ cmp r0, 0xAF\n\
+ bne _0803BB26\n\
+ ldr r1, _0803BB10 @ =gEnigmaBerries\n\
+ lsls r0, r4, 3\n\
+ subs r0, r4\n\
+ lsls r0, 2\n\
+ adds r0, r1\n\
+ ldrb r0, [r0, 0x7]\n\
+ str r0, [sp, 0x1C]\n\
+ b _0803BB3C\n\
+ .align 2, 0\n\
+_0803BB10: .4byte gEnigmaBerries\n\
+_0803BB14:\n\
+ ldr r0, [sp, 0x20]\n\
+ adds r0, 0x64\n\
+ muls r0, r6\n\
+ movs r1, 0x64\n\
+ bl __divsi3\n\
+ lsls r0, 16\n\
+ lsrs r6, r0, 16\n\
+ b _0803BCDC\n\
+_0803BB26:\n\
+ ldr r2, [sp, 0x4]\n\
+ ldrh r0, [r2, 0x2E]\n\
+ bl ItemId_GetHoldEffect\n\
+ lsls r0, 24\n\
+ lsrs r0, 24\n\
+ str r0, [sp, 0x1C]\n\
+ ldr r3, [sp, 0x4]\n\
+ ldrh r0, [r3, 0x2E]\n\
+ bl ItemId_GetHoldEffectParam\n\
+_0803BB3C:\n\
+ adds r0, r7, 0\n\
+ adds r0, 0x20\n\
+ ldrb r1, [r0]\n\
+ str r0, [sp, 0x24]\n\
+ cmp r1, 0x25\n\
+ beq _0803BB4C\n\
+ cmp r1, 0x4A\n\
+ bne _0803BB50\n\
+_0803BB4C:\n\
+ lsls r0, r6, 17\n\
+ lsrs r6, r0, 16\n\
+_0803BB50:\n\
+ ldr r0, _0803BCB8 @ =gBattleTypeFlags\n\
+ ldrh r1, [r0]\n\
+ ldr r0, _0803BCBC @ =0x00000902\n\
+ ands r0, r1\n\
+ cmp r0, 0\n\
+ beq _0803BB5E\n\
+ b _0803BC78\n\
+_0803BB5E:\n\
+ movs r0, 0x8\n\
+ ands r0, r1\n\
+ cmp r0, 0\n\
+ beq _0803BB98\n\
+ ldr r0, _0803BCC0 @ =gTrainerBattleOpponent\n\
+ ldrh r1, [r0]\n\
+ movs r0, 0x80\n\
+ lsls r0, 3\n\
+ cmp r1, r0\n\
+ beq _0803BB98\n\
+ ldr r0, _0803BCC4 @ =0x00000807\n\
+ bl FlagGet\n\
+ lsls r0, 24\n\
+ cmp r0, 0\n\
+ beq _0803BB98\n\
+ ldr r0, [sp, 0x10]\n\
+ bl battle_side_get_owner\n\
+ lsls r0, 24\n\
+ cmp r0, 0\n\
+ bne _0803BB98\n\
+ movs r0, 0x6E\n\
+ muls r0, r6\n\
+ movs r1, 0x64\n\
+ bl __divsi3\n\
+ lsls r0, 16\n\
+ lsrs r6, r0, 16\n\
+_0803BB98:\n\
+ ldr r0, _0803BCB8 @ =gBattleTypeFlags\n\
+ ldrh r1, [r0]\n\
+ ldr r0, _0803BCBC @ =0x00000902\n\
+ ands r0, r1\n\
+ cmp r0, 0\n\
+ bne _0803BC78\n\
+ movs r0, 0x8\n\
+ ands r0, r1\n\
+ cmp r0, 0\n\
+ beq _0803BBE2\n\
+ ldr r0, _0803BCC0 @ =gTrainerBattleOpponent\n\
+ ldrh r1, [r0]\n\
+ movs r0, 0x80\n\
+ lsls r0, 3\n\
+ cmp r1, r0\n\
+ beq _0803BBE2\n\
+ ldr r0, _0803BCC8 @ =0x0000080b\n\
+ bl FlagGet\n\
+ lsls r0, 24\n\
+ cmp r0, 0\n\
+ beq _0803BBE2\n\
+ adds r0, r4, 0\n\
+ bl battle_side_get_owner\n\
+ lsls r0, 24\n\
+ cmp r0, 0\n\
+ bne _0803BBE2\n\
+ movs r0, 0x6E\n\
+ ldr r1, [sp, 0x14]\n\
+ muls r0, r1\n\
+ movs r1, 0x64\n\
+ bl __divsi3\n\
+ lsls r0, 16\n\
+ lsrs r0, 16\n\
+ str r0, [sp, 0x14]\n\
+_0803BBE2:\n\
+ ldr r0, _0803BCB8 @ =gBattleTypeFlags\n\
+ ldrh r1, [r0]\n\
+ ldr r0, _0803BCBC @ =0x00000902\n\
+ ands r0, r1\n\
+ cmp r0, 0\n\
+ bne _0803BC78\n\
+ movs r0, 0x8\n\
+ ands r0, r1\n\
+ cmp r0, 0\n\
+ beq _0803BC2E\n\
+ ldr r0, _0803BCC0 @ =gTrainerBattleOpponent\n\
+ ldrh r1, [r0]\n\
+ movs r0, 0x80\n\
+ lsls r0, 3\n\
+ cmp r1, r0\n\
+ beq _0803BC2E\n\
+ ldr r0, _0803BCCC @ =0x0000080d\n\
+ bl FlagGet\n\
+ lsls r0, 24\n\
+ cmp r0, 0\n\
+ beq _0803BC2E\n\
+ ldr r0, [sp, 0x10]\n\
+ bl battle_side_get_owner\n\
+ lsls r0, 24\n\
+ cmp r0, 0\n\
+ bne _0803BC2E\n\
+ movs r0, 0x6E\n\
+ mov r2, r8\n\
+ muls r2, r0\n\
+ adds r0, r2, 0\n\
+ movs r1, 0x64\n\
+ bl __divsi3\n\
+ lsls r0, 16\n\
+ lsrs r0, 16\n\
+ mov r8, r0\n\
+_0803BC2E:\n\
+ ldr r0, _0803BCB8 @ =gBattleTypeFlags\n\
+ ldrh r1, [r0]\n\
+ ldr r0, _0803BCBC @ =0x00000902\n\
+ ands r0, r1\n\
+ cmp r0, 0\n\
+ bne _0803BC78\n\
+ movs r0, 0x8\n\
+ ands r0, r1\n\
+ cmp r0, 0\n\
+ beq _0803BC78\n\
+ ldr r0, _0803BCC0 @ =gTrainerBattleOpponent\n\
+ ldrh r1, [r0]\n\
+ movs r0, 0x80\n\
+ lsls r0, 3\n\
+ cmp r1, r0\n\
+ beq _0803BC78\n\
+ ldr r0, _0803BCCC @ =0x0000080d\n\
+ bl FlagGet\n\
+ lsls r0, 24\n\
+ cmp r0, 0\n\
+ beq _0803BC78\n\
+ adds r0, r4, 0\n\
+ bl battle_side_get_owner\n\
+ lsls r0, 24\n\
+ cmp r0, 0\n\
+ bne _0803BC78\n\
+ movs r0, 0x6E\n\
+ ldr r3, [sp, 0x18]\n\
+ muls r0, r3\n\
+ movs r1, 0x64\n\
+ bl __divsi3\n\
+ lsls r0, 16\n\
+ lsrs r0, 16\n\
+ str r0, [sp, 0x18]\n\
+_0803BC78:\n\
+ movs r2, 0\n\
+ ldr r4, _0803BCD0 @ =gHoldEffectToType\n\
+ ldr r0, [sp, 0x4]\n\
+ adds r0, 0x20\n\
+ str r0, [sp, 0x28]\n\
+ adds r3, r4, 0\n\
+_0803BC84:\n\
+ lsls r1, r2, 1\n\
+ ldrb r0, [r3]\n\
+ cmp r10, r0\n\
+ bne _0803BCD4\n\
+ adds r0, r4, 0x1\n\
+ adds r0, r1, r0\n\
+ ldrb r0, [r0]\n\
+ cmp r9, r0\n\
+ bne _0803BCD4\n\
+ mov r1, r9\n\
+ cmp r1, 0x8\n\
+ bhi _0803BC9E\n\
+ b _0803BB14\n\
+_0803BC9E:\n\
+ ldr r0, [sp, 0x20]\n\
+ adds r0, 0x64\n\
+ mov r2, r8\n\
+ muls r2, r0\n\
+ adds r0, r2, 0\n\
+ movs r1, 0x64\n\
+ bl __divsi3\n\
+ lsls r0, 16\n\
+ lsrs r0, 16\n\
+ mov r8, r0\n\
+ b _0803BCDC\n\
+ .align 2, 0\n\
+_0803BCB8: .4byte gBattleTypeFlags\n\
+_0803BCBC: .4byte 0x00000902\n\
+_0803BCC0: .4byte gTrainerBattleOpponent\n\
+_0803BCC4: .4byte 0x00000807\n\
+_0803BCC8: .4byte 0x0000080b\n\
+_0803BCCC: .4byte 0x0000080d\n\
+_0803BCD0: .4byte gHoldEffectToType\n\
+_0803BCD4:\n\
+ adds r3, 0x2\n\
+ adds r2, 0x1\n\
+ cmp r2, 0x10\n\
+ bls _0803BC84\n\
+_0803BCDC:\n\
+ mov r3, r10\n\
+ cmp r3, 0x1D\n\
+ bne _0803BCF0\n\
+ movs r0, 0x96\n\
+ muls r0, r6\n\
+ movs r1, 0x64\n\
+ bl __divsi3\n\
+ lsls r0, 16\n\
+ lsrs r6, r0, 16\n\
+_0803BCF0:\n\
+ mov r0, r10\n\
+ cmp r0, 0x22\n\
+ bne _0803BD28\n\
+ ldr r0, _0803BFDC @ =gBattleTypeFlags\n\
+ ldrh r1, [r0]\n\
+ movs r0, 0x80\n\
+ lsls r0, 1\n\
+ ands r0, r1\n\
+ cmp r0, 0\n\
+ bne _0803BD28\n\
+ ldr r1, _0803BFE0 @ =0xfffffe69\n\
+ adds r0, r1, 0\n\
+ ldrh r2, [r7]\n\
+ adds r0, r2\n\
+ lsls r0, 16\n\
+ lsrs r0, 16\n\
+ cmp r0, 0x1\n\
+ bhi _0803BD28\n\
+ movs r0, 0x96\n\
+ mov r3, r8\n\
+ muls r3, r0\n\
+ adds r0, r3, 0\n\
+ movs r1, 0x64\n\
+ bl __divsi3\n\
+ lsls r0, 16\n\
+ lsrs r0, 16\n\
+ mov r8, r0\n\
+_0803BD28:\n\
+ ldr r0, [sp, 0x1C]\n\
+ cmp r0, 0x22\n\
+ bne _0803BD60\n\
+ ldr r0, _0803BFDC @ =gBattleTypeFlags\n\
+ ldrh r1, [r0]\n\
+ movs r0, 0x80\n\
+ lsls r0, 1\n\
+ ands r0, r1\n\
+ cmp r0, 0\n\
+ bne _0803BD60\n\
+ ldr r1, _0803BFE0 @ =0xfffffe69\n\
+ adds r0, r1, 0\n\
+ ldr r2, [sp, 0x4]\n\
+ ldrh r2, [r2]\n\
+ adds r0, r2\n\
+ lsls r0, 16\n\
+ lsrs r0, 16\n\
+ cmp r0, 0x1\n\
+ bhi _0803BD60\n\
+ movs r0, 0x96\n\
+ ldr r3, [sp, 0x18]\n\
+ muls r0, r3\n\
+ movs r1, 0x64\n\
+ bl __divsi3\n\
+ lsls r0, 16\n\
+ lsrs r0, 16\n\
+ str r0, [sp, 0x18]\n\
+_0803BD60:\n\
+ mov r0, r10\n\
+ cmp r0, 0x23\n\
+ bne _0803BD76\n\
+ ldrh r1, [r7]\n\
+ ldr r0, _0803BFE4 @ =0x00000175\n\
+ cmp r1, r0\n\
+ bne _0803BD76\n\
+ mov r1, r8\n\
+ lsls r0, r1, 17\n\
+ lsrs r0, 16\n\
+ mov r8, r0\n\
+_0803BD76:\n\
+ ldr r2, [sp, 0x1C]\n\
+ cmp r2, 0x24\n\
+ bne _0803BD8E\n\
+ ldr r3, [sp, 0x4]\n\
+ ldrh r1, [r3]\n\
+ ldr r0, _0803BFE4 @ =0x00000175\n\
+ cmp r1, r0\n\
+ bne _0803BD8E\n\
+ ldr r1, [sp, 0x18]\n\
+ lsls r0, r1, 17\n\
+ lsrs r0, 16\n\
+ str r0, [sp, 0x18]\n\
+_0803BD8E:\n\
+ mov r2, r10\n\
+ cmp r2, 0x2D\n\
+ bne _0803BDA2\n\
+ ldrh r0, [r7]\n\
+ cmp r0, 0x19\n\
+ bne _0803BDA2\n\
+ mov r3, r8\n\
+ lsls r0, r3, 17\n\
+ lsrs r0, 16\n\
+ mov r8, r0\n\
+_0803BDA2:\n\
+ ldr r0, [sp, 0x1C]\n\
+ cmp r0, 0x40\n\
+ bne _0803BDB8\n\
+ ldr r1, [sp, 0x4]\n\
+ ldrh r0, [r1]\n\
+ cmp r0, 0x84\n\
+ bne _0803BDB8\n\
+ ldr r2, [sp, 0x14]\n\
+ lsls r0, r2, 17\n\
+ lsrs r0, 16\n\
+ str r0, [sp, 0x14]\n\
+_0803BDB8:\n\
+ mov r3, r10\n\
+ cmp r3, 0x41\n\
+ bne _0803BDCE\n\
+ ldrh r0, [r7]\n\
+ subs r0, 0x68\n\
+ lsls r0, 16\n\
+ lsrs r0, 16\n\
+ cmp r0, 0x1\n\
+ bhi _0803BDCE\n\
+ lsls r0, r6, 17\n\
+ lsrs r6, r0, 16\n\
+_0803BDCE:\n\
+ ldr r1, [sp, 0x28]\n\
+ ldrb r0, [r1]\n\
+ cmp r0, 0x2F\n\
+ bne _0803BDE6\n\
+ mov r2, r9\n\
+ cmp r2, 0xA\n\
+ beq _0803BDE0\n\
+ cmp r2, 0xF\n\
+ bne _0803BDE6\n\
+_0803BDE0:\n\
+ mov r3, r8\n\
+ lsrs r3, 1\n\
+ mov r8, r3\n\
+_0803BDE6:\n\
+ ldr r0, [sp, 0x24]\n\
+ ldrb r4, [r0]\n\
+ cmp r4, 0x37\n\
+ bne _0803BDFC\n\
+ movs r0, 0x96\n\
+ muls r0, r6\n\
+ movs r1, 0x64\n\
+ bl __divsi3\n\
+ lsls r0, 16\n\
+ lsrs r6, r0, 16\n\
+_0803BDFC:\n\
+ cmp r4, 0x39\n\
+ bne _0803BE2A\n\
+ movs r0, 0\n\
+ str r0, [sp]\n\
+ movs r0, 0xE\n\
+ movs r1, 0\n\
+ movs r2, 0x3A\n\
+ movs r3, 0\n\
+ bl sub_8018324\n\
+ lsls r0, 24\n\
+ cmp r0, 0\n\
+ beq _0803BE2A\n\
+ movs r0, 0x96\n\
+ mov r1, r8\n\
+ muls r1, r0\n\
+ adds r0, r1, 0\n\
+ movs r1, 0x64\n\
+ bl __divsi3\n\
+ lsls r0, 16\n\
+ lsrs r0, 16\n\
+ mov r8, r0\n\
+_0803BE2A:\n\
+ ldr r2, [sp, 0x24]\n\
+ ldrb r0, [r2]\n\
+ cmp r0, 0x3A\n\
+ bne _0803BE5C\n\
+ movs r0, 0\n\
+ str r0, [sp]\n\
+ movs r0, 0xE\n\
+ movs r1, 0\n\
+ movs r2, 0x39\n\
+ movs r3, 0\n\
+ bl sub_8018324\n\
+ lsls r0, 24\n\
+ cmp r0, 0\n\
+ beq _0803BE5C\n\
+ movs r0, 0x96\n\
+ mov r3, r8\n\
+ muls r3, r0\n\
+ adds r0, r3, 0\n\
+ movs r1, 0x64\n\
+ bl __divsi3\n\
+ lsls r0, 16\n\
+ lsrs r0, 16\n\
+ mov r8, r0\n\
+_0803BE5C:\n\
+ ldr r1, [sp, 0x24]\n\
+ ldrb r0, [r1]\n\
+ cmp r0, 0x3E\n\
+ bne _0803BE78\n\
+ ldr r0, [r7, 0x4C]\n\
+ cmp r0, 0\n\
+ beq _0803BE78\n\
+ movs r0, 0x96\n\
+ muls r0, r6\n\
+ movs r1, 0x64\n\
+ bl __divsi3\n\
+ lsls r0, 16\n\
+ lsrs r6, r0, 16\n\
+_0803BE78:\n\
+ ldr r2, [sp, 0x28]\n\
+ ldrb r0, [r2]\n\
+ cmp r0, 0x3F\n\
+ bne _0803BE9A\n\
+ ldr r3, [sp, 0x4]\n\
+ ldr r0, [r3, 0x4C]\n\
+ cmp r0, 0\n\
+ beq _0803BE9A\n\
+ movs r0, 0x96\n\
+ ldr r1, [sp, 0x14]\n\
+ muls r0, r1\n\
+ movs r1, 0x64\n\
+ bl __divsi3\n\
+ lsls r0, 16\n\
+ lsrs r0, 16\n\
+ str r0, [sp, 0x14]\n\
+_0803BE9A:\n\
+ mov r2, r9\n\
+ cmp r2, 0xD\n\
+ bne _0803BEBE\n\
+ movs r0, 0\n\
+ str r0, [sp]\n\
+ movs r0, 0xE\n\
+ movs r1, 0\n\
+ movs r2, 0\n\
+ movs r3, 0xFD\n\
+ bl sub_8018324\n\
+ lsls r0, 24\n\
+ cmp r0, 0\n\
+ beq _0803BEBE\n\
+ ldr r1, _0803BFE8 @ =gBattleMovePower\n\
+ ldrh r0, [r1]\n\
+ lsrs r0, 1\n\
+ strh r0, [r1]\n\
+_0803BEBE:\n\
+ mov r3, r9\n\
+ cmp r3, 0xA\n\
+ bne _0803BEE2\n\
+ movs r0, 0\n\
+ str r0, [sp]\n\
+ movs r0, 0xE\n\
+ movs r1, 0\n\
+ movs r2, 0\n\
+ movs r3, 0xFE\n\
+ bl sub_8018324\n\
+ lsls r0, 24\n\
+ cmp r0, 0\n\
+ beq _0803BEE2\n\
+ ldr r1, _0803BFE8 @ =gBattleMovePower\n\
+ ldrh r0, [r1]\n\
+ lsrs r0, 1\n\
+ strh r0, [r1]\n\
+_0803BEE2:\n\
+ mov r0, r9\n\
+ cmp r0, 0xC\n\
+ bne _0803BF12\n\
+ ldr r1, [sp, 0x24]\n\
+ ldrb r0, [r1]\n\
+ cmp r0, 0x41\n\
+ bne _0803BF12\n\
+ ldrh r0, [r7, 0x2C]\n\
+ movs r1, 0x3\n\
+ bl __udivsi3\n\
+ ldrh r1, [r7, 0x28]\n\
+ lsls r0, 16\n\
+ lsrs r0, 16\n\
+ cmp r1, r0\n\
+ bhi _0803BF12\n\
+ ldr r4, _0803BFE8 @ =gBattleMovePower\n\
+ ldrh r1, [r4]\n\
+ movs r0, 0x96\n\
+ muls r0, r1\n\
+ movs r1, 0x64\n\
+ bl __divsi3\n\
+ strh r0, [r4]\n\
+_0803BF12:\n\
+ mov r2, r9\n\
+ cmp r2, 0xA\n\
+ bne _0803BF42\n\
+ ldr r3, [sp, 0x24]\n\
+ ldrb r0, [r3]\n\
+ cmp r0, 0x42\n\
+ bne _0803BF42\n\
+ ldrh r0, [r7, 0x2C]\n\
+ movs r1, 0x3\n\
+ bl __udivsi3\n\
+ ldrh r1, [r7, 0x28]\n\
+ lsls r0, 16\n\
+ lsrs r0, 16\n\
+ cmp r1, r0\n\
+ bhi _0803BF42\n\
+ ldr r4, _0803BFE8 @ =gBattleMovePower\n\
+ ldrh r1, [r4]\n\
+ movs r0, 0x96\n\
+ muls r0, r1\n\
+ movs r1, 0x64\n\
+ bl __divsi3\n\
+ strh r0, [r4]\n\
+_0803BF42:\n\
+ mov r0, r9\n\
+ cmp r0, 0xB\n\
+ bne _0803BF72\n\
+ ldr r1, [sp, 0x24]\n\
+ ldrb r0, [r1]\n\
+ cmp r0, 0x43\n\
+ bne _0803BF72\n\
+ ldrh r0, [r7, 0x2C]\n\
+ movs r1, 0x3\n\
+ bl __udivsi3\n\
+ ldrh r1, [r7, 0x28]\n\
+ lsls r0, 16\n\
+ lsrs r0, 16\n\
+ cmp r1, r0\n\
+ bhi _0803BF72\n\
+ ldr r4, _0803BFE8 @ =gBattleMovePower\n\
+ ldrh r1, [r4]\n\
+ movs r0, 0x96\n\
+ muls r0, r1\n\
+ movs r1, 0x64\n\
+ bl __divsi3\n\
+ strh r0, [r4]\n\
+_0803BF72:\n\
+ mov r2, r9\n\
+ cmp r2, 0x6\n\
+ bne _0803BFA2\n\
+ ldr r3, [sp, 0x24]\n\
+ ldrb r0, [r3]\n\
+ cmp r0, 0x44\n\
+ bne _0803BFA2\n\
+ ldrh r0, [r7, 0x2C]\n\
+ movs r1, 0x3\n\
+ bl __udivsi3\n\
+ ldrh r1, [r7, 0x28]\n\
+ lsls r0, 16\n\
+ lsrs r0, 16\n\
+ cmp r1, r0\n\
+ bhi _0803BFA2\n\
+ ldr r4, _0803BFE8 @ =gBattleMovePower\n\
+ ldrh r1, [r4]\n\
+ movs r0, 0x96\n\
+ muls r0, r1\n\
+ movs r1, 0x64\n\
+ bl __divsi3\n\
+ strh r0, [r4]\n\
+_0803BFA2:\n\
+ ldr r2, _0803BFEC @ =gBattleMoves\n\
+ ldr r0, _0803BFF0 @ =gUnknown_02024BE6\n\
+ ldrh r1, [r0]\n\
+ lsls r0, r1, 1\n\
+ adds r0, r1\n\
+ lsls r0, 2\n\
+ adds r0, r2\n\
+ ldrb r0, [r0]\n\
+ cmp r0, 0x7\n\
+ bne _0803BFBC\n\
+ ldr r0, [sp, 0x14]\n\
+ lsrs r0, 1\n\
+ str r0, [sp, 0x14]\n\
+_0803BFBC:\n\
+ mov r1, r9\n\
+ cmp r1, 0x8\n\
+ bls _0803BFC4\n\
+ b _0803C122\n\
+_0803BFC4:\n\
+ ldr r0, _0803BFF4 @ =gCritMultiplier\n\
+ ldrb r1, [r0]\n\
+ adds r4, r0, 0\n\
+ cmp r1, 0x2\n\
+ bne _0803C000\n\
+ movs r0, 0x19\n\
+ ldrsb r0, [r7, r0]\n\
+ cmp r0, 0x6\n\
+ ble _0803BFFC\n\
+ ldr r2, _0803BFF8 @ =gStatStageRatios\n\
+ b _0803C006\n\
+ .align 2, 0\n\
+_0803BFDC: .4byte gBattleTypeFlags\n\
+_0803BFE0: .4byte 0xfffffe69\n\
+_0803BFE4: .4byte 0x00000175\n\
+_0803BFE8: .4byte gBattleMovePower\n\
+_0803BFEC: .4byte gBattleMoves\n\
+_0803BFF0: .4byte gUnknown_02024BE6\n\
+_0803BFF4: .4byte gCritMultiplier\n\
+_0803BFF8: .4byte gStatStageRatios\n\
+_0803BFFC:\n\
+ adds r5, r6, 0\n\
+ b _0803C01E\n\
+_0803C000:\n\
+ ldr r2, _0803C050 @ =gStatStageRatios\n\
+ movs r0, 0x19\n\
+ ldrsb r0, [r7, r0]\n\
+_0803C006:\n\
+ lsls r0, 1\n\
+ adds r1, r0, r2\n\
+ ldrb r1, [r1]\n\
+ adds r5, r6, 0\n\
+ muls r5, r1\n\
+ adds r2, 0x1\n\
+ adds r0, r2\n\
+ ldrb r1, [r0]\n\
+ adds r0, r5, 0\n\
+ bl __divsi3\n\
+ adds r5, r0, 0\n\
+_0803C01E:\n\
+ ldr r0, _0803C054 @ =gBattleMovePower\n\
+ ldrh r0, [r0]\n\
+ muls r5, r0\n\
+ adds r0, r7, 0\n\
+ adds r0, 0x2A\n\
+ ldrb r0, [r0]\n\
+ lsls r0, 1\n\
+ movs r1, 0x5\n\
+ bl __divsi3\n\
+ adds r0, 0x2\n\
+ muls r5, r0\n\
+ ldrb r0, [r4]\n\
+ cmp r0, 0x2\n\
+ bne _0803C05C\n\
+ ldr r2, [sp, 0x4]\n\
+ movs r0, 0x1A\n\
+ ldrsb r0, [r2, r0]\n\
+ cmp r0, 0x5\n\
+ bgt _0803C058\n\
+ ldr r2, _0803C050 @ =gStatStageRatios\n\
+ ldr r3, [sp, 0x4]\n\
+ movs r0, 0x1A\n\
+ ldrsb r0, [r3, r0]\n\
+ b _0803C064\n\
+ .align 2, 0\n\
+_0803C050: .4byte gStatStageRatios\n\
+_0803C054: .4byte gBattleMovePower\n\
+_0803C058:\n\
+ ldr r3, [sp, 0x14]\n\
+ b _0803C07E\n\
+_0803C05C:\n\
+ ldr r2, _0803C0DC @ =gStatStageRatios\n\
+ ldr r1, [sp, 0x4]\n\
+ movs r0, 0x1A\n\
+ ldrsb r0, [r1, r0]\n\
+_0803C064:\n\
+ lsls r0, 1\n\
+ adds r1, r0, r2\n\
+ ldrb r1, [r1]\n\
+ ldr r6, [sp, 0x14]\n\
+ adds r3, r6, 0\n\
+ muls r3, r1\n\
+ adds r2, 0x1\n\
+ adds r0, r2\n\
+ ldrb r1, [r0]\n\
+ adds r0, r3, 0\n\
+ bl __divsi3\n\
+ adds r3, r0, 0\n\
+_0803C07E:\n\
+ adds r0, r5, 0\n\
+ adds r1, r3, 0\n\
+ bl __divsi3\n\
+ adds r5, r0, 0\n\
+ movs r1, 0x32\n\
+ bl __divsi3\n\
+ adds r5, r0, 0\n\
+ ldr r0, [r7, 0x4C]\n\
+ movs r1, 0x10\n\
+ ands r0, r1\n\
+ cmp r0, 0\n\
+ beq _0803C0A8\n\
+ ldr r1, [sp, 0x24]\n\
+ ldrb r0, [r1]\n\
+ cmp r0, 0x3E\n\
+ beq _0803C0A8\n\
+ lsrs r0, r5, 31\n\
+ adds r0, r5, r0\n\
+ asrs r5, r0, 1\n\
+_0803C0A8:\n\
+ movs r0, 0x1\n\
+ ldr r2, [sp, 0xC]\n\
+ ands r0, r2\n\
+ cmp r0, 0\n\
+ beq _0803C0EA\n\
+ ldrb r1, [r4]\n\
+ cmp r1, 0x1\n\
+ bne _0803C0EA\n\
+ ldr r0, _0803C0E0 @ =gBattleTypeFlags\n\
+ ldrh r0, [r0]\n\
+ ands r1, r0\n\
+ cmp r1, 0\n\
+ beq _0803C0E4\n\
+ movs r0, 0x2\n\
+ bl sub_803C348\n\
+ lsls r0, 24\n\
+ lsrs r0, 24\n\
+ cmp r0, 0x2\n\
+ bne _0803C0E4\n\
+ adds r0, r5, 0\n\
+ movs r1, 0x3\n\
+ bl __divsi3\n\
+ lsls r5, r0, 1\n\
+ b _0803C0EA\n\
+ .align 2, 0\n\
+_0803C0DC: .4byte gStatStageRatios\n\
+_0803C0E0: .4byte gBattleTypeFlags\n\
+_0803C0E4:\n\
+ lsrs r0, r5, 31\n\
+ adds r0, r5, r0\n\
+ asrs r5, r0, 1\n\
+_0803C0EA:\n\
+ ldr r0, _0803C148 @ =gBattleTypeFlags\n\
+ ldrh r1, [r0]\n\
+ movs r0, 0x1\n\
+ ands r0, r1\n\
+ cmp r0, 0\n\
+ beq _0803C11C\n\
+ ldr r0, _0803C14C @ =gBattleMoves\n\
+ ldr r3, [sp, 0x8]\n\
+ lsls r1, r3, 1\n\
+ adds r1, r3\n\
+ lsls r1, 2\n\
+ adds r1, r0\n\
+ ldrb r0, [r1, 0x6]\n\
+ cmp r0, 0x8\n\
+ bne _0803C11C\n\
+ movs r0, 0x2\n\
+ bl sub_803C348\n\
+ lsls r0, 24\n\
+ lsrs r0, 24\n\
+ cmp r0, 0x2\n\
+ bne _0803C11C\n\
+ lsrs r0, r5, 31\n\
+ adds r0, r5, r0\n\
+ asrs r5, r0, 1\n\
+_0803C11C:\n\
+ cmp r5, 0\n\
+ bne _0803C122\n\
+ movs r5, 0x1\n\
+_0803C122:\n\
+ mov r6, r9\n\
+ cmp r6, 0x9\n\
+ bne _0803C12A\n\
+ movs r5, 0\n\
+_0803C12A:\n\
+ mov r0, r9\n\
+ cmp r0, 0x9\n\
+ bhi _0803C132\n\
+ b _0803C330\n\
+_0803C132:\n\
+ ldr r0, _0803C150 @ =gCritMultiplier\n\
+ ldrb r1, [r0]\n\
+ adds r4, r0, 0\n\
+ cmp r1, 0x2\n\
+ bne _0803C15C\n\
+ movs r0, 0x1C\n\
+ ldrsb r0, [r7, r0]\n\
+ cmp r0, 0x6\n\
+ ble _0803C158\n\
+ ldr r2, _0803C154 @ =gStatStageRatios\n\
+ b _0803C162\n\
+ .align 2, 0\n\
+_0803C148: .4byte gBattleTypeFlags\n\
+_0803C14C: .4byte gBattleMoves\n\
+_0803C150: .4byte gCritMultiplier\n\
+_0803C154: .4byte gStatStageRatios\n\
+_0803C158:\n\
+ mov r5, r8\n\
+ b _0803C17A\n\
+_0803C15C:\n\
+ ldr r2, _0803C1A8 @ =gStatStageRatios\n\
+ movs r0, 0x1C\n\
+ ldrsb r0, [r7, r0]\n\
+_0803C162:\n\
+ lsls r0, 1\n\
+ adds r1, r0, r2\n\
+ ldrb r1, [r1]\n\
+ mov r5, r8\n\
+ muls r5, r1\n\
+ adds r2, 0x1\n\
+ adds r0, r2\n\
+ ldrb r1, [r0]\n\
+ adds r0, r5, 0\n\
+ bl __divsi3\n\
+ adds r5, r0, 0\n\
+_0803C17A:\n\
+ ldr r0, _0803C1AC @ =gBattleMovePower\n\
+ ldrh r0, [r0]\n\
+ muls r5, r0\n\
+ adds r0, r7, 0\n\
+ adds r0, 0x2A\n\
+ ldrb r0, [r0]\n\
+ lsls r0, 1\n\
+ movs r1, 0x5\n\
+ bl __divsi3\n\
+ adds r0, 0x2\n\
+ muls r5, r0\n\
+ ldrb r0, [r4]\n\
+ cmp r0, 0x2\n\
+ bne _0803C1B4\n\
+ ldr r1, [sp, 0x4]\n\
+ movs r0, 0x1D\n\
+ ldrsb r0, [r1, r0]\n\
+ cmp r0, 0x5\n\
+ bgt _0803C1B0\n\
+ ldr r2, _0803C1A8 @ =gStatStageRatios\n\
+ b _0803C1BC\n\
+ .align 2, 0\n\
+_0803C1A8: .4byte gStatStageRatios\n\
+_0803C1AC: .4byte gBattleMovePower\n\
+_0803C1B0:\n\
+ ldr r3, [sp, 0x18]\n\
+ b _0803C1D6\n\
+_0803C1B4:\n\
+ ldr r2, _0803C21C @ =gStatStageRatios\n\
+ ldr r1, [sp, 0x4]\n\
+ movs r0, 0x1D\n\
+ ldrsb r0, [r1, r0]\n\
+_0803C1BC:\n\
+ lsls r0, 1\n\
+ adds r1, r0, r2\n\
+ ldrb r1, [r1]\n\
+ ldr r6, [sp, 0x18]\n\
+ adds r3, r6, 0\n\
+ muls r3, r1\n\
+ adds r2, 0x1\n\
+ adds r0, r2\n\
+ ldrb r1, [r0]\n\
+ adds r0, r3, 0\n\
+ bl __divsi3\n\
+ adds r3, r0, 0\n\
+_0803C1D6:\n\
+ adds r0, r5, 0\n\
+ adds r1, r3, 0\n\
+ bl __divsi3\n\
+ adds r5, r0, 0\n\
+ movs r1, 0x32\n\
+ bl __divsi3\n\
+ adds r5, r0, 0\n\
+ movs r0, 0x2\n\
+ ldr r1, [sp, 0xC]\n\
+ ands r0, r1\n\
+ cmp r0, 0\n\
+ beq _0803C22A\n\
+ ldrb r1, [r4]\n\
+ cmp r1, 0x1\n\
+ bne _0803C22A\n\
+ ldr r0, _0803C220 @ =gBattleTypeFlags\n\
+ ldrh r0, [r0]\n\
+ ands r1, r0\n\
+ cmp r1, 0\n\
+ beq _0803C224\n\
+ movs r0, 0x2\n\
+ bl sub_803C348\n\
+ lsls r0, 24\n\
+ lsrs r0, 24\n\
+ cmp r0, 0x2\n\
+ bne _0803C224\n\
+ adds r0, r5, 0\n\
+ movs r1, 0x3\n\
+ bl __divsi3\n\
+ lsls r5, r0, 1\n\
+ b _0803C22A\n\
+ .align 2, 0\n\
+_0803C21C: .4byte gStatStageRatios\n\
+_0803C220: .4byte gBattleTypeFlags\n\
+_0803C224:\n\
+ lsrs r0, r5, 31\n\
+ adds r0, r5, r0\n\
+ asrs r5, r0, 1\n\
+_0803C22A:\n\
+ ldr r0, _0803C2A4 @ =gBattleTypeFlags\n\
+ ldrh r1, [r0]\n\
+ movs r0, 0x1\n\
+ ands r0, r1\n\
+ cmp r0, 0\n\
+ beq _0803C25C\n\
+ ldr r0, _0803C2A8 @ =gBattleMoves\n\
+ ldr r2, [sp, 0x8]\n\
+ lsls r1, r2, 1\n\
+ adds r1, r2\n\
+ lsls r1, 2\n\
+ adds r1, r0\n\
+ ldrb r0, [r1, 0x6]\n\
+ cmp r0, 0x8\n\
+ bne _0803C25C\n\
+ movs r0, 0x2\n\
+ bl sub_803C348\n\
+ lsls r0, 24\n\
+ lsrs r0, 24\n\
+ cmp r0, 0x2\n\
+ bne _0803C25C\n\
+ lsrs r0, r5, 31\n\
+ adds r0, r5, r0\n\
+ asrs r5, r0, 1\n\
+_0803C25C:\n\
+ movs r0, 0\n\
+ str r0, [sp]\n\
+ movs r0, 0xE\n\
+ movs r1, 0\n\
+ movs r2, 0xD\n\
+ movs r3, 0\n\
+ bl sub_8018324\n\
+ lsls r0, 24\n\
+ lsrs r0, 24\n\
+ cmp r0, 0\n\
+ bne _0803C30C\n\
+ str r0, [sp]\n\
+ movs r0, 0xE\n\
+ movs r1, 0\n\
+ movs r2, 0x4D\n\
+ movs r3, 0\n\
+ bl sub_8018324\n\
+ lsls r0, 24\n\
+ cmp r0, 0\n\
+ bne _0803C30C\n\
+ ldr r2, _0803C2AC @ =gBattleWeather\n\
+ ldrh r1, [r2]\n\
+ movs r0, 0x1\n\
+ ands r0, r1\n\
+ adds r4, r2, 0\n\
+ cmp r0, 0\n\
+ beq _0803C2C4\n\
+ mov r3, r9\n\
+ cmp r3, 0xA\n\
+ beq _0803C2B0\n\
+ cmp r3, 0xB\n\
+ beq _0803C2B8\n\
+ b _0803C2C4\n\
+ .align 2, 0\n\
+_0803C2A4: .4byte gBattleTypeFlags\n\
+_0803C2A8: .4byte gBattleMoves\n\
+_0803C2AC: .4byte gBattleWeather\n\
+_0803C2B0:\n\
+ lsrs r0, r5, 31\n\
+ adds r0, r5, r0\n\
+ asrs r5, r0, 1\n\
+ b _0803C2C4\n\
+_0803C2B8:\n\
+ lsls r0, r5, 4\n\
+ subs r0, r5\n\
+ movs r1, 0xA\n\
+ bl __divsi3\n\
+ adds r5, r0, 0\n\
+_0803C2C4:\n\
+ ldrh r1, [r4]\n\
+ movs r0, 0x9F\n\
+ ands r0, r1\n\
+ cmp r0, 0\n\
+ beq _0803C2DC\n\
+ ldr r0, _0803C2F4 @ =gUnknown_02024BE6\n\
+ ldrh r0, [r0]\n\
+ cmp r0, 0x4C\n\
+ bne _0803C2DC\n\
+ lsrs r0, r5, 31\n\
+ adds r0, r5, r0\n\
+ asrs r5, r0, 1\n\
+_0803C2DC:\n\
+ ldrh r1, [r4]\n\
+ movs r0, 0x60\n\
+ ands r0, r1\n\
+ cmp r0, 0\n\
+ beq _0803C30C\n\
+ mov r6, r9\n\
+ cmp r6, 0xA\n\
+ beq _0803C2F8\n\
+ cmp r6, 0xB\n\
+ beq _0803C306\n\
+ b _0803C30C\n\
+ .align 2, 0\n\
+_0803C2F4: .4byte gUnknown_02024BE6\n\
+_0803C2F8:\n\
+ lsls r0, r5, 4\n\
+ subs r0, r5\n\
+ movs r1, 0xA\n\
+ bl __divsi3\n\
+ adds r5, r0, 0\n\
+ b _0803C30C\n\
+_0803C306:\n\
+ lsrs r0, r5, 31\n\
+ adds r0, r5, r0\n\
+ asrs r5, r0, 1\n\
+_0803C30C:\n\
+ ldr r1, _0803C344 @ =0x02017100\n\
+ ldr r2, [sp, 0x10]\n\
+ lsls r0, r2, 2\n\
+ adds r0, r1\n\
+ ldr r0, [r0]\n\
+ movs r1, 0x1\n\
+ ands r0, r1\n\
+ cmp r0, 0\n\
+ beq _0803C330\n\
+ mov r3, r9\n\
+ cmp r3, 0xA\n\
+ bne _0803C330\n\
+ lsls r0, r5, 4\n\
+ subs r0, r5\n\
+ movs r1, 0xA\n\
+ bl __divsi3\n\
+ adds r5, r0, 0\n\
+_0803C330:\n\
+ adds r0, r5, 0x2\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 {r1}\n\
+ bx r1\n\
+ .align 2, 0\n\
+_0803C344: .4byte 0x02017100\n\
+ .syntax divided");
+}
+#endif
diff --git a/src/clear_save_data_menu.c b/src/clear_save_data_menu.c
index 22fc8cc13..198dce340 100644
--- a/src/clear_save_data_menu.c
+++ b/src/clear_save_data_menu.c
@@ -1,4 +1,6 @@
#include "global.h"
+#include "clear_save_data_menu.h"
+#include "save.h"
#include "task.h"
#include "songs.h"
#include "menu.h"
@@ -6,11 +8,10 @@
#include "sprite.h"
#include "palette.h"
#include "sound.h"
-#include "clear_save_data_menu.h"
extern u8 gSystemText_ClearAllSaveDataPrompt[];
extern u8 gSystemText_ClearingData[];
-extern u8 *gUnknown_08376D74[][2];
+extern const struct MenuAction gMenuYesNoItems[];
static void VBlankCB_ClearSaveDataScreen(void);
static void Task_InitMenu(u8);
@@ -47,7 +48,7 @@ static void Task_InitMenu(u8 taskId)
MenuPrint(gSystemText_ClearAllSaveDataPrompt, 3, 15);
MenuDrawTextWindow(2, 1, 8, 6);
- PrintMenuItems(3, 2, 2, gUnknown_08376D74);
+ PrintMenuItems(3, 2, 2, gMenuYesNoItems);
InitMenu(0, 3, 2, 2, 1, 5);
gTasks[taskId].func = Task_ProcessMenuInput;
diff --git a/src/clock.c b/src/clock.c
new file mode 100644
index 000000000..e660abdd3
--- /dev/null
+++ b/src/clock.c
@@ -0,0 +1,92 @@
+#include "global.h"
+#include "main.h"
+#include "rtc.h"
+#include "event_data.h"
+#include "lottery_corner.h"
+#include "berry.h"
+#include "rom4.h"
+#include "wallclock.h"
+
+extern void sub_80FA220(u16);
+extern void sub_80BE8C4(u16);
+extern void sub_8080834(u16);
+extern void UpdatePartyPokerusTime(u16);
+extern void sub_810D2F4(u16);
+extern void UpdateBirchState(u16);
+extern void sub_810F618(u16);
+
+static void InitTimeBasedEvents(void);
+static void UpdatePerDay(struct Time *time);
+static void UpdatePerSecond(struct Time *time);
+static void ReturnFromStartWallClock(void);
+
+static void InitTimeBasedEvents(void)
+{
+ FlagSet(SYS_CLOCK_SET);
+ RtcCalcLocalTime();
+ gSaveBlock2.lastBerryTreeUpdate = gLocalTime;
+ VarSet(VAR_DAYS, gLocalTime.days);
+}
+
+void DoTimeBasedEvents(void)
+{
+ if (FlagGet(SYS_CLOCK_SET))
+ {
+ RtcCalcLocalTime();
+ UpdatePerDay(&gLocalTime);
+ UpdatePerSecond(&gLocalTime);
+ }
+}
+
+static void UpdatePerDay(struct Time *time)
+{
+ u16 *varPtr = GetVarPointer(VAR_DAYS);
+ int days = *varPtr;
+ u16 newDays;
+
+ if (days != time->days && days <= time->days)
+ {
+ newDays = time->days - days;
+ ClearUpperFlags();
+ sub_80FA220(newDays);
+ sub_80BE8C4(newDays);
+ sub_8080834(newDays);
+ UpdatePartyPokerusTime(newDays);
+ sub_810D2F4(newDays);
+ UpdateBirchState(newDays);
+ sub_810F618(newDays);
+ SetRandomLotteryNumber(newDays);
+ *varPtr = time->days;
+ }
+}
+
+static void UpdatePerSecond(struct Time *time)
+{
+ struct Time newTime;
+ s32 totalSeconds;
+
+ CalcTimeDifference(&newTime, &gSaveBlock2.lastBerryTreeUpdate, time);
+ totalSeconds = 1440 * newTime.days + 60 * newTime.hours + newTime.minutes;
+
+ // there's no way to get the correct assembly other than with this nested if check. so dumb.
+ if (totalSeconds != 0)
+ {
+ if (totalSeconds >= 0)
+ {
+ BerryTreeTimeUpdate(totalSeconds);
+ gSaveBlock2.lastBerryTreeUpdate = *time;
+ }
+ }
+}
+
+static void ReturnFromStartWallClock(void)
+{
+ InitTimeBasedEvents();
+ SetMainCallback2(c2_exit_to_overworld_1_continue_scripts_restart_music);
+}
+
+void StartWallClock(void)
+{
+ SetMainCallback2(CB2_StartWallClock);
+ gMain.savedCallback = ReturnFromStartWallClock;
+}
diff --git a/src/coins.c b/src/coins.c
index acd8c6e10..ad4f5fc34 100644
--- a/src/coins.c
+++ b/src/coins.c
@@ -1,4 +1,5 @@
#include "global.h"
+#include "coins.h"
#include "menu.h"
#include "string_util.h"
@@ -6,8 +7,6 @@
extern u8 gOtherText_Coins2[];
-void PrintCoins(s32, u8, u8, u8);
-
void UpdateCoinsWindow(s32 a, u8 b, u8 c)
{
PrintCoins(a, 4, b + 2, c + 1);
@@ -29,7 +28,6 @@ void PrintCoins(s32 a, u8 b, u8 c, u8 d)
u8 string[16];
u8 *ptr;
u8 r1;
- u8 r6;
u8 foo;
ConvertIntToDecimalString(string, a);
diff --git a/src/contest_painting.c b/src/contest_painting.c
new file mode 100644
index 000000000..2e8a73ec4
--- /dev/null
+++ b/src/contest_painting.c
@@ -0,0 +1,1353 @@
+#include "global.h"
+#include "asm.h"
+#include "decompress.h"
+#include "main.h"
+#include "menu.h"
+#include "palette.h"
+#include "rng.h"
+#include "sprite.h"
+#include "string_util.h"
+#include "text.h"
+
+#define MOSAIC_BIT_BG_HSIZE (0)
+#define MOSAIC_BIT_BG_VSIZE (4)
+#define MOSAIC_BIT_OBJ_HSIZE (8)
+#define MOSAIC_BIT_OBJ_VSIZE (12)
+
+enum {
+ CONTEST_COOL,
+ CONTEST_BEAUTY,
+ CONTEST_CUTE,
+ CONTEST_SMART,
+ CONTEST_TOUGH,
+};
+
+enum {
+ CONTESTRESULT_COOL = 9,
+ CONTESTRESULT_BEAUTY = 13,
+ CONTESTRESULT_CUTE = 2,
+ CONTESTRESULT_SMART = 36,
+ CONTESTRESULT_TOUGH = 6,
+};
+
+struct ContestEntry {
+ /* 0x00 */ u8 var0;
+ /* 0x04 */ u32 var4;
+ /* 0x08 */ u16 var8;
+ /* 0x0A */ u8 contestType;
+ /* 0x0B */ u8 pokemon_name[POKEMON_NAME_LENGTH];
+ /* 0x15 */ u8 pad15;
+ /* 0x16 */ u8 trainer_name[OT_NAME_LENGTH];
+};
+
+struct Unk3000756 {
+ /* 0x00 */ u8 var_0;
+};
+
+struct LabelPair {
+ u8 (*prefix)[];
+ u8 (*suffix)[];
+};
+
+struct Unk03005E20 {
+ u8 var_0;
+ u8 pad1[3];
+ u16 (*var_4)[][32];
+ u16 (*var_8)[];
+ u8 pad0C[4];
+ u32 var_10;
+ u16 var_14;
+ u16 var_16;
+ u8 var_18;
+ u8 var_19;
+ u8 var_1A;
+ u8 var_1B;
+ u8 var_1C;
+ u8 var_1D;
+ u8 var_1E;
+ u8 var_1F;
+};
+
+extern struct Unk03005E20 gUnknown_03005E20;
+extern u16 (*gUnknown_03005E90)[];
+
+extern u8 gUnknown_03005E40[];
+
+extern u8 unk_2000000[];
+extern u8 unk_2015de0[];
+extern u16 gUnknown_03000752;
+extern u16 gUnknown_03000754;
+extern struct Unk3000756 gUnknown_03000756;
+extern struct ContestEntry *gUnknown_03005E8C;
+
+extern u16 (*gUnknown_03005E10)[32][32];
+
+extern const struct SpriteSheet gMonFrontPicTable[];
+extern const struct MonCoords gMonFrontPicCoords[];
+extern const struct SpriteSheet gMonBackPicTable[];
+extern const struct MonCoords gMonBackPicCoords[];
+
+extern void *gUnknown_081FAF4C[];
+
+extern u16 gPictureFramePalettes[];
+
+extern u8 gPictureFrameTiles_0[];
+extern u8 gPictureFrameTiles_1[];
+extern u8 gPictureFrameTiles_2[];
+extern u8 gPictureFrameTiles_3[];
+extern u8 gPictureFrameTiles_4[];
+extern u8 gPictureFrameTiles_5[];
+
+extern u8 gPictureFrameTilemap_0[];
+extern u8 gPictureFrameTilemap_1[];
+extern u8 gPictureFrameTilemap_2[];
+extern u8 gPictureFrameTilemap_3[];
+extern u8 gPictureFrameTilemap_4[];
+extern u8 gPictureFrameTilemap_5[];
+
+extern u8 *gUnknown_083F60AC[];
+extern struct LabelPair gUnknown_083F60C0[];
+extern struct OamData gOamData_83F6138;
+extern u16 gUnknown_083F6140[];
+
+extern u8 gContestText_ContestWinner[];
+extern u8 gOtherText_Unknown1[];
+
+void HoldContestPainting(void);
+void ShowContestPainting();
+void ContestPaintingInitWindow(u8 arg0);
+void ContestPaintingInitVars(u8 arg0);
+void sub_8107090(u8 arg0, u8 arg1);
+void ContestPaintingPrintCaption(u8 arg0, u8 arg1);
+void ContestPaintingInitBG(void);
+void CB2_HoldContestPainting(void);
+void VBlankCB_ContestPainting(void);
+
+void sub_80FC7A0(struct Unk03005E20*);
+void sub_80FDA18(struct Unk03005E20*);
+void sub_80FD8CC(struct Unk03005E20*);
+extern void *species_and_otid_get_pal();
+void sub_8106B90();
+
+__attribute__((naked))
+void sub_8106630(u32 arg0) {
+ asm(".syntax unified\n\
+ push {r4-r7,lr}\n\
+ ldr r2, _0810665C @ =0x02015de0\n\
+ subs r4, r2, 0x2\n\
+ subs r5, r2, 0x1\n\
+ ldr r3, _08106660 @ =gSaveBlock1\n\
+ subs r0, 0x1\n\
+ lsls r1, r0, 5\n\
+ adds r1, r3\n\
+ ldr r3, _08106664 @ =0x00002dfc\n\
+ adds r1, r3\n\
+ ldm r1!, {r3,r6,r7}\n\
+ stm r2!, {r3,r6,r7}\n\
+ ldm r1!, {r3,r6,r7}\n\
+ stm r2!, {r3,r6,r7}\n\
+ ldm r1!, {r6,r7}\n\
+ stm r2!, {r6,r7}\n\
+ strb r0, [r4]\n\
+ movs r0, 0\n\
+ strb r0, [r5]\n\
+ pop {r4-r7}\n\
+ pop {r0}\n\
+ bx r0\n\
+ .align 2, 0\n\
+_0810665C: .4byte 0x02015de0\n\
+_08106660: .4byte gSaveBlock1\n\
+_08106664: .4byte 0x00002dfc\n\
+ .syntax divided\n");
+}
+
+void CB2_ContestPainting(void) {
+ ShowContestPainting();
+}
+
+#ifdef NONMATCHING
+void ShowContestPainting(void) {
+ switch (gMain.state) {
+ case 0:
+ remove_some_task();
+ SetVBlankCallback(NULL);
+ gUnknown_03005E8C->data = &unk_2015de0;
+ ContestPaintingInitVars(FALSE);
+ ContestPaintingInitBG();
+ gMain.state += 1;
+ break;
+
+ case 1:
+ ResetPaletteFade();
+
+ // DMA STUFF
+
+ ResetSpriteData();
+ gMain.state += 1;
+ break;
+
+ case 2:
+ SeedRng(gMain.vblankCounter1);
+ InitKeys();
+ ContestPaintingInitWindow(unk_2000000[0x15DDF]);
+ gMain.state += 1;
+ break;
+
+ case 3:
+ sub_8107090(unk_2000000[0x15DDE], unk_2000000[0x15DDF]);
+ gMain.state += 1;
+ break;
+
+ case 4:
+ ContestPaintingPrintCaption(unk_2000000[0x15DDE], unk_2000000[0x15DDF]);
+ LoadPalette(gUnknown_083F6140, 0, 1 * 2);
+ // DMA STUFF
+ BeginFastPaletteFade(2);
+ SetVBlankCallback(VBlankCB_ContestPainting);
+ REG_DISPCNT = DISPCNT_OBJ_1D_MAP | DISPCNT_BG0_ON | DISPCNT_BG1_ON | DISPCNT_OBJ_ON;
+ SetMainCallback2(CB2_HoldContestPainting);
+ break;
+ }
+}
+#else
+__attribute__((naked))
+void ShowContestPainting(void) {
+ asm(".syntax unified\n\
+ push {r4-r7,lr}\n\
+ sub sp, 0x4\n\
+ ldr r1, _08106694 @ =gMain\n\
+ ldr r2, _08106698 @ =0x0000043c\n\
+ adds r0, r1, r2\n\
+ ldrb r0, [r0]\n\
+ adds r4, r1, 0\n\
+ cmp r0, 0x4\n\
+ bls _08106688\n\
+ b _081067E0\n\
+_08106688:\n\
+ lsls r0, 2\n\
+ ldr r1, _0810669C @ =_081066A0\n\
+ adds r0, r1\n\
+ ldr r0, [r0]\n\
+ mov pc, r0\n\
+ .align 2, 0\n\
+_08106694: .4byte gMain\n\
+_08106698: .4byte 0x0000043c\n\
+_0810669C: .4byte _081066A0\n\
+ .align 2, 0\n\
+_081066A0:\n\
+ .4byte _081066B4\n\
+ .4byte _081066D8\n\
+ .4byte _08106734\n\
+ .4byte _0810675C\n\
+ .4byte _0810678C\n\
+_081066B4:\n\
+ bl remove_some_task\n\
+ movs r0, 0\n\
+ bl SetVBlankCallback\n\
+ ldr r1, _081066D0 @ =gUnknown_03005E8C\n\
+ ldr r0, _081066D4 @ =0x02015de0\n\
+ str r0, [r1]\n\
+ movs r0, 0x1\n\
+ bl ContestPaintingInitVars\n\
+ bl ContestPaintingInitBG\n\
+ b _0810676E\n\
+ .align 2, 0\n\
+_081066D0: .4byte gUnknown_03005E8C\n\
+_081066D4: .4byte 0x02015de0\n\
+_081066D8:\n\
+ bl ResetPaletteFade\n\
+ movs r2, 0xC0\n\
+ lsls r2, 19\n\
+ movs r3, 0xC0\n\
+ lsls r3, 9\n\
+ movs r5, 0\n\
+ ldr r1, _08106724 @ =0x040000d4\n\
+ movs r4, 0x80\n\
+ lsls r4, 5\n\
+ ldr r6, _08106728 @ =0x85000400\n\
+ movs r7, 0x85\n\
+ lsls r7, 24\n\
+_081066F2:\n\
+ str r5, [sp]\n\
+ mov r0, sp\n\
+ str r0, [r1]\n\
+ str r2, [r1, 0x4]\n\
+ str r6, [r1, 0x8]\n\
+ ldr r0, [r1, 0x8]\n\
+ adds r2, r4\n\
+ subs r3, r4\n\
+ cmp r3, r4\n\
+ bhi _081066F2\n\
+ str r5, [sp]\n\
+ mov r0, sp\n\
+ str r0, [r1]\n\
+ str r2, [r1, 0x4]\n\
+ lsrs r0, r3, 2\n\
+ orrs r0, r7\n\
+ str r0, [r1, 0x8]\n\
+ ldr r0, [r1, 0x8]\n\
+ bl ResetSpriteData\n\
+ ldr r1, _0810672C @ =gMain\n\
+ ldr r2, _08106730 @ =0x0000043c\n\
+ adds r1, r2\n\
+ b _08106774\n\
+ .align 2, 0\n\
+_08106724: .4byte 0x040000d4\n\
+_08106728: .4byte 0x85000400\n\
+_0810672C: .4byte gMain\n\
+_08106730: .4byte 0x0000043c\n\
+_08106734:\n\
+ ldrh r0, [r4, 0x20]\n\
+ bl SeedRng\n\
+ bl InitKeys\n\
+ ldr r0, _08106750 @ =0x02000000\n\
+ ldr r1, _08106754 @ =0x00015ddf\n\
+ adds r0, r1\n\
+ ldrb r0, [r0]\n\
+ bl ContestPaintingInitWindow\n\
+ ldr r2, _08106758 @ =0x0000043c\n\
+ adds r1, r4, r2\n\
+ b _08106774\n\
+ .align 2, 0\n\
+_08106750: .4byte 0x02000000\n\
+_08106754: .4byte 0x00015ddf\n\
+_08106758: .4byte 0x0000043c\n\
+_0810675C:\n\
+ ldr r1, _0810677C @ =0x02000000\n\
+ ldr r2, _08106780 @ =0x00015dde\n\
+ adds r0, r1, r2\n\
+ ldrb r0, [r0]\n\
+ adds r2, 0x1\n\
+ adds r1, r2\n\
+ ldrb r1, [r1]\n\
+ bl sub_8107090\n\
+_0810676E:\n\
+ ldr r1, _08106784 @ =gMain\n\
+ ldr r0, _08106788 @ =0x0000043c\n\
+ adds r1, r0\n\
+_08106774:\n\
+ ldrb r0, [r1]\n\
+ adds r0, 0x1\n\
+ strb r0, [r1]\n\
+ b _081067E0\n\
+ .align 2, 0\n\
+_0810677C: .4byte 0x02000000\n\
+_08106780: .4byte 0x00015dde\n\
+_08106784: .4byte gMain\n\
+_08106788: .4byte 0x0000043c\n\
+_0810678C:\n\
+ ldr r1, _081067E8 @ =0x02000000\n\
+ ldr r2, _081067EC @ =0x00015dde\n\
+ adds r0, r1, r2\n\
+ ldrb r0, [r0]\n\
+ adds r2, 0x1\n\
+ adds r1, r2\n\
+ ldrb r1, [r1]\n\
+ bl ContestPaintingPrintCaption\n\
+ ldr r0, _081067F0 @ =gUnknown_083F6140\n\
+ movs r1, 0\n\
+ movs r2, 0x2\n\
+ bl LoadPalette\n\
+ movs r1, 0xA0\n\
+ lsls r1, 19\n\
+ movs r4, 0\n\
+ str r4, [sp]\n\
+ ldr r0, _081067F4 @ =0x040000d4\n\
+ mov r2, sp\n\
+ str r2, [r0]\n\
+ str r1, [r0, 0x4]\n\
+ ldr r1, _081067F8 @ =0x85000100\n\
+ str r1, [r0, 0x8]\n\
+ ldr r0, [r0, 0x8]\n\
+ movs r0, 0x2\n\
+ bl BeginFastPaletteFade\n\
+ ldr r0, _081067FC @ =VBlankCB_ContestPainting\n\
+ bl SetVBlankCallback\n\
+ ldr r0, _08106800 @ =gUnknown_03000750\n\
+ strb r4, [r0]\n\
+ movs r1, 0x80\n\
+ lsls r1, 19\n\
+ movs r2, 0x9A\n\
+ lsls r2, 5\n\
+ adds r0, r2, 0\n\
+ strh r0, [r1]\n\
+ ldr r0, _08106804 @ =CB2_HoldContestPainting\n\
+ bl SetMainCallback2\n\
+_081067E0:\n\
+ add sp, 0x4\n\
+ pop {r4-r7}\n\
+ pop {r0}\n\
+ bx r0\n\
+ .align 2, 0\n\
+_081067E8: .4byte 0x02000000\n\
+_081067EC: .4byte 0x00015dde\n\
+_081067F0: .4byte gUnknown_083F6140\n\
+_081067F4: .4byte 0x040000d4\n\
+_081067F8: .4byte 0x85000100\n\
+_081067FC: .4byte VBlankCB_ContestPainting\n\
+_08106800: .4byte gUnknown_03000750\n\
+_08106804: .4byte CB2_HoldContestPainting\n\
+ .syntax divided\n");
+}
+
+#endif
+
+void CB2_HoldContestPainting(void) {
+ HoldContestPainting();
+ UpdatePaletteFade();
+}
+
+void CB2_QuitContestPainting(void) {
+ SetMainCallback2(gMain.savedCallback);
+}
+
+__attribute__((naked))
+void HoldContestPainting(void) {
+ asm(".syntax unified\n\
+ push {lr}\n\
+ sub sp, 0x4\n\
+ ldr r3, _08106844 @ =gUnknown_03000750\n\
+ ldrb r1, [r3]\n\
+ cmp r1, 0x1\n\
+ beq _08106880\n\
+ cmp r1, 0x1\n\
+ bgt _08106848\n\
+ cmp r1, 0\n\
+ beq _0810684E\n\
+ b _081068E6\n\
+ .align 2, 0\n\
+_08106844: .4byte gUnknown_03000750\n\
+_08106848:\n\
+ cmp r1, 0x2\n\
+ beq _081068C0\n\
+ b _081068E6\n\
+_0810684E:\n\
+ ldr r0, _08106874 @ =gPaletteFade\n\
+ ldrb r1, [r0, 0x7]\n\
+ movs r0, 0x80\n\
+ ands r0, r1\n\
+ cmp r0, 0\n\
+ bne _0810685E\n\
+ movs r0, 0x1\n\
+ strb r0, [r3]\n\
+_0810685E:\n\
+ ldr r0, _08106878 @ =gUnknown_03000756\n\
+ ldrb r0, [r0]\n\
+ cmp r0, 0\n\
+ beq _081068E6\n\
+ ldr r1, _0810687C @ =gUnknown_03000754\n\
+ ldrh r0, [r1]\n\
+ cmp r0, 0\n\
+ beq _081068E6\n\
+ subs r0, 0x1\n\
+ b _081068E4\n\
+ .align 2, 0\n\
+_08106874: .4byte gPaletteFade\n\
+_08106878: .4byte gUnknown_03000756\n\
+_0810687C: .4byte gUnknown_03000754\n\
+_08106880:\n\
+ ldr r0, _081068B4 @ =gMain\n\
+ ldrh r2, [r0, 0x2E]\n\
+ ands r1, r2\n\
+ cmp r1, 0\n\
+ bne _08106892\n\
+ movs r0, 0x2\n\
+ ands r0, r2\n\
+ cmp r0, 0\n\
+ beq _081068A4\n\
+_08106892:\n\
+ movs r0, 0x2\n\
+ strb r0, [r3]\n\
+ subs r0, 0x3\n\
+ movs r1, 0\n\
+ str r1, [sp]\n\
+ movs r2, 0\n\
+ movs r3, 0x10\n\
+ bl BeginNormalPaletteFade\n\
+_081068A4:\n\
+ ldr r0, _081068B8 @ =gUnknown_03000756\n\
+ ldrb r0, [r0]\n\
+ cmp r0, 0\n\
+ beq _081068E6\n\
+ ldr r1, _081068BC @ =gUnknown_03000754\n\
+ movs r0, 0\n\
+ b _081068E4\n\
+ .align 2, 0\n\
+_081068B4: .4byte gMain\n\
+_081068B8: .4byte gUnknown_03000756\n\
+_081068BC: .4byte gUnknown_03000754\n\
+_081068C0:\n\
+ ldr r0, _081068EC @ =gPaletteFade\n\
+ ldrb r1, [r0, 0x7]\n\
+ movs r0, 0x80\n\
+ ands r0, r1\n\
+ cmp r0, 0\n\
+ bne _081068D2\n\
+ ldr r0, _081068F0 @ =CB2_QuitContestPainting\n\
+ bl SetMainCallback2\n\
+_081068D2:\n\
+ ldr r0, _081068F4 @ =gUnknown_03000756\n\
+ ldrb r0, [r0]\n\
+ cmp r0, 0\n\
+ beq _081068E6\n\
+ ldr r1, _081068F8 @ =gUnknown_03000754\n\
+ ldrh r0, [r1]\n\
+ cmp r0, 0x1D\n\
+ bhi _081068E6\n\
+ adds r0, 0x1\n\
+_081068E4:\n\
+ strh r0, [r1]\n\
+_081068E6:\n\
+ add sp, 0x4\n\
+ pop {r0}\n\
+ bx r0\n\
+ .align 2, 0\n\
+_081068EC: .4byte gPaletteFade\n\
+_081068F0: .4byte CB2_QuitContestPainting\n\
+_081068F4: .4byte gUnknown_03000756\n\
+_081068F8: .4byte gUnknown_03000754\n\
+ .syntax divided\n");
+}
+
+void ContestPaintingInitWindow(u8 arg0) {
+ InitMenuWindow(&gWindowConfig_81E7160);
+ SetUpWindowConfig(&gWindowConfig_81E7160);
+}
+
+void ContestPaintingPrintCaption(u8 contestType, u8 arg1) {
+ u8 xPos, yPos;
+ u8 *ptr;
+ u8 type;
+
+ if (arg1 == TRUE) {
+ return;
+ }
+
+ ptr = gUnknown_03005E40;
+ type = gUnknown_03005E8C->contestType;
+ if (contestType < 8) {
+ ptr = StringCopy(ptr, gUnknown_083F60AC[type]);
+ ptr = StringCopy(ptr, gContestText_ContestWinner);
+ ptr = StringCopy(ptr, gUnknown_03005E8C->trainer_name);
+
+ // {ENG}
+ ptr[0] = 0xFC;
+ ptr[1] = 0x16;
+ ptr += 2;
+
+ ptr = StringCopy(ptr, gOtherText_Unknown1);
+ ptr = StringCopy10(ptr, gUnknown_03005E8C->pokemon_name);
+
+ xPos = 6;
+ yPos = 14;
+ } else {
+ ptr = StringCopy(ptr, *gUnknown_083F60C0[type].prefix);
+ ptr = StringCopy10(ptr, gUnknown_03005E8C->pokemon_name);
+ ptr = StringCopy(ptr, *gUnknown_083F60C0[type].suffix);
+
+ xPos = 3;
+ yPos = 14;
+ }
+
+ MenuPrint_PixelCoords(gUnknown_03005E40, xPos * 8 + 1, yPos * 8, 1);
+}
+
+void ContestPaintingInitBG(void) {
+ REG_DISPCNT = 0;
+ REG_IE |= INTR_FLAG_VBLANK;
+ REG_BG0CNT = 0x0C42;
+ REG_BG1CNT = 0x0A45;
+ REG_BLDCNT = 0;
+ REG_BLDALPHA = 0;
+ REG_BLDY = 0;
+}
+
+void ContestPaintingInitVars(bool8 arg0) {
+ if (arg0 == 0) {
+ gUnknown_03000756.var_0 = FALSE;
+ gUnknown_03000752 = 0;
+ gUnknown_03000754 = 0;
+ } else {
+ gUnknown_03000756.var_0 = TRUE;
+ gUnknown_03000752 = 15;
+ gUnknown_03000754 = 30;
+ }
+}
+
+void ContestPaintingMosaic(void) {
+ if (gUnknown_03000756.var_0 == FALSE) {
+ REG_MOSAIC = 0;
+ return;
+ }
+
+ REG_BG1CNT = 0xA45;
+ gUnknown_03000752 = gUnknown_03000754 / 2;
+
+ REG_MOSAIC = (gUnknown_03000752 << 12) | (gUnknown_03000752 << 8) | (gUnknown_03000752 << 4) | (gUnknown_03000752 << 0);
+}
+
+void VBlankCB_ContestPainting(void) {
+ ContestPaintingMosaic();
+ LoadOam();
+ ProcessSpriteCopyRequests();
+ TransferPlttBuffer();
+}
+
+struct MonCoords {
+ u8 x, y;
+};
+
+#ifdef NONMATCHING
+void sub_8106AC4(u16 species, u8 arg1) {
+ void *pal;
+
+ // Unsure what gUnknown_03005E8C->var0 is supposed to be.
+ pal = species_and_otid_get_pal(species, gUnknown_03005E8C->var4, gUnknown_03005E8C->var0);
+ LZDecompressVram(pal, gUnknown_03005E90);
+
+ if (arg1 == 1) {
+ HandleLoadSpecialPokePic(
+ &gMonFrontPicTable[species],
+ gMonFrontPicCoords[species].x,
+ gMonFrontPicCoords[species].y,
+ 0x2000000,
+ gUnknown_081FAF4C[1],
+ species,
+ (u32) gUnknown_03005E8C->var0
+ );
+ sub_8106B90(gUnknown_081FAF4C[1], gUnknown_03005E90, gUnknown_03005E10);
+ } else {
+ HandleLoadSpecialPokePic(
+ &gMonBackPicTable[species],
+ gMonBackPicCoords[species].x,
+ gMonBackPicCoords[species].y,
+ 0x2000000,
+ gUnknown_081FAF4C[0],
+ species,
+ (u32) gUnknown_03005E8C->var0
+ );
+ sub_8106B90(gUnknown_081FAF4C[0], gUnknown_03005E90, gUnknown_03005E10);
+ }
+}
+#else
+__attribute__((naked))
+void sub_8106AC4(u16 arg0, u8 arg2) {
+ asm(".syntax unified\n\
+ push {r4-r7,lr}\n\
+ mov r7, r8\n\
+ push {r7}\n\
+ sub sp, 0xC\n\
+ adds r4, r1, 0\n\
+ lsls r0, 16\n\
+ lsrs r6, r0, 16\n\
+ lsls r4, 24\n\
+ lsrs r4, 24\n\
+ ldr r7, _08106B28 @ =gUnknown_03005E8C\n\
+ ldr r0, [r7]\n\
+ ldr r1, [r0, 0x4]\n\
+ ldr r2, [r0]\n\
+ adds r0, r6, 0\n\
+ bl species_and_otid_get_pal\n\
+ ldr r1, _08106B2C @ =gUnknown_03005E90\n\
+ mov r8, r1\n\
+ ldr r1, [r1]\n\
+ bl LZDecompressVram\n\
+ cmp r4, 0\n\
+ bne _08106B40\n\
+ lsls r0, r6, 3\n\
+ ldr r1, _08106B30 @ =gMonFrontPicTable\n\
+ adds r0, r1\n\
+ ldr r1, _08106B34 @ =gMonFrontPicCoords\n\
+ lsls r2, r6, 2\n\
+ adds r2, r1\n\
+ ldrb r1, [r2]\n\
+ ldrb r2, [r2, 0x1]\n\
+ movs r3, 0x80\n\
+ lsls r3, 18\n\
+ ldr r4, _08106B38 @ =gUnknown_081FAF4C\n\
+ ldr r5, [r4, 0x4]\n\
+ str r5, [sp]\n\
+ str r6, [sp, 0x4]\n\
+ ldr r4, [r7]\n\
+ ldr r4, [r4]\n\
+ str r4, [sp, 0x8]\n\
+ bl HandleLoadSpecialPokePic\n\
+ mov r2, r8\n\
+ ldr r1, [r2]\n\
+ ldr r0, _08106B3C @ =gUnknown_03005E10\n\
+ ldr r2, [r0]\n\
+ adds r0, r5, 0\n\
+ bl sub_8106B90\n\
+ b _08106B74\n\
+ .align 2, 0\n\
+_08106B28: .4byte gUnknown_03005E8C\n\
+_08106B2C: .4byte gUnknown_03005E90\n\
+_08106B30: .4byte gMonFrontPicTable\n\
+_08106B34: .4byte gMonFrontPicCoords\n\
+_08106B38: .4byte gUnknown_081FAF4C\n\
+_08106B3C: .4byte gUnknown_03005E10\n\
+_08106B40:\n\
+ lsls r0, r6, 3\n\
+ ldr r1, _08106B80 @ =gMonBackPicTable\n\
+ adds r0, r1\n\
+ ldr r1, _08106B84 @ =gMonBackPicCoords\n\
+ lsls r2, r6, 2\n\
+ adds r2, r1\n\
+ ldrb r1, [r2]\n\
+ ldrb r2, [r2, 0x1]\n\
+ movs r3, 0x80\n\
+ lsls r3, 18\n\
+ ldr r4, _08106B88 @ =gUnknown_081FAF4C\n\
+ ldr r5, [r4]\n\
+ str r5, [sp]\n\
+ str r6, [sp, 0x4]\n\
+ ldr r4, [r7]\n\
+ ldr r4, [r4]\n\
+ str r4, [sp, 0x8]\n\
+ bl HandleLoadSpecialPokePic\n\
+ mov r0, r8\n\
+ ldr r1, [r0]\n\
+ ldr r0, _08106B8C @ =gUnknown_03005E10\n\
+ ldr r2, [r0]\n\
+ adds r0, r5, 0\n\
+ bl sub_8106B90\n\
+_08106B74:\n\
+ add sp, 0xC\n\
+ pop {r3}\n\
+ mov r8, r3\n\
+ pop {r4-r7}\n\
+ pop {r0}\n\
+ bx r0\n\
+ .align 2, 0\n\
+_08106B80: .4byte gMonBackPicTable\n\
+_08106B84: .4byte gMonBackPicCoords\n\
+_08106B88: .4byte gUnknown_081FAF4C\n\
+_08106B8C: .4byte gUnknown_03005E10\n\
+ .syntax divided\n");
+}
+#endif
+
+__attribute__((naked))
+void sub_8106B90() {
+ 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\
+ mov r10, r0\n\
+ mov r9, r1\n\
+ str r2, [sp]\n\
+ movs r0, 0\n\
+_08106BA4:\n\
+ movs r3, 0\n\
+ adds r1, r0, 0x1\n\
+ str r1, [sp, 0x4]\n\
+ lsls r0, 3\n\
+ str r0, [sp, 0x8]\n\
+_08106BAE:\n\
+ movs r1, 0\n\
+ adds r2, r3, 0x1\n\
+ mov r8, r2\n\
+ ldr r7, [sp, 0x8]\n\
+ adds r0, r7, r3\n\
+ lsls r0, 5\n\
+ mov r12, r0\n\
+ lsls r4, r3, 3\n\
+_08106BBE:\n\
+ movs r3, 0\n\
+ lsls r0, r1, 2\n\
+ adds r6, r1, 0x1\n\
+ mov r2, r12\n\
+ adds r5, r2, r0\n\
+ ldr r7, [sp, 0x8]\n\
+ adds r0, r7, r1\n\
+ lsls r0, 7\n\
+ ldr r1, [sp]\n\
+ adds r2, r0, r1\n\
+_08106BD2:\n\
+ lsrs r0, r3, 1\n\
+ adds r0, r5, r0\n\
+ add r0, r10\n\
+ ldrb r1, [r0]\n\
+ movs r0, 0x1\n\
+ ands r0, r3\n\
+ cmp r0, 0\n\
+ beq _08106BE6\n\
+ lsrs r1, 4\n\
+ b _08106BEA\n\
+_08106BE6:\n\
+ movs r0, 0xF\n\
+ ands r1, r0\n\
+_08106BEA:\n\
+ cmp r1, 0\n\
+ bne _08106BFC\n\
+ adds r0, r4, r3\n\
+ lsls r0, 1\n\
+ adds r0, r2\n\
+ movs r7, 0x80\n\
+ lsls r7, 8\n\
+ adds r1, r7, 0\n\
+ b _08106C08\n\
+_08106BFC:\n\
+ adds r0, r4, r3\n\
+ lsls r0, 1\n\
+ adds r0, r2\n\
+ lsls r1, 1\n\
+ add r1, r9\n\
+ ldrh r1, [r1]\n\
+_08106C08:\n\
+ strh r1, [r0]\n\
+ adds r0, r3, 0x1\n\
+ lsls r0, 16\n\
+ lsrs r3, r0, 16\n\
+ cmp r3, 0x7\n\
+ bls _08106BD2\n\
+ lsls r0, r6, 16\n\
+ lsrs r1, r0, 16\n\
+ cmp r1, 0x7\n\
+ bls _08106BBE\n\
+ mov r1, r8\n\
+ lsls r0, r1, 16\n\
+ lsrs r3, r0, 16\n\
+ cmp r3, 0x7\n\
+ bls _08106BAE\n\
+ ldr r2, [sp, 0x4]\n\
+ lsls r0, r2, 16\n\
+ lsrs r0, 16\n\
+ cmp r0, 0x7\n\
+ bls _08106BA4\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 {r0}\n\
+ bx r0\n\
+ .syntax divided\n");
+}
+
+#ifdef NONMATCHING
+void sub_8106C40(u8 arg0, u8 arg1) {
+ LoadPalette(gPictureFramePalettes, 0, 128 * 2);
+
+ if (arg1 == 1) {
+ switch (gUnknown_03005E8C->contestType / 3) {
+ case CONTEST_COOL:
+ RLUnCompVram(gPictureFrameTiles_0, (void *) VRAM);
+ RLUnCompWram(gPictureFrameTilemap_0, gUnknown_03005E10);
+ break;
+
+ case CONTEST_BEAUTY:
+ RLUnCompVram(gPictureFrameTiles_1, (void *) VRAM);
+ RLUnCompWram(gPictureFrameTilemap_1, gUnknown_03005E10);
+ break;
+
+ case CONTEST_CUTE:
+ RLUnCompVram(gPictureFrameTiles_2, (void *) VRAM);
+ RLUnCompWram(gPictureFrameTilemap_2, gUnknown_03005E10);
+ break;
+
+ case CONTEST_SMART:
+ RLUnCompVram(gPictureFrameTiles_3, (void *) VRAM);
+ RLUnCompWram(gPictureFrameTilemap_3, gUnknown_03005E10);
+ break;
+
+ case CONTEST_TOUGH:
+ RLUnCompVram(gPictureFrameTiles_4, (void *) VRAM);
+ RLUnCompWram(gPictureFrameTilemap_4, gUnknown_03005E10);
+ break;
+ }
+
+ {
+ u8 x;
+ u8 y;
+
+ u16 (*vram)[32][32] = (void *) (VRAM + 0x6000);
+
+ // Set the background
+ for (y = 0; y < 20; y++) {
+ for (x = 0; x < 32; x++) {
+ (*vram)[y][x] = 1 << 12 | 21;
+ }
+ }
+
+ // Copy the image frame
+ for (y = 0; y < 10; y++) {
+ for (x = 0; x < 18; x++) {
+ (*vram)[y + 2][x + 6] = (*gUnknown_03005E10)[y + 2][x + 6];
+ }
+ }
+
+ // Re-set the entire top row to the first top frame part
+ for (x = 0; x < 16; x++) {
+ (*vram)[2][x + 7] = (*gUnknown_03005E10)[2][7];
+ }
+ }
+
+ // def_8106C7A
+ } else {
+ if (arg0 < 8) {
+ RLUnCompVram(gPictureFrameTiles_5, (void *) VRAM);
+ RLUnCompVram(gPictureFrameTilemap_5, (void *) (VRAM + 0x6000));
+ return;
+ }
+
+ switch (gUnknown_03005E8C->contestType / 3) {
+ case CONTEST_COOL:
+ RLUnCompVram(gPictureFrameTiles_0, (void *) VRAM);
+ RLUnCompVram(gPictureFrameTilemap_0, (void *) (VRAM + 0x6000));
+ break;
+
+ case CONTEST_BEAUTY:
+ RLUnCompVram(gPictureFrameTiles_1, (void *) VRAM);
+ RLUnCompVram(gPictureFrameTilemap_1, (void *) (VRAM + 0x6000));
+ break;
+
+ case CONTEST_CUTE:
+ RLUnCompVram(gPictureFrameTiles_2, (void *) VRAM);
+ RLUnCompVram(gPictureFrameTilemap_2, (void *) (VRAM + 0x6000));
+ break;
+
+ case CONTEST_SMART:
+ RLUnCompVram(gPictureFrameTiles_3, (void *) VRAM);
+ RLUnCompVram(gPictureFrameTilemap_3, (void *) (VRAM + 0x6000));
+ break;
+
+ case CONTEST_TOUGH:
+ RLUnCompVram(gPictureFrameTiles_4, (void *) VRAM);
+ RLUnCompVram(gPictureFrameTilemap_4, (void *) (VRAM + 0x6000));
+ break;
+ }
+ }
+}
+#else
+__attribute__((naked))
+void sub_8106C40(u8 arg0, u8 arg1) {
+ asm(".syntax unified\n\
+ push {r4-r7,lr}\n\
+ adds r4, r1, 0\n\
+ lsls r0, 24\n\
+ lsrs r5, r0, 24\n\
+ lsls r4, 24\n\
+ lsrs r4, 24\n\
+ ldr r0, _08106C7C @ =gPictureFramePalettes\n\
+ movs r2, 0x80\n\
+ lsls r2, 1\n\
+ movs r1, 0\n\
+ bl LoadPalette\n\
+ cmp r4, 0x1\n\
+ beq _08106C5E\n\
+ b _08106DB4\n\
+_08106C5E:\n\
+ ldr r0, _08106C80 @ =gUnknown_03005E8C\n\
+ ldr r0, [r0]\n\
+ ldrb r0, [r0, 0xA]\n\
+ movs r1, 0x3\n\
+ bl __udivsi3\n\
+ lsls r0, 24\n\
+ lsrs r0, 24\n\
+ cmp r0, 0x4\n\
+ bhi _08106D1C\n\
+ lsls r0, 2\n\
+ ldr r1, _08106C84 @ =_08106C88\n\
+ adds r0, r1\n\
+ ldr r0, [r0]\n\
+ mov pc, r0\n\
+ .align 2, 0\n\
+_08106C7C: .4byte gPictureFramePalettes\n\
+_08106C80: .4byte gUnknown_03005E8C\n\
+_08106C84: .4byte _08106C88\n\
+ .align 2, 0\n\
+_08106C88:\n\
+ .4byte _08106C9C\n\
+ .4byte _08106CB4\n\
+ .4byte _08106CCC\n\
+ .4byte _08106CE4\n\
+ .4byte _08106D08\n\
+_08106C9C:\n\
+ ldr r0, _08106CAC @ =gPictureFrameTiles_0\n\
+ movs r1, 0xC0\n\
+ lsls r1, 19\n\
+ bl RLUnCompVram\n\
+ ldr r0, _08106CB0 @ =gPictureFrameTilemap_0\n\
+ b _08106CF0\n\
+ .align 2, 0\n\
+_08106CAC: .4byte gPictureFrameTiles_0\n\
+_08106CB0: .4byte gPictureFrameTilemap_0\n\
+_08106CB4:\n\
+ ldr r0, _08106CC4 @ =gPictureFrameTiles_1\n\
+ movs r1, 0xC0\n\
+ lsls r1, 19\n\
+ bl RLUnCompVram\n\
+ ldr r0, _08106CC8 @ =gPictureFrameTilemap_1\n\
+ b _08106CF0\n\
+ .align 2, 0\n\
+_08106CC4: .4byte gPictureFrameTiles_1\n\
+_08106CC8: .4byte gPictureFrameTilemap_1\n\
+_08106CCC:\n\
+ ldr r0, _08106CDC @ =gPictureFrameTiles_2\n\
+ movs r1, 0xC0\n\
+ lsls r1, 19\n\
+ bl RLUnCompVram\n\
+ ldr r0, _08106CE0 @ =gPictureFrameTilemap_2\n\
+ b _08106CF0\n\
+ .align 2, 0\n\
+_08106CDC: .4byte gPictureFrameTiles_2\n\
+_08106CE0: .4byte gPictureFrameTilemap_2\n\
+_08106CE4:\n\
+ ldr r0, _08106CFC @ =gPictureFrameTiles_3\n\
+ movs r1, 0xC0\n\
+ lsls r1, 19\n\
+ bl RLUnCompVram\n\
+ ldr r0, _08106D00 @ =gPictureFrameTilemap_3\n\
+_08106CF0:\n\
+ ldr r1, _08106D04 @ =gUnknown_03005E10\n\
+ ldr r1, [r1]\n\
+ bl RLUnCompWram\n\
+ b _08106D1C\n\
+ .align 2, 0\n\
+_08106CFC: .4byte gPictureFrameTiles_3\n\
+_08106D00: .4byte gPictureFrameTilemap_3\n\
+_08106D04: .4byte gUnknown_03005E10\n\
+_08106D08:\n\
+ ldr r0, _08106D98 @ =gPictureFrameTiles_4\n\
+ movs r1, 0xC0\n\
+ lsls r1, 19\n\
+ bl RLUnCompVram\n\
+ ldr r0, _08106D9C @ =gPictureFrameTilemap_4\n\
+ ldr r1, _08106DA0 @ =gUnknown_03005E10\n\
+ ldr r1, [r1]\n\
+ bl RLUnCompWram\n\
+_08106D1C:\n\
+ movs r1, 0\n\
+ ldr r5, _08106DA4 @ =0x06006000\n\
+ ldr r0, _08106DA8 @ =0x00001015\n\
+ adds r4, r0, 0\n\
+_08106D24:\n\
+ movs r3, 0\n\
+ lsls r2, r1, 5\n\
+_08106D28:\n\
+ adds r0, r2, r3\n\
+ lsls r0, 1\n\
+ adds r0, r5\n\
+ strh r4, [r0]\n\
+ adds r0, r3, 0x1\n\
+ lsls r0, 24\n\
+ lsrs r3, r0, 24\n\
+ cmp r3, 0x1F\n\
+ bls _08106D28\n\
+ adds r0, r1, 0x1\n\
+ lsls r0, 24\n\
+ lsrs r1, r0, 24\n\
+ cmp r1, 0x13\n\
+ bls _08106D24\n\
+ movs r1, 0\n\
+ ldr r0, _08106DAC @ =0x0600608c\n\
+ mov r12, r0\n\
+ ldr r7, _08106DA0 @ =gUnknown_03005E10\n\
+_08106D4C:\n\
+ movs r3, 0\n\
+ adds r6, r1, 0x1\n\
+ lsls r5, r1, 5\n\
+ lsls r4, r1, 6\n\
+_08106D54:\n\
+ adds r2, r5, r3\n\
+ lsls r2, 1\n\
+ add r2, r12\n\
+ ldr r0, [r7]\n\
+ adds r0, r4, r0\n\
+ lsls r1, r3, 1\n\
+ adds r0, r1\n\
+ adds r0, 0x8C\n\
+ ldrh r0, [r0]\n\
+ strh r0, [r2]\n\
+ adds r0, r3, 0x1\n\
+ lsls r0, 24\n\
+ lsrs r3, r0, 24\n\
+ cmp r3, 0x11\n\
+ bls _08106D54\n\
+ lsls r0, r6, 24\n\
+ lsrs r1, r0, 24\n\
+ cmp r1, 0x9\n\
+ bls _08106D4C\n\
+ movs r3, 0\n\
+ ldr r4, _08106DB0 @ =0x0600608e\n\
+ ldr r2, _08106DA0 @ =gUnknown_03005E10\n\
+_08106D80:\n\
+ lsls r1, r3, 1\n\
+ adds r1, r4\n\
+ ldr r0, [r2]\n\
+ adds r0, 0x8E\n\
+ ldrh r0, [r0]\n\
+ strh r0, [r1]\n\
+ adds r0, r3, 0x1\n\
+ lsls r0, 24\n\
+ lsrs r3, r0, 24\n\
+ cmp r3, 0xF\n\
+ bls _08106D80\n\
+ b _08106E86\n\
+ .align 2, 0\n\
+_08106D98: .4byte gPictureFrameTiles_4\n\
+_08106D9C: .4byte gPictureFrameTilemap_4\n\
+_08106DA0: .4byte gUnknown_03005E10\n\
+_08106DA4: .4byte 0x06006000\n\
+_08106DA8: .4byte 0x00001015\n\
+_08106DAC: .4byte 0x0600608c\n\
+_08106DB0: .4byte 0x0600608e\n\
+_08106DB4:\n\
+ cmp r5, 0x7\n\
+ bhi _08106DD0\n\
+ ldr r0, _08106DC8 @ =gPictureFrameTiles_5\n\
+ movs r1, 0xC0\n\
+ lsls r1, 19\n\
+ bl RLUnCompVram\n\
+ ldr r0, _08106DCC @ =gPictureFrameTilemap_5\n\
+ b _08106E60\n\
+ .align 2, 0\n\
+_08106DC8: .4byte gPictureFrameTiles_5\n\
+_08106DCC: .4byte gPictureFrameTilemap_5\n\
+_08106DD0:\n\
+ ldr r0, _08106DF0 @ =gUnknown_03005E8C\n\
+ ldr r0, [r0]\n\
+ ldrb r0, [r0, 0xA]\n\
+ movs r1, 0x3\n\
+ bl __udivsi3\n\
+ lsls r0, 24\n\
+ lsrs r0, 24\n\
+ cmp r0, 0x4\n\
+ bhi _08106E86\n\
+ lsls r0, 2\n\
+ ldr r1, _08106DF4 @ =_08106DF8\n\
+ adds r0, r1\n\
+ ldr r0, [r0]\n\
+ mov pc, r0\n\
+ .align 2, 0\n\
+_08106DF0: .4byte gUnknown_03005E8C\n\
+_08106DF4: .4byte _08106DF8\n\
+ .align 2, 0\n\
+_08106DF8:\n\
+ .4byte _08106E0C\n\
+ .4byte _08106E24\n\
+ .4byte _08106E3C\n\
+ .4byte _08106E54\n\
+ .4byte _08106E74\n\
+_08106E0C:\n\
+ ldr r0, _08106E1C @ =gPictureFrameTiles_0\n\
+ movs r1, 0xC0\n\
+ lsls r1, 19\n\
+ bl RLUnCompVram\n\
+ ldr r0, _08106E20 @ =gPictureFrameTilemap_0\n\
+ b _08106E60\n\
+ .align 2, 0\n\
+_08106E1C: .4byte gPictureFrameTiles_0\n\
+_08106E20: .4byte gPictureFrameTilemap_0\n\
+_08106E24:\n\
+ ldr r0, _08106E34 @ =gPictureFrameTiles_1\n\
+ movs r1, 0xC0\n\
+ lsls r1, 19\n\
+ bl RLUnCompVram\n\
+ ldr r0, _08106E38 @ =gPictureFrameTilemap_1\n\
+ b _08106E60\n\
+ .align 2, 0\n\
+_08106E34: .4byte gPictureFrameTiles_1\n\
+_08106E38: .4byte gPictureFrameTilemap_1\n\
+_08106E3C:\n\
+ ldr r0, _08106E4C @ =gPictureFrameTiles_2\n\
+ movs r1, 0xC0\n\
+ lsls r1, 19\n\
+ bl RLUnCompVram\n\
+ ldr r0, _08106E50 @ =gPictureFrameTilemap_2\n\
+ b _08106E60\n\
+ .align 2, 0\n\
+_08106E4C: .4byte gPictureFrameTiles_2\n\
+_08106E50: .4byte gPictureFrameTilemap_2\n\
+_08106E54:\n\
+ ldr r0, _08106E68 @ =gPictureFrameTiles_3\n\
+ movs r1, 0xC0\n\
+ lsls r1, 19\n\
+ bl RLUnCompVram\n\
+ ldr r0, _08106E6C @ =gPictureFrameTilemap_3\n\
+_08106E60:\n\
+ ldr r1, _08106E70 @ =0x06006000\n\
+ bl RLUnCompVram\n\
+ b _08106E86\n\
+ .align 2, 0\n\
+_08106E68: .4byte gPictureFrameTiles_3\n\
+_08106E6C: .4byte gPictureFrameTilemap_3\n\
+_08106E70: .4byte 0x06006000\n\
+_08106E74:\n\
+ ldr r0, _08106E8C @ =gPictureFrameTiles_4\n\
+ movs r1, 0xC0\n\
+ lsls r1, 19\n\
+ bl RLUnCompVram\n\
+ ldr r0, _08106E90 @ =gPictureFrameTilemap_4\n\
+ ldr r1, _08106E94 @ =0x06006000\n\
+ bl RLUnCompVram\n\
+_08106E86:\n\
+ pop {r4-r7}\n\
+ pop {r0}\n\
+ bx r0\n\
+ .align 2, 0\n\
+_08106E8C: .4byte gPictureFrameTiles_4\n\
+_08106E90: .4byte gPictureFrameTilemap_4\n\
+_08106E94: .4byte 0x06006000\n\
+ .syntax divided\n");
+}
+#endif
+
+#ifdef NONMATCHING
+void sub_8106E98(u8 arg0 ) {
+ gMain.oamBuffer[0] = gOamData_83F6138;
+
+ gMain.oamBuffer[0].tileNum = 0;
+ gMain.oamBuffer[0].x = 88;
+ gMain.oamBuffer[0].y = 24;
+}
+#else
+__attribute__((naked))
+void sub_8106E98(u8 arg0) {
+ asm(".syntax unified\n\
+ push {r4,lr}\n\
+ lsls r0, 24\n\
+ lsrs r0, 24\n\
+ ldr r4, _08106ED0 @ =gMain\n\
+ ldr r1, _08106ED4 @ =gOamData_83F6138\n\
+ ldr r2, [r1, 0x4]\n\
+ ldr r1, [r1]\n\
+ str r1, [r4, 0x3C]\n\
+ str r2, [r4, 0x40]\n\
+ adds r3, r4, 0\n\
+ adds r3, 0x40\n\
+ ldrh r2, [r3]\n\
+ ldr r1, _08106ED8 @ =0xfffffc00\n\
+ ands r1, r2\n\
+ strh r1, [r3]\n\
+ ldrh r1, [r4, 0x3E]\n\
+ ldr r0, _08106EDC @ =0xfffffe00\n\
+ ands r0, r1\n\
+ movs r1, 0x58\n\
+ orrs r0, r1\n\
+ strh r0, [r4, 0x3E]\n\
+ adds r1, r4, 0\n\
+ adds r1, 0x3C\n\
+ movs r0, 0x18\n\
+ strb r0, [r1]\n\
+ pop {r4}\n\
+ pop {r0}\n\
+ bx r0\n\
+ .align 2, 0\n\
+_08106ED0: .4byte gMain\n\
+_08106ED4: .4byte gOamData_83F6138\n\
+_08106ED8: .4byte 0xfffffc00\n\
+_08106EDC: .4byte 0xfffffe00\n\
+ .syntax divided\n");
+}
+#endif
+
+u8 sub_8106EE0(u8 arg0) {
+ u8 contestType;
+
+ if (arg0 < 8) {
+ contestType = gUnknown_03005E8C->contestType;
+ } else {
+ contestType = gUnknown_03005E8C->contestType / 3;
+ }
+
+ switch (contestType) {
+ case CONTEST_COOL:
+ return CONTESTRESULT_COOL;
+
+ case CONTEST_BEAUTY:
+ return CONTESTRESULT_BEAUTY;
+
+ case CONTEST_CUTE:
+ return CONTESTRESULT_CUTE;
+
+ case CONTEST_SMART:
+ return CONTESTRESULT_SMART;
+
+ case CONTEST_TOUGH:
+ return CONTESTRESULT_TOUGH;
+ }
+
+ return contestType;
+}
+
+#ifdef NONMATCHING
+void sub_8106F4C(void) {
+ gUnknown_03005E90 = (void *) 0x02017e00;
+ gUnknown_03005E10 = (void *) 0x02015e00;
+}
+#else
+__attribute__((naked))
+void sub_8106F4C(void) {
+ asm(".syntax unified\n\
+ ldr r0, _08106F5C @ =gUnknown_03005E90\n\
+ ldr r1, _08106F60 @ =0x02017e00\n\
+ str r1, [r0]\n\
+ ldr r0, _08106F64 @ =gUnknown_03005E10\n\
+ ldr r2, _08106F68 @ =0xffffe000\n\
+ adds r1, r2\n\
+ str r1, [r0]\n\
+ bx lr\n\
+ .align 2, 0\n\
+_08106F5C: .4byte gUnknown_03005E90\n\
+_08106F60: .4byte 0x02017e00\n\
+_08106F64: .4byte gUnknown_03005E10\n\
+_08106F68: .4byte 0xffffe000\n\
+ .syntax divided\n");
+}
+#endif
+
+void sub_8106F6C(u8 arg0) {
+ gUnknown_03005E20.var_4 = gUnknown_03005E10;
+ gUnknown_03005E20.var_8 = gUnknown_03005E90;
+ gUnknown_03005E20.var_18 = 0;
+ gUnknown_03005E20.var_1F = gUnknown_03005E8C->var0;
+ gUnknown_03005E20.var_19 = 0;
+ gUnknown_03005E20.var_1A = 0;
+ gUnknown_03005E20.var_1B = 64;
+ gUnknown_03005E20.var_1C = 64;
+ gUnknown_03005E20.var_1D = 64;
+ gUnknown_03005E20.var_1E = 64;
+
+ switch (arg0) {
+ case CONTESTRESULT_SMART:
+ case CONTESTRESULT_TOUGH:
+ gUnknown_03005E20.var_14 = 3;
+ break;
+
+ case CONTESTRESULT_COOL:
+ case CONTESTRESULT_BEAUTY:
+ case CONTESTRESULT_CUTE:
+ default:
+ gUnknown_03005E20.var_14 = 1;
+ break;
+ }
+
+ gUnknown_03005E20.var_16 = 2;
+ gUnknown_03005E20.var_0 = arg0;
+ gUnknown_03005E20.var_10 = 0x6010000;
+
+ sub_80FC7A0(&gUnknown_03005E20);
+ sub_80FDA18(&gUnknown_03005E20);
+ sub_80FD8CC(&gUnknown_03005E20);
+
+ LoadPalette(gUnknown_03005E90, 256, 256 * 2);
+}
+
+void sub_8107090(u8 arg0, u8 arg1) {
+ u8 local0;
+
+ sub_8106F4C();
+ sub_8106AC4(gUnknown_03005E8C->var8, 0);
+
+ local0 = sub_8106EE0(arg0);
+ sub_8106F6C(local0);
+
+ sub_8106E98(arg0);
+ sub_8106C40(arg0, arg1);
+}
diff --git a/src/coord_event_weather.c b/src/coord_event_weather.c
new file mode 100644
index 000000000..f033e5391
--- /dev/null
+++ b/src/coord_event_weather.c
@@ -0,0 +1,117 @@
+#include "global.h"
+#include "asm.h"
+
+struct CoordEventWeather
+{
+ u8 weather;
+ void (*func)(void);
+};
+
+static void CoordEventWeather_Indoor(void);
+static void CoordEventWeather_Sunny(void);
+static void CoordEventWeather_Rain(void);
+static void CoordEventWeather_Snowflakes(void);
+static void CoordEventWeather_Thunderstorm(void);
+static void CoordEventWeather_Fog(void);
+static void CoordEventWeather_DiagonalFog(void);
+static void CoordEventWeather_Snow(void);
+static void CoordEventWeather_Sandstorm(void);
+static void CoordEventWeather_Cloudy(void);
+static void CoordEventWeather_Drought(void);
+static void CoordEventWeather_UnderwaterFog(void);
+static void CoordEventWeather_UnderwaterBubbles(void);
+
+static const struct CoordEventWeather sCoordEventWeatherFuncs[] =
+{
+ { 0x1, CoordEventWeather_Indoor },
+ { 0x2, CoordEventWeather_Sunny },
+ { 0x3, CoordEventWeather_Rain },
+ { 0x4, CoordEventWeather_Snowflakes },
+ { 0x5, CoordEventWeather_Thunderstorm },
+ { 0x6, CoordEventWeather_Fog },
+ { 0x7, CoordEventWeather_DiagonalFog },
+ { 0x8, CoordEventWeather_Snow },
+ { 0x9, CoordEventWeather_Sandstorm },
+ { 0xa, CoordEventWeather_Cloudy },
+ { 0xb, CoordEventWeather_Drought },
+ { 0x14, CoordEventWeather_UnderwaterFog },
+ { 0x15, CoordEventWeather_UnderwaterBubbles },
+};
+
+static void CoordEventWeather_Indoor(void)
+{
+ SetWeather(1);
+}
+
+static void CoordEventWeather_Sunny(void)
+{
+ SetWeather(2);
+}
+
+static void CoordEventWeather_Rain(void)
+{
+ SetWeather(3);
+}
+
+static void CoordEventWeather_Snowflakes(void)
+{
+ SetWeather(4);
+}
+
+static void CoordEventWeather_Thunderstorm(void)
+{
+ SetWeather(5);
+}
+
+static void CoordEventWeather_Fog(void)
+{
+ SetWeather(6);
+}
+
+static void CoordEventWeather_DiagonalFog(void)
+{
+ SetWeather(9);
+}
+
+static void CoordEventWeather_Snow(void)
+{
+ SetWeather(7);
+}
+
+static void CoordEventWeather_Sandstorm(void)
+{
+ SetWeather(8);
+}
+
+static void CoordEventWeather_Cloudy(void)
+{
+ SetWeather(11);
+}
+
+static void CoordEventWeather_Drought(void)
+{
+ SetWeather(12);
+}
+
+static void CoordEventWeather_UnderwaterFog(void)
+{
+ SetWeather(20);
+}
+
+static void CoordEventWeather_UnderwaterBubbles(void)
+{
+ SetWeather(21);
+}
+
+void DoCoordEventWeather(u8 n)
+{
+ u8 i;
+ for (i = 0; i < ARRAY_COUNT(sCoordEventWeatherFuncs); i++)
+ {
+ if (sCoordEventWeatherFuncs[i].weather == n)
+ {
+ sCoordEventWeatherFuncs[i].func();
+ return;
+ }
+ }
+}
diff --git a/src/credits.c b/src/credits.c
new file mode 100644
index 000000000..13a6a1633
--- /dev/null
+++ b/src/credits.c
@@ -0,0 +1,916 @@
+#include "global.h"
+#include "m4a.h"
+#include "main.h"
+#include "menu.h"
+#include "palette.h"
+#include "songs.h"
+#include "sound.h"
+#include "sprite.h"
+#include "task.h"
+#include "text.h"
+
+enum {
+ PAGE_TITLE,
+ PAGE_DIRECTOR,
+ PAGE_ART_DIRECTOR,
+ PAGE_BATTLE_DIRECTOR,
+ PAGE_MAIN_PROGRAMMER,
+ PAGE_BATTLE_SYSTEM_PROGRAMMER,
+ PAGE_PROGRAMMERS_1,
+ PAGE_PROGRAMMERS_2,
+ PAGE_PROGRAMMERS_3,
+ PAGE_MAIN_GRAHPICS_DESIGNER,
+ PAGE_POKEMON_GRAHPIC_DESIGNERS_1,
+ PAGE_POKEMON_GRAHPIC_DESIGNERS_2,
+ PAGE_POKEMON_GRAHPIC_DESIGNERS_3,
+ PAGE_POKEMON_DESIGNERS_1,
+ PAGE_POKEMON_DESIGNERS_2,
+ PAGE_MUSIC_COMPOSITION,
+ PAGE_SOUND_EFFECTS,
+ PAGE_GAME_DESIGNERS_1,
+ PAGE_GAME_DESIGNERS_2,
+ PAGE_GAME_DESIGNERS_3,
+ PAGE_PLOT_SCENARIO,
+ PAGE_GAME_SCENARIO,
+ PAGE_SCRIPT_DESIGNERS,
+ PAGE_MAP_DESIGNERS,
+ PAGE_MAP_DATA_DESIGNERS,
+ PAGE_PARAMETRIC_DESIGNERS,
+ PAGE_POKEDEX_TEXT,
+ PAGE_ENVIRONMENT_TOOLS,
+ PAGE_PRODUCT_TESTING,
+ PAGE_SPECIAL_THANKS,
+ PAGE_SPECIAL_THANKS_1,
+ PAGE_SPECIAL_THANKS_2,
+ PAGE_SPECIAL_THANKS_3,
+ PAGE_INFORMATION_SUPERVISORS,
+ PAGE_COORDINATORS,
+ PAGE_TASK_MANAGERS,
+ PAGE_PRODUCERS,
+ PAGE_EXECUTIVE_DIRECTOR,
+ PAGE_EXECUTIVE_PRODUCERS_1,
+ PAGE_EXECUTIVE_PRODUCERS_2,
+ PAGE_TRANSLATION_COORDINATOR,
+ PAGE_TRANSLATORS,
+ PAGE_PROGRAMMERS,
+ PAGE_GRAPHIC_DESIGNERS,
+ PAGE_PRODUCT_SUPPORT,
+ PAGE_ARTWORK,
+ PAGE_TEXT_EDITOR,
+ PAGE_NOA_TESTING,
+ PAGE_BRAILLE_CODE_CHECK_1,
+ PAGE_BRAILLE_CODE_CHECK_2,
+ PAGE_SPECIAL_THANKS_4,
+ PAGE_SPECIAL_THANKS_5,
+
+ PAGE_COUNT
+};
+
+#define UNK_DEFINE_82 (0x82)
+
+#define COLOR_DARK_GREEN 0x1967
+#define COLOR_LIGHT_GREEN 0x328D
+
+enum {
+ TD_CURRENT_PAGE = 2,
+};
+
+struct Unk201C000 {
+ u8 pad_00[0x88];
+ u16 var_88;
+ u16 var_8A;
+ u16 var_8C;
+};
+
+struct HallOfFame {
+ u8 sheet0[0x800];
+ u8 sheet1[0x800];
+ u8 sheet2[0x800];
+};
+
+struct CreditsEntry {
+ u8 var_0;
+ u8 *text;
+};
+
+extern struct Unk201C000 unk_201C000;
+
+extern struct HallOfFame gHallOfFame;
+extern u8 unk_201e800[0x800];
+extern u8 unk_201f000[0x800];
+extern u16 unk_201f800[];
+
+extern s16 gUnknown_02039320;
+extern u16 gUnknown_02039322;
+extern u8 gUnknown_02039324;
+extern u8 gUnknown_02039325;
+extern u16 gUnknown_0203935C;
+
+extern u8 gReservedSpritePaletteCount;
+
+// data/starter_choose
+extern u16 gBirchBagGrassPal[32];
+extern u8 gBirchBagTilemap[];
+extern u8 gBirchHelpGfx[];
+
+// data/credits
+extern u16 gUnknown_0840B7BC[32];
+extern u16 gUnknown_0840B7FC[32];
+extern struct CreditsEntry *gCreditsEntryPointerTable[][5];
+extern struct SpriteSheet gUnknown_0840CAA0;
+extern struct SpritePalette gUnknown_0840CAB0;
+
+static void sub_8143B38(u8 taskId);
+void sub_8143B68(u8 taskId);
+static void sub_8143BFC(u8 taskId);
+static void c2_080C9BFC(u8 taskId);
+static void sub_8143CC0(u8 taskId);
+static void sub_8143D04(u8 taskId);
+static void sub_8143EBC(u8 taskId);
+static void sub_8143F04(u8 taskId);
+static void sub_8143F3C(u8 taskId);
+static void sub_8143FDC(u8 taskId);
+static void sub_8144024(u8 taskId);
+static void sub_8144080(u8 taskId);
+static void sub_8144114(u8 taskId);
+static void sub_8144130(void);
+static void sub_81441B8(u8 taskId);
+static u8 sub_8144454(u8 page, u8 taskId);
+
+void sub_8144514(u8 taskId);
+u8 sub_8144ECC(u8 data, u8 taskId);
+void sub_81450AC(u8 taskId);
+void sub_8145128(u16, u16, u16);
+void sub_81452D0(int, int);
+void sub_81458DC(void);
+
+static void sub_8143948(void) {
+ LoadOam();
+ ProcessSpriteCopyRequests();
+ TransferPlttBuffer();
+}
+
+static void sub_814395C(void) {
+ RunTasks();
+ AnimateSprites();
+ BuildOamBuffer();
+ UpdatePaletteFade();
+
+ if (!(gMain.heldKeys & B_BUTTON))
+ {
+ return;
+ }
+
+ if (!gUnknown_02039324)
+ {
+ return;
+ }
+
+ if (gTasks[gUnknown_02039322].func != sub_8143B68)
+ {
+ return;
+ }
+
+ sub_8143948();
+ RunTasks();
+ AnimateSprites();
+ BuildOamBuffer();
+ UpdatePaletteFade();
+ gUnknown_02039325 = 1;
+}
+
+void sub_81439D0(void) {
+ u8 taskId;
+ s16 taskId3;
+ u8 taskId2;
+ u16 savedIme;
+ struct Unk201C000 *c000;
+
+ sub_8144130();
+ SetVBlankCallback(NULL);
+ ResetPaletteFade();
+ ResetTasks();
+
+ taskId = CreateTask(sub_8143B38, 0);
+
+ gTasks[taskId].data[4] = 0;
+ gTasks[taskId].data[7] = 0;
+ gTasks[taskId].data[11] = 0;
+ gTasks[taskId].data[13] = 1;
+
+ while (TRUE)
+ {
+ if (sub_8144ECC(0, taskId))
+ {
+ break;
+ }
+ }
+
+ taskId3 = gTasks[taskId].data[1];
+ gTasks[taskId3].data[0] = 40;
+
+ SetUpWindowConfig(&gWindowConfig_81E7208);
+ InitMenuWindow(&gWindowConfig_81E7208);
+ LoadPalette(&gUnknown_0840B7BC, 0x80, sizeof(gUnknown_0840B7BC));
+
+ CpuCopy16(&gUnknown_0840B7FC, (void *) (VRAM + 0xBEE0), sizeof(gUnknown_0840B7FC));
+
+ REG_BG0VOFS = 0xFFFC;
+
+ taskId2 = CreateTask(sub_81441B8, 0);
+
+ gTasks[taskId2].data[1] = taskId;
+ gTasks[taskId].data[15] = taskId2;
+
+ BeginNormalPaletteFade(-1, 0, 16, 0, 0);
+
+
+ savedIme = REG_IME;
+ REG_IME = 0;
+ REG_IE |= INTR_FLAG_VBLANK;
+ REG_IME = savedIme;
+ REG_DISPSTAT |= DISPSTAT_VBLANK_INTR;
+
+
+ SetVBlankCallback(sub_8143948);
+ m4aSongNumStart(BGM_THANKFOR);
+ SetMainCallback2(sub_814395C);
+ gUnknown_02039325 = 0;
+
+ c000 = &unk_201C000;
+
+ sub_81458DC();
+
+ c000->var_88 = 0;
+ c000->var_8A = 0;
+ c000->var_8C = 0;
+
+ gUnknown_02039322 = taskId;
+}
+
+void sub_8143B38(u8 taskId) {
+ if (gPaletteFade.active)
+ {
+ return;
+ }
+
+ gTasks[taskId].func = sub_8143B68;
+}
+
+void sub_8143B68(u8 taskId) {
+ u16 data11;
+
+ if (gTasks[taskId].data[4])
+ {
+ s16 secondaryTaskId;
+
+ secondaryTaskId = gTasks[taskId].data[1];
+ gTasks[secondaryTaskId].data[0] = 30;
+
+ gTasks[taskId].data[12] = 0x100;
+ gTasks[taskId].func = sub_8143EBC;
+ return;
+ }
+
+ gUnknown_02039320 = 0;
+ data11 = gTasks[taskId].data[11];
+
+ if (gTasks[taskId].data[11] == 1)
+ {
+ gTasks[taskId].data[13] = data11;
+ gTasks[taskId].data[11] = 0;
+ BeginNormalPaletteFade(-1, 0, 0, 16, 0);
+ gTasks[taskId].func = sub_8143BFC;
+ }
+ else if (gTasks[taskId].data[11] == 2)
+ {
+ gTasks[taskId].data[13] = data11;
+ gTasks[taskId].data[11] = 0;
+ BeginNormalPaletteFade(-1, 0, 0, 16, 0);
+ gTasks[taskId].func = sub_8143CC0;
+ }
+}
+
+static void sub_8143BFC(u8 taskId) {
+ if (gPaletteFade.active)
+ {
+ return;
+ }
+
+ REG_DISPCNT = 0;
+ sub_81450AC(taskId);
+ gTasks[taskId].func = c2_080C9BFC;
+}
+
+static void c2_080C9BFC(u8 taskId) {
+ u16 backup;
+
+ SetVBlankCallback(NULL);
+
+ if (!sub_8144ECC(gTasks[taskId].data[7], taskId))
+ {
+ return;
+ }
+
+ BeginNormalPaletteFade(-1, 0, 16, 0, 0);
+
+ backup = REG_IME;
+ REG_IME = 0;
+ REG_IE |= INTR_FLAG_VBLANK;
+ REG_IME = backup;
+ REG_DISPSTAT |= DISPSTAT_VBLANK_INTR;
+
+ SetVBlankCallback(sub_8143948);
+ gTasks[taskId].func = sub_8143B38;
+}
+
+static void sub_8143CC0(u8 taskId) {
+ if (gPaletteFade.active)
+ {
+ return;
+ }
+
+ REG_DISPCNT = 0;
+ sub_81450AC(taskId);
+ gTasks[taskId].func = sub_8143D04;
+}
+
+#ifdef NONMATCHING
+static void sub_8143D04(u8 taskId) {
+ switch (gMain.state) {
+ default:
+ case 0: {
+ u16 i;
+
+ ResetSpriteData();
+ FreeAllSpritePalettes();
+ gReservedSpritePaletteCount = 8;
+ LZ77UnCompVram(&gBirchHelpGfx, (void *) VRAM);
+ LZ77UnCompVram(&gBirchBagTilemap, (void *) (VRAM + 0x3800));
+ LoadPalette(gBirchBagGrassPal + 2, 1, 31 * 2);
+
+ for (i = 0; i < 0x800; i++) {
+ gHallOfFame.sheet0[i] = 0x11;
+ }
+
+ for (i = 0; i < 0x800; i++) {
+ gHallOfFame.sheet1[i] = 0x22;
+ }
+
+ for (i = 0; i < 0x800; i++) {
+ gHallOfFame.sheet2[i] = 0x33;
+ }
+
+ unk_201f800[0] = 0;
+ unk_201f800[1] = 0x53FF; // light yellow
+ unk_201f800[2] = 0x529F; // light red
+ unk_201f800[3] = 0x7E94; // light blue
+
+ LoadSpriteSheet(&gUnknown_0840CAA0);
+ LoadSpritePalette(&gUnknown_0840CAB0);
+
+ gMain.state += 1;
+ break;
+ }
+
+ case 1: {
+ gTasks[taskId].data[3] = CreateTask(sub_8144514, 0);
+ gTasks[gTasks[taskId].data[3]].data[0] = 1;
+ gTasks[gTasks[taskId].data[3]].data[1] = taskId;
+ gTasks[gTasks[taskId].data[3]].data[2] = gTasks[taskId].data[7];
+
+ BeginNormalPaletteFade(-1, 0, 16, 0, 0);
+ REG_BG3HOFS = 0;
+ REG_BG3VOFS = 32;
+ REG_BG3CNT = 0x703;
+ REG_DISPCNT = 0x1940;
+
+ gMain.state = 0;
+ gUnknown_0203935C = 0;
+ gTasks[taskId].func = sub_8143B38;
+ break;
+ }
+ }
+}
+#else
+__attribute__((naked))
+static void sub_8143D04(u8 taskId) {
+ asm(".syntax unified\n\
+ push {r4-r7,lr}\n\
+ mov r7, r9\n\
+ mov r6, r8\n\
+ push {r6,r7}\n\
+ sub sp, 0x4\n\
+ lsls r0, 24\n\
+ lsrs r6, r0, 24\n\
+ ldr r0, _08143DC8 @ =gMain\n\
+ ldr r1, _08143DCC @ =0x0000043c\n\
+ adds r1, r0\n\
+ mov r8, r1\n\
+ ldrb r7, [r1]\n\
+ cmp r7, 0\n\
+ beq _08143D24\n\
+ cmp r7, 0x1\n\
+ beq _08143E0C\n\
+_08143D24:\n\
+ bl ResetSpriteData\n\
+ bl FreeAllSpritePalettes\n\
+ ldr r1, _08143DD0 @ =gReservedSpritePaletteCount\n\
+ movs r0, 0x8\n\
+ strb r0, [r1]\n\
+ ldr r0, _08143DD4 @ =gBirchHelpGfx\n\
+ movs r1, 0xC0\n\
+ lsls r1, 19\n\
+ bl LZ77UnCompVram\n\
+ ldr r0, _08143DD8 @ =gBirchGrassTilemap\n\
+ ldr r1, _08143DDC @ =0x06003800\n\
+ bl LZ77UnCompVram\n\
+ ldr r0, _08143DE0 @ =gBirchBagGrassPal + 2\n\
+ movs r1, 0x1\n\
+ movs r2, 0x3E\n\
+ bl LoadPalette\n\
+ movs r1, 0\n\
+ ldr r4, _08143DE4 @ =0x0201e000\n\
+ movs r3, 0x11\n\
+ ldr r2, _08143DE8 @ =0x000007ff\n\
+_08143D56:\n\
+ adds r0, r1, r4\n\
+ strb r3, [r0]\n\
+ adds r0, r1, 0x1\n\
+ lsls r0, 16\n\
+ lsrs r1, r0, 16\n\
+ cmp r1, r2\n\
+ bls _08143D56\n\
+ movs r1, 0\n\
+ ldr r2, _08143DEC @ =0x0201f800\n\
+ ldr r6, _08143DF0 @ =gUnknown_0840CAA0\n\
+ ldr r0, _08143DF4 @ =0xfffff000\n\
+ adds r5, r2, r0\n\
+ movs r4, 0x22\n\
+ ldr r3, _08143DE8 @ =0x000007ff\n\
+_08143D72:\n\
+ adds r0, r1, r5\n\
+ strb r4, [r0]\n\
+ adds r0, r1, 0x1\n\
+ lsls r0, 16\n\
+ lsrs r1, r0, 16\n\
+ cmp r1, r3\n\
+ bls _08143D72\n\
+ movs r1, 0\n\
+ ldr r5, _08143DF8 @ =0x0201f000\n\
+ movs r4, 0x33\n\
+ ldr r3, _08143DE8 @ =0x000007ff\n\
+_08143D88:\n\
+ adds r0, r1, r5\n\
+ strb r4, [r0]\n\
+ adds r0, r1, 0x1\n\
+ lsls r0, 16\n\
+ lsrs r1, r0, 16\n\
+ cmp r1, r3\n\
+ bls _08143D88\n\
+ movs r0, 0\n\
+ strh r0, [r2]\n\
+ ldr r1, _08143DFC @ =0x000053ff\n\
+ adds r0, r1, 0\n\
+ strh r0, [r2, 0x2]\n\
+ ldr r1, _08143E00 @ =0x0000529f\n\
+ adds r0, r1, 0\n\
+ strh r0, [r2, 0x4]\n\
+ ldr r1, _08143E04 @ =0x00007e94\n\
+ adds r0, r1, 0\n\
+ strh r0, [r2, 0x6]\n\
+ adds r0, r6, 0\n\
+ bl LoadSpriteSheet\n\
+ ldr r0, _08143E08 @ =gUnknown_0840CAB0\n\
+ bl LoadSpritePalette\n\
+ ldr r1, _08143DC8 @ =gMain\n\
+ ldr r2, _08143DCC @ =0x0000043c\n\
+ adds r1, r2\n\
+ ldrb r0, [r1]\n\
+ adds r0, 0x1\n\
+ strb r0, [r1]\n\
+ b _08143E90\n\
+ .align 2, 0\n\
+_08143DC8: .4byte gMain\n\
+_08143DCC: .4byte 0x0000043c\n\
+_08143DD0: .4byte gReservedSpritePaletteCount\n\
+_08143DD4: .4byte gBirchHelpGfx\n\
+_08143DD8: .4byte gBirchGrassTilemap\n\
+_08143DDC: .4byte 0x06003800\n\
+_08143DE0: .4byte gBirchBagGrassPal + 2\n\
+_08143DE4: .4byte 0x0201e000\n\
+_08143DE8: .4byte 0x000007ff\n\
+_08143DEC: .4byte 0x0201f800\n\
+_08143DF0: .4byte gUnknown_0840CAA0\n\
+_08143DF4: .4byte 0xfffff000\n\
+_08143DF8: .4byte 0x0201f000\n\
+_08143DFC: .4byte 0x000053ff\n\
+_08143E00: .4byte 0x0000529f\n\
+_08143E04: .4byte 0x00007e94\n\
+_08143E08: .4byte gUnknown_0840CAB0\n\
+_08143E0C:\n\
+ ldr r0, _08143EA0 @ =sub_8144514\n\
+ movs r1, 0\n\
+ bl CreateTask\n\
+ ldr r2, _08143EA4 @ =gTasks\n\
+ lsls r4, r6, 2\n\
+ adds r4, r6\n\
+ lsls r4, 3\n\
+ adds r4, r2\n\
+ lsls r0, 24\n\
+ lsrs r0, 24\n\
+ movs r1, 0\n\
+ mov r9, r1\n\
+ movs r5, 0\n\
+ strh r0, [r4, 0xE]\n\
+ movs r0, 0xE\n\
+ ldrsh r1, [r4, r0]\n\
+ lsls r0, r1, 2\n\
+ adds r0, r1\n\
+ lsls r0, 3\n\
+ adds r0, r2\n\
+ strh r7, [r0, 0x8]\n\
+ movs r0, 0xE\n\
+ ldrsh r1, [r4, r0]\n\
+ lsls r0, r1, 2\n\
+ adds r0, r1\n\
+ lsls r0, 3\n\
+ adds r0, r2\n\
+ strh r6, [r0, 0xA]\n\
+ movs r0, 0xE\n\
+ ldrsh r1, [r4, r0]\n\
+ lsls r0, r1, 2\n\
+ adds r0, r1\n\
+ lsls r0, 3\n\
+ adds r0, r2\n\
+ ldrh r1, [r4, 0x16]\n\
+ strh r1, [r0, 0xC]\n\
+ movs r0, 0x1\n\
+ negs r0, r0\n\
+ str r5, [sp]\n\
+ movs r1, 0\n\
+ movs r2, 0x10\n\
+ movs r3, 0\n\
+ bl BeginNormalPaletteFade\n\
+ ldr r0, _08143EA8 @ =REG_BG3HOFS\n\
+ strh r5, [r0]\n\
+ ldr r1, _08143EAC @ =REG_BG3VOFS\n\
+ movs r0, 0x20\n\
+ strh r0, [r1]\n\
+ subs r1, 0x10\n\
+ ldr r2, _08143EB0 @ =0x00000703\n\
+ adds r0, r2, 0\n\
+ strh r0, [r1]\n\
+ subs r1, 0xE\n\
+ movs r2, 0xCA\n\
+ lsls r2, 5\n\
+ adds r0, r2, 0\n\
+ strh r0, [r1]\n\
+ mov r1, r9\n\
+ mov r0, r8\n\
+ strb r1, [r0]\n\
+ ldr r0, _08143EB4 @ =gUnknown_0203935C\n\
+ strh r5, [r0]\n\
+ ldr r0, _08143EB8 @ =sub_8143B38\n\
+ str r0, [r4]\n\
+_08143E90:\n\
+ add sp, 0x4\n\
+ pop {r3,r4}\n\
+ mov r8, r3\n\
+ mov r9, r4\n\
+ pop {r4-r7}\n\
+ pop {r0}\n\
+ bx r0\n\
+ .align 2, 0\n\
+_08143EA0: .4byte sub_8144514\n\
+_08143EA4: .4byte gTasks\n\
+_08143EA8: .4byte 0x4000000 + 0x1c\n\
+_08143EAC: .4byte 0x4000000 + 0x1e\n\
+_08143EB0: .4byte 0x00000703\n\
+_08143EB4: .4byte gUnknown_0203935C\n\
+_08143EB8: .4byte sub_8143B38\n\
+ .syntax divided\n");
+}
+#endif
+
+static void sub_8143EBC(u8 taskId) {
+ if (gTasks[taskId].data[12])
+ {
+ gTasks[taskId].data[12] -= 1;
+ return;
+ }
+
+ BeginNormalPaletteFade(-1, 12, 0, 16, 0);
+ gTasks[taskId].func = sub_8143F04;
+}
+
+static void sub_8143F04(u8 taskId) {
+ if (gPaletteFade.active)
+ {
+ return;
+ }
+
+ sub_81450AC(taskId);
+ gTasks[taskId].func = sub_8143F3C;
+}
+
+static void sub_8143F3C(u8 taskId) {
+ u16 backup;
+
+ sub_8144130();
+ ResetPaletteFade();
+ sub_8145128(0, 0x3800, 0);
+ ResetSpriteData();
+ FreeAllSpritePalettes();
+ BeginNormalPaletteFade(-1, 8, 16, 0, 0);
+
+ REG_BG0CNT = 0x700;
+ backup = REG_IME;
+ REG_IME = 0;
+ REG_IE |= INTR_FLAG_VBLANK;
+ REG_IME = backup;
+ REG_DISPSTAT |= DISPSTAT_VBLANK_INTR;
+ REG_DISPCNT = 0x140;
+
+ gTasks[taskId].data[0] = 0x100;
+ gTasks[taskId].func = sub_8143FDC;
+}
+
+static void sub_8143FDC(u8 taskId) {
+ if (gTasks[taskId].data[0])
+ {
+ gTasks[taskId].data[0] -= 1;
+ return;
+ }
+
+ BeginNormalPaletteFade(-1, 6, 0, 16, 0);
+ gTasks[taskId].func = sub_8144024;
+}
+
+static void sub_8144024(u8 taskId) {
+ if (gPaletteFade.active)
+ {
+ return;
+ }
+
+ sub_81452D0(0x3800, 0);
+
+ BeginNormalPaletteFade(-1, 0, 0, 0, 0);
+ gTasks[taskId].data[0] = 7200;
+ gTasks[taskId].func = sub_8144080;
+}
+
+static void sub_8144080(u8 taskId) {
+ if (gPaletteFade.active)
+ {
+ return;
+ }
+
+ if (gTasks[taskId].data[0] == 0)
+ {
+ FadeOutBGM(4);
+ BeginNormalPaletteFade(-1, 8, 0, 16, 0xFFFF);
+ gTasks[taskId].func = sub_8144114;
+ return;
+ }
+
+ if (gMain.newKeys)
+ {
+ FadeOutBGM(4);
+ BeginNormalPaletteFade(-1, 8, 0, 16, 0xFFFF);
+ gTasks[taskId].func = sub_8144114;
+ return;
+ }
+
+ if (gTasks[taskId].data[0] == 7144)
+ {
+ FadeOutBGM(8);
+ }
+
+ if (gTasks[taskId].data[0] == 6840)
+ {
+ m4aSongNumStart(BGM_END);
+ }
+
+ gTasks[taskId].data[0] -= 1;
+}
+
+static void sub_8144114(u8 taskId) {
+ if (gPaletteFade.active)
+ {
+ return;
+ }
+
+ SoftReset(0xFF);
+}
+
+static void sub_8144130(void) {
+ REG_DISPCNT = 0;
+
+ REG_BG3HOFS = 0;
+ REG_BG3VOFS = 0;
+ REG_BG2HOFS = 0;
+ REG_BG2VOFS = 0;
+ REG_BG1HOFS = 0;
+ REG_BG1VOFS = 0;
+ REG_BG0HOFS = 0;
+ REG_BG0VOFS = 0;
+
+ REG_BLDCNT = 0;
+ REG_BLDALPHA = 0;
+ REG_BLDY = 0;
+
+ DmaFill16(3, 0, (void *) VRAM, VRAM_SIZE);
+ DmaFill32(3, 0, (void *) OAM, OAM_SIZE);
+ DmaFill16(3, 0, (void *) (PLTT + 2), PLTT_SIZE - 2);
+}
+
+static void sub_81441B8(u8 taskId) {
+ u16 i;
+
+ switch (gTasks[taskId].data[0])
+ {
+ case 0:
+ case 6:
+ case 7:
+ case 8:
+ case 9:
+ default:
+ if (gPaletteFade.active)
+ {
+ return;
+ }
+ gTasks[taskId].data[0] = 1;
+ gTasks[taskId].data[3] = 0x58;
+ gTasks[gTasks[taskId].data[1]].data[14] = 0;
+ gUnknown_02039320 = 0;
+ return;
+
+ case 1:
+ if (gTasks[taskId].data[3] != 0)
+ {
+ gTasks[taskId].data[3] -= 1;
+ return;
+ }
+
+ gTasks[taskId].data[0] += 1;
+ return;
+
+ case 2:
+ REG_DISPCNT &= ~DISPCNT_BG0_ON;
+
+ if (gTasks[gTasks[taskId].data[1]].func == sub_8143B68)
+ {
+ if (gTasks[taskId].data[TD_CURRENT_PAGE] < PAGE_COUNT)
+ {
+
+ for (i = 0; i < 5; i++)
+ {
+ sub_8072BD8(gCreditsEntryPointerTable[gTasks[taskId].data[TD_CURRENT_PAGE]][i]->text, 0,
+ 9 + i * 2, 240);
+ }
+
+ gTasks[taskId].data[TD_CURRENT_PAGE] += 1;
+ gTasks[taskId].data[0] += 1;
+
+ gTasks[gTasks[taskId].data[1]].data[14] = 1;
+
+ if (gTasks[gTasks[taskId].data[1]].data[13] == 1)
+ {
+ BeginNormalPaletteFade(0x300, 0, 16, 0, COLOR_LIGHT_GREEN);
+ }
+ else
+ {
+ BeginNormalPaletteFade(0x300, 0, 16, 0, COLOR_DARK_GREEN);
+ }
+ return;
+ }
+
+
+ gTasks[taskId].data[0] = 10;
+ return;
+ }
+
+ gTasks[gTasks[taskId].data[1]].data[14] = 0;
+ return;
+
+ case 3:
+ REG_DISPCNT |= DISPCNT_BG0_ON;
+
+ if (gPaletteFade.active)
+ {
+ return;
+ }
+
+ gTasks[taskId].data[3] = UNK_DEFINE_82;
+ gTasks[taskId].data[0] += 1;
+ return;
+
+ case 4:
+ if (gTasks[taskId].data[3] != 0)
+ {
+ gTasks[taskId].data[3] -= 1;
+ return;
+ }
+
+ if (sub_8144454((u8) gTasks[taskId].data[2], (u8) gTasks[taskId].data[1]))
+ {
+ gTasks[taskId].data[0] += 1;
+ return;
+ }
+
+ gTasks[taskId].data[0] += 1;
+
+ if (gTasks[gTasks[taskId].data[1]].data[13] == 1)
+ {
+ BeginNormalPaletteFade(0x300, 0, 0, 16, COLOR_LIGHT_GREEN);
+ }
+ else
+ {
+ BeginNormalPaletteFade(0x300, 0, 0, 16, COLOR_DARK_GREEN);
+ }
+
+ return;
+
+ case 5:
+ if (gPaletteFade.active)
+ {
+ return;
+ }
+
+ MenuZeroFillWindowRect(0, 9, 29, 19);
+ gTasks[taskId].data[0] = 2;
+ return;
+
+ case 10:
+ gTasks[gTasks[taskId].data[1]].data[4] = 1;
+ DestroyTask(taskId);
+ return;
+ }
+}
+
+#define LAST_PAGE (PAGE_TEXT_EDITOR)
+
+static u8 sub_8144454(u8 page, u8 taskId) {
+ // Starts with bike + ocean + morning
+
+ if (page == PAGE_PROGRAMMERS_1)
+ {
+ // Grass patch
+ gTasks[taskId].data[11] = 2;
+ }
+
+ if (page == PAGE_POKEMON_GRAHPIC_DESIGNERS_3)
+ {
+ // Bike + ocean + sunset
+ gTasks[taskId].data[7] = 1;
+ gTasks[taskId].data[11] = 1;
+ }
+
+ if (page == PAGE_GAME_DESIGNERS_2)
+ {
+ // Grass patch
+ gTasks[taskId].data[11] = 2;
+ }
+
+ if (page == PAGE_MAP_DATA_DESIGNERS)
+ {
+ // Bike + forest + sunset
+ gTasks[taskId].data[7] = 2;
+ gTasks[taskId].data[11] = 1;
+ }
+
+ if (page == PAGE_SPECIAL_THANKS_1)
+ {
+ // Grass patch
+ gTasks[taskId].data[11] = 2;
+ }
+
+ if (page == PAGE_TASK_MANAGERS)
+ {
+ // Bike + forest + sunset
+ gTasks[taskId].data[7] = 3;
+ gTasks[taskId].data[11] = 1;
+ }
+
+ if (page == PAGE_TRANSLATION_COORDINATOR)
+ {
+ // Grass patch
+ gTasks[taskId].data[11] = 2;
+ }
+
+ if (page == LAST_PAGE)
+ {
+ // Bike + town + night
+ gTasks[taskId].data[7] = 4;
+ gTasks[taskId].data[11] = 1;
+ }
+
+ if (gTasks[taskId].data[11] != 0)
+ {
+ // Returns true if changed?
+ return TRUE;
+ }
+
+ return FALSE;
+}
diff --git a/src/daycare.c b/src/daycare.c
new file mode 100644
index 000000000..23f0305d8
--- /dev/null
+++ b/src/daycare.c
@@ -0,0 +1,33 @@
+#include "global.h"
+#include "pokemon.h"
+#include "string_util.h"
+
+u8 *pokemon_get_nick(struct Pokemon *mon, u8 *dest)
+{
+ s8 nickname[POKEMON_NAME_LENGTH * 2];
+
+ GetMonData(mon, MON_DATA_NICKNAME, nickname);
+ return StringCopy10(dest, nickname);
+}
+
+u8 *pokemon_get_nick_(struct BoxPokemon *mon, u8 *dest)
+{
+ s8 nickname[POKEMON_NAME_LENGTH * 2];
+
+ GetBoxMonData(mon, MON_DATA_NICKNAME, nickname);
+ return StringCopy10(dest, nickname);
+}
+
+u8 daycare_count_pokemon(struct BoxPokemon *daycare_data)
+{
+ u8 i, count;
+ count = 0;
+
+ for(i = 0;i <= 1;i++) {
+ if(GetBoxMonData(daycare_data + i, MON_DATA_SPECIES) != 0) {
+ count++;
+ }
+ }
+
+ return count;
+}
diff --git a/src/decompress.c b/src/decompress.c
index adc6798b6..8f573fecb 100644
--- a/src/decompress.c
+++ b/src/decompress.c
@@ -1,6 +1,7 @@
#include "global.h"
+#include "decompress.h"
#include "species.h"
-#include "sprite.h"
+#include "asm.h"
#define WRAM 0x02000000
@@ -8,10 +9,6 @@ extern struct SpriteSheet gMonFrontPicTable[];
extern struct SpriteSheet gMonBackPicTable[];
extern void *gUnknown_081FAF4C[];
-extern void DrawSpindaSpots(u16, u32, void *, u8);
-
-void sub_800D378(struct SpriteSheet *a, u32 b, u32 c, u32 d, void *e, s32 f, u32 g, u32 h);
-
void sub_800D238(const void *src, void *dest)
{
LZ77UnCompWram(src, dest);
@@ -22,7 +19,7 @@ void LZDecompressVram(const void *src, void *dest)
LZ77UnCompVram(src, dest);
}
-void LoadCompressedObjectPic(struct SpriteSheet *a)
+void LoadCompressedObjectPic(const struct SpriteSheet *a)
{
struct SpriteSheet spriteSheet;
@@ -33,7 +30,7 @@ void LoadCompressedObjectPic(struct SpriteSheet *a)
LoadSpriteSheet(&spriteSheet);
}
-void LoadCompressedObjectPicOverrideBuffer(struct SpriteSheet *a, void *buffer)
+void LoadCompressedObjectPicOverrideBuffer(const struct SpriteSheet *a, void *buffer)
{
struct SpriteSheet spriteSheet;
@@ -44,7 +41,7 @@ void LoadCompressedObjectPicOverrideBuffer(struct SpriteSheet *a, void *buffer)
LoadSpriteSheet(&spriteSheet);
}
-void LoadCompressedObjectPalette(struct SpritePalette *a)
+void LoadCompressedObjectPalette(const struct SpritePalette *a)
{
struct SpritePalette spritePalette;
@@ -54,7 +51,7 @@ void LoadCompressedObjectPalette(struct SpritePalette *a)
LoadSpritePalette(&spritePalette);
}
-void LoadCompressedObjectPaletteOverrideBuffer(struct SpritePalette *a, void *buffer)
+void LoadCompressedObjectPaletteOverrideBuffer(const struct SpritePalette *a, void *buffer)
{
struct SpritePalette spritePalette;
@@ -64,53 +61,55 @@ void LoadCompressedObjectPaletteOverrideBuffer(struct SpritePalette *a, void *bu
LoadSpritePalette(&spritePalette);
}
-void DecompressPicFromTable_2(const struct SpriteSheet *a, u8 b, u8 c, void *d, void *e, s32 f)
+void DecompressPicFromTable_2(const struct SpriteSheet *a, u8 b, u8 c, void *d, void *e, s32 species)
{
- if (f > 412)
+ if (species > SPECIES_EGG)
LZ77UnCompWram(gMonFrontPicTable[0].data, e);
else
LZ77UnCompWram(a->data, e);
}
-void sub_800D334(struct SpriteSheet *a, u32 b, u32 c, u32 d, void *dest, s32 f, u32 g)
+void HandleLoadSpecialPokePic(const struct SpriteSheet *spriteSheet, u32 b, u32 c, u32 d, void *dest, s32 species, u32 g)
{
- u32 unk;
+ u32 frontOrBack;
+ // gUnknown_081FAF4C appears to be a list of pointers to locations to store poke pics for back and front pic here. the first and third pointers are used for back while the others are used for front.
if (dest == gUnknown_081FAF4C[0] || dest == gUnknown_081FAF4C[2])
- unk = 0;
+ frontOrBack = 0; // backPic
else
- unk = 1;
- sub_800D378(a, b, c, d, dest, f, g, unk);
+ frontOrBack = 1; // frontPic
+
+ LoadSpecialPokePic(spriteSheet, b, c, d, dest, species, g, frontOrBack);
}
-void sub_800D378(struct SpriteSheet *a, u32 b, u32 c, u32 d, void *dest, s32 f, u32 g, u32 h)
+void LoadSpecialPokePic(const struct SpriteSheet *spriteSheet, u32 b, u32 c, u32 d, void *dest, s32 species, u32 g, u32 frontOrBack)
{
- u8 r7 = h;
+ u8 frontOrBack8 = frontOrBack;
- if (f == SPECIES_UNOWN)
+ if (species == SPECIES_UNOWN)
{
- u16 r1 = (((g & 0x3000000) >> 18) | ((g & 0x30000) >> 12) | ((g & 0x300) >> 6) | (g & 3)) % 0x1C;
+ u16 i = (((g & 0x3000000) >> 18) | ((g & 0x30000) >> 12) | ((g & 0x300) >> 6) | (g & 3)) % 0x1C;
- if (r1 == 0)
- r1 = SPECIES_UNOWN;
+ // if it is Unown A, set the index to where Unown begins, otherwise add the egg index to get the correct letter to load.
+ if (i == 0)
+ i = SPECIES_UNOWN;
else
- r1 += 412;
- if (r7 == 0)
- LZ77UnCompWram(gMonBackPicTable[r1].data, dest);
+ i += SPECIES_EGG;
+
+ if (frontOrBack8 == 0)
+ LZ77UnCompWram(gMonBackPicTable[i].data, dest);
else
- LZ77UnCompWram(gMonFrontPicTable[r1].data, dest);
+ LZ77UnCompWram(gMonFrontPicTable[i].data, dest);
}
+ else if (species > SPECIES_EGG) // is species unknown? draw the ? icon
+ LZ77UnCompWram(gMonFrontPicTable[0].data, dest);
else
- {
- if (f > 412)
- LZ77UnCompWram(gMonFrontPicTable[0].data, dest);
- else
- LZ77UnCompWram(a->data, dest);
- }
- DrawSpindaSpots(f, g, dest, r7);
+ LZ77UnCompWram(spriteSheet->data, dest);
+
+ DrawSpindaSpots(species, g, dest, frontOrBack8);
}
-static void Unused_LZDecompressWramIndirect(const void **src, void *dest)
+void Unused_LZDecompressWramIndirect(const void **src, void *dest)
{
LZ77UnCompWram(*src, dest);
}
diff --git a/src/decoration.c b/src/decoration.c
new file mode 100644
index 000000000..cf137799a
--- /dev/null
+++ b/src/decoration.c
@@ -0,0 +1,26 @@
+#include "global.h"
+#include "asm.h"
+#include "menu.h"
+
+extern u8 gUnknown_020388F2;
+extern u8 gUnknown_020388F3;
+extern u8 gUnknown_020388F4;
+extern u8 gUnknown_020388F6;
+extern u8 gUnknown_020388D5;
+
+void sub_80FEC94(u8 arg0);
+void sub_80FECB8(u8 arg0);
+void sub_80FECE0(u8 arg0);
+
+void sub_80FE7EC(u8 arg0) {
+ sub_8072DEC();
+ MenuZeroFillWindowRect(0, 0, 29, 19);
+
+ sub_80FEC94(arg0);
+ sub_80FECB8(gUnknown_020388F6);
+
+ MenuDrawTextWindow(15, 12, 29, 19);
+
+ sub_80FECE0(gUnknown_020388F2 + gUnknown_020388F4);
+ InitMenu(0, 1, 2, gUnknown_020388F3 + 1, gUnknown_020388F2, 13);
+}
diff --git a/src/dewford_trend.c b/src/dewford_trend.c
index 8d683e072..d534a9990 100644
--- a/src/dewford_trend.c
+++ b/src/dewford_trend.c
@@ -1,23 +1,14 @@
#include "global.h"
+#include "asm.h"
#include "link.h"
#include "rng.h"
-#include "flag.h"
-
-extern u8 GetLinkPlayerCount(void);
-extern u16 sub_80EB72C(u16);
-extern u8 ConvertEasyChatWordsToString(u8 *dst, u16 *words, u16, u16);
+#include "event_data.h"
extern struct EasyChatPair unk_2007800[5];
extern struct EasyChatPair unk_2007900[5];
extern u16 gScriptResult;
extern u16 gSpecialVar_0x8004;
-void sub_80FA740(struct EasyChatPair *);
-void sub_80FA46C(struct EasyChatPair *, u16, u8);
-bool8 sub_80FA670(struct EasyChatPair *, struct EasyChatPair *, u8);
-bool8 IsEasyChatPairEqual(u16 *, u16 *);
-bool8 SB1ContainsWords(u16 *);
-
void sub_80FA17C(void)
{
u16 i;
@@ -394,7 +385,7 @@ void sub_80FA4E4(u8 *a, u32 b)
}
#else
__attribute__((naked))
-void sub_80FA4E4(u8 *a, u32 b)
+void sub_80FA4E4(struct EasyChatPair *a, u32 b, u8 c)
{
asm(".syntax unified\n\
push {r4-r7,lr}\n\
diff --git a/src/diploma.c b/src/diploma.c
index 4d81ad4b0..8fabe3a2f 100644
--- a/src/diploma.c
+++ b/src/diploma.c
@@ -1,16 +1,15 @@
#include "global.h"
+#include "asm.h"
#include "main.h"
#include "menu.h"
#include "palette.h"
+#include "pokedex.h"
+#include "rom4.h"
#include "sprite.h"
#include "string_util.h"
#include "task.h"
#include "text.h"
-extern void remove_some_task(void);
-extern void sub_80546F0(void);
-extern u16 sub_8090FF4(void);
-
extern u8 gDiplomaTiles[];
extern u8 gDiplomaTilemap[];
extern u8 gDiplomaPalettes[];
diff --git a/src/event_data.c b/src/event_data.c
new file mode 100644
index 000000000..b1c0632ec
--- /dev/null
+++ b/src/event_data.c
@@ -0,0 +1,163 @@
+#include "global.h"
+#include "event_data.h"
+#include "pokedex.h"
+
+extern u8 gUnknown_0202E8E2[];
+extern u16 *gSpecialVars[];
+
+void InitEventData(void)
+{
+ memset(gSaveBlock1.flags, 0, sizeof(gSaveBlock1.flags));
+ memset(gSaveBlock1.vars, 0, sizeof(gSaveBlock1.vars));
+ memset(gUnknown_0202E8E2, 0, 16);
+}
+
+void ClearTempFieldEventData(void)
+{
+ memset(gSaveBlock1.flags, 0, 4);
+ memset(gSaveBlock1.vars, 0, 32);
+ FlagReset(SYS_ENC_UP_ITEM);
+ FlagReset(SYS_ENC_DOWN_ITEM);
+ FlagReset(SYS_USE_STRENGTH);
+ FlagReset(SYS_CTRL_OBJ_DELETE);
+}
+
+void ClearUpperFlags(void)
+{
+ memset(gSaveBlock1.flags + 0x118, 0, 8);
+}
+
+void DisableNationalPokedex(void)
+{
+ u16 *nationalDexVar = GetVarPointer(VAR_NATIONAL_DEX);
+ gSaveBlock2.pokedex.nationalMagic = 0;
+ *nationalDexVar = 0;
+ FlagReset(SYS_NATIONAL_DEX);
+}
+
+void EnableNationalPokedex(void)
+{
+ u16 *nationalDexVar = GetVarPointer(VAR_NATIONAL_DEX);
+ gSaveBlock2.pokedex.nationalMagic = 0xDA;
+ *nationalDexVar = 0x302;
+ FlagSet(SYS_NATIONAL_DEX);
+ gSaveBlock2.pokedex.unknown1 = 1;
+ gSaveBlock2.pokedex.order = 0;
+ sub_808C0A0();
+}
+
+bool32 IsNationalPokedexEnabled(void)
+{
+ if (gSaveBlock2.pokedex.nationalMagic == 0xDA && VarGet(VAR_NATIONAL_DEX) == 0x302 && FlagGet(SYS_NATIONAL_DEX))
+ return TRUE;
+ else
+ return FALSE;
+}
+
+void DisableMysteryGift(void)
+{
+ FlagReset(SYS_EXDATA_ENABLE);
+}
+
+void EnableMysteryGift(void)
+{
+ FlagSet(SYS_EXDATA_ENABLE);
+}
+
+bool32 IsMysteryGiftEnabled(void)
+{
+ return FlagGet(SYS_EXDATA_ENABLE);
+}
+
+void DisableResetRTC(void)
+{
+ VarSet(VAR_RESET_RTC_ENABLE, 0);
+ FlagReset(SYS_RESET_RTC_ENABLE);
+}
+
+void EnableResetRTC(void)
+{
+ VarSet(VAR_RESET_RTC_ENABLE, 0x920);
+ FlagSet(SYS_RESET_RTC_ENABLE);
+}
+
+bool32 CanResetRTC(void)
+{
+ if (FlagGet(SYS_RESET_RTC_ENABLE) && VarGet(VAR_RESET_RTC_ENABLE) == 0x920)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+u16 *GetVarPointer(u16 id)
+{
+ if (id < 0x4000)
+ return NULL;
+
+ if ((s16)id >= 0)
+ return &gSaveBlock1.vars[id - 0x4000];
+
+ return gSpecialVars[id - 0x8000];
+}
+
+u16 VarGet(u16 id)
+{
+ u16 *ptr = GetVarPointer(id);
+ if (!ptr)
+ return id;
+ return *ptr;
+}
+
+bool8 VarSet(u16 id, u16 value)
+{
+ u16 *ptr = GetVarPointer(id);
+ if (!ptr)
+ return FALSE;
+ *ptr = value;
+ return TRUE;
+}
+
+u8 VarGetFieldObjectGraphicsId(u8 id)
+{
+ return VarGet(0x4010 + id);
+}
+
+u8 *GetFlagPointer(u16 id)
+{
+ if (id == 0)
+ return 0;
+
+ if (id < 0x4000)
+ return &gSaveBlock1.flags[id / 8];
+
+ return &gUnknown_0202E8E2[(id - 0x4000) / 8];
+}
+
+u8 FlagSet(u16 id)
+{
+ u8 *ptr = GetFlagPointer(id);
+ if (ptr)
+ *ptr |= 1 << (id & 7);
+ return 0;
+}
+
+u8 FlagReset(u16 id)
+{
+ u8 *ptr = GetFlagPointer(id);
+ if (ptr)
+ *ptr &= ~(1 << (id & 7));
+ return 0;
+}
+
+bool8 FlagGet(u16 id)
+{
+ u8 *ptr = GetFlagPointer(id);
+
+ if (!ptr)
+ return FALSE;
+
+ if (!(((*ptr) >> (id & 7)) & 1))
+ return FALSE;
+
+ return TRUE;
+}
diff --git a/src/field_camera.c b/src/field_camera.c
index 02db33bf2..c55d8e2a3 100644
--- a/src/field_camera.c
+++ b/src/field_camera.c
@@ -1,19 +1,14 @@
#include "global.h"
-#include "fieldmap.h"
+#include "field_camera.h"
+#include "asm.h"
+#include "berry.h"
+#include "field_player_avatar.h"
+#include "asm_fieldmap.h"
#include "sprite.h"
#include "text.h"
extern u16 gBGTilemapBuffers[4][0x400];
-
-//ToDo: argument types
-extern u8 MapGridGetMetatileLayerTypeAt();
-extern u8 player_get_direction_upper_nybble(void);
-extern void ResetBerryTreeSparkleFlags(void);
-extern void RotatingGatePuzzleCameraUpdate(s16, s16);
-extern int MapGridGetMetatileIdAt(int, int);
-extern int CameraMove(int, int);
-
extern u8 gUnknown_0202E854;
@@ -51,13 +46,10 @@ static void RedrawMapSliceSouth(struct UnknownStruct *a, struct MapData *mapData
static void RedrawMapSliceEast(struct UnknownStruct *a, struct MapData *mapData);
static void RedrawMapSliceWest(struct UnknownStruct *a, struct MapData *mapData);
static s32 MapPosToBgTilemapOffset(struct UnknownStruct *a, s32 x, s32 y);
-void CameraUpdate(void);
static void DrawWholeMapViewInternal(int x, int y, struct MapData *mapData);
static void DrawMetatileAt(struct MapData *mapData, u16, int, int);
static void DrawMetatile(s32 a, u16 *b, u16 c);
-u8 AddCameraObject(u8);
-void UpdateFieldObjectsForCameraUpdate(s16, s16);
static void CameraPanningCB_PanAhead(void);
static void move_tilemap_camera_to_upper_left_corner_(struct UnknownStruct *a)
@@ -435,7 +427,7 @@ void CameraUpdate(void)
gUnknown_03004898 -= r8;
}
-static void camera_move_and_redraw(int a, int b)
+void camera_move_and_redraw(int a, int b)
{
CameraMove(a, b);
UpdateFieldObjectsForCameraUpdate(a, b);
diff --git a/src/field_door.c b/src/field_door.c
index 68c884af1..85a5965a0 100644
--- a/src/field_door.c
+++ b/src/field_door.c
@@ -1,7 +1,8 @@
#include "global.h"
+#include "asm.h"
#include "task.h"
-
-extern u8 MetatileBehavior_IsDoor(u8);
+#include "field_camera.h"
+#include "metatile_behavior.h"
struct DoorGraphics
{
@@ -186,7 +187,7 @@ static s8 cur_mapdata_get_door_x2_at(struct DoorGraphics *gfx, u32 x, u32 y)
return gfx->unk2;
}
-static void unref_sub_805869C(u32 x, u32 y)
+void unref_sub_805869C(u32 x, u32 y)
{
StartDoorOpenAnimation(gDoorAnimGraphicsTable, x, y);
}
@@ -224,7 +225,7 @@ bool8 FieldIsDoorAnimationRunning(void)
return FuncIsActiveTask(Task_AnimateDoor);
}
-u8 sub_8058790(u32 x, u32 y)
+u32 sub_8058790(u32 x, u32 y)
{
if (cur_mapdata_get_door_x2_at(gDoorAnimGraphicsTable, x, y) == 0)
return 8;
diff --git a/src/field_effect.c b/src/field_effect.c
index 97301ab50..fe586fcb6 100644
--- a/src/field_effect.c
+++ b/src/field_effect.c
@@ -1,4 +1,6 @@
#include "global.h"
+#include "field_effect.h"
+#include "weather.h"
#include "sprite.h"
typedef bool8 (*FldEffCmd)(u8 **, u32 *);
@@ -9,18 +11,6 @@ extern u8 *gFieldEffectScriptPointers[];
extern FldEffCmd gFieldEffectScriptFuncs[];
-void FieldEffectScript_LoadTiles(u8 **script);
-void FieldEffectScript_LoadFadedPalette(u8 **script);
-void FieldEffectScript_LoadPalette(u8 **script);
-void FieldEffectScript_CallNative(u8 **script, u32 *val);
-void FieldEffectFreeGraphicsResources(struct Sprite *sprite);
-void FieldEffectStop(struct Sprite *sprite, u8 id);
-void FieldEffectFreeTilesIfUnused(u16 tileStart);
-void FieldEffectFreePaletteIfUnused(u8 paletteNum);
-void FieldEffectActiveListClear(void);
-void FieldEffectActiveListAdd(u8 id);
-void FieldEffectActiveListRemove(u8 id);
-
u32 FieldEffectStart(u8 id)
{
u8 *script;
diff --git a/src/field_ground_effect.c b/src/field_ground_effect.c
new file mode 100644
index 000000000..1aea8f52e
--- /dev/null
+++ b/src/field_ground_effect.c
@@ -0,0 +1,256 @@
+#include "global.h"
+#include "asm_fieldmap.h"
+#include "metatile_behavior.h"
+
+extern u32 gUnknown_08376008[];
+
+void FieldObjectUpdateMetatileBehaviors(struct MapObject *);
+void GetGroundEffectFlags_Reflection(struct MapObject *, u32 *);
+void GetGroundEffectFlags_TallGrassOnSpawn(struct MapObject *, u32 *);
+void GetGroundEffectFlags_TallGrassOnBeginStep(struct MapObject *, u32 *);
+void GetGroundEffectFlags_LongGrassOnSpawn(struct MapObject *, u32 *);
+void GetGroundEffectFlags_LongGrassOnBeginStep(struct MapObject *, u32 *);
+void GetGroundEffectFlags_Tracks(struct MapObject *, u32 *);
+void GetGroundEffectFlags_SandPile(struct MapObject *, u32 *);
+void GetGroundEffectFlags_ShallowFlowingWater(struct MapObject *, u32 *);
+void GetGroundEffectFlags_Puddle(struct MapObject *, u32 *);
+void GetGroundEffectFlags_Ripple(struct MapObject *, u32 *);
+void GetGroundEffectFlags_ShortGrass(struct MapObject *, u32 *);
+void GetGroundEffectFlags_HotSprings(struct MapObject *, u32 *);
+void GetGroundEffectFlags_Seaweed(struct MapObject *, u32 *);
+void GetGroundEffectFlags_JumpLanding(struct MapObject *, u32 *);
+u8 FieldObjectCheckForReflectiveSurface(struct MapObject *);
+
+void GetAllGroundEffectFlags_OnSpawn(struct MapObject *mapObj, u32 *flags)
+{
+ FieldObjectUpdateMetatileBehaviors(mapObj);
+ GetGroundEffectFlags_Reflection(mapObj, flags);
+ GetGroundEffectFlags_TallGrassOnSpawn(mapObj, flags);
+ GetGroundEffectFlags_LongGrassOnSpawn(mapObj, flags);
+ GetGroundEffectFlags_SandPile(mapObj, flags);
+ GetGroundEffectFlags_ShallowFlowingWater(mapObj, flags);
+ GetGroundEffectFlags_ShortGrass(mapObj, flags);
+ GetGroundEffectFlags_HotSprings(mapObj, flags);
+}
+
+void GetAllGroundEffectFlags_OnBeginStep(struct MapObject *mapObj, u32 *flags)
+{
+ FieldObjectUpdateMetatileBehaviors(mapObj);
+ GetGroundEffectFlags_Reflection(mapObj, flags);
+ GetGroundEffectFlags_TallGrassOnBeginStep(mapObj, flags);
+ GetGroundEffectFlags_LongGrassOnBeginStep(mapObj, flags);
+ GetGroundEffectFlags_Tracks(mapObj, flags);
+ GetGroundEffectFlags_SandPile(mapObj, flags);
+ GetGroundEffectFlags_ShallowFlowingWater(mapObj, flags);
+ GetGroundEffectFlags_Puddle(mapObj, flags);
+ GetGroundEffectFlags_ShortGrass(mapObj, flags);
+ GetGroundEffectFlags_HotSprings(mapObj, flags);
+}
+
+void GetAllGroundEffectFlags_OnFinishStep(struct MapObject *mapObj, u32 *flags)
+{
+ FieldObjectUpdateMetatileBehaviors(mapObj);
+ GetGroundEffectFlags_ShallowFlowingWater(mapObj, flags);
+ GetGroundEffectFlags_SandPile(mapObj, flags);
+ GetGroundEffectFlags_Puddle(mapObj, flags);
+ GetGroundEffectFlags_Ripple(mapObj, flags);
+ GetGroundEffectFlags_ShortGrass(mapObj, flags);
+ GetGroundEffectFlags_HotSprings(mapObj, flags);
+ GetGroundEffectFlags_Seaweed(mapObj, flags);
+ GetGroundEffectFlags_JumpLanding(mapObj, flags);
+}
+
+void FieldObjectUpdateMetatileBehaviors(struct MapObject *mapObj)
+{
+ mapObj->mapobj_unk_1F = MapGridGetMetatileBehaviorAt(mapObj->coords3.x, mapObj->coords3.y);
+ mapObj->mapobj_unk_1E = MapGridGetMetatileBehaviorAt(mapObj->coords2.x, mapObj->coords2.y);
+}
+
+void GetGroundEffectFlags_Reflection(struct MapObject *mapObj, u32 *flags)
+{
+ u32 reflectionFlags[2] = { 0x00000020, 0x00000010 };
+ u8 type = FieldObjectCheckForReflectiveSurface(mapObj);
+
+ if (type)
+ {
+ if (!mapObj->mapobj_bit_17)
+ {
+ mapObj->mapobj_bit_17 = 0;
+ mapObj->mapobj_bit_17 = 1;
+ *flags |= reflectionFlags[type - 1];
+ }
+ }
+ else
+ {
+ mapObj->mapobj_bit_17 = 0;
+ }
+}
+
+void GetGroundEffectFlags_TallGrassOnSpawn(struct MapObject *mapObj, u32 *flags)
+{
+ if (MetatileBehavior_IsTallGrass(mapObj->mapobj_unk_1E))
+ *flags |= 0x1;
+}
+
+void GetGroundEffectFlags_TallGrassOnBeginStep(struct MapObject *mapObj, u32 *flags)
+{
+ if (MetatileBehavior_IsTallGrass(mapObj->mapobj_unk_1E))
+ *flags |= 0x2;
+}
+
+void GetGroundEffectFlags_LongGrassOnSpawn(struct MapObject *mapObj, u32 *flags)
+{
+ if (MetatileBehavior_IsLongGrass(mapObj->mapobj_unk_1E))
+ *flags |= 0x4;
+}
+
+void GetGroundEffectFlags_LongGrassOnBeginStep(struct MapObject *mapObj, u32 *flags)
+{
+ if (MetatileBehavior_IsLongGrass(mapObj->mapobj_unk_1E))
+ *flags |= 0x8;
+}
+
+void GetGroundEffectFlags_Tracks(struct MapObject *mapObj, u32 *flags)
+{
+ if (MetatileBehavior_IsDeepSand(mapObj->mapobj_unk_1F))
+ {
+ *flags |= 0x100;
+ }
+ else if (MetatileBehavior_IsSandOrDeepSand(mapObj->mapobj_unk_1F)
+ || MetatileBehavior_IsUnusedFootprintMetatile(mapObj->mapobj_unk_1F))
+ {
+ *flags |= 0x80;
+ }
+}
+
+void GetGroundEffectFlags_SandPile(struct MapObject *mapObj, u32 *flags)
+{
+ if (MetatileBehavior_IsDeepSand(mapObj->mapobj_unk_1E)
+ && MetatileBehavior_IsDeepSand(mapObj->mapobj_unk_1F))
+ {
+ if (!mapObj->mapobj_bit_20)
+ {
+ mapObj->mapobj_bit_20 = 0;
+ mapObj->mapobj_bit_20 = 1;
+ *flags |= 0x800;
+ }
+ }
+ else
+ {
+ mapObj->mapobj_bit_20 = 0;
+ }
+}
+
+void GetGroundEffectFlags_ShallowFlowingWater(struct MapObject *mapObj, u32 *flags)
+{
+ if ((MetatileBehavior_IsShallowFlowingWater(mapObj->mapobj_unk_1E) && MetatileBehavior_IsShallowFlowingWater(mapObj->mapobj_unk_1F))
+ || (MetatileBehavior_IsPacifidlogLog(mapObj->mapobj_unk_1E) && MetatileBehavior_IsPacifidlogLog(mapObj->mapobj_unk_1F)))
+ {
+ if (!mapObj->mapobj_bit_19)
+ {
+ mapObj->mapobj_bit_19 = 0;
+ mapObj->mapobj_bit_19 = 1;
+ *flags |= 0x40;
+ }
+ }
+ else
+ {
+ mapObj->mapobj_bit_19 = 0;
+ }
+}
+
+void GetGroundEffectFlags_Puddle(struct MapObject *mapObj, u32 *flags)
+{
+ if (MetatileBehavior_IsPuddle(mapObj->mapobj_unk_1E)
+ && MetatileBehavior_IsPuddle(mapObj->mapobj_unk_1F))
+ {
+ *flags |= 0x400;
+ }
+}
+
+void GetGroundEffectFlags_Ripple(struct MapObject *mapObj, u32 *flags)
+{
+ if (MetatileBehavior_HasRipples(mapObj->mapobj_unk_1E))
+ *flags |= 0x200;
+}
+
+void GetGroundEffectFlags_ShortGrass(struct MapObject *mapObj, u32 *flags)
+{
+ if (MetatileBehavior_IsShortGrass(mapObj->mapobj_unk_1E)
+ && MetatileBehavior_IsShortGrass(mapObj->mapobj_unk_1F))
+ {
+ if (!mapObj->mapobj_bit_18)
+ {
+ mapObj->mapobj_bit_18 = 0;
+ mapObj->mapobj_bit_18 = 1;
+ *flags |= 0x20000;
+ }
+ }
+ else
+ {
+ mapObj->mapobj_bit_18 = 0;
+ }
+}
+
+void GetGroundEffectFlags_HotSprings(struct MapObject *mapObj, u32 *flags)
+{
+ if (MetatileBehavior_IsHotSprings(mapObj->mapobj_unk_1E)
+ && MetatileBehavior_IsHotSprings(mapObj->mapobj_unk_1F))
+ {
+ if (!mapObj->mapobj_bit_21)
+ {
+ mapObj->mapobj_bit_21 = 0;
+ mapObj->mapobj_bit_21 = 1;
+ *flags |= 0x40000;
+ }
+ }
+ else
+ {
+ mapObj->mapobj_bit_21 = 0;
+ }
+}
+
+void GetGroundEffectFlags_Seaweed(struct MapObject *mapObj, u32 *flags)
+{
+ if (MetatileBehavior_IsSeaweed(mapObj->mapobj_unk_1E))
+ *flags |= 0x80000;
+}
+
+void GetGroundEffectFlags_JumpLanding(struct MapObject *mapObj, u32 *flags)
+{
+ typedef bool8 (*MetatileFunc)(u8);
+
+ static const MetatileFunc metatileFuncs[] =
+ {
+ MetatileBehavior_IsTallGrass,
+ MetatileBehavior_IsLongGrass,
+ MetatileBehavior_IsPuddle,
+ MetatileBehavior_IsSurfableWaterOrUnderwater,
+ MetatileBehavior_IsShallowFlowingWater,
+ MetatileBehavior_IsATile,
+ };
+
+ static const u32 jumpLandingFlags[] =
+ {
+ 0x00001000, // Landing in tall grass
+ 0x00002000, // Landing in long grass
+ 0x00004000, // Landing on puddle
+ 0x00008000, // Landing on surfable water or underwater
+ 0x00004000, // Landing on shallow flowing water
+ 0x00010000, // Landing on any other type of ground
+ };
+
+ if (mapObj->mapobj_bit_5 && !mapObj->mapobj_bit_25)
+ {
+ u8 i;
+
+ for (i = 0; i < 6; i++)
+ {
+ if (metatileFuncs[i](mapObj->mapobj_unk_1E))
+ {
+ *flags |= jumpLandingFlags[i];
+ return;
+ }
+ }
+ }
+}
diff --git a/src/map_obj_80643A4.c b/src/field_map_obj_helpers.c
index 8e2faf268..6e835d744 100644
--- a/src/map_obj_80643A4.c
+++ b/src/field_map_obj_helpers.c
@@ -1,12 +1,8 @@
#include "global.h"
+#include "asm.h"
#include "sprite.h"
-#include "fieldmap.h"
-
-extern void SetObjectSubpriorityByZCoord(u8, struct Sprite *, u8);
-extern u8 FieldObjectDirectionToImageAnimId(u8);
-extern u32 FieldEffectStart(u8);
-extern void FieldObjectGetLocalIdAndMap(struct MapObject *, u8 *, u8 *, u8 *);
-extern struct MapObjectGraphicsInfo *GetFieldObjectGraphicsInfo(u8);
+#include "asm_fieldmap.h"
+#include "field_effect.h"
typedef void (*SpriteStepFunc)(struct Sprite *sprite, u8 dir);
@@ -21,7 +17,7 @@ extern u8 gUnknown_083761E2[];
extern s16 gUnknown_083761E6[];
extern u8 gUnknown_083761EC[];
-bool8 sub_80643A4(struct MapObject *mapObject)
+bool8 FreezeMapObject(struct MapObject *mapObject)
{
if (mapObject->mapobj_bit_6 || mapObject->mapobj_bit_8)
{
@@ -38,23 +34,23 @@ bool8 sub_80643A4(struct MapObject *mapObject)
}
}
-void player_bitmagic()
+void FreezeMapObjects()
{
u8 i;
for (i = 0; i < 16; i++)
if (gMapObjects[i].active && i != gPlayerAvatar.mapObjectId)
- sub_80643A4(&gMapObjects[i]);
+ FreezeMapObject(&gMapObjects[i]);
}
-void sub_8064470(u8 a1)
+void FreezeMapObjectsExceptOne(u8 a1)
{
u8 i;
for (i = 0; i < 16; i++)
if (i != a1 && gMapObjects[i].active && i != gPlayerAvatar.mapObjectId)
- sub_80643A4(&gMapObjects[i]);
+ FreezeMapObject(&gMapObjects[i]);
}
-void npc_sync_anim_pause_bits(struct MapObject *mapObject)
+void UnfreezeMapObject(struct MapObject *mapObject)
{
if (mapObject->active && mapObject->mapobj_bit_8)
{
@@ -64,39 +60,39 @@ void npc_sync_anim_pause_bits(struct MapObject *mapObject)
}
}
-void sub_806451C(void)
+void UnfreezeMapObjects(void)
{
u8 i;
for (i = 0; i < 16; i++)
if (gMapObjects[i].active)
- npc_sync_anim_pause_bits(&gMapObjects[i]);
+ UnfreezeMapObject(&gMapObjects[i]);
}
-void little_step(struct Sprite *sprite, u8 dir)
+void Step1(struct Sprite *sprite, u8 dir)
{
sprite->pos1.x += gDirectionToVector[dir].x;
sprite->pos1.y += gDirectionToVector[dir].y;
}
-void sub_806456C(struct Sprite *sprite, u8 dir)
+void Step2(struct Sprite *sprite, u8 dir)
{
sprite->pos1.x += 2 * gDirectionToVector[dir].x;
sprite->pos1.y += 2 * gDirectionToVector[dir].y;
}
-void sub_8064590(struct Sprite *sprite, u8 dir)
+void Step3(struct Sprite *sprite, u8 dir)
{
sprite->pos1.x += 2 * gDirectionToVector[dir].x + gDirectionToVector[dir].x;
sprite->pos1.y += 2 * gDirectionToVector[dir].y + gDirectionToVector[dir].y;
}
-void sub_80645B8(struct Sprite *sprite, u8 dir)
+void Step4(struct Sprite *sprite, u8 dir)
{
sprite->pos1.x += 4 * gDirectionToVector[dir].x;
sprite->pos1.y += 4 * gDirectionToVector[dir].y;
}
-void sub_80645DC(struct Sprite *sprite, u8 dir)
+void Step8(struct Sprite *sprite, u8 dir)
{
sprite->pos1.x += 8 * gDirectionToVector[dir].x;
sprite->pos1.y += 8 * gDirectionToVector[dir].y;
@@ -135,7 +131,7 @@ bool8 sub_806468C(struct Sprite *sprite)
{
if (!(sprite->data4 & 1))
{
- little_step(sprite, sprite->data3);
+ Step1(sprite, sprite->data3);
sprite->data5++;
}
@@ -172,7 +168,7 @@ u8 sub_8064704(struct Sprite *sprite)
v2 = 0;
if (sprite->data4)
- little_step(sprite, sprite->data3);
+ Step1(sprite, sprite->data3);
sprite->pos2.y = sub_80646C8(sprite->data6 >> v6[sprite->data4], sprite->data5);
@@ -202,7 +198,7 @@ u8 sub_806478C(struct Sprite *sprite)
v2 = 0;
if (sprite->data4 && !(sprite->data6 & 1))
- little_step(sprite, sprite->data3);
+ Step1(sprite, sprite->data3);
sprite->pos2.y = sub_80646C8(sprite->data6 >> v6[sprite->data4], sprite->data5);
diff --git a/src/field_message_box.c b/src/field_message_box.c
index f42541c49..a7d1a2fd8 100644
--- a/src/field_message_box.c
+++ b/src/field_message_box.c
@@ -22,7 +22,7 @@ void InitFieldMessageBox(void)
{
sMessageBoxMode = FIELD_MESSAGE_BOX_HIDDEN;
SetMessageBoxBaseTileNum(gMenuTextWindowContentTileOffset);
- InitWindowFromConfig(&gFieldMessageBoxWindow, (struct WindowConfig *)&gWindowConfig_81E6CE4);
+ InitWindowFromConfig(&gFieldMessageBoxWindow, &gWindowConfig_81E6CE4);
}
static void Task_FieldMessageBox(u8 taskId)
diff --git a/src/field_player_avatar.c b/src/field_player_avatar.c
new file mode 100644
index 000000000..fdd5ae5c5
--- /dev/null
+++ b/src/field_player_avatar.c
@@ -0,0 +1,1602 @@
+#include "global.h"
+#include "field_player_avatar.h"
+#include "asm.h"
+#include "field_map_obj.h"
+#include "rom4.h"
+#include "event_data.h"
+#include "main.h"
+#include "menu.h"
+#include "rng.h"
+#include "script.h"
+#include "songs.h"
+#include "sound.h"
+#include "task.h"
+#include "field_effect.h"
+#include "wild_encounter.h"
+#include "asm_fieldmap.h"
+#include "metatile_behavior.h"
+
+extern u8 gOtherText_OhABite[];
+extern u8 gOtherText_PokeOnHook[];
+extern u8 gOtherText_NotEvenANibble[];
+extern u8 gOtherText_ItGotAway[];
+
+extern struct
+{
+ s32 x;
+ s32 y;
+ u32 unk8;
+ u32 unkC;
+} gUnknown_0202FF84;
+
+extern bool8 (*gUnknown_0830FB58[])(u8);
+extern u8 (*gUnknown_0830FBA0[])(void);
+extern void (*gUnknown_0830FBEC[])(u8, u16);
+extern bool8 (*gUnknown_0830FBF8[])(u8);
+extern u8 gUnknown_0830FC0C[];
+extern void (*gUnknown_0830FC14[])(struct MapObject *);
+extern bool8 (*gUnknown_0830FC34[])(u8);
+extern u8 gUnknown_0830FC44[][2];
+extern u8 gUnknown_0830FC54[][2];
+extern u8 gUnknown_0830FC64[2][5][2];
+extern bool8 (*gUnknown_0830FC78[])(u8); //Duplicate of gUnknown_0830FC34
+extern u8 (*gUnknown_0830FC88[])(struct Task *, struct MapObject *, struct MapObject *);
+extern u8 (*gUnknown_0830FC94[])(struct Task *, struct MapObject *);
+extern u8 (*gUnknown_0830FC98[])(struct Task *, struct MapObject *);
+extern u8 gUnknown_0830FCA8[];
+extern u8 gUnknown_0830FCAC[];
+extern u8 (*gUnknown_0830FCB4[])(struct Task *);
+extern s16 gUnknown_0830FCF4[];
+extern s16 gUnknown_0830FCFA[];
+extern u8 gUnknown_0830FD00[];
+extern s16 gUnknown_0830FD02[];
+extern s16 gUnknown_0830FD08[];
+
+//Functions
+static u32 sub_80587D8(void);
+static bool8 sub_8058854(struct MapObject *, u8);
+static void npc_clear_strange_bits(struct MapObject *a);
+static void MovePlayerAvatarUsingKeypadInput(u8 a, u16 b, u16 c);
+static void PlayerAllowForcedMovementIfMovingSameDirection(void);
+static u8 TryDoMetatileBehaviorForcedMovement(void);
+static u8 GetForcedMovementByMetatileBehavior(void);
+static void MovePlayerNotOnBike(u8 a, u16 b);
+static u8 CheckMovementInputNotOnBike(u8 a);
+static u8 CheckForPlayerAvatarCollision(u8 a);
+static u8 sub_8058EF0(s16 a, s16 b, u8 c);
+static bool8 ShouldJumpLedge(s16 a, s16 b, u8 c);
+static u8 sub_8058F6C(s16 a, s16 b, u8 c);
+static void check_acro_bike_metatile(int unused1, int unused2, u8 c, u8 *d);
+static void DoPlayerAvatarTransition(void);
+static bool8 player_is_anim_in_certain_ranges(void);
+static bool8 sub_80592A4(void);
+static bool8 PlayerIsAnimActive(void);
+static bool8 PlayerCheckIfAnimFinishedOrInactive(void);
+static void PlayerNotOnBikeCollide(u8 a);
+static void PlayCollisionSoundIfNotFacingWarp(u8 a);
+static void sub_8059D60(struct MapObject *a);
+static void StartStrengthAnim(u8 a, u8 b);
+static void sub_8059F94(void);
+static void sub_805A06C(void);
+
+void sub_80587B4(struct Sprite *sprite)
+{
+ meta_step(&gMapObjects[sprite->data0], sprite, sub_80587D8);
+}
+
+static u32 sub_80587D8(void)
+{
+ return 0;
+}
+
+void player_step(u8 a, u16 b, u16 c)
+{
+ struct MapObject *playerMapObj = &gMapObjects[gPlayerAvatar.mapObjectId];
+
+ sub_8059D60(playerMapObj);
+ if (gPlayerAvatar.unk6 == 0)
+ {
+ sub_80E5B38(b, c);
+ if (sub_8058854(playerMapObj, a) == 0)
+ {
+ npc_clear_strange_bits(playerMapObj);
+ DoPlayerAvatarTransition();
+ if (TryDoMetatileBehaviorForcedMovement() == 0)
+ {
+ MovePlayerAvatarUsingKeypadInput(a, b, c);
+ PlayerAllowForcedMovementIfMovingSameDirection();
+ }
+ }
+ }
+}
+
+static bool8 sub_8058854(struct MapObject *a, u8 b)
+{
+ if (FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive(a)
+ && !FieldObjectClearAnimIfSpecialAnimFinished(a))
+ {
+ u8 specialAnim = FieldObjectGetSpecialAnim(a);
+
+ if (specialAnim > 24 && specialAnim < 29 && b != 0 && a->placeholder18 != b)
+ {
+ FieldObjectClearAnim(a);
+ return FALSE;
+ }
+ else
+ {
+ return TRUE;
+ }
+ }
+ return FALSE;
+}
+
+static void npc_clear_strange_bits(struct MapObject *a)
+{
+ a->mapobj_bit_12 = 0;
+ a->mapobj_bit_10 = 0;
+ a->mapobj_bit_9 = 0;
+ gPlayerAvatar.flags &= ~PLAYER_AVATAR_FLAG_DASH;
+}
+
+static void MovePlayerAvatarUsingKeypadInput(u8 a, u16 b, u16 c)
+{
+ if ((gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_MACH_BIKE)
+ || (gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_ACRO_BIKE))
+ MovePlayerOnBike(a, b, c);
+ else
+ MovePlayerNotOnBike(a, c);
+}
+
+static void PlayerAllowForcedMovementIfMovingSameDirection(void)
+{
+ if (gPlayerAvatar.running2 == 2)
+ gPlayerAvatar.flags &= ~PLAYER_AVATAR_FLAG_5;
+}
+
+static u8 TryDoMetatileBehaviorForcedMovement(void)
+{
+ return gUnknown_0830FBA0[GetForcedMovementByMetatileBehavior()]();
+}
+
+static u8 GetForcedMovementByMetatileBehavior(void)
+{
+ u8 i;
+
+ if (!(gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_5))
+ {
+ u8 r5 = gMapObjects[gPlayerAvatar.mapObjectId].mapobj_unk_1E;
+
+ for (i = 0; i < 18; i++)
+ {
+ if (gUnknown_0830FB58[i](r5))
+ return i + 1;
+ }
+ }
+ return 0;
+}
+
+u8 ForcedMovement_None(void)
+{
+ if (gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_6)
+ {
+ struct MapObject *playerMapObj = &gMapObjects[gPlayerAvatar.mapObjectId];
+
+ playerMapObj->mapobj_bit_9 = 0;
+ playerMapObj->mapobj_bit_11 = 1;
+ FieldObjectSetDirection(playerMapObj, playerMapObj->mapobj_unk_18);
+ gPlayerAvatar.flags &= ~PLAYER_AVATAR_FLAG_6;
+ }
+ return 0;
+}
+
+static u8 DoForcedMovement(u8 a, void (*b)(u8))
+{
+ struct PlayerAvatar *playerAvatar = &gPlayerAvatar;
+ u8 r7 = CheckForPlayerAvatarCollision(a);
+
+ playerAvatar->flags |= PLAYER_AVATAR_FLAG_6;
+ if (r7 != 0)
+ {
+ ForcedMovement_None();
+ if (r7 <= 4)
+ {
+ return 0;
+ }
+ else
+ {
+ if (r7 == 6)
+ PlayerJumpLedge(a);
+ playerAvatar->flags |= PLAYER_AVATAR_FLAG_6;
+ playerAvatar->running2 = 2;
+ return 1;
+ }
+ }
+ else
+ {
+ playerAvatar->running2 = 2;
+ b(a);
+ return 1;
+ }
+}
+
+static u8 DoForcedMovementInCurrentDirection(void (*a)(u8))
+{
+ struct MapObject *playerMapObj = &gMapObjects[gPlayerAvatar.mapObjectId];
+
+ playerMapObj->mapobj_bit_10 = 1;
+ return DoForcedMovement(playerMapObj->placeholder18, a);
+}
+
+u8 ForcedMovement_Slip(void)
+{
+ return DoForcedMovementInCurrentDirection(sub_80593C4);
+}
+
+u8 sub_8058AAC(void)
+{
+ return DoForcedMovement(1, PlayerGoSpeed0);
+}
+
+u8 sub_8058AC4(void)
+{
+ return DoForcedMovement(2, PlayerGoSpeed0);
+}
+
+u8 sub_8058ADC(void)
+{
+ return DoForcedMovement(3, PlayerGoSpeed0);
+}
+
+u8 sub_8058AF4(void)
+{
+ return DoForcedMovement(4, PlayerGoSpeed0);
+}
+
+u8 sub_8058B0C(void)
+{
+ return DoForcedMovement(1, npc_use_some_d2s);
+}
+
+u8 sub_8058B24(void)
+{
+ return DoForcedMovement(2, npc_use_some_d2s);
+}
+
+u8 sub_8058B3C(void)
+{
+ return DoForcedMovement(3, npc_use_some_d2s);
+}
+
+u8 sub_8058B54(void)
+{
+ return DoForcedMovement(4, npc_use_some_d2s);
+}
+
+static u8 ForcedMovement_Slide(u8 a, void (*b)(u8))
+{
+ struct MapObject *playerMapObj = &gMapObjects[gPlayerAvatar.mapObjectId];
+
+ playerMapObj->mapobj_bit_10 = 1;
+ playerMapObj->mapobj_bit_9 = 1;
+ return DoForcedMovement(a, b);
+}
+
+u8 ForcedMovement_SlideSouth(void)
+{
+ return ForcedMovement_Slide(1, sub_80593C4);
+}
+
+u8 ForcedMovement_SlideNorth(void)
+{
+ return ForcedMovement_Slide(2, sub_80593C4);
+}
+
+u8 ForcedMovement_SlideWest(void)
+{
+ return ForcedMovement_Slide(3, sub_80593C4);
+}
+
+u8 ForcedMovement_SlideEast(void)
+{
+ return ForcedMovement_Slide(4, sub_80593C4);
+}
+
+u8 sub_8058C04(void)
+{
+ sub_8059F94();
+ return 1;
+}
+
+u8 sub_8058C10(void)
+{
+ sub_805A06C();
+ return 1;
+}
+
+u8 ForcedMovement_MuddySlope(void)
+{
+ struct MapObject *playerMapObj = &gMapObjects[gPlayerAvatar.mapObjectId];
+
+ if (playerMapObj->placeholder18 != 2 || sub_80E6034() <= 3)
+ {
+ sub_80E6010(0);
+ playerMapObj->mapobj_bit_9 = 1;
+ return DoForcedMovement(1, sub_80593C4);
+ }
+ else
+ {
+ return 0;
+ }
+}
+
+static void MovePlayerNotOnBike(u8 a, u16 b)
+{
+ gUnknown_0830FBEC[CheckMovementInputNotOnBike(a)](a, b);
+}
+
+static u8 CheckMovementInputNotOnBike(u8 a)
+{
+ if (a == 0)
+ {
+ gPlayerAvatar.running2 = 0;
+ return 0;
+ }
+ else if (a != player_get_direction_upper_nybble() && gPlayerAvatar.running2 != 2)
+ {
+ gPlayerAvatar.running2 = 1;
+ return 1;
+ }
+ else
+ {
+ gPlayerAvatar.running2 = 2;
+ return 2;
+ }
+}
+
+void PlayerNotOnBikeNotMoving(u8 a, u16 b)
+{
+ PlayerFaceDirection(player_get_direction_lower_nybble());
+}
+
+void PlayerNotOnBikeTurningInPlace(u8 a, u16 b)
+{
+ PlayerTurnInPlace(a);
+}
+
+void sub_8058D0C(u8 a, u16 b)
+{
+ u8 r1 = CheckForPlayerAvatarCollision(a);
+
+ switch (r1)
+ {
+ case 6:
+ PlayerJumpLedge(a);
+ return;
+ default:
+ if (r1 > 8 || r1 < 5)
+ PlayerNotOnBikeCollide(a);
+ return;
+ case 0:
+ if (gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_SURFING)
+ {
+ sub_80593C4(a);
+ return;
+ }
+ if (!(gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_4) && (b & 2) && FlagGet(SYS_B_DASH)
+ && sub_80E5DEC(gMapObjects[gPlayerAvatar.mapObjectId].mapobj_unk_1E) == 0)
+ {
+ sub_805940C(a);
+ gPlayerAvatar.flags |= PLAYER_AVATAR_FLAG_DASH;
+ }
+ else
+ {
+ PlayerGoSpeed0(a);
+ }
+ }
+}
+
+static u8 CheckForPlayerAvatarCollision(u8 a)
+{
+ s16 x, y;
+ struct MapObject *playerMapObj = &gMapObjects[gPlayerAvatar.mapObjectId];
+
+ x = playerMapObj->coords2.x;
+ y = playerMapObj->coords2.y;
+ MoveCoords(a, &x, &y);
+ return CheckForFieldObjectCollision(playerMapObj, x, y, a, MapGridGetMetatileBehaviorAt(x, y));
+}
+
+u8 CheckForFieldObjectCollision(struct MapObject *a, s16 b, s16 c, u8 d, u8 e)
+{
+ u8 sp0;
+
+ sp0 = npc_block_way(a, b, c, d);
+ if (sp0 == 3 && sub_8058EF0(b, c, d))
+ return 5;
+ if (ShouldJumpLedge(b, c, d))
+ {
+ IncrementGameStat(0x2B);
+ return 6;
+ }
+ if (sp0 == 4 && sub_8058F6C(b, c, d))
+ return 7;
+
+ if (sp0 == 0)
+ {
+ if (CheckForRotatingGatePuzzleCollision(d, b, c))
+ return 8;
+ check_acro_bike_metatile(b, c, e, &sp0);
+ }
+ return sp0;
+}
+
+static u8 sub_8058EF0(s16 a, s16 b, u8 c)
+{
+ if ((gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_SURFING)
+ && MapGridGetZCoordAt(a, b) == 3
+ && GetFieldObjectIdByXYZ(a, b, 3) == 16)
+ {
+ sub_805A20C(c);
+ return 1;
+ }
+ else
+ {
+ return 0;
+ }
+}
+
+static bool8 ShouldJumpLedge(s16 a, s16 b, u8 c)
+{
+ if (GetLedgeJumpDirection(a, b, c) != 0)
+ return 1;
+ else
+ return 0;
+}
+
+static u8 sub_8058F6C(s16 a, s16 b, u8 c)
+{
+ if (FlagGet(SYS_USE_STRENGTH))
+ {
+ u8 mapObjectId = GetFieldObjectIdByXY(a, b);
+
+ if (mapObjectId != 16)
+ {
+ if (gMapObjects[mapObjectId].graphicsId == 0x57)
+ {
+ a = gMapObjects[mapObjectId].coords2.x;
+ b = gMapObjects[mapObjectId].coords2.y;
+ MoveCoords(c, &a, &b);
+ if (npc_block_way(&gMapObjects[mapObjectId], a, b, c) == 0
+ && MetatileBehavior_IsNonAnimDoor(MapGridGetMetatileBehaviorAt(a, b)) == 0)
+ {
+ StartStrengthAnim(mapObjectId, c);
+ return 1;
+ }
+ }
+ }
+ }
+ return 0;
+}
+
+static void check_acro_bike_metatile(int unused1, int unused2, u8 c, u8 *d)
+{
+ u8 i;
+
+ for (i = 0; i < 5; i++)
+ {
+ if (gUnknown_0830FBF8[i](c))
+ {
+ *d = gUnknown_0830FC0C[i];
+ return;
+ }
+ }
+}
+
+void SetPlayerAvatarTransitionFlags(u16 a)
+{
+ gPlayerAvatar.bike |= a;
+ DoPlayerAvatarTransition();
+}
+
+static void DoPlayerAvatarTransition(void)
+{
+ u8 i;
+ u32 flags = gPlayerAvatar.bike;
+
+ if (flags != 0)
+ {
+ for (i = 0; i < 8; i++, flags >>= 1)
+ {
+#ifdef NONMATCHING
+ if (flags & 1)
+ {
+ gUnknown_0830FC14[i](&gMapObjects[gPlayerAvatar.mapObjectId]);
+ }
+#else
+ if (flags & 1)
+ {
+ register void (**funcs)(struct MapObject *) asm("r0") = gUnknown_0830FC14;
+ funcs[i](&gMapObjects[gPlayerAvatar.mapObjectId]);
+ }
+#endif
+ }
+ gPlayerAvatar.bike = 0;
+ }
+}
+
+void nullsub_49(struct MapObject *a)
+{
+}
+
+void PlayerAvatarTransition_Normal(struct MapObject *a)
+{
+ sub_805B980(a, GetPlayerAvatarGraphicsIdByStateId(0));
+ FieldObjectTurn(a, a->placeholder18);
+ SetPlayerAvatarStateMask(1);
+}
+
+void PlayerAvatarTransition_MachBike(struct MapObject *a)
+{
+ sub_805B980(a, GetPlayerAvatarGraphicsIdByStateId(1));
+ FieldObjectTurn(a, a->placeholder18);
+ SetPlayerAvatarStateMask(2);
+ sub_80E5FCC(0, 0);
+}
+
+void PlayerAvatarTransition_AcroBike(struct MapObject *a)
+{
+ sub_805B980(a, GetPlayerAvatarGraphicsIdByStateId(2));
+ FieldObjectTurn(a, a->placeholder18);
+ SetPlayerAvatarStateMask(4);
+ sub_80E5FCC(0, 0);
+ sub_80E6084();
+}
+
+void PlayerAvatarTransition_Surfing(struct MapObject *a)
+{
+ u8 unk;
+
+ sub_805B980(a, GetPlayerAvatarGraphicsIdByStateId(3));
+ FieldObjectTurn(a, a->placeholder18);
+ SetPlayerAvatarStateMask(8);
+ gUnknown_0202FF84.x = a->coords2.x;
+ gUnknown_0202FF84.y = a->coords2.y;
+ gUnknown_0202FF84.unk8 = gPlayerAvatar.mapObjectId;
+ unk = FieldEffectStart(8);
+ a->mapobj_unk_1A = unk;
+ sub_8127ED0(unk, 1);
+}
+
+void PlayerAvatarTransition_Underwater(struct MapObject *a)
+{
+ sub_805B980(a, GetPlayerAvatarGraphicsIdByStateId(4));
+ FieldObjectTurn(a, a->placeholder18);
+ SetPlayerAvatarStateMask(16);
+ a->mapobj_unk_1A = sub_8128124(a->spriteId);
+}
+
+void sub_80591F4(struct MapObject *a)
+{
+ gPlayerAvatar.flags |= PLAYER_AVATAR_FLAG_5;
+}
+
+void sub_8059204(void)
+{
+ gPlayerAvatar.running1 = 0;
+ if (PlayerIsAnimActive())
+ {
+ if (!PlayerCheckIfAnimFinishedOrInactive())
+ {
+ if (!player_is_anim_in_certain_ranges())
+ gPlayerAvatar.running1 = 1;
+ }
+ else
+ {
+ if (!sub_80592A4())
+ gPlayerAvatar.running1 = 2;
+ }
+ }
+}
+
+static bool8 player_is_anim_in_certain_ranges(void)
+{
+ u8 unk = gMapObjects[gPlayerAvatar.mapObjectId].mapobj_unk_1C;
+
+ if (unk < 4
+ || (unk >= 16 && unk < 0x15)
+ || (unk >= 25 && unk < 41)
+ || (unk >= 98 && unk < 110)
+ || (unk >= 122 && unk < 126))
+ return TRUE;
+ else
+ return FALSE;
+}
+
+static bool8 sub_80592A4(void)
+{
+ if (player_is_anim_in_certain_ranges() && gPlayerAvatar.running2 != 1)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+static bool8 PlayerIsAnimActive(void)
+{
+ return FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive(&gMapObjects[gPlayerAvatar.mapObjectId]);
+}
+
+static bool8 PlayerCheckIfAnimFinishedOrInactive(void)
+{
+ return FieldObjectCheckIfSpecialAnimFinishedOrInactive(&gMapObjects[gPlayerAvatar.mapObjectId]);
+}
+
+static void player_set_x22(u8 a)
+{
+ gMapObjects[gPlayerAvatar.mapObjectId].mapobj_unk_22 = a;
+}
+
+u8 player_get_x22(void)
+{
+ return gMapObjects[gPlayerAvatar.mapObjectId].mapobj_unk_22;
+}
+
+static void sub_8059348(u8 a)
+{
+ FieldObjectForceSetSpecialAnim(&gMapObjects[gPlayerAvatar.mapObjectId], a);
+}
+
+void player_npc_set_state_and_x22_etc(u8 a, u8 b)
+{
+ if (!PlayerIsAnimActive())
+ {
+ player_set_x22(b);
+ FieldObjectSetSpecialAnim(&gMapObjects[gPlayerAvatar.mapObjectId], a);
+ }
+}
+
+void PlayerGoSpeed0(u8 a)
+{
+ player_npc_set_state_and_x22_etc(GetGoSpeed0AnimId(a), 2);
+}
+
+void sub_80593C4(u8 a)
+{
+ player_npc_set_state_and_x22_etc(sub_8060744(a), 2);
+}
+
+void npc_use_some_d2s(u8 a)
+{
+ player_npc_set_state_and_x22_etc(d2s_08064034(a), 2);
+}
+
+void sub_80593F4(u8 a)
+{
+ player_npc_set_state_and_x22_etc(sub_806079C(a), 2);
+}
+
+void sub_805940C(u8 a)
+{
+ player_npc_set_state_and_x22_etc(sub_80607F4(a), 2);
+}
+
+void PlayerOnBikeCollide(u8 a)
+{
+ PlayCollisionSoundIfNotFacingWarp(a);
+ player_npc_set_state_and_x22_etc(GetStepInPlaceDelay16AnimId(a), 2);
+}
+
+static void PlayerNotOnBikeCollide(u8 a)
+{
+ PlayCollisionSoundIfNotFacingWarp(a);
+ player_npc_set_state_and_x22_etc(GetStepInPlaceDelay32AnimId(a), 2);
+}
+
+void PlayerFaceDirection(u8 a)
+{
+ player_npc_set_state_and_x22_etc(GetFaceDirectionAnimId(a), 1);
+}
+
+void PlayerTurnInPlace(u8 a)
+{
+ player_npc_set_state_and_x22_etc(GetStepInPlaceDelay8AnimId(a), 1);
+}
+
+void PlayerJumpLedge(u8 a)
+{
+ PlaySE(SE_DANSA);
+ player_npc_set_state_and_x22_etc(GetJumpLedgeAnimId(a), 8);
+}
+
+void sub_80594C0(void)
+{
+ if (gPlayerAvatar.running1 == 2 || gPlayerAvatar.running1 == 0)
+ {
+ if (player_should_look_direction_be_enforced_upon_movement())
+ sub_8059348(GetFaceDirectionAnimId(gMapObjects[gPlayerAvatar.mapObjectId].mapobj_unk_18));
+ }
+}
+
+void sub_8059504(u8 a)
+{
+ player_npc_set_state_and_x22_etc(sub_80609D8(a), 1);
+}
+
+void sub_805951C(u8 a)
+{
+ player_npc_set_state_and_x22_etc(sub_8060A04(a), 1);
+}
+
+void sub_8059534(u8 a)
+{
+ player_npc_set_state_and_x22_etc(sub_8060A30(a), 1);
+}
+
+void sub_805954C(u8 a)
+{
+ PlaySE(SE_JITE_PYOKO);
+ player_npc_set_state_and_x22_etc(sub_8060A5C(a), 1);
+}
+
+void sub_8059570(u8 a)
+{
+ PlaySE(SE_JITE_PYOKO);
+ player_npc_set_state_and_x22_etc(sub_8060A88(a), 2);
+}
+
+void sub_8059594(u8 a)
+{
+ PlaySE(SE_JITE_PYOKO);
+ player_npc_set_state_and_x22_etc(sub_8060AB4(a), 8);
+}
+
+void sub_80595B8(u8 a)
+{
+ PlaySE(SE_JITE_PYOKO);
+ player_npc_set_state_and_x22_etc(sub_8060878(a), 1);
+}
+
+void sub_80595DC(u8 a)
+{
+ PlaySE(SE_WALL_HIT);
+ player_npc_set_state_and_x22_etc(sub_8060AE0(a), 2);
+}
+
+void sub_8059600(u8 a)
+{
+ player_npc_set_state_and_x22_etc(sub_8060B0C(a), 2);
+}
+
+void sub_8059618(u8 a)
+{
+ player_npc_set_state_and_x22_etc(sub_8060B38(a), 2);
+}
+
+void sub_8059630(u8 a)
+{
+ player_npc_set_state_and_x22_etc(sub_8060B64(a), 2);
+}
+
+static void PlayCollisionSoundIfNotFacingWarp(u8 a)
+{
+ s16 x, y;
+ u8 unk = gMapObjects[gPlayerAvatar.mapObjectId].mapobj_unk_1E;
+
+ if (!gUnknown_0830FC34[a - 1](unk))
+ {
+ if (a == 2)
+ {
+ PlayerGetDestCoords(&x, &y);
+ MoveCoords(2, &x, &y);
+ if (MetatileBehavior_IsWarpDoor(MapGridGetMetatileBehaviorAt(x, y)))
+ return;
+ }
+ PlaySE(SE_WALL_HIT);
+ }
+}
+
+void GetXYCoordsOneStepInFrontOfPlayer(s16 *x, s16 *y)
+{
+ *x = gMapObjects[gPlayerAvatar.mapObjectId].coords2.x;
+ *y = gMapObjects[gPlayerAvatar.mapObjectId].coords2.y;
+ MoveCoords(player_get_direction_lower_nybble(), x, y);
+}
+
+void PlayerGetDestCoords(s16 *x, s16 *y)
+{
+ *x = gMapObjects[gPlayerAvatar.mapObjectId].coords2.x;
+ *y = gMapObjects[gPlayerAvatar.mapObjectId].coords2.y;
+}
+
+u8 player_get_direction_lower_nybble(void)
+{
+ return gMapObjects[gPlayerAvatar.mapObjectId].mapobj_unk_18;
+}
+
+u8 player_get_direction_upper_nybble(void)
+{
+ return gMapObjects[gPlayerAvatar.mapObjectId].placeholder18;
+}
+
+u8 PlayerGetZCoord(void)
+{
+ return gMapObjects[gPlayerAvatar.mapObjectId].elevation;
+}
+
+void unref_sub_8059790(s16 a, s16 b)
+{
+ sub_805C058(&gMapObjects[gPlayerAvatar.mapObjectId], a, b);
+}
+
+u8 TestPlayerAvatarFlags(u8 a)
+{
+ return gPlayerAvatar.flags & a;
+}
+
+u8 sub_80597D0(void)
+{
+ return gPlayerAvatar.flags;
+}
+
+u8 GetPlayerAvatarObjectId(void)
+{
+ return gPlayerAvatar.spriteId;
+}
+
+void sub_80597E8(void)
+{
+ ForcedMovement_None();
+}
+
+void sub_80597F4(void)
+{
+ struct MapObject *playerMapObj = &gMapObjects[gPlayerAvatar.mapObjectId];
+
+ npc_clear_strange_bits(playerMapObj);
+ FieldObjectSetDirection(playerMapObj, playerMapObj->mapobj_unk_18);
+ if (TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_MACH_BIKE | PLAYER_AVATAR_FLAG_ACRO_BIKE))
+ {
+ sub_80E6084();
+ sub_80E6010(0);
+ }
+}
+
+u8 sub_805983C(u8 a, u8 b)
+{
+ return gUnknown_0830FC44[a][b];
+}
+
+static u8 GetPlayerAvatarGraphicsIdByStateIdAndGender(u8 a, u8 b)
+{
+ return gUnknown_0830FC54[a][b];
+}
+
+u8 GetPlayerAvatarGraphicsIdByStateId(u8 a)
+{
+ return GetPlayerAvatarGraphicsIdByStateIdAndGender(a, gPlayerAvatar.gender);
+}
+
+u8 unref_sub_8059888(u8 a)
+{
+ switch (a)
+ {
+ case 0x69:
+ case 0x6A:
+ case 0x6B:
+ case 0x6C:
+ case 0x6D:
+ case 0x70:
+ case 0x8A:
+ case 0xC0:
+ return FEMALE;
+ default:
+ return MALE;
+ }
+}
+
+u8 GetPlayerAvatarGenderByGraphicsId(u8 a)
+{
+ switch (a)
+ {
+ case 0x59:
+ case 0x5A:
+ case 0x5B:
+ case 0x5C:
+ case 0x5D:
+ case 0x70:
+ case 0x8A:
+ case 0xC0:
+ return FEMALE;
+ default:
+ return MALE;
+ }
+}
+
+bool8 PartyHasMonWithSurf(void)
+{
+ u8 i;
+
+ if (!TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_SURFING))
+ {
+ for (i = 0; i < 6; i++)
+ {
+ if (GetMonData(&gPlayerParty[i], MON_DATA_SPECIES) == 0)
+ break;
+ if (pokemon_has_move(&gPlayerParty[i], 0x39))
+ return TRUE;
+ }
+ }
+ return FALSE;
+}
+
+bool8 IsPlayerSurfingNorth(void)
+{
+ if (player_get_direction_upper_nybble() == 2 && TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_SURFING))
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 IsPlayerFacingSurfableFishableWater(void)
+{
+ struct MapObject *playerMapObj = &gMapObjects[gPlayerAvatar.mapObjectId];
+ s16 x = playerMapObj->coords2.x;
+ s16 y = playerMapObj->coords2.y;
+
+ MoveCoords(playerMapObj->mapobj_unk_18, &x, &y);
+ if (npc_block_way(playerMapObj, x, y, playerMapObj->mapobj_unk_18) == 3 && PlayerGetZCoord() == 3
+ && MetatileBehavior_IsSurfableFishableWater(MapGridGetMetatileBehaviorAt(x, y)))
+ return TRUE;
+ else
+ return FALSE;
+}
+
+void ClearPlayerAvatarInfo(void)
+{
+ //TODO: 0x24 should be the size of gPlayerAvatar
+ memset(&gPlayerAvatar, 0, 0x24);
+}
+
+void SetPlayerAvatarStateMask(u8 a)
+{
+ gPlayerAvatar.flags &= 0xE0;
+ gPlayerAvatar.flags |= a;
+}
+
+static u8 GetPlayerAvatarStateTransitionByGraphicsId(u8 a, u8 gender)
+{
+ u8 i;
+
+ for (i = 0; i < 5; i++)
+ {
+ if (gUnknown_0830FC64[gender][i][0] == a)
+ return gUnknown_0830FC64[gender][i][1];
+ }
+ return 1;
+}
+
+u8 GetPlayerAvatarGraphicsIdByCurrentState(void)
+{
+ u8 i;
+ u8 r5 = gPlayerAvatar.flags;
+
+ for (i = 0; i < 5; i++)
+ {
+ if (gUnknown_0830FC64[gPlayerAvatar.gender][i][1] & r5)
+ return gUnknown_0830FC64[gPlayerAvatar.gender][i][0];
+ }
+ return 0;
+}
+
+void SetPlayerAvatarExtraStateTransition(u8 a, u8 b)
+{
+ u8 unk = GetPlayerAvatarStateTransitionByGraphicsId(a, gPlayerAvatar.gender);
+
+ gPlayerAvatar.bike |= unk | b;
+ DoPlayerAvatarTransition();
+}
+
+void InitPlayerAvatar(s16 a, s16 b, u8 c, u8 d)
+{
+ struct UnknownStruct_FPA s;
+ u8 mapObjectId;
+ struct MapObject *mapObject;
+
+ s.unk0 = 0xFF;
+ s.unk1 = GetPlayerAvatarGraphicsIdByStateIdAndGender(0, d);
+ s.unk4 = a - 7;
+ s.unk6 = b - 7;
+ s.unk8 = 0;
+ s.unk9 = 11;
+ s.unkA_0 = 0;
+ s.unkA_4 = 0;
+ s.unkC = 0;
+ s.unkE = 0;
+ s.unk10 = 0;
+ s.unk14 = 0;
+ mapObjectId = SpawnSpecialFieldObject(&s);
+ mapObject = &gMapObjects[mapObjectId];
+ mapObject->mapobj_bit_16 = 1;
+ mapObject->mapobj_unk_1B = sub_8126B54();
+ FieldObjectTurn(mapObject, c);
+ ClearPlayerAvatarInfo();
+ gPlayerAvatar.running2 = 0;
+ gPlayerAvatar.running1 = 0;
+ gPlayerAvatar.mapObjectId = mapObjectId;
+ gPlayerAvatar.spriteId = mapObject->spriteId;
+ gPlayerAvatar.gender = d;
+ SetPlayerAvatarStateMask(0x21);
+}
+
+void sub_8059B88(u8 a)
+{
+ gMapObjects[gPlayerAvatar.mapObjectId].mapobj_bit_13 = a;
+ if (TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_SURFING))
+ gSprites[gMapObjects[gPlayerAvatar.mapObjectId].mapobj_unk_1A].invisible = a;
+}
+
+void sub_8059BF4(void)
+{
+ sub_805B980(&gMapObjects[gPlayerAvatar.mapObjectId], GetPlayerAvatarGraphicsIdByStateId(5));
+ StartSpriteAnim(&gSprites[gPlayerAvatar.spriteId], 0);
+}
+
+void sub_8059C3C(u8 a)
+{
+ sub_805B980(&gMapObjects[gPlayerAvatar.mapObjectId], GetPlayerAvatarGraphicsIdByStateId(6));
+ StartSpriteAnim(&gSprites[gPlayerAvatar.spriteId], sub_805FDE8(a));
+}
+
+void sub_8059C94(u8 a)
+{
+ sub_805B980(&gMapObjects[gPlayerAvatar.mapObjectId], GetPlayerAvatarGraphicsIdByStateId(2));
+ StartSpriteAnim(&gSprites[gPlayerAvatar.spriteId], sub_805FD98(a));
+ SeekSpriteAnim(&gSprites[gPlayerAvatar.spriteId], 1);
+}
+
+void sub_8059D08(u8 a)
+{
+ sub_805B980(&gMapObjects[gPlayerAvatar.mapObjectId], GetPlayerAvatarGraphicsIdByStateId(7));
+ StartSpriteAnim(&gSprites[gPlayerAvatar.spriteId], FieldObjectDirectionToImageAnimId(a));
+}
+
+static void sub_8059D60(struct MapObject *a)
+{
+ s16 x;
+ s16 y;
+ u8 r6;
+ u8 r8 = a->mapobj_unk_1E;
+
+ for (x = 0, r6 = 1; x < 4; x++, r6++)
+ {
+ if (gUnknown_0830FC78[x](r8) && r6 == a->placeholder18)
+ {
+ x = a->coords2.x;
+ y = a->coords2.y;
+ MoveCoords(r6, &x, &y);
+ sub_8126BC4(a->mapobj_unk_1B, r6, x, y);
+ return;
+ }
+ }
+ objid_set_invisible(a->mapobj_unk_1B);
+}
+
+/* Strength */
+
+static void sub_8059E2C(u8 taskId);
+
+static void StartStrengthAnim(u8 a, u8 b)
+{
+ u8 taskId = CreateTask(sub_8059E2C, 0xFF);
+
+ gTasks[taskId].data[1] = a;
+ gTasks[taskId].data[2] = b;
+ sub_8059E2C(taskId);
+}
+
+static void sub_8059E2C(u8 taskId)
+{
+ while (gUnknown_0830FC88[gTasks[taskId].data[0]](&gTasks[taskId],
+ &gMapObjects[gPlayerAvatar.mapObjectId],
+ &gMapObjects[gTasks[taskId].data[1]]))
+ ;
+}
+
+u8 sub_8059E84(struct Task *task, struct MapObject *b, struct MapObject *c)
+{
+ ScriptContext2_Enable();
+ gPlayerAvatar.unk6 = 1;
+ task->data[0]++;
+ return 0;
+}
+
+u8 sub_8059EA4(struct Task *task, struct MapObject *b, struct MapObject *c)
+{
+ if (!FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive(b)
+ && !FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive(c))
+ {
+ FieldObjectClearAnimIfSpecialAnimFinished(b);
+ FieldObjectClearAnimIfSpecialAnimFinished(c);
+ FieldObjectSetSpecialAnim(b, GetStepInPlaceDelay16AnimId(task->data[2]));
+ FieldObjectSetSpecialAnim(c, GetSimpleGoAnimId(task->data[2]));
+ gUnknown_0202FF84.x = c->coords2.x;
+ gUnknown_0202FF84.y = c->coords2.y;
+ gUnknown_0202FF84.unk8 = c->elevation;
+ gUnknown_0202FF84.unkC = gSprites[c->spriteId].oam.priority;
+ FieldEffectStart(10);
+ PlaySE(SE_W070);
+ task->data[0]++;
+ }
+ return 0;
+}
+
+u8 sub_8059F40(struct Task *task, struct MapObject *b, struct MapObject *c)
+{
+ if (FieldObjectCheckIfSpecialAnimFinishedOrInactive(b)
+ && FieldObjectCheckIfSpecialAnimFinishedOrInactive(c))
+ {
+ FieldObjectClearAnimIfSpecialAnimFinished(b);
+ FieldObjectClearAnimIfSpecialAnimFinished(c);
+ gPlayerAvatar.unk6 = 0;
+ ScriptContext2_Disable();
+ DestroyTask(FindTaskIdByFunc(sub_8059E2C));
+ }
+ return 0;
+}
+
+/* Some field effect */
+
+static void sub_8059FB4(u8 taskId);
+
+static void sub_8059F94(void)
+{
+ u8 taskId = CreateTask(sub_8059FB4, 0xFF);
+
+ sub_8059FB4(taskId);
+}
+
+static void sub_8059FB4(u8 taskId)
+{
+ while (gUnknown_0830FC94[gTasks[taskId].data[0]](&gTasks[taskId], &gMapObjects[gPlayerAvatar.mapObjectId]))
+ ;
+}
+
+u8 sub_805A000(struct Task *task, struct MapObject *mapObject)
+{
+ gPlayerAvatar.unk6 = 1;
+ if (FieldObjectClearAnimIfSpecialAnimFinished(mapObject))
+ {
+ PlaySE(SE_DANSA);
+ FieldObjectSetSpecialAnim(mapObject, sub_806084C(mapObject->mapobj_unk_18));
+ task->data[1]++;
+ if (task->data[1] > 1)
+ {
+ gPlayerAvatar.unk6 = 0;
+ gPlayerAvatar.bike |= 0x20;
+ DestroyTask(FindTaskIdByFunc(sub_8059FB4));
+ }
+ }
+ return 0;
+}
+
+/* Some field effect */
+
+static void sub_805A08C(u8 taskId);
+
+static void sub_805A06C(void)
+{
+ u8 taskId = CreateTask(sub_805A08C, 0xFF);
+
+ sub_805A08C(taskId);
+}
+
+static void sub_805A08C(u8 taskId)
+{
+ while (gUnknown_0830FC98[gTasks[taskId].data[0]](&gTasks[taskId], &gMapObjects[gPlayerAvatar.mapObjectId]))
+ ;
+}
+
+u8 sub_805A0D8(struct Task *task, struct MapObject *mapObject)
+{
+ task->data[0]++;
+ task->data[1] = mapObject->placeholder18;
+ gPlayerAvatar.unk6 = 1;
+ ScriptContext2_Enable();
+ PlaySE(SE_TK_WARPIN);
+ return 1;
+}
+
+u8 sub_805A100(struct Task *task, struct MapObject *mapObject)
+{
+ u8 directions[4];
+
+ memcpy(directions, gUnknown_0830FCA8, sizeof(directions));
+ if (FieldObjectClearAnimIfSpecialAnimFinished(mapObject))
+ {
+ u8 direction;
+
+ FieldObjectSetSpecialAnim(mapObject, GetFaceDirectionAnimId(direction = directions[mapObject->placeholder18 - 1]));
+ if (direction == (u8)task->data[1])
+ task->data[2]++;
+ task->data[0]++;
+ if (task->data[2] > 3 && direction == GetOppositeDirection(task->data[1]))
+ task->data[0]++;
+ }
+ return 0;
+}
+
+u8 sub_805A178(struct Task *task, struct MapObject *mapObject)
+{
+ u8 arr[5];
+
+ memcpy(arr, gUnknown_0830FCAC, sizeof(arr));
+ if (FieldObjectClearAnimIfSpecialAnimFinished(mapObject))
+ {
+ FieldObjectSetSpecialAnim(mapObject, arr[task->data[2]]);
+ task->data[0] = 1;
+ }
+ return 0;
+}
+
+u8 sub_805A1B8(struct Task *task, struct MapObject *mapObject)
+{
+ if (FieldObjectClearAnimIfSpecialAnimFinished(mapObject))
+ {
+ FieldObjectSetSpecialAnim(mapObject, GetSimpleGoAnimId(GetOppositeDirection(task->data[1])));
+ ScriptContext2_Disable();
+ gPlayerAvatar.unk6 = 0;
+ DestroyTask(FindTaskIdByFunc(sub_805A08C));
+ }
+ return 0;
+}
+
+/* Some Field effect */
+
+static void taskFF_0805D1D4(u8 taskId);
+static void sub_805A2D0(u8 taskId);
+
+void sub_805A20C(u8 a)
+{
+ u8 taskId;
+
+ ScriptContext2_Enable();
+ sav1_reset_battle_music_maybe();
+ sub_8053F84();
+ gPlayerAvatar.flags &= ~PLAYER_AVATAR_FLAG_SURFING;
+ gPlayerAvatar.flags |= PLAYER_AVATAR_FLAG_ON_FOOT;
+ gPlayerAvatar.unk6 = 1;
+ taskId = CreateTask(taskFF_0805D1D4, 0xFF);
+ gTasks[taskId].data[0] = a;
+ taskFF_0805D1D4(taskId);
+}
+
+static void taskFF_0805D1D4(u8 taskId)
+{
+ struct MapObject *playerMapObj = &gMapObjects[gPlayerAvatar.mapObjectId];
+
+ if (FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive(playerMapObj))
+ {
+ if (!FieldObjectClearAnimIfSpecialAnimFinished(playerMapObj))
+ return;
+ }
+ sub_8127ED0(playerMapObj->mapobj_unk_1A, 2);
+ FieldObjectSetSpecialAnim(playerMapObj, sub_80608D0(gTasks[taskId].data[0]));
+ gTasks[taskId].func = sub_805A2D0;
+}
+
+static void sub_805A2D0(u8 taskId)
+{
+ struct MapObject *playerMapObj = &gMapObjects[gPlayerAvatar.mapObjectId];
+
+ if (FieldObjectClearAnimIfSpecialAnimFinished(playerMapObj))
+ {
+ sub_805B980(playerMapObj, GetPlayerAvatarGraphicsIdByStateId(0));
+ FieldObjectSetSpecialAnim(playerMapObj, GetFaceDirectionAnimId(playerMapObj->mapobj_unk_18));
+ gPlayerAvatar.unk6 = 0;
+ ScriptContext2_Disable();
+ DestroySprite(&gSprites[playerMapObj->mapobj_unk_1A]);
+ DestroyTask(taskId);
+ }
+}
+
+/* Fishing */
+
+static void Task_Fishing(u8 taskId);
+static void sub_805A954(void);
+
+void StartFishing(u8 a)
+{
+ u8 taskId = CreateTask(Task_Fishing, 0xFF);
+
+ gTasks[taskId].data[15] = a;
+ Task_Fishing(taskId);
+}
+
+static void Task_Fishing(u8 taskId)
+{
+ while (gUnknown_0830FCB4[gTasks[taskId].data[0]](&gTasks[taskId]))
+ ;
+}
+
+u8 Fishing1(struct Task *task)
+{
+ ScriptContext2_Enable();
+ gPlayerAvatar.unk6 = 1;
+ task->data[0]++;
+ return 0;
+}
+
+u8 Fishing2(struct Task *task)
+{
+ s16 arr1[3];
+ s16 arr2[3];
+ struct MapObject *playerMapObj;
+
+ memcpy(arr1, gUnknown_0830FCF4, sizeof(arr1));
+ memcpy(arr2, gUnknown_0830FCFA, sizeof(arr2));
+ task->data[12] = 0;
+ task->data[13] = arr1[task->data[15]] + (Random() % arr2[task->data[15]]);
+ task->data[14] = gMapObjects[gPlayerAvatar.mapObjectId].graphicsId;
+ playerMapObj = &gMapObjects[gPlayerAvatar.mapObjectId];
+ FieldObjectClearAnimIfSpecialAnimActive(playerMapObj);
+ playerMapObj->mapobj_bit_11 = 1;
+ sub_8059C3C(playerMapObj->mapobj_unk_18);
+ task->data[0]++;
+ return 0;
+}
+
+u8 Fishing3(struct Task *task)
+{
+ sub_805A954();
+ task->data[1]++;
+ if (task->data[1] > 0x3B)
+ task->data[0]++;
+ return 0;
+}
+
+u8 Fishing4(struct Task *task)
+{
+ u32 randVal;
+
+ MenuDisplayMessageBox();
+ task->data[0]++;
+ task->data[1] = 0;
+ task->data[2] = 0;
+ randVal = Random();
+ randVal %= 10;
+ task->data[3] = randVal + 1;
+ if (task->data[12] == 0)
+ task->data[3] = randVal + 4;
+ if (task->data[3] > 9)
+ task->data[3] = 10;
+ return 1;
+}
+
+u8 Fishing5(struct Task *task)
+{
+ u8 dot[2];
+
+ memcpy(dot, gUnknown_0830FD00, sizeof(dot));
+ sub_805A954();
+ task->data[1]++;
+ if (gMain.newKeys & A_BUTTON)
+ {
+ task->data[0] = 11;
+ if (task->data[12] != 0)
+ task->data[0] = 12;
+ return 1;
+ }
+ else
+ {
+ if (task->data[1] > 0x13)
+ {
+ task->data[1] = 0;
+ if (task->data[2] >= task->data[3])
+ {
+ task->data[0]++;
+ if (task->data[12] != 0)
+ task->data[0]++;
+ task->data[12]++;
+ }
+ else
+ {
+ MenuPrint(dot, task->data[2] + 4, 15);
+ task->data[2]++;
+ }
+ }
+ return 0;
+ }
+}
+
+u8 Fishing6(struct Task *task)
+{
+ sub_805A954();
+ task->data[0]++;
+ if (!GetFishingWildMonListHeader() || (Random() & 1))
+ task->data[0] = 11;
+ else
+ StartSpriteAnim(&gSprites[gPlayerAvatar.spriteId], sub_805FE08(player_get_direction_lower_nybble()));
+ return 1;
+}
+
+u8 Fishing7(struct Task *task)
+{
+ sub_805A954();
+ MenuPrint(gOtherText_OhABite, 4, 17);
+ task->data[0]++;
+ task->data[1] = 0;
+ return 0;
+}
+
+u8 Fishing8(struct Task *task)
+{
+ s16 arr[3];
+
+ memcpy(arr, gUnknown_0830FD02, sizeof(arr));
+ sub_805A954();
+ task->data[1]++;
+ if (task->data[1] >= arr[task->data[15]])
+ task->data[0] = 12;
+ else if (gMain.newKeys & A_BUTTON)
+ task->data[0]++;
+ return 0;
+}
+
+u8 Fishing9(struct Task *task)
+{
+ s16 arr[3][2];
+
+ memcpy(arr, gUnknown_0830FD08, sizeof(arr));
+ sub_805A954();
+ task->data[0]++;
+ if (task->data[12] < task->data[13])
+ {
+ task->data[0] = 3;
+ }
+ else if (task->data[12] < 2)
+ {
+ s16 randVal = Random() % 100;
+
+ if (arr[task->data[15]][task->data[12]] > randVal)
+ task->data[0] = 3;
+ }
+ return 0;
+}
+
+u8 Fishing10(struct Task *task)
+{
+ sub_805A954();
+ sub_8072044(gOtherText_PokeOnHook);
+ MenuDisplayMessageBox();
+ task->data[0]++;
+ task->data[1] = 0;
+ return 0;
+}
+
+u8 Fishing11(struct Task *task)
+{
+ if (task->data[1] == 0)
+ {
+ sub_805A954();
+ if (task->data[1] == 0)
+ {
+ if (MenuUpdateWindowText())
+ {
+ struct MapObject *playerMapObj = &gMapObjects[gPlayerAvatar.mapObjectId];
+
+ sub_805B980(playerMapObj, task->data[14]);
+ FieldObjectTurn(playerMapObj, playerMapObj->placeholder18);
+ if (gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_SURFING)
+ sub_8127F28(gMapObjects[gPlayerAvatar.mapObjectId].mapobj_unk_1A, 0, 0);
+ gSprites[gPlayerAvatar.spriteId].pos2.x = 0;
+ gSprites[gPlayerAvatar.spriteId].pos2.y = 0;
+ MenuZeroFillScreen();
+ task->data[1]++;
+ return 0;
+ }
+ else
+ {
+ if (task->data[1] == 0)
+ return 0;
+ }
+ }
+ }
+ gPlayerAvatar.unk6 = 0;
+ ScriptContext2_Disable();
+ FishingWildEncounter(task->data[15]);
+ sub_80BE97C(1);
+ DestroyTask(FindTaskIdByFunc(Task_Fishing));
+ return 0;
+}
+
+u8 Fishing12(struct Task *task)
+{
+ sub_805A954();
+ StartSpriteAnim(&gSprites[gPlayerAvatar.spriteId], sub_805FDF8(player_get_direction_lower_nybble()));
+ sub_8072044(gOtherText_NotEvenANibble);
+ task->data[0] = 13;
+ return 1;
+}
+
+u8 Fishing13(struct Task *task)
+{
+ sub_805A954();
+ StartSpriteAnim(&gSprites[gPlayerAvatar.spriteId], sub_805FDF8(player_get_direction_lower_nybble()));
+ sub_8072044(gOtherText_ItGotAway);
+ task->data[0]++;
+ return 1;
+}
+
+u8 Fishing14(struct Task *task)
+{
+ sub_805A954();
+ MenuDisplayMessageBox();
+ task->data[0]++;
+ return 0;
+}
+
+u8 Fishing15(struct Task *task)
+{
+ sub_805A954();
+ if (gSprites[gPlayerAvatar.spriteId].animEnded)
+ {
+ struct MapObject *playerMapObj = &gMapObjects[gPlayerAvatar.mapObjectId];
+
+ sub_805B980(playerMapObj, task->data[14]);
+ FieldObjectTurn(playerMapObj, playerMapObj->placeholder18);
+ if (gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_SURFING)
+ sub_8127F28(gMapObjects[gPlayerAvatar.mapObjectId].mapobj_unk_1A, 0, 0);
+ gSprites[gPlayerAvatar.spriteId].pos2.x = 0;
+ gSprites[gPlayerAvatar.spriteId].pos2.y = 0;
+ task->data[0]++;
+ }
+ return 0;
+}
+
+u8 Fishing16(struct Task *task)
+{
+ if (MenuUpdateWindowText())
+ {
+ gPlayerAvatar.unk6 = 0;
+ ScriptContext2_Disable();
+ UnfreezeMapObjects();
+ MenuZeroFillScreen();
+ sub_80BE97C(0);
+ DestroyTask(FindTaskIdByFunc(Task_Fishing));
+ }
+ return 0;
+}
+
+static void sub_805A954(void)
+{
+ struct Sprite *playerSprite = &gSprites[gPlayerAvatar.spriteId];
+ u8 animCmdIndex;
+ u8 animType;
+
+ AnimateSprite(playerSprite);
+ playerSprite->pos2.x = 0;
+ playerSprite->pos2.y = 0;
+ animCmdIndex = playerSprite->animCmdIndex;
+ if (playerSprite->anims[playerSprite->animNum][animCmdIndex].type == -1)
+ {
+ animCmdIndex--;
+ }
+ else
+ {
+ playerSprite->animDelayCounter++;
+ if (playerSprite->anims[playerSprite->animNum][animCmdIndex].type == -1)
+ animCmdIndex--;
+ }
+ animType = playerSprite->anims[playerSprite->animNum][animCmdIndex].type;
+ if (animType == 1 || animType == 2 || animType == 3)
+ {
+ playerSprite->pos2.x = 8;
+ if (player_get_direction_lower_nybble() == 3)
+ playerSprite->pos2.x = -8;
+ }
+ if (animType == 5)
+ playerSprite->pos2.y = -8;
+ if (animType == 10 || animType == 11)
+ playerSprite->pos2.y = 8;
+ if (gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_SURFING)
+ sub_8127F28(gMapObjects[gPlayerAvatar.mapObjectId].mapobj_unk_1A, 1, playerSprite->pos2.y);
+}
diff --git a/src/field_poison.c b/src/field_poison.c
index a51fe5546..9b21ac5f3 100644
--- a/src/field_poison.c
+++ b/src/field_poison.c
@@ -1,14 +1,11 @@
#include "global.h"
+#include "asm.h"
#include "field_message_box.h"
#include "pokemon.h"
#include "script.h"
#include "string_util.h"
#include "task.h"
-extern void AdjustFriendship(struct Pokemon *, u8);
-extern u8 pokemon_ailments_get_primary(u32);
-extern void DoFieldPoisonEffect(void);
-
extern struct Pokemon gPlayerParty[6];
extern u16 gScriptResult;
extern u8 fieldPoisonText_PokemonFainted[];
@@ -103,7 +100,7 @@ void Task_WhiteOut(u8 taskId)
}
}
-void DoWhiteOut(void)
+void ExecuteWhiteOut(void)
{
CreateTask(Task_WhiteOut, 0x50);
ScriptContext1_Stop();
diff --git a/src/fieldmap.c b/src/fieldmap.c
new file mode 100644
index 000000000..4dcfbe30b
--- /dev/null
+++ b/src/fieldmap.c
@@ -0,0 +1,809 @@
+#include "global.h"
+#include "palette.h"
+
+struct BackupMapData
+{
+ s32 width;
+ s32 height;
+ u16 *map;
+};
+
+extern struct MapHeader * const get_mapheader_by_bank_and_number(u8, u8);
+extern void mapheader_run_script_with_tag_x1(void);
+extern void sub_80BB970(struct MapEvents *);
+extern void sub_80BBCCC();
+extern void sub_8056670();
+extern void UpdateTVScreensOnMap();
+extern void sub_80538F0(u8 mapGroup, u8 mapNum);
+
+struct Camera {
+ bool8 field_0:1;
+ s32 x;
+ s32 y;
+};
+
+struct ConnectionFlags {
+ u8 south:1;
+ u8 north:1;
+ u8 west:1;
+ u8 east:1;
+};
+
+struct Coords32 {
+ s32 x;
+ s32 y;
+};
+
+extern const struct Coords32 gUnknown_0821664C[];
+extern struct BackupMapData gUnknown_03004870;
+
+EWRAM_DATA static u16 gUnknown_02029828[0x2800] = {0};
+EWRAM_DATA struct MapHeader gMapHeader = {0};
+EWRAM_DATA struct Camera gUnknown_0202E844 = {0};
+EWRAM_DATA static struct ConnectionFlags gUnknown_0202E850 = {0};
+
+static const struct ConnectionFlags sDummyConnectionFlags = {0};
+
+void mapheader_copy_mapdata_with_padding(struct MapHeader *mapHeader);
+void sub_80560AC(struct MapHeader *);
+void map_copy_with_padding(u16 *map, u16 width, u16 height);
+void fillSouthConnection(struct MapHeader *, struct MapHeader *, s32);
+void fillNorthConnection(struct MapHeader *, struct MapHeader *, s32);
+void fillWestConnection(struct MapHeader *, struct MapHeader *, s32);
+void fillEastConnection(struct MapHeader *, struct MapHeader *, s32);
+u32 GetBehaviorByMetatileId(u16 metatile);
+struct MapConnection *sub_8056A64(u8 direction, int x, int y);
+bool8 sub_8056ABC(u8 direction, int x, int y, struct MapConnection *connection);
+bool8 sub_8056B20(int x, int src_width, int dest_width, int offset);
+
+struct MapHeader *mapconnection_get_mapheader(struct MapConnection *connection) {
+ return get_mapheader_by_bank_and_number(connection->mapGroup, connection->mapNum);
+}
+
+void not_trainer_hill_battle_pyramid(void) {
+ mapheader_copy_mapdata_with_padding(&gMapHeader);
+ sub_80BB970(gMapHeader.events);
+ mapheader_run_script_with_tag_x1();
+}
+
+void sub_8055FC0(void) {
+ mapheader_copy_mapdata_with_padding(&gMapHeader);
+ sub_80BBCCC(0);
+ sub_80BB970(gMapHeader.events);
+ sub_8056670();
+ mapheader_run_script_with_tag_x1();
+ UpdateTVScreensOnMap(gUnknown_03004870.width, gUnknown_03004870.height);
+}
+
+void mapheader_copy_mapdata_with_padding(struct MapHeader *mapHeader) {
+ struct MapData *mapData;
+ int width;
+ int height;
+ mapData = mapHeader->mapData;
+ CpuFastFill16(0x03ff, gUnknown_02029828, sizeof(gUnknown_02029828));
+ gUnknown_03004870.map = gUnknown_02029828;
+ width = mapData->width + 15;
+ gUnknown_03004870.width = width;
+ height = mapData->height + 14;
+ gUnknown_03004870.height = height;
+ if (width * height <= 0x2800) {
+ map_copy_with_padding(mapData->map, mapData->width, mapData->height);
+ sub_80560AC(mapHeader);
+ }
+}
+
+void map_copy_with_padding(u16 *map, u16 width, u16 height) {
+ u16 *dest;
+ int y;
+ dest = gUnknown_03004870.map;
+ dest += gUnknown_03004870.width * 7 + 7;
+ for (y = 0; y < height; y++) {
+ CpuCopy16(map, dest, width * 2);
+ dest += width + 0xf;
+ map += width;
+ }
+}
+
+void sub_80560AC(struct MapHeader *mapHeader) {
+ int i;
+ struct MapConnection *connection;
+ struct MapHeader *cMap;
+ u32 offset;
+ int count;
+ count = mapHeader->connections->count;
+ connection = mapHeader->connections->connections;
+ gUnknown_0202E850 = sDummyConnectionFlags;
+ for (i = 0; i < count; i++, connection++) {
+ cMap = mapconnection_get_mapheader(connection);
+ offset = connection->offset;
+ switch (connection->direction) {
+ case CONNECTION_SOUTH:
+ fillSouthConnection(mapHeader, cMap, offset);
+ gUnknown_0202E850.south = 1;
+ break;
+ case CONNECTION_NORTH:
+ fillNorthConnection(mapHeader, cMap, offset);
+ gUnknown_0202E850.north = 1;
+ break;
+ case CONNECTION_WEST:
+ fillWestConnection(mapHeader, cMap, offset);
+ gUnknown_0202E850.west = 1;
+ break;
+ case CONNECTION_EAST:
+ fillEastConnection(mapHeader, cMap, offset);
+ gUnknown_0202E850.east = 1;
+ break;
+ }
+ }
+}
+
+void sub_8056134(int x, int y, struct MapHeader *mapHeader, int x2, int y2, int width, int height) {
+ int i;
+ u16 *src;
+ u16 *dest;
+ int mapWidth;
+
+ mapWidth = mapHeader->mapData->width;
+ src = &mapHeader->mapData->map[mapWidth * y2 + x2];
+ dest = &gUnknown_03004870.map[gUnknown_03004870.width * y + x];
+
+ for (i = 0; i < height; i++) {
+ CpuCopy16(src, dest, width * 2);
+ dest += gUnknown_03004870.width;
+ src += mapWidth;
+ }
+}
+
+void fillSouthConnection(struct MapHeader *mapHeader, struct MapHeader *connectedMapHeader, s32 offset) {
+ int x, y;
+ int x2;
+ int width;
+ int cWidth;
+
+ if (connectedMapHeader) {
+ cWidth = connectedMapHeader->mapData->width;
+ x = offset + 7;
+ y = mapHeader->mapData->height + 7;
+ if (x < 0) {
+ x2 = -x;
+ x += cWidth;
+ if (x < gUnknown_03004870.width) {
+ width = x;
+ } else {
+ width = gUnknown_03004870.width;
+ }
+ x = 0;
+ } else {
+ x2 = 0;
+ if (x + cWidth < gUnknown_03004870.width) {
+ width = cWidth;
+ } else {
+ width = gUnknown_03004870.width - x;
+ }
+ }
+ sub_8056134(
+ x, y,
+ connectedMapHeader,
+ x2, /*y2*/ 0,
+ width, /*height*/ 7);
+ }
+}
+
+void fillNorthConnection(struct MapHeader *mapHeader, struct MapHeader *connectedMapHeader, s32 offset) {
+ int x;
+ int x2, y2;
+ int width;
+ int cWidth, cHeight;
+
+ if (connectedMapHeader) {
+ cWidth = connectedMapHeader->mapData->width;
+ cHeight = connectedMapHeader->mapData->height;
+ x = offset + 7;
+ y2 = cHeight - 7;
+ if (x < 0) {
+ x2 = -x;
+ x += cWidth;
+ if (x < gUnknown_03004870.width) {
+ width = x;
+ } else {
+ width = gUnknown_03004870.width;
+ }
+ x = 0;
+ } else {
+ x2 = 0;
+ if (x + cWidth < gUnknown_03004870.width) {
+ width = cWidth;
+ } else {
+ width = gUnknown_03004870.width - x;
+ }
+ }
+
+ sub_8056134(
+ x, /*y*/ 0,
+ connectedMapHeader,
+ x2, y2,
+ width, /*height*/ 7);
+
+ }
+}
+
+
+void fillWestConnection(struct MapHeader *mapHeader, struct MapHeader *connectedMapHeader, s32 offset) {
+ int y;
+ int x2, y2;
+ int height;
+ int cWidth, cHeight;
+ if (connectedMapHeader) {
+ cWidth = connectedMapHeader->mapData->width;
+ cHeight = connectedMapHeader->mapData->height;
+ y = offset + 7;
+ x2 = cWidth - 7;
+ if (y < 0) {
+ y2 = -y;
+ if (y + cHeight < gUnknown_03004870.height) {
+ height = y + cHeight;
+ } else {
+ height = gUnknown_03004870.height;
+ }
+ y = 0;
+ } else {
+ y2 = 0;
+ if (y + cHeight < gUnknown_03004870.height) {
+ height = cHeight;
+ } else {
+ height = gUnknown_03004870.height - y;
+ }
+ }
+
+ sub_8056134(
+ /*x*/ 0, y,
+ connectedMapHeader,
+ x2, y2,
+ /*width*/ 7, height);
+ }
+}
+
+void fillEastConnection(struct MapHeader *mapHeader, struct MapHeader *connectedMapHeader, s32 offset) {
+ int x, y;
+ int y2;
+ int height;
+ int cHeight;
+ if (connectedMapHeader) {
+ cHeight = connectedMapHeader->mapData->height;
+ x = mapHeader->mapData->width + 7;
+ y = offset + 7;
+ if (y < 0) {
+ y2 = -y;
+ if (y + cHeight < gUnknown_03004870.height) {
+ height = y + cHeight;
+ } else {
+ height = gUnknown_03004870.height;
+ }
+ y = 0;
+ } else {
+ y2 = 0;
+ if (y + cHeight < gUnknown_03004870.height) {
+ height = cHeight;
+ } else {
+ height = gUnknown_03004870.height - y;
+ }
+ }
+
+ sub_8056134(
+ x, y,
+ connectedMapHeader,
+ /*x2*/ 0, y2,
+ /*width*/ 8, height);
+ }
+}
+
+union Block {
+ struct {
+ u16 block:10;
+ u16 collision:2;
+ u16 elevation:4;
+ } block;
+ u16 value;
+};
+
+u16 MapGridGetZCoordAt(int x, int y) {
+ u16 block;
+ int i;
+ u16 *border;
+
+ if (x >= 0 && x < gUnknown_03004870.width
+ && y >= 0 && y < gUnknown_03004870.height) {
+ block = gUnknown_03004870.map[x + gUnknown_03004870.width * y];
+ } else {
+ border = gMapHeader.mapData->border;
+ i = (x + 1) & 1;
+ i += ((y + 1) & 1) * 2;
+ block = gMapHeader.mapData->border[i];
+ block |= 0xc00;
+ }
+ if (block == 0x3ff) {
+ return 0;
+ }
+ return block >> 12;
+}
+
+u16 MapGridIsImpassableAt(int x, int y) {
+ u16 block;
+ int i;
+ u16 *border;
+
+ if (x >= 0 && x < gUnknown_03004870.width
+ && y >= 0 && y < gUnknown_03004870.height) {
+ block = gUnknown_03004870.map[x + gUnknown_03004870.width * y];
+ } else {
+ border = gMapHeader.mapData->border;
+ i = (x + 1) & 1;
+ i += ((y + 1) & 1) * 2;
+ block = gMapHeader.mapData->border[i];
+ block |= 0xc00;
+ }
+ if (block == 0x3ff) {
+ return 1;
+ }
+ return (block & 0xc00) >> 10;
+}
+
+u16 MapGridGetMetatileIdAt(int x, int y) {
+ u16 block;
+ int i;
+ int j;
+ struct MapData *mapData;
+ u16 *border;
+ u16 block2;
+
+ if (x >= 0 && x < gUnknown_03004870.width
+ && y >= 0 && y < gUnknown_03004870.height) {
+ block = gUnknown_03004870.map[x + gUnknown_03004870.width * y];
+ } else {
+ mapData = gMapHeader.mapData;
+ i = (x + 1) & 1;
+ i += ((y + 1) & 1) * 2;
+ block = mapData->border[i] | 0xc00;
+ }
+ if (block == 0x3ff) {
+ border = gMapHeader.mapData->border;
+ j = (x + 1) & 1;
+ j += ((y + 1) & 1) * 2;
+ block2 = gMapHeader.mapData->border[j];
+ block2 |= 0xc00;
+ return block2 & block;
+ }
+ return block & 0x3ff;
+}
+
+u32 MapGridGetMetatileBehaviorAt(int x, int y) {
+ u16 metatile;
+ metatile = MapGridGetMetatileIdAt(x, y);
+ return GetBehaviorByMetatileId(metatile) & 0xff;
+}
+
+u16 MapGridGetMetatileLayerTypeAt(int x, int y) {
+ u16 metatile;
+ metatile = MapGridGetMetatileIdAt(x, y);
+ return (GetBehaviorByMetatileId(metatile) & 0xf000) >> 12;
+}
+
+void MapGridSetMetatileIdAt(int x, int y, u16 metatile) {
+ int i;
+ if (x >= 0 && x < gUnknown_03004870.width
+ && y >= 0 && y < gUnknown_03004870.height) {
+ i = x + y * gUnknown_03004870.width;
+ gUnknown_03004870.map[i] = (gUnknown_03004870.map[i] & 0xf000) | (metatile & 0xfff);
+ }
+}
+
+void MapGridSetMetatileEntryAt(int x, int y, u16 metatile) {
+ int i;
+ if (x >= 0 && x < gUnknown_03004870.width
+ && y >= 0 && y < gUnknown_03004870.height) {
+ i = x + gUnknown_03004870.width * y;
+ gUnknown_03004870.map[i] = metatile;
+ }
+}
+
+u32 GetBehaviorByMetatileId(u16 metatile) {
+ u16 *attributes;
+ if (metatile <= 0x1ff) {
+ attributes = gMapHeader.mapData->primaryTileset->metatileAttributes;
+ return attributes[metatile];
+ } else if (metatile <= 0x3ff) {
+ attributes = gMapHeader.mapData->secondaryTileset->metatileAttributes;
+ return attributes[metatile - 0x200];
+ } else {
+ return 0xff;
+ }
+}
+
+void save_serialize_map(void) {
+ int i, j;
+ int x, y;
+ u16 *mapView;
+ int width;
+ mapView = gSaveBlock1.mapView;
+ width = gUnknown_03004870.width;
+ x = gSaveBlock1.pos.x;
+ y = gSaveBlock1.pos.y;
+ for (i = y; i < y + 14; i++)
+ for (j = x; j < x + 15; j++) {
+ *mapView++ = gUnknown_02029828[width * i + j];
+ }
+}
+
+int sub_8056618(void) {
+ u16 i;
+ u32 r2;
+ r2 = 0;
+ for (i = 0; i < 0x200; i++) {
+ r2 |= gSaveBlock1.mapView[i];
+ }
+ if (r2 == 0) {
+ return 1;
+ }
+ return 0;
+}
+
+void sav2_mapdata_clear(void) {
+ CpuFill16(0, gSaveBlock1.mapView, sizeof(gSaveBlock1.mapView));
+}
+
+void sub_8056670(void) {
+ int i, j;
+ int x, y;
+ u16 *mapView;
+ int width;
+ mapView = gSaveBlock1.mapView;
+ if (!sub_8056618()) {
+ width = gUnknown_03004870.width;
+ x = gSaveBlock1.pos.x;
+ y = gSaveBlock1.pos.y;
+ for (i = y; i < y + 14; i++)
+ for (j = x; j < x + 15; j++) {
+ gUnknown_02029828[width * i + j] = *mapView++;
+ }
+ sav2_mapdata_clear();
+ }
+}
+
+void sub_80566F0(u8 a1) {
+ u16 *mapView;
+ int width;
+ int x0, y0;
+ int x2, y2;
+ u16 *src, *dest;
+ int srci, desti;
+ int r9, r8;
+ int x, y;
+ int i, j;
+ mapView = gSaveBlock1.mapView;
+ width = gUnknown_03004870.width;
+ r9 = 0;
+ r8 = 0;
+ x0 = gSaveBlock1.pos.x;
+ y0 = gSaveBlock1.pos.y;
+ x2 = 15;
+ y2 = 14;
+ switch (a1) {
+ case CONNECTION_NORTH:
+ y0 += 1;
+ y2 = 13;
+ break;
+ case CONNECTION_SOUTH:
+ r8 = 1;
+ y2 = 13;
+ break;
+ case CONNECTION_WEST:
+ x0 += 1;
+ x2 = 14;
+ break;
+ case CONNECTION_EAST:
+ r9 = 1;
+ x2 = 14;
+ break;
+ }
+ for (y = 0; y < y2; y++) {
+ i = 0;
+ j = 0;
+ for (x = 0; x < x2; x++) {
+ desti = width * (y + y0);
+ srci = (y + r8) * 15 + r9;
+ src = &mapView[srci + i];
+ dest = &gUnknown_02029828[x0 + desti + j];
+ *dest = *src;
+ i++;
+ j++;
+ }
+ }
+ sav2_mapdata_clear();
+}
+
+int GetMapBorderIdAt(int x, int y) {
+ struct MapData *mapData;
+ u16 block, block2;
+ int i, j;
+ if (x >= 0 && x < gUnknown_03004870.width
+ && y >= 0 && y < gUnknown_03004870.height) {
+ i = gUnknown_03004870.width;
+ i *= y;
+ block = gUnknown_03004870.map[x + i];
+ if (block == 0x3ff) {
+ goto fail;
+ }
+ } else {
+ mapData = gMapHeader.mapData;
+ j = (x + 1) & 1;
+ j += ((y + 1) & 1) * 2;
+ block2 = 0xc00 | mapData->border[j];
+ if (block2 == 0x3ff) {
+ goto fail;
+ }
+ }
+ goto success;
+fail:
+ return -1;
+success:
+
+ if (x >= (gUnknown_03004870.width - 8)) {
+ if (!gUnknown_0202E850.east) {
+ return -1;
+ }
+ return CONNECTION_EAST;
+ } else if (x < 7) {
+ if (!gUnknown_0202E850.west) {
+ return -1;
+ }
+ return CONNECTION_WEST;
+ } else if (y >= (gUnknown_03004870.height - 7)) {
+ if (!gUnknown_0202E850.south) {
+ return -1;
+ }
+ return CONNECTION_SOUTH;
+ } else if (y < 7) {
+ if (!gUnknown_0202E850.north) {
+ return -1;
+ }
+ return CONNECTION_NORTH;
+ } else {
+ return 0;
+ }
+}
+
+int GetPostCameraMoveMapBorderId(int x, int y) {
+ return GetMapBorderIdAt(gSaveBlock1.pos.x + 7 + x, gSaveBlock1.pos.y + 7 + y);
+}
+
+int CanCameraMoveInDirection(int direction) {
+ int x, y;
+ x = gSaveBlock1.pos.x + 7 + gUnknown_0821664C[direction].x;
+ y = gSaveBlock1.pos.y + 7 + gUnknown_0821664C[direction].y;
+ if (GetMapBorderIdAt(x, y) == -1) {
+ return 0;
+ }
+ return 1;
+}
+
+void sub_8056918(struct MapConnection *connection, int direction, int x, int y) {
+ struct MapHeader *mapHeader;
+ mapHeader = mapconnection_get_mapheader(connection);
+ switch (direction) {
+ case CONNECTION_EAST:
+ gSaveBlock1.pos.x = -x;
+ gSaveBlock1.pos.y -= connection->offset;
+ break;
+ case CONNECTION_WEST:
+ gSaveBlock1.pos.x = mapHeader->mapData->width;
+ gSaveBlock1.pos.y -= connection->offset;
+ break;
+ case CONNECTION_SOUTH:
+ gSaveBlock1.pos.x -= connection->offset;
+ gSaveBlock1.pos.y = -y;
+ break;
+ case CONNECTION_NORTH:
+ gSaveBlock1.pos.x -= connection->offset;
+ gSaveBlock1.pos.y = mapHeader->mapData->height;
+ break;
+ }
+}
+
+bool8 CameraMove(int x, int y) {
+ unsigned int direction;
+ struct MapConnection *connection;
+ int old_x, old_y;
+ gUnknown_0202E844.field_0 = FALSE;
+ direction = GetPostCameraMoveMapBorderId(x, y);
+ if (direction + 1 <= 1) {
+ gSaveBlock1.pos.x += x;
+ gSaveBlock1.pos.y += y;
+ } else {
+ save_serialize_map();
+ old_x = gSaveBlock1.pos.x;
+ old_y = gSaveBlock1.pos.y;
+ connection = sub_8056A64(direction, gSaveBlock1.pos.x, gSaveBlock1.pos.y);
+ sub_8056918(connection, direction, x, y);
+ sub_80538F0(connection->mapGroup, connection->mapNum);
+ gUnknown_0202E844.field_0 = TRUE;
+ gUnknown_0202E844.x = old_x - gSaveBlock1.pos.x;
+ gUnknown_0202E844.y = old_y - gSaveBlock1.pos.y;
+ gSaveBlock1.pos.x += x;
+ gSaveBlock1.pos.y += y;
+ sub_80566F0(direction);
+ }
+ return gUnknown_0202E844.field_0;
+}
+
+struct MapConnection *sub_8056A64(u8 direction, int x, int y) {
+ int count;
+ struct MapConnection *connection;
+ int i;
+ count = gMapHeader.connections->count;
+ connection = gMapHeader.connections->connections;
+ for (i = 0; i < count; i++, connection++) {
+ if (connection->direction == direction) {
+ if (sub_8056ABC(direction, x, y, connection) == TRUE) {
+ return connection;
+ }
+ }
+ }
+ return NULL;
+}
+
+bool8 sub_8056ABC(u8 direction, int x, int y, struct MapConnection *connection) {
+ struct MapHeader *mapHeader;
+ mapHeader = mapconnection_get_mapheader(connection);
+ switch (direction) {
+ case CONNECTION_SOUTH:
+ case CONNECTION_NORTH:
+ return sub_8056B20(x, gMapHeader.mapData->width, mapHeader->mapData->width, connection->offset);
+ case CONNECTION_WEST:
+ case CONNECTION_EAST:
+ return sub_8056B20(y, gMapHeader.mapData->height, mapHeader->mapData->height, connection->offset);
+ }
+ return FALSE;
+}
+
+bool8 sub_8056B20(int x, int src_width, int dest_width, int offset) {
+ int offset2;
+ offset2 = offset;
+ if (offset2 < 0) {
+ offset2 = 0;
+ }
+ if (dest_width + offset < src_width) {
+ src_width = dest_width + offset;
+ }
+ if (offset2 <= x && x <= src_width) {
+ return TRUE;
+ }
+ return FALSE;
+}
+
+int sub_8056B4C(int x, int width) {
+ if (x >= 0 && x < width) {
+ return TRUE;
+ }
+ return FALSE;
+}
+
+int sub_8056B60(struct MapConnection *connection, int x, int y) {
+ struct MapHeader *mapHeader;
+ mapHeader = mapconnection_get_mapheader(connection);
+ switch (connection->direction) {
+ case CONNECTION_SOUTH:
+ case CONNECTION_NORTH:
+ return sub_8056B4C(x - connection->offset, mapHeader->mapData->width);
+ case CONNECTION_WEST:
+ case CONNECTION_EAST:
+ return sub_8056B4C(y - connection->offset, mapHeader->mapData->height);
+ }
+ return FALSE;
+}
+
+struct MapConnection *sub_8056BA0(s16 x, s16 y) {
+ int count;
+ struct MapConnection *connection;
+ int i;
+ u8 direction;
+ if (!gMapHeader.connections) {
+ return NULL;
+ } else {
+ count = gMapHeader.connections->count;
+ connection = gMapHeader.connections->connections;
+ for (i = 0; i < count; i++, connection++) {
+ direction = connection->direction;
+ if (
+ (direction == CONNECTION_DIVE || direction == CONNECTION_EMERGE)
+ || (direction == CONNECTION_NORTH && y > 6)
+ || (direction == CONNECTION_SOUTH && y < gMapHeader.mapData->height + 7)
+ || (direction == CONNECTION_WEST && x > 6)
+ || (direction == CONNECTION_EAST && x < gMapHeader.mapData->width + 7)
+ ) {
+ continue;
+ }
+ if (sub_8056B60(connection, x - 7, y - 7) == TRUE) {
+ return connection;
+ }
+ }
+ }
+ return NULL;
+}
+
+void sub_8056C50(u16 x, u16 y) {
+ gSaveBlock1.pos.x = x - 7;
+ gSaveBlock1.pos.y = y - 7;
+}
+
+void sav1_camera_get_focus_coords(u16 *x, u16 *y) {
+ *x = gSaveBlock1.pos.x + 7;
+ *y = gSaveBlock1.pos.y + 7;
+}
+
+void unref_sub_8056C7C(u16 x, u16 y) {
+ gSaveBlock1.pos.x = x;
+ gSaveBlock1.pos.y = y;
+}
+
+void GetCameraCoords(u16 *x, u16 *y) {
+ *x = gSaveBlock1.pos.x;
+ *y = gSaveBlock1.pos.y;
+}
+
+void sub_8056C98(struct Tileset *tileset, void *src) {
+ if (tileset) {
+ if (!tileset->isCompressed) {
+ CpuFastSet(tileset->tiles, src, 0x1000);
+ } else {
+ LZ77UnCompVram(tileset->tiles, src);
+ }
+ }
+}
+
+void sub_8056CBC(struct Tileset *tileset, int offset, int size) {
+ u16 black;
+ if (tileset) {
+ if (tileset->isSecondary == FALSE) {
+ black = 0;
+ LoadPalette(&black, offset, 2);
+ LoadPalette(tileset->palettes + 2, offset + 1, size - 2);
+ } else if (tileset->isSecondary == TRUE) {
+ LoadPalette(tileset->palettes + 0xc0, offset, size);
+ } else {
+ LZ77UnCompVram(tileset->palettes, (void*)0x2000000);
+ LoadPalette((void*)0x2000000, offset, size);
+ }
+ }
+}
+
+void sub_8056D28(struct MapData *mapData) {
+ void *src = (void*)(BG_VRAM);
+ sub_8056C98(mapData->primaryTileset, src);
+}
+
+void sub_8056D38(struct MapData *mapData) {
+ void *src = (void*)(BG_VRAM + 0x4000);
+ sub_8056C98(mapData->secondaryTileset, src);
+}
+
+void apply_map_tileset1_palette(struct MapData *mapData) {
+ sub_8056CBC(mapData->primaryTileset, 0, 0xc0);
+}
+
+void apply_map_tileset2_palette(struct MapData *mapData) {
+ sub_8056CBC(mapData->secondaryTileset, 0x60, 0xc0);
+}
+
+void copy_map_tileset1_tileset2_to_vram(struct MapData *mapData) {
+ if (mapData) {
+ sub_8056D28(mapData);
+ sub_8056D38(mapData);
+ }
+}
+
+void apply_map_tileset1_tileset2_palette(struct MapData *mapData) {
+ if (mapData) {
+ apply_map_tileset1_palette(mapData);
+ apply_map_tileset2_palette(mapData);
+ }
+}
diff --git a/src/flag.c b/src/flag.c
deleted file mode 100644
index e7347ad0d..000000000
--- a/src/flag.c
+++ /dev/null
@@ -1,44 +0,0 @@
-#include "global.h"
-#include "flag.h"
-
-extern u8 gUnknown_0202E8E2[];
-
-u8 *GetFlagPointer(u16 id)
-{
- if (id == 0)
- return 0;
-
- if (id < 0x4000)
- return &gSaveBlock1.flags[id / 8];
-
- return &gUnknown_0202E8E2[(id - 0x4000) / 8];
-}
-
-u8 FlagSet(u16 id)
-{
- u8 *ptr = GetFlagPointer(id);
- if (ptr)
- *ptr |= 1 << (id & 7);
- return 0;
-}
-
-u8 FlagReset(u16 id)
-{
- u8 *ptr = GetFlagPointer(id);
- if (ptr)
- *ptr &= ~(1 << (id & 7));
- return 0;
-}
-
-bool8 FlagGet(u16 id)
-{
- u8 *ptr = GetFlagPointer(id);
-
- if (!ptr)
- return FALSE;
-
- if (!(((*ptr) >> (id & 7)) & 1))
- return FALSE;
-
- return TRUE;
-}
diff --git a/src/fldeff_emotion.c b/src/fldeff_emotion.c
deleted file mode 100644
index 06eb7bd9e..000000000
--- a/src/fldeff_emotion.c
+++ /dev/null
@@ -1,82 +0,0 @@
-#include "global.h"
-#include "sprite.h"
-#include "fieldmap.h"
-
-extern u32 gUnknown_0202FF84[];
-
-extern struct SpriteTemplate gSpriteTemplate_839B510;
-extern struct SpriteTemplate gSpriteTemplate_839B528;
-
-bool8 TryGetFieldObjectIdByLocalIdAndMap(u8, u8, u8, u8 *);
-
-void FieldEffectStop(struct Sprite *sprite, u16 a2);
-void sub_8084894(struct Sprite *sprite, u16 a2, u8 a3);
-void objc_exclamation_mark_probably(struct Sprite *sprite);
-
-u8 FldEff_ExclamationMarkIcon1(void)
-{
- u8 spriteId = CreateSpriteAtEnd(&gSpriteTemplate_839B510, 0, 0, 0x53);
-
- if (spriteId != 64)
- sub_8084894(&gSprites[spriteId], 0, 0);
-
- return 0;
-}
-
-u8 FldEff_ExclamationMarkIcon2(void)
-{
- u8 spriteId = CreateSpriteAtEnd(&gSpriteTemplate_839B510, 0, 0, 0x52);
-
- if (spriteId != 64)
- sub_8084894(&gSprites[spriteId], 33, 1);
-
- return 0;
-}
-
-u8 FldEff_HeartIcon(void)
-{
- u8 spriteId = CreateSpriteAtEnd(&gSpriteTemplate_839B528, 0, 0, 0x52);
-
- if (spriteId != 64)
- sub_8084894(&gSprites[spriteId], 46, 0);
-
- return 0;
-}
-
-void sub_8084894(struct Sprite *sprite, u16 a2, u8 a3)
-{
- sprite->oam.priority = 1;
- sprite->coordOffsetEnabled = 1;
-
- sprite->data0 = gUnknown_0202FF84[0];
- sprite->data1 = gUnknown_0202FF84[1];
- sprite->data2 = gUnknown_0202FF84[2];
- sprite->data3 = -5;
- sprite->data7 = a2;
-
- StartSpriteAnim(sprite, a3);
-}
-
-void objc_exclamation_mark_probably(struct Sprite *sprite)
-{
- u8 mapObjId;
-
- if (TryGetFieldObjectIdByLocalIdAndMap(sprite->data0, sprite->data1, sprite->data2, &mapObjId)
- || sprite->animEnded)
- {
- FieldEffectStop(sprite, (u8)sprite->data7);
- }
- else
- {
- struct Sprite *mapObjSprite = &gSprites[gMapObjects[mapObjId].spriteId];
- sprite->data4 += sprite->data3;
- sprite->pos1.x = mapObjSprite->pos1.x;
- sprite->pos1.y = mapObjSprite->pos1.y - 16;
- sprite->pos2.x = mapObjSprite->pos2.x;
- sprite->pos2.y = mapObjSprite->pos2.y + sprite->data4;
- if (sprite->data4)
- sprite->data3++;
- else
- sprite->data3 = 0;
- }
-} \ No newline at end of file
diff --git a/src/fldeff_strength.c b/src/fldeff_strength.c
new file mode 100644
index 000000000..4da04326a
--- /dev/null
+++ b/src/fldeff_strength.c
@@ -0,0 +1,74 @@
+#include "global.h"
+#include "field_effect.h"
+#include "asm.h"
+#include "pokemon.h"
+#include "script.h"
+#include "task.h"
+
+static void sub_811AA18(void);
+static void sub_811AA38(void);
+static void sub_811AA9C(void);
+
+extern u32 gUnknown_0202FF84;
+
+extern u8 gUnknown_03005CE0;
+extern u16 gScriptResult;
+extern void (*gUnknown_0300485C)(void);
+extern void (*gUnknown_03005CE4)(void);
+
+extern u8 UseStrengthScript[];
+
+bool8 SetUpFieldMove_Strength(void)
+{
+ if (ShouldDoBrailleStrengthEffect())
+ {
+ gScriptResult = gUnknown_03005CE0;
+ gUnknown_0300485C = sub_808AB90;
+ gUnknown_03005CE4 = sub_811AA38;
+ }
+ else
+ {
+ if (npc_before_player_of_type(87) != TRUE)
+ return 0;
+ gScriptResult = gUnknown_03005CE0;
+ gUnknown_0300485C = sub_808AB90;
+ gUnknown_03005CE4 = sub_811AA18;
+ }
+
+ return TRUE;
+}
+
+static void sub_811AA18(void)
+{
+ gUnknown_0202FF84 = gUnknown_03005CE0;
+ ScriptContext1_SetupScript(UseStrengthScript);
+}
+
+static void sub_811AA38(void)
+{
+ gUnknown_0202FF84 = gUnknown_03005CE0;
+ FieldEffectStart(40);
+}
+
+bool8 FldEff_UseStrength(void)
+{
+ u8 taskId = oei_task_add();
+
+ gTasks[taskId].data[8] = (u32)sub_811AA9C >> 16;
+ gTasks[taskId].data[9] = (u32)sub_811AA9C;
+ GetMonNickname(&gPlayerParty[gUnknown_0202FF84], gStringVar1);
+ return FALSE;
+}
+
+static void sub_811AA9C(void)
+{
+ if (ShouldDoBrailleStrengthEffect())
+ {
+ DoBrailleStrengthEffect();
+ }
+ else
+ {
+ FieldEffectActiveListRemove(40);
+ EnableBothScriptContexts();
+ }
+}
diff --git a/src/heal_location.c b/src/heal_location.c
index da2e466a9..13bb125b6 100644
--- a/src/heal_location.c
+++ b/src/heal_location.c
@@ -1,15 +1,8 @@
#include "global.h"
+#include "heal_location.h"
#define NUM_HEAL_LOCATIONS 22
-struct HealLocation
-{
- s8 group;
- s8 map;
- u16 x;
- u16 y;
-};
-
extern const struct HealLocation gHealLocations[];
u32 GetHealLocationIndexByMap(u16 mapGroup, u16 mapNum)
diff --git a/src/intro.c b/src/intro.c
index e103109f9..544d8b64f 100644
--- a/src/intro.c
+++ b/src/intro.c
@@ -1,66 +1,190 @@
#include "global.h"
+#include "intro.h"
+#include "asm.h"
+#include "gba/m4a_internal.h"
+#include "m4a.h"
+#include "libgncmultiboot.h"
+#include "save.h"
+#include "decompress.h"
+#include "title_screen.h"
+#include "new_game.h"
+#include "link.h"
#include "main.h"
#include "palette.h"
+#include "rng.h"
+#include "songs.h"
+#include "sound.h"
+#include "species.h"
#include "task.h"
-#include "link.h"
+#include "trig.h"
+
+extern void *species_and_otid_get_pal(/*TODO: arg types*/);
+extern void sub_8143648(int, u8);
+extern void sub_8143680(int, u8);
-struct GcmbStruct
+struct MonCoords
{
- u16 gcmb_field_0;
- u8 gcmb_field_2;
+ u8 x, y;
};
-extern s32 gUnknown_03005ED0;
+
+extern struct SpriteTemplate gUnknown_02024E8C;
+extern u16 gUnknown_02039318;
+extern u16 gUnknown_0203931A;
+extern u16 gUnknown_02039358;
+extern u16 gUnknown_0203935A;
+
+extern u32 gIntroFrameCounter;
extern struct GcmbStruct gUnknown_03005EE0;
extern u16 gSaveFileStatus;
+extern u8 gReservedSpritePaletteCount;
+extern struct SpriteSheet gMonFrontPicTable[];
+extern struct MonCoords gMonFrontPicCoords[];
+extern struct SpriteSheet gMonBackPicTable[];
+extern struct MonCoords gMonBackPicCoords[];
+extern struct SpriteSheet gTrainerBackPicTable[];
+extern struct MonCoords gTrainerBackPicCoords[];
+extern struct SpritePalette gTrainerBackPicPaletteTable[];
+
+extern const u16 gIntro1BGPals[];
+extern const u8 gIntro1BG0_Tilemap[];
+extern const u8 gIntro1BG1_Tilemap[];
+extern const u8 gIntro1BG2_Tilemap[];
+extern const u8 gIntro1BG3_Tilemap[];
+extern const u8 gIntro1BGLeavesGfx[];
+extern const u8 gIntro3PokeballPal[];
+extern const u8 gIntro3Pokeball_Tilemap[];
+extern const u8 gIntro3Pokeball_Gfx[];
+extern const u16 gIntro3Streaks_Pal[];
+extern const u8 gIntro3Streaks_Gfx[];
+extern const u8 gIntro3Streaks_Tilemap[];
+extern union AnimCmd *gUnknown_0840AE80[];
+extern const struct SpriteTemplate gSpriteTemplate_840AFF0;
+extern const struct SpriteSheet gUnknown_0840B008;
+extern const struct SpriteSheet gUnknown_0840B018;
+extern const struct SpritePalette gUnknown_0840B028[];
+extern const struct SpriteTemplate gSpriteTemplate_840B1F4;
+extern const struct SpriteSheet gIntro3PokeballGfx_Table;
+extern const struct SpriteSheet gIntro3MiscGfx_Table;
+extern const struct SpritePalette gInterfacePokeballPal_Table;
+extern const struct SpritePalette gIntro3MiscPal_Table[];
+extern const struct SpriteSheet gIntro2BrendanSpriteSheet;
+extern const struct SpriteSheet gIntro2MaySpriteSheet;
+extern const struct SpriteSheet gIntro2BicycleSpriteSheet;
+extern const struct SpriteSheet gIntro2LatiosSpriteSheet;
+extern const struct SpriteSheet gIntro2LatiasSpriteSheet;
+extern const struct SpritePalette gIntro2SpritePalettes[];
+
+extern const struct SpriteTemplate gSpriteTemplate_840AE20;
extern const u8 gIntroCopyright_Gfx[];
extern const u16 gIntroCopyright_Pal[];
extern const u16 gIntroCopyright_Tilemap[];
-extern void CB2_InitTitleScreen(void);
+extern const u16 gUnknown_08393E64[];
+extern const s16 gUnknown_0840AF50[][2];
+extern const s16 gUnknown_0840AF74[][2];
+extern const struct SpriteTemplate gSpriteTemplate_840AF94;
+extern const struct SpriteTemplate gSpriteTemplate_840AFAC;
+extern const struct SpriteTemplate gSpriteTemplate_840AFC4;
+extern union AnimCmd *gUnknown_0840B064[];
+extern const struct SpriteTemplate gSpriteTemplate_840B084;
+extern const struct SpriteTemplate gSpriteTemplate_840B0B0;
+extern const struct SpriteTemplate gSpriteTemplate_840B0DC;
+extern const struct SpriteTemplate gSpriteTemplate_840B0F4;
+extern const struct SpriteTemplate gSpriteTemplate_840B124;
+extern const struct SpriteTemplate gSpriteTemplate_840B150;
+extern const u8 gUnknown_0840B168[];
+extern const struct SpriteTemplate gSpriteTemplate_840B170;
+extern const u16 gUnknown_0840B188[];
+extern const struct SpriteTemplate gSpriteTemplate_840B1B0;
+extern const struct SpriteTemplate gSpriteTemplate_840B1C8;
+extern void *gUnknown_0840B5A0[];
-void CB2_813B7EC(void);
-void task_intro_1(u8);
+extern const s16 gSineTable[];
-void sub_813B784(void)
+static void MainCB2_EndIntro(void);
+static void Task_IntroLoadPart1Graphics(u8);
+static void Task_IntroFadeIn(u8);
+static void Task_IntroWaterDrops(u8);
+static void Task_IntroScrollDownAndShowEon(u8);
+static void Task_IntroWaitToSetupPart2(u8);
+static void Task_IntroLoadPart2Graphics(u8);
+static void Task_IntroStartBikeRide(u8);
+static void Task_IntroHandleBikeAndEonMovement(u8);
+static void Task_IntroWaitToSetupPart3(u8);
+static void Task_IntroLoadPart3Graphics(u8);
+static void Task_IntroSpinAndZoomPokeball(u8);
+static void Task_IntroWaitToSetupPart3DoubleFight(u8);
+static void Task_IntroLoadPart3Streaks(u8);
+static void task_intro_14(u8);
+static void task_intro_15(u8);
+static void task_intro_16(u8);
+static void task_intro_17(u8);
+static void Task_IntroPokemonBattle(u8);
+static void task_intro_19(u8);
+static void task_intro_20(u8);
+static void intro_reset_and_hide_bgs(void);
+static void sub_813CCE8(u8);
+static u16 sub_813CE88(u16, s16, s16, u16, u8);
+static u8 sub_813CFA8(u16, u16, u16, u16);
+static void sub_813D084(u8);
+void sub_813D220(struct Sprite *);
+void sub_813D368(struct Sprite *);
+void sub_813D414(struct Sprite *);
+void SpriteCB_WaterDropFall(struct Sprite *);
+static u8 CreateWaterDrop(s16, s16, u16, u16, u16, u8);
+void sub_813D788(struct Sprite *);
+void sub_813D880(struct Sprite *);
+static u8 CreateGameFreakLogo(s16, s16, u8);
+void sub_813DB9C(struct Sprite *);
+void sub_813DE70(struct Sprite *);
+void sub_813E10C(struct Sprite *);
+void sub_813E210(struct Sprite *);
+static void sub_813E580(u16, u16);
+static void sub_813E7C0(u8);
+static void sub_813E930(u8);
+static void InitIntroTorchicAttackAnim(u8);
+static void InitIntroMudkipAttackAnim(u8);
+
+static void VBlankCB_Intro(void)
{
LoadOam();
ProcessSpriteCopyRequests();
TransferPlttBuffer();
}
-void CB2_813B798(void)
+static void MainCB2_Intro(void)
{
RunTasks();
AnimateSprites();
BuildOamBuffer();
UpdatePaletteFade();
if (gMain.newKeys && !gPaletteFade.active)
- SetMainCallback2(CB2_813B7EC);
- else if (gUnknown_03005ED0 != -1)
- gUnknown_03005ED0++;
+ SetMainCallback2(MainCB2_EndIntro);
+ else if (gIntroFrameCounter != -1)
+ gIntroFrameCounter++;
}
-void CB2_813B7EC(void)
+static void MainCB2_EndIntro(void)
{
if (!UpdatePaletteFade())
SetMainCallback2(CB2_InitTitleScreen);
}
-void sub_813B808(u16 a1, u16 a2, u16 a3)
+static void LoadCopyrightGraphics(u16 a1, u16 a2, u16 a3)
{
LZ77UnCompVram(gIntroCopyright_Gfx, (void *)(VRAM + a1));
LoadPalette(gIntroCopyright_Pal, a3, 0x20);
CpuCopy16(gIntroCopyright_Tilemap, (void *)(VRAM + a2), 0x500);
}
-void SerialCb_CopyrightScreen(void)
+static void SerialCb_CopyrightScreen(void)
{
GameCubeMultiBoot_HandleSerialInterrupt(&gUnknown_03005EE0);
}
-u8 SetUpCopyrightScreen(void)
+static u8 SetUpCopyrightScreen(void)
{
u16 ime;
@@ -79,7 +203,7 @@ u8 SetUpCopyrightScreen(void)
DmaFill32(3, 0, (void *)OAM, OAM_SIZE);
DmaFill16(3, 0, (void *)(PLTT + 2), PLTT_SIZE - 2);
ResetPaletteFade();
- sub_813B808(0, 14336, 0);
+ LoadCopyrightGraphics(0, 14336, 0);
remove_some_task();
ResetTasks();
ResetSpriteData();
@@ -90,9 +214,9 @@ u8 SetUpCopyrightScreen(void)
REG_IME = 0;
REG_IE |= INTR_FLAG_VBLANK;
REG_IME = ime;
- REG_DISPSTAT |= 8;
- SetVBlankCallback(sub_813B784);
- REG_DISPCNT = 320;
+ REG_DISPSTAT |= DISPSTAT_VBLANK_INTR;
+ SetVBlankCallback(VBlankCB_Intro);
+ REG_DISPCNT = DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG0_ON;
SetSerialCallback(SerialCb_CopyrightScreen);
GameCubeMultiBoot_Init(&gUnknown_03005EE0);
default:
@@ -111,8 +235,8 @@ u8 SetUpCopyrightScreen(void)
case 141:
if (UpdatePaletteFade())
break;
- CreateTask(task_intro_1, 0);
- SetMainCallback2(CB2_813B798);
+ CreateTask(Task_IntroLoadPart1Graphics, 0);
+ SetMainCallback2(MainCB2_Intro);
if (gUnknown_03005EE0.gcmb_field_2)
{
GameCubeMultiBoot_ExecuteProgram(&gUnknown_03005EE0);
@@ -145,3 +269,2217 @@ void CB2_InitCopyrightScreen(void)
{
SetUpCopyrightScreen();
}
+
+static void Task_IntroLoadPart1Graphics(u8 taskId)
+{
+ SetVBlankCallback(NULL);
+ gUnknown_02039318 = Random() & 1;
+ intro_reset_and_hide_bgs();
+ REG_BG3VOFS = 0;
+ REG_BG2VOFS = 0x50;
+ REG_BG1VOFS = 0x18;
+ REG_BG0VOFS = 0x28;
+ LZ77UnCompVram(gIntro1BGLeavesGfx, (void *)VRAM);
+ LZ77UnCompVram(gIntro1BG0_Tilemap, (void *)(VRAM + 0x8000));
+ DmaClear16(3, VRAM + 0x8800, 0x800);
+ LZ77UnCompVram(gIntro1BG1_Tilemap, (void *)(VRAM + 0x9000));
+ DmaClear16(3, VRAM + 0x9800, 0x800);
+ LZ77UnCompVram(gIntro1BG2_Tilemap, (void *)(VRAM + 0xA000));
+ DmaClear16(3, VRAM + 0xA800, 0x800);
+ LZ77UnCompVram(gIntro1BG3_Tilemap, (void *)(VRAM + 0xB000));
+ DmaClear16(3, VRAM + 0xB800, 0x800);
+ LoadPalette(gIntro1BGPals, 0, 0x200);
+ REG_BG3CNT = 0x9603;
+ REG_BG2CNT = 0x9402;
+ REG_BG1CNT = 0x9201;
+ REG_BG0CNT = 0x9000;
+ LoadCompressedObjectPic(&gUnknown_0840B008);
+ LoadCompressedObjectPic(&gUnknown_0840B018);
+ LoadSpritePalettes(gUnknown_0840B028);
+ CpuCopy16(gPlttBufferUnfaded + 0x100, gPlttBufferUnfaded + 0x1F0, 0x20);
+ CpuCopy16(gPlttBufferUnfaded + 0x100, gPlttBufferUnfaded + 0x1E1, 0x1E);
+ CpuCopy16(gPlttBufferUnfaded + 0x100, gPlttBufferUnfaded + 0x1D2, 0x1C);
+ CpuCopy16(gPlttBufferUnfaded + 0x100, gPlttBufferUnfaded + 0x1C3, 0x1A);
+ CpuCopy16(gPlttBufferUnfaded + 0x100, gPlttBufferUnfaded + 0x1B4, 0x18);
+ CpuCopy16(gPlttBufferUnfaded + 0x100, gPlttBufferUnfaded + 0x1A5, 0x16);
+ CpuCopy16(gPlttBufferUnfaded + 0x100, gPlttBufferUnfaded + 0x196, 0x14);
+ gTasks[taskId].data[0] = CreateWaterDrop(236, -14, 0x200, 1, 0x78, FALSE);
+ gTasks[taskId].func = Task_IntroFadeIn;
+}
+
+static void Task_IntroFadeIn(u8 taskId)
+{
+ BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, 0);
+ SetVBlankCallback(VBlankCB_Intro);
+ REG_DISPCNT = DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG_ALL_ON | DISPCNT_OBJ_ON;
+ gTasks[taskId].func = Task_IntroWaterDrops;
+ gIntroFrameCounter = 0;
+ m4aSongNumStart(0x19E);
+ ResetSerial();
+}
+
+static void Task_IntroWaterDrops(u8 taskId)
+{
+ //start moving rock
+ if (gIntroFrameCounter == 76)
+ gSprites[gTasks[taskId].data[0]].data0 = 1;
+
+ //drop rock
+ if (gIntroFrameCounter == 251)
+ gSprites[gTasks[taskId].data[0]].data0 = 2;
+
+ if (gIntroFrameCounter == 368)
+ CreateWaterDrop(48, 0, 0x400, 5, 0x70, TRUE);
+ if (gIntroFrameCounter == 384)
+ CreateWaterDrop(200, 60, 0x400, 9, 0x80, TRUE);
+
+ if (gIntroFrameCounter == 560)
+ CreateGameFreakLogo(DISPLAY_WIDTH / 2, DISPLAY_HEIGHT / 2, CreateTask(sub_813CCE8, 0));
+
+ if (gIntroFrameCounter > 739)
+ {
+ gTasks[taskId].data[1] = 0x50;
+ gTasks[taskId].data[2] = 0;
+ gTasks[taskId].data[3] = 0x18;
+ gTasks[taskId].data[4] = 0;
+ gTasks[taskId].data[5] = 0x28;
+ gTasks[taskId].data[6] = 0;
+ gTasks[taskId].func = Task_IntroScrollDownAndShowEon;
+ }
+}
+
+static void Task_IntroScrollDownAndShowEon(u8 taskId)
+{
+ if (gIntroFrameCounter < 904)
+ {
+ s32 r2;
+
+ //slide backgrounds downward
+ r2 = (gTasks[taskId].data[1] << 16) + (u16)gTasks[taskId].data[2] - 0xC000;
+ gTasks[taskId].data[1] = r2 >> 16;
+ gTasks[taskId].data[2] = r2;
+ REG_BG2VOFS = gTasks[taskId].data[1];
+ r2 = (gTasks[taskId].data[3] << 16) + (u16)gTasks[taskId].data[4] - 0x10000;
+ gTasks[taskId].data[3] = r2 >> 16;
+ gTasks[taskId].data[4] = r2;
+ REG_BG1VOFS = gTasks[taskId].data[3];
+ r2 = (gTasks[taskId].data[5] << 16) + (u16)gTasks[taskId].data[6] - 0x18000;
+ gTasks[taskId].data[5] = r2 >> 16;
+ gTasks[taskId].data[6] = r2;
+ REG_BG0VOFS = gTasks[taskId].data[5];
+
+ //show Lati@s sprite
+ if (gIntroFrameCounter == 880)
+ {
+ u8 spriteId = CreateSprite(&gSpriteTemplate_840AFF0, 200, 160, 10);
+
+ gSprites[spriteId].invisible = 1;
+ }
+ }
+ else
+ {
+ //fade to white
+ if (gIntroFrameCounter > 1007)
+ {
+ BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0xFFFF);
+ gTasks[taskId].func = Task_IntroWaitToSetupPart2;
+ }
+ }
+}
+
+static void Task_IntroWaitToSetupPart2(u8 taskId)
+{
+ if (gIntroFrameCounter > 1026)
+ gTasks[taskId].func = Task_IntroLoadPart2Graphics;
+}
+
+static void Task_IntroLoadPart2Graphics(u8 taskId)
+{
+ intro_reset_and_hide_bgs();
+ SetVBlankCallback(NULL);
+ ResetSpriteData();
+ FreeAllSpritePalettes();
+ gUnknown_02039358 = 0;
+ gUnknown_0203935A = 0;
+#ifdef SAPPHIRE
+ load_intro_part2_graphics(0);
+#else
+ load_intro_part2_graphics(1);
+#endif
+ gTasks[taskId].func = Task_IntroStartBikeRide;
+}
+
+static void Task_IntroStartBikeRide(u8 taskId)
+{
+ u8 spriteId;
+
+ if (gUnknown_02039318 == 0)
+ LoadCompressedObjectPic(&gIntro2BrendanSpriteSheet);
+ else
+ LoadCompressedObjectPic(&gIntro2MaySpriteSheet);
+ LoadCompressedObjectPic(&gIntro2BicycleSpriteSheet);
+#ifdef SAPPHIRE
+ LoadCompressedObjectPic(&gIntro2LatiasSpriteSheet);
+#else
+ LoadCompressedObjectPic(&gIntro2LatiosSpriteSheet);
+#endif
+ LoadSpritePalettes(gIntro2SpritePalettes);
+ if (gUnknown_02039318 == 0)
+ spriteId = intro_create_brendan_sprite(0x110, 100);
+ else
+ spriteId = intro_create_may_sprite(0x110, 100);
+ gSprites[spriteId].callback = sub_813D788;
+ gSprites[spriteId].anims = gUnknown_0840AE80;
+ gTasks[taskId].data[1] = spriteId;
+#ifdef SAPPHIRE
+ spriteId = intro_create_latias_sprite(-0x40, 0x3C);
+#else
+ spriteId = intro_create_latios_sprite(-0x40, 0x3C);
+#endif
+ gSprites[spriteId].callback = sub_813D880;
+ gTasks[taskId].data[2] = spriteId;
+ BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, 0xFFFF);
+ SetVBlankCallback(VBlankCB_Intro);
+#ifdef SAPPHIRE
+ gTasks[taskId].data[0] = sub_8148EC0(0, 0x4000, 0x40, 0x10);
+ sub_8148C78(0);
+#else
+ gTasks[taskId].data[0] = sub_8148EC0(1, 0x4000, 0x400, 0x10);
+ sub_8148C78(1);
+#endif
+ gTasks[taskId].func = Task_IntroHandleBikeAndEonMovement;
+}
+
+static void Task_IntroHandleBikeAndEonMovement(u8 taskId)
+{
+ s16 a;
+ u16 sine;
+
+ if (gIntroFrameCounter > 1823)
+ {
+ BeginNormalPaletteFade(0xFFFFFFFF, 16, 0, 16, 0xFFFF);
+ gTasks[taskId].func = Task_IntroWaitToSetupPart3;
+ }
+ if (gIntroFrameCounter == 1109)
+ gSprites[gTasks[taskId].data[1]].data0 = 1;
+ if (gIntroFrameCounter == 1214)
+ gSprites[gTasks[taskId].data[1]].data0 = 0;
+ if (gIntroFrameCounter == 1394)
+ gSprites[gTasks[taskId].data[2]].data0 = 1;
+ if (gIntroFrameCounter == 1398)
+ gSprites[gTasks[taskId].data[1]].data0 = 2;
+ if (gIntroFrameCounter == 1586)
+ gSprites[gTasks[taskId].data[1]].data0 = 3;
+ if (gIntroFrameCounter == 1727)
+ gSprites[gTasks[taskId].data[1]].data0 = 4;
+
+ //TODO: Clean this up
+ a = (((u16)gTasks[taskId].data[3] << 16) >> 18) & 0x7F;
+ sine = Sin(a, 48);
+ gUnknown_0203935A = sine;
+ if (gTasks[taskId].data[3] < 512)
+ gTasks[taskId].data[3]++;
+#ifdef SAPPHIRE
+ sub_8149020(0);
+#else
+ sub_8149020(1);
+#endif
+}
+
+static void Task_IntroWaitToSetupPart3(u8 taskId)
+{
+ if (gIntroFrameCounter > 2068)
+ {
+ DestroyTask(gTasks[taskId].data[0]);
+ gTasks[taskId].func = Task_IntroLoadPart3Graphics;
+ }
+}
+
+static void Task_IntroLoadPart3Graphics(u8 taskId)
+{
+ intro_reset_and_hide_bgs();
+ LZ77UnCompVram(gIntro3Pokeball_Gfx, (void *)VRAM);
+ LZ77UnCompVram(gIntro3Pokeball_Tilemap, (void *)(VRAM + 0x4000));
+ LoadPalette(gIntro3PokeballPal, 0, 0x200);
+ gTasks[taskId].data[0] = 0;
+ gTasks[taskId].data[1] = 0;
+ gTasks[taskId].data[2] = 0;
+ gTasks[taskId].data[3] = 0;
+ sub_813CE30(0x78, 0x50, 0, 0);
+ ResetSpriteData();
+ FreeAllSpritePalettes();
+ BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, 0xFFFF);
+ REG_BG2CNT = 0x4883;
+ REG_DISPCNT = DISPCNT_MODE_1 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG2_ON | DISPCNT_OBJ_ON;
+ gTasks[taskId].func = Task_IntroSpinAndZoomPokeball;
+ gIntroFrameCounter = 0;
+ m4aSongNumStart(0x1BA);
+}
+
+static void Task_IntroSpinAndZoomPokeball(u8 taskId)
+{
+ gTasks[taskId].data[0] += 0x400;
+ if (gTasks[taskId].data[1] <= 0x6BF)
+ {
+ gTasks[taskId].data[1] += gTasks[taskId].data[2];
+ gTasks[taskId].data[2]++;
+ }
+ else
+ {
+ gTasks[taskId].func = Task_IntroWaitToSetupPart3DoubleFight;
+ }
+ sub_813CE30(0x78, 0x50, 0x10000 / gTasks[taskId].data[1], gTasks[taskId].data[0]);
+ if (gIntroFrameCounter == 44)
+ BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, 0xFFFF);
+}
+
+static void Task_IntroWaitToSetupPart3DoubleFight(u8 taskId)
+{
+ if (gIntroFrameCounter > 59)
+ gTasks[taskId].func = Task_IntroLoadPart3Streaks;
+}
+
+extern u8 unk_2000000[][32];
+
+static void Task_IntroLoadPart3Streaks(u8 taskId)
+{
+ u16 i;
+ void *vram;
+
+ intro_reset_and_hide_bgs();
+ for (i = 0; i < 32; i++)
+ {
+ unk_2000000[0][i] = 0;
+ unk_2000000[1][i] = 17;
+ unk_2000000[2][i] = 34;
+ }
+ vram = (void *)VRAM;
+ DmaCopy16(3, unk_2000000, vram, 0x60);
+ for (i = 0; i < 0x280; i++)
+ ((u16 *)(VRAM + 0x3000))[i] = 0xF001;
+ for (i = 0; i < 0x80; i++)
+ ((u16 *)(VRAM + 0x3800))[i] = 0xF002;
+ for (i = 0; i < 0x180; i++)
+ ((u16 *)(VRAM + 0x3900))[i] = 0xF000;
+ for (i = 0; i < 0x80; i++)
+ ((u16 *)(VRAM + 0x3C00))[i] = 0xF002;
+ gPlttBufferUnfaded[0xF0] = RGB_WHITE;
+ gPlttBufferFaded[0xF0] = RGB_WHITE;
+ sub_813D084(1);
+ gPlttBufferUnfaded[0xF2] = RGB_BLACK;
+ gPlttBufferFaded[0xF2] = RGB_BLACK;
+ LZ77UnCompVram(gIntro3Streaks_Gfx, (void *)(VRAM + 0x4000));
+ LZ77UnCompVram(gIntro3Streaks_Tilemap, (void *)(VRAM + 0x7000));
+ LoadPalette(gIntro3Streaks_Pal, 0, 0x20);
+ ResetSpriteData();
+ FreeAllSpritePalettes();
+ gReservedSpritePaletteCount = 8;
+ LoadCompressedObjectPic(&gIntro3PokeballGfx_Table);
+ LoadCompressedObjectPic(&gIntro3MiscGfx_Table);
+ LoadCompressedObjectPalette(&gInterfacePokeballPal_Table);
+ LoadSpritePalettes(gIntro3MiscPal_Table);
+ gTasks[taskId].func = task_intro_14;
+}
+
+static void task_intro_14(u8 taskId)
+{
+ REG_WIN0H = 0xF0;
+ REG_WIN0V = 0xA0;
+ REG_WININ = 0x1C;
+ REG_WINOUT = 0x1D;
+ REG_BG3CNT = 0x603;
+ REG_BG0CNT = 0x700;
+ REG_DISPCNT = DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG0_ON | DISPCNT_BG3_ON | DISPCNT_OBJ_ON | DISPCNT_WIN0_ON;
+ gTasks[taskId].data[15] = CreateTask(task_intro_20, 0);
+ gTasks[gTasks[taskId].data[15]].data[0] = 0;
+ gTasks[taskId].data[0] = 0;
+ gTasks[taskId].func = task_intro_15;
+}
+
+static void task_intro_15(u8 taskId)
+{
+ u16 foo = gTasks[taskId].data[0];
+
+ if (gTasks[taskId].data[0] != 32)
+ {
+ u32 bar; //needed to match for some reason
+
+ gTasks[taskId].data[0] += 4;
+ REG_WIN0V = (gTasks[taskId].data[0] * 256) - (bar = foo - 0x9C);
+ }
+ else
+ {
+ REG_WIN0V = 0x2080;
+ gTasks[taskId].func = task_intro_16;
+ }
+}
+
+static void task_intro_16(u8 taskId)
+{
+ gTasks[taskId].func = task_intro_17;
+}
+
+static void task_intro_17(u8 taskId)
+{
+ gUnknown_0203931A = 0;
+ gTasks[taskId].func = Task_IntroPokemonBattle;
+}
+
+static void Task_IntroPokemonBattle(u8 taskId)
+{
+ u8 spriteId;
+
+ if (gIntroFrameCounter == 80)
+ {
+ spriteId = sub_813CE88(SPECIES_SHARPEDO, 0xF0, 0xA0, 5, 1);
+ gSprites[spriteId].callback = sub_813DB9C;
+ gSprites[spriteId].data1 = 1;
+ gSprites[spriteId].data2 = 0;
+ }
+ if (gIntroFrameCounter == 152)
+ {
+ spriteId = sub_813CE88(SPECIES_DUSKULL, 0, 0xA0, 4, 1);
+ gSprites[spriteId].callback = sub_813DB9C;
+ gSprites[spriteId].data1 = 2;
+ gSprites[spriteId].data2 = 1;
+ }
+ if (gIntroFrameCounter == 219)
+ {
+ sub_813D084(0);
+ spriteId = sub_813CFA8(gUnknown_02039318, 0x110, 0x60, 6);
+ gSprites[spriteId].callback = sub_813DE70;
+ gTasks[taskId].data[1] = spriteId;
+ }
+ if (gIntroFrameCounter == 304)
+ {
+ gTasks[gTasks[taskId].data[15]].data[0] = 4;
+ gSprites[gTasks[taskId].data[1]].data0 = 2;
+ }
+ if (gIntroFrameCounter == 384)
+ {
+ gTasks[gTasks[taskId].data[15]].data[0] = 0;
+ gSprites[gTasks[taskId].data[1]].data0 = 4;
+ }
+ if (gIntroFrameCounter == 400)
+ {
+ BeginNormalPaletteFade(0xFF0000, 0, 0x10, 0, 0x7EFF);
+ }
+ if (gIntroFrameCounter == 432)
+ {
+ gSprites[gTasks[taskId].data[1]].data0 = 5;
+ }
+ if (gIntroFrameCounter == 462)
+ {
+ gSprites[gTasks[taskId].data[1]].data0 = 6;
+ gTasks[gTasks[taskId].data[15]].data[0] = 2;
+ }
+ if (gIntroFrameCounter == 463)
+ {
+ sub_813D084(1);
+ spriteId = sub_813CE88(SPECIES_SHARPEDO, 0xD0, 8, 5, 1);
+ gSprites[spriteId].callback = sub_813E10C;
+ gTasks[taskId].data[2] = spriteId;
+ sub_813E7C0(spriteId);
+ }
+ if (gIntroFrameCounter == 539)
+ {
+ spriteId = sub_813CE88(SPECIES_DUSKULL, 0xF8, 0x10, 4, 1);
+ gSprites[spriteId].callback = sub_813E10C;
+ gTasks[taskId].data[3] = spriteId;
+ sub_813E930(spriteId);
+ }
+ if (gIntroFrameCounter == 623)
+ {
+ gSprites[gTasks[taskId].data[2]].data0 = 2;
+ gSprites[gTasks[taskId].data[3]].data0 = 2;
+ gTasks[gTasks[taskId].data[15]].data[0] = 3;
+ }
+ if (gIntroFrameCounter == 624)
+ {
+ sub_813D084(0);
+ spriteId = sub_813CE88(SPECIES_MUDKIP, 0x20, 0x98, 0, 0);
+ gSprites[spriteId].callback = sub_813E210;
+ gTasks[taskId].data[4] = spriteId;
+ InitIntroMudkipAttackAnim(spriteId);
+ }
+ if (gIntroFrameCounter == 700)
+ {
+ spriteId = sub_813CE88(SPECIES_TORCHIC, -8, 0x90, 1, 0);
+ gSprites[spriteId].callback = sub_813E210;
+ gTasks[taskId].data[5] = spriteId;
+ InitIntroTorchicAttackAnim(spriteId);
+ }
+ if (gIntroFrameCounter == 776)
+ {
+ gUnknown_0203931A = 1;
+ gSprites[gTasks[taskId].data[4]].data0 = 2;
+ gSprites[gTasks[taskId].data[5]].data0 = 2;
+ gTasks[gTasks[taskId].data[15]].data[0] = 0;
+ }
+ if (gIntroFrameCounter == 781)
+ {
+ sub_813D084(2);
+ gSprites[gTasks[taskId].data[2]].data0 = 3;
+ gSprites[gTasks[taskId].data[3]].data0 = 3;
+ gSprites[gTasks[taskId].data[4]].data0 = 3;
+ gSprites[gTasks[taskId].data[5]].data0 = 3;
+ spriteId = CreateSprite(&gSpriteTemplate_840B1F4, 0x78, 0x50, 15);
+ gSprites[spriteId].invisible = 1;
+ }
+ if (gIntroFrameCounter == 800)
+ PlaySE(SE_OP_BASYU);
+ if (gIntroFrameCounter == 850)
+ BeginNormalPaletteFade(0xFFFFFFFF, 4, 0, 0x10, 0xFFFF);
+ if (gIntroFrameCounter == 946)
+ gTasks[taskId].func = task_intro_19;
+}
+
+static void task_intro_19(u8 taskId)
+{
+ DestroyTask(taskId);
+ SetMainCallback2(MainCB2_EndIntro);
+}
+
+static void task_intro_20(u8 taskId)
+{
+ gTasks[taskId].data[15]++;
+ switch (gTasks[taskId].data[0])
+ {
+ case 0:
+ REG_DISPCNT = 0x3940;
+ REG_BG2CNT = 0;
+ gTasks[taskId].data[0] = 0xFF;
+ break;
+ case 2:
+ BeginNormalPaletteFade(1, 0, 0x10, 0, 0xFFFF);
+ REG_BG2CNT = 0x0E07;
+ REG_DISPCNT = 0x3D40;
+ gTasks[taskId].data[1] = 0;
+ gTasks[taskId].data[2] = 0;
+ gTasks[taskId].data[0] = 20;
+ //fall through
+ case 20:
+ REG_BG2VOFS = gTasks[taskId].data[1];
+ REG_BG2HOFS = gTasks[taskId].data[2];
+ gTasks[taskId].data[1] += 6;
+ gTasks[taskId].data[2] -= 8;
+ break;
+ case 3:
+ BeginNormalPaletteFade(1, 0, 0x10, 0, 0xFFFF);
+ REG_BG2CNT = 0x0E07;
+ REG_DISPCNT = 0x3D40;
+ gTasks[taskId].data[1] = 0;
+ gTasks[taskId].data[2] = 0;
+ gTasks[taskId].data[0] = 0x1E;
+ //fall through
+ case 0x1E:
+ REG_BG2VOFS = gTasks[taskId].data[1];
+ REG_BG2HOFS = gTasks[taskId].data[2];
+ gTasks[taskId].data[1] -= 6;
+ gTasks[taskId].data[2] += 8;
+ break;
+ case 4:
+ BeginNormalPaletteFade(1, 5, 0, 0x10, 0x37F7);
+ REG_BG2CNT = 0x0E07;
+ REG_DISPCNT = 0x3D40;
+ gTasks[taskId].data[1] = 0;
+ gTasks[taskId].data[2] = 0;
+ gTasks[taskId].data[3] = 8;
+ gTasks[taskId].data[0] = 0x28;
+ //fall through
+ case 0x28:
+ REG_BG2VOFS = gTasks[taskId].data[1];
+ REG_BG2HOFS = gTasks[taskId].data[2];
+ gTasks[taskId].data[1] -= gTasks[taskId].data[3];
+ gTasks[taskId].data[2] += gTasks[taskId].data[3];
+ if (!(gTasks[taskId].data[15] & 7) && gTasks[taskId].data[3] != 0)
+ gTasks[taskId].data[3]--;
+ break;
+ case 0xFF: //needed to prevent jump table optimization
+ break;
+ }
+}
+
+static void intro_reset_and_hide_bgs(void)
+{
+ REG_DISPCNT = 0;
+ REG_BG3HOFS = 0;
+ REG_BG3VOFS = 0;
+ REG_BG2HOFS = 0;
+ REG_BG2VOFS = 0;
+ REG_BG1HOFS = 0;
+ REG_BG1VOFS = 0;
+ REG_BG0HOFS = 0;
+ REG_BG0VOFS = 0;
+ REG_BLDCNT = 0;
+ REG_BLDALPHA = 0;
+ REG_BLDY = 0;
+}
+
+#ifdef NONMATCHING
+static void sub_813CCE8(u8 taskId)
+{
+ switch (gTasks[taskId].data[0])
+ {
+ default:
+ case 0:
+ REG_BLDCNT = 0x3F50;
+ REG_BLDALPHA = 0x1000;
+ REG_BLDY = 0;
+ gTasks[taskId].data[1] = 0x40;
+ gTasks[taskId].data[0] = 1;
+ return;
+ case 1:
+ if (gTasks[taskId].data[1] != 0)
+ {
+ u32 foo;
+ u32 bar asm("r2");
+
+ gTasks[taskId].data[1]--;
+ //tail merge at _0813CDC2
+ foo = gTasks[taskId].data[1] + (gTasks[taskId].data[1] < 0);
+ bar = 0x1FE;
+ REG_BLDALPHA = gUnknown_08393E64[(foo & bar) / 2];
+ }
+ else
+ {
+ REG_BLDALPHA = gUnknown_08393E64[0];
+ gTasks[taskId].data[1] = 0x80;
+ gTasks[taskId].data[0]++;
+ }
+ return;
+ case 2:
+ if (gTasks[taskId].data[1] != 0)
+ {
+ //tail merge at _0813CE0E
+ gTasks[taskId].data[1]--;
+ }
+ else
+ {
+ gTasks[taskId].data[1] = 0; //redundant?
+ gTasks[taskId].data[0]++;
+ }
+ return;
+ case 3:
+ if (gTasks[taskId].data[1] <= 0x3D)
+ {
+ u32 foo;
+ u32 bar asm("r2");
+
+ gTasks[taskId].data[1]++;
+ //_0813CDC2
+ foo = gTasks[taskId].data[1] + (gTasks[taskId].data[1] < 0);
+ bar = 0x1FE;
+ REG_BLDALPHA = gUnknown_08393E64[(foo & bar) / 2];
+ }
+ else
+ {
+ //_0813CDE0
+ REG_BLDALPHA = gUnknown_08393E64[0x1F];
+ gTasks[taskId].data[1] = 0x10;
+ gTasks[taskId].data[0]++;
+ }
+ return;
+ case 4:
+ if (gTasks[taskId].data[1] != 0)
+ {
+ gTasks[taskId].data[1]--;
+ }
+ else
+ {
+ REG_BLDCNT = 0;
+ REG_BLDALPHA = 0;
+ REG_BLDY = 0;
+ DestroyTask(taskId);
+ }
+ return;
+ }
+}
+#else
+__attribute__((naked))
+static void sub_813CCE8(u8 taskId)
+{
+ asm("\n\
+ .equ REG_BLDCNT, 0x4000050\n\
+ .equ REG_BLDALPHA, 0x4000052\n\
+ .syntax unified\n\
+ push {r4,lr}\n\
+ lsls r0, 24\n\
+ lsrs r3, r0, 24\n\
+ ldr r1, _0813CD0C @ =gTasks\n\
+ lsls r0, r3, 2\n\
+ adds r0, r3\n\
+ lsls r0, 3\n\
+ adds r0, r1\n\
+ movs r2, 0x8\n\
+ ldrsh r0, [r0, r2]\n\
+ adds r2, r1, 0\n\
+ cmp r0, 0x4\n\
+ bhi _0813CD28\n\
+ lsls r0, 2\n\
+ ldr r1, _0813CD10 @ =_0813CD14\n\
+ adds r0, r1\n\
+ ldr r0, [r0]\n\
+ mov pc, r0\n\
+ .align 2, 0\n\
+_0813CD0C: .4byte gTasks\n\
+_0813CD10: .4byte _0813CD14\n\
+ .align 2, 0\n\
+_0813CD14:\n\
+ .4byte _0813CD28\n\
+ .4byte _0813CD5C\n\
+ .4byte _0813CD8C\n\
+ .4byte _0813CDA8\n\
+ .4byte _0813CDFC\n\
+_0813CD28:\n\
+ ldr r1, _0813CD54 @ =REG_BLDCNT\n\
+ ldr r4, _0813CD58 @ =0x00003f50\n\
+ adds r0, r4, 0\n\
+ strh r0, [r1]\n\
+ adds r1, 0x2\n\
+ movs r4, 0x80\n\
+ lsls r4, 5\n\
+ adds r0, r4, 0\n\
+ strh r0, [r1]\n\
+ adds r1, 0x2\n\
+ movs r0, 0\n\
+ strh r0, [r1]\n\
+ lsls r0, r3, 2\n\
+ adds r0, r3\n\
+ lsls r0, 3\n\
+ adds r0, r2\n\
+ movs r1, 0x40\n\
+ strh r1, [r0, 0xA]\n\
+ movs r1, 0x1\n\
+ strh r1, [r0, 0x8]\n\
+ b _0813CE26\n\
+ .align 2, 0\n\
+_0813CD54: .4byte REG_BLDCNT\n\
+_0813CD58: .4byte 0x00003f50\n\
+_0813CD5C:\n\
+ lsls r0, r3, 2\n\
+ adds r0, r3\n\
+ lsls r0, 3\n\
+ adds r2, r0, r2\n\
+ ldrh r1, [r2, 0xA]\n\
+ movs r3, 0xA\n\
+ ldrsh r0, [r2, r3]\n\
+ cmp r0, 0\n\
+ beq _0813CD78\n\
+ subs r0, r1, 0x1\n\
+ strh r0, [r2, 0xA]\n\
+ movs r4, 0xA\n\
+ ldrsh r0, [r2, r4]\n\
+ b _0813CDC2\n\
+_0813CD78:\n\
+ ldr r1, _0813CD84 @ =REG_BLDALPHA\n\
+ ldr r0, _0813CD88 @ =gUnknown_08393E64\n\
+ ldrh r0, [r0]\n\
+ strh r0, [r1]\n\
+ movs r0, 0x80\n\
+ b _0813CDEA\n\
+ .align 2, 0\n\
+_0813CD84: .4byte REG_BLDALPHA\n\
+_0813CD88: .4byte gUnknown_08393E64\n\
+_0813CD8C:\n\
+ lsls r0, r3, 2\n\
+ adds r0, r3\n\
+ lsls r0, 3\n\
+ adds r1, r0, r2\n\
+ ldrh r0, [r1, 0xA]\n\
+ movs r3, 0xA\n\
+ ldrsh r2, [r1, r3]\n\
+ cmp r2, 0\n\
+ bne _0813CE0E\n\
+ strh r2, [r1, 0xA]\n\
+ ldrh r0, [r1, 0x8]\n\
+ adds r0, 0x1\n\
+ strh r0, [r1, 0x8]\n\
+ b _0813CE26\n\
+_0813CDA8:\n\
+ lsls r0, r3, 2\n\
+ adds r0, r3\n\
+ lsls r0, 3\n\
+ adds r2, r0, r2\n\
+ ldrh r1, [r2, 0xA]\n\
+ movs r4, 0xA\n\
+ ldrsh r0, [r2, r4]\n\
+ cmp r0, 0x3D\n\
+ bgt _0813CDE0\n\
+ adds r0, r1, 0x1\n\
+ strh r0, [r2, 0xA]\n\
+ movs r1, 0xA\n\
+ ldrsh r0, [r2, r1]\n\
+_0813CDC2:\n\
+ lsrs r1, r0, 31\n\
+ adds r0, r1\n\
+ movs r2, 0xFF\n\
+ lsls r2, 1\n\
+ ldr r3, _0813CDD8 @ =REG_BLDALPHA\n\
+ ldr r1, _0813CDDC @ =gUnknown_08393E64\n\
+ ands r0, r2\n\
+ adds r0, r1\n\
+ ldrh r0, [r0]\n\
+ strh r0, [r3]\n\
+ b _0813CE26\n\
+ .align 2, 0\n\
+_0813CDD8: .4byte REG_BLDALPHA\n\
+_0813CDDC: .4byte gUnknown_08393E64\n\
+_0813CDE0:\n\
+ ldr r1, _0813CDF4 @ =REG_BLDALPHA\n\
+ ldr r0, _0813CDF8 @ =gUnknown_08393E64\n\
+ ldrh r0, [r0, 0x3E]\n\
+ strh r0, [r1]\n\
+ movs r0, 0x10\n\
+_0813CDEA:\n\
+ strh r0, [r2, 0xA]\n\
+ ldrh r0, [r2, 0x8]\n\
+ adds r0, 0x1\n\
+ strh r0, [r2, 0x8]\n\
+ b _0813CE26\n\
+ .align 2, 0\n\
+_0813CDF4: .4byte REG_BLDALPHA\n\
+_0813CDF8: .4byte gUnknown_08393E64\n\
+_0813CDFC:\n\
+ lsls r0, r3, 2\n\
+ adds r0, r3\n\
+ lsls r0, 3\n\
+ adds r1, r0, r2\n\
+ ldrh r0, [r1, 0xA]\n\
+ movs r4, 0xA\n\
+ ldrsh r2, [r1, r4]\n\
+ cmp r2, 0\n\
+ beq _0813CE14\n\
+_0813CE0E:\n\
+ subs r0, 0x1\n\
+ strh r0, [r1, 0xA]\n\
+ b _0813CE26\n\
+_0813CE14:\n\
+ ldr r0, _0813CE2C @ =REG_BLDCNT\n\
+ strh r2, [r0]\n\
+ adds r0, 0x2\n\
+ strh r2, [r0]\n\
+ adds r0, 0x2\n\
+ strh r2, [r0]\n\
+ adds r0, r3, 0\n\
+ bl DestroyTask\n\
+_0813CE26:\n\
+ pop {r4}\n\
+ pop {r0}\n\
+ bx r0\n\
+ .align 2, 0\n\
+_0813CE2C: .4byte REG_BLDCNT\n\
+ .syntax divided\n");
+}
+#endif
+
+void sub_813CE30(u16 scrX, u16 scrY, u16 zoom, u16 alpha)
+{
+ struct BgAffineSrcData src;
+ struct BgAffineDstData dest;
+
+ src.texX = 0x8000;
+ src.texY = 0x8000;
+ src.scrX = scrX;
+ src.scrY = scrY;
+ src.sx = zoom;
+ src.sy = zoom;
+ src.alpha = alpha;
+ BgAffineSet(&src, &dest, 1);
+ REG_BG2PA = dest.pa;
+ REG_BG2PB = dest.pb;
+ REG_BG2PC = dest.pc;
+ REG_BG2PD = dest.pd;
+ REG_BG2X = dest.dx;
+ REG_BG2Y = dest.dy;
+}
+
+static u16 sub_813CE88(u16 species, s16 x, s16 y, u16 d, u8 front)
+{
+ void *pal;
+ u8 spriteId;
+
+ if (front)
+ LoadSpecialPokePic(&gMonFrontPicTable[species], gMonFrontPicCoords[species].x, gMonFrontPicCoords[species].y, 0x2000000, gUnknown_0840B5A0[d], species, 0, 1);
+ else
+ LoadSpecialPokePic(&gMonBackPicTable[species], gMonBackPicCoords[species].x, gMonBackPicCoords[species].y, 0x2000000, gUnknown_0840B5A0[d], species, 0, 0);
+ pal = species_and_otid_get_pal(species, 0, 0xFFFF);
+ LoadCompressedPalette(pal, 0x100 + d * 0x10, 0x20);
+ sub_8143648(d, d);
+ spriteId = CreateSprite(&gUnknown_02024E8C, x, y, (d + 1) * 4);
+ gSprites[spriteId].oam.paletteNum = d;
+ gSprites[spriteId].oam.priority = 1;
+ return spriteId;
+}
+
+static u8 sub_813CFA8(u16 a, u16 b, u16 c, u16 d)
+{
+ u8 spriteId;
+
+ DecompressPicFromTable_2(&gTrainerBackPicTable[a], gTrainerBackPicCoords[a].x, gTrainerBackPicCoords[a].y, (void *)0x2000000, gUnknown_0840B5A0[d], a);
+ LoadCompressedPalette(gTrainerBackPicPaletteTable[a].data, 0x100 + d * 0x10, 0x20);
+ sub_8143680(d, d);
+ gUnknown_02024E8C.anims = gUnknown_0840B064;
+ spriteId = CreateSprite(&gUnknown_02024E8C, b, c, 1);
+ gSprites[spriteId].oam.paletteNum = d;
+ gSprites[spriteId].oam.priority = 1;
+ return spriteId;
+}
+
+static void sub_813D084(u8 a)
+{
+ u16 color;
+
+ switch (a)
+ {
+ default:
+ case 0:
+ color = RGB(22, 31, 15);
+ break;
+ case 1:
+ color = RGB(31, 14, 12);
+ break;
+ case 2:
+ color = RGB(12, 12, 20);
+ break;
+ }
+ gPlttBufferUnfaded[241] = color;
+ gPlttBufferFaded[241] = color;
+}
+
+void sub_813D0CC(struct Sprite *sprite)
+{
+ u8 r0;
+
+ if (sprite->data2 >= 192)
+ {
+ if (sprite->data3 != 0)
+ {
+ sprite->data3--;
+ }
+ else
+ {
+ sprite->invisible = FALSE;
+ SetOamMatrix(sprite->data1, sprite->data2, 0, 0, sprite->data2);
+ sprite->data2 = (sprite->data2 * 95) / 100;
+ r0 = (sprite->data2 - 192) / 128 + 9;
+ if (r0 > 15)
+ r0 = 15;
+ sprite->oam.paletteNum = r0;
+ }
+ }
+ else
+ {
+ DestroySprite(sprite);
+ }
+}
+
+void sub_813D158(struct Sprite *sprite)
+{
+ if (gSprites[sprite->data7].data7 != 0)
+ {
+ sprite->invisible = TRUE;
+ sprite->pos1.x += sprite->pos2.x;
+ sprite->pos1.y += sprite->pos2.y;
+ StartSpriteAnim(sprite, 3);
+ sprite->data2 = 1024;
+ sprite->data3 = 8 * (sprite->data1 & 3);
+ sprite->callback = sub_813D0CC;
+ sprite->oam.shape = 1;
+ sprite->oam.size = 3;
+ CalcCenterToCornerVec(sprite, 1, 3, 2);
+ }
+ else
+ {
+ sprite->pos2.x = gSprites[sprite->data7].pos2.x;
+ sprite->pos2.y = gSprites[sprite->data7].pos2.y;
+ sprite->pos1.x = gSprites[sprite->data7].pos1.x;
+ sprite->pos1.y = gSprites[sprite->data7].pos1.y;
+ }
+}
+
+void sub_813D208(struct Sprite *sprite)
+{
+ if (sprite->data0 != 0)
+ sprite->callback = sub_813D220;
+}
+
+void sub_813D220(struct Sprite *sprite)
+{
+ if (sprite->pos1.x <= 116)
+ {
+ sprite->pos1.y += sprite->pos2.y;
+ sprite->pos2.y = 0;
+ sprite->pos1.x += 4;
+ sprite->pos2.x = -4;
+ sprite->data4 = 128;
+ sprite->callback = sub_813D368;
+ }
+ else
+ {
+ u16 data2;
+ u16 data3;
+ u16 data4;
+ s16 sin1;
+ s16 sin2;
+ s16 sin3;
+ s16 sin4;
+ s16 var1;
+ s16 var2;
+ s16 var3;
+ s16 var4;
+ s16 temp;
+
+ data4 = sprite->data4;
+ sin1 = gSineTable[(u8)data4];
+ sin2 = gSineTable[(u8)(data4 + 64)];
+ sprite->data4 += 2;
+ sprite->pos2.y = sin1 / 32;
+ sprite->pos1.x--;
+ if (sprite->pos1.x & 1)
+ sprite->pos1.y++;
+ temp = -sin2 / 16;
+ data2 = sprite->data2;
+ data3 = sprite->data3;
+ sin3 = gSineTable[(u8)(temp - 16)];
+ sin4 = gSineTable[(u8)(temp + 48)];
+ var1 = sin4 * data2 / 256;
+ var2 = -sin3 * data3 / 256;
+ var3 = sin3 * data2 / 256;
+ var4 = sin4 * data3 / 256;
+ SetOamMatrix(sprite->data1, data2, 0, 0, data3);
+ SetOamMatrix(sprite->data1 + 1, var1, var3, var2, var4);
+ SetOamMatrix(sprite->data1 + 2, var1, var3, var2 * 2, var4 * 2);
+ }
+}
+
+void sub_813D368(struct Sprite *sprite)
+{
+ SetOamMatrix(sprite->data1, sprite->data6 + 64, 0, 0, sprite->data6 + 64);
+ SetOamMatrix(sprite->data1 + 1, sprite->data6 + 64, 0, 0, sprite->data6 + 64);
+ SetOamMatrix(sprite->data1 + 2, sprite->data6 + 64, 0, 0, sprite->data6 + 64);
+ if (sprite->data4 != 64)
+ {
+ u16 data4;
+
+ sprite->data4 -= 8;
+ data4 = sprite->data4;
+ sprite->pos2.x = gSineTable[(u8)(data4 + 64)] / 64;
+ sprite->pos2.y = gSineTable[(u8)data4] / 64;
+ }
+ else
+ {
+ sprite->data4 = 0;
+ sprite->callback = sub_813D414;
+ }
+}
+
+void sub_813D414(struct Sprite *sprite)
+{
+ if (sprite->data0 != 2)
+ {
+ s16 r2;
+
+ sprite->data4 += 8;
+ r2 = gSineTable[(u8)sprite->data4] / 16 + 64;
+ sprite->pos2.x = gSineTable[(u8)(r2 + 64)] / 64;
+ sprite->pos2.y = gSineTable[(u8)r2] / 64;
+ }
+ else
+ {
+ sprite->callback = SpriteCB_WaterDropFall;
+ }
+}
+
+void SpriteCB_WaterDropFall(struct Sprite *sprite)
+{
+ if (sprite->pos1.y < sprite->data5)
+ {
+ sprite->pos1.y += 4;
+ }
+ else
+ {
+ sprite->data7 = 1;
+ sprite->invisible = TRUE;
+ sprite->pos1.x += sprite->pos2.x;
+ sprite->pos1.y += sprite->pos2.y;
+ StartSpriteAnim(sprite, 3);
+ sprite->data2 = 1024;
+ sprite->data3 = 8 * (sprite->data1 & 3);
+ sprite->callback = sub_813D0CC;
+ sprite->oam.shape = 1;
+ sprite->oam.size = 3;
+ CalcCenterToCornerVec(sprite, 1, 3, 2);
+ }
+}
+
+//Duplicate function
+void SpriteCB_WaterDropFall_2(struct Sprite *sprite)
+{
+ if (sprite->pos1.y < sprite->data5)
+ {
+ sprite->pos1.y += 4;
+ }
+ else
+ {
+ sprite->data7 = 1;
+ sprite->invisible = TRUE;
+ sprite->pos1.x += sprite->pos2.x;
+ sprite->pos1.y += sprite->pos2.y;
+ StartSpriteAnim(sprite, 3);
+ sprite->data2 = 1024;
+ sprite->data3 = 8 * (sprite->data1 & 3);
+ sprite->callback = sub_813D0CC;
+ sprite->oam.shape = 1;
+ sprite->oam.size = 3;
+ CalcCenterToCornerVec(sprite, 1, 3, 2);
+ }
+}
+
+static u8 CreateWaterDrop(s16 x, s16 y, u16 c, u16 d, u16 e, u8 fallImmediately)
+{
+ u8 spriteId;
+ u8 oldSpriteId;
+
+ spriteId = CreateSprite(&gSpriteTemplate_840AE20, x, y, 0);
+ gSprites[spriteId].data0 = 0;
+ gSprites[spriteId].data7 = 0;
+ gSprites[spriteId].data1 = d;
+ gSprites[spriteId].data2 = c;
+ gSprites[spriteId].data3 = c;
+ gSprites[spriteId].data5 = e;
+ gSprites[spriteId].data6 = c;
+ gSprites[spriteId].oam.affineMode = 3;
+ gSprites[spriteId].oam.matrixNum = d;
+ CalcCenterToCornerVec(&gSprites[spriteId], 0, 2, 2);
+ StartSpriteAnim(&gSprites[spriteId], 2);
+ if (!fallImmediately)
+ gSprites[spriteId].callback = sub_813D208;
+ else
+ gSprites[spriteId].callback = SpriteCB_WaterDropFall_2;
+ oldSpriteId = spriteId;
+
+ spriteId = CreateSprite(&gSpriteTemplate_840AE20, x, y, 0);
+ gSprites[spriteId].data7 = oldSpriteId;
+ gSprites[spriteId].data1 = d + 1;
+ gSprites[spriteId].oam.affineMode = 3;
+ gSprites[spriteId].oam.matrixNum = d + 1;
+ CalcCenterToCornerVec(&gSprites[spriteId], 0, 2, 2);
+ gSprites[spriteId].callback = sub_813D158;
+
+ spriteId = CreateSprite(&gSpriteTemplate_840AE20, x, y, 0);
+ gSprites[spriteId].data7 = oldSpriteId;
+ gSprites[spriteId].data1 = d + 2;
+ StartSpriteAnim(&gSprites[spriteId], 1);
+ gSprites[spriteId].oam.affineMode = 3;
+ gSprites[spriteId].oam.matrixNum = d + 2;
+ CalcCenterToCornerVec(&gSprites[spriteId], 0, 2, 2);
+ gSprites[spriteId].callback = sub_813D158;
+
+ SetOamMatrix(d, c + 32, 0, 0, c + 32);
+ SetOamMatrix(d + 1, c + 32, 0, 0, c + 32);
+ SetOamMatrix(d + 2, c + 32, 0, 0, 2 * (c + 32));
+
+ return oldSpriteId;
+}
+
+void sub_813D788(struct Sprite *sprite)
+{
+ switch (sprite->data0)
+ {
+ case 0:
+ StartSpriteAnimIfDifferent(sprite, 0);
+ sprite->pos1.x--;
+ break;
+ case 1:
+ StartSpriteAnimIfDifferent(sprite, 0);
+ if (gIntroFrameCounter & 7)
+ return;
+ sprite->pos1.x++;
+ break;
+ case 2:
+ StartSpriteAnimIfDifferent(sprite, 2);
+ if (sprite->pos1.x <= 120 || (gIntroFrameCounter & 7))
+ sprite->pos1.x++;
+ break;
+ case 3:
+ StartSpriteAnimIfDifferent(sprite, 3);
+ break;
+ case 4:
+ StartSpriteAnimIfDifferent(sprite, 0);
+ if (sprite->pos1.x > -32)
+ sprite->pos1.x -= 2;
+ break;
+ }
+ if (gIntroFrameCounter & 7)
+ return;
+ if (sprite->pos2.y != 0)
+ {
+ sprite->pos2.y = 0;
+ }
+ else
+ {
+ switch (Random() & 3)
+ {
+ case 0:
+ sprite->pos2.y = -1;
+ break;
+ case 1:
+ sprite->pos2.y = 1;
+ break;
+ case 2:
+ case 3:
+ sprite->pos2.y = 0;
+ break;
+ }
+ }
+}
+
+void sub_813D880(struct Sprite *sprite)
+{
+ switch (sprite->data0)
+ {
+ case 0:
+ break;
+ case 1:
+ if (sprite->pos2.x + sprite->pos1.x < 304)
+ sprite->pos2.x += 8;
+ else
+ sprite->data0 = 2;
+ break;
+ case 2:
+ if (sprite->pos2.x + sprite->pos1.x > 120)
+ sprite->pos2.x -= 1;
+ else
+ sprite->data0 = 3;
+ break;
+ case 3:
+ if (sprite->pos2.x > 0)
+ sprite->pos2.x -= 2;
+ break;
+ }
+ sprite->pos2.y = Sin((u8)sprite->data1, 8) - gUnknown_0203935A;
+ sprite->data1 += 4;
+}
+
+void sub_813D908(struct Sprite *sprite)
+{
+ if (gTasks[sprite->data0].data[0] == 0)
+ {
+ sprite->invisible = TRUE;
+ }
+ else if (gTasks[sprite->data0].data[0] != 4)
+ {
+ sprite->invisible = FALSE;
+ }
+ else
+ {
+ DestroySprite(sprite);
+ }
+}
+
+static u8 CreateGameFreakLogo(s16 a, s16 b, u8 c)
+{
+ u8 spriteId;
+ u16 i;
+
+ for (i = 0; i < 9; i++)
+ {
+ spriteId = CreateSprite(&gSpriteTemplate_840AF94, gUnknown_0840AF50[i][1] + a, b - 4, 0);
+ gSprites[spriteId].data0 = c;
+ StartSpriteAnim(&gSprites[spriteId], gUnknown_0840AF50[i][0]);
+ }
+ for (i = 0; i < 8; i++)
+ {
+ spriteId = CreateSprite(&gSpriteTemplate_840AFAC, gUnknown_0840AF74[i][1] + a, b + 12, 0);
+ gSprites[spriteId].data0 = c;
+ StartSpriteAnim(&gSprites[spriteId], gUnknown_0840AF74[i][0]);
+ }
+ spriteId = CreateSprite(&gSpriteTemplate_840AFC4, 120, b - 4, 0);
+ gSprites[spriteId].data0 = c;
+
+ return spriteId;
+}
+
+#ifdef NONMATCHING
+void sub_813DA64(struct Sprite *sprite)
+{
+ sprite->data7++;
+
+ switch(sprite->data0)
+ {
+ case 0:
+ default:
+ sprite->oam.affineMode = 3;
+ sprite->oam.matrixNum = 1;
+ CalcCenterToCornerVec(sprite, 1, 3, 3);
+ sprite->invisible = FALSE;
+ sprite->data0 = 1;
+ sprite->data1 = 128;
+ sprite->data2 = -24;
+ sprite->data3 = 0;
+ break;
+ case 1:
+ {
+ s16 r3;
+ s16 sin1;
+ s16 r6;
+ s16 foo;
+ s16 r5;
+ s16 r2;
+
+ //_0813DAC0
+ if (sprite->data3 < 0x50)
+ {
+ sprite->pos2.y = -Sin((u8)sprite->data3, 0x78);
+ sprite->pos2.x = -Sin((u8)sprite->data3, 0x8C);
+ if (sprite->data3 > 64)
+ sprite->oam.priority = 3;
+ }
+ //_0813DAF8
+ r3 = gSineTable[(u8)sprite->data2];
+ sin1 = gSineTable[(u8)(sprite->data2 + 64)];
+ r6 = sin1 * sprite->data1 / 256;
+ foo = sin1 * sprite->data1 / 256;
+ r5 = -r3 * sprite->data1 / 256;
+ r2 = r3 * sprite->data1 / 256;
+
+ SetOamMatrix(1, r6, r2, r5, foo);
+
+ if (sprite->data1 < 0x100)
+ sprite->data1 += 8;
+ else
+ sprite->data1 += 32;
+ if (sprite->data2 < 0x18)
+ sprite->data2 += 1;
+ if (sprite->data3 < 64)
+ sprite->data3 += 2;
+ else if (!(sprite->data7 & 3))
+ sprite->data3 += 1;
+ break;
+ }
+ }
+ //_0813DB92
+}
+#else
+__attribute__((naked))
+void sub_813DA64(struct Sprite *sprite)
+{
+ asm(".syntax unified\n\
+ push {r4-r6,lr}\n\
+ sub sp, 0x4\n\
+ adds r4, r0, 0\n\
+ ldrh r0, [r4, 0x3C]\n\
+ adds r0, 0x1\n\
+ strh r0, [r4, 0x3C]\n\
+ movs r1, 0x2E\n\
+ ldrsh r0, [r4, r1]\n\
+ cmp r0, 0\n\
+ beq _0813DA7C\n\
+ cmp r0, 0x1\n\
+ beq _0813DAC0\n\
+_0813DA7C:\n\
+ ldrb r0, [r4, 0x1]\n\
+ movs r1, 0x3\n\
+ orrs r0, r1\n\
+ strb r0, [r4, 0x1]\n\
+ ldrb r1, [r4, 0x3]\n\
+ movs r0, 0x3F\n\
+ negs r0, r0\n\
+ ands r0, r1\n\
+ movs r1, 0x2\n\
+ orrs r0, r1\n\
+ strb r0, [r4, 0x3]\n\
+ adds r0, r4, 0\n\
+ movs r1, 0x1\n\
+ movs r2, 0x3\n\
+ movs r3, 0x3\n\
+ bl CalcCenterToCornerVec\n\
+ adds r2, r4, 0\n\
+ adds r2, 0x3E\n\
+ ldrb r1, [r2]\n\
+ movs r0, 0x5\n\
+ negs r0, r0\n\
+ ands r0, r1\n\
+ strb r0, [r2]\n\
+ movs r0, 0x1\n\
+ strh r0, [r4, 0x2E]\n\
+ movs r0, 0x80\n\
+ strh r0, [r4, 0x30]\n\
+ ldr r0, _0813DABC @ =0x0000ffe8\n\
+ strh r0, [r4, 0x32]\n\
+ movs r0, 0\n\
+ b _0813DB92\n\
+ .align 2, 0\n\
+_0813DABC: .4byte 0x0000ffe8\n\
+_0813DAC0:\n\
+ ldrh r1, [r4, 0x34]\n\
+ movs r2, 0x34\n\
+ ldrsh r0, [r4, r2]\n\
+ cmp r0, 0x4F\n\
+ bgt _0813DAF8\n\
+ lsls r0, r1, 24\n\
+ lsrs r0, 24\n\
+ movs r1, 0x78\n\
+ bl Sin\n\
+ negs r0, r0\n\
+ strh r0, [r4, 0x26]\n\
+ ldrh r0, [r4, 0x34]\n\
+ lsls r0, 24\n\
+ lsrs r0, 24\n\
+ movs r1, 0x8C\n\
+ bl Sin\n\
+ negs r0, r0\n\
+ strh r0, [r4, 0x24]\n\
+ movs r1, 0x34\n\
+ ldrsh r0, [r4, r1]\n\
+ cmp r0, 0x40\n\
+ ble _0813DAF8\n\
+ ldrb r0, [r4, 0x5]\n\
+ movs r1, 0xC\n\
+ orrs r0, r1\n\
+ strb r0, [r4, 0x5]\n\
+_0813DAF8:\n\
+ ldr r2, _0813DB60 @ =gSineTable\n\
+ ldrh r1, [r4, 0x32]\n\
+ lsls r0, r1, 24\n\
+ lsrs r0, 23\n\
+ adds r0, r2\n\
+ ldrh r3, [r0]\n\
+ adds r1, 0x40\n\
+ lsls r1, 24\n\
+ lsrs r1, 23\n\
+ adds r1, r2\n\
+ movs r2, 0\n\
+ ldrsh r0, [r1, r2]\n\
+ movs r1, 0x30\n\
+ ldrsh r2, [r4, r1]\n\
+ adds r1, r0, 0\n\
+ muls r1, r2\n\
+ adds r0, r1, 0\n\
+ cmp r1, 0\n\
+ bge _0813DB20\n\
+ adds r0, 0xFF\n\
+_0813DB20:\n\
+ lsls r0, 8\n\
+ lsrs r6, r0, 16\n\
+ lsls r0, r3, 16\n\
+ asrs r3, r0, 16\n\
+ negs r0, r3\n\
+ muls r0, r2\n\
+ cmp r0, 0\n\
+ bge _0813DB32\n\
+ adds r0, 0xFF\n\
+_0813DB32:\n\
+ lsls r0, 8\n\
+ lsrs r5, r0, 16\n\
+ adds r0, r3, 0\n\
+ muls r0, r2\n\
+ cmp r0, 0\n\
+ bge _0813DB40\n\
+ adds r0, 0xFF\n\
+_0813DB40:\n\
+ lsls r0, 8\n\
+ lsrs r2, r0, 16\n\
+ adds r1, r6, 0\n\
+ adds r3, r5, 0\n\
+ str r1, [sp]\n\
+ movs r0, 0x1\n\
+ bl SetOamMatrix\n\
+ ldrh r1, [r4, 0x30]\n\
+ movs r2, 0x30\n\
+ ldrsh r0, [r4, r2]\n\
+ cmp r0, 0xFF\n\
+ bgt _0813DB64\n\
+ adds r0, r1, 0\n\
+ adds r0, 0x8\n\
+ b _0813DB68\n\
+ .align 2, 0\n\
+_0813DB60: .4byte gSineTable\n\
+_0813DB64:\n\
+ adds r0, r1, 0\n\
+ adds r0, 0x20\n\
+_0813DB68:\n\
+ strh r0, [r4, 0x30]\n\
+ ldrh r1, [r4, 0x32]\n\
+ movs r2, 0x32\n\
+ ldrsh r0, [r4, r2]\n\
+ cmp r0, 0x17\n\
+ bgt _0813DB78\n\
+ adds r0, r1, 0x1\n\
+ strh r0, [r4, 0x32]\n\
+_0813DB78:\n\
+ ldrh r2, [r4, 0x34]\n\
+ movs r1, 0x34\n\
+ ldrsh r0, [r4, r1]\n\
+ cmp r0, 0x3F\n\
+ bgt _0813DB86\n\
+ adds r0, r2, 0x2\n\
+ b _0813DB92\n\
+_0813DB86:\n\
+ ldrh r1, [r4, 0x3C]\n\
+ movs r0, 0x3\n\
+ ands r0, r1\n\
+ cmp r0, 0\n\
+ bne _0813DB94\n\
+ adds r0, r2, 0x1\n\
+_0813DB92:\n\
+ strh r0, [r4, 0x34]\n\
+_0813DB94:\n\
+ add sp, 0x4\n\
+ pop {r4-r6}\n\
+ pop {r0}\n\
+ bx r0\n\
+ .syntax divided\n");
+}
+#endif
+
+void sub_813DB9C(struct Sprite *sprite)
+{
+ switch (sprite->data0)
+ {
+ case 0:
+ default:
+ if (sprite->data2 != 0)
+ sprite->hFlip = TRUE;
+ else
+ sprite->hFlip = FALSE;
+ sprite->data0 = 1;
+ //fall through
+ case 1:
+ if (sprite->pos1.y > 96)
+ {
+ sprite->pos1.y -= 4;
+ if (sprite->data2 != 0)
+ sprite->pos1.x += 2;
+ else
+ sprite->pos1.x -= 2;
+ }
+ else
+ {
+ sprite->data0++;
+ sprite->data3 = 8;
+ }
+ break;
+ case 2:
+ if (sprite->data3 != 0)
+ {
+ sprite->data3--;
+ }
+ else
+ {
+ sprite->data0++;
+ sprite->data3 = 0; //redundant?
+ }
+ break;
+ case 3:
+ sprite->oam.affineMode = 3;
+ sprite->oam.matrixNum = sprite->data1;
+ CalcCenterToCornerVec(sprite, 0, 3, 3);
+ if (sprite->data2 != 0)
+ SetOamMatrix(sprite->data1, -256, 0, 0, 256);
+ else
+ SetOamMatrix(sprite->data1, 256, 0, 0, 256);
+ sprite->data0++;
+ sprite->data4 = 0;
+ break;
+ case 4:
+ sprite->data4++;
+ if (sprite->pos1.y + sprite->pos2.y > -32
+ && sprite->pos1.x + sprite->pos2.x > -64)
+ {
+ u16 r2;
+
+ sprite->pos2.y = -(sprite->data4 * sprite->data4) / 8;
+ if (sprite->data2 != 0)
+ sprite->pos2.x += sprite->data4;
+ else
+ sprite->pos2.x -= sprite->data4;
+ if (sprite->data3 < 128)
+ sprite->data3 += 8;
+ r2 = 256 - sprite->data3;
+ if (sprite->data2 != 0)
+ SetOamMatrix(sprite->data1, -r2, 0, 0, r2);
+ else
+ SetOamMatrix(sprite->data1, r2, 0, 0, r2);
+ }
+ else
+ {
+ DestroySprite(sprite);
+ }
+ }
+}
+
+void sub_813DD58(struct Sprite *sprite)
+{
+ switch (sprite->data0)
+ {
+ case 0:
+ default:
+ sprite->invisible = FALSE;
+ sprite->oam.affineMode = 1;
+ sprite->oam.matrixNum = sprite->data1;
+ sprite->data3 = 2048;
+ sprite->data0 = 1;
+ //fall through
+ case 1:
+ if (sprite->data3 > 256)
+ {
+ sprite->data3 -= 128;
+ if (sprite->data2 != 0)
+ SetOamMatrix(sprite->data1, -sprite->data3, 0, 0, sprite->data3);
+ else
+ SetOamMatrix(sprite->data1, sprite->data3, 0, 0, sprite->data3);
+ }
+ else
+ {
+ if (sprite->data2 != 0)
+ SetOamMatrix(sprite->data1, -256, 0, 0, 256);
+ else
+ SetOamMatrix(sprite->data1, 256, 0, 0, 256);
+ sprite->data0++;
+ }
+ break;
+ case 2:
+ break;
+ case 3:
+ sprite->data4++;
+ sprite->pos2.y = sprite->data4 * sprite->data4 / 32;
+ if (sprite->data2 != 0)
+ sprite->pos2.x = sprite->data4 / 4;
+ else
+ sprite->pos2.x = -(sprite->data4 / 4);
+ break;
+ }
+}
+
+void sub_813DE70(struct Sprite *sprite)
+{
+ switch (sprite->data0)
+ {
+ case 0:
+ default:
+ if (sprite->pos1.x > 40)
+ {
+ sprite->pos1.x -= 4;
+ }
+ else
+ {
+ StartSpriteAnim(sprite, 1);
+ sprite->data6 = CreateSprite(&gSpriteTemplate_840B084, 16, 104, 100);
+ sprite->data7 = CreateSprite(&gSpriteTemplate_840B084, 12, 106, 101);
+ sprite->data0 = 1;
+ }
+ break;
+ case 1:
+ break;
+ case 2:
+ StartSpriteAnim(sprite, 2);
+ gSprites[sprite->data6].data0 = 1;
+ gSprites[sprite->data7].data0 = 2;
+ sprite->data0++;
+ break;
+ case 3:
+ if (sprite->pos1.y > 160)
+ {
+ sprite->invisible = 1;
+ sprite->data0 = 1;
+ }
+ else
+ {
+ sprite->pos1.y += 2;
+ sprite->pos1.x--;
+ }
+ break;
+ case 4:
+ {
+ s16 r4, r5;
+
+ r5 = gSprites[sprite->data6].pos1.x + gSprites[sprite->data6].pos2.x;
+ r4 = gSprites[sprite->data6].pos1.y + gSprites[sprite->data6].pos2.y;
+ DestroySprite(&gSprites[sprite->data6]);
+ sprite->data6 = sub_813CE88(SPECIES_TORCHIC, r5, r4, 2, 1);
+ gSprites[sprite->data6].callback = sub_813DD58;
+ gSprites[sprite->data6].invisible = TRUE;
+ gSprites[sprite->data6].data1 = 1;
+ gSprites[sprite->data6].data2 = 1;
+ sub_813E580(r5, r4);
+
+ r5 = gSprites[sprite->data7].pos1.x + gSprites[sprite->data7].pos2.x;
+ r4 = gSprites[sprite->data7].pos1.y + gSprites[sprite->data7].pos2.y;
+ DestroySprite(&gSprites[sprite->data7]);
+ sprite->data7 = sub_813CE88(SPECIES_MUDKIP, r5, r4, 3, 1);
+ gSprites[sprite->data7].callback = sub_813DD58;
+ gSprites[sprite->data7].invisible = TRUE;
+ gSprites[sprite->data7].data1 = 2;
+ gSprites[sprite->data7].data2 = 0;
+ sub_813E580(r5, r4);
+
+ BeginNormalPaletteFade(0xFF0000, 0, 16, 16, RGB(31, 23, 31));
+ sprite->data0 = 1;
+ break;
+ }
+ case 5:
+ gSprites[sprite->data6].data0 = 3;
+ gSprites[sprite->data7].data0 = 3;
+ break;
+ case 6:
+ DestroySprite(&gSprites[sprite->data6]);
+ DestroySprite(&gSprites[sprite->data7]);
+ DestroySprite(sprite);
+ break;
+ }
+}
+
+void sub_813E10C(struct Sprite *sprite)
+{
+ switch (sprite->data0)
+ {
+ case 0:
+ default:
+ if (sprite->pos2.x > -56)
+ {
+ sprite->pos2.x -= 8;
+ sprite->pos2.y += 6;
+ }
+ else
+ {
+ sprite->data6 = sprite->pos1.x;
+ sprite->data7 = sprite->pos1.y;
+ sprite->pos1.x += sprite->pos2.x;
+ sprite->pos1.y += sprite->pos2.y;
+ sprite->pos2.x = 0;
+ sprite->pos2.y = 0;
+ sprite->data0 = 1;
+ sprite->data1 = 0;
+ }
+ break;
+ case 1:
+ if (!(sprite->data1 & 1))
+ {
+ if (sprite->data1 & 2)
+ {
+ sprite->pos2.x = -1;
+ sprite->pos2.y = 1;
+ }
+ else
+ {
+ sprite->pos2.x = 0;
+ sprite->pos2.y = 0;
+ }
+ }
+ sprite->data1++;
+ break;
+ case 2:
+ sprite->invisible = TRUE;
+ sprite->pos1.x = sprite->data6;
+ sprite->pos1.y = sprite->data7;
+ sprite->pos2.x = 0;
+ sprite->pos2.y = 0;
+ break;
+ case 3:
+ sprite->invisible = FALSE;
+ sprite->data1++;
+ //fall through
+ case 4:
+ if (sprite->pos2.x > -56)
+ {
+ sprite->pos2.x -= 4;
+ sprite->pos2.y += 3;
+ }
+ else
+ {
+ sprite->pos1.x += sprite->pos2.x;
+ sprite->pos1.y += sprite->pos2.y;
+ sprite->pos2.x = 0;
+ sprite->pos2.y = 0;
+ sprite->data0 = 1;
+ }
+ break;
+ }
+}
+
+void sub_813E210(struct Sprite *sprite)
+{
+ switch (sprite->data0)
+ {
+ case 0:
+ default:
+ if (sprite->pos2.x < 56)
+ {
+ sprite->pos2.x += 8;
+ sprite->pos2.y -= 6;
+ }
+ else
+ {
+ sprite->data6 = sprite->pos1.x;
+ sprite->data7 = sprite->pos1.y;
+ sprite->pos1.x += sprite->pos2.x;
+ sprite->pos1.y += sprite->pos2.y;
+ sprite->pos2.x = 0;
+ sprite->pos2.y = 0;
+ sprite->data0 = 1;
+ sprite->data1 = 0;
+ }
+ break;
+ case 1:
+ if (!(sprite->data1 & 1))
+ {
+ if (sprite->data1 & 2)
+ {
+ sprite->pos2.x = 1;
+ sprite->pos2.y = -1;
+ }
+ else
+ {
+ sprite->pos2.x = 0;
+ sprite->pos2.y = 0;
+ }
+ }
+ sprite->data1++;
+ break;
+ case 2:
+ sprite->invisible = TRUE;
+ sprite->pos1.x = sprite->data6;
+ sprite->pos1.y = sprite->data7;
+ sprite->pos2.x = 0;
+ sprite->pos2.y = 0;
+ break;
+ case 3:
+ sprite->invisible = FALSE;
+ sprite->data1++;
+ //fall through
+ case 4:
+ if (sprite->pos2.x < 56)
+ {
+ sprite->pos2.x += 4;
+ sprite->pos2.y -= 3;
+ }
+ else
+ {
+ sprite->pos1.x += sprite->pos2.x;
+ sprite->pos1.y += sprite->pos2.y;
+ sprite->pos2.x = 0;
+ sprite->pos2.y = 0;
+ sprite->data0 = 1;
+ }
+ break;
+ }
+}
+
+void sub_813E30C(struct Sprite *sprite)
+{
+ u16 r4, r1;
+
+ sprite->data7++;
+ switch (sprite->data0)
+ {
+ case 0:
+ default:
+ break;
+ case 1:
+ sprite->oam.affineMode = 1;
+ sprite->oam.matrixNum = 1;
+ sprite->data0 = 10;
+ sprite->data4 = 36;
+ //fall through
+ case 10:
+ if (sprite->pos1.x <= 144)
+ {
+ sprite->pos1.x += 4;
+ sprite->pos1.y -= 1;
+ sprite->pos2.y = -Sin((u8)sprite->data2, 24);
+ sprite->data2 += 4;
+ }
+ sprite->data3 -= sprite->data4;
+ if ((sprite->data7 & 1) && sprite->data4 != 0)
+ sprite->data4--;
+ r4 = gSineTable[(u8)sprite->data3];
+ r1 = gSineTable[(u8)(sprite->data3 + 64)];
+ SetOamMatrix(1, r1, r4, -r4, r1);
+ break;
+ case 2:
+ sprite->oam.affineMode = 1;
+ sprite->oam.matrixNum = 2;
+ sprite->data0 = 20;
+ sprite->data4 = 36;
+ //fall through
+ case 20:
+ if (sprite->pos1.x <= 96)
+ {
+ sprite->pos1.x += 3;
+ sprite->pos1.y -= 1;
+ sprite->pos2.y = -Sin((u8)sprite->data2, 24);
+ sprite->data2 += 4;
+ }
+ sprite->data3 -= sprite->data4;
+ if ((sprite->data7 & 1) && sprite->data4 != 0)
+ sprite->data4--;
+ r4 = gSineTable[(u8)sprite->data3];
+ r1 = gSineTable[(u8)(sprite->data3 + 64)];
+ SetOamMatrix(2, r1, r4, -r4, r1);
+ break;
+ }
+}
+
+void sub_813E4B8(struct Sprite *sprite)
+{
+ u16 r4;
+ u16 r2;
+ u16 r1;
+
+ sprite->data7++;
+ if (sprite->data7 & 1)
+ sprite->invisible = FALSE;
+ else
+ sprite->invisible = TRUE;
+ if (sprite->data2 >= 64)
+ {
+ DestroySprite(sprite);
+ return;
+ }
+ sprite->data2 += 2;
+ r4 = Sin((u8)sprite->data2, 40);
+ sprite->pos2.x = Cos((u8)(sprite->data0 * 32), r4);
+ sprite->pos2.y = Sin((u8)(sprite->data0 * 32), r4);
+ if (sprite->data0 == 0)
+ {
+ sprite->data3 -= sprite->data1;
+ if ((sprite->data7 & 1) && sprite->data1 != 0)
+ sprite->data1--;
+ r2 = gSineTable[(u8)sprite->data3];
+ r1 = gSineTable[(u8)(sprite->data3 + 64)];
+ SetOamMatrix(16, r1, r2, -r2, r1);
+ }
+}
+
+static void sub_813E580(u16 x, u16 y)
+{
+ u8 i;
+ u8 spriteId;
+
+ for (i = 0; i < 8; i++)
+ {
+ spriteId = CreateSprite(&gSpriteTemplate_840B0B0, x, y, 0);
+ gSprites[spriteId].oam.affineMode = 1;
+ gSprites[spriteId].oam.matrixNum = 16;
+ gSprites[spriteId].data0 = i;
+ gSprites[spriteId].data1 = 32;
+ }
+}
+
+void sub_813E5E0(struct Sprite *sprite)
+{
+ if (gUnknown_0203931A != 0)
+ {
+ DestroySprite(sprite);
+ }
+ else
+ {
+ sprite->invisible = gSprites[sprite->data0].invisible;
+ if (sprite->data7 < 12)
+ sprite->data7++;
+ sprite->data6 += 4;
+ sprite->pos1.x = sprite->data4 + gSineTable[(u8)(sprite->data3 + 64)] * sprite->data6 / 256;
+ //This useless '+ 0' is needed to make the asm match
+ sprite->pos1.y = sprite->data5 + gSineTable[(u8)(sprite->data3 + 0)] * sprite->data6 / 256;
+ sprite->pos2.y = gSineTable[(u8)(sprite->data1 + 0)] * sprite->data7 / 256;
+ sprite->data1 += 16;
+ if (sprite->pos1.y > sprite->data2)
+ DestroySprite(sprite);
+ }
+}
+
+void sub_813E6C0(struct Sprite *sprite)
+{
+ u8 spriteId;
+ u8 i;
+ s16 var1;
+ s16 var2;
+
+ if (gUnknown_0203931A != 0)
+ {
+ DestroySprite(sprite);
+ }
+ else
+ {
+ sprite->data7++;
+ sprite->invisible = TRUE;
+ if (gSprites[sprite->data0].data0 == 1 && !(sprite->data7 & 3))
+ {
+ var1 = sprite->data1 + gSprites[sprite->data0].pos1.x;
+ var2 = sprite->data2 + gSprites[sprite->data0].pos1.y;
+ for (i = 0; i < 3; i++)
+ {
+ u8 r3 = gSprites[sprite->data0].subpriority - 1;
+ //Make redundant copies of these variables to get the asm to match
+ s16 _var1 = var1;
+ s16 _var2 = var2;
+
+ spriteId = CreateSprite(&gSpriteTemplate_840B0DC, _var1, _var2, r3);
+ if (spriteId != 64)
+ {
+ gSprites[spriteId].data0 = sprite->data0;
+ gSprites[spriteId].data1 = (((sprite->data7 >> 2) & 7) << 5) + i * 85;
+ gSprites[spriteId].data2 = sprite->data3;
+ gSprites[spriteId].data3 = 104;
+ gSprites[spriteId].data4 = var1;
+ gSprites[spriteId].data5 = var2;
+ gSprites[spriteId].data6 = 0;
+ }
+ }
+ }
+ }
+}
+
+static void sub_813E7C0(u8 a)
+{
+ u8 spriteId;
+
+ spriteId = CreateSprite(&gSpriteTemplate_840B0F4, 0, 0, 0);
+ if (spriteId != 64)
+ {
+ gSprites[spriteId].data0 = a;
+ gSprites[spriteId].data1 = -12;
+ gSprites[spriteId].data2 = 0;
+ gSprites[spriteId].data3 = 136;
+ }
+}
+
+void sub_813E804(struct Sprite *sprite)
+{
+ if (gUnknown_0203931A != 0)
+ {
+ DestroySprite(sprite);
+ }
+ else
+ {
+ sprite->invisible = gSprites[sprite->data0].invisible;
+ sprite->data7++;
+ if (sprite->data3 < 40)
+ sprite->data3 += 2;
+ //This useless '+ 0' is needed to make the asm match
+ sprite->pos1.x = gSprites[sprite->data0].pos1.x + gSprites[sprite->data0].pos2.x + gSineTable[(u8)(sprite->data1 + 64)] * sprite->data3 / 256;
+ sprite->pos1.y = gSprites[sprite->data0].pos1.y + gSprites[sprite->data0].pos2.y + gSineTable[(u8)(sprite->data1 + 0)] * sprite->data3 / 512;
+ sprite->data1 += 2;
+ sprite->pos2.y = gSineTable[(u8)(sprite->data2 + 0)] / 32;
+ sprite->data2 += 8;
+ if ((sprite->data1 & 0xFF) < 128)
+ sprite->subpriority = gSprites[sprite->data0].subpriority - 1;
+ else
+ sprite->subpriority = gSprites[sprite->data0].subpriority + 1;
+ }
+}
+
+static void sub_813E930(u8 a)
+{
+ u8 i;
+ u8 spriteId;
+
+ for (i = 0; i < 8; i++)
+ {
+ spriteId = CreateSprite(&gSpriteTemplate_840B124, gSprites[a].pos1.x, gSprites[a].pos1.y, 0);
+ if (spriteId != 64)
+ {
+ gSprites[spriteId].data0 = a;
+ gSprites[spriteId].data1 = i * 32;
+ }
+ }
+}
+
+void sub_813E980(struct Sprite *sprite)
+{
+ if (gUnknown_0203931A != 0)
+ {
+ DestroySprite(sprite);
+ }
+ else
+ {
+ u8 r0;
+ u16 matrixNum;
+
+ sprite->invisible = gSprites[sprite->data0].invisible;
+ sprite->data7++;
+ sprite->data6 += 8;
+ sprite->pos1.x = sprite->data4 + gSineTable[(u8)(sprite->data3 + 64)] * sprite->data6 / 256;
+ sprite->pos1.y = sprite->data5 + gSineTable[(u8)(sprite->data3 + 0)] * sprite->data6 / 256;
+ r0 = sprite->data6 / 16;
+ if (r0 > 9)
+ r0 = 9;
+ matrixNum = (r0 + 18) & 31;
+ sprite->oam.matrixNum = matrixNum;
+ if (sprite->data6 > 160)
+ DestroySprite(sprite);
+ }
+}
+
+void sub_813EA60(struct Sprite *sprite)
+{
+ bool32 r6;
+ s16 r1, r2;
+ u8 spriteId;
+
+ if (gUnknown_0203931A != 0)
+ {
+ DestroySprite(sprite);
+ }
+ else
+ {
+ sprite->data7++;
+ sprite->invisible = TRUE;
+ if (gSprites[sprite->data0].data0 == 1)
+ {
+ r6 = (sprite->data7 & 1);
+ if (!r6)
+ {
+ r1 = sprite->data1 + gSprites[sprite->data0].pos1.x;
+ r2 = sprite->data2 + gSprites[sprite->data0].pos1.y;
+ spriteId = CreateSprite(&gSpriteTemplate_840B150, r1, r2, gSprites[sprite->data0].subpriority + 1);
+ if (spriteId != 64)
+ {
+ gSprites[spriteId].oam.affineMode = 3;
+ gSprites[spriteId].oam.matrixNum = 18;
+ CalcCenterToCornerVec(&gSprites[spriteId], 0, 1, 3);
+ gSprites[spriteId].data0 = sprite->data0;
+ gSprites[spriteId].data3 = gUnknown_0840B168[(sprite->data7 >> 1) & 7];
+ gSprites[spriteId].data4 = r1;
+ gSprites[spriteId].data5 = r2;
+ gSprites[spriteId].data6 = r6;
+ }
+ }
+ }
+ }
+}
+
+static void InitIntroTorchicAttackAnim(u8 a)
+{
+ u8 spriteId;
+ u8 i;
+
+ spriteId = CreateSprite(&gSpriteTemplate_840B170, 0, 0, 0);
+ if (spriteId != 64)
+ {
+ gSprites[spriteId].data0 = a;
+ gSprites[spriteId].data1 = 0;
+ gSprites[spriteId].data2 = 8;
+ gSprites[spriteId].data3 = 24;
+ }
+ for (i = 0; i < 10; i++)
+ {
+ SetOamMatrix(18 + i, gUnknown_0840B188[i], 0, 0, gUnknown_0840B188[i]);
+ }
+}
+
+void sub_813EBBC(struct Sprite *sprite)
+{
+ if (gUnknown_0203931A != 0)
+ {
+ DestroySprite(sprite);
+ }
+ else
+ {
+ sprite->invisible = gSprites[sprite->data0].invisible;
+ sprite->data7 += 1;
+ sprite->data6 += 8;
+ sprite->pos1.x = sprite->data4 + gSineTable[(u8)(sprite->data3 + 64)] * sprite->data6 / 256;
+ sprite->pos1.y = sprite->data5 + gSineTable[(u8)(sprite->data3 + 0)] * sprite->data6 / 256;
+ sprite->pos2.y = gSineTable[(u8)(sprite->data1 + 0)] / 64;
+ sprite->data1 += 16;
+ if (sprite->pos1.y < sprite->data2)
+ DestroySprite(sprite);
+ }
+}
+
+void sub_813EC90(struct Sprite *sprite)
+{
+ bool32 r6;
+ s16 r1, r2;
+ u8 spriteId;
+ u16 foo;
+
+ if (gUnknown_0203931A != 0)
+ {
+ DestroySprite(sprite);
+ }
+ else
+ {
+ sprite->data7++;
+ sprite->invisible = TRUE;
+ if (gSprites[sprite->data0].data0 == 1)
+ {
+ r6 = sprite->data7 & 1;
+ if (!r6)
+ {
+ r1 = sprite->data1 + gSprites[sprite->data0].pos1.x;
+ r2 = sprite->data2 + gSprites[sprite->data0].pos1.y;
+ spriteId = CreateSprite(&gSpriteTemplate_840B1B0, r1, r2, gSprites[sprite->data0].subpriority + 1);
+ if (spriteId != 64)
+ {
+ gSprites[spriteId].oam.affineMode = 3;
+ gSprites[spriteId].oam.matrixNum = 17;
+ CalcCenterToCornerVec(&gSprites[spriteId], 0, 1, 3);
+ gSprites[spriteId].data0 = sprite->data0;
+ gSprites[spriteId].data1 = ((sprite->data7 >> 2) & 7) << 5;
+ gSprites[spriteId].data2 = sprite->data3;
+ gSprites[spriteId].data3 = 232;
+ gSprites[spriteId].data4 = r1;
+ gSprites[spriteId].data5 = r2;
+ gSprites[spriteId].data6 = r6;
+ }
+ }
+ if (sprite->data6 < 112)
+ sprite->data6 += 4;
+ }
+ foo = 256 - gSineTable[(u8)sprite->data6] / 2;
+ SetOamMatrix(17, foo, 0, 0, foo);
+ }
+}
+
+static void InitIntroMudkipAttackAnim(u8 a)
+{
+ u8 spriteId;
+
+ spriteId = CreateSprite(&gSpriteTemplate_840B1C8, 0, 0, 0);
+ if (spriteId != 64)
+ {
+ gSprites[spriteId].data0 = a;
+ gSprites[spriteId].data1 = 0;
+ gSprites[spriteId].data2 = 12;
+ gSprites[spriteId].data3 = 24;
+ }
+}
+
+void sub_813EDFC(struct Sprite *sprite)
+{
+ u16 foo;
+
+ //I'm not sure why a switch statement was used here.
+ //if (sprite->data0 != 1) would have been more appropriate.
+ switch (sprite->data0)
+ {
+ case 0:
+ default:
+ sprite->invisible = FALSE;
+ sprite->oam.affineMode = 3;
+ sprite->oam.matrixNum = 18;
+ CalcCenterToCornerVec(sprite, 0, 3, 3);
+ sprite->data1 = 0;
+ sprite->data0 = 1;
+ //fall through
+ case 1:
+ break;
+ }
+ sprite->data7++;
+ if (sprite->data7 & 1)
+ {
+ sprite->invisible = TRUE;
+ }
+ else
+ {
+ sprite->invisible = FALSE;
+ if (sprite->data1 < 64)
+ sprite->data1++;
+ }
+ foo = 256 - gSineTable[(u8)sprite->data1] / 2;
+ SetOamMatrix(18, foo, 0, 0, foo);
+}
diff --git a/src/item.c b/src/item.c
index 8bc0cf0f0..3f74b5925 100644
--- a/src/item.c
+++ b/src/item.c
@@ -1,5 +1,5 @@
#include "global.h"
-#include "berry.h"
+#include "item.h"
#include "string_util.h"
extern struct Berry *GetBerryInfo(u8 berry);
@@ -7,8 +7,6 @@ extern struct Berry *GetBerryInfo(u8 berry);
extern u8 gOtherText_Berry2[];
extern u8 gUnknown_02038560;
-typedef void (*ItemUseFunc)(u8);
-
struct Item
{
u8 name[14];
@@ -46,8 +44,6 @@ enum
KEYITEMS_POCKET
};
-struct Item *ItemId_GetItem(u16);
-u8 ItemId_GetPocket(u16);
static void CompactPCItems(void);
void CopyItemName(u16 itemId, u8 *string)
@@ -62,7 +58,7 @@ void CopyItemName(u16 itemId, u8 *string)
}
//Unreferenced
-static s8 CountUsedBagPocketSlots(u8 pocket)
+s8 CountUsedBagPocketSlots(u8 pocket)
{
u8 i;
diff --git a/src/item_use.c b/src/item_use.c
new file mode 100644
index 000000000..557705460
--- /dev/null
+++ b/src/item_use.c
@@ -0,0 +1,414 @@
+#include "global.h"
+#include "task.h"
+#include "item.h"
+#include "palette.h"
+#include "weather.h"
+#include "string_util.h"
+#include "menu.h"
+#include "mail.h"
+#include "asm.h"
+#include "rom4.h"
+#include "metatile_behavior.h"
+#include "field_player_avatar.h"
+#include "event_data.h"
+#include "map_obj_lock.h"
+#include "script.h"
+#include "field_player_avatar.h"
+#include "sound.h"
+#include "songs.h"
+
+extern void (* const gExitToOverworldFuncList[])();
+extern void (* gUnknown_03005D00)(u8);
+extern void (* gUnknown_0300485C)(void);
+
+extern void HandleItemMenuPaletteFade(u8);
+extern void ExecuteItemUseFromBlackPalette(void);
+extern void DisplayItemMessageOnField(u8, u8*, TaskFunc, u16);
+extern void CleanUpItemMenuMessage(u8);
+extern void CleanUpOverworldMessage(u8);
+extern void ItemUseOutOfBattle_TMHM(u8);
+extern void ItemUseOutOfBattle_EvolutionStone(u8);
+extern void ItemUseOnFieldCB_Bike(u8);
+extern void ItemUseOnFieldCB_Rod(u8);
+extern void ItemUseOnFieldCB_Itemfinder(u8);
+extern void sub_80A5D04(void);
+extern bool8 IsBikingDisallowedByPlayer(void);
+extern void GetOnOffBike(u8);
+extern u8 GetPlayerDirectionTowardsHiddenItem(s16, s16);
+extern void SetPlayerDirectionTowardsItem(u8);
+extern void DisplayItemRespondingMessageAndExitItemfinder(u8);
+extern void RotatePlayerAndExitItemfinder(u8);
+
+extern u8 gOtherText_DadsAdvice[];
+extern u8 gOtherText_CantGetOffBike[];
+extern u8 gOtherText_NoResponse[];
+
+extern u8 gItemFinderDirections[];
+
+extern u16 gScriptItemId;
+
+bool8 ItemfinderCheckForHiddenItems(struct MapEvents *events, int);
+void RunItemfinderResults(u8);
+void ExitItemfinder(u8);
+
+void ExecuteSwitchToOverworldFromItemUse(u8 taskId)
+{
+ u8 taskData;
+
+ if(gScriptItemId == 0xAF)
+ taskData = gTasks[taskId].data[15] - 1;
+ else
+ taskData = ItemId_GetType(gScriptItemId) - 1;
+
+ gTasks[taskId].data[8] = (u32)gExitToOverworldFuncList[taskData] >> 16;
+ gTasks[taskId].data[9] = (u32)gExitToOverworldFuncList[taskData];
+ gTasks[taskId].func = HandleItemMenuPaletteFade;
+}
+
+void ItemMenu_ConfirmNormalFade(u8 var)
+{
+ ExecuteSwitchToOverworldFromItemUse(var);
+ BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0);
+}
+
+void ItemMenu_ConfirmComplexFade(u8 var)
+{
+ ExecuteSwitchToOverworldFromItemUse(var);
+ fade_screen(1, 0);
+}
+
+void SetUpItemUseOnFieldCallback(u8 taskId)
+{
+ if(gTasks[taskId].data[2] != 1)
+ {
+ gUnknown_0300485C = (void *)ExecuteItemUseFromBlackPalette;
+ ItemMenu_ConfirmNormalFade(taskId);
+ }
+ else
+ gUnknown_03005D00(taskId);
+}
+
+void HandleDeniedItemUseMessage(u8 var1, u8 playerMenuStatus, const u8 *var3)
+{
+ StringExpandPlaceholders(gStringVar4, var3);
+
+ switch(playerMenuStatus)
+ {
+ case 0: // Item Menu
+ MenuZeroFillWindowRect(0, 13, 13, 20);
+ DisplayItemMessageOnField(var1, gStringVar4, CleanUpItemMenuMessage, 1);
+ break;
+ default: // Field
+ DisplayItemMessageOnField(var1, gStringVar4, CleanUpOverworldMessage, 0);
+ break;
+ }
+}
+
+void DisplayDadsAdviceCannotUseItemMessage(u8 var1, u8 playerMenuStatus)
+{
+ HandleDeniedItemUseMessage(var1, playerMenuStatus, gOtherText_DadsAdvice);
+}
+
+void DisplayCantGetOffBikeItemMessage(u8 var1, u8 playerMenuStatus)
+{
+ HandleDeniedItemUseMessage(var1, playerMenuStatus, gOtherText_CantGetOffBike);
+}
+
+u8 CheckIfItemIsTMHMOrEvolutionStone(u16 itemId)
+{
+ if(ItemId_GetFieldFunc(itemId) == ItemUseOutOfBattle_TMHM)
+ return 1;
+ else if(ItemId_GetFieldFunc(itemId) == ItemUseOutOfBattle_EvolutionStone)
+ return 2;
+ else
+ return 0;
+}
+
+void ItemMenu_ReadMail(u8 taskId)
+{
+ struct MailStruct mailStruct;
+
+ if(!gPaletteFade.active)
+ {
+ mailStruct.itemId = gScriptItemId;
+ HandleReadMail(&mailStruct, sub_80A5D04, 0);
+ DestroyTask(taskId);
+ }
+}
+
+void ItemUseOutOfBattle_Mail(u8 taskId)
+{
+ BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0);
+ gTasks[taskId].func = ItemMenu_ReadMail;
+}
+
+void ItemUseOutOfBattle_Bike(u8 taskId)
+{
+ s16 x, y;
+ u8 tileBehavior;
+
+ PlayerGetDestCoords(&x, &y);
+ tileBehavior = MapGridGetMetatileBehaviorAt(x, y);
+
+ if(FlagGet(SYS_CYCLING_ROAD) == TRUE // on cycling road?
+ || MetatileBehavior_IsVerticalRail(tileBehavior) == TRUE
+ || MetatileBehavior_IsHorizontalRail(tileBehavior) == TRUE
+ || MetatileBehavior_IsIsolatedVerticalRail(tileBehavior) == TRUE
+ || MetatileBehavior_IsIsolatedHorizontalRail(tileBehavior) == TRUE)
+ {
+ DisplayCantGetOffBikeItemMessage(taskId, gTasks[taskId].data[2]);
+ }
+ else
+ {
+ if(IsBikingAllowedByMap() == TRUE && IsBikingDisallowedByPlayer() == FALSE)
+ {
+ gUnknown_03005D00 = (void *)ItemUseOnFieldCB_Bike;
+ SetUpItemUseOnFieldCallback(taskId);
+ }
+ else
+ DisplayDadsAdviceCannotUseItemMessage(taskId, gTasks[taskId].data[2]);
+ }
+}
+
+void ItemUseOnFieldCB_Bike(u8 taskId)
+{
+ if(ItemId_GetSecondaryId(gScriptItemId) == 0)
+ GetOnOffBike(2);
+ if(ItemId_GetSecondaryId(gScriptItemId) == 1)
+ GetOnOffBike(4);
+
+ sub_8064E2C();
+ ScriptContext2_Disable();
+ DestroyTask(taskId);
+}
+
+bool32 CanFish(void)
+{
+ s16 x, y;
+ u16 tileBehavior;
+
+ GetXYCoordsOneStepInFrontOfPlayer(&x, &y);
+ tileBehavior = MapGridGetMetatileBehaviorAt(x, y);
+
+ if (MetatileBehavior_IsWaterfall(tileBehavior))
+ return FALSE;
+
+ if (TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_4))
+ return FALSE;
+
+ if (!TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_SURFING))
+ {
+ if (IsPlayerFacingSurfableFishableWater())
+ return TRUE;
+ }
+ else
+ {
+ if (MetatileBehavior_IsSurfableWaterOrUnderwater(tileBehavior) && !MapGridIsImpassableAt(x, y))
+ return TRUE;
+ if (MetatileBehavior_IsBridge(tileBehavior) == TRUE)
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
+void ItemUseOutOfBattle_Rod(u8 taskId)
+{
+ if(CanFish() == TRUE)
+ {
+ gUnknown_03005D00 = (void *)ItemUseOnFieldCB_Rod;
+ SetUpItemUseOnFieldCallback(taskId);
+ }
+ else
+ DisplayDadsAdviceCannotUseItemMessage(taskId, gTasks[taskId].data[2]);
+}
+
+void ItemUseOnFieldCB_Rod(u8 taskId)
+{
+ StartFishing(ItemId_GetSecondaryId(gScriptItemId));
+ DestroyTask(taskId);
+}
+
+void ItemUseOutOfBattle_Itemfinder(u8 var)
+{
+ IncrementGameStat(0x27);
+ gUnknown_03005D00 = (void *)ItemUseOnFieldCB_Itemfinder;
+ SetUpItemUseOnFieldCallback(var);
+}
+
+void ItemUseOnFieldCB_Itemfinder(u8 taskId)
+{
+ if(ItemfinderCheckForHiddenItems(gMapHeader.events, taskId) == TRUE)
+ gTasks[taskId].func = RunItemfinderResults;
+ else
+ DisplayItemMessageOnField(taskId, gOtherText_NoResponse, ExitItemfinder, 0);
+}
+
+void RunItemfinderResults(u8 taskId)
+{
+ u8 playerDir;
+ u8 playerDirToItem;
+ u8 i;
+ s16 *data = gTasks[taskId].data;
+
+ if(!data[3])
+ {
+ if(data[4] == 4)
+ {
+ playerDirToItem = GetPlayerDirectionTowardsHiddenItem(data[0], data[1]);
+ if(playerDirToItem)
+ {
+ SetPlayerDirectionTowardsItem(gItemFinderDirections[playerDirToItem - 1]);
+ gTasks[taskId].func = DisplayItemRespondingMessageAndExitItemfinder;
+ }
+ else // player is above hidden item.
+ {
+ playerDir = player_get_direction_lower_nybble();
+
+ // rotate player clockwise depending on current direction.
+ for (i = 0; i < 4; i++)
+ if (playerDir == gItemFinderDirections[i])
+ data[5] = (i + 1) & 3;
+
+ gTasks[taskId].func = RotatePlayerAndExitItemfinder;
+ data[3] = 0;
+ data[2] = 0;
+ }
+ return;
+ }
+ PlaySE(SE_DAUGI); // play the itemfinder jingle 4 times before executing the itemfinder.
+ data[4]++;
+ }
+ data[3] = (data[3] + 1) & 0x1F;
+}
+
+void ExitItemfinder(u8 taskId)
+{
+ MenuZeroFillWindowRect(0, 14, 29, 19);
+ sub_8064E2C();
+ ScriptContext2_Disable();
+ DestroyTask(taskId);
+}
+
+// too much struct math.
+__attribute__((naked))
+bool8 ItemfinderCheckForHiddenItems(struct MapEvents *events, int var)
+{
+ asm(".syntax unified\n\
+ push {r4-r7,lr}\n\
+ mov r7, r9\n\
+ mov r6, r8\n\
+ push {r6,r7}\n\
+ sub sp, 0x4\n\
+ adds r5, r0, 0\n\
+ lsls r1, 24\n\
+ lsrs r6, r1, 24\n\
+ mov r4, sp\n\
+ adds r4, 0x2\n\
+ mov r0, sp\n\
+ adds r1, r4, 0\n\
+ bl PlayerGetDestCoords\n\
+ ldr r1, _080C9618 @ =gTasks\n\
+ lsls r0, r6, 2\n\
+ adds r0, r6\n\
+ lsls r0, 3\n\
+ adds r0, r1\n\
+ movs r1, 0\n\
+ strh r1, [r0, 0xC]\n\
+ movs r3, 0\n\
+ mov r9, r4\n\
+ ldrb r0, [r5, 0x3]\n\
+ cmp r3, r0\n\
+ bge _080C95FC\n\
+ subs r1, 0x5\n\
+ mov r8, r1\n\
+_080C9580:\n\
+ lsls r3, 16\n\
+ asrs r1, r3, 16\n\
+ ldr r2, [r5, 0x10]\n\
+ lsls r0, r1, 1\n\
+ adds r0, r1\n\
+ lsls r4, r0, 2\n\
+ adds r1, r4, r2\n\
+ ldrb r0, [r1, 0x5]\n\
+ adds r7, r3, 0\n\
+ cmp r0, 0x7\n\
+ bne _080C95EC\n\
+ movs r2, 0x96\n\
+ lsls r2, 2\n\
+ adds r0, r2, 0\n\
+ ldrh r1, [r1, 0xA]\n\
+ adds r0, r1\n\
+ lsls r0, 16\n\
+ lsrs r0, 16\n\
+ bl FlagGet\n\
+ lsls r0, 24\n\
+ cmp r0, 0\n\
+ bne _080C95EC\n\
+ ldr r1, [r5, 0x10]\n\
+ adds r1, r4, r1\n\
+ ldrh r2, [r1]\n\
+ adds r2, 0x7\n\
+ mov r0, sp\n\
+ ldrh r0, [r0]\n\
+ subs r2, r0\n\
+ ldrh r0, [r1, 0x2]\n\
+ adds r0, 0x7\n\
+ mov r3, r9\n\
+ ldrh r1, [r3]\n\
+ subs r0, r1\n\
+ lsls r0, 16\n\
+ lsrs r0, 16\n\
+ lsls r2, 16\n\
+ asrs r1, r2, 16\n\
+ movs r3, 0xE0\n\
+ lsls r3, 11\n\
+ adds r2, r3\n\
+ lsrs r2, 16\n\
+ cmp r2, 0xE\n\
+ bhi _080C95EC\n\
+ lsls r0, 16\n\
+ asrs r2, r0, 16\n\
+ cmp r2, r8\n\
+ blt _080C95EC\n\
+ cmp r2, 0x5\n\
+ bgt _080C95EC\n\
+ adds r0, r6, 0\n\
+ bl sub_80C9838\n\
+_080C95EC:\n\
+ movs r1, 0x80\n\
+ lsls r1, 9\n\
+ adds r0, r7, r1\n\
+ lsrs r3, r0, 16\n\
+ asrs r0, 16\n\
+ ldrb r2, [r5, 0x3]\n\
+ cmp r0, r2\n\
+ blt _080C9580\n\
+_080C95FC:\n\
+ adds r0, r6, 0\n\
+ bl sub_80C9720\n\
+ ldr r0, _080C9618 @ =gTasks\n\
+ lsls r1, r6, 2\n\
+ adds r1, r6\n\
+ lsls r1, 3\n\
+ adds r1, r0\n\
+ movs r3, 0xC\n\
+ ldrsh r0, [r1, r3]\n\
+ cmp r0, 0x1\n\
+ beq _080C961C\n\
+ movs r0, 0\n\
+ b _080C961E\n\
+ .align 2, 0\n\
+_080C9618: .4byte gTasks\n\
+_080C961C:\n\
+ movs r0, 0x1\n\
+_080C961E:\n\
+ add sp, 0x4\n\
+ pop {r3,r4}\n\
+ mov r8, r3\n\
+ mov r9, r4\n\
+ pop {r4-r7}\n\
+ pop {r1}\n\
+ bx r1\n\
+ .syntax divided");
+}
diff --git a/src/landmark.c b/src/landmark.c
index aa4d8c6fa..6a53716bb 100644
--- a/src/landmark.c
+++ b/src/landmark.c
@@ -1,5 +1,6 @@
#include "global.h"
-#include "flag.h"
+#include "landmark.h"
+#include "event_data.h"
#define MAPSEC_NONE 0x58
diff --git a/src/link.c b/src/link.c
index 47820185c..7b4625bfd 100644
--- a/src/link.c
+++ b/src/link.c
@@ -1,14 +1,17 @@
#include "global.h"
+#include "link.h"
+#include "asm.h"
#include "main.h"
#include "task.h"
#include "text.h"
#include "sprite.h"
#include "songs.h"
-#include "link.h"
#include "palette.h"
#include "rng.h"
#include "menu.h"
#include "sound.h"
+#include "save.h"
+#include "battle.h"
#define SIO_MULTI_CNT ((struct SioMultiCnt *)REG_ADDR_SIOCNT)
@@ -29,11 +32,9 @@ struct LinkTestBGInfo
u32 dummy_C;
};
-extern void sub_80516C4(u8, u16);
-
extern u8 unk_2000000[];
extern u8 unk_2004000[];
-extern u16 gUnknown_020239F8;
+extern u16 gBattleTypeFlags;
extern u16 gScriptItemId;
extern u16 word_3004858;
@@ -41,8 +42,8 @@ extern u16 word_3004858;
extern u8 gMultiText_LinkError[];
static void InitLinkTestBG(u8, u8, u8, u8);
-static void InitLinkTestBG_Unused(u8, u8, u8, u8);
-static void LinkTestScreen();
+void InitLinkTestBG_Unused(u8, u8, u8, u8);
+void LinkTestScreen();
static void InitLocalLinkPlayer(void);
static void VBlankCB_LinkTest(void);
static void InitLink(void);
@@ -60,15 +61,15 @@ static void LinkCB_BlockSendBegin(void);
static void LinkCB_BlockSend(void);
static void LinkCB_BlockSendEnd(void);
static void sub_8007E04(void);
-static u32 sub_8007E40(void);
+u32 sub_8007E40(void);
static void SetBlockReceivedFlag(u8);
static u16 LinkTestCalcBlockChecksum(void *, u16);
static void PrintHexDigit(u8, u8, u8);
static void PrintHex(u32, u8, u8, u8);
static void LinkCB_RequestPlayerDataExchange(void);
static void Task_PrintTestData(u8);
-static bool8 sub_8008224(void);
-static u8 GetDummy2(void);
+bool8 sub_8008224(void);
+u8 GetDummy2(void);
static void sub_8008350(void);
static void sub_800837C(void);
static void sub_80083E0(void);
@@ -90,8 +91,8 @@ static void DoRecv(void);
static void DoSend(void);
static void StopTimer(void);
static void SendRecvDone(void);
-static void ResetSendBuffer(void);
-static void ResetRecvBuffer(void);
+void ResetSendBuffer(void);
+void ResetRecvBuffer(void);
static struct BlockTransfer sBlockSend;
static struct BlockTransfer sBlockRecv[MAX_LINK_PLAYERS];
@@ -212,7 +213,7 @@ static void InitLinkTestBG(u8 paletteNum, u8 bgNum, u8 screenBaseBlock, u8 charB
}
}
-static void InitLinkTestBG_Unused(u8 paletteNum, u8 bgNum, u8 screenBaseBlock, u8 charBaseBlock)
+void InitLinkTestBG_Unused(u8 paletteNum, u8 bgNum, u8 screenBaseBlock, u8 charBaseBlock)
{
LoadPalette(sLinkTestDigitPalette, 16 * paletteNum, 32);
DmaCopy16(3, sLinkTestDigitTiles, BG_CHAR_ADDR(charBaseBlock), 0x220);
@@ -223,7 +224,7 @@ static void InitLinkTestBG_Unused(u8 paletteNum, u8 bgNum, u8 screenBaseBlock, u
*gBGControlRegs[bgNum] = (screenBaseBlock << 8) | (charBaseBlock << 2);
}
-static void LinkTestScreen(void)
+void LinkTestScreen(void)
{
s32 i;
ResetSpriteData();
@@ -461,7 +462,7 @@ static void HandleReceiveRemoteLinkPlayer(u8 multiplayerId)
gReceivedRemoteLinkPlayers = TRUE;
}
-static void ProcessRecvCmds(u8 a1)
+static void ProcessRecvCmds(u8 unusedParam)
{
u16 i;
for (i = 0; i < MAX_LINK_PLAYERS; i++)
@@ -829,7 +830,7 @@ static void LinkCB_BlockSendEnd(void)
static void sub_8007E04(void)
{
- GetMultiplayerId();
+ GetMultiplayerId(); // whats the point of calling this if you dont use the multiplayer ID?
BuildSendCmd(0x4444);
dword_20238BC++;
}
@@ -840,7 +841,7 @@ void sub_8007E24(void)
gLinkCallback = sub_8007E04;
}
-static u32 sub_8007E40(void)
+u32 sub_8007E40(void)
{
return dword_20238BC;
}
@@ -1025,7 +1026,7 @@ u8 sub_8008218(void)
return gSavedMultiplayerId;
}
-static bool8 sub_8008224(void)
+bool8 sub_8008224(void)
{
s32 count = 0;
s32 i;
@@ -1072,7 +1073,7 @@ bool8 IsLinkMaster(void)
return EXTRACT_MASTER(gLinkStatus);
}
-static u8 GetDummy2(void)
+u8 GetDummy2(void)
{
return sDummy2;
}
@@ -1107,7 +1108,7 @@ static void sub_800837C(void)
if (count == totalCount)
{
- gUnknown_020239F8 &= 0xFFDF;
+ gBattleTypeFlags &= ~BATTLE_TYPE_20;
gLinkVSyncDisabled = TRUE;
CloseLink();
gLinkCallback = NULL;
@@ -1131,7 +1132,7 @@ static void sub_80083E0(void)
if (count == totalCount)
{
- gUnknown_020239F8 &= 0xFFDF;
+ gBattleTypeFlags &= ~BATTLE_TYPE_20;
gLinkVSyncDisabled = TRUE;
CloseLink();
gLinkCallback = 0;
@@ -1224,7 +1225,7 @@ void CB2_LinkError(void)
REG_BG0VOFS = 0;
REG_BG0HOFS = 0;
REG_DISPCNT = DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG0_ON;
- gUnknown_3001BB4 = 0;
+ gSoftResetDisabled = FALSE;
CreateTask(Task_DestroySelf, 0);
StopMapMusic();
RunTasks();
@@ -1236,7 +1237,7 @@ void CB2_LinkError(void)
static void CB2_PrintErrorMessage(void)
{
- u8 array[64]; // unused
+ u8 array[64] __attribute__((unused)); // unused
switch (gMain.state)
{
@@ -1772,7 +1773,7 @@ static void SendRecvDone(void)
}
}
-static void ResetSendBuffer(void)
+void ResetSendBuffer(void)
{
u8 i;
u8 j;
@@ -1785,7 +1786,7 @@ static void ResetSendBuffer(void)
gLink.sendQueue.data[i][j] = 0xEFFF;
}
-static void ResetRecvBuffer(void)
+void ResetRecvBuffer(void)
{
u8 i;
u8 j;
diff --git a/src/load_save.c b/src/load_save.c
new file mode 100644
index 000000000..5babb843e
--- /dev/null
+++ b/src/load_save.c
@@ -0,0 +1,164 @@
+#include "global.h"
+#include "load_save.h"
+#include "asm.h"
+#include "main.h"
+#include "pokemon.h"
+#include "rom4.h"
+
+extern u8 gPlayerPartyCount;
+extern u32 gUnknown_3004820;
+
+struct LoadedSaveData
+{
+ struct ItemSlot items[20];
+ struct ItemSlot keyItems[20];
+ struct ItemSlot pokeBalls[16];
+ struct ItemSlot TMsHMs[64];
+ struct ItemSlot berries[46];
+ struct MailStruct mail[16];
+};
+
+extern struct LoadedSaveData gLoadedSaveData[];
+
+void CheckForFlashMemory(void)
+{
+ if(!IdentifyFlash())
+ {
+ gUnknown_3004820 = 1;
+ InitFlashTimer();
+ }
+ else
+ gUnknown_3004820 = 0;
+}
+
+bool32 GetSecretBase2Field_9(void)
+{
+ return gSaveBlock2.specialSaveWarp;
+}
+
+void ClearSecretBase2Field_9(void)
+{
+ gSaveBlock2.specialSaveWarp = 0;
+}
+
+void SetSecretBase2Field_9(void)
+{
+ gSaveBlock2.specialSaveWarp = 1;
+}
+
+void SetSecretBase2Field_9_AndHideBG(void) // note: no other function sets specialSaveWarp to values other than 0 or 1, hence clear and set distinctions.
+{
+ gpu_sync_bg_hide(0); // the function doesn't use the parameter passed to it, but this is necessary to match.
+ gSaveBlock2.specialSaveWarp = 1;
+}
+
+void ClearSecretBase2Field_9_2(void) // duplicate function
+{
+ gSaveBlock2.specialSaveWarp = 0;
+}
+
+void SavePlayerParty(void)
+{
+ int i;
+
+ gSaveBlock1.playerPartyCount = gPlayerPartyCount;
+
+ for (i = 0; i < 6; i++)
+ gSaveBlock1.playerParty[i] = gPlayerParty[i];
+}
+
+void LoadPlayerParty(void)
+{
+ int i;
+
+ gPlayerPartyCount = gSaveBlock1.playerPartyCount;
+
+ for (i = 0; i < 6; i++)
+ gPlayerParty[i] = gSaveBlock1.playerParty[i];
+}
+
+static void SaveMapObjects(void)
+{
+ int i;
+
+ for(i = 0; i < 16; i++)
+ gSaveBlock1.mapObjects[i] = gMapObjects[i];
+}
+
+static void LoadMapObjects(void)
+{
+ int i;
+
+ for(i = 0; i < 16; i++)
+ gMapObjects[i] = gSaveBlock1.mapObjects[i];
+}
+
+void SaveSerializedGame(void)
+{
+ SavePlayerParty();
+ SaveMapObjects();
+}
+
+void LoadSerializedGame(void)
+{
+ LoadPlayerParty();
+ LoadMapObjects();
+}
+
+void LoadPlayerBag(void)
+{
+ int i;
+
+ // load player items.
+ for(i = 0; i < 20; i++)
+ gLoadedSaveData->items[i] = gSaveBlock1.bagPocket_Items[i];
+
+ // load player key items.
+ for(i = 0; i < 20; i++)
+ gLoadedSaveData->keyItems[i] = gSaveBlock1.bagPocket_KeyItems[i];
+
+ // load player pokeballs.
+ for(i = 0; i < 16; i++)
+ gLoadedSaveData->pokeBalls[i] = gSaveBlock1.bagPocket_PokeBalls[i];
+
+ // load player TMs and HMs.
+ for(i = 0; i < 64; i++)
+ gLoadedSaveData->TMsHMs[i] = gSaveBlock1.bagPocket_TMHM[i];
+
+ // load player berries.
+ for(i = 0; i < 46; i++)
+ gLoadedSaveData->berries[i] = gSaveBlock1.bagPocket_Berries[i];
+
+ // load mail.
+ for(i = 0; i < 16; i++)
+ gLoadedSaveData->mail[i] = gSaveBlock1.mail[i];
+}
+
+void SavePlayerBag(void)
+{
+ int i;
+
+ // save player items.
+ for(i = 0; i < 20; i++)
+ gSaveBlock1.bagPocket_Items[i] = gLoadedSaveData->items[i];
+
+ // save player key items.
+ for(i = 0; i < 20; i++)
+ gSaveBlock1.bagPocket_KeyItems[i] = gLoadedSaveData->keyItems[i];
+
+ // save player pokeballs.
+ for(i = 0; i < 16; i++)
+ gSaveBlock1.bagPocket_PokeBalls[i] = gLoadedSaveData->pokeBalls[i];
+
+ // save player TMs and HMs.
+ for(i = 0; i < 64; i++)
+ gSaveBlock1.bagPocket_TMHM[i] = gLoadedSaveData->TMsHMs[i];
+
+ // save player berries.
+ for(i = 0; i < 46; i++)
+ gSaveBlock1.bagPocket_Berries[i] = gLoadedSaveData->berries[i];
+
+ // save mail.
+ for(i = 0; i < 16; i++)
+ gSaveBlock1.mail[i] = gLoadedSaveData->mail[i];
+}
diff --git a/src/lottery_corner.c b/src/lottery_corner.c
index c807237af..c18aeef48 100644
--- a/src/lottery_corner.c
+++ b/src/lottery_corner.c
@@ -1,49 +1,54 @@
#include "global.h"
-#include "pokemon.h"
+#include "lottery_corner.h"
#include "rng.h"
#include "string_util.h"
-#include "var.h"
+#include "event_data.h"
+#include "species.h"
+#include "items.h"
extern u16 gScriptResult;
extern u16 gSpecialVar_0x8004;
extern struct Pokemon gPlayerParty[6];
extern struct PokemonStorage gPokemonStorage;
extern u16 gSpecialVar_0x8005;
-extern u16 gUnknown_0840CB04[];
extern u16 gSpecialVar_0x8006;
static EWRAM_DATA u16 sWinNumberDigit = 0;
static EWRAM_DATA u16 sOtIdDigit = 0;
-void sub_8145D14(u32);
-u32 sub_8145D3C(void);
+static const u16 sLotteryPrizes[] =
+{
+ ITEM_PP_UP,
+ ITEM_EXP_SHARE,
+ ITEM_MAX_REVIVE,
+ ITEM_MASTER_BALL,
+};
+
static u8 GetMatchingDigits(u16, u16);
-void sub_8145A78(void)
+void ResetLotteryCorner(void)
{
u16 rand = Random();
- sub_8145D14((Random() << 16) | rand);
- VarSet(0x4045, 0);
+ SetLotteryNumber((Random() << 16) | rand);
+ VarSet(VAR_POKELOT_PRIZE, 0);
}
-void sub_8145AA4(u16 a)
+void SetRandomLotteryNumber(u16 i)
{
u32 var = Random();
- while(--a != 0xFFFF)
- {
+ while(--i != 0xFFFF)
var = var * 1103515245 + 12345;
- }
- sub_8145D14(var);
+
+ SetLotteryNumber(var);
}
-void sub_8145AEC(void)
+void RetrieveLotteryNumber(void)
{
- u16 a = sub_8145D3C();
- gScriptResult = a;
+ u16 lottoNumber = GetLotteryNumber();
+ gScriptResult = lottoNumber;
}
-//Script special function
void PickLotteryCornerTicket(void)
{
u16 i;
@@ -59,41 +64,44 @@ void PickLotteryCornerTicket(void)
struct Pokemon *pkmn = &gPlayerParty[i];
// UB: Too few arguments for function GetMonData
- if(GetMonData(pkmn, MON_DATA_SPECIES) != 0)
+ if(GetMonData(pkmn, MON_DATA_SPECIES) != SPECIES_NONE)
{
+ // do not calculate ticket values for eggs.
if(!GetMonData(pkmn, MON_DATA_IS_EGG))
{
u32 otId = GetMonData(pkmn, MON_DATA_OT_ID);
- u8 a = GetMatchingDigits(gScriptResult, otId);
+ u8 numMatchingDigits = GetMatchingDigits(gScriptResult, otId);
- if(a > gSpecialVar_0x8004 && a > 1)
+ if(numMatchingDigits > gSpecialVar_0x8004 && numMatchingDigits > 1)
{
- gSpecialVar_0x8004 = a - 1;
+ gSpecialVar_0x8004 = numMatchingDigits - 1;
box = 14;
slot = i;
}
}
}
- else
+ else // pokemon are always arranged from populated spots first to unpopulated, so the moment a NONE species is found, that's the end of the list.
break;
}
+ // player has 14 boxes.
for(i = 0; i < 14; i++)
{
- for(j = 0; j < 0x1E; j++)
+ // player has 30 slots per box.
+ for(j = 0; j < 30; j++)
{
struct BoxPokemon *pkmn = &gPokemonStorage.boxes[i][j];
// UB: Too few arguments for function GetMonData
- if(GetBoxMonData(pkmn, MON_DATA_SPECIES) != 0 &&
+ if(GetBoxMonData(pkmn, MON_DATA_SPECIES) != SPECIES_NONE &&
!GetBoxMonData(pkmn, MON_DATA_IS_EGG))
{
u32 otId = GetBoxMonData(pkmn, MON_DATA_OT_ID);
- u8 a = GetMatchingDigits(gScriptResult, otId);
+ u8 numMatchingDigits = GetMatchingDigits(gScriptResult, otId);
- if(a > gSpecialVar_0x8004 && a > 1)
+ if(numMatchingDigits > gSpecialVar_0x8004 && numMatchingDigits > 1)
{
- gSpecialVar_0x8004 = a - 1;
+ gSpecialVar_0x8004 = numMatchingDigits - 1;
box = i;
slot = j;
}
@@ -103,7 +111,7 @@ void PickLotteryCornerTicket(void)
if(gSpecialVar_0x8004 != 0)
{
- gSpecialVar_0x8005 = gUnknown_0840CB04[gSpecialVar_0x8004 - 1];
+ gSpecialVar_0x8005 = sLotteryPrizes[gSpecialVar_0x8004 - 1];
if(box == 14)
{
@@ -122,7 +130,7 @@ void PickLotteryCornerTicket(void)
static u8 GetMatchingDigits(u16 winNumber, u16 otId)
{
u8 i;
- u8 matchingDigits = 0; //Why not just use i?
+ u8 matchingDigits = 0;
for(i = 0; i < 5; i++)
{
@@ -141,24 +149,26 @@ static u8 GetMatchingDigits(u16 winNumber, u16 otId)
return matchingDigits;
}
-void sub_8145D14(u32 a)
+// lottery numbers go from 0 to 99999, not 65535 (0xFFFF). interestingly enough, the function that calls GetLotteryNumber shifts to u16, so it cant be anything above 65535 anyway.
+void SetLotteryNumber(u32 lotteryNum)
{
- u16 b = a >> 16;
- u16 c = a;
-
- VarSet(0x404B, c);
- VarSet(0x404C, b);
+ u16 lowNum = lotteryNum >> 16;
+ u16 highNum = lotteryNum;
+
+ VarSet(VAR_POKELOT_RND1, highNum);
+ VarSet(VAR_POKELOT_RND2, lowNum);
}
-u32 sub_8145D3C(void)
+u32 GetLotteryNumber(void)
{
- u16 var1 = VarGet(0x404B);
- u16 var2 = VarGet(0x404C);
+ u16 highNum = VarGet(VAR_POKELOT_RND1);
+ u16 lowNum = VarGet(VAR_POKELOT_RND2);
- return (var2 << 16) | var1;
+ return (lowNum << 16) | highNum;
}
-void unref_sub_8145D64(u16 a)
+// interestingly, this may have been the original lottery number set function, but GF tried to change it to 32-bit later but didnt finish changing all calls as one GetLotteryNumber still shifts to u16.
+void SetLotteryNumber16_Unused(u16 lotteryNum)
{
- sub_8145D14(a);
+ SetLotteryNumber(lotteryNum);
}
diff --git a/src/mail.c b/src/mail.c
new file mode 100644
index 000000000..6cff514a1
--- /dev/null
+++ b/src/mail.c
@@ -0,0 +1,669 @@
+#include "global.h"
+#include "mail.h"
+#include "asm.h"
+#include "menu.h"
+#include "palette.h"
+#include "rom4.h"
+#include "sprite.h"
+#include "string_util.h"
+#include "task.h"
+#include "text.h"
+#include "items.h"
+
+struct UnkMailStruct
+{
+ u8 unk_0_0:2;
+ u8 unk_0_2:2;
+ u8 unk_0_4:4;
+};
+
+struct MailLayout {
+ u8 var0;
+ u8 var1;
+ u8 var2;
+ u8 var3_0:4;
+ u8 var3_4:4;
+ struct UnkMailStruct *var4;
+};
+
+struct Unk2000000 {
+ /* 0x00 */ u8 words[8][27];
+ /* 0xEC */ u8 varD8[20];
+ /* 0xEC */ MainCallback varEC;
+ /* 0xF0 */ MainCallback varF0;
+ /* 0xFF */ struct MailStruct *varF4;
+ /* 0xF8 */ u8 varF8;
+ /* 0xF9 */ u8 varF9;
+ /* 0xFA */ u8 varFA;
+ /* 0xFB */ u8 varFB;
+ /* 0xFC */ u8 varFC;
+ u8 padFD[1];
+ /* 0xFE */ u8 varFE;
+ /* 0xFF */ u8 varFF;
+ /* 0x100 */ u8 var100;
+ u8 pad101[3];
+ /* 0x104 */ MainCallback var104;
+ /* 0x108 */ MainCallback var108;
+ /* 0x10C */ struct MailLayout *var10C;
+};
+
+struct MailGraphics {
+ u16 (*palette)[];
+ u8 (*tiles)[];
+ u8 (*tileMap)[];
+ u16 var0C;
+ u16 var0E;
+ u16 color10;
+ u16 color12;
+};
+
+extern struct Unk2000000 unk_2000000;
+extern struct MailGraphics gMailGraphicsTable[];
+extern u16 gUnknown_083E562C[][2];
+
+extern struct MailLayout gUnknown_083E5730[];
+extern struct MailLayout gUnknown_083E57A4[];
+
+extern u8 gOtherText_From[];
+
+static u8 sub_80F8A28(void);
+// static void sub_80F8D50(void);
+// static u8 *sub_80F8D7C(u8 *dest, u8 *src);
+static void sub_80F8DA0(void);
+static void sub_80F8E80(void);
+static void sub_80F8F18(void);
+static void sub_80F8F2C(void);
+static void sub_80F8F58(void);
+static void sub_80F8F78(void);
+static void sub_80F8FB4(void);
+
+#ifdef NONMATCHING
+void HandleReadMail(struct MailStruct *arg0, MainCallback arg1, bool8 arg2) {
+ u16 mailDesign;
+ u8 buffer[4];
+ u8 local1;
+
+ unk_2000000.varFF = GAME_LANGUAGE;
+
+ // Compiler uses [sub 1], while asm uses [ptr + FE]
+ unk_2000000.varFE = 1;
+ unk_2000000.var104 = (MainCallback) sub_80EB3FC;
+ unk_2000000.var108 = (MainCallback) ConvertEasyChatWordsToString;
+
+ mailDesign = arg0->itemId - ITEM_ORANGE_MAIL;
+
+ if (mailDesign <= 11) {
+ unk_2000000.varFA = arg0->itemId - ITEM_ORANGE_MAIL;
+ } else {
+ unk_2000000.varFA = 0;
+ arg2 = FALSE;
+ }
+
+ switch (unk_2000000.var100) {
+ case 0:
+ default:
+ unk_2000000.var10C = &gUnknown_083E5730[unk_2000000.varFA];
+ break;
+
+ case 1:
+ unk_2000000.var10C = &gUnknown_083E57A4[unk_2000000.varFA];
+ break;
+ }
+
+ if (((sub_80A2D64(arg0->species, buffer) << 16) +0xFFFF0000) <= (410 << 16)) {
+ switch (unk_2000000.varFA) {
+ case 6:
+ unk_2000000.varFB = 1;
+ break;
+
+ case 9:
+ unk_2000000.varFB = 2;
+ break;
+
+ default:
+ unk_2000000.varFB = 0;
+ break;
+ }
+ } else {
+ unk_2000000.varFB = 0;
+ }
+
+
+ unk_2000000.varF4 = arg0;
+ unk_2000000.varEC = arg1;
+ unk_2000000.varF8 = arg2;
+
+ SetMainCallback2(sub_80F8D50);
+}
+#else
+__attribute__((naked))
+void HandleReadMail(struct MailStruct *arg0, MainCallback arg1, bool8 arg2) {
+ asm(".syntax unified\n\
+ push {r4-r6,lr}\n\
+ sub sp, 0x4\n\
+ adds r4, r0, 0\n\
+ adds r6, r1, 0\n\
+ lsls r2, 24\n\
+ lsrs r5, r2, 24\n\
+ ldr r2, _080F8958 @ =0x02000000\n\
+ adds r1, r2, 0\n\
+ adds r1, 0xFF\n\
+ movs r0, 0x2\n\
+ strb r0, [r1]\n\
+ adds r0, 0xFE\n\
+ adds r1, r2, r0\n\
+ movs r0, 0x1\n\
+ strb r0, [r1]\n\
+ movs r0, 0x82\n\
+ lsls r0, 1\n\
+ adds r1, r2, r0\n\
+ ldr r0, _080F895C @ =sub_80EB3FC\n\
+ str r0, [r1]\n\
+ movs r0, 0x84\n\
+ lsls r0, 1\n\
+ adds r1, r2, r0\n\
+ ldr r0, _080F8960 @ =ConvertEasyChatWordsToString\n\
+ str r0, [r1]\n\
+ ldrh r1, [r4, 0x20]\n\
+ adds r0, r1, 0\n\
+ subs r0, 0x79\n\
+ lsls r0, 16\n\
+ lsrs r0, 16\n\
+ cmp r0, 0xB\n\
+ bhi _080F8964\n\
+ subs r1, 0x79\n\
+ adds r0, r2, 0\n\
+ adds r0, 0xFA\n\
+ strb r1, [r0]\n\
+ b _080F896E\n\
+ .align 2, 0\n\
+_080F8958: .4byte 0x02000000\n\
+_080F895C: .4byte sub_80EB3FC\n\
+_080F8960: .4byte ConvertEasyChatWordsToString\n\
+_080F8964:\n\
+ adds r1, r2, 0\n\
+ adds r1, 0xFA\n\
+ movs r0, 0\n\
+ strb r0, [r1]\n\
+ movs r5, 0\n\
+_080F896E:\n\
+ ldr r1, _080F8994 @ =0x02000000\n\
+ movs r2, 0x80\n\
+ lsls r2, 1\n\
+ adds r0, r1, r2\n\
+ ldrb r0, [r0]\n\
+ cmp r0, 0\n\
+ beq _080F8980\n\
+ cmp r0, 0x1\n\
+ beq _080F899C\n\
+_080F8980:\n\
+ movs r0, 0x86\n\
+ lsls r0, 1\n\
+ adds r2, r1, r0\n\
+ adds r0, r1, 0\n\
+ adds r0, 0xFA\n\
+ ldrb r0, [r0]\n\
+ lsls r0, 3\n\
+ ldr r1, _080F8998 @ =gUnknown_083E5730\n\
+ b _080F89AC\n\
+ .align 2, 0\n\
+_080F8994: .4byte 0x02000000\n\
+_080F8998: .4byte gUnknown_083E5730\n\
+_080F899C:\n\
+ movs r0, 0x86\n\
+ lsls r0, 1\n\
+ adds r2, r1, r0\n\
+ adds r0, r1, 0\n\
+ adds r0, 0xFA\n\
+ ldrb r0, [r0]\n\
+ lsls r0, 3\n\
+ ldr r1, _080F89DC @ =gUnknown_083E57A4\n\
+_080F89AC:\n\
+ adds r0, r1\n\
+ str r0, [r2]\n\
+ ldrh r0, [r4, 0x1E]\n\
+ mov r1, sp\n\
+ bl sub_80A2D64\n\
+ lsls r0, 16\n\
+ ldr r1, _080F89E0 @ =0xffff0000\n\
+ adds r0, r1\n\
+ movs r1, 0xCD\n\
+ lsls r1, 17\n\
+ cmp r0, r1\n\
+ bhi _080F89F8\n\
+ ldr r0, _080F89E4 @ =0x02000000\n\
+ adds r1, r0, 0\n\
+ adds r1, 0xFA\n\
+ ldrb r2, [r1]\n\
+ adds r1, r0, 0\n\
+ cmp r2, 0x6\n\
+ beq _080F89E8\n\
+ cmp r2, 0x9\n\
+ beq _080F89F0\n\
+ b _080F89FA\n\
+ .align 2, 0\n\
+_080F89DC: .4byte gUnknown_083E57A4\n\
+_080F89E0: .4byte 0xffff0000\n\
+_080F89E4: .4byte 0x02000000\n\
+_080F89E8:\n\
+ adds r2, r1, 0\n\
+ adds r2, 0xFB\n\
+ movs r0, 0x1\n\
+ b _080F8A00\n\
+_080F89F0:\n\
+ adds r2, r1, 0\n\
+ adds r2, 0xFB\n\
+ movs r0, 0x2\n\
+ b _080F8A00\n\
+_080F89F8:\n\
+ ldr r1, _080F8A20 @ =0x02000000\n\
+_080F89FA:\n\
+ adds r2, r1, 0\n\
+ adds r2, 0xFB\n\
+ movs r0, 0\n\
+_080F8A00:\n\
+ strb r0, [r2]\n\
+ adds r0, r1, 0\n\
+ adds r0, 0xF4\n\
+ str r4, [r0]\n\
+ subs r0, 0x8\n\
+ str r6, [r0]\n\
+ adds r0, 0xC\n\
+ strb r5, [r0]\n\
+ ldr r0, _080F8A24 @ =sub_80F8D50\n\
+ bl SetMainCallback2\n\
+ add sp, 0x4\n\
+ pop {r4-r6}\n\
+ pop {r0}\n\
+ bx r0\n\
+ .align 2, 0\n\
+_080F8A20: .4byte 0x02000000\n\
+_080F8A24: .4byte sub_80F8D50\n\
+ .syntax divided\n");
+}
+
+#endif
+
+#define RETURN_UP_STATE break
+#define RETURN_SKIP_STATE return FALSE
+
+static u8 sub_80F8A28(void) {
+ switch (gMain.state) {
+ case 0:
+ SetVBlankCallback(NULL);
+ remove_some_task();
+ REG_DISPCNT = 0;
+ RETURN_UP_STATE;
+
+ case 1: CpuFill16(0, (void *) OAM, OAM_SIZE);
+ RETURN_UP_STATE;
+
+ case 2:
+ ResetPaletteFade();
+ RETURN_UP_STATE;
+
+ case 3:
+ ResetTasks();
+ RETURN_UP_STATE;
+
+ case 4:
+ ResetSpriteData();
+ RETURN_UP_STATE;
+
+ case 5:
+ FreeAllSpritePalettes();
+ REG_BG0HOFS = 0;
+ REG_BG0VOFS = 0;
+ REG_BG1HOFS = 0;
+ REG_BG1VOFS = 0;
+ REG_BG2VOFS = 0;
+ REG_BG2HOFS = 0;
+ REG_BG3HOFS = 0;
+ REG_BG3VOFS = 0;
+ REG_BLDCNT = 0;
+ REG_BLDALPHA = 0;
+ RETURN_UP_STATE;
+
+ case 6:
+ SetUpWindowConfig(&gWindowConfig_81E6DFC);
+ RETURN_UP_STATE;
+
+ case 7:
+ MultistepInitMenuWindowBegin(&gWindowConfig_81E6DFC);
+ RETURN_UP_STATE;
+
+ case 8:
+ if (MultistepInitMenuWindowContinue() == 0) {
+ return FALSE;
+ }
+ RETURN_UP_STATE;
+
+ case 9:
+ MenuZeroFillScreen();
+ RETURN_UP_STATE;
+
+ case 10: CpuFill16(1, (void *) (VRAM + 0x4800), 0x800);
+ RETURN_UP_STATE;
+
+ case 11:
+ LoadPalette(gMailGraphicsTable[unk_2000000.varFA].palette, 0, 16 * 2);
+ RETURN_UP_STATE;
+
+ case 12:
+ LZ77UnCompVram(gMailGraphicsTable[unk_2000000.varFA].tileMap, (void *) (VRAM + 0x4000));
+ RETURN_UP_STATE;
+
+ case 13:
+ LZ77UnCompVram(gMailGraphicsTable[unk_2000000.varFA].tiles, (void *) (VRAM));
+
+ gPlttBufferUnfaded[241] = gMailGraphicsTable[unk_2000000.varFA].color10;
+ gPlttBufferUnfaded[248] = gMailGraphicsTable[unk_2000000.varFA].color12;
+ gPlttBufferUnfaded[10] = gUnknown_083E562C[gSaveBlock2.playerGender][0];
+ gPlttBufferUnfaded[11] = gUnknown_083E562C[gSaveBlock2.playerGender][1];
+ RETURN_UP_STATE;
+
+ case 14:
+ if (unk_2000000.varF8 != 0) {
+ sub_80F8DA0();
+ }
+ RETURN_UP_STATE;
+
+ case 15:
+ if (unk_2000000.varF8 != 0) {
+ sub_80F8E80();
+ }
+
+ SetVBlankCallback(sub_80F8F18);
+ gPaletteFade.bufferTransferDisabled = 1;
+ RETURN_UP_STATE;
+
+ case 16: {
+ u16 local1;
+
+ local1 = sub_809D4A8(unk_2000000.varF4->species);
+
+ switch (unk_2000000.varFB) {
+ case 1:
+ sub_809D580(local1);
+ unk_2000000.varFC = sub_809D3A4(local1, SpriteCallbackDummy, 96, 128, 0);
+ break;
+
+ case 2:
+ sub_809D580(local1);
+ unk_2000000.varFC = sub_809D3A4(local1, SpriteCallbackDummy, 40, 128, 0);
+ break;
+ }
+ RETURN_UP_STATE;
+ }
+
+ case 17:
+ if (sub_8055870() != TRUE) {
+ RETURN_UP_STATE;
+ }
+ RETURN_SKIP_STATE;
+
+ case 18:
+ REG_BG0CNT = 0x9F08;
+ REG_BG1CNT = 0x0801;
+ REG_BG2CNT = 0x0902;
+ REG_BLDCNT = 0;
+ REG_DISPCNT = DISPCNT_OBJ_1D_MAP | DISPCNT_BG0_ON | DISPCNT_BG1_ON | DISPCNT_BG2_ON | DISPCNT_OBJ_ON;
+ BeginNormalPaletteFade(-1, 0, 16, 0, 0);
+ gPaletteFade.bufferTransferDisabled = 0;
+ unk_2000000.varF0 = sub_80F8F58;
+ return TRUE;
+
+ default:
+ return FALSE;
+ }
+
+ gMain.state += 1;
+ return FALSE;
+}
+
+void sub_80F8D50(void) {
+ do {
+ if (sub_80F8A28() == 1) {
+ SetMainCallback2(sub_80F8F2C);
+ return;
+ }
+ } while (sub_80F9344() != 1);
+}
+
+u8 *sub_80F8D7C(u8 *dest, u8 *src) {
+ u16 length;
+
+ StringCopy(dest, src);
+ SanitizeNameString(dest);
+
+ length = StringLength(dest);
+
+ return dest + length;
+}
+
+#ifdef NONMATCHING
+static void sub_80F8DA0(void) {
+ u8 local0;
+
+ local0 = unk_2000000.var10C->var0;
+
+ // No idea what's happening in this loop.
+ if (local0 <= 0) {
+ u8 i;
+ u8 i2 = 0;
+
+ for (i = 0; i < unk_2000000.var10C->var0; i++) {
+ ConvertEasyChatWordsToString(unk_2000000.words[i], &unk_2000000.varF4->words[i2],
+ ((*unk_2000000.var10C->var4)[i] << 28) >> 30, 1);
+ i2 += ((*unk_2000000.var10C->var4)[i] << 28) >> 30;
+ }
+ }
+
+ if (unk_2000000.var100 == 0) {
+ u8 *ptr;
+ u16 length;
+
+ ptr = sub_80F8D7C(unk_2000000.varD8, unk_2000000.varF4->playerName);
+ StringCopy(ptr, gOtherText_From);
+
+ length = StringLength(unk_2000000.varD8);
+
+ unk_2000000.varF9 = unk_2000000.var10C->var2 - length;
+ } else {
+ u8 *ptr;
+
+ ptr = StringCopy(unk_2000000.varD8, gOtherText_From);
+ sub_80F8D7C(ptr, unk_2000000.varF4->playerName);
+
+ unk_2000000.varF9 = unk_2000000.var10C->var2;
+ }
+}
+#else
+__attribute__((naked))
+static void sub_80F8DA0(void) {
+ asm(".syntax unified\n\
+ push {r4-r7,lr}\n\
+ mov r7, r8\n\
+ push {r7}\n\
+ movs r6, 0\n\
+ movs r5, 0\n\
+ ldr r2, _080F8E3C @ =0x02000000\n\
+ movs r0, 0x86\n\
+ lsls r0, 1\n\
+ adds r1, r2, r0\n\
+ ldr r0, [r1]\n\
+ ldrb r0, [r0]\n\
+ cmp r5, r0\n\
+ bcs _080F8E04\n\
+ mov r8, r2\n\
+ adds r7, r1, 0\n\
+_080F8DBE:\n\
+ lsls r0, r5, 3\n\
+ subs r0, r5\n\
+ lsls r0, 2\n\
+ subs r0, r5\n\
+ add r0, r8\n\
+ mov r1, r8\n\
+ adds r1, 0xF4\n\
+ lsls r2, r6, 1\n\
+ ldr r1, [r1]\n\
+ adds r1, r2\n\
+ ldr r2, [r7]\n\
+ ldr r2, [r2, 0x4]\n\
+ lsls r4, r5, 2\n\
+ adds r2, r4, r2\n\
+ ldr r2, [r2]\n\
+ lsls r2, 28\n\
+ lsrs r2, 30\n\
+ movs r3, 0x1\n\
+ bl ConvertEasyChatWordsToString\n\
+ ldr r1, [r7]\n\
+ ldr r0, [r1, 0x4]\n\
+ adds r4, r0\n\
+ ldr r0, [r4]\n\
+ lsls r0, 28\n\
+ lsrs r0, 30\n\
+ adds r0, r6, r0\n\
+ lsls r0, 24\n\
+ lsrs r6, r0, 24\n\
+ adds r0, r5, 0x1\n\
+ lsls r0, 16\n\
+ lsrs r5, r0, 16\n\
+ ldrb r1, [r1]\n\
+ cmp r5, r1\n\
+ bcc _080F8DBE\n\
+_080F8E04:\n\
+ ldr r2, _080F8E40 @ =0x020000d8\n\
+ adds r4, r2, 0\n\
+ subs r4, 0xD8\n\
+ adds r0, r2, 0\n\
+ adds r0, 0x28\n\
+ ldrb r0, [r0]\n\
+ cmp r0, 0\n\
+ bne _080F8E48\n\
+ ldr r1, [r2, 0x1C]\n\
+ adds r1, 0x12\n\
+ adds r0, r2, 0\n\
+ bl sub_80F8D7C\n\
+ adds r2, r0, 0\n\
+ ldr r1, _080F8E44 @ =gOtherText_From\n\
+ bl StringCopy\n\
+ ldr r0, _080F8E40 @ =0x020000d8\n\
+ bl StringLength\n\
+ movs r2, 0x86\n\
+ lsls r2, 1\n\
+ adds r1, r4, r2\n\
+ ldr r1, [r1]\n\
+ ldrb r1, [r1, 0x2]\n\
+ subs r1, r0\n\
+ b _080F8E6A\n\
+ .align 2, 0\n\
+_080F8E3C: .4byte 0x02000000\n\
+_080F8E40: .4byte 0x020000d8\n\
+_080F8E44: .4byte gOtherText_From\n\
+_080F8E48:\n\
+ ldr r1, _080F8E7C @ =gOtherText_From\n\
+ adds r0, r2, 0\n\
+ bl StringCopy\n\
+ adds r2, r0, 0\n\
+ adds r0, r4, 0\n\
+ adds r0, 0xF4\n\
+ ldr r1, [r0]\n\
+ adds r1, 0x12\n\
+ adds r0, r2, 0\n\
+ bl sub_80F8D7C\n\
+ movs r1, 0x86\n\
+ lsls r1, 1\n\
+ adds r0, r4, r1\n\
+ ldr r0, [r0]\n\
+ ldrb r1, [r0, 0x2]\n\
+_080F8E6A:\n\
+ adds r0, r4, 0\n\
+ adds r0, 0xF9\n\
+ strb r1, [r0]\n\
+ pop {r3}\n\
+ mov r8, r3\n\
+ pop {r4-r7}\n\
+ pop {r0}\n\
+ bx r0\n\
+ .align 2, 0\n\
+_080F8E7C: .4byte gOtherText_From\n\
+ .syntax divided\n");
+}
+#endif
+
+static void sub_80F8E80(void) {
+ u16 pos;
+ u8 x;
+ u8 y = 0;
+
+ for (pos = 0; pos < unk_2000000.var10C->var0; pos++) {
+ if (unk_2000000.words[pos][0] == 0xFF) {
+ continue;
+ }
+
+ if (unk_2000000.words[pos][0] == 0x00) {
+ continue;
+ }
+
+ x = unk_2000000.var10C->var4[pos].unk_0_4;
+ y += unk_2000000.var10C->var4[pos].unk_0_0;
+ MenuPrint(unk_2000000.words[pos], unk_2000000.var10C->var3_4 + x, unk_2000000.var10C->var3_0 + y);
+ y += 2;
+ }
+
+ MenuPrint(unk_2000000.varD8, unk_2000000.varF9, unk_2000000.var10C->var1);
+}
+
+static void sub_80F8F18(void) {
+ LoadOam();
+ ProcessSpriteCopyRequests();
+ TransferPlttBuffer();
+}
+
+static void sub_80F8F2C(void) {
+ if(unk_2000000.varFB != 0) {
+ AnimateSprites();
+ BuildOamBuffer();
+ }
+
+ unk_2000000.varF0();
+}
+
+static void sub_80F8F58(void) {
+ u8 local0;
+
+ local0 = UpdatePaletteFade();
+ if(local0 == 0) {
+ unk_2000000.varF0 = sub_80F8F78;
+ }
+}
+
+static void sub_80F8F78(void) {
+ if (gMain.newKeys & (A_BUTTON | B_BUTTON)) {
+ BeginNormalPaletteFade(-1, 0, 0, 16, 0);
+ unk_2000000.varF0 = sub_80F8FB4;
+ }
+}
+
+static void sub_80F8FB4(void) {
+ u16 local1;
+
+ if (UpdatePaletteFade()) {
+ return;
+ }
+
+ SetMainCallback2(unk_2000000.varEC);
+ switch (unk_2000000.varFB) {
+ case 2:
+ case 1:
+ local1 = sub_809D4A8(unk_2000000.varF4->species);
+ sub_809D608(local1);
+
+ sub_809D510(&gSprites[unk_2000000.varFC]);
+ break;
+ }
+
+ memset(&unk_2000000, 0, 0x110);
+ ResetPaletteFade();
+}
diff --git a/src/main.c b/src/main.c
index ef7e76df6..76ac3d6d9 100644
--- a/src/main.c
+++ b/src/main.c
@@ -1,11 +1,17 @@
#include "global.h"
-#include "gba/m4a_internal.h"
-#include "gba/flash_internal.h"
-#include "siirtc.h"
#include "main.h"
-#include "rtc.h"
+#include "asm.h"
+#include "gba/flash_internal.h"
+#include "gba/m4a_internal.h"
+#include "intro.h"
#include "link.h"
+#include "load_save.h"
+#include "m4a.h"
+#include "play_time.h"
#include "rng.h"
+#include "rom4.h"
+#include "rtc.h"
+#include "siirtc.h"
#include "sound.h"
extern struct SoundInfo gSoundInfo;
@@ -26,7 +32,7 @@ static void IntrDummy(void);
const u8 gGameVersion = GAME_VERSION;
-const u8 gGameLanguage = 2; // English
+const u8 gGameLanguage = GAME_LANGUAGE; // English
const char BuildDateTime[] = "2002 10 15 20:34";
@@ -54,21 +60,13 @@ u16 gKeyRepeatStartDelay;
u8 gUnknown_3001764;
struct Main gMain;
u16 gKeyRepeatContinueDelay;
-u8 gUnknown_3001BB4;
+u8 gSoftResetDisabled;
IntrFunc gIntrTable[INTR_COUNT];
bool8 gLinkVSyncDisabled;
u32 IntrMain_Buffer[0x200];
u8 gPcmDmaCounter;
-EWRAM_DATA void (*gFlashTimerIntrFunc)(void) = NULL;
-
-extern void sub_800C35C(void);
-extern void remove_some_task(void);
-extern void c2_copyright_1();
-extern u32 sub_80558AC(void);
-extern u32 sub_8055910(void);
-extern u32 sub_8055940(void);
-extern void CheckForFlashMemory(void);
+EWRAM_DATA void (**gFlashTimerIntrFunc)(void) = NULL;
static void UpdateLinkAndCallCallbacks(void);
static void InitMainCallbacks(void);
@@ -93,7 +91,7 @@ void AgbMain()
InitMapMusic();
SeedRngWithRtc();
- gUnknown_3001BB4 = 0;
+ gSoftResetDisabled = FALSE;
if (gUnknown_3004820 != 1)
SetMainCallback2(0);
@@ -104,7 +102,7 @@ void AgbMain()
{
ReadKeys();
- if (!gUnknown_3001BB4
+ if (gSoftResetDisabled == FALSE
&& (gMain.heldKeysRaw & A_BUTTON)
&& (gMain.heldKeysRaw & B_START_SELECT) == B_START_SELECT)
DoSoftReset();
@@ -335,8 +333,7 @@ static void SerialIntr(void)
}
static void IntrDummy(void)
-{
-}
+{}
static void WaitForVBlank(void)
{
diff --git a/src/main_menu.c b/src/main_menu.c
index 966f93f0d..7adbda096 100644
--- a/src/main_menu.c
+++ b/src/main_menu.c
@@ -1,42 +1,49 @@
#include "global.h"
-#include "text.h"
-#include "sprite.h"
-#include "task.h"
-#include "main.h"
+#include "main_menu.h"
+#include "asm.h"
+#include "decompress.h"
+#include "menu.h"
+#include "mystery_event_menu.h"
+#include "option_menu.h"
+#include "palette.h"
+#include "rom4.h"
#include "rtc.h"
+#include "save_menu_util.h"
#include "songs.h"
-#include "palette.h"
-#include "string_util.h"
-#include "species.h"
-#include "pokemon.h"
-#include "menu.h"
#include "sound.h"
+#include "species.h"
+#include "string_util.h"
+#include "task.h"
+#include "text.h"
+#include "title_screen.h"
+#include "event_data.h"
#define BirchSpeechUpdateWindowText() ((u8)MenuUpdateWindowText_OverrideLineLength(24))
-extern void remove_some_task(void);
-extern void CreatePokeballSprite(u8 r0, u8 r1, u8 r2, u8 r3, u8 s1, u8 s2, u8 s3, u16 s4);
-extern bool32 IsMysteryGiftAvailable(void);
-extern void CB2_ContinueSavedGame(void);
-extern void CB2_InitMysteryEventMenu(void);
-extern void CB2_InitOptionMenu(void);
-extern void CB2_InitTitleScreen(void);
-extern void FormatPlayTime(u8 *str, u16 hours, u16 minutes, bool16 colon);
-extern u16 GetPokedexSeenCount(void);
-extern u8 GetBadgeCount(void);
-extern void DoNamingScreen(u8 r0, struct SaveBlock2 *r1, u16 r2, u16 r3, u8 s0, MainCallback s4);
-extern void CB2_NewGame(void);
-extern void DecompressPicFromTable_2(const struct SpriteSheet *, u8, u8, void *, void *, u32);
-extern void LoadCompressedObjectPalette(const struct SpritePalette *);
-extern u8 CreateBirchSprite(u8, u8, u8);
-extern u8 CreateTrainerSprite_BirchSpeech(u8, u16, u16, u8, void *);
+struct MonCoords
+{
+ u8 x, y;
+};
extern struct PaletteFadeControl gPaletteFade;
+
+extern u16 gSaveFileStatus;
+
+extern u16 gMainMenuPalette[];
+
+extern const u8 gBirchSpeech_Welcome[];
+extern const u8 gBirchSpeech_ThisIsPokemon[];
+extern const u8 gBirchSpeech_WorldInhabitedByPokemon[];
+extern const u8 gBirchSpeech_AndYouAre[];
+extern const u8 gBirchSpeech_AreYouBoyOrGirl[];
+extern const u8 gBirchSpeech_WhatsYourName[];
+extern u8 gBirchSpeech_SoItsPlayer[];
+extern u8 gBirchSpeech_AhOkayYouArePlayer[];
+extern u8 gBirchSpeech_AreYouReady[];
extern u8 gSaveFileDeletedMessage[];
extern u8 gSaveFileCorruptMessage[];
extern u8 gBoardNotInstalledMessage[];
extern u8 gBatteryDryMessage[];
-extern u16 gSaveFileStatus;
extern u8 gMainMenuString_Continue[];
extern u8 gMainMenuString_NewGame[];
extern u8 gMainMenuString_MysteryEvents[];
@@ -46,10 +53,57 @@ extern u8 gMainMenuString_Time[];
extern u8 gMainMenuString_Pokedex[];
extern u8 gMainMenuString_Badges[];
-void CB2_MainMenu(void);
-void VBlankCB_MainMenu(void);
-void CB2_InitMainMenu(void);
-static void sub_80096FC(void);
+extern const struct MonCoords gMonFrontPicCoords[];
+extern const struct SpriteSheet gMonFrontPicTable[];
+extern const struct SpritePalette gMonPaletteTable[];
+extern struct SpriteTemplate gUnknown_02024E8C;
+extern void * const gUnknown_081FAF4C[];
+extern u16 gUnknown_081E795C[];
+extern const struct MenuAction gUnknown_081E79B0[];
+extern const struct MenuAction gMalePresetNames[];
+extern const struct MenuAction gFemalePresetNames[];
+
+extern const u8 gUnknown_081E764C[];
+extern const u8 gBirchIntroShadowGfx[];
+extern const u8 gUnknown_081E7834[];
+extern const u8 gUnknown_081E796C[];
+extern const u8 gSystemText_NewPara[];
+
+extern u8 gSpriteAffineAnimTable_81E79AC[];
+
+extern u8 gStringVar4[];
+
+extern u8 unk_2000000[];
+
+//Task data
+enum {
+ TD_MENULAYOUT,
+ TD_SELECTEDMENUITEM,
+};
+
+//Menu layouts
+enum {
+ HAS_NO_SAVED_GAME, //NEW GAME, OPTION
+ HAS_SAVED_GAME, //CONTINUE, NEW GAME, OPTION
+ HAS_MYSTERY_GIFT, //CONTINUE, NEW GAME, MYSTERY EVENTS, OPTION
+};
+
+//Task data
+enum {
+ TD_TRAINER_SPRITE_ID = 2, //Trainer sprite being displayed during gender menu
+ TD_BGHOFS = 4, //Used to set REG_BG1HOFS and slide the platform around
+ TD_SUBTASK_DONE, //Set to true if the spawned task has finished
+ TD_GENDER_SELECTION,
+ TD_COUNTER,
+ TD_BIRCH_SPRITE_ID,
+ TD_AZURILL_SPRITE_ID,
+ TD_BRENDAN_SPRITE_ID,
+ TD_MAY_SPRITE_ID
+};
+
+static void CB2_MainMenu(void);
+static void VBlankCB_MainMenu(void);
+static void CB2_InitMainMenuFromOptions(void);
static u32 InitMainMenu(bool8 a1);
static void Task_MainMenuCheckSave(u8 taskId);
static void Task_MainMenuWaitForSaveErrorAck(u8 taskId);
@@ -61,31 +115,66 @@ static bool8 MainMenuProcessKeyInput(u8 taskId);
static void Task_MainMenuProcessKeyInput(u8 taskId);
static void Task_MainMenuPressedA(u8 taskId);
static void Task_MainMenuPressedB(u8 taskId);
-static void HighlightCurrentMenuItem(u8, u8);
-static void PrintMainMenuItem(u8 *text, u8, u8);
+static void HighlightCurrentMenuItem(u8 layout, u8 menuItem);
+static void PrintMainMenuItem(u8 *text, u8 left, u8 top);
static void PrintSaveFileInfo(void);
static void PrintPlayerName(void);
static void PrintPlayTime(void);
static void PrintPokedexCount(void);
static void PrintBadgeCount(void);
-void Task_NewGameSpeech1(u8);
-
-extern u16 gMainMenuPalette[];
-
-//Task data
-enum {
- TD_MENULAYOUT,
- TD_SELECTEDMENUITEM,
-};
-
-//Menu layouts
-enum {
- HAS_NO_SAVED_GAME, //NEW GAME, OPTION
- HAS_SAVED_GAME, //CONTINUE, NEW GAME, OPTION
- HAS_MYSTERY_GIFT, //CONTINUE, NEW GAME, MYSTERY EVENTS, OPTION
-};
-
-void CB2_MainMenu(void)
+static void Task_NewGameSpeech1(u8 taskId);
+static void Task_NewGameSpeech2(u8 taskId);
+static void Task_NewGameSpeech3(u8 taskId);
+static void Task_NewGameSpeech4(u8 taskId);
+static void Task_NewGameSpeech5(u8 taskId);
+static void Task_NewGameSpeech6(u8 taskId);
+static void Task_NewGameSpeech7(u8 taskId);
+static void Task_NewGameSpeech8(u8 taskId);
+static void Task_NewGameSpeech9(u8 taskId);
+static void Task_NewGameSpeech10(u8 taskId);
+static void Task_NewGameSpeech11(u8 taskId);
+static void Task_NewGameSpeech12(u8 taskId);
+static void Task_NewGameSpeech13(u8 taskId);
+static void Task_NewGameSpeech14(u8 taskId);
+static void Task_NewGameSpeech15(u8 taskId);
+static void Task_NewGameSpeech16(u8 taskId);
+static void Task_NewGameSpeech17(u8 taskId);
+static void Task_NewGameSpeech18(u8 taskId);
+static void Task_NewGameSpeech19(u8 taskId);
+static void Task_NewGameSpeech20(u8 taskId);
+static void Task_NewGameSpeech21(u8 taskId);
+static void Task_NewGameSpeech22(u8 taskId);
+static void Task_NewGameSpeech23(u8 taskId);
+static void Task_NewGameSpeech24(u8 taskId);
+static void Task_NewGameSpeech25(u8 taskId);
+static void Task_NewGameSpeech26(u8 taskId);
+static void Task_NewGameSpeech27(u8 taskId);
+static void Task_NewGameSpeech28(u8 taskId);
+static void Task_NewGameSpeech29(u8 taskId);
+static void Task_NewGameSpeech30(u8 taskId);
+static void Task_NewGameSpeech31(u8 taskId);
+static void Task_NewGameSpeech32(u8 taskId);
+static void Task_NewGameSpeech33(u8 taskId);
+static void CB_ContinueNewGameSpeechPart2();
+static void nullsub_34(struct Sprite *sprite);
+static void ShrinkPlayerSprite(struct Sprite *sprite);
+static u8 CreateAzurillSprite(u8 x, u8 y);
+static void AddBirchSpeechObjects(u8 taskId);
+static void Task_SpriteFadeOut(u8 taskId);
+static void StartSpriteFadeOut(u8 taskId, u8 interval);
+static void Task_SpriteFadeIn(u8 taskId);
+static void StartSpriteFadeIn(u8 taskId, u8 interval);
+static void HandleFloorShadowFadeOut(u8 taskId);
+static void StartBackgroundFadeOut(u8 taskId, u8 interval);
+static void HandleFloorShadowFadeIn(u8 taskId);
+static void StartBackgroundFadeIn(u8 taskId, u8 interval);
+static void CreateGenderMenu(u8 left, u8 top);
+static s8 GenderMenuProcessInput(void);
+static void CreateNameMenu(u8 left, u8 top);
+static s8 NameMenuProcessInput(void);
+static void SetPresetPlayerName(u8 index);
+
+static void CB2_MainMenu(void)
{
RunTasks();
AnimateSprites();
@@ -105,7 +194,7 @@ void CB2_InitMainMenu(void)
InitMainMenu(FALSE);
}
-static void sub_80096FC(void)
+static void CB2_InitMainMenuFromOptions(void)
{
InitMainMenu(TRUE);
}
@@ -189,7 +278,7 @@ void Task_MainMenuCheckSave(u8 taskId)
switch (gSaveFileStatus)
{
case 1:
- if (IsMysteryGiftAvailable() == TRUE)
+ if (IsMysteryGiftEnabled() == TRUE)
gTasks[taskId].data[TD_MENULAYOUT] = HAS_MYSTERY_GIFT;
else
gTasks[taskId].data[TD_MENULAYOUT] = HAS_SAVED_GAME;
@@ -212,7 +301,7 @@ void Task_MainMenuCheckSave(u8 taskId)
gTasks[taskId].data[TD_MENULAYOUT] = HAS_SAVED_GAME;
gTasks[taskId].func = Task_MainMenuWaitForSaveErrorAck;
- if (IsMysteryGiftAvailable() == TRUE)
+ if (IsMysteryGiftEnabled() == TRUE)
gTasks[taskId].data[TD_MENULAYOUT] = HAS_MYSTERY_GIFT;
else
gTasks[taskId].data[TD_MENULAYOUT] = HAS_SAVED_GAME;
@@ -493,7 +582,7 @@ void Task_MainMenuPressedA(u8 taskId)
DestroyTask(taskId);
break;
case OPTION:
- gMain.field_8 = sub_80096FC;
+ gMain.savedCallback = CB2_InitMainMenuFromOptions;
SetMainCallback2(CB2_InitOptionMenu);
DestroyTask(taskId);
break;
@@ -628,109 +717,7 @@ void PrintBadgeCount(void)
MenuPrint_PixelCoords(buffer, 205, 40, 1);
}
-//Text Strings
-extern const u8 gBirchSpeech_Welcome[];
-extern const u8 gBirchSpeech_ThisIsPokemon[];
-extern const u8 gBirchSpeech_WorldInhabitedByPokemon[];
-extern const u8 gBirchSpeech_AndYouAre[];
-extern const u8 gBirchSpeech_AreYouBoyOrGirl[];
-extern const u8 gBirchSpeech_WhatsYourName[];
-extern u8 gBirchSpeech_SoItsPlayer[];
-extern u8 gBirchSpeech_AhOkayYouArePlayer[];
-extern u8 gBirchSpeech_AreYouReady[];
-
-struct MonCoords
-{
- u8 x, y;
-};
-
-extern const struct MonCoords gMonFrontPicCoords[];
-extern const struct SpriteSheet gMonFrontPicTable[];
-extern const struct SpritePalette gMonPaletteTable[];
-extern struct SpriteTemplate gUnknown_02024E8C;
-extern void * const gUnknown_081FAF4C[];
-extern u16 gUnknown_081E795C[];
-extern u8 * const gUnknown_081E79B0[][2];
-extern u8 * const gMalePresetNames[][2];
-extern u8 * const gFemalePresetNames[][2];
-
-extern const u8 gUnknown_081E764C[];
-extern const u8 gUnknown_081E768C[];
-extern const u8 gUnknown_081E7834[];
-extern const u8 gUnknown_081E796C[];
-extern const u8 gSystemText_NewPara[];
-
-extern u8 gSpriteAffineAnimTable_81E79AC[];
-
-extern u8 gStringVar4[];
-
-extern u8 unk_2000000[];
-
-void Task_NewGameSpeech2(u8 taskId);
-void Task_NewGameSpeech3(u8 taskId);
-void Task_NewGameSpeech4(u8 taskId);
-void Task_NewGameSpeech5(u8 taskId);
-void Task_NewGameSpeech6(u8 taskId);
-void Task_NewGameSpeech7(u8 taskId);
-void Task_NewGameSpeech8(u8 taskId);
-void Task_NewGameSpeech9(u8 taskId);
-void Task_NewGameSpeech10(u8 taskId);
-void Task_NewGameSpeech11(u8 taskId);
-void Task_NewGameSpeech12(u8 taskId);
-void Task_NewGameSpeech13(u8 taskId);
-void Task_NewGameSpeech14(u8 taskId);
-void Task_NewGameSpeech15(u8 taskId);
-void Task_NewGameSpeech16(u8 taskId);
-void Task_NewGameSpeech17(u8 taskId);
-void Task_NewGameSpeech18(u8 taskId);
-void Task_NewGameSpeech19(u8 taskId);
-void Task_NewGameSpeech20(u8 taskId);
-void Task_NewGameSpeech21(u8 taskId);
-void Task_NewGameSpeech22(u8 taskId);
-void Task_NewGameSpeech23(u8 taskId);
-void Task_NewGameSpeech24(u8 taskId);
-void Task_NewGameSpeech25(u8 taskId);
-void Task_NewGameSpeech26(u8 taskId);
-void Task_NewGameSpeech27(u8 taskId);
-void Task_NewGameSpeech28(u8 taskId);
-void Task_NewGameSpeech29(u8 taskId);
-void Task_NewGameSpeech30(u8 taskId);
-void Task_NewGameSpeech31(u8 taskId);
-void Task_NewGameSpeech32(u8 taskId);
-void Task_NewGameSpeech33(u8 taskId);
-void CB_ContinueNewGameSpeechPart2();
-void nullsub_34(struct Sprite *sprite);
-void sub_800B240(struct Sprite *sprite);
-u8 CreateAzurillSprite(u8, u8);
-void AddBirchSpeechObjects(u8);
-void sub_800B3EC(u8);
-void StartSpriteFadeOut(u8, u8);
-void Task_StartSpriteFadeIn(u8);
-void StartSpriteFadeIn(u8 taskId, u8 a);
-void sub_800B5A8(u8);
-void StartBackgroundFadeOut(u8, u8);
-void sub_800B654(u8);
-void StartBackgroundFadeIn(u8 taskId, u8 a);
-void CreateGenderMenu(u8 left, u8 top);
-s8 GenderMenuProcessInput(void);
-void CreateNameMenu(u8 a, u8 b);
-s8 NameMenuProcessInput(void);
-void SetPresetPlayerName(u8 a);
-
-//Task data
-enum {
- TD_TRAINER_SPRITE_ID = 2, //Trainer sprite being displayed during gender menu
- TD_BGHOFS = 4, //Used to set REG_BG1HOFS and slide the platform around
- TD_SUBTASK_DONE, //Set to true if the spawned task has finished
- TD_GENDER_SELECTION,
- TD_COUNTER,
- TD_BIRCH_SPRITE_ID,
- TD_AZURILL_SPRITE_ID,
- TD_BRENDAN_SPRITE_ID,
- TD_MAY_SPRITE_ID
-};
-
-void Task_NewGameSpeech1(u8 taskId)
+static void Task_NewGameSpeech1(u8 taskId)
{
SetUpWindowConfig(&gWindowConfig_81E6C3C);
InitMenuWindow((struct WindowConfig *)&gWindowConfig_81E6CE4);
@@ -741,7 +728,7 @@ void Task_NewGameSpeech1(u8 taskId)
REG_BLDCNT = 0;
REG_BLDALPHA = 0;
REG_BLDY = 0;
- LZ77UnCompVram(gUnknown_081E768C, (void *)BG_VRAM);
+ LZ77UnCompVram(gBirchIntroShadowGfx, (void *)BG_VRAM);
LZ77UnCompVram(gUnknown_081E7834, (void *)(BG_VRAM + 0x3800));
LoadPalette(gUnknown_081E764C, 0, 0x40);
LoadPalette(gUnknown_081E796C, 1, 0x10);
@@ -761,7 +748,7 @@ void Task_NewGameSpeech1(u8 taskId)
PlayBGM(BGM_DOORO_X4);
}
-void Task_NewGameSpeech2(u8 taskId)
+static void Task_NewGameSpeech2(u8 taskId)
{
if (gTasks[taskId].data[TD_COUNTER] != 0)
{
@@ -783,7 +770,7 @@ void Task_NewGameSpeech2(u8 taskId)
}
}
-void Task_NewGameSpeech3(u8 taskId)
+static void Task_NewGameSpeech3(u8 taskId)
{
if (gTasks[taskId].data[TD_SUBTASK_DONE] != FALSE)
{
@@ -803,7 +790,7 @@ void Task_NewGameSpeech3(u8 taskId)
}
}
-void Task_NewGameSpeech4(u8 taskId)
+static void Task_NewGameSpeech4(u8 taskId)
{
if (!gPaletteFade.active && BirchSpeechUpdateWindowText())
{
@@ -813,13 +800,13 @@ void Task_NewGameSpeech4(u8 taskId)
}
}
-void Task_NewGameSpeech5(u8 taskId)
+static void Task_NewGameSpeech5(u8 taskId)
{
if (BirchSpeechUpdateWindowText())
gTasks[taskId].func = Task_NewGameSpeech6;
}
-void Task_NewGameSpeech6(u8 taskId)
+static void Task_NewGameSpeech6(u8 taskId)
{
u8 spriteId = gTasks[taskId].data[TD_AZURILL_SPRITE_ID];
@@ -832,7 +819,7 @@ void Task_NewGameSpeech6(u8 taskId)
gTasks[taskId].data[TD_COUNTER] = 0;
}
-void Task_NewGameSpeech7(u8 taskId)
+static void Task_NewGameSpeech7(u8 taskId)
{
if (IsCryFinished())
{
@@ -853,7 +840,7 @@ void Task_NewGameSpeech7(u8 taskId)
}
}
-void Task_NewGameSpeech8(u8 taskId)
+static void Task_NewGameSpeech8(u8 taskId)
{
if (BirchSpeechUpdateWindowText())
{
@@ -864,7 +851,7 @@ void Task_NewGameSpeech8(u8 taskId)
}
}
-void Task_NewGameSpeech9(u8 taskId)
+static void Task_NewGameSpeech9(u8 taskId)
{
if (BirchSpeechUpdateWindowText())
{
@@ -875,7 +862,7 @@ void Task_NewGameSpeech9(u8 taskId)
}
}
-void Task_NewGameSpeech10(u8 taskId)
+static void Task_NewGameSpeech10(u8 taskId)
{
if (BirchSpeechUpdateWindowText())
{
@@ -889,7 +876,7 @@ void Task_NewGameSpeech10(u8 taskId)
}
//Slide platform away to the right
-void Task_NewGameSpeech11(u8 taskId)
+static void Task_NewGameSpeech11(u8 taskId)
{
if (gTasks[taskId].data[TD_BGHOFS] != -60)
{
@@ -903,7 +890,7 @@ void Task_NewGameSpeech11(u8 taskId)
}
}
-void Task_NewGameSpeech12(u8 taskId)
+static void Task_NewGameSpeech12(u8 taskId)
{
if (gTasks[taskId].data[TD_SUBTASK_DONE])
{
@@ -933,7 +920,7 @@ void Task_NewGameSpeech12(u8 taskId)
}
}
-void Task_NewGameSpeech13(u8 taskId)
+static void Task_NewGameSpeech13(u8 taskId)
{
if (gTasks[taskId].data[TD_SUBTASK_DONE])
{
@@ -942,7 +929,7 @@ void Task_NewGameSpeech13(u8 taskId)
}
}
-void Task_NewGameSpeech14(u8 taskId)
+static void Task_NewGameSpeech14(u8 taskId)
{
MenuDrawTextWindow(2, 13, 27, 18);
//"Are you a boy? Or are you a girl?"
@@ -950,7 +937,7 @@ void Task_NewGameSpeech14(u8 taskId)
gTasks[taskId].func = Task_NewGameSpeech15;
}
-void Task_NewGameSpeech15(u8 taskId)
+static void Task_NewGameSpeech15(u8 taskId)
{
if (BirchSpeechUpdateWindowText())
{
@@ -960,7 +947,7 @@ void Task_NewGameSpeech15(u8 taskId)
}
//Process gender menu
-void Task_NewGameSpeech16(u8 taskId)
+static void Task_NewGameSpeech16(u8 taskId)
{
u8 cursorPos;
@@ -995,7 +982,7 @@ void Task_NewGameSpeech16(u8 taskId)
}
//Slide old trainer sprite off right of screen
-void Task_NewGameSpeech17(u8 taskId)
+static void Task_NewGameSpeech17(u8 taskId)
{
u8 spriteId = gTasks[taskId].data[TD_TRAINER_SPRITE_ID];
@@ -1006,7 +993,7 @@ void Task_NewGameSpeech17(u8 taskId)
else
{
gSprites[spriteId].invisible = TRUE;
-
+
//Set up new trainer sprite
if (gTasks[taskId].data[TD_GENDER_SELECTION])
spriteId = gTasks[taskId].data[TD_MAY_SPRITE_ID];
@@ -1023,7 +1010,7 @@ void Task_NewGameSpeech17(u8 taskId)
}
//Slide new trainer sprite from right of screen
-void Task_NewGameSpeech18(u8 taskId)
+static void Task_NewGameSpeech18(u8 taskId)
{
u8 spriteId = gTasks[taskId].data[TD_TRAINER_SPRITE_ID];
@@ -1034,7 +1021,7 @@ void Task_NewGameSpeech18(u8 taskId)
else
{
gSprites[spriteId].pos1.x = 180;
- if (gTasks[taskId].data[5])
+ if (gTasks[taskId].data[TD_SUBTASK_DONE])
{
gSprites[spriteId].oam.objMode = ST_OAM_OBJ_NORMAL;
gTasks[taskId].func = Task_NewGameSpeech16; //Go back to gender menu
@@ -1042,7 +1029,7 @@ void Task_NewGameSpeech18(u8 taskId)
}
}
-void Task_NewGameSpeech19(u8 taskId)
+static void Task_NewGameSpeech19(u8 taskId)
{
MenuDrawTextWindow(2, 13, 27, 18);
//"All right. What's your name?"
@@ -1050,7 +1037,7 @@ void Task_NewGameSpeech19(u8 taskId)
gTasks[taskId].func = Task_NewGameSpeech20;
}
-void Task_NewGameSpeech20(u8 taskId)
+static void Task_NewGameSpeech20(u8 taskId)
{
if (BirchSpeechUpdateWindowText())
{
@@ -1060,7 +1047,7 @@ void Task_NewGameSpeech20(u8 taskId)
}
//Handle name menu selection
-void Task_NewGameSpeech21(u8 taskId)
+static void Task_NewGameSpeech21(u8 taskId)
{
s8 selection = NameMenuProcessInput();
@@ -1091,7 +1078,7 @@ void Task_NewGameSpeech21(u8 taskId)
}
//Open naming screen
-void Task_NewGameSpeech22(u8 taskId)
+static void Task_NewGameSpeech22(u8 taskId)
{
if (!gPaletteFade.active)
{
@@ -1100,7 +1087,7 @@ void Task_NewGameSpeech22(u8 taskId)
}
}
-void Task_NewGameSpeech23(u8 taskId)
+static void Task_NewGameSpeech23(u8 taskId)
{
MenuDrawTextWindow(2, 13, 27, 18);
//"So it's (PLAYER)?"
@@ -1109,7 +1096,7 @@ void Task_NewGameSpeech23(u8 taskId)
gTasks[taskId].func = Task_NewGameSpeech24;
}
-void Task_NewGameSpeech24(u8 taskId)
+static void Task_NewGameSpeech24(u8 taskId)
{
if (BirchSpeechUpdateWindowText())
{
@@ -1119,7 +1106,7 @@ void Task_NewGameSpeech24(u8 taskId)
}
//Handle yes/no menu selection
-void Task_NewGameSpeech25(u8 taskId)
+static void Task_NewGameSpeech25(u8 taskId)
{
switch (ProcessMenuInputNoWrap_())
{
@@ -1140,7 +1127,7 @@ void Task_NewGameSpeech25(u8 taskId)
}
}
-void Task_NewGameSpeech26(u8 taskId)
+static void Task_NewGameSpeech26(u8 taskId)
{
if (gTasks[taskId].data[TD_BGHOFS])
{
@@ -1153,7 +1140,7 @@ void Task_NewGameSpeech26(u8 taskId)
}
}
-void Task_NewGameSpeech27(u8 taskId)
+static void Task_NewGameSpeech27(u8 taskId)
{
if (gTasks[taskId].data[TD_SUBTASK_DONE])
{
@@ -1188,7 +1175,7 @@ void Task_NewGameSpeech27(u8 taskId)
}
}
-void Task_NewGameSpeech28(u8 taskId)
+static void Task_NewGameSpeech28(u8 taskId)
{
if (gTasks[taskId].data[TD_SUBTASK_DONE])
{
@@ -1216,7 +1203,7 @@ void Task_NewGameSpeech28(u8 taskId)
}
}
-void Task_NewGameSpeech29(u8 taskId)
+static void Task_NewGameSpeech29(u8 taskId)
{
if (gTasks[taskId].data[TD_SUBTASK_DONE])
{
@@ -1235,7 +1222,7 @@ void Task_NewGameSpeech29(u8 taskId)
else
{
u8 spriteId;
-
+
//Fade in trainer and background
if (gSaveBlock2.playerGender)
spriteId = (u8)gTasks[taskId].data[TD_MAY_SPRITE_ID];
@@ -1256,7 +1243,7 @@ void Task_NewGameSpeech29(u8 taskId)
}
}
-void Task_NewGameSpeech30(u8 taskId)
+static void Task_NewGameSpeech30(u8 taskId)
{
if (gTasks[taskId].data[TD_SUBTASK_DONE])
{
@@ -1274,7 +1261,7 @@ void Task_NewGameSpeech30(u8 taskId)
gSprites[spriteId].affineAnims = (union AffineAnimCmd **)gSpriteAffineAnimTable_81E79AC;
InitSpriteAffineAnim(&gSprites[spriteId]);
StartSpriteAffineAnim(&gSprites[spriteId], 0);
- gSprites[spriteId].callback = sub_800B240;
+ gSprites[spriteId].callback = ShrinkPlayerSprite;
BeginNormalPaletteFade(0x0000FFFF, 0, 0, 0x10, 0);
FadeOutBGM(4);
gTasks[taskId].func = Task_NewGameSpeech31;
@@ -1282,7 +1269,7 @@ void Task_NewGameSpeech30(u8 taskId)
}
}
-void Task_NewGameSpeech31(u8 taskId)
+static void Task_NewGameSpeech31(u8 taskId)
{
u8 spriteId = gTasks[taskId].data[TD_TRAINER_SPRITE_ID];
@@ -1290,7 +1277,7 @@ void Task_NewGameSpeech31(u8 taskId)
gTasks[taskId].func = Task_NewGameSpeech32;
}
-void Task_NewGameSpeech32(u8 taskId)
+static void Task_NewGameSpeech32(u8 taskId)
{
if (!gPaletteFade.active)
{
@@ -1302,7 +1289,7 @@ void Task_NewGameSpeech32(u8 taskId)
}
}
-void Task_NewGameSpeech33(u8 taskId)
+static void Task_NewGameSpeech33(u8 taskId)
{
if (!gPaletteFade.active)
{
@@ -1339,7 +1326,7 @@ void CB_ContinueNewGameSpeechPart2()
ResetPaletteFade();
- LZ77UnCompVram(gUnknown_081E768C, (void *)BG_VRAM);
+ LZ77UnCompVram(gBirchIntroShadowGfx, (void *)BG_VRAM);
LZ77UnCompVram(gUnknown_081E7834, (void *)(BG_VRAM + 0x3800));
LoadPalette(gUnknown_081E764C, 0, 0x40);
@@ -1360,12 +1347,12 @@ void CB_ContinueNewGameSpeechPart2()
if (gSaveBlock2.playerGender != MALE)
{
- gTasks[taskId].data[6] = FEMALE;
+ gTasks[taskId].data[TD_GENDER_SELECTION] = FEMALE;
spriteId = gTasks[taskId].data[TD_MAY_SPRITE_ID];
}
else
{
- gTasks[taskId].data[6] = MALE;
+ gTasks[taskId].data[TD_GENDER_SELECTION] = MALE;
spriteId = gTasks[taskId].data[TD_BRENDAN_SPRITE_ID];
}
@@ -1403,14 +1390,14 @@ void nullsub_34(struct Sprite *sprite)
{
}
-void sub_800B240(struct Sprite *sprite)
+void ShrinkPlayerSprite(struct Sprite *sprite)
{
u32 y = (sprite->pos1.y << 16) + sprite->data0 + 0xC000;
sprite->pos1.y = y >> 16;
sprite->data0 = y;
}
-u8 CreateAzurillSprite(u8 a1, u8 a2)
+u8 CreateAzurillSprite(u8 x, u8 y)
{
DecompressPicFromTable_2(
&gMonFrontPicTable[SPECIES_AZURILL],
@@ -1421,7 +1408,7 @@ u8 CreateAzurillSprite(u8 a1, u8 a2)
SPECIES_AZURILL);
LoadCompressedObjectPalette(&gMonPaletteTable[SPECIES_AZURILL]);
GetMonSpriteTemplate_803C56C(SPECIES_AZURILL, 1);
- return CreateSprite(&gUnknown_02024E8C, a1, a2, 0);
+ return CreateSprite(&gUnknown_02024E8C, x, y, 0);
}
void AddBirchSpeechObjects(u8 taskId)
@@ -1463,7 +1450,7 @@ enum {
TD_FRAMECOUNTER
};
-void Task_SpriteFadeOut(u8 taskId)
+static void Task_SpriteFadeOut(u8 taskId)
{
if (gTasks[taskId].data[TD_EVA] == 0)
{
@@ -1487,14 +1474,14 @@ void Task_SpriteFadeOut(u8 taskId)
}
//Launches a helper task to fade out sprites
-void StartSpriteFadeOut(u8 taskId, u8 interval)
+static void StartSpriteFadeOut(u8 taskId, u8 interval)
{
u8 newTaskId;
REG_BLDCNT = 592;
REG_BLDALPHA = 16;
REG_BLDY = 0;
- gTasks[taskId].data[5] = FALSE;
+ gTasks[taskId].data[TD_SUBTASK_DONE] = FALSE;
newTaskId = CreateTask(Task_SpriteFadeOut, 0);
gTasks[newTaskId].data[TD_PARENT_TASK_ID] = taskId;
@@ -1504,11 +1491,11 @@ void StartSpriteFadeOut(u8 taskId, u8 interval)
gTasks[newTaskId].data[TD_FRAMECOUNTER] = interval;
}
-void Task_SpriteFadeIn(u8 taskId)
+static void Task_SpriteFadeIn(u8 taskId)
{
if (gTasks[taskId].data[TD_EVA] == 16)
{
- gTasks[gTasks[taskId].data[TD_PARENT_TASK_ID]].data[5] = TRUE;
+ gTasks[gTasks[taskId].data[TD_PARENT_TASK_ID]].data[TD_SUBTASK_DONE] = TRUE;
DestroyTask(taskId);
}
else if (gTasks[taskId].data[TD_FRAMECOUNTER])
@@ -1525,7 +1512,7 @@ void Task_SpriteFadeIn(u8 taskId)
}
//Launches a helper task to fade in sprites
-void StartSpriteFadeIn(u8 taskId, u8 interval)
+static void StartSpriteFadeIn(u8 taskId, u8 interval)
{
u8 newTaskId;
@@ -1547,22 +1534,16 @@ enum {
TD_DELAY,
};
-void sub_800B5A8(u8 taskId)
+static void HandleFloorShadowFadeOut(u8 taskId)
{
if (gTasks[taskId].data[TD_DELAY])
- {
gTasks[taskId].data[TD_DELAY]--;
- }
else
{
if (gTasks[taskId].data[TD_FADELEVEL] == 8)
- {
DestroyTask(taskId);
- }
else if (gTasks[taskId].data[TD_FRAMECOUNTER])
- {
gTasks[taskId].data[TD_FRAMECOUNTER]--;
- }
else
{
gTasks[taskId].data[TD_FRAMECOUNTER] = gTasks[taskId].data[TD_INTERVAL];
@@ -1573,9 +1554,9 @@ void sub_800B5A8(u8 taskId)
}
//Launches a helper task to fade out the background
-void StartBackgroundFadeOut(u8 taskId, u8 interval)
+static void StartBackgroundFadeOut(u8 taskId, u8 interval)
{
- u8 newTaskId = CreateTask(sub_800B5A8, 0);
+ u8 newTaskId = CreateTask(HandleFloorShadowFadeOut, 0);
gTasks[newTaskId].data[TD_PARENT_TASK_ID] = taskId;
gTasks[newTaskId].data[TD_FADELEVEL] = 0;
gTasks[newTaskId].data[TD_DELAY] = 8;
@@ -1583,24 +1564,18 @@ void StartBackgroundFadeOut(u8 taskId, u8 interval)
gTasks[newTaskId].data[TD_FRAMECOUNTER] = interval;
}
-void sub_800B654(u8 taskId)
+static void HandleFloorShadowFadeIn(u8 taskId)
{
if (gTasks[taskId].data[TD_DELAY])
- {
gTasks[taskId].data[TD_DELAY]--;
- }
else
{
if (gTasks[taskId].data[TD_FADELEVEL] == 0)
- {
DestroyTask(taskId);
- }
else
{
if (gTasks[taskId].data[TD_FRAMECOUNTER])
- {
gTasks[taskId].data[TD_FRAMECOUNTER]--;
- }
else
{
gTasks[taskId].data[TD_FRAMECOUNTER] = gTasks[taskId].data[TD_INTERVAL];
@@ -1612,9 +1587,9 @@ void sub_800B654(u8 taskId)
}
//Launches a helper task to fade in the background
-void StartBackgroundFadeIn(u8 taskId, u8 interval)
+static void StartBackgroundFadeIn(u8 taskId, u8 interval)
{
- u8 newTaskId = CreateTask(sub_800B654, 0);
+ u8 newTaskId = CreateTask(HandleFloorShadowFadeIn, 0);
gTasks[newTaskId].data[TD_PARENT_TASK_ID] = taskId;
gTasks[newTaskId].data[TD_FADELEVEL] = 8;
gTasks[newTaskId].data[TD_DELAY] = 8;
@@ -1622,7 +1597,7 @@ void StartBackgroundFadeIn(u8 taskId, u8 interval)
gTasks[newTaskId].data[TD_FRAMECOUNTER] = interval;
}
-void CreateGenderMenu(u8 left, u8 top)
+static void CreateGenderMenu(u8 left, u8 top)
{
u8 menuLeft, menuTop;
MenuDrawTextWindow(left, top, left + 6, top + 5);
@@ -1632,12 +1607,12 @@ void CreateGenderMenu(u8 left, u8 top)
InitMenu(0, menuLeft, menuTop, 2, 0, 5);
}
-s8 GenderMenuProcessInput(void)
+static s8 GenderMenuProcessInput(void)
{
return ProcessMenuInputNoWrap();
}
-void CreateNameMenu(u8 left, u8 top)
+static void CreateNameMenu(u8 left, u8 top)
{
MenuDrawTextWindow(left, top, left + 10, top + 11);
@@ -1649,20 +1624,20 @@ void CreateNameMenu(u8 left, u8 top)
InitMenu(0, left + 1, top + 1, 5, 0, 9);
}
-s8 NameMenuProcessInput(void)
+static s8 NameMenuProcessInput(void)
{
return ProcessMenuInput();
}
-void SetPresetPlayerName(u8 index)
+static void SetPresetPlayerName(u8 index)
{
u8 i;
u8 *name;
if (gSaveBlock2.playerGender == MALE)
- name = gMalePresetNames[index][0];
+ name = gMalePresetNames[index].text;
else
- name = gFemalePresetNames[index][0];
+ name = gFemalePresetNames[index].text;
for (i = 0; i < 7; i++)
gSaveBlock2.playerName[i] = name[i];
diff --git a/src/map_obj_lock.c b/src/map_obj_lock.c
index 422903a97..b1e7bb3df 100644
--- a/src/map_obj_lock.c
+++ b/src/map_obj_lock.c
@@ -1,17 +1,8 @@
#include "global.h"
+#include "map_obj_lock.h"
+#include "asm.h"
+#include "field_player_avatar.h"
#include "task.h"
-#include "fieldmap.h"
-
-extern void sub_80594C0(void);
-extern void sub_80597F4(void);
-extern void player_bitmagic(void);
-extern void sub_80643A4(struct MapObject *);
-extern void sub_8064470(u8);
-extern u8 GetFieldObjectIdByLocalIdAndMap(u8, u8, u8);
-extern u8 FieldObjectClearAnimIfSpecialAnimFinished(void *);
-extern void sub_80A2178(void);
-extern void sub_806451C(void);
-extern u8 FieldObjectFaceOppositeDirection(void *, u8);
extern u16 gScriptFacing;
@@ -45,9 +36,9 @@ bool8 sub_8064CFC(void)
}
}
-void sub_8064D20(void)
+void ScriptFreezeMapObjects(void)
{
- player_bitmagic();
+ FreezeMapObjects();
CreateTask(sub_8064CDC, 80);
}
@@ -62,7 +53,7 @@ void sub_8064D38(u8 taskId)
}
if (!task->data[1] && !gMapObjects[gSelectedMapObject].mapobj_bit_1)
{
- sub_80643A4(&gMapObjects[gSelectedMapObject]);
+ FreezeMapObject(&gMapObjects[gSelectedMapObject]);
task->data[1] = 1;
}
if (task->data[0] && task->data[1])
@@ -85,11 +76,11 @@ bool8 sub_8064DB4(void)
void sub_8064DD8(void)
{
u8 taskId;
- sub_8064470(gSelectedMapObject);
+ FreezeMapObjectsExceptOne(gSelectedMapObject);
taskId = CreateTask(sub_8064D38, 80);
if (!gMapObjects[gSelectedMapObject].mapobj_bit_1)
{
- sub_80643A4(&gMapObjects[gSelectedMapObject]);
+ FreezeMapObject(&gMapObjects[gSelectedMapObject]);
gTasks[taskId].data[1] = 1;
}
}
@@ -99,7 +90,7 @@ void sub_8064E2C(void)
u8 objectId = GetFieldObjectIdByLocalIdAndMap(0xFF, 0, 0);
FieldObjectClearAnimIfSpecialAnimFinished(&gMapObjects[objectId]);
sub_80A2178();
- sub_806451C();
+ UnfreezeMapObjects();
}
void unref_sub_8064E5C(void)
@@ -111,7 +102,7 @@ void unref_sub_8064E5C(void)
objectId = GetFieldObjectIdByLocalIdAndMap(0xFF, 0, 0);
FieldObjectClearAnimIfSpecialAnimFinished(&gMapObjects[objectId]);
sub_80A2178();
- sub_806451C();
+ UnfreezeMapObjects();
}
void sub_8064EAC(void)
diff --git a/src/matsuda_debug_menu.c b/src/matsuda_debug_menu.c
new file mode 100644
index 000000000..131369e91
--- /dev/null
+++ b/src/matsuda_debug_menu.c
@@ -0,0 +1,1132 @@
+#include "global.h"
+#include "asm.h"
+#include "link.h"
+#include "main.h"
+#include "menu.h"
+#include "palette.h"
+#include "rom4.h"
+#include "sprite.h"
+#include "start_menu.h"
+#include "string_util.h"
+#include "task.h"
+#include "text.h"
+
+#define BIT(n) (1 << (n))
+
+extern u8 gUnknown_0203856C;
+extern u8 gUnknown_0203857D[][64];
+extern u16 gUnknown_02038670[];
+extern u16 gUnknown_02038678[];
+extern u16 gUnknown_02038680[];
+extern u8 gUnknown_02038690[];
+extern u8 gUnknown_02038694;
+extern u8 gIsLinkContest;
+extern u8 gUnknown_0203869B;
+extern u8 gContestPlayerMonIndex;
+extern u16 gScriptContestCategory;
+extern u16 gScriptContestRank;
+
+extern struct Window gMenuWindow;
+
+extern u16 gUnknown_030042A4;
+extern u16 gUnknown_030042A0;
+extern u16 gUnknown_030042C0;
+extern u16 gUnknown_030041B4;
+extern u16 gUnknown_03004288;
+extern u16 gUnknown_03004280;
+extern u16 gUnknown_030041B0;
+extern u16 gUnknown_030041B8;
+extern struct Window gUnknown_03004210;
+extern u8 (*gCallback_03004AE8)(void);
+
+extern u8 gUnknown_083C926E[][2];
+extern u8 gUnknown_083C9282[];
+extern const u8 gUnknown_083C928E[][2];
+extern u8 gUnknown_083C9296[];
+extern u8 gUnknown_083C92A8[];
+extern u8 unk_2000000[];
+extern u8 gMatsudaDebugMenu_GoBackText[];
+extern u8 gMatsudaDebugMenu_BattlePointsText[];
+extern u8 gMatsudaDebugMenu_StartText[];
+
+extern struct SpritePalette gUnknown_083C92BC;
+extern struct SpriteSheet gUnknown_083C92B4;
+extern struct SpriteTemplate gSpriteTemplate_83C92CC;
+extern void (*gUnknown_083C92E4[][2])(struct Sprite *, s8);
+extern u32 gUnknown_083C9400[2];
+
+extern u8 gMoveNames[][13];
+
+extern u8 gMatsudaDebugMenu_UnknownByteArray[];
+extern u8* gMatsudaDebugMenuTextList1[];
+extern u8* gMatsudaDebugMenuTextList2[];
+extern u8* gMatsudaDebugMenuTextList3[];
+extern u8 gMatsudaDebugMenuContestTopLeft[][2];
+
+struct ContestPokemon
+{
+ /* 0x00 */ u16 species;
+ /* 0x02 */ u8 nickname[POKEMON_NAME_LENGTH];
+ /* 0x0D */ u8 trainerName[8];
+ /* 0x15 */ u8 filler15[9];
+ /* 0x1E */ u16 moves[4]; // moves
+ /* 0x26 */ u8 cool; // cool
+ /* 0x27 */ u8 beauty; // beauty
+ /* 0x28 */ u8 cute; // cute
+ /* 0x29 */ u8 smart; // smart
+ /* 0x2A */ u8 tough; // tough
+ /* 0x2B */ u8 sheen; // sheen
+ /* 0x2C */ u8 filler2C[20];
+};
+
+extern struct ContestPokemon gContestMons[];
+
+extern bool8 gReceivedRemoteLinkPlayers;
+extern u16 gBlockRecvBuffer[MAX_LINK_PLAYERS][BLOCK_BUFFER_SIZE / 2];
+
+extern struct MenuAction gMatsudaDebugMenuActions[];
+
+static bool8 sub_80A9B78(void);
+static void sub_80A9BE4(u8 taskId);
+static void sub_80A9C98(u8);
+static void sub_80A9CC0(u8);
+static void sub_80A9CDC(u8);
+static void sub_80A9D58(u8);
+static void sub_80A9DBC(u8);
+static void sub_80A9DD8(u8);
+static void sub_80A9E04(u8 taskId);
+static void sub_80A9E3C(u8 taskId);
+static void sub_80A9E80(u8);
+static void sub_80A9ED8(u8);
+static void sub_80A9F10(u8);
+static void sub_80AA10C(void);
+static void sub_80AA5BC(u8);
+static void sub_80AA614(u8, u8);
+static void sub_80AAD08(struct Sprite *, s8);
+extern void sub_80AB184(void);
+extern void sub_80AB47C(void);
+extern int sub_80B2A7C(u8); //Don't know return type size
+
+u8 unref_sub_80A9B28(void)
+{
+ MenuZeroFillScreen();
+ MenuDrawTextWindow(0, 0, 17, 18);
+ PrintMenuItems(1, 1, 7, gMatsudaDebugMenuActions);
+ InitMenu(0, 1, 1, 7, 0, 16);
+ gCallback_03004AE8 = sub_80A9B78;
+ return 0;
+}
+
+static bool8 sub_80A9B78(void)
+{
+ s8 choice = ProcessMenuInput();
+
+ switch(choice)
+ {
+ case -2:
+ return FALSE;
+ default:
+ gCallback_03004AE8 = gMatsudaDebugMenuActions[choice].func;
+ return FALSE;
+ case -1:
+ CloseMenu();
+ return TRUE;
+ }
+}
+
+s8 MatsudaDebugMenu_ContestResults(void)
+{
+ BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0);
+ CreateTask(sub_80A9BE4, 0xFF);
+ return 1;
+}
+
+static void sub_80A9BE4(u8 taskId)
+{
+ if(!gPaletteFade.active)
+ {
+ DestroyTask(taskId);
+
+ if(!(gIsLinkContest & 1))
+ sub_80AF668();
+
+ sub_80C2358();
+ }
+}
+
+s8 MatsudaDebugMenu_Contest(void)
+{
+ gIsLinkContest = 0;
+ sub_80AA10C();
+ return 0;
+}
+
+s8 MatsudaDebugMenu_ContestComm(void)
+{
+ sub_80AA10C();
+ return 0;
+}
+
+s8 MatsudaDebugMenu_CommTest(void)
+{
+ u8 newTaskId;
+ u8 newTaskId2;
+
+ newTaskId = CreateTask(sub_80A9E3C, 0);
+ SetTaskFuncWithFollowupFunc(newTaskId, sub_80A9E3C, sub_80A9C98);
+ newTaskId2 = CreateTask(sub_80A9E04, 1);
+ gTasks[newTaskId2].data[10] = newTaskId;
+ gTasks[newTaskId].data[10] = newTaskId2;
+ return 1;
+}
+
+static void sub_80A9C98(u8 taskId)
+{
+ sub_80AE098(0);
+ SetTaskFuncWithFollowupFunc(taskId, sub_80C8734, sub_80A9CC0);
+}
+
+static void sub_80A9CC0(u8 taskId)
+{
+ SetTaskFuncWithFollowupFunc(taskId, sub_80C88AC, sub_80A9CDC);
+}
+
+static void sub_80A9CDC(u8 taskId)
+{
+ SetTaskFuncWithFollowupFunc(taskId, sub_80C8E1C, sub_80A9D58);
+}
+
+static void sub_80A9CF8(u8 taskId)
+{
+ if(gReceivedRemoteLinkPlayers == FALSE)
+ {
+ DestroyTask(gTasks[taskId].data[10]);
+ DestroyTask(taskId);
+ CloseMenu();
+ }
+}
+
+static void sub_80A9D30(u8 taskId)
+{
+ sub_800832C();
+ gTasks[taskId].func = sub_80A9CF8;
+}
+
+static void sub_80A9D58(u8 taskId)
+{
+ int i;
+ u8 dest[4];
+
+ for(i = 0; i < 4; i++)
+ dest[i] = gTasks[taskId].data[5 + i];
+
+ gUnknown_0203869B = sub_80C4B34(dest);
+ sub_80AE82C((u8)gScriptContestCategory);
+ sub_80B0F28(0);
+ SetTaskFuncWithFollowupFunc(taskId, sub_80C8EBC, sub_80A9DBC);
+}
+
+static void sub_80A9DBC(u8 taskId)
+{
+ SetTaskFuncWithFollowupFunc(taskId, sub_80C8F34, sub_80A9DD8);
+}
+
+static void sub_80A9DD8(u8 taskId)
+{
+ DestroyTask(gTasks[taskId].data[10]);
+ DestroyTask(taskId);
+ CloseMenu();
+}
+
+static void sub_80A9E04(u8 taskId)
+{
+ if(gMain.newKeys == 2)
+ gTasks[(u8)gTasks[taskId].data[10]].func = sub_80A9D30;
+}
+
+static void sub_80A9E3C(u8 taskId)
+{
+ u8 i;
+
+ OpenLink();
+
+ for(i = 0; i < 4; i++)
+ gBlockRecvBuffer[i][0] = 255;
+
+ gTasks[taskId].data[0] = 0;
+ gTasks[taskId].func = sub_80A9E80;
+}
+
+static void sub_80A9E80(u8 taskId)
+{
+ TaskFunc func;
+
+ if(gTasks[taskId].data[0] < 10)
+ gTasks[taskId].data[0]++;
+ else
+ {
+ if(GetLinkPlayerCount_2() > 3)
+ {
+ gTasks[taskId].data[0] = 0;
+
+ if(IsLinkMaster())
+ {
+ func = sub_80A9ED8;
+ gTasks[taskId].func = (TaskFunc)func;
+ }
+ else
+ {
+ func = sub_80A9F10;
+ gTasks[taskId].func = (TaskFunc)func;
+ }
+ }
+ }
+}
+
+static void sub_80A9ED8(u8 taskId)
+{
+ gTasks[taskId].data[0] = gTasks[taskId].data[0] + 1;
+ if((gTasks[taskId].data[0]) == 101)
+ {
+ sub_8007F4C();
+ gTasks[taskId].data[0] = 0;
+ gTasks[taskId].func = sub_80A9F10;
+ }
+}
+
+static void sub_80A9F10(u8 taskId)
+{
+ if(gReceivedRemoteLinkPlayers)
+ {
+ gContestPlayerMonIndex = GetMultiplayerId();
+ if(GetLinkPlayerCount() == 4)
+ {
+ gIsLinkContest = 1;
+ SwitchTaskToFollowupFunc(taskId);
+ }
+ }
+}
+
+static void sub_80A9F50(void)
+{
+ REG_DISPCNT = DISPCNT_OBJ_1D_MAP;
+ REG_DISPCNT |= DISPCNT_OBJ_ON | DISPCNT_BG0_ON;
+ SetUpWindowConfig(&gWindowConfig_81E6C3C);
+ InitWindowFromConfig(&gMenuWindow, &gWindowConfig_81E6C3C);
+ REG_MOSAIC = 0;
+ REG_BLDCNT = 0;
+ REG_BLDALPHA = 0;
+ REG_BLDY = 0;
+ REG_BG0HOFS = 0;
+ REG_BG0VOFS = 0;
+ gUnknown_030042A4 = 0;
+ gUnknown_030042A0 = 0;
+ gUnknown_030042C0 = 0;
+ gUnknown_030041B4 = 0;
+ gUnknown_03004288 = 0;
+ gUnknown_03004280 = 0;
+ gUnknown_030041B0 = 0;
+ gUnknown_030041B8 = 0;
+}
+
+static void sub_80A9FE4(void)
+{
+ u8 *addr;
+ u32 i;
+ u8 ptr[5];
+
+ memcpy(ptr, gMatsudaDebugMenu_UnknownByteArray, 5);
+
+ addr = (void *)VRAM;
+ i = VRAM_SIZE;
+
+ while(1)
+ {
+ DmaFill32(3, 0, addr, 0x1000);
+ addr += 0x1000;
+ i -= 0x1000;
+ if(i <= 0x1000)
+ {
+ DmaFill32(3, 0, addr, i);
+ break;
+ }
+ }
+ sub_80034D4((void *)VRAM, ptr);
+ LoadFontDefaultPalette(&gWindowConfig_81E6C3C);
+}
+
+static void sub_80AA064(void)
+{
+ AnimateSprites();
+ BuildOamBuffer();
+ RunTasks();
+ UpdatePaletteFade();
+ if(gMain.newKeys == 4)
+ SetMainCallback2(sub_805469C);
+}
+
+static void sub_80AA090(void)
+{
+ REG_BG0HOFS = gUnknown_030042A4;
+ REG_BG0VOFS = gUnknown_030042A0;
+ REG_BG1HOFS = gUnknown_030042C0;
+ REG_BG1VOFS = gUnknown_030041B4;
+ REG_BG2HOFS = gUnknown_03004288;
+ REG_BG2VOFS = gUnknown_03004280;
+ REG_BG3HOFS = gUnknown_030041B0;
+ REG_BG3VOFS = gUnknown_030041B8;
+ LoadOam();
+ ProcessSpriteCopyRequests();
+ TransferPlttBuffer();
+ sub_8089668();
+}
+
+static void sub_80AA10C(void)
+{
+ u8 i;
+ u8 zero;
+ u8 spriteId;
+
+ gPaletteFade.bufferTransferDisabled = 1;
+ SetVBlankCallback(0);
+ sub_80A9F50();
+ dp12_8087EA4();
+ ResetPaletteFade();
+ ResetSpriteData();
+ ResetTasks();
+ FreeAllSpritePalettes();
+ sub_80A9FE4();
+ SetVBlankCallback(sub_80AA090);
+ SetMainCallback2(sub_80AA064);
+ gPaletteFade.bufferTransferDisabled = 0;
+ gUnknown_02038694 = 0;
+
+ if(!(gContestMons[0].nickname[0]))
+ sub_80AE398(0, 0);
+
+ sub_80AE098(gUnknown_02038694);
+
+ for(i = 0; i < 6; i++)
+ {
+ sub_8003460(&gMenuWindow, gMatsudaDebugMenuTextList1[i],
+ (0xA * i + 0x2A), gMatsudaDebugMenuContestTopLeft[i][0],
+ gMatsudaDebugMenuContestTopLeft[i][1]);
+ }
+
+ gScriptContestCategory = gScriptContestRank = 0;
+ zero = 0; // it's possible this was some assignment that matsuda used to quickly edit and test things without changing whats passed to the later functions.
+ sub_80AA5BC(zero);
+ sub_80AA5E8(gScriptContestRank);
+ sub_8003460(&gMenuWindow, gMatsudaDebugMenu_GoBackText, 0xD6, 0x12, 0x12);
+ sub_8003460(&gMenuWindow, gMatsudaDebugMenu_BattlePointsText, 0xDC, zero, 0xC);
+ LoadSpriteSheet(&gUnknown_083C92B4);
+ LoadSpritePalette(&gUnknown_083C92BC);
+ sub_80AA280(3);
+ sub_80AA658(3);
+ sub_80AA614(3, zero);
+ spriteId = CreateSprite(&gSpriteTemplate_83C92CC, gUnknown_083C9296[3], gUnknown_083C92A8[1], 5);
+ gSprites[spriteId].data0 = 1;
+ gSprites[spriteId].data1 = 1;
+ gSprites[spriteId].data2 = 3;
+ gSprites[spriteId].data3 = zero; // only this assignment of zero is necessary. other replacements of 0 with zero do not change the asm, compiler will treat it the same.
+}
+
+void sub_80AA280(u8 var)
+{
+ u8 i;
+
+ FillWindowRect_DefaultPalette(&gMenuWindow, 0, 0, 0, 0x1E, 3);
+ StringCopy(unk_2000000, gMatsudaDebugMenu_StartText);
+ StringAppend(unk_2000000, &gUnknown_0203857D[var][0]);
+
+ for(i = 0; i < 4; i++)
+ {
+ if(var == i)
+ {
+ sub_8003460(&gMenuWindow, unk_2000000, (10 * i + 2), gUnknown_083C926E[i][0], gUnknown_083C926E[i][1]);
+ }
+ else
+ {
+ u8 *ptr = gUnknown_0203857D[i];
+ sub_8003460(&gMenuWindow, ptr, (10 * i + 2), gUnknown_083C926E[i][0], gUnknown_083C926E[i][1]);
+ }
+ }
+}
+
+static void sub_80AA340(u8 var)
+{
+ ConvertIntToDecimalStringN(unk_2000000, gContestMons[var].cool, STR_CONV_MODE_RIGHT_ALIGN, 3);
+ sub_8003460(&gMenuWindow, unk_2000000, 0x66, gUnknown_083C9282[0], gUnknown_083C9282[1]);
+}
+
+static void sub_80AA388(u8 var)
+{
+ ConvertIntToDecimalStringN(unk_2000000, gContestMons[var].cute, STR_CONV_MODE_RIGHT_ALIGN, 3);
+ sub_8003460(&gMenuWindow, unk_2000000, 0x6C, gUnknown_083C9282[2], gUnknown_083C9282[3]);
+}
+
+static void sub_80AA3D0(u8 var)
+{
+ ConvertIntToDecimalStringN(unk_2000000, gContestMons[var].beauty, STR_CONV_MODE_RIGHT_ALIGN, 3);
+ sub_8003460(&gMenuWindow, unk_2000000, 0x72, gUnknown_083C9282[4], gUnknown_083C9282[5]);
+}
+
+static void sub_80AA418(u8 var)
+{
+ ConvertIntToDecimalStringN(unk_2000000, gContestMons[var].smart, STR_CONV_MODE_RIGHT_ALIGN, 3);
+ sub_8003460(&gMenuWindow, unk_2000000, 0x78, gUnknown_083C9282[6], gUnknown_083C9282[7]);
+}
+
+static void sub_80AA460(u8 var)
+{
+ ConvertIntToDecimalStringN(unk_2000000, gContestMons[var].tough, STR_CONV_MODE_RIGHT_ALIGN, 3);
+ sub_8003460(&gMenuWindow, unk_2000000, 0x7E, gUnknown_083C9282[8], gUnknown_083C9282[9]);
+}
+
+static void sub_80AA4A8(u8 var)
+{
+ ConvertIntToDecimalStringN(unk_2000000, gContestMons[var].sheen, STR_CONV_MODE_RIGHT_ALIGN, 3);
+ sub_8003460(&gMenuWindow, unk_2000000, 0x84, gUnknown_083C9282[10], gUnknown_083C9282[11]);
+}
+
+static void sub_80AA4F0(u8 var1, u8 var2)
+{
+ FillWindowRect_DefaultPalette(&gMenuWindow, 0, gUnknown_083C928E[var2][0], gUnknown_083C928E[var2][1], gUnknown_083C928E[var2][0] + 7, gUnknown_083C928E[var2][1] + 1);
+ sub_8003460(&gMenuWindow, gMoveNames[gContestMons[var1].moves[var2]], 0x8A + var2 * 14, gUnknown_083C928E[var2][0], gUnknown_083C928E[var2][1]);
+ ConvertIntToDecimalStringN(gStringVar1, gContestMons[var1].moves[var2], STR_CONV_MODE_LEADING_ZEROS, 3);
+ sub_8003460(&gMenuWindow, gStringVar1, 0xFA + var2 * 6, gUnknown_083C928E[var2][0] + 7, gUnknown_083C928E[var2][1]);
+}
+
+static void sub_80AA5BC(u8 var)
+{
+ sub_8003460(&gMenuWindow, gMatsudaDebugMenuTextList2[var], 0xC2, 3, 0x12);
+}
+
+void sub_80AA5E8(u8 var)
+{
+ sub_8003460(&gMenuWindow, gMatsudaDebugMenuTextList3[var], 0xE8, 3, 4);
+}
+
+static void sub_80AA614(u8 var1, u8 var2)
+{
+ u16 var = sub_80AE770(var1, var2);
+
+ ConvertIntToDecimalStringN(unk_2000000, var, STR_CONV_MODE_RIGHT_ALIGN, 3);
+ sub_8003460(&gMenuWindow, unk_2000000, 0xE2, 3, 0xC);
+}
+
+void sub_80AA658(u8 var)
+{
+ u8 i;
+
+ sub_80AA340(var);
+ sub_80AA388(var);
+ sub_80AA3D0(var);
+ sub_80AA418(var);
+ sub_80AA460(var);
+ sub_80AA4A8(var);
+
+ for(i = 0; i < 4; i++)
+ sub_80AA4F0(var, i);
+}
+
+void SetDebugMonForContest(void)
+{
+ SetMonData(&gPlayerParty[0], MON_DATA_COOL, &gContestMons[gContestPlayerMonIndex].cool);
+ SetMonData(&gPlayerParty[0], MON_DATA_CUTE, &gContestMons[gContestPlayerMonIndex].cute);
+ SetMonData(&gPlayerParty[0], MON_DATA_BEAUTY, &gContestMons[gContestPlayerMonIndex].beauty);
+ SetMonData(&gPlayerParty[0], MON_DATA_SMART, &gContestMons[gContestPlayerMonIndex].smart);
+ SetMonData(&gPlayerParty[0], MON_DATA_TOUGH, &gContestMons[gContestPlayerMonIndex].tough);
+ SetMonData(&gPlayerParty[0], MON_DATA_SHEEN, &gContestMons[gContestPlayerMonIndex].sheen);
+ SetMonData(&gPlayerParty[0], MON_DATA_MOVE1, (const u8 *) &gContestMons[gContestPlayerMonIndex].moves[0]);
+ SetMonData(&gPlayerParty[0], MON_DATA_MOVE2, (const u8 *) &gContestMons[gContestPlayerMonIndex].moves[1]);
+ SetMonData(&gPlayerParty[0], MON_DATA_MOVE3, (const u8 *) &gContestMons[gContestPlayerMonIndex].moves[2]);
+ SetMonData(&gPlayerParty[0], MON_DATA_MOVE4, (const u8 *) &gContestMons[gContestPlayerMonIndex].moves[3]);
+}
+
+void sub_80AA754(struct Sprite *sprite)
+{
+ switch (gMain.newAndRepeatedKeys)
+ {
+ case 0x10:
+ case 0x20:
+ sprite->data0 ^= 1;
+ break;
+ case 0x40:
+ if (sprite->data1 == 0)
+ sprite->data1 = 8;
+ else
+ sprite->data1--;
+ break;
+ case 0x80:
+ if (sprite->data1 == 8)
+ sprite->data1 = 0;
+ else
+ sprite->data1++;
+ break;
+ case 0x1:
+ gUnknown_083C92E4[sprite->data1][sprite->data0](sprite, 1);
+ sub_80AA614(sprite->data2, sprite->data3);
+ break;
+ case 0x2:
+ gUnknown_083C92E4[sprite->data1][sprite->data0](sprite, -1);
+ sub_80AA614(sprite->data2, sprite->data3);
+ break;
+ case 0x100:
+ gUnknown_083C92E4[sprite->data1][sprite->data0](sprite, 10);
+ sub_80AA614(sprite->data2, sprite->data3);
+ break;
+ case 0x200:
+ gUnknown_083C92E4[sprite->data1][sprite->data0](sprite, -10);
+ sub_80AA614(sprite->data2, sprite->data3);
+ break;
+ case 0x8:
+ sub_80AAD08(sprite, 1);
+ break;
+ }
+ sprite->pos1.x = gUnknown_083C9296[sprite->data0 + sprite->data1 * 2];
+ sprite->pos1.y = gUnknown_083C92A8[sprite->data1];
+}
+
+static void sub_80AA8A0(struct Sprite *sprite, s8 var1, u8 var2)
+{
+ if(var1 == 1)
+ {
+ sprite->data2 = var2;
+ sub_80AA280(var2);
+ sub_80AA658(sprite->data2);
+ }
+}
+
+void sub_80AA8C8(struct Sprite *sprite, s8 var1)
+{
+ sub_80AA8A0(sprite, var1, 0);
+}
+
+void sub_80AA8D8(struct Sprite *sprite, s8 var1)
+{
+ sub_80AA8A0(sprite, var1, 1);
+}
+
+void sub_80AA8E8(struct Sprite *sprite, s8 var1)
+{
+ sub_80AA8A0(sprite, var1, 2);
+}
+
+void sub_80AA8F8(struct Sprite *sprite, s8 var1)
+{
+ sub_80AA8A0(sprite, var1, 3);
+}
+
+static u8 sub_80AA908(u32 a1, u8 a2, s8 a3) // first param is unused.
+{
+ s16 val = a2 + a3;
+
+ if (val > 255)
+ val = 255;
+ else if (val < 0)
+ val = 0;
+
+ return val;
+}
+
+void sub_80AA930(struct Sprite *sprite, u8 var2)
+{
+ u8 val = sprite->data2;
+
+ gContestMons[sprite->data2].cool = sub_80AA908(val, gContestMons[sprite->data2].cool, var2);
+ sub_80AA340(sprite->data2);
+}
+
+void sub_80AA974(struct Sprite *sprite, u8 var2)
+{
+ u8 val = sprite->data2;
+
+ gContestMons[sprite->data2].cute = sub_80AA908(val, gContestMons[sprite->data2].cute, var2);
+ sub_80AA388(sprite->data2);
+}
+
+void sub_80AA9B8(struct Sprite *sprite, u8 var2)
+{
+ u8 val = sprite->data2;
+
+ gContestMons[sprite->data2].beauty = sub_80AA908(val, gContestMons[sprite->data2].beauty, var2);
+ sub_80AA3D0(sprite->data2);
+}
+
+void sub_80AA9FC(struct Sprite *sprite, u8 var2)
+{
+ u8 val = sprite->data2;
+
+ gContestMons[sprite->data2].smart = sub_80AA908(val, gContestMons[sprite->data2].smart, var2);
+ sub_80AA418(sprite->data2);
+}
+
+void sub_80AAA40(struct Sprite *sprite, u8 var2)
+{
+ u8 val = sprite->data2;
+
+ gContestMons[sprite->data2].tough = sub_80AA908(val, gContestMons[sprite->data2].tough, var2);
+ sub_80AA460(sprite->data2);
+}
+
+void sub_80AAA84(struct Sprite *sprite, u8 var2)
+{
+ u8 val = sprite->data2;
+
+ gContestMons[sprite->data2].sheen = sub_80AA908(val, gContestMons[sprite->data2].sheen, var2);
+ sub_80AA4A8(sprite->data2);
+}
+
+// a similar function is at 0x80AA908, however, it apparently returns the wrong type (u8 vs u16).
+static u16 sub_80AAAC8(u32 a1, u16 a2, s8 a3) // first param is unused.
+{
+ s16 val = a2 + a3;
+
+ if (val > 354)
+ val = 1;
+ else if (val < 0)
+ val = 354;
+
+ return val;
+}
+
+void sub_80AAAF0(struct Sprite *sprite, u8 var2)
+{
+ u8 val = sprite->data2;
+
+ gContestMons[sprite->data2].moves[0] = sub_80AAAC8(val, gContestMons[sprite->data2].moves[0], var2);
+ sub_80AA4F0(sprite->data2, 0);
+}
+
+void sub_80AAB30(struct Sprite *sprite, u8 var2)
+{
+ u8 val = sprite->data2;
+
+ gContestMons[sprite->data2].moves[1] = sub_80AAAC8(val, gContestMons[sprite->data2].moves[1], var2);
+ sub_80AA4F0(sprite->data2, 1);
+}
+
+void sub_80AAB70(struct Sprite *sprite, u8 var2)
+{
+ u8 val = sprite->data2;
+
+ gContestMons[sprite->data2].moves[2] = sub_80AAAC8(val, gContestMons[sprite->data2].moves[2], var2);
+ sub_80AA4F0(sprite->data2, 2);
+}
+
+void sub_80AABB0(struct Sprite *sprite, u8 var2)
+{
+ u8 val = sprite->data2;
+
+ gContestMons[sprite->data2].moves[3] = sub_80AAAC8(val, gContestMons[sprite->data2].moves[3], var2);
+ sub_80AA4F0(sprite->data2, 3);
+}
+
+void sub_80AABF0(struct Sprite *sprite, s8 var2)
+{
+ s8 a = (var2 > 0) ? 1 : -1;
+ s8 r4 = sprite->data3 + a;
+
+ if (r4 < 0)
+ r4 = 0;
+ else if (r4 > 4)
+ r4 = 4;
+ sub_80AA5BC(r4);
+ sprite->data3 = r4;
+ gScriptContestCategory = sprite->data3;
+ sub_80AE398(sprite->data3, gScriptContestRank);
+ sub_80AA280(sprite->data2);
+ sub_80AA658(sprite->data2);
+}
+
+void sub_80AAC5C(struct Sprite *sprite, s8 var2)
+{
+ if (var2 > 0)
+ gScriptContestRank++;
+ else if (gScriptContestRank != 0)
+ gScriptContestRank--;
+ if (gScriptContestRank > 3)
+ gScriptContestRank = 3;
+ sub_80AA5E8(gScriptContestRank);
+ sub_80AE398(gScriptContestCategory, gScriptContestRank);
+ sub_80AA280(sprite->data2);
+ sub_80AA658(sprite->data2);
+}
+
+void sub_80AACC4(void)
+{
+ UpdatePaletteFade();
+ if (!gPaletteFade.active)
+ {
+ SetDebugMonForContest();
+ if (!(gIsLinkContest & 1))
+ sub_80AE82C(unk_2000000[0]);
+ SetMainCallback2(sub_80AB47C);
+ }
+}
+
+void sub_80AAD08(struct Sprite *sprite, s8 var2)
+{
+ if (var2 == 1)
+ {
+ unk_2000000[0] = sprite->data3;
+ SetMainCallback2(sub_80AACC4);
+ BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, 0);
+ }
+}
+
+void sub_80AAD44(struct Sprite *sprite, s8 var2)
+{
+ if (var2 == 1)
+ {
+ int i;
+
+ SetDebugMonForContest();
+ for (i = 0; i < 4; i++)
+ gUnknown_02038670[i] = sub_80AE770(i, gScriptContestCategory);
+ SetMainCallback2(sub_805469C);
+ }
+}
+
+//Do this later
+/*
+void sub_80AAD84(u8 *string, u8 b, u8 c, u8 d)
+{
+ u32 r5;
+ u16 r7;
+ u8 r7_2;
+ //u32 sp44;
+ //u32 sp48;
+ u32 sp58;
+
+ gMain.state = 0;
+
+ r5 = d + 1;
+ //Could also be DmaClear32
+ DmaFill32(3, 0, (u8 *)VRAM + 0x18000 - r5 * 256, 0x100);
+
+ r7 = StringLength(string);
+ if (r7 > 8)
+ r7 = 8;
+ sp58 = d * 2;
+
+ //More stuff
+
+ r7_2 = 0x7C - sp58;
+
+}
+*/
+
+__attribute__((naked))
+void sub_80AAD84(u8 *string, u8 b, u8 c, u8 d)
+{
+ 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, 0x64\n\
+ mov r9, r0\n\
+ lsls r1, 24\n\
+ lsrs r1, 24\n\
+ str r1, [sp, 0x48]\n\
+ lsls r2, 24\n\
+ lsrs r2, 24\n\
+ str r2, [sp, 0x4C]\n\
+ lsls r3, 24\n\
+ lsrs r3, 24\n\
+ mov r10, r3\n\
+ mov r5, r10\n\
+ adds r5, 0x1\n\
+ lsls r1, r5, 8\n\
+ ldr r0, _080AAEC4 @ =0x06018000\n\
+ subs r1, r0, r1\n\
+ movs r0, 0\n\
+ str r0, [sp, 0x44]\n\
+ ldr r4, _080AAEC8 @ =0x040000d4\n\
+ add r0, sp, 0x44\n\
+ str r0, [r4]\n\
+ str r1, [r4, 0x4]\n\
+ ldr r0, _080AAECC @ =0x85000040\n\
+ str r0, [r4, 0x8]\n\
+ ldr r0, [r4, 0x8]\n\
+ mov r0, r9\n\
+ bl StringLength\n\
+ lsls r0, 16\n\
+ lsrs r7, r0, 16\n\
+ cmp r7, 0x8\n\
+ bls _080AADD0\n\
+ movs r7, 0x8\n\
+_080AADD0:\n\
+ movs r6, 0\n\
+ mov r8, r5\n\
+ mov r1, r10\n\
+ lsls r1, 1\n\
+ str r1, [sp, 0x58]\n\
+ ldr r2, [sp, 0x48]\n\
+ adds r2, 0x20\n\
+ str r2, [sp, 0x5C]\n\
+ cmp r6, r7\n\
+ bge _080AAE1E\n\
+ add r5, sp, 0x40\n\
+ add r0, sp, 0x20\n\
+ mov r10, r0\n\
+ ldr r2, _080AAEC4 @ =0x06018000\n\
+_080AADEC:\n\
+ mov r1, r9\n\
+ adds r0, r1, r6\n\
+ ldrb r0, [r0]\n\
+ strb r0, [r5]\n\
+ movs r0, 0xFF\n\
+ strb r0, [r5, 0x1]\n\
+ mov r0, sp\n\
+ adds r1, r5, 0\n\
+ str r2, [sp, 0x60]\n\
+ bl sub_80034D4\n\
+ mov r1, r8\n\
+ lsls r0, r1, 8\n\
+ ldr r2, [sp, 0x60]\n\
+ subs r0, r2, r0\n\
+ mov r1, r10\n\
+ str r1, [r4]\n\
+ str r0, [r4, 0x4]\n\
+ ldr r0, _080AAED0 @ =0x84000008\n\
+ str r0, [r4, 0x8]\n\
+ ldr r0, [r4, 0x8]\n\
+ adds r2, 0x20\n\
+ adds r6, 0x1\n\
+ cmp r6, r7\n\
+ blt _080AADEC\n\
+_080AAE1E:\n\
+ movs r1, 0x7C\n\
+ ldr r2, [sp, 0x58]\n\
+ subs r1, r2\n\
+ lsls r1, 24\n\
+ lsrs r7, r1, 24\n\
+ ldr r0, _080AAED4 @ =gMain\n\
+ mov r9, r0\n\
+ lsls r3, r7, 3\n\
+ add r3, r9\n\
+ ldr r0, _080AAED8 @ =gUnknown_083C9400\n\
+ ldr r1, [r0]\n\
+ ldr r2, [r0, 0x4]\n\
+ str r1, [sp, 0x50]\n\
+ str r2, [sp, 0x54]\n\
+ str r1, [r3, 0x3C]\n\
+ str r2, [r3, 0x40]\n\
+ mov r2, r8\n\
+ lsls r0, r2, 3\n\
+ movs r1, 0x80\n\
+ lsls r1, 3\n\
+ adds r2, r1, 0\n\
+ subs r2, r0\n\
+ adds r6, r3, 0\n\
+ adds r6, 0x40\n\
+ ldr r0, _080AAEDC @ =0x000003ff\n\
+ mov r8, r0\n\
+ mov r1, r8\n\
+ ands r2, r1\n\
+ ldrh r5, [r6]\n\
+ ldr r4, _080AAEE0 @ =0xfffffc00\n\
+ adds r0, r4, 0\n\
+ ands r0, r5\n\
+ orrs r0, r2\n\
+ strh r0, [r6]\n\
+ ldrh r5, [r3, 0x3E]\n\
+ ldr r2, _080AAEE4 @ =0xfffffe00\n\
+ adds r0, r2, 0\n\
+ ands r0, r5\n\
+ ldr r1, [sp, 0x48]\n\
+ orrs r0, r1\n\
+ strh r0, [r3, 0x3E]\n\
+ adds r3, 0x3C\n\
+ add r0, sp, 0x4C\n\
+ ldrb r0, [r0]\n\
+ strb r0, [r3]\n\
+ adds r1, r7, 0x1\n\
+ lsls r1, 3\n\
+ mov r0, r9\n\
+ adds r7, r1, r0\n\
+ ldr r0, [sp, 0x50]\n\
+ ldr r1, [sp, 0x54]\n\
+ str r0, [r7, 0x3C]\n\
+ str r1, [r7, 0x40]\n\
+ ldrh r0, [r6]\n\
+ lsls r0, 22\n\
+ lsrs r0, 22\n\
+ adds r0, 0x4\n\
+ adds r5, r7, 0\n\
+ adds r5, 0x40\n\
+ mov r1, r8\n\
+ ands r0, r1\n\
+ ldrh r3, [r5]\n\
+ ands r4, r3\n\
+ orrs r4, r0\n\
+ strh r4, [r5]\n\
+ ldrh r0, [r7, 0x3E]\n\
+ ands r2, r0\n\
+ ldr r0, [sp, 0x5C]\n\
+ orrs r2, r0\n\
+ strh r2, [r7, 0x3E]\n\
+ adds r1, r7, 0\n\
+ adds r1, 0x3C\n\
+ add r2, sp, 0x4C\n\
+ ldrb r2, [r2]\n\
+ strb r2, [r1]\n\
+ add sp, 0x64\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\
+_080AAEC4: .4byte 0x06018000\n\
+_080AAEC8: .4byte 0x040000d4\n\
+_080AAECC: .4byte 0x85000040\n\
+_080AAED0: .4byte 0x84000008\n\
+_080AAED4: .4byte gMain\n\
+_080AAED8: .4byte gUnknown_083C9400\n\
+_080AAEDC: .4byte 0x000003ff\n\
+_080AAEE0: .4byte 0xfffffc00\n\
+_080AAEE4: .4byte 0xfffffe00\n\
+ .syntax divided\n");
+}
+
+void unref_sub_80AAEE8(s32 a, u8 b, u8 c, u8 d)
+{
+ u8 string[12];
+ u8 offset = 0;
+
+ if (a < 0)
+ {
+ string[0] = 0xAE;
+ offset = 1;
+ }
+ ConvertIntToDecimalStringN(string + offset, (a < 0) ? -a : a, 0, 8);
+ sub_80AAD84(string, b, c, d);
+}
+
+void sub_80AAF30(void)
+{
+ s32 i;
+
+ gUnknown_0203856C = 1;
+ gContestPlayerMonIndex = 3;
+ sub_80AE098(0);
+ for (i = 3; i > -1; i--)
+ gUnknown_02038690[i] = 3 - i;
+ for (i = 0; i < 3; i++)
+ {
+ gUnknown_02038670[i] = 0;
+ gUnknown_02038680[i] = 0;
+ gUnknown_02038678[i] = 0;
+ memcpy(&gContestMons[i], &gContestMons[3], 0x40);
+ }
+ gUnknown_02038670[3] = 0x12C;
+ gUnknown_02038680[3] = 0x190;
+ gUnknown_02038678[3] = 0x190;
+ sub_80B2A7C(0xFE);
+}
+
+//Don't know size of return type
+int MatsudaDebugMenu_SetHighScore(void)
+{
+ sub_80AAF30();
+ CloseMenu();
+ return 1;
+}
+
+//Don't know size of return type
+int MatsudaDebugMenu_ResetHighScore(void)
+{
+ s32 i;
+
+ gUnknown_0203856C = 0;
+ for (i = 0; i < 4; i++)
+ {
+ gUnknown_02038670[i] = 0;
+ gUnknown_02038680[i] = 0;
+ gUnknown_02038678[i] = 0;
+ }
+ CloseMenu();
+ return 1;
+}
+
+//Don't know size of return type
+int MatsudaDebugMenu_SetArtMuseumItems(void)
+{
+ s32 i;
+
+ gContestPlayerMonIndex = 3;
+ sub_80AE098(0);
+ for (i = 3; i > -1; i--)
+ gUnknown_02038690[i] = 3 - i;
+ for (gScriptContestCategory = 0; gScriptContestCategory < 5; gScriptContestCategory++)
+ sub_80B2A7C(0xFF);
+ CloseMenu();
+ return 1;
+}
+
+void unref_sub_80AB084(u8 *text)
+{
+ u16 savedIme;
+ u8 *addr;
+ size_t size;
+
+ REG_BG0HOFS = 0;
+ REG_BG0VOFS = 0;
+ REG_BG1HOFS = 0;
+ REG_BG1VOFS = 0;
+ REG_BG2HOFS = 0;
+ REG_BG2VOFS = 0;
+ REG_BG3HOFS = 0;
+ REG_BG3VOFS = 0;
+ REG_WIN0H = 0;
+ REG_WIN0V = 0;
+ REG_WIN1H = 0;
+ REG_WIN1V = 0;
+ REG_DISPCNT = 0x1F40;
+
+ savedIme = REG_IME;
+ REG_IME = 0;
+ REG_IE |= INTR_FLAG_VBLANK;
+ REG_IME = savedIme;
+ REG_DISPSTAT = 8;
+ ResetTasks();
+ ResetSpriteData();
+ SetMainCallback2(sub_80AB184);
+
+ addr = (void *)VRAM;
+ size = 0x18000;
+ while(1)
+ {
+ DmaFill32(3, 0, addr, 0x1000);
+ addr += 0x1000;
+ size -= 0x1000;
+ if(size <= 0x1000)
+ {
+ DmaFill32(3, 0, addr, size);
+ break;
+ }
+ }
+ SetUpWindowConfig(&gWindowConfig_81E6FD8);
+ InitWindowFromConfig(&gUnknown_03004210, &gWindowConfig_81E6FD8);
+ LoadFontDefaultPalette(&gWindowConfig_81E6FD8);
+ sub_8003460(&gUnknown_03004210, text, 1, 9, 7);
+}
+
+void sub_80AB184(void)
+{
+ REG_BG0HOFS = 0;
+ REG_BG0VOFS = 0;
+ REG_BG1HOFS = 0;
+ REG_BG1VOFS = 0;
+ REG_BG2HOFS = 0;
+ REG_BG2VOFS = 0;
+ REG_BG3HOFS = 0;
+ REG_BG3VOFS = 0;
+}
diff --git a/src/menu.c b/src/menu.c
index 5744df4c1..ee9376079 100644
--- a/src/menu.c
+++ b/src/menu.c
@@ -5,6 +5,9 @@
#include "songs.h"
#include "text_window.h"
#include "sound.h"
+#include "menu_cursor.h"
+#include "map_obj_lock.h"
+#include "script.h"
struct Menu
{
@@ -19,20 +22,17 @@ struct Menu
u8 columnXCoords[8];
};
-static void MultistepInitMenuWindowInternal(struct WindowConfig *, u16);
-static void InitMenuWindowInternal(struct WindowConfig *, u16);
+extern u8 OtherText_Yes[];
+extern u8 OtherText_No[];
+
+static void MultistepInitMenuWindowInternal(const struct WindowConfig *, u16);
+static void InitMenuWindowInternal(const struct WindowConfig *, u16);
static bool8 sub_80723D4(void);
static u8 sub_8072484(u8, u8, u8, u8, u8, u8, u32);
-static u8 sub_80724F4(u8, u8, u8, u8 * const [][2], u8);
-static void sub_8072620(u8, u8, u8, u8 * const [][2], u8);
+static u8 sub_80724F4(u8, u8, u8, const struct MenuAction[], u8);
+static void sub_8072620(u8, u8, u8, const struct MenuAction[], u8);
static void sub_8072D18(u8, u8);
-extern void sub_814A5C0(u8, u16, u8, u16, u8);
-extern void sub_814A880(u8, u8);
-extern void sub_814A904(void);
-extern void sub_814A958(u8);
-extern void sub_814A7FC(void);
-
static struct Menu gMenu;
EWRAM_DATA struct Window gMenuWindow = {0};
@@ -44,19 +44,38 @@ EWRAM_DATA u16 gMenuTextWindowTileOffset = 0;
EWRAM_DATA u16 gMenuTextWindowContentTileOffset = 0;
EWRAM_DATA u16 gMenuMessageBoxContentTileOffset = 0;
-extern const u8 *gUnknown_08376D74[][2];
+const struct MenuAction gMenuYesNoItems[] =
+{
+ { OtherText_Yes, NULL },
+ { OtherText_No, NULL },
+};
+
+void CloseMenu(void)
+{
+ PlaySE(SE_SELECT);
+ MenuZeroFillScreen();
+ sub_8064E2C();
+ ScriptContext2_Disable();
+ sub_8072DEC();
+}
+
+void AppendToList(u8 *list, u8 *pindex, u32 value)
+{
+ list[*pindex] = value;
+ (*pindex)++;
+}
-void InitMenuWindow(struct WindowConfig *winConfig)
+void InitMenuWindow(const struct WindowConfig *winConfig)
{
InitMenuWindowInternal(winConfig, 1);
}
-void MultistepInitMenuWindowBegin(struct WindowConfig *winConfig)
+void MultistepInitMenuWindowBegin(const struct WindowConfig *winConfig)
{
MultistepInitMenuWindowInternal(winConfig, 1);
}
-static void MultistepInitMenuWindowInternal(struct WindowConfig *winConfig, u16 tileOffset)
+static void MultistepInitMenuWindowInternal(const struct WindowConfig *winConfig, u16 tileOffset)
{
gMenuMultistepInitState = 0;
gMenuTextTileOffset = tileOffset;
@@ -93,7 +112,7 @@ bool32 MultistepInitMenuWindowContinue(void)
}
}
-static void InitMenuWindowInternal(struct WindowConfig *winConfig, u16 tileOffset)
+static void InitMenuWindowInternal(const struct WindowConfig *winConfig, u16 tileOffset)
{
gMenuWindowPtr = &gMenuWindow;
InitWindowFromConfig(&gMenuWindow, winConfig);
@@ -125,13 +144,13 @@ void MenuLoadTextWindowGraphics(void)
LoadTextWindowGraphics(gMenuWindowPtr);
}
-void BasicInitMenuWindow(struct WindowConfig *winConfig)
+void BasicInitMenuWindow(const struct WindowConfig *winConfig)
{
InitWindowFromConfig(gMenuWindowPtr, winConfig);
gMenuWindowPtr->tileDataStartOffset = gMenuTextTileOffset;
}
-void MenuPrint(u8 *str, u8 left, u8 top)
+void MenuPrint(const u8 *str, u8 left, u8 top)
{
sub_8003460(gMenuWindowPtr, str, gMenuTextTileOffset, left, top);
}
@@ -395,7 +414,7 @@ static u8 sub_8072484(u8 a1, u8 a2, u8 menuItemCount, u8 a4, u8 width, u8 a6, u3
return a4;
}
-static u8 sub_80724F4(u8 left, u8 top, u8 menuItemCount, u8 * const menuItems[][2], u8 columnCount)
+static u8 sub_80724F4(u8 left, u8 top, u8 menuItemCount, const struct MenuAction menuItems[], u8 columnCount)
{
u8 i;
u8 maxWidth;
@@ -407,7 +426,7 @@ static u8 sub_80724F4(u8 left, u8 top, u8 menuItemCount, u8 * const menuItems[][
maxWidth = 0;
for (i = 0; i < menuItemCount; i++)
{
- u8 width = (sub_8072CA4(menuItems[i][0]) + 7) / 8;
+ u8 width = (sub_8072CA4(menuItems[i].text) + 7) / 8;
if (width > maxWidth)
maxWidth = width;
@@ -453,7 +472,7 @@ static u8 sub_80724F4(u8 left, u8 top, u8 menuItemCount, u8 * const menuItems[][
return maxWidth;
}
-static void sub_8072620(u8 left, u8 top, u8 menuItemCount, u8 * const menuItems[][2], u8 columnCount)
+static void sub_8072620(u8 left, u8 top, u8 menuItemCount, const struct MenuAction menuItems[], u8 columnCount)
{
u8 i;
u8 maxWidth;
@@ -464,7 +483,7 @@ static void sub_8072620(u8 left, u8 top, u8 menuItemCount, u8 * const menuItems[
maxWidth = 0;
for (i = 0; i < menuItemCount; i++)
{
- u8 width = (sub_8072CA4(menuItems[i][0]) + 7) / 8;
+ u8 width = (sub_8072CA4(menuItems[i].text) + 7) / 8;
if (width > maxWidth)
maxWidth = width;
@@ -483,11 +502,11 @@ static void sub_8072620(u8 left, u8 top, u8 menuItemCount, u8 * const menuItems[
u8 row = 0;
u8 j;
for (j = 0; i + j < menuItemCount; j += columnCount, row++)
- MenuPrint(menuItems[i + j][0], left + gMenu.columnXCoords[i % columnCount], top + 2 * row);
+ MenuPrint(menuItems[i + j].text, left + gMenu.columnXCoords[i % columnCount], top + 2 * row);
}
}
-void sub_807274C(u8 left, u8 top, u8 menuItemCount, u8 a4, u8 * const menuItems[][2], u8 columnCount, u32 a7)
+void sub_807274C(u8 left, u8 top, u8 menuItemCount, u8 a4, const struct MenuAction menuItems[], u8 columnCount, u32 a7)
{
u8 maxWidth = sub_80724F4(left, top, menuItemCount, menuItems, columnCount);
@@ -545,25 +564,25 @@ u8 sub_807288C(u8 column)
return gMenu.columnXCoords[column];
}
-void PrintMenuItems(u8 left, u8 top, u8 menuItemCount, u8 * const menuItems[][2])
+void PrintMenuItems(u8 left, u8 top, u8 menuItemCount, const struct MenuAction menuItems[])
{
u8 i;
for (i = 0; i < menuItemCount; i++)
- MenuPrint(menuItems[i][0], left, top + 2 * i);
+ MenuPrint(menuItems[i].text, left, top + 2 * i);
}
-void PrintMenuItemsReordered(u8 left, u8 top, u8 menuItemCount, u8 * const menuItems[][2], u8 *order)
+void PrintMenuItemsReordered(u8 left, u8 top, u8 menuItemCount, const struct MenuAction menuItems[], u8 *order)
{
u8 i;
for (i = 0; i < menuItemCount; i++)
- MenuPrint(menuItems[order[i]][0], left, top + 2 * i);
+ MenuPrint(menuItems[order[i]].text, left, top + 2 * i);
}
void InitYesNoMenu(u8 left, u8 top, u8 a3)
{
- PrintMenuItems(left + 1, top + 1, 2, (void *)gUnknown_08376D74);
+ PrintMenuItems(left + 1, top + 1, 2, gMenuYesNoItems);
InitMenu(0, left + 1, top + 1, 2, 0, a3);
}
diff --git a/src/menu_cursor.c b/src/menu_cursor.c
index 21e4d9d58..5c1f0addf 100644
--- a/src/menu_cursor.c
+++ b/src/menu_cursor.c
@@ -1,4 +1,5 @@
#include "global.h"
+#include "menu_cursor.h"
#include "sprite.h"
#include "palette.h"
@@ -29,11 +30,6 @@ extern u8 gUnknown_0203A3D2;
extern u8 gUnknown_0203A3D3;
extern u8 gUnknown_0203A3D4;
-void sub_814A7FC(void);
-void sub_814A958(u8 a1);
-void sub_814AD44(void);
-void sub_814ADF4(u8 a1);
-
void sub_814A590(void)
{
gUnknown_0203A3D0 = 0x40;
@@ -509,7 +505,7 @@ void unref_sub_814ABE4(int a1)
{
struct Sprite *spr;
- CpuSet(gUnknown_0842F5BC[a1], &gMenuCursorSubsprites, 0x28);
+ CpuCopy16(gUnknown_0842F5BC[a1], &gMenuCursorSubsprites, 80);
if (gUnknown_0203A3D0 != 0x40)
{
diff --git a/src/metatile_behavior.c b/src/metatile_behavior.c
new file mode 100644
index 000000000..b78e76e10
--- /dev/null
+++ b/src/metatile_behavior.c
@@ -0,0 +1,1065 @@
+#include "global.h"
+#include "metatile_behaviors.h"
+
+extern u8 gUnknown_08308E2C[];
+
+bool8 MetatileBehavior_IsWaterfall(u8);
+
+// only used as default case for checking jump landing in field_ground_effect.
+bool8 MetatileBehavior_IsATile(u8 var)
+{
+ return TRUE;
+}
+
+bool8 MetatileBehavior_IsEncounterTile(u8 var)
+{
+ if((gUnknown_08308E2C[var] & 1) != 0)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsJumpEast(u8 var)
+{
+ if(var == MB_JUMP_EAST)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsJumpWest(u8 var)
+{
+ if(var == MB_JUMP_WEST)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsJumpNorth(u8 var)
+{
+ if(var == MB_JUMP_NORTH)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsJumpSouth(u8 var)
+{
+ if(var == MB_JUMP_SOUTH)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsPokeGrass(u8 var)
+{
+ if(var == MB_TALL_GRASS || var == MB_LONG_GRASS)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsSandOrDeepSand(u8 var)
+{
+ if(var == MB_SAND || var == MB_DEEP_SAND)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsDeepSand(u8 var)
+{
+ if(var == MB_DEEP_SAND)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsReflective(u8 var)
+{
+ if(var == MB_POND_WATER || var == MB_PUDDLE || var == MB_1A || var == MB_ICE || var == MB_SOOTOPOLIS_DEEP_WATER || var == MB_REFLECTION_UNDER_BRIDGE)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsIce(u8 var)
+{
+ if(var == MB_ICE)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsWarpDoor(u8 var)
+{
+ if(var == MB_ANIMATED_DOOR)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsDoor(u8 var)
+{
+ if(var == MB_8D || var == MB_ANIMATED_DOOR)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsEscalator(u8 var)
+{
+ if(var == MB_UP_ESCALATOR || var == MB_DOWN_ESCALATOR)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 unref_sub_8056EE0(u8 var)
+{
+ if(var == MB_04)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsLadder(u8 var)
+{
+ if(var == MB_LADDER)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsNonAnimDoor(u8 var)
+{
+ if(var == MB_NON_ANIMATED_DOOR || var == MB_WATER_DOOR || var == MB_DEEP_SOUTH_WARP)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsDeepSouthWarp(u8 var)
+{
+ if(var == MB_DEEP_SOUTH_WARP)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsSurfableWaterOrUnderwater(u8 var)
+{
+ if((gUnknown_08308E2C[var] & 2) != 0)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsEastArrowWarp(u8 var)
+{
+ if(var == MB_EAST_ARROW_WARP)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsWestArrowWarp(u8 var)
+{
+ if(var == MB_WEST_ARROW_WARP)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsNorthArrowWarp(u8 var)
+{
+ if(var == MB_NORTH_ARROW_WARP || var == MB_STAIRS_OUTSIDE_ABANDONED_SHIP)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsSouthArrowWarp(u8 var)
+{
+ if(var == MB_SOUTH_ARROW_WARP || var == MB_WATER_SOUTH_ARROW_WARP || var == MB_SHOAL_CAVE_ENTRANCE)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+// unused
+bool8 MetatileBehavior_IsArrowWarp(u8 var)
+{
+ u8 var2 = 0;
+
+ if(MetatileBehavior_IsEastArrowWarp(var)
+ || MetatileBehavior_IsWestArrowWarp(var)
+ || MetatileBehavior_IsNorthArrowWarp(var)
+ || MetatileBehavior_IsSouthArrowWarp(var))
+ {
+ var2 = 1;
+ }
+ return var2;
+}
+
+bool8 MetatileBehavior_IsMoveTile(u8 var)
+{
+ if((var >= MB_WALK_EAST && var <= MB_TRICK_HOUSE_PUZZLE_8_FLOOR) || (var >= MB_EASTWARD_CURRENT && var <= MB_SOUTHWARD_CURRENT)
+ || var == MB_MUDDY_SLOPE || var == MB_CRACKED_FLOOR || var == MB_WATERFALL || var == MB_ICE || var == MB_BB || var == MB_BC)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsIce_2(u8 var)
+{
+ if(var == MB_ICE)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsTrickHouseSlipperyFloor(u8 var)
+{
+ if(var == MB_TRICK_HOUSE_PUZZLE_8_FLOOR)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_0x05(u8 var)
+{
+ if(var == MB_05)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsWalkNorth(u8 var)
+{
+ if(var == MB_WALK_NORTH)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsWalkSouth(u8 var)
+{
+ if(var == MB_WALK_SOUTH)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsWalkWest(u8 var)
+{
+ if(var == MB_WALK_WEST)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsWalkEast(u8 var)
+{
+ if(var == MB_WALK_EAST)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsNorthwardCurrent(u8 var)
+{
+ if(var == MB_NORTHWARD_CURRENT)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsSouthwardCurrent(u8 var)
+{
+ if(var == MB_SOUTHWARD_CURRENT)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsWestwardCurrent(u8 var)
+{
+ if(var == MB_WESTWARD_CURRENT)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsEastwardCurrent(u8 var)
+{
+ if(var == MB_EASTWARD_CURRENT)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsSlideNorth(u8 var)
+{
+ if(var == MB_SLIDE_NORTH)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsSlideSouth(u8 var)
+{
+ if(var == MB_SLIDE_SOUTH)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsSlideWest(u8 var)
+{
+ if(var == MB_SLIDE_WEST)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsSlideEast(u8 var)
+{
+ if(var == MB_SLIDE_EAST)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsCounter(u8 var)
+{
+ if(var == MB_COUNTER)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsPlayerFacingTVScreen(u8 tile, u8 playerDir)
+{
+ if(playerDir != CONNECTION_NORTH) // if the player isn't facing north, forget about it.
+ return FALSE;
+ else if(tile == MB_TELEVISION) // is the player's north tile a TV?
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsPC(u8 var)
+{
+ if(var == MB_PC)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 is_tile_x84(u8 var)
+{
+ if(var == MB_84)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 sub_80571C0(u8 var)
+{
+ if(var == MB_91 || var == MB_93 || var == MB_95 || var == MB_97
+ || var == MB_99 || var == MB_9B || var == MB_9D)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsSecretBaseCave(u8 var)
+{
+ if(var == MB_SECRET_BASE_SPOT_RED_CAVE || var == MB_SECRET_BASE_SPOT_BROWN_CAVE || var == MB_SECRET_BASE_SPOT_YELLOW_CAVE || var == MB_SECRET_BASE_SPOT_BLUE_CAVE)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsSecretBaseTree(u8 var)
+{
+ if(var == MB_SECRET_BASE_SPOT_TREE_1 || var == MB_SECRET_BASE_SPOT_TREE_2)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsSecretBaseShrub(u8 var)
+{
+ if(var == MB_SECRET_BASE_SPOT_SHRUB)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsSecretBasePC(u8 var)
+{
+ if(var == MB_SECRET_BASE_PC)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 sub_805724C(u8 var)
+{
+ if(var == MB_B1)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 unref_sub_8057260(u8 var)
+{
+ if(var == MB_B2)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 sub_8057274(u8 var)
+{
+ if(var == MB_B3)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 sub_8057288(u8 var)
+{
+ if(var == MB_B9)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 sub_805729C(u8 var)
+{
+ if(var == MB_NORMAL)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 sub_80572B0(u8 var)
+{
+ if(var == MB_B7)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 unref_sub_80572C4(u8 var)
+{
+ if(var == MB_B2)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 sub_80572D8(u8 var)
+{
+ if(var == MB_B5)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 sub_80572EC(u8 var)
+{
+ if(var == MB_C3)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 sub_8057300(u8 var)
+{
+ if(var == MB_C2)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 sub_8057314(u8 var)
+{
+ if(var == MB_B8)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 sub_8057328(u8 var)
+{
+ if(var == MB_BE)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 sub_805733C(u8 var)
+{
+ if(var == MB_BD)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 sub_8057350(u8 var)
+{
+ if(var == MB_BA)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 sub_8057364(u8 var)
+{
+ if(var == MB_BF)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 sub_8057378(u8 var)
+{
+ if(var == MB_C4)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 sub_805738C(u8 var)
+{
+ if(var == MB_C5)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_HasRipples(u8 var)
+{
+ if(var == MB_POND_WATER || var == MB_PUDDLE || var == MB_SOOTOPOLIS_DEEP_WATER)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsPuddle(u8 var)
+{
+ if(var == MB_PUDDLE)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsTallGrass(u8 var)
+{
+ if(var == MB_TALL_GRASS)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsLongGrass(u8 var)
+{
+ if(var == MB_LONG_GRASS)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsBerryTreeSoil(u8 var)
+{
+ if(var == MB_BERRY_TREE_SOIL)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsAsh(u8 var)
+{
+ if(var == MB_ASH)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsUnusedFootprintMetatile(u8 var)
+{
+ if(var == MB_25)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsBridge(u8 var)
+{
+ if(var >= MB_WARP_OR_BRIDGE && var <= MB_ROUTE120_NORTH_BRIDGE_2)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+u8 sub_8057450(u8 var)
+{
+ u8 result = var - MB_WARP_OR_BRIDGE;
+
+ if(result > 3)
+ result = 0;
+
+ return result;
+}
+
+bool8 MetatileBehavior_IsLandWildEncounter(u8 var)
+{
+ if(MetatileBehavior_IsSurfableWaterOrUnderwater(var) == FALSE && MetatileBehavior_IsEncounterTile(var) == TRUE)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsWaterWildEncounter(u8 var)
+{
+ if(MetatileBehavior_IsSurfableWaterOrUnderwater(var) == TRUE && MetatileBehavior_IsEncounterTile(var) == TRUE)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 sub_80574C4(u8 var)
+{
+ if(var == MB_0B)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 sub_80574D8(u8 var)
+{
+ if(var == MB_MOUNTAIN_TOP)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 sub_80574EC(u8 var)
+{
+ if(var == MB_SEMI_DEEP_WATER || var == MB_DEEP_WATER || var == MB_SOOTOPOLIS_DEEP_WATER)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 sub_805750C(u8 var)
+{
+ if(var == MB_NO_SURFACING || var == MB_SEAWEED_NO_SURFACING)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsShallowFlowingWater(u8 var)
+{
+ if(var == MB_SHALLOW_WATER || var == MB_STAIRS_OUTSIDE_ABANDONED_SHIP || var == MB_SHOAL_CAVE_ENTRANCE)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsThinIce(u8 var)
+{
+ if(var == MB_THIN_ICE)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsCrackedIce(u8 var)
+{
+ if(var == MB_CRACKED_ICE)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 sub_8057568(u8 var)
+{
+ if(var == MB_OCEAN_WATER || var == MB_SEMI_DEEP_WATER || var == MB_DEEP_WATER)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 unref_sub_8057584(u8 var)
+{
+ if(var == MB_18 || var == MB_1A)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 sub_805759C(u8 var)
+{
+ if(MetatileBehavior_IsSurfableWaterOrUnderwater(var) && MetatileBehavior_IsWaterfall(var) == FALSE)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsEastBlocked(u8 var)
+{
+ if(var == MB_IMPASSABLE_EAST || var == MB_IMPASSABLE_NORTHEAST || var == MB_IMPASSABLE_SOUTHEAST || var == MB_C1 || var == MB_BE)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsWestBlocked(u8 var)
+{
+ if(var == MB_IMPASSABLE_WEST || var == MB_IMPASSABLE_NORTHWEST || var == MB_IMPASSABLE_SOUTHWEST || var == MB_C1 || var == MB_BE)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsNorthBlocked(u8 var)
+{
+ if(var == MB_IMPASSABLE_NORTH || var == MB_IMPASSABLE_NORTHEAST || var == MB_IMPASSABLE_NORTHWEST || var == MB_BED)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsSouthBlocked(u8 var)
+{
+ if(var == MB_IMPASSABLE_SOUTH || var == MB_IMPASSABLE_SOUTHEAST || var == MB_IMPASSABLE_SOUTHWEST || var == MB_BED)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsShortGrass(u8 var)
+{
+ if(var == MB_SHORT_GRASS)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsHotSprings(u8 var)
+{
+ if(var == MB_HOT_SPRINGS)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsWaterfall(u8 var)
+{
+ if(var == MB_WATERFALL)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsFortreeBridge(u8 var)
+{
+ if(var == MB_FORTREE_BRIDGE)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 sub_80576A0(u8 var)
+{
+ if(var == MB_PACIFIDLOG_VERTICAL_LOG_1)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 sub_80576B4(u8 var)
+{
+ if(var == MB_PACIFIDLOG_VERTICAL_LOG_2)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 sub_80576C8(u8 var)
+{
+ if(var == MB_PACIFIDLOG_HORIZONTAL_LOG_1)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 sub_80576DC(u8 var)
+{
+ if(var == MB_PACIFIDLOG_HORIZONTAL_LOG_2)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsPacifidlogLog(u8 var)
+{
+ if(var >= MB_PACIFIDLOG_VERTICAL_LOG_1 && var <= MB_PACIFIDLOG_HORIZONTAL_LOG_2)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsTrickHousePuzzleDoor(u8 var)
+{
+ if(var == MB_TRICK_HOUSE_PUZZLE_DOOR)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsRegionMap(u8 var)
+{
+ if(var == MB_REGION_MAP)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsClosedSootpolisGymDoor(u8 var)
+{
+ if(var == MB_CLOSED_SOOTOPOLIS_GYM_DOOR)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsRoulette(u8 var)
+{
+ if(var == MB_ROULETTE)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsPokeblockFeeder(u8 var)
+{
+ if(var == MB_POKEBLOCK_FEEDER)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_0xBB(u8 var)
+{
+ if(var == MB_BB)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_0xBC(u8 var)
+{
+ if(var == MB_BC)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsLavaridgeB1FWarp(u8 var)
+{
+ if(var == MB_LAVARIDGE_GYM_B1F_WARP)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsLavaridge1FWarp(u8 var)
+{
+ if(var == MB_LAVARIDGE_GYM_1F_WARP)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsAquaHideoutWarp(u8 var)
+{
+ if(var == MB_AQUA_HIDEOUT_WARP)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsSurfableFishableWater(u8 var)
+{
+ if(var == MB_POND_WATER || var == MB_OCEAN_WATER || var == MB_SEMI_DEEP_WATER || var == MB_DEEP_WATER || var == MB_SOOTOPOLIS_DEEP_WATER || (var >= MB_EASTWARD_CURRENT && var <= MB_SOUTHWARD_CURRENT))
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsMtPyreHole(u8 var)
+{
+ if(var == MB_MT_PYRE_HOLE)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsCrackedFloorHole(u8 var)
+{
+ if(var == MB_CRACKED_FLOOR_HOLE)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsCrackedFloor(u8 var)
+{
+ if(var == MB_CRACKED_FLOOR)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsMuddySlope(u8 var)
+{
+ if(var == MB_MUDDY_SLOPE)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsBumpySlope(u8 var)
+{
+ if(var == MB_BUMPY_SLOPE)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsIsolatedVerticalRail(u8 var)
+{
+ if(var == MB_ISOLATED_VERTICAL_RAIL)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsIsolatedHorizontalRail(u8 var)
+{
+ if(var == MB_ISOLATED_HORIZONTAL_RAIL)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsVerticalRail(u8 var)
+{
+ if(var == MB_VERTICAL_RAIL)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsHorizontalRail(u8 var)
+{
+ if(var == MB_HORIZONTAL_RAIL)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsSeaweed(u8 var)
+{
+ if(var == MB_SEAWEED || var == MB_SEAWEED_NO_SURFACING)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsRunningDisallowed(u8 var)
+{
+ if(var == MB_NO_RUNNING || var == MB_LONG_GRASS || var == MB_HOT_SPRINGS || MetatileBehavior_IsPacifidlogLog(var) != FALSE)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 sub_80578F8(u8 var)
+{
+ if(var == MB_TALL_GRASS || var == MB_LONG_GRASS || var == MB_ASH || var == MB_LONG_GRASS_SOUTH_EDGE)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 sub_805791C(u8 var)
+{
+ if(var == MB_8E)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsPictureBookShelf(u8 var)
+{
+ if(var == MB_PICTURE_BOOK_SHELF)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsBookShelf(u8 var)
+{
+ if(var == MB_BOOKSHELF)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsPokeCenterBookShelf(u8 var)
+{
+ if(var == MB_POKEMON_CENTER_BOOKSHELF)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsVase(u8 var)
+{
+ if(var == MB_VASE)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsTrashCan(u8 var)
+{
+ if(var == MB_TRASH_CAN)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsShopShelf(u8 var)
+{
+ if(var == MB_SHOP_SHELF)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsBlueprint(u8 var)
+{
+ if(var == MB_BLUEPRINT)
+ return TRUE;
+ else
+ return FALSE;
+}
diff --git a/src/money.c b/src/money.c
new file mode 100644
index 000000000..2a59cab50
--- /dev/null
+++ b/src/money.c
@@ -0,0 +1,240 @@
+#include "global.h"
+#include "money.h"
+#include "decompress.h"
+#include "menu.h"
+#include "sprite.h"
+#include "string_util.h"
+
+#define SPRITE_TAG_MONEY (0x2722)
+
+extern u16 gSpecialVar_0x8005;
+extern u8 gUnknown_02038734;
+
+extern const struct SpriteSheet gUnknown_083CF584;
+extern const struct SpritePalette gUnknown_083CF58C;
+extern const struct SpriteTemplate gSpriteTemplate_83CF56C;
+
+bool8 IsEnoughMoney(u32 budget, u32 cost) {
+ if (budget >= cost) {
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
+void sub_80B79B8(u32 *arg0, u32 arg1) {
+ if (*arg0 > *arg0 + arg1) {
+ *arg0 = 999999;
+ return;
+ }
+
+ *arg0 = *arg0 + arg1;
+ if (*arg0 > 999999) {
+ *arg0 = 999999;
+ }
+}
+
+void sub_80B79E0(u32 *arg0, u32 arg1) {
+ if (*arg0 < arg1) {
+ *arg0 = 0;
+ } else {
+ *arg0 = *arg0 - arg1;
+ }
+}
+
+void sub_80B79F8(u8 *buffer, u32 arg1, u8 arg2) {
+ u8 width;
+ u8 i;
+
+ if (arg1 > 999999) {
+ width = 7;
+ } else if (arg1 > 99999) {
+ width = 6;
+ } else if (arg1 > 10000) {
+ width = 5;
+ } else if (arg1 > 999) {
+ width = 4;
+ } else if (arg1 > 99) {
+ width = 3;
+ } else if (arg1 > 9) {
+ width = 2;
+ } else {
+ width = 1;
+ }
+
+ buffer[0] = EXT_CTRL_CODE_BEGIN;
+ buffer[1] = 0x14;
+ buffer[2] = 0x06;
+ buffer += 3;
+
+ for (i = 0; i < arg2 - width; i++) {
+ buffer[0] = CHAR_SPACE;
+ buffer += 1;
+ }
+
+ buffer[0] = CHAR_CURRENCY;
+ buffer += 1;
+
+ buffer = ConvertIntToDecimalString(buffer, arg1);
+
+ buffer[0] = EXT_CTRL_CODE_BEGIN;
+ buffer[1] = 0x14;
+ buffer[2] = 0x00;
+ buffer[3] = EOS;
+}
+
+void sub_80B7A94(u32 arg0, u8 size, u8 x, u8 y) {
+ u8 buffer[16];
+ u8 stringWidth;
+
+ sub_80B79F8(buffer, arg0, size);
+ stringWidth = sub_8072CA4(buffer);
+
+ if (stringWidth >= (size + 1) * 8)
+ MenuPrint(buffer, x, y);
+ else
+ {
+ int xPlusOne = x + 1;
+ MenuPrint_PixelCoords(buffer, (xPlusOne + size) * 8 - stringWidth, y * 8, 1);
+ }
+}
+
+void sub_80B7AEC(u32 arg0, u8 left, u8 top) {
+ u8 buffer[32];
+ u8 *ptr;
+
+ ptr = &buffer[0];
+
+ ptr[0] = CHAR_CURRENCY;
+ ptr++;
+
+ ptr = ConvertIntToDecimalString(ptr, arg0);
+
+ MenuPrint_RightAligned(buffer, left, top);
+
+ ptr[0] = 0xFC;
+ ptr[1] = 0x14;
+ ptr[2] = 0x00;
+ ptr[3] = 0xFF;
+}
+
+__attribute__((naked))
+void sub_80B7B34(void) {
+ asm(".syntax unified\n\
+ push {r4-r7,lr}\n\
+ mov r7, r9\n\
+ mov r6, r8\n\
+ push {r6,r7}\n\
+ sub sp, 0x4\n\
+ mov r8, r0\n\
+ adds r5, r1, 0\n\
+ mov r9, r2\n\
+ lsls r0, 24\n\
+ lsrs r0, 24\n\
+ mov r8, r0\n\
+ lsls r5, 24\n\
+ lsrs r5, 24\n\
+ mov r1, r9\n\
+ lsls r1, 8\n\
+ mov r9, r1\n\
+ ldr r4, _080B7BD8 @ =gDecoration10000_Gfx\n\
+ adds r0, r1, r4\n\
+ lsls r6, r5, 4\n\
+ subs r6, r5\n\
+ lsls r1, r6, 6\n\
+ mov r3, r8\n\
+ adds r3, 0x1\n\
+ lsls r3, 5\n\
+ ldr r2, _080B7BDC @ =0x06008000\n\
+ adds r3, r2\n\
+ adds r1, r3\n\
+ movs r2, 0x20\n\
+ str r3, [sp]\n\
+ bl CpuFastSet\n\
+ adds r4, 0x80\n\
+ add r9, r4\n\
+ adds r0, r5, 0x1\n\
+ lsls r4, r0, 4\n\
+ subs r4, r0\n\
+ lsls r1, r4, 6\n\
+ ldr r3, [sp]\n\
+ adds r1, r3\n\
+ mov r0, r9\n\
+ movs r2, 0x20\n\
+ bl CpuFastSet\n\
+ movs r3, 0\n\
+ lsls r5, 5\n\
+ mov r0, r8\n\
+ adds r7, r5, r0\n\
+ lsls r6, 1\n\
+ adds r6, 0x1\n\
+ add r6, r8\n\
+ ldr r1, _080B7BE0 @ =0xfffff000\n\
+ adds r5, r1, 0\n\
+ ldr r0, _080B7BE4 @ =0x0600f800\n\
+ mov r12, r0\n\
+ ldr r1, _080B7BE8 @ =0x0600f840\n\
+ mov r9, r1\n\
+ lsls r4, 1\n\
+ adds r4, 0x1\n\
+ add r4, r8\n\
+_080B7BAA:\n\
+ adds r1, r7, r3\n\
+ lsls r1, 1\n\
+ mov r0, r12\n\
+ adds r2, r1, r0\n\
+ adds r0, r3, r6\n\
+ adds r0, r5\n\
+ strh r0, [r2]\n\
+ add r1, r9\n\
+ adds r0, r3, r4\n\
+ adds r0, r5\n\
+ strh r0, [r1]\n\
+ adds r0, r3, 0x1\n\
+ lsls r0, 16\n\
+ lsrs r3, r0, 16\n\
+ cmp r3, 0x3\n\
+ bls _080B7BAA\n\
+ add sp, 0x4\n\
+ pop {r3,r4}\n\
+ mov r8, r3\n\
+ mov r9, r4\n\
+ pop {r4-r7}\n\
+ pop {r0}\n\
+ bx r0\n\
+ .align 2, 0\n\
+_080B7BD8: .4byte gDecoration10000_Gfx\n\
+_080B7BDC: .4byte 0x06008000\n\
+_080B7BE0: .4byte 0xfffff000\n\
+_080B7BE4: .4byte 0x0600f800\n\
+_080B7BE8: .4byte 0x0600f840\n\
+ .syntax divided\n");
+}
+
+void sub_80B7BEC(u32 arg0, u8 x, u8 y) {
+ sub_80B7A94(arg0, 6, x + 6, y + 1);
+}
+
+void sub_80B7C14(u32 arg0, u8 x, u8 y) {
+ MenuDrawTextWindow(x, y, x + 13, y + 3);
+ sub_80B7BEC(arg0, x, y);
+
+ LoadCompressedObjectPic(&gUnknown_083CF584);
+ LoadCompressedObjectPalette(&gUnknown_083CF58C);
+
+ gUnknown_02038734 = CreateSprite(&gSpriteTemplate_83CF56C, x * 8 + 19, y * 8 + 11, 0);
+}
+
+void RemoveMoneyLabelObject(u8 x, u8 y) {
+ DestroySpriteAndFreeResources(&gSprites[gUnknown_02038734]);
+ FreeSpritePaletteByTag(SPRITE_TAG_MONEY);
+ MenuZeroFillWindowRect(x, y, x + 13, y + 3);
+}
+
+bool8 sub_80B7CE8(void) {
+ return IsEnoughMoney(gSaveBlock1.money, gSpecialVar_0x8005);
+}
+
+void sub_80B7D0C(void) {
+ sub_80B79E0(&gSaveBlock1.money, gSpecialVar_0x8005);
+}
diff --git a/src/mori_debug_menu.c b/src/mori_debug_menu.c
index 139650c12..645aecc9e 100644
--- a/src/mori_debug_menu.c
+++ b/src/mori_debug_menu.c
@@ -1,38 +1,47 @@
+#include "global.h"
+#include "mori_debug_menu.h"
+#include "asm.h"
+#include "start_menu.h"
+#include "menu.h"
#include "main.h"
#include "string_util.h"
-#include "pokemon.h"
+#include "link.h"
-extern void sub_8071C20(void);
-extern u16 sub_8041870(u16);
-extern void sub_810CA6C(s32);
-extern u8 (*gCallback_03004AE8)(void);
-
-extern u8 daycare_count_pokemon(u32);
-extern u8 daycare_relationship_score_from_savegame(void);
+#define SIO_MULTI_CNT ((struct SioMultiCnt *)REG_ADDR_SIOCNT)
-struct DebugMenuAction
-{
- u8 *text;
- u8 (*func)(void);
-};
+extern u8 gUnknown_03004DA0[];
+extern u8 (*gCallback_03004AE8)(void);
+extern u8 gUnknown_0839B22C[][3];
+extern u8 gUnknown_0839B24A[];
extern u8 gUnknown_0839B24D[];
extern u8 gUnknown_0839B255[];
extern u8 gUnknown_0839B257[];
-extern struct DebugMenuAction gMoriDebugMenuActions[];
+extern const struct MenuAction gMoriDebugMenuActions[];
extern u8 gSpeciesNames[][11];
-s8 sub_8083D4C(void)
+void unref_sub_8083CF0(void)
+{
+ int i;
+ int id = SIO_MULTI_CNT->id;
+ gUnknown_03004DA0[0] = EOS;
+ StringAppend(gUnknown_03004DA0, gUnknown_0839B24A);
+ for (i = 0; i < 10; i++)
+ if ((word_3002910[id ^ 1] >> i) & 1)
+ StringAppend(gUnknown_03004DA0, gUnknown_0839B22C[i]);
+}
+
+bool8 sub_8083D4C(void)
{
- if ( gMain.newKeys & 1 )
+ if ( gMain.newKeys & A_BUTTON )
{
- sub_8071C20();
- return 1;
+ CloseMenu();
+ return TRUE;
}
else
- return 0;
+ return FALSE;
}
u8 MoriDebugMenu_SearchChild(u8 a1, u8 a2, u8 *ptr)
@@ -58,7 +67,7 @@ s8 MoriDebugMenu_Egg(void)
{
if ( daycare_count_pokemon(gSaveBlock1.filler_2F9C) == 2 && daycare_relationship_score_from_savegame() )
sub_8041940();
- sub_8071C20();
+ CloseMenu();
return 1;
}
@@ -67,7 +76,7 @@ s8 MoriDebugMenu_MaleEgg(void)
{
if ( daycare_count_pokemon(gSaveBlock1.filler_2F9C) == 2 && daycare_relationship_score_from_savegame() )
sub_8041950();
- sub_8071C20();
+ CloseMenu();
return 1;
}
@@ -75,21 +84,21 @@ s8 MoriDebugMenu_MaleEgg(void)
s8 MoriDebugMenu_1000Steps(void)
{
sub_8041790(1000);
- sub_8071C20();
+ CloseMenu();
return 1;
}
s8 MoriDebugMenu_10000Steps(void)
{
sub_8041790(10000);
- sub_8071C20();
+ CloseMenu();
return 1;
}
s8 MoriDebugMenu_MoveTutor(void)
{
sub_8132670();
- sub_8071C20();
+ CloseMenu();
return 1;
}
@@ -107,14 +116,14 @@ s8 MoriDebugMenu_BreedEgg(void)
}
}
gSaveBlock1.filler_30B6 = -3;
- sub_8071C20();
+ CloseMenu();
return 1;
}
s8 MoriDebugMenu_LongName(void)
{
- SetMonData(gPlayerParty, 2, &gUnknown_0839B257);
- sub_8071C20();
+ SetMonData(gPlayerParty, MON_DATA_NICKNAME, gUnknown_0839B257);
+ CloseMenu();
return 1;
}
@@ -125,11 +134,11 @@ s8 MoriDebugMenu_PokeblockCase(void)
for(loopCounter = 0; loopCounter <= 39; loopCounter++)
sub_810CA6C((u8)loopCounter);
- sub_8071C20();
+ CloseMenu();
return 1;
}
-s8 MoriDebugMenuProcessInput(void)
+bool8 MoriDebugMenuProcessInput(void)
{
s8 choice = ProcessMenuInput();
@@ -137,12 +146,12 @@ s8 MoriDebugMenuProcessInput(void)
{
default:
gCallback_03004AE8 = gMoriDebugMenuActions[choice].func;
- return 0;
+ return FALSE;
case -2:
- return 0;
+ return FALSE;
case -1:
- sub_8071C20();
- return 1;
+ CloseMenu();
+ return TRUE;
}
}
diff --git a/src/mystery_event_menu.c b/src/mystery_event_menu.c
new file mode 100644
index 000000000..09523ff40
--- /dev/null
+++ b/src/mystery_event_menu.c
@@ -0,0 +1,346 @@
+#include "global.h"
+#include "sprite.h"
+#include "menu.h"
+#include "link.h"
+#include "text.h"
+#include "main.h"
+#include "palette.h"
+#include "task.h"
+#include "string_util.h"
+#include "songs.h"
+#include "sound.h"
+#include "save.h"
+#include "asm.h"
+#include "mystery_event_menu.h"
+
+extern u8 unk_2000000[];
+extern u8 gUnknown_02039338;
+
+extern u8 gSystemText_LinkStandby[];
+extern u8 gSystemText_LoadEventPressA[];
+extern u8 gSystemText_LoadingEvent[];
+extern u8 gSystemText_DontCutLink[];
+extern u8 gSystemText_EventLoadSuccess[];
+extern u8 gSystemText_LoadingError[];
+
+static void VBlankCB(void);
+static bool8 CheckLanguageMatch(void);
+static bool8 GetEventLoadMessage(u8 *dest, u32 status);
+static void CB2_MysteryEventMenu(void);
+
+static void VBlankCB(void)
+{
+ LoadOam();
+ ProcessSpriteCopyRequests();
+ TransferPlttBuffer();
+}
+
+static bool8 CheckLanguageMatch(void)
+{
+ bool8 val = FALSE;
+
+ if (gLinkPlayers[0].language == gLinkPlayers[1].language)
+ val = TRUE;
+
+ return val;
+}
+
+void CB2_InitMysteryEventMenu(void)
+{
+ ResetSpriteData();
+ FreeAllSpritePalettes();
+ ResetTasks();
+ SetVBlankCallback(VBlankCB);
+ SetUpWindowConfig(&gWindowConfig_81E6CE4);
+ InitMenuWindow(&gWindowConfig_81E6CE4);
+ MenuZeroFillScreen();
+ REG_DISPCNT = 320;
+ REG_BLDCNT = 0;
+ CreateTask(Task_DestroySelf, 0);
+ StopMapMusic();
+ RunTasks();
+ AnimateSprites();
+ BuildOamBuffer();
+ UpdatePaletteFade();
+ FillPalette(0, 0, 2);
+ SetMainCallback2(CB2_MysteryEventMenu);
+}
+
+static bool8 GetEventLoadMessage(u8 *dest, u32 status)
+{
+ bool8 retVal = 1;
+
+ if (status == 0)
+ {
+ StringCopy(dest, gSystemText_EventLoadSuccess);
+ retVal = 0;
+ }
+
+ if (status == 2)
+ retVal = 0;
+
+ if (status == 1)
+ StringCopy(dest, gSystemText_LoadingError);
+
+ return retVal;
+}
+
+static void CB2_MysteryEventMenu(void)
+{
+ u16 unkVal;
+
+ switch (gMain.state)
+ {
+ case 0:
+ MenuDrawTextWindow(0, 14, 29, 19);
+ BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, 0);
+ gMain.state++;
+ break;
+ case 1:
+ if (gPaletteFade.active)
+ break;
+ sub_8072044(gSystemText_LinkStandby);
+ gMain.state++;
+ break;
+ case 2:
+ if (MenuUpdateWindowText())
+ {
+ gMain.state++;
+ gLinkType = 21761;
+ OpenLink();
+ }
+ break;
+ case 3:
+ if ((gLinkStatus & 0x20) && (gLinkStatus & 0x1C) > 4)
+ {
+ PlaySE(SE_PIN);
+ sub_8072044(gSystemText_LoadEventPressA);
+ gMain.state++;
+ }
+ if (gMain.newKeys & B_BUTTON)
+ {
+ PlaySE(SE_SELECT);
+ CloseLink();
+ gMain.state = 15;
+ }
+ break;
+ case 4:
+ if (MenuUpdateWindowText())
+ gMain.state++;
+ break;
+#ifdef NONMATCHING
+ case 5:
+ if (GetLinkPlayerCount_2() != 2)
+ {
+ GetEventLoadMessage(gStringVar4, 1);
+ sub_8072044(gStringVar4);
+ gMain.state = 13;
+ break;
+ }
+ if (gMain.newKeys & A_BUTTON)
+ {
+ PlaySE(SE_SELECT);
+ sub_8007F4C();
+ MenuDrawTextWindow(6, 5, 23, 8);
+ MenuPrint(gSystemText_LoadingEvent, 7, 6);
+ gMain.state++;
+ }
+ else if (gMain.newKeys & B_BUTTON)
+ {
+ PlaySE(SE_SELECT);
+ CloseLink();
+ gMain.state = 15;
+ }
+ break;
+ case 6:
+ if (IsLinkConnectionEstablished())
+ {
+ if (!gReceivedRemoteLinkPlayers)
+ break;
+
+ if (GetLinkPlayerDataExchangeStatusTimed() == 3)
+ {
+ sub_800832C();
+ MenuZeroFillWindowRect(6, 5, 23, 8);
+ GetEventLoadMessage(gStringVar4, 1);
+ sub_8072044(gStringVar4);
+ gMain.state = 13;
+ break;
+ }
+ else if (CheckLanguageMatch())
+ {
+ sub_8072044(gSystemText_DontCutLink);
+ gMain.state++;
+ break;
+ }
+ else
+ {
+ CloseLink();
+ MenuZeroFillWindowRect(6, 5, 23, 8);
+ GetEventLoadMessage(gStringVar4, 1);
+ sub_8072044(gStringVar4);
+ gMain.state = 13;
+ break;
+ }
+ }
+ if (gMain.newKeys & B_BUTTON)
+ {
+ PlaySE(SE_SELECT);
+ CloseLink();
+ gMain.state = 15;
+ break;
+ }
+ break;
+#else
+ case 5:
+ if (GetLinkPlayerCount_2() != 2)
+ {
+ goto label;
+ }
+ if (gMain.newKeys & A_BUTTON)
+ {
+ PlaySE(SE_SELECT);
+ sub_8007F4C();
+ MenuDrawTextWindow(6, 5, 23, 8);
+ MenuPrint(gSystemText_LoadingEvent, 7, 6);
+ gMain.state++;
+ }
+ else if (gMain.newKeys & B_BUTTON)
+ {
+ PlaySE(SE_SELECT);
+ CloseLink();
+ gMain.state = 15;
+ }
+ break;
+ case 6:
+ if (IsLinkConnectionEstablished())
+ {
+ register u8 *ptr asm("r0");
+ register u32 offset1 asm("r2");
+ register u32 offset2 asm("r1");
+
+ if (!gReceivedRemoteLinkPlayers)
+ break;
+
+ if (GetLinkPlayerDataExchangeStatusTimed() == 3)
+ {
+ sub_800832C();
+ MenuZeroFillWindowRect(6, 5, 23, 8);
+ GetEventLoadMessage(gStringVar4, 1);
+ sub_8072044(gStringVar4);
+ ptr = (u8 *)&gMain;
+ offset1 = offsetof(struct Main, state);
+ asm("" ::: "r1");
+ ptr += offset1;
+ *ptr = 13;
+ }
+ else if (CheckLanguageMatch())
+ {
+ register u8 *ptr2 asm("r1");
+ register int offset3 asm("r0");
+ register int dummy asm("r2");
+ sub_8072044(gSystemText_DontCutLink);
+ ptr2 = (u8 *)&gMain;
+ offset3 = offsetof(struct Main, state);
+ if (dummy)
+ dummy++;
+ ptr2 += offset3;
+ (*ptr2)++;
+ break;
+ }
+ else
+ {
+ CloseLink();
+ MenuZeroFillWindowRect(6, 5, 23, 8);
+ label:
+ GetEventLoadMessage(gStringVar4, 1);
+ sub_8072044(gStringVar4);
+ ptr = (u8 *)&gMain;
+ offset2 = offsetof(struct Main, state);
+ ptr += offset2;
+ *ptr = 13;
+ }
+ break;
+ }
+ if (gMain.newKeys & B_BUTTON)
+ {
+ PlaySE(SE_SELECT);
+ CloseLink();
+ gMain.state = 15;
+ break;
+ }
+ break;
+#endif
+ case 7:
+ if (MenuUpdateWindowText())
+ gMain.state++;
+ break;
+ case 8:
+ if (GetBlockReceivedStatus())
+ {
+ ResetBlockReceivedFlags();
+ gMain.state++;
+ }
+ break;
+ case 9:
+ gMain.state++;
+ break;
+ case 10:
+ sub_800832C();
+ gMain.state++;
+ break;
+ case 11:
+ if (gReceivedRemoteLinkPlayers)
+ break;
+ unkVal = sub_812613C(unk_2000000);
+ CpuFill32(0, unk_2000000, 0x7D4);
+ if (!GetEventLoadMessage(gStringVar4, unkVal))
+ sub_8125D44(0);
+ gMain.state++;
+ break;
+ case 12:
+ sub_8072044(gStringVar4);
+ gMain.state++;
+ break;
+ case 13:
+ MenuZeroFillWindowRect(6, 5, 23, 8);
+ if (MenuUpdateWindowText())
+ {
+ gMain.state++;
+ gUnknown_02039338 = 0;
+ }
+ break;
+ case 14:
+ if (gMain.newKeys & A_BUTTON)
+ {
+ PlaySE(SE_SELECT);
+ gMain.state++;
+ }
+ break;
+ case 15:
+ BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, 0);
+ gMain.state++;
+ break;
+ case 16:
+ if (!gPaletteFade.active)
+ DoSoftReset();
+ break;
+ }
+
+ if (gLinkStatus & 0x40)
+ {
+ if (!IsLinkMaster())
+ {
+ CloseLink();
+ MenuZeroFillWindowRect(6, 5, 23, 8);
+ GetEventLoadMessage(gStringVar4, 1);
+ sub_8072044(gStringVar4);
+ gMain.state = 13;
+ }
+ }
+
+ RunTasks();
+ AnimateSprites();
+ BuildOamBuffer();
+ UpdatePaletteFade();
+}
diff --git a/src/mystery_event_script.c b/src/mystery_event_script.c
new file mode 100644
index 000000000..4aa3784d7
--- /dev/null
+++ b/src/mystery_event_script.c
@@ -0,0 +1,97 @@
+#include "global.h"
+#include "script.h"
+#include "string_util.h"
+
+#ifdef SAPPHIRE
+#define UNK_MASK 0x100
+#else
+#define UNK_MASK 0x80
+#endif
+
+extern struct ScriptContext gUnknown_02039288;
+
+extern ScrCmdFunc gScriptFuncs[];
+extern ScrCmdFunc gScriptFuncs_End[];
+
+extern u8 gOtherText_DataCannotUseVersion[];
+
+void sub_8126160(u32 val);
+
+bool32 sub_8126098(u16 a1, u32 a2, u16 a3, u32 a4)
+{
+ if (!(a1 & 0x2))
+ return FALSE;
+
+ if (!(a2 & 0x2))
+ return FALSE;
+
+ if (!(a3 & 0x4))
+ return FALSE;
+
+ if (!(a4 & UNK_MASK))
+ return FALSE;
+
+ return TRUE;
+}
+
+void sub_81260D0(void)
+{
+ StringExpandPlaceholders(gStringVar4, gOtherText_DataCannotUseVersion);
+ sub_8126160(3);
+}
+
+void sub_81260EC(struct ScriptContext *ctx, u8 *ptr)
+{
+ InitScriptContext(ctx, gScriptFuncs, gScriptFuncs_End);
+ SetupBytecodeScript(ctx, ptr);
+ ctx->data[0] = (u32)ptr;
+ ctx->data[1] = 0;
+ ctx->data[2] = 0;
+ ctx->data[3] = 0;
+}
+
+bool32 sub_812611C(struct ScriptContext *ctx)
+{
+ if (RunScript(ctx) && ctx->data[3])
+ return TRUE;
+ else
+ return FALSE;
+}
+
+u32 sub_812613C(u8 *ptr)
+{
+ struct ScriptContext *ctx = &gUnknown_02039288;
+ sub_81260EC(ctx, ptr);
+ while (sub_812611C(ctx))
+ ;
+ return ctx->data[2];
+}
+
+void sub_8126160(u32 val)
+{
+ gUnknown_02039288.data[2] = val;
+}
+
+int sub_812616C(u8 *a1, int a2)
+{
+ unsigned int i;
+ int sum = 0;
+
+ for (i = 0; i < a2; i++)
+ sum += a1[i];
+
+ return sum;
+}
+
+u32 sub_812618C(u8 *ptr)
+{
+ return ptr[0] | (ptr[1] << 8) | (ptr[2] << 16) | (ptr[3] << 24);
+}
+
+void sub_81261A4(u8 *ptr, u32 val)
+{
+ ptr[0] = val;
+ ptr[1] = val >> 8;
+ ptr[2] = val >> 16;
+ ptr[3] = val >> 24;
+}
diff --git a/src/new_game.c b/src/new_game.c
index 3225ba2bd..4f93e4e3c 100644
--- a/src/new_game.c
+++ b/src/new_game.c
@@ -1,9 +1,16 @@
#include "global.h"
+#include "new_game.h"
+#include "asm.h"
+#include "berry.h"
+#include "play_time.h"
+#include "pokemon_size_record.h"
+#include "script.h"
+#include "rom4.h"
+#include "pokedex.h"
+#include "lottery_corner.h"
#include "rng.h"
#include "rtc.h"
-#include "pokemon.h"
-
-extern void warp1_set(s8, s8, s8, s8, s8);
+#include "event_data.h"
extern u8 gUnknown_020297EC;
@@ -12,21 +19,29 @@ extern u8 gUnknown_03005CE8;
extern u16 gSaveFileStatus;
extern u8 gUnknown_0819FA81[];
-extern const struct SB1_2EFC_Struct gUnknown_08216604;
-void write_word_to_mem(u32 a1, u8 *a2)
+const struct SB1_2EFC_Struct gUnknown_08216604 =
+{
+ {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ }
+};
+
+void write_word_to_mem(u32 var, u8 *dataPtr)
{
- a2[0] = a1;
- a2[1] = a1 >> 8;
- a2[2] = a1 >> 16;
- a2[3] = a1 >> 24;
+ dataPtr[0] = var;
+ dataPtr[1] = var >> 8;
+ dataPtr[2] = var >> 16;
+ dataPtr[3] = var >> 24;
}
-void sub_8052D10(u8 *a1, u8 *a2)
+void copy_word_to_mem(u8 *copyTo, u8 *copyFrom)
{
s32 i;
for (i = 0; i < 4; i++)
- a1[i] = a2[i];
+ copyTo[i] = copyFrom[i];
}
void set_player_trainer_id(void)
@@ -34,6 +49,7 @@ void set_player_trainer_id(void)
write_word_to_mem((Random() << 16) | Random(), gSaveBlock2.playerTrainerId);
}
+// L=A isnt set here for some reason.
void SetDefaultOptions(void)
{
gSaveBlock2.optionsTextSpeed = OPTIONS_TEXT_SPEED_MID;
@@ -44,7 +60,7 @@ void SetDefaultOptions(void)
gSaveBlock2.regionMapZoom = FALSE;
}
-void sub_8052D78(void)
+void ClearPokedexFlags(void)
{
gUnknown_03005CE8 = 0;
memset(&gSaveBlock2.pokedex.owned, 0, sizeof(gSaveBlock2.pokedex.owned));
@@ -61,10 +77,10 @@ void sub_8052DA8(void)
void sub_8052DE4(void)
{
- CpuFill32(0, gSaveBlock2.filler_A8, sizeof(gSaveBlock2.filler_A8));
+ CpuFill32(0, &gSaveBlock2.filler_A8, sizeof(gSaveBlock2.filler_A8));
}
-void sub_8052E04(void)
+void WarpToTruck(void)
{
warp1_set(25, 40, -1, -1, -1); // inside of truck
warp_in();
@@ -96,18 +112,18 @@ void NewGameInitData(void)
sub_8052DE4();
memset(&gSaveBlock1, 0, sizeof(gSaveBlock1));
sub_80A2B18();
- gSaveBlock2.sb2_field_9 = 0;
+ gSaveBlock2.specialSaveWarp = 0;
set_player_trainer_id();
PlayTimeCounter_Reset();
- sub_8052D78();
- sub_8069030();
+ ClearPokedexFlags();
+ InitEventData();
sub_80BD7A8();
sub_80BDAB4();
sub_80BB5B4();
- sub_80B4A90();
+ ClearBerryTrees();
gSaveBlock1.money = 3000;
sub_80AB1B0();
- sub_80530AC();
+ ResetGameStats();
sub_8052DA8();
InitLinkBattleRecords();
InitShroomishSizeRecord();
@@ -126,7 +142,7 @@ void NewGameInitData(void)
sub_80F7AA4();
sub_80FA17C();
sub_810FA54();
- sub_8145A78();
- sub_8052E04();
+ ResetLotteryCorner();
+ WarpToTruck();
ScriptContext2_RunNewScript(gUnknown_0819FA81);
}
diff --git a/src/option_menu.c b/src/option_menu.c
index ede91acf0..f597429c1 100644
--- a/src/option_menu.c
+++ b/src/option_menu.c
@@ -1,4 +1,5 @@
#include "global.h"
+#include "option_menu.h"
#include "main.h"
#include "menu.h"
#include "palette.h"
@@ -309,7 +310,7 @@ static void Task_OptionMenuFadeOut(u8 taskId)
if(!gPaletteFade.active)
{
DestroyTask(taskId);
- SetMainCallback2(gMain.field_8);
+ SetMainCallback2(gMain.savedCallback);
}
}
diff --git a/src/palette.c b/src/palette.c
index 243c0c87b..165eb2eae 100644
--- a/src/palette.c
+++ b/src/palette.c
@@ -1,5 +1,8 @@
#include "global.h"
#include "palette.h"
+#include "asm.h"
+#include "blend_palette.h"
+#include "decompress.h"
enum
{
@@ -27,7 +30,7 @@ struct PaletteStructTemplate
struct PaletteStruct
{
- struct PaletteStructTemplate *base;
+ const struct PaletteStructTemplate *base;
u32 ps_field_4_0:1;
u16 ps_field_4_1:1;
u32 baseDestOffset:9;
@@ -37,9 +40,6 @@ struct PaletteStruct
u8 ps_field_9;
};
-extern void sub_800D238(const void *src, void *dest);
-extern void BlendPalette(u16, u16, u8, u16);
-
EWRAM_DATA u16 gPlttBufferUnfaded[0x200] = {0};
EWRAM_DATA u16 gPlttBufferFaded[0x200] = {0};
EWRAM_DATA static struct PaletteStruct sPaletteStructs[0x10] = {0};
@@ -48,7 +48,19 @@ EWRAM_DATA u32 gFiller_202F394 = 0;
EWRAM_DATA static u32 sPlttBufferTransferPending = 0;
EWRAM_DATA static u8 sPaletteDecompressionBuffer[0x400] = {0};
-extern struct PaletteStructTemplate gDummyPaletteStructTemplate;
+static const struct PaletteStructTemplate sDummyPaletteStructTemplate =
+{
+ 0xFFFF,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 1,
+ 0
+};
static void unused_sub_8073DFC(struct PaletteStruct *, u32 *);
static void unused_sub_8073F60(struct PaletteStruct *, u32 *);
@@ -332,7 +344,7 @@ void ResetPaletteStructByUid(u16 a1)
void ResetPaletteStruct(u8 paletteNum)
{
- sPaletteStructs[paletteNum].base = &gDummyPaletteStructTemplate;
+ sPaletteStructs[paletteNum].base = &sDummyPaletteStructTemplate;
sPaletteStructs[paletteNum].ps_field_4_0 = 0;
sPaletteStructs[paletteNum].baseDestOffset = 0;
sPaletteStructs[paletteNum].destOffset = 0;
diff --git a/src/party_menu.c b/src/party_menu.c
new file mode 100644
index 000000000..ce1b0f32a
--- /dev/null
+++ b/src/party_menu.c
@@ -0,0 +1,317 @@
+#include "global.h"
+#include "menu.h"
+#include "pokemon.h"
+#include "songs.h"
+#include "sound.h"
+#include "string_util.h"
+#include "task.h"
+
+#define DATA_COUNT (6)
+
+struct Unk201C000 {
+ /* 0x00 */ struct Pokemon *pokemon;
+ /* 0x04 */ u8 var04;
+ /* 0x05 */ u8 var05;
+ /* 0x06 */ u16 var06;
+ u8 pad_08[10];
+ /* 0x12 */ u16 var12;
+};
+
+struct Unk201B260 {
+ /* 0x00 */ u8 var00;
+ /* 0x01 */ u8 var01;
+ u8 pad_02[2];
+ /* 0x04 */ s16 var04[DATA_COUNT * 2];
+ u8 pad_1C[2];
+ /* 0x1E */ u16 var1E;
+ /* 0x20 */ u16 var20;
+};
+
+extern struct Unk201B260 unk_201B260;
+extern struct Unk201C000 unk_201C000;
+extern u8 gStringVar1[];
+extern u8 gUnknown_0202E8F4;
+extern u8 gUnknown_0202E8F6;
+
+extern u8 gUnknown_083769A8[][12];
+extern u8 gUnknown_08376D1C[DATA_COUNT];
+extern u8 *gUnknown_08376D04[DATA_COUNT];
+extern u8 gOtherText_TallPlusAndRightArrow[];
+
+void task_pc_turn_off(u8 *u8, int i);
+static void sub_806E884(u8 taskId);
+void sub_806F8AC(u8 taskId);
+void PartyMenuUpdateLevelOrStatus(struct Pokemon *, u8);
+u8 ExecuteTableBasedItemEffect__(u8 u8, u16 u16, int i);
+void sub_80701DC(u8 taskId);
+
+u8 sub_806E834(u8 *message, u8 arg1) {
+ u8 taskId;
+
+ gUnknown_0202E8F6 = 1;
+
+ MenuDrawTextWindow(3, 14, 26, 19);
+ MenuPrintMessage(message, 4, 15);
+
+ taskId = CreateTask(sub_806E884, 1);
+ gTasks[taskId].data[0] = arg1;
+
+ return taskId;
+}
+
+static void sub_806E884(u8 taskId) {
+ if (MenuUpdateWindowText() == 0) {
+ return;
+ }
+
+ gUnknown_0202E8F6 = 0;
+
+ if (gTasks[taskId].data[0] == 0) {
+ MenuZeroFillWindowRect(3, 14, 26, 19);
+ }
+
+ DestroyTask(taskId);
+}
+
+asm(".section .text_b");
+
+#ifdef NONMATCHING
+void sub_8070088(u8 taskId) {
+ u8 dummyTaskId;
+ struct Task *task2;
+
+ gTasks[taskId].func = TaskDummy;
+
+ if (GetMonData(&gPlayerParty[unk_201C000.var04], MON_DATA_SPECIES) == 0) {
+ gTasks[taskId].func = sub_80701DC;
+ return;
+ }
+
+ dummyTaskId = CreateTask(TaskDummy, 5);
+ task2 = &gTasks[dummyTaskId];
+
+ task2->data[10] = GetMonData(unk_201C000.pokemon, MON_DATA_MAX_HP);
+ task2->data[11] = GetMonData(unk_201C000.pokemon, MON_DATA_HP);
+
+ if (ExecuteTableBasedItemEffect__(unk_201C000.var05, unk_201C000.var06, 0)) {
+ DestroyTask(dummyTaskId);
+ gTasks[taskId].func = sub_80701DC;
+ return;
+ }
+
+ gUnknown_0202E8F4 = 1;
+ MenuZeroFillWindowRect(3, 14, 26, 19);
+ PlaySE(SE_KAIFUKU);
+ PartyMenuUpdateLevelOrStatus(unk_201C000.pokemon, unk_201C000.var05);
+
+ task_pc_turn_off(&gUnknown_083769A8[IsDoubleBattle()][unk_201C000.var05], 9);
+ unk_201B260.var01 = 2; // u8
+
+ task2->data[12] = GetMonData(unk_201C000.pokemon, MON_DATA_HP) - task2->data[11];
+ task2->data[14]= 1;
+ unk_201B260.var1E = 1; // u16
+ unk_201B260.var20 = 1; // u16
+
+ unk_201C000.var12 = -0x8000;
+ task2->func = sub_806F8AC;
+}
+#else
+__attribute__((naked))
+void sub_8070088(void) {
+ 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, 0x4\n\
+ lsls r0, 24\n\
+ lsrs r0, 24\n\
+ ldr r1, _08070120 @ =gTasks\n\
+ mov r10, r1\n\
+ lsls r1, r0, 2\n\
+ adds r1, r0\n\
+ lsls r1, 3\n\
+ mov r2, r10\n\
+ adds r7, r1, r2\n\
+ ldr r5, _08070124 @ =TaskDummy\n\
+ str r5, [r7]\n\
+ ldr r4, _08070128 @ =0x0201c000\n\
+ ldrb r0, [r4, 0x5]\n\
+ movs r1, 0x64\n\
+ mov r9, r1\n\
+ mov r2, r9\n\
+ muls r2, r0\n\
+ adds r0, r2, 0\n\
+ ldr r1, _0807012C @ =gPlayerParty\n\
+ mov r8, r1\n\
+ add r0, r8\n\
+ movs r1, 0xB\n\
+ bl GetMonData\n\
+ cmp r0, 0\n\
+ beq _08070118\n\
+ adds r0, r5, 0\n\
+ movs r1, 0x5\n\
+ bl CreateTask\n\
+ lsls r0, 24\n\
+ lsrs r5, r0, 24\n\
+ lsls r0, r5, 2\n\
+ adds r0, r5\n\
+ lsls r0, 3\n\
+ str r0, [sp]\n\
+ mov r0, r10\n\
+ adds r0, 0x8\n\
+ ldr r2, [sp]\n\
+ adds r6, r2, r0\n\
+ ldrb r0, [r4, 0x5]\n\
+ mov r1, r9\n\
+ muls r1, r0\n\
+ adds r0, r1, 0\n\
+ add r0, r8\n\
+ str r0, [r4]\n\
+ movs r1, 0x3A\n\
+ bl GetMonData\n\
+ strh r0, [r6, 0x14]\n\
+ ldr r0, [r4]\n\
+ movs r1, 0x39\n\
+ bl GetMonData\n\
+ strh r0, [r6, 0x16]\n\
+ ldrb r0, [r4, 0x5]\n\
+ ldrh r1, [r4, 0x6]\n\
+ movs r2, 0\n\
+ bl ExecuteTableBasedItemEffect__\n\
+ lsls r0, 24\n\
+ cmp r0, 0\n\
+ beq _08070134\n\
+ adds r0, r5, 0\n\
+ bl DestroyTask\n\
+_08070118:\n\
+ ldr r0, _08070130 @ =sub_80701DC\n\
+ str r0, [r7]\n\
+ b _080701B0\n\
+ .align 2, 0\n\
+_08070120: .4byte gTasks\n\
+_08070124: .4byte TaskDummy\n\
+_08070128: .4byte 0x0201c000\n\
+_0807012C: .4byte gPlayerParty\n\
+_08070130: .4byte sub_80701DC\n\
+_08070134:\n\
+ ldr r1, _080701C0 @ =gUnknown_0202E8F4\n\
+ movs r0, 0x1\n\
+ strb r0, [r1]\n\
+ movs r0, 0x3\n\
+ movs r1, 0xE\n\
+ movs r2, 0x1A\n\
+ movs r3, 0x13\n\
+ bl MenuZeroFillWindowRect\n\
+ movs r0, 0x1\n\
+ bl PlaySE\n\
+ ldr r0, [r4]\n\
+ ldrb r1, [r4, 0x5]\n\
+ bl PartyMenuUpdateLevelOrStatus\n\
+ bl IsDoubleBattle\n\
+ adds r1, r0, 0\n\
+ lsls r1, 24\n\
+ lsrs r1, 24\n\
+ lsls r0, r1, 1\n\
+ adds r0, r1\n\
+ lsls r0, 2\n\
+ ldrb r1, [r4, 0x5]\n\
+ lsls r1, 1\n\
+ adds r0, r1\n\
+ ldr r1, _080701C4 @ =gUnknown_083769A8\n\
+ adds r0, r1\n\
+ movs r1, 0x9\n\
+ bl task_pc_turn_off\n\
+ ldr r2, _080701C8 @ =0xfffff261\n\
+ adds r1, r4, r2\n\
+ movs r0, 0x2\n\
+ strb r0, [r1]\n\
+ ldr r0, [r4]\n\
+ movs r1, 0x39\n\
+ bl GetMonData\n\
+ ldrh r1, [r6, 0x16]\n\
+ subs r0, r1\n\
+ strh r0, [r6, 0x18]\n\
+ movs r0, 0x1\n\
+ strh r0, [r6, 0x1C]\n\
+ ldr r1, _080701CC @ =0xfffff27e\n\
+ adds r0, r4, r1\n\
+ movs r1, 0x1\n\
+ strh r1, [r0]\n\
+ ldr r2, _080701D0 @ =0xfffff280\n\
+ adds r0, r4, r2\n\
+ strh r1, [r0]\n\
+ ldrh r1, [r6, 0x16]\n\
+ adds r2, 0x2\n\
+ adds r0, r4, r2\n\
+ strh r1, [r0]\n\
+ ldr r0, _080701D4 @ =0xffff8000\n\
+ str r0, [r4, 0xC]\n\
+ ldr r1, [sp]\n\
+ add r1, r10\n\
+ ldr r0, _080701D8 @ =sub_806F8AC\n\
+ str r0, [r1]\n\
+_080701B0:\n\
+ add sp, 0x4\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\
+_080701C0: .4byte gUnknown_0202E8F4\n\
+_080701C4: .4byte gUnknown_083769A8\n\
+_080701C8: .4byte 0xfffff261\n\
+_080701CC: .4byte 0xfffff27e\n\
+_080701D0: .4byte 0xfffff280\n\
+_080701D4: .4byte 0xffff8000\n\
+_080701D8: .4byte sub_806F8AC\n\
+ .syntax divided\n");
+}
+#endif
+
+
+asm(".section .text_c");
+
+void sub_8070848(u8 taskId) {
+ u8 i;
+
+ MenuDrawTextWindow(11, 0, 29, 7);
+
+ for (i = 0; i < DATA_COUNT; i++) {
+ u8 x;
+ u8 y;
+ u32 stat;
+ struct Pokemon **pokemon;
+
+ pokemon = &unk_201C000.pokemon;
+ asm("" ::: "r0");
+ stat = GetMonData(*pokemon, gUnknown_08376D1C[i]);
+
+ unk_201B260.var04[i + DATA_COUNT] = stat;
+ unk_201B260.var04[i] = stat - unk_201B260.var04[i];
+
+ x = (i / 3) * 9 + 11;
+ y = ((i % 3) << 1) + 1;
+
+ MenuPrint_PixelCoords(gUnknown_08376D04[i], (x + 1) * 8, y * 8, 1);
+
+
+ if (i == 2) {
+ MenuPrint_PixelCoords(gOtherText_TallPlusAndRightArrow, (x + 6) * 8 + 6, y * 8, 0);
+ } else {
+ MenuPrint_PixelCoords(gOtherText_TallPlusAndRightArrow, (x + 6) * 8 + 6, y * 8, 1);
+ }
+
+ gStringVar1[0] = 0xFC;
+ gStringVar1[1] = 0x14;
+ gStringVar1[2] = 0x06;
+
+ ConvertIntToDecimalStringN(gStringVar1 + 3, unk_201B260.var04[i], 1, 2);
+
+ MenuPrint_PixelCoords(gStringVar1, (x + 6) * 8 + 12, y * 8, 0);
+ }
+}
diff --git a/src/play_time.c b/src/play_time.c
index 4eabf38cc..9882c9c4b 100644
--- a/src/play_time.c
+++ b/src/play_time.c
@@ -10,8 +10,6 @@ enum
static u8 sPlayTimeCounterState;
-void PlayTimeCounter_SetToMax();
-
void PlayTimeCounter_Reset()
{
sPlayTimeCounterState = STOPPED;
diff --git a/src/player_pc.c b/src/player_pc.c
new file mode 100644
index 000000000..822e2108e
--- /dev/null
+++ b/src/player_pc.c
@@ -0,0 +1,818 @@
+#include "global.h"
+#include "item.h"
+#include "task.h"
+#include "menu.h"
+#include "sound.h"
+#include "main.h"
+#include "script.h"
+#include "palette.h"
+#include "weather.h"
+#include "asm.h"
+#include "string_util.h"
+
+extern void DisplayItemMessageOnField(u8, u8*, TaskFunc, u16);
+extern void ItemStorageMenuProcessInput(u8);
+extern void DoPlayerPCDecoration(u8);
+extern void BuyMenuFreeMemory(void);
+extern void DestroyVerticalScrollIndicator(u8);
+extern u8 sub_813AF3C(void);
+extern void sub_813AF78(void);
+extern void sub_813A240(u8);
+extern void sub_813B108(u8);
+extern void sub_813B174(u8);
+extern void sub_80A6A30(void);
+extern u8 sub_807D770(void);
+extern void sub_813A280(u8);
+extern void sub_813AE6C(u8, u8);
+extern void sub_813A240(u8);
+extern void sub_813AD58(u16);
+extern void sub_813AE0C(u8);
+extern void sub_813ABE8(u8);
+extern void sub_813AA30(u8, u8);
+extern void sub_813A4B4(u8);
+extern void sub_813A468(u8);
+
+extern u8 gOtherText_NoItems[];
+
+extern u16 gNewGamePCItems[];
+
+extern u8 gOtherText_WhatWillYouDo[];
+extern u8 gOtherText_NoMailHere[];
+
+extern u8 *gUnknown_02039314;
+extern struct MenuAction gUnknown_08406298[];
+extern u8 gUnknown_084062B8[];
+extern u8 gUnknown_084062BC[];
+extern u8 gUnknown_030007B4;
+extern u8 unk_201FE00[];
+
+extern u8 gUnknown_08152850;
+extern u8 gUnknown_08152C75;
+
+extern u32 gUnknown_08406288[];
+extern const struct MenuAction gUnknown_084062C0[];
+
+void InitPlayerPCMenu(u8 taskId);
+void PlayerPCProcessMenuInput(u8 taskId);
+void InitItemStorageMenu(u8);
+void ItemStorageMenuPrint(u8 *);
+
+void NewGameInitPCItems(void)
+{
+ u8 i = 0;
+
+ ClearItemSlots(gSaveBlock1.pcItems, 0x32);
+
+ while (gNewGamePCItems[i * 2] && (gNewGamePCItems + 1)[i * 2])
+ {
+ if(AddPCItem(gNewGamePCItems[i * 2], (gNewGamePCItems + 1)[i * 2]) != 1)
+ break;
+ i++;
+ }
+}
+
+void BedroomPC(void)
+{
+ u8 taskId;
+
+ gUnknown_02039314 = gUnknown_084062B8;
+ gUnknown_030007B4 = 4;
+ taskId = CreateTask(TaskDummy, 0);
+ DisplayItemMessageOnField(taskId, gOtherText_WhatWillYouDo, InitPlayerPCMenu, 0);
+}
+
+void PlayerPC(void)
+{
+ u8 taskId;
+
+ gUnknown_02039314 = gUnknown_084062BC;
+ gUnknown_030007B4 = 3;
+ taskId = CreateTask(TaskDummy, 0);
+ DisplayItemMessageOnField(taskId, gOtherText_WhatWillYouDo, InitPlayerPCMenu, 0);
+}
+
+void InitPlayerPCMenu(u8 taskId)
+{
+ MenuDrawTextWindow(0, 0, 10, gUnknown_030007B4 * 2 + 1);
+ PrintMenuItemsReordered(1, 1, gUnknown_030007B4, gUnknown_08406298, gUnknown_02039314);
+ InitMenu(0, 1, 1, gUnknown_030007B4, 0, 9);
+ gTasks[taskId].func = PlayerPCProcessMenuInput;
+}
+
+void PlayerPCProcessMenuInput(u8 taskId)
+{
+ if(gMain.newAndRepeatedKeys & 0x40)
+ {
+ PlaySE(5);
+ MoveMenuCursor(-1);
+ }
+ else if(gMain.newAndRepeatedKeys & 0x80)
+ {
+ PlaySE(5);
+ MoveMenuCursor(1);
+ }
+ else if(gMain.newKeys & 0x1)
+ {
+ sub_8072DEC();
+ PlaySE(5);
+ gUnknown_08406298[gUnknown_02039314[GetMenuCursorPos()]].func(taskId);
+ }
+ else if(gMain.newKeys & 0x2)
+ {
+ sub_8072DEC();
+ PlaySE(5);
+ gUnknown_08406298[gUnknown_030007B4[gUnknown_02039314 - 1]].func(taskId);
+ }
+}
+
+void ReshowPlayerPC(u8 var)
+{
+ DisplayItemMessageOnField(var, gOtherText_WhatWillYouDo, InitPlayerPCMenu, 0);
+}
+
+void PlayerPC_ItemStorage(u8 taskId)
+{
+ InitItemStorageMenu(0);
+ gTasks[taskId].func = ItemStorageMenuProcessInput;
+}
+
+void PlayerPC_Mailbox(u8 taskId)
+{
+ MenuZeroFillWindowRect(0, 0, 10, 9);
+ unk_201FE00[3] = sub_813AF3C();
+ if(!unk_201FE00[3])
+ DisplayItemMessageOnField(taskId, gOtherText_NoMailHere, ReshowPlayerPC, 0);
+ else
+ {
+ unk_201FE00[0] = 0;
+ unk_201FE00[2] = 0;
+ sub_813AF78();
+ sub_813A240(taskId);
+ sub_813B108(taskId);
+ gTasks[taskId].func = sub_813B174;
+ }
+}
+
+void PlayerPC_Decoration(u8 var)
+{
+ MenuZeroFillWindowRect(0, 0, 10, 9);
+ DoPlayerPCDecoration(var);
+}
+
+void PlayerPC_TurnOff(u8 taskId)
+{
+ if(gUnknown_030007B4 == 4)
+ {
+ MenuZeroFillWindowRect(0, 0, 0x1D, 0x13);
+ if(!gSaveBlock2.playerGender)
+ ScriptContext1_SetupScript(&gUnknown_08152850); // male
+ else
+ ScriptContext1_SetupScript(&gUnknown_08152C75); // female
+ }
+ else
+ {
+ MenuZeroFillWindowRect(0, 0, 10, 9);
+ EnableBothScriptContexts();
+ }
+ DestroyTask(taskId);
+}
+
+void InitItemStorageMenu(u8 var)
+{
+ MenuZeroFillWindowRect(0, 0, 10, 9);
+ MenuDrawTextWindow(0, 0, 11, 9);
+ PrintMenuItems(1, 1, 4, gUnknown_084062C0);
+ InitMenu(0, 1, 1, 4, var, 10);
+ ItemStorageMenuPrint((u8 *)gUnknown_08406288[var]);
+}
+
+void ItemStorageMenuPrint(u8 *textPtr)
+{
+ MenuFillWindowRectWithBlankTile(2, 15, 27, 18);
+ MenuPrint(textPtr, 2, 15);
+}
+
+void ItemStorageMenuProcessInput(u8 var)
+{
+ if(gMain.newAndRepeatedKeys & 0x40)
+ {
+ PlaySE(5);
+ MoveMenuCursor(-1);
+ ItemStorageMenuPrint((u8 *)gUnknown_08406288[GetMenuCursorPos()]);
+ }
+ else if(gMain.newAndRepeatedKeys & 0x80)
+ {
+ PlaySE(5);
+ MoveMenuCursor(1);
+ ItemStorageMenuPrint((u8 *)gUnknown_08406288[GetMenuCursorPos()]);
+ }
+ else if(gMain.newKeys & 0x1)
+ {
+ PlaySE(5);
+ gUnknown_084062C0[GetMenuCursorPos()].func(var);
+ }
+ else if(gMain.newKeys & 0x2)
+ {
+ sub_8072DEC();
+ PlaySE(5);
+ gUnknown_084062C0[3].func(var);
+ }
+}
+
+void Task_ItemStorage_Deposit(u8 taskId)
+{
+ if(!gPaletteFade.active)
+ {
+ sub_80A6A30();
+ DestroyTask(taskId);
+ }
+}
+
+void ItemStorage_Deposit(u8 taskId)
+{
+ gTasks[taskId].func = Task_ItemStorage_Deposit;
+ fade_screen(1, 0);
+}
+
+void sub_813A0C8(u8 taskId)
+{
+ if(sub_807D770() == 1)
+ gTasks[taskId].func = ItemStorageMenuProcessInput;
+}
+
+void sub_813A0F8(void)
+{
+ MenuDisplayMessageBox();
+ InitItemStorageMenu(1);
+ CreateTask(sub_813A0C8, 0);
+ pal_fill_black();
+}
+
+void ItemStorage_Withdraw(u8 taskId)
+{
+ u8 var;
+ u16 * data = gTasks[taskId].data;
+
+ sub_8072DEC();
+ MenuZeroFillWindowRect(0, 0, 11, 9);
+ var = CountUsedPCItemSlots();
+ data[2] = var;
+
+ if(var)
+ {
+ MenuZeroFillWindowRect(0, 14, 29, 19);
+ data[6] = 0;
+ data[0] = 0;
+ data[1] = 0;
+ sub_813A240(taskId);
+ sub_813AE6C(taskId, 0);
+ gTasks[taskId].func = sub_813A280;
+ }
+ else
+ DisplayItemMessageOnField(taskId, gOtherText_NoItems, PlayerPC_ItemStorage, 0);
+}
+
+void ItemStorage_Toss(u8 taskId)
+{
+ u8 var;
+ u16 * data = gTasks[taskId].data;
+
+ sub_8072DEC();
+ MenuZeroFillWindowRect(0, 0, 11, 9);
+ var = CountUsedPCItemSlots();
+ data[2] = var;
+
+ if(var)
+ {
+ MenuZeroFillWindowRect(0, 14, 29, 19);
+ data[6] = 2;
+ data[0] = 0;
+ data[1] = 0;
+ sub_813A240(taskId);
+ sub_813AE6C(taskId, 2);
+ gTasks[taskId].func = sub_813A280;
+ }
+ else
+ DisplayItemMessageOnField(taskId, gOtherText_NoItems, PlayerPC_ItemStorage, 0);
+}
+
+void ItemStorage_Exit(u8 var)
+{
+ sub_8072DEC();
+ MenuZeroFillWindowRect(0, 0, 11, 9);
+ ReshowPlayerPC(var);
+}
+
+void sub_813A240(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+
+ if (data[2] > 7)
+ data[4] = 8;
+ else
+ data[4] = data[2] + 1;
+
+ if(unk_201FE00[3] > 7)
+ unk_201FE00[1] = 8;
+ else
+ unk_201FE00[1] = unk_201FE00[3] + 1;
+}
+
+#ifdef NONMATCHING
+void sub_813A280(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+
+ if(gMain.newAndRepeatedKeys & 0x40)
+ {
+ if(data[0])
+ {
+ PlaySE(5);
+ data[0] = MoveMenuCursor(-1);
+ if(!data[9])
+ {
+ if(data[1] + data[0] == data[2])
+ {
+ sub_813AD58(0xFFFF);
+ return;
+ }
+ sub_813AD58(gSaveBlock1.pcItems[data[1] + data[0]].itemId);
+ }
+ return;
+ }
+ if(!data[1])
+ return;
+ PlaySE(5);
+ sub_813AE0C(taskId);
+ if(data[9])
+ MoveMenuCursor(0);
+ return;
+ }
+ if(!(gMain.newAndRepeatedKeys & 0x80))
+ {
+ if(gMain.newKeys & 0x4)
+ {
+ if(!data[9])
+ {
+ if(data[0] + data[1] != data[2])
+ {
+ PlaySE(5);
+ data[9] = 1;
+ data[8] = data[0] + data[1];
+ sub_813AD58(0xFFF7);
+ }
+ sub_813ABE8(taskId);
+ return;
+ }
+ PlaySE(5);
+ sub_813AA30(taskId, 0);
+ sub_813AE0C(taskId);
+ return;
+ }
+ if(gMain.newKeys & 0x1)
+ {
+ PlaySE(5);
+ if(data[9])
+ {
+ sub_813AA30(taskId, 0);
+ sub_813AE0C(taskId);
+ return;
+ }
+ if(data[1] + data[0] != data[2])
+ {
+ sub_813A4B4(taskId);
+ return;
+ }
+ }
+ else
+ {
+ if(!(gMain.newKeys & 0x2))
+ return;
+ PlaySE(5);
+ if(data[9])
+ {
+ sub_813AA30(taskId, 1);
+ sub_813AE0C(taskId);
+ return;
+ }
+ sub_8072DEC();
+ }
+ sub_813A468(taskId);
+ return;
+ }
+ if(data[0] == data[4] - 1)
+ {
+ if(data[1] + data[0] == data[2])
+ return;
+ PlaySE(5);
+ data[1]++;
+ sub_813AE0C(taskId);
+ if(data[9])
+ MoveMenuCursor(0);
+ return;
+ }
+ PlaySE(5);
+ data[0] = MoveMenuCursor(1);
+ if(!data[9])
+ {
+ if(data[1] + data[0] != data[2])
+ {
+ sub_813AD58(gSaveBlock1.pcItems[data[1] + data[0]].itemId);
+ return;
+ }
+ sub_813AD58(0xFFFF);
+ }
+}
+#else
+__attribute__((naked))
+void sub_813A280(u8 taskId)
+{
+ asm(".syntax unified\n\
+ push {r4-r6,lr}\n\
+ lsls r0, 24\n\
+ lsrs r5, r0, 24\n\
+ adds r6, r5, 0\n\
+ lsls r0, r5, 2\n\
+ adds r0, r5\n\
+ lsls r0, 3\n\
+ ldr r1, _0813A2DC @ =gTasks + 0x8\n\
+ adds r4, r0, r1\n\
+ ldr r2, _0813A2E0 @ =gMain\n\
+ ldrh r1, [r2, 0x30]\n\
+ movs r0, 0x40\n\
+ ands r0, r1\n\
+ cmp r0, 0\n\
+ beq _0813A306\n\
+ movs r1, 0\n\
+ ldrsh r0, [r4, r1]\n\
+ cmp r0, 0\n\
+ beq _0813A2E4\n\
+ movs r0, 0x5\n\
+ bl PlaySE\n\
+ movs r0, 0x1\n\
+ negs r0, r0\n\
+ bl MoveMenuCursor\n\
+ lsls r0, 24\n\
+ lsrs r0, 24\n\
+ strh r0, [r4]\n\
+ ldrh r1, [r4, 0x2]\n\
+ adds r1, r0\n\
+ lsls r1, 16\n\
+ lsrs r1, 16\n\
+ movs r2, 0x12\n\
+ ldrsh r0, [r4, r2]\n\
+ cmp r0, 0\n\
+ beq _0813A2CC\n\
+ b _0813A460\n\
+_0813A2CC:\n\
+ lsls r0, r1, 16\n\
+ asrs r1, r0, 16\n\
+ movs r2, 0x4\n\
+ ldrsh r0, [r4, r2]\n\
+ cmp r1, r0\n\
+ beq _0813A34C\n\
+ b _0813A358\n\
+ .align 2, 0\n\
+_0813A2DC: .4byte gTasks + 0x8\n\
+_0813A2E0: .4byte gMain\n\
+_0813A2E4:\n\
+ movs r1, 0x2\n\
+ ldrsh r0, [r4, r1]\n\
+ cmp r0, 0\n\
+ bne _0813A2EE\n\
+ b _0813A460\n\
+_0813A2EE:\n\
+ movs r0, 0x5\n\
+ bl PlaySE\n\
+ ldrh r0, [r4, 0x2]\n\
+ subs r0, 0x1\n\
+ strh r0, [r4, 0x2]\n\
+ adds r0, r5, 0\n\
+ bl sub_813AE0C\n\
+ movs r2, 0x12\n\
+ ldrsh r0, [r4, r2]\n\
+ b _0813A394\n\
+_0813A306:\n\
+ movs r0, 0x80\n\
+ ands r0, r1\n\
+ cmp r0, 0\n\
+ beq _0813A3A0\n\
+ movs r0, 0\n\
+ ldrsh r1, [r4, r0]\n\
+ movs r2, 0x8\n\
+ ldrsh r0, [r4, r2]\n\
+ subs r0, 0x1\n\
+ cmp r1, r0\n\
+ beq _0813A370\n\
+ movs r0, 0x5\n\
+ bl PlaySE\n\
+ movs r0, 0x1\n\
+ bl MoveMenuCursor\n\
+ lsls r0, 24\n\
+ lsrs r0, 24\n\
+ strh r0, [r4]\n\
+ ldrh r1, [r4, 0x2]\n\
+ adds r1, r0\n\
+ lsls r1, 16\n\
+ lsrs r1, 16\n\
+ movs r2, 0x12\n\
+ ldrsh r0, [r4, r2]\n\
+ cmp r0, 0\n\
+ beq _0813A340\n\
+ b _0813A460\n\
+_0813A340:\n\
+ lsls r0, r1, 16\n\
+ asrs r1, r0, 16\n\
+ movs r2, 0x4\n\
+ ldrsh r0, [r4, r2]\n\
+ cmp r1, r0\n\
+ bne _0813A358\n\
+_0813A34C:\n\
+ ldr r0, _0813A354 @ =0x0000ffff\n\
+ bl sub_813AD58\n\
+ b _0813A460\n\
+ .align 2, 0\n\
+_0813A354: .4byte 0x0000ffff\n\
+_0813A358:\n\
+ ldr r0, _0813A36C @ =gSaveBlock1\n\
+ lsls r1, 2\n\
+ adds r1, r0\n\
+ movs r0, 0x93\n\
+ lsls r0, 3\n\
+ adds r1, r0\n\
+ ldrh r0, [r1]\n\
+ bl sub_813AD58\n\
+ b _0813A460\n\
+ .align 2, 0\n\
+_0813A36C: .4byte gSaveBlock1\n\
+_0813A370:\n\
+ movs r2, 0x2\n\
+ ldrsh r0, [r4, r2]\n\
+ adds r0, r1\n\
+ movs r2, 0x4\n\
+ ldrsh r1, [r4, r2]\n\
+ cmp r0, r1\n\
+ beq _0813A460\n\
+ movs r0, 0x5\n\
+ bl PlaySE\n\
+ ldrh r0, [r4, 0x2]\n\
+ adds r0, 0x1\n\
+ strh r0, [r4, 0x2]\n\
+ adds r0, r5, 0\n\
+ bl sub_813AE0C\n\
+ movs r1, 0x12\n\
+ ldrsh r0, [r4, r1]\n\
+_0813A394:\n\
+ cmp r0, 0\n\
+ beq _0813A460\n\
+ movs r0, 0\n\
+ bl MoveMenuCursor\n\
+ b _0813A460\n\
+_0813A3A0:\n\
+ ldrh r1, [r2, 0x2E]\n\
+ movs r0, 0x4\n\
+ ands r0, r1\n\
+ cmp r0, 0\n\
+ beq _0813A3F0\n\
+ movs r2, 0x12\n\
+ ldrsh r0, [r4, r2]\n\
+ cmp r0, 0\n\
+ bne _0813A3E8\n\
+ movs r1, 0\n\
+ ldrsh r0, [r4, r1]\n\
+ movs r2, 0x2\n\
+ ldrsh r1, [r4, r2]\n\
+ adds r0, r1\n\
+ movs r2, 0x4\n\
+ ldrsh r1, [r4, r2]\n\
+ cmp r0, r1\n\
+ beq _0813A3DC\n\
+ movs r0, 0x5\n\
+ bl PlaySE\n\
+ movs r0, 0x1\n\
+ strh r0, [r4, 0x12]\n\
+ ldrh r0, [r4]\n\
+ ldrh r1, [r4, 0x2]\n\
+ adds r0, r1\n\
+ strh r0, [r4, 0x10]\n\
+ ldr r0, _0813A3E4 @ =0x0000fff7\n\
+ bl sub_813AD58\n\
+_0813A3DC:\n\
+ adds r0, r5, 0\n\
+ bl sub_813ABE8\n\
+ b _0813A460\n\
+ .align 2, 0\n\
+_0813A3E4: .4byte 0x0000fff7\n\
+_0813A3E8:\n\
+ movs r0, 0x5\n\
+ bl PlaySE\n\
+ b _0813A420\n\
+_0813A3F0:\n\
+ movs r0, 0x1\n\
+ ands r0, r1\n\
+ cmp r0, 0\n\
+ beq _0813A430\n\
+ movs r0, 0x5\n\
+ bl PlaySE\n\
+ movs r2, 0x12\n\
+ ldrsh r0, [r4, r2]\n\
+ cmp r0, 0\n\
+ bne _0813A420\n\
+ movs r1, 0x2\n\
+ ldrsh r0, [r4, r1]\n\
+ movs r2, 0\n\
+ ldrsh r1, [r4, r2]\n\
+ adds r0, r1\n\
+ movs r2, 0x4\n\
+ ldrsh r1, [r4, r2]\n\
+ cmp r0, r1\n\
+ beq _0813A44A\n\
+ adds r0, r5, 0\n\
+ bl sub_813A4B4\n\
+ b _0813A460\n\
+_0813A420:\n\
+ adds r0, r5, 0\n\
+ movs r1, 0\n\
+ bl sub_813AA30\n\
+ adds r0, r5, 0\n\
+ bl sub_813AE0C\n\
+ b _0813A460\n\
+_0813A430:\n\
+ movs r0, 0x2\n\
+ ands r0, r1\n\
+ cmp r0, 0\n\
+ beq _0813A460\n\
+ movs r0, 0x5\n\
+ bl PlaySE\n\
+ movs r1, 0x12\n\
+ ldrsh r0, [r4, r1]\n\
+ cmp r0, 0\n\
+ bne _0813A452\n\
+ bl sub_8072DEC\n\
+_0813A44A:\n\
+ adds r0, r5, 0\n\
+ bl sub_813A468\n\
+ b _0813A460\n\
+_0813A452:\n\
+ adds r0, r6, 0\n\
+ movs r1, 0x1\n\
+ bl sub_813AA30\n\
+ adds r0, r6, 0\n\
+ bl sub_813AE0C\n\
+_0813A460:\n\
+ pop {r4-r6}\n\
+ pop {r0}\n\
+ bx r0\n\
+ .syntax divided");
+}
+#endif
+
+void sub_813A468(u8 taskId)
+{
+ BuyMenuFreeMemory();
+ DestroyVerticalScrollIndicator(0);
+ DestroyVerticalScrollIndicator(1);
+ MenuZeroFillWindowRect(0, 0, 29, 19);
+ MenuDisplayMessageBox();
+ InitItemStorageMenu(gTasks[taskId].data[6]);
+ gTasks[taskId].func = ItemStorageMenuProcessInput;
+}
+
+#ifdef NONMATCHING
+void sub_813A4B4(u8 taskId)
+{
+ u16 *data = gTasks[taskId].data;
+ u16 var = data[2] + data[0];
+
+ sub_80F996C(0);
+ sub_80F996C(1);
+
+ if(data[6])
+ {
+ if(gSaveBlock1.pcItems[var].itemId == 1)
+ {
+ data[3] = 1;
+ sub_813A794(taskId);
+ return;
+ }
+ sub_813AD58(0xFFF7);
+ data[3] = 1;
+ MenuDrawTextWindow(6, 8, 13, 11);
+ sub_80A418C(data[3], STR_CONV_MODE_RIGHT_ALIGN, 8, 9, 3);
+ gTasks[taskId].func = sub_813A584;
+ return;
+ }
+ if(gSaveBlock1.pcItems[var].itemId != 1)
+ {
+ sub_813AD58(0xFFF7);
+ data[3] = 1;
+ MenuDrawTextWindow(6, 8, 13, 11);
+ sub_80A418C(data[3], STR_CONV_MODE_RIGHT_ALIGN, 8, 9, 3);
+ gTasks[taskId].func = sub_813A584;
+ return;
+ }
+ data[3] = 1;
+ sub_813A6FC(taskId);
+}
+#else
+__attribute__((naked))
+void sub_813A4B4(u8 taskId)
+{
+ asm(".syntax unified\n\
+ push {r4-r6,lr}\n\
+ sub sp, 0x4\n\
+ lsls r0, 24\n\
+ lsrs r6, r0, 24\n\
+ lsls r0, r6, 2\n\
+ adds r0, r6\n\
+ lsls r0, 3\n\
+ ldr r1, _0813A500 @ =gTasks + 0x8\n\
+ adds r4, r0, r1\n\
+ ldrb r0, [r4, 0x2]\n\
+ ldrb r1, [r4]\n\
+ adds r0, r1\n\
+ lsls r0, 24\n\
+ lsrs r5, r0, 24\n\
+ movs r0, 0\n\
+ bl sub_80F996C\n\
+ movs r0, 0x1\n\
+ bl sub_80F996C\n\
+ movs r1, 0xC\n\
+ ldrsh r0, [r4, r1]\n\
+ cmp r0, 0\n\
+ bne _0813A518\n\
+ ldr r1, _0813A504 @ =gSaveBlock1\n\
+ lsls r0, r5, 2\n\
+ adds r0, r1\n\
+ ldr r1, _0813A508 @ =0x0000049a\n\
+ adds r0, r1\n\
+ ldrh r0, [r0]\n\
+ cmp r0, 0x1\n\
+ bne _0813A50C\n\
+ strh r0, [r4, 0x6]\n\
+ adds r0, r6, 0\n\
+ bl sub_813A6FC\n\
+ b _0813A570\n\
+ .align 2, 0\n\
+_0813A500: .4byte gTasks + 0x8\n\
+_0813A504: .4byte gSaveBlock1\n\
+_0813A508: .4byte 0x0000049a\n\
+_0813A50C:\n\
+ ldr r0, _0813A514 @ =0x0000fffe\n\
+ bl sub_813AD58\n\
+ b _0813A542\n\
+ .align 2, 0\n\
+_0813A514: .4byte 0x0000fffe\n\
+_0813A518:\n\
+ ldr r1, _0813A534 @ =gSaveBlock1\n\
+ lsls r0, r5, 2\n\
+ adds r0, r1\n\
+ ldr r1, _0813A538 @ =0x0000049a\n\
+ adds r0, r1\n\
+ ldrh r0, [r0]\n\
+ cmp r0, 0x1\n\
+ bne _0813A53C\n\
+ strh r0, [r4, 0x6]\n\
+ adds r0, r6, 0\n\
+ bl sub_813A794\n\
+ b _0813A570\n\
+ .align 2, 0\n\
+_0813A534: .4byte gSaveBlock1\n\
+_0813A538: .4byte 0x0000049a\n\
+_0813A53C:\n\
+ ldr r0, _0813A578 @ =0x0000fffc\n\
+ bl sub_813AD58\n\
+_0813A542:\n\
+ movs r0, 0x1\n\
+ strh r0, [r4, 0x6]\n\
+ movs r0, 0x6\n\
+ movs r1, 0x8\n\
+ movs r2, 0xD\n\
+ movs r3, 0xB\n\
+ bl MenuDrawTextWindow\n\
+ ldrh r0, [r4, 0x6]\n\
+ movs r1, 0x3\n\
+ str r1, [sp]\n\
+ movs r1, 0x1\n\
+ movs r2, 0x8\n\
+ movs r3, 0x9\n\
+ bl sub_80A418C\n\
+ ldr r1, _0813A57C @ =gTasks\n\
+ lsls r0, r6, 2\n\
+ adds r0, r6\n\
+ lsls r0, 3\n\
+ adds r0, r1\n\
+ ldr r1, _0813A580 @ =sub_813A584\n\
+ str r1, [r0]\n\
+_0813A570:\n\
+ add sp, 0x4\n\
+ pop {r4-r6}\n\
+ pop {r0}\n\
+ bx r0\n\
+ .align 2, 0\n\
+_0813A578: .4byte 0x0000fffc\n\
+_0813A57C: .4byte gTasks\n\
+_0813A580: .4byte sub_813A584\n\
+ .syntax divided");
+}
+#endif
diff --git a/src/pokedex.c b/src/pokedex.c
index 8dfc4212c..48e3a57aa 100644
--- a/src/pokedex.c
+++ b/src/pokedex.c
@@ -1,65 +1,18 @@
#include "global.h"
+#include "pokedex.h"
+#include "asm.h"
+#include "gba/m4a_internal.h"
+#include "string_util.h"
+#include "m4a.h"
+#include "decompress.h"
#include "main.h"
#include "menu.h"
#include "palette.h"
#include "rng.h"
#include "songs.h"
#include "sound.h"
-#include "sprite.h"
#include "task.h"
-#include "text.h"
-
-struct PokedexListItem
-{
- u16 dexNum;
- u16 seen:1;
- u16 owned:1;
-};
-
-struct PokedexView
-{
- struct PokedexListItem unk0[386];
- u16 unk608;
- u8 unk60A_1:1;
- u8 unk60A_2:1;
- u8 unk60B;
- u16 unk60C;
- u16 selectedPokemon;
- u16 unk610;
- u16 dexMode; //National or Hoenn
- u16 unk614;
- u16 dexOrder;
- u16 unk618;
- u16 unk61A;
- u16 unk61C;
- u16 unk61E[4];
- u16 unk626; //sprite id of selected Pokemon
- u16 unk628;
- u16 unk62A;
- u8 unk62C;
- u8 unk62D;
- u8 unk62E;
- u8 unk62F;
- s16 unk630;
- s16 unk632;
- u16 unk634;
- u16 unk636;
- u16 unk638;
- u16 unk63A[4];
- u8 filler642[8];
- u8 unk64A;
- u8 unk64B;
- u8 unk64C_1:1;
- u8 selectedScreen;
- u8 unk64E;
- u8 unk64F;
- u8 menuIsOpen; //menuIsOpen
- u8 unk651;
- u16 menuCursorPos; //Menu cursor position
- s16 menuY; //Menu Y position (inverted because we use REG_BG0VOFS for this)
- u8 unk656[8];
- u8 unk65E[8];
-};
+#include "event_data.h"
// I'm #define-ing these just for now so I can keep using the old unkXXX member names
#define unk60E selectedPokemon
@@ -118,7 +71,7 @@ extern u8 gUnknown_08E96738[];
extern u8 gUnknown_08E9C6DC[];
extern u8 gUnknown_08E96888[];
extern u8 gUnknown_08E96994[];
-extern u8 gUnknown_083A05CC[];
+extern struct SpriteSheet gUnknown_083A05CC;
extern struct SpritePalette gUnknown_083A05DC[];
extern u8 gUnknown_0839FA7C[];
extern u8 gUnknown_0839F67C[];
@@ -156,12 +109,9 @@ extern u8 gDexText_RegisterComplete[];
extern void m4aMPlayVolumeControl(struct MusicPlayerInfo *mplayInfo, u16 trackBits, u16 volume);
extern bool8 BeginNormalPaletteFade(u32, s8, u8, u8, u16);
extern void remove_some_task(void);
-extern bool32 IsNationalPokedex(void);
-extern u16 GetNationalPokedexCount(u8);
extern u8 sub_8091E3C(void);
-extern void sub_80690C8(void);
+extern void DisableNationalPokedex(void);
extern void sub_805469C(void);
-extern void LoadCompressedObjectPic(void *);
extern u16 HoennToNationalOrder(u16);
extern u16 NationalToHoennOrder(u16);
extern u16 gPokedexOrder_Alphabetical[];
@@ -169,73 +119,17 @@ extern u16 gPokedexOrder_Weight[];
extern u16 gPokedexOrder_Height[];
extern u8 gSpeciesNames[][11];
-void ClearPokedexView(struct PokedexView *);
-void Task_PokedexShowMainScreen(u8 taskId);
-void sub_808C0B8(void);
-void MainCB(void);
-bool8 sub_808D344(u8);
-void Task_PokedexMainScreen(u8 taskId);
-void sub_808E6BC(void);
-void sub_808EDB8(struct Sprite *);
-void sub_808CA64(u8 taskId);
-void Task_PokedexMainScreenMenu(u8 taskId);
-void sub_808CB8C(u8 taskId);
-u16 sub_808E48C(u16, u16);
-void sub_808C898(u8 taskId);
-void Task_ClosePokedex(u8 taskId);
-void sub_8091060(u16);
-void sub_808CAE4(u8 taskId);
-void sub_808D198(u8 taskId);
-bool8 sub_808E208(u8, u8, u8);
-u8 sub_808E82C(void);
-void sub_808E0CC(u16, u16);
-u8 sub_808F210(struct PokedexListItem *, u8);
-u8 sub_808F284(struct PokedexListItem *, u8);
-bool8 sub_808F250(u8);
-bool8 sub_808E71C(void);
-void sub_808CCC4(u8 taskId);
-u16 GetHoennPokedexCount(u8);
-void SortPokedex(u8, u8);
-void Task_PokedexResultsScreen(u8 taskId);
-void sub_808D118(u8 taskId);
-void Task_PokedexResultsScreenMenu(u8 taskId);
-void Task_PokedexResultsScreenReturnToMainScreen(u8 taskId);
-void sub_808CEF8(u8 taskId);
-void Task_PokedexResultsScreenExitPokedex(u8 taskId);
-void sub_808D640(void);
-void sub_808E978(u8);
-bool8 sub_8090D90(u16, u8);
-void sub_808E090(u8, u8, u16);
-void sub_808DEB0(u16, u8, u8, u16);
-void sub_808DF88(u16, u8, u8, u16);
-u8 sub_808DFE4(u16, u8, u8);
-u16 sub_808E888(u16);
-u32 sub_808E8C8(u16, u16, u16);
-void sub_808EE28(struct Sprite *sprite);
-u16 sub_8091818(u8, u16, u16, u16);
-u16 sub_80918EC(u16 a, s16 b, s16 c, u16 d); //Not sure of return type
-void Task_InitPageScreenMultistep(u8 taskId);
-void Task_PageScreenProcessInput(u8 taskId);
-void Task_InitCryScreenMultistep(u8 taskId);
-void Task_InitAreaScreenMultistep(u8 taskId);
-void Task_ClosePageScreen(u8 taskId);
-void sub_808F888(u8 taskId);
-void Task_InitSizeScreenMultistep(u8 taskId);
-void Task_AreaScreenProcessInput(u8 taskId);
-void sub_808FA00(u8 taskId);
-void Task_CryScreenProcessInput(u8 taskId);
-void sub_808FFBC(u8 taskId);
-void Task_SizeScreenProcessInput(u8 taskId);
-void sub_8090040(u8);
-void sub_8090498(u8 taskId);
-void sub_80904FC(u16);
-void sub_8090540(u16);
-void sub_8090750(u8);
-void sub_8090A3C(u8);
-void sub_8091738(u16, u16, u16);
u16 NationalPokedexNumToSpecies(u16);
+
+// asm/pokedex_area_screen
+void ShowPokedexAreaScreen(u16 species, u8 *string);
+
+// asm/pokedex_cry_screen
u8 sub_8119E3C(struct CryRelatedStruct *, u8);
+void sub_8119F88(u8 a);
+void sub_811A050(u16 species);
u8 ShowPokedexCryScreen(struct CryRelatedStruct *, u8);
+void DestroyCryMeterNeedleSprite();
void sub_808C02C(void)
{
@@ -251,7 +145,7 @@ void sub_808C02C(void)
gSaveBlock2.pokedex.unownPersonality = 0;
gSaveBlock2.pokedex.spindaPersonality = 0;
gSaveBlock2.pokedex.unknown3 = 0;
- sub_80690C8();
+ DisableNationalPokedex();
for(i = 0; i <= 51; i++)
{
gSaveBlock2.pokedex.owned[i] = 0;
@@ -277,7 +171,6 @@ void sub_808C0B8(void)
void ClearPokedexView(struct PokedexView *pokedexView)
{
u16 i;
- struct UnknownStruct3 *p;
for(i = 0; i <= 385; i++)
{
@@ -387,14 +280,14 @@ void CB2_InitPokedex(void)
ClearPokedexView(gPokedexView);
CreateTask(Task_PokedexShowMainScreen, 0);
gPokedexView->dexMode = gSaveBlock2.pokedex.unknown1;
- if(!IsNationalPokedex())
+ if(!IsNationalPokedexEnabled())
gPokedexView->dexMode = DEX_MODE_HOENN;
gPokedexView->dexOrder = gSaveBlock2.pokedex.order;
gPokedexView->selectedPokemon = gUnknown_0202FFB8;
gPokedexView->unk62C = gUnknown_0202FFBA;
gPokedexView->selectedScreen = PAGE_SCREEN;
gPokedexView->unk64E = 0;
- if(!IsNationalPokedex())
+ if(!IsNationalPokedexEnabled())
{
gPokedexView->unk61A = GetHoennPokedexCount(0);
gPokedexView->unk61C = GetHoennPokedexCount(1);
@@ -639,7 +532,7 @@ void sub_808CB8C(u8 taskId)
gPokedexView->unk62C = gPokedexView->unk62A;
gPokedexView->selectedPokemon = gPokedexView->unk610;
gPokedexView->dexMode = gPokedexView->unk614;
- if(!IsNationalPokedex())
+ if(!IsNationalPokedexEnabled())
gPokedexView->dexMode = DEX_MODE_HOENN;
gPokedexView->dexOrder = gPokedexView->unk618;
gTasks[taskId].func = Task_PokedexShowMainScreen;
@@ -652,7 +545,7 @@ void Task_ClosePokedex(u8 taskId)
if(!gPaletteFade.active)
{
gSaveBlock2.pokedex.unknown1 = gPokedexView->dexMode;
- if(!IsNationalPokedex())
+ if(!IsNationalPokedexEnabled())
gSaveBlock2.pokedex.unknown1 = 0;
gSaveBlock2.pokedex.order = gPokedexView->dexOrder;
DestroyTask(taskId);
@@ -823,7 +716,7 @@ void Task_PokedexResultsScreenReturnToMainScreen(u8 taskId)
gPokedexView->unk62C = gPokedexView->unk62A;
gPokedexView->selectedPokemon = gPokedexView->unk610;
gPokedexView->dexMode = gPokedexView->unk614;
- if(!IsNationalPokedex())
+ if(!IsNationalPokedexEnabled())
gPokedexView->dexMode = DEX_MODE_HOENN;
gPokedexView->dexOrder = gPokedexView->unk618;
gTasks[taskId].func = Task_PokedexShowMainScreen;
@@ -837,7 +730,7 @@ void Task_PokedexResultsScreenExitPokedex(u8 taskId)
gPokedexView->unk62C = gPokedexView->unk62A;
gPokedexView->selectedPokemon = gPokedexView->unk610;
gPokedexView->dexMode = gPokedexView->unk614;
- if(!IsNationalPokedex())
+ if(!IsNationalPokedexEnabled())
gPokedexView->dexMode = DEX_MODE_HOENN;
gPokedexView->dexOrder = gPokedexView->unk618;
gTasks[taskId].func = Task_ClosePokedex;
@@ -878,7 +771,7 @@ bool8 sub_808D344(u8 a)
ResetSpriteData();
FreeAllSpritePalettes();
gReservedSpritePaletteCount = 8;
- LoadCompressedObjectPic(gUnknown_083A05CC);
+ LoadCompressedObjectPic(&gUnknown_083A05CC);
LoadSpritePalettes(gUnknown_083A05DC);
sub_808E978(a);
gMain.state++;
@@ -934,7 +827,7 @@ void sub_808D640(void)
{
if(gPokedexView->unk64C_1)
LoadPalette(gUnknown_0839F67C + 0x2, 1, 0xBE);
- else if(!IsNationalPokedex())
+ else if(!IsNationalPokedexEnabled())
LoadPalette(gPokedexMenu_Pal + 0x2, 1, 0xBE);
else
LoadPalette(gUnknown_0839F73C + 0x2, 1, 0xBE);
@@ -955,7 +848,7 @@ void SortPokedex(u8 dexMode, u8 sortMode)
vars[1] = 1;
break;
case DEX_MODE_NATIONAL:
- if(IsNationalPokedex())
+ if(IsNationalPokedexEnabled())
{
vars[0] = 386;
vars[1] = 0;
@@ -1839,7 +1732,6 @@ void sub_808E6BC(void)
u8 sub_808E71C(void)
{
u16 r2;
- u16 r3;
u16 r4 = gPokedexView->selectedPokemon;
if((gMain.newKeys & DPAD_UP) && r4)
@@ -2284,8 +2176,6 @@ void sub_808F168(struct Sprite *sprite)
if(gPokedexView->menuIsOpen != 0 && gPokedexView->menuY == r1)
{
- u8 data2;
-
sprite->invisible = 0;
sprite->pos2.y = gPokedexView->menuCursorPos * 16;
sprite->pos2.x = gSineTable[(u8)sprite->data2] / 64;
@@ -3252,7 +3142,7 @@ void sub_8090750(u8 taskId)
break;
case 3:
sub_8072BD8(gDexText_RegisterComplete, 2, 0, 0xD0);
- if(!IsNationalPokedex())
+ if(!IsNationalPokedexEnabled())
sub_8091154(NationalToHoennOrder(dexNum), 13, 3);
else
sub_8091154(dexNum, 13, 3);
@@ -3297,4 +3187,4 @@ void sub_8090750(u8 taskId)
break;
}
}
-*/ \ No newline at end of file
+*/
diff --git a/src/pokemon_1.c b/src/pokemon_1.c
index 0c34279f7..b8735fbc4 100644
--- a/src/pokemon_1.c
+++ b/src/pokemon_1.c
@@ -1,11 +1,14 @@
#include "global.h"
+#include "asm.h"
#include "text.h"
#include "string_util.h"
#include "pokemon.h"
+#include "rom4.h"
#include "species.h"
#include "main.h"
#include "rng.h"
#include "sprite.h"
+#include "items.h"
//Extracts the upper 16 bits of a 32-bit number
#define HIHALF(n) (((n) & 0xFFFF0000) >> 16)
@@ -13,8 +16,6 @@
//Extracts the lower 16 bits of a 32-bit number
#define LOHALF(n) ((n) & 0xFFFF)
-extern u8 sav1_map_get_name();
-
extern struct Pokemon gPlayerParty[6]; // 0x3004360
extern struct Pokemon gEnemyParty[6]; // 0x30045C0
@@ -200,7 +201,7 @@ void CreateMonWithGenderNatureLetter(struct Pokemon *mon, u16 species, u8 level,
do
{
personality = Random32();
- actualLetter = ((((personality & 0x3000000) >> 18) | ((personality & 0x30000) >> 12) | ((personality & 0x300) >> 6) | personality & 0x3) % 28);
+ actualLetter = ((((personality & 0x3000000) >> 18) | ((personality & 0x30000) >> 12) | ((personality & 0x300) >> 6) | (personality & 0x3)) % 28);
}
while (nature != GetNatureFromPersonality(personality)
|| gender != GetGenderFromSpeciesAndPersonality(species, personality)
@@ -302,9 +303,9 @@ void sub_803ADE8(struct Pokemon *mon, struct UnknownPokemonStruct *src)
StringCopy(nickname, src->nickname);
if (nickname[0] == 0xFC && nickname[1] == 0x15)
- language = 1;
+ language = LANGUAGE_JAPANESE;
else
- language = 2;
+ language = GAME_LANGUAGE;
SetMonData(mon, MON_DATA_LANGUAGE, &language);
StripExtCtrlCodes(nickname);
@@ -341,7 +342,7 @@ void sub_803AF78(struct Pokemon *mon, struct UnknownPokemonStruct *dest)
dest->species = GetMonData(mon, MON_DATA_SPECIES, NULL);
heldItem = GetMonData(mon, MON_DATA_HELD_ITEM, NULL);
- if (heldItem == 175)
+ if (heldItem == ITEM_ENIGMA_BERRY)
heldItem = 0;
dest->heldItem = heldItem;
@@ -422,7 +423,6 @@ void CalculateMonStats(struct Pokemon *mon)
u16 species = GetMonData(mon, MON_DATA_SPECIES, NULL);
s32 level = GetLevelFromMonExp(mon);
s32 newMaxHP;
- u8 nature;
SetMonData(mon, MON_DATA_LEVEL, (u8 *)&level);
diff --git a/src/pokemon_2.c b/src/pokemon_2.c
index c8d07f88d..8b55baaba 100644
--- a/src/pokemon_2.c
+++ b/src/pokemon_2.c
@@ -1,12 +1,13 @@
#include "global.h"
+#include "asm.h"
#include "text.h"
#include "string_util.h"
#include "pokemon.h"
+#include "rng.h"
#include "species.h"
#include "main.h"
#include "sprite.h"
-#include "berry.h"
-#include "flag.h"
+#include "event_data.h"
extern u8 gPlayerPartyCount;
extern struct Pokemon gPlayerParty[6];
@@ -16,7 +17,7 @@ extern struct Pokemon gEnemyParty[6];
extern u16 unk_20160BC[];
extern struct SecretBaseRecord gSecretBaseRecord;
extern u32 dword_2017100[];
-extern u16 gUnknown_020239F8;
+extern u16 gBattleTypeFlags;
extern u8 gUnknown_02024A60;
extern struct BattlePokemon gBattleMons[4];
extern u16 gUnknown_02024BE6;
@@ -25,7 +26,7 @@ extern u8 gUnknown_02024C07;
extern u8 gUnknown_02024C08;
extern u8 gUnknown_02024C0C;
extern u8 gXXX_CritRelated;
-extern u16 word_2024DB8;
+extern u16 gBattleWeather;
extern struct BattleEnigmaBerry gEnigmaBerries[];
extern u16 gBattleMovePower;
extern struct SpriteTemplate gUnknown_02024E8C;
@@ -50,12 +51,6 @@ extern u8 gUnknown_0820823C[];
extern u8 gStatStageRatios[][2];
extern u8 gHoldEffectToType[][2];
-extern u8 battle_side_get_owner(u8);
-extern u8 battle_get_side_with_given_state(u8);
-extern u32 battle_get_per_side_status(u8);
-extern u8 sub_8018324(u8, u8, u8, u8, u16);
-extern u8 sub_803C348(u8);
-
u8 sub_803C348(u8 a1)
{
s32 i;
@@ -89,6 +84,7 @@ u8 sub_803C348(u8 a1)
return retVal;
}
+#ifdef NONMATCHING
u8 sub_803C434(u8 a1)
{
u32 status0 = battle_get_per_side_status(a1);
@@ -102,7 +98,7 @@ u8 sub_803C434(u8 a1)
status = status_ ^ mask1;
{
- register u16 val_ asm("r1") = gUnknown_020239F8;
+ register u16 val_ asm("r1") = gBattleTypeFlags;
u32 val = mask2;
val &= val_;
if (!val)
@@ -113,7 +109,7 @@ u8 sub_803C434(u8 a1)
if (sub_803C348(0) > 1)
{
- u32 r = Random();
+ u16 r = Random();
register u32 val asm("r1") = mask2;
val &= r;
if (!val)
@@ -135,6 +131,77 @@ u8 sub_803C434(u8 a1)
return battle_get_side_with_given_state(status);
}
}
+#else
+__attribute__((naked))
+u8 sub_803C434(u8 a1) {
+ asm(".syntax unified\n\
+ push {r4-r6,lr}\n\
+ lsls r0, 24\n\
+ lsrs r0, 24\n\
+ bl battle_get_per_side_status\n\
+ movs r1, 0x1\n\
+ movs r6, 0x1\n\
+ adds r4, r6, 0\n\
+ ands r4, r0\n\
+ eors r4, r1\n\
+ adds r5, r4, 0\n\
+ ldr r0, _0803C45C\n\
+ ldrh r1, [r0]\n\
+ adds r0, r6, 0\n\
+ ands r0, r1\n\
+ cmp r0, 0\n\
+ bne _0803C460\n\
+ adds r0, r4, 0\n\
+ b _0803C4AA\n\
+ .align 2, 0\n\
+_0803C45C: .4byte gBattleTypeFlags\n\
+_0803C460:\n\
+ movs r0, 0\n\
+ bl sub_803C348\n\
+ lsls r0, 24\n\
+ lsrs r0, 24\n\
+ cmp r0, 0x1\n\
+ bls _0803C484\n\
+ bl Random\n\
+ adds r1, r6, 0\n\
+ ands r1, r0\n\
+ cmp r1, 0\n\
+ bne _0803C480\n\
+ movs r0, 0x2\n\
+ eors r0, r4\n\
+ b _0803C4AA\n\
+_0803C480:\n\
+ adds r0, r4, 0\n\
+ b _0803C4AA\n\
+_0803C484:\n\
+ ldr r0, _0803C49C\n\
+ ldrb r1, [r0]\n\
+ ldr r2, _0803C4A0\n\
+ lsls r0, r4, 2\n\
+ adds r0, r2\n\
+ ldr r0, [r0]\n\
+ ands r1, r0\n\
+ cmp r1, 0\n\
+ bne _0803C4A4\n\
+ adds r0, r4, 0\n\
+ b _0803C4AA\n\
+ .align 2, 0\n\
+_0803C49C: .4byte gUnknown_02024C0C\n\
+_0803C4A0: .4byte gBitTable\n\
+_0803C4A4:\n\
+ movs r0, 0x2\n\
+ eors r5, r0\n\
+ adds r0, r5, 0\n\
+_0803C4AA:\n\
+ bl battle_get_side_with_given_state\n\
+ lsls r0, 24\n\
+ lsrs r0, 24\n\
+ pop {r4-r6}\n\
+ pop {r1}\n\
+ bx r1\n\
+ .syntax divided\n");
+}
+#endif
u8 GetMonGender(struct Pokemon *mon)
{
@@ -949,7 +1016,11 @@ void SetBoxMonData(struct BoxPokemon *boxMon, s32 field, const u8 *data)
break;
case MON_DATA_IVS:
{
+#ifdef BUGFIX_SETMONIVS
+ u32 ivs = data[0] | (data[1] << 8) | (data[2] << 16) | (data[3] << 24);
+#else
u32 ivs = *data; // Bug: Only the HP IV and the lower 3 bits of the Attack IV are read. The rest become 0.
+#endif
substruct3->hpIV = ivs & 0x1F;
substruct3->attackIV = (ivs >> 5) & 0x1F;
substruct3->defenseIV = (ivs >> 10) & 0x1F;
@@ -1116,7 +1187,7 @@ void CreateSecretBaseEnemyParty(struct SecretBaseRecord *secretBaseRecord)
}
}
- gUnknown_020239F8 = 8;
+ gBattleTypeFlags = 8;
gTrainerBattleOpponent = 1024;
}
diff --git a/src/pokemon_3.c b/src/pokemon_3.c
new file mode 100644
index 000000000..cf172b122
--- /dev/null
+++ b/src/pokemon_3.c
@@ -0,0 +1,478 @@
+#include "global.h"
+#include "asm.h"
+#include "text.h"
+#include "string_util.h"
+#include "pokemon.h"
+#include "rng.h"
+#include "species.h"
+#include "main.h"
+#include "sprite.h"
+#include "event_data.h"
+#include "rtc.h"
+#include "item.h"
+#include "items.h"
+
+#define EVO_FRIENDSHIP 0x0001 // Pokémon levels up with friendship ≥ 220
+#define EVO_FRIENDSHIP_DAY 0x0002 // Pokémon levels up during the day with friendship ≥ 220
+#define EVO_FRIENDSHIP_NIGHT 0x0003 // Pokémon levels up at night with friendship ≥ 220
+#define EVO_LEVEL 0x0004 // Pokémon reaches the specified level
+#define EVO_TRADE 0x0005 // Pokémon is traded
+#define EVO_TRADE_ITEM 0x0006 // Pokémon is traded while it's holding the specified item
+#define EVO_ITEM 0x0007 // specified item is used on Pokémon
+#define EVO_LEVEL_ATK_GT_DEF 0x0008 // Pokémon reaches the specified level with attack > defense
+#define EVO_LEVEL_ATK_EQ_DEF 0x0009 // Pokémon reaches the specified level with attack = defense
+#define EVO_LEVEL_ATK_LT_DEF 0x000a // Pokémon reaches the specified level with attack < defense
+#define EVO_LEVEL_SILCOON 0x000b // Pokémon reaches the specified level with a Silcoon personality value
+#define EVO_LEVEL_CASCOON 0x000c // Pokémon reaches the specified level with a Cascoon personality value
+#define EVO_LEVEL_NINJASK 0x000d // Pokémon reaches the specified level (special value for Ninjask)
+#define EVO_LEVEL_SHEDINJA 0x000e // Pokémon reaches the specified level (special value for Shedinja)
+#define EVO_BEAUTY 0x000f // Pokémon levels up with beauty ≥ specified value
+
+struct Evolution
+{
+ u16 method;
+ u16 param;
+ u16 targetSpecies;
+};
+
+struct EvolutionData
+{
+ struct Evolution evolutions[5];
+};
+
+extern void get_battle_strings_(u8 *);
+
+extern u8 gPlayerPartyCount;
+extern struct Pokemon gPlayerParty[6];
+extern u8 gEnemyPartyCount;
+extern struct Pokemon gEnemyParty[6];
+extern struct BattlePokemon gBattleMons[4];
+extern u8 * const gItemEffectTable[];
+extern u8 gUnknown_02024A60;
+extern struct BattleEnigmaBerry gEnigmaBerries[];
+extern struct EvolutionData gEvolutionTable[];
+extern u16 gSpeciesToHoennPokedexNum[];
+extern u16 gSpeciesToNationalPokedexNum[];
+extern u16 gHoennToNationalOrder[];
+extern u16 gSpeciesIdToCryId[];
+extern u8 gUnknown_030041C0[];
+extern u8 gUnknown_03004290[];
+extern u8 gUnknown_020238CC[];
+extern u8 gUnknown_02024C07;
+extern u8 gUnknown_02024C08;
+extern u8 gUnknown_02024C0B;
+extern u8 gUnknown_02024E6C;
+
+extern u8 gUnknown_082082F8[];
+extern u8 gUnknown_083FFDB3[];
+extern u8 gUnknown_083FFDD3[];
+extern u8 gUnknown_083FEE5D[];
+extern u8 gUnknown_083FEE92[];
+extern u8 *gUnknown_08400F58[];
+
+bool8 HealStatusConditions(struct Pokemon *mon, u32 unused, u32 healMask, u8 battleId)
+{
+ u32 status = GetMonData(mon, MON_DATA_STATUS, 0);
+
+ if (status & healMask)
+ {
+ status &= ~healMask;
+ SetMonData(mon, MON_DATA_STATUS, (u8 *)&status);
+ if (gMain.inBattle && battleId != 4)
+ gBattleMons[battleId].status1 &= ~healMask;
+ return FALSE;
+ }
+ else
+ {
+ return TRUE;
+ }
+}
+
+u8 GetItemEffectParamOffset(u16 itemId, u8 effectByte, u8 effectBit)
+{
+ u8 *temp;
+ u8 *itemEffect;
+ u8 offset;
+ int i;
+ u8 j;
+ u8 val;
+
+ offset = 6;
+
+ temp = gItemEffectTable[itemId - 13];
+
+ if (!temp && itemId != ITEM_ENIGMA_BERRY)
+ return 0;
+
+ if (itemId == ITEM_ENIGMA_BERRY)
+ {
+ temp = gEnigmaBerries[gUnknown_02024A60].itemEffect;
+ }
+
+ itemEffect = temp;
+
+ for (i = 0; i < 6; i++)
+ {
+ switch (i)
+ {
+ case 0:
+ case 1:
+ case 2:
+ case 3:
+ if (i == effectByte)
+ return 0;
+ break;
+ case 4:
+ val = itemEffect[4];
+ if (val & 0x20)
+ val &= 0xDF;
+ j = 0;
+ while (val)
+ {
+ if (val & 1)
+ {
+ switch (j)
+ {
+ case 2:
+ if (val & 0x10)
+ val &= 0xEF;
+ case 0:
+ if (i == effectByte && (val & effectBit))
+ return offset;
+ offset++;
+ break;
+ case 1:
+ if (i == effectByte && (val & effectBit))
+ return offset;
+ offset++;
+ break;
+ case 3:
+ if (i == effectByte && (val & effectBit))
+ return offset;
+ offset++;
+ break;
+ case 7:
+ if (i == effectByte)
+ return 0;
+ break;
+ }
+ }
+ j++;
+ val >>= 1;
+ if (i == effectByte)
+ effectBit >>= 1;
+ }
+ break;
+ case 5:
+ val = itemEffect[5];
+ j = 0;
+ while (val)
+ {
+ if (val & 1)
+ {
+ switch (j)
+ {
+ case 0:
+ case 1:
+ case 2:
+ case 3:
+ case 4:
+ case 5:
+ case 6:
+ if (i == effectByte && (val & effectBit))
+ return offset;
+ offset++;
+ break;
+ case 7:
+ if (i == effectByte)
+ return 0;
+ break;
+ }
+ }
+ j++;
+ val >>= 1;
+ if (i == effectByte)
+ effectBit >>= 1;
+ }
+ break;
+ }
+ }
+
+ return offset;
+}
+
+void sub_803F324(int stat)
+{
+ gUnknown_02024C08 = gUnknown_02024E6C;
+ StringCopy(gUnknown_030041C0, gUnknown_08400F58[gUnknown_082082F8[stat]]);
+ StringCopy(gUnknown_03004290, gUnknown_083FFDB3);
+ get_battle_strings_(gUnknown_083FFDD3);
+}
+
+u8 *sub_803F378(u16 itemId)
+{
+ int i;
+ u8 *itemEffect;
+
+ if (itemId == ITEM_ENIGMA_BERRY)
+ {
+ if (gMain.inBattle)
+ {
+ itemEffect = gEnigmaBerries[gUnknown_02024E6C].itemEffect;
+ }
+ else
+ {
+ itemEffect = gSaveBlock1.enigmaBerry.itemEffect;
+ }
+ }
+ else
+ {
+ itemEffect = gItemEffectTable[itemId - 13];
+ }
+
+ gUnknown_02024C0B = gUnknown_02024E6C;
+
+ for (i = 0; i < 3; i++)
+ {
+ if (itemEffect[i] & 0xF)
+ sub_803F324(i * 2);
+ if (itemEffect[i] & 0xF0)
+ {
+ if (i)
+ {
+ sub_803F324(i * 2 + 1);
+ }
+ else
+ {
+ gUnknown_02024C07 = gUnknown_02024E6C;
+ get_battle_strings_(gUnknown_083FEE92);
+ }
+ }
+ }
+
+ if (itemEffect[3] & 0x80)
+ {
+ gUnknown_02024C07 = gUnknown_02024E6C;
+ get_battle_strings_(gUnknown_083FEE5D);
+ }
+
+ return gUnknown_020238CC;
+}
+
+u8 GetNature(struct Pokemon *mon)
+{
+ return GetMonData(mon, MON_DATA_PERSONALITY, 0) % 25;
+}
+
+u8 GetNatureFromPersonality(u32 personality)
+{
+ return personality % 25;
+}
+
+u16 GetEvolutionTargetSpecies(struct Pokemon *mon, u8 type, u16 evolutionItem)
+{
+ int i;
+ u16 targetSpecies = 0;
+ u16 species = GetMonData(mon, MON_DATA_SPECIES, 0);
+ u16 heldItem = GetMonData(mon, MON_DATA_HELD_ITEM, 0);
+ u32 personality = GetMonData(mon, MON_DATA_PERSONALITY, 0);
+ u8 level;
+ u16 friendship;
+ u8 beauty = GetMonData(mon, MON_DATA_BEAUTY, 0);
+ u16 upperPersonality = personality >> 16;
+ u8 holdEffect;
+
+ if (heldItem == ITEM_ENIGMA_BERRY)
+ holdEffect = gSaveBlock1.enigmaBerry.holdEffect;
+ else
+ holdEffect = ItemId_GetHoldEffect(heldItem);
+
+ if (holdEffect == 38 && type != 3)
+ return 0;
+
+ switch (type)
+ {
+ case 0:
+ level = GetMonData(mon, MON_DATA_LEVEL, 0);
+ friendship = GetMonData(mon, MON_DATA_FRIENDSHIP, 0);
+
+ for (i = 0; i < 5; i++)
+ {
+ switch (gEvolutionTable[species].evolutions[i].method)
+ {
+ case EVO_FRIENDSHIP:
+ if (friendship >= 220)
+ targetSpecies = gEvolutionTable[species].evolutions[i].targetSpecies;
+ break;
+ case EVO_FRIENDSHIP_DAY:
+ RtcCalcLocalTime();
+ if (gLocalTime.hours >= 12 && gLocalTime.hours < 24 && friendship >= 220)
+ targetSpecies = gEvolutionTable[species].evolutions[i].targetSpecies;
+ break;
+ case EVO_FRIENDSHIP_NIGHT:
+ RtcCalcLocalTime();
+ if (gLocalTime.hours >= 0 && gLocalTime.hours < 12 && friendship >= 220)
+ targetSpecies = gEvolutionTable[species].evolutions[i].targetSpecies;
+ break;
+ case EVO_LEVEL:
+ if (gEvolutionTable[species].evolutions[i].param <= level)
+ targetSpecies = gEvolutionTable[species].evolutions[i].targetSpecies;
+ break;
+ case EVO_LEVEL_ATK_GT_DEF:
+ if (gEvolutionTable[species].evolutions[i].param <= level)
+ if (GetMonData(mon, MON_DATA_ATK, 0) > GetMonData(mon, MON_DATA_DEF, 0))
+ targetSpecies = gEvolutionTable[species].evolutions[i].targetSpecies;
+ break;
+ case EVO_LEVEL_ATK_EQ_DEF:
+ if (gEvolutionTable[species].evolutions[i].param <= level)
+ if (GetMonData(mon, MON_DATA_ATK, 0) == GetMonData(mon, MON_DATA_DEF, 0))
+ targetSpecies = gEvolutionTable[species].evolutions[i].targetSpecies;
+ break;
+ case EVO_LEVEL_ATK_LT_DEF:
+ if (gEvolutionTable[species].evolutions[i].param <= level)
+ if (GetMonData(mon, MON_DATA_ATK, 0) < GetMonData(mon, MON_DATA_DEF, 0))
+ targetSpecies = gEvolutionTable[species].evolutions[i].targetSpecies;
+ break;
+ case EVO_LEVEL_SILCOON:
+ if (gEvolutionTable[species].evolutions[i].param <= level && (upperPersonality % 10) <= 4)
+ targetSpecies = gEvolutionTable[species].evolutions[i].targetSpecies;
+ break;
+ case EVO_LEVEL_CASCOON:
+ if (gEvolutionTable[species].evolutions[i].param <= level && (upperPersonality % 10) > 4)
+ targetSpecies = gEvolutionTable[species].evolutions[i].targetSpecies;
+ break;
+ case EVO_LEVEL_NINJASK:
+ if (gEvolutionTable[species].evolutions[i].param <= level)
+ targetSpecies = gEvolutionTable[species].evolutions[i].targetSpecies;
+ break;
+ case EVO_BEAUTY:
+ if (gEvolutionTable[species].evolutions[i].param <= beauty)
+ targetSpecies = gEvolutionTable[species].evolutions[i].targetSpecies;
+ break;
+ }
+ }
+ break;
+ case 1:
+ for (i = 0; i < 5; i++)
+ {
+ switch (gEvolutionTable[species].evolutions[i].method)
+ {
+ case EVO_TRADE:
+ targetSpecies = gEvolutionTable[species].evolutions[i].targetSpecies;
+ break;
+ case EVO_TRADE_ITEM:
+ if (gEvolutionTable[species].evolutions[i].param == heldItem)
+ {
+ heldItem = 0;
+ SetMonData(mon, MON_DATA_HELD_ITEM, (u8 *)&heldItem);
+ targetSpecies = gEvolutionTable[species].evolutions[i].targetSpecies;
+ }
+ break;
+ }
+ }
+ break;
+ case 2:
+ case 3:
+ for (i = 0; i < 5; i++)
+ {
+ if (gEvolutionTable[species].evolutions[i].method == EVO_ITEM
+ && gEvolutionTable[species].evolutions[i].param == evolutionItem)
+ {
+ targetSpecies = gEvolutionTable[species].evolutions[i].targetSpecies;
+ break;
+ }
+ }
+ break;
+ }
+
+ return targetSpecies;
+}
+
+u16 HoennPokedexNumToSpecies(u16 hoennNum)
+{
+ u16 species;
+
+ if (!hoennNum)
+ return 0;
+
+ species = 0;
+
+ while (species < 411 && gSpeciesToHoennPokedexNum[species] != hoennNum)
+ species++;
+
+ if (species == 411)
+ return 0;
+
+ return species + 1;
+}
+
+u16 NationalPokedexNumToSpecies(u16 nationalNum)
+{
+ u16 species;
+
+ if (!nationalNum)
+ return 0;
+
+ species = 0;
+
+ while (species < 411 && gSpeciesToNationalPokedexNum[species] != nationalNum)
+ species++;
+
+ if (species == 411)
+ return 0;
+
+ return species + 1;
+}
+
+u16 NationalToHoennOrder(u16 nationalNum)
+{
+ u16 hoennNum;
+
+ if (!nationalNum)
+ return 0;
+
+ hoennNum = 0;
+
+ while (hoennNum < 411 && gHoennToNationalOrder[hoennNum] != nationalNum)
+ hoennNum++;
+
+ if (hoennNum == 411)
+ return 0;
+
+ return hoennNum + 1;
+}
+
+u16 SpeciesToNationalPokedexNum(u16 species)
+{
+ if (!species)
+ return 0;
+
+ return gSpeciesToNationalPokedexNum[species - 1];
+}
+
+u16 SpeciesToHoennPokedexNum(u16 species)
+{
+ if (!species)
+ return 0;
+
+ return gSpeciesToHoennPokedexNum[species - 1];
+}
+
+u16 HoennToNationalOrder(u16 hoennNum)
+{
+ if (!hoennNum)
+ return 0;
+
+ return gHoennToNationalOrder[hoennNum - 1];
+}
+
+u32 SpeciesToCryId(u16 species)
+{
+ if (species <= 250)
+ return species;
+
+ if (species < 276)
+ return 200;
+
+ return gSpeciesIdToCryId[species - 276];
+}
diff --git a/src/pokemon_size_record.c b/src/pokemon_size_record.c
index 6381881b7..6cf3411a9 100644
--- a/src/pokemon_size_record.c
+++ b/src/pokemon_size_record.c
@@ -1,12 +1,11 @@
-#include "gba/gba.h"
#include "global.h"
-#include "pokemon.h"
+#include "pokemon_size_record.h"
+#include "string_util.h"
#include "species.h"
-#include "flag.h"
-#include "var.h"
+#include "event_data.h"
extern u16 SpeciesToNationalPokedexNum(u16);
-extern u16 sub_8090D54(u16, u8);
+extern u16 GetPokedexHeightWeight(u16, u8);
struct UnknownStruct
{
@@ -15,15 +14,30 @@ struct UnknownStruct
u16 unk4;
};
-extern struct UnknownStruct gUnknown_083D180C[];
-extern u8 gOtherText_DecimalPoint[];
extern u8 gOtherText_Marco[];
extern u16 gScriptResult;
extern u8 gSpeciesNames[][11];
-extern u8 gUnknown_083D188E[];
-#define VAR_SHROOMISH_SIZE_RECORD 0x4047
-#define VAR_BARBOACH_SIZE_RECORD 0x404F
+static const struct UnknownStruct sBigMonSizeTable[] =
+{
+ { 290, 1, 0 },
+ { 300, 1, 10 },
+ { 400, 2, 110 },
+ { 500, 4, 310 },
+ { 600, 20, 710 },
+ { 700, 50, 2710 },
+ { 800, 100, 7710 },
+ { 900, 150, 17710 },
+ { 1000, 150, 32710 },
+ { 1100, 100, -17826 },
+ { 1200, 50, -7826 },
+ { 1300, 20, -2826 },
+ { 1400, 5, -826 },
+ { 1500, 2, -326 },
+ { 1600, 1, -126 },
+ { 1700, 1, -26 },
+};
+
#define CM_PER_INCH 2.54
static u32 GetMonSizeHash(struct Pokemon *pkmn)
@@ -38,17 +52,17 @@ static u32 GetMonSizeHash(struct Pokemon *pkmn)
u16 spDefIV = GetMonData(pkmn, MON_DATA_SPDEF_IV) & 0xF;
u32 hibyte = ((attackIV ^ defenseIV) * hpIV) ^ (personality & 0xFF);
u32 lobyte = ((spAtkIV ^ spDefIV) * speedIV) ^ (personality >> 8);
-
+
return (hibyte << 8) + lobyte;
}
static u8 TranslateBigMonSizeTableIndex(u16 a)
{
u8 i;
-
+
for(i = 1; i < 15; i++)
{
- if(a < gUnknown_083D180C[i].unk4)
+ if(a < sBigMonSizeTable[i].unk4)
return i - 1;
}
return i;
@@ -59,24 +73,22 @@ static u32 GetMonSize(u16 species, u16 b)
u64 unk2;
u64 unk4;
u64 unk0;
- u32 r7;
+ u32 height;
u32 var;
- struct UnknownStruct *s;
-
- r7 = sub_8090D54(SpeciesToNationalPokedexNum(species), 0);
+
+ height = GetPokedexHeightWeight(SpeciesToNationalPokedexNum(species), 0);
var = TranslateBigMonSizeTableIndex(b);
- unk0 = gUnknown_083D180C[var].unk0;
- unk2 = gUnknown_083D180C[var].unk2;
- unk4 = gUnknown_083D180C[var].unk4;
+ unk0 = sBigMonSizeTable[var].unk0;
+ unk2 = sBigMonSizeTable[var].unk2;
+ unk4 = sBigMonSizeTable[var].unk4;
unk0 += (b - unk4) / unk2;
- return r7 * unk0 / 10;
+ return height * unk0 / 10;
}
static void FormatMonSizeRecord(u8 *string, u32 size)
{
- u8 decimalPoint[2];
-
- memcpy(decimalPoint, gOtherText_DecimalPoint, 2);
+ u8 decimalPoint[] = _".";
+
//Convert size from centimeters to inches
size = (double)(size * 10) / (CM_PER_INCH * 10);
string = ConvertIntToDecimalStringN(string, size / 10, 0, 8);
@@ -85,29 +97,34 @@ static void FormatMonSizeRecord(u8 *string, u32 size)
}
static u8 CompareMonSize(u16 species, u16 *sizeRecord)
-{
+{
if(gScriptResult == 0xFF)
+ {
return 0;
+ }
else
{
struct Pokemon *pkmn = &gPlayerParty[gScriptResult];
-
+
// UB: Too few arguments for function 'GetMonData'
if(GetMonData(pkmn, MON_DATA_IS_EGG) == TRUE || GetMonData(pkmn, MON_DATA_SPECIES) != species)
+ {
return 1;
+ }
else
{
u32 oldSize;
u32 newSize;
u16 sizeParams;
- u16 *ptr = &sizeParams; //Why the pointer?
-
- *ptr = GetMonSizeHash(pkmn);
+
+ *(&sizeParams) = GetMonSizeHash(pkmn);
newSize = GetMonSize(species, sizeParams);
oldSize = GetMonSize(species, *sizeRecord);
FormatMonSizeRecord(gStringVar2, newSize);
if(newSize <= oldSize)
+ {
return 2;
+ }
else
{
*sizeRecord = sizeParams;
@@ -121,7 +138,7 @@ static u8 CompareMonSize(u16 species, u16 *sizeRecord)
static void GetMonSizeRecordInfo(u16 species, u16 *sizeRecord)
{
u32 size = GetMonSize(species, *sizeRecord);
-
+
FormatMonSizeRecord(gStringVar3, size);
StringCopy(gStringVar1, gSpeciesNames[species]);
if(*sizeRecord == 0x8100)
@@ -138,14 +155,14 @@ void InitShroomishSizeRecord(void)
void GetShroomishSizeRecordInfo(void)
{
u16 *sizeRecord = GetVarPointer(VAR_SHROOMISH_SIZE_RECORD);
-
+
GetMonSizeRecordInfo(SPECIES_SHROOMISH, sizeRecord);
}
void CompareShroomishSize(void)
{
u16 *sizeRecord = GetVarPointer(VAR_SHROOMISH_SIZE_RECORD);
-
+
gScriptResult = CompareMonSize(SPECIES_SHROOMISH, sizeRecord);
}
@@ -157,32 +174,31 @@ void InitBarboachSizeRecord(void)
void GetBarboachSizeRecordInfo(void)
{
u16 *sizeRecord = GetVarPointer(VAR_BARBOACH_SIZE_RECORD);
-
+
GetMonSizeRecordInfo(SPECIES_BARBOACH, sizeRecord);
}
void CompareBarboachSize(void)
{
u16 *sizeRecord = GetVarPointer(VAR_BARBOACH_SIZE_RECORD);
-
+
gScriptResult = CompareMonSize(SPECIES_BARBOACH, sizeRecord);
}
void GiveGiftRibbonToParty(u8 index, u8 ribbonId)
{
s32 i;
- u8 arr[7];
bool32 gotRibbon = FALSE;
u8 data = 1;
-
- memcpy(arr, gUnknown_083D188E, 7);
+ u8 arr[] = { 0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E };
+
if(index < 11 && ribbonId < 65)
{
gSaveBlock1.giftRibbons[index] = ribbonId;
for(i = 0; i < 6; i++)
{
struct Pokemon *pkmn = &gPlayerParty[i];
-
+
if(GetMonData(pkmn, MON_DATA_SPECIES) != 0 && GetMonData(pkmn, MON_DATA_SANITY_BIT3) == 0)
{
SetMonData(pkmn, arr[index], &data);
diff --git a/src/pokemon_summary_screen.c b/src/pokemon_summary_screen.c
new file mode 100644
index 000000000..b6b24b9d7
--- /dev/null
+++ b/src/pokemon_summary_screen.c
@@ -0,0 +1,175 @@
+#include "global.h"
+#include "asm.h"
+#include "menu.h"
+#include "pokemon.h"
+#include "string_util.h"
+#include "link.h"
+
+extern u8 gStringVar1[];
+extern u8 gStringVar4[];
+
+extern struct Pokemon *unk_2018000;
+
+extern u8 *(gNatureNames[]);
+extern const u8 gOtherText_Terminator4[];
+extern const u8 gOtherText_Nature[];
+
+extern const u8 gOtherText_Met[];
+extern const u8 gOtherText_Egg2[];
+extern const u8 gOtherText_ObtainedInTrade[];
+extern const u8 gOtherText_FatefulEncounter[];
+extern const u8 gOtherText_Met2[];
+extern const u8 gOtherText_EggDayCare[];
+extern const u8 gOtherText_EggNicePlace[];
+extern const u8 gOtherText_EggObtainedInTrade[];
+extern const u8 gOtherText_EggHotSprings[];
+
+u8 *sub_80A1E9C(u8 *dest, u8 *src, u8);
+u8 PokemonSummaryScreen_CheckOT(struct Pokemon *pokemon);
+u8 *PokemonSummaryScreen_CopyPokemonLevel(u8 *dest, u8 level);
+u32 GetPlayerTrainerId(void);
+
+bool8 PokemonSummaryScreen_CheckOT(struct Pokemon *mon)
+{
+ u32 trainerId;
+
+ if (unk_2018000 == gEnemyParty)
+ {
+ u8 enemyId = GetMultiplayerId() ^ 1;
+ trainerId = gLinkPlayers[enemyId].trainerId & 0xFFFF;
+ StringCopy(gStringVar1, gLinkPlayers[enemyId].name);
+ StripExtCtrlCodes(gStringVar1);
+ }
+ else
+ {
+ trainerId = GetPlayerTrainerId() & 0xFFFF;
+ StringCopy(gStringVar1, gSaveBlock2.playerName);
+ }
+
+ if (trainerId != (GetMonData(mon, MON_DATA_OT_ID) & 0xFFFF))
+ return FALSE;
+
+ GetMonData(mon, MON_DATA_OT_NAME, gStringVar2);
+
+ if (!StringCompareWithoutExtCtrlCodes(gStringVar1, gStringVar2))
+ return TRUE;
+
+ return FALSE;
+}
+
+void PokemonSummaryScreen_PrintEggTrainerMemo(struct Pokemon *mon, u8 left, u8 top)
+{
+ u8 locationMet;
+ u8 gameMet = GetMonData(mon, MON_DATA_MET_GAME);
+
+ if (!(gameMet == VERSION_RUBY || gameMet == VERSION_SAPPHIRE || gameMet == VERSION_EMERALD))
+ {
+ MenuPrint(gOtherText_EggObtainedInTrade, left, top);
+ return;
+ }
+
+ locationMet = GetMonData(mon, MON_DATA_MET_LOCATION);
+
+ if (locationMet == 255)
+ {
+ MenuPrint(gOtherText_EggNicePlace, left, top);
+ return;
+ }
+
+ if (!PokemonSummaryScreen_CheckOT(mon))
+ {
+ MenuPrint(gOtherText_EggObtainedInTrade, left, top);
+ return;
+ }
+
+ asm(""); // needed to match for some reason
+
+ if (locationMet == 253)
+ {
+ MenuPrint(gOtherText_EggHotSprings, left, top);
+ return;
+ }
+
+ MenuPrint(gOtherText_EggDayCare, left, top);
+}
+
+void PokemonSummaryScreen_PrintTrainerMemo(struct Pokemon *pokemon, u8 left, u8 top) {
+ u8 locationMet;
+ u8 gameMet;
+ u8 *ptr = gStringVar4;
+ u8 nature = GetNature(pokemon);
+
+ ptr = sub_80A1E9C(ptr, gNatureNames[nature], 14);
+
+ if (nature != NATURE_BOLD && nature != NATURE_GENTLE) {
+ ptr = StringCopy(ptr, gOtherText_Terminator4);
+ }
+
+ ptr = StringCopy(ptr, gOtherText_Nature);
+
+ if (PokemonSummaryScreen_CheckOT(pokemon) == TRUE) {
+ locationMet = GetMonData(pokemon, MON_DATA_MET_LOCATION);
+
+ if (GetMonData(pokemon, MON_DATA_MET_LEVEL) == 0) {
+ ptr = PokemonSummaryScreen_CopyPokemonLevel(ptr, 5);
+ *ptr = CHAR_NEWLINE;
+ ptr++;
+
+ CopyLocationName(gStringVar1, locationMet);
+ ptr = sub_80A1E9C(ptr, gStringVar1, 14);
+ StringCopy(ptr, gOtherText_Egg2);
+ } else if (locationMet >= 88) {
+ *ptr = CHAR_NEWLINE;
+ ptr++;
+
+ StringCopy(ptr, gOtherText_ObtainedInTrade);
+ } else {
+ u8 levelMet = GetMonData(pokemon, MON_DATA_MET_LEVEL);
+
+ ptr = PokemonSummaryScreen_CopyPokemonLevel(ptr, levelMet);
+ *ptr = CHAR_NEWLINE;
+ ptr++;
+
+ CopyLocationName(gStringVar1, locationMet);
+ ptr = sub_80A1E9C(ptr, gStringVar1, 14);
+ StringCopy(ptr, gOtherText_Met);
+ }
+ } else {
+ gameMet = GetMonData(pokemon, MON_DATA_MET_GAME);
+
+ if (!(gameMet == VERSION_RUBY || gameMet == VERSION_SAPPHIRE || gameMet == VERSION_EMERALD)) {
+ *ptr = CHAR_NEWLINE;
+ ptr++;
+
+ StringCopy(ptr, gOtherText_ObtainedInTrade);
+ } else {
+ locationMet = GetMonData(pokemon, MON_DATA_MET_LOCATION);
+ if (locationMet == 0xFF) {
+ u8 levelMet = GetMonData(pokemon, MON_DATA_MET_LEVEL);
+
+ ptr = PokemonSummaryScreen_CopyPokemonLevel(ptr, levelMet);
+ *ptr = CHAR_NEWLINE;
+ ptr++;
+
+ StringCopy(ptr, gOtherText_FatefulEncounter);
+ } else if (locationMet >= 88) {
+ *ptr = CHAR_NEWLINE;
+ ptr++;
+
+ StringCopy(ptr, gOtherText_ObtainedInTrade);
+ } else {
+ u8 levelMet = GetMonData(pokemon, MON_DATA_MET_LEVEL);
+
+ ptr = PokemonSummaryScreen_CopyPokemonLevel(ptr, levelMet);
+ *ptr = CHAR_NEWLINE;
+ ptr++;
+
+ CopyLocationName(gStringVar1, locationMet);
+ ptr = sub_80A1E9C(ptr, gStringVar1, 14);
+ StringCopy(ptr, gOtherText_Met2);
+ }
+ }
+ }
+
+ MenuPrint(gStringVar4, left++, top++);
+}
diff --git a/src/record_mixing.c b/src/record_mixing.c
index 4996dc01f..12b87b2b1 100644
--- a/src/record_mixing.c
+++ b/src/record_mixing.c
@@ -1,15 +1,15 @@
#include "global.h"
+#include "record_mixing.h"
+#include "asm.h"
#include "link.h"
#include "menu.h"
-#include "pokemon.h"
-#include "rng.h"
+#include "rom4.h"
#include "script.h"
#include "songs.h"
#include "sound.h"
#include "string_util.h"
#include "task.h"
-#include "flag.h"
-#include "var.h"
+#include "event_data.h"
extern void *recordMixingSecretBases;
extern void *recordMixingTvShows;
@@ -33,38 +33,6 @@ extern bool8 gReceivedRemoteLinkPlayers;
extern u8 gBlockSendBuffer[BLOCK_BUFFER_SIZE];
extern u16 gBlockRecvBuffer[MAX_LINK_PLAYERS][BLOCK_BUFFER_SIZE / 2];
-extern void sub_8083A84(TaskFunc);
-extern void sub_8041324(struct BoxPokemon *, void *);
-extern void sub_80BD674(void *, u32, u8);
-extern void sub_80BFD44(void *, u32, u8);
-extern void sub_80C0514(void *, u32, u8);
-// UB: sub_80FA4E4 declared with 3 arguments instead of 2
-extern void sub_80FA4E4(void *, u32, u8);
-extern void sub_80B9C6C(void *, u32, u8, void *);
-extern void sub_80B9F3C(void *, u8);
-extern u16 sub_8126338(void);
-extern u8 sub_8083664(void);
-extern void sub_80720B0(void);
-extern void CreateRecordMixingSprite(void);
-extern void DestroyRecordMixingSprite(void);
-extern u16 sub_8055588(void);
-extern void sub_80F7F30(void);
-extern void sub_8134AC0(void *);
-
-void sub_80B9484(u8);
-void sub_80B95F0(u8);
-void sub_80BA00C(u8);
-void sub_80B97DC(u8);
-void Task_CopyRecvBuffer(u8);
-void sub_80B9A1C(u8);
-u8 GetMultiplayerId_(void);
-void StorePtrInTaskData(void *, u16 *);
-void *LoadPtrFromTaskData(u16 *);
-void sub_80B9B1C(u8 *, size_t, u8);
-void sub_80B9B70(u8 *, size_t, u8);
-u16 *GetPlayerRecvBuffer(u8 player);
-void sub_80B9A78(void);
-
#define BUFFER_CHUNK_SIZE 200
void sub_80B929C(void)
diff --git a/src/rom4.c b/src/rom4.c
index 15041cb39..4f3e35fea 100644
--- a/src/rom4.c
+++ b/src/rom4.c
@@ -1,16 +1,35 @@
#include "global.h"
-#include "fieldmap.h"
+#include "rom4.h"
+#include "asm.h"
+#include "asm_fieldmap.h"
+#include "battle_setup.h"
+#include "berry.h"
+#include "field_camera.h"
+#include "field_effect.h"
+#include "field_map_obj.h"
+#include "field_message_box.h"
+#include "field_player_avatar.h"
+#include "event_data.h"
+#include "heal_location.h"
+#include "link.h"
+#include "load_save.h"
+#include "main.h"
+#include "menu.h"
+#include "new_game.h"
+#include "palette.h"
+#include "play_time.h"
+#include "rng.h"
+#include "safari_zone.h"
#include "script.h"
#include "songs.h"
#include "sound.h"
-#include "rng.h"
-#include "main.h"
-#include "palette.h"
-#include "text.h"
-#include "link.h"
-#include "sprite.h"
-#include "flag.h"
-#include "var.h"
+#include "start_menu.h"
+#include "task.h"
+#include "tileset_anim.h"
+#include "truck_scene.h"
+#include "weather.h"
+#include "wild_encounter.h"
+#include "metatile_behavior.h"
#ifdef SAPPHIRE
#define LEGENDARY_MUSIC BGM_OOAME // Heavy Rain
@@ -18,58 +37,12 @@
#define LEGENDARY_MUSIC BGM_HIDERI // Drought
#endif
-struct UnkWarpStruct
-{
- s8 mapGroup;
- s8 mapNum;
- s16 x, y;
-};
-
struct UnkTVStruct
{
u32 tv_field_0;
u32 tv_field_4;
};
-struct UnkPlayerStruct
-{
- u8 player_field_0;
- u8 player_field_1;
-};
-
-struct UnkInputStruct
-{
- u8 input_field_0;
- u8 input_field_1;
- u8 input_field_2;
- u8 input_field_3;
-};
-
-struct UnkStruct_8054FF8_Substruct
-{
- s16 x;
- s16 y;
- u8 field_8;
-};
-
-struct UnkStruct_8054FF8
-{
- u8 a;
- u8 b;
- u8 c;
- u8 d;
- struct UnkStruct_8054FF8_Substruct sub;
- u16 field_C;
-};
-
-struct LinkPlayerMapObject
-{
- u8 active;
- u8 linkPlayerId;
- u8 mapObjId;
- u8 mode;
-};
-
struct UCoords32
{
u32 x, y;
@@ -101,25 +74,25 @@ extern struct UnkTVStruct gUnknown_03004870;
extern u16 gUnknown_03004898;
extern u16 gUnknown_0300489C;
-extern u8 gUnknown_0819FC74[];
+extern u8 EventScript_LeagueWhiteOut[];
extern u8 gUnknown_0819FC9F[];
-extern u8 gUnknown_081A436F[];
-extern u8 gUnknown_081A4379[];
-extern u8 gUnknown_081A4383[];
-extern u8 gUnknown_081A439E[];
-extern u8 gUnknown_081A43B9[];
-extern u8 gUnknown_081A43D4[];
-extern u8 gUnknown_081A43F0[];
-extern u8 gUnknown_081A43FA[];
-extern u8 gUnknown_081A4418[];
-extern u8 gUnknown_081A442D[];
-extern u8 gUnknown_081A4442[];
-extern u8 gUnknown_081A4457[];
-extern u8 gUnknown_081A4479[];
-extern u8 gUnknown_081A4487[];
-extern u8 gUnknown_081A4495[];
-extern u8 gUnknown_081A44E5[];
-extern u8 gUnknown_081A44FE[];
+extern u8 SingleBattleColosseum_EventScript_1A436F[];
+extern u8 SingleBattleColosseum_EventScript_1A4379[];
+extern u8 DoubleBattleColosseum_EventScript_1A4383[];
+extern u8 DoubleBattleColosseum_EventScript_1A439E[];
+extern u8 DoubleBattleColosseum_EventScript_1A43B9[];
+extern u8 DoubleBattleColosseum_EventScript_1A43D4[];
+extern u8 TradeCenter_EventScript_1A43F0[];
+extern u8 TradeCenter_EventScript_1A43FA[];
+extern u8 RecordCorner_EventScript_1A4418[];
+extern u8 RecordCorner_EventScript_1A442D[];
+extern u8 RecordCorner_EventScript_1A4442[];
+extern u8 RecordCorner_EventScript_1A4457[];
+extern u8 TradeRoom_ReadTrainerCard1[];
+extern u8 TradeRoom_ReadTrainerCard2[];
+extern u8 TradeRoom_TooBusyToNotice[];
+extern u8 TradeRoom_PromptToCancelLink[];
+extern u8 TradeRoom_TerminateLink[];
extern u8 gUnknown_081A4508[];
extern struct UCoords32 gUnknown_0821664C[];
@@ -134,122 +107,10 @@ extern const struct WarpData gDummyWarpData;
extern s32 gUnknown_0839ACE8;
extern u32 gUnknown_08216694[];
-extern struct UnkWarpStruct *GetHealLocation(u8);
-extern u8 GetSav1Weather(void);
-extern void PlayerGetDestCoords(u16 *, u16 *);
-extern u8 sub_810D32C(void);
-extern u16 GetLocalWildMon(bool8 *);
-extern u16 GetMirageIslandMon(void);
-extern void ExecuteTruckSequence(void);
-extern void sub_8080B60(void);
-extern void sub_810CC80(void);
-extern void sub_8080AC4(void);
-extern void sub_8080A3C(void);
-extern void atk17_seteffectuser(void);
-extern void sub_80809B0(void);
-extern void sub_8080990(void);
-extern u8 sub_80BBB24(void);
-extern u16 MapGridGetMetatileBehaviorAt(int, int);
-extern u8 *sub_80682A8(void *, u8, u8);
-extern u8 *sub_8068E24(struct UnkStruct_8054FF8_Substruct *);
-extern bool8 MapGridIsImpassableAt(s16, s16);
-extern u8 ZCoordToPriority(u8);
-
-void sub_8053050(void);
-void warp_in(void);
-void sub_8053570(void);
-u8 sav1_map_get_light_level(void);
-u8 get_map_light_level_by_bank_and_number(s8, s8);
-bool8 is_light_level_1_2_3_5_or_6(u8);
-void sub_805363C(s8, s8, s8, s8, s8);
-void sub_807D874(u8);
-void sub_8082BD0(u16, u16);
-void player_avatar_init_params_reset(void);
-u8 TestPlayerAvatarFlags(u8);
-u8 player_get_direction_lower_nybble(void);
-u8 sub_8053B00(struct UnkPlayerStruct *playerStruct, u16, u8);
-u8 sub_8053B60(struct UnkPlayerStruct *playerStruct, u8, u16, u8);
-u8 MetatileBehavior_IsSurfableWaterOrUnderwater(u8);
-bool8 sub_8056F24(u8);
-bool8 sub_8056F08(u8);
-bool8 MetatileBehavior_IsDoor(u8);
-bool8 MetatileBehavior_IsSouthArrowWarp(u8);
-bool8 MetatileBehavior_IsNorthArrowWarp(u8);
-bool8 MetatileBehavior_IsWestArrowWarp(u8);
-bool8 MetatileBehavior_IsEastArrowWarp(u8);
-bool8 MetatileBehavior_IsLadder(u8);
-u16 cur_mapdata_block_role_at_screen_center_acc_to_sav1(void);
-bool32 sub_8053C44(void);
-void sub_8053C98(void);
-void sav1_reset_battle_music_maybe(void);
-void sub_8053F0C(void);
-u8 is_light_level_8_or_9(u8);
-void sub_8054164(void);
-void sub_8055354(void);
-void c2_overworld(void);
-void CB2_LoadMap2(void);
-void c2_80567AC(void);
-void c2_exit_to_overworld_2_link(void);
-void c2_exit_to_overworld_2_local(void);
-void FieldClearVBlankHBlankCallbacks(void);
-void SetFieldVBlankCallback(void);
-void VBlankCB_Field(void);
-bool32 sub_805483C(u8 *);
-bool32 sub_805493C(u8 *, u32);
-bool32 sub_8054A4C(u8 *);
-bool32 sub_8054A9C(u8 *a1);
-void do_load_map_stuff_loop(u8 *a1);
-void sub_8054BA8(void);
-void sub_8054C2C(void);
-void sub_8054C54(void);
-void sub_8054D4C(u32 a1);
-void sub_8054D90(void);
-void mli4_mapscripts_and_other(void);
-void sub_8054E20(void);
-void sub_8054E34(void);
-void sub_8054E60(void);
-void sub_8054E7C(void);
-void sub_8054E98(void);
-void sub_8054EC8(void);
-void sub_8054F48(void);
-void sub_8054F70(void);
-u16 sub_805530C(u16);
-void sub_8055340(u16 *);
-u16 sub_8055390(u32);
-u16 sub_80553E4(u32);
-u16 sub_8055408(u32);
-u16 sub_8055438(u32);
-bool32 sub_8055618(struct UnkStruct_8054FF8 *);
-bool32 sub_8055630(struct UnkStruct_8054FF8 *);
-u8 *sub_8055648(struct UnkStruct_8054FF8 *);
-bool32 sub_8055660(struct UnkStruct_8054FF8 *);
-u8 *sub_805568C(struct UnkStruct_8054FF8 *);
-u16 sub_8055758(u8 *);
-void sub_80557E8(void);
-void sub_80557F4(void);
-void sub_8055808(u8 *);
-void sub_8055824(void);
-void sub_8055840(u8 *);
-void sub_805585C(void);
-bool32 sub_8055870(void);
-void SpawnLinkPlayerMapObject(u8, s16, s16, u8);
-void InitLinkPlayerMapObjectPos(struct MapObject *, s16, s16);
-void sub_80555B0(int, int, struct UnkStruct_8054FF8 *);
-u8 sub_8055AE8(u8);
-void sub_8055B08(u8, u16 *, u16 *);
-u8 sub_8055B30(u8);
-u8 sub_8055B50(u8);
-u8 GetLinkPlayerIdAt(s16, s16);
-void sub_8055BFC(u8, u8);
-u8 npc_something3(u8, u8);
-u8 LinkPlayerDetectCollision(u8, u8, s16, s16);
-void CreateLinkPlayerSprite(u8);
-void SpriteCB_LinkPlayer(struct Sprite *);
-void sub_8056C50(u16, u16);
-
-void sub_8052F5C(void)
-{
- ScriptContext2_RunNewScript(gUnknown_0819FC74);
+
+void DoWhiteOut(void)
+{
+ ScriptContext2_RunNewScript(EventScript_LeagueWhiteOut);
gSaveBlock1.money /= 2;
HealPlayerParty();
sub_8053050();
@@ -307,14 +168,15 @@ void sub_805308C(void)
sub_8134348();
}
-void sub_80530AC(void)
+void ResetGameStats(void)
{
s32 i;
+
for (i = 0; i < NUM_GAME_STATS; i++)
gSaveBlock1.gameStats[i] = 0;
}
-void sav12_xor_increment(u8 index)
+void IncrementGameStat(u8 index)
{
if (index < NUM_GAME_STATS)
{
@@ -325,7 +187,7 @@ void sav12_xor_increment(u8 index)
}
}
-u32 sub_8053108(u8 index)
+u32 GetGameStat(u8 index)
{
if (index >= NUM_GAME_STATS)
return 0;
@@ -333,7 +195,7 @@ u32 sub_8053108(u8 index)
return gSaveBlock1.gameStats[index];
}
-void sav12_xor_set(u8 index, u32 value)
+void SetGameStat(u8 index, u32 value)
{
if (index < NUM_GAME_STATS)
gSaveBlock1.gameStats[index] = value;
@@ -515,9 +377,9 @@ void copy_saved_warp2_bank_and_enter_x_to_warp1(void)
void sub_8053538(u8 a1)
{
- struct UnkWarpStruct *warp = GetHealLocation(a1);
+ const struct HealLocation *warp = GetHealLocation(a1);
if (warp)
- warp1_set(warp->mapGroup, warp->mapNum, -1, warp->x, warp->y);
+ warp1_set(warp->group, warp->map, -1, warp->x, warp->y);
}
void sub_8053570(void)
@@ -527,9 +389,9 @@ void sub_8053570(void)
void sub_8053588(u8 a1)
{
- struct UnkWarpStruct *warp = GetHealLocation(a1);
+ const struct HealLocation *warp = GetHealLocation(a1);
if (warp)
- warp_set(&gSaveBlock1.warp3, warp->mapGroup, warp->mapNum, -1, warp->x, warp->y);
+ warp_set(&gSaveBlock1.warp3, warp->group, warp->map, -1, warp->x, warp->y);
}
void sub_80535C4(u16 a1, u16 a2)
@@ -589,12 +451,12 @@ void unref_sub_8053790(s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y)
void sub_80537CC(u8 a1)
{
- struct UnkWarpStruct *warp = GetHealLocation(a1);
+ const struct HealLocation *warp = GetHealLocation(a1);
if (warp)
- warp_set(&gSaveBlock1.warp1, warp->mapGroup, warp->mapNum, -1, warp->x, warp->y);
+ warp_set(&gSaveBlock1.warp1, warp->group, warp->map, -1, warp->x, warp->y);
}
-void gpu_sync_bg_hide(void)
+void gpu_sync_bg_hide()
{
gSaveBlock1.warp1 = gSaveBlock1.warp2;
}
@@ -651,12 +513,13 @@ bool8 sub_80538D0(u16 x, u16 y)
void sub_80538F0(u8 mapGroup, u8 mapNum)
{
s32 i;
+
warp1_set(mapGroup, mapNum, -1, -1, -1);
sub_8053F0C();
warp_shift();
set_current_map_header_from_sav1_save_old_name();
sub_8053154();
- sub_806906C();
+ ClearTempFieldEventData();
ResetCyclingRoadChallengeData();
prev_quest_postbuffer_cursor_backup_reset();
sub_8082BD0(mapGroup, mapNum);
@@ -669,13 +532,15 @@ void sub_80538F0(u8 mapGroup, u8 mapNum)
not_trainer_hill_battle_pyramid();
sub_8056D38(gMapHeader.mapData);
apply_map_tileset2_palette(gMapHeader.mapData);
+
for (i = 6; i < 12; i++)
sub_807D874(i);
+
sub_8072ED0();
mapnumbers_history_shift_sav1_0_2_4_out();
sub_8134394();
- sub_808073C();
- wild_encounter_reset_coro_args();
+ DoCurrentWeather();
+ ResetFieldTasksArgs();
mapheader_run_script_with_tag_x5();
AddMapNamePopUpWindowTask();
}
@@ -687,9 +552,9 @@ void sub_8053994(u32 a1)
set_current_map_header_from_sav1_save_old_name();
sub_8053154();
- v2 = is_light_level_1_2_3_5_or_6(gMapHeader.light);
- v3 = is_light_level_8_or_9(gMapHeader.light);
- sub_806906C();
+ v2 = is_light_level_1_2_3_5_or_6(gMapHeader.mapType);
+ v3 = is_light_level_8_or_9(gMapHeader.mapType);
+ ClearTempFieldEventData();
ResetCyclingRoadChallengeData();
prev_quest_postbuffer_cursor_backup_reset();
sub_8082BD0(gSaveBlock1.location.mapGroup, gSaveBlock1.location.mapNum);
@@ -722,13 +587,13 @@ void walkrun_find_lowest_active_bit_in_bitfield(void)
{
gUnknown_02029810.player_field_1 = player_get_direction_lower_nybble();
- if (TestPlayerAvatarFlags(2))
+ if (TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_MACH_BIKE))
gUnknown_02029810.player_field_0 = 2;
- else if (TestPlayerAvatarFlags(4))
+ else if (TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_ACRO_BIKE))
gUnknown_02029810.player_field_0 = 4;
- else if (TestPlayerAvatarFlags(8))
+ else if (TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_SURFING))
gUnknown_02029810.player_field_0 = 8;
- else if (TestPlayerAvatarFlags(0x10))
+ else if (TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_4))
gUnknown_02029810.player_field_0 = 16;
else
gUnknown_02029810.player_field_0 = 1;
@@ -754,7 +619,7 @@ u8 sub_8053B00(struct UnkPlayerStruct *playerStruct, u16 a2, u8 a3)
return 16;
if (MetatileBehavior_IsSurfableWaterOrUnderwater(a2) == 1)
return 8;
- if (sub_8053C44() != 1)
+ if (IsBikingAllowedByMap() != TRUE)
return 1;
if (playerStruct->player_field_0 == 2)
return 2;
@@ -767,9 +632,9 @@ u8 sub_8053B60(struct UnkPlayerStruct *playerStruct, u8 a2, u16 a3, u8 a4)
{
if (FlagGet(SYS_CRUISE_MODE) && a4 == 6)
return 4;
- if (sub_8056F24(a3) == TRUE)
+ if (MetatileBehavior_IsDeepSouthWarp(a3) == TRUE)
return 2;
- if (sub_8056F08(a3) == TRUE || MetatileBehavior_IsDoor(a3) == TRUE)
+ if (MetatileBehavior_IsNonAnimDoor(a3) == TRUE || MetatileBehavior_IsDoor(a3) == TRUE)
return 1;
if (MetatileBehavior_IsSouthArrowWarp(a3) == TRUE)
return 2;
@@ -792,20 +657,28 @@ u16 cur_mapdata_block_role_at_screen_center_acc_to_sav1(void)
return MapGridGetMetatileBehaviorAt(gSaveBlock1.pos.x + 7, gSaveBlock1.pos.y + 7);
}
-bool32 sub_8053C44(void)
+bool32 IsBikingAllowedByMap(void)
{
+ // is player in cycling road entrance?
if (gSaveBlock1.location.mapGroup == 29 && (gSaveBlock1.location.mapNum == 11 || gSaveBlock1.location.mapNum == 12))
return TRUE;
- if (gMapHeader.light == 8)
+
+ // is player indoor, in a secret base, or underwater?
+ if (gMapHeader.mapType == MAP_TYPE_INDOOR)
return FALSE;
- if (gMapHeader.light == 9)
+ if (gMapHeader.mapType == MAP_TYPE_SECRET_BASE)
return FALSE;
- if (gMapHeader.light == 5)
+ if (gMapHeader.mapType == MAP_TYPE_UNDERWATER)
return FALSE;
+
+ // is player in SeafloorCavern_Room9?
if (gSaveBlock1.location.mapGroup == 24 && gSaveBlock1.location.mapNum == 36)
return FALSE;
+
+ // is player in CaveOfOrigin_B4F?
if (gSaveBlock1.location.mapGroup == 24 && gSaveBlock1.location.mapNum == 42)
return FALSE;
+
return TRUE;
}
@@ -862,7 +735,7 @@ bool16 sub_8053D30(struct WarpData *warp)
bool16 sub_8053D6C(struct WarpData *warp)
{
- if (VarGet(16563))
+ if (VarGet(0x40B3))
return FALSE;
if (warp->mapGroup != 32)
return FALSE;
@@ -935,7 +808,7 @@ void sub_8053E90(void)
music = gSaveBlock1.battleMusic;
else if (sav1_map_get_light_level() == 5)
music = BGM_DEEPDEEP;
- else if (TestPlayerAvatarFlags(8))
+ else if (TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_SURFING))
music = BGM_NAMINORI;
}
@@ -963,12 +836,12 @@ void sub_8053F0C(void)
{
if (currentMusic == BGM_DEEPDEEP || currentMusic == BGM_NAMINORI)
return;
- if (TestPlayerAvatarFlags(8))
+ if (TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_SURFING))
newMusic = BGM_NAMINORI;
}
if (newMusic != currentMusic)
{
- if (TestPlayerAvatarFlags(6))
+ if (TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_MACH_BIKE | PLAYER_AVATAR_FLAG_ACRO_BIKE))
FadeOutAndFadeInNewMapMusic(newMusic, 4, 4);
else
FadeOutAndPlayNewMapMusic(newMusic, 8);
@@ -993,7 +866,7 @@ void sub_8053FB0(u16 music)
u8 is_warp1_light_level_8_or_9(void)
{
struct MapHeader *mapHeader = warp1_get_mapheader();
- if (is_light_level_8_or_9(mapHeader->light) == TRUE)
+ if (is_light_level_8_or_9(mapHeader->mapType) == TRUE)
return 2;
else
return 4;
@@ -1078,7 +951,7 @@ void sub_8054164(void)
u8 get_map_light_level_by_bank_and_number(s8 mapGroup, s8 mapNum)
{
- return get_mapheader_by_bank_and_number(mapGroup, mapNum)->light;
+ return get_mapheader_by_bank_and_number(mapGroup, mapNum)->mapType;
}
u8 get_map_light_level_from_warp(struct WarpData *warp)
@@ -1237,7 +1110,7 @@ void CB2_NewGame(void)
SetMainCallback2(c2_overworld);
}
-void c2_whiteout(void)
+void CB2_WhiteOut(void)
{
u8 val;
gMain.state++;
@@ -1246,7 +1119,7 @@ void c2_whiteout(void)
FieldClearVBlankHBlankCallbacks();
StopMapMusic();
ResetSafariZoneFlag_();
- sub_8052F5C();
+ DoWhiteOut();
player_avatar_init_params_reset();
ScriptContext1_Init();
ScriptContext2_Disable();
@@ -1266,7 +1139,7 @@ void CB2_LoadMap(void)
ScriptContext2_Disable();
set_callback1(NULL);
SetMainCallback2(sub_810CC80);
- gMain.field_8 = CB2_LoadMap2;
+ gMain.savedCallback = CB2_LoadMap2;
}
void CB2_LoadMap2(void)
@@ -1395,16 +1268,16 @@ void CB2_ContinueSavedGame(void)
ResetSafariZoneFlag_();
sub_805338C();
sub_8053198();
- sub_806451C();
+ UnfreezeMapObjects();
DoTimeBasedEvents();
sub_805308C();
sub_8055FC0();
PlayTimeCounter_Start();
ScriptContext1_Init();
ScriptContext2_Disable();
- if (sub_80479F8() == 1)
+ if (GetSecretBase2Field_9() == 1)
{
- sub_8047A04();
+ ClearSecretBase2Field_9();
sub_8053778();
warp_in();
SetMainCallback2(CB2_LoadMap);
@@ -1550,7 +1423,7 @@ bool32 sub_805493C(u8 *a1, u32 a2)
sub_8054814();
sub_8054C54();
SetUpWindowConfig(&gWindowConfig_81E6C3C);
- InitMenuWindow((u8 *)&gWindowConfig_81E6CE4);
+ InitMenuWindow(&gWindowConfig_81E6CE4);
(*a1)++;
break;
case 5:
@@ -1767,7 +1640,7 @@ void sub_8054D4C(u32 a1)
sub_807C828();
sub_8080750();
if (!a1)
- overworld_ensure_per_step_coros_running();
+ SetUpFieldTasks();
mapheader_run_script_with_tag_x5();
}
@@ -2286,12 +2159,13 @@ u8 *sub_805568C(struct UnkStruct_8054FF8 *a1)
if (linkPlayerId != 4)
{
if (!a1->b)
- return gUnknown_081A4495;
+ return TradeRoom_TooBusyToNotice;
if (gUnknown_03000580[linkPlayerId] != 0x80)
- return gUnknown_081A4495;
+ return TradeRoom_TooBusyToNotice;
if (!sub_8083BF4(linkPlayerId))
- return gUnknown_081A4479;
- return gUnknown_081A4487;
+ return TradeRoom_ReadTrainerCard1;
+ else
+ return TradeRoom_ReadTrainerCard2;
}
return sub_80682A8(&unkStruct, a1->field_C, a1->d);
@@ -2299,29 +2173,29 @@ u8 *sub_805568C(struct UnkStruct_8054FF8 *a1)
u16 sub_8055758(u8 *script)
{
- if (script == gUnknown_081A4383)
+ if (script == DoubleBattleColosseum_EventScript_1A4383)
return 10;
- if (script == gUnknown_081A439E)
+ if (script == DoubleBattleColosseum_EventScript_1A439E)
return 9;
- if (script == gUnknown_081A43B9)
+ if (script == DoubleBattleColosseum_EventScript_1A43B9)
return 10;
- if (script == gUnknown_081A43D4)
+ if (script == DoubleBattleColosseum_EventScript_1A43D4)
return 9;
- if (script == gUnknown_081A4418)
+ if (script == RecordCorner_EventScript_1A4418)
return 10;
- if (script == gUnknown_081A442D)
+ if (script == RecordCorner_EventScript_1A442D)
return 9;
- if (script == gUnknown_081A4442)
+ if (script == RecordCorner_EventScript_1A4442)
return 10;
- if (script == gUnknown_081A4457)
+ if (script == RecordCorner_EventScript_1A4457)
return 9;
- if (script == gUnknown_081A436F)
+ if (script == SingleBattleColosseum_EventScript_1A436F)
return 10;
- if (script == gUnknown_081A4379)
+ if (script == SingleBattleColosseum_EventScript_1A4379)
return 9;
- if (script == gUnknown_081A43F0)
+ if (script == TradeCenter_EventScript_1A43F0)
return 10;
- if (script == gUnknown_081A43FA)
+ if (script == TradeCenter_EventScript_1A43FA)
return 9;
return 0;
}
@@ -2348,7 +2222,7 @@ void sub_8055808(u8 *script)
void sub_8055824(void)
{
PlaySE(SE_WIN_OPEN);
- ScriptContext1_SetupScript(gUnknown_081A44E5);
+ ScriptContext1_SetupScript(TradeRoom_PromptToCancelLink);
ScriptContext2_Enable();
}
@@ -2361,7 +2235,7 @@ void sub_8055840(u8 *script)
void sub_805585C(void)
{
- ScriptContext1_SetupScript(gUnknown_081A44FE);
+ ScriptContext1_SetupScript(TradeRoom_TerminateLink);
ScriptContext2_Enable();
}
diff --git a/src/rom_800D42C.c b/src/rom_800D42C.c
new file mode 100644
index 000000000..e9c816818
--- /dev/null
+++ b/src/rom_800D42C.c
@@ -0,0 +1,89 @@
+#include "global.h"
+#include "battle.h"
+#include "link.h"
+#include "text.h"
+
+extern u16 gBattleTypeFlags;
+extern u8 gUnknown_02024D26;
+
+extern struct Window gUnknown_03004210;
+
+extern u8 BattleText_Win[];
+extern u8 BattleText_Loss[];
+extern u8 BattleText_Tie[];
+
+#define LEFT_MESSAGE_X 6
+#define RIGHT_MESSAGE_X 21
+#define CENTER_MESSAGE_X 13
+#define MESSAGE_Y 2
+
+#define PRINT_MESSAGE(text, tileDataStartOffset, x) \
+{ \
+ InitWindow(&gUnknown_03004210, text, tileDataStartOffset, x, MESSAGE_Y); \
+ sub_8002F44(&gUnknown_03004210); \
+}
+
+#define PRINT_MESSAGE_LEFT(text, tileDataStartOffset) PRINT_MESSAGE(text, tileDataStartOffset, LEFT_MESSAGE_X)
+#define PRINT_MESSAGE_RIGHT(text, tileDataStartOffset) PRINT_MESSAGE(text, tileDataStartOffset, RIGHT_MESSAGE_X)
+
+void sub_800DC24(void) {
+
+ if (gUnknown_02024D26 == 3) {
+ PRINT_MESSAGE(BattleText_Tie, 160, CENTER_MESSAGE_X);
+ return;
+ }
+
+ if (gBattleTypeFlags & BATTLE_TYPE_40) {
+ // Double battle?
+
+ if (gUnknown_02024D26 == 1) {
+
+ // lp_field_18 = player position?
+ switch (gLinkPlayers[battle_2000000.linkPlayerIndex].lp_field_18) {
+ case 0:
+ case 2: PRINT_MESSAGE_LEFT(BattleText_Win, 160);
+ PRINT_MESSAGE_RIGHT(BattleText_Loss, 168);
+ return;
+
+ case 1:
+ case 3: PRINT_MESSAGE_RIGHT(BattleText_Win, 160)
+ PRINT_MESSAGE_LEFT(BattleText_Loss, 168)
+ return;
+ }
+ } else {
+
+ switch (gLinkPlayers[battle_2000000.linkPlayerIndex].lp_field_18) {
+ case 1:
+ case 3: PRINT_MESSAGE_LEFT(BattleText_Win, 160);
+ PRINT_MESSAGE_RIGHT(BattleText_Loss, 168);
+ return;
+
+ case 0:
+ case 2: PRINT_MESSAGE_RIGHT(BattleText_Win, 160);
+ PRINT_MESSAGE_LEFT(BattleText_Loss, 168);
+ return;
+ }
+ }
+
+ return;
+ }
+
+
+ if (gUnknown_02024D26 == 1) {
+ if (gLinkPlayers[battle_2000000.linkPlayerIndex].lp_field_18 != 0) {
+ PRINT_MESSAGE_RIGHT(BattleText_Win, 160);
+ PRINT_MESSAGE_LEFT(BattleText_Loss, 168);
+ } else {
+ PRINT_MESSAGE_LEFT(BattleText_Win, 160);
+ PRINT_MESSAGE_RIGHT(BattleText_Loss, 168);
+ }
+ } else {
+ if (gLinkPlayers[battle_2000000.linkPlayerIndex].lp_field_18 != 0) {
+ PRINT_MESSAGE_LEFT(BattleText_Win, 160);
+ PRINT_MESSAGE_RIGHT(BattleText_Loss, 168);
+ } else {
+ PRINT_MESSAGE_RIGHT(BattleText_Win, 160);
+ PRINT_MESSAGE_LEFT(BattleText_Loss, 168);
+ }
+ }
+}
diff --git a/src/rtc.c b/src/rtc.c
index 805f2062b..d73f943d2 100644
--- a/src/rtc.c
+++ b/src/rtc.c
@@ -1,5 +1,4 @@
#include "global.h"
-#include "siirtc.h"
#include "rtc.h"
#include "string_util.h"
#include "text.h"
@@ -29,19 +28,6 @@ static const s32 sNumDaysInMonths[12] =
31,
};
-void RtcDisableInterrupts();
-void RtcRestoreInterrupts();
-u32 ConvertBcdToBinary(u8 bcd);
-bool8 IsLeapYear(u8 year);
-u16 ConvertDateToDayCount(u8 year, u8 month, u8 day);
-u16 RtcGetDayCount(struct SiiRtcInfo *rtc);
-void RtcGetInfo(struct SiiRtcInfo *rtc);
-void RtcGetDateTime(struct SiiRtcInfo *rtc);
-void RtcGetStatus(struct SiiRtcInfo *rtc);
-void RtcGetRawInfo(struct SiiRtcInfo *rtc);
-u16 RtcCheckInfo(struct SiiRtcInfo *rtc);
-void RtcCalcTimeDifference(struct SiiRtcInfo *rtc, struct Time *result, struct Time *t);
-
void RtcDisableInterrupts()
{
sSavedIme = REG_IME;
@@ -77,9 +63,8 @@ u16 ConvertDateToDayCount(u8 year, u8 month, u8 day)
s32 i;
u16 dayCount = 0;
-#if (REVISION < 2)
- // Revisions 0 and 1 don't add days for the year 2000,
- // causing the berry glitch.
+#ifndef BUGFIX_BERRY
+ // The berry glitch was caused by not adding days for the year 2000.
for (i = year - 1; i > 0; i--)
{
dayCount += 365;
@@ -88,8 +73,7 @@ u16 ConvertDateToDayCount(u8 year, u8 month, u8 day)
dayCount++;
}
#else
- // Revision 2 has "i >= 0" as the condition instead of "i > 0",
- // which fixes the issue.
+ // The fix was to use "i >= 0" as the condition instead of "i > 0".
for (i = year - 1; i >= 0; i--)
{
dayCount += 365;
@@ -97,7 +81,7 @@ u16 ConvertDateToDayCount(u8 year, u8 month, u8 day)
if (IsLeapYear(i) == TRUE)
dayCount++;
}
-#endif
+#endif // BUGFIX_BERRY
for (i = 0; i < month - 1; i++)
dayCount += sNumDaysInMonths[i];
diff --git a/src/safari_zone.c b/src/safari_zone.c
index 600ba95d2..08bfbefbf 100644
--- a/src/safari_zone.c
+++ b/src/safari_zone.c
@@ -1,8 +1,12 @@
#include "global.h"
-#include "flag.h"
+#include "safari_zone.h"
+#include "asm.h"
+#include "field_player_avatar.h"
+#include "event_data.h"
#include "main.h"
#include "script.h"
#include "string_util.h"
+#include "rom4.h"
struct PokeblockFeeder
{
@@ -15,16 +19,8 @@ struct PokeblockFeeder
#define NUM_POKEBLOCK_FEEDERS 10
-void ClearAllPokeblockFeeders(void);
-void DecrementFeederStepCounters(void);
-extern void c2_exit_to_overworld_2_switch(void);
-extern void c2_exit_to_overworld_1_continue_scripts_restart_music(void);
-extern void sub_8080E44(void);
-extern void CB2_LoadMap(void);
-extern void sav12_xor_increment(u8);
-extern void warp_in(void);
-extern void GetXYCoordsOneStepInFrontOfPlayer(void *, void *);
-extern void PlayerGetDestCoords(u16 *, u16 *);
+static void ClearAllPokeblockFeeders(void);
+static void DecrementFeederStepCounters(void);
extern u8 gUnknown_02024D26;
@@ -59,7 +55,7 @@ void ResetSafariZoneFlag(void)
void EnterSafariMode(void)
{
- sav12_xor_increment(0x11);
+ IncrementGameStat(0x11);
SetSafariZoneFlag();
ClearAllPokeblockFeeders();
gNumSafariBalls = 30;
diff --git a/src/save.c b/src/save.c
index c6b82bc0a..49db679f8 100644
--- a/src/save.c
+++ b/src/save.c
@@ -1,30 +1,11 @@
#include "global.h"
+#include "save.h"
+#include "asm.h"
+#include "gba/gba.h"
+#include "load_save.h"
+#include "rom4.h"
#include "gba/flash_internal.h"
-
-struct SaveSectionLocation
-{
- void *data;
- u16 size;
-};
-
-struct SaveSection
-{
- u8 data[0xFF4];
- u16 id;
- u16 checksum;
- u32 unknown;
- u32 counter;
-};
-
-struct UnkSaveSection
-{
- u8 data[0xFF4];
- u32 unknown;
-};
-
-extern u32 sub_8053108(u8);
-extern void sav12_xor_increment(u8);
-extern u32 ProgramFlashSectorAndVerifyNBytes(u16 sectorNum, u8 *src, u32 n);
+#include "save_failed_screen.h"
extern struct SaveSection unk_2000000;
@@ -46,14 +27,6 @@ extern struct SaveSectionLocation gSaveSectionLocations[];
extern struct SaveSectionLocation gHallOfFameSaveSectionLocations[];
extern u8 gUnknown_08401E24[];
-u8 sub_81252D8(u16, struct SaveSectionLocation *);
-u8 sub_8125440(u8, u8 *);
-u8 sub_81255B8(u16, struct SaveSectionLocation *);
-u8 sub_81258BC(u16, struct SaveSectionLocation *);
-u8 sub_8125BF8(u8, struct SaveSection *);
-u8 sub_8125974(struct SaveSectionLocation *);
-u16 sub_8125C10(void *, u16);
-
void ClearSaveData(void)
{
u16 i;
@@ -551,7 +524,7 @@ u8 sub_8125B88(u8 a1, u8 *data, u16 size)
u8 sub_8125BF8(u8 sector, struct SaveSection *section)
{
- ReadFlash(sector, 0, section, 0x1000);
+ ReadFlash(sector, 0, section->data, 0x1000);
return 1;
}
@@ -575,31 +548,31 @@ u8 sub_8125C3C(u8 a1)
for (i = 28; i < 32; i++)
EraseFlashSector(i);
case 3:
- if (sub_8053108(10) < 999)
- sav12_xor_increment(10);
+ if (GetGameStat(10) < 999)
+ IncrementGameStat(10);
for (i = 0; i < 2; i++)
sub_81253C8(28 + i, gHallOfFameSaveSectionLocations[i].data, gHallOfFameSaveSectionLocations[i].size);
- save_serialize_game();
+ SaveSerializedGame();
save_write_to_flash(0xFFFF, gSaveSectionLocations);
break;
case 0:
default:
- save_serialize_game();
+ SaveSerializedGame();
save_write_to_flash(0xFFFF, gSaveSectionLocations);
break;
case 1:
- save_serialize_game();
+ SaveSerializedGame();
for (i = 0; i < 5; i++)
save_write_to_flash(i, gSaveSectionLocations);
break;
case 2:
- save_serialize_game();
+ SaveSerializedGame();
save_write_to_flash(0, gSaveSectionLocations);
break;
case 4:
for (i = 28; i < 32; i++)
EraseFlashSector(i);
- save_serialize_game();
+ SaveSerializedGame();
save_write_to_flash(0xFFFF, gSaveSectionLocations);
break;
}
@@ -613,7 +586,7 @@ u8 sub_8125D44(u8 a1)
sub_8125C3C(a1);
if (!gUnknown_03005EA8)
return 1;
- fullscreen_save_activate(a1);
+ DoSaveFailedScreen(a1);
return 0xFF;
}
@@ -621,7 +594,7 @@ u8 sub_8125D80(void)
{
if (gUnknown_3004820 != 1)
return 1;
- save_serialize_game();
+ SaveSerializedGame();
sub_812546C(gSaveSectionLocations);
return 0;
}
@@ -630,7 +603,7 @@ bool8 sub_8125DA8(void)
{
u8 v0 = sub_812550C(14, gSaveSectionLocations);
if (gUnknown_03005EA8)
- fullscreen_save_activate(0);
+ DoSaveFailedScreen(0);
if (v0 == 0xFF)
return 1;
else
@@ -641,7 +614,7 @@ u8 sub_8125DDC(void)
{
sub_812556C(14, gSaveSectionLocations);
if (gUnknown_03005EA8)
- fullscreen_save_activate(0);
+ DoSaveFailedScreen(0);
return 0;
}
@@ -649,7 +622,7 @@ u8 sub_8125E04(void)
{
sub_8125758(14, gSaveSectionLocations);
if (gUnknown_03005EA8)
- fullscreen_save_activate(0);
+ DoSaveFailedScreen(0);
return 0;
}
@@ -658,7 +631,7 @@ u8 sub_8125E2C(void)
if (gUnknown_3004820 != 1)
return 1;
- save_serialize_game();
+ SaveSerializedGame();
sub_81254C8(gSaveSectionLocations);
sub_812556C(gUnknown_03005EB4 + 1, gSaveSectionLocations);
return 0;
@@ -679,7 +652,7 @@ u8 sub_8125E6C(void)
retVal = 1;
}
if (gUnknown_03005EA8)
- fullscreen_save_activate(1);
+ DoSaveFailedScreen(1);
return retVal;
}
@@ -698,7 +671,7 @@ u8 sub_8125EC8(u8 a1)
case 0:
default:
result = sub_812587C(0xFFFF, gSaveSectionLocations);
- save_deserialize_game();
+ LoadSerializedGame();
gSaveFileStatus = result;
gUnknown_03005EBC = 0;
break;
@@ -720,7 +693,7 @@ bool8 unref_sub_8125F4C(struct UnkSaveSection *a1)
for (i = 0; i < 0x1000; i++)
raw[i] = 0;
- ReadFlash(gUnknown_08401E24[0], 0, a1, 4096);
+ ReadFlash(gUnknown_08401E24[0], 0, a1->data, 4096);
if (a1->unknown != 0x8012025)
return FALSE;
diff --git a/src/save_failed_screen.c b/src/save_failed_screen.c
new file mode 100644
index 000000000..41e61eadb
--- /dev/null
+++ b/src/save_failed_screen.c
@@ -0,0 +1,301 @@
+#include "global.h"
+#include "main.h"
+#include "sprite.h"
+#include "palette.h"
+#include "task.h"
+#include "text.h"
+#include "menu.h"
+#include "save.h"
+#include "m4a.h"
+#include "gba/flash_internal.h"
+#include "asm.h"
+
+// In English 1.0, the text window is too small, causing text to overflow.
+
+#ifdef BUGFIX_SAVEFAILEDSCREEN1
+#define MSG_WIN_TOP 10
+#else
+#define MSG_WIN_TOP 12
+#endif
+
+#define CLOCK_WIN_TOP (MSG_WIN_TOP - 4)
+
+struct SaveFailedStruct
+{
+ u16 unk0;
+ u16 unk2;
+};
+
+extern u8 unk_2000000[];
+
+extern u16 gUnknown_0203933C;
+extern struct SaveFailedStruct gUnknown_0203933E;
+extern u32 gUnknown_03005EA8;
+extern u32 gUnknown_03005EBC;
+
+extern struct OamData gUnknown_08411940;
+extern u8 gUnknown_08411948[][3];
+
+extern u8 gBirchHelpGfx[];
+
+extern u8 gSystemText_SaveFailedBackupCheck[];
+extern u8 gSystemText_CheckCompleteSaveAttempt[];
+extern u8 gSystemText_BackupDamagedGameContinue[];
+extern u8 gSystemText_SaveCompletedPressA[];
+extern u8 gSystemText_SaveCompletedGameEnd[];
+extern u8 gSystemText_GameplayEnded[];
+
+extern u8 gBirchGrassTilemap[];
+extern u8 gBirchBagTilemap[];
+
+extern const u8 gSaveFailedClockGfx[];
+extern const u8 gSaveFailedClockPal[];
+extern u8 gBirchBagGrassPal[];
+
+static void VBlankCB(void);
+static void CB2_SaveFailedScreen(void);
+static void CB2_WipeSave(void);
+static void CB2_GameplayCannotBeContinued(void);
+static void CB2_FadeAndReturnToTitleScreen(void);
+static void CB2_ReturnToTitleScreen(void);
+static void VBlankCB_UpdateClockGraphics(void);
+static bool8 VerifySectorWipe(u16 sector);
+static bool8 WipeSector(u16 sector);
+static bool8 WipeSectors(u32 sectorBits);
+
+void DoSaveFailedScreen(u8 var)
+{
+ SetMainCallback2(CB2_SaveFailedScreen);
+ gUnknown_0203933C = var;
+ gUnknown_0203933E.unk0 = 0;
+}
+
+static void VBlankCB(void)
+{
+ LoadOam();
+ ProcessSpriteCopyRequests();
+ TransferPlttBuffer();
+}
+
+static void CB2_SaveFailedScreen(void)
+{
+ u16 ime;
+
+ switch(gMain.state)
+ {
+ case 0:
+ default:
+ SetVBlankCallback(0);
+ REG_DISPCNT = 0;
+ REG_BG3CNT = 0;
+ REG_BG2CNT = 0;
+ REG_BG1CNT = 0;
+ REG_BG0CNT = 0;
+ REG_BG3HOFS = 0;
+ REG_BG3VOFS = 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);
+ LZ77UnCompVram(&gBirchHelpGfx, (void *)VRAM);
+ LZ77UnCompVram(&gBirchBagTilemap, (void *)(VRAM + 0x3000));
+ LZ77UnCompVram(&gBirchGrassTilemap, (void *)(VRAM + 0x3800));
+ LZ77UnCompVram(&gSaveFailedClockGfx, (void *)(VRAM + 0x10020));
+ ResetSpriteData();
+ ResetTasks();
+ ResetPaletteFade();
+ LoadPalette(&gBirchBagGrassPal, 0, 0x40);
+ LoadPalette(&gSaveFailedClockPal, 0x100, 0x20);
+ SetUpWindowConfig(&gWindowConfig_81E6C3C);
+ InitMenuWindow(&gWindowConfig_81E6CE4);
+ MenuDrawTextWindow(13, CLOCK_WIN_TOP, 16, CLOCK_WIN_TOP + 3); // clock window
+ MenuDrawTextWindow(1, MSG_WIN_TOP, 28, 19); // message window
+ MenuPrint(gSystemText_SaveFailedBackupCheck, 2, MSG_WIN_TOP + 1);
+ BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, 0);
+ ime = REG_IME;
+ REG_IME = 0;
+ REG_IE |= INTR_FLAG_VBLANK;
+ REG_IME = ime;
+ REG_DISPSTAT |= DISPSTAT_VBLANK_INTR;
+ SetVBlankCallback(VBlankCB);
+ REG_BG3CNT = 0x703;
+ REG_BG2CNT = 0x602;
+ REG_BG0CNT = 0x1f08;
+ REG_DISPCNT = DISPCNT_OBJ_ON | DISPCNT_BG3_ON | DISPCNT_BG2_ON | DISPCNT_BG0_ON | DISPCNT_OBJ_1D_MAP | DISPCNT_MODE_0;
+ gMain.state++;
+ break;
+ case 1:
+ if (!UpdatePaletteFade())
+ {
+ SetMainCallback2(CB2_WipeSave);
+ SetVBlankCallback(VBlankCB_UpdateClockGraphics);
+ }
+ break;
+ }
+}
+
+static void CB2_WipeSave(void)
+{
+ u8 wipeTries = 0;
+
+ gUnknown_0203933E.unk0 = 1;
+
+ while (gUnknown_03005EA8 && wipeTries < 3)
+ {
+ if (WipeSectors(gUnknown_03005EA8))
+ {
+ MenuDrawTextWindow(1, MSG_WIN_TOP, 28, 19);
+ MenuPrint(gSystemText_BackupDamagedGameContinue, 2, MSG_WIN_TOP + 1);
+ SetMainCallback2(CB2_GameplayCannotBeContinued);
+ return;
+ }
+
+ MenuDrawTextWindow(1, MSG_WIN_TOP, 28, 19);
+ MenuPrint(gSystemText_CheckCompleteSaveAttempt, 2, MSG_WIN_TOP + 1);
+ sub_8125C3C(gUnknown_0203933C);
+
+ if (gUnknown_03005EA8)
+ {
+#ifdef BUGFIX_SAVEFAILEDSCREEN2
+ MenuDrawTextWindow(1, MSG_WIN_TOP, 28, 19);
+#endif
+ MenuPrint(gSystemText_SaveFailedBackupCheck, 2, MSG_WIN_TOP + 1);
+ }
+
+ wipeTries++;
+ }
+
+ if (wipeTries == 3)
+ {
+ MenuDrawTextWindow(1, MSG_WIN_TOP, 28, 19);
+ MenuPrint(gSystemText_BackupDamagedGameContinue, 2, MSG_WIN_TOP + 1);
+ SetMainCallback2(CB2_FadeAndReturnToTitleScreen); // called again below
+ }
+ else
+ {
+ MenuDrawTextWindow(1, MSG_WIN_TOP, 28, 19);
+
+ if (!gUnknown_03005EBC) // cant continue game.
+ MenuPrint(gSystemText_SaveCompletedGameEnd, 2, MSG_WIN_TOP + 1);
+ else // can continue game.
+ MenuPrint(gSystemText_SaveCompletedPressA, 2, MSG_WIN_TOP + 1);
+ }
+
+ SetMainCallback2(CB2_FadeAndReturnToTitleScreen);
+}
+
+static void CB2_GameplayCannotBeContinued(void)
+{
+ gUnknown_0203933E.unk0 = 0;
+
+ if (gMain.newKeys & A_BUTTON)
+ {
+ MenuDrawTextWindow(1, MSG_WIN_TOP, 28, 19);
+ MenuPrint(gSystemText_GameplayEnded, 2, MSG_WIN_TOP + 1);
+ SetVBlankCallback(VBlankCB);
+ SetMainCallback2(CB2_FadeAndReturnToTitleScreen);
+ }
+}
+
+static void CB2_FadeAndReturnToTitleScreen(void)
+{
+ u8 zero;
+
+ gUnknown_0203933E.unk0 = zero = 0;
+
+ if (gMain.newKeys & A_BUTTON)
+ {
+ BeginNormalPaletteFade(0xFFFFFFFF, 0, zero, 16, 0);
+ SetVBlankCallback(VBlankCB);
+ SetMainCallback2(CB2_ReturnToTitleScreen);
+ }
+}
+
+static void CB2_ReturnToTitleScreen(void)
+{
+ if (!UpdatePaletteFade())
+ {
+ if (!gUnknown_03005EBC)
+ {
+ DoSoftReset();
+ }
+ else
+ {
+ SetMainCallback2((MainCallback)gUnknown_03005EBC);
+ gUnknown_03005EBC = 0;
+ }
+ }
+}
+
+static void VBlankCB_UpdateClockGraphics(void)
+{
+ unsigned int n = (gMain.vblankCounter2 >> 3) & 7;
+
+ gMain.oamBuffer[0] = gUnknown_08411940;
+ gMain.oamBuffer[0].x = 112;
+ gMain.oamBuffer[0].y = (CLOCK_WIN_TOP + 1) * 8;
+
+ if (gUnknown_0203933E.unk0)
+ {
+ gMain.oamBuffer[0].tileNum = gUnknown_08411948[n][0];
+ gMain.oamBuffer[0].matrixNum = (gUnknown_08411948[n][2] << 4) | (gUnknown_08411948[n][1] << 3);
+ }
+ else
+ {
+ gMain.oamBuffer[0].tileNum = 1;
+ }
+
+ CpuFastCopy(gMain.oamBuffer, (void *)OAM, 4);
+
+ if (gUnknown_0203933E.unk2)
+ gUnknown_0203933E.unk2--;
+}
+
+static bool8 VerifySectorWipe(u16 sector)
+{
+ u32 *ptr = (u32 *)unk_2000000;
+ u16 i;
+
+ ReadFlash(sector, 0, (u8 *)ptr, 4096);
+
+ for (i = 0; i < 0x400; i++, ptr++)
+ if (*ptr)
+ return TRUE;
+
+ return FALSE;
+}
+
+static bool8 WipeSector(u16 sector)
+{
+ u16 i, j;
+ bool8 failed = TRUE;
+
+ for (i = 0; failed && i < 130; i++)
+ {
+ for (j = 0; j < 0x1000; j++)
+ ProgramFlashByte(sector, j, 0);
+
+ failed = VerifySectorWipe(sector);
+ }
+
+ return failed;
+}
+
+static bool8 WipeSectors(u32 sectorBits)
+{
+ u16 i;
+
+ for (i = 0; i < 0x20; i++)
+ if ((sectorBits & (1 << i)) && !WipeSector(i))
+ sectorBits &= ~(1 << i);
+
+ if (sectorBits == 0)
+ return FALSE;
+ else
+ return TRUE;
+}
diff --git a/src/save_menu_util.c b/src/save_menu_util.c
index c811f5244..d2fda59d6 100644
--- a/src/save_menu_util.c
+++ b/src/save_menu_util.c
@@ -1,23 +1,16 @@
#include "global.h"
+#include "save_menu_util.h"
+#include "asm.h"
#include "menu.h"
-#include "flag.h"
+#include "event_data.h"
+#include "string_util.h"
+#include "pokedex.h"
extern u8 gOtherText_Player[];
extern u8 gOtherText_Badges[];
extern u8 gOtherText_Pokedex[];
extern u8 gOtherText_PlayTime[];
-extern void ConvertIntToDecimalStringN(u8 *dest, u32 value, int mode, u8 n);
-
-u8 sub_809473C(void);
-u8 GetBadgeCount(void);
-
-void PrintSavePlayerName(s16 x, s16 y);
-void PrintSaveMapName(s16 x, s16 y);
-void PrintSaveBadges(s16 x, s16 y);
-void PrintSavePokedexCount(s16 x, s16 y);
-void PrintSavePlayTime(s16 x, s16 y);
-
void HandleDrawSaveWindowInfo(s16 left, s16 top)
{
u32 width = 12;
@@ -125,7 +118,7 @@ u16 GetPokedexSeenCount()
{
u16 pokedexSeenCount;
- if (IsNationalPokedex())
+ if (IsNationalPokedexEnabled())
pokedexSeenCount = GetNationalPokedexCount(1);
else
pokedexSeenCount = GetHoennPokedexCount(1);
diff --git a/src/scrcmd.c b/src/scrcmd.c
index 9d6f36a54..d3d28f923 100644
--- a/src/scrcmd.c
+++ b/src/scrcmd.c
@@ -1,143 +1,28 @@
#include "global.h"
+#include "asm.h"
+#include "battle_setup.h"
+#include "berry.h"
+#include "field_player_avatar.h"
+#include "item.h"
#include "script.h"
#include "rng.h"
#include "palette.h"
#include "rtc.h"
#include "pokemon.h"
-#include "fieldmap.h"
+#include "asm_fieldmap.h"
#include "main.h"
#include "menu.h"
+#include "money.h"
#include "decoration.h"
#include "field_message_box.h"
#include "sound.h"
#include "string_util.h"
-#include "flag.h"
-#include "var.h"
-
-extern void ClearRamScript(void);
-extern void sub_8126160(u8);
-extern u8 AddBagItem(u16, u16);
-extern u8 RemoveBagItem(u16, u16);
-extern u8 CheckBagHasSpace(u16, u16);
-extern u8 CheckBagHasItem(u16, u16);
-extern u8 GetPocketByItemId(u16);
-extern u8 AddPCItem(u16, u16);
-extern u8 CheckPCHasItem(u16, u16);
-extern u8 IsThereStorageSpaceForDecoration(u8);
-extern s8 sub_81340A8(u8);
-extern u8 sub_8134074(u8);
-extern u8 sub_8133FE4(u8);
-extern void sav12_xor_increment(u8);
-extern void sub_8081594(u8);
-extern void sub_8053CE4(u32);
-extern void fade_screen(u8, u8);
-extern void DoTimeBasedEvents(void);
-extern void SetSav1Weather(u32);
-extern void sub_80806E4(void);
-extern void sub_808073C(void);
-extern void activate_per_step_callback(u8);
-extern void sub_8053D14(u16);
-extern void warp1_set(s8, s8, s8, s8, s8);
-extern void sub_8080E88(void);
-extern void player_avatar_init_params_reset(void);
-extern void sp13E_warp_to_last_warp(void);
-extern void sub_8080EF0(void);
-extern void sp13F_fall_to_last_warp(void);
-extern void sub_8053720(s16, s16);
-extern void PlayerGetDestCoords(u16 *, u16 *);
-extern void sub_8080F68(void);
-extern void saved_warp2_set_2(s8, s8, s8, s8, s8, s8);
-extern void sub_8053690(s8, s8, s8, s8, s8);
-extern void sub_80536E4(s8, s8, s8, s8, s8);
-extern void sub_805363C(s8, s8, s8, s8, s8);
-extern void sav1_set_battle_music_maybe(u16);
-extern void sub_8053F84(void);
-extern void sub_8053FB0(u16);
-extern u8 exec_movement(u8, u8, u8, void *);
-extern bool8 sub_80A212C(u8, u8, u8);
-extern void RemoveFieldObjectByLocalIdAndMap(u8, u8, u8);
-extern u8 show_sprite(u8, u8, u8);
-extern void sub_805C0F8(u8, u8, u8, s16, s16);
-extern void update_saveblock1_field_object_coords(u8, s16, s16);
-extern void sub_805C78C(u8, u8, u8);
-extern void npc_by_local_id_and_map_set_field_1_bit_x20(u8, u8, u8, u8);
-extern void sub_805BCF0(u8, u8, u8, u8);
-extern void sub_805BD48(u8, u8, u8);
-extern u8 player_get_direction_lower_nybble(void);
-extern u8 FieldObjectFaceOppositeDirection(void *, u8);
-extern void FieldObjectTurnByLocalIdAndMap(u8, u8, u8, u8);
-extern void update_saveblock1_field_object_movement_behavior(u8, u8);
-extern u8 sub_805B410(u8, u8, s16, s16, u8, u8);
-extern void sub_8064990(u8, u8);
-extern bool32 is_c1_link_related_active(void);
-extern void sub_8064D20(void);
-extern bool8 sub_8064CFC(void);
-extern void sub_8064DD8(void);
-extern bool8 sub_8064DB4(void);
-extern u8 GetFieldObjectIdByLocalIdAndMap(u8, u8, u8);
-extern u8 FieldObjectClearAnimIfSpecialAnimFinished(void *);
-extern void sub_80A2178(void);
-extern void sub_806451C(void);
-extern bool8 yes_no_box(u8, u8);
-extern bool8 sub_80B5054(u8, u8, u8, u8);
-extern bool8 sub_80B50B0(u8, u8, u8, u8, u8);
-extern bool8 sub_80B5578(u8, u8, u8, u8, u8);
-extern bool8 Multichoice(u8, u8, u8, u8);
-extern bool8 sub_80B58C4(u16, u8, u8);
-extern void *picbox_close(void);
-extern void sub_8106630(u32);
-extern void ShowContestWinner(void);
-extern u8 GetLeadMonIndex(void);
-extern void CopyItemName(u16, u8 *);
-extern u8 sub_80BF0B8(u32);
-extern void sub_80B79B8(u32 *, u32);
-extern void sub_80B79E0(u32 *, u32);
-extern bool8 IsEnoughMoney(u32, u32);
-extern void sub_80B7C14(u32, u8, u8);
-extern void RemoveMoneyLabelObject(u8, u8);
-extern void sub_80B7BEC(u32, u8, u8);
-extern void ShowCoinsWindow(u32, u8, u8);
-extern void HideCoinsWindow(u8, u8);
-extern void UpdateCoinsWindow(u32, u8, u8);
-extern void *TrainerBattleConfigure(u8 *);
-extern void sub_80825E4(void);
-extern u8 *sub_80826E8(void);
-extern u8 *sub_8082700(void);
-extern u8 trainer_flag_check(u16);
-extern void trainer_flag_set(u16);
-extern void trainer_flag_clear(u16);
-extern void ScriptWildBattle(u16, u8, u16);
-extern void sub_8081B3C(void);
-extern void CreatePokemartMenu(void *);
-extern void CreateDecorationShop1Menu(void *);
-extern void CreateDecorationShop2Menu(void *);
-extern void PlaySlotMachine(u8, void *);
-extern void PlantBerryTree(u8, u8, u8, bool8);
-extern bool8 GetPriceReduction(u8);
-extern void sub_80F99CC(void);
-extern void sub_80C48C8(void);
-extern void sub_80C4940(void);
-extern void sub_80C4980(u8);
-extern u32 FieldEffectStart(u8);
-extern bool8 FieldEffectActiveListContains(u8);
-extern void sub_8053588(u8);
-extern void MapGridSetMetatileIdAt(u32, u32, u16);
-extern u16 sub_8058790(u32, u32);
-extern bool8 FieldAnimateDoorOpen(u32, u32);
-extern bool8 FieldAnimateDoorClose(u32, u32);
-extern bool8 FieldIsDoorAnimationRunning(void);
-extern void FieldSetDoorOpened(u32, u32);
-extern void FieldSetDoorClosed(u32, u32);
-extern void ScriptAddElevatorMenuItem(u8, u8, u8, u8);
-extern void ScriptShowElevatorMenu(void);
-extern u16 GetCoins(void);
-extern bool8 GiveCoins(u16);
-extern bool8 TakeCoins(u16);
-extern u8 ScriptGiveMon(u16, u8, u16, u32, u32, u8);
-extern u8 ScriptGiveEgg(u16);
-extern void ScriptSetMonMoveSlot(u8, u16, u8);
-extern bool8 pokemon_has_move(struct Pokemon *, u16);
-extern void c2_exit_to_overworld_1_continue_scripts_restart_music(void);
+#include "event_data.h"
+#include "rom4.h"
+#include "weather.h"
+#include "map_obj_lock.h"
+#include "coins.h"
+#include "field_effect.h"
typedef u16 (*SpecialFunc)(void);
typedef void (*NativeFunc)(void);
@@ -170,11 +55,31 @@ extern u8 *gStdScripts_End[];
extern u8 gSpeciesNames[][11];
extern u8 gMoveNames[][13];
-extern u8 gScriptConditionTable[6][3];
-extern u8 * const gUnknown_083762F0[];
extern u8 * const gUnknown_083CE048[];
extern struct Decoration gDecorations[];
+// This is defined in here so the optimizer can't see its value when compiling
+// script.c.
+void * const gNullScriptPtr = NULL;
+
+static const u8 sScriptConditionTable[6][3] =
+{
+// < = >
+ 1, 0, 0, // <
+ 0, 1, 0, // =
+ 0, 0, 1, // >
+ 1, 1, 0, // <=
+ 0, 1, 1, // >=
+ 1, 0, 1, // !=
+};
+
+static u8 * const sScriptStringVars[] =
+{
+ gStringVar1,
+ gStringVar2,
+ gStringVar3,
+};
+
bool8 ScrCmd_snop(struct ScriptContext *ctx)
{
return FALSE;
@@ -250,7 +155,7 @@ bool8 ScrCmd_jumpif(struct ScriptContext *ctx)
{
u8 condition = ScriptReadByte(ctx);
u8 *ptr = (u8 *)ScriptReadWord(ctx);
- if (gScriptConditionTable[condition][ctx->comparisonResult] == 1)
+ if (sScriptConditionTable[condition][ctx->comparisonResult] == 1)
ScriptJump(ctx, ptr);
return FALSE;
}
@@ -259,7 +164,7 @@ bool8 ScrCmd_callif(struct ScriptContext *ctx)
{
u8 condition = ScriptReadByte(ctx);
u8 *ptr = (u8 *)ScriptReadWord(ctx);
- if (gScriptConditionTable[condition][ctx->comparisonResult] == 1)
+ if (sScriptConditionTable[condition][ctx->comparisonResult] == 1)
ScriptCall(ctx, ptr);
return FALSE;
}
@@ -290,7 +195,7 @@ bool8 ScrCmd_if5(struct ScriptContext *ctx)
{
u8 condition = ScriptReadByte(ctx);
u8 *ptr = (u8 *)(ScriptReadWord(ctx) - gUnknown_0202E8B0);
- if (gScriptConditionTable[condition][ctx->comparisonResult] == 1)
+ if (sScriptConditionTable[condition][ctx->comparisonResult] == 1)
ScriptJump(ctx, ptr);
return FALSE;
}
@@ -299,7 +204,7 @@ bool8 ScrCmd_if6(struct ScriptContext *ctx)
{
u8 condition = ScriptReadByte(ctx);
u8 *ptr = (u8 *)(ScriptReadWord(ctx) - gUnknown_0202E8B0);
- if (gScriptConditionTable[condition][ctx->comparisonResult] == 1)
+ if (sScriptConditionTable[condition][ctx->comparisonResult] == 1)
ScriptCall(ctx, ptr);
return FALSE;
}
@@ -326,7 +231,7 @@ bool8 ScrCmd_jumpstdif(struct ScriptContext *ctx)
{
u8 condition = ScriptReadByte(ctx);
u8 index = ScriptReadByte(ctx);
- if (gScriptConditionTable[condition][ctx->comparisonResult] == 1)
+ if (sScriptConditionTable[condition][ctx->comparisonResult] == 1)
{
u8 **ptr = &gStdScripts[index];
if (ptr < gStdScripts_End)
@@ -339,7 +244,7 @@ bool8 ScrCmd_callstdif(struct ScriptContext *ctx)
{
u8 condition = ScriptReadByte(ctx);
u8 index = ScriptReadByte(ctx);
- if (gScriptConditionTable[condition][ctx->comparisonResult] == 1)
+ if (sScriptConditionTable[condition][ctx->comparisonResult] == 1)
{
u8 **ptr = &gStdScripts[index];
if (ptr < gStdScripts_End)
@@ -638,7 +543,7 @@ bool8 ScrCmd_checkflag(struct ScriptContext *ctx)
bool8 ScrCmd_inccounter(struct ScriptContext *ctx)
{
- sav12_xor_increment(ScriptReadByte(ctx));
+ IncrementGameStat(ScriptReadByte(ctx));
return FALSE;
}
@@ -673,9 +578,9 @@ bool8 ScrCmd_fadescreen(struct ScriptContext *ctx)
bool8 ScrCmd_fadescreendelay(struct ScriptContext *ctx)
{
- u8 val1 = ScriptReadByte(ctx);
- u8 val2 = ScriptReadByte(ctx);
- fade_screen(val1, val2);
+ u8 duration = ScriptReadByte(ctx);
+ u8 delay = ScriptReadByte(ctx);
+ fade_screen(duration, delay);
SetupNativeScript(ctx, sub_8066248);
return TRUE;
}
@@ -735,13 +640,13 @@ bool8 ScrCmd_resetweather(struct ScriptContext *ctx)
bool8 ScrCmd_doweather(struct ScriptContext *ctx)
{
- sub_808073C();
+ DoCurrentWeather();
return FALSE;
}
bool8 ScrCmd_tileeffect(struct ScriptContext *ctx)
{
- activate_per_step_callback(ScriptReadByte(ctx));
+ ActivatePerStepCallback(ScriptReadByte(ctx));
return FALSE;
}
@@ -1180,7 +1085,7 @@ bool8 ScrCmd_lockall(struct ScriptContext *ctx)
}
else
{
- sub_8064D20();
+ ScriptFreezeMapObjects();
SetupNativeScript(ctx, sub_8064CFC);
return TRUE;
}
@@ -1201,7 +1106,7 @@ bool8 ScrCmd_lock(struct ScriptContext *ctx)
}
else
{
- sub_8064D20();
+ ScriptFreezeMapObjects();
SetupNativeScript(ctx, sub_8064CFC);
}
@@ -1217,7 +1122,7 @@ bool8 ScrCmd_releaseall(struct ScriptContext *ctx)
objectId = GetFieldObjectIdByLocalIdAndMap(0xFF, 0, 0);
FieldObjectClearAnimIfSpecialAnimFinished(&gMapObjects[objectId]);
sub_80A2178();
- sub_806451C();
+ UnfreezeMapObjects();
return FALSE;
}
@@ -1231,7 +1136,7 @@ bool8 ScrCmd_release(struct ScriptContext *ctx)
objectId = GetFieldObjectIdByLocalIdAndMap(0xFF, 0, 0);
FieldObjectClearAnimIfSpecialAnimFinished(&gMapObjects[objectId]);
sub_80A2178();
- sub_806451C();
+ UnfreezeMapObjects();
return FALSE;
}
@@ -1440,14 +1345,14 @@ bool8 ScrCmd_bufferpoke(struct ScriptContext *ctx)
{
u8 stringVarIndex = ScriptReadByte(ctx);
u16 species = VarGet(ScriptReadHalfword(ctx));
- StringCopy(gUnknown_083762F0[stringVarIndex], gSpeciesNames[species]);
+ StringCopy(sScriptStringVars[stringVarIndex], gSpeciesNames[species]);
return FALSE;
}
bool8 ScrCmd_bufferfirstpoke(struct ScriptContext *ctx)
{
u8 stringVarIndex = ScriptReadByte(ctx);
- u8 *dest = gUnknown_083762F0[stringVarIndex];
+ u8 *dest = sScriptStringVars[stringVarIndex];
u8 partyIndex = GetLeadMonIndex();
u32 species = GetMonData(&gPlayerParty[partyIndex], MON_DATA_SPECIES, NULL);
StringCopy(dest, gSpeciesNames[species]);
@@ -1458,8 +1363,8 @@ bool8 ScrCmd_bufferpartypoke(struct ScriptContext *ctx)
{
u8 stringVarIndex = ScriptReadByte(ctx);
u16 partyIndex = VarGet(ScriptReadHalfword(ctx));
- GetMonData(&gPlayerParty[partyIndex], MON_DATA_NICKNAME, gUnknown_083762F0[stringVarIndex]);
- StringGetEnd10(gUnknown_083762F0[stringVarIndex]);
+ GetMonData(&gPlayerParty[partyIndex], MON_DATA_NICKNAME, sScriptStringVars[stringVarIndex]);
+ StringGetEnd10(sScriptStringVars[stringVarIndex]);
return FALSE;
}
@@ -1467,7 +1372,7 @@ bool8 ScrCmd_bufferitem(struct ScriptContext *ctx)
{
u8 stringVarIndex = ScriptReadByte(ctx);
u16 itemId = VarGet(ScriptReadHalfword(ctx));
- CopyItemName(itemId, gUnknown_083762F0[stringVarIndex]);
+ CopyItemName(itemId, sScriptStringVars[stringVarIndex]);
return FALSE;
}
@@ -1475,7 +1380,7 @@ bool8 ScrCmd_bufferdecor(struct ScriptContext *ctx)
{
u8 stringVarIndex = ScriptReadByte(ctx);
u16 decorId = VarGet(ScriptReadHalfword(ctx));
- StringCopy(gUnknown_083762F0[stringVarIndex], gDecorations[decorId].name);
+ StringCopy(sScriptStringVars[stringVarIndex], gDecorations[decorId].name);
return FALSE;
}
@@ -1483,7 +1388,7 @@ bool8 ScrCmd_bufferattack(struct ScriptContext *ctx)
{
u8 stringVarIndex = ScriptReadByte(ctx);
u16 moveId = VarGet(ScriptReadHalfword(ctx));
- StringCopy(gUnknown_083762F0[stringVarIndex], gMoveNames[moveId]);
+ StringCopy(sScriptStringVars[stringVarIndex], gMoveNames[moveId]);
return FALSE;
}
@@ -1492,7 +1397,7 @@ bool8 ScrCmd_buffernum(struct ScriptContext *ctx)
u8 stringVarIndex = ScriptReadByte(ctx);
u16 v1 = VarGet(ScriptReadHalfword(ctx));
u8 v2 = sub_80BF0B8(v1);
- ConvertIntToDecimalStringN(gUnknown_083762F0[stringVarIndex], v1, 0, v2);
+ ConvertIntToDecimalStringN(sScriptStringVars[stringVarIndex], v1, 0, v2);
return FALSE;
}
@@ -1500,7 +1405,7 @@ bool8 ScrCmd_bufferstd(struct ScriptContext *ctx)
{
u8 stringVarIndex = ScriptReadByte(ctx);
u16 index = VarGet(ScriptReadHalfword(ctx));
- StringCopy(gUnknown_083762F0[stringVarIndex], gUnknown_083CE048[index]);
+ StringCopy(sScriptStringVars[stringVarIndex], gUnknown_083CE048[index]);
return FALSE;
}
@@ -1508,7 +1413,7 @@ bool8 ScrCmd_buffertext(struct ScriptContext *ctx)
{
u8 stringVarIndex = ScriptReadByte(ctx);
u8 *text = (u8 *)ScriptReadWord(ctx);
- StringCopy(gUnknown_083762F0[stringVarIndex], text);
+ StringCopy(sScriptStringVars[stringVarIndex], text);
return FALSE;
}
@@ -1524,7 +1429,7 @@ bool8 ScrCmd_vbuffer(struct ScriptContext *ctx)
u8 stringVarIndex = ScriptReadByte(ctx);
u32 addr = ScriptReadWord(ctx);
u8 *src = (u8 *)(addr - gUnknown_0202E8B0);
- u8 *dest = gUnknown_083762F0[stringVarIndex];
+ u8 *dest = sScriptStringVars[stringVarIndex];
StringCopy(dest, src);
return FALSE;
}
@@ -1713,7 +1618,7 @@ bool8 ScrCmd_setwildbattle(struct ScriptContext *ctx)
bool8 ScrCmd_dowildbattle(struct ScriptContext *ctx)
{
- sub_8081B3C();
+ StartBattle_ScriptedWild();
ScriptContext1_Stop();
return TRUE;
}
@@ -1812,7 +1717,7 @@ bool8 ScrCmd_setanimation(struct ScriptContext *ctx)
return FALSE;
}
-bool8 sub_8067B48()
+static bool8 sub_8067B48()
{
if (!FieldEffectActiveListContains(gUnknown_0202E8BC))
return TRUE;
@@ -1890,7 +1795,7 @@ bool8 ScrCmd_setdoorclosed(struct ScriptContext *ctx)
return FALSE;
}
-bool8 IsDoorAnimationStopped()
+static bool8 IsDoorAnimationStopped()
{
if (!FieldIsDoorAnimationRunning())
return TRUE;
@@ -1950,8 +1855,8 @@ bool8 ScrCmd_checkcoins(struct ScriptContext *ctx)
bool8 ScrCmd_givecoins(struct ScriptContext *ctx)
{
- u16 v2 = VarGet(ScriptReadHalfword(ctx));
- if (GiveCoins(v2) == TRUE)
+ u16 coins = VarGet(ScriptReadHalfword(ctx));
+ if (GiveCoins(coins) == TRUE)
gScriptResult = 0;
else
gScriptResult = 1;
@@ -1961,8 +1866,8 @@ bool8 ScrCmd_givecoins(struct ScriptContext *ctx)
bool8 ScrCmd_removecoins(struct ScriptContext *ctx)
{
- u16 v2 = VarGet(ScriptReadHalfword(ctx));
- if (TakeCoins(v2) == TRUE)
+ u16 coins = VarGet(ScriptReadHalfword(ctx));
+ if (TakeCoins(coins) == TRUE)
gScriptResult = 0;
else
gScriptResult = 1;
diff --git a/src/script.c b/src/script.c
index 8e07a580e..7a9c8e102 100644
--- a/src/script.c
+++ b/src/script.c
@@ -1,7 +1,7 @@
#include "global.h"
#include "script.h"
-#include "fieldmap.h"
-#include "var.h"
+#include "asm_fieldmap.h"
+#include "event_data.h"
#define RAM_SCRIPT_MAGIC 51
@@ -15,7 +15,7 @@ static bool8 sScriptContext2Enabled;
extern ScrCmdFunc gScriptCmdTable[];
extern ScrCmdFunc gScriptCmdTableEnd[];
-extern void *gUnknown_083762D8;
+extern void *gNullScriptPtr;
void InitScriptContext(struct ScriptContext *ctx, void *cmdTable, void *cmdTableEnd)
{
@@ -83,7 +83,7 @@ u8 RunScript(struct ScriptContext *ctx)
return 0;
}
- if (ctx->scriptPtr == gUnknown_083762D8)
+ if (ctx->scriptPtr == gNullScriptPtr)
{
while (1)
asm("svc 2"); // HALT
diff --git a/src/script_menu.c b/src/script_menu.c
new file mode 100644
index 000000000..c4f0b5292
--- /dev/null
+++ b/src/script_menu.c
@@ -0,0 +1,431 @@
+#include "global.h"
+#include "task.h"
+#include "menu.h"
+#include "palette.h"
+#include "script.h"
+#include "sound.h"
+#include "event_data.h"
+#include "sprite.h"
+
+struct MultichoiceListStruct
+{
+ struct MenuAction *list;
+ u8 count;
+};
+
+extern const struct MultichoiceListStruct gMultichoiceLists[];
+
+extern u16 gScriptResult;
+
+extern void FreeResourcesAndDestroySprite(struct Sprite *sprite);
+extern u8 CreateMonSprite_PicBox(u16, s16, s16, u8);
+extern u8 sub_80B59AC(void);
+
+extern u8 gPCText_PlayersPC[];
+extern u8 gPCText_SomeonesPC[];
+extern u8 gPCText_HallOfFame[];
+extern u8 gPCText_LogOff[];
+extern u8 gPCText_LanettesPC[];
+extern u8 gPCText_WhichPCShouldBeAccessed[];
+
+void DrawMultichoiceMenu(u8, u8, u8, struct MenuAction *list, u8, u8);
+void sub_80B53B4(u8, u8, u8, struct MenuAction *list, u8);
+void sub_80B52B4(u8);
+void sub_80B5230(u8, u8, u8, u8, u8, u8);
+void task_yes_no_maybe(u8);
+void sub_80B5684(u8);
+void CreatePCMenu(void);
+
+bool8 sub_80B5054(u8 left, u8 top, u8 var3, u8 var4)
+{
+ if(FuncIsActiveTask(sub_80B52B4) == 1)
+ return FALSE;
+ else
+ {
+ gScriptResult = 0xFF;
+ DrawMultichoiceMenu(left, top, gMultichoiceLists[var3].count, gMultichoiceLists[var3].list, var4, 0);
+ return TRUE;
+ }
+}
+
+bool8 sub_80B50B0(u8 left, u8 top, u8 var3, u8 var4, u8 var5)
+{
+ if(FuncIsActiveTask(sub_80B52B4) == 1)
+ return FALSE;
+ else
+ {
+ gScriptResult = 0xFF;
+ DrawMultichoiceMenu(left, top, gMultichoiceLists[var3].count, gMultichoiceLists[var3].list, var4, var5);
+ return TRUE;
+ }
+}
+
+u16 GetStringWidthInTilesForScriptMenu(u8 *str)
+{
+ // each tile on screen is 8x8, so it needs the number of tiles and not pixels, hence the division by 8.
+ return (GetStringWidthGivenWindowConfig((struct WindowConfig *)&gWindowConfig_81E6CE4, str) + 7) / 8;
+}
+
+void DrawMultichoiceMenu(u8 left, u8 top, u8 count, struct MenuAction *list, u8 var4, u8 cursorPos)
+{
+ u16 width = GetStringWidthInTilesForScriptMenu(list[0].text);
+ u16 newWidth;
+ u8 i;
+ u8 right;
+ u8 bottom;
+
+ for(i = 1; i < count; i++)
+ {
+ newWidth = GetStringWidthInTilesForScriptMenu(list[i].text);
+ if(width < newWidth)
+ width = newWidth;
+ }
+
+ right = width;
+ right = (right + left) + 1;
+
+ if(right > 29)
+ {
+ left = left + (29 - right);
+ right = 29;
+ }
+
+ bottom = top + (2 * count + 1);
+
+ MenuDrawTextWindow(left, top, right, bottom);
+ PrintMenuItems(left + 1, top + 1, count, list);
+ InitMenu(0, left + 1, top + 1, count, cursorPos, right - left - 1);
+ sub_80B5230(left, top, right, bottom, var4, count);
+}
+
+void sub_80B5230(u8 left, u8 top, u8 right, u8 bottom, u8 unkVar, u8 count)
+{
+ u8 taskId = CreateTask(sub_80B52B4, 80);
+
+ gTasks[taskId].data[0] = left;
+ gTasks[taskId].data[1] = top;
+ gTasks[taskId].data[2] = right;
+ gTasks[taskId].data[3] = bottom;
+ gTasks[taskId].data[4] = unkVar;
+
+ if(count > 3)
+ gTasks[taskId].data[5] = TRUE;
+ else
+ gTasks[taskId].data[5] = FALSE;
+}
+
+void sub_80B52B4(u8 taskId)
+{
+ s8 var;
+
+ if(!gPaletteFade.active)
+ {
+ if(!gTasks[taskId].data[5])
+ var = ProcessMenuInputNoWrap();
+ else
+ var = ProcessMenuInput();
+
+ if(var != -2)
+ {
+ if(var == -1)
+ {
+ if(!gTasks[taskId].data[4])
+ {
+ PlaySE(5);
+ gScriptResult = 127;
+ }
+ else
+ {
+ return;
+ }
+ }
+ else
+ {
+ gScriptResult = var;
+ }
+ sub_8072DEC();
+ MenuZeroFillWindowRect(gTasks[taskId].data[0], gTasks[taskId].data[1], gTasks[taskId].data[2], gTasks[taskId].data[3]);
+ DestroyTask(taskId);
+ EnableBothScriptContexts();
+ }
+ }
+}
+
+bool8 Multichoice(u8 var1, u8 var2, u8 var3, u8 var4)
+{
+ if(FuncIsActiveTask(sub_80B52B4) == 1)
+ return FALSE;
+ else
+ {
+ gScriptResult = 0xFF;
+ sub_80B53B4(var1, var2, gMultichoiceLists[var3].count, gMultichoiceLists[var3].list, var4);
+ return TRUE;
+ }
+}
+
+void sub_80B53B4(u8 left, u8 top, u8 count, struct MenuAction *list, u8 var4)
+{
+ u16 width = GetStringWidthInTilesForScriptMenu(list[0].text);
+ u16 newWidth;
+ u8 i;
+ u8 right;
+ u8 bottom;
+
+ for(i = 1; i < count; i++)
+ {
+ newWidth = GetStringWidthInTilesForScriptMenu(list[i].text);
+ if(width < newWidth)
+ width = newWidth;
+ }
+
+ right = width;
+ right = (right + left) + 2;
+ bottom = top + (2 * count + 1);
+
+ PrintMenuItems(left, top, count, list);
+ InitMenu(0, left, top, count, 0, right - left - 1);
+ sub_80B5230(left, top, right, bottom, var4, count);
+}
+
+bool8 yes_no_box(u8 var1, u8 var2)
+{
+ u8 taskId;
+
+ if(FuncIsActiveTask(task_yes_no_maybe) == 1)
+ return FALSE;
+ else
+ {
+ gScriptResult = 0xFF;
+ DisplayYesNoMenu(var1, var2, 1);
+ taskId = CreateTask(task_yes_no_maybe, 0x50);
+ gTasks[taskId].data[0] = var1;
+ gTasks[taskId].data[1] = var2;
+ return TRUE;
+ }
+}
+
+// unused
+bool8 IsScriptActive(void)
+{
+ if(gScriptResult == 0xFF)
+ return FALSE;
+ else
+ return TRUE;
+}
+
+void task_yes_no_maybe(u8 taskId)
+{
+ u8 left, top;
+
+ if (gTasks[taskId].data[2] < 5)
+ {
+ gTasks[taskId].data[2]++;
+ return;
+ }
+
+ switch (ProcessMenuInputNoWrap())
+ {
+ case -2:
+ return;
+ case -1:
+ case 1:
+ PlaySE(5);
+ gScriptResult = 0;
+ break;
+ case 0:
+ gScriptResult = 1;
+ break;
+ }
+
+ left = gTasks[taskId].data[0];
+ top = gTasks[taskId].data[1];
+
+ MenuZeroFillWindowRect(left, top, left + 6, top + 5);
+ DestroyTask(taskId);
+ EnableBothScriptContexts();
+}
+
+bool8 sub_80B5578(u8 left, u8 top, u8 multichoiceId, u8 a4, u8 columnCount)
+{
+ u8 bottom = 0;
+
+ if (FuncIsActiveTask(sub_80B5684) == TRUE)
+ {
+ return FALSE;
+ }
+ else
+ {
+ u8 taskId;
+ u8 width;
+
+ gScriptResult = 0xFF;
+
+ sub_807274C(left, top, gMultichoiceLists[multichoiceId].count, 0, gMultichoiceLists[multichoiceId].list, columnCount, 0);
+
+ taskId = CreateTask(sub_80B5684, 80);
+
+ if (!((gMultichoiceLists[multichoiceId].count >> 1) < columnCount || (gMultichoiceLists[multichoiceId].count & 1))
+ || columnCount == 1 || gMultichoiceLists[multichoiceId].count == columnCount)
+ {
+ bottom = (2 * (gMultichoiceLists[multichoiceId].count / columnCount)) + 1 + top;
+ }
+ else
+ {
+ bottom = (2 * (gMultichoiceLists[multichoiceId].count / columnCount)) + 3 + top;
+ }
+
+ width = sub_807288C(columnCount);
+ gTasks[taskId].data[0] = left;
+ gTasks[taskId].data[1] = top;
+ gTasks[taskId].data[2] = width + left + 2;
+ gTasks[taskId].data[3] = bottom;
+ gTasks[taskId].data[4] = a4;
+ return TRUE;
+ }
+}
+
+void sub_80B5684(u8 taskId)
+{
+ s8 var = sub_80727CC();
+
+ if (var != -2)
+ {
+ if (var == -1)
+ {
+ if (!gTasks[taskId].data[4])
+ {
+ PlaySE(5);
+ gScriptResult = 127;
+ }
+ else
+ {
+ return;
+ }
+ }
+ else
+ {
+ gScriptResult = var;
+ }
+ sub_8072DEC();
+ MenuZeroFillWindowRect(gTasks[taskId].data[0], gTasks[taskId].data[1], gTasks[taskId].data[2], gTasks[taskId].data[3]);
+ DestroyTask(taskId);
+ EnableBothScriptContexts();
+ }
+}
+
+bool8 TryCreatePCMenu(void)
+{
+ if(FuncIsActiveTask(sub_80B52B4) == 1)
+ return FALSE;
+ else
+ {
+ gScriptResult = 0xFF;
+ CreatePCMenu();
+ return TRUE;
+ }
+}
+
+void CreatePCMenu(void)
+{
+ u16 playersPCWidth = GetStringWidthInTilesForScriptMenu(gPCText_PlayersPC);
+ u8 width;
+ u8 numChoices;
+
+ if(playersPCWidth > GetStringWidthInTilesForScriptMenu(gPCText_SomeonesPC))
+ width = playersPCWidth;
+ else
+ width = 8;
+
+ if(FlagGet(SYS_GAME_CLEAR)) // player has cleared game?
+ {
+ numChoices = 4;
+ MenuDrawTextWindow(0, 0, width + 2, 9);
+ MenuPrint(gPCText_HallOfFame, 1, 5);
+ MenuPrint(gPCText_LogOff, 1, 7);
+ }
+ else
+ {
+ numChoices = 3;
+ MenuDrawTextWindow(0, 0, width + 2, 7);
+ MenuPrint(gPCText_LogOff, 1, 5);
+ }
+
+ if(FlagGet(SYS_PC_LANETTE)) // player met lanette?
+ MenuPrint(gPCText_LanettesPC, 1, 1);
+ else
+ MenuPrint(gPCText_SomeonesPC, 1, 1);
+
+ MenuPrint(gPCText_PlayersPC, 1, 3);
+ InitMenu(0, 1, 1, numChoices, 0, width + 1);
+ sub_80B5230(0, 0, width + 2, 2 * numChoices + 1, 0, numChoices);
+}
+
+void sub_80B5838(void)
+{
+ MenuDisplayMessageBox();
+ MenuPrint(gPCText_WhichPCShouldBeAccessed, 2, 15);
+}
+
+void task_picbox(u8 taskId)
+{
+ struct Task *task = &gTasks[taskId];
+
+ switch(task->data[0])
+ {
+ case 0:
+ task->data[0]++;
+ break;
+ case 1:
+ break;
+ case 2:
+ FreeResourcesAndDestroySprite(&gSprites[task->data[2]]);
+ task->data[0]++;
+ break;
+ case 3:
+ MenuZeroFillWindowRect(task->data[3], task->data[4], task->data[3] + 9, task->data[4] + 10);
+ DestroyTask(taskId);
+ break;
+ }
+}
+
+bool8 sub_80B58C4(u16 var1, u8 var2, u8 var3)
+{
+ u8 taskId;
+ u8 var;
+
+ if(FindTaskIdByFunc(task_picbox) != 0xFF)
+ return FALSE;
+ else
+ {
+ MenuDrawTextWindow(var2, var3, var2 + 9, var3 + 10);
+ taskId = CreateTask(task_picbox, 0x50);
+ gTasks[taskId].data[0] = 0;
+ gTasks[taskId].data[1] = var1;
+ var = CreateMonSprite_PicBox(var1, var2 * 8 + 40, var3 * 8 + 40, 0);
+ gTasks[taskId].data[2] = var;
+ gTasks[taskId].data[3] = var2;
+ gTasks[taskId].data[4] = var3;
+ gSprites[var].callback = SpriteCallbackDummy;
+ gSprites[var].oam.priority = 0;
+ return TRUE;
+ }
+}
+
+void *picbox_close(void)
+{
+ u8 taskId = FindTaskIdByFunc(task_picbox);
+
+ if(taskId == 0xFF)
+ return NULL;
+
+ gTasks[taskId].data[0]++;
+ return (void *)sub_80B59AC;
+}
+
+bool8 sub_80B59AC(void)
+{
+ if(FindTaskIdByFunc(task_picbox) == 0xFF)
+ return TRUE;
+ else
+ return FALSE;
+}
diff --git a/src/sound.c b/src/sound.c
index 49ab78cc7..c244c5cbe 100644
--- a/src/sound.c
+++ b/src/sound.c
@@ -1,8 +1,11 @@
#include "global.h"
+#include "sound.h"
+#include "asm.h"
#include "gba/m4a_internal.h"
#include "task.h"
-#include "sound.h"
#include "songs.h"
+#include "m4a.h"
+#include "battle.h"
struct Fanfare
{
@@ -10,9 +13,10 @@ struct Fanfare
u16 duration;
};
-extern u32 SpeciesToCryId(u32);
+// Hack: different prototype than definition
+u32 SpeciesToCryId(u32);
-extern u16 gUnknown_020239F8;
+extern u16 gBattleTypeFlags;
extern struct MusicPlayerInfo *gMPlay_PokemonCry;
extern u8 gPokemonCryBGMDuckingCounter;
@@ -28,8 +32,6 @@ extern struct MusicPlayerInfo gMPlay_SE1;
extern struct MusicPlayerInfo gMPlay_SE2;
extern struct MusicPlayerInfo gMPlay_SE3;
-extern struct Fanfare gFanfares[];
-
extern struct ToneData voicegroup_8452590[];
extern struct ToneData voicegroup_8452B90[];
extern struct ToneData voicegroup_8453190[];
@@ -40,6 +42,22 @@ extern struct ToneData voicegroup_8453DC0[];
extern struct ToneData voicegroup_84543C0[];
extern struct ToneData voicegroup_84549C0[];
+static const struct Fanfare sFanfares[] =
+{
+ { BGM_FANFA1, 80 },
+ { BGM_FANFA4, 160 },
+ { BGM_FANFA5, 220 },
+ { BGM_ME_WAZA, 220 },
+ { BGM_ME_ASA, 160 },
+ { BGM_ME_BACHI, 340 },
+ { BGM_ME_WASURE, 180 },
+ { BGM_ME_KINOMI, 120 },
+ { BGM_ME_TAMA, 710 },
+ { BGM_ME_B_BIG, 250 },
+ { BGM_ME_B_SMALL, 150 },
+ { BGM_ME_ZANNEN, 160 },
+};
+
static void Task_Fanfare(u8 taskId);
static void CreateFanfareTask(void);
static void PlayCryInternal(u16 species, s8 pan, s8 volume, u8 priority, u8 mode);
@@ -170,14 +188,10 @@ bool8 IsNotWaitingForBGMStop(void)
void PlayFanfareByFanfareNum(u8 fanfareNum)
{
- struct Fanfare *fanfares;
- struct Fanfare *fanfare;
u16 songNum;
m4aMPlayStop(&gMPlay_BGM);
- fanfares = gFanfares;
- fanfare = &fanfares[fanfareNum];
- songNum = fanfare->songNum;
- sFanfareCounter = fanfare->duration;
+ songNum = sFanfares[fanfareNum].songNum;
+ sFanfareCounter = sFanfares[fanfareNum].duration;
m4aSongNumStart(songNum);
}
@@ -201,7 +215,7 @@ bool8 WaitFanfare(bool8 stop)
void StopFanfareByFanfareNum(u8 fanfareNum)
{
- m4aSongNumStop(gFanfares[fanfareNum].songNum);
+ m4aSongNumStop(sFanfares[fanfareNum].songNum);
}
void PlayFanfare(u16 songNum)
@@ -209,8 +223,7 @@ void PlayFanfare(u16 songNum)
s32 i;
for (i = 0; (u32)i < 12; i++)
{
- struct Fanfare *fanfare = &gFanfares[i];
- if (fanfare->songNum == songNum)
+ if (sFanfares[i].songNum == songNum)
{
PlayFanfareByFanfareNum(i);
CreateFanfareTask();
@@ -326,7 +339,7 @@ void PlayCry4(u16 species, s8 pan, u8 mode)
}
else
{
- if (!(gUnknown_020239F8 & 0x40))
+ if (!(gBattleTypeFlags & BATTLE_TYPE_40))
m4aMPlayVolumeControl(&gMPlay_BGM, 0xFFFF, 85);
PlayCryInternal(species, pan, 125, 10, mode);
}
diff --git a/src/sprite.c b/src/sprite.c
index 12c62145e..df101b61f 100644
--- a/src/sprite.c
+++ b/src/sprite.c
@@ -1,6 +1,8 @@
#include "global.h"
-#include "main.h"
#include "sprite.h"
+#include "main.h"
+#include "palette.h"
+#include "menu_cursor.h"
#define MAX_SPRITE_COPY_REQUESTS 64
@@ -8,12 +10,8 @@
#define SET_SPRITE_TILE_RANGE(index, start, count) \
{ \
- u16 *rangeStarts; \
- u16 *rangeCounts; \
- rangeStarts = sSpriteTileRanges; \
- rangeStarts[index * 2] = start; \
- rangeCounts = sSpriteTileRanges + 1; \
- rangeCounts[index * 2] = count; \
+ sSpriteTileRanges[index * 2] = start; \
+ (sSpriteTileRanges + 1)[index * 2] = count; \
}
#define ALLOC_SPRITE_TILE(n) \
@@ -49,23 +47,18 @@ struct OamDimensions
s8 height;
};
-void LoadPalette(u16 *, u16, u32);
-void sub_814A590(void);
-
static void UpdateOamCoords(void);
static void BuildSpritePriorities(void);
static void SortSprites(void);
static void CopyMatricesToOamBuffer(void);
static void AddSpritesToOamBuffer(void);
-static u8 CreateSpriteAt(u8 index, struct SpriteTemplate *template, s16 x, s16 y, u8 subpriority);
+static u8 CreateSpriteAt(u8 index, const struct SpriteTemplate *template, s16 x, s16 y, u8 subpriority);
static void ClearSpriteCopyRequests(void);
static void ResetOamMatrices(void);
static void ResetSprite(struct Sprite *sprite);
static s16 AllocSpriteTiles(u16 tileCount);
-static u8 SpriteTileAllocBitmapOp(u16 bit, u8 op);
+u8 SpriteTileAllocBitmapOp(u16 bit, u8 op);
static void RequestSpriteFrameImageCopy(u16 index, u16 tileNum, struct SpriteFrameImage *images);
-static void CopyFromSprites(u8 *dest);
-static void CopyToSprites(u8 *src);
static void ResetAllSprites(void);
static void BeginAnim(struct Sprite *sprite);
static void ContinueAnim(struct Sprite *sprite);
@@ -530,7 +523,7 @@ static void AddSpritesToOamBuffer(void)
}
}
-u8 CreateSprite(struct SpriteTemplate *template, s16 x, s16 y, u8 subpriority)
+u8 CreateSprite(const struct SpriteTemplate *template, s16 x, s16 y, u8 subpriority)
{
u8 i;
@@ -541,7 +534,7 @@ u8 CreateSprite(struct SpriteTemplate *template, s16 x, s16 y, u8 subpriority)
return MAX_SPRITES;
}
-u8 CreateSpriteAtEnd(struct SpriteTemplate *template, u16 x, u16 y, u8 subpriority)
+u8 CreateSpriteAtEnd(const struct SpriteTemplate *template, u16 x, u16 y, u8 subpriority)
{
s16 i;
@@ -554,7 +547,7 @@ u8 CreateSpriteAtEnd(struct SpriteTemplate *template, u16 x, u16 y, u8 subpriori
u8 CreateInvisibleSprite(void (*callback)(struct Sprite *))
{
- u8 index = CreateSprite((struct SpriteTemplate *)&gDummySpriteTemplate, 0, 0, 31);
+ u8 index = CreateSprite(&gDummySpriteTemplate, 0, 0, 31);
if (index == MAX_SPRITES)
{
@@ -568,7 +561,7 @@ u8 CreateInvisibleSprite(void (*callback)(struct Sprite *))
}
}
-static u8 CreateSpriteAt(u8 index, struct SpriteTemplate *template, s16 x, s16 y, u8 subpriority)
+static u8 CreateSpriteAt(u8 index, const struct SpriteTemplate *template, s16 x, s16 y, u8 subpriority)
{
struct Sprite *sprite = &gSprites[index];
@@ -787,7 +780,7 @@ static s16 AllocSpriteTiles(u16 tileCount)
return start;
}
-static u8 SpriteTileAllocBitmapOp(u16 bit, u8 op)
+u8 SpriteTileAllocBitmapOp(u16 bit, u8 op)
{
u8 index = bit / 8;
u8 shift = bit % 8;
@@ -856,7 +849,7 @@ void RequestSpriteCopy(u8 *src, u8 *dest, u16 size)
}
}
-static void CopyFromSprites(u8 *dest)
+void CopyFromSprites(u8 *dest)
{
u32 i;
u8 *src = (u8 *)gSprites;
@@ -868,7 +861,7 @@ static void CopyFromSprites(u8 *dest)
}
}
-static void CopyToSprites(u8 *src)
+void CopyToSprites(u8 *src)
{
u32 i;
u8 *dest = (u8 *)gSprites;
@@ -1635,7 +1628,7 @@ void FreeAllSpritePalettes(void)
sSpritePaletteTags[i] = 0xFFFF;
}
-u8 LoadSpritePalette(struct SpritePalette *palette)
+u8 LoadSpritePalette(const struct SpritePalette *palette)
{
u8 index = IndexOfSpritePaletteTag(palette->tag);
@@ -1656,7 +1649,7 @@ u8 LoadSpritePalette(struct SpritePalette *palette)
}
}
-void LoadSpritePalettes(struct SpritePalette *palettes)
+void LoadSpritePalettes(const struct SpritePalette *palettes)
{
u8 i;
for (i = 0; palettes[i].data != NULL; i++)
diff --git a/src/start_menu.c b/src/start_menu.c
index c8e77af66..31ba31766 100644
--- a/src/start_menu.c
+++ b/src/start_menu.c
@@ -1,47 +1,27 @@
#include "global.h"
+#include "start_menu.h"
+#include "asm.h"
+#include "field_player_avatar.h"
+#include "event_data.h"
+#include "load_save.h"
#include "main.h"
+#include "map_obj_lock.h"
#include "menu.h"
+#include "option_menu.h"
#include "palette.h"
+#include "pokedex.h"
+#include "rom4.h"
+#include "safari_zone.h"
+#include "save.h"
+#include "save_menu_util.h"
#include "script.h"
#include "songs.h"
#include "sound.h"
#include "sprite.h"
#include "string_util.h"
#include "task.h"
-#include "flag.h"
-
-//External functions
-extern void sub_8064E2C(void);
-extern void sub_8047A1C(void);
-extern u8 sub_8125E6C(void);
-extern void sub_8047A34(void);
-extern void sub_8125E2C(void);
-extern void remove_some_task(void);
-extern void dp12_8087EA4(void);
-extern void sav12_xor_increment(u8 index);
-extern bool8 sub_8125D44(u8); //Saving related
-extern void HandleDrawSaveWindowInfo(u8, u8);
-extern void sub_80946C8(u8, u8);
-extern void save_serialize_map(void);
-extern void PlayRainSoundEffect(void);
-extern void sub_8093130(u8, void (*)(void));
-extern void sub_805469C(void);
-extern void SafariZoneRetirePrompt(void);
-extern void CB2_InitOptionMenu(void);
-extern void sub_8093110(void (*)(void));
-extern void sub_80EBA5C(void);
-extern void sub_80A53F8(void);
-extern void sub_8089A70(void);
-extern void CB2_InitPokedex(void);
-extern u16 GetNationalPokedexCount(u8);
-extern void fade_screen(u8, u8);
-extern bool32 is_c1_link_related_active();
-extern void sub_80594C0(void);
-extern void sub_80597F4(void);
-extern void player_bitmagic(void);
-extern bool32 GetSafariZoneFlag(void);
-extern u8 *sub_8072C44(u8 *, s32, u8, u8);
-extern bool32 is_c1_link_related_active(void);
+#include "trainer_card.h"
+#include "weather.h"
//Menu actions
enum {
@@ -57,11 +37,6 @@ enum {
MENU_ACTION_PLAYER_LINK
};
-struct MenuItem {
- u8 *text;
- u8 (*callback)(void);
-};
-
static u8 (*saveDialogCallback)(void);
static u8 saveDialogTimer; //Number of frames to keep the window on screen after save was completed
static bool8 savingComplete;
@@ -71,7 +46,6 @@ extern u16 gSaveFileStatus;
extern u16 gScriptResult;
extern u8 (*gCallback_03004AE8)(void);
extern u8 gUnknown_03004860;
-extern struct MenuItem gStartMenuItems[];
extern u8 gNumSafariBalls;
EWRAM_DATA static u8 sStartMenuCursorPos = 0;
@@ -87,25 +61,41 @@ extern u8 gSaveText_ThereIsAlreadyAFile[];
extern u8 gSaveText_ThereIsADifferentFile[];
extern u8 gSaveText_WouldYouLikeToSave[];
extern u8 gOtherText_SafariStock[];
-
-//Public functions
-void CreateStartMenuTask(void (*func)(u8));
-void sub_80712B4(u8 taskId);
-void sub_8071310(void);
-u8 StartMenu_PokedexCallback(void);
-u8 StartMenu_PokemonCallback(void);
-u8 StartMenu_BagCallback(void);
-u8 StartMenu_PokenavCallback(void);
-u8 StartMenu_PlayerCallback(void);
-u8 StartMenu_SaveCallback(void);
-u8 StartMenu_OptionCallback(void);
-u8 StartMenu_ExitCallback(void);
-u8 StartMenu_RetireCallback(void);
-u8 StartMenu_PlayerLinkCallback(void);
-void InitSaveDialog(void);
-void sub_8071B28(void);
-void sub_8071C20(void);
-void AppendToList(u8 *list, u8 *pindex, u32 value);
+extern u8 SystemText_Pokedex[];
+extern u8 SystemText_Pokemon[];
+extern u8 SystemText_BAG[];
+extern u8 SystemText_Pokenav[];
+extern u8 SystemText_Player[];
+extern u8 SystemText_Save[];
+extern u8 SystemText_Option[];
+extern u8 SystemText_Exit[];
+extern u8 SystemText_Retire[];
+extern u8 SystemText_Player[];
+
+static u8 StartMenu_PokedexCallback(void);
+static u8 StartMenu_PokemonCallback(void);
+static u8 StartMenu_BagCallback(void);
+static u8 StartMenu_PokenavCallback(void);
+static u8 StartMenu_PlayerCallback(void);
+static u8 StartMenu_SaveCallback(void);
+static u8 StartMenu_OptionCallback(void);
+static u8 StartMenu_ExitCallback(void);
+static u8 StartMenu_RetireCallback(void);
+static u8 StartMenu_PlayerLinkCallback(void);
+
+static const struct MenuAction sStartMenuItems[] =
+{
+ { SystemText_Pokedex, StartMenu_PokedexCallback },
+ { SystemText_Pokemon, StartMenu_PokemonCallback },
+ { SystemText_BAG, StartMenu_BagCallback },
+ { SystemText_Pokenav, StartMenu_PokenavCallback },
+ { SystemText_Player, StartMenu_PlayerCallback },
+ { SystemText_Save, StartMenu_SaveCallback },
+ { SystemText_Option, StartMenu_OptionCallback },
+ { SystemText_Exit, StartMenu_ExitCallback },
+ { SystemText_Retire, StartMenu_RetireCallback },
+ { SystemText_Player, StartMenu_PlayerLinkCallback },
+};
//Private functions
static void BuildStartMenuActions(void);
@@ -116,7 +106,6 @@ static void BuildStartMenuActions_Link(void);
static void DisplaySafariBallsWindow(void);
static bool32 PrintStartMenuItemsMultistep(s16 *a, u32 b);
static bool32 InitStartMenuMultistep(s16 *a, s16 *b);
-static void sub_8071230(void);
static void Task_StartMenu(u8 taskId);
static u8 StartMenu_InputProcessCallback(void);
static u8 SaveCallback1(void);
@@ -220,7 +209,7 @@ static bool32 PrintStartMenuItemsMultistep(s16 *index, u32 n)
do
{
- MenuPrint(gStartMenuItems[sCurrentStartMenuActions[_index]].text, 23, 2 + _index * 2);
+ MenuPrint(sStartMenuItems[sCurrentStartMenuActions[_index]].text, 23, 2 + _index * 2);
_index++;
if(_index >= sNumStartMenuActions)
{
@@ -320,7 +309,7 @@ void sub_8071310(void)
{
if(!is_c1_link_related_active())
{
- player_bitmagic();
+ FreezeMapObjects();
sub_80594C0();
sub_80597F4();
}
@@ -343,12 +332,12 @@ static u8 StartMenu_InputProcessCallback(void)
if(gMain.newKeys & A_BUTTON)
{
PlaySE(SE_SELECT);
- if(gStartMenuItems[sCurrentStartMenuActions[sStartMenuCursorPos]].callback == StartMenu_PokedexCallback)
+ if(sStartMenuItems[sCurrentStartMenuActions[sStartMenuCursorPos]].func == StartMenu_PokedexCallback)
{
if(GetNationalPokedexCount(0) == 0)
return 0;
}
- gCallback_03004AE8 = gStartMenuItems[sCurrentStartMenuActions[sStartMenuCursorPos]].callback;
+ gCallback_03004AE8 = sStartMenuItems[sCurrentStartMenuActions[sStartMenuCursorPos]].func;
if(gCallback_03004AE8 != StartMenu_SaveCallback &&
gCallback_03004AE8 != StartMenu_ExitCallback &&
gCallback_03004AE8 != StartMenu_RetireCallback)
@@ -357,18 +346,18 @@ static u8 StartMenu_InputProcessCallback(void)
}
if(gMain.newKeys & (START_BUTTON | B_BUTTON))
{
- sub_8071C20();
+ CloseMenu();
return 1;
}
return 0;
}
//When player selects POKEDEX
-u8 StartMenu_PokedexCallback(void)
+static u8 StartMenu_PokedexCallback(void)
{
if(!gPaletteFade.active)
{
- sav12_xor_increment(0x29);
+ IncrementGameStat(0x29);
PlayRainSoundEffect();
SetMainCallback2(CB2_InitPokedex);
return 1;
@@ -377,7 +366,7 @@ u8 StartMenu_PokedexCallback(void)
}
//When player selects POKEMON
-u8 StartMenu_PokemonCallback(void)
+static u8 StartMenu_PokemonCallback(void)
{
if(!gPaletteFade.active)
{
@@ -389,7 +378,7 @@ u8 StartMenu_PokemonCallback(void)
}
//When player selects BAG
-u8 StartMenu_BagCallback(void)
+static u8 StartMenu_BagCallback(void)
{
if(!gPaletteFade.active)
{
@@ -401,7 +390,7 @@ u8 StartMenu_BagCallback(void)
}
//When player selects POKENAV
-u8 StartMenu_PokenavCallback(void)
+static u8 StartMenu_PokenavCallback(void)
{
if(!gPaletteFade.active)
{
@@ -413,7 +402,7 @@ u8 StartMenu_PokenavCallback(void)
}
//When player selects his/her name
-u8 StartMenu_PlayerCallback(void)
+static u8 StartMenu_PlayerCallback(void)
{
if(!gPaletteFade.active)
{
@@ -425,7 +414,7 @@ u8 StartMenu_PlayerCallback(void)
}
//When player selects SAVE
-u8 StartMenu_SaveCallback(void)
+static u8 StartMenu_SaveCallback(void)
{
sub_8072DEC();
gCallback_03004AE8 = SaveCallback1;
@@ -433,35 +422,35 @@ u8 StartMenu_SaveCallback(void)
}
//When player selects OPTION
-u8 StartMenu_OptionCallback(void)
+static u8 StartMenu_OptionCallback(void)
{
if(!gPaletteFade.active)
{
PlayRainSoundEffect();
SetMainCallback2(CB2_InitOptionMenu);
- gMain.field_8 = sub_805469C;
+ gMain.savedCallback = sub_805469C;
return 1;
}
return 0;
}
//When player selects EXIT
-u8 StartMenu_ExitCallback(void)
+static u8 StartMenu_ExitCallback(void)
{
- sub_8071C20();
+ CloseMenu();
return 1;
}
//When player selects RETIRE
-u8 StartMenu_RetireCallback(void)
+static u8 StartMenu_RetireCallback(void)
{
- sub_8071C20();
+ CloseMenu();
SafariZoneRetirePrompt();
return 1;
}
//When player selects their name in multiplayer mode
-u8 StartMenu_PlayerLinkCallback(void)
+static u8 StartMenu_PlayerLinkCallback(void)
{
if(!gPaletteFade.active)
{
@@ -690,7 +679,7 @@ static u8 SaveDialogCB_DoSave(void)
{
u8 a;
- sav12_xor_increment(0);
+ IncrementGameStat(0);
if(gUnknown_020297EC == TRUE)
{
a = sub_8125D44(4);
@@ -851,14 +840,14 @@ static void Task_8071B64(u8 taskId)
(*step)++;
break;
case 1:
- sub_8047A1C();
+ SetSecretBase2Field_9_AndHideBG();
sub_8125E2C();
(*step)++;
break;
case 2:
if(!sub_8125E6C())
break;
- sub_8047A34();
+ ClearSecretBase2Field_9_2();
(*step)++;
break;
case 3:
@@ -866,24 +855,9 @@ static void Task_8071B64(u8 taskId)
(*step)++;
break;
case 4:
- SetMainCallback2(gMain.field_8);
+ SetMainCallback2(gMain.savedCallback);
DestroyTask(taskId);
break;
}
}
}
-
-void sub_8071C20(void)
-{
- PlaySE(SE_SELECT);
- MenuZeroFillScreen();
- sub_8064E2C();
- ScriptContext2_Disable();
- sub_8072DEC();
-}
-
-void AppendToList(u8 *list, u8 *pindex, u32 value)
-{
- list[*pindex] = value;
- (*pindex)++;
-}
diff --git a/src/starter_choose.c b/src/starter_choose.c
index a80401e8b..68e644353 100644
--- a/src/starter_choose.c
+++ b/src/starter_choose.c
@@ -1,22 +1,17 @@
#include "global.h"
+#include "starter_choose.h"
+#include "asm.h"
#include "main.h"
#include "menu.h"
#include "palette.h"
-#include "pokemon.h"
+#include "pokedex.h"
#include "songs.h"
#include "sound.h"
-#include "sprite.h"
#include "string_util.h"
#include "task.h"
-#include "text.h"
#include "trig.h"
-
-//Functions that need to be put in headers
-void remove_some_task(void);
-void LoadCompressedObjectPic(void *);
-void LoadCompressedObjectPalette(const struct SpritePalette *);
-u16 SpeciesToNationalPokedexNum(u16);
-void DecompressPicFromTable_2(const struct SpriteSheet *, u8, u8, void *, void *, u32);
+#include "decompress.h"
+#include "sprite.h"
struct MonCoords
{
@@ -25,12 +20,12 @@ struct MonCoords
extern void * const gUnknown_081FAF4C[];
extern const u8 gStarterChoose_PokeballCoords[][2];
-extern u8 gUnknown_083F66F0[];
+extern u8 gBirchHelpGfx[];
extern u8 gBirchBagTilemap[];
extern u8 gBirchGrassTilemap[];
-extern u8 gUnknown_083F7794[];
-extern u8 gUnknown_083F77A4[];
-extern u8 gUnknown_083F62EC[];
+extern struct SpriteSheet gUnknown_083F7794;
+extern struct SpriteSheet gUnknown_083F77A4;
+extern u8 gBirchBagGrassPal[];
extern const u8 gStarterChoose_LabelCoords[][2];
extern u16 gStarterMons[];
extern union AffineAnimCmd *gUnknown_083F778C[];
@@ -50,7 +45,6 @@ extern struct SpritePalette gUnknown_083F77B4[];
extern struct SpriteTemplate gSpriteTemplate_83F77FC;
extern struct SpriteTemplate gUnknown_02024E8C;
-u16 GetStarterPokemon(u16);
static void MainCallback2(void);
static void Task_StarterChoose1(u8 taskId);
static void Task_StarterChoose2(u8 taskId);
@@ -59,10 +53,8 @@ static void Task_StarterChoose4(u8 taskId);
static void Task_StarterChoose5(u8 taskId);
static void Task_StarterChoose6(u8 taskId);
-extern u8 *GetPokemonCategory(u16);
static void CreateStarterPokemonLabel(u8, u8);
static u8 CreatePokemonFrontSprite(u16, u8, u8);
-void StarterPokemonSpriteAnimCallback(struct Sprite *);
//Position of the sprite of the selected starter Pokemon
#define STARTER_PKMN_POS_X 120
@@ -116,7 +108,7 @@ void CB2_ChooseStarter(void)
DmaFill32(3, 0, OAM, OAM_SIZE);
DmaFill16(3, 0, PLTT, PLTT_SIZE);
- LZ77UnCompVram(&gUnknown_083F66F0, (void *)VRAM);
+ LZ77UnCompVram(&gBirchHelpGfx, (void *)VRAM);
LZ77UnCompVram(&gBirchBagTilemap, (void *)(VRAM + 0x3000));
LZ77UnCompVram(&gBirchGrassTilemap, (void *)(VRAM + 0x3800));
remove_some_task();
@@ -124,9 +116,9 @@ void CB2_ChooseStarter(void)
ResetSpriteData();
ResetPaletteFade();
FreeAllSpritePalettes();
- LoadPalette(gUnknown_083F62EC, 0, 0x40);
- LoadCompressedObjectPic(gUnknown_083F7794);
- LoadCompressedObjectPic(gUnknown_083F77A4);
+ LoadPalette(gBirchBagGrassPal, 0, 0x40);
+ LoadCompressedObjectPic(&gUnknown_083F7794);
+ LoadCompressedObjectPic(&gUnknown_083F77A4);
LoadSpritePalettes(gUnknown_083F77B4);
SetUpWindowConfig(&gWindowConfig_81E6C3C);
InitMenuWindow(&gWindowConfig_81E6CE4);
@@ -274,7 +266,7 @@ static void Task_StarterChoose5(u8 taskId)
case 0: //YES
//Return the starter choice and exit.
gScriptResult = gTasks[taskId].data[TD_STARTERSELECTION];
- SetMainCallback2(gMain.field_8);
+ SetMainCallback2(gMain.savedCallback);
break;
case 1: //NO
case -1: //B button
diff --git a/src/task.c b/src/task.c
index 4545c0168..e79929c63 100644
--- a/src/task.c
+++ b/src/task.c
@@ -49,7 +49,6 @@ u8 CreateTask(TaskFunc func, u8 priority)
return 0;
}
-#ifdef NONMATCHING
static void InsertTask(u8 newTaskId)
{
u8 taskId = FindFirstActiveTask();
@@ -62,7 +61,7 @@ static void InsertTask(u8 newTaskId)
return;
}
- for (;;)
+ while (1)
{
if (gTasks[newTaskId].priority < gTasks[taskId].priority)
{
@@ -70,112 +69,22 @@ static void InsertTask(u8 newTaskId)
// so we insert the new task before it.
gTasks[newTaskId].prev = gTasks[taskId].prev;
gTasks[newTaskId].next = taskId;
-
if (gTasks[taskId].prev != HEAD_SENTINEL)
gTasks[gTasks[taskId].prev].next = newTaskId;
-
gTasks[taskId].prev = newTaskId;
return;
}
-
- if (gTasks[taskId].next != TAIL_SENTINEL)
- taskId = gTasks[taskId].next;
- else
- break;
+ if (gTasks[taskId].next == TAIL_SENTINEL)
+ {
+ // We've reached the end.
+ gTasks[newTaskId].prev = taskId;
+ gTasks[newTaskId].next = gTasks[taskId].next;
+ gTasks[taskId].next = newTaskId;
+ return;
+ }
+ taskId = gTasks[taskId].next;
}
-
- // We've reached the end.
- gTasks[newTaskId].prev = taskId;
- gTasks[newTaskId].next = gTasks[taskId].next;
- gTasks[taskId].next = newTaskId;
-}
-#else
-__attribute__((naked))
-static void InsertTask(u8 newTaskId)
-{
- asm("push {r4, r5, r6, r7, lr}\n\
- mov r7, r8\n\
- push {r7}\n\
- lsl r0, r0, #24\n\
- lsr r4, r0, #24\n\
- bl FindFirstActiveTask\n\
- lsl r0, r0, #24\n\
- lsr r1, r0, #24\n\
- cmp r1, #16\n\
- bne .LInsertTask_foundActiveTask\n\
- ldr r1, .LInsertTask_gTasks1\n\
- lsl r0, r4, #2\n\
- add r0, r0, r4\n\
- lsl r0, r0, #3\n\
- add r0, r0, r1\n\
- mov r1, #254\n\
- strb r1, [r0, #5]\n\
- mov r1, #255\n\
- strb r1, [r0, #6]\n\
- b .LInsertTask_done\n\
- .align 2, 0\n\
-.LInsertTask_gTasks1:\n\
- .word gTasks\n\
-.LInsertTask_foundActiveTask:\n\
- ldr r6, .LInsertTask_gTasks2\n\
- lsl r0, r4, #2\n\
- mov r12, r0\n\
- mov r8, r6\n\
- add r0, r0, r4\n\
- lsl r0, r0, #3\n\
- add r2, r0, r6\n\
-.LInsertTask_loop:\n\
- lsl r0, r1, #2\n\
- add r0, r0, r1\n\
- lsl r5, r0, #3\n\
- mov r7, r8\n\
- add r3, r5, r7\n\
- ldrb r0, [r2, #7]\n\
- ldrb r7, [r3, #7]\n\
- cmp r0, r7\n\
- bcs .LInsertTask_next\n\
- ldrb r0, [r3, #5]\n\
- strb r0, [r2, #5]\n\
- strb r1, [r2, #6]\n\
- ldrb r0, [r3, #5]\n\
- cmp r0, #254\n\
- beq .LInsertTask_insertAtHead\n\
- add r1, r0, #0\n\
- lsl r0, r1, #2\n\
- add r0, r0, r1\n\
- lsl r0, r0, #3\n\
- add r0, r0, r8\n\
- strb r4, [r0, #6]\n\
-.LInsertTask_insertAtHead:\n\
- strb r4, [r3, #5]\n\
- b .LInsertTask_done\n\
- .align 2, 0\n\
-.LInsertTask_gTasks2:\n\
- .word gTasks\n\
-.LInsertTask_next:\n\
- ldrb r0, [r3, #6]\n\
- cmp r0, #255\n\
- beq .LInsertTask_insertAtTail\n\
- add r1, r0, #0\n\
- b .LInsertTask_loop\n\
-.LInsertTask_insertAtTail:\n\
- mov r2, r12\n\
- add r0, r2, r4\n\
- lsl r0, r0, #3\n\
- add r0, r0, r6\n\
- strb r1, [r0, #5]\n\
- add r2, r5, r6\n\
- ldrb r1, [r2, #6]\n\
- strb r1, [r0, #6]\n\
- strb r4, [r2, #6]\n\
-.LInsertTask_done:\n\
- pop {r3}\n\
- mov r8, r3\n\
- pop {r4, r5, r6, r7}\n\
- pop {r0}\n\
- bx r0\n");
}
-#endif // NONMATCHING
void DestroyTask(u8 taskId)
{
diff --git a/src/text.c b/src/text.c
index 885fb7547..6089fdba8 100644
--- a/src/text.c
+++ b/src/text.c
@@ -5,12 +5,7 @@
#include "songs.h"
#include "palette.h"
#include "sound.h"
-
-enum
-{
- CHARSET_JAPANESE = 1,
- CHARSET_LATIN
-};
+#include "battle.h"
enum
{
@@ -184,8 +179,8 @@ EWRAM_DATA u8 gStringVar2[0x100] = {0};
EWRAM_DATA u8 gStringVar3[0x100] = {0};
EWRAM_DATA u8 gStringVar4[0x100] = {0};
-extern u16 gUnknown_020239F8;
-extern u8 gUnknown_0203869A;
+extern u16 gBattleTypeFlags;
+extern u8 gIsLinkContest;
extern u8 gTileBuffer[];
vu16 *const gBGControlRegs[] =
@@ -361,7 +356,7 @@ static const WriteGlyphTilemapFunc sWriteGlyphTilemapFuncs[] =
WriteGlyphTilemap_Font6,
};
-static const struct Window sDefaultWindow = { .charset = CHARSET_LATIN };
+static const struct Window sDefaultWindow = { .language = GAME_LANGUAGE };
typedef u8 (*ExtCtrlCodeFunc)(struct Window *);
@@ -770,7 +765,7 @@ const struct WindowConfig gWindowConfig_81E6DA8 =
(u16 *)BG_SCREEN_ADDR(11), // tilemap
};
-const struct WindowConfig gWindowConfig_81E6DC4 =
+const struct WindowConfig WindowConfig_TrainerCard_Back_Values =
{
0, // BG number
2, // BG character base block
@@ -791,7 +786,7 @@ const struct WindowConfig gWindowConfig_81E6DC4 =
(u16 *)BG_SCREEN_ADDR(30), // tilemap
};
-const struct WindowConfig gWindowConfig_81E6DE0 =
+const struct WindowConfig WindowConfig_TrainerCard_Back_Labels =
{
0, // BG number
2, // BG character base block
@@ -1918,14 +1913,14 @@ static void MultistepLoadFont_LoadGlyph(struct Window *win, u16 startOffset, u8
}
}
-static void EmptyFunc(void)
+void EmptyFunc(void)
{
}
-void InitWindowFromConfig(struct Window *win, struct WindowConfig *winConfig)
+void InitWindowFromConfig(struct Window *win, const struct WindowConfig *winConfig)
{
*win = sDefaultWindow;
- win->config = winConfig;
+ win->config = (struct WindowConfig *)winConfig;
win->textMode = winConfig->textMode;
win->spacing = winConfig->spacing;
win->fontNum = winConfig->fontNum;
@@ -1947,7 +1942,7 @@ void InitWindow(struct Window *win, const u8 *text, u16 tileDataStartOffset, u8
struct WindowConfig *winConfig = win->config;
win->textMode = winConfig->textMode;
win->fontNum = winConfig->fontNum;
- win->charset = CHARSET_LATIN;
+ win->language = GAME_LANGUAGE;
win->paletteNum = winConfig->paletteNum;
win->win_field_B = 0;
win->win_field_C = 0;
@@ -2045,7 +2040,7 @@ u8 sub_8002F44(struct Window *win)
static u8 sub_8002FA0(struct Window *win, const u8 *text)
{
u8 retVal;
- u8 savedCharset = win->charset;
+ u8 savedLanguage = win->language;
const u8 *savedText = win->text;
u16 savedTextIndex = win->textIndex;
win->text = text;
@@ -2055,7 +2050,7 @@ static u8 sub_8002FA0(struct Window *win, const u8 *text)
win->text = savedText;
win->textIndex = savedTextIndex;
win->state = WIN_STATE_NORMAL;
- win->charset = savedCharset;
+ win->language = savedLanguage;
return retVal;
}
@@ -2291,13 +2286,13 @@ static u8 ExtCtrlCode_Spacing(struct Window *win)
static u8 ExtCtrlCode_Japanese(struct Window *win)
{
- win->charset = CHARSET_JAPANESE;
+ win->language = LANGUAGE_JAPANESE;
return 2;
}
static u8 ExtCtrlCode_Latin(struct Window *win)
{
- win->charset = CHARSET_LATIN;
+ win->language = GAME_LANGUAGE;
return 2;
}
@@ -2596,7 +2591,7 @@ static void LoadFixedWidthGlyph(struct Window *win, u32 glyph, u8 *dest)
u8 *upperTile;
u8 *lowerTile;
- GetGlyphTilePointers(win->fontNum, win->charset, glyph, &upperTile, &lowerTile);
+ GetGlyphTilePointers(win->fontNum, win->language, glyph, &upperTile, &lowerTile);
switch (win->fontNum)
{
@@ -2627,17 +2622,17 @@ static void WriteGlyphTilemap(struct Window *win, u16 upperTileNum, u16 lowerTil
}
}
-static void GetGlyphTilePointers(u8 fontNum, u8 charset, u16 glyph, u8 **upperTilePtr, u8 **lowerTilePtr)
+static void GetGlyphTilePointers(u8 fontNum, u8 language, u16 glyph, u8 **upperTilePtr, u8 **lowerTilePtr)
{
u16 index;
const struct Font *font;
- if (charset == CHARSET_JAPANESE)
- charset = 0;
+ if (language == LANGUAGE_JAPANESE)
+ language = 0;
else
- charset = 7;
+ language = 7;
- font = &sFonts[charset + fontNum];
+ font = &sFonts[language + fontNum];
switch (font->type)
{
@@ -2912,12 +2907,10 @@ static bool8 PlayerCanInterruptWait(struct Window *win)
retVal = FALSE;
break;
case 3:
- retVal = FALSE;
- if (!gUnknown_0203869A)
- retVal = TRUE;
+ retVal = gIsLinkContest ? FALSE : TRUE;
break;
case 1:
- retVal &= ~(gUnknown_020239F8 >> 1);
+ retVal = (gBattleTypeFlags & BATTLE_TYPE_LINK) ? FALSE : TRUE;
break;
}
@@ -3137,7 +3130,7 @@ static void DrawDownArrow(struct Window *win)
{
u8 *upperTile;
u8 *lowerTile;
- GetGlyphTilePointers(win->fontNum, win->charset, 0, &upperTile, &lowerTile);
+ GetGlyphTilePointers(win->fontNum, win->language, 0, &upperTile, &lowerTile);
glyphTileInfo.width = 8 - glyphTileInfo.startPixel;
glyphTileInfo.src = upperTile;
glyphTileInfo.dest = (u32 *)(win->tileData + 32 * GetCursorTileNum(win, 1, 0));
@@ -3340,10 +3333,10 @@ static u8 GetGlyphWidth(struct Window *win, u32 glyph)
{
u8 width = 8;
-#if REVISION >= 1
- if (win->charset != CHARSET_JAPANESE)
+#ifdef BUGFIX_GLYPHWIDTH
+ if (win->language != LANGUAGE_JAPANESE)
#else
- if (win->charset == CHARSET_LATIN)
+ if (win->language == LANGUAGE_ENGLISH)
#endif
{
width = win->spacing;
@@ -3539,7 +3532,7 @@ u8 GetStringWidth(struct Window *win, const u8 *s)
{
u8 width = 0;
u8 savedFontNum = win->fontNum;
- u8 savedCharset = win->charset;
+ u8 savedCharset = win->language;
u8 savedSpacing = win->spacing;
s32 i = 0;
@@ -3552,9 +3545,9 @@ u8 GetStringWidth(struct Window *win, const u8 *s)
{
u8 temp;
i++;
- temp = win->charset;
+ temp = win->language;
width += GetStringWidth(win, GetExpandedPlaceholder(s[i]));
- win->charset = temp;
+ win->language = temp;
i++;
break;
}
@@ -3580,10 +3573,10 @@ u8 GetStringWidth(struct Window *win, const u8 *s)
win->spacing = s[i + 1];
break;
case 0x15:
- win->charset = 1;
+ win->language = LANGUAGE_JAPANESE;
break;
case 0x16:
- win->charset = 2;
+ win->language = GAME_LANGUAGE;
break;
}
@@ -3596,7 +3589,7 @@ u8 GetStringWidth(struct Window *win, const u8 *s)
}
win->spacing = savedSpacing;
- win->charset = savedCharset;
+ win->language = savedCharset;
win->fontNum = savedFontNum;
return width;
@@ -3659,10 +3652,9 @@ u8 GetStringWidthGivenWindowConfig(struct WindowConfig *winConfig, const u8 *s)
void ConvertInternationalString(u8 *s, u8 language)
{
- if (language == CHARSET_JAPANESE)
+ if (language == LANGUAGE_JAPANESE)
{
u8 i;
- u8 length;
StripExtCtrlCodes(s);
i = StringLength(s);
@@ -4254,7 +4246,7 @@ static s32 DrawGlyphTiles(struct Window *win, u32 glyph, u32 glyphWidth)
u8 *lowerTile;
s32 retVal = 0;
- GetGlyphTilePointers(win->fontNum, win->charset, glyph, &upperTile, &lowerTile);
+ GetGlyphTilePointers(win->fontNum, win->language, glyph, &upperTile, &lowerTile);
glyphTileInfo.textMode = win->textMode;
glyphTileInfo.startPixel = (win->left + win->cursorX) & 7;
glyphTileInfo.width = glyphWidth;
diff --git a/src/text_window.c b/src/text_window.c
index e7f72a80b..1ac624dd0 100644
--- a/src/text_window.c
+++ b/src/text_window.c
@@ -1,40 +1,23 @@
#include "global.h"
+#include "text_window.h"
#include "main.h"
#include "text.h"
-#include "text_window.h"
+#include "palette.h"
#define STD_MSG_BOX_LEFT 0
#define STD_MSG_BOX_TOP 14
#define STD_MSG_BOX_WIDTH 26
#define STD_MSG_BOX_HEIGHT 4
-u16 SetTextWindowBaseTileNum(u16);
-void LoadTextWindowGraphics(struct Window *);
-void LoadTextWindowGraphics_OverridePalSlot(struct Window *, u8);
-void LoadTextWindowGraphics_OverrideFrameType(struct Window *, u8);
-void DrawTextWindow(struct Window *win, u8 left, u8 top, u8 right, u8 bottom);
-const struct FrameGraphics *GetTextWindowFrameGraphics(u8 frameType);
static void LoadTextWindowTiles(u8, void *);
static void LoadTextWindowPalette(u8, u8);
static void DrawTextWindowInternal(u16 *dest, u16 baseTileNum, u8 left, u8 top, u8 right, u8 bottom);
-u16 SetMessageBoxBaseTileNum(u16);
-void unref_sub_80651DC(struct Window *, u8 *);
-void DisplayMessageBox(struct Window *);
static u16 GetMessageBoxTilemapEntry(u16 tilemapEntry, u8 x, u8 y, u8 width, u8 height);
static void DrawMessageBox(struct Window *win, u8 left, u8 top, u8 width, u8 height);
-void DrawStandardMessageBox(struct Window *win);
-void LoadMessageBoxTiles(struct Window *win);
-void ClearStandardMessageBox(struct Window *win);
static u16 sTextWindowBaseTileNum;
static u16 sMessageBoxBaseTileNum;
-struct FrameGraphics
-{
- u8 *tiles;
- u16 *palette;
-};
-
extern const struct FrameGraphics gUnknown_083761F0[20];
extern const u16 gMessageBoxTilemap[5][7];
diff --git a/src/tileset_anim.c b/src/tileset_anim.c
index 96030f037..415b69cfe 100644
--- a/src/tileset_anim.c
+++ b/src/tileset_anim.c
@@ -1,4 +1,5 @@
#include "global.h"
+#include "tileset_anim.h"
extern u8 *gTilesetAnimTable_General_0[];
extern u8 *gTilesetAnimTable_General_1[];
diff --git a/src/title_screen.c b/src/title_screen.c
index d5cfa032b..ffa803d2e 100644
--- a/src/title_screen.c
+++ b/src/title_screen.c
@@ -1,17 +1,18 @@
#include "global.h"
+#include "title_screen.h"
+#include "asm.h"
+#include "clear_save_data_menu.h"
+#include "m4a.h"
+#include "main_menu.h"
+#include "intro.h"
#include "gba/m4a_internal.h"
#include "main.h"
#include "palette.h"
#include "sound.h"
#include "sprite.h"
#include "task.h"
-
-extern void m4aSongNumStart(u16);
-extern void LoadCompressedObjectPic(void *);
-extern void CB2_InitCopyrightScreen(void);
-extern void CB2_InitMainMenu(void);
-extern void CB2_InitClearSaveDataScreen(void);
-extern void CB2_InitResetRtcScreen(void);
+#include "decompress.h"
+#include "event_data.h"
extern u8 gReservedSpritePaletteCount;
extern struct MusicPlayerInfo gMPlay_BGM;
@@ -25,12 +26,12 @@ extern u8 gUnknown_08393BF8[];
extern u16 gUnknown_08393E64[];
extern struct SpriteTemplate gSpriteTemplate_8393ECC;
extern struct SpriteTemplate gSpriteTemplate_8393EE4;
-extern u8 gUnknown_08393EFC[];
+extern struct SpriteSheet gUnknown_08393EFC;
extern struct SpriteTemplate gSpriteTemplate_8393F74;
-extern u8 gUnknown_08393F8C[];
-extern u8 gUnknown_08393F9C[];
+extern struct SpriteSheet gUnknown_08393F8C;
+extern const struct SpritePalette gUnknown_08393F9C[];
extern struct SpriteTemplate gSpriteTemplate_8393FC0;
-extern u8 gUnknown_08393FD8[];
+extern struct SpriteSheet gUnknown_08393FD8;
extern u8 gUnknown_08E9D8CC[];
extern u8 gUnknown_08E9F624[];
extern u8 gUnknown_08E9F7E4[];
@@ -253,11 +254,11 @@ void CB2_InitTitleScreen(void)
ResetSpriteData();
FreeAllSpritePalettes();
gReservedSpritePaletteCount = 14;
- LoadCompressedObjectPic(gUnknown_08393EFC);
- LoadCompressedObjectPic(gUnknown_08393F8C);
- LoadCompressedObjectPic(gUnknown_08393FD8);
+ LoadCompressedObjectPic(&gUnknown_08393EFC);
+ LoadCompressedObjectPic(&gUnknown_08393F8C);
+ LoadCompressedObjectPic(&gUnknown_08393FD8);
LoadPalette(gUnknown_08E9F624, 0x100, 0x1C0);
- LoadSpritePalette(gUnknown_08393F9C);
+ LoadSpritePalette(&gUnknown_08393F9C[0]);
gMain.state = 2;
break;
case 2:
@@ -427,7 +428,7 @@ static void Task_TitleScreenPhase3(u8 taskId)
if ((gMain.heldKeys & CLEAR_SAVE_BUTTON_COMBO) == CLEAR_SAVE_BUTTON_COMBO)
SetMainCallback2(CB2_GoToClearSaveDataScreen);
if ((gMain.heldKeys & RESET_RTC_BUTTON_COMBO) == RESET_RTC_BUTTON_COMBO
- && sub_80691DC() == 1)
+ && CanResetRTC() == 1)
{
FadeOutBGM(4);
BeginNormalPaletteFade(-1, 0, 0, 0x10, 0);
diff --git a/src/trainer_card.c b/src/trainer_card.c
new file mode 100644
index 000000000..83551eb2b
--- /dev/null
+++ b/src/trainer_card.c
@@ -0,0 +1,2027 @@
+#include "global.h"
+#include "trainer_card.h"
+#include "asm.h"
+#include "event_data.h"
+#include "link.h"
+#include "main.h"
+#include "menu.h"
+#include "money.h"
+#include "palette.h"
+#include "pokedex.h"
+#include "rom4.h"
+#include "songs.h"
+#include "sound.h"
+#include "sprite.h"
+#include "string_util.h"
+#include "task.h"
+
+typedef void (*Callback)(void);
+
+struct Struct2000000 {
+ /*0x00*/ u8 var_0;
+ /*0x01*/ bool8 var_1;
+ /*0x02*/ u8 var_2;
+ /*0x03*/ bool8 var_3;
+ /*0x04*/ u8 var_4;
+ /*0x05*/ u8 var_5;
+ /*0x06*/ u8 var_6;
+ /*0x07*/ bool8 var_7;
+ /*0x08*/ bool8 var_8;
+ /*0x09*/ bool8 var_9;
+ /*0x0A*/ bool8 var_a;
+ /*0x0B*/ bool8 var_b;
+ /*0x0C*/ bool8 var_c;
+ /*0x0D*/ bool8 var_d;
+ /*0x0E*/ u8 var_e[8];
+ /*0x16*/ u8 filler_16[10];
+ /*0x20*/ u8 var_20[4][0x10];
+ /*0x60*/ Callback *var_60;
+ /*0x64*/ struct TrainerCard var_64;
+ /*0x9C*/ u8 language; // 0x9C
+};
+
+extern struct Struct2000000 unk_2000000;
+extern struct LinkPlayerMapObject gLinkPlayerMapObjects[];
+extern struct TrainerCard gTrainerCards[4];
+
+extern u8 gUnknown_03004DE0[]; // TODO: find out correct type
+
+extern u8 gUnknown_083B5EF4[];
+extern u16 *gUnknown_083B5EF8[5];
+extern u16 gUnknown_083B5F0C[];
+extern u16 gBadgesPalette[];
+extern u16 gUnknown_083B5F4C[];
+
+extern u16 gUnknown_08E8CFC0[];
+extern u16 gUnknown_08E8D9C0[];
+
+extern u8 gOtherText_TrainersTrainerCard[];
+extern u8 gOtherText_FirstHOF[];
+extern u8 gOtherText_LinkCableBattles[];
+extern u8 gOtherText_BattleTowerWinRecord[];
+extern u8 gOtherText_ContestRecord[];
+extern u8 gOtherText_MixingRecord[];
+extern u8 gOtherText_TradeRecord[];
+extern u8 gOtherText_Boy[];
+extern u8 gOtherText_Girl[];
+
+// Other signature than on save_menu_util.h
+void FormatPlayTime(u8 *playtime, u16 hours, u16 minutes, s16 colon);
+
+u16 GetPokedexSeenCount(void);
+
+enum {
+ TD_0,
+ TD_1,
+ TD_CALLBACK,
+};
+
+static void sub_8093174(void);
+static void sub_809323C(void);
+static void sub_8093254(void);
+static void sub_80932AC(Callback callBack);
+static void sub_80932E4(u8 arg1, Callback callBack);
+void sub_8093324(void);
+static void nullsub_60(u8);
+static u32 sav12_xor_get_clamped_above(u8 index, u32 maxVal);
+static u8 sub_80934F4(struct TrainerCard *);
+static void sub_8093534(void);
+static void sub_8093550(void);
+static void sub_8093598(void);
+static void sub_80935EC(void);
+static void sub_8093610(void);
+static void sub_8093688(void);
+void sub_80936D4(void);
+static void sub_80937A4(void);
+static void sub_80937BC(void);
+static void sub_80937D8(void);
+static void sub_80937F0(void);
+static void nullsub_15(void);
+static void sub_8093800(void);
+static void sub_809380C();
+static void sub_809382C(u8 taskId);
+static void sub_80939A4(void);
+static void sub_80939C0(void);
+static void sub_80939DC(u8 taskId);
+static void sub_8093A28(void);
+static u8 sub_8093A48(void);
+static void sub_8093A68(u8 taskId);
+void sub_8093D7C(void);
+static void sub_8093DAC(void);
+static void sub_8093DC8(void);
+static void sub_8093DEC(void);
+static void sub_8093E04(void);
+static void sub_8093E28(void);
+void sub_8093EA0(void);
+static void sub_8093EF8(void);
+static void sub_8093F14(void);
+static void sub_8093F48(void);
+static void sub_8093F64(void);
+static void sub_8093F80(void);
+static void sub_8093FD0(void);
+static void sub_8094038(void);
+static void sub_80940E4(void);
+static void sub_8094110(void);
+static void sub_8094140(void);
+static void sub_8094188(void);
+static void TrainerCard_Front_PrintTrainerID(void);
+static void TrainerCard_Front_PrintMoney(void);
+static void TrainerCard_Front_PrintPokedexCount(void);
+static void TrainerCard_Front_PrintPlayTime(u8 *arg1, s16 colon);
+static void sub_809429C(void);
+static void TrainerCard_Back_PrintName(void);
+static void TrainerCard_Back_PrintHallOfFameTime_Label(void);
+static void TrainerCard_Back_PrintHallOfFameTime(void);
+static void TrainerCard_Back_PrintLinkBattlesLabel(void);
+static void TrainerCard_Back_PrintLinkBattles(void);
+static void TrainerCard_Back_PrintBattleTower_Label(void);
+static void TrainerCard_Back_PrintBattleTower(void);
+static void TrainerCard_Back_PrintLinkContests_Label(void);
+static void TrainerCard_Back_PrintLinkContests(void);
+static void TrainerCard_Back_PrintLinkPokeblocks_Label(void);
+static void TrainerCard_Back_PrintLinkPokeblocks(void);
+static void TrainerCard_Back_PrintPokemonTrades_Label(void);
+static void TrainerCard_Back_PrintPokemonTrades(void);
+void unref_sub_8094588(u16 left, u16 top);
+
+void sub_8093110(Callback arg1) {
+ sub_80932AC(arg1);
+ SetMainCallback2(sub_8093174);
+ unk_2000000.language = GAME_LANGUAGE;
+}
+
+void sub_8093130(u8 playerIndex, Callback arg2) {
+ struct Struct2000000* r2;
+ struct LinkPlayer* r3;
+ struct LinkPlayerMapObject* r4;
+ u8 linkPlayerId;
+
+ sub_80932E4(playerIndex, arg2);
+ SetMainCallback2(sub_8093174);
+
+ r2 = &unk_2000000;
+ r3 = gLinkPlayers;
+ r4 = gLinkPlayerMapObjects;
+
+ linkPlayerId = r4[playerIndex].linkPlayerId;
+
+ r2->language = r3[linkPlayerId].language;
+}
+
+
+static void sub_8093174(void) {
+ switch (gMain.state) {
+ case 0:
+ sub_8093534();
+ sub_8093688();
+ gMain.state += 1;
+ break;
+ case 1:
+ sub_8093598();
+ gMain.state += 1;
+ break;
+ case 2:
+ sub_80935EC();
+ gMain.state += 1;
+ break;
+ case 3:
+ sub_8093610();
+ sub_80937A4();
+ gMain.state += 1;
+ break;
+ case 4:
+ sub_80937BC();
+ gMain.state += 1;
+ case 5:
+ if (MultistepInitMenuWindowContinue() == FALSE) {
+ return;
+ }
+ gMain.state += 1;
+ break;
+ case 6:
+ sub_80937F0();
+ gMain.state += 1;
+ break;
+ case 7:
+ sub_80937D8();
+ gMain.state += 1;
+ break;
+ case 8:
+ nullsub_15();
+ sub_8093800();
+ sub_8093550();
+ SetMainCallback2(sub_809323C);
+ break;
+ }
+}
+
+static void sub_809323C(void) {
+ RunTasks();
+ AnimateSprites();
+ BuildOamBuffer();
+ UpdatePaletteFade();
+}
+
+static void sub_8093254(void)
+{
+ LoadOam();
+ ProcessSpriteCopyRequests();
+ TransferPlttBuffer();
+ unk_2000000.var_6++;
+ if (unk_2000000.var_6 >= 60)
+ {
+ unk_2000000.var_6 = 0;
+ unk_2000000.var_5 ^= 1;
+ }
+ if (unk_2000000.var_4)
+ DmaCopy16(3, gUnknown_03004DE0, gUnknown_03004DE0 + 0x780, 320);
+}
+
+static void sub_80932AC(Callback callBack) {
+ u8 taskId = CreateTask(nullsub_60, 0xFF);
+ struct Task *task = &gTasks[taskId];
+ task->data[TD_0] = FALSE;
+ StoreWordInTwoHalfwords(&task->data[TD_CALLBACK], (u32) callBack);
+}
+
+static void sub_80932E4(u8 arg1, Callback callBack) {
+ u8 taskId = CreateTask(nullsub_60, 0xFF);
+
+ struct Task *task = &gTasks[taskId];
+ task->data[TD_0] = TRUE;
+ task->data[TD_1] = arg1;
+ StoreWordInTwoHalfwords(&task->data[TD_CALLBACK], (u32) callBack);
+}
+
+void sub_8093324(void) {
+ u8 taskId = FindTaskIdByFunc(nullsub_60);
+ struct Task *task = &gTasks[taskId];
+ unk_2000000.var_1 = task->data[TD_0];
+
+ LoadWordFromTwoHalfwords((u16 *) &task->data[TD_CALLBACK], (u32 *) &unk_2000000.var_60);
+
+ if (unk_2000000.var_1) {
+ struct TrainerCard (*trainerCards)[4] = &gTrainerCards;
+ s16 var = task->data[TD_1];
+ struct TrainerCard *dest = &(*trainerCards)[var];
+ memcpy(&unk_2000000.var_64, dest, sizeof(struct TrainerCard));
+ } else {
+ sub_8093390(&unk_2000000.var_64);
+ }
+}
+
+static void nullsub_60(u8 taskid) {
+}
+
+void sub_8093390(struct TrainerCard *arg1) {
+ u32 playTime;
+ bool32 enteredHallOfFame;
+ bool8 r4;
+ u8 i;
+
+ arg1->gender = gSaveBlock2.playerGender;
+ arg1->playTimeHours = gSaveBlock2.playTimeHours;
+ arg1->playTimeMinutes = gSaveBlock2.playTimeMinutes;
+
+ playTime = GetGameStat(GAME_STAT_FIRST_HOF_PLAY_TIME);
+ enteredHallOfFame = GetGameStat(GAME_STAT_ENTERED_HOF);
+ if (!enteredHallOfFame) {
+ playTime = 0;
+ }
+ arg1->firstHallOfFameA = playTime >> 16;
+ arg1->firstHallOfFameB = (playTime >> 8) & 0xFF;
+ arg1->firstHallOfFameC = playTime & 0xFF;
+
+ arg1->hasPokedex = FlagGet(SYS_POKEDEX_GET);
+ arg1->var_3 = sub_8090FC0();
+ arg1->pokedexSeen = GetPokedexSeenCount();
+
+ arg1->trainerId = (gSaveBlock2.playerTrainerId[1] << 8) | gSaveBlock2.playerTrainerId[0];
+
+ // Link Cable Battles
+ arg1->linkBattleWins = sav12_xor_get_clamped_above(GAME_STAT_LINK_BATTLE_WINS, 9999);
+ arg1->linkBattleLosses = sav12_xor_get_clamped_above(GAME_STAT_LINK_BATTLE_LOSSES, 9999);
+
+ // Contests w/ Friends
+ arg1->contestsWithFriends = sav12_xor_get_clamped_above(GAME_STAT_WON_LINK_CONTEST, 999);
+
+ // Pokéblocks w/ Friends
+ arg1->pokeblocksWithFriends = sav12_xor_get_clamped_above(GAME_STAT_POKEBLOCKS_WITH_FRIENDS, 0xFFFF);
+
+ // Pokémon Trades
+ arg1->pokemonTrades = sav12_xor_get_clamped_above(GAME_STAT_POKEMON_TRADES, 0xFFFF);
+
+ // Battle tower?
+ arg1->battleTowerWins = gSaveBlock2.filler_A8.var_4C8;
+ arg1->battleTowerLosses = gSaveBlock2.filler_A8.var_4CA;
+ if (arg1->battleTowerWins > 9999) {
+ arg1->battleTowerWins = 9999;
+ }
+ if (arg1->battleTowerLosses > 9999) {
+ arg1->battleTowerLosses = 9999;
+ }
+
+ r4 = FALSE;
+ if (sub_80C4D50() > 4) {
+ r4 = TRUE;
+ }
+ arg1->var_4 = r4;
+
+ arg1->money = gSaveBlock1.money;
+
+ for (i = 0; i < 4; i++) {
+ arg1->var_28[i] = gSaveBlock1.unk2B1C[i];
+ }
+
+ for (i = 0; i < 8; i++) {
+ arg1->playerName[i] = gSaveBlock2.playerName[i];
+ }
+
+ arg1->stars = sub_80934F4(arg1);
+}
+
+u8 sub_80934C4(u8 id) {
+ return gTrainerCards[id].stars;
+}
+
+static u32 sav12_xor_get_clamped_above(u8 index, u32 maxVal) {
+ u32 value = GetGameStat(index);
+
+ if (value > maxVal) {
+ value = maxVal;
+ }
+
+ return value;
+}
+
+static u8 sub_80934F4(struct TrainerCard *trainerCard) {
+ u8 value = 0;
+
+ if (trainerCard->firstHallOfFameA != 0 || trainerCard->firstHallOfFameB != 0 || trainerCard->firstHallOfFameC != 0) {
+ value += 1;
+ }
+
+ if (trainerCard->var_3) {
+ value += 1;
+ }
+
+ if (trainerCard->battleTowerLosses > 49) {
+ value += 1;
+ }
+
+ if (trainerCard->var_4) {
+ value += 1;
+ }
+
+ return value;
+}
+
+static void sub_8093534(void) {
+ SetVBlankCallback(NULL);
+ SetHBlankCallback(NULL);
+ REG_DISPCNT = 0;
+}
+
+static void sub_8093550(void) {
+ u16 backup;
+
+ SetVBlankCallback(sub_8093254);
+
+ backup = REG_IME;
+ REG_IME = 0;
+ REG_IE |= INTR_FLAG_VBLANK| INTR_FLAG_HBLANK;
+ REG_IME = backup;
+
+ REG_DISPSTAT |= DISPSTAT_VBLANK_INTR | DISPSTAT_HBLANK_INTR;
+ REG_DISPCNT = 0x1f40;
+}
+
+__attribute__((naked))
+void sub_8093598() {
+ asm(".syntax unified\n\
+ push {r4-r7,lr}\n\
+ sub sp, 0x4\n\
+ movs r2, 0xC0\n\
+ lsls r2, 19\n\
+ movs r3, 0x80\n\
+ lsls r3, 9\n\
+ mov r4, sp\n\
+ movs r6, 0\n\
+ ldr r1, _080935E4 @ =0x040000d4\n\
+ movs r5, 0x80\n\
+ lsls r5, 5\n\
+ ldr r7, _080935E8 @ =0x81000800\n\
+ movs r0, 0x81\n\
+ lsls r0, 24\n\
+ mov r12, r0\n\
+_080935B6:\n\
+ strh r6, [r4]\n\
+ mov r0, sp\n\
+ str r0, [r1]\n\
+ str r2, [r1, 0x4]\n\
+ str r7, [r1, 0x8]\n\
+ ldr r0, [r1, 0x8]\n\
+ adds r2, r5\n\
+ subs r3, r5\n\
+ cmp r3, r5\n\
+ bhi _080935B6\n\
+ strh r6, [r4]\n\
+ mov r0, sp\n\
+ str r0, [r1]\n\
+ str r2, [r1, 0x4]\n\
+ lsrs r0, r3, 1\n\
+ mov r2, r12\n\
+ orrs r0, r2\n\
+ str r0, [r1, 0x8]\n\
+ ldr r0, [r1, 0x8]\n\
+ add sp, 0x4\n\
+ pop {r4-r7}\n\
+ pop {r0}\n\
+ bx r0\n\
+ .align 2, 0\n\
+_080935E4: .4byte 0x040000d4\n\
+_080935E8: .4byte 0x81000800\n\
+ .syntax divided\n");
+}
+
+__attribute__((naked))
+void sub_80935EC() {
+ asm(".syntax unified\n\
+ sub sp, 0x4\n\
+ movs r2, 0xE0\n\
+ lsls r2, 19\n\
+ mov r1, sp\n\
+ movs r0, 0\n\
+ strh r0, [r1]\n\
+ ldr r0, _08093608 @ =0x040000d4\n\
+ str r1, [r0]\n\
+ str r2, [r0, 0x4]\n\
+ ldr r1, _0809360C @ =0x81000200\n\
+ str r1, [r0, 0x8]\n\
+ ldr r0, [r0, 0x8]\n\
+ add sp, 0x4\n\
+ bx lr\n\
+ .align 2, 0\n\
+_08093608: .4byte 0x040000d4\n\
+_0809360C: .4byte 0x81000200\n\
+ .syntax divided\n");
+}
+
+__attribute__((naked))
+void sub_8093610() {
+ asm(".syntax unified\n\
+ push {r4,r5,lr}\n\
+ ldr r5, _08093664 @ =REG_BG0CNT\n\
+ movs r1, 0\n\
+ strh r1, [r5]\n\
+ ldr r2, _08093668 @ =REG_BG1CNT\n\
+ strh r1, [r2]\n\
+ ldr r3, _0809366C @ =REG_BG2CNT\n\
+ strh r1, [r3]\n\
+ ldr r4, _08093670 @ =REG_BG3CNT\n\
+ strh r1, [r4]\n\
+ ldr r0, _08093674 @ =REG_BG0HOFS\n\
+ strh r1, [r0]\n\
+ adds r0, 0x2\n\
+ strh r1, [r0]\n\
+ adds r0, 0x2\n\
+ strh r1, [r0]\n\
+ adds r0, 0x2\n\
+ strh r1, [r0]\n\
+ adds r0, 0x2\n\
+ strh r1, [r0]\n\
+ adds r0, 0x2\n\
+ strh r1, [r0]\n\
+ adds r0, 0x2\n\
+ strh r1, [r0]\n\
+ adds r0, 0x2\n\
+ strh r1, [r0]\n\
+ ldr r1, _08093678 @ =0x00001e08\n\
+ adds r0, r1, 0\n\
+ strh r0, [r5]\n\
+ ldr r1, _0809367C @ =0x00000801\n\
+ adds r0, r1, 0\n\
+ strh r0, [r2]\n\
+ ldr r1, _08093680 @ =0x00000902\n\
+ adds r0, r1, 0\n\
+ strh r0, [r3]\n\
+ ldr r1, _08093684 @ =0x00000a03\n\
+ adds r0, r1, 0\n\
+ strh r0, [r4]\n\
+ pop {r4,r5}\n\
+ pop {r0}\n\
+ bx r0\n\
+ .align 2, 0\n\
+_08093664: .4byte 0x4000008 @ REG_BG0CNT\n\
+_08093668: .4byte 0x400000A @ REG_BG1CNT\n\
+_0809366C: .4byte 0x400000C @ REG_BG2CNT\n\
+_08093670: .4byte 0x400000E @ REG_BG3CNT\n\
+_08093674: .4byte 0x4000010 @ REG_BG0HOFS\n\
+_08093678: .4byte 0x00001e08\n\
+_0809367C: .4byte 0x00000801\n\
+_08093680: .4byte 0x00000902\n\
+_08093684: .4byte 0x00000a03\n\
+ .syntax divided\n");
+}
+
+#ifdef NONMATCHING
+static void sub_8093688(void) {
+ int i;
+
+ asm_comment("WIP");
+ sub_8093324();
+
+ unk_2000000.var_0 = FALSE;
+ unk_2000000.var_3 = FALSE;
+ unk_2000000.var_4 = FALSE;
+
+ unk_2000000.var_2 = unk_2000000.var_64.stars;
+
+ unk_2000000.var_5 = FALSE;
+ unk_2000000.var_6 = FALSE;
+
+ for (i = 0; i < 4; i++) {
+ sub_80EB3FC(unk_2000000.var_20[i], unk_2000000.var_64.var_28[i]);
+ }
+
+ sub_80936D4();
+}
+#else
+
+__attribute__((naked))
+static void sub_8093688(void) {
+ asm(".syntax unified\n\
+ push {r4-r6,lr}\n\
+ bl sub_8093324\n\
+ ldr r2, _080936D0 @ =0x02000000\n\
+ movs r1, 0\n\
+ strb r1, [r2]\n\
+ strb r1, [r2, 0x3]\n\
+ strb r1, [r2, 0x4]\n\
+ adds r0, r2, 0\n\
+ adds r0, 0x65\n\
+ ldrb r0, [r0]\n\
+ strb r0, [r2, 0x2]\n\
+ strb r1, [r2, 0x5]\n\
+ strb r1, [r2, 0x6]\n\
+ movs r4, 0\n\
+ adds r6, r2, 0\n\
+ adds r6, 0x20\n\
+ adds r5, r2, 0\n\
+ adds r5, 0x8C\n\
+_080936AE:\n\
+ lsls r0, r4, 4\n\
+ adds r0, r6\n\
+ lsls r1, r4, 1\n\
+ adds r1, r5, r1\n\
+ ldrh r1, [r1]\n\
+ bl sub_80EB3FC\n\
+ adds r0, r4, 0x1\n\
+ lsls r0, 24\n\
+ lsrs r4, r0, 24\n\
+ cmp r4, 0x3\n\
+ bls _080936AE\n\
+ bl sub_80936D4\n\
+ pop {r4-r6}\n\
+ pop {r0}\n\
+ bx r0\n\
+ .align 2, 0\n\
+_080936D0: .4byte 0x02000000\n\
+ .syntax divided\n");
+}
+
+#endif
+
+void sub_80936D4(void) {
+ unk_2000000.var_7 = FALSE;
+ unk_2000000.var_8 = FALSE;
+ unk_2000000.var_9 = FALSE;
+ unk_2000000.var_a = FALSE;
+ unk_2000000.var_b = FALSE;
+ unk_2000000.var_c = FALSE;
+ unk_2000000.var_d = FALSE;
+
+ memset(unk_2000000.var_e, 0, sizeof(unk_2000000.var_e));
+
+ if (unk_2000000.var_64.hasPokedex) {
+ unk_2000000.var_7 += TRUE;
+ }
+
+ if (unk_2000000.var_64.firstHallOfFameA != 0 || unk_2000000.var_64.firstHallOfFameB != 0 ||
+ unk_2000000.var_64.firstHallOfFameC != 0) {
+ unk_2000000.var_8 += TRUE;
+ }
+
+ if (unk_2000000.var_64.linkBattleWins != 0 || unk_2000000.var_64.linkBattleLosses != 0) {
+ unk_2000000.var_9 += TRUE;
+ }
+
+ if (unk_2000000.var_64.battleTowerWins != 0 || unk_2000000.var_64.battleTowerLosses != 0) {
+ unk_2000000.var_a += TRUE;
+ }
+
+ if (unk_2000000.var_64.contestsWithFriends != 0) {
+ unk_2000000.var_b += TRUE;
+ }
+
+ if (unk_2000000.var_64.pokeblocksWithFriends != 0) {
+ unk_2000000.var_c += TRUE;
+ }
+
+ if (unk_2000000.var_64.pokemonTrades != 0) {
+ unk_2000000.var_d += TRUE;
+ }
+
+ if (!unk_2000000.var_1) {
+ u32 badgeFlag;
+ int i;
+
+ i = 0;
+ badgeFlag = BADGE01_GET;
+ while (TRUE) {
+ if (FlagGet(badgeFlag)) {
+ unk_2000000.var_e[i] += TRUE;
+ }
+
+ badgeFlag += 1;
+ i += 1;
+ if (badgeFlag > BADGE08_GET) {
+ break;
+ }
+ }
+ }
+}
+
+void sub_80937A4() {
+ ResetPaletteFade();
+ ResetSpriteData();
+ FreeAllSpritePalettes();
+ ResetTasks();
+}
+
+void sub_80937BC() {
+ SetUpWindowConfig(&WindowConfig_TrainerCard_Back_Values);
+ MultistepInitMenuWindowBegin(&WindowConfig_TrainerCard_Back_Values);
+}
+
+static void sub_80937D8() {
+ sub_8093E04();
+ sub_8093E28();
+ sub_8093F64();
+ sub_8093DAC();
+}
+
+static void sub_80937F0() {
+ sub_8093EF8();
+}
+
+static void nullsub_15(void) {
+}
+
+static void sub_8093800() {
+ sub_809380C();
+}
+
+static void sub_809380C() {
+ u8 taskId;
+
+ taskId = CreateTask(sub_809382C, 0);
+ sub_809382C(taskId);
+}
+
+__attribute__((naked))
+static void sub_809382C(u8 taskId) {
+ asm(".syntax unified\n\
+ push {r4-r7,lr}\n\
+ lsls r0, 24\n\
+ lsrs r0, 24\n\
+ ldr r7, _08093858 @ =gUnknown_083B5EBC\n\
+ lsls r1, r0, 2\n\
+ adds r1, r0\n\
+ lsls r4, r1, 3\n\
+ ldr r6, _0809385C @ =0x02000000\n\
+ ldr r5, _08093860 @ =gTasks\n\
+_0809383E:\n\
+ ldrb r0, [r6]\n\
+ lsls r0, 2\n\
+ adds r0, r7\n\
+ ldr r1, [r0]\n\
+ adds r0, r4, r5\n\
+ bl _call_via_r1\n\
+ lsls r0, 24\n\
+ cmp r0, 0\n\
+ bne _0809383E\n\
+ pop {r4-r7}\n\
+ pop {r0}\n\
+ bx r0\n\
+ .align 2, 0\n\
+_08093858: .4byte gUnknown_083B5EBC\n\
+_0809385C: .4byte 0x02000000\n\
+_08093860: .4byte gTasks\n\
+ .syntax divided\n");
+}
+
+__attribute__((naked))
+bool8 sub_8093864() {
+ asm(".syntax unified\n\
+ push {r4,r5,lr}\n\
+ sub sp, 0x4\n\
+ ldr r4, _080938A0 @ =0x02000000\n\
+ ldr r2, _080938A4 @ =gSaveBlock2\n\
+ ldrb r1, [r2, 0x11]\n\
+ movs r0, 0x1\n\
+ ands r0, r1\n\
+ movs r5, 0\n\
+ strb r0, [r4, 0x5]\n\
+ ldrb r0, [r2, 0x12]\n\
+ strb r0, [r4, 0x6]\n\
+ bl sub_80939A4\n\
+ movs r0, 0x1\n\
+ negs r0, r0\n\
+ str r5, [sp]\n\
+ movs r1, 0\n\
+ movs r2, 0x10\n\
+ movs r3, 0\n\
+ bl BeginNormalPaletteFade\n\
+ ldrb r0, [r4]\n\
+ adds r0, 0x1\n\
+ strb r0, [r4]\n\
+ movs r0, 0\n\
+ add sp, 0x4\n\
+ pop {r4,r5}\n\
+ pop {r1}\n\
+ bx r1\n\
+ .align 2, 0\n\
+_080938A0: .4byte 0x02000000\n\
+_080938A4: .4byte gSaveBlock2\n\
+ .syntax divided\n");
+}
+
+__attribute__((naked))
+bool8 sub_80938A8() {
+ asm(".syntax unified\n\
+ push {lr}\n\
+ ldr r0, _080938C4 @ =gPaletteFade\n\
+ ldrb r1, [r0, 0x7]\n\
+ movs r0, 0x80\n\
+ ands r0, r1\n\
+ cmp r0, 0\n\
+ bne _080938BE\n\
+ ldr r1, _080938C8 @ =0x02000000\n\
+ ldrb r0, [r1]\n\
+ adds r0, 0x1\n\
+ strb r0, [r1]\n\
+_080938BE:\n\
+ movs r0, 0\n\
+ pop {r1}\n\
+ bx r1\n\
+ .align 2, 0\n\
+_080938C4: .4byte gPaletteFade\n\
+_080938C8: .4byte 0x02000000\n\
+ .syntax divided\n");
+}
+
+__attribute__((naked))
+bool8 sub_80938CC() {
+ asm(".syntax unified\n\
+ push {lr}\n\
+ ldr r0, _080938E4 @ =gMain\n\
+ ldrh r1, [r0, 0x2E]\n\
+ movs r0, 0x2\n\
+ ands r0, r1\n\
+ cmp r0, 0\n\
+ beq _080938EC\n\
+ ldr r1, _080938E8 @ =0x02000000\n\
+ movs r0, 0x5\n\
+ strb r0, [r1]\n\
+ movs r0, 0x1\n\
+ b _08093914\n\
+ .align 2, 0\n\
+_080938E4: .4byte gMain\n\
+_080938E8: .4byte 0x02000000\n\
+_080938EC:\n\
+ movs r0, 0x1\n\
+ ands r0, r1\n\
+ cmp r0, 0\n\
+ beq _08093912\n\
+ ldr r2, _08093900 @ =0x02000000\n\
+ ldrb r1, [r2, 0x3]\n\
+ cmp r1, 0\n\
+ beq _08093904\n\
+ movs r0, 0x5\n\
+ b _0809390C\n\
+ .align 2, 0\n\
+_08093900: .4byte 0x02000000\n\
+_08093904:\n\
+ movs r0, 0x1\n\
+ eors r0, r1\n\
+ strb r0, [r2, 0x3]\n\
+ movs r0, 0x3\n\
+_0809390C:\n\
+ strb r0, [r2]\n\
+ movs r0, 0x1\n\
+ b _08093914\n\
+_08093912:\n\
+ movs r0, 0\n\
+_08093914:\n\
+ pop {r1}\n\
+ bx r1\n\
+ .syntax divided\n");
+}
+
+bool8 sub_8093918() {
+ sub_8093A28();
+ PlaySE(SE_CARD);
+
+ unk_2000000.var_0 += TRUE;
+
+ return FALSE;
+}
+
+bool8 sub_8093938() {
+ if (sub_8093A48()) {
+ unk_2000000.var_0 = 2;
+ }
+
+ return FALSE;
+}
+
+__attribute__((naked))
+bool8 sub_8093954() {
+ asm(".syntax unified\n\
+ push {lr}\n\
+ sub sp, 0x4\n\
+ bl sub_80939C0\n\
+ movs r0, 0x1\n\
+ negs r0, r0\n\
+ movs r1, 0\n\
+ str r1, [sp]\n\
+ movs r2, 0\n\
+ movs r3, 0x10\n\
+ bl BeginNormalPaletteFade\n\
+ ldr r1, _0809397C @ =0x02000000\n\
+ ldrb r0, [r1]\n\
+ adds r0, 0x1\n\
+ strb r0, [r1]\n\
+ movs r0, 0\n\
+ add sp, 0x4\n\
+ pop {r1}\n\
+ bx r1\n\
+ .align 2, 0\n\
+_0809397C: .4byte 0x02000000\n\
+ .syntax divided\n");
+}
+
+bool8 sub_8093980() {
+ if (!gPaletteFade.active) {
+ SetMainCallback2((MainCallback) unk_2000000.var_60);
+ }
+
+ return FALSE;
+}
+
+static void sub_80939A4(void) {
+ CreateTask(sub_80939DC, 0);
+ BasicInitMenuWindow(&WindowConfig_TrainerCard_Back_Values);
+}
+
+static void sub_80939C0(void) {
+ u8 taskId;
+
+ taskId = FindTaskIdByFunc(sub_80939DC);
+
+ if (taskId != 0xFF) {
+ DestroyTask(taskId);
+ }
+}
+
+static void sub_80939DC(u8 taskId) {
+ u8 buffer[32];
+ struct Task *task;
+ task = &gTasks[taskId];
+
+ if (unk_2000000.var_5 != task->data[TD_1]) {
+ task->data[TD_1] = unk_2000000.var_5;
+ task->data[TD_0] ^= TRUE;
+ }
+
+ TrainerCard_Front_PrintPlayTime(buffer, task->data[TD_0]);
+ MenuPrint(buffer, 10, 12);
+}
+
+static void sub_8093A28(void) {
+ u8 taskId;
+
+ taskId = CreateTask(sub_8093A68, 0);
+ sub_8093A68(taskId);
+}
+
+__attribute__((naked))
+static u8 sub_8093A48() {
+ asm(".syntax unified\n\
+ push {lr}\n\
+ ldr r0, _08093A5C @ =sub_8093A68\n\
+ bl FindTaskIdByFunc\n\
+ lsls r0, 24\n\
+ lsrs r0, 24\n\
+ cmp r0, 0xFF\n\
+ beq _08093A60\n\
+ movs r0, 0\n\
+ b _08093A62\n\
+ .align 2, 0\n\
+_08093A5C: .4byte sub_8093A68\n\
+_08093A60:\n\
+ movs r0, 0x1\n\
+_08093A62:\n\
+ pop {r1}\n\
+ bx r1\n\
+ .syntax divided\n");
+}
+
+__attribute__((naked))
+static void sub_8093A68(u8 taskId) {
+ asm(".syntax unified\n\
+ push {r4,r5,lr}\n\
+ lsls r0, 24\n\
+ lsrs r0, 24\n\
+ ldr r5, _08093A98 @ =gUnknown_083B5ED8\n\
+ ldr r2, _08093A9C @ =gTasks\n\
+ lsls r1, r0, 2\n\
+ adds r1, r0\n\
+ lsls r1, 3\n\
+ adds r4, r1, r2\n\
+_08093A7A:\n\
+ movs r1, 0x8\n\
+ ldrsh r0, [r4, r1]\n\
+ lsls r0, 2\n\
+ adds r0, r5\n\
+ ldr r1, [r0]\n\
+ adds r0, r4, 0\n\
+ bl _call_via_r1\n\
+ lsls r0, 24\n\
+ cmp r0, 0\n\
+ bne _08093A7A\n\
+ pop {r4,r5}\n\
+ pop {r0}\n\
+ bx r0\n\
+ .align 2, 0\n\
+_08093A98: .4byte gUnknown_083B5ED8\n\
+_08093A9C: .4byte gTasks\n\
+ .syntax divided\n");
+}
+
+__attribute__((naked))
+bool8 sub_8093AA0() {
+ asm(".syntax unified\n\
+ push {r4,lr}\n\
+ adds r4, r0, 0\n\
+ ldr r0, _08093AE0 @ =0x02000000\n\
+ movs r1, 0\n\
+ strb r1, [r0, 0x4]\n\
+ bl dp12_8087EA4\n\
+ movs r1, 0\n\
+ ldr r0, _08093AE4 @ =gUnknown_03004DE0\n\
+ ldr r2, _08093AE8 @ =0x0000fffc\n\
+ movs r3, 0xF0\n\
+ lsls r3, 3\n\
+ adds r0, r3\n\
+_08093ABA:\n\
+ strh r2, [r0]\n\
+ adds r0, 0x2\n\
+ adds r1, 0x1\n\
+ cmp r1, 0x9F\n\
+ bls _08093ABA\n\
+ ldr r0, _08093AEC @ =sub_8093D7C\n\
+ bl SetHBlankCallback\n\
+ ldr r1, _08093AE0 @ =0x02000000\n\
+ movs r0, 0x1\n\
+ strb r0, [r1, 0x4]\n\
+ ldrh r0, [r4, 0x8]\n\
+ adds r0, 0x1\n\
+ strh r0, [r4, 0x8]\n\
+ movs r0, 0\n\
+ pop {r4}\n\
+ pop {r1}\n\
+ bx r1\n\
+ .align 2, 0\n\
+_08093AE0: .4byte 0x02000000\n\
+_08093AE4: .4byte gUnknown_03004DE0\n\
+_08093AE8: .4byte 0x0000fffc\n\
+_08093AEC: .4byte sub_8093D7C\n\
+ .syntax divided\n");
+}
+
+__attribute__((naked))
+bool8 sub_8093AF0() {
+ 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, 0x4\n\
+ mov r8, r0\n\
+ ldr r1, _08093BFC @ =0x02000000\n\
+ movs r0, 0\n\
+ strb r0, [r1, 0x4]\n\
+ mov r2, r8\n\
+ ldrh r0, [r2, 0xA]\n\
+ adds r0, 0x3\n\
+ strh r0, [r2, 0xA]\n\
+ lsls r0, 16\n\
+ asrs r0, 16\n\
+ cmp r0, 0x4F\n\
+ ble _08093B18\n\
+ movs r0, 0x4F\n\
+ strh r0, [r2, 0xA]\n\
+_08093B18:\n\
+ mov r4, r8\n\
+ movs r0, 0xA\n\
+ ldrsh r7, [r4, r0]\n\
+ movs r0, 0xA0\n\
+ subs r0, r7\n\
+ mov r9, r0\n\
+ subs r4, r0, r7\n\
+ negs r0, r7\n\
+ lsls r6, r0, 16\n\
+ movs r0, 0xA0\n\
+ lsls r0, 16\n\
+ adds r1, r4, 0\n\
+ bl __udivsi3\n\
+ adds r5, r0, 0\n\
+ ldr r1, _08093C00 @ =0xffff0000\n\
+ adds r5, r1\n\
+ adds r0, r5, 0\n\
+ muls r0, r4\n\
+ adds r0, r6\n\
+ mov r10, r0\n\
+ adds r0, r5, 0\n\
+ adds r1, r4, 0\n\
+ bl __udivsi3\n\
+ str r0, [sp]\n\
+ lsls r5, 1\n\
+ movs r3, 0\n\
+ cmp r3, r7\n\
+ bcs _08093B74\n\
+ ldr r2, _08093C04 @ =gUnknown_03004DE0\n\
+ mov r12, r2\n\
+ ldr r0, _08093C08 @ =0x0000fffc\n\
+ adds r4, r0, 0\n\
+_08093B5C:\n\
+ lsls r0, r3, 16\n\
+ asrs r0, 16\n\
+ lsls r1, r0, 1\n\
+ add r1, r12\n\
+ subs r2, r4, r0\n\
+ strh r2, [r1]\n\
+ adds r0, 0x1\n\
+ lsls r0, 16\n\
+ lsrs r3, r0, 16\n\
+ asrs r0, 16\n\
+ cmp r0, r7\n\
+ bcc _08093B5C\n\
+_08093B74:\n\
+ lsls r2, r3, 16\n\
+ mov r1, r9\n\
+ lsls r0, r1, 16\n\
+ asrs r1, r0, 16\n\
+ mov r4, r10\n\
+ lsrs r7, r4, 16\n\
+ cmp r2, r0\n\
+ bge _08093BAE\n\
+ ldr r0, _08093C04 @ =gUnknown_03004DE0\n\
+ mov r9, r0\n\
+ ldr r4, _08093C08 @ =0x0000fffc\n\
+ mov r12, r4\n\
+ adds r4, r1, 0\n\
+_08093B8E:\n\
+ lsrs r1, r6, 16\n\
+ adds r6, r5\n\
+ ldr r0, [sp]\n\
+ subs r5, r0\n\
+ asrs r2, 16\n\
+ lsls r0, r2, 1\n\
+ add r0, r9\n\
+ add r1, r12\n\
+ strh r1, [r0]\n\
+ adds r2, 0x1\n\
+ lsls r2, 16\n\
+ lsrs r3, r2, 16\n\
+ lsls r2, r3, 16\n\
+ asrs r0, r2, 16\n\
+ cmp r0, r4\n\
+ blt _08093B8E\n\
+_08093BAE:\n\
+ adds r1, r7, 0\n\
+ lsls r0, r3, 16\n\
+ asrs r0, 16\n\
+ cmp r0, 0x9F\n\
+ bgt _08093BD4\n\
+ ldr r4, _08093C04 @ =gUnknown_03004DE0\n\
+ ldr r0, _08093C08 @ =0x0000fffc\n\
+ adds r2, r1, r0\n\
+_08093BBE:\n\
+ lsls r1, r3, 16\n\
+ asrs r1, 16\n\
+ lsls r0, r1, 1\n\
+ adds r0, r4\n\
+ strh r2, [r0]\n\
+ adds r1, 0x1\n\
+ lsls r1, 16\n\
+ lsrs r3, r1, 16\n\
+ asrs r1, 16\n\
+ cmp r1, 0x9F\n\
+ ble _08093BBE\n\
+_08093BD4:\n\
+ movs r0, 0x1\n\
+ ldr r1, _08093BFC @ =0x02000000\n\
+ strb r0, [r1, 0x4]\n\
+ mov r2, r8\n\
+ movs r4, 0xA\n\
+ ldrsh r0, [r2, r4]\n\
+ cmp r0, 0x4A\n\
+ ble _08093BEA\n\
+ ldrh r0, [r2, 0x8]\n\
+ adds r0, 0x1\n\
+ strh r0, [r2, 0x8]\n\
+_08093BEA:\n\
+ movs r0, 0\n\
+ add sp, 0x4\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\
+_08093BFC: .4byte 0x02000000\n\
+_08093C00: .4byte 0xffff0000\n\
+_08093C04: .4byte gUnknown_03004DE0\n\
+_08093C08: .4byte 0x0000fffc\n\
+ .syntax divided\n");
+}
+
+bool8 sub_8093C0C(struct TrainerCard *trainerCard) {
+ sub_80939C0();
+ sub_8093DAC();
+
+ if (!unk_2000000.var_3) {
+ sub_80939A4();
+ }
+
+ trainerCard->firstHallOfFameB += 1;
+
+ return TRUE;
+}
+
+__attribute__((naked))
+bool8 sub_8093C38() {
+ 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, 0x4\n\
+ mov r8, r0\n\
+ ldr r1, _08093D40 @ =0x02000000\n\
+ movs r2, 0\n\
+ strb r2, [r1, 0x4]\n\
+ ldrh r0, [r0, 0xA]\n\
+ subs r0, 0x3\n\
+ mov r3, r8\n\
+ strh r0, [r3, 0xA]\n\
+ lsls r0, 16\n\
+ cmp r0, 0\n\
+ bgt _08093C5C\n\
+ strh r2, [r3, 0xA]\n\
+_08093C5C:\n\
+ mov r4, r8\n\
+ movs r0, 0xA\n\
+ ldrsh r7, [r4, r0]\n\
+ movs r0, 0xA0\n\
+ subs r0, r7\n\
+ mov r9, r0\n\
+ subs r4, r0, r7\n\
+ negs r0, r7\n\
+ lsls r6, r0, 16\n\
+ movs r0, 0xA0\n\
+ lsls r0, 16\n\
+ adds r1, r4, 0\n\
+ bl __udivsi3\n\
+ adds r5, r0, 0\n\
+ ldr r1, _08093D44 @ =0xffff0000\n\
+ adds r5, r1\n\
+ adds r0, r5, 0\n\
+ muls r0, r4\n\
+ adds r0, r6\n\
+ mov r10, r0\n\
+ adds r0, r5, 0\n\
+ adds r1, r4, 0\n\
+ bl __udivsi3\n\
+ str r0, [sp]\n\
+ lsrs r5, 1\n\
+ movs r3, 0\n\
+ cmp r3, r7\n\
+ bcs _08093CB8\n\
+ ldr r2, _08093D48 @ =gUnknown_03004DE0\n\
+ mov r12, r2\n\
+ ldr r0, _08093D4C @ =0x0000fffc\n\
+ adds r4, r0, 0\n\
+_08093CA0:\n\
+ lsls r0, r3, 16\n\
+ asrs r0, 16\n\
+ lsls r1, r0, 1\n\
+ add r1, r12\n\
+ subs r2, r4, r0\n\
+ strh r2, [r1]\n\
+ adds r0, 0x1\n\
+ lsls r0, 16\n\
+ lsrs r3, r0, 16\n\
+ asrs r0, 16\n\
+ cmp r0, r7\n\
+ bcc _08093CA0\n\
+_08093CB8:\n\
+ lsls r2, r3, 16\n\
+ mov r1, r9\n\
+ lsls r0, r1, 16\n\
+ asrs r1, r0, 16\n\
+ mov r4, r10\n\
+ lsrs r7, r4, 16\n\
+ cmp r2, r0\n\
+ bge _08093CF2\n\
+ ldr r0, _08093D48 @ =gUnknown_03004DE0\n\
+ mov r9, r0\n\
+ ldr r3, _08093D4C @ =0x0000fffc\n\
+ mov r12, r3\n\
+ adds r4, r1, 0\n\
+_08093CD2:\n\
+ lsrs r1, r6, 16\n\
+ adds r6, r5\n\
+ ldr r0, [sp]\n\
+ adds r5, r0\n\
+ asrs r2, 16\n\
+ lsls r0, r2, 1\n\
+ add r0, r9\n\
+ add r1, r12\n\
+ strh r1, [r0]\n\
+ adds r2, 0x1\n\
+ lsls r2, 16\n\
+ lsrs r3, r2, 16\n\
+ lsls r2, r3, 16\n\
+ asrs r0, r2, 16\n\
+ cmp r0, r4\n\
+ blt _08093CD2\n\
+_08093CF2:\n\
+ adds r1, r7, 0\n\
+ lsls r0, r3, 16\n\
+ asrs r0, 16\n\
+ cmp r0, 0x9F\n\
+ bgt _08093D18\n\
+ ldr r4, _08093D48 @ =gUnknown_03004DE0\n\
+ ldr r0, _08093D4C @ =0x0000fffc\n\
+ adds r2, r1, r0\n\
+_08093D02:\n\
+ lsls r1, r3, 16\n\
+ asrs r1, 16\n\
+ lsls r0, r1, 1\n\
+ adds r0, r4\n\
+ strh r2, [r0]\n\
+ adds r1, 0x1\n\
+ lsls r1, 16\n\
+ lsrs r3, r1, 16\n\
+ asrs r1, 16\n\
+ cmp r1, 0x9F\n\
+ ble _08093D02\n\
+_08093D18:\n\
+ movs r0, 0x1\n\
+ ldr r1, _08093D40 @ =0x02000000\n\
+ strb r0, [r1, 0x4]\n\
+ mov r2, r8\n\
+ movs r3, 0xA\n\
+ ldrsh r0, [r2, r3]\n\
+ cmp r0, 0\n\
+ bgt _08093D2E\n\
+ ldrh r0, [r2, 0x8]\n\
+ adds r0, 0x1\n\
+ strh r0, [r2, 0x8]\n\
+_08093D2E:\n\
+ movs r0, 0\n\
+ add sp, 0x4\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\
+_08093D40: .4byte 0x02000000\n\
+_08093D44: .4byte 0xffff0000\n\
+_08093D48: .4byte gUnknown_03004DE0\n\
+_08093D4C: .4byte 0x0000fffc\n\
+ .syntax divided\n");
+}
+
+bool8 sub_8093D50(void) {
+ u8 taskId;
+
+ unk_2000000.var_4 = FALSE;
+ SetHBlankCallback(NULL);
+ sub_8093E04();
+
+ taskId = FindTaskIdByFunc(sub_8093A68);
+ DestroyTask(taskId);
+
+ return FALSE;
+}
+
+__attribute__((naked))
+void sub_8093D7C(void) {
+ asm(".syntax unified\n\
+ ldr r1, _08093DA0 @ =gUnknown_03004DE0\n\
+ ldr r0, _08093DA4 @ =REG_VCOUNT\n\
+ ldrh r2, [r0]\n\
+ movs r0, 0xFF\n\
+ ands r0, r2\n\
+ lsls r0, 1\n\
+ movs r2, 0xF0\n\
+ lsls r2, 3\n\
+ adds r1, r2\n\
+ adds r0, r1\n\
+ ldrh r1, [r0]\n\
+ ldr r0, _08093DA8 @ =REG_BG0VOFS\n\
+ strh r1, [r0]\n\
+ adds r0, 0x4\n\
+ strh r1, [r0]\n\
+ adds r0, 0x4\n\
+ strh r1, [r0]\n\
+ bx lr\n\
+ .align 2, 0\n\
+_08093DA0: .4byte gUnknown_03004DE0\n\
+_08093DA4: .4byte 0x4000006 @ REG_VCOUNT\n\
+_08093DA8: .4byte 0x4000012 @ REG_BG0VOFS\n\
+ .syntax divided\n");
+}
+
+static void sub_8093DAC(void) {
+ if (unk_2000000.var_3) {
+ sub_8093DEC();
+ } else {
+ sub_8093DC8();
+ }
+}
+
+static void sub_8093DC8(void) {
+ MenuZeroFillScreen();
+ sub_80940E4();
+ sub_8093F14();
+ sub_8093F80();
+ sub_8093FD0();
+ sub_8094038();
+ sub_8094140();
+}
+
+static void sub_8093DEC(void) {
+ MenuZeroFillScreen();
+ sub_80940E4();
+ sub_8093F48();
+ sub_8094188();
+}
+
+__attribute__((naked))
+static void sub_8093E04() {
+ asm(".syntax unified\n\
+ ldr r0, _08093E20 @ =REG_BG0VOFS\n\
+ ldr r2, _08093E24 @ =0x0000fffc\n\
+ adds r1, r2, 0\n\
+ strh r1, [r0]\n\
+ adds r0, 0x2\n\
+ movs r2, 0\n\
+ strh r2, [r0]\n\
+ adds r0, 0x2\n\
+ strh r1, [r0]\n\
+ adds r0, 0x2\n\
+ strh r2, [r0]\n\
+ adds r0, 0x2\n\
+ strh r1, [r0]\n\
+ bx lr\n\
+ .align 2, 0\n\
+_08093E20: .4byte 0x4000012 @ REG_BG0VOFS\n\
+_08093E24: .4byte 0x0000fffc\n\
+ .syntax divided\n");
+}
+
+__attribute__((naked))
+static void sub_8093E28(void) {
+ asm(".syntax unified\n\
+ push {r4-r7,lr}\n\
+ bl sub_8093EA0\n\
+ ldr r0, _08093E84 @ =gUnknown_083B5F6C\n\
+ movs r1, 0xE0\n\
+ movs r2, 0x20\n\
+ bl LoadPalette\n\
+ ldr r3, _08093E88 @ =gMenuTrainerCard_Gfx\n\
+ movs r4, 0xC0\n\
+ lsls r4, 19\n\
+ movs r5, 0xA4\n\
+ lsls r5, 5\n\
+ ldr r1, _08093E8C @ =0x040000d4\n\
+ ldr r6, _08093E90 @ =0x80000800\n\
+ movs r2, 0x80\n\
+ lsls r2, 5\n\
+ movs r7, 0x80\n\
+ lsls r7, 24\n\
+_08093E4E:\n\
+ str r3, [r1]\n\
+ str r4, [r1, 0x4]\n\
+ str r6, [r1, 0x8]\n\
+ ldr r0, [r1, 0x8]\n\
+ adds r3, r2\n\
+ adds r4, r2\n\
+ subs r5, r2\n\
+ cmp r5, r2\n\
+ bhi _08093E4E\n\
+ str r3, [r1]\n\
+ str r4, [r1, 0x4]\n\
+ lsrs r0, r5, 1\n\
+ orrs r0, r7\n\
+ str r0, [r1, 0x8]\n\
+ ldr r0, [r1, 0x8]\n\
+ ldr r1, _08093E94 @ =gBadgesTiles\n\
+ ldr r2, _08093E98 @ =0x06001480\n\
+ ldr r0, _08093E8C @ =0x040000d4\n\
+ str r1, [r0]\n\
+ str r2, [r0, 0x4]\n\
+ ldr r1, _08093E9C @ =0x80000200\n\
+ str r1, [r0, 0x8]\n\
+ ldr r0, [r0, 0x8]\n\
+ pop {r4-r7}\n\
+ pop {r0}\n\
+ bx r0\n\
+ .align 2, 0\n\
+_08093E84: .4byte gUnknown_083B5F6C\n\
+_08093E88: .4byte gMenuTrainerCard_Gfx\n\
+_08093E8C: .4byte 0x040000d4\n\
+_08093E90: .4byte 0x80000800\n\
+_08093E94: .4byte gBadgesTiles\n\
+_08093E98: .4byte 0x06001480\n\
+_08093E9C: .4byte 0x80000200\n\
+ .syntax divided\n");
+}
+
+void sub_8093EA0(void) {
+ LoadPalette(gUnknown_083B5EF8[unk_2000000.var_2], 0, 48 * 2);
+ LoadPalette(gBadgesPalette, 48, 16 * 2);
+ LoadPalette(gUnknown_083B5F4C, 64, 16 * 2);
+
+ if (unk_2000000.var_64.gender != MALE) {
+ LoadPalette(gUnknown_083B5F0C, 16, 16 * 2);
+ }
+}
+
+static void sub_8093EF8(void) {
+ LoadTrainerGfx_TrainerCard(unk_2000000.var_64.gender, 80, (void *) (VRAM + 0x1880));
+}
+
+__attribute__((naked))
+static void sub_8093F14(void) {
+ asm(".syntax unified\n\
+ push {lr}\n\
+ sub sp, 0x8\n\
+ ldr r0, _08093F3C @ =gUnknown_083B5EEC\n\
+ ldr r1, [r0, 0x4]\n\
+ ldr r0, [r0]\n\
+ str r0, [sp]\n\
+ str r1, [sp, 0x4]\n\
+ ldr r0, _08093F40 @ =0x02000000\n\
+ ldrb r0, [r0, 0x1]\n\
+ lsls r0, 2\n\
+ add r0, sp\n\
+ ldr r0, [r0]\n\
+ ldr r1, _08093F44 @ =0x06004800\n\
+ movs r2, 0xA0\n\
+ lsls r2, 1\n\
+ bl CpuFastSet\n\
+ add sp, 0x8\n\
+ pop {r0}\n\
+ bx r0\n\
+ .align 2, 0\n\
+_08093F3C: .4byte gUnknown_083B5EEC\n\
+_08093F40: .4byte 0x02000000\n\
+_08093F44: .4byte 0x06004800\n\
+ .syntax divided\n");
+}
+
+static void sub_8093F48(void) {
+ CpuFastSet(gUnknown_08E8CFC0, (void *) (VRAM + 0x4800), 320);
+}
+
+static void sub_8093F64(void) {
+ CpuFastSet(gUnknown_08E8D9C0, (void *) (VRAM + 0x5000), 320);
+}
+
+__attribute__((naked))
+static void sub_8093F80(void) {
+ asm(".syntax unified\n\
+ push {r4-r7,lr}\n\
+ movs r5, 0xC4\n\
+ ldr r7, _08093FCC @ =0x06004000\n\
+ movs r1, 0x5\n\
+ movs r0, 0xA0\n\
+ lsls r0, 7\n\
+ adds r6, r0, 0\n\
+_08093F8E:\n\
+ movs r0, 0x13\n\
+ lsls r3, r1, 16\n\
+ asrs r4, r3, 11\n\
+_08093F94:\n\
+ lsls r2, r0, 16\n\
+ asrs r2, 16\n\
+ adds r1, r4, r2\n\
+ lsls r1, 1\n\
+ adds r1, r7\n\
+ adds r0, r5, 0\n\
+ orrs r0, r6\n\
+ strh r0, [r1]\n\
+ adds r2, 0x1\n\
+ lsls r2, 16\n\
+ adds r0, r5, 0x1\n\
+ lsls r0, 16\n\
+ lsrs r5, r0, 16\n\
+ lsrs r0, r2, 16\n\
+ asrs r2, 16\n\
+ cmp r2, 0x1A\n\
+ ble _08093F94\n\
+ movs r1, 0x80\n\
+ lsls r1, 9\n\
+ adds r0, r3, r1\n\
+ lsrs r1, r0, 16\n\
+ asrs r0, 16\n\
+ cmp r0, 0xC\n\
+ ble _08093F8E\n\
+ pop {r4-r7}\n\
+ pop {r0}\n\
+ bx r0\n\
+ .align 2, 0\n\
+_08093FCC: .4byte 0x06004000\n\
+ .syntax divided\n");
+}
+
+__attribute__((naked))
+static void sub_8093FD0(void) {
+ asm(".syntax unified\n\
+ push {r4-r6,lr}\n\
+ ldr r4, _0809402C @ =0x06004000\n\
+ movs r2, 0xF\n\
+ ldr r0, _08094030 @ =0x02000000\n\
+ ldrb r0, [r0, 0x2]\n\
+ adds r0, 0xF\n\
+ cmp r2, r0\n\
+ bge _08094002\n\
+ movs r6, 0xC0\n\
+ lsls r6, 1\n\
+ ldr r1, _08094034 @ =0x0000408f\n\
+ adds r5, r1, 0\n\
+ adds r3, r0, 0\n\
+_08093FEA:\n\
+ lsls r1, r2, 16\n\
+ asrs r1, 16\n\
+ lsls r0, r1, 1\n\
+ adds r0, r4\n\
+ adds r0, r6\n\
+ strh r5, [r0]\n\
+ adds r1, 0x1\n\
+ lsls r1, 16\n\
+ lsrs r2, r1, 16\n\
+ asrs r1, 16\n\
+ cmp r1, r3\n\
+ blt _08093FEA\n\
+_08094002:\n\
+ lsls r1, r2, 16\n\
+ asrs r0, r1, 16\n\
+ cmp r0, 0x12\n\
+ bgt _08094024\n\
+ movs r3, 0xC0\n\
+ lsls r3, 1\n\
+ movs r2, 0\n\
+_08094010:\n\
+ asrs r0, r1, 16\n\
+ lsls r1, r0, 1\n\
+ adds r1, r4\n\
+ adds r1, r3\n\
+ strh r2, [r1]\n\
+ adds r0, 0x1\n\
+ lsls r1, r0, 16\n\
+ asrs r0, r1, 16\n\
+ cmp r0, 0x12\n\
+ ble _08094010\n\
+_08094024:\n\
+ pop {r4-r6}\n\
+ pop {r0}\n\
+ bx r0\n\
+ .align 2, 0\n\
+_0809402C: .4byte 0x06004000\n\
+_08094030: .4byte 0x02000000\n\
+_08094034: .4byte 0x0000408f\n\
+ .syntax divided\n");
+}
+
+__attribute__((naked))
+static void sub_8094038(void) {
+ asm(".syntax unified\n\
+ push {r4-r7,lr}\n\
+ mov r7, r9\n\
+ mov r6, r8\n\
+ push {r6,r7}\n\
+ ldr r1, _080940D0 @ =0x02000000\n\
+ ldrb r0, [r1, 0x1]\n\
+ cmp r0, 0\n\
+ bne _080940C2\n\
+ ldr r0, _080940D4 @ =0x06004000\n\
+ mov r9, r0\n\
+ movs r0, 0\n\
+ movs r2, 0x4\n\
+ adds r1, 0xE\n\
+ mov r8, r1\n\
+ ldr r7, _080940D8 @ =gUnknown_083B5F8C\n\
+ movs r1, 0xC0\n\
+ lsls r1, 6\n\
+ adds r6, r1, 0\n\
+ adds r1, r7, 0x6\n\
+ mov r12, r1\n\
+_08094060:\n\
+ lsls r0, 16\n\
+ asrs r4, r0, 16\n\
+ mov r1, r8\n\
+ adds r0, r4, r1\n\
+ ldrb r0, [r0]\n\
+ lsls r5, r2, 16\n\
+ cmp r0, 0\n\
+ beq _080940AE\n\
+ asrs r1, r5, 15\n\
+ add r1, r9\n\
+ movs r2, 0xF0\n\
+ lsls r2, 2\n\
+ adds r3, r1, r2\n\
+ lsls r2, r4, 3\n\
+ adds r0, r2, r7\n\
+ ldrh r0, [r0]\n\
+ orrs r0, r6\n\
+ strh r0, [r3]\n\
+ ldr r0, _080940DC @ =0x000003c2\n\
+ adds r3, r1, r0\n\
+ adds r0, r7, 0x2\n\
+ adds r0, r2, r0\n\
+ ldrh r0, [r0]\n\
+ orrs r0, r6\n\
+ strh r0, [r3]\n\
+ movs r0, 0x80\n\
+ lsls r0, 3\n\
+ adds r3, r1, r0\n\
+ adds r0, r7, 0x4\n\
+ adds r0, r2, r0\n\
+ ldrh r0, [r0]\n\
+ orrs r0, r6\n\
+ strh r0, [r3]\n\
+ ldr r0, _080940E0 @ =0x00000402\n\
+ adds r1, r0\n\
+ add r2, r12\n\
+ ldrh r0, [r2]\n\
+ orrs r0, r6\n\
+ strh r0, [r1]\n\
+_080940AE:\n\
+ adds r1, r4, 0x1\n\
+ lsls r1, 16\n\
+ movs r2, 0xC0\n\
+ lsls r2, 10\n\
+ adds r0, r5, r2\n\
+ lsrs r2, r0, 16\n\
+ lsrs r0, r1, 16\n\
+ asrs r1, 16\n\
+ cmp r1, 0x7\n\
+ ble _08094060\n\
+_080940C2:\n\
+ pop {r3,r4}\n\
+ mov r8, r3\n\
+ mov r9, r4\n\
+ pop {r4-r7}\n\
+ pop {r0}\n\
+ bx r0\n\
+ .align 2, 0\n\
+_080940D0: .4byte 0x02000000\n\
+_080940D4: .4byte 0x06004000\n\
+_080940D8: .4byte gUnknown_083B5F8C\n\
+_080940DC: .4byte 0x000003c2\n\
+_080940E0: .4byte 0x00000402\n\
+ .syntax divided\n");
+}
+
+__attribute__((naked))
+static void sub_80940E4() {
+ asm(".syntax unified\n\
+ push {r4,lr}\n\
+ movs r2, 0\n\
+ ldr r1, _08094108 @ =0x06004000\n\
+ movs r4, 0\n\
+ ldr r3, _0809410C @ =0x000003ff\n\
+_080940EE:\n\
+ strh r4, [r1]\n\
+ lsls r0, r2, 16\n\
+ movs r2, 0x80\n\
+ lsls r2, 9\n\
+ adds r0, r2\n\
+ adds r1, 0x2\n\
+ lsrs r2, r0, 16\n\
+ asrs r0, 16\n\
+ cmp r0, r3\n\
+ ble _080940EE\n\
+ pop {r4}\n\
+ pop {r0}\n\
+ bx r0\n\
+ .align 2, 0\n\
+_08094108: .4byte 0x06004000\n\
+_0809410C: .4byte 0x000003ff\n\
+ .syntax divided\n");
+}
+
+__attribute__((naked))
+static void sub_8094110() {
+ asm(".syntax unified\n\
+ push {r4-r6,lr}\n\
+ ldr r6, _0809413C @ =0x06004800\n\
+ movs r2, 0x3\n\
+ movs r5, 0xA0\n\
+ lsls r5, 2\n\
+ movs r3, 0x1\n\
+ movs r4, 0xB0\n\
+ lsls r4, 2\n\
+_08094120:\n\
+ lsls r0, r2, 1\n\
+ adds r0, r6\n\
+ adds r1, r0, r5\n\
+ strh r3, [r1]\n\
+ adds r0, r4\n\
+ strh r3, [r0]\n\
+ adds r0, r2, 0x1\n\
+ lsls r0, 16\n\
+ lsrs r2, r0, 16\n\
+ cmp r2, 0x10\n\
+ bls _08094120\n\
+ pop {r4-r6}\n\
+ pop {r0}\n\
+ bx r0\n\
+ .align 2, 0\n\
+_0809413C: .4byte 0x06004800\n\
+ .syntax divided\n");
+}
+
+
+static void sub_8094140(void) {
+ u8 *buffer;
+
+ BasicInitMenuWindow(&WindowConfig_TrainerCard_Back_Values);
+
+ buffer = gStringVar1;
+ StringCopy(buffer, unk_2000000.var_64.playerName);
+ ConvertInternationalString(buffer, unk_2000000.language);
+ MenuPrint(buffer, 7, 5);
+
+ TrainerCard_Front_PrintTrainerID();
+ TrainerCard_Front_PrintMoney();
+ TrainerCard_Front_PrintPokedexCount();
+ sub_809429C();
+}
+
+static void sub_8094188(void) {
+ BasicInitMenuWindow(&WindowConfig_TrainerCard_Back_Values);
+ TrainerCard_Back_PrintName();
+ TrainerCard_Back_PrintHallOfFameTime_Label();
+ TrainerCard_Back_PrintLinkBattlesLabel();
+ TrainerCard_Back_PrintBattleTower_Label();
+ TrainerCard_Back_PrintLinkContests_Label();
+ TrainerCard_Back_PrintLinkPokeblocks_Label();
+ TrainerCard_Back_PrintPokemonTrades_Label();
+
+ BasicInitMenuWindow(&WindowConfig_TrainerCard_Back_Labels);
+ TrainerCard_Back_PrintHallOfFameTime();
+ TrainerCard_Back_PrintLinkBattles();
+ TrainerCard_Back_PrintBattleTower();
+ TrainerCard_Back_PrintLinkContests();
+ TrainerCard_Back_PrintLinkPokeblocks();
+ TrainerCard_Back_PrintPokemonTrades();
+}
+
+static void TrainerCard_Front_PrintTrainerID(void) {
+ u8 buffer[8];
+
+ ConvertIntToDecimalStringN(buffer, unk_2000000.var_64.trainerId, STR_CONV_MODE_LEADING_ZEROS, 5);
+ MenuPrint(buffer, 20, 2);
+}
+
+static void TrainerCard_Front_PrintMoney(void) {
+ sub_80B7AEC(unk_2000000.var_64.money, 16, 8);
+}
+
+static void TrainerCard_Front_PrintPokedexCount(void) {
+ u8 buffer[16];
+
+ if (unk_2000000.var_7 == FALSE) {
+ sub_8094110();
+ return;
+ }
+
+ ConvertIntToDecimalStringN(buffer, unk_2000000.var_64.pokedexSeen, STR_CONV_MODE_LEFT_ALIGN, 3);
+ MenuPrint_RightAligned(buffer, 16, 10);
+}
+
+static void TrainerCard_Front_PrintPlayTime(u8 *arg1, s16 colon) {
+ u8 buffer[16];
+ u16 playTimeHours;
+ u16 playTimeMinutes;
+
+ playTimeHours = gSaveBlock2.playTimeHours;
+ playTimeMinutes = gSaveBlock2.playTimeMinutes;
+
+ if (unk_2000000.var_1 != 0) {
+ playTimeHours = unk_2000000.var_64.playTimeHours;
+ playTimeMinutes = unk_2000000.var_64.playTimeMinutes;
+ }
+
+ FormatPlayTime(buffer, playTimeHours, playTimeMinutes, colon);
+ sub_8072C74(arg1, buffer, 48, 1);
+}
+
+static void sub_809429C(void) {
+ u8 *bufferPtr;
+
+ if (unk_2000000.var_1 == FALSE) {
+ return;
+ }
+
+ bufferPtr = gStringVar1;
+ bufferPtr = StringCopy(bufferPtr, unk_2000000.var_20[0]);
+ bufferPtr[0] = 00;
+ bufferPtr++;
+ bufferPtr = StringCopy(bufferPtr, unk_2000000.var_20[1]);
+ MenuPrint(gStringVar1, 2, 14);
+
+ bufferPtr = gStringVar1;
+ bufferPtr = StringCopy(bufferPtr, unk_2000000.var_20[2]);
+ bufferPtr[0] = 00;
+ bufferPtr++;
+ bufferPtr = StringCopy(bufferPtr, unk_2000000.var_20[3]);
+ MenuPrint(gStringVar1, 2, 16);
+}
+
+static void TrainerCard_Back_PrintName(void) {
+ u8 *bufferPtr;
+
+ bufferPtr = gStringVar1;
+ StringCopy(bufferPtr, unk_2000000.var_64.playerName);
+ ConvertInternationalString(bufferPtr, unk_2000000.language);
+
+ StringAppend(bufferPtr, gOtherText_TrainersTrainerCard);
+
+ MenuPrint_RightAligned(gStringVar1, 28, 2);
+}
+
+static void TrainerCard_Back_PrintHallOfFameTime_Label(void) {
+ if (unk_2000000.var_8 == FALSE) {
+ return;
+ }
+
+ MenuPrint(gOtherText_FirstHOF, 3, 5);
+}
+
+static void TrainerCard_Back_PrintHallOfFameTime(void) {
+ u8 *bufferPtr;
+
+ if (unk_2000000.var_8 == FALSE) {
+ return;
+ }
+
+ bufferPtr = gStringVar1;
+ bufferPtr = ConvertIntToDecimalStringN(bufferPtr, unk_2000000.var_64.firstHallOfFameA, STR_CONV_MODE_RIGHT_ALIGN,
+ 3);
+ bufferPtr = StringCopy(bufferPtr, gUnknown_083B5EF4);
+ bufferPtr = ConvertIntToDecimalStringN(bufferPtr, unk_2000000.var_64.firstHallOfFameB, STR_CONV_MODE_LEADING_ZEROS,
+ 2);
+ bufferPtr = StringCopy(bufferPtr, gUnknown_083B5EF4);
+ bufferPtr = ConvertIntToDecimalStringN(bufferPtr, unk_2000000.var_64.firstHallOfFameC, STR_CONV_MODE_LEADING_ZEROS,
+ 2);
+
+ MenuPrint_RightAligned(gStringVar1, 28, 5);
+}
+
+static void TrainerCard_Back_PrintLinkBattlesLabel(void) {
+ if (unk_2000000.var_9 == FALSE) {
+ return;
+ }
+
+ MenuPrint(gOtherText_LinkCableBattles, 3, 7);
+}
+
+static void TrainerCard_Back_PrintLinkBattles(void) {
+ u8 buffer[16];
+
+ if (unk_2000000.var_9 == FALSE) {
+ return;
+ }
+
+ ConvertIntToDecimalString(buffer, unk_2000000.var_64.linkBattleWins);
+ MenuPrint_RightAligned(buffer, 22, 7);
+
+ ConvertIntToDecimalString(buffer, unk_2000000.var_64.linkBattleLosses);
+ MenuPrint_RightAligned(buffer, 28, 7);
+}
+
+static void TrainerCard_Back_PrintBattleTower_Label(void) {
+ if (unk_2000000.var_a == FALSE) {
+ return;
+ }
+
+ MenuPrint(gOtherText_BattleTowerWinRecord, 3, 15);
+}
+
+static void TrainerCard_Back_PrintBattleTower(void) {
+ u8 buffer[16];
+
+ if (unk_2000000.var_a == FALSE) {
+ return;
+ }
+
+ sub_8072C44(buffer, unk_2000000.var_64.battleTowerWins, 24, 1);
+ MenuPrint_PixelCoords(buffer, 112, 120, 0);
+
+ sub_8072C44(buffer, unk_2000000.var_64.battleTowerLosses, 24, 1);
+ MenuPrint_PixelCoords(buffer, 149, 120, 0);
+}
+
+static void TrainerCard_Back_PrintLinkContests_Label(void) {
+ if (unk_2000000.var_b == FALSE) {
+ return;
+ }
+
+ MenuPrint(gOtherText_ContestRecord, 3, 13);
+}
+
+static void TrainerCard_Back_PrintLinkContests(void) {
+ u8 buffer[8];
+
+ if (unk_2000000.var_b == FALSE) {
+ return;
+ }
+
+ ConvertIntToDecimalStringN(buffer, unk_2000000.var_64.contestsWithFriends, STR_CONV_MODE_RIGHT_ALIGN, 3);
+ MenuPrint_RightAligned(buffer, 28, 13);
+}
+
+static void TrainerCard_Back_PrintLinkPokeblocks_Label(void) {
+ if (unk_2000000.var_c == FALSE) {
+ return;
+ }
+
+ MenuPrint(gOtherText_MixingRecord, 3, 11);
+}
+
+static void TrainerCard_Back_PrintLinkPokeblocks(void) {
+ u8 buffer[8];
+
+ if (unk_2000000.var_c == FALSE) {
+ return;
+ }
+
+ ConvertIntToDecimalStringN(buffer, unk_2000000.var_64.pokeblocksWithFriends, STR_CONV_MODE_RIGHT_ALIGN, 5);
+ MenuPrint_RightAligned(buffer, 28, 11);
+}
+
+static void TrainerCard_Back_PrintPokemonTrades_Label(void) {
+ if (unk_2000000.var_d == FALSE) {
+ return;
+ }
+
+ MenuPrint(gOtherText_TradeRecord, 3, 9);
+}
+
+static void TrainerCard_Back_PrintPokemonTrades(void) {
+ u8 buffer[8];
+
+ if (unk_2000000.var_d == FALSE) {
+ return;
+ }
+
+ ConvertIntToDecimalStringN(buffer, unk_2000000.var_64.pokemonTrades, STR_CONV_MODE_RIGHT_ALIGN, 5);
+ MenuPrint_RightAligned(buffer, 28, 9);
+}
+
+void unref_sub_8094588(u16 left, u16 top) {
+ u8 *text = gOtherText_Boy;
+
+ if (gSaveBlock2.playerGender == FEMALE) {
+ text = gOtherText_Girl;
+ }
+
+ MenuPrint(text, (u8) left, (u8) top);
+}
diff --git a/src/trainer_see.c b/src/trainer_see.c
index 968f7c0a1..c6cdc5658 100644
--- a/src/trainer_see.c
+++ b/src/trainer_see.c
@@ -1,28 +1,14 @@
#include "global.h"
-#include "fieldmap.h"
+#include "trainer_see.h"
+#include "asm.h"
+#include "battle_setup.h"
+#include "field_player_avatar.h"
+#include "field_map_obj.h"
+#include "asm_fieldmap.h"
#include "task.h"
#include "sprite.h"
-
-extern u8 * GetFieldObjectScriptPointerByFieldObjectId(u8);
-extern u8 * GetTrainerFlagFromScriptPointer(u8 *);
-extern u8 TrainerCanApproachPlayer(struct MapObject *);
-extern u8 sub_8060024(struct MapObject *, s16, s16, u8);
-extern u8 npc_block_way(struct MapObject *, s16, s16, u8);
-extern u8 npc_running_behaviour_by_direction(u8);
-extern u8 GetGoSpeed0AnimId(u8);
-extern u8 GetOppositeDirection(u8);
-extern u8 GetFaceDirectionAnimId(u8);
-extern bool8 FieldEffectActiveListContains(u8);
-extern bool8 FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive(struct MapObject *);
-extern bool8 FieldObjectCheckIfSpecialAnimFinishedOrInactive(struct MapObject *);
-extern bool8 FieldObjectClearAnimIfSpecialAnimFinished(struct MapObject *);
-extern void FieldObjectClearAnim(struct MapObject *);
-extern void TrainerWantsBattle(u8, u8 *);
-extern void FieldObjectSetSpecialAnim(struct MapObject *, u8);
-extern void LoadWordFromTwoHalfwords(u32, u8 *);
-extern void StoreWordInTwoHalfwords(u32, u8 *);
-
-extern void sub_80842FC(void (*func)(u8));
+#include "field_effect.h"
+#include "script.h"
extern bool8 (*gIsTrainerInRange[])(struct MapObject *, u16, s16, s16);
extern bool8 (*gTrainerSeeFuncList[])(u8, struct Task *, struct MapObject *);
@@ -30,16 +16,13 @@ extern bool8 (*gTrainerSeeFuncList2[])(u8, struct Task *, struct MapObject *);
extern u32 gUnknown_0202FF84[];
-bool8 CheckTrainer(u8);
-bool8 CheckPathBetweenTrainerAndPlayer(struct MapObject2 *, u8, u8);
-void sub_80842C8(struct MapObject *, u8);
-void RunTrainerSeeFuncList(u8);
-void sub_80847D8(u8);
+extern struct SpriteTemplate gSpriteTemplate_839B510;
+extern struct SpriteTemplate gSpriteTemplate_839B528;
bool8 CheckTrainers(void)
{
u8 i;
-
+
for(i = 0; i < 16; i++)
{
if ( gMapObjects[i].active )
@@ -79,19 +62,19 @@ bool8 TrainerCanApproachPlayer(struct MapObject *trainerObj)
s16 x, y;
u8 i;
u8 playerCoord;
-
+
PlayerGetDestCoords(&x, &y);
if ( trainerObj->trainerType == 1 ) // trainers that don't spin
{
playerCoord = gIsTrainerInRange[trainerObj->mapobj_unk_18 - 1](trainerObj, trainerObj->trainerRange_berryTreeId, x, y);
- return CheckPathBetweenTrainerAndPlayer(trainerObj, playerCoord, trainerObj->mapobj_unk_18);
+ return CheckPathBetweenTrainerAndPlayer((struct MapObject2 *)trainerObj, playerCoord, trainerObj->mapobj_unk_18);
}
else // spinners
{
for(i = 0; i < 4; i++)
{
playerCoord = gIsTrainerInRange[i](trainerObj, trainerObj->trainerRange_berryTreeId, x, y);
- if ( CheckPathBetweenTrainerAndPlayer(trainerObj, playerCoord, i + 1) ) // directions are 1-4 instead of 0-3. south north west east
+ if ( CheckPathBetweenTrainerAndPlayer((struct MapObject2 *)trainerObj, playerCoord, i + 1) ) // directions are 1-4 instead of 0-3. south north west east
return playerCoord;
}
return FALSE;
@@ -138,6 +121,12 @@ bool8 IsTrainerInRangeEast(struct MapObject *trainerObj, s16 vision, s16 x, s16
return FALSE;
}
+#ifdef BUGFIX_TRAINERAPPROACH
+#define COLLISION_MASK ~1
+#else
+#define COLLISION_MASK 1
+#endif
+
bool8 CheckPathBetweenTrainerAndPlayer(struct MapObject2 *trainerObj, u8 playerCoord, u8 direction)
{
s16 x, y;
@@ -146,21 +135,18 @@ bool8 CheckPathBetweenTrainerAndPlayer(struct MapObject2 *trainerObj, u8 playerC
u8 i;
u8 var;
- if ( !playerCoord )
+ if (!playerCoord)
return FALSE;
x = trainerObj->coords2.x;
y = trainerObj->coords2.y;
- for(i = 0; i <= playerCoord - 1;)
+ for (i = 0; i <= playerCoord - 1; i++, MoveCoords(direction, &x, &y))
{
- var = sub_8060024(trainerObj, x, y, direction);
+ var = sub_8060024((struct MapObject *)trainerObj, x, y, direction);
- if (var != 0 && (var & 1) != 0 )
+ if (var && (var & COLLISION_MASK))
return FALSE;
-
- i++;
- MoveCoords(direction, &x, &y);
}
// preserve mapobj_unk_19 before clearing.
@@ -169,11 +155,11 @@ bool8 CheckPathBetweenTrainerAndPlayer(struct MapObject2 *trainerObj, u8 playerC
trainerObj->mapobj_unk_19 = 0;
trainerObj->mapobj_unk_19b = 0;
- var = npc_block_way(trainerObj, x, y, direction);
+ var = npc_block_way((struct MapObject *)trainerObj, x, y, direction);
trainerObj->mapobj_unk_19 = unk19_temp;
trainerObj->mapobj_unk_19b = unk19b_temp;
- if ( var == 4 )
+ if (var == 4)
return playerCoord;
return FALSE;
@@ -192,7 +178,7 @@ void sub_80842FC(TaskFunc func)
{
TaskFunc func2 = RunTrainerSeeFuncList;
u8 taskId = FindTaskIdByFunc(func2);
-
+
SetTaskFuncWithFollowupFunc(taskId, RunTrainerSeeFuncList, func);
gTasks[taskId].data[0] = 1;
func2(taskId);
@@ -201,7 +187,7 @@ void sub_80842FC(TaskFunc func)
void RunTrainerSeeFuncList(u8 taskId)
{
struct Task *task = &gTasks[taskId];
- struct MapObject *trainerObj = (task->data[1] << 16) | (task->data[2]);
+ struct MapObject *trainerObj = (struct MapObject *)((task->data[1] << 16) | (task->data[2]));
if (!trainerObj->active)
SwitchTaskToFollowupFunc(taskId);
@@ -218,9 +204,9 @@ s8 sub_8084398(u8 taskId, struct Task *task, struct MapObject *trainerObj)
{
u8 direction;
- FieldObjectGetLocalIdAndMap(trainerObj, &gUnknown_0202FF84[0], &gUnknown_0202FF84[1], &gUnknown_0202FF84[2]);
+ FieldObjectGetLocalIdAndMap(trainerObj, (u8 *)&gUnknown_0202FF84[0], (u8 *)&gUnknown_0202FF84[1], (u8 *)&gUnknown_0202FF84[2]);
FieldEffectStart(0);
-
+
direction = GetFaceDirectionAnimId(trainerObj->mapobj_unk_18);
FieldObjectSetSpecialAnim(trainerObj, direction);
@@ -286,17 +272,17 @@ s8 sub_8084478(u8 taskId, struct Task *task, struct MapObject *trainerObj)
s8 sub_8084534(u8 taskId, struct Task *task, struct MapObject *trainerObj) // technically only 1 parameter, but needs all 3 for TrainerSeeFuncList call.
{
struct MapObject *playerObj = &gMapObjects[gPlayerAvatar.mapObjectId];
-
+
if ( !FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive(playerObj)
|| FieldObjectClearAnimIfSpecialAnimFinished(playerObj) )
SwitchTaskToFollowupFunc(taskId);
-
+
return 0;
}
s8 sub_8084578(u8 taskId, struct Task *task, struct MapObject *trainerObj)
{
- if(!FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive(trainerObj)
+ if(!FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive(trainerObj)
|| FieldObjectClearAnimIfSpecialAnimFinished(trainerObj))
{
FieldObjectSetSpecialAnim(trainerObj, 0x59);
@@ -309,13 +295,13 @@ s8 sub_80845AC(u8 taskId, struct Task *task, struct MapObject *trainerObj)
{
if ( FieldObjectClearAnimIfSpecialAnimFinished(trainerObj) )
task->data[0] = 3;
-
+
return 0;
}
s8 sub_80845C8(u8 taskId, struct Task *task, struct MapObject *trainerObj)
{
- if(!FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive(trainerObj)
+ if(!FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive(trainerObj)
|| FieldObjectClearAnimIfSpecialAnimFinished(trainerObj))
{
FieldObjectSetSpecialAnim(trainerObj, 0x3E);
@@ -346,7 +332,7 @@ s8 sub_8084654(u8 taskId, struct Task *task, struct MapObject *trainerObj)
{
trainerObj->mapobj_bit_26 = 0;
trainerObj->mapobj_bit_2 = 1;
-
+
sprite = &gSprites[trainerObj->spriteId];
sprite->oam.priority = 2;
FieldObjectClearAnimIfSpecialAnimFinished(trainerObj);
@@ -370,7 +356,7 @@ void sub_80846E4(u8 taskId)
struct MapObject *mapObj;
// another mapObj loaded into by loadword?
- LoadWordFromTwoHalfwords(&task->data[1], &mapObj);
+ LoadWordFromTwoHalfwords(&task->data[1], (u32 *)&mapObj);
if(!task->data[7])
{
FieldObjectClearAnim(mapObj);
@@ -402,3 +388,71 @@ void sub_80847D8(u8 taskId)
DestroyTask(taskId);
EnableBothScriptContexts();
}
+
+u8 FldEff_ExclamationMarkIcon1(void)
+{
+ u8 spriteId = CreateSpriteAtEnd(&gSpriteTemplate_839B510, 0, 0, 0x53);
+
+ if (spriteId != 64)
+ sub_8084894(&gSprites[spriteId], 0, 0);
+
+ return 0;
+}
+
+u8 FldEff_ExclamationMarkIcon2(void)
+{
+ u8 spriteId = CreateSpriteAtEnd(&gSpriteTemplate_839B510, 0, 0, 0x52);
+
+ if (spriteId != 64)
+ sub_8084894(&gSprites[spriteId], 33, 1);
+
+ return 0;
+}
+
+u8 FldEff_HeartIcon(void)
+{
+ u8 spriteId = CreateSpriteAtEnd(&gSpriteTemplate_839B528, 0, 0, 0x52);
+
+ if (spriteId != 64)
+ sub_8084894(&gSprites[spriteId], 46, 0);
+
+ return 0;
+}
+
+void sub_8084894(struct Sprite *sprite, u16 a2, u8 a3)
+{
+ sprite->oam.priority = 1;
+ sprite->coordOffsetEnabled = 1;
+
+ sprite->data0 = gUnknown_0202FF84[0];
+ sprite->data1 = gUnknown_0202FF84[1];
+ sprite->data2 = gUnknown_0202FF84[2];
+ sprite->data3 = -5;
+ sprite->data7 = a2;
+
+ StartSpriteAnim(sprite, a3);
+}
+
+void objc_exclamation_mark_probably(struct Sprite *sprite)
+{
+ u8 mapObjId;
+
+ if (TryGetFieldObjectIdByLocalIdAndMap(sprite->data0, sprite->data1, sprite->data2, &mapObjId)
+ || sprite->animEnded)
+ {
+ FieldEffectStop(sprite, (u8)sprite->data7);
+ }
+ else
+ {
+ struct Sprite *mapObjSprite = &gSprites[gMapObjects[mapObjId].spriteId];
+ sprite->data4 += sprite->data3;
+ sprite->pos1.x = mapObjSprite->pos1.x;
+ sprite->pos1.y = mapObjSprite->pos1.y - 16;
+ sprite->pos2.x = mapObjSprite->pos2.x;
+ sprite->pos2.y = mapObjSprite->pos2.y + sprite->data4;
+ if (sprite->data4)
+ sprite->data3++;
+ else
+ sprite->data3 = 0;
+ }
+}
diff --git a/src/truck_scene.c b/src/truck_scene.c
index 565851856..64eca498c 100644
--- a/src/truck_scene.c
+++ b/src/truck_scene.c
@@ -1,24 +1,17 @@
#include "global.h"
+#include "truck_scene.h"
+#include "asm.h"
#include "palette.h"
#include "task.h"
#include "script.h"
#include "songs.h"
#include "sound.h"
+#include "field_camera.h"
extern s8 gTruckCamera_HorizontalTable[];
-extern void SetCameraPanning(s16 a1, s16 a2);
-extern void sub_805BD90(u8 localId, u8 mapNum, u8 mapGroup, s16 x, s16 y);
-
-void Task_Truck1(u8 taskId);
-void Task_Truck2(u8 taskId);
-void Task_Truck3(u8 taskId);
-void ExecuteTruckSequence(void);
-
s32 GetTruckCameraBobbingY(int a1)
{
- s32 result;
-
if (!(a1 % 120))
return -1;
else if ((a1 % 10) <= 4)
@@ -29,8 +22,6 @@ s32 GetTruckCameraBobbingY(int a1)
s32 GetTruckBoxMovement(int a1) // for the box movement?
{
- s32 result;
-
if (!((a1 + 120) % 180))
return -1;
diff --git a/src/tv.c b/src/tv.c
new file mode 100644
index 000000000..d2a54a539
--- /dev/null
+++ b/src/tv.c
@@ -0,0 +1,293 @@
+#include "global.h"
+#include "asm.h"
+#include "event_data.h"
+#include "field_message_box.h"
+#include "flags.h"
+#include "global.h"
+#include "rng.h"
+#include "string_util.h"
+#include "text.h"
+
+enum {
+ TVSHOW_FAN_CLUB_LETTER = 1,
+ TVSHOW_RECENT_HAPPENINGS = 2,
+ TVSHOW_PKMN_FAN_CLUB_OPINIONS = 3,
+ TVSHOW_NAME_RATER_SHOW = 5,
+ TVSHOW_MASS_OUTBREAK = 41,
+};
+
+struct UnkTvStruct {
+ s8 var0;
+};
+
+struct OutbreakPokemon {
+ /* 0x00 */ u16 species;
+ /* 0x02 */ u16 moves[4];
+ /* 0x0A */ u8 level;
+ /* 0x0B */ u8 location;
+};
+
+extern u16 gSpecialVar_0x8004;
+extern u8 gSpecialVar_0x8007;
+extern u16 gScriptResult;
+extern u8 gUnknown_020387E8;
+
+extern struct UnkTvStruct gUnknown_03005D38;
+
+extern u8 gSpeciesNames[][11];
+extern u8 *gTVPokemonOutbreakTextGroup[];
+extern struct OutbreakPokemon gPokeOutbreakSpeciesList[5];
+
+void sub_80BE478(void) {
+ u16 playerNameLength;
+ u16 pokemonNicknameLength;
+ TVShow *tvShow;
+
+ sub_80BF478();
+
+ if (gScriptResult == 1) {
+ return;
+ }
+
+ GetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_NICKNAME, gStringVar1);
+
+ playerNameLength = StringLength(gSaveBlock2.playerName);
+ if (playerNameLength <= 1) {
+ return;
+ }
+
+ pokemonNicknameLength = StringLength(gStringVar1);
+ if (pokemonNicknameLength <= 1) {
+ return;
+ }
+
+ tvShow = &gSaveBlock1.tvShows[gUnknown_03005D38.var0];
+
+ tvShow->nameRaterShow.var00 = TVSHOW_NAME_RATER_SHOW;
+ tvShow->nameRaterShow.var01 = 1;
+
+ tvShow->nameRaterShow.species = GetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_SPECIES, NULL);
+ tvShow->nameRaterShow.random = Random() % 3;
+ tvShow->nameRaterShow.random2 = Random() % 2;
+
+ tvShow->nameRaterShow.var1C = sub_80BF674(tvShow->nameRaterShow.species);
+
+ StringCopy(tvShow->nameRaterShow.trainerName, gSaveBlock2.playerName);
+
+ GetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_NICKNAME, tvShow->nameRaterShow.pokemonName);
+
+ sub_80BE160(tvShow);
+
+ tvShow->nameRaterShow.language = GAME_LANGUAGE;
+ tvShow->nameRaterShow.var1F = sub_80BDEAC(tvShow->nameRaterShow.pokemonName);
+
+ StripExtCtrlCodes(tvShow->nameRaterShow.pokemonName);
+}
+
+void StartMassOutbreak(void) {
+ TVShow *tvShow;
+
+ tvShow = &gSaveBlock1.tvShows[gSpecialVar_0x8004];
+
+ gSaveBlock1.outbreakPokemonSpecies = tvShow->massOutbreak.species;
+ gSaveBlock1.outbreakLocationMapNum = tvShow->massOutbreak.locationMapNum;
+ gSaveBlock1.outbreakLocationMapGroup = tvShow->massOutbreak.locationMapGroup;
+ gSaveBlock1.outbreakPokemonLevel = tvShow->massOutbreak.level;
+ gSaveBlock1.outbreakUnk1 = tvShow->massOutbreak.var02;
+ gSaveBlock1.outbreakUnk2 = tvShow->massOutbreak.var0E;
+ gSaveBlock1.outbreakPokemonMoves[0] = tvShow->massOutbreak.moves[0];
+ gSaveBlock1.outbreakPokemonMoves[1] = tvShow->massOutbreak.moves[1];
+ gSaveBlock1.outbreakPokemonMoves[2] = tvShow->massOutbreak.moves[2];
+ gSaveBlock1.outbreakPokemonMoves[3] = tvShow->massOutbreak.moves[3];
+ gSaveBlock1.outbreakUnk4 = tvShow->massOutbreak.var03;
+ gSaveBlock1.outbreakPokemonProbability = tvShow->massOutbreak.probability;
+ gSaveBlock1.outbreakUnk5 = 2;
+}
+
+void sub_80BE5FC(void) {
+ TVShow *tvShow;
+ u16 species;
+
+ tvShow = &gSaveBlock1.tvShows[gUnknown_03005D38.var0];
+
+ tvShow->fanclubLetter.var00 = TVSHOW_FAN_CLUB_LETTER;
+ tvShow->fanclubLetter.var01 = 1;
+ StringCopy(tvShow->fanclubLetter.playerName, gSaveBlock2.playerName);
+
+ species = GetMonData(&gPlayerParty[GetLeadMonIndex()], MON_DATA_SPECIES, NULL);
+ tvShow->fanclubLetter.species = species;
+ sub_80BE160(tvShow);
+ tvShow->fanclubLetter.var18 = GAME_LANGUAGE;
+}
+
+void sub_80BE65C(void) {
+ TVShow *tvShow;
+
+ tvShow = &gSaveBlock1.tvShows[gUnknown_03005D38.var0];
+
+ tvShow->recentHappenings.var00 = TVSHOW_RECENT_HAPPENINGS;
+ tvShow->recentHappenings.var01 = 1;
+ StringCopy(&tvShow->recentHappenings.var10[0], &gSaveBlock2.playerName[0]);
+ tvShow->recentHappenings.var02 = 0;
+
+ sub_80BE160(tvShow);
+ tvShow->recentHappenings.var18 = GAME_LANGUAGE;
+}
+
+void sub_80BE6A0(void) {
+ TVShow *tvShow;
+ u8 monIndex;
+
+ tvShow = &gSaveBlock1.tvShows[gUnknown_03005D38.var0];
+
+ tvShow->fanclubOpinions.var00 = TVSHOW_PKMN_FAN_CLUB_OPINIONS;
+ tvShow->fanclubOpinions.var01 = 1;
+
+ monIndex = GetLeadMonIndex();
+
+ tvShow->fanclubOpinions.var04A = GetMonData(&gPlayerParty[monIndex], MON_DATA_FRIENDSHIP, NULL) / 16;
+ tvShow->fanclubOpinions.var04B = gSpecialVar_0x8007;
+
+
+ StringCopy(tvShow->fanclubOpinions.var05, gSaveBlock2.playerName);
+
+ GetMonData(&gPlayerParty[GetLeadMonIndex()], MON_DATA_NICKNAME, tvShow->fanclubOpinions.var10);
+
+ tvShow->fanclubOpinions.var02 = GetMonData(&gPlayerParty[GetLeadMonIndex()], MON_DATA_SPECIES, NULL);
+ sub_80BE160(tvShow);
+ tvShow->fanclubOpinions.var0D = GAME_LANGUAGE;
+ tvShow->fanclubOpinions.var0E = sub_80BDEAC(tvShow->fanclubOpinions.var10);
+ StripExtCtrlCodes(tvShow->fanclubOpinions.var10);
+}
+
+void nullsub_21(void) {
+
+}
+
+void sub_80BE778(void) {
+ u8 i;
+
+ if (!FlagGet(SYS_GAME_CLEAR)) {
+ return;
+ }
+
+
+ for (i = 0; i < 24; i++) {
+ if (gSaveBlock1.tvShows[i].massOutbreak.var00 == TVSHOW_MASS_OUTBREAK) {
+ return;
+ }
+ }
+
+ if (sub_80BF77C(0x147)) {
+ return;
+ }
+
+ gUnknown_03005D38.var0 = sub_80BF720(gSaveBlock1.tvShows);
+ if (gUnknown_03005D38.var0 == -1) {
+ return;
+ }
+ {
+ u16 rand;
+ u16 val;
+ s32 val2;
+ TVShow *tvShow;
+
+ rand = Random();
+ val = rand % 5;
+
+ val2 = gUnknown_03005D38.var0;
+
+ tvShow = &gSaveBlock1.tvShows[val2];
+
+ tvShow->massOutbreak.var00 = TVSHOW_MASS_OUTBREAK;
+ tvShow->massOutbreak.var01 = 1;
+
+ tvShow->massOutbreak.level = gPokeOutbreakSpeciesList[val].level;
+ tvShow->massOutbreak.var02 = 0;
+ tvShow->massOutbreak.var03 = 0;
+ tvShow->massOutbreak.species = gPokeOutbreakSpeciesList[val].species;
+ tvShow->massOutbreak.var0E = 0;
+ tvShow->massOutbreak.moves[0] = gPokeOutbreakSpeciesList[val].moves[0];
+ tvShow->massOutbreak.moves[1] = gPokeOutbreakSpeciesList[val].moves[1];
+ tvShow->massOutbreak.moves[2] = gPokeOutbreakSpeciesList[val].moves[2];
+ tvShow->massOutbreak.moves[3] = gPokeOutbreakSpeciesList[val].moves[3];
+ tvShow->massOutbreak.locationMapNum = gPokeOutbreakSpeciesList[val].location;
+ tvShow->massOutbreak.locationMapGroup = 0;
+ tvShow->massOutbreak.var12 = 0;
+ tvShow->massOutbreak.probability = 0x32;
+ tvShow->massOutbreak.var15 = 0;
+ tvShow->massOutbreak.var16 = 0x01;
+ sub_80BE160(tvShow);
+
+ tvShow->massOutbreak.var18 = GAME_LANGUAGE;
+ }
+}
+
+void EndMassOutbreak(void) {
+ gSaveBlock1.outbreakPokemonSpecies = 0;
+ gSaveBlock1.outbreakLocationMapNum = 0;
+ gSaveBlock1.outbreakLocationMapGroup = 0;
+ gSaveBlock1.outbreakPokemonLevel = 0;
+ gSaveBlock1.outbreakUnk1 = 0;
+ gSaveBlock1.outbreakUnk2 = 0;
+ gSaveBlock1.outbreakPokemonMoves[0] = 0;
+ gSaveBlock1.outbreakPokemonMoves[1] = 0;
+ gSaveBlock1.outbreakPokemonMoves[2] = 0;
+ gSaveBlock1.outbreakPokemonMoves[3] = 0;
+ gSaveBlock1.outbreakUnk4 = 0;
+ gSaveBlock1.outbreakPokemonProbability = 0;
+ gSaveBlock1.outbreakUnk5 = 0;
+}
+
+void sub_80BE8C4(u16 arg0) {
+ sub_80BE8EC(arg0);
+ UpdateMassOutbreakTimeLeft(arg0);
+ sub_80BEE84(arg0);
+ sub_80BEA5C(arg0);
+}
+
+asm(".section .text_b");
+
+u8 sub_80BF4F4(u8 arg0) {
+ u32 species;
+
+ GetMonData(&gPlayerParty[arg0], MON_DATA_NICKNAME, &gStringVar1);
+
+ species = GetMonData(&gPlayerParty[arg0], MON_DATA_SPECIES, NULL);
+
+ if (StringCompareWithoutExtCtrlCodes(gSpeciesNames[species], gStringVar1) == FALSE) {
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+asm(".section .text_c");
+
+void DoTVShowPokemonNewsMassOutbreak(void) {
+ TVShow *tvShow;
+
+ tvShow = &gSaveBlock1.tvShows[gSpecialVar_0x8004];
+
+ sub_80FBFB4(gStringVar1, tvShow->massOutbreak.locationMapNum, 0);
+
+ StringCopy(gStringVar2, gSpeciesNames[tvShow->massOutbreak.species]);
+
+ TVShowDone();
+ StartMassOutbreak();
+
+ ShowFieldMessage(gTVPokemonOutbreakTextGroup[gUnknown_020387E8]);
+}
+
+asm(".section .text_d");
+
+void TVShowDone(void) {
+ gScriptResult = 1;
+ gUnknown_020387E8 = 0;
+
+ gSaveBlock1.tvShows[gSpecialVar_0x8004].common.var01 = 0;
+}
+
+void sub_80C2014(void) {
+ gUnknown_020387E8 = 0;
+}
diff --git a/src/var.c b/src/var.c
deleted file mode 100644
index 08b109e6f..000000000
--- a/src/var.c
+++ /dev/null
@@ -1,37 +0,0 @@
-#include "global.h"
-#include "var.h"
-
-extern u16 *gSpecialVars[];
-
-u16 *GetVarPointer(u16 id)
-{
- if (id < 0x4000)
- return NULL;
-
- if ((s16)id >= 0)
- return &gSaveBlock1.vars[id - 0x4000];
-
- return gSpecialVars[id - 0x8000];
-}
-
-u16 VarGet(u16 id)
-{
- u16 *ptr = GetVarPointer(id);
- if (!ptr)
- return id;
- return *ptr;
-}
-
-bool8 VarSet(u16 id, u16 value)
-{
- u16 *ptr = GetVarPointer(id);
- if (!ptr)
- return FALSE;
- *ptr = value;
- return TRUE;
-}
-
-u8 VarGetFieldObjectGraphicsId(u8 id)
-{
- return VarGet(0x4010 + id);
-}
diff --git a/src/wallclock.c b/src/wallclock.c
index 05e30a8cb..147a68d31 100644
--- a/src/wallclock.c
+++ b/src/wallclock.c
@@ -1,33 +1,28 @@
#include "global.h"
+#include "wallclock.h"
+#include "asm.h"
+#include "decompress.h"
#include "main.h"
#include "menu.h"
#include "palette.h"
#include "rtc.h"
#include "songs.h"
-#include "sprite.h"
#include "task.h"
-#include "text.h"
#include "trig.h"
#include "sound.h"
-//Functions that need to be put in headers
-void remove_some_task(void);
-void LoadCompressedObjectPic(void *);
-
extern u16 gSpecialVar_0x8004;
extern u16 gMiscClockMale_Pal[];
extern u16 gMiscClockFemale_Pal[];
extern u8 gMiscClock_Gfx[];
-extern u8 gUnknown_083F7A90[];
+extern struct SpriteSheet gUnknown_083F7A90;
extern struct SpritePalette gUnknown_083F7AA0;
extern u8 gUnknown_08E95774[];
extern u8 gUnknown_08E954B0[];
extern u8 gOtherText_CorrectTimePrompt[];
-extern u8 * const gUnknown_08376D74[][2];
+extern const struct MenuAction gMenuYesNoItems[];
extern s8 gClockHandCoords[][2];
-extern struct WindowConfig gWindowConfig_81E6C3C;
-extern struct WindowConfig gWindowConfig_81E6CE4;
extern struct SpriteTemplate gSpriteTemplate_83F7AD8;
extern struct SpriteTemplate gSpriteTemplate_83F7AF0;
extern struct SpriteTemplate gSpriteTemplate_83F7B28;
@@ -127,7 +122,7 @@ static void LoadWallClockGraphics(void)
ResetSpriteData();
ResetPaletteFade();
FreeAllSpritePalettes();
- LoadCompressedObjectPic(gUnknown_083F7A90);
+ LoadCompressedObjectPic(&gUnknown_083F7A90);
LoadSpritePalettes(&gUnknown_083F7AA0);
SetUpWindowConfig(&gWindowConfig_81E6C3C);
InitMenuWindow(&gWindowConfig_81E6CE4);
@@ -155,7 +150,7 @@ static void WallClockInit(void)
}
//Allow player to set the clock
-void Cb2_StartWallClock(void)
+void CB2_StartWallClock(void)
{
u8 taskId;
u8 spriteId;
@@ -194,7 +189,7 @@ void Cb2_StartWallClock(void)
}
//View, but don't set, the clock
-void Cb2_ViewWallClock(void)
+void CB2_ViewWallClock(void)
{
u8 taskId;
s16 angle1;
@@ -302,7 +297,7 @@ static void Task_SetClock3(u8 taskId)
MenuDrawTextWindow(2, 16, 27, 19);
MenuPrint(gOtherText_CorrectTimePrompt, 3, 17);
MenuDrawTextWindow(23, 8, 29, 13);
- PrintMenuItems(24, 9, 2, gUnknown_08376D74);
+ PrintMenuItems(24, 9, 2, gMenuYesNoItems);
InitMenu(0, 24, 9, 2, 1, 5);
gTasks[taskId].func = Task_SetClock4;
}
@@ -337,7 +332,7 @@ static void Task_SetClock5(u8 taskId)
static void Task_SetClock6(u8 taskId)
{
if(!gPaletteFade.active)
- SetMainCallback2((MainCallback)gMain.field_8);
+ SetMainCallback2((MainCallback)gMain.savedCallback);
}
static void Task_ViewClock1(u8 taskId)
@@ -363,7 +358,7 @@ static void Task_ViewClock3(u8 taskId)
static void Task_ViewClock4(u8 taskId)
{
if(!gPaletteFade.active)
- SetMainCallback2((MainCallback)gMain.field_8);
+ SetMainCallback2((MainCallback)gMain.savedCallback);
}
static u8 CalcMinHandDelta(u16 speed)
diff --git a/src/weather.c b/src/weather.c
new file mode 100644
index 000000000..520185441
--- /dev/null
+++ b/src/weather.c
@@ -0,0 +1,307 @@
+#include "global.h"
+#include "weather.h"
+#include "asm.h"
+#include "task.h"
+#include "sprite.h"
+#include "palette.h"
+
+struct Weather {
+ u8 filler_000[0x200];
+ u8 unknown_200[2][32];
+ u8 filler_240[0x480];
+ s8 unknown_6C0;
+ s8 unknown_6C1;
+ u8 unknown_6C2;
+ u8 unknown_6C3;
+ u16 unknown_6C4;
+ u8 unknown_6C6;
+ u8 unknown_6C7;
+ u8 unknown_6C8;
+ u8 unknown_6C9;
+ u8 unknown_6CA;
+ u8 unknown_6CB;
+ u8 filler_6CC[2];
+ u16 unknown_6CE;
+ u8 unknown_6D0;
+ u8 unknown_6D1;
+ u8 filler_6D2[1];
+ u8 unknown_6D3;
+ u8 unknown_6D4;
+ u8 unknown_6D5;
+ u8 filler_6D6[2];
+ u8 unknown_6D8;
+ u8 filler_6D9[1];
+ u8 unknown_6DA;
+ u8 filler_6DB[3];
+ u8 unknown_6DE;
+ u8 filler_6DF[5];
+ u8 unknown_6E4;
+ u8 filler_6E5[0x15];
+ u8 unknown_6FA;
+ u8 unknown_6FB;
+ u8 filler_6FC[4];
+ u8 unknown_700;
+ u8 filler_701[0x15];
+ u8 unknown_716;
+ u8 unknown_717;
+ u8 filler_718[0xc];
+ u8 unknown_724;
+ u8 filler_725[9];
+ u8 unknown_72E;
+};
+
+#define gWeather gUnknown_0202F7E8
+extern struct Weather gWeather;
+extern u8 *gUnknown_083970E8;
+extern u8 (*gUnknown_08396FC8[][4])(void);
+extern u8 (*gUnknown_083970B8[])(void);
+extern u8 *gUnknown_030006DC;
+extern u8 gUnknown_083970C8;
+extern u8 (*gUnknown_0202FC48)[32];
+extern u8 gUnknown_0202F9E8[32];
+
+
+void sub_807C828(void) {
+ u8 index;
+ if (!FuncIsActiveTask(&sub_807CA34)) {
+ index = AllocSpritePalette(0x1200);
+ CpuCopy32(&gUnknown_083970E8, &gPlttBufferUnfaded[0x100 + index * 16], 32);
+ sub_807CB10();
+ gWeather.unknown_6D5 = index;
+ gWeather.unknown_6D4 = AllocSpritePalette(0x1201);
+ gWeather.unknown_6DA = 0;
+ gWeather.unknown_6D8 = 0;
+ gWeather.unknown_6DE = 0;
+ gWeather.unknown_6E4 = 0;
+ gWeather.unknown_700 = 0;
+ gWeather.unknown_6FB = 0;
+ gWeather.unknown_724 = 0;
+ gWeather.unknown_716 = 0;
+ gWeather.unknown_717 = 0;
+ gWeather.unknown_72E = 0;
+ gWeather.unknown_6FA = 0;
+ sub_807DB64(16, 0);
+ gWeather.unknown_6D0 = 0;
+ gWeather.unknown_6C6 = 3;
+ gWeather.unknown_6C8 = 0;
+ gWeather.unknown_6D3 = 1;
+ gWeather.unknown_6C9 = CreateTask(&sub_807C9E4, 80);
+ }
+}
+
+void DoWeatherEffect(u8 effect) {
+ if (effect != 3 && effect != 5 && effect != 13) {
+ PlayRainSoundEffect();
+ }
+ if (gWeather.unknown_6D1 != effect && gWeather.unknown_6D0 == effect) {
+ gUnknown_08396FC8[effect][0]();
+ }
+ gWeather.unknown_6D3 = 0;
+ gWeather.unknown_6D1 = effect;
+ gWeather.unknown_6CE = 0;
+}
+
+void sub_807C988(u8 effect) {
+ PlayRainSoundEffect();
+ gWeather.unknown_6D0 = effect;
+ gWeather.unknown_6D1 = effect;
+}
+
+void sub_807C9B4(u8 effect) {
+ PlayRainSoundEffect();
+ gWeather.unknown_6D0 = effect;
+ gWeather.unknown_6D1 = effect;
+ gWeather.unknown_6C8 = 1;
+}
+
+void sub_807C9E4(u8 task) {
+ if (gWeather.unknown_6C8) {
+ gUnknown_08396FC8[gWeather.unknown_6D0][2]();
+ gTasks[task].func = &sub_807CA34;
+ }
+}
+
+void sub_807CA34(u8 task) {
+ u8 v1;
+ if (gWeather.unknown_6D0 != gWeather.unknown_6D1) {
+ v1 = gUnknown_08396FC8[gWeather.unknown_6D0][3]();
+ if (!v1) {
+ gUnknown_08396FC8[gWeather.unknown_6D1][0]();
+ gWeather.unknown_6C3 = 0; // compiler reuses v1
+ gWeather.unknown_6C6 = 0; // compiler reuses v1
+ gWeather.unknown_6D0 = gWeather.unknown_6D1;
+ gWeather.unknown_6D3 = 1;
+ }
+ } else {
+ gUnknown_08396FC8[gWeather.unknown_6D0][1]();
+ }
+ gUnknown_083970B8[gWeather.unknown_6C6]();
+}
+
+void sub_807CAE8(void) {
+ gWeather.unknown_6C1 = 0;
+ gWeather.unknown_6C2 = 0;
+}
+
+void nullsub_38(void) {
+}
+
+u32 sub_807CB0C(void) {
+ return 0;
+}
+
+void sub_807CB10(void) {
+ u16 v0;
+ u8 (*v1)[32];
+ u16 v2;
+ u16 v4;
+ u16 v5;
+ u16 v6;
+ u16 v9;
+ u32 v10;
+ u16 v11;
+ s16 dunno;
+
+ gUnknown_030006DC = &gUnknown_083970C8;
+ for (v0 = 0; v0 <= 1; v0++) {
+ if (v0 == 0) {
+ v1 = &gUnknown_0202F9E8;
+ } else {
+ v1 = &gUnknown_0202F9E8 + 19;
+ }
+ for (v2 = 0; (u16)v2 <= 0x1f; v2++) {
+ v4 = v2 << 8;
+ if (v0 == 0) {
+ v5 = (v2 << 8) / 16;
+ } else {
+ v5 = 0;
+ }
+ v6 = 0;
+ for (; v6 <= 2; v6++) {
+ v4 = (v4 - v5);
+ v1[v6][v2] = v4 >> 8;
+ }
+ v9 = v4;
+ v10 = 0x1f00 - v4;
+ if ((0x1f00 - v4) < 0) {
+ v10 += 0xf;
+ }
+ v11 = v10 >> 4;
+ if (v2 <= 0xb) {
+ for (; v6 <= 0x12; v6++) {
+ v4 += v11;
+ dunno = v4 - v9;
+ if (dunno > 0) {
+ v4 -= (dunno + ((u16)dunno >> 15)) >> 1;
+ }
+ v1[v6][v2] = v4 >> 8;
+ if (v1[v6][v2] > 0x1f) {
+ v1[v6][v2] = 0x1f;
+ }
+ }
+ } else {
+ for (; v6 <= 0x12; v6++) {
+ v4 += v11;
+ v1[v6][v2] = v4 >> 8;
+ if (v1[v6][v2] > 0x1f) {
+ v1[v6][v2] = 0x1f;
+ }
+ }
+ }
+ }
+ }
+}
+
+void sub_807CC24(void) {
+ if (gWeather.unknown_6C0 == gWeather.unknown_6C1) {
+ gWeather.unknown_6C6 = 3;
+ } else {
+ if (++gWeather.unknown_6C3 >= gWeather.unknown_6C2) {
+ gWeather.unknown_6C3 = 0;
+ if (gWeather.unknown_6C0 < gWeather.unknown_6C1) {
+ gWeather.unknown_6C0++;
+ } else {
+ gWeather.unknown_6C0--;
+ }
+ sub_807CEBC(0, 0x20, gWeather.unknown_6C0);
+ }
+ }
+}
+
+void sub_807CCAC(void) {
+ if (++gWeather.unknown_6CB > 1) {
+ gWeather.unknown_6CA = 0;
+ }
+ switch (gWeather.unknown_6D0) {
+ case 3:
+ case 4:
+ case 5:
+ case 11:
+ case 13:
+ if (sub_807CDC4() == 0) {
+ gWeather.unknown_6C0 = 3;
+ gWeather.unknown_6C6 = 3;
+ }
+ break;
+ case 12:
+ if (sub_807CE24() == 0) {
+ gWeather.unknown_6C0 = -6;
+ gWeather.unknown_6C6 = 3;
+ }
+ break;
+ case 6:
+ if (sub_807CE7C() == 0) {
+ gWeather.unknown_6C0 = 0;
+ gWeather.unknown_6C6 = 3;
+ }
+ break;
+ case 7:
+ case 8:
+ case 9:
+ case 10:
+ default:
+ if (!gPaletteFade.active) {
+ gWeather.unknown_6C0 = gWeather.unknown_6C1;
+ gWeather.unknown_6C6 = 3;
+ }
+ break;
+ }
+}
+
+u8 sub_807CDC4(void) {
+ if (gWeather.unknown_6C7 == 0x10) {
+ return 0;
+ }
+ if (++gWeather.unknown_6C7 >= 0x10) {
+ sub_807CEBC(0, 0x20, 3);
+ gWeather.unknown_6C7 = 0x10;
+ return 0;
+ }
+ sub_807D1BC(0, 0x20, 3, 0x10 - gWeather.unknown_6C7, gWeather.unknown_6C4);
+ return 1;
+}
+
+u8 sub_807CE24(void) {
+ if (gWeather.unknown_6C7 == 0x10) {
+ return 0;
+ }
+ if (++gWeather.unknown_6C7 >= 0x10) {
+ sub_807CEBC(0, 0x20, -6);
+ gWeather.unknown_6C7 = 0x10;
+ return 0;
+ }
+ sub_807D304(-6, 0x10 - gWeather.unknown_6C7, gWeather.unknown_6C4);
+ return 1;
+}
+
+u8 sub_807CE7C(void) {
+ if (gWeather.unknown_6C7 == 0x10) {
+ return 0;
+ }
+ ++gWeather.unknown_6C7;
+ sub_807D424(0x10 - gWeather.unknown_6C7, gWeather.unknown_6C4);
+ return 1;
+}
+
+void nullsub_39(void) {
+}
diff --git a/src/wild_encounter.c b/src/wild_encounter.c
index 151088cd6..8e983c300 100644
--- a/src/wild_encounter.c
+++ b/src/wild_encounter.c
@@ -1,11 +1,15 @@
#include "global.h"
+#include "wild_encounter.h"
+#include "asm.h"
+#include "field_player_avatar.h"
+#include "safari_zone.h"
+#include "battle_setup.h"
#include "abilities.h"
-#include "fieldmap.h"
-#include "pokemon.h"
#include "rng.h"
#include "script.h"
-#include "flag.h"
-#include "var.h"
+#include "event_data.h"
+#include "rom4.h"
+#include "metatile_behavior.h"
struct WildPokemon
{
@@ -30,22 +34,6 @@ struct WildPokemonHeader
struct WildPokemonInfo *fishingMonsInfo;
};
-extern bool8 sub_805759C(u8);
-extern void GetXYCoordsOneStepInFrontOfPlayer(void *, void *);
-extern s16 sub_810CAE4(u8, struct Pokeblock *);
-extern bool32 GetSafariZoneFlag(void);
-extern u8 TestPlayerAvatarFlags(u8);
-extern u8 MetatileBehavior_IsLandWildEncounter(u8);
-extern u8 sub_81344CC(void);
-extern u8 MetatileBehavior_IsWaterWildEncounter(u8);
-extern void CheckForSafariZoneAndProceed(void);
-extern u8 MetatileBehavior_IsBridge(u8);
-extern void PlayerGetDestCoords(u16 *x, u16 *y);
-extern void sub_80BEA50(u16);
-extern void sav12_xor_increment(u8);
-extern int MapGridGetMetatileBehaviorAt(int x, int y);
-extern struct Pokeblock *SafariZoneGetActivePokeblock(void);
-
extern u16 gRoute119WaterTileData[];
extern struct WildPokemonHeader gWildMonHeaders[];
extern struct Pokemon gEnemyParty[6];
@@ -399,7 +387,7 @@ static bool8 DoWildEncounterRateDiceRoll(u16 encounterRate)
static bool8 DoWildEncounterTest(u32 encounterRate, bool8 ignoreAbility)
{
encounterRate *= 16;
- if (TestPlayerAvatarFlags(6))
+ if (TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_MACH_BIKE | PLAYER_AVATAR_FLAG_ACRO_BIKE))
encounterRate = encounterRate * 80 / 100;
ApplyFluteEncounterRateMod(&encounterRate);
ApplyCleanseTagEncounterRateMod(&encounterRate);
@@ -454,7 +442,7 @@ bool8 StandardWildEncounter(u16 a, u16 b)
roamer = &gSaveBlock1.roamer;
if (RepelCheck(roamer->level))
{
- sub_8081A5C();
+ StartBattle_Roamer();
return 1;
}
}
@@ -474,7 +462,7 @@ bool8 StandardWildEncounter(u16 a, u16 b)
}
}
else if (MetatileBehavior_IsWaterWildEncounter(a) == TRUE
- || (TestPlayerAvatarFlags(8) && MetatileBehavior_IsBridge(a) == TRUE))
+ || (TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_SURFING) && MetatileBehavior_IsBridge(a) == TRUE))
{
if (gWildMonHeaders[headerNum].waterMonsInfo)
{
@@ -488,7 +476,7 @@ bool8 StandardWildEncounter(u16 a, u16 b)
roamer = &gSaveBlock1.roamer;
if (RepelCheck(roamer->level))
{
- sub_8081A5C();
+ StartBattle_Roamer();
return 1;
}
}
@@ -553,7 +541,7 @@ bool8 SweetScentWildEncounter(void)
return FALSE;
if (sub_81344CC() == TRUE)
{
- sub_8081A5C();
+ StartBattle_Roamer();
return TRUE;
}
if (DoMassOutbreakEncounterTest() == TRUE)
@@ -570,7 +558,7 @@ bool8 SweetScentWildEncounter(void)
return FALSE;
if (sub_81344CC() == TRUE)
{
- sub_8081A5C();
+ StartBattle_Roamer();
return TRUE;
}
GenerateWildMon(wildPokemonInfo, 1, FALSE);
@@ -608,7 +596,7 @@ void FishingWildEncounter(u8 rod)
gWildMonHeaders[GetCurrentMapWildMonHeader()].fishingMonsInfo,
rod);
}
- sav12_xor_increment(12);
+ IncrementGameStat(12);
sub_80BEA50(species);
CheckForSafariZoneAndProceed();
}
diff --git a/sym_common.txt b/sym_common.txt
index 252bcbfbc..6919bc8b6 100644
--- a/sym_common.txt
+++ b/sym_common.txt
@@ -47,7 +47,7 @@ gUnknown_03004284: @ 3004284
gUnknown_03004288: @ 3004288
.space 0x4
-gUnknown_0300428C: @ 300428C
+gBattleTerrain: @ 300428C
.space 0x4
gUnknown_03004290: @ 3004290
@@ -185,7 +185,7 @@ gDisableMusic: @ 3004AEC
gUnknown_03004AF0: @ 3004AF0
.space 0x10
-gUnknown_03004B00: @ 3004B00
+gBattleAnimArgs: @ 3004B00
.space 0x10
gUnknown_03004B10: @ 3004B10
@@ -337,7 +337,7 @@ gSaveFileStatus: @ 3005EB8
gUnknown_03005EBC: @ 3005EBC
.space 0x14
-gUnknown_03005ED0: @ 3005ED0
+gIntroFrameCounter: @ 3005ED0
.space 0x10
gUnknown_03005EE0: @ 3005EE0
diff --git a/sym_ewram.txt b/sym_ewram.txt
index 5bcdf1363..13304fef9 100644
--- a/sym_ewram.txt
+++ b/sym_ewram.txt
@@ -7,6 +7,7 @@
.include "src/link.o"
+ .align 2
gUnknown_020238C4: @ 20238C4
.space 0x1
@@ -22,7 +23,7 @@ gUnknown_020238C8: @ 20238C8
gUnknown_020238CC: @ 20238CC
.space 0x12C
-gUnknown_020239F8: @ 20239F8
+gBattleTypeFlags: @ 20239F8
.space 0x4
gUnknown_020239FC: @ 20239FC
@@ -244,7 +245,7 @@ gUnknown_02024D28: @ 2024D28
gUnknown_02024D68: @ 2024D68
.space 0x50
-word_2024DB8: @ 2024DB8
+gBattleWeather: @ 2024DB8
.space 0x4
gUnknown_02024DBC: @ 2024DBC
@@ -310,7 +311,7 @@ gSaveBlock2: @ 2024EA4
gSaveBlock1: @ 2025734
.space 0x3AC0
-gUnknown_020291F4: @ 20291F4
+gLoadedSaveData: @ items
.space 0x4D8
gUnknown_020296CC: @ 20296CC
@@ -364,17 +365,7 @@ gUnknown_02029816: @ 2029816
gLinkPlayerMapObjects: @ 2029818
.space 0x10
-gUnknown_02029828: @ 2029828
- .space 0x5000
-
-gMapHeader: @ 202E828
- .space 0x1C
-
-gUnknown_0202E844: @ 202E844
- .space 0xC
-
-gUnknown_0202E850: @ 202E850
- .space 0x4
+ .include "src/fieldmap.o"
gUnknown_0202E854: @ 202E854
.space 0x4
@@ -610,26 +601,11 @@ gUnknown_0202FFBA: @ 202FFBA
gUnknown_0202FFBC: @ 202FFBC
.space 0x4
-gUnknown_0202FFC0: @ 202FFC0
- .space 0x14
-
-gUnknown_0202FFD4: @ 202FFD4
- .space 0x2
-
-gUnknown_0202FFD6: @ 202FFD6
- .space 0x1A
-
-gUnknown_0202FFF0: @ 202FFF0
- .space 0xB0
+gTrainerCards: @ 202FFC0
+ .space 0xE0
gPokemonStorage: @ 20300A0
- .space 0x4
-
-gUnknown_020300A4: @ 20300A4
- .space 0x8340
-
-gUnknown_020383E4: @ 20383E4
- .space 0x8C
+ .space 0x83D0
gUnknown_02038470: @ 2038470
.space 0x3
@@ -748,15 +724,13 @@ gUnknown_02038568: @ 2038568
gUnknown_0203856C: @ 203856C
.space 0x4
-gUnknown_02038570: @ 2038570
- .space 0x2
-
-gUnknown_02038572: @ 2038572
- .space 0xB
+gContestMons: @ 2038570
+ .space 0xD
gUnknown_0203857D: @ 203857D
.space 0x11
+ @ contest move space
gUnknown_0203858E: @ 203858E
.space 0x8
@@ -781,13 +755,13 @@ gUnknown_02038690: @ 2038690
gUnknown_02038694: @ 2038694
.space 0x1
-gUnknown_02038695: @ 2038695
+gContestPlayerMonIndex: @ 2038695
.space 0x1
gUnknown_02038696: @ 2038696
.space 0x4
-gUnknown_0203869A: @ 203869A
+gIsLinkContest: @ 203869A
.space 0x1
gUnknown_0203869B: @ 203869B
diff --git a/tools/aif2pcm/main.c b/tools/aif2pcm/main.c
index dd2d368a5..be83554a2 100644
--- a/tools/aif2pcm/main.c
+++ b/tools/aif2pcm/main.c
@@ -52,43 +52,93 @@ typedef struct {
unsigned long num_samples;
uint8_t *samples;
uint8_t midi_note;
+ bool has_loop;
unsigned long loop_offset;
double sample_rate;
} AifData;
+struct Bytes {
+ unsigned long length;
+ uint8_t *data;
+};
-char * get_file_extension(char *filename)
+struct Bytes *read_bytearray(const char *filename)
{
- char *dot = strrchr(filename, '.');
- if (!dot || dot == filename)
+ struct Bytes *bytes = malloc(sizeof(struct Bytes));
+ FILE *f = fopen(filename, "rb");
+ if (!f)
{
- FATAL_ERROR("Input file has no file extension.\n");
+ FATAL_ERROR("Failed to open '%s' for reading!\n", filename);
}
+ fseek(f, 0, SEEK_END);
+ bytes->length = ftell(f);
+ fseek(f, 0, SEEK_SET);
+ bytes->data = malloc(bytes->length);
+ unsigned long read = fread(bytes->data, bytes->length, 1, f);
+ fclose(f);
+ if (read <= 0)
+ {
+ FATAL_ERROR("Failed to read data from '%s'!\n", filename);
+ }
+ return bytes;
+}
+
+void write_bytearray(const char *filename, struct Bytes *bytes)
+{
+ FILE *f = fopen(filename, "wb");
+ if (!f)
+ {
+ FATAL_ERROR("Failed to open '%s' for writing!\n", filename);
+ }
+ fwrite(bytes->data, bytes->length, 1, f);
+ fclose(f);
+}
- return dot + 1;
+void free_bytearray(struct Bytes *bytes)
+{
+ free(bytes->data);
+ free(bytes);
}
-void change_file_extension(char *filename, const char *new_extension)
+char *get_file_extension(char *filename)
{
- char *dot = strrchr(filename, '.');
- if (!dot || dot == filename)
+ char *index = strrchr(filename, '.');
+ if (!index || index == filename)
{
- FATAL_ERROR("Input file has no file extension.\n");
+ return NULL;
}
+ return index + 1;
+}
- memcpy(dot + 1, new_extension, 3);
+char *new_file_extension(char *filename, char *ext)
+{
+ char *index = strrchr(filename, '.');
+ if (!index || index == filename)
+ {
+ index = filename + strlen(filename);
+ }
+ int length = index - filename;
+ char *new_filename = malloc(length + 1 + strlen(ext) + 1);
+ if (new_filename)
+ {
+ strcpy(new_filename, filename);
+ new_filename[length] = '.';
+ strcpy(new_filename + length + 1, ext);
+ }
+ return new_filename;
}
-AifData *read_aif(uint8_t * aif_file_data, unsigned long aif_file_data_size)
+void read_aif(struct Bytes *aif, AifData *aif_data)
{
- AifData *aif_data = (AifData *)malloc(sizeof(AifData));
+ aif_data->has_loop = false;
+ aif_data->num_samples = 0;
unsigned long pos = 0;
char chunk_name[5]; chunk_name[4] = '\0';
char chunk_type[5]; chunk_type[4] = '\0';
// Check for FORM Chunk
- memcpy(chunk_name, aif_file_data + pos, 4);
+ memcpy(chunk_name, &aif->data[pos], 4);
pos += 4;
if (strcmp(chunk_name, "FORM") != 0)
{
@@ -96,19 +146,19 @@ AifData *read_aif(uint8_t * aif_file_data, unsigned long aif_file_data_size)
}
// Read size of whole file.
- unsigned long whole_chunk_size = aif_file_data[pos++] << 24;
- whole_chunk_size |= (aif_file_data[pos++] << 16);
- whole_chunk_size |= (aif_file_data[pos++] << 8);
- whole_chunk_size |= (uint8_t)aif_file_data[pos++];
+ unsigned long whole_chunk_size = aif->data[pos++] << 24;
+ whole_chunk_size |= (aif->data[pos++] << 16);
+ whole_chunk_size |= (aif->data[pos++] << 8);
+ whole_chunk_size |= (uint8_t)aif->data[pos++];
- unsigned long expected_whole_chunk_size = aif_file_data_size - 8;
+ unsigned long expected_whole_chunk_size = aif->length - 8;
if (whole_chunk_size != expected_whole_chunk_size)
{
FATAL_ERROR("FORM Chunk ckSize '%lu' doesn't match actual size '%lu'!\n", whole_chunk_size, expected_whole_chunk_size);
}
// Check for AIFF Form Type
- memcpy(chunk_type, aif_file_data + pos, 4);
+ memcpy(chunk_type, &aif->data[pos], 4);
pos += 4;
if (strcmp(chunk_type, "AIFF") != 0)
{
@@ -118,44 +168,44 @@ AifData *read_aif(uint8_t * aif_file_data, unsigned long aif_file_data_size)
unsigned long num_sample_frames = 0;
// Read all the Chunks to populate the AifData struct.
- while ((pos + 8) < aif_file_data_size)
+ while ((pos + 8) < aif->length)
{
// Read Chunk id
- memcpy(chunk_name, aif_file_data + pos, 4);
+ memcpy(chunk_name, &aif->data[pos], 4);
pos += 4;
- unsigned long chunk_size = (aif_file_data[pos++] << 24);
- chunk_size |= (aif_file_data[pos++] << 16);
- chunk_size |= (aif_file_data[pos++] << 8);
- chunk_size |= aif_file_data[pos++];
+ unsigned long chunk_size = (aif->data[pos++] << 24);
+ chunk_size |= (aif->data[pos++] << 16);
+ chunk_size |= (aif->data[pos++] << 8);
+ chunk_size |= aif->data[pos++];
- if ((pos + chunk_size) > aif_file_data_size)
+ if ((pos + chunk_size) > aif->length)
{
FATAL_ERROR("%s chunk at 0x%lx reached end of file before finishing\n", chunk_name, pos);
}
if (strcmp(chunk_name, "COMM") == 0)
{
- short num_channels = (aif_file_data[pos++] << 8);
- num_channels |= (uint8_t)aif_file_data[pos++];
+ short num_channels = (aif->data[pos++] << 8);
+ num_channels |= (uint8_t)aif->data[pos++];
if (num_channels != 1)
{
FATAL_ERROR("numChannels (%d) in the COMM Chunk must be 1!\n", num_channels);
}
- num_sample_frames = (aif_file_data[pos++] << 24);
- num_sample_frames |= (aif_file_data[pos++] << 16);
- num_sample_frames |= (aif_file_data[pos++] << 8);
- num_sample_frames |= (uint8_t)aif_file_data[pos++];
+ num_sample_frames = (aif->data[pos++] << 24);
+ num_sample_frames |= (aif->data[pos++] << 16);
+ num_sample_frames |= (aif->data[pos++] << 8);
+ num_sample_frames |= (uint8_t)aif->data[pos++];
- short sample_size = (aif_file_data[pos++] << 8);
- sample_size |= (uint8_t)aif_file_data[pos++];
+ short sample_size = (aif->data[pos++] << 8);
+ sample_size |= (uint8_t)aif->data[pos++];
if (sample_size != 8)
{
FATAL_ERROR("sampleSize (%d) in the COMM Chunk must be 8!\n", sample_size);
}
- double sample_rate = ieee754_read_extended((uint8_t*)(aif_file_data + pos));
+ double sample_rate = ieee754_read_extended((uint8_t*)(aif->data + pos));
pos += 10;
aif_data->sample_rate = sample_rate;
@@ -167,32 +217,31 @@ AifData *read_aif(uint8_t * aif_file_data, unsigned long aif_file_data_size)
}
else if (strcmp(chunk_name, "MARK") == 0)
{
- unsigned short num_markers = (aif_file_data[pos++] << 8);
- num_markers |= (uint8_t)aif_file_data[pos++];
-
- unsigned long loop_start = 0;
+ unsigned short num_markers = (aif->data[pos++] << 8);
+ num_markers |= (uint8_t)aif->data[pos++];
// Read each marker and look for the "START" marker.
for (int i = 0; i < num_markers; i++)
{
- unsigned short marker_id = (aif_file_data[pos++] << 8);
- marker_id |= (uint8_t)aif_file_data[pos++];
+ unsigned short marker_id = (aif->data[pos++] << 8);
+ marker_id |= (uint8_t)aif->data[pos++];
- unsigned long marker_position = (aif_file_data[pos++] << 24);
- marker_position |= (aif_file_data[pos++] << 16);
- marker_position |= (aif_file_data[pos++] << 8);
- marker_position |= (uint8_t)aif_file_data[pos++];
+ unsigned long marker_position = (aif->data[pos++] << 24);
+ marker_position |= (aif->data[pos++] << 16);
+ marker_position |= (aif->data[pos++] << 8);
+ marker_position |= (uint8_t)aif->data[pos++];
// Marker id is a pascal-style string.
- uint8_t marker_name_size = aif_file_data[pos++];
+ uint8_t marker_name_size = aif->data[pos++];
char *marker_name = (char *)malloc((marker_name_size + 1) * sizeof(char));
- memcpy(marker_name, aif_file_data + pos, marker_name_size);
+ memcpy(marker_name, &aif->data[pos], marker_name_size);
marker_name[marker_name_size] = '\0';
pos += marker_name_size;
if (strcmp(marker_name, "START") == 0)
{
- loop_start = marker_position;
+ aif_data->loop_offset = marker_position;
+ aif_data->has_loop = true;
}
else if (strcmp(marker_name, "END") == 0)
{
@@ -201,12 +250,10 @@ AifData *read_aif(uint8_t * aif_file_data, unsigned long aif_file_data_size)
free(marker_name);
}
-
- aif_data->loop_offset = loop_start;
}
else if (strcmp(chunk_name, "INST") == 0)
{
- uint8_t midi_note = (uint8_t)aif_file_data[pos++];
+ uint8_t midi_note = (uint8_t)aif->data[pos++];
aif_data->midi_note = midi_note;
@@ -218,384 +265,598 @@ AifData *read_aif(uint8_t * aif_file_data, unsigned long aif_file_data_size)
// SKip offset and blockSize
pos += 8;
- uint8_t *sample_data = (uint8_t *)malloc(num_sample_frames * sizeof(uint8_t));
- memcpy(sample_data, aif_file_data + pos, num_sample_frames);
+ unsigned long num_samples = chunk_size - 8;
+ uint8_t *sample_data = (uint8_t *)malloc(num_samples * sizeof(uint8_t));
+ memcpy(sample_data, &aif->data[pos], num_samples);
aif_data->samples = sample_data;
- pos += num_sample_frames;
+ pos += chunk_size - 8;
}
else
{
- // Skip over stuff we unsupported chunks.
+ // Skip over unsupported chunks.
pos += chunk_size;
}
}
-
- return aif_data;
}
-// Reads an .aif file and produces a .pcm file containing an array of 8-bit samples.
-void aif2pcm(const char *aif_filename)
-{
- // Get .pcm filename.
- char *pcm_filename = malloc(strlen(aif_filename) + 1);
+// This is a table of deltas between sample values in compressed PCM data.
+const int8_t gDeltaEncodingTable[] = {
+ 0, 1, 4, 9, 16, 25, 36, 49,
+ -64, -49, -36, -25, -16, -9, -4, -1,
+};
- if (!pcm_filename)
+struct Bytes *delta_decompress(struct Bytes *delta, unsigned int expected_length)
+{
+ struct Bytes *pcm = malloc(sizeof(struct Bytes));
+ pcm->length = expected_length;
+ pcm->data = malloc(pcm->length + 0x40);
+
+ uint8_t hi, lo;
+ unsigned int i = 0;
+ unsigned int j = 0;
+ int k;
+ int8_t base;
+ while (i < delta->length)
{
- FATAL_ERROR("Failed to allocate space for pcm filename.\n");
+ base = (int8_t)delta->data[i++];
+ pcm->data[j++] = (uint8_t)base;
+ if (i >= delta->length)
+ {
+ break;
+ }
+ if (j >= pcm->length)
+ {
+ break;
+ }
+ lo = delta->data[i] & 0xf;
+ base += gDeltaEncodingTable[lo];
+ pcm->data[j++] = base;
+ i++;
+ if (i >= delta->length)
+ {
+ break;
+ }
+ if (j >= pcm->length)
+ {
+ break;
+ }
+ for (k = 0; k < 31; k++)
+ {
+ hi = (delta->data[i] >> 4) & 0xf;
+ base += gDeltaEncodingTable[hi];
+ pcm->data[j++] = base;
+ if (j >= pcm->length)
+ {
+ break;
+ }
+ lo = delta->data[i] & 0xf;
+ base += gDeltaEncodingTable[lo];
+ pcm->data[j++] = base;
+ i++;
+ if (i >= delta->length)
+ {
+ break;
+ }
+ if (j >= pcm->length)
+ {
+ break;
+ }
+ }
+ if (j >= pcm->length)
+ {
+ break;
+ }
}
- strcpy(pcm_filename, aif_filename);
- change_file_extension(pcm_filename, "pcm");
+ pcm->length = j;
+ return pcm;
+}
- // Get .metadata filename.
- char *metadata_filename = malloc(strlen(aif_filename) + 1);
+struct Bytes *delta_compress(struct Bytes *pcm)
+{
+ struct Bytes *delta = malloc(sizeof(struct Bytes));
+ // estimate the length so we can malloc
+ int num_blocks = pcm->length / 64;
+ delta->length = num_blocks * 33;
- if (!metadata_filename)
+ int extra = pcm->length % 64;
+ if (extra)
+ {
+ delta->length += 1;
+ extra -= 1;
+ }
+ if (extra)
{
- FATAL_ERROR("Failed to allocate space for metadata filename.\n");
+ delta->length += 1;
+ extra -= 1;
+ }
+ if (extra)
+ {
+ delta->length += (extra + 1) / 2;
}
- strcpy(metadata_filename, aif_filename);
- change_file_extension(metadata_filename, "bin");
+ delta->data = malloc(delta->length + 33);
- // Open the given .aif file so we can read its contents.
- FILE *aif_file;
- aif_file = fopen(aif_filename, "rb");
- if (!aif_file)
+ uint8_t hi, lo;
+ unsigned int i = 0;
+ unsigned int j = 0;
+ int k;
+ int l;
+ int8_t base;
+ int8_t diff;
+ while (i < pcm->length)
{
- FATAL_ERROR("Failed to open '%s' for reading!\n", aif_filename);
+ base = (int8_t)pcm->data[i++];
+ delta->data[j++] = (uint8_t)base;
+ if (i >= pcm->length)
+ {
+ break;
+ }
+ hi = 0;
+ diff = pcm->data[i++] - base;
+ if (diff > 49)
+ {
+ diff = -diff;
+ }
+ if (diff < 0)
+ {
+ for (l = 8; l < 16; l++)
+ {
+ lo = l & 0xf;
+ if (diff <= gDeltaEncodingTable[l]) break;
+ }
+ }
+ else
+ {
+ for (l = 0; l < 8; l++)
+ {
+ lo = l & 0xf;
+ if (diff <= gDeltaEncodingTable[l]) break;
+ }
+ }
+ base += diff;
+ delta->data[j++] = (hi << 4) | lo;
+ if (i >= pcm->length)
+ {
+ break;
+ }
+ for (k = 0; k < 31; k++)
+ {
+ diff = pcm->data[i++] - base;
+ if (diff > 49) diff = -diff;
+ if (diff < 0)
+ {
+ for (l = 8; l < 16; l++)
+ {
+ hi = l & 0xf;
+ if (diff <= gDeltaEncodingTable[l]) break;
+ }
+ }
+ else
+ {
+ for (l = 0; l < 8; l++)
+ {
+ hi = l & 0xf;
+ if (diff <= gDeltaEncodingTable[l]) break;
+ }
+ }
+ base += diff;
+ delta->data[j] = (hi << 4);
+ if (i >= pcm->length)
+ {
+ break;
+ }
+ diff = pcm->data[i++] - base;
+ if (diff > 49) diff = -diff;
+ if (diff < 0)
+ {
+ for (l = 8; l < 16; l++)
+ {
+ lo = l & 0xf;
+ if (diff <= gDeltaEncodingTable[l]) break;
+ }
+ }
+ else
+ {
+ for (l = 0; l < 8; l++)
+ {
+ lo = l & 0xf;
+ if (diff <= gDeltaEncodingTable[l]) break;
+ }
+ }
+ base += diff;
+ delta->data[j++] = (hi << 4) | lo;
+ if (i >= pcm->length)
+ {
+ break;
+ }
+ }
+ if (i >= pcm->length)
+ {
+ break;
+ }
}
- // Get file length.
- fseek(aif_file, 0, SEEK_END);
- unsigned long aif_file_length = ftell(aif_file);
- fseek(aif_file, 0, SEEK_SET);
+ delta->length = j;
+
+ return delta;
+}
+
+#define STORE_U32_LE(dest, value) \
+do { \
+ *(dest) = (value) & 0xff; \
+ *((dest) + 1) = ((value) >> 8) & 0xff; \
+ *((dest) + 2) = ((value) >> 16) & 0xff; \
+ *((dest) + 3) = ((value) >> 24) & 0xff; \
+} while (0)
+
+#define LOAD_U32_LE(var, src) \
+do { \
+ (var) = *(src); \
+ (var) |= (*((src) + 1) << 8); \
+ (var) |= (*((src) + 2) << 16); \
+ (var) |= (*((src) + 3) << 24); \
+} while (0)
+
+// Reads an .aif file and produces a .pcm file containing an array of 8-bit samples.
+void aif2pcm(const char *aif_filename, const char *pcm_filename, bool compress)
+{
+ struct Bytes *aif = read_bytearray(aif_filename);
+ AifData aif_data = {0};
+ read_aif(aif, &aif_data);
+
+ int header_size = 0x10;
+ struct Bytes *pcm;
+ struct Bytes output = {0};
- // Create buffer for samples.
- uint8_t *aif_file_data = (uint8_t *)malloc(aif_file_length * sizeof(uint8_t));
- if (!aif_file_data)
+ if (compress)
{
- FATAL_ERROR("Failed to allocate buffer for aif file data!\n");
+ struct Bytes *input = malloc(sizeof(struct Bytes));
+ input->data = aif_data.samples;
+ input->length = aif_data.num_samples;
+ pcm = delta_compress(input);
+ free(input);
}
-
- // Populate buffer from file.
- unsigned long read = fread(aif_file_data, aif_file_length, 1, aif_file);
- fclose(aif_file);
- if (read <= 0)
+ else
{
- FATAL_ERROR("Failed to read data from '%s'!\n", aif_filename);
+ pcm = malloc(sizeof(struct Bytes));
+ pcm->data = aif_data.samples;
+ pcm->length = aif_data.num_samples;
}
-
- AifData *aif_data = read_aif(aif_file_data, aif_file_length);
-
- // Write the output .pcm file
- FILE *pcm_file;
- pcm_file = fopen(pcm_filename, "wb");
- fwrite(aif_data->samples, aif_data->num_samples, 1, pcm_file);
- fclose(pcm_file);
-
- // Write the output .bin file containing .aif metadata.
- FILE *metadata_file;
- metadata_file = fopen(metadata_filename, "wb");
- uint32_t pitch_adjust = (uint32_t)(aif_data->sample_rate * 1024);
- fwrite(&pitch_adjust, sizeof(uint32_t), 1, metadata_file);
- fwrite(&(aif_data->loop_offset), sizeof(uint32_t), 1, metadata_file);
- uint32_t adjusted_num_samples = (uint32_t)(aif_data->num_samples - 1);
- fwrite(&adjusted_num_samples, sizeof(uint32_t), 1, metadata_file);
- fclose(metadata_file);
-
- free(aif_data->samples);
- free(aif_data);
- free(aif_file_data);
- free(metadata_filename);
- free(pcm_filename);
+ output.length = header_size + pcm->length;
+ output.data = malloc(output.length);
+
+ uint32_t pitch_adjust = (uint32_t)(aif_data.sample_rate * 1024);
+ uint32_t loop_offset = (uint32_t)(aif_data.loop_offset);
+ uint32_t adjusted_num_samples = (uint32_t)(aif_data.num_samples - 1);
+ uint32_t flags = 0;
+ if (aif_data.has_loop) flags |= 0x40000000;
+ if (compress) flags |= 1;
+ STORE_U32_LE(output.data + 0, flags);
+ STORE_U32_LE(output.data + 4, pitch_adjust);
+ STORE_U32_LE(output.data + 8, loop_offset);
+ STORE_U32_LE(output.data + 12, adjusted_num_samples);
+ memcpy(&output.data[header_size], pcm->data, pcm->length);
+ write_bytearray(pcm_filename, &output);
+
+ free(aif->data);
+ free(aif);
+ free(pcm);
+ free(output.data);
+ free(aif_data.samples);
}
// Reads a .pcm file containing an array of 8-bit samples and produces an .aif file.
// See http://www-mmsp.ece.mcgill.ca/documents/audioformats/aiff/Docs/AIFF-1.3.pdf for .aif file specification.
-void pcm2aif(const char *pcm_filename, char base_note, long pitch_adjust, long loop_start)
+void pcm2aif(const char *pcm_filename, const char *aif_filename, uint32_t base_note)
{
- // Get .aif filename.
- char *aif_filename = malloc(strlen(pcm_filename) + 1);
+ struct Bytes *pcm = read_bytearray(pcm_filename);
- if (!aif_filename)
- {
- FATAL_ERROR("Failed to allocate space for aif filename.\n");
- }
+ AifData *aif_data = malloc(sizeof(AifData));
- strcpy(aif_filename, pcm_filename);
- change_file_extension(aif_filename, "aif");
-
- // Open the given .pcm file so we can read its 8-bit samples.
- FILE *pcm_file;
- pcm_file = fopen(pcm_filename, "rb");
- if (!pcm_file)
- {
- FATAL_ERROR("Failed to open '%s' for reading!\n", pcm_filename);
- }
+ uint32_t flags;
+ LOAD_U32_LE(flags, pcm->data + 0);
+ aif_data->has_loop = flags & 0x40000000;
+ bool compressed = flags & 1;
- // Get file length.
- fseek(pcm_file, 0, SEEK_END);
- unsigned long num_samples = ftell(pcm_file);
- fseek(pcm_file, 0, SEEK_SET);
+ uint32_t pitch_adjust;
+ LOAD_U32_LE(pitch_adjust, pcm->data + 4);
+ aif_data->sample_rate = pitch_adjust / 1024.0;
- unsigned long num_samples_extended = num_samples * 1;
+ LOAD_U32_LE(aif_data->loop_offset, pcm->data + 8);
+ LOAD_U32_LE(aif_data->num_samples, pcm->data + 12);
+ aif_data->num_samples += 1;
- // Create buffer for samples.
- signed char *pcm_samples = (signed char *)malloc(num_samples_extended * sizeof(signed char));
- if (!pcm_samples)
+ if (compressed)
{
- FATAL_ERROR("Failed to allocate buffer for pcm samples!\n");
+ struct Bytes *delta = pcm;
+ uint8_t *pcm_data = pcm->data;
+ delta->length -= 0x10;
+ delta->data += 0x10;
+ pcm = delta_decompress(delta, aif_data->num_samples);
+ free(pcm_data);
+ free(delta);
}
-
- // Populate buffer from file.
- unsigned long read = fread(pcm_samples, num_samples, 1, pcm_file);
- fclose(pcm_file);
- if (read <= 0)
+ else
{
- FATAL_ERROR("Failed to read data from '%s'!\n", pcm_filename);
+ pcm->length -= 0x10;
+ pcm->data += 0x10;
}
- // Allocate buffer for output .aif file.
- unsigned long aif_file_size = 54 + 60 + num_samples_extended;
- char *aif_buffer = (char *)malloc(aif_file_size * sizeof(char));
- if (!aif_buffer)
- {
- FATAL_ERROR("Failed to allocate buffer for aif file!\n");
- }
+ aif_data->samples = malloc(pcm->length);
+ memcpy(aif_data->samples, pcm->data, pcm->length);
+
+ struct Bytes *aif = malloc(sizeof(struct Bytes));
+ aif->length = 54 + 60 + aif_data->num_samples;
+ aif->data = malloc(aif->length);
long pos = 0;
// First, write the FORM header chunk.
// FORM Chunk ckID
- aif_buffer[pos++] = 'F';
- aif_buffer[pos++] = 'O';
- aif_buffer[pos++] = 'R';
- aif_buffer[pos++] = 'M';
+ aif->data[pos++] = 'F';
+ aif->data[pos++] = 'O';
+ aif->data[pos++] = 'R';
+ aif->data[pos++] = 'M';
// FORM Chunk ckSize
- unsigned long data_size = aif_file_size - 8;
- aif_buffer[pos++] = ((data_size >> 24) & 0xFF);
- aif_buffer[pos++] = ((data_size >> 16) & 0xFF);
- aif_buffer[pos++] = ((data_size >> 8) & 0xFF);
- aif_buffer[pos++] = (data_size & 0xFF);
+ unsigned long form_size = pos;
+ unsigned long data_size = aif->length - 8;
+ aif->data[pos++] = ((data_size >> 24) & 0xFF);
+ aif->data[pos++] = ((data_size >> 16) & 0xFF);
+ aif->data[pos++] = ((data_size >> 8) & 0xFF);
+ aif->data[pos++] = (data_size & 0xFF);
// FORM Chunk formType
- aif_buffer[pos++] = 'A';
- aif_buffer[pos++] = 'I';
- aif_buffer[pos++] = 'F';
- aif_buffer[pos++] = 'F';
+ aif->data[pos++] = 'A';
+ aif->data[pos++] = 'I';
+ aif->data[pos++] = 'F';
+ aif->data[pos++] = 'F';
// Next, write the Common Chunk
// Common Chunk ckID
- aif_buffer[pos++] = 'C';
- aif_buffer[pos++] = 'O';
- aif_buffer[pos++] = 'M';
- aif_buffer[pos++] = 'M';
+ aif->data[pos++] = 'C';
+ aif->data[pos++] = 'O';
+ aif->data[pos++] = 'M';
+ aif->data[pos++] = 'M';
// Common Chunk ckSize
- aif_buffer[pos++] = 0;
- aif_buffer[pos++] = 0;
- aif_buffer[pos++] = 0;
- aif_buffer[pos++] = 18;
+ aif->data[pos++] = 0;
+ aif->data[pos++] = 0;
+ aif->data[pos++] = 0;
+ aif->data[pos++] = 18;
// Common Chunk numChannels
- aif_buffer[pos++] = 0;
- aif_buffer[pos++] = 1; // 1 channel
+ aif->data[pos++] = 0;
+ aif->data[pos++] = 1; // 1 channel
// Common Chunk numSampleFrames
- aif_buffer[pos++] = ((num_samples_extended >> 24) & 0xFF);
- aif_buffer[pos++] = ((num_samples_extended >> 16) & 0xFF);
- aif_buffer[pos++] = ((num_samples_extended >> 8) & 0xFF);
- aif_buffer[pos++] = (num_samples_extended & 0xFF);
+ aif->data[pos++] = ((pcm->length >> 24) & 0xFF);
+ aif->data[pos++] = ((pcm->length >> 16) & 0xFF);
+ aif->data[pos++] = ((pcm->length >> 8) & 0xFF);
+ aif->data[pos++] = (pcm->length & 0xFF);
// Common Chunk sampleSize
- aif_buffer[pos++] = 0;
- aif_buffer[pos++] = 8; // 8 bits per sample
+ aif->data[pos++] = 0;
+ aif->data[pos++] = 8; // 8 bits per sample
// Common Chunk sampleRate
- double sample_rate = pitch_adjust / 1024.0;
+ //double sample_rate = pitch_adjust / 1024.0;
uint8_t sample_rate_buffer[10];
- ieee754_write_extended(sample_rate, sample_rate_buffer);
+ ieee754_write_extended(aif_data->sample_rate, sample_rate_buffer);
for (int i = 0; i < 10; i++)
{
- aif_buffer[pos++] = sample_rate_buffer[i];
+ aif->data[pos++] = sample_rate_buffer[i];
}
// Marker Chunk ckID
- aif_buffer[pos++] = 'M';
- aif_buffer[pos++] = 'A';
- aif_buffer[pos++] = 'R';
- aif_buffer[pos++] = 'K';
+ aif->data[pos++] = 'M';
+ aif->data[pos++] = 'A';
+ aif->data[pos++] = 'R';
+ aif->data[pos++] = 'K';
// Marker Chunk ckSize
- aif_buffer[pos++] = 0;
- aif_buffer[pos++] = 0;
- aif_buffer[pos++] = 0;
- aif_buffer[pos++] = 24;
+ aif->data[pos++] = 0;
+ aif->data[pos++] = 0;
+ aif->data[pos++] = 0;
+ aif->data[pos++] = 12 + (aif_data->has_loop ? 12 : 0);
// Marker Chunk numMarkers
- aif_buffer[pos++] = 0;
- aif_buffer[pos++] = 2;
-
- // Marker loop start
- aif_buffer[pos++] = 0;
- aif_buffer[pos++] = 1; // id = 1
-
- aif_buffer[pos++] = ((loop_start >> 24) & 0xFF);
- aif_buffer[pos++] = ((loop_start >> 16) & 0xFF);
- aif_buffer[pos++] = ((loop_start >> 8) & 0xFF);
- aif_buffer[pos++] = (loop_start & 0xFF); // position
+ aif->data[pos++] = 0;
+ aif->data[pos++] = (aif_data->has_loop ? 2 : 1);
- aif_buffer[pos++] = 5; // pascal-style string length
- aif_buffer[pos++] = 'S';
- aif_buffer[pos++] = 'T';
- aif_buffer[pos++] = 'A';
- aif_buffer[pos++] = 'R';
- aif_buffer[pos++] = 'T'; // markerName
+ if (aif_data->has_loop)
+ {
+ // Marker loop start
+ aif->data[pos++] = 0;
+ aif->data[pos++] = 1; // id = 1
+
+ long loop_start = aif_data->loop_offset;
+ aif->data[pos++] = ((loop_start >> 24) & 0xFF);
+ aif->data[pos++] = ((loop_start >> 16) & 0xFF);
+ aif->data[pos++] = ((loop_start >> 8) & 0xFF);
+ aif->data[pos++] = (loop_start & 0xFF); // position
+
+ aif->data[pos++] = 5; // pascal-style string length
+ aif->data[pos++] = 'S';
+ aif->data[pos++] = 'T';
+ aif->data[pos++] = 'A';
+ aif->data[pos++] = 'R';
+ aif->data[pos++] = 'T'; // markerName
+ }
// Marker loop end
- aif_buffer[pos++] = 0;
- aif_buffer[pos++] = 2; // id = 2
+ aif->data[pos++] = 0;
+ aif->data[pos++] = (aif_data->has_loop ? 2 : 1); // id = 2
- long loop_end = num_samples;
- aif_buffer[pos++] = ((loop_end >> 24) & 0xFF);
- aif_buffer[pos++] = ((loop_end >> 16) & 0xFF);
- aif_buffer[pos++] = ((loop_end >> 8) & 0xFF);
- aif_buffer[pos++] = (loop_end & 0xFF); // position
-
- aif_buffer[pos++] = 3; // pascal-style string length
- aif_buffer[pos++] = 'E';
- aif_buffer[pos++] = 'N';
- aif_buffer[pos++] = 'D';
+ long loop_end = aif_data->num_samples;
+ aif->data[pos++] = ((loop_end >> 24) & 0xFF);
+ aif->data[pos++] = ((loop_end >> 16) & 0xFF);
+ aif->data[pos++] = ((loop_end >> 8) & 0xFF);
+ aif->data[pos++] = (loop_end & 0xFF); // position
+ aif->data[pos++] = 3; // pascal-style string length
+ aif->data[pos++] = 'E';
+ aif->data[pos++] = 'N';
+ aif->data[pos++] = 'D';
// Instrument Chunk ckID
- aif_buffer[pos++] = 'I';
- aif_buffer[pos++] = 'N';
- aif_buffer[pos++] = 'S';
- aif_buffer[pos++] = 'T';
+ aif->data[pos++] = 'I';
+ aif->data[pos++] = 'N';
+ aif->data[pos++] = 'S';
+ aif->data[pos++] = 'T';
// Instrument Chunk ckSize
- aif_buffer[pos++] = 0;
- aif_buffer[pos++] = 0;
- aif_buffer[pos++] = 0;
- aif_buffer[pos++] = 20;
-
- aif_buffer[pos++] = base_note; // baseNote
- aif_buffer[pos++] = 0; // detune
- aif_buffer[pos++] = 0; // lowNote
- aif_buffer[pos++] = 127; // highNote
- aif_buffer[pos++] = 1; // lowVelocity
- aif_buffer[pos++] = 127; // highVelocity
- aif_buffer[pos++] = 0; // gain (hi)
- aif_buffer[pos++] = 0; // gain (lo)
+ aif->data[pos++] = 0;
+ aif->data[pos++] = 0;
+ aif->data[pos++] = 0;
+ aif->data[pos++] = 20;
+
+ aif->data[pos++] = base_note; // baseNote
+ aif->data[pos++] = 0; // detune
+ aif->data[pos++] = 0; // lowNote
+ aif->data[pos++] = 127; // highNote
+ aif->data[pos++] = 1; // lowVelocity
+ aif->data[pos++] = 127; // highVelocity
+ aif->data[pos++] = 0; // gain (hi)
+ aif->data[pos++] = 0; // gain (lo)
// Instrument Chunk sustainLoop
- aif_buffer[pos++] = 0;
- aif_buffer[pos++] = 1; // playMode = ForwardLooping
+ aif->data[pos++] = 0;
+ aif->data[pos++] = 1; // playMode = ForwardLooping
- aif_buffer[pos++] = 0;
- aif_buffer[pos++] = 1; // beginLoop marker id
+ aif->data[pos++] = 0;
+ aif->data[pos++] = 1; // beginLoop marker id
- aif_buffer[pos++] = 0;
- aif_buffer[pos++] = 2; // endLoop marker id
+ aif->data[pos++] = 0;
+ aif->data[pos++] = 2; // endLoop marker id
// Instrument Chunk releaseLoop
- aif_buffer[pos++] = 0;
- aif_buffer[pos++] = 1; // playMode = ForwardLooping
+ aif->data[pos++] = 0;
+ aif->data[pos++] = 1; // playMode = ForwardLooping
- aif_buffer[pos++] = 0;
- aif_buffer[pos++] = 1; // beginLoop marker id
+ aif->data[pos++] = 0;
+ aif->data[pos++] = 1; // beginLoop marker id
- aif_buffer[pos++] = 0;
- aif_buffer[pos++] = 2; // endLoop marker id
+ aif->data[pos++] = 0;
+ aif->data[pos++] = 2; // endLoop marker id
// Finally, write the Sound Data Chunk
// Sound Data Chunk ckID
- aif_buffer[pos++] = 'S';
- aif_buffer[pos++] = 'S';
- aif_buffer[pos++] = 'N';
- aif_buffer[pos++] = 'D';
+ aif->data[pos++] = 'S';
+ aif->data[pos++] = 'S';
+ aif->data[pos++] = 'N';
+ aif->data[pos++] = 'D';
// Sound Data Chunk ckSize
- unsigned long sound_data_size = num_samples_extended + 8;
- aif_buffer[pos++] = ((sound_data_size >> 24) & 0xFF);
- aif_buffer[pos++] = ((sound_data_size >> 16) & 0xFF);
- aif_buffer[pos++] = ((sound_data_size >> 8) & 0xFF);
- aif_buffer[pos++] = (sound_data_size & 0xFF);
+ unsigned long sound_data_size = pcm->length + 8;
+ aif->data[pos++] = ((sound_data_size >> 24) & 0xFF);
+ aif->data[pos++] = ((sound_data_size >> 16) & 0xFF);
+ aif->data[pos++] = ((sound_data_size >> 8) & 0xFF);
+ aif->data[pos++] = (sound_data_size & 0xFF);
// Sound Data Chunk offset
- aif_buffer[pos++] = 0;
- aif_buffer[pos++] = 0;
- aif_buffer[pos++] = 0;
- aif_buffer[pos++] = 0;
+ aif->data[pos++] = 0;
+ aif->data[pos++] = 0;
+ aif->data[pos++] = 0;
+ aif->data[pos++] = 0;
// Sound Data Chunk blockSize
- aif_buffer[pos++] = 0;
- aif_buffer[pos++] = 0;
- aif_buffer[pos++] = 0;
- aif_buffer[pos++] = 0;
+ aif->data[pos++] = 0;
+ aif->data[pos++] = 0;
+ aif->data[pos++] = 0;
+ aif->data[pos++] = 0;
// Sound Data Chunk soundData
- for (int i = 0; i < loop_start; i++)
+ for (unsigned int i = 0; i < aif_data->loop_offset; i++)
{
- aif_buffer[pos++] = pcm_samples[i];
+ aif->data[pos++] = aif_data->samples[i];
}
int j = 0;
- for (unsigned int i = loop_start; i < num_samples_extended; i++)
+ for (unsigned int i = aif_data->loop_offset; i < pcm->length; i++)
{
- int pcm_index = loop_start + (j++ % (num_samples - loop_start - 1));
- aif_buffer[pos++] = pcm_samples[pcm_index];
+ int pcm_index = aif_data->loop_offset + (j++ % (pcm->length - aif_data->loop_offset));
+ aif->data[pos++] = aif_data->samples[pcm_index];
}
- // Write the .aif file contents.
- FILE *aif_file;
- aif_file = fopen(aif_filename, "wb");
- if (!aif_file)
- {
- FATAL_ERROR("Failed to open '%s' for writing!\n", aif_filename);
- }
+ aif->length = pos;
+
+ // Go back and rewrite ckSize
+ data_size = aif->length - 8;
+ aif->data[form_size + 0] = ((data_size >> 24) & 0xFF);
+ aif->data[form_size + 1] = ((data_size >> 16) & 0xFF);
+ aif->data[form_size + 2] = ((data_size >> 8) & 0xFF);
+ aif->data[form_size + 3] = (data_size & 0xFF);
- fwrite(aif_buffer, 1, aif_file_size, aif_file);
- fclose(aif_file);
+ write_bytearray(aif_filename, aif);
+
+ free(aif->data);
+ free(aif);
+}
- free(aif_buffer);
- free(pcm_samples);
- free(aif_filename);
+void usage(void)
+{
+ fprintf(stderr, "Usage: aif2pcm bin_file [aif_file]\n");
+ fprintf(stderr, " aif2pcm aif_file [bin_file] [--compress]\n");
}
int main(int argc, char **argv)
{
if (argc < 2)
{
- FATAL_ERROR("Usage: aif2pcm <aif_file>\n");
+ usage();
+ exit(1);
}
- char *input_filename = argv[1];
- char *extension = get_file_extension(input_filename);
+ char *input_file = argv[1];
+ char *extension = get_file_extension(input_file);
+ char *output_file;
+ bool compressed = false;
+
+ if (argc > 3)
+ {
+ for (int i = 3; i < argc; i++)
+ {
+ if (strcmp(argv[i], "--compress") == 0)
+ {
+ compressed = true;
+ }
+ }
+ }
if (strcmp(extension, "aif") == 0)
{
- aif2pcm(input_filename);
+ if (argc >= 3)
+ {
+ output_file = argv[2];
+ aif2pcm(input_file, output_file, compressed);
+ }
+ else
+ {
+ output_file = new_file_extension(input_file, "bin");
+ aif2pcm(input_file, output_file, compressed);
+ free(output_file);
+ }
}
- else if (strcmp(extension, "pcm") == 0)
+ else if (strcmp(extension, "bin") == 0)
{
- if (argc < 5)
+ if (argc >= 3)
{
- FATAL_ERROR("Usage: aif2pcm <pcm_file> <midi_note> <pitch_adjust> <loop_start>\n");
+ output_file = argv[2];
+ pcm2aif(input_file, output_file, 60);
+ }
+ else
+ {
+ output_file = new_file_extension(input_file, "aif");
+ pcm2aif(input_file, output_file, 60);
+ free(output_file);
}
-
- char base_note = atoi(argv[2]);
- long pitch_adjust = atol(argv[3]);
- long loop_start = atol(argv[4]);
- pcm2aif(input_filename, base_note, pitch_adjust, loop_start);
}
else
{
- FATAL_ERROR("Input file must be .aif or .pcm: '%s'\n", input_filename);
+ FATAL_ERROR("Input file must be .aif or .bin: '%s'\n", input_file);
}
return 0;